pax_global_header00006660000000000000000000000064133444467750014533gustar00rootroot0000000000000052 comment=e8ab75b386304ee11e92100b370632f0e87d2fa0 libzypp-17.7.0/000077500000000000000000000000001334444677500133205ustar00rootroot00000000000000libzypp-17.7.0/.gitattributes000066400000000000000000000000501334444677500162060ustar00rootroot00000000000000*.po merge=binary *.pot merge=binary libzypp-17.7.0/.gitignore000066400000000000000000000001431334444677500153060ustar00rootroot00000000000000build *.orig *.rej *.swp #* .#* *# .*project .externalToolBuilders .settings *flymake.h.gch *.user libzypp-17.7.0/.travis.yml000066400000000000000000000024341334444677500154340ustar00rootroot00000000000000sudo: required dist: trusty group: stable language: c++ os: linux services: - docker before_install: - cat /proc/cpuinfo - docker pull opensuse:tumbleweed - docker run -i -d --name test opensuse:tumbleweed bash - docker exec test zypper ref - docker exec test zypper in -y --recommends cmake openssl-devel boost-devel dejagnu doxygen gcc-c++ gettext-devel graphviz libxml2-devel libproxy-devel pkg-config libsolv-devel libsolv-tools ruby rpm-devel libcurl-devel libboost_program_options*-devel libboost_test*-devel libudev-devel xorg-x11-fonts-core xorg-x11-fonts texlive-lm-fonts libgpgme-devel gpgme libboost_thread1_* - docker exec test zypper in -y "rubygem(asciidoctor)" script: - docker cp ../libzypp/ test:/root - docker exec test mkdir /root/build - docker exec test bash -c "cd /root/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=1 ../libzypp" - docker exec test bash -c "cd /root/build && make -j4 VERBOSE=1" - docker exec test bash -c "cd /root/build && make -j4 -C doc/autodoc" - docker exec test bash -c "cd /root/build && make -j4 -C po translations" - docker exec test bash -c "cd /root/build && make -j4 -C tests" - docker exec test bash -c "cd /root/build/tests && LD_LIBRARY_PATH=\$PWD/../zypp:\$LD_LIBRARY_PATH ctest -VV ." on: repo: openSUSE/libzypp tags: true libzypp-17.7.0/CMakeLists.txt000066400000000000000000000232111334444677500160570ustar00rootroot00000000000000PROJECT(LIBZYPP) SET( PACKAGE "libzypp" ) # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked SET( CMAKE_MODULE_PATH ${LIBZYPP_SOURCE_DIR}/cmake/modules ) cmake_minimum_required(VERSION 2.6) OPTION (ENABLE_BUILD_DOCS "Build documentation by default?" OFF) OPTION (ENABLE_BUILD_TRANS "Build translation files by default?" OFF) OPTION (ENABLE_BUILD_TESTS "Build and run test suite by default?" OFF) OPTION (ENABLE_USE_THREADS "Enable using threads (NOT being used by threads!)?" OFF) OPTION (DISABLE_LIBPROXY "Build without libproxy support even if package is installed?" OFF) OPTION (DISABLE_AUTODOCS "Do not require doxygen being installed (required to build autodocs)?" OFF) #-------------------------------------------------------------------------------- SET (have_system x) IF (DEBIAN) MESSAGE (STATUS "Building for Debian") SET (ENABLE_BUILD_DOCS ON) SET (ENABLE_BUILD_TRANS ON) SET (ENABLE_BUILD_TESTS ON) SET (have_system ${have_system}x) ENDIF (DEBIAN) IF (${have_system} STREQUAL x) MESSAGE (STATUS "Building for SUSE") ENDIF (${have_system} STREQUAL x) IF (${have_system} STRGREATER xx) MESSAGE (FATAL_ERROR "Can only build for one system type.") ENDIF (${have_system} STRGREATER xx) #-------------------------------------------------------------------------------- # allow name libraries by name mixed with full # paths if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif(COMMAND cmake_policy) INCLUDE(ZyppCommon) INCLUDE( ${LIBZYPP_SOURCE_DIR}/VERSION.cmake ) MATH( EXPR LIBZYPP_CURRENT "${LIBZYPP_MAJOR} * 100 + ${LIBZYPP_MINOR}" ) MATH( EXPR LIBZYPP_AGE "${LIBZYPP_MINOR} - ${LIBZYPP_COMPATMINOR}" ) # Libtool wanted current:patch:age # But cmake is not libtool, it wants the verbatim suffix to libzypp.so MATH( EXPR LIBZYPP_SO_FIRST "${LIBZYPP_CURRENT}-${LIBZYPP_AGE}" ) SET( VERSION "${LIBZYPP_MAJOR}.${LIBZYPP_MINOR}.${LIBZYPP_PATCH}" ) include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) CHECK_C_COMPILER_FLAG("-Werror=format-security" CC_FORMAT_SECURITY) CHECK_CXX_COMPILER_FLAG("-Werror=format-security" CXX_FORMAT_SECURITY) SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing -fPIC -g -rdynamic -Wall -Wl,-as-needed -Wp,-D_GLIBCXX_ASSERTIONS" ) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -fPIC -g -rdynamic -Wall -Wl,-as-needed -Wp,-D_GLIBCXX_ASSERTIONS" ) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fvisibility-inlines-hidden -Woverloaded-virtual -Wnon-virtual-dtor" ) set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3 -DZYPP_NDEBUG" ) set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -DZYPP_NDEBUG" ) IF(${CC_FORMAT_SECURITY}) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=format-security") ENDIF(${CC_FORMAT_SECURITY}) IF(${CXX_FORMAT_SECURITY}) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=format-security") ENDIF(${CXX_FORMAT_SECURITY}) INCLUDE(CheckFunctionExists) CHECK_FUNCTION_EXISTS(pipe2 PIPE2_FOUND) IF(${PIPE2_FOUND}) ADD_DEFINITIONS(-DHAVE_PIPE2) ENDIF(${PIPE2_FOUND}) ADD_DEFINITIONS( -D_FILE_OFFSET_BITS=64 ) ADD_DEFINITIONS( -DVERSION="${VERSION}" ) SET( LIBZYPP_VERSION_INFO "${LIBZYPP_SO_FIRST}.${LIBZYPP_AGE}.${LIBZYPP_PATCH}" ) SET( LIBZYPP_SOVERSION_INFO "${LIBZYPP_SO_FIRST}" ) GENERATE_PACKAGING(${PACKAGE} ${VERSION}) INCLUDE(CPack) MACRO(ADD_TESTS) FOREACH( loop_var ${ARGV} ) SET_SOURCE_FILES_PROPERTIES( ${loop_var}_test.cc COMPILE_FLAGS "-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN -DBOOST_AUTO_TEST_MAIN=\"\" " ) ADD_EXECUTABLE( ${loop_var}_test ${loop_var}_test.cc ) TARGET_LINK_LIBRARIES( ${loop_var}_test zypp ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} zypp_test_utils) ADD_TEST( ${loop_var}_test ${CMAKE_CURRENT_BINARY_DIR}/${loop_var}_test --catch_system_errors=no) ENDFOREACH( loop_var ) ENDMACRO(ADD_TESTS) #################################################################### # prefer packages using the same install prefix as we do SET(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX} usr/localX /usr/local /usr) IF ( ENABLE_USE_THREADS ) SET( CMAKE_THREAD_PREFER_PTHREAD TRUE ) FIND_PACKAGE( Threads REQUIRED ) IF ( CMAKE_USE_PTHREADS_INIT ) MESSAGE( STATUS "May use threads." ) SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -DZYPP_USE_THREADS" ) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -DZYPP_USE_THREADS" ) ENDIF ( CMAKE_USE_PTHREADS_INIT ) ENDIF ( ENABLE_USE_THREADS ) FIND_PACKAGE(Rpm REQUIRED) IF ( NOT RPM_FOUND) MESSAGE( FATAL_ERROR " rpm-devel not found" ) ELSE ( NOT RPM_FOUND) INCLUDE_DIRECTORIES(${RPM_INCLUDE_DIR}) # fix includes not relative to rpm INCLUDE_DIRECTORIES(${RPM_INCLUDE_DIR}/rpm) if ( RPM_SUSPECT_VERSION STREQUAL "5.x" ) MESSAGE( STATUS "rpm found: enable rpm-4 compat interface." ) ADD_DEFINITIONS(-D_RPM_5) endif ( RPM_SUSPECT_VERSION STREQUAL "5.x" ) ENDIF( NOT RPM_FOUND) FIND_PACKAGE(Boost REQUIRED COMPONENTS program_options unit_test_framework thread) IF (Boost_FOUND) MESSAGE( STATUS "boost found: includes in ${Boost_INCLUDE_DIRS}, library in ${Boost_LIBRARY_DIRS}") INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) ENDIF(Boost_FOUND) FIND_PACKAGE(Gettext REQUIRED) IF (GETTEXT_FOUND) MESSAGE(STATUS "Found Gettext: ${GETTEXT_SOURCE}") INCLUDE_DIRECTORIES(${GETTEXT_INCLUDE_DIR}) ELSE (GETTEXT_FOUND) MESSAGE( FATAL_ERROR "Gettext not found" ) ENDIF (GETTEXT_FOUND) FIND_PACKAGE(CURL REQUIRED) IF ( NOT CURL_FOUND) MESSAGE( FATAL_ERROR " curl not found" ) ELSE ( NOT CURL_FOUND) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) ENDIF( NOT CURL_FOUND) FIND_PACKAGE(LibXml2 REQUIRED) IF ( NOT LIBXML2_FOUND) MESSAGE( FATAL_ERROR " libxml not found" ) ELSE ( NOT LIBXML2_FOUND) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) ENDIF( NOT LIBXML2_FOUND) FIND_PACKAGE(ZLIB REQUIRED) IF ( NOT ZLIB_FOUND) MESSAGE( FATAL_ERROR " zlib not found" ) ELSE ( NOT ZLIB_FOUND) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) ENDIF( NOT ZLIB_FOUND) #SET(LibSolv_USE_STATIC_LIBS ON) FIND_PACKAGE(LibSolv REQUIRED ext) IF ( NOT LibSolv_FOUND ) MESSAGE( FATAL_ERROR " libsolv not found" ) ELSE() INCLUDE_DIRECTORIES( ${LibSolv_INCLUDE_DIRS} ) ENDIF() FIND_PACKAGE(Gpgme REQUIRED) IF ( NOT GPGME_PTHREAD_FOUND ) MESSAGE( FATAL_ERROR " gpgme not found" ) ELSE() INCLUDE_DIRECTORIES( ${GPGME_INCLUDES} ) LINK_DIRECTORIES(${GPGME_LIBRARY_DIR}) ENDIF() FIND_PACKAGE(OpenSSL REQUIRED) FIND_PACKAGE(Udev) IF ( NOT UDEV_FOUND ) FIND_PACKAGE(Hal) IF ( NOT HAL_FOUND ) MESSAGE(WARNING "No udev or HAL. CD device detection will be poor") ELSE ( NOT HAL_FOUND ) ADD_DEFINITIONS(-DHAVE_HAL) INCLUDE_DIRECTORIES(${HAL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${HAL_INCLUDE_DIR}/hal) # HAL requires working dbus FIND_PACKAGE(Dbus REQUIRED) IF(DBUS_FOUND) INCLUDE_DIRECTORIES(${DBUS_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${DBUS_ARCH_INCLUDE_DIR}) ENDIF(DBUS_FOUND) ENDIF ( NOT HAL_FOUND ) ELSE ( NOT UDEV_FOUND ) ADD_DEFINITIONS(-DHAVE_UDEV) ENDIF ( NOT UDEV_FOUND ) IF( DISABLE_LIBPROXY ) MESSAGE( STATUS "libproxy support disabled" ) ELSE( DISABLE_LIBPROXY ) FIND_PACKAGE(libproxy) IF ( NOT LIBPROXY_FOUND ) MESSAGE( STATUS "libproxy not found" ) ELSE ( NOT LIBPROXY_FOUND ) INCLUDE_DIRECTORIES( ${LIBPROXY_INCLUDE_DIR} ) ADD_DEFINITIONS(-DWITH_LIBPROXY_SUPPORT) ENDIF( NOT LIBPROXY_FOUND ) ENDIF( DISABLE_LIBPROXY ) FIND_PROGRAM( DOXYGEN doxygen ) IF ( NOT DOXYGEN ) IF ( DISABLE_AUTODOCS ) MESSAGE( STATUS "doxygen is not available. Can't build the documentation." ) ELSE ( DISABLE_AUTODOCS ) MESSAGE( FATAL_ERROR "doxygen not found: install doxygen to build the documentation!" ) ENDIF ( DISABLE_AUTODOCS ) ELSE ( NOT DOXYGEN ) MESSAGE( STATUS "doxygen found: ${DOXYGEN}" ) ENDIF ( NOT DOXYGEN ) MESSAGE(STATUS "soname: ${LIBZYPP_VERSION_INFO}") MESSAGE(STATUS "version: ${VERSION}") MESSAGE(STATUS "Writing pkg-config file...") CONFIGURE_FILE(${LIBZYPP_SOURCE_DIR}/libzypp.pc.cmake ${LIBZYPP_BINARY_DIR}/libzypp.pc @ONLY) INSTALL( FILES ${LIBZYPP_BINARY_DIR}/libzypp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ) MESSAGE(STATUS "FindZypp.cmake will be installed in ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules") INSTALL( FILES ${LIBZYPP_SOURCE_DIR}/cmake/modules/FindZypp.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ) INSTALL( FILES ${LIBZYPP_SOURCE_DIR}/cmake/modules/ZyppCommon.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ) #################################################################### # config templates # (don't forget to mention them in the .spec file) #################################################################### MESSAGE(STATUS "zypp.conf will be installed in ${SYSCONFDIR}/zypp") INSTALL( FILES ${LIBZYPP_SOURCE_DIR}/zypp.conf DESTINATION ${SYSCONFDIR}/zypp ) #install systemCheck MESSAGE(STATUS "systemCheck will be installed in ${SYSCONFDIR}/zypp") INSTALL( FILES ${LIBZYPP_SOURCE_DIR}/systemCheck DESTINATION ${SYSCONFDIR}/zypp ) # logrotate config file INSTALL( FILES ${LIBZYPP_SOURCE_DIR}/zypp-history.lr DESTINATION ${SYSCONFDIR}/logrotate.d ) #################################################################### # SUBDIRECTORIES # #################################################################### ADD_SUBDIRECTORY( zypp ) # do not build devel by default ADD_SUBDIRECTORY( devel EXCLUDE_FROM_ALL ) ADD_SUBDIRECTORY( tools ) ADD_SUBDIRECTORY( doc ) ADD_SUBDIRECTORY( vendor ) IF ( ENABLE_BUILD_TRANS ) ADD_SUBDIRECTORY( po ) ELSE ( ENABLE_BUILD_TRANS ) ADD_SUBDIRECTORY( po EXCLUDE_FROM_ALL ) ENDIF ( ENABLE_BUILD_TRANS ) IF ( ENABLE_BUILD_TESTS ) ADD_SUBDIRECTORY( tests ) ELSE ( ENABLE_BUILD_TESTS ) ADD_SUBDIRECTORY( tests EXCLUDE_FROM_ALL ) ENDIF ( ENABLE_BUILD_TESTS ) INCLUDE(CTest) ENABLE_TESTING() libzypp-17.7.0/COPYING000066400000000000000000000022131334444677500143510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ Copyright (C) 2000-2002 Ximian, Inc. Copyright (C) 2005-2018 SUSE LINUX Products GmbH, Nuernberg, Germany. ZYpp is licensed under the GNU General Public License version 2 or later. The text of the GNU General Public License can be viewed at http://www.gnu.org/licenses/gpl.html As a special exception, you have permission to link this program with the following libraries and distribute executables, as long as you follow the requirements of the GNU GPL in regard to all of the software in the executable aside from the following libraries: - OpenSSL (http://www.openssl.org) libzypp-17.7.0/Makefile.cvs000066400000000000000000000014231334444677500155520ustar00rootroot00000000000000# Generic Makefile.cvs for CMake-based projects: # # Create a subdirecory build/ and call cmake from there with /usr prefix. # # Intentionally using /usr rather than the default /usr/local since this is for # internal use, and we are the distribution makers: /usr/local is off limits # for us. # # Author: Stefan Hundhammer BUILD_SUBDIR = build HERE_FROM_BUILD_SUBDIR = .. PREFIX = /usr CMAKE = /usr/bin/cmake all: cmake cmake: create-build-subdir create-toplevel-makefile ( cd $(BUILD_SUBDIR) && $(CMAKE) -DCMAKE_INSTALL_PREFIX=$(PREFIX) $(HERE_FROM_BUILD_SUBDIR) ) create-build-subdir: test -d $(BUILD_SUBDIR) || mkdir $(BUILD_SUBDIR) create-toplevel-makefile: echo 'all:' >Makefile echo -e '\t$$(MAKE) $$(MAKEFLAGS) -C $(BUILD_SUBDIR)' >>Makefile libzypp-17.7.0/VERSION.cmake000066400000000000000000000044331334444677500154530ustar00rootroot00000000000000# ================================================== # Versioning # ========== # # MAJOR Major number for this branch. # # MINOR The most recent interface number this # library implements. # # COMPATMINOR The latest binary compatible minor number # this library implements. # # PATCH The implementation number of the current interface. # # # - The package VERSION will be MAJOR.MINOR.PATCH. # # - Libtool's -version-info will be derived from MAJOR, MINOR, PATCH # and COMPATMINOR (see configure.ac). # # - Changing MAJOR always breaks binary compatibility. # # - Changing MINOR doesn't break binary compatibility by default. # Only if COMPATMINOR is changed as well. # # # 1) After branching from TRUNK increment TRUNKs MAJOR and # start with version `MAJOR.0.0' and also set COMPATMINOR to 0. # # 2) Update the version information only immediately before a public release # of your software. More frequent updates are unnecessary, and only guarantee # that the current interface number gets larger faster. # # 3) If the library source code has changed at all since the last update, # then increment PATCH. # # 4) If any interfaces have been added, removed, or changed since the last # update, increment MINOR, and set PATCH to 0. # # 5) If any interfaces have been added since the last public release, then # leave COMPATMINOR unchanged. (binary compatible change) # # 6) If any interfaces have been removed since the last public release, then # set COMPATMINOR to MINOR. (binary incompatible change) # ================================================== #======= # - MOST IMPORTANT: # - Before you submitt to git: # - Remember the new version in 'LAST RELEASED:' # - State the new version in the changes file by adding a line # "- version MAJOR.MINOR.PATCH (COMPATMINOR)" # - Commit changes and version files together in a separate # commit using -m 'changes MAJOR.MINOR.PATCH (COMPATMINOR)' # - Tag the above commit with 'MAJOR.MINOR.PATCH' using # -m "tagging MAJOR.MINOR.PATCH". # # - Consider calling ./mkChangelog to assist you. # See './mkChangelog -h' for help. # SET(LIBZYPP_MAJOR "17") SET(LIBZYPP_COMPATMINOR "2") SET(LIBZYPP_MINOR "7") SET(LIBZYPP_PATCH "0") # # LAST RELEASED: 17.7.0 (2) # (The number in parenthesis is LIBZYPP_COMPATMINOR) #======= libzypp-17.7.0/cmake/000077500000000000000000000000001334444677500144005ustar00rootroot00000000000000libzypp-17.7.0/cmake/modules/000077500000000000000000000000001334444677500160505ustar00rootroot00000000000000libzypp-17.7.0/cmake/modules/FindDbus.cmake000066400000000000000000000017701334444677500205550ustar00rootroot00000000000000 if(DBUS_INCLUDE_DIR AND DBUS_LIBRARY AND DBUS_ARCH_INCLUDE_DIR) # Already in cache, be silent set(DBUS_FIND_QUIETLY TRUE) endif(DBUS_INCLUDE_DIR AND DBUS_LIBRARY AND DBUS_ARCH_INCLUDE_DIR) set(DBUS_LIBRARY) set(DBUS_INCLUDE_DIR) set(DBUS_ARCH_INCLUDE_DIR) FIND_PATH(DBUS_INCLUDE_DIR dbus/dbus.h /usr/include /usr/include/dbus-1.0 /usr/local/include ) FIND_PATH(DBUS_ARCH_INCLUDE_DIR dbus/dbus-arch-deps.h /usr/lib/include /usr/lib/dbus-1.0/include /usr/lib64/include /usr/lib64/dbus-1.0/include ) FIND_LIBRARY(DBUS_LIBRARY NAMES dbus-1 dbus PATHS /usr/lib /usr/local/lib ) if(DBUS_INCLUDE_DIR AND DBUS_LIBRARY AND DBUS_ARCH_INCLUDE_DIR) MESSAGE( STATUS "dbus found: includes in ${DBUS_INCLUDE_DIR}, library in ${DBUS_LIBRARY}") set(DBUS_FOUND TRUE) else(DBUS_INCLUDE_DIR AND DBUS_LIBRARY AND DBUS_ARCH_INCLUDE_DIR) MESSAGE( STATUS "dbus not found") endif(DBUS_INCLUDE_DIR AND DBUS_LIBRARY AND DBUS_ARCH_INCLUDE_DIR) MARK_AS_ADVANCED(DBUS_INCLUDE_DIR DBUS_LIBRARY DBUS_ARCH_INCLUDE_DIR)libzypp-17.7.0/cmake/modules/FindGpgme.cmake000066400000000000000000000351671334444677500207260ustar00rootroot00000000000000# Taken from gpgmepp project # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # - Try to find the gpgme library # # Algorithm: # - Windows: # On Windows, there's three gpgme variants: gpgme{,-glib,-qt}. # - The variant used determines the event loop integration possible: # - gpgme: no event loop integration possible, only synchronous operations supported # - gpgme-glib: glib event loop integration possible, only asynchronous operations supported # - gpgme-qt: qt event loop integration possible, only asynchronous operations supported # - GPGME_{VANILLA,GLIB,QT}_{FOUND,LIBRARIES} will be set for each of the above # - GPGME_INCLUDES is the same for all of the above # - GPGME_FOUND is set if any of the above was found # - *nix: # There's also three variants: gpgme{,-pthread,-pth}. # - The variant used determines the multithreaded use possible: # - gpgme: no multithreading support available # - gpgme-pthread: multithreading available using POSIX threads # - gpgme-pth: multithreading available using GNU PTH (cooperative multithreading) # - GPGME_{VANILLA,PTH,PTHREAD}_{FOUND,LIBRARIES} will be set for each of the above # - GPGME_INCLUDES is the same for all of the above # - GPGME_FOUND is set if any of the above was found # # GPGME_LIBRARY_DIR - the directory where the libraries are located # # THIS IS ALMOST A 1:1 COPY OF FindAssuan.cmake in kdepim. # Any changes here likely apply there, too. # include(FeatureSummary) # do away with crappy condition repetition on else/endfoo set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS_gpgme_saved ${CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS} ) set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) #if this is built-in, please replace, if it isn't, export into a MacroToBool.cmake of it's own macro( macro_bool_to_bool FOUND_VAR ) foreach( _current_VAR ${ARGN} ) if ( ${FOUND_VAR} ) set( ${_current_VAR} TRUE ) else() set( ${_current_VAR} FALSE ) endif() endforeach() endmacro() #HACK: local copy... MACRO(MACRO_BOOL_TO_01 FOUND_VAR ) FOREACH (_current_VAR ${ARGN}) IF(${FOUND_VAR}) SET(${_current_VAR} 1) ELSE(${FOUND_VAR}) SET(${_current_VAR} 0) ENDIF(${FOUND_VAR}) ENDFOREACH(_current_VAR) ENDMACRO(MACRO_BOOL_TO_01) if ( WIN32 ) # On Windows, we don't have a gpgme-config script, so we need to # look for the stuff ourselves: # in cmake, AND and OR have the same precedence, there's no # subexpressions, and expressions are evaluated short-circuit'ed # IOW: CMake if() suxx. # Starting with CMake 2.6.3 you can group if expressions with (), but we # don't require 2.6.3 but 2.6.2, we can't use it. Alex set( _seem_to_have_cached_gpgme false ) if ( GPGME_INCLUDES ) if ( GPGME_VANILLA_LIBRARIES OR GPGME_QT_LIBRARIES OR GPGME_GLIB_LIBRARIES ) set( _seem_to_have_cached_gpgme true ) endif() endif() if ( _seem_to_have_cached_gpgme ) macro_bool_to_bool( GPGME_VANILLA_LIBRARIES GPGME_VANILLA_FOUND ) macro_bool_to_bool( GPGME_GLIB_LIBRARIES GPGME_GLIB_FOUND ) macro_bool_to_bool( GPGME_QT_LIBRARIES GPGME_QT_FOUND ) # this would have been preferred: #set( GPGME_*_FOUND macro_bool_to_bool(GPGME_*_LIBRARIES) ) if ( GPGME_VANILLA_FOUND OR GPGME_GLIB_FOUND OR GPGME_QT_FOUND ) set( GPGME_FOUND true ) else() set( GPGME_FOUND false ) endif() else() set( GPGME_FOUND false ) set( GPGME_VANILLA_FOUND false ) set( GPGME_GLIB_FOUND false ) set( GPGME_QT_FOUND false ) find_path( GPGME_INCLUDES gpgme.h ${CMAKE_INCLUDE_PATH} ${CMAKE_INSTALL_PREFIX}/include ) find_library( _gpgme_vanilla_library NAMES gpgme libgpgme gpgme-11 libgpgme-11 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) find_library( _gpgme_glib_library NAMES gpgme-glib libgpgme-glib gpgme-glib-11 libgpgme-glib-11 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) find_library( _gpgme_qt_library NAMES gpgme-qt libgpgme-qt gpgme-qt-11 libgpgme-qt-11 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) find_library( _gpg_error_library NAMES gpg-error libgpg-error gpg-error-0 libgpg-error-0 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) set( GPGME_INCLUDES ${GPGME_INCLUDES} ) if ( _gpgme_vanilla_library AND _gpg_error_library ) set( GPGME_VANILLA_LIBRARIES ${_gpgme_vanilla_library} ${_gpg_error_library} ) set( GPGME_VANILLA_FOUND true ) set( GPGME_FOUND true ) endif() if ( _gpgme_glib_library AND _gpg_error_library ) set( GPGME_GLIB_LIBRARIES ${_gpgme_glib_library} ${_gpg_error_library} ) set( GPGME_GLIB_FOUND true ) set( GPGME_FOUND true ) endif() if ( _gpgme_qt_library AND _gpg_error_library ) set( GPGME_QT_LIBRARIES ${_gpgme_qt_library} ${_gpg_error_library} ) set( GPGME_QT_FOUND true ) set( GPGME_FOUND true ) endif() endif() # these are Unix-only: set( GPGME_PTHREAD_FOUND false ) set( GPGME_PTH_FOUND false ) set( HAVE_GPGME_PTHREAD 0 ) set( HAVE_GPGME_PTH 0 ) macro_bool_to_01( GPGME_FOUND HAVE_GPGME ) macro_bool_to_01( GPGME_VANILLA_FOUND HAVE_GPGME_VANILLA ) macro_bool_to_01( GPGME_GLIB_FOUND HAVE_GPGME_GLIB ) macro_bool_to_01( GPGME_QT_FOUND HAVE_GPGME_QT ) else() # not WIN32 # On *nix, we have the gpgme-config script which can tell us all we # need to know: # see WIN32 case for an explanation of what this does: set( _seem_to_have_cached_gpgme false ) if ( GPGME_INCLUDES ) if ( GPGME_VANILLA_LIBRARIES OR GPGME_PTHREAD_LIBRARIES OR GPGME_PTH_LIBRARIES ) set( _seem_to_have_cached_gpgme true ) endif() endif() if ( _seem_to_have_cached_gpgme ) macro_bool_to_bool( GPGME_VANILLA_LIBRARIES GPGME_VANILLA_FOUND ) macro_bool_to_bool( GPGME_PTHREAD_LIBRARIES GPGME_PTHREAD_FOUND ) macro_bool_to_bool( GPGME_PTH_LIBRARIES GPGME_PTH_FOUND ) if ( GPGME_VANILLA_FOUND OR GPGME_PTHREAD_FOUND OR GPGME_PTH_FOUND ) set( GPGME_FOUND true ) else() set( GPGME_FOUND false ) endif() else() set( GPGME_FOUND false ) set( GPGME_VANILLA_FOUND false ) set( GPGME_PTHREAD_FOUND false ) set( GPGME_PTH_FOUND false ) find_program( _GPGMECONFIG_EXECUTABLE NAMES gpgme-config ) # if gpgme-config has been found if ( _GPGMECONFIG_EXECUTABLE ) message( STATUS "Found gpgme-config at ${_GPGMECONFIG_EXECUTABLE}" ) exec_program( ${_GPGMECONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE GPGME_VERSION ) set( _GPGME_MIN_VERSION "1.1.7" ) if ( ${GPGME_VERSION} VERSION_LESS ${_GPGME_MIN_VERSION} ) message( STATUS "The installed version of gpgme is too old: ${GPGME_VERSION} (required: >= ${_GPGME_MIN_VERSION})" ) else() message( STATUS "Found gpgme v${GPGME_VERSION}, checking for flavours..." ) exec_program( ${_GPGMECONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE _gpgme_config_vanilla_libs RETURN_VALUE _ret ) if ( _ret ) set( _gpgme_config_vanilla_libs ) endif() exec_program( ${_GPGMECONFIG_EXECUTABLE} ARGS --thread=pthread --libs OUTPUT_VARIABLE _gpgme_config_pthread_libs RETURN_VALUE _ret ) if ( _ret ) set( _gpgme_config_pthread_libs ) endif() exec_program( ${_GPGMECONFIG_EXECUTABLE} ARGS --thread=pth --libs OUTPUT_VARIABLE _gpgme_config_pth_libs RETURN_VALUE _ret ) if ( _ret ) set( _gpgme_config_pth_libs ) endif() # append -lgpg-error to the list of libraries, if necessary foreach ( _flavour vanilla pthread pth ) if ( _gpgme_config_${_flavour}_libs AND NOT _gpgme_config_${_flavour}_libs MATCHES "lgpg-error" ) set( _gpgme_config_${_flavour}_libs "${_gpgme_config_${_flavour}_libs} -lgpg-error" ) endif() endforeach() if ( _gpgme_config_vanilla_libs OR _gpgme_config_pthread_libs OR _gpgme_config_pth_libs ) exec_program( ${_GPGMECONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE _GPGME_CFLAGS ) if ( _GPGME_CFLAGS ) string( REGEX REPLACE "(\r?\n)+$" " " _GPGME_CFLAGS "${_GPGME_CFLAGS}" ) string( REGEX REPLACE " *-I" ";" GPGME_INCLUDES "${_GPGME_CFLAGS}" ) endif() foreach ( _flavour vanilla pthread pth ) if ( _gpgme_config_${_flavour}_libs ) set( _gpgme_library_dirs ) set( _gpgme_library_names ) string( TOUPPER "${_flavour}" _FLAVOUR ) string( REGEX REPLACE " +" ";" _gpgme_config_${_flavour}_libs "${_gpgme_config_${_flavour}_libs}" ) foreach( _flag ${_gpgme_config_${_flavour}_libs} ) if ( "${_flag}" MATCHES "^-L" ) string( REGEX REPLACE "^-L" "" _dir "${_flag}" ) file( TO_CMAKE_PATH "${_dir}" _dir ) set( _gpgme_library_dirs ${_gpgme_library_dirs} "${_dir}" ) elseif( "${_flag}" MATCHES "^-l" ) string( REGEX REPLACE "^-l" "" _name "${_flag}" ) set( _gpgme_library_names ${_gpgme_library_names} "${_name}" ) endif() endforeach() set( GPGME_${_FLAVOUR}_FOUND true ) foreach( _name ${_gpgme_library_names} ) set( _gpgme_${_name}_lib ) # if -L options were given, look only there if ( _gpgme_library_dirs ) find_library( _gpgme_${_name}_lib NAMES ${_name} PATHS ${_gpgme_library_dirs} NO_DEFAULT_PATH ) endif() # if not found there, look in system directories if ( NOT _gpgme_${_name}_lib ) find_library( _gpgme_${_name}_lib NAMES ${_name} ) endif() # if still not found, then the whole flavour isn't found if ( NOT _gpgme_${_name}_lib ) if ( GPGME_${_FLAVOUR}_FOUND ) set( GPGME_${_FLAVOUR}_FOUND false ) set( _not_found_reason "dependant library ${_name} wasn't found" ) endif() endif() set( GPGME_${_FLAVOUR}_LIBRARIES ${GPGME_${_FLAVOUR}_LIBRARIES} "${_gpgme_${_name}_lib}" ) endforeach() #check_c_library_exists_explicit( gpgme gpgme_check_version "${_GPGME_CFLAGS}" "${GPGME_LIBRARIES}" GPGME_FOUND ) if ( GPGME_${_FLAVOUR}_FOUND ) message( STATUS " Found flavour '${_flavour}', checking whether it's usable...yes" ) else() message( STATUS " Found flavour '${_flavour}', checking whether it's usable...no" ) message( STATUS " (${_not_found_reason})" ) endif() endif() endforeach( _flavour ) # ensure that they are cached # This comment above doesn't make sense, the four following lines seem to do nothing. Alex set( GPGME_INCLUDES ${GPGME_INCLUDES} ) set( GPGME_VANILLA_LIBRARIES ${GPGME_VANILLA_LIBRARIES} ) set( GPGME_PTHREAD_LIBRARIES ${GPGME_PTHREAD_LIBRARIES} ) set( GPGME_PTH_LIBRARIES ${GPGME_PTH_LIBRARIES} ) if ( GPGME_VANILLA_FOUND OR GPGME_PTHREAD_FOUND OR GPGME_PTH_FOUND ) set( GPGME_FOUND true ) else() set( GPGME_FOUND false ) endif() endif() endif() endif() endif() # these are Windows-only: set( GPGME_GLIB_FOUND false ) set( GPGME_QT_FOUND false ) set( HAVE_GPGME_GLIB 0 ) set( HAVE_GPGME_QT 0 ) macro_bool_to_01( GPGME_FOUND HAVE_GPGME ) macro_bool_to_01( GPGME_VANILLA_FOUND HAVE_GPGME_VANILLA ) macro_bool_to_01( GPGME_PTHREAD_FOUND HAVE_GPGME_PTHREAD ) macro_bool_to_01( GPGME_PTH_FOUND HAVE_GPGME_PTH ) endif() # WIN32 | Unix set( _gpgme_flavours "" ) if ( GPGME_VANILLA_FOUND ) set( _gpgme_flavours "${_gpgme_flavours} vanilla" ) endif() if ( GPGME_GLIB_FOUND ) set( _gpgme_flavours "${_gpgme_flavours} Glib" ) endif() if ( GPGME_QT_FOUND ) set( _gpgme_flavours "${_gpgme_flavours} Qt" ) endif() if ( GPGME_PTHREAD_FOUND ) set( _gpgme_flavours "${_gpgme_flavours} pthread" ) endif() if ( GPGME_PTH_FOUND ) set( _gpgme_flavours "${_gpgme_flavours} pth" ) endif() # determine the library in one of the found flavours, can be reused e.g. by FindQgpgme.cmake, Alex foreach(_currentFlavour vanilla glib qt pth pthread) if(NOT GPGME_LIBRARY_DIR) get_filename_component(GPGME_LIBRARY_DIR "${_gpgme_${_currentFlavour}_lib}" PATH) endif() endforeach() if ( NOT Gpgme_FIND_QUIETLY ) if ( GPGME_FOUND ) message( STATUS "Usable gpgme flavours found: ${_gpgme_flavours}" ) else() message( STATUS "No usable gpgme flavours found." ) endif() endif() if ( Gpgme_FIND_REQUIRED AND NOT GPGME_FOUND ) message( FATAL_ERROR "Did not find GPGME" ) endif() if ( WIN32 ) set( _gpgme_homepage "http://www.gpg4win.org" ) else() set( _gpgme_homepage "http://www.gnupg.org/related_software/gpgme" ) endif() set_package_properties(Gpgme PROPERTIES DESCRIPTION "The GnuPG Made Easy (GPGME) library)" URL ${_gpgme_homepage}) set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS_gpgme_saved ) libzypp-17.7.0/cmake/modules/FindHal.cmake000066400000000000000000000015651334444677500203660ustar00rootroot00000000000000 if(HAL_INCLUDE_DIR AND HAL_LIBRARY AND HAL_STORAGE_LIBRARY) # Already in cache, be silent set(HAL_FIND_QUIETLY TRUE) endif(HAL_INCLUDE_DIR AND HAL_LIBRARY AND HAL_STORAGE_LIBRARY) set(HAL_LIBRARY) set(HAL_INCLUDE_DIR) set(HAL_STORAGE_LIBRARY) FIND_PATH(HAL_INCLUDE_DIR hal/libhal.h /usr/include /usr/local/include ) FIND_LIBRARY(HAL_LIBRARY NAMES hal PATHS /usr/lib /usr/local/lib ) FIND_LIBRARY(HAL_STORAGE_LIBRARY NAMES hal-storage PATHS /usr/lib /usr/local/lib ) if(HAL_INCLUDE_DIR AND HAL_LIBRARY AND HAL_STORAGE_LIBRARY) MESSAGE( STATUS "hal found: includes in ${HAL_INCLUDE_DIR}, library in ${HAL_LIBRARY}") set(HAL_FOUND TRUE) else(HAL_INCLUDE_DIR AND HAL_LIBRARY AND HAL_STORAGE_LIBRARY) MESSAGE( STATUS "hal not found") endif(HAL_INCLUDE_DIR AND HAL_LIBRARY AND HAL_STORAGE_LIBRARY) MARK_AS_ADVANCED(HAL_INCLUDE_DIR HAL_LIBRARY HAL_STORAGE_LIBRARY) libzypp-17.7.0/cmake/modules/FindOpenSSL.cmake000066400000000000000000000064551334444677500211500ustar00rootroot00000000000000# - Try to find the OpenSSL encryption library # Once done this will define # # OPENSSL_FOUND - system has the OpenSSL library # OPENSSL_INCLUDE_DIR - the OpenSSL include directory # OPENSSL_LIBRARIES - The libraries needed to use OpenSSL if (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) # in cache already SET(OPENSSL_FOUND TRUE) else (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h /usr/include/ /usr/local/include/ $ENV{ProgramFiles}/OpenSSL/include/ $ENV{SystemDrive}/OpenSSL/include/ ) if(WIN32 AND MSVC) # /MD and /MDd are the standard values - if somone wants to use # others, the libnames have to change here too # see http://www.openssl.org/support/faq.html#PROG2 for their meaning FIND_LIBRARY(SSL_EAY_DEBUG NAMES ssleay32MDd PATHS $ENV{ProgramFiles}/OpenSSL/lib/VC/ $ENV{SystemDrive}/OpenSSL/lib/VC/ ) FIND_LIBRARY(SSL_EAY_RELEASE NAMES ssleay32MD PATHS $ENV{ProgramFiles}/OpenSSL/lib/VC/ $ENV{SystemDrive}/OpenSSL/lib/VC/ ) FIND_LIBRARY(LIB_EAY_DEBUG NAMES libeay32MDd PATHS $ENV{ProgramFiles}/OpenSSL/lib/VC/ $ENV{SystemDrive}/OpenSSL/lib/VC/ ) FIND_LIBRARY(LIB_EAY_RELEASE NAMES libeay32MD PATHS $ENV{ProgramFiles}/OpenSSL/lib/VC/ $ENV{SystemDrive}/OpenSSL/lib/VC/ ) IF(MSVC_IDE) IF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) SET(OPENSSL_LIBRARIES optimized ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE} debug ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG}) ELSE(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) MESSAGE(FATAL_ERROR "Could not find the debug and release version of openssl") ENDIF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) ELSE(MSVC_IDE) STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER) IF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) SET(OPENSSL_LIBRARIES ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG}) ELSE(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) SET(OPENSSL_LIBRARIES ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE}) ENDIF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) ENDIF(MSVC_IDE) MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE LIB_EAY_DEBUG LIB_EAY_RELEASE) else(WIN32 AND MSVC) FIND_LIBRARY(OPENSSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD libeay32 libeay32MD PATHS /usr/lib /usr/local/lib ) FIND_LIBRARY(CRYPTO_LIBRARIES crypto PATHS /usr/lib /usr/local/lib ) endif(WIN32 AND MSVC) if (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) set(OPENSSL_FOUND TRUE) endif (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) if (CRYPTO_LIBRARIES) set(CRYPTO_FOUND TRUE) message(STATUS "Found libcrypto: ${CRYPTO_LIBRARIES}") endif (CRYPTO_LIBRARIES) if (OPENSSL_FOUND) if (NOT OpenSSL_FIND_QUIETLY) message(STATUS "Found OpenSSL: ${OPENSSL_LIBRARIES}") endif (NOT OpenSSL_FIND_QUIETLY) else (OPENSSL_FOUND) if (OpenSSL_FIND_REQUIRED) message(FATAL_ERROR "Could NOT find OpenSSL") endif (OpenSSL_FIND_REQUIRED) endif (OPENSSL_FOUND) MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES) endif (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) libzypp-17.7.0/cmake/modules/FindRpm.cmake000066400000000000000000000017731334444677500204210ustar00rootroot00000000000000 if(RPM_INCLUDE_DIR AND RPM_LIBRARY) # Already in cache, be silent set(RPM_FIND_QUIETLY TRUE) endif(RPM_INCLUDE_DIR AND RPM_LIBRARY) set(RPM_LIBRARY) set(RPM_INCLUDE_DIR) FIND_PATH(RPM_INCLUDE_DIR rpm/rpmdb.h /usr/include /usr/local/include ) set(RPM_SUSPECT_VERSION "RPM_SUSPECT_VERSION-NOTFOUND" ) if ( RPM_INCLUDE_DIR ) FIND_PATH(RPM_SUSPECT_VERSION rpm/rpm4compat.h ${RPM_INCLUDE_DIR} NO_DEFAULT_PATH ) if ( RPM_SUSPECT_VERSION ) set(RPM_SUSPECT_VERSION "5.x" ) else ( RPM_SUSPECT_VERSION ) set(RPM_SUSPECT_VERSION "4.x" ) endif ( RPM_SUSPECT_VERSION ) endif ( RPM_INCLUDE_DIR ) FIND_LIBRARY(RPM_LIBRARY NAMES rpm PATHS /usr/lib /usr/local/lib ) if(RPM_INCLUDE_DIR AND RPM_LIBRARY) MESSAGE( STATUS "rpm found: includes in ${RPM_INCLUDE_DIR}, library in ${RPM_LIBRARY} (suspect ${RPM_SUSPECT_VERSION})") set(RPM_FOUND TRUE) else(RPM_INCLUDE_DIR AND RPM_LIBRARY) MESSAGE( STATUS "rpm not found") endif(RPM_INCLUDE_DIR AND RPM_LIBRARY) MARK_AS_ADVANCED(RPM_INCLUDE_DIR RPM_LIBRARY) libzypp-17.7.0/cmake/modules/FindUdev.cmake000066400000000000000000000010251334444677500205540ustar00rootroot00000000000000 SET( UDEV_LIBRARY ) SET( UDEV_INCLUDE_DIR ) FIND_PATH( UDEV_INCLUDE_DIR libudev.h /usr/include /usr/local/include ) FIND_LIBRARY( UDEV_LIBRARY NAMES udev PATHS /usr/lib /usr/local/lib ) # check if udev is usable for us INCLUDE (CheckSymbolExists) SET(CMAKE_REQUIRED_LIBRARIES udev) CHECK_SYMBOL_EXISTS(udev_enumerate_new libudev.h USABLE_UDEV) SET(CMAKE_REQUIRED_LIBRARIES "") FIND_PACKAGE_HANDLE_STANDARD_ARGS( Udev DEFAULT_MSG UDEV_LIBRARY UDEV_INCLUDE_DIR USABLE_UDEV) MARK_AS_ADVANCED( UDEV_LIBRARY UDEV_INCLUDE_DIR ) libzypp-17.7.0/cmake/modules/FindZsync.cmake000066400000000000000000000014461334444677500207660ustar00rootroot00000000000000 if(ZSYNC_INCLUDE_DIR AND ZSYNC_LIBRARY) # Already in cache, be silent set(ZSYNC_FIND_QUIETLY TRUE) endif(ZSYNC_INCLUDE_DIR AND ZSYNC_LIBRARY) set(ZSYNC_LIBRARY) set(ZSYNC_INCLUDE_DIR) FIND_PATH(ZSYNC_INCLUDE_DIR zsync.h /usr/include /usr/local/include ) FIND_LIBRARY(ZSYNC_LIBRARY NAMES zsync PATHS /usr/lib /usr/local/lib ) FIND_LIBRARY(RCKSUM_LIBRARY NAMES rcksum PATHS /usr/lib /usr/local/lib ) if(ZSYNC_INCLUDE_DIR AND ZSYNC_LIBRARY AND RCKSUM_LIBRARY) MESSAGE( STATUS "zsync found: includes in ${ZSYNC_INCLUDE_DIR}, library in ${ZSYNC_LIBRARY}") set(ZSYNC_FOUND TRUE) else(ZSYNC_INCLUDE_DIR AND ZSYNC_LIBRARY) MESSAGE( STATUS "zsync not found") endif(ZSYNC_INCLUDE_DIR AND ZSYNC_LIBRARY AND RCKSUM_LIBRARY) MARK_AS_ADVANCED(ZSYNC_INCLUDE_DIR ZSYNC_LIBRARY RCKSUM_LIBRARY)libzypp-17.7.0/cmake/modules/FindZypp.cmake000066400000000000000000000024561334444677500206240ustar00rootroot00000000000000 IF (DEFINED ZYPP_PREFIX) MESSAGE(STATUS "ZYpp library prefix set to ${ZYPP_PREFIX}") ELSE (DEFINED ZYPP_PREFIX) MESSAGE(STATUS "ZYpp path not set. Looking for it.") ENDIF (DEFINED ZYPP_PREFIX) if(ZYPP_INCLUDE_DIR AND ZYPP_LIBRARY) # Already in cache, be silent SET(ZYPP_FIND_QUIETLY TRUE) endif(ZYPP_INCLUDE_DIR AND ZYPP_LIBRARY) set(ZYPP_LIBRARY) set(ZYPP_INCLUDE_DIR) IF (DEFINED ZYPP_PREFIX) MESSAGE( STATUS "Looking in ${ZYPP_PREFIX}") FIND_PATH(ZYPP_INCLUDE_DIR zypp/ZYpp.h ${ZYPP_PREFIX}/include NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH ) FIND_LIBRARY(ZYPP_LIBRARY NAMES zypp PATHS ${ZYPP_PREFIX}/lib ${ZYPP_PREFIX}/lib64 NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH ) ELSE (DEFINED ZYPP_PREFIX) FIND_PATH(ZYPP_INCLUDE_DIR zypp/ZYpp.h /usr/include /usr/local/include ) FIND_LIBRARY(ZYPP_LIBRARY NAMES zypp PATHS /usr/lib /usr/local/lib ) ENDIF (DEFINED ZYPP_PREFIX) if(ZYPP_INCLUDE_DIR AND ZYPP_LIBRARY) MESSAGE( STATUS "ZYpp found: includes in ${ZYPP_INCLUDE_DIR}, library in ${ZYPP_LIBRARY}") set(ZYPP_FOUND TRUE) else(ZYPP_INCLUDE_DIR AND ZYPP_LIBRARY) MESSAGE( FATAL "ZYpp not found") endif(ZYPP_INCLUDE_DIR AND ZYPP_LIBRARY) MARK_AS_ADVANCED(ZYPP_INCLUDE_DIR ZYPP_LIBRARY) libzypp-17.7.0/cmake/modules/Findlibproxy.cmake000066400000000000000000000004521334444677500215240ustar00rootroot00000000000000# The "real" libproxy provides its own Findlibproxy.cmake but saner, simpler # alternatives like the PacRunner replacement which *just* queries PacRunner # directly will only provide a .pc file. So use pkg-config to find it... INCLUDE ( FindPkgConfig ) PKG_SEARCH_MODULE( LIBPROXY libproxy-1.0 ) libzypp-17.7.0/cmake/modules/ZyppCommon.cmake000066400000000000000000000125201334444677500211650ustar00rootroot00000000000000# Library IF ( DEFINED LIB ) SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}" ) ELSE ( DEFINED LIB ) IF (CMAKE_SIZEOF_VOID_P MATCHES "8") SET( LIB_SUFFIX "64" ) ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8") SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" ) ENDIF ( DEFINED LIB ) MESSAGE(STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}" ) # Headers IF (DEFINED INCLUDE) SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE}") else (DEFINED INCLUDE) SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") ENDIF (DEFINED INCLUDE) MESSAGE (STATUS "Header files will be installed in ${INCLUDE_INSTALL_DIR}") # system configuration dir (etc) IF( NOT DEFINED SYSCONFDIR ) IF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" ) # if installing in usr, set sysconfg to etc SET( SYSCONFDIR /etc ) ELSE ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" ) SET ( SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc" ) ENDIF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" ) ENDIF( NOT DEFINED SYSCONFDIR ) MESSAGE(STATUS "Config files will be installed in ${SYSCONFDIR}" ) # usr INSTALL_PREFIX IF( DEFINED CMAKE_INSTALL_PREFIX ) SET( INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} ) ELSE( DEFINED CMAKE_INSTALL_PREFIX ) SET( INSTALL_PREFIX /usr ) ENDIF( DEFINED CMAKE_INSTALL_PREFIX ) # system configuration dir (etc) IF( NOT DEFINED MANDIR ) SET( MANDIR ${INSTALL_PREFIX}/share/man ) ENDIF( NOT DEFINED MANDIR ) MESSAGE( "** Manual files will be installed in ${MANDIR}" ) #################################################################### # CONFIGURATION # #################################################################### IF( NOT DEFINED DOC_INSTALL_DIR ) SET( DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}" CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})" FORCE ) ENDIF( NOT DEFINED DOC_INSTALL_DIR ) #################################################################### # INCLUDES # #################################################################### #SET (CMAKE_INCLUDE_DIRECTORIES_BEFORE ON) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} SYSTEM ) #################################################################### # RPM SPEC # #################################################################### MACRO(SPECFILE) MESSAGE(STATUS "Writing spec file...") CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PACKAGE}.spec.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}.spec @ONLY) MESSAGE(STATUS "I hate you rpm-lint...!!!") IF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}-rpmlintrc @ONLY) ENDIF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake) ENDMACRO(SPECFILE) MACRO(PKGCONFGFILE) MESSAGE(STATUS "Writing pkg-config file...") CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp.pc.cmake ${CMAKE_BINARY_DIR}/libzypp.pc @ONLY) INSTALL( FILES ${CMAKE_BINARY_DIR}/libzypp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ) ENDMACRO(PKGCONFGFILE) #################################################################### # INSTALL # #################################################################### MACRO(GENERATE_PACKAGING PACKAGE VERSION) # The following components are regex's to match anywhere (unless anchored) # in absolute path + filename to find files or directories to be excluded # from source tarball. SET (CPACK_SOURCE_IGNORE_FILES # hidden files "/\\\\..+$" # temporary files "\\\\.swp$" # backup files "~$" # others "\\\\.#" "/#" "/build/" "/_build/" # used before "/CVS/" "\\\\.o$" "\\\\.lo$" "\\\\.la$" "Makefile\\\\.in$" ) #SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Novell's package management core engine.") SET(CPACK_PACKAGE_VENDOR "Novell Inc.") #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt") #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") #SET(CPACK_PACKAGE_VERSION_MAJOR ${version_major}) #SET(CPACK_PACKAGE_VERSION_MINOR ${version_minor}) #SET(CPACK_PACKAGE_VERSION_PATCH ${version_patch}) SET( CPACK_GENERATOR "TBZ2") SET( CPACK_SOURCE_GENERATOR "TBZ2") SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" ) INCLUDE(CPack) SPECFILE() ADD_CUSTOM_TARGET( svncheck COMMAND cd ${CMAKE_SOURCE_DIR} && LC_ALL=C git status | grep -q "nothing to commit .working directory clean." ) SET( AUTOBUILD_COMMAND COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2 COMMAND ${CMAKE_MAKE_PROGRAM} package_source COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes" ) ADD_CUSTOM_TARGET( srcpackage_local ${AUTOBUILD_COMMAND} ) ADD_CUSTOM_TARGET( srcpackage COMMAND ${CMAKE_MAKE_PROGRAM} svncheck ${AUTOBUILD_COMMAND} ) ENDMACRO(GENERATE_PACKAGING) libzypp-17.7.0/devel/000077500000000000000000000000001334444677500144175ustar00rootroot00000000000000libzypp-17.7.0/devel/CMakeLists.txt000066400000000000000000000003451334444677500171610ustar00rootroot00000000000000INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${LIBZYPP_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) CONFIGURE_FILE(${LIBZYPP_SOURCE_DIR}/devel/genclass.in ${LIBZYPP_BINARY_DIR}/devel/genclass @ONLY) ADD_SUBDIRECTORY(devel.ma) libzypp-17.7.0/devel/devel.ma/000077500000000000000000000000001334444677500161125ustar00rootroot00000000000000libzypp-17.7.0/devel/devel.ma/Basic.cc000066400000000000000000000175121334444677500174500ustar00rootroot00000000000000#include "Tools.h" #include #include #include #include #include #include #include #include #include #include #include "zypp/media/MediaManager.h" #include "zypp/MediaSetAccess.h" #include "zypp/Fetcher.h" static const Pathname sysRoot( "/" ); using namespace std; using namespace zypp; using namespace zypp::ui; #include struct DownloadProgressReceive : public callback::ReceiveReport { DownloadProgressReceive() { connect(); } #if 0 enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore the failure }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error ACCESS_DENIED, // user authent. failed while accessing restricted file ERROR // other error }; #endif virtual void start( const Url & file, Pathname localfile ) { USR << "DP +++ " << file << endl; lp = 0; } virtual bool progress(int value, const Url &file, double dbps_avg = -1, double dbps_current = -1) { if ( abs(value-lp) >= 20 || value == 100 && lp != 100 ) { USR << "DP " << file << " " << value << "%" << endl; lp = value; } return true; } virtual Action problem( const Url &file , Error error , const std::string &description ) { USR << "DP !!! " << file << " (" << error << ")" << endl; return ABORT; } virtual void finish( const Url &file , Error error , const std::string &reason ) { USR << "DP --- " << file << " (" << error << ")" << endl; } int lp; }; //////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// struct DownloadResolvableReceive : public callback::ReceiveReport { DownloadResolvableReceive() { connect(); } #if 0 enum Action { ABORT, // abort and return error RETRY, // retry IGNORE, // ignore this resolvable but continue }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error INVALID // the downloaded file is invalid }; #endif virtual void start( Resolvable::constPtr resolvable_ptr, const Url &url ) { USR << "+++ " << resolvable_ptr << endl; } // Dowmload delta rpm: // - path below url reported on start() // - expected download size (0 if unknown) // - download is interruptable // - problems are just informal virtual void startDeltaDownload( const Pathname & /*filename*/, const ByteCount & /*downloadsize*/ ) { USR << __PRETTY_FUNCTION__ << endl; } virtual bool progressDeltaDownload( int /*value*/ ) { USR << __PRETTY_FUNCTION__ << endl; return true; } virtual void problemDeltaDownload( const std::string &/*description*/ ) { USR << __PRETTY_FUNCTION__ << endl; } virtual void finishDeltaDownload() { USR << __PRETTY_FUNCTION__ << endl; } // Apply delta rpm: // - local path of downloaded delta // - aplpy is not interruptable // - problems are just informal virtual void startDeltaApply( const Pathname & /*filename*/ ) { USR << __PRETTY_FUNCTION__ << endl; } virtual void progressDeltaApply( int /*value*/ ) { USR << __PRETTY_FUNCTION__ << endl; } virtual void problemDeltaApply( const std::string &/*description*/ ) { USR << __PRETTY_FUNCTION__ << endl; } virtual void finishDeltaApply() { USR << __PRETTY_FUNCTION__ << endl; } // return false if the download should be aborted right now virtual bool progress(int value, Resolvable::constPtr resolvable_ptr) { if ( 1 || abs(value-lp) >= 20 || value == 100 && lp != 100 ) { USR << resolvable_ptr << " " << value << "%" << endl; lp = value; } return true; } virtual Action problem( Resolvable::constPtr resolvable_ptr , Error error , const std::string &/*description*/ ) { USR << "!!! " << resolvable_ptr << " (" << error << ")" << endl; return ABORT; } virtual void finish(Resolvable::constPtr resolvable_ptr , Error error , const std::string &/*reason*/ ) { USR << "--- " << resolvable_ptr << " (" << error << ")" << endl; } int lp; }; bool queryInstalledEditionHelper( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) { if ( ed_r == Edition::noedition ) return true; if ( name_r == "kernel-default" && ed_r == Edition("2.6.22.5-10") ) return true; if ( name_r == "update-test-affects-package-manager" && ed_r == Edition("1.1-6") ) return true; return false; } ManagedFile repoProvidePackage( const PoolItem & pi ) { ResPool _pool( getZYpp()->pool() ); repo::RepoMediaAccess _access; // Redirect PackageProvider queries for installed editions // (in case of patch/delta rpm processing) to rpmDb. repo::PackageProviderPolicy packageProviderPolicy; packageProviderPolicy.queryInstalledCB( queryInstalledEditionHelper ); Package::constPtr p = asKind( pi.resolvable() ); // Build a repository list for repos // contributing to the pool repo::DeltaCandidates deltas;//( repo::makeDeltaCandidates( _pool.knownRepositoriesBegin(), _pool.knownRepositoriesEnd() ) ); repo::PackageProvider pkgProvider( _access, p, deltas, packageProviderPolicy ); return pkgProvider.providePackage(); } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { --argc; ++argv; zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; ::unsetenv( "ZYPP_CONF" ); ZConfig::instance(); DownloadProgressReceive _dpr; DownloadResolvableReceive _drr; TestSetup::LoadSystemAt( sysRoot ); /////////////////////////////////////////////////////////////////// ResPool pool( ResPool::instance() ); sat::Pool satpool( sat::Pool::instance() ); /////////////////////////////////////////////////////////////////// dumpRange( USR, satpool.reposBegin(), satpool.reposEnd() ) << endl; USR << "pool: " << pool << endl; if ( 0 ) { PoolItem pi( getPi( "CDT", "amarok", Edition(), Arch_empty ) ); SEC << pi << endl; ManagedFile f( repoProvidePackage( pi ) ); SEC << f << endl; } { Url url("cd:///?devices=/dev/sr0"); Pathname path(url.getPathName()); url.setPathName ("/"); MediaSetAccess access(url); Pathname local = access.provideFile(path); SEC << local << endl; } if ( 0 ) { Url url("http://download.opensuse.org/debug/distribution/11.4/repo/oss/content.asc"); url.setPathName ("/"); MediaSetAccess access(url); zypp::Fetcher fch; fch.reset(); fch.setOptions(zypp::Fetcher::AutoAddIndexes); // path - add "/" to the beginning if it's missing there std::string media_path("/debug/distribution/11.4/repo/oss/content.ascx"); zypp::OnMediaLocation mloc(media_path, 1); mloc.setOptional(true); zypp::filesystem::TmpDir tmpdir( zypp::filesystem::TmpDir::defaultLocation() ); fch.addIndex(mloc); fch.start(tmpdir.path(), access); } // f.resetDispose(); // ExternalProgram("find /tmp/var") >> DBG; // DBG << endl; INT << "===[END]============================================" << endl; zypp::base::LogControl::instance().logNothing(); return 0; } libzypp-17.7.0/devel/devel.ma/CMakeLists.txt000066400000000000000000000015411334444677500206530ustar00rootroot00000000000000## ############################################################ #ADD_SUBDIRECTORY( doc ) ## ############################################################ SET(THREAD_LIBRARY boost_thread) ## ############################################################ ADD_CUSTOM_TARGET( ma_test ALL DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ma_test COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/ma_test ${CMAKE_CURRENT_BINARY_DIR}/ma_test ) ## ############################################################ FILE( GLOB ALLCC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc" ) STRING( REPLACE ".cc" ";" APLLPROG ${ALLCC} ) FOREACH( loop_var ${APLLPROG} ) ADD_EXECUTABLE( ${loop_var} ${loop_var}.cc ) TARGET_LINK_LIBRARIES( ${loop_var} boost_signals zypp ${THREAD_LIBRARY} ) ENDFOREACH( loop_var ) ## ############################################################ libzypp-17.7.0/devel/devel.ma/ExplicitMap.h000066400000000000000000000156461334444677500205160ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ExplicitMap.h * */ #ifndef ZYPP_EXPLICITMAP_H #define ZYPP_EXPLICITMAP_H #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ExplicitMap // /** A simple lookup map using default value for not existing entries. * * A std::map providing operator[] const only. Nor existing * entries are mapped to a default value. Entries are maipulated vis * methods \ref set and \ref unset. Helper classes \ref TmpSet, * \ref TmpUnset and \ref TmpSetDefault are provided to temporarily * change and automaticlly restore values. */ template class ExplicitMap { public: typedef typename boost::call_traits::value_type value_type; typedef typename boost::call_traits::reference reference; typedef typename boost::call_traits::const_reference const_reference; typedef typename boost::call_traits::param_type param_type; private: typedef typename std::map map_type; typedef typename map_type::iterator iterator; public: typedef typename map_type::key_type key_type; typedef typename map_type::size_type size_type; typedef typename map_type::const_iterator const_iterator; public: ExplicitMap() {} explicit ExplicitMap( param_type mapDefault_r ) : _mapDefault( mapDefault_r ) {} template ExplicitMap( TInputIterator first_r, TInputIterator last_r ) : _map( first_r, last_r ) {} template ExplicitMap( TInputIterator first_r, TInputIterator last_r, param_type mapDefault_r ) : _map( first_r, last_r ) , _mapDefault( mapDefault_r ) {} public: size_type size() const { return _map.size(); } bool empty() const { return _map.empty(); } const_iterator begin() const { return _map.begin(); } const_iterator end() const { return _map.end(); } const_iterator find( const key_type & key_r ) const { return _map.find( key_r ); } bool has( const key_type & key_r ) const { return _map.find( key_r ) != end(); } const_reference get( const key_type & key_r ) const { const_iterator it = _map.find( key_r ); return( it == _map.end() ? _mapDefault : it->second ); } const_reference getDefault() const { return _mapDefault; } const_reference operator[]( const key_type & key_r ) const { return get( key_r ); } public: void clear() { _map.clear(); } void set( const key_type & key_r, param_type value_r ) { _map[key_r] = value_r; } template void set( TInputIterator first_r, TInputIterator last_r ) { _map.insert( first_r, last_r ); } void unset( const key_type & key_r ) { _map.erase( key_r ); } void setDefault( param_type value_r ) { _mapDefault = value_r; } public: class TmpSet; class TmpUnset; class TmpSetDefault; //private: value_type _mapDefault; map_type _map; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ExplicitMap::TmpSet // /** Temporarily set a value. */ template class ExplicitMap::TmpSet { public: TmpSet( ExplicitMap & map_r, const key_type & key_r, param_type value_r ) : _map( map_r ) , _key( key_r ) { const_iterator it = _map.find( _key ); if ( it == _map.end() ) { _wasDefault = true; } else { _wasDefault = false; _value = it->second; } _map.set( _key, value_r ); } ~TmpSet() { if ( _wasDefault ) { _map.unset( _key ); } else { _map.set( _key, _value ); } } private: ExplicitMap & _map; key_type _key; param_type _value; bool _wasDefault; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ExplicitMap::TmpUnset // /** Temporarily unset a value. */ template class ExplicitMap::TmpUnset { public: TmpUnset( ExplicitMap & map_r, const key_type & key_r ) : _map( map_r ) , _key( key_r ) { const_iterator it = _map.find( _key ); if ( it == _map.end() ) { _wasDefault = true; } else { _wasDefault = false; _value = it->second; _map.unset( _key ); } } ~TmpUnset() { if ( ! _wasDefault ) { _map.set( _key, _value ); } } private: ExplicitMap & _map; key_type _key; param_type _value; bool _wasDefault; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ExplicitMap::TmpSetDefault // /** Temporarily change the default value. */ template class ExplicitMap::TmpSetDefault { public: TmpSetDefault( ExplicitMap & map_r, param_type value_r ) : _map( map_r ) , _value( _map.getDefault() ) { _map.setDefault( value_r ); } ~TmpSetDefault() { _map.setDefault( _value ); } private: ExplicitMap & _map; param_type _value; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_EXPLICITMAP_H libzypp-17.7.0/devel/devel.ma/MT.cc000066400000000000000000000043501334444677500167430ustar00rootroot00000000000000//#include #include #include #include #include #include #include #include #include #include #include "zypp/ExternalProgram.h" using std::endl; using zypp::debug::Measure; /////////////////////////////////////////////////////////////////// namespace zypp { /** Run a number of tasks using \c threadCount threads. * * \code * std::vector> tasks; * for ( int i = 0; i < 100; ++i ) * { * tasks.push_back( [i]() * { * MIL << '[' << i << "]" << endl; * }); * } * runTasks( tasks, 10 ); * \endcode */ template void runTasks( const std::vector& tasks, size_t threadCount = 1 ) { if ( threadCount ) { boost::thread_group group; const size_t taskCount = (tasks.size() / threadCount) + 1; for ( size_t start = 0; start < tasks.size(); start += taskCount ) { group.create_thread( [&tasks, start, taskCount]() { const size_t end = std::min( tasks.size(), start + taskCount ); for ( size_t i = start; i < end; ++i ) tasks[i](); }); } group.join_all(); } else { for_( f, tasks.begin(), tasks.end() ) (*f)(); } } } /////////////////////////////////////////////////////////////////// using namespace zypp; int main( int argc, char * argv[] ) try { --argc; ++argv; zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; /////////////////////////////////////////////////////////////////// std::vector> tasks; for ( int i = 0; i < 100; ++i ) { tasks.push_back( [i]() { MIL << '[' << i << "]" << endl; }); } { Measure x( "THREAD" ); runTasks( tasks, 100 ); } /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } catch ( const zypp::Exception & exp ) { INT << exp << endl << exp.historyAsString(); } catch (...) {} libzypp-17.7.0/devel/devel.ma/MaTest.cc000066400000000000000000000356251334444677500176310ustar00rootroot00000000000000#include "Tools.h" #include "zypp/PoolQueryResult.h" #include #include #include #include #include #include #include #include #include #include #include #include "zypp/ResPoolProxy.h" #include "zypp/ZYppCallbacks.h" #include "zypp/ResPool.h" #include "zypp/ResFilters.h" #include "zypp/ResObjects.h" #include "zypp/Digest.h" #include "zypp/PackageKeyword.h" #include "zypp/TmpPath.h" #include "zypp/ManagedFile.h" #include "zypp/RepoManager.h" #include "zypp/Repository.h" #include "zypp/RepoInfo.h" #include "zypp/repo/PackageProvider.h" #include "zypp/ResPoolProxy.h" #include "zypp/sat/Pool.h" #include "zypp/sat/LocaleSupport.h" #include "zypp/sat/LookupAttr.h" #include "zypp/sat/SolvableSet.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/WhatObsoletes.h" #include "zypp/PoolQuery.h" #include "zypp/ServiceInfo.h" #include using namespace std; using namespace zypp; using namespace zypp::functor; using namespace zypp::ui; /////////////////////////////////////////////////////////////////// static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" ); /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// bool queryInstalledEditionHelper( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) { if ( ed_r == Edition::noedition ) return true; if ( name_r == "kernel-default" && ed_r == Edition("2.6.22.5-10") ) return true; if ( name_r == "update-test-affects-package-manager" && ed_r == Edition("1.1-6") ) return true; return false; } ManagedFile repoProvidePackage( const PoolItem & pi ) { ResPool _pool( getZYpp()->pool() ); repo::RepoMediaAccess _access; // Redirect PackageProvider queries for installed editions // (in case of patch/delta rpm processing) to rpmDb. repo::PackageProviderPolicy packageProviderPolicy; packageProviderPolicy.queryInstalledCB( queryInstalledEditionHelper ); Package::constPtr p = asKind(pi.resolvable()); // Build a repository list for repos // contributing to the pool repo::DeltaCandidates deltas( repo::makeDeltaCandidates( _pool.knownRepositoriesBegin(), _pool.knownRepositoriesEnd() ) ); repo::PackageProvider pkgProvider( _access, p, deltas, packageProviderPolicy ); return pkgProvider.providePackage(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { template inline int invokeOnEach( TLIterator lbegin_r, TLIterator lend_r, TRIterator rbegin_r, TRIterator rend_r, TFunction fnc_r ) { int cnt = 0; for ( TLIterator lit = lbegin_r; lit != lend_r; ++lit ) { for ( TRIterator rit = rbegin_r; rit != rend_r; ++rit ) { ++cnt; if ( ! fnc_r( *lit, *rit ) ) return -cnt; } } return cnt; } } /////////////////////////////////////////////////////////////////// std::ostream & testDump( std::ostream & str, const PoolItem & pi ) { str << pi << endl; Package::constPtr p( asKind(pi) ); if ( p ) { #define OUTS(V) str << str::form("%-25s: ",#V) << p->V() << endl Locale l( "de" ); str << str::form("%-25s: ",l.code().c_str()) << p->summary(l) << endl; l = Locale( "fr" ); str << str::form("%-25s: ",l.code().c_str()) << p->summary(l) << endl; l = Locale( "dsdf" ); str << str::form("%-25s: ",l.code().c_str()) << p->summary(l) << endl; OUTS( summary ); OUTS( installSize ); OUTS( downloadSize ); OUTS( sourcePkgName ); OUTS( sourcePkgEdition ); OUTS( checksum ); OUTS( location ); #undef OUTS } return str; } struct Xprint { bool operator()( const PoolItem & obj_r ) { //MIL << obj_r << endl; //DBG << " -> " << obj_r->satSolvable() << endl; return true; } bool operator()( const sat::Solvable & obj_r ) { //dumpOn( MIL, obj_r ) << endl; return true; } }; /////////////////////////////////////////////////////////////////// struct SetTransactValue { SetTransactValue( ResStatus::TransactValue newVal_r, ResStatus::TransactByValue causer_r ) : _newVal( newVal_r ) , _causer( causer_r ) {} ResStatus::TransactValue _newVal; ResStatus::TransactByValue _causer; bool operator()( const PoolItem & pi ) const { bool ret = pi.status().setTransactValue( _newVal, _causer ); if ( ! ret ) ERR << _newVal << _causer << " " << pi << endl; return ret; } }; struct StatusReset : public SetTransactValue { StatusReset() : SetTransactValue( ResStatus::KEEP_STATE, ResStatus::USER ) {} }; struct StatusInstall : public SetTransactValue { StatusInstall() : SetTransactValue( ResStatus::TRANSACT, ResStatus::USER ) {} }; /////////////////////////////////////////////////////////////////// bool solve() { bool rres = false; { //zypp::base::LogControl::TmpLineWriter shutUp; rres = getZYpp()->resolver()->resolvePool(); } if ( ! rres ) { ERR << "resolve " << rres << endl; getZYpp()->resolver()->problems(); return false; } MIL << "resolve " << rres << endl; return true; } bool install() { ZYppCommitPolicy pol; pol.dryRun(true); pol.rpmInstFlags( pol.rpmInstFlags().setFlag( target::rpm::RPMINST_JUSTDB ) ); SEC << getZYpp()->commit( pol ) << endl; return true; } void testcase() { getZYpp()->resolver()->createSolverTestcase( "./solverTestcase" ); } /////////////////////////////////////////////////////////////////// struct DigestReceive : public callback::ReceiveReport { DigestReceive() { connect(); } virtual bool askUserToAcceptNoDigest( const zypp::Pathname &file ) { USR << endl; return false; } virtual bool askUserToAccepUnknownDigest( const Pathname &file, const std::string &name ) { USR << endl; return false; } virtual bool askUserToAcceptWrongDigest( const Pathname &file, const std::string &requested, const std::string &found ) { USR << "fle " << PathInfo(file) << endl; USR << "req " << requested << endl; USR << "fnd " << found << endl; return false; } }; struct KeyRingSignalsReceive : public callback::ReceiveReport { KeyRingSignalsReceive() { connect(); } virtual void trustedKeyAdded( const PublicKey &/*key*/ ) { USR << endl; } virtual void trustedKeyRemoved( const PublicKey &/*key*/ ) { USR << endl; } }; /////////////////////////////////////////////////////////////////// struct MediaChangeReceive : public callback::ReceiveReport { virtual Action requestMedia( Url & source , unsigned mediumNr , const std::string & label , Error error , const std::string & description , const std::vector & devices , unsigned int & dev_current ) { SEC << __FUNCTION__ << endl << " " << source << endl << " " << mediumNr << endl << " " << label << endl << " " << error << endl << " " << description << endl << " " << devices << endl << " " << dev_current << endl; return IGNORE; } }; /////////////////////////////////////////////////////////////////// namespace container { template bool isIn( const std::set & cont, const typename std::set::value_type & val ) { return cont.find( val ) != cont.end(); } } /////////////////////////////////////////////////////////////////// void itCmp( const sat::Pool::SolvableIterator & l, const sat::Pool::SolvableIterator & r ) { SEC << *l << " - " << *r << endl; INT << "== " << (l==r) << endl; INT << "!= " << (l!=r) << endl; } bool isTrue() { return true; } bool isFalse() { return false; } void dumpIdStr() { for ( int i = -3; i < 30; ++i ) { DBG << i << '\t' << IdString( i ) << endl; } } void ttt( const char * lhs, const char * rhs ) { DBG << lhs << " <=> " << rhs << " --> " << ::strcmp( lhs, rhs ) << endl; } namespace zypp { namespace filter { template class HasValue { public: HasValue( TMemFun fun_r, TValue val_r ) : _fun( fun_r ), _val( val_r ) {} template bool operator()( const Tp & obj_r ) const { return( _fun && (obj_r.*_fun)() == _val ); } private: TMemFun _fun; TValue _val; }; template HasValue byValue( TMemFun fun_r, TValue val_r ) { return HasValue( fun_r, val_r ); } } } template struct TestO { TestO( const L & lhs ) : _lhs( lhs ) {} const L & _lhs; }; template std::ostream & operator<<( std::ostream & str, const TestO & obj ) { const L & lhs( obj._lhs); return str << (lhs?'_':'*') << (lhs.empty()?'e':'_') << "'" << lhs << "'"; } template TestO testO( const L & lhs ) { return TestO( lhs ); } template void testCMP( const L & lhs, const R & rhs ) { MIL << "LHS " << testO(lhs) << endl; MIL << "RHS " << rhs << endl; #define OUTS(S) DBG << #S << ": " << (S) << endl OUTS( lhs.compare(rhs) ); OUTS( lhs != rhs ); OUTS( lhs < rhs ); OUTS( lhs <= rhs ); OUTS( lhs == rhs ); OUTS( lhs >= rhs ); OUTS( lhs > rhs ); #undef OUTS } inline bool useRepo( RepoInfo & repo ) { //return repo.alias() == "matest"; return repo.enabled(); } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) try { --argc; ++argv; zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; ZConfig::instance(); ResPool pool( ResPool::instance() ); sat::Pool satpool( sat::Pool::instance() ); if ( 0 ) { Measure x( "INIT TARGET" ); { { zypp::base::LogControl::TmpLineWriter shutUp; getZYpp()->initializeTarget( sysRoot ); } getZYpp()->target()->load(); USR << getZYpp()->target()->targetDistribution() << endl; USR << getZYpp()->target()->targetDistributionRelease() << endl; } } if ( 1 ) { RepoManager repoManager( makeRepoManager( sysRoot ) ); RepoInfoList repos = repoManager.knownRepositories(); // launch repos for ( RepoInfoList::iterator it = repos.begin(); it != repos.end(); ++it ) { RepoInfo & nrepo( *it ); SEC << nrepo << endl; if ( ! useRepo( nrepo ) ) continue; if ( ! repoManager.isCached( nrepo ) || nrepo.type() == repo::RepoType::RPMPLAINDIR ) { if ( repoManager.isCached( nrepo ) ) { SEC << "cleanCache" << endl; repoManager.cleanCache( nrepo ); } SEC << "refreshMetadata" << endl; //repoManager.refreshMetadata( nrepo ); SEC << "buildCache" << endl; repoManager.buildCache( nrepo ); } } // create from cache: { Measure x( "CREATE FROM CACHE" ); for ( RepoInfoList::iterator it = repos.begin(); it != repos.end(); ++it ) { RepoInfo & nrepo( *it ); if ( ! useRepo( nrepo ) ) continue; Measure x( "CREATE FROM CACHE "+nrepo.alias() ); try { repoManager.loadFromCache( nrepo ); } catch ( const Exception & exp ) { MIL << "Try to rebuild cache..." << endl; SEC << "cleanCache" << endl; repoManager.cleanCache( nrepo ); SEC << "buildCache" << endl; repoManager.buildCache( nrepo ); SEC << "Create from cache" << endl; repoManager.loadFromCache( nrepo ); } USR << "pool: " << pool << endl; } } } dumpRange( USR, satpool.reposBegin(), satpool.reposEnd() ); USR << "pool: " << pool << endl; /////////////////////////////////////////////////////////////////// if ( 0 ) { Measure x( "Upgrade" ); getZYpp()->resolver()->doUpgrade(); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // UNTh_(2)product:openSUSE-11.1.x86_64(openSUSE-dvd-11.1) // U_Th_(583)yast2-ntp-client-2.17.1-1.26.noarch(openSUSE-dvd-11.1) // U_Th_(1652)kernel-default-2.6.27-7.2.x86_64(openSUSE-dvd-11.1) // U_Th_(2490)ntp-4.2.4p5-1.6.x86_64(openSUSE-dvd-11.1) // UNTh_(2545)openSUSE-release-11.1-1.4.x86_64(openSUSE-dvd-11.1) // USTh_(3462)pattern:base-11.1-46.1.x86_64(openSUSE-dvd-11.1) // USTh_(3672)pattern:x11-11.1-46.1.x86_64(openSUSE-dvd-11.1) // USTu_(3680)pattern:xfce-11.1-46.1.x86_64(openSUSE-dvd-11.1) getZYpp()->resolver()->addRequire( Capability("product:openSUSE") ); getZYpp()->resolver()->addRequire( Capability("yast2-ntp-client") ); getZYpp()->resolver()->addRequire( Capability("kernel-default") ); getZYpp()->resolver()->addRequire( Capability("ntp") ); getZYpp()->resolver()->addRequire( Capability("openSUSE-release") ); getZYpp()->resolver()->addRequire( Capability("pattern:base") ); getZYpp()->resolver()->addRequire( Capability("pattern:x11") ); getZYpp()->resolver()->addRequire( Capability("pattern:xfce") ); solve(); vdumpPoolStats( USR << "Transacting:"<< endl, make_filter_begin(pool), make_filter_end(pool) ) << endl; ByteCount sze; ByteCount dusze; DiskUsageCounter ducounter( DiskUsageCounter::justRootPartition() ); for_( it, make_filter_begin(pool), make_filter_end(pool) ) { USR << *it << endl; ByteCount csze( ducounter.disk_usage( *it ).begin()->commitDiff() ); sze += (*it)->installSize(); dusze += csze; DBG <<(*it)->installSize() << " vs. " << csze << " | " << ByteCount( dusze-sze ) << endl; } SEC << sze << endl; SEC << dusze << endl; SEC << zypp::getZYpp()->diskUsage() << endl; /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } catch ( const Exception & exp ) { INT << exp << endl << exp.historyAsString(); } catch (...) {} libzypp-17.7.0/devel/devel.ma/Main.cc000066400000000000000000000055531334444677500173150ustar00rootroot00000000000000#include "Tools.h" #include #include #include #include "zypp/sat/WhatObsoletes.h" #include "zypp/ExternalProgram.h" /////////////////////////////////////////////////////////////////// //static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" ); //static const Pathname sysRoot( "/tmp/ToolScanRepos" ); static const Pathname sysRoot( "/" ); /////////////////////////////////////////////////////////////////// bool solve() { bool rres = false; { //zypp::base::LogControl::TmpLineWriter shutUp; //getZYpp()->resolver()->setOnlyRequires( true ); rres = getZYpp()->resolver()->resolvePool(); } if ( ! rres ) { ERR << "resolve " << rres << endl; getZYpp()->resolver()->problems(); return false; } MIL << "resolve " << rres << endl; return true; } bool upgrade() { bool rres = false; { //zypp::base::LogControl::TmpLineWriter shutUp; Measure x( "Upgrade" ); rres = getZYpp()->resolver()->doUpgrade(); } if ( ! rres ) { Measure x( "Upgrade Error" ); ERR << "upgrade " << rres << endl; getZYpp()->resolver()->problems(); return false; } MIL << "upgrade " << rres << endl; return true; } namespace zypp { namespace target { void writeUpgradeTestcase(); } } std::ostream & operator<<( std::ostream & str, const sat::Solvable::SplitIdent & obj ) { str << "{" << obj.ident() << "}{" << obj.kind() << "}{" << obj.name () << "}" << endl; return str; } namespace zypp { std::ostream & dumpOn( std::ostream & str, const Url & obj ) { str << "{" << obj.getHost() << "}{" << obj.getPort() << "}"; return str; } } int main( int argc, char * argv[] ) try { --argc; ++argv; zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; /////////////////////////////////////////////////////////////////// if ( sysRoot == "/" ) ::unsetenv( "ZYPP_CONF" ); ResPool pool( ResPool::instance() ); sat::Pool satpool( sat::Pool::instance() ); /////////////////////////////////////////////////////////////////// dumpRange( WAR << "satpool.multiversion " , satpool.multiversion().begin(), satpool.multiversion().end() ) << endl; TestSetup::LoadSystemAt( sysRoot, Arch_i586 ); /////////////////////////////////////////////////////////////////// ui::Selectable::Ptr p( getSel( "kruler" ) ); if ( p ) { USR << p->setToDelete() << endl; getZYpp()->resolver()->setCleandepsOnRemove( true ); solve(); } /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } catch ( const Exception & exp ) { INT << exp << endl << exp.historyAsString(); } catch (...) {} libzypp-17.7.0/devel/devel.ma/NewPool.cc000066400000000000000000000374751334444677500200240ustar00rootroot00000000000000#include "Tools.h" #include "zypp/PoolQueryResult.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "zypp/ResPoolProxy.h" #include "zypp/ZYppCallbacks.h" #include "zypp/ResPool.h" #include "zypp/ResFilters.h" #include "zypp/ResObjects.h" #include "zypp/Digest.h" #include "zypp/PackageKeyword.h" #include "zypp/TmpPath.h" #include "zypp/ManagedFile.h" #include "zypp/MediaSetAccess.h" #include "zypp/RepoManager.h" #include "zypp/Repository.h" #include "zypp/RepoInfo.h" #include "zypp/TriBool.h" #include "zypp/repo/PackageProvider.h" #include "zypp/ResPoolProxy.h" #include "zypp/sat/Pool.h" #include "zypp/sat/LocaleSupport.h" #include "zypp/sat/LookupAttr.h" #include "zypp/sat/SolvableSet.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/WhatObsoletes.h" #include "zypp/PoolQuery.h" #include "zypp/ServiceInfo.h" #include "zypp/media/MediaPriority.h" #include "zypp/target/rpm/RpmDb.h" #include "zypp/target/rpm/RpmHeader.h" #include "zypp/target/rpm/librpmDb.h" #include using namespace std; using namespace zypp; using namespace zypp::functor; using namespace zypp::ui; /////////////////////////////////////////////////////////////////// static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" ); /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// bool queryInstalledEditionHelper( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) { if ( ed_r == Edition::noedition ) return true; if ( name_r == "kernel-default" && ed_r == Edition("2.6.22.5-10") ) return true; if ( name_r == "update-test-affects-package-manager" && ed_r == Edition("1.1-6") ) return true; return false; } ManagedFile repoProvidePackage( const PoolItem & pi ) { ResPool _pool( getZYpp()->pool() ); repo::RepoMediaAccess _access; // Redirect PackageProvider queries for installed editions // (in case of patch/delta rpm processing) to rpmDb. repo::PackageProviderPolicy packageProviderPolicy; packageProviderPolicy.queryInstalledCB( queryInstalledEditionHelper ); Package::constPtr p = asKind(pi.resolvable()); // Build a repository list for repos // contributing to the pool repo::DeltaCandidates deltas( repo::makeDeltaCandidates( _pool.knownRepositoriesBegin(), _pool.knownRepositoriesEnd() ) ); repo::PackageProvider pkgProvider( _access, p, deltas, packageProviderPolicy ); return pkgProvider.providePackage(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { template inline int invokeOnEach( TLIterator lbegin_r, TLIterator lend_r, TRIterator rbegin_r, TRIterator rend_r, TFunction fnc_r ) { int cnt = 0; for ( TLIterator lit = lbegin_r; lit != lend_r; ++lit ) { for ( TRIterator rit = rbegin_r; rit != rend_r; ++rit ) { ++cnt; if ( ! fnc_r( *lit, *rit ) ) return -cnt; } } return cnt; } } /////////////////////////////////////////////////////////////////// std::ostream & testDump( std::ostream & str, const PoolItem & pi ) { str << pi << endl; Package::constPtr p( asKind(pi) ); if ( p ) { #define OUTS(V) str << str::form("%-25s: ",#V) << p->V() << endl Locale l( "de" ); str << str::form("%-25s: ",l.code().c_str()) << p->summary(l) << endl; l = Locale( "fr" ); str << str::form("%-25s: ",l.code().c_str()) << p->summary(l) << endl; l = Locale( "dsdf" ); str << str::form("%-25s: ",l.code().c_str()) << p->summary(l) << endl; OUTS( summary ); OUTS( installSize ); OUTS( downloadSize ); OUTS( sourcePkgName ); OUTS( sourcePkgEdition ); OUTS( checksum ); OUTS( location ); #undef OUTS } return str; } struct Xprint { bool operator()( const PoolItem & obj_r ) { //MIL << obj_r << endl; //DBG << " -> " << obj_r->satSolvable() << endl; return true; } bool operator()( const sat::Solvable & obj_r ) { //dumpOn( MIL, obj_r ) << endl; return true; } }; /////////////////////////////////////////////////////////////////// struct SetTransactValue { SetTransactValue( ResStatus::TransactValue newVal_r, ResStatus::TransactByValue causer_r ) : _newVal( newVal_r ) , _causer( causer_r ) {} ResStatus::TransactValue _newVal; ResStatus::TransactByValue _causer; bool operator()( const PoolItem & pi ) const { bool ret = pi.status().setTransactValue( _newVal, _causer ); if ( ! ret ) ERR << _newVal << _causer << " " << pi << endl; return ret; } }; struct StatusReset : public SetTransactValue { StatusReset() : SetTransactValue( ResStatus::KEEP_STATE, ResStatus::USER ) {} }; struct StatusInstall : public SetTransactValue { StatusInstall() : SetTransactValue( ResStatus::TRANSACT, ResStatus::USER ) {} }; /////////////////////////////////////////////////////////////////// bool solve() { bool rres = false; { //zypp::base::LogControl::TmpLineWriter shutUp; rres = getZYpp()->resolver()->resolvePool(); } if ( ! rres ) { ERR << "resolve " << rres << endl; return false; } MIL << "resolve " << rres << endl; return true; } bool install() { ZYppCommitPolicy pol; pol.dryRun(true); pol.rpmInstFlags( pol.rpmInstFlags().setFlag( target::rpm::RPMINST_JUSTDB ) ); SEC << getZYpp()->commit( pol ) << endl; return true; } void testcase() { getZYpp()->resolver()->createSolverTestcase( "./solverTestcase" ); } /////////////////////////////////////////////////////////////////// struct DigestReceive : public callback::ReceiveReport { DigestReceive() { connect(); } virtual bool askUserToAcceptNoDigest( const zypp::Pathname &file ) { USR << endl; return false; } virtual bool askUserToAccepUnknownDigest( const Pathname &file, const std::string &name ) { USR << endl; return false; } virtual bool askUserToAcceptWrongDigest( const Pathname &file, const std::string &requested, const std::string &found ) { USR << "fle " << PathInfo(file) << endl; USR << "req " << requested << endl; USR << "fnd " << found << endl; return false; } }; struct KeyRingSignalsReceive : public callback::ReceiveReport { KeyRingSignalsReceive() { connect(); } virtual void trustedKeyAdded( const PublicKey &/*key*/ ) { USR << endl; } virtual void trustedKeyRemoved( const PublicKey &/*key*/ ) { USR << endl; } }; /////////////////////////////////////////////////////////////////// struct MediaChangeReceive : public callback::ReceiveReport { virtual Action requestMedia( Url & source , unsigned mediumNr , const std::string & label , Error error , const std::string & description , const std::vector & devices , unsigned int & dev_current ) { SEC << __FUNCTION__ << endl << " " << source << endl << " " << mediumNr << endl << " " << label << endl << " " << error << endl << " " << description << endl << " " << devices << endl << " " << dev_current << endl; return IGNORE; } }; /////////////////////////////////////////////////////////////////// namespace container { template bool isIn( const std::set & cont, const typename std::set::value_type & val ) { return cont.find( val ) != cont.end(); } } /////////////////////////////////////////////////////////////////// void itCmp( const sat::Pool::SolvableIterator & l, const sat::Pool::SolvableIterator & r ) { SEC << *l << " - " << *r << endl; INT << "== " << (l==r) << endl; INT << "!= " << (l!=r) << endl; } bool isTrue() { return true; } bool isFalse() { return false; } void dumpIdStr() { for ( int i = -3; i < 30; ++i ) { DBG << i << '\t' << IdString( i ) << endl; } } void ttt( const char * lhs, const char * rhs ) { DBG << lhs << " <=> " << rhs << " --> " << ::strcmp( lhs, rhs ) << endl; } namespace zypp { namespace filter { template class HasValue { public: HasValue( TMemFun fun_r, TValue val_r ) : _fun( fun_r ), _val( val_r ) {} template bool operator()( const Tp & obj_r ) const { return( _fun && (obj_r.*_fun)() == _val ); } private: TMemFun _fun; TValue _val; }; template HasValue byValue( TMemFun fun_r, TValue val_r ) { return HasValue( fun_r, val_r ); } } } template struct TestO { TestO( const L & lhs ) : _lhs( lhs ) {} const L & _lhs; }; template std::ostream & operator<<( std::ostream & str, const TestO & obj ) { const L & lhs( obj._lhs); return str << (lhs?'_':'*') << (lhs.empty()?'e':'_') << "'" << lhs << "'"; } template TestO testO( const L & lhs ) { return TestO( lhs ); } template void testCMP( const L & lhs, const R & rhs ) { MIL << "LHS " << testO(lhs) << endl; MIL << "RHS " << rhs << endl; #define OUTS(S) DBG << #S << ": " << (S) << endl OUTS( lhs.compare(rhs) ); OUTS( lhs != rhs ); OUTS( lhs < rhs ); OUTS( lhs <= rhs ); OUTS( lhs == rhs ); OUTS( lhs >= rhs ); OUTS( lhs > rhs ); #undef OUTS } #include "zypp/Locks.h" #include "zypp/target/HardLocksFile.h" inline PoolQuery makeTrivialQuery( IdString ident_r ) { sat::Solvable::SplitIdent ident( ident_r ); PoolQuery q; q.addAttribute( sat::SolvAttr::name, ident.name().asString() ); q.addKind( ident.kind() ); q.setMatchExact(); q.setCaseSensitive(true); return q; } inline PoolQuery makeTrivialQuery( const char * ch ) { return makeTrivialQuery( IdString(ch) ); } void lktest() { static unsigned i = 0; ResPool pool( ResPool::instance() ); target::HardLocksFile::Data newdata; pool.getHardLockQueries( newdata ); SEC << '[' << i++ << ']' << newdata << endl; } Capability guessPackageSpec( const std::string & str_r ) { return Capability::guessPackageSpec( str_r ); } void cut( const Capability & cap ) { CapDetail detail( cap.detail() ); if ( detail.isSimple() ) { MIL << detail.kind() << ": " << detail.name(); if ( detail.hasArch() ) MIL << " (" << detail.arch() << ")"; if ( detail.isVersioned() ) MIL << " " << detail.op() << " " << detail.ed(); MIL << endl; } else { MIL << "--- ??? ---" << endl; } } namespace zypp { namespace target { void XRunUpdateMessages( const Pathname & root_r, const Pathname & messagesPath_r, const std::vector & checkPackages_r, ZYppCommitResult & result_r ); }} using zypp::target::XRunUpdateMessages; /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) try { --argc,++argv; if (0) { // download the repo index file media::MediaManager mediamanager; media::MediaAccessId mid = mediamanager.open( Url("http://download.opensuse.org") ); mediamanager.attach( mid ); } zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; ZConfig::instance(); ResPool pool( ResPool::instance() ); sat::Pool satpool( sat::Pool::instance() ); if ( 0 ) { Measure x( "INIT TARGET" ); { { //zypp::base::LogControl::TmpLineWriter shutUp; getZYpp()->initializeTarget( sysRoot ); } getZYpp()->target()->load(); USR << "baseproduct: " << getZYpp()->target()->baseProduct() << endl; USR << "targetDistribution: " << getZYpp()->target()->targetDistribution() << endl; USR << "targetDistributionRelease: " << getZYpp()->target()->targetDistributionRelease() << endl; dumpRange( USR << "Product ", pool.byKindBegin(), pool.byKindEnd() ) << endl; } } if ( 0 ) { RepoManager repoManager( makeRepoManager( sysRoot ) ); ServiceInfoList services = repoManager.knownServices(); for ( ServiceInfoList::iterator it = services.begin(); it != services.end(); ++it ) { ServiceInfo & nservice( *it ); SEC << nservice << endl; if ( ! nservice.enabled() ) continue; repoManager.refreshService( nservice ); } } if ( 1 ) { RepoManager repoManager( makeRepoManager( sysRoot ) ); RepoInfoList repos = repoManager.knownRepositories(); // launch repos for ( RepoInfoList::iterator it = repos.begin(); it != repos.end(); ++it ) { RepoInfo & nrepo( *it ); SEC << nrepo << endl; if ( ! nrepo.enabled() ) continue; if ( ! repoManager.isCached( nrepo ) || nrepo.type() == repo::RepoType::RPMPLAINDIR ) { if ( repoManager.isCached( nrepo ) ) { SEC << "cleanCache" << endl; repoManager.cleanCache( nrepo ); } SEC << "refreshMetadata" << endl; //repoManager.refreshMetadata( nrepo ); SEC << "buildCache" << endl; repoManager.buildCache( nrepo ); } } // create from cache: { Measure x( "CREATE FROM CACHE" ); for ( RepoInfoList::iterator it = repos.begin(); it != repos.end(); ++it ) { RepoInfo & nrepo( *it ); if ( ! nrepo.enabled() ) continue; Measure x( "CREATE FROM CACHE "+nrepo.alias() ); try { repoManager.loadFromCache( nrepo ); } catch ( const Exception & exp ) { MIL << "Try to rebuild cache..." << endl; SEC << "cleanCache" << endl; repoManager.cleanCache( nrepo ); SEC << "buildCache" << endl; repoManager.buildCache( nrepo ); SEC << "Create from cache" << endl; repoManager.loadFromCache( nrepo ); } //USR << "pool: " << pool << endl; } } } dumpRange( USR, satpool.reposBegin(), satpool.reposEnd() ); USR << "pool: " << pool << endl; /////////////////////////////////////////////////////////////////// if ( 0 ) { Measure x( "Upgrade" ); getZYpp()->resolver()->doUpgrade(); } /////////////////////////////////////////////////////////////////// #if 1 getZYpp()->resolver()->addRequire( Capability("amarok") ); pool.byKindBegin()->status().setTransact( true, ResStatus::USER ); solve(); vdumpPoolStats( USR << "Transacting:"<< endl, make_filter_begin(pool), make_filter_end(pool) ) << endl; #endif ////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } catch ( const Exception & exp ) { INT << exp << endl << exp.historyAsString(); throw; } catch (...) { throw; } libzypp-17.7.0/devel/devel.ma/PluginTest.cc000066400000000000000000000107641334444677500205270ustar00rootroot00000000000000#include "Tools.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace zypp; using namespace zypp::functor; using namespace zypp::ui; /////////////////////////////////////////////////////////////////// static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" ); /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// static PluginScript scr( "/bin/cat" ); void repeat( const PluginFrame & f ) { if ( ! scr.isOpen() ) scr.open(); MIL << "--> " << f << endl; scr.send( f ); PluginFrame r( scr.receive() ); MIL << "<-- " << r << endl; if ( r != f ) ERR << "send/receive does not match." << endl; } void send( const PluginFrame & f ) { if ( ! scr.isOpen() ) scr.open(); MIL << "--> " << f << endl; scr.send( f ); } PluginFrame receive() { if ( ! scr.isOpen() ) scr.open(); PluginFrame r( scr.receive() ); MIL << "<-- " << r << endl; return r; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #define DOLOG(C) USR << #C << ": " << endl; C; namespace zypp { namespace target { void testCommitPlugins( const Pathname & path_r ); } } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) try { --argc,++argv; zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; ////////////////////////////////////////////////////////////////// zypp::target::testCommitPlugins( "/tmp/pltest" ); if ( 0 ) { Pathname script( "PluginTest.py" ); PluginScript plugin( script ); USR << plugin << endl; DOLOG( plugin.open() ); DOLOG( plugin.send( PluginFrame( "PLUGINBEGIN" ) ) ); PluginFrame ret; DOLOG( ret = plugin.receive() ); MIL << ret << endl; DOLOG( plugin.send( PluginFrame( "PLUGINEND" ) ) ); DOLOG( ret = plugin.receive() ); MIL << ret << endl; DOLOG( plugin.close() ); } if ( 0 ) { Pathname script( ZConfig::instance().pluginsPath()/"system/spacewalkx" ); if ( PathInfo( script ).isX() ) try { PluginScript spacewalk( script ); spacewalk.open(); PluginFrame notify( "PACKAGESETCHANGED" ); spacewalk.send( notify ); PluginFrame ret( spacewalk.receive() ); MIL << ret << endl; if ( ret.command() == "ERROR" ) ret.writeTo( WAR ) << endl; } catch ( const Exception & excpt ) { WAR << excpt.asUserHistory() << endl; } } if ( 0 ) { Measure x( "" ); PluginFrame f( "a" ); f.setBody( std::string( 1020, '0' ) ); if ( ! scr.isOpen() ) scr.open(); for ( unsigned i = 1; true; ++i ) { try { MIL << "Receiving " << i << endl; PluginFrame ret( receive() ); } catch ( const PluginScriptTimeout & excpt ) { ERR << excpt << endl; scr.send( f ); } catch ( const PluginScriptDiedUnexpectedly & excpt ) { ERR << excpt << endl; ERR << scr << endl; scr.close(); break; } } } if ( 0 ) { Measure x( "" ); PluginFrame f( "a" ); f.setBody( std::string( 10200, '0' ) ); for ( unsigned i = 1; true; ++i ) { try { MIL << "Sending " << i << endl; send( f ); } catch ( const PluginScriptTimeout & excpt ) { ERR << excpt << endl; ::kill( scr.getPid(), SIGKILL); } catch ( const PluginScriptDiedUnexpectedly & excpt ) { ERR << excpt << endl; ERR << scr << endl; scr.close(); break; } } } ////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } catch ( const Exception & exp ) { INT << exp << endl << exp.historyAsString(); throw; } catch (...) { throw; } libzypp-17.7.0/devel/devel.ma/PluginTest.py000077500000000000000000000005651334444677500205730ustar00rootroot00000000000000#!/usr/bin/env python # # ZYpp plugin # import os import sys import traceback import time from zypp_plugin import Plugin class MyPlugin(Plugin): def PLUGINBEGIN(self, headers, body): # commit is going to start. #self.error( {}, 'oops' ) self.ack() def PLUGINEND(self, headers, body): # commit ended self.ack() plugin = MyPlugin() plugin.main() libzypp-17.7.0/devel/devel.ma/Printing.h000066400000000000000000000022361334444677500200600ustar00rootroot00000000000000#ifndef MA_PRINTING_H #define MA_PRINTING_H #include #include "zypp/base/LogControl.h" #include "zypp/base/LogTools.h" #include #include #include #include #include using std::endl; /////////////////////////////////////////////////////////////////// struct Print { template bool operator()( const Tp & val_r ) const { USR << val_r << endl; return true; } }; /////////////////////////////////////////////////////////////////// template struct PrintOn : public std::unary_function { bool operator()( const Tp & obj ) const { if ( _leadNL ) _str << std::endl << _prfx << obj; else _str << _prfx << obj << std::endl; return true; } PrintOn( std::ostream & str, const std::string & prfx = std::string(), bool leadNL = false ) : _str( str ) , _prfx( prfx ) , _leadNL( leadNL ) {} std::ostream & _str; std::string _prfx; bool _leadNL; }; /////////////////////////////////////////////////////////////////// #endif // MA_PRINTING_H libzypp-17.7.0/devel/devel.ma/Sat.cc000066400000000000000000000054641334444677500171610ustar00rootroot00000000000000#include #include #include namespace boost { namespace detail { inline std::ostream & operator<<( std::ostream & str, const thread_data_base & obj ) { return str << &obj; } } } #include "zypp/ByteCount.h" #include "zypp/Pathname.h" #include "zypp/base/Logger.h" #include "zypp/base/LogControl.h" using std::endl; using namespace zypp; #undef MIL #define MIL MilSync( L_BASEFILE, __FUNCTION__, __LINE__ )._str #ifdef _REENTRANT #warning _REENTRANT #else #warning NOT_REENTRANT #endif template struct ClassLevelLockable { typedef boost::recursive_mutex Lockable; typedef boost::lock_guard Lock; struct Lock { Lock( const Derived & obj ) {} ~Lock }; Lockable _mutex; }; template struct ObjectLevelLockable { typedef boost::recursive_mutex Lockable; typedef boost::lock_guard Lock; }; struct MilSync { MilSync( const char * file_r, const char * func_r, const int line_r ) : _guard( _mutex ) , _str( zypp::base::logger::getStream( ZYPP_BASE_LOGGER_LOGGROUP, zypp::base::logger::E_MIL, file_r, func_r, line_r ) ) {} typedef boost::recursive_mutex Lockable; static Lockable _mutex; boost::lock_guard _guard; std::ostream & _str; }; MilSync::Lockable MilSync::_mutex; struct ThreadExcl { ThreadExcl() { MIL << "+TE" << boost::this_thread::get_id() << endl; boost::this_thread::sleep( boost::posix_time::seconds(1) ); } ~ThreadExcl() { MIL << "-TE" << boost::this_thread::get_id() << endl; } }; void t_exit() { MIL << "---" << boost::this_thread::get_id() << endl; } void t_main() { MIL << "+++" << boost::this_thread::get_id() << " " << boost::this_thread::interruption_enabled() << endl; boost::this_thread::at_thread_exit( t_exit ); ThreadExcl a; while( true ) boost::this_thread::sleep( boost::posix_time::seconds(1) ); } int main( int argc, char * argv[] ) { //zypp::base::LogControl::instance().logfile( "log.restrict" ); INT << "===[START]==========================================" << endl; MIL << "M+++" << boost::this_thread::get_id() << endl; boost::thread_group mthreads; mthreads.create_thread( t_main ); mthreads.create_thread( t_main ); mthreads.create_thread( t_main ); mthreads.create_thread( t_main ); mthreads.create_thread( t_main ); MIL << "M???" << boost::this_thread::get_id() << endl; //boost::this_thread::sleep( boost::posix_time::seconds(10) ); mthreads.interrupt_all(); mthreads.join_all(); MIL << "M---" << boost::this_thread::get_id() << endl; /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } libzypp-17.7.0/devel/devel.ma/SigTrackableFail.cc000066400000000000000000000055261334444677500215600ustar00rootroot00000000000000#include using std::endl; using std::cout; #include #include using boost::signal; using boost::signals::connection; using boost::signals::scoped_connection; using boost::signals::trackable; #define DBG std::cerr #define MIL std::cerr namespace boost { template std::ostream & operator<<( std::ostream & str, const signal & obj ) { return str << "Connected slots: " << obj.num_slots(); } namespace signals { std::ostream & operator<<( std::ostream & str, const connection & obj ) { return str << "Connection: " << ( obj.connected() ? '*' : '_' ) << ( obj.blocked() ? 'B' : '_' ) ; } } } struct Sender { void ping() const { static unsigned i = 0; ++i; MIL << "Sending " << i << " -> " << _sigA << endl; _sigA( i ); _sigB(); } typedef signal SigA; typedef signal SigB; SigA & siga() const { return _sigA; } SigB & sigb() const { return _sigB; } mutable SigA _sigA; mutable SigB _sigB; }; struct Receiver : public trackable { Receiver() {_s=++s;} Receiver( const Receiver & rhs ) : trackable( rhs ) {_s=++s;} Receiver& operator=( const Receiver & rhs ) { trackable::operator=( rhs ); return *this; } ~Receiver() {_s=-_s;} static int s; int _s; void fpong() { dumpOn( DBG << "Receiver " << _s << " <- " << 13 << " (" ) << ")" << endl; } void operator()( unsigned i ) { pong( i ); } void pong( unsigned i ) { dumpOn( DBG << "Receiver " << _s << " <- " << i << " (" ) << ")" << endl; } std::ostream & dumpOn( std::ostream & str ) const { return str << "Receiver " << _s << " connected signals: " << _connected_signals().size(); } }; std::ostream & operator<<( std::ostream & str, const Receiver & obj ) { return obj.dumpOn( str ); } int Receiver::s; /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, const char * argv[] ) { --argc; ++argv; // skip arg 0 Sender sender; sender.ping(); Receiver rec; sender.siga().connect( boost::bind( &Receiver::pong, &rec, _1 ) ); sender.ping(); { Receiver recw; sender.siga().connect( boost::ref(recw) ); sender.ping(); Receiver recx; MIL << recx << endl; sender.siga().connect( boost::bind( &Receiver::pong, &recx, _1 ) ); sender.sigb().connect( boost::bind( &Receiver::fpong, &recx ) ); MIL << recx << endl; sender.ping(); Receiver recy; connection cy( sender.siga().connect( boost::bind( &Receiver::pong, &recy, _1 ) ) ); sender.ping(); Receiver recz; scoped_connection cz( sender.siga().connect( boost::bind( &Receiver::pong, &recz, _1 ) ) ); sender.ping(); cy.disconnect(); } sender.ping(); return 0; } libzypp-17.7.0/devel/devel.ma/Signal.cc000066400000000000000000000042501334444677500176370ustar00rootroot00000000000000#include #include #include #include #include using std::endl; using std::cout; //////////////////////////////////////////////////////////////////////////////////////////////////// namespace boost { template std::ostream & operator<<( std::ostream & str, const signal & obj ) { return str << "Connected slots: " << obj.num_slots(); } namespace signals { std::ostream & operator<<( std::ostream & str, const connection & obj ) { return str << "Connection: " << ( obj.connected() ? '*' : '_' ) << ( obj.blocked() ? 'B' : '_' ) ; } } } //////////////////////////////////////////////////////////////////////////////////////////////////// using namespace zypp; using boost::signal; using boost::signals::connection; using boost::signals::trackable; struct HelloWorld { HelloWorld() {++i;} HelloWorld(const HelloWorld &) {++i;} ~HelloWorld() { --i;} void operator()(unsigned) const { USR << "Hello, World! " << i << std::endl; } static int i; }; int HelloWorld::i = 0; struct M { void ping() const { static unsigned i = 0; ++i; MIL << i << " -> " << _sigA << endl; _sigA( i ); } typedef signal SigA; SigA & siga() const { return _sigA; } mutable SigA _sigA; }; struct X : public trackable { X() {_s=++s;} X( const X & ) {_s=++s;} X& operator=( const X & ) { return *this; } ~X() {_s=-_s;} static int s; int _s; void pong( unsigned i ) const { DBG << _s << ' ' << i << endl; } }; int X::s; /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, const char * argv[] ) { --argc; ++argv; // skip arg 0 M m; m.ping(); X xx; m.siga().connect( boost::bind( &X::pong, &xx, _1 ) ); m.ping(); { X x; m.siga().connect( boost::bind( &X::pong, &x, _1 ) ); m.ping(); X y; m.siga().connect( boost::bind( &X::pong, &y, _1 ) ); m.ping(); } m.ping(); /////////////////////////////////////////// INT << "---STOP" << endl; return 0; } libzypp-17.7.0/devel/devel.ma/Test.cc000066400000000000000000000046001334444677500173400ustar00rootroot00000000000000#include "Tools.h" #include #include #include #include static const Pathname sysRoot( "/tmp/ToolScanRepos" ); void addInstall( const std::string & pkgspec_r ) { bool rewrote( false ); Capability pkgspec( Capability::guessPackageSpec( pkgspec_r, rewrote ) ); MIL << "Add '" << pkgspec << "' for '" << pkgspec_r << "'" << endl; ResPool::instance().resolver().addRequire( pkgspec ); } void addConflict( const std::string & pkgspec_r ) { bool rewrote( false ); Capability pkgspec( Capability::guessPackageSpec( pkgspec_r, rewrote ) ); MIL << "Con '" << pkgspec << "' for '" << pkgspec_r << "'" << endl; ResPool::instance().resolver().addConflict( pkgspec ); } bool solve() { bool rres = false; { //zypp::base::LogControl::TmpLineWriter shutUp; //ResPool::instance().resolver().setOnlyRequires( true ); rres = ResPool::instance().resolver().resolvePool(); } if ( ! rres ) { ERR << "resolve " << rres << endl; ResPool::instance().resolver().problems(); return false; } MIL << "resolve " << rres << endl; vdumpPoolStats( USR << "Transacting:"<< endl, make_filter_begin(ResPool::instance()), make_filter_end(ResPool::instance()) ) << endl; return true; } bool install() { ZYppCommitPolicy pol; pol.dryRun( true ); pol.rpmInstFlags( pol.rpmInstFlags().setFlag( target::rpm::RPMINST_JUSTDB ) ); SEC << getZYpp()->commit( pol ) << endl; return true; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; /////////////////////////////////////////////////////////////////// if ( sysRoot == "/" ) ::unsetenv( "ZYPP_CONF" ); TestSetup::LoadSystemAt( sysRoot, Arch_x86_64 ); /////////////////////////////////////////////////////////////////// ResPool pool( ResPool::instance() ); sat::Pool satpool( sat::Pool::instance() ); /////////////////////////////////////////////////////////////////// // addConflict( "kernel-default" ); // addConflict( "kernel-default-base" ); addInstall( "test"); solve(); INT << "===[END]============================================" << endl << endl; return 0; } libzypp-17.7.0/devel/devel.ma/ToolProvideSignedDir.cc000066400000000000000000000056531334444677500224710ustar00rootroot00000000000000#include "Tools.h" #include static std::string appname( "ToolProvideSignedDir" ); void message( const std::string & msg_r ) { cerr << "*** " << msg_r << endl; } int usage( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl; message( msg_r ); cerr << endl; } cerr << "Usage: " << appname << "[OPTIONS] URL..." << endl; cerr << " Load the digested directory at URL to test system below /tmp/" << appname << "." << endl; cerr << " -r ROOT Use /tmp/ROOT as location of test system (default: " << appname << ")." << endl; cerr << " -c Clear an existing test system (default)." << endl; cerr << " -n Do not clear an existing test system but reuse it." << endl; return exit_r; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; appname = Pathname::basename( argv[0] ); --argc; ++argv; if ( ! argc ) { return usage(); } /////////////////////////////////////////////////////////////////// Pathname mtmp( "/tmp" ); Pathname mroot( mtmp/appname ); bool oClearRoot = true; std::vector urls; while ( argc ) { if ( argv[0] == std::string("-c") ) { oClearRoot = true; } else if ( argv[0] == std::string("-n") ) { oClearRoot = false; } else if ( argv[0] == std::string("-r") ) { --argc; ++argv; if ( ! argc ) return usage( "Missing arg to -r ROOT", 101 ); if ( *(argv[0]) ) // empty mroot = mtmp/argv[0]; else mroot = mtmp/appname; } else { urls.push_back( argv[0] ); } --argc; ++argv; } if ( urls.empty() ) { return usage( "Missing URLs", 102 ); } /////////////////////////////////////////////////////////////////// if ( oClearRoot ) { message( "Clear test system at " + mroot.asString() ); filesystem::recursive_rmdir( mroot ); } else { message( "Use test system at " + mroot.asString() ); } filesystem::assert_dir( mroot ); KeyRing::setDefaultAccept( KeyRing::ACCEPT_UNKNOWNKEY|KeyRing::TRUST_KEY_TEMPORARILY ); int ret = 0; for_( it, urls.begin(), urls.end() ) { message( "Setup " + *it ); try { Url url( *it ); Pathname tdir( mroot/url.getHost()/url.getPathName() ); filesystem::assert_dir( tdir ); Fetcher f; f.setOptions( Fetcher::AutoAddIndexes ); f.enqueueDigestedDir( Pathname("."), /*recursive*/false ); MediaSetAccess ma( url ); f.start( tdir, ma ); } catch ( const Exception & exp ) { message( exp.asString() + "\n" + exp.historyAsString() ); ++ret; } } INT << "===[END]============================================" << endl << endl; return ret; } libzypp-17.7.0/devel/devel.ma/Tools.h000066400000000000000000000121151334444677500173630ustar00rootroot00000000000000#ifndef Tools_h #define Tools_h #include #include #include #include #include #include #define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST #include #include #include #include #include #include #include #include "zypp/ZYppFactory.h" #include "zypp/ResPool.h" #include "zypp/ResPoolProxy.h" #include "zypp/ui/Selectable.h" #include #include using namespace zypp; using zypp::debug::Measure; using std::endl; /////////////////////////////////////////////////////////////////// #define for_providers_(IT,CAP) for ( sat::WhatProvides::const_iterator IT = sat::WhatProvides( Capability CAP ).begin(), _for_end = sat::WhatProvides().end(); IT != _for_end; ++IT ) /////////////////////////////////////////////////////////////////// template void whichType( T ) { INT << __PRETTY_FUNCTION__ << endl; } template void whichType() { INT << __PRETTY_FUNCTION__ << endl; } void waitForInput() { std::string i; USR << "WAITING FOR INPUT!" << endl; std::cin >> i; } /////////////////////////////////////////////////////////////////// void mksrc( const std::string & url, const std::string & alias, RepoManager & repoManager ) { RepoInfo nrepo; nrepo.setAlias( alias ); nrepo.setName( alias ); nrepo.setEnabled( true ); nrepo.setAutorefresh( false ); nrepo.addBaseUrl( Url(url) ); if ( ! repoManager.isCached( nrepo ) ) { repoManager.buildCache( nrepo ); } repoManager.loadFromCache( nrepo ); } /////////////////////////////////////////////////////////////////// // template struct SetTrue { SetTrue( TCondition cond_r ) : _cond( cond_r ) {} template bool operator()( Tp t ) const { _cond( t ); return true; } TCondition _cond; }; template inline SetTrue setTrue_c( TCondition cond_r ) { return SetTrue( cond_r ); } struct PrintPoolItem { void operator()( const PoolItem & pi ) const { USR << pi << endl; } }; template std::ostream & vdumpPoolStats( std::ostream & str, TIterator begin_r, TIterator end_r ) { pool::PoolStats stats; std::for_each( begin_r, end_r, functor::chain( setTrue_c(PrintPoolItem()), setTrue_c(functor::functorRef(stats)) ) ); return str << stats; } /////////////////////////////////////////////////////////////////// // rstats typedef zypp::pool::PoolStats Rstats; template void rstats( TIterator begin, TIterator end ) { DBG << __PRETTY_FUNCTION__ << endl; Rstats stats; for_each( begin, end, functor::functorRef(stats) ); MIL << stats << endl; } template void rstats( const TContainer & c ) { rstats( c.begin(), c.end() ); } /////////////////////////////////////////////////////////////////// inline RepoManager makeRepoManager( const Pathname & mgrdir_r ) { // set via zypp.conf return RepoManager(); } /////////////////////////////////////////////////////////////////// template ui::Selectable::Ptr getSel( const std::string & name_r ) { ResPoolProxy uipool( getZYpp()->poolProxy() ); for_(it, uipool.byKindBegin(), uipool.byKindEnd() ) { if ( (*it)->name() == name_r ) return (*it); } return 0; } template PoolItem getPi( const std::string & alias_r, const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) { PoolItem ret; ResPool pool( getZYpp()->pool() ); for_(it, pool.byIdentBegin(name_r), pool.byIdentEnd(name_r) ) { if ( ( ed_r.empty() || ed_r.match((*it)->edition()) == 0 ) && ( arch_r.empty() || arch_r == (*it)->arch() ) && ( alias_r.empty() || alias_r == (*it)->repository().alias() ) ) { if ( !ret || ret->repository().alias() == sat::Pool::systemRepoAlias() ) { ret = (*it); MIL << " ->" << *it << endl; } else { DBG << " - " << *it << endl; } } else { DBG << " ?" << *it << endl; } } return ret; } template PoolItem getPi( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) { return getPi( "", name_r, ed_r, arch_r ); } template PoolItem getPi( const std::string & name_r ) { return getPi( name_r, Edition(), Arch_empty ); } template PoolItem getPi( const std::string & name_r, const Edition & ed_r ) { return getPi( name_r, ed_r, Arch_empty ); } template PoolItem getPi( const std::string & name_r, const Arch & arch_r ) { return getPi( name_r, Edition(), arch_r ); } /////////////////////////////////////////////////////////////////// #endif // Tools_h libzypp-17.7.0/devel/devel.ma/Xml.cc000066400000000000000000000133041334444677500171620ustar00rootroot00000000000000#include #include #include #include #include #include #include #include //#include //#include using namespace std; using namespace zypp; #include using zypp::debug::Measure; /////////////////////////////////////////////////////////////////// /** Helper to detect an objects type. */ template void ti( const TCl & c ) { SEC << __PRETTY_FUNCTION__ << endl; } bool noop( xml::Reader & reader_r ) { return true; } struct Noop { bool operator()( xml::Reader & reader_r ) const { return true; } }; /////////////////////////////////////////////////////////////////// bool dumpNode( xml::Reader & reader_r ) { switch ( reader_r->nodeType() ) { case XML_READER_TYPE_ELEMENT: MIL << *reader_r << endl; for ( int i = 0; i < reader_r->attributeCount(); ++i ) { MIL << " attr no " << i << " '" << reader_r->getAttributeNo( i ) << "'" << endl; } break; case XML_READER_TYPE_ATTRIBUTE: WAR << *reader_r << endl; break; case XML_READER_TYPE_TEXT: case XML_READER_TYPE_CDATA: DBG << *reader_r << endl; break; default: //ERR << *reader_r << endl; break; } return true; } /////////////////////////////////////////////////////////////////// bool consume( xml::Reader & reader_r ) { switch ( reader_r->nodeType() ) { case XML_READER_TYPE_ELEMENT: MIL << *reader_r << endl; for ( int i = 0; i < reader_r->attributeCount(); ++i ) { MIL << " attr no " << i << " '" << reader_r->getAttributeNo( i ) << "'" << endl; } break; case XML_READER_TYPE_ATTRIBUTE: WAR << *reader_r << endl; break; case XML_READER_TYPE_TEXT: case XML_READER_TYPE_CDATA: DBG << *reader_r << endl; break; default: //ERR << *reader_r << endl; break; } return true; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { --argc, ++argv; INT << "===[START]==========================================" << endl; bool verbose( true ); Pathname input( "test.xml" ); xml::Reader::ProcessNode consumer( consume ); if ( argc && !strcmp( *argv, "-q" ) ) { --argc, ++argv; verbose = false; } { Measure m( "Parse all" ); for ( ; argc; --argc, ++argv ) { input = *argv; try { Measure m( input.basename() ); // zypp::base::LogControl::TmpLineWriter shutUp; xml::Reader reader( input ); if ( verbose ) reader.foreachNodeOrAttribute( consumer ); else reader.foreachNode( consumer ); } catch ( const Exception & exp ) { INT << exp << endl << exp.historyAsString(); } } } INT << "===[END]============================================" << endl << endl; return 0; } /* fam-devel ppc 59d6a65cdadd911fe8ceee87740a54305b2ab053 Include Files and Libraries Mandatory for Development Fam is a file alteration monitoring service. This means that you can foreachNode( dumpNode ) ======================= START MEASURE(Parse) 0:ELEMENT [attr 3] attr no 0 'http://linux.duke.edu/metadata/common' attr no 1 'http://linux.duke.edu/metadata/rpm' attr no 2 '23230' 1: ELEMENT [attr 1] attr no 0 'rpm' 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {fam-devel} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {ppc} 2: ELEMENT [attr 3|empty] attr no 0 '0' attr no 1 '2.6.10' attr no 2 '141' 2: ELEMENT [attr 2] attr no 0 'sha' attr no 1 'YES' 3: TEXT <#text> [noattr] {59d6a65cdadd911fe8ceee87740a54305b2ab053} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {Include Files and Libraries Mandatory for Development} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {Fam is a file alteration monitoring service. This means that you can foreachNodeOrAttribute( dumpNode ) ================================== START MEASURE(Parse) 0:ELEMENT [attr 3] attr no 0 'http://linux.duke.edu/metadata/common' attr no 1 'http://linux.duke.edu/metadata/rpm' attr no 2 '23230' 1: ATTRIBUTE [noattr] {http://linux.duke.edu/metadata/common} 1: ATTRIBUTE [noattr] {http://linux.duke.edu/metadata/rpm} 1: ATTRIBUTE [noattr] {23230} 1: ELEMENT [attr 1] attr no 0 'rpm' 2: ATTRIBUTE [noattr] {rpm} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {fam-devel} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {ppc} 2: ELEMENT [attr 3|empty] attr no 0 '0' attr no 1 '2.6.10' attr no 2 '141' 3: ATTRIBUTE [noattr] {0} 3: ATTRIBUTE [noattr] {2.6.10} 3: ATTRIBUTE [noattr] {141} 2: ELEMENT [attr 2] attr no 0 'sha' attr no 1 'YES' 3: ATTRIBUTE [noattr] {sha} 3: ATTRIBUTE [noattr] {YES} 3: TEXT <#text> [noattr] {59d6a65cdadd911fe8ceee87740a54305b2ab053} 3: ATTRIBUTE [noattr] {sha} 3: ATTRIBUTE [noattr] {YES} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {Include Files and Libraries Mandatory for Development} 2: ELEMENT [noattr] 3: TEXT <#text> [noattr] {Fam is a file alteration monitoring service. This means that you can */ libzypp-17.7.0/devel/devel.ma/lines2array000077500000000000000000000012041334444677500202700ustar00rootroot00000000000000#! /bin/bash OFILE=${1:-array} cat $1 | awk -vOFILE=$OFILE ' BEGIN { sep = " " printf "#ifndef ARRAY_%s_h\n", OFILE printf "#define ARRAY_%s_h\n", OFILE printf "\n" printf "#include \n" printf "#include \n" printf "\n" printf "std::list %s()\n", OFILE printf "{\n" printf " const char *const val[] = {\n" } { printf " %s\"%s\"\n", sep, $0 sep = "," } END { printf " };\n" printf " const char *const* e = val + sizeof( val ) / sizeof( const char *const );\n" printf " return std::list( val, e );\n" printf "}\n" printf "\n" printf "#endif // ARRAY_%s_h\n", OFILE } ' > $OFILE.h libzypp-17.7.0/devel/devel.ma/ma_test000077500000000000000000000015621334444677500175000ustar00rootroot00000000000000#! /bin/bash # #export LD_LIBRARY_PATH=/usr/local/lib64 PRG=Main SUDO= if [ "$1" = -su ]; then SUDO="sudo -E" shift fi if [ -n "$1" ]; then PRG=$1 shift fi if [ ! -x ~ma/bin/sy2l.tcl ]; then exec ./$PRG "$@" fi LPIPE=LOGFILE test -p "$LPIPE" || { test -e "$LPIPE" && { echo "No pipe '$LPIPE' exists"; exit 1; } mkfifo $LPIPE } if ! fuser $LPIPE >/dev/null; then ~ma/bin/sy2l.tcl $LPIPE & fi if ps axl | grep -q '[/]usr/sbin/iceccd'; then MAKE="make -j 15" else MAKE="make -j 2" fi $MAKE $PRG || exit 1 echo "=====================================================" export ZYPP_LOGFILE=- export ZYPP_KEYRING_DEFAULT_ACCEPT_ALL=1 export SYSROOT=/Local/ROOT export ZYPP_CONF=$SYSROOT/zypp.conf #export ZYPP_TESTSUITE_FAKE_ARCH=x86_64 #$SUDO ./$PRG "$@" 2>&1 | tee log > $LPIPE exec 2> >(tee log > $LPIPE) $SUDO ./$PRG "$@" libzypp-17.7.0/devel/devel.ma/main.h000066400000000000000000000113701334444677500172110ustar00rootroot00000000000000#ifndef main_h #define main_h #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include using std::string; /////////////////////////////////////////////////////////////////// class Resolvable : public zypp::base::ReferenceCounted, private zypp::base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const Resolvable & res ); public: string kind() const; string name() const; public: typedef Resolvable Self; typedef zypp::base::intrusive_ptr Ptr; typedef zypp::base::intrusive_ptr constPtr; protected: Resolvable( const string kind_r /*NVRA*/ ); virtual ~Resolvable(); virtual std::ostream & dumpOn( std::ostream & str ) const; private: struct Impl; zypp::base::ImplPtr _impl; }; inline void intrusive_ptr_add_ref( const Resolvable * ptr_r ) { zypp::base::ReferenceCounted::add_ref( ptr_r ); } inline void intrusive_ptr_release( const Resolvable * ptr_r ) { zypp::base::ReferenceCounted::release( ptr_r ); } inline std::ostream & operator<<( std::ostream & str, const Resolvable & res ) { return res.dumpOn( str ); } /////////////////////////////////////////////////////////////////// // connect resolvables interface and implementation. template struct ResImplConnect : public TRes { public: typedef ResImplConnect Self; typedef typename TRes::Impl Impl; typedef zypp::base::shared_ptr ImplPtr; typedef zypp::base::intrusive_ptr Ptr; typedef zypp::base::intrusive_ptr constPtr; public: ResImplConnect( /*NVRA*/ ImplPtr impl_r ) : _impl( impl_r ? impl_r : ImplPtr(new Impl /*NVRA*/) ) { _impl->_backRef = this; } virtual ~ResImplConnect() {} private: ImplPtr _impl; virtual Impl & impl() { return *_impl; } virtual const Impl & impl() const { return *_impl; } }; template typename TImpl::ResType::Ptr makeResolvable( /*NVRA*/ zypp::base::shared_ptr & impl_r ) { impl_r.reset( new TImpl ); return new ResImplConnect( /*NVRA*/ impl_r ); } /////////////////////////////////////////////////////////////////// #include using std::list; struct ObjectImpl { const Resolvable * self() const { return _backRef; } Resolvable * self() { return _backRef; } virtual string summary() const { return string(); } virtual list description() const { return list(); } //virtual FSize size() const { return 0; } //virtual bool providesSources() const { return false; } ObjectImpl() : _backRef( 0 ) {} virtual ~ObjectImpl() {}; private: template friend class ResImpl; Resolvable * _backRef; }; class Object : public Resolvable { public: string summary() const; list description() const; //FSize size() const; //bool providesSources() const; public: typedef Object Self; typedef ObjectImpl Impl; typedef zypp::base::intrusive_ptr Ptr; typedef zypp::base::intrusive_ptr constPtr; protected: Object( const string kind_r /*NVRA*/ ); virtual ~Object(); private: virtual Impl & impl() = 0; virtual const Impl & impl() const = 0; }; /////////////////////////////////////////////////////////////////// class Package; struct PackageImpl : public ObjectImpl { typedef Package ResType; virtual string packagedata() const { return string(); } }; class Package : public Object { public: string packagedata() const; public: typedef Package Self; typedef PackageImpl Impl; typedef zypp::base::intrusive_ptr Ptr; typedef zypp::base::intrusive_ptr constPtr; protected: Package( /*NVRA*/ ); virtual ~Package(); private: virtual Impl & impl() = 0; virtual const Impl & impl() const = 0; }; /////////////////////////////////////////////////////////////////// class Selection; struct SelectionImpl : public ObjectImpl { typedef Selection ResType; virtual string selectiondata() const { return string(); } }; class Selection : public Object { public: string selectiondata() const; public: typedef Selection Self; typedef SelectionImpl Impl; typedef zypp::base::intrusive_ptr Ptr; typedef zypp::base::intrusive_ptr constPtr; protected: Selection( /*NVRA*/ ); virtual ~Selection(); private: virtual Impl & impl() = 0; virtual const Impl & impl() const = 0; }; /////////////////////////////////////////////////////////////////// #endif // main_h libzypp-17.7.0/devel/genclass.in000066400000000000000000000164341334444677500165560ustar00rootroot00000000000000#! /bin/bash function usage() { echo $@ >&2 echo <&2 Usage: genclass [path/]stem EOF exit 1 } test -z "$1" && usage "Missing name!" TOPSRCDIR=${XTOPSRCDIR:-$(cd @CMAKE_SOURCE_DIR@ && pwd)} test -z "$TOPSRCDIR" && { echo "Dir does not exist '$TOPSRCDIR'" >&2 exit 1 } OUTDIR=$(dirname $1) STEM=$(basename $1) STEMDIR=$( cd $OUTDIR && pwd ) test -z "$STEMDIR" && { echo "Dir does not exist '$(dirname $1)'" >&2 exit 1 } STEMDIR=${STEMDIR#$TOPSRCDIR/} CLASS=$STEM CLASS_H=$STEMDIR/$STEM.h CLASS_CC=$STEMDIR/$STEM.cc OUT_CLASS_H=$OUTDIR/$STEM.h OUT_CLASS_CC=$OUTDIR/$STEM.cc test -e $OUT_CLASS_H -o -e $OUT_CLASS_CC && { test -e $OUT_CLASS_H && echo "File exists '$OUT_CLASS_H' using '$OUT_CLASS_H.new'" >&2 test -e $OUT_CLASS_CC && echo "File exists '$OUT_CLASS_CC' using '$OUT_CLASS_CC.new'" >&2 OUT_CLASS_H="$OUT_CLASS_H.new" OUT_CLASS_CC="$OUT_CLASS_CC.new" } INCLUDE_H=$CLASS_H INCLUDE_DEF=$(echo $INCLUDE_H | sed 's/[./]/_/g' | awk '{print toupper($0)}') NSLIST=$(echo $(dirname $INCLUDE_H) | awk '{l=tolower($0);gsub("/"," ",l);print l}') SNLIST= INDENT= for N in $NSLIST; do SNLIST="$N $SNLIST" INDENT="$INDENT " done ###################################################################### function intro() { ###################################################################### local FILE=$1 cat < #include "zypp/base/PtrTypes.h" $(nsopen) ${INDENT}/////////////////////////////////////////////////////////////////// ${INDENT}/// \class ${CLASS} ${INDENT}/// \brief ${INDENT}/////////////////////////////////////////////////////////////////// ${INDENT}class ${CLASS} ${INDENT}{ ${INDENT} friend std::ostream & operator<<( std::ostream & str, const ${CLASS} & obj ); ${INDENT} friend std::ostream & dumpOn( std::ostream & str, const ${CLASS} & obj ); ${INDENT} friend bool operator==( const ${CLASS} & lhs, const ${CLASS} & rhs ); ${INDENT} public: ${INDENT} /** Default ctor */ ${INDENT} ${CLASS}(); ${INDENT} /** Dtor */ ${INDENT} ~${CLASS}(); ${INDENT} public: ${INDENT} /** Validate object in a boolean context. */ ${INDENT} explicit operator bool() const ${INDENT} { ${INDENT} /* !!! Perform Boolean logic here AND check implememtation of operator==!!! ${INDENT} * NOTE: SafeBool requires operator== otherwise equality is reduced to ${INDENT} * ( bool(${CLASS}) == bool(${CLASS}) ). ${INDENT} */ ${INDENT} } ${INDENT} public: ${INDENT} class Impl; ///< Implementation class. ${INDENT} private: ${INDENT} RWCOW_pointer _pimpl; ///< Pointer to implementation. ${INDENT}}; ${INDENT}/** \relates ${CLASS} Stream output */ ${INDENT}std::ostream & operator<<( std::ostream & str, const ${CLASS} & obj ); ${INDENT}/** \relates ${CLASS} Verbose stream output */ ${INDENT}std::ostream & dumOn( std::ostream & str, const ${CLASS} & obj ); ${INDENT}/** \relates ${CLASS} */ ${INDENT}bool operator==( const ${CLASS} & lhs, const ${CLASS} & rhs ); ${INDENT}/** \relates ${CLASS} */ ${INDENT}inline bool operator!=( const ${CLASS} & lhs, const ${CLASS} & rhs ) ${INDENT}{ return !( lhs == rhs ); } $(nsclose) #endif // $INCLUDE_DEF EOF } ###################################################################### function genCC() { ###################################################################### cat < //#include "zypp/base/LogTools.h" #include "zypp/base/NonCopyable.h" #include "${INCLUDE_H}" using std::endl; $(nsopen) ${INDENT}/////////////////////////////////////////////////////////////////// ${INDENT}/// \class ${CLASS}::Impl ${INDENT}/// \brief ${CLASS} implementation. ${INDENT}/////////////////////////////////////////////////////////////////// ${INDENT}class ${CLASS}::Impl : private base::NonCopyable ${INDENT}{ ${INDENT} friend std::ostream & operator<<( std::ostream & str, const Impl & obj ); ${INDENT} friend std::ostream & dumpOn( std::ostream & str, const Impl & obj ); ${INDENT} public: ${INDENT} public: ${INDENT} /** Offer default Impl. */ ${INDENT} static shared_ptr nullimpl() ${INDENT} { ${INDENT} static shared_ptr _nullimpl( new Impl ); ${INDENT} return _nullimpl; ${INDENT} } ${INDENT} private: ${INDENT} friend Impl * rwcowClone( const Impl * rhs ); ${INDENT} /** clone for RWCOW_pointer */ ${INDENT} Impl * clone() const ${INDENT} { return new Impl( *this ); } ${INDENT}}; ${INDENT}/** \relates ${CLASS}::Impl Stream output */ ${INDENT}inline std::ostream & operator<<( std::ostream & str, const ${CLASS}::Impl & obj ) ${INDENT}{ return str << "${CLASS}::Impl"; } ${INDENT}/** \relates ${CLASS}::Impl Verbose stream output */ ${INDENT}inline std::ostream & dumpOn( std::ostream & str, const ${CLASS}::Impl & obj ) ${INDENT}{ return str << obj; } ${INDENT}/////////////////////////////////////////////////////////////////// ${INDENT}// ${INDENT}// CLASS NAME : ${CLASS} ${INDENT}// ${INDENT}/////////////////////////////////////////////////////////////////// ${INDENT}${CLASS}::${CLASS}() ${INDENT} : _pimpl( Impl::nullimpl() ) ${INDENT}{} ${INDENT}${CLASS}::~${CLASS}() ${INDENT}{} ${INDENT}std::ostream & operator<<( std::ostream & str, const ${CLASS} & obj ) ${INDENT}{ return str << *obj._pimpl; } ${INDENT}std::ostream & dumpOn( std::ostream & str, const ${CLASS} & obj ) ${INDENT}{ return dumpOn( str, *obj._pimpl ); } ${INDENT}bool operator==( const ${CLASS} & lhs, const ${CLASS} & rhs ) ${INDENT}{ return lhs._pimpl == rhs._pimpl || lhs._pimpl && rhs._pimpl && *lhs._pimpl == *rhs._pimpl; } $(nsclose) EOF } ###################################################################### ###################################################################### ###################################################################### genH >$OUT_CLASS_H genCC >$OUT_CLASS_CC libzypp-17.7.0/doc/000077500000000000000000000000001334444677500140655ustar00rootroot00000000000000libzypp-17.7.0/doc/CMakeLists.txt000066400000000000000000000040061334444677500166250ustar00rootroot00000000000000IF ( ENABLE_BUILD_DOCS ) ADD_SUBDIRECTORY( autodoc ) ELSE ( ENABLE_BUILD_DOCS ) ADD_SUBDIRECTORY( autodoc EXCLUDE_FROM_ALL ) ENDIF ( ENABLE_BUILD_DOCS ) FIND_PROGRAM(A2X a2x) IF (A2X) MESSAGE("a2x found: ${A2X}") SET(ASCDOC_CMD ${A2X} -D ${CMAKE_CURRENT_BINARY_DIR} -f manpage) ENDIF (A2X) FIND_PROGRAM(ASCIIDOC asciidoctor) IF (ASCIIDOC) MESSAGE("asciidoctor found: ${ASCIIDOC}") SET(ASCDOC_CMD ${ASCIIDOC} -D ${CMAKE_CURRENT_BINARY_DIR} -b manpage -d manpage) ENDIF (ASCIIDOC) IF (NOT ASCDOC_CMD) MESSAGE(FATAL_ERROR "Could not find a2x or asciidoctor, please install either one of them.") ENDIF() function(ADD_A2X_MANPAGES) set(options) set(oneValueArgs MAN_INST_PATH) set(multiValueArgs MAN_PAGES1 MAN_PAGES2 MAN_PAGES3 MAN_PAGES4 MAN_PAGES5 MAN_PAGES6 MAN_PAGES7 MAN_PAGES8) cmake_parse_arguments(A2X "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) set(ALL_MAN_PAGES) FOREACH (MAN_IDX RANGE 1 8) IF (NOT DEFINED A2X_MAN_PAGES${MAN_IDX}) CONTINUE() ENDIF() FOREACH (curr_PAGE ${A2X_MAN_PAGES${MAN_IDX}}) ADD_CUSTOM_COMMAND ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${curr_PAGE} COMMAND ${ASCDOC_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/${curr_PAGE}.txt DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${curr_PAGE}.txt WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Building manpage ${curr_PAGE}" ) ADD_CUSTOM_TARGET( ${curr_PAGE}_Target ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${curr_PAGE} ) INSTALL ( FILES ${CMAKE_CURRENT_BINARY_DIR}/${curr_PAGE} DESTINATION "${A2X_MAN_INST_PATH}/man${MAN_IDX}" ) ENDFOREACH () ENDFOREACH() endfunction(ADD_A2X_MANPAGES) SET (libzypp_MAN1 zypp-CheckAccessDeleted.1 zypp-NameReqPrv.1) SET (libzypp_MAN5 locks.5) ADD_A2X_MANPAGES( MAN_INST_PATH ${MANDIR} MAN_PAGES1 ${libzypp_MAN1} MAN_PAGES5 ${libzypp_MAN5} ) libzypp-17.7.0/doc/autodoc/000077500000000000000000000000001334444677500155235ustar00rootroot00000000000000libzypp-17.7.0/doc/autodoc/CMakeLists.txt000066400000000000000000000037761334444677500203000ustar00rootroot00000000000000### ################################################## IF ( DOXYGEN ) ### ################################################## FIND_PROGRAM( DOT dot ) IF ( NOT DOT ) MESSAGE( "dot not found: you should install graphviz." ) SET( HAVE_DOT NO ) ELSE ( NOT DOT ) SET( HAVE_DOT YES ) ENDIF ( NOT DOT ) SET( ZYPP_SOURCE_DIR ${LIBZYPP_SOURCE_DIR}/zypp ) SET( ZYPP_DOCINCLUDE_DIR ${LIBZYPP_SOURCE_DIR}/doc/autoinclude ) SET( ZYPP_EXAMPLE_DIR ${LIBZYPP_SOURCE_DIR}/examples ) SET( DOXYGEN_INPUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile ) SET( DOXYGEN_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/index.html ) FILE( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html ) ### ################################################## CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${DOXYGEN_INPUT} @ONLY ) ### ################################################## ADD_CUSTOM_COMMAND ( OUTPUT ${DOXYGEN_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Building Documentation..." COMMAND ${DOXYGEN} ${DOXYGEN_INPUT} || { echo '*** IGNORE FAILED DOXYGEN - DOC MIGHT BE INCOMPLETE!'\; true\; } COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${DOXYGEN_INPUT} ) ADD_CUSTOM_TARGET( doc ALL DEPENDS ${DOXYGEN_OUTPUT} ) ADD_CUSTOM_TARGET( doc_forced COMMAND ${CMAKE_COMMAND} -E echo_append "Building Documentation..." COMMAND ${DOXYGEN} ${DOXYGEN_INPUT} || { echo '*** IGNORE FAILED DOXYGEN - DOC MIGHT BE INCOMPLETE!'\; true\; } COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${DOXYGEN_INPUT} ) ### ################################################## INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/libzypp.doxytag DESTINATION ${DOC_INSTALL_DIR}/libzypp/libzypp.doxytag ) INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${DOC_INSTALL_DIR}/libzypp ) ### ################################################## ENDIF ( DOXYGEN ) ### ################################################## libzypp-17.7.0/doc/autodoc/Doxyfile.cmake000066400000000000000000000202651334444677500203150ustar00rootroot00000000000000# Doxyfile 1.4.4 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = @PACKAGE@ PROJECT_NUMBER = @VERSION@ OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@ STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO INHERIT_DOCS = YES DISTRIBUTE_GROUP_DOC = NO SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = YES EXTRACT_PRIVATE = YES EXTRACT_STATIC = YES EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = YES FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = YES WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = @ZYPP_DOCINCLUDE_DIR@ @ZYPP_SOURCE_DIR@ FILE_PATTERNS = *.h *.hh *.hxx *.hpp *.h++ *.c *.cc *.cxx *.cpp *.c++ *.tcc *.hcc *.doc RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = @ZYPP_DOCINCLUDE_DIR@ @ZYPP_EXAMPLE_DIR@ @LIBZYPP_SOURCE_DIR@ EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = YES INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO USE_HTAGS = NO VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = YES TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = @PACKAGE@.doxytag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = @HAVE_DOT@ CLASS_GRAPH = YES COLLABORATION_GRAPH = NO GROUP_GRAPHS = NO UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = NO DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO libzypp-17.7.0/doc/autoinclude/000077500000000000000000000000001334444677500164015ustar00rootroot00000000000000libzypp-17.7.0/doc/autoinclude/ApplicationMetada.doc000066400000000000000000000071251334444677500224540ustar00rootroot00000000000000/** \page zypp--appdata Code 12 Application Metadata \author Michael Andres
\section zypp-appdata_intro Intro Since Code12 we support \c application as new kind of resolvable object (see e.g. http://worldofgnome.org/gnome-software-on-opensuse). This is short abstract about how a \c package and it's associated \c application are connected metadata wise. \code # zypper download virt-manager ... Retrieving package virt-manager-1.2.1-8.1.noarch (1/1), 354.8 KiB ( 2.6 MiB unpacked) (1/1) /var/cache/zypp/packages/server/suse/noarch/virt-manager-1.2.1-8.1.noarch.rpm .......[done] \endcode \code # rpm -qplv /var/cache/zypp/packages/server/suse/noarch/virt-manager-1.2.1-8.1.noarch.rpm | grep /usr/share/appdata -rw-r--r-- 1 root root 1119 Sep 18 09:47 /usr/share/appdata/virt-manager.appdata.xml \endcode The package:virt-manager provides \c application metadata in its file /usr/share/appdata/virt-manager.appdata.xml. After installation the presence of /usr/share/appdata/virt-manager.appdata.xml indicates the installed application:'Virtual Machine Manager'. The connection is provided by the package:virt-manager \c appdata provides... \code # zypp-NameReqPrv -D virt-manager ... (976)virt-manager-1.2.1-8.1.noarch(@System) PROVIDES (5){ application() appdata() appdata(virt-manager.appdata.xml) ^^^^^^^^^^^^ \endcode ...matching the content of \c /usr/share/appdata/virt-manager.appdata.xml: \code # less /usr/share/appdata/virt-manager.appdata.xml virt-manager.desktop ^^ ^^^^^^^^^^^^ CC0-1.0 GPL-2.0+ Virtual Machine Manager \endcode To establish this connection for uninstalled \c package/application pairs, the repository metadata must provide the \c appdata.xml files for the included packages. This is done in for \c susetags repos in \c suse/setup/descr/appdata.xml.gz, for \c rpmmd in repodata/CHCKSUM-appdata.xml.gz. \section zypp-appdata_wrong_appdata Missing or wrong appdata \code # zypper se -s -t application 'Virtual Machine Manager' ... S | Name | Type | Version | Arch | Repository --+-------------------------+-------------+---------+--------+------------------ i | Virtual Machine Manager | application | | noarch | (System Packages) \endcode \code # zypper se -s virt-manager ... S | Name | Type | Version | Arch | Repository --+---------------------+------------+-----------+--------+------------------ i | virt-manager | package | 1.2.1-8.1 | noarch | SLE-12-SP1-Server \endcode \note While the package:virt-manager is installed and also available in the SLE-12-SP1-Server repository, (System Packages) indicates that the \c application is installed, but not provided by any repository. This usually happens if the repository provides wrong appdata, or no appdata at all. \code # zypper in -f virt-manager ... Forcing installation of 'virt-manager-1.2.1-8.1.noarch' from repository 'SLE-12-SP1-Server'. Resolving package dependencies... The following application is going to be REMOVED: "Virtual Machine Manager" The following package is going to be reinstalled: virt-manager \endcode \c Zypper can not 'see' that the new package also transports a new application. Due to this \c zypper must assume the installed application gets deleted, when the package is reinstalled or updated. \code \endcode */ libzypp-17.7.0/doc/autoinclude/CodePitfalls.doc000066400000000000000000000027141334444677500214450ustar00rootroot00000000000000namespace zypp { /** \page CodePitfalls Code Pitfalls - Frequently made mistakes \section TriBoolCompare Comparing TriBool values Comparing two \ref TriBool values is not as easy as it might look like, because the \c TriBool::operator== and \c TriBool::operator!= return a \ref TriBool. For example is (indeterminate==indeterminate) not \c true, but \c indeterminate. That's why the following snippet does not do what the author expected: \code // buggy option class struct Option { public: Option() : _value( indeterminate ) {} bool get() const { return ( _value == indeterminate ) ? true : bool(_value); } void set( bool new_r ) { _value = new_r; } private: tribool _value; }; \endcode You find that \c get() returns \c false as long as the option is unset, and not \c true as the code suggests. That's because (_value==indeterminate) returns \c indeterminate. \note Always use \c indeterminate(_value) to test whether a TriBools value is \c indeterminate: \code bool get() const { return indeterminate( _value ) ? true : bool(_value); } \endcode \code tribool _value; ... if ( indeterminate( _value ) ) { ... } // indeterminate else if ( _value ) { ... } // true else { ... } // false \endcode
*/ } libzypp-17.7.0/doc/autoinclude/CodeSnippets.doc000066400000000000000000000101441334444677500214700ustar00rootroot00000000000000/** \page CodeSnippets Code Snippets \section for_ If you prefer using iterator in a \c for loop, but dislike to figure out the exact type of the iterator, you may find the \c for_ macro convenient: \code #include "zypp/base/Easy.h" for_( it, pool.byIdentBegin( kind, name ), pool.byIdentEnd( kind, name ) ) { PoolItem copy = *it; } \endcode instead of: \code for ( ResPool::byIdent_iterator it = pool.byIdentBegin( kind, name ), end = pool.byIdentEnd( kind, name ); it != end, ++it ) { PoolItem copy = *it; } \endcode \section erase erase elements from containers \verbatim // ////////////////////////////////////////////////////////////////////// // Avoid buggy code, that tries to erase elements, matching a // certain property from containers. Example: // // for (ResStore::iterator it = store.begin(); it != store.end(); ++it) // { // _pool.erase(*it); // } // // Problem: Removing an element from a container invalidates (at least) // all iterators pointing to it. Thus after erasing *it, it is // no longer valid. ++it has UNDEFINED BEHAVIOUR. // ////////////////////////////////////////////////////////////////////// // Loop based algorithms (differs depending on the kind of container) // ===================== // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Sequential container (vector string deque list): erase returns // a valid iterator to the next element. // ////////////////////////////////////////////////////////////////////// SeqContainer c; for ( SeqContainer::iterator it = c.begin(); it != c.end(); /**/ ) { if ( toBeRemoved( *it ) ) { it = c.erase( it ); // valid next-iterator returned } else ++it; } // ////////////////////////////////////////////////////////////////////// // Associative container (maps sets): erase returns void, but we can use // postfix increment, as ONLY iterators to the eased object get invalid: // ////////////////////////////////////////////////////////////////////// AssocContainer c; for ( AssocContainer::iterator it = c.begin(); it != c.end(); /**/ ) { if ( toBeRemoved( *it ) ) { c.erase( it++ ); // postfix! Incrementing before erase } else ++it; } // ////////////////////////////////////////////////////////////////////// // stl algorithms // ============== // // In case toBeRemoved above is actually a function/functor. // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Sequential container (vector string deque): stl::remove_if, // does not erase elements, they are just moved to the containers // end, and an iterator to the 1st item to be 'removed' is returned. // ////////////////////////////////////////////////////////////////////// SeqContainer c; c.erase( stl::remove_if( c.begin(), c.end(), toBeRemoved ), c.end() ); // ////////////////////////////////////////////////////////////////////// // Sequential container (list): The above works too, but list has a // builtin remove/remove_if which is more efficient. // ////////////////////////////////////////////////////////////////////// list c; c.remove_if( toBeRemoved ); // ////////////////////////////////////////////////////////////////////// // Associative container (maps sets): Actually the loop above is the most // efficient solution. There is an algorithm based solution, but it requires // copying all elements not to be removed ;( // ////////////////////////////////////////////////////////////////////// AssocContainer c; AssocContainer keepItems; stl::remove_copy_if( c.begin(), c.end(), stl::inserter( keepItems, keepItems.end() ), toBeRemoved ); c.swap( keepItems ); \endverbatim */libzypp-17.7.0/doc/autoinclude/EnvironmentVariables.doc000066400000000000000000000052651334444677500232350ustar00rootroot00000000000000/** \page zypp-envars Environment Variables \author Michael Andres \section zypp-envars-intro Environment Variables Note that for Boolean variables we usually test whether the variable exists and not for the assigned value. \subsection zypp-envars-config zypp config options \li \c ZYPP_CONF= Location of the zypp.conf file. \li \c ZYPP_LOCK_TIMEOUT= If zypp is locked by another process wait this number of seconds for the lock becoming available. \subsection zypp-envars-repos Variables related to repositories \li \c ZYPP_REPO_RELEASEVER= Overwrite the \c $releasever variable in repository URLs and names (\see zypp::repo::RepoVariablesStringReplacer). \subsection zypp-envars-commit Variables related to commit \li \c ZYPP_IS_RUNNING=1 Set during commit so packages pre/post/trigger scripts can detect whether rpm was called from within libzypp. \subsection zypp-envars-logging Variables related to logging \li \c ZYPP_LOGFILE= Location of the logfile to write or \c - for stderr. \li \c ZYPP_FULLLOG=1 Even more verbose logging (usually not needed). \li \c ZYPP_LIBSOLV_FULLLOG=1 Verbose logging when resolving dependencies. \li (\c ZYPP_LIBSAT_FULLLOG=1) deprecated since \c libzypp-10.x, prefer \c ZYPP_LIBSOLV_FULLLOG \li \c LIBSOLV_DEBUGMASK= Pass value to libsolv::pool_setdebugmask \li \c ZYPP_MEDIA_CURL_DEBUG=<1|2> Log http headers, if \c 2 also log server responses. \li \c ZYPP_MEDIA_CURL_IPRESOLVE=<4|6> Tell curl to resolve names to IPv4/IPv6 addresses only. \subsection zypp-envars-mediabackend Selecting the mediabackend to use. \li \c ZYPP_MULTICURL=0 Turn off multicurl (metalink and zsync) and fall back to plain libcurl. \subsection zypp-envars-plugin Variables related to plugins \li \c ZYPP_PLUGIN_DEBUG=1 Verbose logging from plugin framework. \li \c ZYPP_PLUGIN_TIMEOUT= Send/receive timeout for plugin communication. \li \c ZYPP_PLUGIN_SEND_TIMEOUT= Send timeout for plugin communication. \li \c ZYPP_PLUGIN_RECEIVE_TIMEOUT= Receive timeout for plugin communication. \li \c ZYPP_PLUGIN_APPDATA_FORCE_COLLECT=1 Make RepoManager trigger the appdata collector plugin unconditionally. Can be used with \c 'zypper \c lr' (as root) to trigger an initial collect rather than calling \c 'zypper \c ref \c -f' or waiting for some repo to be refreshed. \subsection zypp-envars-misc Variables not for common use (test and debug) \li \c ZYPP_MODALIAS_SYSFS= Use this instead of \c /sys to evaluate modaliases. \li \c ZYPP_COMMIT_NO_PACKAGE_CACHE=1 \li \c ZYPP_TESTSUITE_FAKE_ARCH Never use this! \li \c ZYPPTMPDIR= \li \c ZYPP_LOCKFILE_ROOT= Hack to circumvent the currently poor --root support. \li \c ZYPP_PROFILING=1 */ libzypp-17.7.0/doc/autoinclude/FeatureTest.doc000066400000000000000000000043111334444677500213220ustar00rootroot00000000000000/** \page feature-test Testing for provided features. \author Michael Andres
\section intro Introduction The libzypp rpm package will indicate the presence of certain features by using special \c Provides: \verbatim # Provides: libzypp(FEATURE) = FEATURE_VERSION Provides: libzypp(code10) = 0 \endverbatim Packages requiring a feature may use the corresponding \c Requires: in their .spec file.
\section features Features
plugin
version 0
General ability to provide and handle plugins.
version 0.1
Bugfix: don't reject header values containing a ':'.
plugin:commit
\ref plugin-commit
version 0
Basic plugin indicating start and end of commit.
version 1
Added COMMITBEGIN/COMMITEND.
plugin:services
\ref plugin-services
version 0
Provide a client a list of repositories.
version 1
Support multiple repo baseurls in plugin services.
plugin:system
\ref plugin-system
version 0
Plugin executed when system content change is detected (by now SUSE Manager/spacewalk only).
version 1
Plugin executed when system content change is detected (all installed plugins).
plugin:urlresolver
\ref plugin-url-resolver
version 0
Convert urls of scheme "plugin" into a supported scheme.
repovarexpand
\ref zypp-repovars
version 0
Also support braced variables, shell like default and alternate values.
version 1
Also support user defined repo variables in /etc/zypp/vars.d.
version 1.1
Support repo variables in an URIs \c host and \c port component.
*/ libzypp-17.7.0/doc/autoinclude/Mainpage.doc000066400000000000000000000060171334444677500206150ustar00rootroot00000000000000/** \mainpage Welcome to libzypp \section intro Introduction Welcome to the libzypp documentation. libzypp is the package management library that powers applications like YaST, zypper and the openSUSE/SLE implementation of PackageKit. \section whatis What is libzypp? libzypp provides all the functionality for a package manager: - An API for package repository management, supporting most common repository metadata formats and signed repositories. - An API for solving packages, products, patterns and patches (installation, removal, update and distribution upgrade operations) dependencies, with additional features like locking. - An API for commiting the transaction to the system over a rpm target. Supporting deltarpm calculation, media changing and installation order calculation. - An API for browsing available and installed software, with some facilities for programs with an user interface. - A suite of maintained solving testcases representing common and uncommon operations on Linux software management \section impl Implementation libzypp is implemented as a C++ library with experimental bindings available for python and ruby. \section otherfunc Other functionality offered by libzypp Most of libzypp functionality is implemented over components provided also by libzypp: - Media abstraction library offering a common interface over local files, http,ftp,iso,nfs and other protocols. \section thirdpfunc 3rd party software libzypp is based on Additionally, some functionality libzypp uses is based on 3rd party libraries: - SAT solver library, for dependency solving and repository data storage and querying - curl, that powers some protocols of the media abstraction component - boost, for misc. utilities like shared pointers, functors and algorithms. \section join Join the community Visit our web site at : http://en.opensuse.org/Libzypp or #zypp on irc.freenode.net \section license License \code /*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ Copyright (C) 2000-2002 Ximian, Inc. Copyright (C) 2005 SUSE Linux Products GmbH ZYpp is licensed under the GNU General Public License version 2 or later. The text of the GNU General Public License can be viewed at http://www.gnu.org/licenses/gpl.html As a special exception, you have permission to link this program with the following libraries and distribute executables, as long as you follow the requirements of the GNU GPL in regard to all of the software in the executable aside from the following libraries: - OpenSSL (http://www.openssl.org) \endcode */libzypp-17.7.0/doc/autoinclude/Notes.doc000066400000000000000000000024751334444677500201700ustar00rootroot00000000000000namespace zypp { /** \page Notes Notes on revisions \section V_6_8_0 6.8.0 - Deprecated methods deleted \li \c AuthData::setUserName renamed to AuthData::setUsername \li \c ResObject::installsize renamed to ResObject::installSize \li \c ResObject::size renamed to ResObject::installSize \li \c ZConfig::productsPath unused/unneeded/deleted \li \c PoolQuery::setMatchFiles unused/unneeded/deleted \li \c PoolQuery::matchFiles unused/unneeded/deleted \li \c PoolQuery::matchType instead use PoolQuery::matchMode().mode() (returns an enum now, no longer int) \li \c Patch::reboot_needed renamed to Patch::rebootSuggested \li \c Patch::affects_pkg_manager renamed to Patch::restartSuggested \li \c Patch::id unused/unneeded/deleted \li \c MediaSetAccess::provideOptionalFile unused/unneeded/deleted \li \c Target::reset unused/unneeded/deleted \li \c Target::release renamed to Target::targetDistribution \li \c MediaManager::attachDesiredMedia renamed to MediaManager::attach
\section V_6_10_0 6.10.0 - Removed zypp::UpgradeStatistics Since \c Code-11 the distribution upgrade is computed by libsolv and no longer by libzypp itself. For some reason zypp::UpgradeStatistics were still present in the interfaces, but actually no longer used. Neither as input nor as result struct. Now they are removed.
*/ } libzypp-17.7.0/doc/autoinclude/PatternPackages.doc000066400000000000000000000076771334444677500221650ustar00rootroot00000000000000/** \page zypp-pattern-packages Code 12 Pattern Packages \author Michael Andres
\section zypp-pattern-packages_intro Intro Since Code12 (SLES-12) we utilize a new method of defining patterns, as opposed to the older XML-based patterns files. A pattern and it's dependencies are now represented by a rpm package and the few pattern specific properties are provided by the package. No extra XML-file is needed. By convention a patterns-package for a pattern:FOO is named patterns-[*-]FOO and is must provide pattern() = FOO. Usually the patterns-package name has a distribution or product identifier embedded, like in patterns-sles-Minimal or patterns-openSUSE-xfce. The pattens content is expressed by the patterns-packages dependencies to other packages and patterns-packages. The list of patterns-package provides used for the new pattern autogeneration:
Basic provides relevant for package management (libzypp/zypper):
Provides: pattern() = FOO The patterns name: FOO. Additional attributes like version, release, architecture, summary and description are taken from the pattenrs-package.
Provides: pattern-visible() A UI hint telling whether the pattern should be shown to the user. If the provides is missing, the UI will usually hide the pattern in lists and output. This is mainly used for helper patterns defining a basic content which is then required/recommended by different (visible) patterns.
Additional pattern properties not used by libzypp, but provided by the API mainly for the YAST UI:
Provides: pattern-icon() = STRING Name of an icon the UI should use for this pattern.
Provides: pattern-order() = STRING A string used by the UI for sorting patterns rather than 'by name'. Usually some 4-digit string like "1750"
Provides: pattern-category() = STRING The category name used in the UI in English (en).
Provides: pattern-category(de) = STRING The category name translated. E.g. into German (de).
Provides: pattern-includes() = STRING Hint for the UI to include an other patterns content (i.e. its required and recommended packages) in this patterns content list. Usually used to embed the content of an invisible pattern in a visible one.
Provides: pattern-extends() = STRING Reverse-includes. Hint for the UI to include this patterns content (i.e. its required and recommended packages) in an other patterns content list. Usually used to embed the content of an invisible pattern in a visible one.
STRING must be url-hexencoded so that it does not contain any characters that rpm-provides can't have.
E.g.: ' ' => %20 / ',' => %2C / '-' => %2D
\code patterns-sles-Minimal-12-37.1.x86_64.rpm PROVIDES { pattern() == Minimal pattern-icon() == pattern-basis pattern-order() == 1099 pattern-visible() pattern-category() == Base%20Technologies pattern-category(ar) == %D8%A7%D9%84%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7%D8%AA%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9 pattern-category(ca) == Tecnologies%20de%20base pattern-category(cs) == Z%C3%A1kladn%C3%AD%20technologie pattern-category(da) == Basisteknologier pattern-category(de) == Basistechnologien ... } REQUIRES { systemd coreutils insserv aaa_base ... } RECOMMENDS (22){ grub2 rpcbind nfs-client rsyslog ... } \endcode */ libzypp-17.7.0/doc/autoinclude/Plugin-Commit.doc000066400000000000000000000070421334444677500215570ustar00rootroot00000000000000/** \page plugin-commit Commit plugin \author Michael Andres
\section intro Introduction This is a statefull plugin executed during \ref zypp::ZYpp::commit. At the beginning of a commit all plugins found in \c /usr/lib/zypp/plugins/commit are launched. The plugins will receive messages as commit proceeds. Unless otherwise specified messages received need to be confirmed by sending an \c ACC message. Sending back an unexpected or \c ERROR message execution of the plugin will be canceled. If you have e.g. \c zypp-plugin-python installed a basic commit plugin could look like this: \verbatim #!/usr/bin/env python # # zypp commit plugin # import os import sys from zypp_plugin import Plugin class MyPlugin(Plugin): def PLUGINBEGIN(self, headers, body): # commit is going to start. if headers.has_key('userdata'): print "Commit starts with TID '%s'" % headers['userdata'] self.ack() def PLUGINEND(self, headers, body): # commit ended self.ack() plugin = MyPlugin() plugin.main() \endverbatim \see \ref plugin-writing
\section pluginbegin PLUGINBEGIN \verbatim PLUGINBEGIN userdata:TIDfoo42 ^@ \endverbatim Sent as 1st message after the plugin was launched. Prepare your plugin and send an \c ACC message when you are done. Commit will start after all plugins are initialized. \li \c userdata:stringval Optional header sent if the application has provided a user data string. \see \ref zypp-userdata
\section commitbegin COMMITBEGIN (added in v1) \verbatim COMMITBEGIN { "TransactionStepList": [ ,... ] } ^@ \endverbatim Sent before installation actually starts. The body contains a JSON encoded object providing the \c TransactionStepList, basically the list of install/remove actions the the commit is going to perform. Each \c TransactionStep is encoded as JSON object: \verbatim = { "type": # [optional] "stage": # [optional] "solvable": } = # ignore; implicit or non-package actions | "-" # remove | "+" # install | "M" # multi version install; install keeping the old version; e.g. kernel = # todo | "ok" # done | "err" # failed = { "n": # name "e": # epoch if not 0 [optional] "v": # version "r": # release "a": # architecture } \endverbatim \see \ref zypp::sat::Transaction::Step
\section commitend COMMITEND (added in v1) \verbatim COMMITEND { "TransactionStepList": [ ,... ] } ^@ \endverbatim Sent at the end of commit. The body contains a JSON encoded object providing the final \c TransactionStepList. The \c StepStage indicates whether the action succeeded, failed or was skipped (still 'todo'). \see \ref commitbegin
\section pluginend PLUGINEND \verbatim PLUGINEND ^@ \endverbatim This message is sent at the end of commit. You should receive this message even if commit was aborted by some unexpected exception. */ libzypp-17.7.0/doc/autoinclude/Plugin-System.doc000066400000000000000000000040441334444677500216120ustar00rootroot00000000000000/** \page plugin-system System plugin \author Michael Andres
\section intro Introduction This is a statefull plugin executed at the end of \ref zypp::ZYpp::commit, if the system content has change, i.e. if packages have actually been installed or deleted. All plugins found in \c /usr/lib/zypp/plugins/system are launched. Unless otherwise specified, messages received need to be confirmed by sending an \c ACC message. Sending back an unexpected or \c ERROR message, the execution of the plugin will be canceled. If you have e.g. \c zypp-plugin-python installed a basic system plugin could look like this: \verbatim #!/usr/bin/env python # # zypp system plugin # import os import sys from zypp_plugin import Plugin class MyPlugin(Plugin): def PACKAGESETCHANGED(self, headers, body): // Installation has ended. The set of installed packages has changed. // .... self.ack() def plugin = MyPlugin() plugin.main() \endverbatim \see \ref plugin-writing
\section pluginbegin PLUGINBEGIN \verbatim PLUGINBEGIN userdata:TIDfoo42 ^@ \endverbatim Sent as 1st message after the plugin was launched. Prepare your plugin and send an \c ACC message when you are done. \li \c userdata:stringval Optional header sent if the application has provided a user data string. \see \ref zypp-userdata
\section packagesetchanged PACKAGESETCHANGED \verbatim PACKAGESETCHANGED ^@ \endverbatim Installation has ended. The set of installed packages has changed. \see \ref zypp::sat::Transaction::Step
\section pluginend PLUGINEND \verbatim PLUGINEND ^@ \endverbatim This message is sent at the end before the plugin is closed. You should receive this message even if the action was aborted by some unexpected exception. */ libzypp-17.7.0/doc/autoinclude/Plugins.doc000066400000000000000000000205311334444677500205120ustar00rootroot00000000000000/** \page zypp-plugins Extending ZYpp: Plugins and Hooks \author Duncan Mac-Vicar P. \author Michael Andres
\section plugins-intro Introduction Plugins allow to extend the ZYpp package manager without the need to change code. Plugins are designed as external programs so that they can be written in any language. \section plugin-protocols Plugin protocols Depending on the complexity and need for future extension, plugins talk to ZYpp using two methods. \subsection plugin-protocol-stateless Stateless This type of plugin receive input reading the standard input, and answer ZYpp writing to the standard output. This means the plugin is executed once per hook and they are stateless (unless the plugin keeps the state out of process). \subsection plugin-protocol-stateful Stateful This type of plugin is called by ZYpp and a conversation using a simple protocol. The protocol is based on STOMP http://stomp.github.com (Streaming Text Orientated Messaging Protocol). Messages (called "frames") look like the following: \verbatim COMMAND param1:val1 param2:val2 ... Thus a COMMAND followed by key:value header lines and a multiline body separated from header by an empty line and terminated by NUL. ^@ \endverbatim \note ^@ is a null (control-@ in ASCII) byte.
\section plugin-writing Writing plugins A python class is offered as a helper to handle communication between the plugin and libzypp. It is available by installing \c zypp-plugin-python. \verbatim zypper in -C zypp-plugin-python \endverbatim The plugin must define a method for each message it may receive from \ref libzypp. Message header list and body are passed to the method as arguments. \verbatim #!/usr/bin/env python # # zypp plugin # import os import sys from zypp_plugin import Plugin class MyPlugin(Plugin): def SAMPLE( self, headers, body ): # called upon revieving a SAMPLE message ... if ( ok ): self.ack() else: self.error( { "aheader":"header value" }, "body\n(multiline text ok)" ) plugin = MyPlugin() plugin.main() \endverbatim Two methods \c ack and \c error are available to send back a standard \c ACK or \c ERROR message. You may optionally pass header entries and a multiline body. For sending custom messages use \c answer, which takes the command name as 1st argument, followed by optional header entries and a multiline body. Plugin closes \c stdin and exits when receiving a \c _DISCONNECT message. Upon an \c ACK response to \c _DISCONNECT libzypp will not attempt to kill the script. An exit value different than \c 0 may be set via an \c 'exit' header in \c ACK. \verbatim def _DISCONNECT( self, headers, body ): sys.stding.close() self.ack( {'exit':'99'}, 'Famous last words.' ) \endverbatim
\section plugins-impl Developers: Implementation Plugins are implemented in the following classes: - \ref zypp::PluginScript (Plugin as an external program) - \ref zypp::PluginScriptException - \ref zypp::PluginFrame (Message for the stateful protocol) - \ref zypp::PluginFrameException - \ref zypp::repo::PluginServices (Finds Service plugins) The plugins default location is obtained from \ref zypp::ZConfig::pluginsPath()
\section plugin-toc Supported plugins \subpage plugin-commit Escort installation of packages \subpage plugin-system Receive notification if system content has changed \ref plugin-services \ref plugin-url-resolver \ref plugin-appdata
\section plugin-services Service plugins ZYpp will find a subscribed service for each executable located in /usr/lib/zypp/plugins/services and will set the alias as the executable name. The type will be set to "plugin". Service plugins are used to provide a client a list of repositories from a central location where more complex logic is needed than a simple remote xml index accessible via http (in that case you can use \ref services-remote "Remote Services"). \subsection plugin-services-example1 Example: Management console You have a custom mass management application that controls the repositories each client muss have. While you can use \ref services-remote "Remote Services" and subscribe each client to an url in the server providing a dynamic repoindex.xml based on the client, if you need to pass custom information in order for the server to calculate the repository list (e.g. number of CPUs) or the protocol that the client and the server and client speak is proprietary, you may implement the service locally, as an executable that will be installed in each client /usr/lib/zypp/plugins/services directory (it may be installed from a package). \subsection plugin-services-how How to write a Services plugin When listing services, ZYpp will find each plugin service as a subscribed service. Service plugins are Stateless. When services are refreshed, ZYpp will call each plugin and the repository list will be taken from the output of the script in INI format (same as how they are stored in /etc/zypp/repos.d). For our example: \verbatim # example plugin output # comments are ignored [repo1] name=Base repository summary=Standard repository baseurl=http://server.com/repo1 type=rpm-md # multiple repositories can be present in the output [repo2] ... \endverbatim The repositories will be added on service refresh with the alias present in the output, prefixed by the service alias (in this case, the executable name).
\section plugin-url-resolver Url Resolver plugins Url resolver plugins convert urls of scheme "plugin" into the output of the plugin named $name using the protocol. Thanks to the protocol, each header returned is also added as HTTP headers. The current protocol sequence is: ZYpp sees a repository whose url has the format: \verbatim plugin:foo?param1=val1¶m2=val2 \endverbatim ZYpp tries to execute a plugin named foo (in /usr/lib/zypp/plugins/urlresolver) and call it with the following protocol: \verbatim RESOLVEURL param1:val1 param2:val2 ... ^@ \endverbatim The plugin answers: \verbatim RESOLVEDURL: header1:val1 header2:val2 ... http://realurl.com?opts=vals ^@ \endverbatim And this url is used instead. \subsection plugin-urlresolver-example Example You have a repository with url: plugin:lan The script looks which distribution you have installed, and via SLP finds the right repositories in the lan and selects the update one and returns it url. But in addition, it adds a header with the update status that can be collected on the server side. This type of plugin can be combined with service plugins, because a local service could return a list of repos like this: \verbatim [distro] name=Distribution repository baseurl=plugin:lan?repo=distro [update] name=Update repository baseurl=plugin:lan?repo=update \endverbatim \note In this example, the service plugin could have inmediately resolved the urls and returned http://realurl, but the url resolver allows also to add HTTP headers to the request.
\section plugin-appdata Appdata refresh plugins (repo change) Stateless plugins found in /usr/lib/zypp/plugins/appdata are called whenever any of the system repos has changed (added/removed/renamed/modified) or has been refreshed. Detailed information \b what exactly has changed is not available. (scripts are executed IFF euid is '0' and --root is not used). For every enabled system repo we pass alias type and metadata path on the commandline like this: \verbatim -R REPO_ALIAS -t REPO_TYPE -p REPO_METADATA_PATH -R NEXT_REPO.... \endverbatim \note REPO_TYPE can be e.g. "rpm-md", "yast2", "plaindir" or "NONE" indicating the repo was not yet probed. \note REPO_METADATA_PATH can be empty or a not existing directory, indicating valid metadata for the repo are not yet available. Scripts are executed 'fire and forget' whenever a RepoManager instance that performed changes goes out of scope. So it's up to the script to protect against concurrency. */ libzypp-17.7.0/doc/autoinclude/README000066400000000000000000000025351334444677500172660ustar00rootroot00000000000000All .doc files here will be parsed and included in the autodocs generated by doxygen (see http://www.doxygen.org/). All the other files here (mostly below notes) are available to be vervatim included in some documentation block using: /** \include somefile */ or /** \example */ The .doc files here will mostly provide: - The content of the main index page (defined in Mainpage.doc). - Other related documentation pages: /*! \page page1 A documentation page Leading text. \section sec An example section This page contains the subsections \ref subsection1 and \ref subsection2. For more info see page \ref page2. \subsection subsection1 The first subsection Text. \subsection subsection2 The second subsection More text. */ /*! \page page2 Another page Even more info. */ Those pages will per default appear in the documentations 'Related Pages' section, unless you refer to them from within soome other page by using '\subpage': /** \mainpage A simple manual Some general info. This manual is divided in the following sections: - \subpage intro - \subpage advanced "Advanced usage" */ - Documentation for a group of classes defined by \ingroup: /*! \defgroup g_Resolvable Resolvable Objects Some explanation. */ - And whatever else we don't want to keep in the header files. libzypp-17.7.0/doc/autoinclude/RepoVariables.doc000066400000000000000000000045031334444677500216300ustar00rootroot00000000000000/** \page zypp-repovars Repository Variables \author Michael Andres \section zypp-repovars-intro Repository Variables Within a \c .repo or \c .serivce file, the name and URLs are subject to variable substitution. Variables are e.g. usefull for related repositories like packman (http://ftp.gwdg.de/pub/linux/packman/suse/$releasever), which shall always fit the installed distribution, even after a distribution upgrade. To help performing a distribution upgrade, the value of \c $releasever can be overwritten in zypper using the \c --releasever global option. This way you can easily switch all repositories using \c $releasever to the new version (provided the server layouts did not change and new repos are already available). The variable expander also supports shell like definition of default and alternate values. \see \ref zypp::repo::RepoVarExpand Variable expander \subsection zypp-repoars-builtin Builtin repository variables \li \c $arch - The system's CPU architecture. \li \c $basearch - The base architecture of the system. For example, iX86 machines have a base architecture of \c i386, while AMD64 and Intel64 have \c x86_64. \li \c $releasever - The version of your openSUSE or SUSE Linux. The value is obtained from the /product/version XML-node in /etc/products.d/baseproduct. \li \c $releasever_minor \li \c $releasever_major - \c $releasever_major will be set to the leading portion up to (but not including) the 1st dot; \c $releasever_minor to the trailing portion after the 1st dot. If there's no dot in \c $releasever, \c $releasever_major is the same as \c $releasever and \c $releasever_minor is empty. \subsection zypp-repoars-userdefined User defined repository variables [requires 'libzypp(repovarexpand) >= 1'] A custom repository variable is defined by creating a file in \c /etc/zypp/vars.d. The variable name equals the file name. The files first line (up to but not including the newline character) defines the variables value. Valid variable(file) names consist of alphanumeric chars and '_' only. Variable substitution within an URIs authority [requires 'libzypp(repovarexpand) >= 1.1'] is limited to \c host and \c port. Bash style definition of default and alternate values is not supported. No variables can be used in an URIs \c scheme, \c user and \c password. */ libzypp-17.7.0/doc/autoinclude/Services.doc000066400000000000000000000160771334444677500206660ustar00rootroot00000000000000/** \page zypp-services Services \author Duncan Mac-Vicar P. Services provide a list of repositories. So when the service is refreshed, the repositories specified by the service service is synced with the local repository list. \section service-types Classes of services There are two classes of services: \subsection services-remote Remote Services Remote services are a subscription to a remote server, that provide a list of repositories that will be synced with the previous list of repositories for the same service. By default, the remote services list is stored in the \ref /etc/zypp/services.d directory in standard INI files. Each file can contain more than one service. The format is the following: \verbatim [servicealias] name=My Service url=http://customers.maintenance.company.com/service enabled=true autorefresh=true type=nu \endverbatim The type "nu" stands for Novell Update, which gives a customer the repositories it is entitled to access. The type "ris" is an extended version of the "nu" type. Additionally, the file could contain "repostoenable" and "repostodisable" entries, which contain a list of repository aliases to enable or disable on the next refresh. This line is modified by other programs to force enabling or disabling a certain repository. From the remote side, the service url needs to provide a repoindex.xml file with the repository list: \verbatim ... \endverbatim \subsection services-plugin Plugin Services \ref plugin-services "Plugin services" are simple scripts that return a list of repositories. They are installed locally in the system using packages. For each script installed ZYpp will “see†a service of type “pluginâ€. When you refresh the service, the repositories this script returns as output will be added (or removed and kept in sync if they change afterwards). A plugin service is a program installed in /usr/lib/zypp/plugins/services. Once a program called "foobar" is installed, listing services will show it: \verbatim > zypper ls # | Alias | Name | Enabled | Refresh | Type ---+------------------+--------------+---------+---------+------- 1 | foobar | foobar | Yes | Yes | plugin ... ... \endverbatim When this service is refreshed, the program will be executed and it will return the list of repositories in the same .repo files format that can be found in /etc/zypp/repos.d: \verbatim # output returned by the plugin [repo-oss] name=oss enabled=1 autorefresh=0 baseurl=http://download.opensuse.org//distribution/11.4/repo/oss type=yast2 keeppackages=0 ... \endverbatim As you can see, the main advantage of plugin services is that they can read information from the client and calculate the repository list from there. Nothing prevents a plugin service to still interact with a server to get the repository list. The main disadvantage is that you have logic in the client side that in case of bugs or changes, needs to be updated. Spacewalk integration is implemented using plugin services. The plugin talks XML-RPC to the server and asks for the list of channels the system is subscribed to. The plugin needs to read the server address and perform the login. However, the spacewalk plugin service does have an extra indirection, as the repository list returned are not plain urls, but urls of the type plugin:$name?params, which use the urlresolver plugin to get the real url. This is not necessary, and here it is done because it allows to add custom headers to the HTTP requests. You can read more about urlresolver plugins \ref plugin-url-resolver here. \section service-refresh Refreshing services Using zypper, you can refresh services by executing \verbatim zypper refs \endverbatim The repositories that are listed in the service will be added, using the reposotiy alias specified in the service index prefixed by the service alias: e.g. "myservice:myrepository". Repositories that vanished from the service will be automatically removed. \section service-examples Example usecases \subsection services-usecase-1 Usecase #1: The project with multiple repositories and layers Imagine the following usecase (with this one I am using some real request from our KDE guys) The build service provides a KDE4 repository. Which in turn requires the Qt4 repository, because is built on openSUSE 11.0 + the new Qt4 repo. When looking at this problem, repository dependencies is what comes to head in the first place. But forget about them. If package dependencies are complicated right now, imagine adding a secondary (and duplicated) layer of information. Packages already know their dependencies. Now imagine our KDE guys can provide an URL, which you add to zypper. And this url returns a dynamic list of repositories. And zypper adds and remove repositories based on the information returned by this url on every refresh. \subsection services-usecase-2 Usecase #2: Update repositories based on the customer This is actually where services where originated. Services were present in Novell ZenWorks. How it works? The service url nu.novell.com is added to the system. But in this url also a customer id is present as a http username. When you registered, Novell knows the subscription and products this system is linked to and what entitlements the customer has. The service can then return a dynamic list of repositories based on the customer preferences, products and entitlements. The customer does not need to keep them manually in sync. Now that we don’t have Zenworks in the base system, we still want this cool functionality for our customers, therefore ZYpp now implements services natively. Technically, this even allows us to offer hotfixes to L3 supported customers on the fly: the system is marked on the server side as being hotfixed, and an extra temporary repository with the PTF (Problem Temporary Fix) packages is added to this system list of repositories. \subsection services-usecase-3 Usecase #3: Dynamic repository collections You are a build service user, and you have an account, and of course you have a list of watched projects you are interested to. What if you could keep your system repositores in sync with your watched project list. Or what if the build service could offer a service based on keywords or other data: like http://build.opensuse.org/services/mostpopular/repo/repoindex.xml would contain dynamically the 15 most popular repositories. You add that service, and then ZYpp does the work for you of adding new popular repositories, and remove the old ones. \section service-impl Developers: Implementation Services are implemented in the following classes: - \ref zypp::repo::ServiceType (Service types enumeration) - \ref zypp::parser::ServiceFileReader (.service file parser) - \ref zypp::ServiceInfo Information about a service (.service file data) - \ref zypp::repo::PluginServices (Services as plugins) - \ref zypp::parser::RepoindexFileReader (NU and RIS remote service index XML parser) - \ref zypp::repo::ServiceRepos (Repositories in a service) */libzypp-17.7.0/doc/autoinclude/SolverVendorChange.doc000066400000000000000000000057171334444677500226400ustar00rootroot00000000000000/** \page pg_zypp-solv-vendorchange Solver - Vendor protection \author Michael Andres \section zypp-solv-vendorchange Vendor protection rule Tracing a packages origin \c libzypp uses the packages \c vendor string. The \c vendor string is part of the rpm header and thus defined at the time the package was built. It stays the same, no matter which repository was used to ship the package. Using \c rpm is one way to retrieve a packages \c vendor string: \code $ rpm -q --qf '%{name} \tvendor: %{vendor}\n' libzypp nautilus libdvdread3 libzypp vendor: openSUSE nautilus vendor: obs://build.opensuse.org/GNOME libdvdread3 vendor: http://packman.links2linux.de \endcode Also several \c zypper commands will display a packages \c vendor: \code $ zypper info libzypp Information for package libzypp: Repository: openSUSE-11.4-Update Name: libzypp Version: 8.12.6-0.2.1 Arch: x86_64 Vendor: openSUSE <=== Installed: Yes Status: up-to-date Installed Size: 7.0 MiB Summary: Package, Patch, Pattern, and Product Management Description: Package, Patch, Pattern, and Product Management \endcode \subsection zypp-solv-vendorchange-rule The vendor protection rule is quite simple: \note When looking for an installed packages \e update \e candidate, we are looking for a package originated by the \e same \e vendor (not repository!) as the \e installed one. \section zypp-solv-vendorchange-tune Vendor protection tuning The \e brute \e force method is to turn off all vendor protection in \c /etc/zypp/zypp.conf: \code ## ## EXPERTS ONLY: Per default the solver will not replace packages of ## different vendors, unless you explicitly ask to do so. Setting this ## option to TRUE will disable this vendor check (unless the application ## explicitly re-enables it). Packages will then be considered based on ## repository priority and version only. This may easily damage your system. ## ## CHANGING THE DEFAULT IS NOT RECOMMENDED. ## ## Valid values: boolean ## Default value: false ## solver.allowVendorChange = true \endcode \subsection zypp-solv-vendorchange-equiv Groups of equivalent vendor strings A built in example for this is the \c vendor string \c SuSE. All vendor strings starting (case insensitive) with \c "suse", are considered to be the \e same \e vendor and their packages may replace each other without asking. You may define your own classes of equivalent \c vendor strings by creating an entry in the \c /etc/zypp/vendors.d directory. For each group of \c vendor strings create a file, name it as you like, with the following content: \code [main] ## A comma separated list of equivalent vendor string (prefixes!) ## Example: ## vendors = suse,opensuse vendors = \endcode \note A built in rule unifying \c "suse" and \c "opensuse" was disabled in libzypp-16.7.1. The above example would recreate it. \section zypp-solv-vendorchange-Impl Related classes \li \ref zypp::VendorAttr (vendor string equivalence and \c vendors.d parser) */ libzypp-17.7.0/doc/autoinclude/Testcases.doc000066400000000000000000000070421334444677500210310ustar00rootroot00000000000000/** \page Testcases Writing and tunning testcases \section Introduction Introduction ZYpp has a suite of tests located in under test/ directory of the source tree. Right now, tests are grouped into - media : tests related to downloading and the http/ftp/nfs/iso abstraction layer - parser : tests related to classes that offer file format parsing - repo : tests related to repository handling - sat : tests related to the sat-solver integration - zypp : tests related to the main libzypp classes and APIs Tests are written using boost test library. - Boost Test Library - The Unit Test Framework - The UTF testing tools reference \section Anatomy Anatomy of a ZYpp testcase The file should be in one of the described groups, and by general rule it is named ClassName_test.cc where ClassName is the name of the class or module the test covers. Data and fixtures are stored in data/ directories in each test group. However groups may use and reference data from other test groups. The macro \ref TESTS_SRC_DIR is defined as the tests/ directory located in libzypp source directory. You can build the paths to the data/fixtures using that macro. A simple testcase: \code #include "zypp/Date.h" #include BOOST_AUTO_TEST_CASE(date_test) { std::string format = "%Y-%m-%d %H:%M:%S"; std::string date = "2009-02-14 00:31:30"; BOOST_CHECK_EQUAL(zypp::Date(date,format).form(format), date); } \endcode \section Building Building and running the testsuite - Build the testsuite \verbatim $ cd build $ cmake -DCMAKE_INSTALL_PREFIX=/prefix .. $ cd tests $ make \endverbatim - Run a simple test \verbatim $ zypp/Date_test Running 1 test case... *** No errors detected \endverbatim - Run all tests \verbatim $ ctest . \endverbatim \section \verbatim - added tests/data/openSUSE-11.1 containing raw susetags metadata. Keeping .solv files in svn is somewhat inconvenient, as you must rebuild them if something in libsolv changes. \endverbatim \verbatim - added tests/include as location for includes that might be used in multiple testcases. \endverbatim \verbatim - added tests/include/TestSetup.h to ease building a test environment below some tempdir. Currently supports easy setup of Target, RepoManager and loading data (raw metadata and .solv files) into the pool. That's how it currently looks like: #include "TestSetup.h" BOOST_AUTO_TEST_CASE(WhatProvides) { TestSetup test( Arch_x86_64 ); // use x86_64 as system arch test.loadTarget(); // initialize and load target test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" ); This is all you need to setup Target, RepoManager below some temp directory and load the raw metadata into the pool. In case you want to setup the system below some fix directory, use: TestSetup test( "/tmp/mydir", Arch_x86_64 ); You directory is used as it is and not removed at the end. \endverbatim \verbatim - Added support for loading helix files e.g. from testcases. This is what you need to load all repos from a solver testcase into the pool: #include "TestSetup.h" BOOST_AUTO_TEST_CASE(test) { TestSetup test( Arch_x86_64 ); test.loadTestcaseRepos( "/suse/ma/BUGS/153548/YaST2/solverTestcase" ); \endverbatim \section References */ libzypp-17.7.0/doc/autoinclude/Threads.doc000066400000000000000000000013721334444677500204650ustar00rootroot00000000000000/** \page thread Libzypp and threads \author Michael Andres \section thread_intro Libzypp and threads Libzypp is \b not thread safe. Before we can think about using threads in libzypp, or even libzypp in threads, a bunch of components have to be fixed. \li \c Logging as one one of the core components has to become threadsafe. \li \c SmartPointer as one of the core patterns implementing resource control need to become threadsafe \li \c ...more \subsection thread_loggin Logging in threads \see http://accu.org/index.php/journals/1539, http://www.pantheios.org/ Need to estimate performance impact when making the current zypp::log implementation threadsafe. Current implementation is based on STL streams with a custom linebuffer. */libzypp-17.7.0/doc/autoinclude/UserData.doc000066400000000000000000000017671334444677500206130ustar00rootroot00000000000000/** \page zypp-userdata User data as transaction id \author Michael Andres
\section userdata-introduction Introduction It is possible to store a user defined data string via \ref zypp::ZConfig::setUserData inside libzypp for use as a transaction id. \c Zypper e.g. supports this via its global '--userdata ' option. \li Setting a new user data string, a line will be written to the log file. So you can \c grep for it, or for '(setUserData)' to find all locations where user data strings were set. \li The user data string will also be passed to commit plugins, so they can make use of it. The btrfs e.g would be able to tag created snapshots with this string. \see \ref plugin-commit \li The user data string will appear on each histoy line logging package or repository related events (install, delete, add, modify). \see \ref zypp::HistoryLog and zypp::parser::HistoryLogReader */ libzypp-17.7.0/doc/autoinclude/g_BOOST.doc000066400000000000000000000003701334444677500202640ustar00rootroot00000000000000/** \namespace boost \ref BOOST */ /** \defgroup BOOST Boost libraries. Boost provides free peer-reviewed portable C++ source libraries. Several \c ::boost names were dragged or typedefed into namespace \c ::zypp. \see http://www.boost.org/ */ libzypp-17.7.0/doc/autoinclude/g_LIBSOLV.doc000066400000000000000000000001741334444677500205120ustar00rootroot00000000000000/** \namespace zypp::sat \ref LIBSOLV */ /** \defgroup LIBSOLV Libsolv interface Interface to sat-pool and sat-solver. */ libzypp-17.7.0/doc/autoinclude/g_ZyppHistory.doc000066400000000000000000000054741334444677500217340ustar00rootroot00000000000000/** \defgroup g_ZyppHistory Libzypp History File Log important events like installation/deletion of packages and repositories. \section g_ZyppHistory_Location Location The default location is \c /var/log/zypp/history. This can be changed via \c history.logfile key in \c /etc/zypp/zypp.conf. \section g_ZyppHistory_Format Format \li CSV file with pipe character (|) as the value separator \li one event per line \li different actions have different set of values (columns), see the tables below \li lines starting with # are treated as comments \see \ref zypp-userdata \subsection g_ZyppHistory_Format_Colummn Action Columns \subsubsection g_ZyppHistory_Format_Colummn_Install Install A package has been installed. \li \b 1 timestamp \li \b 2 action ID (\c "install") \li \b 3 package name \li \b 4 package epoch:version-release \li \b 5 package architecture \li \b 6 requested by (user@hostname, pid:appname, or empty (solver)) \li \b 7 repository alias \li \b 8 package checksum \li \b 9 userdata/transactionId \subsubsection g_ZyppHistory_Format_Colummn_Remove Remove A package has been removed. \li \b 1 timestamp \li \b 2 action ID (\c "remove") \li \b 3 package name \li \b 4 package epoch:version-release \li \b 5 package architecture \li \b 6 requested by (user@hostname, pid:appname, or empty (solver)) \li \b 7 userdata/transactionId \subsubsection g_ZyppHistory_Format_Colummn_Radd Radd A repository has been added. \li \b 1 timestamp \li \b 2 action ID (\c "radd") \li \b 3 repository alias \li \b 4 primary URL \li \b 5 userdata/transactionId \subsubsection g_ZyppHistory_Format_Colummn_Rremove Rremove A repository has been removed. \li \b 1 timestamp \li \b 2 action ID (\c "rremove") \li \b 3 repository alias \li \b 4 userdata/transactionId \subsubsection g_ZyppHistory_Format_Colummn_Ralias Ralias A repository alias has changed. \li \b 1 timestamp \li \b 2 action ID (\c "ralias") \li \b 3 old alias \li \b 4 new alias \li \b 5 userdata/transactionId \subsubsection g_ZyppHistory_Format_Colummn_Rurl Rurl The primary URL of a repository has changed. \li \b 1 timestamp \li \b 2 action ID (\c "rurl") \li \b 3 repository alias \li \b 4 new URL \li \b 5 userdata/transactionId \section g_ZyppHistory_Example Example \code 2008-09-24 11:48:58|rremove|packman 2008-09-24 11:50:02|radd |packman|http://packman.iu-bremen.de/suse/11.0 2008-09-24 11:53:10|install|amarok-yauap|1.4.10-25|x86_64||factory|4421dfa718ab73c805c1c695c97b1b67f39bf2f3 2008-09-24 11:53:25|install|amarok-lang|1.4.10-25|x86_64||factory|691030edafcc4fbc22aa225350f9de32974e4bc2 # Additional rpm output: # warning: /var/cache/zypp/packages/packman/x86_64/amarok-1.4.10-100.pm.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 9a795806 # 2008-09-24 11:53:45|install|amarok|1.4.10-100.pm.1|x86_64|root@kompost|packman|ee0fffa1e4eeaaeb8799bd05c6882ef74100d681 \endcode */ libzypp-17.7.0/doc/autoinclude/groups.doc000066400000000000000000000025241334444677500204120ustar00rootroot00000000000000//////////////////////////////////////////////////////////////////////////////// // Short or empty group definitions. Move them to a sepearate .doc file if // more text is provided. //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_EnumerationClass Enumeration Class */ //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_RAII RAII solutions \see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization */ //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_CRTP CRTP solutions \see http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern */ //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_BackenSpecific Backend Specific */ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_Functor Filters and Functors */ //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_Algorithm Algorithms */ //////////////////////////////////////////////////////////////////////////////// /*! \defgroup g_Parser Parser */ //////////////////////////////////////////////////////////////////////////////// libzypp-17.7.0/doc/autoinclude/notes/000077500000000000000000000000001334444677500175315ustar00rootroot00000000000000libzypp-17.7.0/doc/autoinclude/notes/n_ResPool_nomorenameiter000066400000000000000000000033651334444677500244670ustar00rootroot00000000000000 I tagged the byName iterator as deprecated, so the compiler tells you where it is used. Please review the code and check whether byIdent is an appropriate replacement. -- The 'old' zypp pool internally maintained a byName index, so it was a fast way to iterate the pool by name and filter by kind to visit e.g. all packages named foo: invokeOnEach( pool.byNameBegin( name ), pool.byNameEnd( name ), resfilter::ByKind( kind ), action() ); for_( it, pool.byNameBegin( name ), pool.byNameEnd( name ) ) { if ( (*it)->kind() == kind ) { ... } } This is no longer true. In contrary, byName now is a 'quite expensive' iteration. It's faster to rewrite these loops using byIdent (and no filter): invokeOnEach( pool.byIdentBegin( kind, name ), pool.byIdentEnd( kind, name ), action() ); for_( it, pool.byIdentBegin( kind, name ), pool.byNameEnd( kind, name ) ) { ... } How to construct the byIdent iterator: ResPool::byIdentBegin( poolItem ) // using this poolItems kind and name ResPool::byIdentBegin( kind, name ) // explicit kind and name ResPool::byIdentBegin( name ) // or templated kind -- If you prefer using iterator in a for' loop, but dislike to figure out the exact type of the iterator, you may find the 'for_' macro convenient: #include "zypp/base/Easy.h" for_( it, pool.byIdentBegin( kind, name ), pool.byIdentEnd( kind, name ) ) { PoolItem copy = *it; } instead of: for ( ResPool::byIdent_iterator it = pool.byIdentBegin( kind, name ), end = pool.byIdentEnd( kind, name ); it != end, ++it ) { PoolItem copy = *it; } libzypp-17.7.0/doc/locks.5.txt000066400000000000000000000101201334444677500160760ustar00rootroot00000000000000LOCKS(5) ======== :man manual: LIBZYPP :man source: SUSE Linux NAME ---- locks - libzypp locking file DESCRIPTION ----------- The file '/etc/zypp/locks' is read by libzypp at start-up if 'zypp.conf' allows it. The entries are used for initial locking of packages. Locking a package means not allowing to install or uninstall it. Valid entries are of the form: 'attribute'*:* 'value':: Where attributes and their values are described below. Locks are separated by an empty lines. ATTRIBUTES ---------- All attributes are lower-case. *repo*:: specifies repository restriction. Only alias is accepted. + By default all repositories match. *type*:: resolvable type restriction. The values can be *package*, *patch*, *pattern*, *product* and *srcpackage*. + By default all types match. *case_sensitive*:: if strings are matched case sensitive. The values are *true*, *false*, *on*, *off*. + The default is case insensitive. *install_status*:: status of object. Possible states are *installed*, *not-installed* and *all*. If more install statuses are specified then the last one is used. The values are *installed* for all packages which are installed, *non-installed* for packages which can be installed or reinstalled and *all* for both. + The default is *all*. *match_type*:: type of string matching in values. Does not affect *type* and *repo* which must be specified exactly. The values are *exact*, *substring*, *regex* for regular expressions, *glob* for matching as on the command line, and *word*. + The default is *substring*. *query_string*:: String to be matched in multiple attributes. Should be restricted by another attribute with empty value (it is recommended, because without restriction expect some performance problems). *version*:: Restrict the lock only to some versions. It contains two parts: an optional operator and the version. + The operator is *==*, *!=*, *<*, *>*, *<=*, *>=*. If operator is not specified then *==* is used. + The version has the format ['epoch'*:*+]+'version'[*-*'release']. + Example: *version: < 0:0.11.4-2* *solvable_name*:: name of object (e.g. zypper) *solvable_summary*:: summary of object *solvable_arch*:: architecture of object (e.g. x86_64, i586) *solvable_description*:: description of object *solvable_eula*:: license text of objects which request accepting license by user *solvable_license*:: license of package (only for package) (e.g. GPL2) *solvable_keywords*:: keywords which specify package (only for package) *solvable_authors*:: authors of package (only for package) *solvable_group*:: package group (only for package) (e.g. Development/Tools/Version Control ) *update_reference_type*:: reference for update (e.g. bugzilla,cve) (only for patches) EXAMPLES -------- *Exact Package*:: This is the way YaST UI does it. Lock k3b (e.g. you don't want to update it). -------------------- -----locks----- type: package solvable_name: k3b match_type: exact case_sensitive: on -------------------- *Package Wildcard*:: This is the way "zypper addlock cross-*-gcc-icecream-backend" does it. -------------------- -----locks----- type: package solvable_name: cross-*-gcc-icecream-backend match_type: glob case_sensitive: on -------------------- *Versioned Lock*:: Do not install new GCC. This format is used when converting from the openSUSE-10.3 lock format. -------------------- -----locks----- solvable_name: gcc match_type: glob version: > 4.2 -------------------- *Anything named KDE*:: Locks everything which contains kde in the name. -------------------- -----locks----- solvable_name: kde -------------------- *Anything mentioning KDE*:: Locks everything which contains kde in the name, summary, or description. -------------------- -----locks----- query_string: kde solvable_name: solvable_summary: solvable_description: -------------------- HOMEPAGE -------- This manual page only covers the most important attributes. The complete list is available at http://en.opensuse.org/Libzypp/Locksfile AUTHORS ------- Josef Reidinger Manual page contributions by Martin Vidner . SEE ALSO -------- zypper(8) libzypp-17.7.0/doc/zypp-CheckAccessDeleted.1.txt000066400000000000000000000015541334444677500214200ustar00rootroot00000000000000ZYPP-CHECKACCESSDELETED(1) ========================== :man manual: LIBZYPP :man source: SUSE Linux NAME ---- zypp-CheckAccessDeleted - List processes which access deleted files SYNOPSIS -------- *zypp-CheckAccessDeleted* [_OPTION_]... DESCRIPTION ----------- List running processes which access deleted files. This may help to identify services and processes which need to be restarted after an update, e.g. if they still refer to meanwhile deleted libraries. The output is similar to `*zypper ps*' but does not sort out processes accessing normal files only. OPTIONS ------- *--help*:: display help and exit *--zypper*:: use less verbose zypper mode to list processes *--debugFile* 'filename':: Reads process and opened files information from a file that was created by zypper previously AUTHORS ------- Michael Andres SEE ALSO -------- zypper(8) libzypp-17.7.0/doc/zypp-NameReqPrv.1.txt000066400000000000000000000047011334444677500200070ustar00rootroot00000000000000ZYPP-NAMEREQPRV(1) ================== :man manual: LIBZYPP :man source: SUSE Linux NAME ---- zypp-NameReqPrv - Investigate packages and dependencies in solver test-cases SYNOPSIS -------- *zypp-NameReqPrv* [*--root* 'DIR'] [['OPTIONS'] 'NAME'...]... DESCRIPTION ----------- Load all enabled repositories (without refresh) and search for occurrences of regular expression 'NAME' in package names or dependencies. In case 'DIR' denotes a directory containing a solver test-case, repositories and settings provided by the test-case are loaded instead. A solver test-case is an abstract of repositories, packages, hardware and dependency resolution related settings which can be created by using zyppers *--debug-solver* option. Attached to a bug report the test-case helps investigating the reported behavior. Options and output of this command are tailored to this use-case and may change as needed. Reported matches show the packages 'internal id', 'name', 'version' and 'architecture', 'priority' and name of the providing 'repository', 'vendor', 'buildtime' and the locations matching 'NAME'. -------------------- 2431 zypper-1.9.16-22.2.x86_64 (99)@System openSUSE 1400499579 nam: zypper 40947 zypper-1.9.3-1.1.x86_64 (99)repo-oss (13.1) openSUSE 1383049437 nam: zypper 56140 zypper-1.9.16-22.2.x86_64 (99)repo-oss-update (13.1) openSUSE 1400499579 nam: zypper -------------------- OPTIONS ------- *--root* 'DIR':: Load repos from the system located below 'DIR'. If 'DIR' denotes a solver test-case, the test-case is loaded. *--installed*:: Process installed packages only. *-i*/*-I*:: Turn on/off case insensitive search (default on) *-n*/*-N*:: Turn on/off looking for names (default on) *-p*/*-P*:: Turn on/off looking for provides (default off) *-r*/*-R*:: Turn on/off looking for requires (default off) *-c*/*-C*:: Turn on/off looking for conflicts (default off) *-o*/*-O*:: Turn on/off looking for obsoletes (default off) *-m*/*-M*:: Turn on/off looking for recommends (default off) *-s*/*-S*:: Turn on/off looking for supplements (default off) *-a*:: Short for *-n -p -r* *-A*:: Short for *-n -P -R* *-D* 'PKG':: Dump dependencies of package 'PKG' (exact name). AUTHORS ------- Michael Andres SEE ALSO -------- zypper(8) libzypp-17.7.0/libzypp.pc.cmake000066400000000000000000000005161334444677500164160ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@LIB_INSTALL_DIR@/zypp libdir=@LIB_INSTALL_DIR@ includedir=@INCLUDE_INSTALL_DIR@ Name: @PACKAGE@ Version: @VERSION@ Description: Package, Patch, Pattern, and Product Management Libs: -L${libdir} -lzypp Cflags: -I${includedir} -D_FILE_OFFSET_BITS=64 @ZYPP_CFLAGS@ features=@ZYPP_FEATURES@ libzypp-17.7.0/libzypp.spec.cmake000066400000000000000000000234511334444677500167510ustar00rootroot00000000000000# # spec file for package libzypp # # Copyright (c) 2005-2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: @PACKAGE@ Version: @VERSION@ Release: 0 License: GPL-2.0+ Url: https://github.com/openSUSE/libzypp Summary: Package, Patch, Pattern, and Product Management Group: System/Packages BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: %{name}-%{version}.tar.bz2 Source1: %{name}-rpmlintrc Provides: yast2-packagemanager Obsoletes: yast2-packagemanager # Features we provide (update doc/autoinclude/FeatureTest.doc): Provides: libzypp(plugin) = 0.1 Provides: libzypp(plugin:appdata) = 0 Provides: libzypp(plugin:commit) = 1 Provides: libzypp(plugin:services) = 1 Provides: libzypp(plugin:system) = 1 Provides: libzypp(plugin:urlresolver) = 0 Provides: libzypp(repovarexpand) = 1.1 %if 0%{?suse_version} Recommends: logrotate # lsof is used for 'zypper ps': Recommends: lsof %endif BuildRequires: cmake BuildRequires: openssl-devel %if 0%{?suse_version} >= 1130 || 0%{?fedora_version} >= 16 BuildRequires: pkgconfig(libudev) %else BuildRequires: hal-devel %endif %if 0%{?suse_version} >= 1330 BuildRequires: libboost_headers-devel BuildRequires: libboost_program_options-devel BuildRequires: libboost_test-devel BuildRequires: libboost_thread-devel %else BuildRequires: boost-devel %endif BuildRequires: dejagnu BuildRequires: doxygen BuildRequires: gcc-c++ >= 4.6 BuildRequires: gettext-devel BuildRequires: graphviz BuildRequires: libxml2-devel %if 0%{?suse_version} != 1110 # No libproxy on SLES BuildRequires: libproxy-devel %endif %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} BuildRequires: pkgconfig %else BuildRequires: pkg-config %endif BuildRequires: libsolv-devel >= 0.6.35 %if 0%{?suse_version} >= 1100 BuildRequires: libsolv-tools %requires_eq libsolv-tools %else Requires: libsolv-tools %endif # required for testsuite, webrick BuildRequires: ruby Requires: rpm %if 0%{?suse_version} BuildRequires: rpm-devel > 4.4 %endif %if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600 BuildRequires: glib2-devel BuildRequires: popt-devel BuildRequires: rpm-devel > 4.4 %endif %if 0%{?mandriva_version} BuildRequires: glib2-devel BuildRequires: librpm-devel > 4.4 %endif %if 0%{?suse_version} BuildRequires: libgpgme-devel %else BuildRequires: gpgme-devel %endif %define min_curl_version 7.19.4 %if 0%{?suse_version} %if 0%{?suse_version} >= 1100 # Code11+ BuildRequires: libcurl-devel >= %{min_curl_version} Requires: libcurl4 >= %{min_curl_version} %else # Code10 BuildRequires: curl-devel %endif %else # Other distros (Fedora) BuildRequires: libcurl-devel >= %{min_curl_version} Requires: libcurl >= %{min_curl_version} %endif # required for documentation %if 0%{?suse_version} >= 1330 BuildRequires: rubygem(asciidoctor) %else BuildRequires: asciidoc BuildRequires: libxslt-tools %endif %description Package, Patch, Pattern, and Product Management %package devel Summary: Package, Patch, Pattern, and Product Management - developers files Group: Development/Libraries/C and C++ Provides: yast2-packagemanager-devel Obsoletes: yast2-packagemanager-devel %if 0%{?suse_version} >= 1330 Requires: libboost_headers-devel Requires: libboost_program_options-devel Requires: libboost_test-devel Requires: libboost_thread-devel %else Requires: boost-devel %endif Requires: bzip2 Requires: glibc-devel Requires: libstdc++-devel Requires: libxml2-devel Requires: libzypp = %{version} Requires: openssl-devel Requires: popt-devel Requires: rpm-devel > 4.4 Requires: zlib-devel %if 0%{?suse_version} >= 1130 || 0%{?fedora_version} >= 16 Requires: libudev-devel %else Requires: hal-devel %endif %if 0%{?suse_version} %if 0%{?suse_version} >= 1100 # Code11+ Requires: libcurl-devel >= %{min_curl_version} %else # Code10 Requires: curl-devel %endif %else # Other distros (Fedora) Requires: libcurl-devel >= %{min_curl_version} %endif %if 0%{?suse_version} >= 1100 %requires_ge libsolv-devel %else Requires: libsolv-devel %endif %description devel Package, Patch, Pattern, and Product Management - developers files %package devel-doc Summary: Package, Patch, Pattern, and Product Management - developers files Group: Documentation/HTML %description devel-doc Package, Patch, Pattern, and Product Management - developers files %prep %setup -q %build mkdir build cd build export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" unset EXTRA_CMAKE_OPTIONS # No libproxy on SLE11 %if 0%{?suse_version} == 1110 export EXTRA_CMAKE_OPTIONS="-DDISABLE_LIBPROXY=ON" %endif cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DDOC_INSTALL_DIR=%{_docdir} \ -DLIB=%{_lib} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH=1 \ ${EXTRA_CMAKE_OPTIONS} \ .. make %{?_smp_mflags} VERBOSE=1 make -C doc/autodoc %{?_smp_mflags} make -C po %{?_smp_mflags} translations make -C tests %{?_smp_mflags} %install rm -rf "$RPM_BUILD_ROOT" cd build make install DESTDIR=$RPM_BUILD_ROOT make -C doc/autodoc install DESTDIR=$RPM_BUILD_ROOT %if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600 ln -s %{_sysconfdir}/yum.repos.d $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d %else mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d %endif mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/services.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/systemCheck.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vars.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vendors.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/multiversion.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/credentials.d mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/appdata mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/commit mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/services mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/system mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/urlresolver mkdir -p $RPM_BUILD_ROOT%{_var}/lib/zypp mkdir -p $RPM_BUILD_ROOT%{_var}/log/zypp mkdir -p $RPM_BUILD_ROOT%{_var}/cache/zypp # Default to 'solver.dupAllowVendorChange = false' on TW and post SLE12 %if 0%{?suse_version} >= 1330 || "%{distribution}" == "openSUSE Tumbleweed" sed -i "s|# solver.dupAllowVendorChange = true|solver.dupAllowVendorChange = false|g" %{buildroot}%{_sysconfdir}/zypp/zypp.conf %endif make -C po install DESTDIR=$RPM_BUILD_ROOT # Create filelist with translations cd .. %{find_lang} zypp %check pushd build/tests LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:${LD_LIBRARY_PATH} ctest . popd %post /sbin/ldconfig if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi # convert old lock file to new # TODO make this a separate file? # TODO run the sript only when updating form pre-11.0 libzypp versions LOCKSFILE=%{_sysconfdir}/zypp/locks OLDLOCKSFILE=%{_sysconfdir}/zypp/locks.old is_old(){ # if no such file, exit with false (1 in bash) test -f ${LOCKSFILE} || return 1 TEMP_FILE=`mktemp` cat ${LOCKSFILE} | sed '/^\#.*/ d;/.*:.*/d;/^[^[a-zA-Z\*?.0-9]*$/d' > ${TEMP_FILE} if [ -s ${TEMP_FILE} ] then RES=0 else RES=1 fi rm -f ${TEMP_FILE} return ${RES} } append_new_lock(){ case "$#" in 1 ) echo " solvable_name: $1 match_type: glob " >> ${LOCKSFILE} ;; 2 ) #TODO version echo " solvable_name: $1 match_type: glob version: $2 " >> ${LOCKSFILE} ;; 3 ) #TODO version echo " solvable_name: $1 match_type: glob version: $2 $3 " >> ${LOCKSFILE} ;; esac } die() { echo $1 exit 1 } if is_old ${LOCKSFILE} then mv -f ${LOCKSFILE} ${OLDLOCKSFILE} || die "cannot backup old locks" cat ${OLDLOCKSFILE}| sed "/^\#.*/d"| while read line do append_new_lock $line done fi %postun -p /sbin/ldconfig %clean rm -rf "$RPM_BUILD_ROOT" %files -f zypp.lang %defattr(-,root,root) %if 0%{?suse_version} >= 1500 %license COPYING %endif %dir %{_sysconfdir}/zypp %if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600 %{_sysconfdir}/zypp/repos.d %else %dir %{_sysconfdir}/zypp/repos.d %endif %dir %{_sysconfdir}/zypp/services.d %dir %{_sysconfdir}/zypp/systemCheck.d %dir %{_sysconfdir}/zypp/vars.d %dir %{_sysconfdir}/zypp/vendors.d %dir %{_sysconfdir}/zypp/multiversion.d %dir %{_sysconfdir}/zypp/credentials.d %config(noreplace) %{_sysconfdir}/zypp/zypp.conf %config(noreplace) %{_sysconfdir}/zypp/systemCheck %config(noreplace) %{_sysconfdir}/logrotate.d/zypp-history.lr %dir %{_var}/lib/zypp %dir %{_var}/log/zypp %dir %{_var}/cache/zypp %{_prefix}/lib/zypp %{_datadir}/zypp %{_bindir}/* %{_libdir}/libzypp*so.* %doc %{_mandir}/man1/*.1.* %doc %{_mandir}/man5/*.5.* %files devel %defattr(-,root,root) %{_libdir}/libzypp.so %{_includedir}/zypp %{_datadir}/cmake/Modules/* %{_libdir}/pkgconfig/libzypp.pc %files devel-doc %defattr(-,root,root) %{_docdir}/%{name} %changelog libzypp-17.7.0/mkChangelog000077500000000000000000000135541334444677500154750ustar00rootroot00000000000000#! /bin/bash function Recho() { echo -e "\e[0;31m""$@""\e[0m"; } function Gecho() { echo -e "\e[0;32m""$@""\e[0m"; } function Becho() { echo -e "\e[0;34m""$@""\e[0m"; } function errexit() { exec >&2 Recho "Error: $@" exit 1 } function usage() { exec >&2 cat </dev/null || { Recho "!!!" Recho "!!! There is no LAST_RELEASE tag '$LAST_RELEASE'. Check manually. " Recho "!!! (git tag -m 'tagging $LAST_RELEASE' '$LAST_RELEASE' ?commit?)" Recho "!!!" exit 8 } if [ "$DRYRUN" == "1" ]; then newchangesentry sameVersion && { Becho "!!! Version is unchanged at $LAST_RELEASE ($LAST_COMPAT)." } exit 0 fi # check version file # while true; do # $LAST_RELEASE # $LAST_COMPAT # $THIS_RELEASE # $THIS_COMPAT sameVersion && { newchangesentry Becho "!!! Version is unchanged at $LAST_RELEASE ($LAST_COMPAT)." read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (P) patch, (M) minor, (I) incompat minor, (e)dit version [e]: ")" RES echo case "${RES:-e}" in [eE]*) Edit $VERSIONFILE eval $(getversion) continue ;; [cC]) Becho "!!! Leave $VERSIONFILE untouched" break ;; [P]) setversion LIBZYPP_PATCH $(($THIS_PATCH + 1)) eval $(getversion) continue ;; [M]) setversion LIBZYPP_MINOR $(($THIS_MINOR + 1)) setversion LIBZYPP_PATCH 0 eval $(getversion) continue ;; [I]) setversion LIBZYPP_COMPATMINOR $(($THIS_MINOR + 1)) setversion LIBZYPP_MINOR $(($THIS_MINOR + 1)) setversion LIBZYPP_PATCH 0 eval $(getversion) continue ;; *) errexit "aborted" ;; esac } break done # prepare changes file # TMPFILE=$(mktemp) trap " [ -f \"$TMPFILE\" ] && /bin/rm -f -- \"$TMPFILE\" " 0 1 2 3 13 15 { newchangesentry; cat $CHANGESFILE; } >$TMPFILE RES=e while [ "$RES" == "e" ]; do Edit $TMPFILE echo awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $TMPFILE read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (s)ubmitt, (e)dit [e]: ")" RES echo case "${RES:-e}" in [eE]*) RES=e ;; [cCsS]) Becho "!!! Store new $CHANGESFILE" mv $TMPFILE $CHANGESFILE chmod 644 $CHANGESFILE test "$RES" == "s" && { if [ "$LAST_RELEASE" == "$THIS_RELEASE" ]; then git add "$CHANGESFILE" && git commit -m "changes" else Becho "!!! Remember new version $THIS_RELEASE in $VERSIONFILE" sed -i "s/^# LAST RELEASED:.*$/# LAST RELEASED: $THIS_RELEASE ($THIS_COMPAT)/" $VERSIONFILE if git add "$CHANGESFILE" "$VERSIONFILE" \ && git commit -m "changes $THIS_RELEASE ($THIS_COMPAT)" \ && git tag -m "tagging $THIS_RELEASE" "$THIS_RELEASE" HEAD; then Becho "!!!" Becho "!!! Do not forget to push the commit and the tag: $(Gecho git push --tags origin HEAD)" Becho "!!!" else Recho "!!!" Recho "!!! Commit failed. Check manually. (git reset HEAD~)" Recho "!!!" exit 9 fi fi } ;; *) Becho "!!! Leave $CHANGESFILE untouched" ;; esac done libzypp-17.7.0/package/000077500000000000000000000000001334444677500147135ustar00rootroot00000000000000libzypp-17.7.0/package/libzypp-rpmlint.cmake000066400000000000000000000000571334444677500210730ustar00rootroot00000000000000addFilter("libzypp.* shlib-policy-name-error") libzypp-17.7.0/package/libzypp.changes000066400000000000000000013773031334444677500177540ustar00rootroot00000000000000------------------------------------------------------------------- Fri Sep 7 12:07:39 CEST 2018 - ma@suse.de - Drop type application due to poor metadata support (bsc#1100095, bsc#1104415) - version 17.7.0 (2) ------------------------------------------------------------------- Thu Sep 6 12:16:25 CEST 2018 - ma@suse.de - Automatically fetch repository signing key from gpgkey url (bsc#1088037) - lsof: use '-K i' if lsof supports it (bsc#1099847,bsc#1036304) - version 17.6.4 (2) ------------------------------------------------------------------- Thu Aug 30 16:44:56 CEST 2018 - ma@suse.de - Check for not imported keys after multi key import from rpmdb (bsc#1096217) - version 17.6.3 (2) ------------------------------------------------------------------- Tue Aug 21 18:46:35 CEST 2018 - ma@suse.de - fixup! Add filesize check for downloads with known size (bsc#408814) Fix detetction of metalink downloads and prevent aborting if a metalink file is larger than the expected data file. - version 17.6.2 (2) ------------------------------------------------------------------- Fri Aug 17 14:52:14 CEST 2018 - ma@suse.de - Adapt to changes in libgpgme11-11.1.0 breaking the signature verification (bsc#1100427) - Use %license (bsc#1082318) - BuildRequires: libsolv-devel >= 0.6.35 (for bsc#1100095) - changes: add CVE numbers - version 17.6.1 (2) ------------------------------------------------------------------- Fri Aug 3 11:11:25 CEST 2018 - ma@suse.de - RepoInfo::provideKey: add report telling where we look for missing keys. - Support listing gpgkey URLs in repo files (bsc#1088037) - Add new report to request user approval for importing a package key - Handle http error 502 Bad Gateway in curl backend (bsc #1070851) (fixes openSUSE/zypper#177) - Add filesize check for downloads with known size (bsc#408814) - Removed superfluous space in translation (bsc#1102019) - version 17.6.0 (2) ------------------------------------------------------------------- Thu Jul 19 12:57:21 CEST 2018 - ma@suse.de - Prevent the system from sleeping during a commit (fixes openSUSE/zypper#135) - RepoManager: Explicitly request repo2solv to generate application pseudo packages. - version 17.5.2 (2) ------------------------------------------------------------------- Wed Jul 18 10:55:49 CEST 2018 - ma@suse.de - libzypp-devel should not require cmake (bsc#1101349) - Avoid zombies from ExternalProgram - Update ApiConfig - fix typo - version 17.5.1 (2) ------------------------------------------------------------------- Mon Jul 9 14:43:15 CEST 2018 - ma@suse.de - HardLocksFile: Prevent against empty commit without Target having been been loaded (bsc#1096803) - lsof: use '-K i' if lsof supports it (bsc#1099847) - PackageProvider: Validate deta rpms before caching (bsc#1091624, bsc#1088705, CVE-2018-7685) - PackageProvider: Validate downloaded rpm package signatures before caching (bsc#1091624, bsc#1088705, CVE-2018-7685) - version 17.5.0 (2) ------------------------------------------------------------------- Mon Jun 25 10:48:55 CEST 2018 - ma@suse.de - Flags: make it std=c++14 ready - Replace 'redhat-release' with generic 'system-release' (#120) - Ignore /var, /tmp and /proc in zypper ps (bsc#1096617) - Show GPGME version in log - version 17.4.0 (2) ------------------------------------------------------------------- Thu Apr 26 18:07:11 CEST 2018 - ma@suse.de - Avoid zombie tar processes (bsc#1076192) - Replace the terminology 'uninstallable' with 'not installable' (bsc#1029392) - version 17.3.1 (2) ------------------------------------------------------------------- Mon Apr 9 13:11:50 CEST 2018 - ma@suse.de - Show progressbar when running posttrans scripts - Execute service plugin script chrooted to the RepoManagers root (bsc#1080693) - Make sure the product file comes from /etc/products.d for the fallback product search (bsc#1086602) - Introduce ZConfig::repoManagerRoot to support having diverging target and repomanager root paths - Rename `stderr` as it can be a macro (fixes #102) - version 17.3.0 (2) ------------------------------------------------------------------- Tue Mar 13 18:03:42 CET 2018 - ma@suse.de - Protect code against broken translations (bsc#1082711) - Fix broken translated format strings - Deprecate the use of asciidoc for new releases - version 17.2.2 (2) ------------------------------------------------------------------- Wed Mar 7 11:22:02 CET 2018 - ma@suse.de - PoolQuery::addDependency add overload to define an individual Match::Mode (bsc#1043166) - version 17.2.1 (2) ------------------------------------------------------------------- Thu Mar 1 17:46:39 CET 2018 - bzeller@suse.de - Add /var/lib/gdm to CheckAccessDeleted blacklist (bsc#1079991) - Use gpgme instead of calling gpg2 binary directly - Fix leak in Digest.cc (bsc#1075978) - version 17.2.0 (2) ------------------------------------------------------------------- Tue Feb 20 18:03:24 CET 2018 - ma@suse.de - RpmDb::checkPackage: fix parsing localized rpm output (bsc#1076415) - Replace libexpat with libxml - Fix libzypp tests failing with `-Wp,-D_GLIBCXX_ASSERTIONS` compiler flag (fixes #84) - BuildRequire gpg2 as testcases need it (fixes #84) - version 17.1.3 (0) ------------------------------------------------------------------- Fri Feb 2 16:07:08 CET 2018 - ma@suse.de - Fix crash when installing broken rpm packages (bsc#1078284) - Testcase: Minor fix writing update testcases - version 17.1.2 (0) ------------------------------------------------------------------- Mon Jan 15 17:01:33 CET 2018 - ma@suse.de - Adapt rpm package verification to changes in rpm-4.14 (bsc#1076018) - version 17.1.1 (0) ------------------------------------------------------------------- Thu Jan 4 17:49:06 CET 2018 - ma@suse.de - plugin: don't reject header values containing a ':' (bsc#1074687) - Locks: Don't store duplicate locks (bsc#969569) - version 17.1.0 (0) ------------------------------------------------------------------- Wed Dec 6 13:29:42 CET 2017 - ma@suse.de - Fix default for solver.allowNameChange (bsc#1071466) - version 17.0.5 (0) ------------------------------------------------------------------- Mon Dec 4 11:09:24 CET 2017 - ma@suse.de - Stop BuildRequire dropped boost-devel (bsc#1062782) - version 17.0.4 (0) ------------------------------------------------------------------- Tue Nov 28 18:21:51 CET 2017 - ma@suse.de - When importing multiple keys, export the individual keys ascii armored for import into the rpmdb (bsc#1069381) - version 17.0.3 (0) ------------------------------------------------------------------- Thu Nov 23 12:33:51 CET 2017 - ma@suse.de - Don't filter procs with a different mnt namespace (bsc#1068708) - Support repo variables in an URIs host:port component (bsc#1057640, bsc#1067605) - version 17.0.2 (0) ------------------------------------------------------------------- Fri Nov 10 15:25:20 CET 2017 - ma@suse.de - Solvable: fix inconsistent retrieval of mediaNr (bsc#1065677) - version 17.0.1 (0) ------------------------------------------------------------------- Tue Nov 7 16:14:31 CET 2017 - ma@suse.de - Locale: Fix possible segfault (bsc#1064999) - RpmDb: Remove excess keys in the zypp keyring when exporting keys only (bsc#1064380) - KeyRing: Fix deleted keys not removed from rpmdb too (bsc#1064380) - Flag gpg keycache dirty when adding/removing keys (bsc#1064380) - Version 17.x for CODE-15, 16.x. is continued on SuSE-SLE-12-SP2-Branch - version 17.0.0 (0) ------------------------------------------------------------------- Thu Oct 12 18:04:38 CEST 2017 - ma@suse.de - Fix media handling in presence of a repo path prefix (bsc#1062561) - version 16.17.3 (0) ------------------------------------------------------------------- Wed Oct 11 16:29:48 CEST 2017 - ma@suse.de - Fix RepoProvideFile ignoring a repo path prefix (bsc#1062561) - version 16.17.2 (0) ------------------------------------------------------------------- Fri Sep 22 12:16:34 CEST 2017 - ma@suse.de - Default to 'solver.dupAllowVendorChange = false' on SLE15 (FATE#323478) - Remove unused legacy notify-message script (bsc#1058783) - version 16.17.1 (0) ------------------------------------------------------------------- Fri Sep 8 18:05:30 CEST 2017 - ma@suse.de - Support multiple product licenses in repomd (FATE#322276) - version 16.17.0 (0) ------------------------------------------------------------------- Thu Sep 7 12:27:44 CEST 2017 - ma@suse.de - Propagate 'rpm --import' errors (bsc#1057188) - Fix typos in zypp.conf - version 16.16.0 (0) ------------------------------------------------------------------- Mon Aug 28 16:05:36 CEST 2017 - ma@suse.de - Add testcase to compile (bsc#1055920) - version 16.15.6 (0) ------------------------------------------------------------------- Fri Aug 25 14:08:43 CEST 2017 - ma@suse.de - Adapt to work with GnuPG 2.1.23 (bsc#1054088) - version 16.15.5 (0) ------------------------------------------------------------------- Fri Aug 25 12:51:43 CEST 2017 - ma@suse.de - verifyFileSignature: Support signing with subkeys (bsc#1008325) - PublicKey: Scan and provide subkey information. - Enhance sort order for media.1/products (bsc#1054671) - Drop detection and support for rpm-4.4 (fixes #77) - version 16.15.4 (0) ------------------------------------------------------------------- Fri Aug 11 15:29:40 CEST 2017 - ma@suse.de - RepoInfo: add enum GpgCheck for convenient gpgcheck mode handling (bsc#1045735) - Fix repo/pkg checks to follow explicitly defined gpgcheck in a .repo file - version 16.15.3 (0) ------------------------------------------------------------------- Fri Jul 21 13:26:48 CEST 2017 - ma@suse.de - Weaken fix for bsc#1038984 if 'gpgcheck=0' in libzypp-16.15.x only. This will allow some already released products to adapt to the behavioral changes introduced by fixing bsc#1038984, while systems with a default configuration (gpgcheck=1) already benefit from the fix in libzypp-16.15.x. For details see section 'Signature checking' in /etc/zypp/zypp.conf. - Fix gpg-pubkey release (creation time) computation (bsc#1036659) - update lsof blacklist (bsc#1046417) - version 16.15.2 (0) ------------------------------------------------------------------- Tue Jul 18 13:18:16 CEST 2017 - ma@suse.de - Be sure bad packages do not stay in the cache (bsc#1045735, CVE-2017-9269) - version 16.15.1 (0) ------------------------------------------------------------------- Mon Jul 17 16:38:14 CEST 2017 - ma@suse.de - PackageProvider: enforce a signed package if pkgGpgCheckIsMandatory - Add RpmDb::checkPackageSignature to report unsigned packages - Fix repo gpg check workflows, mainly for unsigned repos and packages (bsc#1045735, bsc#1038984, CVE-2017-7435, CVE-2017-7436, CVE-2017-9269) - version 16.15.0 (0) ------------------------------------------------------------------- Wed Jul 12 17:06:14 CEST 2017 - ma@suse.de - repo refresh: Re-probe if the repository type changes (bsc#1048315) - MediaCurl: Propagate proper error code to DownloadProgressReport (bsc#1047785) - Allow to trigger an appdata refresh unconditionally (bsc#1009745) - Support custom repo variables defined in /etc/zypp/vars.d (fixes #68) - rename: handle EXDEV error on OverlayFS - version 16.14.0 (0) ------------------------------------------------------------------- Fri Jun 30 14:25:29 CEST 2017 - ma@suse.de - Adapt loop mounting of iso images (bsc#1038132, bsc#1033236) - Adjust zypp.conf for openSUSE Tumbleweed (bsc#1031756) - Change arch variable names conflicting with compiler macros (fixes #70) - Fix potential crash if repo has no baseurl (bnc#1043218) - version 16.13.0 (0) ------------------------------------------------------------------- Wed May 31 11:49:07 CEST 2017 - ma@suse.de - Testcase: add missing solver flags (bsc#1041889) - version 16.12.0 (0) ------------------------------------------------------------------- Fri May 12 11:36:52 CEST 2017 - ma@suse.de - add identIsAutoInstalled convenience methods - make gcc6 happy - version 16.11.0 (0) ------------------------------------------------------------------- Thu May 11 15:23:28 CEST 2017 - ma@suse.de - Use a common workflow for downloading packages and srcpackages. This includes a common way of handling and reposrting gpg signature and checks. (bsc#1037210) - PackageProvider: as well support downloading SrcPackage (for bsc#1037210) - version 16.10.0 (0) ------------------------------------------------------------------- Thu Apr 27 16:03:32 CEST 2017 - ma@suse.de - PoolQuery: Treat explicit queries for 'kind:name' correctly (bsc#1035729) - version 16.9.0 (0) ------------------------------------------------------------------- Fri Apr 21 16:23:51 CEST 2017 - ma@suse.de - Add API to control resolver job to update all packages (FATE#320653) - Remove legacy vendor equivalence between 'suse' and 'opensuse' (bsc#1030686) - version 16.8.0 (0) ------------------------------------------------------------------- Fri Apr 21 09:40:32 CEST 2017 - ma@suse.de - RepoInfo: Allow temporary repos to control their metadata directories (bsc#1032632) - Arch: add armv5tl - version 16.7.0 (0) ------------------------------------------------------------------- Thu Mar 30 15:00:30 CEST 2017 - ma@suse.de - Recognize license tarball in rpmmd repos (FATE#316159) - Fix media verification to properly propagate media access errors (bsc#1031093) - version 16.6.1 (0) ------------------------------------------------------------------- Mon Mar 27 17:10:52 CEST 2017 - ma@suse.de - Fix invalidation of PoolItems if Pool IDs are reused (bsc#1028661) - version 16.6.0 (0) ------------------------------------------------------------------- Mon Mar 27 09:33:26 CEST 2017 - ma@suse.de - Fix X-libcurl-Empty-Header-Workaround (bsc#1030919) - version 16.5.2 (0) ------------------------------------------------------------------- Tue Mar 21 13:38:08 CET 2017 - ma@suse.de - MediaCurl: Treat http response 410(Gone) like 404(Not Found) (bsc#1030136) - version 16.5.1 (0) ------------------------------------------------------------------- Thu Mar 16 14:06:03 CET 2017 - ma@suse.de - Support multi-volume repomd repositories (FATE#320544) - MediaCurl: ZYPP_MEDIA_CURL_IPRESOLVE=<4|6> to force name resolution to IPv4/IPv6 only (fixes openSUSE/zypper#49) - Add support for openssl >= 1.1 - version 16.5.0 (0) ------------------------------------------------------------------- Mon Feb 20 10:10:43 CET 2017 - ma@suse.de - PublicKey: Create tmpdirs inside ZYpp::tmpPath (bsc#926844) - Don't create AnonymousUniqueId in chroot (bsc#1024741) - version 16.4.3 (0) ------------------------------------------------------------------- Tue Feb 14 12:07:14 CET 2017 - ma@suse.de - dumpAsXmlOnL: xml escape node content (bsc#1024909) - version 16.4.2 (0) ------------------------------------------------------------------- Fri Feb 3 13:40:04 CET 2017 - ma@suse.de - MediaMultiCurl: Trigger aliveCallback when downloading metalink files (bsc#1021291) - version 16.4.1 (0) ------------------------------------------------------------------- Thu Jan 26 13:03:37 CET 2017 - ma@suse.de - Add API for updating the AutoInstalled db - MediaCD: Fix mountpoint creation after failing udf mount (bsc#1022046) - fix misleading indentation (fixes #65) - Fix compilation error reported by GCC7 (#63). - Prefer calling "repo2solv" rather than "repo2solv.sh" - version 16.4.0 (0) ------------------------------------------------------------------- Wed Dec 14 12:24:23 CET 2016 - ma@suse.de - Don't raise FileCheckException if user accepted a package with wrong digest (bsc#1014265) - Also provide the exception history when requesting a media failed (bsc#1010952) - version 16.3.2 (0) ------------------------------------------------------------------- Tue Oct 11 18:04:18 CEST 2016 - ma@suse.de - Let 'dup --from' leave an updateTestcase- in /var/log (bsc#1004096) - version 16.3.1 (0) ------------------------------------------------------------------- Tue Oct 11 11:41:47 CEST 2016 - ma@suse.de - RepoInfo: Allow parsing multiple gpgkey= URLs (bsc#1003748) - version 16.3.0 (0) ------------------------------------------------------------------- Tue Sep 20 11:41:48 CEST 2016 - ma@suse.de - guessPackageSpec: Don't break globbing (fixes openSUSE/zypper#97) - version 16.2.5 (0) ------------------------------------------------------------------- Thu Sep 15 15:27:15 CEST 2016 - ma@suse.de - RepoFileReader: fix parsing of multiline url entries (bsc#964932) - Allow repo type 'rpm' as alias for 'rpm-md' (fixes openSUSE/zypper#100) - version 16.2.4 (0) ------------------------------------------------------------------- Fri Sep 9 16:43:30 CEST 2016 - ma@suse.de - xmlout::Node: Allow adding nore attributes while the start node is not closed (FATE#320699) - Fixes broken XML output introduced by an unwanted change in 16.2.2 (bsc#998344) - version 16.2.3 (0) ------------------------------------------------------------------- Wed Aug 10 17:10:41 CEST 2016 - ma@suse.de - Report numeric curl error if code is unrecognized (bsc#992302) - multicurl: propagate proxy settings stored in repo url (bsc#933839) - version 16.2.2 (0) ------------------------------------------------------------------- Thu Jul 21 13:09:33 CEST 2016 - ma@suse.de - Rebuild .solv-files not matching the parsers LIBSOLV_TOOLVERSION - BuildRequires: libsolv-devel >= 0.6.23 - version 16.2.1 (0) ------------------------------------------------------------------- Mon Jul 18 16:36:25 CEST 2016 - ma@suse.de - Product: Offer tri-state hasEndOfLife details (FATE#320699) - version 16.2.0 (0) ------------------------------------------------------------------- Thu Jul 14 19:02:57 CEST 2016 - ma@suse.de - use more user friendly command names for "zypper ps" (bsc#980541) - version 16.1.3 (0) ------------------------------------------------------------------- Thu Jul 14 15:39:03 CEST 2016 - ma@suse.de - Don't do media number substitution on URLs of medium #1 (bsc#798470) - version 16.1.2 (0) ------------------------------------------------------------------- Tue Jul 5 11:39:11 CEST 2016 - ma@suse.de - Fix Shrink pool if all repos are removed (bsc#899755, bsc#987573) - version 16.1.1 (0) ------------------------------------------------------------------- Fri Jun 24 12:33:29 CEST 2016 - ma@suse.de - API enahncements for zypper (FATE#320447) - version 16.1.0 (0) ------------------------------------------------------------------- Tue Jun 21 11:11:03 CEST 2016 - ma@suse.de - Filter duplicate resolver solutions (bsc#985674) - zypp.conf: Add download.media_mountdir: Path where media are preferably mounted or downloaded (FATE#319462) - version 16.0.5 (0) ------------------------------------------------------------------- Wed Jun 15 12:36:27 CEST 2016 - ma@suse.de - Fix bug in removeRepository which may keep an empty .repo file rather than deleting it (bsc#984494) - version 16.0.4 (0) ------------------------------------------------------------------- Mon Jun 13 12:53:03 CEST 2016 - ma@suse.de - Shrink pool if all repos are removed (bnc#899755) - Avoid direct BuildRequire on libudev-devel (#60) - version 16.0.3 (0) ------------------------------------------------------------------- Tue Jun 7 18:43:31 CEST 2016 - ma@suse.de - Allow PackageKit to drop the zypp lock (bnc#899755) - Avoid superfluous rebuilding of indices when solving - version 16.0.2 (0) ------------------------------------------------------------------- Sun Jun 5 16:12:42 CEST 2016 - ma@suse.de - po: upadte makefiles - DefaultIntegral: provide asString (for FATE#320447) - version 16.0.1 (0) ------------------------------------------------------------------- Fri May 13 08:45:53 CEST 2016 - ma@suse.de - Prepare cmake to maintain the .pot and .po files in git. Add initial .po file set derived from tarballs. Translations are now maintained via Weblate. - Provide 'libzypp(plugin:services) = 1' after fixing bsc#933760 - Bump major version for Factory, 15.x is continued on SuSE-SLE-12-SP1-Branch - version 16.0.0 (0) ------------------------------------------------------------------- Thu Apr 28 14:17:09 CEST 2016 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Apr 28 14:04:36 CEST 2016 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Apr 25 14:59:41 CEST 2016 - ma@suse.de - Fix credential file parser losing entries with known URL but different user name (bsc#933760) - RepoManager: allow extraction of multiple baseurls for service repos (bsc#964932) - addRepository: fix to use the correct history file for logging - specfile: add /etc/zypp/credentials.d to the file list - version 15.22.0 (19) ------------------------------------------------------------------- Mon Apr 18 15:03:13 CEST 2016 - ma@suse.de - RepoindexFileReader: fix service metadata TTL default value (bsc#967828) - version 15.21.7 (19) ------------------------------------------------------------------- Fri Apr 15 11:31:08 CEST 2016 - ma@suse.de - DiskUsageCounter: Limit estimated waste per file (bsc#974275) - version 15.21.6 (19) ------------------------------------------------------------------- Fri Mar 18 13:37:22 CET 2016 - ma@suse.de - Use PluginExecutor for commit- and system-hooks (bnc#971637) - BuildRequires: libsolv-devel >= 0.6.19 (bnc#971018) - version 15.21.5 (19) ------------------------------------------------------------------- Sun Mar 13 01:13:08 CET 2016 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Mar 10 01:13:24 CET 2016 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Mar 1 12:34:53 CET 2016 - ma@suse.de - media: Send stats header to download.opensuse.org only (bsc#955801) - fix build-compare (#57, #58) - version 15.21.4 (19) ------------------------------------------------------------------- Thu Feb 18 18:38:52 CET 2016 - ma@suse.de - yum::Downloader: Download only wanted 'susedata.LANG' files (FATE#320518) - version 15.21.3 (19) ------------------------------------------------------------------- Thu Feb 4 16:38:14 CET 2016 - ma@suse.de - installSrcPackage: trigger progress callback (bsc#580902) - version 15.21.2 (19) ------------------------------------------------------------------- Thu Feb 4 01:13:31 CET 2016 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Jan 29 11:40:51 CET 2016 - ma@suse.de - Don't buildrequire graphviz-gnome (bsc#964150) - Unwanted btrfs subvolumes must be filtered by device (not fsid) (fixes #54) - version 15.21.1 (19) ------------------------------------------------------------------- Thu Jan 21 01:13:29 CET 2016 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jan 20 17:12:42 CET 2016 - ma@suse.de - Filter unwanted btrfs subvolumes (fixes #54, closes #55, bnc#949945) - RepoInfo: Provide access to repo content keywords - Build with boost-1.60.0 - version 15.21.0 (19) ------------------------------------------------------------------- Thu Jan 14 01:13:17 CET 2016 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jan 7 01:13:28 CET 2016 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Dec 24 01:13:13 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Dec 11 19:07:09 CET 2015 - ma@suse.de - ResPoolProxy: make begin/end pairs Iterable - String: Format and FormatNAC classes based on boost::format - DefaultIntegral: provide initial value - More specific exception message if GPG binary is missing (bsc#637791) - version 15.20.0 (19) ------------------------------------------------------------------- Thu Dec 10 01:14:50 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Dec 3 01:13:11 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Nov 22 01:13:29 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Nov 19 01:16:03 CET 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Nov 19 01:13:40 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Nov 16 12:27:02 CET 2015 - ma@suse.de - createPot: Fix plural form detection (bsc#955053) - version 15.19.7 (19) ------------------------------------------------------------------- Thu Nov 12 01:13:26 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Nov 8 01:13:11 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Nov 6 11:08:46 CET 2015 - ma@suse.de - Add testcase for uncached repo-variables. - Fixed Japanese translations (bsc#949196) - version 15.19.6 (19) ------------------------------------------------------------------- Fri Nov 6 10:56:44 CET 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Nov 5 01:15:12 CET 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Nov 5 01:13:24 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Nov 3 10:52:01 CET 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Nov 3 10:51:43 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Oct 23 17:10:18 CEST 2015 - ma@suse.de - Fix broken product: <-> -release package relation (bnc#951782) - version 15.19.5 (19) ------------------------------------------------------------------- Thu Oct 22 12:23:29 CEST 2015 - ma@suse.de - Use a uniform translation set for SLE and openSUSE (bnc#948924) - fix Plugin-services not updating repo GPGCheck settings (bnc#951402) - version 15.19.4 (19) ------------------------------------------------------------------- Sun Oct 18 01:13:27 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Oct 15 01:13:57 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Oct 14 16:36:27 CEST 2015 - ma@suse.de - make Solvable::asUserString more readable (bnc#949957) - version 15.19.3 (19) ------------------------------------------------------------------- Sun Oct 11 01:13:12 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Oct 8 01:14:43 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Oct 7 13:11:48 CEST 2015 - ma@suse.de - fix suse_version test (bsc#949046) - version 15.19.2 (19) ------------------------------------------------------------------- Wed Oct 7 11:06:24 CEST 2015 - ma@suse.de - Locks: fix using namespaces (for FATE#318299) - version 15.19.1 (19) ------------------------------------------------------------------- Mon Oct 5 12:27:49 CEST 2015 - ma@suse.de - fix reserved identifier violation (fixes #51) - solver: speed up collecting pool data to build the job queue - doc: short abstract about 'Code 12 Application Metadata' - version 15.19.0 (19) ------------------------------------------------------------------- Tue Sep 29 17:51:48 CEST 2015 - ma@suse.de - solver verify: multiversion property needs to be assigned to installed items too. - ZYppCommitResult: add attemptToModify to indicate an attempt to actually install/remove was made (bsc#946750, FATE#319467) - version 15.18.0 (14) ------------------------------------------------------------------- Mon Sep 28 12:19:26 CEST 2015 - ma@suse.de - SetTracker: fix computation of change sets (bsc#946898) - version 15.17.2 (14) ------------------------------------------------------------------- Fri Sep 25 11:42:28 CEST 2015 - ma@suse.de - Pattern: support dynamic computation of pattern visibility (bsc#900769) - Avoid URL rewrite if probing local cache directories (bsc#946129) - version 15.17.1 (14) ------------------------------------------------------------------- Mon Sep 21 16:57:45 CEST 2015 - ma@suse.de - Dummy (FATE#318827) to make Sles-changelog-checker stop whining. - version 15.17.0 (14) ------------------------------------------------------------------- Mon Sep 21 16:09:50 CEST 2015 - ma@suse.de - Glob: fix reserved identifier violation - version 15.16.2 (14) ------------------------------------------------------------------- Tue Sep 15 15:02:45 CEST 2015 - ma@suse.de - CheckAccessDeleted: Identify services by systemd cgroup (FATE#318827) - version 15.16.1 (14) ------------------------------------------------------------------- Mon Sep 14 12:21:30 CEST 2015 - ma@suse.de - Reload multiversion setting from the target zypp.conf (bnc#906096) - version 15.16.0 (14) ------------------------------------------------------------------- Sun Sep 13 01:15:26 CEST 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Sep 13 01:13:30 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 10 01:16:00 CEST 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Sep 4 13:49:33 CEST 2015 - ma@suse.de - Don't cache repo releasever (bnc#943563) - Selectable: allow setPickStatus for non-multiversion packages (bnc#943870) - ResPoolProxy: add ScopedSaveState - version 15.15.0 (14) ------------------------------------------------------------------- Tue Sep 1 18:19:27 CEST 2015 - ma@suse.de - zypp.conf: add solver.dupAllow{Downgrade,NameChange,ArchChange, VendorChange} default options for tuning distribution upgrades. - Remove obsolete method (bsc#941398) (fixes #50) - fix invalid XML (bnc#942518) - version 15.14.0 (14) ------------------------------------------------------------------- Sun Aug 30 01:13:07 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 27 01:14:20 CEST 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 20 01:13:09 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 16 01:13:23 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 13 18:16:52 CEST 2015 - ma@suse.de - Support caching of service metadata. A TTL for the service metadata may be provided in the repoindex.xml itself. The default is 'no caching'. (FATE#318136) - Fix setting dup_allow* solver options (bnc#941463) - Don't make zypper encode {} around repo vars (bnc#941453) - version 15.13.0 (11) ------------------------------------------------------------------- Thu Aug 13 01:13:43 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Aug 11 18:48:57 CEST 2015 - ma@suse.de - History: Add 'command' tag showing who triggered the commit. The corresponding HistoryLogData class for parsing is HistoryLogDataStampCommand. Available data are the commandline executed, user@hostname and userdata/transactionID. (FATE#312298) - Add convenience comparison PoolItem<>ResObject::constPtr - Fixes for SWIG 2.x - version 15.12.0 (11) ------------------------------------------------------------------- Mon Aug 10 16:22:06 CEST 2015 - ma@suse.de - Make multiversion an individual solvables property (FATE#318778) - SolvableType: common api to access solvable properties - Support for MIPS architectures - version 15.11.0 (11) ------------------------------------------------------------------- Sun Aug 9 01:13:24 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 2 01:13:27 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 30 16:13:49 CEST 2015 - ma@suse.de - Resolver: Track changed requested locales and adjust installed packages accordingly. (part of FATE#318099) - Testcase: Store autoinstalled packages - Locale: Make it IdString based - Get rid of std::tr1:: hashes - Flags: Fix to work with 'enum class' - Hide away resolver internals - version 15.10.0 (10) ------------------------------------------------------------------- Thu Jul 30 01:13:30 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Jul 28 14:14:54 CEST 2015 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Jul 27 09:30:38 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jul 26 01:13:37 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 16 01:13:33 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jul 12 01:13:20 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 9 16:43:12 CEST 2015 - ma@suse.de - Resolver allow tuning DUP mode solver flags (FATE#319128) - version 15.9.0 (5) ------------------------------------------------------------------- Fri Jul 3 08:23:04 CEST 2015 - ma@suse.de - Flags: add stringify - add asString for Patch::InteractiveFlag - version 15.8.0 (5) ------------------------------------------------------------------- Thu Jul 2 01:13:24 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jul 1 14:00:42 CEST 2015 - ma@suse.de - add asString for Patch::Category - version 15.7.0 (5) ------------------------------------------------------------------- Mon Jun 29 17:43:00 CEST 2015 - ma@suse.de - Fix lost pathname when importing repo keys (bnc#936373) - Disable code swig does not understand - version 15.6.0 (5) ------------------------------------------------------------------- Sat Jun 27 17:07:32 CEST 2015 - ma@suse.de - Patch: fixup testing Category and Severity flags (FATE#318760) - version 15.5.0 (5) ------------------------------------------------------------------- Fri Jun 12 12:14:04 CEST 2015 - ma@suse.de - Add details to the default signature verification problem report - PathInfo: Avoid ExternalProgram in clean_dir - call rpmdb2solv without executing user-supplied scripts (bnc#926853) - version 15.4.1 (3) ------------------------------------------------------------------- Thu Jun 11 01:13:31 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jun 4 01:13:22 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jun 3 13:00:59 CEST 2015 - ma@suse.de - Enhance solv.idx file handling to support zypper bash completion - Fix SSL client certificate authentication via URL option ssl_clientcert/ssl_clientkey (bnc#932393) - version 15.4.0 (3) ------------------------------------------------------------------- Thu May 28 01:13:23 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun May 24 18:17:38 CEST 2015 - ma@suse.de - Downloader: Accept unsigned repository if pkgGpgCheck is ON. - FindFileConflicts: avoid nested exception on user abort (bnc#931601) - Support for *.check files in the systemCheck.d directory (#45) - version 15.3.0 (3) ------------------------------------------------------------------- Sun May 24 01:13:19 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon May 18 10:46:10 CEST 2015 - ma@suse.de - zypp.conf: Add config values for gpgcheck, repo_gpgcheck and pkg_gpgcheck. The default behavior 'gpgcheck=On' will automatically turn on the gpg signature check for packages downloaded from repository with unsigned metadata. If the repo metadata are signed, a faster comparison via checksums is done. By explicitly setting repo_gpgcheck or pkg_gpgcheck you can enforce the signature check of repository metadata or downloaded packages to be always performed. Those defaults can be overwritten per repository. (FATE#314603) - version 15.2.0 (2) ------------------------------------------------------------------- Wed May 13 14:04:04 CEST 2015 - ma@suse.de - Write solv.idx to speed up bash tab completion (bnc#928650) - version 15.1.3 (1) ------------------------------------------------------------------- Fri May 8 11:44:44 CEST 2015 - ma@suse.de - gcc5 fixes - Fix repo alias containing ']' not handled correctly (bnc#929528) - Fix SEGV when dumping rpm header with epoch (bnc#929483) - version 15.1.2 (1) ------------------------------------------------------------------- Mon Apr 27 14:43:53 CEST 2015 - ma@suse.de - PubliKey: fix reference to temporary data - version 15.1.1 (1) ------------------------------------------------------------------- Thu Apr 23 01:13:15 CEST 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Apr 22 10:50:00 CEST 2015 - ma@suse.de - ZYpp: Changed ZYpp::Ptr to be a shared_ptr; a precondition for fixing bnc-899755 - rpmmd: support 'metalink=' in .repo (for zypper#63) - RepoMirrorList: ignore comments and malformed urls in mirrorlist - PathInfo: remove minor/major conflicting with GNU libc macros DiskUsageCounter: remove ctors taking 'magic' bool flags ZyppCallbacks: remove unused PatchDownload callbacks - version 15.1.0 (1) ------------------------------------------------------------------- Thu Apr 2 19:06:56 CEST 2015 - ma@suse.de - POODLE: libzypp should only talk TLS (bnc#903405) - Bump major version for Factory, 14.x is continued on SuSE-SLE-12-Branch - version 15.0.0 (0) ------------------------------------------------------------------- Thu Apr 2 16:01:43 CEST 2015 - ma@suse.de - Fixes to build with gcc5 - RepoProvideFile: Suppress MediaChangeReport while testing multiple baseurls (bnc#899510) - version 14.38.1 (30) ------------------------------------------------------------------- Thu Mar 19 16:44:39 CET 2015 - ma@suse.de - Suppress MediaChangeReport while testing multiple baseurls (bnc#899510) - version 14.38.0 (30) ------------------------------------------------------------------- Mon Mar 16 14:05:28 CET 2015 - ma@suse.de - add support for SHA224/384/512 - version 14.37.1 (30) ------------------------------------------------------------------- Wed Mar 11 09:22:46 CET 2015 - ma@suse.de - New RepoVarExpand: Functor expanding repo variables in a string . Supports bash style default ${v:-w}' and alternate ${v:+w} values (FATE#318354) - Easy.h: Use __typeof__ rather than typeof in header - Support repo variable replacement in service url - Support repo variable replacement in gpg url - Gettext.h: Fallback to ::gettext if accidentally included outside libzypp - version 14.37.0 (30) ------------------------------------------------------------------- Sun Feb 22 01:13:12 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Feb 19 01:13:13 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Feb 15 01:13:28 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Feb 12 01:13:34 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Feb 9 16:05:38 CET 2015 - ma@suse.de - Don't execute scripts in /tmp or /var/tmp, as they could be mounted noexec for security reasons (bnc#915928) - zypp/PublicKey.cc: Use GPG_BINARY from KeyRing - Support $releasever_major/$releasever_minor repo variables (FATE#318354) - version 14.36.0 (30) ------------------------------------------------------------------- Sun Feb 8 01:13:14 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Feb 5 01:13:27 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Feb 1 01:13:10 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jan 29 01:13:12 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jan 22 01:13:36 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jan 21 10:28:49 CET 2015 - ma@suse.de - PathInfo: Deprecate major/minor in favor of new devMajor/devMinor. The old names clash with GNU libc macros. - version 14.35.0 (30) ------------------------------------------------------------------- Sun Jan 18 01:13:09 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jan 15 01:13:12 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Jan 12 15:04:17 CET 2015 - ma@suse.de - Properly propagate repo variables in service refresh. - Let $ZYPP_REPO_RELEASEVER overwrite $releasever in .repo files (bnc#911658) - Call pool_set_rootdir to properly check for file conflicts. - Use xgettext --boost to support boost-format (%N%) - version 14.34.0 (30) ------------------------------------------------------------------- Sun Jan 11 01:13:15 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jan 8 01:13:23 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jan 1 01:13:29 CET 2015 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Dec 21 01:13:33 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Dec 19 10:05:00 CET 2014 - ma@suse.de - Parse and offer productRegisterFlavor attribute (bnc#896224) - version 14.33.0 (30) ------------------------------------------------------------------- Thu Dec 18 01:13:20 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Dec 17 18:44:26 CET 2014 - ma@suse.de - Improve conflict message for locked packages (bnc#828631) - Fix broken de-escaping in str::splitEscaped (bnc#909772) - cleanup loging - version 14.32.2 (30) ------------------------------------------------------------------- Fri Dec 12 14:00:01 CET 2014 - ma@suse.de - CheckAccessDeleted: Filter PIDs running in a container (bnc#909143) - version 14.32.1 (30) ------------------------------------------------------------------- Wed Dec 10 16:06:04 CET 2014 - ma@suse.de - suppress informal license (no need to accept) upon update (bnc#908976) - version 14.32.0 (30) ------------------------------------------------------------------- Mon Dec 8 14:53:00 CET 2014 - ma@suse.de - Adapt to gpg-2.1 (bnc#908135) - rpm: do not obsolete yast2-packagemanager-devel by libzypp-devel-doc - replaceAll: fix endless loop on empty search string - version 14.31.0 (30) ------------------------------------------------------------------- Thu Nov 27 07:40:30 UTC 2014 - dimstar@opensuse.org - Do not provide/obsolete yast2-packagemanager-devel by the -doc package: the -devel package already does that. - Minor .spec cleanup (remove Authors section). ------------------------------------------------------------------- Tue Nov 11 17:09:28 CET 2014 - ma@suse.de - Call rpm with '--noglob' (bnc#892431) - Downloader: unify workflow downloading a (signed) master index file - Fix iostream includes (fixes #34) - Explicitly call libsolv:pool_setdisttype (fixes #36) - version 14.30.2 (30) ------------------------------------------------------------------- Sun Nov 9 01:13:17 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Nov 2 01:14:10 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Oct 27 11:38:00 CET 2014 - ma@suse.de - doc: add hint to code 12 pattern packages - MediaCurl: Fix URL path concatenation (bnc#901590) - Move doxygen html doc to libzypp-devel-doc (bnc#901691) - Remove non-breaking spaces from changes file - Control lifetime of downloaded mirrorlist - version 14.30.1 (30) ------------------------------------------------------------------- Thu Oct 16 11:03:11 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Oct 15 15:07:09 CEST 2014 - ma@suse.de - Store baseurls in list as order expresses preference - Support parsing multiple baseurls from a repo file (bnc#899510) - Fix handling local mirrorlist= files in .repo (bnc#899510) - Provide missing man pages (fixes #33) - Enable building autodocs, translations and test per default on debian - Fix several typos in output messages and comments (fixes #29) - Make the include dir path configurable (fixes #27) - version 14.30.0 (30) ------------------------------------------------------------------- Fri Oct 10 16:01:31 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 (bnc#899603) ------------------------------------------------------------------- Thu Oct 9 01:13:15 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Oct 5 01:14:42 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Sep 28 01:13:30 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 25 17:59:06 CEST 2014 - ma@suse.de - Trigger appdata plugin when system repos have changed (bnc#866257) - Protect against race when destructing globals - BuildRequire libsolv-tools as libsolv-devel no longer does - version 14.29.4 (29) ------------------------------------------------------------------- Thu Sep 25 01:15:42 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Sep 23 17:07:45 CEST 2014 - ma@suse.de - Fix computation of userinstalled items (bnc#897404) - version 14.29.3 (29) ------------------------------------------------------------------- Tue Sep 23 10:55:08 CEST 2014 - ma@suse.de - Adapt to API changes in rpm.4.12 - SLE-12 (suse_version 1315) uses it's own translations set (bnc#897176) - version 14.29.2 (29) ------------------------------------------------------------------- Sun Sep 21 01:13:25 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 18 15:47:50 CEST 2014 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 18 15:47:34 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 18 15:46:11 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Sep 17 13:18:23 CEST 2014 - ma@suse.de - adjust BuildRequires - version 14.29.1 (29) ------------------------------------------------------------------- Tue Sep 16 10:45:39 CEST 2014 - ma@suse.de - DiskUsageCounter: Set growonly on detetcted snapshotting btrfs partitions (bnc#896176) - DiskUsageCounter: Allow MountPoint to store fstype - DiskUsageCounter: Support setting 'growonly' partition hint (bnc#896176) - version 14.29.0 (29) ------------------------------------------------------------------- Fri Sep 5 12:46:57 CEST 2014 - ma@suse.de - Make Repository::isUpdateRepo also check for being referenced by products (bnc#892579) - Report repositories skipped as nonroot due to insufficient permission (bnc#893260) - version 14.28.0 (28) ------------------------------------------------------------------- Thu Sep 4 01:14:34 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Aug 29 14:46:25 CEST 2014 - ma@suse.de - PackageProvider: consider toplevel cache if --root or --pkg-cachedir is used. - Cleanup orpahned cache dirs only at zypp.conf default locations (bnc#891515) - Remove orphaned package caches on refresh (bnc#888919) - version 14.27.2 (27) ------------------------------------------------------------------- Sun Aug 24 01:16:00 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Aug 18 14:01:06 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 31 19:22:56 CEST 2014 - ma@suse.de - Fix gpg key creation/modification date computation to properly update trusted keys stored in the rpm database. - version 14.27.1 (27) ------------------------------------------------------------------- Mon Jul 28 11:32:40 CEST 2014 - mls@suse.de - reverted last commit to make yast2-pkg-bindings build again ------------------------------------------------------------------- Fri Jul 25 12:56:17 CEST 2014 - ma@suse.de - JobReport: extend callback to allow passing UserData - hardlinkCopy must not fail if proc/sys/fs/protected_hardlink is on - adapt to changed boost::error_category throw specifier - version 14.27.0 (27) ------------------------------------------------------------------- Fri Jul 18 08:57:39 CEST 2014 - ma@suse.de - Execute install scripts with cwd==/ (bnc#886764) - fix wrong '//' when extending URLs with an empty path (bnc#885254) - version 14.26.1 (26) ------------------------------------------------------------------- Mon Jul 14 17:46:14 CEST 2014 - ma@suse.de - refreshService: add option to force repo status reset - Strip local filenames and args from URL. - version 14.26.0 (26) ------------------------------------------------------------------- Fri Jul 11 13:42:43 CEST 2014 - ma@suse.de - Support RepoInfo content keywords (FATE#316287) - fix parsing repomd.xml twice - version 14.25.0 (23) ------------------------------------------------------------------- Wed Jun 11 07:36:48 CEST 2014 - ma@suse.de - Patch: add isCategory/isSeverity convenience - If available provide info in ServiceException - version 14.24.0 (23) ------------------------------------------------------------------- Wed Jun 4 11:49:32 CEST 2014 - ma@suse.de - Cleanup orphanded service repos on the fly (bnc#649846) - Service refresh must not attempt to modify plugin services - version 14.23.0 (23) ------------------------------------------------------------------- Wed May 28 13:41:22 CEST 2014 - ma@suse.de - Fix service methods to throw ServiceException, not RepoException. - version 14.22.0 (22) ------------------------------------------------------------------- Tue May 27 16:31:21 CEST 2014 - ma@suse.de - Let ServiceRefresh en-/disable repos with respect to previous state and user modifications. - RepoindexFileReader: support variable substitution - Parse optional autorefresh attribute from repoindex.xml - version 14.21.0 (20) ------------------------------------------------------------------- Wed May 14 13:52:38 CEST 2014 - ma@suse.de - Add DownloadResolvableReport::infoInCache - Adjust transfer timeout settings (bnc#877405) - Fix computation of update candidate (bnc#834858) - version 14.20.0 (20) ------------------------------------------------------------------- Thu May 8 18:54:25 CEST 2014 - ma@suse.de - KeyRingReport: New infoVerify callback showing the trusted key that will be used for verification. - version 14.19.0 (19) ------------------------------------------------------------------- Sun May 4 01:15:49 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 1 01:15:38 CEST 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Apr 28 15:34:44 CEST 2014 - ma@suse.de - Derive initial AutoInstalled file from history - Target: maintain AutoInstalled database file - version 14.18.0 (17) ------------------------------------------------------------------- Tue Apr 15 17:03:30 CEST 2014 - ma@suse.de - Factor out CommitPackageCache for standalone usage. (Fate#317077) - version 14.17.5 (17) ------------------------------------------------------------------- Fri Apr 11 16:16:11 CEST 2014 - ma@suse.de - history: log %posttrans errors and output - adapt to libsolv cannges - version 14.17.4 (17) ------------------------------------------------------------------- Fri Apr 4 14:29:13 CEST 2014 - ma@suse.de - Log warning if baseproduct symlink is dangling or missing - version 14.17.3 (17) ------------------------------------------------------------------- Thu Apr 3 19:18:48 CEST 2014 - ma@suse.de - RepoManager: Fix RepoStatus computation and refresh of PLAINDIR repos. - Recreate solv file caches if content may change even if raw metadata are unchanged (here: new pattern, product and application data). - version 14.17.2 (17) ------------------------------------------------------------------- Wed Apr 2 18:09:47 CEST 2014 - ma@suse.de - CpeId: Basic functionality incl. matching - New SetRelationMixin - version 14.17.1 (17) ------------------------------------------------------------------- Mon Mar 31 10:23:42 CEST 2014 - ma@suse.de - Use dummy licenses in test data (bnc#862471) - Install zypp-NameReqPrv helper for evaluating testcases. - version 14.17.0 (17) ------------------------------------------------------------------- Tue Mar 18 14:55:11 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Feb 26 15:06:06 CET 2014 - ma@suse.de - Ignore failed-eject-exception on media change (bnc#865705) - version 14.16.1 (16) ------------------------------------------------------------------- Tue Feb 25 13:42:13 CET 2014 - ma@suse.de - Remove duplicate code detecting known kinds and move it to ResKind::explicitBuiltin. - version 14.16.0 (16) ------------------------------------------------------------------- Sun Feb 23 21:52:55 CET 2014 - ma@suse.de - Optionally exclude suggested packages from pattern content (bnc#857671) - Fix pattern content for auto-pattens (bnc#864087) - Don't report missing filelists for non-packages (bnc#864314) - adapt to new rpm weak dependency tags - version 14.15.0 (15) ------------------------------------------------------------------- Fri Feb 14 13:51:46 CET 2014 - ma@suse.de - Provide ContentIdentifier of required update repositories in Product (Fate#316160) - Support CpeId in Repository and Product attributes (Fate#316160) - Add API for retrieving repository ContentRevision and ContentIdentifier (Fate#316160) - version 14.14.0 (14) ------------------------------------------------------------------- Thu Feb 13 10:28:24 CET 2014 - ma@suse.de - Adjust solver defaults to changed soft lock handling (bnc#863275) - Avoid confusing solver decisions by not storing soft locks (bnc#863275) - version 14.13.0 (13) ------------------------------------------------------------------- Tue Feb 11 21:22:58 CET 2014 - ma@suse.de - Add Product::endOfLife attribute (Fate#316172) - Let Product::shortName fallback to name. - Remove license text from test data (bnc#862471) - version 14.12.0 (12) ------------------------------------------------------------------- Sun Feb 2 01:13:59 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Jan 31 19:09:28 CET 2014 - ma@suse.de - Introduce new solvable kind: Application (as provided by appdata.xml) - version 14.11.0 (7) ------------------------------------------------------------------- Fri Jan 31 17:37:29 CET 2014 - ma@suse.de - String helper for printing indented text. - Offer translated names for dependency types. - version 14.10.0 (7) ------------------------------------------------------------------- Thu Jan 30 01:13:40 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jan 29 10:28:16 CET 2014 - ma@suse.de - No fileconflict check if DownloadOnly. - version 14.9.0 (7) ------------------------------------------------------------------- Sat Jan 25 17:07:45 CET 2014 - ma@suse.de - Collect and execute %posttrans scripts delayed (Fate#313506) - BuildRequire libsolv implementing (Fate#309385) - version 14.8.0 (7) ------------------------------------------------------------------- Fri Jan 24 11:26:52 CET 2014 - ma@suse.de - Patterns are no longer pseudo installed (Fate#309385) - version 14.7.0 (7) ------------------------------------------------------------------- Fri Jan 24 08:41:13 CET 2014 - ma@suse.de - Check for file conflicts in commit (bnc#673720) - Add asUserSting: human readable (translated) string representation - Add file conflict detection during commit (bnc#673720) - Add Transaction::installedResult - version 14.6.0 (6) ------------------------------------------------------------------- Mon Jan 20 17:14:48 CET 2014 - ma@suse.de - Fix cleanup code removing the @System solv file. (bnc#853065) - Fix missing priority in RepoInfo::dumpAsXML (bnc#855845) - version 14.5.0 (4) ------------------------------------------------------------------- Tue Jan 14 18:38:49 CET 2014 - ma@suse.de - Improve ProgressData reporting. - Allow xml::escape directly dumping to a stream. - Add support for repo authentication using SSL client certificates (bnc#683914) - Enhance Queue to perform COW - fix documentation - version 14.4.0 (4) ------------------------------------------------------------------- Thu Jan 9 01:13:40 CET 2014 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Dec 13 19:36:34 CET 2013 - ma@suse.de - Polish DiskUsageCounter - Add Bitmap type (aka sat::Map) - Remove obsolete DiskUsage class - version 14.3.0 (3) ------------------------------------------------------------------- Thu Dec 12 18:01:18 CET 2013 - ma@suse.de - Fix disk usage computation for single packages (bnc#852943) - version 14.2.1 (2) ------------------------------------------------------------------- Wed Dec 4 12:54:30 UTC 2013 - jreidinger@suse.com - Drop package-manager script as it is already deprecated and packagekit usage in desktop invalidates it. If someone really need it, then place it to proper top level package which can decide what GUI is proper for given task. ------------------------------------------------------------------- Wed Nov 20 16:32:30 CET 2013 - ma@suse.de - Extend commit plugin to send the transaction list (Fate#316203) - Add base/Json.h: JSON encoder for e.g. sending data to plugins - Re-evaluate dropped packages list on upgrade, even if product remains unchanged (bnc#849251). - Add ppc64le architecture - Add m68k architecture - version 14.2.0 (2) ------------------------------------------------------------------- Fri Oct 25 14:21:31 CEST 2013 - ma@suse.de - Always properly initialize pool storage (bnc#846565) - version 14.1.1 (0) ------------------------------------------------------------------- Thu Oct 17 17:57:54 CEST 2013 - ma@suse.de - Add Package isCached and cachedLocation methods - fixed PluginFrame::hasKey - version 14.1.0 (0) ------------------------------------------------------------------- Thu Oct 10 01:13:48 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Oct 6 01:13:51 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Oct 3 01:14:59 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Oct 2 19:25:58 CEST 2013 - ma@suse.de - fix handling symlinks in export pathname on NFSv4 (bnc#804544) - Bump major version for Factory 13.1 is continued on SuSE-Code-13_1-Branch - version 14.0.0 (0) ------------------------------------------------------------------- Sun Sep 29 01:15:02 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Sep 22 01:14:26 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Sep 18 17:06:06 CEST 2013 - ma@suse.de - Allow multiversionSpec manipulation in ZConfig - Fix string hexdecoding - Avoid parsing gpg subkeys but still parse multiple keys - version 13.7.0 (6) ------------------------------------------------------------------- Sun Sep 15 01:14:55 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 12 01:15:29 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 5 01:13:43 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Sep 2 17:04:37 CEST 2013 - ma@suse.de - Avoid parsing gpg subkeys - Use explicit operator bool in TmpPath - Must keep legacy rpm level flag (bnc#838039) - version 13.6.0 (6) ------------------------------------------------------------------- Sun Sep 1 01:14:03 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 29 01:13:44 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Aug 27 19:10:37 CEST 2013 - ma@suse.de - remove deprecated methods - fix key expiry date parsing (bnc#828672) - Provide additional keys data in case the ASCII armored blob containes multiple keys - No rpmdb key import in readony mode (bnc#828672) - Fix rpmdb key import/export (bnc#828672) - Reduce amount of gpg calls when importing/exporting keys. - Add public accessible PublicKeyData/PublicKeyScanner classes - fix ASCII armored PublicKey parsing (bnc#828672) - fix typo (bnc#761985) - Fix multiversion update candidate to respect an installed objects arch and vendor (bnc#820444) - fix logfile truncation introduced by previous fix for (bnc#825490) - Swig can't handle move constructor - Workaround bnc#819354 by executing rpm in /. (bnc#827609) - Try to detect Arch_ppc64p7 (requires glibc-2.16: getauxval) - Fix file probing via tftp:// (bnc#803316) - Add armv7hl to armv6hl compat to be in sync with libsolv. - Support for armv6hl - version 13.5.0 (5) ------------------------------------------------------------------- Thu Aug 22 01:13:25 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 18 01:13:20 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 15 01:13:27 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 8 01:13:27 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 4 01:13:59 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 1 01:13:52 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 25 01:13:40 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 18 01:13:43 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jul 14 01:13:38 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 11 01:13:49 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Jun 21 20:24:39 CEST 2013 - ma@suse.de - Fix testcases failing if local pathnames contain umlauts - Pathname: add move constructor and fix assign - Set logfile permission upon file creation only (bnc#825490) - Add arch ppc64p7 - version 13.4.0 (4) ------------------------------------------------------------------- Tue Jun 11 11:37:48 CEST 2013 - ma@suse.de - Speedup scanning for modaliases (bnc#824110) - version 13.3.0 (2) ------------------------------------------------------------------- Sun May 26 01:13:15 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 23 01:13:13 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 16 12:22:48 CEST 2013 - ma@suse.de - Remove deprecated old stuff (aria2 support, old InstallOrder, old History parser) - version 13.2.0 (2) ------------------------------------------------------------------- Thu May 16 01:13:47 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun May 12 01:13:39 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 9 01:13:54 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 2 11:07:52 CEST 2013 - ma@suse.de - Discourage using SafeBool in favor of explicit operator bool - version 13.1.0 (1) ------------------------------------------------------------------- Mon Apr 29 10:41:46 CEST 2013 - ma@suse.de - Testsuite: Workaround boost::thread being not header only since boost-1.50 (boost ticket 7085) - Adaptions to smart_pointer changes in boost-1.53; mainly introduce explicit operator bool; constructible and comparable with nullptr_t. - Bump major version for Factory 12.x is continued on SuSE-Code-12_3-Branch - version 13.0.0 (0) ------------------------------------------------------------------- Sun Apr 28 01:14:07 CEST 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Apr 5 14:26:35 CEST 2013 - ma@suse.de - added new fuction zypp::ZYpp::provideSrcPackage - Treat opensuse-education as separate vendor (bnc#812608) - AArch64 support - version 12.11.0 (0) ------------------------------------------------------------------- Wed Mar 27 12:31:17 CET 2013 - ma@suse.de - added tftp-support (bnc#803316) - version 12.10.1 (0) ------------------------------------------------------------------- Tue Mar 26 13:06:21 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Mar 21 01:13:45 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Mar 10 01:14:01 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Mar 7 14:13:42 CET 2013 - ma@suse.de - Adapt to libsolv dataiterator fixes (returning random data in some cases) - Require and adapt to changes in libsolv-0.3.0 - version 12.10.0 (0) ------------------------------------------------------------------- Thu Mar 7 01:13:25 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Mar 3 01:15:52 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Feb 27 08:41:18 CET 2013 - ma@suse.de - Rephrase error message if 'lsof' is not installed (bnc#694427) - version 12.9.0 (0) ------------------------------------------------------------------- Fri Feb 15 12:49:18 CET 2013 - ma@suse.de - Handle dangling update script symlinks in instsys. (bnc#803751) - version 12.8.1 (0) ------------------------------------------------------------------- Thu Feb 14 01:13:28 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Feb 7 01:16:50 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Feb 4 12:35:51 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Jan 22 11:06:55 CET 2013 - ma@suse.de - make multicurl suppress progress reports for the metalink download - work around libcurl bug that sometimes gives us old values in the progress callback - version 12.8.0 (0) ------------------------------------------------------------------- Fri Jan 18 14:07:50 CET 2013 - ma@suse.de - Reduce logging - MediaMultiCurl: throw AbortRequestException if aborted by user - version 12.7.0 (0) ------------------------------------------------------------------- Sun Jan 13 01:13:23 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jan 6 01:13:17 CET 2013 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Dec 27 01:13:27 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Dec 17 13:31:15 CET 2012 - ma@suse.de - Add NamedValue<_Tp>: Simple value<>name mapping supporting aliases - Enable zypper to remove zypp locks without evaluating the query (bnc#792901) - Configure curl to "not fix the BEAST attack" (bnc#779177) - version 12.6.0 (0) ------------------------------------------------------------------- Sun Dec 16 01:13:16 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Dec 3 14:31:59 CET 2012 - ma@suse.de - HistoryLogReader: new HistoryLogData based API for parsing the new history file entries (fate#312521) The old HistoryItem based API is deprecated but will still be available for a while if you compile with -DWITH_DEPRECATED_HISTORYITEM_API. - Write userdata string to history log (fate#312521) - Add HistoryLogReader testcases - Adapt to libsolv 'medianr'-changes - version 12.5.0 (0) ------------------------------------------------------------------- Thu Nov 22 01:14:42 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Nov 18 01:13:44 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Nov 13 15:40:10 CET 2012 - ma@suse.de - Forward userdata string to commit plugins in BEGINPLUGIN (fate#312521) - Extend ZConfig to store a user defined string value (fate#312521) - Add SIGSEGV handler trying to log a stack trace - Add zypp::dumpBacktrace to dump current stack trace to a stream. - Use gettext plural handling (bnc#784666) - version 12.4.0 (0) ------------------------------------------------------------------- Sun Nov 4 01:13:21 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Oct 24 10:40:38 CEST 2012 - ma@suse.de - Add simple sysconfig::write (bnc#766598) - For installed products also filelists when trying to find the buddy (bnc#784900) - Provide information whether product license needs to be accepted. - version 12.3.0 (0) ------------------------------------------------------------------- Thu Oct 18 01:13:43 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Oct 7 01:13:41 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Oct 1 11:00:42 CEST 2012 - ma@suse.de - Enable multiversion kernel and set multiversion.kernels in /etc/zypp/zypp.conf to keep the latest, latest-1 and the running. - Fix typo (bnc#782801) - Relax evaluation of patch category tags (case insensitive) ------------------------------------------------------------------- Sun Sep 30 01:13:18 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Sep 16 01:14:34 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Sep 12 10:28:00 CEST 2012 - ma@suse.de - Add str::commonPrefix - version 12.2.0 (0) ------------------------------------------------------------------- Sun Sep 9 01:13:25 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Sep 5 11:56:54 CEST 2012 - gs@suse.de - Provide Target::reload() - version 12.1.0 (0) ------------------------------------------------------------------- Sun Aug 26 01:13:31 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 23 01:13:47 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 19 01:14:11 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 16 01:13:43 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Aug 10 12:53:47 CEST 2012 - ma@suse.de - Implement $ZYPP_LOCK_TIMEOUT: number of seconds to wait for a zypplock becoming available (bnc#772965) - Unify update-scripts with same content(md5sum) (bnc#773575) - version 12.0.1 (0) ------------------------------------------------------------------- Thu Aug 9 01:15:12 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 2 11:55:00 CEST 2012 - ma@suse.de - set $ZYPP_IS_RUNNING during commit - Bump major version for Factory 11.x is continued on SuSE-Code-12_2-Branch - version 12.0.0 (0) ------------------------------------------------------------------- Thu Aug 2 01:14:11 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Aug 1 15:32:40 CEST 2012 - ma@suse.de - Fixed typo (bnc#773467) - Erase any old repo instance from pool when (re)loading from cache - filter zero sized devices in disk usage counter(bnc#769819) - fix isSoftLocked computation - fix possibly reporting timeout as "aborted by user" (bnc#665327) - do not fork the uuidgen program, use kernel interface instead - remove obsolete hicolor-icon-theme BuildRequires - version 11.7.0 (6) ------------------------------------------------------------------- Sun Jul 29 01:13:31 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 19 01:13:43 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jul 1 01:13:31 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jun 28 01:14:27 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Jun 25 15:23:10 CEST 2012 - ma@suse.de - zypp.conf:servicesdir is ignored (bnc#765528) - allow libcurl to take proxy from environment iff proxy is not configured or disallowed (bnc#745404) - version 11.6.3 (6) ------------------------------------------------------------------- Sun Jun 24 01:14:32 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jun 14 01:13:35 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Jun 8 15:57:22 CEST 2012 - ma@suse.de - Adjust weaklock fix ------------------------------------------------------------------- Fri Jun 8 14:16:15 CEST 2012 - ma@suse.de - Fix processing of weak locks (bnc#749418, bnc#765164) - [valgrind] don't dereference if we may be past the end of the repositories. - add armv7hl workaround for Adrian - version 11.6.2 (6) ------------------------------------------------------------------- Sun Jun 3 01:14:09 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 31 10:07:37 UTC 2012 - dmacvicar@suse.com - fix an invalid read revealed by valgrind in RepositoryIterator::increment() ------------------------------------------------------------------- Sun May 20 01:13:30 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 17 01:15:25 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun May 13 01:14:15 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue May 8 13:39:22 CEST 2012 - ma@suse.de - Use ld version script to hide symbols outside zypp namespace (bnc#755324) - remove base/Deprecated.h (macros now in APIConfig.h) - Disribute Easy.h in APIConfig.h - Add APIConfig.h providing ZYPP_API and ZYPP_LOCAL macros - version 11.6.0 (6) ------------------------------------------------------------------- Fri May 4 11:18:17 CEST 2012 - ma@suse.de - build with gcc-4.7 (bnc#755324) - version 11.5.0 (5) ------------------------------------------------------------------- Wed Apr 25 18:50:20 CEST 2012 - ma@suse.de - Fix lost device info when mounting CD/DVD ------------------------------------------------------------------- Sun Apr 22 01:15:46 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Apr 19 10:19:05 CEST 2012 - ma@suse.de - Always consider (block) devices passed as url option (bnc#755815) ------------------------------------------------------------------- Thu Apr 19 01:14:57 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Apr 18 18:38:06 CEST 2012 - ma@suse.de - Fix install progress hopping back and forth - Try to create a missing destination dir before switching to tmp space (bnc#755239) ------------------------------------------------------------------- Mon Apr 16 14:52:35 CEST 2012 - ma@suse.de - ResStatus: add 'unneeded' bit (determined by solver) - Force using gcc-4.6 until it builds with 4.7 - Support multiversion definitions being read from files in /etc/zypp/multiversion.d. - Workaround doxygen SEGV and accept incomplete docs (until bnc#755402 is fixed) - Rename zypp::sat::AttrMatcher to zypp::StrMatcher (base/StrMatcher.h) - Support (source)package download by non-root user (bnc#755239) - Delay construction of ZYppGlobalLock until its actually needed (bnc#575096) - Fix buddy handling in solver results - Simplify Selectable::multiversionInstall - Don't cache defaultCandidate as it depends on solver::allowVendorChange flag (bnc#754286) - version 11.4.0 (4) ------------------------------------------------------------------- Tue Apr 10 12:11:37 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Apr 8 01:13:24 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Apr 5 01:16:21 CEST 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Mar 26 14:47:59 CEST 2012 - ma@suse.de - Cleanup orphaned media attach points (bnc#751221) - Show max support status if package is in multiple repos (bnc#735841) - Parse proxy user/pass from url (bnc#752497) - Add CMake option to disable libproxy usage and disable it on SLE. (bnc#752500) - version 11.3.0 (1) ------------------------------------------------------------------- Thu Mar 15 00:31:25 CET 2012 - ma@suse.de - Add API for patch severity (bnc#733723, FATE#312633) - version 11.2.0 (1) ------------------------------------------------------------------- Tue Mar 13 13:04:48 CET 2012 - ma@suse.de - Force libproxy into using "/etc/sysconfig/proxy" if it exists (bnc#679322) - Apply soft locks by name and not per package (bnc#749418) - version 11.1.1 (1) ------------------------------------------------------------------- Fri Feb 3 13:18:01 CET 2012 - ma@suse.de - Add Fetcher support for CHECKSUMS file (replaceing SHA1SUMS) (bnc#744302) - Build with -fvisibility-inlines-hidden - CheckAccessDeleted: avoid duplicate entries for the same PID (bnc#716972) - Correctly use user:pass directly embedded in a proxy url (bnc#740764) - new sat::Map - Libsolv (bit)Map wrapper. - always set splitprovides to true now that libsolv handles them better - version 11.1.0 (1) ------------------------------------------------------------------- Thu Feb 2 01:14:17 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jan 29 01:14:28 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Jan 22 01:13:30 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Jan 10 18:31:41 CET 2012 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Dec 23 14:51:25 CET 2011 - ma@suse.de - Adapt Repository iteration to libsolv changes. - Add sat::Pool tests - Fix Flags<> api to be more consistent and add testcase. - Set min_curl_version 7.19.4 (bnc#735284) - Doc: add some words about 'Solver - Vendor protection' - version 11.0.0 (0) ------------------------------------------------------------------- Thu Dec 1 01:13:37 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Nov 28 18:08:42 CET 2011 - ma@suse.de - Fix and optimize Pathname ctor and provide testcases (bnc#721128) - Open all file descriptors with O_CLOEXEC to avoid leaks and races - Some improvements to the services documentation - Fix RW_pointer comparison with underlying smart pointer type. - version 10.3.5 (3) ------------------------------------------------------------------- Sun Nov 27 01:13:10 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Nov 17 01:13:15 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Nov 11 13:38:42 CET 2011 - ma@suse.de - Try to find and use some CD/DVD device even if HAL/UDEV detection fails (bnc#724807) - Static initialization problem fixes (by Harald Fernengel) - version 10.3.4 (3) ------------------------------------------------------------------- Mon Nov 7 15:45:28 CET 2011 - ma@suse.de - Don't use proxy if disabled (bnc#696805) - version 10.3.3 (3) ------------------------------------------------------------------- Mon Nov 7 13:49:44 UTC 2011 - dimstar@opensuse.org - Add pkg-config BuildRequires: We fail to detect libproxy due to the missing pkg-config. Additionally, we have a .pc file ourselfes, which we do not get the provides for [bnc#696805] ------------------------------------------------------------------- Thu Nov 3 14:58:42 CET 2011 - ma@suse.de - Let RepoInfo::keepPackages properly default to FALSE (bnc#727385) - version 10.3.2 (3) ------------------------------------------------------------------- Thu Nov 3 01:13:12 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Oct 30 01:14:41 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Oct 27 01:14:10 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Oct 24 13:35:56 CEST 2011 - ma@suse.de - Explicitly include textLocale in package translation download ------------------------------------------------------------------- Mon Oct 24 09:37:31 CEST 2011 - ma@suse.de - Update libversion info (due to ABI change in 10.2.0 (bnc#725407) - version 10.3.1 (3) ------------------------------------------------------------------- Sun Oct 23 01:13:11 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Oct 21 11:47:39 CEST 2011 - ma@suse.de - Add zypp.conf option repo.refresh.locales: A list of locales for which translated package descriptions should be downloaded if available. - Explixitly set CURLOPT_PROXYAUTH - version 10.3.0 (1) ------------------------------------------------------------------- Tue Oct 18 16:45:13 CEST 2011 - ma@suse.de - Add arch armv7tnhl and armv7thl - Fix RepoVariablesReplacer to compute substitution values on demand only - PathInfo::hardlinkCopy: fix handling cross-device links - version 10.2.0 (1) ------------------------------------------------------------------- Sun Oct 16 01:13:37 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Oct 13 11:50:26 CEST 2011 - ma@suse.de - Must not differ between type nfs and nfs4 when checking the mount table (bnc#710269) - version 10.1.1 (1) ------------------------------------------------------------------- Thu Oct 13 01:13:37 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Oct 11 15:20:43 CEST 2011 - ma@suse.de - Switch to using libsolv instead of satsolver - version 10.1.0 (1) ------------------------------------------------------------------- Sun Oct 9 01:13:16 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Oct 6 01:14:00 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Sep 20 09:57:04 CEST 2011 - ma@suse.de - Bump major version for Factory; 9.x is continued on SLE-11-SP2-Branch - version 10.0.0 (0) ------------------------------------------------------------------- Tue Sep 13 10:51:53 CEST 2011 - ma@suse.de - Enhance Selectable API - version 9.11.0 (8) ------------------------------------------------------------------- Sun Sep 11 01:18:59 CEST 2011 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Sep 11 01:13:12 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 8 01:19:28 CEST 2011 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 8 01:14:08 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Sep 7 12:38:23 CEST 2011 - ma@suse.de - Explicitly require rpm. - version 9.10.2 (8) ------------------------------------------------------------------- Sun Sep 4 01:16:54 CEST 2011 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Sep 4 01:13:27 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Sep 1 01:13:36 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Aug 29 10:51:04 CEST 2011 - ma@suse.de - Extend mount entry comparison fix (bnc#710269) - version 9.10.2 (8) ------------------------------------------------------------------- Thu Aug 25 01:17:06 CEST 2011 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Aug 22 13:57:16 CEST 2011 - ma@suse.de - Update sle-zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 14 01:13:21 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Aug 7 01:16:07 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Aug 5 15:20:07 CEST 2011 - ma@suse.de - Attempt to fix smb mount entry comparison (bnc#710269) - version 9.10.1 (8) ------------------------------------------------------------------- Thu Aug 4 14:54:47 CEST 2011 - ma@suse.de - Allow to turn Resolvers upgrade mode on and off (bnc#709480) - Fix reading of integer arrays from rpm headers (bnc#709716) - version 9.10.0 (8) ------------------------------------------------------------------- Thu Aug 4 01:14:00 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jul 28 13:04:10 CEST 2011 - ma@suse.de - Evaluate CURLINFO_CONDITION_UNMET on zero sized successful transfers, if compiled against libcurl-7.19.4 or above. (bnc#692260) - version 9.9.2 (8) ------------------------------------------------------------------- Mon Jul 25 16:20:37 CEST 2011 - ma@suse.de - Always read /proc/mounts when looking for mounted media (bnc#705893) - version 9.9.1 (8) ------------------------------------------------------------------- Fri Jul 22 13:12:34 CEST 2011 - ma@suse.de - MediaUserAuth: Do not expose libcurl header files. - version 9.9.0 (8) ------------------------------------------------------------------- Mon Jul 18 11:33:25 CEST 2011 - ma@suse.de - More initialize parser structure fixes. (bnc#705181) - version 9.8.7 (8) ------------------------------------------------------------------- Fri Jul 15 15:15:01 CEST 2011 - ma@suse.de - Check for /etc/sysconfig/storage changes before solving (bnc#702365) - version 9.8.6 (8) ------------------------------------------------------------------- Fri Jul 15 13:58:53 CEST 2011 - ma@suse.de - Properly initialize parser structures (bnc#705181) - version 9.8.5 (8) ------------------------------------------------------------------- Thu Jul 7 15:53:17 CEST 2011 - ma@suse.de - Fix tests for available libcurl version. - version 9.8.4 (8) ------------------------------------------------------------------- Thu Jul 7 01:13:47 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Jul 4 10:41:42 CEST 2011 - ma@suse.de - Make fix for bnc#702576 more robust. - Enhance fix for bnc#699435. Return an error if download in advance failed to provide all packages, so zypper does not silently quit. - version 9.8.3 (8) ------------------------------------------------------------------- Thu Jun 30 01:13:43 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jun 29 12:23:24 CEST 2011 - ma@suse.de - Always compute transaction from pool (bnc#702576) - version 9.8.2 (8) ------------------------------------------------------------------- Tue Jun 28 16:04:50 CEST 2011 - ma@suse.de - Add feature provides for supported plugins. ------------------------------------------------------------------- Tue Jun 21 10:44:47 CEST 2011 - dmacvicar@suse.de - Add configuration template for automatic kernel purge (feature#312018) to zypp.conf ------------------------------------------------------------------- Tue Jun 14 13:38:00 CEST 2011 - ma@suse.de - Fix download loop to skip non-install actions. (bnc#699435) - version 9.8.1 (8) ------------------------------------------------------------------- Sun Jun 12 01:13:36 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Jun 9 09:34:51 CEST 2011 - ma@suse.de - Fix missing return value. ------------------------------------------------------------------- Wed Jun 8 12:58:54 CEST 2011 - ma@suse.de - Simplify ZYppCommitResult by using filtered Transaction::action_iterator. - version 9.8.0 (8) ------------------------------------------------------------------- Tue Jun 7 14:12:35 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Jun 7 12:42:20 CEST 2011 - ma@suse.de - Fix transaction ORDER_BY_MEDIANR. - version 9.7.0 (5) ------------------------------------------------------------------- Fri Jun 3 23:12:05 CEST 2011 - ma@suse.de - Basic commit plugins implemented. They may be used to implement pre/post commit actions like taking file system snapshots (fate#303699) - version 9.6.0 (5) ------------------------------------------------------------------- Tue May 31 17:27:45 CEST 2011 - ma@suse.de - Do commit based on sat::Transaction. - version 9.5.0 (5) ------------------------------------------------------------------- Tue May 31 12:09:17 CEST 2011 - ma@suse.de - Assert rpm database directory is created before rpmtsInitDB is called (bnc#697115) ------------------------------------------------------------------- Tue May 31 11:46:57 CEST 2011 - dheidler@suse.de - fix var definition order in PackageProvider - fix operator~ return datatype for flags (ctor is explicit) - add method interactiveFlags to Patch describing what makes it interactive - version 9.4.0 (3) ------------------------------------------------------------------- Tue May 31 10:12:12 CEST 2011 - ma@suse.de - Recommend 'lsof' (for zypper ps) (bnc#694427, bnc#684466) ------------------------------------------------------------------- Mon May 30 17:14:14 CEST 2011 - dheidler@suse.de - Switch patch interactive-check to flags - version 9.3.0 (3) ------------------------------------------------------------------- Sun May 29 01:13:42 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri May 27 17:02:05 CEST 2011 - ma@suse.de - fix specfile to handle sles translations if available ------------------------------------------------------------------- Fri May 27 09:51:13 CEST 2011 - ma@suse.de - Avoid using #elifdef directive. ------------------------------------------------------------------- Thu May 26 01:13:43 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed May 25 09:22:28 CEST 2011 - ma@suse.de - Add a fallback gnome-packagekit updater in package-manager (bnc#667504) - Backport changelog entries from SLE11-SP1 branch. Bugs mentioned here were either fixed without bnc# or do not apply to this branch. This is to make the changelog checker happy: - Set proper defaults for service repos (bnc#673943) ------------------------------------------------------------------- Tue May 24 12:43:32 CEST 2011 - dheidler@suse.de - add option ignore_reboot_flag to Patch::interactive (bnc#665853) - version 9.2.0 (2) ------------------------------------------------------------------- Mon May 23 16:12:32 CEST 2011 - dheidler@suse.de - respect patch content license when determinating interactive status - version 9.1.2 (1) ------------------------------------------------------------------- Mon May 23 12:05:10 CEST 2011 - ma@suse.de - More rpm-4.9 fixes - Disable rpm V3toV4 conversion while not working with rpm 4.9 ------------------------------------------------------------------- Sun May 22 01:14:21 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri May 20 17:11:10 CEST 2011 - ma@suse.de - Fix for rpm-4.9 - version 9.1.1 (1) ------------------------------------------------------------------- Fri May 20 13:43:38 CEST 2011 - ma@suse.de - Disable use if rpm-4.4 legacy interface (dropped in 4.9) (bnc#691089) - Fix poolquery handling repo restrictions correctly. (bnc#661976) - version 9.1.0 (1) ------------------------------------------------------------------- Wed May 18 14:10:20 CEST 2011 - dmacvicar@suse.de - Allow MediaCD to build against HAL or nothing if udev is not present ------------------------------------------------------------------- Mon May 16 14:42:09 CEST 2011 - dmacvicar@suse.de - forward port all changes to make it build in Code10 ------------------------------------------------------------------- Mon May 16 11:51:51 UTC 2011 - dmacvicar@suse.de - make -Werror=format-security optional and used only if supported ------------------------------------------------------------------- Sun May 15 01:13:47 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu May 12 01:13:54 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri May 6 13:22:35 CEST 2011 - dheidler@suse.de - delete old metadata temp directories - version 9.0.3 (0) ------------------------------------------------------------------- Wed Apr 27 17:17:00 CEST 2011 - dheidler@suse.de - fix max_concurrent_connections option in MultiCurl (bnc#596089) - version 9.0.2 (0) ------------------------------------------------------------------- Sun Apr 17 01:13:40 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Apr 12 18:49:32 CEST 2011 - dheidler@suse.de - check for permissions before writing (fixes bnc#683509) - version 9.0.1 (0) ------------------------------------------------------------------- Tue Apr 5 12:08:27 CEST 2011 - ma@suse.de - Switch ResPoolProxy to use multimap in order to allow iteration of all Selectables of all kinds. - Add upper/lower_bound iteration to MapKVIterator. - Add stream output for multimap/set. - version 9.0.0 (0) ------------------------------------------------------------------- Mon Apr 4 15:08:08 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Apr 4 15:04:47 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Apr 4 15:03:55 CEST 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Mar 10 01:13:39 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun Mar 6 01:13:41 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Feb 16 14:24:27 UTC 2011 - dmacvicar@suse.de - Do not look for $releasever 's value if there is no variable in the url: parses product file again and again - version 8.12.2 (10) ------------------------------------------------------------------- Thu Feb 10 16:01:46 CET 2011 - ma@suse.de - Remove package-manager.desktop file (bnc#329635) - version 8.12.1 (10) ------------------------------------------------------------------- Tue Jan 25 10:09:22 CET 2011 - ma@suse.de - Apply patch introducing armv7nhl:armv7hl ------------------------------------------------------------------- Tue Jan 18 12:28:19 UTC 2011 - dmacvicar@suse.de - allow for Repo Index Services to set the enabled state of repositories from the server side. - Fix priority not being set on reading service indexes - version 8.12.0 (10) ------------------------------------------------------------------- Fri Jan 14 12:45:18 CET 2011 - ma@suse.de - Add new ServicePlugin Exceptions. ------------------------------------------------------------------- Thu Jan 13 01:13:32 CET 2011 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Dec 23 14:42:02 CET 2010 - dheidler@suse.de - add method to check if there are manually configured urls - version 8.11.0 (10) ------------------------------------------------------------------- Thu Dec 23 11:31:22 CET 2010 - dheidler@suse.de - create cache directory, if it doesn't exist when saving mirrorlist - version 8.10.6 (10) ------------------------------------------------------------------- Wed Dec 22 12:38:22 CET 2010 - dheidler@suse.de - moved keepPackages code to RepoInfo::Impl - version 8.10.5 (10) ------------------------------------------------------------------- Tue Dec 21 13:29:06 CET 2010 - dheidler@suse.de - Fix caching of mirrorlist files - version 8.10.4 (10) ------------------------------------------------------------------- Thu Dec 16 19:46:00 CET 2010 - ma@suse.de - Do not export keyring if rpmdb is initialised, but target isn't (bnc#659494) - version 8.10.3 (10) ------------------------------------------------------------------- Fri Dec 10 17:17:07 CET 2010 - dheidler@suse.de - Catch RPM-Exeption when instaling the Distribution (bnc#658714) - version 8.10.2 (10) ------------------------------------------------------------------- Wed Dec 8 14:15:12 CET 2010 - dheidler@suse.de - fix retrieval of distributionVersion if target is not initialized - MultiCurl: make sure the server responds with "partial content", fixes corrupt downloads if the metalink file contains no checksums - version 8.10.1 (10) ------------------------------------------------------------------- Wed Dec 1 17:39:16 CET 2010 - dheidler@suse.de - Added ReplacerVar caching in RepoInfo - Automaticly remove empty mirrorlist-files - version 8.10.0 (10) ------------------------------------------------------------------- Tue Nov 30 17:11:32 CET 2010 - dheidler@suse.de - Added MirrorList caching - version 8.9.0 (7) ------------------------------------------------------------------- Mon Nov 29 12:31:37 CET 2010 - ma@suse.de - Icons for libzypp should go into desktop-data. (bnc#329635) - version 8.8.2 (7) ------------------------------------------------------------------- Wed Nov 24 11:55:59 CET 2010 - ma@suse.de - Properly handle FTP response 550. (bnc#645747) - version 8.8.1 (7) ------------------------------------------------------------------- Fri Nov 19 11:24:39 CET 2010 - mls@suse.de - fix access of freed memory in MultiCurl (bnc#654600) ------------------------------------------------------------------- Sun Nov 7 01:13:39 CET 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Nov 3 16:06:46 CET 2010 - dheidler@suse.de - added metalink support - version 8.8.0 (7) ------------------------------------------------------------------- Thu Oct 21 18:15:31 CEST 2010 - ma@suse.de - Feed the ProvideFilePolicy progress callback in addition to any connected media::DownloadProgressReport (bnc#545106) - version 8.7.1 (7) ------------------------------------------------------------------- Wed Oct 13 16:14:13 CEST 2010 - dheidler@suse.de - Make MetaLinkParser accept InputStreams - Make MetaLinkParser accept Pathnames insted of strings - Fix MetaLinkv4 hash parsing - Add MetaLinkParser test - version 8.7.0 (7) ------------------------------------------------------------------- Mon Oct 11 17:06:17 CEST 2010 - ma@suse.de - Use timeouts in plugin script communication. - Fix ExternalProgram to correctly remember exit status. - version 8.6.0 (5) ------------------------------------------------------------------- Sun Oct 10 01:13:40 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Oct 8 08:43:02 UTC 2010 - dmacvicar@novell.com - fix services not being linked to their file after being saved ------------------------------------------------------------------- Thu Oct 7 09:02:26 CEST 2010 - jkupec@suse.cz - Don't use aria2c for FTP (bnc #641328) ------------------------------------------------------------------- Wed Oct 6 15:39:59 UTC 2010 - dmacvicar@novell.com - implementation for url resolver plugins - version 8.5.0 (5) ------------------------------------------------------------------- Wed Oct 6 16:54:15 CEST 2010 - dheidler@suse.de - Use DownloadInHeaps as default, when there is nothing configured and when the target root is set to "/". (bnc#591476) - version 8.4.0 (4) ------------------------------------------------------------------- Tue Sep 28 17:12:51 CEST 2010 - dheidler@suse.de - fixed replacing releasever (for fedora systems) - (bnc#637470) - version 8.3.0 (0) ------------------------------------------------------------------- Fri Sep 24 13:07:25 CEST 2010 - mls@suse.de - fix metalink4 parsing [bnc#641484] ------------------------------------------------------------------- Thu Sep 23 01:13:45 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Sep 20 15:31:31 UTC 2010 - dmacvicar@novell.com - Allow per repository proxy settings like yum does. Including setting it to _none_ overriding the system proxy. Patch from Zhang, Qiang - version 8.2.1 (0) ------------------------------------------------------------------- Fri Sep 10 17:06:34 CEST 2010 - dheidler@suse.de - fixed replacing basearch (for fedora systems) - (bnc#637473) - version 8.2.0 (0) ------------------------------------------------------------------- Fri Sep 10 11:57:29 CEST 2010 - ma@suse.de - Report download failures in commit result (bnc#431854) - Fix Solvable::onSystemByUser returning true for uninstalled solvables. - version 8.1.3 (0) ------------------------------------------------------------------- Tue Aug 31 20:01:26 CEST 2010 - ma@suse.de - Fix download-only not to omit source packages (bnc#635596) - version 8.1.2 (0) ------------------------------------------------------------------- Thu Aug 26 01:13:38 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Aug 13 12:33:26 UTC 2010 - dmacvicar@novell.com - fix basearch url variable - use the right release package name on fedora ------------------------------------------------------------------- Tue Aug 10 13:18:08 CEST 2010 - ma@suse.de - MediaDISK: Use blkid to verify disk volumes. (bnc#623226) - version 8.1.1 (0) ------------------------------------------------------------------- Sun Aug 8 01:13:37 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Thu Aug 5 01:13:53 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Aug 3 16:17:04 CEST 2010 - ma@suse.de - Fix memory leaks. ------------------------------------------------------------------- Mon Aug 2 11:58:57 CEST 2010 - ma@suse.de - Enhance PoolItem interface to assist patch classification. (bnc#627316) - version 8.1.0 (0) ------------------------------------------------------------------- Tue Jul 27 15:38:00 CEST 2010 - ma@suse.de - Fix bug in PoolQuery::addDependency - Disable MediaAria and enable MultiCurl as default http/ftp backend. MultiCurl implements MetaLink and Zsync support using libcurl. In case of trouble set ZYPP_MULTICURL=0 in the envirionment to disable the new backend. - version 8.0.1 (0) ------------------------------------------------------------------- Mon Jul 26 17:05:14 CEST 2010 - ma@suse.de - Bump heads major version after 11.3 branched away. - version 8.0.0 (0) ------------------------------------------------------------------- Thu Jul 22 01:13:27 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed Jul 7 13:56:49 CEST 2010 - ma@suse.de - Add PoolQuery for name, edition AND architecture in one go. (bnc#614362) - version 7.8.0 (6) ------------------------------------------------------------------- Mon Jul 5 13:03:57 CEST 2010 - ma@suse.de - Fix requirement to /usr/bin/uuidgen (bnc#613304) ------------------------------------------------------------------- Sun Jul 4 01:13:29 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue Jun 29 17:46:13 CEST 2010 - ma@suse.de - Fix CURLOPT_MAX_RECV_SPEED_LARGE expecting a curl_off_t argument. ------------------------------------------------------------------- Tue Jun 29 10:22:06 CEST 2010 - ma@suse.de - Respect zypp.conf policy settings when solving for update. ------------------------------------------------------------------- Fri Jun 25 11:35:52 CEST 2010 - ma@suse.de - Don't bloat logfile by logging install progess values. ------------------------------------------------------------------- Thu Jun 10 01:13:49 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Mon Jun 7 17:52:50 CEST 2010 - ma@suse.de - Add missing Date constant declarations. - version 7.7.5 (6) ------------------------------------------------------------------- Mon Jun 7 11:46:58 CEST 2010 - ma@suse.de - Prevent against daemons launched in rpm %post, that do not close their filedescriptors. Original fix was accidentally reverted. (bnc#174548) - version 7.7.4 (6) ------------------------------------------------------------------- Sun Jun 6 01:13:52 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri Jun 4 17:14:17 CEST 2010 - ma@suse.de - Fix default evaluation of recommendations of installed packages (bnc#605490) - version 7.7.3 (6) ------------------------------------------------------------------- Thu Jun 3 01:14:08 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri May 21 20:00:55 CEST 2010 - ma@suse.de - Fix broken IdStringType comparison (bnc#607572) - version 7.7.2 (6) ------------------------------------------------------------------- Thu May 20 21:01:05 CEST 2010 - ma@suse.de - Fix packages provided via delta rpm being placed in the wrong package cache (bnc#607583) - version 7.7.1 (6) ------------------------------------------------------------------- Thu May 20 01:13:49 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Tue May 18 18:02:44 CEST 2010 - ma@suse.de - Fix arch detection on sprac (bug #566291) - Arch: add sparc64v and sparcv9v and armv7l - RepoManager: refresh repo if last refresh is in the future (bnc#593617) - version 7.6.1 (6) ------------------------------------------------------------------- Mon May 17 15:25:14 CEST 2010 - ma@suse.de - Fix package-manager-su to support LXDE (Andrea Florio) (bnc#582235) - Cleanup spec file (Pavol Rusnak) - version 7.6.0 (6) ------------------------------------------------------------------- Sun May 16 01:13:39 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Wed May 12 19:09:54 CEST 2010 - ma@suse.de - Add methods to evaluate gpg geys expiration dates. - Export all rpmDb keys to the zypp trusted keyring in one go. - version 7.6.0 (6) ------------------------------------------------------------------- Wed May 12 17:35:44 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sun May 9 01:13:45 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Sat May 8 01:13:43 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 ------------------------------------------------------------------- Fri May 7 01:13:55 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 (Revision: 54959) ------------------------------------------------------------------- Wed May 5 14:49:39 CEST 2010 - ma@suse.de - Update zypp-po.tar.bz2 (Revision: 54959) ------------------------------------------------------------------- Tue May 4 01:13:43 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Mon May 3 18:12:36 CEST 2010 - ma@suse.de - Improve solver.cleandepsOnRemove result by evaluating the install history to find packages installed on behalf of a user request (not auto added by the solver). - version 7.5.0 (5) ------------------------------------------------------------------- Sat May 1 01:13:43 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Fri Apr 30 01:13:46 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Thu Apr 29 17:10:29 CEST 2010 - ma@suse.de - Cleanup when deleting packages. New zypp.conf expert option solver.cleandepsOnRemove telling whether the solver should per default try to remove packages exclusively required by the ones he's asked to delete (default false). - Resolver::cleandepsOnRemove API to allow applications to change the solver option. - version 7.4.0 (4) ------------------------------------------------------------------- Thu Apr 29 01:13:40 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Wed Apr 28 16:35:04 CEST 2010 - ma@suse.de - Enable splitprovides on update. ------------------------------------------------------------------- Wed Apr 28 01:13:37 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Tue Apr 27 17:42:20 CEST 2010 - ma@suse.de - Selectable: Classify broken but locked patch as isUnwanted (bnc#577118) - version 7.3.0 (2) ------------------------------------------------------------------- Tue Apr 27 11:25:17 CEST 2010 - ma@suse.de - Use libudev to detect available cd/dvd devices (bnc#590707,fate#308980) - Fix specfile to BuildRequire libudev-devel. - version 7.2.0 (2) ------------------------------------------------------------------- Mon Apr 26 11:57:23 CEST 2010 - ma@suse.de - Support URLs and ISOs ending on 'Media1', 'Media2', etc., when rewiting the URL to access a specific media number. By now only nanmes ending on 'CD' or 'DVD' were supported. (bnc#594850) ------------------------------------------------------------------- Fri Apr 23 01:13:34 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Wed Apr 21 01:13:38 CEST 2010 - ma@suse.de - Update translations. ------------------------------------------------------------------- Tue Apr 20 16:56:59 CEST 2010 - ma@suse.de - /etc/zypp/locks: Allow to specify edition ranges with solvable:name and dependencies. - version 7.1.1 (1) ------------------------------------------------------------------- Thu Apr 15 12:49:01 CEST 2010 - ma@suse.de - Provide name of the lock holder in ZYppFactoryException. (bnc#580513) - version 7.1.0 (1) ------------------------------------------------------------------- Wed Apr 14 15:09:18 CEST 2010 - ma@suse.de - Using boost-1.42 requires -fno-strict-aliasing (bnc#595545) - Bump major version for 11.3 development. - version 7.0.0 (0) ------------------------------------------------------------------- Tue Apr 13 14:36:31 CEST 2010 - ma@suse.de - Fix parsing port from IPv6 URL (bnc#593385) ------------------------------------------------------------------- Fri Mar 26 19:23:59 CET 2010 - ma@suse.de - Propagate ZConfig::setTextLocale to pool. (bnc#588850) - version 6.31.3 (31) ------------------------------------------------------------------- Fri Mar 26 13:50:08 CET 2010 - ma@suse.de - Fix guessing package spec to match package names only. (bnc#590864) - version 6.31.2 (31) ------------------------------------------------------------------- Tue Mar 23 16:55:56 CET 2010 - ma@suse.de - Add static Target::distributionLabel to return the baseproducts shortName and summary. Mainlu used for the bootloader menu. (bnc #586303) - version 6.31.1 (31) ------------------------------------------------------------------- Thu Mar 18 17:17:02 CET 2010 - ma@suse.de - Fix broken bit values in enum VendorSupportOption (bnc#589331) - version 6.31.0 (31) ------------------------------------------------------------------- Fri Mar 12 14:46:25 CET 2010 - ma@suse.de - Fix handling of symlinked packages in package cache. (bnc #585409) - version 6.30.5 (19) ------------------------------------------------------------------- Tue Feb 23 19:05:04 CET 2010 - jkupec@suse.cz - Avoiding use of 'guest' if 'credentials' is used when moutning a CIFS share. This caused 'permission denied' error with certain server configurations (bnc #560496). ------------------------------------------------------------------- Tue Feb 23 17:31:05 CET 2010 - ma@suse.de - Check if a downloaded file actually exists even if aria2c returned 0. (bnc #564816) - version 6.30.3 (19) ------------------------------------------------------------------- Mon Feb 22 15:25:34 CET 2010 - jkupec@suse.cz - Made CURLE_PARTIAL_FILE an auto-retry error (bnc #471436) ------------------------------------------------------------------- Mon Feb 22 13:09:09 CET 2010 - ma@suse.de - Turn off cookies when retrieving services repoindex.xml (bnc #573897) - Consider pending disable requests when removing service repositories. (bnc #572634) - version 6.30.1 (19) ------------------------------------------------------------------- Sun Feb 21 14:11:49 CET 2010 - jkupec@suse.cz - RepoManager::cleanCacheDirGarbage added for removing directories which do not belong to any of known repos (bnc #467693) - version 6.30.0 (19) ------------------------------------------------------------------- Thu Feb 11 13:40:49 CET 2010 - ma@suse.de - On SLE aria2 is not required, so conflict with a too old aria2 version installed. (bnc #578052) - version 6.29.5 (19) ------------------------------------------------------------------- Wed Feb 10 12:45:21 CET 2010 - ma@suse.de - Fix package-manager script wrongly escaping UTF-8 chars in path names (bnc #571410) - version 6.29.4 (19) ------------------------------------------------------------------- Mon Feb 8 13:21:40 CET 2010 - ma@suse.de - Support an alternate SLE-SP1 translation set. - version 6.29.3 (19) ------------------------------------------------------------------- Wed Feb 3 15:57:13 CET 2010 - ma@suse.de - Remember the enabled state of removed service repositories. This way we are able to restore service repositories correctly after a subscrition expired and gets renewed. (bnc #572634) - version 6.29.2 (19) ------------------------------------------------------------------- Thu Jan 28 16:12:25 CET 2010 - jkupec@suse.cz - Abort aria2c download when the progress callback receives 'false' (bnc #545106) ------------------------------------------------------------------- Tue Jan 19 14:50:15 CET 2010 - ma@suse.de - Evaluate SolvAttr::repositoryToolVersion to prevent loading outdated solv files. (bnc #570623) - version 6.29.0 (19) ------------------------------------------------------------------- Fri Jan 15 18:15:26 CET 2010 - jkupec@suse.cz - Use regex to parse aria2c progress lines (bnc #570917) - version 6.28.1 (19) ------------------------------------------------------------------- Thu Jan 7 12:25:24 CET 2010 - jkupec@suse.cz - Set SignatureFileChecker context even if the key is not known (bnc #495977) - version 6.28.0 (19) ------------------------------------------------------------------- Thu Dec 10 17:18:34 CET 2009 - jkupec@suse.cz - RepoInfoBase::label() added for use in UI messages, plus ZConfig::repoLabelIsAlias() ------------------------------------------------------------------- Tue Dec 8 19:41:17 CET 2009 - ma@suse.de - Fix transaction building in presence of multiversion installable items. - version 6.27.1 (19) ------------------------------------------------------------------- Fri Dec 4 17:19:58 CET 2009 - ma@suse.de - Improve multiversion status handling and installation. (fate #305311) - version 6.27.0 (19) ------------------------------------------------------------------- Fri Dec 4 14:56:19 CET 2009 - jkupec@suse.cz - Don't allow an alias to start with '.' (bnc #473834) ------------------------------------------------------------------- Thu Dec 3 12:00:16 CET 2009 - ma@suse.de - PickList and status interface for handling packages which are installable in multiple versions. (fate #305311) - version 6.26.0 (19) ------------------------------------------------------------------- Wed Dec 2 13:10:43 CET 2009 - ma@suse.de - Add Selectable::highestAvailableVersionObj. Returns the highest available package version, ignoring priorities and policies. (bnc #557557) - version 6.25.0 (19) ------------------------------------------------------------------- Mon Nov 30 17:56:02 CET 2009 - ma@suse.de - Also parse tag from .prod files section. - version 6.24.3 (19) ------------------------------------------------------------------- Fri Nov 27 11:20:34 CET 2009 - ma@suse.de - Fix chroot execution of update scripts. (bnc #558813) - version 6.24.3 (19) ------------------------------------------------------------------- Thu Nov 26 16:06:52 CET 2009 - jkupec@suse.cz - Fixed parsing of download speed from aria2c (bnc #537870) ------------------------------------------------------------------- Wed Nov 25 16:28:29 CET 2009 - ma@suse.de - Add ui::Selecatble interface for picking specific package versions to install or delete if multiversion install is on. - version 6.24.0 (19) ------------------------------------------------------------------- Fri Nov 20 13:30:02 CET 2009 - ma@suse.de - Parse zypp.conf multiversion option and make the setting available in pool and resolver. - version 6.23.0 (19) ------------------------------------------------------------------- Mon Nov 16 16:27:39 CET 2009 - ma@suse.de - Specfile fixes to build on sle11-sp1. - Fix repository probing and building in presence of productdir. (bnc #553712) - version 6.22.3 (19) ------------------------------------------------------------------- Thu Nov 12 15:31:10 UTC 2009 - dmacvicar@suse.de - Forward port and document already present changes from Code11-Branch * void SEGV if trying to access data of installed packages, that were deleted behind our back (bnc #530595) * ProxyInfoSysconfig: take care variables get initialized. * Fix parsing of rpm.install.excludedocs option (bnc #518883) * Use rpm variables in specfile. (bnc #512466) * Fix to compile with -Werror=format-security * Fix packageand() in testcase generation * Don't link unneeded libraries. (bnc #490895) * Fix Patch::categoryEnum. * Adapt to changed satsolver API. (bnc #480303) * Taking ALL translations for generating GMO files (bnc #458739) * Advice users to contact NCC if access to a 'novell.com' repository is denied (bnc #464586). - version 6.22.2 (19) ------------------------------------------------------------------- Thu Nov 12 11:53:04 CET 2009 - ma@suse.de - Raised the limit of redirections from 3 to 6 (bnc #465532) - Following redirections also for https (bnc #545722). - Following https redirections requires at least libcurl4-7.19.4. (bnc #553895) - Do not report cached packages as being downloaded. (bnc #545295) - Per default do not collect and report deleted files outside bin and lib directories for 'zypper ps'. (bnc #554480) - version 6.22.1 (19) ------------------------------------------------------------------- Wed Nov 11 13:54:52 CET 2009 - ma@suse.de - CheckAccessDeleted: Per default do not collect and report deleted files that outside bin and lib directories. 'zypper ps' reporting false positive seems to confuse. (bnc #554480) ------------------------------------------------------------------- Wed Nov 11 11:45:01 CET 2009 - ma@suse.de - Following https redirections requires at least libcurl4-7.19.4. (bnc #553895) ------------------------------------------------------------------- Fri Nov 6 22:16:10 CET 2009 - ma@suse.de - dup: Process drop list only if product actually changes. (bnc #552180) - Selectable: Consider allowed arch/noarch changes when comuting candiadates. - version 6.22.0 (19) ------------------------------------------------------------------- Mon Nov 2 21:33:40 CET 2009 - ma@suse.de - Enhance interface for zypper. (bnc #551956) - version 6.21.4 (19) ------------------------------------------------------------------- Mon Nov 2 20:03:31 CET 2009 - ma@suse.de - CIFS/SMB: Support mountoption 'noguest' to prevent passing 'guest' option to mount. "cifs://server/share/path?mountoptions=noguest,ro" (bnc #547354) - version 6.21.3 (19) ------------------------------------------------------------------- Mon Nov 2 16:35:33 CET 2009 - ma@suse.de - CheckAccessDeleted: Avoid reporting false positive due to insufficient permission. ------------------------------------------------------------------- Mon Nov 2 13:59:33 CET 2009 - ma@suse.de - Don't try to access droplist of dropped products. (bnc #551697) - version 6.21.2 (19) ------------------------------------------------------------------- Fri Oct 30 12:30:48 CET 2009 - ma@suse.de - Don't try to use an empty proxy string. (bnc #551314) - MediaSMB failed to pass the --workgroup option to mount. (bnc #547354) - version 6.21.1 (19) ------------------------------------------------------------------- Fri Oct 30 11:28:05 CET 2009 - ma@suse.de - New class PoolItemBest: Find the best candidates e.g. in a PoolQuery result. ui::Selectabe enhancements. Both will aid applications to install package sets determined by query results. (bnc # 548392) - Fix upgradeRepo solution to keep obsolete packages. (bnc #550915) - Updated iso3166-1 country codes (bnc #531350) - version 6.21.0 (19) ------------------------------------------------------------------- Tue Oct 27 12:30:29 CET 2009 - ma@suse.de - Add Resolver::upgradingRepo demanded by GUI. (bnc #548551) - version 6.20.0 (19) ------------------------------------------------------------------- Thu Oct 22 15:09:57 CEST 2009 - ma@suse.de - Fixes to make libzypp-bindings compile. - version 6.19.3 (19) ------------------------------------------------------------------- Tue Oct 20 16:06:13 CEST 2009 - ma@suse.de - Credentials are passed as commandline options to aria2c, so strip any 'user@' from the URL. Otherwise aria will use an empty password for this URL and authentication will fail. (bnc #544634) - version 6.19.2 (19) ------------------------------------------------------------------- Mon Oct 19 13:39:31 CEST 2009 - ma@suse.de - Repository::setInfo: Propagate priority changes to the solver to avoid reloading the whole repo (bnc #498266). - version 6.19.1 (19) ------------------------------------------------------------------- Thu Oct 15 20:48:02 CEST 2009 - ma@suse.de - ResStatus: add isOrphaned to test whether a package is not provided by any enabled repository. Orphaned packages are usually good candidates for cleanup unless the providing repository was intentionally disabled. - version 6.19.0 (19) ------------------------------------------------------------------- Thu Oct 15 17:28:38 CEST 2009 - dmacvicar@suse.de - aria2: pass credentials in a file instead of the command line which is logged. - aria2: we get the url in the progress if there is no response from the server yet, handle that to avoid flooding the log. - version 6.18.2 (17) ------------------------------------------------------------------- Thu Oct 15 16:56:25 CEST 2009 - ma@suse.de - Performing a dist upgrade the solver may try to delete old and no longer provided (dropped) packages, even if they do not cause any dependency problem. This behaviour may be trurned off via zypp.conf option solver.upgradeRemoveDropedPackages. (bnc #539543) - New zypp.conf option solver.upgradeRemoveDropedPackages (true). - Add Product::droplist: List of dropped packages, i.e. packages no longer provided by a product. - version 6.18.1 (17) ------------------------------------------------------------------- Wed Oct 7 16:45:21 CEST 2009 - ma@suse.de - Return update messages via ZYppCommitResult. Support variable substitution in notification command. (fate #301175) - Fix evaluation of no_proxy entries (bnc #543337) - aria/curl: Fix header data in case the target is not initialized when downloading. - version 6.18.0 (17) ------------------------------------------------------------------- Thu Sep 24 17:21:45 CEST 2009 - ma@suse.de - Add zypp.conf option update.messages.notify: Command to be invoked to send update messages. (fate #301175) - version 6.17.2 (17) ------------------------------------------------------------------- Tue Sep 22 20:32:38 CEST 2009 - ma@suse.de - Add Selectable::updateCandidateObj returning the candidate for update, if there is one. The updateCandidate must not violate any active solver policy. - version 6.17.1 (17) ------------------------------------------------------------------- Fri Sep 18 17:20:37 CEST 2009 - ma@suse.de - Make sure rpmReadConfigFiles was called before using librpm (bnc #539603). - Remove dead rpm database caching code from class RpmDb. - version 6.17.0 (17) ------------------------------------------------------------------- Fri Sep 11 15:13:30 CEST 2009 - ma@km13.de - New commit.downloadMode option in zypp.conf. Allows to set a prefered download policy for commit. - version 6.16.0 (11) ------------------------------------------------------------------- Thu Sep 10 19:03:01 CEST 2009 - ma@suse.de - Support nfs4 (nfs4://... or nfs://...?type=nfs4) (fate #306451) - Added Url::schemeIsLocal, schemeIsRemote, schemeIsVolatile and schemeIsDownloading. - version 6.15.0 (11) ------------------------------------------------------------------- Wed Sep 9 15:02:18 CEST 2009 - ma@suse.de - Add Capability::guessPackageSpec; parser also supporting "name-ver-rel.arch" formats for building Capabilities(originally "name.arch=ver-rel"). - version 6.14.3 (11) ------------------------------------------------------------------- Mon Sep 7 17:31:20 CEST 2009 - ma@suse.de - Fix resolution to force installation even if dependencies are missing. (bnc #531564) - Rephrase solver resolution to point out if a package will break. (bnc #520083) ------------------------------------------------------------------- Fri Sep 4 12:19:50 CEST 2009 - ma@suse.de - Lock rpms architecture only on distupgrade of the running system. (bnc #458520) - version 6.14.2 (11) ------------------------------------------------------------------- Thu Sep 3 13:41:31 CEST 2009 - ma@suse.de - Fix PoolQuery comparison (bnc #528755) - Fix serialization and restore of predicated PoolQueries. - version 6.14.0 (11) ------------------------------------------------------------------- Mon Aug 31 15:17:01 CEST 2009 - ma@suse.de - package-manager script: Fall back to package selection if no packages are passed on the commandline. (bnc #529137) ------------------------------------------------------------------- Fri Aug 28 17:33:55 CEST 2009 - dmacvicar@suse.de - package-manager script: do not fail if kpackagekit is not installed (bnc #529510) - version 6.13.3 (11) ------------------------------------------------------------------- Wed Aug 26 15:55:22 CEST 2009 - ma@suse.de - Tune CheckAccessDeleted to focus on libraries and executables. - version 6.13.2 (11) ------------------------------------------------------------------- Thu Aug 6 18:18:21 CEST 2009 - ma@suse.de - Provide class CheckAccessDeleted and command zypp-CheckAccessDeleted to check for running processes which access meanwhile deleted files or libraries. This may be used after commit, when trying to figure out which services need to be restated. (fate #300763). - version 6.13.1 (11) ------------------------------------------------------------------- Mon Aug 3 18:46:13 CEST 2009 - ma@suse.de - New Resolver::addUpgradeRepo to perform a dist upgrade restricted to certain repositories. - version 6.13.0 (11) ------------------------------------------------------------------- Fri Jul 31 17:55:33 CEST 2009 - ma@suse.de - Remove confusing newlines in vendor change info (bnc #503859) - Removing a package lock was not counted as state change (bnc #501850) - Take solver_allowVendorChange option into account when computing the Selectables default candidate. - version 6.12.0 (11) ------------------------------------------------------------------- Wed Jul 29 13:36:19 CEST 2009 - ma@suse.de - Avoid deadlock after fork and failed exec. (bnc 493152) - No need to manually detect the location of aria2 binary. - version 6.11.4 (11) ------------------------------------------------------------------- Tue Jul 28 23:05:43 CEST 2009 - jkupec@suse.cz - Fixed parsing of download rate report (changed in aria2 1.4.0) (bnc #513944) ------------------------------------------------------------------- Mon Jul 27 16:05:43 CEST 2009 - ma@suse.de - Create LogControl on demand instead of using a static var. (bnc #525339) - version 6.11.2 (11) ------------------------------------------------------------------- Thu Jul 23 00:22:50 CEST 2009 - ma@km13.de - New misc::defaultLoadSystem: Convenience to create the ZYpp instance and load target and enabled repositories. ------------------------------------------------------------------- Wed Jul 22 14:57:32 CEST 2009 - ma@suse.de - New class InstanceId to build strings to identify/retrieve specific Solvables. - version 6.11.1 (11) ------------------------------------------------------------------- Mon Jul 20 23:57:46 CEST 2009 - ma@km13.de - Add download policies to ZYppCommitPolicy, supporting DownloadOnly and DownloadInAdvance. (fate #302159, fate #305624) - version 6.11.0 (11) ------------------------------------------------------------------- Thu Jul 16 17:05:27 CEST 2009 - dmacvicar@suse.de - add support to the package-manager script to use kpackagekit or gnome-packagekit if available, which allows to install local rpms with one click from file manager following desktop policies and fetching other dependencies if required. (fate #306526) - version 6.10.5 (10) ------------------------------------------------------------------- Thu Jul 16 16:25:24 CEST 2009 - ma@suse.de - New solver.upgradeTestcasesToKeep option in zypp.conf. It tells how many dist upgrade solver testcases should be kept on the system. Per default just the last two are kept. - version 6.10.4 (10) ------------------------------------------------------------------- Wed Jul 15 17:53:43 CEST 2009 - ma@suse.de - Don't write a solver testcase when solving for dist upgrade, but when actually committing. - version 6.10.3 (10) ------------------------------------------------------------------- Wed Jul 15 16:45:39 CEST 2009 - ma@suse.de - Add new string Match::Mode STRINGSTART and STRINGEND. ------------------------------------------------------------------- Tue Jul 15 14:38:51 CEST 2009 - jkupec@suse.cz - log redirections when cURL media backend is used (fate #305320). ------------------------------------------------------------------- Tue Jul 14 18:15:51 CEST 2009 - ma@suse.de - Support "product version" detection on systems not using /etc/product.d/baseproduct by looking for the first package providing ZConfig::distroverpkg (defaults to redhat-release). - version 6.10.2 (10) ------------------------------------------------------------------- Fri Jul 10 15:21:39 CEST 2009 - ma@suse.de - Adapt to boost_unit_test_framework-1.38. - version 6.10.1 (10) ------------------------------------------------------------------- Wed Jul 8 16:19:31 CEST 2009 - ma@suse.de - Remove obsolete UpgradeStatistics class from libzypp. ------------------------------------------------------------------- Tue Jul 7 17:45:47 CEST 2009 - ma@suse.de - Fix HistoryLog to initialize on demand. - version 6.10.0 (10) ------------------------------------------------------------------- Fri Jul 3 13:01:13 CEST 2009 - ma@suse.de - Fix parsing of rpm.install.excludedocs option (bnc #518883) ------------------------------------------------------------------- Fri Jul 3 09:20:56 CEST 2009 - ma@suse.de - When unmounting ISO images, don't mix up exceptions thrown by the loop mounted ISO and those thrown by the media containing it. (bnc #517856) ------------------------------------------------------------------- Thu Jul 2 16:42:42 CEST 2009 - ma@suse.de - Adapt to satsolvers improved dataiterator handling. - version 6.9.3 (8) ------------------------------------------------------------------- Wed Jul 1 18:05:54 CEST 2009 - ma@suse.de - Support PoolQuery for sub-structures attributes. (fate #305503) - version 6.9.2 (8) ------------------------------------------------------------------- Wed Jul 1 13:44:04 CEST 2009 - ma@suse.de - Running as non-root user use a temporary @System solvfile in case the global one is outdated and needed refresh. (bnc #517183) - version 6.9.1 (8) ------------------------------------------------------------------- Tue Jun 30 16:32:08 CEST 2009 - ma@suse.de - Enhance LookupAttr to allow direct query of attributes within sub-structures (flexarrays). ------------------------------------------------------------------- Fri Jun 26 12:06:51 CEST 2009 - ma@suse.de - Enhance PoolQueryIterator to allow detailed inspection of attribute matches. - Prefer datadir stored as repo attribute, but fallback searching in solvbales (old solv files do this). - version 6.9.0 (8) ------------------------------------------------------------------- Tue Jun 23 13:29:36 CEST 2009 - ma@suse.de - Allow building libzypp with rpm-5 (experimental) - version 6.8.3 (8) ------------------------------------------------------------------- Wed Jun 17 15:39:17 CEST 2009 - ma@suse.de - Allow building libzypp without HAL (not recommended). Without HAL CD/DVD device detection is limited to /dev/dvd and /dev/cdrom. - version 6.8.2 (8) ------------------------------------------------------------------- Fri Jun 5 21:16:45 CEST 2009 - ma@suse.de - Fix solver to use IdSting to avoid failing vendor checks. - version 6.8.1 (8) ------------------------------------------------------------------- Thu Jun 4 14:22:58 CEST 2009 - ma@suse.de - Cleanup and remove deprecated interface methods. - version 6.8.0 (8) ------------------------------------------------------------------- Fri May 29 20:12:55 CEST 2009 - ma@suse.de - Improve PoolQuery to allow queries on dependencies. (bnc #475682) - version 6.7.0 (6) ------------------------------------------------------------------- Thu May 28 12:53:02 CEST 2009 - ma@suse.de - New solver.allowVendorChange expert option in zypp.conf. - version 6.6.0 (6) ------------------------------------------------------------------ Wed May 20 14:23:07 CEST 2009 - ma@suse.de - Fix lost housekeeping data in modifyRepo (bnc #503207) ------------------------------------------------------------------- Fri May 8 16:43:47 CEST 2009 - ma@suse.de - Allow service refresh to change a repositories url (bnc #502157) ------------------------------------------------------------------- Tue May 5 13:39:08 CEST 2009 - ma@suse.de - Detect and compile with rpm 4.7 (bnc #444211) - version 6.5.2 (5) ------------------------------------------------------------------- Mon May 4 16:19:54 CEST 2009 - ma@suse.de - Improve problem report on broken systemCheck rule (bnc #475144) ------------------------------------------------------------------- Mon Apr 27 15:26:54 CEST 2009 - ma@suse.de - In update repos providing multiple release package versions for the same product, link a product to the latest version. (bnc #497696) ------------------------------------------------------------------- Mon Apr 27 14:28:07 CEST 2009 - ma@suse.de - New classes wraping satsolver datamatcher (Match and sat::AttrMatcher) - Extend LookupAttr to support matching specific string patterns. - Rewrote PoolQuery::Iterator (adapt to AttrMatcher, fixes and speedup) - version 6.5.0 (5) ------------------------------------------------------------------- Thu Apr 16 12:49:40 CEST 2009 - ma@suse.de - Soft lock packages deleted on behalf of a user request. - version 6.4.1 (2) ------------------------------------------------------------------- Tue Mar 31 15:51:32 CEST 2009 - ma@suse.de - New zypp.conf option 'download.media_preference': Hint which media to prefer when installing packages (download vs. CD). - version 6.4.0 (2) ------------------------------------------------------------------ Thu Mar 12 18:38:30 CET 2009 - ma@suse.de - Add Resolver::setSolveSrcPackages. Per default disable solving of source package dependencies. We will later allow to enable it per package. - version 6.3.0 (2) ------------------------------------------------------------------- Fri Mar 6 17:17:26 CET 2009 - dmacvicar@suse.de - aria2: show the download speed in the right unit - aria2: show the filename in progress, not the repository - aria2: don't show done twice ------------------------------------------------------------------- Thu Mar 5 14:52:44 CET 2009 - ma@suse.de - Remove a lock if the locking process is in zombie state. (bnc #481577) ------------------------------------------------------------------- Wed Mar 4 00:13:19 CET 2009 - jkupec@suse.cz - zypp.conf: fixed and enabled 'servicesdir' ------------------------------------------------------------------- Tue Mar 3 13:38:11 CET 2009 - dmacvicar@suse.de - aria2: implement speed indicators (bnc#475506) - aria2: implement progress indicators correctly (bnc#473846) - aria2: fix broken pipe when looking for aria2c which caused a fallback to curl. (bnc#480930) - aria2: implement saving and reading mirror stats data in /var/cache/zypp/aria2.stats - aria2: handle failover correctly (bnc#481115) - aria2: various improvements in error and report handling - aria2: curl: reset settings on attach to avoid duplicate headers - version 6.2.1 (2) ------------------------------------------------------------------- Tue Mar 3 12:44:24 CET 2009 - ma@suse.de - Adapt to changed satsolver API. ------------------------------------------------------------------- Fri Feb 27 16:23:36 CET 2009 - dmacvicar@suse.de - Make sure Fetcher pass optional files as non-interactive - Fixes file does not exist error when key/sig does not exist - version 6.2.0 (2) ------------------------------------------------------------------- Thu Feb 26 13:49:56 CET 2009 - ma@suse.de - Use correct default for zconfig(solver.checkSystemFile) (bnc# 475144) ------------------------------------------------------------------- Thu Feb 26 01:25:33 CET 2009 - ma@suse.de - Prevent ResStatus from overriding user locks. (bnc #475230) ------------------------------------------------------------------- Sun Feb 22 15:27:11 CET 2009 - ma@suse.de - Never refresh repositories from CD/DVD, once they are created. (bnc #476429) ------------------------------------------------------------------- Sat Feb 21 18:31:17 CET 2009 - dmacvicar@suse.de Implemented the following options with aria backend: - download.max_concurrent_connections (default 2) download.min_download_speed (default no limit) download.max_download_speed (default no limit) download.max_silent_tries (default 5) ------------------------------------------------------------------- Fri Feb 20 16:28:19 CET 2009 - dmacvicar@suse.de - MediaAria2c: allow disabling aria2 using ZYPP_ARIA2C=0. Various improvements including file existence checking Disable HEAD request if aria2c >= 1.20 Restrict max connections to 2 for now. ------------------------------------------------------------------- Wed Feb 18 15:51:38 CET 2009 - ma@suse.de - Neither lose packages with empty name, nor SEGV when processing them. (bnc #470011) ------------------------------------------------------------------- Tue Feb 17 23:17:54 CET 2009 - ma@suse.de - Compute obsoletes based on names only (not considering provides) (bnc #471023) ------------------------------------------------------------------- Tue Feb 17 12:56:57 CET 2009 - jkupec@suse.cz - Fixed FTP authentication (bnc #472879) ------------------------------------------------------------------- Wed Feb 11 13:31:03 CET 2009 - ma@suse.de - Follow IEC and use the binary prefixes (KiB,MiB,GiB) for printing Byte counts based on a power of 1024 (formerly just K,M,G). Byte counts based on a power of 1000 stay unaffected (kB,MB,GB). ------------------------------------------------------------------- Mon Feb 9 13:14:26 CET 2009 - ma@suse.de - Fix installation prompting for the wrong CD/DVD. (bnc #472892) ------------------------------------------------------------------- Tue Feb 3 18:07:38 CET 2009 - ma@suse.de - Send any output from rpm install/delete scripts via callback, so applications are able to display it. (bnc #369450) ------------------------------------------------------------------- Mon Feb 2 14:12:08 CET 2009 - ma@suse.de - Add missing translations (bnc #256289) ------------------------------------------------------------------- Wed Jan 28 14:37:28 CET 2009 - jkupec@suse.cz - HistoryLogReader added ------------------------------------------------------------------- Tue Jan 27 13:35:44 CET 2009 - ma@suse.de - Respect content-file DATDIR when downloading packages. (bnc #468612) ------------------------------------------------------------------- Tue Jan 27 13:28:54 CET 2009 - jkupec@suse.cz - Enabled CredentialManager for MediaSMB (bnc #460970). - Ignore URL's username, password, and query string in AuthData comparator in CredentialManager. ------------------------------------------------------------------- Mon Jan 26 12:41:07 CET 2009 - ma@suse.de - Let vendor checks per default differ between 'openSUSE Build Service' and 'openSUSE' (bnc #467262). ------------------------------------------------------------------- Fri Jan 23 12:34:44 CET 2009 - ma@suse.de - Fix handling of plaindir repos on mounted devices (e.g. USB) (bnc #464778) - Fix plaindir checksum computation not to to follow symlinks (bnc #464778) ------------------------------------------------------------------- Thu Jan 22 10:41:27 CET 2009 - ma@suse.de - Tell satsolver about product buddies (bnc #466565) ------------------------------------------------------------------- Fri Jan 9 17:01:10 CET 2009 - jkupec@suse.cz - handle HTTP 503 reponses as temporary errors (bnc #462545) ------------------------------------------------------------------- Thu Dec 18 22:26:18 CET 2008 - ma@suse.de - Fixed lost user request to abort during commit. (bnc #388810, bnc #450273) - revision 11954 - version 5.25.0 (23) ------------------------------------------------------------------- Thu Dec 18 13:02:27 CET 2008 - ma@suse.de - Add Package::filelist, faster and less memory consuming implementation of Package::filenames (now deprecated). - revision 11949 ------------------------------------------------------------------- Thu Dec 11 21:39:50 CET 2008 - ma@suse.de - Add str::hexencode and str::hexdecode to encode special characters in a string as %XX. - Hexdecode modalias strings in rpm dependencies because rpm does not allow comma, blank and other special chars. (bnc #456695) - revision 11927 ------------------------------------------------------------------- Thu Dec 11 17:13:06 CET 2008 - ma@suse.de - Catch and report media errors when proving packages. (bnc #457652) - revision 11926 ------------------------------------------------------------------- Wed Dec 10 16:09:08 CET 2008 - ma@suse.de - Remove obsolete zypp.conf::productsdir and deprecate ZConfig::productsPath(). - Monitor /etc/products.d to determine if @system.solv needs to be rebuilt. (bnc #457933) - revision 11923 - version 5.24.7 (23) ------------------------------------------------------------------- Mon Dec 8 15:31:18 CET 2008 - ma@suse.de - Execute patch scripts chroot to the installed system. (bnc #456795) - revision 11908 ------------------------------------------------------------------- Mon Dec 8 10:39:30 CET 2008 - schubi@suse.de - Make the solver reset function public (bnc #439373) - Revision 11904 ------------------------------------------------------------------- Sun Dec 7 20:21:09 CET 2008 - coolo@suse.de - note for coolo: do not trust bash advisory from TPM colleagues ------------------------------------------------------------------- Fri Dec 5 14:22:11 CET 2008 - ma@suse.de - Fix solvers inappropriate selection as byUSER (bnc 455965) - revision 11891 - version 5.24.6 (23) ------------------------------------------------------------------- Thu Dec 4 11:10:35 CET 2008 - coolo@suse.de - fix %post script to not warn on fresh install ------------------------------------------------------------------- Mon Dec 1 19:38:24 CET 2008 - ma@suse.de - Fix install order computation losing some installed packages pre-requirements. (bnc #439802) - revision 11845 - version 5.24.5 (23) ------------------------------------------------------------------- Fri Nov 28 16:33:56 CET 2008 - ma@suse.de - Prune soft locks to prevent installation but not update of already installed packages. - revision 11829 - version 5.24.4 (23) ------------------------------------------------------------------- Fri Nov 28 11:36:03 CET 2008 - schubi@suse.de - Taking solutions which based on user requirements/conflict "by User" solutions (bnc #442718) - revision 11825 ------------------------------------------------------------------- Fri Nov 28 00:05:17 CET 2008 - ma@suse.de - Take into account the requirements of all obsoleted packages uninstall scripts when computing the installation order. (bnc #439802) - revision 11823 - version 5.24.3 (23) ------------------------------------------------------------------- Thu Nov 27 14:45:07 CET 2008 - dmacvicar@suse.de - fix maybeUnsuported() method returning wrong result - add testcase for future coverage - don't force time based uuid for anonymous id string (bnc #449654) - RELEASE: 5.24.2 (23) ------------------------------------------------------------------- Wed Nov 26 17:18:00 CET 2008 - ma@suse.de - Call 'repo2solv -R' (recursive scan) for plaindir repos. (bnc #443350) - revision 11810 ------------------------------------------------------------------- Wed Nov 26 17:09:12 CET 2008 - dmacvicar@suse.de - SHA1SUMS.key is not imported by zypp as known key (bnc #446188) - path and url in add_on_products.xml is evaluated wrong (bnc #446170) ------------------------------------------------------------------- Mon Nov 24 17:47:35 CET 2008 - schubi@suse.de - activate locking for doUpdate (bnc #447684) - revision 11792 - RELEASE: 5.24.1 (23) ------------------------------------------------------------------- Fri Nov 21 16:56:10 CET 2008 - dmacvicar@suse.de - remove unused updaterepokey, replaced by repo product information ------------------------------------------------------------------- Fri Nov 21 15:12:52 CET 2008 - jkupec@suse.cz - fixed uninitialized value in OnMediaLocation (bnc #447010) - revision 11770 ------------------------------------------------------------------- Thu Nov 20 23:59:16 CET 2008 - ma@suse.de - Fix retrieval of deltarpm info. - revision 11764 - version 5.24.0 (23) ------------------------------------------------------------------- Thu Nov 20 22:15:28 CET 2008 - ma@suse.de - Fix retrieval of Repository attributes like timestamps, keywords and product info. - revision 11760 ------------------------------------------------------------------- Thu Nov 20 19:30:05 CET 2008 - ma@suse.de - Enhance class LookupAttr and add convenience class LookupRepoAttr to iterate those solv file attributes which are not acssociated with a solvable. E.g. product or deltarpm info. - revision 11754 ------------------------------------------------------------------- Wed Nov 19 15:49:38 CET 2008 - jkupec@suse.cz - encode user-supplied URL strings before using them in the Url object (bnc #446395, bnc #444267) - revision 11720 ------------------------------------------------------------------- Wed Nov 19 15:15:14 CET 2008 - ma@suse.de - Support loading helix files. - revision 11719 ------------------------------------------------------------------- Tue Nov 18 18:37:30 CET 2008 - ma@suse.de - Add class filesystem::Glob to find pathnames matching a pattern by using ::glob. - revision 11708 ------------------------------------------------------------------- Thu Nov 13 11:07:56 CET 2008 - schubi@suse.de - Taking care for ppc64 while distupgrade (bnc #443685) - revision 11670 ------------------------------------------------------------------- Wed Nov 12 18:53:03 CET 2008 - ma@suse.de - Add Capability ctor from Arch and Name: (Arch_i386, "name") or (Arch_i386, "name == 1.0"). - revision 11669 ------------------------------------------------------------------- Wed Nov 12 14:31:20 CET 2008 - ma@suse.de - Take care to always reset CURLOPT_TIMECONDITION to prevent incomplete downloads. (bnc #444109) - revision 11656 - version 5.23.0 (23) ------------------------------------------------------------------- Wed Nov 12 13:19:02 CET 2008 - ma@suse.de - Check for modaliases below /sys (bnc #430179) - revision 11653 ------------------------------------------------------------------- Tue Nov 11 18:36:33 CET 2008 - ma@suse.de - Avoid superfluous file copying and gpg invocation in keyring handling. - revision 11650 ------------------------------------------------------------------- Tue Nov 11 14:48:52 CET 2008 - ma@suse.de - Prevent fetcher from processing the same index file twice. (bnc #443644) - revision 11648 - version 5.22.0 (21) ------------------------------------------------------------------- Fri Nov 7 23:55:47 CET 2008 - ma@suse.de - Fix retrieval of patch contents and references attributes. (bnc #442200) - revision 11641 - version 5.21.0 (21) ------------------------------------------------------------------- Fri Nov 7 19:51:00 CET 2008 - ma@suse.de - Add CheckSum::asString. - revision 11634 ------------------------------------------------------------------- Fri Nov 7 17:55:48 CET 2008 - ma@suse.de - revision 11631 - version 5.20.0 (20) ------------------------------------------------------------------- Thu Nov 6 18:35:25 CET 2008 - dmacvicar@suse.de - re-add the flavor to the http header now using a flavor cache that is updated on every target load. Target::dstributionFlavor provides access to this cache in case you need the last used flavor without loading the target. ------------------------------------------------------------------- Thu Nov 6 16:23:03 CET 2008 - schubi@suse.de - added flag: ignorealreadyrecommended to the testcases (bnc #432136) - revsion 11539 ------------------------------------------------------------------- Thu Nov 6 09:41:48 CET 2008 - schubi@suse.de - Adding rule rpm-arch for installed rpm package in order to avoid unneeded architecture change. (bnc #441004) - revision 11585 ------------------------------------------------------------------- Tue Nov 4 13:21:35 CET 2008 - jkupec@suse.cz - handle MediaTimeoutException also in MediaSetAccess::provideFile() (bnc #439983) - revision 11568 ------------------------------------------------------------------- Mon Nov 3 15:30:53 CET 2008 - dmacvicar@suse.de - merge contributions by Jon Nelson, the patches resolve the following issues: - disable the "Pragma: nocache" header which is automatically used by curl. re-enables the use of a caching http proxy (like squid or others) and corrects (bnc #326208) - don't generate an If-Modified-Since header if we don't have a previous file to work with - don't generate a Proxy-Authenticate header if one is not called for. ------------------------------------------------------------------- Fri Oct 31 14:01:57 CET 2008 - ma@suse.de - Do not save solver locks (by APPL_HIGH). - revision 11558 ------------------------------------------------------------------- Fri Oct 31 13:53:39 CET 2008 - dmacvicar@suse.de - fetcher.setOptions( Fetcher::AutoAddIndexes ) allows for automatic signed index discovery. - enqueueDir with checksum checking s now enqueueDigestedDir ------------------------------------------------------------------- Thu Oct 30 14:24:57 CET 2008 - schubi@suse.de - solutions: keep/lock will be done by APPL_HIGH. So they will not be saved in the lockfiles - "keep obsolete" will be handled with lock by APPL_HIGH (bnc #439134) - revision 11549 ------------------------------------------------------------------- Wed Oct 29 14:14:16 CET 2008 - jkupec@suse.cz - throw a MediaTimeoutException also on http 504 (gateway timeout) (bnc #425035) - revision 11535 ------------------------------------------------------------------- Wed Oct 29 12:51:55 CET 2008 - ma@suse.de - Add 'sh4' architectures. - revision 11534 ------------------------------------------------------------------- Tue Oct 28 22:01:40 CET 2008 - dmacvicar@suse.de - don't free the header before curl_perform as curl does not copy it. (bnc#439532) ------------------------------------------------------------------- Tue Oct 28 16:47:36 CET 2008 - ma@suse.de - Add 'arm' architectures. - revision 11525 ------------------------------------------------------------------- Tue Oct 28 10:07:13 CET 2008 - schubi@suse.de - regarding "keep obsolete" in the solutions (bnc #439134) - revision 11517 ------------------------------------------------------------------- Mon Oct 27 10:51:01 CET 2008 - dmacvicar@suse.de - fix broken aria2c command line (bnc#438971) ------------------------------------------------------------------- Sun Oct 26 14:53:56 CET 2008 - coolo@suse.de - adding svn r11488 to fix compile of PackageKit ------------------------------------------------------------------- Fri Oct 24 18:12:34 CEST 2008 - ma@suse.de - Remove error prone methods from OnMediaLocation API to prevent accidental missuse. (bnc #437328) - revision 11487 - version 5.19.0 (19) ------------------------------------------------------------------- Fri Oct 24 16:07:45 CEST 2008 - ma@suse.de - Provide the /etc/products.d enties filename as Product::referenceFilename. Use it to remove orphan products. (bnc #432932) - Fix media exception handling in commit (bnc #395704) - revision 11485 - version 5.18.0 (17) ------------------------------------------------------------------- Fri Oct 24 10:29:19 CEST 2008 - schubi@suse.de - Taking "unlock" instead of setTransact(false) in the solutions (bnc #436923) - revision 11468 - version 5.17.0 (17) ------------------------------------------------------------------- Wed Oct 22 14:33:10 CEST 2008 - ma@suse.de - For retrieving a product license fall back to license.tar.gz. (bnc #372386) - revision 11447 ------------------------------------------------------------------- Wed Oct 22 14:16:33 CEST 2008 - dmacvicar@suse.de - move anonymous unique id to a private http header X-ZYpp-AnonymousUniqueId (bnc#431571 ) ------------------------------------------------------------------- Wed Oct 22 12:58:35 CEST 2008 - ma@suse.de - Adapt to satsolver-0.12 API. - Add Locale:: bestMatch to find the best match within a set of available Locales. - revision 11441 ------------------------------------------------------------------- Mon Oct 20 16:44:58 CEST 2008 - ma@suse.de - RepoInfo: Add methods to handle repository licenses. (bnc #372386) - revision 11419 ------------------------------------------------------------------- Mon Oct 20 16:39:41 CEST 2008 - ma@suse.de - Adapt to changed satsolver dataiterator API. - revision 11418 ------------------------------------------------------------------- Fri Oct 17 18:31:47 CEST 2008 - ma@suse.de - Secure download of license file on repo refresh (bnc #372386) - revision 11398 ------------------------------------------------------------------- Fri Oct 17 17:26:25 CEST 2008 - ma@suse.de - Call 'repo2solv.sh -o' instead of using output redirection. (bnc #420046) - revision 11397 ------------------------------------------------------------------- Thu Oct 16 17:57:15 CEST 2008 - jkupec@suse.cz - repository license methods added to RepoManager (bnc #372386) - revision 11377 ------------------------------------------------------------------- Thu Oct 16 16:26:01 CEST 2008 - dmacvicar@suse.de - don't take into account stat information when looking for remote SHA1SUMS (part of bnc#409927) ------------------------------------------------------------------- Wed Oct 15 18:01:48 CEST 2008 - jkupec@suse.cz - MediaSetAccess::provideOptionalFile() added - revision 11369 ------------------------------------------------------------------- Wed Oct 15 18:01:48 CEST 2008 - jkupec@suse.cz - version 5.16.1 (16) ------------------------------------------------------------------- Tue Oct 14 16:15:09 CEST 2008 - jkupec@suse.cz - don't initialize servicesTargetDistro via global ZYpp instance in RepoManagerOptions() constructor (bnc #435184) - revision 11342 ------------------------------------------------------------------- Mon Oct 13 19:12:40 CEST 2008 - jkupec@suse.cz - repository probing: check for other types of repo even on MediaException, throw only if all fail (bnc #335906) - revision 11332 ------------------------------------------------------------------- Mon Oct 13 14:16:25 CEST 2008 - ma@suse.de - Adapt to satsolver changes. - revision 11331 - version 5.16.0 (16) ------------------------------------------------------------------- Mon Oct 13 13:28:48 CEST 2008 - ma@suse.de - Fix reading delta rpm checksum from solv file. - revision 11313 ------------------------------------------------------------------- Mon Oct 13 12:12:39 CEST 2008 - ma@suse.de - Fix package-manager script to properly quote arguments. (bnc #30903) - revision 11311 ------------------------------------------------------------------- Mon Oct 13 11:03:04 CEST 2008 - schubi@suse.de - regarding orphaned resolvables - removed old distupgrade algorithm - revision 11307 ------------------------------------------------------------------- Sun Oct 12 13:55:51 CEST 2008 - jkupec@suse.cz - handle ftp response 530 (login failed) like http 403 (bnc #433537) - revision 11305 ------------------------------------------------------------------- Thu Oct 9 17:37:18 CEST 2008 - ma@suse.de - Adapt to satsolvers 'big solv data change'. - revision 11294 ------------------------------------------------------------------- Thu Oct 9 17:18:18 CEST 2008 - schubi@suse.de - Taking the right solution actions for locked resolvables (bnc #400840) - revision 11289 ------------------------------------------------------------------- Thu Oct 9 13:52:03 CEST 2008 - ma@suse.de - Add required copy-ctor and assignment operator to WhatProvides. (bnc #433087) - revision 11276 ------------------------------------------------------------------- Wed Oct 8 16:24:25 CEST 2008 - jkupec@suse.cz - detect and use unused loop device for mounting ISO images (bnc #428009) - revision 11262 - version 5.15.1 (13) ------------------------------------------------------------------- Wed Oct 8 15:39:08 CEST 2008 - jkupec@suse.cz - fixed segfault when saving the probed repo type in RepoManager::refreshMetadata() (bnc #431963) - revision 11261 ------------------------------------------------------------------- Wed Oct 8 11:33:00 CEST 2008 - dmacvicar@suse.de - improve log message (bnc#429114) ------------------------------------------------------------------- Wed Oct 8 11:15:20 CEST 2008 - lslezak@suse.cz - disk usage - ignore /proc filesystem (bnc#418783) - revision 11258 ------------------------------------------------------------------- Tue Oct 7 13:24:10 CEST 2008 - ma@suse.de - Fixed detection of loopback mounted iso-files. The mtab entry does not necessarily mention the iso-file. (bnc #432504) - revision 11252 - version 5.15.0 (13) ------------------------------------------------------------------- Thu Oct 2 19:46:13 CEST 2008 - ma@suse.de - Add zypp.conf option 'download.use_deltarpmr.always' to enable using delta rpms even if the package is available on a local source. (Axel C. Frinke) - revision 11235 - version 5.14.0 (13) ------------------------------------------------------------------- Thu Oct 2 18:50:11 CEST 2008 - ma@suse.de - Add product attribute: PRODUCTLINE. - revision 11234 ------------------------------------------------------------------- Thu Oct 2 17:18:19 CEST 2008 - ma@suse.de - Do not consider self provided requirements whan computing the installation order. - revision 11231 ------------------------------------------------------------------- Wed Oct 1 16:07:36 CEST 2008 - ma@suse.de - Rephrase missleading error message. (bnc #431229) - revision 11222 ------------------------------------------------------------------- Tue Sep 30 17:23:48 CEST 2008 - ma@suse.de - Allow computation of disk usage per solvable. - revision 11218 ------------------------------------------------------------------- Mon Sep 29 23:59:10 CEST 2008 - dmacvicar@suse.de - Merge aria2c Media handler code from Google SOC 2008 (Gerard Farras) - Only activated by making env var ZYPP_ARIA=1 ------------------------------------------------------------------- Mon Sep 29 15:56:17 CEST 2008 - jkupec@suse.cz - history: tell which package failed before logging rpm output or error message (bnc #430585) - no localization for history log comments - revision 11202 ------------------------------------------------------------------- Mon Sep 29 13:43:08 CEST 2008 - ma@suse.de - Fix zypp::WhatProvides::empty returning inverse result. - revision 11200 - version 5.13.1 (13) ------------------------------------------------------------------- Sat Sep 27 23:36:19 CEST 2008 - jkupec@suse.cz - fixed endless loop when CredentialManager returns bad password - CredentialManager now correctly updates password of existing credentials - revision 11187 ------------------------------------------------------------------- Fri Sep 26 15:37:50 CEST 2008 - ma@suse.de - Fix computation of Product::flavor. - Add Product::productLine. A vendor specific string denoting the product line. - revision 11182 - version 5.13.0 (13) ------------------------------------------------------------------- Fri Sep 26 15:25:33 CEST 2008 - jkupec@suse.cz - save user credentials after asking for them - revision 11181 ------------------------------------------------------------------- Thu Sep 25 23:19:55 CEST 2008 - jkupec@suse.cz - ZConfig::credentialsGlobal{File,Dir}() added (/etc/zypp/credentials.{cat,d}) - revision 11176 ------------------------------------------------------------------- Thu Sep 25 17:09:44 CEST 2008 - jkupec@suse.cz - Target::setInstallationLogfile() removed from zypp/Target.h - revision 11171 ------------------------------------------------------------------- Thu Sep 25 13:11:43 CEST 2008 - ma@suse.de - Remove obsolete zypp-query-pool binary. zypper provides all the information one needs. - revision 11160 ------------------------------------------------------------------- Wed Sep 24 19:11:19 CEST 2008 - jkupec@suse.cz - HistoryLog added and used to log package installs/removes and repository adds, removes, url and alias changes into history.logfile (/var/log/zypp/history) (fate #110205) - str::escape(string, char) added - revision 11150 - version 5.12.1 (12) ------------------------------------------------------------------- Tue Sep 23 14:02:08 CEST 2008 - jkupec@suse.cz - CredentialManager: look for credentials with wanted_url.startsWith(stored_url) - RepoManager: don't pass service credentials down to repos if their urls are not based on service's url. - revision 11134 ------------------------------------------------------------------- Mon Sep 22 16:27:41 CEST 2008 - ma@suse.de - Remove superfluous PRODUCT_REFERENCES attribute. - revision 11127 ------------------------------------------------------------------- Mon Sep 22 16:13:08 CEST 2008 - ma@suse.de - Add Url::hasCredentialsInAuthority test for username or password being encoded in the authority component. I.e. user:pass@host. - Handle repos to be disabled disable in service refresh. - revision 11126 ------------------------------------------------------------------- Mon Sep 22 12:10:34 CEST 2008 - jkupec@suse.cz - provided context to keyring callbacks (bnc #370223) - merged trust & import callbacks (bnc #366467) (don't worry, still allows to trust && !import) - revision 11113 ------------------------------------------------------------------- Fri Sep 19 13:17:38 CEST 2008 - ma@suse.de - Moved DefaultAcceptBits enum to class KeyRing (formerly KeyRingReort). - revision 11102 ------------------------------------------------------------------- Thu Sep 18 16:11:23 CEST 2008 - ma@suse.de - Use service alias as namespace for it's repositories aliases. - revision 11097 - version 5.11.0 (11) ------------------------------------------------------------------- Thu Sep 18 12:45:25 CEST 2008 - jkupec@suse.cz - pass service's credentials down to repos - support ?credentials=filepath in URL to specify credentials - revision 11092 ------------------------------------------------------------------- Thu Sep 18 09:57:49 CEST 2008 - ma@suse.de - Add Product::isTargetDistribution to identify the systems installed baseproduct. This should replace tests for Product::type is "base". - revision 11089 ------------------------------------------------------------------- Wed Sep 17 18:05:44 CEST 2008 - jkupec@suse.cz - save user credentials when adding repos/services with URLs containing the credentials (bnc #425462) - revision 11085 ------------------------------------------------------------------- Wed Sep 17 15:08:54 CEST 2008 - ma@suse.de - Adapt to rpms new way of quoting whitespace in pathnames.(bnc #426924) - revision 11082 ------------------------------------------------------------------- Tue Sep 16 18:41:39 CEST 2008 - ma@suse.de - Service handling fixes. Added ServiceException. - revision 11077 ------------------------------------------------------------------- Mon Sep 15 11:40:04 CEST 2008 - ma@suse.de - Fix building of transaltions. - revision 11064 ------------------------------------------------------------------- Sun Sep 14 00:10:21 CEST 2008 - jkupec@suse.cz - ServiceInfo.clearReposTo{Enable,Disable}() methods added - revision 11060 ------------------------------------------------------------------- Fri Sep 12 18:24:28 CEST 2008 - ma@suse.de - Create new Service repos in disbaled sate. - revision 11056 - version 5.10.0 (10) ------------------------------------------------------------------- Fri Sep 12 16:04:54 CEST 2008 - ma@suse.de - Make registerTarget and registerRelease abvailable for installed product. Required for registration. - revision 11043 ------------------------------------------------------------------- Fri Sep 12 12:59:50 CEST 2008 - ma@suse.de - Add url lists query to Product interface. A generic query and convenience methods to query urls for "releasenotes", "register", "updateurls", "extraurls", "optionalurls" and "smolt" (bnc #413444) - revision 11029 ------------------------------------------------------------------- Fri Sep 12 01:38:25 CEST 2008 - jkupec@suse.cz - ServiceType and ServiceInfo::type() added (contains only RIS for now), service type probing added. - Avoiding the use of 'path' for services (appending the repoindex.xml's 'path' to the baseurl of created repos) - renamed ServiceInfo::*catalog*() methods to *repo*() methods - revision 11022 ------------------------------------------------------------------- Thu Sep 11 16:01:57 CEST 2008 - dmacvicar@suse.de - add Repostiroy::updateKeys and Repository::providesUpdatesForKey(string) for repo and product matching - Provide Repository::isUpdateRepo ------------------------------------------------------------------- Thu Sep 11 14:41:28 CEST 2008 - ma@suse.de - Fix evaluation of vendor support flags. - Adapt retrieval of registration data (targetDistribution, targetDistributionRelease and targetDistributionFlavor). - revision 11013 ------------------------------------------------------------------- Wed Sep 10 18:23:52 CEST 2008 - ma@suse.de - Follow gpgcheck tag in .repo file and do no check if disabled. - revision 11010 - version 5.9.0 (8) ------------------------------------------------------------------- Wed Sep 10 17:54:20 CEST 2008 - jkupec@suse.cz - added dumpAsXMLOn(stream,string) to ServiceInfo to print services with content (repos) - revision 11004 ------------------------------------------------------------------- Wed Sep 10 17:31:41 CEST 2008 - ma@suse.de - Remove obsolete product attributes. - Store less packages in /var/lib/zypp/SoftLocks (bnc #418050) - revision 11001 ------------------------------------------------------------------- Wed Sep 10 16:40:00 CEST 2008 - ma@suse.de - Provide product::updaterepoKey: Update repository indicator string. - revision 11000 ------------------------------------------------------------------- Tue Sep 9 17:33:03 CEST 2008 - dmacvicar@suse.de - provide context about the repository (name/alias) if available when checking signatures (bnc#370223) - 5.8.0 ------------------------------------------------------------------- Tue Sep 9 13:04:11 CEST 2008 - ma@suse.de - Add ServiceInfo interface to define a set of catalogs (repository aliases) to be enabled on next refresh. - revision 10970 ------------------------------------------------------------------- Tue Sep 9 11:40:42 CEST 2008 - ma@suse.de - Fix reading of Traget::targetDistribution. - Allow to configure default answers in signature verification workflow. - revision 10968 ------------------------------------------------------------------- Mon Sep 8 17:11:02 CEST 2008 - jkupec@suse.cz - CredentialManager added to manage stored credentials - MediaCurl adapted to use CredentialManager to read credentials - revision 10958 ------------------------------------------------------------------- Fri Sep 5 11:40:05 CEST 2008 - jkupec@suse.cz - operator ==, !=, < definition moved to RepoInfoBase from the derived classes - fixed RepoInfo::dumpAsIniOn() to not print 'type' if it is unknown (bnc #407515) - {Repo,Service}Info::dumpAsXMLOn(ostream) added - RepoInfo::dumpRepoOn() deprecated in favor of dumpAsIniOn() - use shared_ptr instead of itrusive for {Repo,Service}Info - revision 10931:10942 ------------------------------------------------------------------- Thu Sep 4 16:47:07 CEST 2008 - jkupec@suse.cz - RepoInfo{,Base} setters made void - revision 10931 ------------------------------------------------------------------- Wed Sep 3 14:53:06 CEST 2008 - jkupec@suse.cz - skip repositories with non-matching target distro when reading repoindex - revision 10926 ------------------------------------------------------------------- Tue Sep 2 11:04:52 CEST 2008 - schubi@suse.de - Enabled distupgrade of the SAT solver. In order to use the old distupgrade you can set the environment variable ZYPP_NO_SAT_UPDATE. This variable will can be used until the old distupgrade mechanism will be removed from libzypp. Have a look to above changelogs. - revision 10911 - version 5.7.0 (5) ------------------------------------------------------------------- Tue Aug 19 16:36:47 CEST 2008 - dmacvicar@suse.de - add Package::maybeUnsupported to remove duplicated code in clients dealing with Package::vendorSupport ------------------------------------------------------------------- Tue Aug 19 11:04:52 CEST 2008 - schubi@suse.de - Reset transaction only if this solvable has no buddy (bnc #417799) e.g. do not reset Products cause the concerning release package could not already be installed. - revision 10883 - version 5.6.1 (5) ------------------------------------------------------------------- Mon Aug 18 17:31:02 CEST 2008 - dmacvicar@suse.de - don't report "may be outdated" for @System repo. ------------------------------------------------------------------- Fri Aug 15 20:20:07 CEST 2008 - ma@suse.de - Add Target::targetDistribution. Returns "distribution-arch" of the installed base product. Used for registration and Service refresh. (for Fate #304915) - revision 10877 - version 5.6.0 (5) ------------------------------------------------------------------- Fri Aug 15 17:42:58 CEST 2008 - ma@suse.de - Add method Product::replacedProducts to identify installed Products that would be replaced by installing a new Product. (for Fate #301997) - revision 10876 ------------------------------------------------------------------- Fri Aug 15 15:30:32 CEST 2008 - ma@suse.de - Fixes to Selectable doing staus manipulation on non-USER level. - revision 10873 ------------------------------------------------------------------- Fri Aug 15 14:23:02 CEST 2008 - ma@suse.de - Add method ZYpp::getTarget that returns the Target or a NULL pointer, if it is not yet initialized. This is to avoid try/catch blocks just to test whether the Target is initialized. (bnc #417556) - Add method Target::assertRootPrefix. Pass a pathname and get back the path prefixed with the tragets root, unless it already had that prefix. - revision 10870 ------------------------------------------------------------------- Thu Aug 14 18:44:45 CEST 2008 - schubi@suse.de - Regarding error messages for Products correctly (FATE #304502) - rev 10863 ------------------------------------------------------------------- Thu Aug 14 14:03:27 CEST 2008 - ma@suse.de - Let Selectable default to USER level. - revision 10850 - version 5.5.1 (5) ------------------------------------------------------------------- Wed Aug 13 21:01:25 CEST 2008 - ma@suse.de - Change Selectable API to support doing staus manipulation on non-USER level. - revision 10847 - version 5.5.0 (5) ------------------------------------------------------------------- Wed Aug 13 16:48:49 CEST 2008 - dmacvicar@suse.de - support sat solver API for searching files ------------------------------------------------------------------- Wed Aug 13 15:12:45 CEST 2008 - ma@suse.de - Add ResPool::reposFind to get repositories by alias. - revision 10835 ------------------------------------------------------------------- Tue Aug 12 19:37:36 CEST 2008 - ma@suse.de - Advise rpmdb2solv to parse the product database. - revision 10824 - version 5.4.0 (4) ------------------------------------------------------------------- Tue Aug 12 12:05:49 CEST 2008 - ma@suse.de - Offer a simpler, fate based status manipulation in ui::Selectable. This is easier to handle, as the ui::Status always distinguishes wheter an object is installed or not. - revision 10814 ------------------------------------------------------------------- Mon Aug 11 18:00:40 CEST 2008 - ma@suse.de - Propagate default rpm install flags from zypp.conf via ZConfig and ZYppCommitPolicy down to the installer. (FATE #302952) - revision 10813 ------------------------------------------------------------------- Mon Aug 11 16:28:07 CEST 2008 - ma@suse.de - Add base::Flags (like qt's QFlags) a type-safe way of storing OR-combinations of enum values. - revision 10811 ------------------------------------------------------------------- Fri Aug 8 17:01:00 CEST 2008 - ma@suse.de - Add static ui::Selectable::get methods as convenient ctor substitute. - revision 10806 ------------------------------------------------------------------- Fri Aug 8 15:41:17 CEST 2008 - ma@suse.de - Adapt zypp-query-pool to new product handling. - revision 10803 ------------------------------------------------------------------- Fri Aug 8 14:11:03 CEST 2008 - ma@suse.de - Don't pass epoch to 'rpm -e', it does not support it. - revision 10800 ------------------------------------------------------------------- Fri Aug 8 13:27:42 CEST 2008 - ma@suse.de - Adapt to new product handling. Products are no longer pseudo installed objects verified by the solver, but actually installed. Thus removed satisfiedProduct iterator, fixed Selctables. - Removed class ProductInfo as we keep Product. - revision 10797 ------------------------------------------------------------------- Thu Aug 7 22:00:55 CEST 2008 - dmacvicar@suse.de - implement relogin suggested support (fate#304889) ------------------------------------------------------------------- Wed Aug 6 18:21:30 CEST 2008 - ma@suse.de - Detect correct download path even if repository type is not set. (bnc #386386) - revision 10768 ------------------------------------------------------------------- Wed Aug 6 17:15:48 CEST 2008 - ma@suse.de - Cleanup, mostly by removing, unused parser code and related classes. - revision 10765 ------------------------------------------------------------------- Wed Aug 6 16:23:27 CEST 2008 - ma@suse.de - Don't let exception escape MediaSetAccess dtor (bnc #415017) - revision 10763 ------------------------------------------------------------------- Mon Aug 4 19:34:27 CEST 2008 - ma@suse.de - Add new product attributes (flavor,referencePackage). - Add PoolItem buddies, i.e. two PoolItems sharing the same status object. This is used to keep the product resolvable and the package providing the product metadata in sync. - revision 10742 ------------------------------------------------------------------- Sat Aug 2 19:26:52 CEST 2008 - jkupec@suse.cz - support an optional url attribute in repoindex.xml's - revision 10729 ------------------------------------------------------------------- Thu Jul 31 21:52:11 CEST 2008 - ma@suse.de - New class ProductInfo to provide product related metadata that might be associated with a package. This will replace the Product resolvable. - revision 10715 ------------------------------------------------------------------- Thu Jul 31 19:01:54 CEST 2008 - dmacvicar@suse.de - generate a unique anonymous unique string per target and add it to the agent string for better statistics ------------------------------------------------------------------- Thu Jul 31 19:01:14 CEST 2008 - ma@suse.de - Follow solver policy and make repository priority the highest key, when ordering packages. Then architecture, and edition last. - revision 10710 ------------------------------------------------------------------- Wed Jul 30 19:12:00 CEST 2008 - ma@suse.de - /var/lib/zypp and /var/cache/zypp should be owned by libzypp (bnc #412094) - revision 10702 ------------------------------------------------------------------- Wed Jul 30 12:47:48 CEST 2008 - jkupec@suse.cz - Service renamed to ServiceInfo - RepoInfoBase added; RepoInfo and ServiceInfo now derive from it - revision 10695 ------------------------------------------------------------------- Tue Jul 29 12:59:46 CEST 2008 - jkupec@suse.cz - fixed yum repos to work with non '/' base url post fix (bnc #341617) - revision 10662 ------------------------------------------------------------------- Mon Jul 28 18:13:24 CEST 2008 - ma@suse.de - Fixed SolvIterMixin::Selectable_iterator eating some solvables (bnc #411339) - revision 10680 ------------------------------------------------------------------- Fri Jul 25 20:12:55 CEST 2008 - ma@suse.de - Several changes to make libzypp-bindings compile using the original header files and no private copies. (bnc #391831) - revision 10668 - version 5.3.0 ------------------------------------------------------------------- Wed Jul 23 17:17:47 CEST 2008 - jkupec@suse.cz - Service::enabled() added - revision 10657 ------------------------------------------------------------------- Tue Jul 22 17:18:28 CEST 2008 - jkupec@suse.cz - Removed FRESHENS dependency type - revision 10643 ------------------------------------------------------------------- Thu Jul 17 09:49:40 CEST 2008 - schubi@suse.de - Allow parallel installation of packages which have been defined in zypp.conf (parameter "multiversion") Fate #302050 - Additional check for broken system. (defined in zypp.conv: solver.checkSystemFile) - revision 10600 ------------------------------------------------------------------- Wed Jul 16 14:39:50 CEST 2008 - ma@suse.de - Add ui::Selectable::isNeeded to indicate patch relevance (bnc #409150) - revision 10596 ------------------------------------------------------------------- Wed Jul 16 01:10:37 CEST 2008 - ma@suse.de - Remove Atom, Script, Message and other obsolete classes. - revision 10592 ------------------------------------------------------------------- Mon Jul 14 13:36:26 CEST 2008 - ma@suse.de - Also report the name of the locking process in ZYppFactoryException (bnc #280537) - revision 10572 ------------------------------------------------------------------- Mon Jul 14 11:26:30 CEST 2008 - schubi@suse.de - corrected logging of solver settings - regard locking while doUpdate (bnc #405427) - revision 10564 ------------------------------------------------------------------- Sat Jul 12 22:14:32 CEST 2008 - jkupec@suse.cz - make curl use the right transfer mode (CURLOPT_PROXY_TRANSFER_MODE) when proxy is used (bnc #306272) - revision 10559 ------------------------------------------------------------------- Sat Jul 12 11:19:56 CEST 2008 - jkupec@suse.cz - reuse existing disk mounts (applied Marius' patch) (bnc #208222) - revision 10557 ------------------------------------------------------------------- Wed Jul 9 18:13:58 CEST 2008 - ma@suse.de - Provide Package::url() if available in solv file. (bnc #402434) - A missing cookie file must not be treated as an error. Simply rebuild the cache (bnc #405867) - Add 22x22 and 24x24 icons (bnc #329635) - revision 10528 ------------------------------------------------------------------- Mon Jul 7 13:39:09 CEST 2008 - schubi@suse.de - Do not update an already updated package (bnc #400422) - revision 10504 ------------------------------------------------------------------- Fri Jul 4 17:19:24 CEST 2008 - ma@suse.de - Also check if the fingerprint matches before importing updated keys. (bnc #393160) - revision 10500 ------------------------------------------------------------------- Mon Jun 30 23:55:20 CEST 2008 - dmacvicar@suse.de - forward port add message attribute to patches. - port import newer keys if a trusted key is updated - (bnc#393160) - version 5.0.2 ------------------------------------------------------------------- Mon Jun 30 10:28:27 CEST 2008 - ma@suse.de - Fix permanent duplication of gpg keys in the rpm database. Also retrieve correct creation and expire dates. (bnc #401259) - Invoke gpg with --homdir, otherwise command fails if executed within a wrapper. (bnc #401259) - revision 10487 ------------------------------------------------------------------- Thu Jun 26 12:07:33 CEST 2008 - schubi@suse.de - version 5.0.1 - revision 10464 ------------------------------------------------------------------- Thu Jun 19 17:55:35 CEST 2008 - ma@suse.de - Handle new patch messages and scripts in commit. Provide callbacks to display the patch messages and give visual feedback on script execution. (bnc #401220) - revision 10411 ------------------------------------------------------------------- Thu Jun 19 17:35:59 CEST 2008 - ma@suse.de - Fix wrong parenthesis causing bug 399320 - version - revision ------------------------------------------------------------------- Tue Jun 10 09:52:03 CEST 2008 - jreidinger@suse.cz - improve performance of gsub - change replace_all to replaceAll (same name convency) - add tests for gsub and replaceAll - revision 10366 ------------------------------------------------------------------- Fri Jun 6 13:29:59 CEST 2008 - ma@suse.de - Handle application/x-redhat-package-manager in package-manager.desktop (bnc #391183) - revision 10361 ------------------------------------------------------------------- Thu Jun 5 18:01:15 CEST 2008 - jkupec@suse.cz - X-SuSE-ControlCenter-System category added to package-manager.desktop (bnc #302324) - revision 10353 ------------------------------------------------------------------- Wed Jun 4 14:57:13 CEST 2008 - ma@suse.de - Fix crash when requesting disk usage without a target loaded. (bnc #396755) - revision 10340 ------------------------------------------------------------------- Wed Jun 4 14:05:09 CEST 2008 - ma@suse.de - Fix memory corruption in curl media handler (bnc #396979) - revision 10338 ------------------------------------------------------------------- Tue Jun 3 20:00:00 CEST 2008 - ma@suse.de - Take care satsolver recognizes 'Capability( "srcpackage:zypper" )' as 'source package named zypper'. So these capabilities can be used together with sat::Whatprovides or in resolver requests. (bnc #369893) - revision 10335 ------------------------------------------------------------------- Tue Jun 3 15:40:37 CEST 2008 - jreidinger@suse.cz - allow aborting progress during removing packages. (bnc #389238) - revision 10331 ------------------------------------------------------------------- Mon Jun 2 15:31:36 CEST 2008 - schubi@suse.de - New option for ignoring Obsoletes. This is used for installing more than one pacakges with the same name but different versions. Often used by kernel. - r 10299 ------------------------------------------------------------------- Sun Jun 1 23:14:34 CEST 2008 - - ma@suse.de - Revert inappropriate Selectable cleanup. Fix Selectable status computation. Unmaintained packages were wrongly reported as unsinstalled. (bnc #394630) - version 5.0.0 (4.x continued in SuSE-Linux-11_0-Branch) - revision 10295 ------------------------------------------------------------------- Fri May 30 12:14:47 CEST 2008 - tgoettlicher@suse.de - fixed typo ------------------------------------------------------------------- Wed May 28 18:54:27 CEST 2008 - ma@suse.de - Reenable diskusage calculation (bnc #395051) - version 4.25.1 - revision 10273 ------------------------------------------------------------------- Wed May 28 18:50:11 CEST 2008 - jkupec@suse.cz - RepoManager::packagesPath(RepoInfo) added (bnc #394728) - revision 10271 ------------------------------------------------------------------- Wed May 28 16:26:09 CEST 2008 - jkupec@suse.cz - RepoInfo: don't overwrite flags that have already been set externally (bnc #394728) - revision 10256 ------------------------------------------------------------------- Wed May 28 15:30:24 CEST 2008 - ma@suse.de - Create missing directories when saving config files. (bnc #395026) - Fix undefined behaviour in RepoManager. - revision 10255 ------------------------------------------------------------------- Wed May 28 15:23:44 CEST 2008 - schubi@suse.de - SOLVER_ERASE_SOLVABLE_NAME: As we do not know, if this request has come from resolvePool or resolveQueue we will have to take care for both cases. (bnc#393969) - r 10252 ------------------------------------------------------------------- Tue May 27 22:35:37 CEST 2008 - coolo@suse.de - compile with RPM_OPT_FLAGS ------------------------------------------------------------------- Mon May 26 17:23:24 CEST 2008 - jkupec@suse.cz - old2new locks file converter script added to %post (jredinger) - r 10227 ------------------------------------------------------------------- Mon May 26 11:48:35 CEST 2008 - schubi@suse.de - Do not regard packages with the same name while upgrading obsoleted packages (bnc#394367) - r 10219 ------------------------------------------------------------------- Sat May 24 01:23:44 CEST 2008 - dmacvicar@suse.de - revert commit don't check for existence of keys, to avoid a non needed HEAD request. (related bnc#381280) as it creates popup error callbacks due to the 404's in the keys. Leave however the OnMediaLocation::optional() API to look for another fix strategy. ------------------------------------------------------------------- Fri May 23 15:52:20 CEST 2008 - dmacvicar@suse.de - define path for messages and scripts and document them in zypp.conf ------------------------------------------------------------------- Fri May 23 14:42:34 CEST 2008 - schubi@suse.de - Added IgnoreAlreadyRecommended flag. So recomments/suggest will be ignored for already INSTALLED packages (bnc #389694) - r 10202 ------------------------------------------------------------------- Fri May 23 10:22:47 CEST 2008 - schubi@suse.de - Packages which obsoletes and do NOT required other installed packages will be installed if no other packages obsolete the installed package too. - r 10196 ------------------------------------------------------------------- Thu May 22 02:22:29 CEST 2008 - dmacvicar@suse.de - fix filelist for installed packages (bnc#392544) - fix changelog retrieval for installed packages ------------------------------------------------------------------- Wed May 21 13:50:00 CEST 2008 - dmacvicar@suse.de - deprecate Repository::name() and use alias() to be consistent. Related to (bnc#383553) - don't check for existence of keys, to avoid a non needed HEAD request. (helps bnc#381280) - 4.25.0 ------------------------------------------------------------------- Wed May 21 11:37:23 CEST 2008 - schubi@suse.de - added onlyRequires in the testcase (bnc #389184) ------------------------------------------------------------------- Tue May 20 12:12:27 CEST 2008 - jreidinger@suse.cz - allow installation and refreshing from repository with alias that contains ' or " (bnc #392426) - r10158 ------------------------------------------------------------------- Mon May 19 21:11:41 CEST 2008 - jkupec@suse.cz - delta rpm support reenabled - r10150 ------------------------------------------------------------------- Mon May 19 18:13:19 CEST 2008 - schubi@suse.de - Resetting Delete Details in ResStatus correctly (bnc #391785) - r 10145 ------------------------------------------------------------------- Mon May 19 11:47:06 CEST 2008 - dmacvicar@suse.de - when setting status to non installed for uninstalled packages set the user transaction so they go to soft locks. (related to bnc#389739 ) ------------------------------------------------------------------- Fri May 16 16:56:04 CEST 2008 - schubi@suse.de - Added new calls : isInstalledBy (const PoolItem item); installs (const PoolItem item); - r 10125 - 4.23.0 ------------------------------------------------------------------- Fri May 16 16:49:04 CEST 2008 - jreidinger@suse.cz - don't run merge in save when toAdd/Remove queue is empty - throw when locks cannot load its file - r10124 ------------------------------------------------------------------- Fri May 16 09:59:09 CEST 2008 - jreidinger@suse.cz - throw more describing exception when repo probing failed (bnc #389690) - revision 10118 ------------------------------------------------------------------- Thu May 15 15:15:59 CEST 2008 - jreidinger@suse.cz - allow call only merge old locks and newly added/removed without saving it to file - -revision 10104 ------------------------------------------------------------------- Tue May 13 17:37:11 CEST 2008 - dmacvicar@suse.de - report non packages as keep installed if satisfied to the user interace (Selectables) - 4.21.3 ------------------------------------------------------------------- Tue May 13 15:50:28 CEST 2008 - jkupec@suse.cz - create /etc/zypp/products.d on install ------------------------------------------------------------------- Mon May 12 17:21:19 CEST 2008 - jkupec@suse.cz - /etc/zypp/products.d added to file list (bnc #385868) - revision 10049 - version 4.21.2 ------------------------------------------------------------------- Mon May 12 17:15:34 CEST 2008 - jkupec@suse.cz - call RemoveResolvableReport::problem() before finish() on error (bnc #388810) - revision 10045 ------------------------------------------------------------------- Sat May 10 21:57:29 CEST 2008 - coolo@suse.de - fix file list ------------------------------------------------------------------- Fri May 9 23:15:53 CEST 2008 - ma@suse.de - Product now retrieves all attributes from the solv file. - version 4.21.1 - revision 10031 ------------------------------------------------------------------- Fri May 9 21:28:42 CEST 2008 - ma@suse.de - Add zypp.conf option configdir (/etc/zypp) and arrange all config files and directories to follow {configdir} per default. - Fix zypp-query-pool to print satisfied products and additional products defined in {configdir}/products.d for registration. (bnc #385868) - version 4.21.0 - revision 10029 ------------------------------------------------------------------- Fri May 9 15:30:40 CEST 2008 - jreidinger@suse.cz - implement remove duplicate entries in lock file (bnc#385967) ------------------------------------------------------------------- Fri May 9 15:15:32 CEST 2008 - ma@suse.de - Speedup rpmdb2solv by reusing an existing solv file. - version 4.20.1 - revision 10012 ------------------------------------------------------------------- Thu May 8 18:13:54 CEST 2008 - ma@suse.de - Fix failed package download due to unkown repository type (bnc #386386) - revision 9995 ------------------------------------------------------------------- Thu May 8 16:33:37 CEST 2008 - ma@suse.de - Support optional root argument to RepoManagerOptions, to prefix all path names taken from ZConfig. (bnc #388265) - version 4.20.0 - revision 9993 ------------------------------------------------------------------- Thu May 8 14:21:51 CEST 2008 - schubi@suse.de - new solution action for removing requirements/conflicts (bnc #387631) - revision 9988 ------------------------------------------------------------------- Thu May 8 10:56:49 CEST 2008 - ma@suse.de - Provide enumerated patch category 'Patch::categoryEnum()' (bnc #159100) - revision 9984 ------------------------------------------------------------------- Wed May 7 13:52:24 CEST 2008 - schubi@suse.de - DistUpgrade: searching for providers -> regarding name onl - r 9977 ------------------------------------------------------------------- Tue May 6 17:35:59 CEST 2008 - dmacvicar@suse.de - add flag --registrable (-r) to query pool to avoid using system as a filter - 4.19.1 ------------------------------------------------------------------- Tue May 6 07:37:22 CEST 2008 - coolo@suse.de - return values in non-void functions ------------------------------------------------------------------- Mon May 5 14:08:20 CEST 2008 - jkupec@suse.cz - support multiple search strings in PoolQuery (ORed) - revision 9945 ------------------------------------------------------------------- Mon May 5 09:55:29 CEST 2008 - schubi@suse.de - Switch off the upgrade mode of the SAT solver cause the packages have already been evaluated by the distupgrade machanism of libzypp. (bnc #386375) - rev 9943 ------------------------------------------------------------------- Fri May 2 16:36:04 CEST 2008 - jreidinger@suse.cz - release file after copy to cache as soon as possible. (bnc #381311) - r9940 ------------------------------------------------------------------- Fri May 2 16:28:05 CEST 2008 - schubi@suse.de - Bugfix: keep states by user has been removed it the package has not been installed BUT has been recommended by another package. (bnc #385832) - rev 9938 ------------------------------------------------------------------- Fri May 2 12:19:22 CEST 2008 - jreidinger@suse.cz - add isLocal function to Url which say if scheme is local or internet. - r9932 ------------------------------------------------------------------- Fri May 2 09:36:18 CEST 2008 - jreidinger@suse.cz - cache decision for repository depend on his url. - http,ftp and smb cache packages. - revision 9929 ------------------------------------------------------------------- Thu May 1 00:50:51 CEST 2008 - ma@suse.de - Load and maintain persistent hard locks stored in /etc/zypp/locks. Locks are loaded together with the target, and changes are writen back on commit. zypp.conf option locksfile.apply can be used to turn this feature on or off. (FATE #120352) - version 4.18.0 - revision 9927 ------------------------------------------------------------------- Wed Apr 30 16:27:49 CEST 2008 - ma@suse.de - Add zypp.conf option solvfilesdir: Path where the repo solv files are created. Default value: {cachedir}/solv. - Target and repositories now save their solvfiles below {solvfilesdir} in directories named after the repositories alias. - version 4.18.0 - revision 9913 ------------------------------------------------------------------- Wed Apr 30 14:19:16 CEST 2008 - jkupec@suse.cz - fixed filesystem::expandlink(Pathname) (bnc #368477) - r9906 ------------------------------------------------------------------- Tue Apr 29 16:37:19 CEST 2008 - schubi@suse.de - cleanup in return values of doUpgrade and doUpdate - r9886 - 4.17.0 ------------------------------------------------------------------- Mon Apr 28 18:27:54 CEST 2008 - jkupec@suse.cz - check for valid pool in begin(), improve the code (bnc #384337) - r9872 - 4.16.0 ------------------------------------------------------------------- Mon Apr 28 15:40:09 CEST 2008 - mvidner@suse.cz - Updated package-manager-su from xdg-utils-1.0.2-48 (bnc#339549). ------------------------------------------------------------------- Mon Apr 28 15:25:46 CEST 2008 - schubi@suse.de - added translations ------------------------------------------------------------------- Mon Apr 28 11:15:47 CEST 2008 - jkupec@suse.cz - ostream operator<<(ostream,TriBool) added - r9833 ------------------------------------------------------------------- Fri Apr 25 16:12:12 CEST 2008 - ma@suse.de - Prevent target::unload from creating a system repo in order to unload it. (bnc 382297) - version 4.15.2 - revision 9822 ------------------------------------------------------------------- Fri Apr 25 14:15:17 CEST 2008 - ma@suse.de - Prevent deselected or deleted items from being re-selected due to recommends (aka. persistent soft locks). Unlike hard locked, those items will be automatically selected if required. The list of soft locked items is stored in /var/lib/zypp/SoftLocks. - version 4.15.1 - revision 9818 ------------------------------------------------------------------- Wed Apr 23 22:24:00 CEST 2008 - ma@suse.de - Remove obsolete AdditionalCapabilities interface from ResPool. Forward sat::Pool::RepositoryIterator. There's no more need to maintain an extra Repository list in ResPool. - revision 9806 ------------------------------------------------------------------- Wed Apr 23 21:12:56 CEST 2008 - ma@suse.de - Support dependencies requiring a specific architecture: "name[.arch] [op edition]". See class Capability for details about how to construct dependencies. (bnc #305445) - version 4.15.0 - revision 9805 ------------------------------------------------------------------- Tue Apr 22 17:39:28 CEST 2008 - dmacvicar@suse.de - patch attributes and deprecate old ones - 4.14.0 ------------------------------------------------------------------- Tue Apr 22 15:44:34 CEST 2008 - jreidinger@suse.cz - change locks api - - make more functions const - replace add/remove by selectable to add/remove by ident or name and kind - rename iterator to const_iterator to avoid confusion - revision 9781 ------------------------------------------------------------------- Tue Apr 22 13:55:14 CEST 2008 - schubi@suse.de - Do architecture changes while "dup" in the external distribution upgrade ONLY. bnc #382274 - Added "ignore" to the solutions - Added "self-conflicts" to the solution - added new solver mechanism "resolveQueue" - Bugfix broken/satisfied products - rev 9776 ------------------------------------------------------------------- Tue Apr 22 10:33:03 CEST 2008 - ma@suse.de - Added Pattern::core returning the packages required by a pattern. (see also Pattern::depends and Pattern::contents). - revision 9771 ------------------------------------------------------------------- Mon Apr 21 15:38:10 CEST 2008 - ma@suse.de - Added Target::release(), returning the targets distribution release string. - revision 9761 ------------------------------------------------------------------- Sat Apr 19 01:08:04 CEST 2008 - ma@suse.de - per default abort if package installation fails. (bnc #381203) - version 4.13.3 - revision 9725 ------------------------------------------------------------------- Fri Apr 18 15:19:36 CEST 2008 - dmacvicar@suse.de - add ZYpp and curl version to http agent string (bnc #381280) ------------------------------------------------------------------- Thu Apr 17 16:29:15 CEST 2008 - ma@suse.de - Fixed pools package index wrongly including source packages. (bnc #380283) - version 4.13.2 - revision 9683 ------------------------------------------------------------------- Wed Apr 16 15:00:19 CEST 2008 - ma@suse.de - Disable fast creation of @System.solv. It may produce wrong results e.g. after a rebuilddb. - version 4.13.1 - revision 9666 ------------------------------------------------------------------- Wed Apr 16 12:50:09 CEST 2008 - ma@suse.de - initializeTarget now takes an additional option, telling whether to rebuild an existing rpm database before using it. Default is false. (bnc #308352) - version 4.13.0 - revision 9664 ------------------------------------------------------------------- Tue Apr 15 12:57:42 CEST 2008 - jreidinger@suse.cz - save do nothing if no locks added/removed - fix bug with multiple save lock - don't save same query multiple times - improve tests - revision 9644 ------------------------------------------------------------------- Tue Apr 15 09:34:29 CEST 2008 - schubi@suse.de - added new translations - activate zypp-query-pool - Revision 9637 - 4.12.1 ------------------------------------------------------------------- Tue Apr 15 00:54:07 CEST 2008 - jkupec@suse.cz - Locks API cleaned-up, iterator added, light read() added - PoolQuery::attribute(SolvAttr) getter added - revision 9609 ------------------------------------------------------------------- Mon Apr 14 17:00:05 CEST 2008 - dmacvicar@suse.de - reenable zypp-query-pool - 4.11.1 ------------------------------------------------------------------- Mon Apr 14 12:53:09 CEST 2008 - ma@suse.de - Enable evaluation of hardware dependencies. - Enable evaluation of filesystem dependencies. - revision 9605 ------------------------------------------------------------------- Sun Apr 13 02:17:25 CEST 2008 - jkupec@suse.cz - RawMetadataRefreshPolicy: CheckIfNeededIgnoreDelay added needed for explicit refresh request - revision 9574 ------------------------------------------------------------------- Fri Apr 11 21:55:21 CEST 2008 - ma@suse.de - Install ResPoolProxy index to speedup Solvable to Selectable conversion. - version 4.11.0 - revision 9558 ------------------------------------------------------------------- Fri Apr 11 18:02:14 CEST 2008 - kkaempf@suse.de - Implement update scripts installed by packages. After every package install /var/adm/update-scripts is scanned for the first file starting with "-.-", which is then executed. - revision 9547 ------------------------------------------------------------------- Fri Apr 11 14:43:05 CEST 2008 - ma@suse.de - Fix SolvIterMixin to avioid multiple visits of the same Selectable. - Add Resolvable::poolItem() providing access to the corresponding PoolItem. API to query isRelevant/isSatisfied/isBroken was moved to PoolItem. - Add ResPool::satisfiedProductsBegin/End iterator over all products whose dependencies are satisfied. This reflects the status determined by the last solver run. (#368104) - revision 9535 ------------------------------------------------------------------- Fri Apr 11 12:07:47 CEST 2008 - jreidinger@suse.cz - switch to new locks api - revision 9524 ------------------------------------------------------------------- Wed Apr 9 21:24:54 CEST 2008 - ma@suse.de - Enable ui::Selectable lookup by Solvable/PoolItem in ResPoolProxy. - Add SolvIterMixin: Base class providing PoolItem_iterator and Selectable_iterator iterator types based on a Solvable iterator. - Enhanced WhatProvides and SolvableSet to PoolItem_iterator to offer PoolItem_iterator and Selectable_iterator. - Add Solvable::SplitIdent: Helper class that splits an identifier into kind and name. - Provide methods Pattern::contents returning a collection of packages associated with the pattern/patch. - revision 9496 ------------------------------------------------------------------- Tue Apr 8 15:50:48 CEST 2008 - jreidinger@suse.cz - add comparing to PoolQuery - revision 9466 ------------------------------------------------------------------- Tue Apr 8 13:18:30 CEST 2008 - jreidinger@suse.cz - move RepoInfo to universal RepoException. This can enable more verbose output - for frontend. (helps with bnc #377137) - revision 9452 ------------------------------------------------------------------- Tue Apr 8 10:52:30 CEST 2008 - jreidinger@suse.cz - initial implementation of new locks (FATE #120118 and #120352) - revision 9442 ------------------------------------------------------------------- Tue Apr 7 15:18:22 CEST 2008 - dmacvicar@suse.de - selectable API updates and changes - 4.10.0 ------------------------------------------------------------------- Fri Apr 4 14:01:45 CEST 2008 - jreidinger@suse.cz - add split with respect to escaped delimeters and also for quotes - revision 9373 ------------------------------------------------------------------- Thu Apr 3 12:55:50 CEST 2008 - ma@suse.de - Fixed some missing package and source package attributes. - revision 9348 ------------------------------------------------------------------- Thu Apr 3 11:59:13 CEST 2008 - ma@suse.de - Allow to store a media label in MediaSetAccess. This label is passed to a media change requests to describe which CD is requested. (bnc #330094) - Fixed some missing package and source package attributes. - revision 9347 ------------------------------------------------------------------- Wed Apr 2 13:48:52 CEST 2008 - schubi@suse.de - Moved poolItem.status().isSatisfied(),.... to poolItem.isSatisfied() - Removed establish state in ResStatus - revision 9337 - version 4.7.0 ------------------------------------------------------------------- Wed Apr 2 10:24:17 CEST 2008 - ma@suse.de - Add PoolItem::isSatisfied()/isBroken() to test whether the items requirements are met. - revision 9334 ------------------------------------------------------------------- Tue Apr 1 21:54:10 CEST 2008 - ma@suse.de - Extend sat::WhatProvides to allow to query for possible providers of a collection of capabilies. E.g. all providers of a packages requirements. - Fixed retrieval of translated texts from .solv files, provided the solv file contains them. - revision 9328 ------------------------------------------------------------------- Tue Apr 1 16:17:44 CEST 2008 - jreidinger@suse.cz - initial implementation of serialize/recovery PoolQuery (needed by FATE #120118) - revision 9325 ------------------------------------------------------------------- Wed Mar 26 16:15:24 CET 2008 - ma@suse.de - Allow prioritizing repos by adding a line 'priority=N' to the .repo file. Where N is an integer number from 1 (highest prio) to 99 (least and default). (bnc #369827, fate #302872) - version 4.6.1 - revision 9276 ------------------------------------------------------------------- Mon Mar 24 21:17:05 CET 2008 - coolo@suse.de - support plaindir again (at least the most important parts) ------------------------------------------------------------------- Fri Mar 21 13:23:13 CET 2008 - jreidinger@suse.cz - Throwing special exception MediaBadCAException in case of SSL certificate validation failure.(bnc #223512) - revision 9250 ------------------------------------------------------------------- Fri Mar 21 12:38:39 CET 2008 - jreidinger@suse.cz - add new error IO_SOFT to media request callback for temporary connection problem. (bnc #328822) - add new media exception timeout when somethink fail due to exceed timeout - mediacurl throw timeout exception when timeouted - revision 9246 ------------------------------------------------------------------- Thu Mar 20 15:00:24 CET 2008 - jreidinger@suse.cz - return more information from checking if metadata need refresh, so user can get better info. (bnc #307249) - revision 9231 ------------------------------------------------------------------- Tue Mar 18 21:59:04 CET 2008 - ma@suse.de - class sat::LocaleSupport: Convenience methods to manage support for language specific packages. - revision 9197 ------------------------------------------------------------------- Tue Mar 18 13:54:16 CET 2008 - jkupec@suse.cz - removed obsolete capability handling stuff (ma) - version 4.5.0 ------------------------------------------------------------------- Tue Mar 18 11:42:51 CET 2008 - jreidinger@suse.cz - Don't mask skip and abort exception in Fetcher - revision 9188 ------------------------------------------------------------------- Tue Mar 18 11:00:22 CET 2008 - jreidinger@suse.cz - action is correctly set in mediaRequest callback - revision 9186 ------------------------------------------------------------------- Mon Mar 17 12:33:44 CET 2008 - ma@suse.de - Fix SEGV in commit (bnc# 371137) - version 4.4.3 - revision 9174 ------------------------------------------------------------------- Fri Mar 14 17:28:39 CET 2008 - ma@suse.de - version 4.4.2 ------------------------------------------------------------------- Fri Mar 14 14:27:43 CET 2008 - dmacvicar@suse.de - look for openssl in cmake, actually we build require it - explicitely link against openssl and crypto, required to compile in all platforms/distros. ------------------------------------------------------------------- Fri Mar 14 12:07:41 CET 2008 - jreidinger@suse.cz - Save repo type during refresh if type is NONE (f.e. lazy probing). - revision 9153 ------------------------------------------------------------------- Fri Mar 14 11:34:24 CET 2008 - jreidinger@suse.cz - replace gpg escaped semicolon with real semicolon (bnc #355434) - revision 9151 ------------------------------------------------------------------- Fri Mar 14 10:17:41 CET 2008 - jreidinger@suse.cz - make strings from RpmDb and Keyring exceptions translatable - revision 9146 ------------------------------------------------------------------- Thu Mar 13 18:41:26 CET 2008 - dmacvicar@suse.de - fix retrieving keys (bnc #368099) - version 4.4.1 ------------------------------------------------------------------- Thu Mar 13 18:40:57 CET 2008 - jreidinger@suse.cz - enable frontend to rewrite add_probe settings.(bnc #309612) - Correct adding repo without type to lazy probing. - revision 9135 ------------------------------------------------------------------- Thu Mar 13 17:59:52 CET 2008 - jreidinger@suse.cz - get better message if something fail when trying run rpm (bnc #344584) - revision 9133 ------------------------------------------------------------------- Thu Mar 13 12:33:13 CET 2008 - ma@suse.de - Add ExternalProgram::execError and ExternalProgram::command to improve error reporting. - revision 9112 ------------------------------------------------------------------- Thu Mar 13 11:45:20 CET 2008 - jkupec@suse.cz - release all media before requesting another (bnc #336881) - revision 9110 ------------------------------------------------------------------- Thu Mar 13 11:32:56 CET 2008 - jkupec@suse.cz - getDetectedDevices added (fate #120298) - revision 9108 ------------------------------------------------------------------- Wed Mar 12 15:55:14 CET 2008 - jkupec@suse.cz - media backend release() methods changed to take string & instead of bool (needed for FATE #120298) - media label, detected device list and current device arguments added to the requestMedia callback - version 4.4.0 ------------------------------------------------------------------- Wed Mar 12 14:16:07 CET 2008 - coolo@suse.de - fix for bnc#369543 ------------------------------------------------------------------- Mon Mar 10 13:30:04 CET 2008 - jkupec@suse.cz - provide download rate info (average and curent) in the media::DownloadProgressReport for ftp/http (bnc #168935) - r9074 ------------------------------------------------------------------- Mon Mar 10 12:45:03 CET 2008 - jkupec@suse.cz - cleanCache(): clean also .cookie files - cleanTargetCache() added - use escaped_alias() in rawcache_path_for_repoinfo() and packagescache_path_for_repoinfo() - r9068 ------------------------------------------------------------------- Fri Mar 7 19:59:10 CET 2008 - jkupec@suse.cz - fixed location of RPMs in subdirs when parsing plaindir repo recursively (bnc #368218) - revision 9060 ------------------------------------------------------------------- Thu Mar 6 13:42:53 CET 2008 - ma@suse.de - Do not filter any installed solvables. - revision 9031 - version 4.3.2 ------------------------------------------------------------------- Wed Mar 5 11:33:26 CET 2008 - ma@suse.de - Try to rebuild broken solv files in Target::load. - revision 9015 ------------------------------------------------------------------- Tue Mar 4 18:17:41 CET 2008 - ma@suse.de - Try to rebuild broken solv files in RepoManager::loadFromCache. - Fix RepoStatus::operator&& and RepoStatus testsuite. - revision 9008 ------------------------------------------------------------------- Tue Mar 4 16:09:14 CET 2008 - schubi@suse.de - improved problem description while a vendor change - improved problem description if a requirement cannot be fulfilled. Bug #358560 - revision 9002 ------------------------------------------------------------------- Tue Mar 4 12:57:58 CET 2008 - ma@suse.de - Save and restore requested locales on target load/commit. - revision 8999 ------------------------------------------------------------------- Mon Mar 3 17:10:26 CET 2008 - schubi@suse.de - (Update) Prevent reinstallation of installed packages. - revision 8984 ------------------------------------------------------------------- Sun Mar 2 16:13:16 CET 2008 - coolo@suse.de - refresh metadata if there is no cache to unbreak compat with kiwi (that relied on "zypper sa " to create a repo that "zypper in" could work on) ------------------------------------------------------------------- Sun Mar 2 10:28:13 CET 2008 - coolo@suse.de - create cache directory before calling rpmdb2solv (in an empty chroot) - version 4.3.1 ------------------------------------------------------------------- Thu Feb 28 16:43:11 CET 2008 - jkupec@suse.cz - special exception message if server returns 403 response (forbidden) (port from SP2) - MediaException messages marked for translation ------------------------------------------------------------------- Wed Feb 27 10:31:24 CET 2008 - dmacvicar@suse.de - make sure we have target cache on target initialize - version 4.3.0 ------------------------------------------------------------------- Tue Feb 26 13:59:03 CET 2008 - lslezak@suse.cz - DiskUsageCounter.cc - ignore "vfat", "fat", "ntfs" and "ntfs-3g" file systems (#333166) - rev. 8915 ------------------------------------------------------------------- Tue Feb 26 13:26:30 CET 2008 - ma@suse.de - Fixed Capabilites iterator exposing prereq marker. - revision 8914 ------------------------------------------------------------------- Tue Feb 26 11:29:05 CET 2008 - schubi@suse.de - postinstall script fixed - version 4.2.10 ------------------------------------------------------------------- Mon Feb 25 17:06:53 CET 2008 - schubi@suse.de - Testcases regards modaliases, rpmlib, ... correctly - Revision 8904 ------------------------------------------------------------------- Mon Feb 25 13:20:26 CET 2008 - ma@suse.de - Remove obsolete sql database. (bnc#363224) - revision 8898 ------------------------------------------------------------------- Fri Feb 22 14:03:59 CET 2008 - ma@suse.de - Take care target uses --root when creating solv files (bnc #363789) - revision 8881 ------------------------------------------------------------------- Fri Feb 22 10:10:14 CET 2008 - schubi@suse.de - Unmaintained packages which does not fit to the updated system (broken dependencies) will be deleted. - revision 8867 ------------------------------------------------------------------- Fri Feb 22 07:20:35 CET 2008 - coolo@suse.de - let libzypp-devel require libsatsolver-devel ------------------------------------------------------------------- Wed Feb 20 13:47:56 CET 2008 - ma@suse.de - Cleanup unused /var/lib/zypp/cache in migrate_sources (#305160) - revision 8833 ------------------------------------------------------------------- Tue Feb 19 16:21:12 CET 2008 - jkupec@suse.cz - media: fixed DownloadProgressReport.finish() url argument in doGetFileCopy() - revision 8815 ------------------------------------------------------------------- Tue Feb 19 11:21:59 CET 2008 - dmacvicar@suse.de - hardlink when possible to optimize data transfer and space across caches. - version 4.2.8 ------------------------------------------------------------------- Tue Feb 19 08:15:07 CET 2008 - coolo@suse.de - added some locale support to sat::Solvable - version 4.2.7 ------------------------------------------------------------------- Mon Feb 18 14:15:48 CET 2008 - dmacvicar@suse.de - handle error messages better in doesFileExist too which is used during probing. (bnc #362608) ------------------------------------------------------------------- Sun Feb 17 21:44:12 CET 2008 - dmacvicar@suse.de - Fetcher::reset() should not reset cache directories. (bnc #348050) - version 4.2.6 ------------------------------------------------------------------- Fri Feb 16 15:47:00 CET 2008 - dmacvicar@suse.de - Use CURLOPT_NOBODY instead of a CURLOPT_RANGE of 1 byte for http and https, but this time set CURLOPT_HTTPGET back to 1 so it actually works. This makes Media::doesFileExist efficient for http and https. (related to bnc #348050) - version 4.2.5 ------------------------------------------------------------------- Fri Feb 15 10:52:59 CET 2008 - coolo@suse.de - using .solv files only now (fate #303018) - revision 8699 ------------------------------------------------------------------- Tue Feb 12 17:10:48 CET 2008 - coolo@suse.de - fix architectures on distupgrade ------------------------------------------------------------------- Fri Feb 8 12:50:30 CET 2008 - coolo@suse.de - fixes from trunk merged ------------------------------------------------------------------- Fri Feb 1 17:45:07 CET 2008 - jkupec@suse.cz - fixed renaming a repo to an existing one (bnc #228216) - revision 8431 ------------------------------------------------------------------- Sun Jan 27 21:35:13 CET 2008 - coolo@suse.de - fix changelog ------------------------------------------------------------------- Thu Jan 24 18:26:47 CET 2008 - jkupec@suse.cz - read .curlrc more robustly to obtain user-proxy (#330351) - revision 8368 ------------------------------------------------------------------- Fri Jan 18 12:19:09 CET 2008 - coolo@suse.de - always buildrequire openssl-devel - replacing strange utf-8 chars in changelog - revision 8317 ------------------------------------------------------------------- Thu Jan 17 15:07:52 CET 2008 - jkupec@suse.cz - Saner NFS timeo default (#350309) - revision 8314 ------------------------------------------------------------------- Thu Jan 17 12:03:10 CET 2008 - kkaempf@suse.de - support 'patterns.pat' and 'patterns.pat.gz' to read all patterns in one go. - rev 8309 ------------------------------------------------------------------- Tue Jan 15 14:56:21 CET 2008 - lslezak@suse.cz - added RpmDb::removePubkey(), call it from KeyRing::Impl::deleteKey() - remove the GPG key from RPM when it is removed from the trusted keyring - revision 8288 ------------------------------------------------------------------- Mon Jan 14 17:11:15 CET 2008 - schubi@suse.de - Textchanges - reduced logging in SAT-solver - ordering solutions - version 4.1.8 - revision 8276 ------------------------------------------------------------------- Thu Jan 10 16:50:26 CET 2008 - schubi@suse.de - Enabled SAT solver via default. (removed ZYPP_SAT_SOLVER) ZYPP_RC_SOLVER=1 will enable the old RedCapet solver - Revision 8255 - Version 4.1.7 ------------------------------------------------------------------- Wed Jan 2 18:24:34 CET 2008 - jkupec@suse.cz - Pathname zypp::filesystem::expandlink(const Pathname &) added - if the provided file is a symlink, expand it (#274651) (this probably won't work for schemes other than file/dir and cd/dvd) - revision 8179 ------------------------------------------------------------------- Tue Dec 18 12:28:22 CET 2007 - aschnell@suse.de - fixed password handling in URLs (bug #347273) - revision 8118 ------------------------------------------------------------------- Mon Dec 17 13:47:44 CET 2007 - ma@suse.de - Fixed default text locale detection not to use static variables. (#346872) - version 4.1.6 - revision 8116 ------------------------------------------------------------------- Mon Dec 10 12:46:26 CET 2007 - ma@suse.de - Log more details about zypp lock owner. (#294094) - revision 8088 ------------------------------------------------------------------- Fri Dec 7 15:47:53 CET 2007 - ma@suse.de - Remove runtime dependency for libboost_filesystem (#345773) - version 4.1.5 - revision 8061 ------------------------------------------------------------------- Fri Nov 30 14:20:34 CET 2007 - schubi@suse.de - Enable SAT solver via environment variable ZYPP_SAT_SOLVER. e.g.: ZYPP_SAT_SOLVER=1 zypper install foo - version 4.1.4 - revision 7998 ------------------------------------------------------------------- Wed Nov 28 15:12:33 CET 2007 - aschnell@suse.de - make IniParser more strict (bug #306697) ------------------------------------------------------------------- Mon Nov 26 13:19:34 CET 2007 - ma@suse.de - Fix missing packages in patch content list. (#340896) - revision 7925 ------------------------------------------------------------------- Fri Nov 16 12:46:39 CET 2007 - coolo@suse.de - fix build ------------------------------------------------------------------- Wed Nov 14 14:23:23 CET 2007 - ma@suse.de - Output date strings in UTF-8. (#339423) - revision 7807 ------------------------------------------------------------------- Tue Nov 13 13:40:03 CET 2007 - schubi@suse.de - fixes for new gcc - version 4.1.3 - r7788 ------------------------------------------------------------------- Mon Nov 5 15:22:33 CET 2007 - ma@suse.de - Don't mark failed patch scripts as installed. (#327523) - version 4.1.2 - revision 7744 ------------------------------------------------------------------- Wed Oct 31 09:19:59 CET 2007 - dmueller@suse.de - update rpmlint suppression ------------------------------------------------------------------- Fri Oct 26 15:12:24 CEST 2007 - aschnell@suse.de - fixed retrieval of epoch from rpmdb (bug #246680) ------------------------------------------------------------------- Thu Oct 25 16:29:24 CEST 2007 - aschnell@suse.de - allow non-existing "packages" file in susetags parser (bug #309235) ------------------------------------------------------------------- Fri Oct 12 15:47:37 CEST 2007 - ma@suse.de - SMBIOS DMI modalias matching added (#333152) - revision 7494 ------------------------------------------------------------------- Sat Oct 6 16:37:11 CEST 2007 - jkupec@suse.cz - do not download the same file multiple times in one attach session (#307098), r7456 - special cdrom detection code for SCSI / Virtual CDROMs on iSeries removed - should be correctly detected by HAL now (#167629, #163971), r7452 - version 4.1.1 ------------------------------------------------------------------- Fri Oct 05 10:35:47 CEST 2007 - aschnell@suse.de - filter architecture in plaindir parser (bug #330791) ------------------------------------------------------------------- Thu Oct 4 16:31:58 CEST 2007 - ma@suse.de - Throw constructing malformed checksums. (#189096) - revision 7441 ------------------------------------------------------------------- Thu Oct 4 14:22:31 CEST 2007 - mvidner@suse.cz - Renamed templates back because proper qualification makes it work too. - 4.1.0 ------------------------------------------------------------------- Thu Oct 04 11:23:19 CEST 2007 - aschnell@suse.de - only look for repositories in file ending ".repo" (bug #294779) ------------------------------------------------------------------- Wed Oct 3 13:37:57 CEST 2007 - mvidner@suse.cz - Fixed compilation errors with GCC 4.3 by adding missing includes and renaming templates: MaxBits to MaxBitsT, Mask to MaskT, Compare to CompareEd. - r7426 ------------------------------------------------------------------- Mon Oct 1 20:29:36 CEST 2007 - ma@suse.de - Incorporated patch from Michael Matz to speedup cache reading. - revision 7413 ------------------------------------------------------------------- Fri Sep 28 18:40:59 CEST 2007 - schubi@suse.de - Resolvertestcase: - log Repository info - set keep state in the testcase - handle vendor - r 4707 ------------------------------------------------------------------- Thu Sep 27 17:13:14 CEST 2007 - ma@suse.de - Fixed pattern parser SEGV on broken pattern files. (#328546) - revision 7402 ------------------------------------------------------------------- Wed Sep 26 11:08:14 CEST 2007 - schubi@suse.de - QueuItemRequire: Filter out all provider which have worser architecture, are NOT noarch and have not the same name as the requirement. The last one is needed for updating packages via patch/atoms. Bug 328081 - Revert changes of r 7340 - r 7386 ------------------------------------------------------------------- Tue Sep 25 15:51:34 CEST 2007 - ma@suse.de - Add missing '--install' parameter in desktop file. (#308640) - version 4.0.0 - revision 7369 ------------------------------------------------------------------- Tue Sep 25 11:08:13 CEST 2007 - jkupec@suse.cz - release all attached media before attempting to eject (#293428) - fixed parsing of --proxy-user parameter of .curlrc (#309139) - revision 7352 - version 3.26.0 ------------------------------------------------------------------- Mon Sep 24 16:10:32 CEST 2007 - dmacvicar@suse.de - provide a way to retrieve the metadata path. Used for installation, which incorrectly creates a repository in cache without adding it first, so metadata path is not set and therefore it is not possible to setup a media verifier on installation. Part of fix for (#293428) - 3.25.0 ------------------------------------------------------------------- Mon Sep 24 15:48:47 CEST 2007 - schubi@suse.de - If more than one resolvables provide a requirements and have different architecture take thatone with the best architecture. (Not regarding the name). Bug: Branching too much while an installation of a multi-arch-DVD - r 7340 - version 3.24.8 ------------------------------------------------------------------- Fri Sep 21 15:50:30 CEST 2007 - schubi@suse.de - Checking the queue if an item will be deleted. If yes, the requirements are not needed anymore. Bug 326384 - version 3.24.7 - r 7329 ------------------------------------------------------------------- Thu Sep 20 17:37:30 CEST 2007 - jkupec@suse.cz - don't probe the repository type upon saving if disabled (#326769) - version 3.24.6 - revision 7319 ------------------------------------------------------------------- Thu Sep 20 15:19:53 CEST 2007 - ma@suse.de - Avoid calling rpm repeatedly in case of an error. This is fault-prone, esp. if the error occurred executing the packages post-install script. - version 3.24.5 - revision 7317 ------------------------------------------------------------------- Thu Sep 20 11:00:04 CEST 2007 - ma@suse.de - If a package is deselected by user, apply this soft lock to all available versions of this package. - version 3.24.4 - revision 7316 ------------------------------------------------------------------- Wed Sep 19 17:45:12 CEST 2007 - schubi@suse.de - Update: Do not set an item to installation if there has been already set one for installation which has the same NVA. Bug 326286 - version 3.24.3 - r 7311 ------------------------------------------------------------------- Wed Sep 19 14:19:49 CEST 2007 - ma@suse.de - Enable package cache during commit. (#326249) - revision 7309 ------------------------------------------------------------------- Tue Sep 18 14:01:02 CEST 2007 - schubi@suse.de - Do not regarding requirements for packages which will be deleted in the same solver run. Bug 310618 - r 7292 - version 3.24.2 ------------------------------------------------------------------- Mon Sep 17 16:33:14 CEST 2007 - jkupec@suse.cz - don't download filelists.xml.gz (#307105) - version 3.24.1 - revision 7269 ------------------------------------------------------------------- Mon Sep 17 15:51:04 CEST 2007 - ma@suse.de - Improve estimated diskusage while there is no valid solver result. (#325617) - revision 7266 ------------------------------------------------------------------- Mon Sep 17 15:22:47 CEST 2007 - schubi@suse.de -Bugfix in vendor change of a required resolvable (Correct error message) Bug 310455 - r 7262 ------------------------------------------------------------------- Mon Sep 17 12:36:28 CEST 2007 - lslezak@suse.cz - fixed DU parsing in inst-sys (#308659) - revision 7256 ------------------------------------------------------------------- Fri Sep 14 22:57:54 CEST 2007 - ma@suse.de - Enable using patch and delta rpms. (#309124) - version 3.24.0 - revision 7253 ------------------------------------------------------------------- Thu Sep 13 17:59:55 CEST 2007 - ma@suse.de - On update do not delete unmaintained non-SuSE packages. - version 3.23.2 - revision 7239 ------------------------------------------------------------------- Thu Sep 13 13:02:39 CEST 2007 - lslezak@suse.cz - ZYppImpl::getPartitions() - don't return the current partitioning when the partitioning hasn't been set - fixes DU parsing in inst-sys (#308659) ------------------------------------------------------------------- Thu Sep 13 11:30:47 CEST 2007 - dmacvicar@suse.de - Throw specific exceptions during commit (#308511) - 3.23.1 ------------------------------------------------------------------- Wed Sep 12 18:48:00 CEST 2007 - ma@suse.de - Various disk space calculation fixes. Susetags, plaindir and rpmdb now provide more detailed disk usage information. Yum metadata don't, so we book the package size to '/'. (#308362) - version 3.23.0 - revision 7225 ------------------------------------------------------------------- Wed Sep 12 15:48:41 CEST 2007 - schubi@suse.de - Regarding keep state while recycle old valid solver results. Bug 286889 - r 7209 ------------------------------------------------------------------- Wed Sep 12 12:24:49 CEST 2007 - jkupec@suse.cz - report 100% progress on finishing RPM removal (bug #309431) - revision 7200 ------------------------------------------------------------------- Tue Sep 11 17:25:35 CEST 2007 - schubi@suse.de - Update: rename language packages --> take that package which fits to the selected language Bug 308098 - r 7919 ------------------------------------------------------------------- Tue Sep 11 16:11:20 CEST 2007 - dmacvicar@suse.de - restore deltas and patch rpms from the cache (#309124) - 3.22.8 ------------------------------------------------------------------- Tue Sep 11 14:54:44 CEST 2007 - ma@suse.de - Don't fail if a product is deleted multiple times (e.g. due to obsoletes and an explicit deleted request). (#308746) - version 3.22.7 - revision 7184 ------------------------------------------------------------------- Tue Sep 11 13:52:47 CEST 2007 - jkupec@suse.cz - SYSCONFDIR variable added for modifying /etc ------------------------------------------------------------------- Tue Sep 11 12:18:11 CEST 2007 - schubi@suse.de - uninstallable resolvable -->suggested solution: delete; Bug 308164 - r 7177 ------------------------------------------------------------------- Mon Sep 10 16:19:05 CEST 2007 - schubi@suse.de - new translations added - r 7166 - version 3.22.6 ------------------------------------------------------------------- Mon Sep 10 15:50:49 CEST 2007 - lslezak@suse.cz - fixed disk usage counting of updated packages (#308362) ------------------------------------------------------------------- Mon Sep 10 14:17:29 CEST 2007 - schubi@suse.de - Splitting packages: Take the package with the best architecture,edition ONLY; Bug 308591 - r 7160 ------------------------------------------------------------------- Mon Sep 10 10:55:45 CEST 2007 - lslezak@suse.cz - properly report fallback disk usage size (in kB instead of bytes) when disk usage is not known (YUM repos) (#308475) ------------------------------------------------------------------- Fri Sep 7 13:27:26 CEST 2007 - ma@suse.de - Install a sample /etc/zypp.conf. (#306615) - Fixed missing soversion symlink in package. - version 3.22.5 - revision 7150 ------------------------------------------------------------------- Fri Sep 7 13:03:48 CEST 2007 - schubi@suse.de - RequirementIsMet: return true only if ALL Atoms are NOT incomplete; Bug 308252 - r 7143 ------------------------------------------------------------------- Thu Sep 6 18:22:36 CEST 2007 - schubi@suse.de - Error: Select two candidate with the same name while update. Solution: If there is a candidate which is already selected for installation --> take thatone #308082 - r 7132 ------------------------------------------------------------------- Thu Sep 6 14:11:58 CEST 2007 - ma@suse.de - Work arround installed patterns providing an empty vendor string. (#307743) - Let the solver treat vendor suse and opensuse as equivalent. - version 3.22.4 ------------------------------------------------------------------- Thu Sep 6 12:33:27 CEST 2007 - schubi@suse.de - Checking item before evaluating the concerning vendor. bug #307941 - r 7119 ------------------------------------------------------------------- Wed Sep 6 02:24:37 CEST 2007 - dmacvicar@suse.de - Fix for bug #307163 - empty package descriptions a.k.a shared tag not 100% implemented - r 7117 - version 3.22.3 ------------------------------------------------------------------- Wed Sep 5 17:52:37 CEST 2007 - schubi@suse.de - logging "reverse" NEEDED_BY in the detail description of solver problems. - improved error message if a requiremnt is not fulfilled Bug 307743 - Add "ignore" option to the solution if a requirement is not fulfilled Bug 304276 - revision 7113 ------------------------------------------------------------------- Wed Sep 5 14:33:02 CEST 2007 - jkupec@suse.cz - fixed the order of operands of susetags local metadata status computation which caused the YaST repositories to always get refreshed (part of bug #304310) - revision 7107 - version 3.22.2 ------------------------------------------------------------------- Tue Sep 4 12:09:10 CEST 2007 - schubi@suse.de - comparing vendor with VendorAttr::equivalent - revision 7103 ------------------------------------------------------------------- Mon Sep 3 18:43:51 CEST 2007 - schwab@suse.de - Use $RPM_OPT_FLAGS. ------------------------------------------------------------------- Mon Sep 3 17:14:02 CEST 2007 - ma@suse.de - Reset transact bits when switching status from "update" to "protected" (#246976) - version 3.22.1 - revision 7094 ------------------------------------------------------------------- Mon Sep 3 13:56:42 CEST 2007 - schubi@suse.de - new translations added - rev 7083 ------------------------------------------------------------------- Fri Aug 31 22:10:55 CEST 2007 - ma@suse.de - Added ability to switch off use of patch and delta rpms via zypp.conf (#305864) [main] download.use_patchrpm = no download.use_deltarpm = no - version 3.22.0 - revision 7069 ------------------------------------------------------------------- Fri Aug 31 19:56:40 CEST 2007 - ma@suse.de - On demand translate patch requirements into a list of atoms. Required by the UI to display packages acssociated with a patch. (#300612) - version 3.21.1 - revision 7065 ------------------------------------------------------------------- Fri Aug 31 13:59:54 CEST 2007 - kkaempf@suse.de - enrich ResolverInfo with the reason if a user-initiated request fails (#304325, #306240) - r 7051 ------------------------------------------------------------------- Thu Aug 30 20:10:00 CEST 2007 - jkupec@suse.cz - added missing implementation of LogControl::setLineFormater() (lslezak) - version 3.21.0 - revision 7041 ------------------------------------------------------------------- Thu Aug 30 18:55:15 CEST 2007 - jkupec@suse.cz - enable changing url in requestMedia callback (#294481) - revision 7037 ------------------------------------------------------------------- Thu Aug 30 18:22:32 CEST 2007 - ma@suse.de - Filter readonly mount points in DiskUsageCounter (#297405) - revision 7030 ------------------------------------------------------------------- Thu Aug 30 17:31:33 CEST 2007 - jkupec@suse.cz - remember the cause of the RepoException when refreshing metadata (#301022) - r7023 ------------------------------------------------------------------- Thu Aug 30 17:25:14 CEST 2007 - ma@suse.de - Safe fix for bug #299680. - version 3.20.1 - revision 7026 ------------------------------------------------------------------- Thu Aug 30 15:48:03 CEST 2007 - schubi@suse.de - Bugfix: If a requirement has been fulfilled by more than one language resolvables only thatone will be taken which fits to the selected language. - r 7018 ------------------------------------------------------------------- Thu Aug 30 15:14:23 CEST 2007 - jkupec@suse.cz - correct error code for media errors in MediaCurl::doGetFileCopy() affects only zypper error output, does not affect YaST - r7013 ------------------------------------------------------------------- Wed Aug 29 18:28:41 CEST 2007 - jkupec@suse.cz - reverted blocking of requestMedia from r6271 (#301710) - r6999 ------------------------------------------------------------------- Wed Aug 29 18:09:29 CEST 2007 - kkaempf@suse.de - prevent progress report in destructor (#299680) - r6998 ------------------------------------------------------------------- Wed Aug 29 18:02:36 CEST 2007 - jkupec@suse.cz - treat non-filelists.xml entries as file provides capabilities in YUM parser (#304701) - r6992 ------------------------------------------------------------------- Wed Aug 29 16:32:01 CEST 2007 - kkaempf@suse.de - the media.1/media uniquely identifies a 'susetags' repo, not the content file (#304200) ------------------------------------------------------------------- Wed Aug 29 15:42:17 CEST 2007 - jkupec@suse.cz - fixed locale dir (#304649) - r6984 ------------------------------------------------------------------- Wed Aug 29 15:39:52 CEST 2007 - kkaempf@suse.de - don't treat normal package license as "license to confirm" (#305906) ------------------------------------------------------------------- Wed Aug 29 15:28:53 CEST 2007 - ma@suse.de - Fixed fix for #293039. Segfault due to uninitialzed data. - version 3.19.3 - revision 6980 ------------------------------------------------------------------- Wed Aug 29 15:10:20 CEST 2007 - schubi@suse.de - reduced too much verbosed ResolverContext logging; Bug 303971 - r 6977 ------------------------------------------------------------------- Wed Aug 29 13:55:28 CEST 2007 - ma@suse.de - Fixed PlainDir repositories to provide real disk usage data. For repomd and others that do not provide any detailed disk usage info, assume the packgage size is required below "/". Peviously they were treated as being empy. - version 3.19.2 - revision 6972 ------------------------------------------------------------------- Wed Aug 29 13:36:42 CEST 2007 - schubi@suse.de - Add a new solver solution in the case of running in a timeout: ProblemSolutionDoubleTimeout.h #Bug 302496 - revision 6970 ------------------------------------------------------------------- Wed Aug 29 11:23:26 CEST 2007 - dmacvicar@suse.de - bug in fix for (#292986) ------------------------------------------------------------------- Tue Aug 28 18:48:26 CEST 2007 - dmacvicar@suse.de - (#297001) - libzypp: can't skip broken packages - re enable importing zypp keyring from rpm.(#302379) - 3.19.1 ------------------------------------------------------------------- Tue Aug 28 17:30:30 CEST 2007 - kkaempf@suse.de - rename ResolvableQuery::iterateResolvablesByKindsAndStrings to ResolvableQuery::iterateResolvablesByKindsAndStringsAndRepos in order to support query-by-repo (#305384) - fix iterateResolvablesByKindsAndStringsAndRepos to take any number of kinds, names, or repos (#305347) - remove ResolvableQuery::iterateResolvablesByKind, not needed - version 3.19.0 - rev 6935 ------------------------------------------------------------------- Tue Aug 28 11:27:53 CEST 2007 - dmacvicar@suse.de - real fix for reading signature ids. (#390535). - delete metadata when removing repo (#301037). ------------------------------------------------------------------- Mon Aug 27 23:52:41 CEST 2007 - dmacvicar@suse.de - following behaviour for setPartitions - if they are not set, they are detected - if they are set, that value is used. - if value set or detected is empty, all disk usage information is read. Otherwise just values in those mount points. Should work for installation as long as detectPartitions is empty at installation.(#293039) ------------------------------------------------------------------- Mon Aug 27 17:08:41 CEST 2007 - kkaempf@suse.de - Add ZConfig::overrideSystemArchitecture() to override zypp arch from external, e.g. for the testcases - Honor ZYPP_CONF environment variable to override the buit-in /etc/zypp/zypp.conf - Check architecture at handout() to prevent NULL ptr reference. - Bug 301286 - rev 6908 ------------------------------------------------------------------- Mon Aug 27 15:53:52 CEST 2007 - schubi@suse.de -The solver generate an establish call for all resolvables which has filesystemcaps if there is not a valid result from a former solver run available. This covers: * Initial solver run * Changing of filesystem whithin a workflow, cause the solver results will be reset if the filesystem dependencies have been changed Bug 271912 - r 6901 ------------------------------------------------------------------- Sun Aug 26 15:49:27 CEST 2007 - kkaempf@suse.de - pass location to plaindir package (#303751) - Add name of file in question to checksum/signature related exceptions. - pass basename of file to verifyFileSignatureWorkflow (instead of empty string). - filter out incompatible architectures when parsing sustags repos (first half of #301286) - r 6882 ------------------------------------------------------------------- Fri Aug 24 11:52:27 CEST 2007 - dmacvicar@suse.de - don't run source migration if yast is running in intsys mode (#297136) - signature and checksum verification fixes. Still pending problem ZYpp getting no output from gpg when running from zypper. (#302059) ------------------------------------------------------------------- Thu Aug 23 13:51:41 CEST 2007 - schubi@suse.de - Do not strip resolvables which have the same name but different kind (ResolverInfo*) - Flag info NEEDEDBY correctly if it will be used by freshen/supplement - r 6830 ------------------------------------------------------------------- Wed Aug 22 18:58:44 CEST 2007 - mvidner@suse.cz - Do not use "a-z" in regexes. Fixes "Invalid Url scheme 'http'" in the Estonian locale (#302525). ------------------------------------------------------------------- Wed Aug 22 17:59:39 CEST 2007 - aschnell@suse.de - added remembering of exception history at various places ------------------------------------------------------------------- Wed Aug 22 16:52:09 CEST 2007 - schubi@suse.de - Bugfixes concerning vendor handling: - first bug: Installed A-1.0(vendor SuSE) Available A-2.0(other vendor) A will not be regarded as "unmaintained". So it will not be deleted. - second bug: A need B-2.0. B-1.0 is installed but has another vendor. Report a proper errmessage. - Testcase : solution-tests/vendor-test.xml - r 6812 - 3.18.4 ------------------------------------------------------------------- Tue Aug 21 15:38:08 CEST 2007 - dmacvicar@suse.de - ignore HASH key for download (#300982) ------------------------------------------------------------------- Tue Aug 21 15:17:23 CEST 2007 - schubi@suse.de - Added explicitly_requested as parameter in ResolverContext::Uninstall Bug 299819 - revision 6794 ------------------------------------------------------------------- Tue Aug 21 13:06:44 CEST 2007 - dmacvicar@suse.de - If no mount information is available, parse all DU entries. - read only hack mode for migrate-sources. We actually do add repositories with it, but no harm. (#292986) - fix some typos in exceptions (#301331) - 3.18.3 ------------------------------------------------------------------- Mon Aug 20 16:06:36 CEST 2007 - schubi@suse.de - Do not regard explicit request in order to recognize updated packages correctly. Bug 301676 - Updated translations - r 6766 - 3.18.2 ------------------------------------------------------------------- Mon Aug 20 15:35:46 CEST 2007 - mvidner@suse.cz - package-manager script: Call /sbin/yast2 with full path because of gnomesu (#269873). ------------------------------------------------------------------- Mon Aug 20 15:23:14 CEST 2007 - dmacvicar@suse.de - add support for the HASH key. (#300982) - Use ContentFileParser in Downloader (instead of implementing the parser again, it has a reason, Downloader was written first) - update testcases and data to cover the new HASH key - 3.18.1 ------------------------------------------------------------------- Mon Aug 20 13:21:34 CEST 2007 - kkaempf@suse.de - unify query API for kind and name, summary, description (incomplete) - rev 6761, version 3.18.0 ------------------------------------------------------------------- Fri Aug 17 12:30:55 CEST 2007 - kkaempf@suse.de - add iterateResolvablesByKindsAndName - rev 6735, version 3.17.13 ------------------------------------------------------------------- Fri Aug 17 11:45:24 CEST 2007 - kkaempf@suse.de - rename ResolvableQuery::queryByName to iterateResolvablesByName - fix reading of kind and repository in ResolvableQuery - add reverse lookups in CacheTypes - add iterateResolvablesByKind - rev 6733 ------------------------------------------------------------------- Fri Aug 17 10:37:56 CEST 2007 - schubi@suse.de - shorten solver error messages Bug 259894 - rev 6723 ------------------------------------------------------------------- Thu Aug 16 23:43:50 CEST 2007 - kkaempf@suse.de - fix ResolvableQuery::query(), add ResolvableQuery::queryByName() install zypp/cache header files. - rev 6719, version 3.16.13 ------------------------------------------------------------------- Thu Aug 16 17:21:52 CEST 2007 - kkaempf@suse.de - discard pattern files with incompatbile architecture, both for download and for parsing. (#298716) - rev 6711 ------------------------------------------------------------------- Thu Aug 16 17:12:45 CEST 2007 - kkaempf@suse.de - run sqlite asynchronously and add sql index files where appropriate, gives 6x performance on certain operations. Bumping cache schema version to 1004. (#300998) - rev 6710 ------------------------------------------------------------------- Thu Aug 16 17:08:58 CEST 2007 - kkaempf@suse.de - fix String::endsWith (#301038) - rev 6709 ------------------------------------------------------------------- Thu Aug 16 11:16:25 CEST 2007 - schubi@suse.de - added an _explicitly_requested in QueueItemConflict ( as already in QueueItemEstablish, QueueItemInstall, QueueItemUninstall ) in order to remove the conflicting item without an error message. Bug 299819 - rev 6699 ------------------------------------------------------------------- Thu Aug 16 07:23:31 CEST 2007 - jkupec@suse.cz - forgot to set default refresh policy in checkIfToRefreshMetadata - repo.refresh.delay default set to 10 minutes - 6693 ------------------------------------------------------------------- Wed Aug 15 15:32:36 CEST 2007 - schubi@suse.de - Bugfix while regarding correct vendor in update - r6677 - version 3.15.0 ------------------------------------------------------------------- Wed Aug 15 13:57:04 CEST 2007 - jkupec@suse.cz - repo.refresh.delay= (ZConfig, "main" section) support added to delay next check & refresh until the specified number of minutes has passed from the last check or refresh (FATE #301991). Revisions: 6654, 6656, 6666, and 6667. - filesystem::touch(Pathname) added (r6666) - RepoManager::touchIndexFile(RepoInfo) added - RepoManager::checkIfToRefreshMetadata(RepoInfo,Url,policy): decision to do the refresh moved to this public method. - r6667 ------------------------------------------------------------------- Wed Aug 15 12:38:26 CEST 2007 - schubi@suse.de - generate a resolver problem if addRequires does not find a resovable #299486 - rev 6660 ------------------------------------------------------------------- Tue Aug 14 15:54:15 CEST 2007 - schubi@suse.de - Prioritized delete request by the user BEFORE delete requests due missing dependencies or conflicting dependencies. Bug 298322 - rev 6640 ------------------------------------------------------------------- Fri Aug 10 20:49:20 CEST 2007 - jkupec@suse.cz - support also "Plaindir" as valid repo type name (#298622) - revision 6616 - version 3.14.0 ------------------------------------------------------------------- Fri Aug 10 18:03:06 CEST 2007 - dmacvicar@suse.de - fix segfault in Progress reporting - progress report use name instead of alias (#298035) - repoinfo returns alias if name is empty ------------------------------------------------------------------- Fri Aug 10 16:04:42 CEST 2007 - dmacvicar@suse.de - merge patch by dmueller to get rid of boost-regex ------------------------------------------------------------------- Fri Aug 10 13:50:40 CEST 2007 - dmacvicar@suse.de - dont create a second CacheStore in the same scope, will lock... #297627 ------------------------------------------------------------------- Thu Aug 9 15:04:21 CEST 2007 - jkupec@suse.cz - fixed some RepoManager exception docs & history - r6558 ------------------------------------------------------------------- Thu Aug 9 13:33:59 CEST 2007 - dmacvicar@suse.de - feature #302135: Graceful update of 3rd party packages Automatic upgrading only sees packages from same vendor This allows not needed to have those locked. - Add persistent locks file which allow wildcards. Users can lock certain packages adding lines like "kde* < 3.5" - add applyLocks() to apply persistent locks before solving ------------------------------------------------------------------- Thu Aug 9 13:28:20 CEST 2007 - schubi@suse.de - recognize changes in the pool (e.g. changing /etc/sysconfig/storage #271912 wq - Added locking resolvables in the testcases - rev 6544 ------------------------------------------------------------------- Wed Aug 8 16:04:07 CEST 2007 - dmacvicar@suse.de - add migrate-sources to %post (#292986) - 3.13.15 ------------------------------------------------------------------- Wed Aug 8 13:32:52 CEST 2007 - jkupec@suse.cz - fixed bug with using wrong files from raw metadata cache (bug #297611) (duncanmv) (r6501, already released in 3.13.14) ------------------------------------------------------------------- Wed Aug 8 12:42:39 CEST 2007 - schubi@suse.de - fix in "ignore conflicts" if the conflict has been caused by an obsolete Bug# 297795 - r 6517 ------------------------------------------------------------------- Tue Aug 7 17:04:47 CEST 2007 - dmacvicar@suse.de - implement susetags support for compressed metadata and testcases. (feature #301916) - implement disk usage in cache. For installation requires some changes in YaST to setup the ZYpp getPartitions() before repos are cached. (bug #293039) - added testcases for diskusage - 3.13.14 ------------------------------------------------------------------- Mon Aug 6 10:19:12 CEST 2007 - jkupec@suse.cz - fixed YUM parser to properly create source packages - disabled reading of filelists.xml.gz by default (the data are currently not stored anyway) - revision 6481 - version 3.13.13 ------------------------------------------------------------------- Sat Aug 4 01:03:19 CEST 2007 - ma@suse.de - Don't download unwanted translation files (#293740). - revision 6470 ------------------------------------------------------------------- Fri Aug 3 23:52:18 CEST 2007 - ma@suse.de - Fix susetags repo to parse dikusage data (#293039) - revision 6467 - version 3.13.12 ------------------------------------------------------------------- Fri Aug 3 18:56:47 CEST 2007 - ma@suse.de - Add product attribute 'type' (aka 'category' which is now deprecated). Adapted sustags and yum parsers to parse and provide this value. - revision 6464 - version 3.13.11 ------------------------------------------------------------------- Fri Aug 3 17:29:56 CEST 2007 - dmacvicar@suse.de - fix modalias rel column number - version 3.13.10 ------------------------------------------------------------------- Fri Aug 3 16:35:36 CEST 2007 - dmacvicar@suse.de - Implemented option repo.add.probe to allow probing the added repositories - version 3.13.9 ------------------------------------------------------------------- Fri Aug 3 16:07:46 CEST 2007 - schubi@suse.de - Fixed detection of renamed packages while update. - Added new translations - rev 6445 ------------------------------------------------------------------- Fri Aug 3 15:02:28 CEST 2007 - ma@suse.de - Speed up retrieving MediaNr attribute, as it slows down install order calculation. (#297173) - revision 6442 ------------------------------------------------------------------- Fri Aug 3 14:13:36 CEST 2007 - dmacvicar@suse.de - Fixed cache schema upgrade ------------------------------------------------------------------- Fri Aug 3 13:38:17 CEST 2007 - ma@suse.de - Fixed pattern includes and extends attributes. - revision 6431 - version 3.13.8 ------------------------------------------------------------------- Fri Aug 3 12:33:41 CEST 2007 - schubi@suse.de - API for retrieving additional dependencies" solver/detail/Resolver.h - Handle additional dependencies in the testcases - Handle system and language dependencies in the testcases correctly. - r 6418 ------------------------------------------------------------------- Thu Aug 2 18:14:12 CEST 2007 - ma@suse.de - Indicate changed pool content if /etc/sysconfig/storage USED_FS_LIST has changed. Resolver must discard any cached filesystem dependencies. (required for #271912) - revision 6404 ------------------------------------------------------------------- Thu Aug 2 16:37:06 CEST 2007 - ma@suse.de - Indicate changed pool content to the resolver. (required for #271912) - revision 6398 - version 3.13.7 ------------------------------------------------------------------- Thu Aug 2 10:16:16 CEST 2007 - schubi@suse.de - speedup error handling. Do not log ResolveInfo anymore. Set limit of 20 problems. Bug 280387 - r 6378 - version 3.13.6 ------------------------------------------------------------------- Wed Aug 1 18:51:12 CEST 2007 - ma@suse.de - Added interface to install source packages via zypper. - revision 6373 - version 3.13.5 ------------------------------------------------------------------- Tue Jul 31 22:01:08 CEST 2007 - ma@suse.de - Added package attributes Package::sourcePkgName and Package::sourcePkgEdition. Name and edition of the source rpm this package was built from. - Added ZYpp::installSrcPackage to install a single source package. - revision 6353 - version 3.13.4 ------------------------------------------------------------------- Tue Jul 31 19:06:54 CEST 2007 - ma@suse.de - Temorary files and directories created by makeSibling use the same protection as the original. - revision 6344 - version 3.13.3 ------------------------------------------------------------------- Tue Jul 31 10:37:13 CEST 2007 - schubi@suse.de - Removed keepExtras from resolvePool. This will be handled in the solver internally now. #294727 - Checking if item really exists (#295544; ResolverInfoContainer.cc) - revision 6317 - version 3.13.2 ------------------------------------------------------------------- Mon Jul 30 17:23:19 CEST 2007 - ma@suse.de - Remove tribool from RepoInfo's interface. - revision 6301 - version 3.13.1 ------------------------------------------------------------------- Mon Jul 30 13:59:33 CEST 2007 - ma@suse.de - Fixed wrong media number reported by script, message and patch. - Fixed script API to provide the scripts location on media (if not inlined). - Introduced ScripProvider to make a script available on the local disk. - revision 6288 - version 3.13.0 ------------------------------------------------------------------- Fri Jul 27 18:08:42 CEST 2007 - jkupec@suse.cz - don't request media chage if the media is not changeable (like e.g. http) - revision 6271 - version 3.12.1 ------------------------------------------------------------------- Fri Jul 27 17:40:44 CEST 2007 - dmacvicar@suse.de - progress ticks for clean cache - ZConfig: remove default from names. - re enable reading cache callbacks - ini parser without boost::regexp patch by dmueller (#152447) ------------------------------------------------------------------- Fri Jul 27 17:16:27 CEST 2007 - ma@suse.de - Fixed package to provide the location media number. (#294496) - revision 6263 ------------------------------------------------------------------- Fri Jul 27 16:31:38 CEST 2007 - jkupec@suse.cz - RepoFileReader - ignore empty url keys (baseurl, mirrorlist, gpgkey) instead of throwing bad url exception - revision 6259 ------------------------------------------------------------------- Thu Jul 26 16:41:30 CEST 2007 - kkaempf@suse.de - Make clearing of extra dependencies/conflicts configurable when resolvePool(). Leave the default as before (clear extras). Bug # 294727 - revision 6233 - version 3.12.0 ------------------------------------------------------------------- Thu Jul 26 10:58:27 CEST 2007 - dmacvicar@suse.de - /var/lib/zypp/cache -> /var/cache/zypp (#292419) - ini parser without boost::regexp, patch by dmueller (#152447) ------------------------------------------------------------------- Wed Jul 25 13:50:06 CEST 2007 - ma@suse.de - Make temp directory configurable via environment variable ZYPPTMPDIR. - revision 6202 - version 3.11.11 ------------------------------------------------------------------- Tue Jul 24 17:55:49 CEST 2007 - ma@suse.de - Fixed bug in smart pointer comparison. ------------------------------------------------------------------- Mon Jul 23 13:05:53 CEST 2007 - ma@suse.de - Fix failing rename of metadata download directories across filesystem boundaries. ------------------------------------------------------------------- Fri Jul 20 16:10:59 CEST 2007 - ma@suse.de - Fixed malicious gettext include. - Make ZConfig a singleton. - revision 6123 ------------------------------------------------------------------- Thu Jul 19 15:52:03 CEST 2007 - ma@suse.de - Fixed repo::provideFile to set a deleter for downloaded files (#293004). - revision 6094 - version 3.11.10 ------------------------------------------------------------------- Thu Jul 19 12:58:12 CEST 2007 - ma@suse.de - Query ByRepository now takes as well an alias. ------------------------------------------------------------------- Wed Jul 18 16:40:35 CEST 2007 - dmacvicar@suse.de - fix retrieval of container attributes in cache (#292698) ------------------------------------------------------------------- Wed Jul 18 16:12:06 CEST 2007 - ma@suse.de - Port zypp-query-pool (#292404) - revision 6069 - version 3.11.9 ------------------------------------------------------------------- Wed Jul 18 16:09:04 CEST 2007 - schubi@suse.de - added new calls in Resolver.h: addRequire,addConflict ------------------------------------------------------------------- Wed Jul 18 14:43:04 CEST 2007 - ma@suse.de - Fixed IniParser to allow '=' in values (#292669) - revision 6063 ------------------------------------------------------------------- Wed Jul 18 14:16:59 CEST 2007 - dmacvicar@suse.de - allow / in alias (#292628) ------------------------------------------------------------------- Wed Jul 18 12:38:55 CEST 2007 - ma@suse.de - Fixed repo::provideFile to throw on error. - Fixed ResolvableQuery to use 0 as default for non existing numerical values. - revision 6058 ------------------------------------------------------------------- Tue Jul 17 15:57:03 CEST 2007 - ma@suse.de - Fixed OnMediLocation to use safe defaults. Added setLocaltion and additional ctor for convenience. - revision 6047 ------------------------------------------------------------------- Tue Jul 17 10:45:39 CEST 2007 - schubi@suse.de - Evalute update canditate: Take canditates only which are really installable. Bug 292077 r 6034 ------------------------------------------------------------------- Mon Jul 16 15:41:31 CEST 2007 - jkupec@suse.cz - fixed some tribool bugs in RepoInfo - revision 6022 ------------------------------------------------------------------- Mon Jul 16 11:43:33 CEST 2007 - dmacvicar@suse.de - fix reading of non existant repo - r6018 - first submission to stable - fix keywords parsing in susetags parser - version 3.11.8 ------------------------------------------------------------------- Wed Jul 11 19:14:47 CEST 2007 - jkupec@suse.cz - make resolvable query complete exceptionless with the database - test that packages have some attributes - disable progress adaptor for now - revision 5977 - version 3.11.7 ------------------------------------------------------------------- Wed Jul 11 14:37:02 CEST 2007 - ma@suse.de - fixed unresolved symbols - revision 5972 - version 3.11.6 ------------------------------------------------------------------- Wed Jul 11 13:31:39 CEST 2007 - ma@suse.de - fixed TranslatedText creating unwanted entries. - fixed capability processing - revision 5964 - version 3.11.5 ------------------------------------------------------------------- Tue Jul 10 20:01:18 CEST 2007 - jkupec@suse.cz - MediaSetAccess::release() added - Use attachDesiredMedia in MediaProducts - Progress reporting improved - revision 5959 - version 3.11.4 ------------------------------------------------------------------- Tue Jul 10 14:23:13 CEST 2007 - ma@suse.de - fixed parsing translated texts. - added source packages. - revision 5947 - version 3.11.3 ------------------------------------------------------------------- Tue Jul 10 13:11:31 CEST 2007 - jkupec@suse.cz - repo callbacks fixed - Fixed YUM parser progress reporting - Added CombinedProgressData - make RepoImpl::resolvables() load lazy - MediaProducts added for scanning products file - Implement cache schema versioning and automatic invalidation of cache when schema changes - revision 5942 - version 3.11.2 ------------------------------------------------------------------- Fri Jul 6 13:51:50 CEST 2007 - ma@suse.de - Propagate pools repository_iterator to the UI - revision 5911 - version 3.11.1 ------------------------------------------------------------------- Thu Jul 5 17:02:08 CEST 2007 - ma@suse.de - Package::location is now returns an OnMediaLocation - archivesize() renamed to downloadSize() - Allow to iterate all Repositories that contribute Resolvables to the Pool. - MediaSetAccess::provideDir added - remove useless url check - add old-api-style wrapper - Add MediaProducts class - revision 5892 - version 3.11.0 ------------------------------------------------------------------- Thu Jul 5 09:31:02 CEST 2007 - schubi@suse.de - function isInstalledBy/installs Added an initial installation flag which shows if the item has been triggered for installation, or the dependency is already satisfied. - Revision 5884 - Version 3.4.0 ------------------------------------------------------------------- Tue Jul 3 13:07:31 CEST 2007 - jkupec@suse.cz - removed unused %{prefix}/lib/zypp from %files in spec file - revision 5870 ------------------------------------------------------------------- Tue Jul 3 10:37:37 CEST 2007 - jkupec@suse.cz - Old API (SourceManager, metadata parsers) dropped in favor of the new refactored ones (RepoManager, RepoParser(s), cache subtree, repo subtree). - Some new API improvements. - revision 5868 - version 3.10.0 (bumped minor to 10 to indicate refactoring branch) ------------------------------------------------------------------- Fri Jun 22 15:28:03 CEST 2007 - schubi@suse.de - New API calls which provides more information about one resolvable after a solverrun: isInstalledBy (const PoolItem_Ref item); installs (const PoolItem_Ref item); - Revision 5835 ------------------------------------------------------------------- Thu Jun 21 15:58:16 CEST 2007 - adrian@suse.de - fix changelog entry order ------------------------------------------------------------------- Wed Jun 20 11:47:33 CEST 2007 - schubi@suse.de - Ignore conflicting items which are uninstallable - Create a "needed by" info if a requirement is still fulfilled. - Allow only one needed_by and needed_by_capability in QueueItemInstall - Added capability and type (REQUIRE, RECOMMEND,....) to ResolverInfoNeededBy - Evaluate ResolverInfoNeededBy for more information in the error messages - Enlarge detail description in the error messages - Revision 5807 ------------------------------------------------------------------- Tue Jun 19 13:59:09 CEST 2007 - ma@suse.de - Fixes for gcc-4.2 - revision 5786 - version 3.3.1 ------------------------------------------------------------------- Mon Jun 18 17:20:45 CEST 2007 - mvidner@suse.cz - fixed so versioning from libtool to cmake - 3.3.0 ------------------------------------------------------------------- Mon Jun 18 09:47:32 CEST 2007 - dmacvicar@suse.de - Use gpg2 instead of gpg for keyring and make the package depend on it (#284211) ------------------------------------------------------------------- Mon Jun 11 17:02:49 CEST 2007 - schubi@suse.de - Required kmp packges FOR EACH installed/to_be_installed kernel will be installed. New dependency "packageand(foo:bar)" which provides an AND dependency by injecting a supplement/freshen. e.G. package novell-cluster-services-kmp-smp supplements: packageand(kernel-smp:novell-cluster-services-kmp) Bug 255011 - Dont check for architecture changes in atoms (#266178) - Revision 5720 ------------------------------------------------------------------- Wed May 23 17:03:29 CEST 2007 - ma@suse.de - Fixed package-manager script (#275847) - revision 5614 ------------------------------------------------------------------- Wed May 23 13:32:02 CEST 2007 - schubi@suse.de - fixed cmake - version 3.2.2 ------------------------------------------------------------------- Wed May 23 11:25:55 CEST 2007 - schubi@suse.de - Reduced logging in order to speedup solving Bug 275100 - revision 5603 - version 3.2.1 ------------------------------------------------------------------- Tue May 15 14:03:34 CEST 2007 - ma@suse.de - Fix excess calls to releaseFile. (#274357) - revision 5545 ------------------------------------------------------------------- Wed May 9 18:44:20 CEST 2007 - dmacvicar@suse.de - Fix importing keys into rpm. (#270125) - r5527 ------------------------------------------------------------------- Wed Apr 18 14:56:17 CEST 2007 - ma@suse.de - Support filesystem dependencies to add needed filesystem RPMs automatically (Fate 301966). - revision 5404 - version 3.2.0 ------------------------------------------------------------------- Mon Apr 16 11:23:15 CEST 2007 - jkupec@suse.cz - avoiding attaching media where not needed (#263207) - r5381 ------------------------------------------------------------------- Fri Apr 13 17:32:55 CEST 2007 - dmacvicar@suse.de - fix FileCap with attributes - r5376 ------------------------------------------------------------------- Thu Apr 12 02:33:18 CEST 2007 - ma@suse.de - Fixed computation of install order. Take requirements of an installed packages uninstall scripts into account, if the package is updated. (#258682) - revision 5349 - version 3.1.1 ------------------------------------------------------------------- Wed Apr 11 15:24:01 CEST 2007 - ma@suse.de - Parse and provide package keywords. (Fate 120368) - revision 5338 - version 3.1.0 ------------------------------------------------------------------- Thu Apr 5 15:50:15 CEST 2007 - schubi@suse.de - Upgrade: Do NOT delete packages which have unresolved dependencies --> Ask the user. Bug 258322 - revision 5305 - version 3.0.3 ------------------------------------------------------------------- Wed Apr 4 19:39:12 CEST 2007 - ma@suse.de - Fix restoring of Sources id root prefix is used. (#238165) - revision 5299 - version 3.0.2 ------------------------------------------------------------------- Wed Apr 4 15:33:54 CEST 2007 - jkupec@suse.cz - MediaManager::attachDesiredMedia() added to support multiple (CD/DVD) drives (fate #3974) - r5296 ------------------------------------------------------------------- Wed Mar 14 14:33:26 CET 2007 - schubi@suse.de - If there is no valid solver result and NOT all resolvables ( other architecture) has been regarded, let the user decide making a new solver run with ALL available resolvables. Bug 223440 - reducing logging (error -> debug) bug 252921 - Revision 5219 ------------------------------------------------------------------- Fri Mar 9 00:08:38 CET 2007 - ma@suse.de - Allow configuration of trusted vendors via /var/lib/zypp/db/trustedVendors. (#186636) - revision 5194 - version 3.0.1 ------------------------------------------------------------------- Wed Mar 7 15:20:29 CET 2007 - dmacvicar@suse.de - libzypp-devel -> libzypp requirement is not versioned (#251086) - r5181 ------------------------------------------------------------------- Tue Mar 6 17:25:49 CET 2007 - schubi@suse.de - Using already existing valid solver results for further solver runs. (partiell solving) - r5169 ------------------------------------------------------------------- Fri Mar 2 16:11:16 CET 2007 - dmacvicar@suse.de - fix link order - r5165 ------------------------------------------------------------------- Tue Feb 27 15:50:39 CET 2007 - dmacvicar@suse.de - merging from 10.2 / SP1 - #247459 ftp probing denied == dont exists in ftp - r5124 ------------------------------------------------------------------- Tue Feb 27 15:35:06 CET 2007 - schubi@suse.de - Merging solver related stuff from SuSE-Linux-10_2-Branch ( till r5111): - Simultaneouqusly establishing of items which are conflicting eachother is useless. So only one will be established. Fixed in QueueItemInstall.cc Bug 243595 - Added new upgrade options to fine tune version and patch handling. (F301990) - The context of establishPool will be stored in Resolver and will be regarded for the next solver run everytime. So it will be not reset by any solver run anymore. bug 191810 ( A broken patch will not be installed again) ------------------------------------------------------------------- Fri Feb 23 17:40:23 CET 2007 - jkupec@suse.cz - adding sotf,timeo=X nfs mount options by default (#235211) - r5093 ------------------------------------------------------------------- Fri Feb 23 14:16:19 CET 2007 - jkupec@suse.cz - support for HTTP authentication prompt added (#190609) - fixed problem with empty path in URL in MediaCurl::doGetFileCopy() - r5085 ------------------------------------------------------------------- Mon Feb 12 15:28:08 CET 2007 - jkupec@suse.cz - Merged revisions 4926-4993,4995,4998-5006 via svnmerge from SuSE-Linux-10_2-Branch - verifySystem: Regarding patterns too. Bug 239750 (schubi) - verifySystem: The result will be set to APPL_HIGH, so it will be not reset by a second "normal" solver run. #239281 (schubi) - yast2 reports invalid URL as 'unknown source type' (#209961) (dmacvicar) - Added freshen language dependency in supplemements too if there is no entry in supplements. #240617;IPA fonts are not installed even if select Japanese language (schubi) - Setting allowed authentication methods to "basic,digest" if none provided in URL (#243006) (jkupec) - Stopping after 50 valid solver results. Anymore would be useless. Bug 243595 (schubi) - r 5007 ------------------------------------------------------------------- Mon Feb 12 10:37:02 CET 2007 - mvidner@suse.cz - package-manager: use a generic su script from XDG (#235303, #244442) ------------------------------------------------------------------- Fri Feb 9 15:21:55 CET 2007 - jkupec@suse.cz - Setting allowed authentication methods to "basic,digest" if none provided in URL (#243006) - fixed gettext and rpath problems in configure.ac and Makefile.cvs (mvidner) - r4999 ------------------------------------------------------------------- Wed Feb 7 15:52:29 CET 2007 - jkupec@suse.cz - MediaCurlException::dumpOn() adjusted for ncurses dialogue (#222602) - 4984 ------------------------------------------------------------------- Mon Jan 29 13:10:37 CET 2007 - dmacvicar@suse.de - Merged revisions 4907-4926 from SuSE-Linux-10_2-Branch - update packages: changing architecture is only valid while an system update and NOT while an update via a patch. Last fix does not fit for every case. Bug 230685 - Patch has selected not the concerning package for update but a package which has provided the required dependencies too. Algorithmus: If there are exactly two providers which differ in architecture prefer the better arch. Fix: Regarding NVRA too. ( only if equal ) Bug 238284 - Download only English and Local translation (#208457) - Added solver parameter: tryAllPossibilities: regarding every solver branch ( not only branches with e.G. best architectures preferHighestVersion: Prefer solver results which have a higher version number. Bug #238087 - update packages: changing architecture is only valid while an system update and NOT while an update via a patch. Bug 230685 - x86_64 MozillaFirefox binaries in security update repository Fix of version 2.11.2 has not worked if the first founded item had had another architecture. - r4927 ------------------------------------------------------------------- Wed Jan 24 14:50:33 CET 2007 - lslezak@suse.cz - added ZYpp::getPartitions() - return the partitinoning ------------------------------------------------------------------- Wed Jan 24 14:20:28 CET 2007 - dmacvicar@suse.de - Merged revisions 4705-4906 via svnmerge from SuSE-Linux-10_2-Branch - Corrupt download cannot be skipped (#217425 and #224216) - Enable package read ahead/caching in commit per default to reduce interactive media changes. If the environment variable ZYPP_COMMIT_NO_PACKAGE_CACHE is set, caching will be disabled. (F100182) - added parameter not to reset resolver results while calling freshen pool Bug: 235761 - Prepare package read ahead/caching of packages in commit. Adatped the workflow. Caching details are now hidden inside CommitPackageCache. The current implementation still performs no read ahead. (for F100182) - Skip invalid or broken rpm database entries. (#231211) - verifySystem: check if the solution is valid after calling freshenPool() Bug: 235761 - Added own call for Resolver::verifySystem with additional hardware/language check in order to keep binary compatibility Fate #301224 - Rpm requires additional quoting of special chars in filenames. (#233967) - Resolver::verifySystem checks for new hardware now by calling freshenPool. This is configureable. Fate #301224 - merged texts from proofread - Don't consider patch/delta rpms if package architecture changes. (#231254) - update packages: changing architecture is only valid while an system update and NOT while an update via a patch. Bug 230685 - x86_64 MozillaFirefox binaries in security update repository - verifySystem: Do only regard items which will be on the system after the commit. Fate 301178 - feature #301369 Import listed GPG Keys from an trusted installation source - fix return call in new xml parser - Enable system resolvables in Helix parser (Revision 4787) - deptestomatic: Resetting transaction with the correct call; bugfix; Added kind in keep state (Revision 4788) - Wrong behaviour in soft install/uninstall. --> Setting Transact with soft (Revision 4789) - New call added: maySetToBeUninstalledSoft (Revision 4789) Both are only functions for the solver (Revision 4789) - Resetting "by causer" in order to distinguish from state "keep by user". ( function setLock in order to remove lock) (Revision 4789) - Better fix for Bug 217574: Checking if the resolveable CAN be deleted soft in QueueItemUninstall.cc (Revision 4790) - Regarding "keep state by user". So avoiding "reselecting" by other requirements. Give a corresponding problem solution if a resolvable satisfy a dependency, but has been set to keep by the user. Bug : 222531 (Revision 4791) - Allow to disable autoprotection of foreign vendor items. Required in zmd-backend. (F301735). - use sqlite-zmd if using > 10.2 in spec. Use the one available durin compile. - Item could has already been selected to soft uninstall (e.G. remove pattern which recommend this item ). Do not throw an exception anymore. bug#225278 - Added syscontent::Reader: Parse serialized set of ResObjects. (for F300729) - If there has already been selected another item by the solver (e.g. from another source) we will take thatone in order to avoid parallel installation and there concerning error messages. Bug 224698 - In order to handle conflicting resolvable we try to update the conflicting item. While evaluating these canditates an already selected candidate will not be regarded. So it could be that an older package will be selected for update although a newer has already been selected. Revision 4765 - Conflicting items: The resolvable will be obsoleted by another. So it is useless finding an update candidate and evaluate additional branches. - r4907 ------------------------------------------------------------------- Mon Dec 4 15:38:12 CET 2006 - mt@suse.de - Improved realpath() wrapper in media handler class (#222521). - revision 4758 ------------------------------------------------------------------- Thu Nov 30 09:15:20 CET 2006 - ma@suse.de - version 3.0.0 (2.x.x now in SuSE-Linux-10_2-Branch) - revision 4713 ------------------------------------------------------------------- Wed Nov 29 19:20:24 CET 2006 - dmacvicar@suse.de - use sqlite-zmd package for the non yet shipped zypp2/ stuff because backend uses this sqlite and it is no fun to install one and the other to develop (as the -devel packages) conflict. - add cmake support for building zypp/ lib. TODO: soinfo, compile testcases, devel, zypp2,docs find rpm, curl and others. - dont serialize interactive, as it is calculated now. (it was already fixed as we don't reimplement the method, but we still serialized, parsed) - r4709 ------------------------------------------------------------------- Tue Nov 28 22:40:12 CET 2006 - ma@suse.de - fixed Patch::interactive to return true as well, if the patch itself has a licence. (#224192) - revision 4702 - version 2.9.2 ------------------------------------------------------------------- Tue Nov 28 16:36:56 CET 2006 - mt@suse.de - Added search for /sbin/vol_id tool - that is in /lib/udev/vol_id on the installation image (#213852). - revision 4700 ------------------------------------------------------------------- Tue Nov 28 11:44:52 CET 2006 - schubi@suse.de - Avoid duplicate pool entries; Bug 223750; second part of the fix - r4698 - Version 2.9.1 ------------------------------------------------------------------- Mon Nov 27 18:29:58 CET 2006 - schubi@suse.de - Pool has multi instances of an item in the pool. Reduced this error to items which are identically at least. #217574 and #223750 - r4695 ------------------------------------------------------------------- Mon Nov 27 17:37:44 CET 2006 - dmacvicar@suse.de - replace spaces to underscores in product names - 2.8.7 - r4688 ------------------------------------------------------------------- Mon Nov 27 16:54:03 CET 2006 - dmacvicar@suse.de - Mark some strings for translation (#219783 need it) - r4682 ------------------------------------------------------------------- Mon Nov 27 16:17:07 CET 2006 - mt@suse.de - Added translations marks to hal, url and mutex exceptions (#23771) - revision 4680 ------------------------------------------------------------------- Wed Nov 22 19:24:57 CET 2006 - dmacvicar@suse.de - don't make libzypp-devel depend on sqlite-devel as headers from zypp2 are not installed yet - r4663 ------------------------------------------------------------------- Wed Nov 22 15:23:55 CET 2006 - ma@suse.de - Return an error if fork failed. (#204807) - Make Script execution abortable by user request. (#212949, F100233) - revision 4660 - version 2.8.6 ------------------------------------------------------------------- Tue Nov 21 16:25:03 CET 2006 - mvidner@suse.cz - Added package-manager wrapper script, with icon and .desktop (#222757). (Used by gnome-main-menu) - version 2.8.5 - r4640 ------------------------------------------------------------------- Tue Nov 21 13:11:06 CET 2006 - mt@suse.de - Fixed target/hal - one more dbus_connection_close found (#216035) - revision 4636 - version 2.8.4 ------------------------------------------------------------------- Mon Nov 20 14:15:38 CET 2006 - schubi@suse.de - translation added rev 4630 version 2.8.3 ------------------------------------------------------------------- Mon Nov 20 11:02:04 CET 2006 - ma@suse.de - Process obsoletes when installing non-package objects. (#217352) - revision 4621 - version 2.8.2 ------------------------------------------------------------------- Fri Nov 17 16:57:39 CET 2006 - mt@suse.de - Implemented volume device check using /sbin/vol_id (#213852). - Revision 4619 ------------------------------------------------------------------- Fri Nov 17 15:53:58 CET 2006 - schubi@suse.de - new translation added ------------------------------------------------------------------- Fri Nov 17 12:42:04 CET 2006 - mt@suse.de - Implemented an reuse of already existing foreign CD/DVD mount points (e.g. automounted) - depends on REUSE_FOREIGN_MOUNTS flag (#220206). - Added a fallback check of the volume.mount_point HAL property to isAutoMountedMedia(); info.hal_mount.created_mount_point seems to be not avaliable in newer HAL versions (on 10.2). - Revision 4615 - Version 2.8.1 ------------------------------------------------------------------- Thu Nov 16 23:39:15 CET 2006 - ma@suse.de - removed unused methods from Patch and PatchImplIf. Provided reasonable default implementation for Patch::interactive. (#221476). - revision 4610 - Version 2.8.0 ------------------------------------------------------------------- Thu Nov 16 15:32:04 CET 2006 - dmacvicar@suse.de - Handle media eject failures (#216545) - r4606 ------------------------------------------------------------------- Wed Nov 15 22:41:51 CET 2006 - ma@suse.de - Reimplemented RpmDb::checkPackage using librpm API instead of parsing "rpm --checksig" output. (#163202) - Version 2.7.4 - revision 4600 ------------------------------------------------------------------- Wed Nov 15 15:39:26 CET 2006 - schubi@suse.de - NEW behaviour of the solver: Obsolete virtual provides. E.G.: Installed: ----------- Name: test-1.0-0 Name: moretest-1.0-0 Provides: test To be installed ------------------ Name: nomoretest-1.0-0 Obsoletes: test Result -------- test-1.0-0 AND moretest-1.0-0 will be deleted. In former versions only test-1.0-0 had been deleted. Bug 220999 - Translations added Version 2.7.3 rev 4593 ------------------------------------------------------------------- Tue Nov 14 16:32:49 CET 2006 - schubi@suse.de - Bugfix in generating solver testcases: - added kind of capabilities in description file - removed unneded channel from uninstall in command file ------------------------------------------------------------------- Mon Nov 13 18:35:01 CET 2006 - mt@suse.de - Try to call /bin/eject utility if the eject-ioctl fails. - r4568 ------------------------------------------------------------------- Mon Nov 13 17:00:51 CET 2006 - dmacvicar@suse.de - ignore empty capabilities - r4565 ------------------------------------------------------------------- Fri Nov 10 17:52:10 CET 2006 - dmacvicar@suse.de - make progress strings translatable (#219783) - r4556 ------------------------------------------------------------------- Tue Nov 7 16:40:28 CET 2006 - schubi@suse.de - While deleting a selection all concerning recommended packages will be deleted too. BUT those packages should not be deleted which have been set to KEEP by the user. bug 217574 rev 4526 VERSION: 2.7.2 ------------------------------------------------------------------- Tue Nov 7 13:12:49 CET 2006 - schubi@suse.de - Makefile in zypp2 fixed Revision 4520 ------------------------------------------------------------------- Tue Nov 7 11:38:10 CET 2006 - schubi@suse.de - Translations added Revision 4514 VERSION: 2.7.1 ------------------------------------------------------------------- Mon Nov 6 12:32:22 CET 2006 - dmacvicar@suse.de - Make the parser more strict, rejecting broken sources but showing the error line. Last fix making the parser relax would break multitag descriptions with empty lines, now we check dependencies at a higher level. (reference #160607) - r4501 ------------------------------------------------------------------- Fri Nov 3 11:04:19 CET 2006 - schubi@suse.de - New problem solution added: Unlock ALL resovables in order to speed up problem solution. Bug 206453 ------------------------------------------------------------------- Fri Nov 3 10:29:08 CET 2006 - schubi@suse.de - Translations added ------------------------------------------------------------------- Thu Nov 2 17:15:19 CET 2006 - mt@suse.de - Fixed target/hal - removed dbus_connection_close calls, because the connections are shared; unref the ref-counted handle only. (#216035) - r4442 ------------------------------------------------------------------- Thu Nov 2 16:18:27 CET 2006 - dmacvicar@suse.de - skipping unreachable packages won't work (#215445) - r4468 ------------------------------------------------------------------- Wed Oct 25 19:04:51 CEST 2006 - dmacvicar@suse.de - (#213793) Target store fails to recreate stored install-time (other Date and ByteCount values as well) - skip comments and blank lines in multilists fixes (#214877) - zen-updater is not installed by default - Automatically fix broken products when reading the product database. still pending: honour the read-only flag Changes to make this possible include using read_dir instead of boost directory iterator. ------------------------------------------------------------------- Wed Oct 25 17:09:06 CEST 2006 - schubi@suse.de - added new class for generating solver testcases: Testcase ------------------------------------------------------------------- Wed Oct 25 15:40:44 CEST 2006 - ma@suse.de - Finalized ui::PatternContents. (F301229) - version 2.7.0 - revision 4413 ------------------------------------------------------------------- Wed Oct 25 08:21:52 CEST 2006 - mvidner@suse.cz - Moved zypper and zypp-checkpatches(-wrapper) to zypper.rpm - version 2.6.0 ------------------------------------------------------------------- Tue Oct 24 14:33:16 CEST 2006 - ma@suse.de - Added ui::PatternContents: Helper class that will compute a patterns expanded install_packages set. (UI interface for F301229) - revision 4387 ------------------------------------------------------------------- Tue Oct 24 09:06:24 CEST 2006 - mvidner@suse.cz - removed the last reference to /usr/lib64 to fix the build ------------------------------------------------------------------- Mon Oct 23 17:44:42 CEST 2006 - mvidner@suse.cz - added "zypper info" (jkupec) - version 2.5.2 ------------------------------------------------------------------- Mon Oct 23 11:28:01 CEST 2006 - dmacvicar@suse.de - fix rpm db timestamp - add extra urls and optional urls to product API - r4378 ------------------------------------------------------------------- Fri Oct 20 16:55:44 CEST 2006 - mvidner@suse.cz - zypper: nicer progress reports, with or without --verbose. ------------------------------------------------------------------- Fri Oct 20 16:25:50 CEST 2006 - ma@suse.de - Fixed reloading of target data after commit. Broken since rev 3880. - version 2.5.1 - revision 4365 ------------------------------------------------------------------- Fri Oct 20 16:22:09 CEST 2006 - dmacvicar@suse.de - put query-pool in /usr/lib/zypp and not lib64 - r4363 ------------------------------------------------------------------- Fri Oct 20 12:16:06 CEST 2006 - dmacvicar@suse.de - revert keyring changes, causes endless loop (obvious) - add dist-product information, adapt store - version 2.5.0 - r4355 ------------------------------------------------------------------- Fri Oct 20 11:04:26 CEST 2006 - ma@suse.de - zypp-query-pool: For products show additionally distributionName and distributionEdition. (required by #205392) - revision 4349 ------------------------------------------------------------------- Fri Oct 20 00:13:49 CEST 2006 - ma@suse.de - Add accessor for Product distributionName and distributionEdition. (required by #205392) - revision 4347 ------------------------------------------------------------------- Thu Oct 19 18:40:36 CEST 2006 - dmacvicar@suse.de - added test case for KeyRing - fire trustedKeyAdded in all calls to import trusted key not only in signature check workflow. - r4342 ------------------------------------------------------------------- Thu Oct 19 18:27:02 CEST 2006 - mvidner@suse.cz - zypper update: implemented minimal version (patches only) - zypper list-updates: changed default type from package to patch, consider patches affecting the package manager separately ------------------------------------------------------------------- Thu Oct 19 14:09:33 CEST 2006 - dmacvicar@suse.de - version 2.4.1 - r4338 ------------------------------------------------------------------- Thu Oct 19 14:05:18 CEST 2006 - dmacvicar@suse.de - add zypp-query-pool, so registration doesn't depend on libzypp-zmd-backend being installed. Will remove from backend when suseregister gets updated. ------------------------------------------------------------------- Thu Oct 19 12:31:08 CEST 2006 - schwab@suse.de - Make sure config.rpath is present. ------------------------------------------------------------------- Wed Oct 18 21:40:25 CEST 2006 - mvidner@suse.cz - zypper search: fixed uninitialized members that made all searches exact and case sensitve ------------------------------------------------------------------- Wed Oct 18 13:13:16 CEST 2006 - dmacvicar@suse.de - zypp-checkpatches, write in the right file - r4328 ------------------------------------------------------------------- Wed Oct 18 12:45:49 CEST 2006 - schubi@suse.de - Install resolvables although they are unneeded if they have NOT the kind patch/atoms Bug 210538 - freshens/supplements does not work with patterns - r4326 ------------------------------------------------------------------- Tue Oct 17 19:17:39 CEST 2006 - mvidner@suse.cz - zypper service-add -r http://example.org/foo.repo (F#300641). ------------------------------------------------------------------- Tue Oct 17 18:29:34 CEST 2006 - dmacvicar@suse.de - zypp-checkpatches: save version of the generated xml to regenerate it if it changes. save a random token in case of error to force recreating xml file - r4321 ------------------------------------------------------------------- Tue Oct 17 13:49:53 CEST 2006 - dmacvicar@suse.de - remove permissions for zypp checkpatches from spec - r4318 ------------------------------------------------------------------- Tue Oct 17 12:36:57 CEST 2006 - dmacvicar@suse.de - registration fails because of wrong product data (#205392) use DISTPRODUCT,DISTVERSION to create the product resolvable. have this resolvable provide PRODUCT = VERSION - r4312 ------------------------------------------------------------------- Mon Oct 16 18:05:56 CEST 2006 - mvidner@suse.cz - zypper service-add -r ./foo.repo (F#300641). ------------------------------------------------------------------- Mon Oct 16 15:02:00 CEST 2006 - jkupec@suse.cz - zypper: added case-sensitive search, search in descriptions and summaries, search by resolvable type, substring and word matching, support for wildcards - Revision 4303 ------------------------------------------------------------------- Mon Oct 16 13:27:50 CEST 2006 - mvidner@suse.cz - Prevent the user from sending signals to zypp-checkpatches-wrapper (#211286). ------------------------------------------------------------------- Mon Oct 16 12:57:56 CEST 2006 - schubi@suse.de - Dont incomplete an uninstalled resolvable, even not when establishing. Incomplete only makes sense for installed resolvables (when they have broken deps), for patches (because they are needed) and for atoms (because they are used during patch calculation) Bug 198379 - Do not branch for packages with the same NVE but different architectures. Take the best architecture. ------------------------------------------------------------------- Fri Oct 13 16:51:43 CEST 2006 - dmacvicar@suse.de - implement rename source in sourcemanager - r4286 ------------------------------------------------------------------- Fri Oct 13 14:32:44 CEST 2006 - dmacvicar@suse.de - YaST sources: set alias to product summary if empty - show alias on logs. - r4281 ------------------------------------------------------------------- Thu Oct 12 16:40:29 CEST 2006 - dmacvicar@suse.de - version 2.4.0 (bin incompat due to callback fixes) - r4272 ------------------------------------------------------------------- Thu Oct 12 16:30:55 CEST 2006 - ma@suse.de - Provide additional solver status information to the UI. (#162164,F301272) - Fixed UI satus computation in presence of multiple available candidates. - revision 4264 - version 2.3.1 ------------------------------------------------------------------- Thu Oct 12 15:45:12 CEST 2006 - dmacvicar@suse.de - remove const in MediaChangeReport requestMedia that broke cd changing. - r4262 ------------------------------------------------------------------- Wed Oct 11 08:35:48 CEST 2006 - mvidner@suse.cz - zypper: added search (jkupec) - removed the suid bit from zypp-checkpatches-wrapper so that the build passes until permissions.rpm is updated (~#211286). - r4253 ------------------------------------------------------------------- Tue Oct 10 16:03:40 CEST 2006 - dmacvicar@suse.de - Log microseconds if ZYPP_PROFILING env var is enabled. - r4252 ------------------------------------------------------------------- Mon Oct 9 18:15:19 CEST 2006 - dmacvicar@suse.de - YaST sources: Factory cannot be set with 'refresh' enabled (#204957) - get rid of some const bool signatures in Source classes - r4247 ------------------------------------------------------------------- Mon Oct 9 15:11:16 CEST 2006 - mvidner@suse.cz - Added zypp-checkpatches and a suid-root zypp-checkpatches-wrapper. ------------------------------------------------------------------- Fri Oct 6 13:23:32 CEST 2006 - schubi@suse.de - select the best solution: prefering the total amount of install/update packages BEFORE source preferences. Bug 208784 ------------------------------------------------------------------- Fri Oct 6 11:55:11 CEST 2006 - dmacvicar@suse.de - Introduce a method to see if a source supports a kind of resolvable at that time, so we can init a YUM source like factory but avoid parsing it if it contains no patches. - add TODO - zypp-checkpatches xml output - r4235 ------------------------------------------------------------------- Mon Oct 2 16:34:03 CEST 2006 - mvidner@suse.cz - added a CLI preview: zypper - revision 4214 - version 2.2.3 ------------------------------------------------------------------- Mon Oct 2 15:11:26 CEST 2006 - dmacvicar@suse.de - FATE #100165: Make Content File Aware of Different Architectures expand %a in release notes with architecture ------------------------------------------------------------------- Fri Sep 29 16:10:46 CEST 2006 - ma@suse.de - Extended pattern parser to support includes/extends tags as hint for the IO. (F301229) - revision 4199 - version 2.2.2 ------------------------------------------------------------------- Fri Sep 29 00:31:33 CEST 2006 - ma@suse.de - Enabled sending of ScriptResolvableReport. - Changed ScriptResolvableReport::start to send local path of script to be executed. - revision 4190 - version 2.2.1 ------------------------------------------------------------------- Wed Sep 27 14:14:33 CEST 2006 - ma@suse.de - Added ScriptResolvableReport. Callbacks triggered on script execution during commit. (F100233) - revision 4187 - version 2.2.0 ------------------------------------------------------------------- Mon Sep 25 13:52:55 CEST 2006 - mvidner@suse.cz - fix: Url::getRegisteredSchemes() would always return nothing ------------------------------------------------------------------- Fri Sep 22 15:34:11 CEST 2006 - jkupec@suse.cz - Made the build dependency on gettext-devel explicit ------------------------------------------------------------------- Tue Sep 19 10:59:24 CEST 2006 - jsrain@suse.cz - adapted multi-media YUM sources according to official YUM specification (F300743) ------------------------------------------------------------------- Mon Sep 18 17:42:26 CEST 2006 - lslezak@suse.cz - use RPM_OPT_FLAGS (meissner@suse.de) ------------------------------------------------------------------- Mon Sep 18 15:19:53 CEST 2006 - lslezak@suse.cz - SourceFactory::createFrom() - don't loose url,... - r4160 ------------------------------------------------------------------- Mon Sep 18 12:00:46 CEST 2006 - kkaempf@suse.de - reduce logging in ResolvableImpl.cc - rev 4157 ------------------------------------------------------------------- Thu Sep 14 15:59:47 CEST 2006 - schubi@suse.de - Replaced requirementIsMet by requirementIsInstalledOrUnneeded in QueueItemInstall and QueueItemRequire Bug 192535/204913 removed fix:Thu Sep 7 18:31:46 CEST 2006 - schubi@suse.de ------------------------------------------------------------------- Thu Sep 14 12:44:53 CEST 2006 - lslezak@suse.cz - fixed SourceFactory::createFrom() - don't loose alias, cachedir,... parameters ------------------------------------------------------------------- Thu Sep 14 10:21:02 CEST 2006 - mvidner@suse.cz - Use RPM Enhances only if detected at configure time, to allow compilation with older rpm. - callback params: use const string & instead of string (dmacvicar) ------------------------------------------------------------------- Thu Sep 7 18:31:46 CEST 2006 - schubi@suse.de - Do not regarding SATISFIED (regarding UNNEEDED) in isPresent if it is a package/script/message Bug: 192535 ------------------------------------------------------------------- Thu Sep 7 16:19:36 CEST 2006 - dmacvicar@suse.de - add Source_Ref::checksum() which in combination with timestamp can give an idea of a source change. - r4106 ------------------------------------------------------------------- Thu Sep 7 14:32:38 CEST 2006 - mvidner@suse.cz - Implemented fgzstreambuf::compressed_tell and fXstream::getbuf to enable progress reporting on compressed streams. ------------------------------------------------------------------- Wed Sep 6 18:31:20 CEST 2006 - dmacvicar@suse.de - better error propagation - r4096 ------------------------------------------------------------------- Tue Sep 5 19:22:56 CEST 2006 - mt@suse.de - Removed libblkid dependency - the workaround using libblkid to check filesystem on XEN vbd mapped devices is obsolete, because the info is avaliable via /dev/disk/by-label link now. (#197107) - revision 4087 ------------------------------------------------------------------- Thu Aug 31 15:16:11 CEST 2006 - ma@suse.de - PackageProvider: Fixed broken retry. (#202163) - revision 4071 ------------------------------------------------------------------- Wed Aug 30 23:50:55 CEST 2006 - ma@suse.de - Fixed RpmDb::makePackageFromHeader: Catch NULL Header passed as argument and refuse to create a Package from a source package header. - Added method Pathname::extension: Return all of the characters in name after and including the last dot in the last element of name. - PlaindirImpl: Disable rpm signature verification when scaning a directory for rpms. Otherwise we'd need access to the rpm database to get the keys. - revision 4069 ------------------------------------------------------------------- Wed Aug 30 17:42:40 CEST 2006 - schubi@suse.de - Do not regarding SATISFIED/UNNEEDED in isPresent if it is a package/script/message Bug: 192535 ------------------------------------------------------------------- Wed Aug 30 14:29:45 CEST 2006 - ma@suse.de - Speedup computation of number of rpm database entries. - revision 4058 ------------------------------------------------------------------- Tue Aug 29 16:58:20 CEST 2006 - schubi@suse.de - Fixed endless loop in transactResObject Bug 198095 - YaST2 Installaler crashes when selecting Gnome pattern to a KDE installation ------------------------------------------------------------------- Tue Aug 29 12:05:09 CEST 2006 - dmacvicar@suse.de - fix some testcases for tar file parser changes - r4045 ------------------------------------------------------------------- Tue Aug 29 11:19:53 CEST 2006 - dmacvicar@suse.de - missing includes - clean old callbacks - r4041 ------------------------------------------------------------------- Fri Aug 25 14:32:07 CEST 2006 - schubi@suse.de - zyppPattern->install_packages returns SUGGESTED package too. Bug 201476 Revision 4036 ------------------------------------------------------------------- Fri Aug 25 13:05:33 CEST 2006 - schubi@suse.de - New behaviour in the solver: try with 'best' package first, try with 'all' packages if this fails. Bug :Bug 191983 ------------------------------------------------------------------- Fri Aug 25 11:35:48 CEST 2006 - dmacvicar@suse.de - libzypp 2.1.0 - bump version due to incompatible callback changes in KeyRing Sources ------------------------------------------------------------------- Thu Aug 24 15:34:45 CEST 2006 - dmacvicar@suse.de - new keyring callbacks - separate trust key from import key - use PublicKey class instead of params, to be able to add more info like photos later (pending #181682) - update zmart with those callbacks. - better error handling (Exception types) - make tmp file names more readable depending on the context - r4026 ------------------------------------------------------------------- Tue Aug 22 22:35:30 CEST 2006 - dmacvicar@suse.de - decouple probing from source creation, using the new media test for existence functions. - r4019 ------------------------------------------------------------------- Tue Aug 22 17:56:53 CEST 2006 - mt@suse.de - Fixed getDoesFileExist to reset the transfer range - Added logging of curl debug messages to the zypp log. The env var ZYPP_MEDIA_CURL_DEBUG=1 logs curl infos, ZYPP_MEDIA_CURL_DEBUG=2 logs the in/out headers. - r4018 ------------------------------------------------------------------- Fri Aug 18 14:57:35 CEST 2006 - kkaempf@suse.de - remove the /etc/sysconfig/zypp:REWRITE_KERNEL_DEPS = yes check; see rev 3810 below. (#190163) - rev 3998 ------------------------------------------------------------------- Thu Aug 17 18:15:14 CEST 2006 - dmacvicar@suse.de - fix uninstalling of atoms (noop) - r3995 ------------------------------------------------------------------- Wed Aug 16 17:41:40 CEST 2006 - dmacvicar@suse.de - Implement initial verson of Media doesFileExist, for future source probing. - r3984 ------------------------------------------------------------------- Tue Aug 15 12:01:31 CEST 2006 - dmacvicar@suse.de - more dbus_connection_close fixes - r3974 ------------------------------------------------------------------- Tue Aug 15 11:41:41 CEST 2006 - kkaempf@suse.de - clean up 'incomplete' handling in QueueItemEstablish. - rev 3973. ------------------------------------------------------------------- Tue Aug 15 11:30:50 CEST 2006 - kkaempf@suse.de - Don't set 'incomplete' for uninstalled patterns or products. (#198379) - rev 3970. ------------------------------------------------------------------- Mon Aug 14 16:50:53 CEST 2006 - schubi@suse.de - Added new API calls: setAdditionalProvide setAdditionalConflict setAdditionalRequire ------------------------------------------------------------------- Mon Aug 14 11:26:20 CEST 2006 - dmacvicar@suse.de - don't link examples to testsuite library. ------------------------------------------------------------------- Sat Aug 12 17:30:30 CEST 2006 - schwab@suse.de - Disable profiling to work around compiler bug. ------------------------------------------------------------------- Fri Aug 11 17:01:33 CEST 2006 - dmacvicar@suse.de - forward port 3924:3939 - Add explicit finish callbacks for subtasks during ProvidePackage to avoid UI confusion. - rev3957 ------------------------------------------------------------------- Fri Aug 11 11:48:44 CEST 2006 - dmacvicar@suse.de - Introduce examples/ - fix some svn ignores - fix compilation. Use: dbus_connection_close - rev 3943 ------------------------------------------------------------------- Thu Aug 10 16:32:36 CEST 2006 - dmacvicar@suse.de - Initial support for plain directory with rpms as source - r3935 ------------------------------------------------------------------- Tue Aug 8 16:51:45 CEST 2006 - dmacvicar@suse.de - Move the target query by kind function to a iterator, so we dont make a copy of the restore the iterator works loading by demand too ------------------------------------------------------------------- Mon Aug 7 17:57:26 CEST 2006 - dmacvicar@suse.de - rename the new initTarget to initializeTarget, leave the old one as is, but deprecate it. - r3903 ------------------------------------------------------------------- Mon Aug 7 15:10:08 CEST 2006 - dmacvicar@suse.de - forward port from SLES10 branch , till 3888 - Prefer to use available DeltaRpm or PatchRpm instead of downloading full packages. (#168844) - rpmdb : Do not use the deprecated POSIX API, but boost::regex - version 2.0.0 - rev 3893 ------------------------------------------------------------------- Fri Aug 4 15:20:13 CEST 2006 - dmacvicar@suse.de - Separate target init from adding resolvables, getting rid of the uggly bool flag. - dont clear the store each time Target::resolvables is called - Load target resolvables on demand by kind, keep them cached later - add Target::resolvablesByKind(kind) to allow query specific kind without reading all kinds. Used to port TargetProduct, which was reading the whole rpm database only to displayy base product name in YaST help. - commit to pkg-bindings and packager will follow. - jsrain will port more yast stuff, especially inst_source which startup time should by reduced by half afterwards. - rev 3880 ------------------------------------------------------------------- Tue Aug 1 13:37:29 CEST 2006 - dmacvicar@suse.de - forward port: rev 3786 fix to stalle tmpfiles broke patches. SLES was released with this broken. 10.1 has a blocked zypp update because this. Attempt to fix this. (#192535) - fix configure.ac sqlite-source build path - rev 3858 ------------------------------------------------------------------- Fri Jul 21 10:58:58 CEST 2006 - dmacvicar@suse.de - link correctly ------------------------------------------------------------------- Wed Jul 19 13:50:57 CEST 2006 - dmacvicar@suse.de - dont link sqlite in the main lib. - rev 3826 ------------------------------------------------------------------- Tue Jul 18 17:42:45 CEST 2006 - dmacvicar@suse.de - susetags: parse product parser regexp only once - parse yum factory 5 sec. (from 30) faster using another string find algorithm - rev 3824 ------------------------------------------------------------------- Tue Jul 18 12:56:17 CEST 2006 - dmacvicar@suse.de - Digest: Don't read the stream character wise but reading blocks, as advised by matz profiling. - r3819 ------------------------------------------------------------------- Mon Jul 17 12:54:39 CEST 2006 - ma@suse.de - Add "openSUSE", "ATI Technologies Inc." and "Nvidia" to trusted vendors. (#189573) - revision 3804 ------------------------------------------------------------------- Thu Jul 13 12:52:58 CEST 2006 - dmacvicar@suse.de - backport fix for stalle tmpfile (#191311) - rev 3788 ------------------------------------------------------------------- Wed Jun 28 13:22:22 CEST 2006 - mt@suse.de - deactivated media manager code that was disabling the automounter (#172419) - rev 3724 ------------------------------------------------------------------- Mon Jun 26 17:14:53 CEST 2006 - dmacvicar@suse.de - fix autorefresh (#186115) - revision 3708 ------------------------------------------------------------------- Fri Jun 23 13:41:18 CEST 2006 - ma@suse.de - forward port from SLE branch - Set default permission for logfiles to 0640. (#187044) - revision 3696 ------------------------------------------------------------------- Thu Jun 22 16:01:15 CEST 2006 - ma@suse.de - forward port from SLE branch - Fixed installation of SP or Add-On product switching to media 2 too early. (#186607) - revision 3691 ------------------------------------------------------------------- Wed Jun 21 15:47:39 CEST 2006 - dmacvicar@suse.de - forward port from SLE branch - Strip self provides without edition in Resolvable ctor. (#186079) - Source::provideResolvables not implemented in yum source type. Product not set for packages that are available from update source (#186920) - Hook modalias() supplements without package to "kernel" (#184840) - Allow on-demand SourceManager::restore() (#186678) - Hook modalias() supplements without package to "kernel" (#184840) - rev 3676 ------------------------------------------------------------------- Mon Jun 19 15:17:17 CEST 2006 - mt@suse.de - Fix adding resolving of path names for mount points (#181606) - rev 3658 ------------------------------------------------------------------- Mon Jun 19 13:52:14 CEST 2006 - dmacvicar@suse.de - merge download algorithm and refactoring from branch (#181204) ------------------------------------------------------------------- Thu Jun 15 17:53:40 CEST 2006 - mvidner@suse.cz - autodocs: use find+xargs to overcome command length limit, do not call doxygen unnecessarily (#185334). - rev 3645 ------------------------------------------------------------------- Thu Jun 15 07:26:29 CEST 2006 - kkaempf@suse.de - Dont use getZYpp in static constructor (#185198) Bugfix #178292 was wrong. - Only warn on incompleting installed resolvables (#185197) - rev 3644 ------------------------------------------------------------------- Wed Jun 14 22:43:40 CEST 2006 - kkaempf@suse.de - Atoms might only be installed via patches (#184714) - rev 3642 ------------------------------------------------------------------- Wed Jun 14 17:26:39 CEST 2006 - dmacvicar@suse.de - fix for the last stall tmpfile (#178292) - r3637 ------------------------------------------------------------------- Wed Jun 14 12:06:57 CEST 2006 - mt@suse.de - Implemented transfer timeout inside of the progress callback. The timeout value can be set using timeout url parameter, the default transfer timeout is 180 seconds. (#181602) - Added ssl_verify and ssl_capath url options used in https scheme, allowing to change or disable the ssl verify options. (#171622) - Added fallback on read failures of /etc/mtab to /proc/mounts. Improved verbosity in mount and mount check related failure cases, incl. /etc/mtab dump. (#181606) - rev 3623 ------------------------------------------------------------------- Wed Jun 14 10:49:10 CEST 2006 - kkaempf@suse.de - combine knownAliases and knownUrls in a single function. - rev 3616 ------------------------------------------------------------------- Mon Jun 12 16:27:46 CEST 2006 - kkaempf@suse.de - honor parallel installs in resolver context (#181103) - rev 3592 ------------------------------------------------------------------- Mon Jun 12 15:37:10 CEST 2006 - dmacvicar@suse.de - right fix for tmpdir initialized in static constructor - catch around provideJustFile in providePackage -rev 3654 ------------------------------------------------------------------- Mon Jun 12 15:15:07 CEST 2006 - dmacvicar@suse.de - fix #182003 YUM packages without size - rev 3587 ------------------------------------------------------------------- Mon Jun 12 14:58:55 CEST 2006 - kkaempf@suse.de - Allow to restore and remove by Url - rev 3583 ------------------------------------------------------------------- Mon Jun 12 13:07:31 CEST 2006 - kkaempf@suse.de - make atoms parallel installable (#181103) - rev 3580 ------------------------------------------------------------------- Fri Jun 9 16:28:11 CEST 2006 - dmacvicar@suse.de - Allow to restore by alias - r3568 ------------------------------------------------------------------- Fri Jun 9 13:06:16 CEST 2006 - mvidner@suse.cz - Do not fork in a global destructor, perl dislikes it (#182672). Fixes hanging ag_ldapserver and yast2-perl-bindings tests. ------------------------------------------------------------------- Thu Jun 8 16:24:55 CEST 2006 - ma@suse.de - Installation: Assert product information is stored to libzypp database before reboot. (#181198) - Version 1.2.0; revision 3553 ------------------------------------------------------------------- Wed Jun 7 13:55:23 CEST 2006 - visnov@suse.cz - Synchronize keys with rpm database before closing access to it (#182338) - rev 3533 ------------------------------------------------------------------- Wed Jun 7 11:40:46 CEST 2006 - mt@suse.de - Changed to just prefer DVD drives in "dvd:" scheme, instead of filter out the non-DVD drives completely. Allows a fallback to drives without the dvd HAL property e.g. in VMWare. (#177457) - rev 3530 ------------------------------------------------------------------- Wed Jun 7 01:00:06 CEST 2006 - dmacvicar@suse.de - Merge fix for stalle tmpdir due to cyclic references, using a master TmpDir for zypp. (#178292) . There is still 1 tmpdir to fix. - rev 3521 ------------------------------------------------------------------- Wed Jun 7 01:00:05 CEST 2006 - dmacvicar@suse.de - Fixes unneeded file download, and add download callbacks (still need yast side) #181204 and #160206 - Fix stalle tmpdir due to cyclic references, using a master TmpDir for zypp. # 178292 ------------------------------------------------------------------- Wed Jun 7 00:02:18 CEST 2006 - ma@suse.de - fixed memory leak in PersistentStorage (#168690) - revision 3519 ------------------------------------------------------------------- Tue Jun 6 22:24:00 CEST 2006 - ma@suse.de - fixed memory leak in XMLSourceCacheParser (#168690) - revision 3517 ------------------------------------------------------------------- Fri Jun 2 16:09:03 CEST 2006 - schubi@suse.de -latest fi translation added Revision 3502 ------------------------------------------------------------------- Thu Jun 1 15:11:47 CEST 2006 - schubi@suse.de -All installed resolvables has been set to "satisfied" in ResolverContext::unneeded . BUT: Patch concerning resolvables have to be set to "unneeded" although they are installed. In order getting the state "no longer applicable" (Bug 171590) - rev 3496 ------------------------------------------------------------------- Thu Jun 1 14:54:02 CEST 2006 - kkaempf@suse.de - compute status for scripts and messages so their freshens get properly honored (aj with postgresql-server) - rev 3494 ------------------------------------------------------------------- Thu Jun 1 13:57:48 CEST 2006 - dmacvicar@suse.de - revert not-used-yet rpmdb timestamp, as it broke rpmdb::init(). (#180040) - rev 3490 ------------------------------------------------------------------- Thu Jun 1 11:03:34 CEST 2006 - schubi@suse.de - updating gmo files, if po files has been changed; bug 164449 ------------------------------------------------------------------- Wed May 31 18:32:58 CEST 2006 - dmacvicar@suse.de - Dont download twice if starting from 1st time - fix typo - rev 3481 ------------------------------------------------------------------- Wed May 31 17:06:48 CEST 2006 - dmacvicar@suse.de - set cache dir only if storeMetadata is called as a public method.´ - rev 3475 ------------------------------------------------------------------- Wed May 31 15:27:38 CEST 2006 - kkaempf@suse.de - schedule a package for installation if - it freshens / supplements something - it is not installed yet (#178721) - rev 3473 ------------------------------------------------------------------- Wed May 31 15:22:43 CEST 2006 - dmacvicar@suse.de - make susetags also implement download and check first. - rev 3470 ------------------------------------------------------------------- Tue May 30 12:43:47 CEST 2006 - dmacvicar@suse.de - make yum more robust. Never parse from provideFile but only from local disk. Make sure the cache is consistent before recreating it. the code is easier to follow and probably faster. checksum and signatures are checked on caching not on parsing. Required to implement refresh for #154990 - rev 3452 ------------------------------------------------------------------- Wed May 24 16:57:54 CEST 2006 - dmacvicar@suse.de - implement timestamp for YUM and SuseTags - actually use the license to confirm in yum patches - add prerequires tag in yum optonally to the bad designed and nonintuitive pre=1 - rev 3448 ------------------------------------------------------------------- Wed May 24 15:30:32 CEST 2006 - dmacvicar@suse.de - dont pass root on init but before. - implement rpm db modification timestamp not used yet - move Helix source to testsuite out of the solver so we can use it for target, storage tests - add Source_Ref::timestamp(), default to now() in order to implement smart sync of sources by zmd - don't parse desc and summary twice - fix a segfault with tranlated text - fix broken size tag introduced in rev 3427 - rev 3446 ------------------------------------------------------------------- Tue May 23 20:53:27 CEST 2006 - dmacvicar@suse.de - dont accept corrupt sources, improve logs ------------------------------------------------------------------- Tue May 23 17:26:41 CEST 2006 - ma@suse.de - Added PoolItem_Ref::statusReset. Resets the PoolItem status without loosing autoprotection (eg. for foreign vendor). (assists #177469) - rev 3431 ------------------------------------------------------------------- Tue May 23 17:04:04 CEST 2006 - jsrain@suse.cz - added mediaNr() to PatchRpm and DeltaRpm classes - rev 3430 ------------------------------------------------------------------- Tue May 23 15:58:04 CEST 2006 - dmacvicar@suse.de - enable YUM license to confirm. needed for #174476 - adapt store to serialize and read all new resobject fields - use install-time to now() when serializing (#174653) - rev 3427 ------------------------------------------------------------------- Mon May 22 20:51:59 CEST 2006 - ma@suse.de - Do not violate install order when restricting commit to a certain mediaNumber. (#170079) - Version 1.1.0; rev 3423 ------------------------------------------------------------------- Mon May 22 19:03:20 CEST 2006 - mvidner@suse.cz - Added SourceManager::findSourceByUrl to overcome alias mismatches (#177543). - rev 3420 ------------------------------------------------------------------- Mon May 22 17:19:25 CEST 2006 - ma@suse.de - Order all objects according to prerequirements, not just packages. (#173690) - rev 3419 ------------------------------------------------------------------- Mon May 22 15:57:43 CEST 2006 - schubi@suse.de - Added new translation ------------------------------------------------------------------- Fri May 19 12:53:44 CEST 2006 - dmacvicar@suse.de - fix missing homedir option for gpg (#171055) - rev 3415 ------------------------------------------------------------------- Thu May 18 19:08:52 CEST 2006 - ma@suse.de - Prevent against daemons launched in rpm %post, that do not close their filedescriptors. (#174548) - Version 1.0.1; rev 3413 ------------------------------------------------------------------- Thu May 18 16:51:41 CEST 2006 - jsrain@suse.cz - fixed media number of package retrieved as a part of a patch (#174841) - rev 3409 ------------------------------------------------------------------- Thu May 18 16:16:21 CEST 2006 - dmacvicar@suse.de - fix missing package descriptions due to filtered packages by incompatible architectures. (#159109) - rev 3404 ------------------------------------------------------------------- Thu May 18 16:08:42 CEST 2006 - kkaempf@suse.de - decrease logging in DiskUsageCounter and Modalias (#163186) - rev 3406 ------------------------------------------------------------------- Thu May 18 10:43:47 CEST 2006 - ma@suse.de - Stay backward comapatible. ------------------------------------------------------------------- Tue May 16 21:35:27 CEST 2006 - ma@suse.de - Make basic attributes available through ResObject. - Let ResObjects which do not require media access during commit return ZERO sourceMediaNr (required for #173690) - Version 1.0.0 - rev 3390 ------------------------------------------------------------------- Tue May 16 15:11:35 CEST 2006 - kkaempf@suse.de - reduce logging verbosity (#163186) - rev 3381 ------------------------------------------------------------------- Tue May 16 14:00:57 CEST 2006 - schubi@suse.de - setCandidate accept candidates with compatible architectures too. Not only with the same architecture. Bug 172594 - If update package has differet arch, UI display is wrong ------------------------------------------------------------------- Tue May 16 09:30:45 CEST 2006 - mvidner@suse.cz - Added Source_Ref::resStoreInitialized. If we know that noone has seen the resolvables yet, we can skip them too, eg. when deleting a source. (#174840) - rev 3378 ------------------------------------------------------------------- Mon May 15 12:41:39 CEST 2006 - kkaempf@suse.de - Honor freshens as conditionals independant from the installed/ uninstalled status (#174797) - rev 3376 ------------------------------------------------------------------- Mon May 15 11:15:03 CEST 2006 - kkaempf@suse.de - State modifier "unneeded" is transitive for patches (#171590) - rev 3375 ------------------------------------------------------------------- Thu May 11 17:42:29 CEST 2006 - schubi@suse.de - Do not transact itself (update) in the transactResObject mechanism Bug 174290 ------------------------------------------------------------------- Thu May 11 16:37:51 CEST 2006 - mt@suse.de - Reenabled improved large file support flags (unintentionally removed in rev 1544). Fixes bug #173753. - Added large file support flags to libzypp.pc file allowing consistence checks in the application using features variable - rev 3366 ------------------------------------------------------------------- Thu May 11 10:49:36 CEST 2006 - mvidner@suse.cz - SourceManager: moved source deletion before creation so that we can recreate a deleted one (#174295) - removed dead code dealing with known_caches from SourceManager::store (see r3195) - r3362 ------------------------------------------------------------------- Thu May 11 10:15:14 CEST 2006 - jsrain@suse.cz - fixed returning product short name and summary if product read from target store (#148625) - rev 3360 ------------------------------------------------------------------- Wed May 10 11:39:06 CEST 2006 - jsrain@suse.cz - set media verifier on redirected medium (#172599) - rev 3359 ------------------------------------------------------------------- Mon May 8 17:28:42 CEST 2006 - kkaempf@suse.de - fix 'transactResKind' to collect best providers by capability and to recursively transact items of same kind (#170114) - rev 3355 ------------------------------------------------------------------- Mon May 8 16:45:46 CEST 2006 - dmacvicar@suse.de - serialize the full URL to avoid missing password and other url settings (#148108) - rev 3353 ------------------------------------------------------------------- Fri May 5 17:47:14 CEST 2006 - mt@suse.de - Added a 60 sec connect timeout to MediaCurl (#172860) - rev 3348 ------------------------------------------------------------------- Thu May 4 15:15:37 CEST 2006 - kkaempf@suse.de - re-fetch also .asc and .key files before checking signature (#172597) - rev 3350 (3345-10.1) ------------------------------------------------------------------- Wed May 3 17:40:45 CEST 2006 - dmacvicar@suse.de - Fix yum key verification, because a double variable declaration ------------------------------------------------------------------- Wed May 3 15:34:00 CEST 2006 - dmacvicar@suse.de - use --no-default-keyring to avoid creating a default gpg dir in / (#171055) - rev 3335 ------------------------------------------------------------------- Wed May 3 14:40:25 CEST 2006 - dmacvicar@suse.de - Fix YUM signature checking, we were passing the key instead of the signature. - When the user trust a key, sync again. Bye to the session trusted keys and user being asked all the time. (#171213) - r3332 ------------------------------------------------------------------- Wed May 3 14:22:02 CEST 2006 - ma@suse.de - Cleanup index tables when removing items from pool (#170564). ------------------------------------------------------------------- Wed May 3 12:23:36 CEST 2006 - kkaempf@suse.de - backout rev 3246->3275 of TargetImpl.cc - add missing testsuite/utils/TestUtils.h - rev 3330 ------------------------------------------------------------------- Wed May 3 12:13:38 CEST 2006 - dmacvicar@suse.de - more fixes for #171062, there were some files still not being read from cache. - r3327 ------------------------------------------------------------------- Tue May 2 18:41:44 CEST 2006 - dmacvicar@suse.de - cache keys and signature. Remove lot of duplicated code. (#171062) - r3320 ------------------------------------------------------------------- Tue May 2 18:02:46 CEST 2006 - mt@suse.de - Disabled isUseableAttachPoint check in MediaDIR -- we do not mount here anything, so it is OK to use any dir (171351). - rev 3318 ------------------------------------------------------------------- Tue May 2 14:58:03 CEST 2006 - kkaempf@suse.de - parse "license-to-confirm" in primary.xml (#168437) - rev 3312 ------------------------------------------------------------------- Mon May 1 17:44:29 CEST 2006 - kkaempf@suse.de - Don't try to store 'Atom', not needed and the backend store rejects them anyways (addtion to #168610) - rev 3306 ------------------------------------------------------------------- Mon May 1 04:43:01 CEST 2006 - mt@suse.de - Improved device check in MediaDISK using libblkid (Bug #158529) - Allow to provide sysfs path via $SYSFS_PATH in MediaCD.cc and added a check if it is a directory - Added libcurl and libblkid checks to configure.ac - Added e2fsprogs(-devel) requires to the spec file - rev 3303 ------------------------------------------------------------------- Sat Apr 29 21:46:22 CEST 2006 - kkaempf@suse.de - dont download "other" during key check (#171041) - rev 3294 ------------------------------------------------------------------- Sat Apr 29 11:05:15 CEST 2006 - kkaempf@suse.de - allow parallel installs of atoms (used to fulfill patch require- ments, atoms aren't installed anyways) (#170098) - some testsuite improvements. - rev 3288 ------------------------------------------------------------------- Fri Apr 28 20:15:06 CEST 2006 - dmacvicar@suse.de - get rid of autobuild check when throwing exceptions without throw but with a macro, returning a null pointer at the end (never reached). ------------------------------------------------------------------- Fri Apr 28 19:50:28 CEST 2006 - ma@suse.de - Do not violate install order when restricting commit to a certain mediaNumber. (#170079) ------------------------------------------------------------------- Fri Apr 28 18:12:26 CEST 2006 - dmacvicar@suse.de - Don't use throw directly! use ZYPP_THROW with a Exception class, otherwise package bindings will not catch them. Should fix crashes when reading broken sources with yast. - rev 3272 ------------------------------------------------------------------- Fri Apr 28 15:29:32 CEST 2006 - schubi@suse.de - Bug 162064 - font packages are not installed for locale, e.g. khmer font not installed after CD1 revision 3269 ------------------------------------------------------------------- Fri Apr 28 14:55:04 CEST 2006 - kkaempf@suse.de - revert bugfix #168906 (fom rev 3219), it filters too many errors. - further improve on #168840 (from rev 3231), match on name-edition when filtering by best arch. (#170098) - rev 3268 ------------------------------------------------------------------- Fri Apr 28 13:01:58 CEST 2006 - dmacvicar@suse.de - #170093 , lot of package descriptions missing - rev 3263 ------------------------------------------------------------------- Thu Apr 27 20:28:01 CEST 2006 - dmacvicar@suse.de - try to fix wrong permissions of /var/lib/zypp created by old zypp, only when running as root they are fixed (#169094) - YUM: Verify signatures on factoryInit. Dont provide other.xml. Cleanups, better logging. When refreshing signed soruces, don't refresh is source has not changed. - YaST sources: don't refresh if media file has not changed. - Show full url of index files in sources for signature validation (mentioned in #170139 comment #3)- ------------------------------------------------------------------- Thu Apr 27 18:41:02 CEST 2006 - jsrain@suse.de - udpated media ID syntax for external scripts (to be consistent with packages) (#170247) - rev 3256 ------------------------------------------------------------------- Thu Apr 27 18:33:48 CEST 2006 - jsrain@suse.de - set media ID to 1 if not specified in YUM metadata (#167452) - rev 3255 ------------------------------------------------------------------- Thu Apr 27 11:55:05 CEST 2006 - kkaempf@suse.de - If freshen and supplement are fulfilled, install any kind of resolvable if not yet installed (#165746) - rev 3249 ------------------------------------------------------------------- Wed Apr 26 18:00:42 CEST 2006 - kkaempf@suse.de - make downloaded script executable. (#169191) - rev 3247 ------------------------------------------------------------------- Wed Apr 26 10:43:03 CEST 2006 - kkaempf@suse.de - Improve on last fix, compare only compatible archs. - rev 3233 ------------------------------------------------------------------- Tue Apr 25 19:36:13 CEST 2006 - kkaempf@suse.de - Only choose best arch of multiple package atoms with identical name (#168840) - rev 3231 ------------------------------------------------------------------- Tue Apr 25 16:59:51 CEST 2006 - dmacvicar@suse.de - pass empty strings to UI as key properties if unknown key (#169114) - rev 3228 ------------------------------------------------------------------- Tue Apr 25 16:47:35 CEST 2006 - kkaempf@suse.de - refrain from parsing 'other.xml' (#159316) - rev 3226 ------------------------------------------------------------------- Tue Apr 25 16:34:50 CEST 2006 - visnov@suse.cz - in source refresh, clean up the cache dir if fails - do not require repomd.xml.asc when creating a cache (#163765) - rev 3224 ------------------------------------------------------------------- Tue Apr 25 15:17:15 CEST 2006 - dmacvicar@suse.de - Check if a file exists before providing it, and just handling the exception is not sufficient, because it can release the media. it nows get all possible packages.X translations an then it selects the candidate from the existing ones (#168654) - rev 3221 ------------------------------------------------------------------- Tue Apr 25 12:28:17 CEST 2006 - kkaempf@suse.de - dont report conflicts if item is neither installed nor to-be-installed (#168906) - rev 3219 ------------------------------------------------------------------- Tue Apr 25 11:27:09 CEST 2006 - dmacvicar@suse.de - #168060 , propagate the file description or original name to the UI and not the checked filename path, which could be a tmp file. Requires changes in pkg-manager, and probably zmd-helpers. - rev 3215 ------------------------------------------------------------------- Mon Apr 24 18:27:59 CEST 2006 - dmacvicar@suse.de - /var/lib/zypp/db/languages/* are empty files (##168355) - r3206 ------------------------------------------------------------------- Mon Apr 24 17:45:07 CEST 2006 - dmacvicar@suse.de - All resolvables must honor arch, so Arch_noarch in target/store/XMLFilesBackend.cc is wrong (#160792) - Introduced code to honour shared package descriptions (#159109) - r3204 ------------------------------------------------------------------- Mon Apr 24 16:43:48 CEST 2006 - jsrain@suse.de - replace '_' in YUM elements/attributes with '-' (#168762) - rev 3201 ------------------------------------------------------------------- Mon Apr 24 16:15:02 CEST 2006 - mt@suse.de - Fixed iseries workaround - interchanged variables for scsi devices, added debug messages about the steps (#163971). - Added getenv NULL ptr check and verify of the $HOME dir's and ~/.curlrc file's ownership (#163203). - rev 3199 ------------------------------------------------------------------- Mon Apr 24 15:44:18 CEST 2006 - ma@suse.de - Use filesystem::TmpDir to create unique and unused Source cache directories. (#168051) ------------------------------------------------------------------- Mon Apr 24 14:30:41 CEST 2006 - ma@suse.de - Enable signature checks per default. (#168525) ------------------------------------------------------------------- Mon Apr 24 11:20:17 CEST 2006 - visnov@suse.cz - fix callbacks for providing a single file (#160206) ------------------------------------------------------------------- Sun Apr 23 12:28:21 CEST 2006 - kkaempf@suse.de - If an installed package looses a dependency, the solver tries to upgrade it. Limit the upgrade candidates to best arch, best edition. - filter 'other' entries with incompatible arch in yum parser. - rev 3177 ------------------------------------------------------------------- Fri Apr 21 22:47:18 CEST 2006 - jsrain@suse.de - initialize the product category according to source (#168061) - rev 3172 ------------------------------------------------------------------- Fri Apr 21 18:32:00 CEST 2006 - mvidner@suse.cz - delete only one older version of a xml-store resolvable (half-baked, but the previous attempt was charred) ------------------------------------------------------------------- Fri Apr 21 17:49:18 CEST 2006 - jsrain@suse.de - moved license_to_confirm to primary.xml - rev 3170 ------------------------------------------------------------------- Fri Apr 21 16:36:14 CEST 2006 - ma@suse.de - Removed deprecated oldstyle commit methods. ------------------------------------------------------------------- Fri Apr 21 15:58:14 CEST 2006 - mvidner@suse.cz - when installing a xml-store resolvable (all except package, message, script), delete older versions (#160792). - read selection edition from the XML store - rev 3167 ------------------------------------------------------------------- Thu Apr 20 14:10:41 CEST 2006 - kkaempf@suse.de - properly clear transaction flag after successful commit (see rev 3122, #164365, #167285) - rev 3157 ------------------------------------------------------------------- Thu Apr 20 13:14:25 CEST 2006 - kkaempf@suse.de - recursively soft-uninstall recommended package on real uninstall, not on update (#167603) - rev 3155 ------------------------------------------------------------------- Thu Apr 20 13:01:28 CEST 2006 - dmacvicar@suse.de - fix #167605 (importing keys to rpm multiple times due to wrong interpretation of rpm gpg versioning. - add support for reading the rpm keys, with full id and fingerprint - rev 3153 ------------------------------------------------------------------- Wed Apr 19 16:47:34 CEST 2006 - kkaempf@suse.de - don't add duplicate error infos to ResolverContext (#167309) - rev 3146 ------------------------------------------------------------------- Wed Apr 19 14:10:10 CEST 2006 - kkaempf@suse.de - fix Resolver::transactReset() (see rev 3122) (#167285) - rev 3140 ------------------------------------------------------------------- Wed Apr 19 13:48:26 CEST 2006 - ma@suse.de - Introduced $ZYPP_KEYRING_DEFAULT_ACCEPT_ALL. If this environment variable is present, all signature checking callbacks will default to 'accept', in case no recipient is present. ------------------------------------------------------------------- Wed Apr 19 11:37:47 CEST 2006 - dmacvicar@suse.de - read content file on construction, and make provideProduct only insert the already read product object into the store (#165826) (dmacvicar) - When the signature is not found, warn the user about a unsigned source. When the key is not found, do nothing, it can be in the keyring already. (#166016) (dmacvicar) - enable key verification only if ZYPP_CHECKSIG env var is set (dmacvicar) - r1529 ------------------------------------------------------------------- Tue Apr 18 20:41:48 CEST 2006 - kkaempf@suse.de - fix bugfix 164365, fix bug 167285 Actually clear the transcation state instead of locking it to 'dont transact' - rev 3122 ------------------------------------------------------------------- Tue Apr 18 15:46:59 CEST 2006 - visnov@suse.cz - revert the signature/digest checking callbacks - rev 3115 ------------------------------------------------------------------- Tue Apr 18 15:14:35 CEST 2006 - kkaempf@suse.de - Bugfix #165670 - Honor keep requests. - Dont flag "locked uninstall" as error if a keep request was issued before. - rev 3114 ------------------------------------------------------------------- Tue Apr 18 12:04:35 CEST 2006 - kkaempf@suse.de - rule out locked items during distribution upgrade as early as possible. (#165670) - rev 3110 ------------------------------------------------------------------- Mon Apr 17 16:04:35 CEST 2006 - kkaempf@suse.de - Bugfix #166212 - use APPL_LOW as 'ui initiated, by solver' in transactKind() and transactResObject(). - resetTransaction(APPL_LOW) before resolving - enhance transactCaps by using the same algorithm as in QueueItemRequire (before: transact all requires and recommends by name now: transact best requires and recommends by provides) - rev 3107 ------------------------------------------------------------------- Fri Apr 14 16:04:35 CEST 2006 - visnov@suse.cz - new callbacks for failing digest - rev 3098 ------------------------------------------------------------------- Thu Apr 13 17:01:41 CEST 2006 - visnov@suse.cz - ask for file without a checksum (#165125) ------------------------------------------------------------------- Thu Apr 13 16:59:38 CEST 2006 - kkaempf@suse.de - dont install satisfied resolvables (#165843) - rev 3095 ------------------------------------------------------------------- Thu Apr 13 16:00:21 CEST 2006 - kkaempf@suse.de - dont abort on failed "dry_run" (#164583) - rev 3091 ------------------------------------------------------------------- Thu Apr 13 15:19:20 CEST 2006 - visnov@suse.cz - Ask user if signature file does not exist (#163765) - handle repomd.xml.asc as optional file (#163765) - rev 3089 ------------------------------------------------------------------- Thu Apr 13 13:52:08 CEST 2006 - schubi@suse.de - Bug 164365 - build 906: Deselecting a selection, all packages are still selected - rev 3087 ------------------------------------------------------------------- Thu Apr 13 11:57:58 CEST 2006 - kkaempf@suse.de - Dont do transitive uninstalls on uninstalled or upgraded items. (#165798) - rev 3083 ------------------------------------------------------------------- Wed Apr 12 17:57:21 CEST 2006 - ma@suse.de - Added 'rpmNoSignature' to ZYppCommitPolicy (#163862) ------------------------------------------------------------------- Wed Apr 12 16:44:57 CEST 2006 - mvidner@suse.cz - Product::updateUrls: restore it from the XML store; fixed content parsing (#163192). - restore product flags fro the XML store - rev 3074 ------------------------------------------------------------------- Wed Apr 12 13:48:25 CEST 2006 - kkaempf@suse.de - Only consider best arch/version (#165477) - rev 3069 ------------------------------------------------------------------- Wed Apr 12 10:57:50 CEST 2006 - ma@suse.de - No need to parse tags at all if there is no item to store values (e.g. data for unwanted arch). Fixed segv trying to store data in NULL item. (#165479) - rev3065 ------------------------------------------------------------------- Tue Apr 11 19:48:51 CEST 2006 - mt@suse.de - Improved Url path name "//" vs. "/%2f" handling; now if the url has an authority, "/%2f" is used for ftp only (#163784) - rev 3062 ------------------------------------------------------------------- Tue Apr 11 16:41:02 CEST 2006 - jsrain@suse.de - fixed storing patch scripts to target store (#159928) - rev 3058 ------------------------------------------------------------------- Tue Apr 11 16:24:26 CEST 2006 - kkaempf@suse.de - if a patch is bad, only skip this patch, not everything (#165200) - rev 3057 ------------------------------------------------------------------- Tue Apr 11 15:42:32 CEST 2006 - ma@suse.de - Susetags:Selections: Allow parsing older .sel file formats. (#159851) - Susetags:Pattern: Fixed parser. ------------------------------------------------------------------- Tue Apr 11 15:21:48 CEST 2006 - kkaempf@suse.de - when uninstalling, only re-establish installed items supplementing the to-be-uninstalled one. (variant of #165111) - rev 3054 ------------------------------------------------------------------- Tue Apr 11 14:17:00 CEST 2006 - ma@suse.de - Susetags:Package: Parse and provide ins/delnotify texts. ------------------------------------------------------------------- Tue Apr 11 13:01:31 CEST 2006 - kkaempf@suse.de - when checking freshens/supplements at install, only consider best architecture/edition (#164453) - rev 3051 ------------------------------------------------------------------- Tue Apr 11 10:31:41 CEST 2006 - kkaempf@suse.de - when checking for supplements, only consider best arch, best edition for installation (#165111) - rev 3047 ------------------------------------------------------------------- Tue Apr 11 10:23:14 CEST 2006 - schubi@suse.de - Bug 165117: build 910: Update: Splitted packages are selected for all archs ------------------------------------------------------------------- Tue Apr 11 09:30:14 CEST 2006 - visnov@suse.cz - ask user if a file exists but does not have a checksum (#162797) - rev 3044 ------------------------------------------------------------------- Mon Apr 10 22:39:34 CEST 2006 - jsrain@suse.de - parse time and size elements from delta and patch RPM - rev 3043 ------------------------------------------------------------------- Mon Apr 10 18:55:03 CEST 2006 - mt@suse.de - Added detection of iSeries virtual CD (/dev/iseries/vcd[a-h]) devices - on powerpc only (#163971) - rev 3042 ------------------------------------------------------------------- Mon Apr 10 18:05:51 CEST 2006 - kkaempf@suse.de - fix endless loop in patches parsing. - rev 3039 ------------------------------------------------------------------- Mon Apr 10 17:00:05 CEST 2006 - jsrain@suse.de - fixed media handling in SuSEtags source (#164879) - rev 3037 ------------------------------------------------------------------- Mon Apr 10 16:30:54 CEST 2006 - kkaempf@suse.de - honor 'dry_run' on package remove (#164732) - rev 3036 ------------------------------------------------------------------- Mon Apr 10 13:12:49 CEST 2006 - kkaempf@suse.de - add files from yum filelist as provides to package (#164731) - rev 3032 ------------------------------------------------------------------- Mon Apr 10 11:10:37 CEST 2006 - kkaempf@suse.de - honor "+Enh:/-Enh:" in packages file (#156513) ------------------------------------------------------------------- Mon Apr 10 10:56:24 CEST 2006 - visnov@suse.cz - fix callback receiver signature to match the callback for removing package ------------------------------------------------------------------- Mon Apr 10 10:32:22 CEST 2006 - mvidner@suse.cz - Added Product::updateUrls, from content/UPDATEURLS (#163192). - rev 3024 ------------------------------------------------------------------- Sat Apr 8 12:03:37 CEST 2006 - schubi@suse.de - Bug 164440; Taking wrong architecture while updating obsoletes splitted packages - rev 3022 ------------------------------------------------------------------- Sat Apr 8 10:07:06 CEST 2006 - kkaempf@suse.de - allow relative paths with url file: - dont filter atoms from going into pool, multi-arch patch requirements need them. Instead, treat atoms with incompatible architecture as unneeded. - rev 3018 ------------------------------------------------------------------- Fri Apr 7 23:57:37 CEST 2006 - jsrain@suse.de - product now provides short name - rev 3013 ------------------------------------------------------------------- Fri Apr 7 20:42:09 CEST 2006 - jsrain@suse.de - read metadata for packages from correct tags in patches (#163220) - rev 3011 ------------------------------------------------------------------- Fri Apr 7 19:57:41 CEST 2006 - kkaempf@suse.de - more detailed resolver error reports (#162994) - rev 3010 ------------------------------------------------------------------- Fri Apr 7 17:35:07 CEST 2006 - visnov@suse.cz - report package download progress (#160966) - rev 3007 ------------------------------------------------------------------- Fri Apr 7 16:27:35 CEST 2006 - kkaempf@suse.de - transact also for languages (#163819) - rev 3004 ------------------------------------------------------------------- Fri Apr 7 15:08:06 CEST 2006 - kkaempf@suse.de - loop through all affected ResObjects in transactResKind (#163819) - rev 3002 ------------------------------------------------------------------- Fri Apr 7 12:42:35 CEST 2006 - kkaempf@suse.de - allow re-installation of non-packages (#162906) - rev 2998 ------------------------------------------------------------------- Fri Apr 7 11:50:22 CEST 2006 - mt@suse.de - Added loop checking for scsi cdroms (/sys/block/srX) in case HAL does not provide any drives like on iSeries (#163971). - rev 2995 ------------------------------------------------------------------- Fri Apr 7 11:05:30 CEST 2006 - kkaempf@suse.de - add 'licenceToConfirm()' to Product. (#164375) ------------------------------------------------------------------- Fri Apr 7 10:36:05 CEST 2006 - ma@suse.de - Avoid excessive CD hopping on commit. But still far from being perfect. (#159679) - Fixed Target::commit: Despite dry_run set True, packages were depeted. ------------------------------------------------------------------- Fri Apr 7 08:32:32 CEST 2006 - visnov@suse.cz - honour if user decides to skip a package in commit (#156031) ------------------------------------------------------------------- Thu Apr 6 18:14:30 CEST 2006 - jsrain@suse.de - fixed parsing external reference to script in patch (#163221) - r2981 ------------------------------------------------------------------- Thu Apr 6 17:07:10 CEST 2006 - dmacvicar@suse.de - cache and provide content.asc/key optionally. Dont show a popup if they dont exists. (dmacvicar) - Actually abort when verify signature workflow is false. (dmacvicar) - r2978 ------------------------------------------------------------------- Thu Apr 6 16:37:49 CEST 2006 - jsrain@suse.de - fixed setting autorefresh flag for installation sources ------------------------------------------------------------------- Thu Apr 6 15:53:02 CEST 2006 - kkaempf@suse.de - drop patches with incompatible architecture. - rev 2972 ------------------------------------------------------------------- Thu Apr 6 15:33:11 CEST 2006 - mt@suse.de - Added info method to media verifier base and more debug info - rev 2970 ------------------------------------------------------------------- Wed Apr 5 19:27:46 CEST 2006 - kkaempf@suse.de - Dont deny the "/" attach point in MediaDIR, since this is used for all "file:" urls, esp. local packages. - rev 2962 ------------------------------------------------------------------- Wed Apr 5 18:21:58 CEST 2006 - schubi@suse.de - Bug 159673 - only one conflict solvable per page ------------------------------------------------------------------- Wed Apr 5 18:01:37 CEST 2006 - kkaempf@suse.de - parse all dependencies of 'packages' file (#163773) - rev 2957 ------------------------------------------------------------------- Wed Apr 5 17:47:04 CEST 2006 - dmacvicar@suse.de - Use the original media descr_dir on refresh for suse tags source (#163196) - r2952 ------------------------------------------------------------------- Wed Apr 5 16:44:08 CEST 2006 - kkaempf@suse.de - add Source::setUrl() for zmd backend helper. - rev 2946 ------------------------------------------------------------------- Wed Apr 5 16:44:01 CEST 2006 - dmacvicar@suse.de - implement rpm keyring / zypp tmp keyring two-way syncronization at rpm target init. (dmacvicar) - r2949 ------------------------------------------------------------------- Wed Apr 5 16:28:42 CEST 2006 - mt@suse.de - Fixed MediaDISK to use a mount -oro,bind id the disk partition is already attached e.g. by the automounter. Try to mount it a second time may fail (#163486). - rev 2944 ------------------------------------------------------------------- Wed Apr 5 15:04:31 CEST 2006 - kkaempf@suse.de - honor optional 3rd parameter to "=Loc:" key of packages (#154337) - rev 2940 ------------------------------------------------------------------- Wed Apr 5 12:48:19 CEST 2006 - visnov@suse.cz - only try to create a source of a given type when restoring from the persistent store (#162111) ------------------------------------------------------------------- Wed Apr 5 11:36:54 CEST 2006 - kkaempf@suse.de - parse all dependencies for patterns (.pat) files (#160602) - drop YOUPATH and YOUURL from content file. - rev 2924 ------------------------------------------------------------------- Wed Apr 5 09:27:08 CEST 2006 - visnov@suse.cz - properly initialize autorefresh for non-remote sources (#154990) - rev 2919 ------------------------------------------------------------------- Tue Apr 4 19:19:39 CEST 2006 - mt@suse.de - Added flag to MediaManager::isUseableAttachPoint, whether to check against system mount entries or not. - Disallow to use the attachpoints of another media handlers as source path in MediaDIR. - rev 2917 ------------------------------------------------------------------- Tue Apr 4 18:47:01 CEST 2006 - dmacvicar@suse.de -implement callbacks for when package verification (checksum) fails, offer to retry or abort ------------------------------------------------------------------- Tue Apr 4 16:57:51 CEST 2006 - dmacvicar@suse.de - Fix construction of checksum objects when using non-standard checksum algorithms - Fix broken YUM cache - r2913 ------------------------------------------------------------------- Tue Apr 4 16:54:44 CEST 2006 - kkaempf@suse.de - Keep packages with no version upgrade installed during distribution upgrade (#162972) - add 'transactReset()' helper function for UI. - rev 2908 ------------------------------------------------------------------- Tue Apr 4 14:47:14 CEST 2006 - dmacvicar@suse.de - r2906 ------------------------------------------------------------------- Tue Apr 4 14:43:15 CEST 2006 - ma@suse.de - Fixed candidate handling in ui::Selectable. (#156589) ------------------------------------------------------------------- Tue Apr 4 14:06:23 CEST 2006 - dmacvicar@suse.de - fix #162984 , gpg hangs because the matching data file for the key cannot be find. (dmacvicar) - Fix restore of YUM source using the same cache dir semantics as susetags instead of assuming there is a cache if a cache_dir was given. (dmacvicar) ------------------------------------------------------------------- Tue Apr 4 12:37:51 CEST 2006 - kkaempf@suse.de - use DISTPRODUCT/DISTVERSION from content file to generate the product name, version, and release. - rev 2902 ------------------------------------------------------------------- Mon Apr 3 20:45:55 CEST 2006 - mt@suse.de - Removed broken forcing of absolute ftp paths added in rev2705 to MediaCurl, refined cleanupPathName/setPathName in url (#154197). - rev 2900 ------------------------------------------------------------------- Mon Apr 3 19:30:35 CEST 2006 - kkaempf@suse.de - add Resolver::freshenPool() (#156980) - rev 2893 ------------------------------------------------------------------- Mon Apr 3 08:33:12 CEST 2006 - kkaempf@suse.de - skip incompatible archs in filelist parsing. - restrict pathes to 'interesting' ones (/bin/, /sbin/, /lib/, /lib64/, ...) - rev 2886 ------------------------------------------------------------------- Sun Apr 2 22:18:06 CEST 2006 - kkaempf@suse.de - skip incompatible archs in primary parsing. - rev 2883 ------------------------------------------------------------------- Sun Apr 2 11:17:56 CEST 2006 - kkaempf@suse.de - allow setting of source when parsing local .rpm (#147765) - rev 2880 ------------------------------------------------------------------- Fri Mar 31 18:53:55 CEST 2006 - schubi@suse.de - Do not update packages over other architectures ------------------------------------------------------------------- Fri Mar 31 18:28:59 CEST 2006 - sh@suse.de - Added zypp/ui/UserWantedPackages to support the UI's "automatic changes" dialog (bug #152700) ------------------------------------------------------------------- Fri Mar 31 18:02:05 CEST 2006 - jsrain@suse.de - use KeyRing class to validate repomd.xml (#160909) ------------------------------------------------------------------- Fri Mar 31 17:33:21 CEST 2006 - dmacvicar@suse.de - Product resolvables should be readable by normal users. (#162474) (dmacvicar) - implemented keyring and metadata signature verification in susetags source - dont delete the lock if we did not acquire it - r2847 ------------------------------------------------------------------- Fri Mar 31 16:34:51 CEST 2006 - mt@suse.de - Added disabling of the automounter while MediaManager init and restoring of the old state on exit (#154326). - Implemented check if media (CD) is automounted or not - rev 2840 ------------------------------------------------------------------- Fri Mar 31 13:27:09 CEST 2006 - mt@suse.de - Implemented several hal get/set/removeDeviceProperty wrappers - Improved HalException to allow to fetch HAL/DBUS error componets - rev 2830 ------------------------------------------------------------------- Fri Mar 31 12:44:25 CEST 2006 - kkaempf@suse.de - honor subscription status of catalogs (#162350) - rev 2827 ------------------------------------------------------------------- Fri Mar 31 11:29:05 CEST 2006 - mt@suse.de - Enabled CD eject error reporting exceptions (#154326) - rev 2822 ------------------------------------------------------------------- Fri Mar 31 06:40:51 CEST 2006 - kkaempf@suse.de - support "dry run" (#159467) - implement "transactResKind" (#161400) - rev 2817 ------------------------------------------------------------------- Thu Mar 30 17:22:49 CEST 2006 - jsrain@suse.de - add checksum for external patches (#159928) ------------------------------------------------------------------- Thu Mar 30 16:48:01 CEST 2006 - kkaempf@suse.de - calculate product architecture (#158198) ------------------------------------------------------------------- Wed Mar 29 23:28:13 CEST 2006 - jsrain@suse.de - fixed checking checksum of YUM metadata, added sha1 vs. sha256 detection ------------------------------------------------------------------- Wed Mar 29 23:12:30 CEST 2006 - ma@suse.de - Auto protect installed packages from unknown vendor. (#157446) ------------------------------------------------------------------- Wed Mar 29 09:13:51 CEST 2006 - visnov@suse.de - added support for external scripts to metadata (#159928) (jsrain) - fixed handling of Language resolvables (ma) - fix leak in rpmdb (dmacvicar) - added softlock for autoyast (#159466) (ma) - Fixed exceptions in doGetFileCopy() to show full url including the file instead of just the media base url. (mt) - Provide Language::summary (ma) - check patterns and selections file exist before veryfing them (#161300) (dmacvicar) - added YUM metadata checksum computation (jsrain) - added interface to patch of a message (jsrain) - r2734 ------------------------------------------------------------------- Mon Mar 27 23:57:16 CEST 2006 - jsrain@suse.de - added support for external scripts to metadata (#159928) - r2709 ------------------------------------------------------------------- Sat Mar 25 22:08:26 CET 2006 - jsrain@suse.de - report separate exception when trying to start source cache again to suppress incorrect error message in XEN installation - r2682 ------------------------------------------------------------------- Fri Mar 24 18:16:22 CET 2006 - schubi@suse.de - Implement inter process locking in zypp. - Added No medium found output - splitting modaliases in supplements TOO - parse also the available signing keys ------------------------------------------------------------------- Fri Mar 24 10:44:10 CET 2006 - visnov@suse.cz - release all media when removing source (#159754) (visnov) - more testsuites (schubi) - updated translations (schubi) - added MediaNotEjectedException (mt) - rev 2652 ------------------------------------------------------------------- Thu Mar 23 14:10:54 CET 2006 - dmacvicar@suse.de - fix patches descriptions (dmacvicar) - fix source serialization (dmacvicar) - metadata for kernel test (schubi) - Arch tests updated (ma) - classify NULL Ptr as unique (ma) - Added host check, because file Url allows it now. (mt) - prepare modalias fix (#159766) (ma) - Provide iterator based access to SourceManager data. (ma) - Fixed "file:" Url scheme config to allow relative paths; (mt) RFC1738 says, it may contain a hostname as well... - revision 2633 ------------------------------------------------------------------- Wed Mar 22 19:58:37 CET 2006 - visnov@suse.cz - pkg-config support (mvidner) - close all medias when destructing MediaSet (jsrain) - rev 2622 ------------------------------------------------------------------- Wed Mar 22 15:48:05 CET 2006 - dmacvicar@suse.de - Bug 159976 - build 804: Adding AddOn CD via ftp gives error (dmacvicar) - Message callback implemented to show patch messages (visnov) - Bug 159696 (schubi) - provide transform_iterators to iterate over a maps keys or values (ma) - added 'bool Arch::empty() const' test for an empty Arch string (ma) - added script and message installation (jsrain) - chooses the 'right' kernel now (kkaempf) - Use noarch if no arch is specified in patches (dmacvicar) - rev 2611 ------------------------------------------------------------------- Tue Mar 21 19:06:56 CET 2006 - mvidner@suse.cz - Added some debug output including the access id (mt) - Bug #154326: Enabled FORCE_RELEASE_FOREIGN flag causing release with eject=true on attached media, to umount other mounts as well. (mt) - 159483 - solver does not blame missing dependency (schubi) - Added a variant of MediaHandler::forceRelaseAllMedia (ma) - Fixed MediaCD::forceEject() to handle DELAYED_VERIFY and use forceRelaseAllMedia if FORCE_RELEASE_FOREIGN=1 (ma) - fixed ZYPP_RETHROW (#156430) (ma) - patch for #156114 (visnov) - fixed container.erase loops (ma) - Fixed to reset desired (cached) flag before the action (mt) - Removed return in forceRelaseAllMedia (void function) (mt) - Parse nonexisting architecture to noarch so patches dont get filtered by the pool (dmacvicar) - 159512 - yast2-qt does not show label of to be installed products anymore (dmacvicar) - 159765 - Hidden patterns still visible (dmacvicar) - Use noarch if no arch is specified. (dmacvicar) - r2594 ------------------------------------------------------------------- Tue Mar 21 09:04:06 CET 2006 - visnov@suse.de - properly report error for media change callback - rev 2579 ------------------------------------------------------------------- Mon Mar 20 23:02:07 CET 2006 - ma@suse.de - fixed memory leak in XMLNodeIterator (#157474) - disabled storing filelist (YUMFileListParser) and changelog (YUMOtherParser) - Renamed private MediaManager::forceMediaRelease function to forceReleaseShared (more exact name) - Implemented forceRelaseAllMedia() that can be used to release also foreign (user) mounts. - Added use of forceRelaseAllMedia for CD/DVDs if FORCE_RELEASE_FOREIGN is 1 (default 0) - little cleanup of the checkAttached function - r2578 ------------------------------------------------------------------- Mon Mar 20 17:04:28 CET 2006 - mvidner@suse.cz - don't try to attach without exception handling (#158620) - fix descriptions, as a new tag Des for selections exists now. - fix #157683: failure after adding add-on product to install sources - added more files for translation - resolve-dependencies.cc: establish pool - parse-metadata.cc: catch bad URL - set zmdid for atoms - r2574 ------------------------------------------------------------------- Sun Mar 19 19:24:44 CET 2006 - kkaempf@suse.de - fix testsuite. - provide edition and architecture for all kinds of yum resolvables. - fix ResStatus output. - establish atoms correctly. - treat requires to unneeded resolvables as fulfilled. - rev 2559 ------------------------------------------------------------------- Sun Mar 19 00:05:17 CET 2006 - kkaempf@suse.de - fix the build - only consider best architecture/version (#157594) - prefer providers which supplement/enhance installed or to-be-installed packages (fixes the tpctl-kmp issue) - rev 2546 ------------------------------------------------------------------- Sat Mar 18 02:22:22 CET 2006 - kkaempf@suse.de - provide more filters for pkg-bindings (#158602) - add SystemResObject to provide system (modalias, hal, ...) capabilities. - handle this during resolving. - make the modalias and hal capability match the SystemResObject by default, thereyby triggering a modalias (resp. hal) evaluation. - xmlstore: decouple target store from YUM schema. - clean up moving of hal() and modalias() from provides to supplements in ResolvableImpl. - add PatchContents() for UI. - handle Edition::noedition as empty string. - r2537 ------------------------------------------------------------------- Tue Mar 14 23:32:44 CET 2006 - jsrain@suse.de - releasing all medias when asking for CD (#156981) - r2471 ------------------------------------------------------------------- Tue Mar 14 19:38:43 CET 2006 - mvidner@suse.cz - ResStatus::resetTransact must return a value. - Fixed random build failures in LanguageCode.cc. (Rewrote the CodeMaps constructor so that gcc does not optimize a 500-statement basic block.) - Fix constructions of patch objects. Actually insert atoms in atoms list. Insert atoms for package even if the package does not exists in the source. Fixes #157628 (dmacvicar). - Fixed license reading from susetags, #151834 (dmacvicar). - r2468 ------------------------------------------------------------------- Tue Mar 14 16:59:42 CET 2006 - mvidner@suse.cz - added ResStatus::resetTransact (ma) - bugfix for #156439 (schubi) - Added Source_Ref::setAlias (#154913). - Do not assume there is a product file when scanning for products (visnov) - function to disable all sources in the persistent store (visnov) - dependency errors go to stdout, not stderr; output resolver info directly to stderr (kkaempf) - rev 2464 ------------------------------------------------------------------- Tue Mar 14 01:34:38 CET 2006 - kkaempf@suse.de - fix merging of resolver info (needed for #157684). - errors are also important in ResolverInfo. - improve debug output in ResolverContext. - rev 2455 ------------------------------------------------------------------- Mon Mar 13 22:54:01 CET 2006 - jsrain@suse.de - delete RPMs downloaded via HTTP/FTP after installnig them (#157011) - fixed product registration (reverted autorefresh patch) (#157566) ------------------------------------------------------------------- Mon Mar 13 11:53:52 CET 2006 - kkaempf@suse.de - if root!="/", always prefer the upgrade candidate (#155472) - implement license confirmed api for UI. - prefer architecture over version in distribution upgrade (#157501) - clean up media handling. - rev 2448 ------------------------------------------------------------------- Sun Mar 12 22:31:09 CET 2006 - kkaempf@suse.de - init Modalias properly. - fix warnings in testcases. - rev 2432 ------------------------------------------------------------------- Sat Mar 11 21:25:18 CET 2006 - kkaempf@suse.de - drop libjpeg-devel and sqlite-devel from build requires. ------------------------------------------------------------------- Sat Mar 11 08:16:53 CET 2006 - kkaempf@suse.de - implement 'modalias()' capability (#157406) - make dependencies consistent, its 'freshens'. - cope with user umounts of devices. - add debug to SourceManager. - rev 2418 ------------------------------------------------------------------- Fri Mar 10 16:20:41 CET 2006 - kkaempf@suse.de - allow version downgrade during distribution upgrade if the newer package is coming from a trusted vendor (#155472) - implement locale fallback - 'freshen' -> 'freshens' in schema definitions to make it consistent with all other dependency definitions. - better error reporting for .pat and .sel files. - rule out packages from dependency resolutions which are de-selected by user (#155368) - use locale fallbacks in package translations. - refresh source when re-enabling it. - rev 2406 ------------------------------------------------------------------- Tue Mar 7 21:18:19 CET 2006 - kkaempf@suse.de - split of libzypp-zmd-backend subpackage as a stand-alone leaf package. - encapsulate bool test for Source_Ref better. - fixed stack overflow (ma). - make testsuite build again. - rev 2346 ------------------------------------------------------------------- Tue Mar 7 16:17:07 CET 2006 - kkaempf@suse.de - fixed URL rewriting for CD2 and following (#154762) - fixed ResPoolProxy diffState (for proper ok/cancel support in UI) - added special exception class for aborting installation (#154936) - only auto-change directories if they end in CDn or DVDn. - rev 2320. ------------------------------------------------------------------- Tue Mar 7 15:37:51 CET 2006 - kkaempf@suse.de - silently ignore multiple installs of the same package. - fix disk usage for installs and uninstalls. - rev 2308 ------------------------------------------------------------------- Mon Mar 6 22:22:57 CET 2006 - kkaempf@suse.de - zmd-backend: filter out incompatible architectures from repository. - rev 2298 ------------------------------------------------------------------- Mon Mar 6 21:35:24 CET 2006 - kkaempf@suse.de - sync libzypp media data with mtab. - improve resolver error and solution reports. - fix source cache reading (#155459). - default cached sources to enabled (#155459). - let each source provide public keys. - rev 2297 ------------------------------------------------------------------- Sun Mar 5 15:48:29 CET 2006 - kkaempf@suse.de - only write by-sovler transactions back (#154976) - rev 2278 ------------------------------------------------------------------- Sat Mar 4 12:36:40 CET 2006 - kkaempf@suse.de - release last used source at end of commit (#155002) - rev 2277 ------------------------------------------------------------------- Fri Mar 3 23:14:50 CET 2006 - kkaempf@suse.de - cope with NULL values in zmd catalogs table (#153584) - set YAST_IS_RUNNING in transact zmd helper (#154820) - run SuSEconfig after transact zmd helper (#154820) - add softTransact to honor user vs. soft requirements (#154650) - honor all build keys provided by a package source. - add source metadata refresh. - add progress callbacks to zmd helpers. - rev 2276 ------------------------------------------------------------------- Thu Mar 2 21:59:07 CET 2006 - kkaempf@suse.de - include .diffs into main source. - catch exception when ejecting media which was unmounted externally (#154697). - init source in zmd-backend correctly (#154667) - implement disk usage info for YaST. - clean up XML schema files. - catch CPUs identifying as 'i686' but being 'i586'. - allow definition of preferred attach (mount) point for media. - make resolver results more readable. - use language fallbacks if none of multiple language providers matches. - get rid of ignoring wrong arch in resolver, having the wrong architecture is prevented by other means. - prepare for translations in exceptions. - fix 'abort does not abort' - implement 'flag' I/O in target cache backend. - skip incompatibles architectures in packages. - rev 2228 ------------------------------------------------------------------- Thu Mar 2 13:44:34 CET 2006 - kkaempf@suse.de - dont even provide src/nosrc from the source. - rev 2169 + diffs ------------------------------------------------------------------- Wed Mar 1 17:23:23 CET 2006 - kkaempf@suse.de - Initialize commit result (#154409) - release media if its wrong (#154326) - dont copy src/nosrc packages to the pool (#154627) - reduce XML logging. - rev 2169 + diffs ------------------------------------------------------------------- Tue Feb 28 16:10:14 CET 2006 - kkaempf@suse.de - fix path of .po files (#154074). - parse the correct package. file (kinda #154074). - complain about bad "=Sel:" or "=Pat:" lines (#153065). - reattach all released medias. - raise exception instead of abort() on XML errors (#154104). - update translations. - PathInfo: implemented a copy_dir_content (variant of copy_dir) and is_empty_dir utility function - rev 2169 ------------------------------------------------------------------- Tue Feb 28 14:51:46 CET 2006 - kkaempf@suse.de - check freshens and supplements for packages (#154074). - only complain about incomplete installed resolvables, if they are uninstalled, schedule them for installation. (#154074) - add testcases for locale() provides. - add lang_country -> lang fallback. - have locale(parent:...) deps match any provides of 'parent' also when uninstalling a package. - rev 2148 ------------------------------------------------------------------- Tue Feb 28 10:35:15 CET 2006 - kkaempf@suse.de - change the locale(...) separator to ";" (#153791) - complete "find-files" of zmd-backend. - rev 2140 ------------------------------------------------------------------- Tue Feb 28 10:28:06 CET 2006 - visnov@suse.de - avoid attaching media when initializing source - rev 2139 ------------------------------------------------------------------- Mon Feb 27 21:26:00 CET 2006 - kkaempf@suse.de - warn about misspelled 'locale(...)' provides - add testcases - rev 2134 ------------------------------------------------------------------- Mon Feb 27 20:19:40 CET 2006 - kkaempf@suse.de - fix the build - rev 2129 ------------------------------------------------------------------- Mon Feb 27 18:15:16 CET 2006 - kkaempf@suse.de - provide available locales to application (#153583) - honor 'requestedLocales' (language dependant packages) - honor release requests for all holders of a device. - silently re-attach after a forced release. - solver improvements. - handle source caches. - proper logging in zmd backend helpers. - rev 2127 ------------------------------------------------------------------- Mon Feb 27 13:44:39 CET 2006 - kkaempf@suse.de - upgrade always to best version and arch (#153577) - reset 'transact' state for obsoleted packages (#153578) - translation updates - rev 2113 ------------------------------------------------------------------- Mon Feb 27 10:42:33 CET 2006 - kkaempf@suse.de - add support for 'local' .rpm packages to zmd-backend. - rev 2101 ------------------------------------------------------------------- Sun Feb 26 20:24:10 CET 2006 - kkaempf@suse.de - fix build of zmd/backend. - actually fill 'files' table in package-files. - rev 2094 ------------------------------------------------------------------- Sun Feb 26 17:43:06 CET 2006 - kkaempf@suse.de - improve testcases. - add 'setPossibleLocales()' to ZYpp, this defines the set of possible locales to choose from (#153583) - provide LanguageImpl and create 'Language' resolvables for each 'possible' locale. - fix YUM parsing of patches, insert 'atoms' to link patches with packages. - replace gzstream/ with own, existing implementation. - honor locks in solver (#150231) - sync pool with target after commit() properly (#150565, #153066) - new zmd helper 'package-files' - rev 2093 ------------------------------------------------------------------- Thu Feb 23 21:45:06 CET 2006 - kkaempf@suse.de - prevent multiple initializations of the target (#153124) - implement 'loopback mounted ISO images' - retain old package sources on upgrade. - support compressed .xml files in 'repodata' type repositories. - rev 2025 ------------------------------------------------------------------- Thu Feb 23 15:16:58 CET 2006 - kkaempf@suse.de - parse locale(...) provides and construct correct dependencies. ------------------------------------------------------------------- Thu Feb 23 14:16:44 CET 2006 - kkaempf@suse.de - always upgrade to candidate (#152760). - fix typo in package sorting. - prepare handling of locale provides. - rev 1995 ------------------------------------------------------------------- Thu Feb 23 10:53:51 CET 2006 - kkaempf@suse.de - sort src/nosrc package to right list during commit. - revert installtime/buildtime in susetags parser (#152760) - rev 1990 ------------------------------------------------------------------- Thu Feb 23 10:22:08 CET 2006 - kkaempf@suse.de - reset state after successful commit (#153030) - run "rpm -e" always with "--nodeps" (#153026) - provide separate resolvable kind for src packages. - extend status field for LOCK and LICENSE. - add sameState()/diffState() for UI. - provide 'best' candidate for UI. - set 60 sec timeout for curl access. - don't cross-compare solver results, takes too much time. - provide sizes of installed packages. - extend REQUIRES semantics in content file. - add "parse-metadata" helper to zmd-backend. - rev 1987 ------------------------------------------------------------------- Wed Feb 22 14:51:46 CET 2006 - kkaempf@suse.de - provide complete disk usage data (#152761) - include upgrade flag when copying solver solution back to pool (#152717) - rev 1959 ------------------------------------------------------------------- Wed Feb 22 13:16:48 CET 2006 - kkaempf@suse.de - don't insert incompatible architectures to the pool (#151933) - don't accept incompatible architectures from a repository (#151933) - separate rpm log (#151431). - allow extended product requires. - rev 1954 ------------------------------------------------------------------- Tue Feb 21 22:02:59 CET 2006 - kkaempf@suse.de - provide the XML schema files in the main package. (#152593) ------------------------------------------------------------------- Tue Feb 21 20:05:34 CET 2006 - kkaempf@suse.de - provide arch compat handling. - implement data upload to zmd. - fix source metadata caching on target. - add 'supplements' dependencies to 'yum' parser. - provide user agent identification to curl calls. - move resolver branches (multiple alternatives) back in queue (resolve known things first, then the unknown ones). - clean up 'packages' parser. - rev 1947 ------------------------------------------------------------------- Tue Feb 21 09:18:53 CET 2006 - kkaempf@suse.de - improve media mount/umount interface - prepare class ArchCompat for proper architecture ordering and compatibility handling. - add returns to dummy functions in DbAccess. - rev 1913 ------------------------------------------------------------------- Mon Feb 20 21:08:22 CET 2006 - kkaempf@suse.de - don't explictly delete to-be-upgraded packages. - finish query-system, resolve-dependencies, and transact for libzypp-zmd-backend. - provide Pattern::category. - move system architecture to toplevel. - make target store pathname settable. - speed up rpmdb reading by properly filtering unwanted file provides. - rev 1905 ------------------------------------------------------------------- Sun Feb 19 20:35:03 CET 2006 - kkaempf@suse.de - new translations. - proofread texts. - when comparing solutions, prefer higher versions. - provide generic 'SafeBool' for bool conversions. - add PtrTypes testsuites. - rev 1876 ------------------------------------------------------------------- Fri Feb 17 21:43:51 CET 2006 - kkaempf@suse.de - integrate all diffs - move Target::commit to toplevel API - generalize dependency iterators and hash dependency information in pool (for speedup) - add 'supplements' as dependency - make more pattern attributes available - drop "smbfs" in favour of "cifs" (#151476) - add metadata cache to sources (Beta4 bug) - run "rpm -e" with name-version-release - fix update conflicts - rev 1864 ------------------------------------------------------------------- Thu Feb 16 20:02:19 CET 2006 - kkaempf@suse.de - fix-mediachange.diff: dont skip CD but retry after media change - cd-eject-button.diff: fix CD url so YaST recognizes it and shows 'eject' button - release-forced-eject-no-ptrfix.diff: fix refcounting in ptrs so media handle gets actually released and media unmounted. ------------------------------------------------------------------- Thu Feb 16 14:40:31 CET 2006 - kkaempf@suse.de - implement arch scoring - prefer better arch (#151427) - transitive depedencies of weak requirements are non-weak (#151446) - rev 1778 + diff ------------------------------------------------------------------- Wed Feb 15 18:19:12 CET 2006 - kkaempf@suse.de - ignore self and to-be-updated conflicts (#150844) - fix enable of target store (for non-packages) - rev 1778 ------------------------------------------------------------------- Wed Feb 15 13:11:28 CET 2006 - kkaempf@suse.de - fix "cd:" url (#151121) - provide location() in public Package api - allow running distribution upgrade in testmode - extend HAL interface - rev 1762 ------------------------------------------------------------------- Wed Feb 15 10:10:48 CET 2006 - kkaempf@suse.de - pass normal and locale packages from selections correctly. - its "baseconf" for base selections. - Make 'ZYpp' an obvious singleton. - provide releasenotesUrl. - dont continue upgrade without target. - implement 'fake' hal for testing. - fix package sizes. - more solver testcases. - rev 1754 ------------------------------------------------------------------- Tue Feb 14 20:52:02 CET 2006 - kkaempf@suse.de - extend requires of libzypp-devel - provide package sizes for UI - provide more UI helpers - implement Product and related functions - fix split provides in distribution upgrade - provide locale information to system - ask HAL for available devices - reduce debug information in solver - filter architectures in source, not in solver - rev 1743 ------------------------------------------------------------------- Tue Feb 14 07:27:39 CET 2006 - visnov@suse.de - disable another testsuite for now - fetch the default locale from environment - support user-defined formatting of log - rev 1710 ------------------------------------------------------------------- Mon Feb 13 20:41:36 CET 2006 - visnov@suse.de - providing basic product information from susetags source - public API for preferred language - implemented redirect of logging (#149001) - report start/finish of source data parsing (#150211) - store/restore source aliases properly (#150256) - disable a lot of debug logging to speed up solver - properly rewrite URL for CDn directory layouts (#149870) - rev 1706 ------------------------------------------------------------------- Sun Feb 12 16:59:48 CET 2006 - kkaempf@suse.de - add save/restore state to facilitate UI 'cancel' - enable target/store - add 'forceResolve' call and flag to resolver to switch between task-oriented ZMD and interactive YaST behaviour. - Fix resolver problem solution texts. - improve solver problem solution offerings. - fix media access handling to better support multiple requestors to single media. - move the media number checking to the source (media requestor) which knows how to verify the correct media. - Fix CD ordering (#149871), adding testcases. - Move 'PoolItemList' and 'PoolItemSet' typedefs inside classes. - Add selections to testcases. - rev 1673 ------------------------------------------------------------------- Sat Feb 11 10:17:15 CET 2006 - kukuk@suse.de - Fix missing return in Source.cc:124 ------------------------------------------------------------------- Fri Feb 10 18:41:29 CET 2006 - kkaempf@suse.de - cope with empty arch field in selections - enable dummy "enableStorage" function - rev 1610-branch ------------------------------------------------------------------- Fri Feb 10 15:36:43 CET 2006 - kkaempf@suse.de - fix random data return in Source.cc - rev 1610 ------------------------------------------------------------------- Fri Feb 10 15:00:45 CET 2006 - kkaempf@suse.de - adapt zmd-backend to SourceImpl API change - rev 1608 ------------------------------------------------------------------- Fri Feb 10 13:54:43 CET 2006 - kkaempf@suse.de - fix the packages parser bug. Now all packages are parsed including (english) translations. source/susetags is back to svn head. - rev 1600 ------------------------------------------------------------------- Fri Feb 10 10:30:12 CET 2006 - kkaempf@suse.de - fix off-by-one bug in bitfield handling - revert source/susetags to rev 1411 - rev 1586 ------------------------------------------------------------------- Thu Feb 9 22:21:43 CET 2006 - kkaempf@suse.de - dont prereq-sort non-packages - rev 1584 ------------------------------------------------------------------- Thu Feb 9 21:29:00 CET 2006 - kkaempf@suse.de - rev 1582 ------------------------------------------------------------------- Thu Feb 9 11:10:54 CET 2006 - kkaempf@suse.de - update to rev 1543 ------------------------------------------------------------------- Thu Feb 9 00:49:23 CET 2006 - ro@suse.de - require hal-devel in libzypp-devel - re-merge fixes (RPM_OPT_FLAGS) ------------------------------------------------------------------- Wed Feb 8 23:53:58 CET 2006 - kkaempf@suse.de - make solver behaviour a bit more interactive - rev 1537 ------------------------------------------------------------------- Wed Feb 8 18:45:21 CET 2006 - schwab@suse.de - Fix syntax error in configure script. - Use RPM_OPT_FLAGS. ------------------------------------------------------------------- Wed Feb 8 17:03:37 CET 2006 - kkaempf@suse.de - update for qt ui integration - rev 1504 ------------------------------------------------------------------- Tue Feb 7 23:18:09 CET 2006 - kkaempf@suse.de - split off libzypp-zmd-backend - rev 1466 ------------------------------------------------------------------- Tue Feb 7 23:10:59 CET 2006 - kkaempf@suse.de - another update to svn ------------------------------------------------------------------- Mon Feb 6 20:42:22 CET 2006 - kkaempf@suse.de - finish rpm callbacks - finish UI API - fix state change resolver<->pool - zmd backend stuff - speed up tag file parsing - rev 1405 ------------------------------------------------------------------- Mon Feb 6 16:53:03 CET 2006 - schubi@suse.de - disabling failing tests of s390 and ppc ------------------------------------------------------------------- Mon Feb 6 11:14:16 CET 2006 - schubi@suse.de - Snapshoot rev 1367 ------------------------------------------------------------------- Mon Feb 6 01:42:48 CET 2006 - kkaempf@suse.de - use hashes for pool - rev 1343 ------------------------------------------------------------------- Fri Feb 3 14:21:47 CET 2006 - schubi@suse.de - removed Obsoletes: yast2-packagemanager ------------------------------------------------------------------- Fri Feb 3 11:36:19 CET 2006 - schubi@suse.de - Snapshoot 3 Feb 2005 (11:30) ------------------------------------------------------------------- Thu Feb 2 14:27:02 CET 2006 - schubi@suse.de - Snapshoot 2 Feb 2005 (14:00) ------------------------------------------------------------------- Thu Feb 2 12:23:03 CET 2006 - schubi@suse.de - Snapshoot 2 Feb 2005 ( integrating YaST ) ------------------------------------------------------------------- Wed Jan 25 21:37:50 CET 2006 - mls@suse.de - converted neededforbuild to BuildRequires ------------------------------------------------------------------- Sat Jan 14 08:51:55 CET 2006 - kkaempf@suse.de - Initial version libzypp-17.7.0/po/000077500000000000000000000000001334444677500137365ustar00rootroot00000000000000libzypp-17.7.0/po/CMakeLists.txt000066400000000000000000000050111334444677500164730ustar00rootroot00000000000000# Translation set name SET( POT_NAME "zypp" ) # Creating the .pot file.... # POT_FILE_DEPENDS was set in ../src SET( POT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${POT_NAME}.pot ) SET( XGETTEXT_CMD "xgettext" ) SET( XGETTEXT_OPTIONS -L C++ --boost --no-wrap --add-comments --add-location --foreign-user ) SET( XGETTEXT_OPTIONS ${XGETTEXT_OPTIONS} --keyword=_ --keyword=_:1,2 --keyword=__ --keyword=N_ --keyword=PL_:1,2 ) SET( XGETTEXT_OPTIONS ${XGETTEXT_OPTIONS} --copyright-holder=\"SuSE Linux GmbH, Nuernberg\" ) SET( XGETTEXT_OPTIONS ${XGETTEXT_OPTIONS} --package-name=${POT_NAME} --default-domain=${POT_NAME} ) SET( _abs_POT_FILE_DEPENDS ) FOREACH( _currentDepends ${POT_FILE_DEPENDS} ) SET( _abs_POT_FILE_DEPENDS ${_abs_POT_FILE_DEPENDS} ${LIBZYPP_SOURCE_DIR}/${_currentDepends} ) ENDFOREACH() ADD_CUSTOM_COMMAND( OUTPUT ${POT_FILE} COMMAND ${XGETTEXT_CMD} ${XGETTEXT_OPTIONS} --output=${POT_FILE} ${POT_FILE_DEPENDS} WORKING_DIRECTORY ${LIBZYPP_SOURCE_DIR} DEPENDS ${_abs_POT_FILE_DEPENDS} COMMENT "Extract translatable messages to ${POT_FILE}" ) # Creating the .gmo files out of the .po files FILE( GLOB PO_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po" ) SET( GMO_FILES ) FOREACH( _currentPoFile ${PO_FILES} ) GET_FILENAME_COMPONENT( _absFile ${_currentPoFile} ABSOLUTE ) GET_FILENAME_COMPONENT( _lang ${_absFile} NAME_WE ) SET( _poFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po ) SET( _gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo ) ADD_CUSTOM_COMMAND( OUTPUT ${_gmoFile} COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --no-fuzzy-matching -o ${_poFile} ${_absFile} ${POT_FILE} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile} DEPENDS ${POT_FILE} ${_absFile} COMMENT "Update ${_gmoFile}" ) INSTALL( FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${POT_NAME}.mo ) SET( GMO_FILES ${GMO_FILES} ${_gmoFile} ) ENDFOREACH() # Provides the 'translations' target that # creates the .gmo files out of the .po files SET( SOURCE_POT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${POT_NAME}.pot ) ADD_CUSTOM_TARGET( translations ALL COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/PotfileDiff.sh ${SOURCE_POT_FILE} ${POT_FILE} | grep '^[+-][^+-]' || true DEPENDS ${GMO_FILES} COMMENT ".pot file diff..." ) ADD_CUSTOM_TARGET( potfile_update COMMAND ./PotfileDiff.sh ${SOURCE_POT_FILE} ${POT_FILE} -q || ./PotfileUpadte.sh ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS translations COMMENT "Checking for uncommitted changes to the .pot file..." ) libzypp-17.7.0/po/PotfileDiff.sh000077500000000000000000000005031334444677500164660ustar00rootroot00000000000000#! /bin/bash set -e function extract() { grep '^\(msgid\|"\)' "$1" | grep -v "POT-Creation-Date" | sort -u; } OLDTMP=$(mktemp) NEWTMP=$(mktemp) trap "/bin/rm -f -- \"$OLDTMP\" \"$NEWTMP\"" 0 1 2 3 13 15 extract "$1" >"$OLDTMP" extract "$2" >"$NEWTMP" shift 2 # additional args for diff diff -u0 "$@" "$OLDTMP" "$NEWTMP" libzypp-17.7.0/po/PotfileUpadte.sh000077500000000000000000000014471334444677500170500ustar00rootroot00000000000000#! /bin/bash set -e function errexit() { echo "$0: $@" >&2 exit 1 } function currentBranch() { git rev-parse --abbrev-ref HEAD; } test "$(currentBranch)" == "master" || errexit "Not on master branch." test "$(basename "$PWD")" == "po" || errexit "Cd to the po directory." test "$(git status --porcelain 2>/dev/null| grep '^[^ !?]' | wc -l)" == 0 || errexit "Index not clean: wont't commit" BINDIR="${1}" test -z "$BINDIR" && errexit "Missing argument: BINDIR" test -d "$BINDIR" || errexit "Not a directory: BINDIR '$BINDIR'" echo "Updating .pot .po files from $BINDIR..." for F in *.pot *.po; do if [ -f "$BINDIR/$F" ]; then cp "$BINDIR/$F" . else errexit "Missing file $BINDIR/$F (touch CMakeLists.txt?)" fi done git add -A *.pot *.po git commit -m 'Translation: updated .pot file' libzypp-17.7.0/po/af.po000066400000000000000000003365371334444677500147050ustar00rootroot00000000000000# Copyright (C) 2006 SuSE Linux Products GmbH, Nuernberg # This file is distributed under the same license as the package. # msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2006-11-03 12:03\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-uitsondering" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Onbekende land:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Geen kode nie" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Verenigde Arabiese Emirate" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua en Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanië" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenië" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nederlands-Antille" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentinië" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikaanse Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Oostenryk" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australië" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Aland-eilande" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnië en Herzegowina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "België" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarye" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Broenei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivië" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasilië" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhoetan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet-eiland" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belo-Rusland" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Cocos- (Keeling-) eilande" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Republiek van Sentraal-Afrika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Switserland" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Ivoorkus" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook-eilande" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kameroen" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Sjina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kaap Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Kersfees-eiland" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Siprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tseggiese Republiek" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Duitsland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djiboeti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Denemarke" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikaanse Republiek" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algerië" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonië" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipte" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Wes-Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanje" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Ethiopië" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falkland-eilande (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federasie van Mikronesië" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faroë-eilande" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankryk" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitaanse Frankryk" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gaboen" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Verenigde Koninkryk" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgië" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Frans-Guyana" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Duitsland" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambië" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinee" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekwatoriaal-Guinee" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Griekeland" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Suid-Georgia en die Suid-Sandwich-eilande" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinee-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard-eiland en McDonald-eilande" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroasië" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haïti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hongarye" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesië" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Ierland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indië" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Brits-Indiese Oseaangebied" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Ysland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italië" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaika" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanië" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisië" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodja" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comore" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "St. Kitts en Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Noord-Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Suid-Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Koeweit" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kaaimanseilande" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Lao Demokratiese Republiek" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Lebanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "St. Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberië" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litoue" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letland" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libië" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldowa" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Mongo" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshall-eilande" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Masedonië" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mianmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolië" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Noord-Mariana-eilande" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritanië" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maledive" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Maleisië" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mosambiek" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibië" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nieu-Kaledonië" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk-eilande" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigerië" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nederland" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noorweë" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauroe" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nieu-Seeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Frans-Polinesië" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papoea-Nieu-Guinee" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Philippyne" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Pole" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "St. Pierre en Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestynse Gebied" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palaoe" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Roemenië" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Serwies" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russiese Federasie" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi-Arabië" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomon-eilande" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelle" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Soedan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Swede" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapoer" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "St. Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slowenië" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard en Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slowakye" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalië" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tomé en Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Sirië" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- en Caicos-eiland" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tsjad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Franse Suidelike Gebiede" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tajikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Toerkmenië" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisië" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Oos-Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkye" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad en Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Toewaloe" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzanië" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Oekraïne" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Verenigde State van Kleiner Buite-eilande" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Verenigde State" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Oesbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikaanstad" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "St. Vincent en die Grenadine" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britse Maagde-eilande" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Maagde-eilande, .V.S.A." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Viëtnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis en Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Suid-Afrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambië" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s uitgediendes:%s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Kan lêer '%1' nie open nie." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Kan %s nie vind nie." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "Kan %s nie vind nie." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Opdrag uitgevoer wanneer verbind word" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Misluk om die SM te begin." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Misluk om die SM te begin." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "Inskywing nie gevind nie." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Onbekende taal:" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazies" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinees" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiaties (ander)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadies" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanies" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonquianse tale" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Suid-Altaïs" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharies" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Engels, Oud (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apache-tale" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabies" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramees" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonees" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeens" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araukanies" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Kunsmatig (ander)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamees" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Astoeries" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapaskanse tale" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australiese tale" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaries" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avesties" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aimara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaijaans" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Bandies" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke-tale" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambaries" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinees" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskies" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Balties (ander)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Belo-Russies" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbers (ander)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (ander)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnies" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretons" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesië)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Boeginees" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgaars" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmees" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Kaddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Sentraal-Amerikaanse Indiaans (ander)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalaans" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukasies (ander)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Kelties (ander)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tjetjeens" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Sjinees" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukees" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook-jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewiaans" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Kerk-Slawies" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Chamiese tale" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Kopties" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Kornies" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsikaans" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreole en pidgintale, Engels-gebaseer (ander)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreole en pidgintale, Frans-gebaseer (ander)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreole en pidgintale, Portugees-gebaseer (ander)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krimse Tataars" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreole en pidgintale (ander)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kashubies" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Kushities (ander)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tsjeggies" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Deens" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Daiak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slawetaal (Athapaskies)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Drawidies (ander)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Laer Sorbies" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Nederlands, Middel- (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nederlands" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egipties (Antieke)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamities" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engels" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Engels, Middel- (ca.1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonies" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroëes" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijiaans" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Fins" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fins-Oegries (ander)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Frans" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Frans, Middel- (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Frans, Oud- (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Fries" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulies" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gaïo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germaans (ander)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgies" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Duits" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertees" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gallies" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Iers" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galisies" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Duits, Middelhoog- (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Duits, Oudhoog- (ca.1050-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Goties" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grieks, Antieke (tot 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grieks, Moderne (tot 1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haïda" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haïties" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaïes" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreeus" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligainon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittities" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Oppersorbies" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hongaars" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Yslands" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Intertale" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Internasionale Hulptaalvereniging)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indies (ander)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesies" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-Europees (ander)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraans (ander)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Iroquoi-tale" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiaans" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javaans" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japannees" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeo-Persies" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeo-Arabies" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannadees" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazaks" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardies" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (ander)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanees" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikoejoe" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kiniarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreaans" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeaans" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuaniama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Koerdies" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latyn" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letties" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghiaans" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgs" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litaus" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgies" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenia en Tanzanië)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Masedonies" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurees" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallees" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesies (ander)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Maleis" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mendies" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Iers, Middel- (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Verskillende tale" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (ander)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagassies" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltees" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Mantsjoe" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo-tale" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldawies" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongools" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Veelvoudige tale" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda-tale" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandees" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Maya-tale" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Noord-Amerikaanse Indiaans" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitaans" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, Suid-" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, Noord-" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Platduits" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanies (ander)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueaans" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Noors Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Noors Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Noors, Oud-" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Noors" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Noord-Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubiese tale" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Klassieke Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitaans (na 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetiaans" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turks, Ottomaans (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomiese tale" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuaans (ander)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauaans" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persies, Oud- (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persies" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Philippyns (ander)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenisies" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Pools" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeiaans" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugees" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakrit-tale" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provensaals, Oud- (tot 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongaans" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romaans (ander)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-Romaans" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Sigeunertaal" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Roemeens" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russies" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Jakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Suid-Amerikaanse Indiaans (ander)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salishan-tale" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritaanse Aramees" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serwies" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliaans" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Skots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroasies" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semities (ander)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Iers, Oud- (tot 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Gebaretale" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouaanse tale" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetaans (ander)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slawies (ander)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slowaaks" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Sloweens" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Suid-Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Noord-Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Sami-tale (ander)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoaans" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdiaans" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalies" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, Suid-" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spaans" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinies" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Sahara (ander)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Soedanees" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumeries" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Sweeds" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siries" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahities" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (ander)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tartaars" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetaans" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinies" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Njassa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tonga-eilande)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmen" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Toemboeka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi-tale" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turks" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaïes (ander)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinies" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Oedmoert" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Oegarities" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Oeighoer" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Oekraïnies" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Oembundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Onbepaal" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Oerdoe" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Oesbeks" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Viëtnamees" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Voties" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakashan-tale" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Warai" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Wallies" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbiese tale" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloons" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmies" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Japees" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Jupik-tale" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotek" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' bestaan nie." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' bestaan nie." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "Die SM se naam kan nie met ’n syfer begin nie." #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "Die SM se naam kan nie met ’n syfer begin nie." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Kan lêer nie vir skryf open nie." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Kan werkskermitem '%s' nie open nie" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Kan gids %1 nie skep nie: %2." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Fout met lees vanaf slapskyf." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ongeldige uitvoerlêernaam." #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "Terugstel van hulpbronne" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Kan werkskermitem '%s' nie open nie" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Ongeldige LDAP URL-navraagstring" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ongeldige LDAP URL-navraagparameter '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Kan Url-voorwerp nie kloon nie" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Ongeldige leë Url-voorwerpverwysing" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Kan Url-komponente nie ontleed nie" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "onbekend" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "Die skyf bestaan nie." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Kan lêer '%1' nie open nie." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Onbekende opdrag" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ongeldige Url-skema '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Kan %s - %s nie open nie\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Misluk om module \"%s\" te laai." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Lêer %1 nie in die bewaarplek gevind nie." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Kan nie na lêer %1 toe skryf nie." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 is nie ’n gids nie." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "Leë CA-naam." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Ongeldige URL-skema '%1'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Kan werkskermitem '%s' nie open nie" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Toelatings geweier" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "Pakket %s se integriteitsnagaan misluk. Wil u dit weer probeer aflaai?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Pakket %s se integriteitsnagaan misluk. Wil u dit weer probeer aflaai?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm-nagaan het misluk." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm het misluk." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "hulpbronsoort VAR1 ondersteun nie toon wysigings-eienskap nie" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Kan %s vanaf %s nie voorsien nie" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "Lêer %1 nie in die bewaarplek gevind nie." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Kan die lêer nie skep nie." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Ignoreer dié vereiste net hier" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "Ignoreer dié vereiste net hier" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s voorsien %s, maar dit het ’n ander argitektuur." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "opdrag om pakkette te oninstalleer" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "Verbindingsversoek aan:" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Kan %s nie installeer nie vanweë afhanklikheidsprobleme" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "Geen voorsiening %s nie" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Die skyf bestaan nie." #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s is gesluit en kan nie ongeïnstalleer word nie." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "nie geïnstalleer nie" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s word benodig deur %s" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Kan %s nie installeer nie" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s verkeer in konflik met %s" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s uitgediendes %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s uitgediendes %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s verkeer in konflik met %s" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "Geen voorsiening %s nie" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "Daar is geen installeerbare verskaffers van %s nie" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "Daar is geen installeerbare verskaffers van %s nie" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "moenie %s installeer nie" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "hou %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "moenie %s installeer nie" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "Die navraag bestaan reeds." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "Daar is geen installeerbare verskaffers van %s nie" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Moenie waar oplossings ter sprake is, installeer of skrap nie" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s voorsien %s, maar dit het ’n ander argitektuur." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "Installeer %s, hoewel dit die argitektuur kan verander" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s uitgediendes %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%s afgelaai vanaf %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Installasie" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "Voer uit" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "Fout tydens sleutelenkriptering." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Installasie is gestaak soos gelas." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext nie verbind nie" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive nie geïnisialiseer nie" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume nie geïnisialiseer nie" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Kan dbus-verbinding nie skep nie" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Kan libhal-konteks nie skep nie" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Kan dbus-verbinding nie stel nie" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Kan HAL-konteks nie inisialiseer nie -- hald loop nie?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Nie ’n CDROM-aandrywer nie" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "het misluk" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Gewysigde konfigurasielêers vir %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm geberg %s as %s, maar dit was onmoontlik om die verskil te bepaal" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm geberg %s as %s.\n" "Hier is die eerste 25 rëels van verskil:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm geskep %s as %s, maar dit was onmoontlik om die verskil te bepaal" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm geskep %s as %s.\n" "Hier is die eerste 25 rëels van verskil:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Bykomende rpm-uitset:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "geskepte rugsteun %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Inskywing nie gevind nie." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Inskywing nie gevind nie." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Inskywing nie gevind nie." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Kan mutex-eienskappe nie inisialiseer nie" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Kan terugkerende mutex-eienskappe nie stel nie" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Kan terugkerende mutex nie inisialiseer nie" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Kan die mutex-slot nie verkry nie" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Kan die mutex-slot nie ontsluit nie" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url-skema laat nie ’n %s toe nie" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ongeldige %s komponent '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ongeldige %s komponent" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Navraagstring-ontleding nie vir hierdie URL ondersteun nie" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url-skema is ’n vereiste komponent" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ongeldige Url-skema '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url-skema laat nie ’n gebruikernaam toe nie" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url-skema laat nie ’n wagwoord toe nie" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url-skema vereis ’n gasheerkomponent" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url-skema laat nie ’n gasheerkomponent toe nie" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ongeldige gasheerkomponent '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url-skema laat nie ’n poort toe nie" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ongeldige poortkomponent '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url-skema vereis padnaam" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relatiewe pad nie toegelaat indien magtiging bestaan nie" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Enkoderingstring bevat ’n NUL-greep" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ongeldige parametermatryssplyt-skeierkarakter" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ongeldige parameterbindingsplyt-skeierkarakter" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ongeldige parametermatrysaansluit-skeierkarakter" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Kan die openbare sleutel nie kry nie." #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "nie geïnstalleer nie" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Kan %s - %s nie open nie\n" #~ msgid "Serbia and Montenegro" #~ msgstr "Serwië en Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Onbekende lys-opsie" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "kon afhanklikhede nie oplos nie" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Lêer %s het nie ’n nagaansom nie. \n" #~ "Gebruik die lêer in elk geval?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Lêer %s het nie integriteitsnagaan geslaag met die volgende sleutel nie:\n" #~ "%s|%s|%s\n" #~ " Gebruik die lêer in elk geval?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Lêer %s het ’n ongeldige nagaansom. \n" #~ "Verwag %s, kry %s\n" #~ " Gebruik die lêer in elk geval?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Lêer %s het ’n onbekende nagaansom %s. \n" #~ "Gebruik die lêer in elk geval?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Lêer %s is nie geteken nie.\n" #~ "Gebruik dit in elk geval?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Lêer %s word geteken met ’n onbekende sleutel:\n" #~ "%s|%s|%s\n" #~ " Gebruik die lêer in elk geval?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Onbetroubare sleutel gevind:\n" #~ "%s|%s|%s\n" #~ " Vertrou sleutel?" #~ msgid "%s remove failed" #~ msgstr "%s verwyder het misluk" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "Wysig u wagwoord" #~ msgid "rpm output:" #~ msgstr "rpm-uitset:" #~ msgid "%s install failed" #~ msgstr "%s installasie misluk" #~ msgid "%s installed ok" #~ msgstr "%s geïnstalleer is goed" #~ msgid "%s remove ok" #~ msgstr "%s verwyder is goed" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "%s voorsien hierdie afhanklikheid, maar sal die argitektuur van die " #~ "geïnstalleerde item wysig" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "%s voorsien hierdie afhanklikheid, maar sal die argitektuur van die " #~ "geïnstalleerde item wysig" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Moenie waar oplossings ter sprake is, installeer of skrap nie" #~ msgid "Ignore that %s is already set to install" #~ msgstr "Ignoreer dat %s reeds gestel is om te installeer" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "Ignoreer die uitgediende %s in %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "Ignoreer hierdie konflik van %s" #~ msgid "Ignore this requirement just here" #~ msgstr "Ignoreer dié vereiste net hier" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "Installeer %s, hoewel dit die argitektuur kan verander" #~ msgid "Install missing resolvables" #~ msgstr "Installeer ontbrekende oplossings" #~ msgid "Keep resolvables" #~ msgstr "Hou oplossings" #~ msgid "Unlock these resolvables" #~ msgstr "Ontsluit hierdie oplossings" #~ msgid "delete %s" #~ msgstr "skrap %s?" #~ msgid "install %s" #~ msgstr "installeer %s" #~ msgid "unlock %s" #~ msgstr "ontsluit %s" #~ msgid "unlock all resolvables" #~ msgstr "ontsluit alle oplossings" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Kan lêer '%1' nie open nie." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Fout tydens lees van sektor %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "Padparameter-ontleding nie vir hierdie URL ondersteun nie" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "Padparameter-ontleding nie vir hierdie URL ondersteun nie" #~ msgid "Software management is already running." #~ msgstr "Sagtewarebestuur loop reeds." #~ msgid "%s is replaced by %s" #~ msgstr "%s word vervang deur %s" #~ msgid "%s replaced by %s" #~ msgstr "%s vervang deur %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "Hierdie oplossings sal uit die stelsel geskrap word." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s sal nie ongeïnstalleer word nie, want dit word steeds vereis" #~ msgid "Invalid information" #~ msgstr "Ongeldige inligting" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s word deur ander oplossings benodig" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s word benodig deur:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s verkeer in konflik met ander oplossings" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s verkeer in konflik met:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s maak ander oplossings uitgedien" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "Hierdie oplossings sal uit die stelsel geskrap word." #~ msgid "%s depends on other resolvables" #~ msgstr "%s hang van ander oplossings af" #~ msgid "%s depends on %s" #~ msgstr "%s hang af van %s" #~ msgid "%s depends on:%s" #~ msgstr "%s hang af van:%s" #~ msgid "Child of" #~ msgstr "Kind van" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "Daar is geen hulpbron wat hierdie vereiste ondersteun, beskikbaar nie." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "Toekomstige probleme wat bo/onder hierdie resolusie beskryf word, sal nie " #~ "alle afhanklikhede oplos nie" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "Kan %s nie installeer nie, omdat dit in konflik verkeer met %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s word nie geïnstalleer nie en is as oninstalleerbaar gemerk" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s het vereistes waaraan nie voldoen is nie" #~ msgid "%s has missing dependencies" #~ msgstr "%s het afhanklikhede wat ontbreek" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s kan nie geïnstalleer word nie vanweë ontbrekende afhanklikhede" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s vervul afhanklikhede van %s, maar sal ongeïnstalleer word" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s vervul afhanklikhede van %s, maar sal op u stelsel gehou word" #~ msgid "No need to install %s" #~ msgstr "Geen nodigheid om %s te installeer nie" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "Kan %s nie installeer om die afhanklikhede van %s te vervul nie" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "Kan %s nie installeer om die afhanklikhede van %s te vervul nie" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s sal nie ongeïnstalleer word nie, want dit word steeds vereis" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%s uitgediendes %s. Maar %s kan nie geskrap word nie, want dit is gesluit." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "Kan %s nie installeer nie, want dit verkeer in konflik" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s is oninstalleerbaar vanweë konflikte met %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "om %s vir %s te vereis tydens bywerk van %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s het nie die vereiste %s" #~ msgid ", Action: " #~ msgstr ", Aksie:" #~ msgid ", Trigger: " #~ msgstr ", Sneller:" #~ msgid "package" #~ msgstr "pakket" #~ msgid "selection" #~ msgstr "keuse" #~ msgid "pattern" #~ msgstr "patroon" #~ msgid "product" #~ msgstr "produk" #~ msgid "patch" #~ msgstr "regstelling" #~ msgid "script" #~ msgstr "skrip" #~ msgid "message" #~ msgstr "boodskap" #~ msgid "atom" #~ msgstr "atoom" #~ msgid "system" #~ msgstr "stelsel" #~ msgid "Resolvable" #~ msgstr "Oplossings" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "Merk van hierdie resolusiepoging as ongeldig." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Merk van oplossing %s as oninstalleerbaar" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s word geskeduleer om geïnstalleer te word, maar dit is vanweë " #~ "afhanklikheidsprobleme nie moontlik nie." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "Kan %s nie installeer nie, aangesien dit reeds gemerk is om " #~ "ongeïnstalleer te word" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "" #~ "Kan %s nie installeer nie, aangesien dit nie op hierdie stelsel van " #~ "toepassing is nie." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "Kan %s nie installeer nie, aangesien %s reeds gemerk is om geïnstalleer " #~ "te word" #~ msgid "This would invalidate %s." #~ msgstr "Dit sal %s ongeldig maak." #~ msgid "Establishing %s" #~ msgstr "Vestig van %s" #~ msgid "Installing %s" #~ msgstr "Installeer van %s" #~ msgid "Updating %s to %s" #~ msgstr "Bywerk van %s na %s" #~ msgid "Skipping %s: already installed" #~ msgstr "Oorslaan van %s: reeds geïnstalleer" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "Daar is geen alternatief-geïnstalleerde verskaffers van %s nie" #~ msgid "for %s" #~ msgstr "vir %s nie" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "Bywerking na %s om verwyder van %s te verhoed, is nie moontlik nie." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s voorsien %s, maar word geskeduleer om ongeïnstalleer te word." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "" #~ "%s voorsien %s, maar ’n ander weergawe van daardie %s is reeds " #~ "geïnstalleer." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s voorsien %s, maar dit is oninstalleerbaar. Probeer om dit alleen te " #~ "installeer vir meer besonderhede." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s voorsien %s, maar dit is gesluit." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s voorsien %s, maar word geskeduleer om gehou te word." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s voorsien %s, maar dit het ’n ander argitektuur." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "Kan nie aan vereiste %s vir %s voldoen nie" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s word vereis deur ’n ander geïnstalleerde oplossing; gevolglik sal dit " #~ "nie ontkoppel word nie." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s word vereis deur ’n ander geïnstalleerde oplossing; gevolglik sal dit " #~ "nie ontkoppel word nie." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "" #~ "’n Konflik oor %s (%s) vereis die verwydering van om-geïnstalleer-te-word-" #~ "%s" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "Merk van %s as oninstalleerbaar vanweë konflikte oor %s" #~ msgid "from %s" #~ msgstr "vanaf %s" #~ msgid " Error!" #~ msgstr "Fout!" #~ msgid " Important!" #~ msgstr "Belangrik!" #~ msgid "%s depended on %s" #~ msgstr "%s afgehang van %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s word benodig deur %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s word benodig deur %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s word vervang deur %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s word benodig deur %s" #~ msgid "%s part of %s" #~ msgstr "%s deel van %s" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s word benodig deur %s" #~ msgid "Unable to parse Url authority" #~ msgstr "Kan Url-magtiging nie ontleed nie" #~ msgid "Ignore this requirement generally" #~ msgstr "Ignoreer hierdie vereiste oor die algemeen" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s word vereis deur ’n ander om-geïnstalleer-te-word-oplossing; gevolglik " #~ "sal dit nie ontkoppel word nie." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "" #~ "Kan nie ’n lêer wat benodig word om bywerkinstallasie uit te voer, skep " #~ "nie." #~ msgid "Unable to restore all sources." #~ msgstr "Kan nie alle bronne terugstel nie." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "Ten minste een bron reeds geregistreer, gebergde bronne kan nie " #~ "teruggestel word nie." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "Kan %s nie installeer om die afhanklikhede van %s te vervul nie" #~ msgid "%s dependend on %s" #~ msgstr "%s afhanklik van %s" #~ msgid "Reading index files" #~ msgstr "Lees van indekslêers" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "" #~ "Die getekende repomd.xml-lêer het nie die handtekeningnagaan geslaag nie." #~ msgid "Reading product from %s" #~ msgstr "Lees van produk vanaf %s" #~ msgid "Reading filelist from %s" #~ msgstr "Lees van lêerlys vanaf %s" #~ msgid "Reading packages from %s" #~ msgstr "Lees van pakkette vanaf %s" #~ msgid "Reading selection from %s" #~ msgstr "Lees van keuse vanaf %s" #~ msgid "Reading pattern from %s" #~ msgstr "Lees van patroon vanaf %s" #~ msgid "Reading patches index %s" #~ msgstr "Lees van regstellingsindeks %s" #~ msgid "Reading patch %s" #~ msgstr "Lees van regstelling %s" #~ msgid "The script file failed the checksum test." #~ msgstr "Die skriplêer het nie die nagaansomtoets geslaag nie." #~ msgid "Reading packages file" #~ msgstr "Lees van pakkettelêer" #~ msgid "Reading translation: %s" #~ msgstr "Lees van vertaling: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "Pakket %s se integriteitsnagaan misluk. Wil u dit weer probeer aflaai, of " #~ "die installasie staak?" #~ msgid " miss checksum." #~ msgstr "nagaansom ontbreek." #~ msgid " fails checksum verification." #~ msgstr "slaag nie nagaansom-bevestiging nie." #~ msgid "Downloading %s" #~ msgstr "Aflaai van %s" libzypp-17.7.0/po/ar.po000066400000000000000000004115231334444677500147060ustar00rootroot00000000000000# Arabic message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999 SuSE GmbH. # Ghayss Tarraf , 2000. # Mohammad Alhargan , 2011, 2012. # moh , 2011. # محمد الحرقان , 2012, 2013. # malhargan , 2014. # malhargan , 2014, 2015. msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-18 14:13+0000\n" "Last-Translator: George Yacoub \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 2.18\n" "X-Language-English: Arabic\n" "X-Language-Local: Arabic*\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "استثناء Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" "النوع المشكوك Ùيه '%s' للمجموع الاختباري لوحدات البايت %u الذي يبلغ '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "دولة غير Ù…Ø¹Ø±ÙˆÙØ©: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "بدون رمز" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "أندورا" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "الإمارات العربية المتحدة" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Ø§ÙØºØ§Ù†Ø³ØªØ§Ù†" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "أنتيغوا وباربودا" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "أنجيلا" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "البانيا" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ارمينيا" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "هولندا" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "أنجولا" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "أنتاركتيكا" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "الأرجنتين" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ساموا الأمريكية" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "النمسا" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "أستراليا" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "أروبا" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "جزر ألاند" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "أذربيجان" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "البوسنة والهرسك" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "بربادوس" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "بنغلاديش" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "بلجيكا" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "بوركينا ÙØ§Ø³Ùˆ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "بلغاريا" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "البحرين" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "بوروندي" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "بنين" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "برمودا" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "بروناي دار السلام" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "بوليÙيا" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "البرازيل" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "جزر البهاما" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "بوتان" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "جزيرة بوÙيه" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "بوتسوانا" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "روسيا البيضاء" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "بليز" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "كندا" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "جزر كوكوس (كيلنج)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "الكونغو" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "جمهورية Ø£ÙØ±ÙŠÙ‚يا الوسطى" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "سويسرا" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "ساحل العاج" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "جزر كوك" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "تشيلي" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "الكاميرون" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "الصين" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "كولومبيا" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "كوستاريكا" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "كوبا" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "الرأس الأخضر" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "جزيرة الكريسماس" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "قبرص" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "جمهورية التشيك" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ألمانيا" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "جيبوتي" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "الدنمارك" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "دومينيكان" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "جمهورية الدومينيكان" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "الجزائر" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "الإكوادور" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "استونيا" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "مصر" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "الصحراء الغربية" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "إرتيريا" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "أسبانيا" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "إثيوبيا" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Ùنلندا" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Ùيجي" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "جزر Ùوكلاند (مالÙينس)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "اتحاد دول ميكرونيزيا" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "جزر Ùيرو" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ÙØ±Ù†Ø³Ø§" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ÙØ±Ù†Ø³Ø§ المركزية" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "الجابون" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "المملكة المتحدة" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "غرينادا" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "جورجيا" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "جيانا Ø§Ù„ÙØ±Ù†Ø³ÙŠØ©" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "غويرنسي" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "غانا" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "جبل طارق" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "جرين لاند" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "جامبيا" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "غينيا" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "جوادلوب" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "غينيا الاستوائية" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "اليونان" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "جورجيا الجنوبية وجزر ساندويتش الجنوبية" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "غواتيمالا" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "جوام" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "غينيا بيساو" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "جيانا" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "هونج كونج" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "جزيرة هيرد وجزر ماكدونالد" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "هندوراس" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "كرواتيا" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "هايتي" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "المجر" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "إندونيسيا" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "أيرلندا" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "اسرائيل" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "جزيرة مان" #: zypp/CountryCode.cc:261 msgid "India" msgstr "الهند" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "مقاطعة المحيط الهندي البريطانية" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "العراق" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "إيران" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "أيسلندا" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "إيطاليا" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "جيرسي" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "جامايكا" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "الأردن" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "اليابان" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "كينيا" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "قيرقيزستان" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "كمبوديا" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "كيريباتي" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "جزر القمر" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "سانت كيتس ونيÙيس" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "كوريا الشمالية" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "كوريا الجنوبية" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "الكويت" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "جزر كيمان" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "كازاخستان" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "جمهورية لاو الشعبية الديمقراطية" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "لبنان" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "سانت لوشا" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "ليشتنشتاين" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "سيريلانكا" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ليبريا" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "ليسوتو" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ليتوانيا" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "لوكسمبورغ" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "لاتÙيا" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ليبيا" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "المغرب" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "موناكو" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Ù…ÙˆÙ„Ø¯ÙˆÙØ§" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "الجبل الأسود" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "سانت مارتن" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "مدغشقر" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "جزر مارشال" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "مقدونيا" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "مالي" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "ميانمار" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "منغوليا" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "ماكاو" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "جزر ماريانا الشمالية" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "مارتينيك" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "موريتانيا" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "مونتسيرات" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "مالطة" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "موريشيوس" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "جزر المالديÙ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "مالاوي" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "المكسيك" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "ماليزيا" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "موزمبيق" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ناميبيا" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "كاليدونيا الجديدة" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "النيجر" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "جزيرة نورÙولك" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "نيجيريا" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "نيكاراجوا" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "هولندا" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "النرويج" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "نيبال" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "ناورو" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "نيوي" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "نيوزيلاندا" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "عمان" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "بنما" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "البيرو" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "بولينيسيا Ø§Ù„ÙØ±Ù†Ø³ÙŠØ©" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "بابواغينيا الجديدة" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "الÙلبين" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "باكستان" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "بولندا" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "سان بيير ومكويلون" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "بيتكيرن" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "بورتوريكو" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Ùلسطين" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "البرتغال" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "بالاو" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "باراغواي" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "قطر" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "ريونيون" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "رومانيا" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "صربيا" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "روسيا الاتحادية" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "رواندا" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "المملكة العربية السعودية" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "جزر سليمان" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "سيشل" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "السودان" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "السويد" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "سنغاÙورا" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "سانت هلينا" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "سلوÙينيا" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Ø³ÙØ§Ù„بارد وجان ماين" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Ø³Ù„ÙˆÙØ§ÙƒÙŠØ§" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "سيراليون" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "سان مارينو" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "السنغال" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "الصومال" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "سورينام" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "سان تومي وبرينسيبي" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Ø§Ù„Ø³Ù„ÙØ§Ø¯ÙˆØ±" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "سوريا" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "سوازيلند" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "جزر توركس وكايكوس" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "تشاد" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "المقاطعات الجنوبية Ø§Ù„ÙØ±Ù†Ø³ÙŠØ©" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "توجو" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "تايلاند" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "طاجكستان" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "توكيلو" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "تركمانستان" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "تونس" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "تونجا" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "تيمور الشرقية" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "تركيا" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ترينيداد وتوباغو" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ØªÙˆÙØ§Ù„Ùˆ" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "تايوان" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "تنزانيا" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "أوكرانيا" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "أوغندا" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "الجزر Ø§Ù„ÙØ±Ø¹ÙŠØ© النائية التابعة للولايات المتحدة الأميركية" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "الولايات المتحدة" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "الأوروغواي" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "أوزباكستان" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "الكرسي البابوي (دولة Ø§Ù„ÙØ§ØªÙŠÙƒØ§Ù†)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "سانت Ùنسنت وجزر غرينادين" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Ùنزويلا" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "جزر Ùيرجن البريطانية" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "جزر Ùيرجن الأمريكية" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Ùيتنام" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "ÙØ§Ù†ÙˆØ§ØªÙˆ" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "جزر والس ÙˆÙوتونا" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "ساموا" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "اليمن" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "مايوت" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "جنوب Ø£ÙØ±ÙŠÙ‚يا" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "زامبيا" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "زيمبابوي" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ÙŠÙˆÙØ±" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "متطلبات مبدئية" #: zypp/Dep.cc:98 msgid "Requires" msgstr "يتطلب" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "تعارضات" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "العناصر القديمة" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "يوصي" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "يقترح" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "يحسن" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "ÙŠÙØ¶ÙŠÙ" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "تعذر ÙØªØ­ pty (â€%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "لا يمكن ÙØªØ­ المسار (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "لا يمكن تغيير الجذر Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Ø¥Ù„Ù‰ '%s' (â€%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "لا يمكن إجراء تغيير الدليل Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Ø¥Ù„Ù‰ '%s' داخل تغيير الجذر Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ " "'%s' (â€%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "لا يمكن تغيير الدليل Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Ø¥Ù„Ù‰ '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "لا يمكن تنÙيذ '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "تعذر تقسيم (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "تم إنهاء الأمر بالحالة %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "تم إنهاء الأمر بواسطة الإشارة %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "تم إنهاء الأمر بخطأ غير معروÙ." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "جرت محاولة استيراد Ø§Ù„Ù…ÙØªØ§Ø­ غير الموجود %s إلى حلقة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "ÙØ´Ù„ استيراد Ø§Ù„Ù…ÙØªØ§Ø­." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "ÙØ´Ù„ Ø­Ø°Ù Ø§Ù„Ù…ÙØªØ§Ø­." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "مل٠التوقيع %s غير موجود" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "لغة غير Ù…Ø¹Ø±ÙˆÙØ©: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Ø§Ù„Ø£ÙØ§Ø±ÙŠØ©" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "أذربيجان" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "الأتشينيزية" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "الأكولية" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "الأدانجمية" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "الأديجه" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Ø§Ù„Ø£ÙØ±Ùˆ آسيوية - (أخرى)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Ø§Ù„Ø£ÙØ±ÙŠÙ‡ÙŠÙ„ية" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Ø§Ù„Ø£ÙØ±ÙŠÙƒØ§Ù†Ø³" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "الآينوية" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "الأكانية" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "الأكادية" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "الألبانية" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "الأليوتية" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "اللغات الأمريكية الهندية" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "الألطائية الجنوبية" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "الأمهرية" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "الإنجليزية القديمة (450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "اللغات الأباتشية" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "العربية" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "الآرامية" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "الأراجونية" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "الأرمينية" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "الأروكانية" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "الأراباهو" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "الصناعية (أخرى)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "الأراواكية" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "الأسامية" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "الأسترية" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "اللغات الأزباسكانية" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "اللغات الأسترالية" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Ø§Ù„Ø£ÙØ§Ø±ÙŠÙƒÙŠØ©" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Ø§Ù„Ø£ÙØ³ØªÙŠØ©" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "الأوادية" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "الأيمارا" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "الأذربيجانية" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "الباندا" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "اللغات الباميليكية" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "الباشكيرية" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "البلوشية" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "البامبارا" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "اللغة البالية" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "الباسك" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "الباسا" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "البلطيقية (أخرى)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "البيجا" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "بلاروسي" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "البيمبا" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "بنجلاديشي" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "البربرية (أخرى)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "البهوجبرية" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "البيهارية" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "البيكولية" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "البينية" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "البيسلامية" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "السيكسيكية" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "البانتو (أخرى)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "البوسنية" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "البراجية" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "البريتون" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "الباتاكية (إندونسيا)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "البرياتية" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "البجينيزية" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "البلغارية" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "البورمية" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "البلينية" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "الكادو" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "الهندية الأمريكية الوسطى (أخرى)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "الكاريبية" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "الكاتالانية" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "القوقازية (أخرى)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "السيبيونو" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "السلتية (أخرى)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "التشامورو" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "التشيبشا" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "الشيشانية" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "التشاجاتاى" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "الصينية" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "التشكيزية" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "المارية" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "الشينوك جارجون" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "الشوكتو" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "الشيباوايان" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "الشيروكى" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "سلاÙية كنسية" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Ø§Ù„ØªØ´ÙØ§Ø´" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "الشايان" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "اللغات التشاميكية" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "القبطية" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "الكورنية" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "الكورسيكية" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" "الكرييولى واللغات المبسطة الأخرى Ù„Ù„ØªÙØ§Ù‡Ù… بين الشعوب على أساس الإنجليزية " "(أخرى)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" "الكرييولى واللغات المبسطة الأخرى Ù„Ù„ØªÙØ§Ù‡Ù… بين الشعوب على أساس Ø§Ù„ÙØ±Ù†Ø³ÙŠØ© (أخرى)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" "الكرييولى واللغات المبسطة الأخرى Ù„Ù„ØªÙØ§Ù‡Ù… بين الشعوب على أساس البرتغالية " "(أخرى)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "الكري" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "لغة توركية كريمينية" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "الكرييولى واللغات المبسطة الأخرى Ù„Ù„ØªÙØ§Ù‡Ù… بين الشعوب (أخرى)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "الكاشبايان" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "الكشيتيك (أخرى)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "التشيكية" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "الداكوتا" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "الدانماركية" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "الدارجوا" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "الدياك" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "الديلوير" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "السلاÙية (الأزباسكانية)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "الدوجريب" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "الدنكا" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "المالديÙية" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "الدوجرى" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "الدراÙيدين (أخرى)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "الصربية السÙلى" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "الديولا" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "الهولندية الوسطى (1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "الهولندية" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "الدايلا" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "الزونخاية" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "الاÙيك" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "المصرية (القديمة)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "الاكاجك" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "الامايت" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "الإنجليزية" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "الإنجليزية الوسطى (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "الإسبرانتو" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "الإستونية" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "إيوي" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "الإيوندو" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Ø§Ù„ÙØ§Ù†Ø¬" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Ø§Ù„ÙØ§Ø±ÙˆÙŠØ²" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Ø§Ù„ÙØ§Ù†ØªÙ‰" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "الÙيجية" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "الÙلبينية" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "الÙنلندية" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Ùينو أجرايان (أخرى)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "الÙون" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Ø§Ù„ÙØ±Ù†Ø³ÙŠØ©" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Ø§Ù„ÙØ±Ù†Ø³ÙŠØ© الوسطى (1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Ø§Ù„ÙØ±Ù†Ø³ÙŠØ© القديمة (842-1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Ø§Ù„ÙØ±ÙŠØ²ÙŠØ§Ù†" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "الÙلة" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Ø§Ù„ÙØ±ÙŠÙ„ايان" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "الجا" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "الجايو" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "الجبيا" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "الجرمانية (أخرى)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "الجورجية" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "الألمانية" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "الجيز" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "لغة أهل جبل طارق" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "الغيلية" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "الأيرلندية" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "الجاليكية" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "المنكية" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "الألمانية العليا الوسطى (1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "الألمانية العليا القديمة (750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "الجندى" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "الجورونتالو" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "الجرمانية" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "الجريبو" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "اليونانية القديمة (حتى 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "اليونانية الحديثة (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "الجوارانى" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "الغوجاراتية" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "جويتشن" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "الهيدا" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "الهايتية" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "الهوسا" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "لغة أهل الهاواى" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "العبرية" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "الهيريرو" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "الهيليجينون" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "الهيماتشالى" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "هندية" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "الحثية" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "الهمونجية" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "الهيرى موتو" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "الصربية العليا" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "المجرية" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "الهبا" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "الإيبان" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "الإيجبو" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "الآيسلندية" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "الإيدو" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "السيتشيون يى" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "الإيجو" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "الإينكتيتت" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "الإنترلينج" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "الإيلوكو" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "اللغة الوسيطة (جمعية اللغات المساعدة الدولية)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "الهندية (أخرى)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "الإندونيسية" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "الهندية الأوروبية (أخرى)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "الإنجوشية" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "الإينبياك" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "الإيرانية (أخرى)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "اللغات الإيروكويانية" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "الإيطالية" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "الجاوية" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "اللوجبان" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "اليابانية" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "الجيدو Ø§Ù„ÙØ§Ø±Ø³Ù‰" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "الجيدو العربي" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "الكارا كالباك" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "القبيلية" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "الكاتشين" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "الكالاليست" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "الكامبا" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "الكانادا" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "الكاريين" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "الكاشميرية" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "الكانيورى" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "الكوي" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "الكازاخستانية" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "الكاباردايان" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "الخاسي" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "الخويسان (أخرى)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "الخميرية" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "الخوتانيز" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "الكيكيو" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "الكينيارواندا" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "القيرغستانية" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "الكيمبندو" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "الكونكانية" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "الكومى" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "الكونغو" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "الكورية" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "الكوسراين" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "الكبيل" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "الكاراتشاى بالكار" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "الكرو" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "كوروخ" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "الكيونياما" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "الكميك" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "الكردية" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "الكتيناى" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "لادينو" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "اللاهندا" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "اللامبا" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "اللاوية" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "اللاتينية" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "اللاتÙية" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "الليزجهايانية" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "الليمبورغية" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "اللينجالا" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "الليتوانية" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "المنغولية" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "اللوزى" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "اللوكسمبرجية" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "اللبا-لؤلؤ" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "اللبا-كاتانجا" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "الجاندا" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "اللوسينو" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "اللوندا" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "اللو (كينيا وتنزانيا)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "اللشاى" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "المقدونية" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "المادريز" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "الماجا" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "المارشالية" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "المايثلية" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "الماكاسار" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "الماليالام" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "الماندينغ" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "الموري" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "الأوسترونيسيان (أخرى)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "المراثي" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "الماساي" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "الملايو" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "الموكشا" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "الماندار" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "الميند" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "الأيرلندية الوسطى (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "الميكماكيونية" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "المينانجكاباو" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "اللغات المتنوعة" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "المون خمير (أخرى)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "المالاجاشية" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "المالطية" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "المانشو" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "المانيبرى" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "لغات مانوبو" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "الموهوك" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "المولدوÙية" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "المنغولية" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "موسي" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "اللغات المتعددة" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "لغات المندا" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "كريك" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "الميرانديز" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "الماروارى" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "لغات المايا" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "اللغة الأرزية" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "الناهيوتل" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "الهندية الأمريكية الشمالية" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "اللغة النابولية" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Ù†Ø§ÙØ§Ø¬Ùˆ" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "النديبيل الجنوبى" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "النديبيل الشمالي" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "الندونجا" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "الألمانية السÙلى" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "النيبالية" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "نيبال ÙØ§Ø³Ø§" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "نياس" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "النيجر-ÙƒÙˆØ±Ø¯ÙˆÙØ§Ù†Ø§ÙŠØ§Ù† (أخرى)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "نيويان" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "النينورسك النرويجي" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "البوكمال النرويجي" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "نوجاى" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "النورس القديم" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "النرويجية" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "سوتو الشمالي" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "اللغات النوبية" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "النوارية التقليدية" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "التشيتشوا" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "النيامويزى" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "النيانكول" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "النيورو" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "النزيما" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "أوكيتان (بعد 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "الأوجيبوا" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "الأورييا" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "الأورومو" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "الأوساج" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "الأوسيتيان" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "التركية العثمانية (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "اللغات العثمانية" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "الغينية (أخرى)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "البانجاسينان" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "البهلوية" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "البامبانجا" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "بانجابي" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "البابيامينتو" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "البالوان" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Ø§Ù„ÙØ§Ø±Ø³ÙŠØ© القديمة (600-400 قبل الميلاد)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Ø§Ù„ÙØ§Ø±Ø³ÙŠØ©" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "الÙليبينية (أخرى)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "الÙينيقية" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "البالية" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "البولندية" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "البوهنبيايان" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "البرتغالية" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "اللغات البراقريطية" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Ø§Ù„Ø¨Ø±ÙˆÙØ§Ù†Ø³ÙŠØ© القديمة (حتى 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "بوشتو" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "الكويتشوا" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "الراجاسثانية" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "الرابانى" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "الراروتونجانى" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "الرومانسية (أخرى)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "الرهايتو-رومانس" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "الرومانية" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "الرومانية" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "روندي" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "الروسية" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "السانداوي" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "السانجو" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "الياكت" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "الهندية الأمريكية الجنوبية (أخرى)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "لغات ساليشان" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "الآرامية السومارية" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "السنسكريتية" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "الساساك" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "السانتالي" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "الصربية" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "الصقلية" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "الأسكتلندية" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "الكرواتية" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "السيلكب" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "السامية (أخرى)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "الأيرلندية القديمة (إلى 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "لغات الإشارة" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "الشانية" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "السيدامو" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "السينهالا" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "لغات السيويون" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "الصينية التيبتية (أخرى)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "السلاÙية (أخرى)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Ø§Ù„Ø³Ù„ÙˆÙØ§ÙƒÙŠØ©" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "السلوÙينية" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "السامية الجنوبية" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "السامية الشمالية" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "اللغات السامية (أخرى)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "اللول سامي" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "الإيناري سامي" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "الساموائية" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "السكولت سامي" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "الشونا" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "السيندي" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "السونينك" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "السوجديان" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "الصومالية" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "السونجهاى" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "سوتو الجنوبي" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "الأسبانية" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "السردينية" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "سيرير" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "النيلية الصحراوية (أخرى)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "السواتي" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "السوكوما" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "السودانية" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "السوسو" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "السومارية" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "السواحلية" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "السويدية" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "السريانية" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "التاهيتية" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "تاي (أخرى)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "التاميلية" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "التتارية" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "تيلوغو" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "التيمن" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "التيرينو" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "التيتم" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "الطاجكية" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "التاغالوغية" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "التايلاندية" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "التبتية" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "التيجر" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "التيجرينيا" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "التيÙ" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "الكلينجون" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "التلينغيتية" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "التاماشيك" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "تونجا (نياسا)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "تونجا (جزر تونجا)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "التوك بيسين" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "التسيمشيان" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "التسوانية" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "تسونجا" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "التركمانية" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "التامبوكا" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "اللغات التوبية" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "التركية" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "الألطائية (أخرى)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "التوي" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ØªÙˆÙØ§Ù†ÙŠ" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "الأدمرت" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "اليجاريتيك" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "الأغورية" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "الأوكرانية" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "الأمبندو" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "غير محددة" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "الأردية" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "الأوزبكية" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Ø§Ù„ÙØ§ÙŠ" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "الÙيندا" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "الÙيتنامية" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "الÙولابوك" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "الÙوتيك" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "لغات الواكاشان" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "الوالامو" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "الواراي" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "الواشو" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "الويلزية" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "اللغات الصربية" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "الولونية" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "الولوÙ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "الكالميك" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "الهاوسا" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "الياو" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "اليابيز" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "الييدية" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "اليوروبية" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "اللغات اليوبيكية" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "الزابوتيك" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "الزيناجا" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "الزهيونج" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "الزاند" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "الزولو" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "الزونية" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "سيتم تنÙيذ الإجراءات التالية:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "الصلاحية غير منتهية" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "نهاية الصلاحية:: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "تنتهي: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(الصلاحية غير منتهية)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(انتهت الصلاحية)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(ستنتهي الصلاحية خلال 24 ساعة)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(ستنتهي الصلاحية خلال %d من الأيام)" msgstr[1] "(ستنتهي الصلاحية خلال يوم واحد)" msgstr[2] "(ستنتهي الصلاحية خلال يومين)" msgstr[3] "(ستنتهي الصلاحية خلال بضعة أيام)" msgstr[4] "(ستنتهي الصلاحية خلال عدة أيام)" msgstr[5] "(ستنتهي الصلاحية خلال %d من الأيام)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "تعذرت قراءة دليل المخازن '%1%': تم Ø±ÙØ¶ الإذن" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "ÙØ´Ù„ت قراءة الدليل '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "تعذرت قراءة مل٠المخزن '%1%': تم Ø±ÙØ¶ الإذن" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "لا يمكن أن يبدأ الاسم المستعار للمخزن بنقطة." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "لا يمكن أن يبدأ الاسم المستعار للخدمة بنقطة." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "تعذر ÙØªØ­ المل٠'%s' للكتابة." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "خدمة غير Ù…Ø¹Ø±ÙˆÙØ© '%1%': تتم الآن إزالة مخزن الخدمة الوحيد '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "لم يتم العثور على بيانات تعري٠صالحة ÙÙŠ أي عنوان URL محدد" msgstr[1] "لم يتم العثور على بيانات تعري٠صالحة ÙÙŠ عنوان URL المحدد" msgstr[2] "لم يتم العثور على بيانات تعري٠صالحة ÙÙŠ عنواني URL المحددين" msgstr[3] "لم يتم العثور على بيانات تعري٠صالحة ÙÙŠ بعض عناوين URL المحددة" msgstr[4] "لم يتم العثور على بيانات تعري٠صالحة ÙÙŠ كثير من عناوين URL المحددة" msgstr[5] "لم يتم العثور على بيانات تعري٠صالحة ÙÙŠ عناوين URL محددة أخرى" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "لا يمكن إنشاء %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "لا يمكن إنشاء دليل لذاكرة التخزين المؤقت لبيانات التعريÙ." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "يتم الآن بناء الذاكرة المؤقتة لمخزن '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "لا يمكن إنشاء ذاكرة التخزين المؤقت ÙÙŠ %s - لا توجد أذونات للكتابة." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "ÙØ´Ù„ التخزين المؤقت للمخزن (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "نوع مخزن غير معالج" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "حدث خطأ أثناء محاولة القراءة من '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "حدث خطأ غير معرو٠أثناء القراءة من '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Ø¥Ø¶Ø§ÙØ© المخزن '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "اسم مل٠المخزن غير صالح ÙÙŠ '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "إزالة المخزن '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "لا يمكن Ù…Ø¹Ø±ÙØ© مكان تخزين المخزن." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "لا يمكن حذ٠'%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "لا يمكن Ù…Ø¹Ø±ÙØ© مكان تخزين الخدمة." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "سلسلة استعلام URL لبروتوكول LDAP غير صالحة" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "معلمة استعلام URL لبروتوكول LDAP â€'%s' غير صالحة" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "تعذر استنساخ كائن Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "مرجع كائن Url ÙØ§Ø±Øº غير صالح" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "تعذر تحليل مكونات Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "غير معروÙ" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "غير مدعوم" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "المستوى 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "المستوى 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "المستوى 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "مطلوب عقد عميل إضاÙÙŠ" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "غير صالح" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "مستوى الدعم غير محدد" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "البائع لا ÙŠÙˆÙØ± الدعم." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "تحديد المشكلة والذي يعني دعمًا Ùنيًا مصممًا لتوÙير معلومات التواÙÙ‚ والمساعدة ÙÙŠ " "التثبيت ودعم الاستخدام والصيانة المستمرة واستكشا٠الأخطاء وإصلاحها الأساسي. " "والمستوى 1 من الدعم ليس مخصصًا لتصحيح أخطاء عيوب المنتجات." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "عزل المشكلة، والذي يعني دعمًا Ùنيًا مصممًا لعمل نسخ مطابقة من مشاكل العملاء " "وعزل منطقة المشكلة وتوÙير حل للمشاكل التي لم يتم حلها من خلال دعم المستوى 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "حل المشكلة، والذي يعني دعمًا Ùنيًا مصممًا لحل المشاكل المعقدة من خلال إشراك " "الهندسة ÙÙŠ حل عيوب المنتج التي تم تحديدها ÙÙŠ دعم المستوى 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "مطلوب عقد عميل إضاÙÙŠ للحصول على الدعم." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "خيار دعم غير معروÙ. الوص٠غير متاح" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "يتم Ù‚ÙÙ„ إدارة النظام بواسطة التطبيق الذي يتضمن معر٠العملية %d (%s).\n" "الرجاء إغلاق هذا التطبيق قبل المحاولة مرة أخرى." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "المحÙوظات:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "لا يمكن ÙØªØ­ مل٠القÙÙ„: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "يتم الآن تشغيل هذا الإجراء Ø¨Ø§Ù„ÙØ¹Ù„ من قبل برنامج آخر." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "وضع التطابق '%s' غير معروÙ" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "وضع التطابق '%s' غير معرو٠للنمط '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "تعبير عادي غير صالح '%s': regcomp أعاد %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "التعبير العادي '%s' غير صالح" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "التصديق مطلوب لـ '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "ØªÙØ¶Ù„ بزيارة Novell Customer Center (مركز خدمة عملاء Novell) للتحقق من صلاحية " "التسجيل وعدم انتهائها." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "ÙØ´Ù„ توصيل %s بـ %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "ÙØ´Ù„ إلغاء توصيل %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "اسم مل٠غير صالح: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "لم يتم ÙØªØ­ الوسيط أثناء محاولة تنÙيذ الإجراء '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "لم يتم العثور على المل٠'%s' ÙÙŠ الوسيط '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "لا يمكن كتابة المل٠'%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "لم يتم Ø¥Ø±ÙØ§Ù‚ الوسيط" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "نقطة Ø¥Ø±ÙØ§Ù‚ وسائط غير صالحة" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "ÙØ´Ù„ت تهيئة إنزال (curl) لـ '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "استثناء النظام '%s' ÙÙŠ الوسيط '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "المسار '%s' ÙÙŠ الوسيط '%s' ليس ملÙًا." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "المسار '%s' ÙÙŠ الوسيط '%s' ليس دليلاً." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI غير صالح" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "اسم Ù…Ø¶ÙŠÙ ÙØ§Ø±Øº ÙÙŠ URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "نظام Ù…Ù„ÙØ§Øª ÙØ§Ø±Øº ÙÙŠ URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "وجهة ÙØ§Ø±ØºØ© ÙÙŠ URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "مخطط URI غير مدعوم ÙÙŠ '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "لا يدعم الوسيط العملية" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "خطأ ÙÙŠ إنزال (curl) لـ '%s':\n" "رمز الخطأ: %s\n" "رسالة الخطأ: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "حدث خطأ أثناء تعيين خيارات إنزال (curl) لـ '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "لا يحتوي مصدر الوسائط '%s' على الوسيط المطلوب" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "الوسيط '%s' مستخدَم بواسطة مثيل آخر" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "لا يمكن إخراج أي وسائط" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "لا يمكن إخراج الوسائط '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "تم Ø±ÙØ¶ إذن الوصول إلى '%s'." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "تم تجاوز المهلة عند الوصول إلى '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "يتعذر الوصول إلى الموقع '%s' مؤقتًا." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " مشكلة ÙÙŠ شهادة SSLØŒ تحقق من أن شهادة CA صالحة لـ '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "إنشاء نقطة Ø¥Ø±ÙØ§Ù‚: لا يمكن العثور على دليل قابل للكتابة لإنشاء نقطة Ø¥Ø±ÙØ§Ù‚" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "أسلوب تصديق HTTP غير مدعوم '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "الرجاء تثبيت حزمة 'lsof' أولًا." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "السمة المطلوبة '%s' Ù…Ùقودة." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "إحدى السمتين '%s' أو '%s' أو كلتيهما مطلوبة." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "ÙØ´Ù„ التحقق من التوقيع" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "يبدو أنه قد تم إتلا٠الحزمة %s أثناء النقل. هل تريد إعادة محاولة الاسترداد؟" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "ÙØ´Ù„ تقديم الحزمة %s. هل تريد إعادة محاولة الاسترداد؟" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "ÙØ´Ù„ التحقق من applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "ÙØ´Ù„ applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "لا تدعم الأداة الإضاÙية للخدمة تغيير إحدى السمات." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "لا يمكن توÙير المل٠'%s' من المخزن '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "لا يوجد عنوان url ÙÙŠ المخزن." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "يتعارض مل٠%1%\n" " من الحزمة\n" " %2%\n" " مع المل٠من الحزمة\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "يتعارض مل٠%1%\n" " من الحزمة\n" " %2%\n" " مع المل٠من تثبيت\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "يتعارض مل٠%1%\n" " من تثبيت\n" " %2%\n" " مع المل٠من الحزمة\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "يتعارض مل٠%1%\n" " من تثبيت\n" " %2%\n" " مع المل٠من تثبيت\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "يتعارض مل٠%1%\n" " من الحزمة\n" " %2%\n" " مع الملÙ\n" " %3%\n" " من الحزمة\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "يتعارض مل٠%1%\n" " من الحزمة\n" " %2%\n" " مع الملÙ\n" " %3%\n" " من تثبيت\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "يتعارض مل٠%1%\n" " من تثبيت\n" " %2%\n" " مع الملÙ\n" " %3%\n" " من الحزمة\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "يتعارض مل٠%1%\n" " من تثبيت\n" " %2%\n" " مع الملÙ\n" " %3%\n" " من تثبيت\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "تعذر إنشاء sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "توقي٠%s عن طريق تجاهل بعض تبعياتها" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "تجاهل بشكل عام لبعض التبعيات" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "لا ينتمي %s إلى مخزن ترقية التوزيع" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "هيكل %s غير ملائم" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "توجد مشكلة بالحزمة المثبتة %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "طلبات متعارضة" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "بعض مشكلات التبعية" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "لا يوجد مصدر لتوÙير %s المطلوب" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "هل قمت بتمكين كل المخازن المطلوبة؟" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "الحزمة %s غير موجود" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "الطلب غير مدعوم" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "يتم توÙير %s من خلال النظام ولا يمكن حذÙÙ‡" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s غير قابل للتثبيت" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "لا يوجد مصدر لتوÙير %s المطلوب من قبل %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "لا يمكن تثبيت كل من %s Ùˆ%s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "يتعارض %s مع %s Ø§Ù„Ù…ØªÙˆÙØ± من قبل %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s ÙŠÙØ¨Ø·ÙÙ„ %s Ø§Ù„Ù…ØªÙˆÙØ± من قبل %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s المثبَت Ø³ÙŠÙØ¨Ø·Ù„ %s الموÙَر بواسطة %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "المشكلة القابلة للحل %s تتعارض مع %s Ø§Ù„Ù…ØªÙˆÙØ±Ø© من Ù†ÙØ³Ù‡Ø§" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s يتطلب %sØŒ ولكن لا يمكن توÙير هذا المتطلب" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "Ø§Ù„Ù…ÙˆÙØ±ÙˆÙ† المحذوÙون: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "Ù…ÙˆÙØ±ÙˆÙ† غير قابلين للتثبيت: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "Ø§Ù„Ù…ÙˆÙØ±ÙˆÙ† غير القابلين للتثبيت: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "إزالة القÙÙ„ للسماح بالحذ٠%s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "عدم تثبيت %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بـ %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "إزالة القÙÙ„ للسماح بالتثبيت %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "سيؤدي هذا الطلب إلى تعطل النظام!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "تجاهل تحذير النظام المعطل" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "عدم طلب تثبيت المشاكل القابلة للحل التي ØªÙˆÙØ± %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "عدم طلب حذ٠كل المشاكل القابلة للحل التي ØªÙˆÙØ± %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "عدم تثبيت أحدث إصدار من %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "Ø§Ù„Ø­ÙØ§Ø¸ على %s بغض النظر عن الهيكل غير الملائم" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "تثبيت %s بغض النظر عن الهيكل غير الملائم" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "Ø§Ù„Ø­ÙØ§Ø¸ على %s القديمة" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "تثبيت %s من المخزن المستبعد" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "تخÙيض إصدار %s إلى %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "تغيير الهيكل الخاص بـ %s إلى %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "تثبيت %s (مع تغيير البائع)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "استبدال %s بـ %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "إلغاء تثبيت %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "جار٠تنÙيذ برنامج %%posttrans النصي '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "جار٠تنÙيذ برامج %posttrans النصية" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " Ù…ÙÙ†Ùَّذ" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " ÙØ´Ù„ التنÙيذ" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "تم تنÙيذ %s Ø¨Ø§Ù„ÙØ¹Ù„ كـ %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " تم تخطي التنÙيذ أثناء الإيقاÙ" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "حدث خطأ أثناء إرسال رسالة إعلام بالتحديث." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "رسالة تحديث جديد" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "تم إيقا٠التثبيت ÙˆÙقًا للتعليمات." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "عذرًا، تم إنشاء هذا الإصدار من libzypp بدون دعم HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext غير متصل" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "لم تتم تهيئة HalDrive" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "لم تتم تهيئة HalVolume" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "تعذر إنشاء اتصال dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: تعذر إنشاء سياق libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: تعذر تعيين اتصال dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "تعذرت تهيئة سياق HAL -- هل hald ليس قيد التشغيل؟" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "ليس محرك أقراص مضغوطة" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "ÙØ´Ù„ RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "ÙØ´Ù„ استيراد Ø§Ù„Ù…ÙØªØ§Ø­ العمومي %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "أخÙقت إزالة Ø§Ù„Ù…ÙØªØ§Ø­ العام %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "لم يتم توقيع الحزمة!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Ù…Ù„ÙØ§Øª التكوين التي تم تغييرها لـ %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "قامت rpm Ø¨Ø­ÙØ¸ %s باعتبارها %sØŒ ولكن تعذر تحديد Ø§Ù„ÙØ±Ù‚" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "تم Ø­ÙØ¸ rpm %s باعتبارها %s.\n" "Ùيما يلي أول 25 سطرًا من سطور Ø§Ù„ÙØ±Ù‚:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "قامت rpm بإنشاء %s باعتبارها %sØŒ ولكن تعذر تحديد Ø§Ù„ÙØ±Ù‚" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "تم إنشاء %s من خلال rpm باعتبارها %s.\n" "Ùيما يلي أول 25 سطرًا من سطور Ø§Ù„ÙØ±Ù‚:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "مخرجات rpm إضاÙية" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "تم إنشاء النسخة الاحتياطية %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "تمت المصادقة على التوقيع" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "نوع التوقيع غير معروÙ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "تعذر التحقق من التوقيع" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "تمت المصادقة على التوقيع، لكن Ø§Ù„Ù…ÙØªØ§Ø­ غير موثوق به" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "تواقيع Ø§Ù„Ù…ÙØªØ§Ø­ العمومي غير Ù…ØªÙˆÙØ±Ø©" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "المل٠غير موجود أو لا يمكن التحقق من توقيعه" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "المل٠غير موقع" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "تعذرت تهيئة سمات mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "تعذر تعيين سمة mutex المتكرر" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "تعذرت تهيئة mutex المتكرر" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "تعذر الحصول على Ù‚ÙÙ„ mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "تعذر تحرير Ù‚ÙÙ„ mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "لا يسمح مخطط Url بـ %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "مكون %s غير صالح '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "مكون %s غير صالح" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "تحليل سلسلة الاستعلام غير مدعوم لعنوان URL هذا" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "يعتبر مخطط Url مكونًا مطلوبًا" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "مخطط Url '%s' غير صالح" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "لا يسمح مخطط Url بإدخال اسم مستخدم" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "لا يسمح مخطط Url بإدخال كلمة سر" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "يتطلب مخطط Url وجود مكون مضيÙ" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "لا يسمح مخطط Url بوجود مكون مضيÙ" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "مكون المضي٠'%s' غير صالح" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "لا يسمح مخطط Url بإدخال Ù…Ù†ÙØ°" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "مكون Ø§Ù„Ù…Ù†ÙØ° '%s' غير صالح" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "يتطلب مخطط Url وجود اسم مسار" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "غير مسموح بالمسار النسبي ÙÙŠ حالة وجود سلطة" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "تحتوي السلسلة Ø§Ù„Ù…ÙØ±Ù…َّزة على وحدة بايت NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "حر٠تقسيم مصÙÙˆÙØ© المعلمات Ø§Ù„ÙØ§ØµÙ„ غير صالح" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "حر٠تقسيم مخطط المعلمات Ø§Ù„ÙØ§ØµÙ„ غير صالح" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "حر٠ربط مصÙÙˆÙØ© المعلمات Ø§Ù„ÙØ§ØµÙ„ غير صالح" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "ÙØ´Ù„ استيراد Ø§Ù„Ù…ÙØªØ§Ø­ العام من المل٠%sâ€: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "ÙØ´Ù„ت إزالة Ø§Ù„Ù…ÙØªØ§Ø­ العام %sâ€: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "لا يمكن العثور على جهاز التسلسل المتاح لتوصيل مل٠الصور من '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "عموما تجاهل بعض المعتمدات" #~ msgid "do not forbid installation of %s" #~ msgstr "لا تمنع تثبيت %s" #~ msgid "do not keep %s installed" #~ msgstr "عدم الإبقاء على %s مثبت" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "لا يمكن إنشاء Ø§Ù„Ù…ÙØªØ§Ø­ العام %s من %s إلى مل٠حلقة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "حاول استيراد Ù…ÙØªØ§Ø­ غير موجود %s إلى حلقة Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "لا يمكن تغيير مجلد العمل '/' داخل استجذار (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "ÙØ´Ù„ تهيئة تحميل (Metalink curl) '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "تحميل (metalink curl) خطأ '%s':\n" #~ "رمز الخطأ: %s\n" #~ "رسالة الخطأ: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "توق٠التحميل ÙÙŠ %d%%" #~ msgid "Download interrupted by user" #~ msgstr "توق٠التحميل بواسطة المستخدم" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "حدث خطأ أثناء إعداد خيارات التحميل (metalink curl) Ù„ '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "ÙØ´Ù„ ÙÙŠ تحميل %s من%s" #~ msgid "Serbia and Montenegro" #~ msgstr "صربيا ومونتنيجرو" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "خيار list غير معروÙ" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "تعذر حل التبعيات" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" libzypp-17.7.0/po/be.po000066400000000000000000002631071334444677500146750ustar00rootroot00000000000000# Belarusian message file for YaST2 (@memory@). # Copyright (C) 2007 SUSE Linux Products GmbH. # Alexander Nyakhaychyk , 2007 # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2006-01-04 08:58+0100\n" "Last-Translator: Alexander Nyakhaychyk \n" "Language-Team: Belarusian \n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 #, fuzzy msgid "Unknown country: " msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ ÐºÐ°Ð¼Ð°Ð½Ð´Ð°: %1" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Ðб'ÑÐ´Ð½Ð°Ð½Ñ‹Ñ ÐрабÑÐºÑ–Ñ Ð­Ð¼Ñ–Ñ€Ð°Ñ‚Ñ‹" #. :ARE:784: #: zypp/CountryCode.cc:160 #, fuzzy msgid "Afghanistan" msgstr "ПакіÑтан" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "ÐлбаніÑ" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "" #. :ARM:051: #: zypp/CountryCode.cc:165 #, fuzzy msgid "Netherlands Antilles" msgstr "ÐідÑрланды" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Ðргенціна" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ÐÑžÑтрыÑ" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ÐÑžÑтраліÑ" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "" #. :AZE:031: #: zypp/CountryCode.cc:175 #, fuzzy msgid "Bosnia and Herzegovina" msgstr "БоÑÐ½Ñ–Ñ Ñ– Герцагавіна" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "БангладÑш" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "БельгіÑ" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "БалгарыÑ" #. :BGR:100: #: zypp/CountryCode.cc:181 #, fuzzy msgid "Bahrain" msgstr "БахрÑйн" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "БалівіÑ" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" #. :BTN:064: #: zypp/CountryCode.cc:190 #, fuzzy msgid "Bouvet Island" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "БатÑвана" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "БеларуÑÑŒ" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Канада" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "СірыÑ" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ШвейцарыÑ" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 #, fuzzy msgid "Cook Islands" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Чылі" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "КалумбіÑ" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "КоÑта Рыка" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ЧÑÑ…Ñ–Ñ" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ГерманіÑ" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ДаніÑ" #. :DNK:208: #: zypp/CountryCode.cc:215 #, fuzzy msgid "Dominica" msgstr "ДамініканÑÐºÐ°Ñ Ð ÑÑпубліка" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ДамініканÑÐºÐ°Ñ Ð ÑÑпубліка" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Ðлжыр" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Эквадор" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ЭÑтоніÑ" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Егіпет" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "ІÑпаніÑ" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ФінлÑндыÑ" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ФранцыÑ" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "" #. :GBR:826: #: zypp/CountryCode.cc:234 #, fuzzy msgid "Grenada" msgstr "Канада" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ГрузіÑ" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "ГерманіÑ" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ГрÑнландыÑ" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ГрÑцыÑ" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "ГватÑмала" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Гонк Конг" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ГандураÑ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ХарватыÑ" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ВенгрыÑ" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ІнданÑзіÑ" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ІрландыÑ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Ізраіль" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ІндыÑ" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Ірак" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ІÑландыÑ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ІталіÑ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ІарданіÑ" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ЯпоніÑ" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "ÐŸÐ°ÑžÐ´Ð½ÐµÐ²Ð°Ñ Ðфрыка" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Кувейт" #. :KWT:414: #: zypp/CountryCode.cc:280 #, fuzzy msgid "Cayman Islands" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :CYM:136: #: zypp/CountryCode.cc:281 #, fuzzy msgid "Kazakhstan" msgstr "ПакіÑтан" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Ліван" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "ЛіхтÑнштÑйн" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Літва" #. :LTU:440: #: zypp/CountryCode.cc:290 #, fuzzy msgid "Luxembourg" msgstr "ЛюкÑембург" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ЛатвіÑ" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Марока" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" #. :MDG:450: #: zypp/CountryCode.cc:299 #, fuzzy msgid "Marshall Islands" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "МакедоніÑ" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "" #. :MTQ:474: #: zypp/CountryCode.cc:307 #, fuzzy msgid "Mauritania" msgstr "Літва" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Мальта" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "" #. :MDV:462: #: zypp/CountryCode.cc:312 #, fuzzy msgid "Malawi" msgstr "МалайзіÑ" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "МекÑіка" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "МалайзіÑ" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" #. :NAM:516: #: zypp/CountryCode.cc:317 #, fuzzy msgid "New Caledonia" msgstr "МакедоніÑ" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 #, fuzzy msgid "Norfolk Island" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :NFK:574: #: zypp/CountryCode.cc:320 #, fuzzy msgid "Nigeria" msgstr "Ðлжыр" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Ðікарагуа" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "ÐідÑрланды" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ÐарвегіÑ" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ÐÐ¾Ð²Ð°Ñ Ð—ÐµÐ»Ð°Ð½Ð´Ñ‹Ñ" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Ðман" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Панама" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Перу" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Філіпіны" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ПакіÑтан" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Польша" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "ПуÑрта Рыка" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ПартугаліÑ" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Парагвай" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Катар" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "РумыніÑ" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Ðлжыр" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "СаудаўÑÐºÐ°Ñ ÐравіÑ" #. :SAU:682: #: zypp/CountryCode.cc:350 #, fuzzy msgid "Solomon Islands" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Судан" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ШвецыÑ" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Сінгапур" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "СлавеніÑ" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "СлавакіÑ" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Сальвадор" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 #, fuzzy msgid "Swaziland" msgstr "Тайланд" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Тайланд" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ТаджыкіÑтан" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 #, fuzzy msgid "Turkmenistan" msgstr "ТаджыкіÑтан" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ТуніÑ" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ТурцыÑ" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Тайвань" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Украіна" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 #, fuzzy msgid "United States" msgstr "Ðб'ÑÐ´Ð½Ð°Ð½Ñ‹Ñ ÐрабÑÐºÑ–Ñ Ð­Ð¼Ñ–Ñ€Ð°Ñ‚Ñ‹" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Уругвай" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "УзбекÑітан" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ВенеÑуÑла" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Йемен" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "ÐŸÐ°ÑžÐ´Ð½ÐµÐ²Ð°Ñ Ðфрыка" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Зімбабве" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 #, fuzzy msgid "Unknown language: " msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ ÐºÐ°Ð¼Ð°Ð½Ð´Ð°: %1" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 #, fuzzy msgid "Albanian" msgstr "ÐлбаніÑ" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "ÐŸÐ°ÑžÐ´Ð½ÐµÐ²Ð°Ñ Ðфрыка" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "&Мова" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "ÐÑžÑтраліÑ" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 #, fuzzy msgid "Belarusian" msgstr "БеларуÑÑŒ" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "" #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "ІнданÑзіÑ" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 #, fuzzy msgid "Bulgarian" msgstr "БалгарыÑ" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 #, fuzzy msgid "Catalan" msgstr "КаталоніÑ" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "&Мова" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 #, fuzzy msgid "Danish" msgstr "ЗавÑршыць" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "" #. language code: est et #: zypp/LanguageCode.cc:423 #, fuzzy msgid "Estonian" msgstr "ЭÑтоніÑ" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 #, fuzzy msgid "Faroese" msgstr "ФарÑÑ€ÑÐºÑ–Ñ Ð°Ñтравы" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "Філіпіны" #. language code: fin fi #: zypp/LanguageCode.cc:439 #, fuzzy msgid "Finnish" msgstr "ЗавÑршыць" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr "ГрузіÑ" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 #, fuzzy msgid "German" msgstr "ГерманіÑ" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 #, fuzzy msgid "Hungarian" msgstr "ВенгрыÑ" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 #, fuzzy msgid "Icelandic" msgstr "ІÑландыÑ" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "Літва" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 #, fuzzy msgid "Indonesian" msgstr "ІнданÑзіÑ" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 #, fuzzy msgid "Italian" msgstr "ІталіÑ" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 #, fuzzy msgid "Japanese" msgstr "ЯпоніÑ" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "Канада" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 #, fuzzy msgid "Lao" msgstr "Ліван" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" #. language code: lav lv #: zypp/LanguageCode.cc:665 #, fuzzy msgid "Latvian" msgstr "ЛатвіÑ" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "ЛюкÑембург" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 #, fuzzy msgid "Lithuanian" msgstr "Літва" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "ЛюкÑембург" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 #, fuzzy msgid "Macedonian" msgstr "МакедоніÑ" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "МалайзіÑ" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "МалайзіÑ" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "МалайзіÑ" #. language code: mlt mt #: zypp/LanguageCode.cc:745 #, fuzzy msgid "Maltese" msgstr "Мальта" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "&Мова" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "ЮгаÑлавіÑ" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "" #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "Захаванне мовы..." #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "&Мова" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "ГерманіÑ" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 #, fuzzy msgid "Norwegian" msgstr "ÐарвегіÑ" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "&Мова" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "&Мова" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "" #. language code: phi #: zypp/LanguageCode.cc:865 #, fuzzy msgid "Philippine (Other)" msgstr "Філіпіны" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 #, fuzzy msgid "Portuguese" msgstr "ПартугаліÑ" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "&Мова" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "ЯпоніÑ" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "РумыніÑ" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 #, fuzzy msgid "Romanian" msgstr "РумыніÑ" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 #, fuzzy msgid "Russian" msgstr "РаÑÑ–Ñ" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Захаванне мовы..." #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 #, fuzzy msgid "Croatian" msgstr "ХарватыÑ" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "&Мова" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Захаванне мовы..." #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 #, fuzzy msgid "Slovak" msgstr "СлавакіÑ" #. language code: slv sl #: zypp/LanguageCode.cc:959 #, fuzzy msgid "Slovenian" msgstr "СлавеніÑ" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 #, fuzzy msgid "Lule Sami" msgstr "Ð†Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 #, fuzzy msgid "Swedish" msgstr "ШвецыÑ" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "" #. language code: tai #: zypp/LanguageCode.cc:1015 #, fuzzy msgid "Tai (Other)" msgstr "Іншае" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "" #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "Катар" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "ТаджыкіÑтан" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 #, fuzzy msgid "Thai" msgstr "Тайланд" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "БатÑвана" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "ТурцыÑ" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "&Мова" #. language code: tur tr #: zypp/LanguageCode.cc:1071 #, fuzzy msgid "Turkish" msgstr "ТурцыÑ" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 #, fuzzy msgid "Ukrainian" msgstr "Украіна" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 #, fuzzy msgid "Uzbek" msgstr "УзбекÑітан" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 #, fuzzy msgid "Vietnamese" msgstr "Ð†Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "Захаванне мовы..." #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "&Мова" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "" #: zypp/RepoManager.cc:1392 #, fuzzy msgid "Unhandled repository type" msgstr "Дадаць ÑƒÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ Ñховішчы" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ Ð´Ð»Ñ ÐºÐ°Ð¼Ð°Ð½Ð´Ñ‹ '%1': %2" #: zypp/RepoManager.cc:1620 #, fuzzy, c-format, boost-format msgid "Adding repository '%s'" msgstr "Даданне ўключаных Ñховішчаў..." #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "Выдаленне непатрÑбных Ñховішчаў..." #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "невÑдомы" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ ÐºÐ°Ð¼Ð°Ð½Ð´Ð°: %1" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Памылковае значÑнне Ð´Ð»Ñ Ð¾Ð¿Ñ†Ñ‹Ñ– '%1': %2" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 #, fuzzy msgid "Have you enabled all requested repositories?" msgstr "Выдаліць непатрÑÐ±Ð½Ñ‹Ñ Ñховішчы" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Захаваць налады ÑžÑталёўкі" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Захаваць налады ÑžÑталёўкі" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr "" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "Праверыць інтÑрнÑÑ‚ злучÑнне" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "ЗмÑніць канфігурацыю IrDA" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, fuzzy, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Памылковае значÑнне Ð´Ð»Ñ Ð¾Ð¿Ñ†Ñ‹Ñ– '%1': %2" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, fuzzy, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Памылковае значÑнне Ð´Ð»Ñ Ð¾Ð¿Ñ†Ñ‹Ñ– '%1': %2" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" libzypp-17.7.0/po/bg.po000066400000000000000000003627441334444677500147060ustar00rootroot00000000000000# translation of zypp.bg.po to Bulgarian # translation of libzypp.bg.po to Bulgarian # Bulgarian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) SuSE GmbH, 2000. # Dimitar Boin , 2000. # Y Gonch , 2000. # Borislav Mitev , 2006. # msgid "" msgstr "" "Project-Id-Version: zypp.bg\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2017-10-23 11:43+0000\n" "Last-Translator: Dimitar Zahariev \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.13.1\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 #, fuzzy msgid "Hal Exception" msgstr "Криптиране" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Съмнителен тип '%s' за %u, код за проверка '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "ÐеизвеÑтна държава: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Без код" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Ðндора" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Обединени арабÑки емирÑтва" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "ÐфганиÑтан" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Ðнтигуа и Барбуда" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Ðнгила" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "ÐлбаниÑ" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ÐрмениÑ" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "ХоландÑки Ðнтили" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Ðнгола" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Ðнтарктика" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Ðржентина" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ÐмериканÑка Самоа" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ÐвÑтриÑ" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ÐвÑтралиÑ" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Ðруба" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "ÐланÑки ОÑтрови" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Ðзербайджан" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "БоÑна и Херцеговина" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "БарбадоÑ" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Бангладеш" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "БелгиÑ" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Буркина ФаÑо" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "БългариÑ" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Бахрейн" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Бурунди" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Бенин" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Бермуда" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Бруней" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "БоливиÑ" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "БразилиÑ" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Бахами" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Бутан" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ОÑтров Бувет" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Боцвана" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "БеларуÑ" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Белиз" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Канада" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "КокоÑови ОÑтрови" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Конго" # CF #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "ЦентралноафриканÑка Република" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ШвейцариÑ" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Кот д'ивоар" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ОÑтрови Кук" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Чили" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Камерун" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Китай" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "КолумбиÑ" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "КоÑта Рика" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Куба" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Капо Верде" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Коледни ОÑтрови" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Кипър" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Чешка република" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ГерманиÑ" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Джибути" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ДаниÑ" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Доминика" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ДоминиканÑка република" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Ðлжир" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Еквадор" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ЕÑтониÑ" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Египет" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Западна Сахара" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ЕритреÑ" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "ИÑпаниÑ" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "ЕтиопиÑ" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ФинландиÑ" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Фуджи" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ФолклендÑки ОÑтрови (Малвини)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Федерални Щати МикронезиÑ" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Фароеви оÑтрови" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ФранциÑ" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ФренÑка метрополиÑ" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Габон" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "ВеликобританиÑ" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Гренада" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ГрузиÑ" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ФренÑка Гвиана" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Гърнзи" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Гана" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Гибралтар" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ГренландиÑ" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ГамбиÑ" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ГвинеÑ" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Гваделупа" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Екваториална ГвинеÑ" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ГърциÑ" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Южни Сандвичеви ОÑтрови" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Гватемала" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Гуам" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ГвинеÑ-БиÑау" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ГиÑна" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Хонг Конг" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Хърд и МакДоналд ОÑтрови" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ХондураÑ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ХърватÑка" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Хаити" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "УнгариÑ" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ИндонезиÑ" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ИрландиÑ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Израел" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ИндиÑ" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "ÐнглийÑки територии в ИндийÑÐºÐ¸Ñ Ð¾ÐºÐµÐ°Ð½" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Ирак" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Ирак" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ИÑландиÑ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ИталиÑ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Ямайка" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ЙорданиÑ" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ЯпониÑ" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "КениÑ" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Киргизтан" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Камбоджа" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Кирибати" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Комори" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Свети ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑ" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Северна КореÑ" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Южна КореÑ" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Кувейт" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Кайманови ОÑтрови" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "КазахÑтан" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Лао Ðародна Демократична Република" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Ливан" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Санта ЛучиÑ" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Лихтенщайн" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Шри Ланка" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ЛибериÑ" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "ЛеÑото" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Литва" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ЛюкÑембург" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ЛатвиÑ" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ЛибериÑ" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Мароко" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Монако" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Молдова" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Черна Гора" # SM #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "Сан Марино" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "МадагаÑкар" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Маршалови ОÑтрови" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "МакедониÑ" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Мали" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Мианмар" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "МонголиÑ" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Макао" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Северни Марианови ОÑтрови" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Мартиник" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "МавританиÑ" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "МонÑерат" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Малта" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Мавриций" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Мали" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Малави" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "МекÑико" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "МалайзиÑ" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Мозамбик" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ÐамибиÑ" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Ðова КаледониÑ" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Ðигер" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Ðорфолк ОÑтров" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ÐигериÑ" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Ðикарагуа" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "ХоландиÑ" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ÐорвегиÑ" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Ðепал" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Ðауру" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Ðию" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Ðова ЗеландиÑ" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Оман" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Панама" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Перу" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ФренÑка ПолинезиÑ" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Папуа Ðова ГвинеÑ" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Филипини" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ПакиÑтан" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Полша" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Свети Пиер и Микелон" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Питкаирн" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Пуерто Рико" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "ПалеÑтинÑки територии" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ПортугалиÑ" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Палау" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Парагвай" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Катар" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Риюниън" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "РумъниÑ" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "СърбиÑ" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "РуÑка ФедерациÑ" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Руанда" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "СаудитÑка ÐрабиÑ" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Соломонови ОÑтрови" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Сейшели" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Судан" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ШвециÑ" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Сингапур" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Света Елена" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "СловениÑ" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Свалбард и Ян Майен ОÑтрови" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "СловакиÑ" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Сиера Леоне" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Сан Марино" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Сенегал" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "СомалиÑ" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Суринам" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Сао Томе и ПринÑипи" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Ел Салвадор" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Суринам" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Свазиленд" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Тюрк и ÐšÐ°Ð¹ÐºÐ¾Ñ ÐžÑтрови" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Чад" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Ð¤Ñ€Ð°Ð½Ñ†Ð¸Ñ Ð®Ð¶Ð½Ð¸ Територии" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Того" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Тайланд" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ТаджикиÑтан" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Токелау" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ТуркмениÑтан" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ТуниÑ" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Тонга" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Източен Тимор" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ТурциÑ" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Тринидад и Тобаго" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Тувалу" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Тайван" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "ТанзаниÑ" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Украйна" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Уганда" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Малки ОÑтрови по крайбрежието на СÐЩ" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "СÐЩ" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Уругвай" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "УзбекиÑтан" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Ватикана" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Свети ВинÑент и Гренадин" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Венецуела" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "ВирджинÑки ОÑтрови (ВеликобританиÑ)" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ВирджинÑки ОÑтрови (СÐЩ)" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Виетнам" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Вануату" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Ð£Ð¾Ð»Ð¸Ñ Ð¸ Футуна ОÑтрови" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Самоа" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Йемен" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Майот" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Южна Ðфрика" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "ЗамбиÑ" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Зимбабве" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ДоÑтавÑ" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "ИзиÑква" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Ð’ конфликт Ñ" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s прави ненужно: %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Препоръчва" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Предлага" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "ПодобрÑва" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Допълва" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Възникнала е грешка при отварÑнето на %s: %m" #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Възникнала е грешка при отварÑнето на %s: %m" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Възникнала е грешка при отварÑнето на %s: %m" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Команда за изпълнение при Ñвързване" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "ÐеуÑпешно зареждане на модула \"%s\"." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "ÐеуÑпешно зареждане на модула \"%s\"." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "KScreensaver не е открит." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "ÐеизвеÑтен език: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "ÐфриканÑки" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Ðбхазки" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "ÐчинÑки" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Ðколи" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Ðдангме" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Ðдиге" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Ðфро-азиатÑки (друг)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Ðфрихили" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "ÐфрикаанÑ" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ðину" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Ðкан" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "ÐкадÑки" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "ÐлбанÑки" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Ðлют" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "ÐлгонквианÑки езици" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Южно-алтайÑки" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Ðмхарик" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ÐнглийÑки, Ñтар (ок. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "Ðпачи езици" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ÐрабÑки" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "ÐрамайÑки" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "ÐрагонÑки" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ÐрменÑки" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ÐрауканÑки" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Ðрапахо" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "ИзкуÑтвен (друг)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Ðравак" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "ÐÑамеÑки" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "ÐÑтурийÑки" #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "ÐтапаÑкан езици" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "ÐвÑтралийÑки езици" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "ÐварÑки" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "ÐвеÑтанÑки" # SZ #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Ðвадхи" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Ðймара" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "ÐзербайджанÑки" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Банда" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "Бамилеке езици" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "БашкирÑки" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Балучи" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Бамбара" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "БалинеÑки" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "БаÑки" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "БаÑа" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "БалтийÑки (друг)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "БеÑ" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "БеларуÑки" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Бебма" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "БенгалÑки" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Бербер (друг)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Бходжури" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Бихари" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Бикол" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Бини" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "БиÑлама" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "СикÑика" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Банту (друг)" # BJ #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "БоÑненÑки" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "БраÑ" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Бретон" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Батак (ИндонезиÑ)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "БуриÑÑ‚" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "БугинеÑки" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "БългарÑки" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "БурмийÑки" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Блин" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Каддо" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Централно-американÑки индианÑки (друг)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "КарибÑки" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "КаталунÑки" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "КауказийÑки (друг)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Кебуано" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "КелтÑки (друг)" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "КоморийÑки" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Чибча" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ЧеченÑки" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Чагатай" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "КитайÑки" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ЧуукÑки" # ML #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Мари" #. language code: chn #: zypp/LanguageCode.cc:331 #, fuzzy msgid "Chinook Jargon" msgstr "Чинук жаргон" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Чоктау" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Чипеуан" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Чероки" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Църковно-ÑлавÑнÑки" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Чуваш" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "КайенÑки" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "Чамик езици" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Коптик" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "КорнÑки" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "КорÑиканÑки" #. language code: cpe #: zypp/LanguageCode.cc:353 #, fuzzy msgid "Creoles and Pidgins, English-Based (Other)" msgstr "КреолÑки и пидгинÑки, базиран на английÑки (друг)" #. language code: cpf #: zypp/LanguageCode.cc:355 #, fuzzy msgid "Creoles and Pidgins, French-Based (Other)" msgstr "КреолÑки и пидгинÑки, базиран на френÑки (друг)" #. language code: cpp #: zypp/LanguageCode.cc:357 #, fuzzy msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "КреолÑки и пидгинÑки, базиран на португалÑки (друг)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Крее" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Кримин татарÑки" #. language code: crp #: zypp/LanguageCode.cc:363 #, fuzzy msgid "Creoles and Pidgins (Other)" msgstr "КреолÑки и пидгинÑки (друг)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "КашубÑки" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Кушитик (друг)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Чешка" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Дакота" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ДатÑка" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Доргава" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ДаÑк" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Делауеър" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Славе (ÐтапаÑкан)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Догриб" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Динка" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Дивехи" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Догри" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ДравидÑки (друг)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Долно-ÑорбийÑки" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "ДуалаДу" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "ХоландÑки, Ñреден (ок. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ХоландÑка" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Дюла" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Дзонга" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Ефик" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ЕгипетÑки (древен)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Екаджук" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Еламите" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ÐнглийÑки" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ÐнглийÑки, Ñреден (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ЕÑперанто" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ЕÑтонÑка" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Еве" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Евондо" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Фанг" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ФаероÑки" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Фанти" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "ФуджиÑнÑки" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Филипино" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ФинландÑка" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Фино-угрийÑки (друг)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Фон" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ФренÑка" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "ФренÑки, Ñреден (ок. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ФренÑки, Ñтар (842-ок. 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "ФризийÑки" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Фула" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ФлюлийÑки" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Га" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Гайо" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ГбаÑ" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ГерманÑки (друг)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ГрузинÑки" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ГерманÑка" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Гииз" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Гилбертезки" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ГаелÑки" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ИрландÑки" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ГалицийÑки" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "МанкÑ" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "ÐемÑки, къÑно Ñреден (ок. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "ÐемÑки, къÑно Ñтар (ок. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Гонди" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Горонтало" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ГотÑки" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Гребо" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Гръцки, древен (до 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Гръцки, модерен (Ñлед 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Гуарани" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Гуджарити" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Гвич'ин" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Хайда" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ХаитÑки" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Хауза" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "ХавайÑки" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ЕврейÑки" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Хереро" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "ХилигонÑки" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Химачали" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Хинди" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Хитите" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Хмонг" # HT #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Хири Моту" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Горно-ÑорбийÑки" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "УнгарÑка" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Хупа" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Ибан" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Игбо" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ИÑландÑка" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Идо" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Сичуан юи" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ижо" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Инуктитут" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Интерезичен" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Илоко" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Интерлингва (Международна ÐÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ð·Ð° Помощен Език)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ИндÑки (друг)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ИндонезийÑки" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Индо-европейÑки (друг)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ингуш" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Инупиаг" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ИранÑки (друг)" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "ИрокуонÑки езици" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ИталианÑка" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ЯвайÑки" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Лоджбан" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ЯпонÑка" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Юдейо-перÑийÑки" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Юдейо-арабÑки" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Кара-калпака-кал" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Кабил" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Качин" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "КалаалиÑут" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Камба" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Канада" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Карен" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "КашмирÑки" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Канури" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Кави" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "КазакÑки" # MR #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "КабардийÑки" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "КаÑи" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "КойÑан (друг)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ХмерÑки" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "КотанеÑки" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Кикую" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "КинÑрванда" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Киргизки" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Кимбунду" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Конкани" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Коми" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Конго" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "КорейÑки" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "КоÑраейÑки" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Кпеле" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Карачай-балкар" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Крю" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Курук" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "КуанÑма" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Кумикумик" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "КюрдÑки" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Кутенай" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ладино" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Ланда" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Ламба" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Лао" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ЛатинÑки" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ЛатвийÑки" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "ЛезганийÑки" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Лимбурган" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Лингала" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ЛитовÑка" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Монго" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Лози" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "ЛюкÑембургÑки" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Луба-лулуÑ" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Луба-катанга" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ганда" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "ЛуиÑено" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Лунда" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Луо (ÐšÐµÐ½Ð¸Ñ Ð¸ ТанзаниÑ)" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "Лушай" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "МакедонÑки" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "МадурейÑки" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Магахи" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "МаршалÑки" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Майтили" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "МакаÑар" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "МалаÑлам" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Мандинго" # ML #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Маори" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ÐвÑтронезийÑки (друг)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Марати" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "МаÑаи" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "МалайÑки" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Мокша" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Мандар" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Менде" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ИрландÑки, Ñреден (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Ми'кмак" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Минанкубау" #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "Разни езици" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Мон-кхмер (друг)" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "МалагаÑи" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "МалтийÑки" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Манчу" # ML #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Манпури" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "Манобо езици" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Мохаук" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "МолдовÑки" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "МонголÑки" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "МоÑи" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "МножеÑтво езици" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Мунда езици" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Креек" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "МирандейÑки" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Марвари" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "МайÑки езици" # SY # fuzzy #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ЕрзÑ" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Ðахуати" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Северна-американÑки индианÑки" # NP #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ÐеаполитанÑки" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Ðавахо" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ðдебеле, южен" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ðдебеле, Ñеверерен" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ðдонга" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Долно-германÑки" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "ÐепалÑки" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Ðепал баÑа" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "ÐиаÑ" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Ðигер-гордофанÑки (друг)" # NU #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Ðюеан" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Ðорвежки нинорÑк" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Ðорвежки бокмал" # TO #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Ðогай" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "ÐорÑе, Ñтар" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Ðорвежка" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Северно Ñото" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "ÐубийÑки езици" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "КлаÑичеÑки невари" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Чичева" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "ÐÑмвези" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "ÐÑнколе" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Ðьоро" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Ðзима" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Окцитан (Ñлед 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ожибва" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "ОриÑ" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Оромо" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ОÑаге" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ОÑетинÑки" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "ТурÑки, отоманÑки (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "ОÑманÑки езици" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "ПапуанÑки (друг)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "ПангаÑинÑки" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Пахлави" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Пампанга" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Панджаби" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "ПапиÑменто" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Палауан" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ПерÑийÑки, Ñтар (ок. 600-400 пр.н.е.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ПерÑийÑки" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ФилипинÑки (друг)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ФиникийÑки" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Пали" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ПолÑка" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ПонпейÑки" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ПортугалÑка" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "Пракрит езици" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Провенциален, Ñтар (до 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Пущо" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Куечуа" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "РаджаÑтани" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Папануй" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Раротоган" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "РоманÑки (друг)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Раето-романÑ" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Романи" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "РумънÑки" # RE #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Рунди" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "РуÑка" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Сандауе" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Санго" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Якут" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Южно-американÑки индианÑки (друг)" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Салишан езици" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Самаритан арамаик" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "СанÑкрит" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "СаÑак" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Сантали" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "СръбÑки" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "СицилианÑки" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "СкотÑки" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ХърватÑка" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Селкуп" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "СемитÑки (друг)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ИрландÑки, Ñтар (до 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Знакови езици" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Шан" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Сидамо" # AO #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Синхала" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Сиуан езици" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Сино-тибетÑки (друг)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "СлавÑнÑки (друг)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Словашка" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "СловенÑки" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Южно Ñами" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Северно Ñами" #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Сами езици (друг)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Люле Ñами" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Инари Ñами" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "СамоанÑки" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Сколт Ñами" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Шона" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Синди" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Синонке" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "СогдийÑки" # SO #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "СомалийÑки" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Сонгхай" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Сото, южно" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ИÑпанÑка" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "СардинÑки" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Серер" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Ðило-ÑахарÑки (друг)" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Свати" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Сукума" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "СунданÑки" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "СуÑу" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ШумерÑки" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Свахили" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ШведÑка" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "СирийÑки" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ТаитÑки" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Тай (друг)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ТамилÑки" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "ТатарÑки" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Телугу" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Тимне" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Терено" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Тетум" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "ТаджикÑки" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Тагалог" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ТайландÑки" # TW # fuzzy #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ТибетÑки" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Тигре" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ТигриниÑ" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Тив" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Клингон" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Тлингит" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Тамашек" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Тонга (ÐÑÑа)" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Тонга (ОÑтрови Тонга)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Ток пиÑин" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "ЦимашинÑки" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Цвана" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Цонга" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ТуркменÑки" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Тумбука" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "Тупи езици" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ТурÑка" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "ÐлтайÑки (друг)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Тви" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ТувинÑки" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Удмурт" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "УгаритÑки" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "УигурÑки" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "УкраинÑка" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Умбурду" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Ðеопределен" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Урду" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "УзбекÑки" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Вай" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Венда" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ВиетнамÑки" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Волапук" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "ВотÑки" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Вакашан езици" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Валамо" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Варай" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Вашо" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "УелÑки" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "СорбийÑки езици" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Валун" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Волоф" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Калмик" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "КÑоÑа" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Яо" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "ЯпеÑе" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "ЮдийÑки" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Йоруба" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "Юпик езици" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Запотек" # SN #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Зенага" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Цуанг" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Занде" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Зулу" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Зуни" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "Пакетът не е подпиÑан" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "ÐеуÑпешно зареждане на модула \"%s\"." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Файлът не може да бъде отворен за запиÑ." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Ðе може да Ñе Ñъздаде %s: %m\n" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "ДоÑтъпът до ноÑÐ¸Ñ‚ÐµÐ»Ñ Ð·Ð° обновÑване на драйверите е неуÑпешен." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Грешка при четенето от диÑкетата." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "невалидно име на уÑлуга '%1'." #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "%s не може да бъде инÑталиран" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 #, fuzzy msgid "Invalid empty Url object reference" msgstr "Ðевалидно име за празно дейÑтвие за уÑлугата '%1'" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "неизвеÑтно" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "Преглед на иÑториÑта" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Възникнала е грешка при отварÑнето на %s: %m" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "ÐеизвеÑтен потребител: %s\n" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "невалидно име на уÑлуга '%1'." #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "ÐеуÑпешно зареждане на модула \"%s\"." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "ÐеуÑпешно зареждане на модула \"%s\"." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "ВременниÑÑ‚ файл (%s) не може да бъде Ñъздаден: %m" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "%s не може да бъде инÑталиран" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" # %s is either BOOTP or DHCP #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "ÐаÑтройването чрез %s бе неуÑпешно." #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Ðикой не доÑÑ‚Ð°Ð²Ñ %s" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Възникнала е грешка при Ñъздаването на Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %s: %m" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Пренебрегване на това изиÑкване Ñамо тук" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "Пренебрегване на това изиÑкване Ñамо тук" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но има друга архитектура." #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "%s не може да бъде инÑталиран поради пробем ÑÑŠÑ Ð·Ð°Ð²Ð¸ÑимоÑтите" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "Ðикой не доÑÑ‚Ð°Ð²Ñ %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Пакетът не е подпиÑан" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s е заключен и не може да бъде деинÑталиран." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "ИнÑталирането на %s бе неуÑпешно" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s е необходим на %s" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s не може да бъде инÑталиран" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s е в конфликт Ñ %s" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s прави ненужно %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s прави ненужно %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s е в конфликт Ñ %s" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "Ðикой не доÑÑ‚Ð°Ð²Ñ %s" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "ÐÑма инÑталируеми доÑтавчици на %s" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "ÐÑма инÑталируеми доÑтавчици на %s" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "без инÑталиране на %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "запазване на %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "без инÑталиране на %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "ÐÑма инÑталируеми доÑтавчици на %s" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Без инÑталиране или премахване на конфликтните пакети" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но има друга архитектура." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "ИнÑталиране на %s, въпреки че ще промени архитектурата" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s прави ненужно %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "ОбновÑване на %s към %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "ИнÑталиране" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" # %s is either BOOTP or DHCP #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "ÐаÑтройването чрез %s бе неуÑпешно." #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "не е Ñвързан" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "връзка канал-към-канал" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 #, fuzzy msgid "Not a CDROM drive" msgstr "Ðе Ñа открити CD-ROM уÑтройÑтва." #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "пропадна." #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 #, fuzzy msgid "Package is not signed!" msgstr "Пакетът има невалидна Ñигнатура." #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Променени файлове Ñ Ð½Ð°Ñтройки за %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm запази %s като %s, но е невъзможно да Ñе открие разликата" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm запази %s като %s.\n" "Ето първите 25 реда от разликите:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm Ñъздаде %s като %s, но е невъзможно да Ñе открие разликата" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm Ñъздаде %s като %s.\n" "Ето първите 25 реда от разликите:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Допълнителен изход от rpm:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "Ñъздадено резервно копие %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "KScreensaver не е открит." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "KScreensaver не е открит." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "KScreensaver не е открит." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 #, fuzzy msgid "Can't acquire the mutex lock" msgstr "Ðе може да Ñе придобие заключването на zypp." #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, fuzzy, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "невалидно име на уÑлуга '%1'." #: zypp/url/UrlBase.cc:180 #, fuzzy, c-format, boost-format msgid "Invalid %s component" msgstr "Ðевалидна информациÑ" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, fuzzy, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "невалидно име на уÑлуга '%1'." #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "без инÑталиране на %s" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "ÐеуÑпешно зареждане на модула \"%s\"." #~ msgid "Serbia and Montenegro" #~ msgstr "Ð¡ÑŠÑ€Ð±Ð¸Ñ Ð¸ Черна Гора" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Ðепознат монитор:" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "" #~ "%s не може да бъде инÑталиран за задоволÑване на завиÑимоÑтите на %s" #~ msgid "%s remove failed" #~ msgstr "Премахването на %s бе неуÑпешно" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "Ðевалидно име на уÑтройÑтво." #~ msgid "rpm output:" #~ msgstr "Изход от rpm:" #~ msgid "%s install failed" #~ msgstr "ИнÑталирането на %s бе неуÑпешно" #~ msgid "%s installed ok" #~ msgstr "ИнÑталирането на %s бе уÑпешно" #~ msgid "%s remove ok" #~ msgstr "Премахването на %s бе уÑпешно" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "%s задоволÑва тази завиÑимоÑÑ‚, но ще промени архитектурата на " #~ "инÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "%s задоволÑва тази завиÑимоÑÑ‚, но ще промени архитектурата на " #~ "инÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Без инÑталиране или премахване на конфликтните пакети" #~ msgid "Ignore that %s is already set to install" #~ msgstr "Пренебрегване на това, че %s е зададен вече за инÑталиране" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "Пренебрегване на оÑтарелите %s в %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "Пренебрегване на конфликта на %s" #~ msgid "Ignore this requirement just here" #~ msgstr "Пренебрегване на това изиÑкване Ñамо тук" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "ИнÑталиране на %s, въпреки че ще промени архитектурата" #~ msgid "Install missing resolvables" #~ msgstr "ИнÑталиране на липÑващите пакети" #~ msgid "Keep resolvables" #~ msgstr "Запазване на пакетите" #~ msgid "Unlock these resolvables" #~ msgstr "Отключване на тези пакети" #~ msgid "delete %s" #~ msgstr "изтриване на %s" #~ msgid "install %s" #~ msgstr "инÑталиране на %s" #~ msgid "unlock %s" #~ msgstr "отключване на %s" #~ msgid "unlock all resolvables" #~ msgstr "отключване на вÑички пакети" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Възникнала е грешка при отварÑнето на %s: %m" #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Грешка при четенето на Ñектор %u." #, fuzzy #~ msgid "Software management is already running." #~ msgstr "УÑлугите за PCMCIA карти вече работÑÑ‚." #~ msgid "%s is replaced by %s" #~ msgstr "%s е заменен от %s" #~ msgid "%s replaced by %s" #~ msgstr "%s е заменен от %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "Тези пакети ще бъдат изтрити от ÑиÑтемата." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s нÑма да бъде деинÑталиран, защото вÑе още е необходим" #~ msgid "Invalid information" #~ msgstr "Ðевалидна информациÑ" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s е необходим на друг пакет" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s е необходим на:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s е в конфликт Ñ Ð´Ñ€ÑƒÐ³Ð¸ пакети" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s е в конфликт Ñ:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s прави ненужни други пакети" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "Тези пакети ще бъдат изтрити от ÑиÑтемата." #~ msgid "%s depends on other resolvables" #~ msgstr "%s завиÑи от други пакети" #~ msgid "%s depends on %s" #~ msgstr "%s завиÑи от %s" #~ msgid "%s depends on:%s" #~ msgstr "%s завиÑи от: %s" #~ msgid "Child of" #~ msgstr "Дете на" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "ÐÑма наличен реÑÑƒÑ€Ñ Ð·Ð° поддръжката на това изиÑкване." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "Поради проблемите, които Ñа показани по-долу/горе Ñега нÑма да могат да " #~ "ÑеудовлетворÑÑ‚ вÑички завиÑимоÑти." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s не може да бъде инÑталиран, защото е в конфликт Ñ %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s не е инÑталиран и не може да бъде маркиран за деинÑталиране." #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s има незадоволени изиÑканиÑ" #~ msgid "%s has missing dependencies" #~ msgstr "%s има липÑващи завиÑимоÑти" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s не може да бъде инÑталиран поради липÑващи завиÑимоÑти" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s задоволÑва завиÑимоÑтите на %s, но ще бъде деинÑталиран" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s задоволÑва завиÑимоÑтите на %s, но ще бъде деинÑталиран" #~ msgid "No need to install %s" #~ msgstr "ÐÑма нужда от инÑталиране на %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "" #~ "%s не може да бъде инÑталиран за задоволÑване на завиÑимоÑтите на %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "" #~ "%s не може да бъде инÑталиран за задоволÑване на завиÑимоÑтите на %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s нÑма да бъде деинÑталиран, защото вÑе още е необходим" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%s прави ненужен %s, но %s не може да бъде изтрит, защото е заключен." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s не може да бъде инÑталиран, защото е в конфликт" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s е недеинÑталируем поради конфликта Ñ %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "за изиÑканото %s за %s, когато Ñе обновÑва %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s липÑва изиÑÐºÐ°Ð½Ð¸Ñ %s" #~ msgid ", Action: " #~ msgstr ", ДейÑтвие:" #~ msgid ", Trigger: " #~ msgstr ", задейÑтване при:" #~ msgid "package" #~ msgstr "пакет" #~ msgid "selection" #~ msgstr "подбор" #~ msgid "pattern" #~ msgstr "шаблон" #~ msgid "product" #~ msgstr "продукт" #~ msgid "patch" #~ msgstr "кръпка" #~ msgid "script" #~ msgstr "Ñкрипт" #~ msgid "message" #~ msgstr "Ñъобщение" #~ msgid "atom" #~ msgstr "атом" #~ msgid "system" #~ msgstr "ÑиÑтема" #~ msgid "Resolvable" #~ msgstr "Пакет" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "Маркиране на този опит за разрешаване като невалиден." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Маркиране на пакета %s като деинÑталируем" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s е подготвен за инÑталиране, но това не е възможно заради проблеми ÑÑŠÑ " #~ "завиÑимоÑти." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "Ðе може да Ñе инÑталира %s Ñлед като вече е маркиран за деинÑталиране" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "" #~ "%s не може да Ñе инÑталира Ñлед като вече не е приложим за тази ÑиÑтема." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "Ðе може да Ñе инÑталира %s Ñлед като %s вече е маркиран за инÑталиране" #~ msgid "This would invalidate %s." #~ msgstr "Това ще направи невалиден %s." #~ msgid "Establishing %s" #~ msgstr "Откриване на %s" #~ msgid "Installing %s" #~ msgstr "ИнÑталиране на %s" #~ msgid "Skipping %s: already installed" #~ msgstr "ПропуÑкане на %s: вече е инÑталиран" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "ÐÑма инÑталирани алтернативни доÑтавчици на %s" #~ msgid "for %s" #~ msgstr "за %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "" #~ "Ðе е възможно обновÑването към %s за да Ñе избегне премахването на %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но е планирано за деинÑталиране." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но друга верÑÐ¸Ñ Ð½Ð° %s вече е инÑталирана." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s доÑÑ‚Ð°Ð²Ñ %s, но е деинÑталируем. Опитайте да го инÑталирате ръчно за " #~ "повече подробноÑти." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но е заключен." #, fuzzy #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но е планирано за деинÑталиране." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s доÑÑ‚Ð°Ð²Ñ %s, но има друга архитектура." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "Ðе могат да Ñе удовлетворÑÑ‚ изиÑкваниÑта на %s за %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "%s Ñе изиÑква от друг инÑталиран пакет и нÑма да бъде премахнат." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "%s Ñе изиÑква от друг инÑталиран пакет и нÑма да бъде премахнат." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "" #~ "Конфликтът Ñ %s (%s) изиÑква премахването на %s, което е било подготвено " #~ "за инÑталиране" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "Маркиране на %s като деинÑталируем поради конфликта Ñ %s" #~ msgid "from %s" #~ msgstr "от %s" #~ msgid " Error!" #~ msgstr " Грешка!" #~ msgid " Important!" #~ msgstr " Важно!" #~ msgid "%s depended on %s" #~ msgstr "%s завиÑи от %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s е необходим на %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s е необходим на %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s е заменен от %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s е необходим на %s" #~ msgid "%s part of %s" #~ msgstr "%s е чаÑÑ‚ от %s" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s е необходим на %s" #~ msgid "Ignore this requirement generally" #~ msgstr "Пренебрегване на това изиÑкване" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s Ñе изиÑква от друг, маркиран за инÑталиране пакет и нÑма да бъде " #~ "премахнат." #~ msgid "%s dependend on %s" #~ msgstr "от %s завиÑи %s" #, fuzzy #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "" #~ "Проверката на контролната Ñума за подпиÑÐ°Ð½Ð¸Ñ repomd.xml файл бе неушпешна" #, fuzzy #~ msgid "Reading selection from %s" #~ msgstr "Грешка при четенето на Ñектор %u." # progress indicator label #, fuzzy #~ msgid "Reading translation: %s" #~ msgstr "Зареждане на инÑталационната ÑиÑтема" #~ msgid " miss checksum." #~ msgstr "липÑва контролната Ñума." #~ msgid " fails checksum verification." #~ msgstr "неуÑпешно удоÑтоверÑване на контролната Ñума." #, fuzzy #~ msgid "Downloading %s" #~ msgstr "Грешка при зареждането на %1" #~ msgid "%s needed by %s" #~ msgstr "%s е необходим на %s" #~ msgid "Cannot acquire zypp lock." #~ msgstr "Ðе може да Ñе придобие заключването на zypp." #~ msgid "Can't write the patch script to a temporary file." #~ msgstr "Ðе може да Ñе Ñкрипта на кръпката във временен файл." #~ msgid "Target commit aborted by user." #~ msgstr "Целевото извършване бе прекъÑнато от потребителÑ." #~ msgid "Failed check for the script file check sum" #~ msgstr "Проверката на контролната Ñума за Ñкрипта бе неуÑпешна" #~ msgid "Ok" #~ msgstr "Добре" #~ msgid "The package is not OK for the following reasons:" #~ msgstr "Пакетът не е наред поради Ñледните причини:" #~ msgid "The package contains different version than expected" #~ msgstr "Пакетът Ñъдържа различна от очакваната верÑиÑ" #~ msgid "The package file has incorrect MD5 sum" #~ msgstr "Файлът на пакета има некоректна MD5 Ñума" #~ msgid "The package has no MD5 sum" #~ msgstr "Пакетът нÑма MD5 Ñума" #~ msgid "The package archive has incorrect MD5 sum" #~ msgstr "Ðрхивът Ñ Ð¿Ð°ÐºÐµÑ‚Ð¸Ñ‚Ðµ има некоректна MD5 Ñума" #~ msgid "rpm failed for unkown reason, see log file" #~ msgstr "" #~ "rpm завърши Ñ Ð½ÐµÑƒÑпех поради неизвеÑтна причина, прегледайте файла-дневник" #~ msgid "Default" #~ msgstr "Стандартно" #, fuzzy #~ msgid "ignore architecture" #~ msgstr "Ðрхитектура" #, fuzzy #~ msgid "Ignore this requirement for all other resolvables." #~ msgstr "%s е необходим на друг пакет" #~ msgid "Deleting %s" #~ msgstr "Изтриване на %s" #~ msgid "" #~ "Can't install %s, since a resolvable of the same name is already marked " #~ "as needing to be installed" #~ msgstr "" #~ "%s не може да Ñе инÑталира, Ñлед като пакет ÑÑŠÑ Ñъщото име вече е " #~ "маркиран за инÑталиране" #~ msgid "%s cannot be uninstalled due missing dependencies" #~ msgstr "%s не може да бъде деинÑталиран поради липÑващи завиÑимоÑти" libzypp-17.7.0/po/bn.po000066400000000000000000004207351334444677500147100ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: @PACKAGE@\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2005-07-29 15:37+0530\n" "Last-Translator: Priyavert Sharma\n" "Language-Team: AgreeYa Solutions \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal বà§à¦¯à¦¤à¦¿à¦•à§à¦°à¦®" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "অজানা দেশ: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "কোড" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "বিকà§à¦°à§‡à¦¤à¦¾" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "সংযà§à¦•à§à¦¤ আরব আমিরাত" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "পাকিসà§à¦¤à¦¾à¦¨" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "à¦à¦¨à§à¦Ÿà¦¿à¦—া ও বারবà§à¦¡à¦¾" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "à¦à¦‚গà§à¦‡à¦²à¦¾" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "আলবেনিয়া" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "আরà§à¦œà§‡à¦¨à§à¦Ÿà¦¿à¦¨à¦¾" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "নেদারলà§à¦¯à¦¾à¦¨à§à¦¡" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "à¦à¦‚গোলা" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "à¦à¦¨à§à¦Ÿà¦¾à¦°à§à¦•টিকা" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "আরà§à¦œà§‡à¦¨à§à¦Ÿà¦¿à¦¨à¦¾" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "আমেরিকান সামোয়া" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "অসà§à¦Ÿà§à¦°à¦¿à§Ÿà¦¾" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "অসà§à¦Ÿà§à¦°à§‡à¦²à¦¿à§Ÿà¦¾" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "আরà§à¦¬à¦¾" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "আজারবাইজান" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "বসনিয়া à¦à¦¬à¦‚ হারজেগোভিনা" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "বারà§à¦¬à¦¾à¦¡à§‹à¦œ" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "বাংলাদেশ" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "বেলজিয়াম" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "বারকিনা ফাসো" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "বà§à¦²à¦—েরিয়া" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "বাহরাইন" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "বà§à¦°à§à¦¨à§à¦¡à¦¿" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "বাহরাইন" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "জারà§à¦®à¦¾à¦¨" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "বà§à¦°à§à¦¨à§‡à¦‡ দারà§à¦¸à¦¸à¦¾à¦²à¦¾à¦®" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "বলিভিয়া" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "বà§à¦°à¦¾à¦œà¦¿à¦²" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "পানামা" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ভà§à¦Ÿà¦¾à¦¨" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "বোটসোয়ানা" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "বেলারà§à¦¸" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "বেলজিয়ান" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "কানাডা" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "কোকোস (কিলিং) দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œ" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "কনসোল" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "সিরিয়ান আরব পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "সà§à¦‡à¦œà¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "কোট ডি'ইভোয়ার" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "চিলি" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "চিলি" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "কলমà§à¦¬à¦¿à§Ÿà¦¾" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "কোসà§à¦Ÿà¦¾à¦°à¦¿à¦•া" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "কিউবা" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "কেপ ভারà§à¦¦à§‡" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "কà§à¦°à¦¿à¦¸à¦®à¦¾à¦· আইলà§à¦¯à¦¾à¦¨à§à¦¡" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "সাইপà§à¦°à¦¾à¦¸" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "চেক পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "জারà§à¦®à¦¾à¦¨à¦¿" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "জিবৌটি" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ডেনমারà§à¦•" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "রোমানিয়া" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ডোমেনিকান পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "আলজেরিয়া" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "ইকà§à§Ÿà§‡à¦¡à¦°" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "à¦à¦¸à§à¦Ÿà§‹à¦¨à¦¿à§Ÿà¦¾" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "মিশর" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "পশà§à¦šà¦¿à¦®à§€ সাহারা" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ইরিটà§à¦°à¦¿à§Ÿà¦¾" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "সà§à¦ªà§‡à¦¨" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "à¦à¦¸à§à¦Ÿà§‹à¦¨à¦¿à§Ÿà¦¾" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ফিনলà§à¦¯à¦¾à¦¨à§à¦¡" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "ফিজি" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ফকলà§à¦¯à¦¾à¦¨à§à¦¡ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸ (মালভিনাস)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ফেডারেটেড সà§à¦Ÿà§‡à¦Ÿà¦¸ অফ মাইকà§à¦°à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ফà§à¦°à¦¾à¦¨à§à¦¸" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "মেটà§à¦°à§‹à¦ªà¦²à¦¿à¦Ÿà¦¾à¦¨ ফà§à¦°à¦¾à¦¨à§à¦¸" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "নিষিদà§à¦§" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "যà§à¦•à§à¦¤à¦°à¦¾à¦œà§à¦¯" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "গà§à¦°à§€à¦¨à¦²à§à¦¯à¦¾à¦¨à§à¦¡" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "জরà§à¦œà¦¿à§Ÿà¦¾" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ফà§à¦°à§‡à¦žà§à¦š (কানাডীয়)" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "জারà§à¦®à¦¾à¦¨à¦¿" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "ঘানা" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "জিবà§à¦°à¦¾à¦²à§à¦Ÿà¦¾à¦°" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "গà§à¦°à§€à¦¨à¦²à§à¦¯à¦¾à¦¨à§à¦¡" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "&সামà§à¦¬à¦¾" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "গিনি" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "গà§à§Ÿà¦¾à¦¦à§‡à¦²à§à¦ª" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "ইকোয়েটেরিয়াল গিনি" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "গà§à¦°à§€à¦¸" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "সাউথ জরà§à¦œà¦¿à§Ÿà¦¾ ও সাউথ সà§à¦¯à¦¾à¦¨à§à¦¡à¦‰à¦‡à¦š আইলà§à¦¯à¦¾à¦¨à§à¦¡" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "গà§à§Ÿà¦¾à¦¤à§‡à¦®à¦¾à¦²à¦¾" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "গà§à§Ÿà¦¾à¦¤à§‡à¦®à¦¾à¦²à¦¾" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "গিনি-বিসাউ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "গায়ানা" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "হংকং" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "হারà§à¦¡ আইলà§à¦¯à¦¾à¦¨à§à¦¡ ও মà§à¦¯à¦¾à¦•ডোনালà§à¦¡ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "হনà§à¦¡à§à¦°à¦¾à¦¸" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "কà§à¦°à§‹à§Ÿà§‡à¦¶à¦¿à§Ÿà¦¾" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "হাইতি" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "হাঙà§à¦—েরী" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ইনà§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "আয়à§à¦¯à¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ইসরাইল" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ভারত" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "বà§à¦°à¦¿à¦Ÿà¦¿à¦¶ ইনà§à¦¡à¦¿à§Ÿà¦¾à¦¨ ওসান টেরিটরি" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "ইরাক" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ইরাক" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "আইসলà§à¦¯à¦¾à¦¨à§à¦¡" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ইটালী" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "জামাইকা" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "জরà§à¦¡à¦¾à¦¨" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "জাপান" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "কীবোরà§à¦¡" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "কিরগিজসà§à¦¤à¦¾à¦¨" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "কলমà§à¦¬à¦¿à§Ÿà¦¾" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "কিরিবাটি" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "কমোরোস" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "সেনà§à¦Ÿ কিটস ও নেভিস" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "উতà§à¦¤à¦° কোরিয়া" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "দকà§à¦·à¦¿à¦¨ আফà§à¦°à¦¿à¦•া" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "কà§à§Ÿà§‡à¦¤" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "পাকিসà§à¦¤à¦¾à¦¨" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "লাও পিপলস ডেমোকà§à¦°à§‡à¦Ÿà¦¿à¦• রিপাবà§à¦²à¦¿à¦•" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "লেবানন" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "সষেনà§à¦Ÿ লà§à¦¸à¦¿à§Ÿà¦¾" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "লাইসেনà§à¦¸" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "শà§à¦°à§€à¦²à¦™à§à¦•া" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "লাইবেরিয়া" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "লেসোথো" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "লিথà§à§Ÿà§‡à¦¨à¦¿à§Ÿà¦¾" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "লাকà§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "লাতভিয়া" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "লিবিয়া" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "মরোকà§à¦•à§‹" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "মরোকà§à¦•à§‹" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "সà§à¦²à§‹à¦­à¦¾à¦•" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "মনিটর" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "সাম মারিনো" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "মাদাগাসà§à¦•ার" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "মà§à¦¯à¦¾à¦¸à§‡à¦¡à§‹à¦¨à¦¿à§Ÿà¦¾" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "মালয়শিয়া" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "পানামা" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "মঙà§à¦—োলিয়া" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "পà§à¦°à¦§à¦¾à¦¨" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "নরà§à¦¦à¦¾à¦°à§à¦¨ মারিয়ানা আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "মারà§à¦Ÿà¦¿à¦¨à¦¿à¦•" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "লিথà§à§Ÿà§‡à¦¨à¦¿à§Ÿà¦¾" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "মনà§à¦Ÿà¦¸à§‡à¦°à¦¾à¦Ÿ" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "মালটা" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "মরিশাস" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "মালদà§à¦¬à§€à¦ª" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "মালটা" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "মেকà§à¦¸à¦¿à¦•à§‹" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "মালয়শিয়া" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "মোজামà§à¦¬à¦¿à¦•" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "&সামà§à¦¬à¦¾" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "মà§à¦¯à¦¾à¦¸à§‡à¦¡à§‹à¦¨à¦¿à§Ÿà¦¾" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "ঘড়ি" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "আলজেরিয়া" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "নিকারাগà§à§Ÿà¦¾" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "নেদারলà§à¦¯à¦¾à¦¨à§à¦¡" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "নরওয়ে" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "নেপাল" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "নাউরà§" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "নিউ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "নিউজিলà§à¦¯à¦¾à¦¨à§à¦¡" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "ওমান" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "পানামা" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "পেরà§" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ফà§à¦°à§‡à¦žà§à¦š (কানাডীয়)" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "পাপà§à§Ÿà¦¾ নিউ গিনি" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "ফিলিপাইন" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "পাকিসà§à¦¤à¦¾à¦¨" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "পোলà§à¦¯à¦¾à¦¨à§à¦¡" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "সেনà§à¦Ÿ পিয়ের ও মিকেলন" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "পাকিসà§à¦¤à¦¾à¦¨" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "পোরà§à¦Ÿà§‹à¦°à¦¿à¦•à§‹" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "পà§à¦¯à¦¾à¦²à§‡à¦¸à§à¦Ÿà¦¿à¦¨à¦¿à§Ÿà¦¾à¦¨ টেরিটরি" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "পরà§à¦¤à§à¦—াল" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦—à§à§Ÿà§‡" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦—à§à§Ÿà§‡" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "কাতার" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "à¦à¦²à¦¾à¦•া (&R)" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "রোমানিয়া" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "খোà¦à¦œà§‹" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "রাশিয়ান ফেডারেশন" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "কানাডা" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "সৌদী আরব" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "ফারো দà§à¦¬à§€à¦ªà¦ªà§‚ঞà§à¦œ" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "সেশেলস" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "সà§à¦¦à¦¾à¦¨" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "সà§à¦‡à¦¡à§‡à¦¨" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "সিঙà§à¦—াপà§à¦°" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "সেনà§à¦Ÿ হেলেনা" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "সà§à¦²à§‹à¦­à§‡à¦¨à¦¿à§Ÿà¦¾" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "সভালবারà§à¦¡ ও জান মায়েন" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "সà§à¦²à§‹à¦­à¦¾à¦•িয়া" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "সিয়েরা লিওন" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "সাম মারিনো" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "সেনেগাল" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "রোমানিয়া" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "সারà§à¦­à¦¿à¦¸à§‡à¦° নাম (&n)" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "সাও টোম ও পà§à¦°à¦¿à¦¨à§à¦¸à¦¿à¦ª" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "à¦à¦² সালভাদর" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "সিরিয়া" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "থাইলà§à¦¯à¦¾à¦¨à§à¦¡" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "টারà§à¦•স ও কাইকোস আইলà§à¦¯à¦¾à¦¨à§à¦¡" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "পরিবরà§à¦¤à¦¿à¦¤" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "ফà§à¦°à§‡à¦žà§à¦š সাউদারà§à¦¨ টেরিটোরিজ" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "নিষিদà§à¦§" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "থাইলà§à¦¯à¦¾à¦¨à§à¦¡" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "তাজিকিসà§à¦¤à¦¾à¦¨" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "টকেলাউ" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "তাজিকিসà§à¦¤à¦¾à¦¨" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "তিউনিশিয়া" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "মোট" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ইষà§à¦Ÿ টিমর" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "তà§à¦°à§à¦•à§€" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "তà§à¦°à¦¿à¦¨à¦¿à¦¦à¦¾à¦¦ ও টোবাগো" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "টà§à¦­à¦¾à¦²à§" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "তাইওয়ান" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "তানজানিয়া" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "ইউকà§à¦°à§‡à¦¨" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "কানাডা" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "ইউনাইটেড সà§à¦Ÿà§‡à¦Ÿà¦¸ মাইনর আউটলায়িং আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "সংযà§à¦•à§à¦¤ আরব আমিরাত" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "উরà§à¦—à§à§Ÿà§‡" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "উজবেকিসà§à¦¥à¦¾à¦¨" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "হোলি সি (ভà§à¦¯à¦¾à¦Ÿà¦¿à¦•ান সিটি সà§à¦Ÿà§‡à¦Ÿ)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "সেনà§à¦Ÿ ভিনসেনà§à¦Ÿ ও গà§à¦°à§‡à¦¨à¦¾à¦¡à¦¾à¦‡à¦¨à§à¦¸" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ভেনিজà§à§Ÿà§‡à¦²à¦¾" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "বà§à¦°à¦¿à¦Ÿà¦¿à¦¶ ভারà§à¦œà¦¿à¦¨ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ভারà§à¦œà¦¿à¦¨ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸, ইউ à¦à¦¸" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "ফাইলের নাম" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "ভানà§à§Ÿà¦¾à¦¤à§" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "ওয়ালিস ও ফà§à¦Ÿà§à¦¨à¦¾" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "&সামà§à¦¬à¦¾" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "ইয়েমেন" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "মেয়ট" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "দকà§à¦·à¦¿à¦¨ আফà§à¦°à¦¿à¦•া" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "&সামà§à¦¬à¦¾" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "জিমà§à¦¬à¦¾à¦¬à§à§Ÿà§‡" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "পà§à¦°à§Ÿà§‹à¦œà¦¨ হয় " #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s পà§à¦°à¦¾à¦šà§€à¦¨ করে দিয়েছে: %sকে" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "ফাইল খোলা যাচà§à¦›à§‡ না %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "%s খà§à¦à¦œà§‡ পায় না।" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "%s খà§à¦à¦œà§‡ পায় না।" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "সংযোগ সাধনের সময়ে আদেশ সমà§à¦ªà¦¨à§à¦¨ হয়েছে" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "à¦à¦¨à§à¦Ÿà§à¦°à¦¿ পাওয়া যায়নি" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "অজà§à¦žà¦¾à¦¤ ভাষা: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "আফার" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "আলবেনিয়া" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "কà§à¦°à¦¿à§Ÿà¦¾ (&c)" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "আকোলি" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "পরিসীমা" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "à¦à¦¡à¦¾à¦‡à¦—" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "আফà§à¦°à§‹-à¦à¦¶à¦¿à§Ÿà¦¾à¦Ÿà¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "আফà§à¦°à¦¿à¦¹à¦¿à¦²à¦¿" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "আফà§à¦°à¦¿à¦•ানà§à¦¸" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "আইনà§" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "আকান" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "আকà§à¦•াডিয়ান" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "আলবেনিয়া" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "আলিউট" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• ভাষা (&L)" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "দকà§à¦·à¦¿à¦¨ আফà§à¦°à¦¿à¦•া" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "আমহারিক" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ইংরেজী, পà§à¦°à¦¾à¦¤à¦¨ (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ভাষাসমূহ" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "আরবী" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "আরামাইক" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "আরাগোনিজ" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "আরà§à¦œà§‡à¦¨à§à¦Ÿà¦¿à¦¨à¦¾" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ইউকà§à¦°à§‡à¦¨à§€à§Ÿ" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "আরাপাহো" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "নকল (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "আরাওয়াক" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "à¦à¦•ই" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "অসà§à¦Ÿà§à¦°à¦¿à§Ÿà¦¾" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ইনসà§à¦Ÿà¦²à¦•ৃত ভাষা" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "আভারিক" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "আভেসà§à¦¤à¦¾à¦¨" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "অবধী" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "আয়মারা" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "আজারবাইজানি" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "কানাডা" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "ইনসà§à¦Ÿà¦²à¦•ৃত ভাষা" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "বà§à¦°à¦¾à¦œà¦¿à¦²" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "বালà§à¦šà¦¿" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "জাপানী" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "বাসà§à¦•" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "বà§à¦°à¦¾à¦œà¦¿à¦²" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "বালটিক (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "বেজা" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "বেলারà§à¦¸" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "বেমà§à¦¬à¦¾" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "বাংলা" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "বারà§à¦¬à¦¾à¦° (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "ভোজপà§à¦°à¦¿" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "বাহরাইন" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "বিকোল" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "বিনি" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "বিসলামা" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "সিকসিকা" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "বানটৠ(অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "বোটসোয়ানা" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "বà§à¦°à¦¾à¦œà¦¿à¦²" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "বাহরাইন" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "ইনà§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "বà§à¦²à¦—েরিয়া" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "বà§à¦—িনিজ" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "বà§à¦²à¦—েরিয়া" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "বাস মাউস " #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "বেলজিয়ান" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "কাডà§à¦¡à§‹" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "মধà§à¦¯ আমেরিকান ইনà§à¦¡à¦¿à§Ÿà¦¾à¦¨ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "কà§à¦¯à¦¾à¦°à¦¿à¦¬" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "কà§à¦¯à¦¾à¦Ÿà¦¾à¦²à§‹à¦¨à¦¿à§Ÿà¦¾" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "ককেশীয় (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "লেবানন" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "সেলà§à¦Ÿà¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "চামোরো" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "চিবচা" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "কà§à¦¯à¦¾à¦¶" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "চাগাতাই" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "চিলি" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "চà§à¦•েসে" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "পà§à¦°à¦§à¦¾à¦¨" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "চিনà§à¦• জারà§à¦—ন" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "চোকটাও" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "চিপেওয়ান" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "চেরোকি" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "চারà§à¦š সà§à¦²à§‡à¦­à¦¿à¦•" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "চà§à¦­à¦¾à¦¶" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "চেয়েন" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "কোসà§à¦Ÿà¦¾à¦°à¦¿à¦•া" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "ধারন করে" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "কোসà§à¦Ÿà¦¾à¦°à¦¿à¦•া" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "কà§à¦°à§‡à¦“লস ও ইংরেজী, ইংরেজী-ভিতà§à¦¤à¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "কà§à¦°à§‡à¦“লস ও পিজিনস ফরাসি-ভিতà§à¦¤à¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "কà§à¦°à§‡à¦“লস ও পিজিনস পরà§à¦¤à§à¦—িজ-ভিতà§à¦¤à¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "খালি" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "কà§à¦°à¦¿à¦®à¦¿à§Ÿà¦¾à¦¨ তাতার" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "কà§à¦°à§‡à¦“লস ও পিজিনস (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "কাশà§à¦¬à¦¿à§Ÿà¦¾à¦¨" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "কাসিটিক (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "চেক" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "ডাকোটা" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ডà§à¦¯à¦¾à¦¨à¦¿à¦¶" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "ডারগোয়া" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ডায়াক" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "হারà§à¦¡à¦“à§Ÿà§à¦¯à¦¾à¦° সনাকà§à¦¤ করো" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "সà§à¦²à§‡à¦­ (আথাপাসà§à¦•ান)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ডোগরিব" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ডিসà§à¦•" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "ডà§à¦°à¦¾à¦‡à¦­à¦¾à¦°" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "ডোগরি" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "দà§à¦°à¦¾à¦¬à¦¿à§à§€à§Ÿ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "লোয়ার সরবিয়ান" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "মালটা" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "ডাচ, মধà§à¦¯ (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ডাচà§" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "ডিউলা" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "জোংখা" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "à¦à¦«à¦¿à¦•" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ইজিপশিয়ান (পà§à¦°à¦¾à¦šà§€à¦¨)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "à¦à¦•াজà§à¦•" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "à¦à¦²à¦¾à¦®à¦¾à¦‡à¦Ÿ" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ইংরেজি (UK)" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ইংরেজী, মধà§à¦¯ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "অভিজà§à¦ž (&E)" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "à¦à¦¸à§à¦Ÿà§‹à¦¨à§€à§Ÿ" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ইউয়ি" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "à¦à¦“নà§à¦¡à§‹" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "পরিসীমা" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "খালি" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ফানà§à¦Ÿà¦¿" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "ফিনলà§à¦¯à¦¾à¦¨à§à¦¡" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ফিলিপাইন" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ফিনিশ" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "ফিনো-উগà§à¦°à¦¿à§Ÿà¦¾à¦¨ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "ফন" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ফà§à¦°à§‡à¦žà§à¦š" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "ফরাসি, মধà§à¦¯ (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ফরাসি, পà§à¦°à¦¾à¦¤à¦¨ (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "শেষ করা হচà§à¦›à§‡" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "সঙà§à¦•েত" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ফিনলà§à¦¯à¦¾à¦¨à§à¦¡" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "গা" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "গায়ো" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "গবায়া" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "জারà§à¦®à¦¾à¦¨ (deadkeys সহ)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "জরà§à¦œà¦¿à§Ÿà¦¾" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "জারà§à¦®à¦¾à¦¨" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "গà§à¦°à§€à¦•" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "গিলবারà§à¦Ÿà¦¿à¦œ" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "গেলিক" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "তà§à¦°à§à¦•à§€" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ইতালীয়" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "মà§à¦¯à¦¾à¦‚কà§à¦¸" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "জারà§à¦®à¦¾à¦¨, মধà§à¦¯ উচà§à¦š (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "জারà§à¦®à¦¾à¦¨, পà§à¦°à¦¾à¦¤à¦¨ উচà§à¦š (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "শবà§à¦¦" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "গরোনà§à¦Ÿà¦¾à¦²à§‹" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "গথিক" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "গà§à¦°à§à¦ª" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "গà§à¦°à§€à¦•, পà§à¦°à¦¾à¦šà§€à¦¨ (1453 অবধি)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "গà§à¦°à§€à¦•, আধà§à¦¨à¦¿à¦• (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "হাঙà§à¦—েরীয়" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "গà§à¦œà¦°à¦¾à¦Ÿà¦¿" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "গà§à¦‡à¦š'ইন" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "হাইদা" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "পাকিসà§à¦¤à¦¾à¦¨" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "হাউসা" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "হাওয়াইয়ান" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "হিবà§à¦°à§" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "সমসà§à¦¯à¦¾" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "হিলগেনন" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "হিমাচলি" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "ধরন" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "হিটাইট" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "হমং" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "হিরি মটà§" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "আপার সারà§à¦¬à¦¿à§Ÿà¦¾à¦¨" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "হাঙà§à¦—েরীয়" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "হà§à¦ªà¦¾" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ইবন" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "ইগবো" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "আইসলà§à¦¯à¦¾à¦¨à§à¦¡à§€à§Ÿ" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ইদো" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "লিথà§à§Ÿà§‡à¦¨à¦¿à§Ÿà¦¾" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ইজো" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "ইনাখটিটাট" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "আভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ à¦à¦²à¦¾à¦•া" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "ইলোকো" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦²à¦¿à¦™à§à¦—à§à§Ÿà¦¾ (ইনà§à¦Ÿà¦¾à¦°à¦¨à§à¦¯à¦¾à¦¶à¦¨à¦¾à¦² অকজিলিয়ারি লà§à¦¯à¦¾à¦‚গà§à§Ÿà§‡à¦œ অà§à¦¯à¦¾à¦¸à§‹à¦¶à¦¿à§Ÿà§‡à¦¶à¦¨)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ইনà§à¦¡à¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ইনà§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "ইনà§à¦¦à§‹-ইউরোপিয়ান (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ইঙà§à¦—à§à¦¶" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "ভারত" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ইরানি (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• ভাষা (&L)" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ইতালীয়" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "জাপানী" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "লেবানন" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "জাপানী" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "জà§à¦¡à§‡à¦“-পারà§à¦¸à¦¿à§Ÿà¦¾à¦¨" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "জà§à¦¡à§‡à¦“-আরবী" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "কারা-কালপাক" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "সকà§à¦°à¦¿à§Ÿ হয়েছে" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "খোà¦à¦œà§‹" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "কলালà§à¦²à¦¿à¦¸à§à¦Ÿ" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "&সামà§à¦¬à¦¾" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "কানাডা" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "বাহরাইন" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "কাশà§à¦®à§€à¦°à¦¿" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "কানà§à¦°à¦¿" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "কà§à§Ÿà§‡à¦¤" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "কাজাখ" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "কাবারডিয়ান" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "খাসি" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "খয়সান (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ঘড়ি" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "খোটানিজ" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "কিকà§à§Ÿà§" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "কিনয়ারোয়ানà§à¦¡à¦¾" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "কিরগিজ" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "ধরন" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "কোঙà§à¦•নী" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "কোমি" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "কঙà§à¦—à§‹" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "জরà§à¦¡à¦¾à¦¨" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "কোসরিয়ান" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "à¦à¦•ই রাখো" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "কারাচে-বালকার" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "কà§à¦°à§" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "তà§à¦°à§à¦•à§€" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "পানামা" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "নকল" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "তà§à¦°à§à¦•à§€" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "কà§à§Ÿà§‡à¦¤" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "লোড করা হচà§à¦›à§‡..." #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "কানাডা" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "&সামà§à¦¬à¦¾" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "লগ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "লাতভিয়া" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "লাতভিয়া" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "বেলজিয়ান" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "লাকà§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "লিঙà§à¦—ালা" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "লিথà§à§Ÿà§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "মনিটর" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "লোজি" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "লাকà§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "লà§à¦¬à¦¾-লà§à¦²à§à§Ÿà¦¾" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "লà§à¦¬à¦¾-কাটাঙà§à¦—া" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "কানাডা" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "লà§à¦‡à¦¸à§‡à¦¨à§‹" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "শবà§à¦¦" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "লà§à¦“ (কেনিয়া ও তানজানিয়া)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "থাইলà§à¦¯à¦¾à¦¨à§à¦¡" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "মà§à¦¯à¦¾à¦¸à§‡à¦¡à§‹à¦¨à¦¿à§Ÿà¦¾" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "মডিউলসমূহ" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "মাগাহি" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "মারশালিজ" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "মৈথিলি" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "মালয়শিয়া" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "মালয়শিয়া" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "সতরà§à¦•বাণী" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "পà§à¦°à¦§à¦¾à¦¨" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "অসà§à¦Ÿà§à¦°à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾à¦¨ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "মারাঠি" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "মালয়শিয়া" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "মালটা" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "মোকà§à¦·" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "কানাডা" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "মোড" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "আইরিশ, মধà§à¦¯ (900-1200) " #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "মি'কমাক" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "মিনাংকাবাউ" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "আপনার ভাষা নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨:" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "মন-খমের (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "মালয়শিয়া" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "মালটা" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "চালৠকরো (&চ)" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "মণিপà§à¦°à§€" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "মোহক" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "যà§à¦—োসà§à¦²à¦¾à¦­à¦¿à§Ÿà¦¾" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "মঙà§à¦—োলিয়ান" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "মাউস" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "ইনসà§à¦Ÿà¦²à¦•ৃত ভাষা" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "ভাষাসমূহ" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "গà§à¦°à§€à¦•" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "মিরানà§à¦¡à¦¿à¦œ" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "হারà§à¦¡à¦“à§Ÿà§à¦¯à¦¾à¦° তথà§à¦¯" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ইরজিয়া" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "নাহà§à§Ÿà¦¾à¦Ÿà¦¿" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "নরà§à¦¥ আমেরিঅকন ইনà§à¦¡à¦¿à§Ÿà¦¾à¦¨" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "নিয়াপলিটান" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "নাভাজো" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "à¦à¦¨à¦¡à§‡à¦¬à§‡à¦²à§‡, দকà§à¦·à¦¿à¦£" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "à¦à¦¨à¦¡à§‡à¦¬à§‡à¦²à§‡, উতà§à¦¤à¦°" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "à¦à¦¨à¦¡à§‹à¦‚গা" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "জারà§à¦®à¦¾à¦¨" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "নেপালী" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "নেপাল ভাষা" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "নিয়াস" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "নাইজার-করà§à¦¡à§‹à¦«à¦¾à¦²à¦¿à§Ÿà¦¾à¦¨ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "নিউয়ান" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "নরওয়েজিয়ান" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "নরওয়েজিয়ান" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "নগাই" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "নরসে, পà§à¦°à¦¾à¦¤à¦¨" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "নরওয়েজিয়ান" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "নরà§à¦¦à¦¾à¦°à§à¦¨ সোথো" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "কà§à¦²à¦¾à¦¸à¦¿à¦•াল নেওয়ারি" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "চিলি" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "নাম" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "নিয়ানকোলে" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "নিয়োরো" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "à¦à¦¨à¦œà¦¿à¦®à¦¾" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "অকà§à¦•িটান 1500 পরবরà§à¦¤à§€)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "অজিবোয়া" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "ওড়িয়া" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "ওরোমো" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "à¦à¦•ই" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "রাশিয়ান" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "তà§à¦°à§à¦•à§€, অটোমান (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "পাপà§à§Ÿà¦¾à¦¨ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "হাঙà§à¦—েরীয়" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "পহলাভি" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦—à§à§Ÿà§‡" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "পানামা" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "পাপিয়ামেনà§à¦Ÿà§‹" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦—à§à§Ÿà§‡" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "পারà§à¦¸à¦¿à§Ÿà¦¾à¦¨, পà§à¦°à¦¾à¦¤à¦¨ (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ভারà§à¦¸à¦¨ " #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ফিলিপাইন" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ফোনিসিয়ান" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "পোলিশ" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "পোলিশ" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr " ফোনà§à¦ªà¦¿à§Ÿà¦¾à¦¨ " #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "পরà§à¦¤à§à¦—ীজ" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• ভাষা (&L)" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "পà§à¦°à¦­à¦¿à¦¨à§à¦¸à¦¾à¦², পà§à¦°à¦¾à¦¤à¦¨ (1500 অবধি)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "পà§à¦¶à¦¤à§‹" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "কোয়েচà§à§Ÿà¦¾" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "তাজিকিসà§à¦¤à¦¾à¦¨" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "জাপান" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "রারোটোংগান" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "রোমানà§à¦¸ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "রেটো-রোমানà§à¦¸" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "রোমানিয়া" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "রোমানিয়া" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "চলছে" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "রাশিয়ান" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "কানাডা" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "পরিসীমা" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "ইয়াকà§à¦Ÿ" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "দকà§à¦·à¦¿à¦£ আমেরিকান ইনà§à¦¡à¦¿à§Ÿà¦¾à¦¨ (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "সামারিটান আরামাইক" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "সংসà§à¦•ৃত" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "সাসাক" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "কà§à¦¯à¦¾à¦Ÿà¦¾à¦²à§‹à¦¨à¦¿à§Ÿà¦¾" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "খোà¦à¦œà§‹" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "সিসিলিয়ান" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "সà§à¦¤à¦°" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "কà§à¦°à§‹à§Ÿà§‡à¦¶à§€à§Ÿ" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "সাহাযà§à¦¯" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "সেমিটিক (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "আইরিশ, পà§à¦°à¦¾à¦¤à¦¨ (900 অবধি)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "ভাষাসমূহ" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "সà§à¦¦à¦¾à¦¨" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "সিডামো" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "সিংহল" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "সাইনো-টিবেটান (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "সà§à¦²à§‡à¦­à¦¿à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "সà§à¦²à§‹à¦­à¦¾à¦•" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "সà§à¦²à§‹à¦­à§‡à¦¨à¦¿à§Ÿà¦¾" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "দকà§à¦·à¦¿à¦£à§€ সামি" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "উতà§à¦¤à¦°à§€à§Ÿ সামি" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "লà§à¦²à§‡ সামি" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "ইনারি সামি" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "&সামà§à¦¬à¦¾" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "সà§à¦•লà§à¦Ÿ সামি" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "সà§à¦²à§‹à¦­à§‡à¦¨à¦¿à§Ÿà¦¾" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "ধরন" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "চালিয়ে যাও (&চ)" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "সà§à¦¦à¦¾à¦¨" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "রোমানিয়া" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "সংহাই" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "সোথো, দকà§à¦·à¦¿à¦£à§€" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "ইউকà§à¦°à§‡à¦¨à§€à§Ÿ" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "সারà§à¦­à¦¿à¦¸" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "নাইলো-সাহারান (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "সà§à¦ªà§‡à¦¨" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "সারসংকà§à¦·à§‡à¦ª" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "সà§à¦¦à¦¾à¦¨" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "SMBus" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "সà§à¦¦à¦¾à¦¨" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "সোয়াহিলি" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "সà§à¦‡à¦¡à¦¿à¦¶" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "সারà§à¦­à¦¿à¦¸" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "তাইওয়ান" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "তাই (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "পরিবার" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "কাতার" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "বেলজিয়াম" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "সময়" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "টà§à¦°à§€" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Pentium" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "তাজিকিসà§à¦¤à¦¾à¦¨" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "টাগালগ" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "থাইলà§à¦¯à¦¾à¦¨à§à¦¡" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "তাইওয়ান" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "টà§à¦°à§€" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "টাইগà§à¦°à¦¿à¦¨à¦¿à§Ÿà¦¾" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "টিভ" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "কà§à¦²à¦¿à¦‚গন" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "টà§à¦²à¦¿à¦‚গিট" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "টামাশেক" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "টোংগা (নায়াসা)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "টোংগা (টোংগা দà§à¦¬à§€à¦ª)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "টোকেন রিং" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "রাশিয়ান" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "বোটসোয়ানা" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "à¦à¦¸à§à¦Ÿà§‹à¦¨à¦¿à§Ÿà¦¾" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "তà§à¦°à§à¦•à§€" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "টà§à¦®à¦¬à§à¦•া" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "ভাষাসমূহ" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "তà§à¦°à§à¦•à§€" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "অলà§à¦Ÿà§‡à¦‡à¦• (অনà§à¦¯à¦¾à¦¨à§à¦¯)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "টà§à¦‡" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "তিউনিশিয়া" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "উডমà§à¦°à§à¦Ÿ" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "উগারিটিক" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "উইগà§à¦°" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ইউকà§à¦°à§‡à¦¨à§€à§Ÿ" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "উমবà§à¦¨à§à¦¡à§" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "অনিরà§à¦§à¦¾à¦°à¦¿à¦¤" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "উরà§à¦¦à§" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "উজবেকিসà§à¦¥à¦¾à¦¨" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "ভাই" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "বিকà§à¦°à§‡à¦¤à¦¾" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ফাইলের নাম" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "ভোলাপà§à¦•" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "জয়সà§à¦Ÿà¦¿à¦•" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "ওয়ালামো" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦—à§à§Ÿà§‡" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "ওয়াশো" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "ওয়েলশ" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "ভাষা সংরকà§à¦·à¦¨ করা হচà§à¦›à§‡..." #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ওয়ালà§à¦¨" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "উওলফ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "কালমাইক" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "জোসা" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "ইয়াও" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "জাপানী" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "ইদà§à¦¦à¦¿à¦¶" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "ইওরà§à¦¬à¦¾" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "ভাষাসমূহ" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "জà§à¦¯à¦¾à¦ªà§‹à¦Ÿà§‡à¦•" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "জেনাগা" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "পরিবরà§à¦¤à¦¿à¦¤" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "পরিসীমা" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "জà§à¦²à§" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "জà§à¦¨à¦¿" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' নেই" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' নেই" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "লেখার জনà§à¦¯à§‡ ফাইল খà§à¦²à¦¤à§‡ পারে না।" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "'%s' ডেসà§à¦•টপ বসà§à¦¤à§ খà§à¦²à¦¤à§‡ পারে না" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "ডায়রেকà§à¦Ÿà¦°à¦¿ %1: %2 তৈরী করা যাচà§à¦›à§‡ না" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ফà§à¦²à¦ªà¦¿ ডিসà§à¦• থেকে পড়ায় তà§à¦°à§à¦Ÿà¦¿à¥¤" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "রপà§à¦¤à¦¾à¦¨à¦¿ ফাইলনাম অবৈধ৷" #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "সংসà§à¦¥à¦¾à¦¨ পà§à¦¨à¦ƒà¦¸à§à¦¥à¦¾à¦ªà¦¨ করছে" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s' ডেসà§à¦•টপ বসà§à¦¤à§ খà§à¦²à¦¤à§‡ পারে না" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "অবৈধ LDAP URL অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ সà§à¦Ÿà§à¦°à¦¿à¦‚" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "অবৈধ LDAP URL অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Url অনজেকà§à¦Ÿ কà§à¦²à§‹à¦¨ করতে অকà§à¦·à¦®" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "অবৈধ খালি Url অবজেকà§à¦Ÿ রেফারেনà§à¦¸" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Url কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পারà§à¦¸ করতে অকà§à¦·à¦®" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "অজানা" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "ফাইল খোলা যাচà§à¦›à§‡ না %1." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "অজানা" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "অবৈধ Url যোজনা %s" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, fuzzy, c-format, boost-format msgid "Authentication required for '%s'" msgstr "সতà§à¦¯à¦¤à¦¾ যাচাইয়ের ধরন" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s খà§à¦²à¦¤à§‡ পারে নি - %s\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "মডিউল\"%s\" লোড করতে অসফল হয়েছে।" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "রিপোসিটারিতে ফাইল %1 পাওয়া যায়নি" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr " ফাইলে লেখা যাচà§à¦›à§‡ না %1." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 ডায়রেকà§à¦Ÿà¦°à¦¿ না" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr " CA নাম শূণà§à¦¯" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "অবৈধ URL পà§à¦°à¦•লà§à¦ª '%1'à§·" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "'%s' ডেসà§à¦•টপ বসà§à¦¤à§ খà§à¦²à¦¤à§‡ পারে না" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "%s পà§à¦¯à¦¾à¦•েজের শà§à¦¦à§à¦§à¦¤à¦¾ যাচাই বà§à¦¯à¦°à§à¦¥ হয়েছে। আপনি কি à¦à¦Ÿà¦¾à¦•ে পà§à¦¨à¦°à¦¾à§Ÿ ডাউনলোড করার চেষà§à¦Ÿà¦¾ " "করতে চান?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "%s পà§à¦¯à¦¾à¦•েজের শà§à¦¦à§à¦§à¦¤à¦¾ যাচাই বà§à¦¯à¦°à§à¦¥ হয়েছে। আপনি কি à¦à¦Ÿà¦¾à¦•ে পà§à¦¨à¦°à¦¾à§Ÿ ডাউনলোড করার চেষà§à¦Ÿà¦¾ " "করতে চান?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm যাচাই বà§à¦¯à¦°à§à¦¥ হয়েছে।" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm বà§à¦¯à¦°à§à¦¥ হয়েছে।" #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "সংসà§à¦¥à¦¾à¦¨à§‡à¦° পà§à¦°à¦•ার VAR1 পরিবর।তন দেখান বৈশিষà§à¦Ÿà§à¦¯à¦•ে সমরà§à¦¥à¦¨ করে না" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "%s থেকে %s পà§à¦°à¦¦à¦¾à¦¨ করতে পারে না" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "রিপোসিটারিতে ফাইল %1 পাওয়া যায়নি" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "ফাইল তৈরী করা যাচà§à¦›à§‡ না" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "কিছৠঅমীমাংসিত আবশà§à¦¯à¦•তা আছে..." #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "কিছৠঅমীমাংসিত আবশà§à¦¯à¦•তা আছে..." #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾à¦° অনà§à¦¯ à¦à¦•টা আরà§à¦•িটেকচার আছে।" #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "পà§à¦¯à¦¾à¦•েজ আনইনসà§à¦Ÿà¦² করার আদেশ" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "à¦à¦° সাথে সংযোগের অনà§à¦°à§‹à¦§: " #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "নিরà§à¦­à¦°à¦¤à¦¾ সমসà§à¦¯à¦¾à¦—à§à¦²à¦¿à¦° কারণে %s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "কোনওটাই %s পà§à¦°à¦¦à¦¾à¦¨ করে না" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•েট %1 অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s লক করা আছে à¦à¦¬à¦‚ আনইনà§à¦¸à¦Ÿà¦² করা যাবে না ।" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "ইনসà§à¦Ÿà¦² করা হয় নি" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s à¦à¦° %s দরকার" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "in/ssTklইনসà§à¦Ÿà¦² করা যাবে না" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s-à¦à¦° সঙà§à¦—ে %s-à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s %sকে পà§à¦°à¦¾à¦šà§€à¦¨ করে দিয়েছে" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s %sকে পà§à¦°à¦¾à¦šà§€à¦¨ করে দিয়েছে" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s-à¦à¦° সঙà§à¦—ে %s-à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "কোনওটাই %s পà§à¦°à¦¦à¦¾à¦¨ করে না" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "%s à¦à¦° কোনও বিকলà§à¦ª সà§à¦¥à¦¾à¦ªà¦¨à¦¯à§‹à¦—à§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à¦•ারী নেই" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "%s à¦à¦° কোনও বিকলà§à¦ª সà§à¦¥à¦¾à¦ªà¦¨à¦¯à§‹à¦—à§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à¦•ারী নেই" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s ইনà§à¦¸à¦Ÿà¦² করে না" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s রাখà§à¦¨" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "%s ইনà§à¦¸à¦Ÿà¦² করে না" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "ইতিমধà§à¦¯à§‡ à¦à¦‡ অনà§à¦°à§‹à¦§ করা হয়ে গিয়েছে" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%s à¦à¦° কোনও বিকলà§à¦ª সà§à¦¥à¦¾à¦ªà¦¨à¦¯à§‹à¦—à§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à¦•ারী নেই" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "%1 à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬ %2 à¦à¦° সাথে" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾à¦° অনà§à¦¯ à¦à¦•টা আরà§à¦•িটেকচার আছে।" #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨ যদিও à¦à¦Ÿà¦¾ আরà§à¦•িটেকচার পালটে দেবে" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s %sকে পà§à¦°à¦¾à¦šà§€à¦¨ করে দিয়েছে" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%s থেকে %s ডাউনলোড করেছে" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "সà§à¦¥à¦¾à¦ªà¦¨" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "কী à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨à§‡ তà§à¦°à§à¦Ÿà¦¿" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "নিরà§à¦¦à§‡à¦¶à¦®à¦¤ সà§à¦¥à¦¾à¦ªà¦¨à¦¾ বাতিল করা হয়েছে।" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext সংযà§à¦•à§à¦¤ নয়" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive চালৠনেই" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume চালৠনেই" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus সংযোগ তৈরি করতে অকà§à¦·à¦®" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: libhal কনটেকà§à¦¸à¦Ÿ তৈরি করতে পারে না" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: dbus সংযোগ নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে পারে না" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL কনটেকà§à¦¸à¦Ÿ চালৠকরতে পারে না -- hald চলছে না?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "CDROM ডà§à¦°à¦¾à¦‡à¦­ নয়" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "বà§à¦¯à¦°à§à¦¥" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr " %s-à¦à¦° জনà§à¦¯ পরিবরà§à¦¤à¦¿à¦¤ কনফিগারেশন ফাইলসমূহ :" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm %s কে %sরূপে সংরকà§à¦·à¦£ করেছিল ,কিনà§à¦¤à§ পারà§à¦¥à¦•à§à¦¯ নিরূপণ করা অসমà§à¦­à¦¬ হয়েছিল " #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm %s কে %sরূপে সংরকà§à¦·à¦£ করেছিল।\n" "à¦à¦–ানে পারà§à¦¥à¦•à§à¦¯à§‡à¦° পà§à¦°à¦¥à¦® ২৫ টি লাইন দেওয়া আছে:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm %s কে %sরূপে সংরকà§à¦·à¦£ করেছিল ,কিনà§à¦¤à§ পারà§à¦¥à¦•à§à¦¯ নিরূপণ করা অসমà§à¦­à¦¬ হয়েছিল " #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm %s কে %sরূপে তৈরি করেছিল।\n" "à¦à¦–ানে পারà§à¦¥à¦•à§à¦¯à§‡à¦° পà§à¦°à¦¥à¦® ২৫ টি লাইন দেওয়া আছে:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "অতিরিকà§à¦¤ তথà§à¦¯" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "%s বà§à¦¯à¦¾à¦•আপ তৈরী করছে" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "à¦à¦¨à§à¦Ÿà§à¦°à¦¿ পাওয়া যায়নি" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "à¦à¦¨à§à¦Ÿà§à¦°à¦¿ পাওয়া যায়নি" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "à¦à¦¨à§à¦Ÿà§à¦°à¦¿ পাওয়া যায়নি" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "মিউটেকà§à¦¸ বৈশিষà§à¦Ÿà§à¦¯ চালৠকরতে পারে না" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "রিকারà§à¦¸à¦¿à¦­ মিউটেকà§à¦¸ বৈশিষà§à¦Ÿà§à¦¯ নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে পারে না" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "রিকারà§à¦¸à¦¿à¦­ মিউটেকà§à¦¸ চালৠকরতে পারে না" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "মিউটেকà§à¦¸ লক অরà§à¦œà¦¨ করতে পারে না" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "মিউটেকà§à¦¸ লক মà§à¦•à§à¦¤ করতে পারে না" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url যোজনা %s à¦à¦° অনà§à¦®à¦¤à¦¿ দেয় না" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "অবৈধ %s কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "অবৈধ %s কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "à¦à¦‡ URL à¦à¦° জনà§à¦¯à§‡ সà§à¦Ÿà§à¦°à¦¿à¦‚ পারà§à¦¸à¦¿à¦‚ সমরà§à¦¥à¦¿à¦¤ নয়" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url যোজনা à¦à¦•টি আবশà§à¦¯à¦¿à¦• কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "অবৈধ Url যোজনা %s" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url যোজনা বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নামের অনà§à¦®à¦¤à¦¿ দেয় না" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url যোজনা পাসওয়ারà§à¦¡à§‡à¦° অনà§à¦®à¦¤à¦¿ দেয় না" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url যোজনার জনà§à¦¯ হোসà§à¦Ÿ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url যোজনা হোসà§à¦Ÿ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ-à¦à¦° অনà§à¦®à¦¤à¦¿ দেয় না" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "অবৈধ হোসà§à¦Ÿ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url যোজনা পোরà§à¦Ÿà§‡à¦° অনà§à¦®à¦¤à¦¿ দেয় না" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "অবৈধ পোরà§à¦Ÿ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ '%s' " #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url যোজনার জনà§à¦¯ পথের নাম দরকার" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "অথরিটি বিদà§à¦¯à¦®à¦¾à¦¨ থাকলে রিলেটিভ পথের অনà§à¦®à¦¤à¦¿ নেই" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "à¦à¦¨à¦•োডেড সà§à¦Ÿà§à¦°à¦¿à¦‚য়ে NUL বাইট আছে" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "অবৈধ পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° à¦à¦°à§‡ সà§à¦ªà§à¦²à¦¿à¦Ÿ সেপারেটর কà§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦°" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "অবৈধ পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° মà§à¦¯à¦¾à¦ª সà§à¦ªà§à¦²à¦¿à¦Ÿ সেপারেটর কà§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦°" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "অবৈধ পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° à¦à¦°à§‡ জয়েন সেপারেটর কà§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦°" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "পাবà§à¦²à¦¿à¦• কী পাওয়া যাচà§à¦›à§‡ না" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "ইনসà§à¦Ÿà¦² করা হয় নি" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "%s খà§à¦²à¦¤à§‡ পারে নি - %s\n" #~ msgid "Serbia and Montenegro" #~ msgstr "সারà§à¦¬à¦¿à§Ÿà¦¾ ও মনà§à¦Ÿà§‡à¦¨à§‡à¦—à§à¦°à§‹" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "অজà§à¦žà¦¾à¦¤ তালিকাবিকলà§à¦ª" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿à¦° সমাধান করতে পারে নি" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ফাইলের কোনও চেকসাম নেই।\n" #~ "তবà§à¦“ ফাইলটি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চান?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "নিচের কি দà§à¦¬à¦¾à¦°à¦¾ %s ফাইলের শà§à¦¦à§à¦§à¦¤à¦¾ যাচাই বà§à¦¯à¦°à§à¦¥ হয়েছে:\n" #~ "%s|%s|%s\n" #~ "তবà§à¦“ ফাইলটি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চান?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ফাইলের à¦à¦•টি অবৈধ চেকসাম আছে।\n" #~ "%s পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ ছিল, পাওয়া গেছে %sতবà§à¦“ ফাইলটি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চান?" #, fuzzy #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ফাইলের à¦à¦•টি অজà§à¦žà¦¾à¦¤ চেকসাম আছে ।\n" #~ "তবà§à¦“ ফাইলটি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চান?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "%s সà§à¦¬à¦¾à¦•à§à¦·à¦°à¦¿à¦¤ নয়।\n" #~ "তবà§à¦“ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চান?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ফাইল %s à¦à¦•টি অজà§à¦žà¦¾à¦¤ কি দà§à¦¬à¦¾à¦°à¦¾ সà§à¦¬à¦¾à¦•à§à¦·à¦°à¦¿à¦¤:\n" #~ "%s|%s|%s\n" #~ "তবà§à¦“ ফাইলটি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চান?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "অবিশà§à¦¬à¦¸à§à¦¤ কি পাওয়া গেছে:\n" #~ "%s|%s|%s\n" #~ "কি-য়ের উপরে বিশà§à¦¬à¦¾à¦¸ করবেন?" #~ msgid "%s remove failed" #~ msgstr "%s অপসারণ বà§à¦¯à¦°à§à¦¥ হয়েছে" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨" #~ msgid "rpm output:" #~ msgstr "rpm আউটপà§à¦Ÿ" #~ msgid "%s install failed" #~ msgstr "%s ইনà§à¦¸à¦Ÿà¦² বà§à¦¯à¦°à§à¦¥ হয়েছে " #~ msgid "%s installed ok" #~ msgstr "%s ইনà§à¦¸à¦Ÿà¦² ঠিক আছে" #~ msgid "%s remove ok" #~ msgstr "%s অপসারণ ঠিক আছে" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "%s à¦à¦‡ নিরà§à¦­à¦°à¦¤à¦¾ পà§à¦°à¦¦à¦¾à¦¨ করে কিনà§à¦¤à§ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ আইটেমের আরà§à¦•িটেকচার পালটে দেবে " #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "%s à¦à¦‡ নিরà§à¦­à¦°à¦¤à¦¾ পà§à¦°à¦¦à¦¾à¦¨ করে কিনà§à¦¤à§ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ আইটেমের আরà§à¦•িটেকচার পালটে দেবে " #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "%1 à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬ %2 à¦à¦° সাথে" #~ msgid "Ignore that %s is already set to install" #~ msgstr "%s ইতোমধà§à¦¯à§‡à¦‡ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হওয়া নিরà§à¦¦à¦¿à¦·à§à¦Ÿ রয়েছে, à¦à¦‡ বিষয়টি উপেকà§à¦·à¦¾ করà§à¦¨" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%s-ঠঅপà§à¦°à¦šà¦²à¦¿à¦¤ %s অগà§à¦°à¦¾à¦¹à§à¦¯ করà§à¦¨" #~ msgid "Ignore this conflict of %s" #~ msgstr "%s à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬ অগà§à¦°à¦¾à¦¹à§à¦¯ করà§à¦¨" #~ msgid "Ignore this requirement just here" #~ msgstr "কিছৠঅমীমাংসিত আবশà§à¦¯à¦•তা আছে..." #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "%s সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨ যদিও à¦à¦Ÿà¦¾ আরà§à¦•িটেকচার পালটে দেবে" #~ msgid "Install missing resolvables" #~ msgstr "ডà§à¦°à¦¾à¦‡à¦­à¦¾à¦° ইনসà§à¦Ÿà¦² করা হচà§à¦›à§‡..." #~ msgid "Keep resolvables" #~ msgstr "ডà§à¦°à¦¾à¦‡à¦­à¦¾à¦° ইনসà§à¦Ÿà¦² করা হচà§à¦›à§‡..." #~ msgid "Unlock these resolvables" #~ msgstr "%1 à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬ %2 à¦à¦° সাথে" #~ msgid "delete %s" #~ msgstr "%s মà§à¦›à§‡ ফেলà§à¦¨" #~ msgid "install %s" #~ msgstr "%s ইনসà§à¦Ÿà¦² করà§à¦¨" #~ msgid "unlock %s" #~ msgstr "%s আনলক করে" #~ msgid "unlock all resolvables" #~ msgstr "%1 à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬ %2 à¦à¦° সাথে" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "ফাইল খোলা যাচà§à¦›à§‡ না %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "সেকà§à¦Ÿà¦° %u পড়ায় তà§à¦°à§à¦Ÿà¦¿à¥¤" #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "à¦à¦‡ URL à¦à¦° জনà§à¦¯à§‡ পথ পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° পারà§à¦¸à¦¿à¦‚ সমরà§à¦¥à¦¿à¦¤ নয়" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "à¦à¦‡ URL à¦à¦° জনà§à¦¯à§‡ পথ পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° পারà§à¦¸à¦¿à¦‚ সমরà§à¦¥à¦¿à¦¤ নয়" #~ msgid "Software management is already running." #~ msgstr "সফà§à¦Ÿà¦“à§Ÿà§à¦¯à¦¾à¦° মà§à¦¯à¦¾à¦¨à§‡à¦œà¦®à§‡à¦¨à§à¦Ÿ ইতোমধà§à¦¯à§‡à¦‡ চলছে।" #~ msgid "%s is replaced by %s" #~ msgstr "%s পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ হয়েছে %s দà§à¦¬à¦¾à¦°à¦¾" #~ msgid "%s replaced by %s" #~ msgstr "%s পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ হয়েছে %s দà§à¦¬à¦¾à¦°à¦¾" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "à¦à¦‡ রিজলভেবলগà§à¦²à¦¿ সিসà§à¦Ÿà§‡à¦® থেকে মà§à¦›à§‡ দেওয়া হবে।" #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s বিসà§à¦¥à¦¾à¦ªà¦¿ত হবে না কারণ à¦à¦Ÿà¦¾à¦° à¦à¦–নও পà§à¦°à§Ÿà§‹à¦œà¦¨ আছে" #~ msgid "Invalid information" #~ msgstr "অবৈধ তথà§à¦¯" #~ msgid "%s is needed by other resolvables" #~ msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯ রিজলভেবলের %s পà§à¦°à§Ÿà§‹à¦œà¦¨" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "à¦à¦° %s দরকার:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯ বিশà§à¦²à§‡à¦·à§à¦¯à¦—à§à¦²à¦¿à¦° সঙà§à¦—ে %s à¦à¦° দà§à¦¬à¦¨à§à¦¦à§à¦¬" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s-à¦à¦° সঙà§à¦—ে দà§à¦¬à¦¨à§à¦¦à§à¦¬ :\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s অনà§à¦¯à¦¾à¦¨à§à¦¯ রিজলভেবলগà§à¦²à¦¿à¦•ে পà§à¦°à¦¾à¦šà§€à¦¨ করে দিয়েছে" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "à¦à¦‡ রিজলভেবলগà§à¦²à¦¿ সিসà§à¦Ÿà§‡à¦® থেকে মà§à¦›à§‡ দেওয়া হবে।" #~ msgid "%s depends on other resolvables" #~ msgstr "%s অনà§à¦¯ রিজলভেবলগà§à¦²à¦¿à¦° উপরে নিরà§à¦­à¦° করে" #~ msgid "%s depends on %s" #~ msgstr "%s নিরà§à¦­à¦° করে %s à¦à¦° উপরে" #~ msgid "%s depends on:%s" #~ msgstr "%s নিরà§à¦­à¦° করে à¦à¦° উপরে: %s" #~ msgid "Child of" #~ msgstr "à¦à¦° সনà§à¦¤à¦¾à¦¨" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "à¦à¦®à¦¨ কোনও সংসà§à¦¥à¦¾à¦¨ উপলবà§à¦§ নেই যা à¦à¦‡ পà§à¦°à§Ÿà§‹à¦œà¦¨à¦Ÿà¦¿à¦•ে সমরà§à¦¥à¦¨ করে" #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "à¦à¦‡ রেজলিউশনের উপরে/নিচে বরà§à¦£à¦¿à¦¤ সমসà§à¦¯à¦¾à¦—à§à¦²à¦¿ সমসà§à¦¤ নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿à¦° সমাধান করবে না" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না কারণ à¦à¦Ÿà¦¾ %s à¦à¦° সাথে বিবাদ তৈরি করছে" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s ইনà§à¦¸à¦Ÿà¦² করা নেই à¦à¦¬à¦‚ আনইনà§à¦¸à¦Ÿà¦² হিসাবে চিহà§à¦¨à¦¿à¦¤ করা হয়েছে" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s à¦à¦° অপূরà§à¦£ পà§à¦°à§Ÿà§‹à¦œà¦¨ আছে" #~ msgid "%s has missing dependencies" #~ msgstr "%s à¦à¦° হারিয়ে যাওয়া নিরà§à¦­à¦°à¦¶à§€à¦²à¦—à§à¦²à¦¿ আছে" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "হারিয়ে যাওয়া নিরà§à¦­à¦°à¦¶à§€à¦²à¦—à§à¦²à¦¿à¦° জনà§à¦¯ %s ইনà§à¦¸à¦Ÿà¦² করা যাবে না" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s %s à¦à¦° নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿ পূরণ করে কিনà§à¦¤à§ বিসà§à¦¥à¦¾à¦ªà¦¿à¦¤ হবে" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s %s à¦à¦° নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿ পূরণ করে কিনà§à¦¤à§ à¦à¦•ে আপনার সিসà§à¦Ÿà§‡à¦®à§‡ রাখা হবে" #~ msgid "No need to install %s" #~ msgstr "%s ইনà§à¦¸à¦Ÿà¦² করার পà§à¦°à§Ÿà§‹à¦œà¦¨ নেই" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "%s à¦à¦° নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿ পূরণ করার জনà§à¦¯à§‡ %s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "%s à¦à¦° নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿ পূরণ করার জনà§à¦¯à§‡ %s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s বিসà§à¦¥à¦¾à¦ªà¦¿à¦¤ হবে না কারণ à¦à¦Ÿà¦¾à¦° à¦à¦–নও পà§à¦°à§Ÿà§‹à¦œà¦¨ আছে" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%s %s কে পà§à¦°à¦¾à¦šà§€à¦¨ করে দিয়েছে। কিনà§à¦¤à§ %s মà§à¦›à§‡ দেওয়া যায় না কারণ à¦à¦Ÿà¦¾ লক হয়ে আছে।" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না কারণ à¦à¦Ÿà¦¾ বিবাদ তৈরি করছে" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s à¦à¦° সঙà§à¦—ে দà§à¦¬à¦¨à§à¦¦à§à¦¬à§‡à¦° জনà§à¦¯ %s ইনà§à¦¸à¦Ÿà¦² করার অযোগà§à¦¯" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "%s উনà§à¦¨à§€à¦¤ করার সময়ে %s à¦à¦° জনà§à¦¯à§‡ %s à¦à¦° পà§à¦°à§Ÿà§‹à¦œà¦¨à§‡à¦° জনà§à¦¯à§‡" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s %s পà§à¦°à§Ÿà§‹à¦œà¦¨ হারিয়ে ফেলছে" #~ msgid ", Action: " #~ msgstr "কà§à¦°à¦¿à§Ÿà¦¾ (&A)" #~ msgid ", Trigger: " #~ msgstr ", টà§à¦°à¦¿à¦—ার:" #~ msgid "package" #~ msgstr "পà§à¦¯à¦¾à¦•েজ" #~ msgid "selection" #~ msgstr "নিরà§à¦¬à¦¾à¦šà¦¨" #~ msgid "pattern" #~ msgstr "ধাà¦à¦š" #~ msgid "product" #~ msgstr "পণà§à¦¯" #~ msgid "patch" #~ msgstr "পà§à¦¯à¦¾à¦š" #~ msgid "script" #~ msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" #~ msgid "message" #~ msgstr "বারà§à¦¤à¦¾" #~ msgid "atom" #~ msgstr "অণà§" #~ msgid "system" #~ msgstr "বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾" #~ msgid "Resolvable" #~ msgstr "রিজলভেবল" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "à¦à¦‡ রেজলিউশন পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾à¦•ে অবৈধ রূপে চিহà§à¦¨à¦¿à¦¤ করা হচà§à¦›à§‡à¥¤" #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "%s রিজলভেবলকে বিসà§à¦¥à¦¾à¦ªà¦¨à§‡à¦° অযোগà§à¦¯ রূপে চিহà§à¦¨à¦¿à¦¤ করা হচà§à¦›à§‡" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হওয়ার পরিকলà§à¦ªà¦¨à¦¾ আছে, কিনà§à¦¤à§ নিরà§à¦­à¦°à¦¤à¦¾ সমসà§à¦¯à¦¾à¦° কারণে à¦à¦Ÿà¦¾ সমà§à¦­à¦¬ হচà§à¦›à§‡ না।" #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "%s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না যেহেতৠà¦à¦Ÿà¦¾ ইতোমধà§à¦¯à§‡à¦‡ বিসà§à¦¥à¦¾à¦ªà¦¿à¦¤ হওয়া পà§à¦°à§Ÿà§‹à¦œà¦¨ বলে চিহà§à¦¨à¦¿à¦¤ " #~ "হয়েছে" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "%s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না যেহেতৠà¦à¦Ÿà¦¾ à¦à¦‡ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦° পà§à¦°à¦¤à¦¿ পà§à¦°à¦¯à§‹à¦œà§à¦¯ নয়।" #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "%s সà§à¦¥à¦¾à¦ªà¦¨ করতে পারে না যেহেতৠ%s ইতোমধà§à¦¯à§‡à¦‡ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হওয়া পà§à¦°à§Ÿà§‹à¦œà¦¨ বলে চিহà§à¦¨à¦¿à¦¤ " #~ "হয়েছে " #~ msgid "This would invalidate %s." #~ msgstr "à¦à¦Ÿà¦¾ %s কে অবৈধ করে দেবে।" #~ msgid "Establishing %s" #~ msgstr "%s সà§à¦¥à¦¾à¦ªà¦¨ করছে" #~ msgid "Installing %s" #~ msgstr "ইনসà§à¦Ÿà¦² করা হচà§à¦›à§‡ %s" #~ msgid "Updating %s to %s" #~ msgstr "%sকে %s ঠউনà§à¦¨à§€à¦¤ করছে" #~ msgid "Skipping %s: already installed" #~ msgstr "%s ডিঙিয়ে যাচà§à¦›à§‡ :আগে থেকেই ইনসà§à¦Ÿà¦² করা আছে" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "%s à¦à¦° কোনও বিকলà§à¦ª সà§à¦¥à¦¾à¦ªà¦¿à¦¤ পà§à¦°à¦¦à¦¾à¦¨à¦•ারী নেই" #~ msgid "for %s" #~ msgstr "%s à¦à¦° জনà§à¦¯" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "%s অপসারণ à¦à§œà¦¾à¦¨à§‹à¦° জনà§à¦¯à§‡ %s ঠউনà§à¦¨à§€à¦¤ হওয়া সমà§à¦­à¦¬ নয়।" #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾ বিসà§à¦¥à¦¾à¦ªà¦¿à¦¤ হওয়ার সূচী আছে।" #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦‡ %s à¦à¦° অপর à¦à¦•টি ভারà§à¦¸à¦¨ ইতোমধà§à¦¯à§‡à¦‡ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ আছে।" #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾ বিসà§à¦¥à¦¾à¦ªà¦¨à¦¯à§‹à¦—à§à¦¯ নয়। আরও বিবরণের জনà§à¦¯à§‡ à¦à¦Ÿà¦¾à¦•ে নিজে " #~ "থেকে সà§à¦¥à¦¾à¦ªà¦¨à§‡à¦° চেষà§à¦Ÿà¦¾ করà§à¦¨à¥¤ " #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾ লক হয়ে আছে।" #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾ রকà§à¦·à¦¿à¦¤ হওয়ার সূচী আছে।" #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s %s পà§à¦°à¦¦à¦¾à¦¨ করে, কিনà§à¦¤à§ à¦à¦Ÿà¦¾à¦° অনà§à¦¯ à¦à¦•টা আরà§à¦•িটেকচার আছে।" #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "%s à¦à¦° জনà§à¦¯ %s à¦à¦° পà§à¦°à§Ÿà§‹à¦œà¦¨ পূরণ করতে পারে না" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ রিজলভেবলের জনà§à¦¯ %s দরকার, তাই à¦à¦Ÿà¦¾ আনলিঙà§à¦•ড হবে না। " #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ রিজলভেবলের জনà§à¦¯ %s দরকার, তাই à¦à¦Ÿà¦¾ আনলিঙà§à¦•ড হবে না। " #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "%s (%s) নিয়ে বিবাদের জনà§à¦¯à§‡ অনà§à¦¯à¦¾à¦¨à§à¦¯ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হতে চলা %s অপসারণের পà§à¦°à§Ÿà§‹à¦œà¦¨" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "%s নিয়ে বিবাদের কারণে %s কে বিসà§à¦¥à¦¾à¦ªà¦¨à§‡à¦° অযোগà§à¦¯ রূপে চিহà§à¦¨à¦¿à¦¤ করা হচà§à¦›à§‡" #~ msgid "from %s" #~ msgstr "%s থেকে" #~ msgid " Error!" #~ msgstr "তà§à¦°à§à¦Ÿà¦¿" #~ msgid " Important!" #~ msgstr "জরà§à¦°à¦¿!" #~ msgid "%s depended on %s" #~ msgstr "%s নিরà§à¦­à¦° করে %s à¦à¦° উপরে" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s à¦à¦° %s দরকার" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s à¦à¦° %s দরকার" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ হয়েছে %s দà§à¦¬à¦¾à¦°à¦¾" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s à¦à¦° %s দরকার" #~ msgid "%s part of %s" #~ msgstr "%s, %s à¦à¦° অঙà§à¦—" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s à¦à¦° %s দরকার" #~ msgid "Unable to parse Url authority" #~ msgstr "Url অথরিটি পারà§à¦¸ করতে অকà§à¦·à¦®" #~ msgid "Ignore this requirement generally" #~ msgstr "কিছৠঅমীমাংসিত আবশà§à¦¯à¦•তা আছে..." #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "অনà§à¦¯à¦¾à¦¨à§à¦¯ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হতে চলা রিজলভেবলের জনà§à¦¯ %s দরকার, তাই à¦à¦Ÿà¦¾ আনলিঙà§à¦•ড হবে না। " #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "আপডেট সà§à¦¥à¦¾à¦ªà¦¨à¦¾ সমà§à¦ªà¦¾à¦¦à¦¨à§‡à¦° জনà§à¦¯à§‡ পà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ ফাইল তৈরি করতে পারে না।" #~ msgid "Unable to restore all sources." #~ msgstr "সকল উতà§â€à¦¸à¦—à§à¦²à¦¿ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করতে অকà§à¦·à¦®à¥¤" #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "কমপকà§à¦·à§‡ à¦à¦•টি উতà§â€à¦¸ ইতোমধà§à¦¯à§‡à¦‡ নথিবদà§à¦§ আছে, সঞà§à¦šà¦¿à¦¤ উতà§â€à¦¸à¦Ÿà¦¿ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করা যায় না।" #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "%s à¦à¦° নিরà§à¦­à¦°à¦¤à¦¾à¦—à§à¦²à¦¿ পূরণ করার জনà§à¦¯à§‡ %s সà§à¦¥à¦¾à¦ªà¦¨ করা যায় না" #~ msgid "%s dependend on %s" #~ msgstr "%s নিরà§à¦­à¦° করে %s à¦à¦° উপরে" #~ msgid "Reading index files" #~ msgstr "সূচীপতà§à¦° ফাইল পড়ছে" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°à¦¿à¦¤ repomd.xml ফাইল সà§à¦¬à¦¾à¦•à§à¦·à¦° যাচাইয়ে বà§à¦¯à¦°à§à¦¥ হয়েছে।" #~ msgid "Reading product from %s" #~ msgstr "%s থেকে পণà§à¦¯ পড়ছে" #~ msgid "Reading filelist from %s" #~ msgstr "%s থেকে ফাইলতালিকা পড়ছে" #~ msgid "Reading packages from %s" #~ msgstr "%s থেকে পà§à¦¯à¦¾à¦•েজ পড়ছে" #~ msgid "Reading selection from %s" #~ msgstr "%s থেকে নিরà§à¦¬à¦¾à¦šà¦¨ পড়ছে" #~ msgid "Reading pattern from %s" #~ msgstr "%s থেকে পà§à¦¯à¦¾à¦Ÿà¦¾à¦°à§à¦¨ পড়ছে" #~ msgid "Reading patches index %s" #~ msgstr "%s পà§à¦¯à¦¾à¦š ইনডেকà§à¦¸ পড়ছে" #~ msgid "Reading patch %s" #~ msgstr "%s পà§à¦¯à¦¾à¦š পড়ছে" #~ msgid "The script file failed the checksum test." #~ msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ ফাইল চেকসাম পরীকà§à¦·à¦¾à§Ÿ বà§à¦¯à¦°à§à¦¥ হয়েছে" #~ msgid "Reading packages file" #~ msgstr "পà§à¦¯à¦¾à¦•েজ ফাইল পড়ছে" #~ msgid "Reading translation: %s" #~ msgstr "অনà§à¦¬à¦¾à¦¦ পড়ছে: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "%s পà§à¦¯à¦¾à¦•েজের শà§à¦¦à§à¦§à¦¤à¦¾ যাচাই বà§à¦¯à¦°à§à¦¥ হয়েছে। আপনি কি à¦à¦Ÿà¦¾à¦•ে পà§à¦¨à¦°à¦¾à§Ÿ ডাউনলোড করার " #~ "চেষà§à¦Ÿà¦¾ করতে চান, নাকি সà§à¦¥à¦¾à¦ªà¦¨à¦¾ বাতিল করবেন?" #~ msgid " miss checksum." #~ msgstr " অবà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ চেকসাম।" #~ msgid " fails checksum verification." #~ msgstr "চেকসাম à¦à¦° শà§à¦¦à§à¦§à¦¤à¦¾ যাচাই বà§à¦¯à¦°à§à¦¥ হয়েছে" #~ msgid "Downloading %s" #~ msgstr "%s ডাউনলোড করছে" libzypp-17.7.0/po/bs.po000066400000000000000000002773461334444677500147250ustar00rootroot00000000000000# Bosnian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2001 SuSE GmbH. # Copyright (C) 2002 SuSE Linux AG. # Damir Bjelobradic , 2001. # Amila Akagic , 2002. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2002-07-23 18:27+0200\n" "Last-Translator: Damir Bjelobradic \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "nobody" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andora" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Ujedinjeni Arapski Emirati" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanija" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenija" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nizozemski Antili" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktik" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "AmeriÄka Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austrija" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australija" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "Kajmanska ostrva" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbejdžan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosna i Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "BangladeÅ¡" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgija" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bugarska" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Bruneji" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivija" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazil" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahami" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Butan" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Ostrvo Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Bocvana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Bjelorusija" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosova ostrva" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "CentralnoafriÄka Republika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å vicarska" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 #, fuzzy msgid "Cote D'Ivoire" msgstr "Obala SlonovaÄe" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook ostrva" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ÄŒile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbija" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kosta Rika" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Zelenortsko otoÄje" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "UskrÅ¡nje ostrvo" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kipar" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ÄŒeÅ¡ka Republika" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "NjemaÄka" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Džibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danska" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominikanska Republika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanska Republika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algerija" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonija" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipat" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Zapadna Sahara" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritreja" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Å panija" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopija" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finska" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsko otoÄje" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faroe Otoci" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francuska" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Ujedinjeno Kraljevstvo (Velika Britanija)" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Džordžija" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Francuska Gvineja" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "NjemaÄka" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Greenland" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambija" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Gvineja" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadelupa" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatorijalna Gvineja" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "GrÄka" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "South Georgia i South Sandwich ostrvo" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Gvineja Bisau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Gvajana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 #, fuzzy msgid "Heard Island and McDonald Islands" msgstr "Heard ostrvo i McDonaldova ostrva" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Hondoras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Hrvatska" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "MaÄ‘arska" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesija" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irska" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indija" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britansko-Indijska morska teritorija" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irak" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Iceland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italija" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenija" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgistan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "KamboÄ‘a" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komori" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 #, fuzzy msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 #, fuzzy msgid "North Korea" msgstr "Sjeverna Irska" #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "Južni pol" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvajt" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kajmanska ostrva" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazahstan" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 #, fuzzy msgid "Lao People's Democratic Republic" msgstr "Lao Narodna Demokratska Republika" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 #, fuzzy msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "LinhenÅ¡tajn" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Å ri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberija" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litvanija" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvija" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Liberija" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Moroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" # CG #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Kongo" # SM #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "MarÅ¡alova ostrva" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonija" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolija" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Sjeverna Marijanska ostrva" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinik" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritanija" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauricijus" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malavi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malezija" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibija" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Kaledonija" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk ostrvo" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigerija" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragva" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nizozemska" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "NorveÅ¡ka" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Novi Zeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Francuska Polinezija" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nova Gvineja" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipini" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poljska" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 #, fuzzy msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre and Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitkairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Riko" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 #, fuzzy msgid "Palestinian Territory" msgstr "Britansko-Indijska morska teritorija" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragvaj" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunija" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Srpski" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Ruska Federacija" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudijska Arabija" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomoska ostrva" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "SejÅ¡elsko otoÄje" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å vedska" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Saint Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenija" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard and Jan Mayen ostrva" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "SlovaÄka" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalija" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome i Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Surinam" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Svazilend" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 #, fuzzy msgid "Turks and Caicos Islands" msgstr "Turks i Caicos ostrva" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ÄŒad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 #, fuzzy msgid "French Southern Territories" msgstr "Francuske Južne Teritorije" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tajland" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistan" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turska" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad i Tobago" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" # TW # fuzzy #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tajland" #. :TWN:158: #: zypp/CountryCode.cc:383 #, fuzzy msgid "Tanzania" msgstr "Tasmanija" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajina" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "SAD" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Urugvaj" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikan (Sveta Zemlja)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 #, fuzzy msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venecuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 #, fuzzy msgid "British Virgin Islands" msgstr "DjeviÄansko otoÄje (U.S.)" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "DjeviÄansko otoÄje (U.S.)" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vijetnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis i Futuna ostrva" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Južna Afrika" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambija" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabve" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "Izbrii" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Naredba koja se izvrÅ¡ava pri spajanju" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 #, fuzzy msgid "Afar" msgstr "Afrika" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "AzerbejdÄ‘anski" #. language code: ace #: zypp/LanguageCode.cc:165 #, fuzzy msgid "Achinese" msgstr "Kineski" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 #, fuzzy msgid "Akan" msgstr "AzerbejdÄ‘anski" #. language code: akk #: zypp/LanguageCode.cc:183 #, fuzzy msgid "Akkadian" msgstr "AzerbejdÄ‘anski" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 #, fuzzy msgid "Albanian" msgstr "Albanija" #. language code: ale #: zypp/LanguageCode.cc:189 #, fuzzy msgid "Aleut" msgstr "Aleuta" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "Odaberite vaÅ¡ jezik:" #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "Južna Afrika" #. language code: amh am #: zypp/LanguageCode.cc:195 #, fuzzy msgid "Amharic" msgstr "Afrika" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "Jezik" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arapski" #. language code: arc #: zypp/LanguageCode.cc:203 #, fuzzy msgid "Aramaic" msgstr "Arapski" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 #, fuzzy msgid "Armenian" msgstr "Armenija" # MR #. language code: arn #: zypp/LanguageCode.cc:211 #, fuzzy msgid "Araucanian" msgstr "Mauritanija" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 #, fuzzy msgid "Assamese" msgstr "Poruke" #. language code: ast #: zypp/LanguageCode.cc:221 #, fuzzy msgid "Asturian" msgstr "Austrija" #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "Australija" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "Australija" #. language code: ava av #: zypp/LanguageCode.cc:227 #, fuzzy msgid "Avaric" msgstr "Arapski" #. language code: ave ae #: zypp/LanguageCode.cc:229 #, fuzzy msgid "Avestan" msgstr "Aleuta" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 #, fuzzy msgid "Aymara" msgstr "Myanmar" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "AzerbejÄ‘anski" #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "Kanada" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "Jezik" #. language code: bak ba #: zypp/LanguageCode.cc:241 #, fuzzy msgid "Bashkir" msgstr "Brazil" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 #, fuzzy msgid "Bambara" msgstr "Smarkand" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "Kineski" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskijski" #. language code: bas #: zypp/LanguageCode.cc:253 #, fuzzy msgid "Basa" msgstr "Baskijski" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bjeloruski" #. language code: bem #: zypp/LanguageCode.cc:261 #, fuzzy msgid "Bemba" msgstr "Bermuda" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 #, fuzzy msgid "Bengali" msgstr "Senegal" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 #, fuzzy msgid "Bihari" msgstr "Bahrein" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" # BJ #. language code: bin #: zypp/LanguageCode.cc:273 #, fuzzy msgid "Bini" msgstr "Benin" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" # BJ #. language code: bos bs #: zypp/LanguageCode.cc:281 #, fuzzy msgid "Bosnian" msgstr "Benin" # BR #. language code: bra #: zypp/LanguageCode.cc:283 #, fuzzy msgid "Braj" msgstr "Brazil" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonski" #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "Indonesija" #. language code: bua #: zypp/LanguageCode.cc:289 #, fuzzy msgid "Buriat" msgstr "Bugarska" #. language code: bug #: zypp/LanguageCode.cc:291 #, fuzzy msgid "Buginese" msgstr "Kineski" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bugarski" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 #, fuzzy msgid "Blin" msgstr "Belgijski" # TD #. language code: cad #: zypp/LanguageCode.cc:301 #, fuzzy msgid "Caddo" msgstr "ÄŒad" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 #, fuzzy msgid "Carib" msgstr "Maorski" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalanski" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 #, fuzzy msgid "Cebuano" msgstr "Libanon" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 #, fuzzy msgid "Chamorro" msgstr "Komori" #. language code: chb #: zypp/LanguageCode.cc:317 #, fuzzy msgid "Chibcha" msgstr "Kina" #. language code: che ce #: zypp/LanguageCode.cc:319 #, fuzzy msgid "Chechen" msgstr "ÄŒeÅ¡ki" #. language code: chg #: zypp/LanguageCode.cc:321 #, fuzzy msgid "Chagatai" msgstr "Å angaj" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kineski" #. language code: chk #: zypp/LanguageCode.cc:327 #, fuzzy msgid "Chuukese" msgstr "Kineski" #. language code: chm #: zypp/LanguageCode.cc:329 #, fuzzy msgid "Mari" msgstr "Maorski" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "Jezik" #. language code: cop #: zypp/LanguageCode.cc:347 #, fuzzy msgid "Coptic" msgstr "Kosta Rika" #. language code: cor kw #: zypp/LanguageCode.cc:349 #, fuzzy msgid "Cornish" msgstr "Irski" #. language code: cos co #: zypp/LanguageCode.cc:351 #, fuzzy msgid "Corsican" msgstr "Kosta Rika" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 #, fuzzy msgid "Cree" msgstr "&Napravi" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒeÅ¡ki" #. language code: dak #: zypp/LanguageCode.cc:373 #, fuzzy msgid "Dakota" msgstr "Dakar" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danski" #. language code: dar #: zypp/LanguageCode.cc:377 #, fuzzy msgid "Dargwa" msgstr "Darvin" #. language code: day #: zypp/LanguageCode.cc:379 #, fuzzy msgid "Dayak" msgstr "Dakar" #. language code: del #: zypp/LanguageCode.cc:381 #, fuzzy msgid "Delaware" msgstr "Hardware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 #, fuzzy msgid "Dinka" msgstr "Dominikanska Republika" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 #, fuzzy msgid "Dogri" msgstr "Maorski" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "Srpski" #. language code: dua #: zypp/LanguageCode.cc:397 #, fuzzy msgid "Duala" msgstr "Palau" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandski" #. language code: dyu #: zypp/LanguageCode.cc:405 #, fuzzy msgid "Dyula" msgstr "Dubai" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 #, fuzzy msgid "Dzongkha" msgstr "Tonga" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engleski" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonski" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 #, fuzzy msgid "Fang" msgstr "Zastave" #. language code: fao fo #: zypp/LanguageCode.cc:431 #, fuzzy msgid "Faroese" msgstr "Faroe Otoci" #. language code: fat #: zypp/LanguageCode.cc:433 #, fuzzy msgid "Fanti" msgstr "Atlantik" #. language code: fij fj #: zypp/LanguageCode.cc:435 #, fuzzy msgid "Fijian" msgstr "Fidži" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "Filipini" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finski" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francuski" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 #, fuzzy msgid "Frisian" msgstr "Francuska" #. language code: ful ff #: zypp/LanguageCode.cc:455 #, fuzzy msgid "Fulah" msgstr "Zastave" #. language code: fur #: zypp/LanguageCode.cc:457 #, fuzzy msgid "Friulian" msgstr "Finska" #. language code: gaa #: zypp/LanguageCode.cc:459 #, fuzzy msgid "Ga" msgstr "Guam" # GA #. language code: gay #: zypp/LanguageCode.cc:461 #, fuzzy msgid "Gayo" msgstr "Gabon" #. language code: gba #: zypp/LanguageCode.cc:463 #, fuzzy msgid "Gbaya" msgstr "Gaza" #. language code: gem #: zypp/LanguageCode.cc:465 #, fuzzy msgid "Germanic (Other)" msgstr "NjemaÄki (Swiss)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr "Džordžija" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "NjemaÄki" #. language code: gez #: zypp/LanguageCode.cc:475 #, fuzzy msgid "Geez" msgstr "GrÄki" #. language code: gil #: zypp/LanguageCode.cc:477 #, fuzzy msgid "Gilbertese" msgstr "Vijetnamski" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 #, fuzzy msgid "Gaelic" msgstr "Mali" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irski" #. language code: glg gl #: zypp/LanguageCode.cc:483 #, fuzzy msgid "Galician" msgstr "Vatikan" #. language code: glv gv #: zypp/LanguageCode.cc:485 #, fuzzy msgid "Manx" msgstr "Manila" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" # GA #. language code: gon #: zypp/LanguageCode.cc:491 #, fuzzy msgid "Gondi" msgstr "Gabon" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" # GA #. language code: grb #: zypp/LanguageCode.cc:497 #, fuzzy msgid "Grebo" msgstr "Gabon" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 #, fuzzy msgid "Guarani" msgstr "MaÄ‘arski" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 #, fuzzy msgid "Gwich'in" msgstr "MiÄigen" #. language code: hai #: zypp/LanguageCode.cc:511 #, fuzzy msgid "Haida" msgstr "Hardware" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "Haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 #, fuzzy msgid "Hawaiian" msgstr "Havaji" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebrejski" #. language code: her hz #: zypp/LanguageCode.cc:521 #, fuzzy msgid "Herero" msgstr "Hebrejski" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" # HT #. language code: hin hi #: zypp/LanguageCode.cc:527 #, fuzzy msgid "Hindi" msgstr "Haiti" # HT #. language code: hit #: zypp/LanguageCode.cc:529 #, fuzzy msgid "Hittite" msgstr "Haiti" #. language code: hmn #: zypp/LanguageCode.cc:531 #, fuzzy msgid "Hmong" msgstr "Hong Kong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "Srpski" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "MaÄ‘arski" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 #, fuzzy msgid "Iban" msgstr "Irak" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandski" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "Litvanija" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 #, fuzzy msgid "Interlingue" msgstr "Nastavi" #. language code: ilo #: zypp/LanguageCode.cc:559 #, fuzzy msgid "Iloko" msgstr "Tokio" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Infoneziski" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 #, fuzzy msgid "Ingush" msgstr "Engleski" #. language code: ipk ik #: zypp/LanguageCode.cc:571 #, fuzzy msgid "Inupiaq" msgstr "Indija" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "Odaberite vaÅ¡ jezik:" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italijanski" #. language code: jav jv #: zypp/LanguageCode.cc:579 #, fuzzy msgid "Javanese" msgstr "Japanski" #. language code: jbo #: zypp/LanguageCode.cc:581 #, fuzzy msgid "Lojban" msgstr "Libanon" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japanski" #. language code: jpr #: zypp/LanguageCode.cc:585 #, fuzzy msgid "Judeo-Persian" msgstr "Infoneziski" #. language code: jrb #: zypp/LanguageCode.cc:587 #, fuzzy msgid "Judeo-Arabic" msgstr "Arapski" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 #, fuzzy msgid "Kabyle" msgstr "UkljuÄeno" #. language code: kac #: zypp/LanguageCode.cc:593 #, fuzzy msgid "Kachin" msgstr "Bahrein" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" # GM #. language code: kam #: zypp/LanguageCode.cc:597 #, fuzzy msgid "Kamba" msgstr "Gambija" #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "Kanada" #. language code: kar #: zypp/LanguageCode.cc:601 #, fuzzy msgid "Karen" msgstr "Korejski" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 #, fuzzy msgid "Kanuri" msgstr "Kurdski" # MW #. language code: kaw #: zypp/LanguageCode.cc:607 #, fuzzy msgid "Kawi" msgstr "Malavi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 #, fuzzy msgid "Kazakh" msgstr "Kazahstan" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 #, fuzzy msgid "Khasi" msgstr "Tajlandski" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 #, fuzzy msgid "Khotanese" msgstr "Kineski" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 #, fuzzy msgid "Kirghiz" msgstr "DjeviÄanska ostrva" #. language code: kmb #: zypp/LanguageCode.cc:627 #, fuzzy msgid "Kimbundu" msgstr "Katmandu" #. language code: kok #: zypp/LanguageCode.cc:629 #, fuzzy msgid "Konkani" msgstr "Korejski" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 #, fuzzy msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Korejski" #. language code: kos #: zypp/LanguageCode.cc:637 #, fuzzy msgid "Kosraean" msgstr "Korejski" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 #, fuzzy msgid "Kurukh" msgstr "Turski" #. language code: kua kj #: zypp/LanguageCode.cc:647 #, fuzzy msgid "Kuanyama" msgstr "Panama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdski" # KE #. language code: kut #: zypp/LanguageCode.cc:653 #, fuzzy msgid "Kutenai" msgstr "Kenija" #. language code: lad #: zypp/LanguageCode.cc:655 #, fuzzy msgid "Ladino" msgstr "Libanon" # UG #. language code: lah #: zypp/LanguageCode.cc:657 #, fuzzy msgid "Lahnda" msgstr "Uganda" # GM #. language code: lam #: zypp/LanguageCode.cc:659 #, fuzzy msgid "Lamba" msgstr "Gambija" #. language code: lao lo #: zypp/LanguageCode.cc:661 #, fuzzy msgid "Lao" msgstr "Libanon" #. language code: lat la #: zypp/LanguageCode.cc:663 #, fuzzy msgid "Latin" msgstr "Latviski" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latviski" #. language code: lez #: zypp/LanguageCode.cc:667 #, fuzzy msgid "Lezghian" msgstr "Belgijski" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "Luksemburg" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 #, fuzzy msgid "Lingala" msgstr "Angola" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litvanski" # CG #. language code: lol #: zypp/LanguageCode.cc:675 #, fuzzy msgid "Mongo" msgstr "Kongo" #. language code: loz #: zypp/LanguageCode.cc:677 #, fuzzy msgid "Lozi" msgstr "Prijava" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "Luksemburg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "Gana" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 #, fuzzy msgid "Lunda" msgstr "Zvuk" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "Tajlandski" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonski" #. language code: mad #: zypp/LanguageCode.cc:699 #, fuzzy msgid "Madurese" msgstr "Maltski" # MW #. language code: mag #: zypp/LanguageCode.cc:701 #, fuzzy msgid "Magahi" msgstr "Malavi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 #, fuzzy msgid "Marshallese" msgstr "MarÅ¡alova ostrva" # ML #. language code: mai #: zypp/LanguageCode.cc:705 #, fuzzy msgid "Maithili" msgstr "Mali" # MG #. language code: mak #: zypp/LanguageCode.cc:707 #, fuzzy msgid "Makasar" msgstr "Madagaskar" #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "Malezija" #. language code: man #: zypp/LanguageCode.cc:711 #, fuzzy msgid "Mandingo" msgstr "Upozorenje" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maorski" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 #, fuzzy msgid "Marathi" msgstr "Maorski" # MW #. language code: mas #: zypp/LanguageCode.cc:721 #, fuzzy msgid "Masai" msgstr "Malavi" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "Malta" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "Myanmar" #. language code: men #: zypp/LanguageCode.cc:731 #, fuzzy msgid "Mende" msgstr "Mod" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "Odaberite vaÅ¡ jezik:" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "Madagaskar" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltski" #. language code: mnc #: zypp/LanguageCode.cc:747 #, fuzzy msgid "Manchu" msgstr "&Pokreni" #. language code: mni #: zypp/LanguageCode.cc:749 #, fuzzy msgid "Manipuri" msgstr "Maorski" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "Managva" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "Moldova" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 #, fuzzy msgid "Mongolian" msgstr "Mongolija" #. language code: mos #: zypp/LanguageCode.cc:759 #, fuzzy msgid "Mossi" msgstr "Maorski" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "Jezik" #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "Jezik" #. language code: mus #: zypp/LanguageCode.cc:765 #, fuzzy msgid "Creek" msgstr "GrÄki" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 #, fuzzy msgid "Mirandese" msgstr "Maine" #. language code: mwr #: zypp/LanguageCode.cc:769 #, fuzzy msgid "Marwari" msgstr "Maorski" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "Managva" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "Sjeverna Irska" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 #, fuzzy msgid "Ndonga" msgstr "Tonga" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "NjemaÄki" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 #, fuzzy msgid "Nepali" msgstr "Nepal" # NP #. language code: new #: zypp/LanguageCode.cc:795 #, fuzzy msgid "Nepal Bhasa" msgstr "Nepal" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" # NU #. language code: niu #: zypp/LanguageCode.cc:801 #, fuzzy msgid "Niuean" msgstr "Niue" #. language code: nno nn #: zypp/LanguageCode.cc:803 #, fuzzy msgid "Norwegian Nynorsk" msgstr "NorveÅ¡ki" #. language code: nob nb #: zypp/LanguageCode.cc:805 #, fuzzy msgid "Norwegian Bokmal" msgstr "NorveÅ¡ki" # TO #. language code: nog #: zypp/LanguageCode.cc:807 #, fuzzy msgid "Nogai" msgstr "Tonga" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "NorveÅ¡ki" #. language code: nso #: zypp/LanguageCode.cc:813 #, fuzzy msgid "Northern Sotho" msgstr "Sjeverna Irska" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "Jezik" #. language code: nwc #: zypp/LanguageCode.cc:817 #, fuzzy msgid "Classical Newari" msgstr "Ime klase" #. language code: nya ny #: zypp/LanguageCode.cc:819 #, fuzzy msgid "Chichewa" msgstr "ÄŒile" #. language code: nym #: zypp/LanguageCode.cc:821 #, fuzzy msgid "Nyamwezi" msgstr "Naziv" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 #, fuzzy msgid "Nyoro" msgstr "Sjever" #. language code: nzi #: zypp/LanguageCode.cc:827 #, fuzzy msgid "Nzima" msgstr "Lima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 #, fuzzy msgid "Oriya" msgstr "Surinam" #. language code: orm om #: zypp/LanguageCode.cc:835 #, fuzzy msgid "Oromo" msgstr "root" #. language code: osa #: zypp/LanguageCode.cc:837 #, fuzzy msgid "Osage" msgstr "Poruke" #. language code: oss os #: zypp/LanguageCode.cc:839 #, fuzzy msgid "Ossetian" msgstr "Ruski" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "Jezik" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 #, fuzzy msgid "Pangasinan" msgstr "MaÄ‘arski" #. language code: pal #: zypp/LanguageCode.cc:849 #, fuzzy msgid "Pahlavi" msgstr "Palau" #. language code: pam #: zypp/LanguageCode.cc:851 #, fuzzy msgid "Pampanga" msgstr "Paragvaj" #. language code: pan pa #: zypp/LanguageCode.cc:853 #, fuzzy msgid "Panjabi" msgstr "Panama" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "Palau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 #, fuzzy msgid "Persian" msgstr "Srpski" #. language code: phi #: zypp/LanguageCode.cc:865 #, fuzzy msgid "Philippine (Other)" msgstr "Filipini" #. language code: phn #: zypp/LanguageCode.cc:867 #, fuzzy msgid "Phoenician" msgstr "Slovenski" # ML #. language code: pli pi #: zypp/LanguageCode.cc:869 #, fuzzy msgid "Pali" msgstr "Mali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poljski" #. language code: pon #: zypp/LanguageCode.cc:873 #, fuzzy msgid "Pohnpeian" msgstr "Infoneziski" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugalski" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "Jezik" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 #, fuzzy msgid "Pushto" msgstr "&PrilagoÄ‘eno" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 #, fuzzy msgid "Rajasthani" msgstr "Kazahstan" #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "Japan" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "Rumunija" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumunjki" # RE #. language code: run rn #: zypp/LanguageCode.cc:901 #, fuzzy msgid "Rundi" msgstr "Reunion" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ruski" #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "Kanada" #. language code: sag sg #: zypp/LanguageCode.cc:907 #, fuzzy msgid "Sango" msgstr "Sajgon" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Jezik" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 #, fuzzy msgid "Sasak" msgstr "Samoa" #. language code: sat #: zypp/LanguageCode.cc:921 #, fuzzy msgid "Santali" msgstr "Å angaj" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Srpski" #. language code: scn #: zypp/LanguageCode.cc:927 #, fuzzy msgid "Sicilian" msgstr "MiÄigen" #. language code: sco #: zypp/LanguageCode.cc:929 #, fuzzy msgid "Scots" msgstr "Jug" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Hrvatski" #. language code: sel #: zypp/LanguageCode.cc:935 #, fuzzy msgid "Selkup" msgstr "Pomoć" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "Jezik" # GH #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "Gana" #. language code: sid #: zypp/LanguageCode.cc:945 #, fuzzy msgid "Sidamo" msgstr "Samoa" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Odaberite vaÅ¡ jezik:" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "SlovaÄki" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenski" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 #, fuzzy msgid "Northern Sami" msgstr "Sjeverna Irska" #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Jezik" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 #, fuzzy msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 #, fuzzy msgid "Shona" msgstr "Slovenija" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 #, fuzzy msgid "Soninke" msgstr "Nastavi" #. language code: sog #: zypp/LanguageCode.cc:981 #, fuzzy msgid "Sogdian" msgstr "Prijava" # SO #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "Somalija" #. language code: son #: zypp/LanguageCode.cc:985 #, fuzzy msgid "Songhai" msgstr "Å angaj" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Å panski" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "Mauritanija" #. language code: srr #: zypp/LanguageCode.cc:993 #, fuzzy msgid "Serer" msgstr "Servis" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 #, fuzzy msgid "Swati" msgstr "Haiti" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 #, fuzzy msgid "Sundanese" msgstr "Sudan" #. language code: sus #: zypp/LanguageCode.cc:1003 #, fuzzy msgid "Susu" msgstr "Status" #. language code: sux #: zypp/LanguageCode.cc:1005 #, fuzzy msgid "Sumerian" msgstr "Srpski" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 #, fuzzy msgid "Swahili" msgstr "Svazilend" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å vedski" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 #, fuzzy msgid "Syriac" msgstr "Surinam" #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "Tahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamilski" #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "Katar" #. language code: tel te #: zypp/LanguageCode.cc:1021 #, fuzzy msgid "Telugu" msgstr "Belgija" #. language code: tem #: zypp/LanguageCode.cc:1023 #, fuzzy msgid "Timne" msgstr "Vremenska zona" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 #, fuzzy msgid "Tetum" msgstr "&Testiraj" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "Tajlandski" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tajlandski" # TW # fuzzy #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 #, fuzzy msgid "Tibetan" msgstr "Tajland" # NE #. language code: tig #: zypp/LanguageCode.cc:1039 #, fuzzy msgid "Tigre" msgstr "Niger" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 #, fuzzy msgid "Tigrinya" msgstr "Nigerija" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 #, fuzzy msgid "Klingon" msgstr "Sajgon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 #, fuzzy msgid "Tamashek" msgstr "TaÅ¡kent" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 #, fuzzy msgid "Tonga (Tonga Islands)" msgstr "Solomoska ostrva" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 #, fuzzy msgid "Tsimshian" msgstr "Ruski" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "Bocvana" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 #, fuzzy msgid "Tsonga" msgstr "Tonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "Turska" #. language code: tum #: zypp/LanguageCode.cc:1067 #, fuzzy msgid "Tumbuka" msgstr "Timbuktu" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "Jezik" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turski" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 #, fuzzy msgid "Tuvinian" msgstr "Tunisia" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 #, fuzzy msgid "Ugaritic" msgstr "Haiti" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 #, fuzzy msgid "Ukrainian" msgstr "Ukrajina" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 #, fuzzy msgid "Uzbek" msgstr "Uzbekistan" #. language code: vai #: zypp/LanguageCode.cc:1097 #, fuzzy msgid "Vai" msgstr "Vatikan" # VN # fuzzy #. language code: ven ve #: zypp/LanguageCode.cc:1099 #, fuzzy msgid "Venda" msgstr "Vijetnam" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vijetnamski" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 #, fuzzy msgid "Votic" msgstr "Vatikan" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Managva" #. language code: wal #: zypp/LanguageCode.cc:1109 #, fuzzy msgid "Walamo" msgstr "Valonski" #. language code: war #: zypp/LanguageCode.cc:1111 #, fuzzy msgid "Waray" msgstr "Paragvaj" #. language code: was #: zypp/LanguageCode.cc:1113 #, fuzzy msgid "Washo" msgstr "Welsh" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Welsh" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "Odaberite vaÅ¡ jezik:" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Valonski" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 #, fuzzy msgid "Yapese" msgstr "Japanski" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 #, fuzzy msgid "Yoruba" msgstr "Aruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "Jezik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 #, fuzzy msgid "Zenaga" msgstr "Grenada" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 #, fuzzy msgid "Zhuang" msgstr "Butan" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 #, fuzzy msgid "Zuni" msgstr "Tunis" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Couldn't open file: %s." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Ne mogu pokrenuti naredbu \"%s\"" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ne mogu pokrenuti naredbu \"%s\"" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nepoznat" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "&Instaliraj" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ne mogu pokrenuti naredbu \"%s\"" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Instaliram driver..." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ne mogu pokrenuti naredbu \"%s\"" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" # %s is either BOOTP or DHCP #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "%s podeÅ¡avanje nije uspjelo." #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "Nova instalacija" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Instaliram driver..." #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "&Nemoj instalirati" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "Instaliram driver..." #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Instaliram driver..." #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Instaliram driver..." #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "Izbrii" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Instaliram driver..." #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" # %s is either BOOTP or DHCP #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "%s podeÅ¡avanje nije uspjelo." #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "niste spojeni" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "channel to channel konekcija" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Editor konfiguracijskih datoteka" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "&Dodatne informacije za korisnika" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "rpm output:" #~ msgstr "" #~ "\n" #~ "IzvjeÅ¡taj:" #, fuzzy #~ msgid "%s install failed" #~ msgstr "Nova instalacija" #, fuzzy #~ msgid "%s installed ok" #~ msgstr "&Da, instaliraj" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "install %s" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." #, fuzzy #~ msgid "No need to install %s" #~ msgstr "&Da, instaliraj" #, fuzzy #~ msgid ", Action: " #~ msgstr "3D ubrzanje:" #, fuzzy #~ msgid "Establishing %s" #~ msgstr "Instaliram driver..." #, fuzzy #~ msgid " Error!" #~ msgstr "GreÅ¡ka" #~ msgid "Ok" #~ msgstr "U redu" #, fuzzy #~ msgid "Default" #~ msgstr "&Podrazumjevani" #, fuzzy #~ msgid "to be installed (soft)" #~ msgstr "&Bootaj instalirani sistem" #, fuzzy #~ msgid "to be uninstalled" #~ msgstr "&Da, instaliraj" libzypp-17.7.0/po/ca.po000066400000000000000000003667761334444677500147120ustar00rootroot00000000000000# Catalan message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # Jaume Badiella , 2001. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-14 14:19+0000\n" "Last-Translator: David Medina \n" "Language-Team: Catalan " "\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Excepció de Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipus dubtós \"%s\" per a %u byte checksum \"%s\"" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "País desconegut: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Sense codi" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" # AE #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Unió dels Emirats Àrabs" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" # AL #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albània" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armènia" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antilles Holandeses" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antàrtida" # AR #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Americana" # AT #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Àustria" # AU #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Austràlia" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Illes Aland" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaidjan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bòsnia i Hercegovina" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangla Desh" # BE #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Bèlgica" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" # BG #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgària" # BH #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benín" # BM #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudes" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" # BO #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolívia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahames" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Illa Bouvet" # BW #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" # BY #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Bielorússia" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" # CA #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canadà" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Illes Cocos (Keeling)" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "República Centreafricana" # CH #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Suïssa" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Costa d'Ivori" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Illes Cook" # CL #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Xile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camerun" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Xina" # CO #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colòmbia" # CR #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cap Verd" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Illa Christmas" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Xipre" # CZ #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "República Txeca" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Alemanya" # DJ #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" # DK #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dinamarca" # DM #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" # DO #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "República Dominicana" # DZ #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algèria" # EC #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Equador" # EE #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estònia" # EG #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipte" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sàhara Occidental" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" # ES #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Espanya" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiòpia" # FI #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlàndia" # FJ #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Illes Malvines (Falkland)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Estats federats de Micronèsia" # FO #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Illes Fèroe" # FR #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "França" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "França metropolitana" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Regne Unit" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" # GE #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Geòrgia" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guaiana Francesa" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" # GI #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" # GL #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenlàndia" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gàmbia" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" # GP #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadalupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinea Equatorial" # GR #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grècia" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Illes Geòrgia del Sud i Sandwich del Sud" # GT #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" # GU #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea Bissau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" # HK #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Illa Heard i illes McDonald" # HN #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Hondures" # HR #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croàcia" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haití" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hongria" # ID #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonèsia" # IE #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" # IL #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Illa de l'home" # IN #: zypp/CountryCode.cc:261 msgid "India" msgstr "Ãndia" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Territori Britànic de l'Oceà Ãndic" # IQ #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraq" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" # IS #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islàndia" # IT #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Itàlia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" # JM # fuzzy #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" # JO #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordània" # JP #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japó" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirguizistan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodja" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comores" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Christopher i Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Corea del Nord" # ZA #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Corea del Sud" # KW #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Illes Caiman" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakhstan" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "República democràtica popular de Laos" # LB #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Líban" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" # LI #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libèria" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" # LT #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituània" # LU #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" # LV #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letònia" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libèria" # MA #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marroc" # MC #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Mònaco" # MD #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldàvia" # CG #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" # SM #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Sant Martí" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Illes Marshall" # MK #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedònia" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongòlia" # MO # fuzzy #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macau" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Illes Mariannes del Nord" # MQ #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritània" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" # MT #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Maurici" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" # MX #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mèxic" # MY #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malàisia" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Moçambic" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namíbia" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Caledònia" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Níger" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Illa Norfolk" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigèria" # NI #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" # NL #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Països Baixos" # NO #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noruega" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" # NR #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauruà" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" # NZ #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nova Zelanda" # OM #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" # PA #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panamà" # PE #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perú" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinèsia francesa" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nova Guinea" # PH #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipines" # PK #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" # PL #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polònia" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint-Pierre-et-Miquelon" # PN #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" # PR #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Territori palestí" # PT #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" # PW #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" # PY #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguai" # QA #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Illa de la Reunió" # RO #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Sèrbia" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Rússia" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" # SA #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Aràbia Saudita" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Illes Salomó" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" # SD #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" # SE #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suècia" # SG #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Santa Helena" # SI #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Eslovènia" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Illes Svalbard i Jan Mayen" # SK #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Eslovàquia" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somàlia" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome i Príncipe" # SV #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Síria" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swazilàndia" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Illes Turks i Caicos" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Txad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Territoris Francesos del Sud" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" # TH #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailàndia" # TJ #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadjikistan" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelauès" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" # TN #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunísia" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor Oriental" # TR #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turquia" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinitat i Tobago" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvaluà" # TW # fuzzy #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tailàndia" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzània" # UA #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucraïna" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Illes Perifèriques Menors dels EUA" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Estats Units" # UY #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguai" # UZ #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Ciutat del Vaticà (Santa Seu)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent i les Grenadines" # VE #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Veneçuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Illes Verges Britàniques" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Illes Verges Americanes" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Illes Wallis i Futuna" # WS #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" # YE #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Iemen" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" # ZA #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sud-àfrica" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zàmbia" # ZW #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Proporciona" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Necessita prèviament" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Requereix" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Té conflicte" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Fa obsolet" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recomana" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Suggereix" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Millora" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Complementa" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "No es pot obrir pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "No es pot obrir pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "No es pot fer chroot a \"%s\" (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "No es pot fer chdir a \"%s\" dins chroot \"%s\" (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "No es pot fer chdir a \"%s\" (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "No es pot executar \"%s\" (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "No es pot bifurcar (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "L'ordre ha acabat amb l'estatus %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "L'ordre s'ha aturat a causa del senyal %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "L'ordre s'ha executat sense que hi hagués cap error conegut." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "S'ha provat d'importar la clau no existent %s a l'anell de claus %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Ha fallat importar la clau." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Error a l'hora d'esborrar la clau." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "El fitxer de la firma diginal %s no s'ha trobat" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "L'idioma és desconegut: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Àfar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhàzia" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Atjeh" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adigué" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Llengües afroasiàtiques (altres)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Àkan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Accadi" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanès" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutià" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Llengües algonquines" # ZA #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altaic meridional" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amhàric" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Anglès antic (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Llengües Apatxe" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Àrab" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Arameu" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonès" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeni" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucà" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Llengües artificials (altres)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arauac" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamès" # AT #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturià" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Llengües atapascanes" # AU #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Llengües australianes" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Àvar" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avèstic" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Àzeri" # CA #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Llengües bamileké" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Baixkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Balutxi" # GM #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinès" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basc" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Llengües bàltiques (altres)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorús" # BM #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalí" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Llengües berbers (altres)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" # BH #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" # BJ #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Blackfoot" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Llengües bantus (altres)" # BW #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosni" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Francès" # ID #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonèsia)" # BG #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugui" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Búlgar" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birmà" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Bilin" # TD #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Llengües ameríndies d'Amèrica Central (altres)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Català" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Llengües caucàsiques (altres)" # LB #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Llengües cèltiques (altres)" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" # CN #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Txibtxa" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Txetxè" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Txagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Xinès" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" # ML #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Pidgin Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Eslavònic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Txuvaix" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Xeienne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Llengües txàmiques" # CR #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Copte" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Còrnic" # CR #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Cors" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Criolls i pidgins (basats en l'anglès) (altres)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Criolls i pidgins (basats en el francès) (altres)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Criolls i pidgins (basats en el portuguès) (altres)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tàrtar de Crimea" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Llengües criolles i pidgins (altres)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Caixubi" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Llengües cuixítiques (altres)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Txec" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danès" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Darguà" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Daiak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (atapascà)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Llengües dravidianes (altres)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Baix sòrab" # PW #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Neerlandès mitjà (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandès" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egipci antic" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamita" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Anglès" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Anglès mitjà (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonià" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Feroès" # HT #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" # FJ #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijià" # PH #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Pilipí" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finès" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Llengües finoúgriques (altres)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francès" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francès mitjà (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francès antic (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisó" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Ful" # FI #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friülès" # GU #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" # LY # fuzzy #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Llengües germàniques (altres)" # GE #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgià" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Alemany" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Gueez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertès" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaèlic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandès" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Gallec" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Alt alemany mitjà (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Alt alemany antic (ca.750-1050)" # IN #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gòtic" # GA #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grec antic (fins el 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grec modern (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaraní" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Crioll haitià" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Haussa" # HT #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaià" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreu" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" # IN #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hitita" # TO #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Alt Sorab" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hongarès" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandès" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" # LT #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Ilocà" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Associació de la Llengua Auxiliar Internacional)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Llengües indoàries (altres)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesi" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Llengües indoeuropees (altres)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingúix" # IN #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Llengües iràniques (altres)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Iroquès" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italià" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanès" # LB #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonès" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeopersa" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeoàrab" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Karakalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Cabilenc" # BH #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Grenlandès" # GM #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" # CA #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Caixmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" # MW #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardí" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Llengües khoisanes (altres)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanès" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuiu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirguís" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Congo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreà" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Balkar, karatxai" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" # PA #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kúmik" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurd" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" # LB #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Judeocastellà" # UG #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Panjabi occidental" # GM #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" # LB #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laosià" # LV #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Llatí" # LV #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letó" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lesguià" # LU #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburguès" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" # LT #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituà" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" # LU #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburguès" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseño" # SD #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (de Kenya i Tanzània)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedònic" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurès" # MW #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallès" # ML #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" # MY #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malaialam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Manding" # ML #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Llengües autronèsies (altres)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Massai" # MT #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malai" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Mordovià moksha" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Gaèlic irlandès mitjà (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Micmac" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Llengües mixtes" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Llengües monkhmers (altres)" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgaix" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltès" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manxú" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Llengües manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" # MD #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldau" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Llengües múltiples" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Llengües mundes" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandès" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Llengües maies" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Mordovià erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nàhuatl" # MP #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Llengües ameríndies septentrionals (altres)" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolità" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele meridional" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele septentrional" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Baix alemany" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalès" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Newari" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Llengües nigerokurdufanianes (altres)" # NU #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "(Noruec) nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "(Noruec) bokmal" # TO #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Noruec antic" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Noruec" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho del nord" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Llengües nubianes" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari clàssic" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Nyanja" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occità (després de 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osset" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turc otomà (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Llengües otomíes" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Llengües papús (altres)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinà" # PW #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" # PY #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" # PA #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" # PW #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauà" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persa antic (ca.600-400 aC)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persa" # PH #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Llengües filipines (altres)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenici" # ML #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polonès" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Ponapeà" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portuguès" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Pràcrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provençal antic (fins al 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Paixtú" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quítxua" # TJ #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" # JP #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Llengües romàniques (altres)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retoromànic" # RO #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romaní" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romanès" # RE #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Kirundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rus" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" # WS #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Iacut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Llengües ameríndies meridionals (altres)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Llengües salish" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Arameu samarità" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sànscrit" # WS #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbi" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilià" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croat" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Llengües semítiques (altres)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Gaèlic irlandès antic (fins 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Llengües de signes" # SD #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" # WS #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singalès" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Llengües sioux (altres)" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Llengües sinotibetanes (altres)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Llengües eslaves (altres)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Eslovac" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Eslovè" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami meridional" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami septentrional" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Llengües samis (altres)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Sami de Lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Sami d'Inari" # WS #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoà" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Sami skolt" # SI #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" # SD #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdià" # SO #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" # TO #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, sud" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Espanyol" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sard" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Llengües niloticosaharianes (altres)" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swazi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" # SD #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sondanès" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumeri" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Suec" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siríac" # TW # fuzzy #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitià" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Llengües tai (altres)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tàmil" # QA #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tàtar" # BE #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" # TJ #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadjik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagàlog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tai" # TW # fuzzy #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetà" # NE #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigré" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek (tamazight)" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tongà (Illes Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" # BW #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" # TR #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turcman" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Llengües tupís" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turc" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Llengües altaïques (altres)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" # TN #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinià" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Votiac" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugarític" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigur" # UA #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucraïnès" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Sense determinar" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdú" # UZ #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamita" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Llengües wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" # PY #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Gal·lès" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sòrab" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Való" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wòlof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Calmuc" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapeà" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jiddisch" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Ioruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapoteca" # GD #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "(Tamazight) zenaga" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" # TV #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Es faran les accions següents:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "no caduca" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "va caducar el %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "caduca el %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(no caduca)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(CADUCADA)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(caduca d'aquí a 24 h)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(caduca d'aquí a %d dia)" msgstr[1] "(caduca d'aquí a %d dies)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Cercant la clau gpg amb l'ID %1% a la cau %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Cercant la clau gpg amb l'ID %1% al repositori %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "El repositori %1% no defineix URL \"gpgkey=\" addicionals." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "No es pot llegir el directori del repositori %1%: permís denegat" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Error a l'hora de llegir el directori %s" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "No es pot llegir el fitxer de repositori %1%: permís denegat" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "L'àlies del repositori no pot començar amb un punt." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "L'àlies del servei no pot començar amb un punt." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "No es pot obrir el fitxer %s per a l'escriptura." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Servei desconegut \"%1%\": suprimint el repositori de serveis orfe %2%" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "No s'han trobat metadades vàlides a l'URL especificat" msgstr[1] "No s'han trobat metadades vàlides als URL especificats" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "No es pot crear %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "No es pot crear el directori cau de metadades." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Construint la memòria cau del repositori %s" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" "No es pot crear la memòria cau a %s - no se'n té permisos d'escriptura." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Error a l'hora de carregar el repositori (%d) a la memòria cau." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Tipus de repositori no manejat" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Error en intentar llegir de '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Error desconegut a l'hora de llegir '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Afegint el repositori %s" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nom de repositori no vàlid a \"%s\"" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Suprimint el repositori %s" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "No es pot esbrinar on es desa el repositori." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "No es pot esborrar %s" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "No s'ha sabut trobar on es guarda el servei." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "La cadena de consulta de l'URL de l'LDAP no és vàlida" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "El paràmetre de consulta de l'URL de l'LDAP \"%s\" no és vàlid" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "No es pot clonar l'objecte de l'URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "La referència d'objecte de l'URL buit no és vàlida" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "No es poden analitzar els components de l'URL" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "desconegut" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "no suportat" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Nivell 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Nivell 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Nivell 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Contracte addicional de client necessari" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "invàlid" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "El nivell de suport no està especificat." #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "El proveïdor ja no n'ofereix suport." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Determinació de problema, la qual cosa significa suport tècnic dissenyat per " "oferir compatibilitat d'informació, assistència d'instal·lació, suport d'ús, " "manteniment continu i resolució bàsica de problemes. El suport de nivell 1 " "no està pensat per corregir errors de defecte del producte." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "L'aïllament de problemes, que significa el suport tècnic dissenyat per " "duplicar els problemes del client, aïlla l'àrea del problema i proporciona " "la solució dels problemes no resolts pel nivell 1 de suport." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Resolució de problema, la qual cosa significa suport tècnic dissenyat per " "resoldre problemes complexos a través d'enginyeria de resolució de defectes " "de producte que s'han identificat amb el suport de nivell 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Un contracte addicional de client és necessari per obtenir-ne suport." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Opció de suport desconeguda. No n'hi ha descripció disponible." #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "La gestió del sistema està bloquejada per l'aplicació amb el pid %d (%s).\n" "Tanqueu aquesta aplicació abans de tornar-ho a provar." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historial:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "No es pot obrir el fitxer de blocatge: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Aquesta acció ja l'està executant un altre programa." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Mode de coincidència desconegut: \"%s\"" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Mode de coincidència desconegut \"%s\" per al patró %s" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expressió regular no vàlida \"%s\": regcomp ha respost %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expressió regular no vàlida: \"%s\"" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Cal autenticació per a '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Visiteu el Novell Customer Center per comprovar si el vostre registre encara " "és vàlid i no ha caducat." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Error a l'hora de muntar %s a %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Error a l'hora de desmuntar %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Mal nom de fitxer: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Mitjà no obert quan s'intentava fer l'acció \"%s\"." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "El fitxer %s no s'ha trobat al mitjà %s" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "No es pot escriure al fitxer %s." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "No hi ha un mitjà connectat" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Mal punt de contacte del mitjà" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "L'inici de la baixada (curl) ha fallat per a \"%s\"" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Excepció de sistema \"%s\" al mitjà \"%s\"." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "El camí \"%s\" del mitjà \"%s\" no és un fitxer." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "La ruta \"%s\" del suport %s no és un directori." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Malformat URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nom d'hoste buit a l'URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Sistema de fitxers buit a l'URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destinació buida a l'URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "L'esquema d'URL a %s no és vàlid." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operació no admesa pel mitjà" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Error de baixada (curl) per a %s:\n" "Codi d'error: %s\n" "Missatge d'error: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Hi ha hagut un error en establir les opcions de baixada (curl) per a '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "El suport font \"%s\" no conté el mitjà desitjat." #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "El mitjà \"%s\" l'està fent servir una altra instància." #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "No es pot expulsar el mitjà" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "No es pot expulsar el suport %s" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Permís per accedir a %s denegat." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "S'ha acabat el temps d'espera accedint a %s." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" "Les dades baixades excedeixen la mida de fitxer esperada \"%s\" de \"%s\"." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "El lloc \"%s\" és temporalment inaccessible." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problema de certificat SSL, verifiqueu que el certificat CA és correcte per " "a \"%s\"." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Crea un punt d'adjunció: no es pot trobar un directori d'escriptura per " "crear un punt d'adjunció." #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Mètode d'autenticació HTTP no suportat \"%s\"" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Si us plau, instal·leu primer el paquet lsof." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Falta l'atribut requerit \"%s\"." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Són necessaris l'atribut \"%s\" o \"%s\", o bé tots dos." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Ha fallat la verificació de la signatura" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "El paquet %s sembla que s'ha corromput durant la transferència. Voleu " "intentar baixar-lo de nou?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "El paquet %s no s'ha pogut obtenir. Voleu intentar baixar-lo de nou?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "La comprovació de l'applydeltarpm ha fallat." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "ha fallat aplicar de l'RPM delta." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "El servei de complements (plugin) no permet canviar-ne un atribut." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "No es pot proporcionar el fitxer %s des del repositori %s" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "No URL al repositori." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "El fitxer %1%\n" " del paquet\n" " %2%\n" " té conflicte amb el fitxer del paquet\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "El fitxer %1%\n" " del paquet\n" " %2%\n" " té conflicte amb el fitxer de la instal·lació de\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "El fitxer %1%\n" " de la instal·lació de\n" " %2%\n" " té conflicte amb el fitxer del paquet\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "El fitxer %1%\n" " de la instal·lació de\n" " %2%\n" " té conflicte amb el fitxer de la instal·lació de\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "El fitxer %1%\n" " del paquet\n" " %2%\n" " té conflicte amb el fitxer\n" " %3%\n" " del paquet\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "El fitxer %1%\n" " del paquet\n" " %2%\n" " té conflicte amb el fitxer\n" " %3%\n" " de la instal·lació de\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "El fitxer %1%\n" " de la instal·lació de\n" " %2%\n" " té conflicte amb el fitxer\n" " %3%\n" " del paquet\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "El fitxer %1%\n" " de la instal·lació de\n" " %2%\n" " té conflicte amb el fitxer\n" " %3%\n" " de la instal·lació de\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "No es pot crear sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "trenca %s ignorant-ne algunes de les dependències" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "ignora generalment algunes dependències" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s no pertany a un repositori d'actualització de la distribució" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s té una arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problema amb el paquet instal·lat %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "demandes conflictives" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "problemes de dependències" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "Res proporciona %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Heu habilitat tots els repositoris demanats?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "el paquet %s no existeix" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "petició no suportada" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s està proveït pel sistema i no es pot esborrar" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s no és instal·lable" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "Res proporciona %s, necessari per a %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "No es poden instal·lar %s i %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s entra en conflicte amb %s, proveït per %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s fa(n) obsolet(s) %s proveït(s) per %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" "el(s) paquets(s) instal·lat(s) %s fa(n) obsolet(s) %s proporcionat(s) per %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "la resolució %s entra en conflicte amb %s, proporcionat per si mateix" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s necessita %s, però aquest requeriment no es pot satisfer" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "proveïdors suprimits: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "proveïdors no desistal·lables: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "proveïdors no desinstal·lables: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "suprimeix el bloqueig per permetre la supressió de %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "no instal·lis %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "conserva %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "suprimeix el bloqueig per permetre la instal·lació de %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Aquesta petició trencarà l'estabilitat del sistema!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignora l'avís de sistema trencat" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "no demanis instal·lar un resoluble que proporcioni %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "no demanis suprimir tots els resolubles que proporcionin %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "no instal·lis la versió més recent de %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "mantén %s malgrat l'arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "instal·la %s, encara que tingui una arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "deixa obsolet %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "instal·la %s del repositori exclòs" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "degradació de %s a %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "canvi d'arquitectura de %s a %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instal·la %s (amb canvi de proveïdor)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "substitució de %s per %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "desinstal·lació de %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Executant l'script %%posttrans \"%1%\"" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Executant scripts %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " executat" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " ha fallat l'execució" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s ja s'ha executat com a %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " execució omesa mentre s'avortava" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" "S'ha produït un error durant l'enviament de la notificació d'actualització." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nou missatge d'actualització" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "La instal·lació s'ha avortat tal com heu indicat." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Perdoneu, però aquesta versió de libzypp va ser construïda sense suport de " "HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "El HalContext no està connectat" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "El HalDrive no està iniciat" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "El HalVolume no està iniciat" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "No es pot crear la connexió dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: No es pot crear el context libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: No es pot definir la connexió de dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "No es pot iniciar el context HAL. No s'executa hald?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "No és una unitat de CD-ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Ha fallat l'RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Error a l'hora d'importar la clau pública %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Ha fallat suprimir la clau pública %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "El paquet no està signat!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Fitxers de configuració modificats per a %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "L'rpm ha desat %s com a %s però no ha estat possible determinar-ne la " "diferència" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "L'rpm ha desat %s com a %s.\n" "Aquestes són les primeres 25 línies de diferència:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "L'rpm ha creat %s com a %s però no ha estat possible determinar-ne la " "diferència" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "L'rpm ha creat %s com a %s.\n" "Aquestes són les primeres 25 línies de diferència:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Sortida addicional de l'rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "còpia de seguretat creada %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "La signatura és correcta" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tipus de signatura desconeguda" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "La signatura no es verifica" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "La signatura és correcta, però no és de confiança" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "La clau pública de signatures no està disponible" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "El fitxer no existeix o la signatura no es pot comprovar" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "El fitxer no està signat." #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "No es poden iniciar els atributs de mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "No es pot definir l'atribut de mutex recursiu" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "No es pot iniciar el mutex recursiu" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "No es pot obtenir el bloqueig de mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "No es pot alliberar el bloqueig de mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "L'esquema de l'URL no permet un %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "El component %s no és vàlid %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Component de %s no vàlid" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "No s'admet l'anàlisi de cadenes de consulta per a aquesta URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "L'esquema de l'URL és un component necessari" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "L'esquema de l'URL \"%s\" no és vàlid" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "L'esquema de l'URL no permet un nom d'usuari" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "L'esquema de l'URL no permet una contrasenya" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "L'esquema de l'URL requereix un component d'amfitrió" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "L'esquema de l'URL no permet un component d'amfitrió" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "El component d'amfitrió \"%s\" no és vàlid." #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "L'esquema de l'URL no permet un port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "El component de port \"%s\" no és vàlid" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "L'esquema de l'URL requereix un nom de camí" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "No es permet un camí relatiu si existeix una autoritat" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "La cadena codificada conté un byte NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "El caràcter separador de divisió de matriu de paràmetres no és vàlid" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" "El caràcter separador de divisió d'assignació de paràmetres no és vàlid" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "El caràcter separador d'unió de matriu de paràmetres no és vàlid" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Error a l'hora d'importar la clau pública del fitxer %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Error en eliminar la clau pública %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "No es pot trobar un dispositiu de bucle disponible per muntar el fitxer " #~ "d'imatge de \"%s\"" #~ msgid "generally ignore of some dependecies" #~ msgstr "generalment ignora algunes dependències" #~ msgid "do not forbid installation of %s" #~ msgstr "no prohibeixis la instal·lació de %s" #~ msgid "do not keep %s installed" #~ msgstr "no mantinguis %s instal·lat" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "لا يمكن إنشاء Ø§Ù„Ù…ÙØªØ§Ø­ العام %s من %s إلى مل٠حلقة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "حاول استيراد Ù…ÙØªØ§Ø­ غير موجود %s إلى حلقة Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "لا يمكن تغيير مجلد العمل '/' داخل استجذار (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "ÙØ´Ù„ تهيئة تحميل (Metalink curl) '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "تحميل (metalink curl) خطأ '%s':\n" #~ "رمز الخطأ: %s\n" #~ "رسالة الخطأ: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "توق٠التحميل ÙÙŠ %d%%" #~ msgid "Download interrupted by user" #~ msgstr "توق٠التحميل بواسطة المستخدم" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "حدث خطأ أثناء إعداد خيارات التحميل (metalink curl) Ù„ '%s':" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "No es pot obrir %s - %s\n" #~ msgid "Serbia and Montenegro" #~ msgstr "Sèrbia i Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "L'opció list és desconeguda" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "no s'han pogut resoldre dependències" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "El fitxer %s no conté cap suma de verificació.\n" #~ "Voleu utilitzar aquest fitxer de tota manera?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "El fitxer %s no ha superat la comprovació d'integritat amb la següent " #~ "clau:\n" #~ "%s|%s|%s\n" #~ "Voleu utilitzar el fitxer de tota manera?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "El fitxer %s conté una suma de verificació no vàlida.\n" #~ "S'esperava %s, i s'ha trobat %s\n" #~ "Voleu utilitzar aquest fitxer de tota manera?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "El fitxer %s conté la suma de verificació desconeguda %s.\n" #~ "Voleu utilitzar aquest fitxer de tota manera?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "El fitxer %s no està signat.\n" #~ "Voleu utilitzar-lo de tota manera?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "El fitxer %s s'ha signat amb una clau desconeguda:\n" #~ "%s|%s|%s\n" #~ "Voleu utilitzar aquest fitxer de tota manera?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "S'ha trobat una clau no fiable:\n" #~ "%s|%s|%s\n" #~ "Voleu que la clau sigui de confiança?" #~ msgid "%s remove failed" #~ msgstr "S'ha produït un error en suprimir %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "La contrasenya de la CA no és vàlida." #~ msgid "rpm output:" #~ msgstr "Sortida de l'rpm:" #~ msgid "%s install failed" #~ msgstr "S'ha produït un error en instal·lar %s" #~ msgid "%s installed ok" #~ msgstr "%s s'ha instal·lat correctament" #~ msgid "%s remove ok" #~ msgstr "%s s'ha suprimit correctament" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "%s proporciona aquesta dependència però canviaria l'arquitectura de " #~ "l'element instal·lat" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "%s proporciona aquesta dependència però canviaria l'arquitectura de " #~ "l'element instal·lat" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "No instal·lis ni suprimeixis els ítems amb dependències relacionats" #~ msgid "Ignore that %s is already set to install" #~ msgstr "Ignora que %s ja s'ha definit per a instal·lar-se" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "Ignora l'obsolet %s a %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "Ignora aquest conflicte de %s" #~ msgid "Ignore this requirement just here" #~ msgstr "Ignora aquest requisit només en aquest cas" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "Instal·la %s, encara que canviï l'arquitectura" #~ msgid "Install missing resolvables" #~ msgstr "Instal·la els ítems amb dependències que falten" #~ msgid "Keep resolvables" #~ msgstr "Conserva els ítems amb dependències" #~ msgid "Unlock these resolvables" #~ msgstr "Desbloqueja aquests ítems amb dependències" #~ msgid "delete %s" #~ msgstr "suprimeix %s" #~ msgid "install %s" #~ msgstr "instal·la %s" #~ msgid "unlock %s" #~ msgstr "desbloqueja %s" #~ msgid "unlock all resolvables" #~ msgstr "desbloqueja tots els ítems amb dependències" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "No es pot obrir el fitxer %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Error en llegir el sector %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "No s'admet l'anàlisi de paràmetres de camí per a aquesta URL" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "No s'admet l'anàlisi de paràmetres de camí per a aquesta URL" #~ msgid "Software management is already running." #~ msgstr "Ja s'està executant la gestió del programari." #~ msgid "%s is replaced by %s" #~ msgstr "%s s'ha reemplaçat per %s" #~ msgid "%s replaced by %s" #~ msgstr "%s ha estat reemplaçat per %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "Aquests ítems amb dependències es suprimiran del sistema." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s no es desinstal·larà perquè encara es necessita" #~ msgid "Invalid information" #~ msgstr "La informació no és vàlida" #~ msgid "%s is needed by other resolvables" #~ msgstr "Altres ítems amb dependències necessiten %s" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s requereix:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s entra en conflicte amb altres ítems amb dependències" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s entra en conflicte amb:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s desactualitza altres ítems amb dependències" #~ msgid "%s obsoletes:%s" #~ msgstr "%s desactualitza:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "Aquests ítems amb dependències es suprimiran del sistema." #~ msgid "%s depends on other resolvables" #~ msgstr "%s depèn d'altres ítems amb dependències" #~ msgid "%s depends on %s" #~ msgstr "%s depèn de %s" #~ msgid "%s depends on:%s" #~ msgstr "%s depèn de:%s" #~ msgid "Child of" #~ msgstr "Fill de" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "No hi ha cap recurs disponible que admeti aquest requisit." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "Atesos els problemes descrits anteriorment o a continuació, aquesta " #~ "resolució no resoldrà totes les dependències" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "No es pot instal·lar %s perquè entra en conflicte amb %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s no s'ha instal·lat i s'ha marcat com a no instal·lable" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s té requisits no complerts" #~ msgid "%s has missing dependencies" #~ msgstr "Falten dependències per a %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s no es pot instal·lar atès que falten dependències" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s compleixen les dependències de %s però es desinstal·laran" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s compleixen les dependències de %s però es conservaran al sistema" #~ msgid "No need to install %s" #~ msgstr "No cal instal·lar %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "No es pot instal·lar %s per a complir les dependències de %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "No es pot instal·lar %s per a complir les dependències de %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s no es desinstal·larà perquè encara es necessita" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%s desactualitza %s. No obstant, %s no es pot suprimir perquè està " #~ "bloquejat." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "No es pot instal·lar %s perquè entra en conflicte" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s no es pot instal·lar atesos els conflictes amb %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "per a requerir %s per a %s en actualitzar %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "A %s li falta el requisit %s" #~ msgid ", Action: " #~ msgstr ", Acció: " #~ msgid ", Trigger: " #~ msgstr ", Activador: " #~ msgid "package" #~ msgstr "paquet" #~ msgid "selection" #~ msgstr "selecció" #~ msgid "pattern" #~ msgstr "patró" #~ msgid "product" #~ msgstr "producte" #~ msgid "patch" #~ msgstr "pedaç" #~ msgid "script" #~ msgstr "script" #~ msgid "message" #~ msgstr "missatge" #~ msgid "atom" #~ msgstr "àtom" #~ msgid "system" #~ msgstr "sistema" #~ msgid "Resolvable" #~ msgstr "Resolvable" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "Es marcarà aquest intent de resolució com a no vàlid." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Es marcarà l'ítem amb dependències %s com a no instal·lable" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s s'ha programat per a instal·lar-se, però això no és possible per " #~ "problemes de dependència." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "No es pot instal·lar %s perquè ja s'ha marcat com a que necessita " #~ "desinstal·lar-se" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "No es pot instal·lar %s perquè no s'aplica a aquest sistema." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "No es pot instal·lar %s perquè %s ja s'ha marcat com a que necessita " #~ "instal·lar-se" #~ msgid "This would invalidate %s." #~ msgstr "%s quedaria invalidat." #~ msgid "Establishing %s" #~ msgstr "S'està establint %s" #~ msgid "Installing %s" #~ msgstr "S'està instal·lant %s" #~ msgid "Updating %s to %s" #~ msgstr "S'està actualitzant %s a %s" #~ msgid "Skipping %s: already installed" #~ msgstr "S'està ignorant %s: ja s'ha instal·lat" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "No hi ha cap altre proveïdor alternatiu instal·lat de %s" #~ msgid "for %s" #~ msgstr "per a %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "" #~ "No és possible actualitzar a %s per tal d'evitar que es suprimeixi %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s proporciona %s, però s'ha programat per a desinstal·lar-se." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "" #~ "%s proporciona %s, però ja hi ha instal·lada una altra versió d'aquest %s." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s proporciona %s, però no és instal·lable. Proveu d'instal·lar-lo per sí " #~ "mateix per a més detalls." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s proporciona %s, però està bloquejat." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s proporciona %s, però s'ha programat per a conservar-se." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s proporciona %s, però té una altra arquitectura." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "No es pot satisfer el requisit %s per a %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "Un altre ítem amb dependències instal·lat necessita %s, de manera que no " #~ "es desenllaçarà." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "Un altre ítem amb dependències instal·lat necessita %s, de manera que no " #~ "es desenllaçarà." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s està bloquejat i no es pot desinstal·lar." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "" #~ "Per causa d'un conflicte relacionat amb %s (%s), cal suprimir el %s que " #~ "s'ha d'instal·lar" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "" #~ "A causa de conflictes relacionats amb %s, es marcarà %s com a no " #~ "instal·lable" #~ msgid "from %s" #~ msgstr "de %s" #~ msgid " Error!" #~ msgstr " Error" #~ msgid " Important!" #~ msgstr " Important" #~ msgid "%s depended on %s" #~ msgstr "%s depenia de %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s requereix %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s requereix %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s s'ha reemplaçat per %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s requereix %s" #~ msgid "%s part of %s" #~ msgstr "%s és part de %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "Temps d'espera de doble clic " #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s requereix %s" #~ msgid "Unable to parse Url authority" #~ msgstr "No es pot analitzar l'autoritat de l'URL" #~ msgid "Ignore this requirement generally" #~ msgstr "Ignora aquest requisit de manera general" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "Una altra solució que s'ha d'instal·lar necessita %s, de manera que no es " #~ "desenllaçarà." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "" #~ "No es pot crear un fitxer necessari per a executar la instal·lació de " #~ "l'actualització." #~ msgid "Unable to restore all sources." #~ msgstr "No es poden restaurar tots els recursos." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "Ja s'ha registrat al menys una font; no es poden restaurar les fonts " #~ "emmagatzemades." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "No es pot instal·lar %s per a complir les dependències de %s" #~ msgid "%s dependend on %s" #~ msgstr "%s depend de %s" #~ msgid "Reading index files" #~ msgstr "S'estan llegint els fitxers d'índex" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "" #~ "El fitxer signat repomd.xml no ha superat la comprovació de signatura." #~ msgid "Reading product from %s" #~ msgstr "S'està llegint el producte de %s" #~ msgid "Reading filelist from %s" #~ msgstr "S'està llegint la llista de fitxers de %s" #~ msgid "Reading packages from %s" #~ msgstr "S'estan llegint els paquets de %s" #~ msgid "Reading selection from %s" #~ msgstr "S'està llegint la selecció de %s" #~ msgid "Reading pattern from %s" #~ msgstr "S'està llegint el patró de %s" #~ msgid "Reading patches index %s" #~ msgstr "S'està llegint l'índex de pedaços %s" #~ msgid "Reading patch %s" #~ msgstr "S'està llegint el pedaç %s" #~ msgid "The script file failed the checksum test." #~ msgstr "" #~ "El fitxer de l'script no ha superat la prova de suma de verificació." #~ msgid "Reading packages file" #~ msgstr "S'està llegint el fitxer de paquets" #~ msgid "Reading translation: %s" #~ msgstr "S'està llegint la traducció: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "El paquet %s no ha superat la comprovació d'integritat. Voleu intentar " #~ "baixar-lo de nou o avortar la instal·lació?" #~ msgid " miss checksum." #~ msgstr "falta la suma de verificació." #~ msgid " fails checksum verification." #~ msgstr " no supera la verificació de la suma de verificació." #~ msgid "Downloading %s" #~ msgstr "S'està baixant %s" #, fuzzy #~ msgid "Regarding all resolvables with a compatible architecture." #~ msgstr "" #~ "S'estan capturant els ítems amb dependències que coincideixen amb el " #~ "criteri de cerca definit..." #, fuzzy #~ msgid "Make a solver run with best architecture only." #~ msgstr "" #~ "S'estan capturant els ítems amb dependències que coincideixen amb el " #~ "criteri de cerca definit..." #, fuzzy #~ msgid "Regarding resolvables with best architecture only." #~ msgstr "" #~ "S'estan capturant els ítems amb dependències que coincideixen amb el " #~ "criteri de cerca definit..." libzypp-17.7.0/po/cs.po000066400000000000000000003670451334444677500147220ustar00rootroot00000000000000# translation of zypp.po to # Czech message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999-2001 SuSE GmbH. # # Petr Pavlik , 1999, 2000, 2001. # Klara Cihlarova , 2006. # Jakub Hegenbart , 2007. # Marek Stopka , 2008. # Klára Cihlářová , 2008. # VojtÄ›ch Zeisek , 2008. # Marek Stopka , 2008. # Radomír ÄŒernoch , 2009. # VojtÄ›ch Zeisek , 2010, 2015. # Vít PelÄák , 2011. # Jan Papež , 2011, 2013, 2014, 2015. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-04 13:16+0000\n" "Last-Translator: AleÅ¡ Kastner \n" "Language-Team: Czech " "\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Výjimka HAL" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Pochybný typ %s pro %u-bajtový kontrolní souÄet %s" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Neznámá zemÄ›: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Žádný kód" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Spojené arabské emiráty" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghánistán" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua a Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albánie" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Arménie" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nizozemské Antily" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktida" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Americká Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Rakousko" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Austrálie" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Alandské ostrovy" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Ãzerbájdžán" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosna a Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladéš" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgie" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulharsko" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrajn" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudy" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunej Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolívie" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazílie" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamy" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhútán" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet Island" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "BÄ›lorusko" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosové (Keelingovy) ostrovy" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "StÅ™edoafrická republika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å výcarsko" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "PobÅ™eží slonoviny" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookovy ostrovy" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Čína" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbie" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kostarika" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kapverdy" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "VánoÄní ostrov" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kypr" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ÄŒeská republika" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "NÄ›mecko" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Džibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dánsko" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikánská republika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžírsko" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvádor" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonsko" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypt" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Západní Sahara" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Å panÄ›lsko" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopie" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finsko" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandské ostrovy (Malvíny)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federativní státy Mikronésie" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faerské ostrovy" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francie" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Kontinentální Francie" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Velká Británie" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gruzie" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Francouzská Guajána" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grónsko" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambie" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Rovníková Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Řecko" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Jižní Georgie a Jižní Sandwichovy ostrovy" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Ostrov Heard a McDonaldovi ostrovy" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Chorvatsko" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "MaÄarsko" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonésie" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irsko" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Ostrov Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indie" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britské indické oceánské teritorium" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irák" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Ãrán" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Itálie" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordánsko" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonsko" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Keňa" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kyrgyzstán" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodža" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komory" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts a Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Severní Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Jižní Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvajt" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kajmanské ostrovy" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazachstán" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laoská lidovÄ› demokratická republika" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Svatá Lucie" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "LichtenÅ¡tejnsko" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Srí Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libérie" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litva" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Lucembursko" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "LotyÅ¡sko" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libye" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldávie" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "ÄŒerná Hora" # SM #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Svatý Martin" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshallovy ostrovy" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonie" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar (Barma)" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolsko" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Severní Mariany" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinik" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritánie" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauricius" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malajsie" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibie" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nové Kaledonie" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Ostrov Norfolk" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigérie" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nizozemí" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norsko" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepál" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nový Zéland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omán" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Francouzská Polynésie" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nová Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipíny" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pákistán" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polsko" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre a Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Portoriko" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestinské teritorium" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalsko" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunsko" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Srbsko" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Ruská Federace" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudská Arábie" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Å alamounovy ostrovy" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychely" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Súdán" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å védsko" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Svatá Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovinsko" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Ostrovy Svalbard a Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovensko" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somálsko" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Svatý Tomáš a Princův ostrov" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Sýrie" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Svazijsko" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks a Caicos" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ÄŒad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Francouzská jižní teritoria" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thajsko" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistán" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistán" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunis" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Východní Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turecko" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad a Tobago" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tchaj-wan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzanie" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajina" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Menší odlehlé ostrovy Spojených států" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Spojené státy" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistán" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikán" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Svatý Vincenc a Grenadiny" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britské Panenské ostrovy" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Panenské ostrovy (U.S.)" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Ostrovy Wallis a Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Jižní Afrika" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambie" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Poskytuje" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "PÅ™edpokládá" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Vyžaduje" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflikty" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Nahrazuje" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "DoporuÄuje" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Navrhuje" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "VylepÅ¡uje" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Doplňuje" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Nelze otevřít pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Nelze otevřít rouru (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Nelze zmÄ›nit koÅ™enový adresář na '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "Nelze zmÄ›nit adresář na '%s' uvnitÅ™ chrootem zmÄ›nÄ›ného koÅ™enového adresáře " "'%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Nelze zmÄ›nit adresář na '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Nelze spustit '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Nelze forknout (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Příkaz skonÄil se stavem %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Příkaz byl ukonÄen signálem %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Příkaz skonÄil s neznámou chybou." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Pokus o import neexistujícího klíÄe %s do klíÄenky %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "NepodaÅ™ilo se importovat klíÄ." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "NepodaÅ™ilo se smazat klíÄ." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Soubor s podpisem %s nebyl nalezen" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Neznámý jazyk: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "AfarÅ¡tina" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "AbcházÅ¡tina" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "AÄinézÅ¡tina" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afroasijské (jiné)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "AfrikánÅ¡tina" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "AkkadÅ¡tina" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "AlbánÅ¡tina" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "AleutÅ¡tina" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonkinské jazyky" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Jižní Altaj" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "AmharÅ¡tina" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "AngliÄtina, stará (cca. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ApaÄské jazyky" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ArabÅ¡tina" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "AramejÅ¡tina" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "AragonÅ¡tina" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ArménÅ¡tina" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ArakuánÅ¡tina" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "UmÄ›lý (jiný)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "ÃsámÅ¡tina" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturian" # modules/inst_language.ycp:93 #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapascanské jazyky" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australské jazyky" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "AvarÅ¡tina" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Jazyk Avesty" # SZ #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Avadhí" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "AymarÅ¡tina" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "ÃzerbájdžánÅ¡tina" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Jazyky Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "BaÅ¡kirÅ¡tina" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Bali" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "BaskiÄtina" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltské (jiné)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "BÄ›loruÅ¡tina" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "BengálÅ¡tina" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berberské (jiné)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhodžpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "BihárÅ¡tina" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "BikolÅ¡tina" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "BinijÅ¡tina" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantuské (jiné)" # BJ #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "BosenÅ¡tina" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "BretonÅ¡tina" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonésie)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "BurjatÅ¡tina" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "BugiÅ¡tina" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "BulharÅ¡tina" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "BarmÅ¡tina" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Kado" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "StÅ™edoamerické indiánské (jiné)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Karibské jazyky" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "KatalánÅ¡tina" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kavkazské (jiné)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "CebuánÅ¡tina" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltské (jiné)" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "ÄŒamorÅ¡tina" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "ÄŒibÅ¡tina" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ÄŒeÄenÅ¡tina" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ÄŒagatajské jazyky" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "ČínÅ¡tina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ÄŒukÅ¡tina" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "MarijÅ¡tina" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Slang Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "ChoctawÅ¡tina" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ÄŒipeva" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "ÄŒerokézÅ¡tina" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Církevní slovanÅ¡tina" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "ÄŒejenÅ¡tina" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ÄŒamicské jazyky" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "KoptÅ¡tina" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "KornÅ¡tina" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "KorsiÄtina" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreole a pidgin, založené na angliÄtinÄ› (jiné)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreole a pidgin, založené na francouzÅ¡tinÄ› (jiné)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreole a pidgin, založené na portugalÅ¡tinÄ› (jiné)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Krí" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krymská tatarÅ¡tina" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreole a pidgin (jiné)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "KaÅ¡ubÅ¡tina" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "KuÅ¡itské jazyky (jiné)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒeské" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dánské" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Daják" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Athabaské jazyky" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Drávidské jazyky (jiné)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Dolní lužiÄtina" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "NizozemÅ¡tina, stÅ™ední (cca 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "NizozemÅ¡tina" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "StaroegypÅ¡tina" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "ElamÅ¡tina" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "AngliÄtina" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "AngliÄtina, stÅ™ední (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonské" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "FaerÅ¡tina" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "FidžijÅ¡tina" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "FilipínÅ¡tina" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finské" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Ugrofinské (jiné)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francouzské" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "FrancouzÅ¡tina, stÅ™ední (cca 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "FrancouzÅ¡tina, stará (842- cca 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Fríština" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fula" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "FurlánÅ¡tina" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "GbejÅ¡tina" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germánské (jiné)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "GruzínÅ¡tina" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "NÄ›mÄina" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Giiz" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "GilbertÅ¡tina" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "GaelÅ¡tina" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "IrÅ¡tina" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "GalicijÅ¡tina" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "ManÅ¡tina" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "StÅ™edohornonÄ›mÄina (cca 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "StarohornonÄ›mÄina (cca 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Góndí" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "GorontálÅ¡tina" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "GótÅ¡tina" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "StaroÅ™eÄtina (do 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "NovoÅ™eÄtina (od 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaraní" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "GudžarátÅ¡tina" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "HaitÅ¡tina" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "HavajÅ¡tina" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "HebrejÅ¡tina" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "HiligaynonÅ¡tina" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "HimáÄalí" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "HindÅ¡tina" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "ChetitÅ¡tina" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" # HT #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hirimotu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Horní lužiÄtina" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "MaÄarÅ¡tina" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "IslandÅ¡tina" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "IlokánsÅ¡tina" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (IALA)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indické (jiné)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "IndonézÅ¡tina" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoevropské (jiné)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "InguÅ¡tina" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Ãránské (jiné)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokézské jazyky" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ItalÅ¡tina" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "JávÅ¡tina" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "JaponÅ¡tina" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Židovské perské jazyky" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Židovské arabské jazyky" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "KarakalpakÅ¡tina" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "KabylÅ¡tina" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "KaÄin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "KambÅ¡tina" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "KannadÅ¡tina" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÅ¡mírÅ¡tina" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "KanurijÅ¡tina" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "KazaÅ¡tina" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisanské (jiné)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "KhmérÅ¡tina" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "KhotanÅ¡tina" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuju" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "KyrgyzÅ¡tina" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "KonkanÅ¡tina" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Konžština" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "KorejÅ¡tina" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "KruÅ¡tina" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuaňama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "KumykÅ¡tina" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "KudÅ¡tina" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahanda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "LaoÅ¡tina" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latina" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "LotyÅ¡tina" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "LimburÅ¡tina" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "LitevÅ¡tina" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "LucemburÅ¡tina" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseňo" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "LuoÅ¡tina (Keňa a Tanzanie)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "MakedonÅ¡tina" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "MadurÅ¡tina" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "MarÅ¡alÅ¡tina" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "MakasarÅ¡tina" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "MalajámÅ¡tina" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "MalinÅ¡tina" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "MaorÅ¡tina" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronéské (jiné)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "MaráthÅ¡tina" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "MasajÅ¡tina" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "MalajÅ¡tina" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "MandarÅ¡tina" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "MendeÅ¡tina" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "IrÅ¡tina, stÅ™ední (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mikmak" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "MinangkabauÅ¡tina" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Různé jazyky" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-khmérské (jiné)" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "MalgaÅ¡tina" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "MaltÅ¡tina" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "ManÄu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "ManipurÅ¡tina" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Jazyky manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "MoldavÅ¡tina" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "MongolÅ¡tina" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Více jazyků" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Mundské jazyky" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Krík" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Mayské jazyky" # SY # fuzzy #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Severoamerické indiánské" # NP #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "NeapolÅ¡tina" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Jižní Ndebele" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Severní Ndebele" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "DolnonÄ›mÄina" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "NepálÅ¡tina" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepál Bhasa" # printers.ycp.noloc:1270 # printers.ycp.noloc:1270 # printers.ycp.noloc:1270 # printers.ycp.noloc:1270 #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "NiaÄtina" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Nigero-kordofánské (jiné)" # NU #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "NiueÄtina" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "NorÅ¡tina (Nynorsk)" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "NorÅ¡tina (Bokmal)" # TO #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "NorÅ¡tina, stará" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "NorÅ¡tina" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Severní Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Núbijské jazyky" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "NewarÅ¡tina" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "ÄŒiÄeva" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "NyankolÅ¡tina" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" # printers.ycp.noloc:1400 # printers.ycp.noloc:1400 # printers.ycp.noloc:1400 # printers.ycp.noloc:1400 #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "OkcitánÅ¡tina (po 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "OrijÅ¡tina" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "OsetÅ¡tina" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Osmanská tureÄtina (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomianské jazyky" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "PapuánÅ¡tina (jiné)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "PangasinÅ¡tina" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlaví" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "PandžábÅ¡tina" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "PalajÅ¡tina" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "StaroperÅ¡tina (cca 600-400 pÅ™. n. l.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "PerÅ¡tina" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipínské (jiné)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "FéniÄtina" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Páli" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "PolÅ¡tina" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "PohnpeiÅ¡tina" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "PortugalÅ¡tina" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakritské jazyky" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "StaroprovensálÅ¡tina (do 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "PaÅ¡tunÅ¡tina" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "KeÄuánÅ¡tina" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "RádžáshánÅ¡tina" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "RapanuiÅ¡tina (tahitÅ¡tina VelikonoÄního ostrova - Rapa-Nui)" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "RarotongánÅ¡tina (tahitÅ¡tina VelikonoÄního ostrova - Rapa-Nui)" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Románské (jiné)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "RétorománÅ¡tina" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "RomÅ¡tina" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "RumunÅ¡tina" # RE #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "RundÅ¡tina" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "RuÅ¡tina" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "SandaweÅ¡tina" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "SangoÅ¡tina" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "JakutÅ¡tina" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Jihoamerické indiánské (jiné)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salishanské jazyky" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritská AramejÅ¡tina" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrt" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "SasaÄtina" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "SantálÅ¡tina" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "SrbÅ¡tina" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "SicilÅ¡tina" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "SkotÅ¡tina" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Chorvatské" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "SelkupÅ¡tina" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitské (jiné)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "IrÅ¡tina, stará (do 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Znakové Å™eÄi" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Å anÅ¡tina" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamské jazyky" # AO #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "SinhalÅ¡tina" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouanské jazyky" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sinotibetské (jiné)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slovanské (jiné)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "SlovenÅ¡tina" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "SlovinÅ¡tina" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Jižní Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Severní Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Jazyky Sami (jiné)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lulejská Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inarijská Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "SamoánÅ¡tina" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skoltská Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Å onÅ¡tina" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "SindhÅ¡tina" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "SoghdÅ¡tina" # SO #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "SomálÅ¡tina" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "SonghajÅ¡tina" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "JihosotÅ¡tina" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Å panÄ›lÅ¡tina" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "SardinÅ¡tina" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "SererÅ¡tina" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilosaharské (jiné)" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "SundánÅ¡tina" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "SumerÅ¡tina" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "SvahilÅ¡tina" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å védÅ¡tina" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "SyrÅ¡tina" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "TahitÅ¡tina" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Thajské (jiné)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "TamilÅ¡tina" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "TatarÅ¡tina" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "TelugÅ¡tina" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "TádžiÄtina" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "TagalÅ¡tina" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ThajÅ¡tina" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "TibetÅ¡tina" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigriňňa" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "KlingonÅ¡tina" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "TamaÅ¡ek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "TongánÅ¡tina (Nyasa)" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "TongánÅ¡tina (Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshijské jazyky" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ÄŒwana" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "TurkmenÅ¡tina" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Jazyky tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "TureÄtina" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altajské (jiné)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "ŤwiÅ¡tina" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "TuvÅ¡tina" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "UgaritÅ¡tina" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "UjgurÅ¡tina" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "UkrajinÅ¡tina" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "NeurÄený" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "UrdÅ¡tina" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "UzbeÄtina" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "VietnamÅ¡tina" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "VotÅ¡tina" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakashanské jazyky" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "VelÅ¡tina" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Lužická srbÅ¡tina" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ValonÅ¡tina" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "KalmyÄtina" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "XhoÅ¡tina" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "JapÅ¡tina" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "JidiÅ¡" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "JarubÅ¡tina" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Jazyky yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotécké jazyky" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ZandÅ¡tina" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ZuluÅ¡tina" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Budou provedeny následující akce:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "nevyprší nikdy" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "vyprÅ¡el: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "vyprší: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(nevyprší nikdy)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(VYPRÅ ELO)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(vyprší bÄ›hem 24 hodin)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(vyprší bÄ›hem %d dne)" msgstr[1] "(vyprší bÄ›hem %d dnů)" msgstr[2] "(vyprší bÄ›hem %d dnů)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Hledám ID klíÄe gpg %1% v pamÄ›ti %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Hledám ID klíÄe gpg %1% v úložiÅ¡ti %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "ÚložiÅ¡tÄ› %1% nedefinuje přídavná URL 'gpgkey='." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Nelze Äíst z adresáře úložiÅ¡tÄ› %1%: Přístup odepÅ™en" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Chyba pÅ™i Ätení z adresáře %s" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Nelze pÅ™eÄíst soubor úložiÅ¡tÄ› %1%: Přístup odepÅ™en" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Alias úložiÅ¡tÄ› nemůže zaÄínat teÄkou." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Alias služby nemůže zaÄínat teÄkou." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Nelze otevřít soubor '%s' pro zápis." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Neznámá služba '%1%': Odstraňuje se osiÅ™elé úložiÅ¡tÄ› služby '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Na zadané adrese URL nebyla nalezena platná metadata" msgstr[1] "Na zadaných adresách URL nebyla nalezena platná metadata" msgstr[2] "Na zadaných adresách URL nebyla nalezena platná metadata" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Nelze vytvoÅ™it %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Nelze vytvoÅ™it adresář s mezipamÄ›tí metadat." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Vytváří se vyrovnávací paměť úložiÅ¡tÄ› '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Nelze vytvoÅ™it mezipaměť v adresáři %s - chybí oprávnÄ›ní k zápisu." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Chyba pÅ™i naÄítání úložiÅ¡tÄ› do mezipamÄ›ti (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Nepodporovaný typ úložiÅ¡tÄ›" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Chyba pÅ™i Ätení z '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Neznámá chyba pÅ™i Ätení z '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "PÅ™idává se úložiÅ¡tÄ› %s" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Název souboru úložiÅ¡tÄ› na adrese URL „%s“ je neplatný" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Odebírá se úložiÅ¡tÄ› %s" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Nelze zjistit umístÄ›ní úložiÅ¡tÄ›." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s' nelze smazat" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Nelze zjistit umístÄ›ní služby." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Neplatný Å™etÄ›zec dotazu LDAP URL" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Neplatný parametr dotazu LDAP URL %s" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Nelze klonovat objekt URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Neplatný odkaz na objekt prázdného URL" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Nelze analyzovat souÄásti URL" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "neznámé" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nepodporováno" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Úroveň 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Úroveň 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Úroveň 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Je nutné uzavřít se zákazníkem další smlouvu" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "neplatné" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Není urÄena úroveň podpory" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Poskytovatel neposkytuje podporu." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Detekce problému, tedy technická podpora zajišťuje informaci o sluÄitelnosti " "produktů, asistenci pÅ™i instalaci a používání, následnou údržbu a základní " "Å™eÅ¡ení problémů. První úroveň podpory neslouží k opravám chyb v produktu." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Izolace problému, tedy podporu pÅ™i zreplikování zákazníkova problému, " "specifikace problematického místa a poskytuje Å™eÅ¡ení problémů, které neÅ™eší " "první úroveň." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "ŘeÅ¡ení problémů, tj. technická podpora, která Å™eší složité problémy " "zajiÅ¡tÄ›ním technických pracovníků, kteří vyÅ™eší vady produktů zjiÅ¡tÄ›né na " "úrovni 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Získání podpory vyžaduje další smlouvu se zákazníkem." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Neznámá volba podpory. Popis není dostupný" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Správa systému je uzamÄena aplikací s identifikátorem PID %d (%s). \n" "UkonÄete tuto aplikaci a opakujte akci." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historie:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Nelze otevřít soubor zámku: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Tato akce je právÄ› spuÅ¡tÄ›na jiným programem." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Neznámý mód shody '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Neznámý mód shody '%s' pro rys '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Chybný regulární výraz '%s': regcomp vrátil %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Neplatný regulární výraz: '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Pro '%s' je vyžadováno ověřování" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "ObraÅ¥te se na zákaznické centrum spoleÄnosti Novell a zkontrolujte, zda je " "vaÅ¡e registrace platná a zda nevyprÅ¡ela." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "NepodaÅ™ilo se pÅ™ipojit %s do %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "NepodaÅ™ilo se odpojit %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Å patný název souboru: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "PÅ™i pokusu o provedení akce '%s' nebylo otevÅ™eno médium." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Soubor '%s' nebyl nalezen na médiu '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Nemůžu zapsat do souboru '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Médium není pÅ™ipojeno" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Å patný bod pÅ™ipojení média" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Inicializace stažení (curl) '%s' selhala" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systémová výjimka '%s' na médiu '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Cesta '%s' na médiu '%s' není souborem." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Cesta '%s' na médiu '%s' není adresářem." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Chybné URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Není vyplnÄ›no hostname v URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Prázdný souborový systém v URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Chybí cíl v URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Nepodporované schéma URI v '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operace není médiem podporována" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Chyba stahování (curl) pro '%s':\n" "Kód chyby: %s\n" "Chybová zpráva: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "PÅ™i nastavení možností stahování (curl) pro '%s' doÅ¡lo k chybÄ›:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Zdroj média \"%s\" neobsahuje požadované médium" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Médium '%s' je používáno jinou instancí" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Nemůžu vysunout žádné médium" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Nemůžu vysunout médium '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Přístup k '%s' byl zamítnut." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "BÄ›hem přístupu k '%s' byl dosažen Äasový limit." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "Stažená data pÅ™ekroÄila oÄekávanou velikost '%s' souboru '%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "UmístÄ›ní '%s' je doÄasnÄ› nedostupné." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problém s SSL certifikátem, ověřte, že je certifikát certifikaÄní autority " "pro '%s' v pořádku." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "VytvoÅ™it bod pÅ™ipojení: Nelze najít adresář, do kterého lze zapisovat, pro " "vytvoÅ™ení bodu pÅ™ipojení" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Nepodporovaná HTTP ověřovací metoda '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Nejprve nainstalujte balíÄek 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Chybí vyžadovaný atribut '%s'." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Je požadován alespoň jeden z atributů „%s“ a „%s“." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Ověření podpisu selhalo" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "BalíÄek %s se zÅ™ejmÄ› poÅ¡kodil bÄ›hem pÅ™enosu. Chcete pokus opakovat?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "NepodaÅ™ilo se poskytnout balíÄek %s. Chcete jej stáhnout znovu?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Kontrola aplikování delta RPM se nezdaÅ™ila." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Aplikování delta RPM se nezdaÅ™ilo." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Zásuvný modul Service nepodporuje zmÄ›nu atributů." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Nelze poskytnout soubor '%s' z repozitáře '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Adresa URL nebyla nalezena v repozitáři." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Soubor %1%\n" " z balíÄku\n" " %2%\n" " je v konfliktu se souborem z balíÄku\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Soubor %1%\n" " z balíÄku\n" " %2%\n" " je v konfliktu se souborem instalovaným z\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Soubor %1%\n" " instalovaný z\n" " %2%\n" " je v konfliktu se souborem z balíÄku\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Soubor %1%\n" " instalovaný z\n" " %2%\n" " je v konfliktu se souborem instalovaným z\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Soubor %1%\n" " z balíÄku\n" " %2%\n" " je v konfliktu se souborem\n" " %3%\n" " z balíÄku\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Soubor %1%\n" " z balíÄku\n" " %2%\n" " je v konfliktu se souborem\n" " %3%\n" " instalovaným z\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Soubor %1%\n" " instalovaný z\n" " %2%\n" " je v konfliktu se souborem\n" " %3%\n" " z balíÄku\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Soubor %1%\n" " instalovaný z\n" " %2%\n" " je v konfliktu se souborem\n" " %3%\n" " instalovaným z\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Nemohu vytvoÅ™it sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "poruÅ¡it %s ignorováním nÄ›kterých z jeho závislostí" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "obecnÄ› ignorovat nÄ›které závislosti" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s nenáleží do repozitáře pro aktualizaci distribuce" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s má podÅ™adnou architekturu" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problém s nainstalovaným balíÄkem %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "protichůdné požadavky" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "nÄ›jaký problém se závislostmi" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "nic neposkytuje vyžádaný %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Máte povoleny vÅ¡echny vyžadované repozitáře?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "balíÄek %s neexistuje" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "nepodporovaný požadavek" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s je poskytováno systémem a nelze odinstalovat" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s nelze nainstalovat" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "nic neposkytuje %s, který je požadován %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Nelze nainstalovat %s a zároveň %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s koliduje s %s, poskytovatel: %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s nahrazuje %s, poskytovatel: %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "nainstalováno: %s, zastaralé: %s, poskytovatel: %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "vyÅ™eÅ¡itelné %s je v konfliktu s %s, které sám poskytuje" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s vyžaduje %s, ale tento požadavek nemůže být splnÄ›n" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "odstranÄ›ní poskytovatelé: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "neinstalovatelní poskytovatelé: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "neinstalovatelní poskytovatelé: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "odebrat zámek pro umožnÄ›ní odebrání %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "neinstalovat %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "ponechat %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "odebrat zámek pro umožnÄ›ní instalace položky %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Tento požadavek poÅ¡kodí váš systém!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorovat varování poÅ¡kozeného systému" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "nenabízet Å™eÅ¡ení, která zahrnují %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "neptat se na smazání vÅ¡ech balíÄků poskytujících %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "neinstalovat nejnovÄ›jší verzi %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "ponechat %s i pÅ™es podÅ™adnou architekturu" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "Instalovat %s i pÅ™es podÅ™adnou architekturu" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "ponechat zastaralý %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "instalovat %s z vylouÄeného repozitáře" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "downgrade %s na %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "zmÄ›na architektury z %s na %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instalovat %s (i se zmÄ›nou poskytovatele)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "nahrazení %s položkou %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "odinstalace %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Běží skript %%posttrans '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Běží skripty %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " provedeno" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " provádÄ›ní selhalo" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s je již provádÄ›n jako %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " provádÄ›ní pÅ™eskoÄeno bÄ›hem ukonÄování" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Chyba pÅ™i odesílání oznámení o aktualizaci." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nová zpráva o aktualizaci" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Instalace byla zruÅ¡ena podle příkazu." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Bohužel, tato verze libzypp byla sestavena bez podpory HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HALContext není pÅ™ipojen" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HALDrive není inicializovaný" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HALVolume není inicializovaný" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Nelze vytvoÅ™it pÅ™ipojení dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Nelze vytvoÅ™it kontext libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Nelze nastavit pÅ™ipojení dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Nelze inicializovat kontext HAL - je spuÅ¡tÄ›na služba hald?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Není jednotka CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM selhalo: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "NepodaÅ™ilo se importovat veÅ™ejný klÃ­Ä %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "NepodaÅ™ilo se smazat veÅ™ejný klÃ­Ä %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "BalíÄek není podepsaný!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "ZmÄ›nÄ›né konfiguraÄní soubory pro %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "Program rpm uložil %s jako %s, ale nebylo možné zjistit rozdíl" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Program rpm uložil %s jako %s.\n" "Prvních 25 řádek rozdílů:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "Program rpm vytvoÅ™il %s jako %s, ale nebylo možné zjistit rozdíl" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Program rpm vytvoÅ™il %s jako %s.\n" "Prvních 25 řádek rozdílů:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Další výstup programu rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "vytvoÅ™ena záloha %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Podpis je v pořádku" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Neznámý typ podpisu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Podpis nelze ověřit" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Podpis je v pořádku, ale klÃ­Ä není důvÄ›ryhodný" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "VeÅ™ejný klÃ­Ä podpisu není k dispozici" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Soubor neexistuje nebo podpis nemůže být zkontrolován" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Soubor není podepsaný" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Nelze inicializovat atributy mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Nelze nastavit rekurzivní atribut mutex" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Nelze inicializovat rekurzivní mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Nelze získat zámek mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Nelze uvolnit zámek mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Schéma URL nepovoluje %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Neplatná %s souÄást %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Neplatná %s souÄást" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Pro toto URL není podporována analýza Å™etÄ›zce dotazu" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL schéma je vyžadovanou souÄástí" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Neplatné schéma URL %s" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Schéma URL nepovoluje uživatelské jméno" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Schéma URL nepovoluje heslo" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Schéma URL vyžaduje souÄást hostitele" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Schéma URL nepovoluje souÄást hostitele" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Neplatná souÄást hostitele %s" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Schéma URL nepovoluje port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Neplatná souÄást portu %s" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Schéma URL vyžaduje název cesty" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relativní cesta není povolena, pokud existuje autorita" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Zakódovaný Å™etÄ›zec obsahuje bajt NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Neplatný oddÄ›lovací znak pole parametrů" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Neplatný oddÄ›lovací znak mapy parametrů" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Neplatný oddÄ›lovací znak spojení pole parametrů" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "NepodaÅ™ilo se importovat veÅ™ejný klÃ­Ä ze souboru %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "NepodaÅ™ilo se smazat veÅ™ejný klÃ­Ä %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Nelze najít dostupné zařízení loop pro pÅ™ipojení souboru obrazu z '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "obecnÄ› ignorovat nÄ›které závislosti" #~ msgid "do not keep %s installed" #~ msgstr "neudržovat %s nainstalován" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "Nemůžu vytvoÅ™it veÅ™ejný klÃ­Ä %s z klíÄenky %s do souboru %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "Pokus o import neexistujícího klíÄe %s mezi klíÄe %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Nemůžu zmÄ›nit adresář na '/' uvnitÅ™ chrootu (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Inicializace stažení (Metalink curl) selhala na '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Stažení (Metalink curl) selhalo pro '%s':\n" #~ "Chybový kód: %s\n" #~ "Chybová zpráva: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Stahování pÅ™eruÅ¡eno na %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Stahování pÅ™eruÅ¡eno uživatelem" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "BÄ›hem zakládání stahování (metalink curl) doÅ¡lo k chybÄ› v nastavení pro " #~ "'%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "NepodaÅ™ilo se stáhnout %s z %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Srbsko a ÄŒerná Hora" #~ msgid "Unknown Distribution" #~ msgstr "Neznámá distribuce" #~ msgid "ignore some dependencies of %s" #~ msgstr "ignorovat nÄ›které závislosti %s" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Soubor %s nemá kontrolní souÄet.\n" #~ "Chcete soubor pÅ™esto použít?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "NezdaÅ™ila se kontrola integrity souboru %s s následujícím klíÄem:\n" #~ "%s|%s|%s\n" #~ " Chcete soubor pÅ™esto použít?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Soubor %s má neplatný kontrolní souÄet.\n" #~ "OÄekáváno %s, nalezeno %s\n" #~ "Chcete soubor pÅ™esto použít?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Soubor %s má neznámý kontrolní souÄet %s.\n" #~ "Chcete soubor pÅ™esto použít?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Soubor %s není podepsán.\n" #~ "Chcete jej pÅ™esto použít?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Soubor %s je podepsán neznámým klíÄem:\n" #~ "%s|%s|%s\n" #~ " Chcete soubor pÅ™esto použít?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Byl nalezen nedůvÄ›ryhodný klíÄ:\n" #~ "%s|%s|%s\n" #~ " Chcete mu důvěřovat?" libzypp-17.7.0/po/cy.po000066400000000000000000002714601334444677500147230ustar00rootroot00000000000000# Welsh message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2003 SuSE Linux AG. # Kevin Donnelly , 2003. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2003-09-23 10:33+0200\n" "Last-Translator: Kevin Donnelly \n" "Language-Team: Welsh \n" "Language: cy\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=(n == 0 ? 0 : n == 1 ? 1 : n < 6 ? 2 : n == " "6 ? 3 : 4);\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "Modd" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 #, fuzzy msgid "Armenia" msgstr "Affrica" #. :ARM:051: #: zypp/CountryCode.cc:165 #, fuzzy msgid "Netherlands Antilles" msgstr "Yr Iseldiroedd" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 #, fuzzy msgid "Antarctica" msgstr "Iwerydd" #. :ATA:010: #: zypp/CountryCode.cc:168 #, fuzzy msgid "Argentina" msgstr "Arizona" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Awstria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Awstralia" #. :AUS:036: #: zypp/CountryCode.cc:172 #, fuzzy msgid "Aruba" msgstr "Dubai" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "" #. :AZE:031: #: zypp/CountryCode.cc:175 #, fuzzy msgid "Bosnia and Herzegovina" msgstr "Bosnia & Herzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Gwlad Belg" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bwlgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 #, fuzzy msgid "Burundi" msgstr "Brunei" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "" #. :BOL:068: #: zypp/CountryCode.cc:187 #, fuzzy msgid "Brazil" msgstr "Dwyrain Brasil" #. :BRA:076: #: zypp/CountryCode.cc:188 #, fuzzy msgid "Bahamas" msgstr "Panama" #. :BHS:044: #: zypp/CountryCode.cc:189 #, fuzzy msgid "Bhutan" msgstr "Bahrain" #. :BTN:064: #: zypp/CountryCode.cc:190 #, fuzzy msgid "Bouvet Island" msgstr "Queensland" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "" #. :BWA:072: #: zypp/CountryCode.cc:192 #, fuzzy msgid "Belarus" msgstr "Beirut" #. :BLR:112: #: zypp/CountryCode.cc:193 #, fuzzy msgid "Belize" msgstr "Gwlad Belg" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 #, fuzzy msgid "Congo" msgstr "Hongkong" #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "Gweriniaeth Czech" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Y Swistir" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "" #. :COK:184: #: zypp/CountryCode.cc:202 #, fuzzy msgid "Chile" msgstr "Tseina" #. :CHL:152: #: zypp/CountryCode.cc:203 #, fuzzy msgid "Cameroon" msgstr "Cairo" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Tseina" #. :CHN:156: #: zypp/CountryCode.cc:205 #, fuzzy msgid "Colombia" msgstr "Colombo" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 #, fuzzy msgid "Cuba" msgstr "Ceuta" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 #, fuzzy msgid "Christmas Island" msgstr "Chile Easter Island" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Gweriniaeth Czech" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Yr Almaen" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Denmarc" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 #, fuzzy msgid "Dominican Republic" msgstr "Gweriniaeth Czech" #. :DOM:214: #: zypp/CountryCode.cc:217 #, fuzzy msgid "Algeria" msgstr "Algiers" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Yr Aifft" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Sbaen" #. :ESP:724: #: zypp/CountryCode.cc:224 #, fuzzy msgid "Ethiopia" msgstr "Estonia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Ffindir" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 #, fuzzy msgid "Faroe Islands" msgstr "Iwerddon" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Ffrainc" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Y Deyrnas Unedig" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Yr Almaen" #: zypp/CountryCode.cc:238 #, fuzzy msgid "Ghana" msgstr "Gaza" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 #, fuzzy msgid "Greenland" msgstr "Iwerddon" #. :GRL:304: #: zypp/CountryCode.cc:241 #, fuzzy msgid "Gambia" msgstr "Jamaica" #. :GMB:270: #: zypp/CountryCode.cc:242 #, fuzzy msgid "Guinea" msgstr "Guam" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Groeg" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 #, fuzzy msgid "Guyana" msgstr "Guam" #. :GUY:328: #: zypp/CountryCode.cc:251 #, fuzzy msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 #, fuzzy msgid "Honduras" msgstr "Awr" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croatia" #. :HRV:191: #: zypp/CountryCode.cc:255 #, fuzzy msgid "Haiti" msgstr "Hawaii" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hwngari" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Iwerddon" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 #, fuzzy msgid "India" msgstr "Inetd" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 #, fuzzy msgid "Iraq" msgstr "Israel" #. :IRQ:368: #: zypp/CountryCode.cc:264 #, fuzzy msgid "Iran" msgstr "Iwerddon" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Gwlad yr Iâ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Yr Eidal" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Siapan" #. :JPN:392: #: zypp/CountryCode.cc:271 #, fuzzy msgid "Kenya" msgstr "Corea" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 #, fuzzy msgid "Cambodia" msgstr "Samoa" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 #, fuzzy msgid "North Korea" msgstr "Gogledd Iwerddon" #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "Pegwn y De" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lithuania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latfia" #. :LVA:428: #: zypp/CountryCode.cc:292 #, fuzzy msgid "Libya" msgstr "Lima" #. :LBY:434: #: zypp/CountryCode.cc:293 #, fuzzy msgid "Morocco" msgstr "Monaco" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldofa" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Monaco" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "Shanghai" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 #, fuzzy msgid "Mali" msgstr "Malta" #. :MLI:466: #: zypp/CountryCode.cc:302 #, fuzzy msgid "Myanmar" msgstr "Panama" #. :MMR:104: #: zypp/CountryCode.cc:303 #, fuzzy msgid "Mongolia" msgstr "Monrovia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 #, fuzzy msgid "Northern Mariana Islands" msgstr "Gogledd Iwerddon" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 #, fuzzy msgid "Mauritania" msgstr "Lithuania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 #, fuzzy msgid "Mauritius" msgstr "Martinique" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "" #. :MDV:462: #: zypp/CountryCode.cc:312 #, fuzzy msgid "Malawi" msgstr "Malta" #. :MWI:454: #: zypp/CountryCode.cc:313 #, fuzzy msgid "Mexico" msgstr "Mecsico Cyffredinol" #. :MEX:484: #: zypp/CountryCode.cc:314 #, fuzzy msgid "Malaysia" msgstr "Malta" #. :MYS:458: #: zypp/CountryCode.cc:315 #, fuzzy msgid "Mozambique" msgstr "Martinique" #. :MOZ:508: #: zypp/CountryCode.cc:316 #, fuzzy msgid "Namibia" msgstr "Nairobi" #. :NAM:516: #: zypp/CountryCode.cc:317 #, fuzzy msgid "New Caledonia" msgstr "Macedonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 #, fuzzy msgid "Norfolk Island" msgstr "Gogledd Iwerddon" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "" #. :NGA:566: #: zypp/CountryCode.cc:321 #, fuzzy msgid "Nicaragua" msgstr "Managua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Yr Iseldiroedd" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norwy" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 #, fuzzy msgid "Niue" msgstr "Munud" #. :NIU:570: #: zypp/CountryCode.cc:327 #, fuzzy msgid "New Zealand" msgstr "Yr Iseldiroedd" #. :NZL:554: #: zypp/CountryCode.cc:328 #, fuzzy msgid "Oman" msgstr "Rh" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 #, fuzzy msgid "Peru" msgstr "Perth" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "" #. :PHL:608: #: zypp/CountryCode.cc:334 #, fuzzy msgid "Pakistan" msgstr "Pitcairn" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Gwlad y Pwyl" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portiwgal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 #, fuzzy msgid "Paraguay" msgstr "Managua" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 #, fuzzy msgid "Reunion" msgstr "Rhedeg" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Gwasanaeth" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 #, fuzzy msgid "Rwanda" msgstr "Canada" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 #, fuzzy msgid "Sudan" msgstr "Sbaen" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sweden" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slofenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slofakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 #, fuzzy msgid "Somalia" msgstr "Romania" #. :SOM:706: #: zypp/CountryCode.cc:363 #, fuzzy msgid "Suriname" msgstr "Enw'r gwasanae&th" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 #, fuzzy msgid "Swaziland" msgstr "Y Swistir" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 #, fuzzy msgid "Chad" msgstr "Wedi'u Newid" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 #, fuzzy msgid "Togo" msgstr "Tokyo" #. :TGO:768: #: zypp/CountryCode.cc:372 #, fuzzy msgid "Thailand" msgstr "Ffindir" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "" #. :TKM:795: #: zypp/CountryCode.cc:376 #, fuzzy msgid "Tunisia" msgstr "Tunis" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Twrci" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 #, fuzzy msgid "Tuvalu" msgstr "Zulu" #. :TUV:798: #: zypp/CountryCode.cc:382 #, fuzzy msgid "Taiwan" msgstr "Vatican" #. :TWN:158: #: zypp/CountryCode.cc:383 #, fuzzy msgid "Tanzania" msgstr "Tasmania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Wcrain" #. :UKR:804: #: zypp/CountryCode.cc:385 #, fuzzy msgid "Uganda" msgstr "Canada" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 #, fuzzy msgid "South Africa" msgstr "Affrica" #. :ZAF:710: #: zypp/CountryCode.cc:402 #, fuzzy msgid "Zambia" msgstr "Jamaica" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "&Dileu" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Y gorchymyn a weithredir wrth gysylltu" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 #, fuzzy msgid "Afar" msgstr "Affrica" #. language code: abk ab #: zypp/LanguageCode.cc:163 #, fuzzy msgid "Abkhazian" msgstr "Albania" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 #, fuzzy msgid "Adangme" msgstr "&Uwch" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 #, fuzzy msgid "Afrikaans" msgstr "Affrica" #. language code: ain #: zypp/LanguageCode.cc:179 #, fuzzy msgid "Ainu" msgstr "Gweithred" #. language code: aka ak #: zypp/LanguageCode.cc:181 #, fuzzy msgid "Akan" msgstr "Alaska" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 #, fuzzy msgid "Albanian" msgstr "Albania" #. language code: ale #: zypp/LanguageCode.cc:189 #, fuzzy msgid "Aleut" msgstr "Aleutian" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "Iaith" #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "Gogledd Iwerddon" #. language code: amh am #: zypp/LanguageCode.cc:195 #, fuzzy msgid "Amharic" msgstr "Affrica" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "Iaith" #. language code: ara ar #: zypp/LanguageCode.cc:201 #, fuzzy msgid "Arabic" msgstr "Affrica" #. language code: arc #: zypp/LanguageCode.cc:203 #, fuzzy msgid "Aramaic" msgstr "Jamaica" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 #, fuzzy msgid "Armenian" msgstr "Aleutian" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 #, fuzzy msgid "Assamese" msgstr "Negeseuon" #. language code: ast #: zypp/LanguageCode.cc:221 #, fuzzy msgid "Asturian" msgstr "Awstria" #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "Awstralia" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "Awstralia" #. language code: ava av #: zypp/LanguageCode.cc:227 #, fuzzy msgid "Avaric" msgstr "Affrica" #. language code: ave ae #: zypp/LanguageCode.cc:229 #, fuzzy msgid "Avestan" msgstr "Aleutian" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "" #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "Canada" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "Iaith" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 #, fuzzy msgid "Bambara" msgstr "Samarkand" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "Pennawd" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 #, fuzzy msgid "Basa" msgstr "Alaska" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 #, fuzzy msgid "Belarusian" msgstr "Bwlgaria" #. language code: bem #: zypp/LanguageCode.cc:261 #, fuzzy msgid "Bemba" msgstr "Bermuda" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 #, fuzzy msgid "Bihari" msgstr "Bahrain" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 #, fuzzy msgid "Bini" msgstr "Brunei" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 #, fuzzy msgid "Breton" msgstr "Freetown" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 #, fuzzy msgid "Buriat" msgstr "Bwlgaria" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 #, fuzzy msgid "Bulgarian" msgstr "Bwlgaria" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 #, fuzzy msgid "Caddo" msgstr "Cairo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 #, fuzzy msgid "Carib" msgstr "Cairo" #. language code: cat ca #: zypp/LanguageCode.cc:307 #, fuzzy msgid "Catalan" msgstr "Casablanca" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 #, fuzzy msgid "Cebuano" msgstr "Ceuta" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 #, fuzzy msgid "Chamorro" msgstr "Cairo" #. language code: chb #: zypp/LanguageCode.cc:317 #, fuzzy msgid "Chibcha" msgstr "Tseina" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 #, fuzzy msgid "Chagatai" msgstr "Shanghai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 #, fuzzy msgid "Chinese" msgstr "Tseina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 #, fuzzy msgid "Mari" msgstr "Darwin" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "Iaith" #. language code: cop #: zypp/LanguageCode.cc:347 #, fuzzy msgid "Coptic" msgstr "Costa Rica" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 #, fuzzy msgid "Corsican" msgstr "Costa Rica" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 #, fuzzy msgid "Cree" msgstr "Cre&u" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "" #. language code: dak #: zypp/LanguageCode.cc:373 #, fuzzy msgid "Dakota" msgstr "Dakar" #. language code: dan da #: zypp/LanguageCode.cc:375 #, fuzzy msgid "Danish" msgstr "&Gorffen" #. language code: dar #: zypp/LanguageCode.cc:377 #, fuzzy msgid "Dargwa" msgstr "Darwin" #. language code: day #: zypp/LanguageCode.cc:379 #, fuzzy msgid "Dayak" msgstr "Dakar" #. language code: del #: zypp/LanguageCode.cc:381 #, fuzzy msgid "Delaware" msgstr "Caledwedd" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 #, fuzzy msgid "Dinka" msgstr "Dominica" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 #, fuzzy msgid "Duala" msgstr "Palau" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 #, fuzzy msgid "Dutch" msgstr "De" #. language code: dyu #: zypp/LanguageCode.cc:405 #, fuzzy msgid "Dyula" msgstr "Dubai" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 #, fuzzy msgid "Esperanto" msgstr "Dwyrain" #. language code: est et #: zypp/LanguageCode.cc:423 #, fuzzy msgid "Estonian" msgstr "Estonia" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 #, fuzzy msgid "Fang" msgstr "Baneri" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "" #. language code: fat #: zypp/LanguageCode.cc:433 #, fuzzy msgid "Fanti" msgstr "Iwerydd" #. language code: fij fj #: zypp/LanguageCode.cc:435 #, fuzzy msgid "Fijian" msgstr "Fiji" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "" #. language code: fin fi #: zypp/LanguageCode.cc:439 #, fuzzy msgid "Finnish" msgstr "&Gorffen" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 #, fuzzy msgid "French" msgstr "Greenwich" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 #, fuzzy msgid "Frisian" msgstr "Yn gorffen" #. language code: ful ff #: zypp/LanguageCode.cc:455 #, fuzzy msgid "Fulah" msgstr "Baneri" #. language code: fur #: zypp/LanguageCode.cc:457 #, fuzzy msgid "Friulian" msgstr "Ffindir" #. language code: gaa #: zypp/LanguageCode.cc:459 #, fuzzy msgid "Ga" msgstr "Guam" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 #, fuzzy msgid "Gbaya" msgstr "Gaza" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr "Yr Almaen" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 #, fuzzy msgid "German" msgstr "Yr Almaen" #. language code: gez #: zypp/LanguageCode.cc:475 #, fuzzy msgid "Geez" msgstr "Groeg" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "" #. language code: glg gl #: zypp/LanguageCode.cc:483 #, fuzzy msgid "Galician" msgstr "Vatican" #. language code: glv gv #: zypp/LanguageCode.cc:485 #, fuzzy msgid "Manx" msgstr "&Uchaf" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 #, fuzzy msgid "Gujarati" msgstr "Cyfnod" #. language code: gwi #: zypp/LanguageCode.cc:509 #, fuzzy msgid "Gwich'in" msgstr "Michigan" #. language code: hai #: zypp/LanguageCode.cc:511 #, fuzzy msgid "Haida" msgstr "Caledwedd" #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "Vatican" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 #, fuzzy msgid "Hawaiian" msgstr "Hawaii" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "" #. language code: her hz #: zypp/LanguageCode.cc:521 #, fuzzy msgid "Herero" msgstr "gwall" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 #, fuzzy msgid "Hmong" msgstr "Hongkong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 #, fuzzy msgid "Hungarian" msgstr "Hwngari" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 #, fuzzy msgid "Icelandic" msgstr "Gwlad yr Iâ" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "Lithuania" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 #, fuzzy msgid "Interlingue" msgstr "Parhau" #. language code: ilo #: zypp/LanguageCode.cc:559 #, fuzzy msgid "Iloko" msgstr "Tokyo" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "Iaith" #. language code: ita it #: zypp/LanguageCode.cc:577 #, fuzzy msgid "Italian" msgstr "Yr Eidal" #. language code: jav jv #: zypp/LanguageCode.cc:579 #, fuzzy msgid "Javanese" msgstr "Siapan" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 #, fuzzy msgid "Japanese" msgstr "Siapan" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 #, fuzzy msgid "Kabyle" msgstr "Alluogir" #. language code: kac #: zypp/LanguageCode.cc:593 #, fuzzy msgid "Kachin" msgstr "Bahrain" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 #, fuzzy msgid "Kamba" msgstr "Katmandu" #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "Canada" #. language code: kar #: zypp/LanguageCode.cc:601 #, fuzzy msgid "Karen" msgstr "Corea" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 #, fuzzy msgid "Kawi" msgstr "Darwin" #. language code: kaz kk #: zypp/LanguageCode.cc:609 #, fuzzy msgid "Kazakh" msgstr "Gaza" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 #, fuzzy msgid "Kirghiz" msgstr "Virgin" #. language code: kmb #: zypp/LanguageCode.cc:627 #, fuzzy msgid "Kimbundu" msgstr "Katmandu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 #, fuzzy msgid "Kongo" msgstr "Hongkong" #. language code: kor ko #: zypp/LanguageCode.cc:635 #, fuzzy msgid "Korean" msgstr "Corea" #. language code: kos #: zypp/LanguageCode.cc:637 #, fuzzy msgid "Kosraean" msgstr "Corea" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 #, fuzzy msgid "Kuanyama" msgstr "Panama" #. language code: kum #: zypp/LanguageCode.cc:649 #, fuzzy msgid "Kumyk" msgstr "Dymi" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 #, fuzzy msgid "Kutenai" msgstr "Kuwait" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 #, fuzzy msgid "Lahnda" msgstr "Canada" #. language code: lam #: zypp/LanguageCode.cc:659 #, fuzzy msgid "Lamba" msgstr "Lima" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 #, fuzzy msgid "Latin" msgstr "Lleoliad" #. language code: lav lv #: zypp/LanguageCode.cc:665 #, fuzzy msgid "Latvian" msgstr "Latfia" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "Luxembourg" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 #, fuzzy msgid "Lithuanian" msgstr "Lithuania" #. language code: lol #: zypp/LanguageCode.cc:675 #, fuzzy msgid "Mongo" msgstr "Monaco" #. language code: loz #: zypp/LanguageCode.cc:677 #, fuzzy msgid "Lozi" msgstr "Mew&ngofnodi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "Luxembourg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "Canada" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "Tahiti" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 #, fuzzy msgid "Macedonian" msgstr "Macedonia" #. language code: mad #: zypp/LanguageCode.cc:699 #, fuzzy msgid "Madurese" msgstr "Llygoden" #. language code: mag #: zypp/LanguageCode.cc:701 #, fuzzy msgid "Magahi" msgstr "Managua" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 #, fuzzy msgid "Makasar" msgstr "Dakar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "" #. language code: man #: zypp/LanguageCode.cc:711 #, fuzzy msgid "Mandingo" msgstr "Rhybudd" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 #, fuzzy msgid "Maori" msgstr "Monrovia" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 #, fuzzy msgid "Masai" msgstr "Tasmania" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "Malta" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "Manila" #. language code: men #: zypp/LanguageCode.cc:731 #, fuzzy msgid "Mende" msgstr "Modd" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "Managua" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "Managua" #. language code: mlt mt #: zypp/LanguageCode.cc:745 #, fuzzy msgid "Maltese" msgstr "Malta" #. language code: mnc #: zypp/LanguageCode.cc:747 #, fuzzy msgid "Manchu" msgstr "&Cychwyn" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "Managua" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "Moldofa" #. language code: mon mn #: zypp/LanguageCode.cc:757 #, fuzzy msgid "Mongolian" msgstr "Monrovia" #. language code: mos #: zypp/LanguageCode.cc:759 #, fuzzy msgid "Mossi" msgstr "Llygoden" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "Iaith" #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "Iaith" #. language code: mus #: zypp/LanguageCode.cc:765 #, fuzzy msgid "Creek" msgstr "Cre&u" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 #, fuzzy msgid "Marwari" msgstr "Caledwedd" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "Managua" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "Gogledd Iwerddon" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "Yr Almaen" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 #, fuzzy msgid "Norwegian" msgstr "Norwy" #. language code: nso #: zypp/LanguageCode.cc:813 #, fuzzy msgid "Northern Sotho" msgstr "Gogledd Iwerddon" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "Iaith" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 #, fuzzy msgid "Chichewa" msgstr "Tseina" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 #, fuzzy msgid "Nyoro" msgstr "Gogledd" #. language code: nzi #: zypp/LanguageCode.cc:827 #, fuzzy msgid "Nzima" msgstr "Lima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 #, fuzzy msgid "Osage" msgstr "Negeseuon" #. language code: oss os #: zypp/LanguageCode.cc:839 #, fuzzy msgid "Ossetian" msgstr "Aleutian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "Iaith" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 #, fuzzy msgid "Pangasinan" msgstr "Panama" #. language code: pal #: zypp/LanguageCode.cc:849 #, fuzzy msgid "Pahlavi" msgstr "Palau" #. language code: pam #: zypp/LanguageCode.cc:851 #, fuzzy msgid "Pampanga" msgstr "Tasmania" #. language code: pan pa #: zypp/LanguageCode.cc:853 #, fuzzy msgid "Panjabi" msgstr "Panama" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "Palau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 #, fuzzy msgid "Persian" msgstr "&Fersiwn RPC" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 #, fuzzy msgid "Pali" msgstr "Palau" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 #, fuzzy msgid "Portuguese" msgstr "Portiwgal" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "Iaith" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "Siapan" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "Romania" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 #, fuzzy msgid "Romanian" msgstr "Romania" #. language code: run rn #: zypp/LanguageCode.cc:901 #, fuzzy msgid "Rundi" msgstr "Rhedeg" #. language code: rus ru #: zypp/LanguageCode.cc:903 #, fuzzy msgid "Russian" msgstr "Rwsia" #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "Canada" #. language code: sag sg #: zypp/LanguageCode.cc:907 #, fuzzy msgid "Sango" msgstr "Saigon" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Iaith" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 #, fuzzy msgid "Sasak" msgstr "Samoa" #. language code: sat #: zypp/LanguageCode.cc:921 #, fuzzy msgid "Santali" msgstr "Shanghai" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "" #. language code: scn #: zypp/LanguageCode.cc:927 #, fuzzy msgid "Sicilian" msgstr "Michigan" #. language code: sco #: zypp/LanguageCode.cc:929 #, fuzzy msgid "Scots" msgstr "De" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 #, fuzzy msgid "Croatian" msgstr "Croatia" #. language code: sel #: zypp/LanguageCode.cc:935 #, fuzzy msgid "Selkup" msgstr "Hepgor" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "Iaith" #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "Shanghai" #. language code: sid #: zypp/LanguageCode.cc:945 #, fuzzy msgid "Sidamo" msgstr "Samoa" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Iaith" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 #, fuzzy msgid "Slovak" msgstr "Slofakia" #. language code: slv sl #: zypp/LanguageCode.cc:959 #, fuzzy msgid "Slovenian" msgstr "Slofenia" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 #, fuzzy msgid "Northern Sami" msgstr "Gogledd Iwerddon" #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Iaith" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 #, fuzzy msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 #, fuzzy msgid "Shona" msgstr "Slofenia" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 #, fuzzy msgid "Soninke" msgstr "Parhau" #. language code: sog #: zypp/LanguageCode.cc:981 #, fuzzy msgid "Sogdian" msgstr "Mew&ngofnodi" #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "Romania" #. language code: son #: zypp/LanguageCode.cc:985 #, fuzzy msgid "Songhai" msgstr "Shanghai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 #, fuzzy msgid "Spanish" msgstr "Sbaen" #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "Rhybudd" #. language code: srr #: zypp/LanguageCode.cc:993 #, fuzzy msgid "Serer" msgstr "Gweinydd" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 #, fuzzy msgid "Swati" msgstr "Sbaen" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 #, fuzzy msgid "Susu" msgstr "Cyflwr" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 #, fuzzy msgid "Swahili" msgstr "Hawaii" #. language code: swe sv #: zypp/LanguageCode.cc:1009 #, fuzzy msgid "Swedish" msgstr "Sweden" #. language code: syr #: zypp/LanguageCode.cc:1011 #, fuzzy msgid "Syriac" msgstr "Gwasanaeth" #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "Tahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 #, fuzzy msgid "Tamil" msgstr "Tasmania" #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "Qatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 #, fuzzy msgid "Telugu" msgstr "Gwlad Belg" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 #, fuzzy msgid "Tetum" msgstr "&Profi" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 #, fuzzy msgid "Thai" msgstr "Tahiti" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 #, fuzzy msgid "Klingon" msgstr "Saigon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 #, fuzzy msgid "Tamashek" msgstr "Tashkent" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "Tasmania" #. language code: tso ts #: zypp/LanguageCode.cc:1063 #, fuzzy msgid "Tsonga" msgstr "Estonia" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "Twrci" #. language code: tum #: zypp/LanguageCode.cc:1067 #, fuzzy msgid "Tumbuka" msgstr "Timbuktu" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "Iaith" #. language code: tur tr #: zypp/LanguageCode.cc:1071 #, fuzzy msgid "Turkish" msgstr "Tunis" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 #, fuzzy msgid "Tuvinian" msgstr "Tunis" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 #, fuzzy msgid "Ukrainian" msgstr "Wcrain" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 #, fuzzy msgid "Vai" msgstr "Vatican" #. language code: ven ve #: zypp/LanguageCode.cc:1099 #, fuzzy msgid "Venda" msgstr "Grenada" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 #, fuzzy msgid "Votic" msgstr "Vatican" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Managua" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 #, fuzzy msgid "Welsh" msgstr "Gorllewin" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "Iaith" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 #, fuzzy msgid "Yapese" msgstr "Ie" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "Iaith" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 #, fuzzy msgid "Zenaga" msgstr "Grenada" #. language code: zha za #: zypp/LanguageCode.cc:1143 #, fuzzy msgid "Zhuang" msgstr "Wedi'u Newid" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 #, fuzzy msgid "Zuni" msgstr "Tunis" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "Bydd pecyn %1 yn cael ei arsefydlu" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Couldn't open file: %s." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Arsefydlu %s: \"%s\"" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Arsefydlu %s: \"%s\"" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "anhysbys" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "Arsefydlu" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Arsefydlu %s: \"%s\"" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Arsefydlu %s: \"%s\"" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "Saerniaeth:" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Bydd pecyn %1 yn cael ei arsefydlu" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "Rhaid arsefydlu'r pecynnau yma:" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "Methodd yr arsefydliad." #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Arsefydlu %s: \"%s\"" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "Arsefydlu" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "Arsefydlu %s: \"%s\"" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Arsefydlu %s: \"%s\"" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Gosod gyrrydd..." #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "&Dileu" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Arsefydlu %s: \"%s\"" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "heb gysylltu" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 #, fuzzy msgid "Package is not signed!" msgstr "Mae llofnod annilys gan yr RPM." #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Copïo ffeiliau ffurfweddu i'r cysawd a osodwyd" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "Arsefydlu %s: \"%s\"" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "%s remove failed" #~ msgstr "Methodd rpm." #, fuzzy #~ msgid "%s install failed" #~ msgstr "Methodd yr arsefydliad." #, fuzzy #~ msgid "%s installed ok" #~ msgstr "&Ie, gosod" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Gosod gyrrydd..." #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Gosod gyrrydd..." #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Gosod gyrrydd..." #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "Gosod gyrrydd..." #, fuzzy #~ msgid "install %s" #~ msgstr "Arsefydlu %s: \"%s\"" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "Gosod gyrrydd..." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." #, fuzzy #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "Rhaid arsefydlu'r pecynnau yma:" #, fuzzy #~ msgid "No need to install %s" #~ msgstr "&Ie, gosod" #, fuzzy #~ msgid ", Action: " #~ msgstr "Gweithred" #, fuzzy #~ msgid "Establishing %s" #~ msgstr "Arsefydlu %s: \"%s\"" #, fuzzy #~ msgid " Error!" #~ msgstr "Gwall" #~ msgid "Ok" #~ msgstr "Iawn" #, fuzzy #~ msgid "The package file has incorrect MD5 sum" #~ msgstr "Mae llofnod annilys gan yr RPM." #, fuzzy #~ msgid "The package archive has incorrect MD5 sum" #~ msgstr "Mae llofnod annilys gan yr RPM." #, fuzzy #~ msgid "Default" #~ msgstr "Rhag&osod" #, fuzzy #~ msgid "to be installed (soft)" #~ msgstr "&Ymgychwyn cysawd a osodwyd" #, fuzzy #~ msgid "to be uninstalled" #~ msgstr "ni arsefydlir y rhaglen" libzypp-17.7.0/po/da.po000066400000000000000000003136331334444677500146730ustar00rootroot00000000000000# Copyright (C) YEAR SuSE Linux GmbH, Nuernberg # This file is distributed under the same license as the PACKAGE package. # Martin Schlander , 2015. # scootergrisen, 2017. msgid "" msgstr "" "Project-Id-Version: libzypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-15 11:59+0000\n" "Last-Translator: scootergrisen \n" "Language-Team: Danish " "\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-undtagelse" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tvivlsom type '%s' for %u byte checksum '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Ukendt land: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ingen kode" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Forenede Arabiske Emirater" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanien" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenien" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Hollandske Antiller" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktis" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikansk Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Østrig" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australien" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Alandøerne" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbajdsjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnien-Herzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgien" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarien" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasilien" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet-øen" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Hviderusland" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosøerne" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Centralafrikanske Republik" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Schweiz" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Elfenbenskysten" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook-øerne" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Cameroun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kap Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Juleøen" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cypern" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tjekkiet" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Tyskland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanske Republik" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeriet" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estland" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypten" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Vest-Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanien" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopien" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsøerne (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "De forenede Micronesiske stater" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Færøerne" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankrig" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitansk Frankrig" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Storbritanien" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgien" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Fransk Guinea" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grønland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ækvatorialguinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grækenland" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Syd-Georgien og sydlige Sandwich-øer" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard Øen og McDonald Øerne" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatien" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungarn" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesien" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isle of Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indien" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britisk omrÃ¥de indiske ocean" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italien" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisistan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodia" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comorerne" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Sankt Kitts og Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Nord Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Syd Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Caymanøerne" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kasakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Sankt Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litauen" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letland" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Liberia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavien" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshalløerne" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonien" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongoliet" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Nordmarianerne" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauretanien" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldiverne" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Ny Caledonien" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk Øen" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holland" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norge" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "New Zeeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Fransk Polynesien" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Ny Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filippinerne" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polen" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Sankt Pierre og Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palæstinensisk territorie" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumænien" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbien" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russiske føderation" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudiarabien" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salomonøerne" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellerne" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sverige" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sankt Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenien" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard og Jan Mayen øerne" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakiet" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé og Príncipe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syrien" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- og Caicos-øerne" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tchad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Franske sydlige territorier" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadzjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunesien" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Øst-Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Tyrkiet" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad og Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraine" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Fjerne, mindre øer, USA" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "USA" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikanstaten" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Sankt Vincent og Grenadinerne" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Jomfruøerne (britisk)" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Jomfruøerne (USA)" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis og Futuna øerne" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sydafrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Leverer" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Præ-kræver" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Kræver" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflikter" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Forælder" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Anbefaler" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "ForeslÃ¥r" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Forbedringer" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Supplerer" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Kunne ikke Ã¥bne pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Kan ikke Ã¥bne dataledning (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Kan ikke skifte rodmappe til '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Kan ikke skifte mappe til \"%s\" indenfor chroot \"%s\" (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Kan ikke skifte mappe til \"%s\" (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Kan ikke eksekvere '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Kan ikke forgrene (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Kommando afsluttet med status %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Kommando dræbtes af signalet %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Kommando afsluttet med ukendt fejl." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Prøvede at importere ikke-eksisterende nøgle %s ind i nøgleringen %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Kunne ikke importere nøgle." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Sletning af nøgle fejlede." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Signaturfilen %s blev ikke fundet" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ukendt sprog: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazian" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinese" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adygejiensk" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiatisk (Andre)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili (Kunstsprog)" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadian" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albansk" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonkine sprog" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Sydaltaisk" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Engelsk, Gammel (ca. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apachesprog" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabisk" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramæisk" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonisk" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armensk" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucariask" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Kunstige (Andre)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturisk" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapaskiske sprog" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australske sprog" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarisk" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Aserbadjansk" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke sprog" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinesisk" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskisk" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltisk (Andre)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Hviderussisk" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalsk" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber-sprog" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika (Blackfoot)" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (Andre)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnisk" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonsk" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesien)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginesisk" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarsk" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmesisk" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Central Amerikanske Indian (Andre)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalansk" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukasisk (Andre)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltisk (Andre)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Chechen" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kinesisk" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Church Slavic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Chamiske sprog" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Coptic" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corsicansk" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creolsk og Pidgin - engelsk-baseret (andre)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creolsk og Pidgin - fransk-baseret (andre)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creolsk og Pidgin - portugisisk-baseret (andre)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Crimean Tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creoles og Pidgins (andre)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kasjubisk" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitisk (Andre)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tjekkisk" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dansk" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Athapan-slavisk" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiansk (Andre)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Nedre sorbiansk" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Hollandsk, Middelalder (ca. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Hollandsk" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egyptisk (Oldtids-)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamitisk" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engelsk" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Engelsk, Middelalder (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonisk" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Færøsk" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijian" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filippinsk" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finsk" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finno-Ugrisk (Andre)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Fransk" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Fransk, Middelalder (ca. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Fransk, Gammel (ca. 842-1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisian" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulian" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germanske (andre)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiansk" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Tysk" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertesisk" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gælisk" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irsk" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galicisk" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Højtysk, Middelalder (ca. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Højtysk, Gammel (ca. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gothisk" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Græsk, Oldtid (til 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Græsk, Moderne (fra 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitisk" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiiansk" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebraisk" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindu" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittitisk" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Øvre sorbiansk" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungarnsk" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandsk" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indisk (Andre)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesisk" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-Europæisk (Andre)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iransk (Andre)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokesiske sprog" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiensk" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanesisk" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japansk" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Jødisk-persisk" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Jødisk-arabisk" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabylisk" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachinsk" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kasakhisk" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardisk" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (Andre)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmersk" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanesisk" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Congo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreansk" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeansk" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkarisk" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdisk" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latinsk" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Lettisk" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgansk" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litausk" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxembourgsk" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya og Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonsk" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Maduresisk" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallesisk" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesisk (Malayo-Polynesisk)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malaysisk" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irsk, Middelalder (ca. 900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Diverse sprog" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Andre)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Madagaskariansk" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltesisk" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobosprog" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavisk" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolisk" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Flere sprog" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda sprog" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandesisk" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Mayanske sprog" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Nordamerikansk indisk" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitansk" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, syd" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, nord" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Nedertysk" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofaniansk (Niger-Congo)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueansk" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norsk" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norse, gammel" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norsk" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Nordsotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubianske sprog" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Traditionel newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (efter Ã¥r 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Tyrkisk, Osmannisk (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomianske sprog" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuan-Australsk (Andre)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinansk" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauansk" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persisk, gammel (ca. 600-400 F.K.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persisk" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filippinsk (andre)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fønikisk" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polsk" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeiansk" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugisisk" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakritsprog" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provencalsk, Gammel (til 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthanisk" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongansk" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romansk (Andre)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-Romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumænsk" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russisk" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Sydamerikansk Indiansk (Andre)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salishanske sprog" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritansk Aramæisk" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbisk" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliansk" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Skotsk" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatisk" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitisk (Andre)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irsk, Gammel (Indtil ca. 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Tegnsprog" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouxsprog" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetansk (Andre)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavisk (Andre)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakkisk" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovensk" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sydsamisk (Lapland)" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Nordsamisk" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Samiske sprog (andre)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule-samisk" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Samisk" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoan" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Samisk" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spansk" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinian" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Saharansk (Sub-Saharansk Afrikansk)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundansk" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumeriansk" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Svensk" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syrisk" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitisk" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Thai (andre)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamilsk" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetansk" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tongaøerne)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshiansk" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmen" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupisprog" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Tyrkisk" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaisk (Turko-Tatarisk)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuviniansk" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritisk" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainsk" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Ubestemt" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbekisk" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamesisk" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakashanske sprog" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Walisisk" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbianske sprog" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jødisk" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupiske sprog" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Følgende handlinger udføres:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "udløber ikke" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "udløbet: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "udløber: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(udløber ikke)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(UDLØBET)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(udløber indenfor 24 t.)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(udløber om %d dag)" msgstr[1] "(udløber om %d dage)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Leder efter gpg nøgle-ID'et %1% i mellemlageret %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Leder efter gpg nøgle-ID'et %1% i softwarearkivet %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "Softwarekilden %1% definerer ikke yderligere 'gpgkey='-URL'er." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Kan ikke læse softwarekildemappen \"%1%\": Adgang nægtet" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Kunne ikke læse mappen \"%s\"" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Kan ikke læse softwarekildefilen \"%1%\": Adgang nægtet" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Alias for softwarekilde mÃ¥ ikke starte med punktum." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Alias for tjeneste mÃ¥ ikke starte med punktum." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Kan ikke Ã¥bne filen \"%s\" til skrivning." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Ukendt tjeneste \"%1%\": Fjerner forældreløs tjeneste-softwarekilde \"%2%\"" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Der blev ikke fundet gyldige metadata pÃ¥ den angivne URL" msgstr[1] "Der blev ikke fundet gyldige metadata pÃ¥ de angivne URL'er" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Kan ikke oprette %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Kan ikke oprette mappe med metadata-cache." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Opbygger cache for softwarekilden '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Kan ikke oprette cache i %s - ingen skriverettigheder." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Caching af softwarekilde (%d) mislykkedes." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Ikke-hÃ¥ndteret softwarekilde-type" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Fejl under forsøg pÃ¥ at læse fra \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Ukendt fejl ved læsning fra \"%s\"" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Tilføjer softwarekilden '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ugyldig softwarekilde-filnavn i \"%s\"" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Fjerner softwarekilden '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Kan ikke regne ud hvor softwarekilden er lagret." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Kan ikke slette \"%s\"" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Kan ikke regne ud hvor tjenesten er lagret." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Ugyldig LDAP URL-forespørgselsstreng" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ugyldig LDAP URL-forespørgselsparameter '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Kan ikke klone URL-objekt" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Ugyldig tom URL-objektreference" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Kan ikke fortolke URL-komponenter" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "ukendt" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "ikke-supporteret" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Niveau 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Niveau 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Niveau 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Yderligere kundekontrakt nødvendig" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "ugyldig" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Supportniveau er ikke angivet" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Leverandøren yder ikke support." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Problembestemmelse, som betyder teknisk support designet til at give " "kompatibilitetsinformation, installationsassistance, brugssupport, løbende " "vedligeholdelse og basal fejlsøgning. Niveau 1-support er ikke beregnet til " "at rette produktfejl." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Problemisolering, som betyder teknisk support designet til at duplikere " "kundeproblemer, isolere problemomrÃ¥det og levere løsning pÃ¥ problemer som " "ikke løses af niveau 1-support." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Problemløsning, som betyder teknisk support designet til at løse komplekse " "problemer ved at inddrage udvikling i løsning af produktfejl som er blevet " "identificeret af niveau 2-support." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "En yderligere kundekontrakt er nødvendig for at fÃ¥ support." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Ukendt support-mulighed. Beskrivelse ikke tilgængelig" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "SystemhÃ¥ndtering er lÃ¥st af programmet med pid %d (%s).\n" "
Luk dette program, før du prøver igen." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historik:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Kan ikke Ã¥bne lÃ¥sefilen: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Denne handling køres allerede af et andet program." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ukendt matchtilstand \"%s\"" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Ukendt matchtilstand \"%s\" for mønstret \"%s\"" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Ugyldigt regulært udtryk '%s': Regcomp returnerede %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ugyldigt regulært udtryk '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autentificering pÃ¥krævet for '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Besøg Novell kundercenter for at tjekke om din registrering er gyldig og " "ikke udløbet." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Montering af %s fejlede pÃ¥ %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Afmontering af %s fejlede" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "DÃ¥rligt filnavn: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Mediet Ã¥bnedes ikke under forsøg pÃ¥ at udføre handlingen '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Filen %s blev ikke fundet pÃ¥ mediet '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Kan ikke skrive filen '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medie er ikke tilknyttet" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "DÃ¥rligt tilknytningspunkt for medie" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Download (curl) initialisering fejlede for '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systemundtagelse '%s' pÃ¥ mediet '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Stien '%s' pÃ¥ mediet '%s' er ikke en fil." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Stien '%s' pÃ¥ mediet '%s' er ikke en mappe." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "DÃ¥rligt formeret URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Tomt værtsmaskinenavn i URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Tomt filsystem i URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Tom destination i URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Ikke-understøttet URI-skema i '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operationen understøttes ikke af medie" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Download (curl)-fejl for '%s':\n" "Fejlkode: %s\n" "Fejlmeddelelse: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Fejl opstod under indstilling af download-tilvalg (curl) for \"%s\":" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Mediekilden '%s' indeholder ikke det ønskede medie" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Mediet '%s' er i brug af en anden instans" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Kan ikke skubbe noget medie ud" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Kan ikke skubbe mediet '%s' ud" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Adgangstilladelse til '%s' nægtet." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Tidsfrist udløbet ved tilgang af \"%s\"." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "Downloadede data oversteg den ventede filstørrelse '%s' med '%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Placeringen \"%s\" er midlertidigt utilgængelig." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL-certifikatproblem. Tjek at CA-certifikatet er OK for '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Opret tilknytningspunkt: Kan ikke finde en skrivbar mappe til oprettelse af " "et tilknytningspunkt" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Ikke-understøttet HTTP autentificeringsmetode '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Installér pakken \"lsof\" først." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Den pÃ¥krævede attribut '%s' mangler." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "En af eller begge '%s'- og '%s'-attributterne er pÃ¥krævet." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Verificering af signatur mislykkedes" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Pakken %s lader til at være blevet defekt under overførslen. Vil du forsøge " "at hente den igen?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Kunne ikke levere pakken %s. Vil du prøve at hente den igen?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm-kontrol mislykkedes." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm mislykkedes." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Tjeneste-plugin understøtter ikke ændring af en attribut." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Kan ikke levere filen '%s' fra softwarekilden '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Ingen URL i softwarekilden." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Filen %1%\n" " fra pakken\n" " %2%\n" " er i konflikt med filen fra pakken\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Filen %1%\n" " fra pakken\n" " %2%\n" " er i konflikt med filen fra installation af\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Filen %1%\n" " fra installation af\n" " %2%\n" " er i konflikt med en fil fra pakken\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Filen %1%\n" " fra installation af\n" " %2%\n" " er i konflikt med filen fra installation af\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Filen %1%\n" " fra pakken\n" " %2%\n" " er i konflikt med filen\n" " %3%\n" " fra pakken\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Filen %1%\n" " fra pakken\n" " %2%\n" " er i konflikt med filen\n" " %3%\n" " fra installation af\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Filen %1%\n" " fra installation af\n" " %2%\n" " er i konflikt med filen\n" " %3%\n" " fra pakken\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Filen %1%\n" " fra installation af\n" " %2%\n" " er i konflikt med filen\n" " %3%\n" " fra installation af\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Kan ikke oprette sat-pulje." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ødelæg %s ved at ignorere nogle af dens afhængigheder" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "ignorér generelt nogle afhængigheder" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s hører ikke til en distopgradering-softwarekilde" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s har laverestÃ¥ende arkitektur" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problem med den installerede pakke %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "modstridende forespørgsler" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "et eller andet afhængighedsproblem" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "intet leverer forespurgt %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Har du aktiveret alle anmodede softwarekilder?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "pakken %s findes ikke" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "ikke understøttet anmodning" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s leveres af systemet og kan ikke slettes" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s kan ikke installeres" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "intet leverer %s, der kræves af %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "kan ikke installere bÃ¥de %s og %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s konflikter med %s, der leveres af %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s forælder %s, der leveres af %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "installerede %s forælder %s, der leveres af %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "solvable %s konflikter med %s, der leveres af den selv" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s kræver %s, men dette krav kan ikke leveres" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "slettede udbydere: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "ikke-installérbare leverandører: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "ikke-installérbare leverandører: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "fjern lÃ¥s for at tillade fjernelse af %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "installér ikke %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "behold %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "fjern lÃ¥s for at tillade installation af %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Denne anmodning vil ødelægge dit system!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorér advarslen om et ødelagt system" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "spørg ikke efter at installere en solvable, der leverer %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "spørg ikke efter at slette alle solvables, der leverer %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "installér ikke sidste nye version af %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "behold %s pÃ¥ trods af laverestÃ¥ende arkitektur" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "installér %s pÃ¥ trods af laverestÃ¥ende arkitektur" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "behold forældet %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "installér %s fra ekskluderet softwarekilde" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "nedgradering af %s til %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "arkitekturændring af %s til %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "installér %s (med leverandørændring)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "udskiftning af %s med %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "afinstallation af %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Udfører %%posttrans-scriptet '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Udfører %posttrans-scripts" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " afviklet" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " afvikling fejlede" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s er allerede kørt som %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " afvikling skippet under afbrydelse" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Fejl under afsendelse af bekendtgørelse af opdateringsbesked." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Besked om ny opdatering" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Installation er blevet afbrudt som ønsket." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Beklager, denne version af libzypp blev bygget uden HAL-understøttelse." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext er ikke tilsluttet" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive er ikke initialiseret" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume er ikke initialiseret" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Kan ikke oprette dbus-tilslutning" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: libhal-kontekst kan ikke oprettes" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: dbus-tilslutning kan ikke indstilles" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Kan ikke initialisere HAL-kontekst -- kører hald ikke?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Ikke et cd-rom-drev" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM fejlede: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Import af offentlig nøgle %1% fejlede" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Fjernelse af den offentlige nøgle %1% fejlede" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Pakke er ikke signeret!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Konfigurationsfiler er ændret for %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm gemte %s som %s, men det var umuligt at bestemme forskellen" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm gemt %s som %s.\n" "Her er de første 25 linjer af forskelle:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm oprettede %s som %s, men det var umuligt at bestemme forskellen" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm oprettet %s som %s.\n" "Her er de første 25 linjer af forskelle:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Yderligere rpm-output" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "backup %s blev oprettet" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Signatur er OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Ukendt signaturtype" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Signaturen verificerer ikke" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Signaturen er OK, men nøglen er ikke betroet" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Signaturens offentlige nøgle er ikke tilgængelig" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Filen findes ikke eller signaturen kan ikke tjekkes" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Filen er uden signatur" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Mutex-attributter kan ikke initialiseres" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Rekursive mutex-attributter kan ikke angives" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Rekursive mutex-attributter kan ikke initialiseres" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Mutex-lÃ¥s kan ikke hentes" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Mutex-lÃ¥s kan ikke frigives" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "URL-oversigt tillader ikke %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ugyldig %s-komponent '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ugyldig %s-komponent" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Fortolkning af forespørgselsstreng er ikke understøttet af denne URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL-oversigt er en pÃ¥krævet komponent" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ugyldig URL-oversigt '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "URL-oversigt tillader ikke et brugernavn" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "URL-oversigt tillader ikke en adgangskode" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "URL-oversigt kræver en værtskomponent" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "URL-oversigt tillader ikke en værtskomponent" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ugyldig værtskomponent '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "URL-oversigt tillader ikke en port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ugyldig portkomponent '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "URL-oversigt kræver et stinavn" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relativ sti er ikke tilladt hvis autoritet eksisterer" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Kodede strenge indeholder en NUL-byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ugyldigt skilletegn for parameter-array" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ugyldigt skilletegn for parameter-map" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ugyldigt skilletegn for parameter-array join" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Import af offentlig nøgle fra filen %s fejlede: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Fjernelse af den offentlige nøgle %s fejlede: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Kan ikke finde tilgængelig løkkeenhed til at montere imagefilen fra '%s'" libzypp-17.7.0/po/de.po000066400000000000000000003701601334444677500146750ustar00rootroot00000000000000# translation of zypp.de.po to German # translation of zypp.de.po to # @TITLE@ # Copyright (C) 2006, SUSE Linux GmbH, Nuremberg # # This file is distributed under the same license as @PACKAGE@ package. FIRST # # # Lars Vogdt , 2007. # Stephan Kulow , 2007. # Marko Schugardt , 2008,2009. # Michael Skiba , 2008, 2012, 2013. # Jannick Kuhr , 2008. # Hermann-Josef Beckers , 2009. # Hermann J. Beckers , 2011, 2014. msgid "" msgstr "" "Project-Id-Version: zypp.de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-07 08:48+0000\n" "Last-Translator: Sarah Kriesch \n" "Language-Team: German " "\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-Ausnahme" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Typ '%s' für %u-Byte-Prüfsumme '%s' fragwürdig" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Unbekanntes Land: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Kein Code" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Vereinigte Arabische Emirate" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua und Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanien" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenien" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Niederländische Antillen" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktis" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentinien" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikanisch Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Österreich" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australien" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Aland-Inseln" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Aserbaidschan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnien-Herzegowina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesch" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgien" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarien" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivien" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasilien" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetinsel" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Weißrussland" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosinseln" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Zentralafrikanische Republik" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Schweiz" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Côte d'Ivoire" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookinseln" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbien" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kap Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Weihnachtsinsel" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Zypern" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tschechische Republik" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Deutschland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Dschibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dänemark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanische Republik" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algerien" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estland" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Ägypten" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Westsahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanien" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Äthiopien" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finnland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidschi" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandinseln (Malwinen)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Föderierte Staaten von Mikronesien" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Färöer-Inseln" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankreich" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Frankreich, Metropolitan" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabun" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Vereinigtes Königreich" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgien" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Französisch-Guayana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grönland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Griechenland" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Südgeorgien und die südlichen Sandwichinseln" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard-Insel und McDonald-Inseln" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatien" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungarn" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesien" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isle of Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indien" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britisches Territorium im Indischen Ozean" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italien" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaika" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanien" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisistan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodscha" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komoren" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "St. Kitts und Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Nordkorea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Südkorea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kaimaninseln" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kasachstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Demokratische Volksrepublik Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "St. Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litauen" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Lettland" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libyen" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldau" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshallinseln" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Mazedonien" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolei" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Nördliche Marianen" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauretanien" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Malediven" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mosambik" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Neukaledonien" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolkinsel" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Niederlande" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norwegen" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauruanisch" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Neuseeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Französisch-Polynesien" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua-Neuguinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Philippinen" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polen" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "St. Pierre und Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palästinensische Autonomiegebiete" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumänien" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbien" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russische Föderation" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi-Arabien" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salomonen" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellen" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Schweden" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "St. Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slowenien" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard und Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slowakei" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome und Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syrien" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swasiland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- und Caicosinseln" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tschad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Französische Süd- und Antarktisgebiete" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadschikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelauanisch" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunesien" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Osttimor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Türkei" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad und Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Elliceanisch" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tansania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraine" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Amerikanisch-Ozeanien" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "USA" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Usbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Heiliger Stuhl (Vatikan)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "St. Vincent und die Grenadinen" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britische Jungferninseln" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Amerikanische Jungferninseln" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis und Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Südafrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Sambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Simbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Bereitstellungen" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "setzt voraus" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Anforderungen" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflikte" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Veraltetete Pakete" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Empfehlungen" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Vorschläge" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Erweiterungen" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Zusätze" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "PTY (%s) kann nicht geöffnet werden." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Pipe (%s) kann nicht geöffnet werden." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "chroot zu '%s' (%s) nicht möglich." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Wechsel zu '%s' innerhalb chroot '%s' nicht möglich (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Wechsel zu '%s' nicht möglich (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "exec '%s' (%s) nicht möglich." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "(%s) abzweigen nicht möglich." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Kommando mit Status %d beendet." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Kommando wurde mit Signal %d (%s) beendet." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Kommando mit unbekanntem Fehler beendet." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" "Versuch, nicht existierenden Schlüssel %s in Schlüsselbund %s zu importieren" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Importieren des Schlüssels fehlgeschlagen." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Fehler beim Löschen des Schlüssels." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Signaturdatei %s nicht gefunden" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Unbekannte Sprache: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar-Sprache" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abchasisch" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Aceh-Sprache" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acholi-Sprache" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme-Sprache" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adygeisch" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Andere afro-asiatische Sprachen" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan-Sprache" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadisch" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanisch" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutisch" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonkin-Sprachen" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altaisch" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharisch" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Altenglisch (ca. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apachen-Sprachen" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabisch" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramäisch" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonesisch" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenisch" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Arauka-Sprachen" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho-Sprache" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Andere Kunstsprache" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak-Sprachen" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamesisch" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturianisch" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapaskische Sprachen" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australische Sprachen" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Awarisch" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Awestisch" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara-Sprache" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Aserbeidschanisch" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda-Sprache" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke-Sprache" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Baschkirisch" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Belutschisch" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara-Sprache" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinesisch" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskisch" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basaa-Sprache" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Andere baltische Sprachen" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Bedauye" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Weißrussisch" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba-Sprache" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Andere Berbersprachen" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol-Sprache" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini-Sprache" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Blackfoot-Sprache" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Andere Bantusprachen" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnisch" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj-Bhakha" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonisch" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak-Sprache" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Burjatisch" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugi-Sprache" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarisch" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmesisch" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Bilin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo-Sprachen" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Andere Indianersprachen (Zentralamerika)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Karibisch" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalanisch" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Andere kaukasische Sprachen" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Andere keltische Sprachen" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro-Sprache" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha-Sprachen" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tschetschenisch" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Tschagataisch" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinesisch" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Trukesisch" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook-Jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw-Sprache" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee-Sprache" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Kirchenslawisch" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Tschuwaschisch" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne-Sprache" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Cham-Sprachen" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptisch" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Kornisch" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsisch" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreolisch-Englisch (andere)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreolisch-Französisch (andere)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreolisch-Portugiesisch (andere)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree-Sprache" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krimtatarisch" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreolische Sprachen (Pidgin-Sprachen)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kaschubisch" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Andere kuschitische Sprachen" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tschechisch" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota-Sprache" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dänisch" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Darginisch" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dajakisch" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware-Sprache" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave-Sprache" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib-Sprache" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka-Sprache" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Maledivisch" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Andere drawidische Sprachen" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Niedersorbisch" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala-Sprachen" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Mittelniederländisch (ca. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Niederländisch" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula-Sprache" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Altägyptisch" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamisch" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Englisch" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Mittelenglisch (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estnisch" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe-Sprache" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Pangwe-Sprache" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Färöisch" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fante-Sprache" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fidschi-Sprache" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Pilipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finnisch" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Andere finnougrische Sprachen" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon-Sprache" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Französisch" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Mittelfranzösisch (ca. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Altfranzösisch (842-ca. 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Friesisch" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Ful" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulisch" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo-Sprache" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya-Sprache" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Andere germanische Sprachen" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgisch" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Deutsch" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Altäthiopisch" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertesisch" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gälisch" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irisch" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galicisch" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manxs" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Mittelhochdeutsch (ca. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Althochdeutsch (ca. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi-Sprache" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalesisch" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotisch" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo-Sprache" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Altgriechisch (bis 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Griechisch (nach 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani-Sprache" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati-Sprache" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Kutchin-Sprache" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida-Sprache" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitien" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Haussa-Sprache" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiisch" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebräisch" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero-Sprache" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon-Sprache" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hethitisch" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Miao-Sprachen" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri-Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Obersorbisch" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungarisch" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa-Sprache" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban-Sprache" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Ibo-Sprache" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Isländisch" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Sinohoan" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Nosu" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo-Sprache" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingua" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Ilokano-Sprache" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Andere indoarische Sprachen" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesisch" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Andere indogermanische Sprachen" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Inguschisch" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupik" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Andere iranische Sprachen" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokesische Sprachen" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italienisch" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanisch" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japanisch" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Jüdisch-Persisch" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Jüdisch-Arabisch" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Karakalpakisch" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabylisch" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin-Sprache" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Grönländisch" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba-Sprache" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karenisch" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kaschmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri-Sprache" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kasachisch" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardinisch" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi-Sprache" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Andere Khoisan-Sprachen" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Kambodschanisch" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Andere Khoisan-Sprachen" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu-Sprache" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Rwanda-Sprache" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgisisch" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu-Sprache" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi-Sprache" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo-Sprache" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreanisch" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeanisch" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle-Sprache" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karatschaisch" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru-Sprachen" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Oraon-Sprache" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kwanyama-Sprache" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumükisch" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdisch" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai-Sprache" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Judenspanisch" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba-Sprache (Bantusprache)" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laotisch" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latein" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Lettisch" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lesgisch" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgisch" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litauisch" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo-Sprache" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Rotse-Sprache" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgisch" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Lulua-Sprache" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga-Sprache" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda-Sprache" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno-Sprache" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda-Sprache" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo-Sprache" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai-Sprache" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonisch" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Maduresisch" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Khotta" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marschallesisch" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makassarisch" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Malinke-Sprache" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori-Sprache" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Andere austronesische Sprachen" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Massai-Sprache" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malaiisch" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Mokschamordwinisch" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandaresisch" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende-Sprache" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Mittelirisch (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Micmac-Sprache" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau-Sprache" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Verschiedene Sprachen" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Andere Mon-Khmer-Sprachen" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagassi-Sprache" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltesisch" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Mandschurisch" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Meithei-Sprache" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo-Sprache" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk-Sprache" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldauisch" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolisch" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi-Sprache" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Mehrere Sprachen" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Mundasprachen" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Muskogisch" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandesisch" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Maya-Sprachen" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erza-Mordwinisch" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indianersprachen (Nordamerika)" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitanisch" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo-Sprache" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndbele-Sprache (Transvaal)" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele-Sprache (Simbabwe)" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Niederdeutsch" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Newari" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias-Sprache" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Andere Nigerkordofanische Sprachen" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niue-Sprache" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "BokmÃ¥l" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogaisch" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Altnorwegisch" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norwegisch" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho-Sprache (Nord)" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubische Sprachen" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Alt-Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Nyanja-Sprache" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi-Sprache" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nikole-Sprache" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro-Sprache" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima-Sprache" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Okzitanisch (nach 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa-Sprache" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya-Sprache" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Galla-Sprache" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage-Sprache" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetisch" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Osmanisch (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomangue-Sprachen" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Andere Papuasprachen" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan-Sprache" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pehlewi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanggan-Sprache" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Pandschabi-Sprache" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palau-Sprache" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Altpersisch (ca. 600-400 v. Chr.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persisch" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Philippinen-Austronesisch (andere)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Phönikisch" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polnisch" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Ponapeianisch" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugiesisch" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prâkrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Altprovenzalisch (Altokzitanisch, bis 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Paschtu" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua-Sprache" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Osterinsel-Sprache" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotonganisch" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Andere romanische Sprachen" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Rätoromanisch" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani (Sprache)" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumänisch" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi-Sprache" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russisch" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe-Sprache" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango-Sprache" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Jakutisch" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Andere Indianersprachen (Südamerika)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salish-Sprachen" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritanisch" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbisch" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sizilianisch" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Schottisch" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatisch" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkupisch" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Andere semitische Sprachen" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Altirisch (bis 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Zeichensprachen" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Schan-Sprache" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo-Sprache" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singhalesisch" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Sioux-Sprachen" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Andere sinotibetische Sprachen" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Andere slawische Sprachen" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slowakisch" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slowenisch" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Südsamisch" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Nordsamisch" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Samisch (andere)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule-Samisch" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari-Samisch" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoanisch" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt-Lappisch" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Schona-Sprache" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi-Sprache" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke-Sprache" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdisch" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai-Sprache" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Süd-Sotho-Sprache" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spanisch" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardisch" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer-Sprache" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilosaharanische Sprachen" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swasi-Sprache" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma-Sprache" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanesisch" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerisch" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Schwedisch" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syrisch" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitisch" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Andere Thaisprachen" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatarisch" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu-Sprache" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Temne-Sprache" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno-Sprache" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum-Sprache" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadschikisch" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thailändisch" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetisch" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre-Sprache" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinja-Sprache" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv-Sprache" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingonisch" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit-Sprache" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamaseq" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Bantusprache, Sambia)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tongaisch" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Neumelanesisch" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian-Sprache" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana-Sprache" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga-Sprache" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmenisch" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka-Sprache" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Türkisch" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Andere altaische Sprachen" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi-Sprache" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuwinisch" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurtisch" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritisch" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigurisch" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainisch" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Mbundu-Sprache" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Unbestimmt" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Usbekisch" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai-Sprache" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda-Sprache" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamesisch" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Wotisch" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakash-Sprachen" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo-Sprache" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo-Sprache" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Kymrisch" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbisch" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Wallonisch" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof-Sprache" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmückisch" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa-Sprache" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao-Sprache (Bantusprache)" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapesisch" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jiddisch" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba-Sprache" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupik-Sprache" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotekisch" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande-Sprachen" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu-Sprache" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni-Sprache" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Folgende Aktionen werden ausgeführt:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "läuft nicht ab" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "abgelaufen: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "läuft ab: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(läuft nicht ab)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(ABGELAUFEN)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(läuft innerhalb 24 Stunden ab)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(läuft innerhalb von %d Tag ab)" msgstr[1] "(läuft innerhalb von %d Tagen ab)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Suche nach der GPG-Key-ID %1% im Cache %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Suche nach der GPG-Key-ID %1% im Repository %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "Repository %1% definiert keine zusätzlichen 'gpgkey='-URLs." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Repo-Verzeichnis '%1%' kann nicht gelesen werden: Zugriff verweigert" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Verzeichnis '%s' konnte nicht gelesen werden" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Repo-Datei '%1%' kann nicht gelesen werden: Zugriff verweigert" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Ein Repository-Alias darf nicht mit einem Punkt beginnen." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Ein Dienst-Alias darf nicht mit einem Punkt beginnen." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Datei '%s' konnte nicht zum Schreiben geöffnet werden." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Unbekannter Dienst '%1%': Verwaistes Dienst-Repository '%2%' wird entfernt" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Keine gültigen Metadaten bei dem festgelegten URL gefunden" msgstr[1] "Keine gültigen Metadaten bei den festgelegten URLs gefunden" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "%s konnte nicht erstellt werden" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Metadaten-Cache-Verzeichnis konnte nicht erstellt werden." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Cache für Repository '%s' erzeugen" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" "Cache konnte auf %s nicht erstellt werden - keine Schreibberechtigungen." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Repo (%d) konnte nicht im Cache gespeichert werden." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Unverarbeiteter Repository-Typ" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Fehler beim Versuch, aus '%s' zu lesen" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Unbekannter Fehler beim Lesen aus '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Repository '%s' hinzufügen" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Repo-Dateiname bei '%s' ungültig" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Repository '%s' entfernen" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Speicherort des Repos kann nicht gefunden werden." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s' kann nicht gelöscht werden" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Speicherort des Dienstes kann nicht gefunden werden." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Unzulässige Abfragezeichenkette für die LDAP-URL" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Unzulässiger Abfrageparameter für die LDAP-URL '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "URL-Objekt kann nicht geklont werden" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Unzulässiger leerer URL-Objektverweis" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "URL-Komponenten können nicht analysiert werden" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "Unbekannt" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nicht unterstützt" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Stufe 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Stufe 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Stufe 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Zusätzlicher Kundenvertrag erforderlich" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "ungültig" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Die Support-Stufe wurde nicht angegeben" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Der Anbieter bietet keinen Support an." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Problembestimmung bezeichnet den technischen Support, der " "Kompatibilitätsinformationen, Hilfe bei der Installation, " "Anwendungsunterstützung, fortlaufende Wartung und grundlegende Hilfe bei der " "Fehlersuche bietet. Support der Stufe 1 ist nicht dazu gedacht, " "Produktfehler zu beheben." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Problemisolierung bezeichnet den technischen Support, der Kundenprobleme " "nachbildet, Problembereiche isoliert und Lösungen für Probleme bietet, die " "nicht durch den Support der Stufe 1 behoben werden konnten." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Problemlösung bezeichnet den technischen Support, der komplexe Probleme " "lösen soll, wobei das Engineering zur Beseitigung von Produktfehlern, die im " "Support der Stufe 2 erkannt wurden, einbezogen wird." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Ein zusätzlicher Kundenvertrag ist erforderlich, um Unterstützung zu " "erhalten." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Unbekannte Support-Option. Keine Beschreibung vorhanden" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Die Systemverwaltung ist gesperrt durch die Anwendung mit PID %d (%s).\n" "Schließen Sie diese Anwendung, bevor Sie es erneut versuchen." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Verlauf:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Sperrdatei kann nicht geöffnet werden: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Die Aktion wird bereits von einem anderen Programm ausgeführt." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Unbekannter Übereinstimmungsmodus '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Unbekannter Übereinstimmungsmodus %s für Schema %s" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Ungültiger regulärer Ausdruck '%s': regcomp gab %d zurück" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ungültiger regulärer Ausdruck '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Authentifizierung erforderlich für '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Prüfen Sie im Novell Customer Center, ob Ihre Registrierung gültig und nicht " "abgelaufen ist." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Fehler beim Einhängen von '%s' in '%s'" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Fehler beim Aushängen von '%s'" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Fehlerhafter Dateiname: '%s'" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" "Beim Versuch, Aktion '%s' durchzuführen, wurde das Medium nicht geöffnet." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Datei '%s' auf Medium '%s' nicht gefunden" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Datei '%s' kann nicht geschrieben werden." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medium nicht angeschlossen" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Fehlerhafter Medienanschlusspunkt" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Fehler bei der Initialisierung von Download (curl) für '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systemausnahme '%s' auf Medium '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Pfad '%s' auf Medium '%s' ist keine Datei." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Pfad '%s' auf Medium '%s' ist kein Verzeichnis." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Fehlerhaft gebildete URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Leerer Hostname in URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Leeres Dateisystem in URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Leeres Ziel in URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Nicht unterstütztes URI-Schema in '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Vorgang von Medium nicht unterstützt" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Fehler beim Download (curl) für '%s':\n" "Fehlercode: '%s'\n" "Fehlermeldung: '%s'\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Beim Festlegen der Download (curl)-Optionen für '%s' ist ein Fehler " "aufgetreten:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Medienquelle '%s' enthält nicht das gewünschte Medium" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Medium '%s' wird von einer anderen Instanz verwendet" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Es kann kein Medium ausgeworfen werden" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Medium '%s' kann nicht ausgeworfen werden" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Zugriff auf '%s' verweigert." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Zeitüberschreitung beim Zugriff auf '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" "Die heruntergeladenen Daten überschritten die erwartete Dateigröße '%s' von " "'%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Auf den Standort '%s' kann zeitweise nicht zugegriffen werden." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " SSL-Zertifikat-Problem; überprüfen Sie, ob das CA-Zertifikat für '%s' in " "Ordnung ist." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Anschlusspunkt erstellen: Kann kein schreibbares Verzeichnis finden, um " "einen Anschlusspunkt zu erstellen" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Nicht unterstützte HTTP-Authentifizierungsmethode '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Bitte zuerst Paket 'lsof' installieren." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Erforderliches Attribut '%s' fehlt." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Eines oder beide der Attribute '%s' oder '%s' sind erforderlich." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Fehler beim Überprüfen der Signatur" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Paket %s wurde anscheinend bei der Übertragung beschädigt. Möchten Sie " "erneut versuchen, es abzurufen?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Paket %s konnte nicht bereitgestellt werden. Möchten Sie erneut versuchen, " "es abzurufen?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Applydeltarpm-Prüfung nicht bestanden." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Fehler bei applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Das Dienst-Plugin unterstützt keine Änderung von Attributen." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" "Datei '%s' aus Repository '%s' kann nicht zur Verfügung gestellt werden" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Das Repository enthält keine URL." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Datei %1%\n" " aus Paket\n" " %2%\n" " im Konflikt mit Datei aus Paket\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Datei %1%\n" " aus Paket\n" " %2%\n" " im Konflikt mit Datei aus Installation von\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Datei %1%\n" " aus Installation von\n" " %2%\n" " im Konflikt mit Datei aus Paket\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Datei %1%\n" " aus Installation von\n" " %2%\n" " im Konflikt mit Datei aus Installation von\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Datei %1%\n" " aus Paket\n" " %2%\n" " im Konflikt mit Datei\n" " %3%\n" " aus Paket\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Datei %1%\n" " aus Paket\n" " %2%\n" " im Konflikt mit Datei\n" " %3%\n" " aus Installation von\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Datei %1%\n" " aus Installation von\n" " %2%\n" " im Konflikt mit Datei\n" " %3%\n" " aus Paket\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Datei %1%\n" " aus Installation von\n" " %2%\n" " im Konflikt mit Datei\n" " %3%\n" " aus Installation von\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Sat-Pool kann nicht erstellt werden." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "%s durch Ignorieren einiger Abhängigkeiten brechen" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "Einige Abhängigkeiten allgemein ignorieren" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s gehört nicht zu einem Distributionsaktualisierungs-Repository" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s besitzt eine nachrangige Architektur" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "Problem mit installiertem Paket %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "In Konflikt stehende Anforderungen" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "Abhängigkeitsproblem" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "Angefordertes %s wird nirgends zur Verfügung gestellt" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Wurden alle erforderlichen Repositorys aktiviert?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "Paket %s existiert nicht" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "nicht unterstützte Anforderung" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s wird vom System bereitgestellt und kann nicht gelöscht werden" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s ist nicht installierbar" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s benötigt von %s wird nirgends zur Verfügung gestellt" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s und %s können nicht gleichzeitig installiert sein" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s steht in Konflikt mit %s, das von %s zur Verfügung gestellt wurde" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s löst %s ab, das von %s zur Verfügung gestellt wurde" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "installiertes %s macht %s, welches durch %s angeboten wird, obsolet" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" "Das auflösbare Element %s steht in Konflikt mit %s, das es selbst zur " "Verfügung gestellt hat" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s benötigt %s, kann jedoch nicht zur Verfügung gestellt werden" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "Gelöschte Anbieter: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "Nicht installierbare Anbieter: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "Nicht installierbare Anbieter: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "Sperre entfernen und Entfernen von %s zulassen" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s nicht installieren" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s behalten" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Sperre entfernen und Installation von %s zulassen" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Diese Anfrage bringt Ihr System zum Absturz!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "Warnung vor einem beschädigten System ignorieren" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" "Installation eines auflösbaren Elements mit %s darf nicht angefordert werden" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" "Löschen aller auflösbaren Elemente mit %s darf nicht angefordert werden" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "Neueste Version von %s darf nicht installiert werden" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s trotz der nachrangigen Architektur beibehalten" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s trotz der nachrangigen Architektur installieren" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "veraltetes %s beibehalten" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "%s aus dem ausgeschlossenen Repository installieren" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "Downgrade von %s zu %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "Architekturwechsel von %s zu %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "%s installieren (mit Anbieterwechsel)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "Ersatz von %s durch %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "Deinstallation von %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "%%posttrans script '%1%' wird ausgeführt" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "%posttrans scripts werden ausgeführt" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " ausgeführt" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " Ausführung fehlgeschlagen" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s bereits als %s ausgeführt)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " Ausführung beim Abbrechen übersprungen" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Fehler beim Senden der Aktualisierungsbenachrichtigung." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Neue Aktualisierungsbenachrichtigung" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Die Installation wurde gemäß Anweisung abgebrochen." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Diese Version von libzypp wurde ohne HAL-Unterstützung erstellt." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext nicht verbunden" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive nicht initialisiert" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume nicht initialisiert" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Dbus-Verbindung kann nicht hergestellt werden" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Erstellen des libhal-Kontexts nicht möglich" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" "libhal_set_dbus_connection: Festlegen der dbus-Verbindung nicht möglich" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "HAL-Kontext kann nicht initialisiert werden -- Wird hald nicht ausgeführt?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Kein CDROM-Laufwerk" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM fehlgeschlagen: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Importieren des öffentlichen Schlüssels %1% fehlgeschlagen" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Entfernen des öffentlichen Schlüssels %1% fehlgeschlagen" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Paket ist nicht signiert!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Geänderte Konfigurationsdateien für %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm hat %s als %s gespeichert, der Unterschied konnte jedoch nicht ermittelt " "werden" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm hat %s als %s gespeichert.\n" "Hier die ersten 25 Zeilen mit Unterschieden:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm hat %s als %s erstellt, der Unterschied konnte jedoch nicht ermittelt " "werden" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm hat %s als %s erstellt.\n" "Hier die ersten 25 Zeilen mit Unterschieden:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Zusätzliche rpm-Ausgabe" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "Sicherung %s erstellt" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Signatur ist OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Unbekannter Signaturtyp" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Signatur ist nicht OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Signatur ist OK, aber Schlüssel ist nicht verbürgt" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Öffentlicher Schlüssel für Signatur nicht verfügbar" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Datei nicht vorhanden oder Signatur kann nicht geprüft werden" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Datei ist unsigniert" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Mutex-Attribute können nicht initialisiert werden" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Rekursives Mutex-Attribut kann nicht festgelegt werden" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Rekursiver Mutex kann nicht initialisiert werden" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Mutex-Sperre kann nicht abgerufen werden" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Mutex-Sperre kann nicht aufgehoben werden" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "%s laut URL-Schema nicht zulässig" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Unzulässige %s-Komponente: '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Unzulässige %s-Komponente" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" "Die Analyse von Abfragezeichenketten wird für diese URL nicht unterstützt" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Das URL-Schema ist eine erforderliche Komponente" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "'%s' ist ein unzulässiges URL-Schema" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Benutzername laut URL-Schema nicht zulässig" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Passwort laut URL-Schema nicht zulässig" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Für das URL-Schema ist eine Host-Komponente erforderlich" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Host-Komponente laut URL-Schema nicht zulässig" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Unzulässige Host-Komponente: '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Port laut URL-Schema nicht zulässig" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Unzulässige Portkomponente: '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Für das URL-Schema ist ein Pfadname erforderlich" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" "Die Angabe des relativen Pfads ist nicht erlaubt, wenn die " "Zertifizierungsstelle vorhanden ist" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Verschlüsselte Zeichenfolge enthält ein NULL-Byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ungültiges Trennzeichen für Parameter-Array-Spaltung" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ungültiges Trennzeichen für Parameterzuordnungs-Spaltung" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ungültiges Trennzeichen für Parameter-Array-Zusammenführung" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "" #~ "Importieren des öffentlichen Schlüssels aus Datei %s fehlgeschlagen: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Entfernen des öffentlichen Schlüssels %s fehlgeschlagen: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Das verfügbare Loop-Device zum Einhängen der Datei aus '%s' kann nicht " #~ "gefunden werden" #~ msgid "generally ignore of some dependecies" #~ msgstr "einige Abhängigkeiten generell ignorieren" #~ msgid "do not forbid installation of %s" #~ msgstr "Installation von %s nicht unterbinden" #~ msgid "do not keep %s installed" #~ msgstr "%s nicht installiert lassen" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Der öffentliche Schlüssel %s vom Schlüsselring %s kann nicht in Datei %s " #~ "erstellt werden" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "" #~ "Es wurde versucht, den nicht vorhandenen Schlüssel %s in Schlüsselring %s " #~ "zu importieren" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Es kann innerhalb des Chroot (%s) nicht zu '/' gewechselt werden." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "" #~ "Initialisierung des Downloads (Metalink-Curl) für '%s' fehlgeschlagen" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Fehler beim Herunterladen (Metalink-Curl) für '%s':\n" #~ "Fehlerkode: %s\n" #~ "Fehlermeldung: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Dateiabbruf bei %d%% unterbrochen" #~ msgid "Download interrupted by user" #~ msgstr "Dateiabbruf durch Benutzer unterbrochen" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Beim Setzen der Download-Optionen (Metalink-Curl) für '%s' ist ein Fehler " #~ "aufgetreten:" #~ msgid "Failed to download %s from %s" #~ msgstr "%s konnte von %s nicht abgerufen werden" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbien und Montenegro" #~ msgid "Unknown Distribution" #~ msgstr "Unbekannte Distribution" #~ msgid "ignore some dependencies of %s" #~ msgstr "einige Abhängigkeiten von %s ignorieren" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Datei %s hat keine Prüfsumme.\n" #~ "Datei trotzdem verwenden?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Datei %s hat die Integritätsprüfung mit dem folgenden Schlüssel nicht " #~ "bestanden:\n" #~ "%s|%s|%s\n" #~ "Datei trotzdem verwenden?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Datei %s hat eine ungültige Prüfsumme.\n" #~ "Erwartet %s, gefunden %s\n" #~ "Datei trotzdem verwenden?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Datei %s hat eine unbekannte Prüfsumme %s.\n" #~ "Datei trotzdem verwenden?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Datei %s ist unsigniert.\n" #~ "Datei trotzdem verwenden?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Datei %s ist mit einem unbekanntem Schlüssel signiert:\n" #~ "%s|%s|%s\n" #~ "Datei trotzdem verwenden?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Nicht vertrauenswürdiger Schlüssel gefunden:\n" #~ "%s|%s|%s\n" #~ "Schlüssel als vertrauenswürdig betrachten?" #~ msgid "Timeout exceeded when access '%s'." #~ msgstr "Zeitablauf beim Zugriff auf '%s'." libzypp-17.7.0/po/el.po000066400000000000000000004152361334444677500147110ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: Greek (libzypp)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-29 12:02+0000\n" "Last-Translator: Konstantina Tsolakoglou \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "ΕξαίÏεση Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Ύποπτος Ï„Ïπος '%s' για το %u byte στον αθÏοιστικό έλεγχο '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Άγνωστη χώÏα: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Κανένας κώδικας" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "ΑνδόÏα" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Ηνωμένα ΑÏαβικά ΕμιÏάτα" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Αφγανιστάν" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Αντίγκουα και ΜπαÏμποÏντα" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Αγκίλα" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Αλβανία" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ΑÏμενία" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Ολλανδικές Αντίλλες" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Ανγκόλα" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "ΑνταÏκτική" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "ΑÏγεντινή" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ΑμεÏικανική Σαμόα" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ΑυστÏία" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ΑυστÏαλία" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "ΑÏοÏμπα" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Îησιά Aland" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "ΑζεÏμπαϊτζάν" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Βοσνία-ΕÏζεγοβίνη" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "ΜπαÏμπάντος" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Μπανγκλαντες" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Βέλγιο" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "ΜπουÏκίνα Φάσο" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ΒουλγαÏία" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "ΜπαχÏέιν" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "ΜπουÏοÏντι" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Μπενίν" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "ΒεÏμοÏδες" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "ΜπÏουνέι ÎταÏουσαλάμ" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Βολιβία" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Î’Ïαζιλία" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Μπαχάμες" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Μπουτάν" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Îήσος Μπουβέ" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Μποτσουάνα" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "ΛευκοÏωσία" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Μπελίζ" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Καναδάς" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Îήσοι Κόκος (Κήλινγκ)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Κονγκό" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "ΚεντÏοαφÏικανική ΔημοκÏατία" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Ελβετία" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Ακτή ΕλεφαντοστοÏ" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Îήσοι Κουκ" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Χιλή" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "ΚαμεÏοÏν" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Κίνα" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Κολομβία" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Κόστα Ρίκα" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "ΚοÏβα" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "ΠÏάσινο ΑκÏωτήÏιο" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Îήσοι ΧÏιστουγέννων" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "ΚÏÏ€Ïος" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ΔημοκÏατία της Τσεχίας" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ΓεÏμανία" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Τζιμπουτί" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Δανία" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Δομινίκα" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Δομινικανή ΔημοκÏατία" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "ΑλγεÏία" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "ΕκουαδόÏ" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Εσθονία" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Αίγυπτος" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Δυτική ΣαχάÏα" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ΕÏυθÏαία" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Ισπανία" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Αιθιοπία" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Φινλανδία" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Φίτζι" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Îήσοι Φώκλαντ (Μαλβίνες)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ΚυβεÏνητικές Πολιτείες της ΜικÏονησίας" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ΦεÏόες Îήσοι" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Γαλλία" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ΜητÏοπολιτική Γαλλία" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Γκαμπόν" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Ηνωμένο Βασίλειο" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "ΓÏανάδα" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ΓεωÏγία" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Γαλλική Γουιάνα" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Γκάνα" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "ΓιβÏαλτάÏ" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ΓÏοιλανδία" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Γκάμπια" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Γουϊνέα" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "ΓουαδελοÏπη" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "ΙσημεÏινή Γουϊνέα" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Ελλάδα" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Îότια ΓεωÏγία και Îότια Îησιά Σάντουιτς" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Γουατεμάλα" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Γκουάμ" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Γουϊνέα-Μπισάου" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Γουιάνα" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Χονγκ Κονγκ" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Îησί Heard και Îησιά McDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ΟνδοÏÏας" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ΚÏοατία" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Αϊτή" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ΟυγγαÏία" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Ινδονησία" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ΙÏλανδία" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ΙσÏαήλ" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isle of Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Ινδία" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Î’Ïετανικά Εδάφη Î™Î½Î´Î¹ÎºÎ¿Ï Î©ÎºÎµÎ±Î½Î¿Ï" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "ΙÏάκ" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ΙÏάν" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Ισλανδία" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Ιταλία" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "ΤζέÏσεϋ" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Τζαμάικα" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ΙοÏδανία" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Ιαπωνία" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Κένυα" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "ΚιÏγιστάν" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Καμπότζη" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "ΚιÏιμπάτι" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "ΚομόÏες" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Άγιος ΧÏιστόφοÏος και Χιονία" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Î’ÏŒÏεια ΚοÏέα" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Îότια ΚοÏέα" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Κουβέιτ" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Îήσοι Κέιμαν" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Καζακστάν" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Λαική ΔημοκÏατία του Λάος" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Λίβανος" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Αγία Λουκία" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Λίχτενσταϊν" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "ΣÏι Λάνκα" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ΛιβεÏία" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Λεσότο" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Λιθουανία" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ΛουξεμβοÏÏγο" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Λετονία" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ΛιβÏη" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "ΜαÏόκο" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Μονακό" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Μολδαβία" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "ΜαυÏοβοÏνιο" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Άγιος ΜαÏίνος" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "ΜαδαγασκάÏη" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Îήσοι ΜάÏσαλ" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Π.Γ.Δ.Μ." #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Μάλι" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "ΜιανμάÏ" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Μογγολία" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Μακάο" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Îήσοι ΒοÏείων ΜαÏιάννων" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "ΜαÏτινίκα" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "ΜαυÏιτανία" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "ΜονσεÏάτ" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Μάλτα" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "ΜαυÏίτιος" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Μαλβίδες" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Μαλάουϊ" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Μεξικό" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Μαλαισία" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Μοζαμβίκη" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Îαμίμπια" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Îέα Καληδονία" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "ÎίγηÏας" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Îήσοι ÎÏŒÏφολκ" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ÎιγηÏία" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "ÎικαÏάγουα" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Ολλανδία" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ÎοÏβηγία" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Îεπάλ" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "ÎαουÏοÏ" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Î’Ïάχος Πολυνησίας" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Îέα Ζηλανδία" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Ομάν" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Παναμάς" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "ΠεÏοÏ" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Γαλλική Πολυνησία" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "ΠαποÏα Îέα Γουϊνέα" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Φιλιππίνες" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Πακιστάν" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Πολωνία" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Άγιος ΠέτÏος και Μιχαήλ" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Îήσοι Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "ΠουέÏτο Ρίκο" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Παλαιστινιακά Εδάφη" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ΠοÏτογαλία" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Îήσοι Παλάου" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "ΠαÏαγουάη" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "ΚατάÏ" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Îήσος Ρεουνιόν" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Ρουμανία" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "ΣεÏβία" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Ρωσική Ομοσπονδία" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ρουάντα" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Σαουδική ΑÏαβία" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Îήσοι Σολομώντος" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Σεϋχέλλες" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Σουδάν" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Σουηδία" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "ΣιγκαποÏÏη" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Îήσος Αγίας Ελένης" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Σλοβενία" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "ΣβάλμπαÏντ και Γιαν Μάγεν" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Σλοβακία" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "ΣιέÏÏα Λεόνε" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Άγιος ΜαÏίνος" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Σενεγάλη" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Σομαλία" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "ΣουÏινάμ" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Σάο Τόμε και ΠÏίντσιπε" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Ελ ΣαλβαδόÏ" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "ΣυÏία" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Σουαζιλάνδη" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Îήσοι Turks και Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Τσαντ" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Îότια Γαλλικά Εδάφη" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Τόγκο" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Ταϊλάνδη" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Τατζικιστάν" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Τοκελάου" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ΤουÏκμενιστάν" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Τυνησία" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Τόγκα" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Ανατολικό ΤιμόÏ" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ΤουÏκία" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ΤÏινιντάντ και Τομπάγκο" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ΤουβαλοÏ" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Ταϊλάνδη" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Τανζανία" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "ΟυκÏανία" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Ουγκάντα" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "ΜικÏά απομονωμένα νησιά Ηνωμένων Πολιτειών" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Ηνωμένες Πολιτείες της ΑμεÏικής" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "ΟυÏουγουάη" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Ουζμπεκιστάν" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Αγία Θέση (Πόλη ΚÏάτος ΒατικανοÏ)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Άγιος Βικέντιος και ΓÏεναδίνες" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Βενεζουέλα" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Î’Ïετανικά ΠαÏθένα Îησιά" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ΠαÏθένες Îήσοι, Η.Π.Α." # #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Βιετνάμ" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Βανουάτου" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Γουόλις και ΦουτοÏνα" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Σαμόα" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Υεμένη" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Μαγιοτ" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Îότια ΑφÏική" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Ζάμπια" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Ζιμπάμπουε" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ΠαÏέχει" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "ΠÏοαπαιτεί" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Απαιτεί" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "ΣυγκÏοÏσεις" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "ΑπαÏχαιώνει" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Συνιστά" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "ΠÏοτείνει" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "ΕνισχÏει" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "ΣυμπληÏώνει" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Αδυναμία ανοίγματος pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Αδυναμία ανοίγματος διασωλήνωσης (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Αδυναμία chroot σε '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Αδυναμία chdir στο '%s' μέσα σε chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Αδυναμία chdir στο '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Αδυναμία εκτέλεσης του '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Αδυναμία διακλάδωσης (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Η εντολή τεÏματίστηκε με κατάσταση %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Η εντολή τεÏματίστηκε από το σήμα %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Η εντολή τεÏματίστηκε με άγνωστο σφάλμα." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "ΠÏοσπάθεια εισαγωγής μη υπάÏχοντος ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %s στην κλειδοθήκη %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Αποτυχία εισαγωγής κλειδιοÏ." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Αποτυχία της διαγÏαφής κλειδιοÏ." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Το αÏχείο υπογÏαφής %s δε βÏέθηκε" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Άγνωστη γλώσσα: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "ΑφάÏ" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Αμπχαζία" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinese" # power saving scheme name, combo box and default contents of text entry #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "ΑφÏο-Ασιατικά (Άλλο)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "ΑφÏιχίλι" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ιαπωνικά (Ainu)" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Ακκαδική γλώσσα" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Αλβανικά" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Γλώσσες Algonquian" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Îότια Αλτάι" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "ΑμχαÏική γλώσσα" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Αγγλικά, παλαιά (450-110 μ.Χ.)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Γλώσσες Απάτσι" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ΑÏαβικά" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "ΑÏαμαϊκά" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonese" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ΑÏμενικά" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ΑÏαουκάνικα (ΜαποÏτσε)" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "ΑÏαπάχο" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Τεχνητή (Άλλο)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "ΑÏαουάκ" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturian" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Γλώσσες Athapascan" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ΑυστÏαλιανές Γλώσσες" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "ΑβαÏικά" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Αβεστική γλώσσα" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "ΑζεÏμπαϊτζανικά" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Γλώσσες Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinese" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Βάσκικα" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Βαλτικά (Άλλο)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Μπέχα" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "ΛευκοÏωσικά" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber (Other)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (Άλλη)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Βοσνιακά" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Breton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ΒουλγαÏικά" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Ινδιανικά ΚεντÏικής ΑμεÏικής (Άλλο)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Διάλεκτος ΚαÏαϊβικής" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Καταλονικά" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Καυκάσια (Άλλο)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Κέλτικα (Άλλο)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Τσετσενικά" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Κινεζικά" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Λεξικό Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Church Slavic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Χαμικές Γλώσσες" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Κοπτικά" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "ΚοÏσικά" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creoles and Pidgins, Βασισμένες στα Αγγλικά (Άλλο)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creoles and Pidgins, Βασισμένες στα Γαλλικά (Άλλο)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creoles and Pidgins, Βασισμένες στα ΠοÏτογαλλικά (Άλλο)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Crimean Tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creoles και Pidgins (Other)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kashubian" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitic (Other)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Τσέχικα" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Δανέζικα" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidian (Other)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Lower Sorbian" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Ολλανδικά, Μεσαίωνα (1050-1350 μ.Χ.)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Ολλανδικά" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Αιγυπτιακά (ΑÏχαία)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Αγγλικά" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Αγγλικά, Μεσαίωνα (1100-1500 μ.Χ.)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ΕσπεÏάντο" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Εσθονικά" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijian" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Φινλανδικά" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Φινο-ΟυγγÏικά (Άλλο)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Γαλλικά" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Γαλλικά, Μεσαίωνα (1400-1600 μ.Χ.)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Γαλλικά, Παλαιά (842-1400 μ.Χ.)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisian" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulian" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ΓεÏμανικά (Άλλο)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ΓεωÏγιανά" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ΓεÏμανικά" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" # #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertese" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ΙÏλανδικά" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galician" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "ΓεÏμανικά, ΎστεÏος Μεσαίωνας (1050-1500 μ.Χ.)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "ΓεÏμανικά, ΎστεÏα Παλαιά (750-1050 μ.Χ.)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gothic" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Ελληνικά, ΑÏχαία (μέχÏι 1453 μ.Χ.)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Ελληνικά, ΣÏγχÏονα (1453 μ.Χ. - )" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitian" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiian" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ΕβÏαϊκά" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Upper Sorbian" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "ΟυγγÏικά" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Ισλανδικά" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Ινδικά (Άλλο)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Ινδονησιακά" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Ινδεο-ΕυÏωπαϊκά (Άλλο)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ΙÏανικά (Άλλο)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Γλώσσες Iroquoian" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Ιταλικά" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanese" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Ιαπωνικά" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Ιουδαιο-ΠεÏσικά" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Ιουδαιο-ΑÏαβικά" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (Other)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "ΚοÏεατικά" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "ΚουÏδικά" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Λατινικά" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Λεττονικά" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgan" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Λιθουανικά" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxembourgish" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Γκάνα" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya and Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Λουσάι" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Σκοπιανικά" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallese" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesian (Άλλες)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ΙÏλανδικά, Μεσαίωνα (900-1200 μ.Χ.)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "ΔιάφοÏες Γλώσσες" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Other)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Γλώσσες Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Μολδαβικά" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Μογγολικά" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Πολλαπλές Γλώσσες" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Γλώσσες Munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Γλώσσες Μάγια" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Ινδιανικά Î’ÏŒÏειας ΑμεÏικής" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitan" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Îαβαχό" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, South" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, North" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Low German" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanian (Other)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norwegian Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norwegian Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "ÎοÏβηγικά, Παλαιά" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "ÎοÏβηγικά" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Northern Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Γλώσσες Nubia" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Classical Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (post 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "ΤουÏκικά, Οθωμανικής ΠεÏιόδου (1500-1928 μ.Χ.)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Γλώσσες Otomian" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Παπουανά (Άλλα)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ΠεÏσικά, Παλαιά (400 Ï€.Χ - 600 μ.Χ.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ΠεÏσικά" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Φιλιππινιακά" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Φοινικικά" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Πολωνικά" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ΠοÏτογαλική γλώσσα" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Γλώσσες Prakit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provencal, Old (to 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romance (Other)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-Romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romany" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Ρουμανικά" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ρωσικά" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Îότια ΑμεÏικάνικα Ινδιάνικα (Άλλα)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Γλώσσες Salishan" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "ΑÏαμαϊκά ΣαμαÏιτικά" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbian" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilian" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ΚÏοατικά" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Σημιτική (Άλλη)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ΙÏλανδικά, Παλαιά (μέχÏι 900 μ.Χ.)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Îοηματικές Γλώσσες" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Γλώσσες Siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetan (Other)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Σλαβικά (Άλλο)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Σλοβακικά" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Σλοβένικα" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Southern Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Northern Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Γλώσσες Σαμι(Άλλες)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoan" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, Southern" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Ισπανικά" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinian" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Saharan (Other)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Σουδανικά" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ΣουμεÏιακά" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Σουαχίλι" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Σουηδικά" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "ΣυÏιακά" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitian" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (Άλλα)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Ταϊλανδέζικα" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetan" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Îήσοι Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmen" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Γλώσσες Τουπι" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ΤοÏÏκικα" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaic (Other)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinian" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritic" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ΟυκÏανικά" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "ΑπÏοσδιόÏιστο" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" # #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Βιετναμικά" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Γλώσσες Γουακασάν" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Welsh" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Γλώσσες Sorbian" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Γλώσσες Εσκιμώων" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ΖουλοÏ" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Οι ακόλουθες ενέÏγειες θα γίνουν:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "δεν λήγει" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "έληξε: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "λήγει: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(δεν λήγει)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(ΕΛΗΞΕ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(λήγει μέσα σε 24ω)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(λήγει σε %d ημέÏα)" msgstr[1] "(λήγει σε %d ημέÏες)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Αδυναμία ανάγνωσης καταλόγου αποθετηÏίου '%1%': Δεν έχετε δικαιώματα" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Αποτυχία ανάγνωσης καταλόγου '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Αδυναμία ανάγνωσης αÏχείου αποθετηÏίου '%1%': Δεν έχετε δικαιώματα" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Το alias του αποθετηÏίου δεν μποÏεί να ξεκινά από τελεία." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Το ψευδώνυμο της υπηÏεσίας δεν μποÏεί να ξεκινά με τελεία." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Αδυναμία ανοίγματος αÏχείου '%s' για εγγÏαφή." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Άγνωστη υπηÏεσία '%1%': ΑφαίÏεση του οÏÏ†Î±Î½Î¿Ï Î±Ï€Î¿Î¸ÎµÏ„Î·Ïίου υπηÏεσιών '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Δεν βÏέθηκαν έγκυÏα μεταδεδομένα στην καθοÏισμένη URL" msgstr[1] "Δεν βÏέθηκαν έγκυÏα μεταδεδομένα στις καθοÏισμένες URLs" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Αδυναμία δημιουÏγίας %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Αδυναμία δημιουÏγίας καταλόγου μεταδεδομένων λανθάνουσας μνήμης." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "ΔημιουÏγία λανθάνουσας μνήμης αποθετηÏίου '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" "Αδυναμία δημιουÏγίας λανθάνουσας μνήμης στο %s - δεν έχετε δικαιώματα " "εγγÏαφής." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Αποτυχία αποθήκευσης στην λανθάνουσα μνήμη του αποθετηÏίου (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "ΤÏπος αδιαχείÏιστου αποθετηÏίου" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Σφάλμα στην Ï€Ïοσπάθεια ανάγνωσης από το '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Άγνωστο σφάλμα κατά την ανάγνωση από '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "ΠÏοσθήκη αποθετηÏίου '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Μη έγκυÏο όνομα αÏχείου αποθετηÏίου στο '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "ΑφαίÏεση αποθετηÏίου '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Δεν είναι κατανοητό που είναι αποθηκευμένο το αποθετήÏιο." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Αδυναμία διαγÏαφής '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Δεν είναι κατανοητό που είναι αποθηκευμένη η υπηÏεσία." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Μη έγκυÏο string αναζήτησης LDAP URL" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Μη έγκυÏη παÏάμετÏος αναζήτησης LDAP URL '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Αδυναμία κλωνοποίησης αντικειμένου Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Μη έγκυÏη αναφοÏά αντικειμένου ÎºÎµÎ½Î¿Ï Url" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Αδυναμία ανάλυσης συστατικών Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "άγνωστο" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "μη υποστηÏιζόμενο" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Επίπεδο 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Επίπεδο 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Επίπεδο 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Είναι απαÏαίτητη η συμπληÏωματική σÏμβαση πελάτη" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "μη έγκυÏο" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Το επίπεδο υποστήÏιξης είναι απÏοσδιόÏιστο" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Ο κατασκευαστής δεν παÏέχει υποστήÏιξη." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "ΠÏοσδιοÏισμός Ï€Ïοβλήματος, που σημαίνει πως η τεχνική υποστήÏιξη είναι " "σχεδιασμένη για να παÏέχει πληÏοφοÏίες συμβατότητας, βοήθεια εγκατάστασης, " "υποστήÏιξη χÏήσης, συνεχόμενη συντήÏηση και βασική λÏση Ï€Ïοβλημάτων. Η " "υποστήÏιξη επιπέδου 1 δεν Ï€ÏοοÏίζεται για να διοÏθώνει σφάλματα " "ελαττωματικών Ï€Ïοϊόντων." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Απομόνωση Ï€Ïοβλήματος, που σημαίνει πως η τεχνική υποστήÏιξη είναι " "σχεδιασμένη για να αναπαÏάγει τα Ï€Ïοβλήματα των πελατών, να απομονώνει την " "πεÏιοχή του Ï€Ïοβλήματος και να παÏέχει λÏση για Ï€Ïοβλήματα που δεν λÏνονται " "με την υποστήÏιξη Επιπέδου 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Επίλυση Ï€Ïοβλήματος, που σημαίνει ότι η τεχνική υποστήÏιξη είναι σχεδιασμένη " "για να επιλÏει πολÏπλοκα Ï€Ïοβλήματα χÏησιμοποιώντας μηχανική στην επίλυση " "σφαλμάτων Ï…Î»Î¹ÎºÎ¿Ï Ï€Î¿Ï… έχουν επιβεβαιωθεί από την υποστήÏιξη Επιπέδου 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Μια συμπληÏωματική σÏμβαση πελάτη είναι απαÏαίτητη για λήψη υποστήÏιξης." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Άγνωστη επιλογή υποστήÏιξης. Δεν υπάÏχει διαθέσιμη πεÏιγÏαφή" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Η διαχείÏιση συστήματος έχει κλειδωθεί από την εφαÏμογή με pid %d (%s).\n" "Κλείστε την εφαÏμογή Ï€Ïιν ξαναπÏοσπαθήσετε." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ΙστοÏικό:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Αδυναμία ανοίγματος αÏχείου κλειδώματος: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Αυτή η ενέÏγεια εκτελείται ήδη από άλλο Ï€ÏόγÏαμμα." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Άγνωστη λειτουÏγία ταιÏιάσματος '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Άγνωστη λειτουÏγία ταιÏιάσματος '%s' για το pattern '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Μη έγκυÏη κανονική έκφÏαση '%s': η εντολή regcomp επέστÏεψε %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Μη έγκυÏη κανονική έκφÏαση '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Απαιτείται πιστοποίηση για '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Επισκεφθείτε το ΚέντÏο Πελατών της Novell για να ελέγξετε εάν η εγγÏαφή σας " "είναι έγκυÏη και δεν έχει λήξει." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Αποτυχία Ï€ÏοσάÏτησης %s στο %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Αποτυχία από-Ï€ÏοσάÏτησης %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Εσφαλμένο όνομα αÏχείου: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" "Το μέσο δεν ανοίχτηκε κατά την Ï€Ïοσπάθεια εκτέλεσης της ενέÏγειας '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Το αÏχείο '%s' δεν βÏέθηκε στο μέσο '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Αδυναμία εγγÏαφής αÏχείο '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Το μέσο δεν είναι συνδεδεμένο" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Εσφαλμένο σημείο σÏνδεσης μέσου" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Η αÏχικοποίηση λήψης (curl) απέτυχε για '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "ΕξαίÏεση '%s' συστήματος στο μέσο '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Η διαδÏομή '%s' στο μέσο '%s' δεν είναι αÏχείο." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Η διαδÏομή '%s' στο μέσο '%s' δεν είναι κατάλογος." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Κακώς-διατυπωμένο URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Κενό όνομα συστήματος στην URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Κενό σÏστημα αÏχείων στην URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Κενός Ï€ÏοοÏισμός στην URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Μη υποστηÏιζόμενο URl σχήμα στο '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Η λειτουÏγία δεν υποστηÏίζεται από το μέσο" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Σφάλμα λήψεως (curl) για '%s':\n" "Κωδικός σφάλματος: %s\n" "Μήνυμα λάθους: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "ΠÏοκλήθηκε σφάλμα κατά την διάÏκεια ÏÏθμισης των επιλογών λήψης (curl) για " "'%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Η πηγή του μέσου '%s' δεν πεÏιέχει το επιθυμητό μέσο" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Το μέσο '%s' είναι σε χÏήση από άλλο στιγμιότυπο" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Αδυναμία αποβολής κάποιου μέσου" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Αδυναμία αποβολής μέσου '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "ΆÏνηση άδειας Ï€Ïόσβασης στο '%s'." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Το χÏονικό ÏŒÏιο εξαντλήθηκε όταν έγινε Ï€Ïόσβαση '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Η τοποθεσία '%s' είναι Ï€ÏοσωÏινά μη Ï€Ïοσβάσιμη." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " ΠÏόβλημα Ï€Î¹ÏƒÏ„Î¿Ï€Î¿Î¹Î·Ï„Î¹ÎºÎ¿Ï SSL, επαληθεÏστε ότι το πιστοποιητικό CA είναι " "εντάξει για '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "ΔημιουÏγία σημείου Ï€ÏοσάÏτησης: Δεν είναι δυνατή η εÏÏεση εγγÏάψιμου " "καταλόγου για τη δημιουÏγία σημείου Ï€ÏοσάÏτησης" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Μη υποστηÏιζόμενη μέθοδος πιστοποίησης HTTP '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "ΠαÏακαλοÏμε εγκαταστήστε Ï€Ïώτα το πακέτο 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Λείπει το απαιτοÏμενο χαÏακτηÏιστικό '%s'." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Μία ή και οι δÏο ιδιότητες των '%s' ή '%s' χÏειάζονται." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Απέτυχε η επαλήθευση της υπογÏαφής" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Το πακέτο %s φαίνεται πως καταστÏάφηκε κατά την μεταφοÏά. Θέλετε να " "ξαναδοκιμάσετε ανάκτηση;" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Αποτυχία παÏοχής Πακέτου %s. Θέλετε να ξαναδοκιμάσετε ανάκτηση;" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Απέτυχε ο έλεγχος applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Αποτυχία applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Το Ï€Ïόσθετο της υπηÏεσίας δεν υποστηÏίζει την αλλαγή μιας ιδιότητας." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Αδυναμία παÏοχής αÏχείου '%s' από το αποθετήÏιο '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Δεν υπάÏχει το URL στο αποθετήÏιο." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Το αÏχείο %1%\n" " από το πακέτο\n" " %2%\n" " συγκÏοÏεται με το αÏχείο από το πακέτο\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Το αÏχείο %1%\n" " από το πακέτο\n" " %2%\n" " συγκÏοÏεται με το αÏχείο από την εγκατάσταση του\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Το αÏχείο %1%\n" " από την εγκατάσταση του\n" " %2%\n" " συγκÏοÏεται με το αÏχείο από το πακέτο\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Το αÏχείο %1%\n" " από την εγκατάσταση του\n" " %2%\n" " συγκÏοÏεται με το αÏχείο από την εγκατάσταση του\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Το αÏχείο %1%\n" " από το πακέτο\n" " %2%\n" " συγκÏοÏεται με το αÏχείο\n" " %3%\n" " από το πακέτο\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Το αÏχείο %1%\n" " από το πακέτο\n" " %2%\n" " συγκÏοÏεται με το αÏχείο\n" " %3%\n" " από την εγκατάσταση του\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Το αÏχείο %1%\n" " από την εγκατάσταση του\n" " %2%\n" " συγκÏοÏεται με το αÏχείο\n" " %3%\n" " από το πακέτο\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Το αÏχείο %1%\n" " από την εγκατάσταση του\n" " %2%\n" " συγκÏοÏεται με το αÏχείο\n" " %3%\n" " από την εγκατάσταση του\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Αδυναμία δημιουÏγίας sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "διακοπή %s λόγω αγνόησης μεÏικών εξαÏτήσεων του" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "γενικά αγνόηση μεÏικών εξαÏτήσεων" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "το %s δεν ανήκει σε αποθετήÏιο αναβάθμισης της διανομής" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "το %s έχει υποδαιέστεÏη αÏχιτεκτονική" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "Ï€Ïόβλημα με τα εγκατεστημένα πακέτα %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "συγκÏουόμενες αιτήσεις" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "κάποιο Ï€Ïόβλημα εξαÏτήσεων" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "τίποτα δεν παÏέχει το ζητοÏμενο %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Έχετε ενεÏγοποιήσει όλα τα απαιτοÏμενα αποθετήÏια;" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "το πακέτο %s δεν υπάÏχει" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "μη υποστηÏιζόμενο αίτημα" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "το %s παÏέχεται από το σÏστημα και είναι αδÏνατο να διαγÏαφεί" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "το %s είναι μη εγκαταστάσιμο" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "τίποτα δεν παÏέχει το %s που χÏειάζεται από το %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "αδυναμία εγκατάστασης %s και %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "το %s συγκÏοÏεται με %s που παÏέχεται από το %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "Το %s απαÏχαιώνει το %s που παÏέχεται από το %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "το εγκατεστημένο %s απαÏχαιώνει %s που παÏέχεται από %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "το επιλÏσιμο %s συγκÏοÏεται με %s που παÏέχεται από τον εαυτό του" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "το %s απαιτεί %s, αλλά αυτή η απαίτηση δεν μποÏεί να παÏασχεθεί" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "διαγÏαμμένοι πάÏοχοι: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "μη εγκαταστήσιμοι πάÏοχοι: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "Μη εγκαταστήσιμοι πάÏοχοι: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "αφαίÏεση κλειδώματος για να επιτÏαπεί η αφαίÏεση του %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "να μην εγκατασταθεί το %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "διατήÏηση του %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "αφαίÏεση κλειδώματος για να επιτÏαπεί η εγκατάσταση του %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Το αίτημα αυτό θα καταστÏέψει το σÏστημα σας!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "αγνοήστε την Ï€Ïοειδοποίηση ενός κατεστÏαμμένου συστήματος" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "να μην ζητηθεί η εγκατάσταση όλων των επιλÏσιμων παÏέχοντας %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "να μην ζητηθεί η διαγÏαφή όλων των επιλÏσιμων παÏέχοντας %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "να μην εγκατασταθεί η νεότεÏη έκδοση του %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "διατήÏηση του %s παÏά την κατώτεÏη αÏχιτεκτονική" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "εγκατάσταση του %s παÏά την κατώτεÏη αÏχιτεκτονική" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "διατήÏηση του απαÏχαιωμένου %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "εγκατάσταση του %s από το εξαιÏοÏμενο αποθετήÏιο" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "υποβάθμιση του %s σε %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "αλλαγή αÏχιτεκτονικής από %s σε %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "εγκατάσταση %s (με αλλαγή Ï€Ïομηθευτή)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "αντικατάσταση του %s με το %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "απεγκατάσταση του %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Εκτέλεση %%posttrans script '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Εκτέλεση %posttrans scripts" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " εκτελέστηκε" # %s is either BOOTP or DHCP #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " αποτυχία εκτέλεσηης" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "το %s έχει ήδη εκτελεστεί ως %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " η εκτέλεση παÏαλείφθηκε κατά την ματαίωση" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Σφάλμα κατά την αποστολή μηνÏματος ειδοποίησης ενημέÏωσης." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Îέο μήνυμα ενημέÏωσης" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Η εγκατάσταση ματαιώθηκε σÏμφωνα με τις οδηγίες." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Συγγνώμη, αλλά αυτή η έκδοση του libzypp κατασκευάστηκε χωÏίς υποστήÏιξη HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "Το HalContext δεν είναι συνδεμένο" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "Το HalDrive δεν είναι αÏχικοποιημένο" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "Το HalVolume δεν είναι αÏχικοποιημένο" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Αδυναμία δημιουÏγίας σÏνδεσης dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Αδυναμία δημιουÏγίας πεÏιεχομένου libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Αδυναμία οÏÎ¹ÏƒÎ¼Î¿Ï ÏƒÏνδεσης dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "Αδυναμία αÏχικοποίησης πεÏιεχομένου HAL -- η υπηÏεσία hald δεν εκτελείται;" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Δεν είναι οδηγός CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Το RPM απέτυχε: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Απέτυχε να εισάγει το δημόσιο κλειδί από το αÏχείο %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Αδυναμία απομάκÏυνσης του δημοσίου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Το πακέτο δεν είναι υπογεγÏαμμένο!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Αλλαγή αÏχείων ÏÏθμισης για %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "Το rpm αποθήκευσε το %s ως %s αλλά ήταν αδÏνατο να διαφανεί η διαφοÏά" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Το rpm αποθήκευσε το %s ως %s.\n" "Εδώ είναι οι Ï€Ïώτες 25 γÏαμμές της διαφοÏάς:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "Το rpm δημιοÏÏγησε το %s ως %s αλλά ήταν αδÏνατο να διαφανεί η διαφοÏά" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "To rpm δημιοÏÏγησε το %s ως %s.\n" "Εδώ είναι οι Ï€Ïώτες 25 σειÏές της διαφοÏάς:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "ΕπιπÏόσθετο αποτέλεσμα rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "δημιουÏγήθηκε αντίγÏαφο ασφαλείας %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Η υπογÏαφή είναι εντάξει" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Άγνωστος Ï„Ïπος υπογÏαφής" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Η υπογÏαφή δεν μποÏεί να επαληθευτεί" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Η υπογÏαφή είναι εντάξει, αλλά το κλειδί δεν είναι έμπιστο" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Η υπογÏαφές του δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î´ÎµÎ½ είναι διαθέσιμες" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Το αÏχείο δεν υπάÏχει ή η υπογÏαφή δεν μποÏεί να ελεχθεί" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Το αÏχείο δεν είναι υπογεγÏαμμένο" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Αδυναμία αÏχικοποίησης ιδιοτήτων mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Αδυναμία οÏÎ¹ÏƒÎ¼Î¿Ï Ï€Î±Î»Î¹Î½Î´Ïομικής ιδιότητας mutex" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Αδυναμία αÏχικοποίησης παλινδÏομικής mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Αδυναμία λήψης κλειδαÏιάς mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Αδυναμία απελευθέÏωσης κλειδαÏιάς mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Το σχήμα Url δεν επιτÏέπει ένα %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "μη έγκυÏο %s συστατικό '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "μη έγκυÏο %s συστατικό" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" "Δεν υποστηÏίζεται η ανάλυση string εÏωτήματος για αυτήν τη διεÏθυνση URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Το σχήμα Url είναι ένα απαιτοÏμενο συστατικό" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Λανθασμένο σχήμα Url '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Το σχήμα Url δεν επιτÏέπει όνομα χÏήστη" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Το σχήμα Url δεν επιτÏέπει συνθηματικό" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Το σχήμα Url απαιτεί ένα συστατικό συστήματος" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Το σχήμα Url δεν επιτÏέπει ένα συστατικό συστήματος" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Μη έγκυÏο συστατικό συστήματος '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Το σχήμα Url δεν σας επιτÏέπει μια θÏÏα" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "μη έγκυÏο συστατικό θÏÏας '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Το σχήμα Url απαιτεί όνομα διαδÏομής" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Σχετική διαδÏομή δεν επιτÏέπεται εάν υπάÏχει αÏχή" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Κωδικοποιημένο string πεÏιέχει ένα NUL byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Μη έγκυÏος διαχωÏιστικός χαÏακτήÏας χωÏιστής διάταξης παÏαμέτÏων" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Μη έγκυÏος διαχωÏιστικός χαÏακτήÏας χωÏÎ¹ÏƒÏ„Î¿Ï Ï‡Î¬Ïτη παÏαμέτÏων" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Μη έγκυÏος διαχωÏιστικός χαÏακτήÏας ένωσης διατάξεων παÏαμέτÏων" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Απέτυχε να εισάγει το δημόσιο κλειδί από το αÏχείο %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Αδυναμία απομάκÏυνσης του δημοσίου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Αδυναμία εÏÏεσης διαθέσιμης συσκευής βÏόγχου για Ï€ÏοσάÏτηση αÏχείου " #~ "εικόνας δεδομένων από '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "Γενική αγνόησή κάποιων εξαÏτήσεων" #~ msgid "do not forbid installation of %s" #~ msgstr "να μην απαγοÏευτεί η εγκατάσταση του %s" #~ msgid "do not keep %s installed" #~ msgstr "μην κÏατήσετε το %s εγκατεστημένο" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Αδυναμία δημιουÏγίας δημοσίου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %s από την κλειδοθήκη %s στο " #~ "αÏχείο %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "" #~ "Εγίνε Ï€Ïοσπάθεια Ï€Ïοσθήκης μη υπάÏχον ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %s στην κλειδοθήκη %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Δεν μποÏεί chdir να '/' μέσα σε chroot (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Η αÏχικοποίηση λήψης (Metalink curl) απέτυχε για '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Σφάλμα λήψης (metalink curl) για '%s':\n" #~ "Κωδικός σφάλματος: %s\n" #~ "Μήνυμα λάθους: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Το κατέβασμα διακόπηκε στο %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Το κατέβασμα διακόπηκε από τον χÏήστη" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Σφάλμα Ï€Ïοκλήθηκε κατά την διάÏκεια ÏÏθμισης των Ïυθμίσεων λήψεων " #~ "(metalink curl) για '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Αδυναμία λήψεως %s από το %s" #~ msgid "Valid metadata not found at specified URL(s)" #~ msgstr "Δεν βÏέθηκαν έγκυÏα μεταδεδομένα στο/α συγκεκÏιμένο/α URL(s)" #~ msgid "Serbia and Montenegro" #~ msgstr "ΣεÏβία και ΜαυÏοβοÏνιο" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Άγνωστη επιλογή της list" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "αδυναμία επίλυσης εξαÏτήσεων" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Το αÏχείο %s δεν έχει ένα checksum.\n" #~ "ΧÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αÏχείου παÏ' αυτά;" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Το αÏχείο %s απέτυχε στον έλεγχο ακεÏαιότητας με το ακόλουθο κλειδί:\n" #~ "%s|%s|%s\n" #~ "ΧÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αÏχείου παÏ' αυτά;" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Το αÏχείο %s έχει ένα λανθασμένο checksum.\n" #~ "Αναμενόταν %s, βÏέθηκε %s\n" #~ "ΧÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αÏχείου παÏ' αυτά;" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Το αÏχείο %s έχει ένα άγνωστο checksum %s.\n" #~ "ΧÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αÏχείου παÏ' αυτά;" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Το αÏχείο %s δεν είναι υπογεγÏαμμένο.\n" #~ "ΧÏήση του παÏ' αυτά;" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Το αÏχείο %s είναι υπογεγÏαμμένο με ένα άγνωστο κλειδί::\n" #~ "%s|%s|%s\n" #~ "ΧÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αÏχείου παÏ' αυτά;" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Î’Ïέθηκε μη έμπιστο κλειδί:\n" #~ "%s|%s|%s\n" #~ "Θα εμπιστευτείτε αυτό το κλειδί;" #~ msgid "%s remove failed" #~ msgstr "%s αφαίÏεση απέτυχε" #~ msgid "Invalid user name or password." #~ msgstr "Λανθασμένο όνομα χÏήστη ή συνθηματικό." #~ msgid "rpm output:" #~ msgstr "αποτέλεσμα rpm:" #~ msgid "%s install failed" #~ msgstr "%s εγκατάσταση απέτυχε" #~ msgid "%s installed ok" #~ msgstr "%s εγκατάσταση ok" #~ msgid "%s remove ok" #~ msgstr "%s αφαίÏεση ok" libzypp-17.7.0/po/en_GB.po000066400000000000000000003343621334444677500152630ustar00rootroot00000000000000# translation of zypp.po to # English message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # # James Ogley , 2000, 2001. # Benjamin Weber , 2007. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2007-08-19 16:20+0100\n" "Last-Translator: Benjamin Weber \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: KBabel 1.11.4\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal Exception" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Unknown country: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "No Code" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "United Arab Emirates" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Netherlands Antilles" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarctica" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "American Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Aland Islands" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgium" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet Island" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Central African Republic" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Switzerland" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Cote D'Ivoire" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook Islands" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Cameroon" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cape Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Christmas Island" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cyprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Czech Republic" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Germany" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Denmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominican Republic" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Western Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spain" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Ethiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federated States of Micronesia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faroe Islands" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "France" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitan France" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "United Kingdom" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "French Guiana" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Germany" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Greenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Equatorial Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Greece" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "South Georgia and the South Sandwich Islands" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard Island and McDonald Islands" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungary" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Ireland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraq" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Iceland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italy" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kyrgyzstan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodia" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoros" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "North Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "South Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Cayman Islands" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Lao People's Democratic Republic" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Lebanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lithuania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libya" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Morocco" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Mongo" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshall Islands" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldives" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "New Caledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk Island" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Netherlands" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norway" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "New Zealand" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "French Polynesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua New Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Philippines" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poland" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre and Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestinian Territory" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Serbian" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russian Federation" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi Arabia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomon Islands" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sweden" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Saint Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard and Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "French Southern Territories" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tajikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "East Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkey" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraine" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "United States" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Holy See (Vatican City State)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "British Virgin Islands" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Virgin Islands, U.S." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis and Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "South Africa" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Provides" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Requires" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Conflicts" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s obsoletes:%s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recommends" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Suggests" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Enhances" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Supplements" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Cannot open file %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Can't find %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "Can't find %s." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Command executed when connecting" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to start the VM." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to start the VM." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "Source package '%s' not found." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Unknown language: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazian" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinese" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiatic (Other)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadian" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanian" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonquian Languages" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Southern Altai" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "English, Old (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apache Languages" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabic" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaic" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonese" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenian" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucanian" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificial (Other)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturian" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapascan Languages" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australian Languages" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaric" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaijani" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke Languages" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinese" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basque" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltic (Other)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Belarusian" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber (Other)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (Other)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnian" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Breton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarian" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Central American Indian (Other)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalan" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasian (Other)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtic (Other)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Chechen" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinese" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook Jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Church Slavic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Chamic Languages" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Coptic" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corsican" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creoles and Pidgins, English-Based (Other)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creoles and Pidgins, French-Based (Other)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creoles and Pidgins, Portuguese-Based (Other)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Crimean Tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creoles and Pidgins (Other)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kashubian" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitic (Other)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Czech" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danish" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidian (Other)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Lower Sorbian" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Dutch, Middle (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Dutch" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egyptian (Ancient)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "English" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "English, Middle (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonian" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijian" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finnish" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finno-Ugrian (Other)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "French" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "French, Middle (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "French, Old (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisian" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulian" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germanic (Other)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgian" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "German" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertese" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irish" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galician" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "German, Middle High (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "German, Old High (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gothic" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Greek, Ancient (to 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Greek, Modern (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitian" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiian" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebrew" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Upper Sorbian" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hungarian" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Icelandic" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indic (Other)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesian" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-European (Other)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iranian (Other)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Iroquoian Languages" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italian" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanese" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japanese" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeo-Persian" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeo-Arabic" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (Other)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Korean" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdish" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latin" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvian" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgan" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lithuanian" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxembourgish" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya and Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedonian" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallese" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesian (Other)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irish, Middle (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Miscellaneous Languages" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Other)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo Languages" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavian" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolian" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Multiple Languages" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda languages" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Mayan Languages" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "North American Indian" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitan" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, South" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, North" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Low German" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanian (Other)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norwegian Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norwegian Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norse, Old" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norwegian" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Northern Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubian Languages" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Classical Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (post 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turkish, Ottoman (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomian Languages" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuan (Other)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persian, Old (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persian" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Philippine (Other)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Phoenician" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polish" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portuguese" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakrit Languages" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provencal, Old (to 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romance (Other)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-Romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romany" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romanian" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russian" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "South American Indian (Other)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salishan Languages" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritan Aramaic" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbian" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilian" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croatian" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitic (Other)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irish, Old (to 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Sign Languages" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouan Languages" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetan (Other)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavic (Other)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovak" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenian" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Southern Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Northern Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Sami Languages (Other)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoan" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, Southern" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spanish" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinian" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Saharan (Other)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanese" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerian" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Swedish" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syriac" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitian" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (Other)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetan" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tonga Islands)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmen" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi Languages" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turkish" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaic (Other)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinian" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritic" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainian" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Undetermined" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamese" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakashan Languages" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Welsh" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbian Languages" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupik Languages" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 #, fuzzy msgid "Following actions will be done:" msgstr "The following packages will be updated:\n" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' does not exist." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' does not exist." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "The VM's name cannot start with a digit." #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "The VM's name cannot start with a digit." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Cannot open file for writing." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Valid metadata not found at specified URL(s)" msgstr[1] "Valid metadata not found at specified URL(s)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Cannot create %s: %m\n" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Cannot create directory %1: %2." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Building repository '%s' cache" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 #, fuzzy msgid "Unhandled repository type" msgstr "Uploaded %s to repository." #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, fuzzy, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Error parsing metadata for '%s':" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Unknown command '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Adding repository '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Invalid export filename." #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Removing repository '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Cannot stat '%s': %m\n" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Invalid LDAP URL query string" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Invalid LDAP URL query parameter '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Unable to clone Url object" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Invalid empty Url object reference" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Unable to parse Url components" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "unknown" #: zypp/VendorSupportOptions.cc:17 #, fuzzy msgid "unsupported" msgstr " - not supported" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "The disk does not exist." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "History:" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Cannot open file %1." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Unknown command '%s'" #: zypp/base/StrMatcher.cc:153 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Unknown digest %s for file %s." #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Invalid Url scheme '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Authentication required for '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Unable to open %s - %s\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to load module \"%s\"." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "File %1 not found in the repository." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Cannot write to file %1." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 is not a directory." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "Empty CA name." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Invalid URL scheme '%1'." #: zypp/media/MediaException.cc:129 #, fuzzy msgid "Operation not supported by medium" msgstr "Profile version not supported by Apparmor module\n" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 #, fuzzy msgid "Cannot eject any media" msgstr "Cannot find any schemes." #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Cannot stat '%s': %m\n" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Permissions denied" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Unsupported HTTP authentication method '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, fuzzy, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Required file is missing: " #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "Package %s fails integrity check. Do you want to retry?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Package %s fails integrity check. Do you want to retry?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm check failed." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm failed." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "resource type VAR1 does not support show changes feature" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Can't provide file %s from repository %s" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "No url in repository." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Cannot create the file." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Generally ignore this requirement" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "Generally ignore this requirement" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s provides %s, but has another architecture." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "Problem installing source package %s-%s:" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "Connection request to: " #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Cannot install %s due to dependency problems" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "None provides %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "backup does not exists" #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr " - not supported" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s is locked and cannot be uninstalled." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "not installed" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s is needed by %s" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Cannot install %s" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s conflicts with %s" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s obsoletes %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s obsoletes %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s conflicts with %s" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "None provides %s" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "There are no installable providers of %s" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "There are no installable providers of %s" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "do not install %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "keep %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "do not install %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "The request already exists." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "There are no installable providers of %s" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Do not install or delete the resolvables concerned" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s provides %s, but has another architecture." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "Install %s although it would change the architecture" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s obsoletes %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "Updating %s to %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Installation of %s failed:" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "Execute" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "Error during key encryption." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Installation has been aborted as directed." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext not connected" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive not initialised" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume not initialised" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Unable to create dbus connection" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Can't create libhal context" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Can't set dbus connection" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Unable to initialise HAL context -- hald not running?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Not a CDROM drive" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "failed" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Changed configuration files for %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm saved %s as %s, but it was impossible to determine the difference" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm created %s as %s, but it was impossible to determine the difference" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Additional rpm output:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "created backup %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Source package '%s' not found." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Source package '%s' not found." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Source package '%s' not found." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Can't initialise mutex attributes" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Can't set recursive mutex attribute" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Can't initialise recursive mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Can't acquire the mutex lock" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Can't release the mutex lock" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url scheme does not allow a %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Invalid %s component '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Invalid %s component" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Query string parsing not supported for this URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url scheme is a required component" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Invalid Url scheme '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url scheme does not allow a username" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url scheme does not allow a password" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url scheme requires a host component" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url scheme does not allow a host component" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Invalid host component '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url scheme does not allow a port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Invalid port component '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url scheme requires path name" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relative path not allowed if authority exists" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Encoded string contains a NUL byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Invalid parameter array split separator character" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Invalid parameter map split separator character" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Invalid parameter array join separator character" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Unable to get the public key." #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "not installed" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Unable to open %s - %s\n" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia and Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Unknown list option" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "could not resolve dependencies" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "File %s failed integrity check with the following key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgid "%s remove failed" #~ msgstr "%s remove failed" #~ msgid "Invalid user name or password." #~ msgstr "Invalid user name or password." #~ msgid "rpm output:" #~ msgstr "rpm output:" #~ msgid "%s install failed" #~ msgstr "%s install failed" #~ msgid "%s installed ok" #~ msgstr "%s installed ok" #~ msgid "%s remove ok" #~ msgstr "%s remove ok" #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Do not install or delete the resolvables concerned" #~ msgid "Ignore that %s is already set to install" #~ msgstr "Ignore that %s is already set to install" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "Ignore the obsolete %s in %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "Ignore this conflict of %s" #~ msgid "Ignore this requirement just here" #~ msgstr "Ignore this requirement just here" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "Install %s although it would change the architecture" #~ msgid "Install missing resolvables" #~ msgstr "Install missing resolvables" #~ msgid "Keep resolvables" #~ msgstr "Keep resolvables" #~ msgid "Unlock these resolvables" #~ msgstr "Unlock these resolvables" #~ msgid "delete %s" #~ msgstr "delete %s" #~ msgid "install %s" #~ msgstr "install %s" #~ msgid "unlock %s" #~ msgstr "unlock %s" #~ msgid "unlock all resolvables" #~ msgstr "unlock all resolvables" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Cannot open file %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Error reading repositories:" #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "Path Parameter parsing not supported for this URL" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "Path parameter parsing not supported for this URL" #~ msgid "Reading '%s' repository cache" #~ msgstr "Reading '%s' repository cache" #~ msgid "Reading patch and delta rpms from '%s' repository cache" #~ msgstr "Reading patch and delta rpms from '%s' repository cache" #~ msgid "Cleaning repository '%s' cache" #~ msgstr "Cleaning repository '%s' cache" #~ msgid "Reading repository '%s' cache" #~ msgstr "Reading repository '%s' cache" #~ msgid "Software management is already running." #~ msgstr "Software management is already running." #~ msgid "%s is replaced by %s" #~ msgstr "%s is replaced by %s" #~ msgid "%s replaced by %s" #~ msgstr "%s replaced by %s" #~ msgid "%s will be deleted by the user.\n" #~ msgstr "%s will be deleted by the user.\n" #~ msgid "%s will be deleted by another application. (ApplLow/ApplHigh)\n" #~ msgstr "%s will be deleted by another application. (ApplLow/ApplHigh)\n" #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s will be installed by the user.\n" #~ msgid "%s will be installed by another application. (ApplLow/ApplHigh)\n" #~ msgstr "%s will be installed by another application. (ApplLow/ApplHigh)\n" #, fuzzy #~ msgid "No valid solution found within %d seconds" #~ msgstr "No valid solution found with just resolvables of best architecture." #~ msgid "No valid solution found with just resolvables of best architecture." #~ msgstr "No valid solution found with just resolvables of best architecture." #~ msgid "" #~ "With this run only resolvables with the best architecture have been " #~ "regarded.\n" #~ msgstr "" #~ "With this run only resolvables with the best architecture have been " #~ "regarded.\n" #~ msgid "" #~ "Regarding all possible resolvables takes time, but can come to a valid " #~ "result." #~ msgstr "" #~ "Regarding all possible resolvables takes time, but can come to a valid " #~ "result." #~ msgid "Invalid information" #~ msgstr "Invalid information" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s is needed by other resolvables" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s is needed by:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s conflicts with other resolvables" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s conflicts with:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s obsoletes other resolvables" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgid "%s depends on other resolvables" #~ msgstr "%s depends on other resolvables" #~ msgid "%s depends on %s" #~ msgstr "%s depends on %s" #~ msgid "%s depends on:%s" #~ msgstr "%s depends on:%s" #~ msgid "Child of" #~ msgstr "Child of" #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "Cannot install %s, because it is conflicting with %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s is not installed and has been marked as not installable" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s has unfulfilled requirements" #~ msgid "%s has missing dependencies" #~ msgstr "%s has missing dependencies" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s cannot be installed due to missing dependencies" #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s fulfils dependencies of %s but will be uninstalled" #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s fulfils dependencies of %s but will be kept on your system" #~ msgid "No need to install %s" #~ msgstr "No need to install %s" #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "Cannot install %s to fulfil the dependencies of %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "Cannot install %s to fulfil the dependencies of %s" #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s will not be uninstalled, because it is still required" #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "Cannot install %s, because it is conflicting" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s is not installable due to conflicts with %s" #~ msgid "Requirememt %s cannot be fulfilled." #~ msgstr "Requirement %s cannot be fulfilled." #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "for requiring %s for %s when upgrading %s" #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s is lacking the requirement %s" #~ msgid ", Action: " #~ msgstr ", Action: " #~ msgid ", Trigger: " #~ msgstr ", Trigger: " #~ msgid "package" #~ msgstr "package" #~ msgid "selection" #~ msgstr "selection" #~ msgid "pattern" #~ msgstr "pattern" #~ msgid "product" #~ msgstr "product" #~ msgid "patch" #~ msgstr "patch" #~ msgid "script" #~ msgstr "script" #~ msgid "message" #~ msgstr "message" #~ msgid "atom" #~ msgstr "atom" #~ msgid "system" #~ msgstr "system" #~ msgid "Resolvable" #~ msgstr "Resolvable" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "Marking this resolution attempt as invalid." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Marking resolvable %s as not installable" #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "Can't install %s, because it does not apply to this system." #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgid "This would invalidate %s." #~ msgstr "This would invalidate %s." #~ msgid "Establishing %s" #~ msgstr "Establishing %s" #~ msgid "Installing %s" #~ msgstr "Installing %s" #~ msgid "Skipping %s: already installed" #~ msgstr "Skipping %s: already installed" #~ msgid "There are no alternative providers of %s installed" #~ msgstr "There are no alternative providers of %s installed" #~ msgid "for %s" #~ msgstr "for %s" #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "Upgrading to %s to avoid removing %s is not possible." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s provides %s, but is scheduled to be uninstalled." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "" #~ "%s provides %s, but another version of that %s is already installed." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s provides %s, but it is not installable. Try installing it on its own " #~ "for more details." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s provides %s, but it is locked." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s provides %s, but is scheduled to be kept." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s provides %s, but has another architecture." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "Can't satisfy requirement %s for %s" #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "Marking %s as not installable due to conflicts over %s" #~ msgid "from %s" #~ msgstr "from %s" #~ msgid " Error!" #~ msgstr " Error!" #~ msgid " Important!" #~ msgstr " Important!" #~ msgid "Make a solver run with ALL possibilities." #~ msgstr "Make a solver run with ALL possibilities." #~ msgid "Regarding all resolvables with a compatible architecture." #~ msgstr "Regarding all resolvables with a compatible architecture." #, fuzzy #~ msgid "Make a solver run with best architecture only." #~ msgstr "Make a solver run with ALL possibilities." #, fuzzy #~ msgid "Regarding resolvables with best architecture only." #~ msgstr "Regarding all resolvables with compatible architecture." #~ msgid "%s depended on %s" #~ msgstr "%s depended on %s" #~ msgid "%s is recommended by %s" #~ msgstr "%s is recommended by %s" #~ msgid "%s is suggested by %s" #~ msgstr "%s is suggested by %s" #~ msgid "%s is enhanced by %s" #~ msgstr "%s is enhanced by %s" #~ msgid "%s is supplemented by %s" #~ msgstr "%s is supplemented by %s" #~ msgid "%s part of %s" #~ msgstr "%s part of %s" #, fuzzy #~ msgid "Start the next solver run with doubled timeout." #~ msgstr "Make a solver run with ALL possibilities." #~ msgid "%s is freshened by %s" #~ msgstr "%s is freshened by %s" libzypp-17.7.0/po/es.po000066400000000000000000003677361334444677500147330ustar00rootroot00000000000000# translation of zypp.po to # Ibán josé García Castillo , 2000. # Javier Moreno , 2000. # Jordi Jaen Pallares , 1999, 2000, 2001. # Pablo Iranzo Gómez , 2000. # Camaleón, 2007. # César Sánchez Alonso , 2007. # Miguel Angel Alvarez , 2008. # Camaleón , 2008. # translation of zypp.es.po to # Spanish message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002, 2003 SuSE Linux AG. # Copyright (C) 1999, 2000, 2001 SuSE GmbH. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-12 23:13+0000\n" "Last-Translator: Juan Sarria \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Excepción de hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipo dudoso %s para el byte %u de la suma de comprobación %s" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "País desconocido: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Sin código" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emiratos Ãrabes Unidos" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistán" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua y Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguila" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antillas Neerlandesas" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antártida" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Americana" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Islas Aland" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaiyán" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia y Herzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladés" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Bélgica" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahréin" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benín" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudas" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunéi Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bután" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Isla Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botsuana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Bielorrusia" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belice" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canadá" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Islas Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "República Centroafricana" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Suiza" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Costa de Marfil" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Islas Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camerún" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cabo Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Isla Christmas" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Chipre" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "República Checa" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Alemania" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Yibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dinamarca" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "República Dominicana" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Argelia" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipto" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sáhara Occidental" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "España" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopía" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlandia" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiyi" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Islas Malvinas" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Estados Federados de Micronesia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Islas Feroe" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francia" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Francia metropolitana" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabón" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Reino Unido" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Granada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guayana francesa" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenlandia" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadalupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinea Ecuatorial" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grecia" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Georgia del Sur e Islas Sandwich del Sur" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Isla Heard e Islas McDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croacia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haití" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungría" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isla de Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Territorios británicos del Océano Ãndico" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irán" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islandia" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordania" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japón" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirguistán" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Camboya" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoras" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "San Cristóbal y Nieves" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Corea del Norte" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Corea del Sur" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Islas Caimán" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazajistán" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laso, República Democrática Popular" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Líbano" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Santa Lucía" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburgo" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letonia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marruecos" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Mónaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavia" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "San Martín" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Islas Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birmania" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Islas Marianas del Norte" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauricio" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldivas" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malaui" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "México" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malasia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nueva Caledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Níger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Isla Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Países Bajos" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noruega" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauruano" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nueva Zelanda" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omán" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panamá" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perú" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinesia Francesa" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papúa Nueva Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipinas" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistán" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polonia" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "San Pedro y Miquelón" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Territorios palestinos" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palaos" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Catar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunión" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumanía" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Federación Rusa" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabia Saudí" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Islas Salomón" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudán" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suecia" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Santa Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Eslovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard y Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Eslovaquia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leona" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Santo Tomé y Príncipe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Siria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Suazilandia" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Islas Turcas y Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Territorios australes franceses" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailandia" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tayikistán" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistán" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Túnez" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Tímor Oriental" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turquía" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad y Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalino" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwán" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucrania" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Islas menores alejadas de los Estados Unidos" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Estados Unidos" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistán" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Santa Sede (Ciudad Estado del Vaticano)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "San Vicente y las Granadinas" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Islas Vírgenes Británicas" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Islas Vírgenes, EE.UU." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis y Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sudáfrica" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabue" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Proporciona" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Requisitos previos" # clients/hwinfo.ycp:73 # clients/hwinfo.ycp:73 # clients/hwinfo.ycp:73 #: zypp/Dep.cc:98 msgid "Requires" msgstr "Requiere" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Conflictos" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Obsoletos" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recomienda" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Sugiere" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Mejora" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Complementa" # include/backup/ui.ycp:1661 #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "No es posible abrir el pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "No es posible abrir el conducto (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "No es posible aplicar chroot a %s (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "No es posible cambiar al directorio %s en chroot %s (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "No es posible cambiar al directorio %s (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "No es posible ejecutar %s (%s)." # clients/printconf_write.ycp:121 #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "No es posible hacer fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "El comando ha terminado con el estado %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "La señal %d (%s) ha interrumpido el comando." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "El comando ha terminado con un error desconocido." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" "Se intentó importar una clave que no existe (%s) al almacén de claves %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Error al importar la clave." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Error al suprimir la clave." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "No se encuentra el archivo de firma %s" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Idioma desconocido: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abjasio" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinés" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acholi" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Circasiano" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-asiático (otros)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikáans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Acadio" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanés" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutiano" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Lenguas algoquinas" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai meridional" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amhárico" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Inglés antiguo (450 - 1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Lenguas apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Ãrabe" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Arameo" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonés" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenio" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucano" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapahoe" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificial (otros)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Asamés" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiano" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Lenguas atapascanas" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Lenguas australianas" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Ãvaro" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestano" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awetí" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aimara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaiyano" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Lenguas Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Beluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinés" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Vasco" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Báltico (otros)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorruso" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalí" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Bereber (otros)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantú (otros)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnio" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretón" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriato" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugi" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Búlgaro" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birmano" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Cado" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Lenguas amerindias de Centroamérica (otros)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Caribe" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalán" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucásico (otros)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Céltico (otros)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Checheno" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chino" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukés" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Jerga Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choktaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewa" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cheroqui" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Eslavo eclesial" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvasio" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyén" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Lenguas chámicas" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Copto" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Córnico" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corso" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Criollos y pidgins basados en el inglés (otros)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Criollos y pidgins basados en el francés (otros)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Criollos y pidgins basados en el portugués (otros)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cri" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tártaro de Crimea" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Criollos y pidgins (otros)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Casubiano" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cusita (otros)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Checo" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danés" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Esclavo (atapascano)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Lenguas drávidas (otros)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Bajo sorabo" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Danés medieval (1050 - 1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Neerlandés" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egipcio (antiguo)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamita" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglés" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Inglés medio (1100 - 1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonio" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewé" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Feroe" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fiyi" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finés" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fino-ungrio (otros)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francés" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francés medieval (1400 - 1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francés antiguo (842 - 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisón" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fula" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulano" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germánico (otros)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiano" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Alemán" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertés" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaélico" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandés" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Gallego" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Alto alemán medieval (1050 - 1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Alto alemán antiguo (750 - 1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gótico" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Griego antiguo (hasta 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Griego moderno (desde 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaraní" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiano" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiano" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreo" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynón" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hitita" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Alto sorabo" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Húngaro" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandés" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Yi de Sichuan" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingua" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Ilocano" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Asociación de la Lengua Auxiliar Internacional)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Ãndico (otros)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Bahasa" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoeuropeo (otros)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingusio" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraní (otros)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Lenguas iroquesas" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiano" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanés" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonés" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeo-persa" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeo-árabe" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Cabila" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Cachemir" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Canurio" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazaco" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Cherkeso" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Jasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Joisán (otros)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Jemer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Jotanés" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyo" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarruandés" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirguiso" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Congo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreano" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosrae" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpellé" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachái-Balcar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumico" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdo" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latín" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letón" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezgino" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgués" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituano" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgués" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenia y Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedonio" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurés" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshalés" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Macasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayamés" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandinga" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maorí" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austranesio (otros)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malayo" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mendé" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandés medieval (900 - 1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Varios idiomas" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Jemer (otros)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgache" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltés" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchú" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Lenguas manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohicano" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavo" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Varios idiomas" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Lenguas munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandés" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Lenguas mayas" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Lenguas amerindias de Norteamérica" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitano" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele meridional" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele septentrional" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Bajo alemán" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalés" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-cordofano (otros)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niue" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Noruego nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Noruego bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogáy" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Noruego antiguo" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Noruego" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho septentrional" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Lenguas nubias" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari clásico" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitano (posterior a 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osetio" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turco otomano (1500 - 1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Lenguas otomanas" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papú (otros)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Panganisano" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlevi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panyabí" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauano" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persa antiguo (600 - 400 a.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persa" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipino (otros)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenicio" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polaco" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Ponapeano" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugués" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Lenguas prácritas" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provenzal antiguo (hasta 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajastaní" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongano" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romance (otros)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romaní" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumano" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ruso" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakuto" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Lenguas amerindias de Sudamérica (otros)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Lenguas salish" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Arameo samaritano" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sánscrito" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbio" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliano" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Escocés" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croata" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semítico (otros)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandés antiguo (hasta 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Lenguas de signos" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Lenguas siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-tibetano (otros)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Eslavo (otros)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Eslovaco" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Esloveno" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami meridional" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami septentrional" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Lenguas sami (otros)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Sami lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Sami inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoano" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Sami skolt" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninké" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdiano" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalí" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songay" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho meridional" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Español" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardo" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-sahariano (otros)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Sisuati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanés" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerio" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suajili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Sueco" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siríaco" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitiano" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (otros)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tártaro" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telegu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tayiko" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalo" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetano" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigré" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigriña" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamasheq" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (islas Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshián" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tsuana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turcomano" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Lenguas Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turco" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaico (otros)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvano" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurto" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugarítico" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucraniano" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Indeterminado" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbeco" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamita" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votiaco" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Lenguas wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Galés" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Lenguas sórabas" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Valón" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Calmico" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapés" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Lenguas Yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapoteca" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Chuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulú" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuñi" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Se realizarán las siguientes acciones:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "no caduca" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "caducado: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "caduca: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(no caduca)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(CADUCADO)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(caduca en las próximas 24 horas)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(expira en %d día)" msgstr[1] "(expira en %d días)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "No es posible leer el directorio de repositorio %1%: permiso denegado" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Error al leer el directorio %s" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "No es posible leer el archivo de repositorio %1%: permiso denegado" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "El alias del repositorio no puede comenzar con un punto." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "El alias del servicio no puede comenzar con un punto." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "No es posible abrir el archivo %s para escribir en él." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Servicio desconocido %1%: se va a eliminar el repositorio de servicios " "huérfano %2%" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "No se han encontrado metadatos válidos en la URL especificada" msgstr[1] "No se han encontrado metadatos válidos en las URL especificadas" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "No es posible crear %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "No es posible crear el directorio para el caché de metadatos." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Construyendo el caché del repositorio %s" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "No es posible crear el caché en %s, no posee permisos de escritura." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Error al añadir a caché el repositorio (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Tipo de repositorio no gestionado" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Error al intentar leer de %s" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Error desconocido al leer de %s" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Añadiendo el repositorio %s" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nombre de archivo del repositorio no válido en %s" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Eliminando el repositorio %s" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "No es posible determinar dónde está almacenado el repositorio." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "No es posible suprimir %s" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "No es posible determinar donde está almacenado el servicio." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Cadena de consulta URL LDAP no válida" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parámetro de consulta URL LDAP %s no válido" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "No es posible clonar el objeto URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Referencia de objeto de URL vacío no válida" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "No es posible analizar los componentes de URL" # clients/support_registration.ycp:225 include/support/registration.ycp:77 # clients/support_askkey.ycp:246 include/support/supportio.ycp:79 # # clients/support_askkey.ycp:246 include/support/supportio.ycp:79 #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "desconocido" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "no compatible" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Nivel 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Nivel 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Nivel 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Se necesita un contrato adicional de cliente" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "no válido" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "El nivel de asistencia no se ha especificado" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "El proveedor no proporciona asistencia." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Determinación de problemas, lo que significa asistencia técnica diseñada " "para proporcionar información de compatibilidad, asistencia para la " "instalación, compatibilidad de uso, mantenimiento continuo y resolución " "básica de problemas. La asistencia de nivel 1 no está pensada para corregir " "errores por defectos del producto." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Aislamiento de problemas, lo que significa asistencia técnica diseñada para " "reproducir los problemas del cliente, aislar el área problemática y " "proporcionar soluciones para los problemas que no se resuelven mediante la " "asistencia de nivel 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Resolución de problemas, lo que significa asistencia técnica diseñada para " "resolver problemas complejos utilizando la ingeniería en la resolución de " "los defectos de los productos identificados en la asistencia de nivel 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Para obtener asistencia se necesita un contrato adicional de cliente." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Opción de asistencia desconocida. Descripción no disponible." #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "La gestión del sistema está bloqueada por la aplicación con pid %d (%s).\n" "Cierre la aplicación antes de volver a intentarlo." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historial:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "No es posible abrir el archivo de bloqueo: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Otro programa ya está ejecutando esta acción." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Modo de coincidencias '%s' desconocido" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Modo de coincidencias %s desconocido para el patrón %s" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expresión regular %s no válida: regcomp ha devuelto %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expresión regular '%s' no válida" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Se requiere autenticación para %s" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Visite el Centro de servicios al cliente de Novell para comprobar si el " "registro es válido y no ha caducado." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Error al montar %s en %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Error al desmontar %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nombre de archivo incorrecto: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "No se ha abierto el medio al intentar realizar la acción %s." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "No se encuentra el archivo %s en el medio %s" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "No es posible escribir el archivo %s." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medio no conectado" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Punto de conexión de medio incorrecto" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Error de inicio de descarga (curl) para %s" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Excepción de sistema %s en el medio %s." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "La vía %s del medio %s no es un archivo." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "La vía %s del medio %s no es un directorio." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Formato de URI incorrecto" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nombre de host vacío en URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Sistema de archivos vacío en URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destino vacío en URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Esquema de URI no admitido en %s." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "El medio no admite la operación" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Error de descarga (curl) para %s:\n" "Código de error: %s\n" "Mensaje de error: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Error al definir las opciones de descarga (curl) para %s:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "El origen de medios %s no incluye el medio deseado" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "El medio %s está en uso en otra instancia" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "No es posible expulsar ningún medio" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "No es posible expulsar el medio '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Se ha denegado el permiso para acceder a %s." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Se ha superado el tiempo de espera al acceder a %s." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "La ubicación '%s' está momentaneamente inaccesible." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Hay un problema con el certificado SSL. Compruebe que la autoridad de " "certificación (CA) es correcta para %s." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Creación de punto de conexión: no se encuentra ningún directorio en el que " "se pueda escribir para crear un punto de conexión" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Método de autenticación HTTP no compatible %s" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Instale primero el paquete lsof." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Falta el atributo requerido %s." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Se requieren uno o ambos de los atributos %s o %s." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Error de verificación de firma" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Parece que el paquete %s se ha dañado durante la transferencia. ¿Desea " "volver a intentar la recuperación?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Error al proporcionar el paquete %s. ¿Desea volver a intentar la " "recuperación?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Error al comprobar applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Error de applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "El complemento del servicio no admite el cambio de un atributo." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "No es posible proporcionar el archivo %s desde el repositorio %s" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "No hay ninguna URL en el repositorio." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "El archivo %1%\n" " del paquete\n" " %2%\n" " tiene un conflicto con un archivo del paquete\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "El archivo %1%\n" " del paquete\n" " %2%\n" " tiene un conflicto con el archivo de la instalación de\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "El archivo %1%\n" " de la instalación de\n" " %2%\n" " tiene un conflicto con un archivo del paquete\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "El archivo %1%\n" " de la instalación de\n" " %2%\n" " tiene un conflicto con un archivo de la instalación de\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "El archivo %1%\n" " del paquete\n" " %2%\n" " tiene un conflicto con el archivo\n" " %3%\n" " del paquete\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "El archivo %1%\n" " del paquete\n" " %2%\n" " tiene un conflicto con el archivo\n" " %3%\n" " de la instalación de\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "El archivo %1%\n" " de la instalación de\n" " %2%\n" " tiene un conflicto con el archivo\n" " %3%\n" " del paquete\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "El archivo %1%\n" " de la instalación de\n" " %2%\n" " tiene un conflicto con el archivo\n" " %3%\n" " de la instalación de\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "No es posible crear sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "romper %s ignorando algunas de sus dependencias" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "generalmente se ignoran algunas dependencias" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s no pertenece a un repositorio distupgrade" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s posee una arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "se ha producido un problema con el paquete instalado %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "peticiones en conflicto" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "algún problema de dependencia" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "no hay nada que proporcione el elemento %s pedido" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "¿Ha habilitado todos los repositorios pedidos?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "el paquete %s no existe" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "petición no admitida" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s proviene del sistema y no se puede eliminar" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s no es instalable" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "no hay nada que proporcione %s, necesario para %s" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "no es posible instalar ambos elementos: %s y %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s está en conflicto con %s proporcionado por %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s deja obsoleto %s, proporcionado por %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s instalado, deja obsoleto a %s proporcionado por %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "La solución %s está en conflicto con %s, proporcionada por ella misma" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s requiere %s, pero este requisito no se puede cumplir" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "proveedores suprimidos: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "proveedores no instalables: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "proveedores no instalables: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "eliminar bloqueo para permitir la desinstalación de %s" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "no instalar %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "mantener %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "eliminar bloqueo para permitir la instalación de %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Esta petición dañará su sistema." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorar la advertencia de daño del sistema" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "no preguntar si se debe instalar una solución que proporciona %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" "no preguntar si se deben suprimir todas las soluciones que proporcionan %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "no instalar la versión mas reciente de %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "mantener %s a pesar de la arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "instalar %s a pesar de la arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "mantener el antiguo %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "instalar %s desde el repositorio excluido" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "restablecer versión anterior de %s a %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "cambio en la arquitectura de %s a %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instalar %s (con cambio de proveedor)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "reemplazo de %s con %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "desinstalación de %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Ejecutando el guion %%posttrans %1%" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Ejecutando guiones %posttrans" # include/nis_server/io.ycp:567 #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " ejecutado" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " error de ejecución" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s ya se ha ejecutado como %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " ejecución omitida mientras se cancela" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Error al enviar la notificación del mensaje de actualización." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nuevo mensaje de actualización" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "La instalación se ha cancelado siguiendo las indicaciones." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Lo sentimos, pero esta versión de libzypp se ha construido sin " "compatibilidad con HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext no está conectado" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive no se ha iniciado" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume no se ha iniciado" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "No es posible crear la conexión dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: no es posible crear el contexto libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: no es posible establecer la conexión dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "No es posible iniciar el contexto HAL -- ¿Es posible que hald no se esté " "ejecutando?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "No es una unidad de CD-ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM fallido: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Error al importar la clave pública %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Error al eliminar la clave pública %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "¡El paquete no está firmado!" # # modules/Mail.ycp:458 # modules/Mail.ycp:554 # modules/Mail.ycp:554 # modules/Mail.ycp:563 #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Se han modificado los archivos de configuración para %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm ha guardado %s como %s, pero no es posible determinar la diferencia" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ha guardado %s como %s.\n" "A continuación se presentan las primeras 25 líneas de diferencia:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm ha creado %s como %s, pero no es posible determinar la diferencia" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ha creado %s como %s.\n" "A continuación se presentan las primeras 25 líneas de diferencia:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Salida de rpm adicional" # include/nis_server/io.ycp:582 # include/backup/ui.ycp:1286 #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "creada copia de seguridad %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "La firma es correcta" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tipo de firma desconocido" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "La firma no cumple la verificación" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "La firma es correcta, pero la clave no es de confianza" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "La clave pública de firma no está disponible" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "El archivo no existe o no es posible comprobar la firma" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "El fichero no está firmado" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "No es posible iniciar los atributos de mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "No es posible establecer el atributo de mutex recursivo" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "No es posible iniciar mutex recursivo" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "No es posible adquirir el bloqueo de mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "No es posible liberar el bloqueo de mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "El esquema de URL no permite un elemento %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Componente %s no válido %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Componente %s no válido" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" "El análisis de cadenas de consulta no es compatible con esta dirección URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "El esquema de URL es un componente obligatorio" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Esquema %s de URL no válido" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "El esquema de URL no permite un nombre de usuario" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "El esquema de URL no permite una contraseña" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "El esquema de URL requiere un componente host" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "El esquema de URL no permite un componente host" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Componente de host no válido %s" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "El esquema de URL no permite un puerto" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Componente de puerto no válido %s" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "El esquema URL requiere un nombre de vía" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "No se permiten vías relativas si existe una autoridad" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "La cadena cifrada incluye un byte nulo" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Carácter separador de división de conjunto de parámetros no válido" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Carácter separador de división de asignación de parámetros no válido" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Carácter separador de unión de conjunto de parámetros no válido" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Error al importar la clave pública desde el archivo %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Error al eliminar la clave pública %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "No se encuentra ningún dispositivo de bucle disponible para montar el " #~ "archivo de imagen desde %s" #~ msgid "generally ignore of some dependecies" #~ msgstr "generalmente ignorar algunas dependencias" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #~ msgid "do not forbid installation of %s" #~ msgstr "no prohibir la instalación de %s" #~ msgid "do not keep %s installed" #~ msgstr "no mantener instalado %s" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "تعذر حل التبعيات" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "No se puede crear la clave pública %s del anillo de claves %s al archivo " #~ "%s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "" #~ "Se intentó importar la clave inexistente %s en el anillo de claves %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "No se puede cambiar de directorio a '/' dentro del chroot (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "" #~ "La inicialización de la descarga (Metalink curl) ha fallado para '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Error en la descarga (metalink curl) de '%s':\n" #~ "Código de error: %s\n" #~ "Mensaje de error: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Descarga interrumpida en %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Descarga interrumpida por el usuario" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Se ha producido un error al establecer las opciones de descarga (metalink " #~ "curl) para '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Error al descargar %s desde %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia y Montenegro" #~ msgid "Unknown Distribution" #~ msgstr "Distribución desconocida" #~ msgid "Timeout exceeded when access '%s'." #~ msgstr "Se ha sobrepasado el tiempo de espera al acceder a '%s'." libzypp-17.7.0/po/et.po000066400000000000000000002736401334444677500147220ustar00rootroot00000000000000# translation of zypp.et.po to Estonian # translation of # Copyright (C) 2006 SUSE Linux Products GmbH. # Estonian message file for YaST2 (@memory@). # # Ain Vagula , 2006, 2007, 2009. msgid "" msgstr "" "Project-Id-Version: zypp.et\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2009-06-10 09:49+0300\n" "Last-Translator: Ain Vagula \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal erand" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Tundmatu riik " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Kood puudub" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Araabia Ühendemiraadid" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua ja Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albaania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armeenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Hollandi Antillid" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Ameerika Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Austraalia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ahvenamaa" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Aserbaidžaan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia ja Hertsegoviina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Boliivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasiilia" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahama" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet' saar" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Valgevene" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kookosesaared" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Kesk-Aafrika Vabariik" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å veits" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Elevandiluurannik" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cooki saared" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "TÅ¡iili" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Hiina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Roheneemesaared" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Jõulusaar" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Küpros" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "TÅ¡ehhi" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Saksamaa" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Taani" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikaani Vabariik" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžeeria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Eesti" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egiptus" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Lääne-Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Hispaania" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etioopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Soome" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandi saared (Malviinid)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikroneesia Föderatsioon" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Fääri saared" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Prantsusmaa" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Prantsuse emamaa" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Suurbritannia" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gruusia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Prantsuse Guajaana" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Saksamaa" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Gröönimaa" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatoriaal-Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Kreeka" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Lõuna-Georgia ja Lõuna-Sandwichi saared" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heardi saar ja McDonaldi saared" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Horvaatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungari" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indoneesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Iirimaa" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Iisrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Briti India ookeani ala" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iraan" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Itaalia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordaania" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Jaapan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kõrgõzstan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodža" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komoorid" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts ja Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Põhja-Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Lõuna-Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuveit" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kaimanisaared" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kasahstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Liibanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libeeria" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Leedu" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Läti" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Liibüa" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Mongo" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshalli saared" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedoonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birma" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongoolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Põhja-Mariaani saared" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritaania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldiivid" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mehhiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaisia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mosambiik" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namiibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Uus-Kaledoonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolki saar" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holland" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norra" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Uus-Meremaa" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omaan" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peruu" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Prantsuse Polüneesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Paapua Uus-Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipiinid" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poola" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre ja Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestiina haldusterritoorium" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Belau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumeenia" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Venemaa Föderatsioon" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi Araabia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Saalomoni saared" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "SeiÅ¡ellid" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudaan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Rootsi" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Saint Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Sloveenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard ja Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakkia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somaalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome ja Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Süüria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Svaasimaa" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks ja Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "TÅ¡aad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Prantsuse Lõunaalad" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tai" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Türkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tuneesia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Ida-Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Türgi" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad ja Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tansaania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Ühendriikide hajasaared" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Ameerika Ühendriigid" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Usbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Püha Tool (Vatikan)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent ja Grenadiinid" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Briti Neitsisaared" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "USA Neitsisaared" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis ja Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jeemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Lõuna-Aafrika Vabariik" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Sambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Varustab" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Vajab" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "On vastuolus" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "Muudab aegunuks" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Soovitab" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Ei saanud avada faili: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Ei saa avada faili %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Ei saa käivitada '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Ei saa käivitada '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Võtme kustutamine nurjus." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Võtme kustutamine nurjus." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "Hoidlat %s ei leitud." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Tundmatu keel: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afari" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abhaasi" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "AtÅ¡ehi" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Akoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adõgee" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afroaasia (muu)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaani" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akani" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akadi" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albaania" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleuudi" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonkini keeled" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amhaari" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Vanainglise (ca. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ApatÅ¡i keeled" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Araabia" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramea" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragoni" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeenia" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araukaani" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Tehis (muu)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawaki" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assami" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Astuuria" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Atapaski keeled" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Austraalia keeled" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaari" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avesta" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Avadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aimaraa" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Aserbaidžaani" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "Mitu keelt" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "BaÅ¡kiiri" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "BelutÅ¡i" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Bali" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baski" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Balti (muu)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Bedža" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Valgevene" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengaali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berberi (muu)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhodžpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihaari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikoli" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Edo" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (muu)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnia" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Bradži" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretooni" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Bataki (Indoneesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Burjaadi" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugi" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgaaria" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birma" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blini" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Kado" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Kesk-Ameerika indiaani (muu)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Kariibi" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalaani" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukaasia (muu)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Sebu" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keldi (muu)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "TÅ¡amorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "TÅ¡ibtÅ¡a" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "TÅ¡etÅ¡eeni" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "TÅ¡agatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Hiina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "TÅ¡uugi" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "TÅ¡inuki žargoon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "TÅ¡okto" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "TÅ¡ipevai" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "TÅ¡erokii" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Kirikuslaavi" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "TÅ¡uvaÅ¡i" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Å aieeni" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "ApatÅ¡i keeled" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Kopti" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Korni" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsika" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Krii" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krimmitatari" #. language code: crp #: zypp/LanguageCode.cc:363 #, fuzzy msgid "Creoles and Pidgins (Other)" msgstr "Kesk-Ameerika indiaani (muu)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "KaÅ¡uubi" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "TÅ¡ehhi" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Taani" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargi" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dajaki" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delavari" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Orjaindiaani (atapaski)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Koeraribi-Karujärve" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Maldiivi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Alamsorbi" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Keskhollandi (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Hollandi" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Djula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Ibibio" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Vanaegiptuse" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekadžuki" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Eelami" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglise" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Keskinglise (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Eesti" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Eve" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Jaunde" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fangi" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Fääri" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fidži" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipiini" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Soome" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Soomeugri (muu)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Foni" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Prantsuse" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Keskprantsuse (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Vanaprantsuse (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Friisi" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulbe" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friuuli" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Gaa" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gajo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaja" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germaani (muu)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Gruusia" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Saksa" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Etioopia" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilberti" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaeli" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Iiri" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galeegi" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Mänksi" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Keskülemsaksa (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Vanaülemsaksa (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gooti" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Vanakreeka (kuni 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Kreeka, tänapäevane (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaranii" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gudžarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "GvitÅ¡ini" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haiiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Havai" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Heebrea" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligainoni" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "HimatÅ¡ali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Heti" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmongi" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Ülemsorbi" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungari" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Ibani" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Ibo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandi" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuani jii" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Idžo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktituti" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue (oktsidentaal)" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "India (muu)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indoneesia" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoeuroopa (muu)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "InguÅ¡i" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Injupiaki" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraani (muu)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokeesi keeled" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Itaalia" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Jaava" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Jaapani" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Juudipärsia" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Juudiaraabia" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Karakalpaki" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabiili" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "KatÅ¡ini" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Kareni" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÅ¡miiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kaavi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kasahhi" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardi-tÅ¡erkessi" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmeri" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Saki" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuju" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Ruanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgiisi" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Mbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Korea" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosrae" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "KaratÅ¡ai-balkaari" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kruu" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Oraoni" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Ambo" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumõki" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdi" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladiino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Ladina" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Läti" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lesgi" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgi" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Leedu" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Letseburgi" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luisenjo" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya ja Tansaania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "LuÅ¡ei" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedoonia" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madura" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "MarÅ¡alli" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makassari" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malajalami" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maoori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malai" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "MokÅ¡a" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandari" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Keskiiri (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mikmaki" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Mitmesugused keeled" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagassi" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Malta" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Mandžu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo keeled" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohoogi" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldova" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongoli" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Mitu keelt" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda keeled" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Maskogi" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Miranda" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marvari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Maaja keeled" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Ersa" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahua" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Põhja-Ameerika indiaani" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Naapoli" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Lõunandebele" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Põhjandebele" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Alamsaksa" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Niasi" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niue" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Uusnorra" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norra (bokmÃ¥l)" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Vanapõhjala" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norra" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Põhjasotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nuubia keeled" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Klassikaline nevari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Njandža" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Njamvesi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nkole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Njoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Provansi (pärast 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Odžibvei" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oria" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Oseidži" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osseedi" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Osmanitürgi (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "Nuubia keeled" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Paapua (muu)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinani" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Pandžabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Belau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Vanapärsia (u. 600-400 eKr.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Pärsia" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipiini (muu)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Foiniikia" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Paali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poola" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Poonpei" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugali" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Praakriti keeled" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Vanaprovansi (kuni 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "PuÅ¡tu" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "KetÅ¡ua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Radžastani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotonga" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romaani (muu)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retoromaani" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Mustlaskeel" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumeenia" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Vene" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandave" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Jakuudi" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Lõuna-Ameerika indiaani (muu)" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Siuu keeled" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaaria aramea" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbia" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sitsiilia" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Å oti" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Horvaadi" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Sölkupi" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semiidi (muu)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Vanaiiri (kuni 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Märgikeeled" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Å ani" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singali" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siuu keeled" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slaavi (muu)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovaki" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Sloveeni" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Lõunasaami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Põhjasaami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Saami keeled (muu)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule saami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari saami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Koltasaami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Å ona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdi" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somaali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Lõunasotho" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Hispaania" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardi" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Sereri" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Niiluse-Sahara (muu)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Svaasi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sunda" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumeri" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suahiili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Rootsi" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Assüüria" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahiiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (muu)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamili" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatari" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Temne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetumi" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadžiki" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalogi" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tiibeti" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigree" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinja" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tivi" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingoni" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingiti" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tuareegi" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tonga saarestik)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Uusmelaneesia" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tsvaana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Türkmeeni" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi keeled" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Türgi" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altai (muu)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Tvii" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuva" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurdi" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugariti" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uiguuri" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukraina" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Määramata" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Usbeki" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnami" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Vadja" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Atapaski keeled" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Volamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Varai" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "VaÅ¡o" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Kõmri" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbi keeled" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Vallooni" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Volofi" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmõki" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Koosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Jao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Japi" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "JidiÅ¡" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Jupiki keeled" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Sapoteegi" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "TÅ¡uangi" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Suulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Sooritatakse järgmised tegevused:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' pole olemas." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' pole olemas." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Kataloogi '%s' lugemine nurjus." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "Hoidlat %s ei leitud." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Faili '%s' avamine kirjutamiseks nurjus." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Pole võimalik luua %s: %m\n" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Ei saa luua katalooogi %1: %2" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Hoidla puhverdamine nurjus (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Viga lugemisel asukohast '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Tundmatu käsk '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Vigane ekspordifaili nimi." #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "Hoidla '%s' lisamine." #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Ei suuda tuvastada, kus hoidla asub." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Faili '%s' ei saa kustutada." #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Ei suuda tuvastada, kus teenus asub." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 #, fuzzy msgid "Unable to clone Url object" msgstr "Kõiki allikaid pole võimalik taastada." #: zypp/Url.cc:313 #, fuzzy msgid "Invalid empty Url object reference" msgstr "Vigane eelistus" #: zypp/Url.cc:326 zypp/Url.cc:340 #, fuzzy msgid "Unable to parse Url components" msgstr "Kõiki allikaid pole võimalik taastada." #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "tundmatu" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Tase 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Tase 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Tase 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "vigane" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Ajalugu:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Ei saa avada lukustusfaili: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Tundmatu käsk '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr " pole korrektne regulaaravaldis: \"" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr " pole korrektne regulaaravaldis: \"" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s - %s ei saa avada\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Mooduli \"%s\" laadimine ebaõnnestus." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Faili ei leitud: %1." #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Faili '%s' ei saa kirjutada." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 pole kataloog." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Tühi masina nimi URI-s" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 #, fuzzy msgid "Operation not supported by medium" msgstr "Profiili versioon ei ole Apparmori mooduli poolt toetatud\n" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ei saa avada faili '%1'." #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Ligipääs on keelatud" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " SSL-i probleem sertifikaadiga, kontolli, et SK sertifikaat sobiks '%s' " "jaoks." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr " käivitamine nurjus" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "Probleem hoidla andmete parsimisel." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Faili ei sa luua." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Sõltuvuste kontrollimine" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "Sõltuvuste kontrollimine" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "Paigaldatud pakettide lugemine" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "vastuolulised päringud" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "mingi sõltuvuse probleem" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "varukoopiat pole olemas" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s pole paigaldatav" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "kättesaamatud varustajad: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "kättesaamatud varustajad: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Käivita paigaldus või süsteem" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "Päring on juba olemas." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "Muudab aegunuks" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Paigaldamine" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " käivitatud" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " käivitamine nurjus" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " käivitamine jäeti katkestamise käigus vahele" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "Viga võtme krüptimisel." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext pole ühendatud" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive pole initsialiseeritud" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume pole initsialiseeritud" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "Ainult minu loodud ühenduse korral" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Pole CDROM-seade" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "ebaõnnestus" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Avaliku võtme %1% eemaldamine nurjus" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Täiendav rpm-i väljund" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Hoidlat %s ei leitud." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Hoidlat %s ei leitud." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Hoidlat %s ei leitud." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, fuzzy, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Vigane komponendi URI: " #: zypp/url/UrlBase.cc:180 #, fuzzy, c-format, boost-format msgid "Invalid %s component" msgstr "Vigane komponendi URI: " #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, fuzzy, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "vigane teenuse nimi '%1'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, fuzzy, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Vigane komponendi URI: " #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, fuzzy, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Vigane komponendi URI: " #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Avaliku võtme %s eemaldamine nurjus: %s" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "paigaldamata" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "%s - %s ei saa avada\n" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia ja Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Tundmatu nimekirja säte" libzypp-17.7.0/po/fa.po000066400000000000000000003355331334444677500147000ustar00rootroot00000000000000# Mohammad Rezaei Seresht , 2014. # hayyan , 2016. msgid "" msgstr "" "Project-Id-Version: opensuse-i 18n\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-02-28 13:09+0000\n" "Last-Translator: Mohammad Rezaei Seresht \n" "Language-Team: Persian \n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "استثنای Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "مورد مشکوک '%s' برای %u بایت checksum '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "کشور ناشناخته: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "بدون کد" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "آندورا" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "امارات متحده ÛŒ عربی" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Ø§ÙØºØ§Ù†Ø³ØªØ§Ù†" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "آنتیگوا Ùˆ باربودا" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "آنگویلا" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "آلبانی" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ارمنستان" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "آنتیل هلند" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "آنگولا" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "قاره قطب جنوب" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "آرژانتین" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ساموآ" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "اتریش" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "استرالیا" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "اروبا" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "جزایر آلند" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "آذربایجان" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "بوسنی Ùˆ هرزگوین" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "باربادوس" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "بنگلادش" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "بلژیک" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "بورکینا ÙØ§Ø³Ùˆ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "بلغارستان" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "بحرین" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "بروندی" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "بنین" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "برمودا" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "برونئی دارالسلام" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "بولیوی" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "برزیل" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "باهاماس" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "بوتان" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "جزیره بووت" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "بوتسوانا" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "بلاروس" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "بلیز" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "کانادا" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "جزایر کوکوس (کیلینگ)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "کونگو" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "جمهوجمهوری Ø¢ÙØ±ÛŒÙ‚ای مرکزی" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "سوئیس" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "ساحل عاج" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "جزایر Ú©ÙˆÚ©" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "شیلی" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "کامرون" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "چین" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "کلمبیا" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "کاستاریکا" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "کوبا" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "کیپ ورد" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "جزیره ÛŒ کریسمس" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "قبرس" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "جمهوری Ú†Ú©" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "آلمان" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "جیبوتی" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "دانمارک" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "دومینیکا" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "جمهوری دومینیکن" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "الجزایر" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "اکوادر" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "استونی" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "مصر" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "صحرای غربی" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "اریتره" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "اسپانیا" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "اتیوپی" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Ùنلاند" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Ùیجی" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "جزایر ÙØ§Ù„کلند (مالویناس)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ایالات ÙØ¯Ø±Ø§Ù„ میکرونزی" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "جزایر ÙØ§Ø±Ùˆ" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ÙØ±Ø§Ù†Ø³Ù‡" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "شهری ÙØ±Ø§Ù†Ø³Ù‡" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "گابن" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "انگلستان" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "گرانادا" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "گرجستان" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "گویان ÙØ±Ø§Ù†Ø³Ù‡" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "گرنزی" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "غنا" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "جبل الطارق" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "گرینلند" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "گامبیا" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "گینه" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "جزیره گوادلوپ" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "گینه استوایی" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "یونان" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "جورجیای جنوبی Ùˆ جزایر ساندویچ جنوبی" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "گواتمالا" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "گوام" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "گینه بیسائو" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "گویان" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "هنگ Ú©Ù†Ú¯" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "جزیره هرد Ùˆ جزایر Ù…Ú© دونالد" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "هندوراس" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "کرواسی" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "هائیتی" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "مجارستان" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "اندونزی" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ایرلند" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "اسرائیل" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "جزیره ÛŒ من" #: zypp/CountryCode.cc:261 msgid "India" msgstr "هند" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "قلمرو بریتانیا در اقیانوس هند" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "عراق" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ایران" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ایسلند" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ایتالیا" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "جرسی" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "جامائیکا" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "اردن" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ژاپن" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "کنیا" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "قرقیزستان" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "کلمبیا" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "کیریباتی" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "کومور" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "سنت کیتس Ùˆ نویس" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "کره ÛŒ شمالی" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "کره ÛŒ جنوبی" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "کویت" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "جزایر کیمن" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "قزاقستان" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "جمهوری دموکراتیک خلق لائوس" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "لبنان" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "سنت لوسیا" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "لیختن اشتاین" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "سریلانکا" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "لیبریا" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "لسوتو" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "لیتوانی" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "لوکزامبورگ" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "لتونی" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "لیبی" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "مراکش" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "موناکو" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "مولدووا" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "مونته نگرو" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "سنت مارتین" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "ماداگاسکار" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "جزایر مارشال" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "مقدونیه" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "مالی" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "میانمار" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "مغولستان" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "ماکائو" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "جزایر ماریانای شمالی" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "مارتینیک" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "موریتانی" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "مونتسرات" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "مالت" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "موریس" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "مالدیو" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "مالاوی" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "مکزیک" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "مالزی" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "موزامبیک" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "نامیبیا" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "کالدونیای جدید" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "نیجر" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "جزیره نورÙولک" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "نیجریه" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "نیکاراگوئه" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "هلند" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "نروژ" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "نپال" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "نائورو" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "نیوئه" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "نیوزیلند" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "عمان" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "پاناما" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "پرو" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "پلینزی ÙØ±Ø§Ù†Ø³Ù‡" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "پاپوآ گینه نو" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Ùیلیپین" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "پاکستان" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "لهستان" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "سنت پیر Ùˆ ماژلان" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "پیتکرن" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "پورتوریکو" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "سرزمین Ùلسطین" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "پرتغال" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "پالائو" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "پاراگوئه" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "قطر" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "رئونیون" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "رومانی" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "صربستان" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "روسیه" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "رواندا" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "عربستان سعودی" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "جزایر سلیمان" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "سیشل" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "سودان" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "سوئد" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "سنگاپور" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "سنت هلن" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "اسلوونی" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "سوالبارد Ùˆ یان ماین" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "اسلواکی" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "سیرالئون" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "سان مارینو" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "سنگال" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "سومالی" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "سورینام" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "سائوتومه Ùˆ پرینسیپ" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "السالوادور" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "سوریه" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "سوازیلند" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "جزایر تورکس Ùˆ کایکوس" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "چاد" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "سرزمین های جنوبی ÙØ±Ø§Ù†Ø³Ù‡" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "توگو" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "تایلند" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "تاجیکستان" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "توکلائو" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ترکمنستان" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "تونس" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "تونگا" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "شرق تیمور" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ترکیه" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ترینیداد Ùˆ توباگو" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "تووالو" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "تایوان" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "تانزانیا" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "اوکراین" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "اوگاندا" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "جزایر Ú©ÙˆÚ†Ú© حاشیه های ایالات متحده" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "ایالات متحده" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "اوروگوئه" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "ازبکستان" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "واتیکان" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "سنت وینسنت Ùˆ گرنادینها" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ونزوئلا" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "جزایر ویرجین بریتانیا" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "جزایر ویرجین ایالات متحده" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "ویتنام" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "وانواتو" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "والیس Ùˆ Ùوتونا" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "ساموآ" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "یمن" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "مایوت" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Ø¢ÙØ±ÛŒÙ‚ای جنوبی" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "زامبیا" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "زیمباوه" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ارائه میدهد" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "از پیش نیاز دارد" #: zypp/Dep.cc:98 msgid "Requires" msgstr "نیاز دارد" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "مغایر است با" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "منسوخ میکند" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "توصیه میکند" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "پیشنهاد میکند" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "بالا میبرد" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "تکمیل میکند" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "نمیتوان pty (%s) را باز کرد." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "نمیتوان pipe (%s) را باز کرد." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "نمیتوان chroot کرد به '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "نمیتوان chdir کرد به '%s' درون chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "نمیتوان chdir کرد به '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "'%s' (%s) را نمیتوان اجرا کرد." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "نمیتوان fork کرد (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "دستور با وضعیت %d خارج شد." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "دستور با سیگنال %d (%s) کشته شد." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "دستور با خطای ناشناخته خارج شد." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "برای وارد کردن کلید ناموجود %s در دسته کلید %s تلاش شد" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "ناموÙÙ‚ در وارد کردن کلید." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "در حذ٠کلید ناموÙÙ‚ بود." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "پرونده ÛŒ امضای %s ÛŒØ§ÙØª نشد" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "زبان ناشناخته: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Ø§ÙØ±" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "آبخازیا" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Ø¢Ú†Ù‡ ای" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "آشولی" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "دانگمه" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "آدیغی" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Ø¢ÙØ±ÛŒÙ‚ایی-آسیایی (دیگر)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Ø¢ÙØ±ÛŒÙ‡ÛŒÙ„ÛŒ" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Ø¢ÙØ±ÛŒÚ©Ø§Ù†Ø³" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "آینو" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "آکانی" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "اکدی" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "آلبانیایی" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "اینوپیات" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "زبان‌های آلگونکویان" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "آلتای جنوبی" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "امهری" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "انگلیسی، قدیمی (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "زبانهای آپاچی" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "عربی" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "آرماییک" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "آراگونی" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ارمنی" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "آراکانیان" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "آراپاهو" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "ساختگی (دیگر)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "آراواک" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "آسامی" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "آستوری" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "زبانهای آتاباسکی" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "زبانهای استرالیایی" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "آواری" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "اوستایی" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "اودهی" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "آیمارا" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "آذربایجانی" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "باندا" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "زبانهای بامیلیکی" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "باشقیری" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "بلوچی" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "بامبارا" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "بالی" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "باسکی" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "باسا" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "بالتیک (دیگر)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "بژایی" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "بلاروسی" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "بمبایی" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "بنگالی" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "بربر (دیگر)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "بوجپوری" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "بیهاری" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "بیکلی" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "بینی" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "بسلامایی" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "سیکسیکایی" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "بانتو (دیگر)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "بوسنیایی" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "براج" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "برتون" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "باتاک (اندونزی)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "بوریاتی" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "بوگینی" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "بلغاری" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "برمهایی" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "بلینی" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "کادو" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "هندی آمریکای مرکزی (دیگر)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "کاریبی" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "کاتالان" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Ù‚Ùقازی (دیگر)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "سبویی" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "سلتیکی (دیگر)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "چامورو" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "چیبچا" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Ú†Ú†Ù†" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "جغتایی" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "چینی" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "چوکیسی" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "ماری" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "شینوک" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "چوکتاو" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "چیپواین" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "چروکی" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "کلیسای اسلاوی" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "چوواشی" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "شاینی" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "زبانهای چامیک" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "قبطی" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "کورنیش" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "کورسی" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "کرئولس Ùˆ پیجینز، بر پایه ÛŒ انگلیسی (دیگر)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "کرئولس Ùˆ پیجینز، بر پایه ÛŒ ÙØ±Ø§Ù†Ø³ÙˆÛŒ (دیگر)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "کرئولس Ùˆ پیجینز، بر پایه ÛŒ پرتغالی (دیگر)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "کری" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "کریمه تاتار" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "کرئولس Ùˆ پیجینز" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "کاشوبی" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "کوشی (دیگر)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Ú†Ú©ÛŒ" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "داکوتایی" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "دانمارکى" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "دارگوا" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "دایاک" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "دلاویر" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "برده (آتاباسکی)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "داگریب" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "دینکا" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "دیوهی" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "دوگری" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "دراویدی (دیگر)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "صربی پایین" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "دوآلایی" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "هلندی، میانی (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "هلندی" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "دیولا" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "دزونگخا" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "اÙیک" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "مصری (باستانی)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "اکاجوک" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "ایلامی" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "انگلیسی" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "انگلیسی، وسطی (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "اسپرانتو" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "استونیایی" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "اوه ای" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "اووندو" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "ÙØ§Ù†Ú¯" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ÙØ§Ø±ÙˆØ¦ÛŒ" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ÙØ§Ù†ØªÛŒ" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Ùیجی" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Ùیلیپینی" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Ùنلاندی" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Ùینو-اوگریان (دیگر)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "ÙÙ†" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ÙØ±Ø§Ù†Ø³ÙˆÛŒ" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "ÙØ±Ø§Ù†Ø³ÙˆÛŒØŒ وسطی (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ÙØ±Ø§Ù†Ø³ÙˆÛŒØŒ قدیمی (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "ÙØ±ÛŒØ²ÛŒ" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Ùولا" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ÙØ±ÛŒÙˆÙ„ÛŒ" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "گا" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "گایو" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "بایا" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ژرمنی (دیگر)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "گرجی" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "آلمانی" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "گیز" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "کیریباتی" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "زبان بومی اسکاتلندی" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ایرلندی" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "گالیسی" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "مانی" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "آلمانی، میانه ÛŒ بالایی (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "آلمانی، قدیمی بالایی (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "گندی" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "گورونتالو" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "گوتیک" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "گربو" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "یونانی، باستانی (تا 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "یونانی، مدرن (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "گوارانی" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "گجراتی" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "جویشن" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "هایدا" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "هائیتی" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "هوسا" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "زبان هاوایی" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "عبری" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "هررو" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "هیلیگاینون" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "هیماچالی" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "هندی" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "هیتی" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "همانگ" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "هیری موتو" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "صربی بالا" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "مجارستانی" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "هاپا" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ایبان" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "ایگبو" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ایسلندی" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ایدو" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "سیچوان یی" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ایجو" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "اینوکتیتوت" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "ایلوکو" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "اینترلینگوا" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "هندو (دیگر)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "اندونزیایی" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "هندو-اروپایی (دیگر)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "اینگوش" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "اینوپیاک" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ایرانی (دیگر)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "زبانهای ایروکویان" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ایتالیایی" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "جاوه ای" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "لژبان" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ژاپنی" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "یهودی-ÙØ§Ø±Ø³ÛŒ" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "یهودی-عربی" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "کارا-کالپاک" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "قبایلی" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "کاچینی" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "کالالیسوت" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "کامبا" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "کانادا" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "کارن" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "کشمیری" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "کنوری" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "کاوی" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "قزاقی" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "کاباردیان" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "خاصی" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "خویسان (دیگر)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "خمری" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "ختنی" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "کیکویو" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "کینیارواندایی" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "قرقیزی" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "کیمبوندو" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "کونکانی" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "کومی" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "کونگویی" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "کره ای" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "کوسرائی" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "کپله ای" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "قرهچای Ùˆ بالکار" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "کرو" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "کوروخ" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "کوانیاما" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "قموقی" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "کردی" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "کونته ای" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "لادینو" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "لندا" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "لامبا" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "لائو" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "لاتین" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "لتونی" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "لزگی" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "لیمبورگان" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "لینگالا" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "لیتوانیایی" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "مونگویی" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "لوزی" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "لوکزامبورگی" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "لوبا-لولوا" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "لوبا-کاتانگا" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "گاندایی" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "لوییزنو" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "لوندا" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "لو (کنیا Ùˆ تانزانیا)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "لوشای" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "مقدونی" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "مادورس" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "ماگهی" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "مارشالی" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "میتهیلی" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "ماکاسار" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "مالایایی" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "ماندینگو" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "آسترونزی (دیگر)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "مراتی" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "ماسایی" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "مالایا" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "موکشا" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "ماندار" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "منده" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ایرلندی، وسطی (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "مینغکاباو" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "زبانهای Ù…ØªÙØ±Ù‚Ù‡" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "مونی-خمری (دیگر)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "ماداگاسکاری" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "مالتی" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "مانچو" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "مانیپوری" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "زبانهای مانوبو" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "موهاک" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "مولداویایی" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "مغولی" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "موسی" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "چندین زبانه" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "زبانهای موندا" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "کریکی" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "میراندی" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "مارواری" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "زبانهای مایان" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ارزیا" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "ناهواتل" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "هندی امریکای شمالی" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ناپولی" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "ناواهو" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "اندهبله ای، جنوبی" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "اندهبله ای، شمالی" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "اندونگا" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "آلمانی سÙلا" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "نپالی" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "نپال بهاسایی" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "نیاس" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "نیجر-کنگویی" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "نیویان" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "نروژی نینورسک" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "نروژی بوکمال" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "نوقایی" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "نورس، قدیمی" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "نروژی" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "شمالی سوتو" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "زبانهای نوبیایی" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "نواری کلاسیک" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "چیچوا" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "نیاموزی" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "نیانکولی" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "نیورو" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "انزیمایی" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "اکسیتان (بعد از 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "اوجیبوا" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "اوریا" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "اورومو" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "اوسیج" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "اوسته ای" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "ترکی، اوتامان (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "زبانهای اوتامیایی" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "پاپوآ (دیگر)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "پانگاسینانی" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "پهلوی" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "پامپانگا" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "پنجابی" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "پاپیامنتو" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "پالائویی" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ÙØ§Ø±Ø³ÛŒØŒ قدیمی (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ÙØ§Ø±Ø³ÛŒ" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Ùیلیپینی (دیگر)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Ùنیقی" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "پالی" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "لهستانی" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "پنپه ای" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "پرتغالی" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "زبانهای پراکریت" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "پرووونسال، قدیمی (تا 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "پشتو" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "کچوا" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "راجستانی" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "رپنویی" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "راروتونگا" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "رومی (دیگر)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "ریتو-رومانی" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "کولی" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "رومانیایی" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "روندیایی" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "روسی" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "سنداوی" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "سانگو" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "یاقوتی" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "هندی امریکای شمالی (دیگر)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "زبانهای سالیشان" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "سامری آرامی" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "سانسکریت" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "ساساک" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "سانتالی" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "صربی" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "سیسیلی" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "اسکاتلندی" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "کرواتی" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "سلکوپی" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "سامی (دیگر)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ایرلندی، قدیمی (تا 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "زبانهای امضایی" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "شان" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "سیدامو" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "سینهالی" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "زبانهای سیوآن" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "چینی-تبتی (دیگر)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "اسلاوی (دیگر)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "اسلواکی" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "اسلونیایی" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "سامی جنوبی" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "سامی شمالی" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "زبانهای سامی (دیگر)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "لوله سامی" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "ایناری سامی" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "ساموایی" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "سامی اسکولت" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "شونا" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "سندی" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "سونینکه" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "سغدی" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "سومالی" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "سونغایی" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "سوتو، جنوبی" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "اسپانیایی" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "ساردنی" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "سرر" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "نیلو-ساهاران (دیگر)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "سواتی" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "سوکوما" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "ساندانس" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "سوسو" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "سومری" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "سواحیلی" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "سوئدی" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "سریانی" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "زبان تاهیتی" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "تای (دیگر)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "تامیل" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "تاتار" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "تلوگو" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "تیمنه ای" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "ترنو" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "تتوم" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "تاجیکی" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "تاگالوگ" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "تایلندی" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "تبتی" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "تیگر" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "تیگرینیا" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "تیو" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "کلینگون" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "تلینگیتی" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "طوارقی" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "تونگا (نیاسا)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "تونگا (جزایر تونگا)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "توک پیسین" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "سیمیشان" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "تسوانا" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "سونگا" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ترکمن" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "تومبوکایی" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "زبانهای توپیایی" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ترکی" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "آلتاییک (دیگر)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "توی" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "تووینیایی" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "ادمورت" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "اوگاریتی" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "اویغور" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "اوکراینی" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "آمباندو" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "نا معین" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "اردو" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "ازبکی" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "وای" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "وندا" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ویتنامی" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "ولاپوک" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "وتیک" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "زبانهای واکاشان" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "والامو" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "وارای" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "وشوو" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "ولز" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "زبانهای سربی" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "والون" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "ولوÙ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "کالمیک" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "خوزا" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "یائو" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "یاپیزی" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "ییدیش" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "یوروبا" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "زبانهای یوپیک" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "زاپوتکی" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "زناگا" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "ژوانگ" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "زند" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "زولو" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "زونی" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "این اعمال انجام خواهند شد:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "منقضی نمیشود" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "منقضی شده: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "تاریخ انقضا: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(منقضی نمیشود)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(منقضی شده است)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(در 24 ساعت منقضی میشود)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(در %d منقضی Ù…ÛŒ شود)" msgstr[1] "(در %d منقضی Ù…ÛŒ شود)" msgstr[2] "(در %d منقضی Ù…ÛŒ شود)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "نمیتوان Ùهرست مخزن '%1%' را خواند: دسترسی غیرمجاز است" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "ناموÙÙ‚ در خواندن مسیر '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "نمیتوان پرونده ÛŒ مخزن '%1%' را خواند: دسترسی غیرمجاز است" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "نام مستعار مخزن نمیتواند با نقطه شروع شود." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "نام مستعار سرویس نمیتواند با نقطه شروع شود." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "نمیتوان پرونده ÛŒ '%s' را برای نوشتن باز کرد." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "سرویس ناشناخته '%1%': در حال حذ٠مخزن سرویس جدا Ø§ÙØªØ§Ø¯Ù‡ '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "شبه داده ÛŒ معتبر در آدرس تعیین شده ÛŒØ§ÙØª نشد" msgstr[1] "شبه داده ÛŒ معتبر در آدرسهای تعیین شده ÛŒØ§ÙØª نشد" msgstr[2] "شبه داده ÛŒ معتبر در آدرسهای تعیین شده ÛŒØ§ÙØª نشد" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "نمیتوان %s را ساخت" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "نمیتوان Ùهرست Ú©Ø´ شبه داده را ساخت." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "در حال ساخت Ú©Ø´ مخزن '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "نمیتوان Ú©Ø´ را در %s ساخت - دسترسی نوشتن نیست." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "ناموÙÙ‚ در Ú©Ø´ مخزن (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "نوع مخزن کنترل نشده" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "خطا در تلاش برای خواندن از '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "خطای ناشناس در خواندن از '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "در حال اضاÙÙ‡ کردن مخزن '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "نام پرونده ÛŒ مخزن نامعتبر در '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "در حال حذ٠مخزن '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "نمیتوان کش٠کرد Ú©Ù‡ مخزن در کجا ذخیره شده است." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s' را نمیتوان حذ٠کرد" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "نمیتوان کش٠کرد سرویس در کجا ذخیره شده است." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "رشته ÛŒ پرس Ùˆ جوی آدرس LDAP نامعتبر" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "پارامتر پرس Ùˆ جوی آدرس LDAP نامعتبر '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "ناتوان در همزاد سازی آدرس شیء" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "مرجع شیء آدرس خالی نامعتبر" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "ناتوان در تجزیه ÛŒ اجزاء آدرس" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "ناشناخته" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "پشتیبانی نشده" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "سطح 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "سطح 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "سطح 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "قرارداد اضاÙÛŒ مشتری نیاز است" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "نامعتبر" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "سطح پشتیبانی تعیین نشده است" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "ÙØ±ÙˆØ´Ù†Ø¯Ù‡ پشتیبانی ارائه نمیدهد." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "تعیین مشکل، Ú©Ù‡ به معنای پشتیبانی تخصصی جهت مهیا کردن اطلاعات سازگاری، Ú©Ù…Ú© در " "نصب، پشتیبانی در Ø§Ø³ØªÙØ§Ø¯Ù‡ØŒ نگهداری در دست اقدام Ùˆ عیب یابی پایه ای است. " "پشتیبانی سطح 1 برای ترمیم خطاهای نقض محصول در نظر Ú¯Ø±ÙØªÙ‡ نشده است." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "انزوای مشکل، Ú©Ù‡ به معنای پشتیبانی تخصصی جهت مشابه سازی مشکلات مشتری، انزوای " "مکان مشکل Ùˆ مهیا سازی روش حل برای مشکلاتی است Ú©Ù‡ توسط پشتیبانی سطح 1 Ø±ÙØ¹ " "نشده است، طراحی شده است." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "روش حل مشکل، Ú©Ù‡ به معنای پشتیبانی تخصصی طراحی شده جهت حل مشکلات پیچیده به " "وسیله ÛŒ جذب مهندسی در حل نقص های محصول Ú©Ù‡ توسط پشتیبانی سطح 2 شناسایی شده " "است." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "یک قرارداد اضاÙÛŒ مشتری برای Ø¯Ø±ÛŒØ§ÙØª پشتیبانی نیاز است." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "اختیار پشتیبانی ناشناخته. تعاری٠در دسترس نیستند" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "مدیریت سیستم توسط نرم Ø§ÙØ²Ø§Ø± با pid %d (%s) Ù‚ÙÙ„ شده است.\n" "این نرم Ø§ÙØ²Ø§Ø± را قبل از تلاش مجدد ببندید." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "تاریخچه:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "نمیتوان ÙØ§ÛŒÙ„ Ù‚ÙÙ„ را باز کرد: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "این عمل در حال حاظر در حال اجرا توسط یک نرم Ø§ÙØ²Ø§Ø± دیگر است." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "حالت تطابق ناشناخته '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "حالت تطابق ناشناخته '%s' برای الگوی '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "عبارت عادی نامعتبر '%s': regcompبازگرداند %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "عبارت عادی نامعتبر '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "احراز هویت برای '%s' مورد نیاز است" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "مرکز مشتریان Novell را برای بررسی اینکه ثبت نام شما معتبر است Ùˆ منقضی نشده " "است را مشاهده کنید." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "ناموÙÙ‚ در سوار کردن %s بر روی %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "ناموÙÙ‚ در پیاده سازی %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "نام پرونده ÛŒ بد: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "رسانه در هنگام تلاش برای انجام عمل '%s' باز نشده است." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "پرونده ÛŒ '%s' در رسانه ÛŒ '%s' ÛŒØ§ÙØª نشد" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "نمیتوان پرونده ÛŒ '%s' را نوشت." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "رسانه متصل نشده است" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "نقطه ÛŒ اتصال رسانه ÛŒ بد" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "مقداردهی Ø¯Ø±ÛŒØ§ÙØª (curl9) برای '%s' ناموÙÙ‚ بود" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "استثناء سیستم '%s' برای رسانه ÛŒ '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "مسیر '%s' در رسانه ÛŒ '%s' یک پرونده نیست." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "مسیر '%s' در رسانه ÛŒ '%s' یک Ùهرست نیست." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "ادرس بدشکل" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "نام میزبان خالی در آدرس" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "ÙØ§ÛŒÙ„ سیستم خالی در آدرس" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "مسیر خالی در آدرس" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Ø´Ú©Ù„ آدرس پشتیبانی نشده در '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "عملیات توسط رسانه پشتیبانی نشده است" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "خطای Ø¯Ø±ÛŒØ§ÙØª (curl) برای '%s':\n" "کد خطا: %s \n" "متن خطا: %s \n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "خطایی در هنگام تنظیم اختیارات Ø¯Ø±ÛŒØ§ÙØª (curl) برای '%s' رخ داد:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "منبع رسانه ÛŒ '%s' حاوی رسانه ÛŒ مطلوب نیست" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "رسانه ÛŒ '%s' توسط یک مورد دیگر در حال Ø§Ø³ØªÙØ§Ø¯Ù‡ است" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "نمیتوان هیچ رسانه ای را خارج کرد" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "نمیتوان رسانه ÛŒ '%s' را خارج کرد" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "اجازه برای دسترسی به '%s' داده نشد." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "مهلت زمانی در هنگام دسترسی به '%s' به اتمام رسید." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "مکان '%s' به صورت موقتی غیر قابل دسترسی است." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " ایراد گواهی SSLØŒ Ù„Ø·ÙØ§ بررسی کنید Ú©Ù‡ گواهی CA برای '%s' درست است." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "ساخت نقطه ÛŒ اتصال: نمیتوان یک Ùهرست قابل نوشتن را برای ساخت نقطه ÛŒ اتصال ÛŒØ§ÙØª" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "حالت احراز هویت پشتیبانی نشده '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Ù„Ø·ÙØ§ ابتدا بسته ÛŒ 'lsof' را نصب کنید." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "ØµÙØª '%s' Ù…Ùقود است." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "یک یا Ø¬ÙØª ØµÙØªÙ‡Ø§ÛŒ '%s' یا '%s' نیاز است." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "تایید امضا ناموÙÙ‚ بود" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "بسته ÛŒ %s ظاهرا در هنگام انتقال خراب شده است. آیا میخواهید Ø¯Ø±ÛŒØ§ÙØª را مجددا " "امتحان کنید؟" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "در مهیا کردن بسته ÛŒ %s ناموÙÙ‚ بود. آیا میخواهید Ø¯Ø±ÛŒØ§ÙØª را مجددا امتحان کنید؟" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "بررسی applydeltarpm ناموÙÙ‚ بود." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm ناموÙÙ‚ بود." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Ø§ÙØ²ÙˆÙ†Ù‡ ÛŒ سرویس از تغییر ØµÙØª پشتیبانی نمیکند." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "نمیتوان پرونده ÛŒ '%s' از مخزن '%s' را مهیا کرد" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "هیچ آدرسی در مخزن نیست." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "پرونده ÛŒ %1%\n" " از بسته ÛŒ \n" " %2%\n" " متداخل است با پرونده ای از بسته ÛŒ\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "پرونده ÛŒ %1%\n" " از بسته ÛŒ\n" " %2%\n" " متداخل است با پرونده ای از نصب\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "پرونده ÛŒ %1%\n" " از نصب\n" " %2%\n" " متداخل است با پرونده ای از بسته ÛŒ\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "پرونده ÛŒ %1%\n" " از نصب\n" " %2%\n" " متداخل است با پرونده ای از نصب\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "پرونده ÛŒ %1%\n" " از بسته ÛŒ\n" " %2%\n" " متداخل است با پرونده ÛŒ\n" " %3%\n" " از بسته ÛŒ\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "پرونده ÛŒ %1%\n" " از بسته ÛŒ\n" " %2%\n" " متداخل است با پرونده ÛŒ\n" " %3%\n" "از نصب\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "پرونده ÛŒ %1%\n" " از نصب\n" " %2%\n" " متداخل است با پرونده ÛŒ\n" " %3%\n" " از بسته ÛŒ\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "پرونده ÛŒ %1%\n" " از نصب\n" " %2%\n" " متداخل است با پرونده ÛŒ\n" " %3%\n" " از نصب\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "نمیتوان sat-pool را ساخت." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "شکستن %s با نادیده Ú¯Ø±ÙØªÙ† برخی از وابستگیها" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "نادیده Ú¯Ø±ÙØªÙ‡ برخی وابستگیها به صورت عمومی" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s مربوط به یک مخزن distupgrade نیست" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s دارای معماری نامرغوب است" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "ایراد در بسته ÛŒ نصب شده ÛŒ %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "درخواستهای متداخل" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "برخی مشکلات وابستگی" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "هیچ چیز %s درخواستی را مهیا نمیکند" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "آیا شما تمامی مخازن درخواستی را ÙØ¹Ø§Ù„ کرده اید؟" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "بسته ÛŒ %s وجود ندارد" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "درخواست پشتیبانی نشده" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s توسط سیستم مهیا شده است Ùˆ نمیتواند حذ٠شود" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s قابل نصب نیست" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "هیچ چیز %s Ú©Ù‡ توسط %s مورد نیاز است را مهیا نمیکند" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "نمیتوان هردو %s Ùˆ %s را نصب کرد" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s با %s Ú©Ù‡ توسط %s مهیا شده است متداخل است" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s منسوخ میکند %s را Ú©Ù‡ توسط %s مهیا شده است" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s نصب شده منسوخ میکند %s را Ú©Ù‡ توسط %s مهیا شده است" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "حل شونده ÛŒ %s با %s مهیا شده توسط خودش متداخل است" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s میخواهد %s را، اما این نیازمندی قابل مهیا شدن نیست" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "ارائه دهنده های حذ٠شده: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "ارائه دهندگان غیر قابل نصب: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "ارائه دهندگان غیر قابل نصب: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "Ù‚ÙÙ„ را جهت حذ٠%s پاک کنید" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s را نصب Ù†Ú©Ù†" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s را Ù†Ú¯Ù‡ دار" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Ù‚ÙÙ„ را جهت نصب %s حذ٠کن" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "این درخواست سیستم شما را خواهد شکست!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "نادیده Ú¯Ø±ÙØªÙ† هشدار سیستم شکسته شده" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "درباره ÛŒ نصب یک حل شونده Ú©Ù‡ %s را ارائه میدهد سوال Ù†Ú©Ù†" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "درباره ÛŒ حذ٠تمامی حل شونده ها Ú©Ù‡ %s را ارائه میدهند سوال Ù†Ú©Ù†" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "نسخه های جدیدتر %s را نصب Ù†Ú©Ù†" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "نگهداری %s با وجود اینکه معماری نامرغوب دارد" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "نصب %s با وجود اینکه معماری نامرغوب دارد" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "نگهداری %s منسوخ شده" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "نصب %s از مخزن مستثنی" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "تنزل درجه ÛŒ %s به %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "تغییر معماری %s به %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "نصب %s (با تغییر ÙØ±ÙˆØ´Ù†Ø¯Ù‡) \n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "جایگزینی %s با %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "از نصب خارج کردن %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " اجرا شده" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " اجرا ناموÙÙ‚ بود" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s در حال حاظر اجرا شده به عنوان %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " اجرا در هنگام انصرا٠پرش شد" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "خطا در ارسال اعلام پیغام بروزرسانی." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "پیغام بروزرسانی جدید" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "نصب انصرا٠داده شد Ùˆ یا جهتدار شد." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "عذخواهی میکنیم، اما این نسخه ÛŒ libzypp بدون پشتیبانی از HAL ساخته شده است." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext متصل نشده است" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive مقداردهی اولیه نشده است" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume مقداردهی نشده است" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "ناتوان در ساخت ارتباط dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: نمیتوان متن libhal را ساخت" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: نمیتوان ارتباط dbus را تنظیم کرد" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "ناتوان در مقداردهی به متن HAL -- آیا hald اجرا نمیشود؟" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "درایو CDROM نیست" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM شکست خورد: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "ناموÙÙ‚ در وارد کردن کلید عمومی از پرونده ÛŒ %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "ناموÙÙ‚ در حذ٠کلید عمومی %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "بسته مورد تایید نیست!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "پرونده های پیکربندی تغییر کرده برای %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm ذخیره شد %s به عنوان %sØŒ اما تعیین اختلا٠امکانپذیر نبود" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ذخیره شد %s به عنوان %s\n" "اینها 25 خط اولیه ÛŒ اختلا٠ها هستند:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm ساخته شد %s به عنوان %sØŒ اما تعیین اختلا٠امکانپذیر نبود" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ساخته شد %s به عنوان %s\n" "اینها 25 خط اولیه ÛŒ اختلا٠ها هستند:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "خروجی rpm اضاÙÛŒ" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "پشتیبان ساخته شد %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "امضا خوب است" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "نوع امضا ناشناخته است" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "امضا قابل تایید نیست" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "امضا خوب است، اما کلید اعتمادسازی نشده است" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "کلید عمومی امضاها موجود نیست" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "پرونده موجود نیست Ùˆ یا امضاها قابل بررسی نیستند" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "ÙØ§ÛŒÙ„ تایید نشده" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "نمیتوان ØµÙØ§Øª mutex را مقدار دهی اولیه کرد" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "نمیتوان ØµÙØª mutex بازگشتی را قرار داد" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "نمیتوان mutex بازگشتی را مقداردهی اولیه کرد" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "نمیتوان Ù‚ÙÙ„ mutex را Ø¯Ø±ÛŒØ§ÙØª کرد" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "نمیتوان Ù‚ÙÙ„ mutex را آزاد کرد" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Ø´Ú©Ù„ آدرس یک %s را مجاز نمیکند" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "%s نامعتبر جزء %s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "جزء %s نامعتبر" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "تجزیه ÛŒ پرس Ùˆ جوی رشته برای این آدرس پشتیبانی نمیشود" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Ø´Ú©Ù„ آدرس یک جزء درخواستی است" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ø´Ú©Ù„ آدرس نامعتبر '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Ø´Ú©Ù„ آدرس، نام کاربری را مجاز نمیکند" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Ø´Ú©Ù„ آدرس، رمز عبور را مجاز نمیکند" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Ø´Ú©Ù„ آدرس یک جزء میزبان را میخواهد" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Ø´Ú©Ù„ آدرس یک جزء میزبان را اجازه نمیدهد" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "جزء میزبان نامعتبر '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Ø´Ú©Ù„ آدس یک درگاه را مجاز نمیکند" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "جزء درگاه نامعتبر '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Ø´Ú©Ù„ آدرس یک نام مسیر را میخواهد" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "مسیر نسبی در صورت وجود مرجع مجاز نیست" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "رشته ÛŒ رمزی حاوی بایت NUL است" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "پارامتر کاراکتر جداکننده ÛŒ تقسیمگر آرایه نامعتبر" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "پارامتر کاراکتر جداکننده ÛŒ تقسیمگر نقشه نامعتبر" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "پارامتر کاراکتر جداکننده ÛŒ پیوند آرایه نامعتبر" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "ناموÙÙ‚ در وارد کردن کلید عمومی از پرونده ÛŒ %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "ناموÙÙ‚ در حذ٠کلید عمومی %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "نمیتوان دستگاه حلقه را برای سوار کردن پرونده ÛŒ ایمیج از '%s' پیدا کرد" libzypp-17.7.0/po/fi.po000066400000000000000000003203571334444677500147060ustar00rootroot00000000000000# translation of zypp.fi.po to suomi # translation of zypp.po to # translation of zypp.fi.po to # Copyright (C) 2005 SUSE Linux Products GmbH. # Finnish message file for YaST2 (@memory@). # Copyright (C) 2003 SuSE Linux AG. # # Michael Hintsala , 2003. 2001. # Ilkka Pirskanen , 2006, 2007. # Jyri Palokangas , 2006, 2007. # Jyri Palokangas , 2007. # Sami Vento , 2007, 2009, 2010. # Jyri Palokangas , 2008, 2009. # Mikko Piippo , 2008. # Jyri Palokangas , 2008, 2010, 2011, 2013, 2014. # Harri Miettinen , 2010, 2011, 2013, 2014. # Katariina Kemppainen , 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: zypp.fi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-02-15 11:35+0000\n" "Last-Translator: Tommi Nieminen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-poikkeus" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Virheellinen tyyppi \"%s\" tavulle %u, tarkistussumma: \"%s\"" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Tuntematon maa: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ei koodia" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Arabiemiirikunnat" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua ja Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Alankomaiden Antillit" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktis" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentiina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikan Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Itävalta" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" # CU #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # FO #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ahvenanmaa" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaidzhan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia ja Hertsegovina" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" # BH #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasilia" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahama" # BH #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" # FO #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetinsaari" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" # BY #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Valko-Venäjä" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kookossaaret" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Keski-Afrikan tasavalta" # CH #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Sveitsi" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Norsunluurannikko" # FO #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookinsaaret" # CL #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kiina" # CO #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kap Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Joulusaari" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kypros" # CZ #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "TÅ¡ekki" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Saksa" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Tanska" # DM #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" # DO #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikaaninen tasavalta" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeria" # EC #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" # EE #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Viro" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypti" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Länsi-Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Espanja" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Suomi" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandinsaaret" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronesia" # FO #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Färsaaret" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Ranska" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitan France" # GH #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Iso-Britannia" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" # GE #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Ranskan Guayana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" # GL #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grönlanti" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" # GU #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Päiväntasaajan Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Kreikka" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Etelä-Georgia ja Eteläiset Sandwichsaaret" # GT #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" # GU #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" # GH #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard ja McDonaldinsaaret" # HN #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" # HR #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Unkari" # ID #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" # IE #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanti" # IL #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Mansaari" # IN #: zypp/CountryCode.cc:261 msgid "India" msgstr "Intia" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Brittiläinen Intian valtameren alue" # IQ #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" # IS #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islanti" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" # JM #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaika" # JO #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordania" # JP #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japani" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" # KZ #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisia" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodzha" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komorit" # KN #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts ja Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Pohjois-Korea" # ZA #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Etelä-Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" # FO #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Caymansaaret" # KZ #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" # LT #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Liettua" # LU #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" # LV #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" # LR #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libya" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # FO #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshallinsaaret" # MK #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonia" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" # MO #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Pohjois-Mariaanit" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" # MT #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" # MV #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Malediivit" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" # MX #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksiko" # MY #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malesia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mosambik" # GM #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Uusi-Kaledonia" # NG #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # FO #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolkinsaari" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" # NI #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" # NL #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Alankomaat" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norja" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" # NZ #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Uusi-Seelanti" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" # PA #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" # PE #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Ranskan Polynesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua-Uusi-Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filippiinit" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" # PL #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Puola" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint-Pierre ja Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestiina" # PT #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugali" # PW #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" # PY #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" # QA #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" # RO #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Venäjä" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi-Arabia" # FO #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salomonsaaret" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellit" # SD #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Ruotsi" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Saint Helena" # SI #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Huippuvuoret ja Jan Mayen" # SK #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" # SY #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé ja Príncipe" # SV #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # SY #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syyria" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swazimaa" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- ja Caicossaaret" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tshad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Ranskan eteläiset alueet" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" # TH #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thaimaa" # TJ #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadzhikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "tokelau" # TJ #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" # TN #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Itä-Timor" # TR #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkki" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad ja Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "tuvalu" # TW #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tansania" # UA #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Yhdysvaltain pienet erillissaaret" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Yhdysvallat" # UY #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Pyhä istuin (Vatikaani)" # VC #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent ja Grenadiinit" # VE #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Brittiläiset Neitsytsaaret" # VI #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Yhdysvaltain Neitsytsaaret" # VN #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis ja Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" # ZA #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Etelä-Afrikka" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Sambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Tarjoaa" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Edellytykset" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Vaatii" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Ristiriidat" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Vanhentuneet" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Suosittelee" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Ehdottaa" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Parannukset" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Täydentää" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "pty:n (%s) avaaminen ei onnistu." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Putken (%s) avaaminen ei onnistu." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Hakemistorajoitus (chroot) ei onnistu hakemistoon \"%s\" (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "chdir '%s' ei onnistu chroot '%s' sisällä (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "chdir '%s' ei onnistu (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "\"%s\" (%s) suorittaminen ei onnistu." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Haarauttaminen (fork) ei onnistu (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Komento päättyi tilaan %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Komento lopetettiin signaalilla %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Komento päättyi tuntemattomaan virheeseen." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" "Yritettiin lisätä avain %s avainrenkaaseen %s, mutta tiedostoa ei löydetty" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Avaimen tuonti epäonnistui." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Avaimen poisto epäonnistui." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Allekirjoitustiedostoa %s ei löydetty" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Tuntematon kieli: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "abhaasi" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "aceh" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "afroaasialaiset (muut)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "akkadi" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "albania" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "aleutti" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "algonkin-kielet" # ZA #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "altai, etelä-" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "amhara" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "englanti, muinais- (noin 450 - 1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "apaššikielet" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "arabia" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "aramea" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "aragonia" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "armenia" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "araukaani" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "keinotekoiset (muut)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "assami" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "asturia" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "athabasca-kielet" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "australialaiset kielet" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "avaari" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "avesta" # SZ #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "awadhi" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "azeri" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "bamileke-kielet" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "baÅ¡kiiri" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "belutÅ¡i" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "bali" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "baski" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "balttilaiset (muut)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "valkovenäjä" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "bemba" # BZ #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "berberikielet (muut)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "bhojpuri" # BH #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "bikol" # IN #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "mustajalka" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "bantukielet (muut)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "bosnia" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "bretoni" # ID #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "batak" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "burjaatti" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "bugi" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "bulgaria" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "burma" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Keski-Amerikan intiaanikielet (muut)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "karibi" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "katalaani" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "kaukasialaiset (muut)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "kelttiläiset (muut)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "chamorro" # CN #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "tÅ¡etÅ¡eeni" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "tÅ¡agatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "kiina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "chuuk" # ML #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "chinook jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "kirkkoslaavi" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "tÅ¡uvassi" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "cham-kielet" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "kopti" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "korni" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "korsika" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "kreolit ja pidginit, englantiin perustuvat (muut)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "kreolit ja pidginit, ranskaan perustuvat (muut)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "kreolit ja pidginit, portugaliin perustuvat (muut)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "krimintataari" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "kreolit ja pidginit (muut)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "kaÅ¡ubi" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "kuuÅ¡ilaiset (muut)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "tÅ¡ekki" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "tanska" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "dargva" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "slave" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "dravidakielet (muut)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "alasorbi" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "hollanti, keski- (noin 1050 - 1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "hollanti" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "muinaisegypti" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "elam" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "englanti" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "englanti, keski- (1100 - 1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "viro" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "fääri" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "fidži" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "filippiini" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "suomi" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "suomalais-ugrilaiset (muut)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ranska" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "ranska, keski- (noin 1400 - 1600 )" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ranska, muinais- (842 - 1400)" # FR #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "friisi" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "fulani" # FR #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "friuli" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "gã" # GH #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "germaaniset (muut)" # GE #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "georgia" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "saksa" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ge'ez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "kiribati" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "gaeli" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "iiri" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "galicia" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "saksa, keskiylä- (noin 1050 - 1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "saksa, muinaisylä- (noin 750 - 1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "gootti" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "kreikka, muinais- (ennen 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "kreikka (jälkeen 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "havaiji" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "heprea" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "himachali" # IN #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "heetti" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "hiri-motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "yläsorbi" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "unkari" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "hupa" # IR #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "islanti" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ido" # LT #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "sichuanin-yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "interlingua" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "indoarjalaiset (muut)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "indonesia" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "indoeurooppalaiset (muut)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "inguuÅ¡i" # IN #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "iñupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "iranilaiset (muut)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "irokeesikielet" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "italia" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "jaava" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "japani" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "juutalaispersia" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "juutalaisarabia" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "karakalpakki" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "kabyyli" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "kamba" # CA #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "kavi" # KZ #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "kazakki" # MR #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "kabardi" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "khoisan-kielet (muut)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "khotani" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "kikuju" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "ruanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "kirgiisi" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "korea" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "kosrae" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "karatÅ¡ai-balkaari" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "kru-kielet" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "kurukh" # PA #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "kwanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "kumykki" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "kurdi" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "latina" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "latvia" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "lezgi" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "limburg" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "liettua" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "lozi" # LU #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "luxemburg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "luba (Lulua)" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "luba (Katanga)" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "luiseño" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "luo (Kenia ja Tansania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "makedonia" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "madura" # MU #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "marshall" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "makassar" # MY #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "mandingo" # ML #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "austronesialaiset (muut)" # MU #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "marathi" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "maasai" # MT #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "malaiji" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "mokÅ¡a" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "iiri, keski- (900 - 1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "micmac" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "luokittelemattomat kielet" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "mon-khmer-kielet (muut)" # MY #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "malagassi" # MV #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "malta" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "mantÅ¡u" # ML #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "manobo-kielet" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "moldavia" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "mongoli" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "monia kieliä" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "mundakielet" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "creek" # MV #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "mirandi" # MU #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "maya-kielet" # SY #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ersä" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "nahuatl" # ZA #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Pohjois-Amerikan intiaanikielet" # ML #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "napoli" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "ndebele, etelä-" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "ndebele, pohjois-" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "alasaksa" # ML #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "newari" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "nigeriläis-kongolaiset (Muut)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "niue" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "norja (uusnorja)" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "norja (kirjanorja)" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "norja, muinais-" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "norja" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "sotho, pohjois-" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "nubialaiset kielet" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "klassinen newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "nyanja" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "oksitaani" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "ojibwa" # SY #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "osseetti" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "osmani" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "otomi-kielet" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "papualaiset (muut)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "pangasinan" # ML #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "pahlavi" # PY #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "pampanga" # PA #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "papiamentu" # PW #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "palau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "persia, muinais- (noin 600 - 400 eKr.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "farsi" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "filippiiniläiset (muut)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "foinikia" # ML #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "paali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "puola" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "pohnpei" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "portugali" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "prakrit-kielet" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "provensaali, muinais- (ennen 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "paÅ¡to" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "quechua" # KZ #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "rajasthani" # JP #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "rarotonga" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "romaaniset (muut)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "retoromaani" # RO #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "romania" # IN #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "venäjä" # SD #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "sandawe" # SD #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "jakuutti" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Etelä-Amerikan intiaanikielet (muut)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "saliÅ¡ilaiset kielet" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "samarianaramea" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "serbia" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "sisilia" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "skotti" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "kroatia" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "selkuppi" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "seemiläiset kielet (muut)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "iiri, muinais- (ennen 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "viittomakielet" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "sinhali" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "sioux-kielet" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "sinotiibetiläiset (muut)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "slaavilaiset (muut)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "slovakki" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "sloveeni" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "saame, etelä-" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "saame, pohjois-" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "saamelaiskielet (muut)" # ES #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "saame, luulajan-" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "saame, inarin-" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "saame, koltan-" # SI #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "sogdi" # SO #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "sotho, etelä-" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "espanja" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "sardi" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "niililäis-saharalaiset (muut)" # ES #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "swazi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "sukuma" # SD #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "sunda" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "sumeri" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ruotsi" # SY #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "syyria" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "tahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "thaikielet (muut)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "tamil" # QA #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "tataari" # BE #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "temne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "tetum" # TJ #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "tadžikki" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "thai" # TW #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "tiibet" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "tigre" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "tonga (Malawi)" # FO #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "tonga (Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "tok-pisin" # FR #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "tsimshian" # TW #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "tswana" # EE #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "tsonga" # TR #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "turkmeeni" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "tupi-kielet" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "turkki" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "altailaiset (muut)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "twi" # TN #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "tuva" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "udmurtti" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "ugarit" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "uiguuri" # UA #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ukraina" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "määrittämätön" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "uzbekki" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "vietnam" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "vatja" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "wakash-kielet" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "kymri" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "sorbin kielet" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "valloni" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "kalmukki" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "yap" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "jiddiÅ¡" # CU #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "jupikkikielet" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "sapoteekki" # BZ #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Tehdään seuraavat toiminnot:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "ei vanhene" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "vanhentunut: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "vanhenee: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(ei vanhene)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(VANHENTUNUT)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(vanhenee 24 tunnin kuluessa)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(vanhenee %d päivässä)" msgstr[1] "(vanhenee %d päivässä)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "repo hakemiston lukeminen ei onnistu '%1%': Pääsy estetty" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Hakemiston \"%s\" lukeminen ei onnistu" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "repo-tiedostoa '%1%' ei voitu lukea: Pääsy estetty" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Asennuslähteen alias ei voi alkaa pisteellä." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Palvelun alias ei voi alkaa pisteellä." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Tiedostoa \"%s\" ei voida avata kirjoitusta varten." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Tuntematon palvelu '%1%': Poistetaan orpo palvelulähde '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Annetusta verkko-osoitteesta ei löytynyt kelvollista metatietoa" msgstr[1] "Annetuista verkko-osoitteista ei löytynyt kelvollista metatietoa" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Ei voi luoda %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Metatiedon välimuistihakemistoa ei voi luoda." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Rakennetaan asennuslähteen \"%s\" välimuistia" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Välimuistia %s ei voida luoda - ei kirjoitusoikeuksia." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Virhe asennuslähteen puskuroinnissa (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Virheellinen asennuslähteen tyyppi" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Virhe luettaessa \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Tuntematon virhe luettaessa \"%s\"" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Lisätään asennuslähdettä \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Virheellinen asennuslähteen tiedostonimi \"%s\"" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Poistetaan asennuslähdettä \"%s\"" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Asennuslähteen sijaintia ei voida päätellä." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "\"%s\" poistaminen ei onnistu" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Palvelun sijaintia ei voida päätellä." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Virheellinen LDAP URL -kysely" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Virheellinen LDAP URL -parametri: \"%s\"" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Verkko-osoite-objektin kahdentaminen ei onnistunut" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Virheellinen viittaus tyhjään URL-objektiin" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Verkko-osoitteen jäsentäminen ei onnistu." #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "tuntematon" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "ei tuettu" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "1. Taso" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "2. Taso" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "3. Taso" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Erillinen asiakassopimus tarpeen" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "virheellinen" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Tuen tasoa ei ole määritetty" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Myyjä ei tarjoa tukea." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Ongelman määrittäminen, mikä tarkoittaa teknistä tukea, joka tarjoaa " "yhteensopivuustietoja, asennustukea, käyttötukea, huoltoa ja perustason " "ongelmanratkaisua. 1. tason tukea ei ole tarkoitettu korjaamaan tuotteen " "puutteista johtuvia virheitä." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Ongelman eristäminen, mikä tarkoittaa teknistä tukea, joka tähtää asiakkaan " "ongelmien toistamiseen, ongelma-alueen eristämiseen ja tarjoaa ratkaisuja " "ongelmille, joita 1. tason tuki ei ratkaissut." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Ongelman ratkaiseminen, mikä tarkoittaa monimutkaisten ongelmien " "ratkaisemiseen tarkoitettua teknistä tukea. Insinöörit korjaavat tuotteen " "vikoja, jotka 2. tason tuki on tunnistanut." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Tuen saamiseksi edellytetään erillinen asiakassopimus." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Tuntematon tukivaihtoehto. Kuvausta ei ole saatavilla" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Prosessi %d (%s) on lukinnut järjestelmänhallinnan. \n" "Sulje ohjelma ennen uutta yritystä." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historia:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Lukitustiedoston avaaminen ei onnistu: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Jokin toinen ohjelma suorittaa tätä toimintoa." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Tuntematon tila \"%s\"" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Tuntematon tila \"%s\" hakulauseelle \"%s\"" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Virhe säännöllisessä lausekkeessa \"%s\": regcomp palautti %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Virhe säännöllisessä lausekkeessa \"%s\"" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "\"%s\" vaatii tunnistautumisen" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Vieraile Novellin asiakaskeskuksessa tarkastamassa onko rekisteröintisi " "voimassa ja ettei se ole vanhentunut." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s liittäminen liitospisteeseen %s epäonnistui" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Virhe irrotettaessa %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Virheellinen tiedostonimi: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Tietolähdettä ei avattu suoritettaessa \"%s\"." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Tiedostoa \"%s\" ei löydy tietovälineeltä \"%s\"" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Tiedostoon \"%s\" kirjoittaminen ei onnistu." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Tietolähdettä ei ole liitetty" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Virheellinen liitospiste" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Lataajan (curl) alustus osoitteelle \"%s\" epäonnistui" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Järjestelmäpoikkeus \"%s\" tietovälineellä \"%s\"." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Polku \"%s\" tietovälineellä \"%s\" ei ole tiedosto." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Polku \"%s\" tietovälineellä \"%s\" ei ole hakemisto." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Virheellisesti muotoiltu URI-osoite" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Tyhjä konenimi URI-osoitteessa" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Tyhjä tiedostojärjestelmä URI-osoitteessa" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Tyhjä kohde URI-osoitteessa" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Virheellinen verkko-osoite: \"%s\"." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Tietoväline ei tue toimintoa" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Latausvirhe (curl) %s:\n" "Virhekoodi: %s\n" "viesti: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Virhe asetettaessa lataajan (curl) valintoja osoitteelle \"%s\"." #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "\"%s\" ei sisällä haluttua tietolähdettä" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Tietolähde \"%s\" on varattu" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Tietovälineiden irrottaminen ei onnistu" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Tietovälineen \"%s\" irrottaminen ei onnistu" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Pääsy evätty kohteeseen \"%s\"." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Aikakatkaisu avattaessa \"%s\"." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "\"%s\" ei ole hetkellisesti saatavilla." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL-ongelma: Tarkista että CA-varmenne kuuluu \"%s\"." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Luo liitospiste: Kirjoitettavissa olevaa kansiota ei löydy liitospisteen " "luomiseksi" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "HTTP-tunnistautumistapa \"%s\" ei ole tuettu" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Asenna 'lsof' paketti ensiksi." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Vaadittu ominaisuus \"%s\" puuttuu." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Tarvitaan joko %s tai %s -attribuutti." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Allekirjoituksen todennus epäonnistui" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "Paketti %s näyttää vioittuneen siirron aikana. Yritetäänkö uudelleen?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Virhe noudettaessa pakettia %s. Yritetäänkö uudelleen?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm-tarkistus epäonnistui." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm epäonnistui." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Palvelu-lisäosa ei tue ominaisuuksien muutosta." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Tiedoston \"%s\" nouto asennuslähteestä \"%s\" ei onnistu" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Asennuslähteen verkko-osoite puuttuu." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Tiedosto %1%\n" " paketista\n" " %2%\n" " on ristiriidassa tiedoston kanssa joka kuuluu pakettiin\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Tiedosto %1%\n" " paketista\n" " %2%\n" " on ristiriidassa tiedoston kanssa joka kuuluu asennukseen\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Tiedosto %1%\n" " asennuksesta\n" " %2%\n" " on ristiriidassa tiedoston kanssa joka kuuluu pakettiin\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Tiedosto %1%\n" " asennuksesta\n" " %2%\n" " on ristiriidassa tiedoston asennuksesta\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Tiedosto %1%\n" " paketista\n" " %2%\n" " on ristriidassa tiedoston\n" " %3%\n" " paketista\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Tiedosto %1%\n" " paketista\n" " %2%\n" " on ristiriidassa tiedoston\n" " %3%\n" " asennettavasta paketista\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Tiedosto %1%\n" " asennuksesta\n" " %2%\n" " on ristiriidassa tiedoston\n" " %3%\n" " paketista\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Tiedosto %1%\n" " asennuksesta\n" " %2%\n" " on ristiriidassa tiedoston\n" " %3%\n" " asennuksesta\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Sat-varaston luonti ei onnistu." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "jätä %s riippuvuuksia huomioimatta" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "jätä joitakin riippuvuuksia huomiotta" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s ei kuulu jakeluversion päivitysasennuslähteeseen" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s on alempaa arkkitehtuuria" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "virhe asennettaessa pakettia %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "ristiriitaiset kyselyt" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "jokin riippuvuusongelma" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "Mikään ei tarjoa pyydettyä %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Oletko ottanut käyttöön kaikki pyydetyt asennuslähteet?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "pakettia %s ei ole olemassa" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "pyyntöä ei tueta" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s on järjestelmän tarjoama ja sitä ei voi poistaa" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s ei ole asennettavissa" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "mikään ei tarjoa %s, jota %s tarvitsee" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Ei voida asentaa molempia %s ja %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s on ristiriidassa %s (%s) kanssa" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s vanhentaa %s (%s)" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "asennettu %s vanhentaa %s (%s)" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s on ristiriidassa itsensä kanssa (%s)" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s tarvitsee %s, mutta sen asentaminen ei onnistu" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "poistetut tarjoajat: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "Poistettavissa olevat tarjoajat: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "poistetut tarjoajat: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "poista lukitus salliaksesi %s poiston" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "älä asenna %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "pidä %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "poista lukitus asentaaksesi: %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Tämä pyyntö rikkoo järjestelmän!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ohita varoitus rikkinäisestä järjestelmästä" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "älä kysy asennettaessa paketteja, jotka tuo %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "älä kysy poistettaessa paketteja, jotka tuo %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "älä asenna uusinta %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "Pidä %s vaikka se on alempaa arkkitehtuuria" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "asenna %s vaikka se on alempaa arkkitehtuuria" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "pidä vanhentunut %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "Asennetaan %s poisjätetystä asennuslähteestä" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "päivitetään vanhempaan %s -> %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "arkkitehtuurin vaihto %s -> %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "asenna %s (vaihtaa tarjoajaa)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "Korvataan %s -> %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "poista %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " suoritettu" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " suoritus epäonnistui" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s on jo suoritettu nimellä %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " suoritus ohitettiin keskeytettäessä" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Virhe lähetettäessä päivityshuomautusta." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Uusi päivitysviesti" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Asennus keskeytettiin." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Tämä versio libzypp-kirjastosta on käännetty ilman HAL-tukea." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "Hal-yhteyden muodostus ei onnistunut" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "Hal-asemaa ei ole alustettu" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "Hal-taltioa ei alustettu" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus-yhteyden luonti epäonnistui" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: libhal-yhteyttä ei voitu luoda" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: dbus-yhteyden asettaminen ei onnistu" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL-yhteyden alustus ei onnistu. Varmista, että \"hald\" on käynnissä." #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Kohde ei ole CD-asema" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM-virhe: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Avaimen tuonti tiedostosta %1% epäonnistui" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Julkisen avaimen %1% poisto epäonnistui" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Pakettia ei ole allekirjoitettu!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Muunnettiin paketin %s asetustiedostoja:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm tallensi tiedoston %s nimellä %s. Erojen selvittäminen ei onnistunut" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm tallensi tiedoston %s nimellä %s.\n" "Tässä ensimmäiset 25 muuttunutta riviä:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm loi tiedoston %s nimellä %s, erojen selvittäminen ei onnistunut" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm loi tiedoston %s nimellä %s.\n" "Tässä on ensimmäiset 25 vaihtunutta riviä:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "rpm-lisätuloste" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "luotiin varmuuskopio %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Allekirjoitus kelpaa" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tuntematon allekirjoituksen tyyppi" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Allekirjoitusta ei voida todentaa" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Allekirjoitus kelpaa, mutta avain ei ole luotettu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Allekirjoituksen julkinen avain ei ole saatavilla" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Tiedostoa ei ole tai allekirjoitusta ei voi tarkistaa" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Tiedosto on allekirjoittamaton" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Mutex-määritteiden alustaminen ei onnistu" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Rekursiivisten mutex-määritteiden asetus ei onnistu" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Rekursiivisten mutex-määritteiden alustaminen ei onnistu" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Mutex-lukitus ei onnistu" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Mutex-lukituksen vapauttaminen ei onnistu" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Ei sallittu verkko-osoite: %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Virheellinen %s-komponentti \"%s\"" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Virheellinen %s-komponentti" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Tämän verkko-osoitteen jäsentäminen kyselyksi ei ole tuettu" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Verkko-osoite on pakollinen" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Virheellinen verkko-osoite: \"%s\"" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Verkko-osoite ei salli käyttäjänimeä" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Verkko-osoite ei salli salasanaa" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Verkko-osoite edellyttää konenimen" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Verkko-osoite ei salli konenimeä" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Virheellinen konenimi: \"%s\"" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Verkko-osoite ei salli portin määritystä" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Virheellinen porttimääritys: \"%s\"" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Verkko-osoite edellyttää polun määrittämistä" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" "Suhteellisen polun määrittäminen ei ole sallittua, jos valtuuttaja on " "määritetty" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Koodattu merkkijono sisältää NUL-tavun" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Virheellinen parametritaulukon jaon erotin" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Virheellinen parametrikartan jaon erotin" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Virheellinen parametritaulukon liitoksen erotin" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Avaimen tuonti tiedostosta %s epäonnistui: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Julkisen avaimen %s poisto epäonnistui: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Levykuvatiedoston \"%s\" liitämiseen tarvittavaa loop-laitetta ei löydy" #~ msgid "do not keep %s installed" #~ msgstr "älä pidä %s asennettuna" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Julkisen avaimen %s tuonti avainrenkaasta %s tiedostoon %s ei onnistu" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Lataajan (Metalink curl) alustus osoitteelle \"%s\" epäonnistui" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Latausvirhe (metalink curl) %s:\n" #~ "Virhekoodi: %s\n" #~ "Viesti: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Lataus keskeytyi %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Käyttäjä keskeytti latauksen" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Virhe asetettaessa lataajan (metalink curl) valintoja osoitteelle \"%s\"." #~ msgid "Failed to download %s from %s" #~ msgstr "Virhe ladattaessa %s osoitteesta %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia ja Montenegro" libzypp-17.7.0/po/fr.po000066400000000000000000003705761334444677500147270ustar00rootroot00000000000000# translation of zypp.fr.po to # French message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002, 2003 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # # # # Patricia Vaz , 2003. # Francoise Lermen , 2000, 2001, 2002. # Karine Nguyen , 2001. # Guillaume GARDET , 2008, 2009, 2010. # Rémy Marquis , 2008. # Rémy Marquis , 2008. # Guillaume GARDET , 2011, 2013, 2014, 2015. # Antoine Belvire , 2015. # msgid "" msgstr "" "Project-Id-Version: zypp.fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-03 19:15+0000\n" "Last-Translator: Benoît Monin \n" "Language-Team: French " "\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Exception Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Type '%s' douteux pour %u octet(s) sur la somme de contrôle '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Pays inconnu : " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Pas de code" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorre" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Émirats arabes unis" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua-et-Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanie" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Arménie" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antilles néerlandaises" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarctique" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentine" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa américaines" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Autriche" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australie" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "ÃŽles Aland" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaïdjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnie-Herzégovine" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbade" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgique" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarie" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahreïn" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Bénin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudes" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivie" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brésil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhoutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ÃŽle Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Biélorussie" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "ÃŽles Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "République centrafricaine" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Suisse" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Cote d'Ivoire" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ÃŽles Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chili" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Cameroun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Chine" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombie" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cap Vert" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "ÃŽle Christmas" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Chypre" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "République Tchèque" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Allemagne" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danemark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominique" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "République Dominicaine" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algérie" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Équateur" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonie" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Égypte" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sahara Occidental" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Erythrée" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Espagne" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Éthiopie" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlande" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ÃŽles Malouines (Falkland)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "États fédérés de Micronésie" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ÃŽles Féroé" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "France" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "France métropolitaine" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Royaume-Uni" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenade" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Géorgie" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guyane française" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernesey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambie" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinée" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinée équatoriale" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grèce" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Géorgie du Sud et ÃŽles Sandwich" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinée Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong-Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "ÃŽles Heard et Mcdonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croatie" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haïti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hongrie" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonésie" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlande" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israël" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "ÃŽle de Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Inde" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Territoire britannique de l'océan Indien" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islande" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italie" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaïque" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanie" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japon" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirghizistan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodge" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comores" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint-Kitts-et-Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Corée du Nord" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Corée du sud" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Koweït" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "ÃŽles Caïmans" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "République démocratique populaire du Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Liban" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Sainte-Lucie" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituanie" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Lettonie" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libye" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroc" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavie" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Monténégro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint-Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "ÃŽles Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macédoine" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birmanie" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolie" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "ÃŽles Marianne du nord" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritanie" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malte" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "ÃŽle Maurice" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldives" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexique" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaisie" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibie" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nouvelle Calédonie" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ÃŽle Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Pays-Bas" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norvège" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Népal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauruan" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nouvelle Zélande" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Pérou" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polynésie française" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papouasie Nouvelle Guinée" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Philippines" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Pologne" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint-Pierre-et-Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Territoire palestinien" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palaos" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Roumanie" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbie" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Fédération de Russie" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabie Saoudite" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "ÃŽles Salomon" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Soudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suède" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapour" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sainte-Hélène" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovénie" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard-et-an Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovaquie" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Saint-Marin" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Sénégal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalie" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tomé-et-Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syrie" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "ÃŽles Turks-et-Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tchad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Terres australes et antarctiques françaises" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thaïlande" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkménistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisie" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor oriental" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turquie" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinité-et-Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzanie" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraine" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Ouganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Petites ÃŽles Situées Près Des États-Unis" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "États-Unis" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Ouzbékistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Saint-Siège (État de la Cité du Vatican)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint-Vincent-et-les Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "ÃŽles Vierges britanniques" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ÃŽles Vierges américaines" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Viêt Nam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis et Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yémen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Afrique du Sud" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambie" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Fournit" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Nécessite au préalable" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Nécessite" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Conflits" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Rend obsolète" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recommande" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Suggère" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Améliore" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Complète" # TLABEL backup_2002_03_14_2340__125 #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Impossible d'ouvrir pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Impossible d'ouvrir le pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Impossible d'effectuer une commande chroot vers '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "Impossible d'appliquer la commande chdir vers '%s' dans le chroot '%s' ('%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Impossible d'appliquer la commande chdir vers '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Impossible d'exécuter '%s' (%s)." # TLABEL printconf_2002_03_14_2340__110 #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Impossible d'exécuter une commande fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "La commande s'est terminée avec l'état %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "La commande a été supprimée par le signal %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "La commande s'est terminée à cause d'une erreur inconnue." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Tentative d'importation de la clé inexistante %s dans le porte-clé %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Impossible d'importer la clé." # TLABEL restore_2002_08_07_0216__88 #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Impossible de supprimer la clé." # TLABEL linuxrc_2002_03_29_0036__117 #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Fichier de signature %s introuvable" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Langue inconnue : " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhaze" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Aceh" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adygué" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-asiatiques (autres langues)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainou" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadien" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanais" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aléute" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Langues algonquines" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altaï du Sud" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Anglo-saxon (vers 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Langues apaches" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabe" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaïn" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonais" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Arménien" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucan" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificielles (autres langues)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamais" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturien" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Langues athapascanes" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Langues australiennes" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avar" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestique" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azéri" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Langues bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bachkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baloutchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinais" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basque" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltiques (autres langues)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Bedja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Biélorusse" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbères (autres langues)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bichlamar" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Pied-noir" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantoues (autres langues)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosniaque" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Breton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonésie)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Bouriate" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugi" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgare" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birman" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Indiennes d'Amérique centrale (autres langues)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Caribe" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalan" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasiennes (autres langues)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtiques (autres langues)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tchétchène" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Djaghatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinois" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukais" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Jargon chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Slavon liturgique" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Tchouvache" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Langues chames" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Copte" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornique" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corse" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Créoles et pidgins anglais (autres)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Créoles et pidgins français (autres)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Créoles et pidgins portugais (autres)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tatar de Crimée" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Créoles et pidgins divers" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kachoube" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Couchitiques (autres langues)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tchèque" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danois" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Esclave (athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Maldivien" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiennes (autres langues)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Bas-sorabe" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Douala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Néerlandais moyen (vers 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Hollandais" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dioula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Égyptien (ancien)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Élamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Anglais" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Anglais moyen (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Espéranto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonien" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Éwe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Éwondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Féroien" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fidjien" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Philippin" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finnois" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finno-ougriennes (autres langues)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Français" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Français moyen (vers 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Français ancien (842-vers 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frison" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Peul" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Frioulan" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germaniques (autres langues)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Géorgien" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Allemand" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Guèze" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Kiribati" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaélique" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandais" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galicien" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Allemand, moyen haut (vers 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Allemand, ancien haut (vers 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gond" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gothique" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grec ancien (jusqu'à 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grec moderne (après 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Goudjrati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haïtien" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Haoussa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaïen" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hébreu" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Haut-sorabe" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hongrois" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandais" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Yi de Sichuan" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Ilocano" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Association pour une langue auxiliaire internationale)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indo-aryennes (autres langues)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonésien" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-europénnnes (autres langues)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingouche" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraniennes (autres langues)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Langues iroquoises" # TLABEL partitioning_2002_01_04_0147__180 #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italien" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanais" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonais" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judéo-persan" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judéo-arabe" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Karakalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanouri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardien" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (autres langues)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanais" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Rwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghize" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Kom" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coréen" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosrae" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karatchai balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Krou" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Ovambo" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Koumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurde" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Judéo-espagnol" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latin" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letton" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghien" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limbourgeois" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituanien" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxembourgeois" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseño" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya et Tanzanie)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macédonien" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madourais" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshall" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makassar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingue" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Malayo-polynésiennes (autres langues)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathe" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masaï" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malais" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksa" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mendé" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandais moyen (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Micmac" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Langues diverses" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-khmer (autres langues)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgache" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltais" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Mandchou" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Langues Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldave" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Multilingue" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Langues mounda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Muskogee" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandais" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marvari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Langues maya" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erza" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Langues indiennes d'Amérique du Nord" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitain" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele (Sud)" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele (Nord)" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Allemand, bas" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Népalais" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepalbhasha" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Nigéro-congolaises (autres langues)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuéen" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norvégien nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norvégien bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogaï" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norrois, ancien" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norvégien" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho du Nord" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Langues nubiennes" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari classique" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nkore" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzema" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (après 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwé" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Galla" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossète" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turc ottoman (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Langues otomangues" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papoues (autres langues)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampangan" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Perse, ancien (vers 600-400 av. J.-C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persan" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Philippines (autres langues)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Phénicien" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polonais" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpei" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugais" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prâkrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provençal ancien (jusqu'à 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pachto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotonga" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romanes (autres langues)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Rhéto-roman" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Tsigane" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Roumain" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russe" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Iakoute" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indiennes d'Amérique du Sud (autres langues)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Langues salish" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritain" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santal" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbe" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilien" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Écossais" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croate" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkoupe" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Sémitiques (autres langues)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandais ancien (jusqu'à 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Langues des signes" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Chan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singhalais" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Langues sioux" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-tibétaines (autres langues)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slaves (autres langues)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovaque" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovène" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami du Sud" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami du Nord" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Sami, autres langues" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Sami de Lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Sami d'Inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoan" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Sami skolt" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdien" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho du Sud" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Espagnol" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sarde" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Sérère" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-sahariennes (autres langues)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Soundanais" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Soussou" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumérien" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Suédois" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syriaque" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitien" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Thaïts (autres langues)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamoul" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Télougou" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Temne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadjik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thaï" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibétain" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrigna" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamacheq" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tongan (îles Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmène" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turc" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaïques (autres langues)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Touva" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Oudmourte" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ougaritique" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Ouïtour" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainien" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Indéterminé" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Ourdou" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Ouszbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vaï" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamien" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapït" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Vote" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Langues wakashennes" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Gallois" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Langues sorables" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Wallon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmouk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapois" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Langues yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotèque" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zoulou" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Les actions suivantes seront exécutées :" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "n'expire pas" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "a expiré le : %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "expire le : %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(n'expire pas)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(EXPIRÉ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(expire dans les 24h)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(expire dans %d jour)" msgstr[1] "(expire dans %d jours)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Recherche de la clé gpg %1% dans le cache %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Recherche de la clé gpg %1% dans le dépôt %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "Le dépôt %1% ne définie pas d'URL 'gpgkey=' additionnelles." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Impossible de lire le répertoire de dépôt '%1%' : permission refusée" # TLABEL restore_2002_08_07_0216__88 #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Impossible de lire le dossier '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Impossible de lire le fichier de dépôt '%1%' : permission refusée" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "L'alias d'un dépôt ne peut pas commencer par un point." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "L'alias d'un service ne peut pas commencer par un point." # TLABEL kinternet_2002_02_20_2255__39 #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Impossible d'ouvrir le fichier '%s' en écriture." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Service '%1%' inconnu : suppression du dépôt de service orphelin '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Aucune métadonnée valide trouvée à l'URL spécifiée" msgstr[1] "Aucune métadonnée valide trouvée aux URL spécifiées" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Impossible de créer %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Impossible de créer le répertoire de cache des métadonnées." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Construction du cache du dépôt '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Impossible de créer le cache dans %s - pas d'autorisation en écriture." # TLABEL restore_2002_08_07_0216__88 #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Échec de la mise en cache du dépôt (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Type de dépôt non pris en charge" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Erreur lors de la tentative de lecture depuis '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Erreur de lecture inconnue depuis '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Ajout du dépôt '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nom du fichier de dépôt non valide sur '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Suppression du dépôt '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Impossible de déterminer l'emplacement de stockage du dépôt." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Impossible de supprimer '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Impossible de déterminer l'emplacement de stockage du service." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Chaîne de requête d'URL LDAP non valide" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Paramètre de requête d'URL LDAP '%s' non valide" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Impossible de cloner l'objet d'URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Référence d'objet d'URL vide non valide" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Impossible d'analyser les composants de l'URL" # TLABEL printer_2002_08_07_0216__54 #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "inconnu" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "non pris en charge" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Niveau 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Niveau 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Niveau 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Contrat client additionnel nécessaire" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "invalide" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Le niveau du support n'est pas spécifié" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Le fournisseur ne fournit pas de support." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "La détermination d'un problème, ce qui signifie un appui technique visant à " "fournir les informations de compatibilité, l'assistance à l'installation, le " "soutien à l'utilisation, la maintenance et le dépannage de base. Le Support " "de Niveau 1 ne vise pas à corriger les erreurs et défauts du produit." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "L'isolation de problème, ce qui signifie un appui technique visant à " "reproduire les problèmes du client, isoler le problème et fournir une " "résolution pour les problèmes non résolus par le Support de Niveau 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "La résolution de problème, ce qui signifie un appui technique visant à " "résoudre des problèmes complexes en engageant des ingénieurs dans la " "résolution des défauts du produit qui ont été identifiés par le Support de " "Niveau 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Un contrat client additionel est nécessaire pour obtenir du support." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Option de support inconnue. La description n'est pas disponible" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "La gestion du système est verrouillée par l'application avec le pid %d " "(%s).\n" "Fermez cette application avant de réessayer." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historique :" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Impossible d'ouvrir le fichier verrouillé : %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Cette action est actuellement déjà exécutée par un autre programme." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Mode de correspondance '%s' inconnu" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Mode de correspondance '%s' inconnu pour le modèle '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expression régulière '%s' invalide : regcomp a retourné %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expression régulière '%s' invalide" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Authentification requise pour '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Visitez le Novell Customer Center pour vérifier que votre inscription est " "valide et qu'elle n'a pas expiré." # TLABEL restore_2002_08_07_0216__88 #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Impossible de monter %s sur %s" # TLABEL linuxrc_2002_03_29_0036__22 #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Impossible de démonter %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Mauvais nom de fichier : %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Le medium ne s'est pas ouvert lors de l'action '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Fichier '%s' introuvable sur le medium '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Impossible d'écrire dans le fichier '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Le medium n'est pas attaché" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Mauvais point d'attache du support" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Échec de l'initialisation du téléchargement (curl) pour '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Exception système '%s' sur le medium '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Le chemin '%s' sur le medium '%s' n'est pas un fichier." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Le chemin '%s' sur le medium '%s' n'est pas un répertoire." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI malformé" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nom d'hôte vide dans l'URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Système de fichiers vide dans l'URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destination vide dans l'URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Schéma URI non pris en charge dans '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Opération non prise en charge par le medium" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Erreur de téléchargement (curl) pour '%s' :\n" "Code d'erreur : %s\n" "Message d'erreur : %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Une erreur s'est produite lors de la configuration des options de " "téléchargement (curl) pour '%s' :" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "La source de supports '%s' ne contient pas le support désiré" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Le medium '%s' est utilisé par une autre instance" # TLABEL profile-manager_2002_08_07_0216__9 #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Impossible d'éjecter un support" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Impossible d'éjecter les supports '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Autorisation d'accès à '%s' refusée." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Temps maximal dépassé lors de l'accès à '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" "Les données téléchargées dépassent la taille de fichier attendue '%s' de " "'%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "L'emplacement '%s' est temporairement inaccessible." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problème de certificat SSL, vérifiez que le certificat CA est OK pour '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Création d'un point d'attache : Impossible de trouver un répertoire pour " "créer un point d'attache" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Méthode d'authentification HTTP '%s' non prise en charge" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Veuillez d'abord installer le paquet 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "L'attribut requis '%s' est manquant." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Au moins un des attributs '%s' ou '%s' est requis." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Échec de la vérification de la signature" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Le paquet %s semble avoir été corrompu durant le transfert. Souhaitez-vous " "essayer à nouveau de le récupérer ?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Impossible de fournir le paquet %s. Souhaitez-vous essayer à nouveau de le " "récupérer ?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "La vérification d'applydeltarpm a échoué." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm a échoué." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Le plugin de service ne supporte pas la modification d'attribut." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Impossible de fournir '%s' à partir du dépôt '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Pas d'URL dans le dépôt." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Le fichier %1%\n" " du paquet\n" " %2%\n" " est en conflit avec le fichier du paquet\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Le fichier %1%\n" " du paquet\n" " %2%\n" " est en conflit avec le fichier de l'installation de\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Le fichier %1%\n" " de l'installation de\n" " %2%\n" " est en conflit avec le fichier du paquet\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Le fichier %1%\n" " de l'installation de\n" " %2%\n" " est en conflit avec le fichier de l'installation de\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Le fichier %1%\n" " du paquet\n" " %2%\n" " est en conflit avec le fichier\n" " %3%\n" " du paquet\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Le fichier %1%\n" " du paquet\n" " %2%\n" " est en conflit avec le fichier\n" " %3%\n" " de l'installation de\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Le fichier %1%\n" " de l'installation de\n" " %2%\n" " est en conflit avec le fichier\n" " %3%\n" " du paquet\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Le fichier %1%\n" " de l'installation de\n" " %2%\n" " est en conflit avec le fichier\n" " %3%\n" " de l'installation de\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Impossible de créer la réserve sat." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "casser %s en ignorant certaines de ses dépendances" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "Ignorer généralement certaines dépendances" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s n'appartient à aucun dépôt de mise à niveau de la distribution" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s a une architecture inférieure" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problème avec le paquet installé %s" # TLABEL kinternet_2002_02_20_2255__29 #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "requêtes conflictuelles" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "Problèmes de dépendance" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "rien ne fournit %s qui est requis" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Avez-vous activé tous les dépôts requis ?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "Le paquet %s n'existe pas" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "Requête non supportée" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s est fourni par le système et ne peut être supprimé" # TLABEL partitioning_2002_01_04_0147__180 #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s n'est pas installable" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "rien ne fournit %s, qui est requis par %s" # TLABEL partitioning_2002_01_04_0147__180 #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "impossible d'installer simultanément %s et %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s est en conflit avec %s fourni par %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s rend obsolète %s fourni par %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s installé rend obsolète %s fourni par %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "L'élément %s est en conflit avec %s fourni par lui même" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s requiert %s, mais cette dépendance ne peut pas être fournie" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "fournisseurs supprimés : " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "fournisseurs non installables : " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "fournisseurs non installables : " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "enlever le verrou pour permettre la suppression de %s" # TLABEL partitioning_2002_01_04_0147__180 #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "ne pas installer %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "conserver %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "enlever le verrou pour permettre l'installation de %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Cette requête va casser votre système !" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorer l'avertissement d'un système cassé" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "ne pas demander d'installer un élément résoluble fournissant %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" "ne pas demander de supprimer tous les éléments résolubles fournissant %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "ne pas installer une version plus récente de %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "conserver %s en dépit de l'architecture inférieure" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "installer %s en dépit de l'architecture inférieure" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "conserver %s obsolète" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "installer %s depuis le dépôt exclu" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "installation d'une version moins récente de %s vers %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "changement de l'architecture %s à %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "installer %s (avec changement de fournisseur)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "remplacement de %s par %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "désinstallation de %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Exécution du script %%posttrans « %1% »" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Exécution des scripts %posttrans" # TLABEL online_update_2002_01_04_0147__113 #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " exécuté" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " échec de l'exécution" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s déjà exécuté en tant que %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " exécution annulée lors de l'abandon" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Erreur lors de l'envoi de la notification de mise à jour par message." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nouveau message de mise à jour" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "L'installation a été abandonnée comme demandé." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Désolé, cette version de libzypp a été construite sans la prise en charge " "HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext non connecté" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive non initialisé" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume non initialisé" # TLABEL linuxrc_2002_03_29_0036__141 #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Impossible de créer la connexion dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new : impossible de créer le contexte libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection : impossible de définir la connexion dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Impossible d'initialiser le contexte HAL -- hald fonctionne-t-il ?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Pas un lecteur de CD-ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Échec RPM : " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Impossible d'importer la clé publique %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Impossible de supprimer la clé publique %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Le paquet n'est pas signé !" # TLABEL sw_single_2002_01_04_0147__11 #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Fichiers de configuration modifiés pour %s :" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm a enregistré %s sous le nom de %s, mais il a été impossible de " "déterminer la différence" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm a enregistré %s sous %s.\n" "Voici les 25 premières lignes qui diffèrent :\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm a créé %s sous le nom de %s, mais il a été impossible de déterminer la " "différence" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm a créé %s sous le nom de %s.\n" "Voici les 25 premières lignes qui diffèrent :\n" # TLABEL firewall_2002_03_14_2340__51 #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Sortie rpm supplémentaire" # TLABEL backup_2002_03_14_2340__102 #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "sauvegarde %s créée" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "La signature est correcte" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Type de signature inconnu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "La signature n'est pas vérifiée" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "La signature est correcte mais la clé n'est pas certifiée" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "La clé publique des signatures n'est pas disponible" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Le fichier n'existe pas ou la signature ne peut pas être vérifiée" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Le fichier n'est pas signé" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Impossible d'initialiser les attributs mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Impossible de définir l'attribut mutex récursif" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Impossible d'initialiser l'attribut mutex récursif" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Impossible d'acquérir le verrouillage mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Impossible de libérer le verrouillage mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Le schéma d'URL n'autorise pas de %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Composant '%s' non valide '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Composant %s non valide" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Analyse de la chaîne de requête non prise en charge pour cette URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Le schéma d'URL est un composant requis" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Schéma d'URL '%s' non valide" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Le schéma d'URL n'autorise pas de nom d'utilisateur" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Le schéma d'URL n'autorise pas de mot de passe" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Le schéma d'URL nécessite un composant d'hôte" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Le schéma d'URL n'autorise pas de composant d'hôte" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Composant d'hôte non valide '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Le schéma d'URL n'autorise pas de port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Composant de port non valide '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Le schéma d'URL requiert un nom de chemin" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Chemin relatif non autorisé en présence d'une autorité" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "La chaîne codée contient un octet NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" "Caractère séparateur de division non valide pour l'ensemble de paramètres" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" "Caractère séparateur de division non valide pour le mappage de paramètres" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" "Caractère séparateur de catégorie de jonction non valide pour l'ensemble de " "paramètres" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Impossible d'importer la clé publique du fichier %s : %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Impossible de supprimer la clé publique %s : %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Impossible de trouver un périphérique de boucle pour monter le fichier " #~ "image depuis '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "Ignorer généralement certaines dépendances" # TLABEL partitioning_2002_01_04_0147__180 #~ msgid "do not forbid installation of %s" #~ msgstr "ne pas interdire l'installation de %s" # TLABEL partitioning_2002_01_04_0147__180 #~ msgid "do not keep %s installed" #~ msgstr "ne pas laisser %s installé" #~ msgid "Serbia and Montenegro" #~ msgstr "صربيا ومونتنيجرو" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "خيار list غير معروÙ" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "تعذر حل التبعيات" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Impossible de créer la clé publiqe %s du porteclé %s dans le fichier %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "Essayé d'importer la clé non existante %s dans le porteclé %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Impossible de chdir à '/' dans un chroot (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "" #~ "Échec de l'initialisation du téléchagement (Metalink curl) pour '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Erreur de téléchargement (metalink curl) pour '%s':\n" #~ "Code erreur: %s\n" #~ "Message erreur: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Téléchargement interrompu à %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Téléchargement interrompu par l'utilisateur" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Erreur survenue pendant la définition des options de téléchargement " #~ "(metalink curl) pour '%s':" # TLABEL restore_2002_08_07_0216__88 #~ msgid "Failed to download %s from %s" #~ msgstr "Impossible de télécharger %s depuis %s" #~ msgid "Valid metadata not found at specified URL(s)" #~ msgstr "Meta-donnée valide non trouvée à l'URL spécifiée" libzypp-17.7.0/po/gl.po000066400000000000000000003632061334444677500147120ustar00rootroot00000000000000# Galician translation of zypp # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2000, 2001 SuSE GmbH. # Copyright (C) 2002 SuSE Linux AG. # # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en # # Jesús Bravo Ãlvarez , 2000. # Leandro Regueiro , 2008. # Manuel A. Vazquez , 2010, 2011, 2013. msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-03-08 22:02+0000\n" "Last-Translator: Manuel Vazquez \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Excepción de hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipo dubidoso '%s' para o byte %u suma de verificación '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "País descoñecido: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Sen código" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" # US # fuzzy #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emiratos Ãrabes Unidos" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistán" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antiga e Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguila" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" # AM # fuzzy #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antillas Neerlandesas" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antártida" # AR #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Arxentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Americana" # AT #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" # AU #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" # CU #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # FO # fuzzy #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Illas Aland" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Acerbaixán" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia e Hercegovina" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" # BE #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Bélxica" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" # BG #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" # BH #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benín" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudas" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" # BO #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" # BH # fuzzy #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bután" # FO # fuzzy #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Illa Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" # BY #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "República de Belarús" # BZ # fuzzy #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" # CA #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canadá" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Illas de Cocos" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" # CF # fuzzy #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "República Centroafricana" # CH #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Suíza" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Costa de Marfil" # FO # fuzzy #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Illas Cook" # CL #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camerún" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" # CO # fuzzy #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cabo Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Illa de Nadal" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Chipre" # CZ #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "República Checa" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Alemaña" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Xibutí" # DK #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dinamarca" # DM #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" # DO #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "República Dominicana" # DZ #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alxeria" # EC # fuzzy #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" # EE #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" # EG #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Exipto" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sáhara Occidental" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" # ES #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "España" # ET # fuzzy #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Estonia" # FI #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlandia" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fixi" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Illas Falkland (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Estados Federados de Micronesia" # FO #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "IIllas Feroe" # FR #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francia" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Francia Metropolitana" # GH #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabón" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Reino Unido" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Granada" # GE #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Xeorxia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Güiana Francesa" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH # fuzzy #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "China" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Xibraltar" # GL #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grenlandia" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" # GU #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadalupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinea Ecuatorial" # GR #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grecia" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Illas Xeorxia do Sur e Sandwich do Sur" # GT #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" # GU #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea Bissau" # GH #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Güiana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Illa Heard e Illas McDonald" # HN #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" # HR #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croacia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haití" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungría" # ID #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" # IE #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" # IL #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Illa de Man" # IN #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Territorios británicos no Océano Ãndico" # IQ #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraq" # IR #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irán" # IS #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islandia" # IT #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" # JM #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Xamaica" # JO # fuzzy #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Xordania" # JP #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Xapón" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KZ # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirguisistán" # KH # fuzzy #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Camboxa" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comores" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts e Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Corea do Norte" # ZA #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Corea do Sur" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" # FO #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Illas Caimán" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Casaquistán" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "República Popular Democrática de Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Líbano" # LC #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Santa Lucía" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" # LT # fuzzy #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituania" # LU #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburgo" # LV #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letonia" # LR #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marrocos" # MO #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Mónaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavia" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "San Martín" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" # FO # fuzzy #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Illas Marshall" # MK #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Malí" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birmania" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" # MO #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macau" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Illas Marianas do Norte" # MU #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" # MT #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauricio" # MV #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldivas" # MW # fuzzy #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Kanu" # MX #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "México" # MY #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaisia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" # GM #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Caledonia" # NG #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Níxer" # FO #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Illa de Norfolk" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nixeria" # NI #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" # NL #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Países Baixos" # NO #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noruega" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" # NZ #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nova Celandia" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omán" # PA #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panamá" # PE #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perú" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinesia Francesa" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papúa-Nova Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipinas" # TJ # fuzzy #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Paquistán" # PL #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polonia" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "San Pedro e Miguelón" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "PPitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Territorios Palestinos" # PT #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" # PW # fuzzy #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Paraguai" # PY #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguai" # QA # fuzzy #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunión" # RO #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romanía" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Federación Rusa" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabia Saudita" # FO #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Illas Salomón" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seicheles" # SD #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudán" # SE #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suecia" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Santa Helena" # SI #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Eslovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard e Jan Mayen" # SK #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Eslovaquia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Serra Leona" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" # SY # fuzzy #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "San Tomé e Príncipe" # SV #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "O Salvador" # SY #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Siria" # SZ # fuzzy #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Suacilandia" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Illas Turcos e Caicos" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Territorios Franceses do Sur" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" # TH #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailandia" # TJ # fuzzy #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Taiwán" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Toquelau" # TJ # fuzzy #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistán" # TN # fuzzy #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Rusia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor Leste" # TR #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turquía" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trindade e Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" # TW #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwán" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" # UA #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucraína" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM # fuzzy #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Estados Unidos de América" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Estados Unidos de América" # UY #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguai" # TJ # fuzzy #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Usbekistán" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Santa Sede (Cidade Estado do Vaticano)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "San Vicente e Granadinas" # VE #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Illas Virxes Británicas" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Illas Virxes Estadounidenses" # VN #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis e Futuna" # KH #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Iemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" # ZA #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sudáfrica" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Cimbabue" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Proporciona" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Requisitos previos" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Require" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Conflitos" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Desactualiza" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recomenda" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Suxire" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Mellora" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Suplementos" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Non se pode abrir pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Non se pode abrir a canlización (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Non se pode facer chroot a '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Non foi posíbel executar chdir '%s' dentro de '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Non foi posíbel executar '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Non se pode executar '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "No se pode facer fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "A orde rematou co estado %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "O sinal %d (%s) matou a orde." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "A orde rematou cun erro descoñecido." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Tentouse importar unha chave que non existe %s para o chaveiro %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Erro ao importar a chave." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Fallo ao eliminar a chave." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Non se atopou o ficheiro da sinatura %s" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Lingua descoñecida: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" # AZ # fuzzy #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abxasio" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinés" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-asiáticas (outras)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadian" # AZ #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanés" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutiano" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Linguas Algonquinas" # ZA #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai do Sur" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amhárico" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Anglo-Saxón (450-110 d.c)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Linguas Apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Ãrabe" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Arameo" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonés" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenio" # MR # fuzzy #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucano" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificiais (outras)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Asamés" # AT #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiano" # AU #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Linguas athapascanas" # AU #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Linguas australianas" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaric" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" # MM # fuzzy #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aimará" # AZ #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Acerí" # CA #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Linguas Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkirés" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" # GM # fuzzy #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinés" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Éuscaro" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Bálticas (Outras)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" # BY #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorruso" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" # BZ # fuzzy #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalí" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Bereber (Outras )" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" # BH # fuzzy #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantú (Outras)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnio" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretón" # ID # fuzzy #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesia)" # BG #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginés " #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Búlgaro" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birmano" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" # TD # fuzzy #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Indíxenas Centroamericanas (Outras)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Caribe" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalán" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucásicas (Outras)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtas (Outras)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" # CN #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Checheno" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinés" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Xerga Chinook " #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee " #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Eslavo eclesiástico " #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash " #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheién" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Linguas Chamic" # HR #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Copto" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Córnico " #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corso" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creoles e Pidgin, baseados no Inglés (Outras)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creoles e Pidgin, baseadas no Francés (Outras)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creoles e Pidgin, baseadas no Portugués (Other)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree " #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tártaro da Crimea " #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creoles e Pidgin (Outras)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Casubio" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushiticas (Outras)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Checo" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dinamarqués" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware " #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" # DM # fuzzy #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidicas (Outras)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Baixo Sorbio" # PW # fuzzy #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Neerlandés Medio (1050-1350 d.c)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandés" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Exipto (Antigo)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Baixo Sorbio" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglés" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Anglo Saxón Medio (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonio" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe " #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Feroés" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" # FI #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fixiano" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finlandés" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fino-Húngaras (outras)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francés" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francés Medio ( 1400-1600 d.c)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francés Antigo (842-1400 d.c)" # FR #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisio" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah " # FI #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friuliano" # GU # fuzzy #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" # GH # fuzzy #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Xermánicas (Outras)" # GE #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Xeorxiano" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Alemán" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertés" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaélico" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandés" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galego" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Alemán, Medio Alto (1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Alemán, Antigo Alto (750-1500)" # IN # fuzzy #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo " #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gótico" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grego Antigo (ata 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grego Moderno (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaraní" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Guxarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiano" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa " #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiiano" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreo" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" # IN #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu " #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Alto Sórabo " #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Húngaro" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo " #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandés" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido " # LT # fuzzy #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut " #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingua" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Asociación por unha Lingua Auxiliar Internacional)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Ãndicas (Outras)" # ID #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesio" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-Europeas (Outras)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" # IN # fuzzy #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq " #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iranianas (Outras)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Linguas Iroquesas" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiano" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Xavanés " #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Xaponés" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Xudeu-Persas" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Xudeo-Ãrabe" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" # BH # fuzzy #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin " #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Groenlandés " # GM # fuzzy #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" # CA #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kanada " #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Cachemirés " #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri " # MW # fuzzy #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazaxio " #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardiano" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (Outras)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu " #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kiniarwanda " #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo " #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreano" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" # PA #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Curdo" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" # UG # fuzzy #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" # GM # fuzzy #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao " # LV #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latín" # LV #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letón" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezguí" # LU # fuzzy #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgués" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituano" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" # LU #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgués" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # GH # fuzzy #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" # SD # fuzzy #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya e Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedonio" # MV # fuzzy #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurese" # MW # fuzzy #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marsellés " # ML # fuzzy #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" # MY # fuzzy #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" # MY # fuzzy #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam " #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maorí" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronésicas (Outras)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" # MT #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malaio" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" # MM # fuzzy #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende " #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Gaélico Irlandés, Medio (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Linguas varias" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Outras)" # MY #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgaxe" # MV #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltés" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchú" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Linguas Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" # BO #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavo" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Linguas múltiples" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Linguas Munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" # FM #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandés" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Linguas Maias" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuátl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indíxenas Norteamericanas" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitano" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaxo " #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, Sur" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, Norte" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga " #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Baixo Alemán" # ML # fuzzy #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalí" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Bhasa Nepalí" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanianas (Outras)" # NG # fuzzy #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Noruegués Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Noruegués Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Nórdico Antigo" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Noruegués" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho Norte" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Linguas Nubias" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newarí Clásico" # CL #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa " #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitano (post 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo " #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Oseto" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turco, Otomano (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Linguas Otomi" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Pupuaenses (Outras)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan " # PW # fuzzy #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "1Pahlavi" # PY #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga " # PA #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" # PW # fuzzy #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persa Antigo (ca 600-400 B.C)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persa" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipinas (Outras)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenicio" # ML # fuzzy #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali " #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polaco" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugués" # AU #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Linguas Pakrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provenzal Antigo (Ata 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto " #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" # TJ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" # JP #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Románicas, Outras Linguas" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retorrománico " # RO #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romanés" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romanés" # IN # fuzzy #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi " #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ruso" # CA #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" # SD # fuzzy #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango " #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indíxenas Sudamericanas (Outras)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Linguas Salish" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Amárico Samaritano" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sánscrito" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbio" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliano" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Escocés" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croata" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitas (Outras)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Gaélico Irlandés Antigo (ata o 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Linguas de Signos" # SD # fuzzy #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan " #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Linguas Siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetanas (Outras)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Eslavas (Outras)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Eslovaco" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Esloveno" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami Sur" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami Norte" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Sami, Outras Linguas" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Sami Lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Sami Inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoano" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Sami Skolt" # SI #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" # SD # fuzzy #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" # SO # fuzzy #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalí" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho do sur " #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Español" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardo" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo- Saharianas (Outras)" # ES #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati " #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" # SD # fuzzy #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanés " #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerio" # SZ # fuzzy #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suaxili " #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Sueco" # SY #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Sirio" # TW #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitiano" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (Outras)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" # QA # fuzzy #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tártaro " # BE #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" # TJ # fuzzy #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Taxiko " #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalo" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tailandés" # TW #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetano" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" # NG # fuzzy #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinia" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Illas Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" # TW #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana " # EE #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga " # TR #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turcomano " #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Linguas Tupí" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turco" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaicas (Outras)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" # TN # fuzzy #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinian" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugarítico " #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigur" # UA #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucraíno" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Non determinado " #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Usbeco" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda " # VN # fuzzy #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamita" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Linguas Wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" # PY #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Galés" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Linguas Sorbias" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Valón" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Xidish " # CU # fuzzy #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Ioruba " #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Linguas Yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapoteca" # GD #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang " #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulú" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuñi" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Realizaranse as seguintes accións:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "non caduca" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "caducado: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "caduca: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(non caduca)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(CADUCADO)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(caduca dentro de 24h)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(caduca dentro de %d día)" msgstr[1] "(caduca dentro de %d días)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Non foi posíbel ler o directorio do repositorio %1%: permiso denegado" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Erro ao ler o directorio '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Non foi posíbel ler o ficheiro de repositorio '%1%': permiso denegado" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "O alias do repositorio non pode comezar cun punto." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "O alias do servizo non pode comezar cun punto." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Non se puido abrir '%s' para escribir." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Metadatos válidos non atopados no(s) URL(s) especificado(s)" msgstr[1] "Metadatos válidos non atopados no(s) URL(s) especificado(s)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Non se pode crear '%s'" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Non se pode crear o directorio da caché de metadatos." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Construíndo a caché do repositorio '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Non se pode crear a caché en %s - non hai permisos de escritura." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Fallo na caché do repositorio (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Repositorio" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Erro ao ler desde '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Erro descoñecido ao ler desde '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Engadindo o repositorio '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nome de ficheiro do repositorio incorrecto en '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Eliminando o repositorio '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Non se pode saber onde se atopa almacenado o repositorio." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Non se pode borrar '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Non se pode saber onde se atopa almacenado o servizo." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Cadea de consulta URL LDAP incorrecta" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parámetro de consulta URL LDAP '%s' incorrecto" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Non se pode clonar o obxecto URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Referencia de obxecto de URL baleiro incorrecto" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Non se poden analizar os compoñentes de URL" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "descoñecido" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "non soportado" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Nivel 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Nivel 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Nivel 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Contrato adicional de cliente necesario" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "incorrecto" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "O nivel de soporte non está especificado" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "O fabricante non fornece soporte." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Determinación do problema, o que significa soporte técnico designado para " "prover información de compatibilidade, asistencia de instalación, soporte de " "uso, mantemento sobre a marcha e solucións básicas. Nivel 1 de soporte está " "pensado para corrixir erros por defectos do produto." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Illamento do problema, o que significa soporte técnico designado para " "duplicar os problemas do cliente, illar a área problemática e prover unha " "solución por problemas non resoltos polo Nivel 1 de soporte." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Resolución de problemas, significa soporte técnico designado para resolver " "problemas complexos ao utilizar enxeñaría na resolución de produtos " "defectuosos identificados polo Nivel 2 de soporte." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Un contrato adicional co cliente é necesario para recibir soporte." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Opción de soporte descoñecida. Descrición non dispoñible" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "A xestión do sistema está bloqueada polo aplicativo con pid %d (%s).\n" "Peche este aplicativo antes de tentalo de novo." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historial:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Non se pode abrir o ficheiro de bloqueo: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Esta acción xa está a ser executada por outro programa." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Modo de coincidencias '%s' descoñecido " #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Modo de coincidencias '%s' descoñecido para o patrón '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expresión regular '%s' incorrecta: regcomp devolveu %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expresión regular '%s' incorrecta" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autenticación necesaria para '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Visite o Novell Customer Center para verificar se o seu rexistro é válido e " "non caducou." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Fallo ao montar %s en %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Fallo ao desmontar %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nome de ficheiro danado: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "O medio non se abriu cando se tentaba realizar a acción '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Non se atopa o ficheiro '%s' no medio '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Non se puido escribir o ficheiro '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medio non anexado" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Punto de inserción de medio incorrecto" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "O inicio da descarga (curl) fallou para '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Excepción do sistema '%s' no medio '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "A ruta '%s' no medio '%s' non é un ficheiro." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "A ruta '%s' no medio '%s' non é un directorio." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Formato de URI incorrecto" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nome de host baleiro en URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Sistema de ficheiros baleiro en URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destino baleiro en URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Esquema de URL non soportado en '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operación non admitida polo medio" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Erro na descarga (curl) de '%s':\n" "Código de erro: %s\n" "Mensaxe de erro: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Ocorreu un erro ao establecer as opcións de descarga (curl) para '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "O medio fonte '%s' non contén o medio desexado" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "O medio '%s' está en uso por outra instancia" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Non é posible expulsar ningún medio" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Non se puido expulsar o soporte '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Permiso de acceso a '%s' denegado." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Tempo de espera excedido ao acceder a '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "A localización '%s' está neste intre inaccesible." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problema no certificado SSL, comprobe se a certificación CA é correcta para " "'%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Método de autenticación HTTP non soportado '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Instale primeiro o paquete 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Falta o atributo requirido '%s'." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Necesítanse un ou ambos os dous atributos '%s' ou '%s'." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "O paquete %s semella que se danou durante a transferencia. Quéreo volver " "obter?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Non se puido fornecer o paquete %s. Quéreo volver obter?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "fallou na verificación de applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "fallou applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Non se pode fornecer o ficheiro '%s' desde o repositorio '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Non hai ningún enderezo url no repositorio." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Non se pode crear sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "quebrar %s ao ignorar algunhas das dependencias" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s non pertence ao repositorio de actualización da distribución" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s ten unha arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "houbo un problema co paquete instalado %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "peticións en conflito" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "algúns problemas de dependencias" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "no hai nada que forneza o solicitado %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Activou todos os repositorios solicitados?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s non é instalable" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "no hai nada que forneza %s e que o necesita %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "non se puido instalar %s e %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s ten un conflito con %s, fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s está obsoleto %s fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s instalado, deixa obsoleto a %s fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "a solución %s ten conflitos con %s fornecida por esta mesma" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s require %s, pero este requerimento non pode ser fornecido" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "fornecedores eliminados: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "provedores non instalables: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "provedores non instalables: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "non instalar %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "Manter %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Esta solicitude danará o seu sistema!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorar o aviso de sistema danado" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "non preguntar en caso de instalar algún elemento que forneza %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "non preguntar en caso de eliminar todos os elementos que fornecen %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "non instalar a versión máis recente de %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "manter %s sen importar que sexa dunha arquitectura inferior" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "instalar %s aínda que cambie a arquitectura" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "manter o antigo %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "instalar %s desde os repositorios excluídos" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "desactualizar de %s a %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "modificación de arquitectura de %s para %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instalar %s (con cambio de provedor)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "substitución de %s con %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "desinstalación de %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " executado" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " fallou a execución" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s xa executado como %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " ignorada a execución ao abortar" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Erro ao enviar a notificación da mensaxe de actualización." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nova mensaxe de actualización" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Abortouse a instalación seguindo as indicacións." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Esta versión de libzypp foi compilada sen soporte para HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext non conectado" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive non inicializado" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume non inicializado" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Non foi posible crear a conexión co dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: non foi posible crear o contexto libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: non se puido definir a conexión con dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Non foi posible iniciar o contexto HAL - hald non está en execución?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Non é un dispositivo CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Fallou RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Erro ao importar a chave pública %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Erro ao eliminar a chave pública %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Modificados os ficheiros de configuración para %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm gardou %s como %s, pero non se pode determinar a diferenza" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm gardou %s como %s.\n" "A continuación amósanse as primeiras 25 líñas de diferenza:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm creou %s como %s, pero no se pode determinar a diferenza" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm creou %s como %s.\n" "A continuación amósanse as primeiras 25 líñas de diferenza:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Saída rpm adicional" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "copia de seguridade %s creada" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "A sinatura é correcta" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tipo de sinatura descoñecido" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Non é posible iniciar os atributos de mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Non se pode establecer o atributo de mutex recursivo" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Non é posíbel inicializar mutex recursivo" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Non se pode adquirir o bloqueo de mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Non se pode liberar o bloqueo de mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "O esquema de Url non permite un elemento %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Compoñente '%s' incorrecto %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Compoñente %s incorrecto" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "A análise de cadeas de consulta non é compatible con este enderezo URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "O esquema de Url é un compoñente obrigatorio" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Esquema '%s' de URL incorrecto" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "O esquema de Url non permite un nome de usuario" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "O esquema de Url non permite un contrasinal" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "O esquema de Url require un compoñente de host" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "O esquema de Url non permite un compoñente host" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Compoñente de host incorrecto '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "O esquema de Url non permite un porto" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Compoñente de porto incorrecto '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "O esquema de Url require un nome de ruta" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Non se permiten rutas alternativas se existe unha autoridade" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "A cadea codificada inclúe un byte NULO" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" "Parámetro de carácter de separación para a división de matrices incorrecto" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" "Parámetro de carácter de separación para a división de mapas incorrecto" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" "Parámetro de carácter de separación para a unión de matrices incorrecto" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Erro ao importar a chave pública desde o ficheiro %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Erro ao eliminar a chave pública %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Non é posible atopar un dispositivo bucle dispoñible para montar a imaxe " #~ "desde '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "xeralmente ignorar algunhas dependencias" #~ msgid "do not forbid installation of %s" #~ msgstr "non prohibir a instalación de %s" #~ msgid "do not keep %s installed" #~ msgstr "non manter instalado %s" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "خيار list غير معروÙ" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Non se pode crear a chave pública %s do anel de chaves %s ao ficheiro %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "Tentouse importar a chave inexistente %s no anel de chaves %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Non se pode facer chdir a '/' dentro de chroot (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "O inicio da descarga (Metalink curl) fallou para '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Erro na descarga (metalink curl) de '%s':\n" #~ "Código de erro: %s\n" #~ "Mensaxe de erro: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Descarga interrompida en %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Descarga interrompida polo usuario" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Ocorreu un erro ao establecer as opcións de descarga (metalink curl) para " #~ "'%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Erro ao descargar %s desde %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia e Montenegro" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "Depende de: !dependecies" #, fuzzy #~ msgid "%s remove failed" #~ msgstr "Eliminar elemento" #, fuzzy #~ msgid "%s install failed" #~ msgstr "Cron executouse con fallas" #, fuzzy #~ msgid "%s installed ok" #~ msgstr "Non instalado" #, fuzzy #~ msgid "%s remove ok" #~ msgstr "Eliminar elemento" libzypp-17.7.0/po/gu.po000066400000000000000000004155431334444677500147250ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: nis\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2006-11-11 18:41+0530\n" "Last-Translator: Priyavert Sharma\n" "Language-Team: AgreeYa Solutions\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10.2\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "હેલ અપવાદ" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "અજાણà«àª¯à«‹ દેશ:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "કોડ નથી" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "àªàª¨à«àª¡à«‹àª°àª¾" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "યૂનાઇટેડ આરબ àªàª®àª¿àª°àª¾àªŸà«àª¸" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "અફઘાનિસà«àª¤àª¾àª¨" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "àªàª¨à«àªŸàª¿àª—à«àª† અને બારબà«àª¡àª¾" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "àªàª¨à«àª—à«àª‡àª²àª¾" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "અલà«àª¬àª¾àª¨àª¿àª¯àª¾" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "અરà«àª®à«‡àª¨àª¿àª¯àª¾" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "નેધરલેનà«àª¡à«àª¸ àªàª¨à«àªŸàª¿àª²à«‡àª¸" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "àªàª¨à«àª—ોલા" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "àªàª¨à«àªŸàª¾àª°à«àª•ટિકા" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "આરà«àªœà«‡àª¨à«àªŸàª¿àª¨àª¾" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "અમેરિકન સામોઆ" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ઓસà«àªŸà«àª°àª¿àª¯àª¾" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ઓસà«àªŸà«àª°à«‡àª²àª¿àª¯àª¾" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "અરà«àª¬àª¾" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "અલાનà«àª¡ આઇલેનà«àª¡à«àª¸" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "અàªà«‡àª°àª¬àª¾àª‡àªœàª¨" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "બોસà«àª¨àª¿àª¯àª¾ અને હરà«àªà«‡àª—ોવિના" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "બારà«àª¬àª¾àª¡à«‹àª" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "બાંગà«àª²àª¾àª¦à«‡àª¶" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "બેલà«àªœà«€àª¯àª®" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "બરà«àª•િના ફાસો" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "બલà«àª—ેરિયા" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "બહેરિન" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "બà«àª°à«àª‚ડી" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "બેનિન" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "બરà«àª®à«àª¡àª¾" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "બà«àª°à«‚નેઇ દારà«àª¸à«àª¸àª¾àª²àª®" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "બોલિવિયા" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "બà«àª°àª¾àªàª¿àª²" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "બહામસ" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ભૂટાન" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "બૌવેટ આઇલેનà«àª¡" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "બોટà«àª¸àªµàª¾àª¨àª¾" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "બેલારà«àª¸" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "બેલાઇàª" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "કેનેડા" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "કોકોસ (કિલિંગ) આઇલેનà«àª¡à«àª¸" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "કોંગો" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "સેટà«àª°àª² આફà«àª°àª¿àª•ન રિપબà«àª²àª¿àª•" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "સà«àªµàª¿àªŸàªàª°àª²à«‡àª¨à«àª¡" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "કોટ ડિ'લà«àªµà«‹àª‡àª°à«‡" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "કà«àª• આઇલેનà«àª¡à«àª¸" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ચિલિ" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "કેમેરà«àª¨" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "ચાઇના" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "કોલોમà«àª¬àª¿àª¯àª¾" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "કોસà«àªŸàª¾ રિકા" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "કà«àª¯à«àª¬àª¾" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "કેપ વરà«àª¡à«‡" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "કà«àª°àª¿àª¸à«àªŸàª®àª¸ આઇલેનà«àª¡" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "સાઇપà«àª°àª¸" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ચેઠરિપબà«àª²àª¿àª•" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "જરà«àª®àª¨à«€" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "ડà«àªœàª¿àª¬à«ŒàªŸà«€" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ડેનમારà«àª•" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "ડોમિનિકા" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ડોમિનિસિયન રિપબà«àª²àª¿àª•" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "અલà«àªœà«‡àª°àª¿àª¯àª¾" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "àªàª•à«àªµàª¾àª¡à«‹àª°" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "àªàª¸à«àªŸà«‹àª¨àª¿àª¯àª¾" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "ઇજિપà«àª¤" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "વેસà«àªŸàª°à«àª¨ સહારા" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "àªàª°àª¿àªŸàª°àª¿àª¯àª¾" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "સà«àªªà«‡àª¨" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "àªàª¥àª¿àª“પિયા" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ફિનલેનà«àª¡" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "ફિજિ" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ફાલà«àª•લેનà«àª¡ આઇલેનà«àª¡ (માલà«àªµàª¿àª¨àª¸)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ફેડરેટડ સà«àªŸà«‡àªŸà«àª¸ ઓફ માઇકà«àª°à«‹àª¨à«‡àª¸àª¿àª¯àª¾" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ફારોઠઆઇલેનà«àª¡à«àª¸" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ફà«àª°àª¾àª¨à«àª¸" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "મેટà«àª°à«‹àªªà«‹àª²àª¿àªŸàª¨ ફà«àª°àª¾àª¨à«àª¸" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "ગબોન" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "યૂનાઇટેડ કિંગડોમ" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "ગà«àª°à«‡àª¨àª¾àª¡àª¾" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "જà«àª¯à«‹àª°à«àªœàª¿àª¯àª¾" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ફેનà«àªš ગà«àª‡àª†àª¨àª¾" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "જરà«àª®àª¨à«€" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "ઘાના" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "જિબà«àª°àª¾àª²à«àªŸàª°" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ગà«àª°à«€àª¨àª²à«‡àª¨à«àª¡" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ગમà«àª¬àª¿àª¯àª¾" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ગà«àª¨àª¿àª¯àª¾" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "ગૌડેલૌપે" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "àªàª•à«àªµàª¾àªŸà«‹àª°àª¿àª¯àª² ગà«àª¨àª¿àª¯àª¾" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ગà«àª°à«€àª¸" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "સાઉથ જà«àª¯à«‹àª°à«àªœàª¿àª¯àª¾ અને સાઉથ સેનà«àª¡àªµàª¿àªš આઇલેનà«àª¡à«àª¸" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "ગૌટેમાલા" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "ગà«àª†àª®" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ગà«àª¨àª¿àª¯àª¾-બિસાઉ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ગà«àª¯àª¾àª¨àª¾" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "હોંગ કોંગ" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "હરà«àª¡ આઇલેનà«àª¡ અને મેકડોનાલà«àª¡ આઇલેનà«àª¡à«àª¸" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "હોંડà«àª°àª¾àª¸" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "કà«àª°à«‹àªàª¶àª¿àª¯àª¾" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "હૈતી" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "હંગેરી" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ઇનà«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¾" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "આયરà«àª²à«‡àª¨à«àª¡" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ઇàªàª°àª¾àª¯à«‡àª²" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ઇનà«àª¡àª¿àª¯àª¾" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "બà«àª°àª¿àªŸàª¿àª¶ ઇનà«àª¡àª¿àª¯àª¨ ઓસિયન ટેરિટરી" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "ઇરાક" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ઇરાન" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "આઇસલેનà«àª¡" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ઇટાલિ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "જમૈકા" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "જોરà«àª¡àª¨" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "જાપાન" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "કેનà«àª¯àª¾" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "કà«àª¯àª°àªà«‡àª¸à«àª¤àª¾àª¨" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "કંબોડિયા" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "કિરિબતી" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "કોમરોસ" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "સેંટ કિટà«àª¸ અને નેવિસ" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "નોરà«àª¥ કોરિયા" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "સાઉથ કોરિયા" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "કà«àªµà«ˆàª¤" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "કેયમેન આઇલેનà«àª¡à«àª¸" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "કàªàª¾àª•à«àª¸à«àª¤àª¾àª¨" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "લાઓ પિપલà«àª¸ ડેમોકà«àª°à«‡àªŸàª¿àª• રિપબà«àª²àª¿àª•" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "લેબેનોન" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "સેંટ લà«àª¸àª¿àª¯àª¾" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "લેઇચટેનà«àª¸à«àªŸà«‡àª‡àª¨" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "શà«àª°à«€ લંકા" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "લિબેરિયા" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "લેસોથો" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "લિથà«àª†àª¨àª¿àª¯àª¾" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "લકà«àªà«‡àª®àª¬àª°à«àª—" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "લેટિવા" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "લિબિયા" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "મોરોકà«àª•à«‹" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "મોનેકો" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "મોલà«àª¡à«‹àªµàª¾" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "મોંગો" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "સન મેરિનો" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "મડગાસà«àª•ાર" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "મારà«àª¶à«‡àª² આઇલેનà«àª¡à«àª¸" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "માસેડોનિયા" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "માલિ" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "મà«àª¯àª¾àª¨àª®àª¾àª°" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "મોંગોલિયા" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "મકાઓ" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "નોરà«àª§àª°à«àª¨ મારિયાના આઇલેનà«àª¡à«àª¸" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "મારà«àªŸàª¿àª¨àª¿àª•" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "મૌરિટાનિયા" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "મોનà«àªŸàª¸à«‡àª°àª¾àªŸ" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "માલà«àªŸàª¾" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "મોરેશિયસ" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "માલદિવસ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "મલાવિ" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "મેકà«àª¸àª¿àª•à«‹" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "મલેસિયા" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "મોàªàª¾àª®à«àª¬àª¿àª•" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "નામિબિયા" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "નà«àª¯à«‚ કેલેડોનિયા" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "નાઇજેર" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "નોરફોલà«àª• આઇલેનà«àª¡" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "નાઇજિરિયા" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "નિકારાગà«àª†" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "નેધરલેનà«àª¡àª¸" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "નોરà«àªµà«‡" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "નેપાલ" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "નૌરà«" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "નિયà«àª" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "નà«àª¯à«‚ àªà«€àª²à«‡àª¨à«àª¡" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "ઓમાન" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "પનામા" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "પેરà«" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ફà«àª°à«‡àª¨à«àªš પોલિનેસિયા" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "પાપà«àª† નà«àª¯à«‚ ગà«àª¨àª¿àª¯àª¾" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "ફિલિપાઇનà«àª¸" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "પાકિસà«àª¤àª¾àª¨" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "પોલેનà«àª¡" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "સેંટ પિàªàª°à«‡ અને મિકેલોન" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "પિટકેઇરà«àª¨" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "પà«àª¯à«‚àªàª°à«àªŸà«‹ રિકો" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "પેલેસà«àªŸàª¿àª¨àª¿àª¯àª¨ ટેરિટરી" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "પોરà«àªŸà«àª—લ" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "પલાઉ" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "પેરાગà«àªµà«‡" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "કતાર" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "રિયૂનિયન" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "રોમાનિયા" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "સરà«àª¬àª¿àª¯àª¨" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "રશિયન ફેડરેશન" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "રવાનà«àª¡àª¾" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "સાઉદી અરેબિયા" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "સોલોમન આઇલેનà«àª¡à«àª¸" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "શેશેલà«àª¸" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "સà«àª¦àª¾àª¨" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "સà«àªµàª¿àª¡àª¨" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "સિંગાપોર" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "સેંનà«àªŸ હેલેના" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "સà«àª²à«‹àªµà«‡àª¨àª¿àª¯àª¾" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "સà«àªµàª¾àª²àª¬àª°à«àª¡ અને જાન મયેન" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "સà«àª²à«‹àªµà«‡àª•િયા" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "સિયેરા લિયોન" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "સન મેરિનો" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "સેનેગલ" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "સોમાલિયા" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "સà«àª°àª¿àª¨à«‡àª®" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "સાઓ ટોમ અને પà«àª°àª¿àª¨à«àª¸àª¿àªªà«‡" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "àªàª² સાલà«àªµàª¾àª¡à«‹àª°" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "સિરિયા" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "સà«àªµàª¾àªàª¿àª²à«‡àª¨à«àª¡" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "ટરà«àª•સ અને કઇકોસ આઇલેનà«àª¡" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ચેડ" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "ફà«àª°à«‡àª¨à«àªš સાઉધરà«àª¨ ટેરિટોરિસ" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "ટોગો" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "થાઈલેનà«àª¡" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ટાàªàª¿àª•à«àª¸à«àª¤àª¾àª¨" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "તોકેલાઉ" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ટરà«àª•મેનિસà«àª¤àª¾àª¨" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ટà«àª¨àª¿àª¸àª¿àª¯àª¾" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "ટોંગા" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ઇસà«àªŸ ટિમર" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ટરà«àª•à«€" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "તà«àª°àª¿àª¨àª¿àª¦àª¾àª¦ અને ટોબાગો" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ટà«àªµàª¾àª²à«" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "તાઇવાન" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "ટાનà«àªàª¾àª¨àª¿àª¯àª¾" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "યà«àª•à«àª°à«‡àª‡àª¨" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "યà«àª—ાનà«àª¡àª¾" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "યૂનાઇટેડ સà«àªŸà«‡àªŸà«àª¸ માઇનોર આઉટલાઇંગ આઇલેનà«àª¡à«àª¸" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "યૂનાઇટેડ સà«àªŸà«‡àªŸà«àª¸" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "યà«àª°à«àª—à«àªµà«‡" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "યà«àªàª¬à«‡àª•િસà«àª¤àª¾àª¨" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "હોલિ સી (વેટિકન સીટી સà«àªŸà«‡àªŸ)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "સેંટ વિનà«àª¸à«‡àª¨à«àªŸ અને ધ ગà«àª°à«‡àª¨àª¾àª¡àª¿àª¨à«‡àª¸" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "વેનેàªà«àªàª²àª¾" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "બà«àª°àª¿àªŸà«€àª¶ વરà«àªœàª¿àª¨ આઇલેનà«àª¡à«àª¸" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "વરà«àªœàª¿àª¨ આઇલેનà«àª¡à«àª¸, યà«.àªàª¸." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "વિયેટનામ" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "વનà«àª†àªŸà«" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "વોલિસ અને ફà«àªŸà«àª¨àª¾" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "સમોઆ" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "યેમન" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "મયોટે" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "સાઉથ આફà«àª°àª¿àª•ા" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "àªàª¾àª®à«àª¬àª¿àª¯àª¾" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "àªàª¿àª®à«àª¬àª¾àª¬à«àªµà«‡" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s અલગ પાડવà«àª‚ : %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "ફાઈલ ખà«àª²à«€ શકતી નથી: %1." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "ફાઈલ ખà«àª²à«€ શકતી નથી: %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "%s શોધાઈ શકતો નથી." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "%s શોધાઈ શકતો નથી." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "જોડાય તà«àª¯àª¾àª°à«‡ કમાનà«àª¡ અમલમાં મૂકવો" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "VM શરૂ કરવામાં નિષà«àª«àª³." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "VM શરૂ કરવામાં નિષà«àª«àª³." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "àªàª¨à«àªŸà«àª°à«€ મળી નહીં." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "અજાણી ભાષા:" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "અફર" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "અબકાàªàª¿àª¯àª¨" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "અચાઈનિàª" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "અકોલી" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "અડાનગà«àª®à«‡" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "અડà«àª¯àª¾àª˜à«‡" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "અફà«àª°à«‹-àªàª¶àª¿àª¯àª¾àªŸà«€àª• (અનà«àª¯)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "અફà«àª°àª¿àª¹àª¿àª²àª¿" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "આફà«àª°àª¿àª•નà«àª¸" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "àªàª‡àª¨à«" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "અકાન" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "અકાડિયન" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "અલà«àª¬àª¾àª¨àª¿àª¯àª¨" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "àªàª²à«àªŸ" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "àªàª²à«àª—ોનકà«àªµàª¿àª¯àª¨ ભાષાઓ" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "સાઉથરà«àª¨ અલટાઇ" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "àªàª®àª¹àª¾àª°àª¿àª•" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "અંગà«àª°à«‡àªœà«€, જૂનà«àª‚ (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "અપાચે ભાષાઓ" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "અરેબિક" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "અરામેઇક" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "આરà«àª—ોનિàª" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "આરà«àª®à«‡àª¨àª¿àª¯àª¨" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "અરાઉકેનિયન" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "અરાપાહો" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "આરà«àªŸàª¿àª«àª¿àª¸àª¿àª¯àª² (અનà«àª¯)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "અરાવક" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "આસામિàª" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "ઓસà«àªŸà«àª°à«€àª¯àª¨" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "અથાપાસà«àª•ેન ભાષાઓ" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ઓસà«àªŸà«àª°à«‡àª²àª¿àª¯àª¨ ભાષાઓ" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "અવારિક" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "અવેસà«àªŸàª¨" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "અવધી" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "અયમારા" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "અàªà«‡àª°àª¬àª¾àª‡àªœàª¾àª¨à«€" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "બાનà«àª¡àª¾" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "બામિલેકે ભાષાઓ" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "બષà«àª•િર" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "બલà«àªšàª¿" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "બમબારા" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "બાલિનેàª" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "બાસà«àª•" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "બાસા" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "બાલà«àªŸàª¿àª• (અનà«àª¯)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "બેજા" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "બેલારà«àª¶àª¿àª¯àª¨" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "બેમà«àª¬àª¾" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "બેંગાલી" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "બેરà«àª¬à«‡àª° (અનà«àª¯)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "ભોજપૂરી" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "બિહારી" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "બિકોલ" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "બિનિ" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "બિસલામા" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "સિકસિકા" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "બાનà«àªŸà« (અનà«àª¯)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "બોસà«àª¨àª¿àª¯àª¨" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "બà«àª°àªœ" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "બà«àª°à«‡àªŸàª¨" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "બટક (ઇનà«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¾)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "બરિયટ" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "બà«àª—િનેàª" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "બલà«àª—ેરિયન" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "બરમિàª" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "બà«àª²àª¿àª¨" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "કેડà«àª¡à«‹" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "સેનà«àªŸàª² અમેરિકન ઇનà«àª¡àª¿àª¯àª¨ (અનà«àª¯)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "કેરિબ" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "કેટાલન" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "કૌકાસિયન (અનà«àª¯)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "સેબà«àª†àª¨à«‹" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "સેલટિક (અનà«àª¯)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "ચામોરો" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "ચિબà«àªšàª¾" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ચેચન" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ચગાટાઇ" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "ચાઈનિàª" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ચà«àª•ેસે" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "મારી" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ચિનà«àª• જારà«àª—ન" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "ચોકà«àªŸàª¾àª“" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ચિપેવà«àª¯àª¾àª¨" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "ચેરોકી" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "ચરà«àªš સà«àª²àª¾àªµàª¿àª•" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ચà«àªµàª¾àª¸" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "ચેયનà«àª¨à«‡" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ચામિક ભાષાઓ" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "કોપà«àªŸàª¿àª•" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "કોરà«àª¨àª¿àª¶" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "કોરà«àª¶àª¿àª¯àª¨" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "કà«àª°à«‡àª“લેસ અને પિડગિનà«àª¸, અંગà«àª°à«‡àªœà«€-આધારિત (અનà«àª¯)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "કà«àª°à«‡àª“લેસ અને પિડગિનà«àª¸, ફà«àª°à«‡àª¨à«àªš-આધારિત (અનà«àª¯)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "કà«àª°à«‡àª“લેસ અને પિડગિનà«àª¸, પોરà«àªŸà«àª—ેàª-આધારિત (અનà«àª¯)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "કà«àª°à«€" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "કà«àª°àª¿àª®àª¿àª¨ ટટાર" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "કà«àª°à«‡àª“લેસ અને પિડગિનà«àª¸ (અનà«àª¯)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "કશà«àª¬àª¿àª¯àª¨" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "કà«àª¶àª¿àªŸàª¿àª• (અનà«àª¯)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ચેàª" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "ડેકોટા" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ડેનિશ" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "ડરà«àª—વા" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ડાયક" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "ડેલવારે" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "સà«àª²à«‡àªµ (અથાપાસà«àª•ેન)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ડોગà«àª°àª¿àª¬" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ડિનà«àª•ા" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "ડિવેહી" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "ડોગરી" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ડà«àª°àªµàª¿àª¡àª¿àª¯àª¨ (અનà«àª¯)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "લોવર સોરà«àª¬àª¿àª¯àª¨" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "ડૌલા" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "ડચ, મધà«àª¯ (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ડચ" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "ડà«àª¯à«àª²àª¾" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "ડà«àªà«‹àª¨àª˜àª¾" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "àªàª«àª¿àª•" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ઇજિપà«àªŸàª¿àª¯àª¨ (પà«àª°àª¾àªšà«€àª¨)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "àªàª•ાજà«àª•" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "àªàª²àª¾àª®àª¾àª‡àªŸ" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "અંગà«àª°à«‡àªœà«€" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "અંગà«àª°à«‡àªœà«€, મધà«àª¯ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "àªàª¸à«àªªàª°àª¾àª¨à«àªŸà«‹" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "àªàª¸à«àªŸà«‹àª¨àª¿àª¯àª¨" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "àªàªµ" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "àªàªµà«‹àª¨à«àª¡à«‹" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "ફેંગ" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ફારોઇàª" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ફનà«àªŸàª¿" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "ફિàªàª¿àª¯àª¨" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ફિલિપિનો" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ફિનિશ" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "ફિનà«àª¨à«‹-યà«àª—à«àª°à«€àª¯àª¨ (અનà«àª¯)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "ફોન" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ફà«àª°à«‡àª¨à«àªš" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "ફà«àª°à«‡àª¨à«àªš, મધà«àª¯ (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ફà«àª°à«‡àª¨à«àªš, જૂનà«àª‚ (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "ફà«àª°àª¿àª¸àª¿àª¯àª¨" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "ફà«àª²àª¾àª¹" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ફà«àª°àª¿àª¯à«àª²àª¿àª¯àª¨" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ગા" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "ગાયો" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ગબાયા" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "જરà«àª®à«‡àª¨àª¿àª• (અનà«àª¯)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "જà«àª¯à«‹àª°à«àªœàª¿àª¯àª¨" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "જરà«àª®àª¨" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ગીàª" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "ગીલબરà«àªŸà«‡àª" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ગાયેલિક" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "આઇરિશ" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ગાલિસિયન" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "મેંકà«àª·" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "જરà«àª®àª¨, મધà«àª¯ ઊંચà«àª‚ (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "જરà«àª®àª¨, જૂનà«àª‚ ઊંચà«àª‚ (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "ગોનà«àª¡à«€" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "ગોરોનટાલો" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ગોથિક" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "ગà«àª°à«‡àª¬à«‹" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "ગà«àª°à«€àª•, પà«àª°àª¾àªšà«€àª¨ (to 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "ગà«àª°à«€àª•, આધà«àª¨àª¿àª• (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "ગૌરાની" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "ગà«àªœàª°àª¾àª¤à«€" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "ગà«àªµàª¿àªš'ઇન" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "હૈડા" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "હૈશિયન" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "હૌસા" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "હવાઇન" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "હેબà«àª°à«‚" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "હેરેરો" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "હિલિગયનોન" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "હિમાચલિ" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "હિંદી" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "હિટીટે" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "હમોંગ" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "હિરિ મોટà«" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "અપર સોરà«àª¬àª¿àª¯àª¨" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "હંગેરિયન" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "હà«àªªàª¾" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ઇબાન" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "ઇગà«àª¬à«‹" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "આઇસલેનà«àª¡àª¿àª•" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ઇડો" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "સિચà«àª¯àª¨ યિ" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ઇજો" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "ઇનà«àª•à«àªŸàª¿àªŸàªŸ" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "ઇનà«àªŸàª°àª²àª¿àª‚ગà«àª¯à«" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "ઇલોકો" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "ઇનà«àªŸàª°àª²àª¿àª‚ગà«àª¯à«àª† (ઇનà«àªŸàª°àª¨à«‡àª¶àª¨àª² ઓકà«àªàª¿àª²àª°à«€ લેંગà«àªµà«‡àªœ àªàª¸à«‹àª¸àª¿àª¯à«‡àª¶àª¨)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ઇનà«àª¡àª¿àª• (અનà«àª¯)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ઇનà«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¨" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "ઇનà«àª¡à«‹-યà«àª°à«‹àªªàª¿àª¯àª¨ (અનà«àª¯)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ઇનગà«àª¯à«àª¶" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "ઇનà«àªªàª¿àª•" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ઇરાનિયન (અનà«àª¯)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "આઇરોકà«àªµà«‹àª¯àª¨ ભાષાઓ" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ઇટાલિયન" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "જાવાનિàª" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "લોજબાન" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "જાપાનિàª" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "જà«àª¯à«àª¡à«‡àª“-પરà«àª¸àª¿àª¯àª¨" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "જà«àª¯à«àª¡à«‡àª“-અરેબિક" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "કારા-કલà«àªªàª•" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "કબયà«àª²à«‡" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "કચિન" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "કલાલિસટ" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "કમà«àª¬àª¾" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "કનà«àª¨àª¡àª¾" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "કરેન" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "કાશà«àª®à«€àª°à«€" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "કનૌરી" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "કાવિ" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "કàªàª¾àª•" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "કબારà«àª¡àª¿àª¯àª¨" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "ખાસિ" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "ખોઇસન (અનà«àª¯)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ખેમર" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "ખોટેનિàª" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "કિકà«àª¯à«" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "કિનયરવાનà«àª¡àª¾" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "કિરàªàª¿àª" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "કિમબà«àª‚ડà«àª‚" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "કોંકણી" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "કોમિ" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "કોંગો" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "કોરિયન" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "કોસà«àª°à«‡àª¯àª¿àª¨" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "કà«àªªà«‡àª²à«‡" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "કરાચય-બલà«àª•ર" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "કà«àª°à«‚" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "કà«àª°à«àª–" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "કૌનયામા" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "કà«àª®àª¯à«àª•" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "કà«àª°à«àª¦àª¿àª¶" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "કà«àªŸà«‡àª¨àª¾àª‡" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "લાડિનો" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "લાહà«àª¨à«àª¡àª¾" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "લામà«àª¬àª¾" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "લાઑ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "લેટિન" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "લેટવિયન" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "લેàªàª˜àª¿àª¯àª¨" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "લિમà«àª¬àª°à«àª—ન" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "લિંગાલા" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "લિથà«àª†àª¨àª¿àª¯àª¨" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "મોંગો" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "લોàªàª¿" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "લકàªà«‡àª®àª¬àª°à«àª—િશ" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "લà«àª¬àª¾-લà«àª²à«àª¯à«àª†" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "લà«àª¬àª¾-કટનગા" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ગાનà«àª¡àª¾" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "લà«àª¯à«àª‡àª¸à«‡àª¨à«‹" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "લà«àª¨à«àª¡àª¾" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "લà«àª“ (કેનà«àª¯àª¾ અને ટાનà«àªàª¾àª¨àª¿àª¯àª¾)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "લà«àª¶àª¾àª‡" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "મેસેડોનિયન" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "મડà«àª°àª¿àª" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "મગાહિ" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "મારà«àª¶à«‡àª²àª¿àª" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "મૈથિલિ" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "મકાસાર" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "મલયાલમ" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "મંડિંગો" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "માઓરી" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ઓસà«àªŸà«àª°à«‹àª¨à«‡àª¸àª¿àª¯àª¨ (અનà«àª¯)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "મરાઠી" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "મસાઇ" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "મલય" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "મોકà«àª·àª¾" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "મંડર" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "મેનà«àª¡à«‡" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "આઈરિશ, મધà«àª¯ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "મિ-કà«àª®àª•" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "મિનંગકબાઉ" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "મિશà«àª° ભાષાઓ" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "મોન-ખેમર (અનà«àª¯)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "મલાગà«àª¸à«‡" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "મોલà«àªŸàª¿àª" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "મંચà«" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "મનિપà«àª°à«€" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "મનોબો ભાષાઓ" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "મોહાક" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "મોલà«àª¡àª¾àªµàª¿àª¯àª¨" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "મોંગોલિયન" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "મોસિ" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "બહà«àªµàª¿àª§ ભાષાઓ" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "મà«àª‚ડા ભાષાઓ" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "કà«àª°àª¿àª•" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "મિરાંડેàª" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "મારવારી" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "માયન ભાષાઓ" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "àªàª°à«àªàª¾àª¯àª¾" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "નહà«àª†àªŸà«àª²à«‡" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "નોરà«àª¥ અમેરિકન ઇનà«àª¡àª¿àª¯àª¨" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "નેપોલિટન" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "નવાજો" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "નà«àª¡à«‡àª¬à«‡àª²à«‡, સાઉથ" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "નà«àª¡à«‡àª¬à«‡àª²à«‡, નોરà«àª¥" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "નà«àª¡à«‹àª¨àª—ા" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "લો જરà«àª®àª¨" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "નેપાલી" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "નેપાલ ભાષા" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "નિયાસ" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "નાઇજર-કોરà«àª¡à«‹àª«à«‡àª¨àª¿àª¯àª¨ (અનà«àª¯)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "નિયà«àªàª¨" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "નોરà«àªµà«‡àªœàª¿àª¯àª¨ નà«àª¯àª¨à«‹àª°à«àª¸à«àª•ે" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "નોરà«àªµà«‡àªœàª¿àª¯àª¨ બોકમલ" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "નોગાઈ" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "નોરà«àª¸à«‡, જૂનà«àª‚" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "નોરà«àªµà«‡àªœàª¿àª¯àª¨" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "નોરà«àª§àª¨ સોથો" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "નà«àª¯à«àª¬àª¿àª¯àª¨ ભાષાઓ" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "કà«àª²àª¾àª¸àª¿àª•લ નેવારી" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "ચિચેવા" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "નà«àª¯àª¾àª®àªµà«‡àªàª¿" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "નà«àª¯àª¾àª¨àª•ોલે" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "નà«àª¯à«‹àª°à«‹" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "નà«àªàª¿àª®àª¾" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ઓસિટન (પોસà«àªŸ 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "ઓજિબà«àªµàª¾" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "ઓરિયા" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "ઓરોમો" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ઓસેજ" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ઓસેટિયઅન" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "ટરà«àª•િસ, ઓટોમન (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ઓટોમિયન ભાષાઓ" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "પેપà«àª¯àª¨ (અનà«àª¯)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "પેનà«àª—ાસિનન" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "પહલાવિ" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "પમપાનà«àª—ા" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "પંજાબી" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "પપિયામેનà«àªŸà«‹" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "પલાઉન" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "પરà«àª¸àª¿àª¯àª¨, જૂનà«àª‚ (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "પરà«àª¸àª¿àª¯àª¨" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ફિલિપાઇનà«àª¸ (અનà«àª¯)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ફોàªàª¨àª¿àª¸àª¿àª¯àª¨" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "પાલી" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "પોલિશ" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "પોહà«àª¨àªªà«‡àª‡àª¯àª¨" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "પોરà«àªŸà«àª—à«€àª" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "પà«àª°àª•à«àª°àª¿àª¤ ભાષાઓ" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "પà«àª°à«‹àªµà«‡àª¨à«àª•લ, જૂનà«àª‚ (to 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "પà«àª¶à«àª¤à«‹" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "કà«àªµà«‡àªšà«àª†" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "રાજસà«àª¥àª¾àª¨à«€" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "રપાનà«àª‡" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "રારોટોનà«àª—ન" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "રોમાનà«àª¸ (અનà«àª¯)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "રાàªàªŸà«‹-રોમાનà«àª¸" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "રોમાની" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "રોમાનિયન" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "રà«àª¨à«àª¡à«€" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "રસિયન" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "સેનà«àª¡àªµà«‡" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "સેનà«àª—à«‹" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "યાકà«àªŸ" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "સાઉથ અમેરિકન ઇનà«àª¡àª¿àª¯àª¨ (અનà«àª¯)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "સાલિશન ભાષાઓ" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "સમારિટન અરામેઇક" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "સંસà«àª•à«àª°àª¿àª¤" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "સસક" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "સનતાલિ" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "સરà«àª¬àª¿àª¯àª¨" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "સિસિલિયન" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "સà«àª•ોટà«àª¸" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "કà«àª°à«‹àªàª¶àª¿àª¯àª¨" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "સેલકપ" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "સેમિટિક (અનà«àª¯)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "આઇરિશ, જૂનà«àª‚ (to 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "સાઇન ભાષાઓ" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "શાન" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "સિદામો" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "સિંહાલા" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "સિયà«àª…ન ભાષાઓ" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "સિનો-ટિબેટિયન (અનà«àª¯)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "સà«àª²à«‡àªµàª¿àª• (અનà«àª¯)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "સà«àª²à«‹àªµà«‡àª•" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "સà«àª²à«‹àªµà«‡àª¨àª¿àª¯àª¨" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "સાઉધરà«àª¨ સામિ" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "નોરà«àª§àª°à«àª¨ સામિ" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "સામિ ભાષાઓ (અનà«àª¯)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "લà«àª²à«‡ સામિ" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "ઇનારિ સામિ" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "સામોઅન" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "સà«àª•ોલà«àªŸ સામિ" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "શોના" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "સિંધી" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "સોનિનકે" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "સોગડિયન" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "સોમાલિ" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "સોંઘાઈ" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "સોથો, સાઉધરà«àª¨" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "સà«àªªà«‡àª¨àª¿àª¶" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "સરà«àª¦àª¿àª¨àª¿àª¯àª¨" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "સેરેર" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "નિલો-સહારન (અનà«àª¯)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "સà«àªµàª¾àª¤àª¿" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "સà«àª•à«àª®àª¾" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "સનડેનેàª" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "સà«àª¸à«" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "સà«àª®à«‡àª°àª¿àª¯àª¨" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "સà«àªµàª¾àª¹àª¿àª²àª¿" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "સà«àªµà«‡àª¡àª¿àª¶" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "સાઇરિàªàª•" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "તાહિશિયન" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "તાઇ (અનà«àª¯)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "તામિલ" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "તાતાર" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "તેલà«àª—à«" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "ટિમà«àª¨à«‡" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "ટેરેનો" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "તેટà«àª®" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "તાજિક" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "તાગાલોગ" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "થાઇ" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ટિબેટન" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "ટાઇગà«àª°à«‡" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ટાઇગà«àª°à«€àª¨à«àª¯àª¾" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "ટિવ" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "કà«àª²àª¿àª‚ગોન" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "ટà«àª²àª¿àª¨àª—િટ" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "ટામાશેક" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "ટોંગા (નà«àª¯àª¾àª¸àª¾)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "ટોંગા (ટોંગા આઇસલેનà«àª¡à«àª¸)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "ટોક પિસિન" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "તà«àª¸àª¿àª®àª¶àª¿àª¯àª¨" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "તà«àª¸à«àªµàª¾àª¨àª¾" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "તà«àª¸à«‹àª¨àª—ા" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ટરà«àª•મેન" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "ટà«àª®àª¬à«àª•ા" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "ટà«àªªàª¿ ભાષાઓ" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ટરà«àª•િશ" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "અલà«àªŸàª¾àª‡àª• (અનà«àª¯)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "ટà«àªµàª¿" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ટà«àªµàª¿àª¨àª¿àª¯àª¨" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "ઉડમà«àª°à«àªŸ" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "યà«àª—ારિટિક" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "યà«àª‡àª˜à«àª°" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "યà«àª•à«àª°à«‡àª‡àª¨àª¿àª¯àª¨" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "ઉમબà«àª¨à«àª¦à«" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "અનિશà«àªšàª¿àª¤" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "ઊરà«àª¦à«‚" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "ઉàªàª¬à«‡àª•" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "વાઈ" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "વેનà«àª¡àª¾" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "વિàªàªŸàª¨àª¾àª®àª¿àª" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "વોલાપà«àª•" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "વોટિક" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "વોકાશન ભાષાઓ" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "વાલામો" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "વારે" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "વાશો" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "વેલà«àª¶" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "સોરાબિયન ભાષાઓ" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "વલà«àª¨" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "વોલોફ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "કલમà«àª¯àª•" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "કà«àªà«‹àª¸àª¾" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "યોઆ" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "યાપેàª" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "યિડà«àª¡àª¿àª¶" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "યોરà«àª¬àª¾" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "યà«àªªàª¿àª• ભાષાઓ" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "àªàª¾àªªà«‹àªŸà«‡àª•" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "àªà«‡àª¨à«‡àª—ા" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "àªà«àª†àª‚ગ" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "àªàª‚ડે" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "àªà«àª²à«" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "àªà«àª¨àª¿" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' અસà«àª¤àª¿àª¤à«àªµ ધરાવતી નથી." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' અસà«àª¤àª¿àª¤à«àªµ ધરાવતી નથી." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "VM નà«àª‚ નામ આંકડાથી શરૂ થઇ શકે નહીં." #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "VM નà«àª‚ નામ આંકડાથી શરૂ થઇ શકે નહીં." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "લખવા માટે ફાઇલ ખોલી શકાતી નથી." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "%s ડેસà«àª•ટોપ આઈટમ ખોલી શકાશે નહીં" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "ડિરેકà«àªŸàª°à«€ %1 બનાવી શકાતી નથી: %2." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ફà«àª²à«‹àªªà«€ ડિસà«àª•માંથી વાંચવામાં ભૂલ." #: zypp/RepoManager.cc:1620 #, fuzzy, c-format, boost-format msgid "Adding repository '%s'" msgstr "સાધનો ઉમેરાય છે" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "àªàª•à«àª¸àªªà«‹àª°à«àªŸ ફાઈલ નà«àª‚ નામ અમાનà«àª¯ છે." #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "સાધનો ઉમેરાય છે" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "%s ડેસà«àª•ટોપ આઈટમ ખોલી શકાશે નહીં" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "અમાનà«àª¯ LDAP URL કà«àªµà«‡àª°àª¿ સà«àªŸà«àª°à«€àª‚ગ" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "અમાનà«àª¯ LDAP URL કà«àªµà«‡àª°àª¿ પારમિતિ '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Url વસà«àª¤à«àª¨à«‡ કà«àª²à«‹àª¨ કરવામાં અકà«àª·àª®" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "અમાનà«àª¯ ખાલી Url વસà«àª¤à« સંદરà«àª­" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Url ઘટકોને પારà«àª¸ કરવામાં અકà«àª·àª®" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "અપરિચિત" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "ડિસà«àª• અસà«àª¤àª¿àª¤à«àªµ ધરાવતી નથી." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "XF86History " #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "ફાઈલ ખà«àª²à«€ શકતી નથી: %1." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "અજાણà«àª¯à«‹ કમાનà«àª¡" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "અમાનà«àª¯ Url યોજના '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "ખà«àª²à«€ શકà«àª¤à«àª‚ નથી %s - %s\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "મોડà«àª¯à«‚લ \"%s\" લોડ કરવામાં નિષà«àª«àª³." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "રિપોસીટરીમાં ફાઈલ %1 મળી નહીં." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "ફાઈલ પર લખાઈ શકાતà«àª‚ નથી: %1." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 ડિરેકà«àªŸàª°à«€ નથી." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "CA નામ ખાલી છે." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "URL સà«àª•ીમ '%1' અમાનà«àª¯" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "%s ડેસà«àª•ટોપ આઈટમ ખોલી શકાશે નહીં" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr " મંજૂરીઓ નકારાઇ " #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "%s પેકેજ પૂરà«àª£àª¤àª¾ ચકાસણીમાં નિષà«àª«àª³ ગઇ છે. તમે તે ફરીથી ડાઉનલોડ કરવાનો પà«àª°àª¯àª¤à«àª¨ કરવા માંગો " "છો?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "%s પેકેજ પૂરà«àª£àª¤àª¾ ચકાસણીમાં નિષà«àª«àª³ ગઇ છે. તમે તે ફરીથી ડાઉનલોડ કરવાનો પà«àª°àª¯àª¤à«àª¨ કરવા માંગો " "છો?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm ચકાસણી કરવામાં નિષà«àª«àª³." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm નિષà«àª«àª³." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "સાધન પà«àª°àª•ાર VAR1 ફેરફાર-બતાવો ફિચર ને આધાર આપતા નથી" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "%s માંથી %s પૂરà«àª‚ પાડી શકાતà«àª‚ નથી" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "રિપોસીટરીમાં ફાઈલ %1 મળી નહીં." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "ફાઈલ બનાવી શકાતી નથી." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "આ જરૂરિયાત અહીં માતà«àª° અવગણો" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "આ જરૂરિયાત અહીં માતà«àª° અવગણો" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતેની પાસે બીજી સંરચના છે." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "પેકેજીસનà«àª‚ સà«àª¥àª¾àªªàª¨ દૂર કરવાનો આદેશ" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "ને જોડાણ માટે વિનંતી કરો:" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "પરાધિનતા મૂશà«àª•ેલીઓને કારણે %s સà«àª¥àª¾àªªàª¿ શકાયà«àª‚ નથી" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "%s કોઇ આપતà«àª‚ નથી" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "ડિસà«àª• અસà«àª¤àª¿àª¤à«àªµ ધરાવતી નથી." #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s લોક છે અને અસà«àª¥àª¾àªªàª¿àª¤ થઇ શકશે નહીં" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "સà«àª¥àª¾àªªà«‡àª² નથી" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«àª‚" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s સà«àª¥àª¾àªªàª¿ શકાશે નહીં" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s, %s સાથે વિસંગત છે" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s અલગ પાડવà«àª‚ %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s અલગ પાડવà«àª‚ %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s, %s સાથે વિસંગત છે" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "%s કોઇ આપતà«àª‚ નથી" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "%s ના કોઇ સà«àª¥àª¾àªªàªµàª¾àª¨à«àª‚ પૂરà«àª‚ પાડનાર નથી" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "%s ના કોઇ સà«àª¥àª¾àªªàªµàª¾àª¨à«àª‚ પૂરà«àª‚ પાડનાર નથી" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s સà«àª¥àª¾àªªàª¶à«‹ નહીં" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s રાખો" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "%s સà«àª¥àª¾àªªàª¶à«‹ નહીં" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "રિકà«àªµà«‡àª¸à«àªŸ અસà«àª¤àª¿àª¤à«àªµàª®àª¾àª‚ છે જ." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%s ના કોઇ સà«àª¥àª¾àªªàªµàª¾àª¨à«àª‚ પૂરà«àª‚ પાડનાર નથી" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "સંબંધિત રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ સà«àª¥àª¾àªªà«‹ કે કાઢો નહીં" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતેની પાસે બીજી સંરચના છે." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s સà«àª¥àª¾àªªà«‹ જો કે તે સંરચના બદલી શકે" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s અલગ પાડવà«àª‚ %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%s માંથી %s ડાઉનલોડ થયà«àª‚" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "સà«àª¥àª¾àªªàª¨" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "ચલાવો" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "કી àªàª¨à«àª•à«àª°à«€àªªà«àªŸàª¶àª¨ દરમિયાન ભૂલ." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "સૂચના પà«àª°àª®àª¾àª£à«‡ સà«àª¥àª¾àªªàª¨ અટકાવેલà«àª‚ હતà«àª‚." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext જોડાયેલ નથી" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive નો પà«àª°àª¾àª°àª‚ભ થઇ શકà«àª¯à«‹ નથી" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume નો પà«àª°àª¾àª°àª‚ભ થઇ શકà«àª¯à«‹ નથી" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus જોડાણ રચવામાં અકà«àª·àª®" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: libhal સંદરà«àª­ રચાઇ શકà«àª¯à«àª‚ નથી" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: dbus જોડાણ સેટ થઇ શકà«àª¯à«àª‚ નથી" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL સંદરà«àª­ પà«àª°àª¾àª°àª‚ભ કરવામાં અકà«àª·àª® -- હેલà«àª¡ ચાલતà«àª‚ નથી?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "સીડીરોમ ડà«àª°àª¾àª‡àªµ નથી" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "નિષà«àª«àª³ થયà«àª‚" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s માટે કનà«àª«àª¿àª—à«àª¯à«àª°à«‡àª¶àª¨ ફાઈલો બદલાઇ:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "%s તરીકે rpm ઠ%s સાચવà«àª¯à«àª‚ પરંતૠતફાવત જà«àª¦à«‹ પાડવા તે અશકà«àª¯ હતà«àª‚" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "%s તરીકે rpm ઠ%s સાચવà«àª¯à«àª‚.\n" "અહીં તફાવતોના પà«àª°àª¥àª® 25 લાઇનો છે: \n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "%s તરીકે rpm ઠ%s રચà«àª¯à«àª‚ પરંતૠતફાવત જà«àª¦à«‹ પાડવા તેઅશકà«àª¯ હતà«àª‚" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "%s તરીકે rpm ઠ%s રચà«àª¯à«àª‚.\n" "અહીં તફાવતોના પà«àª°àª¥àª® 25 લાઇનો છે:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "વધારાનà«àª‚ rpm આઉટપà«àªŸ:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "%s નà«àª‚ બેકઅપ રચાયà«àª‚" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "àªàª¨à«àªŸà«àª°à«€ મળી નહીં." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "àªàª¨à«àªŸà«àª°à«€ મળી નહીં." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "àªàª¨à«àªŸà«àª°à«€ મળી નહીં." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "મà«àª¯à«‚ટેકà«àª· ગà«àª£àª§àª°à«àª® શરૂ કરી શકાયો નથી" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "રિકરà«àª¸àª¿àªµ મà«àª¯à«‚ટેકà«àª· ગà«àª£àª§àª°à«àª® સેટ કરી શકાયો નથી" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "રિકરà«àª¸àª¿àªµ મà«àª¯à«‚ટેકà«àª· શરૂ કરી શકાયો નથી" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "મà«àª¯à«‚ટેકà«àª· લોક સંપાદિત કરી શકાયો નથી" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "મà«àª¯à«‚ટેકà«àª· લોક છોડી શકાયà«àª‚ નથી" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url યોજના %s ને મંજૂરી આપતી નથી" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "અમાનà«àª¯ %s ઘટક '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "અમાનà«àª¯ %s ઘટક" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "આ URL માટે કà«àªµà«‡àª°àª¿ સà«àªŸà«àª°à«€àª‚ગ પારà«àª¸àª¿àª‚ગ સહાયિત નથી" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url યોજનાને ઘટક જરૂરી છે" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "અમાનà«àª¯ Url યોજના '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url યોજના વપરાશકરà«àª¤àª¾àª¨à«‡ મંજૂરી આપતà«àª‚ નથી" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url યોજના પાસવરà«àª¡àª¨à«‡ મંજૂરી આપતà«àª‚ નથી" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url યોજનાને હોસà«àªŸ ઘટક જરૂરી છે" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url યોજના હોસà«àªŸ ઘટકને મંજૂરી આપતà«àª‚ નથી" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "અમાનà«àª¯ હોસà«àªŸ ઘટક '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url યોજનાને પોરà«àªŸàª¨à«‡ મંજૂરી આપતà«àª‚ નથી" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "અમાનà«àª¯ પોરà«àªŸ ઘટક '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url યોજનાને મારà«àª— નામ જરૂરી છે" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "હો અધિકૃતિ હાજર હોય તો રિલેટિવ મારà«àª—ની મંજૂરી નથી" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "àªàª¨àª•ોડેડ સà«àªŸà«àª°à«€àª‚ગમાં NUL બાઇટ સમાવિષà«àªŸ છે" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "અમાનà«àª¯ પારમિતિ àªàª°à«‡ સà«àªªà«àª²àª¿àªŸ સેપરેટર કેરેકà«àªŸàª°" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "અમાનà«àª¯ પારમિતિ મેપ સà«àªªà«àª²àª¿àªŸ સેપરેટર કેરેકà«àªŸàª°" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "અમાનà«àª¯ પારમિતિ àªàª°à«‡ જોઇન સà«àªªà«àª²àª¿àªŸ સેપરેટર કેરેકà«àªŸàª°" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "પબà«àª²à«€àª• કી લાવી શકાતી નથી." #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "સà«àª¥àª¾àªªà«‡àª² નથી" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "ખà«àª²à«€ શકà«àª¤à«àª‚ નથી %s - %s\n" #~ msgid "Serbia and Montenegro" #~ msgstr "સેરબિયા અને મોનà«àªŸà«‡àª¨à«‡àª—à«àª°à«‹" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "અજાણà«àª¯à«€ યાદી વિકલà«àªª" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "આશà«àª°àª¿àª¤à«‹àª¨à«‡ રિàªà«‹àª²à«àªµ કરી શકાયા નહીં" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ફાઇલ પાસે ચેકસમ નથી.\n" #~ "કોઇ પણ રીતે ફાઇલ વાપરવી છે?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ફાઈલ નીચેની કળ સાથે પૂરà«àª£àª¤àª¾ ચકાસણીમાં નિષà«àª«àª³ ગઇ છે :\n" #~ "%s|%s|%s\n" #~ "કોઇ પણ રીતે ફાઇલ વાપરવી છે?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ફાઇલ પાસે અમાનà«àª¯ ચેકસમ છે.\n" #~ "%s ની સંભાવના હતી, %s મળી \n" #~ "કોઇ પણ રીતે ફાઇલ વાપરવી છે?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s ફાઇલ પાસે અજાણà«àª¯à«àª‚ %s ચેકસમ છે.\n" #~ "કોઇ પણ રીતે ફાઇલ વાપરવી છે?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "%s ફાઈલ સહી કરેલી નથી \n" #~ "કોઇ પણ રીતે તે વાપરવી છે?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s અજાણી કળ સાથે સહી કરેલી છે :\n" #~ "%s|%s|%s\n" #~ "કોઇ પણ રીતે ફાઇલ વાપરવી છે??" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "અવિશà«àªµàª¸àª¨à«€àª¯ કળ શોધાઇ છે:\n" #~ "%s|%s|%s\n" #~ "કળ પર વિશà«àªµàª¾àª¸ કરવો છે?" #~ msgid "%s remove failed" #~ msgstr "%s ને દૂર કરવામાં નિષà«àª«àª³" #~ msgid "rpm output:" #~ msgstr "rpm આઉટપà«àªŸ:" #~ msgid "%s install failed" #~ msgstr "%s નà«àª‚ સà«àª¥àª¾àªªàª¨ નિષà«àª«àª³" #~ msgid "%s installed ok" #~ msgstr "%s નà«àª‚ સà«àª¥àª¾àªªàª¨ બરાબર" #~ msgid "%s remove ok" #~ msgstr "%s ને દૂર કરવામાં બરાબર" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "%s આ પરાધિનતા પૂરી પાડે છે પરંતૠસà«àª¥àª¾àªªà«‡àª² બાબતનીસંરચના કદાચ બદલી શકે" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "%s આ પરાધિનતા પૂરી પાડે છે પરંતૠસà«àª¥àª¾àªªà«‡àª² બાબતનીસંરચના કદાચ બદલી શકે" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "સંબંધિત રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ સà«àª¥àª¾àªªà«‹ કે કાઢો નહીં" #~ msgid "Ignore that %s is already set to install" #~ msgstr "પહેલેથી સà«àª¥àª¾àªªàªµàª¾ સેટ કરેલ તે %s અવગણો" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%s માં અલગ પાડેલા %s ને અવગણો" #~ msgid "Ignore this conflict of %s" #~ msgstr "%s ની આ વિસંગતતા અવગણો" #~ msgid "Ignore this requirement just here" #~ msgstr "આ જરૂરિયાત અહીં માતà«àª° અવગણો" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "%s સà«àª¥àª¾àªªà«‹ જો કે તે સંરચના બદલી શકે" #~ msgid "Install missing resolvables" #~ msgstr "છૂટી ગયેલા રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ સà«àª¥àª¾àªªà«‹" #~ msgid "Keep resolvables" #~ msgstr "રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ રાખો" #~ msgid "Unlock these resolvables" #~ msgstr "આ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ અનલોક કરો" #~ msgid "delete %s" #~ msgstr "%s કાઢી નાખો" #~ msgid "install %s" #~ msgstr "%s સà«àª¥àª¾àªªà«‹" #~ msgid "unlock %s" #~ msgstr "%s ને અનલોક કરો" #~ msgid "unlock all resolvables" #~ msgstr "બધા રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ અનલોક કરો" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "ફાઈલ ખà«àª²à«€ શકતી નથી: %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "%u સેકટર વાંચતી વખતે ભૂલ." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "આ URL માટે મારà«àª— પારમિતિ પારà«àª¸àª¿àª‚ગ સહાયિત નથી" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "આ URL માટે મારà«àª— પારમિતિ પારà«àª¸àª¿àª‚ગ સહાયિત નથી" #~ msgid "Software management is already running." #~ msgstr "સોફà«àªŸàªµà«‡àª° મેનેજમેનà«àªŸ પહેલેથી ચાલૠછે" #~ msgid "%s is replaced by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s ની જગà«àª¯àª¾àª મà«àª•યà«àª‚" #~ msgid "%s replaced by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s ની જગà«àª¯àª¾àª મà«àª•ાયà«àª‚" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "આ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ સિસà«àªŸàª®àª®àª¾àª‚થી કાઢી નાખવામાં આવશે." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s અસà«àª¥àª¾àªªàª¿àª¤ થશે નહીં કારણકે તે હજૠજરૂરી છે" #~ msgid "Invalid information" #~ msgstr "અમાનà«àª¯ માહિતી" #~ msgid "%s is needed by other resolvables" #~ msgstr "અનà«àª¯ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«àª‚" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s, અનà«àª¯ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ સાથે વિસંગત છે" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s આની સાથે વિસંગત છે :\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s અનà«àª¯ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ અલગ પાડે છે" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "આ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ સિસà«àªŸàª®àª®àª¾àª‚થી કાઢી નાખવામાં આવશે." #~ msgid "%s depends on other resolvables" #~ msgstr "%s અનà«àª¯ રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ પર આધાર રાખે છે" #~ msgid "%s depends on %s" #~ msgstr "%s, %s પર આધાર રાખે છે" #~ msgid "%s depends on:%s" #~ msgstr "%s પર આધાર રાખે છે : %s" #~ msgid "Child of" #~ msgstr "નà«àª‚ ચાઇલà«àª¡" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "કોઇ સà«àª¤à«àª°à«‹àª¤ પà«àª°àª¾àªªà«àª¯ નથી જે આ જરૂરિયાતને સહાય કરે." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "આ રિàªà«‹àª²à«àª¯à«àª¶àª¨àª¨à«€ ઉપર/નીચે દરà«àª¶àª¾àªµà«‡àª² બાકી નિકળતી મૂશà«àª•ેલીઓ બધી પરાધિનતાઓનો ઉકેલલાવી " #~ "શકશે નહીં" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s સà«àª¥àª¾àªªàª¿ શકાશે નહીં કારણકે તે %s સાથે વિસંગત છે" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s સà«àª¥àªªàª¾àª¯à«àª‚ નથી અને અસà«àª¥àª¾àªªàª¨ તરીકે ચિહિત કરà«àª¯à«àª‚ હતà«àª‚" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s પાસે અપૂરà«àª£ જરૂરિયાતો છે" #~ msgid "%s has missing dependencies" #~ msgstr "%s પાસે છૂટી ગયેલી પરાધિનતા છે" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "છૂટી ગયેલી પરાધિનતાને કારણે %s સà«àª¥àª¾àªªàª¿ શકાયà«àª‚ નથી" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s, %s ની પરાધિનતા પૂરà«àª£ કરે છે પરંતૠતે અસà«àª¥àª¾àªªàª¿àª¤ કરાશે" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s, %s ની પરાધિનતા પૂરà«àª£ કરે છે પરંતૠતે તમારા સિસà«àªŸàª® પર રાખશે" #~ msgid "No need to install %s" #~ msgstr "%s સà«àª¥àª¾àªªàªµàª¾àª¨à«€ જરૂર નથી" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "%s ની પરાધિનતા પૂરà«àª£ કરવા %s સà«àª¥àª¾àªªà«€ શકશે નહીં" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "%s ની પરાધિનતા પૂરà«àª£ કરવા %s સà«àª¥àª¾àªªà«€ શકશે નહીં" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s અસà«àª¥àª¾àªªàª¿àª¤ થશે નહીં કારણકે તે હજૠજરૂરી છે" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s અલગ પાડવà«àª‚ %s. પરંતૠ%s કાઢી શકાશે નહીં કારણકે તે લોક કરેલà«àª‚ છે." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s સà«àª¥àª¾àªªàª¿àª¤ કરી શકાશે નહીં કારણકે તે વિસંગત છે" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s સાથે વિસંગત હોવાથી %s અસà«àª¥àª¾àªªàª¿àª¤ છે" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "જà«àª¯àª¾àª°à«‡ %s અદà«àª¯àª¤àª¨ કરતા હોવ તà«àª¯àª¾àª°à«‡ %s માટે %s જરૂરી છે" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s, %s જરૂરિયાત માટે છૂટી ગયેલ છે" #~ msgid ", Action: " #~ msgstr ", કારà«àª¯ :" #~ msgid ", Trigger: " #~ msgstr ", ટà«àª°à«€àª—ર :" #~ msgid "package" #~ msgstr "પેકેજ" #~ msgid "selection" #~ msgstr "પસંદગી" #~ msgid "pattern" #~ msgstr "પેટરà«àª¨" #~ msgid "product" #~ msgstr "પà«àª°à«‹àª¡àª•à«àªŸ" #~ msgid "patch" #~ msgstr "પેચ" #~ msgid "script" #~ msgstr "સà«àª•à«àª°àª¿àªªà«àªŸ" #~ msgid "message" #~ msgstr "સંદેશ" #~ msgid "atom" #~ msgstr "àªàªŸàª®" #~ msgid "system" #~ msgstr "સિસà«àªŸàª®" #~ msgid "Resolvable" #~ msgstr "રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "આ ઠરાવ પà«àª°àª¯àª¤à«àª¨ અમાનà«àª¯ તરીકે ચિહિત કરો" #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "%s રિàªà«‹àª²à«àªµà«‡àª¬àª²à«àª¸ અસà«àª¥àª¾àªªàª¿àª¤ તરીકે ચિહિત કરો" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "%s સà«àª¥àª¾àªªàªµàª¾ માટે નિયત છે, પરંતૠવિસંગત મૂશà«àª•ેલીઓનેકારણે આ શકà«àª¯ નથી." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "અસà«àª¥àª¾àªªàª¨ માટે જરૂરી છે તે રીતે પહેલેથી ચિહિત છે તà«àª¯àª¾àª‚ સà«àª§à«€ %s સà«àª¥àª¾àªªà«€ શકાશે નહીં" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "તે આ સિસà«àªŸàª® સાથે લાગૠપડતૠનથી તà«àª¯àª¾àª‚ સà«àª§à«€ %s સà«àª¥àª¾àªªà«€ શકાશે નહીં." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "સà«àª¥àª¾àªªàª¨ માટે જરૂરી છે તે રીતે %s પહેલેથી ચિહિત છે તà«àª¯àª¾àª‚ સà«àª§à«€ %s સà«àª¥àª¾àªªà«€àª¶àª•ાશે નહીં" #~ msgid "This would invalidate %s." #~ msgstr "આ %s ને અપà«àª·à«àªŸàª¿ કરી શકશે" #~ msgid "Establishing %s" #~ msgstr "%s સà«àª¥àªªàª¾àª‡ રહà«àª¯à«àª‚ છે" #~ msgid "Installing %s" #~ msgstr "%s સà«àª¥àª¾àªªàª¨ થઇ રહà«àª¯à«àª‚ છે" #~ msgid "Updating %s to %s" #~ msgstr "%s થી %s માં અદà«àª¯àª¤àª¨ થઇ રહà«àª¯à«àª‚ છે" #~ msgid "Skipping %s: already installed" #~ msgstr "%s છોડાઇ રહà«àª¯à«àª‚ છે : પહેલેથી સà«àª¥àª¾àªªàª¿àª¤ છે" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "%s ના કોઇ વૈકલà«àªªàª¿àª• સà«àª¥àª¾àªªàªµàª¾àª¨à«àª‚ પૂરà«àª‚ પાડનાર નથી" #~ msgid "for %s" #~ msgstr "%s માટે" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "%s ને અદà«àª¯àª¤àª¨ કરવા, %s દૂર કરવાનà«àª‚ ટાળવાનà«àª‚ શકà«àª¯ નથી" #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠઅસà«àª¥àª¾àªªàª¨ માટે નિયત છે." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતે %s ની અનà«àª¯ આવૃતિ પહેલેથી સà«àª¥àª¾àªªàª¿àª¤ છે." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતે અસà«àª¥àª¾àªªàª¿àª¤ છે. વધૠવિગતો માટે તે તેના પોતાના પર સà«àª¥àª¾àªªàªµàª¾àª¨à«‹ " #~ "પà«àª°àª¯àª¤à«àª¨ કરો." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતે લોક કરેલà«àª‚ છે." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતે રાખવા માટે નિયત કરાયેલà«àª‚ છે." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s, %s પૂરà«àª‚ પાડે છે, પરંતૠતેની પાસે બીજી સંરચના છે." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "%s માટે %s જરૂરિયાત સંતà«àª·à«àªŸ કરી શકતà«àª‚ નથી" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "%s, અનà«àª¯ સà«àª¥àª¾àªªàª¿àª¤ છે તે રિàªà«‹àª²à«àªµà«‡àª¬àª² દà«àªµàª¾àª°àª¾ જરૂરી છે, તેથી તે અનલિંક થઇ શકશેનહીં." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "%s, અનà«àª¯ સà«àª¥àª¾àªªàª¿àª¤ છે તે રિàªà«‹àª²à«àªµà«‡àª¬àª² દà«àªµàª¾àª°àª¾ જરૂરી છે, તેથી તે અનલિંક થઇ શકશેનહીં." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "%s (%s) ની વિસંગતતા સà«àª¥àª¾àªªàª¿àª¤ કરવાનà«àª‚ છે તે %s ને દૂર કરવાનà«àª‚ જરૂરી બનાવે છે" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "%s ની વિસંગતતાના કારણે %s ને અસà«àª¥àª¾àªªàª¿àª¤ તરીકે ચિહિત કરો" #~ msgid "from %s" #~ msgstr "%s માંથી" #~ msgid " Error!" #~ msgstr "ભૂલ!" #~ msgid " Important!" #~ msgstr "અગતà«àª¯àª¨à«àª‚!" #~ msgid "%s depended on %s" #~ msgstr "%s, %s પર આધાર રાખà«àª¯à«‹" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«àª‚" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«àª‚" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s ની જગà«àª¯àª¾àª મà«àª•યà«àª‚" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«àª‚" #~ msgid "%s part of %s" #~ msgstr "%s, %s નો ભાગ છે" #, fuzzy #~ msgid "Double timeout" #~ msgstr " ડબલ-કà«àª²àª¿àª• ટાઇમઆઉટ " #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s દà«àªµàª¾àª°àª¾ %s જરૂરી હતà«àª‚" #~ msgid "Unable to parse Url authority" #~ msgstr "Url અધિકૃતિ પારà«àª¸ કરવા અકà«àª·àª®" #~ msgid "Ignore this requirement generally" #~ msgstr "સામાનà«àª¯ રીતે આ જરૂરિયાત અવગણો" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s, અનà«àª¯ સà«àª¥àª¾àªªàª¿àª¤ કરવાનà«àª‚ છે તે રિàªà«‹àª²à«àªµà«‡àª¬àª² દà«àªµàª¾àª°àª¾ જરૂરી છે, તેથી તે અનલિંક થઇ શકશેનહીં." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "અદà«àª¯àª¤àª¨ સà«àª¥àª¾àªªàª¨ કરવામાં જરૂરી ફાઈલ રચી શકાઇ નથી" #~ msgid "Unable to restore all sources." #~ msgstr "બધા સà«àª¤à«àª°à«‹àª¤à«‹ પà«àª¨àª¸à«àª¥àª¾àªªàª¨ કરવા અકà«àª·àª®" #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "ઓછામાં ઓછà«àª‚ àªàª• સà«àª¤à«àª°à«‹àª¤ પહેલેથી નોંધાયેલ છે, સંગà«àª°àª¹ કરાયેલા સà«àª¤à«àª°à«‹àª¤à«‹ પà«àª¨àª¸àª‚ગà«àª°àª¹ થઇ શકતો નથી." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "%s ની પરાધિનતા પૂરà«àª£ કરવા %s સà«àª¥àªªàª¾àª‡ શકશે નહીં" #~ msgid "%s dependend on %s" #~ msgstr "%s, %s પર આધારિત" #~ msgid "Reading index files" #~ msgstr "ઇનà«àª¡à«‡àª•à«àª¸ ફાઇલો વંચાઇ રહી છે" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "સહી કરેલી repomd.xml ફાઇલ સહી તપાસવામાં નિષà«àª«àª³ ગઇ." #~ msgid "Reading product from %s" #~ msgstr "%s માંથી પà«àª°à«‹àª¡àª•à«àªŸ વંચાઇ રહી છે" #~ msgid "Reading filelist from %s" #~ msgstr "%s માંથી ફાઇલયાદી વંચાઇ રહી છે" #~ msgid "Reading packages from %s" #~ msgstr "%s માંથી પેકેજીસ વંચાઇ રહà«àª¯àª¾ છે" #~ msgid "Reading selection from %s" #~ msgstr "%s માંથી પસંદગી વંચાઇ રહી છે" #~ msgid "Reading pattern from %s" #~ msgstr "%s માંથી પેટરà«àª¨ વંચાઇ રહà«àª¯àª¾ છે" #~ msgid "Reading patches index %s" #~ msgstr "%s માંથી પેચિસ ઇનà«àª¡à«‡àª•à«àª¸ વંચાઇ રહà«àª¯àª¾ છે" #~ msgid "Reading patch %s" #~ msgstr "%s પેચ વંચાઇ રહà«àª¯àª¾ છે" #~ msgid "The script file failed the checksum test." #~ msgstr "સà«àª•à«àª°àª¿àªªà«àªŸ ફાઇલ ચેકસમ પરિકà«àª·àª£ કરવામાં નિષà«àª«àª³ ગઇ." #~ msgid "Reading packages file" #~ msgstr "પેકેજીસ ફાઇલ વંચાઇ રહી છે" #~ msgid "Reading translation: %s" #~ msgstr "ભાષાંતર વંચાઈ રહà«àª¯à«àª‚ છે : %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "%s પેકેજ પૂરà«àª£àª¤àª¾ ચકાસણીમાં નિષà«àª«àª³ ગઇ છે. તમે તે ફરીથી ડાઉનલોડ કરવાનો પà«àª°àª¯àª¤à«àª¨ કરવા " #~ "માંગો છો.અથવા સà«àª¥àª¾àªªàª¨ અટકાવવà«àª‚ છે?" #~ msgid " miss checksum." #~ msgstr "ચેકસમ છૂટી ગયà«àª‚ છે." #~ msgid " fails checksum verification." #~ msgstr "ચેકસમ ખરાઇમાં નિષà«àª«àª³" #~ msgid "Downloading %s" #~ msgstr "%s ડાઉનલોડ થઇ રહà«àª¯à«àª‚ છે" libzypp-17.7.0/po/he.po000066400000000000000000003014771334444677500147060ustar00rootroot00000000000000# Hebrew message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2004 SuSE Linux AG. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2004-08-09 10:24+0200\n" "Last-Translator: xxx \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "מצב" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "×יחוד הנסיכויות הערביות" #. :ARE:784: #: zypp/CountryCode.cc:160 #, fuzzy msgid "Afghanistan" msgstr "פקיסטן" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "×לבניה" # AR #. :ALB:008: #: zypp/CountryCode.cc:164 #, fuzzy msgid "Armenia" msgstr "×רגנטינה" # NL #. :ARM:051: #: zypp/CountryCode.cc:165 #, fuzzy msgid "Netherlands Antilles" msgstr "הולנד" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "" # AR #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "×רגנטינה" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" # AT #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "×וסטריה" # AU #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "×וסטרליה" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" # IE #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "××™×™ פר-×ר" #. :ALA:248: #: zypp/CountryCode.cc:174 #, fuzzy msgid "Azerbaijan" msgstr "×זרביג'נית" #. :AZE:031: #: zypp/CountryCode.cc:175 #, fuzzy msgid "Bosnia and Herzegovina" msgstr "בוסניה הרצגובינה" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "ברבדוס" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "בנגלדש" # BE #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "בלגיה" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" # BG #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "בולגריה" #. :BGR:100: #: zypp/CountryCode.cc:181 #, fuzzy msgid "Bahrain" msgstr "בחריין" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "" #. :BDI:108: #: zypp/CountryCode.cc:183 #, fuzzy msgid "Benin" msgstr "בנג×לית" #. :BEN:204: #: zypp/CountryCode.cc:184 #, fuzzy msgid "Bermuda" msgstr "גרמנית" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" # BO #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "בוליביה" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "" # PA #. :BRA:076: #: zypp/CountryCode.cc:188 #, fuzzy msgid "Bahamas" msgstr "פנמה" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" # IE #. :BTN:064: #: zypp/CountryCode.cc:190 #, fuzzy msgid "Bouvet Island" msgstr "××™×™ פר-×ר" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "בוטסו×× ×”" # BY #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "בלרוס" #. :BLR:112: #: zypp/CountryCode.cc:193 #, fuzzy msgid "Belize" msgstr "בלגית" # CA #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "קנדה" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" # DO #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "סוריה" # CH #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "שוייץ" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" # IE #. :CIV:384: #: zypp/CountryCode.cc:201 #, fuzzy msgid "Cook Islands" msgstr "××™×™ פר-×ר" # CL #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "צ'ילה" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "סין" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "קולומביה" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "קוסטה ריקה" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" # DO #. :CYP:196: #: zypp/CountryCode.cc:211 #, fuzzy msgid "Czech Republic" msgstr "הרפובליקה הדומיניקנית" # DE #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "גרמניה" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" # DK #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "דנמרק" # RO #. :DNK:208: #: zypp/CountryCode.cc:215 #, fuzzy msgid "Dominica" msgstr "רומניה" # DO #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "הרפובליקה הדומיניקנית" # BG #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "×לג'יר" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "×קוודור" # EE #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "×סטוניה" # EG #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "מצרי×" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" # ES #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "ספרד" # EE #. :ESP:724: #: zypp/CountryCode.cc:224 #, fuzzy msgid "Ethiopia" msgstr "×סטוניה" # FI #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "פינלנד" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" # IE #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "××™×™ פר-×ר" # FR #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "צרפת" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "גרנדה" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr " ×’'ורג'×™×”" #. :GEO:268: #: zypp/CountryCode.cc:236 #, fuzzy msgid "French Guiana" msgstr "צרפתית (קנדה)" # DE #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "גרמניה" # CN #: zypp/CountryCode.cc:238 #, fuzzy msgid "Ghana" msgstr "סין" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" # GD #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "גרינלנד" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" # GR #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "יוון" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" # GT #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "גו×טמלה" #. :GTM:320: #: zypp/CountryCode.cc:248 #, fuzzy msgid "Guam" msgstr "משחקי×" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "הונג-קונג" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" # HN #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "הונדורס" # HR #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "קרו×טיה" #. :HRV:191: #: zypp/CountryCode.cc:255 #, fuzzy msgid "Haiti" msgstr "המתן" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "הונגריה" # ID #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "×ינדונזיה" # IE #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "×ירלנד" # IL #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ישר×ל" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" # IN #: zypp/CountryCode.cc:261 msgid "India" msgstr "הודו" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" # IQ #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "עירק" # IQ #. :IRQ:368: #: zypp/CountryCode.cc:264 #, fuzzy msgid "Iran" msgstr "עירק" # IS #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "×יסלנד" # IT #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "×יטליה" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "" # JO #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ירדן" # JP #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "יפן" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 #, fuzzy msgid "Cambodia" msgstr "קולומביה" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" # Frame description in suggested partition for mode accept modify .. #. :KIR:296: #: zypp/CountryCode.cc:275 #, fuzzy msgid "Comoros" msgstr "בחרו" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" # ZA #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "×“×¨×•× ×פריקה" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "כווית " # IE #. :KWT:414: #: zypp/CountryCode.cc:280 #, fuzzy msgid "Cayman Islands" msgstr "××™×™ פר-×ר" #. :CYM:136: #: zypp/CountryCode.cc:281 #, fuzzy msgid "Kazakhstan" msgstr "פקיסטן" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "לבנון" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "" #. :LIE:438: #: zypp/CountryCode.cc:286 #, fuzzy msgid "Sri Lanka" msgstr "סרבית" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" # LT #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ליט×" # LU #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "לוקסמבורג" # LV #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "לטביה" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "מרוקו" #. :MAR:504: #: zypp/CountryCode.cc:294 #, fuzzy msgid "Monaco" msgstr "שני" #. :MCO:492: #: zypp/CountryCode.cc:295 #, fuzzy msgid "Moldova" msgstr "סלובקית" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "לווין" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" # IE #. :MDG:450: #: zypp/CountryCode.cc:299 #, fuzzy msgid "Marshall Islands" msgstr "××™×™ פר-×ר" # MK #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "מקדונית" #. :MKD:807: #: zypp/CountryCode.cc:301 #, fuzzy msgid "Mali" msgstr "&דו×ר" # PA #. :MLI:466: #: zypp/CountryCode.cc:302 #, fuzzy msgid "Myanmar" msgstr "פנמה" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" #. :MNG:496: #: zypp/CountryCode.cc:304 #, fuzzy msgid "Macao" msgstr "מ×ורית" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 #, fuzzy msgid "Martinique" msgstr "דקה" # LT #. :MTQ:474: #: zypp/CountryCode.cc:307 #, fuzzy msgid "Mauritania" msgstr "ליט×" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" # MT #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "מלטה" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "" #. :MUS:480: #: zypp/CountryCode.cc:311 #, fuzzy msgid "Maldives" msgstr "מלטזית" # MT #. :MDV:462: #: zypp/CountryCode.cc:312 #, fuzzy msgid "Malawi" msgstr "מלטה" # MX #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "מקסיקו" # MT #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "מלזיה " #. :MYS:458: #: zypp/CountryCode.cc:315 #, fuzzy msgid "Mozambique" msgstr "נייד" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" # MK #. :NAM:516: #: zypp/CountryCode.cc:317 #, fuzzy msgid "New Caledonia" msgstr "מקדונית" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" # IE #. :NER:562: #: zypp/CountryCode.cc:319 #, fuzzy msgid "Norfolk Island" msgstr "××™×™ פר-×ר" # BG #. :NFK:574: #: zypp/CountryCode.cc:320 #, fuzzy msgid "Nigeria" msgstr "×לג'יר" # PY #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "× ×™×§×ר×גו××”" # NL #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "הולנד" # NO #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "נורבגיה" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 #, fuzzy msgid "Niue" msgstr "דקה" # NZ #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ניו זילנד" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "עומן" # PA #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "פנמה" # PE #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "פרו" #. :PER:604: #: zypp/CountryCode.cc:331 #, fuzzy msgid "French Polynesia" msgstr "צרפתית (קנדה)" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "הפיליפיני×" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "פקיסטן" # PL #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "פולין" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 #, fuzzy msgid "Pitcairn" msgstr "פקיסטן" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "פורטו ריקו" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" # PT #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "פורטוגל" # PA #. :PRT:620: #: zypp/CountryCode.cc:341 #, fuzzy msgid "Palau" msgstr "פ×ל×" # PY #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "פרגו××™" # MT #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "קט×ר" #. :QAT:634: #: zypp/CountryCode.cc:344 #, fuzzy msgid "Reunion" msgstr "&×זור" # RO #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "רומניה" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "סרבית" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" # CA #. :RUS:643: #: zypp/CountryCode.cc:348 #, fuzzy msgid "Rwanda" msgstr "קנדה" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "ערב הסעודית" # IE #. :SAU:682: #: zypp/CountryCode.cc:350 #, fuzzy msgid "Solomon Islands" msgstr "××™×™ פר-×ר" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" # SD #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "סודן" # SE #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "שבדיה" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "סינגפור" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" # SI #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "סלובניה" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" # SK #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "סלובקיה" # Device type label #. :SVK:703: #: zypp/CountryCode.cc:359 #, fuzzy msgid "Sierra Leone" msgstr "קו סירי×לי" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 #, fuzzy msgid "Senegal" msgstr "בנג×לית" # RO #. :SEN:686: #: zypp/CountryCode.cc:362 #, fuzzy msgid "Somalia" msgstr "רומניה" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" # SV #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "×ל סלבדור" #. :SLV:222: #: zypp/CountryCode.cc:366 #, fuzzy msgid "Syria" msgstr "סרבית" # TH #. :SYR:760: #: zypp/CountryCode.cc:367 #, fuzzy msgid "Swaziland" msgstr "ת×ילנד" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" # CA #. :TCA:796: #: zypp/CountryCode.cc:369 #, fuzzy msgid "Chad" msgstr "כרטיס" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" # TH #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "ת×ילנד" # TW #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ט××’'יקיסטן" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" # TW #. :TKL:772: #: zypp/CountryCode.cc:375 #, fuzzy msgid "Turkmenistan" msgstr "ט××’'יקיסטן" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "טוניס" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" # TR #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "טורקיה" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 #, fuzzy msgid "Tuvalu" msgstr "דיבור" # TH #. :TUV:798: #: zypp/CountryCode.cc:382 #, fuzzy msgid "Taiwan" msgstr "ת×ילנד" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" # UA #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "×וקר××™× ×”" # CA #. :UKR:804: #: zypp/CountryCode.cc:385 #, fuzzy msgid "Uganda" msgstr "קנדה" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 #, fuzzy msgid "United States" msgstr "×יחוד הנסיכויות הערביות" # UY #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "×ורוגו××™" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "×וסביקיסטן" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" # VE #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ונצו×לה" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 #, fuzzy msgid "Vietnam" msgstr "וייטנ×מית" # ComboBox item #. :VNM:704: #: zypp/CountryCode.cc:396 #, fuzzy msgid "Vanuatu" msgstr "מדריך" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "תימן" # ComboBox item #. :YEM:887: #: zypp/CountryCode.cc:400 #, fuzzy msgid "Mayotte" msgstr "×דון" # ZA #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "×“×¨×•× ×פריקה" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "זימבבו××” " #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" # main dialog: Button Delete partition #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "&מחק" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "פקודה לביצוע ×›×שר מתחברי×" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 #, fuzzy msgid "Abkhazian" msgstr "×לבניה" #. language code: ace #: zypp/LanguageCode.cc:165 #, fuzzy msgid "Achinese" msgstr "סינית" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "×פריקנס" # Edit field label for linux partition size in non-graphical mode #. language code: ain #: zypp/LanguageCode.cc:179 #, fuzzy msgid "Ainu" msgstr "לינוקס:" #. language code: aka ak #: zypp/LanguageCode.cc:181 #, fuzzy msgid "Akan" msgstr "×פריקנס" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 #, fuzzy msgid "Albanian" msgstr "×לבניה" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" # BD #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "שפות" # ZA #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "×“×¨×•× ×פריקה" #. language code: amh am #: zypp/LanguageCode.cc:195 #, fuzzy msgid "Amharic" msgstr "ערבית" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" # BD #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "שפות" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ערבית" #. language code: arc #: zypp/LanguageCode.cc:203 #, fuzzy msgid "Aramaic" msgstr "ערבית" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" # AR #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 #, fuzzy msgid "Armenian" msgstr "×רגנטינה" # UA #. language code: arn #: zypp/LanguageCode.cc:211 #, fuzzy msgid "Araucanian" msgstr "×וקר×ינית" #. language code: arp #: zypp/LanguageCode.cc:213 #, fuzzy msgid "Arapaho" msgstr "גרף" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 #, fuzzy msgid "Assamese" msgstr "משחקי×" # AT #. language code: ast #: zypp/LanguageCode.cc:221 #, fuzzy msgid "Asturian" msgstr "×וסטריה" # BD #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "שפות" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "רשימת כל השפות ×”×פשרויות" #. language code: ava av #: zypp/LanguageCode.cc:227 #, fuzzy msgid "Avaric" msgstr "ערבית" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "×זרביג'נית" # CA #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "קנדה" # BD #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "שפות" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "בסיס" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "בסקית" #. language code: bas #: zypp/LanguageCode.cc:253 #, fuzzy msgid "Basa" msgstr "בסיס" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" # BY #. language code: bel be #: zypp/LanguageCode.cc:259 #, fuzzy msgid "Belarusian" msgstr "בלרוס" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "בנג×לית" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 #, fuzzy msgid "Bihari" msgstr "בחריין" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 #, fuzzy msgid "Bosnian" msgstr "רומנית" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "ברטונית" # ID #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "×ינדונזיה" # BG #. language code: bua #: zypp/LanguageCode.cc:289 #, fuzzy msgid "Buriat" msgstr "בולגריה" #. language code: bug #: zypp/LanguageCode.cc:291 #, fuzzy msgid "Buginese" msgstr "סינית" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "בולגרית" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 #, fuzzy msgid "Blin" msgstr "בלגית" # CA #. language code: cad #: zypp/LanguageCode.cc:301 #, fuzzy msgid "Caddo" msgstr "כרטיס" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" # CA #. language code: car #: zypp/LanguageCode.cc:305 #, fuzzy msgid "Carib" msgstr "כרטיס" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "קטלונית" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 #, fuzzy msgid "Cebuano" msgstr "לבנון" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" # CN #. language code: chb #: zypp/LanguageCode.cc:317 #, fuzzy msgid "Chibcha" msgstr "סין" #. language code: che ce #: zypp/LanguageCode.cc:319 #, fuzzy msgid "Chechen" msgstr "צ'כית" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "סינית" #. language code: chk #: zypp/LanguageCode.cc:327 #, fuzzy msgid "Chuukese" msgstr "סינית" #. language code: chm #: zypp/LanguageCode.cc:329 #, fuzzy msgid "Mari" msgstr "מ×ורית" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" # BD #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "שפות" #. language code: cop #: zypp/LanguageCode.cc:347 #, fuzzy msgid "Coptic" msgstr "מיחשוב" #. language code: cor kw #: zypp/LanguageCode.cc:349 #, fuzzy msgid "Cornish" msgstr "×ירית" #. language code: cos co #: zypp/LanguageCode.cc:351 #, fuzzy msgid "Corsican" msgstr "קוסטה ריקה" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" # HR # heading text #. language code: cre cr #: zypp/LanguageCode.cc:359 #, fuzzy msgid "Cree" msgstr "צור" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "צ'כית" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "דנית" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 #, fuzzy msgid "Dayak" msgstr "יו×:" # Table header 4/4 #. language code: del #: zypp/LanguageCode.cc:381 #, fuzzy msgid "Delaware" msgstr "חומרה" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 #, fuzzy msgid "Dinka" msgstr "כונן" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 #, fuzzy msgid "Dogri" msgstr "מ×ורית" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "סרבית" #. language code: dua #: zypp/LanguageCode.cc:397 #, fuzzy msgid "Duala" msgstr "יומי" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "הולנדית" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 #, fuzzy msgid "English" msgstr "×נגלית (×נגליה)" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "×ספרנטו" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "×סטונית" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" # Column header: minimum = 4 characters fill with space if needed #. language code: ewo #: zypp/LanguageCode.cc:427 #, fuzzy msgid "Ewondo" msgstr "סוף" # FR #. language code: fan #: zypp/LanguageCode.cc:429 #, fuzzy msgid "Fang" msgstr "צרפת" # Label for free part of the partition in non-graphical mode # Label for free part of the Windows partition in non-graphical mode #. language code: fao fo #: zypp/LanguageCode.cc:431 #, fuzzy msgid "Faroese" msgstr "פנוי:" #. language code: fat #: zypp/LanguageCode.cc:433 #, fuzzy msgid "Fanti" msgstr "פונטי×" # FI #. language code: fij fj #: zypp/LanguageCode.cc:435 #, fuzzy msgid "Fijian" msgstr "פינלנד" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "הפיליפיני×" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "פינית" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 #, fuzzy msgid "Fon" msgstr "פונטי×" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "צרפתית" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" # label text #. language code: fry fy #: zypp/LanguageCode.cc:453 #, fuzzy msgid "Frisian" msgstr "&גירסת FS" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" # FI #. language code: fur #: zypp/LanguageCode.cc:457 #, fuzzy msgid "Friulian" msgstr "פינלנד" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 #, fuzzy msgid "Germanic (Other)" msgstr "גרמנית (×¢× ×ž×§×©×™× ×ž×ª×™×)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr " ×’'ורג'×™×”" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "גרמנית" #. language code: gez #: zypp/LanguageCode.cc:475 #, fuzzy msgid "Geez" msgstr "יוונית" #. language code: gil #: zypp/LanguageCode.cc:477 #, fuzzy msgid "Gilbertese" msgstr "וייטנ×מית" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "×ירית" #. language code: glg gl #: zypp/LanguageCode.cc:483 #, fuzzy msgid "Galician" msgstr "×יטלקית" # ComboBox item #. language code: glv gv #: zypp/LanguageCode.cc:485 #, fuzzy msgid "Manx" msgstr "מדריך" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" # SD #. language code: gon #: zypp/LanguageCode.cc:491 #, fuzzy msgid "Gondi" msgstr "קול" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 #, fuzzy msgid "Grebo" msgstr "קבוצה" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 #, fuzzy msgid "Guarani" msgstr "הונגרית" #. language code: guj gu #: zypp/LanguageCode.cc:507 #, fuzzy msgid "Gujarati" msgstr "×ורך" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" # Table header 4/4 #. language code: hai #: zypp/LanguageCode.cc:511 #, fuzzy msgid "Haida" msgstr "חומרה" #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "לטבית" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "עברית" #. language code: her hz #: zypp/LanguageCode.cc:521 #, fuzzy msgid "Herero" msgstr "שגי××”" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 #, fuzzy msgid "Hindi" msgstr "סוג" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "סרבית" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "הונגרית" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "×יסלנדית" # Column header #. language code: ido io #: zypp/LanguageCode.cc:549 #, fuzzy msgid "Ido" msgstr "Id" # LT #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "ליט×" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 #, fuzzy msgid "Interlingue" msgstr "המשך" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "×ינדונזית" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" # IN #. language code: ipk ik #: zypp/LanguageCode.cc:571 #, fuzzy msgid "Inupiaq" msgstr "הודו" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" # BD #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "שפות" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "×יטלקית" #. language code: jav jv #: zypp/LanguageCode.cc:579 #, fuzzy msgid "Javanese" msgstr "יפנית" #. language code: jbo #: zypp/LanguageCode.cc:581 #, fuzzy msgid "Lojban" msgstr "לבנון" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "יפנית" #. language code: jpr #: zypp/LanguageCode.cc:585 #, fuzzy msgid "Judeo-Persian" msgstr "×ינדונזית" #. language code: jrb #: zypp/LanguageCode.cc:587 #, fuzzy msgid "Judeo-Arabic" msgstr "ערבית" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 #, fuzzy msgid "Kabyle" msgstr "מ×ופשר" #. language code: kac #: zypp/LanguageCode.cc:593 #, fuzzy msgid "Kachin" msgstr "בחריין" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" # CA #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "קנדה" #. language code: kar #: zypp/LanguageCode.cc:601 #, fuzzy msgid "Karen" msgstr "קורי×נית" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 #, fuzzy msgid "Kanuri" msgstr "כורדית" #. language code: kaw #: zypp/LanguageCode.cc:607 #, fuzzy msgid "Kawi" msgstr "כווית " #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 #, fuzzy msgid "Khasi" msgstr "ת×ילנדית" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 #, fuzzy msgid "Khmer" msgstr "×חר" #. language code: kho #: zypp/LanguageCode.cc:619 #, fuzzy msgid "Khotanese" msgstr "סינית" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 #, fuzzy msgid "Kimbundu" msgstr "סוג" #. language code: kok #: zypp/LanguageCode.cc:629 #, fuzzy msgid "Konkani" msgstr "קורי×נית" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "קורי×נית" #. language code: kos #: zypp/LanguageCode.cc:637 #, fuzzy msgid "Kosraean" msgstr "קורי×נית" #. language code: kpe #: zypp/LanguageCode.cc:639 #, fuzzy msgid "Kpelle" msgstr "×יות" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 #, fuzzy msgid "Kurukh" msgstr "טורקית" # PA #. language code: kua kj #: zypp/LanguageCode.cc:647 #, fuzzy msgid "Kuanyama" msgstr "פנמה" #. language code: kum #: zypp/LanguageCode.cc:649 #, fuzzy msgid "Kumyk" msgstr "דמה" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "כורדית" #. language code: kut #: zypp/LanguageCode.cc:653 #, fuzzy msgid "Kutenai" msgstr "כווית " #. language code: lad #: zypp/LanguageCode.cc:655 #, fuzzy msgid "Ladino" msgstr "רדיו" # CA #. language code: lah #: zypp/LanguageCode.cc:657 #, fuzzy msgid "Lahnda" msgstr "קנדה" # Column header #. language code: lam #: zypp/LanguageCode.cc:659 #, fuzzy msgid "Lamba" msgstr "תווית" #. language code: lao lo #: zypp/LanguageCode.cc:661 #, fuzzy msgid "Lao" msgstr "לבנון" #. language code: lat la #: zypp/LanguageCode.cc:663 #, fuzzy msgid "Latin" msgstr "לטבית" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "לטבית" #. language code: lez #: zypp/LanguageCode.cc:667 #, fuzzy msgid "Lezghian" msgstr "בלגית" # LU #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "לוקסמבורג" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ליט×ית" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 #, fuzzy msgid "Lozi" msgstr "&חיבור" # LU #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "לוקסמבורג" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" # CA #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "קנדה" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" # SD #. language code: lun #: zypp/LanguageCode.cc:689 #, fuzzy msgid "Lunda" msgstr "ר×שון" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "ת×ילנדית" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "מקדונית" #. language code: mad #: zypp/LanguageCode.cc:699 #, fuzzy msgid "Madurese" msgstr "מלטזית" # MT #. language code: mag #: zypp/LanguageCode.cc:701 #, fuzzy msgid "Magahi" msgstr "מתמטיקה" #. language code: mah mh #: zypp/LanguageCode.cc:703 #, fuzzy msgid "Marshallese" msgstr "מלטזית" # MT #. language code: mai #: zypp/LanguageCode.cc:705 #, fuzzy msgid "Maithili" msgstr "מתמטיקה" # MT #. language code: mak #: zypp/LanguageCode.cc:707 #, fuzzy msgid "Makasar" msgstr "מלזיה " # MT #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "מלזיה " #. language code: man #: zypp/LanguageCode.cc:711 #, fuzzy msgid "Mandingo" msgstr "×זהרה" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "מ×ורית" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" # MT #. language code: mar mr #: zypp/LanguageCode.cc:719 #, fuzzy msgid "Marathi" msgstr "מתמטיקה" # MT #. language code: mas #: zypp/LanguageCode.cc:721 #, fuzzy msgid "Masai" msgstr "מלזיה " # MT #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "מלטה" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" # ComboBox item #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "מדריך" #. language code: men #: zypp/LanguageCode.cc:731 #, fuzzy msgid "Mende" msgstr "מצב" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" # label text #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "בחרו שפה:" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" # MT #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "מלזיה " #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "מלטזית" # ComboBox item #. language code: mnc #: zypp/LanguageCode.cc:747 #, fuzzy msgid "Manchu" msgstr "מדריך" #. language code: mni #: zypp/LanguageCode.cc:749 #, fuzzy msgid "Manipuri" msgstr "מ×ורית" # BD #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "שפות" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "יגוסלביה" #. language code: mon mn #: zypp/LanguageCode.cc:757 #, fuzzy msgid "Mongolian" msgstr "מקדונית" #. language code: mos #: zypp/LanguageCode.cc:759 #, fuzzy msgid "Mossi" msgstr "מורס" # BD #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "שפות" # BD #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "שפות" #. language code: mus #: zypp/LanguageCode.cc:765 #, fuzzy msgid "Creek" msgstr "יוונית" #. language code: mwl #: zypp/LanguageCode.cc:767 #, fuzzy msgid "Mirandese" msgstr "מלטזית" # Table header 4/4 #. language code: mwr #: zypp/LanguageCode.cc:769 #, fuzzy msgid "Marwari" msgstr "חומרה" # BD #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "שפות" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" # ComboBox item #. language code: nah #: zypp/LanguageCode.cc:775 #, fuzzy msgid "Nahuatl" msgstr "מדריך" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 #, fuzzy msgid "Navajo" msgstr "ניווט" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "גרמנית" #. language code: nep ne #: zypp/LanguageCode.cc:793 #, fuzzy msgid "Nepali" msgstr "בנג×לית" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 #, fuzzy msgid "Norwegian Nynorsk" msgstr "הנורבגית" #. language code: nob nb #: zypp/LanguageCode.cc:805 #, fuzzy msgid "Norwegian Bokmal" msgstr "הנורבגית" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "הנורבגית" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" # BD #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "שפות" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" # CL #. language code: nya ny #: zypp/LanguageCode.cc:819 #, fuzzy msgid "Chichewa" msgstr "צ'ילה" # table header texts #. language code: nym #: zypp/LanguageCode.cc:821 #, fuzzy msgid "Nyamwezi" msgstr "ש×" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 #, fuzzy msgid "Ossetian" msgstr "רוסית" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" # BD #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "שפות" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 #, fuzzy msgid "Pangasinan" msgstr "הונגרית" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" # PY #. language code: pam #: zypp/LanguageCode.cc:851 #, fuzzy msgid "Pampanga" msgstr "פרגו××™" #. language code: pan pa #: zypp/LanguageCode.cc:853 #, fuzzy msgid "Panjabi" msgstr "פונוג×בי" #. language code: pap #: zypp/LanguageCode.cc:855 #, fuzzy msgid "Papiamento" msgstr "ניהול" # PY #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "פרגו××™" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 #, fuzzy msgid "Persian" msgstr "סרבית" #. language code: phi #: zypp/LanguageCode.cc:865 #, fuzzy msgid "Philippine (Other)" msgstr "הפיליפיני×" #. language code: phn #: zypp/LanguageCode.cc:867 #, fuzzy msgid "Phoenician" msgstr "סלובנית" # PA #. language code: pli pi #: zypp/LanguageCode.cc:869 #, fuzzy msgid "Pali" msgstr "פ×ל×" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "פולנית" #. language code: pon #: zypp/LanguageCode.cc:873 #, fuzzy msgid "Pohnpeian" msgstr "×ינדונזית" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "פורטוגזית" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "שפה עיקרית: %1" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" # TW #. language code: raj #: zypp/LanguageCode.cc:885 #, fuzzy msgid "Rajasthani" msgstr "ט××’'יקיסטן" # JP #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "יפן" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" # RO #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "רומניה" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "רומנית" # SD #. language code: run rn #: zypp/LanguageCode.cc:901 #, fuzzy msgid "Rundi" msgstr "קול" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "רוסית" # CA #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "קנדה" # SD #. language code: sag sg #: zypp/LanguageCode.cc:907 #, fuzzy msgid "Sango" msgstr "סודן" #. language code: sah #: zypp/LanguageCode.cc:909 #, fuzzy msgid "Yakut" msgstr "נקודת שבירה" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" # BD #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "שפות" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" # Column header: minimum = 5 characters fill with space if needed #. language code: san sa #: zypp/LanguageCode.cc:917 #, fuzzy msgid "Sanskrit" msgstr "התחלה" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 #, fuzzy msgid "Santali" msgstr "לווין" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "סרבית" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 #, fuzzy msgid "Scots" msgstr "×יקוני×" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "קרו×טית" #. language code: sel #: zypp/LanguageCode.cc:935 #, fuzzy msgid "Selkup" msgstr "דלג" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" # BD #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "שפות" # SD #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "סודן" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" # label text #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "בחרו שפה:" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "סלובקית" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "סלובנית" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" # BD #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "שפות" # label text #. language code: smj #: zypp/LanguageCode.cc:967 #, fuzzy msgid "Lule Sami" msgstr "&×©× ×œ×ž×•×“×•×œ" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 #, fuzzy msgid "Samoan" msgstr "עומן" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" # SI #. language code: sna sn #: zypp/LanguageCode.cc:975 #, fuzzy msgid "Shona" msgstr "סלובניה" #. language code: snd sd #: zypp/LanguageCode.cc:977 #, fuzzy msgid "Sindhi" msgstr "סוג" #. language code: snk #: zypp/LanguageCode.cc:979 #, fuzzy msgid "Soninke" msgstr "המשך" # SD #. language code: sog #: zypp/LanguageCode.cc:981 #, fuzzy msgid "Sogdian" msgstr "סודן" # RO #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "רומניה" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ספרדית" # UA #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "×וקר×ינית" #. language code: srr #: zypp/LanguageCode.cc:993 #, fuzzy msgid "Serer" msgstr "שרת" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" # Column header: minimum = 5 characters fill with space if needed #. language code: ssw ss #: zypp/LanguageCode.cc:997 #, fuzzy msgid "Swati" msgstr "התחלה" #. language code: suk #: zypp/LanguageCode.cc:999 #, fuzzy msgid "Sukuma" msgstr "סיכו×" # SD #. language code: sun su #: zypp/LanguageCode.cc:1001 #, fuzzy msgid "Sundanese" msgstr "סודן" # heading text #. language code: sus #: zypp/LanguageCode.cc:1003 #, fuzzy msgid "Susu" msgstr "סטטוס" #. language code: sux #: zypp/LanguageCode.cc:1005 #, fuzzy msgid "Sumerian" msgstr "סרבית" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "שבדית" #. language code: syr #: zypp/LanguageCode.cc:1011 #, fuzzy msgid "Syriac" msgstr "שרות" #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "לטבית" #. language code: tai #: zypp/LanguageCode.cc:1015 #, fuzzy msgid "Tai (Other)" msgstr "×חר" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "טמילית" # MT #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "קט×ר" # BE #. language code: tel te #: zypp/LanguageCode.cc:1021 #, fuzzy msgid "Telugu" msgstr "בלגיה" # label text #. language code: tem #: zypp/LanguageCode.cc:1023 #, fuzzy msgid "Timne" msgstr "×זור זמן" # MX #. language code: ter #: zypp/LanguageCode.cc:1025 #, fuzzy msgid "Tereno" msgstr "מידעטקסט" #. language code: tet #: zypp/LanguageCode.cc:1027 #, fuzzy msgid "Tetum" msgstr "טקסט" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "דיבור" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ת×ילנדית" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 #, fuzzy msgid "Tsimshian" msgstr "רוסית" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "בוטסו×× ×”" # EE #. language code: tso ts #: zypp/LanguageCode.cc:1063 #, fuzzy msgid "Tsonga" msgstr "×סטוניה" # TR #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "טורקיה" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" # BD #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "שפות" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "טורקית" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 #, fuzzy msgid "Tuvinian" msgstr "טוניס" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" # UA #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "×וקר×ינית" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 #, fuzzy msgid "Uzbek" msgstr "×וסביקיסטן" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" # GD #. language code: ven ve #: zypp/LanguageCode.cc:1099 #, fuzzy msgid "Venda" msgstr "גרנדה" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "וייטנ×מית" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" # BD #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "שפות" # PA #. language code: wal #: zypp/LanguageCode.cc:1109 #, fuzzy msgid "Walamo" msgstr "פ×ל×" # PY #. language code: war #: zypp/LanguageCode.cc:1111 #, fuzzy msgid "Waray" msgstr "פרגו××™" #. language code: was #: zypp/LanguageCode.cc:1113 #, fuzzy msgid "Washo" msgstr "וולשית" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "וולשית" # label text #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "בחרו שפה:" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 #, fuzzy msgid "Kalmyk" msgstr "דיבור" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "קוזה" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 #, fuzzy msgid "Yapese" msgstr "יפנית" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" # BD #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "שפות" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" # GD #. language code: zen #: zypp/LanguageCode.cc:1141 #, fuzzy msgid "Zenaga" msgstr "גרנדה" #. language code: zha za #: zypp/LanguageCode.cc:1143 #, fuzzy msgid "Zhuang" msgstr "&שינוי" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "זולו" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Couldn't open file: %s." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" # Frame title for installation target hard disk / partition(s) #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "מתקין על:" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" # Frame title for installation target hard disk / partition(s) #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "מתקין על:" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" # column description, if disk space is not known # label text #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "×œ× ×™×“×•×¢" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" # IT #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "התקן" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "מתקין על:" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "מתקין על:" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "×רכיטקטורה:" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "התקנה נכשלה" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "מתקין על:" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" # IT #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "התקן" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "מתקין על:" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "מתקין על:" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "מתקין דריבר..." #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" # main dialog: Button Delete partition #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "&מחק" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "מתקין על:" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "×œ× ×ž×—×•×‘×¨" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" # Commandline help title #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "×§×•×¨× ×§×•×‘×¥ הגדרות" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "מידע נוסף" #: zypp/target/rpm/RpmDb.cc:2394 #, fuzzy, c-format, boost-format msgid "created backup %s" msgstr "×ל תיצור גיבויי×" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" # Frame title for installation target hard disk / partition(s) #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "מתקין על:" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "%s remove failed" #~ msgstr "rpm נכשל." #, fuzzy #~ msgid "%s install failed" #~ msgstr "התקנה נכשלה" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "מתקין דריבר..." #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "מתקין דריבר..." #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "מתקין דריבר..." #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "מתקין דריבר..." # Frame title for installation target hard disk / partition(s) #, fuzzy #~ msgid "install %s" #~ msgstr "מתקין על:" #, fuzzy #~ msgid "unlock %s" #~ msgstr "שעוני×" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "מתקין דריבר..." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." #, fuzzy #~ msgid "No need to install %s" #~ msgstr "&בוט מערכת קיימת" #, fuzzy #~ msgid ", Action: " #~ msgstr "פעולה" # Frame title for installation target hard disk / partition(s) #, fuzzy #~ msgid "Establishing %s" #~ msgstr "מתקין על:" #, fuzzy #~ msgid " Error!" #~ msgstr "שגי××”" #~ msgid "Ok" #~ msgstr "בסדר" #~ msgid "Default" #~ msgstr "ברירת מחדל" libzypp-17.7.0/po/hi.po000066400000000000000000004110661334444677500147060ustar00rootroot00000000000000# translation of zypp.hi.po to Hindi # Sangeeta Kumari , 2007. msgid "" msgstr "" "Project-Id-Version: zypp.hi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2007-08-24 22:33+0530\n" "Last-Translator: Sangeeta Kumari \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: KBabel 1.11.4\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "हाल अपवाद" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "अजà¥à¤žà¤¾à¤¤ देश :" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "कोई कोड नहीं" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "अंदोरà¥à¤°à¤¾" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "संयà¥à¤•à¥à¤¤ अरब अमीरात" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "अफगानिसà¥à¤¤à¤¾à¤¨" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "à¤à¤‚टीगà¥à¤† और बारबूडा" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "अंगà¥à¤¯à¥à¤²à¤¾" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "अलà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "अरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "नीदरलैंड à¤à¤‚टीलस" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "अंगोला" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "अंटारà¥à¤•टिक" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "अरà¥à¤œà¥‡à¤‚टीना" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "अमेरिकी समोआ" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "आसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "आसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "अरूबा" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "अलांड आइलैंडà¥à¤¸" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "अज़रबैजान" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "बोसà¥à¤¨à¤¿à¤¯à¤¾ और हरà¥à¤œà¥‡à¤—ोविना" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "बारबाडोस" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "बांगà¥à¤²à¤¾à¤¦à¥‡à¤¶" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "बेलà¥à¤œà¤¼à¤¿à¤¯à¤®" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "बà¥à¤°à¥à¤•िना फासो" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "बà¥à¤²à¥à¤—ारिया" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "बहरीन" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "बà¥à¤°à¥‚ंडी" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "बेनिन" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "बरमूडा" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "बà¥à¤°à¥à¤¨à¥‡à¤ˆ दारूसà¥à¤¸à¤²à¤®" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "बोलेविया" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "बà¥à¤°à¤¾à¤œà¤¼à¥€à¤²" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "बहामस" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "भूटान" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "बोउवेत आइसलैंड" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "बोतà¥à¤¸à¤µà¤¾à¤¨à¤¾" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "बेलारूस" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "बेलिजी" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "कनाडा" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "कोकोस (कीलिंग) आइलैंडà¥à¤¸" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "कांगो" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "मधà¥à¤¯ अफà¥à¤°à¥€à¤•ी गणराजà¥à¤¯" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "सà¥à¤µà¤¿à¤Ÿà¥à¤œà¤¼à¤°à¤²à¥ˆà¤‚ड" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "कोटे डी'आईवोर" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "कà¥à¤• आइलैंडà¥à¤¸" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "चीले" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "कैमरून" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "चीन" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "कोलंबिया" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "कोसà¥à¤Ÿà¤¾ रिका" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "कà¥à¤¯à¥‚बा" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "केप वेरà¥à¤¦à¥‡" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "कà¥à¤°à¤¿à¤¸à¤®à¤¸ आइसलैंड" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "साइपà¥à¤°à¤¸" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "चेक गणराजà¥à¤¯" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "जरà¥à¤®à¤¨à¥€" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "जिबूती" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "डेनमारà¥à¤•" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "डोमिनिका" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "डोमिनिका गणराजà¥à¤¯" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "अलà¥à¤œà¤¼à¥€à¤°à¤¿à¤¯à¤¾" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "इकà¥à¤µà¤¾à¤¡à¥‹à¤°" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "à¤à¤¸à¥à¤¤à¥‹à¤¨à¤¿à¤¯à¤¾" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "मिशà¥à¤°" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "पशà¥à¤šà¤¿à¤®à¥€ सहारा" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "इरीटà¥à¤°à¤¿à¤¯à¤¾" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "सà¥à¤ªà¥‡à¤¨" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "इथियोपिया" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "फिनलैंड" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "फिज़ी" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "फालà¥à¤•लैंड आइलैंडà¥à¤¸ (मालà¥à¤µà¤¿à¤¨à¤¾à¤¸)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "माइकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾ संघीय गणराजà¥à¤¯" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "फरोठआइलैंडà¥à¤¸" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "फà¥à¤°à¤¾à¤‚स" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "मेटà¥à¤°à¥‹à¤ªà¥‹à¤²à¤¿à¤Ÿà¤¨ फà¥à¤°à¤¾à¤‚स" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "गाबोन" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "यूनाइटेड किंगडम" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "गà¥à¤°à¥‡à¤¨à¥‡à¤¡à¤¾" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "जारà¥à¤œà¤¿à¤¯à¤¾" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "फà¥à¤°à¥‡à¤‚च गà¥à¤†à¤¨à¤¾" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "जरà¥à¤®à¤¨à¥€" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "घाना" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "जिबà¥à¤°à¤¾à¤²à¥à¤Ÿà¤°" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "गà¥à¤°à¥€à¤¨à¤²à¥ˆà¤‚ड" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "गामà¥à¤¬à¤¿à¤¯à¤¾" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "गिनी" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "गà¥à¤µà¤¾à¤¡à¥‡à¤²à¥‹à¤ª" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "विषà¥à¤µà¤¤à¤°à¥‡à¤–ीय गिनी" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "गà¥à¤°à¥€à¤¸" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "दकà¥à¤·à¤¿à¤£à¥€ जॉरà¥à¤œà¤¿à¤¯à¤¾ और साउथ सैंडविच आइलैंडà¥à¤¸" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "गà¥à¤µà¤¾à¤Ÿà¥‡à¤®à¤¾à¤²à¤¾" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "गà¥à¤†à¤®" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "गिनी-बिसाउ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "गà¥à¤†à¤¨à¤¾" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "हांग-कांग" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "हेरà¥à¤¡ आइसलैंड और मैकडोनालà¥à¤¡ आइलैंडà¥à¤¸" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "होंडà¥à¤°à¤¾à¤¸" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "हाती" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "हंगरी" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "इंडोनेशिया" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "आयरलैंड" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "इज़रायल" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "भारत" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ भारतीय समà¥à¤¦à¥à¤°à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "इराक" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "इरान" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "आइसलैंड" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "इटली" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "जमाइका" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "जॉरà¥à¤¡à¤¨" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "जापान" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "केनà¥à¤¯à¤¾" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "किरà¥à¤—िज़तान" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "कंबोडिया" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "किरिबाती" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "कोमोरोस" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "सेंट किटà¥à¤¸ और नेविस" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "उतà¥à¤¤à¤°à¥€ कोरिया" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "दकà¥à¤·à¤¿à¤£à¥€ कोरिया" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "कà¥à¤µà¥ˆà¤¤" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "केमन आइलैंड" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "कज़ाकिसà¥à¤¤à¤¾à¤¨" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "लाओ लोक जनवादी गणराजà¥à¤¯" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "लेबनान" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "सेंट लà¥à¤¸à¤¿à¤¯à¤¾" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "लिचटेंसटीन" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "शà¥à¤°à¥€à¤²à¤‚का" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "लिबेरिया" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "लेसोथो" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "लिथà¥à¤†à¤¨à¤¿à¤¯à¤¾" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "लकà¥à¤œà¤¼à¤®à¤¬à¤°à¥à¤—" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "लटाविया" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "लीबिया" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "मोरकà¥à¤•ो" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "मोनाका" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "मालà¥à¤¦à¥‹à¤µà¤¾" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "मोंगो" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "सैन मारिनो" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "मेडागासà¥à¤•र" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "मारà¥à¤¶à¤² आइलैंडà¥à¤¸" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "मकदूनिया" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "माली" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "मà¥à¤¯à¤¾à¤‚मार" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "मंगोलिया" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "मकाउ" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "उतà¥à¤¤à¤°à¥€ मारिआना आइलैंड" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "मारतिनिक" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "मॉरितानिया" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "मांतसेरा" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "मालà¥à¤Ÿà¤¾" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "मॉरीशस" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "मालदीव" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "मलावी" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "मेकà¥à¤¸à¤¿à¤•ो" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "मलेशिया" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "मोजामà¥à¤¬à¤¿à¤•" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "नामीबिया" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "नà¥à¤¯à¥‚ कैलडोनिया" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "नाइज़र" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "नॉरफोक आइसलैंड" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "नाइजीरिया" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "निकारागà¥à¤†" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "नीदरलैंडà¥à¤¸" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "नॉरà¥à¤µà¥‡" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "नेपाल" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "नाउरू" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "नियू" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "नà¥à¤¯à¥‚जीलैंड" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "ओमान" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "पनामा" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "पेरू" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "फà¥à¤°à¥‡à¤‚च पॉलीनेशिया" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "पापà¥à¤† नà¥à¤¯à¥‚ गिनी" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "फिलिपीनà¥à¤¸" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "पाकिसà¥à¤¤à¤¾à¤¨" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "पोलैंड" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "सेंट पिअरे और मिकà¥à¤¯à¥‚लॉन" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "पिटकैरन" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "पà¥à¤¯à¥‚रà¥à¤Ÿà¥‹ रिको" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "फिलीसà¥à¤¤à¥€à¤¨à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "पà¥à¤°à¥à¤¤à¤—ाल" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "पलाउ" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "पैरागà¥à¤†" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "कतर" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "रियूनियन" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "रोमानिया" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "सरà¥à¤¬à¤¿à¤¯à¤¾à¤ˆ" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "रूसी महासंघ" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "रवांडा" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "सउदी अरब" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "सोलोमन आइलैंड" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "सेशेलà¥à¤¸" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "सूडान" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "सà¥à¤µà¥€à¤¡à¥‡à¤¨" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "सिंगापà¥à¤°" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "सेंट हेलेना" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "सà¥à¤²à¥‹à¤µà¤¿à¤¨à¤¿à¤¯à¤¾" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "सà¥à¤µà¤¾à¤²à¤¬à¤¾à¤°à¥à¤¡ और जेन मायेन" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "सà¥à¤²à¥‹à¤µà¤¾à¤•िया" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "सिà¤à¤°à¤¾ लिओन" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "सैन मारिनो" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "सेनेगल" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "सोमालिया" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "सूरीनाम" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "साओ टोम और पà¥à¤°à¤¿à¤‚सीप" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "अलसलà¥à¤µà¤¾à¤¡à¥‹à¤°" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "सीरिया" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "सà¥à¤µà¤¾à¤œà¤¿à¤²à¥ˆà¤‚ड" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "तà¥à¤°à¥à¤• और कैकस आइलैंड" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "चाड" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "फà¥à¤°à¤¾à¤‚सीसी दकà¥à¤·à¤¿à¤£à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "टोगो" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "थाईलैंड" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "तजाकिसà¥à¤¤à¤¾à¤¨" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "तोकेलाउ" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "तà¥à¤°à¥à¤•मेनिसà¥à¤¤à¤¾à¤¨" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "टà¥à¤¯à¥‚नेशिया" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "टोंगा" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "पूरà¥à¤µà¥€ तिमोर" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "टरà¥à¤•ी" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "तà¥à¤°à¤¿à¤¨à¤¿à¤¦à¤¾à¤¦ और टोबागो" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "तà¥à¤µà¤¾à¤²à¥‚" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "ताइवान" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "तंजानिया" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "उकà¥à¤°à¥‡à¤¨" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "उगांडा" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "संयà¥à¤•à¥à¤¤ राजà¥à¤¯ के छोटे दूरसà¥à¤¥ दà¥à¤µà¥€à¤ª" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "संयà¥à¤•à¥à¤¤ राजà¥à¤¯" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "उरà¥à¤—à¥à¤µà¥‡" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "उज़बेकिसà¥à¤¤à¤¾à¤¨" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "होली सी (वैटिकन सिटी राजà¥à¤¯)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "सेंट विनसेंट और द गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¿à¤¨à¥‡à¤¸" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "वेनेजà¥à¤à¤²à¤¾" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वरà¥à¤œà¤¿à¤¨ आइलैंड" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "वरà¥à¤œà¤¿à¤¨ आइलैंड, यू.à¤à¤¸." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "वियतनाम" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "वनà¥à¤†à¤¤à¥‚" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "वालिस और फà¥à¤¯à¥‚तूना" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "समोआ" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "यमन" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "मयोटà¥à¤Ÿà¥‡" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "दकà¥à¤·à¤¿à¤£ अफà¥à¤°à¥€à¤•ा" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "जांबिया" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "जिमà¥à¤¬à¤¾à¤¬à¤µà¥‡" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s पà¥à¤°à¤¾à¤¨à¤¾ कर देता है : %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "फाइल %1 को नहीं खोल सकता है।" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "%s को नहीं ढूंढ सकता।" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "%s को नहीं ढूंढ सकता।" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "जब कनेकà¥à¤Ÿ हो रहे हों तब चलाया जाने वाला कमांड" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "%s %s नहीं मिला" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "अजà¥à¤žà¤¾à¤¤ भाषा : " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "अफार" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "अबखाजिआन" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "अचाइनीज" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "अकोली" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "अदांगमे" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "अदाइघे" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "अफà¥à¤°à¥‹-à¤à¤¶à¤¿à¤¯à¤¾à¤Ÿà¤¿à¤•(अनà¥à¤¯)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "अफà¥à¤°à¤¿à¤¹à¤¿à¤²à¥€" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "अफà¥à¤°à¥€à¤•ांस" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "à¤à¤¨à¥‚" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "अकान" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "अकादियान" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "अलà¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆ " #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "à¤à¤²à¥à¤¯à¥‚त" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "अलगांकà¥à¤¯à¥‚à¤à¤¨ भाषाà¤à¤‚" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "दकà¥à¤·à¤¿à¤£à¥€ अलà¥à¤¤à¤¾à¤ˆ" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "अमà¥à¤¹à¤¾à¤°à¤¿à¤• " #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "अंगà¥à¤°à¥‡à¤œà¥€, पà¥à¤°à¤¾à¤¨à¥€ (सीà¤. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "अपाची भाषाà¤à¤‚" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "अरबी" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "अरामाइक" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "अरागोनीज़" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "अरà¥à¤®à¥€à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "अरॉकेनियाई" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "अरापाहो" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "कृतà¥à¤°à¤¿à¤® (अनà¥à¤¯)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "अरावक" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "असमिया" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "असà¥à¤¤à¥‚रियन" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "अथापासà¥à¤•न भाषाà¤à¤‚" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "आसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤ˆ भाषाà¤à¤‚" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "अवारिक" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "अवेसà¥à¤¤à¤¾à¤¨" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "अवधी" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "à¤à¤®à¤¾à¤°à¤¾" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "अज़रबैजानी" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "बांदा" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "बमिलिक भाषाà¤à¤‚" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "बशकीर" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "बलूची" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "बंबारा" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "बलिनीज़" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "बासà¥à¤•à¥à¤¯à¥‚" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "बासा" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "बालà¥à¤Ÿà¤¿à¤• (अनà¥à¤¯)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "बेजा" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "बेलारूसी" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "बेंबा" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "बंगाली" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "बेरबेर (अनà¥à¤¯)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "भोजपà¥à¤°à¥€" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "बिहारी" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "बिकोल" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "बिनि" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "बिसलामा" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "सिकसिका" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "बंतू (अनà¥à¤¯)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "बोसà¥à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "बà¥à¤°à¤œ" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "बà¥à¤°à¥‡à¤Ÿà¥‹à¤¨" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "बताक (इंडोनेशियाई)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "बà¥à¤°à¤¿à¤¯à¤¾à¤¤" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "बà¥à¤—ीनीज़" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "बà¥à¤²à¥à¤—ारियाई" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "बरà¥à¤®à¥€" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "बà¥à¤²à¤¿à¤¨" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "केडो" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "केंदà¥à¤°à¥€à¤¯ अमेरिकी भारतीय (अनà¥à¤¯)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "केरिब" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "केटेलन" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "काकेशियाई (अनà¥à¤¯)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "सेबà¥à¤¯à¥‚नो" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "सेलà¥à¤Ÿà¥€à¤• (अनà¥à¤¯)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "चमोरो" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "चिबचा" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "चेचेन" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "छगाताई" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "चीनी" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "चà¥à¤•ीज़" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "मारी" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "चिनूक जारà¥à¤—न" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "चोकà¥à¤Ÿà¥‰" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "चिपà¥à¤¯à¥‚यन" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "चेरोकी" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "चरà¥à¤š सà¥à¤²à¤¾à¤µà¤¿à¤•" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "चà¥à¤µà¤¾à¤¸" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "चेयेनà¥à¤¨à¥‡" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "चामिक भाषाà¤à¤‚" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "कोपà¥à¤Ÿà¤¿à¤•" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "कॉरà¥à¤¨à¤¿à¤¶" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "कोरà¥à¤¸à¤¿à¤•न" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "कà¥à¤°à¤¿à¤¯à¥‹à¤²à¥‡à¤¸ और पिडगिंस, अंगà¥à¤°à¥‡à¤œà¥€-आधारित (अनà¥à¤¯)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "कà¥à¤°à¤¿à¤¯à¥‹à¤²à¥‡à¤¸ और पिडगिंस, फà¥à¤°à¤¾à¤‚सीसी-आधारित (अनà¥à¤¯)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "कà¥à¤°à¤¿à¤¯à¥‹à¤²à¥‡à¤¸ और पिडगिंस, पà¥à¤°à¥à¤¤à¤—ाली-आधारित (अनà¥à¤¯)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "कà¥à¤°à¥€" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "कà¥à¤°à¥€à¤®à¤¿à¤¯à¤¾à¤ˆ तातार" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "कà¥à¤°à¤¿à¤¯à¥‹à¤²à¥‡à¤¸ और पिडगिंस (अनà¥à¤¯)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "कशà¥à¤¬à¤¿à¤¯à¤¨" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "कà¥à¤¯à¥à¤¶à¥€à¤Ÿà¤¿à¤• (अनà¥à¤¯)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "चेक" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "डाकोटा" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "दानिश" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "दरगà¥à¤µà¤¾" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "दयाक" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "देलावारे" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "सà¥à¤²à¥‡à¤µ (अथापासà¥à¤•न)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "डोगरिब" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "दिनà¥à¤•ा" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "दिवेही" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "डोगरी" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "दà¥à¤°à¤µà¤¿à¤¡à¤¼à¤¿à¤¯à¤¨ (अनà¥à¤¯)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "लोअर सोरà¥à¤¬à¤¿à¤¯à¤¨" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "डà¥à¤¯à¥‚ला" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "डच, मधà¥à¤¯ (सीà¤. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "डच" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "डà¥à¤¯à¥‚ला" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "दà¥à¤œà¥‹à¤‚गखा" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "इफिक" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "मिशà¥à¤°à¥€ (पà¥à¤°à¤¾à¤šà¥€à¤¨)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "इकाजà¥à¤•" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "इलामाइट" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "अंगà¥à¤°à¥‡à¤œà¥€" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "अंगà¥à¤°à¥‡à¤œà¥€, मधà¥à¤¯ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "à¤à¤¸à¥à¤ªà¤°à¤¾à¤‚तो" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "इवी" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "इवॉनà¥à¤¡à¥‹" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "फांग" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "फारोइसी" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "फांती" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "फिजी" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "फिलिपीनो" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "फिनà¥à¤¨à¤¿à¤¶" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "फिनà¥à¤¨à¥‹-उगरियन (अनà¥à¤¯)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "फॉन" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "फà¥à¤°à¥‡à¤‚च" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "फà¥à¤°à¥‡à¤‚च, मधà¥à¤¯ (सीà¤. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "फà¥à¤°à¥‡à¤‚च, पà¥à¤°à¤¾à¤šà¥€à¤¨ (842- सीà¤.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "फà¥à¤°à¥€à¤¶à¤¿à¤¯à¤¨" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "फà¥à¤²à¤¾à¤¹" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "फà¥à¤°à¥€à¤¯à¥‚लियन" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "गा" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "गायो" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "गà¥à¤¬à¤¾à¤¯à¤¾" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "जरà¥à¤®à¥‡à¤¨à¤¿à¤• (अनà¥à¤¯)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "जॉरà¥à¤œà¤¿à¤¯à¤¾à¤ˆ" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "जरà¥à¤®à¤¨" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "गीज" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "जिबà¥à¤°à¤¾à¤²à¤Ÿà¥€à¤œà¤¼" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "गैलिक" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "आयरिश" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "गालीसियन" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "मैंकà¥à¤¸" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "जरà¥à¤®à¤¨, मिडिल हाई (सीà¤. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "जरà¥à¤®à¤¨, ओलà¥à¤¡ हाई (सीà¤. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "गोंडी" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "गोरोनà¥à¤Ÿà¤¾à¤²à¥‹" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "गोथिक" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "गà¥à¤°à¥‡à¤¬à¥‹" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "गà¥à¤°à¥€à¤•, पà¥à¤°à¤¾à¤šà¥€à¤¨ (1453 तक)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "गà¥à¤°à¥€à¤•, आधà¥à¤¨à¤¿à¤• (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "गà¥à¤†à¤°à¤¾à¤¨à¥€" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "गà¥à¤œà¤°à¤¾à¤¤à¥€" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "गà¥à¤µà¤¿à¤š'इन" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "हैदा" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "हैती" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "हाउसा" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "हवाइयन" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "हिबà¥à¤°à¥‚" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "हेरेरो" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "हिलिगेनोन" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "हिमांचली" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "हिंदी" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "हिटिटी" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "हà¥à¤®à¤¾à¤‚ग" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "हिरी मोटू" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "ऊपरी सोरà¥à¤¬à¤¿à¤¯à¤¾à¤ˆ" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "हंगेरियाई" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "हूपा" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "इबान" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "इगà¥à¤¬à¥‹" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "आइसलैंडी " #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "आइडो" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "सिचà¥à¤†à¤¨ यी" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "आइजो" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "इनà¥à¤•टिटà¥à¤Ÿ" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "इंटरलिंगà¥à¤†" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "आईलोको" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "इणà¥à¤Ÿà¤°à¥à¤²à¤¿à¤™à¥à¤—à¥à¤† " #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "इंडिक (अनà¥à¤¯)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "इंडोनेशियाई" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "इंडो-यूरोपीय (अनà¥à¤¯)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "इंगà¥à¤¶" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "इनà¥à¤¯à¥‚पिआक" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "इरानी (अनà¥à¤¯)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "इरोकà¥à¤¯à¥‹à¤‡à¤¯à¤¾à¤ˆ भाषाà¤à¤‚" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "इतालवी" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "जावा" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "लोजबान" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "जापानी" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "जूडेओ-परà¥à¤¸à¤¿à¤¯à¤¨" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "जूडेओ-अरबी" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "कारा-कालपक" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "कबाइली" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "काचिन" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "कालालà¥à¤²à¥€à¤¸à¤Ÿ" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "कांबा" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "कनà¥à¤¨à¤¡à¤¼" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "केरीन" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "कशà¥à¤®à¥€à¤°à¥€" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "कनà¥à¤°à¥€" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "कावी " #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "कजाक" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "कबारà¥à¤¡à¤¿à¤¯à¤¨" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "खासी" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "खोईसान (अनà¥à¤¯)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "खमेर" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "खोतानीज़" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "किकूयू" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "किनयारवांडा" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "किरà¥à¤—िज़" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "किंबà¥à¤‚दà¥" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "कोंकणी" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "कोमी" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "कांगो" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "कोरियाई" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "कोसà¥à¤°à¤¾à¤‡à¤¯à¤¨" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "कà¥à¤ªà¥‡à¤²à¥‡" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "काराचय-बलकार" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "कà¥à¤°à¥" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "कà¥à¤°à¥à¤–" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "कà¥à¤†à¤¨à¤¯à¤¾à¤®à¤¾" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "कà¥à¤®à¥à¤¯à¤•" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "कà¥à¤°à¥à¤¦à¤¿à¤¶" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "कà¥à¤¤à¥‡à¤¨à¤¾à¤ˆ" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "लादिनो" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "लाहंडा" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "लांबा" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "लाओ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "लैटिन" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "लाटवियाई" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "लेà¤à¤¿à¤¯à¤¨" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "लिमà¥à¤¬à¤°à¥à¤—न" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "लिंगाला" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "लिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "मोंगो" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "लोज़ी" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "लकà¥à¤œà¤¼à¤®à¤¬à¤°à¥à¤—िश" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "लà¥à¤¯à¥‚बा-लà¥à¤²à¥à¤†" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "लà¥à¤¯à¥‚बा-कातांगा" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "गांडा" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "लà¥à¤¯à¥à¤¸à¥‡à¤¨à¥‹" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "लà¥à¤‚डा" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "लà¥à¤“ (केनà¥à¤¯à¤¾ और तंजानिया)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "लà¥à¤¶à¤¾à¤ˆ" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "मकदूनियाई" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "मदà¥à¤°à¥€à¤¸" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "मगही" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "मारà¥à¤¶à¤²à¥€à¤œà¤¼" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "मैथिली" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "मकासर" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "मलयालम" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "मंदिनगो" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "माओरी" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "असटà¥à¤°à¥‹à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤ˆ (अनà¥à¤¯)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "मराठी" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "मसाइ" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "मलय" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "मोकà¥à¤¸" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "मंदार" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "मेंदे" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "आइरिश, मधà¥à¤¯ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "मि'कमाक" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "मिनांगà¥à¤•ाबाउ" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "विविध भाषाà¤à¤‚" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "मॉन-खमेर (अनà¥à¤¯)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "मलागासी" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "मालà¥à¤Ÿà¥€à¤œà¤¼" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "मंचू" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "मणिपà¥à¤°à¥€" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "मनोबो भाषाà¤à¤‚" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "मोहॉक" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "मोलà¥à¤¦à¥‡à¤µà¤¿à¤¯à¤¾à¤ˆ" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "मंगोलियाई" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "मोसà¥à¤¸à¥€" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "अनेकशः भाषाà¤à¤‚" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "मà¥à¤‚डा भाषाà¤à¤‚" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "कà¥à¤°à¥€à¤•" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "मिरांडीज़" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "मारवाड़ी" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "मयान भाषाà¤à¤‚" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "à¤à¤°à¥à¤œà¤¯à¤¾" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "नाहà¥à¤†à¤Ÿà¥à¤²" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "उतà¥à¤¤à¤°à¥€ अमेरिकी भारतीय" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "नेपोलिटन" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "नावाजो" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "नà¥à¤¡à¥‡à¤¬à¥‡à¤²à¥‡, दकà¥à¤·à¤¿à¤£à¥€" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "नà¥à¤¡à¥‡à¤¬à¥‡à¤²à¥‡, उतà¥à¤¤à¤°à¥€" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "नà¥à¤¡à¥‹à¤‚गा" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "लो जरà¥à¤®à¤¨" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "नेपाली" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "नेपाल भाषा" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "नियास" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "नाइज़र-कोरदोफानियाई (अनà¥à¤¯)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "नियूà¤à¤¨" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "नॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ निनॉरà¥à¤¸à¥à¤•" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "नॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ बोकमाल" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "नोगाइ" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "नोरà¥à¤¸, पà¥à¤°à¤¾à¤¨à¥€" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "नॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "उतà¥à¤¤à¤°à¥€ सोथो" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "नà¥à¤¯à¥‚बिअन भाषाà¤à¤‚" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "कà¥à¤²à¤¾à¤¸à¤¿à¤•ी नेवारी" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "चिचेवा" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "नà¥à¤¯à¤¾à¤®à¤µà¥‡à¤œà¤¼à¥€" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "नà¥à¤¯à¤¾à¤¨à¤•ोले" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "नà¥à¤¯à¥‹à¤°à¥‹" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "नà¥à¤œà¤¼à¥€à¤®à¤¾" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ओकà¥à¤•ीटन (1500 पशà¥à¤šà¤¾à¤¤)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "ओज़िबà¥à¤µà¤¾" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "उड़िया" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "ओरोमो" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ओसेग" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ओसà¥à¤¸à¥‡à¤Ÿà¤¿à¤¯à¤¨" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "तà¥à¤°à¥à¤•ीश, ऑटà¥à¤Ÿà¥‹à¤®à¤¨ (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ओटोमियाई भाषाà¤à¤‚" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "पापà¥à¤…न (अनà¥à¤¯)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "पनगासिनान" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "पहलावी" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "पामà¥à¤ªà¤¾à¤‚गा" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "पंजाबी" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "पापीमेंटो" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "पालाउन" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "फारसी, पà¥à¤°à¤¾à¤¨à¥€ (सीà¤. 600-400 ई.पू.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "फारसी" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "फिलीपीनी (अनà¥à¤¯)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "फोà¤à¤¨à¤¿à¤¸à¤¿à¤…न" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "पाली" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "पोलिश" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "पोहनà¥à¤ªà¤¿à¤…न" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "पà¥à¤°à¥à¤¤à¤—ाली" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "पà¥à¤°à¤¾à¤•ृत भाषाà¤à¤‚" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "पà¥à¤°à¥‹à¤µà¥‡à¤‚सल, पà¥à¤°à¤¾à¤¨à¥€ (1500 तक)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "पशà¥à¤¤à¥‹" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "कà¥à¤µà¥‡à¤šà¥à¤†" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "राजसà¥à¤¥à¤¾à¤¨à¥€" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "रापानà¥à¤µà¥€" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "रारोतांगन" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "रोमांस (अनà¥à¤¯)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "रेइतो-रोमांस" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "रोमानी" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "रोमानियाई" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "रूंडी" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "रूसी" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "संदावी" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "सांगो" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "याकूत" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "दकà¥à¤·à¤¿à¤£à¥€ अमेरिकी भारतीय (अनà¥à¤¯)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "सलीशान भाषाà¤à¤‚" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "समारिटन अरामिक" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "संसà¥à¤•ृत" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "ससाक" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "संथाली" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "सरà¥à¤¬à¤¿à¤¯à¤¾à¤ˆ" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "सिसिलियाई" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "सà¥à¤•ाटà¥à¤¸" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤ˆ" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "सेलकप" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "सेमिटिक (अनà¥à¤¯)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "आइरिश, पà¥à¤°à¤¾à¤¨à¥€ (900 तक)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "संकेत भाषाà¤à¤‚" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "शान" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "सिडामो" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "सिंहल" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "सिओअन भाषाà¤à¤‚" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "चीनी-तिबà¥à¤¬à¤¤à¥€ (अनà¥à¤¯)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "सà¥à¤²à¤¾à¤µ (अनà¥à¤¯)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "सà¥à¤²à¥‹à¤µà¤¾à¤•" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "सà¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "दकà¥à¤·à¤¿à¤£à¥€ सामी" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "उतà¥à¤¤à¤°à¥€ सामी" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "सामी भाषाà¤à¤‚ (अनà¥à¤¯)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "लूले सामी" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "इनारी सामी" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "सामोन" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "सकोलà¥à¤¤ सामी" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "शोना" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "सिंधी" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "सोनिंकी" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "सोगदिया" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "सोमाली" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "सोंघाई" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "सोथो, दकà¥à¤·à¤¿à¤£à¥€" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "सà¥à¤ªà¥‡à¤¨à¥€" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "सारà¥à¤¡à¥€à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "सेरेर" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "निलो-सहारन (अनà¥à¤¯)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "सà¥à¤µà¤¾à¤¤à¤¿" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "सà¥à¤•ूमा" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "सà¥à¤‚डानी" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "सà¥à¤¸à¥" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "सà¥à¤®à¥‡à¤°à¤¿à¤¯à¤¾à¤ˆ" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "सà¥à¤µà¥€à¤¡à¤¿à¤¶" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "सीरियाई" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ताहितियन" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ताई (अनà¥à¤¯)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "तमिल" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "तातार" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "तेलगू" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "तिमà¥à¤¨à¥‡" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "तेरेनो" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "तेतम" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "ताज़िक" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "टॅगलॉग" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "थाई" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "तिबà¥à¤¬à¤¤à¥€" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "तिगरे" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "तिगà¥à¤°à¤¿à¤¨à¥à¤¯à¤¾" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "तीव" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "कà¥à¤²à¤¿à¤‚गों" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "तà¥à¤²à¤¿à¤‚गित" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "तमाशेक" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "तोंगा (नà¥à¤¯à¤¾à¤¸à¤¾)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "तोंगा (तोंगा आइलैंडà¥à¤¸)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "तोक पिसिन" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "तà¥à¤¸à¥€à¤®à¤¸à¤¿à¤¯à¤¾à¤ˆ" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "तà¥à¤¸à¤µà¤¾à¤¨à¤¾" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "तà¥à¤¸à¥‹à¤‚गा" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "तà¥à¤°à¥à¤•मानी" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "तà¥à¤®à¤¬à¥à¤•ा" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "तà¥à¤ªà¥€ भाषाà¤à¤‚" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "तà¥à¤°à¥à¤•ीश" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "अलà¥à¤Ÿà¤¾à¤‡à¤• (अनà¥à¤¯)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "तà¥à¤µà¥€" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "तà¥à¤µà¤¿à¤¨à¤¿à¤¯à¤¾à¤ˆ" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "उदमरà¥à¤¤" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "उगारिटिक" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "उइघà¥à¤°" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "उकà¥à¤°à¥‡à¤¨à¥€" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "उंबà¥à¤‚दà¥" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "अनिरà¥à¤§à¤¾à¤°à¤¿à¤¤" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "उरà¥à¤¦à¥‚" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "उज़à¥à¤¬à¥‡à¤•" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "वाइ" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "वेंदा" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "वियतनामी" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "वोलापà¥à¤•" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "वोटिक" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "वाकाशान भाषाà¤à¤‚" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "वलामो" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "वरे" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "वाशो" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "वेलà¥à¤¶" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "सोरà¥à¤¬à¤¿à¤…न भाषाà¤à¤‚" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "वलून" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "वोलोफ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "कलà¥à¤®à¥€à¤•" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "कà¥à¤¹à¥‹à¤¸à¤¾" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "याओ" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "यापी" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "यिदà¥à¤¦à¤¿à¤¶" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "योरूबा" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "यूपिक भाषाà¤à¤‚" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "ज़ापोटेक" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "ज़ेनागा" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "à¤à¥à¤†à¤‚ग" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ज़ेंदे" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "जà¥à¤²à¥" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "ज़à¥à¤¨à¥€" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' मौजूद नहीं है।" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' मौजूद नहीं है।" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "लेखन के लिठफाइल नहीं खोल सकता है।" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "डेसà¥à¤•टॉप आइटम '%s'" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "डायरेकà¥à¤Ÿà¤°à¥€ को सृजित नहीं कर सकता %1 : %2" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "फà¥à¤²à¥‹à¤ªà¥€ डिसà¥à¤• पढ़ने में तà¥à¤°à¥à¤Ÿà¤¿à¥¤" #: zypp/RepoManager.cc:1620 #, fuzzy, c-format, boost-format msgid "Adding repository '%s'" msgstr "संसाधन जोड़ रहा" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "अमानà¥à¤¯ निरà¥à¤¯à¤¾à¤¤ फाइलनाम।" #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "संसाधन जोड़ रहा" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "डेसà¥à¤•टॉप आइटम '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "अमानà¥à¤¯ LDAP URL कà¥à¤µà¥‡à¤°à¥€ सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "अमानà¥à¤¯ LDAP URL कà¥à¤µà¥‡à¤°à¥€ मानक '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Url ऑबà¥à¤œà¥‡à¤•à¥à¤Ÿ कà¥à¤²à¥‹à¤¨ करने में अकà¥à¤·à¤®" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "अमानà¥à¤¯ रिकà¥à¤¤ Url ऑबà¥à¤œà¥‡à¤•à¥à¤Ÿ संदरà¥à¤­" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Url अवयवों को पारà¥à¤œ करने में अकà¥à¤·à¤®" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "अनà¥à¤œà¤¾à¤¨" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "इतिहास:" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "फाइल %1 को नहीं खोल सकता है।" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "अनंजान" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "अमानà¥à¤¯ Url सà¥à¤•ीम '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s - %s को खोलने में अकà¥à¤·à¤®\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "\"%s\" मोडà¥à¤¯à¥‚ल लोड करने में असफल।" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "कोष में फाइल %1 नहीं पà¥à¤°à¤¾à¤ªà¥à¤¤ हà¥à¤ˆà¥¤" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "फाइल %1 पर नहीं लिख सकता है। " #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 à¤à¤• डायरेकà¥à¤Ÿà¤°à¥€ नहीं है।" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "रिकà¥à¤¤ CA नाम।" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "अमानà¥à¤¯ URL सà¥à¤•ीम '%1'" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "डेसà¥à¤•टॉप आइटम '%s'" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "अनà¥à¤®à¤¤à¤¿ असà¥à¤µà¥€à¤•ृत" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "पैकेज %s ने à¤à¤•ीकरण जांच को नाकाम किया। कà¥à¤¯à¤¾ आप इसकी डाउनलोडिंग का पà¥à¤°à¤¯à¤¾à¤¸ फिर से करना " "चाहते हैं?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "पैकेज %s ने à¤à¤•ीकरण जांच को नाकाम किया। कà¥à¤¯à¤¾ आप इसकी डाउनलोडिंग का पà¥à¤°à¤¯à¤¾à¤¸ फिर से करना " "चाहते हैं?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm जांच नाकाम रही।" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm नाकाम रहा।" #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "संसाधन पà¥à¤°à¤•ार वीà¤à¤†à¤°1 परिवरà¥à¤¤à¤¨ दरà¥à¤¶à¤¾à¤à¤‚ विशेषता को सहयोग नहीं करता" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "%s से %s पà¥à¤°à¤¦à¤¾à¤¨ नहीं कर सकता" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "कोष में फाइल %1 नहीं पà¥à¤°à¤¾à¤ªà¥à¤¤ हà¥à¤ˆà¥¤" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "फाइल को सृजित नहीं कर सकता है।" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "सिरà¥à¤« यहां पर इस आवशà¥à¤¯à¤•ता की अनदेखी कर दें" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "सिरà¥à¤« यहां पर इस आवशà¥à¤¯à¤•ता की अनदेखी कर दें" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन इसके पास कोई और सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ है।" #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "पैकेजों को असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने का कमांड" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "के लिठकनेकà¥à¤¶à¤¨ आवेदन : " #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "निरà¥à¤­à¤°à¤¤à¤¾ समसà¥à¤¯à¤¾à¤“ं के कारण %s का संसà¥à¤¥à¤¾à¤ªà¤¨ नहीं कर सकता" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "कोई नहीं %s पà¥à¤°à¤¦à¤¾à¤¨ करता" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "पà¥à¤°à¤®à¤¾à¤£ पतà¥à¤° %1 मौजूद नहीं है।" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s लॉक हो गया है और इसे असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं किया जा सकता।" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "इंसà¥à¤Ÿà¤¾à¤² नहीं हà¥à¤†" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s को %s की आवशà¥à¤¯à¤•ता है" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s का संसà¥à¤¥à¤¾à¤ªà¤¨ नहीं कर सकता" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s का %s से टकराव है " #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s को %s पà¥à¤°à¤¾à¤¨à¤¾ कर देता है" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s को %s पà¥à¤°à¤¾à¤¨à¤¾ कर देता है" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s का %s से टकराव है " #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "कोई नहीं %s पà¥à¤°à¤¦à¤¾à¤¨ करता" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "%s का कोई संसà¥à¤¥à¤¾à¤ªà¤¨à¤¯à¥‹à¤—à¥à¤¯ पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नहीं है" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "%s का कोई संसà¥à¤¥à¤¾à¤ªà¤¨à¤¯à¥‹à¤—à¥à¤¯ पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नहीं है" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ न करें" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s रखें" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "%s संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ न करें" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "अनà¥à¤°à¥‹à¤§ पहले से ही मौजूद है।" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%s का कोई संसà¥à¤¥à¤¾à¤ªà¤¨à¤¯à¥‹à¤—à¥à¤¯ पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नहीं है" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "संबंधित रिजॉलà¥à¤µà¥‡à¤¬à¤² को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ या मिटाà¤à¤‚ नहीं" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन इसके पास कोई और सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ है।" #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करें यदà¥à¤¯à¤ªà¤¿ यह सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ को बदल देगा" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s को %s पà¥à¤°à¤¾à¤¨à¤¾ कर देता है" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%s से %s तक अपडेट कर रहा है" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "अधिषà¥à¤ à¤¾à¤ªà¤¨" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "निषà¥â€à¤ªà¤¾à¤¦à¤¨" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "कà¥à¤‚जी à¤à¤¨à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤¶à¤¨ के दौरान तà¥à¤°à¥à¤Ÿà¤¿à¥¤" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "जैसा निरà¥à¤¦à¥‡à¤¶à¤¿à¤¤ था, संसà¥à¤¥à¤¾à¤ªà¤¨ छोड़ दिया गया।" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext कनेकà¥à¤Ÿ नहीं किया गया" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive आरंभ नहीं किया गया " #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume आरंभ नहीं किया गया" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus कनेकà¥à¤¶à¤¨ सृजित करने में अकà¥à¤·à¤®" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: libhal संदरà¥à¤­ को सृजित नहीं कर सकता" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection : dbus कनेकà¥à¤¶à¤¨ को सेट नहीं कर सकता" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL संदरà¥à¤­ को आरंभ करने में अकà¥à¤·à¤® -- hald नहीं रन कर रहा?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "कोई सीडीरोम डà¥à¤°à¤¾à¤‡à¤µ नहीं" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "विफल" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s: के लिठपरिवरà¥à¤¤à¤¿à¤¤ कंफिगरेशन फाइलें" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm ने %s के रूप में %s सहेजा लेकिन अंतर निरà¥à¤§à¤¾à¤°à¤¿à¤¤ करना असंभव था " #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ने %s के रूप में %s सहेजा।\n" "यहां अंतर की पहली 25 पंकà¥à¤¤à¤¿à¤¯à¤¾à¤‚ हैं :\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm ने %s के रूप में %s सृजित किया लेकिन अंतर निरà¥à¤§à¤¾à¤°à¤¿à¤¤ करना असंभव था" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ने %s के रूप में %s सृजित किया।\n" "यहां अंतर की पहली 25 पंकà¥à¤¤à¤¿à¤¯à¤¾à¤‚ हैं :\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "अतिरिकà¥à¤¤ rpm आउटपà¥à¤Ÿ :" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "बैकअप %s सृजित" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "%s %s नहीं मिला" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "%s %s नहीं मिला" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "%s %s नहीं मिला" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "मà¥à¤¯à¥‚टेकà¥à¤¸ गà¥à¤£ को आरंभ नहीं कर सकता" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "रिकरà¥à¤¸à¤¿à¤µ मà¥à¤¯à¥‚टेकà¥à¤¸ गà¥à¤£ को सेट नहीं कर सकता" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "रिकरà¥à¤¸à¤¿à¤µ मà¥à¤¯à¥‚टेकà¥à¤¸ को आरंभ नहीं कर सकता" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "मà¥à¤¯à¥‚टेकà¥à¤¸ लॉक को हासिल नहीं कर सकता" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "मà¥à¤¯à¥‚टेकà¥à¤¸ लॉक को रिलीज़ नहीं कर सकता" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url सà¥à¤•ीम किसी %s को अनà¥à¤®à¤¤à¤¿ नहीं देती है" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "अमानà¥à¤¯ %s अवयव '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "अमानà¥à¤¯ %s अवयव" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "इस URL के लिठकà¥à¤µà¥‡à¤°à¥€ सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग पारà¥à¤œà¤¿à¤‚ग समरà¥à¤¥à¤¿à¤¤ नहीं है" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url सà¥à¤•ीम à¤à¤• आवशà¥à¤¯à¤• अवयव है" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "अमानà¥à¤¯ Url सà¥à¤•ीम '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url सà¥à¤•ीम किसी उपयोगकरà¥à¤¤à¤¾ नाम को अनà¥à¤®à¤¤à¤¿ नहीं देती है" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url सà¥à¤•ीम किसी पासवरà¥à¤¡ को अनà¥à¤®à¤¤à¤¿ नहीं देती है" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url सà¥à¤•ीम को à¤à¤• होसà¥à¤Ÿ अवयव की आवशà¥à¤¯à¤•ता है" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url सà¥à¤•ीम किसी होसà¥à¤Ÿ अवयव को अनà¥à¤®à¤¤à¤¿ नहीं देती है " #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "अमानà¥à¤¯ होसà¥à¤Ÿ अवयव '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url सà¥à¤•ीम किसी पोरà¥à¤Ÿ को अनà¥à¤®à¤¤à¤¿ नहीं देती है " #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "अमानà¥à¤¯ पोरà¥à¤Ÿ अवयव '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url सà¥à¤•ीम को पथ नाम की आवशà¥à¤¯à¤•ता है" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "यदि पà¥à¤°à¤¾à¤§à¤¿à¤•रण मौजूद है तो सापेकà¥à¤· पथ को अनà¥à¤®à¤¤à¤¿ नहीं है" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "à¤à¤¨à¤•ोडेड सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग में à¤à¤• NUL बाइट समाविषà¥à¤Ÿ है" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "अमानà¥à¤¯ मानक कà¥à¤°à¤®à¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ सेपरेटर वरà¥à¤£ पृथक करें" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "अमानà¥à¤¯ मानक मानचितà¥à¤° सेपरेटर वरà¥à¤£ पृथक करें" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "अमानà¥à¤¯ मानक कà¥à¤°à¤®à¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ सेपरेटर वरà¥à¤£ जोड़ें" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी को पà¥à¤°à¤¾à¤ªà¥à¤¤ करने में अकà¥à¤·à¤®à¥¤" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "इंसà¥à¤Ÿà¤¾à¤² नहीं हà¥à¤†" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "%s - %s को खोलने में अकà¥à¤·à¤®\n" #~ msgid "Serbia and Montenegro" #~ msgstr "सरà¥à¤¬à¤¿à¤¯à¤¾ और मोंटेनेगà¥à¤°à¥‹" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "अजà¥à¤žà¤¾à¤¤ सूची विकलà¥à¤ª" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "निरà¥à¤­à¤°à¤¤à¤¾ हल नहीं की जा सकती" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाइल %s में कोई चेकसम नहीं है।\n" #~ "फिर भी फाइल का पà¥à¤°à¤¯à¥‹à¤— करें?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाइल %s निमà¥à¤¨à¤²à¤¿à¤–ित कà¥à¤‚जी के साथ à¤à¤•ीकरण जांच में नाकाम रही :\n" #~ "%s|%s|%s\n" #~ "फिर भी फाइल का पà¥à¤°à¤¯à¥‹à¤— करें?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाइल %s में à¤à¤• अमानà¥à¤¯ चेकसम है।\n" #~ "%s की उमà¥à¤®à¥€à¤¦ थी, %s मिला\n" #~ "फिर भी फाइल का पà¥à¤°à¤¯à¥‹à¤— करें?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाइल %s में à¤à¤• अमानà¥à¤¯ चेकसम %s है।\n" #~ "फिर भी फाइल का पà¥à¤°à¤¯à¥‹à¤— करें?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "फाइल %s साइन की हà¥à¤ˆ नहीं है।\n" #~ "फिर भी इसका पà¥à¤°à¤¯à¥‹à¤— करें?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाइल %s को à¤à¤• अजà¥à¤žà¤¾à¤¤ कà¥à¤‚जी से साइन किया गया है :\n" #~ "%s|%s|%s\n" #~ "फिर भी फाइल का पà¥à¤°à¤¯à¥‹à¤— करें?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "गैर-भरोसेमंद कà¥à¤‚जी मिली है :\n" #~ "%s|%s|%s\n" #~ "कà¥à¤‚जी पर भरोसा करें?" #~ msgid "%s remove failed" #~ msgstr "%s सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरण असफल रहा" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "कूटशबà¥à¤¦ बदलो" #~ msgid "rpm output:" #~ msgstr "rpm आउटपà¥à¤Ÿ :" #~ msgid "%s install failed" #~ msgstr "%s संसà¥à¤¥à¤¾à¤ªà¤¨ असफल " #~ msgid "%s installed ok" #~ msgstr "%s संसà¥à¤¥à¤¾à¤ªà¤¨ ठीक" #~ msgid "%s remove ok" #~ msgstr "%s सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरण ठीक" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "यह निरà¥à¤­à¤°à¤¤à¤¾ %s पà¥à¤°à¤¦à¤¾à¤¨ करता है लेकिन यह संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ वसà¥à¤¤à¥ केसà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ को बदल देगा" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "यह निरà¥à¤­à¤°à¤¤à¤¾ %s पà¥à¤°à¤¦à¤¾à¤¨ करता है लेकिन यह संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ वसà¥à¤¤à¥ केसà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ को बदल देगा" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "संबंधित रिजॉलà¥à¤µà¥‡à¤¬à¤² को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ या मिटाà¤à¤‚ नहीं" #~ msgid "Ignore that %s is already set to install" #~ msgstr "%s संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होने के तैयार है इसको अनदेखा करें" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%s को %s में हटाठजाने को अनदेखा करें" #~ msgid "Ignore this conflict of %s" #~ msgstr "%s के इस टकराव की अनदेखी कर दें" #~ msgid "Ignore this requirement just here" #~ msgstr "सिरà¥à¤« यहां पर इस आवशà¥à¤¯à¤•ता की अनदेखी कर दें" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करें यदà¥à¤¯à¤ªà¤¿ यह सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ को बदल देगा" #~ msgid "Install missing resolvables" #~ msgstr "छूटे रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करें" #~ msgid "Keep resolvables" #~ msgstr "रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ रखें" #~ msgid "Unlock these resolvables" #~ msgstr "इन रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ को अनलॉक करें" #~ msgid "delete %s" #~ msgstr "%s मिटाà¤à¤‚" #~ msgid "install %s" #~ msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करें" #~ msgid "unlock %s" #~ msgstr "%s को अनलॉक करें" #~ msgid "unlock all resolvables" #~ msgstr "समसà¥à¤¤ रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ को अनलॉक करें" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "फाइल %1 को नहीं खोल सकता है।" #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "सेकà¥à¤Ÿà¤° %u पढ़ने में तà¥à¤°à¥à¤Ÿà¤¿à¥¤" #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "इस URL के लिठपथ मानक पारà¥à¤œà¤¿à¤‚ग समरà¥à¤¥à¤¿à¤¤ नहीं है" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "पथ मानक पारà¥à¤œà¤¿à¤‚ग इस URL के लिठसमरà¥à¤¥à¤¿à¤¤ नहीं है" #~ msgid "Software management is already running." #~ msgstr "सॉफà¥à¤Ÿà¤µà¥‡à¤¯à¤° पà¥à¤°à¤¬à¤‚धन पहले से ही रन कर रहा है।" #~ msgid "%s is replaced by %s" #~ msgstr "%s से %s को पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया जाता है" #~ msgid "%s replaced by %s" #~ msgstr "%s से %s को पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया गया" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "ये रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ सिसà¥à¤Ÿà¤® से मिटा दिठजाà¤à¤‚गे।" #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s को असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं किया जाà¤à¤—ा कà¥à¤¯à¥‹à¤‚कि इसकी आवशà¥à¤¯à¤•ता अब भी है" #~ msgid "Invalid information" #~ msgstr "अमानà¥à¤¯ सूचना" #~ msgid "%s is needed by other resolvables" #~ msgstr "अनà¥à¤¯ रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ को %s की आवशà¥à¤¯à¤•ता है" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "%s की इनको आवशà¥à¤¯à¤•ता है :%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s का अनà¥à¤¯ रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ से टकराव है" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s का इनसे टकराव है :\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s अनà¥à¤¯ रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ को पà¥à¤°à¤¾à¤¨à¤¾ कर देता है" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "ये रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ सिसà¥à¤Ÿà¤® से मिटा दिठजाà¤à¤‚गे।" #~ msgid "%s depends on other resolvables" #~ msgstr "%s अनà¥à¤¯ रिजॉलà¥à¤µà¥‡à¤¬à¤²à¥à¤¸ पर निरà¥à¤­à¤° करता है" #~ msgid "%s depends on %s" #~ msgstr "%s पर %s निरà¥à¤­à¤° करता है " #~ msgid "%s depends on:%s" #~ msgstr "%s इन पर निरà¥à¤­à¤° करता है :%s" #~ msgid "Child of" #~ msgstr "की संतति" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "कोई सà¥à¤°à¥‹à¤¤ उपलबà¥à¤§ नहीं है जो इस आवशà¥à¤¯à¤•ता को समरà¥à¤¥à¤¨ दे।" #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "इस रिजॉलà¥à¤¯à¥‚शन के ऊपर/नीचे वरà¥à¤£à¤¿à¤¤ शेष समसà¥à¤¯à¤¾à¤à¤‚ सभी निरà¥à¤­à¤°à¤¤à¤¾à¤“ं कासमाधान नहीं करेंगी" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s का संसà¥à¤¥à¤¾à¤ªà¤¨ नहीं कर सकता कà¥à¤¯à¥‹à¤‚कि इसका %s के साथ टकराव है" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "" #~ "%s संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं किया गया है और अनइंसà¥à¤Ÿà¤¾à¤² योगà¥à¤¯ के रूप में चिहà¥à¤¨à¤¿à¤¤ कर दिया गया है" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s के पास à¤à¤¸à¥€ आवशà¥à¤¯à¤•ताà¤à¤‚ हैं जो संतà¥à¤·à¥à¤Ÿ नहीं हà¥à¤ˆ हैं" #~ msgid "%s has missing dependencies" #~ msgstr "%s की छूटी हà¥à¤ˆ निरà¥à¤­à¤°à¤¤à¤¾à¤à¤‚ हैं" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s को छूटी हà¥à¤ˆ निरà¥à¤­à¤°à¤¤à¤¾à¤“ं के कारण संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं किया जा सका" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s की निरà¥à¤­à¤°à¤¤à¤¾à¤à¤‚ %s पूरी करता है लेकिन इसे असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ कर दिया जाà¤à¤—ा" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s की निरà¥à¤­à¤°à¤¤à¤¾à¤à¤‚ %s पूरी करता है लेकिन इसे आपके सिसà¥à¤Ÿà¤® पर रखा जाà¤à¤—ा" #~ msgid "No need to install %s" #~ msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने की आवशà¥à¤¯à¤•ता नहीं है" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "%s की निरà¥à¤­à¤°à¤¤à¤¾à¤“ं को पूरा करने के लिठ%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं कर सकता" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "%s की निरà¥à¤­à¤°à¤¤à¤¾à¤“ं को पूरा करने के लिठ%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं कर सकता" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s को असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं किया जाà¤à¤—ा कà¥à¤¯à¥‹à¤‚कि इसकी आवशà¥à¤¯à¤•ता अब भी है" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%s पà¥à¤°à¤¾à¤¨à¤¾ कर देता है %s को। लेकिन %s को मिटाया नहीं जा सकता कà¥à¤¯à¥‹à¤‚कि यह लॉक है।" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं कर सकता कà¥à¤¯à¥‹à¤‚कि यह टकराव पैदा करता है" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s असंसà¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ है कà¥à¤¯à¥‹à¤‚कि इसका %s के साथ टकराव है" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "%s को अपगà¥à¤°à¥‡à¤¡ करते समय %s हेतॠ%s की आवशà¥à¤¯à¤•ता के लिà¤" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s में आवशà¥à¤¯à¤•ता %s छूटी हà¥à¤ˆ है" #~ msgid ", Action: " #~ msgstr ", कारà¥à¤°à¤µà¤¾à¤ˆ :" #~ msgid ", Trigger: " #~ msgstr ", टà¥à¤°à¤¿à¤—र :" #~ msgid "package" #~ msgstr "पैकेज" #~ msgid "selection" #~ msgstr "चयन" #~ msgid "pattern" #~ msgstr "पैटरà¥à¤¨" #~ msgid "product" #~ msgstr "उतà¥à¤ªà¤¾à¤¦" #~ msgid "patch" #~ msgstr "पैच" #~ msgid "script" #~ msgstr "सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ" #~ msgid "message" #~ msgstr "संदेश" #~ msgid "atom" #~ msgstr "परमाणà¥" #~ msgid "system" #~ msgstr "सिसà¥à¤Ÿà¤®" #~ msgid "Resolvable" #~ msgstr "रिजॉलà¥à¤µà¥‡à¤¬à¤²" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "इस रिजॉलà¥à¤¯à¥‚शन पà¥à¤°à¤¯à¤¾à¤¸ को अमानà¥à¤¯ के रूप में चिनà¥à¤¹à¤¿à¤¤ करना" #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "रिजॉलà¥à¤µà¥‡à¤¬à¤² %s को अनइंसà¥à¤Ÿà¥‰à¤²à¥‡à¤¬à¤² के रूप में चिनà¥à¤¹à¤¿à¤¤ करना" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया जाना निरà¥à¤§à¤¾à¤°à¤¿à¤¤ है, लेकिन निरà¥à¤­à¤°à¤¤à¤¾ समसà¥à¤¯à¤¾à¤“ं के कारण यह संभव नहीं " #~ "है।" #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं किया जा सकता कà¥à¤¯à¥‹à¤‚कि इसे पहले ही असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने की जरूरत के रूप " #~ "में चिनà¥à¤¹à¤¿à¤¤ किया गया है" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं कर सकता कà¥à¤¯à¥‹à¤‚कि यह इस सिसà¥à¤Ÿà¤® पर लागू नहीं होता" #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं कर सकता, कà¥à¤¯à¥‹à¤‚कि %s को पहले ही संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने की जरूरत के रूप में " #~ "चिनà¥à¤¹à¤¿à¤¤ किया गया है" #~ msgid "This would invalidate %s." #~ msgstr "यह %s को अमानà¥à¤¯ कर देगा।" #~ msgid "Establishing %s" #~ msgstr "%s को सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ कर रहा है" #~ msgid "Installing %s" #~ msgstr "%s को संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ कर रहा है" #~ msgid "Skipping %s: already installed" #~ msgstr "%s को छोड़ दें : पहले ही संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ हो गया है" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "%s का कोई वैकलà¥à¤ªà¤¿à¤• संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नहीं है" #~ msgid "for %s" #~ msgstr "%s के लिà¤" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "%s को हटाने से बचाने के लिठ%s को अपगà¥à¤°à¥‡à¤¡ करना संभव नहीं।" #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन इसे असंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करना निरà¥à¤§à¤¾à¤°à¤¿à¤¤ है।" #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "" #~ "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन इस %s का à¤à¤• अनà¥à¤¯ संसà¥à¤•रण पहले ही संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ है। " #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन यह असंसà¥à¤¥à¤¾à¤ªà¤¨à¤¯à¥‹à¤—à¥à¤¯ है। अधिक जानकारी के लिठइसे सà¥à¤µà¤¯à¤‚ " #~ "ही संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने की कोशिश करें।" #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन यह लॉक है।" #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन इसे रखा जाना निरà¥à¤§à¤¾à¤°à¤¿à¤¤ है।" #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ही %s पà¥à¤°à¤¦à¤¾à¤¨ करता है, लेकिन इसके पास कोई और सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ है।" #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "%s के लिठ%s आवाशà¥à¤¯à¤•ताà¤à¤‚ संतà¥à¤·à¥à¤Ÿ नहीं कर सकता" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ हो चà¥à¤•े किसी अनà¥à¤¯ रिजॉलà¥à¤µà¥‡à¤¬à¤² को %s की आवशà¥à¤¯à¤•ता है, अतः यह अनलिंक नहीं किया " #~ "जा सकता।" #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "संसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ हो चà¥à¤•े किसी अनà¥à¤¯ रिजॉलà¥à¤µà¥‡à¤¬à¤² को %s की आवशà¥à¤¯à¤•ता है, अतः यह अनलिंक नहीं किया " #~ "जा सकता।" #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "%s (%s) पर टकराव के लिठसंसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होने वाले %s को हटाठजाने की आवशà¥à¤¯à¤•ता है" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "%s पर टकराव होने के कारण %s को असंसà¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ के रूप में चिनà¥à¤¹à¤¿à¤¤ किया जा रहा है" #~ msgid "from %s" #~ msgstr "%s से" #~ msgid " Error!" #~ msgstr "तà¥à¤°à¥à¤Ÿà¤¿!" #~ msgid " Important!" #~ msgstr "महतà¥à¤µà¤ªà¥‚रà¥à¤£!" #~ msgid "%s depended on %s" #~ msgstr "%s निरà¥à¤­à¤° है %s पर" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s को %s की आवशà¥à¤¯à¤•ता है" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s को %s की आवशà¥à¤¯à¤•ता है" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s से %s को पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया जाता है" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s को %s की आवशà¥à¤¯à¤•ता है" #~ msgid "%s part of %s" #~ msgstr "%s का %s भाग" libzypp-17.7.0/po/hr.po000066400000000000000000002640411334444677500147160ustar00rootroot00000000000000# translation of zypp.hr.po to Croatian # Croatian message file for YaST2 (@memory@) # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2001 SuSE GmbH. # # Vlatko Kosturjak , 2001. # KreÅ¡imir Jozić , 2008, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: zypp.hr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2011-04-03 12:05+0200\n" "Last-Translator: KreÅ¡imir Jozić \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 1.0\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 #, fuzzy msgid "Hal Exception" msgstr "Å ifriranje" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Nema koda" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andora" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Ujedinjeni arapski emirati" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanija" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenija" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "NorveÅ¡ki Antili" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antartika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "AmeriÄka Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austrija" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australija" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbedžan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosna i Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "BangladeÅ¡" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgija" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bugarska" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivija" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazil" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahami" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Butan" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet Otok" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Bocvana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Bjelorusija" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) OtoÄje" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Centralna AfriÄka Republika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å vicarska" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "OtoÄje Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ÄŒile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbija" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kostarika" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Capo Verde" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "UskrÅ¡nje otoÄje" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cipar" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Republika ÄŒeÅ¡ka" # DE #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "NjemaÄka" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danska" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanska republika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžir" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonija" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipat" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritreja" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Å panjolska" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopija" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finska" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falkland OtoÄje (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "OtoÄje Faroe" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francuska" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Ujedinjeno Kraljevstvo" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Francuska Gvineja" # DE #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grenland" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambija" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Gvineja" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatorijalna Gvineja" # GR #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "GrÄka" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Gvatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GN #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Gvineja-Bisau" # GH #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Gvajana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Hrvatska" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Madžarska" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezija" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irska" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indija" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Teritorij Britanskog Indijskog Oceana" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italija" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenija" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgistan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodža" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoros" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Sjeverna Koreja" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Južna Koreja" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvajt" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kajmansko otoÄje" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazahstan" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "LihtenÅ¡tajn" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Å ri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberija" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litva" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvija" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libija" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Crna Gora" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Sveti Martin" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonija" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mianmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolija" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Marinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritanija" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauricijus" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malezija" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" # GM #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibija" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Kaledonija" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # CK #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "OtoÄje Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigerija" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragva" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nizozemska" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "NorveÅ¡ka" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Novi Zeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Francuska Polinezija" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipini" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poljska" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Portoriko" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestinski teritorij" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragvaj" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunjska" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Srbija" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudijska Arabija" # CK #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomonski otoci" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "SejÅ¡eli" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å vedska" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenija" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "SlovaÄka" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sijera Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalija" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Sirija" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ÄŒad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" # CG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tajland" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunis" # CG #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turska" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tajvan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzanija" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Sjedinjene AmeriÄke Države" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Urugvaj" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venecuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Faroe OtoÄje" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vijetnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Južna Afrika" # GM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambija" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabve" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Pruža" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Zahtijeva" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Sukobi" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Zastarjelo" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "PreporuÄa" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Predlaže" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "PoboljÅ¡ava" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Dopunjava" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Ne mogu obrisati '%s'" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" # AZ #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikkans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanski" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arapski" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenijski" # AZ #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" # AZ #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskijski" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bjeloruski" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" # BJ #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" # BJ #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" # BJ #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosanski" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonski" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bugarski" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" # TD #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalanski" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kineski" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptski" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korzikanski" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒeÅ¡ki" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danski" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nizozemski" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engleski" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonski" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipinski" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finski" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francuski" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germanski (ostali)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "NjemaÄki" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irski" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galicijski" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" # GA #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" # GA #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" # HT #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haićanski" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Havajski" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebrejski" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" # HT #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "MaÄ‘arski" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandski" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonežanski" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Talijanski" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanski" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japanski" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" # GM #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" # MW #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Korejski" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdski" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" # GM #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latinski" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvijski" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litvanski" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "LuksemburÅ¡ki" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonski" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" # MW #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" # ML #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maorski" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Razni jezici" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "MalteÅ¡ki" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavijski" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolski" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "ViÅ¡e jezika" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "" # ML #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalski" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "NorveÅ¡ki" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubijski jezici" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" # LY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomanski jezici" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Perzijski" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "FeniÄki" # ML #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poljski" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugalski" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumunjski" # BI #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ruski" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrt" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Srpski" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilijski" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Hrvatski" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitski (ostali)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "" # GH #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "SlovaÄki" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenski" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoanski" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalski" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Å panjolski" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinijski" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sudanski" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerski" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å vedski" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Sirijski" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamilski" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tajlandski" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingonski" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" # CK #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turski" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrajinski" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" # VN # fuzzy #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vjetnamski" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "VelÅ¡ki" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "JidiÅ¡" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(ne istjeÄe)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(ne istjeÄe)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(ISTEKLO)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(istjeÄe unutar 24 sata)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, fuzzy, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(istjeÄe unutar 24 sata)" msgstr[1] "(istjeÄe unutar 24 sata)" msgstr[2] "(istjeÄe unutar 24 sata)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Alias repozitorija ne može zapoÄeti s toÄkom." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Ne mogu napraviti %s: %m\n" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Ne mogu napraviti datoteku." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ne mogu obrisati '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nepoznato" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nije podržano" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "neispravno" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Neispravan regularni izraz '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Neispravan URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Medij ne podržava operaciju" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Dozvola za pristup '%s' je odbijena." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "izvrÅ¡avanje nije uspjelo" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problem s instaliranim paketom %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Disk ne postoji." #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr "nije podržano" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "nemoj instalirati %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "zadrži %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "deinstalacija %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "deinstalacija %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "izvrÅ¡eno" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr "izvrÅ¡avanje nije uspjelo" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "veza nije uspostavljena" #: zypp/target/hal/HalContext.cc:127 #, fuzzy msgid "HalDrive not initialized" msgstr "Inicijalizacija mete nije uspjela:" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "Ne mogu napraviti datoteku rezervne kopije %1." #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL shema je obavezna komponenta" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Neispravna Url shema '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relativna putanja nije dozvoljena ako postoji autoritet" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #~ msgid "Failed to download %s from %s" #~ msgstr "Ne mogu skinuti %s sa %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Srbija i Crna Gora" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "Nesipravna lozinka" #, fuzzy #~ msgid "Ignore that %s is already set to install" #~ msgstr "Direktorij %1 je već na listi." #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Instaliram upravljaÄki program..." #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Instaliram upravljaÄki program..." #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "Instaliram upravljaÄki program..." #, fuzzy #~ msgid "install %s" #~ msgstr "Instaliram na:" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "Instaliram upravljaÄki program..." libzypp-17.7.0/po/hu.po000066400000000000000000003761431334444677500147300ustar00rootroot00000000000000# translation of zypp.hu.po to Hungarian # translation of zypp.new.po to # translation of zypp.po to # translation of zypp.hu.po to # Hungarian message File YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # # Marcel Hilzinger , 2001. # Sári Gábor , 2000. # Steve Varadi , 2000. # Zoltán Levárdy , 1999. # Kalman Kemenczy , 2006, 2007, 2008, 2009, 2010. # Ervin Novak , 2008, 2011. # Kalman Kemenczy , 2011, 2012, 2013. msgid "" msgstr "" "Project-Id-Version: zypp.hu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-12 12:07+0000\n" "Last-Translator: Robert Taisz \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal kivétel" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "'%s' bizonytalan típus %u byte, ellenÅ‘rzőösszeg '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Ismeretlen ország: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Nincs kód" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Egyesült Arab Emirátusok" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganisztán" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua és Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albánia" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Örményország" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Holland Antillák" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktisz" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentína" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikai Szamoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Ausztria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Ausztrália" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Aland-szigetek" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbajdzsán" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosznia-Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Banglades" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgium" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgária" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Szultanátus" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolívia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazília" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahama-szigetek" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhután" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet-sziget" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Fehéroroszország" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kókusz-szigetek (Keeling)" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongó" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Közép-Afrikai Köztársaság" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Svájc" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Elefántcsontpart" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook-szigetek" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kína" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Zöld-foki Köztársaság" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Karácsony-sziget" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Ciprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Csehország" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Németország" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Dzsibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dánia" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikai Köztársaság" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algéria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Észtország" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egyiptom" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Nyugat-Szahara" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanyolország" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiópia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finnország" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidzsi" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falkland-szigetek (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronéziai Szövetségi Ãllamok" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Feröer-szigetek" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Franciaország" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Nagyvárosi Franciaország" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Egyesült Királyság" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Grúzia" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Francia Guiana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghána" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltár" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grönland" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "EgyenlítÅ‘i Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Görögország" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Dél-Georgia és a Dél-Sandwich-sziget" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Bissau-Guinea" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard-sziget és McDonald-szigetek" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Horvátország" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Magyarország" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonézia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Ãrország" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Man sziget" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Brit indiai-óceáni terület" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irán" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Izland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Olaszország" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordánia" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japán" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgizisztán" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodzsa" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comore-szigetek" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts és Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Észak-Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Dél-Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvait" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kajmán-szigetek" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazahsztán" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Lao Népi Demokratikus Népköztársaság" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Santa Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Srí Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libéria" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litvánia" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Lettország" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Líbia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokkó" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" # CG #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegró" # SM #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint-Martin" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaszkár" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshall-szigetek" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedónia" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mianmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongólia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makaó" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Északi Mariana-szigetek" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritánia" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Málta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldív-szigetek" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexikó" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malajzia" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namíbia" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Új-Kaledónia" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk-sziget" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigéria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Hollandia" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norvégia" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepál" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Új-Zéland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omán" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Francia Polinézia" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Pápua Új-Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Fülöp-szigetek" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakisztán" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Lengyelország" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre és Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palesztin terület" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugália" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Románia" # src/trans.h:311 #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Szerbia" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Oroszország" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Szaúd-Arábia" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salamon-szigetek" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelle-szigetek" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Szudán" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Svédország" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Szingapúr" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Szent Ilona" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Szlovénia" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard és Jan Mayen-szigetek" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Szlovákia" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Szenegál" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Szomália" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome és Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Szíria" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Szváziföld" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- és Caicos-szigetek" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Csád" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Déli francia területek" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thaiföld" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tádzsikisztán" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Türkmenisztán" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunézia" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Kelet-Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Törökország" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad és Tobago" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tajvan" # TZ #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzánia" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajna" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Amerikai Egyesült Ãllamok - kisebb külsÅ‘ szigetek" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Amerikai Egyesült Ãllamok" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Üzbegisztán" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikán (Szentszék)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent és Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Brit Virgin-szigetek" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Virgin-szigetek (USA)" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis és Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Szamoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Dél-Afrika" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Szolgáltatásai:" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "ElÅ‘feltételei:" #: zypp/Dep.cc:98 msgid "Requires" msgstr "A következÅ‘ket igényli:" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Ütközik ezzel:" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Elavult" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "A következÅ‘ket ajánlja:" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "A következÅ‘ket javasolja:" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "A következÅ‘ket javítja:" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "A következÅ‘ket egészíti ki:" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "A pty nem nyitható meg (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "A csÅ‘ nem nyitható meg (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "A chroot sikertelen ide: '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "Sikertelen chdir a(z) '%s' könyvtárra a következÅ‘ gyökéren belül: '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Sikertelen chdir a(z) '%s' könyvtárra (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "'%s' végrehajtása sikertelen (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "A forkolás sikertelen (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "A parancs a következÅ‘ állapottal lépett ki: %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "A parancs végrehajtását a(z) %d szignál megszakította (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "A parancs végrehajtása ismeretlen hibával leállt." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Kísérlet nem létezÅ‘ kulcs (%s) importálására a(z) %s kulcstárban" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Nem sikerült importálni a kulcsot." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "A kulcs törlése sikertelen." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "A(z) %s aláírás-fájl nem található" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ismeretlen nyelv: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "abház" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "akínai" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "acsoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "cserkesz" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "afro-ázsiai (egyéb)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "afrihili" # src/trans.h:281 src/trans.h:318 #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "akkád" # src/trans.h:282 #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "albán" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "algonkin nylevek" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "dél-altáji" # src/trans.h:283 #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "amhara" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "óangol (kb. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "apacs nyelvek" # src/trans.h:283 #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "arab" # src/trans.h:283 #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "arámi" # src/trans.h:294 #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "aragóniai" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "örmény" # src/trans.h:227 #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "araukán" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "mesterséges (egyéb)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "asszámi" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "asztúriai" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "athapaszka nyelvek" # modules/inst_sw_single.ycp:117 # clients/inst_sw_single.ycp:1072 #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ausztrál nyelvek" # src/trans.h:283 #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "avar" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "avesztán" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "avádi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "aymara" # src/trans.h:311 #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "azeri" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "banda" # modules/inst_sw_single.ycp:117 # clients/inst_sw_single.ycp:1072 #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "bamileke nyelvek" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "baskír" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "balucsi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "bambara" # src/trans.h:220 #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "balinéz" # src/trans.h:284 #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "baszk" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "balti (egyéb)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "beja" # src/trans.h:286 #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "belorusz" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "bengáli" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "berber (egyéb)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "bhodzspuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "biszlama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "szikszika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "bantu (egyéb)" # src/trans.h:309 #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "bosnyák" # src/trans.h:285 #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "bradzs" # src/trans.h:285 #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "breton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "batak (Indonézia)" # src/trans.h:285 #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "burját" # src/trans.h:220 #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "buginéz" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "bolgár" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "burmai" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "közép-amerikai indián (egyéb)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "karib" # src/trans.h:287 #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "katalán" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "kaukázusi (egyéb)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "kelta (egyéb)" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "csamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "csibcsa" # src/trans.h:290 #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "csecsen" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "csagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "kínai" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "csúki" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "csinúk zsargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "csippewi" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "cseroki" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "egyházi szláv" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "csuvas" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "csejenn" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "hámi nyelvek" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "kopt" # src/trans.h:363 #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "cornwalli" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "korzikai" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "angol alapú kreol és pidgin (egyéb)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "francia alapú kreol és pidgin (egyéb)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "portugál alapú kreol és pidgin (egyéb)" # modules/inst_custom_part.ycp:498 #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "krí" # /usr/lib/YaST2/clients/lan_dns.ycp:87 # clients/lan_dns.ycp:271 #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "krími tatár" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "kreol és pidgin (egyéb)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "kasub" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "kusiti (egyéb)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Cseh" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dán" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "dargva" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "dajak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "delavár" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "slave (athapaszkai)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "dravidi (Other)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "alsó-szorbiai" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "holland, középkori (kb. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "holland" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "djula" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "dzongha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "egyiptomi (ókori)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "ekadzsuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "elamit" # src/trans.h:293 #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "angol" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "angol, középkori (1100-1500)" # src/trans.h:298 #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "eszperantó" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "észt" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ewe" # modules/inst_custom_part.ycp:493 #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "evondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "fang" # src/trans.h:294 #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "färöi" # modules/dialup/dialup.ycp:390 modules/dialup/dialup.ycp:400 # modules/dialup/dialup.ycp:410 # clients/lan_ISDN.ycp:908 #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "fidzsi" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Fülöp-szigeteki" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "finn" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "finn-ugor (egyéb)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "francia" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "francia, középkori (kb. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ófrancia (842-kb. 1400)" # src/trans.h:227 #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "fríz" # /usr/lib/YaST2/clients/lan_inetd_custom.ycp:762 #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "fulah" # src/trans.h:227 #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "friuli" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ga" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "germán (egyéb)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "grúz" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "német" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "geez" # src/trans.h:270 #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "gilberti" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "gaelic" # src/trans.h:303 #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ír" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "galíciai" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "német, késÅ‘ középkori (kb. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "német, késÅ‘ ókori (kb. 750-1050)" # modules/sound/sound.ycp:204 modules/sound/sound.ycp:459 # modules/sound/sound.ycp:473 modules/sound/sound.ycp:486 # modules/sound/sound.ycp:536 modules/sound/sound.ycp:621 # modules/sound/sound.ycp:683 modules/sound/sound.ycp:708 # modules/sound/sound.ycp:719 modules/sound/sound.ycp:754 # modules/sound/sound.ycp:801 modules/sound/sound.ycp:848 # modules/sound/sound.ycp:874 modules/sound/sound.ycp:918 #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "gót" # clients/inst_sw_single.ycp:1298 #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "görög, ókori (1453-ig)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "görög, modern (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "gudzsarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "haida" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "hausza" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "hawaii" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "héber" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "himacsáli" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "hindi" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "hettita" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "hmong" # HT #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "hiri motu" # src/trans.h:311 #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "felsÅ‘ szorb" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "magyar" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "hupa" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "izlandi" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "szecsuani yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "idzso" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "inuktitut" # src/prefs.c:380 #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "interlingva" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "interlingva (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "indiai (egyéb)" # src/trans.h:302 #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "indonéz" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "indoeurópai (egyéb)" # src/trans.h:293 #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ingus" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "inupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "iráni (egyéb)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "irokéz nyelvek" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "olasz" # src/trans.h:222 #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "jávai" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "lodzsbai" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japán" # clients/inst_sw_single.ycp:1320 clients/inst_sw_single.ycp:1971 #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "judeo-perzsa" # src/trans.h:283 #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "judeo-arab" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "kara-kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "kabil" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "kacsin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "kasmíri" # src/trans.h:316 #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "kavi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "kazah" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "kabardi" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "hászi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "khoisan (egyéb)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "khotáni" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "kirgiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbunduk" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "komi" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "kongó" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "koreai" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "kozrai" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "karacsai-balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "kru" # src/trans.h:316 #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "kumik" # src/trans.h:316 #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "kurd" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "kutenai" # src/trans.h:47 src/trans.h:50 #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "lamba" # src/prefs.c:397 src/trans.h:125 #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "lao" # src/trans.h:47 src/trans.h:50 #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "latin" # src/trans.h:289 #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "lett" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "lezgiai" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "limburgi" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litván" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "luxemburgi" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "luba-lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "luba-katanga" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "luo (Kenya és Tanzánia)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "lushai" # src/trans.h:305 #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "macedón" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "maduri" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "magahi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "marshall" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "maithili" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "makaszár" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "malajálam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ausztronéziai (egyéb)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "marathi" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "maszáj" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "maláj" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "moksa" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ír, középkori (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "vegyes nyelvek" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "mon-khmer (egyéb)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "malagázi" # src/trans.h:377 #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "máltai" # modules/dialup/dialup.ycp:391 modules/dialup/dialup.ycp:401 # modules/dialup/dialup.ycp:411 # clients/lan_ISDN.ycp:909 #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "mandzsu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "manobo nyelvek" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "mohauk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "moldáv" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "mossi" # modules/inst_sw_single.ycp:117 # clients/inst_sw_single.ycp:1072 #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "több nyelv" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "munda nyelvek" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "krík" # src/trans.h:294 #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "mirandai" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "marvari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "maja nyelvek" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "erzia" # modules/dialup/dialup.ycp:391 modules/dialup/dialup.ycp:401 # modules/dialup/dialup.ycp:411 # clients/lan_ISDN.ycp:909 #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "észak-amerikai indián" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "nápolyi" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "navahó" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "dél-ndebelei" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "észak-ndebelei" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "alsó-német" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "nepáli" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "nepál-bhászai" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "niger-kordofáni (egyéb)" # NU #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "niuei" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "norvég nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "norvég Bokmal" # TO #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "norvég, régi" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "norvég" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "északi sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "núbiai nyelvek" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "klasszikus nevari" # src/trans.h:290 #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "csicseva" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "njamvézi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "okcitán (1500 utáni)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "odzsibva" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "orija" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "oszét" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "török, ottomán (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "otomi nyelvek" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "pápua (egyéb)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "pangazini" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "pandzsábi" # clients/lan_modem.ycp:602 #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "palaui" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "perzsa, régi (kb. i.e. 600-400)" # clients/inst_sw_single.ycp:1320 clients/inst_sw_single.ycp:1971 #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "perzsa" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Fülöp-szigeteki (egyéb)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "föníciai" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "páli" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "lengyel" # src/trans.h:302 #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "pompeji" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "portugál" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "prakrit nyelvek" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "provanszi, régi (1500-ig)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "kecsua" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "rádzsasztáni" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "rapanui" # menuentries/menuentry_lan_route.ycp:14 #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "rarotongai" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "romansz (egyéb)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "rétoromán" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "romany-i" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "román" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "orosz" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "szango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "jakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "dél-amerikai indián (egyéb)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "salishi nyelvek" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "szamaritánus arámi" # src/trans.h:193 #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "szanszkrit" # src/trans.h:193 #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "szaszak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "szantáli" # src/trans.h:311 #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "szerb" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "szicíliai" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "skót" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "horvát" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "sémi (egyéb)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ír, régi (900-ig)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "jelnyelvek" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "sán" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "szidamo" # src/trans.h:270 #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "szinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "sziú nyelvek" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "sino-tibeti (egyéb)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "szláv (egyéb)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "szlovák" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "szlovén" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "déli számi" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "északi számi" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "számi nyelvek (egyéb)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "lule számi" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "inári számi" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "szamoai" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "szkolt számi" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "szindi" # modules/inst_sw_select.ycp:125 # /usr/lib/YaST2/clients/inst_sw_select.ycp:194 # clients/online_update.ycp:39 #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "szogdiai" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "szomáli" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "szonghai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "sotho, déli" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "spanyol" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "szardíniai" # clients/lan_nfs_fstab.ycp:272 #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "szerer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "nílus-szaharai (egyéb)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "szvázi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "szukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "szundanéz" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "szuszu" # src/trans.h:311 #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "sumer" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "szuahéli" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "svéd" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "szír" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "tahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "tai (egyéb)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "tatár" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "tádzsik" # src/trans.h:116 #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "tibeti" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "tigre" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "tigrinja" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "tamasek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "tonga (Nyasa)" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "tongai (Tonga-szigetek)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "tok pisin" # src/trans.h:227 #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "cimsiai" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "türkmén" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "tupi nyelvek" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "török" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "altáji (egyéb)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "tuvíniai" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "udmurti" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "ugariti" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ujgur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ukrán" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "umbundu" # src/prefs.c:380 #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "meghatározatlan" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "üzbég" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "venda" # src/trans.h:270 #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "vietnami" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "vóti" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "vakasai nyelvek" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "valamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "varai" # modules/inst_config_x11.ycp:127 # /usr/lib/YaST2/clients/inst_config_x11.ycp:750 #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "vaso" # modules/inst_config_x11.ycp:127 # /usr/lib/YaST2/clients/inst_config_x11.ycp:750 #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "walesi" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "szorbiai nyelvek" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "vallon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "kalmik" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "xhosa" # src/prefs.c:397 src/trans.h:125 #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "yapi" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "jiddis" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "jupik nyelvek" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "zapotek" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "zenaga" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "A rendszer a következÅ‘ műveleteket hajtja végre:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "nem jár le" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "lejárt: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "lejár: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(nem jár le)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(LEJÃRT)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(24 órán belül lejár)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(%d napon belül lejár)" msgstr[1] "(%d napon belül lejár)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" "A következÅ‘ telepítésiforrás-könyvtár nem olvasható: '%1%': A rendszer " "megtagadta az engedélyt" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Nem sikerült a(z) '%s' könyvtár beolvasása." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" "A következÅ‘ telepítésiforrás-fájl nem olvasható: '%1%': A rendszer " "megtagadta az engedélyt" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "A telepítési forrás álneve nem kezdÅ‘dhet ponttal." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "A szolgáltatás álneve nem kezdÅ‘dhet ponttal." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "A '%s' fájl nem nyitható meg írásra." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Ismeretlen '%1%' szolgáltatás: az árva '%2%' szolgáltatástároló eltávolítása" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "A megadott URL-címen nem találhatók érvényes metaadatok" msgstr[1] "A megadott URL-címeken nem találhatók érvényes metaadatok" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "A(z) %s nem hozható létre" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Nem hozható létre a metaadat gyorsítótár-könyvtára." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "A(z) '%s' telepítési forrás gyorsítótárának felépítése" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" "Ãrási engedélyek hiányában nem hozható létre gyorsítótár a(z) %s helyen." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Nem sikerült a tároló gyorsítótárazása (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Nem kezelt tárolótípus" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Hiba történt a következÅ‘bÅ‘l való olvasás során: \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Ismeretlen hiba a '%s' beolvasása közben" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "A(z) '%s' telepítési forrás hozzáadása" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Érvénytelen tárolónév: '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "A(z) '%s' telepítési forrás eltávolítása" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Nem sikerült a tároló felismerése." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "A(z) '%s' törlése sikertelen" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Nem sikerült a szolgáltatás felismerése." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Érvénytelen LDAP URL lekérdezési karakterlánc" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Érvénytelen LDAP URL lekérdezési paraméter: '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Az URL-objektum másolása sikertelen" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Érvénytelen üres URL-objektum hivatkozás" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Az URL-komponensek elemzése sikertelen" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "ismeretlen" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nem támogatott" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "1. szintű" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "2. szintű" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "3. szintű" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "További ÜgyfélszerzÅ‘dés szükséges" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "érvénytelen" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Nincs meghatározva a támogatás szintje" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "A gyártó nem biztosít támogatást." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Probléma azonosítás, amely a kompatibilitási információ nyújtására, " "telepítési segítségre, felhasználási támogatásra, folyamatos karbantartásra, " "és alapszintű hibakeresésre terjed ki. Az 1. szintű támogatásnak nem célja a " "termék hibáinak javítása." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Probléma izoláció, amely a vásárlói problémák reprodukálására, a problémák " "beazonosítására és az 1. szintű támogatás által meg nem oldott problémák " "javítására terjed ki." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Probléma megoldás, amely a fejlesztÅ‘k bevonásával a 2. szintű támogatás " "által beazonosított összetett termékhibák megoldását szolgálja." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "További ügyfélszerzÅ‘dés szükséges a támogatáshoz." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Ismeretlen támogatási opció. Leírás nem található" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "A rendszerkezelÅ‘t a %d (%s) pid-del rendelkezÅ‘ folyamat zárolta.\n" "Kérem, zárja be az alkalmazást, majd próbálja újra." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ElÅ‘zmények:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "A zárolt fájl nem nyitható meg: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Ezt a folyamatot már elindította egy másik program." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ismeretlen illeszkedÅ‘mód: '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Ismeretlen illeszkedÅ‘mód: '%s', a(z) %s mintához." #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Érvénytelen reguláris kifejezés '%s': regcomp visszatérési értéke: %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Érvénytelen reguláris kifejezés '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Felhasználóhitelesítés szükséges ehhez: '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Látogassa meg a Novell Ügyfélközpotot (Novell Customer Center), hogy " "ellenÅ‘rizni tudja, hogy a regisztrációja érvényes és nem jár re." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Nem sikerült a(z) %s felcsatolása ide: %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "A(z) %s eltávolítása sikertelen" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Hibás fájlnév: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" "Az adathordozó elérése a(z) '%s' művelet végrehajtása közben nem sikerült." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "A(z) '%s' fájl nem található a(z) '%s' adathordozón" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "A fájl írása sikertelen: '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Az adathordozó nincs csatlakoztatva" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Hibás csatolási pont" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "A letöltés (curl) inicializálása meghiúsult: '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "%s rendszerkivétel történt a(z) '%s' adathordozón." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "A(z) '%s' elérési út a(z) '%s' adathordozón nem fájl." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "A(z) '%s' elérési út a(z) '%s' adathordozón nem könyvtár." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Hibás URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Üres hosztnév a hivatkozásban" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Üres fájlrendszer a hivatkozásban" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Üres cél a hivatkozásban" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Érvénytelen URI séma: '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Az adathordozó nem támogatja ezt a műveletet" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Letöltési (curl) hiba: '%s'\n" "Hibakód: %s\n" "Hibaüzenet: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Hiba történt a '%s' letöltési (curl) beállításainak beállítása közben:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "A '%s' adathordozó forrása nem tartalmazza a kívánt adathordozót" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Jelenleg egy másik folyamat használja a(z) '%s' adathordozót" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Nincs kiadható adathordozó" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "A(z) '%s' adathordozó kiadása sikertelen" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Hozzáférés megtagadva: '%s'." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "IdÅ‘túllépés a '%s' elérése közben." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "A '%s' hely ideiglenesen nem elérhetÅ‘." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " hiba az SSL-tanúsítvánnyal, ellenÅ‘rizze, hogy megfelelÅ‘-e a CA tanúsítványa " "a következÅ‘höz: '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Csatlakoztatási pont létrehozása: Nem található írható könyvtár " "csatlakoztatási pont létrehozásához" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Nem támogatott HTTP hitelesítési metódus: '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "ElÅ‘ször az 'lsof' csomagot kell telepíteni." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "'%s' szükséges paraméter hiányzik." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Legalább az egyik szükséges a '%s' és '%s' paraméterekbÅ‘l." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Az aláírás-ellenÅ‘rzés sikertelen" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "A(z) %s csomag megsérülhetett az átvitel közben. Megismétli az átvitelt?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Nem sikerült a %s csomag beszerzése. Megismétli az átvitelt?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "az applydeltarpm ellenÅ‘rzés sikertelen." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "az applydeltarpm futtatása sikertelen." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "A szolgáltatási bÅ‘vítmény nem támogatja attribútum módosítását." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "A(z) '%s' fájlt nem biztosítja a(z) '%s' telepítési forrás" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "A telepítés forrás nem tartalmaz url-t." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "A(z) %1% fájl\n" " (csomag:\n" " %2%)\n" " ütközik a(z)\n" " %3% csomag fájljával" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "A(z) %1% fájl\n" " (csomag:\n" " %2%)\n" " ütközik a(z)\n" " %3% telepítés fájljával" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "A(z) %1% fájl\n" " (telepítés:\n" " %2%)\n" " ütközik a(z) %3%\n" " csomag fájljával" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "A(z) %1% fájl\n" " (telepítés:\n" " %2%)\n" " ütközik a(z) %3%\n" " telepítés fájljával" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "A(z) %1% fájl\n" " (csomag:\n" " %2%)\n" " ütközik a(z)\n" " %4%\n" " csomag\n" " %3% fájljával" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "A(z) %1% fájl\n" " (csomag:\n" " %2%)\n" " ütközik a(z)\n" " %4%\n" " telepítés\n" " %3% fájljával" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "A(z) %1% fájl\n" " (telepítés:\n" " %2%)\n" " ütközik a(z)\n" " %3%\n" " fájllal (csomag:\n" " %4%)" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "A(z) %1% fájl\n" " (telepítés:\n" " %2%)\n" " ütközik a(z)\n" " %3%\n" " fájllal (telepítés:\n" " %4%)" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Nem hozható létre sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "%s csomag megtörése néhány függÅ‘ség figyelmen kívül hagyásával" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "egyes függÅ‘ségek általános mellÅ‘zése" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s nem tartozik a distupgrade telepítési forráshoz" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s alacsonyabb szintű architektúrával rendelkezik" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "probléma a telepített csomaggal: %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "ütközÅ‘ kérelmek" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "bizonyos függÅ‘ségi probléma" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "semmi nem biztosítja a(z) %s csomagot" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Minden szükséges telepítési forrást engedélyezett?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "a(z) %s csomag nem létezik" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "nem támogatott kérelem" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "A(z) %s a rendszertÅ‘l származik, ezért törlése nem lehetséges." # modules/inst_target_part.ycp:676 #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s nem telepíthetÅ‘" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" "semmi sem biztosítja a(z) %s csomagot,\n" "amely szükséges a(z) %s csomag telepítéséhez" # modules/inst_target_part.ycp:676 #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "nem telepíthetÅ‘ %s és %s is" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s ütközik a(z) %s csomaggal, amit a(z) %s csomag biztosít" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s elavulttá teszi a(z) %s csomagot, amit a(z) %s csomag biztosít" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s elavulttá teszi a(z) %s csomagot, amit a(z) %s csomag biztosít" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s ütközik a(z) %s csomaggal, amit saját maga biztosít" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s csomagnak a következÅ‘re van szüksége: %s, de ez nem teljesíthetÅ‘" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "törölt csomagok: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "nem telepíthetÅ‘ szolgáltatók: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "nem telepíthetÅ‘ szolgáltatók: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "távolítsa el a zárolást a(z) %s eltávolításának engedélyezéséhez" # modules/inst_target_part.ycp:676 #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "Ne telepítse a(z) %s csomagot" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s megtartása" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "távolítsa el a zárolást a(z) %s telepítésének engedélyezéséhez" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "A kért módosítás a rendszer meghibásodásához vezet!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "a hibás rendszer figyelmeztetésének figyelmen kívül hagyása" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "ne kérdezzen rá a %s-t biztosító feloldható telepítésére" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "ne kérdezzen rá a %s-t biztosító feloldhatók eltávolítására" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "Ne telepítse a(z) %s csomag legújabb verzióját" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s megtartása az alacsonyabb rendű architektúra ellenére" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s telepítése az alacsonyabb architektúra ellenére" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "az elavult %s megtartása" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "%s telepítése a figyelmen kívül hagyott tárolóból" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "A(z) %s csomag visszafejlesztése a(z) %s csomagra" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "A(z) %s csomag helyett a(z) %s architektúrájú csomag telepítése" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "%s telepítése (gyártó megváltoztatásával)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "%s cseréje erre: %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "%s eltávolítása" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "'%1%' %%posttrans parancsfájl végrehajtása" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "%posttrans parancsfájlok végrehajtása" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " végrehajtva" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " végrehajtás sikertelen" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s már futtatva volt mint %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " megszakítás közben a végrehajtás átugorva" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Hiba történt a frissítési értesítés küldésekor." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Új frissítési üzenet" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "A kérésnek megfelelÅ‘en a telepítés megszakad." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "A libzypp ezen verziója HAL-támogatás nélkül készült." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "A HalContext nem kapcsolódott" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "A HalDriver inicializálása sikertelen" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "A HalVolume inicializálása sikertelen" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "A dbus kapcsolat létrehozása sikertelen" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: A libhal kontextus létrehozása sikertelen" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: A dbus kapcsolat beállítása sikertelen" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "A HAL kontextus inicializálása sikertelen -- lehetséges, hogy a hald nem fut?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "CD-ROM meghajtó nem található" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM sikertelen: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Nem sikerült a(z) %1% fájlból importálni a publikus kulcsot" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "A(z) %1% publikus kulcs eltávolítása sikertelen" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "A csomag nincs aláírva." # modules/dialup/dialup.ycp:231 modules/dialup/dialup.ycp:246 # modules/dialup/dialup.ycp:259 # menuentries/menuentry_lan_sendmail.ycp:14 #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s módosított konfigurációs fájljai:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "Az rpm a következÅ‘ként mentette %s-t: %s, de nem sikerült megállapítani a " "különbséget" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Az rpm a következÅ‘ként mentette %s-t: %s.\n" "A különbség elsÅ‘ 25 sora:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "Az rpm a következÅ‘ként hozta létre %s-t: %s, de nem sikerült megállapítani a " "különbséget" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Az rpm a következÅ‘ként hozta létre %s-t: %s.\n" "A különbség elsÅ‘ 25 sora:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "További rpm kimenet" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "%s másolata létrehozva" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Az aláírás rendben van" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Ismeretlen típusú aláírás" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Az aláírás nem felelt meg az ellenÅ‘rzésen" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Az aláírás rendben van, de a kulcs nem megbízható" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Az aláírások nyilvános kulcsa nem érhetÅ‘ el" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "A fájl nem létezik, vagy nem ellenÅ‘rizhetÅ‘ az aláírása" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "A fájl nincs aláírva" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "A mutex attribútumok inicializációja sikertelen" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Rekurzív mutex attribútum nem állítható be" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "A rekurzív mutex attribútum inicializációja sikertelen" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "A mutex zárolása sikertelen" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "A mutex zárolása nem oldható fel" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Az Url séma nem engedélyezi a(z) %s használatát" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Érvénytelen %s-komponens: '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Érvénytelen %s-komponens" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" "A lekérdezési karakterlánc feldolgozása ehhez az URL-hez nem támogatott" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Az URL-séma megadása szükséges" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Érvénytelen URL-séma: '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Az URL-séma nem engedélyezi a felhasználónevet" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Az URL-séma nem engedélyezi a jelszót" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Az URL-sémában a gépkomponens (host) megadása kötelezÅ‘" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Az Url séma megadása nem engedélyezi a gépkomponenst (host)" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Hibás gépkomponens (host): '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Az Url séma nem engedélyezi a portot" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Érvénytelen port komponens: '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Az Url sémában az elérési útvonal megadása szükséges" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" "Megadott hitelesítÅ‘ esetén a relatív elérési útvonal megadása nem támogatott" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "A kódolt karakterlánc NUL byte-ot tartalmaz" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" "Érvénytelen tömbszétválasztás-elválasztó (array split separator) karakter" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" "Érvénytelen leképezésszétválasztás-elválasztó (map split separator) karakter" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Érvénytelen tömbösszefűzés-elválasztó (array join separator) karakter" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Nem sikerült a(z) %s fájlból importálni a publikus kulcsot: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "A(z) %s publikus kulcs eltávolítása sikertelen: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Nincs elérhetÅ‘ hurokeszköz a '%s' által tartalmazott képfájl " #~ "felcsatolásához" #~ msgid "generally ignore of some dependecies" #~ msgstr "néhány függÅ‘ség figyelmen kívül hagyása" # modules/inst_target_part.ycp:676 #~ msgid "do not forbid installation of %s" #~ msgstr "A(z) %s csomag telepítése" # modules/inst_target_part.ycp:676 #~ msgid "do not keep %s installed" #~ msgstr "A(z) %s csomag eltávolítása" #~ msgid "Serbia and Montenegro" #~ msgstr "صربيا ومونتنيجرو" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "خيار list غير معروÙ" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "تعذر حل التبعيات" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "A(z) %s publikus kulcs elkészítése %s kulcstartóból %s fájlba sikertelen" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "Nem létezÅ‘ kulcsot (%s) próbált a %s kulcstartóba importálni" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "A könyvtár '/'-ra váltása a chroot-ban sikertelen (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "A letöltés (Metalink curl) inicializálása meghiúsult: '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Letöltési (metalink curl) hiba: '%s'\n" #~ "Hibakód: %s\n" #~ "Hibaüzenet: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Letöltés megszakítva: at %d%%" #~ msgid "Download interrupted by user" #~ msgstr "A letöltés a felhasználó megszakította" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Hiba történt a '%s' letöltési (metalink curl) beállításainak beállítása " #~ "közben:" #~ msgid "Failed to download %s from %s" #~ msgstr "Nem sikerült a(z) %s letöltése innen: %s" libzypp-17.7.0/po/id.po000066400000000000000000003214621334444677500147020ustar00rootroot00000000000000# Indonesian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999-2001 SuSE GmbH. # I Made Wiryana , 1999. msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2017-10-03 15:55+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.0.3\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Pengecualian Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipe ambigu '%s' untuk '%u' byte checksum '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Negara tidak diketahui: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Tidak ada kode" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" # AE #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Uni Emirat Arab" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua dan Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" # AL #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Belanda Antilles" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antartika" # AR #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Amerika" # AT #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" # AU #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Kepulauan Aland" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia Herzegovina" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" # BE #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" # BG #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" # BH #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" # BM #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" # BO #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazil" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahama" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Pulau Bouvet" # BW #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" # BY #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarusia" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" # CA #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kepulauan Cocos (Keeling)" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Republik Afrika Tengah" # CH #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Swiss" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Pantai Gading" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Kepulauan Cook" # CL #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Cina" # CO #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolombia" # CR #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kosta Rica" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Tanjung Verde" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Pulau Christmas" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Siprus" # CZ #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Republik Ceko" # DE #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Jerman" # DJ #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Jibouti" # DK #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Denmark" # DM #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" # DO #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Republik Dominika" # DZ #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Aljazair" # EC #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekuador" # EE #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" # EG #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Mesir" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sahara Barat" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" # ES #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanyol" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Ethiopia" # FI #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlandia" # FJ #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Kepulauan Malvinas" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federasi Mikronesia" # FO #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Kepulauan Faroe" # FR #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Perancis" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Perancis Metropolitan" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Inggris" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" # GE #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Grujia" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guiana Perancis" # DE #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" # GI #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Jibraltar" # GL #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Greenland" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" # GP #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinea Equator" # GR #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Yunani" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Georgia Selatan dan Pulau Sandwich Selatan" # GT #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" # GU #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" # HK #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Pulau Heard dan Kepulauan McDonald" # HN #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" # HR #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroasia" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungaria" # ID #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" # IE #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlandia" # IL #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Palestina" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Pulau Man" # IN #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Inggris, Teritori Samudera Indonesia" # IQ #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" # IS #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islandia" # IT #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" # JM # fuzzy #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaika" # JO #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordania" # JP #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Jepang" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgistan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kamboja" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoros" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Santa Kitts dan Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Korea Utara" # ZA #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Korea Selatan" # KW #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Pulau Cayman" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakhstan" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laos" # LB #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Santa Lucia" # LI #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" # LT #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lithuania" # LU #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" # LV #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Liberia" # MA #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" # MC #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" # MD #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" # CG #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" # SM #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "San Marino" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Kepulauan Marshall" # MK #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" # MO # fuzzy #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Kepulauan Mariana Utara" # MQ #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" # MT #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" # MX #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksiko" # MY #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Caledonia Baru" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Kepulauan Norfolk" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" # NI #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" # NL #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Belanda" # NO #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norwegia" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" # NR #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" # NZ #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Selandia Baru" # OM #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" # PA #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" # PE #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinesia Perancis" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nugini" # PH #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipina" # PK #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" # PL #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polandia" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Santa Pierre dan Miquelon" # PN #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" # PR #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestina" # PT #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugis" # PW #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" # PY #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" # QA #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" # RO #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumania" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Rusia" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" # SA #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arab Saudi" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Pulau Sulaiman" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" # SD #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" # SE #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Swedia" # SG #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapura" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Santa Helena" # SI #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Kepulauan Svalbard dan Jan Mayen" # SK #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakia" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome dan Principe" # SV #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Suriah" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Kepulauan Turks dan Caicos" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Perancis Selatan" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" # TH #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" # TJ #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tajikistan" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" # TN #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor Leste" # TR #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turki" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad dan Tobago" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" # TW # fuzzy #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" # UA #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Kepulauan Luar Minor Amerika Serikat" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Amerika Serikat" # UY #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" # UZ #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Holy See (Kota Vatikan)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" # VE #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Kepulauan Virgin Britania Raya" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Kepulauan Virgin, U.S." # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Kepulauan Wallis dan Futuna" # WS #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" # YE #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yaman" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" # ZA #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Afrika Selatan" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" # ZW #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Menyediakan" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Prasyarat" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Syarat" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflik" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Usang" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Rekomendasi" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Saran" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Meningkatkan" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Suplemen" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Tidak dapat membuka pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Tidak dapat membuka pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Tidak dapat chroot untuk '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Tidak dapat chdir ke '%s' dalam chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Tidak dapat membuka ke '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Tidak dapat mengeksekusi '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Tidak dapat melakukan fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Perintah berhenti dengan status %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Perintah terhenti oleh sinyal %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Perintah berhenti dengan galat yang tidak diketahui." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Mencoba untuk mengimpor kunci %s tidak ada ke keyring %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Gagal mengimpor kunci publik %1%" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Gagal menghapus kunci." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Tanda tangan file %s tidak ditemukan" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Bahasa tidak diketahui: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" # AZ #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazian" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Bahasa Aceh" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiatic (Lainnya)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrika" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadia" # AL #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albania" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" # LK #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Bahasa Algonquian" # ZA #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai Selatan" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "English, Lampau (ca.450-1100)" # LK #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Bahasa Athabaskan" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arab" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaic" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonese" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenian" # MR #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucanian" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Buatan (Lainnya)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamese" # AT #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Austria" # AU #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athabaskan" # AU #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australia" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avar" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Myanmar" # AZ #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaijan" # CA #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" # LK #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" # GM #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Bahasa Bali" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basque" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Bassa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltic" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" # BY #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Belarus" # BM #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber (Lainnya)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" # BH #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" # BJ #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (Other)" # BW #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnia" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Breton" # ID #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak" # BG #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugis" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgaria" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmese" # BJ #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" # TD #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Amerika Hindi Bagian Tengah (Lainnya)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalan" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasian (Lainnya)" # LB #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtic (Lainnya)" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" # CN #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Chechen" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Cina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook Jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Church Slavic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" # LK #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Bahasa Chamic" # CR #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptik" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" # CR #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsika" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creoles dan Pidgins, Berbasis Bahasa English(Lainnya)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creoles dan Pidgins, Berbasis Bahasa Perancis (Lainnya)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creoles dan Pidgins, Berbasis Bahasa Portugis (Lainnya)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Crimean Tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creoles dan Pidgins (Lainnya)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kashubian" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitic (Lainnya)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Cekoslowakia" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Denmark" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" # DM #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidian (Lainnya)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Lower Sorbian" # PW #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Belanda, Antara (Th.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Belanda" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Mesir Kuno" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inggris (British)" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Inggris, Antara (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonia" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" # FR #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" # FO #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Kepulauan Faroe" # HT #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" # FJ #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijian" # PH #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipina" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finlandia" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finno-Ugrian (Lainnya)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Prancis" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Prancis, Antara (Thn.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Prancis, Kuno (Thn.842-1400)" # FR #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisian" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" # FI #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulian" # GU #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" # LY # fuzzy #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Jerman (Lainnya)" # GE #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Grujia" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Jerman" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Yunani" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertese" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandia" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galician" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Jerman, Menengah Tinggi (Thn.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "German, Kuno Tinggi (Thn.750-1050)" # IN #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "India" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gothic" # GA #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Yunani, Kuno (untuk 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Yunani, Modern (1453 keatas)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarat" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich’in" # HT #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" # HT #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawai" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Israel" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" # IN #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "India" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Haiti" # TO #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Tonga" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Serbia" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hongaria" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandia" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" # LT #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Asosiasi Bahasa Bantu Internasional)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indic (Lainnya)" # ID #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesia" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-Eropa (Lainnya)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" # IN #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "IndiaInupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iran (Lainnya)" # LK #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Bahasa Iroquoia" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italia" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Bahasa Jawa" # LB #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Jepang" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeo-Persian" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeo-Arab" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" # BH #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" # GM #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" # CA #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kanada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" # MW #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakhstan" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (Lainnya)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Korea" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" # PA #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdish" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" # LB #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" # UG #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" # GM #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" # LB #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" # LV #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latin" # LV #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvia" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" # LU #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgan" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lithuania" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" # LU #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxembourg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" # SD #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya dan Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Masedonia" # MV # fuzzy #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madura" # MW #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Kepulauan Marshall" # ML #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" # MY #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesian (Lainnya)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" # MW #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" # MT #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irish, Antara (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi’kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" # LK #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Ragam Bahasa" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Lainnya)" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasy" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" # KY #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Bahasa Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" # MD #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavian" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolian" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" # LK #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Multi Bahasa" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Bahasa Munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" # KY #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Bahasa Mayan" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" # MP #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indian Amerika Utara" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitan" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, Selatan" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, Utara" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Jerman Bawah" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanian (Lainnya)" # NU #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norwegian Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norwegian Bokmal" # TO #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norse, Kuno" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norwegia" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Utara Sothi=o" # LK #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Bahasa Nubian" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Classical Newari" # CL #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (setelah 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turkish, Ottoman (1500-1928)" # LK #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Bahasa Otomia" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papua (Lainnya)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" # PW #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" # PY #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" # PA #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" # PW #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persia, Kuno (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "SerbiaPersian" # PH #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "FIlipina (Lainnya)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Phoenician" # ML #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polandia" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugis" # LK #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Bahasa Prakrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provencal, Kuno (ke 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" # TJ #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" # JP #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romance (Other)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-Romance" # RO #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romany" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumania" # RE #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rusia" # CA #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" # WS #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indian Amerika Selatan (Lainnya)" # LK #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Bahasa Salishan" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritan Aramaic" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskerta" # WS #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbia" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilian" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroasia" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitic (Lainnya)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irish, Kuno (ke 900)" # LK #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Bahasa Sign" # SD #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" # WS #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" # LK #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouan Languages" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetan (Lainnya)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavic (Lainnya)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakia" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenia" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Selatan Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Utara Sami" # LK #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Bahasa Sami (Lainnya)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" # WS #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" # SI #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" # SD #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" # SO #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalia" # TO #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, Selatan" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spanyol" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinian" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Saharan (Lainnya)" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" # SD #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Bahasa Sunda" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerian" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Swedia" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syriac" # TW # fuzzy #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (Lainnya)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" # QA #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" # BE #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" # TJ #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" # TW # fuzzy #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetan" # NE #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Kepulauan Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" # BW #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" # TR #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmenistan" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" # LK #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Bahasa Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turkish" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaic (Lainnya)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" # TN #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinian" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritic" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighur" # UA #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukraina" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Tidak dapat ditentukan" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" # UZ #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbekistan" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" # VN # fuzzy #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" # VN # fuzzy #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnam" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" # KY #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Bahasa Wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" # PY #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "ParaguayWaray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Welsh" # LK #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Bahasa Sorbian" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" # LK #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Bahasa Yupi" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" # GD #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" # TV #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Tindakan berikut akan dilakukan:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "tidak kedaluwarsa" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "kedaluwarsa: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "kedaluwarsa: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(Tidak berakhir)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(BERAKHIR)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(Berakhir dalam waktu 24 jam)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(Berakhir dalam %d hari)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Tidak dapat membaca direktori repo '%1%': Izin ditolak" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Gagal membaca direktori '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Tidak dapat membaca berkas repo '%1%': Izin ditolak" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Alias repository tidak dapat dijalankan dengan dot." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Alias layanan tidak dapat dimulai dengan dot." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Tidak dapat membuka '%s' untuk menulis." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Layanan tidak diketahui '%1%': Menghapus layanan repositori yang tidak " "terpakai '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Metadata yang sah tidak ditemukan pada URL yang ditentukan" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Tidak dapat membuat %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Tidak dapat membuat metadata direktori cache." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Membangun repositori cache '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Tidak dapat membuat cache di %s - tidak ada izin untuk menulis." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Gagal untuk membuat cache repo (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Jenis repositori yang tidak tertangani" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Galat saat membaca dari '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Error tidak diketahui dari '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Menambah repositori '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nama berkas repo tidak sah di '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Menghapus reposotori '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Tidak dapat mengetahui di mana repo disimpan." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Tidak dapat menghapus '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Tidak dapat mengetahui di mana layanan disimpan." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Permintaan String LDAP URL tidak sahih" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parameter '%s’ query LDAP URL tidak valid" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Tidak dapat mengkloning objek Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Referensi objek URL kosong tidak valid" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Tidak dapat mengurai komponen Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "tidak dikenal" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "Tidak didukung" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Level 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Level 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Level 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Kontrak pelanggan tambahan diperlukan" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "Tidak sah" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Tingkat dukungan ini tidak ditentukan" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Vendor tidak menyediakan dukungan." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Penentuan masalah, yang berarti dukungan teknis yang dirancang untuk " "memberikan informasi kompatibilitas, bantuan instalasi, dukungan penggunaan, " "pemeliharaan berlanjut dan pemecahan masalah dasar. Dukungan Level 1 tidak " "dimaksudkan untuk memperbaiki kesalahan produk cacat." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Isolasi masalah, yang berarti dukungan teknis yang dirancang untuk " "menduplikasi masalah pelanggan, mengisolasi pada area masalah dan memberikan " "solusi untuk masalah tidak diselesaikan dengan Level 1 Support." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Penyelesaian masalah, yang berarti dukungan teknis dirancang untuk " "menyelesaikan masalah yang kompleks dengan cara melibatkan teknik pada " "penyelesaian produk yang cacat sebagaimana telah diidentifikasi oleh Support " "Level 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Kontrak pelanggan tambahan diperlukan untuk mendapatkan dukungan." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Opsi support tidak diketahui. Deskripsi tidak ditemukan" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Manajemen sistem dikunci oleh aplikasi dengan pid %d (%s).\n" "Tutup aplikasi ini sebelum mengulang kembali." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Riwayat:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Ttidak dapat membuka file kunci: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Tindakan ini sudah dijalankan oleh program lain." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Kesesuaian mode '%s' tidak diketahui" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Kesesuaian mode '%s' tidak diketahui untuk pola '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expresi reguler '%s' tidak valid: regcomp kembali %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expresi reguler '%s' tidak valid" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autentikasi dibutuhkan untuk '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Kunjungi pusat pelanggan Novell untuk memeriksa apakah pendaftaran anda " "valid dan tidak kadaluarsa." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Gagal untuk mengaitkan%s pada %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Gagal untuk melepas %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nama file yang buruk: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Medium tidak dibuka ketika mencoba untuk melakukan tindakan '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "File '%s' tidak ditemukan pada medium '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Tidak dapat menulis file '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medium tidak dilampirkan" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Media poin lampiran buruk" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Unduh (curl) inisialisasi gagal untuk '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Pengecualian sistem '%s' pada medium '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Lokasi '%s' pada medium '%s' bukan sebuah file." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Lokasi '%s' pada medium '%s' bukan sebuah direktori." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI cacat" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nama host kosong pada URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Filesistem kosong pada URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Tujuan kosong pada URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Skema URI tidak didukung pada '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operasi tidak didukung oleh medium" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Unduh (curl) gagal untuk '%s':\n" "Kode kesalahan: %s\n" "Pesan kesalahan: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Kesalahan terjadi ketika mengatur download (curl) pada opsi untuk '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Sumber media '%s' tidak berisi media yang diinginkan" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Medium '%s' sedabg digunakan oleh instansi lain" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Tidak dapat mengeluarkan media apapun" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Tidak dapat mengeluarkan media '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Izin untuk mengakses '%s' ditolak." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Timeout melebihi ketika mengakses '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Lokasi '%s' tidak dapat diakses sementara waktu." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " Masalah SSL Sertifikat, pastikan CA cert sudah benar untuk '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Buat point lampiran: Tidak dapat menemukan direktori yang dapat ditulis " "untuk membuat point lampiran" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Metode autentikasi HTTP '%s' tidak didukung" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Mohon pasang paket 'lsof' terlebih dahulu." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Kebutuhan atribut '%s' hilang." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Satu atau kedua dari '%s' or '%s' atribut dibutuhkan." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Verifikasi tanda tangan gagal" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Paket %s terlihat korup saat transfer berlangsung. Apakah anda henda " "mengulang pemulihan?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Gagal untuk menyediakan paket %s. Apakah anda hendak memulai ulang pemulihan?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "pengecekan applydeltarpm gagal." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm gagal." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Layanan Plugin tidak mendukung perubahan atribut." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Tidak dapat meyediakan file '%s' dari repositori '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Tidak ada url pada repositori." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "File %1%\n" " dari paket\n" " %2%\n" " konflik dengan file dari paket\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "File %1%\n" " dari paket\n" " %2%\n" " konflik dengan file dari pemasangan\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "File %1%\n" " dari pemasangan\n" " %2%\n" " konflik dengan file dari paket\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "File %1%\n" " dari pemasangan\n" " %2%\n" " konflik dengan file dari pemasangan\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Berkas %1%\n" " dari paket\n" " %2%\n" " konflik dengan berkas\n" " %3%\n" " dari paket\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "File %1%\n" " dari paket\n" " %2%\n" " konflik dengan file\n" " %3%\n" " dari pemasangan\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "File %1%\n" " dari pemasangan\n" " %2%\n" " konflik dengan file\n" " %3%\n" " dari paket\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "File %1%\n" " dari pemasangan\n" " %2%\n" " konflik dengan FIle\n" " %3%\n" " dari pemasangan\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Tidak dapat membuat sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "patahkan %s dengan mengabaikan beberapa dependensi" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "umumnya mengabaikan beberapa dependensi" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s bukan termasuk pada golongan repository distupgrade" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s memiliki arsitektur rendah" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "masalah dengan paket %s yang telah terpasang" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "permintaan konflik" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "beberapa dependensi bermasalah" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "tidak ada ketersediaan yang meminta %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Apakah anda telah menghidupkan repositori yang diminta?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "paket %s tidak tersedia" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "permintaan tidak didukung" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s didukung oleh sistem dan tidak dapat dihapus" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s tidak dapat dipasang" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "tidak ada dukungan %s dibutuhkan oleh %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "tidak dapat memasang kedua %s dan %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s konflik dengan %s yang didukung oleh %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s sudah usah %s didukung oleh %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "telah dipasang %s usang %s didukung oleh %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "dapat dipecahkan %s konflik dengan %s didukung dengan sendirinya" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s dibutuhkan %s, tetapi kebutuhan ini tidak dapat disediakan" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "penyedia dihapus: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "penyedia tidak dapat dihapus: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "penyedia tidak dapat dihapus: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "hapus kunci untuk mengizinkan menghapus %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "jangan memasang %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "simpan %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "hapus kunci untuk mengizinkan pemasangan dari %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Permintaan ini akan merusak sistem anda!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "abaikan peringatan dari kerusakan sistem" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "jangan meminta untuk memasang pemecahan yang didukung %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "jangan meminta untuk menghapus pemecahan yang didukung %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "jangan memasang versi terbaru dari %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "jaga %s meskipun arsitektur rendah" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "pasang %s meskipun arsitektur rendah" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "biarkan usang %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "pasang %s dari repositori pengecualian" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "turunkan dari %s to %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "arsitektur berubah dari %s ke %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "pasang %s (dengan perubahan vendor)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "penggantian %s dengan %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "penghapusan dari %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " berhasil dieksekusi" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " eksekusi gagal" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s telah dieksekusi sebagai %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " Eksekusi dilewati ketika diberhentikan" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Gagal mengirim pesan notifikasi pembaharuan." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Pesan baru" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Instalasi dibatalkan sesuai perintah." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Maaf, tetapi versi dari libzypp yang digunakan ini dibangun tanpa dukungan " "HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext tidak tersambung" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive tidak dinisialisasi" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume tidak dinisialisasi" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Tidak dapat membuat koneksi dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Tak dapat membuat konteks libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Tak dapat mengatur koneksi dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Tak dapat menginisialisasi konteks HAL -- hald tidak berjalan?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Bukan CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM gagal: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Gagal mengimpor kunci publik %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Gagal menghapus kunci publik %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Paket tidak ditandatangani!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Mengubah konfigurasi berkas untuk %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm telah disimpan %s sebagai %s, tetapi tidak memungkinkan untuk menentukan " "perbedaannya" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm %s telah disimpan sebagai %s.\n" "Ini adalah perbedaan 25 baris pertama:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm telah disimpan %s sebagai %s, tetapi tidak memungkinkan untuk menentukan " "perbedaannya" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm %s telah dibuat sebagai %s.\n" "Ini adalah perbedaan 25 baris pertama:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Tambahan keluaran RPM" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "membuat backup %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Tanda tangan OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tanda tangan tidak dikenal" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Tanda tangan tidak terverifikasi" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Tanda tangan OK, tetapi kunci tidak terpercaya" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Tanda tangan kunci publik tidak tersedia" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "File tidak ada atau tanda tangan tidak dapat diperiksa" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Berkas tidak ditandatangani" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Tak bisa menginialisasi atribut mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Tak bisa mengeset atribut rekursif mutex" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Tak bisa menginisialisasi mutex rekursif" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Tidak dapat memperoleh kunci mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Tak bisa membuka kunci mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Skema Url tidak diizinkan %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Komponen '%s' tidak sah %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Komponen '%s' tidak sah" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Pemrosesan string kueri tidak didukung untuk URL ini" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Skema url merupakan komponen yang diperlukan" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Skema url '%s' tidak valid" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Skema Url tidak memperbolehkan nama pengguna" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Skema Url tidak memperbolehkan password" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Skema Url membutuhkan komponen host" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Skema Url tidak memperbolehkan komponen host" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Komponen host '%s' tidak valid" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Skema Url tidak memperbolehkan port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Komponen Port '%s' tidak sah" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Skema url membutuhkan nama path" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Path relatif tidak dibolehkan bila otorita ada" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "String encoded memuat byte NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Karakter pemisah susunan pemecah tidak valid" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Karakter pemisah parameter map tidak valid" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Karakter pemisah susunan join tidak valid" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Gagal mengimpor kunci publik dari berkas %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Gagal menghapus kunci publik %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Tidak dapat menemukan perangkat loop tersedia untuk mengaitkan file image " #~ "dari '%s'" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "Italia" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Italia" #, fuzzy #~ msgid "install %s" #~ msgstr "Italia" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "Italia" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Tidak dapat membuka %s: %m" #, fuzzy #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "Parsing Parameter Path tidak didukung untuk url ini" #, fuzzy #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "Parsing parameter path tidak didukung untuk url ini" #, fuzzy #~ msgid "Establishing %s" #~ msgstr "Italia" #, fuzzy #~ msgid "Installing %s" #~ msgstr "Italia" #, fuzzy #~ msgid "Unable to parse Url authority" #~ msgstr "Tidak dapat memparse komponen otoritas url" #, fuzzy #~ msgid "Unable to restore all sources." #~ msgstr "Tidak dapat memparse komponen url utama" #, fuzzy #~ msgid "Downloading %s" #~ msgstr "Kesalahan memuatkan %1" libzypp-17.7.0/po/it.po000066400000000000000000003216751334444677500147300ustar00rootroot00000000000000# translation of zypp.po to italiano # Italian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999, 2000, 2001 SuSE GmbH. # # Franca Delcarlo , 1999, 2000, 2001. # Karl Eichwalder , 2000. # Bevacqua Giuseppe , 2008. # Andrea Florio , 2008. # Andrea Florio , 2008, 2009. # Andrea Turrini , 2013, 2014, 2015. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-12 15:03+0000\n" "Last-Translator: Alessio Adamo \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" "X-Poedit-Bookmarks: 370,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Eccezione Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipo '%s' incerto per %u byte del codice di controllo '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Paese sconosciuto: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Nessun codice" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emirati Arabi Uniti" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua e Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antille olandesi" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antartide" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa americane" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Isole Aland" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia-Erzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgio" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasile" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Isola Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Bielorussia" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Isole Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Repubblica Centrafricana" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Svizzera" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Costa d'Avorio" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Isole Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Cile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Cina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Capo Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Isola Christmas" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cipro" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Repubblica Ceca" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Germania" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Gibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danimarca" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Repubblica dominicana" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egitto" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sahara occidentale" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spagna" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlandia" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Isole Falkland (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Stati federati di Micronesia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Isole Faroe" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francia" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Francia metropolitana" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Regno Unito" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guiana francese" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibilterra" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenlandia" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadalupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinea equatoriale" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grecia" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Georgia meridionale e Isole Sandwich meridionali" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Isola Heard e isole McDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croazia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungheria" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israele" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isola di Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Territorio dell'Oceano indiano britannico" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraq" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islanda" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Giamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Giordania" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Giappone" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirghizistan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambogia" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comore" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts e Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Corea del Nord" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Corea del Sud" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Isole Cayman" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakistan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Repubblica democratica popolare del Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libano" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Lussemburgo" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Lettonia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marocco" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavia" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Isole Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birmania" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Isole Marianne settentrionali" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldive" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Messico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malesia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambico" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nuova Caledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Isola di Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Paesi Bassi" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norvegia" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nuova Zelanda" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perù" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinesia francese" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nuova Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filippine" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polonia" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre e Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Portorico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Territorio palestinese" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portogallo" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Federazione russa" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabia Saudita" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Isole Solomon" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Svezia" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sant'Elena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard e Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovacchia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé e Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Siria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Isole Turks e Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Territori francesi meridionali" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailandia" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tagikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor est" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turchia" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad e Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucraina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Isole minori esterne degli Stati Uniti" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Stati Uniti" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Santa Sede (Città del Vaticano)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent e Grenadine" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Isole Vergini britanniche" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Isole Vergini, Stati Uniti" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis e Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sud Africa" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Fornisce" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Prerequisiti" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Richiede" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "In conflitto con" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Obsoleti" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Raccomanda" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Suggerisce" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Migliora" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Integra" # TLABEL modules/sound/sound.ycp:620 #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Impossibile aprire pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Impossibile aprire pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Impossibile eseguire il comando chroot in '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Impossibile eseguire chdir verso '%s' dentro la chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Impossibile eseguire chdir verso '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Impossibile eseguire '%s' (%s)." # TLABEL modules/installation.ycp:287 #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Impossibile eseguire il comando fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Il comando è terminato con stato %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Il comando è stato terminato dal segnale %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Il comando è terminato con un errore sconosciuto." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Tentativo di importare la chiave inesistente %s nel portachiavi %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Impossibile importare la chiave." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Impossibile eliminare la chiave." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "La firma del file %s non è stata trovata" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Lingua sconosciuta: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazo" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinese" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiatico (altre)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Accadico" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanese" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Lingue algonchine" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai meridionale" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amarico" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Inglese, antico (450-1100 circa)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Lingue Apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabo" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaico" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonese" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeno" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucano" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Lingue artificiali (altre)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Aruaco" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiano" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Lingue Athabaska" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Lingue australiane" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarico" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestano" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaigiano" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Lingue Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinese" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basco" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltico (altre)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorusso" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbero (altre)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (altre)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosniaco" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretone" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgaro" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Indiano dell'America centrale (altre)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Caribico" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalano" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasico (altre)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtico (altre)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Ceceno" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Cinese" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Linguaggio Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Slavo ecclesiastico" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Lingue Chamic" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Copto" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornico" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corso" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creole e pidgin, basate sull'inglese (altro)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creole e pidgin, basate sul francese (altro)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creole e pidgin, basate sul portoghese (altro)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tataro della Crimea" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creole e pidgin (altre)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Casciubo" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cuscitico (altre)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Ceco" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danese" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slavo (Athabaska)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiche (Altre)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Sorabo inferiore" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Olandese, medio (1050-1350 circa)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Olandese" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egiziano (antico)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Akajo" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamitico" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglese" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Inglese, medio (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estone" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Figiano" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filippino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finlandese" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Ugrofinnico (altre)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francese" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francese, medio (1400-1600 circa)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francese, antico (842-1400 circa)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisone" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fula" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulano" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Lingue germaniche (altre)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiano" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Tedesco" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Ge'ez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertese" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelico" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandese" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galiziano" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Tedesco, medio-alto (1050-1500 circa)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Tedesco, antico alto (750-1050 circa)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotico" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Greco antico (fino al 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Greco moderno (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiano" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiano" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Ebraico" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Ittita" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Sorabo superiore" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungherese" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandese" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Associazione internazionale lingue ausiliarie)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indico (altre)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesiano" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Lingue indo-europee (altre)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraniano (altre)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Lingue irochesi" # TLABEL modules/inst_target_part.ycp:680 #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiano" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Giavanese" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Giapponese" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Giudeo-persiano" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Giudeo-arabico" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazako" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Cabardo" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (altre)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiso" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreano" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeano" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachai-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Curdo" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latino" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Lettone" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezgiano" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburghese" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituano" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Lussemburghese" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya e Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedone" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallese" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesiano (altre)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandese, medio (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Lingue varie" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (altre)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgascio" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manciù" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Lingue Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavo" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolo" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Lingue multiple" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Lingue munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Lingue maya" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Lingua Erza" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indiano del Nord America" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napoletano" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, meridionale" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, settentrionale" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Tedesco, basso" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalese" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofaniano (altre)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueano" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norvegese Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norvegese Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norse, antico" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norvegese" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho, settentrionale" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Lingue nubiane" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari classico" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitano (dopo il 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osseto" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turco, ottomano (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Lingue otomiane" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuano (altre)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauano" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persiano, antico (600-400 a.C. circa)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persiano" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filippino (altre)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenicio" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polacco" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeiano" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portoghese" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Lingue Pracrito" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provenzale, antico (fino al 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pashtu" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongano" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romancio (altre)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retoromanzo" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romeno" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romeno" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russo" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indiano dell'America meridionale (altre)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Lingue Salish" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Aramaico samaritano" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanscrito" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbo" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliano" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scozzese" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croato" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Lingue semitiche (altre)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandese, antico (fino al 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Linguaggi dei segni" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singalese" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Lingue Siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetano (altre)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavo (altre)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovacco" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Sloveno" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami meridionale" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami settentrionale" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Lingue Sami (altre)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Sami di Lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Sami di Inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoano" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Sami skolt" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalo" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, meridionale" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spagnolo" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardo" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Sahariano (altre)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swazi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanese" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumero" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Svedese" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siriaco" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitiano" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (altre)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tataro" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tagico" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetano" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrino" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Isole Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmeno" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Lingue Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turco" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaico (altre)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvano" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurto" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritico" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uiguro" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucraino" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Indeterminato" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbeko" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamita" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votico" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Lingue Wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Gallese" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Lingue sorabe" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Vallone" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Calmucco" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Lingue Yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Chuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Verranno eseguite le azioni indicate:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "non scade" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "scaduta: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "scade: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(non scade)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(SCADUTO)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(scade entro 24 ore)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(scade entro %d giorno)" msgstr[1] "(scade entro %d giorni)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Impossibile leggere la directory '%1%' del repository: permesso negato" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Impossibile leggere la directory '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Impossibile leggere il file '%1%' del repository: permesso negato" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "L'alias di un repository non può iniziare con un punto." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "L'alias di un servizio non può iniziare con un punto." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Impossibile aprire il file '%s' in scrittura." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Servizio '%1%' sconosciuto: rimozione del repository dei servizi orfani '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Non sono stati trovati metadati validi all'URL specificato" msgstr[1] "Non sono stati trovati metadati validi agli URL specificati" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Impossibile creare %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Impossibile creare la directory della cache dei metadati." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Costruzione della cache del repository '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Impossibile creare la cache in %s - permessi di scrittura mancanti." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Impossibile creare la cache del repo (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Tipo di repository non gestito" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Errore durante il tentativo di lettura da '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Errore sconosciuto durante la lettura da '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Aggiunta del repository '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nome file del repository non valido a '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Rimozione del repository '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Impossibile trovare ubicazione di memorizzazione del repository." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Impossibile eliminare '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Impossibile trovare ubicazione di memorizzazione del servizio." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Stringa di interrogazione URL LDAP non valida" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parametro di interrogazione URL LDAP '%s' non valido" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Impossibile clonare l'oggetto url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Riferimento a oggetto url vuoto non valido" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Impossibile analizzare i componenti dell'url" # TLABEL modules/inst_user.ycp:71 #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "sconosciuto" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "non supportato" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Livello 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Livello 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Livello 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Contratto clienti aggiuntivo necessario" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "non valido" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Il livello di supporto non è specificato" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Il fornitore non fornisce supporto." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Identificazione del problema, ovvero supporto tecnico indirizzato a fornire " "informazioni sulla compatibilità, assistenza per l'installazione, supporto " "per l'utilizzo, manutenzione ordinaria e risoluzione dei problemi di base. " "L'obiettivo del supporto di Livello 1 non è correggere errori e difetti del " "prodotto." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Isolamento del problema, ovvero supporto tecnico indirizzato a riprodurre i " "problemi del cliente, isolare l'area del problema e fornire una soluzione ai " "problemi non risolti dal Supporto di Livello 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Risoluzione del problema, ovvero supporto tecnico indirizzato a risolvere " "problemi complessi attraverso la programmazione nella correzione dei difetti " "di prodotto che sono stati identificati dal Supporto di Livello 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "È necessario un contratto cliente aggiuntivo per ottenere supporto." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Opzione di supporto sconosciuta. Descrizione non disponibile" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "La gestione di sistemi è bloccata dall'applicazione con pid %d (%s).\n" "Chiudere l'applicazione prima di riprovare." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Cronologia:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Impossibile aprire file bloccato: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Questa azione è stata già eseguita da un altro programma." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Modalità di corrispondenza '%s' sconosciuta" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Modalità di corrispondenza '%s' sconosciuta per il modello '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Espressione regolare '%s' non valida: regcomp ha restituito %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Espressione regolare '%s' non valida" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "È richiesta l'autenticazione per '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Visitare Novell Customer Center per verificare che la registrazione sia " "valida e che non sia scaduta." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Impossibile montare %s su %s." #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Impossibile smontare %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nome file errato: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Supporto non aperto durante il tentativo di esecuzione di '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "File '%s' non trovato sul supporto '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Impossibile scrivere il file '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Supporto non collegato" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Punto di collegamento supporto errato" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Inizializzazione download (curl) non riuscita per '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Eccezione di sistema '%s' sul supporto '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Il percorso '%s' sul supporto '%s' non è un file." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Il percorso '%s' sul supporto '%s' non è una directory." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Formato URI errato" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nome host vuoto nell'URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "File system vuoto nell'URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destinazione vuota nell'URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Schema URI non supportato in '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operazione non supportata dal supporto" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Errore di download (curl) per '%s':\n" "Codice di errore: %s\n" "Messaggio di errore: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Errore durante l'impostazione delle opzioni di download (curl) per '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "L'origine del supporto '%s' non contiene il supporto desiderato" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Supporto '%s' già utilizzato da un'altra istanza" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Impossibile espellere supporti" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Impossibile espellere il supporto '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Autorizzazione per accedere a '%s' rifiutata." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Timeout superato durante l'accesso a '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "L'ubicazione '%s' è temporaneamente inaccessibile." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problemi con il certificato SSL, verificare che il certificato CA sia " "valido per '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Creazione del punto di collegamento: impossibile trovare una directory " "scrivibile per creare un punto di collegamento" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Metodo di autenticazione HTTP '%s' non supportato" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Installare prima il pacchetto 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "L'attributo richiesto '%s' è mancante." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "È richiesto uno o entrambi gli attributi '%s' e '%s'." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Verifica della firma non riuscita" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Possibile danneggiamento del pacchetto %s durante il trasferimento. " "Ritentare il recupero?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Impossibile fornire il pacchetto %s. Ritentare il recupero?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Verifica di applydeltarpm non riuscita." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm non riuscito." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Il plug-in del servizio non supporta la modifica di un attributo." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Impossibile fornire il file '%s' dal repository '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Nessun URL nel repository." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Il file %1%\n" " del pacchetto\n" " %2%\n" " è in conflitto con il file del pacchetto\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Il file %1%\n" " del pacchetto\n" " %2%\n" " è in conflitto con il file dell'installazione di\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Il file %1%\n" " dell'installazione di\n" " %2%\n" " è in conflitto con il file del pacchetto\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Il file %1%\n" " dell'installazione di\n" " %2%\n" " è in conflitto con il file dell'installazione di\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Il file %1%\n" " del pacchetto\n" " %2%\n" " è in conflitto con il file\n" " %3%\n" " del pacchetto\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Il file %1%\n" " del pacchetto\n" " %2%\n" " è in conflitto con il file\n" " %3%\n" " dell'installazione di\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Il file %1%\n" " dell'installazione di\n" " %2%\n" " è in conflitto con il file\n" " %3%\n" " del pacchetto\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Il file %1%\n" " dell'installazione di\n" " %2%\n" " è in conflitto con il file\n" " %3%\n" " dell'installazione di\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Impossibile creare sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "interrompi %s ignorando alcune delle sue dipendenze" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "generalmente ignora alcune dipendenze" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s non appartiene a un repository di aggiornamento della distribuzione" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s presenta un'architettura inferiore" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problema con il pacchetto installato %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "richieste in conflitto" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "alcuni problemi di dipendenze" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "nessun elemento fornisce %s obbligatorio" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Sono stati abilitati tutti i repository richiesti?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "il pacchetto %s non esiste" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "richiesta non supportata" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s è fornito dal sistema e non può essere cancellato" # TLABEL modules/inst_target_part.ycp:680 #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "impossibile installare %s" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "nessun elemento fornisce %s obbligatorio per %s" # TLABEL modules/inst_target_part.ycp:680 #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "impossibile installare sia %s, sia %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s in conflitto con %s fornito da %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s rende obsoleto %s fornito da %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "l'installazione di %s rende obsoleto %s fornito da %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "il risolubile %s è in conflitto con %s fornito da se stesso" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s richiede %s, ma non è possibile fornire questa richiesta" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "provider cancellati: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "impossibile installare i provider: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "provider non installabili: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "rimuovi il blocco per consentire la rimozione di %s" # TLABEL modules/inst_target_part.ycp:680 #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "non installare %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "mantieni %s" # TLABEL modules/inst_target_part.ycp:680 #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "rimuovi il blocco per consentire l'installazione di %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Questa richiesta potrebbe danneggiare il sistema!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignora avviso di sistema malfunzionante" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "non chiedere di installare un risolvibile che fornisce %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "non chiedere di eliminare tutti i risolvibili che forniscono %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "non installare la versione più recente di %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "mantieni %s nonostante l'architettura inferiore" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "installa %s nonostante l'architettura inferiore" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "mantieni %s obsoleto" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "installa %s da repository escluso" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "downgrade di %s a %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "modifica dell'architettura di %s in %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "installa %s (con cambio di fornitore)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "sostituzione di %s con %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "disinstallazione di %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Esecuzione dello script %%posttrans '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Esecuzione degli script %posttrans" # TLABEL modules/inst_config_x11.ycp:578 #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " eseguito" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " esecuzione non riuscita" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s già eseguito come %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " esecuzione saltata durante l'annullamento" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Errore nell'invio della notifica del messaggio di aggiornamento." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nuovo messaggio di aggiornamento" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "L'installazione è stata interrotta come indicato." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "La versione di libzypp è stata creata senza il supporto per HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext non connesso" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive non inizializzato" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume non inizializzato" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Impossibile creare la connessione dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: impossibile creare il contesto libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: impossibile impostare la connessione dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Impossibile inizializzare il contesto HAL - hald non in esecuzione?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Non è un'unità CD ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM non riuscito: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Errore importazione della chiave pubblica %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Errore rimozione della chiave pubblica %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Il pacchetto non è firmato!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "File di configurazione modificati per %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm ha salvato %s come %s, tuttavia non è stato possibile determinare la " "differenza" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ha salvato %s come %s.\n" "Di seguito sono riportate le prime 25 righe di differenza:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm ha creato %s come %s, tuttavia non è stato possibile determinare la " "differenza" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm ha creato %s come %s.\n" "Di seguito sono riportate le prime 25 righe di differenza:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Output aggiuntivo di rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "creata copia di backup di %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "La firma è corretta" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tipo di firma sconosciuto" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "La firma non è verificabile" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "La firma è corretta, ma non è attendibile" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "La chiave pubblica delle firme non è disponibile" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Il file non esiste o la firma non può essere verificata" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "File non firmato" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Impossibile inizializzare gli attributi mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Impossibile impostare l'attributo mutex ricorsivo" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Impossibile inizializzare mutex ricorsivo" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Impossibile acquisire il blocco mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Impossibile rilasciare il blocco mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Lo schema url non consente un %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "%s componente '%s' non valido" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Componente %s non valido" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Analisi della stringa di interrogazione non supportata per questo URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Lo schema url è un componente obbligatorio" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Schema url '%s' non valido" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Lo schema url non consente un nome utente" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Lo schema url non consente una password" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Lo schema url richiede un componente host" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Lo schema url non consente un componente host" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Componente host '%s' non valido" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Lo schema url non consente una porta" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Componente porta '%s' non valido" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Lo schema url richiede un nome di percorso" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Percorso relativo non consentito se l'autorità esiste" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "La stringa codificata contiene un byte NULL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" "Carattere di separazione di divisione della matrice di parametri non valido" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Carattere di separazione di divisione mappa di parametri non valido" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Carattere di separazione unione della matrice di parametri non valido" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Errore importazione della chiave pubblica dal file %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Errore rimozione della chiave pubblica %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Impossibile trovare un dispositivo di loop disponibile per montare il " #~ "file immagine da '%s'" # TLABEL modules/inst_target_part.ycp:680 #~ msgid "do not keep %s installed" #~ msgstr "non tenere installato %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Impossibile creare la chiave pubblica %s dal portachiavi %s per il file %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Inizializzazione dello scaricamento (metalink curl) per '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Errore di scaricamento (metalink curl) per '%s':\n" #~ "Codice di errore: %s\n" #~ "Messaggio di errore: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Scaricamento interrotto al %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Scaricamento interrotto dall'utente" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Si è verificato un errore durante l'impostazione delle opzioni di " #~ "scaricamento (metalink curl) per '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Scaricamento di %s da %s fallito" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia e Montenegro" #~ msgid "Timeout exceeded when access '%s'." #~ msgstr "Timeout superato mentre si accedeva a '%s'." libzypp-17.7.0/po/ja.po000066400000000000000000003373631334444677500147070ustar00rootroot00000000000000# translation of zypp.po to Japanese # Japanese message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # # Mike Fabian , 2000, 2001. # Yasuhiko Kamata , 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-03 10:36+0000\n" "Last-Translator: Yasuhiko Kamata \n" "Language-Team: Japanese " "\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "HAL例外" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" "%2$u ãƒã‚¤ãƒˆã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ  '%3$s' 㯠'%1$s' ã¨æ€ã‚れã¾ã™ãŒã€ç–‘ã‚ã—ã„タイプã§ã™" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "䏿˜Žãªå›½: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "コードãªã—" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "アンドラ" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "アラブ首長国連邦" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "アフガニスタン" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "アンティグアãŠã‚ˆã³ãƒãƒ¼ãƒ–ーダ" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "アングイラ" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "アルãƒãƒ‹ã‚¢" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "アルメニア" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "オランダ領アンティル" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "アンゴラ" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "å—æ¥µå¤§é™¸" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "アルゼンãƒãƒ³" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "アメリカ領サモア" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "オーストリア" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "オーストラリア" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "アルーãƒ" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "オーランド諸島" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "アゼルãƒã‚¤ã‚¸ãƒ£ãƒ³" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "ボスニア-ヘルツェゴヴィナ" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "ãƒãƒ«ãƒãƒ‰ã‚¹" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "ãƒãƒ³ã‚°ãƒ©ãƒ‡ã‚·ãƒ¥" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "ベルギー" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "ブルキナファソ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ブルガリア" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "ãƒãƒ¼ãƒ¬ãƒ¼ãƒ³" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "ブルンディ" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "ベニン" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "ãƒãƒ¼ãƒŸãƒ¥ãƒ¼ãƒ€" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "ブルãƒã‚¤ãƒ€ãƒ«ã‚µãƒ©ãƒ¼ãƒ å›½" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "ボリビア" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "ブラジル" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "ãƒãƒãƒž" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ブータン" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ブーヴェ島" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "ボツワナ" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "ベラルーシ" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "ベリーズ" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "カナダ" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "ココス(キーリング)諸島" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "コンゴ" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "中央アフリカ共和国" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "スイス" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "コートディヴォワール" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "クック諸島" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ãƒãƒª" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "カメルーン" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "中国" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "コロンビア" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "コスタリカ" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "キューãƒ" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "カボベルデ" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "クリスマス島" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "キプロス" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ãƒã‚§ã‚³å…±å’Œå›½" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ドイツ" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "ジブティ" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "デンマーク" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "ドミニカ" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ドミニカ共和国" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "アルジェリア" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "エクアドル" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "エストニア" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "エジプト" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "西サãƒãƒ©" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "エリトリア" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "スペイン" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "エãƒã‚ªãƒ”ã‚¢" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "フィンランド" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "フィジー" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "フォークランド諸島(マルビナス)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ミクロãƒã‚·ã‚¢é€£é‚¦" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "フェロー諸島" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "フランス" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "フランス本国" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "ガボン" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "英国" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "グレナダ" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ジョージア" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "フランス領ギアナ" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "ガーンジー島" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "ガーナ" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "ジブラルタル" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "グリーンランド" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ガンビア" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ギニア" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "グアドループ" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "赤é“ギニア" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ギリシア" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "サウスジョージアãŠã‚ˆã³ã‚µã‚¦ã‚¹ã‚µãƒ³ãƒ‰ã‚¤ãƒƒãƒè«¸å³¶" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "グアテマラ" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "グアム" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ギニア-ビサウ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ギニア" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "香港" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "ãƒãƒ¼ãƒ‰å³¶ãŠã‚ˆã³ãƒžã‚¯ãƒ‰ãƒŠãƒ«ãƒ‰è«¸å³¶" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ホンデュラス" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "クロアティア" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "ãƒã‚¤ãƒ†ã‚£" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ãƒãƒ³ã‚¬ãƒªãƒ¼" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "インドãƒã‚·ã‚¢" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "アイルランド" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "イスラエル" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "マン島" #: zypp/CountryCode.cc:261 msgid "India" msgstr "インド" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "è‹±é ˜ã‚¤ãƒ³ãƒ‰æ´‹æ¤æ°‘地" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "イラク" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "イラン" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "アイスランド" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "イタリア" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "ジャージー" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "ジャマイカ" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ヨルダン" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "日本" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "ケニア" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "キルギスタン" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "カンボジア" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "キリãƒã‚¹" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "コモロ" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "セントキッツãƒãƒ´ã‚£ã‚¹" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "北æœé®®" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "韓国" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "クウェート" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "ケイマン諸島" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "カザフスタン" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "ラオス人民民主共和国" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "レãƒãƒŽãƒ³" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "セントルシア" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "リヒテンシュタイン" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "スリランカ" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "リベリア" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "レソト" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "リトアニア" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ルクセンブルク" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ラトビア" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "リビア" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "モロッコ" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "モナコ" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "モルドãƒ" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "モンテãƒã‚°ãƒ­" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "サンマルタン" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "マダガスカル" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "マーシャル諸島" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "マケドニア" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "マリ" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "ミャンマー" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "モンゴル" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "マカオ" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "北マリアナ諸島" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "マルティニク" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "モーリタニア" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "モントセラト" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "マルタ" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "モーリシャス" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "モルディブ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "マラウイ" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "メキシコ" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "マレーシア" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "モザンビーク" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ナミビア" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "ニューカレドニア" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "ニジェール" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ノーフォーク島" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ナイジェリア" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "ニカラグア" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "オランダ" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ノルウェー" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "ãƒãƒ‘ール" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "ナウル語" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "ニウエ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ニュージーランド" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "オマーン" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "パナマ" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "ペルー" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "フランス領ãƒãƒªãƒã‚·ã‚¢" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "パプアニューギニア" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "フィリピン" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "パキスタン" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "ãƒãƒ¼ãƒ©ãƒ³ãƒ‰" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "サンピエールエミクロン" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "ピトケルン" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "プエルトリコ" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "パレスãƒãƒŠåœ°åŸŸ" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "パラウ" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "パラグアイ" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "カタール" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "レユニオン" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "ルーマニア" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "セルビア" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "ロシア連邦" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "ルワンダ" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "サウディアラビア" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "ソロモン諸島" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "セーシェル" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "スーダン" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "スウェーデン" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "シンガãƒãƒ¼ãƒ«" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "セントヘレナ" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "スロベニア" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "スヴァールãƒãƒ«ãŠã‚ˆã³ãƒ¤ãƒ³ãƒžã‚¤ã‚¨ãƒ³" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "スロãƒã‚­ã‚¢" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "シエラレオーãƒ" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "サンマリノ" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "ã‚»ãƒã‚¬ãƒ«" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "ソマリア" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "スリナム" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "サントーメ-プリンシペ" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "エルサルãƒãƒ‰ãƒ«" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "シリア" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "スイス" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "タークスアンドケーコス諸島" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ãƒãƒ£ãƒ‰" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "ãƒ•ãƒ©ãƒ³ã‚¹å—æ–¹é ˜" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "トーゴ" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "タイ" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "タジキスタン" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "トケラウ語" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "トルクメニスタン" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ãƒãƒ¥ãƒ‹ã‚¸ã‚¢" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "トンガ" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "æ±ãƒ†ã‚£ãƒ¢ãƒ¼ãƒ«" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "トルコ" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "トリニダードトãƒã‚´" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ツãƒãƒ«" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "å°æ¹¾" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "タンザニア" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "ウクライナ" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "ウガンダ" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "åˆè¡†å›½å°é›¢å³¶" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "アメリカåˆè¡†å›½" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "ウルグアイ" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "ウズベキスタン" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "教皇åº(ヴァティカン市国)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "セントヴィンセント-グレナディン" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ベãƒã‚ºã‚¨ãƒ©" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "英領ヴァージン諸島" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "米国領ヴァージン諸島" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "ベトナム" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "ヴァヌアトゥ" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "ワリーエフトゥーナ" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "サモア" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "イエメン" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "マヨット" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "å—アフリカ" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "ザンビア" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ジンãƒãƒ–エ" #: zypp/Dep.cc:96 msgid "Provides" msgstr "æä¾›" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "剿æ¡ä»¶" #: zypp/Dep.cc:98 msgid "Requires" msgstr "å¿…è¦" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "ç«¶åˆ" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "廃止" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "推奨" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "ææ¡ˆ" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "æ‹¡å¼µ" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "補足" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "擬似端末(%s)ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "パイプ(%s)ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "'%s' (%s)ã«chrootã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "chroot '%s' (%s)ã®å®Ÿè¡Œä¸­ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ '%s' ã«å¤‰æ›´ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "ディレクトリを '%s' (%s)ã«å¤‰æ›´ã§ãã¾ã›ã‚“。" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "'%s' (%s)を実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "fork (%s)ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "コマンドã¯çŠ¶æ…‹ %d ã§çµ‚了ã—ã¾ã—ãŸã€‚" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "コマンドã¯ã‚·ã‚°ãƒŠãƒ« %d (%s)ã§çµ‚了ã—ã¾ã—ãŸã€‚" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "コマンドã¯ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ã§çµ‚了ã—ã¾ã—ãŸã€‚" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "存在ã—ãªã„éµ %s をキーリング %s ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—よã†ã¨ã—ã¾ã—ãŸ" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "キーã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "ç½²åファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "䏿˜Žãªè¨€èªž: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "アファル語" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "アブãƒãƒ¼ã‚ºèªž" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "ã‚¢ãƒã‚§ãƒ¼èªž" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "ã‚¢ãƒãƒ§ãƒªèªž" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "アダングメ語" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "アディゲ語" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "アフリカ-アジア語(ãã®ä»–)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "アフリヒリ語" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "アフリカーンス語" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "アイヌ語" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "アカン語" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "アッカド語" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "アルãƒãƒ‹ã‚¢èªž" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "アレウト語" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "アルゴンギン語" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "å—アルタイ語" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "アムãƒãƒ©èªž" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "å¤è‹±èªž(ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "アパッãƒèªž" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "アラビア語" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "アラム語" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "アラゴン語" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "アルメニア語" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "アラウカン語" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "アラパホー語" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "人工語(ãã®ä»–)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "アラワック語" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "アッサム語" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "アストゥリア語" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "アサパスカン語" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "オーストラリア語" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "アヴァール語" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "アヴェスター語" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "アワディー語" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "アイマラ語" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "アゼルãƒã‚¤ã‚¸ãƒ£ãƒ³èªž" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "ãƒãƒ³ãƒ€èªž" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "ãƒãƒŸãƒ¬ã‚±èªž" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "ãƒã‚·ã‚­ãƒ¼ãƒ«èªž" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "ãƒãƒ«ãƒ¼ãƒãƒ¼èªž" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "ãƒãƒ³ãƒãƒ©èªž" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "ãƒãƒªèªž" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "ãƒã‚¹ã‚¯èªž" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "ãƒã‚µèªž" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "ãƒãƒ«ãƒˆèªž(ãã®ä»–)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "ベジャ語" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "ベラルーシ語" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "ベンãƒèªž" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "ベンガル語" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "ベルベル語(ãã®ä»–)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "ボジュプリー語" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "ビãƒãƒ¼ãƒ«èªž" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "ビコール語" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "ビニ語" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "ビスラマ語" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "シクシカ語" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "ãƒãƒ³ãƒˆã‚¥ãƒ¼èªž(ãã®ä»–)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "ボスニア語" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "ブラジ語" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "ブルトン語" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "ãƒã‚¿ã‚¯èªž(インドãƒã‚·ã‚¢)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "ブリヤート語" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "ブギス語" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ブルガリア語" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "ビルマ語" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "ブラン語" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "カドー語" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "中央アメリカインディアン語(ãã®ä»–)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "カリブ語" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "カタロニア語" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "カフカス語(ãã®ä»–)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "セブアノ語" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "ケルト語(ãã®ä»–)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "ãƒãƒ£ãƒ¢ãƒ­èªž" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "ãƒãƒ–ãƒãƒ£èªž" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ãƒã‚§ãƒã‚§ãƒ³èªž" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ãƒãƒ£ã‚¬ã‚¿ã‚¤èªž" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "中国語" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ãƒãƒŒãƒ¼ã‚¯èªž" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "マリ語" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ãƒãƒŒãƒ¼ã‚¯ã‚¸ãƒ£ãƒ¼ã‚´ãƒ³èªž" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "ãƒãƒ§ã‚¯ãƒˆãƒ¼èªž" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ãƒãƒšãƒ¯ã‚¤ã‚¢ãƒ³èªž" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "ãƒã‚§ãƒ­ã‚­ãƒ¼èªž" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "教会スラブ語" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ãƒãƒ¥ãƒ´ã‚¡ã‚·èªž" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "シャイエン語" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ãƒãƒ£ãƒ èªž" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "コプト語" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "コーンウォール語" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "コルシカ語" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "英語ãŒåŸºç›¤ã®ã‚¯ãƒ¬ã‚ªãƒ¼ãƒ«èªžãƒ»ãƒ”ジン語(ãã®ä»–)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "フランス語ãŒåŸºç›¤ã®ã‚¯ãƒ¬ã‚ªãƒ¼ãƒ«èªžãƒ»ãƒ”ジン語(ãã®ä»–)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªžãŒåŸºç›¤ã®ã‚¯ãƒ¬ã‚ªãƒ¼ãƒ«èªžãƒ»ãƒ”ジン語(ãã®ä»–)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "クリー語" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "クリミアタタール語" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "クレオール語・ピジン語(ãã®ä»–)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "カシューブ語" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "クシ語(ãã®ä»–)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ãƒã‚§ã‚³èªž" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "ダコタ語" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "デンマーク語" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "ダルギン語" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ダヤク語" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "デラウェア語" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "スレーブ語(アタパスカ語)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ドグリブ語" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ディンカ語" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "ディヴェヒ語" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "ドグリー語" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ドラヴィダ語(ãã®ä»–)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "低地ソルブ語" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "ドゥアーラ語" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "中世オランダ語(ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "オランダ語" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "ディウラ語" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "ゾンカ語" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "エフィク語" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "エジプト語(å¤ä»£)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "エカジュク語" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "エラム語" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "英語" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "中英語(1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "エスペラント語" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "エストニア語" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "エウェ語" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "エウォンド語" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "ファン語" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "フェロー語" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ファンティ語" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "フィージー語" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "フィリピン語" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "フィンランド語" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "フィン-ウゴル語(ãã®ä»–)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "フォン語" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "フランス語" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "中世フランス語(ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "å¤ãƒ•ランス語(842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "フリースランド語" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "フラ語" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "フルイリアン語" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ガー語" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "ガヨ語" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ãƒãƒ¤èªž" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ゲルマン諸語(ãã®ä»–)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "グルジア語" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ドイツ語" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ゲーズ語" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "ギルãƒãƒ¼ãƒˆèªž" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ガエリック語" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "アイルランド語" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ガリシア語" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "マンクス語" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "中高ドイツ語(ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "å¤é«˜ãƒ‰ã‚¤ãƒ„語(ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "ゴンド語" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "ゴロンタロ語" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ゴート語" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "グレボ語" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "å¤ä»£ã‚®ãƒªã‚·ã‚¢èªž(-1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "ç¾ä»£ã‚®ãƒªã‚·ã‚¢èªž(1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "グアラニー語" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "グジャラート語" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "グイッãƒãƒ³èªž" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "ãƒã‚¤ãƒ€èªž" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ãƒã‚¤ãƒèªž" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "ãƒã‚¦ã‚µèªž" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "ãƒãƒ¯ã‚¤èªž" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ヘブライ語" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "ヘレロ語" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "ヒリガイノン語" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "ヒマãƒãƒ£ãƒ«èªž" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "ヒンディー語" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "ヒッタイト語" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "フモン語" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "モツ語" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "高地ソルブ語" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "ãƒãƒ³ã‚¬ãƒªãƒ¼èªž" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "フーパ語" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "イãƒãƒ³èªž" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "イボ語" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "アイスランド語" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "イド語" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "å››å·èªž" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "イジョ語" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "イヌクティトゥト語" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "インターリングァ語" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "イロコ語" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "インターリングァ(国際補助語å”会)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "インド語(ãã®ä»–)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "インドãƒã‚·ã‚¢èªž" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "インド-ヨーロッパ語(ãã®ä»–)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "イングーシ語" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "イヌピアト語" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "イラン語(ãã®ä»–)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "イロコイ語" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "イタリア語" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ジャワ語" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "ロジパン語" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "日本語" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "ユダヤ系ペルシア語" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "ユダヤ系アラビア語" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "カラカルパク語" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "ã‚«ãƒã‚¤ãƒ«èªž" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "ã‚«ãƒãƒ³èªž" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "グリーンランド語" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "カンãƒèªž" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "カナラ語" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "カレン語" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "カシミール語" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "カヌリ語" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "カウィ語" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "カザフ語" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "ã‚«ãƒãƒ«ãƒ€èªž" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "カーシ語" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "コイサン語(ãã®ä»–)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "クメール語" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "コータン語" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "キクーユ語" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "キニヤルワンダ語" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "キルギス語" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "キンブンドゥー語" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "コンカニ語" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "コミ語" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "コンゴ語" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "韓国語" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "コスラエ語" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "クペル語" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "カラãƒãƒ£ã‚¤ãƒã‚¤ã‚«ãƒ«èªž" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "クルー語" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "クルク語" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "クアニャマ語" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "クミク語" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "クルド語" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "クテナイ語" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ラディノ語" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "ラーンダ語" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "ランãƒèªž" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "ラオ語" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ラテン語" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ラトビア語" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "レズギン語" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "リグリア語" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "リンガラ語" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "リトアニア語" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "モンゴ語" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "ロージー語" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "ルクセンブルク語" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "ルãƒãƒ»ãƒ«ãƒ«ã‚¢èªž" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "ルãƒãƒ»ã‚«ã‚¿ãƒ³ã‚¬èªž" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ガンダ語" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "ルイセーニョ語" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "ルンダ語" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "ルオ語(ケニアãŠã‚ˆã³ã‚¿ãƒ³ã‚¶ãƒ‹ã‚¢)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "ルシャイ語" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "マケドニア語" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "マドゥラ語" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "マガヒ語" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "マーシャル語" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "マイティリー語" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "マカッサル語" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "マラヤーラム語" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "マンディンゴ語" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "マオリ語" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "アウストロãƒã‚·ã‚¢èªž(ãã®ä»–)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "マラーティー語" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "マサイ語" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "マレー語" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "モクシャ語" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "マンダル語" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "メンデ語" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "中期アイルランド語(900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "ミックマック語" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "ミナンカãƒã‚¦èªž" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "ãã®ä»–ã®è¨€èªž" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "モン・クメール語(ãã®ä»–)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "マダガスカル語" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "マルタ語" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "満州語" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "マニプリ語" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "マノボ語" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "モホーク語" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "モルダヴィア語" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "モンゴル語" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "モシ語" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "複数言語" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "ムンダ語" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "クリーク語" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "ミランダ語" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "マールワーリー語" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "マヤ語" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "アルジア語" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "ナワトル語" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "北米インディアン語" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ナãƒãƒªèªž" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "ナヴァホ語" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "å—ヌデベレ語" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "北ヌデベレ語" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ンドンガ語" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "低地ドイツ語" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "ãƒãƒ‘ール語" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "ãƒãƒ¯ãƒ¼ãƒ«èªž" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "ニアス語" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "ニジェール-コルフドファン語(ãã®ä»–)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "ニウエ語" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "ノルウェー・ニーノシュク語" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "ノルウェー・ブークモール語" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "ノガイ語" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "å¤ä»£ã‚¹ã‚«ãƒ³ãƒ‡ã‚£ãƒŠãƒ´ã‚£ã‚¢èªž" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "ノルウェー語" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "北ソト語" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "ヌãƒèªž" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "å¤å…¸ãƒãƒ¯ãƒ¼ãƒ«èªž" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "ãƒã‚§ãƒ¯èªž" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "ムエジ語" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "ニャンコーレ語" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "ニョロ語" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "ンジマ語" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "プロヴァンス語(1500年以é™)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "オジブウェー語" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "オリヤー語" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "オロモ語" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "オーセージ語" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "オセット語" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "オスマントルコ語(1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "オトミ語" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "パプア語(ãã®ä»–)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "パンガシナン語" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "パフレヴィ語" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "パンパンガ語" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "パンジャブ語" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "パピアメント語" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "パラウ諸島語" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "å¤ãƒšãƒ«ã‚·ã‚¢èªž(ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ペルシア語" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "フィリピン語(ãã®ä»–)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "フェニキア語" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "パーリ語" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ãƒãƒŠãƒšèªž" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªž" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "プラークリット諸語" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "夿œŸãƒ—ロヴァンス語" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "プシュトゥー語" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "ケãƒãƒ¥ã‚¢èªž" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "ラージャスタニ語" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "ラパヌイ語" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "ラロトンガ語" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "ロマンス語(ãã®ä»–)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "レトロマン語" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "ジプシー語" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "ルーマニア語" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "ルンディ語" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "ロシア語" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "サンダウェ語" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "サンゴ語" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "ヤクート語" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "å—アメリカインディアン語(ãã®ä»–)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "サリシュ語" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "サマリアアラム語" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "サンスクリット語" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "ササク語" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "サンターリー語" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "セルビア語" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "シシリア語" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "スコットランド語" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "クロアティア語" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "セルカーク語" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "セム語(ãã®ä»–)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "å¤ä»£ã‚±ãƒ«ãƒˆèªž(-900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "手話言語" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "シャン語" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "シダモ語" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "シンãƒãƒ©èªž" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "スー語" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "シナ-ãƒãƒ™ãƒƒãƒˆèªž(ãã®ä»–)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "スラヴ語(ãã®ä»–)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "スロãƒã‚­ã‚¢èªž" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "スロベニア語" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "å—サーミ語" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "北サーミ語" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "サーミ諸語(ãã®ä»–)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "ルレオサーミ語" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "イナリサーミ語" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "サモア語" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "スコルトサーミ語" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "ショナ語" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "シンド語" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "ソニンケ語" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "ソグディアナ語" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "ソマリ語" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "ソンガイ語" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "å—ソト語" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "スペイン語" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "サルデーニャ語" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "セレル語" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "ナイル-サãƒãƒ©èªž(ãã®ä»–)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "スワート語" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "スクマ語" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "スンダ語" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "スス語" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "シュメール語" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "スワヒリ語" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "スウェーデン語" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "シリア語" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "タヒãƒèªž" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "タイ語(ãã®ä»–)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "タミル語" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "タタール語" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "テルグ語" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "テムãƒèªž" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "テレナ語" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "テトゥン語" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "タジク語" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "タガログ語" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "タイ語" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ãƒãƒ™ãƒƒãƒˆèªž" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "ティグレ語" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ティグリニャ語" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "ティヴ語" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "クリンゴン語" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "トリンギット語" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "タマシェク語" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "トンガ語(ニアサ)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "トンガ語(トンガ諸島)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "トークピジン語" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "ãƒãƒ ã‚·ã‚¢ãƒ³èªž" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ツワナ語" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "ツォンガ語" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "トルクメン語" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "トゥンブカ語" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "トゥピー語æ—" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "トルコ語" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "アルタイ語(ãã®ä»–)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "トウィ語" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "トゥヴァ語" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "ウドムルト語" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "ウガリット語" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ウイグル語" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ウクライナ語" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "ムブンドウ語" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "未確èª" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "ウルドゥー語" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "ウズベク語" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "ヴァイ語" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "ヴェンダ語" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ヴェトナム語" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "ヴォラピューク語" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "ヴォート語" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ワカシ語æ—" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "ワッラモ語" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "ワライ語" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "ワショ語" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "ウェールズ語" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "ソルビア語æ—" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ワロン語" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "オォロフ語" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "カルムイク語" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "コーサ語" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "ヤオ語" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "ヤップ語" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "イディッシュ語" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "ヨルãƒèªž" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "ユピック語æ—" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "サãƒãƒ†ã‚¯èªž" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "ゼナガ語" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "ãƒãƒ¯ãƒ³èªž" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ザンデ語" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ズールー語" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "ズーニー語" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "以下ã®å‹•作を実行ã—ã¾ã™:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "無期é™" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "期é™åˆ‡ã‚Œæ¸ˆã¿: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "期é™åˆ‡ã‚Œäºˆå®š: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(無期é™)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(期é™åˆ‡ã‚Œ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(24 æ™‚é–“ä»¥å†…ã«æœŸé™åˆ‡ã‚Œ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(%d æ—¥ã§æœŸé™åˆ‡ã‚Œ)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "キャッシュ %2% 内㧠gpg éµ ID %1% を検索ã—ã¦ã„ã¾ã™ã€‚" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "リãƒã‚¸ãƒˆãƒª %2% 内㧠gpg éµ ID %1% を検索ã—ã¦ã„ã¾ã™ã€‚" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "リãƒã‚¸ãƒˆãƒª %1% 㯠'gpgkey=' ã§è¿½åŠ ã® URL を指定ã—ã¦ã„ã¾ã›ã‚“。" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" "リãƒã‚¸ãƒˆãƒªã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª '%1%' を読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“: 許å¯ãŒã‚りã¾ã›ã‚“" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "ディレクトリ '%s' ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" "リãƒã‚¸ãƒˆãƒªã®ãƒ•ァイル '%1%' を読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“: 許å¯ãŒã‚りã¾ã›ã‚“" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "リãƒã‚¸ãƒˆãƒªã®åˆ¥åをドットã‹ã‚‰å§‹ã‚ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "サービスã®åˆ¥åをドットã‹ã‚‰å§‹ã‚ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "ファイル '%s' を書ãè¾¼ã¿ç”¨ã«é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "䏿˜Žãªã‚µãƒ¼ãƒ“ス '%1%' ã§ã™: 孤立ã—ãŸã‚µãƒ¼ãƒ“スリãƒã‚¸ãƒˆãƒª '%2%' を削除ã—ã¦ã„ã¾ã™" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "指定ã—㟠URL ã«ã¯æ­£ã—ã„メタデータãŒã‚りã¾ã›ã‚“" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "%s を作æˆã§ãã¾ã›ã‚“" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "メタデータã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作æˆã§ãã¾ã›ã‚“。" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "リãƒã‚¸ãƒˆãƒª '%s' ã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’構築ã—ã¦ã„ã¾ã™" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "%s ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’作æˆã§ãã¾ã›ã‚“ - 書ãè¾¼ã¿è¨±å¯ãŒã‚りã¾ã›ã‚“。" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "リãƒã‚¸ãƒˆãƒª (%d) ã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "未処ç†ã®ãƒªãƒã‚¸ãƒˆãƒªã‚¿ã‚¤ãƒ—" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "'%s' ã‹ã‚‰èª­ã¿å–り時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "'%s' ã‹ã‚‰ã®èª­ã¿å–り時ã«ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "リãƒã‚¸ãƒˆãƒª '%s' を追加ã—ã¦ã„ã¾ã™" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "'%s' ã«ã‚るリãƒã‚¸ãƒˆãƒªã®ãƒ•ァイルåãŒæ­£ã—ãã‚りã¾ã›ã‚“" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "リãƒã‚¸ãƒˆãƒª '%s' を削除ã—ã¦ã„ã¾ã™" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "リãƒã‚¸ãƒˆãƒªãŒã©ã“ã«ä¿å­˜ã•れãŸã®ã‹ãŒã‚ã‹ã‚Šã¾ã›ã‚“。" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s' を削除ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "サービスã®ä¿ç®¡å ´æ‰€ãŒã‚ã‹ã‚Šã¾ã›ã‚“。" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "無効ãªLDAP URLã®ã‚¯ã‚¨ãƒªæ–‡å­—列" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "無効ãªLDAP URLクエリパラメータ '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "URLオブジェクトを複製ã§ãã¾ã›ã‚“" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "無効ãªç©ºã®URLオブジェクトå‚ç…§" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "URLコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’è§£æžã§ãã¾ã›ã‚“" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "䏿˜Ž" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "未対応" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Level 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Level 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Level 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "追加ã®é¡§å®¢å¥‘ç´„ãŒå¿…è¦" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "無効" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "サãƒãƒ¼ãƒˆã®ãƒ¬ãƒ™ãƒ«ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "ベンダã¯ã‚µãƒãƒ¼ãƒˆã‚’æä¾›ã—ã¦ã„ã¾ã›ã‚“。" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "å•é¡Œã®æ±ºå®šã€ãれã¯äº’æ›æ€§ã«é–¢ã™ã‚‹æƒ…報やインストール支æ´ã€ä½¿ç”¨æ–¹æ³•ã®å¯¾å¿œã‚„進行" "中ã®ä¿å®ˆã€åŸºæœ¬çš„ãªãƒˆãƒ©ãƒ–ルシューティングãªã©ã®æŠ€è¡“サãƒãƒ¼ãƒˆã‚’指ã—ã¾ã™ã€‚Level 1" "サãƒãƒ¼ãƒˆã¯ã€è£½å“ã®æ¬ é™¥ã«ã‚ˆã‚‹ã‚¨ãƒ©ãƒ¼ã‚’修正ã—よã†ã¨ã™ã‚‹ã‚‚ã®ã§ã¯ã‚りã¾ã›ã‚“。" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "å•題ã®åˆ‡ã‚Šåˆ†ã‘ã€ãれã¯é¡§å®¢å†…ã§ã®å•題を共有ã—領域を切り分ã‘ã€Level 1サãƒãƒ¼ãƒˆã§" "ã¯è§£æ±ºã•れã¦ã„ãªã„å•題ã«ã¤ã„ã¦è§£æ±ºæ–¹æ³•ã‚’æä¾›ã™ã‚‹æŠ€è¡“サãƒãƒ¼ãƒˆã‚’指ã—ã¾ã™ã€‚" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "å•題ã®è§£æ±ºã€ãれã¯è¤‡é›‘ãªå•題ã«å¯¾ã—ã¦æŠ€è¡“è€…ã‚’å¾“äº‹ã•ã›ã€Level 2サãƒãƒ¼ãƒˆã§èªè­˜ã•" "れã¦ã„ãªã„製å“ã®æ¬ é™¥ã‚’解決ã™ã‚‹æŠ€è¡“サãƒãƒ¼ãƒˆã‚’指ã—ã¾ã™ã€‚" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "サãƒãƒ¼ãƒˆã‚’å¾—ã‚‹ã«ã¯ã€è¿½åŠ ã®é¡§å®¢å¥‘ç´„ãŒå¿…è¦ã§ã™ã€‚" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "䏿˜Žãªã‚µãƒãƒ¼ãƒˆã‚ªãƒ—ションã§ã™ã€‚説明ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "システム管ç†ã¯pid %d (%s)ã®ã‚¢ãƒ—リケーションã«ã‚ˆã£ã¦ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã™ã€‚\n" "å†è©¦è¡Œã™ã‚‹å‰ã«ã“ã®ã‚¢ãƒ—リケーションを終了ã—ã¦ãã ã•ã„。" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "履歴:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "ロックファイルを開ã‘ã¾ã›ã‚“:%s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "ã“ã®ä½œæ¥­ã¯ã™ã§ã«ä»–ã®ãƒ—ログラムã§å®Ÿè¡Œã•れã¦ã„ã¾ã™ã€‚" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "䏿˜Žãªè©²å½“モード「%sã€" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "該当モード「%sã€ãŒãƒ‘ターン「%sã€ã«å¯¾ã—ã¦ä¸æ˜Žã§ã™" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "æ­£è¦è¡¨ç¾ '%s' ãŒæ­£ã—ãã‚りã¾ã›ã‚“。regcomp㯠%d ã‚’è¿”ã—ã¾ã—ãŸ" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "æ­£è¦è¡¨ç¾ '%s' ãŒæ­£ã—ãã‚りã¾ã›ã‚“" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "'%s' ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ãƒ¦ãƒ¼ã‚¶èªè¨¼ãŒå¿…è¦ã§ã™" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Novellカスタマーセンターã¸ã‚¢ã‚¯ã‚»ã‚¹ã—ã€ç™»éŒ²ãŒæœ‰åйã§ã‚ã‚‹ã‹ã€æœ‰åŠ¹æœŸé™åˆ‡ã‚Œã«ãªã£" "ã¦ã„ãªã„ã‹ã‚’確èªã—ã¦ãã ã•ã„。" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s ã‚’ %s ã«ãƒžã‚¦ãƒ³ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "%s をアンマウントã§ãã¾ã›ã‚“ã§ã—ãŸ" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "䏿­£ãªãƒ•ァイルå:%s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "アクション '%s' を実行ã—よã†ã¨ã—ãŸéš›ã«ãƒ¡ãƒ‡ã‚£ã‚¢ãŒé–‹ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "ファイル「%sã€ãŒãƒ¡ãƒ‡ã‚£ã‚¢ã€Œ%sã€ã«è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "ファイル「%sã€ã‚’書ãè¾¼ã‚ã¾ã›ã‚“。" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "ãƒ¡ãƒ‡ã‚£ã‚¢ãŒæŽ¥ç¶šã•れã¦ã„ã¾ã›ã‚“" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "䏿­£ãªãƒ¡ãƒ‡ã‚£ã‚¢ã®æŽ¥ç¶šç‚¹" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "「%sã€ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰(curl)準備ãŒå¤±æ•—ã—ã¾ã—ãŸ" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "システム例外 '%s' ãŒãƒ¡ãƒ‡ã‚£ã‚¢ '%s' ã§ç™ºç”Ÿã—ã¾ã—ãŸã€‚" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "パス「%sã€(メディア「%sã€ä¸Š)ãŒãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“。" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "パス「%sã€(メディア「%sã€ä¸Š)ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ã‚りã¾ã›ã‚“。" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "䏿­£ãªå½¢å¼ã®URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "URIã®ãƒ›ã‚¹ãƒˆåãŒç©ºã§ã™" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "URIã®ãƒ•ァイルシステムãŒç©ºã§ã™" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "URIã®å®›å…ˆãŒç©ºã§ã™" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "「%sã€ã®URIスキーマãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "メディアã§ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„æ“作ã§ã™" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "「%sã€ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰(curl)エラー:\n" "エラーコード:%s\n" "エラーメッセージ:%s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "「%sã€ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰(curl)オプションã®è¨­å®šä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "メディアソース「%sã€ã«ç›®çš„ã®ãƒ¡ãƒ‡ã‚£ã‚¢ãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "メディア「%sã€ã¯åˆ¥ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«ã‚ˆã£ã¦ä½¿ç”¨ã•れã¦ã„ã¾ã™" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "メディアをå–り出ã›ã¾ã›ã‚“" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "メディア「%sã€ã‚’å–り出ã›ã¾ã›ã‚“" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "「%sã€ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãƒ‘ãƒ¼ãƒŸãƒƒã‚·ãƒ§ãƒ³ãŒæ‹’å¦ã•れã¾ã—ãŸã€‚" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "'%s' ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹éš›ã«ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã«ãªã‚Šã¾ã—ãŸã€‚" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "ダウンロードã—ãŸãƒ‡ãƒ¼ã‚¿ãŒæœŸå¾…ã™ã‚‹ãƒ•ァイルサイズを超ãˆã¦ã„ã¾ã™ (期待ã™ã‚‹ã‚µã‚¤ã‚º=%s, 実際ã®ã‚µã‚¤ã‚º=%s) 。" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "場所「%sã€ã¯ä¸€æ™‚çš„ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªããªã£ã¦ã„ã¾ã™ã€‚" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " SSL 証明書ã«å•題ãŒã‚りã¾ã™ã€‚ '%s' ã«ã¤ã„ã¦è¨¼æ˜Žæ©Ÿé–¢ã«å•題ãŒãªã„ã‹ã©ã†ã‹ç¢ºèªã—" "ã¦ãã ã•ã„。" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "接続点ã®ä½œæˆ: 接続点を作æˆã™ã‚‹ãŸã‚ã®æ›¸ãè¾¼ã¿å¯èƒ½ãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã›" "ã‚“" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "未対応ã®HTTPèªè¨¼æ–¹å¼ '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "最åˆã«ãƒ‘ッケージ「lsofã€ã‚’インストールã—ã¦ãã ã•ã„。" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "å¿…è¦ãªå±žæ€§ '%s' ãŒã‚りã¾ã›ã‚“。" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "'%s' ã¾ãŸã¯ '%s' (ã‚‚ã—ãã¯ãã®ä¸¡æ–¹)ã®å±žæ€§ãŒå¿…è¦ã§ã™ã€‚" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "ç½²åã®æ¤œè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸ" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "パッケージ %s ã¯è»¢é€ä¸­ã«å£Šã‚Œã¦ã—ã¾ã£ãŸã‚ˆã†ã§ã™ã€‚ã‚‚ã†ä¸€åº¦å–å¾—ã—ã¾ã™ã‹ï¼Ÿ" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "パッケージ %s ã®æä¾›ã«å¤±æ•—ã—ã¾ã—ãŸã€‚å–å¾—ã‚’å†è©¦è¡Œã—ã¾ã™ã‹?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpmã®ãƒã‚§ãƒƒã‚¯ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpmãŒå¤±æ•—ã—ã¾ã—ãŸã€‚" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "サービスプラグインã¯å±žæ€§ã®å¤‰æ›´ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "ファイル '%s' をリãƒã‚¸ãƒˆãƒª '%s' ã‹ã‚‰æä¾›ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "リãƒã‚¸ãƒˆãƒªã«URLãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“。" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "パッケージ %2% ã‹ã‚‰ã®\n" " ファイル %1% ãŒã€\n" " パッケージ %3% ã‹ã‚‰ã®\n" " ファイルã¨\n" " ç«¶åˆã—ã¦ã„ã¾ã™" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "パッケージ %2% ã‹ã‚‰ã®\n" " ファイル %1% ãŒã€\n" " %3% ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«ã‚ˆã‚‹\n" " ファイルã¨\n" " ç«¶åˆã—ã¦ã„ã¾ã™" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "%2% ã®\n" " インストールã«ã‚ˆã‚‹\n" " ファイル %1% ãŒã€ãƒ‘ッケージ\n" " %3% ã‹ã‚‰ã®ãƒ•ァイルã¨\n" " ç«¶åˆã—ã¦ã„ã¾ã™" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "%2% ã®\n" " インストールã«ã‚ˆã‚‹\n" " ファイル %1% ãŒã€\n" " %3% ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«ã‚ˆã‚‹\n" " ファイルã¨ç«¶åˆã—ã¦ã„ã¾ã™" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "パッケージ %2% \n" " ã‹ã‚‰ã®\n" " ファイル %1% ãŒã€\n" "パッケージ %4% \n" " ã‹ã‚‰ã®\n" "ファイル %3% ã¨\n" "ç«¶åˆã—ã¦ã„ã¾ã™" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "パッケージ %2% \n" " ã‹ã‚‰ã®\n" " ファイル %1% ãŒã€\n" " %4% ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«ã‚ˆã‚‹\n" " ファイル %3% ã¨\n" " ç«¶åˆ\n" " ã—ã¦ã„ã¾ã™" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "%2% ã®\n" " インストールã«ã‚ˆã‚‹\n" " ファイル %1% ãŒã€\n" " パッケージ %4% \n" " ã‹ã‚‰ã®ãƒ•ァイル %3%\n" " ã¨ç«¶åˆ\n" " ã—ã¦ã„ã¾ã™" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "%2% ã®\n" " インストールã«ã‚ˆã‚‹\n" " ファイル %1% ãŒã€\n" " %4% ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«\n" " ã«ã‚ˆã‚‹\n" " ファイル %3%\n" " ã¨ç«¶åˆã—ã¦ã„ã¾ã™" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "sat-poolを作æˆã§ãã¾ã›ã‚“。" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ã„ãã¤ã‹ã®ä¾å­˜é–¢ä¿‚を無視ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ %s を壊ã—ã¾ã™" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "ã„ãã¤ã‹ã®ä¾å­˜é–¢ä¿‚ã‚’ãŠãŠã‚ˆã無視ã™ã‚‹" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s ã¯distupgradeã®ãƒªãƒã‚¸ãƒˆãƒªã«å±žã—ã¦ã„ã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s ã¯ä¸‹ä½ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã™" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "インストール済ã¿ã®ãƒ‘ッケージ %s ã«å•題ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "è¦æ±‚ãŒçŸ›ç›¾ã—ã¦ã„ã¾ã™" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "何らã‹ã®ä¾å­˜é–¢ä¿‚ã®å•題" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "è¦æ±‚ã—㟠%s ã¯ã©ã“ã‹ã‚‰ã‚‚æä¾›ã•れã¦ã„ã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "ã™ã¹ã¦ã®å¿…è¦ãªãƒªãƒã‚¸ãƒˆãƒªã‚’有効化ã—ã¾ã—ãŸã‹ï¼Ÿ" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "パッケージ %s ã¯å­˜åœ¨ã—ã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "サãƒãƒ¼ãƒˆã•れã¦ã„ãªã„è¦æ±‚" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s ã¯ã‚·ã‚¹ãƒ†ãƒ ãŒæä¾›ã™ã‚‹ã‚‚ã®ã§ã€å‰Šé™¤ã§ãã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s ã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s (%s ã§å¿…è¦)ã¯ã©ã“ã‹ã‚‰ã‚‚æä¾›ã•れã¦ã„ã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s 㨠%s ã®ä¸¡æ–¹ã‚’インストールã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s 㯠%s (%s ã‹ã‚‰æä¾›ã•れã¦ã„ã‚‹)ã¨ç«¶åˆã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s 㯠%s (%s ã‹ã‚‰æä¾›ã•れã¦ã„ã‚‹)ã‚’å¤ã„ã‚‚ã®ã¨ã—ã¦å»ƒæ£„ã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" "インストール済ã¿ã® %s ã¯ã€%s (%s ã‹ã‚‰æä¾›ã•れã¦ã„ã‚‹)ã‚’å¤ã„ã‚‚ã®ã¨ã—ã¦å»ƒæ£„ã—ã¾" "ã™" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "解決方法 %s ã¯è‡ªåˆ†è‡ªèº«ã§æä¾›ã—ã¦ã„ã‚‹ %s ã¨ç«¶åˆã—ã¦ã„ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s 㯠%s ã‚’å¿…è¦ã¨ã—ã¦ã„ã¾ã™ãŒã€ã“ã®è¦æ±‚を解決ã™ã‚‹æ–¹æ³•ãŒã‚りã¾ã›ã‚“" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "削除ã—ãŸãƒ—ロãƒã‚¤ãƒ€: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "インストールä¸å¯èƒ½ãªãƒ—ロãƒã‚¤ãƒ€: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "インストールä¸å¯èƒ½ãªãƒ—ロãƒã‚¤ãƒ€: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "%s ã®å‰Šé™¤ã‚’許å¯ã™ã‚‹ãŸã‚ã«ãƒ­ãƒƒã‚¯ã‚’削除ã™ã‚‹" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s をインストールã—ãªã„" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s ã‚’ç¶­æŒ" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "%s ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’許å¯ã™ã‚‹ãŸã‚ã«ãƒ­ãƒƒã‚¯ã‚’削除ã™ã‚‹" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "ã“ã®è¦æ±‚ã¯ã‚·ã‚¹ãƒ†ãƒ ã‚’壊ã—ã¦ã—ã¾ã„ã¾ã™ï¼" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "システムãŒç ´å£Šã•れる警告を無視ã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%s ã‚’æä¾›ã™ã‚‹è§£æ±ºæ–¹æ³•ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«ã¤ã„ã¦å•ã„åˆã‚ã›ãªã„" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "%s ã‚’æä¾›ã™ã‚‹ã™ã¹ã¦ã®è§£æ±ºæ–¹æ³•ã®å‰Šé™¤ã«ã¤ã„ã¦å•ã„åˆã‚ã›ãªã„" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "%s ã®æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’インストールã—ãªã„" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "下ä½ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã™ãŒ %s ã‚’ç¶­æŒã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "下ä½ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã™ãŒ %s をインストールã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "å¤ã„ %s ã‚’ç¶­æŒã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "除外ã•れãŸãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰ %s をインストールã—ã¾ã™" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%s ã‚’ %s ã«ãƒ€ã‚¦ãƒ³ã‚°ãƒ¬ãƒ¼ãƒ‰ã™ã‚‹" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "アーキテクãƒãƒ£ã‚’ %s ã‹ã‚‰ %s ã«å¤‰æ›´" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "%s をインストールã™ã‚‹(ベンダを変更ã™ã‚‹)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "%s ã‚’ %s ã§ç½®ãæ›ãˆã‚‹" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "%s ã®ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "%%posttrans スクリプト '%1%' を実行ã—ã¦ã„ã¾ã™" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "%postrans スクリプトを実行ã—ã¦ã„ã¾ã™" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " 実行済ã¿" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " 実行失敗" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s 㯠%s ã¨ã—ã¦å®Ÿè¡Œæ¸ˆã¿ã§ã™)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " 中止ã—ã¦ã„ã‚‹ãŸã‚実行をスキップ" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "更新メッセージ通知ã®é€ä¿¡æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "æ–°ã—ã„æ›´æ–°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "指示通りã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒä¸­æ­¢ã•れã¾ã—ãŸã€‚" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "申ã—訳ã‚りã¾ã›ã‚“。ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®libzyppã¯HALサãƒãƒ¼ãƒˆãªã—ã§æ§‹ç¯‰ã•れã¦ã„ã¾" "ã™ã€‚" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContextãŒæŽ¥ç¶šã•れã¦ã„ã¾ã›ã‚“" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDriveãŒæº–å‚™ã•れã¦ã„ã¾ã›ã‚“" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolumeãŒæº–å‚™ã•れã¦ã„ã¾ã›ã‚“" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus接続を作æˆã§ãã¾ã›ã‚“" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new:libhalコンテキストを作æˆã§ãã¾ã›ã‚“" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection:dbus接続を設定ã§ãã¾ã›ã‚“" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "HALコンテキストを準備ã§ãã¾ã›ã‚“。haldãŒå‹•作ã—ã¦ã„ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "CD ROMドライブã§ã¯ã‚りã¾ã›ã‚“" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPMã®å¤±æ•—: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "公開éµã‚’ファイル %1% ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "å…¬é–‹éµ %1% を削除ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "パッケージã«ç½²åãŒã‚りã¾ã›ã‚“ï¼" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s å‘ã‘ã«å¤‰æ›´ã•れãŸè¨­å®šãƒ•ァイル:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm㯠%s ã‚’ %s ã¨ã—ã¦ä¿å­˜ã—ã¾ã—ãŸãŒã€å·®ç•°ã‚’判別ã§ãã¾ã›ã‚“ã§ã—ãŸ" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm㯠%s ã‚’ %s ã¨ã—ã¦ä¿å­˜ã—ã¾ã—ãŸã€‚\n" "以下ã¯å·®ç•°ã®ã‚る最åˆã®25行ã§ã™ã€‚\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm㯠%s ã‚’ %s ã¨ã—ã¦ä½œæˆã—ã¾ã—ãŸãŒã€å·®ç•°ã‚’判別ã§ãã¾ã›ã‚“ã§ã—ãŸ" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm㯠%s ã‚’ %s ã¨ã—ã¦ä½œæˆã—ã¾ã—ãŸã€‚\n" "以下ã¯å·®ç•°ã®ã‚る最åˆã®25行ã§ã™ã€‚\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "追加ã®rpm出力" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— %s ãŒä½œæˆã•れã¾ã—ãŸ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "ç½²åã«å•題ã¯ã‚りã¾ã›ã‚“" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "䏿˜Žãªç¨®é¡žã®ç½²åã§ã™" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "ç½²åã¯æ­£ã—ãã‚りã¾ã›ã‚“" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "ç½²åã«å•題ã¯ã‚りã¾ã›ã‚“ãŒã€éµã‚’ä¿¡é ¼ã—ã¦ã„ã¾ã›ã‚“" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "ç½²åã®å…¬é–‹éµãŒã‚りã¾ã›ã‚“" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "ファイルãŒå­˜åœ¨ã—ãªã„ã‹ã€ç½²åを確èªã§ãã¾ã›ã‚“" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "ファイルã«ç½²åãŒã‚りã¾ã›ã‚“" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "相互排他属性を準備ã§ãã¾ã›ã‚“" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "å†å¸°ç›¸äº’排他的属性を設定ã§ãã¾ã›ã‚“" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "å†å¸°ç›¸äº’排他属性を準備ã§ãã¾ã›ã‚“" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "mutexロックをå–å¾—ã§ãã¾ã›ã‚“" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "mutexロックを解除ã§ãã¾ã›ã‚“" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "URLスキームã§ã¯ %s を許å¯ã—ã¦ã„ã¾ã›ã‚“" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "無効㪠%s コンãƒãƒ¼ãƒãƒ³ãƒˆ '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "無効㪠%s コンãƒãƒ¼ãƒãƒ³ãƒˆ" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "ã“ã®URLã«å¯¾ã—ã¦ã€ã‚¯ã‚¨ãƒªæ–‡å­—列解æžã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URLスキームã¯å¿…é ˆã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§ã™" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "無効ãªURLスキーム '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "URLスキームã§ã¯ãƒ¦ãƒ¼ã‚¶åを指定ã™ã‚‹ã“ã¨ã¯è¨±ã•れã¦ã„ã¾ã›ã‚“" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "URLスキームã§ã¯ãƒ‘スワードを指定ã™ã‚‹ã“ã¨ã¯è¨±ã•れã¦ã„ã¾ã›ã‚“" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "URLスキームã«ã¯ãƒ›ã‚¹ãƒˆéƒ¨åˆ†ãŒå¿…è¦ã§ã™" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "URLスキームã§ã¯ãƒ›ã‚¹ãƒˆéƒ¨åˆ†ã‚’指定ã™ã‚‹ã“ã¨ã¯è¨±ã•れã¦ã„ã¾ã›ã‚“" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "無効ãªãƒ›ã‚¹ãƒˆéƒ¨åˆ† '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "URLスキームã§ã¯ãƒãƒ¼ãƒˆã®æŒ‡å®šã¯è¨±ã•れã¦ã„ã¾ã›ã‚“" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "無効ãªãƒãƒ¼ãƒˆéƒ¨åˆ† '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "URLスキームã«ã¯ãƒ‘スåãŒå¿…è¦ã§ã™" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "権é™éƒ¨åˆ†ãŒå­˜åœ¨ã™ã‚‹å ´åˆç›¸å¯¾ãƒ‘スã¯è¨±å¯ã•れã¾ã›ã‚“" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "エンコードã•ã‚ŒãŸæ–‡å­—列ã«NULLãƒã‚¤ãƒˆãŒã‚りã¾ã™" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "無効ãªãƒ‘ラメータé…列区切り文字" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "無効ãªãƒ‘ラメータマップ区切り文字" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "無効ãªãƒ‘ラメータé…列çµåˆæ–‡å­—" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "公開éµã‚’ファイル %s ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ:%s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "å…¬é–‹éµ %s を削除ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ:%s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "「%sã€ã‹ã‚‰ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ァイルをマウントã™ã‚‹ä½¿ç”¨å¯èƒ½ãªãƒ«ãƒ¼ãƒ—デãƒã‚¤ã‚¹ãŒè¦‹ã¤ã‹ã‚Š" #~ "ã¾ã›ã‚“" libzypp-17.7.0/po/ka.po000066400000000000000000003223041334444677500146750ustar00rootroot00000000000000# Georgian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2005 SUSE Linux Products GmbH. # # Aiet Kolkhi , 2005. # George Machitidze , 2009. msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2009-03-06 01:28+0400\n" "Last-Translator: George Machitidze \n" "Language-Team: Georgian <>\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 0.2\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "áƒáƒœáƒ“ირáƒ" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "áƒáƒ•ღáƒáƒœáƒ”თი" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "áƒáƒœáƒ¢áƒ˜áƒ’ურდრბáƒáƒ áƒ‘უდáƒ" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "áƒáƒšáƒ‘áƒáƒœáƒ˜áƒ" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "სáƒáƒ›áƒ®áƒ”თი" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "áƒáƒœáƒ’áƒáƒšáƒ" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "áƒáƒœáƒ¢áƒáƒ áƒ¥áƒ¢áƒ˜áƒ™áƒ" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "áƒáƒ áƒ’ენტინáƒ" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "áƒáƒ•სტრიáƒ" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "áƒáƒ•სტრáƒáƒšáƒ˜áƒ" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "áƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ˜" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "ბáƒáƒ¡áƒœáƒ˜áƒ დრჰერცáƒáƒ’áƒáƒ•ინáƒ" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "ბáƒáƒ áƒ‘áƒáƒ“áƒáƒ¡áƒ˜" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "ბáƒáƒœáƒ’ლáƒáƒ“ეში" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "ბელგიáƒ" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "ბურკინრფáƒáƒ¡áƒ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ბულგáƒáƒ áƒ”თი" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "ბáƒáƒ°áƒ áƒ”ინი" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "ბურუნდი" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "ბენინი" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "ბერმუდები" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "ბáƒáƒšáƒ˜áƒ•იáƒ" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "ბრáƒáƒ–ილიáƒ" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "ბáƒáƒ°áƒáƒ›áƒ˜áƒ¡ კუნძულები" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ბუტáƒáƒœáƒ˜" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "ბáƒáƒªáƒ•áƒáƒœáƒ" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "ბელáƒáƒ áƒ£áƒ¡áƒ”თი" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "ბელიზი" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "კáƒáƒ›áƒ”რუნი" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "áƒáƒšáƒŸáƒ˜áƒ áƒ˜" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "სáƒáƒ¥áƒáƒ áƒ—ველáƒ" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ირლáƒáƒœáƒ“იáƒ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ისრáƒáƒ”ლი" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "ერáƒáƒ§áƒ" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ირáƒáƒœáƒ˜" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "იტáƒáƒšáƒ˜áƒ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "იáƒáƒ›áƒáƒ˜áƒ™áƒ" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "იáƒáƒžáƒáƒœáƒ˜áƒ" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "კáƒáƒ›áƒ‘áƒáƒ¯áƒ" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "მხáƒáƒ áƒ“áƒáƒ›áƒ­áƒ”რი" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "áƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ˜" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒáƒœáƒ¡áƒ˜" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "áƒáƒšáƒ‘áƒáƒœáƒ£áƒ áƒ˜" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ინგლუსური, ძველი (დáƒáƒáƒ®áƒš. 450-1000)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "áƒáƒžáƒáƒ©áƒ˜áƒ¡ ენები" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "áƒáƒ áƒáƒ‘ული" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "áƒáƒ áƒáƒ›áƒ”ული" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "სáƒáƒ›áƒ®áƒ£áƒ áƒ˜" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "ხელáƒáƒ•ნური (სხვáƒ)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "áƒáƒ•სტრáƒáƒšáƒ˜áƒ£áƒ áƒ˜ ენები" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "áƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ£áƒšáƒ˜" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "ბáƒáƒšáƒ¢áƒ˜áƒ£áƒ áƒ˜ (სხვáƒ)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "ბელáƒáƒ áƒ£áƒ¡áƒ£áƒšáƒ˜" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "ბáƒáƒ¡áƒœáƒ˜áƒ£áƒ áƒ˜" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ბულგáƒáƒ áƒ£áƒšáƒ˜" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ინგლისური" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ინგლისური, შუáƒáƒ¡áƒáƒ£áƒ™áƒ£áƒœáƒ”ების (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ქáƒáƒ áƒ—ული" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ირლáƒáƒœáƒ“იური" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ირáƒáƒœáƒ£áƒšáƒ˜ (სხვáƒ)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "იტáƒáƒšáƒ˜áƒ£áƒ áƒ˜" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "იáƒáƒžáƒáƒœáƒ£áƒ áƒ˜" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "კáƒáƒ›áƒ˜" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "კáƒáƒœáƒ’áƒ" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "კáƒáƒ áƒ”ული" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Couldn't open file: %s." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "بيانات التعري٠غير صحيحة لم يتم العثور عليها ÙÙŠ المسار(s)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr "" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი კáƒáƒ“ი" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "لا يمكن إنشاء Ø§Ù„Ù…ÙØªØ§Ø­ العام %s من %s إلى مل٠حلقة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "حاول استيراد Ù…ÙØªØ§Ø­ غير موجود %s إلى حلقة Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "لا يمكن تغيير مجلد العمل '/' داخل استجذار (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "ÙØ´Ù„ تهيئة تحميل (Metalink curl) '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "تحميل (metalink curl) خطأ '%s':\n" #~ "رمز الخطأ: %s\n" #~ "رسالة الخطأ: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "توق٠التحميل ÙÙŠ %d%%" #~ msgid "Download interrupted by user" #~ msgstr "توق٠التحميل بواسطة المستخدم" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "حدث خطأ أثناء إعداد خيارات التحميل (metalink curl) Ù„ '%s':" #~ msgid "Serbia and Montenegro" #~ msgstr "صربيا ومونتنيجرو" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "خيار list غير معروÙ" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "تعذر حل التبعيات" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." libzypp-17.7.0/po/km.po000066400000000000000000004066451334444677500147240ustar00rootroot00000000000000# translation of zypp.km.po to Khmer # Copyright (C) YEAR SuSE Linux Products GmbH, Nuernberg # This file is distributed under the same license as the PACKAGE package. # Eng Vannak , 2006. # Khoem Sokhem , 2006, 2007, 2008, 2009, 2010. # Auk Piseth , 2007, 2008, 2009. # Seng Sutha, 2010. msgid "" msgstr "" "Project-Id-Version: zypp.km\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2010-06-03 08:04+0700\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: KBabel 1.11.4\n" "X-Language: km-KH\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "ការ​លើកលែង Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "ប្រភáŸáž‘​មិនច្បាស់ '%s' សម្រាប់ %u បៃ ឆáŸáž€ážŸáž¶áŸ† '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "ប្រទáŸážŸâ€‹ážŠáŸ‚ល​មិន​ស្គាល់ ៖ " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "គ្មាន​កូដ" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "អង់ដូរ៉ា" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "អារ៉ាប់​រួម" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "អាហ្គានីស្ážáž¶áž“" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "អង់ទីហ្គា និង​បារប៊ុយដា" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "អង់ហ្គីឡា" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "អាល់បានី" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "អារមáŸáž“ី" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "ហូល្លង់ អង់ទីល" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "អង់ហ្គោឡា" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "អង់ážáž¶áž€áž‘ិក" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "អាហ្សង់ទីន" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "សាម៉ូអា ​អាមáŸážšáž·áž€" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "អូទ្រីស" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "អូស្ážáŸ’រាលី" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "អារូបា" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "កោះ​អាឡង់" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "អាហ្ស៊ែរបែហ្សង់" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "បូស្ន៊ី និង​​ហឺហ្ស៊áŸáž áŸ’គោវីណា" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "បារបាដូស" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "បង់ក្លាដáŸážŸ" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "ប៊ែលហ្ស៊ិក" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "ប៊ូរគីណាហ្វាសូ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ប៊ុលហ្គារី" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "បារ៉ែន" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "ប៊ូរុនឌី" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "áž”áŸážŽáž¶áŸ†áž„" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "ប៊áŸážšáž˜áž¼ážŠáž¶" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "ប៊្រុយណ០ដារូសាឡាម" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "បូលីវី" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "ប្រáŸážŸáŸŠáž¸áž›" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "បាហាម៉ាស" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ប៊ូážáž¶áž“" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "កោះ​ប៊ូវ៉áŸáž" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "បុážážŸáŸ’វាណា" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "áž”áŸáž¡áž¶ážšáž»ážŸáŸ’ស" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "áž”áŸáž›áž¸áž áŸ’ស" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "កាណាដា" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "កោះ Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "កុងហ្គោ" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "សាធារណរដ្ឋ​អាហ្វ្រិក​កណ្ដាល" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ស្វ៊ីស" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "កូឌីហ្វáŸážš" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "កោះ​កូក" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ឈីលី" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "កាមáŸážšáŸ‰áž¼áž“" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "áž…áž·áž“" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "កូឡុំប៊ី" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "កូស្ážáž¶ážšáž¸áž€áž¶" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "គុយបា" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "កាបវែរ" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "កោះ​គ្រីស្ážáž˜áŸ‰áž¶ážŸ" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "ស៊ីពរáŸ" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "សាធារណ​រដ្ឋ​ឆáŸáž€" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "អាល្លឺម៉ង់" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "ហ្ស៊ីបូទី" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ដាណឺម៉ាក" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "ដូមីនីកា" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "សាធារណរដ្ឋ​ដូមីនីកែន" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "អាល់ហ្សáŸážšáž¸" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "អáŸáž€áŸ’វាឌáŸážš" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "អáŸážŸáŸ’ážáž¼áž“ី" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "អáŸáž áŸ’ស៊ីប" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "សាហារ៉ា​ážáž¶áž„​លិច" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "អáŸážšáž¸áž‘្រា" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "អáŸážŸáŸ‰áŸ’បាញ" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "អáŸážáŸ’យូពី" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ហ្វាំងឡង់" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "ហ្វីហ្ស៊ី" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "កោះ​ហ្វ៉កឡង់ (ម៉ាល់វីណា)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "រដ្ឋ​សហពáŸáž“្ធ​មីក្រូណáŸážŸáŸŠáž¸" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "កោះ​ហ្វារ៉ូ" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "បារាំង" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ប្រទáŸážŸâ€‹áž…ំណុះ​បារាំង" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "ហ្គាបុង" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "ចក្រ​ភព​អង់គ្លáŸážŸ" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "ហ្គ្រីណាដា" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ហ្សកហ្ស៊ី" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ហ្គូអ៊ីយ៉ាណា បារាំង" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "ហ្គើនស៊ី" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "ហ្គាណា" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "ហ្គីប្រាល់ážáž¶" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ហ្គ្រីនលែន" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ហ្គាំប៊ី" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ហ្គីណáŸ" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "ហ្គូអាដឺលូប៉áŸ" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "ហ្គីណáŸâ€‹áž¢áŸáž€áŸ’វាទáŸážš" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ក្រិក" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "កោះ​ហ្សកហ្ស៊ី​ážáž¶áž„ážáŸ’បូង និង​ស៊áŸáž“វិច​ážáž¶áž„ážáŸ’បូង" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "ហ្គាážáŸáž˜áŸ‰áž¶áž¡áž¶" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "ហ្គាម" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ហ្គីណáŸáž”៊ីសៅ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ហ្គីយ៉ាណា" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "ហុងកុង" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "កោះ​ហ៊ើដ និង​កោះ​ម៉ាកដូណាល់" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ហុងឌូរ៉ាស់" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ក្រូអាáž" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "ហៃទី" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ហុងគ្រី" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ឥណ្ឌូនáŸážŸáŸŠáž¸" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "អៀរឡង់" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "អ៊ីស្រាអែល" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isle of Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ឥណ្ឌា" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "អាណាចក្រ​ចក្រភព​អង់គ្លáŸážŸâ€‹áž“ៅ​មហាសមុទ្រ​ឥណ្ឌា" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "អ៊ីរ៉ាក់" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "អ៊ីរ៉ង់" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "អ៊ីស្លង់" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "អ៊ីážáž¶áž›áž¸" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "ឈឺស៊ី" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "ចា​ម៉ៃកា" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ហ្ស៊កដង់" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ជប៉ុន" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "កáŸáž“យ៉ា" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "គៀរហ្គីស្ážáž„់" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "កម្ពុជា" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "គិរិបាទី" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "កុំម៉ូរ៉ូស" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "សង់ឃីហនិង​នáŸážœáž¸ážŸ" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "កូរ៉áŸâ€‹ážáž¶áž„​ជើង" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "កូរ៉áŸâ€‹ážáž¶áž„​ážáŸ’បូង" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "គុយ​វ៉ែáž" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "កោះ​កៃម៉ាន" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "កាហ្សាក់ស្ážáž„់" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "សាធារណរដ្ឋ​ប្រជាធិបážáŸáž™áŸ’យ​ប្រជាមានិážâ€‹áž¡áž¶ážœ" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "លីបង់" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "សង់លូស៊ីយ៉ា" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "លិចទáŸáž“ស្ážáŸ‚áž“" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "ស្រីលង្កា" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "លីបáŸážšáž¸áž™áŸ‰áž¶" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "áž¡áŸážŸáž¼ážáž¼" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "លីទុយអានី" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "លុចហ្សំបួរ" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ឡាážážœáž¸áž™áŸ‰áž¶" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "លីប៊ី" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "ម៉ារ៉ុក" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "ម៉ូណាកូ" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "ម៉ុលដូវ៉ា" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "​ម៉ុងážáŸážŽáŸáž áŸ’ក្រូ" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "សាន់ម៉ាទីន" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "ម៉ាដាហ្គាស្ការ" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "កោះ​ម៉ាស្យល" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "ម៉ាសáŸážŠáž¼áž“ី" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "ម៉ាលី" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "ភូមា" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "ម៉ុងហ្គោលី" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "ម៉ាកាវ" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "កោះ​ម៉ារៀណា​ភាគ​ážáž¶áž„​ជើង" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "ម៉ារទីនីគ" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "ម៉ូរីážáž¶áž“ី" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "ម៉ុងសáŸážšáŸ‰áž¶" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "ម៉ាល់ážáž¶" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "ម៉ូរីទុស" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "ម៉ាល់ឌីវ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "ម៉ាឡាវី" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "ម៉ិចស៊ិក" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "ម៉ាឡáŸážŸáŸŠáž¸" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "ម៉ូហ្សាំប៊ិក" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ណាមីប៊ី" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "ញូវ កាលáŸážŠáž¼áž“ី" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "នីហ្សáŸážš" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "កោះ​ណរហ្វក" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "នីហ្សáŸážšáž¸áž™áŸ‰áž¶" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "នីការ៉ាហ្គáŸážš" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "ហូល្លង់" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "áž“áŸážšážœáŸ‚ស" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "áž“áŸáž”៉ាល់" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "ណូរុ" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "នីវ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ញូវ​ហ្សáŸáž›áŸ‚áž“" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "អូម៉ង់" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "ប៉ាណាម៉ា" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "ប៉áŸážšáž¼" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ប៉ូលីនáŸážŸáŸŠáž¸â€‹áž”ារាំង" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "ប៉ាពូញូវហ្គីណáŸ" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "ហ្វីលីពីន" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ប៉ាគីស្ážáž¶áž“" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "ប៉ូឡូញ" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "សង់​ព្យែរ និង​មីគុយអáŸáž¡áž»áž„" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "ពីážážáž¶áž™ážšáž·áž“" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "áž–áŸážšážáž¼ážšáž¸áž€áž¼" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "ប៉ាឡáŸážŸáŸ’ទីន" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "áž–áŸážšáž‘ុយហ្គាល់" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "ប៉ាឡូ" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "ប៉ារ៉ាហ្គាយ" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "កាážáž¶ážš" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "ážšáŸáž¢áž»áž™áž‰áŸ‰áž»áž„" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "រ៉ូម៉ានី" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "សែប៊ី" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "សហពáŸáž“្ធ​រុស្ស៊ី" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "រវ៉ាន់ដា" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "អារ៉ាប៊ីសាអ៊ូឌីáž" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "កោះ​សូឡូម៉ូន" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "សីស្ហែល" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "ស៊ូដង់" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ស៊ុយអែáž" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "សឹង្ហ​បុរី" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "សង់​ហáŸáž¡áŸážŽáž¶" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "ស្លូវ៉ានី" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "ស្វាល់បាហនិង​ហ្សង់ម៉ាយáŸáž“" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "ស្លូវ៉ាគី" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "សáŸážšáŸ‰áž¶áž¡áŸáž¢áž¼áž“" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "សាន់ម៉ារីណូ" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "សáŸážŽáŸáž áŸ’គាល់" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "សូម៉ាលី" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "ស៊ូរីណាមី" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "សៅážáž¼áž˜ និង​ព្រីនស៊ីព" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "អែលសាល់វ៉ាឌáŸážš" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "ស៊ីរី" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "ស្វាហ្ស៊ីឡង់" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "កោះ​ទួក និង​កៃកូស" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ឆាដ" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "អាណាចក្រ​ážáž¶áž„​ážáŸ’បូង​របស់​ បារាំង" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "ážáž¼áž áŸ’គោ" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "ážáŸƒ" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ážáž¶áž áŸ’ស៊ីគីស្ážáž„់" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "ážáž¼áž€áŸáž¡áž¶áž¢áŸŠáž¼" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ទួគមáŸáž“ីស្ážáž„់" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ទុយណáŸážŸáŸŠáž¸" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "ážáž»áž„ហ្គា" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ទីមáŸážšâ€‹ážáž¶áž„​កើáž" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ទួរគី" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ទ្រីនីដាដ និង​ážáž¼áž”ាហ្គោ" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ទុយវ៉ាលុយ" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "ážáŸƒážœáŸ‰áž¶áž“់" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "ážáž„់ហ្សានី" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "អ៊ុយក្រែន" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "អ៊ូហ្គង់ដា" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "កោះ​ឆ្ងាយៗ​របស់​សហរដ្ឋ​អាមáŸážšáž·áž€" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "សហរដ្ឋអាមáŸážšáž·áž€" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "អ៊ុយរ៉ាហ្គាយ" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "អ៊ូហ្សបáŸáž‚ីស្ážáž„់" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "ហូលីស៊ី (រដ្ឋ​បូរី​វ៉ាទីកង់)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "សង់វាំងសង់ និង​ហ្គ្រីណាឌីន" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ážœáŸážŽáŸáž áŸŠáŸ’សុយអáŸáž¡áž¶" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "កោះ​វឺជីន អង់គ្លáŸážŸ" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "កោះ​វឺជីន អាមáŸážšáž·áž€" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "វៀážážŽáž¶áž˜" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "វ៉ានុយអាទុយ" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "វ៉ាលីស និង​ហ៊្វូ​ទុយណា" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "សាម៉ូអា" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "áž™áŸáž˜áŸ‚áž“" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "ម៉ាយុáž" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "អាហ្វ្រិក​ážáž¶áž„​ážáŸ’បូង" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "ហ្សាំប៊ី" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ហ្ស៊ីមបាវ៉áŸ" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ផ្ដល់" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "ទាមទារ" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "ប៉ះទង្គិច" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "លែង​ប្រើ %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "អនុសាសនáŸ" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "ស្នើ" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "ធ្វើ​ឲ្យ​ប្រសើរ​ឡើង" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "ការ​បន្ážáŸ‚ម" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "មិនអាច​បើក pty (%s) ។" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "មិនអាច​បើក​បំពង់ (%s) ។" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "មិនអាច chroot ទៅ '%s' (%s) បានទáŸÂ áŸ”" #: zypp/ExternalProgram.cc:372 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "មិនអាច chdir ទៅ '/' ក្នុង chroot (%s) បានទáŸÂ áŸ”" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "មិនអាច chroot ទៅ '%s' (%s) បានទáŸÂ áŸ”" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "មិនអាច​ប្រážáž·áž”ážáŸ’ážáž· '%s' (%s) ។" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "មិនអាច​បែងចែក (%s) បានទáŸÂ áŸ”" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "ពាក្យ​បញ្ជា​បាន​ចáŸáž‰â€‹ážŠáŸ„យ​ស្ážáž¶áž“áž—áž¶áž– %d ។" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "ពាក្យ​បញ្ជា​ážáŸ’រូវ​បាន​ផ្ដាច់​ដោយ​សញ្ញា %d (%s) ។" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "ពាក្យ​បញ្ជា​បាន​ចáŸáž‰ ដោយ​មាន​កំហុស​មិន​ស្គាល់ ។" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, fuzzy, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "នាំចូល​សោ %s ដែល​មិនមាន​ទៅ​ក្នុង keyring %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "បរាជáŸáž™áž€áŸ’នុង​ការ​នាំចូល​សោ​សាធារណៈ​ពី​ឯកសារ %1%" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​លុប​សោ ។" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "រក​មិនឃើញ​ឯកសារ​ហážáŸ’ážáž›áŸážáž¶ %s áž‘áŸ" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "មិន​ស្គាល់​ភាសា ៖ " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "អាហ្វារ" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "អាប់​ážáž¶áž áŸŠáŸ’សាន" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "អាឈិណិស" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "អាកូលី" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "អាដង់ម៉áŸ" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "អាដអ៊ីហ្គ៉áŸ" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "អាហ្រ៉ូ-អាស៊ីយ៉ាទិក (ផ្សáŸáž„​ទៀáž)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "អាហ្វ្រីហ៊ីលី" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "អាហ្វ្រីកាអាន" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "អាយនុយ" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "អាážáž¶áž“់" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "អាក់កាយ៉ង់" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "អាល់បានី" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "អាឡáŸáž¢áŸŠáž»áž™" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "ភាសា​អាល់កុងហ្គូអ៊ីយ៉ាន" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "អាល់ážáž¶áž™ážáž¶áž„​ážáŸ’បូង" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "អាមហារី" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "អង់គ្លáŸážŸ បុរាណ (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ភាសា​អាប៉ាឆáŸ" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "អារ៉ាប់" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "អារ៉ាម៉ាអ៊ិក" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "អារ៉ាហ្គោន" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "​អារមáŸáž“ី" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "អារ៉ាអ៊ុយកានីយ៉ាន" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "អារ៉ាប៉ាអូ" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "សិប្បនិម្មិហ(ផ្សáŸáž„​ទៀáž)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "អារ៉ាវ៉ាក់" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "អាសាមីស" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "អាស្ážáž»áž™ážšáž¸áž™áŸ‰áž»áž„" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "ភាសា​អាážáž¶áž”៉ាសាន" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ភាសា​អូស្ážáŸ’រាលី" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "អាវារីក" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "អាវែស្ážáž„់" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "អាវ៉ាឌី" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "អីម៉ារ៉ា" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "អាហ្ស៊ែរបែហ្សង់" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "បង់ដា" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "ភាសា​បាមីឡáŸáž€áŸ" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "បាសគៀរ" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "បាលូឈិ" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "បាម្បារា" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "បាលីណីស" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "​​បាស្កáŸ" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "បាសា" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "បាល់ទិក (ផ្សáŸáž„​ទៀáž)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "áž”áŸáž…áž¶" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "áž”áŸáž¡áž¶ážšáž»ážŸáŸ’ស" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "áž”áŸáž˜áž”áž¶" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "​បáŸáž“្កាលី" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "បឺបឺ (ផ្សáŸáž„​ទៀáž)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "បូជូរី" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "បិហារ" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "ប៊ីកុល" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "ប៊ីនី" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "បីសឡាម៉ា" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "ស៊ិកស៊ីកា" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "បង់ទុយ (ផ្សáŸáž„​ទៀáž)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "បូស្នី" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "ប្រា" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "ប្រáŸážáž»áž„" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "បាážáž¶áž€áŸ‹ (ឥណ្ឌូនáŸážŸáŸŠáž¸)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "ប៊ុយរីអាáž" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "ប៊ុយហ្គីណáŸážŸáŸ" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "​​ប៊ុលហ្ការី" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "ភូមា" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "ប្លាំង" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "កាដូ" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "ឥណ្ឌា​កណ្ដាល​បែប​អាមáŸážšáž·áž€ (ផ្សáŸáž„​ទៀáž)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "ការីប" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "កាážáž¶áž¡áž¶áž“" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "កាអ៊ូកាស៊ីយ៉ាន (ផ្សáŸáž„​ទៀáž)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "កáŸáž”៊ូអាណូ" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "សែលážáž·áž€ (ផ្សáŸáž„​ទៀáž)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "ចាមូរូ" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "ឈីបចា" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "áž…áŸáž…áŸáž“" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ឆាហ្គាážáž¶áž¢áŸŠáž¸" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "áž…áž·áž“" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ឈូកáŸážŸáŸ" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "ម៉ារី" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ឈីណូ ចាកុង" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "ឆូកážáž¶" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ឈីប៉áŸáž¢áŸŠáž¸áž™áŸ‰áž¶áž“" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "áž…áŸážšáŸ‰áž¼áž‚ី" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "ឆឺច​ស្លាវិច" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ចូវ៉ាស" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "ឆáŸáž¢áŸŠáž¸áž™áŸ‰áŸážŽáŸ" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ភាសា​កាម៊ិក" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "កុបទិក" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "កូនីស" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "កូសីកា" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "ក្រáŸáž¢áž¼áž¡áŸ និង​ភីដហ្គីន ដែល​ផ្អែក​លើ​ភាសា​អង់គ្លáŸážŸ (ផ្សáŸáž„​ទៀáž)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "ក្រáŸáž¢áž¼áž¡áŸ និង​ភីដហ្គីន ដែល​ផ្អែក​លើ​ភាសា​បារាំង (ផ្សáŸáž„​ទៀáž)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "ក្រáŸáž¢áž¼áž¡áŸ និង​ភីដហ្គីន ដែល​ផ្អែក​លើ​ភាសា​ពáŸážšáž‘ុយហ្គាល់ (ផ្សáŸáž„​ទៀáž)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "គ្រី" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "គ្រីម៉áŸáž¢áž¶áž“ ážáž¶ážáž¶ážš" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "ក្រáŸáž¢áž¼áž¡áŸ និង​ភីដហ្គីន (ផ្សáŸáž„​ទៀáž)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "កាស៊ូប៊ីយ៉ាន" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "គុយស៊ិទិក" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ឆáŸáž€" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "ដាកូážáž¶" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ដាណឺម៉ាក" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "ដាកវ៉ា" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ដាយ៉ាក" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "ដáŸáž¡áž¶ážœáŸ‰áž¶ážšáŸ‰áŸ" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "ស្លាវ (អាážáž¶áž”៉ាសាន)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ដូហ្គ្រីប" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ឌីនកា" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "ឌីវáŸáž áž¸" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "ដូហ្គ្រី" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ដ្រាវីឌីយ៉ាន (ផ្សáŸáž„​ទៀáž)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "សូរប៊ីយ៉ាន​ក្រោម" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "ឌុយអាឡា" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "ហុល្លង់ កណ្ដាល (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ហុល្លង់" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "ឌុយឡា" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "ដុងហ្កា" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "អáŸáž áŸ’វ៊ីក" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "អáŸážŸáŸ’ស៊ីប (បុរាណ)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "អáŸáž€áž¶áž‡áž»áž€" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "អáŸáž¡áž¶áž˜áŸŠáž·ážáŸ" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "អង់គ្លáŸážŸ" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "អង់គ្លáŸážŸ កណ្ដាល (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "អáŸážŸáŸ’áž–áŸážšáŸ‰áž¶áž“់ážáž¼" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "​​អáŸážŸáŸ’ážáž¼áž“ី" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "អូវឹ" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "អáŸážœáŸ‰áž»áž„ដូ" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "ហ្វ៉ង់" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ហ្វាអáŸážšáž¼ážŸ" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ហ្វ៉ង់ទី" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "ហ្វ៊ីហ្ស៊ី" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ហ្វ៊ីលីពីន" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "​ហ្វាំង​ឡង់" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "ហ្វាំងណូ អ៊ុយហ្គ្រីយ៉ាន (ផ្សáŸáž„​ទៀáž)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "ហ្វុង" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "បារាំង" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "បារាំង កណ្ដាល (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "បារាំង បុរាណ (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "ហ្វ្រីស៊ាន" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "ហ្វូឡា" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ហ្វ្រីអ៊ុយលីយ៉ាន" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ហ្កា" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "ហ្កាយ៉ូ" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ហ្កាយ៉ា" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ហ្គឺម៉ានិក (ផ្សáŸáž„​ទៀáž)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ហ្សកហ្ស៊ី" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "អាល្លឺម៉ង់" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ហ្គី" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "ហ្គីលបឺážáŸážŸáŸ" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ហ្គាអáŸáž›áž·áž€" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "អៀរឡង់" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ហ្គាលីស្យាន" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "ម៉ុង" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "អាល្លឺម៉ង់ កណ្ដាល ážáŸ’ពស់ (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "អាល្លឺម៉ង់ បុរាណ ážáŸ’ពស់ (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "ហ្គុងឌី" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "ហ្គូរ៉ុងážáž¶áž¡áž¼" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ហ្គោធិក" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "ហ្គ្រáŸáž”áž¼" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "ក្រិក បុរាណ (ដល់ 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "ក្រិក ទំនើប (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "ហ្គូរ៉ានី" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "ហ្កុយ៉ារាទី" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "ហ្គីចអ៊ីន" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "អៃអ៊ីដា" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ហៃទី" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "ហូសា" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "អាវ៉ាអ៊ីយ៉ាន" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "áž áŸáž”្រូ" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "áž áŸážšáŸáž¢áž¼" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "អ៊ីលីហ្គាអ៊ីណុង" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "អ៊ីម៉ាឆាលី" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "ហិណ្ឌូ" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "អ៊ីទីážáŸ" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "ម៉ុង" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "ហ៊ី​រី​ម៉ូទូ" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "អាប​ផើ សូ​បៀន" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "​​ហុងគ្រី" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "អ៊ុយប៉ា" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "អ៊ីបាន" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "អ៊ីកបូ" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "អ៊ីស្លង់" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "អ៊ីឌូ" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "ស៊ី​ចួនអ៊ី" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "អ៊ីចូ" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "អ៊ីនូកទីទូáž" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "អ៊ីង​ážážºâ€‹áž›áž¸áž„គឹ" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "អ៊ីឡូកូ" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (សមាគមនáŸâ€‹áž—ាសា​ជំនួយ​អន្ážážšáž‡áž¶ážáž·)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "អ៊ីនឌិក (ផ្សáŸáž„​ទៀáž)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ឥណ្ឌូនáŸážŸáŸŠáž¸" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "ឥណ្ឌូអឺរ៉ុប (ផ្សáŸáž„​ទៀáž)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "អ៊ីងហ្គូស" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "អ៊ីងអ៊ិយពីយ៉ាក" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "អ៊ីរ៉ង់ (ផ្សáŸáž„​ទៀáž)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "ភាសា​អ៊ីរ៉ូគុយអូអ៊ីយ៉ាន" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "អ៊ីážáž¶áž›áž¸" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "យ៉ាវា" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "ឡូបាន" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ជប៉ុន" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "ជុយឌីអូ-ប៉ឺស៊ីយ៉ាន" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "ជុយឌីអូ-អារ៉ាប់" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "ការា-កាល់ប៉ាក់" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "កាប៊ី" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "កាឈីន" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "កាឡាលីសុទ" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "កាំបា" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "កិណាដា" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "ការ៉ែន" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "កាស្មៀរ" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "កានុរី" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "កាវី" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "កាហ្សាក់ស្ážáž„់" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "កាបាឌីយ៉ាន" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "ážáž¶ážŸáŸŠáž¸" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "ážáž¼áž¢áŸŠáž¸ážŸáž¶áž“ (ផ្សáŸáž„​ទៀáž)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ážáŸ’មែរ" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "ážáž¼ážáž¶ážŽáŸážŸáŸ" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "គីគូយូ" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "គីនយ៉ាវាន់ដា" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "គៀរ​ហ្គី​ស្ážáž„់" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "គីមប៊ុនឌុយ" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "​​កុងកានី" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "កូមី" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "កុងហ្គោ" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "កូរ៉áŸ" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "កូស្រាអáŸáž™áŸ‰áž¶áž“" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "ážáŸáž¡áŸ" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "ការាឆៃ-បាល់ការ" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "គ្រុយ" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "គុយរ៊ូáž" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "áž‚áŸáž“​យ៉ាមា" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "គុយម៊ិក" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "ឃឺដ" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "គុយážáŸážŽáž¶áž¢áŸŠáž¸" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ឡាឌីណូ" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "ឡានដា" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "ឡាមបា" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "ឡាវ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ឡាážáž¶áŸ†áž„" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ឡាážážœáž¸áž™áŸ‰áž¶" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "áž¡áŸážŸáž áŸ’គីយ៉ាន" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "លីបួគ" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "លីនហ្កា​ឡា" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "លីទុយអានី" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "ម៉ុងហ្គោ" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "ឡូហ្ស៊ី" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "លុចហ្សំបួរ" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "លុយបា-លុយលូអា" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "លូបាកាážáž»áž„ហ្កា" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ភាង​ហ្គង់​ដា" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "លុយអ៊ីសáŸážŽáž¼" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "លុងដា" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "លុយអូ (កáŸáž“យ៉ា និង​ážáž„់ហ្សានី)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "លុយសាអ៊ី" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "ម៉ាសáŸážŠáž¼áž“ី" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "ម៉ាឌុយរ៉áŸážŸáŸ" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "ម៉ាហ្គាអ៊ិ" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "ម៉ា​ស្យលីស" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "ម៉ាអ៊ីទីលី" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "ម៉ាកាសារ" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "ម៉ាឡាយ៉ាឡាម" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "ម៉ង់ដាំងហ្គោ" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "ម៉ោរី" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "អូស្ážáŸ’រូណáŸážŸáŸŠáž¸ (ផ្សáŸáž„​ទៀáž)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "​​ម៉ារាធី" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "ម៉ាសាអ៊ិ" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "ម៉ាឡáŸážŸáŸŠáž¸" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "ម៉ុកសា" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "ម៉ង់ដារ" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "ម៉ិនដáŸ" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "អៀរឡង់ កណ្ដាល (៩០០-១២០០)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "ម៊ិកម៉ា" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "ម៊ីណង់កាបាអុយ" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "ភាសា​ផ្សáŸáž„ៗ" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "ážáŸ’មែរ​មន (ផ្សáŸáž„ទៀáž)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "ម៉ាឡាហ្គាស៊ី" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "ម៉ាល់ážáž¶" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "ម៉ង់ឈូ" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "ម៉ានីពូរី" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "ភាសា​ម៉ាណូបូ" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "ម៉ូហាក់" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "ម៉ុល​ដាវី" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "ម៉ុងហ្គោលី" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "ម៉ូស៊ី" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "ពហុភាសា" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "ភាសា​មុនដា" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "ក្រáŸáž€" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "មីរង់ដáŸážŸáŸ" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "ម៉ារ៉ារី" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "ភាសា​ម៉ាអ៊ីយ៉ាន" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "អáŸážšáž¸áž™áŸ‰áž¶" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "ណាអ៊ុយ៉ាល់" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "ឥណ្ឌា​ážáž¶áž„​ជើង បែប​អាមáŸážšáž·áž€" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ណáŸáž¢áž¶áž”៉ូលីážáž„់" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "ណាវាហ្សូ" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "នដិបិលិ (ážáž¶áž„​ážáŸ’បូង)" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "នដិបិលិ (ážáž¶áž„​ជើង)" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "នដុងហ្កា" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "អាល្លឺម៉ង់​ក្រោម" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "áž“áŸáž”៉ាល់" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "បាសា áž“áŸáž”៉ាល់" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "នីយ៉ាស" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "នីហ្ស៊០- ážážŠáž¼áž áŸ’វានីយ៉ាន" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "នីអ៊ុយáŸáž¢áž¶áž“" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "​នáŸážšážœáŸ‚ស ​នីនូស​" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "áž“áŸážšážœáŸážŸ បុកម៉ាល់" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "ណូហ្គាអ៊ិ" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "ណូស០បុរាណ" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "áž“áŸážšážœáŸ‚ស" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "សូធូ​ážáž¶áž„​ជើង" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "ភាសា​នុយប្យ៉ាន" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "នីវ៉ារី​បុរាណ" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "ឈិចិវា" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "នីអាម៉áŸáž áŸ’ស៊ី" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "នីអាណូឡáŸ" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "នីអូរ៉ូ" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "នីម៉ា" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "អុកស៊ីážáž„់ (ក្រោយ ១៥០០)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "អុហ្សីបវា" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "អូរីយ៉ា" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "អូរ៉ូម៉ូ​" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "អូសា" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "អូសសិážáŸ’យុង" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "ទួគី អូážáž¼áž˜áŸ‰áž„់ (១៥០០-១៩២៨)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ភាសា​អូážáž¼áž˜áž¸áž™áŸ‰áž¶áž“" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "ប៉ាពុយអាន (ផ្សáŸáž„​ទៀáž)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "ប៉ង់ហ្គាស៊ីណង់" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "ប៉ាឡាវី" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "ប៉ាមប៉ង់ហ្គា" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "ប៉ង់ចាប៊ី" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "ប៉ាពីយ៉ាម៉ិនážáž¼" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "ប៉ាឡាអ៊ុយ៉ាន" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ពឺស៊ាន បុរាណ (ca. ៦០០-៤០០ B.C)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ពឺស៊ាន" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ហ្វីលីពីន (ផ្សáŸáž„​ទៀáž)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ផូអáŸáž“ីស្យ៉ាន" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "បាលី" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "​ប៉ូឡូញ" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ប៉ូណáŸáž¢áŸŠáž¸áž™áŸ‰áž¶áž“" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "​ពáŸážšáž‘ុយហ្គាល់" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "ភាសា​ប្រ៉ាក្រិáž" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "ប្រ៉ូវ៉ែនកាល់ បុរាណ (ដល់ ១៥០០)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "ពុហ្សážáž¼" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "កáŸáž‘្ជូអា" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "រ៉ាចាសážáž¶áž“áž·" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "រ៉ាប៉ានុយអ៊ិ" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "រ៉ារ៉ូážáž»áž„ហ្គង់" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "រ៉ូម៉ាំង (ផ្សáŸáž„​ទៀáž)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "រ៉ាអáŸážáž¼-រ៉ូម៉ាំង" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "រ៉ូម៉ានី" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "រូម៉ានី" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "រុន្ឌី" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "រុស្ស៊ី" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "រ៉ុងឌី" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "សង់ហ្គោ" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "យ៉ាážážºáž" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "ឥណ្ឌា​ážáž¶áž„​ážáŸ’បូង​បែប​អាមáŸážšáž·áž€ (ផ្សáŸáž„​ទៀáž)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "ភាសា​សាលីសាន" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "សាម៉ារីážáž„់ អារ៉ាម៉ាអ៊ិក" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "​សំស្ក្រឹáž" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "សាសាក់" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "សង់ážáž¶áž›áž¸" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "សែប៊ី" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "ស៊ីស៊ីល្យ៉ាន" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "ស្កុážážáŸ" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "​ក្រូអាáž" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "សែលគូប" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "សáŸáž˜áŸ‰áž¸áž‘ិក (ផ្សáŸáž„​ទៀáž)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "អៀរឡង់ បុរាណ (ដល់ ៩០០)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "ភាសា​សញ្ញា" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "ហ្សាន" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "ស៊ិដាម៉ូ" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "ស៊ីនហាឡា​" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "ភាសា​ស៊ិអួន" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "ស៊ីណូ-ទីប០(ផ្សáŸáž„​ទៀáž)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "ស្លាវិក (ផ្សáŸáž„​ទៀáž)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "ស្លូវ៉ាគី" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "​​​ស្លូវ៉ានី" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "សាម៉ី​ážáž¶áž„​ážáŸ’បូង" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "សាម៉ីážáž¶áž„​ជើង" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "ភាសា​សាម៉ី (ផ្សáŸáž„​ទៀáž)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "ឡូល០សាម៉ី" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "អ៊ិណារី សាម៉ី" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "សាមូអាន" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "ស្កូលážáŸ សាម៉ី" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "សូណា" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "​​ស៊ីន្ážáž¸" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "សូណាំងកáŸ" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "សូដ្យ៊ាន" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "សូម៉ាលី" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "សុងហ្គាយ" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "សូធូ​ážáž¶áž„​ážáŸ’បូង" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "អáŸážŸáŸ’ប៉ាញ" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "សារឌីនង់" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "សáŸážšážº" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "នីឡូ-សាហារង់ (ផ្សáŸáž„​ទៀáž)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "ស្វាទី" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "ស៊ូគុយម៉ា" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "សាន់ដាណáŸážŸ" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "ស៊ូស៊ូ" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ស៊ូមáŸážšáž¶áž“" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "ស្វាហ៊ីលី" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ស៊ុយអែដ" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "ស៊ីរី" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ážáž¶áž áž·ážáž„់" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ážáž¶áž¢áŸŠáž· (ផ្សáŸáž„​ទៀáž)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ážáž¶áž˜áž¸áž›" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "​​ážáž¶ážáž¶ážš" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "ážáŸáž›áž¼áž áŸ’គូ" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "ទីមណáŸ" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "ážáŸážšáŸ‰áŸážŽáž¼" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "ážáŸáž‘ូម" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "ážáž¶ážŠáž áŸ’ស៊ីគីស្ážáž„់" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "ážáž¶áž áŸ’គាឡូក" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ážáŸƒ" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ទីបáŸ" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "ធីហ្គ្រី" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ទី​គ្រីនយ៉ា" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "ទីវ" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "ážáŸ’លីង​ហ្កន" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "លីងហ្គីáž" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "ážáž¶áž˜áŸ‰áž¶áž áŸ’សែក" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "ážáž»áž„ហ្គា (និយ៉ាសា)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "ážáž»áž„ហ្គា (កោះ​ážáž»áž„ហ្គា)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "ស៊ីមស្យ៊ាន" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ស្វាណា" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "សុងហ្កា" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ទួគមáŸáž“ីស្ážáž„់" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "ទុមប៊ុយកា" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "ភាសា​ទុយពិ" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ទួរគី" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "អាល់ážáž¶áž¢áŸŠáž·áž€ (ផ្សáŸáž„​ទៀáž)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "ទ្វី" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ទុយវីនៀន" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "អ៊ុដម៉ឺáž" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "យូហ្គារីទីក" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "វីហ្គៀរ" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "​​​អ៊ុយក្រែន" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "អ៊ូមប៊ុនឌុយ" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "មិន​អាច​កំណážáŸ‹" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "អ៊ូ​រ្ឌូ" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "អ៊ូហ្សបáŸáž‚ីស្ážáž„់" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "វ៉ាយ" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "វង់ដា" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "វៀážážŽáž¶áž˜" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "វ៉ូឡាពូក" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "វ៉ូទិក" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ភាសា​វ៉ាកាហ្សាន" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "វ៉ាឡាម៉ូ" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "វ៉ារ៉ាយ" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "វ៉ាសូ" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "វែល" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "ភាសា​សរប៊ាន" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "វ៉ាឡុង" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "វូឡុហ្វ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "កាល់មីក" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "ឃសា" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "យ៉ាវ" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "យ៉ាប៉áŸážŸáŸ" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "យីឌីហ្ស" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "យរូបា" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "ភាសា​យូពិក" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "ហ្សាប៉ូážáž·áž€" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "ហ្ស៊áŸážŽáž¶áž áŸ’គា" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "ចួង" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ហ្សង់ដáŸ" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ហ្ស៊ូលូ" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "ហ្ស៊ូនី" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "អំពើ​ážáž¶áž„ក្រោម​នឹង​ážáŸ’រូវបាន​ធ្វើ​រួច ៖" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(មិន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(មិន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(បាន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(ផុážâ€‹áž€áŸ†ážŽážáŸ‹â€‹áž€áŸ’នុង​រយៈពáŸáž› ២៤ ម៉ោង)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, fuzzy, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(ផុážâ€‹áž€áŸ†ážŽážáŸ‹â€‹áž€áŸ’នុង​រយៈពáŸáž› ២៤ ម៉ោង)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "បាន​បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​អាន​ážáž '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "ឈ្មោះ​ក្លែងក្លាយ​ឃ្លាំង​មិន​អាច​ចាប់​ផ្ážáž¾áž˜â€‹áž‡áž¶â€‹áž˜áž½áž™â€‹áž…ំណុច (.)បាន​ទáŸÂ áŸ”" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "ឈ្មោះ​ក្លែងក្លាយ​សáŸážœáž¶áž˜áž·áž“​អាច​​ចាប់​ផ្ážáž¾áž˜â€‹â€‹áž‡áž¶áž˜áž½áž™áž…ំណុច ​(.)​បាន​ទáŸÂ áŸ”" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "មិន​អាច​បើក​ឯកសារ '%s' ដើម្បី​សរសáŸážšâ€‹áž”ានទáŸÂ áŸ”" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "រក​មិន​ឃើញ​ទិន្ននáŸáž™â€‹áž˜áŸážáž¶â€‹ážŠáŸ‚ល​ážáŸ’រឹមážáŸ’រូវ​នៅ URL ដែល​បាន​បញ្ជាក់" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "មិន​អាច​បង្កើážâ€‹ %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "មិន​អាច​បង្កើážâ€‹ážážâ€‹ážƒáŸ’លាំង​សម្ងាážáŸ‹â€‹ážšáž”ស់​ទិន្ននáŸáž™â€‹áž˜áŸážáž¶ ។" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "កំពុង​ស្ážáž¶áž”នា​ឃ្លាំង '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "មិន​អាច​បង្កើážâ€‹ážƒáŸ’លាំង​សម្ងាážáŸ‹â€‹áž“ៅ​ážáŸ’រង់​ %s - គ្មាន​សិទ្ធិ​ក្នុង​ការ​សរសáŸážš ។" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "បាន​បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​ឃ្លាំង​ជា​ឃ្លាំង​សម្ងាážáŸ‹ (%d) ។" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "ប្រភáŸáž‘​ឃ្លាំង​ដែល​មិន​បាន​ដោះស្រាយ" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "កំហុស​ក្នុង​ការ​ព្យាយាម​អាន​ពី '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "មាន​កំហុស​ដែល​មិន​ស្គាល់​ក្នុង​ការ​អាន​ពី '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "កំពុង​បន្ážáŸ‚ម​ឃ្លាំង '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "ឈ្មោះ​ឯកសារ​ឃ្លាំង​មិន​ážáŸ’រឹមážáŸ’រូវ​នៅ '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "យក​ឃ្លាំង '%s' áž…áŸáž‰" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "មិន​អាច​ដោះស្រាយ​កន្លែង​ដែល​ឃ្លាំង​ážáŸ’រូវ​បាន​ទុក​បានទáŸÂ áŸ”" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "មិនអាច​លុប '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "មិនអាច​​ដោះស្រាយ​កន្លែង​ដែល​សáŸážœáž¶â€‹ážáŸ’រូវ​បានផ្ទុក​បានទáŸÂ áŸ”" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "ážáŸ’សែអក្សរ​សំណួរ LDAP URL មិន​ážáŸ’រឹមážáŸ’រូវ" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "ប៉ារ៉ាម៉ែážáŸ’រ​សំណួរ LDAP URL មិន​ážáŸ’រឹមážáŸ’រូវ '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "មិនអាច​ក្លូន​វážáŸ’ážáž» Url បាន​ឡើយ" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "សáŸáž…ក្ដី​យោង​វážáŸ’ážáž» Url ទទ០មិន​ážáŸ’រឹមážáŸ’រូវ" # ############################################################################### # Old yast2-agents.po #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "មិនអាច​ញែក​សមាសភាគ Url បាន​ឡើយ" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "មិន​ស្គាល់" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "មិន​បានគាំទ្រ" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "កម្រិហ១" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "កម្រិហ២" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "កម្រិហ៣" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "ចាំបាច់​កិច្ចសន្យា​អážáž·ážáž·áž‡áž“​បន្ážáŸ‚ម" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "មិន​ážáŸ’រឹមážáŸ’រូវ" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "កម្រិážâ€‹áž‚ាំទ្រ​មិន​ážáŸ’រូវ​បាន​បញ្ជាក់" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "ក្រុមហ៊ុន​លក់​មិន​បាន​ផ្ដល់​កា​រគាំទ្រ​ទáŸÂ áŸ”" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "ការ​កំណážáŸ‹â€‹áž”ញ្ហា ដែល​មាន​នáŸáž™â€‹ážáž¶â€‹áž€áž¶ážšáž‚ាំទ្រ​ផ្នែក​បច្ចáŸáž€áž‘áŸážŸâ€‹áž”ាន​រចនា​ដើម្បី​ផ្ដល់​ពáŸážáŸŒáž˜áž¶áž“​​ដែល​ឆប​គ្នា ជំនួយ​ការ​" "ដំឡើង ការ​ប្រើការ​គាំទ្រ និង​ការ​ážáŸ‚ទាំ​ដែល​កំពុង​បន្ហនិង​កា​រដោះស្រាយ​បញ្ហា​មូលដ្ឋាន ។ កា​រគាំទ្រ​កម្រិážâ€‹áž˜áž½áž™â€‹" "មិនមានបំណង​កែ​កំហុស​ផលិážáž•ល​ឥážážáŸ’ចោះ​ទáŸÂ áŸ”" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "ការ​បំបែក​បញ្ហា ដែល​មាន​នáŸáž™â€‹ážáž¶â€‹áž€áž¶ážšâ€‹áž‚ាំទ្រ​ផ្នែក​បច្ចáŸáž€áž‘áŸážŸâ€‹áž”ាន​រចនា​ដើម្បី​ស្ទួន​បញ្ហា​របស់​អážáž·ážáž·áž‡áž“ បំបែកបញ្ហា​ " "និង​ផ្ដល់​ដំណោះស្រាយ​សម្រាប់​បញ្ហា​មិន​បាន​ដោះស្រាយ​ដោយ​ការគាំទ្រ​កម្រិážâ€‹áž–ីរ ។" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "ការ​ដោះស្រាយ​បញ្ហា ដែល​មាននáŸáž™â€‹ážáž¶ ការ​គាំទ្រ​ផ្នែក​បច្ចáŸáž€áž‘áŸážŸâ€‹áž”ាន​រចនា​ដើម្បី​ដោះស្រាយ​បញ្ហា​ស្មុគស្មាញ " "ដោយ​ភ្ជាប់​វិស្វរកម្ម​នៅ​ក្នុង​ដំណោះស្រាយ​របស់​ផលិážáž•ល​ដែល​ážáŸ’រូ​វបាន​បញ្ជាក់​ដោយ​ការ​គាំទ្រ​កម្រិážâ€‹áž–ីរ ។" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "កិច្ចសន្យា​អážáž·ážáž·áž‡áž“​បន្ážáŸ‚ម​ចាំបាច់​សម្រាប់​ទទួល​ជំនួយ ។" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "មិន​ស្គាល់​ជម្រើស​គាំទ្រ ។ មិនមាន​សáŸáž…ក្ដីអធិប្បាយ" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "កា​រគ្រប់គ្រង​ប្រពáŸáž“្ធ​ážáŸ’រូវ​បានចាក់​សោ​ដោយ​កម្មវិធី​ដែល​មាន pid %d (%s) ។\n" "សូម​បិទ​កម្មវិធី​នáŸáŸ‡â€‹áž˜áž»áž“​នឹង​ព្យាយាម​ម្ដង​ទៀážÂ áŸ”" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ប្រវážáŸ’ážáž·Â áŸ–" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "មិនអាច​បើក​ឯកសារ​សោ ៖ %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "អំពើ​នáŸáŸ‡ កំពុង​រážáŸ‹â€‹ážŠáŸ„យ​កម្មវិធី​ផ្សáŸáž„​មួយ​ទៀážÂ áŸ”" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "មិន​ស្គាល់​របៀប​ផ្គូផ្គង '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "មិន​ស្គាល់​របៀប​ផ្គូផ្គង '%s' សម្រាប់​លំនាំ '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "កន្សោម​ធម្មážáž¶â€‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ '%s' ៖ regcomp បាន​ážáŸ’រឡប់ %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "កន្សោម​ធម្មážáž¶â€‹áž˜áž·áž“​ážáŸ’រឹមážáŸ’រូវ '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "បាន​ទាមទារ​ការ​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ​សម្រាប់ '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "មើល​មជ្ឈមណ្ឌល​អážáž·ážáž·áž‡áž“​របស់ Novell ដើម្បីពិនិážáŸ’យ​មើល​ážáž¶ážáž¾ ការ​ចុះឈ្មោះ​ážáŸ’រឹមážáŸ’រូវ ហើយមិនបាន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹Â áŸ”" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​ម៉ោន %s លើ %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "បរាជáŸáž™â€‹áž€áŸ’នុងការ​អាន់ម៉ោន %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "ឯកសារ​ážáž¼áž…​ឈ្មោះ ៖ %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "ឧបករណáŸâ€‹áž•្ទុក​មិនបាន​បើក នៅពáŸáž›â€‹áž’្វើ​អំពើ '%s' ។" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "រក​មិនឃើញ​ឯកសារ '%s' នៅ​លើ​ឧបករណáŸâ€‹áž•្ទុក​ទ០'%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "មិនអាច​សរសáŸážšâ€‹áž¯áž€ážŸáž¶ážš '%s' បានទáŸÂ áŸ”" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "មិនបាន​ភ្ជាប់​ឧបករណáŸâ€‹áž•្ទុក" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "ចំណុច​ភ្ជាប់​ឧបករណáŸâ€‹áž•្ទុក​មិនážáŸ’រឹមážáŸ’រូវ" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "ទាញយក​ការ​ចាប់ផ្ដើម​បាន​បរាជáŸáž™â€‹ážŸáž˜áŸ’រាប់ '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "ករណី​លើកលែង​ប្រពáŸáž“្ធ '%s' នៅលើ​ឧបករណáŸâ€‹áž•្ទុក '%s' ។" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "ផ្លូវ '%s' នៅលើ​ឧបករណáŸâ€‹áž•្ទុក '%s' មិនមែន​ជា​ឯកសារ​ទáŸÂ áŸ”" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "ផ្លូវ '%s' នៅលើ​ឧបករណáŸâ€‹áž•្ទុក '%s' មិនមែន​ជា​ážážâ€‹áž‘áŸÂ áŸ”" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI មាន​ទ្រង់ទ្រាយ​មិនážáŸ’រឹមážáŸ’រូវ" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "ឈ្មោះ​ម៉ាស៊ីន​ទទáŸâ€‹áž€áŸ’នុង URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "ប្រពáŸáž“្ធ​ឯកសា​ទទáŸâ€‹áž“ៅ​ក្នុង URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "គោលដៅ​ទទáŸâ€‹áž“ៅ​ក្នុង URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "គ្រោងការណ០URI ដែល​មិនបាន​គាំទ្រ​នៅ​ក្នុង '%s' ។" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšâ€‹áž˜áž·áž“បាន​គាំទ្រ​ដោយ​ឧបករណáŸâ€‹áž•្ទុក​ទáŸ" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "ទាញយក​កំហុស​សម្រាប់ '%s' ៖\n" "កូដ​កំហុស ៖ %s\n" "សារ​កំហុស ៖ %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "កំហុស​នៅពáŸáž›â€‹áž€áŸ†ážŽážáŸ‹â€‹áž‡áž˜áŸ’រើស​ទាញយក​សម្រាប់ '%s' ៖" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "ប្រភព​ឧបករណáŸâ€‹áž•្ទុក '%s' មិនមាន​ឧបករណáŸâ€‹áž•្ទុក​ដែល​ážáŸ’រូវការ​ទáŸ" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "ឧបករណáŸâ€‹áž•្ទុក '%s' គឺ​កំពុង​ប្រើ​ដោយ​ឧបករណáŸâ€‹áž•្សáŸáž„" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "មិនអាច​ច្រាន​ឧបករណáŸâ€‹áž•្ទុក​ណាមួយ​ចáŸáž‰â€‹áž¡áž¾áž™" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "មិនអាច​ច្រាន​ឧបករណáŸâ€‹áž•្ទុក '%s' áž…áŸáž‰áž”ានទáŸ" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "សិទ្ធិ​ចូល​ដំណើរការ​ទៅ '%s' បាន​បដិសáŸáž’ ។" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "អស់​ពáŸáž›â€‹áž›áž¾áž›â€‹áž–áŸáž›â€‹áž…ូល​ដំណើរការ '%s' ។" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "ទីážáž¶áŸ†áž„ '%s' មិន​ដំណើរការ​ជា​បណ្ដោះអាសន្ន ។" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " បញ្ហា​វិញ្ញាបនបážáŸ’ážš SSL ផ្ទៀងផ្ទាážáŸ‹â€‹ážáž¶â€‹ážœáž·áž‰áŸ’ញាបនបážáŸ’ážš CA គឺ​ážáŸ’រឹមážáŸ’រូវ​សម្រាប់ '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "មិនបាន​គាំទ្រ​វិធីសាស្ážáŸ’រ​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវ HTTP '%s' ឡើយ" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "បាážáŸ‹â€‹áž‚ុណលក្ážážŽáŸˆâ€‹ážŠáŸ‚ល​ទាមទារ '%s' ។" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "បាន​ទាមទារ​គុណលក្ážážŽáŸˆâ€‹áž˜áž½áž™ ឬ​ពីរ​របស់ '%s' ឬ '%s' ។" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr " បាន​បរាជáŸáž™â€‹áž€áŸ’នុងកា​រប្រážáž·áž”ážáŸ’ážáž·" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "កញ្ចប់ %s ហាក់​បីជា​​ážáž¼áž…​ក្នុងការ​ផ្ទáŸážšÂ áŸ” ážáž¾â€‹áž¢áŸ’នកចង់​ព្យាយាម​ម្ដង​ទៀážâ€‹áž‘áŸÂ ?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "បាន​បរាជáŸáž™â€‹áž€áŸ’នុងកា​រផ្ដល់​កញ្ចប់ %s ។ ážáž¾áž¢áŸ’នក​ចង់​ព្យាយាម​យក​ម្ដង​ទៀážâ€‹áž‘áŸÂ ?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "ការ​ពិនិážáŸ’áž™ applydeltarpm បាន​បរាជáŸáž™Â áŸ”" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm បាន​បរាជáŸáž™Â áŸ”" #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "ប្រភáŸáž‘​ធនធាន VAR1 មិន​គាំទ្រ​លក្ážážŽáŸˆâ€‹áž–ិសáŸážŸâ€‹áž”ង្ហាញ​ភាពផ្លាស់ប្ដូរ" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "មិនអាច​ផ្ដល់​ឯកសារ '%s' ពី​ឃ្លាំង '%s' បានទáŸ" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "គ្មាន url នៅ​ក្នុង​ឃ្លាំង ។" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "មិនអាច​បង្កើហsat-pool បានទáŸÂ áŸ”" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "បំបែក %s ដោយ​មិនអើពើ​ភាព​អាស្រáŸáž™â€‹ážšáž”ស់​វា​មួយ​ចំនួន" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "ជា​ទូទៅ​មិនអើពើ​នឹង​ភាព​អាស្រáŸáž™â€‹áž˜áž½áž™â€‹áž…ំនួន" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s មិនមែនជា​របស់​ឃ្លាំង distupgrade នោះ​ទáŸ" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s មាន​​​ស្ážáž¶áž”ážáŸ’យកម្ម​ទាប​ជាង" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "បញ្ហា​ជាមួយ​កញ្ចប់​ដែល​បាន​ដំឡើង %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "សំណើ​ការ​ប៉ះទង្គិច" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "បញ្ហា​ភាព​អាស្រáŸáž™â€‹áž˜áž½áž™â€‹áž…ំនួន" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "គ្មាន​អ្វី​ផ្ដល់ %s ដែលបាន​ស្នើ​ទáŸ" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "ážáž¾â€‹áž¢áŸ’នក​បាន​បើក​ឃ្លាំង​ដែល​បាន​ស្នើ​ទាំងអស់​ហើយឬនៅ ?" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "មិនមាន​ពáŸážáŸŒáž˜áž¶áž“​បម្រុង​ទុក​ទáŸ" #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr "មិន​បានគាំទ្រ" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s ជាប់សោ និង​មិន​អាច​លុប​បាន​ឡើយ ។" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s មិនអាច​ដំឡើងបាន" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "គ្មាន​អ្វី​ផ្ដល់ %s ដែល​ážáŸ’រូវការ​ដោយ %s áž‘áŸ" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "មិនអាច​ដំឡើង​ទាំង %s និង %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s ប៉ះទង្គិច​ជាមួយ %s ដែល​បាន​ផ្ដល់​ដោយ %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s លែងប្រើ %s ដែល​ផ្ដល់ដោយ %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s ដែល​បាន​ដំឡើង​លែង​ប្រើ %s ដែល​ផ្ដល់​ដោយ %s ហើយ" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "ការ​ប៉ះទង្គិច %s ដែល​អាច​ដោះស្រាយ​បាន​ជា​មួយ %s ដែល​បាន​ផ្ដល់​ដោយ​ážáŸ’លួន​វា​ផ្ទាល់" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s ážáŸ’រូវការ %s ប៉ុន្ážáŸ‚​ážáž˜áŸ’រូវការ​នáŸáŸ‡â€‹áž˜áž·áž“អាច​ផ្ដល់​បានទáŸ" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "ក្រុមហ៊ុន​ផ្ដល់​ដែល​បាន​លុប ៖ " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "លុបក្រុមហ៊ុនផ្ដល់ ៖ " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "ក្រុមហ៊ុន​លក់​ដែល​អាច​លុបបាន ៖ " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "កុំ​ដំឡើង %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "រក្សា %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "កុំ​ហាម​ការ​ដំឡើង​នៃ %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "សំណើ​នáŸáŸ‡â€‹áž“ឹង​ធ្វើ​ឲ្យ​ប្រពáŸáž“្ធ​របស់​អ្នក​ážáž¼áž… !" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "មិនអើពើ​នឹង​ការ​ព្រមាន​របស់​ប្រពáŸáž“្ធ​ដែល​ážáž¼áž…" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "កុំ​ស្នើ​ឲ្យ​ដំឡើង​កញ្ចប់​ដោះស្រាយ​ដោយ​ផ្ដល់ %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "កុំ​ស្នើ​ឲ្យ​លុប​កញ្ចប់​ដោះស្រាយ​ទាំងអស់​ដោយ​ផ្ដល់ %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "កុំ​ដំឡើង​កំណែ​ážáŸ’មីរបស់ %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "ទុក %s ទោះ​បី​ជា​ស្ážáž¶áž”ážáŸ’យកម្ម​ទាប​កáŸâ€‹ážŠáŸ„áž™" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "ដំឡើង %s ទោះ​បីជា​ស្ážáž¶áž”ážáŸ’យកម្ម​ទាប​កáŸâ€‹ážŠáŸ„áž™" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "លែង​ប្រើ %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "ដំឡើង %s ពី​ឃ្លាំង​ដែល​បាន​ដក​ចáŸáž‰" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "បន្ទាប %s ទៅ %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "ការ​ផ្លាស់ប្ដូរ​ស្ážáž¶áž”ážáŸ’យកម្ម​នៃ %s ទៅ %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "ដំឡើង %s (ដោយ​មានការ​ផ្លាស់ប្ដូរ​របស់​អ្នក​លក់)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "ការ​ជំនួស %s ជាមួយ %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "ការ​លុប​នៃ %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " បាន​ប្រážáž·áž”ážáŸ’ážáž·" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " បាន​បរាជáŸáž™â€‹áž€áŸ’នុងកា​រប្រážáž·áž”ážáŸ’ážáž·" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " ការ​ប្រážáž·áž”ážáŸ’ážáž·â€‹áž”ាន​រំលង​ážážŽáŸˆáž–áŸáž›â€‹áž”ោះបង់" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "កំហុស​ក្នុង​ការ​ផ្ញើ​ការ​ជូនដំណឹង​សារបច្ចុប្បន្នភាព​ ។" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "សារ​បច្ចុប្បន្នភាព​ážáŸ’មី" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "ការ​ដំឡើង ážáŸ’រូវបាន​បោះបង់​ដោយ​ផ្ទាល់ ។" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "សូមអភáŸáž™áž‘ោស កំណែ​នៃ​ libzypp áž“áŸáŸ‡â€‹ážáŸ’រូវ​បាន​ស្ážáž¶áž”នា​ឡើង​ដោយ​គ្មាន​ការ​គាំទ្រ​ HAL ។" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext មិនបាន​ážáž—្ជាប់​ឡើយ" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive មិន​បាន​ចាប់ផ្ដើម​ឡើយ" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume មិនបាន​ចាប់ផ្ដើម​ឡើយ" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "មិនអាច​បង្កើážâ€‹áž€áž¶ážšâ€‹ážáž—្ជាប់ dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new ៖ មិនអាច​បង្កើážâ€‹áž”រិបទ libhal បានឡើយ" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection ៖ មិនអាច​​កំណážáŸ‹â€‹áž€áž¶ážšâ€‹ážáž—្ជាប់ dbus បានឡើយ" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "មិនអាច​ចាប់ផ្ដើម​បរិបទ HAL បានឡើយ -- hald មិន​កំពុង​រážáŸ‹â€‹áž‘áŸáž¬Â ?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "មិន​មែន​ជា​ដ្រាយ​ស៊ីឌី​រ៉ូម​ទáŸ" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM បាន​បរាជáŸáž™Â áŸ– " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "បរាជáŸáž™áž€áŸ’នុង​ការ​នាំចូល​សោ​សាធារណៈ​ពី​ឯកសារ %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "បរាជáŸáž™â€‹áž€áŸ’នុងការ​យក​សោ​សាធារណៈ %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "បាន​ប្ដូរ​ឯកសារ​កំណážáŸ‹â€‹ážšáž…នាសម្ពáŸáž“្ធ​សម្រាប់ %s ៖" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm បានរ​ក្សា​ទុក %s ជា %s ប៉ុន្ážáŸ‚​វា​អាច​កំណážáŸ‹â€‹áž—ាព​ážáž»ážŸâ€‹áž‚្នា" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm បាន​រក្សាទុក %s ជា %s ។\n" "áž“áŸáŸ‡â€‹áž‡áž¶â€‹áž”ន្ទាážáŸ‹ ២៥ ជួរ​ដំបូង​ážáž»ážŸáž‚្នា៖\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm បាន​បង្កើហ%s ជា %s ប៉ុន្ážáŸ‚​វា​មិន​អាច​កំណážáŸ‹â€‹áž—ាព​ážáž»ážŸâ€‹áž‚្នា" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm បាន​កំណážáŸ‹ %s ជា %s ។\n" "áž“áŸáŸ‡â€‹áž‡áž¶â€‹áž”ន្ទាážáŸ‹ ២៥ ជួរ​ដំបូង​ážáž»ážŸáž‚្នា ៖​\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "លទ្ធផល rpm បន្ážáŸ‚ម" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "បាន​បង្កើážâ€‹áž–áŸážáŸŒáž˜áž¶áž“​បម្រុង %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "រក​មិនឃើញ​ឯកសារ​ហážáŸ’ážáž›áŸážáž¶ %s áž‘áŸ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "រក​មិនឃើញ​ឯកសារ​ហážáŸ’ážáž›áŸážáž¶ %s áž‘áŸ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "រក​មិនឃើញ​ឯកសារ​ហážáŸ’ážáž›áŸážáž¶ %s áž‘áŸ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "មិនអាច​ចាប់ផ្ដើម​គុណលក្ážážŽáŸˆ mutex បានឡើយ" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "មិនអាច​កំណážáŸ‹â€‹áž‚ុណលក្ážážŽáŸˆ mutex ហៅ​ážáŸ’លួនឯង​បានឡើយ" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "មិនអាច​ចាប់ផ្ដើម mutex ហៅážáŸ’លួន​ឯង​បាន​ឡើយ" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "មិនអាច​យក​សោ mutex បានឡើយ" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "មិនអាច​លែង​សោ mutex បាន​ឡើយ" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "គ្រោងការណ០Url មិន​អនុញ្ញាហ%s áž‘áŸ" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "សមាសភាគ %s មិន​ážáŸ’រឹមážáŸ’រូវ '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "សមាសភាគ %s មិន​ážáŸ’រឹមážáŸ’រូវ" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "មិនបាន​គាំទ្រ​ការញែក​ážáŸ’សែអក្សរ​សំណួរ​សម្រាប់ URL áž“áŸáŸ‡â€‹áž¡áž¾áž™" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "គ្រោងការណ០Url មិនមែន​ជា​សមាសភាគ​ដែល​បាន​ទាមទារ​ឡើយ" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "គ្រោងការណ០Url មិន​ážáŸ’រឹមážáŸ’រូវ '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "គ្រោងការណ០Url មិន​អនុញ្ញាážâ€‹ážˆáŸ’មោះ​អ្នកប្រើ​ឡើយ" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "គ្រោងការណ០Url មិន​អនុញ្ញាážâ€‹áž–ាក្យ​សម្ងាážáŸ‹â€‹áž¡áž¾áž™" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "គ្រោងការណ០Url ទាមទារ​សមាសភាគ​របស់​ម៉ាស៊ីន" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "គ្រោងការណ០Url មិនអនុញ្ញាážâ€‹ážŸáž˜áž¶ážŸáž—ាគ​របស់​ម៉ាស៊ីន​ឡើយ" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "សមាសភាគ​របស់​ម៉ាស៊ីន​មិន​ážáŸ’រឹមážáŸ’រូវ '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "គ្រោងការណ០Url មិន​អនុញ្ញាážâ€‹áž…្រក​ឡើយ" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "សមាសភាគ​ច្រក​មិន​ážáŸ’រឹមážáŸ’រូវ '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "គ្រោងការណ០Url ទាមទារ​ឈ្មោះ​ផ្លូវ" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "មិនបាន​អនុញ្ញាážâ€‹áž•្លូវ​ដែល​ទាក់ទង​ទ០ប្រសិន​បើ​មាន​អាជ្ញាធរ" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "ážáŸ’សែអក្សរ​ដែល​បាន​អ៊ិនកូដ មាន NUL បៃ" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "ážáž½áž¢áž€áŸ’សរ​បំបែក​សម្រាប់​ពុះ​អារáŸâ€‹áž”៉ារ៉ាម៉ែážáŸ’ážš មិន​ážáŸ’រឹមážáŸ’រូវ" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "ážáž½áž¢áž€áŸ’សរ​បំបែក​សម្រាប់​ពុះ​ផែនទី​ប៉ារ៉ាម៉ែážáŸ’ážš មិន​ážáŸ’រឹមážáŸ’រូវ" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "ážáž½áž¢áž€áŸ’សរ​បំបែក​សម្រាប់​ážâ€‹áž¢áž¶ážšáŸâ€‹áž”៉ារ៉ាម៉ែážáŸ’ážš មិន​ážáŸ’រឹមážáŸ’រូវ" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "បរាជáŸáž™áž€áŸ’នុង​ការ​នាំចូល​សោ​សាធារណៈ​ពី​ឯកសារ %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "បរាជáŸáž™â€‹áž€áŸ’នុងការ​យក​សោ​សាធារណៈ %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "មិន​អាច​រក​ឧបករណáŸâ€‹ážŠáŸ‚ល​មាន​ដើម្បីម៉ោន​ឯកសារ​រូបភាព​ពី '%s'" #~ msgid "do not keep %s installed" #~ msgstr "កុំ​ទុក %s ឲ្យ​នៅ​ដំឡើង" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "មិនអាច​បង្កើážâ€‹ážŸáŸ„​សាធារណៈ %s ពី keyring %s ទៅ​ឯកសារ %s បានទáŸ" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "បានបរាជáŸáž™â€‹áž€áŸ’នុងកា​រចាប់ផ្ដើម (Metalink curl) សម្រាប់ '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "កំហុស​ក្នុងការ​ទាញយក (metalink curl) សម្រាប់ '%s' ៖\n" #~ "កូដ​កំហុស ៖ %s\n" #~ "សារ​កំហុស ៖ %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "ការ​ទាញយក​បានផ្អាក​នៅ %d%%" #~ msgid "Download interrupted by user" #~ msgstr "​ទាញយក​អ្វី​ដែលបាន​ផ្អាក​ដោយ​អ្នកប្រើ" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "កំហុស​បានកើážáž¡áž¾áž„​ážážŽáŸˆáž–áŸáž›â€‹áž€áŸ†ážŽážáŸ‹â€‹â€‹áž‡áž˜áŸ’រើស​ទាញយក (metalink curl) សម្រាប់ '%s' ៖" #~ msgid "Failed to download %s from %s" #~ msgstr "បាន​បរាជáŸáž™â€‹áž€áŸ’នុងកា​រទាញយក %s ពី %s" libzypp-17.7.0/po/ko.po000066400000000000000000003373721334444677500147260ustar00rootroot00000000000000# KOREAN message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # Hwang, Sang-Jin # msgid "" msgstr "" "Project-Id-Version: zypp.ko\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-17 05:21+0000\n" "Last-Translator: Hwajin Kim \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 2.18\n" "X-Poedit-SourceCharset: UTF-8\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal 예외" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "모호한 유형 '%s'(%uë°”ì´íЏ ì²´í¬ì„¬ '%s'ì— ëŒ€í•´)" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "알 수 없는 êµ­ê°€: " # TextEntry label for phone network Areacode (german Vorwahl) #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "코드 ì—†ìŒ" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "안ë„ë¼" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "ì•„ëžì—미리트" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "아프가니스탄" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "앤티가 바부다" # AO #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "앙귈ë¼" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "알바니아" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "아르메니아" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "네ëœëž€ë“œë ¹ 안틸리스" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "앙골ë¼" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "남극" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "아르헨티나" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "미국령 사모아" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "오스트리아" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "호주" # CU #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "아루바" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "올란드 ì œë„" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "아제르바ì´ìž”" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "보스니아 헤르체코비나" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "바베ì´ë„스" # BD #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "방글ë¼ë°ì‹œ" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "벨기ì—" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "부르키나파소" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "불가리아" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "바레ì¸" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "부룬디" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "베냉" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "버뮤다" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "브루나ì´" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "볼리비아" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "브ë¼ì§ˆ" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "바하마" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "부탄" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ë¶€ë² ì´ ì„¬" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "보츠와나" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "벨ë¼ë£¨ìФ" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "벨리즈" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "ìºë‚˜ë‹¤" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "코코스 êµ°ë„" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "콩고" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "중앙아프리카 공화국" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "스위스" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "코트디부와르" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ì¿¡ ì œë„" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ì¹ ë ˆ" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "카메룬" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "중국" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "콜롬비아" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "코스타리카" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "ì¿ ë°”" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "카보베르ë°" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "í¬ë¦¬ìŠ¤ë§ˆìŠ¤ 섬" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "사ì´í”„러스" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ì²´ì½” 공화국" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ë…ì¼" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "지부티" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ë´ë§ˆí¬" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "ë„미니카" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ë„미니카 공화국" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "알제리" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "ì—ì½°ë„르" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ì—스토니아" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "ì´ì§‘트" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "서사하ë¼" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ì—리트레아" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "스페ì¸" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "ì—티오피아" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "핀란드" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "피지" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "í¬í´ëžœë“œ ì œë„" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "마ì´í¬ë¡œë„¤ì‹œì•„" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "íŒŒë¡œì— ì•„ì¼ëžœë“œ" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "프랑스" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "프랑스 본국" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "가봉" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "ì˜êµ­" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "ê·¸ë¼ë‚˜ë‹¤" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "그루지아" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "파푸아뉴기니" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "ê±´ì§€" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "가나" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "지브롤터" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "그린란드" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "잠비아" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "기니" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "과들루프" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "ì ë„ 기니" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "그리스" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "사우스조지아 ë° ì‚¬ìš°ìŠ¤ìƒŒë“œìœ„ì¹˜ êµ°ë„" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "과테ë§ë¼" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "ê´Œ" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "기니비사우" # GH #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ê°€ì´ì•„나" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "í™ì½©" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "허드 섬 ë° ë§¥ë„날드 êµ°ë„" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "온ë‘ë¼ìФ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "í¬ë¡œì•„í‹°ì•„" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "ì•„ì´í‹°" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "í—가리" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ì¸ë„네시아" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ì•„ì¼ëžœë“œ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ì´ìФë¼ì—˜" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "맨 섬" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ì¸ë„" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "ì˜ì¸ë„ ì œë„" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "ì´ë¼í¬" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ì´ëž€" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ì•„ì´ìŠ¬ëž€ë“œ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ì´íƒˆë¦¬ì•„" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "저지" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "ìžë©”ì´ì¹´" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "요르단" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ì¼ë³¸" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "ì¼€ëƒ" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "키르기스스탄" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "캄보디아" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "키리바시" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "코모로" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "세ì¸íЏ í¬ë¦¬ìŠ¤í† í¼ ë„¤ë¹„ìŠ¤" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "ë¶í•œ" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "대한민국" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "쿠웨ì´íЏ" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "ì¼€ì´ë§¨ ì œë„" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "ì¹´ìží스탄" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "ë¼ì˜¤ìФ" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "레바논" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "세ì¸íЏ 루시아" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "리히í…슈타ì¸" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "스리랑카" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ë¼ì´ë² ë¦¬ì•„" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "레소토" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "리투아니아" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "룩셈부르í¬" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ë¼íŠ¸ë¹„ì•„" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "리비아" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "모로코" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "모나코" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "몰ë„ë°”" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "몬테네그로" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "산마리노" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "마다가스카르" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "마샬 êµ°ë„" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "마케ë„니아" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "ë§ë¦¬" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "미얀마" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "몽골" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "마카오" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "ë¶ë§ˆë¦¬ì•„나 êµ°ë„" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "마티니í¬" # MU # fuzzy #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "모리타니아" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "몬트세ë¼íЏ" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "ë§íƒ€" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "모리셔스" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "몰디브" # ML #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "ë§ë¼ìœ„" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "멕시코" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "ë§ë ˆì´ì‹œì•„" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "모잠비í¬" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "나미비아" # help text for option 'value' #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "뉴 칼레ë„니아" # NG #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "니제르" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ë…¸í½ ì„¬" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "나ì´ì§€ë¦¬ì•„" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "니카ë¼ê³¼" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "네ëœëž€ë“œ" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "노르웨ì´" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "네팔" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "나우루" # table header label #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "니우ì—" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "뉴질랜드" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "오만" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "파나마" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "페루" # GF # fuzzy #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "프랑스령 í´ë¦¬ë„¤ì‹œì•„" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "파푸아뉴기니" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "필리핀" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "파키스탄" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "í´ëž€ë“œ" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "세ì¸íЏ 피ì—르 미켈론" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "피트카ì´ë¥¸" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "푸ì—르토리코" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "팔레스타ì¸" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "í¬ë¥´íˆ¬ê°ˆ" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "팔ë¼ìš°" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "파ë¼ê³¼ì´" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "카타르" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "레위니옹" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "루마니아" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "세르비아" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "러시아 ì—°ë°©" # UG #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "르완다" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "사우디아ë¼ë¹„ì•„" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "솔로몬 ì œë„" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "세ì´ì…¸" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "수단" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "스웨ë´" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "싱가í¬ë¥´" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "세ì¸íЏ 헬레나" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "슬로베니아" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "스발바르드 얀마ì´ì—”" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "슬로바키아" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "시ì—ë¼ë¦¬ì˜¨" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "산마리노" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "세네갈" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "소ë§ë¦¬ì•„" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "수리남" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "ìƒíˆ¬ë©” 프린시페" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "엘살바ë„르" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "시리아" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "스와질란드" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "í„°í¬ìŠ¤ì¼€ì´ì»¤ìФ ì œë„" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "차드" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "프랑스령 남부 지역" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "토고" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "태국" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "타지í¬ìŠ¤íƒ„" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "토켈ë¼ìš°" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "투르í¬ë©”니스탄" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "튀니지" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "통가" # Textentry label - lease time for IPs in the range #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ë™í‹°ëª¨ë¥´" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "터키" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "트리니다드 토바고" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "투발루" # TW # fuzzy #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "대만" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "탄ìžë‹ˆì•„" # "TW" : _("Taiwan R.O.C."), #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "ìš°í¬ë¼ì´ë‚˜" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "우간다" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "미국령 소군ë„" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "미국" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "우루과ì´" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "우즈베키스탄" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "바티칸 시국" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "세ì¸íЏ 빈센트 그레나딘스" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "베네수엘ë¼" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "ì˜êµ­ë ¹ 버진 ì•„ì¼ëžœë“œ" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "미국령 버진 ì•„ì¼ëžœë“œ" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "베트남" # src/isdn/interface.ycp:258 src/isdn/lowlevel.ycp:52 #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "바누아투" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "월리스 푸투나" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "사모아" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "예멘" # Combobox - DNS adding zone - Type Master #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "마요티" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "남아프리카공화국" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "잠비아" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ì§ë°”브웨" #: zypp/Dep.cc:96 msgid "Provides" msgstr "제공" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "전제조건" # tree node string #: zypp/Dep.cc:98 msgid "Requires" msgstr "필수" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "ì¶©ëŒ" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "í기사항" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "권장사항" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "제안" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "기능 í–¥ìƒ" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "ë³´ì¶©" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "pty(%s)를 ì—´ 수 없습니다." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "파ì´í”„(%s)를 ì—´ 수 없습니다." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "'%s'(%s)ì— ëŒ€í•´ chrootí•  수 없습니다." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "'%s'(chroot '%s' ë‚´ë¶€)(%s)(으)로 chdirí•  수 없습니다." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "'%s'(%s)(으)로 chdirí•  수 없습니다." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "'%s'(%s)ì„(를) 실행할 수 없습니다." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "fork(%s)í•  수 없습니다." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "ìƒíƒœ %d(으)로 ëª…ë ¹ì´ ì¢…ë£Œë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "ëª…ë ¹ì´ ì‹ í˜¸ %d(%s)ì— ì˜í•´ 종료ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "알 수 없는 오류와 함께 ëª…ë ¹ì´ ì¢…ë£Œë˜ì—ˆìŠµë‹ˆë‹¤." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "기존 키 %sì„(를) í‚¤ë§ %s(으)로 ìž„í¬íŠ¸í•˜ë ¤ê³  했습니다." #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "키를 ìž„í¬íŠ¸í•˜ì§€ 못했습니다." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "키를 삭제하지 못했습니다." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "서명 íŒŒì¼ %sì„(를) ì°¾ì„ ìˆ˜ 없습니다." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "알 수 없는 언어: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "아파르어" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "압카즈어" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "ì•„ì²´ì–´" # power saving scheme name, combo box and default contents of text entry #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "아콜리어" # tree node string #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "아당메어" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "아닥헤어" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "아시아-아프리카어(기타)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "아프리히리어" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "아프리칸스어" # entry of bootloader menu - only a-z, A-Z, 0-9, _ and blank space # are allowed, otherwise translartion won't be used # try to keep short, may be shortened due to bootloader limitations #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "ì•„ì´ëˆ„ì–´" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "아칸어" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "아카드어" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "알바니아어" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "알류트어" # src/config/proxy.y2cc:21 #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "알곤킨어" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "남부 알타ì´ì–´" # Combobox item #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "암하ë¼ì–´" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "고대 ì˜ì–´(ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "아파치어" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ì•„ëžì–´" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "아람어" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "ì•„ë¼ê³¤ì–´" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "아르메니아어" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ì•„ë¼ìš°ì¹¸ì–´" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "ì•„ë¼íŒŒí˜¸ì–´" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "기계어(기타)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "ì•„ë¼ì™€í¬ì–´" # src/isdn/complex.ycp:266 src/modem/complex.ycp:207 # src/provider/complex.ycp:186 #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "아샘어" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "아스투리아어" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "아타파스카어" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "호주 언어" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "아바릭어" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "아베스타어" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "아와히어" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "ì•„ì´ë§ˆë¼ì–´" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "아제르바ì´ìž”ì–´" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "반다어" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "바미레케어" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "바슈키르어" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "발루치어" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "밤바ë¼ì–´" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "발리어" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "바스í¬ì–´" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "바사어" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "발트어(기타)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "ë² ìžì–´" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "벨로루시어" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "벰바어" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "벵골어" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "베르베르어(기타)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "호즈푸리어" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "비하르어" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "비콜어" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "비니어" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "비슬ë¼ë§ˆì–´" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "ì‹ì‹œì¹´ì–´" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "반투어(기타)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "보스니아어" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "브ë¼ì–´" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "브르타뉴어" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "바타í¬ì–´(ì¸ë„네시아)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "부랴트어" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "부기어" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "불가리아어" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "버마어" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "브린어" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "ì¹´ë„ì–´" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "중앙아메리카 ì¸ë””안어(기타)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "카리브어" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "카탈로니아어" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "카프카스어(기타)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "세부아노어" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "켈트어(기타)" # CM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "차모로어" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "치브차어" # tree node string # tree node string - CPU information #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "체첸어" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "차가타ì´ì–´" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "중국어" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "츄케스어" # ML #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "마리어" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ì¹˜ëˆ„í¬ í˜¼í•©ì–´" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "촉토어" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "치페와ì´ì–¸ì–´" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "체로키어" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "êµíšŒìЬë¼ë¸Œì–´" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "추바시어" # textentry label # table header 1/2 #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "샤ì´ì—”ì–´" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "카믹어" # src/config/routing.y2cc:11 #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "콥트어" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "콘월어" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "코르시카어" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "í¬ë ˆì˜¤ë¦¬ìŠ¤ì™€ 피긴스어, ì˜ì–´ 기반(기타)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "í¬ë ˆì˜¤ë¦¬ìŠ¤ì™€ 피긴스어, 프랑스어 기반(기타)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "í¬ë ˆì˜¤ë¦¬ìŠ¤ì™€ 피긴스어, í¬ë¥´íˆ¬ê°ˆì–´ 기반(기타)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "í¬ë¦¬ì–´" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "í¬ë¦¬ë¯¼ 타타르어" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "í¬ë ˆì˜¤ë¦¬ìŠ¤ì™€ 피긴스어(기타)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "카슈비아어" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "쿠시어(기타)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "체코어" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "다코타어" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ë´ë§ˆí¬ì–´" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "다르그와어" # combo box item #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "다야í¬ì–´" # src/isdn/complex.ycp:260 #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "ë¸ë¼ì›¨ì–´ì–´" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "슬ë¼ë¸Œì–´(아타파스카어)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ë„그리브어" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "딩카어" # tree node string - means "hardware driver" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "디베히어" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "ë„그리어" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "드ë¼ë¹„다어(기타)" # combo box item #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "소르비아어(저지)" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "드와ë¼ì–´" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "네ëœëž€ë“œì–´, 중세(ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "네ëœëž€ë“œì–´" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "드율ë¼ì–´" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "종카어" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "ì´í”½ì–´" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ì´ì§‘트어(고대)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "ì´ì¹´ì£½ì–´" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "엘람어" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ì˜ì–´" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ì˜ì–´, 중세(1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ì—스페란토어" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ì—스토니아어" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ì—웨어" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "ì´ì›ë„ì–´" # tree node string #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "팡그어" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "페로스어" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "íŒí‹°ì–´" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "피지어" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "필리핀어" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "핀란드어" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "피노우그리아어(기타)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "í°ì–´" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "프랑스어" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "프랑스어, 중세(ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "프랑스어, 고대(842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "프리지아어" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "í’€ë¼ì–´" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "프리우리안어" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "가어" # GA #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "가요어" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "그바야어" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ë…ì¼ì–´(기타)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "그루지아어" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ë…ì¼ì–´" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "게ì´ì¦ˆì–´" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "키리바시어" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "게ì¼ì–´" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ì•„ì¼ëžœë“œì–´" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "갈리시아어" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "ë§¹í¬ìŠ¤ì–´" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "ë…ì¼ì–´, 중세 ê³ ì§€(ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "ë…ì¼ì–´, 고대 ê³ ì§€(ca.750-1050)" # GA #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "곤디어" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "고론탈로어" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "고트어" # GA #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "그리보어" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "그리스어, 고대(1453년까지)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "그리스어, 현대(1453ë…„ ì´í›„)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "구아ë¼ë‹ˆì–´" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "구ìžë¼íŠ¸ì–´" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "그위친어" # src/isdn/complex.ycp:260 #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "하ì´ë‹¤ì–´" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ì•„ì´í‹°ì–´" # combo box item #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "하우ìžì–´" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "하와ì´ì–´" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "헤브루어" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "헤레로어" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "헤리가뇬어" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "히마차리어" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "힌디어" # HT #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "히타ì´íŠ¸ì–´" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "í몽어" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "히리 모투어" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "소르비아어(ê³ ì§€)" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "í—가리어" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "후파어" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ì´ë°˜ì–´" # combo box item #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "ì´ê·¸ë³´ì–´" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ì•„ì´ìŠ¬ëž€ë“œì–´" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ì´ë„ì–´" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "시츄안 ì´ì–´" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ì´ì¡°ì–´" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "ì´ëˆ…티투트어" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "ì¸í„°ë§ê²Œì–´" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "ì´ë¡œì½”ì–´" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "국제어(국제보조어협회)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ì¸ë„ì–´(기타)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ì¸ë„네시아어" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "ì¸ë„유럽어(기타)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ì¸ê·€ì‹œì–´" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "ì´ëˆ„피아í¬ì–´" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ì´ëž€ì–´(기타)" # src/config/proxy.y2cc:21 #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "ì´ëŸ¬ì¿¼ì´ì–´" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ì´íƒˆë¦¬ì•„ì–´" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ìžë°”ì–´" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "로반어" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ì¼ë³¸ì–´" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "유대-페르시아어" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "유대-ì•„ë¼ë¹„ì•„ì–´" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "ì¹´ë¼ì¹¼íŒŒí¬ì–´" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "커바ì¼ì–´" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "카친어" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "그린란드어" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "캄바어" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "칸나다어" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "카렌어" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "카슈미르어" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "카누리어" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "카위어" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "ì¹´ìžíì–´" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "카바르디어" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "카시어" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "ì½”ì´ì‚°ì–´(기타)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "í¬ë©”르어" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "코탄스어" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "키쿠유어" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "키ëƒë¥´ì™„다어" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "키르기스어" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "í‚´ë¶„ë‘ì–´" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "코카니어" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "코미어" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "콩고어" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "한국어" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "코스ë¼ì´ì—”ì–´" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "í¬íŽ ë¥´ì–´" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "ì¹´ë¼ì± ì´-발카르어" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "í¬ë£¨ì–´" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "쿠르í¬ì–´" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "쿠안야마어" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "쿠믹어" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "쿠르드어" # KE #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "쿠터네ì´ì–´" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ë¼ë””노어" # UG #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "ë¼í•œë‹¤ì–´" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "람바어" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "ë¼ì˜¤ì–´" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ë¼í‹´ì–´" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ë¼íŠ¸ë¹„ì•„ì–´" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "레즈기안어" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "림버거어" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "ë§ê°ˆë¼ì–´" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "리투아니아어" # CG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "몽고어" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "로지어" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "룩셈부르í¬ì–´" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "루바-룰루아어" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "루바-카탄가어" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "간다어" # translators: table entry for Listen statements #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "루ì´ì„¸ë…¸ì–´" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "룬다어" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "루오어(ì¼€ëƒ ë° íƒ„ìžë‹ˆì•„)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "루샤ì´ì–´" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "마케ë„니아어" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "마ë‘ë¼ì–´" # src/isdn/interface.ycp:258 src/isdn/lowlevel.ycp:52 #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "마가히어" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "마셜제ë„ì–´" # ML #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "마ì´í‹¸ë¦¬ì–´" # MG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "마카사어" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "ë§ë¼ì–„람어" # this string is usually used as headline of a popup # update warning # the user has selected a 64bit partition (x86_64) for update # but booted with the 32bit DVD (x86) # This will replace all 64bit packages with 32bit counterparts. # It is technically possibly but probably not what the user intended. # update warning # the user has selected a 32bit partition on a x86-64 computer for update # but booted with the 64bit DVD (x86-64) # This will replace all 64bit packages with 32bit counterparts. # It is technically possibly but probably not what the user intended. # install warning # the computer system has a 64bit (x86-64) bit processor but # the user booted from a 32bit installation medium #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "만딩고어" # tree node string #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "마오리어" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "오스트로네시아어(기타)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "마ë¼í‹°ì–´" # ML #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "마사ì´ì–´" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "ë§ë ˆì´ì–´" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "모í¬ìƒ¤ì–´" # UG #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "만다르어" # According to QIM Screenshot # -ke- #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "멘ë°ì–´" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ì•„ì¼ëžœë“œì–´, 중세(900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "미í¬ë§¥ì–´" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "미낭카바우어" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "기타 언어" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "몬í¬ë©”르어(기타)" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "마다가스카르어" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "몰타어" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "만주어" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "마니푸리어" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "마노보어" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "모호í¬ì–´" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "몰다비아어" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "몽골어" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "모시어" # PushButton label #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "다국어" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "문다어" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "í¬ë¦¬í¬ì–´" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "미란다어" # src/isdn/complex.ycp:260 #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "마르와리어" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "마야어" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "엘즈야어" # src/isdn/interface.ycp:258 src/isdn/lowlevel.ycp:52 #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "나우아틀어" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "ë¶ì•„메리카 ì¸ë””언어" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "나í´ë¦¬ì–´" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "나바조" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "ì€ë°ë²¨ë ˆì–´, 남부" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "ì€ë°ë²¨ë ˆì–´, ë¶ë¶€" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ëŠë™ê°€ì–´" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "저지 ë…ì¼ì–´" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "네팔어" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "네와르어" # Translators: table column headings #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "니아스어" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "니제르-코르ë„파니아어(기타)" # Tv frequency table #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "니웨언어" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "ë‰˜ë…¸ë¥´ìŠ¤í¬ ë…¸ë¥´ì›¨ì´ì–´" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "ë³´í¬ë§ 노르웨ì´ì–´" # TO #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "노가ì´ì–´" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "노르웨ì´ì–´, 고대" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "노르웨ì´ì–´" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "소토어, ë¶ë¶€" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "누비안어" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "네와르어(ê³ ì „)" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "치츄어" # src/isdn/complex.ycp:266 src/modem/complex.ycp:207 # src/provider/complex.ycp:186 #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "니암웨지어" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "니안콜어" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "뉴로어" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "ëŠì§€ë§ˆì–´" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "옥시트어(1500ë…„ ì´í›„)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "오지브웨ì´ì–´" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "오리야어" # User name for user: "root" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "오로모어" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "오세ì´ì§€ì–´" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "오세티아어" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "터키어, 오스만(1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "오토미안어" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "파푸아어(기타)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "íŒê°€ì‹œë‚œì–´" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "팔레비어" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "팜팡가어" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "펀잡어" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "파피아먼토어" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "파ë¼ìš°ì•ˆì–´" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "페르시안 고대어(ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "페르시아어" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "필리핀어(기타)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "페니키아어" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "팔리어" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "í´ëž€ë“œì–´" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "í¼íŽ˜ì´ì–´" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "í¬ë¥´íˆ¬ê°ˆì–´" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "프ë¼í¬ë¦¬íŠ¸ì–´" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "프로벤칼어, 고대(1500년까지)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "푸시토어" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "케추아어" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "ë¼ìžìŠ¤íƒ„ì–´" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "ë¼íŒŒëˆ„ì´ì–´" # src/config/routing.y2cc:11 #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "ë¼ë¡œí†µê°€ì–´" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "로ë§ìŠ¤ì–´(기타)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "레토로만어" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "집시어" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "루마니아어" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "룬디어" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "러시아어" # list item #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "산다웨어" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "ì‚°ê³ ì–´" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "야í트어" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "남아메리카 ì¸ë””언어(기타)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "ìƒë¦¬ì‹œì–´ì–´" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "사마리아 ì•„ëžì–´" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "산스í¬ë¦¬íŠ¸ì–´" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "사사í¬ì–´" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "산탈리어" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "세르비아어" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "시칠리아어" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "스코틀랜드어" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "í¬ë¡œì•„í‹°ì•„ì–´" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "셀쿠프어" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "셈어(기타)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ì•„ì¼ëžœë“œì–´, 고대(900년까지)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "수화" # GH #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "샨어" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "시다모어" # text entry #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "ì‹ í• ë¼ì–´" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "수족어" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "시노티베트어(기타)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "슬ë¼ë¸Œì–´(기타)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "슬로바키아어" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "슬로베니아어" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "남부 사미어" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "ë¶ë¶€ 사미어" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "사미어(기타)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "룰레 사미어" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "ì´ë‚˜ë¦¬ 사미어" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "사모아어" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "스콜트 사미어" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "쇼나어" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "신디어" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "소닌케어" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "소그디엔어" # SO #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "소ë§ë¦¬ì•„ì–´" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "송가ì´ì¡±ì–´" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "소토어, 남부" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "스페ì¸ì–´" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "사르디니아어" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "세셀어" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "니로-사하람어(기타)" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "스와티어" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "수쿠마족어" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "순단어" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "수수어" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "수메르어" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "스와ížë¦¬ì–´" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "스웨ë´ì–´" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "시리아어" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "타히티어" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "태국어(기타)" # tree node string - CPU information #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "타밀어" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "타타르어" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "텔루구어" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "팀니어" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "테레노어" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "테툼어" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "타지í¬ì–´" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "타갈로그어" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "태국어" # TW # fuzzy #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "티베트어" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "티그레어" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "티그리ëƒì–´" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "티비어" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "í´ë§ê³¤ì–´" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "í‹€ë§ê¸°íŠ¸ì–´" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "타마섹어" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "통가어(니아사)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "통가어(통가섬)" # combo box entry, networking technology name #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "í† í¬ í”¼ì‹ ì–´" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "트심시안어" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "츠와나어" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "ì´ê°€ì–´" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "투르í¬ë©˜ì–´" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "툼부카어" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "투피어" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "터어키어" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "알타ì´ì–´(기타)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "트위어" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "투비니안어" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "우드무르트어" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "유가리틱어" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "위구르어" # "TW" : _("Taiwan R.O.C."), #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ìš°í¬ë¼ì´ë‚˜ì–´" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "움분ë‘ì–´" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "확ì¸ë˜ì§€ 않ìŒ" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "우르ë‘ì–´" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "우즈벡어" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "ë°”ì´ì–´" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "벤다어" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "베트남어" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "ë³¼ë¼í“Œí¬ì–´" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "보틱어" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "와카샨어" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "왈ë¼ëª¨ì–´" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "와ë¼ì´ì–´" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "와쇼어" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "웨ì¼ì¦ˆì–´" # src/config/proxy.y2cc:21 #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "소르브어" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "왈론어" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "올로프어" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "칼미í¬ì–´" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "코사족어" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "야오족어" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "ì–페세어" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "ì´ë””시어" # CU #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "요루바어" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "야픽어" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "사í¬í…Œí¬ì–´" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "제나가어" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "주앙어" # Table header item - DNS listing zones # table header #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ìž”ë°ì–´" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "줄루" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "주니어" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "ë‹¤ìŒ ìž‘ì—…ì´ ìˆ˜í–‰ë¨:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "만료ë˜ì§€ 않ìŒ" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "만료ë¨: 1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "만료: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(만료ë˜ì§€ 않ìŒ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(만료ë¨)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(24시간 ë‚´ 만료)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "%d(24시간 ë‚´ 만료)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "리í¬ì§€í† ë¦¬ 디렉토리 '%1%'ì„(를) ì½ì„ 수 ì—†ìŒ: 사용 권한 ê±°ë¶€ë¨" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "디렉토리 '%s'ì„(를) ì½ì§€ 못했습니다." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "리í¬ì§€í† ë¦¬ íŒŒì¼ '%1%'ì„(를) ì½ì„ 수 ì—†ìŒ: 사용 권한 ê±°ë¶€ë¨" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "리í¬ì§€í† ë¦¬ ë³„ì¹­ì€ ì (.)으로 시작할 수 없습니다." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "서비스 ë³„ì¹­ì€ ì (.)으로 시작할 수 없습니다." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "쓰기 위한 íŒŒì¼ '%s'ì„(를) ì—´ 수 없습니다." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "알 수 없는 서비스 '%1%': ë…립 서비스 리í¬ì§€í† ë¦¬ '%2%' 제거 중" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "지정한 URLì—는 유효한 메타ë°ì´í„°ê°€ ì—†ìŒ" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "%sì„(를) ìƒì„±í•  수 ì—†ìŒ" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "메타 ë°ì´í„° ìºì‹œ 디렉토리를 ìƒì„±í•  수 없습니다." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "리í¬ì§€í† ë¦¬ '%s' ìºì‹œ 빌드 중" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "%sì—서 ìºì‹œë¥¼ ìƒì„±í•  수 ì—†ìŒ - 쓰기 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "리í¬ì§€í† ë¦¬(%d)를 ìºì‹œí•˜ì§€ 못했습니다." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "리í¬ì§€í† ë¦¬ ìœ í˜•ì´ ì²˜ë¦¬ë˜ì§€ 않았습니다." #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "'%s'ì—서 ì½ê¸°ë¥¼ 시ë„하는 ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤." #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "'%s'ì—서 ì½ëŠ” ì¤‘ì— ì•Œ 수 없는 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "'%s' 리í¬ì§€í† ë¦¬ 추가 중" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "'%s'ì—서 리í¬ì§€í† ë¦¬ íŒŒì¼ ì´ë¦„ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "'%s' 리í¬ì§€í† ë¦¬ 제거 중" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "리í¬ì§€í† ë¦¬ê°€ ì €ìž¥ëœ ìœ„ì¹˜ë¥¼ 알 수 없습니다." # Frame title for installation target hard disk / partition(s) #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s'ì„(를) 삭제할 수 없습니다." #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "서비스가 ì €ìž¥ëœ ìœ„ì¹˜ë¥¼ 알 수 없습니다." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "ìž˜ëª»ëœ LDAP URL 쿼리 스트ë§" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "LDAP URL 쿼리 파ë¼ë¯¸í„° '%s'ì´(ê°€) 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "URL ê°ì²´ë¥¼ 복제할 수 없습니다." #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "빈 URL ê°ì²´ 참조는 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "URL 구성요소를 구문 ë¶„ì„í•  수 없습니다." # translators: fallback name for a module at command line #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "알 수 ì—†ìŒ" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "ì§€ì›í•˜ì§€ 않ìŒ" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "단계 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "단계 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "단계 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "추가 ê³ ê° ê³„ì•½ 필수" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "잘못ë¨" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "ì§€ì› ë ˆë²¨ì´ ì§€ì •ë˜ì§€ 않았습니다." #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "제조업체ì—서 ì§€ì›ì„ 제공하지 않습니다." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Problem determination(문제 ê²°ì •) - 호환성 ì •ë³´, 설치 기술 ì§€ì›, 사용 ì§€ì›, ì§€" "ì†ì ì¸ 유지보수 ë° ê¸°ë³¸ì ì¸ 문제해결를 위한 기술 ì§€ì›ì„ ì˜ë¯¸í•©ë‹ˆë‹¤. 레벨 1 ì§€" "ì›ì€ 제품 결함 오류를 해결하기 위한 ì§€ì›ì´ 아닙니다." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Problem isolation(문제 격리) - 중복ë˜ëŠ” 문제, 문제 ì˜ì—­ 격리, 그리고 레벨 1 " "ì§€ì›ì—서 í•´ê²°í•  수 없는 ë¬¸ì œì— ëŒ€í•œ 해답 ì œê³µì„ ìœ„í•´ 만들어진 기술 ì§€ì› ì„œë¹„" "스입니다." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Problem resolution(문제 í•´ê²°) - 레벨 2 ì§€ì›ì—서 ì‹ë³„ëœ ì œí’ˆ ê²°í•¨ì„ í•´ê²°í•˜ê¸° " "위해 ì—”ì§€ë‹ˆì–´ë§ ìž‘ì—…ì„ í†µí•´ 복잡한 문제를 해결하ë„ë¡ ë§Œë“¤ì–´ì§„ 기술 ì§€ì› ì„œë¹„" "스입니다." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "ì§€ì›ì„ 받으려면 추가 ê³ ê° ê³„ì•½ì´ í•„ìš”í•©ë‹ˆë‹¤." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "알 수 없는 ì§€ì› ì˜µì…˜ìž…ë‹ˆë‹¤. ì„¤ëª…ì„ ì‚¬ìš©í•  수 없습니다." #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "시스템 관리가 ì‘ìš© 프로그램ì—서 pid %d(%s)ê³¼(와) 함께 잠겼습니다.\n" "다시 시ë„하기 ì „ì— ì´ ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ë‹«ìœ¼ì‹­ì‹œì˜¤." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ì´ë ¥:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "잠금 íŒŒì¼ %sì„(를) ì—´ 수 없습니다." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "ì´ ë™ìž‘ì€ ì´ë¯¸ 다른 프로그램ì—서 실행 중입니다." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "알 수 없는 ì¼ì¹˜ 모드 '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "알 수 없는 ì¼ì¹˜ 모드 '%s'(패턴 '%s')" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "ìž˜ëª»ëœ ì •ê·œì‹ '%s': regcompê°€ %dì„(를) 반환했습니다." #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "ìž˜ëª»ëœ ì •ê·œì‹ '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "'%s'ì— ëŒ€í•œ ì¸ì¦ í•„ìš”" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "등ë¡ì´ 유효하고 만료ë˜ì§€ 않았는지 확ì¸í•˜ë ¤ë©´ Novell ê³ ê° ì„¼í„°ì— ë¬¸ì˜í•˜ì‹­ì‹œì˜¤." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%sì„(를) %sì— ë§ˆìš´íŠ¸í•˜ì§€ 못했습니다." #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "%sì„(를) 마운트 해제하지 못했습니다." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "ìž˜ëª»ëœ íŒŒì¼ ì´ë¦„: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "'%s' ìž‘ì—…ì„ ìˆ˜í–‰í•  때 미디어를 ì—´ 수 없습니다." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "'%s' 파ì¼ì„ '%s' 미디어ì—서 ì°¾ì„ ìˆ˜ 없습니다." # Frame title for installation target hard disk / partition(s) #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "'%s' 파ì¼ì„ 쓸 수 없습니다." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "미디어가 ì—°ê²°ë˜ì§€ 않ìŒ" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "ìž˜ëª»ëœ ë¯¸ë””ì–´ ì—°ê²°ì " #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "'%s'ì— ëŒ€í•œ 다운로드(CURL) 초기화 실패" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "시스템 예외 '%s'ì´(ê°€) 미디어 '%s'ì—서 ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "'%s' 경로('%s' ë¯¸ë””ì–´ì— ìžˆìŒ)ê°€ 파ì¼ì´ 아닙니다." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "'%s' 경로('%s' ë¯¸ë””ì–´ì— ìžˆìŒ)ê°€ 디렉토리가 아닙니다." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "ìž˜ëª»ëœ URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "URIì˜ í˜¸ìŠ¤íŠ¸ ì´ë¦„ì´ ë¹„ì–´ 있습니다." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "URIì˜ íŒŒì¼ ì‹œìŠ¤í…œì´ ë¹„ì–´ 있습니다." #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "URIì˜ ëŒ€ìƒì´ 비어 있습니다." #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "'%s'ì—서 ì§€ì›ë˜ì§€ 않는 URI 구성표입니다." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "미디어ì—서 ì§€ì›ë˜ì§€ 않는 작업입니다." #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "'%s'ì— ëŒ€í•œ 다운로드(CURL) 오류:\n" "오류 코드: %s\n" "오류 메시지: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "'%s'ì— ëŒ€í•œ 다운로드(curl) ì˜µì…˜ì„ ì„¤ì •í•˜ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "미디어 소스 '%s'ì— ì›í•˜ëŠ” 매체가 없습니다." #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "미디어 '%s'ì´(ê°€) 다른 ì¸ìŠ¤í„´ìŠ¤ì—서 사용 중입니다." #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "미디어를 꺼낼 수 없습니다." # Frame title for installation target hard disk / partition(s) #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "미디어 '%s'ì„(를) 꺼낼 수 없습니다." #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "'%s' 액세스 ê¶Œí•œì´ ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "'%s'ì— ì•¡ì„¸ìŠ¤í•  때 제한 ì‹œê°„ì´ ì´ˆê³¼ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "위치 '%s'ì— ì¼ì‹œì ìœ¼ë¡œ 액세스할 수 없습니다." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL ì¸ì¦ì„œ 문제, '%s'ì˜ CA ì¸ì¦ì„œì— 문제가 없는지 확ì¸í•˜ì‹­ì‹œì˜¤." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "ì—°ê²°ì  ìƒì„±: ì—°ê²°ì ì„ ìƒì„±í•  쓰기 가능한 디렉토리를 ì°¾ì„ ìˆ˜ 없습니다." #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "ì§€ì›í•˜ì§€ 않는 HTTP ì¸ì¦ 방법 '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "'lsof' 패키지를 먼저 설치하십시오." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "필수 특성 '%s'ì´(ê°€) 누ë½ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "'%s' ë˜ëŠ” '%s' ì†ì„± 중 하나 ë˜ëŠ” 둘 다가 필요합니다." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "서명 í™•ì¸ ì‹¤íŒ¨" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "패키지 %sì´(ê°€) 전송 ì¤‘ì— ì†ìƒëœ 것 같습니다. 다시 검색하시겠습니까?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "패키지 %sì„(를) 제공하지 못했습니다. 다시 검색하시겠습니까?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm 검사 실패." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm 실패." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "서비스 플러그ì¸ì´ 특성 ë³€ê²½ì„ ì§€ì›í•˜ì§€ 않습니다." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "íŒŒì¼ '%s'ì„(를) 리í¬ì§€í† ë¦¬ '%s'ì—서 제공할 수 없습니다." #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "리í¬ì§€í† ë¦¬ì— URLì´ ì—†ìŠµë‹ˆë‹¤." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "%2%\n" " 패키지ì˜\n" " %1% 파ì¼ì´\n" " %3%\n" " íŒ¨í‚¤ì§€ì˜ íŒŒì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "%2%\n" " 패키지ì˜\n" " %1% 파ì¼ì´\n" " %3%\n" " ì„¤ì¹˜ì˜ íŒŒì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "%2%\n" " 설치ì˜\n" " %1% 파ì¼ì´\n" " %3%\n" " íŒ¨í‚¤ì§€ì˜ íŒŒì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "%2%\n" " 설치ì˜\n" " %1% 파ì¼ì´\n" " %3%\n" " ì„¤ì¹˜ì˜ íŒŒì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "%2%\n" " 패키지ì˜\n" " %1% 파ì¼ì´\n" " %4%\n" " 패키지ì˜\n" " %3%\n" " 파ì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "%2%\n" " 패키지ì˜\n" " %1% 파ì¼ì´\n" " %4%\n" " 설치ì˜\n" " %3%\n" " 파ì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "%2%\n" " 설치ì˜\n" " %1% 파ì¼ì´\n" " %4%\n" " 패키지ì˜\n" " %3%\n" " 파ì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "%2%\n" " 설치ì˜\n" " %1% 파ì¼ì´\n" " %4%\n" " 설치ì˜\n" " %3%\n" " 파ì¼ê³¼ ì¶©ëŒí•©ë‹ˆë‹¤." #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "sat-poolì„ ìƒì„±í•  수 없습니다." # text is shown in a column of a package list entry #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ì¼ë¶€ 종ì†ì„±ì„ 무시하여 %sì„(를) 구분합니다." #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "ì¼ë¶€ 종ì†ì„ ì¼ë°˜ì ìœ¼ë¡œ 무시" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%sì´(ê°€) ë°°í¬ ì—…ê·¸ë ˆì´ë“œ 리í¬ì§€í† ë¦¬ì— ì†í•´ 있지 않습니다." #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%sì— í•˜ìœ„ 아키í…처가 있습니다." #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "ì„¤ì¹˜ëœ íŒ¨í‚¤ì§€ %sì— ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "요청 ì¶©ëŒ" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "ì¼ë¶€ 종ì†ì„± 문제" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "요청한 %sì´(ê°€) 제공ë˜ì§€ 않습니다." #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "요청한 모든 리í¬ì§€í† ë¦¬ë¥¼ 활성화했습니까?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "%s 패키지가 존재하지 않습니다." #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "ì§€ì›ë˜ì§€ 않는 요청" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%sì€(는) 시스템ì—서 제공ë˜ë©° 지울 수 없습니다." #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%sì„(를) 설치할 수 없습니다." #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s(%sì—서 í•„ìš”)ì´(ê°€) 제공ë˜ì§€ 않습니다." # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%sê³¼(와) %sì„(를) ëª¨ë‘ ì„¤ì¹˜í•  수 없습니다." #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%sì´(ê°€) %s(%sì—서 제공)ê³¼(와) ì¶©ëŒí•©ë‹ˆë‹¤." #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%sì´(ê°€) %s(%sì—서 제공)ì„(를) í기합니다." #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "ì„¤ì¹˜ëœ %sì´(ê°€) %s(%sì—서 제공)ì„(를) 제거합니다." #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "Solvable %sì´(ê°€) ìžì²´ì ìœ¼ë¡œ ì œê³µëœ %sê³¼(와) ì¶©ëŒí•©ë‹ˆë‹¤." #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%sì— %sì´(ê°€) 필요하지만, ì´ ìš”êµ¬ì‚¬í•­ì„ ì œê³µí•  수 없습니다." #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "ì‚­ì œëœ ê³µê¸‰ìž: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "설치 불가능한 공급ìž: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "설치할 수 없는 공급ìž: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "잠금 해제로 %s 제거 허용" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s 설치 안 함" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s 유지" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "잠금 해제로 %s 설치 허용" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "ì´ ìš”ì²­ì€ ì‹œìŠ¤í…œì„ ì†ìƒì‹œí‚µë‹ˆë‹¤!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ì†ìƒëœ ì‹œìŠ¤í…œì— ëŒ€í•œ 경고를 무시합니다." #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%sì„(를) 제공하는 solvable 설치를 묻지 않ìŒ" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "%sì„(를) 제공하는 모든 solvable 삭제를 묻지 않ìŒ" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "%sì˜ ìµœì‹  ë²„ì „ì„ ì„¤ì¹˜í•˜ì§€ 않ìŒ" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "하위 아키í…ì²˜ì¸ ê²½ìš°ì—ë„ %s 유지" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "하위 아키í…ì²˜ì¸ ê²½ìš°ì—ë„ %s 설치" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "êµ¬ì‹ %s 유지" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "ì œì™¸ëœ ë¦¬í¬ì§€í† ë¦¬ì—서 %s 설치" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%sì„(를) %s(으)로 다운그레ì´ë“œ" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "%sì—서 %s(으)로 아키í…처 변경" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "%s 설치(ë²¤ë” ë³€ê²½)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "%sì„(를) %s(으)로 대체" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "%s 설치 제거" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "%%posttrans 스í¬ë¦½íЏ '%1%' 실행 중" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "%posttrans 스í¬ë¦½íЏ 실행 중" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " 실행ë¨" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " 실행 실패ë¨" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%sì´(ê°€) ì´ë¯¸ %s(으)로 실행ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " 중단하는 중 실행 건너뜀" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "ì—…ë°ì´íЏ 메시지 ì•Œë¦¼ì„ ë³´ë‚´ëŠ” ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "새 ì—…ë°ì´íЏ 메시지" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "설치가 ì§€ì‹œëœ ëŒ€ë¡œ 중단ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "ì´ ë²„ì „ì˜ libzypp는 HAL ì§€ì› ì—†ì´ ìž‘ì„±ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContextê°€ ì—°ê²°ë˜ì§€ 않았ìŒ" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDriveê°€ 초기화ë˜ì§€ 않았ìŒ" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolumeì´ ì´ˆê¸°í™”ë˜ì§€ 않았ìŒ" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus ì—°ê²°ì„ ìƒì„±í•  수 ì—†ìŒ" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: libhal 컨í…스트를 ìƒì„±í•  수 ì—†ìŒ" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: dbus ì—°ê²°ì„ ì„¤ì •í•  수 ì—†ìŒ" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL 컨í…스트를 초기화할 수 없습니다. haldê°€ 실행ë˜ê³  있지 않습니까?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "CD-ROM 드ë¼ì´ë¸Œê°€ 아님" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM 실패: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "%1% 파ì¼ì—서 공용 키를 ìž„í¬íŠ¸í•˜ì§€ 못했습니다." #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "%1% 공용 키를 제거하지 못했습니다." #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "패키지가 서명ë˜ì§€ 않았습니다!" # progress stage #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%sì— ëŒ€í•œ 구성 파ì¼ì„ 변경함:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "RPMì€ %sì„(를) %s(으)로 저장했지만, ì°¨ì´ì ì„ 구분할 수 없습니다." #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "RPMì´ %sì„(를) %s(으)로 저장했습니다.\n" "다ìŒì€ ì°¨ì´ì— 대한 ì²˜ìŒ 25ê°œ 행입니다.\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "RPMì€ %sì„(를) %s(으)로 ìƒì„±í–ˆì§€ë§Œ, ì°¨ì´ì ì„ 구분할 수 없습니다." #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "RPMì´ %sì„(를) %s(으)로 만들었습니다.\n" "다ìŒì€ ì°¨ì´ì— 대한 ì²˜ìŒ 25ê°œ 행입니다.\n" # dialog caption #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "추가 RPM 출력" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "백업 %sì„(를) 만들었ìŒ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "서명 ì •ìƒ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "알 수 없는 서명 유형" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "ì„œëª…ì„ í™•ì¸í•  수 ì—†ìŒ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "ì„œëª…ì´ ì •ìƒì´ì§€ë§Œ 키를 신뢰할 수 ì—†ìŒ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "서명 공용 키 사용 불가" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "파ì¼ì´ 존재하지 않거나 ì„œëª…ì„ í™•ì¸í•  수 ì—†ìŒ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "파ì¼ì´ 서명ë˜ì§€ 않ìŒ" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "mutex íŠ¹ì„±ì„ ì´ˆê¸°í™”í•  수 없습니다." #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "순환 mutex íŠ¹ì„±ì„ ì„¤ì •í•  수 없습니다." #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "순환 mutex를 초기화할 수 없습니다." #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "mutex ìž ê¸ˆì„ íšë“í•  수 없습니다." #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "mutex ìž ê¸ˆì„ í•´ì œí•  수 없습니다." #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "URL 구성표는 %sì„(를) 허용하지 않습니다." #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "%s 구성요소 '%s'ì´(ê°€) 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "%s 구성요소가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "ì´ URLì— ëŒ€í•´ 쿼리 ìŠ¤íŠ¸ë§ êµ¬ë¬¸ ë¶„ì„ì´ ì§€ì›ë˜ì§€ 않습니다." #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL 구성표는 필수 구성요소입니다." #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "URL 구성표 '%s'ì´(ê°€) 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "URL 구성표가 ì‚¬ìš©ìž ì´ë¦„ì„ í—ˆìš©í•˜ì§€ 않습니다." #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "URL 구성표가 비밀번호를 허용하지 않습니다." #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "URL êµ¬ì„±í‘œì— í˜¸ìŠ¤íŠ¸ 구성요소가 필요합니다." #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "URL 구성표가 호스트 구성요소를 허용하지 않습니다." #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "호스트 구성요소 '%s'ì´(ê°€) 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "URL 구성표가 í¬íŠ¸ë¥¼ 허용하지 않습니다." #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "í¬íЏ 구성요소 '%s'ì´(ê°€) 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "URL êµ¬ì„±í‘œì— ê²½ë¡œ ì´ë¦„ì´ í•„ìš”í•©ë‹ˆë‹¤." #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "ê¸°ê´€ì´ ìžˆëŠ” 경우 ìƒëŒ€ 경로는 허용ë˜ì§€ 않습니다." #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "ì¸ì½”드 스트ë§ì— NUL ë°”ì´íŠ¸ê°€ í¬í•¨ë˜ì–´ 있습니다." #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "파ë¼ë¯¸í„° ë°°ì—´ ë¶„í•  구분 문ìžê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "파ë¼ë¯¸í„° ë§µ ë¶„í•  구분 문ìžê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "파ë¼ë¯¸í„° ë°°ì—´ ì¡°ì¸ êµ¬ë¶„ 문ìžê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "%s 파ì¼ì—서 공용 키를 ìž„í¬íŠ¸í•˜ì§€ 못했습니다. %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "%s 공용 키를 제거하지 못했습니다. %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "'%s'ì—서 ì´ë¯¸ì§€ 파ì¼ì„ 탑재하기 위해 사용 가능한 루프 장치를 ì°¾ì„ ìˆ˜ 없습" #~ "니다." # Frame title for installation target hard disk / partition(s) #~ msgid "do not keep %s installed" #~ msgstr "%s ì˜ ì„¤ì¹˜ë¥¼ 그대로 ë‘ì§€ 않ìŒ" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "공개 키 %s(%s 키ë§ìœ¼ë¡œ 부터)를 %s 파ì¼ì— ìƒì„± í•  수 ì—†ìŒ" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "'%s' ì— ëŒ€í•œ 다운로드 (메타ë§í¬ curl) ì´ˆê¸°í™”ì— ì‹¤íŒ¨" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "'%s' ì— ëŒ€í•œ 다운로드 (메타ë§í¬ curl) 오류 :\n" #~ "오류 코드: %s\n" #~ "오류 메시지: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "다운로드가 중단ë¨(%d%%)" #, fuzzy #~ msgid "Download interrupted by user" #~ msgstr "다운로드가 중단ë¨(%d%%)" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "'%s' ì— ëŒ€í•œ 다운로드 (메타ë§í¬ curl) ì˜µì…˜ì„ ì„¤ì • í•  때 오류 ë°œìƒ:" #~ msgid "Failed to download %s from %s" #~ msgstr "%s로부터 %s로 ë‹¤ìš´ë¡œë“œì— ì‹¤íŒ¨" #~ msgid "Serbia and Montenegro" #~ msgstr "세르비아 몬테네그로" libzypp-17.7.0/po/ku.po000066400000000000000000002754751334444677500147410ustar00rootroot00000000000000# Copyright © 2009 SUSE Linux Products GmbH. # Kurdish Team , 2009. # msgid "" msgstr "" "Project-Id-Version: memory.ku.po\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2005-09-23 00:15+0200\n" "Last-Translator: Kurdish Team \n" "Language-Team: Kurdish Team \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 #, fuzzy msgid "Hal Exception" msgstr "Salix" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 #, fuzzy msgid "Unknown country: " msgstr "Vebijêrka nenas: %1" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "Kod" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andora" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Mîrtiyên Ereb ên Yekbûyî" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Efxanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Angîla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Arnavût" #. :ALB:008: #: zypp/CountryCode.cc:164 #, fuzzy msgid "Armenia" msgstr "Ermenî" #. :ARM:051: #: zypp/CountryCode.cc:165 #, fuzzy msgid "Netherlands Antilles" msgstr "Holanda" #. :ANT:530: #: zypp/CountryCode.cc:166 #, fuzzy msgid "Angola" msgstr "Mongolî" #. :AGO:024: #: zypp/CountryCode.cc:167 #, fuzzy msgid "Antarctica" msgstr "Bixweber" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Arjantîn" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Awusturya" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Awustralya" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "Giravên Kayman" #. :ALA:248: #: zypp/CountryCode.cc:174 #, fuzzy msgid "Azerbaijan" msgstr "Azerbaycanî" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "BangladeÅŸ" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belçîka" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaristan" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrayîn" #. :BHR:048: #: zypp/CountryCode.cc:182 #, fuzzy msgid "Burundi" msgstr "Rundî" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermûda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolîvya" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brezîlya" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" #. :BTN:064: #: zypp/CountryCode.cc:190 #, fuzzy msgid "Bouvet Island" msgstr "Giravên Faroye" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belîze" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 #, fuzzy msgid "Congo" msgstr "Kongoyî" #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "Sûriye" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Swîsre" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 #, fuzzy msgid "Cook Islands" msgstr "Giravên Faroye" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Sîlî" #. :CHL:152: #: zypp/CountryCode.cc:203 #, fuzzy msgid "Cameroon" msgstr "Kamera" #. :CMR:120: #: zypp/CountryCode.cc:204 #, fuzzy msgid "China" msgstr "Çînî" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolombiya" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kosta Rîka" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kap Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Girava Noel" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Komara Çek" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Almanya" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Cîbutî" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danîmarka" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Domînîka" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Komara Domînîk" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Cezayîr" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvator" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonya" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Misir" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanya" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Fînlandiya" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fîjî" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Giravên Faroye" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Fransa" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Åžahitiya Yekbuyî" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Girava Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gurcistan" #. :GEO:268: #: zypp/CountryCode.cc:236 #, fuzzy msgid "French Guiana" msgstr "Fransî (Kanada)" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Cebelîtariq" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Greenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadelûp" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Yewnanistan" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Hirvatistan" #. :HRV:191: #: zypp/CountryCode.cc:255 #, fuzzy msgid "Haiti" msgstr "Zimanê Haitian" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Macaristan" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Endonezya" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ÃŽrlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ÃŽsraîl" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Girava Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Hindistan" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraq" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ÃŽzlanda" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ÃŽtalya" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamayîka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Urdin" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonya" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts û Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 #, fuzzy msgid "North Korea" msgstr "Amerîkaya Bakur" #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "Efrîka Basur" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kûveyt" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Giravên Kayman" #. :CYM:136: #: zypp/CountryCode.cc:281 #, fuzzy msgid "Kazakhstan" msgstr "Qazaxî" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Lubnan" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Lihtenstayn" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lîtvanya" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latviya" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Fas" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marîno" #: zypp/CountryCode.cc:298 #, fuzzy msgid "Madagascar" msgstr "Zimanê Malagasy" #. :MDG:450: #: zypp/CountryCode.cc:299 #, fuzzy msgid "Marshall Islands" msgstr "Giravên Faroye" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonya" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 #, fuzzy msgid "Mongolia" msgstr "Mongolî" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinîk" #. :MTQ:474: #: zypp/CountryCode.cc:307 #, fuzzy msgid "Mauritania" msgstr "Morîtiyus" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Morîtiyus" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Giravên Maldiv" #. :MDV:462: #: zypp/CountryCode.cc:312 #, fuzzy msgid "Malawi" msgstr "Zimanê Malay" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexîko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malezya" #. :MYS:458: #: zypp/CountryCode.cc:315 #, fuzzy msgid "Mozambique" msgstr "Martinîk" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" #. :NAM:516: #: zypp/CountryCode.cc:317 #, fuzzy msgid "New Caledonia" msgstr "Makedonya" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 #, fuzzy msgid "Norfolk Island" msgstr "Giravên Faroye" #. :NFK:574: #: zypp/CountryCode.cc:320 #, fuzzy msgid "Nigeria" msgstr "Cezayîr" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nîkaragûa" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holanda" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norweç" #. :NOR:578: #: zypp/CountryCode.cc:324 #, fuzzy msgid "Nepal" msgstr "Zimanê Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Naûrû" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Nîûe" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Zelandaya Nû" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Uman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perû" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Fîlîpîn" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polonya" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitkayirn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Rîko" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portekîz" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palawu" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reûnyon" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romanya" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Sirbîstan" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 #, fuzzy msgid "Rwanda" msgstr "Zimanê Banda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Si'ûdî Erebistan" #. :SAU:682: #: zypp/CountryCode.cc:350 #, fuzzy msgid "Solomon Islands" msgstr "Giravên Kayman" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sûdan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Swêd" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Sîngapur" #. :SGP:702: #: zypp/CountryCode.cc:355 #, fuzzy msgid "Saint Helena" msgstr "Saint Lucia" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenya" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakya" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marîno" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 #, fuzzy msgid "Somalia" msgstr "Zimanê Somalî" #. :SOM:706: #: zypp/CountryCode.cc:363 #, fuzzy msgid "Suriname" msgstr "Navê Pelê" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 #, fuzzy msgid "Syria" msgstr "Asûrî" #. :SYR:760: #: zypp/CountryCode.cc:367 #, fuzzy msgid "Swaziland" msgstr "Tayland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tayland" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tacîkistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Zimanê Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 #, fuzzy msgid "Turkmenistan" msgstr "Tirkmenî" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tûnis" #. :TUN:788: #: zypp/CountryCode.cc:377 #, fuzzy msgid "Tonga" msgstr "Zimanê Tsonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Tirkiye" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Zimanê Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taywan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrayna" #. :UKR:804: #: zypp/CountryCode.cc:385 #, fuzzy msgid "Uganda" msgstr "Zimanê Banda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 #, fuzzy msgid "United States" msgstr "Mîrtiyên Ereb ên Yekbûyî" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Ozbekîstan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 #, fuzzy msgid "Saint Vincent and the Grenadines" msgstr "Saint Kitts û Nevis" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezûela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 #, fuzzy msgid "Vietnam" msgstr "Vietnamî" #. :VNM:704: #: zypp/CountryCode.cc:396 #, fuzzy msgid "Vanuatu" msgstr "Bi Destan" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayote" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Efrîka Basur" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Peydeker" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Pêwist" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "%s nehat vebûn." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Pela %1 nayê vekirin" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "%s nehat vebûn." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Sepandina delta RPM têk çû" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Sepandina delta RPM têk çû" #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "Pel nehat dîtin." #: zypp/LanguageCode.cc:49 #, fuzzy msgid "Unknown language: " msgstr "Zimanê Nayê Zanîn:" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Zimanê Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abxazî" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Açînezî" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Akolî" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Zimanê Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Zimanê Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Zimanê Afro-Asyatîk (Yên din)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrîhîlî" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Zimanê Efrîkî" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Zimanê Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Zimanê Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akadî" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanî" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Zimanê Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Zimanên Algonquyî" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altaya Başûrî" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharî" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ÃŽngilîzî, Kevn (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Zimanên Apaçî" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Erebî" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaîkî" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Zimanê Aragonese" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Ermenî" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Arûkanî" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Zimanê Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Zêdehî (Yên din)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawakî" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Zimanê Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturî" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Zimanên Atapaskanî" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Zimanên Awustralî" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Zimanê Avaric" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestî" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadî" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Zimanê Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaycanî" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Zimanê Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Zimanên Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Zimanê BaÅŸkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Beluçî" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Zimanê Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Baliyî" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskî" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Zimanê Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltîk (Yên din)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Zimanê Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Belarusî" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Zimanê Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalî" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber (Yên din)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Zimanê Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Biharî" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Zimanê Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Zimanê Bînî" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Zimanê Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Zimanê Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (Yên din)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnayî" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Zimanê Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Zimanê Breton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Endonezya)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriatî" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugînî" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarî" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Zimanê Burmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Zimanê Blinî" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Zimanê Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 #, fuzzy msgid "Central American Indian (Other)" msgstr "Dravîdî (Yên din)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Zimanê Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalan" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasian (Yên din)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Zimanê Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Seltîk (Yên din)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Zimanê Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Zimanê Çibça" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Çeçenî" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Zimanê Çaxatay" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Çînî" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Zimanê Çukezî" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Marî" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Zimanê Çînok Cargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Çoktawî" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Çipewyanî" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Çerokî" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Silavîka Dêrê" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Çuvaşî" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Çeyenî" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Zimanên Çamîk" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Kiptî" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornişî" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsîkî" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Zimanê Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tatarî ya Kirimî" #. language code: crp #: zypp/LanguageCode.cc:363 #, fuzzy msgid "Creoles and Pidgins (Other)" msgstr "Dravîdî (Yên din)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kaşûbî" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Kûştîk (Yên din)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Çekî" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Zimanê Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danîmarkî" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Zimanê Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Zimanê Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Zimanê Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Zimanê Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Zimanê Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Zimanê Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehî" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Zimanê Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravîdî (Yên din)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Sorbiya Jêrîn" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Zimanê Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Felemenkî, Navîn (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Felemenkî" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Zimanê Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Zimanê Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Misirî (Kevn)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Zimanê Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Zimanê Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ÃŽngilîzî" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ÃŽngilîzî, Navîn (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonî" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Zimanê Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Zimanê Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Zimanê Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Zimanê Faeroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Zimanê Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Zimanê Fijian" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Zimanê Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Fînikî" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finno-Ugrian (Yên din)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Zimanê Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Frensî" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Frensî, Navîn (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Frensî, Kevn (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Zimanê Frisian" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Zimanê Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulyan" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Zimanê Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Zimanê Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Zimanê Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Almanîkî (Yên din)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Gurcî" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Almanî" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Zimanê Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Zimanê Gilbertese" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelî" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ÃŽrlandî" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Zimanê Galisî" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Zimanê Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Almanî, Navîn Bilind (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Almanî, Kevn Bilind (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Zimanê Gondî" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Zimanê Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotîk" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Zimanê Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grekî, Kevnare (heta 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grekî, Nûjen (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaranî" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gucaratî" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Zimanê Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Zimanê Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Zimanê Haitian" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Zimanê Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawayî" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ÃŽbranî" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Zimanê Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Zimanê Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Zimanê Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindî" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hîtîtî" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Zimanê Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Zimanê Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Zimanê Sorbiana Jorîn" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Macarî" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Zimanê Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Zimanê Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Zimanê Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Zimanê ÃŽzlandî" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Zimanê Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Zimanê Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Zimanê Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Zimanê Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Zimanê Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Zimanê Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Hîndîk (Yên din)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Endonezî" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Hîndo-Ewropa (Yên din)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Zimanê Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Zimanê Inupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ÃŽranî (Yên din)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Zimanên Iraqî" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ÃŽtalyanî" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Cavanezî" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Zimanê Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonî" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Cudî-Farsî" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Cudî-Erebî" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Zimanê Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Zimanê Kabîl" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Zimanê Kaçîn" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Zimanê Kalaallîsut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Zimanê Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannadî" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Zimanê Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÅŸmîrî" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanurî" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Zimanê Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Qazaxî" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Zimanê Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Zimanê Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Xosî (Yên din)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Kamboçî" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Xotanezî" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyuyî" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Zimanê Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Qirxizî" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Zimanê Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Zimanê Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komî" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongoyî" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreyî" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosranî" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Zimanê Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karaçay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Zimanê Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Zimanê Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyamî" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Zimanê Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdî" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Zimanê Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Zimanê Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Zimanê Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Zimanê Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Zimanê Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latîn" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvianî" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Zimanê Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Ziman Liburgianisch" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Zimanê Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lîtwanî" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Zimanê Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Zimanê Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgişî" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Zimanê Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Zimanê Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganga" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Zimanê Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Zimanê Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Zimanê Luo (Kenya û Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Zimanê LuÅŸayî" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonî" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurezî" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Zimanê Magahî" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Zimanê Marshallesisch" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maratî" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Zimanê Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Zimanê Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Zimanê Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maorî" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Awustranezî (Yên din)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Maratî" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Zimanê Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Zimanê Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Zimanê Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Zimanê Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Zimanê Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ÃŽrîşî, Navîn (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Zimanê Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Zimanê Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Zimanên Cur bi cur" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Yên din)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Zimanê Malagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Zimanê Maltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Zimanê Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipurî" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Zimanên Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Zimanê Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Zimanê Moldavya" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolî" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Zimanê Mossî" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Zimanên Piranî" #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "Zimanên Munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Zimanê Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandezî" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwarî" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Zimanên Mayan" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Zimanê Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Zimanê Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "Amerîkaya Bakur" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitanî" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Zimanê Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Zimanê Ndebele, Başûr" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Zimanê Ndebele, Bakur" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Zimanê Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Almaniya Jêr" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Zimanê Nepal" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Zimanê Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Zimanê Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Nijer-Kordofanî (Yên din)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Zimanê Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norwecî ya Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norwecî ya Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Zimanê Nogaî" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norzî, Kevn" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norveçkî" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sothoya Bakurî" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Zimanên Nubian" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newariya Klasîk" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Zimanê Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezî" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Zimanê Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Zimanê Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Zimanê Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Ossetî (piÅŸtî 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Zimanê Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Zimanê Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Zimanê Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Zimanê Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osetî" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Tirkî, Osmanî (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Zimanên Osmanî" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuanî (Yên din)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangazînanî" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pehlevî" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Zimanê Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Pêncabî" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Zimanê Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Zimanê Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Farisî, Kevn (ca.600-400 P.Z)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Farsî" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Fîlîpînî (Yên din)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fonîcî" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Palî" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polonî" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Fonpeynî" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portekîzî" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Zimanên Prakrît" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provenkal, Kevn (heta 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "PuÅŸto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Zimanê Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Racastanî" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanûyî" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotonganî" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romanî (Yên din)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Reto-Romanî" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romî" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romanî" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundî" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rûsî" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sazndawî" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Zimanê Sangro" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakutî" #. language code: sai #: zypp/LanguageCode.cc:911 #, fuzzy msgid "South American Indian (Other)" msgstr "ÃŽranî (Yên din)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Zimanên Salîşî" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Zimanê Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Sirpkî" #. language code: scn #: zypp/LanguageCode.cc:927 #, fuzzy msgid "Sicilian" msgstr "Friulyan" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Zimanê Xirwatî" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 #, fuzzy msgid "Semitic (Other)" msgstr "Seltîk (Yên din)" #. language code: sga #: zypp/LanguageCode.cc:939 #, fuzzy msgid "Irish, Old (to 900)" msgstr "Provenkal, Kevn (heta 1500)" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "Zimanên Salîşî" #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "Åžangay" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sînhala" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Zimanên Salîşî" #. language code: sit #: zypp/LanguageCode.cc:951 #, fuzzy msgid "Sino-Tibetan (Other)" msgstr "Finno-Ugrian (Yên din)" #. language code: sla #: zypp/LanguageCode.cc:953 #, fuzzy msgid "Slavic (Other)" msgstr "Baltîk (Yên din)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakî" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenî" #. language code: sma #: zypp/LanguageCode.cc:961 #, fuzzy msgid "Southern Sami" msgstr "Samî ya Bakurî" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Samî ya Bakurî" #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Zimanên Çamîk" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Zimanê Samoan" #. language code: sms #: zypp/LanguageCode.cc:973 #, fuzzy msgid "Skolt Sami" msgstr "Samî ya Bakurî" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Zimanê Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Zimanê Sind" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Zimanê Somalî" #. language code: son #: zypp/LanguageCode.cc:985 #, fuzzy msgid "Songhai" msgstr "Åžangay" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Zimanê Sesotho" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spanî" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Zimanê Sardinisch" #. language code: srr #: zypp/LanguageCode.cc:993 #, fuzzy msgid "Serer" msgstr "Zimanê Herero" #. language code: ssa #: zypp/LanguageCode.cc:995 #, fuzzy msgid "Nilo-Saharan (Other)" msgstr "Finno-Ugrian (Yên din)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swatî" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sudanî" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 #, fuzzy msgid "Sumerian" msgstr "Asturî" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Zimanê Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Swêdî" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Asûrî" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Zimanê Tahitî" #. language code: tai #: zypp/LanguageCode.cc:1015 #, fuzzy msgid "Tai (Other)" msgstr "Baltîk (Yên din)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamîlî" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatarî" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Zimanê Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajikî" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalogî" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tayî" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tîbetî" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Zimanê Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 #, fuzzy msgid "Tiv" msgstr "Zimanê Twi" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingonî" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 #, fuzzy msgid "Tonga (Nyasa)" msgstr "Zimanê Tonga (Giravên Toga)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Zimanê Tonga (Giravên Toga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Zimanê Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Zimanê Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Tirkmenî" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "Zimanên Nubian" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Tirkî" #. language code: tut #: zypp/LanguageCode.cc:1073 #, fuzzy msgid "Altaic (Other)" msgstr "Baltîk (Yên din)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Zimanê Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritikî" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Zimanê Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukraynî" #. language code: umb #: zypp/LanguageCode.cc:1089 #, fuzzy msgid "Umbundu" msgstr "Zimanê Kimbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Zimanê Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Ozbekî" #. language code: vai #: zypp/LanguageCode.cc:1097 #, fuzzy msgid "Vai" msgstr "Derbasdar" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Zimanê Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamî" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Zimanên Salîşî" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Zimanê WelÅŸ" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "Zimanên Nubian" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloonî" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolofî" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosî" #. language code: yao #: zypp/LanguageCode.cc:1129 #, fuzzy msgid "Yao" msgstr "Zimanê Lao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Eskenazî" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Zimanê Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "Zimanên Nubian" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zimanê Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zimanê Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "Bikarhêner tuneye." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "Bikarhêner tuneye." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Nekarî pelrêça '%1' biafirîne." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "Arşîv nederbasdar e." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Pela '%1' nayê vekirin" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "%1$s Biafirîne" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Pelrêç nayê afirandin" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "" #: zypp/RepoManager.cc:1392 #, fuzzy msgid "Unhandled repository type" msgstr "Çavkaniyê &Çalak Bike" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, fuzzy, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Di nivîsandina pela '%1' de çewtî çêbû" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, fuzzy, c-format, boost-format msgid "Adding repository '%s'" msgstr "Arşîva %1 tê Afirandin" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "Arşîvan Rake" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Bi rastî bila '%1' jê bibe?" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 #, fuzzy msgid "Unable to clone Url object" msgstr "&Venebû" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 #, fuzzy msgid "Unable to parse Url components" msgstr "&Venebû" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nenas" #: zypp/VendorSupportOptions.cc:17 #, fuzzy msgid "unsupported" msgstr "PiÅŸtgirî" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "URL ya nederbasdar" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 #, fuzzy msgid "Unknown support option. Description not available" msgstr "tu rave tuneye " #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "Pelrêça Mal:" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Pela %1 nayê vekirin" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Servîsa '%1' nayê zanîn " #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Derbirîna bi Pergal(an)" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Jibergirtina %s pêk nehat." #: zypp/media/MediaException.cc:46 #, fuzzy, c-format, boost-format msgid "Bad file name: %s" msgstr "Navê &pelê:" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Pakêta %1 derdorê nehat dîtin." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Pela '%1' nayê vekirin" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, fuzzy, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Demê afirandina arşîvê de çewtiyek çêbû." #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 #, fuzzy msgid "Cannot eject any media" msgstr "Nikare cîhazan bibîne." #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Nikare cîhazan bibîne." #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "Nivîsandina mîhengan têk çû" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "Çavkanî hilbijêre." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Pelrêç nayê afirandin" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "Sazkirina pakêtên hewce pêk nehat." #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "Pakêtên nakokiyên wan hene" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Pela %1 tune ye. " #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr "PiÅŸtgirî" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "Saz neke" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "Saz neke" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Sazkirina nivîsbariyê" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, fuzzy, c-format, boost-format msgid "do not install most recent version of %s" msgstr "Ji bo nû ve sazkirina guhertoya cuda" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "kêmkirin" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Moda Sazkirinê" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "Bixebitîne" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "Nivîsandina mîhengan têk çû" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 #, fuzzy msgid "Installation has been aborted as directed." msgstr "Sazkirina di nav Pelrêç de" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "(negirêdayî)" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "Nekarî pelrêça '%1' biafirîne." #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Veavakirina IrDA biguherîne" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Zêdetir vebijark" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Pel nehat dîtin." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Pel nehat dîtin." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Pel nehat dîtin." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, fuzzy, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Vebijêrka nederbasdar: %1" #: zypp/url/UrlBase.cc:180 #, fuzzy, c-format, boost-format msgid "Invalid %s component" msgstr "Vebijêrka nederbasdar: %1" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 #, fuzzy msgid "Url scheme is a required component" msgstr "Navê bikarhêner pêwist e" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, fuzzy, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Vebijêrka nederbasdar: %1" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, fuzzy, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Vebijêrka nederbasdar: %1" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "Saz neke" #, fuzzy #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "Demê afirandina arşîvê de çewtiyek çêbû." #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Daxistina delta RPM têk çû: %1" libzypp-17.7.0/po/lt.po000066400000000000000000003134471334444677500147310ustar00rootroot00000000000000# translation of zypp.po to lietuvių # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2000, 2001 SuSE GmbH. # # Jonas Gocentas , 2001. # Linas Spraunius , 2000. # Andrius Å tikonas , 2006, 2007. # Mindaugas Baranauskas , 2009, 2010, 2011, 2013, 2014, 2015, 2016. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2017-06-02 18:02+0000\n" "Last-Translator: Mindaugas Baranauskas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" "X-Generator: Weblate 2.6\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal iÅ¡imtis" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Abejotinas tipas „%s“, skirtas %u bitų kontrolinei santraukai „%s“" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Nežinoma Å¡alis: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "NÄ—ra kodo" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andora" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Jungtiniai Arabų Emyratai" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistanas" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antikva ir Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Angilija" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanija" # AM # fuzzy #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ArmÄ—nija" # AN # fuzzy #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Olandijos Antilai" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarkika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS # fuzzy #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Å iaurÄ—s Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austrija" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australija" # CU # fuzzy #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Alandų salos" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaidžanas" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnija ir Hercogovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbadosas" # BD # fuzzy #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "BangladeÅ¡as" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgija" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Fasas" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarija" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahreinas" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundis" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Beninas" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudų" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "BrunÄ—jus Darusalamas" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivija" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazilija" # BS # fuzzy #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamai" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Butanas" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "BuvÄ— sala" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botsvana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Gudija" # BZ # fuzzy #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belizas" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosų (Kilingo) salos" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongas" # CF # fuzzy #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "CentrinÄ—s Afrikos Respublika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å veicarija" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Dramblio kaulo krantas" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Kuko salos" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ÄŒilÄ—" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "KamerÅ«nas" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kinija" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbija" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kosta Rika" # CU # fuzzy #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Žaliasis kyÅ¡ulys" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "KalÄ—dų sala" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kipras" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ÄŒekijos Respublika" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Vokietija" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Džibutis" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danija" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikos respublika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžyras" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvadoras" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estija" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egiptas" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Vakarų Sachara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "EritrÄ—ja" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Ispanija" # ET # fuzzy #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopija" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Suomija" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Folklandų salos (Malvinai)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronezijos FederacinÄ—s Valstijos" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Farerų salos" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "PrancÅ«zija" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ŽemyninÄ— PrancÅ«zija" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabonas" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "JungtinÄ— KaralystÄ—" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gruzija" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "PrancÅ«zų Gviana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "" # GH # fuzzy #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltaras" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grenlandija" # GM # fuzzy #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambija" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "GvinÄ—ja" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Gvadelupa" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Pusiaujo GvinÄ—ja" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Graikija" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Pietų Džordžija ir Pietų SandviÄo salos" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Gvatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guamas" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Bisau GvinÄ—ja" # GH #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Gajana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Honkongas" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Herdo sala ir Makdonaldo salos" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "HondÅ«ras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatija" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haitis" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Vengrija" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezija" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Airija" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izraelis" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Meno Sala" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indija" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britanijos teritorijos Indijos vandenyne" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irakas" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iranas" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islandija" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italija" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Džersis" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaika" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanija" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonija" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenija" # KZ # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgiztanas" # KH # fuzzy #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodža" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribatis" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komorai" # KN #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Sent Kitsas ir Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Å iaurÄ—s KorÄ—ja" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Pietų KorÄ—ja" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuveitas" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kaimanų salos" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazachstanas" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laoso Liaudies DemokratinÄ— Respublika" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanas" # LC #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "LichtenÅ¡teinas" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Å ri Lanka" # LR # fuzzy #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberija" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotas" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lietuva" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Liuksemburgas" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvija" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libija" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokas" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monakas" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Juodkalnija" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Sent Martinas" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskaras" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "MarÅ¡alo salos" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonija" # ML # fuzzy #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Malis" # MM # fuzzy #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mianmaras" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolija" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Å iaurÄ—s Marianų salos" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinika" # MR # fuzzy #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritanija" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montseratas" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauricijus" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldyvai" # MW # fuzzy #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malavis" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksika" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaizija" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambikas" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibija" # NC # fuzzy #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Naujoji Kaledonija" # NG #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Nigeris" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolko salos" # NG # fuzzy #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigerija" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragva" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Olandija" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norvegija" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepalas" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "NiujÄ—" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Naujoji Zelandija" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omanas" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "PrancÅ«zų Polinezija" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Naujoji GvinÄ—ja" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipinai" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistanas" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Lenkija" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Sen Pjeras ir Mikelonas" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Riko" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestinos teritorija" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalija" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragvajus" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Kataras" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunionas" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunija" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbija" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Rusijos Federacija" # RW # fuzzy #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudo Arabija" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Saliamono salos" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "SeiÅ¡eliai" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudanas" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å vedija" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "SingapÅ«ras" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Å v. Elenos sala" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "SlovÄ—nija" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbardas ir Jan Mayenas" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakija" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Siera LeonÄ—" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marinas" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegalas" # SO # fuzzy #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalis" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinamas" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "San TomÄ— ir PrinsipÄ—" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Salvadoras" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Sirija" # SZ # fuzzy #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Svazilandas" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Terkso ir Kaiko salos" # TD # fuzzy #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ÄŒadas" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "PrancÅ«zų pietinÄ—s teritorijos" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togas" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailandas" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistanas" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "TurkmÄ—nistanas" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisas" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tongas" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Rytų Timoras" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkija" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidadas ir Tobagas" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" # TW #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taivanis" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzanija" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" # UG # fuzzy #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM # fuzzy #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "JungtinÄ—s Valstijos Mažosios UžjÅ«rio Teritorijos" # US # fuzzy #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "JungtinÄ—s Amerikos Valstijos" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Urugvajus" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistanas" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Å ventasis Sostas (Vatikano miestas valstybÄ—)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Å v. Vincentas ir Grenadinai" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venesuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britanijos Mergelių salos" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Suomija" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnamas" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Valis ir Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemenas" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Majotas" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Pietų Afrika" # ZM # fuzzy #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambija" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ZimbabvÄ—" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Pateikia" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Pirmiau reikalauja" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Reikalauja" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konfliktuoja" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "PasenÄ™" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Pataria" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "SiÅ«lo" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Pagerina" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Papildo" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Nepavyksta atverti pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Nepavyksta atverti kanalo (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Nepavyksta keisti pakeisti aplanko į „%s“ (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Nepavyksta įvykdyti „%s“ (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Komanda baigta bÅ«senoje %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Komanda nutraukta naudojant signalÄ… %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Komanda pasibaigÄ— su nežinoma klaida." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "MÄ—ginta importuoti neegzistuojantį raktÄ… %s į raktinÄ™ %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Nepavyko įkelti vieÅ¡ojo rakto %1%" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Rakto nepavyko paÅ¡alinti." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "ParaÅ¡o rinkmena %s nerasta" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Nežinoma kalba: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afarų" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abchazų" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Aziatų (Kita)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "BÅ«rų" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainų" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akanų" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akadų" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanų" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutų" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Pietų Altajaus" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharų" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Anglų, Senoji (apie 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ApaÄių kalbos" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabų" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "AramÄ—jų" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ArmÄ—nų" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Mapudungunų" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "DirbtinÄ— (kita)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Asamų" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturianų" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australijos kalbos" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "AzerbaidžanieÄių" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "BaÅ¡kirų" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balio" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskų" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltų (Kita)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beža" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Gudų" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalų" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berberų (Kita)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (kita)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnių" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonų" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonezija)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Bugi" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarų" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "BirmieÄių" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "CentrinÄ—s Amerikos indÄ—nų (Kita)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Karibų" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalonų" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukazo (kita)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltų (Kita)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamoro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ÄŒeÄÄ—nų" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kinų" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" # ML # fuzzy #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "ÄŒerokių" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "BažnytinÄ— slavų" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ÄŒiuvašų" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Å ajenas" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptų" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Kornų" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "KorsikieÄių" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreolai ir pidginai, anglų k. pagrindu (kiti)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreolai ir pidginai, prancÅ«zų k. pagrindu (kiti)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreolai ir pidginai, portugalų k. pagrindu (kiti)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krymo totorių" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreolai ir pidginai (kiti)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "KaÅ¡ubų" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒekų" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danų" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Deleveras" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidų (kita)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Olandų, Vidurinioji (apie 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Olandų" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egipto (SenovÄ—s)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Anglų" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Anglų, Vidurinioji (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estų" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Farerų" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fidži" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipinų" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Suomių" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fino-Ugrų (Kita)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "PrancÅ«zų" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "PrancÅ«zų, Vidurinioji (apie 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "PrancÅ«zų, Senoji (842-apie 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Fryzų" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germanų (Kita)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Gruzinų" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "VokieÄių" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "GÄ—lų" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Airių" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galų" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotų" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Graikų, senovÄ—s (iki 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Graikų, Å¡iuolaikinÄ— (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gudžarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "HaiÄio" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "HavajieÄių" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebrajų" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hetitų" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Vengrų" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Ibanų" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandų" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingua" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (TarptautinÄ— pagalbinÄ—s kalbos asociacija)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indų (Kita)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "IndonezieÄių" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "IndoeuropieÄių (Kita)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingušų" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "IranÄ—nų (kita)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "IrokÄ—zų kalbos" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italų" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "JavieÄių" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonų" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Žydų-persų" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Žydų-arabų" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "KaÄinų" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÅ¡myro" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakų" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Chmerų" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgizų" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "KorÄ—jieÄių" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdų" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "LaosieÄių" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Lotynų" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvių" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lietuvių" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "LiuksemburgieÄių" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # GH # fuzzy #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenija ir Tanzanija)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "LuÅ¡ai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonų" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurų" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "MarÅ¡alų" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maitili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malajalių" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maorių" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marati" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malajų" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "MokÅ¡a" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Airių, Vidurinioji (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Ä®vairios kalbos" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-chmerų (kita)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Madagaskaras" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "MaltieÄių" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo kalbos" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavų" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolų" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mosi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Kelios kalbos" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda kalbos" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Maruari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Majų kalbos" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Å iaurÄ—s Amerikos indÄ—nų" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolio" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, Pietų" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, Å iaurÄ—s" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "ŽemutinÄ— vokieÄių" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepalo Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "NiujieÄių" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norvegų Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norvegų Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norvegų, senovÄ—s" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norvegų" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Å iaurÄ—s Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "NubieÄių kalbos" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Orija" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osetų" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turkų Osmanų (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomų kalbos" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuasų (Kita)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persų, Senoji (apie 600-400 pr.m.e)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persų" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipinų (kita)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "FinikieÄių" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Lenkų" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugalų" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakritų kalbos" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "PuÅ¡to" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "KeÄujų" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romanų (kita)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Reto romanų" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "ÄŒigonų" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumunų" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rusų" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandavų" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Jakutų" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Pietų Amerikos indÄ—nų (Kita)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "SaramieÄių aramÄ—jų" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrito" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbų" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilų" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Å kotų" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatų" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitų (Kita)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Airių, Senoji (iki 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Sign kalbos" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouan kalbos" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibeto (kita)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavų (Kita)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakų" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "SlovÄ—nų" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Pietų Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Å iaurÄ—s Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Sami kalbos (kita)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalių" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, Pietų" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Ispanų" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "SardinieÄių" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Sererų" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Sacharos (kita)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Svati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "SudanieÄių" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Å umerų" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Svahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å vedų" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Sirų" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "TaiÄio" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (kita)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamilų" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timnų" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadžikų" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalogų" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tajų" # TW #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibeto" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingonas" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "TamaÅ¡ekų" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tongas (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tongas (Tonga salos)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tsvana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "TurkmÄ—nų" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi kalbos" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turkų" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altajaus (Kita)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Tvi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurtų" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritik" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighurų" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "UkrainieÄių" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Nenurodyta" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbekų" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamo" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapukų" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votikų" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "VakaÅ¡an kalbos" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Valamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "VarÄ—jų" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "VaÅ¡o" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Valų" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Valonų" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Volofo" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Jao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Japesų" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "JidiÅ¡" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Jupikų kalbos" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotekų" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zandų" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Bus atlikti Å¡ie veiksmai:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(galiojimas nepasibaigia)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(galiojimas nepasibaigia)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(NEBEGALIOJA)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(baigsis per 24 valandas)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(baigsis po %d d.)" msgstr[1] "(baigsis po %d d.)" msgstr[2] "(baigsis po %d d.)" msgstr[3] "(baigsis po %d d.)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Nepavyko perskaityti katalogo „%1%“: nepakanka leidimų" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Nepavyko nuskaityti katalogo „%s“" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Nepavyko perskaityti rinkmenos „%1%“: nepakanka leidimų" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Saugyklos pseudonimas negali prasidÄ—ti taÅ¡ku." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Paslaugos pseudonimas negali prasidÄ—ti taÅ¡ku." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Nepavyksta atverti rinkmenos „%s“ įraÅ¡ymui." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Nežinoma paslauga „%1%“: paÅ¡alinama nebereikalinga paslaugų saugykla „%2%“" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Nurodytu URL nerasta tinkamų meta duomenų" msgstr[1] "Nurodytuose URL nerasta tinkamų meta duomenų" msgstr[2] "Nurodytuose URL nerasta tinkamų meta duomenų" msgstr[3] "Nurodytuose URL nerasta tinkamų meta duomenų" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Nepavyksta sukurti %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Nepavyko sukurti metaduomenų podÄ—lio katalogo." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Kuriamas saugyklos „%s“ podÄ—lis" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Nepavyksta sukurti podÄ—lio ties %s - nepakanka teisių." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Nepavyko įkelti į saugyklų podÄ—lį (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Nesutvarkytas saugyklos tipas" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Klaida bandant nuskaityti „%s“" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Nežinoma klaida skaitant iÅ¡ „%s“" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Pridedama saugykla „%s“" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Netinkamas saugyklos pavadinimas „%s“" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "PaÅ¡alinama saugykla „%s“" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Nepavyksta nustatyti, kur patalpinta Å¡i saugykla" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Nepavyksta paÅ¡alinti „%s“" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Nepavyksta nustatyti, kur patalpinta Å¡i paslauga" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Netinkama LDAP URL užklausos eilutÄ—" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Netinkamas LDAP URL užklausos parametras „%s“" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Nepavyksta klonuoti Url objekto" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Nepavyksta iÅ¡nagrinÄ—ti Url komponentų" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nežinoma" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nepalaikoma" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "1 lygis" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "2 lygis" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "3 lygis" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Reikalinga papildoma kliento sutartis" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "netinkama" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Palaikymo lygis nenurodytas" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Gamintojas nesuteikia palaikymo." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Problemos apibrėžimas, kuris reiÅ¡kia techninį palaikymÄ…, skirtÄ… pateikti " "suderinamumo informacijÄ…, diegimo pagalbÄ…, naudojimo palaikymÄ…, atvykstanÄio " "aptarnavimo ir pagrindinių nesklandumų Å¡alinimo. 1 lygio palaikymas nesiekia " "taisyti paÄio produkto klaidų." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Problemos izoliavimas, kuris reiÅ¡kia techninį palaikymÄ…, skirtÄ… dubliuoti " "klientų problemas, izoliuoti problemos sritis ir pateikti problemų " "sprendimus, kurių neiÅ¡sprendÄ— 1 lygio palaikymas." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Problemos sprendimas, kuris reiÅ¡kia techninį palaikymÄ…, skirtÄ… sprÄ™sti " "kompleksines problemas, užsiimant produkto defektais, tapatinamas su 2 lygio " "palaikymu." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Norint gauti palaikymÄ…, reikalinga papildoma kliento sutartis." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Nežinomo palaikymo parinktis. ApraÅ¡as neprieinamasq" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Sistemos tvarkytuvÄ™ užrakino programa, kurios pid %d (%s).\n" "Užverkite Å¡iÄ… programÄ… ir bandykite iÅ¡ naujo." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Istorija:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Nepavyksta atverti užrakintos rinkmenos: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Šį veiksmÄ… jau paleido kita programa." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Nežinoma atitikmens veiksena „%s“" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Nežinoma atitikmens veiksena „%s“ Å¡ablonui „%s“" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Netinkamas reguliarusis reiÅ¡kinys „%s“: regcomp grąžino %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Netinkamas reguliarusis reiÅ¡kinys „%s“" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "%s reikalauja autentifikacijos" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Apsilankykite Novell klientų aptarnavimo centre ir sužinosite, ar JÅ«sų " "registracija dar nÄ—ra pasibaigusi." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Nepavyko prijungti %s prie %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Nepavyko atjungti %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Netinkamas rinkmenos pavadinimas: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Laikmena nebuvo atidaryta, kai bandyta atlikti veiksmÄ… „%s“." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Rinkmena „%s“ nerasta laikmenoje „%s“" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Nepavyksta įraÅ¡yti rinkmenos „%s“." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Laikmena neįdÄ—ta" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Netinkama laikmenos prijungimo vieta" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "„%s“ parsiuntimo (curl) iniciacijuoti nepavyko.." #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Sistemos iÅ¡imtis „%s“ laikmenoje „%s“." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Kelias „%s“ laikmenoje „%s“ nÄ—ra rinkmena." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Kelias „%s“ laikmenoje „%s“ nÄ—ra katalogas." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Blogai suformuluotas URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "TuÅ¡Äias pagrindinio kompiuterio vardas URL adrese" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "URL adrese tuÅ¡Äia rinkmenų sistema" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "URL adrese tuÅ¡Äia paskirtis" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Nepalaikoma URL schema „%s“." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Laikmena nepalaiko Å¡ios operacijos" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "„%s“ parsiuntimo (curl) klaida:\n" "Klaidos kodas: %s\n" "Klaidos praneÅ¡imas: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Laikmenos Å¡altinis „%s“ neturi norimos laikmenos" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "LaikmenÄ… „%s“ naudoja kita programa" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Nepavyksta iÅ¡mesti jokios laikmenos" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Nepavyksta iÅ¡mesti laikmenos „%s“" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "PriÄ—jimas prie „%s“ uždraustas." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Per ilgai jungiamasi prie „%s“." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Vieta „%s“ laikinai nepasiekiama." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " SSL liudijimo problema, patikrinkite liudijimų įstaigos tvarkingumÄ… „%s“." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Nepalaikomas HTTP tapatybÄ—s nustatymo bÅ«das „%s“" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Pirmiausia įdiekite „lsof“ paketÄ…." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "TrÅ«ksta reikiamo atributo „%s“." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Reikia vieno ar abiejų, „%s“ ar „%s“ atributų." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Nepavyko patikrinti paraÅ¡o" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Regis paketas %s buvo sugadintas perdavimo metu. Ar norÄ—tumÄ—te jį gauti iÅ¡ " "naujo?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Nepavyko pateikti paketo %s. Ar norÄ—tumÄ—te bandyti jį gauti iÅ¡ naujo?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm patikrinti nepavyko." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm nepavyko." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Paslaugos papildinys nepalaiko atributų keitimo." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Nepavyksta pateikti rinkmenos „%s“ iÅ¡ saugyklos „%s“" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Saugykloje nÄ—ra url." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Rinkmena %1% ,\n" " esanti pakete\n" " %2% ,\n" " konfliktuoja su rinkmena, esanÄia pakete\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Rinkmena %1%\n" " iÅ¡ paketo\n" " %2%\n" " konfliktuoja su rinkmena iÅ¡\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Rinkmena %1%\n" " iÅ¡\n" " %2%\n" " konfliktuoja su rinkmena iÅ¡ paketo\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Rinkmena %1%\n" " iÅ¡\n" " %2%\n" " su rinkmena iÅ¡\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Rinkmena %1%\n" " iÅ¡ paketo\n" " %2%\n" " konfliktuoja su rinkmena\n" " %3%\n" " iÅ¡ paketo\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Rinkmena %1%\n" " iÅ¡ paketo\n" " %2%\n" " konfliktuoja su rinkmena\n" " %3%\n" " iÅ¡\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Rinkmena %1%\n" " iÅ¡\n" " %2%\n" " konfliktuoja su rinkmena\n" " %3%\n" " iÅ¡ paketo\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Rinkmena %1%\n" " iÅ¡\n" " %2%\n" " konfliktuoja su rinkmena\n" " %3%\n" " iÅ¡\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "nepaisyti kai kurių priklausomybių ir taip sugadinti %s " #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "apskritai ignoruoti kai kurias priklausomybes" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s nepriklauso platinamojo paketo naujovinimo (distupgrade) saugyklai" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s yra kitos architektÅ«ros" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problema su įdiegtu paketu %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "konfliktuojantys reikalavimai" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "kai kurių priklausomybių problema" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "niekas nepateikia reikalaujamo %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Ar įgalinote visas reikiamas saugyklas?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "paketo %s nÄ—ra" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "nepalaikoma užklausa" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s pateikia sistema, jo negalima paÅ¡alinti" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s neįdiegiamas" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "niekas nepateikia %s, kurio reikalauja %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "negalima įdiegti ir %s, ir %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s konfliktuoja su %s, kurį pateikia %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s pakeiÄia %s, kurį pateikÄ— %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "įdiegtas %s pakeiÄia %s, kurį pateikÄ— %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "sprendinys %s konfliktuoja su %s, kurį pats siÅ«lo" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s reikalauja „%s“, bet reikalavimo negalima iÅ¡pildyti" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "paÅ¡alinti galimi pasiÅ«lymai: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "netinkami įdiegti pasiÅ«lymai: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "netinkami diegimui pasiÅ«lymai: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "nedrausti paÅ¡alinti %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "neįdiegti %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "iÅ¡laikyti %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "nedrausti įdiegti %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Å is veiksmas sugadins jÅ«sų sistemÄ…!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "nepaisyti perspÄ—jimų apie rizikÄ… sugadinti sistemÄ…" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "nepraÅ¡yti įdiegti sprendinių, kuriuos siÅ«lo %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "nepraÅ¡yti paÅ¡alinti visų sprendinių, kuriuos siÅ«lo %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "neįdiegti paÄios naujausios %s versijos" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "iÅ¡laikyti %s, nors yra kitos architektÅ«ros" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "įdiegti %s, nors yra kitos architektÅ«ros" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "iÅ¡laikyti pasenusį %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "įdiegti %s iÅ¡ neįtrauktos saugyklos" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "pasendinti nuo %s iki %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "pakeisti architektÅ«rÄ… iÅ¡ %s į %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "įdiegti %s (keiÄiant gamintojÄ…)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "%s pakeisti į %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "paÅ¡alinti %s " #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " įvykdyta" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " įvykdyti nepavyko" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s jau įvykdytas kaip %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " nutraukiant vykdymas sustabdytas" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "SiunÄiant atnaujinimo praneÅ¡imÄ… įvyko klaida." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Naujas atnaujinimo praneÅ¡imas" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Diegimas buvo nutrauktas pagal nurodymÄ…." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Atleiskite, Å¡i libzypp versija sukompiliuota su HAL palaikymu." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Nepavyksta sukurti dbus ryÅ¡io" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Tai ne CD nuskaitymo įrenginys" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM klaida:" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Nepavyko įkelti vieÅ¡ojo rakto %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Nepavyko paÅ¡alinti vieÅ¡ojo rakto %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Pakeistos %s konfigÅ«racijos rinkmenos:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm iÅ¡saugojo %s kaip %s, bet neįmanoma nustatyti skirtumo" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm iÅ¡saugojo %s kaip %s.\n" "Pateikiamos pirmosios 25 skirtumų eilutÄ—s:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm sukÅ«rÄ— %s kaip %s, bet neįmanoma nustatyti skirtumo" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm sukÅ«rÄ— %s kaip %s.\n" "Pateikiamos pirmosios 25 skirtumų eilutÄ—s:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Papildoma rpm iÅ¡vestis" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "padaryta %s atsarginÄ— kopija" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "ParaÅ¡as geras" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Nežinomo tipo paraÅ¡as" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "ParaÅ¡as nepatikrinamas. " #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "ParaÅ¡as geras, bet raktas nepatikimas" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "PaaÅ¡o vieÅ¡asis raktas neprieinamas" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "NÄ—ra rinkmenos arba negalima patikrinti paraÅ¡o" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url schema neleidžia %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Netinkamas %s komponentas „%s“" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Netinkamas %s komponentas" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Užklausos eilutÄ—s nagrinÄ—jimas nepalaikomas Å¡iam URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url schema yra reikalingas komponentas" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Netinkama Url schema „%s“" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url schema neleidžia naudotojo vardo" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url schema neleidžia slaptažodžio" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url schemai reikia kompiuterio komponento" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url schema neleidžia kompiuterio komponento" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Netinkamas kompiuterio komponentas „%s“." #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url schema neleidžia prievado" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Netinkamas prievado komponentas „%s“" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url schema reikalauja kelio pavadinimo" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Santykinis kelias neleidžiamas, jei naudojamas tapatybÄ—s nustatymas" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Nepavyko įkelti vieÅ¡ojo rakto iÅ¡ rinkmenos %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Nepavyko paÅ¡alinti vieÅ¡ojo rakto %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Nepavyko rasti ciklinio įrenginio , prie kurio prijungtume atvaizdį iÅ¡ " #~ "„%s“" #~ msgid "do not keep %s installed" #~ msgstr "nesistengti iÅ¡laikyti įdiegto %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "Nepavyksta sukurti vieÅ¡ojo rakto %s iÅ¡ %s raktinÄ—s į rinkmenÄ… %s" #~ msgid "Download interrupted at %d%%" #~ msgstr "Parsiuntimo pertrÅ«kis ties %d%%" #~ msgid "Download interrupted by user" #~ msgstr "ParsiuntimÄ… nutraukÄ— naudotojas" #~ msgid "Failed to download %s from %s" #~ msgstr "Nepavyko parsiųsti %s iÅ¡ %s" libzypp-17.7.0/po/mk.po000066400000000000000000002671621334444677500147230ustar00rootroot00000000000000# Macedonian message file for YaST2 (@memory@). # Copyright (C) 2006 SUSE Linux Products GmbH. # Зоран ДимовÑки # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2001-07-17 16:12+0200\n" "Last-Translator: Зоран ДимовÑки \n" "Language-Team: Macedonian \n" "Language: mk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" # US # fuzzy #. :AND:020: #: zypp/CountryCode.cc:159 #, fuzzy msgid "United Arab Emirates" msgstr "Соединетите ÐмериканÑки Држави" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua и Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "" # AM # fuzzy #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Ðргентина" # AN # fuzzy #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Холандија" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "" # AR #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Ðргентина" # AS # fuzzy #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Ðмерика, Северна" # AT #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ÐвÑтрија" # AU #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ÐвÑтралија" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" # FO # fuzzy #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "ИрÑка" # AZ # fuzzy #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "СрпÑки" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "БарбадоÑ" # BD # fuzzy #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "ÐнглиÑка" # BE #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Белгија" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" # BG #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Бугарија" # BH # fuzzy #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Бразил" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" # BO #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Боливија" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Бразил" # BS # fuzzy #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Панама" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" # FO # fuzzy #. :BTN:064: #: zypp/CountryCode.cc:190 #, fuzzy msgid "Bouvet Island" msgstr "ИрÑка" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "" # BY # fuzzy #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "БретонÑки" # BZ # fuzzy #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Белгија" # CA #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Канада" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" # CF # fuzzy #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "ДоминиканÑка Република" # CH #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Швајцарија" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" # FO # fuzzy #. :CIV:384: #: zypp/CountryCode.cc:201 #, fuzzy msgid "Cook Islands" msgstr "ИрÑка" # CL #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Чиле" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Кина" # CO # fuzzy #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Колумбија" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "" # CU # fuzzy #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Колумбија" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" # CZ # fuzzy #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ДоминиканÑка Република" # DE #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Германија" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" # DK #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ДанÑка" # DM # fuzzy #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Романија" # DO #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ДоминиканÑка Република" # DZ # fuzzy #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Бугарија" # EC # fuzzy #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Еквадор" # EE #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ЕÑтонија" # EG # fuzzy #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Енергија" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" # ES #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Шпанија" # ET # fuzzy #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "ЕÑтонија" # FI #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ФинÑка" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" # FO # fuzzy #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ИрÑка" # FR #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Франција" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Гренада" # GE # fuzzy #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Србија" #. :GEO:268: #: zypp/CountryCode.cc:236 #, fuzzy msgid "French Guiana" msgstr "ФранцуÑки" # DE #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Германија" # GH # fuzzy #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Кина" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" # GL # fuzzy #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Гренада" # GM # fuzzy #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Јамајка" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" # GR #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Грција" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" # GT #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Гватемала" # GU # fuzzy #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Гватемала" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" # HN #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ХондураÑ" # HR #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ХрватÑка" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "" # HU #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Унгарија" # ID # fuzzy #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Икони" # IE #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ИрÑка" # IL #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Израел" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" # IN # fuzzy #: zypp/CountryCode.cc:261 msgid "India" msgstr "Икони" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" # IQ # fuzzy #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Израел" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "" # IS #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ИÑланд" # IT #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Италија" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" # JM # fuzzy #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Јамајка" # JO # fuzzy #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "КорејÑки" # JP #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Јапонија" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" # KZ # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 #, fuzzy msgid "Kyrgyzstan" msgstr "Тајван" # KH # fuzzy #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Колумбија" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" # ZA #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "Јужна Ðфрика" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "" # FO # fuzzy #. :KWT:414: #: zypp/CountryCode.cc:280 #, fuzzy msgid "Cayman Islands" msgstr "ИрÑка" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Тајван" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" # LR # fuzzy #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Србија" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" # LT # fuzzy #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ЛитванÑки" # LU # fuzzy #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ЛукÑембург" # LV # fuzzy #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ХрватÑка" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" # FO # fuzzy #. :MDG:450: #: zypp/CountryCode.cc:299 #, fuzzy msgid "Marshall Islands" msgstr "ИрÑка" #. :MHL:584: #: zypp/CountryCode.cc:300 #, fuzzy msgid "Macedonia" msgstr "МакедонÑки" # ML # fuzzy #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "KStep" # MM # fuzzy #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Панама" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" # MO # fuzzy #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "KStep" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "" # MR # fuzzy #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "ЛитванÑки" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" # MT # fuzzy #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "KStep" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "ЛитванÑки" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "KStep" # MW # fuzzy #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "KStep" # MX #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "МекÑико" # MY # fuzzy #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "KStep" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" # NC # fuzzy #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Македонија" # NG # fuzzy #. :NCL:540: #: zypp/CountryCode.cc:318 #, fuzzy msgid "Niger" msgstr "Србија" # FO # fuzzy #. :NER:562: #: zypp/CountryCode.cc:319 #, fuzzy msgid "Norfolk Island" msgstr "ИрÑка" # NG # fuzzy #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Србија" # NI # fuzzy #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Парагвај" # NL #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Холандија" # NO #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Ðорвешка" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" # NZ #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Ðов Зеланд" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "" # PA #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Панама" # PE #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Перу" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "" # TJ # fuzzy #. :PHL:608: #: zypp/CountryCode.cc:334 #, fuzzy msgid "Pakistan" msgstr "Тајван" # PL #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "ПолÑка" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" # PT #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Португалија" # PW # fuzzy #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Парагвај" # PY #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Парагвај" # QA # fuzzy #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "KStep" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" # RO #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Романија" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "СрпÑки" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" # RW # fuzzy #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Канада" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "" # FO # fuzzy #. :SAU:682: #: zypp/CountryCode.cc:350 #, fuzzy msgid "Solomon Islands" msgstr "ИрÑка" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" # SD # fuzzy #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Звук" # SE #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ШведÑка" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" # SI #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Словенија" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" # SK # fuzzy #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Словачки" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" # SO # fuzzy #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Романија" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" # SV #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Ел Салвадор" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" # SZ # fuzzy #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Тајланд" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" # TD # fuzzy #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Кина" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" # TH #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Тајланд" # TJ # fuzzy #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Тајван" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" # TJ # fuzzy #. :TKL:772: #: zypp/CountryCode.cc:375 #, fuzzy msgid "Turkmenistan" msgstr "Тајван" # TN # fuzzy #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "РуÑија" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" # TR #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Турција" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Тринидад и Тобаго" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" # TW #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Тајван" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" # UA #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Украина" # UG # fuzzy #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Канада" # UM # fuzzy #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Соединетите ÐмериканÑки Држави" # US # fuzzy #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Соединетите ÐмериканÑки Држави" # UY #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Уругвај" # TJ # fuzzy #. :URY:858: #: zypp/CountryCode.cc:389 #, fuzzy msgid "Uzbekistan" msgstr "Тајван" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" # VE #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Венецуела" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 #, fuzzy msgid "British Virgin Islands" msgstr "ФинÑка" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ФинÑка" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" # ZA #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Јужна Ðфрика" # ZM # fuzzy #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Јамајка" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 #, fuzzy msgid "Achinese" msgstr "КинеÑки" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "ÐфриканÑки" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 #, fuzzy msgid "Albanian" msgstr "РоманÑки" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" # AU #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "ÐвÑтралија" # ZA #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "Јужна Ðфрика" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" # AU #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "ÐвÑтралија" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ÐрапÑки" # JM # fuzzy #. language code: arc #: zypp/LanguageCode.cc:203 #, fuzzy msgid "Aramaic" msgstr "Јамајка" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" # AM # fuzzy #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 #, fuzzy msgid "Armenian" msgstr "Ðргентина" #. language code: arn #: zypp/LanguageCode.cc:211 #, fuzzy msgid "Araucanian" msgstr "ЛитванÑки" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" # AU #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "ÐвÑтралија" # AU #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "ÐвÑтралија" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" # AZ # fuzzy #. language code: aze az #: zypp/LanguageCode.cc:235 #, fuzzy msgid "Azerbaijani" msgstr "СрпÑки" # RW # fuzzy #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "Канада" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "КинеÑки" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "БаÑкиÑки" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" # BY # fuzzy #. language code: bel be #: zypp/LanguageCode.cc:259 #, fuzzy msgid "Belarusian" msgstr "БретонÑки" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 #, fuzzy msgid "Bosnian" msgstr "ЕÑтонÑки" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "БретонÑки" # ID # fuzzy #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "Икони" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 #, fuzzy msgid "Buginese" msgstr "КинеÑки" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "БугарÑки" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "КинеÑки" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" # AU #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "ÐвÑтралија" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 #, fuzzy msgid "Cornish" msgstr "ДанÑки" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Чешки" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ДанÑки" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "СрпÑки" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 #, fuzzy msgid "English" msgstr "ПолÑки" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ЕÑперанто" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ЕÑтонÑки" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" # FO # fuzzy #. language code: fao fo #: zypp/LanguageCode.cc:431 #, fuzzy msgid "Faroese" msgstr "ИрÑка" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ФинÑки" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ФранцуÑки" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" # GU # fuzzy #. language code: gaa #: zypp/LanguageCode.cc:459 #, fuzzy msgid "Ga" msgstr "Гватемала" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" # GE # fuzzy #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr "Србија" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ГерманÑки" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ИрÑки" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "ХрватÑки" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ЕврејÑки" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "СрпÑки" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "УнгарÑки" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ИÑландÑки" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" # LT # fuzzy #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "ЛитванÑки" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" # ID # fuzzy #. language code: ind id #: zypp/LanguageCode.cc:565 #, fuzzy msgid "Indonesian" msgstr "Икони" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" # AU #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "ÐвÑтралија" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ИталијанÑки" #. language code: jav jv #: zypp/LanguageCode.cc:579 #, fuzzy msgid "Javanese" msgstr "ЈапонÑки" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ЈапонÑки" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 #, fuzzy msgid "Judeo-Arabic" msgstr "ÐрапÑки" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" # CA #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "Канада" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 #, fuzzy msgid "Kazakh" msgstr "Тајван" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 #, fuzzy msgid "Khotanese" msgstr "КинеÑки" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "КорејÑки" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" # LV # fuzzy #. language code: lav lv #: zypp/LanguageCode.cc:665 #, fuzzy msgid "Latvian" msgstr "ХрватÑка" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ЛитванÑки" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" # LU # fuzzy #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "ЛукÑембург" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" # RW # fuzzy #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "Канада" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "Таи" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "МакедонÑки" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" # MY # fuzzy #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "KStep" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "МаорÑки" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" # MY # fuzzy #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "KStep" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" # RW # fuzzy #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "Канада" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" # AU #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "ÐвÑтралија" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" # MY # fuzzy #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "KStep" # MT # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 #, fuzzy msgid "Maltese" msgstr "KStep" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" # AU #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "ÐвÑтралија" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" # AU #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "ÐвÑтралија" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" # AU #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "ÐвÑтралија" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "ГерманÑки" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" # NO #. language code: nor no #: zypp/LanguageCode.cc:811 #, fuzzy msgid "Norwegian" msgstr "Ðорвешка" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" # AU #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "ÐвÑтралија" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" # AU #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "ÐвÑтралија" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" # PW # fuzzy #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "Парагвај" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ПолÑки" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ПортугалÑки" # AU #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "ÐвÑтралија" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" # JP #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "Јапонија" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" # RO #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "Романија" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "РоманÑки" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "РуÑки" # RW # fuzzy #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "Канада" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" # AU #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "ÐвÑтралија" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "СрпÑки" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ХрватÑки" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" # AU #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "ÐвÑтралија" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Словачки" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Словенечки" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" # SO # fuzzy #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "Романија" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 #, fuzzy msgid "Spanish" msgstr "ДанÑки" #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "МакедонÑки" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ШведÑки" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "ХрватÑки" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ТамилÑки" # QA # fuzzy #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "KStep" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" # TJ # fuzzy #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "Тајван" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Таи" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" # TR #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "Турција" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" # AU #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "ÐвÑтралија" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ТурÑки" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" # UA #. language code: ukr uk #: zypp/LanguageCode.cc:1087 #, fuzzy msgid "Ukrainian" msgstr "Украина" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" # AU #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "ÐвÑтралија" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "" # AU #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "ÐвÑтралија" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ВалонÑки" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" # AU #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "ÐвÑтралија" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Couldn't open file: %s." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Couldn't open file: %s." #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Couldn't open file: %s." #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Couldn't open file: %s." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "не е конектирано" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." # CL #, fuzzy #~ msgid "Child of" #~ msgstr "Чиле" # CF # fuzzy #, fuzzy #~ msgid "Centruual African Republic" #~ msgstr "ДоминиканÑка Република" libzypp-17.7.0/po/mr.po000066400000000000000000004146511334444677500147270ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: Check hardware-2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2006-11-13 12:55+0530\n" "Last-Translator: Priyavert Sharma \n" "Language-Team: AgreeYa Solutions \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.10.2\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal अपवाद" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "अजà¥à¤žà¤¾à¤¤ देश:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "कोड नाही" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "अंडोरा" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "संयà¥à¤•à¥à¤¤ अरब अमिराती" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "अफगाणिसà¥à¤¤à¤¾à¤¨" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "ऑनà¥à¤Ÿà¤¿à¤—à¥à¤µà¤¾ व बरà¥à¤¬à¥à¤¡à¤¾" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "अंगà¥à¤µà¤¿à¤²à¤¾" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "अलà¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¾" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "आरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "नेदरलॅनà¥à¤¡à¥à¤¸ अनà¥à¤Ÿà¤¿à¤²à¥‡à¤¸" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "अंगोला" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "अंटारà¥à¤•à¥à¤Ÿà¤¿à¤•ा" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "अरà¥à¤œà¥‡à¤‚टिना" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "अमेरिकन सॅमोआ" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "आसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "अरूबा" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "अलॅनà¥à¤¡ बेटे" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "अà¤à¤°à¤¬à¥ˆà¤œà¤¾à¤¨" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "बोसà¥à¤¨à¤¿à¤¯à¤¾ व हरà¥à¤œà¥‡à¤—ोवà¥à¤¹à¤¿à¤¨à¤¾" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "बारबॅडॉस" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "बांगà¥à¤²à¤¾à¤¦à¥‡à¤¶" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "बेलà¥à¤œà¤¿à¤¯à¤®" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "बरà¥à¤•िना फासो" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "बलà¥à¤—ेरिया" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "बहारिन" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "बà¥à¤°à¥‚ंडी" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "बेनिन" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "बरमà¥à¤¡à¤¾" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "बà¥à¤°à¥à¤¨à¥‡à¤ˆ दारूसलाम" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "बोलिवà¥à¤¹à¤¿à¤¯à¤¾" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "बà¥à¤°à¤¾à¤à¥€à¤²" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "बहामास" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "भूतान" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "बोवà¥à¤¹à¥‡à¤š बेट" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "बोटसà¥à¤µà¤¾à¤¨à¤¾" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "बेलारूस" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "बेलिà¤à¥‡" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "कॅनडा" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "कॉकस (कीलींग) बेटे" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "काà¤à¤—ो" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "मधà¥à¤¯ आफà¥à¤°à¤¿à¤•ी पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "सà¥à¤µà¤¿à¤¤à¥à¤à¤°à¥à¤²à¤‚ड" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "कोट डी आयवà¥à¤¹à¤°à¥€" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "कूक बेटे" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "चिली" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "कॅमेरून" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "चीन" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "कोलंबिया" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "कोसà¥à¤Ÿà¤¾ रिका" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "कà¥à¤¯à¥à¤¬à¤¾" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "केप वà¥à¤¹à¥‡à¤°à¥à¤¡à¥‡" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "खà¥à¤°à¤¿à¤¸à¤®à¤¸ बेट" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "सायपà¥à¤°à¤¸" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "चेक पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "जरà¥à¤®à¤¨à¥€" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "दिजबौती" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "डेनमारà¥à¤•" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "डॉमिनिका" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "डॉमिनिकन पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "अलà¥à¤œà¥‡à¤°à¤¿à¤¯à¤¾" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "इकà¥à¤µà¥‡à¤¡à¥‹à¤°" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "ईजिपà¥à¤¤" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "पशà¥à¤šà¤¿à¤® सहारा" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "à¤à¤°à¤¿à¤Ÿà¥à¤°à¤¿à¤†" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "सà¥à¤ªà¥‡à¤¨" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "इथिओपिया" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "फिनलà¤à¤¡" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "फिजी" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "फालà¥à¤•लॅनà¥à¤¡ बेटे (मालà¥à¤µà¥à¤¹à¤¿à¤¨à¤¾à¤¸)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "मिकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾ फेडरेटेड सà¥à¤Ÿà¥‡à¤Ÿà¥à¤¸" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "फरोई बेटे" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "फà¥à¤°à¤¾à¤¨à¥à¤¸" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "मेटà¥à¤°à¥‰à¤ªà¥‰à¤²à¤¿à¤Ÿà¤¨ फà¥à¤°à¤¾à¤¨à¥à¤¸" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "गॅबॉन" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr ".यà¥à¤¨à¤¾à¤¯à¤Ÿà¥‡à¤¡ किंगडम" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "जॉरà¥à¤œà¤¿à¤¯à¤¾" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "फà¥à¤°à¥‡à¤š गà¥à¤†à¤¨à¤¾" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "जरà¥à¤®à¤¨à¥€" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "घाना" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "जिबà¥à¤°à¤¾à¤²à¥à¤Ÿà¤°" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "गà¥à¤°à¥€à¤¨à¤²à¥…नà¥à¤¡" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "गॅमà¥à¤¬à¤¿à¤¯à¤¾" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "गà¥à¤µà¤¿à¤¨à¤¿à¤†" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "गà¥à¤µà¤¾à¤¡à¥‡à¤²à¥‹à¤ª" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "इकà¥à¤µà¥‡à¤Ÿà¥‹à¤°à¤¿à¤¯à¤² गà¥à¤¨à¤¿à¤†" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "गà¥à¤°à¥€à¤¸" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "दकà¥à¤·à¤¿à¤£ जॉरà¥à¤œà¤¿à¤¯à¤¾ व दकà¥à¤·à¤¿à¤£ सॅनà¥à¤¡à¤µà¤¿à¤š बेटे" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "गà¥à¤µà¤¾à¤Ÿà¥‡à¤®à¤¾à¤²à¤¾" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "गà¥à¤µà¥…म" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "गà¥à¤µà¤¿à¤¨à¤¿à¤†-बिसाऊ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "गयाना" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "हाà¤à¤—काà¤à¤—" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "हरà¥à¤¡ बेटे व मॅकडॉनलà¥à¤¡ बेटे" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "होंडà¥à¤°à¤¾à¤¸" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "हैती" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "हंगेरी" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "इंडोनेशिया" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "आयरà¥à¤²à¤‚ड" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "इसà¥à¤°à¥‡à¤²" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "भारत" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंदी महासागर पà¥à¤°à¤¦à¥‡à¤¶" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "इराक" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "इराण" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "आइसलॅनà¥à¤¡" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ईटाली" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "जमैका" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "जॉरà¥à¤¡à¤¨" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "जपान" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "केनिया" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "किरगिà¤à¤¸à¥à¤¤à¤¾à¤¨" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "कंबोडिया" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "किरीबती" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "कॉमोरोस" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "सेंट किटà¥à¤¸ व नेवà¥à¤¹à¤¿à¤¸" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "उतà¥à¤¤à¤° कोरिया" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "दकà¥à¤·à¤¿à¤£ कोरिया" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "कà¥à¤µà¥ˆà¤¤" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "केमन बेटे" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "कà¤à¤¾à¤•सà¥à¤¤à¤¾à¤¨" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "लाओ पीपलà¥à¤¸ डेमोकà¥à¤°à¥…टिक रिपलà¥à¤¬à¤¿à¤•" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "लेबनॉन" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "सेंट लà¥à¤¯à¥à¤¸à¤¿à¤¯à¤¾" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "लाà¤à¤šà¤Ÿà¥‡à¤¨à¥à¤¸à¥à¤Ÿà¤¿à¤¨" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "शà¥à¤°à¥€à¤²à¤‚का" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "लायबेरिया" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "लेसोथो" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "लिथà¥à¤à¤¨à¤¿à¤¯à¤¾" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "लकà¥à¤à¥‡à¤®à¤¬à¤°à¥à¤—" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "लॅटवà¥à¤¹à¤¿à¤¯à¤¾" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "लिबिया" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "मोरोकà¥à¤•ो" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "मोनॅको" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "मॉलà¥à¤¦à¥‹à¤µà¥à¤¹à¤¾" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "मोंगो" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "सॅन मारिनो" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "मादागासà¥à¤•र" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "मारà¥à¤¶à¤² बेटे" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "मासेडोनिया" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "माली" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "मà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤°" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "मंगोलिया" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "मकाओ" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "उतà¥à¤¤à¤°à¥€ मेरियाना बेटे" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "मारà¥à¤Ÿà¤¿à¤¨à¤¿à¤•" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "मॉरिटॅनिया" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "माà¤à¤¤à¥‡à¤¸à¥‡à¤°à¤¤" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "मालà¥à¤Ÿà¤¾" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "मॉरिशस" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "मालदीवà¥à¤¹à¤œ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "मालावी" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "मेकà¥à¤¸à¤¿à¤•ो" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "मलेशिया" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "मोà¤à¤¾à¤®à¥à¤¬à¤¿à¤•" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "नामिबिया" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "नà¥à¤¯à¥‚ कॅलेडोनिया" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "नायजेर" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "नॉरफॉक बेटे" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "नायजेरिया" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "निकारागà¥à¤†" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "नेदरलॅनà¥à¤¡à¤¸" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "नॉरà¥à¤µà¥‡" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "नेपाळ" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "नौरू" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "नà¥à¤¯à¥‚à¤" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "नà¥à¤¯à¥‚à¤à¥€à¤²à¤‚ड" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "ओमान" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "पनामा" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "पेरू" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "फà¥à¤°à¥‡à¤‚च पॉलिनेसिया" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "पापà¥à¤† नà¥à¤¯à¥‚ जिनिवà¥à¤¹à¤¾" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "फिलीपीनà¥à¤¸" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "पाकिसà¥à¤¤à¤¾à¤¨" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "पोलंड" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "सेंट पिअर व मिकà¥à¤µà¥‡à¤²à¥‰à¤¨" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "पिटकैरà¥à¤¨" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "पà¥à¤¯à¥à¤°à¥à¤Ÿà¥‹ रिको" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "पॅलेसà¥à¤Ÿà¤¿à¤¨à¥€ भूपà¥à¤°à¤¦à¥‡à¤¶" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "पोरà¥à¤¤à¥à¤—ाल" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "पलाऊ" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "पॅरॅगà¥à¤µà¥‡" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "कतार" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "रीयà¥à¤¨à¤¿à¤¯à¤¨" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "रूमेनिया" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "सरà¥à¤¬à¤¿à¤¯à¤¨" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "रशियन फेडरेशन" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "रवांडा" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "सौदी अरबसà¥à¤¤à¤¾à¤¨" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "सॉलोमन बेटे" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "सेशेलà¥à¤¸" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "सà¥à¤¦à¤¾à¤¨" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "सà¥à¤µà¥€à¤¡à¤¨" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "सिंगापà¥à¤°" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "सेंट हेलेना" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "सà¥à¤²à¥‹à¤µà¥à¤¹à¥‡à¤¨à¤¿à¤¯à¤¾" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "सà¥à¤µà¥…लबारà¥à¤¡ व जन मायेन" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "सà¥à¤²à¥‹à¤µà¥à¤¹à¤¾à¤•िया" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "सिà¤à¤°à¤¾ लिओन" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "सॅन मारिनो" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "सेनेगल" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "सोमालिया" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "सà¥à¤°à¥€à¤¨à¤¾à¤®" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "साओ टोम व पà¥à¤°à¤¿à¤¨à¥à¤¸à¤¿à¤ª" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "à¤à¤² सॅलà¥à¤µà¥à¤¹à¥‡à¤¡à¥‹à¤°" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "सायरिया" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "सà¥à¤µà¤¾à¤à¤¿à¤²à¥…नà¥à¤¡" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "टरà¥à¤•à¥à¤¸ व कैकॉस बेटे" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "चॅड" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "फà¥à¤°à¥‡à¤‚च दकà¥à¤·à¤¿à¤£à¥€ भूपà¥à¤°à¤¦à¥‡à¤¶" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "टोगो" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "थायलंड" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ताजिकीसà¥à¤¤à¤¾à¤¨" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "टोकेलाऊ" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "तà¥à¤°à¥à¤•मेनिसà¥à¤¤à¤¾à¤¨" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "टà¥à¤¯à¥à¤¨à¤¿à¤¶à¤¿à¤¯à¤¾" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "टोंगा" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "पूरà¥à¤µ तिमोर" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "तà¥à¤°à¥à¤•सà¥à¤¤à¤¾à¤¨" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "तà¥à¤°à¤¿à¤¨à¤¿à¤¦à¤¾à¤¦ व टोबॅगो" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "तà¥à¤µà¤¾à¤²à¥‚" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "तैवान" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "टांà¤à¤¾à¤¨à¤¿à¤¯à¤¾" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "यà¥à¤•à¥à¤°à¥‡à¤¨" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "यà¥à¤—ांडा" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "अमेरिकेतील छोटी बेटे" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "अमेरिका" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "ऊरà¥à¤—à¥à¤µà¥‡" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "उà¤à¤¬à¥‡à¤•िसà¥à¤¤à¤¾à¤¨" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "होली सी (वà¥à¤¹à¥…टिकन सिटी देश)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "सेंट विनà¥à¤¸à¥‡à¤¨à¥à¤Ÿ व गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¿à¤¨à¥à¤¸" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "वà¥à¤¹à¥‡à¤¨à¥‡à¤à¥à¤à¤²à¤¾" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वà¥à¤¹à¤°à¥à¤œà¤¿à¤¨ बेटे" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "वà¥à¤¹à¤°à¥à¤œà¤¿à¤¨ आयलंडà¥à¤¸, अमेरिका" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "वà¥à¤¹à¤¿à¤à¤Ÿà¤¨à¤¾à¤®" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "वानà¥à¤†à¤¤à¥‚" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "वॉलिस व फà¥à¤¤à¥à¤¨à¤¾" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "सॅमोआ" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "येमेन" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "मायोटे" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "दकà¥à¤·à¤¿à¤£ आफà¥à¤°à¤¿à¤•ा" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "à¤à¤¾à¤‚बिया" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "à¤à¤¿à¤‚बाबà¥à¤¬à¥‡" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s :%s ला बाजूला टाकते" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "फाईल उघडता येत नाही %1." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "फाईल उघडता येत नाही %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "%s आढळत नाही." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "%s आढळत नाही." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr " कनेकà¥à¤Ÿ करतांना आदेश वापरला " #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "VM सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "VM सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "नोंद आढळली नाही" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "अजà¥à¤žà¤¾à¤¤ भाषा" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "अफार" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "अबखॅजियॅन" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "अचाईनीज" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "अकोली" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "अडà¤à¤—à¥à¤®à¥‡" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "अडायघे" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "आफà¥à¤°à¥‹-à¤à¤¶à¤¿à¤¯à¤¾à¤Ÿà¤¿à¤• (अनà¥à¤¯)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "आफà¥à¤°à¤¿à¤¹à¤¿à¤²à¥€" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "आफà¥à¤°à¤¿à¤•ानà¥à¤¸" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "à¤à¤¨à¥‚" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "अकान" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "अकà¥à¤•ादियॅन" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "अलà¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¨" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "अलौत" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "अलà¥à¤—ोनà¥à¤•à¥à¤µà¤¿à¤¯à¤¨ भाषा" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "दकà¥à¤·à¤¿à¤£ अलà¥à¤¤à¤ˆ" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "अमà¥à¤¹à¥…रिक" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "इंगà¥à¤°à¤œà¥€ जà¥à¤¨à¥€ (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "अपाची भाषा" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "अरेबिक" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "अरॅमॅइक" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "अरॅगोनीज" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "अरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¨" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "अरौकॅनियन" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "अरापाहो" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "आरà¥à¤Ÿà¤¿à¤«à¤¿à¤¶à¤¿à¤¯à¤² (अनà¥à¤¯)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "अरावाक" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "असमी" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "असà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¨" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "अथापासà¥à¤•न भाषा" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¨ भाषा" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "अवॅरिक" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "अवà¥à¤¹à¥‡à¤¸à¥à¤Ÿà¤¨" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "अवधी" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "à¤à¤®à¤¾à¤°à¤¾" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "अà¤à¤°à¤¬à¥ˆà¤œà¤¾à¤¨à¥€" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "बांदा" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "बामिलिक भाषा" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "बशकीर" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "बलà¥à¤šà¥€" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "बामà¥à¤¬à¤¾à¤°à¤¾" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "बालीनीज" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "बासà¥à¤•" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "बासा" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "बालà¥à¤Ÿà¤¿à¤• (अनà¥à¤¯)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "बेजा" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "बेलारूसियन" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "बमà¥à¤¬à¤¾" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "बंगाली" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "बरà¥à¤¬à¤° (अनà¥à¤¯)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "भोजपà¥à¤°à¥€" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "बिहारी" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "बिकोल" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "बिनी" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "बिसà¥à¤²à¤¾à¤®à¤¾" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "सिकसिका" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "बांतू (अनà¥à¤¯)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "बोसà¥à¤¨à¥€à¤¯à¤¨" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "बà¥à¤°à¤œ" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "बà¥à¤°à¥‡à¤Ÿà¥‰à¤¨" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "बाटक (इंडोनेशिया)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "बरियत" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "बगिनीज" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "बलà¥à¤—ेरियन" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "बरà¥à¤®à¥€à¤œ" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "बà¥à¤²à¤¿à¤¨" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "कॅडो" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "मधà¥à¤¯ अमेरिकन इंडियन (अनà¥à¤¯)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "कॅरीब" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "कॅटलॅन" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "कॉकेशियन (अनà¥à¤¯)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "सेबà¥à¤†à¤¨à¥‹" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "सेलà¥à¤Ÿà¤¿à¤• (अनà¥à¤¯)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "चॅमोरो" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "चीबचा" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "चेचेन" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "चगतई" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "चीनी" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "चà¥à¤•ीज" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "मारी" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "चीनूक जारगॉन" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "चोकटा" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "चिपेवà¥à¤¯à¤¾à¤¨" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "चेरोकी" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "चरà¥à¤š सà¥à¤²à¤¾à¤µà¤¿à¤•" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "चà¥à¤µà¤¾à¤¶" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "चेयेनी" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "चॅमिक भाषा" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "कॉपà¥à¤Ÿà¤¿à¤•" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "कोरà¥à¤¨à¤¿à¤¶" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "कोरà¥à¤¸à¤¿à¤•न" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "कà¥à¤°à¥‡à¤“लेस व पिडगिनà¥à¤¸, इंगà¥à¤°à¤œà¥€ वर आधारित (अनà¥à¤¯)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "कà¥à¤°à¥‡à¤“लेस व पिडगिनà¥à¤¸, फà¥à¤°à¥‡à¤‚चवर आधारित (अनà¥à¤¯)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "कà¥à¤°à¥‡à¤“लेस व पिडगिनà¥à¤¸, पोरà¥à¤¤à¥à¤—ीजवर आधारित (अनà¥à¤¯)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "कà¥à¤°à¥€" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "कà¥à¤°à¤¿à¤®à¤¿à¤¯à¤¨ टाटार" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "कà¥à¤°à¥‡à¤“लेस व पिडगिनà¥à¤¸ (अनà¥à¤¯)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "काशà¥à¤¬à¤¿à¤¯à¤¨" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "कà¥à¤¶à¤¿à¤Ÿà¥€à¤• (अनà¥à¤¯)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "चेक" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "डाकोटा" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "डॅनिश" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "डारà¥à¤—वा" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "डायाक" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "डेलावेअर" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "सà¥à¤²à¤¾à¤µ (अथॅपासà¥à¤•न)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "डोगà¥à¤°à¥€à¤¬" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "डिनका" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "दिवेही" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "डोगरी" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "दà¥à¤°à¤µà¤¿à¤¡à¤¿à¤¯à¤¨ (अनà¥à¤¯)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "लोअर सरà¥à¤¬à¤¿à¤¯à¤¨" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "दà¥à¤†à¤²à¤¾" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "डच, मधà¥à¤¯ (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "डच" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "डà¥à¤¯à¥‚ला" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "à¤à¥‹à¤‚गखा" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "à¤à¤«à¤¿à¤•" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "इजिपà¥à¤¶à¤¿à¤¯à¤¨ (पà¥à¤°à¤¾à¤šà¥€à¤¨)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "à¤à¤•ाजà¥à¤•" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "इलॅमाइट" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "इंगà¥à¤°à¤œà¥€" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "इंगà¥à¤°à¤œà¥€, मधà¥à¤¯ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "à¤à¤¸à¥à¤ªà¥‡à¤°à¥…नà¥à¤Ÿà¥‹" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¨" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "इवे" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "इवोंडो" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "फà¤à¤—" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "फरोसी" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "फानà¥à¤¤à¥€" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "फिजियन" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "फिलिपिनो" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "फिनिश" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "फिनो-उगà¥à¤°à¥€à¤¯à¤¨ (अनà¥à¤¯)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "फॉन" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "फà¥à¤°à¥‡à¤‚च" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "फà¥à¤°à¥‡à¤‚च, मधà¥à¤¯ (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "फà¥à¤°à¥‡à¤‚च, जà¥à¤¨à¥€(842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "फà¥à¤°à¤¿à¤¸à¥€à¤¯à¤¨" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "फà¥à¤²à¤¾à¤¹" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "फà¥à¤°à¥à¤²à¤¿à¤¯à¤¨" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "गा" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "गायो" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "गà¥à¤¬à¤¾à¤¯à¤¾" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "जरà¥à¤®à¤¨à¤¿à¤• (अनà¥à¤¯)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ज़ॉरà¥à¤œà¤¿à¤¯à¤¨" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "जरà¥à¤®à¤¨" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "गीà¤" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "गिलà¥à¤¬à¤°à¥à¤Ÿà¥€à¤œ" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "गेलिक" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "आयरिश" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "गॅलीसियन" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "मà¤à¤•à¥à¤¸" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "जरà¥à¤®à¤¨ , मधà¥à¤¯à¤® जासà¥à¤¤ (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "जरà¥à¤®à¤¨, जà¥à¤¨à¥€ जासà¥à¤¤ (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "गोंडी" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "गोरोंटॅलो" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "गोथिक" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "गà¥à¤°à¥‡à¤¬à¥‹" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "गà¥à¤°à¥€à¤•, पà¥à¤°à¤¾à¤šà¥€à¤¨ (1453 परà¥à¤¯à¤‚त)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "गà¥à¤°à¥€à¤•, आधà¥à¤¨à¤¿à¤• (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "गà¥à¤°à¤¾à¤¨à¥€" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "गà¥à¤œà¤°à¤¾à¤¤à¥€" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "गà¥à¤µà¤¿à¤šâ€™à¤‡à¤¨" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "हैदा" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "हैतियन" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "हौसा" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "हवाईयन" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "हिबà¥à¤°à¥" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "हरेरो" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "हिलीगेनॉन" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "हिमाचली" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "हिनà¥à¤¦à¥€" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "हितà¥à¤¤à¤¿à¤¤à¥‡" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "हà¥à¤®à¤¾à¤à¤—" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "हिरी मोतू" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "अपà¥à¤ªà¤° सॉरà¥à¤¬à¤¿à¤¯à¤¨" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "हंगेरियन" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "हà¥à¤ªà¤¾" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ईबान" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "इगà¥à¤¬à¥‹" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "आईसà¥à¤²à¥…नà¥à¤¡à¤¿à¤•" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "इडो" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "सिचà¥à¤†à¤¨ यी" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ईजो" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "इनà¥à¤•à¥à¤¤à¤¿à¤¤à¥‚त" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "इनà¥à¤Ÿà¤°à¤²à¤¿à¤‚ग" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "इलोको" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "इनà¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤† (आंतरराषà¥à¤Ÿà¥à¤°à¥€à¤¯ ऑकà¥à¤¸à¤¿à¤²à¤°à¥€ भाषा संघटना" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "इंडिक (अनà¥à¤¯)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "इंडोनेशियन" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "इंडो-यà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨ (अनà¥à¤¯)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "इंगà¥à¤¶" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "इनà¥à¤ªà¤¿à¤†à¤•" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "इराणीयन (अनà¥à¤¯)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "इरोकोईयन भाषा" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ईटालियन" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "जावानीज" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "लॉजà¥à¤¬à¤¨" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "जपानी" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "जà¥à¤¯à¥à¤¡à¥‡à¤“-परà¥à¤¶à¤¿à¤¯à¤¨" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "जà¥à¤¯à¥à¤¡à¥‡à¤“-अरेबिक" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "कारा-कलà¥à¤ªà¤•" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "काबाईल" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "काचीन" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "कलालिसट" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "कांबा" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "कानाडी" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "कारेन" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "काशà¥à¤®à¤¿à¤°à¥€" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "कानà¥à¤°à¥€" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "कावी" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "कà¤à¤¾à¤•" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "कबरà¥à¤¡à¤¿à¤¯à¤¨" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "खासी" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "खोईसन (अनà¥à¤¯)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "खमेर" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "खोटानीज" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "किकूयू" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "किनà¥à¤¯à¤¾à¤°à¤µà¤‚डा" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "किरगीà¤" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "किमà¥à¤¬à¥à¤¨à¥à¤¡à¥‚" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "कोकणी" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "कोमी" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "काà¤à¤—ो" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "कोरियन" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "कोसà¥à¤°à¥€à¤¯à¤¨" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "कà¥à¤ªà¥‡à¤²à¥à¤²à¥‡" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "कराचाय-बलà¥à¤•र" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "कà¥à¤°à¥‚" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "कà¥à¤°à¥à¤–" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "कà¥à¤µà¥…नà¥à¤¯à¥…मा" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "कà¥à¤®à¥à¤¯à¤•" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "कà¥à¤°à¥à¤¦à¤¿à¤¶" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "कà¥à¤¤à¥‡à¤¨à¤¾à¤¯" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "लॅडिनो" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "लाहंदा" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "लांबा" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "लाओ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "लॅटिन" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "लॅटवà¥à¤¹à¤¿à¤¯à¤¨" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "लेà¤à¤—ियान" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "लिंबà¥à¤°à¥à¤—न" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "लिंगाला" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "लिथà¥à¤à¤¨à¤¿à¤¯à¤¨" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "मोंगो" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "लोà¤à¥€" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "लकà¥à¤à¥‡à¤®à¥à¤¬à¤°à¥à¤—िश" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "लà¥à¤¬à¤¾-लà¥à¤²à¥à¤†" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "लà¥à¤¬à¤¾-कटंगा" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "गांडा" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "लà¥à¤ˆà¤à¥‡à¤¨à¥‹" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "लà¥à¤‚डा" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "लà¥à¤“ (केनिया व तांà¤à¤¾à¤¨à¤¿à¤¯à¤¾)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "लà¥à¤¶à¤¾à¤ˆ" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "मेसेडोनियन" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "मदà¥à¤°à¥€à¤œ" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "मगही" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "मारà¥à¤¶à¤²à¥€à¤œ" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "मैथिली" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "मकासार" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "मलà¥à¤¯à¤¾à¤³à¤®" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "मनà¥à¤¡à¤¿à¤‚गो" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "माओरी" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ऑसà¥à¤Ÿà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¨ (अनà¥à¤¯)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "मराठी" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "मसई" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "मलय" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "मोकà¥à¤·à¤¾" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "मंदार" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "मेंडे" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "आयरिश, मधà¥à¤¯ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "मि’कà¥à¤®à¤¾à¤•" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "मिनà¤à¤—काबाऊ" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "किरकोळ अनà¥à¤¯ भाषा" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "मॉन-खमेर (अनà¥à¤¯)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "मलागासी" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "मालà¥à¤Ÿà¥€à¤œ" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "मांचू" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "मणिपà¥à¤°à¥€" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "मोनोबो भाषा" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "मोहॉक" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "मॉलà¥à¤¦à¥‡à¤µà¥à¤¹à¤¿à¤¯à¤¨" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "मंगोलियन" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "मोसà¥à¤¸à¥€" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "अनेक भाषा" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "मà¥à¤‚डा भाषा" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "कà¥à¤°à¥€à¤•" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "मिरॅनà¥à¤¡à¤¿à¤¸" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "मारवाडी" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "मायन भाषा" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "à¤à¤°à¤à¥à¤¯à¤¾" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "नाहà¥à¤†à¤Ÿà¤²" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "उतà¥à¤¤à¤° अमेरिकी भारतीय" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "नेपोलिटन" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "नावà¥à¤¹à¤¾à¤œà¥‹" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "नà¥à¤¡à¥‡à¤¬à¥‡à¤²à¥‡, दकà¥à¤·à¤¿à¤£" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "नà¥à¤¡à¥‡à¤¬à¥‡à¤²à¥‡ उतà¥à¤¤à¤°" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "नà¥à¤¡à¥‹à¤‚गा" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "लो जरà¥à¤®à¤¨" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "नेपाळी" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "नेपाल भासा" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "निअस" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "नायजेर-कोरà¥à¤¡à¥‹à¤«à¥…नियन (अनà¥à¤¯)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "नियà¥à¤ˆà¤¨" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "नॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ नà¥à¤¯à¥‹à¤°à¥à¤¸à¥à¤•" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "नॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ बोकमल" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "नोगई" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "नॉरà¥à¤¸à¥‡, जà¥à¤¨à¥€" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "नॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "उतà¥à¤¤à¤°à¥€ सोथो" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "नà¥à¤¬à¤¿à¤¯à¤¨ भाषा" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "कà¥à¤²à¤¾à¤¸à¤¿à¤•ल नेवाडी" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "चिचेवा" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "नà¥à¤¯à¤¾à¤®à¥à¤µà¥‡à¤à¥€" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "नà¥à¤¯à¤¾à¤¨à¥à¤•ोल" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "नà¥à¤¯à¥‹à¤°à¥‹" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "नà¥à¤à¤¿à¤®à¤¾" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ऑसिटन (1500 नंतर)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "ऑजिबà¥à¤µà¤¾" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "उडिया" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "ओरोमो" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ओसाज" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ऑसेटियन" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "टरà¥à¤•िश, ओटोमन (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ऑकà¥à¤Ÿà¥‹à¤®à¤¿à¤¯à¤¨ भाषा" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "पापà¥à¤†à¤¨ (अनà¥à¤¯)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "पांगेसिनन" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "पलà¥à¤¹à¤µà¥€" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "पमà¥à¤ªà¥…नà¥à¤—ा" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "पंजाबी" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "पापिअमेनà¥à¤Ÿà¥‹" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "पलौअन" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "परà¥à¤¶à¤¿à¤¯à¤¨, जà¥à¤¨à¥€ (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "परà¥à¤¶à¤¿à¤¯à¤¨" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "फिलीपिनी (अनà¥à¤¯)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "फोà¤à¤¨à¤¿à¤¶à¤¿à¤¯à¤¨" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "पाली" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "पोलिश" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "पोहमपेइयन" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "पोरà¥à¤¤à¥à¤—ीज" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "पà¥à¤°à¤¾à¤•ृत भाषा" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "पà¥à¤°à¥‰à¤µà¥à¤¹à¥‡à¤¨à¥à¤•ल, जà¥à¤¨à¥€ (1500 " #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "पà¥à¤¶à¥à¤¤à¥‹" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "कà¥à¤µà¥‡à¤šà¥à¤†" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "राजसà¥à¤¥à¤¾à¤¨à¥€" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "रापानà¥à¤ˆ" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "रारोटोंगन" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "रोमनà¥à¤¸ (अनà¥à¤¯)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "राà¤à¤Ÿà¥‹-रोमनà¥à¤¸" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "रूमेनी" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "रà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¨" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "रूंदी" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "रशियन" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "सॅनà¥à¤¡à¤¾à¤µà¥‡" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "सांगो" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "याकà¥à¤¤" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "दकà¥à¤·à¤¿à¤£ अमेरिकन भारतीय (अनà¥à¤¯)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "सॉलिशन भाषा" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "समरितान भाषा" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "संसà¥à¤•ृत" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "सासक" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "संताली" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "सरà¥à¤¬à¤¿à¤¯à¤¨" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "सिसीलियन" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "सà¥à¤•ॉटà¥à¤¸" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¨" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "सेलà¥à¤•प" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "सेमिटिक (अनà¥à¤¯)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "आयरिश, जà¥à¤¨à¥€ (900 परà¥à¤¯à¤‚त)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "खà¥à¤£à¤¾à¤‚ची भाषा" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "शान" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "सिडॅमो" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "सिंहला" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "सिओयà¥à¤…न भाषा" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "सिनो-तिबेटन (अनà¥à¤¯)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "सà¥à¤²à¥‡à¤µà¥à¤¹à¤¿à¤• (अनà¥à¤¯)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "सà¥à¤²à¥‹à¤µà¥à¤¹à¤¾à¤•" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "सà¥à¤²à¥‹à¤µà¥à¤¹à¥‡à¤¨à¤¿à¤¯à¤¨" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "दकà¥à¤·à¤¿à¤£ सॅमी" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "उतà¥à¤¤à¤°à¥€ सॅमी" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "सॅमी भाषा (अनà¥à¤¯)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "लà¥à¤²à¥‡ सॅमी" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "इनारी सॅमी" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "सॅमोअन" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "सà¥à¤•ॉलà¥à¤Ÿ सॅमी" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "शोना" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "सिंधी" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "सोनिंके" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "सॉगà¥à¤¡à¤¿à¤¯à¤¨" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "सोमाली" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "साà¤à¤˜à¤ˆ" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "सोथो, दकà¥à¤·à¤¿à¤£à¥€" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "सà¥à¤ªà¥…निश" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "सारà¥à¤¡à¤¿à¤¨à¤¿à¤¯à¤¨" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "सेरेर" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "निलो-सहारन (अनà¥à¤¯)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "सà¥à¤µà¤¾à¤¤à¥€" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "सà¥à¤•à¥à¤®à¤¾" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "सà¥à¤¦à¤¾à¤¨à¥€à¤œ" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "सà¥à¤¸à¥" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "सà¥à¤®à¥‡à¤°à¤¿à¤¯à¤¨" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "सà¥à¤µà¥€à¤¡à¤¿à¤¶" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "सायरिअक" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ताहिशियन" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ताई (अनà¥à¤¯)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "तामिल" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "तातार" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "तेलगू" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "टिमà¥à¤¨à¥‡" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "तेरेनो" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "टेटम" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "ताजिक" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "तागालॉग" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "थाई" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "तिबेटियन" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "तिगà¥à¤°à¥€" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "तिगà¥à¤°à¥€à¤¨à¥à¤¯à¤¾" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "तिवà¥à¤¹" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "कà¥à¤²à¤¿à¤‚गॉन" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "तà¥à¤²à¤¿à¤‚गिट" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "तामाशेक" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "टोंगा (नà¥à¤¯à¤¾à¤¸à¤¾)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "टोंगा (टोंगा बेटे)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "टॉक पिसीन" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "तà¥à¤¸à¤¿à¤®à¥à¤¸à¥€à¤¯à¥…न" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "तà¥à¤¸à¥à¤µà¤¾à¤¨à¤¾" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "तà¥à¤¸à¥‹à¤‚गा" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "तà¥à¤°à¥à¤•मन" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "टà¥à¤‚बà¥à¤•ा" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "तà¥à¤ªà¥€ भाषा" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "टरà¥à¤•िश" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "अलà¥à¤¤à¤¾à¤ˆà¤• (अनà¥à¤¯)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "तà¥à¤µà¤¿" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "तà¥à¤µà¥à¤¹à¤¿à¤¨à¤¿à¤¯à¤¨" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "उडमरà¥à¤Ÿ" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "यà¥à¤—ारिटिक" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "यà¥à¤ˆà¤˜à¤°" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "यà¥à¤•à¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "यà¥à¤¬à¥à¤‚डà¥" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "निशà¥à¤šà¤¿à¤¤ केलेली नाही" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "उरà¥à¤¦à¥‚" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "उà¤à¤¬à¥‡à¤•" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "वाई" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "वेंदा" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "वà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¥€à¤œ" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "वà¥à¤¹à¥‹à¤²à¥…पà¥à¤•" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "वà¥à¤¹à¥‹à¤Ÿà¤¿à¤•" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "वाकाशन भाषा" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "वालॅमो" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "वॅरे" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "वाशो" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "वेलà¥à¤¶" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "सरà¥à¤¬à¤¿à¤¯à¤¨ भाषा" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "वॅलून" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "वोलोफ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "कलà¥à¤®à¤¾à¤‡à¤•" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "कà¥à¤à¥‹à¤¸à¤¾" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "याओ" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "यापीज" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "यिदिश" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "योरूबा" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "यà¥à¤ªà¤¿à¤• भाषा" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "à¤à¤¾à¤ªà¥‹à¤Ÿà¥‡à¤•" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "à¤à¥‡à¤¨à¤¾à¤—ा" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "à¤à¥à¤à¤‚ग" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "à¤à¤¾à¤‚दे" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "à¤à¥à¤²à¥‚" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "à¤à¥à¤¨à¥€" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr " VM चे नाव आकडà¥à¤¯à¤¾à¤¨à¥‡ सà¥à¤°à¥‚ होता कामा नये. " #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr " VM चे नाव आकडà¥à¤¯à¤¾à¤¨à¥‡ सà¥à¤°à¥‚ होता कामा नये. " #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "फाईलरायटिंगसाठी उघडू शकत नाही." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr " डेसà¥à¤•टॉप आयटेम'%s' उघडू शकत नाही" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "डिरेकà¥à¤Ÿà¤° %1: %2 निरà¥à¤®à¤¾à¤£ करता आली नाही." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "फà¥à¤²à¥‰à¤ªà¥€ डिसà¥à¤•वरà¥à¤¨ à¤à¤°à¤° वाचत आहे." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "पाठवलà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ फाईलचे अवैध नांव" #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "रिसोरà¥à¤¸à¥‡à¤¸ जतन करत आहे" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr " डेसà¥à¤•टॉप आयटेम'%s' उघडू शकत नाही" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "अवैध LDAP URL कà¥à¤µà¥‡à¤°à¥€ सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "अवैध LDAP URL कà¥à¤µà¥‡à¤°à¥€ पॅरामीटर %s" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Url ऑबà¥à¤œà¥‡à¤•à¥à¤Ÿ कà¥à¤²à¥‹à¤¨ करणà¥à¤¯à¤¾à¤¤ असमरà¥à¤¥" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "अवैध रिकà¥à¤¤ Url ऑबà¥à¤œà¥‡à¤•à¥à¤Ÿ संदरà¥à¤­" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Url भागांचा संबंध जोडणà¥à¤¯à¤¾à¤¤ असमरà¥à¤¥" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "अनोळखी" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "डिसà¥à¤• असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "फाईल उघडता येत नाही %1." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "अजà¥à¤žà¤¾à¤¤ आजà¥à¤žà¤¾" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "अवैध Url सà¥à¤•ीम %s" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr " %s - %s उघडणे अशकà¥à¤¯\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "मॉडà¥à¤¯à¥à¤² लोड करणà¥à¤¯à¤¾à¤¤ अपयश \"%s\"." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "भांडारात फाईल %1 आढळली नाही" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "फाईल %1 लिहिता येत नाही." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 ही डिरेकà¥à¤Ÿà¤°à¥€ नाही." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "रिकà¥à¤¤ CA नांव." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "अवैध URL योजना '%1'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr " डेसà¥à¤•टॉप आयटेम'%s' उघडू शकत नाही" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "परवानगी नाकारली" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "पॅकेज %s à¤à¤•तà¥à¤°à¤¿à¤¤ तपासणीत अयशसà¥à¤µà¥€. आपलà¥à¤¯à¤¾à¤²à¤¾ ते पà¥à¤¨à¥à¤¹à¤¾ डाऊनलोड करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करायचाआहे?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "पॅकेज %s à¤à¤•तà¥à¤°à¤¿à¤¤ तपासणीत अयशसà¥à¤µà¥€. आपलà¥à¤¯à¤¾à¤²à¤¾ ते पà¥à¤¨à¥à¤¹à¤¾ डाऊनलोड करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करायचाआहे?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm चेक अयशसà¥à¤µà¥€" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm अयशसà¥à¤µà¥€" #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "बदल वैशिषà¥à¤Ÿà¥à¤¯à¥‡ दाखवाला रिसोरà¥à¤¸ पà¥à¤°à¤•ार VAR1 समरà¥à¤¥à¤¨ देत नाही feature" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "%s वरून %s पà¥à¤°à¤µà¥‚ शकत नाही" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "भांडारात फाईल %1 आढळली नाही" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "फाईल निरà¥à¤®à¤¾à¤£ करॠशकत नाही" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "या गरजेकडे येथेच दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "या गरजेकडे येथेच दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠतà¥à¤¯à¤¾à¤šà¥‡ दà¥à¤¸à¤°à¥‡ सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ आहे." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "पॅकेजेस असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥à¤¯à¤¾à¤šà¤¾ आदेश" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "यांचà¥à¤¯à¤¾à¤¶à¥€ कनेकà¥à¤¶à¤¨à¤šà¥€ रिकà¥à¤µà¥‡à¤¸à¥à¤Ÿ :" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "अवलंबून असणà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ (डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€) समसà¥à¤¯à¥‡à¤®à¥à¤³à¥‡ %s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "कोणतीही गोषà¥à¤Ÿ %s पà¥à¤°à¤µà¤¤ नाही" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "डिसà¥à¤• असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s ला कà¥à¤²à¥à¤ª आहे व असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होऊ शकत नाही" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नसलेली" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s ला %s ची गरज आहे" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s चे %s शी पटत नाही" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s %s ला बाजूला टाकते" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s %s ला बाजूला टाकते" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s चे %s शी पटत नाही" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "कोणतीही गोषà¥à¤Ÿ %s पà¥à¤°à¤µà¤¤ नाही" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "%s चे सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करता येणà¥à¤¯à¤¾à¤œà¥‹à¤—े पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नाहीत" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "%s चे सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करता येणà¥à¤¯à¤¾à¤œà¥‹à¤—े पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नाहीत" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠनका" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s ठेवा" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠनका" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "विनंती आधीपासूनच आहे." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%s चे सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करता येणà¥à¤¯à¤¾à¤œà¥‹à¤—े पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नाहीत" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "संबंधित रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किंवा पà¥à¤¸à¥‚न टाकू नका" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠतà¥à¤¯à¤¾à¤šà¥‡ दà¥à¤¸à¤°à¥‡ सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ आहे." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा, जरी ते सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ बदलत असेल" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s %s ला बाजूला टाकते" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "% वरून % डाऊनलोड करत आहे" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ (इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨)" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "अमलात आणा" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "की चà¥à¤¯à¤¾ सांकेतिकीकरणादरमà¥à¤¯à¤¾à¤¨ चूक आली" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "निरà¥à¤¦à¥‡à¤¶à¤¾à¤¨à¥à¤¸à¤¾à¤° सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ मधेच सोडली" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "हॅलकॉनà¥à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ कनेकà¥à¤Ÿ केलेले नाही" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "हॅलडà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹à¤šà¥€ सà¥à¤°à¥à¤µà¤¾à¤¤ नाही" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "हॅलवà¥à¤¹à¤¾à¤²à¥à¤¯à¥‚मची सà¥à¤°à¥à¤µà¤¾à¤¤ नाही" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "डीबस कनेकà¥à¤¶à¤¨ निरà¥à¤®à¤¾à¤£ करणे अशकà¥à¤¯" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: लिभाल कॉनà¥à¤Ÿà¥‡à¤•à¥à¤¸ निरà¥à¤®à¤¾à¤£ करॠशकत नाही" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr " libhal_set_dbus_connection: डीबस कनेकà¥à¤¶à¤¨ निशà¥à¤šà¤¿à¤¤ करू शकत नाही" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL कॉनà¥à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ चा पà¥à¤°à¤¾à¤°à¤‚भ अशकà¥à¤¯ – हालà¥à¤¡ चालू नाही?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "CDROM डà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹ नाही" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "अयशसà¥à¤µà¥€" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s साठी बदललेलà¥à¤¯à¤¾ आकृतीबंध फाईलà¥à¤¸" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm ने %s हे %s मà¥à¤¹à¤£à¤¨ जतन केले, परंतॠफरक सांगणे अशकà¥à¤¯" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "rpm ने %s हे %s मà¥à¤¹à¤£à¥‚न जतन केले/nफरकाचà¥à¤¯à¤¾ या पहिलà¥à¤¯à¤¾ 25 ओळी\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm ने %s हे %s मà¥à¤¹à¤£à¥‚न जतन केले फरकाचà¥à¤¯à¤¾ या पहिलà¥à¤¯à¤¾" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "rpm ने %s हे %s मà¥à¤¹à¤£à¥‚न जतन केले/nफरकाचà¥à¤¯à¤¾ या पहिलà¥à¤¯à¤¾ 25 ओळी\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "अतिरिकà¥à¤¤ rpm आऊटपà¥à¤Ÿ" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "बॅकअप %s निरà¥à¤®à¤¾à¤£ केले" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "नोंद आढळली नाही" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "नोंद आढळली नाही" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "नोंद आढळली नाही" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "मà¥à¤¯à¥à¤Ÿà¥‡à¤•à¥à¤¸ अटà¥à¤°à¤¿à¤¬à¥à¤¯à¥‚टà¥à¤¸ सà¥à¤°à¥‚ करू शकत नाही" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "रीकरà¥à¤¸à¤¿à¤µà¥à¤¹ मà¥à¤¯à¥‚टेकà¥à¤¸ अटà¥à¤°à¤¿à¤¬à¥à¤¯à¥‚ट सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "रीकरà¥à¤¸à¤¿à¤µà¥à¤¹ मà¥à¤¯à¥à¤Ÿà¥‡à¤•à¥à¤¸ सà¥à¤°à¥‚ करू शकत नाही " #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "मà¥à¤¯à¥à¤Ÿà¥‡à¤•à¥à¤¸ लॉक मिळवू शकत नाही" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "मà¥à¤¯à¥à¤Ÿà¥‡à¤•à¥à¤¸ लॉक उघडू शकत नाही" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url सà¥à¤•ीम %sला अनà¥à¤®à¤¤à¥€ देत नाही" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "अवैध %s कॉमà¥à¤ªà¥‹à¤¨à¤¨à¥à¤Ÿ %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "अवैध %s कॉमà¥à¤ªà¥‹à¤¨à¤¨à¥à¤Ÿ" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "या URL साठी कà¥à¤µà¥‡à¤°à¥€ सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग पारà¥à¤¸à¤¿à¤‚गचे समरà¥à¤¥à¤¨ नाही" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL सà¥à¤•ीम हा à¤à¤• आवशà¥à¤¯à¤• भाग आहे" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "अवैध Url सà¥à¤•ीम %s" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url सà¥à¤•ीम उपभोकà¥à¤¤à¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ नावाला अनà¥à¤®à¤¤à¥€ देत नाही" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url सà¥à¤•ीम पासवरà¥à¤¡à¤²à¤¾ अनà¥à¤®à¤¤à¥€ देत नाही" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url सà¥à¤•ीमला मà¥à¤–à¥à¤¯ भागाची गरज असते" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url सà¥à¤•ीम मà¥à¤–à¥à¤¯ भागाला अनà¥à¤®à¤¤à¥€ देत नाही" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "अवैध मà¥à¤–à¥à¤¯ भाग %s" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url सà¥à¤•ीम पोरà¥à¤Ÿà¤²à¤¾ अनà¥à¤®à¤¤à¥€ देत नाही" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "अवैध पोरà¥à¤Ÿ भाग %s" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url सà¥à¤•ीमला पाथचà¥à¤¯à¤¾ नावाची गरज असते" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "अथॉरिटी उपसà¥à¤¥à¤¿à¤¤ असेल तर सापेकà¥à¤· पाथला अनà¥à¤®à¤¤à¥€ नाही" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "à¤à¤¨à¤•ोडेड सà¥à¤Ÿà¥à¤°à¤¿à¤‚गमधे NUL बाईटचा समावेश आहे" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "अवैध पॅरामीटर अरे सà¥à¤ªà¥à¤²à¤¿à¤Ÿ सेपरेटर कॅरॅकà¥à¤Ÿà¤°" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "अवैध पॅरामीटर मॅप सà¥à¤ªà¥à¤²à¤¿à¤Ÿ सेपरेटर कॅरॅकà¥à¤Ÿà¤°" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "अवैध पॅरामीटर अरे जॉईन सेपरेटर कॅरॅकà¥à¤Ÿà¤° " #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• की मिळवणे अशकà¥à¤¯" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नसलेली" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr " %s - %s उघडणे अशकà¥à¤¯\n" #~ msgid "Serbia and Montenegro" #~ msgstr "सरà¥à¤¬à¤¿à¤¯à¤¾ व माà¤à¤Ÿà¥‡à¤¨à¥‡à¤—à¥à¤°à¥‹" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "अजà¥à¤žà¤¾à¤¤ सूची परà¥à¤¯à¤¾à¤¯" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "निरà¥à¤­à¤°à¤¤à¤¾ रिà¤à¥‰à¤²à¥à¤µ करॠशकलो नाही" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाईल %s मधे चेकसम नाही.\n" #~ "तरीही फाईल वापरायची?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s फाईल पà¥à¤¢à¥€à¤² की बरोबर सचोटी:\n" #~ "%s|%s|%s\n" #~ "तपासात अयशसà¥à¤µà¥€ तरीही फाईल वापरायची?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाईल %s मधे अवैध चेकसम.\n" #~ "अपेकà¥à¤·à¤¿à¤¤ %s,आढळले %s\n" #~ "तरीही फाईल वापरायची?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाईल %s मधे अजà¥à¤žà¤¾à¤¤ चेकसम. %s.\n" #~ "तरीही फाईल वापरायची?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "फाईल %s वर सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ नाही\n" #~ "तरीही वापरायची?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "फाईल %s वर अजà¥à¤žà¤¾à¤¤ की ची सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€:\n" #~ "%s|%s|%s\n" #~ "तरीही फाईल वापरायची?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "अविशà¥à¤µà¤¾à¤¸à¥‚ की आढळली:\n" #~ "%s|%s|%s\n" #~ "की वर विशà¥à¤µà¤¾à¤¸ ठेवायचा?" #~ msgid "%s remove failed" #~ msgstr "%s काढून टाकणे अयशसà¥à¤µà¥€" #~ msgid "rpm output:" #~ msgstr "rpm आऊटपà¥à¤Ÿ" #~ msgid "%s install failed" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ अयशसà¥à¤µà¥€" #~ msgid "%s installed ok" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ ठीक आहे" #~ msgid "%s remove ok" #~ msgstr "%s टाकणे ठीक आहे" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "%s ही डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€ पà¥à¤°à¤µà¤¤à¥‡, परंतॠते सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ आयटेमचे सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ बदलेल" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "%s ही डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€ पà¥à¤°à¤µà¤¤à¥‡, परंतॠते सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ आयटेमचे सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ बदलेल" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "संबंधित रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किंवा पà¥à¤¸à¥‚न टाकू नका" #~ msgid "Ignore that %s is already set to install" #~ msgstr "%s याआधीच सà¥à¤¥à¤¾à¤ªà¤¨à¥‡à¤¸à¤¾à¤ à¥€ सजà¥à¤œ असलà¥à¤¯à¤¾à¤•डे दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr " %s मधील %s ऑबà¥à¤¸à¥‹à¤²à¥€à¤Ÿà¤•डे दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #~ msgid "Ignore this conflict of %s" #~ msgstr "%s चा हा विवाद विसरून जा" #~ msgid "Ignore this requirement just here" #~ msgstr "या गरजेकडे येथेच दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा, जरी ते सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ बदलत असेल" #~ msgid "Install missing resolvables" #~ msgstr "गायब रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा" #~ msgid "Keep resolvables" #~ msgstr "रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ ठेवा" #~ msgid "Unlock these resolvables" #~ msgstr "ही रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ अनलॉक करा" #~ msgid "delete %s" #~ msgstr "%s पà¥à¤¸à¥‚न टाका" #~ msgid "install %s" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा" #~ msgid "unlock %s" #~ msgstr "%s अनलॉक करा" #~ msgid "unlock all resolvables" #~ msgstr "सरà¥à¤µ रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ अनलॉक करा" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "फाईल उघडता येत नाही %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "à¤à¤°à¤° सेकà¥à¤Ÿà¤° %u वाचत आहे." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "या URL साठी पाथ पॅरामीटर पारà¥à¤¸à¤¿à¤‚गचे समरà¥à¤¥à¤¨ नाही" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "या URL साठी पाथ पॅरामीटर पारà¥à¤¸à¤¿à¤‚गचे समरà¥à¤¥à¤¨ नाही" #~ msgid "Software management is already running." #~ msgstr "सॉफà¥à¤Ÿà¤µà¥‡à¤…र वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ आधीच चालू आहे" #~ msgid "%s is replaced by %s" #~ msgstr "%s चà¥à¤¯à¤¾ जागी %s" #~ msgid "%s replaced by %s" #~ msgstr "%s चà¥à¤¯à¤¾ जागी %s " #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "ही रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ पà¥à¤°à¤£à¤¾à¤²à¥€à¤¤à¥‚न पà¥à¤¸à¥‚न टाकली जातील" #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणार नाही कारण ते अजून आवशà¥à¤¯à¤• आहे" #~ msgid "Invalid information" #~ msgstr "अवैध माहिती" #~ msgid "%s is needed by other resolvables" #~ msgstr "इतर रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸à¤¨à¤¾ %s ची गरज आहे" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "%s ला %s ची गरज आहे:/n" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s चे अनà¥à¤¯ रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤²à¥à¤¬à¤¶à¥€ पटत नाही" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s चे\n" #~ "%s शी पटत नाही:" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s अनà¥à¤¯ रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸à¤¨à¤¾ बाजूला टाकते" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "ही रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸ पà¥à¤°à¤£à¤¾à¤²à¥€à¤¤à¥‚न पà¥à¤¸à¥‚न टाकली जातील" #~ msgid "%s depends on other resolvables" #~ msgstr "%s इतर रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²à¥à¤¸à¤µà¤° अवलंबून" #~ msgid "%s depends on %s" #~ msgstr "%s %s वर अवलंबून" #~ msgid "%s depends on:%s" #~ msgstr "%s :%s वर अवलंबून" #~ msgid "Child of" #~ msgstr "चाईलà¥à¤¡ ऑफ" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "असे कोणतेही साधन उपलबà¥à¤§ नाही जे या गरजेला समरà¥à¤¥à¤¨ देते." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "येऊ घातलेलà¥à¤¯à¤¾ समसà¥à¤¯à¤¾, जà¥à¤¯à¤¾ या रिà¤à¥‹à¤²à¥à¤¯à¥‚शनचà¥à¤¯à¤¾ वर/खाली नमूद केलà¥à¤¯à¤¾ आहेत, तà¥à¤¯à¤¾à¤¸à¤°à¥à¤µ अवलंबून " #~ "गोषà¥à¤Ÿà¥€ सोडवणार नाहीत" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही कारण तà¥à¤¯à¤¾à¤‚चे %s शी पटत नाही" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नाही व तà¥à¤¯à¤¾à¤µà¤° सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ न करता येणारा अशी खूण आहे" #, fuzzy #~ msgid "%s has unfulfilled requirements" #~ msgstr "चà¥à¤¯à¤¾ गरजा पूरà¥à¤£ न होणारà¥à¤¯à¤¾" #~ msgid "%s has missing dependencies" #~ msgstr "%sचà¥à¤¯à¤¾ गरजा पूरà¥à¤£ न होणारà¥à¤¯à¤¾ आहेत" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s मधे गायब डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€à¤œ आहेत." #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "गायब डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€à¤¡à¤®à¥à¤³à¥‡ %s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s %s चà¥à¤¯à¤¾ डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€à¤œ पूरà¥à¤£ करते, परंतॠआपलà¥à¤¯à¤¾ पà¥à¤°à¤£à¤¾à¤²à¥€à¤µà¤° ठेवणà¥à¤¯à¤¾à¤¤ येईल" #~ msgid "No need to install %s" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥à¤¯à¤¾à¤šà¥€ गरज नाही" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "%s चà¥à¤¯à¤¾ डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€à¤œ पूरà¥à¤£ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ %s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करू शकत नाही" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "%s चà¥à¤¯à¤¾ डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€à¤œ पूरà¥à¤£ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ %s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करू शकत नाही" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणार नाही कारण ते अजून आवशà¥à¤¯à¤• आहे" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s %s ला बाजूला टाकते, परंतॠ%s पà¥à¤¸à¤¤à¤¾ येत नाही कारण ते लॉकà¥à¤¡ आहे" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करता येऊ शकत नाही कारण ते विवादासà¥à¤ªà¤¦ आहे" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करता येणà¥à¤¯à¤¾à¤¸à¤¾à¤°à¤–े नाही कारण तà¥à¤¯à¤¾à¤šà¥‡ %s शी पटत नाही" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "%s चे अपगà¥à¤°à¥‡à¤¡à¤¿à¤‚ग करतांना %s साठी %s ची गरज" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s गरज %s चà¥à¤•वत आहे" #~ msgid ", Action: " #~ msgstr "कृती" #~ msgid ", Trigger: " #~ msgstr "टà¥à¤°à¤¿à¤—र" #~ msgid "package" #~ msgstr "पॅकेज" #~ msgid "selection" #~ msgstr "निवड" #~ msgid "pattern" #~ msgstr "नमà¥à¤¨à¤¾" #~ msgid "product" #~ msgstr "उतà¥à¤ªà¤¾à¤¦à¤¨" #~ msgid "patch" #~ msgstr "पॅच" #~ msgid "script" #~ msgstr "सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ" #~ msgid "message" #~ msgstr "संदेश" #~ msgid "atom" #~ msgstr "अणू (अटम)" #~ msgid "system" #~ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€" #~ msgid "Resolvable" #~ msgstr "रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤²" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "हा रिà¤à¥‹à¤²à¥à¤¯à¥‚शनचा पà¥à¤°à¤¯à¤¤à¥à¤¨ अवैध असलà¥à¤¯à¤¾à¤šà¥€ खूण करत आहे" #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "रिà¤à¤¼à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤¬à¤² %s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥à¤¯à¤¾à¤¸à¤¾à¤°à¤–ा नसलà¥à¤¯à¤¾à¤šà¥€ खूण करत आहे" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणार आहे, परंतॠडिपेनà¥à¤¡à¤¨à¥à¤¸à¥€ समसà¥à¤¯à¤¾à¤‚मà¥à¤³à¥‡ हे शकà¥à¤¯ नाही" #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही कारण आधीच तà¥à¤¯à¤¾à¤µà¤° असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥à¤¯à¤¾à¤šà¥€ गरज असलà¥à¤¯à¤¾à¤šà¥€ खूण केलेली " #~ "आहे" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही, कारण ते या पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ लागू होत नाही" #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करॠशकत नाही, कारण आधीच तà¥à¤¯à¤¾à¤µà¤° असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥à¤¯à¤¾à¤šà¥€ गरज असलà¥à¤¯à¤¾à¤šà¥€ खूण " #~ "केलेली आहे " #~ msgid "This would invalidate %s." #~ msgstr "हे %s अवैध करेल" #~ msgid "Establishing %s" #~ msgstr "%s पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करत आहे" #~ msgid "Installing %s" #~ msgstr "%s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करत आहे" #~ msgid "Updating %s to %s" #~ msgstr "%s ते %s अपडेट करत आहे" #, fuzzy #~ msgid "Skipping %s: already installed" #~ msgstr "%s वगळत आहेः %s याआधीच सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ आहे" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "%s चे परà¥à¤¯à¤¾à¤¯à¥€ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ पà¥à¤°à¤¦à¤¾à¤¤à¤¾ नाहीत" #~ msgid "for %s" #~ msgstr "%s करिता" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "%s काढून टाकणे शकà¥à¤¯ नसलà¥à¤¯à¤¾à¤šà¥‡ टाळणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ %sला अपगà¥à¤°à¥‡à¤¡ करा" #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠते असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणार आहे." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠतà¥à¤¯à¤¾ %s ची दà¥à¤¸à¤°à¥€ आवृतà¥à¤¤à¥€ आधीच सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ आहे." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠते सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥à¤¯à¤¾à¤œà¥‹à¤—े नाही. अधिक माहितीसाठी ते सà¥à¤µà¤¤à¤ƒà¤¹à¥‚नच सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ " #~ "करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा" #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠतà¥à¤¯à¤¾à¤²à¤¾ कà¥à¤²à¥à¤ª आहे " #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠते ठेवणà¥à¤¯à¤¾à¤¤ येणार आहे." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s %s पà¥à¤°à¤µà¤¤à¥‡, परंतॠतà¥à¤¯à¤¾à¤šà¥‡ दà¥à¤¸à¤°à¥‡ सà¥à¤¥à¤¾à¤ªà¤¤à¥à¤¯ आहे." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "%s साठी %s ची गरज पूरà¥à¤£ करॠशकत नाही" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "दà¥à¤¸à¤°à¥à¤¯à¤¾ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणारà¥à¤¯à¤¾ रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤²à¥à¤¬à¤²à¤¾ %s ची गरज आहे, तà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ तà¥à¤¯à¤¾à¤šà¥€ लिंक जाणार नाही" #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "दà¥à¤¸à¤°à¥à¤¯à¤¾ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणारà¥à¤¯à¤¾ रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤²à¥à¤¬à¤²à¤¾ %s ची गरज आहे, तà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ तà¥à¤¯à¤¾à¤šà¥€ लिंक जाणार नाही" #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "%s (%s) विषयीचà¥à¤¯à¤¾ वादामà¥à¤³à¥‡ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणारे %s काढून टाकणे आवशà¥à¤¯à¤• आहे" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "%s वरील विवादावरà¥à¤¨ %s असà¥à¤¥à¤¾à¤ªà¤¿à¤¤ असलà¥à¤¯à¤¾à¤šà¥€ खूण" #~ msgid "from %s" #~ msgstr "%s वरà¥à¤¨" #~ msgid " Error!" #~ msgstr "चूक!" #~ msgid " Important!" #~ msgstr "महतà¥à¤µà¤¾à¤šà¥‡!" #~ msgid "%s depended on %s" #~ msgstr "%s वर %s अवलंबून" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s ला %s ची गरज आहे" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s ला %s ची गरज आहे" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s चà¥à¤¯à¤¾ जागी %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s ला %s ची गरज आहे" #~ msgid "%s part of %s" #~ msgstr "%s हा %s चा भाग आहे" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s ला %s ची गरज आहे" #~ msgid "Unable to parse Url authority" #~ msgstr "Url अथॉरिटीचा संबंध सांगणे अशकà¥à¤¯" #~ msgid "Ignore this requirement generally" #~ msgstr "सरà¥à¤µà¤¸à¤¾à¤§à¤¾à¤°à¤£à¤ªà¤£à¥‡ या गरजेकडे दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "दà¥à¤¸à¤°à¥à¤¯à¤¾ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होणारà¥à¤¯à¤¾ रिà¤à¥‰à¤²à¥à¤µà¥à¤¹à¥‡à¤²à¥à¤¬à¤²à¤¾ %s ची गरज आहे, तà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ तà¥à¤¯à¤¾à¤šà¥€ लिंक जाणार नाही" #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "अपडेट सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आवशà¥à¤¯à¤• फाईल निरà¥à¤®à¤¾à¤£ करॠशकत नाही" #~ msgid "Unable to restore all sources." #~ msgstr "सरà¥à¤µ सà¥à¤°à¥‹à¤¤ पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणे अशकà¥à¤¯" #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "किमान à¤à¤•ा सà¥à¤°à¥‹à¤¤à¤¾à¤šà¥€ आधीच नोंदणी आहे, साठवलेले सà¥à¤°à¥‹à¤¤ पà¥à¤¨à¥à¤¹à¤¾ साठवता येऊ शकत नाहीत" #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "%s चà¥à¤¯à¤¾ डिपेनà¥à¤¡à¤¨à¥à¤¸à¥€à¤œ पूरà¥à¤£ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ %s सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ होऊ शकत नाही " #~ msgid "%s dependend on %s" #~ msgstr "%s वर %s अवलंबून" #~ msgid "Reading index files" #~ msgstr "इंडेकà¥à¤¸ फाईलà¥à¤¸ वाचत आहे" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€à¤šà¥€ repomd.xml फाईल सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ तपासणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€." #~ msgid "Reading product from %s" #~ msgstr "%s वरून पà¥à¤°à¥‰à¤¡à¤•à¥à¤Ÿ वाचत आहे" #~ msgid "Reading filelist from %s" #~ msgstr "%s वरून फाईलसूची वाचत आहे" #~ msgid "Reading packages from %s" #~ msgstr "%s वरून पॅकेजेस वाचत आहे" #~ msgid "Reading selection from %s" #~ msgstr "%s वरून सिलेकà¥à¤¶à¤¨ वाचत आहे" #~ msgid "Reading pattern from %s" #~ msgstr "%s वरून नमà¥à¤¨à¤¾ वाचत आहे" #~ msgid "Reading patches index %s" #~ msgstr "%s वरून पॅच वाचत आहे" #~ msgid "Reading patch %s" #~ msgstr "पॅच %s वाचत आहे " #~ msgid "The script file failed the checksum test." #~ msgstr "सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ फाईल चेकसम टेसà¥à¤Ÿà¤®à¤§à¥‡ अयशसà¥à¤µà¥€." #~ msgid "Reading packages file" #~ msgstr "पॅकेज फाईल वाचत आहे" #~ msgid "Reading translation: %s" #~ msgstr "भाषांतर वाचत आहे: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "पॅकेज %s à¤à¤•तà¥à¤°à¤¿à¤¤ तपासणीत अयशसà¥à¤µà¥€. आपणास ते पà¥à¤¨à¥à¤¹à¤¾ डाऊनलोड करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करायचा " #~ "आहे की सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ काढून टाकायची?" #~ msgid " miss checksum." #~ msgstr "मिस चेकसम" #~ msgid " fails checksum verification." #~ msgstr "चेकसम पडताळणी अयशसà¥à¤µà¥€" #~ msgid "Downloading %s" #~ msgstr "%s डाऊनलोड करत आहे" libzypp-17.7.0/po/nb.po000066400000000000000000003175471334444677500147160ustar00rootroot00000000000000# translation of zypp.po to norsk bokmÃ¥l # translation of zypp.po to # Norwegian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2002 SuSE GmbH. # Olav Pettershagen , 2006, 2007. # Rune Nordbøe Skillingstad , 2007. # Olav Pettershagen , 2008, 2009, 2013. # Olav P. , 2008. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2013-10-04 20:05+0200\n" "Last-Translator: Olav Pettershagen \n" "Language-Team: Norwegian BokmÃ¥l \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.5\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-unntak" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tvilsom type '%s' for %u byte-kontrollsum '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Ukjent land: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ingen kode" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "De forente arabiske emirater" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" # AM # fuzzy #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Argentina" # AN # fuzzy #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nederland" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktis" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS # fuzzy #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerika, Nord" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Østerrike" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" # CU # fuzzy #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ã…land" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Aserbadjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia og Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" # BS # fuzzy #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetøya" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Hviterussland" # BZ # fuzzy #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belgia" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosøyene" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF # fuzzy #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Den sentralafrikanske republikken" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Sveits" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Elfenbenskysten" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookøyene" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # CU # fuzzy #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kapp Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Christmasøya" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kypros" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tsjekkia" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Tyskland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Den dominikanske republikk" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algerie" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estland" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Vest-Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spania" # ET # fuzzy #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Estonia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsøyene (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronesiaføderasjonen" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Færøyene" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankrike" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Frankrike (Europa)" # GH # fuzzy #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Storbritannia" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Fransk Guiana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH # fuzzy #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grønland" # GM # fuzzy #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Jamaica" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatorial-Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Hellas" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Sør-Georgia og De sørlige sandwichøyene" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" # GH # fuzzy #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heardøya og Mcdonaldøyene" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungarn" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isle of Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britisk territorium i Indiahavet" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Israel" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KZ # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisistan" # KH # fuzzy #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodsja" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komorene" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "St. Kitts og Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Nord-Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Sør-Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Caymanøyene" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kasakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "St. Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR # fuzzy #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litauen" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" # LR # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libya" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshalløyene" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonia" # ML # fuzzy #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Malta" # MM # fuzzy #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Panama" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Nord-Marianene" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR # fuzzy #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Lituaisk" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Lituaisk" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Malta" # MW # fuzzy #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malta" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mosambik" # GM # fuzzy #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" # NC # fuzzy #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Ny-Caledonia" # NG # fuzzy #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolkøyene" # NG # fuzzy #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nederland" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norge" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "New Zealand" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Fransk Polynesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Ny-Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filippinene" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polen" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre og Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestina" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russland" # RW # fuzzy #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi-Arabia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomonøyene" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellene" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sverige" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "St. Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard og Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO # fuzzy #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome og Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Serbia" # SZ # fuzzy #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Thailand" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- og Caicosøyene" # TD # fuzzy #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tsjad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Sørlige franske territorier" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadsjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Øst-Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Tyrkia" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad og Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" # UG # fuzzy #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Canada" # UM # fuzzy #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Amerikas forente stater" # US # fuzzy #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Amerikas forente stater" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Usbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikanstaten" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "St. Vincent og Grenadinene" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Jomfruøyene" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Jomfruøyene, USA" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis og Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sør-Afrika" # ZM # fuzzy #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Jamaica" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Inneholder" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Krever" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflikter" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "behold den foreldede pakken %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Anbefalt" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Forslag" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Forbedringer" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Tillegg" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Kunne ikke Ã¥pne pty: %s." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Kan ikke Ã¥pne pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Kan ikke kjøre chroot til '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Kan ikke kjøre chdir til «%s» fra chroot «%s» (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Kan ikke kjøre chdir til «%s» (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Kan ikke kjøre '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Kan ikke splitte (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Kommandoen ble avsluttet med status %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Kommandoen ble drept av signalet %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Kommandoen ble avsluttet med en ukjent feil." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Forsøkte Ã¥ importere ikke-eksisterende nøkkel %s til nøkkelring %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Kunne ikke importere offentlig nøkkel %1%" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Kunne ikke slette nøkkel." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Signaturfilen %s ikke funnet" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ukjent sprÃ¥k: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" # AZ #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhasisk" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Akinesisk" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-asiatisk (annet)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikansk" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" # AZ #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akansk" # AZ #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadisk" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albansk" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutisk" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonquianske sprÃ¥k" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Sør-altaisk" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharisk" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Engelsk, gammelengelsk (ca. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apache-sprÃ¥k" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabisk" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Arameisk" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonesisk" # AM # fuzzy #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armensk" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucaniansk" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "KunstsprÃ¥k (annet)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamesisk" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiansk" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapascanske sprÃ¥k" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australske sprÃ¥k" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarisk" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestasisk" # SZ # fuzzy #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" # MM # fuzzy #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Aserbadjansk" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke-sprÃ¥k" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkirisk" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinesisk" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskisk" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltisk (annet)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Hviterussisk" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengalsk" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber-sprÃ¥k (annet)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (annet)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnisk" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonsk" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginesisk" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarsk" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmesisk" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Mellomamerikansk indiansk (annet)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Karibisk" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalansk" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukasisk (annet)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltisk (annet)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tsjetsjensk" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kinesisk" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook-sjargong" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Kirkeslavisk" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Chamiske sprÃ¥k" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptisk" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Kornisk" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsikansk" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreolsk og pidgin, engelskbasert (annet)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreolsk og pidgin, franskbasert (annet)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreolsk og pidgin, portugisiskbasert (annet)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krim-tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreolsk og pidgin (annet)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kashubiansk" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitisk (annet)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tsjekkisk" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dansk" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slavisk (athapascansk)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidisk (annet)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Sorbiansk, nedre" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Mellomnederlandsk (ca. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nederlandsk" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egyptisk (gammelt)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamitisk" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engelsk" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Engelsk, mellomengelsk (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estisk" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Færøyisk" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fiji" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filippinsk" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finsk" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finsk-ugrisk (annet)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Fransk" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Fransk, mellomfransk (ca. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Fransk, gammelfransk (842-ca. 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisisk" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friuliansk" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" # GH # fuzzy #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germansk (annet)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgisk" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Tysk" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertesisk" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gælisk" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irsk" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galisisk" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Mansk" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Tysk, mellomhøytysk (ca. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Tysk, gammelhøytysk (ca. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotisk" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Gresk, gammelgresk (til 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Gresk, moderne (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitisk" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiiansk" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebraisk" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittitisk" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hirimotu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Sorbiansk, øvre" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungarsk" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandsk" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indisk (annet)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesisk" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoeuropeisk (annet)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingusj" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iransk (annet)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokesiske sprÃ¥k" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiensk" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanesisk" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japansk" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeopersisk" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeoarabisk" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmirsk" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kasakstansk" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardiansk" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (annet)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanesisk" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgisisk" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreansk" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeansk" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdisk" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laotisk" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latin" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvisk" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghiansk" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgansk" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litauisk" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgisk" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # GH # fuzzy #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya og Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonsk" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Maduresisk" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallisk" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalamsk" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesisk (annet)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" # MW # fuzzy #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malayisk" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" # MM # fuzzy #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irsk, mellomirsk (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Diverse sprÃ¥k" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (annet)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasisk" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltisk" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo-sprÃ¥k" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldovisk" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolsk" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Flere sprÃ¥k" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda-sprÃ¥k" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandesisk" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Maya-sprÃ¥k" # SY # fuzzy #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Nordamerikansk indiansk" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitansk" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, sør" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, nord" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Lavtysk" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalsk" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepalsk bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-kordofaniansk (annet)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueansk" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norsk nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norsk bokmÃ¥l" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norrønt, gammelnorrønt" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norsk" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho, nordlig" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubiske sprÃ¥k" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Klassisk Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Oksitansk (etter 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetisk" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Tyrkisk, ottomansk (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomianske sprÃ¥k" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuansk (annet)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinansk" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauansk" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persisk, gammelpersisk (ca. 600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persisk" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filippinsk (annet)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fønisisk" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polsk" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeiansk" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugisisk" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakrit-sprÃ¥k" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provensalsk, gammelprovensalsk (til 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongansk" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romansk (annet)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retoromansk" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romsk" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumensk" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russisk" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Søramerikansk indiansk (annet)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salisjanske sprÃ¥k" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritansk arameisk" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbisk" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliansk" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Skotsk" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatisk" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semittisk (annet)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irsk, gammelirsk (til 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "TegnsprÃ¥k" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouanske sprÃ¥k" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sinotibetansk (annet)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavisk (annet)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakisk" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovensk" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sørsamisk" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Nordsamisk" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Samiske sprÃ¥k (annet)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lulesamisk" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Enaresamisk" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoisk" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skoltesamisk" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdiansk" # SO # fuzzy #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalisk" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, sørlig" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spansk" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinsk" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilosaharansk (annet)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sudanesisk" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerisk" # SZ # fuzzy #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Svensk" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syrisk" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitisk" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (annet)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamilsk" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadsjikisk" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalogsk" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetansk" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" # NG # fuzzy #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingonsk" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamasjek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tongaøyene)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmensk" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi-sprÃ¥k" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Tyrkisk" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaisk (annet)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuviniansk" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritisk" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighursk" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainsk" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Udefinert" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Usbekistansk" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamesisk" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votisk" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakasjanske sprÃ¥k" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Walisisk" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbianske sprÃ¥k" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Wallonsk" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapesisk" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" # CU # fuzzy #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupik-sprÃ¥k" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Følgende handlinger vil bli utført:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(utløper ikke)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(utløper ikke)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(UTLØPT)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(utløper innen 24 t)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, fuzzy, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(utløper innen 24 t)" msgstr[1] "(utløper innen 24 t)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Kunnne ikke lese katalogen: '%s'." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Et pakkebrønnalias kan ikke begynne med punktum." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Tjenestealiaset kan ikke begynne med punktum." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Kan ikke Ã¥pne filen '%s' for Ã¥ skrive til den." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Ingen gyldige metadata funnet pÃ¥ spesifisert(e) nettadresse(r)" msgstr[1] "Ingen gyldige metadata funnet pÃ¥ spesifisert(e) nettadresse(r)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Kan ikke opprette %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Kan ikke opprette katalog for metadatamellomlager." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Bygger pakkebrønnmellomlager '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Kan ikke opprette mellomlager pÃ¥ %s - skrivebeskyttet." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Kunne ikke mellomlagre pakkebrønn (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Pakkebrønntypen er ugyldig" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Feil under lesing fra '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Ukjent feil ved lesing fra '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Legger til pakkebrønn '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ugyldig pakkebrønnfilnavn pÃ¥ '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Fjerner pakkebrønnen '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Finner ikke ut hvor pakkebrønnen er lagret." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Kan ikke slette '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Finner ikke ut hvor tjenesten er lagret." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Ugyldig LDAP URL-spørringsstreng" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ugyldig LDAP URL-spørringsparameter %s" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Kan ikke klone URL-objekt" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Ugyldig referanse til tomt URL-objekt" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Kan ikke analysere URL-komponenter" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "ukjent" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "støttes ikke" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "NivÃ¥ 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "NivÃ¥ 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "NivÃ¥ 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Kundekontrakt kreves" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "ugyldig" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "BrukerstøttenivÃ¥ er ikke angitt" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Produsenten tilbyr ikke støtte." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Problembeskrivelse, dvs. teknisk støtte som er utformet for Ã¥ gi informasjon " "om kompatibilitet, installasjonshjelp, brukerstøtte, kontinuerlig " "vedlikehold og grunnleggende feilsøking. NivÃ¥ 1-brukerstøtte omfatter ikke " "retting av produktfeil." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Problemidentifikasjon, dvs. teknisk støtte som er utformet for Ã¥ gjenskape " "kundens problemer, identifisere problemomrÃ¥det og løse problemer som ikke " "blir løst med NivÃ¥ 1-brukerstøtte." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Problemløsning, dvs. teknisk støtte som er utformet for Ã¥ løse sammensatte " "problemer ved hjelp av teknisk ekspertise, og som kan rette produktfeil som " "er identifisert med NivÃ¥ 2-brukerstøtte." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Brukerstøtte krever en tilleggskundekontrakt." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Ukjent brukerstøttevalg. Ingen beskrivelse tilgjengelig" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Systemadministrasjonen er lÃ¥st av programmet med pid %d (%s).\n" "Lukk dette programmet før du forsøker igjen." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historie:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Kan ikke Ã¥pne lÃ¥sefil: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Denne handlingen utføres allerede av et annet program." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ukjent samsvarsmodus '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Ukjent samsvarsmodus '%s' for mønsteret '%s'." #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Ugyldig regulært uttrykk '%s': tilbakemelding 'regcomp' %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ugyldig regulært uttrykk '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autentisering kreves for '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Besøk Novell kundesenter for Ã¥ kontrollere om din registrering er gyldig og " "ikke er utløpt." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Kunne ikke montere %s pÃ¥ %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Kunne ikke avmontere %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Ugyldig filnavn: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Mediet ble ikke Ã¥pnet da handlingen ble forsøkt utført '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Filen '%s' ikke funnet pÃ¥ medium '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Kan ikke lagre filen '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medium ikke tilkoblet" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Ugyldig tilkoblingspunkt for medier" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Initialisering av nedlasting (curl) mislyktes for '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systemunntak '%s' pÃ¥ mediet '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Stien '%s' pÃ¥ mediet '%s' er ikke en fil." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Stien '%s' pÃ¥ mediet '%s' er ikke en katalog." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Feilformatert URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Vertsnavn mangler i URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Filsystem mangler i URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destinasjon mangler i URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "URI-skjema som ikke støttes i '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Handlingen støttes ikke av mediet" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Nedlastingsfeil (curl) for '%s':\n" "Feilkode: %s\n" "Feilmelding: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Feil under definisjon av nedlastingsvalg (curl) for '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Mediekilde '%s' inneholder ikke ønsket medium" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Mediet '%s' benyttes av en annen prosess" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Kan ikke løse ut medium" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Kan ikke løse ut mediet '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Tilgang til '%s' avvist." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Tidsavbrudd under tilgang '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Plasseringen '%s' er midlertidig utilgjengelig." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL-sertifikatproblem, bekreft at CA-sertifikat er OK for '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "HTTP-autentiseringsmetode '%s' er ikke støttet" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Installer pakken 'lsof' først." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Nødvendig attributt '%s' mangler." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Én eller begge attributtene '%s' eller '%s' kreves." #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr " kjøring mislyktes" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Det ser ut til at pakken %s har blitt skadet under overføring. Vil du prøve " "Ã¥ laste den ned pÃ¥ nytt?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Kunne ikke hente pakken %s. Vil du førsøke Ã¥ hente den pÃ¥ nytt?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm-kontroll mislyktes." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm mislyktes." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "ressurstypen VAR1 støtter ikke funksjonen 'vis endringer'" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Kan ikke hente filen '%s' i pakkebrønnen '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Ingen nettadresse i pakkebrønn." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Kan ikke opprette sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ignorer noen avhengigheter selv om %s ikke vil fungere" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "ignorer generelt noen avhengigheter" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s tilhører ikke en pakkebrønn for distribusjonsoppgradering" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s har foreldet arkitektur" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problem med den installerte pakken %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "kommandokonflikter" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "en konflikt" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "ingenting inneholder den nødvendige %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Har du aktivert alle nødvendige pakkebrønner?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "pakken %s finnes ikke" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "forespørselen støttes ikke" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s er beskyttet av systemet, og kan ikke slettes." #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s kan ikke installeres" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "ingenting inneholder %s som kreves av %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "kan ikke installere bÃ¥de %s og %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s er i konflikt med %s fra %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s foreldede pakker %s fra %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "installert %s foreldede %s fra %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "løsningen %s er i konflikt med %s som den selv inneholder" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s krever %s, men denne nødvendige filen finnes ikke" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "slettede leverandører: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "uinstallerbare nødvendige pakker: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "uinstallerbare nødvendige pakker: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "Ikke installer %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "behold %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "ikke forby installasjon av %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Denne kommandoen vil skade systemet!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorer advarsel om skadet system" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "ikke be om Ã¥ installere en nødvendig pakke som gir %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "ikke be om Ã¥ slette alle nødvendige pakker som gir %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "ikke installer nyeste versjon av %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "behold %s selv om arkitekturen er feil" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "installer %s selv om arkitekturen ikke er riktig" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "behold den foreldede pakken %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "installer %s fra deaktivert pakkebrønn" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "nedgradering av %s til %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "Arkitekturendring fra %s til %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "installer %s (med produsentendring)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "%s erstattes av %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "avinstallasjon av %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " kjørt" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " kjøring mislyktes" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s allerede kjørt som %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " kjøring ikke utført under avbrudd" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Feil ved sending av melding om oppdatering." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Melding om ny oppdatering" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Installasjonen er avbrutt som angitt." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Beklager, men denne versjonen av libzypp er kompilert uten HAL-støtte." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext ikke tilkoblet" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive ikke initialisert" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume ikke initialisert" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Kan ikke opprette dbus-tilkobling" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Kan ikke opprette libhal-kontekst" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Kan ikke angi dbus-tilkobling" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Kan ikke initialisere HAL-kontekst, kjører ikke hald?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Ikke en CD-ROM-stasjon" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM mislyktes: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Kunne ikke importere offentlig nøkkel %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Kunne ikke fjerne offentlig nøkkel %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Endrede konfigurasjonsfiler for %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm lagret %s som %s, men det var umulig Ã¥ finne noen forskjell" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm lagret %s som %s.\n" "Her er de 25 første avvikende linjene:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm opprettet %s som %s, men det var umulig Ã¥ finne noen forskjell" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm opprettet %s som %s.\n" "Her er de 25 første avvikende linjene:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Flere rpm-resultater" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "opprettet sikkerhetskopi %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Signaturfilen %s ikke funnet" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Signaturfilen %s ikke funnet" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Signaturfilen %s ikke funnet" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Kan ikke initialisere muteksattributter" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Kan ikke angi rekursive muteksattributter" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Kan ikke initialisere rekursiv muteks" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Kan ikke oppnÃ¥ mutekslÃ¥s" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Kan ikke frigi mutekslÃ¥s" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Adressestrategi tillater ikke %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ugyldig %s komponent %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ugyldig %s komponent" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Analyse av spørringsstreng støttes ikke for denne URL-en" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Adressestrategi er en obligatorisk komponent" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ugyldig adressestrategi %s" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Adressestrategi tillater ikke brukernavn" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Adressestrategi tillater ikke passord" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Adressestrategi krever en vertskomponent" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Adressestrategi tillater ikke en vertskomponent" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ugyldig vertskomponent %s" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Adressestrategi tillater ikke port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ugyldig portkomponent %s" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Adressestrategi krever banenavn" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relativ sti ikke tillatt hvis autoritet finnes" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Kodet streng inneholder nullbyte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ugyldig skilletegn for deling av parametermatrise" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ugyldig skilletegn for deling av parametertilordning" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ugyldig skilletegn for sammenføyning av parametermatrise" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Kunne ikke importere offentlig nøkkel fra filen %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Kunne ikke fjerne offentlig nøkkel %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Kan ikke finne noen tilgjengelig loop-enhet for Ã¥ montere diskbildefilen " #~ "fra '%s'" #~ msgid "do not keep %s installed" #~ msgstr "ikke behold %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Kan ikke opprette den offentlige nøkkelen %s fra %s nøkkelringen for " #~ "filen %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Initialisering av nedlasting (Metalink curl) mislyktes for '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Nedlastingsfeil (curl) for '%s':\n" #~ "Feilkode: %s\n" #~ "Feilmelding: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Nedlasting avbrutt %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Nedlasting avbrutt av bruker" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Det oppstod en feil under definisjon av nedlastingsvalg (metalink curl) " #~ "for '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Kunne ikke laste ned %s fra %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia og Montenegro" #~ msgid "Unknown Distribution" #~ msgstr "Ukjent distribusjon" #~| msgid "Ignore some dependencies of %s" #~ msgid "ignore some dependencies of %s" #~ msgstr "ignorer noen avhengigheter for '%s'" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har ingen kontrollsum.\n" #~ "Vil du bruke filen likevel?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s bestod ikke integritetskontroll med følgende nøkkel:\n" #~ "%s|%s|%s\n" #~ " Vil du bruke filen likevel?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har en ukjent kontrollsum \n" #~ ".Forventet %s, men finner %s\n" #~ " Vil du bruke filen likevel?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har en ukjent kontrollsum %s.\n" #~ "Vil du bruke filen likevel?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Filen %s er ikke signert.\n" #~ "Vil du bruke den likevel?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s er signert med en ukjent nøkkel:\n" #~ "%s|%s|%s\n" #~ " Vil du bruke filen likevel?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "UpÃ¥litelig nøkkel funnet:\n" #~ "%s|%s|%s\n" #~ " Skal nøkkelen klareres likevel?" #~ msgid "%s remove failed" #~ msgstr "%s avinstallasjon mislyktes" #~ msgid "Invalid user name or password." #~ msgstr "Ugyldig brukernavn eller passord." #~ msgid "rpm output:" #~ msgstr "rpm-resultat:" libzypp-17.7.0/po/nl.po000066400000000000000000003242641334444677500147220ustar00rootroot00000000000000# translation of zypp.nl.po to Dutch # Dutch message file for YaST 2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999, 2000, 2001 SuSE GmbH. # # A.S. Kerkmeester , 1999, 2000, 2001. # FAX-Translations , 2000. # Karl Eichwalder , 1999, 2000. # Martin Lohner , 2000. # peter@sybex.nl, 2000. # Rinse de Vries , 2006, 2007, 2008. # Freek de Kruijf , 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015. msgid "" msgstr "" "Project-Id-Version: zypp.nl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-04 12:26+0000\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch " "\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-uitzondering" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Twijfelachtig type '%s' voor %u bytes controlesom '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Onbekend land: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Geen code" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Verenigde Arabische Emiraten" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua en Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanië" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenië" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nederlandse Antillen" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:80 #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarctica" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentinië" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikaans-Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Oostenrijk" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australië" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ã…land" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbeidzjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnië en Herzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "België" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarije" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazilië" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahama's" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouveteiland" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Wit-Rusland" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Cocoseilanden" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Centraal Afrikaanse Republiek" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Zwitserland" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Ivoorkust" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookeilanden" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chili" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kameroen" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kaapverdië" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Christmaseiland" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cyprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tsjechië" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Duitsland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Denemarken" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominicaanse Republiek" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algerije" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estland" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypte" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Westelijke Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanje" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Ethiopië" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandeilanden" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federale staten van Micronesia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faeröer" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankrijk" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitaans Frankrijk" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Verenigd Koninkrijk" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgië" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Frans-Guyana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinee" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Equatoriaal-Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Griekenland" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Zuid-Georgia en de Zuidelijke Sandwicheilanden" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinee-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard en McDonaldeilanden" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatië" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haïti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hongarije" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesië" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Ierland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israël" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Man (eiland)" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Brits Indische Oceaanterritorium" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "IJsland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italië" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanië" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgizië" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodja" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoren" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts en Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Noord-Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Zuid-Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Koeweit" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kaaimaneilanden" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazachstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Democratische Volksrepubliek Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Sint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litouwen" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letland" # ../../db/printers.ycp.noloc:1400 #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libië" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavië" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Sint-Maarten" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshalleilanden" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonië" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolië" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macau" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Noordelijke Marianen" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritanië" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Malediven" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Maleisië" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibië" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nieuw-Caledonië" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk (eiland)" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nederland" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noorwegen" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nieuw-Zeeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Frans-Polynesië" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papoea-Nieuw-Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipijnen" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polen" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint-Pierre en Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestijns Gebied" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Roemenië" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Servië" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russische Federatie" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saoedi-Arabië" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salomonseilanden" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellen" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Soedan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Zweden" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sint-Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenië" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard en Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slowakije" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalië" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome en Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syrië" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- en Caicoseilanden" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tsjaad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Frans Zuidelijke Gebieden" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadzjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunesië" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Oost-Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkije" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad en Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Oekraïne" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Oeganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Kleine afgelegen eilanden van de Verenigde Staten" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Verenigde Staten" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Oezbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Staat Vaticaanstad" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Sint Vincent en de Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britse Maagdeneilanden" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Amerikaanse Maagdeneilanden" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:82 #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis en Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Zuid-Afrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Levert" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Vereisten" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Vereist" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "In conflict met" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Verouderde onderdelen" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Beveelt aan" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Suggereert" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Verbetert" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Vult aan" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Kan pty (%s) niet openen." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Kan pipe (%s) niet openen." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Kan geen chroot doen naar '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Kan geen chdir naar '%s' doen binnen chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Kan geen chdir doen naar '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Kan '%s' niet uitvoeren (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Kan geen fork (%s) uitvoeren." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Opdracht beëindigd met status %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Opdracht is gestopt door signaal %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Opdracht beëindigd met onbekende fout." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" "Er is een poging gedaan om een niet-bestaande sleutel %s te importeren in " "sleutelring %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Importeren van sleutel is mislukt." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Verwijderen van sleutel is mislukt." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Handtekeningbestand %s niet gevonden" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Onbekende taal: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar, Hamitisch" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abchazisch" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinees" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acholi" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adygees" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Aziatisch (overig)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Aino" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akaans" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadiaans" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanees" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleuts" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonquian-talen" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Zuid-Altai" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amhaars, Amharisch" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Engels, Oud (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apache-talen" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabisch" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramees" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonees" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeens" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucaniaans" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Kunstmatig (overig)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamees, Assami" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturisch" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapascan-talen" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australische talen" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaars, Awari" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestisch" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azeri, Azerbeidzjaans" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke-talen" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Basjkiers, Basjkirisch" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Balutsji, Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinees" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskisch" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Balinees" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltisch (overig)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Wit-Russisch" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengaals" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbers (overig)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (overig)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnisch" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretons, Bretoens" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesië)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Boeriaats" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginees" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgaars" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmees" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Centraal-Amerikaans Indiaans (overig)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Caraïbisch" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalaans" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukasisch (overig)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltisch (overig)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Tsjibtsja" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tsjetsjeens" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinees" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook-jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyaans" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Kerkslavisch" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Tsjoevasjisch" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Chamische talen" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptisch" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corsicaans" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creools en Pidgin, op basis van Engels (overig)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creools en Pidgin, op basis van Frans (overig)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creools en Pidgin, op basis van Portugees (overig)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" # /usr/lib/YaST2/clients/lan_dns.ycp:87 # /usr/lib/YaST2/clients/lan_dns.ycp:87 #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krim-Tataars" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creools en Pidgin (overig)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kasjoebisch" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cusjitisch (overig)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tsjechisch" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Deens" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slavisch (Athapascaans)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiaans (overig)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Nedersorbisch" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Nederlands, middel (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nederlands" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efikisch" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egyptisch (Oud)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamitisch" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engels" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Engels, Middel (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Ests" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faeröers" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijisch" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipijns" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Fins" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fins-Oegrisch (overig)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Frans" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Frans, Middel (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Frans, Oud (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Fries" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulisch" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germaans (overig)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgisch" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Duits" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertees" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Iers" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galicisch" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Duits, Middel Hoog (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Duits, Oud Hoog (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gothisch" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grieks, Oud (tot 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grieks, Modern (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haïtiaans" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiiaans" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreeuws" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligainoons" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himatsjali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittitisch" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Oppersorbisch" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hongaars" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Ibaans" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "IJslands" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sitsjuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indisch (overig)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesisch" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-Europees (overig)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingoesjetisch" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraans (overig)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Iroquoian-talen" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiaans" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javaans" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojbaans" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japans" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeo-Perzisch" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeo-Arabisch" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Katsjin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Groenlands" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada, Kanara, Kanarees" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kasjmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazachs" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardisch, Tsjerkessisch" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisaans (overig)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanees" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Gikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgizisch" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Congo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreaans" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeaans" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karatsjay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Koerdisch" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenaïsch" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laotiaans" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latijn" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Lets" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghiaans" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgs" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litouws" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgs" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenia en Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedonisch" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurees" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahisch" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallees" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesisch (overig)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Maleis" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksja" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandars" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Iers, Middel (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Diverse talen" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (overig)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Plateaumalagasi" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltees" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo-talen" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavisch" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongools" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossisch" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Meerdere talen" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda-talen" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandees" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Maya-talen" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Noord-Amerikaans Indiaans" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitaans" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, Zuid" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, Noord" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Zuid-Duits" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalees" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Niaas" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofaniaans (overig)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueaans" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Noors Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Nynorsk en Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Noors, Oud" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Noors" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Noord-Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubische talen" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Klassiek Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankools" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitaans (na 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osaags" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetisch, Osseets" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turks, Ottomaans (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Otomi-talen" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuaans (overig)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinaans" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pehlevi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Punjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauaans" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Perzisch, Oud (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Perzisch" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipijns (overig)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Foenisisch" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Pools" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeiaans" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugees" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakrit-talen" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provençaals, oud (tot 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Poesjto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongaans" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romaans (overig)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retoromaans" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Roma" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Roemeens" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russisch" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Jakoets" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Zuid-Amerikaans Indiaans (overig)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salishan-talen" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritaans Aramees" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskriet" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasaaks" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Servisch" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliaans" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Schots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatisch" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Sulkoeps" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitisch (overig)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Iers, Oud (tot 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Gebarentalen" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Sjaans" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singalees" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouaanse talen" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetaans (overig)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavisch (overig)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slowaaks" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Sloveens" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Zuid-Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Noord-Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Sami-talen (overig)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoaans" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdiaans" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalisch" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhaïsch" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Zuid-Sothaans" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spaans" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardinisch" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Saharaans (overig)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Soendanees" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerisch" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Zweeds" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syrisch" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitisch" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (overig)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tataars" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadzjieks" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetaans" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamasjek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tonga-eilanden)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimsjiaans" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmeens" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Tupi-talen" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turks" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaïsch (overig)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuviniaans" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurts" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritisch" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Oeigoers, Oejgoers" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Oekraïens" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Onbepaald" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Oezbeeks" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamees" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votisch" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakashan-talen" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Wasjo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Welsh" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbische talen" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Waals" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapees" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jiddisch" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupik-talen" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "De volgende acties worden uitgevoerd:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "verloopt niet" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "verlopen op: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "verloopt op: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(verloopt niet)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(VERLOPEN)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(verloopt binnen 24 uur)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(verloopt binnen %d dag)" msgstr[1] "(verloopt binnen %d dagen)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Zoeken naar gpg-sleutel-ID %1% in cache %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Zoeken naar gpg-sleutel-ID %1% in opslagruimte %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "Opslagruimte %1% definieert geen extra URL's met 'gpgkey='." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Kan map '%1%' van opslagruimte niet lezen: Toegang geweigerd" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Het lezen van map '%s' is mislukt" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Kan opslagruimtebestand '%1%' niet lezen: Toegang geweigerd" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "De alias van van een opslagruimte mag niet met een punt (.) beginnen." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "De alias van een service mag niet met een punt (.) beginnen." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Kan bestand '%s' niet openen voor schrijven." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Onbekende service '%1%': Verweesde opslagruimte '%2%' verwijderen" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Geen geldige metagegevens op de gespecificeerde URL gevonden" msgstr[1] "Geen geldige metagegevens op de gespecificeerde URL's gevonden" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Kan %s niet aanmaken" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Kan map voor metadata-cache niet aanmaken." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Cache van opslagruimte '%s' wordt gebouwd" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Kan cache in %s niet aanmaken - geen toegangsrechten." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Kan opslagruimte (%d) niet opslaan in de cache." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Niet behandeld type opslagruimte" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Fout bij het lezen van '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Onbekende fout bij lezen van '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Opslagruimte '%s' wordt toegevoegd" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ongeldige naam van opslagruimtebestand bij '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Opslagruimte '%s' wordt verwijderd" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Kan niet achterhalen waar opslagruimte is opgeslagen." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Kan '%s' niet verwijderen" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Kan er niet achter komen waar de service is opgeslagen." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Ongeldige LDAP-URL-querytekenreeks" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ongeldige LDAP-URL-queryparameter '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Kan URL-object niet klonen" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Ongeldige lege URL-objectverwijzing" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Kan URL-componenten niet analyseren" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "onbekend" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "niet ondersteund" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Niveau 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Niveau 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Niveau 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Aanvullend gebruikerscontract noodzakelijk" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "ongeldig" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Het ondersteuningsniveau is niet gedefinieerd" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "De verkoper levert geen ondersteuning." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Probleembepaling, wat technische ondersteuning betekent die is ontworpen " "voor het leveren van informatie over compatibiliteit, hulp bij installatie, " "ondersteuning bij gebruik, constant onderhoud en algemene " "probleemoplossing.. Niveau 1 ondersteuning is niet bedoeld om fouten in " "producten te verbeteren." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Probleemisolatie, wat technische ondersteuning betekent voor reproduceren " "van problemen bij klanten, probleemgebieden bepalen en oplossingen leveren " "voor problemen die niet opgelost worden door Niveau 1 ondersteuning." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Probleemoplossing, wat technische ondersteuning betekent voor het oplossen " "van complexe problemen door engineering in te schakelen bij het oplossen van " "productfouten die geïdentificeerd zijn in Niveau 2 ondersteuning." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Een aanvullend gebruikerscontract is noodzakelijk voor het verkrijgen van " "ondersteuning." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Onbekende ondersteuningsoptie. Beschrijving niet beschikbaar" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Systeembeheer is geblokkeerd door de toepassing met pid %d (%s).\n" "Sluit deze toepassing voordat u het opnieuw probeert." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Geschiedenis:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Kan het blokkeringsbestand niet openen: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Deze actie is al bezig vanuit een ander programma." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Onbekende overeenkomstmodus '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Onbekende overeenkomstmodus '%s' voor patroon '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Ongeldige reguliere expressie '%s': regcomp heeft %d geretourneerd" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ongeldige reguliere expressie '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Authenticatie vereist voor '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Ga naar het Novell Customer Center om te controleren of uw registratie " "geldig is en niet is verlopen." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Kan %s niet koppelen aan %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Ontkoppelen van %s is mislukt" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Onjuiste bestandsnaam: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Medium kan niet worden geopend wanneer '%s' wordt uitgevoerd." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Bestand '%s' niet gevonden op medium '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Kan niet naar bestand '%s' schrijven." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Medium is niet gekoppeld" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Beschadigd koppelpunt van medium" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Initialiseren van downloaden (curl) is mislukt voor '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systeemuitzondering '%s' op medium '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Pad '%s' op medium '%s' is geen bestand." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Pad '%s' op medium '%s' is geen map." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Onjuiste URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Lege hostnaam in URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Leeg bestandssysteem in URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Lege bestemming in URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Niet-ondersteund URI-schema in '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Bewerking niet ondersteund door medium" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Fout bij downloaden (curl) '%s':\n" "Foutcode: %s\n" "Foutbericht: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Fout bij het instellen downloadopties (curl) voor '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Mediumbron '%s' bevat niet het gewenste medium" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Medium '%s' wordt door een andere instantie gebruikt" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Kan geen media uitwerpen" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Kan medium '%s' niet uitwerpen" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Toegang tot '%s' geweigerd." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Time-out overschreden bij toegang tot '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" "Gedownloade gegevens overtreffen de verwachte bestandsgrootte '%s' van '%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Locatie '%s' is tijdelijk niet toegankelijk." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL-certificaatprobleem, controleer of de CA-cert OK is voor '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Aanknooppunt aanmaken: Kan geen beschrijfbare map vinden om een aanknooppunt " "aan te maken" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Niet-ondersteunde HTTP-authenticatiemethode '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Eerst pakket 'lsof' installeren." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Vereist attribuut '%s' ontbreekt." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Een of beide kenmerken van '%s' of '%s' zijn vereist." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Verificatie van de ondertekening is mislukt" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Pakket %s lijkt beschadigd te zijn tijdens de overdracht. Wilt u het opnieuw " "ophalen?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Pakket %s niet gevonden. Wilt u dit opnieuw ophalen?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "controle van applydeltarpm is mislukt." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm mislukt." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Service-plug-in ondersteunt geen wijzigen van een attribuut." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Kan bestand '%s' niet leveren uit opslagruimte '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Geen URL in opslagruimte." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Bestand %1%\n" " van pakket\n" " %2%\n" " conflicteert met een bestand van pakket\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Bestand %1%\n" " van pakket\n" " %2%\n" " conflicteert met een bestand van de installatie van\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Bestand %1%\n" " van de installatie van\n" " %2%\n" " conflicteert met een bestand van pakket\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Bestand %1%\n" " van de installatie van\n" " %2%\n" " conflicteert met een bestand van de installatie van\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Bestand %1%\n" " van pakket\n" " %2%\n" " conflicteert met een bestand\n" " %3%\n" " van pakket\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Bestand %1%\n" " van pakket\n" " %2%\n" " conflicteert met een bestand\n" " %3%\n" " van de installatie van\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Bestand %1%\n" " van de installatie van\n" " %2%\n" " conflicteert met een bestand\n" " %3%\n" " van pakket\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Bestand %1%\n" " van de installatie van\n" " %2%\n" " conflicteert met een bestand\n" " %3%\n" " van de installatie van\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Kan sat-pool niet maken." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "%s afbreken door enige van zijn afhankelijkheden te negeren" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "negeer normaliter enige afhankelijkheden" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s behoort niet tot een opslagruimte voor distributie-upgrade" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s heeft een slechtere architectuur" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "probleem met geïnstalleerd pakket %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "conflicterende verzoeken" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "een afhankelijkheidsprobleem" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "Niets levert het gevraagde %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Hebt u alle vereiste opslagruimtes ingeschakeld?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "pakket %s bestaat niet" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "niet-ondersteund verzoek" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s wordt door het systeem geleverd en kan niet gewist worden" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s is niet geïnstalleerd" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "niets levert %s nodig door %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "kan %s en %s niet beide installeren" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s is in conflict met %s die geleverd is door %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s maakt %s verouderd en is geleverd door %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "geïnstalleerd %s maakt %s verouderd en is geleverd door %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "oplosser %s is in conflict met %s die geleverd is door zichzelf" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s vereist %s, maar aan deze eis kan niet voldaan worden" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "verwijderde providers: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "niet-installeerbare providers: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "niet-installeerbare providers: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "verwijder de vergrendeling om de verwijdering van %s toe te staan" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s niet installeren" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s behouden" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "verwijder de vergrendeling om de installatie van %s toe te staan" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Dit verzoek zal het systeem laten crashen." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "sla geen acht op de waarschuwing voor een gebroken systeem" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "vraag niet om een oplossingspakket die %s levert te installeren" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "vraag niet om alle oplossingspakketten die %s leveren te verwijderen" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "installeer de meest recente versie van %s niet" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s behouden ondanks de slechtere architectuur" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "%s installeren ondanks de slechtere architectuur" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "verouderde %s handhaven" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "%s installeren uit een uitgesloten opslagruimte" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "downgrade %s tot %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "architectuurverandering van %s naar %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "%s installeren (met wijziging van leverancier)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "vervanging van %s door %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "verwijderen van %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "%%posttrans script '%1%' wordt uitgevoerd" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "%posttrans scripts zijn uitgevoerd" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " uitgevoerd" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " uitvoeren is mislukt" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s is al uitgevoerd als %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " uitvoeren is overgeslagen tijdens afbreken" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Fout bij het zenden van een melding over een bijwerkbericht." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Bericht over een nieuw element voor bijwerken" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Installatie is afgebroken volgens de instructies." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Helaas, deze versie van libzypp is gebouwd zonder HAL-ondersteuning." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext is niet verbonden" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive is niet geïnitialiseerd" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume is niet geïnitialiseerd" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Kan de dbus-verbinding niet maken" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Kan libhal-context niet maken" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Kan dbus-verbinding niet instellen" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Kan HAL-context niet initialiseren, is hald niet actief?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Geen cd-rom-station" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM is mislukt: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Importeren van publieke sleutel %1% is mislukt" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Verwijderen van publieke sleutel %1% is mislukt" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Pakket is niet ondertekend!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Configuratiebestanden gewijzigd voor %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm heeft %s opgeslagen als %s, maar het was niet mogelijk om het verschil " "te bepalen" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm sloeg %s op als %s.\n" "Dit zijn de eerste 25 regels die verschillend zijn:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm maakte %s aan als %s, maar het was niet mogelijk om het verschil te " "achterhalen" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm maakt %s aan als %s.\n" "Dit zijn de eerste 25 regels die verschillen:\n" # /usr/lib/YaST2/clients/lan_inetd_custom.ycp:162 #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Aanvullende rpm-uitvoer" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "reservekopie %s aangemaakt" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Ondertekening is OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Onbekend type ondertekening" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Ondertekening klopt niet" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Ondertekening is OK, maar sleutel kan niet worden vertrouwd" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Handtekeningen van publieke sleutel zijn niet beschikbaar" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Bestand bestaat niet of ondertekening kan niet gecontroleerd worden" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Bestand heeft geen ondertekening" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Kan mutex-kenmerk niet initialiseren" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Kan recursief mutex-kenmerk niet instellen" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Kan recursieve mutex niet initialiseren" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Kan mutex-vergrendeling niet verkrijgen" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Kan mutex-vergrendeling niet ontgrendelen" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "%s is niet toegestaan in URL-schema" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ongeldige %s-component '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ongeldige %s-component" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Parseren van queryreeks wordt niet ondersteund voor deze URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL-schema is een vereiste component" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ongeldig URL-schema '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Gebruikersnaam is niet toegestaan in URL-schema" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Wachtwoord is niet toegestaan in URL-schema" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "URL-schema vereist hostcomponent" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Hostcomponent is niet toegestaan in URL-schema" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ongeldige hostcomponent '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Poort is niet toegestaan in URL-schema" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ongeldige poortcomponent '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "URL-schema vereist padnaam" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relatief pad is niet toegestaan als authority bestaat" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Gecodeerde reeks bevat een NUL byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ongeldig scheidingsteken voor splitsen parametermatrix" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ongeldig scheidingsteken voor splitsen parametertoewijzing" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ongeldig scheidingsteken voor samenvoegen parametermatrix" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Importeren van publieke sleutel uit bestand %s is mislukt: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Verwijderen van publieke sleutel %s is mislukt: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Kan geen beschikbaar lusapparaat vinden voor het koppelen van het " #~ "imagebestand van '%s'" #~ msgid "do not keep %s installed" #~ msgstr "houd %s niet geïnstalleerd" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Kan geen publieke sleutel %s uit %s sleutelring aanmaken naar bestand %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Download (Metalink curl) initialisatie mislukt voor '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Download (metalink curl) fout voor '%s':\n" #~ "Foutcode: %s\n" #~ "Foutboodschap: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Download onderbroken bij %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Download onderbroken door gebruiker" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "Fout bij het instellen downloadopties (metalink curl) voor '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Downloaden van %s op %s is mislukt" #~ msgid "Serbia and Montenegro" #~ msgstr "Servië en Montenegro" #~ msgid "Unknown Distribution" #~ msgstr "Onbekende distributie" #~ msgid "ignore some dependencies of %s" #~ msgstr "negeer enige afhankelijkheden van %s" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Bestand %s bevat geen checksum.\n" #~ "Wilt u het toch gebruiken?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Bestand %s voldoet niet aan integriteitscontrole door de volgende " #~ "sleutel:\n" #~ "%s|%s|%s\n" #~ " Wilt u het bestand toch gebruiken?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Bestand %s heeft een ongeldige checksum.\n" #~ "%s verwacht, %s gevonden\n" #~ "Wilt u het toch gebruiken?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Bestand %s heeft een onbekende checksum.%sWilt u het toch gebruiken?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Bestand %s is niet ondertekend.\n" #~ "Wilt u het toch gebruiken?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Bestand %s is ondertekend met een onbekende sleutel:\n" #~ "%s|%s|%s\n" #~ " Wilt u het bestand toch gebruiken?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Niet-vertrouwde sleutel gevonden:\n" #~ "%s|%s|%s\n" #~ " Sleutel vertrouwen?" libzypp-17.7.0/po/nn.po000066400000000000000000002641321334444677500147210ustar00rootroot00000000000000# @TITLE@ # Copyright (C) 2011, SUSE Linux GmbH, Nuremberg # This file is distributed under the same license as @PACKAGE@ package. FIRST # Karl Ove Hufthammer , 2015, 2017. msgid "" msgstr "" "Project-Id-Version: @PACKAGE@\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-03-09 22:04+0000\n" "Last-Translator: Karl Ove Hufthammer \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-unntak" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Ukjent land: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ingen kode" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Dei sameinte arabiske emirata" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Dei nederlandske Antillane" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikansk Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austerrike" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Aserbajdsjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia-Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetøya" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Kviterussland" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosøyane" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo-Brazzaville" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Den sentralafrikanske republikken" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Sveits" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Elfenbeinskysten" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookøyane" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kapp Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Christmasøya" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kypros" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tsjekkia" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Tyskland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Den dominikanske republikken" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algerie" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estland" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Vest-Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spania" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsøyane" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronesiaføderasjonen" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Færøyane" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankrike" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Storbritannia" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Fransk Guyana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grønland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatorial-Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Hellas" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungarn" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Det britiske territoriet i Indiahavet" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisistan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodsja" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komorane" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "St. Kitts og Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Caymanøyane" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kasakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "St. Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litauen" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marokko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshalløyane" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Nord-Marianane" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldivane" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mosambik" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Ny-Caledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolkøya" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nederland" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noreg" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Naurisk" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "New Zealand" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Fransk Polynesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Ny-Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filippinane" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polen" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint-Pierre-et-Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugual" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russland" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi-Arabia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salomonøyane" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellane" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sverige" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "St. Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard og Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé og Príncipe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- og Caicosøyane" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tsjad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Dei franske sørterritoria" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadsjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Tyrkia" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad og Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "USAs ytre småøyar" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "USA" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Usbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikanstaten" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Jomfruøyane (Storbritannia)" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Jomfruøyane (USA)" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sør-Afrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Krev" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ukjent sprÃ¥k: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhasisk" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Acehnesisk" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adygeisk" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afroasiatiske (andre)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadisk" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albansk" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutisk" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharisk" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabisk" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonsk" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armensk" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "KunstsprÃ¥k (andre)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assami" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturleonesisk" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarisk" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestisk" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Avadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Aserbajdsjansk" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Basjkirsk" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Balutsji" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskisk" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltisk (andre)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Kviterussisk" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbisk (andre)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (andre)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnisk" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonsk" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarsk" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmesisk" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalansk" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukasisk (andre)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltisk (andre)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tsjetsjensk" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kinesisk" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Kyrkjeslavisk" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Tsjuvasjisk" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptisk" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Kornisk" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsikansk" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tsjekkisk" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dansk" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidisk" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "LÃ¥gsorbisk" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nederlandsk" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engelsk" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estisk" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Færøysk" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijiansk" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finsk" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finsk-ugrisk" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Fransk" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulfulde" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germansk (andre)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgisk" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Tysk" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Kiribatisk" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gælisk" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irsk" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galisisk" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotisk" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Gammalgresk (fram til 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitisk" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebraisk" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hettittisk" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Høgsorbisk" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungarsk" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Ibo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandsk" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuittisk" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesisk" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoeuropeisk" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiensk" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanesisk" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japansk" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Grønlandsk" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kasjmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kasakhisk" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgisisk" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreansk" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdisk" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laotisk" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latin" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Latvisk" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litauisk" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxembourgsk" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya og Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonsk" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallesisk" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malayisk" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Gassisk" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltesisk" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Mandsju" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Rumensk (utdatert)" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolsk" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitansk" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "LÃ¥gtysk" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norsk (nynorsk)" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norrønt" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norsk" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Nordsotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Oksitansk (etter 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetisk" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persisk" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fønikisk" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polsk" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Ponapisk" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugisisk" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pashto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romansk (andre)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumensk" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russisk" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbisk" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliansk" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatisk" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkupisk" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semittisk (andre)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Gammalirsk (fram til 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "TeiknsprÃ¥k" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singalesisk" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-tibetansk (andre)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavisk (andre)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakisk" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovensk" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sørsamisk" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Nordsamisk" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lulesamisk" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Enaresamisk" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoansk" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skoltesamisk" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sørsotho" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spansk" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardisk" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanesisk" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumerisk" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Svensk" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitisk" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (andre)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatarisk" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadsjikisk" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetansk" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigré" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinja" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tongansk" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Setswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmensk" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Tyrkisk" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaisk (andre)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigurisk" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainsk" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Usbekisk" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamesisk" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Walisisk" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Vallonsk" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapesisk" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jiddisch" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Desse handlingane vert utførte:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Byggjer mellomlager for pakkebrønnen «%s»" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Fjernar pakkebrønnen «%s»" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ukjend samsvarsmodus «%s»" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Ukjend samsvarsmodus «%s» for mønsteret '%s'." #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Fann ikkje fila «%s» pÃ¥ mediet «%s»" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Ugyldig URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Installer pakken «lsof» først." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Fila %1%\n" " frÃ¥ pakken\n" " %2%\n" " er i konflikt med fil frÃ¥ pakken\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Fila %1%\n" " frÃ¥ pakken\n" " %2%\n" " er i konflikt med fil frÃ¥ installeringa av\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Fila %1%\n" " frÃ¥ installeringa av\n" " %2%\n" " er i konflikt med fil frÃ¥ pakken\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Fila %1%\n" " frÃ¥ installeringa av\n" " %2%\n" " er i konflikt med fil frÃ¥ installering av\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Fila %1%\n" " frÃ¥ pakken\n" " %2%\n" " er i konflikt med fila\n" " %3%\n" " frÃ¥ pakken\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Fila %1%\n" " frÃ¥ pakken\n" " %2%\n" " er i konflikt med fila\n" " %3%\n" " frÃ¥ installeringa av\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Fila %1%\n" " frÃ¥ installeringa av\n" " %2%\n" " er i konflikt med fila\n" " %3%\n" " frÃ¥ pakken\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Fila %1%\n" " frÃ¥ installeringa av\n" " %2%\n" " er i konflikt med fila\n" " %3%\n" " frÃ¥ installeringa av\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s er i konflikt med %s frÃ¥ %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "løysbare %s konfliktar med %s tilgjengeleg frÃ¥ seg sjølv" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Denne kommandoen vil skada systemet!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr "" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Melding om ny oppdatering" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" libzypp-17.7.0/po/pa.po000066400000000000000000004055161334444677500147110ustar00rootroot00000000000000# translation of zypp.pa.po to Panjabi # Punjabi message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2005 SUSE Linux Products GmbH. # Jaswinder Singh Phulewala # Kanwaljeet Singh Brar # # A S Alam , 2007. msgid "" msgstr "" "Project-Id-Version: zypp.pa\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2007-08-23 19:28+0530\n" "Last-Translator: A S Alam \n" "Language-Team: Panjabi \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: KBabel 1.11.4\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal ਅਪਵਾਦ" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "ਅਣਜਾਣ ਦੇਸ਼: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "ਕੋਡ ਨਹੀਂ" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "ਆਂਡੋਰਾ" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "ਸੰਯà©à¨•ਤ ਅਰਬ ਅਮੀਰਾਤ" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "ਅਫਗਾਨਿਸਤਾਨ" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "à¨à¨Ÿà©€à¨—à©à¨† ਅਤੇ ਬਾਰਮà©à¨¦à¨¾" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "ਅੰਗੂਲੀਆਂ" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "ਅਲਬੀਨਾ" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ਅਮਰੀਨੀਅਨ" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "ਨੀਂਦਰਲੈਂਡ à¨à¨‚ਟੀਲਸ" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "ਅੰਗੋਲਾ" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "à¨à¨Ÿà¨°à¨¾à¨Ÿà¨¿à¨•ਾ" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "ਅਰਜਨਟੀਨਾ" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ਅਮਰੀਕੀ ਸਮੋਨਾ" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ਆਸਟਰੀਆ" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ਅਸਟਰੇਲੀਆ" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "ਅਰੂਬਾ" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "ਅਲੈਂਡ ਟਾਪੂ" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "ਅਜ਼ਰਬਾਈਜ਼ਾਨ" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "ਬੋਸੀਨਾ ਅਤੇ ਹਰਜ਼ੀਗੋਵੀਨਾ" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "ਬਾਰਬਾਡਾਸ" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "ਬੰਗਲਾਦੇਸ਼" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "ਬੈਲਜੀਅਮ" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "ਬੂਪਕੀਨਾ ਫਾਸੋ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ਬà©à¨²à¨—ਾਰੀਆ" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "ਬਹਿਰਾਨ" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "ਬà©à¨°à©à¨¡à©€" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "ਬੀਨੀਨ" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "ਬਾਰਾਮੂਡਾ" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "ਬਰੂਨਈ ਡੇਰੂਸਲਾਮ" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "ਬੋਲੋਵੀਆ" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "ਬਰਾਜ਼ੀਲ" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "ਬਾਹਾਮਾਸ" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ਭà©à¨Ÿà¨¾à¨¨" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ਬà©à¨‰à¨µà©€à¨Ÿ ਟਾਪੂ" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "ਬੂਟਸਵਾਨਾ" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "ਬੇਲਾਰੂਸ" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "ਬਿਲੀਜ਼ੀ" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "ਕੇਨੈਡਾ" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "ਕੋਕੋਸ (ਕਿੱਲਿੰਗ) ਟਾਪੂ" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "ਕਾਂਗੋ" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "ਕੇਂਦਰੀ ਅਫ਼ਰੀਕੀ ਰਿਪਬਲਿਕ" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ਸਵਿਟਜ਼ਰਲੈਂਡ" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "ਕੋਟੀ ਡੀਵੋਈਰੀ" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ਕà©à©±à¨• ਟਾਪੂ" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ਚਿੱਲੀ" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "ਕੈਮਰੂਨ" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "ਚੀਨ" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "ਕੋਲੰਬੀਆ" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "ਕਾਸਟ ਰੀਕਾ" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "ਕਿਊਬਾ" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "ਕੇਪ ਵਾਰਡੀ" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "ਕਰਿਸਮਿਸ ਟਾਪੂ" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "ਕਿਊਰੂਸ" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ਚੈੱਕ ਗਣਰਾਜ" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ਜਰਮਨੀ" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "ਡਜੀਬੂਟੀ" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ਡੈਨਮਾਰਕ" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "ਡੋਮੀਨੀਆ" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ਡੋਮੀਨੀਆਨ ਗਣਰਾਜ਼" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "ਅਲਜੀਰੀਆ" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "à¨à¨•ਵੇਡਰ" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ਈਸਟੋਨੀਆ" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "ਮਿਸਰ" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "ਦੱਖਣੀ ਸਹਾਰਾ" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ਈਰਟੀਰਆ" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "ਸਪੇਨ" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "ਈਥੋਪੀਆ" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ਫਿਨਲੈਂਡ" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "ਫਿਜ਼ੀ" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ਫਾਕਲੈਂਡ ਟਾਪੂ (ਮਾਲਵੀਨਸ)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ਮਾਈਕਰੋਨਸੀਆ ਦੇ ਸੰਘੀ ਰਾਜ" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ਫਾਰੀਓ ਟਾਪੂ" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ਫਰਾਂਸ" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ਮੈਟਰੋਪਲੋਟਨ ਫਰਾਂਸ" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "ਗਾਬੋਨ" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "ਬਰਤਾਨੀਆ" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "ਗਰੀਨਾਡਾਆ" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ਜਾਰਜੀਆ" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ਫਰੈਂਚ ਗà©à¨†à¨¨à¨¾" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "ਜਰਮਨੀ" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "ਗਾਨਾ" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "ਗੀਬਰਾਲਟਰ" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ਗਰੀਨਲੈਂਡ" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ਗਾਬੀਆ" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ਗà©à¨ˆà¨¨à¨¾" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "ਗà©à¨†à¨¡à©€à¨²à©‚ਪੀ" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "ਭੂ-ਖੰਡੀ ਗà©à¨†à¨¨à¨¾" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ਗਰੀਸ" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "ਦੱਖਣੀ ਜਾਰਜੀਆ ਅਤੇ ਦੱਖਣੀ" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "ਗà©à¨†à¨Ÿà©‡à¨®à¨¾à¨²à¨¾" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "ਗà©à¨†à¨®" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ਗੂਈਨੀਆ" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ਗà©à¨†à¨¨à¨¾" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "ਹਾਂਗਕਾਂਗ" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "ਹਾਰਟਡ ਟਾਪੂ ਅਤੇ ਮੈਕਡਾਨਲਡ ਟਾਪੂ" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ਹਾਨਡੂਰਸ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ਕਰੋਟੀਆ" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "ਹਾਈਟੀ" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ਹੰਗਰੀ" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ਇੰਡੋਨੇਸੀਆ" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ਆਈਰਲੈਂਡ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "ਇਜ਼ਰਾਈਲ" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ਭਾਰਤ" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "ਬਰਤਾਨੀਵੀ ਭਾਰਤੀ ਮਹਾਂ-ਸਾਗਰ ਖੇਤਰ" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "ਇਰਾਕ" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "ਈਰਾਨ" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ਆਈਸਲੈਂਡ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ਇਟਲੀ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "ਜੈਮਾਈਕਾ" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ਜਾਰਡਨ" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ਜਾਪਾਨ" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "ਕੀਨੀਆ" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "ਕਿਰਗਸਤਾਨ" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "ਕੰਬੋਡੀਆ" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "ਕੀਰੀਬਾਟੀ" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "ਕੋਮੋਰੋਸ" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "ਸੇਂਟ ਕਿਟੱਸ ਅਤੇ ਨੀਵਿਸ" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "ਉੱਤਰੀ ਕੋਰੀਆ" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "ਦੱਖਣੀ ਕੋਰੀਆ" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "ਕà©à¨µà©ˆà¨¤" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "ਕਾਯਮਾਨ ਟਾਪੂ" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "ਕਜ਼ਾਕਸਤਾਨ" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "ਲਿਓ ਲੋਕਤੰਤਰ" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "ਲੀਬਨਾਨ" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "ਸੇਂਟ ਲੂਸੀਆ" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "ਲੀਚਟੀਨੀਆ" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "ਸ਼ਰੀਲੰਕਾ" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ਲੀਬਰੀਆ" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "ਲੀਸੋਥੋ" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ਲੀਥੂਨੀਆ" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ਲ਼ਕਸ਼ਬਰਗ" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ਲਾਟੀਵਾਆ" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ਲੀਬੀਆ" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "ਮੋਰੋਸ਼ਸ" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "ਮੋਨਸ਼ੀਆ" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "ਮੋਲਡੋਵਾ" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "ਮੋਨਗੋ" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "ਸੇਂਟ ਮਾਰੀਓ" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "ਮੈਡਾਗਾਸਕਰ" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "ਮਾਰਸ਼ਲ ਟਾਪੂ" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "ਮੈਕਡੋਨੀਆ" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "ਮਾਲੀ" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "ਮਿਆਂਮਾਰ" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "ਮੰਗੋਲੀਆ" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "ਮੈਕਸੀਕੋ" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "ਉੱਤਰੀ ਮਾਰੀਨਾ ਟਾਪੂ" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "ਮਾਰਟੀਨਿਉ" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "ਮਾਉਰੀਟਨੀਆ" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "ਮੋਨਟਸ਼ਟੀਟ" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "ਮਾਲਟਾ" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "ਮਾਉਰੀਟੀਸ" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "ਮਾਲਦੀਵ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "ਮਾਲਾਵੀ" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "ਮੈਕਸੀਕੋ" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "ਮਲੇਸ਼ੀਆ" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "ਮੋਜਾਬਕਿਉ" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ਨਾਮੀਬੀਆ" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "ਨਿਊ ਕਾਲੀਡੋਨੀਆ" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "ਨੀਗਰ" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ਨੋਰਫੋਕ ਟਾਪੂ" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ਨਜੀਰੀਆ" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "ਨਿਕਾਰਗà©à¨†" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "ਨੀਂਦਰਲੈਂਡ" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ਨਾਰਵੇ" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "ਨੇਪਾਲ" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "ਨੀਓਰੂ" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "ਨਿਉ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ਨਿਊਜ਼ੀਲੈਂਡ" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "ਓਮਾਨ" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "ਪੈਨਾਮਾ" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "ਪੇਰੂ" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ਫਰੈਂਚ ਪੋਲੀਸੀਨੀਆ" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "ਪੋਪ ਨਿਉ ਗà©à¨†à¨¨à¨¾" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "ਫਿਲਿਪੀਨੀਜ਼" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ਪਾਕਿਸਤਾਨ" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "ਪੋਲੈਂਡ" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "ਸੇਂਟ ਪੀਇੱਰ ਅਤੇ ਮੀਕਿਉਨੋਲ" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "ਪਿਟਸਾਰਨ" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "ਪà©à¨ˆà¨°à¨Ÿà©‹ ਰੀਸੋ" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "ਫਿਲਸਤੀਨ ਰਾਜ" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ਪà©à¨°à¨¤à¨—ਾਲ" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "ਪਾਲਾਊ" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "ਪੇਰੂਗਵੇ" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "ਕਤਰ" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "ਰੀਯà©à¨¨à©€à¨…ਨ" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "ਰੋਮਾਨੀਆ" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "ਸਰਬੀਅਨ" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "ਰੂਸੀ ਸੰਘ" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "ਰਵਾਂਡਾ" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "ਸਾਊਦੀ ਅਰਬ" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "ਸੋਲੋਮੋਨ ਟਾਪੂ" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "ਸੀਯਚੀਲੱਸ" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "ਸੂਡਾਨ" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ਸਵੀਡਨ" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "ਸਿੰਘਾਪà©à¨°" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "ਸੇਂਟ ਹੀਲੀਆ" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "ਸਲੋਵੀਨੀਆ" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "ਸਵਾਲਬਾਰਡ ਅਤੇ ਜਾਨ ਮਾਯਾਨ" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "ਸਲੋਵਾਕੀਆ" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "ਲਿੱਰ ਲੀਓਨ" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "ਸੇਂਟ ਮਾਰੀਓ" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "ਸੈਨੇਗਾਲ" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "ਸੋਮਾਲੀਆ" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "ਸà©à¨°à©€à¨¨à©‡à¨®" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "ਸਾਓ ਟੋਮੀ ਅਤੇ ਪਰਿਸਪੀ" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "ਈਲ ਸਾਲੇਵਡੋਰ" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "ਸੀਰੀਆ" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "ਸਵਾਜੀਲੈਂਡ" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "ਤà©à¨°à¨• ਅਤੇ ਸਾਈਸੋਸ ਟਾਪੂ" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ਚੱਡ" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "ਫਰੈਂਚ ਦੱਖਣੀ ਖੇਤਰ" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "ਟਾਂਗੋ" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "ਥਾਈਲੈਂਡ" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ਤਜ਼ਾਕਸਤਾਨ" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "ਤà©à¨•ੀਲਾਓ" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ਤà©à¨°à¨•ਮੇਨਸਤਾਨ" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ਟà©à¨¨à©€à¨¶à©€à¨†" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "ਤਾਂਗਾ" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ਪੂਰਬੀ ਤੇਮੂਰ" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ਤà©à¨°à¨•à©€" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ਟਰੀਨੀਡ ਅਤੇ ਤੋਬਾਗੋ" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ਤà©à¨µà¨¾à¨²à©‚" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "ਤਾਈਵਾਨ" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "ਤਾਂਜੀਨੀਆ" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "ਯੂਕਰੇਨ" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "ਉਜਾਂਡਾ" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "ਸੰਯà©à¨•ਤ ਰਾਜ ਮੀਨੋਰ ਆਉਟਲੇ ਟਾਪੂ" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "ਸੰਯà©à¨•ਤ ਰਾਜ" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "ਉਰੂਗਵੇ" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "ਉਜ਼ੇਬਕਸਤਾਨ" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "ਹੋਲੀ ਸੀ (ਵਾਟੀਕਾਨ ਸਿਟੀ ਸਟੇਟ)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "ਸੇਂਟ ਵੀਨਸੈਂਟ ਅਤੇ ਗਰੀਨਡੀਨ" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ਵੈਨੂਜੇà¨à¨²à¨¾" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "ਬਰਤਾਨਵੀਂ ਵਰਜੀਨੀਆ ਟਾਪੂ" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ਵੀਰਜੀਨ ਟਾਪੂ, ਅਮਰੀਕਾ" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "ਵੀਅਤਨਾਮ" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "ਵਾਂਉਤà©" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "ਵਾਲਿਸ ਅਤੇ ਫà©à¨Ÿà©à¨¨à¨¾" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "ਸਾਮੀਆ" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "ਯਮਨ" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "ਮਿਯੋਟੀ" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "ਦੱਖਣੀ ਅਫਰੀਕਾ" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "ਜੈਂਬੀਆ" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ਜਿੰਬਾਬਾਵੇ" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ਪਰੋਵਾਇਡ" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "ਲੋੜੀਦਾ" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "ਅਪਵਾਦ" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "ਬਰਤਰਫ਼" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "ਸਿਫਾਰਸ਼ੀ" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "ਸà©à¨à¨¾à¨…" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "ਇੰਹੈਂਸ" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "ਸਪਲੀਮੈਂਟ" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "ਫਾਇਲ ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕੀ: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "ਫਾਇਲ %1 ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ।" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "%s ਨਹੀਂ ਲੱਭਿਆ।" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "ਕà©à¨¨à©ˆà¨•ਟ ਕਰਨ ਦੌਰਾਨ ਚੱਲਦੀ ਕਮਾਂਡ" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "VM ਸ਼à©à¨°à©‚ ਕਰਨ ਲਈ ਫੇਲà©à¨¹ ਹੈ।" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "VM ਸ਼à©à¨°à©‚ ਕਰਨ ਲਈ ਫੇਲà©à¨¹ ਹੈ।" #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "ਸੋਰਸ ਪੈਕੇਜ '%s' ਨਹੀਂ ਲੱਭਿਆ।" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "ਅਣਜਾਣ ਭਾਸ਼ਾ: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "ਅਫ਼ਰ" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "ਅਬਖਾਜ਼ੀਨਾ" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "ਅਚੀਨੀਜ਼" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "ਅਕੋਲੀ" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "ਅਡਾਨਗਮੀ" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "ਅਡਯਘੀ" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "ਅਫਰੋ-à¨à¨¸à¨¼à©€à¨†à¨Ÿà¨¿à¨• (ਹੋਰ)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "ਅਫਰੀਹੀਲੀ" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "ਅਫਰੀਕੀ" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "ਈਨੂ" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "ਅਕਾਨ" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "ਅੱਕਾਡਿਨ" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "ਅਲਬੀਅਨ" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "ਅਲਿਉਟ" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "ਅਲਗà©à¨¨à¨•ਿਉਨ ਭਾਸ਼ਾਵਾਂ" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "ਦੱਖਣੀ ਅਥਟਾਈ" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "ਅਮਹਾਰਿਕ" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ਅੰਗਰੇਜ਼ੀ, ਪà©à¨°à¨¾à¨£à©€ (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ਆਪਚੇਂ ਭਾਸ਼ਾਵਾਂ" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ਅਰਬੀ" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "ਅਰਾਮਿਕ" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "ਅਰਾਗੋਨੀਸੀ" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ਅਰਮੀਨੀਅਨ" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ਅਰਾਉਕਾਨੀਆ" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "ਅਰਾਪਿਹੋ" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "ਆਰਟੀਫਿਸ਼ਲ (ਹੋਰ)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "ਅਰਾਵਾਕ" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "ਅਸਾਮੀ" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "ਆਸਟਰੀਆਈ" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "ਅਥਾਪਾਸਕਾਨ ਭਾਸ਼ਾਵਾਂ" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ਆਸਟਰੇਲੀਆਈ ਭਾਸ਼ਾਵਾਂ" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "ਅਵਾਰਿਕ" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "ਅਵੀਸਟੀਨ" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "ਅਵਾਥੀ" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "ਅਰਮਾਰਾ" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "ਅਜ਼ਰਬਾਈਜਾਨ" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "ਬਾਂਡਾ" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "ਬਾਕਿਮਲੀਕੀ ਭਾਸ਼ਾਵਾਂ" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "ਬਸ਼ਕੀਰ" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "ਬਲੋਚੀ" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "ਬਾਮਬਾਰਾ" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "ਬਾਲੀਨਸੀ" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "ਬਸਕਿਊ" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "ਬਾਸਾ" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "ਬਲਟਿਕ (ਹੋਰ)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "ਬੀਜਾ" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "ਬੇਲਾਰੂਸੀ" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "ਬੀਮਬਾ" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "ਬੰਗਾਲੀ" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "ਬੀਰਬੀਰ (ਹੋਰ)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "ਭੋਜਪà©à¨°à©€" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "ਬਿਹਾਰੀ" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "ਬਿਕੋਲ" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "ਬਿਨਿ" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "ਬਿਸਲਮਾ" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "ਸਿਕਸਿਕਾ" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "ਬਾਂਤ੠(ਹੋਰ)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "ਬੋਸਨੀਆ" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "ਬਰਾਜ" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "ਬਰੀਤੋਨ" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "ਬਾਟਾਕ (ਇੰਡੋਨੇਸੀਆ)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "ਬੈਰà©à¨¤" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "ਬà©à¨—ੀਨੀਆ" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ਬà©à¨²à¨—ਾਰੀਅਨ" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "ਬà©à¨°à¨®à©€à¨¸à©€" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "ਬਲਿਨ" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "ਕੱਡੋ" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "ਕੇਂਦਰੀ ਅਮਰੀਕੀ ਇੰਡੀਅਨ (ਹੋਰ)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "ਕਾਰਿਬ" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "ਕਾਟਾਲੋਨ" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "ਕੂਕੇਸ਼ੀਆਈ (ਹੋਰ)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "ਸੀਬà©à¨†à¨‚ਨੋ" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "ਸੀਲਟਿਕ (ਹੋਰ)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "ਚਾਮੋਰੋ" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "ਚੀਬਚਾ" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ਚੇਚਨ" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ਚਾਗਾਤਾਈ" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "ਚੀਨੀ" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ਚੂਉਕੀਸੀ" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "ਮਾਰੀ" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ਚੀਨੂਕ ਜਾਰਗਾਨ" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "ਚਾਕਤਾਵ" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ਚਿਪੀਵਯਾਨ" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "ਚੀਰੋਕੀ" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "ਚਰਚ ਸਲਾਵਿਕ" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ਚà©à¨µà¨¸" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "ਚੀਯੀਨੀ" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ਚਾਮਿਕ ਭਾਸ਼ਾਵਾਂ" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "ਕੋਪਟੀਕ" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "ਕੋਰਨਿਸ਼" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "ਕੋਰਸਕੇਨ" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "ਕਰੀ" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "ਕਰੀਮਿਕ ਤਰਾਰ" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "ਕਾਸ਼à©à¨¬à¨¿à¨¨" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ਚੈੱਕ" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "ਡਾਕੋਟਾ" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ਡੈਨਿਸ਼" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "ਡਾਰਗਵਾ" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ਡਾਯਾਕ" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "ਡੀਲਵਾਰੀ" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "ਸਲਾਵੀ (ਅਥਾਪਾਕਸਕੈਨ)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ਡਾਗਰਿਬ" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ਡੀਨਕਾ" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "ਡੀਵਿਹਾ" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "ਡੋਗਰੀ" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ਦਰਾਵੜੀਅਨ (ਹੋਰ)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "ਲੋਅਰ ਸੋਰਬੀਆਈ" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "ਡà©à¨†à¨²à¨¾" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "ਡੱਚ, ਮਿਡਲ (ca 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ਡੱਚ" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "ਡਯੂਲਾ" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "ਡਜ਼ੋਨਗਖਾ" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "ਈਫਿਕ" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ਮਿਸਰ (ਪà©à¨°à¨¾à¨¤à¨¨)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "ਈਕਾਜà©à¨•" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "ਅਲਾਮਿਟੀ" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ਅੰਗਰੇਜ਼ੀ" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ਅੰਗਰੇਜ਼ੀ, ਮਿਡਲ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ਇਸਪੀਰੋਟੋ" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ਈਸਟੋਨੀਅਨ" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ਈਵੀ" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "ਈਵੋਨਡੋ" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "ਫੌਂਗ" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ਫਾਰੋਸੀ" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ਫਾਂਟੀ" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "ਫਿਜ਼ੀ" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ਫਿਲਿਪਿਨੋ" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ਫੈਨਿਸ਼" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "ਫੋਨ" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ਫਰੈਂਚ" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "ਫਰੈਂਚ, ਮਿਡਲ (ca. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "ਫਰੈਂਚ, ਪà©à¨°à¨¾à¨£à©€ (842 ca 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "ਫਾਰਸੀ" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "ਫੂਲਾਹ" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ਫਰੀਉਲੀਅਨ" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ਗਾ" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "ਗਾਯੋ" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ਗਬਾਯਾ" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ਗਿਰਮਿਕ (ਹੋਰ)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ਜਾਰਜੀਅਨ" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ਜਰਮਨ" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ਗਾਜ਼ਾ" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "ਗਿਲਬਰਿਟਸੀ" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ਗਾਇਲਿਕ" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ਆਈਰਸ਼" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ਗਲੀਸਿਕ" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "ਮੈਂਨਸ" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "ਜਰਮਨ, ਮਿਡਲ ਉੱਚ (ca. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "ਜਰਮਨ, ਪà©à¨°à¨¾à¨£à¨¾ ਉੱਚ (ca. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "ਗੋਂਡੀ" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "ਗੋਰੋਨਟਾਲੋ" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ਗੋਥਿਕ" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "ਗਰੀਬੋ" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "ਗਰੀਕ, ਪà©à¨°à¨¾à¨¤à¨¨ (1453 ਤੱਕ)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "ਗਰੀਕ, ਮਾਡਰਨ (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "ਗà©à¨œà¨°à¨¨à©€" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "ਗà©à¨œà¨°à¨¾à¨¤à©€" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "ਗਵਿਚਨਿ" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "ਹਾਈਡਾ" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ਹਾਈਤਿਨ" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "ਹਾਉਸਾ" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "ਹਾਵਾਈਨ" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ਹੈਬਰਿਓ" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "ਹੀਰੀਰੋ" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "ਹਿਲਿਗਾਯਨੋਨ" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "ਹਿਮਾਚਲੀ" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "ਹਿੰਦੀ" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "ਹਿੱਟੀਟੀ" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "ਹਮਾਂਗ" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "ਹੀਰੀ ਮੋਟੋ" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "ਅੱਪਰ ਸੋਰਬੀਆਈ" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "ਹੰਗਰੀਅਨ" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "ਉਪਾ" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ਲਬਾਨ" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "ਲਗਬੋ" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ਆਈਸਲੈਂਡਿਕ" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ਈਡੋ" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "ਸਿਚà©à¨¨ ਯੀ" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ਈਜੋ" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "ਇਨਕਟà©à¨Ÿ" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "ਇੰਟਰਲੈਗà©à¨†" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "ਲੱਕੋ" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ਭਾਰਤੀ (ਹੋਰ)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ਇੰਡੋਨੇਸ਼ੀਅਨ" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "ਇੰਡੋ-ਯੂਰਪੀਆਈ (ਹੋਰ)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ਈਂਗà©à¨¸à¨¼" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "ਇਨà©à¨ªà¨¿à¨“" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ਆਈਰਸ਼ (ਹੋਰ)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "ਈਰੋਕਿਉਆਈ ਭਾਸ਼ਾਵਾਂ" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ਇਤਾਲਵੀ" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ਜਾਵੀ" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "ਲੋਜਬੀਨ" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ਜਾਪਾਨੀ" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "ਜੂਡੀਓ-ਪਾਰਸ਼ੀਆਈ" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "ਜੂਡੀਓ-ਅਰਬੀ" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "ਕਾਰਾ-ਕਾਲਪਾਕ" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "ਕਾਬਆਲੇ" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "ਕੋਚੀਨ" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "ਕਾਲਾਲਸà©à¨Ÿ" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "ਕੰਮਬਾ" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "ਕੰਨੜ" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "ਕੀਰਿਨ" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "ਕਸ਼ਮੀਰੀ" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "ਕਾਨਉਰੀ" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "ਕਵੀ" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "ਕਾਜ਼ਾਖ" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "ਕਾਬਾਰਡੀਆਈ" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "ਖਾਸੀ" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "ਖੋਈਸਾਨ (ਹੋਰ)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ਖਮੀਰ" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "ਖੋਤਾਨੀਸੀ" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "ਕਿਕà©à¨¯à©‚" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "ਕੀਯਾਰਵਾਂਡਾ" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "ਕਿਰਘੀਜ਼" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "ਕਿਮਬà©à¨¡à©‚" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "ਕੋਕਨੀ" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "ਕੋਮੀ" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "ਕਾਂਗੋ" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "ਕੋਰੀਆਨ" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "ਕੋਸਰੀਨ" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "ਕਪੀੱਲੀ" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "ਕਾਰਾਚਾਯ-ਬਾਲਕਾਰ" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "ਕਰà©" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "ਕà©à¨°à©‚ਖ" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "ਕੂਯਾਮਾ" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "ਕà©à¨®à¨¯à¨•" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "ਕà©à¨°à¨¦" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "ਕà©à¨Ÿà©€à¨¨à©€" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ਲਾਡਿਨੋ" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "ਲਾਹਨਡਾ" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "ਲਾਬਾਂ" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "ਲਿਓ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ਲੈਟਿਨ" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ਲਾਵਟੀਅਨ" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "ਲਿਜ਼ਘੀਨ" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "ਲਿਮਬà©à¨°à¨—ਾਨ" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "ਲਿੰਗਾਲਾ" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ਲੀਥੂਨੀਅਨ" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "ਮੋਨਗੋ" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "ਲà©à¨œà¨¼à©€" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "ਲ਼ਕਸ਼ਬਰਗਿਸ਼" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "ਲà©à¨¬à¨¾-ਲà©à¨²à©à¨†" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "ਲà©à¨¬à¨¾-ਕਾਤਾਂਗਾ" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ਗਾਂਡਾ" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "ਲà©à¨ˆà¨¸à©€à¨¨à©‹" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "ਲà©à¨†à¨‚ਡਾ" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "ਲà©à¨¸à¨¼à¨¾à¨ˆ" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "ਮੈਕਡੋਨੀਅਨ" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "ਮਾਡà©à¨°à©€à¨¸à©€" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "ਮਾਗਾਹੀ" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "ਮਾਰਸੱਲੀਸੀ" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "ਮੈਥਲੀ" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "ਮਾਕਾਸਾਰ" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "ਮਲਿਆਲਮ" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "ਮਾਂਡੀਂਗੋ" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "ਮੋਰੀ" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "ਮਰਾਠੀ" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "ਮਾਸਾਈ" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "ਮਲਾਇਆ" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "ਮੋਕਸਾ" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "ਮਾਂਡਾਰ" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "ਮੀਂਡੀ" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ਆਈਰਸ਼, ਮਿਡਲ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "ਮਿਕਮਾਕਿਉ" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "ਮਿਨਾਂਗਕਾਬਾਉ" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "ਫà©à¨Ÿà¨•ਲ ਭਾਸ਼ਾਵਾਂ" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "ਮੋਨ-ਖਮੀਰ (ਹੋਰ)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "ਮਾਲਾਗਸੇ" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "ਮਾਲਟਾ" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "ਮਾਂਚà©" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "ਮਨੀਪà©à¨°à©€" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "ਮਾਂਨੋਬੋ ਭਾਸ਼ਾਵਾਂ" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "ਮੋਹਾਵਕ" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "ਮੋਲਡੋਵਾ" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "ਮੰਗੋਲੀਅਨ" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "ਮੱਸੀ" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "ਕੋਈ ਭਾਸ਼ਾਵਾਂ" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "ਮਾਂਨਡਾ ਭਾਸ਼ਾਵਾਂ" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "ਕਰੀਕ" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "ਮੀਰਾਂਡੀਸੀ" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "ਮਾਰਵਾਰੀ" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "ਮਾਯਾਨ ਭਾਸ਼ਾਵਾਂ" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ਈਰਜ਼ਯਾ" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "ਨਾਹà©à¨†à¨Ÿà¨²" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "ਉੱਤਰੀ ਅਮਰੀਕੀ ਇੰਡੀਅਨ" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ਨੀਪੋਲੀਤਾਨ" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "ਨਾਵਾਜੋ" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "ਨਡੀਬੀਲੀ, ਦੱਖਣੀ" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "ਨਡੀਬੀਲੀ, ਉੱਤਰੀ" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ਨਡੋਗਾ" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "ਲੋ ਜਰਮਨ" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "ਨੇਪਾਲੀ" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "ਨੇਪਾਲ ਭਾਸ਼ਾ" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "ਨੀਆਸ" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "ਨੀਉਨ" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "ਨਾਰਵੀਅਨ ਨਿਯਰੋਸਕ" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "ਨਾਰਵੀਅਨ ਬੋਕਮਾਲ" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "ਨੋਗਾਈ" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "ਨੋਰਸੀ, ਪà©à¨°à¨¾à¨£à©€" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "ਨਾਰਵੀਅਨ" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "ਉੱਤਰੀ ਸੋਥੋ" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "ਨਿਬੀਆਈ ਭਾਸ਼ਾਵਾਂ" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "ਕਲਾਸੀਕਲ ਨੀਵਾਰੀ" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "ਚਿਚੀਵਾ" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "ਨਆਮਵਜ਼ੀ" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "ਨਆਨਕੋਲੀ" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "ਨਆਰੋ" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "ਨਜ਼ੀਮਾ" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ਉਸਟਾਨ (ਪੋਸਟ 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "ਉਜੀਬਵਾ" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "ਓੜੀਆ" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "ਓਰੋਮਾ" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ਓਸਾਗੀ" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ਉੱਸਟੀਨਅਨ" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "ਤà©à¨°à¨•, ਉੱਟੋਮਨ (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ਓਟਾਮੀਆਈ ਭਾਸ਼ਾਵਾਂ" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "ਪਾਪà©à¨†à¨¨ (ਹੋਰ)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "ਪਾਂਗਾਸੀਆਈ" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "ਪਾਹਲਵੀ" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "ਪਾਮਪਾਂਗਾ" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "ਪੰਜਾਬੀ" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "ਪਾਡੀਮੀਟਤੋ" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "ਪਾਲਾਉਨ" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ਪਰਸ਼ੀਆਈ, ਪà©à¨°à¨¾à¨£à©€ (ca 600-400 BC)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ਪਰਸੀਆਈ" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ਫਿਲਿਪੀਨੀ (ਹੋਰ)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ਫੋਨੋਨੀਸਿਕ" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "ਪਾਲੀ" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ਪੋਲਿਸ਼" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ਫੋਹਨਪੀਈ" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ਪà©à¨°à¨¤à¨—ਾਲੀ" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "ਪਰਾਕਰਿਟ ਭਾਸ਼ਾਵਾਂ" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "ਪਰੋਵਾਂਕਾਲ, ਪà©à¨°à¨¾à¨£à©€ (1500 ਤੋਂ)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "ਪà©à¨¸à¨¤à©‹" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "ਕਿਉਚà©à¨†" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "ਰਾਜਸਥਾਨੀ" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "ਰਾਪਾਨਈ" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "ਰਾਰੋਤੋਨਗੀ" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "ਰੋਮਾਨਿਕ (ਹੋਰ)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "ਰੀਟੋ-ਰੋਮਨੀ" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "ਰੋਮਨੀ" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "ਰੋਮਾਨੀਅਨ" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "ਰੰਡੀ" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "ਰੂਸੀ" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "ਸਾਂਡਾਵੀ" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "ਸਾਂਗੋ" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "ਯਾਕà©à¨Ÿ" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "ਦੱਖਣੀ ਅਮਰੀਕੀ ਇੰਡੀਅਨ (ਹੋਰ)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "ਸਾਲੀਸ਼ਾਂ ਭਾਸ਼ਾਵਾਂ" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "ਸਾਮਾਰਿਟਿਕ ਅਰਾਮਾਕ" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "ਸੰਸਕਰਿਤ" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "ਸਾਸਾਕ" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "ਸਾਂਤਾਲੀ" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "ਸਰਬੀਅਨ" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "ਸਿਕਿਲਿਆਈ" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "ਸਕੋਟਸ" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ਕਰੋਆਟੀਅਨ" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "ਸਿਲਕà©à¨ª" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "ਸਿਮੀਟਿਕ (ਹੋਰ)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ਆਈਰਸ਼, ਪà©à¨°à¨¾à¨£à©€ (900 ਤੋਂ)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "ਸਾਇਨ ਭਾਸ਼ਾਵਾਂ" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "ਸ਼ਾਨ" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "ਸੀਡਾਮੋ" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "ਸਿੰਹਾਲਾ" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "ਸੀਉਆਨ ਭਾਸ਼ਾਵਾਂ" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "ਸੀਨੋ-ਤਿੱਬਤ (ਹੋਰ)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "ਸਲਾਵਿਕ (ਹੋਰ)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "ਸਲੋਵਾਕ" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "ਸਲੋਵੀਅਨ" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "ਦੱਖਣੀ ਸਾਮੀ" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "ਉੱਤਰੀ ਸਾਮੀ" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "ਸਾਮੀ ਭਾਸ਼ਾਵਾਂ (ਹੋਰ)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "ਲà©à¨ˆ ਸਾਮੀ" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "ਇਨਰੀ ਸਾਮੀ" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "ਸਾਮੋਨੀ" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "ਸਲਾਲਟ ਸਾਮੀ" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "ਸ਼ੋਨਾ" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "ਸਿੰਧੀ" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "ਸੋਨੀਨਕੀ" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "ਸੋਗਡੀਆਈ" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "ਸੋਮਾਲੀ" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "ਸੋਂਘਾਈ" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "ਸੋਥੋ, ਦੱਖਣੀ" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ਸਪੇਨੀ" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "ਸਾਰਡੀਨੀਅਨ" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "ਸੀਰੀਰ" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "ਨਿਲੋ-ਸਸਾਹਾਰਨ (ਹੋਰ)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "ਸਵਾਤੀ" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "ਸà©à¨•à©à¨®à¨¾" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "ਸà©à¨¡à¨¾à¨¨à©€" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "ਸà©à¨¸à©" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ਸà©à¨®à©€à¨°à¨¿à¨¨" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "ਸਵਾਹਿਲੀ" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ਸਵੀਡਿਸ਼" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "ਸਅਰਿਕ" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ਤਾਹੀਤੀਆਨ" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ਤਾਈ (ਹੋਰ)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ਤਾਮਿਲ" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "ਤਤਾਰ" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "ਤੇਲਗੂ" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "ਤਿਮਨੀ" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "ਤਿਰਿਨੋ" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "ਤੋਤà©à¨®" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "ਤਾਜ਼ਿਕ" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "ਤਾਗਾਲੋਗ" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ਥਾਈ" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ਤਿੱਬਤ" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "ਤੀਗਰਿ" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ਟੀਗਰੀਨਯਾ" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "ਤੀਵ" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "ਕਲਿੰਗੋਨ" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "ਤਲਿੰਗੀਤ" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "ਤਾਮਾਸਿਕ" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "ਤਾਂਗਾ (ਨਆਸਾ)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "ਤਾਂਗਾ (ਤਾਂਗਾ ਟਾਪੂ)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "ਤੋਕ ਪਿਸ਼ਿਨ" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "ਤਸਾਮਸ਼ਿਨ" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ਤਸਵਾਕਾ" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "ਤਸਾਂਗੋ" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ਤà©à¨°à¨•" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "ਤà©à¨®à¨¬à©à¨•ਾ" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "ਤà©à¨ªà¨¾à¨ˆ ਭਾਸ਼ਾਵਾਂ" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ਤà©à¨°à¨•à©€" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "ਅਲਟਿਕ (ਹੋਰ)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "ਤਵੀ" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ਤà©à¨µà©€à¨¨à©€à¨†à¨ˆ" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "ਉਡਮਰਟ" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "ਯਗਾਰਿਟਿਕ" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ਉਘੋਰ" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ਯੂਕਰੇਨੀ" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "ਯਮਬà©à¨¡à©‚" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "ਅਣ-ਪਛਾਣੀ" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "ਉਰਦੂ" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "ਉਜ਼ੇਬਕ" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "ਵਾਈ" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "ਵਾਂਡਾ" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ਵੀਅਤਨਾਮੀ" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "ਵੋਲਾਪà©à¨•" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "ਵੋਟਿਕ" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ਵਾਕਾਸ਼ਾਨ ਭਾਸ਼ਾਵਾਂ" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "ਵਾਲਾਮੋ" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "ਵਾਰਾà¨" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "ਵਾਸ਼ੋ" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "ਵਾਲਿਸ਼" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "ਸੋਰਬੀਆਈ ਭਾਸ਼ਾਵਾਂ" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ਵੱਲੂਨ" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "ਵੋਲੋਫ" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "ਕਾਲਮਯਕ" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "ਯੋਸਾ" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "ਯਾਓ" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "ਯਾਪੀਸੀ" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "ਯੀਡਿੱਸ਼" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "ਯੋਰà©à¨¬à¨¾" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "ਯà©à¨ªà¨¿à¨• ਭਾਸ਼ਾਵਾਂ" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "ਜ਼ਾਪੋਟਿਕ" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "ਜੀਨਾਗਾ" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "ਜ਼à©à¨†à¨‚ਗ" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ਜਾਂਡੀ" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ਜ਼ੂਲੂ" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "ਜà©à¨¨à©€" #: zypp/ProblemSolution.cc:114 #, fuzzy msgid "Following actions will be done:" msgstr "ਹੇਠ ਦਿੱਤੇ ਪੈਕੇਜ ਅੱਪਡੇਟ ਕੀਤੇ ਜਾਣਗੇ:\n" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਫੇਲà©à¨¹: %s।" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "VM ਦਾ ਨਾਂ ਇੱਕ ਅੰਕ ਨਾਲ ਸ਼à©à¨°à©‚ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।" #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "VM ਦਾ ਨਾਂ ਇੱਕ ਅੰਕ ਨਾਲ ਸ਼à©à¨°à©‚ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "ਲਿਖਣ ਲਈ ਫਾਇਲ ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ।" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "بيانات التعري٠غير صحيحة لم يتم العثور عليها ÙÙŠ المسار(s)" msgstr[1] "بيانات التعري٠غير صحيحة لم يتم العثور عليها ÙÙŠ المسار(s)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "%s ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ: %m\n" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "%1 ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ: %2" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "ਰਿਪੋਜ਼ਟਰੀ '%s' ਕੈਚੇ ਬਿਲਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਫੇਲà©à¨¹: %s।" #: zypp/RepoManager.cc:1392 #, fuzzy msgid "Unhandled repository type" msgstr "%s ਰਿਪੋਜ਼ਟਰੀ ਲਈ ਅੱਪਲੋਡ ਕੀਤਾ।" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, fuzzy, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "ਰਿਪੋਜ਼ਟਰੀ '%s' ਤੋਂ ਮੇਟਾ-ਡਾਟਾ ਪਾਰਸਿੰਗ ਦੌਰਾਨ ਗਲਤੀ:" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ਅਣਜਾਣ ਕਮਾਂਡ '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "ਰਿਪੋਜ਼ਟਰੀ '%s' ਸ਼ਾਮਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "ਗਲਤ à¨à¨•ਸਪੋਰਟ ਫਾਇਲ ਨਾਂ ਹੈ।" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "ਰਿਪੋਜ਼ਟਰੀ '%s' ਹਟਾਈ ਜਾ ਰਹੀ ਹੈ।" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "ਡੈਸਕਟਾਪ ਆਈਟਮ '%s' ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "ਗਲਤ LDAP URL ਕਿਊਰੀ ਸਤਰ" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Url ਆਬਜੈਕਟ ਕਲੋਨ ਕਰਨ ਲਈ ਅਸਮਰੱਥ" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "ਗਲਤ ਖਾਲੀ Url ਆਬਜੈਕਟ ਰੈਫਰੈਂਸ" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Url ਭਾਗ ਪਾਰਸ ਕਰਨ ਲਈ ਅਸਮਰੱਥ" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "ਅਣਜਾਣ" #: zypp/VendorSupportOptions.cc:17 #, fuzzy msgid "unsupported" msgstr " - ਸਹਾਇਕ ਨਹੀਂ" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "ਡਿਸਕ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ਅਤੀਤ:" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "ਫਾਇਲ %1 ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ।" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "ਅਣਜਾਣ ਕਮਾਂਡ '%s'" #: zypp/base/StrMatcher.cc:153 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "ਫਾਇਲ %2$s ਲਈ ਅਣਜਾਣ ਡਿਜ਼ਟ %1$s" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "ਗਲਤ Url ਸਕੀਮ '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "'%s' ਲਈ ਪਰਮਾਣਿਕਤ ਲੋੜੀਦੀ ਹੈ" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਫੇਲà©à¨¹: %s।" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "ਮੋਡੀਊਲ \"%s\" ਲੋਡ ਕਰਨ ਲਈ ਫੇਲ ਹੈ।" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "ਫਾਇਲ %1 ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "ਫਾਇਲ %1 ਲਿਖੀ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ।" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਹੈ।" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "ਖਾਲੀ CA ਨਾਂ ਹੈ।" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "ਗਲਤ URL ਸਕੀਮ '%1' ਹੈ।" #: zypp/media/MediaException.cc:129 #, fuzzy msgid "Operation not supported by medium" msgstr "ਪਰੋਫਾਇਲ ਵਰਜਨ ਅੱਪਾਰਮੋਰ ਮੋਡੀਊਲ ਵਲੋਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ\n" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 #, fuzzy msgid "Cannot eject any media" msgstr "ਕੋਈ ਸਕੀਮ ਨਹੀਂ ਲੱਭੀ ਹੈ।" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "ਡੈਸਕਟਾਪ ਆਈਟਮ '%s' ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "ਅਧਿਕਾਰ ਪਾਬੰਦੀ ਹੈ" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, fuzzy, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "ਲੋੜੀ ਫਾਇਲ ਗà©à©°à¨® ਹੈ: " #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "ਪੈਕੇਜ %s à¨à¨‚ਟੀਗਰੇਟੀ ਚੈਕ ਕਰਨ ਲਈ ਫੇਲà©à¨¹ ਹੈ। ਕੀ ਤà©à¨¸à©€à¨‚ ਮà©à©œ-ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "ਪੈਕੇਜ %s à¨à¨‚ਟੀਗਰੇਟੀ ਚੈਕ ਕਰਨ ਲਈ ਫੇਲà©à¨¹ ਹੈ। ਕੀ ਤà©à¨¸à©€à¨‚ ਮà©à©œ-ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm ਚੈੱਕ ਫੇਲà©à¨¹ ਹੈ।" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm ਫੇਲà©à¨¹ ਹੋਇਆ।" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਪਰੋਫਾਇਲ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: " #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਕੋਈ URL ਨਹੀਂ ਹੈ।" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "ਫਾਇਲ ਨਹੀਂ ਬਣਾਈ ਜਾ ਸਕਦੀ ਹੈ।" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ਆਮ ਤੌਰ ਉੱਤੇ ਇਹ ਲੋੜ ਅਣਡਿੱਠੀ ਕਰੋ" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਆਰਕੀਟੈਕਚਰ ਹੋਰ ਹੈ।" #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "ਸੋਰਸ ਪੈਕੇਜ %s-%s ਇੰਸਟਾਲ ਕਰਨ ਦੌਰਾਨ ਸਮੱਸਿਆ:" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਮੰਗ:" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "ਨਿਰਭਰਤਾ ਸਮੱਸਿਆਵਾਂ ਕਰਕੇ %s ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "%s ਕੋਈ ਨਹੀਂ ਦਿੰਦਾ ਹੈ" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "ਇੰਸਟਾਲ ਨਹੀਂ ਹਨ" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s %s ਰਾਹੀਂ ਚਾਹੀਦਾ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s ਦਾ %s ਨਾਲ ਅਪਵਾਦ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s %s ਰਾਹੀਂ ਚਾਹੀਦਾ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s %s ਰਾਹੀਂ ਚਾਹੀਦਾ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s ਦਾ %s ਨਾਲ ਅਪਵਾਦ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "%s ਕੋਈ ਨਹੀਂ ਦਿੰਦਾ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "ਉਪਲੱਬਧ ਪਰੋਫਾਇਲ" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s ਨੂੰ ਨਾ ਹਟਾਓ" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s ਰੱਖੋ" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "ਮੰਗ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਆਰਕੀਟੈਕਚਰ ਹੋਰ ਹੈ।" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s ਹਟਾਓ" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%s ਨੂੰ %s ਲਈ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" # %s is either BOOTP or DHCP #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "%s ਦੀ ਇੰਸਟਾਲੇਸ਼ਨ ਫੇਲà©à¨¹ ਹੋਈ:" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "ਚਲਾਓ" # %s is either BOOTP or DHCP #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI ਚਲਾਉਣਾ ਫੇਲà©à¨¹: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "ਕà©à©°à¨œà©€ ਇੰਕà©à¨°à¨¿à¨ªà¨¸à¨¼à¨¨ ਦੌਰਾਨ ਗਲਤੀ ਹੈ।" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "ਇੰਸਟਾਲੇਸ਼ਨ ਹਦਾਇਤਾਂ ਮà©à¨¤à¨¾à¨¬à¨• ਅਧੂਰੀ ਛੱਡੀ ਗਈ ਹੈ।" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext ਕà©à¨¨à©ˆà¨•ਟਡ ਨਹੀਂ" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive ਸ਼à©à¨°à©‚ ਨਹੀਂ ਹੈ" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume ਸ਼à©à¨°à©‚ ਨਹੀਂ ਕੀਤਾ" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "dbus ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ" #: zypp/target/hal/HalContext.cc:242 #, fuzzy msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_set_dbus_connection: dbus ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: dbus ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "ਇੱਕ CDROM ਡਰਾਇਵ ਨਹੀਂ ਹੈ" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "ਫੇਲà©à¨¹" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s ਲਈ ਸੰਰਚਨਾ ਫਾਇਲਾਂ ਬਦਲੀਆਂ:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "ਹੋਰ rpm ਆਉਟਪà©à©±à¨Ÿ:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "%s ਦਾ ਬੈਕਅੱਪ ਬਣਿਆ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "mutex ਲਾਕ ਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "mutex ਲਾਕ ਰੀਲਿਜ਼ ਨਹੀਂ ਜਾ ਸਕਦਾ" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url ਸਕੀਮ ਲਈ %s ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "ਗਲਤ %s ਭਾਗ '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "ਗਲਤ %s ਭਾਗ" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url ਸਕੀਮ ਲਈ ਇੱਕ ਲੋੜੀਦਾ ਭਾਗ ਹੈ" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "ਗਲਤ Url ਸਕੀਮ '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url ਸਕੀਮ ਲਈ ਇੱਕ ਯੂਜ਼ਰ-ਨਾਂ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url ਸਕੀਮ ਲਈ ਇੱਕ ਪਾਸਵਰਪ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url ਲਈ ਇੱਕ ਹੋਸਟ ਭਾਗ ਲੋੜੀਦਾ ਹੈ" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url ਸਕੀਮ ਲਈ ਇੱਕ ਹੋਸਟ ਭਾਗ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ।" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "ਗਲਤ ਹੋਸਟ ਭਾਗ '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url ਸਕੀਮ ਇੱਕ ਪੋਰਟ ਨਹੀਂ ਦਿੰਦੀ ਹੈ।" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "ਗਲਤ ਪੋਰਟ ਭਾਗ '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url ਸਕੀਮ ਲਈ ਮਾਰਗ ਨਾਂ ਲੋੜੀਦਾ ਹੈ" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "ਪਬਲਿਕ ਕà©à©°à¨œà©€ ਲੈਣ ਲਈ ਅਸਮਰੱਥ ਹੈ।" #, fuzzy #~ msgid "generally ignore of some dependecies" #~ msgstr "ਆਮ ਤੌਰ ਉੱਤੇ ਇਹ ਲੋੜ ਅਣਡਿੱਠੀ ਕਰੋ" #, fuzzy #~ msgid "do not forbid installation of %s" #~ msgstr "%s ਨੂੰ ਨਾ ਹਟਾਓ" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "ਇੰਸਟਾਲ ਨਹੀਂ ਹਨ" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "لا يمكن إنشاء Ø§Ù„Ù…ÙØªØ§Ø­ العام %s من %s إلى مل٠حلقة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "حاول استيراد Ù…ÙØªØ§Ø­ غير موجود %s إلى حلقة Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "لا يمكن تغيير مجلد العمل '/' داخل استجذار (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "ÙØ´Ù„ تهيئة تحميل (Metalink curl) '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "تحميل (metalink curl) خطأ '%s':\n" #~ "رمز الخطأ: %s\n" #~ "رسالة الخطأ: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "توق٠التحميل ÙÙŠ %d%%" #~ msgid "Download interrupted by user" #~ msgstr "توق٠التحميل بواسطة المستخدم" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "حدث خطأ أثناء إعداد خيارات التحميل (metalink curl) Ù„ '%s':" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਫੇਲà©à¨¹: %s।" #~ msgid "Serbia and Montenegro" #~ msgstr "ਸਰੀਬੀਆ ਅਤੇ ਮਾਂਟੀਂਗਰੋ" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "ਅਣਜਾਣ ਲਿਸਟ ਚੋਣ" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "ਨਿਰਭਰਤਾ ਹੱਲ਼ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ਫਾਇਲ %s ਲਈ ਚੈਕਸਮ ਨਹੀਂ ਹੈ।\n" #~ "ਕੀ ਫਾਇਲ ਇੰਠਹੀ ਵਰਤਣਾ ਹੈ?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ਫਾਇਲ %s ਹੇਠ ਦਿੱਤੀ ਕà©à©°à¨œà©€ ਨਾਲ à¨à¨‚ਟਗਰੇਟੀ ਚੈੱਕ ਲਈ ਫੇਲà©à¨¹ ਹੋਈ:\n" #~ "%s|%s|%s\n" #~ "ਕੀ ਫਾਇਲ ਵਰਤਣੀ ਹੈ?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ਫਾਇਲ %s ਦਾ ਚੈਕਸਮ ਗਲਤ ਹੈ।\n" #~ "%s ਦੀ ਲੋੜ ਸੀ, ਮਿਲਿਆ %s\n" #~ "ਕੀ ਫਾਇਲ ਇੰਠਹੀ ਵਰਤਣੀ ਹੈ?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ਫਾਇਲ %s ਲਈ ਅਣਜਾਣ ਚੈਕਸਮ %s ਹੈ।\n" #~ "ਕੀ ਫਾਇਲ ਇੰਠਹੀ ਵਰਤਣੀ ਹੈ?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "ਫਾਇਲ %s ਸਾਇਨ ਨਹੀਂ ਹੈ।\n" #~ "ਕੀ ਇਸ ਨੂੰ ਇੰਠਹੀ ਵਰਤਣਾ ਹੈ?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ਫਾਇਲ %s ਇੱਕ ਅਣਜਾਣੀ ਕà©à©°à¨œà©€ ਨਾਲ ਸਾਇਨ ਕੀਤੀ ਗਈ ਹੈ:\n" #~ "%s|%s|%s\n" #~ "ਕੀ ਫਾਇਲ ਵਰਤਣੀ ਹੈ?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "ਅਣ-ਟਰਸਟਡ ਕà©à©°à¨œà©€ ਲੱਭੀ:\n" #~ "%s|%s|%s\n" #~ "ਕà©à©°à¨œà©€ ਉੱਤੇ ਭਰੋਸਾ ਕਰਨਾ ਹੈ?" #~ msgid "%s remove failed" #~ msgstr "%s ਹਟਾਉਣਾ ਫੇਲà©à¨¹" #~ msgid "Invalid user name or password." #~ msgstr "ਗਲਤ ਯੂਜ਼ਰ ਨਾਂ ਜਾਂ ਪਾਸਵਰਡ ਹੈ।" #~ msgid "rpm output:" #~ msgstr "rpm ਆਉਟਪà©à©±à¨Ÿ:" #~ msgid "%s install failed" #~ msgstr "%s ਇੰਸਟਾਲ ਫੇਲà©à¨¹ ਹੈ" #~ msgid "%s installed ok" #~ msgstr "%s ਇੰਸਟਾਲ ਹੋਇਆ" #~ msgid "%s remove ok" #~ msgstr "%s ਹਟਾਇਆ" #~ msgid "Ignore that %s is already set to install" #~ msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਸੈੱਟ ਕੀਤੇ ਉਸ %s ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ" #~ msgid "Ignore this conflict of %s" #~ msgstr "%s ਦਾ ਇਹ ਅਪਵਾਦ ਅਣਡਿੱਠਾ ਕਰੋ" #~ msgid "Ignore this requirement just here" #~ msgstr "ਇਹ ਲੋੜ ਇੱਥੇ ਹੀ ਅਣਡਿੱਠੀ ਕਰੋ" #~ msgid "Install %s although it would change the vendor" #~ msgstr "%s ਇੰਸਟਾਲ ਕਰੋ, ਭਾਵੇਂ ਇਹ ਵੇਂਡਰ ਬਦਲ ਦੇਵੇਗਾ" #~ msgid "Install missing resolvables" #~ msgstr "ਗà©à©°à¨® ਹੱਲ-ਯੋਗ ਇੰਸਟਾਲ ਕਰੋ" #~ msgid "Keep resolvables" #~ msgstr "ਹੱਲ-ਯੋਗ ਰੱਖੋ" #~ msgid "Unlock these resolvables" #~ msgstr "ਇਹ ਹੱਲਯੋਗ ਅਣਲਾਕ ਕਰੋ" #~ msgid "install %s" #~ msgstr "%s ਇੰਸਟਾਲ" #~ msgid "unlock %s" #~ msgstr "%s ਅਣਲਾਕ" #~ msgid "unlock all resolvables" #~ msgstr "ਸਭ ਹੱਲਯੋਗ ਅਣਲਾਕ ਕਰੋ" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "ਫਾਇਲ %1 ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ।" #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਪੜà©à¨¹à¨¨ ਦੌਰਾਨ ਗਲਤੀ:" #~ msgid "Software management is already running." #~ msgstr "ਸਾਫਟਵੇਅਰ ਪਰਬੰਧ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ।" #~ msgid "%s is replaced by %s" #~ msgstr "%s ਨੂੰ %s ਨਾਲ ਬਦਲਿਆ ਜਾਂਦਾ ਹੈ" #~ msgid "%s replaced by %s" #~ msgstr "%s ਨੂੰ %s ਨਾਲ ਬਦਲਿਆ ਗਿਆ" #~ msgid "%s will be deleted by the user.\n" #~ msgstr "%s ਨੂੰ ਯੂਜ਼ਰ ਵਲੋਂ ਹਟਾਇਆ ਜਾਵੇਗਾ।\n" #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s ਨੂੰ ਯੂਜ਼ਰ ਵਲੋਂ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ।\n" #~ msgid "Invalid information" #~ msgstr "ਗਲਤ ਜਾਣਕਾਰੀ" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s ਲੋੜੀਦਾ ਹੈ:\n" #~ "%s" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s ਦਾ ਅਪਵਾਦ ਹੈ:\n" #~ "%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "ਇਹ ਹੱਲ-ਕਰਨ-ਯੋਗ ਸਿਸਟਮ ਤੋਂ ਹਟਾਠਜਾਣਗੇ।" #~ msgid "%s depends on %s" #~ msgstr "%s %s ਉੱਤੇ ਨਿਰਭਰ ਹੈ" #~ msgid "%s depends on:%s" #~ msgstr "%s ਨਿਰਭਰ ਹੈ: %s" #~ msgid "Child of" #~ msgstr "ਚਾਈਲਡ" #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "ਇਹ ਲੋੜ ਨੂੰ ਪੂਰੀ ਕਰਨ ਲਈ ਕੋਈ ਸਰੋਤ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ।" #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s ਨੂੰ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਇਸ ਦਾ %s ਨਾਲ ਅਪਵਾਦ ਹੈ।" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ ਅਤੇ ਅਣ-ਇੰਸਟਾਲਯੋਗ ਮਾਰਕ ਕੀਤਾ ਗਿਆ" #~ msgid "%s has missing dependencies" #~ msgstr "%s ਲਈ ਨਿਰਭਰਤਾ ਅਧੂਰੀ ਹੈ" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s ਨੂੰ ਨਿਰਭਰਤਾ ਅਧੂਰੀ ਹੋਣ ਕਰਕੇ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" #~ msgid "No need to install %s" #~ msgstr "%s ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ" #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "%s ਨੂੰ %s ਦੀ ਨਿਰਭਰਤਾ ਪੂਰੀ ਨਾ ਹੋਣ ਕਰਕੇ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "%s ਨੂੰ %s ਦੀ ਨਿਰਭਰਤਾ ਪੂਰੀ ਨਾ ਹੋਣ ਕਰਕੇ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s ਨੂੰ ਅਣ-ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ, ਕਿਉਂਕਿ ਇਹ ਹਾਲੇ ਵੀ ਲੋੜੀਦਾ ਹੈ" #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s ਨੂੰ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਇਹ ਅਪਵਾਦ ਪੈਦਾ ਕਰਦਾ ਹੈ" #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ਲਈ %s ਲੋੜ ਦੀ ਕਮੀ ਹੈ" #~ msgid ", Action: " #~ msgstr ", ਕਾਰਵਾਈ: " #~ msgid ", Trigger: " #~ msgstr ", ਟਿਗਰ: " #~ msgid "package" #~ msgstr "ਪੈਕੇਜ" #~ msgid "selection" #~ msgstr "ਚੋਣ" #~ msgid "pattern" #~ msgstr "ਪੈਟਰਨ" #~ msgid "product" #~ msgstr "ਪਰੋਡੱਕਟ" #~ msgid "patch" #~ msgstr "ਪੈਚ" #~ msgid "script" #~ msgstr "ਸਕà©à¨°à¨¿à¨ªà¨Ÿ" #~ msgid "message" #~ msgstr "ਸà©à¨¨à©‡à¨¹à¨¾" #~ msgid "atom" #~ msgstr "à¨à¨Ÿà¨®" #~ msgid "system" #~ msgstr "ਸਿਸਟਮ" #~ msgid "Resolvable" #~ msgstr "ਹੱਲ-ਯੋਗ" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "ਇਹ ਹੱਲ ਦੀ ਕੋਸ਼ਿਸ਼ ਨੂੰ ਗਲਤ ਮਾਰਕ ਕਰੋ।" #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "ਹੱਲ-ਯੋਗ %s ਨੂੰ ਅਣ-ਇੰਸਟਾਲ ਯੋਗ ਮਾਰਕ ਕਰੋ" #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "%s ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਸ਼ੈਡਿਊਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਪਰ ਨਿਰਭਰਤਾ ਸਮੱਸਿਆ ਕਰਕੇ ਸੰਭਵ ਨਹੀਂ ਹੈ।" #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "%s ਨੂੰ ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਇਹ ਇਸ ਸਿਸਟਮ ਉੱਤੇ ਲਾਗੂ ਨਹੀਂ ਹà©à©°à¨¦à¨¾ ਹੈ।" #~ msgid "Establishing %s" #~ msgstr "%s ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #~ msgid "Installing %s" #~ msgstr "%s ਇੰਸਟਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #~ msgid "Skipping %s: already installed" #~ msgstr "%s ਛੱਡਿਆ ਜਾਂਦਾ ਹੈ: ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹੈ" #~ msgid "There are no alternative providers of %s installed" #~ msgstr "ਇੰਸਟਾਲ %s ਦੇਣ ਵਾਲਾ ਕੋਈ ਬਦਲਵਾਂ ਪਰੋਵਾਈਡਰ ਨਹੀਂ ਹੈ।" #~ msgid "for %s" #~ msgstr "%s ਲਈ" #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਅਣ-ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਸ਼ੈਡਿਊਲ ਹੈ।" #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਉਸ %s ਦਾ ਹੋਰ ਵਰਜਨ ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹੈ।" #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਅਣ-ਇੰਸਟਾਲ-ਯੋਗ ਹੈ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਖà©à¨¦ ਹੀ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਲਾਕ ਹੈ" #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s %s ਦਿੰਦਾ ਹੈ, ਪਰ ਵੇਂਡਰ (%s) ਹੋਰ ਹੈ।" #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "%s ਦੀ ਲੋੜ ਨੂੰ %s ਲਈ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ" #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s ਲਾਕ ਹੈ ਅਤੇ ਅਣ-ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।" #~ msgid "from %s" #~ msgstr "%s ਤੋਂ" #~ msgid " Error!" #~ msgstr " ਗਲਤੀ!" #~ msgid " Important!" #~ msgstr " ਖਾਸ!" #~ msgid "%s depended on %s" #~ msgstr "%s %s ਉੱਤੇ ਨਿਰਭਰ ਹੈ" #~ msgid "%s is recommended by %s" #~ msgstr "%s %s ਵਲੋਂ ਸਿਫਾਰਸ਼ੀ ਹੈ" #~ msgid "%s is suggested by %s" #~ msgstr "%s ਲਈ %s ਵਲੋਂ ਸà©à¨à¨¾à¨… ਹੈ" #~ msgid "%s is enhanced by %s" #~ msgstr "%s %s ਵਲੋਂ ਇੰਹਾਂਸਡ ਹੈ" #~ msgid "%s is supplemented by %s" #~ msgstr "%s %s ਦਾ ਸਪਲੀਮੈਂਟ ਹੈ" #~ msgid "%s part of %s" #~ msgstr "%s %s ਦਾ ਭਾਗ ਹੈ" #~ msgid "Reading '%s' repository cache" #~ msgstr "'%s' ਰਿਪੋਜ਼ਟਰੀ ਕੈਚੇ ਪੜà©à¨¹à©€ ਜਾ ਰਹੀ ਹੈ" #~ msgid "Cleaning repository '%s' cache" #~ msgstr "ਰਿਪੋਜ਼ਟਰੀ '%s' ਕੈਚੇ ਸਾਫ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ" #~ msgid "Reading repository '%s' cache" #~ msgstr "ਰਿਪੋਜ਼ਟਰੀ '%s' ਕੈਚੇ ਪੜà©à¨¹à©€ ਜਾ ਰਹੀ ਹੈ" #~ msgid "%s will be deleted by another application. (ApplLow/ApplHigh)\n" #~ msgstr "%s ਨੂੰ ਹੋਰ ਕਾਰਜ ਵਲੋਂ ਹਟਾਇਆ ਜਾਵੇਗਾ। (ApplLow/ApplHigh)\n" #~ msgid "Requirememt %s cannot be fulfilled." #~ msgstr "%s ਲੋੜ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।" #~ msgid "Make a solver run with ALL possibilities." #~ msgstr "ਸੋਲਵਰ ਨੂੰ _ਸਭ_ ਸੰਭਵਾਨਾਵਾਂ ਨਾਲ ਚਲਾਓ" #, fuzzy #~ msgid "Make a solver run with best architecture only." #~ msgstr "ਸੋਲਵਰ ਨੂੰ _ਸਭ_ ਸੰਭਵਾਨਾਵਾਂ ਨਾਲ ਚਲਾਓ" #, fuzzy #~ msgid "Start the next solver run with doubled timeout." #~ msgstr "ਸੋਲਵਰ ਨੂੰ _ਸਭ_ ਸੰਭਵਾਨਾਵਾਂ ਨਾਲ ਚਲਾਓ" libzypp-17.7.0/po/pl.po000066400000000000000000003214411334444677500147160ustar00rootroot00000000000000# Copyright (C) 2006 SuSE Linux Products GmbH, Nuernberg # This file is distributed under the same license as the package. # # Mariusz Fik , 2010, 2011, 2012, 2014, 2015. # Przemyslaw Bojczuk , 2013. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-19 14:22+0000\n" "Last-Translator: Ewelina Michalowska \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "WyjÄ…tek Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Niepewny typ '%s' dla %u-bajtowej sumy kontrolnej '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Nieznane paÅ„stwo: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Bez kodu" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andora" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Zjednoczone Emiraty Arabskie" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antyle Holenderskie" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktyda" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentyna" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa AmerykaÅ„skie" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Wyspy Alandzkie" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbejdżan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "BoÅ›nia i Hercegowina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesz" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "BuÅ‚garia" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrajn" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudy" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Boliwia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazylia" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamy" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Wyspa Bouveta" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "BiaÅ‚oruÅ›" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Wyspy Kokosowe" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Republika ÅšrodkowoafrykaÅ„ska" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Szwajcaria" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Wybrzeże KoÅ›ci SÅ‚oniowej" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Wyspy Cooka" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Chiny" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kostaryka" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Wyspy Zielonego PrzylÄ…dka" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Wyspa Bożego Narodzenia" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cypr" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Czechy" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Niemcy" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Dżibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dania" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikana" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algieria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekwador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sahara Zachodnia" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Erytrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Hiszpania" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlandia" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidżi" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandy (Malwiny)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronezja" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Wyspy Owcze" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francja" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Francja metropolitalna" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Zjednoczone Królestwo" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gruzja" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Gujana Francuska" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grenlandia" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Gwinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Gwadelupa" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Gwinea Równikowa" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grecja" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Georgia PoÅ‚udniowa i Sandwich PoÅ‚udniowy" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Gwatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Gwinea Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Gujana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Wyspy Heard i McDonalda" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Chorwacja" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "WÄ™gry" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezja" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlandia" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Wyspa Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indie" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Brytyjskie Terytorium Oceanu Indyjskiego" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islandia" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "WÅ‚ochy" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordania" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonia" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgistan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodża" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komory" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts i Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Korea Północna" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Korea PoÅ‚udniowa" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwejt" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kajmany" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazachstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "LaotaÅ„ska Republika Ludowo-Demokratyczna" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Liban" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litwa" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Åotwa" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "MoÅ‚dawia" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Czarnogóra" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint-Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Wyspy Marshalla" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birma" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Mariany Północne" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martynika" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauretania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Malediwy" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksyk" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malezja" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nowa Kaledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holandia" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norwegia" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nowa Zelandia" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinezja Francuska" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua - Nowa Gwinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipiny" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polska" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint-Pierre i Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Portoryko" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Autonomia PalestyÅ„ska" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalia" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragwaj" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunia" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Federacja Rosyjska" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabia Saudyjska" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Wyspy Salomona" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seszele" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Szwecja" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "ÅšwiÄ™ta Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "SÅ‚owenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard i Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "SÅ‚owacja" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Wyspy Åšw. Tomasza i Książęca" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Salwador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Suazi" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Wyspy Turks i Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Czad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Francuskie Terytoria PoÅ‚udniowe" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tajlandia" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadżykistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunezja" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor Wschodni" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turcja" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trynidad i Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tajwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Dalekie Wyspy Mniejsze Stanów Zjednoczonych" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Stany Zjednoczone Ameryki Północnej" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Urugwaj" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Watykan" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent i Grenadyny" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Wenezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Brytyjskie Wyspy Dziewicze" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "AmerykaÅ„skie Wyspy Dziewicze" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Wietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Republika Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis i Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Majotta" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Republika PoÅ‚udniowej Afryki" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Dostarcza" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Wymagania wstÄ™pne" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Wymaga" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflikty" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "ZastÄ™puje" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Zaleca" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Sugeruje" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Ulepsza" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "UzupeÅ‚nia" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Nie można otworzyć pseudoterminala (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Nie można otworzyć potoku (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Nie można wykonać polecenia chroot dla '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "Nie można wykonać polecenia chdir dla elementu %s w zmienionym katalogu " "głównym chroot %s (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Nie można wykonać polecenia chdir dla elementu '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Nie można wykonać '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Nie można wykonać fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Polecenie zakoÅ„czone statusem %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Polecenie zakoÅ„czone przez sygnaÅ‚ %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Polecenie zakoÅ„czone nieznanym błędem." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Próbowano zaimportować nieistniejÄ…cy klucz %s do bazy kluczy %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Nie udaÅ‚o siÄ™ zaimportować klucza." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "UsuniÄ™cie klucza nie powiodÅ‚o siÄ™." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Nie znaleziono pliku sygnatury %s" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Nieznany jÄ™zyk: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "abchaski" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "aceh" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "aczoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "adygejski" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "afroazjatyckie (inne)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "akadyjski" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "albaÅ„ski" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "aleucki" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "jÄ™zyki algonkiÅ„skie" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "aÅ‚tajski poÅ‚udniowy" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "amharski" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "staroangielski (ok. 450–1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "jÄ™zyki apaczaÅ„skie" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "arabski" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "aramejski" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "aragoÅ„ski" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ormiaÅ„ski" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "araukaÅ„ski" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "sztuczne (inne)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "arawakaÅ„skie" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "assamski" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "asturyjski" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "jÄ™zyki atapaskaÅ„skie" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "jÄ™zyki australijskie" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "awarski" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "awestyjski" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "ajmara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "azerbejdżaÅ„ski" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "jÄ™zyki bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "baszkirski" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "beludżyjski" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "balijski" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "baskijski" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "baÅ‚tyckie (inne)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "bedża" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "biaÅ‚oruski" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "bengalski" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "berberskie (inne)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "bhodżpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "biharski" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "bikolskie" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "bantu (inne)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "boÅ›niacki" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "bradż" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "bretoÅ„ski" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "batackie (Indonezja)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "buriacki" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "bugijski" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "buÅ‚garski" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "birmaÅ„ski" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "kadoskie" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Indian Å›rodkowoamerykaÅ„skich (inne)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "karaibski" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "kataloÅ„ski" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "kaukaskie (inne)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "celtyckie (inne)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "czibczaÅ„skie" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "czeczeÅ„ski" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "czagatajski" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "chiÅ„ski" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "czukocki" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "maryjski" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Dialekt czinucki" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "czipewiaÅ„ski" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "czerokeski" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "starocerkiewnosÅ‚owiaÅ„ski" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "czuwaski" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "czejeÅ„ski" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "jÄ™zyki chamickie" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "koptyjski" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "kornwalijski" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "korsykaÅ„ski" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreolskie i pidżyny oparte na angielskim (inne)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreolskie i pidżyny oparte na francuskim (inne)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreolskie i pidżyny oparte na portugalskim (inne)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "tatarski (krymski)" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreolskie i pidżyny różne (inne)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "kaszubski" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "kuszyckie (inne)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "czeski" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "duÅ„ski" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "dajackie" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "niewolnicze (atapaskaÅ„skie)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "malediwski" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "drawidyjskie (inne)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Å‚użycki dolny" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Å›rednioholenderski (ok. 1050–1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "holenderski" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "dzongka" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "egipski (starożytny)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "elamicki" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "angielski" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Å›rednioangielski (1100–1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "estoÅ„ski" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "fan" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "farerski" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "fante" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "fidżyjski" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "fiÅ„ski" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "ugrofiÅ„skie (inne)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "francuski" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Å›redniofrancuski (ok. 1400–1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "starofrancuski (842–ok. 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "fryzyjski" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "fulani" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "friulski" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "germaÅ„skie (inne)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "gruziÅ„ski" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "niemiecki" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ge'ez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "gilbertaÅ„ski" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "gaelicki (szkocki)" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "irlandzki" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "galicyjski" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "maÅ„ski" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Å›redniowysokoniemiecki (ok. 1050–1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "starowysokoniemiecki (ok. 750–1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "gorontalskie" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "gocki" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "grecki, starożytny (do 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "grecki, współczesny (1453–)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "gudżarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "hausaÅ„ski" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "hawajski" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "hebrajski" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "himaczali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "hetycki" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "hiri motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Å‚użycki górny" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "wÄ™gierski" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "islandzki" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "sichuan yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "interlingwe" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "ilokano" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "interlingua (MiÄ™dzynarodowe Stowarzyszenie JÄ™zyka Pomocniczego)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "indyjskie (inne)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "indonezyjski" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "indoeuropejskie (inne)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "inguski" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "inupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "iraÅ„skie (inne)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "jÄ™zyki irokeskie" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "wÅ‚oski" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "jawajski" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "japoÅ„ski" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "judeo-perski" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "udeo-arabski" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "karakaÅ‚packi" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "kabylski" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "kareÅ„ski" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "kaszmirski" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "kazachski" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "kabardyjski" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "khazi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "khoisan (inne)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "khmerski" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "chotaÅ„ski" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "kinjarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "kirgiski" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "koreaÅ„ski" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "keresaÅ„ski" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "karaczajsko-baÅ‚karski" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "kuruch" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "kwanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "kumycki" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "kurdyjski" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "laotaÅ„ski" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Å‚aciÅ„ski" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Å‚otewski" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "lezgiÅ„ski" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "limburgan" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "litewski" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "luksemburski" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "luba-lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "luba-katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "luo (Kenia i Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "macedoÅ„ski" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "madurski" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "marshall" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "makasarski" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "malajalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "maoryjski" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "jÄ™zyki malajo-polinezyjskie (inne)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "masajski" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "malajski" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "mandarski" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Å›rednioirlandzki (900–1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "micmac" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "jÄ™zyki różne" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "mon-khmerskie (inne)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "malgaski" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "maltaÅ„ski" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "mandżurski" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "jÄ™zyki manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "moÅ‚dawski" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "mongolski" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "WielojÄ™zyczność" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "jÄ™zyki munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "mirandyjski" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "jÄ™zyki majskie" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indian północnoamerykaÅ„skich (inne)" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "neapolitaÅ„ski" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "ndebele, poÅ‚udniowy" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "ndebele, północny" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "dolny niemiecki" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "nepalski" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "nepalski Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "niger-kordofaÅ„skie (inne)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "niueÅ„ski" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "norweski (nynorsk)" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "norweski (BokmÃ¥l)" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "staronordyjski" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "norweski" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "sotho północny" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "jÄ™zyki nubijskie" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "newari klasyczny" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "njamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "njankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "njoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "nzema" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "okcytaÅ„skie (po 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "odżibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "orija" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "osetyÅ„ski" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "turecki, osmaÅ„skie (1500–1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "jÄ™zyki otomiaÅ„skie" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "papuaskie (inne)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "pahlawi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "pampangan" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "pandżabski" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "palauaÅ„ski" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "staroperski (ok. 600–400 p.n.e.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "perski" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "filipiÅ„skie (inne)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "fenicki" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "polski" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ponapeaÅ„ski" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "portugalski" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakryty" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "staroprowansalski (do 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "pusztu" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "keczua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "radżastani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "rapanuaÅ„ski" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "rarotongaÅ„ski" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "romaÅ„skie (inne)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "retoromaÅ„ski" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "cygaÅ„ski / romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "rumuÅ„ski" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "rosyjski" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "jakucki" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indian poÅ‚udniowoamerykaÅ„skich (inne)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "jÄ™zyki saliskie" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "samarytaÅ„ski" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "sanskrycki" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "serbski" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "sycylyjski" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "szkocki" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "chorwacki" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "selkupski" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "semickie (inne)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "staroirlandzki (do 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "jÄ™zyki migowe" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "szan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "syngaleski" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "jÄ™zyki Siuksów" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "chiÅ„sko-tybetaÅ„skie (inne)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "sÅ‚owiaÅ„skie (inne)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "sÅ‚owacki" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "sÅ‚oweÅ„ski" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "lapoÅ„ski poÅ‚udniowy" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "lapoÅ„ski północny" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "jÄ™zyki sami (inne)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "lulu sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "inar sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "samoaÅ„ski" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "skolt sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "szona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "sogdyjski" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "somalijski" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "sotho poÅ‚udniowy" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "hiszpaÅ„ski" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "sardyÅ„skie" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "nilo-saharyjskie (inne)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "sundajski" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "sumeryjski" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "suahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "szwedzki" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "syryjski" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "tahitaÅ„ski" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "tajskie (inne)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "tamilski" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "tatarski" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "teme" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "tadżycki" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "tajski" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "tybetaÅ„ski" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "klingoÅ„ski" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "tamaszek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "tongaÅ„ski (Niasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "tangaÅ„ski (wyspy Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "neomelanezyjski" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "turkmeÅ„ski" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "tubuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "jÄ™zyki tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "turecki" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "jÄ™zyki aÅ‚tajskie (inne)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "twi (aszanti)" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "tuwiÅ„ski" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "udmurcki" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "ugarycki" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ujgurski" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ukraiÅ„ski" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "nieokreÅ›lony" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "uzbecki" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "wietnamski" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "volapűk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "wotski" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "jÄ™zyki wakasz" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "walijski" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "jÄ™zyki Å‚użyckie" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "jao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "japski" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "jidysz" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "joruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "jÄ™zyki yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "zapoteckie" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Wykonane zostanÄ… nastÄ™pujÄ…ce czynnoÅ›ci:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "nie wygasa" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "wygasÅ‚: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "wygasa: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(nie wygasa)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(WYGASÅY)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(wygasa w ciÄ…gu 24 godzin)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(wygasa w ciÄ…gu %d dnia)" msgstr[1] "(wygasa w ciÄ…gu %d dni)" msgstr[2] "(wygasa w ciÄ…gu %d dni)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Nie można odczytać katalogu repozytorium '%1%': odmowa dostÄ™pu" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Odczyt katalogu '%s' nie powiódÅ‚ siÄ™" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Nie można odczytać pliku repozytorium '%1%': odmowa dostÄ™pu" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Alias repozytorium nie może rozpoczynać siÄ™ od kropki." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Alias usÅ‚ugi nie może rozpoczynać siÄ™ od kropki." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Nie można otworzyć pliku '%s' do zapisu." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Nieznana usÅ‚uga '%1%': usuwanie osieroconego repozytorium usÅ‚ugi '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Pod podanym adresem URL nie znaleziono prawidÅ‚owych metadanych" msgstr[1] "Pod podanymi adresami URL nie znaleziono prawidÅ‚owych metadanych" msgstr[2] "Pod podanymi adresami URL nie znaleziono prawidÅ‚owych metadanych" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Nie można utworzyć %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Nie można utworzyć katalogu pamiÄ™ci podrÄ™cznej metadanych." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Budowanie pamiÄ™ci podrÄ™cznej repozytorium '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Nie można utworzyć pamiÄ™ci podrÄ™cznej w %s — brak uprawnieÅ„ do zapisu." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Tworzenie pamiÄ™ci podrÄ™cznej repozytorium nie powiodÅ‚o siÄ™ (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "NieobsÅ‚ugiwany typ repozytorium" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Błąd podczas próby odczytu z '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Nieznany błąd podczas odczytu z '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Dodawanie repozytorium '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "NieprawidÅ‚owa nazwa pliku repozytorium pod adresem '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Usuwanie repozytorium '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Nie można okreÅ›lić miejsca przechowywania repozytorium." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Nie można usunąć '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Nie można okreÅ›lić, gdzie jest przechowywana usÅ‚uga." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "NieprawidÅ‚owy ciÄ…g zapytania adresu URL LDAP" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "NieprawidÅ‚owy parametr zapytania URL LDAP '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Nie można sklonować obiektu URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "NieprawidÅ‚owe odwoÅ‚anie do pustego obiektu adresu URL" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Analiza komponentów URL nie powiodÅ‚a siÄ™" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nieznany" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "niewspierany" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Poziom 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Poziom 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Poziom 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Wymagana dodatkowa umowa użytkownika" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "nieprawidÅ‚owy" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "NieokreÅ›lony poziom wsparcia" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Producent nie zapewnia wsparcia." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "OkreÅ›lenie problemu oznacza, że pomoc techniczna obejmuje informacje na " "temat kompatybilnoÅ›ci, pomoc w zakresie instalacji, użytkowania i bieżącej " "konserwacji oraz podstawowego rozwiÄ…zywania problemów. Pomoc techniczna na " "poziomie 1 nie obejmuje naprawy błędów produktu." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Wyizolowanie problemu oznacza, że pomoc techniczna obejmuje odtworzenie " "problemów użytkownika, oddzielenie ich i dostarczenie rozwiÄ…zania problemów " "nieobjÄ™tych pomocÄ… technicznÄ… na poziomie 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "RozwiÄ…zywanie problemu: pomoc techniczna obejmuje rozwiÄ…zywanie zÅ‚ożonych " "problemów przy użyciu metod inżynieryjnych w celu naprawy defektów produktów " "zidentyfikowanych w ramach wsparcia technicznego na poziomie 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Do otrzymania pomocy technicznej wymagana jest dodatkowa umowa użytkownika." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Nieznana opcja wsparcia. Brak opisu" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "ZarzÄ…dzanie systemem jest zablokowane przez program o identyfikatorze pid %d " "(%s).\n" "ProszÄ™ zamknąć ten program i spróbować ponownie." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historia:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Nie można otworzyć pliku blokady : %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Inny program wykonuje już tÄ™ czynność." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Nieznany tryb dopasowania '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Nieznany tryb dopasowania '%s' dla wzorca '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "NieprawidÅ‚owe wyrażenie regularne '%s': regcomp zwróciÅ‚o %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "NieprawidÅ‚owe wyrażenie regularne '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Wymagane uwierzytelnienie dla '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "ProszÄ™ odwiedzić Centrum obsÅ‚ugi klienta firmy Novell, aby sprawdzić, czy " "rejestracja jest ważna i czy nie wygasÅ‚a." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Montowanie %s w %s zakoÅ„czone niepowodzeniem" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Odmontowywanie %s zakoÅ„czone niepowodzeniem" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Błędna nazwa pliku: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Nieotwarty noÅ›nik podczas próby wykonania akcji '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Pliku '%s' nie znaleziono na noÅ›niku '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Nie można zapisać pliku '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "NoÅ›nik niedołączony" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Błędny punkt dołączenia noÅ›nika" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Inicjalizacja pobierania (curl) dla '%s' zakoÅ„czona niepowodzeniem" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "WyjÄ…tek systemowy '%s' na noÅ›niku '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Åšcieżka '%s' na noÅ›niku '%s' nie prowadzi do pliku." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Åšcieżka '%s' na noÅ›niku '%s' nie prowadzi do katalogu." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Błędny adres URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Pusta nazwa hosta w adresie URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Pusty system plików w adresie URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Pusty element docelowy w adresie URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "NieobsÅ‚ugiwany schemat adresu URI w '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operacja nieobsÅ‚ugiwana przez noÅ›nik" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Błąd pobierania (curl) dla '%s':\n" "Kod błędu: %s\n" "Komunikat błędu: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Napotkano błąd podczas ustawiania opcji pobierania (curl) dla '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "ŹródÅ‚o noÅ›ników '%s' nie zawiera żądanego noÅ›nika" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "NoÅ›nik '%s' jest używany przez innÄ… instancjÄ™" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Nie można wysunąć żadnego noÅ›nika" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Nie można wysunąć noÅ›nika '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "DostÄ™p do '%s' zabroniony." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Przekroczono limit czasu podczas dostÄ™pu do '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "PoÅ‚ożenie '%s' jest tymczasowo niedostÄ™pne." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problem z certyfikatem SSL; proszÄ™ sprawdzić, czy certyfikat CA jest " "odpowiedni dla \"%s\"." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Tworzenie punktu dołączenia: nie można znaleźć katalogu z możliwoÅ›ciÄ… zapisu " "w celu utworzenia punktu dołączenia" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "NieobsÅ‚ugiwana metoda uwierzytelniania HTTP: '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Zainstaluj najpierw pakiet 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Brak wymaganego atrybutu '%s'." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Wymagany jeden lub oba atrybuty '%s' i '%s'." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Weryfikacja podpisu nie powiodÅ‚a siÄ™" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Pakiet %s wyglÄ…da na uszkodzony podczas przesyÅ‚ania. Czy ponowić próbÄ™ " "pobrania?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Nie można dostarczyć pakietu %s. Czy ponowić próbÄ™ pobrania?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Sprawdzenie applydeltarpm zakoÅ„czone niepowodzeniem." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm zakoÅ„czone niepowodzeniem." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Wtyczka usÅ‚ugi nie obsÅ‚uguje zmiany atrybutu." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Nie można dostarczyć pliku '%s' z repozytorium '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Brak adresu URL w repozytorium." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Plik %1%\n" " z pakietu\n" " %2%\n" " jest w konflikcie z plikiem z pakietu\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Plik %1%\n" " z pakietu\n" " %2%\n" " jest w konflikcie z plikiem z instalacji\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Plik %1%\n" " z instalacji\n" " %2%\n" " jest w konflikcie z plikiem z pakietu\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Plik %1%\n" " z instalacji\n" " %2%\n" " jest w konflikcie z plikiem z instalacji\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Plik %1%\n" " z pakietu\n" " %2%\n" " jest w konflikcie z plikiem\n" " %3%\n" " z pakietu\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Plik %1%\n" " z pakietu\n" " %2%\n" " jest w konflikcie z plikiem\n" " %3%\n" " z instalacji\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Plik %1%\n" " z instalacji\n" " %2%\n" " jest w konflikcie z plikiem\n" " %3%\n" " z pakietu\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Plik %1%\n" " z instalacji\n" " %2%\n" " jest w konflikcie z plikiem\n" " %3%\n" " z instalacji\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Nie można utworzyć sat-pool." # break odnosi siÄ™ do możliwego zepsucia wynikajÄ…cego ze zignorowania zależnoÅ›ci, wiÄ™c "zainstaluj" wydaje siÄ™ tu wÅ‚aÅ›ciwe. Fisiu #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "zainstaluj %s, ignorujÄ…c niektóre z zależnoÅ›ci" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "zazwyczaj ignoruje pewne zależnoÅ›ci" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s nie należy do repozytorium uaktualniania dystrybucji" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s jest przewidziany dla niższej architektury" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problem z zainstalowanym pakietem %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "sprzeczne żądania" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "problem z kilkoma zależnoÅ›ciami" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "żaden pakiet nie dostarcza żądanego %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Czy włączono wszystkie wymagane repozytoria?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "pakiet %s nie istnieje" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "nieobsÅ‚ugiwane żądanie" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "Element %s jest dostarczany przez system i nie można go usunąć" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s nie można zainstalować" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "żaden pakiet nie dostarcza %s wymaganego przez %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "nie można jednoczeÅ›nie zainstalować %s i %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s jest w konflikcie z %s dostarczonym przez %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s dezaktualizuje %s, dostarczony przez %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s dezaktualizuje %s, dostarczony przez %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" "Element rozwiÄ…zywalny %s jest w konflikcie z %s, dostarczonym przez samego " "siebie" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s wymaga %s, lecz nie można speÅ‚nić tego wymagania" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "usuniÄ™ci dostawcy: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "dostawcy, których nie można zainstalować: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "dostawcy, których nie można zainstalować: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "usuÅ„ blokadÄ™, aby umożliwić usuniÄ™cie %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "nie instaluj %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "zachowaj %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "usuÅ„ blokadÄ™, aby umożliwić instalacjÄ™ %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "To żądanie uszkodzi system!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignoruj ostrzeżenie o uszkodzeniu systemu" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" "nie pytaj o instalacjÄ™ wszystkich elementów rozwiÄ…zywalnych, dostarczajÄ…cych " "%s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" "nie pytaj o usuniÄ™cie wszystkich elementów rozwiÄ…zywalnych, dostarczajÄ…cych " "%s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "nie instaluj najnowszej wersji %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "zachowaj %s, mimo niższej architektury" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "zainstaluj %s, mimo niższej architektury" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "zachowaj starszÄ… wersjÄ™ %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "zainstaluj %s z wyłączonego repozytorium" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "przywróć %s do %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "zmiana architektury z %s na %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "zainstaluj %s (ze zmianÄ… dostawcy)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "zamiana %s na %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "usuniÄ™cie %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Wykonywanie skryptu %%posttrans '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Wykonywanie skryptów %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " wykonano" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " wykonanie nie powiodÅ‚o siÄ™" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s zostaÅ‚ już wykonany jako %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " nie wykonano w wyniku przerwania" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Błąd podczas wysyÅ‚ania powiadomienia o aktualizacji." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nowy komunikat o aktualizacji" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Instalacja przerwana zgodnie z życzeniem." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Ta wersja libzypp nie zawiera obsÅ‚ugi HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext niepołączony" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive: niezainicjowany" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume: niezainicjowany" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Nie można utworzyć połączenia dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: nie można utworzyć kontekstu libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: nie można ustanowić połączenia dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Nie można zainicjować kontekstu HAL — demon hald nie jest uruchomiony?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "To nie jest napÄ™d CD-ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "WystÄ…piÅ‚ błąd RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Nie udaÅ‚o siÄ™ zaimportować klucza publicznego z pliku %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "UsuniÄ™cie klucza publicznego nie powiodÅ‚o siÄ™ %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Pakiet nie jest podpisany!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Zmienione pliki konfiguracyjne dla %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm zapisaÅ‚ %s jako %s, ale nie można byÅ‚o okreÅ›lić różnicy" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm zapisaÅ‚ %s jako %s.\n" "Oto pierwszych 25 linii różnicy:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm utworzyÅ‚ %s jako %s, ale nie można byÅ‚o okreÅ›lić różnicy" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm utworzyÅ‚ %s jako %s.\n" "Oto pierwszych 25 linii różnicy:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Dodatkowe wyjÅ›cie rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "utworzono zapasowy %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Podpis jest OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Nieznany rodzaj podpisu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Nie można sprawdzić podpisu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Podpis jest OK, ale klucz nie jest zaufany" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Klucz publiczny podpisów nie jest dostÄ™pny" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Plik nie istnieje lub nie można sprawdzić podpisu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Plik jest niepodpisany" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Nie można zainicjować atrybutów muteksu" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Nie można ustawić atrybutu rekurencyjnoÅ›ci muteksu" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Nie można zainicjować rekurencyjnego muteksu" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Nie można pobrać blokady muteksu" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Nie można zwolnić blokady muteksu" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Schemat URL nie zezwala na %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "NieprawidÅ‚owe: %s, komponent: '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Komponent — nieprawidÅ‚owe: %s" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Analiza zapytania nie jest obsÅ‚ugiwana dla tego adresu URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Schemat URL to wymagany komponent" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "NieprawidÅ‚owy schemat URL '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Schemat URL nie zezwala na nazwÄ™ użytkownika" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Schemat URL nie zezwala na hasÅ‚o" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Schemat URL wymaga komponentu hosta" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Schemat URL nie zezwala na komponent hosta" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "NieprawidÅ‚owy komponent hosta '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Schemat URL nie zezwala na port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "NieprawidÅ‚owy komponent portu '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Schemat URL wymaga nazwy Å›cieżki" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "WzglÄ™dna Å›cieżka nie jest dozwolona, jeÅ›li usÅ‚uga istnieje" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Zakodowany Å‚aÅ„cuch znaków zawiera bajt NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "NieprawidÅ‚owy znak parametru podziaÅ‚u tablicy" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "NieprawidÅ‚owy znak parametru podziaÅ‚u mapy" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "NieprawidÅ‚owy znak parametru połączenia tablicy" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Nie udaÅ‚o siÄ™ zaimportować klucza publicznego z pliku %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "UsuniÄ™cie klucza publicznego nie powiodÅ‚o siÄ™ %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Nie można znaleźć dostÄ™pnego urzÄ…dzenia pÄ™tli do zamontowania pliku " #~ "obrazu z '%s'" #~ msgid "do not keep %s installed" #~ msgstr "nie utrzymuj zainstalowanego %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "Nie można utworzyć klucza publicznego %s z zestawu %s do pliku %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "" #~ "Inicjalizacja pobierania (Metalink curl) dla '%s' zakoÅ„czona " #~ "niepowodzeniem" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Błąd pobierania (metalink curl) dla '%s':\n" #~ "Kod błędu: %s\n" #~ "Komunikat błędu: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Przerwano pobieranie na %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Pobieranie przerwane przez użytkownika" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Napotkano błąd podczas ustawiania opcji pobierania (metalink curl) dla " #~ "'%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Nie udaÅ‚o siÄ™ pobrać %s z %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia i Czarnogóra" libzypp-17.7.0/po/pt.po000066400000000000000000003615631334444677500147370ustar00rootroot00000000000000# translation of zypp.pt.po to Portuguese # PORTUGUESE message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999-2000, 2001 SuSE GmbH. # # Bruno David Rodrigues , 2000. # João Teles , 1999-2000. # Antonio Cardoso Martins , 2006, 2007, 2008. # Carlos Gonçalves , 2007. msgid "" msgstr "" "Project-Id-Version: zypp.pt\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2008-06-10 16:04+0100\n" "Last-Translator: Antonio Cardoso Martins \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" ">\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Excepção Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipo '%s' dúbio para soma de verificação de %u byte '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Pais desconhecido:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Sem Código" # name for AND #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emirados Ãrabes Unidos" # name for AFG #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afeganistão" # name for ATG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antígua e Barbuda" # name for AIA #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguila" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albânia" # name for ARM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Arménia" # name for ANT #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antilhas Holandesas" # name for AGO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # name for ATA #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antárctida" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # name for ASM #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Americana" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Ãustria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Austrália" # name for ABW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # name for ALA #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ilhas Aland" # name for AZE #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijão" # name for BIH #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bósnia e Herzegovina" # name for BRB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Bélgica" # name for BFA #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burquina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgária" # name for BHR #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Barém" # name for BDI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # name for BEN #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benim" # name for BMU #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudas" # name for BRN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolívia" # name for BRA #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" # name for BHS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Baamas" # name for BTN #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Butão" # name for BVT #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Ilha Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" # name for BLZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canadá" # name for CCK #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Ilhas Cocos" # name for COG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" # name for CAF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "República Central Africana" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Suíça" # name for CIV #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Costa do Marfim" # name for COK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Ilhas Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" # name for CMR #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camarões" # name for CHN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colômbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # name for CUB #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" # name for CPV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cabo Verde" # name for CXR #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Ilha Christmas" # name for CYP #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Chipre" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "República Checa" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Alemanha" # name for DJI #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Jibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dinamarca" # name for DMA #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Domínica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "República Dominicana" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algéria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Equador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estónia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipto" # name for ESH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sara Ocidental" # name for ERI #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritreia" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Espanha" # name for ETH #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiópia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlândia" # name for FJI #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" # name for FLK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Ilhas Falkland (Malvinas)" # official_name for FSM #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Estados Federados da Micronésia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Ilhas Faroé" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "França" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "França Metropolitana" # name for GAB #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabão" # name for GBR #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Reino Unido" # name for GRD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Granada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" # name for GUF #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guiana Francesa" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Alemanha" # name for GHA #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" # name for GIB #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Gronelândia" # name for GMB #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gâmbia" # name for GIN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guiné" # name for GLP #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadalupe" # name for GNQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guiné Equatorial" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grécia" # name for SGS #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Ilhas Geórgia do Sul e Sandwich do Sul" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" # name for GUM #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # name for GNB #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guiné-Bissau" # name for GUY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guiana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # name for HMD #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Ilhas Heard e McDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croácia" # name for HTI #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungria" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonésia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Ãndia" # name for IOT #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Território Britânico do Oceano Ãndico" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraque" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irão" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islândia" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Itália" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" # name for JAM #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordânia" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japão" # name for KEN #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Quénia" # name for KGZ #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Quirguizistão" # name for KHM #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Camboja" # name for KIR #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Quiribati" # name for COM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoros" # name for KNA #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "São Cristóvão e Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Coreia do Norte" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Coreia do Sul" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" # name for CYM #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Ilhas Caimão" # name for KAZ #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Cazaquistão" # name for LAO #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "República Democrática Popular do Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Líbano" # name for LCA #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Santa Lúcia" # name for LIE #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Listenstaine" # name for LKA #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanca" # name for LBR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libéria" # name for LSO #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituânia" # name for LUX #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburgo" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" # name for LBR #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Líbia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marrocos" # name for MCO #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Mónaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldávia" # name for SCG #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" # name for SMR #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "São Marino" # name for MDG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagáscar" # name for MHL #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Ilhas Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedónia" # name for MLI #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # name for MMR #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mianmar" # name for MNG #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongólia" # name for MAC #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macau" # name for MNP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Marianas do Norte" # name for MTQ #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" # name for MRT #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritânia" # name for MSR #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Monserrate" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # name for MUS #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Maurícia" # name for MDV #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldivas" # name for MWI #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malavi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "México" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malásia" # name for MOZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Moçambique" # name for NAM #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namíbia" # name for NCL #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Caledónia" # name for NER #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Níger" # name for NFK #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Ilha Norfolk" # name for NGA #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigéria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicarágua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holanda" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noruega" # name for NPL #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" # name for NRU #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # name for NIU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nova Zelândia" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omã" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panamá" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perú" # name for PYF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinésia Francesa" # name for PNG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papuásia-Nova Guiné" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipinas" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Paquistão" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polónia" # name for SPM #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "São Pedro e Miquelon" # name for PCN #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" # official_name for PSE #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Território Palestiniano" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" # name for PLW #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" # name for REU #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunião" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Roménia" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Sérvia" # name for RUS #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Federação da Rússia" # name for RWA #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arábia Saudíta" # name for SLB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Ilhas Salomão" # name for SYC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seicheles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudão" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suécia" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapura" # name for SHN #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Santa Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Eslovénia" # name for SJM #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard e Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Eslováquia" # name for SLE #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Serra Leoa" # name for SMR #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "São Marino" # name for SEN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # name for SOM #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somália" # name for SUR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" # name for STP #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé e Príncipe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Síria" # name for SWZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Suazilândia" # name for TCA #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Ilhas Turcas e Caicos" # name for TCD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chade" # name for ATF #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Territórios Austrais Franceses" # name for TGO #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailândia" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tajiquistão" # name for TKL #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # name for TKM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turquemenistão" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunísia" # name for TON #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor Leste" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turquia" # name for TTO #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidade e Tobago" # name for TUV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzânia" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucrânia" # name for UGA #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # name for UMI #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Ilhas Menores Distantes dos Estados Unidos" # name for USA #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Estados Unidos" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbequistão" # name for VAT #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Santa Sé (Estado da Cidade do Vaticano)" # name for VCT #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "São Vicente e Granadinas" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # official_name for VGB #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Ilhas Virgens Britânicas" # name for VIR #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Ilhas Virgens Americanas, E.U." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietname" # name for VUT #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # name for WLF #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis e Futuna" # name for WSM #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Iémen" # name for MYT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Ãfrica do Sul" # name for ZMB #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zâmbia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabué" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Providencia" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Requer" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Conflitua" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Obsoletos" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recomenda" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Sugere" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Melhorar" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Suplementos" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Não foi possível abrir o pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Não é possível abrir o pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Não é possível fazer chroot para '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Não é possível executar '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Não é possível bifurcar (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Comando terminou com estado %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Comando foi morto pelo sinal %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Comando terminou com erro desconhecido." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Falha ao importar a chave pública %1%" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Falha ao apagar chave." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Ficheiro de assinatura %s não encontrado" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Idioma desconhecido: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazião" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinese" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiático (Outra)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadian" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanês" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Idiomas Algonquianos" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai do Sul" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amárico" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Inglês Antigo (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Idiomas Apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Ãrabe" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaic" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonese" # name for ARM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Arménio" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucanian" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificial (Outro)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" # /usr/lib/YaST2/clients/logcontrol.ycp:64 #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiano" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Idiomas Athapascan" # /usr/lib/YaST2/clients/sw_single.ycp:12 #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Idiomas Australianos" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaric" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestão" # name for SWZ #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" # name for MMR #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbeijão" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" # /usr/lib/YaST2/clients/sw_single.ycp:12 #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Idiomas Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinese" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basco" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Báltico (Outro)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorusso" # name for BMU #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber (Outro)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" # name for HTI #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (Outro)" # name for BEN #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bósnio" # name for BRA #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretão" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonésia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Búlgaro" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmês" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Ãndio América Central (Outro)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalão" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasiano (Outro)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Céltico (Outro)" # name for COM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" # name for CHN #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Checheno" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinês" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" # name for MLI #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Jargão Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Church Slavic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Idiomas Chamic" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Coptic" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corsicano" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Criolo e Pidgins, Baseados em Inglês (Outros)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Criolo e Pidgins, Baseados em Francês (Outros)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Criolo e Pidgins, Baseados em Português (Outros)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Crimean Tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Criolo e Pidgins (Outros)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kashubian" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitic (Outro)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Checo" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dinamarquês" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidian (Outro)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Baixo-Sórbio" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Holandês, Médio (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandês" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" # name for TON #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egípcio (Antigo)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglês" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Inglês, Médio (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estónio" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroês" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" # name for FJI #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijiano" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finlandês" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finno-Ugrian (Outro)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francês" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francês, Médio (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francês, Antigo (842-ca.1400)" # /usr/lib/YaST2/clients/adsl_custom.ycp:115 #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisão" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" # /usr/lib/YaST2/clients/adsl_custom.ycp:115 #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulian" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" # name for GAB #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germânico (Outros)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiano" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Alemão" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertês" # name for MLI #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaélico" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandês" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galêgo" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Alemão, Médio Alto (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Alemão, Alto Antigo (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gótico" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grêgo, Antigo (até 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grêgo, Moderno (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" # name for HTI #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiano" # /usr/lib/YaST2/clients/remotechooser.ycp:37 #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Havaiano" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreu" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" # name for HTI #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" # name for HTI #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hittite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" # name for HTI #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Sórbio Alto" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Húngaro" # /usr/lib/YaST2/clients/remotechooser.ycp:37 #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandês" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" # /usr/lib/YaST2/clients/logcontrol.ycp:69 #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indic (Outro)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonês" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-Europeu (Outro)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraniano (Outro)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Idiomas Iroquoians" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiano" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanês" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonês" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeu-Persa" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeu-Arábico" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" # name for KAZ #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (Outro)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Jemer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanês" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" # name for COG #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreano" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Curdo" # name for KEN #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latim" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letão" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgan" # name for AGO #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituano" # name for COG #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" # name for LUX #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburguês" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" # name for GHA #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenia e Tanzânia)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedónio" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurês" # name for MUS #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" # name for MHL #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshalês" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" # name for MDG #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" # name for MLI #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronésio (Outro)" # name for MUS #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" # name for MWI #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malaio" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" # name for MMR #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" # According to QIM Screenshot # -ke- #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandês, Médio (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Idiomas Vários" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (Outro)" # name for MDG #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasy" # name for MDV #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltês" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" # name for MLI #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Idiomas Manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldávo" # name for MNG #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" # /usr/lib/YaST2/clients/sw_single.ycp:12 #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Idiomas Múltiplos" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Idiomas Mundas" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Grêgo" # name for MDV #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandês" # name for MUS #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Idiomas Mayan" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Ãndio Norte Americano" # name for NPL #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitan" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, Sul" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, Norte" # name for TON #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Alemão Baixo" # name for NPL #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalês" # name for NPL #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanian (Outro)" # name for NIU #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Nynorsk Norueguês" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Bokmal Norueguês" # name for TON #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norse, Antigo" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norueguês" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho do Norte" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Idiomas Nubian" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari Clássico" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (posto 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turco, Otomano (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Idiomas Otomian" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuan (Outro)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" # name for MLI #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" # name for PLW #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persa, Antigo (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persa" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipino (Outro)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Phoenician" # name for MLI #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polaco" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Português" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Idiomas Prakrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provençal, Antigo (até 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" # name for KAZ #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romance (Outro)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Raeto-Romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romeno" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romeno" # name for REU #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russo" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" # name for WSM #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Ãndio da América so Sul (Outro)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Idiomas Salishan" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Aramaico Samaritano" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanscrito" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Sérvio" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliano" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Escocês" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croata" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semítico (Outro)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandês, Antigo (até 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Linguagem Gestual" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" # name for WSM #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" # name for AGO #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Idiomas Siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetano (Outro)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Eslavo" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Eslovaco" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Esolveno" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami Meridional" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami Setentrional" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Idiomas Sami (Outros)" # name for WSM #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" # name for WSM #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoano" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" # workflow: "Software-Auswahl" # -ke- #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" # name for SOM #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalês" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, Meridional" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Espanhol" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardiniano" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-Saharan (Outro)" # name for HTI #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanese" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumério" # name for SWZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Sueco" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siríaco" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Taitiano" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tailandêses (Outros)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tailandês" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetano" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" # name for NGA #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinha" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" # name for SLB #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Olhas Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" # /usr/lib/YaST2/clients/adsl_custom.ycp:115 #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" # name for TON #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turcomano" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Idiomas Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turco" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaico (Outro)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuviniano" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" # name for HTI #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritic" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucraniano" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" # /usr/lib/YaST2/clients/logcontrol.ycp:69 #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Indeterminado" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamita" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Idiomas Wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Gaulês" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Idiomas Sórbio" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yiddish" # name for ABW #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Idiomas Yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" # name for BTN #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" # name for TUV #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "As seguintes acções serão realizadas:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Falha na interpretação de %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "O nome da MV não pode iniciar com um dígito." #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "O nome da MV não pode iniciar com um dígito." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Não é possível abrir ficheiro para escrita." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Não foi encontrada uma metadata válida no(s) URL(s) especificado(s)" msgstr[1] "Não foi encontrada uma metadata válida no(s) URL(s) especificado(s)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Não é possível criar %s: %m\n" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "A limpar a cache dos metadados raw de '%s'." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "A construir a cache do repositório '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Falha na interpretação de %s." #: zypp/RepoManager.cc:1392 #, fuzzy msgid "Unhandled repository type" msgstr "Repositório activado" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, fuzzy, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Erro ao interpretar a metadata de '%s':" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Comando '%s' desconhecido" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "A Adicionar repositório '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ficheiro de exportação inválido." #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "A remover o repositório '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Não é possível ejectar o suporte '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Cadeia de interrogação URL de LDAP inválida" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parâmetro '%s' de interrogação URL de LDAP inválido" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Não é possível clonar o objecto Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Referência para objecto Url vazia é inválida" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Não é possível interpretar os componentes Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "desconhecido" #: zypp/VendorSupportOptions.cc:17 #, fuzzy msgid "unsupported" msgstr " - não suportado" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "O disco não existe." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, fuzzy, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "A gestão do sistema está bloqueada pela aplicação com pid %d. Por favor " "encerre esta aplicação antes de tentar novamente." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Histórico:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Não é possível abrir ficheiro de bloqueio: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Esta acção já está a ser executada por outro programa." #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Comando '%s' desconhecido" #: zypp/base/StrMatcher.cc:153 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Digest %s desconhecido para o ficheiro %s." #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expressão regular inválida '%s': regcomp devolveu %d" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expressão regular inválida '%s': regcomp devolveu %d" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autenticação requerida para '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Falha ao montar %s em %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Falha ao desmontar %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nome de ficheiro incorrecto: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Ficheiro '%s' não foi encontrado no suporte '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Não é possível escrever o ficheiro '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Mau ponto de ligação com o suporte" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Inicialização da descarga (curl) falhou para '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI mal formado" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nome de computador vazio no URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Sistema de ficheiros vazio no URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destino vazio no URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Esquema de URI não suportado em '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Erro de descarga (curl) para '%s':\n" "Código do erro: %s\n" "Mensagem do erro: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Ocorreu um erro durante a definição das opções de descarga (curl) para '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Não é possível ejectar nenhum suporte" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Não é possível ejectar o suporte '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Foi negada a autorização para aceder a '%s'." #: zypp/media/MediaException.cc:187 #, fuzzy, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Tempo limite excedido quando acedia a '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " problema no certificado SSL, verifique se o certificado de CA é OK para " "'%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Método '%s' de autenticação HTTP não suportado" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, fuzzy, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Está em falta um ficheiro necessário: " #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "O pacote %s falhou a verificação de integridade. Pretende tentar novamente?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "O pacote %s falhou a verificação de integridade. Pretende tentar novamente?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "falhou a verificação applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "falhou o applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Não é possível fornecer o ficheiro '%s' a partir do repositório '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Nenhum url no repositório." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Não é possível criar o sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Ignorar de uma forma geral algumas dependências" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s fornece %s, mas tem outra arquitectura." #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problema com o pacote %s instalado" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "pedidos em conflito" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Não foi possível instalar %s devido a problemas de dependências" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "nada fornece %s solicitado" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s não é instalável" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "nada fornece %s necessário por %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "não é possível instalar tanto %s como %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s conflitua com %s fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s torna obsoleto %s fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s torna obsoleto %s fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "Resolúvel %s conflitua com %s fornecido por ele próprio" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s requer %s, mas este requisito não pode ser fornecido" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "fornecedores apagados: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "fornecedores não instaláveis: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "fornecedores não instaláveis: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "não instalar %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "manter %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "não perguntar para instalar um resolúvel que fornece %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "não perguntar para apagar todos os resolúveis que fornecem %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "não instalar a versão mais recente de %s" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s fornece %s, mas tem outra arquitectura." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "instalar %s apesar de alterar a arquitectura" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s obsoleto %s" #: zypp/solver/detail/SATResolver.cc:1300 #, fuzzy, c-format, boost-format msgid "install %s from excluded repository" msgstr "Repositório activado" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "desactualização de %s para %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "alteração de arquitectura de %s para %s" #: zypp/solver/detail/SATResolver.cc:1336 #, fuzzy, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instalar %s (com alteração do vendedor)\n" " %s\n" "-->\n" " %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "substituição de %s por %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "desinstalação de %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "Executar" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "Falhou a Execução DBI: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "A instalação foi interrompida conforme indicado." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext não ligado" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive não inicializado" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume não inicializado" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Não foi possível criar a ligação dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Não é possível criar o contexto libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Não é possível definir a ligação dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "Não foi possível inicializar o contexto HAL -- o hald não está em execução?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Não é uma unidade de CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "falha no RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Falha ao importar a chave pública %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Falha ao remover a chave pública %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Ficheiros de configuração modificados para %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "o rpm %s foi guardado como %s, mas foi impossível determinar a diferença" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "o rpm %s foi guardado com %s.\n" "Tem as primeiras 25 linhas diferentes:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "o rpm %s foi criado como %s, mas foi impossível determinar a diferença" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "o rpm %s foi criado com %s.\n" "Tem as primeiras 25 linhas diferentes:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Resultado adicional do rpm:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "cópia de segurança %s criada" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Não é possível inicializar os atributos da mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Não é possível definir o atributo da mutex recursiva" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Não é possível inicializar a mutex recursiva" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Não foi possível adquirir o bloqueio da mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Não foi possível libertar o bloqueio da mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "O esquema url não permite um %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "componente %s inválido '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Componente %s inválido" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Interpretação da cadeia de interrogação não é suportado para este URL." #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "O esquema de url é um componente requerido" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Esquema de Url inválido '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "O esquema do Url não permite um nome de utilizador" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "O esquema do Url não permite uma palavra passe" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "O esquema de Url requer um componente de computador (host)" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "O esquema do Url não permite um componente de computador (host)" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Componente de computador inválido '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "O esquema de Url não permite um porto" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Componente de porto inválido '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "O esquema de Url requer um nome de caminho" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Caminho relativo não é permitido se a autoridade existe" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "A cadeia codificada contém um byte NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Parâmetro do caracter do separador de dívisão da lista inválido" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Parâmetro do caracter do separador de divisão do mapa inválido" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Parâmetro do caracter do separador de junção da lista inválido" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Falha ao importar a chave pública do ficheiro %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Falha ao remover a chave pública %s: %s" #, fuzzy #~ msgid "generally ignore of some dependecies" #~ msgstr "Ignorar de uma forma geral algumas dependências" #~ msgid "do not forbid installation of %s" #~ msgstr "não proibir a instalação de %s" #~ msgid "do not keep %s installed" #~ msgstr "não manter %s instalado" #~ msgid "Download interrupted at %d%%" #~ msgstr "توق٠التحميل ÙÙŠ %d%%" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Não é possível criar a chave pública %s a partir do chaveiro %s para o " #~ "ficheiro %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "Tentativa de importar uma chave %s não existente no chaveiro %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Não é possível fazer chdir para '/' dentro do chroot (%s)." #, fuzzy #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Inicialização da descarga (curl) falhou para '%s'" #, fuzzy #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Erro de descarga (curl) para '%s':\n" #~ "Código do erro: %s\n" #~ "Mensagem do erro: %s\n" #, fuzzy #~ msgid "Download interrupted by user" #~ msgstr "A descarregar grupos" #, fuzzy #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Ocorreu um erro durante a definição das opções de descarga (curl) para " #~ "'%s':" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Falha ao montar %s em %s" # name for SCG #~ msgid "Serbia and Montenegro" #~ msgstr "Sérvia e Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Opção de lista desconhecida" #, fuzzy #~| msgid "Ignore some dependencies of %s" #~ msgid "ignore some dependencies of %s" #~ msgstr "Ignorar algumas dependências de %s" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "O ficheiro %s não tem uma soma de verificação.\n" #~ "Utilizar este ficheiro de qualquer das formas?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "O ficheiro %s falhou a verificação de integridade com a seguinte chave:\n" #~ "%s|%s|%s\n" #~ "Utilizar o ficheiro de qualquer das formas?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "O ficheiro %s tem um checksum inválido.\n" #~ "Esperava-se %s, mas foi encontrado %s\n" #~ "Utilizar o ficheiro de qualquer das formas?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "O ficheiro %s tem um checksum %s desconhecido.\n" #~ "Utilizar o ficheiro de qualquer das formas?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "O ficheiro %s não está assinado.\n" #~ "Utilizá-lo de qualquer das formas?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "O ficheiro %s está assinado com uma chave desconhecida:\n" #~ "%s|%s|%s\n" #~ "Utilizar o ficheiro de qualquer das formas?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Foi encontrada uma chave que não é de confiança:\n" #~ "%s|%s|%s\n" #~ "Confiar na chave?" #~ msgid "%s remove failed" #~ msgstr "Falha ao remover %s" #~ msgid "Invalid user name or password." #~ msgstr "Nome de utilizador ou palavra passe inválidos." #~ msgid "rpm output:" #~ msgstr "resultado do rpm:" #~ msgid "%s install failed" #~ msgstr "Falhou a instalação de %s" #~ msgid "%s installed ok" #~ msgstr "%s instalado com sucesso" #~ msgid "%s remove ok" #~ msgstr "%s removido com sucesso" libzypp-17.7.0/po/pt_BR.po000066400000000000000000003647131334444677500153220ustar00rootroot00000000000000# translation of zypp.po to Brazilian Portuguese # Portugese (Brasilian) message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999-2000, 2001 SuSE GmbH. # # Karl Eichwalder , 1999. # Ralf Lanz , 1999. # Isis Binder , 2008, 2010. # Luiz Fernando Ranghetti , 2008. # Luiz Fernando Ranghetti , 2008, 2009, 2012, 2013, 2014, 2015, 2016. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-03 11:27+0000\n" "Last-Translator: Rodrigo Macedo \n" "Language-Team: Portuguese (Brazil) " "\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 2.18\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: BRAZIL\n" "X-Poedit-SourceCharset: utf-8\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Exceção de Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tipo '%s' duvidoso da soma de verificação de bytes %u ('%s')" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "País desconhecido: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Sem código" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emirados Ãrabes Unidos" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afeganistão" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antígua e Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguila" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albânia" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armênia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antilhas Holandesas" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antártida" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Americana" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Ãustria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Austrália" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ilhas Ã…land" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijão" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bósnia e Herzegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Bélgica" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgária" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Barein" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudas" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolívia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Butão" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Ilha Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botsuana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canadá" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Ilhas Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "República Centro-Africana" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Suíça" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Costa do Marfim" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Ilhas Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camarões" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colômbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cabo Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Ilha Christmas" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Chipre" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "República Checa" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Alemanha" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dinamarca" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "República Dominicana" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Argélia" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Equador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estônia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egito" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Saara Ocidental" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritreia" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Espanha" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiópia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlândia" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Ilhas Malvinas (Falkland)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Estados Federados da Micronésia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Ilhas Feroe" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "França" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "França metropolitana" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabão" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Reino Unido" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Granada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Geórgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guiana Francesa" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenlândia" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gâmbia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guiné" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadalupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guiné Equatorial" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grécia" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Ilhas Geórgia do Sul e Sandwich do Sul" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guiné-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guiana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Ilha Heard e Ilhas McDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croácia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungria" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonésia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Ilha de Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Ãndia" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Território Britânico do Oceano Ãndico" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraque" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irã" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islândia" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Itália" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordânia" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japão" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Quênia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Quirguistão" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Camboja" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comores" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "São Cristóvão e Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Coreia do Norte" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Coreia do Sul" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Ilhas Cayman" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Cazaquistão" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Líbano" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Santa Lúcia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libéria" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituânia" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburgo" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letônia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Líbia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marrocos" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Mônaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldávia" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "São Martinho" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Ilhas Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedônia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mianmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongólia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macau" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Ilhas Marianas do Norte" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritânia" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Ilhas Maurício" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldivas" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "México" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malásia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Moçambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namíbia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Caledônia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Níger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Ilha Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigéria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicarágua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holanda" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Noruega" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauruano" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nova Zelândia" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omã" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panamá" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinésia Francesa" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nova Guiné" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipinas" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Paquistão" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polônia" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre e Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Ilhas Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Território Palestino" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguai" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Catar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Ilha Reunião" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romênia" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Sérvia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Rússia" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arábia Saudita" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Ilhas Salomão" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seicheles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudão" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suécia" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Cingapura" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Santa Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Eslovênia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Ilhas Svalbard e Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Eslováquia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Serra Leoa" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somália" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé e Príncipe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Síria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Suazilândia" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Ilhas Turks e Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chade" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Terras Austrais e Antárticas Francesas" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailândia" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadjiquistão" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turcomenistão" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunísia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timor-Leste" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turquia" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad e Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvaluano" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzânia" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucrânia" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Ilhas Menores Distantes dos Estados Unidos" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Estados Unidos" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguai" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbequistão" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Santa Sé (Cidade do Vaticano)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "São Vicente e Granadinas" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Ilhas Virgens Britânicas" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Ilhas Virgens Americanas" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnã" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis e Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Iêmen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Ãfrica do Sul" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zâmbia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbábue" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Fornece" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Pré-requisitos" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Requer" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Está em conflito" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Torna obsoleto" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recomenda" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Sugere" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Aprimora" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Complementa" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Não foi possível abrir o pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Não foi possível abrir o pipe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Não foi possível executar o chroot em '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Não foi possível executar chdir para '%s' dentro do chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Não foi possível executar chdir para '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Não foi possível executar '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Não foi possível dividir (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "O comando encerrou com status %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Comando eliminado pelo sinal %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "O comando encerrou com erro desconhecido." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Tentativa de importar a chave não existente %s para o chaveiro %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Falha ao importar chave." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Falha ao remover chave." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "O arquivo de assinatura %s não foi encontrado" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Idioma desconhecido: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abcásio" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achém" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Circassiano" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-asiático (outros)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Africâner" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Aino" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Acadiano" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanês" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleúte" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Línguas algonquinas" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altaico Meridional" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amárico" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Inglês antigo (aprox. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Línguas apaches" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Ãrabe" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaico" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonês" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armênio" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucano" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificial (outros)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamês" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiano" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Línguas atapascas" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Línguas australianas" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avárico" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avéstico" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbaidjano" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Línguas bamileques" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Balúchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinês" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basco" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Báltico (outros)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Bejanês" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorusso" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbere (outros)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislamá" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Banto (outros)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bósnio" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Brajavali" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretão" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Bataque (Indonésia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriátio" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginês" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Búlgaro" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birmanês" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Cadoano" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Indígena centro-americano (outros)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Caribe" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalão" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucasiano (outros)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celta (outros)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Checheno" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinês" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Jargão chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Eslavo eclesiástico" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Línguas tchadianas" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Copta" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Córnico" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corso" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Crioulos e pidgins de base inglesa (outros)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Crioulos e pidgins de base francesa (outros)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Crioulos e pidgins de base portuguesa (outros)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tártaro (Crimeia)" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Crioulos e pidgins (outros)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Cassúbio" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cuchita (outros)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Checo" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dacota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dinamarquês" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Daiaque" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Atapasca)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinca" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiano (outros)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Baixo-sorbiano" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Holandês medieval (aprox. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandês" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Diula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efique" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egípcio (Antigo)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamita" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglês" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Inglês medieval (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estoniano" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Jeje" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Feroês" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijiano" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finlandês" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fino-ugriano (outros)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francês" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francês medieval (aprox. 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francês antigo (aprox. 842-1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frísio" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fula" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulano" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Cua" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaia" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germânico (outros)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiano" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Alemão" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Ge'ez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertês" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaélico" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandês" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galego" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Alto-alemão medieval (aprox. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Alto-alemão antigo (aprox. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gonde" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gótico" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grego antigo (até 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grego moderno (após 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Guzerate" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiano" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Haúça" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Havaiano" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebraico" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Hereró" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hitita" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Alto-Sorbiano" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Húngaro" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Ibo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandês" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Yi (Sechuan)" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlíngua" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Ilocano" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" "Interlíngua (International Auxiliary Language Association, Associação de " "Línguas Internacionais Auxiliares)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Ãndico (outros)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonésio" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-europeu (outros)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraniano (outros)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Línguas iroquesas" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiano" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanês" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonês" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judeu-persa" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judeu-arábico" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Karakalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Groenlandês" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Camba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Canarês" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Caxemira" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Canúri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Cazaque" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Cabardíaco" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (outros)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Cotanês" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Quirguiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Quimbundo" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Concani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Congo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreano" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Cosreano" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Curdo" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laosiano" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latim" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letão" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgano" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituano" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburguês" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Nganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lundês" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Quênia e Tanzânia)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedônio" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurês" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallino" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malaiala" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandinga" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronésio (outros)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marati" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Massai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malaio" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandês medieval (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Línguas diversas" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-khmer (outros)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgaxe" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltês" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Línguas manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldávio" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Vários idiomas" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Línguas mundas" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandês" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Línguas maias" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indígena norte-americano" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitano" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele do sul" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele do norte" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Baixo-alemão" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalês" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Bhasa (Nepal)" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Nigero-cordofânio (outros)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueano" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Novo norueguês" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Dano-norueguês" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Nórdico antigo" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norueguês" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho (setentrional)" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Línguas núbias" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari clássico" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitano (após 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojíbua" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriá" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osseto" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turco otomano (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Línguas otomianas" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papua (outros)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinano" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pálavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauano" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persa antigo (aprox. 600-400 A.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persa" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipino (outros)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenício" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Páli" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polonês" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pompeano" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Português" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Línguas prácritas" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provençal antigo (até 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Afegão" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quíchua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajastanês" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapa Nui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotonganês" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Latim (outros)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Romanche" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romeno" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Russo" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Iacuto" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indígena sul-americano (outros)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Línguas salichanas" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Aramaico samaritano" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sânscrito" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Sérvio" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliano" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Escocês" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croata" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semita (outros)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandês antigo (até 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Linguagens de sinais" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Línguas sioux" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-tibetano (outros)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Eslavo (outros)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Eslovaco" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Esloveno" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Lapão Meridional" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Lapão setentrional" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Línguas lapônias (outras)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lapão (Lule)" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Lapão (Inari)" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoano" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Lapão (Skolt)" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Xichonês" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninquê" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdian" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho (Meridional)" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Espanhol" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardo" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-saariano (outros)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Suázi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanês" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumério" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suaíli" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Sueco" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siríaco" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Taitiano" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (outros)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tâmil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tártaro" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Temne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tétum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadjique" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalo" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tailandês" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetano" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigré" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrínio" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tuaregue" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonganês (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonganês (Ilhas Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Setswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turcomeno" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Línguas tupis" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turco" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaico (outros)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuviniano" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugarítico" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucraniano" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundo" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Indeterminado" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbeque" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamita" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuque" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Vótico" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Línguas wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Galês" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Línguas sorbianas" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Valão" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Iao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapês" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Iídiche" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Iorubá" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Línguas yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapoteca" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zunhi" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "As seguintes ações serão realizadas:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "não expira" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "expirada: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "expira em: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(não expira)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(EXPIRADO)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(expira dentro de 24h)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(expira em %d dia)" msgstr[1] "(expira em %d dias)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Procurando por ID da chave gpg 1% no cache %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Procurando por ID da chave gpg %1% no repositório %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "Repositório 1% não define URLs 'gpgkey' adicionais." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" "Não foi possível ler o diretório de repositório '%1%': Permissão negada" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Falha ao ler o diretório '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Não foi possível ler o arquivo de repositório '%1%': Permissão negada" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "O apelido do repositório não pode começar com ponto." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "O apelido do serviço não pode começar com ponto." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Não foi possível abrir o arquivo '%s' para gravação." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "Serviço '%1%' desconhecido: removendo o repositório de serviço órfão '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Metadados válidos não encontrados na URL especificada" msgstr[1] "Metadados válidos não encontrados nas URLs especificadas" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Não foi possível criar %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Não foi possível criar o diretório do cache de metadados." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Construindo o cache do repositório '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Não foi possível criar o cache em %s - sem permissão de gravação." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Falha ao armazenar .repo (%d) em cache." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Tipo de repositório não identificado" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Erro ao tentar ler de '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Erro desconhecido ao ler de '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Adicionando o repositório '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nome de arquivo de repositório inválido em '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Removendo o repositório '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Não foi possível descobrir onde o repositório está armazenado." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Não foi possível remover '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Não foi possível descobrir onde o serviço está armazenado." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "String de consulta de URL de LDAP inválida" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parâmetro de consulta '%s' de URL de LDAP inválido" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Não foi possível clonar o objeto URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Referência a objeto URL vazio inválida" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Não foi possível analisar os componentes da URL" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "desconhecido" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "não suportado" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Nível 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Nível 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Nível 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Contrato adicional do consumidor necessário" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "inválido" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "O nível de suporte não foi especificado" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "O fornecedor não oferece suporte." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Determinação do problema, que significa suporte técnico feito para fornecer " "informações de compatibilidade, assistência na instalação, suporte ao uso, " "manutenção contínua e solução básica de problemas. O Suporte de Nível 1 não " "corrige defeitos do produto." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Isolamento do problema, que significa suporte técnico feito para duplicar os " "problemas do cliente, isolar a área do problema e fornecer solução para " "problemas não resolvidos pelo Suporte de Nível 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Resolução de problema, que significa suporte técnico feito para resolver " "problemas complexos através de engenharia na resolução de defeitos do " "produto que foram identificados pelo Suporte de Nível 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Um contrato adicional com o consumidor é necessário para receber suporte." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Opção de suporte desconhecida. A descrição não está disponível" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "O gerenciamento do sistema está bloqueado pelo aplicativo com o pid %d " "(%s).\n" "Feche esse aplicativo antes de tentar novamente." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Histórico:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Não foi possível abrir o arquivo de bloqueio: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Esta ação já está sendo executada por outro programa." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Modo de correspondência desconhecido '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Modo de correspondência desconhecido '%s' para o padrão '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Expressão regular inválida '%s': o regcomp retornou %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expressão regular inválida '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autenticação necessária para '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Visite o Novell Customer Center para verificar se seu registro é válido e " "não expirou." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Falha ao montar %s em %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Falha ao desmontar %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nome de arquivo inválido: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Mídia não aberta ao tentar realizar a ação '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Arquivo '%s' não encontrado na mídia '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Não é possível gravar o arquivo '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Mídia não conectada" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Ponto de conexão de mídia inválido" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Falha na inicialização do download (curl) para '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Exceção do sistema '%s' na mídia '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "O caminho '%s' na mídia '%s' não é um arquivo." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "O caminho '%s' na mídia '%s' não é um diretório." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI mal formado" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nome de host vazio no URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Sistema de arquivos vazio no URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Destino vazio no URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Esquema de URI não suportado em '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operação não suportada pela mídia" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Erro de download (curl) para '%s':\n" "Código de erro: %s\n" "Mensagem de erro: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Erro ao configurar as opções de download (curl) para '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "A mídia fonte '%s' não contém a mídia desejada" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "A mídia '%s' está sendo usada por outra instância" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Não foi possível ejetar qualquer mídia" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Não foi possível ejetar a mídia '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Permissão para acessar '%s' negada." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Tempo de espera excedido ao acessar '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" "Os dados transferidos excederam o tamanho esperado do tamanho do arquivo '%" "s' of '%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "O local '%s' está temporariamente inacessível." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Problema no certificado SSL. Verifique se o certificado CA está correto " "para '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Criar ponto para anexar: Não foi possível localizar um diretório gravável " "para criar um ponto de anexar" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Método de autenticação HTTP '%s' não suportado" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Instale o pacote ''lsof'' primeiro." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Atributo necessário '%s' faltando." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Um ou ambos os atributos '%s' ou '%s' são necessários." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Falha na verificação da assinatura" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "O pacote %s parece ter sido corrompido durante a transferência. Deseja " "tentar obtê-lo novamente?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Falha ao fornecer o pacote %s. Deseja tentar obtê-lo novamente?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Falha na verificação de applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Falha no applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "O plug-in de serviço não suporta alterar um atributo." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Não foi possível fornecer o arquivo '%s' a partir do repositório '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Nenhuma URL no repositório." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "O arquivo %1%\n" " do pacote\n" " %2%\n" " conflita com o arquivo do pacote\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "O arquivo %1%\n" " do pacote\n" " %2%\n" " conflita com o arquivo da instalação de\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "O arquivo %1%\n" " da instalação de\n" " %2%\n" " conflita com o arquivo do pacote\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "O arquivo %1%\n" " da instalação de\n" " %2%\n" " conflita com o arquivo da instalação de\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "O arquivo %1%\n" " do pacote\n" " %2%\n" " conflita com o arquivo\n" " %3%\n" " do pacote\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "O arquivo %1%\n" " do pacote\n" " %2%\n" " conflita com o arquivo\n" " %3%\n" " da instalação de\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "O arquivo %1%\n" " da instalação de\n" " %2%\n" " conflita com o arquivo\n" " %3%\n" " do pacote\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "O arquivo %1%\n" " da instalação de\n" " %2%\n" " conflita com o arquivo\n" " %3%\n" " da instalação de\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Não foi possível criar o sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "quebrar %s ao ignorar algumas das dependências" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "geralmente ignorar algumas dependências" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s não pertence a um repositório de atualização da distribuição" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s tem uma arquitetura inferior" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problema com o pacote instalado %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "solicitações conflitantes" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "algum problema de dependência" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "nada fornece o pacote solicitado %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Você habilitou todos os repositórios solicitados?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "o pacote %s não existe" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "solicitação não suportada" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s é fornecido pelo sistema e não pode ser apagado" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s não pode ser instalado" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "nada fornece %s que é necessário a %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Não foi possível instalar ambos (%s e %s)" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s conflita com %s, fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s torna obsoleto %s, fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s instalado torna obsoleto %s fornecido por %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "resolvível %s conflita com %s fornecido por ele mesmo" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s requer %s, mas este requisito não pode ser fornecido" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "fornecedores removidos: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "fornecedores não instaláveis: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "fornecedores não instaláveis: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "remover bloqueio para permitir a remoção de %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "não instalar %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "manter %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "remover bloqueio para permitir a instalação de %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Esta solicitação travará o seu sistema!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "igorar o aviso de um sistema travado" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "não perguntar ao instalar um resolvível que fornece %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "não perguntar ao remover todos os resolvíveis que fornecem %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "não instalar a versão mais recente de %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "manter %s apesar da arquitetura inferior" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "instalar %s apesar da arquitetura inferior" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "manter o obsoleto %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "instalar %s do repositório excluído" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "desatualização de %s para %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "alteração de arquitetura de %s para %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instalar %s (com alteração do fornecedor)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "substituição de %s por %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "desinstalação de %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Executando o script %%posttrans '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Executando scripts %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " executado" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " falha na execução" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s já executado como %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " execução ignorada durante o cancelamento" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Erro ao enviar a notificação de mensagem de atualização." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nova mensagem de atualização" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "A instalação foi cancelada conforme instruções." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Desculpe, mas esta versão do libzypp foi compilada sem o suporte ao HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext não conectado" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive não inicializado" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume não inicializado" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Não foi possível criar a conexão com o dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Não foi possível criar o contexto libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" "libhal_set_dbus_connection: Não foi possível definir a conexão com dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" "Não foi possível inicializar o contexto HAL - o hald não está em execução?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Não é uma unidade de CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Falha no RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Falha ao importar chave pública %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Falha ao remover chave pública %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "O pacote não está assinado!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Arquivos de configuração alterados para %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "o RPM salvou %s como %s, mas não foi possível determinar a diferença" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "o rpm salvou %s como %s.\n" "Aqui estão as 25 primeiras linhas de diferença:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "o rpm criou %s como %s, mas não foi possível determinar a diferença" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm criou %s como %s.\n" "Aqui estão as 25 primeiras linhas de diferença:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Saída adicional do rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "backup %s criado" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "A assinatura está OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Tipo de assinatura desconhecido" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Assinatura não verificada" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "A assinatura está OK, mas a chave não é confiável" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Chave pública das assinaturas não disponível" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "O arquivo não existe ou a assinatura não pode ser verificada" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "O arquivo não está assinado" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Não foi possível inicializar os atributos do mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Não foi possível definir o atributo do mutex recursivo" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Não foi possível inicializar o mutex recursivo" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Não foi possível adquirir o bloqueio mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Não foi possível liberar o bloqueio mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "O esquema de URL não permite %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Componente '%s' inválido %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Componente inválido %s" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "A análise de strings de consulta não é suportada para este URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "O esquema de URL é um componente obrigatório" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Esquema de URL '%s' inválido" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "O esquema de URL não permite nome de usuário" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "O esquema de URL não permite senha" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "O esquema de URL requer um componente de host" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "O esquema de URL não permite componente de host" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Componente de host inválido '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "O esquema de URL não permite porta" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Componente de porta inválido '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "O esquema de URL requer nome de caminho" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Caminho relativo não permitido se existir autoridade" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "A string codificada contém um byte NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Caractere separador de divisão de matriz de parâmetros inválido" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Caractere separador de divisão de mapa de parâmetros inválido" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Caractere separador de integração de matriz de parâmetros inválido" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Falha ao importar chave pública do arquivo %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Falha ao remover chave pública %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Não foi possível encontrar um dispositivo loop disponível para montar o " #~ "arquivo de imagem de '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "geralmente ignorar algumas das dependências" #~ msgid "do not forbid installation of %s" #~ msgstr "não proibir a instalação de %s" #~ msgid "do not keep %s installed" #~ msgstr "não manter %s instalado" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #~ msgid "%s remove failed" #~ msgstr "ÙØ´Ù„ت إزالة %s" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "rpm output:" #~ msgstr "مخرجات rpm:" #~ msgid "%s install failed" #~ msgstr "ÙØ´Ù„ تثبيت %s" #~ msgid "%s installed ok" #~ msgstr "تم تثبيت %s بنجاح" #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "عدم تثبيت التبعيات القابلة للتحليل المتعلقة أو حذÙها" #~ msgid "Ignore that %s is already set to install" #~ msgstr "تجاهل أنه تم تعيين %s Ø¨Ø§Ù„ÙØ¹Ù„ لتثبيته" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "تجاهل %s القديم ÙÙŠ %s" #~ msgid "Ignore this conflict of %s" #~ msgstr "تجاهل تعارض %s هذا" #~ msgid "Ignore this requirement just here" #~ msgstr "تجاهل هذا المتطلب هنا Ùقط" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "Install missing resolvables" #~ msgstr "تثبيت التبعيات القابلة للتحليل المÙقودة" #~ msgid "Keep resolvables" #~ msgstr "Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ بالتبعيات القابلة للتحليل" #~ msgid "Unlock these resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ التبعيات القابلة للتحليل هذه" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #~ msgid "install %s" #~ msgstr "تثبيت %s" #~ msgid "unlock %s" #~ msgstr "إلغاء Ù‚ÙÙ„ %s" #~ msgid "unlock all resolvables" #~ msgstr "إلغاء Ù‚ÙÙ„ ÙƒØ§ÙØ© التبعيات القابلة للتحليل" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "يتعارض %s مع التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s يتعارض مع:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "تعذر تثبيت %s لأنه يتعارض مع %s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "لم يتم تثبيت %s وتم وضع علامة عليه كقابل لإلغاء التثبيت" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #~ msgid "%s has missing dependencies" #~ msgstr "تم Ùقد تبعيات %s" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "تعذر تثبيت %s بسبب عدم وجود التبعيات" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #~ msgid "No need to install %s" #~ msgstr "لا داعي لتثبيت %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s يمكن إلغاء تثبيته لأنه يتعارض مع %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ÙŠÙØªÙ‚د المتطلب %s" #~ msgid ", Action: " #~ msgstr "ØŒ الإجراء:" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "patch" #~ msgstr "التصحيح" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Establishing %s" #~ msgstr "تأسيس %s" #~ msgid "Installing %s" #~ msgstr "تثبيت %s" #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #~ msgid "Skipping %s: already installed" #~ msgstr "تخطي %s: تم التثبيت Ø¨Ø§Ù„ÙØ¹Ù„" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "%s مقÙÙ„ ويتعذر إلغاء تثبيته." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid " Error!" #~ msgstr "خطأ!" #~ msgid " Important!" #~ msgstr "هام!" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "Unable to parse Url authority" #~ msgstr "تعذر تحليل سلطة Url" #~ msgid "Ignore this requirement generally" #~ msgstr "تجاهل هذا المتطلب Ø¨ØµÙØ© عامة" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "Unable to restore all sources." #~ msgstr "تعذرت استعادة ÙƒØ§ÙØ© المصادر." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading packages file" #~ msgstr "قراءة مل٠الحزم" #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Downloading %s" #~ msgstr "إنزال %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Não foi possível criar a chave pública %s do chaveiro %s para o arquivo %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "" #~ "Tentativa de importar chave não existente %s no gerenciador de chaves %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "" #~ "Não foi possível alterar o diretório para '/' dentro do chroot (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Falha na inicialização do download (Metalink curl) para '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Erro de download (metalink curl) para '%s':\n" #~ "Código de erro: %s\n" #~ "Mensagem de erro: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Download interrompido em %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Download interrompido pelo usuário" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "Erro ao configurar as opções de download (metalink curl) para '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Falha ao baixar %s de %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Sérvia e Montenegro" #~ msgid "Unknown Distribution" #~ msgstr "Distribuição desconhecida" #~ msgid "ignore some dependencies of %s" #~ msgstr "ignorar algumas das dependências de %s" #~ msgid "Timeout exceeded when access '%s'." #~ msgstr "Tempo de espera excedido quando acessando '%s'." libzypp-17.7.0/po/ro.po000066400000000000000000003152721334444677500147300ustar00rootroot00000000000000# Translator(s): # # Lucian Oprea # strainu # xdaiana # Laudatti # turcan # Alexandru Szasz # nicubunu # anonymous # mazilu59 # evinteler # Ursan Marius Bogdan # # Reviewer(s): # # Lucian Oprea # xdaiana # Alexandru Szasz # strainu # # Comunitatea romana openSUSE - www.suseromania.ro msgid "" msgstr "" "Project-Id-Version: OpenSUSE\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2012-11-19 14:59+0200\n" "Last-Translator: Lucian Oprea \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Narro 2.0 on http://tradu.softwareliber.ro\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" "X-Generator: Narro 2.0 on http://tradu.softwareliber.ro\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "ExcepÈ›ie Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Tip dubios '%s' pentru byte-ul %u, suma de control '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Èšară necunoscută: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Fără cod" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emiratele Arabe Unite" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua È™i Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antilele Olandeze" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarctica" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samoa Americană" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Insulele Aland" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaidjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia È™i HerÈ›egovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgia" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermude" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazilia" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Insula Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Insulele Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Republica Centrafricană" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ElveÈ›ia" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Coasta de FildeÈ™" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Insulele Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Columbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Capul Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Insulele Christmas" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cipru" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Republica Cehă" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Germania" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danemarca" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Republica Dominicană" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sahara Occidentală" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritreea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spania" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlanda" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Insulele Falkland (Malvine)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Micronezia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Insulele Feroe" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "FranÈ›a" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "FranÈ›a metropolitană" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Anglia" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guiana Franceză" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenlanda" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guineea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadelupa" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guineea Ecuatorială" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grecia" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Georgia de Sud È™i Insulele Sandwich de Sud" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guineea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Insula Heard È™i Insulele McDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "CroaÈ›ia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungaria" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Insula Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Teritoriul britanic din Oceanul Indian" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islanda" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italia" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Iordania" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonia" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kârgâzstan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodgia" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Insulele Comore" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts È™i Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Coreea de Nord" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Coreea de Sud" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuweit" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Insulele Cayman" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazahstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Republica Populară Democratică Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Liban" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lituania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letonia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libia" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroc" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Muntenegru" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Insulele Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Insulele Mariana de Nord" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinica" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "MauriÈ›ius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldive" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexic" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaezia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambic" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Noua Caledonie" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Insula Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Olanda" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norvegia" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Noua Zeelandă" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinezia franceză" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Noua Guinee" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipine" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polonia" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre È™i Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Teritoriile palestiniene" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalia" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "România" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "FederaÈ›ia Rusă" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabia Saudită" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Insulele Solomon" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suedia" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sfânta Elena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard È™i Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovacia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome È™i Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Siria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Insulele Turks È™i Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Ciad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Teritoriile Franceze Sudice" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tailanda" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Timorul de Est" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turcia" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad È™i Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ucraina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Insulele minore din afara Statelor Unite" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Statele Unite" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Sfântul Scaun (Vatican)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Sfântul Vincent È™i Grenadine" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Insulele Virgine Britanice" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Insulele Virgine, S.U.A." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis È™i Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Africa de Sud" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Oferă" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Necesită" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Conflicte" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "păstrează pachetul vechi %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Recomandă" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Sugerează" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "ÃŽmbunătățeÈ™te" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Suplimentează" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Nu pot deschide pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Nu pot deschide pipe-ul (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Nu se poate face chroot la '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Nu pot efectua chdir spre '/' în chroot (%s)." #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Nu se poate face chroot la '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Nu pot executa '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Nu pot crea un proces nou (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Comandă finalizată cu starea %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Comanda a fost oprită de semnalul %d(%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Comandă finalizată cu eroare necunoscută." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, fuzzy, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Am încercat să import cheia inexistentă %s în colecÈ›ia de chei %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Importul cheii publice %1% a eÈ™uat" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Ștergerea cheii a eÈ™uat." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "FiÈ™ierul semnătură %s nu a fost găsit" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Limbă necunoscută: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abhază" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achineză" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adâgă" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asiatică (alta)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadiană" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albaneză" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleută" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Limbi Algonquian" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altai de Sud" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharică" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Engleză veche (cca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Limbi apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabă" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramaică" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragoneză" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeană" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araucaniană" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Artificială (alta)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assameză" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturian" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Limbi athapascane" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Limbi australiene" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avaric" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azeră" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Limbi Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "BaÈ™kiră" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Balochi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balineză" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Bască" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltică (alta)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorusă" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengaleză" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berberă (alta)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (alta)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosniacă" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonă" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonezia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buriată" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgară" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birmaneză" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Indiană din America Centrala (alta)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalană" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Caucaziană (alta)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtică (alta)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Cecenă" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chineză" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Chuuk" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Jargon Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Slavonă bisericească" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Ciuvașă" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Limbi chamice" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Coptă" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornică" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corsicană" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creole È™i pidgin bazate pe engleză (altele)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creole È™i pidgin bazate pe franceză (altele)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creole È™i pidgin bazate pe portugheză (altele)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tătară crimeeană" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creole È™i pidgin (altele)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "KaÈ™ubiană" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "CuÈ™tică (alta)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Cehă" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Daneză" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiană (alta)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Sorabă de jos" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Olandeză medievală (cca. 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Olandeză" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha (Bhutan)" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egipteană (antică)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamită" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engleză" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Engleză medievală (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estoniană" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Feroeză" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijiană" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipineză" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finlandeză" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fino-ugrică (alta)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Franceză" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Franceză medievală (cca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Franceză veche (842-cca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Friziană" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friulană" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germanică (alta)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiană" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Germană" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilberteză" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Galică" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandeză" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galiciană" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Germană medievală (cca. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Germană veche (cca. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotică" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Greacă veche (până la 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Greacă modernă (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiană" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiiană" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Ebraică" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hitită" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Sorabă de sus" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Maghiară" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandez" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indiană (alta)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indoneziană" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-europeană (alta)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingușă" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iraniană (alta)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Limbi irocheze" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italiană" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javaneză" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japoneză" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Iudeo-persiană" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Iudeo-arabică" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÈ™miră" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Cazacă" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khoisan (alta)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotaneză" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiză" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Komi" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreeană" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosraeană" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karageai-Balkară" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdă" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "LaoÈ›iană" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latină" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letonă" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezghiană" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgheză" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Lituaniană" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgheză" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya È™i Tanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedoneană" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshalleză" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austroneziană (alta)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malaeziană" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandeză medievală (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Diverse limbi" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (alta)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgașă" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Malteză" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Limbi manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldovenească" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolă" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Limbi multiple" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Limbile Munda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandeză" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Limbi maya" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzia" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Indiană din America de Nord" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitană" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele de sud" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele de nord" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Germană de jos" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepaleză" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanian (alta)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niueană" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norwegiană Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norwegiană Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Scandinavă veche" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norvegiană" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Sotho de Nord" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Limbi nubiene" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari clasică" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitană (după 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Osetă" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turcă otomană (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Limbi otomiene" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papua (alta)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauană" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Persană veche (cca. 600-400 î.e.n.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persană" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipineză (alta)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Feniciană" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poloneză" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugheză" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Limbi prakrite" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provensală veche (până la 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romanică (alta)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Retoromană" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Română" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rusă" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakută" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Indiană din America de sud (alta)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Limbi salishan" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Aramaică samariteană" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanscrită" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Sârbă" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Siciliană" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Croată" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitică (alta)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandeză veche (până la 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Limbajul semnelor" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Limbi siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-tibetană (alta)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slavă (alta)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovacă" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenă" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sami sudică" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Sami nordică" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Limbi sami (altele)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Sami lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Sami inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoană" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Sami skolt" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdiană" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho de sud" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spaniolă" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardă" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-sahariană (alta)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sumeriană" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumeriană" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Suedeză" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siriacă" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitiană" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (alta)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tătară" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tailandeză" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetană" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingoniană" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Insulele Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmenă" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Limbi Tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turcă" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaică (alta)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuviniană" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritică" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uigură" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ucrainiană" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Nedeterminată" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbecă" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnameză" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votică" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Limbi wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Galeză" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Limbi sorabe" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Valonă" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmucă" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "IdiÈ™" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Limbi yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotecă" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Vor fi efectuate următoarele acÈ›iuni:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(nu expiră)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(nu expiră)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(EXPIRAT)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(expiră în 24h)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, fuzzy, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(expiră în 24h)" msgstr[1] "(expiră în 24h)" msgstr[2] "(expiră în 24h)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Citirea directorului '%s' a eÈ™uat" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Aliasul sursei de instalare nu poate începe cu punct." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Aliasul serviciului nu poate începe cu punct." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Nu se poate deschide fiÈ™ierul '%s' pentru scriere." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "La URL-ul (URL-urile) specificate nu au fost găsite metadate valide" msgstr[1] "La URL-ul (URL-urile) specificate nu au fost găsite metadate valide" msgstr[2] "La URL-ul (URL-urile) specificate nu au fost găsite metadate valide" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Nu se poate crea %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Nu se poate crea directorul pentru cache-ul de metadate." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Construirea cache-ului sursei de instalare '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Nu se poate crea memoria cache la %s - lipseÈ™te dreptul de scriere." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Sursa de instalare (%d) nu a putut fi încărcată în cache." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Tip de sursă de instalare netratat" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Eroare la încercarea de a citi din '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Eroare necunoscută la citirea de la '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Adaug sursa de instalare '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nume de fiÈ™ier sursă de instalare invalid la '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "ÃŽndepărtez sursa de instalare '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Nu pot determina unde este stocată sursa de instalare." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Nu pot È™terge '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Nu pot determina unde este stocat serviciul." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Șir de interogare URL LDAP invalid" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Parametru È™ir de interogare URL LDAP invalid '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Nu pot clona obiectul Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Referință vidă invalidă la obiect Url" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Nu pot parcurge componentele Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "necunoscut" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nesuportat" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Nivelul 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Nivelul 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Nivelul 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Este necesar un contract client suplimentar" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "invalid" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Nivelul de suport este nespecificat" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Vânzătorul nu oferă suport." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Determinarea problemei, ceea ce înseamnă suport tehnic menit să ofere " "informaÈ›ii de compatibilitate, asistență la instalare, suport la utilizare, " "mentenanță curentă È™i rezolvarea problemelor simple. Suportul de nivel 1 nu " "este menit să corecteze erori ale produsului." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Izolarea problemei, ceea ce înseamnă suport tehnic menit să reproducă " "problemele clienÈ›ilor, să izoleze zona cu probleme È™i să ofere soluÈ›ii " "pentru probleme nerezolvate de suportul de nivel 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Rezolvarea problemei, ceea ce înseamnă suport tehnic menit să rezolve " "problemele complexe prin contribuÈ›ia specialiÈ™tilor la rezolvarea de defecte " "ale produselor, identificate de suportul de nivel 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Pentru a obÈ›ine suport tehnic se necesită un contract client suplimentar." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "OpÈ›iune de suport necunoscută. Descrierea nu este disponibilă" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Gestiunea sistemului a fost blocată de aplicaÈ›ia cu pid %d (%s).\n" "ÃŽnchideÈ›i această aplicaÈ›ie înainte de a încerca din nou." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Istoric:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Nu pot deschide fiÈ™ierul zăvor: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Această acÈ›iune este rulată deja de alt program." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Mod necunoscut '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Mod necunoscut '%s' pentru modelul '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "'%s' este o expresie regulată invalidă: regcomp a întors %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Expresie regulată invalidă '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Pentru '%s' este necesară autentificarea" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Vizitează Centru de RelaÈ›ii cu ClienÈ›ii Novell pentru a verifica dacă " "înregistrarea este validă È™i încă valabilă." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Montarea %s pe %s a eÈ™uat" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Demontarea %s a eÈ™uat" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nume de fiÈ™ier incorect: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" "Mediul nu a fost deschis în timp ce se încerca efectuarea acÈ›iunii '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "FiÈ™ierul '%s' nu a fost găsit pe mediul '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Nu pot scrie fiÈ™ierul '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Mediu neataÈ™at" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Punct incorect de conectare a mediului" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "IniÈ›ializarea download-ului (curl) a eÈ™uat pentru '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "ExcepÈ›ie sistem '%s' pe mediul '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Calea '%s' de pe mediul '%s' nu este un fiÈ™ier." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Calea '%s' de pe mediul '%s' nu este un director." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI Invalid" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Nume de gazdă vid în URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Sistem de fiÈ™iere vid în URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "DestinaÈ›ie vidă în URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Schemă URI nesuportată în '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "OperaÈ›ia nu este suportată de mediu" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Eroare de descărcare (curl) pentru '%s':\n" "Cod eroare: %s\n" "Mesaj eroare: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "A apărut o eroare la setarea opÈ›iunilor de download (curl) pentru '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Sursa '%s' nu conÈ›ine CD-ul/DVD-ul corect" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Mediul '%s' este utilizat momentan de o altă instanță" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Nu pot ejecta nici un mediu" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Nu pot ejecta mediul '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Accesul la '%s' a fost interzis." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Timp depășit în timpul accesării '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "LocaÈ›ia '%s' este temporar inaccesibilă." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" "Problemă de certificat SSL, verificaÈ›i dacă certificatul autorității de " "certificare este OK pentru '%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Metodă de autentificare HTTP nesuportată '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 #, fuzzy msgid "Please install package 'lsof' first." msgstr "Curăț cache-ul pachetelor instalate." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Atributul necesar '%s' lipseÈ™te." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Unul sau ambele din atributele '%s' È™i '%s' sunt necesare." #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr " execuÈ›ie eÈ™uată" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Pachetul %s a fost probabil corupt în timpul transferului. DoriÈ›i să " "repetaÈ›i descărcarea?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Furnizarea pachetului %s a eÈ™uat. DoriÈ›i să încercaÈ›i să-l obÈ›ineÈ›i din nou?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "verificarea applydeltarpm a eÈ™uat." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm a eÈ™uat." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "" "tipul de resursă VAR1 nu suportă funcÈ›ia de arătare a modificărilor (show " "changes)" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Nu pot oferi fiÈ™ierul '%s' din sursa '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Nici un url în sursa de instalare." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Nu pot crea sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "întrerupe pachetul %s ignorând o parte din dependenÈ›ele lui" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "în general se ignoră unele dependinÈ›e" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s nu aparÈ›ine de o sursă de instalare de actualizare distribuÈ›ie" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s are arhitectură inferioară" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problemă cu pachetul instalat %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "cereri ce intră în conflict" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "o problemă de dependenÈ›e" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "nimic nu oferă %s necesar" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "AÈ›i activat toate sursele cerute?" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "nu există backup" #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr "nesuportat" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s este blocat ÅŸi nu poate fi deinstalat." #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s nu este instalabil" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "Nimic nu oferă %s necesar pentru %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "nu pot instala %s È™i %s împreună" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s intră în conflict cu %s pus la dispoziÈ›ie de %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s înlocuieÈ™te %s oferit de %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "versiuni vechi %s instalate %s furnizate de %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "dependenÈ›a %s intră în conflict cu %s furnizat de ea însăși" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s necesită %s, dar această cerință nu este îndeplinită" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "pachete È™terse: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "pachete care pot fi dezinstalate: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "furnizori dezinstalabili: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "nu instala %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "păstrează %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "nu interzice instalarea %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Această cerere vă va afecta sistemul!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignoră avertismentul privitor la stricarea sistemului" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "nu cere instalarea unui pachet ce oferă %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "nu cere stergerea tuturor pachetelor ce oferă %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "nu instala cea mai recentă versiune a %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "păstrează %s chiar dacă arhitectura este inferioară" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "instalează %s chiar dacă arhitectura este inferioară" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "păstrează pachetul vechi %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "instalează %s de la o sursă de instalare exclusă" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "downgrade %s la %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "modificare de arhitectură a %s în %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "instalează %s (cu modificarea vânzătorului)\n" " %s\n" "-->\n" " %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "înlocuirea %s cu %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "deinstalarea %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " executat" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " execuÈ›ie eÈ™uată" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, fuzzy, c-format, boost-format msgid "%s already executed as %s)" msgstr "%1 este deja decriptat!" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " execuÈ›ie sărită în timpul anulării" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Eroare trimitere notificare mesaj de actualizare." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nou mesaj de actualizare" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Instalarea a fost anulată la cerere." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Ne pare rău, dar această versiune de libzypp a fost construită fără suport " "HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext nu este conectat" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive nu este iniÈ›ializat" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume nu este iniÈ›ializat" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Nu pot crea conexiunea dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Nu pot crea contextul libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Nu pot seta conexiunea dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Nu pot iniÈ›ializa contextul HAL -- este posibil ca hald să nu ruleze?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Nu este o unitate CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM a eÈ™uat:" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Importul cheii publice %1% a eÈ™uat" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "ÃŽndepărtarea cheii publice %1% a eÈ™uat" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "FiÈ™iere de configurare modificate pentru %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm a salvat %s ca %s, dar nu a putut determina diferenÈ›ele" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm a salvat %s ca %s.\n" "Acestea sunt primele 25 de linii diferite:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm a creat %s ca %s, dar nu a putut determina diferenÈ›ele" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm a creat %s ca %s.\n" "Acestea sunt primele 25 de linii diferite:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "IeÈ™ire rpm suplimentară" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "backup %s creat" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "FiÈ™ierul semnătură %s nu a fost găsit" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "FiÈ™ierul semnătură %s nu a fost găsit" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "FiÈ™ierul semnătură %s nu a fost găsit" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Nu pot iniÈ›ializa atributele mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Nu pot seta atributul mutex recursiv" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Nu pot iniÈ›ializa mutex-ul recursiv" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Nu pot obÈ›ine zăvorul mutex-ului" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Nu pot elibera zăvorul mutex-ului" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Schema url nu permite %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Componentă %s invalidă '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Componentă invalidă %s" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Pentru acest URL nu este suportată parcurgerea unui È™ir de interogare" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Schema url este o componentă obligatorie" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Schemă ulr invalidă '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Schema url nu permite un nume de utilizator" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Schema url nu permite parolă" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Schema url necesită o componentă gazdă" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Schema url nu permite componentă gazdă" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Componentă gazdă invalidă '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Schema url nu permite port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Componentă port invalidă '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Schema url necesită o cale" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Calea relativă nu este permisă dacă autoritatea există" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Șirul codat conÈ›ine un byte NUL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Parametru invalid caracter de separare împărÈ›ire matrici" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Parametru de hartă invalid pentru separarea caracterelor" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Parametru invalid caracter de separare uniune matrici" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Importul cheii publice din fiÈ™ierul %s a eÈ™uat: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "ÃŽndepărtarea cheii publice %s a eÈ™uat: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "Nu este disponibil dispozitivul pentru a monta imagine de la '%s'" #~ msgid "do not keep %s installed" #~ msgstr "nu păstra %s instalat" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "Nu pot crea cheia publică %s din keyring-ul %s pe fiÈ™ierul %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "IniÈ›ializarea descărcării (metalink curl) a eÈ™uat pentru '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Eroare de descărcare (metalink curl) pentru '%s':\n" #~ "Cod eroare: %s\n" #~ "Mesaj eroare: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Descărcare întreruptă la %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Descărcare întreruptă de utilizator" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "A apărut o eroare la setarea opÈ›iunilor de descărcare (metalink curl) " #~ "pentru '%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "A eÈ™uat descărcarea %s de la %s" libzypp-17.7.0/po/ru.po000066400000000000000000003572221334444677500147370ustar00rootroot00000000000000# Translation of zypp.po to russian # Copyright (C) 2005, 2006 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999, 2000, 2001 SuSE GmbH. # # Aleksey Novodvorksy , 2000. # Eugene Osintsev , 1999, 2000. # Aleksey Osipov , 2005, 2006, 2007, 2008. # Nikolay Derkach , 2007, 2008. # Alexander Melentiev , 2008, 2009, 2010. # Alexander Melentiev , 2011, 2012, 2013, 2014, 2015. msgid "" msgstr "" "Project-Id-Version: zypp.ru\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-18 13:07+0000\n" "Last-Translator: Nikita Maynagashev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "ИÑключение Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Подозрительный тип \"%s\" байта номер %u контрольной Ñуммы \"%s\"" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñтрана: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ðет кода" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Ðндорра" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Объединенные ÐрабÑкие Эмираты" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "ÐфганиÑтан" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Ðнтигуа и БарбадоÑ" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "ÐнгильÑ" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "ÐлбаниÑ" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "ÐрмениÑ" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "ÐидерландÑкие ÐнтильÑкие оÑтрова" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Ðнгола" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Ðнтарктида" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Ðргентина" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ÐмериканÑкое Самоа" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ÐвÑтриÑ" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ÐвÑтралиÑ" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Ðруба" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "ÐландÑкие оÑтрова" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Ðзербайджан" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "БоÑÐ½Ð¸Ñ Ð¸ Герцеговина" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "БарбадоÑ" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Бангладеш" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "БельгиÑ" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Буркина-ФаÑо" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "БолгариÑ" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Бахрейн" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Бурунди" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Бенин" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "БермудÑкие оÑтрова" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Бруней-ДаруÑÑалам" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "БоливиÑ" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "БразилиÑ" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Багамы" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Бутан" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ОÑтров Буве" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "БотÑвана" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "БеларуÑÑŒ" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Белиз" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Канада" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "КокоÑовые оÑтрова (Килинг)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Конго" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "ЦентральноафриканÑÐºÐ°Ñ Ð ÐµÑпублика" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ШвейцариÑ" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Кот-д\"Ивуар" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ОÑтрова Кука" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Чили" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Камерун" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Китай" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "КолумбиÑ" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "КоÑта-Рика" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Куба" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Кабо-Верде" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "ОÑтров РождеÑтва" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Кипр" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ЧехиÑ" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ГерманиÑ" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Джибути" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ДаниÑ" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Доминика" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ДоминиканÑÐºÐ°Ñ Ð ÐµÑпублика" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Ðлжир" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Эквадор" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ЭÑтониÑ" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Египет" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Ð—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ Ð¡Ð°Ñ…Ð°Ñ€Ð°" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ЭритреÑ" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "ИÑпаниÑ" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "ЭфиопиÑ" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ФинлÑндиÑ" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Фиджи" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ФолклендÑкие оÑтрова (МальвинÑкие)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Федеративные Штаты Микронезии" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ФарерÑкие оÑтрова" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ФранциÑ" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "ФранциÑ" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Габон" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Соединенное КоролевÑтво" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Гренада" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ГрузиÑ" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ФранцузÑÐºÐ°Ñ Ð“Ð²Ð¸Ð½ÐµÑ" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "ГернÑи" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Гана" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Гибралтар" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ГренландиÑ" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ГамбиÑ" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ГвинеÑ" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Гваделупа" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ð­ÐºÐ²Ð°Ñ‚Ð¾Ñ€Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð“Ð²Ð¸Ð½ÐµÑ" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ГрециÑ" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Ð®Ð¶Ð½Ð°Ñ Ð“ÐµÐ¾Ñ€Ð³Ð¸Ñ Ð¸ Южные Сандвичевы оÑтрова" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Гватемала" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "ОÑтров Гуам" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ГвинеÑ-БеÑÑау" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "ГайÑна" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Гонконг" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "ОÑтров Херд и оÑтрова МакДональда" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ГондураÑ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ХорватиÑ" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Гаити" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ВенгриÑ" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ИндонезиÑ" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ИрландиÑ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Израиль" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "ОÑтров МÑн" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ИндиÑ" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "БританÑÐºÐ°Ñ Ñ‚ÐµÑ€Ñ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð˜Ð½Ð´Ð¸Ð¹Ñкого океана" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Ирак" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Иран" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ИÑландиÑ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ИталиÑ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "ДжерÑи" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Ямайка" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Иордан" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ЯпониÑ" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "КениÑ" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "КиргизÑтан" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Камбоджа" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Кирибати" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "КоморÑкие оÑтрова" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Сент-ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑ" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐšÐ¾Ñ€ÐµÑ" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Ð®Ð¶Ð½Ð°Ñ ÐšÐ¾Ñ€ÐµÑ" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Кувейт" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Каймановы оÑтрова" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "КазахÑтан" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "ЛаоÑÑÐºÐ°Ñ Ðародно-ДемократичеÑÐºÐ°Ñ Ð ÐµÑпублика" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Ливан" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Сент-ЛюÑиÑ" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Лихтенштейн" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Шри-Ланка" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ЛибериÑ" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "ЛеÑото" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Литва" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ЛюкÑембург" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ЛатвиÑ" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ЛивиÑ" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Марокко" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Монако" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Молдова" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "ЧерногориÑ" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Сен-Мартен" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "МадагаÑкар" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Маршалловы оÑтрова" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "МакедониÑ" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Мали" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "МьÑнма" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "МонголиÑ" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Макао" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Северные МарианÑкие ОÑтрова" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "ОÑтров Мартиника" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "МавританиÑ" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "МонтÑеррат" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Мальта" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Маврикий" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Мальдивы" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Малави" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "МекÑика" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "МалайзиÑ" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Мозамбик" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ÐамибиÑ" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "ÐÐ¾Ð²Ð°Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ð¸Ñ" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Ðигер" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ОÑтров Ðорфолк" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ÐигериÑ" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Ðикарагуа" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Ðидерланды" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ÐорвегиÑ" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Ðепал" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Ðауру" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "ÐиуÑ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ÐÐ¾Ð²Ð°Ñ Ð—ÐµÐ»Ð°Ð½Ð´Ð¸Ñ" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Оман" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Панама" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Перу" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ФранцузÑÐºÐ°Ñ ÐŸÐ¾Ð»Ð¸Ð½ÐµÐ·Ð¸Ñ" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Папуа – ÐÐ¾Ð²Ð°Ñ Ð“Ð²Ð¸Ð½ÐµÑ" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Филиппины" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ПакиÑтан" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Польша" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Сен-Пьер и Микелон" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "ОÑтров ПиткÑрн" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "ПуÑрто-Рико" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "ПалеÑтина" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ПортугалиÑ" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "ОÑтрова Палау" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Парагвай" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Катар" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Реюньон" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "РумыниÑ" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "СербиÑ" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "РоÑÑийÑÐºÐ°Ñ Ð¤ÐµÐ´ÐµÑ€Ð°Ñ†Ð¸Ñ" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Руанда" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "СаудовÑÐºÐ°Ñ ÐравиÑ" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Соломоновы оÑтрова" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Сейшелы" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Судан" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ШвециÑ" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Сингапур" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "ОÑтров СвÑтой Елены" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "СловениÑ" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Шпицберген и Ян-Майен" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "СловакиÑ" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Сьерра-Леоне" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Сан-Марино" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Сенегал" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Сомали" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Суринам" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Сан-Томе и ПринÑипи" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Сальвадор" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "СириÑ" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Свазиленд" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Ð¢ÐµÑ€ÐºÑ Ð¸ КайкоÑ" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Чад" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "ФранцузÑкие Южные территории" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Того" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Таиланд" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ТаджикиÑтан" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Токелау" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ТуркмениÑтан" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ТуниÑ" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Тонга" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ВоÑточный Тимор" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ТурциÑ" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Тринидад и Тобаго" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Тувалу" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Тайвань" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "ТанзаниÑ" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Украина" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Уганда" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Внешние малые оÑтрова СШÐ" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "СШÐ" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Уругвай" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "УзбекиÑтан" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Ватикан" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Сент-ВинÑент и Гренадины" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ВенеÑуÑла" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "БританÑкие ВиргинÑкие оÑтрова" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ВиргинÑкие оÑтрова, СШÐ" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Вьетнам" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Вануату" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Ð£Ð¾Ð»Ð»Ð¸Ñ Ð¸ Футуна" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "ОÑтрова Самоа" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Йемен" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Майотта" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "ЮÐР" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "ЗамбиÑ" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Зимбабве" #: zypp/Dep.cc:96 msgid "Provides" msgstr "ПредоÑтавлÑет" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Предварительно требует" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Требует" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Конфликтует" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Делает уÑтаревшим" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Рекомендует" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Предлагает" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Улучшает" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "ДополнÑет" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Ðевозможно открыть пÑевдотерминал (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Ðевозможно открыть канал (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Ðевозможно выполнить chroot в \"%s\" (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Ðевозможно Ñменить каталог на \"%s\" внутри Ñреды chroot \"%s\" (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Ðевозможно Ñменить каталог на \"%s\" (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Ðевозможно выполнить exec \"%s\" (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Ðевозможно выполнить fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Команда завершилаÑÑŒ Ñ ÐºÐ¾Ð´Ð¾Ð¼ %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Команда была прекращена Ñигналом %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Команда завершилаÑÑŒ Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтной ошибкой." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Попытка импорта неÑущеÑтвующего ключа %s в хранилище ключей %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Ðе удалоÑÑŒ импортировать ключ %1%." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Ðе удалоÑÑŒ удалить ключ." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Ðе найден файл подпиÑи %s" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "ÐеизвеÑтный Ñзык: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "ÐфарÑкий" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "ÐбхазÑкий" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "ÐчехÑкий" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Ðчоли" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Ðдангме" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "ÐдыгейÑкий" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Ðфро-азиатÑкий (другие)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Ðфрихили" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "ÐфрикаанÑ" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "ÐйнÑкий" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "ÐканÑкий" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "ÐккадÑкий" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "ÐлбанÑкий" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "ÐлеутÑкий" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "ÐлгонкинÑкие Ñзыки" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Южно-алтайÑкий" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "ÐмхарÑкий (амариньÑ)" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ÐнглийÑкий, Старый (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ÐпачÑкие Ñзыки" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ÐрабÑкий" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "ÐрамейÑкий" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "ÐрагонÑкий" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ÐрмÑнÑкий" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ÐрауканÑкий" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Ðрапахо" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "ИÑкуÑÑтвенные (другие)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "ÐравакÑкие" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "ÐÑÑамÑкий" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "ÐÑтурийÑкий" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "ÐтапаÑкÑкие Ñзыки" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ÐвÑтралийÑкие Ñзыки" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "ÐварÑкий" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "ÐвеÑтийÑкий" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Ðвадхи" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Ðймара" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "ÐзербайджанÑкий" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Банда" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Бамилеке Ñзыки" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "БашкирÑкий" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "БелуджÑкий" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Бамбара" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "БалийÑкий" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "БаÑкÑкий" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "БаÑа" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "БалтийÑкий (Другие)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Беджа" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "БелоруÑÑкий" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Бемба" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "БенгальÑкий" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "БерберÑкие (другие)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Бходжпури" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Бихари" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "БикольÑкий" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Бини" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "БиÑлама" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "СикÑика" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Банту (другие)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "БоÑнийÑкий" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Брауи" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "БретонÑкий" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "БатакÑкий (ИндонезиÑ)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "БурÑÑ‚Ñкий" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "БугийÑкий" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "БолгарÑкий" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "БирманÑкий" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Блин" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Каддо" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Индейцев Центральной Ðмерики (Другой)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Кариб" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "КаталонÑкий" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "КавказÑкие (другие)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "СебуанÑкий" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "КельтÑкие (другие)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Чаморро" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Чибча" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ЧеченÑкий" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ЧагатайÑкий" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "КитайÑкий" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ЧукотÑкий" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "МарийÑкий" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Чинук жаргон" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Чоктав" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ЧипевьÑн" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Чероки" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Церковно-ÑлавÑнÑкий" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ЧувашÑкий" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Чейенн" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ЧамикÑкие Ñзыки" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "КоптÑкий" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "КорнÑкий" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "КорÑиканÑкий" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Ðнгло-креольÑкие и пиджины (другие)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Франко-креольÑкие и пиджины (другие)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Португало-креольÑкие и пиджины (другие)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Кри" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "КрымÑко-татарÑкий" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "КреольÑкие и пиджины (другие)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "КашубианÑкий" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "КушитÑкие (другие)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ЧешÑкий" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Дакота" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ДатÑкий" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "ДаргинÑкий" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ДаÑкÑкий" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "ДелаварÑкий" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "ÐтапачÑкие Ñзыки" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Догриб" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Динка" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Дивехи (МальдивÑкий)" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Догри" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ДравидийÑкие (другие)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Ðижне-лужицкий" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Дуала" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Ðемецкий, Ñредневековый (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ГолландÑкий" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Диула (Дьюла)" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Дзонг-кÑ" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Эфик" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ДревнеегипетÑкий" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Экаджук" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "ЭламÑкий" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ÐнглийÑкий" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ÐнглийÑкий, Средневековый (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ЭÑперанто" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ЭÑтонÑкий" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Эве" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Эвондо" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Фанг" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ФарерÑкий" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Фанти" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Фиджи" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ФилиппинÑкий" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ФинÑкий" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Финно-УгриÑйкий (другие)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Фон" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ФранцузÑкий" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "СреднефранцузÑкий" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "СтарофранцузÑкий" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "ФризÑкий" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Фулах" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ФриулийÑкий" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Га" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Гайо" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ГбайÑ" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ГерманÑкие (другие)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ГрузинÑкий" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Ðемецкий" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "ГеÑз" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "ГильбертÑкий" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ГаÑльÑкий" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ИрландÑкий" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ГалиÑийÑкий" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "МÑнÑкий" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Ðемецкий, Ñредние века (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Ðемецкий, Ñтарый (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Гонди" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Горонтала" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ГотÑкий" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Гребо" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "ДревнегречеÑкий" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "ГречеÑкий, Современный (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Гуарани" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Гуджарати" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Гвичин" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Хайда" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ГаитÑнÑкий" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "ХауÑа" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "ГавайÑкий" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Иврит" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Гереро" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Хилигайнон" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Химачали" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Хинди" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Хиттит" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Хмонг" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Хири" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Верхне-лужицкий" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "ВенгерÑкий" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Хупа" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ИбанÑкий" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Игбо" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ИÑландÑкий" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Идо" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Йи (Сычуань)" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Иджо" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Инуктитут" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Интерлингве" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Илоко" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Интерлингва (ÐœÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ð°Ñ ÐÑÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ð’Ñпомогательного Языка)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ИндийÑкие (другие)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ИндонезийÑкий" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Индо-ЕвропейÑкий (Другой)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ИнгушÑкий" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Инупиак" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ИранÑкий (Другой)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "ИрокезÑкие Ñзыки" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ИтальÑнÑкий" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ЯванÑкий" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Ложбан" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ЯпониÑ" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "ЕврейÑко-перÑидÑкий" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "ЕврейÑко-арабÑкий" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Кара-КалпакÑкий" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "КабильÑкий" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "КачинÑкий" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "ГренландÑкий" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Камба" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Каннада" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "КаренÑкий" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Кашмири" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Канури" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Кави" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "КазахÑкий" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "КабардинÑкий" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "КхаÑи" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "КойÑанÑкие (другие)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ХмерÑкий" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "ХотанÑкий" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Кикуйю" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "КиньÑруанда" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "КиргизÑкий (КыргызÑкий)" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Кимбунду" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Конкани" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Коми" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Конго" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "КорейÑкий" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "КуÑайе" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Кпелле" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Карачаево-балкарÑкий" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Кру" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Курух" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "КиньÑма" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "КумыкÑкий" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "КурдÑкий" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Кутенаи" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ладино" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Лахнда" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Ламба" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "ЛаоÑÑкий" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ЛатинÑкий" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ЛатышÑкий" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "ЛезгинÑкий" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "ЛимбуржÑкий" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Лингала" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ЛитовÑкий" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Монго" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Лози" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "ЛюкÑембургÑкий" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Луба-Лулуа" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Луба-Катанга" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ганда" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "ЛуиÑеньо" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Лунда" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Луо (ÐšÐµÐ½Ð¸Ñ Ð¸ ТанзаниÑ)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Лушаи" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "МакедонÑкий" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "МадурÑкий" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Магахи" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "МаршальÑкий" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Майтхили" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "МакаÑÑарÑкий" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "МалаÑлам" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Мандинго" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Маори" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ÐвÑтронезийÑкие (другие)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Маратхи" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "МаÑаи" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "МалайÑкий" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "МокшанÑкий" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Мандара" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Менде" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ИрландÑкий, Ñредневековый (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Микмак" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Минангкабау" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Смешанные Ñзыки" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "МонкхмерÑкие (другие)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "МалагаÑийÑкий" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "МальтийÑкий" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Манчу" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "МанипурÑкий" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Манобо Ñзыки" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Мохаук" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "МолдавÑкий" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "МонгольÑкий" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "МоÑи" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Языки разных Ñемей" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Мунда Ñзыки" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Крик" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "МирандÑкий" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Марвари" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "ÐœÐ°Ð¹Ñ Ñзыки" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ЭрзÑнÑкий" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Ðауатль" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Северной Ðмерики индейцев" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ÐеаполитанÑкий" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Ðавахо" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ðдебеле южный" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ðдебеле Ñеверный" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ðдунга" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Ðижненемецкий" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "ÐепальÑкий" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Ðепал-бхаÑа" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "ÐиаÑÑкий" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Ðигер-кордофанÑкие (другие)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "ÐиуÑ" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "ÐюнорÑк (ÐовонорвежÑкий)" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Букмоль (ÐорвежÑкий)" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "ÐогайÑкий" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "СтаронорвежÑкий" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "ÐорвежÑкий" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Северный Сото" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "ÐубийÑкие Ñзыки" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "КлаÑÑичеÑкий неварÑкий" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Чичева" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "ÐÑŒÑмвези" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "ÐÑŒÑнколе" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Ðьоро" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Ðзима" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ОкÑитанÑкий (поÑле 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Оджибва" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "ОриÑ" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Оромо" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ОÑеджи" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ОÑетинÑкий" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Турецкий, ОттоманÑкий (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ОтомангÑкие Ñзыки" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "ПапуаÑÑкие (другие)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "ПангаÑинан" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "ПехлевийÑкий" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Пампанга" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Панджаби" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "ПапьÑменто" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Палау" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ПерÑидÑкий, Старый (ca.600-400 до н.Ñ.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ПерÑидÑкий" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ФилиппинÑкие (другие)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ФиникийÑкий" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Пали" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ПольÑкий" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ПонпейÑкий" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ПортугальÑкий" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Языки пракрит" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "ПрованÑальÑкий, Старый (до 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Пушту" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Кечуа" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "РаджаÑтхани" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Рапануи" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Раротонга" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "РоманÑкие (другие)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Рето-РоманÑкий" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "ЦыганÑкий" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "РумынÑкий" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Рунди" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "РуÑÑкий" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Сандаве" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Санго" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "ЯкутÑкий" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Индейцев Южной Ðмерики (другие)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "СалишÑкие Ñзыки" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "СамаритÑнÑкий арамейÑкий" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "СанÑкрит" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "СаÑакÑкий" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Сантали" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "СербÑкий" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "СицилийÑкий" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "ШотландÑкий (ГÑльÑкий)" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ХорватÑкий" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "СелькупÑкий" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "СемитÑкие (другие)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ИрландÑкий, УÑтаревший (до 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Языки жеÑтов" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "ШанÑкий" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Сидама" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "СингальÑкий" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Языки Сиу" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Сино-ТибетÑкие (другие)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "СлавÑнÑкие (другие)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Словацкий" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "СловенÑкий" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Южно-ÑаамÑкий" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Северо-ÑаамÑкий" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "СаамÑкие Ñзыки (другие)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Люле-ÑаамÑкий" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Инари-ÑаамÑкий" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "СамоанÑкий" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Скольт-ÑаамÑкий" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Шона" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Синдхи" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Сонинке" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "СогдийÑкий" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Сомали" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Сонгаи" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Сото Южный" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ИÑпанÑкий" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "СардинÑкий" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Серер" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Ðило-ÑахарÑкие (другие)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Свати" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Сукума" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "СунданÑкий" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "СуÑу" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ШумерÑкий" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Суахили" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ШведÑкий" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "СирийÑкий" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ТаитÑнÑкий" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ТайÑкие (другие)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ТамильÑкий" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "ТатарÑкий" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Телугу" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Темне" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Терено" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "ТетумÑкий" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "ТаджикÑкий" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "ТагальÑкий" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ТайÑкий" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ТибетÑкий" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Тигре" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ТигриньÑ" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Тив" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Клингон" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Тлингит" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Тамашек" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Тонга (ÐÑŒÑÑа)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Тонга (Тонга ИÑландÑкий)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Ток-пиÑин" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Цимшиан" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ТÑвана" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "ТÑонга" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ТуркменÑкий" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Тумбука" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Тупи Ñзыки" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Турецкий" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "ÐлтайÑкие (другие)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Тви" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ТувинÑкий" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "УдмуртÑкий" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "УгаритÑкий" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "УйгурÑкий" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "УкраинÑкий" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Умбунду" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Ðеопределенный" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Урду" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "УзбекÑкий" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Ваи" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Венда" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ВьетнамÑкий" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Волапюк" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "ВодÑкий" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ВакашÑкие Ñзыки" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Воламо" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Варай" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Вашо" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "УÑльÑкий" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Лужицкие Ñзыки" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ВаллонÑкий" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Волоф" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Калмыцкий" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "КхоÑа" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Яо" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Яп" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Идиш" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Йоруба" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Языки группы Юпик" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "СапотекÑкий" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "ЗенагÑкий" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Чжуань" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Занди" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ЗулуÑÑкий" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "ЗунийÑкий" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Будут выполнены Ñледующие дейÑтвиÑ:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "не иÑтекает" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "иÑтек: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "иÑтекает: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(не иÑтекает)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(ИСТЕК)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(иÑтекает в течение 24 чаÑов)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(иÑтекает через %d день)" msgstr[1] "(иÑтекает через %d днÑ)" msgstr[2] "(иÑтекает через %d дней)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Ðевозможно прочитать каталог Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%1%\": доÑтуп запрещен" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Ðе удалоÑÑŒ прочитать каталог \"%s\"" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Ðевозможно прочитать файл Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%1%\": доÑтуп запрещен" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "ПÑевдоним Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ может начинатьÑÑ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "ПÑевдоним ÑÐµÑ€Ð²Ð¸Ñ Ð½Ðµ может начинатьÑÑ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Ðевозможно открыть файл \"%s\" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" "ÐеизвеÑтный ÑÐµÑ€Ð²Ð¸Ñ \"%1%\": удаление Ñлужебного Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%2%\" Ñ " "нарушенными аÑÑоциациÑми" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "По указанному URL-адреÑу не найдено допуÑтимых метаданных" msgstr[1] "По указанным URL-адреÑам не найдено допуÑтимых метаданных" msgstr[2] "По указанным URL адреÑам не найдено допуÑтимых метаданных" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Ðе удалоÑÑŒ Ñоздать %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Ðевозможно Ñоздать каталог кÑша метаданных." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Сбор кÑша Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%s\"" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Ðе удалоÑÑŒ Ñоздать кÑш в %s — нет прав на запиÑÑŒ." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Ошибка при кÑшировании Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Ðеобрабатываемый тип репозиториÑ" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Ошибка при попытке Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ð· \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при чтении из \"%s\"" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Добавление Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² \"%s\"" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Удаление Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%s\"" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Ðевозможно выÑÑнить, где хранитÑÑ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ð¹." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ðе удаетÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ \"%s\"" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Ðевозможно определить, где хранитÑÑ ÑервиÑ." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñтрока запроÑа LDAP в URL-адреÑе" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "ÐедопуÑтимый параметр запроÑа LDAP в URL-адреÑе: \"%s\"" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Ðе удалоÑÑŒ Ñоздать клон объекта URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ ÑÑылка на пуÑтой объект URL" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Ðе удалоÑÑŒ выполнить анализ ÑинтакÑиÑа компонентов URL-адреÑа" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "неизвеÑтно" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "не поддерживаетÑÑ" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Уровень 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Уровень 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Уровень 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Ðеобходимо дополнительное клиентÑкое Ñоглашение" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "неверно" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Уровень поддержки не определен" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Производитель не предоÑтавлÑет поддержку." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Определение проблемы, Ñ‚. е. техподдержка должна предоÑтавлÑть информацию о " "ÑовмеÑтимоÑти, помощь при уÑтановке, поддержку иÑпользованиÑ, обÑлуживание и " "базовое выÑвление неиÑправноÑтей. Поддержка первого ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ðµ подразумевает " "иÑправление дефектов продукта." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "ИзолÑÑ†Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹, Ñ‚. е. техподдержка должна воÑпроизводить проблему " "клиента, изолировать проблемную облаÑть и предоÑтавлÑть Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, не " "решенных поддержкой первого уровнÑ." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Решение проблемы, Ñ‚. е. техподдержка должна решать Ñложные проблемы Ñ " "привлечением инженеров Ð´Ð»Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´ÐµÑ„ÐµÐºÑ‚Ð¾Ð² продукта, обнаруженных " "поддержкой второго уровнÑ." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ необходимо дополнительное клиентÑкое Ñоглашение." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "ÐеизвеÑтный вариант поддержки. ОпиÑание недоÑтупно" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Управление ÑиÑтемой заблокировано приложением Ñ pid %d (%s).\n" "Закройте Ñто приложение перед Ñледующей попыткой." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ИÑториÑ:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Ðевозможно открыть файл блокировки: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Это дейÑтвие уже выполнÑетÑÑ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ программой." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "ÐеизвеÑтный режим ÑопоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\"" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "ÐеизвеÑтный режим ÑопоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\" Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° \"%s\"" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "ÐедопуÑтимое регулÑрное выражение \"%s\": regcomp вернул %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "ÐедопуÑтимое регулÑрное выражение \"%s\"" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Ðеобходима Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð´Ð»Ñ \"%s\"" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "ПоÑетите Novell Customer Center Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð²Ð°ÑˆÐµÐ¹ " "региÑтрации." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Ðе удалоÑÑŒ Ñмонтировать %s в %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Ðе удалоÑÑŒ отмонтировать %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Ðекорректное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "При попытке Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ \"%s\" не был открыт ноÑитель." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Файл \"%s\" не найден на ноÑителе \"%s\"" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Ðевозможно запиÑать файл \"%s\"." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "ÐоÑитель не приÑоединен" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð¾ÑителÑ" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Сбой инициализации загрузки (curl) Ð´Ð»Ñ \"%s\"" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "СиÑтемное иÑключение \"%s\" на ноÑителе \"%s\"." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Путь \"%s\" на ноÑителе \"%s\" не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Путь \"%s\" на ноÑителе \"%s\" не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Ðеправильно Ñформированный URI-адреÑ" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "ПуÑтое Ð¸Ð¼Ñ Ñ…Ð¾Ñта в URI-адреÑе" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "ПуÑÑ‚Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема в URI-адреÑе" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "ПуÑтой пункт Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² URI-адреÑе" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "ÐÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ñхема URI-адреÑа в \"%s\"." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживаетÑÑ Ð½Ð¾Ñителем" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Ошибка загрузки (curl) \"%s\":\n" "Код ошибки: %s\n" "Сообщение об ошибке: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "Произошла ошибка при уÑтановке параметров загрузки (curl) Ð´Ð»Ñ \"%s\":" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "ИÑточник ноÑителей \"%s\" не Ñодержит желаемого ноÑителÑ" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "ÐоÑитель\"%s\" иÑпользуетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ ÑкземплÑром" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Ðевозможно извлечь ни один ноÑитель" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ðевозможно извлечь ноÑитель \"%s\"" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "ДоÑтуп к \"%s\" запрещен." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Превышено Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ попытке доÑтупа к \"%s\"." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "РаÑположение \"%s\" временно недоÑтупно." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Проблема Ñ Ñертификатом SSL, проверьте, вÑе ли в порÑдке Ñ ÑƒÐ´Ð¾ÑтоверÑющим " "центром Ñертификата \"%s\"." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Создание точки приÑоединениÑ: не могу найти катлог Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтью запиÑи Ð´Ð»Ñ " "ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ приÑоединениÑ" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Ðеподдерживаемый метод HTTP-аутентификации \"%s\"" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Сначала уÑтановите пакет \"lsof\"." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Ðеобходимый атрибут \"%s\" отÑутÑтвует." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "ТребуютÑÑ Ð¾Ð´Ð¸Ð½ или оба атрибута \"%s\" или \"%s\"." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Сбой при проверке подпиÑи" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Похоже, что пакет %s поврежден при передаче. Попробовать получить еще раз?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Ðе удалоÑÑŒ предоÑтавить пакет %s. Попробовать получить еще раз?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Ñбой при проверке applydeltarpm." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Ñбой в applydeltarpm." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Модуль ÑервиÑа не поддерживает изменение атрибута." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Ðевозможно предоÑтавить файл \"%s\" из Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ \"%s\"" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Ð’ репозитории нет URL-адреÑа." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ из пакета\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ из пакета\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ из пакета\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ из пакета\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼\n" " %3%\n" " из пакета\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼\n" " %3%\n" " из пакета\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼\n" " %3%\n" " из пакета\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Файл %1%\n" " из пакета\n" " %2%\n" " конфликтует Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼\n" " %3%\n" " из пакета\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Ðевозможно Ñоздать sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "повредить %s, Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ðµ из его завиÑимоÑтей" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "вообще игнорировать некоторые завиÑимоÑти" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s не принадлежит репозиторию Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¸Ñтрибутива" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s имеет худшую архитектуру" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "проблема в уÑтановленном пакете %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "конфликтующие запроÑÑ‹" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "проблема Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ завиÑимоÑÑ‚Ñми" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "ничто не предоÑтавлÑет запрошенный %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Включили ли вы вÑе требуемые репозитории?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "пакет %s не ÑущеÑтвует" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ðµ поддерживаетÑÑ" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s предоÑтавлÑетÑÑ ÑиÑтемой и не может быть удален" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s недоÑтупен Ð´Ð»Ñ ÑƒÑтановки" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "ничто не предоÑтавлÑет %s, необходимый Ð´Ð»Ñ %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Ðе удаетÑÑ ÑƒÑтановить оба %s и %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s конфликтует Ñ %s, который предоÑтавлÑетÑÑ %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s делает уÑтаревшим %s, предоÑтавлÑемый %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "уÑтановленный пакет %s делает уÑтаревшим %s, предоÑтавлÑемый %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" "объект Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑтей %s конфликтует Ñ %s, который предоÑтавлÑетÑÑ " "им Ñамим" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s требует %s, но Ñто требование не может быть удовлетворено" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "удаленные поÑтавщики: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "неуÑтанавливаемые поÑтавщики: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "поÑтавщики, не подлежащие уÑтановке: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "удалить блокировку Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "не уÑтанавливать %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "оÑтавить %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "удалить блокировку Ð´Ð»Ñ ÑƒÑтановки %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Этот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð²Ñ€ÐµÐ´Ð¸Ñ‚ вашу ÑиÑтему!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "игнорировать предупреждение о повреждении ÑиÑтемы" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" "не проÑить уÑтановить объект Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑтей, предоÑтавлÑющий %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" "не проÑить удалить вÑе объекты Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑтей, предоÑтавлÑющие %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "не уÑтанавливать Ñамую поÑледнюю верÑию %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "оÑтавить %s, неÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° Ñмену архитектуры" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "уÑтановить %s, неÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° Ñмену архитектуры" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "оÑтавить уÑтаревший %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "уÑтановить %s из иÑключенного репозиториÑ" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "обновить %s до более Ñтарой верÑии %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "изменение архитектуры %s на %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "уÑтановить %s (Ñо Ñменой поÑтавщика)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "замена %s на %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "удаление %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Выполнение Ñкрипта %%posttrans \"%1%\"" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Выполнение Ñкриптов %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " выполнено" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " Ñбой при выполнении" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s уже выполнен как %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " выполнение пропущено во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Ошибка при отправке ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± обновлении." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Ðовое Ñообщение об обновлении" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "УÑтановка прервана ÑоглаÑно указаниÑм." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Увы, Ð´Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ libzypp была Ñобрана без поддержки HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext не подключен" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive не инициализирован" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume не инициализирован" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Ðе удалоÑÑŒ уÑтановить Ñоединение Ñ dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: не удаетÑÑ Ñоздать контекÑÑ‚ libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: не удалоÑÑŒ уÑтановить Ñоединение Ñ dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Ðе удалоÑÑŒ инициализировать контекÑÑ‚ HAL – не запущен hald?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Ðе привод CD-ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Сбой RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Ðе удалоÑÑŒ импортировать открытый ключ %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Ðе удалоÑÑŒ удалить открытый ключ %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Пакет не подпиÑан!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Измененные конфигурационные файлы Ð´Ð»Ñ %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm Ñохранил %s как %s, но было невозможно определить различиÑ" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm Ñохранил %s как %s.\n" "Первые 25 Ñтрок различий:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm Ñоздал %s как %s, но было невозможно определить различиÑ" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm Ñоздал %s как %s.\n" "Первые 25 Ñтрок различий:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Дополнительный вывод rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "Ñоздана Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "ПодпиÑÑŒ в порÑдке" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "ÐеизвеÑтный тип подпиÑи" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "ПодпиÑÑŒ не проверена" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "ПодпиÑÑŒ в порÑдке, но ключ не ÑвлÑетÑÑ Ð´Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ñ‹Ð¼" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Открытый ключ подпиÑей недоÑтупен" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Файл не ÑущеÑтвует, или невозможно проверить подпиÑÑŒ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Файл не подпиÑан" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Ðевозможно инициализировать атрибуты взаимного иÑключениÑ" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Ðевозможно уÑтановить атрибут рекурÑивного взаимного иÑключениÑ" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Ðе удаетÑÑ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ рекурÑивное взаимоиÑключение" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Ðе удаетÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ блокировку взаимоиÑключениÑ" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Ðе удаетÑÑ Ð¾Ñвободить блокировку взаимоиÑключениÑ" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Схема URL-адреÑа не позволÑет иÑпользовать %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "ÐедопуÑтимый компонент %s: \"%s\"" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "ÐедопуÑтимый компонент %s" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Ð”Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ URL-адреÑа анализ Ñтроки запроÑа не поддерживаетÑÑ" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Схема URL-адреÑа ÑвлÑетÑÑ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ñ‹Ð¼ компонентом" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñхема URL-адреÑа \"%s\"" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Схема URL-адреÑа не позволÑет иÑпользовать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Схема URL-адреÑа не позволÑет иÑпользовать пароль" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Схема URL-адреÑа требует ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð° хоÑта" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Схема URL-адреÑа не позволÑет иÑпользовать компонент хоÑта" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "ÐедопуÑтимый компонент хоÑта \"%s\"" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Схема URL-адреÑа не позволÑет иÑпользовать порт" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "ÐедопуÑтимый компонент порта \"%s\"" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Схема URL-адреÑа требует ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿ÑƒÑ‚Ð¸" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" "При наличии компонентов авторизации отноÑительные пути указывать нельзÑ" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Ð—Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñтрока Ñодержит байт Ñо значением NULL" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "ÐедопуÑтимый Ñимвол Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива параметров" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "ÐедопуÑтимый Ñимвол Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð²" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "ÐедопуÑтимый Ñимвол Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива параметров" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Ðе удалоÑÑŒ импортировать публичный ключ из файла %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Ðе удалоÑÑŒ удалить публичный ключ %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Ðевозможно найти доÑтупное loop-уÑтройÑтво Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° образа " #~ "из '%s'" #~ msgid "generally ignore of some dependecies" #~ msgstr "игнорировать некоторые завиÑимоÑти везде" #~ msgid "do not keep %s installed" #~ msgstr "не оÑтавлÑть уÑтановленным %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "Ðевозможно запиÑать публичный ключ %s из хранилища %s в файл %s" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "Попытка импорта неÑущеÑтвующего ключа %s в хранилище ключей %s" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Ðевозможно выполнить chdir в '/' внутри Ñреды chroot (%s)." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "Сбой инициализации загрузки (Metalink curl) Ð´Ð»Ñ '%s'" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Ошибка загрузки (metalink curl) Ð´Ð»Ñ '%s':\n" #~ "Код ошибки: %s\n" #~ "Сообщение об ошибке: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Загрузка прервана на %d%%" #~ msgid "Download interrupted by user" #~ msgstr "Загрузка прервана пользователем" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Произошла ошибка при уÑтановке параметров загрузки (metalink curl) Ð´Ð»Ñ " #~ "'%s':" #~ msgid "Failed to download %s from %s" #~ msgstr "Ðе удалоÑÑŒ загрузить %s Ñ %s" libzypp-17.7.0/po/si.po000066400000000000000000002555571334444677500147340ustar00rootroot00000000000000# Sinhala message file for YaST2 (@memory@). # Copyright (C) 2007 SUSE Linux Products GmbH. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2005-07-29 15:37+0530\n" "Last-Translator: i18n@suse.de\n" "Language-Team: Sinhala \n" "Language: si\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "" #. :ARM:051: #: zypp/CountryCode.cc:165 #, fuzzy msgid "Netherlands Antilles" msgstr "නෙදර්ලන්තය" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "බෙල්ජියම" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "" #. :COG:178: #: zypp/CountryCode.cc:199 #, fuzzy msgid "Switzerland" msgstr "නෙදර්ලන්තය" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "ජර්මනිය" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ඩෙන්මà·à¶»à·Šà¶šà¶º" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "පින්ලන්තය" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 #, fuzzy msgid "Faroe Islands" msgstr "අයර්ලන්තය" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "එක්සත් à¶»à·à¶¢à¶°à·à¶±à·’ය" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "ජර්මනිය" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" #. :GIB:292: #: zypp/CountryCode.cc:240 #, fuzzy msgid "Greenland" msgstr "අයර්ලන්තය" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ග්â€à¶»à·’සිය" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "හන්ගේරියà·à·€" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "අයර්ලන්තය" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "" #. :IRN:364: #: zypp/CountryCode.cc:265 #, fuzzy msgid "Iceland" msgstr "අයර්ලන්තය" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 #, fuzzy msgid "North Korea" msgstr "උතුරු අයර්ලන්තය" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ලක්සන්බර්ග්" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "මà·à¶½à·Šà¶©à·à·€" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "" #. :MAC:446: #: zypp/CountryCode.cc:305 #, fuzzy msgid "Northern Mariana Islands" msgstr "උතුරු අයර්ලන්තය" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 #, fuzzy msgid "Norfolk Island" msgstr "උතුරු අයර්ලන්තය" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "නෙදර්ලන්තය" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" #. :NIU:570: #: zypp/CountryCode.cc:327 #, fuzzy msgid "New Zealand" msgstr "නෙදර්ලන්තය" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "" #. :PAK:586: #: zypp/CountryCode.cc:335 #, fuzzy msgid "Poland" msgstr "පින්ලන්තය" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "පෘතුගà·à¶½à¶º" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "රුමෙනියà·à·€" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "ස්ලà·à·€à·™à¶±à·’යà·à·€" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "ස්ලà·à·€à·à¶šà·’යà·à·€" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 #, fuzzy msgid "Swaziland" msgstr "පින්ලන්තය" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 #, fuzzy msgid "Thailand" msgstr "පින්ලන්තය" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "තුර්කිය" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "යුක්රේනය" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "උතුරු අයර්ලන්තය" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 #, fuzzy msgid "German" msgstr "ජර්මනිය" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 #, fuzzy msgid "Hungarian" msgstr "හන්ගේරියà·à·€" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 #, fuzzy msgid "Icelandic" msgstr "අයර්ලන්තය" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "ලක්සන්බර්ග්" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "මà·à¶½à·Šà¶©à·à·€" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "උතුරු අයර්ලන්තය" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "ජර්මනිය" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "" #. language code: nso #: zypp/LanguageCode.cc:813 #, fuzzy msgid "Northern Sotho" msgstr "උතුරු අයර්ලන්තය" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 #, fuzzy msgid "Portuguese" msgstr "පෘතුගà·à¶½à¶º" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "රුමෙනියà·à·€" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 #, fuzzy msgid "Romanian" msgstr "රුමෙනියà·à·€" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 #, fuzzy msgid "Slovak" msgstr "ස්ලà·à·€à·à¶šà·’යà·à·€" #. language code: slv sl #: zypp/LanguageCode.cc:959 #, fuzzy msgid "Slovenian" msgstr "ස්ලà·à·€à·™à¶±à·’යà·à·€" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 #, fuzzy msgid "Northern Sami" msgstr "උතුරු අයර්ලන්තය" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "තුර්කිය" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "" #. language code: tur tr #: zypp/LanguageCode.cc:1071 #, fuzzy msgid "Turkish" msgstr "තුර්කිය" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 #, fuzzy msgid "Ukrainian" msgstr "යුක්රේනය" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Couldn't open file: %s." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Couldn't open file: %s." #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Couldn't open file: %s." #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Couldn't open file: %s." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." libzypp-17.7.0/po/sk.po000066400000000000000000003170751334444677500147300ustar00rootroot00000000000000# Copyright (C) YEAR SuSE Linux GmbH, Nuernberg # This file is distributed under the same license as the PACKAGE package. # Ferdinand Galko , 2015, 2016. msgid "" msgstr "" "Project-Id-Version: libzypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-04 11:16+0000\n" "Last-Translator: Ferdinand Galko \n" "Language-Team: Slovak " "\n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Výnimka Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Pochybný typ '%s' pre %u bajtový kontrolný súÄet '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Neznáma krajina: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Žiadny kód" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Spojené Arabské Emiráty" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua a Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albánsko" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Arménsko" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Holandské Antily" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktída" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentína" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Americká Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Rakúsko" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Austrália" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Alandské ostrovy" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbajdžan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosna a Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladéš" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgicko" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulharsko" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrajn" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudy" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolívia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazílsky" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamy" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhután" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetov ostrov" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Bielorusko" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosové (Keeling) ostrovy" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Stredoafrická Republika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å vajÄiarsko" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Pobrežie slonoviny" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookove ostrovy" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ÄŒile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Čína" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kostarika" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kapverdy" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "VianoÄne ostrovy" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cyprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ÄŒeská Republika" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Nemecko" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Džibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Dánsko" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikánska Republika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžírsko" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvádor" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estónsko" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Západná Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Å panielsko" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiópia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Fínsko" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandské ostrovy (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federácia Mikronézskych Å¡tátov" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faerské ostrovy" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francúzsko" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitné Francúzsko" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Spojené kráľovstvo" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Granada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gruzínsko" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Francúzska Guana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltár" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grónsko" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Rovníková Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grécko" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Južná Georgia a Južné Sandwichove ostrovy" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hongkong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heardov ostrov a Macdonaldové ostrovy" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Chorvátsko" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "MaÄarsko" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonézia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Ãrsko" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Ostrov Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britská oblasÅ¥ Indického oceánu" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irak" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Taliansko" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordánsko" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonsko" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Keňa" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgizsko" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodža" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komory" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Svätý Kitts a Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Severná Kórea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Južná Kórea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvajt" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kaimanské ostrovy" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazachstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Ľudová Demokratická Republika Laos" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Svätá Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "LichtenÅ¡tajnsko" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Srí Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Libéria" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litva" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembursko" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "LotyÅ¡sko" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libéria" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavsko" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "ÄŒierna hora" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Svätý Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshallove ostrovy" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedónsko" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mjanmarsko" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolsko" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Makao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Severné ostrovy Mariana" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinik" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritánia" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Maurícius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malajzia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namíbia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nová Kaledónia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolské ostrovy" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigéria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Holandsko" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Nórsko" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepál" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nový Zéland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Omán" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Francúzska Polynézia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nová Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipíny" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poľsko" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Svätý Pierre a Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairnove ostrovy" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Portoriko" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestínske teritórium" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalsko" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguaj" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunsko" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Srbsko" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Ruská Federácia" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudská Arábia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomon ostrovy" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychely" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudán" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å védsko" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Svätá Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovinsko" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard a Jan Mayen ostrovy" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovensko" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Maríno" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somálsko" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome a Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Salvádor" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Surinam" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swazijsko" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Ostrovy Turks a Caicos" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ÄŒad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Južné Francúzske teritóriá" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thajsko" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkménsko" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisko" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Východný Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turecko" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad a Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tajwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzánia" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Spojené Å táty Minor Outlying ostrovy" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Spojené Å táty" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguaj" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Mestský Å tát Vatikán" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Svätý Vincent a Grenadíny" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britské Panenské ostrovy" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Panenské ostrovy, U.S." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis a Futuna ostrovy" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Južná Afrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Poskytuje" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Predpokladá" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Vyžaduje" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Je v konflikte" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Zastarané" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "OdporúÄa" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Navrhuje" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "ZlepÅ¡uje" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Doplnky" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Nie je možné otvoriÅ¥ pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Nie je možné otvoriÅ¥ rúru (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Nemôžem spraviÅ¥ chroot do '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Nie je možné vykonaÅ¥ chdir pre '%s' vo vnútri chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Nie je možné vykonaÅ¥ chroot pre '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Nemôžem spustiÅ¥ '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Nemôžem spraviÅ¥ rozdelenie programu (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Stav príkazu po skonÄení je %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Príkaz bol zabitý signálom %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Príkaz skonÄil s neznámou chybou." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Pokus o importovanie neexistujúceho kľúÄa %s do zväzku kľúÄov %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Nepodarilo sa importovaÅ¥ kľúÄ." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Nepodarilo zmazaÅ¥ kľúÄ." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Súbor podpisu %s nebol nájdený" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Neznámy jazyk: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "AfarÄina" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "AbcházÄina" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "AcehÄina" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "AÄoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "AdygÄina" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Ãzijský (ostatné)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihikli" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikánsky" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "AkkadÄina" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albánsky" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleuty" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonkské jazyky" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Južný Altai" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Staroanglický (r. 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "ApaÄské jazyky" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabský" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "AramejÄina" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonese" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Arménsky" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "AraukánÄina" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Umelý (ostatné)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "ArawaÄtina" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamský" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Rakúsky" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athabaské jazyky" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Austrálske jazyky" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarský" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestský jazyk" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "AymarÄina" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Ãzerbajdžánsky" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Balúdžtina" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "BalijÄina" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskitský" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltický (ostatné)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Bedža" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bieloruský" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengálsky" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berber (ostatné)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "BhódžpurÄina" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "BiharÄina" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "BikolÄina" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (ostatné)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosniansky" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "BradžÄina" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretónsky" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "(Batak) Indonézia" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "BuriatÄina" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "BuginÄina" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulharský" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Kaddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Stredoamerický Indiánsky (ostatné)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Karibský" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalánsky" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukazský (ostatné)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "CebuánÄina" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltský (ostatné)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "ÄŒibský" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ÄŒeÄenský" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "ÄŒagatajský" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Čínsky" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ÄŒukský" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "MaríjÄina" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ÄŒinucký žargón" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "ÄŒipeva" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "ÄŒerokézÄina" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Cirkevný slovanský" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ÄŒuvaÅ¡tina" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "ÄŒejenský" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ÄŒamaské jazyky" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "KoptÄina" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korzický" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creoles a Pidgins, anglické (ostatné)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creoles a Pidgins, francúzske (ostatné)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creoles a Pidgins, Portugalské (ostatné)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krimský tatársky" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creoles a Pidgins (ostatné)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "KaÅ¡ubský" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Cushitic (ostatné)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒeský" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakotský" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Dánsky" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "DarginÄina" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "DajaÄtina" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidian (ostatné)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Dolná lužická srbÄina" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Holandský, stredoveký (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandský" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Djula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Egyptský (starobylý)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekadžuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "ElamÄina" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Anglický" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Anglický stredoveký (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estónsky" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fidžský" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipínsky" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Fínsky" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fínsko-uhorský (ostatné)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "FonÄina" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francúzsky" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francúzsky starý (r. 842-1400)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francúzsky stredný (r. 1400-1600)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frízsky" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Frízsky" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaja" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Nemecký (ostatné)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Gruzínsky" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Nemecký" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Ge´ez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "KiribatÄina" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Ãrsky" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galícijský" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "ManÄina" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Nemecký (r. 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Nemecký (r. 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotický" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grécky starobylý (do r. 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grécky moderný (od r. 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitian" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Havajský" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebrejský" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "HiligajnonÄina" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himachálsky" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "ChetitÄina" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Hornosrbský" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "MaÄarský" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandský" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Idžo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indický (ostatné)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonézsky" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoeurópsky (ostatné)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "InguÅ¡tina" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iránsky (ostatné)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokézske jazyky" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Taliansky" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Jávsky" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonský" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Židovsko-Perzský" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Židovsko-Arabský" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "KarakalpaÄtina" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "KabylÄina" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "KaÄjinÄina" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "GrónÄina" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "KarenÄina" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÅ¡mírsky" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "KazaÅ¡ský" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "KabardÄina" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "KhasijÄina" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Khojsánske jazyky (iné)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "KotÄina" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuju" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgizský" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "KonkánÄina" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "KomijÄina" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Konžský" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Kórejský" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kusaie" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "KurukhÄina" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuaňama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "KumytÄina" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdský" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "LadinÄina" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "LahandÄina" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latinský" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "LotyÅ¡ský" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "LezginÄina" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgan" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litovský" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburský" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-luluánÄina" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseňo" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Keňa a Tanzánia)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lušáí" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedónsky" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "MadurÄina" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahí" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallove ostrovy" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "MakasarÄina" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronézsky (ostatné)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malajský" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "MandarÄina" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Ãrsky stredný (r. 900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mikman" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "MinangkabauÄina" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Rôzne jazyky" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Khmer (ostatné)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltézsky" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "MandžuÅ¡tina" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Manobo jazyky" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldavský" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongolský" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mosi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Viaceré jazyky" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Mundské jazyky" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Muskogi" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Májske jazyky" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Severoamerický Indiánsky" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitan" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele (Južná Afrika)" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele (Zimbabwe)" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "DolnonemÄina" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepálsky" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepál Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Nigérisjko-Kordofanský (ostatné)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "NiueÅ¡tina" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Nórsky Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Nórsky Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "NogidalÄina" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Norse, starý" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Nórsky" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Severné Sotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubijiské jazyky" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Classical Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Ňandža" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Ňamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Ňankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Ňoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (post 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Odžibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "OromÄina" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turecký, Ottoman (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Oto-pameské jazyky" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papujský (ostatné)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlaví" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampangan" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "PandžábÄina" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "PalauÄina" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Perzský starý (r. 600-400 p.n.l.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Perzský" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipíny (ostatné)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "PéniÄtina" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pálí" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poľský" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "PohnpeiÄina" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugalský" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Prakritské jazyky" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Provensálsky, starý (do 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "KeÄuánÄina" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Radžastanský" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "RapanujÄina" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "RarotongÄina" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romance (ostatné)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "RétorománÄina" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "RómÄina" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumunský" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ruský" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Juhoamerický Indiánsky (ostatné)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "SaliÅ¡ské jazyky" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritánska aramejÄina" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrt" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "SasaÄtina" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Srbský" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicílsky" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Chorvátsky" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "SelkupÄina" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitský (ostatné)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Ãrsky starý (do r. 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Znakové jazyky" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Å anÄina" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Siouské jazyky" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-tibetský (ostatné)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slovanský (ostatné)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovenský" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovinský" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Južné Sami" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Severné Sami" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Samské jazyky (ostatné)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "SamojÄina" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Å ona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "SogdÄina" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somálsky" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Soto" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Å panielsky" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardínsky" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nílsko-Saharský" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundánsky" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumérsky" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Svahilský" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å védsky" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "SýrÄina" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitský" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Tai (ostatné)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamilský" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatársky" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thajský" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetský" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingónsky" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "TamaÅ¡ek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "TongÄina (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tongské ostrovy)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshijské jazyky" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ÄŒwanÄina" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkménsky" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Jazyky tupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turecký" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altajské jazyky" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "TuvianÄina" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "UdmurtÄina" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "UgaritÄina" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrajinský" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "NeurÄený" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbecký" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamský" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "VodÄina" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "WakaÅ¡ské jazyky" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "WalamÄina" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "WelÅ¡ský" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Srbské jazyky" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "KalmyÄtina" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "JapÄina" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Judejský" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupické jazyky" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "ZapotéÄtina" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "ÄŒuangÄina" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Budú vykonané nasledovné akcie:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "nevyprší" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "vyprÅ¡al: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "vyprší: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(nevyprší)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(VYPRÅ ANÉ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(vyprší do 24h)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(vyprší za %d deň)" msgstr[1] "(vyprší za %d dni)" msgstr[2] "(vyprší za %d dní)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "Hľadanie ID gpg kľúÄa %1% vo vyrovnávacej pamäti %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "Hľadanie ID gpg kľúÄa %1% v repozitári %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "Repozitár %1% nedefinuje dodatoÄné URL 'gpgkey='." #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Nie je možné ÄítaÅ¥ adresár repozitára '%1%': Prístup zamietnutý" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Zlyhalo Äítanie adresára '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Nie je možné ÄítaÅ¥ súbor repozitára '%1%': Prístup zamietnutý" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Alias repozitára nemôže zaÄínaÅ¥ bodkou." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Alias služby nemôže zaÄínaÅ¥ bodkou." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Nemôžem otvoriÅ¥ súbor '%s' pre zápis." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Neznámá služba '%1%': Odstraňovanie osirelého repozitára služby '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Na stanovenej adrese URL sa nenaÅ¡li platné metadáta" msgstr[1] "Na stanovených adresách URL sa nenaÅ¡li platné metadáta" msgstr[2] "Na stanovených adresách URL sa nenaÅ¡li platné metadáta" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Nie je možné vytvoriÅ¥ %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Nie je možné vytvoriÅ¥ adresár vyrovnávacej pamäte metadát." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Vytváram vyrovnávaciu pamäť repozitára '%s'" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" "Nie je možné vytvoriÅ¥ vyrovnávaciu pamäť v %s - žiadne práva na zapisovanie." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Zlyhalo ukladanie do vyrovnávacej pamäti pre repozitár (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Nepodporovaný typ repozitára" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Chyba pri Äítaní z '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Neznáma chyba Äítania z '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Pridávam repozitár '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Neplatný názov súboru repozitára v '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Odstraňujem repozitár '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Nie je možné prísÅ¥ na to, kde je uložený repozitár." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Nie je možné vymazaÅ¥ '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Nie je možné prísÅ¥ na to, kde je uložená služba." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Neplatný query string v URL pre LDAP" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Neplatný parameter dopytu LDAP URL '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Daný URL objekt nie je možne klonovaÅ¥" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Neplatný odkaz na prázdny URL objekt" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Nie je možné preÄítaÅ¥ zložky URL" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "neznámy" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nepodporovaný" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Úroveň 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Úroveň 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Úroveň 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Je potrebná ÄalÅ¡ia Zákaznícka Zmluva" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "chybný" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Úroveň podpory nie je urÄená" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Dodávateľ neposkytuje podporu." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "UrÄenie problému, teda technická podpora zameraná na poskytovanie informácií " "o kompatibilite, pomoc pri inÅ¡talácii, pomoc pri používaní, nepretržitú " "údržbu a základnú pomoc pri rieÅ¡ení problémov. Podpora Úrovne 1 nie je " "urÄená na opravu chýb produktu." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Izolácia problému, teda technická podpora zameraná na reprodukovanie " "problémov zákazníka, vymedzenie problémovej oblasti a poskytovanie rieÅ¡enia " "problémov nevyrieÅ¡ených Podporou Úrovne 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "RieÅ¡enie problému, teda technická podpora zameraná na rieÅ¡enie zložitých " "problémov za pomoci odborníkov pri rieÅ¡ení chýb produktu, ktoré boli " "identifikované Podporou Úrovne 2." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Pre poskytovanie podpory je potrebná ÄalÅ¡ia zákaznícka zmluva." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Neznáma voľba podpory. Popis nie je k dispozícii" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Správa softvéru je uzamknutá inou aplikáciou s pid %d (%s).\n" "UkonÄite najprv túto aplikáciu a skúste znova." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "História:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Nie je možné otvoriÅ¥ súbor so zámkom: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Táto akcia je už spustená iným programom." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Neznámy režim zhody '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Neznámy režim zhody '%s' pre Å¡ablónu '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Neplatný regulárny výraz '%s': regcomp vrátil %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Neplatný regulárny výraz '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "'%s' vyžaduje autentifikáciu" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "NavÅ¡tívte Novell Customer Center, aby ste skontrolovali, Äi je vaÅ¡a " "registrácia platná a eÅ¡te nevyprÅ¡ala." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Nepodarilo sa pripojiÅ¥ %s na %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Nepodarilo sa odpojiÅ¥ %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Nesprávne meno súboru: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Médium sa neotvorilo pri pokuse vykonaÅ¥ '%s'." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Súbor '%s' nebol nájdený na médiu '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Nemôžem zapísaÅ¥ súbor '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Médium nie je pripojené" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Nesprávny prípojný bod média" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Zlyhala inicializácia sÅ¥ahovania (curl) pre '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systémová výnimka '%s' na médiu '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Cesta '%s' na médiu '%s' nie je súborom." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Cesta '%s' na médiu '%s' nie je adresárom." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Chybné URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Prázdny názov hostiteľa v URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Prázdny súborový systém v URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Prázdny cieľ v URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Nepodporovaná schéma URI v '%s'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Operácie nie je médiom podporovaná" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Chyba sÅ¥ahovania (curl) pre '%s':\n" "Kód chyby: %s\n" "Chybová správa: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Vyskytla sa chyba poÄas nastavovania možností sÅ¥ahovania (curl) pre '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Zdroj média '%s' neobsahuje požadované médium" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Médium '%s' už používa iná inÅ¡tancia" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Nemôžem vysunúť žiadne médium" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Nemôžem vysunúť médium '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Zamietnutý prístup na '%s'." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "VyprÅ¡al Äasový limit pri prístupe na '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "Stiahnuté dáta prekroÄili oÄakávanú veľkosÅ¥ súboru '%s' z '%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Umiestnenie '%s' je doÄasne nedostupné." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " problém s certifikátom SSL, skontrolujte Äi certifikát CA je v poriadku pre " "'%s'." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "VytvoriÅ¥ prípojný bod: Nie je možné nájsÅ¥ zapisovateľný adresár pre " "vytvorenie prípojného bodu" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "'%s' nie je podporovaná metóda autentifikácie" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Prosím, najskôr nainÅ¡talujte balík 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Chýba vyžadovaný atribút '%s' ." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Jeden alebo oba z atribútov '%s' alebo '%s' sú vyžadované." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Overenie podpisu zlyhalo" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Balík %s sa poÄas sÅ¥ahovania pravdepodobne poÅ¡kodil. Chcete sa znova pokúsiÅ¥ " "o jeho stiahnutie?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Zlyhalo poskytnutie Balíka %s. Chcete sa pokúsiÅ¥ o znovuzískanie?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Kontrola aplikovania delta rpm zlyhala." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Aplikovanie delta rpm zlyhalo." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Zásuvný modul služby nepodporuje zmenu atribútu." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Nemôžem poskytnúť súbor '%s' z repozitára '%s'" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Pre tento repozitár nie je definovaná žiadna URL adresa." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Súbor %1%\n" " z balíka\n" " %2%\n" " je v konflikte so súborom z balíka\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Súbor %1%\n" " z balíka\n" " %2%\n" " je v konflikte so súborom inÅ¡talovaným z\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Súbor %1%\n" " inÅ¡talovaný z\n" " %2%\n" " je v konflikte so súborom z balíka\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Súbor %1%\n" " inÅ¡talovaný z\n" " %2%\n" " je v konflikte so súborom inÅ¡talovaným z\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Súbor %1%\n" " z balíka\n" " %2%\n" " je v konflikte so súborom\n" " %3%\n" " z balíka\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Súbor %1%\n" " z balíka\n" " %2%\n" " je v konflikte so súborom\n" " %3%\n" " inÅ¡talovaným z\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Súbor %1%\n" " inÅ¡talovaný z\n" " %2%\n" " je v konflikte so súborom\n" " %3%\n" " z balíka\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Súbor %1%\n" " inÅ¡talovaný z\n" " %2%\n" " je v konflikte so súborom\n" " %3%\n" " inÅ¡talovaným z\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Nepodarilo sa vytvoriÅ¥ sat-pole." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "poruÅ¡iÅ¥ %s ignorovaním niektorých závislostí" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "vÅ¡eobecne ignorovaÅ¥ niektoré závislosti" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s nepatrí do repozitára distupgrade" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s má podriadenú architektúru" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "Problém s nainÅ¡talovaným balíkom %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "protichodné požiadavky" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "problém so závislosÅ¥ami" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "niÄ neposkytuje požadovaný %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Máte zapnuté vÅ¡etky požadované repozitáre?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "balík %s neexistuje" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "nepodporovaná požiadavka" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s je poskytovaný systémom a nemôže byÅ¥ vymazaný" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s nie je inÅ¡talovateľný" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "niÄ neposkytuje %s, ktorý je vyžadovaný balíkom %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Nie je možné nainÅ¡talovaÅ¥ oboje %s a %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s je v konflikte s %s poskytovaným %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s zastarané %s poskytované %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "nainÅ¡talované %s zastarané %s poskytované %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "RieÅ¡enie %s je v konflikte s %s, ktorý je poskytnutý sám sebou" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s vyžaduje %s, ale táto požiadavka nemôže byÅ¥ splnená" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "zmazaný poskytovatelia: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "neinÅ¡talovateľní poskytovatelia: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "neinÅ¡talovateľní poskytovatelia: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "odstrániÅ¥ zámok pre umožnenie odstránenia %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "neinÅ¡taluj %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "ponechaÅ¥ %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "odstrániÅ¥ zámok pre umožnenie inÅ¡talácie %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Tento požiadavka poruší váš systém!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorovaÅ¥ varovanie o poruÅ¡ení systému" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "nepýtaÅ¥ sa Äi inÅ¡talovaÅ¥ rieÅ¡enie, ktoré poskytuje %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "nepýtaj sa Äi zmazaÅ¥ vÅ¡etky rieÅ¡enia poskytujúce %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "neinÅ¡talovaÅ¥ najnovÅ¡iu verziu %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "ponechaÅ¥ %s napriek podriadenej architektúre" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "nainÅ¡talovaÅ¥ %s napriek podriadenú architektúru" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "ponechaÅ¥ zastarané %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "inÅ¡talovaÅ¥ %s z vylúÄeného repozitára" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "znížiÅ¥ verziu z %s na %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "zmena architektúry z %s na %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "inÅ¡talovaÅ¥ %s (so zmenou dodávateľa)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "%s nahradiÅ¥ %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "odinÅ¡talovanie %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Vykonávanie %%posttrans skriptu '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Vykonávanie %p osttrans skriptov" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " spustený" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " spustenie zlyhalo" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s už spustený ako %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " spustenie odložené kvôli preruÅ¡eniu programu" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Chyba zasielania oznámenia o aktualizaÄnej správe." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nová správa aktualizácie" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "InÅ¡talácia bola podľa príkazu zruÅ¡ená." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "PrepáÄte, ale táto verzia libzypp bola zostavená bez podpory HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext nie je pripojený" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "Jednotka HalDrive nie je inicializovaná" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "Jednotka HalVolume nie je inicializovaná" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Nie je možné vytvoriÅ¥ spojenie pomocou dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Nie je možné vytvoriÅ¥ libhal context" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Nie je možné nastaviÅ¥ spojenie s dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Nie je možné inicializovaÅ¥ HAL kontext -- je spustený hald?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Nie je CDROM mechanika" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM zlyhalo: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Nepodarilo sa importovaÅ¥ verejný kÄ¾ÃºÄ %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Nepodarilo zmazaÅ¥ verejný kÄ¾ÃºÄ %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Balík nie je podpísaný!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Zmenené konfiguraÄné súbory pre '%s':" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "Balík rpm uložil %s ako %s, ale nebolo možné urÄiÅ¥ rozdiel" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Balík rpm uložil %s ako %s.\n" "Tu je prvých 25 riadkov rozdielov:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "Balík rpm vytvoril %s as %s, ale nebolo možné urÄiÅ¥ rozdiel" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "Balík rpm vytvoril %s as %s.\n" "Tu je prvých 25 riadkov rozdielov:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "ÄŽalší výstup z rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "Bola vytvorená záloha %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Podpis je v poriadku" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Neznámy typ podpisu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Podpis neoveruje" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Podpis je v poriadku, ale kÄ¾ÃºÄ nie je dôveryhodný" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Verejný kÄ¾ÃºÄ podpisov nie je k dispozícii" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Súbor neexistuje alebo podpis nie je možné overiÅ¥" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Súbor je nepodpísaný" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Nemôžem inicializovaÅ¥ mutex atribúty" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Nemôžem nastaviÅ¥ rekurzívny mutex" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Nemôžem inicializovaÅ¥ rekurzívny mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Nepodarilo sa získaÅ¥ mutex zámok" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Nemôžem uvoľniÅ¥ mutex zámok" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Zadaná URL schéma nepovoľuje %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "%s obsahuje neplatnú položku '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "%s obsahuje neplatnú položku" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Query string nie je pre túto URL povolený" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Schéma URL je povinná" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Neplatný názov URL schémy: '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Daná URL schéma nepovoľuje meno používateľa" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Daná URL schéma nepovoľuje heslo" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Daná URL schéma vyžaduje názov hostiteľského poÄítaÄa (host component)" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" "Daná URL schéma nepovoľuje názov hostiteľského poÄítaÄa (host component)" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Neplatný názov poÄítaÄa '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Daná URL schéma nepovoľuje port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Neplatný port '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Daná URL schéma vyžaduje zadanú cestu" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relatívna cesta nie je povolená v prípade, že je zadaná autorita" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Zakódovaný reÅ¥azec obsahuje NUL bajt" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Neplatný oddeľovací znak pre pole parametrov" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Neplatný oddeľovací znak pre mapu parametrov" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Neplatný oddeľovací znak pre spájanie poľa parametrov" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Nepodarilo sa importovaÅ¥ verejný kÄ¾ÃºÄ zo súboru %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Nepodarilo zmazaÅ¥ verejný kÄ¾ÃºÄ %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Nie je možné nájsÅ¥ dostupné loop zariadenie na pripojenie súboru obrazu z " #~ "'%s'" libzypp-17.7.0/po/sl.po000066400000000000000000003075341334444677500147300ustar00rootroot00000000000000# Slovenian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2001 SuSE GmbH. # Janez Krek , 2001. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2001-10-18 11:02+0200\n" "Last-Translator: Janez Krek \n" "Language-Team: Slovenian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 #, fuzzy msgid "Hal Exception" msgstr "Å ifriranje" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "Ko&da" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Združeni arabski emirati" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigva in Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Angvila" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanija" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenija" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nizozemski Antili" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "AmeriÅ¡ka Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Avstrija" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Avstralija" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Aland Islands" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbajdžan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosna in Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "BangladeÅ¡" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgija" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bolgarija" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrein" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunej" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivija" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazilija" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahami" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Butan" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetov otok" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botsvana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belorusija" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosovi otoki" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "CentralnoafriÅ¡ka republika" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å vica" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "SlonokoÅ¡Äena obala" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cookovi otoki" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ÄŒile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kitajska" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbija" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kostarika" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Zelenortski otoki" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "BožiÄni otok" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Ciper" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ÄŒeÅ¡ka republika" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "NemÄija" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Dschibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danska" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominika" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanska republika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžirija" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonija" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipt" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Zahodna Sahara" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritreja" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Å panija" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopija" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finska" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidji" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandski otoki" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federalne države Mikronezija" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Farerski otoki" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francija" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitan France" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Velika Britanija" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gruzija" # Shouldn't this be French Guyane? # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Francoska Gvineja" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "NemÄija" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grenlandija" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambija" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Gvineja" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatorialna Gvineja" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "GrÄija" # GS #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Južna Georgia in Južni Sandwichevi otoki" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Gvatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Gvineja Bissau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Gvajana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heardov otok in McDonaldov otok" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "HrvaÅ¡ka" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Madžarska" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezija" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irska" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indija" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Britansko ozemlje v Indijskem oceanu" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Islandija" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italija" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanija" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonska" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenija" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgizstan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodža" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komori" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts in Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Severna Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Južna Koreja" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvajt" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Kajmanski otoki" # Shouldn't this be "Kazakhstan"? # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazahstan" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Lao, ljudska demokratiÄna republika" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Sv. Lucija" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberija" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litva" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvija" # LY #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libija" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavija" # CG #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Kongo" # SM #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshallovi otoki" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonija" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Mjanmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolija" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Severni Marianski otoki" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mavretanija" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # Shouldn't this be "Mauritius"? # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mavricij" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Malta" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malavi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mehika" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malezija" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibija" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nova Kaledonija" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "NorfolÅ¡ki otok" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigerija" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragva" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nizozemska" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "NorveÅ¡ka" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nova Zelandija" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Francoska Polinezija" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nova Gvineja" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipini" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poljska" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Sveti Pierre in Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Portoriko" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestinskoo ozemlje " #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalska" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragvaj" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romunija" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "SrbÅ¡Äina" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Ruska federacija" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudova Arabija" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomonovi otoki" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "SejÅ¡eli" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å vedska" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sveta Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenija" # SJ #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard in Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "SlovaÅ¡ka" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalija" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome in Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Salvador" # SY #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Sirija" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Svazi" # Perhaps "Turks and Caicos Islands"? # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "otoÄji Turks in Caicos" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ÄŒad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Francoska južna ozemlja" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tajska" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistan" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunizija" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Vzhodni Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "TurÄija" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad in Tabago" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tajska" # TZ #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzanija" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajina" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "manjÅ¡i otoki Združenih držav Amerike" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Združene države" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Urugvaj" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikanska država (Sveti sedež)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Sv. Vincent in Grenadini" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britanski DeviÅ¡ki otoki" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "AmeriÅ¡ki DeviÅ¡ki otoki" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # This should be Wallis, not Wallace # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "otoÄji Wallis in Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Južna Afrika" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambija" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabve" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Priskrbi" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Zahteva" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Konflikti" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "ZbriÅ¡i %1" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Ukaz, ki naj se izvede ob povezovanju" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Napaka pri nalaganju modula \"%s\"." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Napaka pri nalaganju modula \"%s\"." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "KScreensaver-ja ni možno najti." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abkhazijski" #. language code: ace #: zypp/LanguageCode.cc:165 #, fuzzy msgid "Achinese" msgstr "KitajÅ¡Äina" #. language code: ach #: zypp/LanguageCode.cc:167 #, fuzzy msgid "Acoli" msgstr "Tihi naÄin" #. language code: ada #: zypp/LanguageCode.cc:169 #, fuzzy msgid "Adangme" msgstr "ObmoÄje" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "AfrikanÅ¡Äina" #. language code: ain #: zypp/LanguageCode.cc:179 #, fuzzy msgid "Ainu" msgstr "Linux" #. language code: aka ak #: zypp/LanguageCode.cc:181 #, fuzzy msgid "Akan" msgstr "Abkhazijski" #. language code: akk #: zypp/LanguageCode.cc:183 #, fuzzy msgid "Akkadian" msgstr "Abkhazijski" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "AlbanÅ¡Äina" #. language code: ale #: zypp/LanguageCode.cc:189 #, fuzzy msgid "Aleut" msgstr "Aleutian" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "Prilagoditev jezika..." #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "Južna Afrika" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "Nastavi jezik" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabski" #. language code: arc #: zypp/LanguageCode.cc:203 #, fuzzy msgid "Aramaic" msgstr "Arabski" #. language code: arg an #: zypp/LanguageCode.cc:205 #, fuzzy msgid "Aragonese" msgstr "FaerÅ¡Äina" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armenski" #. language code: arn #: zypp/LanguageCode.cc:211 #, fuzzy msgid "Araucanian" msgstr "AlbanÅ¡Äina" #. language code: arp #: zypp/LanguageCode.cc:213 #, fuzzy msgid "Arapaho" msgstr "Grafi" #. language code: art #: zypp/LanguageCode.cc:215 #, fuzzy msgid "Artificial (Other)" msgstr "CA certifikat" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamski" #. language code: ast #: zypp/LanguageCode.cc:221 #, fuzzy msgid "Asturian" msgstr "Avstrija" #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "Nastavi jezik" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "Prikaži vse razpoložljive jezike." #. language code: ava av #: zypp/LanguageCode.cc:227 #, fuzzy msgid "Avaric" msgstr "Amharic" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "AzerbaižanÅ¡Äina" #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "Kanada" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "Nastavi jezik" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 #, fuzzy msgid "Bambara" msgstr "Samba" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "Osnova" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "BaskovÅ¡Äina" #. language code: bas #: zypp/LanguageCode.cc:253 #, fuzzy msgid "Basa" msgstr "Osnova" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "BelorusÅ¡Äina" #. language code: bem #: zypp/LanguageCode.cc:261 #, fuzzy msgid "Bemba" msgstr "Bermuda" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 #, fuzzy msgid "Bini" msgstr "Hindi" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" # BJ #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosanski" # BR #. language code: bra #: zypp/LanguageCode.cc:283 #, fuzzy msgid "Braj" msgstr "Brazilija" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "BretonÅ¡Äina" #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "Indonezija" #. language code: bua #: zypp/LanguageCode.cc:289 #, fuzzy msgid "Buriat" msgstr "Bolgarija" #. language code: bug #: zypp/LanguageCode.cc:291 #, fuzzy msgid "Buginese" msgstr "KitajÅ¡Äina" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "BulgarÅ¡Äina" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 #, fuzzy msgid "Burmese" msgstr "Vodilo" #. language code: byn #: zypp/LanguageCode.cc:299 #, fuzzy msgid "Blin" msgstr "Belgijska" #. language code: cad #: zypp/LanguageCode.cc:301 #, fuzzy msgid "Caddo" msgstr "Karte" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 #, fuzzy msgid "Carib" msgstr "Karte" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "KatalanÅ¡Äina" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 #, fuzzy msgid "Cebuano" msgstr "Libanon" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Komorski" #. language code: chb #: zypp/LanguageCode.cc:317 #, fuzzy msgid "Chibcha" msgstr "Kitajska" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ÄŒeÅ¡ki" #. language code: chg #: zypp/LanguageCode.cc:321 #, fuzzy msgid "Chagatai" msgstr "Shanghai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "KitajÅ¡Äina" #. language code: chk #: zypp/LanguageCode.cc:327 #, fuzzy msgid "Chuukese" msgstr "KitajÅ¡Äina" # ML #. language code: chm #: zypp/LanguageCode.cc:329 #, fuzzy msgid "Mari" msgstr "Mali" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 #, fuzzy msgid "Choctaw" msgstr "Chroot" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Cerkveno Slovanski" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 #, fuzzy msgid "Cheyenne" msgstr "Kanal" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "Jeziki" #. language code: cop #: zypp/LanguageCode.cc:347 #, fuzzy msgid "Coptic" msgstr "RaÄunanje" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "KornÅ¡Äina" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "KorziÅ¡ki" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" # &A is taken #. language code: cre cr #: zypp/LanguageCode.cc:359 #, fuzzy msgid "Cree" msgstr "Kreiraj" #. language code: crh #: zypp/LanguageCode.cc:361 #, fuzzy msgid "Crimean Tatar" msgstr "ÄŒas in datum" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒeÅ¡ka" #. language code: dak #: zypp/LanguageCode.cc:373 #, fuzzy msgid "Dakota" msgstr "Dhaka" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danska" #. language code: dar #: zypp/LanguageCode.cc:377 #, fuzzy msgid "Dargwa" msgstr "Darwin" #. language code: day #: zypp/LanguageCode.cc:379 #, fuzzy msgid "Dayak" msgstr "Dan:" #. language code: del #: zypp/LanguageCode.cc:381 #, fuzzy msgid "Delaware" msgstr "Strojna oprema" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 #, fuzzy msgid "Dinka" msgstr "Trdi disk" #. language code: div dv #: zypp/LanguageCode.cc:389 #, fuzzy msgid "Divehi" msgstr "Gonilnik" #. language code: doi #: zypp/LanguageCode.cc:391 #, fuzzy msgid "Dogri" msgstr "Prijava" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "VarÄevanje z energijo" #. language code: dua #: zypp/LanguageCode.cc:397 #, fuzzy msgid "Duala" msgstr "Dakar" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nizozemska" #. language code: dyu #: zypp/LanguageCode.cc:405 #, fuzzy msgid "Dyula" msgstr "Dubai" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "AngleÅ¡Äina" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonska" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 #, fuzzy msgid "Ewondo" msgstr "Konec" #. language code: fan #: zypp/LanguageCode.cc:429 #, fuzzy msgid "Fang" msgstr "ObmoÄje" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "FaerÅ¡Äina" #. language code: fat #: zypp/LanguageCode.cc:433 #, fuzzy msgid "Fanti" msgstr "Atlantik" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijian" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "Filipini" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finska" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 #, fuzzy msgid "Fon" msgstr "Pisave" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francoska" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frizijski" #. language code: ful ff #: zypp/LanguageCode.cc:455 #, fuzzy msgid "Fulah" msgstr "Zastavice" #. language code: fur #: zypp/LanguageCode.cc:457 #, fuzzy msgid "Friulian" msgstr "Frizijski" #. language code: gaa #: zypp/LanguageCode.cc:459 #, fuzzy msgid "Ga" msgstr "Gaza" # GA #. language code: gay #: zypp/LanguageCode.cc:461 #, fuzzy msgid "Gayo" msgstr "Gabon" #. language code: gba #: zypp/LanguageCode.cc:463 #, fuzzy msgid "Gbaya" msgstr "Gaza" #. language code: gem #: zypp/LanguageCode.cc:465 #, fuzzy msgid "Germanic (Other)" msgstr "NemÅ¡ka (mrtva tipka)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Gruzijski" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "NemÅ¡ka" #. language code: gez #: zypp/LanguageCode.cc:475 #, fuzzy msgid "Geez" msgstr "GrÅ¡ka" #. language code: gil #: zypp/LanguageCode.cc:477 #, fuzzy msgid "Gilbertese" msgstr "Vietnamski" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 #, fuzzy msgid "Gaelic" msgstr "Mali" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "IrÅ¡Äina" #. language code: glg gl #: zypp/LanguageCode.cc:483 #, fuzzy msgid "Galician" msgstr "Vatikan" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 #, fuzzy msgid "Gondi" msgstr "Zvok" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 #, fuzzy msgid "Grebo" msgstr "Skupina" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 #, fuzzy msgid "Gwich'in" msgstr "Michigan" #. language code: hai #: zypp/LanguageCode.cc:511 #, fuzzy msgid "Haida" msgstr "Strojna oprema" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "Haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 #, fuzzy msgid "Hawaiian" msgstr "Havaji" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebrejski" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" # HT #. language code: hit #: zypp/LanguageCode.cc:529 #, fuzzy msgid "Hittite" msgstr "Haiti" #. language code: hmn #: zypp/LanguageCode.cc:531 #, fuzzy msgid "Hmong" msgstr "HongKong" # HT #. language code: hmo ho #: zypp/LanguageCode.cc:533 #, fuzzy msgid "Hiri Motu" msgstr "Hiri" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "SrbÅ¡Äina" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Madžarska" #. language code: hup #: zypp/LanguageCode.cc:539 #, fuzzy msgid "Hupa" msgstr "Hausa" # IR #. language code: iba #: zypp/LanguageCode.cc:541 #, fuzzy msgid "Iban" msgstr "Iran" #. language code: ibo ig #: zypp/LanguageCode.cc:543 #, fuzzy msgid "Igbo" msgstr "Ne upoÅ¡tevaj" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Islandska" #. language code: ido io #: zypp/LanguageCode.cc:549 #, fuzzy msgid "Ido" msgstr "ld" #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "Litva" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "MedzejiÄni" #. language code: ilo #: zypp/LanguageCode.cc:559 #, fuzzy msgid "Iloko" msgstr "Tokijo" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "IndonezijÅ¡Äina" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 #, fuzzy msgid "Ingush" msgstr "AngleÅ¡Äina" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "Prilagoditev jezika..." #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italijanska" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanski" #. language code: jbo #: zypp/LanguageCode.cc:581 #, fuzzy msgid "Lojban" msgstr "Libanon" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonska" #. language code: jpr #: zypp/LanguageCode.cc:585 #, fuzzy msgid "Judeo-Persian" msgstr "Perzijski" #. language code: jrb #: zypp/LanguageCode.cc:587 #, fuzzy msgid "Judeo-Arabic" msgstr "Arabski" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 #, fuzzy msgid "Kabyle" msgstr "OmogoÄeno" #. language code: kac #: zypp/LanguageCode.cc:593 #, fuzzy msgid "Kachin" msgstr "IÅ¡Äi v" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 #, fuzzy msgid "Kamba" msgstr "Samba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kanada" #. language code: kar #: zypp/LanguageCode.cc:601 #, fuzzy msgid "Karen" msgstr "KorejÅ¡Äina" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KaÅ¡mir" #. language code: kau kr #: zypp/LanguageCode.cc:605 #, fuzzy msgid "Kanuri" msgstr "Kurdsko" #. language code: kaw #: zypp/LanguageCode.cc:607 #, fuzzy msgid "Kawi" msgstr "Darwin" # Shouldn't this be "Kazakhstan"? # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "KazaÅ¡ki" #. language code: kbd #: zypp/LanguageCode.cc:611 #, fuzzy msgid "Kabardian" msgstr "Kanada" #. language code: kha #: zypp/LanguageCode.cc:613 #, fuzzy msgid "Khasi" msgstr "Tajski" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 #, fuzzy msgid "Khotanese" msgstr "KitajÅ¡Äina" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 #, fuzzy msgid "Kimbundu" msgstr "Vrsta" #. language code: kok #: zypp/LanguageCode.cc:629 #, fuzzy msgid "Konkani" msgstr "KorejÅ¡Äina" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 #, fuzzy msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "KorejÅ¡Äina" #. language code: kos #: zypp/LanguageCode.cc:637 #, fuzzy msgid "Kosraean" msgstr "KorejÅ¡Äina" #. language code: kpe #: zypp/LanguageCode.cc:639 #, fuzzy msgid "Kpelle" msgstr "ÄŒrkovalniki" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 #, fuzzy msgid "Kurukh" msgstr "TurÅ¡ka" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 #, fuzzy msgid "Kumyk" msgstr "Testni modul" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdsko" # KE #. language code: kut #: zypp/LanguageCode.cc:653 #, fuzzy msgid "Kutenai" msgstr "Kenija" #. language code: lad #: zypp/LanguageCode.cc:655 #, fuzzy msgid "Ladino" msgstr "Radioamaterstvo" #. language code: lah #: zypp/LanguageCode.cc:657 #, fuzzy msgid "Lahnda" msgstr "Pokrajina" #. language code: lam #: zypp/LanguageCode.cc:659 #, fuzzy msgid "Lamba" msgstr "Samba" # LA #. language code: lao lo #: zypp/LanguageCode.cc:661 #, fuzzy msgid "Lao" msgstr "Laos" #. language code: lat la #: zypp/LanguageCode.cc:663 #, fuzzy msgid "Latin" msgstr "LatvijÅ¡Äina" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "LatvijÅ¡Äina" #. language code: lez #: zypp/LanguageCode.cc:667 #, fuzzy msgid "Lezghian" msgstr "Belgijska" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "Luksemburg" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 #, fuzzy msgid "Lingala" msgstr "Angola" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litvanska" # CG #. language code: lol #: zypp/LanguageCode.cc:675 #, fuzzy msgid "Mongo" msgstr "Kongo" #. language code: loz #: zypp/LanguageCode.cc:677 #, fuzzy msgid "Lozi" msgstr "Prijava" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "Luksemburg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "Gana" #. language code: lui #: zypp/LanguageCode.cc:687 #, fuzzy msgid "Luiseno" msgstr "PosluÅ¡aj na" #. language code: lun #: zypp/LanguageCode.cc:689 #, fuzzy msgid "Lunda" msgstr "Nedelja" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "Tajski" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "MakedonÅ¡Äina" #. language code: mad #: zypp/LanguageCode.cc:699 #, fuzzy msgid "Madurese" msgstr "FaerÅ¡Äina" # MW #. language code: mag #: zypp/LanguageCode.cc:701 #, fuzzy msgid "Magahi" msgstr "Malavi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 #, fuzzy msgid "Marshallese" msgstr "Marshallovi otoki" #. language code: mai #: zypp/LanguageCode.cc:705 #, fuzzy msgid "Maithili" msgstr "Matematika" # MG #. language code: mak #: zypp/LanguageCode.cc:707 #, fuzzy msgid "Makasar" msgstr "Madagaskar" #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "Malezija" #. language code: man #: zypp/LanguageCode.cc:711 #, fuzzy msgid "Mandingo" msgstr "Opozorilo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 #, fuzzy msgid "Maori" msgstr "Glavni" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 #, fuzzy msgid "Marathi" msgstr "Matematika" # MW #. language code: mas #: zypp/LanguageCode.cc:721 #, fuzzy msgid "Masai" msgstr "Malavi" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "Malta" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "Mjanmar" #. language code: men #: zypp/LanguageCode.cc:731 #, fuzzy msgid "Mende" msgstr "NaÄin" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "Razne nastavitve" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "Managua" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 #, fuzzy msgid "Maltese" msgstr "Malta" #. language code: mnc #: zypp/LanguageCode.cc:747 #, fuzzy msgid "Manchu" msgstr "RoÄno" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "Jeziki" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "Moldavija" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 #, fuzzy msgid "Mongolian" msgstr "Mongolija" #. language code: mos #: zypp/LanguageCode.cc:759 #, fuzzy msgid "Mossi" msgstr "Morse" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "&VeÄ kljuÄev" #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "Se&kundarni jeziki" #. language code: mus #: zypp/LanguageCode.cc:765 #, fuzzy msgid "Creek" msgstr "GrÅ¡ka" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 #, fuzzy msgid "Mirandese" msgstr "Wisconsin" #. language code: mwr #: zypp/LanguageCode.cc:769 #, fuzzy msgid "Marwari" msgstr "Strojna oprema" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "Jeziki" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 #, fuzzy msgid "Nahuatl" msgstr "RoÄno" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "Severna Amerika" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 #, fuzzy msgid "Ndonga" msgstr "Tonga" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "NemÅ¡ka" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 #, fuzzy msgid "Nepali" msgstr "Nepal" # NP #. language code: new #: zypp/LanguageCode.cc:795 #, fuzzy msgid "Nepal Bhasa" msgstr "Nepal" #. language code: nia #: zypp/LanguageCode.cc:797 #, fuzzy msgid "Nias" msgstr "Vzdevek" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" # NU #. language code: niu #: zypp/LanguageCode.cc:801 #, fuzzy msgid "Niuean" msgstr "Niue" #. language code: nno nn #: zypp/LanguageCode.cc:803 #, fuzzy msgid "Norwegian Nynorsk" msgstr "NorveÅ¡ka" #. language code: nob nb #: zypp/LanguageCode.cc:805 #, fuzzy msgid "Norwegian Bokmal" msgstr "NorveÅ¡ka" #. language code: nog #: zypp/LanguageCode.cc:807 #, fuzzy msgid "Nogai" msgstr "Prijava" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "NorveÅ¡ka" #. language code: nso #: zypp/LanguageCode.cc:813 #, fuzzy msgid "Northern Sotho" msgstr "Severna Irska" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "Nastavi jezik" #. language code: nwc #: zypp/LanguageCode.cc:817 #, fuzzy msgid "Classical Newari" msgstr "Ime razreda" #. language code: nya ny #: zypp/LanguageCode.cc:819 #, fuzzy msgid "Chichewa" msgstr "ÄŒeÅ¡ki" #. language code: nym #: zypp/LanguageCode.cc:821 #, fuzzy msgid "Nyamwezi" msgstr "Ime" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 #, fuzzy msgid "Nyoro" msgstr "Sever" #. language code: nzi #: zypp/LanguageCode.cc:827 #, fuzzy msgid "Nzima" msgstr "Lima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" # SY #. language code: ori or #: zypp/LanguageCode.cc:833 #, fuzzy msgid "Oriya" msgstr "Sirija" #. language code: orm om #: zypp/LanguageCode.cc:835 #, fuzzy msgid "Oromo" msgstr "Korenski uporabnik" #. language code: osa #: zypp/LanguageCode.cc:837 #, fuzzy msgid "Osage" msgstr "shrani" #. language code: oss os #: zypp/LanguageCode.cc:839 #, fuzzy msgid "Ossetian" msgstr "Ruska" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "Nastavi jezik" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 #, fuzzy msgid "Pangasinan" msgstr "Madžarska" #. language code: pal #: zypp/LanguageCode.cc:849 #, fuzzy msgid "Pahlavi" msgstr "Palau" #. language code: pam #: zypp/LanguageCode.cc:851 #, fuzzy msgid "Pampanga" msgstr "Paragvaj" #. language code: pan pa #: zypp/LanguageCode.cc:853 #, fuzzy msgid "Panjabi" msgstr "Punjabi" #. language code: pap #: zypp/LanguageCode.cc:855 #, fuzzy msgid "Papiamento" msgstr "Parameter" #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "Palau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Perzijski" #. language code: phi #: zypp/LanguageCode.cc:865 #, fuzzy msgid "Philippine (Other)" msgstr "Filipini" #. language code: phn #: zypp/LanguageCode.cc:867 #, fuzzy msgid "Phoenician" msgstr "SlovenÅ¡Äina" # ML #. language code: pli pi #: zypp/LanguageCode.cc:869 #, fuzzy msgid "Pali" msgstr "Mali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poljska" #. language code: pon #: zypp/LanguageCode.cc:873 #, fuzzy msgid "Pohnpeian" msgstr "IndonezijÅ¡Äina" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugalska" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "Primarni &Jezik" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 #, fuzzy msgid "Pushto" msgstr "Po meri" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" # Shouldn't this be "Kazakhstan"? # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 #, fuzzy msgid "Rajasthani" msgstr "Kazahstan" #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "Japonska" #. language code: rar #: zypp/LanguageCode.cc:889 #, fuzzy msgid "Rarotongan" msgstr "Preberi usmerjanje" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "Romunija" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "RomunÅ¡Äina" #. language code: run rn #: zypp/LanguageCode.cc:901 #, fuzzy msgid "Rundi" msgstr "Deluje" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ruska" #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "Pokrajina" #. language code: sag sg #: zypp/LanguageCode.cc:907 #, fuzzy msgid "Sango" msgstr "Saigon" #. language code: sah #: zypp/LanguageCode.cc:909 #, fuzzy msgid "Yakut" msgstr "Breakout" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Nastavi jezik" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 #, fuzzy msgid "Sanskrit" msgstr "ZaÄetek" #. language code: sas #: zypp/LanguageCode.cc:919 #, fuzzy msgid "Sasak" msgstr "Samba" #. language code: sat #: zypp/LanguageCode.cc:921 #, fuzzy msgid "Santali" msgstr "Scan postaja" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "SrbÅ¡Äina" #. language code: scn #: zypp/LanguageCode.cc:927 #, fuzzy msgid "Sicilian" msgstr "Michigan" #. language code: sco #: zypp/LanguageCode.cc:929 #, fuzzy msgid "Scots" msgstr "Sekunde" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "HrvaÅ¡ka" #. language code: sel #: zypp/LanguageCode.cc:935 #, fuzzy msgid "Selkup" msgstr "PreskoÄi" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "Jeziki" #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "Shanghai" #. language code: sid #: zypp/LanguageCode.cc:945 #, fuzzy msgid "Sidamo" msgstr "Samoa" #. language code: sin si #: zypp/LanguageCode.cc:947 #, fuzzy msgid "Sinhala" msgstr "Zaporedno (serial)" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Nastavi jezik" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "SlovaÅ¡ka" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "SlovenÅ¡Äina" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 #, fuzzy msgid "Northern Sami" msgstr "Severna Irska" #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Jeziki" #. language code: smj #: zypp/LanguageCode.cc:967 #, fuzzy msgid "Lule Sami" msgstr "Ime modula" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 #, fuzzy msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 #, fuzzy msgid "Shona" msgstr "Slovenija" #. language code: snd sd #: zypp/LanguageCode.cc:977 #, fuzzy msgid "Sindhi" msgstr "Hindi" #. language code: snk #: zypp/LanguageCode.cc:979 #, fuzzy msgid "Soninke" msgstr "Nadaljuj" #. language code: sog #: zypp/LanguageCode.cc:981 #, fuzzy msgid "Sogdian" msgstr "Prijava" # SO #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "Somalija" #. language code: son #: zypp/LanguageCode.cc:985 #, fuzzy msgid "Songhai" msgstr "Shanghai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Å panska" #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "Ukrajinska" #. language code: srr #: zypp/LanguageCode.cc:993 #, fuzzy msgid "Serer" msgstr "Strežnik" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 #, fuzzy msgid "Swati" msgstr "ZaÄetek" #. language code: suk #: zypp/LanguageCode.cc:999 #, fuzzy msgid "Sukuma" msgstr "Povzetek" #. language code: sun su #: zypp/LanguageCode.cc:1001 #, fuzzy msgid "Sundanese" msgstr "Sudan" #. language code: sus #: zypp/LanguageCode.cc:1003 #, fuzzy msgid "Susu" msgstr "SMVodilo(SMBus)" #. language code: sux #: zypp/LanguageCode.cc:1005 #, fuzzy msgid "Sumerian" msgstr "SrbÅ¡Äina" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 #, fuzzy msgid "Swahili" msgstr "Svazi" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å vedska" # SY #. language code: syr #: zypp/LanguageCode.cc:1011 #, fuzzy msgid "Syriac" msgstr "Sirija" #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "Tahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 #, fuzzy msgid "Tai (Other)" msgstr "Ostalo" #. language code: tam ta #: zypp/LanguageCode.cc:1017 #, fuzzy msgid "Tamil" msgstr "Družina" #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "Katar" #. language code: tel te #: zypp/LanguageCode.cc:1021 #, fuzzy msgid "Telugu" msgstr "Belgija" #. language code: tem #: zypp/LanguageCode.cc:1023 #, fuzzy msgid "Timne" msgstr "ÄŒas" #. language code: ter #: zypp/LanguageCode.cc:1025 #, fuzzy msgid "Tereno" msgstr "Herero" #. language code: tet #: zypp/LanguageCode.cc:1027 #, fuzzy msgid "Tetum" msgstr "Pentium" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "Pogovori" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Tajski" # TW #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetanski" #. language code: tig #: zypp/LanguageCode.cc:1039 #, fuzzy msgid "Tigre" msgstr "prezri" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 #, fuzzy msgid "Tigrinya" msgstr "Nigerija" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 #, fuzzy msgid "Klingon" msgstr "Saigon" #. language code: tli #: zypp/LanguageCode.cc:1049 #, fuzzy msgid "Tlingit" msgstr "Dopisni seznami" #. language code: tmh #: zypp/LanguageCode.cc:1051 #, fuzzy msgid "Tamashek" msgstr "Tashkent" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 #, fuzzy msgid "Tonga (Tonga Islands)" msgstr "Solomonovi otoki" #. language code: tpi #: zypp/LanguageCode.cc:1057 #, fuzzy msgid "Tok Pisin" msgstr "Token Ring" #. language code: tsi #: zypp/LanguageCode.cc:1059 #, fuzzy msgid "Tsimshian" msgstr "Ruska" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "Botsvana" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 #, fuzzy msgid "Tsonga" msgstr "Tonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "TurÄija" #. language code: tum #: zypp/LanguageCode.cc:1067 #, fuzzy msgid "Tumbuka" msgstr "Timbuktu" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "Nastavi jezik" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "TurÅ¡ka" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 #, fuzzy msgid "Tuvinian" msgstr "Tunizija" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 #, fuzzy msgid "Ugaritic" msgstr "Haiti" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrajinska" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 #, fuzzy msgid "Undetermined" msgstr "MedzejiÄni" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 #, fuzzy msgid "Uzbek" msgstr "Uzbekistan" #. language code: vai #: zypp/LanguageCode.cc:1097 #, fuzzy msgid "Vai" msgstr "Vi" #. language code: ven ve #: zypp/LanguageCode.cc:1099 #, fuzzy msgid "Venda" msgstr "Proizvajalec" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamski" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 #, fuzzy msgid "Votic" msgstr "Vatikan" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Nastavi jezik" #. language code: wal #: zypp/LanguageCode.cc:1109 #, fuzzy msgid "Walamo" msgstr "Palm" #. language code: war #: zypp/LanguageCode.cc:1111 #, fuzzy msgid "Waray" msgstr "Sobota" #. language code: was #: zypp/LanguageCode.cc:1113 #, fuzzy msgid "Washo" msgstr "WelÅ¡ki" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "WelÅ¡ki" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "Prilagoditev jezika..." #. language code: wln wa #: zypp/LanguageCode.cc:1121 #, fuzzy msgid "Walloon" msgstr "vsi" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 #, fuzzy msgid "Kalmyk" msgstr "Pogovori" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 #, fuzzy msgid "Yapese" msgstr "Japonska" #. language code: yid yi #: zypp/LanguageCode.cc:1133 #, fuzzy msgid "Yiddish" msgstr "KonÄaj" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 #, fuzzy msgid "Yoruba" msgstr "Aruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "Nastavi jezik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 #, fuzzy msgid "Zenaga" msgstr "Grenada" #. language code: zha za #: zypp/LanguageCode.cc:1143 #, fuzzy msgid "Zhuang" msgstr "Spremeni" #. language code: znd #: zypp/LanguageCode.cc:1145 #, fuzzy msgid "Zande" msgstr "ObmoÄje" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 #, fuzzy msgid "Zuni" msgstr "Tunizija" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "Paketi za obnovitev" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Napaka pri nalaganju modula \"%s\"." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Datoteke ni mogoÄe odpreti za pisanje." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "NameÅ¡Äam na:" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "NeuspeÅ¡en dostop do media za posodobitev gonilnika." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Napaka pri branju z disketne enote." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Nepravilno ime naprave." #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "NameÅ¡Äam na:" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "neznano" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "Namesti" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "Preglejte zgodovino" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Napaka pri nalaganju modula \"%s\"." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Napaka pri nalaganju modula \"%s\"." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "NameÅ¡Äam na:" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "NameÅ¡Äam na:" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" # %s is either BOOTP or DHCP #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "Prilagoditev %s ni bila uspeÅ¡na." #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ima nereÅ¡ene zahteve..." #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "ima nereÅ¡ene zahteve..." #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "Zagonska arhitektura" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "NezadoÅ¡Äene odvisnosti:" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Paketi za obnovitev" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "Ta paket ni nameÅ¡Äen in ne bo nameÅ¡Äen." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "Namestitev ni uspela." #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "NameÅ¡Äam na:" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%1 je v sporu s/z %2" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%1 je v sporu s/z %2" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%1 je v sporu s/z %2" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "Samodejna namestitev" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "NameÅ¡Äam na:" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "NameÅ¡Äam na:" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "%1 je v sporu s/z %2" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "ZbriÅ¡i %1" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Namestitev" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" # %s is either BOOTP or DHCP #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "Prilagoditev %s ni bila uspeÅ¡na." #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "ni povezave" #: zypp/target/hal/HalContext.cc:127 #, fuzzy msgid "HalDrive not initialized" msgstr "Ponovno pripravi" #: zypp/target/hal/HalContext.cc:137 #, fuzzy msgid "HalVolume not initialized" msgstr "Ponovno pripravi" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "povazava kanal-kanal" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 #, fuzzy msgid "Not a CDROM drive" msgstr "Ni CD-ROM enot." #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 #, fuzzy msgid "Package is not signed!" msgstr "Paketi za obnovitev" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Shrani nastavivene datoteke" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Dodatne nastavitve skupine" #: zypp/target/rpm/RpmDb.cc:2394 #, fuzzy, c-format, boost-format msgid "created backup %s" msgstr "Ne Kreiraj Varnostnih Kopij" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "KScreensaver-ja ni možno najti." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "KScreensaver-ja ni možno najti." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "KScreensaver-ja ni možno najti." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "NameÅ¡Äam na:" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Napaka pri nalaganju modula \"%s\"." #~ msgid "Serbia and Montenegro" #~ msgstr "Srbija in ÄŒrna gora" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Neznan monitor:" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "NezadoÅ¡Äene odvisnosti:" #, fuzzy #~ msgid "%s remove failed" #~ msgstr "rpm neuspeÅ¡en." #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "Nepravilno ime naprave." #, fuzzy #~ msgid "rpm output:" #~ msgstr "" #~ "\n" #~ "Izhod ukaza:" #, fuzzy #~ msgid "%s install failed" #~ msgstr "Namestitev ni uspela." #, fuzzy #~ msgid "%s installed ok" #~ msgstr "NameÅ¡Äena verzija" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "Ignore that %s is already set to install" #~ msgstr "Imenik %1 je že na seznamu." #, fuzzy #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "Ignore this conflict of %s" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "Ignore this requirement just here" #~ msgstr "ima nereÅ¡ene zahteve..." #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Namesti manjkajoÄe pakete" #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Namesti manjkajoÄe pakete" #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "install %s" #~ msgstr "Namesti %1" #, fuzzy #~ msgid "unlock %s" #~ msgstr "Ure" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Napaka pri branju odseka %u." #, fuzzy #~ msgid "Software management is already running." #~ msgstr "Storitev za PCMCIA kartice že deluje." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "Potrebno je namestiti %s " #, fuzzy #~ msgid "%s conflicts with other resolvables" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "Ta paket ni nameÅ¡Äen in ne bo nameÅ¡Äen." #, fuzzy #~ msgid "%s has missing dependencies" #~ msgstr "NezadoÅ¡Äene odvisnosti:" #, fuzzy #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "NezadoÅ¡Äene odvisnosti:" #, fuzzy #~ msgid "No need to install %s" #~ msgstr "potrebno je ponovno namestiti" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "NezadoÅ¡Äene odvisnosti:" #, fuzzy #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%1 je v sporu s/z %2" #, fuzzy #~ msgid ", Action: " #~ msgstr "Akcija" #~ msgid "patch" #~ msgstr "popravek" #, fuzzy #~ msgid "Establishing %s" #~ msgstr "NameÅ¡Äam na:" #, fuzzy #~ msgid "Installing %s" #~ msgstr "NameÅ¡Äam na:" #, fuzzy #~ msgid "Skipping %s: already installed" #~ msgstr "Preverjam že nameÅ¡Äene optiÄne bralnike" #, fuzzy #~ msgid " Error!" #~ msgstr "Napaka" #, fuzzy #~ msgid " Important!" #~ msgstr "Uvozi podatke" #, fuzzy #~ msgid "Ignore this requirement generally" #~ msgstr "ima nereÅ¡ene zahteve..." #, fuzzy #~ msgid "Reading selection from %s" #~ msgstr "Napaka pri branju odseka %u." #, fuzzy #~ msgid "Reading patch %s" #~ msgstr "Skrivanje popravkov" #, fuzzy #~ msgid "Reading translation: %s" #~ msgstr "Nalaganje nameÅ¡Äenega sistema" #, fuzzy #~ msgid "Downloading %s" #~ msgstr "Napaka pri nalaganju %1" #~ msgid "Ok" #~ msgstr "OK" #, fuzzy #~ msgid "The package file has incorrect MD5 sum" #~ msgstr "Paketi za odstranitev" #, fuzzy #~ msgid "The package has no MD5 sum" #~ msgstr "Paketi za odstranitev" #, fuzzy #~ msgid "The package archive has incorrect MD5 sum" #~ msgstr "Paketi za odstranitev" #~ msgid "Default" #~ msgstr "Privzeto" #, fuzzy #~ msgid "to be installed (soft)" #~ msgstr "bo nameÅ¡Äen kot:" #, fuzzy #~ msgid "to be uninstalled" #~ msgstr "potrebno je ponovno namestiti" libzypp-17.7.0/po/sr.po000066400000000000000000003205311334444677500147260ustar00rootroot00000000000000# Serbian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2004 SuSE Linux AG. # Rade Radenkovic , 2004 # Bojan Jovanovic , 2004 # msgid "" msgstr "" "Project-Id-Version: YaST2 (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2004-03-31 11:34+0200\n" "Last-Translator: Bojan Jovanovic \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" # TextEntry label for phone network Areacode (german Vorwahl) #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "Poz&ivni broj" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Ðндора" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Ujedinjeni arapski emirati" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "ÐвганиÑтан" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Ðнтигва и Барбуда" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Ðнгила" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanija" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Јерменија" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "ХоландÑки Ðнтили" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Ðнгола" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Ðнтарктик" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Ðмеричка Самоа" # Contry name #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austrija" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australija" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Ðруба" #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "ОландÑка оÑтрва" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Ðзербејџан" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "БоÑна и Херцеговина" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Amerika/Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Бангладеш" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgija" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Буркина ФаÑо" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bugarska" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Azija/Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Бурунди" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Бенин" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Султанат Брунеи" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivija" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Бразил" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Бахами" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Бутан" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Буве оÑтрво" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Bocvana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belorusija" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Белизе" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "ÐšÐ¾ÐºÐ¾Ñ (Килинг) оÑтрва" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Конго" #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "Централна Ðфричка Република" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Å vajcarska" #. :CHE:756: #: zypp/CountryCode.cc:200 #, fuzzy msgid "Cote D'Ivoire" msgstr "Обала Слоноваче" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Кукова оÑтрва" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ÄŒile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Камерун" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Narodi Republike Kine" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolumbija" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kostarika" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Куба" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "ЗеленортÑка оÑтрва" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Божићно оÑтрво" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Кипар" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ÄŒeÅ¡ka Republika" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "NemaÄka" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Afrika/Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danska" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Amerika/Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanska Republika" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Alžir" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonija" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egipt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Западна Сахара" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Еритреја" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Å panija" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Етиопија" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finska" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidži" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ФокландÑка оÑтрва (Малвини)" # official_name for FSM #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Федералне Државе Микронезија" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Farska ostrva" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Francuska" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Габон" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Velika Britanija" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Amerika/Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Jordan" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "ФранцуÑка Гвајана" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "NemaÄka" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Гана" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Evropa/Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Гамбија" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Гвинеа" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Amerika/Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Екваторијална Гвинеја" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "GrÄka" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Јужна Ðорџија и Јужна Сендвич оÑтрва" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Gvatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Гвинеа-БиÑао" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Гвајана" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Херд оÑтрво и Мекдоналд оÑтрва" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Hrvatska" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Хаити" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "MaÄ‘arska" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezija" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irska" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Izrael" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indija" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "БританÑка ИндијÑка ОкеанÑка Територија" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 #, fuzzy msgid "Iran" msgstr "Irak" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italija" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Globalno/Jamajka" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Кенија" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "КиргизÑтан" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Камбоџа" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Кирибати" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Комори" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Свети ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑ" #. :KNA:659: #: zypp/CountryCode.cc:277 #, fuzzy msgid "North Korea" msgstr "Evropa/Severna-Irska" #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "Južni Pol" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuvajt" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "КајманÑка оÑтрва" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "КазахÑтан" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Лаошка Ðародна ДемократÑка Република" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Liban" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Света Луција" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Evropa/LinhenÅ¡tajn" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Шри Ланка" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Либерија" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "ЛеÑото" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litvanija" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Evropa/Luksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Jermenija" #. :LVA:428: #: zypp/CountryCode.cc:292 #, fuzzy msgid "Libya" msgstr "Либерија" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Maroko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Evropa/Monako" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Evropa/Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "монго" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "Сан Марино" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "МадагаÑкар" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "МаршалÑка оÑтрва" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonija" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Мали" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Мјанмар" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Монголија" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Azija/Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Северна МаријанÑка оÑтрва" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Amerika/Marinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Мауританија" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "МонтÑерат" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "МаурицијуÑ" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Малдиви" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Малави" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malazija" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Мозамбик" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Ðамибија" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Ðова Каледонија" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Ðигер" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Ðорфолк оÑтрво" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Ðигерија" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragva" # Contry name #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Europa/Holandija" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "NorveÅ¡ka" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Ðепал" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Ðиуе" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Novi Zeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "ФранцуÑка Полинезија" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Папуа Ðова Гвинеја" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipini" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" # Contry name #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poljska" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Свети Пјер и Микелон" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pacifik/Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Riko" # official_name for PSE #. :PRI:630: #: zypp/CountryCode.cc:339 #, fuzzy msgid "Palestinian Territory" msgstr "Окупирана ПалеÑтинÑка Територија" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugalija" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragvaj" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Реунион" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumunija" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "ÑрпÑки" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "РуÑка Федерација" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Руанда" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudijska Arabija" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "СоломонÑка оÑтрва" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Сејшели" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Å vedska" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Света Хелена" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenija" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Свалбард и Јан Мајен" # Contry name #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "SlovaÄka" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Сијера Леоне" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Сан Марино" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Сенегал" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Сомалија" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Суринам" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Сао Томе и ПринÑипе" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 #, fuzzy msgid "Syria" msgstr "ÑиријÑки" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Свазиланд" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Ð¢ÑƒÑ€ÐºÑ Ð¸ ÐšÐ°Ð¸ÐºÐ¾Ñ Ð¾Ñтрва" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Чад" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "ФранцуÑке Јужне Територије" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Того" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tajland" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadžikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "токелау" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ТуркмениÑтан" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunis" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Тонга" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turska" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Тринидад и Тобаго" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "тувалу" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Тајван" #. :TWN:158: #: zypp/CountryCode.cc:383 #, fuzzy msgid "Tanzania" msgstr "Australija/Tasmania" # "TW" : _("Taiwan R.O.C."), #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrajina" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Уганда" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Мала Спољашња ОÑтрва Сједињених Држава" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Сједињене Државе" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Urugvaj" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Света Столица (Ватикан град-држава)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Свети ВинÑент и Гренадинци" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venecuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "БританÑка ДевичанÑка ОÑтрва" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ДевичанÑка оÑтрва, Ðмеричка" #. :VIR:850: #: zypp/CountryCode.cc:395 #, fuzzy msgid "Vietnam" msgstr "вијетнамÑки" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Вануату" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Ð’Ð¾Ð»Ð¸Ñ Ð¸ Футуна" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "SAD/Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Мајоте" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Južna Afrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Замбија" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zibabve" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" # tree node string #: zypp/Dep.cc:98 msgid "Requires" msgstr "Zahteva" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "ObriÅ¡i %1" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Ðаредба која Ñе извршава при повезивању" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "афар" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "абкаÑки" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "акинеÑки" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "аколи" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "адангме" #. language code: ady #: zypp/LanguageCode.cc:171 #, fuzzy msgid "Adyghe" msgstr "адангме" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "афроазијÑки (оÑтали)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "африхили" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "африканÑ" # entry of bootloader menu - only a-z, A-Z, 0-9, _ and blank space # are allowed, otherwise translartion won't be used # try to keep short, may be shortened due to bootloader limitations # entry of bootloader menu - only a-z, A-Z, 0-9, _ and blank space # are allowed, otherwise translartion won't be used # try to keep short, may be shortened due to bootloader limitations #. language code: ain #: zypp/LanguageCode.cc:179 #, fuzzy msgid "Ainu" msgstr "Linux:" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "акан" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "акадÑки" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "албанÑки" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "алеут" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "алгонквијÑки језици" #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "јужни Ñами" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "амхарÑки" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "енглеÑки, Ñтари (око 450–1100)" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "језици Ðпача" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "арапÑки" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "арамајÑки" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "арагонÑки" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "јерменÑки" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "арауканÑки" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "арапахо" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "вештачки (оÑтали)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "аравак" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "аÑамешки" # Contry name #. language code: ast #: zypp/LanguageCode.cc:221 #, fuzzy msgid "Asturian" msgstr "Austrija" #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "атапаÑканÑки језик" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "ауÑтралијÑки језици" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "аварÑки" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "авеÑтан" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "авади" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "ајмар" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "азербејџанÑки" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "банда" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "бамилеке језици" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "башкир" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "балучи" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "бамбара" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "балинезе" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "баÑкијÑки" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "баÑа" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "балтички (оÑтали)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "беџа" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "белоруÑки" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "бемба" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "бенгалÑки" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "бербер (оÑтали)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "бојупи" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "бихари" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "бикол" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "бини" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "биÑлама" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "ÑикÑика" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "банту (оÑтали)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "бошњачки" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "браџ" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "бретањÑки" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "батак (Индонезија)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "буријат" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "бугинезе" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "бугарÑки" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "бурмиÑки" #. language code: byn #: zypp/LanguageCode.cc:299 #, fuzzy msgid "Blin" msgstr "бини" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "кадо" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "централноамерички индијанÑки (оÑтали)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "карипÑки" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "каталонÑки" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "кавкаÑки (оÑтали)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "цебуано" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "келтÑки (оÑтали)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "чаморо" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "чибча" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "чеченÑки" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "чагатај" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kineski" #. language code: chk #: zypp/LanguageCode.cc:327 #, fuzzy msgid "Chuukese" msgstr "чукезе" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "мари" #. language code: chn #: zypp/LanguageCode.cc:331 #, fuzzy msgid "Chinook Jargon" msgstr "чиноок жаргон" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "чоктав" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "чипевјан" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "чироки" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "црквеноÑловенÑки" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "чуваш" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "чејенÑки" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "чамÑки језици" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "коптÑки" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "корнвалÑки" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "корзиканÑки" #. language code: cpe #: zypp/LanguageCode.cc:353 #, fuzzy msgid "Creoles and Pidgins, English-Based (Other)" msgstr "креолÑки и пиџинÑки (оÑтали)" #. language code: cpf #: zypp/LanguageCode.cc:355 #, fuzzy msgid "Creoles and Pidgins, French-Based (Other)" msgstr "креолÑки и пиџинÑки (оÑтали)" #. language code: cpp #: zypp/LanguageCode.cc:357 #, fuzzy msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "креолÑки и пиџинÑки (оÑтали)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "кри" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 #, fuzzy msgid "Creoles and Pidgins (Other)" msgstr "креолÑки и пиџинÑки (оÑтали)" #. language code: csb #: zypp/LanguageCode.cc:365 #, fuzzy msgid "Kashubian" msgstr "кабардијанÑки" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "кушитÑки (оÑтали)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ÄŒeÅ¡ka" #. language code: dak #: zypp/LanguageCode.cc:373 #, fuzzy msgid "Dakota" msgstr "дакота\t" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danska" #. language code: dar #: zypp/LanguageCode.cc:377 #, fuzzy msgid "Dargwa" msgstr "Darwin" #. language code: day #: zypp/LanguageCode.cc:379 #, fuzzy msgid "Dayak" msgstr "ÑаÑак" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "делавер" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "ÑлавÑки (атапаÑканÑки)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "догриб" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "динка" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "дивехи" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "догри" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "дравижанÑки (оÑтали)" #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "ÄŒuvanje Energije" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "дуала" #. language code: dum #: zypp/LanguageCode.cc:399 #, fuzzy msgid "Dutch, Middle (ca.1050-1350)" msgstr "холандÑки, Ñредњевековни (око 1050—1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Holandija" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "ђула" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "дзонгка" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "ефик" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "египатÑки (Ñтари)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "екаџук" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "еламит" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "енглеÑки" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "енглеÑки, Ñредњевековни (1100—1500.)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "еÑперанто" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonski" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "еве" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "евондо" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "фанг" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "фарÑки" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "фанти" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "фиџијан" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "Filipini" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finska" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "фино-угарÑки (оÑтали)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "фон" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francuska" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "француÑки, Ñредњевековни (око 1400—1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "француÑки, Ñтари (842—око 1400.)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "фрижанÑки" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "фула" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "фриулијанÑки" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "га" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "гајо" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "гбаја" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "германÑки (оÑтали)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "грузијÑки" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "NemaÄka" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "гиз" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "жибертеÑки" #. language code: gla gd #: zypp/LanguageCode.cc:479 #, fuzzy msgid "Gaelic" msgstr "Мали" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ирÑки" #. language code: glg gl #: zypp/LanguageCode.cc:483 #, fuzzy msgid "Galician" msgstr "гвичин" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Ñа оÑтрва Мана" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "немачки, Ñредњевековни горњи (око 1050—1500.)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "немачки, Ñтари горњи (око 750—1050.)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "гонди" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "горонтало" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "готÑки" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "гребо" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "грчки, Ñтари (до 1453.)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "грчки, Ñавремени (1453.—)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "гуарани" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "гујарати" #. language code: gwi #: zypp/LanguageCode.cc:509 #, fuzzy msgid "Gwich'in" msgstr "гвичин" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "хаида" #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "Хаити" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "хауÑа" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "хавајÑки" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "хебрејÑки" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "хереро" # bug: highlight? #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "хилигајнон" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "химахали" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "хинду" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "хетÑки" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "хмонг" #. language code: hmo ho #: zypp/LanguageCode.cc:533 #, fuzzy msgid "Hiri Motu" msgstr "хири" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "ÑрпÑки" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "MaÄ‘arska" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "хупа" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "ибан" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "игбо" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "иÑландÑки" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "идо" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Ñихуан ји" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "иџо" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "инуктитут" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "интерлингве" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "илоко" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "индијÑки (оÑтали)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "индонежанÑки" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "индоевропÑки (оÑтали)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "ингуш" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "инупијак" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "иранÑки (оÑтали)" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "ироквојанÑки језици" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italija" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "јаванÑки" #. language code: jbo #: zypp/LanguageCode.cc:581 #, fuzzy msgid "Lojban" msgstr "Liban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japan" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "јудо-перÑијÑки" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "јудо-арапÑки" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "кара-калпак" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "кабил" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "качин" #. language code: kal kl #: zypp/LanguageCode.cc:595 #, fuzzy msgid "Kalaallisut" msgstr "гренландÑки (калалиÑут)" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "камба" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "канада" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "карен" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "кашмирÑки" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "канури" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "кави" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "казахÑтанÑки" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "кабардијанÑки" #. language code: kha #: zypp/LanguageCode.cc:613 #, fuzzy msgid "Khasi" msgstr "кази" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "коÑијанÑки (оÑтали)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "кмерÑки" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "котанезе" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "кикују" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "кинјарванда" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "киргишки" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "кимбунду" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "конкани" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "коми" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "конго" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreanski" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "коÑраенÑки" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "кпеле" #. language code: krc #: zypp/LanguageCode.cc:641 #, fuzzy msgid "Karachay-Balkar" msgstr "кара-калпак" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "кру" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "курук" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "куанјама" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "кумик" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "курдÑки" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "кутенај" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ладино" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "ланда" # #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "ламбда" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "лао" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "латинÑки" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "летонÑки" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "лежгијанÑки" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "лимбуржанÑки" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "лингала" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "литванÑки" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "монго" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "лози" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "лукÑембуршки" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "луба-лулуа" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "луба-катанга" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "ганда" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "ЛуијÑено" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Лунда" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "луо (Кенија и Танзанија)" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "лушаји" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "македонÑки" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "мадурезе" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "магахи" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "маршалÑки" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "маитхили" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "макаÑар" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "малајамÑки" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "мандинго" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "маори" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ауÑтронежанÑки (оÑтали)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "марати" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "маÑаи" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "малајÑки" #. language code: mdf #: zypp/LanguageCode.cc:727 #, fuzzy msgid "Moksha" msgstr "мохавк" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "мандарÑки" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "менде" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ирÑки, Ñредњевековни (900-1200.)" #. language code: mic #: zypp/LanguageCode.cc:735 #, fuzzy msgid "Mi'kmaq" msgstr "микмак" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "минангкабау" #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "разни језици" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "мон-кмер (оÑтали)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "малагаÑи" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "малтешки" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "манчу" #. language code: mni #: zypp/LanguageCode.cc:749 #, fuzzy msgid "Manipuri" msgstr "канури" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "манобо језици" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "мохавк" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "молдавÑки" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "монголÑки" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "моÑи" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "вишејезички" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "мунда језици" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "крик" #. language code: mwl #: zypp/LanguageCode.cc:767 #, fuzzy msgid "Mirandese" msgstr "мадурезе" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "марвари" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "језици маја" #. language code: myv #: zypp/LanguageCode.cc:773 #, fuzzy msgid "Erzya" msgstr "орија" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "нахуатл" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "Ñеверноамерички индијанÑки (оÑтали)" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "напуљÑки" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Globalno/Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "ндебеле, јужни" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "ндебеле, Ñеверни" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "ндонга" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "NemaÄka" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "непалÑки" #. language code: new #: zypp/LanguageCode.cc:795 #, fuzzy msgid "Nepal Bhasa" msgstr "Ðепал" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "нијаÑ" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "нигер-кордофанÑки (оÑтали)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "ниујеан" #. language code: nno nn #: zypp/LanguageCode.cc:803 #, fuzzy msgid "Norwegian Nynorsk" msgstr "норвешки/модерни правопиÑ" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "норвешки/бокмал" #. language code: nog #: zypp/LanguageCode.cc:807 #, fuzzy msgid "Nogai" msgstr "ндонга" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "нордијÑки, Ñтари" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "NorveÅ¡ka" #. language code: nso #: zypp/LanguageCode.cc:813 #, fuzzy msgid "Northern Sotho" msgstr "Ñеверни Ñами" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "нубијÑки језици" #. language code: nwc #: zypp/LanguageCode.cc:817 #, fuzzy msgid "Classical Newari" msgstr "Ime klase" #. language code: nya ny #: zypp/LanguageCode.cc:819 #, fuzzy msgid "Chichewa" msgstr "чибча" #. language code: nym #: zypp/LanguageCode.cc:821 #, fuzzy msgid "Nyamwezi" msgstr "Ime" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "њанкол" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "њоро" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "нзима" # ??? #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "окÑитан (поÑле 1500.)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "оџибва" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "орија" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "оромо" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "оÑаж" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "оÑетијан" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "турÑки, отоманÑки (1500–1928)" # ??? #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "отомијанÑки језици" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "папуан (оÑтали)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "пангаÑинан" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "палави" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "пампања" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "панџаби" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "папијаменто" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "палауан" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "перÑијÑки, Ñтари (око 600–400 п.н.е.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "перÑијÑки" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "филипинÑки (оÑтали)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "феничанÑки" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "пали" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Poljska" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "понпејан" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugalija" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "пракрит језици" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "прованÑалÑки, Ñтари (до 1500.)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "пушто" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "квечуа" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "раџаÑтани" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "рапануји" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "раротонган" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "романÑки (оÑтали)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "рето-романÑки" # овако каже Мортон-БенÑон, или „језик Рома“ #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "циганÑки" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 #, fuzzy msgid "Romanian" msgstr "Rumunija" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "рунди" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rusija" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Ñандаве" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Ñанго" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "јакут" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "јужноамерички индијанÑки (оÑтали)" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Ñалишан језици" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "ÑамарићанÑки арамајÑки" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "ÑанÑкрит" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "ÑаÑак" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Ñантали" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "ÑрпÑки" #. language code: scn #: zypp/LanguageCode.cc:927 #, fuzzy msgid "Sicilian" msgstr "SAD/Michigan" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "шкотÑки" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Hrvatski" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Ñелкуп" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "ÑемитÑки (оÑтали)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ирÑки, Ñтари (до 900.)" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "знаковни језици" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "шан" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Ñидамо" #. language code: sin si #: zypp/LanguageCode.cc:947 #, fuzzy msgid "Sinhala" msgstr "Ñиналезе" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Ñијуан језици" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Ñино-тибетÑки (оÑтали)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "ÑловенÑки (оÑтали)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "SlovaÄka" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Ñловеначки" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "јужни Ñами" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Ñеверни Ñами" #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Ñами језици (оÑтали)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "луле Ñами" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "инари Ñами" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "ÑамоанÑки" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Ñколт Ñами" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "шона" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Ñинди" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Ñонинке" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Ñогдијан" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "ÑомалÑки" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Ñонгхај" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Ñото, јужни" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Å panija" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "ÑардинијÑки" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Ñерер" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "нило-ÑахарÑки (оÑтали)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Ñвати" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Ñукума" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "ÑунданежанÑки" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Ñузу" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ÑумерÑки" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Ñвахили" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Å vedska" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "ÑиријÑки" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "тахићанÑки" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "тајландÑки (оÑтали)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "тамил" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "ТатарÑки" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "телугу" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "тимне" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "терено" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "тетум" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "таџик" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "тагалог" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "тајландÑки" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "тибетÑки" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "тигар" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "тигрињÑки" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "тив" #. language code: tlh #: zypp/LanguageCode.cc:1047 #, fuzzy msgid "Klingon" msgstr "конго" #. language code: tli #: zypp/LanguageCode.cc:1049 #, fuzzy msgid "Tlingit" msgstr "тлинклит" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "тамашек" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "тонга (ÐијаÑа)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "тонга (Тонга оÑтрва)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "ток пиÑин" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "цимшиан" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "цвана" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "цонга" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "туркмениÑтанÑки" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "тумбука" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "тупи језици" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turska" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "алтајÑки (оÑтали)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "тви" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "тувинијанÑки" #. language code: udm #: zypp/LanguageCode.cc:1081 #, fuzzy msgid "Udmurt" msgstr "урду" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "угарÑки" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ујгур" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "украјинÑки" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "умбунду" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "неодређен" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "урду" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "узбекиÑтанÑки" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "ваи" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "венда" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "вијетнамÑки" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "волапук" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "вотик" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "вакашан језици" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "валамо" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "варај" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "вашо" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "велшки" # моравÑко ÑрпÑки? #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "ÑорбÑки језици" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "валун" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "волоф" #. language code: xal #: zypp/LanguageCode.cc:1125 #, fuzzy msgid "Kalmyk" msgstr "кумик" # не ваља #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "гзоза" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "јао" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "јапеÑки" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "јидишки" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "јоруба" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "јупик језици" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "запотек" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "зенага" #. language code: zha za #: zypp/LanguageCode.cc:1143 #, fuzzy msgid "Zhuang" msgstr "Бутан" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "занде" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Itd/Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "зуни" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" # summary text heading #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "Paketi za obnavljanje" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Ðе могу да отворим '%1'." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Ðе могу да отворим '%1'." #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ðе могу да отворим '%1'." #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" # translators: fallback name for a module at command line #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nepoznato" #: zypp/VendorSupportOptions.cc:17 #, fuzzy msgid "unsupported" msgstr " - није подржано" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "URL није иÑправан" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "XF86History" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Ðе могу да отворим '%1'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ðе могу да отворим '%1'." #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ima neispunjene zahteve..." #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "ima neispunjene zahteve..." #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" # tree node string #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "Boot arhitektura" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Proveravam meÄ‘uzavisnost..." #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" # summary text heading #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Paketi za obnavljanje" #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr " - није подржано" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "Ovaj paket nije i neće biti instaliran." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "Instalacioni proces nije uspeÅ¡no zavrÅ¡en." #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Instaliram na:" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%1 je u konfliktu sa %2" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%1 je u konfliktu sa %2" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%1 je u konfliktu sa %2" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "Automatska Instalacija" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "Instaliram na:" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" # Frame title for installation target hard disk / partition(s) #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "Instaliram na:" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "%1 je u konfliktu sa %2" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "ObriÅ¡i %1" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "ИнÑталација" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "веза није уÑпоÑтављена" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" # summary text heading #: zypp/target/rpm/RpmDb.cc:1599 #, fuzzy msgid "Package is not signed!" msgstr "Paketi za obnavljanje" # progress stage #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Snimi konfiguracione fajlove" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" # TextEntry label #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "&Dodatne ipppd opcije" # Proposal for backup during update #: zypp/target/rpm/RpmDb.cc:2394 #, fuzzy, c-format, boost-format msgid "created backup %s" msgstr "Ne pravite sigurnosnu kopiju" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" # Frame title for installation target hard disk / partition(s) #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "Instaliram na:" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." # name for SCG #~ msgid "Serbia and Montenegro" #~ msgstr "Србија и Црна Гора" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "Proveravam meÄ‘uzavisnost..." #, fuzzy #~ msgid "%s remove failed" #~ msgstr "rpm greÅ¡ka." #, fuzzy #~ msgid "rpm output:" #~ msgstr "" #~ "\n" #~ "Komandni izlaz:" #, fuzzy #~ msgid "%s install failed" #~ msgstr "Instalacioni proces nije uspeÅ¡no zavrÅ¡en." # PushButton: Allright, really start installation # PushButton: Allright, really start installation #, fuzzy #~ msgid "%s installed ok" #~ msgstr "&Da, instaliraj" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "%1 je u konfliktu sa %2" # error popup message #, fuzzy #~ msgid "Ignore that %s is already set to install" #~ msgstr "Direktorijum %1 je već na listi." #, fuzzy #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "Ignore this conflict of %s" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "Ignore this requirement just here" #~ msgstr "ima neispunjene zahteve..." # summary heder #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Instaliranje nedostajućih paketa" # summary heder #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Instaliranje nedostajućih paketa" #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "install %s" #~ msgstr "Instaliraj %1" #, fuzzy #~ msgid "unlock %s" #~ msgstr "Satovi" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." #, fuzzy #~ msgid "%s conflicts with other resolvables" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "Ovaj paket nije i neće biti instaliran." #, fuzzy #~ msgid "%s has missing dependencies" #~ msgstr "Proveravam meÄ‘uzavisnost..." #, fuzzy #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "Proveravam meÄ‘uzavisnost..." #, fuzzy #~ msgid "No need to install %s" #~ msgstr "mora da se reinstalira" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "Proveravam meÄ‘uzavisnost..." #, fuzzy #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%1 je u konfliktu sa %2" #, fuzzy #~ msgid ", Action: " #~ msgstr "Akcija" # Frame title for installation target hard disk / partition(s) #, fuzzy #~ msgid "Establishing %s" #~ msgstr "Instaliram na:" # Frame title for installation target hard disk / partition(s) #, fuzzy #~ msgid "Installing %s" #~ msgstr "Instaliram na:" #, fuzzy #~ msgid "Skipping %s: already installed" #~ msgstr "Ovaj paket je već instaliran. ObriÅ¡ite ga." #, fuzzy #~ msgid " Error!" #~ msgstr "GreÅ¡ka" #, fuzzy #~ msgid " Important!" #~ msgstr "Unos podataka" #, fuzzy #~ msgid "Ignore this requirement generally" #~ msgstr "ima neispunjene zahteve..." # button for message box with help text #~ msgid "Ok" #~ msgstr "U redu" # summary text heading #, fuzzy #~ msgid "The package file has incorrect MD5 sum" #~ msgstr "Paketi za obnavljanje" # summary text heading #, fuzzy #~ msgid "The package archive has incorrect MD5 sum" #~ msgstr "Paketi za obnavljanje" #~ msgid "Default" #~ msgstr "Podrazumevano" #, fuzzy #~ msgid "installed" #~ msgstr "Instaliraj" #, fuzzy #~ msgid "to be installed (soft)" #~ msgstr "mora da se reinstalira" #, fuzzy #~ msgid "to be uninstalled" #~ msgstr "mora da se reinstalira" libzypp-17.7.0/po/sv.po000066400000000000000000003261441334444677500147400ustar00rootroot00000000000000# translation of zypp.sv.po to Swedish # translation of zypp.po to # Swedish message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2001 SuSE GmbH. # # Mattias Newzella , 2001. # Gudmund Areskoug , 2001. # Mattias Newzella , 2007. # Jonas Svensson , 2016. msgid "" msgstr "" "Project-Id-Version: zypp.sv\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-26 08:21+0000\n" "Last-Translator: Martin Devenney \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal-undantag" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Den tvivelaktiga typen '%s' för %u-bytekontrollsumma '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Okänt land: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ingen kod" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Förenade Arabemiraten" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua och Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albanien" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenien" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Nederländska Antillerna" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarktis" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikanska Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Österrike" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australien" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Ã…land" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbajdzjan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnien-Hercegovina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgien" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgarien" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brasilien" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvetön" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Vitryssland" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Kokosöarna" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Centralafrikanska republiken" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Schweiz" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Elfenbenskusten" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cooköarna" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Kina" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Kuba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Kap Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Julön" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cypern" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tjeckien" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Tyskland" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominikanska republiken" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeriet" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estland" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypten" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Västsahara" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spanien" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopien" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsöarna (Malvinas)" # official_name for FSM #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federala staterna Mikronesien" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Färöarna" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Frankrike" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Franska metropolitan" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Storbritannien" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgien" # GF #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Franska Guiana" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grönland" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatorialguinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grekland" # GS #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Sydgeorgien och södra Sandwichöarna" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heardön och McDonaldöarna" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Kroatien" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Ungern" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesien" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Isle of Man" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Indien" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Brittiskt territorium i Indiska Oceanen" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Island" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italien" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordanien" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KG #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirgisistan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kambodja" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comorerna" # KN #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Sankt Kitts och Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Nordkorea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Sydkorea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Caymanöarna" # KZ #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakstan" # CD #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Demokratiska folkrepubliken Lao" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Libanon" # LC #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Sankt Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litauen" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Lettland" # LR #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libyen" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marocko" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldavien" # Libris vill ha det sÃ¥. #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" # SM #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Saint Martin" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshallöarna" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonien" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongoliet" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Nordmarianerna" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauretanien" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" # MV #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldiverna" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexiko" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Moçambique" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nya Kaledonien" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolköarna" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Nederländerna" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norge" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nya Zeeland" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Franska Polynesien" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Nya Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filippinerna" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polen" # PM #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Sankt Pierre och Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" # official_name for PSE #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Ockuperade palestinska territoriet" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Réunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Rumänien" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbien" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Ryska federationen" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudiarabien" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Salomonöarna" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychellerna" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sverige" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sankt Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenien" # SJ #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard och Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakien" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé och Príncipe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # Libris vill ha det sÃ¥. #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syrien" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks- och Caicosöarna" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tchad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Franska sydterritorierna" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadzjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisien" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Östtimor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkiet" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad och Tobago" # Libris vill ha det sÃ¥. #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvaluanska" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraina" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "USA:s avlägsna mindre öar" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "USA" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" # VA #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikanstaten" # VC #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Sankt Vincent och Grenadinerna" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Brittiska Jungfruöarna" # VI #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Jungfruöarna, amerikanska" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis och Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Jemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Sydafrika" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "TillhandahÃ¥ller" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Förutsätter" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Kräver" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "I konflikt" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Gör inaktuellt" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Rekommenderar" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "FöreslÃ¥r" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Utökar" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Kompletterar" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Kan inte öppna pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Det gÃ¥r inte att öppna programkopplingen (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Kan inte ändra roten (chroot) till '%s' (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Kan inte ändra katalogen (chdir) till '%s' i chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Kan inte ändra katalogen (chdir) till '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Kan inte köra '%s' (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Kan inte dela upp (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Kommandot avslutades med statusen %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Kommandot avbröts av signalen %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Kommandot avslutades med ett okänt fel." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Försökte importera icke existerande nyckel %s till nyckelringen %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Det gick inte att importera nyckeln." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Det gick inte att ta bort nyckeln." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Signaturfilen %s hittas inte" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Okänt sprÃ¥k: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abchaziska" # Libris vill ha achinese här. #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinesiska" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adygeiska" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afroasiatiska sprÃ¥k (övriga)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akkadiska" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanska" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutiska" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Algonkinska sprÃ¥k" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Sydaltaiska" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amhariska" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Fornengelska (ca 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Apachiska sprÃ¥k" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabiska" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Arameiska" # Libris vill ha "aragonsk spanska" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonska" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Armeniska" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araukanska" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Konstgjorda sprÃ¥k (övriga)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawakiska" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamesiska" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturiska" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Athapaskiska sprÃ¥k" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Australiska sprÃ¥k" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avariska" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestiska" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerbajdzjanska" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "BamilekesprÃ¥k" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Basjkiriska" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinesiska" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Baskiska" # Libris har med den där parentesen #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Basa (bantusprÃ¥k)" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltiska sprÃ¥k (övriga)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beyja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Vitryska" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengaliska" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "BerbersprÃ¥k (övriga)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" # Libris har med parentesen #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Edo (bini)" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" # Länge leve Libris! #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Svartfotindianernas sprÃ¥k (siksika)" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "BantusprÃ¥k (övriga)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosniska" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Bretonska" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonesien)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Burjatiska" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Buginesiska" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgariska" # Libris vill ha det sÃ¥. #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmanska" # Libris har med parentesen #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Centralamerikanska indiansprÃ¥k (övriga)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Karibiska" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalanska" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kaukasiska sprÃ¥k (övriga)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Keltiska sprÃ¥k (övriga)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tjetjenska" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Kinesiska" # Libris vill ha det sÃ¥. #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Tjuktjiska" # Alternativt tjeremissiska enligt Libris. #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mariska" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Chinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Chopi" # Libris vill ha det sÃ¥. #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Cherokesiska" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Fornkyrkoslaviska" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Tjuvasjiska" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ChamicsprÃ¥k" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Koptiska" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Korniska" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Korsikanska" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreol- och pidginsprÃ¥k, baserade pÃ¥ engelska (övriga)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreol- och pidginsprÃ¥k, baserade pÃ¥ franska (övriga)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreol- och pidginsprÃ¥k, baserade pÃ¥ portugisiska (övriga)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Krimtatariska" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreol- och pidginsprÃ¥k (övriga)" # Osäker # Ej verifierat #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kasjubiska" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Kushitiska sprÃ¥k (övriga)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tjeckiska" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danska" # Libris vill ha "Darginska (Dargwa)". Jag antar att Dargwa är vanligare. #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dajakiska" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidiska sprÃ¥k (övriga)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "LÃ¥gsorbiska" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Medelnederländska (ca 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Nederländska" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dyula" # Libris vill ha med parentesen. #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Bhutanesiska (Dzongkha)" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Fornegyptiska" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamitiska" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Engelska" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Medelengelska (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estniska" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Färöiska" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" # SAOL vill ha utan d, Libris med d. Jag kör pÃ¥ SAOL:s variant. #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fijianska" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filippinska" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finska" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Finsk-ugriska sprÃ¥k (övriga)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Franska" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Medelfranska (ca 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Fornfranska (842-ca 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frisiska" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulani" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friuliska" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Germanska sprÃ¥k (övriga)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Georgiska" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Tyska" # Libris vill ha det sÃ¥. #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Fornetiopiska (Geez)" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Gilbertesiska" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gaeliska" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Iriska" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galiciska" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Medelhögtyska (ca 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Fornhögtyska (ca 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotiska" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grekiska, klassisk (-1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Nygrekiska (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Guaraní" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwichin" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Haida" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Haitiska" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Haussa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawaiiska" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Hebreiska" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" # Libris vill ha det sÃ¥. #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Pahari (himachali)" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" # Libris vill ha det sÃ¥. #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hettitiska sprÃ¥k" # Libris vill ha det sÃ¥. #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "HmongsprÃ¥k" # Libris vill ha det sÃ¥. #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hirimotu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Högsorbiska" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Ungerska" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" # Libris vill ha det sÃ¥. #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Ibo (Igbo)" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Isländsk" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (International Auxiliary Language Association)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indoariska sprÃ¥k (övriga)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonesiska" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indoeuropeiska sprÃ¥k (övriga)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingusj" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iranska sprÃ¥k (övriga)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Irokesiska sprÃ¥k" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "Italienska" # Libris vill ha det sÃ¥. #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Javanska" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japanska" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Judepersiska" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Judearabiska" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Karakalpakiska" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabyliska" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Grönländska (Kalaallisut)" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" # Även kanaresiska (äldre form) #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" # Libris vill ha det sÃ¥. #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Fornjavanska (kawi)" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazakiska" # Libris vill ha det sÃ¥. #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardinska (östtjerkessiska)" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "KhoisansprÃ¥k (övriga)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Kambodjanska (khmer)" # Libris vill ha det sÃ¥. #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Sakiska (khotanesiska)" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Rwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirgisiska" # Libris vill ha det sÃ¥. #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Mbundu (kimbundu)" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kikongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Koreanska" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kusaie" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpelle" # Osäker # Ej verifierat #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karatjaj-balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "KrusprÃ¥k" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kurukh" # Libris vill ha det sÃ¥. #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Ovambo (kuanyama)" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurdiska" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenai" # Libris vill ha det sÃ¥. #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Spanjolska (ladino)" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Laotiska" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latin" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Lettiska" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezginska" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limburgiska" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litauiska" # Libris vill ha det sÃ¥. #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Lolo (mongo)" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Luxemburgiska" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Luganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Luo (Kenya och Tanzania)" # Libris vill ha det sÃ¥. #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonska" # Libris vill ha det sÃ¥. # Även madura. #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshallesiska" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" # Libris vill ha det sÃ¥. # Även malinke. #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mande" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Austronesiska sprÃ¥k (övriga)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Massajiska" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malajiska" # Osäker # Ej verifierat #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Medeliriska (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Mic-mac" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Diverse sprÃ¥k" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-khmersprÃ¥k (övriga)" # Libris vill ha det sÃ¥. #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Maltesiska" # Även mandju. #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "ManobosprÃ¥k" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "Moldaviska" # Libris vill ha det sÃ¥. #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongoliska sprÃ¥k" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Flera sprÃ¥k" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "MundasprÃ¥k" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Muskogee" # Libris vill ha det sÃ¥. # Även madura. #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandesiska" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "MayasprÃ¥k" # http://www.geocities.com/forfader/samerna/uraliska.html #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Nordamerikanska indiansprÃ¥k" # Libris vill ha det sÃ¥. #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Neapolitansk italienska" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele, syd" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele, nord" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "LÃ¥gtyska" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepali" # NP #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Nepalesisk bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-/KongosprÃ¥k (övriga)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Nynorska" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Nynorska (Bokmal)" # Libris vill ha det sÃ¥ #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogaiska" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Fornisländska" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norska" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Nordsotho" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Nubiska sprÃ¥k" # Osäker #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Klassisk newariska" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" # Libris vill ha det sÃ¥. #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Langue d'oc (1500-)" # Libris vill ha det sÃ¥. #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Odjibwa (chippewa)" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" # Libris vill ha det sÃ¥. #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetiska" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Ottomanska (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Oto-manguesprÃ¥k" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papuanska sprÃ¥k (övriga)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangasinan" # Libris vill ha det sÃ¥. #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi (medelpersiska)" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" # Även panjabi. #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Punjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Fornpersiska (ca 600-400 f.Kr.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Persiska" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filippinska sprÃ¥k (övriga)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Feniciska" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polska" # Libris vill ha det sÃ¥. #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Ponape" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portugisiska" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "PrakritsprÃ¥k" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "Fornprovensalska (till och med 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pashto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Rarotongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Romanska sprÃ¥k (övriga)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Rätoromanska" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Rumänska" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Ryska" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Jakutiska" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Sydamerikanska indiansprÃ¥k (övriga)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Salisiska sprÃ¥k" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Samaritanska" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbiska" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilianska" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Skotska" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Kroatiska" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitiska sprÃ¥k (övriga)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Forniriska (-900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "TeckensprÃ¥k" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidami" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Singalesiska" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "SiouxsprÃ¥k" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sinotibetanska sprÃ¥k (övriga)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Slaviska sprÃ¥k (övriga)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakiska" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovenska" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Sydsamiska" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Nordsamiska" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Samiska sprÃ¥k (övriga)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Lulesamiska" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Enaresamiska" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samoanska" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Skoltsamiska" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdiska" # Libris vill ha det sÃ¥. #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Sotho, syd" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Spanska" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardiska" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-sahariska sprÃ¥k (övriga)" # Libris vill ha det sÃ¥. #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Swazi" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Sukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanesiska" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Sumeriska" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Swahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Svenska" # Libris vill ha det sÃ¥. #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Syriska" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahitiska" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ThaisprÃ¥k (övriga)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Tatariska" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telugo" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Temne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadzjikiska" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Thailändska" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetanska" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigré" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinja" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tivi" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingonska" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Tongaöarna)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" # Libris vill ha det sÃ¥. #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turkmeniska" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Tumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "TupísprÃ¥k" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turkiska" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altaiska sprÃ¥k (övriga)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Tuvinska" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Udmurtiska" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ugaritiska" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Uiguriska" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Ukrainska" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Odefinierat sprÃ¥k" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Uzbekiska" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamesiska" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapük" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votiska" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Wakusjiska sprÃ¥k" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" # Libris vill ha det sÃ¥. #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Kymriska" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Sorbiska sprÃ¥k" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Vallonska" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" # Libris vill ha det sÃ¥. #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmuckiska" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yap" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Jiddisch" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Yupiska sprÃ¥k" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapotek" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Följande Ã¥tgärder kommer att vidtas:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "gÃ¥r inte ut" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "gick ut: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "gÃ¥r ut: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(gÃ¥r inte ut)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(UTGÃ…NGEN)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(gÃ¥r ut inom 24 timmar)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(gÃ¥r ut om %d dag)" msgstr[1] "(gÃ¥r ut om %d dagar)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Kan inte läsa lagringsplatskatalog '%1%': Ã…tkomst nekad" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Det gick inte att läsa katalogen '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Kan inte läsa lagringsplatsfilen '%1%': Ã…tkomst nekad" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Aliaset för en lagringsplats kan inte inledas med en punkt." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Ett alias för en tjänst kan inte inledas med en punkt." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Kan inte skriva till filen '%s'." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Okänd tjänst '%1%': Tar bort övergiven lagringsplats '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Giltig metadata hittades inte pÃ¥ specificerad URL" msgstr[1] "Giltig metadata hittades inte pÃ¥ specificerade URL:er" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Kan inte skapa %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Kan inte att skapa cachekatalog för metadata." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Cache för lagringsplatsen '%s' byggs" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Kan inte att skapa cache pÃ¥ %s - ingen skrivrättighet." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Misslyckades att cachelagra lagringsplats (%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Kan inte hantera lagringsplatstypen" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Det gick inte att läsa frÃ¥n '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Ett okänt fel uppstod vid läsning frÃ¥n '%s'" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Lägger till förrÃ¥det '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ogiltigt namn pÃ¥ lagringsplats '%s'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Lagringsplatsen '%s' tas bort" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Kan inte identifiera var lagringsplatsen finns." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Kan inte radera '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Det gick inte att identifiera var tjänsten är lagrad." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Ogiltig LDAP URL-frÃ¥gesträng" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ogiltig LDAP URL-frÃ¥geparameter '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Det gÃ¥r inte att klona URL-objektet" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Den tomma URL-objektreferensen är ogiltig" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Det gick inte att analysera URL-komponenterna" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "okänd" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "stöds inte" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "NivÃ¥ 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "NivÃ¥ 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "NivÃ¥ 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Ytterligare kundavtal behövs" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "ogiltig" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "SupportnivÃ¥n har inte angetts" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Leverantören tillhandahÃ¥ller inte support." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Problembestämning – innebär teknisk support som ska kunna ge " "kompatibilitetsinformation, installationshjälp, användningssupport, " "underhÃ¥ll och grundläggande felsökning. Support pÃ¥ nivÃ¥ 1 är inte avsedd att " "korrigera produktfel." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Problemisolering – innebär teknisk support som ska kunna Ã¥terskapa " "kundproblemen, isolera problemomrÃ¥det och ge lösningar pÃ¥ problem som inte " "Ã¥tgärdas av supporten pÃ¥ nivÃ¥ 1." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Problemlösning – innebär teknisk support som ska kunna lösa komplexa problem " "som har identifierats i supporten pÃ¥ nivÃ¥ 2 med hjälp av tekniker." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Ytterligare ett kundavtal behövs för att kunna ge support." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Okänt supportalternativ. Beskrivning är inte tillgänglig" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Systemhanteringen är lÃ¥st av programmet med pid %d (%s).\n" "Stäng detta program och försök igen." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Historik:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Kan inte öppna lÃ¥sfilen: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Ã…tgärden körs redan av ett annat program." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Okänt matchningsläge '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Okänt matchningsläge '%s' för mönstret '%s'" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Ogiltigt reguljärt uttryck '%s': regcomp returnerade %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ogiltigt reguljärt uttryck '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Autentisering krävs för '%s'" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Besök Novells kundcenter och kontrollera att din registrering är giltig och " "fortfarande gäller." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Misslyckades att montera %s pÃ¥ %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Misslyckades att avmontera %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Ogiltigt filnamn: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Mediet öppnades inte när Ã¥tgärden '%s' skulle utföras." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Filen '%s' kunde inte hittas pÃ¥ mediet '%s'" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Kan inte skriva filen '%s'." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Mediet är inte anslutet" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Felaktig anslutningspunkt för media" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Initieringen av hämtningen (curl) misslyckades för '%s'" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Systemundantaget '%s' uppstod för mediet '%s'." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Sökvägen '%s' pÃ¥ mediet '%s' är inte en fil." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Sökvägen '%s' pÃ¥ mediet '%s' är inte en katalog." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Felaktigt format för URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Tomt värdnamn i URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Tomt filsystem i URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Tomt mÃ¥l i URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "URI-schemat i '%s' stöds inte." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "Ã…tgärden stöds inte av mediet" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Ett hämtningsfel (curl) uppstod för '%s'.\n" "Felkod: %s\n" "Felmeddelande: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Ett fel uppstod när alternativ för hämtning (curl) skulle anges för '%s':" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "Mediekällan '%s' innehÃ¥ller inte önskat medium" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Mediet '%s' används av en annan instans" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Kan inte mata ut nÃ¥got medium" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Kan inte mata ut mediet '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Behörighet för Ã¥tkomst till '%s' nekad." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Tidsgränsen överskreds vid försök att nÃ¥ '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Platsen '%s' är för tillfället oÃ¥tkomlig." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL-certifikatsproblem, verifiera att CA-certifikatet för '%s' är OK." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "Skapa fästpunkt: hittar ingen skrivbar katalog för att skapa fästpunkt" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Det finns inte stöd för HTTP-autentiseringsmetoden '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Installera paketet 'lsof' först." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Det nödvändiga attributet '%s' saknas." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Ett av eller bÃ¥da attributen '%s' och '%s' krävs." # %s is either BOOTP or DHCP #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Signaturen kunde inte verifieras" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Paketet %s verkar ha skadats under överföringen. Vill du försöka överföra " "det pÃ¥ nytt?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Det gick inte att tillhandahÃ¥lla paketet %s. Vill du försöka hämta det pÃ¥ " "nytt?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm-kontrollen misslyckades." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm misslyckades." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Insticksprogrammet för tjänsten har inte stöd för ändring av attribut." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Det gÃ¥r inte att hämta filen %s frÃ¥n förrÃ¥det %s" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Det finns ingen URL i förrÃ¥det." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Fil %1%\n" " frÃ¥n paketet\n" " %2%\n" " stÃ¥r i konflikt med fil frÃ¥n paketet\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Fil %1%\n" " frÃ¥n paketet\n" " %2%\n" " stÃ¥r i konflikt med fil frÃ¥n installationen av\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Fil %1%\n" " frÃ¥n installationen av\n" " %2%\n" " stÃ¥r i konflikt med fil frÃ¥n paketet\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Fil %1%\n" " frÃ¥n installationen av\n" " %2%\n" " stÃ¥r i konflikt med fil frÃ¥n installationen av\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Fil %1%\n" " frÃ¥n paketet\n" " %2%\n" " stÃ¥r i konflikt med fil\n" " %3%\n" " frÃ¥n paketet\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Fil %1%\n" " frÃ¥n paketet\n" " %2%\n" " stÃ¥r i konflikt med fil\n" " %3%\n" " frÃ¥n installationen av\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Fil %1%\n" " frÃ¥n installationen av\n" " %2%\n" " stÃ¥r i konflikt med fil\n" " %3%\n" " frÃ¥n paketet\n" " %4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Fil %1%\n" " frÃ¥n installationen av\n" " %2%\n" " stÃ¥r i konflikt med fil\n" " %3%\n" " frÃ¥n installationen av\n" " %4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Kan inte skapa sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "bryt %s genom att ignorera vissa beroenden" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "ignorera generellt nÃ¥gra beroende" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s tillhör inte ett distupgrade-förrÃ¥d" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s innehÃ¥ller en underordnad arkitektur" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problem med det installerade paketet %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "begäranden i konflikt" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "vissa beroendeproblem" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "inget tillhandahÃ¥ller begärda %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Har du aktiverat alla begärda lagringsplatser?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "paketet %s finns inte" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "begäran stöds inte" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s kommer frÃ¥n systemet och kan inte tas bort" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s gÃ¥r inte att installera" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "inget tillhandahÃ¥ller %s som behövs i %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "kan inte installera bÃ¥de %s och %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s är i konflikt med %s som kommer frÃ¥n %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s gör %s inaktuell som kommer frÃ¥n %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s gör %s som kommer frÃ¥n %s inaktuell" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "lösbara %s är i konflikt med %s som kommer frÃ¥n sig själv" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s behöver %s, men kravet kan inte uppfyllas" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "borttagna leverantörer: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "leverantörer som inte gÃ¥r att installera: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "leverantörer som inte gÃ¥r att installera: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "ta bort lÃ¥s sÃ¥ att %s kan tas bort" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "installera inte %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "behÃ¥ll %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "ta bort lÃ¥s sÃ¥ att %s kan installeras" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Denna begäran kommer att knäcka systemet!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ignorera varningen om ett trasigt system" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "frÃ¥ga inte om att installera en lösbar med %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "frÃ¥ga inte om att ta bort alla lösbara med %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "installera inte den senaste versionen av %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "behÃ¥ll %s trots underordnad arkitektur" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "installera %s trots underordnad arkitektur" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "behÃ¥ll förÃ¥ldrad version av %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "installera %s frÃ¥n undantaget arkiv" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "Nedgradera %s till %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "arkitekturändring av %s till %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "installera %s (med ändrad leverantör)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "ersätt %s med %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "avinstallation av %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Kör %%posttrans-skriptet '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Kör %p 1osttrans-skript" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " körd" # %s is either BOOTP or DHCP #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " körningen misslyckades" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s redan körd som %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " körningen hoppades över vid avbrottet" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Ett fel inträffade när ett uppdateringsmeddelande skickades." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Nytt uppdateringsmeddelande" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Installationen har avbrutits enligt instruktionerna." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Tyvärr är denna version av libzypp byggd utan stöd för HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext har inte anslutits" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive har inte initierats" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume har inte initierats" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Det gick inte att skapa dbus-anslutningen" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: Det gick inte att skapa libhal-kontext" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: Det gick inte att ange dbus-anslutningen" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Det gick inte att initiera HAL-kontext - hald körs inte?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Inte en cd-rom-enhet" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM misslyckades: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Det gick inte att importera den offentliga nyckeln %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Det gick inte att ta bort den offentliga nyckeln %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Paketet är inte signerat!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Konfigurationsfiler har ändrats för %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "RPM sparade %s som %s, men det gick inte att avgöra skillnaden" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "RPM sparade %s som %s.\n" "Här visas de första 25 raderna med skillnader:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "RPM skapade %s som %s, men det gick inte att avgöra skillnaden" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "RPM skapade %s som %s.\n" "Här visas de första 25 raderna med skillnader:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Ytterligare RPM-utdata" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "skapade säkerhetskopian %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Signaturen är OK" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Okänd signaturtyp" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "Signaturen kan inte verifieras" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Signaturen är OK, men nyckeln är inte betrodd" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Signaturens offentliga nyckel är inte tillgänglig" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Filen finns inte eller signaturen kan inte kontrolleras" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Filen är inte signerad" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Det gÃ¥r inte att initiera mutex-attribut" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Det gÃ¥r inte att ange rekursiva mutex-attribut" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Det gÃ¥r inte att initiera rekursivt mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Det gÃ¥r inte att hämta mutex-lÃ¥set" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Det gÃ¥r inte att släppa mutex-lÃ¥set" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "URL-schemat tillÃ¥ter inte %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "%s-komponenten '%s' är ogiltig" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ogiltig %s-komponent" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Analysering av frÃ¥gesträng stöds inte för den här URL-adressen" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL-schemat är en obligatorisk komponent" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "URL-schemat '%s' är ogiltigt" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "URL-schemat tillÃ¥ter inte nÃ¥got användarnamn" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "URL-schemat tillÃ¥ter inte nÃ¥got lösenord" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Det mÃ¥ste finnas en värdkomponent i URL-schemat" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Det fÃ¥r inte finnas nÃ¥gon värdkomponent i URL-schemat" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Värdkomponenten '%s' är ogiltig" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "URL-schemat tillÃ¥ter inte nÃ¥gon port" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Portkomponenten '%s' är ogiltig" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Det mÃ¥ste finnas ett sökvägsnamn för URL-schemat" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Relativa sökvägar tillÃ¥ts inte om det finns behörighet" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Den kodade strängen innehÃ¥ller ett NULL-byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ogiltigt avgränsningstecken för delning av parametermatris" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ogiltigt avgränsningstecken för delning av parametermappning" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ogiltigt avgränsningstecken för koppling av parametermatris" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "" #~ "Det gick inte att importera den offentliga nyckeln frÃ¥n filen %s: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Det gick inte att ta bort den offentliga nyckeln %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Det gick inte att hitta en tillgänglig loop-enhet för montering av " #~ "bildfilen frÃ¥n '%s'" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "inte installerad." #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "Kan inte skapa publik nyckel %s frÃ¥n %s nyckelring till filen %s" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Kunde inte öppna %s - %s\n" # name for SCG #~ msgid "Serbia and Montenegro" #~ msgstr "Serbien och Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Okänt alternativ för list" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "det gick inte att lösa beroenden" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har inte nÃ¥gon kontrollsumma.\n" #~ "Vill du använda filen ändÃ¥?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Integritetskontrollen för filen %s misslyckades med följande nyckel:\n" #~ "%s|%s|%s\n" #~ "Vill du använda filen ändÃ¥?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har en ogiltig kontrollsumma.\n" #~ "%s förväntades, men %s hittades\n" #~ " Vill du använda filen ändÃ¥?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har en okänd kontrollsumma.%s.\n" #~ "Vill du använda filen ändÃ¥?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Filen %s har inte signerats.\n" #~ "Vill du använda den ändÃ¥?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Filen %s har signerats med en okänd nyckel:\n" #~ "%s|%s|%s\n" #~ "Vill du använda filen ändÃ¥?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "En osäker nyckel hittades:\n" #~ "%s|%s|%s\n" #~ "Vill du lita pÃ¥ nyckeln?" libzypp-17.7.0/po/ta.po000066400000000000000000004266761334444677500147270ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: NetworkManager-vpnc\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2005-06-26 01:20+0200\n" "Last-Translator: Priyavert Sharma \n" "Language-Team: AgreeYa Solutions \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "ஹால௠விதிவிலகà¯à®•à¯" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "அறிநà¯à®¤à®¿à®°à®¾à®¤ நாடà¯:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯ இலà¯à®²à¯ˆ" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "அனà¯à®Ÿà¯‡à®¾à®°à®¾" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "³ì¸¢Â «¦Ãâì¸ ¿¡Î¸û" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "ஆபà¯à®•ானிஸà¯à®¤à®¾à®©à¯" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "¬ýÊÌÅ¡ & À¡÷Ò¼¡" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "à®…à®™à¯à®µà®¿à®²à¯à®²à®¾" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "அலà¯à®ªà¯‡à®©à®¿à®¯à®¾" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "¬÷¦ºƒýÊÉ¡" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "¦¿¾÷Ä¡óÃ" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "à®…à®™à¯à®•ோலா" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "¬ôâ측" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "¬÷¦ºƒýÊÉ¡" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "«¦Ãâ측, ż" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "¬Ãò¾¢Ã¢Â¡" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "¦¸¡ÄõÀ¢Â¡" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "«Â÷Ä¡óÃ" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "«º÷¨Àº¡ý" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "பாஸà¯à®©à®¿à®¯à®¾ மறà¯à®±à¯à®®à¯ ஹெரà¯à®šà®•ோவினா" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "À¡÷§À¼¡Ã" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Àí¸Ç¡§¾Ã" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "¦Àøº¢Âõ" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "பரà¯à®•ினா ஃபாஸோ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Àø§¸Ã¢Â¡" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "À¢§Ãº¢ø" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "பà¯à®°à¯à®£à¯à®Ÿà®¿" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "பெனினà¯" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "§º÷Ãý" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "பà¯à®°à¯‚னய௠தாரà¯à®šà®²à®¾à®®à¯" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "¦À¡Ä¢Å¢Â¡" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "À¢§Ãº¢ø" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Àɡá" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "À¢§Ãº¢ø" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "«Â÷Ä¡óÃ" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "பாடà¯à®¸à¯à®µà®¾à®©à®¾" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "¦ÀÄ¡åÃ" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "¦Àøº¢Âõ" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "¸É¼¡" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "கோகோஸ௠(கீலிஙà¯) தீவà¯à®•ளà¯" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "காஙà¯à®•ோ" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "¦¼¡Ã¢É¢ì¸ý ÌÊÂÃÃ" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ÃÅ¢ðº÷Ä¡óÃ" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "கோடே த’à®à®µà®°à®¿" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "«Â÷Ä¡óÃ" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "º¢Ä¢" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "கேமரூனà¯" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "º£É¡" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "¦¸¡ÄõÀ¢Â¡" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "காஸà¯à®Ÿà®¾ ரிகா" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "¦¸¡ÄõÀ¢Â¡" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "கேப௠வெரà¯à®Ÿà¯" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "கிறிஸà¯à®¤à¯à®®à®¸à¯ தீவà¯" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "சைபà¯à®°à®¸à¯" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "¦¼¡Ã¢É¢ì¸ý ÌÊÂÃÃ" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "§º÷ÃÉ¢" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "ஜிபெளடà¯à®Ÿà®¿" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "¦¼ýá÷ì" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Õ§Ãɢ¡" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "¦¼¡Ã¢É¢ì¸ý ÌÊÂÃÃ" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Àø§¸Ã¢Â¡" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "®ì¦Å§¼¡÷" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "±Ã§¼¡É¢Â¡" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "±¸¢ôÃ" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "மேறà¯à®•௠சஹாரா" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "எரிடà¯à®°à®¿à®¯à®¾" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "æÀ¢ý" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "±Ã§¼¡É¢Â¡" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "À¢ýÄ¡óÃ" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "ஃபிஜி" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ஃபாலà¯à®•à¯à®²à®¾à®¨à¯à®¤à¯ தீவà¯à®•ள௠(மாலà¯à®µà®¿à®©à®¾à®¸à¯)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "மைகà¯à®°à¯‡à®¾à®©à¯‡à®šà®¿à®¯ நாடà¯à®•ளின௠கூடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "«Â÷Ä¡óÃ" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "À¢Ã¡ýÃ" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "பிரானà¯à®¸à¯ மாநகரà¯" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "º£É¡" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "யà¯à®©à¯ˆà®Ÿà¯†à®Ÿà¯ கிஙà¯à®Ÿà®®à¯" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "¸¢¦Ãɼ¡" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "¦º÷À¢Â¡" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "À¢¦Ãýî " #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "§º÷ÃÉ¢" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "º£É¡" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "ஜிபà¯à®°à®¾à®²à¯à®Ÿà®°à¯" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "¸¢¦Ãɼ¡" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "ƒº¦Ãö측" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ÌÅ¡ò¾Ã¡Ä¡" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "காடேலூபà¯" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "ஈகà¯à®µà®Ÿà¯‡à®¾à®°à®¿à®¯à®²à¯ கினியா" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "¸¢Ã£Ã" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "தென௠ஜியாரà¯à®œà®¿à®¯à®¾ மறà¯à®±à¯à®®à¯ தென௠சானà¯à®Ÿà¯à®µà®¿à®šà¯ தீவà¯à®•ளà¯" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "ÌÅ¡ò¾Ã¡Ä¡" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "ÌÅ¡ò¾Ã¡Ä¡" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "கினியா-பிசாவà¯" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "º£É¡" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "ஹாங௠காஙà¯" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "ஹேரà¯à®Ÿà¯ தீவ௠மறà¯à®±à¯à®®à¯ மெகà¯à®Ÿà¯†à®¾à®©à®¾à®²à¯à®Ÿà¯ தீவà¯à®•ளà¯" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "¬ñÎáŠÃ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "̦á§Åº¢Â¡" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "ஹைடà¯à®Ÿà®¿" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "¬í§¸Ã¢" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "­ó§¾¡É£º¢Â¡" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "«Â÷Ä¡óÃ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "­Ã§Ãø" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "­ó¾¢Â¡" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "பிரிடà¯à®Ÿà®¿à®·à¯ இநà¯à®¤à¯à®®à®¾à®•௠கடல௠எலà¯à®²à¯ˆ" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "®Ã¡ì" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "®Ã¡ì" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "³ÃÄ¡óÃ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "­ò¾¡Ä¢" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "ƒº¦Ãö측" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "§Â¡÷¾¡ý" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ºôÀ¡ý" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "கெனà¯à®¯à®¾" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "¾¡öÅ¡ý" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "¦¸¡ÄõÀ¢Â¡" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "கிரிபாடà¯à®Ÿà®¿" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "கோமரோஸà¯" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "¦ºÂ¢ý𠸢ðà & ¦¿Å¢Ã" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "வட கொரியா" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "¦¾ý ¬ôâ측" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "கà¯à®µà¯ˆà®¤à¯" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "«Â÷Ä¡óÃ" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "¾¡öÅ¡ý" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "லாவோ மகà¯à®•ள௠ஜனநாயக கà¯à®Ÿà®¿à®¯à®°à®šà¯" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "லெபனானà¯" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "¦ºýð 溢¡" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "லிசà¯à®šà®©à¯à®¸à¯à®Ÿà¯†à®¯à®¿à®©à¯" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "¦º÷À¢Âý" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "¦º÷À¢Â¡" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "லெசோதà¯à®¤à¯‡à®¾" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Ä¢òçÅɢ¡" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Äìºõ§À¡÷ì" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ÄðŢ¡" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "¦º÷À¢Â¡" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "மொராகà¯à®•ோ" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "áø¼¡" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "çġšì" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "மாஙà¯à®•ோ" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "சான௠மரினோ" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "மடகாஸà¯à®•à®°à¯" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "«Â÷Ä¡óÃ" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Ả§¼¡É¢Â¡" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "áø¼¡" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Àɡá" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "மஙà¯à®•ோலியா" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "áø¼¡" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "வட மாரியானா தீவà¯à®•ளà¯" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Ä¢òçÅɢ¡" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Ä¢òçÅɢ¡" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "மானà¯à®Ÿà¯à®šà¯†à®°à¯à®°à®Ÿà¯" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "áø¼¡" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Ä¢òçÅɢ¡" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "áø¼¡" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "áø¼¡" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "¦Ã캢§¸¡" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "áø¼¡" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "மொசாமà¯à®ªà®¿à®•à¯" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ƒº¦Ãö측" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Ả§¼¡É¢Â¡" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "¦º÷À¢Â¡" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "«Â÷Ä¡óÃ" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "¦º÷À¢Â¡" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Àá̧Å" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "¦¿¾÷Ä¡óÃ" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "¿¡÷§Å" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "நேபாளமà¯" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "நவà¯à®°à¯" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "நியூ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "¿¢äº¢Ä¡óÃ" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "§º÷Ãý" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Àɡá" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "¦ÀÕ" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "பிரெஞà¯à®šà¯ பாலினேசியா" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "பாபà¯à®ªà¯à®µà®¾ நியூ கினியா" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "ஃபிலிபà¯à®ªà¯ˆà®©à¯à®¸à¯" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "¾¡öÅ¡ý" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "§À¡Ä¡óÃ" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "செயினà¯à®Ÿà¯ பியரி மறà¯à®±à¯à®®à¯ மிகà¯à®µà®²à®¾à®©à¯" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "பிடà¯à®•ெயà¯à®°à¯à®©à¯" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "பியூரà¯à®Ÿà¯‡à®¾ ரிகோ" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "பாலஸà¯à®¤à¯€à®©à®¿à®¯ எலà¯à®²à¯ˆ" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "§À¡÷òøø" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Àá̧Å" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Àá̧Å" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "áø¼¡" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "ரீயூனியனà¯" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Õ§Ãɢ¡" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "¦º÷À¢Âý" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "à®°à®·à¯à®¯ கூடà¯à®Ÿà®°à®šà¯" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "¸É¼¡" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "சவூதி அரேபியா" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "«Â÷Ä¡óÃ" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "செயà¯à®šà¯†à®²à®¸à¯" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "ü¡ý" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ÃÅ£¼ý" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "சிஙà¯à®•பà¯à®ªà¯‚à®°à¯" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "செயினà¯à®Ÿà¯ ஹெலனா" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "çġŢɢ¡" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "ஸà¯à®µà®¾à®²à¯à®ªà®¾à®°à¯à®Ÿà¯ மறà¯à®±à¯à®®à¯ ஜான௠மேயனà¯" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "çġš츢Â" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "ஸியரா லியோனà¯" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "சான௠மரினோ" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "செனகலà¯" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Õ§Ãɢ¡" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "¦º÷À¢Â¡" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "சாவோ டோம௠மறà¯à®±à¯à®®à¯ பரினà¯à®šà®¿à®ªà¯‡" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "±ø º¡øÅ§¼¡÷" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "¦º÷À¢Â¡" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "¾¡öÄ¡óÃ" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "டரà¯à®•à¯à®¸à¯ மறà¯à®±à¯à®®à¯ கெயà¯à®•ோஸ௠தீவà¯à®•ளà¯" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "º£É¡" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "பிரெஞà¯à®šà¯ தென௠எலà¯à®²à¯ˆà®•ளà¯" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "டோகோ" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "¾¡öÄ¡óÃ" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "¾¡öÅ¡ý" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "டோகேலாவà¯" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "¾¡öÅ¡ý" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ú¢Â¡" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "டோஙà¯à®•ா" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "கிழகà¯à®•௠தைமூரà¯" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ÃÕ츢" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ðâɢ¼¡ð & ¦¼¡À¡§¸¡" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Ãæ" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "¾¡öÅ¡ý" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "டானà¯à®šà®¾à®©à®¿à®¯à®¾" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "¯ì¦Ãöý" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "¸É¼¡" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "³ì¸¢Â «¦Ãâì¸ ¿¡Î¸û" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "³ì¸¢Â «¦Ãâì¸ ¿¡Î¸û" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "¯Õ̧Å" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "¾¡öÅ¡ý" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "ஹோலி ஸீ (வாடிகன௠நகர மாகாணமà¯)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "¦ºÂ¢ýð Å¢ý¦ºýð & ¸¢¦ÃÉËý¸û" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "¦ÅÉ¢ÃÅÄ¡" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "À¢ýÄ¡óÃ" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "À¢ýÄ¡óÃ" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "வானà¯à®µà®¾à®Ÿà¯‚" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "வாலிஸ௠மறà¯à®±à¯à®®à¯ ஃபà¯à®Ÿà¯‚னா" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "¦¸¡ÄõÀ¢Â¡" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "யேமனà¯" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "மயோடà¯" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "¦¾ý ¬ôâ측" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "ƒº¦Ãö측" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ஜிமà¯à®ªà®¾à®ªà¯à®µà¯‡" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s %s஠வழகà¯à®•à®±à¯à®±à®¤à®¾à®•à¯à®•à¯à®•ிறதà¯:" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "கோபà¯à®ªà¯ˆ %1 திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "%s கணà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "%s கணà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "இணைகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯ பொழà¯à®¤à¯ கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "உளà¯à®³à¯€à®Ÿà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ மொழி: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "தொலைதூரமà¯" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "«º÷¨Àº¡ý" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "º£É" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "அகோலி" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "அடாஙà¯à®®à¯‡" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "அடிகே" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "ஆபà¯à®ªà®¿à®°à®¿à®•à¯à®•-ஆசிய (மறà¯à®±à®µà¯ˆ)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "ஆபà¯à®°à®¿à®¹à®¿à®²à®¿" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "¬·À⸡ýÃ" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "அயà¯à®©à¯" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "¬·À⸡ýÃ" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "அகà¯à®•டியனà¯" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "«º÷¨Àº¡ý" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "அலà¯à®¯à¯‚டà¯" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "¦¾ý ¬ôâ측" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "«Ã¡À¢ì" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ஆஙà¯à®•ிலமà¯, பà¯à®°à®¾à®¤à®© (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "«Ã¡À¢ì" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "«Ã¡À¢ì" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "அரகோனீஸà¯" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "¬÷¦ºƒýÊÉ¡" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Ä¢òçÅɢ¡" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "அரபாஹோ" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "செயறà¯à®•ை (மறà¯à®±à®µà¯ˆ)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "அரவாகà¯" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "அசாமிய" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "¬Ãò¾¢Ã¢Â¡" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "«Ã¡À¢ì" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "அவெஸà¯à®Ÿà®¾à®©à¯" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "அவதி" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Àɡá" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "«º÷¨Àº¡É¢" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "¸É¼¡" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "பாமிலேகே மொழிகளà¯" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "பஷà¯à®•ீரà¯" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "பலà¯à®šà¯à®šà®¿" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "ƒº¦Ãö측" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "º£É" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "À¡ÃìÌ" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "À¡ÃìÌ" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "பாலà¯à®Ÿà®¿à®•௠(மறà¯à®±à®µà¯ˆ)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "பெஜா" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "¦ÀÄ¡åÃ" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "பெமà¯à®ªà®¾" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "¦Àøº¢Âõ" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "பெரà¯à®ªà¯†à®°à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "போஜà¯à®ªà¯à®°à®¿" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "À¢§Ãº¢ø" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "பைகோலà¯" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "பினி" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "பிஸà¯à®²à®¾à®®à®¾" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "சிகà¯à®šà®¿à®•ா" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "பனà¯à®Ÿà¯ (மறà¯à®±à®µà¯ˆ)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "¯Õ§ÃÉ¢Â" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "À¢§Ãº¢ø" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "À¢Ã¢¼¡ý" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "­ó§¾¡É£º¢Â¡" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Àø§¸Ã¢Â¡" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "º£É" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Àø§¸Ã¢Âý" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "பரà¯à®®à®¿à®¯" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Àø§¸Ã¢Âý" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "º£É¡" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "மதà¯à®¤à®¿à®¯ அமெரிகà¯à®• இநà¯à®¤à®¿à®¯ (மறà¯à®±à®µà¯ˆ)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "áµÃ¢" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "¦¸¼Ä¡ý" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "காகாசியன௠(மறà¯à®±à®µà¯ˆ)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "செபà¯à®µà®¾à®©à¯‡à®¾" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "செலà¯à®Ÿà®¿à®•௠(மறà¯à®±à®µà¯ˆ)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "சமாரோ" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "º£É¡" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "¦ºì" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "சகடாயà¯" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "º£É" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "º£É" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "áµÃ¢" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "சினூக௠ஜாரà¯à®•னà¯" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "சோகà¯à®Ÿà®¾à®µà¯" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "சிபà¯à®¯à¯‚யானà¯" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "செரோகà¯à®•ீ" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "சரà¯à®šà¯ ஸà¯à®²à®¾à®µà®¿à®•à¯" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "சà¯à®µà®¾à®·à¯" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "செயனà¯" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "̦á§Åº¢Â¡" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "³Ã¢Ã" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "̦á§Åº¢Âý" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "கà¯à®°à®¿à®¯à¯‡à®¾à®²à®¸à¯ மறà¯à®±à¯à®®à¯ பிடà¯à®œà®¿à®©à¯à®¸à¯, ஆஙà¯à®•ிலம௠சாரà¯à®¨à¯à®¤à®¤à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "கà¯à®°à®¿à®¯à¯‡à®¾à®²à®¸à¯ மறà¯à®±à¯à®®à¯ பிடà¯à®œà®¿à®©à¯à®¸à¯, பிரெஞà¯à®šà¯ சாரà¯à®¨à¯à®¤à®¤à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "கà¯à®°à®¿à®¯à¯‡à®¾à®²à®¸à¯ மறà¯à®±à¯à®®à¯ பிடà¯à®œà®¿à®©à¯à®¸à¯, போரà¯à®¤à¯à®¤à¯à®•à¯à®•ீசிய மொழி சாரà¯à®¨à¯à®¤à®¤à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "¸¢§Ãì¸" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "கà¯à®°à®¿à®®à®¿à®¯à®©à¯ டாரà¯à®Ÿà®°à¯" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "கà¯à®°à®¿à®¯à¯‡à®¾à®²à®¸à¯ மறà¯à®±à¯à®®à¯ பிடà¯à®œà®¿à®©à¯à®¸à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "கசà¯à®ªà®¿à®¯à®©à¯" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "கà¯à®·à®¿à®Ÿà®¿à®•௠(மறà¯à®±à®µà¯ˆ)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "¦ºì" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "டகோடா" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "§¼É¢Ã" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "டாரà¯à®•à¯à®µà®¾" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "டாயகà¯" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "டெலாவேரà¯" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "ஸà¯à®²à¯‡à®µà¯ (அதபாஸà¯à®•னà¯)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "டாகà¯à®°à®¿à®ªà¯" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Õ§Ãɢ¡" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "டிவேஹி" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "áµÃ¢" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "திராவிட (மறà¯à®±à®µà¯ˆ)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "¦º÷À¢Âý" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Àá̧Å" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "டசà¯à®šà¯, மதà¯à®¤à®¿à®¯ (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "¼îÃ" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "டியூலா" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "ஜாஙà¯à®•ா" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "ஈஃபிகà¯" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "எகிபà¯à®¤à¯ (பà¯à®°à®¾à®¤à®©)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "எகாஜகà¯" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "எலாமைடà¯" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "§¼É¢Ã" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ஆஙà¯à®•ிலமà¯, மதà¯à®¤à®¿à®¯ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "±ÃÀáý§¼¡" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "±Ã§¼¡É¢Â" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "ஈவà¯" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "இவானà¯à®Ÿà¯‡à®¾" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "À¢Ã¡ýÃ" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "«Â÷Ä¡óÃ" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "ஃபனà¯à®Ÿà®¿" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "À¢ýÄ¡óÃ" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ஃபிலிபà¯à®ªà®¿à®©à¯‡à®¾" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "À¢ýÉ¢Ã" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "ஃபினà¯à®©à¯‡à®¾-உகà¯à®°à®¿à®¯à®©à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "ஃபானà¯" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "À¢¦Ãýî " #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "பிரெஞà¯à®šà¯, மதà¯à®¤à®¿à®¯ (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "பிரெஞà¯à®šà¯, பà¯à®°à®¾à®¤à®© (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "À¢Ã¡ýÃ" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "ஃபà¯à®¯à¯‚லா" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "À¢ýÄ¡óÃ" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "ÌÅ¡ò¾Ã¡Ä¡" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "கயோ" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "º£É¡" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ஜெரà¯à®®à®¾à®©à®¿à®¯ (மறà¯à®±à®µà¯ˆ)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "¦º÷À¢Â¡" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "§º÷Ãý" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "¸¢§Ãì¸" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Å¢ÂðɡâÂ" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "áø¼¡" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "³Ã¢Ã" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "­ò¾¡Ä¢Âý" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "மானà¯à®•à¯à®¸à¯" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "ஜெரà¯à®®à®©à¯, மேல௠மதà¯à®¤à®¿à®¯ (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "ஜெரà¯à®®à®©à¯, மேல௠பà¯à®°à®¾à®¤à®© (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "­ó¾¢Â¡" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "கோரனà¯à®Ÿà®¾à®²à¯‡à®¾" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "கோதà¯à®¤à®¿à®•à¯" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "¸¢§Ãì¸" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "கிரேகà¯à®•à®®à¯, பà¯à®°à®¾à®¤à®©(1453 வரை)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "கிரேகà¯à®•à®®à¯, நவீன (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Àø§¸Ã¢Âý" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "கà¯à®œà®°à®¾à®¤à¯à®¤à®¿" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "கà¯à®µà®¿à®šà¯ இனà¯" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "ஹைடா" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ÄðÅ¢Âý" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "ஹெளசா" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "ஹவாயனà¯" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "¸£ôê" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "¸£ôê" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "ஹிலிகைனானà¯" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "ஹிமாசà¯à®šà®²à®¿" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "­ó¾¢Â¡" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "ஹிடைடà¯" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "ஹà¯à®®à®¾à®™à¯" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "ஹிரி மோடà¯à®Ÿà¯" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "¦º÷À¢Âý" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "«í§¸Ã¢Âý" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "ஹà¯à®¯à¯‚பா" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "®Ã¡ì" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "இகà¯à®ªà¯‡à®¾" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "³ÃÄ¡ó¾¢Â" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "à®à®Ÿà¯‡à®¾" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Ä¢òçÅɢ¡" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "à®à®œà¯‡à®¾" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "இனகà¯à®Ÿà®¿à®Ÿà®Ÿà¯" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "இனà¯à®Ÿà®°à¯à®²à®¿à®™à¯à®µà¯‡" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "இலோகà¯à®•ோ" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "இனà¯à®Ÿà®°à¯à®²à®¿à®™à¯à®•à¯à®µà®¾ (சரà¯à®µà®¤à¯‡à®š தà¯à®£à¯ˆ மொழி கà¯à®´à¯à®®à®®à¯)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "இனà¯à®Ÿà®¿à®•௠(மறà¯à®±à®µà¯ˆ)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "­ó§¾¡É£º¢Âý" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "இநà¯à®¤à¯‡à®¾-à®à®°à¯‡à®¾à®ªà¯à®ªà®¿à®¯ (மறà¯à®±à®µà¯ˆ)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "இஙà¯à®•à¯à®·à¯" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "­ó¾¢Â¡" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "இரானிய (மறà¯à®±à®µà¯ˆ)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "­ò¾¡Ä¢Âý" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ÂôÀ¡É¢Â" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "லோஜà¯à®ªà®¾à®©à¯" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ÂôÀ¡É¢Â" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "­ó§¾¡É£º¢Âý" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "«Ã¡À¢ì" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "கரா-கலà¯à®ªà®•à¯" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "காபைலà¯" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "À¢§Ãº¢ø" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "கலாலà¯à®²à®¿à®šà®Ÿà¯" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "ƒº¦Ãö측" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "¸É¼¡" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "¦¸¡Ã¢Âý" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "காஷà¯à®®à¯€à®°à®¿" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Ì÷¾¢Ã" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "áø¼¡" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "¾¡öÅ¡ý" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "கபரà¯à®Ÿà®¿à®¯à®©à¯" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "¾¡ö" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "கொயà¯à®šà®¾à®©à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "கà¯à®®à®°à¯" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "º£É" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "கிகà¯à®¯à¯" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "கினà¯à®¯à®°à¯à®µà®¾à®£à¯à®Ÿà®¾" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "கிரà¯à®•ிஸà¯" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "கிமà¯à®ªà®©à¯à®Ÿà¯" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "¦¸¡Ã¢Âý" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "கோமி" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "காஙà¯à®•ோ" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "¦¸¡Ã¢Âý" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "¦¸¡Ã¢Âý" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "கà¯à®ªà¯†à®²à¯" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "கராசà¯à®šà®¯à¯ - பலà¯à®•ாரà¯" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "கà¯à®°à¯" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Ì÷¾¢Ã" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Àɡá" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "கà¯à®®à®¿à®•à¯" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Ì÷¾¢Ã" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "கà¯à®Ÿà¯‡à®©à®¯à¯" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "ÄðÅ¢Âý" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "¸É¼¡" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "ƒº¦Ãö측" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "லாவோ" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ÄðÅ¢Âý" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ÄðÅ¢Âý" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "லெஸà¯à®•ியனà¯" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Äìºõ§À¡÷ì" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "லிஙà¯à®•லா" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ĢçÅÉ¢Âý" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "மாஙà¯à®•ோ" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "லோசி" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Äìºõ§À¡÷ì" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "லà¯à®ªà®¾-லà¯à®²à¯à®µà®¾" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "லà¯à®ªà®¾-கடாஙà¯à®•ா" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "º£É¡" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "லூயிசெனோ" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "ü¡ý" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "லà¯à®µà¯‡à®¾ (கெனà¯à®¯à®¾ மறà¯à®±à¯à®®à¯ டானà¯à®šà®¾à®©à®¿à®¯à®¾)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "¾¡ö" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Ả§¼¡É¢Â" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "áøËº¢Â" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "áø¼¡" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "áøËº¢Â" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "áø¼¡" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "áø¼¡" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "áø¼¡" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "மானà¯à®Ÿà®¿à®™à¯à®•ோ" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "áµÃ¢" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ஆஸà¯à®Ÿà¯à®°à¯‡à®¾à®©à¯‡à®šà®¿à®¯à®©à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "áµÃ¢" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "áø¼¡" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "áø¼¡" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "மோகà¯à®·à®¾" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Àɡá" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "மெனà¯à®Ÿà¯‡" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "à®à®°à®¿à®·à¯, மதà¯à®¤à®¿à®¯ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "மிகà¯à®®à®¾à®•à¯" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "மினாஙà¯à®•பாவà¯" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "மானà¯-கà¯à®®à®°à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "áø¼¡" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "áøËº¢Â" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "மஞà¯à®šà¯" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "áµÃ¢" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "மொஹாகà¯" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "ÄðÅ¢Âý" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Ả§¼¡É¢Â" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "áµÃ¢" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "à®®à¯à®£à¯à®Ÿà®¾ மொழிகளà¯" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "¸¢§Ãì¸" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Ả§¼¡É¢Â¡" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "áµÃ¢" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "எரà¯à®šà®¿à®¯à®¾" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "நவà¯à®¹à®Ÿà¯à®²à¯" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "வட அமெரிகà¯à®• இநà¯à®¤à®¿à®¯" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "நியபாலிடà¯à®Ÿà®©à¯" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "நவாஜோ" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "நà¯à®Ÿà¯†à®ªà®¿à®²à¯, தெறà¯à®•à¯" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "நà¯à®Ÿà¯†à®ªà®¿à®²à¯, வடகà¯à®•à¯" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "நà¯à®Ÿà¯‡à®¾à®™à¯à®•ா" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "§º÷Ãý" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "áø¼¡" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "நேபால௠பாசா" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "நியாஸà¯" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "நைகரà¯-காரà¯à®Ÿà¯‡à®¾à®ƒà®ªà®¾à®©à®¿à®¯à®©à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "¦º÷À¢Â¡" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "நாரà¯à®µà¯‡à®œà®¿à®¯ நைநாரà¯à®¸à¯à®•à¯" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "நாரà¯à®µà¯‡à®œà®¿à®¯ போகà¯à®®à®¾à®²à¯" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "நோகயà¯" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "நாரà¯à®¸à¯, பà¯à®°à®¾à®¤à®©" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "¿¡÷§Å" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "வட சோதோ" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "பாரமà¯à®ªà®°à®¿à®¯ நெவாரி" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "º¢Ä¢" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "நயாமà¯à®µà¯‡à®¸à®¿" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "நயானà¯à®•ோலà¯" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "நயோரோ" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "நஸீமா" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ஆகà¯à®¸à®¿à®Ÿà®©à¯ (1500கà¯à®•à¯à®ªà¯à®ªà®¿à®©à¯)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "â€à®“ஜிபà¯à®µà®¾" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "¦º÷À¢Â¡" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "ஓரோமோ" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ஓசேஜà¯" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "¯Õº¢Â" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "தà¯à®°à¯à®•à¯à®•ி, ஓடà¯à®Ÿà¯‡à®¾à®®à®©à¯ (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "பாபà¯à®ªà¯à®µà®©à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "«í§¸Ã¢Âý" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Àá̧Å" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Àá̧Å" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Àɡá" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "பாபà¯à®ªà®¿à®¯à®¾à®®à¯†à®©à¯à®Ÿà¯‡à®¾" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Àá̧Å" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "பாரசீகமà¯, பà¯à®°à®¾à®¤à®© (ca.600-400 கி.à®®à¯.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "¦º÷À¢Âý" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ஃபிலிபà¯à®ªà¯ˆà®©à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "çġţɢÂý" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "áø¼¡" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "§À¡Ä¢Ã" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "­ó§¾¡É£º¢Âý" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "§À¡÷òÃ츣º¢Â" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "பà¯à®°à®¾à®µà¯†à®©à¯à®•லà¯, பà¯à®°à®¾à®¤à®© (1500 வரை)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "பà¯à®·à¯à®Ÿà¯‡à®¾" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "கà¯à®µà¯†à®šà¯à®šà¯à®µà®¾" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "¾¡öÅ¡ý" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "ºôÀ¡ý" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "ரரோடோஙà¯à®•னà¯" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "ரொமானà¯à®¸à¯ (மறà¯à®±à®µà¯ˆ)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "ரேடோ-ரொமானà¯à®¸à¯" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Õ§Ãɢ¡" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "¯Õ§ÃÉ¢Â" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "­ó¾¢Â¡" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "¯Õº¢Â" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "¸É¼¡" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "ü¡ý" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "யாகà¯à®Ÿà¯" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "பதென௠அமெரிகà¯à®• இநà¯à®¤à®¿à®¯ (மறà¯à®±à®µà¯ˆ)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "சமாரிடà¯à®Ÿà®©à¯ அராமைகà¯" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "சமஸà¯à®•ிரà¯à®¤à®®à¯" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "சசாகà¯" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "சநà¯à®¤à®¾à®²à®¿" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "¦º÷À¢Âý" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "சிசிலியனà¯" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "ஸà¯à®•ாடà¯à®¸à¯" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "̦á§Åº¢Âý" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "செலà¯à®•பà¯" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "செமிடிக௠(மறà¯à®±à®µà¯ˆ)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "à®à®°à®¿à®·à¯, பà¯à®°à®¾à®¤à®© (900 வரை)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "சஙà¯à®•ேத மொழிகளà¯" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "ü¡ý" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "சைடாமோ" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "சிஙà¯à®•ளமà¯" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "சீன-திபெதà¯à®¤à®¿à®¯ (மறà¯à®±à®µà¯ˆ)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "ஸà¯à®²à®¾à®µà®¿à®•௠(மறà¯à®±à®µà¯ˆ)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "çġšì" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "çġţɢÂý" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "தென௠சாமி" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "வட சாமி" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "சாமி மொழிகள௠(மறà¯à®±à®µà¯ˆ)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "லூலெ சாமி" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "இனாரி சாமி" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "சமோவனà¯" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "ஸà¯à®•ோலà¯à®Ÿà¯ சாமி" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "çġŢɢ¡" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "சிநà¯à®¤à®¿" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "çġţɢÂý" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "ü¡ý" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Õ§Ãɢ¡" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "சோஙà¯à®•ாயà¯" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "சோதோ, தெறà¯à®•à¯" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ÃÀ¡É¢Â" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Ä¢òçÅɢ¡" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "செரரà¯" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "நிலோ-சஹாரன௠(மறà¯à®±à®µà¯ˆ)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "æÀ¢ý" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "சà¯à®•à¯à®®à®¾" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "ü¡ý" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "சà¯à®šà¯" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "¦º÷À¢Âý" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "¾¡öÄ¡óÃ" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ÃÅ£ÊÃ" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "¦º÷À¢Â¡" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "¾¡öÅ¡ý" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "தாய௠(மறà¯à®±à®µà¯ˆ)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "¾Ã¢ú" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "áø¼¡" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "¦Àøº¢Âõ" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "டிமà¯à®©à¯‡" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "டெரனோ" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "டேடமà¯" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "¾¡öÅ¡ý" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "டகலோகà¯" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "¾¡ö" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "¾¡öÅ¡ý" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "டைகà¯à®°à¯‡" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "¦º÷À¢Â¡" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "டைவà¯" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "கà¯à®³à®¿à®™à¯à®•ானà¯" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "டà¯à®²à®¿à®™à¯à®•ிடà¯" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "டமாஷேகà¯" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "டோஙà¯à®•ா (நியாஸா)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "டோஙà¯à®•ா (டோஙà¯à®•ா தீவà¯à®•ளà¯)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "டோக௠பிசினà¯" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "¯Õº¢Â" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "¾¡öÅ¡ý" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "±Ã§¼¡É¢Â¡" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ÃÕ츢" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "டà¯à®®à¯à®ªà¯à®•ா" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ÃÕ츢Â" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "அலà¯à®Ÿà¯†à®¯à¯à®•௠(மறà¯à®±à®µà¯ˆ)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "டà¯à®µà®¿" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ú¢Â¡" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "உடà¯à®®à®°à¯à®Ÿà¯" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "உகாரிடிகà¯" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "உயà¯à®•ூரà¯" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "¯ì¦Ãöý" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "உமà¯à®ªà®£à¯à®Ÿà¯" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "தீரà¯à®®à®¾à®©à®¿à®•à¯à®• இயலாதவை" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "உரà¯à®¤à¯" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "உஸà¯à®ªà¯†à®•à¯" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "வாயà¯" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Vietnam" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Å¢ÂðɡâÂ" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "வொலாபகà¯" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "வாலà¯à®Ÿà®¿à®•à¯" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "வலாமோ" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Àá̧Å" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "§ÅøÃ" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "§ÅøÃ" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "வாலூனà¯" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "வோலாஃபà¯" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "காலà¯à®®à®¿à®•à¯" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "§º¡º¡" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "யாவோ" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "ÂôÀ¡É¢Â" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "யிடà¯à®Ÿà®¿à®·à¯" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "¦¸¡ÄõÀ¢Â¡" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "¬ŠÃò¾¢§ÃĢ¡" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "ஸாபோடெகà¯" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "¸¢¦Ãɼ¡" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "சà¯à®µà®¾à®™à¯" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "ஸாணà¯à®Ÿà¯‡" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Ãæ" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "சà¯à®©à®¿" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1' காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1' காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "எழà¯à®¤à¯à®µà®¤à®±à¯à®•௠கோபà¯à®ªà¯ˆà®¤à¯ திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "டெஸà¯à®•à¯à®Ÿà®¾à®ªà¯ பொரà¯à®³à¯ˆ '%s' திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "அடைவ௠%1 உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %2." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ஃபà¯à®³à®¾à®ªà¯à®ªà®¿ வடà¯à®Ÿà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ படிபà¯à®ªà®¤à®¿à®²à¯ பிழை" #: zypp/RepoManager.cc:1620 #, fuzzy, c-format, boost-format msgid "Adding repository '%s'" msgstr "மூலஙà¯à®•ள௠சேரà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "செலà¯à®²à®¾à®¤ à®à®±à¯à®±à¯à®®à®¤à®¿ கோபà¯à®ªà¯à®ªà¯†à®¯à®°à¯." #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "மூலஙà¯à®•ள௠சேரà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "டெஸà¯à®•à¯à®Ÿà®¾à®ªà¯ பொரà¯à®³à¯ˆ '%s' திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "செலà¯à®²à®¾à®¤ எலà¯à®Ÿà®¿à®à®ªà®¿ யூஆரà¯à®Žà®²à¯ வினா வரிசை" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "செலà¯à®²à®¾à®¤ எலà¯à®Ÿà®¿à®à®ªà®¿ யூஆரà¯à®Žà®²à¯ வினா அளவீட௠'%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "யூஆரà¯à®Žà®²à¯ பொரà¯à®³à®¿à®©à¯ போலிகையை உரà¯à®µà®¾à®•à¯à®• இயலவிலà¯à®²à¯ˆ" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "செலà¯à®²à®¾à®¤ காலி யூஆரà¯à®Žà®²à¯ பொரà¯à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®°à¯ˆ" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "யூஆரà¯à®Žà®²à¯ உறà¯à®ªà¯à®ªà¯à®•ளை விளகà¯à®• இயலவிலà¯à®²à¯ˆ" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤à®¤à¯" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "கோபà¯à®ªà¯ˆ %1 திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "தெரியாத ஆணை " #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "செலà¯à®²à®¾à®¤ யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s - %s திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "கூறà¯\"%s\"à® à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "சேமிபà¯à®ªà®¿à®Ÿà®¤à¯à®¤à®¿à®²à¯ கோபà¯à®ªà¯ %1 காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "%1 கோபà¯à®ªà®¿à®²à¯ எழà¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 ஒர௠அடைவலà¯à®²." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "சி஠பெயா காலி செயà¯." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "செலà¯à®²à®¾à®¤ URL திடà¯à®Ÿà®®à¯ '%1'." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "டெஸà¯à®•à¯à®Ÿà®¾à®ªà¯ பொரà¯à®³à¯ˆ '%s' திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "அனà¯à®®à®¤à®¿à®•ள௠மறà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "நேரà¯à®®à¯ˆ சோதனையில௠%s பேகà¯à®•ேஜ௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯. அதனை தகவலிறகà¯à®•ம௠செயà¯à®µà®¤à®±à¯à®•௠நீஙà¯à®•ள௠மீணà¯à®Ÿà¯à®®à¯ " "à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•ப௠போகிறீரà¯à®•ளா?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "நேரà¯à®®à¯ˆ சோதனையில௠%s பேகà¯à®•ேஜ௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯. அதனை தகவலிறகà¯à®•ம௠செயà¯à®µà®¤à®±à¯à®•௠நீஙà¯à®•ள௠மீணà¯à®Ÿà¯à®®à¯ " "à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•ப௠போகிறீரà¯à®•ளா?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "அபà¯à®³à¯ˆà®Ÿà¯†à®²à¯à®Ÿà®¾à®†à®°à¯à®ªà®¿à®Žà®®à¯ சோதனை தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "அபà¯à®³à¯ˆà®Ÿà¯†à®²à¯à®Ÿà®¾à®†à®°à¯à®ªà®¿à®Žà®®à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "VAR1 மூல வகை காடà¯à®šà®¿ மாறà¯à®±à®™à¯à®•ள௠அமà¯à®šà®¤à¯à®¤à®¿à®±à¯à®•௠ஆதரவளிபà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "%sலிரà¯à®¨à¯à®¤à¯ %s஠அளிகà¯à®• இயலாதà¯" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "சேமிபà¯à®ªà®¿à®Ÿà®¤à¯à®¤à®¿à®²à¯ கோபà¯à®ªà¯ %1 காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "இதà¯à®¤à¯‡à®µà¯ˆà®¯à¯ˆ இஙà¯à®•ேயே பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "இதà¯à®¤à¯‡à®µà¯ˆà®¯à¯ˆ இஙà¯à®•ேயே பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனால௠அதறà¯à®•௠வேறொர௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ உளà¯à®³à®¤à¯." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "பேகà¯à®•ேஜà¯à®•ளின௠நிறà¯à®µà¯à®¤à®²à¯ˆ நீகà¯à®•à¯à®µà®¤à®±à¯à®•ான ஆணை" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "இநà¯à®¤ இணைபà¯à®ªà¯à®•à¯à®•ான கோரிகà¯à®•ை: " #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆ பிரசà¯à®©à¯ˆà®•ள௠காரணமாக %s ஠நிறà¯à®µ இயலவிலà¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "%s யாரà¯à®®à¯ அளிபà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "சானà¯à®±à®¿à®¤à®´à¯ %1 இலà¯à®²à¯ˆ." #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯ மறà¯à®±à¯à®®à¯ அதன௠நிறà¯à®µà¯à®¤à®²à¯ˆ நீகà¯à®• இயலாதà¯." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "நிறà¯à®µà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s, %sகà¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s஠நிறà¯à®µ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s %sஉடன௠மà¯à®°à®£à¯à®ªà®Ÿà¯à®•ிறதà¯" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s %s஠வழகà¯à®•à®±à¯à®±à®¤à®¾à®•à¯à®•à¯à®•ிறதà¯" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s %s஠வழகà¯à®•à®±à¯à®±à®¤à®¾à®•à¯à®•à¯à®•ிறதà¯" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s %sஉடன௠மà¯à®°à®£à¯à®ªà®Ÿà¯à®•ிறதà¯" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "%s யாரà¯à®®à¯ அளிபà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "%sகà¯à®•௠நிறà¯à®µà®•à¯à®•ூடிய அளிபà¯à®ªà®µà®°à¯à®•ள௠இலà¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "%sகà¯à®•௠நிறà¯à®µà®•à¯à®•ூடிய அளிபà¯à®ªà®µà®°à¯à®•ள௠இலà¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s஠நிறà¯à®µ வேணà¯à®Ÿà®¾à®®à¯" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "%s஠வைதà¯à®¤à¯à®•௠கொளà¯à®³à®µà¯à®®à¯" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "%s஠நிறà¯à®µ வேணà¯à®Ÿà®¾à®®à¯" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "கோரிகà¯à®•ை à®à®±à¯à®•னவே உளà¯à®³à®¤à¯." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "%sகà¯à®•௠நிறà¯à®µà®•à¯à®•ூடிய அளிபà¯à®ªà®µà®°à¯à®•ள௠இலà¯à®²à¯ˆ" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "தொடரà¯à®ªà¯à®³à¯à®³ தீரà¯à®µà¯à®•ளை நிறà¯à®µà®µà¯‡à®¾ அலà¯à®²à®¤à¯ நீகà¯à®•வோ வேணà¯à®Ÿà®¾à®®à¯" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனால௠அதறà¯à®•௠வேறொர௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ உளà¯à®³à®¤à¯." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "அத௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ மாறà¯à®±à®•à¯à®•ூடà¯à®®à¯†à®©à¯à®±à®¾à®²à¯à®®à¯ %s஠நிறà¯à®µà®µà¯à®®à¯" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s %s஠வழகà¯à®•à®±à¯à®±à®¤à®¾à®•à¯à®•à¯à®•ிறதà¯" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "%sலிரà¯à®¨à¯à®¤à¯ %s தகவலிறகà¯à®•ம௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "நிறà¯à®µà¯à®¤à®²à¯" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "நிறைவேறà¯à®±à¯" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "விசை எனà¯à®•ிரிபà¯à®Ÿà¯ செயà¯à®¯à¯à®®à¯à®ªà¯‡à®¾à®¤à¯ பிழை." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿà¯à®³à¯à®³à®ªà®Ÿà®¿ நிறà¯à®µà¯à®¤à®²à¯ இடையில௠நிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "ஹாலà¯à®•ானà¯à®Ÿà¯†à®•à¯à®¸à¯à®Ÿà¯ இணைகà¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "ஹாலà¯à®Ÿà®¿à®°à¯ˆà®µà¯ தà¯à®µà®•à¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "ஹாலà¯à®µà®¾à®²à¯à®¯à¯‚ம௠தà¯à®µà®•à¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "டிபஸ௠இணைபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®• இயலவிலà¯à®²à¯ˆ" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: ஆல௠லைபால௠உளà¯à®³à®Ÿà®•à¯à®•தà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®• இயலவிலà¯à®²à¯ˆ" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: ஆல௠டிபஸ௠இணைபà¯à®ªà¯ˆ அமைகà¯à®• இயலவிலà¯à®²à¯ˆ" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "HAL உளà¯à®³à®Ÿà®•à¯à®•தà¯à®¤à¯ˆ தà¯à®µà®•à¯à®• இயலவிலà¯à®²à¯ˆ -- ஹாலà¯à®Ÿà¯ இயகà¯à®•தà¯à®¤à®¿à®²à¯ இலà¯à®²à¯ˆà®¯à®¾?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "சிடிரோம௠டிரைவ௠அலà¯à®²" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s:கà¯à®•ாக உளà¯à®³à®®à¯ˆà®¤à¯à®¤à®²à¯ கோபà¯à®ªà¯à®•ள௠மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®©" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "%s ஆக ஆரà¯à®ªà®¿à®Žà®®à¯ சேமிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, ஆனால௠வேறà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆ நிரà¯à®£à®¯à®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, fuzzy, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "%s ஆக ஆரà¯à®ªà®¿à®Žà®®à¯ சேமிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯.\n" "வேறà¯à®ªà®¾à®Ÿà¯à®•ளின௠மà¯à®¤à®²à¯ 25 வரிகள௠இஙà¯à®•à¯à®³à¯à®³à®©:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "%s ஆக ஆரà¯à®ªà®¿à®Žà®®à¯ உரà¯à®µà®¾f;கபà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, ஆனால௠வேறà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆ நிரà¯à®£à®¯à®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, fuzzy, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "%s ஆக ஆரà¯à®ªà®¿à®Žà®®à¯ உரà¯à®µà®¾à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯.\n" "வேறà¯à®ªà®¾à®Ÿà¯à®•ளின௠மà¯à®¤à®²à¯ 25 வரிகள௠இஙà¯à®•à¯à®³à¯à®³à®©:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "கூடà¯à®¤à®²à¯ ஆரà¯à®ªà®¿à®Žà®®à¯ அவà¯à®Ÿà¯à®ªà¯à®Ÿà¯:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "%s மறà¯à®ªà®¿à®°à®¤à®¿ உரà¯à®µà®¾à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "உளà¯à®³à¯€à®Ÿà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "உளà¯à®³à¯€à®Ÿà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "உளà¯à®³à¯€à®Ÿà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "மியூடெகà¯à®¸à¯ பணà¯à®ªà¯à®•ளை தà¯à®µà®•à¯à®• இயலாதà¯" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "எதிரà¯à®ªà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®¯à¯à®³à¯à®³ மியூடெகà¯à®¸à¯ பணà¯à®®à®ª அமைகà¯à®• இயலாதà¯" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "எதிரà¯à®ªà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®¯à¯à®³à¯à®³ மியூடெகà¯à®¸à¯ˆ தà¯à®µà®•à¯à®• இயலாதà¯" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "மியூடெகà¯à®¸à¯ பூடà¯à®Ÿà¯ˆ பெற இயலாதà¯" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "மியூடெகà¯à®¸à¯ பூடà¯à®Ÿà¯ˆ திறகà¯à®• இயலாதà¯" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ %sகà¯à®•௠அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlBase.cc:173 #, fuzzy, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "'%s' செலà¯à®²à®¾à®¤ உறà¯à®ªà¯à®ªà¯" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "செலà¯à®²à®¾à®¤ %s உறà¯à®ªà¯à®ªà¯" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "இநà¯à®¤ யூஆரà¯à®Žà®²à¯à®²à¯à®•à¯à®•௠வினா வரிசை விளகà¯à®•ம௠ஆதரவளிகà¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ ஒர௠தேவைபà¯à®ªà®Ÿà¯à®®à¯ உறà¯à®ªà¯à®ªà®¾à®•à¯à®®à¯" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "செலà¯à®²à®¾à®¤ யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ பயனாளர௠பெயரை அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ கடவà¯à®šà¯à®šà¯†à®¾à®²à¯à®²à¯ˆ அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®¤à¯à®¤à®¿à®±à¯à®•௠ஓர௠ஆதார உறà¯à®ªà¯à®ªà¯ தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ ஓர௠ஆதார உறà¯à®ªà¯à®ªà¯ˆ அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "செலà¯à®²à®¾à®¤ ஆதார உறà¯à®ªà¯à®ªà¯'%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®®à¯ ஒர௠மà¯à®£à¯ˆà®¯à®¤à¯à®¤à¯ˆ அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "செலà¯à®²à®¾à®¤ à®®à¯à®£à¯ˆà®¯ உறà¯à®ªà¯à®ªà¯'%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "யூஆரà¯à®Žà®²à¯ திடà¯à®Ÿà®¤à¯à®¤à®¿à®±à¯à®•௠ஒர௠பாதை பெயர௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "அதிகாரம௠இரà¯à®•à¯à®•à¯à®®à®¾à®©à®¾à®²à¯ தொடரà¯à®ªà¯à®ªà¯ பாதை ஆதரவளிகà¯à®•பà¯à®ªà®Ÿà¯à®µà®¤à®¿à®²à¯à®²à¯ˆ" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ வரிசை, எனà¯à®¯à¯‚எல௠பைட௠கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "செலà¯à®²à®¾à®¤ அளவீடà¯à®Ÿà¯ அடà¯à®•à¯à®•௠பிளவை பிரிகà¯à®•à¯à®®à¯ வடிவமà¯" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "செலà¯à®²à®¾à®¤ அளவீடà¯à®Ÿà¯ வரைவ௠பிளவை பிரிகà¯à®•à¯à®®à¯ வடிவமà¯" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "செலà¯à®²à®¾à®¤ அளவீடà¯à®Ÿà¯ அடà¯à®•à¯à®•௠இணைபà¯à®ªà¯ˆ பிரிகà¯à®•à¯à®®à¯ வடிவமà¯" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "பொத௠விசையை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "நிறà¯à®µà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "%s - %s திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n" #~ msgid "Serbia and Montenegro" #~ msgstr "செரà¯à®ªà®¿à®¯à®¾ மறà¯à®±à¯à®®à¯ மானà¯à®Ÿà®¨à¯†à®•à¯à®°à¯‡à®¾" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "தெரியாத படà¯à®Ÿà®¿à®¯à®²à¯ விரà¯à®ªà¯à®ªà®¤à¯à®¤à¯‡à®°à¯à®µà¯" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளை தீரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s கோபà¯à®ªà®¿à®±à¯à®•௠செகà¯à®šà®®à¯ இலà¯à®²à¯ˆ.\n" #~ "அவà¯à®µà®¾à®±à®¿à®°à¯à®¨à¯à®¤à¯à®®à¯ அகà¯à®•ோபà¯à®ªà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à®¾?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s கோபà¯à®ªà¯, பினà¯à®µà®°à¯à®®à¯ கீயà¯à®Ÿà®©à¯ நேரà¯à®®à¯ˆ சோதனையில௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯:\n" #~ "%s|%s|%s\n" #~ "அவà¯à®µà®¾à®±à®¿à®°à¯à®¨à¯à®¤à¯à®®à¯ அகà¯à®•ோபà¯à®ªà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à®¾?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s கோபà¯à®ªà®¿à®±à¯à®•௠செலà¯à®²à®¾à®¤ ஒர௠செகà¯à®šà®®à¯ உளà¯à®³à®¤à¯.\n" #~ "எதிரà¯à®ªà®¾à®°à¯à®¤à¯à®¤à®¤à¯ %s, கணà¯à®Ÿà®¤à¯ %s\n" #~ "அவà¯à®µà®¾à®±à®¿à®°à¯à®¨à¯à®¤à¯à®®à¯ அகà¯à®•ோபà¯à®ªà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à®¾?" #, fuzzy #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s கோபà¯à®ªà®¿à®±à¯à®•௠அறியபà¯à®ªà®Ÿà®¾à®¤ ஒர௠செகà¯à®šà®®à¯ உளà¯à®³à®¤à¯.\n" #~ "அவà¯à®µà®¾à®±à®¿à®°à¯à®¨à¯à®¤à¯à®®à¯ அகà¯à®•ோபà¯à®ªà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à®¾?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "%s கோபà¯à®ªà¯ கையொபà¯à®ªà®®à®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.\n" #~ "அவà¯à®µà®¾à®±à®¿à®°à¯à®¨à¯à®¤à¯à®®à¯ அதனை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à®¾?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "%s கோபà¯à®ªà¯ அறிநà¯à®¤à®¿à®°à®¾à®¤ ஒர௠கீயினால௠கையொபà¯à®ªà®®à®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯:\n" #~ "%s|%s|%s\n" #~ "அவà¯à®µà®¾à®±à®¿à®°à¯à®¨à¯à®¤à¯à®®à¯ அகà¯à®•ோபà¯à®ªà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à®¾?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "நமà¯à®ªà®•தà¯à®¤à®©à¯à®®à¯ˆà®¯à®±à¯à®± கீ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯:\n" #~ "%s|%s|%s\n" #~ "கீயை நமà¯à®ªà®²à®¾à®®à®¾?" #~ msgid "%s remove failed" #~ msgstr "%s நீகà¯à®•à¯à®¤à®²à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "கணதà¯à®¤à¯ˆ மாறà¯à®±à¯" #~ msgid "rpm output:" #~ msgstr "ஆரà¯à®ªà®¿à®Žà®®à¯ அவà¯à®Ÿà¯à®ªà¯à®Ÿà¯:" #~ msgid "%s install failed" #~ msgstr "%s நிறà¯à®µà¯à®¤à®²à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯" #~ msgid "%s installed ok" #~ msgstr "%s நிறà¯à®µà¯à®¤à®²à¯ சரியானதà¯" #~ msgid "%s remove ok" #~ msgstr "%s நீகà¯à®•à¯à®¤à®²à¯ சரியானதà¯" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "இசà¯à®šà®¾à®°à¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®¯à¯ˆ %s அளிகà¯à®•ிறத௠ஆனாலà¯, நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³ பொரà¯à®³à®¿à®©à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ " #~ "மாறà¯à®±à®¿à®µà®¿à®Ÿà¯à®®à¯" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "இசà¯à®šà®¾à®°à¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®¯à¯ˆ %s அளிகà¯à®•ிறத௠ஆனாலà¯, நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³ பொரà¯à®³à®¿à®©à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ " #~ "மாறà¯à®±à®¿à®µà®¿à®Ÿà¯à®®à¯" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "தொடரà¯à®ªà¯à®³à¯à®³ தீரà¯à®µà¯à®•ளை நிறà¯à®µà®µà¯‡à®¾ அலà¯à®²à®¤à¯ நீகà¯à®•வோ வேணà¯à®Ÿà®¾à®®à¯" #~ msgid "Ignore that %s is already set to install" #~ msgstr "â€â€à®à®±à¯à®•னவே நிறà¯à®µà¯à®µà®¤à®±à¯à®•ாக அமைகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³ %s஠பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%sல௠உளà¯à®³ வழகà¯à®•ில௠இலà¯à®²à®¾à®¤ %s஠பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #~ msgid "Ignore this conflict of %s" #~ msgstr "%sன௠மà¯à®°à®£à¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆ பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #~ msgid "Ignore this requirement just here" #~ msgstr "இதà¯à®¤à¯‡à®µà¯ˆà®¯à¯ˆ இஙà¯à®•ேயே பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "அத௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ மாறà¯à®±à®•à¯à®•ூடà¯à®®à¯†à®©à¯à®±à®¾à®²à¯à®®à¯ %s஠நிறà¯à®µà®µà¯à®®à¯" #~ msgid "Install missing resolvables" #~ msgstr "­ò¾¡Ä¢Âý" #~ msgid "Keep resolvables" #~ msgstr "தீரà¯à®µà¯à®•ளை வைதà¯à®¤à¯à®•௠கொளà¯à®³à®µà¯à®®à¯" #~ msgid "Unlock these resolvables" #~ msgstr "இதà¯à®¤à¯€à®°à¯à®µà¯à®•ளைத௠திறகà¯à®•வà¯à®®à¯" #~ msgid "delete %s" #~ msgstr "%s ஠நீகà¯à®•வà¯à®®à¯" #~ msgid "install %s" #~ msgstr "%s஠நிறà¯à®µà®µà¯à®®à¯" #~ msgid "unlock %s" #~ msgstr "%s஠திறகà¯à®•வà¯à®®à¯" #~ msgid "unlock all resolvables" #~ msgstr "­ò¾¡Ä¢Âý" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "கோபà¯à®ªà¯ˆ %1 திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "%u பிரிவை படிபà¯à®ªà®¤à®¿à®²à¯ பிழை." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "இநà¯à®¤ யூஆரà¯à®Žà®²à¯à®²à¯à®•à¯à®•௠பாதை அளவீட௠விளகà¯à®•ம௠ஆதரவளிகà¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "இநà¯à®¤ யூஆரà¯à®Žà®²à¯à®²à¯à®•à¯à®•௠பாதை அளவீட௠விளகà¯à®•ம௠ஆதரவளிகà¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #~ msgid "Software management is already running." #~ msgstr "மெனà¯à®ªà¯†à®¾à®°à¯à®³à¯ நிரà¯à®µà®¾à®•ம௠à®à®±à¯à®•னவே இயகà¯à®•தà¯à®¤à®¿à®²à¯à®³à¯à®³à®¤à¯." #~ msgid "%s is replaced by %s" #~ msgstr "%s %sஆல௠மாறà¯à®±à®¿à®¯à®®à¯ˆà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #~ msgid "%s replaced by %s" #~ msgstr "%s %sஆல௠மாறà¯à®±à®¿à®¯à®®à¯ˆà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "இதà¯à®¤à¯€à®°à¯à®µà¯à®•ள௠அமைபà¯à®ªà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ நீகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯" #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "அத௠இனà¯à®©à®®à¯à®®à¯ தேவைபà¯à®ªà®Ÿà¯à®µà®¤à®¾à®²à¯, %s நீகà¯à®•பà¯à®ªà®Ÿ மாடà¯à®Ÿà®¾à®¤à¯" #~ msgid "Invalid information" #~ msgstr "செலà¯à®²à®¾à®¤ தகவலà¯" #~ msgid "%s is needed by other resolvables" #~ msgstr "மறà¯à®± தீரà¯à®µà¯à®•ளà¯à®•à¯à®•௠%s தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%sகà¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®µà®¤à¯:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s மறà¯à®± தீரà¯à®µà¯à®•ளà¯à®Ÿà®©à¯ à®®à¯à®°à®£à¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%sஉடன௠மà¯à®°à®£à¯à®ªà®Ÿà¯à®µà®¤à¯:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s மறà¯à®± தீரà¯à®µà¯à®•ளை வழகà¯à®•à®±à¯à®±à®¤à®¾à®•à¯à®•à¯à®•ிறதà¯" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "இதà¯à®¤à¯€à®°à¯à®µà¯à®•ள௠அமைபà¯à®ªà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ நீகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯" #~ msgid "%s depends on other resolvables" #~ msgstr "%s மறà¯à®± தீரà¯à®µà¯à®•ளை சாரà¯à®¨à¯à®¤à¯à®³à¯à®³à®¤à¯" #~ msgid "%s depends on %s" #~ msgstr "%s %s஠சாரà¯à®¨à¯à®¤à¯à®³à¯à®³à®¤à¯" #~ msgid "%s depends on:%s" #~ msgstr "%s %s஠சாரà¯à®¨à¯à®¤à¯à®³à¯à®³à®¤à¯:" #~ msgid "Child of" #~ msgstr "இதன௠உரà¯à®µà®¾à®•à¯à®•à®®à¯" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "இதà¯à®¤à¯‡à®µà¯ˆà®¯à¯ˆ பூரà¯à®¤à¯à®¤à®¿ செயà¯à®¯à¯à®®à¯ ஆதாரம௠எதà¯à®µà¯à®®à¯ இலà¯à®²à¯ˆ" #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "இதà¯à®¤à¯€à®°à¯à®µà®¿à®©à¯ மேலே மறà¯à®±à¯à®®à¯ கீழே விளகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³ பிரசà¯à®©à¯ˆà®•ளà¯, அனைதà¯à®¤à¯ சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளையà¯à®®à¯ " #~ "தீரà¯à®•à¯à®•கà¯à®•ூடியவை அலà¯à®²" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%s ஠நிறà¯à®µ இயலவிலà¯à®²à¯ˆ à®à®©à¯†à®©à®¿à®²à¯ அத௠%s உடன௠மà¯à®°à®£à¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s நிறà¯à®µà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ மறà¯à®±à¯à®®à¯ அத௠நிறà¯à®µ இயலாததாக கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s தீரà¯à®•à¯à®•பà¯à®ªà®Ÿà®¾à®¤ தேவைகளைக௠கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #~ msgid "%s has missing dependencies" #~ msgstr "%s காணபà¯à®ªà®Ÿà®¾à®¤ சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளைக௠கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "காணபà¯à®ªà®Ÿà®¾à®¤ சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ள௠%s஠காரணமாக நிறà¯à®µ இயலாதà¯" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளை %s பூரà¯à®¤à¯à®¤à®¿ செயà¯à®¯à¯à®®à¯ ஆனால௠நிறà¯à®µà¯à®¤à®²à¯ நீகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®µà®¿à®Ÿà¯à®®à¯" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "%s சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளை %s பூரà¯à®¤à¯à®¤à®¿ செயà¯à®¯à¯à®®à¯ ஆனால௠உஙà¯à®•ள௠அமைபà¯à®ªà®¿à®²à¯ வைகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯" #~ msgid "No need to install %s" #~ msgstr "%s஠நிறà¯à®µà®¤à¯ தேவையிலà¯à®²à¯ˆ" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "%sன௠சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளை பூரà¯à®¤à¯à®¤à®¿ செயà¯à®µà®¤à®±à¯à®•௠%s஠நிறà¯à®µ இயலவிலà¯à®²à¯ˆ" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "%sன௠சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளை பூரà¯à®¤à¯à®¤à®¿ செயà¯à®µà®¤à®±à¯à®•௠%s஠நிறà¯à®µ இயலவிலà¯à®²à¯ˆ" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "அத௠இனà¯à®©à®®à¯à®®à¯ தேவைபà¯à®ªà®Ÿà¯à®µà®¤à®¾à®²à¯, %s நீகà¯à®•பà¯à®ªà®Ÿ மாடà¯à®Ÿà®¾à®¤à¯" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%sà® %s வழகà¯à®•à®±à¯à®±à®¤à®¾à®•à¯à®•ிவிடà¯à®®à¯. ஆனால௠%s஠நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ à®à®©à¯†à®©à®¿à®²à¯ அத௠பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "%s஠நிறà¯à®µ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ à®à®©à¯†à®©à®¿à®²à¯ அத௠மà¯à®°à®£à®¾à®©à®¤à¯" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s உடன௠உளà¯à®³ à®®à¯à®°à®£à¯à®ªà®¾à®Ÿà¯ காரணமாக %sன௠நிறà¯à®µà¯à®¤à®²à¯ˆ நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "%s஠பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à¯à®®à¯à®ªà¯‡à®¾à®¤à¯ %sகà¯à®•ாக %s தேவைபà¯â€à®ªà®Ÿà¯à®®à¯à®ªà¯‡à®¾à®¤à¯" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s கà¯à®•ான தேவையை %s இழநà¯à®¤à¯à®³à¯à®³à®¤à¯" #~ msgid ", Action: " #~ msgstr ", செயலà¯à®ªà®¾à®Ÿà¯:" #~ msgid ", Trigger: " #~ msgstr ", தூணà¯à®Ÿà¯à®¤à®²à¯:" #~ msgid "package" #~ msgstr "பேகà¯à®•ேஜà¯" #~ msgid "selection" #~ msgstr "தேரà¯à®µà¯" #~ msgid "pattern" #~ msgstr "வடிவமà¯" #~ msgid "product" #~ msgstr "பொரà¯à®³à¯" #~ msgid "patch" #~ msgstr "பாடà¯à®šà¯" #~ msgid "script" #~ msgstr "உரை" #~ msgid "message" #~ msgstr "தகவலà¯" #~ msgid "atom" #~ msgstr "அணà¯" #~ msgid "system" #~ msgstr "சாதனமà¯" #~ msgid "Resolvable" #~ msgstr "தீரà¯à®µà¯" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "இதà¯à®¤à¯€à®°à¯à®µà¯ à®®à¯à®¯à®±à¯à®šà®¿ செலà¯à®²à®¾à®¤à®¤à®¾à®• கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "இதà¯à®¤à¯€à®°à¯à®µà¯ %s நிறà¯à®µà®•à¯à®•ூடியதலà¯à®² எனà¯à®±à¯ கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®µà®¤à®±à¯à®•ாக திடà¯à®Ÿà®®à®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, ஆனால௠சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆ பிரசà¯à®©à¯ˆà®•ள௠காரணமாக இத௠" #~ "சாதà¯à®¤à®¿à®¯à®®à®¿à®²à¯à®²à¯ˆ." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "நிறà¯à®µà¯à®¤à®²à¯ நீகà¯à®•பà¯à®ªà®Ÿ வேணà¯à®Ÿà®¿à®¯à®¤à¯ எனà¯à®±à¯ à®à®±à¯à®•னவே கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®ªà¯à®ªà®¤à®¾à®²à¯, %s஠நிறà¯à®µà®‡à®¯à®²à®µà®¿à®²à¯à®²à¯ˆ" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "இநà¯à®¤ சாதனதà¯à®¤à®¿à®±à¯à®•௠பொரà¯à®¨à¯à®¤à®¾à®®à®²à¯ இரà¯à®ªà¯à®ªà®¤à®¾à®²à¯, %s஠நிறà¯à®µ இயலவிலà¯à®²à¯ˆ" #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "நிறà¯à®µà¯à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà®¿à®¯à®¤à¯ எனà¯à®±à¯ à®à®±à¯à®•னவே கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®ªà¯à®ªà®¤à®¾à®²à¯, %s ஠நிறà¯à®µ \n" #~ "இயலவிலà¯à®²à¯ˆ" #~ msgid "This would invalidate %s." #~ msgstr "இதà¯, %s஠செலà¯à®²à®¾à®¤à®¤à®¾à®•à¯à®•ிவிடà¯à®®à¯." #~ msgid "Establishing %s" #~ msgstr "%s அமைகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Installing %s" #~ msgstr "%s நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Updating %s to %s" #~ msgstr "%s லிரà¯à®¨à¯à®¤à¯ %sகà¯à®•௠பà¯à®¤à¯à®ªà¯à®ªà®¿à®¤à¯à®¤à®²à¯" #~ msgid "Skipping %s: already installed" #~ msgstr "%s விடபà¯à®ªà®Ÿà¯à®•ிறதà¯: à®à®±à¯à®•வே நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®µà®¿à®Ÿà¯à®Ÿà®¤à¯" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "%sகà¯à®•ான நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿ மாறà¯à®±à¯ அளிபà¯à®ªà®µà®°à¯à®•ள௠இலà¯à®²à¯ˆ" #~ msgid "for %s" #~ msgstr "%sகà¯à®•ாக" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "%sகà¯à®•௠மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿à®•௠கொளà¯à®³à®µà¯à®®à¯, %s஠நீகà¯à®•à¯à®¤à®²à¯ இயலாதà¯" #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனால௠அத௠நிறà¯à®µà¯à®¤à®²à¯ நீகà¯à®•பà¯à®ªà®Ÿà¯à®µà®¤à®±à¯à®•௠திடà¯à®Ÿà®®à®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனாலà¯, %sன௠மறà¯à®±à¯†à®¾à®°à¯ வடிவம௠à®à®±à¯à®•னவே நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®µà®¿à®Ÿà¯à®Ÿà®¤à¯" #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனாலà¯, அதன௠நிறà¯à®µà¯à®¤à®²à¯ˆ நீகà¯à®• இயலாதà¯. கூடà¯à®¤à®²à¯ விவரஙà¯à®•ளà¯à®•à¯à®•à¯, " #~ "அதனைத௠தானாகவே நிறà¯à®µà®® à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•வà¯à®®à¯." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனால௠அத௠பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனால௠அத௠வைகà¯à®•பà¯à®ªà®Ÿà¯à®µà®¤à®±à¯à®•௠திடà¯à®Ÿà®®à®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s, %s஠அளிகà¯à®•ிறதà¯, ஆனால௠அதறà¯à®•௠வேறொர௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ உளà¯à®³à®¤à¯." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "%s கà¯à®•ான %sன௠தேவையைப௠பூரà¯à®¤à¯à®¤à®¿ செயà¯à®¯ இயலாதà¯" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "மறà¯à®±à¯†à®¾à®°à¯ நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³ தீரà¯à®µà¯à®•à¯à®•௠%s தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯, எனவே அதன இணைபà¯à®ªà¯ நீகà¯à®•பà¯à®ªà®Ÿ " #~ "மாடà¯à®Ÿà®¾à®¤à¯." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "மறà¯à®±à¯†à®¾à®°à¯ நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³ தீரà¯à®µà¯à®•à¯à®•௠%s தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯, எனவே அதன இணைபà¯à®ªà¯ நீகà¯à®•பà¯à®ªà®Ÿ " #~ "மாடà¯à®Ÿà®¾à®¤à¯." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "" #~ "%s (%s) மீதான ஒர௠மà¯à®°à®£à¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®±à¯à®•à¯, நிறà¯à®µà®ªà¯à®ªà®Ÿà®ªà¯à®ªà¯‡à®¾à®•à¯à®®à¯ %sன௠நீகà¯à®•ம௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯." #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "%s மீதான ஒர௠மà¯à®°à®£à¯à®ªà®¾à®Ÿà¯ காரணமாக %s நிறà¯à®µà®ªà¯à®ªà®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à®¤à®¾à®• கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #~ msgid "from %s" #~ msgstr "%sலிரà¯à®¨à¯à®¤à¯" #~ msgid " Error!" #~ msgstr "பிழை!" #~ msgid " Important!" #~ msgstr "à®®à¯à®•à¯à®•ியமà¯!" #~ msgid "%s depended on %s" #~ msgstr "%s, %s஠சாரà¯à®¨à¯à®¤à¯à®³à¯à®³à®¤à¯" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s, %sகà¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s, %sகà¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s %sஆல௠மாறà¯à®±à®¿à®¯à®®à¯ˆà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s, %sகà¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "%s part of %s" #~ msgstr "%s, %sன௠ஒர௠பகà¯à®¤à®¿à®¯à®¾à®•à¯à®®à¯" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s, %sகà¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Unable to parse Url authority" #~ msgstr "யூஆரà¯à®Žà®²à¯ அதிகாரதà¯à®¤à¯ˆ விளகà¯à®• இயலவிலà¯à®²à¯ˆ" #~ msgid "Ignore this requirement generally" #~ msgstr "இதà¯à®¤à¯‡à®µà¯ˆà®¯à¯ˆ பொதà¯à®µà®¾à®• பà¯à®±à®•à¯à®•ணிகà¯à®•வà¯à®®à¯" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "மறà¯à®±à¯†à®¾à®°à¯ நிறà¯à®µà®ªà¯à®ªà®Ÿà®ªà¯à®ªà¯‡à®¾à®•à¯à®®à¯ தீரà¯à®µà¯à®•à¯à®•௠%s தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯, எனவே அதன௠இணைபà¯à®ªà¯ நீகà¯à®•பà¯à®ªà®Ÿ " #~ "மாடà¯à®Ÿà®¾à®¤à¯." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "" #~ " பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ நிறà¯à®µà¯à®¤à®²à¯ˆ மேறà¯à®•ொளà¯à®µà®¤à®±à¯à®•௠தேவைபà¯à®ªà®Ÿà¯à®®à¯ கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®• இயலவிலà¯à®²à¯ˆ." #~ msgid "Unable to restore all sources." #~ msgstr "அனைதà¯à®¤à¯ ஆதாரஙà¯à®•ளையà¯à®®à¯ மீடà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "ஒர௠ஆதாரமேனà¯à®®à¯ à®à®±à¯à®•னவே பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, சேமிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ ஆதாரஙà¯à®•ளைமீடà¯à®• இயலாதà¯." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "%sன௠சாரà¯à®ªà¯à®¤à¯à®¤à®©à¯à®®à¯ˆà®•ளை பூரà¯à®¤à¯à®¤à®¿ செயà¯à®µà®¤à®±à¯à®•௠%s நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®µà®¤à®±à¯à®•௠இயலவிலà¯à®²à¯ˆ" #~ msgid "%s dependend on %s" #~ msgstr "%s, %s஠சாரà¯à®¨à¯à®¤à¯à®³à¯à®³à®¤à¯" #~ msgid "Reading index files" #~ msgstr "உளà¯à®³à®Ÿà®•à¯à®• கோபà¯à®ªà¯à®•ள௠படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "கையாபà¯à®ªà®®à®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ repomd.xml கோபà¯à®ªà¯, கையொபà¯à®ª சோதனையில௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." #~ msgid "Reading product from %s" #~ msgstr "%sலிரà¯à®¨à¯à®¤à¯ பொரà¯à®³à¯ படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Reading filelist from %s" #~ msgstr "%sலிரà¯à®¨à¯à®¤à¯ கோபà¯à®ªà¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à¯ படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Reading packages from %s" #~ msgstr "%sலிரà¯à®¨à¯à®¤à¯ பேகà¯à®•ேஜà¯à®•ள௠படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©" #~ msgid "Reading selection from %s" #~ msgstr "%sலிரà¯à®¨à¯à®¤à¯ தேரà¯à®µà¯à®•ள௠படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©" #~ msgid "Reading pattern from %s" #~ msgstr "%sலிரà¯à®¨à¯à®¤à¯ வடிவம௠படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Reading patches index %s" #~ msgstr "பாடà¯à®šà¯à®•ளின௠உளà¯à®³à®Ÿà®•à¯à®•ம௠%s படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Reading patch %s" #~ msgstr "பாடà¯à®šà¯ %s படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "The script file failed the checksum test." #~ msgstr "சோதனைத௠தேரà¯à®µà®¿à®²à¯ உரை கோபà¯à®ªà¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯" #~ msgid "Reading packages file" #~ msgstr "பேகà¯à®•ேஜà¯à®•ள௠கோபà¯à®ªà¯ படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯" #~ msgid "Reading translation: %s" #~ msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯ படிகà¯à®•பà¯à®ªà®Ÿà¯à®•ிறதà¯: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "நேரà¯à®®à¯ˆ சோதனையில௠%s பேகà¯à®•ேஜ௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯. அதனை தகவலிறகà¯à®•ம௠செயà¯à®µà®¤à®±à¯à®•à¯à®¨à¯€à®™à¯à®•ள௠மீணà¯à®Ÿà¯à®®à¯ " #~ "à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•ப௠போகிறீரà¯à®•ளா அலà¯à®²à®¤à¯ நிறà¯à®µà¯à®¤à®²à¯ˆ நிறà¯à®¤à¯à®¤à®¿à®µà®¿à®Ÿà®ªà¯ போகிறீரà¯à®•ளா?" #~ msgid " miss checksum." #~ msgstr "செகà¯à®šà®®à¯ தவறியதà¯." #~ msgid " fails checksum verification." #~ msgstr "செகà¯à®šà®®à¯ சரிபாரà¯à®ªà¯à®ªà®¿à®²à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." #~ msgid "Downloading %s" #~ msgstr "%s தகவலிறகà¯à®•ம௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®•ிறதà¯" libzypp-17.7.0/po/th.po000066400000000000000000003246551334444677500147300ustar00rootroot00000000000000# Thai message file for YaST2 (@memory@). # Copyright (C) 2008 SUSE Linux Products GmbH. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2008-01-04 08:58+0100\n" "Last-Translator: i18n@suse.de\n" "Language-Team: Thai \n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 #, fuzzy msgid "Unknown country: " msgstr "ไม่ทราบประเภทของระเบียน: %1" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "โค้ดภาษา" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "à¹à¸­à¸™à¹‚ดรา" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "สหรัà¸à¸­à¸²à¸«à¸£à¸±à¸šà¹€à¸­à¸¡à¸´à¹€à¸£à¸•ส์" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "อัฟà¸à¸²à¸™à¸´à¸ªà¸–าน" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "à¹à¸­à¸™à¸•ิà¸à¸²à¹à¸¥à¸°à¸šà¸²à¸£à¹Œà¸šà¸¹à¸”า" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "à¹à¸­à¸‡à¸à¸µà¸¥à¸²" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "อาร์เมเนีย" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "เนเธอร์à¹à¸¥à¸™à¸”์ à¹à¸­à¸™à¸—ิลีส" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "à¹à¸­à¸‡à¹‚à¸à¸¥à¸²" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "à¹à¸­à¸™à¸•าร์à¸à¸•ิà¸à¸²" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "อาร์เจนตินา" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "อเมริà¸à¸±à¸™ ซามัว" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ออสเตรีย" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ออสเตรเลีย" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "อรูบา" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "หมู่เà¸à¸²à¸°à¹€à¸­à¹à¸¥à¸™à¸”์" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "อาเซอร์ไบจาน" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "บอสเนียà¹à¸¥à¸°à¹€à¸®à¸­à¸£à¹Œà¹€à¸‹à¹‚à¸à¸§à¸´à¸™à¸²" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "บาร์บาดอส" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "บังคลาเทศ" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "เบลเยียม" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "บูร์à¸à¸´à¸™à¸²à¸Ÿà¸²à¹‚ซ" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "บัลà¹à¸à¹€à¸£à¸µà¸¢" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "บาห์เรน" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "บุรุนดี" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "เบนิน" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "เบอร์มิวดา" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "บรูไนดารุสซาลาม" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "โบลิเวีย" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "บราซิล" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "บาฮามา" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ภูà¸à¸²à¸™" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "หมู่เà¸à¸²à¸°à¸šà¸¹à¹€à¸§à¸—์นอร์ฟอล์ค" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "บอตสวานา" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "เบลารุส" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "เบลีซ" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "à¹à¸„นาดา" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "หมู่เà¸à¸²à¸°à¹‚คคอส (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "คองโà¸" #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "สาธารณรัà¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "สวิตเซอร์à¹à¸¥à¸™à¸”์" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "โà¸à¸•ดิวัวร์" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "หมู่เà¸à¸²à¸°à¸„ุ้à¸" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "ชิลี" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "คาเมรูน" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "จีน" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "โคลัมเบีย" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "คอสตาริà¸à¸²" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "คิวบา" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "à¹à¸«à¸¥à¸¡à¹€à¸§à¸­à¸£à¹Œà¸”ี" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "เà¸à¸²à¸°à¸„ริสต์มาส" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "ไซปรัส" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "สาธารณรัà¸à¹€à¸Šà¹‡à¸" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "เยอรมันนี" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "จิบูติ" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "เดนมาร์à¸" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "โดมินิà¸à¸²" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "สาธารณรัà¸à¹‚ดมินิà¸à¸±à¸™" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "à¹à¸­à¸¥à¸ˆà¸µà¹€à¸£à¸µà¸¢" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "เอà¸à¸§à¸²à¸”อร์" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "เอสโตเนีย" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "อียิปต์" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "ซาฮาร่าตะวันตà¸" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "เอริเทรีย" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "สเปน" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "เอธิโอเปีย" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ฟินà¹à¸¥à¸™à¸”์" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "ฟิจิ" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "หมู่เà¸à¸²à¸°à¸Ÿà¸­à¸¥à¹Œà¸„à¹à¸¥à¸™à¸”์ (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "สหพันธรัà¸à¹„มโครนีเซียสหพันธรัà¸à¹„มโครนีเซีย" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "หมู่เà¸à¸²à¸°à¹à¸Ÿà¹‚ร" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "เมืองหลวงà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "à¸à¸²à¸šà¸­à¸™" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "สหราชอาณาจัà¸à¸£" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "เà¸à¸£à¸™à¸²à¸”า" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "จอร์เจีย" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "เฟรนช์เà¸à¸µà¸¢à¸™à¸²" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "เà¸à¸´à¸£à¹Œà¸™à¸‹à¸µà¸¢à¹Œ" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "à¸à¸²à¸™à¸²" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "ยิบรอลตา" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "à¸à¸£à¸µà¸™à¹à¸¥à¸™à¸”์" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "à¹à¸à¸¡à¹€à¸šà¸µà¸¢" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "à¸à¸´à¸™à¸µ" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "à¸à¸§à¸²à¹€à¸”อลูป" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "อิเควทอเรียลà¸à¸´à¸™à¸µ" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "à¸à¸£à¸µà¸‹" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "เà¸à¸²à¸°à¹€à¸‹à¸²à¸—์จอร์เจียà¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹€à¸‹à¸²à¸—์à¹à¸‹à¸™à¸”์วิช" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "à¸à¸±à¸§à¹€à¸•มาลา" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "à¸à¸§à¸¡" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "à¸à¸´à¸™à¸µ-บิสเซา" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "à¸à¸²à¸¢à¸­à¸²à¸™à¸²" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "ฮ่องà¸à¸‡" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "เà¸à¸²à¸°à¹€à¸®à¸´à¸£à¹Œà¸”à¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹à¸¡à¸à¸”อนัลด์" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ฮอนดูรัส" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "โครเอเชีย" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "ไฮติ" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "ฮังà¸à¸²à¸£à¸µ" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "อินโดนีเซีย" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ไอร์à¹à¸¥à¸™à¸”์" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "อิสราเอล" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "เà¸à¸²à¸°à¹à¸¡à¸™" #: zypp/CountryCode.cc:261 msgid "India" msgstr "อินเดีย" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "บริติชอินเดียนโอเชียนเทร์ริทอรี" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "อิรัà¸" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "อิหร่าน" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ไอซ์à¹à¸¥à¸™à¸”์" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "อิตาลี" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "เจอร์ซีย์" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "จาไมà¸à¹‰à¸²" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "จอร์à¹à¸”น" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "à¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "เคนยา" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "คีร์à¸à¸µà¸‹à¸™" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "à¸à¸±à¸¡à¸žà¸¹à¸Šà¸²" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "คิริบาส" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "คอโมโรส" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "เซนต์คิตส์à¹à¸¥à¸°à¹€à¸™à¸§à¸´à¸ª" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "เà¸à¸²à¸«à¸¥à¸µà¹€à¸«à¸™à¸·à¸­" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "เà¸à¸²à¸«à¸¥à¸µà¹ƒà¸•้" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "คูเวต" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "หมู่เà¸à¸²à¸°à¹€à¸„ย์à¹à¸¡à¸™" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "คาซัคสถาน" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "สาธารณรัà¸à¸›à¸£à¸°à¸Šà¸²à¸˜à¸´à¸›à¹„ตยประชาชนลาว" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "เลบานอน" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "เซนต์ลูเซีย" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "ลิà¸à¹€à¸•นสไตน์" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "ศรีลังà¸à¸²" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "ไลบีเรีย" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "เลโซโทต" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ลิทัวเนีย" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ลัà¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ลัตเวีย" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ลิเบีย" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "โมร็อà¸à¹‚à¸" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "โมนาโค" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "มอลโดวา" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "มอนติเนโà¸à¸£" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "ซานมาริโน" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "มาดาà¸à¸±à¸ªà¸à¸²à¸£à¹Œ" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "หมู่เà¸à¸²à¸°à¸¡à¸²à¹à¸Šà¸¥à¸¥à¹Œ" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "มาซิโดเนีย" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "มาลี" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "พม่า" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "มองโà¸à¹€à¸¥à¸µà¸¢" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "มาเà¸à¹Šà¸²" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "หมู่เà¸à¸²à¸°à¸¡à¸²à¹€à¸£à¸µà¸¢à¸™à¹€à¸«à¸™à¸·à¸­" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "มาทินิค" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "มอริทาเนีย" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "มอนต์เซอร์รัต" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "มอลตา" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "มอริเชียส" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "มัลดิฟ" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "มาลาวี" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "เม็à¸à¸‹à¸´à¹‚à¸" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "มาเลเซีย" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "โมà¹à¸‹à¸¡à¸šà¸´à¸" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "นามิเบีย" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "นิวคาลิโดเนีย" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "ไนเจอร์" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "เà¸à¸²à¸°à¸™à¸­à¸£à¹Œà¸Ÿà¸­à¸¥à¹Œà¸„" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ไนจีเรีย" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "นิคาราà¸à¸±à¸§" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "เนเธอร์à¹à¸¥à¸™à¸”์" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "นอร์เวย์" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "เนปาล" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "นาวรู" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "นิอุเอ" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "นิวซีà¹à¸¥à¸™à¸”์" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "โอมาน" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "ปานามา" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "เปรู" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "เฟรนช์โปลินีเซีย" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "ปาปัวนิวà¸à¸´à¸™à¸µ" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "ฟิลิปปินส์" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ปาà¸à¸µà¸ªà¸–าน" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "โปà¹à¸¥à¸™à¸”์" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "à¹à¸‹à¸‡à¸›à¸µà¹à¸¢à¸£à¹Œà¹à¸¥à¸°à¸¡à¸µà¹€à¸à¸­à¸¥à¸‡" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "เà¸à¸²à¸°à¸žà¸´à¸•à¹à¸„ร์น" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "เปอร์โตริโà¸" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "เขตปà¸à¸„รองปาเลสไตน์" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "โปรตุเà¸à¸ª" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "เà¸à¸²à¸°à¸žà¸²à¹€à¸¥à¸²" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "ปาราà¸à¸§à¸±à¸¢" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "à¸à¸²à¸•้าร์" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "รียูเนียน" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "โรมาเนีย" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "เซอร์เบีย" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "สมาพันธรัà¸à¸£à¸±à¸ªà¹€à¸‹à¸µà¸¢" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "รวันด้า" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "ซาอุดิอาระเบีย" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "หมู่เà¸à¸²à¸°à¹‚ซโลมอน" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "ซีเชลล์" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "ซูดาน" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "สวีเดน" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "สิงคโปร์" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "เซนต์เฮเลน่า" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "สโลวีเนีย" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "สฟาลบาร์à¹à¸¥à¸°à¸¢à¸²à¸™à¹„มเอน" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "สโลวัà¸" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "เซียร์ราลีโอน" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "ซานมาริโน" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "เซนีà¸à¸±à¸¥" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "โซมาเลีย" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "ซูรินาเม" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "ซาวโทมà¹à¸¥à¸°à¸žà¸£à¸´à¸™à¸‹à¸´à¸›" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "เอลซัลวาดอร์" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "ซีเรีย" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "สวาซิà¹à¸¥à¸™à¸”์" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "เà¸à¸²à¸°à¹€à¸•ิร์à¸à¹à¸¥à¸°à¹€à¸„คอส" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ชาด" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "เฟรนช์เซาเทิร์น" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "โตโà¸" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "ราชอาณาจัà¸à¸£à¹„ทย" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ทาจีà¸à¸´à¸ªà¸–าน" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "โทเคเลา" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "เติร์à¸à¹€à¸¡à¸™à¸´à¸ªà¸–าน" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ตูนีเซีย" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "ตองà¸à¹‰à¸²" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ติมอร์ตะวันออà¸" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "ตุรà¸à¸µ" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "ตรีนิà¹à¸”ดà¹à¸¥à¸°à¹‚ทบาโà¸" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "ตูวาลู" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "ไต้หวัน" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "à¹à¸—นซาเนีย" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "ยูเครน" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "ยูà¸à¸±à¸™à¸”า" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "หมู่เà¸à¸²à¸°à¸¢à¸¹à¹€à¸­à¸ª ไมเนอร์ เอาท์ไลย์อิ้ง" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "สหรัà¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "อูรุà¸à¸§à¸±à¸¢" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "อุซเบà¸à¸´à¸ªà¸–าน" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "นครรัà¸à¸§à¸²à¸•ิà¸à¸±à¸™" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "เซนต์วินเซนต์à¹à¸¥à¸°à¹€à¸à¸£à¸™à¸²à¸”ีนส์" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "เวเนซูเอลา" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "หมู่เà¸à¸²à¸°à¸šà¸£à¸´à¸•ิชเวอร์จิน" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "หมู่เà¸à¸²à¸°à¹€à¸§à¸­à¸£à¹Œà¸ˆà¸´à¸™, สหรัà¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "เวียดนาม" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "วานูอาตู" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "หมู่เà¸à¸²à¸°à¸§à¸²à¸¥à¸¥à¸´à¸ªà¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸Ÿà¸¸à¸•ูนา" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "ซามัว" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "เยเมน" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "มายอต" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "à¹à¸­à¸Ÿà¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•้" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "à¹à¸‹à¸¡à¹€à¸šà¸µà¸¢" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "ซิมบับเว" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "ต้องà¸à¸²à¸£" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "ลบอัตโนมัติ" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, fuzzy, c-format, boost-format msgid "Command exited with status %d." msgstr "หมดเวลาของคำสั่งหลังจาภ%1 วินาที" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "ล้มเหลวในà¸à¸²à¸£à¸„ืนค่าส่วน MBR ของฮาร์ดดิสà¸à¹Œ" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "ล้มเหลวในà¸à¸²à¸£à¸„ืนค่าส่วน MBR ของฮาร์ดดิสà¸à¹Œ" #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸„วบคุม %1 บนสื่อà¸à¸²à¸£à¸•ิดตั้ง" #: zypp/LanguageCode.cc:49 #, fuzzy msgid "Unknown language: " msgstr "ภาษาที่ไม่รู้จัà¸: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "ภาษาà¹à¸­à¸Ÿà¸£à¸´à¸„านส์" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 #, fuzzy msgid "Albanian" msgstr "à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "à¹à¸­à¸Ÿà¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•้" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "ภาษา" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ภาษาอารบิà¸" #. language code: arc #: zypp/LanguageCode.cc:203 #, fuzzy msgid "Aramaic" msgstr "จาไมà¸à¹‰à¸²" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 #, fuzzy msgid "Armenian" msgstr "อาร์เมเนีย" #. language code: arn #: zypp/LanguageCode.cc:211 #, fuzzy msgid "Araucanian" msgstr "ภาษายูเครน" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 #, fuzzy msgid "Assamese" msgstr "เช่นเดียวà¸à¸±à¸š" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 #, fuzzy msgid "Athapascan Languages" msgstr "ภาษา" #. language code: aus #: zypp/LanguageCode.cc:225 #, fuzzy msgid "Australian Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 #, fuzzy msgid "Azerbaijani" msgstr "อาเซอร์ไบจาน" #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "รวันด้า" #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "ภาษา" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "ภาษาà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 #, fuzzy msgid "Belarusian" msgstr "เบลารุส" #. language code: bem #: zypp/LanguageCode.cc:261 #, fuzzy msgid "Bemba" msgstr "&Membase" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "ภาษาเบ็งà¸à¸²à¸¥à¸µ" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "ภาษาบอสเนีย" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "" #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "อินโดนีเซีย" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ภาษาบัลà¹à¸à¹€à¸£à¸µà¸¢" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "ภาษาคาตะลาน" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 #, fuzzy msgid "Chechen" msgstr "ตรวจสอบ" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 #, fuzzy msgid "Chinese" msgstr "จีน" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 #, fuzzy msgid "Cheyenne" msgstr "à¸à¸²à¹à¸¢à¸™" #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "ภาษา" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 #, fuzzy msgid "Cornish" msgstr "ภาษาเดนมาร์à¸" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ภาษาเช็à¸" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ภาษาเดนมาร์à¸" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 #, fuzzy msgid "Delaware" msgstr "ฮาร์ดà¹à¸§à¸£à¹Œ" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "ภาษาเซอร์เบียน" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ภาษาดัตช์" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 #, fuzzy msgid "English" msgstr "ภาษาอังà¸à¸¤à¸© (à¹à¸šà¸šà¸­à¹€à¸¡à¸£à¸´à¸à¸²)" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ภาษาเอสโตเนีย" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 #, fuzzy msgid "Faroese" msgstr "หมู่เà¸à¸²à¸°à¹à¸Ÿà¹‚ร" #. language code: fat #: zypp/LanguageCode.cc:433 #, fuzzy msgid "Fanti" msgstr "à¹à¸­à¸•à¹à¸¥à¸™à¸•ิà¸" #. language code: fij fj #: zypp/LanguageCode.cc:435 #, fuzzy msgid "Fijian" msgstr "ฟิจิ" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "ฟิลิปปินส์" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ภาษาฟินà¹à¸¥à¸™à¸”์" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "ภาษาà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 #, fuzzy msgid "Ga" msgstr "à¸à¸§à¸¡" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 #, fuzzy msgid "Germanic (Other)" msgstr "ภาษาเยอรมัน (สวิตเซอร์à¹à¸¥à¸™à¸”์)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr "จอร์เจีย" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "ภาษาเยอรมัน" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "ภาษาคุชราตี" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "ไฮติ" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ภาษาฮิบรู" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "ภาษาฮินดี" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "ภาษาเซอร์เบียน" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "ภาษาฮังà¸à¸²à¸£à¸µ" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ภาษาไอซ์à¹à¸¥à¸™à¸”์" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "ลิทัวเนีย" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 #, fuzzy msgid "Interlingue" msgstr "เขตภายในเครือข่าย" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ภาษาอินโดนีเซีย" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ภาษาอิตาลี" #. language code: jav jv #: zypp/LanguageCode.cc:579 #, fuzzy msgid "Javanese" msgstr "ภาษาà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ภาษาà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™" #. language code: jpr #: zypp/LanguageCode.cc:585 #, fuzzy msgid "Judeo-Persian" msgstr "ภาษาอินโดนีเซีย" #. language code: jrb #: zypp/LanguageCode.cc:587 #, fuzzy msgid "Judeo-Arabic" msgstr "ภาษาอารบิà¸" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 #, fuzzy msgid "Kachin" msgstr "à¸à¸²à¸£à¸²à¸ˆà¸µ" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "à¹à¸„นาดา" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 #, fuzzy msgid "Kazakh" msgstr "คาซัคสถาน" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "ภาษาเขมร" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 #, fuzzy msgid "Kongo" msgstr "คองโà¸" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "ภาษาเà¸à¸²à¸«à¸¥à¸µ" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 #, fuzzy msgid "Lao" msgstr "บันทึà¸à¸à¸²à¸£à¸—ำงาน" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" #. language code: lav lv #: zypp/LanguageCode.cc:665 #, fuzzy msgid "Latvian" msgstr "ลัตเวีย" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "ลัà¸à¸‹à¹Œà¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ภาษาลิทัวเนีย" #. language code: lol #: zypp/LanguageCode.cc:675 #, fuzzy msgid "Mongo" msgstr "คองโà¸" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "ลัà¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "รวันด้า" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 #, fuzzy msgid "Lunda" msgstr "วันอาทิตย์" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "ภาษามาซิโดเนีย" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 #, fuzzy msgid "Marshallese" msgstr "หมู่เà¸à¸²à¸°à¸¡à¸²à¹à¸Šà¸¥à¸¥à¹Œ" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "มาเลเซีย" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "ภาษามาราà¸à¸µ" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "มาเลเซีย" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "รวันด้า" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "มาดาà¸à¸±à¸ªà¸à¸²à¸£à¹Œ" #. language code: mlt mt #: zypp/LanguageCode.cc:745 #, fuzzy msgid "Maltese" msgstr "มอลตา" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "ภาษา" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "มอลโดวา" #. language code: mon mn #: zypp/LanguageCode.cc:757 #, fuzzy msgid "Mongolian" msgstr "มองโà¸à¹€à¸¥à¸µà¸¢" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "ภาษา" #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: mus #: zypp/LanguageCode.cc:765 #, fuzzy msgid "Creek" msgstr "ภาษาà¸à¸£à¸µà¸" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "ภาษา" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "อเมริà¸à¸²à¹€à¸«à¸™à¸·à¸­" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 #, fuzzy msgid "Ndonga" msgstr "ตองà¸à¹‰à¸²" #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "ภาษาเยอรมัน" #. language code: nep ne #: zypp/LanguageCode.cc:793 #, fuzzy msgid "Nepali" msgstr "เนปาล" #. language code: new #: zypp/LanguageCode.cc:795 #, fuzzy msgid "Nepal Bhasa" msgstr "เนปาล" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 #, fuzzy msgid "Niuean" msgstr "นิอุเอ" #. language code: nno nn #: zypp/LanguageCode.cc:803 #, fuzzy msgid "Norwegian Nynorsk" msgstr "ภาษานอร์เวย์" #. language code: nob nb #: zypp/LanguageCode.cc:805 #, fuzzy msgid "Norwegian Bokmal" msgstr "ภาษานอร์เวย์" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "ภาษานอร์เวย์" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 #, fuzzy msgid "Osage" msgstr "à¹à¸–บà¹à¸ªà¸”งà¸à¸²à¸£à¹ƒà¸Šà¹‰" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 #, fuzzy msgid "Panjabi" msgstr "ภาษาปัà¸à¸ˆà¸²à¸šà¸µ" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "เà¸à¸²à¸°à¸žà¸²à¹€à¸¥à¸²" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 #, fuzzy msgid "Persian" msgstr "รุ่น" #. language code: phi #: zypp/LanguageCode.cc:865 #, fuzzy msgid "Philippine (Other)" msgstr "ฟิลิปปินส์" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ภาษาโปà¹à¸¥à¸™à¸”์" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ภาษาโปรตุเà¸à¸ª" #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "ภาษาหลัà¸" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "à¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "โรมาเนีย" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "ภาษาโรมาเนีย" #. language code: run rn #: zypp/LanguageCode.cc:901 #, fuzzy msgid "Rundi" msgstr "บุรุนดี" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "ภาษารัสเซีย" #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "รวันด้า" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "ภาษาเซอร์เบียน" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ภาษาโครเอเชีย" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "เซี่ยงไฮ้" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "ภาษาอัà¸à¸©à¸£à¸ªà¸´à¸‡à¸«à¸¥" #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "ภาษาสโลวะเà¸à¸µà¸¢" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "ภาษาสโลวีเนีย" #. language code: sma #: zypp/LanguageCode.cc:961 #, fuzzy msgid "Southern Sami" msgstr "จอร์เจียใต้" #. language code: sme se #: zypp/LanguageCode.cc:963 #, fuzzy msgid "Northern Sami" msgstr "อเมริà¸à¸²à¹€à¸«à¸™à¸·à¸­" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 #, fuzzy msgid "Lule Sami" msgstr "ชื่อโมดูล" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 #, fuzzy msgid "Samoan" msgstr "ซามัว" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "โซมาเลีย" #. language code: son #: zypp/LanguageCode.cc:985 #, fuzzy msgid "Songhai" msgstr "เซี่ยงไฮ้" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ภาษาสเปน" #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "ภาษายูเครน" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 #, fuzzy msgid "Sundanese" msgstr "วันอาทิตย์" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 #, fuzzy msgid "Sumerian" msgstr "ลำดับอนุà¸à¸£à¸¡ (Seri&al)" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ภาษาสวีเดน" #. language code: syr #: zypp/LanguageCode.cc:1011 #, fuzzy msgid "Syriac" msgstr "ซีเรีย" #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "ภาษาโครเอเชีย" #. language code: tai #: zypp/LanguageCode.cc:1015 #, fuzzy msgid "Tai (Other)" msgstr "อื่น ๆ" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ภาษาทมิฬ" #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "à¸à¸²à¸•้าร์" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "ทาจีà¸à¸´à¸ªà¸–าน" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ภาษาไทย" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 #, fuzzy msgid "Tonga (Tonga Islands)" msgstr "หมู่เà¸à¸²à¸°à¹‚ซโลมอน" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "บอตสวานา" #. language code: tso ts #: zypp/LanguageCode.cc:1063 #, fuzzy msgid "Tsonga" msgstr "ตองà¸à¹‰à¸²" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "ตุรà¸à¸µ" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "ภาษา" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "ภาษาตุรà¸à¸µ" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "ภาษายูเครน" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 #, fuzzy msgid "Uzbek" msgstr "อุซเบà¸à¸´à¸ªà¸–าน" #. language code: vai #: zypp/LanguageCode.cc:1097 #, fuzzy msgid "Vai" msgstr "วาติà¸à¸±à¸™" #. language code: ven ve #: zypp/LanguageCode.cc:1099 #, fuzzy msgid "Venda" msgstr "ผู้ผลิต" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "ภาษาเวียดนาม" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "ภาษา" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "ภาษาเวลช์" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "เป็นà¸_ลุ่มภาษา" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ภาษาวัลลูน" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "ภาษาโคซา" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 #, fuzzy msgid "Yoruba" msgstr "อรูบา" #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "ภาษา" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ภาษาซูลู" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 #, fuzzy msgid "Following actions will be done:" msgstr "จะมีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸•ามขั้นตอนต่อไปนี้:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "ยังไม่มีผู้ใช้" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "ยังไม่มีผู้ใช้" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "ไม่สามารถสร้างไดเรà¸à¸—อรี '%1' ได้" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "คลังà¹à¸žà¸à¹€à¸à¸ˆà¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹„ม่ได้" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "ไม่สามารถเปิดใช้งานบริà¸à¸²à¸£ '%1' ได้" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "ไม่สามารถสร้างไดเรà¸à¸—อรี " #: zypp/RepoManager.cc:1296 #, fuzzy, c-format, boost-format msgid "Building repository '%s' cache" msgstr "à¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¸„ลังà¹à¸žà¸à¹€à¸à¸ˆ %1 ล้มเหลว" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "ล้มเหลวในà¸à¸²à¸£à¸„ืนค่าส่วน MBR ของฮาร์ดดิสà¸à¹Œ" #: zypp/RepoManager.cc:1392 #, fuzzy msgid "Unhandled repository type" msgstr "ชื่อของคลังà¹à¸žà¸à¹€à¸à¸ˆà¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹„ม่ได้" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ไม่รู้จัà¸à¸•ัวเลือà¸à¸ªà¸³à¸«à¸£à¸±à¸šà¸„ำสั่ง '%1': %2" #: zypp/RepoManager.cc:1620 #, fuzzy, c-format, boost-format msgid "Adding repository '%s'" msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸žà¸´à¹ˆà¸¡à¸„ลังà¹à¸žà¸à¹€à¸à¸ˆ %1" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "ค่าสำหรับตัวเลือภ'%1' ไม่ถูà¸à¸•้อง: %2" #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•รวจคลังà¹à¸žà¸à¹€à¸à¸ˆ " #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "ไม่สามารถเปิดใช้งานบริà¸à¸²à¸£ '%1' ได้" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 #, fuzzy msgid "Can't figure out where the service is stored." msgstr "ไม่สามารถลบบริà¸à¸²à¸£à¹„ด้ เนื่องจาà¸à¸¡à¸±à¸™à¸¢à¸±à¸‡à¹„ม่ถูà¸à¸•ิดตั้ง" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "ไม่ทราบ" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 #, fuzzy msgid "invalid" msgstr "ค่าเวลาใช้งานไม่ได้" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 #, fuzzy msgid "Unknown support option. Description not available" msgstr "ไม่มีรายละเอียด" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "คลังà¹à¸žà¸à¹€à¸à¸ˆ: " #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "โหมดที่ไม่รู้จัà¸" #: zypp/base/StrMatcher.cc:153 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "ไม่ทราบค่าของพารามิเตอร์ %1" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "รูปà¹à¸šà¸šà¸à¸²à¸£à¸„้นหา (RegExp)" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "" #: zypp/media/MediaException.cc:46 #, fuzzy, c-format, boost-format msgid "Bad file name: %s" msgstr "ชื่อà¹à¸Ÿà¹‰à¸¡: %1" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸„วบคุม %1 บนสื่อà¸à¸²à¸£à¸•ิดตั้ง" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, fuzzy, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "ดาวน์โหลดà¹à¸Ÿà¹‰à¸¡à¸­à¸´à¸¡à¹€à¸¡à¸ˆà¸à¸²à¸£à¸•ิดตั้ง" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, fuzzy, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "เà¸à¸´à¸”ข้อผิดพลาดขึ้นระหว่างทำà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸„ลังà¹à¸žà¸à¹€à¸à¸ˆ" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "ไม่สามารถเปิดใช้งานบริà¸à¸²à¸£ '%1' ได้" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹à¸Ÿà¹‰à¸¡à¸ªà¸³à¸£à¸­à¸‡à¸‚้อมูลล้มเหลว" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "à¹à¸žà¸à¹€à¸à¸ˆ %1 เสียหาย à¸à¸²à¸£à¸•รวจสอบความถูà¸à¸•้องล้มเหลว" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "à¹à¸žà¸à¹€à¸à¸ˆ %1 เสียหาย à¸à¸²à¸£à¸•รวจสอบความถูà¸à¸•้องล้มเหลว" #: zypp/repo/PackageProvider.cc:646 #, fuzzy msgid "applydeltarpm check failed." msgstr "à¸à¸²à¸£à¸•รวจความถูà¸à¸•้องล้มเหลว" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "เลือà¸à¸„ลังà¹à¸žà¸à¹€à¸à¸ˆ" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "ไม่สามารถสร้างไดเร็à¸à¸—อรี " #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "à¸à¸²à¸£à¸•รวจสอบà¸à¸²à¸£à¸‚ึ้นอยู่à¹à¸à¹ˆà¸à¸±à¸™à¸‚องระบบ ไม่พบปัà¸à¸«à¸²" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "à¸à¸²à¸£à¸•รวจสอบà¸à¸²à¸£à¸‚ึ้นอยู่à¹à¸à¹ˆà¸à¸±à¸™à¸‚องระบบ ไม่พบปัà¸à¸«à¸²" #: zypp/solver/detail/SATResolver.cc:979 #, fuzzy, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¸„ลังà¹à¸žà¸à¹€à¸à¸ˆà¸ªà¸³à¸«à¸£à¸±à¸šà¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¹ƒà¸«à¹‰à¸—ันสมัย..." #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "สถาปัตยà¸à¸£à¸£à¸¡à¸žà¸·à¹‰à¸™à¸à¸²à¸™" #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "ผิดพลาด: ไม่สามารถติดตั้งà¹à¸žà¸à¹€à¸à¸ˆà¹„ด้" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "à¸à¸²à¸£à¸•รวจสอบà¸à¸²à¸£à¸‚ึ้นอยู่à¹à¸à¹ˆà¸à¸±à¸™à¸‚องระบบ ไม่พบปัà¸à¸«à¸²" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 #, fuzzy msgid "Have you enabled all requested repositories?" msgstr "เพิ่มคลังà¹à¸žà¸à¹€à¸à¸ˆà¹à¸šà¸šà¸­à¸­à¸™à¹„ลน์ที่เลือà¸à¹„ว้ทั้งหมด" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "ยังไม่มีบริà¸à¸²à¸£ %1 อยู่" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "ไฟร์วอลล์ยังไม่ถูà¸à¸•ิดตั้ง" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "ไม่ต้องติดตั้งตัวจัดà¸à¸²à¸£à¸à¸²à¸£à¸šà¸¹à¸•ระบบใด ๆ" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "อ่านค่าของผู้ให้บริà¸à¸²à¸£" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "เขียนค่าของผู้ให้บริà¸à¸²à¸£" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "เขียนค่าของผู้ให้บริà¸à¸²à¸£" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, fuzzy, c-format, boost-format msgid "do not install %s" msgstr "ไม่ต้องติดตั้ง" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "บันทึà¸à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¸•ิดตั้ง" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "รุ่นนี้ถูà¸à¸•ิดตั้งไว้บนระบบของคุณ" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "ลบอัตโนมัติ" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "บันทึà¸à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¸•ิดตั้ง" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹à¸Ÿà¹‰à¸¡à¸ªà¸³à¸£à¸­à¸‡à¸‚้อมูลล้มเหลว" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 #, fuzzy msgid "Installation has been aborted as directed." msgstr "à¸à¸²à¸£à¸•ิดตั้งเสร็จสมบูรณ์เพียงบางส่วนเท่านั้น" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "ไม่ได้เชื่อมต่อ" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "ทดสอบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่ออินเทอร์เน็ต" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "จัดเà¸à¹‡à¸šà¹à¸Ÿà¹‰à¸¡à¸à¸²à¸£à¸›à¸£à¸±à¸šà¹à¸•่งค่า" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "ข้อมูลเพิ่มเติม" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸„วบคุม %1 บนสื่อà¸à¸²à¸£à¸•ิดตั้ง" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸„วบคุม %1 บนสื่อà¸à¸²à¸£à¸•ิดตั้ง" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸„วบคุม %1 บนสื่อà¸à¸²à¸£à¸•ิดตั้ง" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, fuzzy, c-format, boost-format msgid "Invalid host component '%s'" msgstr "ค่าสำหรับตัวเลือภ'%1' ไม่ถูà¸à¸•้อง: %2" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, fuzzy, c-format, boost-format msgid "Invalid port component '%s'" msgstr "ค่าสำหรับตัวเลือภ'%1' ไม่ถูà¸à¸•้อง: %2" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "ไม่ต้องติดตั้ง" #, fuzzy #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "ดาวน์โหลดà¹à¸Ÿà¹‰à¸¡à¸­à¸´à¸¡à¹€à¸¡à¸ˆà¸à¸²à¸£à¸•ิดตั้ง" #, fuzzy #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "เà¸à¸´à¸”ข้อผิดพลาดขึ้นระหว่างทำà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸„ลังà¹à¸žà¸à¹€à¸à¸ˆ" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "ล้มเหลวในà¸à¸²à¸£à¸”าวน์โหลดà¹à¸Ÿà¹‰à¸¡ delta ของà¹à¸žà¸à¹€à¸à¸ˆ RPM: %1" #~ msgid "Serbia and Montenegro" #~ msgstr "เซอร์เบีย à¹à¸¥à¸°à¸¡à¸­à¸™à¸•ิเนโà¸à¸£" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "ผู้รวบรวมเผยà¹à¸žà¸£à¹ˆ:" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "à¸à¸²à¸£à¸•รวจสอบà¸à¸²à¸£à¸‚ึ้นอยู่à¹à¸à¹ˆà¸à¸±à¸™à¸‚องระบบ ไม่พบปัà¸à¸«à¸²" #, fuzzy #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "à¹à¸Ÿà¹‰à¸¡ '%1' \n" #~ "ไม่น่าจะเป็นà¹à¸Ÿà¹‰à¸¡à¸­à¸´à¸¡à¹€à¸¡à¸ˆà¹à¸šà¸š ISO \n" #~ "à¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¸§à¹ˆà¸²à¸•้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸¡à¸±à¸™à¸ˆà¸£à¸´à¸‡ ๆ ? \n" #, fuzzy #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "à¹à¸Ÿà¹‰à¸¡ '%1' \n" #~ "ไม่น่าจะเป็นà¹à¸Ÿà¹‰à¸¡à¸­à¸´à¸¡à¹€à¸¡à¸ˆà¹à¸šà¸š ISO \n" #~ "à¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¸§à¹ˆà¸²à¸•้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸¡à¸±à¸™à¸ˆà¸£à¸´à¸‡ ๆ ? \n" #, fuzzy #~ msgid "%s remove ok" #~ msgstr "เพื่อจะลบ:" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "ไม่ต้องทำà¸à¸²à¸£à¸•ิดตั้งตัวจัดà¸à¸²à¸£à¸à¸²à¸£à¸šà¸¹à¸•ระบบ ให้ทำเพียงสร้างà¹à¸Ÿà¹‰à¸¡à¸à¸²à¸£à¸›à¸£à¸±à¸šà¹à¸•่ง" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡ %1 ได้" #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "เà¸à¸´à¸”ข้อผิดพลาดขึ้นระหว่างเขียนà¹à¸Ÿà¹‰à¸¡ '%1'" libzypp-17.7.0/po/tr.po000066400000000000000000003752331334444677500147400ustar00rootroot00000000000000# Turkish message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999, 2000, 2001 SuSE GmbH. # Görkem Çetin , 1999, 2000. # Mehmet Mıdık , 2000. # Metin Oral , 2001. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-01-29 14:07+0000\n" "Last-Translator: Özgür AteÅŸ Fırat \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Kararsız '%s' türü için %u bayt sÄŸlama toplamı '%s'" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Bilinmeyen ülke:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 #, fuzzy msgid "No Code" msgstr "&Kod" # AD #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andora" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "BirleÅŸik Arap Emirlikleri" # AF #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antiga ve Barbuda" # AI #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Angula" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Arnavutluk" # AM #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Ermenistan" # AN #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Hollanda Antilleri" # AO #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" # AQ #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antartika" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Arjantin" # AS #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Amerikan Samoası" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Avusturya" # /usr/lib/YaST2/keyboard_raw.ycp:230 #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Avusturalya" # AW #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" # KY #. :ABW:533: #: zypp/CountryCode.cc:173 #, fuzzy msgid "Aland Islands" msgstr "Seyman Adaları" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaycan" # BA #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosna-Hersek" # /usr/lib/YaST2/timezone_raw.ycp:58 #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" # menuentries/menuentry_language.ycp:13 #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "BangladeÅŸ" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belçika" # BF #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" # /usr/lib/YaST2/keyboard_raw.ycp:570 #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaristan" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahreyn" # BI #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" # BJ #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" # BN #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Bruney Darüsselam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivya" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brezilya" # BS #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamalar" # BT #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bütan" # BV #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet Adası" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" # BZ #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Kanada" # CC #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Adaları" # CG #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Kongo" # CF #. :COD:180: #: zypp/CountryCode.cc:197 #, fuzzy msgid "Central African Republic" msgstr "Orta Afrika Cumhuriyeti" # /usr/lib/YaST2/keyboard_raw.ycp:169 #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "İsviçre" # CI # fuzzy #. :CHE:756: #: zypp/CountryCode.cc:200 #, fuzzy msgid "Cote D'Ivoire" msgstr "Cote d'Ivoire" # CK #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook Adaları" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Åžili" # CM #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Kamerun" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Çin" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Kolombiya" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Kosta Rika" # CU #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Küba" # CV #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Verde Burnu" # CX #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Christmas Adası" # CY #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Kıbrıs" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Çek Cumhuriyeti" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Almanya" # /usr/lib/YaST2/timezone_raw.ycp:18 #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Cibuti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Danimarka" # /usr/lib/YaST2/timezone_raw.ycp:76 #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominik Cumhuriyeti" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Cezayir" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ekvator" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonya" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Mısır" # EH #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Batı Sahra" # ER #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritre" # /usr/lib/YaST2/keyboard_raw.ycp:200 #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "İspanya" # ET #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiyopya" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlandiya" # include/nis_server/ui.ycp:45 #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" # FK #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falkland Adaları (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Mikronezya Federal Devletleri" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faroe Adaları" # /usr/lib/YaST2/keyboard_raw.ycp:139 #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "Fransa" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" # GA #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" # /usr/lib/YaST2/timezone_raw.ycp:390 #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "İngiltere" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Gürcistan" # GF # fuzzy #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Fransız Guyanası" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Almanya" # GH #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" # /usr/lib/YaST2/timezone_raw.ycp:384 #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Cebelitarık" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Grönland" # GM #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambiya" # GN #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Gine" # /usr/lib/YaST2/timezone_raw.ycp:85 #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" # GQ #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Ekvatoral Gine" # /usr/lib/YaST2/keyboard_raw.ycp:320 #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Yunanistan" # GS # fuzzy #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Güney Gürcistan ve Güney Sandoviç Adası" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" # GW #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Gine-Bissau" # GY #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" # HM # fuzzy #. :HKG:344: #: zypp/CountryCode.cc:252 #, fuzzy msgid "Heard Island and McDonald Islands" msgstr "Heard Adası and McDonald Adaları" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Hırvatistan" # HT #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" # /usr/lib/YaST2/keyboard_raw.ycp:570 #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Macaristan" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Endonezya" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "İrlanda" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "İsrail" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Man Adası" #: zypp/CountryCode.cc:261 msgid "India" msgstr "Hindistan" # IO #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Hint Okyanusu İngiliz Sömürgeleri" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Irak" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "İzlanda" # /usr/lib/YaST2/keyboard_raw.ycp:230 #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "İtalya" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Jersey" # /usr/lib/YaST2/timezone_raw.ycp:347 #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaika" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Ürdün" # /usr/lib/YaST2/keyboard_raw.ycp:700 #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japonya" # KE #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" # KG # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kırgızistan" # KH #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Kamboçya" # KI #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" # KM #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Komoros" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 #, fuzzy msgid "Saint Kitts and Nevis" msgstr "Sen Kitts ve Nevis" # /usr/lib/YaST2/timezone_raw.ycp:374 #. :KNA:659: #: zypp/CountryCode.cc:277 #, fuzzy msgid "North Korea" msgstr "Kuzey İrlanda" #. :PRK:408: #: zypp/CountryCode.cc:278 #, fuzzy msgid "South Korea" msgstr "Güney Kutbu" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuveyt" # KY #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Seyman Adaları" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakistan" # CD # fuzzy #. :KAZ:398: #: zypp/CountryCode.cc:282 #, fuzzy msgid "Lao People's Democratic Republic" msgstr "Lao Halk Cumhuriyeti" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Lübnan" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 #, fuzzy msgid "Saint Lucia" msgstr "Sen Lusia" # /usr/lib/YaST2/timezone_raw.ycp:407 #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" # LK #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" # LR #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberya" # LS #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litvanya" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Lüksemburg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letonya" # LY # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Liberya" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Fas" # /usr/lib/YaST2/timezone_raw.ycp:394 #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monako" # /usr/lib/YaST2/timezone_raw.ycp:381 #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" # CG #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "Kongo" # SM #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" # MG #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagaskar" # MH #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "MarÅŸal Adaları" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Makedonya" # ML #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" # MM #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Miyanmar" # MN #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "MoÄŸolistan" # /usr/lib/YaST2/timezone_raw.ycp:207 #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" # MP #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Kuzey Meryem Adaları" # /usr/lib/YaST2/timezone_raw.ycp:99 #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" # MR #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Moritanya" # MS #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Monserat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Mali" # MW #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malavi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Meksika" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malezya" # MZ #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambik" # NA #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibya" # NC #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Yeni İskoçya" # NE #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Nijer" # NF #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk Adası" # NG #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nikaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Hollanda" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norveç" # NP #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" # NU #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Nie" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Yeni Zelenda" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Umman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" # PF #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Fransız Polinezyası" # PG #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua Yeni Gine" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Flipinler" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Polonya" # PM # fuzzy #. :POL:616: #: zypp/CountryCode.cc:336 #, fuzzy msgid "Saint Pierre and Miquelon" msgstr "Sen Piyer ve Miquelon" # /usr/lib/YaST2/timezone_raw.ycp:456 #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Riko" # IO #. :PRI:630: #: zypp/CountryCode.cc:339 #, fuzzy msgid "Palestinian Territory" msgstr "Hint Okyanusu İngiliz Sömürgeleri" # /usr/lib/YaST2/keyboard_raw.ycp:260 #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portekiz" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" # RE #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romanya" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "Sırpça" # RU #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Rusya Federasyonu" # RW #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Ruanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Suudi Arabistan" # SB #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomon Adaları" # SC #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "SeyÅŸel Adaları" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" # /usr/lib/YaST2/keyboard_raw.ycp:440 #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "İsveç" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapur" # SH #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sen Helen" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenya" # SJ # fuzzy #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard ve Jan Mayen Adaları" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakya" # SL #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" # SM #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" # SN #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" # SO #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somali" # SR #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Surinam" # ST #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Surinam" # SZ #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" # TC # fuzzy #. :SWZ:748: #: zypp/CountryCode.cc:368 #, fuzzy msgid "Turks and Caicos Islands" msgstr "Turks ve Kaykos Adaları" # TD #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Çad" # TF # fuzzy #. :TCD:148: #: zypp/CountryCode.cc:370 #, fuzzy msgid "French Southern Territories" msgstr "Fransa'nın Güney Bölgeleri" # TG #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Tayland" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tacikistan" # TK #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" # TM #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Türkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunus" # TO #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" # clients/online_update.ycp:223 #. :TON:776: #: zypp/CountryCode.cc:378 #, fuzzy msgid "East Timor" msgstr "Hat süresi" # /usr/lib/YaST2/keyboard_raw.ycp:668 #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Türkiye" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad ve Tobako" # TV #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Tuvalu" # TW # fuzzy #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Tayland" #. :TWN:158: #: zypp/CountryCode.cc:383 #, fuzzy msgid "Tanzania" msgstr "Tazmanya" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukrayna" # UG #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" # UM #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" # US #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "BirleÅŸik Devletler" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Özbekistan" # VA # fuzzy #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatikan" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 #, fuzzy msgid "Saint Vincent and the Grenadines" msgstr "Sen Vinsınt ve Granadalar" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezüella" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Britanya Virjin Adaları" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Virgin Adaları (U.S.)" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" # VU #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" # WF # fuzzy #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis ve Futuna Adaları" # /usr/lib/YaST2/timezone_raw.ycp:481 #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" # YT #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Güney Afrika" # ZM #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambiya" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 #, fuzzy msgid "Prerequires" msgstr "Öngereklilikler" # clients/hwinfo.ycp:54 #: zypp/Dep.cc:98 msgid "Requires" msgstr "Gerekenler" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Eskitiyor" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Pty açılamıyor (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Veri yolu açılamıyor (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "'%s' e chroot yapılamıyor (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "'%s' yürütülemedi (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Ayrıştırılamadı (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Komut %d durumuyla çıkış yaptı." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Komut %d sinyali tarafından durduruldu (%s)." #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "BaÄŸlanıken çalıştırılacak komut" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "%1% dosyasından genel anahtar alınamadı" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Anahtar silinirken hata meydana geldi." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "%s imza dosyası bulunamadı" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Bilinmeyen dil:" # /usr/lib/YaST2/timezone_raw.ycp:31 #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr " Afarca" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abhazya" #. language code: ace #: zypp/LanguageCode.cc:165 #, fuzzy msgid "Achinese" msgstr "Çince" #. language code: ach #: zypp/LanguageCode.cc:167 #, fuzzy msgid "Acoli" msgstr "Sessiz" # clients/support_question.ycp:85 #. language code: ada #: zypp/LanguageCode.cc:169 #, fuzzy msgid "Adangme" msgstr "Aralık" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adigey " #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Asyatik(DiÄŸer)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikanca" # clients/inst_resize_ui.ycp:702 #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Aynu" #. language code: aka ak #: zypp/LanguageCode.cc:181 #, fuzzy msgid "Akan" msgstr "Afrikanca" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Akatça" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Arnavutça" # /usr/lib/YaST2/timezone_raw.ycp:472 #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Aleutça" #. language code: alg #: zypp/LanguageCode.cc:191 #, fuzzy msgid "Algonquian Languages" msgstr "Dil yapılandırılıyor..." #. language code: alt #: zypp/LanguageCode.cc:193 #, fuzzy msgid "Southern Altai" msgstr "Güney Afrika" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amharca" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "İngilizce, Eski ÇaÄŸ (ca. 450-1100)" # clients/inst_language.ycp:116 #. language code: apa #: zypp/LanguageCode.cc:199 #, fuzzy msgid "Apache Languages" msgstr "Dili ayarla" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arapça" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramice" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonca" # AM #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Ermenice" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Araukanya" # clients/inst_sw_single.ycp:1462 #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Yapay dil (DiÄŸer)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assam " #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturyanca " # clients/inst_language.ycp:116 #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Atabask dilleri" # /usr/lib/YaST2/keyboard_raw.ycp:230 #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Avusturalya Dilleri" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarca" # /usr/lib/YaST2/timezone_raw.ycp:472 #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestaca " #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Abadhi" # MM #. language code: aym ay #: zypp/LanguageCode.cc:233 #, fuzzy msgid "Aymara" msgstr "Miyanmar" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azerice" #. language code: bad #: zypp/LanguageCode.cc:237 #, fuzzy msgid "Banda" msgstr "Kanada" # clients/inst_language.ycp:116 #. language code: bai #: zypp/LanguageCode.cc:239 #, fuzzy msgid "Bamileke Languages" msgstr "Dili ayarla" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "BaÅŸkurtça" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Beluci " # /usr/lib/YaST2/timezone_raw.ycp:481 #. language code: bam bm #: zypp/LanguageCode.cc:245 #, fuzzy msgid "Bambara" msgstr "Samba" #. language code: ban #: zypp/LanguageCode.cc:247 #, fuzzy msgid "Balinese" msgstr "Çince" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Bask Dili" #. language code: bas #: zypp/LanguageCode.cc:253 #, fuzzy msgid "Basa" msgstr "Temel" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltık (DiÄŸer)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Beca" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Beyaz Rusça" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. language code: bem #: zypp/LanguageCode.cc:261 #, fuzzy msgid "Bemba" msgstr "Bermuda" # SN #. language code: ben bn #: zypp/LanguageCode.cc:263 #, fuzzy msgid "Bengali" msgstr "Senegal" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berberi (DiÄŸer)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri " #. language code: bih bh #: zypp/LanguageCode.cc:269 #, fuzzy msgid "Bihari" msgstr "Bahreyn" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" # BJ #. language code: bin #: zypp/LanguageCode.cc:273 #, fuzzy msgid "Bini" msgstr "Benin" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantu (DiÄŸer)" # BJ #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "BoÅŸnakça" # BR #. language code: bra #: zypp/LanguageCode.cc:283 #, fuzzy msgid "Braj" msgstr "Brezilya" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Britanyaca" #. language code: btk #: zypp/LanguageCode.cc:287 #, fuzzy msgid "Batak (Indonesia)" msgstr "Endonezya" # /usr/lib/YaST2/keyboard_raw.ycp:570 #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Buryatça" #. language code: bug #: zypp/LanguageCode.cc:291 #, fuzzy msgid "Buginese" msgstr "Çince" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "Bulgarca" # include/scanner/scanner_functions.ycp:114 #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Burmaca" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: byn #: zypp/LanguageCode.cc:299 #, fuzzy msgid "Blin" msgstr "Belçikaca" # TD #. language code: cad #: zypp/LanguageCode.cc:301 #, fuzzy msgid "Caddo" msgstr "Çad" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Merkezi Kızılderili (DiÄŸer)" #. language code: car #: zypp/LanguageCode.cc:305 #, fuzzy msgid "Carib" msgstr "Kart" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Katalanca" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Kafkas (DiÄŸer)" #. language code: ceb #: zypp/LanguageCode.cc:311 #, fuzzy msgid "Cebuano" msgstr "Lübnan" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Kelt (DiÄŸer)" # KM #. language code: cha ch #: zypp/LanguageCode.cc:315 #, fuzzy msgid "Chamorro" msgstr "Komoros" #. language code: chb #: zypp/LanguageCode.cc:317 #, fuzzy msgid "Chibcha" msgstr "Çin" # clients/hwinfo.ycp:44 clients/hwinfo.ycp:93 #. language code: che ce #: zypp/LanguageCode.cc:319 #, fuzzy msgid "Chechen" msgstr "Önbellek" # /usr/lib/YaST2/timezone_raw.ycp:240 #. language code: chg #: zypp/LanguageCode.cc:321 #, fuzzy msgid "Chagatai" msgstr "Åžangay" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Çince" #. language code: chk #: zypp/LanguageCode.cc:327 #, fuzzy msgid "Chuukese" msgstr "Çince" # ML #. language code: chm #: zypp/LanguageCode.cc:329 #, fuzzy msgid "Mari" msgstr "Mali" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Çinok Jargon" #. language code: cho #: zypp/LanguageCode.cc:333 #, fuzzy msgid "Choctaw" msgstr "Chroot" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Çipevyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Çeroki" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Eski Kilise Slavcası" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Çuvaşça" #. language code: chy #: zypp/LanguageCode.cc:343 #, fuzzy msgid "Cheyenne" msgstr "Kanal" # menuentries/menuentry_language.ycp:13 #. language code: cmc #: zypp/LanguageCode.cc:345 #, fuzzy msgid "Chamic Languages" msgstr "Diller" #. language code: cop #: zypp/LanguageCode.cc:347 #, fuzzy msgid "Coptic" msgstr "Bilgi iÅŸleme" #. language code: cor kw #: zypp/LanguageCode.cc:349 #, fuzzy msgid "Cornish" msgstr "İrlandaca" #. language code: cos co #: zypp/LanguageCode.cc:351 #, fuzzy msgid "Corsican" msgstr "Kosta Rika" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Kreyol ve Pidgin Dilleri, İngilizce Kökenli (DiÄŸer)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Kreyol ve Pidgin Dilleri, Fransızca Kökenli (DiÄŸer)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Kreyol ve Pidgin Dilleri, Portekizce Kökenli (DiÄŸer)" # clients/lan_inetd_custom.ycp:762 #. language code: cre cr #: zypp/LanguageCode.cc:359 #, fuzzy msgid "Cree" msgstr "OluÅŸtur" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Kırım Tatarları" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Kreyol ve Pidgin Dilleri (DiÄŸer)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Kusitik (DiÄŸer)" # /usr/lib/YaST2/keyboard_raw.ycp:500 #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Çekçe" # clients/online_update_details.ycp:81 #. language code: dak #: zypp/LanguageCode.cc:373 #, fuzzy msgid "Dakota" msgstr "Dhaka" # /usr/lib/YaST2/keyboard_raw.ycp:380 #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Danca" # include/ui/common_messages.ycp:91 #. language code: dar #: zypp/LanguageCode.cc:377 #, fuzzy msgid "Dargwa" msgstr "Darwin" # clients/hwinfo.ycp:71 #. language code: day #: zypp/LanguageCode.cc:379 #, fuzzy msgid "Dayak" msgstr "Gün:" #. language code: del #: zypp/LanguageCode.cc:381 #, fuzzy msgid "Delaware" msgstr "Donanım" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Tlınçonca" # classnames.ycp:163 clients/hwinfo.ycp:70 #. language code: din #: zypp/LanguageCode.cc:387 #, fuzzy msgid "Dinka" msgstr "Disk" #. language code: div dv #: zypp/LanguageCode.cc:389 #, fuzzy msgid "Divehi" msgstr "Sürücü" # include/security/ui.ycp:695 #. language code: doi #: zypp/LanguageCode.cc:391 #, fuzzy msgid "Dogri" msgstr "Kullanıcı giriÅŸi" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravid (DiÄŸer)" # classnames.ycp:98 #. language code: dsb #: zypp/LanguageCode.cc:395 #, fuzzy msgid "Lower Sorbian" msgstr "Güç koruma" #. language code: dua #: zypp/LanguageCode.cc:397 #, fuzzy msgid "Duala" msgstr "Palau" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Hollanda, Orta ÇaÄŸ (ca. 1050-1350)" # /usr/lib/YaST2/keyboard_raw.ycp:350 #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Felemenkçe" # /usr/lib/YaST2/timezone_raw.ycp:191 #. language code: dyu #: zypp/LanguageCode.cc:405 #, fuzzy msgid "Dyula" msgstr "Dubai" # TO #. language code: dzo dz #: zypp/LanguageCode.cc:407 #, fuzzy msgid "Dzongkha" msgstr "Tonga" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Mısır (Antik)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elam " #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "İngilizce" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "İngilizce, Orta ÇaÄŸ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonyaca" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewe" # clients/inst_custom_part.ycp:2932 #. language code: ewo #: zypp/LanguageCode.cc:427 #, fuzzy msgid "Ewondo" msgstr "BitiÅŸ" # clients/support_question.ycp:85 #. language code: fan #: zypp/LanguageCode.cc:429 #, fuzzy msgid "Fang" msgstr "Aralık" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faroece" #. language code: fat #: zypp/LanguageCode.cc:433 #, fuzzy msgid "Fanti" msgstr "Atlantik" # include/nis_server/ui.ycp:45 #. language code: fij fj #: zypp/LanguageCode.cc:435 #, fuzzy msgid "Fijian" msgstr "Fiji" #. language code: fil #: zypp/LanguageCode.cc:437 #, fuzzy msgid "Filipino" msgstr "Flipinler" # /usr/lib/YaST2/keyboard_raw.ycp:470 #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Fince" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fin-Ugor (DiÄŸer)" #. language code: fon #: zypp/LanguageCode.cc:443 #, fuzzy msgid "Fon" msgstr "Yazı tipleri" # /usr/lib/YaST2/keyboard_raw.ycp:139 #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Fransızca" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Fransız,Orta ÇaÄŸ (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Fransız, Eski ÇaÄŸ (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 #, fuzzy msgid "Frisian" msgstr "Dosya sistemi s&ürümü" # clients/lan_inetd_custom.ycp:756 #. language code: ful ff #: zypp/LanguageCode.cc:455 #, fuzzy msgid "Fulah" msgstr "İşaretler" #. language code: fur #: zypp/LanguageCode.cc:457 #, fuzzy msgid "Friulian" msgstr "Finlandiya" #. language code: gaa #: zypp/LanguageCode.cc:459 #, fuzzy msgid "Ga" msgstr "Guam" # GA #. language code: gay #: zypp/LanguageCode.cc:461 #, fuzzy msgid "Gayo" msgstr "Gabon" #. language code: gba #: zypp/LanguageCode.cc:463 #, fuzzy msgid "Gbaya" msgstr "Gaza" # /usr/lib/YaST2/keyboard_raw.ycp:109 #. language code: gem #: zypp/LanguageCode.cc:465 #, fuzzy msgid "Germanic (Other)" msgstr "Almanca (ölü tuÅŸlar ile)" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 #, fuzzy msgid "Georgian" msgstr "Gürcistan" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Almanca" # /usr/lib/YaST2/keyboard_raw.ycp:320 #. language code: gez #: zypp/LanguageCode.cc:475 #, fuzzy msgid "Geez" msgstr "Yunanca" # src/mozilla_i18n.c:37 #. language code: gil #: zypp/LanguageCode.cc:477 #, fuzzy msgid "Gilbertese" msgstr "Vietnamca" # ML #. language code: gla gd #: zypp/LanguageCode.cc:479 #, fuzzy msgid "Gaelic" msgstr "Mali" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "İrlandaca" # /usr/lib/YaST2/timezone_raw.ycp:408 #. language code: glg gl #: zypp/LanguageCode.cc:483 #, fuzzy msgid "Galician" msgstr "Vatikan" #. language code: glv gv #: zypp/LanguageCode.cc:485 #, fuzzy msgid "Manx" msgstr "Man" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" # GA #. language code: gon #: zypp/LanguageCode.cc:491 #, fuzzy msgid "Gondi" msgstr "Gabon" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotça" # GA #. language code: grb #: zypp/LanguageCode.cc:497 #, fuzzy msgid "Grebo" msgstr "Gabon" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Yunan, Antik (1453'e kadar)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Yunan, Modern (1453-)" # clients/ui_widgets.ycp:156 #. language code: grn gn #: zypp/LanguageCode.cc:505 #, fuzzy msgid "Guarani" msgstr "Paranoya" #. language code: guj gu #: zypp/LanguageCode.cc:507 #, fuzzy msgid "Gujarati" msgstr "Süre" # /usr/lib/YaST2/timezone_raw.ycp:478 #. language code: gwi #: zypp/LanguageCode.cc:509 #, fuzzy msgid "Gwich'in" msgstr "Michigan" #. language code: hai #: zypp/LanguageCode.cc:511 #, fuzzy msgid "Haida" msgstr "Donanım" # HT #. language code: hat ht #: zypp/LanguageCode.cc:513 #, fuzzy msgid "Haitian" msgstr "Haiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 #, fuzzy msgid "Hausa" msgstr "Saat" # /usr/lib/YaST2/timezone_raw.ycp:476 #. language code: haw #: zypp/LanguageCode.cc:517 #, fuzzy msgid "Hawaiian" msgstr "Hawaii" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "İbranice" # include/ui/common_messages.ycp:95 #. language code: her hz #: zypp/LanguageCode.cc:521 #, fuzzy msgid "Herero" msgstr "hata" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" # /usr/lib/YaST2/timezone_raw.ycp:450 #. language code: hin hi #: zypp/LanguageCode.cc:527 #, fuzzy msgid "Hindi" msgstr "Midi" # HT #. language code: hit #: zypp/LanguageCode.cc:529 #, fuzzy msgid "Hittite" msgstr "Haiti" #. language code: hmn #: zypp/LanguageCode.cc:531 #, fuzzy msgid "Hmong" msgstr "Hong Kong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 #, fuzzy msgid "Upper Sorbian" msgstr "Sırpça" # /usr/lib/YaST2/keyboard_raw.ycp:570 #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Macarca" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupaca" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 #, fuzzy msgid "Iban" msgstr "Irak" # clients/ui_widgets.ycp:85 #. language code: ibo ig #: zypp/LanguageCode.cc:543 #, fuzzy msgid "Igbo" msgstr "Görmezden gel" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "İzlandaca" # clients/inst_custom_part.ycp:2920 #. language code: ido io #: zypp/LanguageCode.cc:549 #, fuzzy msgid "Ido" msgstr "Tanıtıcı" #. language code: iii ii #: zypp/LanguageCode.cc:551 #, fuzzy msgid "Sichuan Yi" msgstr "Litvanya" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 #, fuzzy msgid "Inuktitut" msgstr "BaÅŸlangıç" # clients/online_update.ycp:45 #. language code: ile ie #: zypp/LanguageCode.cc:557 #, fuzzy msgid "Interlingue" msgstr "Devam et" # /usr/lib/YaST2/timezone_raw.ycp:236 #. language code: ilo #: zypp/LanguageCode.cc:559 #, fuzzy msgid "Iloko" msgstr "Tokyo" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "İnterlingua (Uluslararası Yapay Dil DerneÄŸi)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Hint (DiÄŸer)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Endonezyaca" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Hint-Avrupa (DiÄŸer)" #. language code: inh #: zypp/LanguageCode.cc:569 #, fuzzy msgid "Ingush" msgstr "İngilizce" #. language code: ipk ik #: zypp/LanguageCode.cc:571 #, fuzzy msgid "Inupiaq" msgstr "Hindistan" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "İrani (DiÄŸer)" #. language code: iro #: zypp/LanguageCode.cc:575 #, fuzzy msgid "Iroquoian Languages" msgstr "Dil yapılandırılıyor..." # /usr/lib/YaST2/keyboard_raw.ycp:230 #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "İtalyanca" # /usr/lib/YaST2/keyboard_raw.ycp:700 #. language code: jav jv #: zypp/LanguageCode.cc:579 #, fuzzy msgid "Javanese" msgstr "Japonca" #. language code: jbo #: zypp/LanguageCode.cc:581 #, fuzzy msgid "Lojban" msgstr "Lübnan" # /usr/lib/YaST2/keyboard_raw.ycp:700 #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Japonca" #. language code: jpr #: zypp/LanguageCode.cc:585 #, fuzzy msgid "Judeo-Persian" msgstr "Endonezyaca" #. language code: jrb #: zypp/LanguageCode.cc:587 #, fuzzy msgid "Judeo-Arabic" msgstr "Arapça" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-kalpaklar" #. language code: kab #: zypp/LanguageCode.cc:591 #, fuzzy msgid "Kabyle" msgstr "Etkin" #. language code: kac #: zypp/LanguageCode.cc:593 #, fuzzy msgid "Kachin" msgstr "Aranacak yer" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Grönlandca" # /usr/lib/YaST2/timezone_raw.ycp:481 #. language code: kam #: zypp/LanguageCode.cc:597 #, fuzzy msgid "Kamba" msgstr "Samba" #. language code: kan kn #: zypp/LanguageCode.cc:599 #, fuzzy msgid "Kannada" msgstr "Kanada" #. language code: kar #: zypp/LanguageCode.cc:601 #, fuzzy msgid "Karen" msgstr "Kore dili" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "KeÅŸmirce" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri " # MW #. language code: kaw #: zypp/LanguageCode.cc:607 #, fuzzy msgid "Kawi" msgstr "Malavi" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 #, fuzzy msgid "Kazakh" msgstr "Kazakistan" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardeyce" #. language code: kha #: zypp/LanguageCode.cc:613 #, fuzzy msgid "Khasi" msgstr "Taylandça" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" # classnames.ycp:73 #. language code: khm km #: zypp/LanguageCode.cc:617 #, fuzzy msgid "Khmer" msgstr "Zamanlayıcı" #. language code: kho #: zypp/LanguageCode.cc:619 #, fuzzy msgid "Khotanese" msgstr "Çince" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Ruandaca" # clients/inst_sw_single.ycp:1461 #. language code: kir ky #: zypp/LanguageCode.cc:625 #, fuzzy msgid "Kirghiz" msgstr "Virgin" #. language code: kmb #: zypp/LanguageCode.cc:627 #, fuzzy msgid "Kimbundu" msgstr "Tür" #. language code: kok #: zypp/LanguageCode.cc:629 #, fuzzy msgid "Konkani" msgstr "Kore dili" #. language code: kom kv #: zypp/LanguageCode.cc:631 #, fuzzy msgid "Komi" msgstr "Alan adı" # CG #. language code: kon kg #: zypp/LanguageCode.cc:633 #, fuzzy msgid "Kongo" msgstr "Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Kore dili" #. language code: kos #: zypp/LanguageCode.cc:637 #, fuzzy msgid "Kosraean" msgstr "Kore dili" # /usr/lib/YaST2/timezone_raw.ycp:242 #. language code: kpe #: zypp/LanguageCode.cc:639 #, fuzzy msgid "Kpelle" msgstr "İmla" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karaçay-Balkarca" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" # /usr/lib/YaST2/keyboard_raw.ycp:668 #. language code: kru #: zypp/LanguageCode.cc:645 #, fuzzy msgid "Kurukh" msgstr "Türkçe" #. language code: kua kj #: zypp/LanguageCode.cc:647 #, fuzzy msgid "Kuanyama" msgstr "Panama" #. language code: kum #: zypp/LanguageCode.cc:649 #, fuzzy msgid "Kumyk" msgstr "Geçersiz" # /usr/lib/YaST2/keyboard_raw.ycp:668 #. language code: kur ku #: zypp/LanguageCode.cc:651 #, fuzzy msgid "Kurdish" msgstr "Türkçe" # KE #. language code: kut #: zypp/LanguageCode.cc:653 #, fuzzy msgid "Kutenai" msgstr "Kenya" #. language code: lad #: zypp/LanguageCode.cc:655 #, fuzzy msgid "Ladino" msgstr "Radyo" # UG #. language code: lah #: zypp/LanguageCode.cc:657 #, fuzzy msgid "Lahnda" msgstr "Uganda" # /usr/lib/YaST2/timezone_raw.ycp:481 #. language code: lam #: zypp/LanguageCode.cc:659 #, fuzzy msgid "Lamba" msgstr "Samba" #. language code: lao lo #: zypp/LanguageCode.cc:661 #, fuzzy msgid "Lao" msgstr "Kayıt" #. language code: lat la #: zypp/LanguageCode.cc:663 #, fuzzy msgid "Latin" msgstr "Letonyaca" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letonyaca" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: lez #: zypp/LanguageCode.cc:667 #, fuzzy msgid "Lezghian" msgstr "Belçikaca" #. language code: lim li #: zypp/LanguageCode.cc:669 #, fuzzy msgid "Limburgan" msgstr "Lüksemburg" # AO #. language code: lin ln #: zypp/LanguageCode.cc:671 #, fuzzy msgid "Lingala" msgstr "Angola" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litvanyaca" # CG #. language code: lol #: zypp/LanguageCode.cc:675 #, fuzzy msgid "Mongo" msgstr "Kongo" # include/security/ui.ycp:695 #. language code: loz #: zypp/LanguageCode.cc:677 #, fuzzy msgid "Lozi" msgstr "Kullanıcı giriÅŸi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 #, fuzzy msgid "Luxembourgish" msgstr "Lüksemburg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" # GH #. language code: lug lg #: zypp/LanguageCode.cc:685 #, fuzzy msgid "Ganda" msgstr "Gana" #. language code: lui #: zypp/LanguageCode.cc:687 #, fuzzy msgid "Luiseno" msgstr "Bunları dinle" # menuentries/menuentry_sound.ycp:14 #. language code: lun #: zypp/LanguageCode.cc:689 #, fuzzy msgid "Lunda" msgstr "Pazar" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 #, fuzzy msgid "Lushai" msgstr "Taylandça" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Makedonyaca" #. language code: mad #: zypp/LanguageCode.cc:699 #, fuzzy msgid "Madurese" msgstr "Faroece" # MW #. language code: mag #: zypp/LanguageCode.cc:701 #, fuzzy msgid "Magahi" msgstr "Malavi" # MH #. language code: mah mh #: zypp/LanguageCode.cc:703 #, fuzzy msgid "Marshallese" msgstr "MarÅŸal Adaları" # ML #. language code: mai #: zypp/LanguageCode.cc:705 #, fuzzy msgid "Maithili" msgstr "Mali" # MG #. language code: mak #: zypp/LanguageCode.cc:707 #, fuzzy msgid "Makasar" msgstr "Madagaskar" #. language code: mal ml #: zypp/LanguageCode.cc:709 #, fuzzy msgid "Malayalam" msgstr "Malezya" # include/ui/common_messages.ycp:91 #. language code: man #: zypp/LanguageCode.cc:711 #, fuzzy msgid "Mandingo" msgstr "Uyarı" # /usr/lib/YaST2/timezone_raw.ycp:207 #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 #, fuzzy msgid "Maori" msgstr "Yüksek" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Avustranezya (DiÄŸer)" # clients/online_update_details.ycp:88 clients/online_update_select.ycp:112 #. language code: mar mr #: zypp/LanguageCode.cc:719 #, fuzzy msgid "Marathi" msgstr "Matematik" # MW #. language code: mas #: zypp/LanguageCode.cc:721 #, fuzzy msgid "Masai" msgstr "Malavi" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 #, fuzzy msgid "Malay" msgstr "Malta" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" # MM #. language code: mdr #: zypp/LanguageCode.cc:729 #, fuzzy msgid "Mandar" msgstr "Miyanmar" #. language code: men #: zypp/LanguageCode.cc:731 #, fuzzy msgid "Mende" msgstr "Mod" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "İrlandaca, Orta ÇaÄŸ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" # clients/ui_helps.ycp:139 include/security/ui.ycp:624 #. language code: mis #: zypp/LanguageCode.cc:739 #, fuzzy msgid "Miscellaneous Languages" msgstr "DiÄŸer ayarlar" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" # MG #. language code: mlg mg #: zypp/LanguageCode.cc:743 #, fuzzy msgid "Malagasy" msgstr "Madagaskar" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 #, fuzzy msgid "Maltese" msgstr "Mali" #. language code: mnc #: zypp/LanguageCode.cc:747 #, fuzzy msgid "Manchu" msgstr "Man" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" # menuentries/menuentry_language.ycp:13 #. language code: mno #: zypp/LanguageCode.cc:751 #, fuzzy msgid "Manobo Languages" msgstr "Diller" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" # /usr/lib/YaST2/timezone_raw.ycp:381 #. language code: mol mo #: zypp/LanguageCode.cc:755 #, fuzzy msgid "Moldavian" msgstr "Moldova" # MN #. language code: mon mn #: zypp/LanguageCode.cc:757 #, fuzzy msgid "Mongolian" msgstr "MoÄŸolistan" #. language code: mos #: zypp/LanguageCode.cc:759 #, fuzzy msgid "Mossi" msgstr "Mors" #. language code: mul #: zypp/LanguageCode.cc:761 #, fuzzy msgid "Multiple Languages" msgstr "&Çoklu anahtarlar" # menuentries/menuentry_language.ycp:13 #. language code: mun #: zypp/LanguageCode.cc:763 #, fuzzy msgid "Munda languages" msgstr "Diller" # /usr/lib/YaST2/keyboard_raw.ycp:320 #. language code: mus #: zypp/LanguageCode.cc:765 #, fuzzy msgid "Creek" msgstr "Yunanca" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 #, fuzzy msgid "Mirandese" msgstr "Maine" #. language code: mwr #: zypp/LanguageCode.cc:769 #, fuzzy msgid "Marwari" msgstr "Donanım" # menuentries/menuentry_language.ycp:13 #. language code: myn #: zypp/LanguageCode.cc:771 #, fuzzy msgid "Mayan Languages" msgstr "Diller" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 #, fuzzy msgid "Nahuatl" msgstr "El ile" #. language code: nai #: zypp/LanguageCode.cc:777 #, fuzzy msgid "North American Indian" msgstr "Kuzey Amerika" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" # /usr/lib/YaST2/timezone_raw.ycp:356 #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" # TO #. language code: ndo ng #: zypp/LanguageCode.cc:789 #, fuzzy msgid "Ndonga" msgstr "Tonga" # /usr/lib/YaST2/keyboard_raw.ycp:79 #. language code: nds #: zypp/LanguageCode.cc:791 #, fuzzy msgid "Low German" msgstr "Almanca" # NP #. language code: nep ne #: zypp/LanguageCode.cc:793 #, fuzzy msgid "Nepali" msgstr "Nepal" # NP #. language code: new #: zypp/LanguageCode.cc:795 #, fuzzy msgid "Nepal Bhasa" msgstr "Nepal" #. language code: nia #: zypp/LanguageCode.cc:797 #, fuzzy msgid "Nias" msgstr "Takma ad" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" # NU #. language code: niu #: zypp/LanguageCode.cc:801 #, fuzzy msgid "Niuean" msgstr "Nie" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: nno nn #: zypp/LanguageCode.cc:803 #, fuzzy msgid "Norwegian Nynorsk" msgstr "Norveççe" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: nob nb #: zypp/LanguageCode.cc:805 #, fuzzy msgid "Norwegian Bokmal" msgstr "Norveççe" # TO #. language code: nog #: zypp/LanguageCode.cc:807 #, fuzzy msgid "Nogai" msgstr "Tonga" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norveççe" # /usr/lib/YaST2/timezone_raw.ycp:374 #. language code: nso #: zypp/LanguageCode.cc:813 #, fuzzy msgid "Northern Sotho" msgstr "Kuzey İrlanda" # clients/inst_language.ycp:116 #. language code: nub #: zypp/LanguageCode.cc:815 #, fuzzy msgid "Nubian Languages" msgstr "Dili ayarla" #. language code: nwc #: zypp/LanguageCode.cc:817 #, fuzzy msgid "Classical Newari" msgstr "Sınıf adı" #. language code: nya ny #: zypp/LanguageCode.cc:819 #, fuzzy msgid "Chichewa" msgstr "Åžili" #. language code: nym #: zypp/LanguageCode.cc:821 #, fuzzy msgid "Nyamwezi" msgstr "Ad" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 #, fuzzy msgid "Nyoro" msgstr "Kuzey" #. language code: nzi #: zypp/LanguageCode.cc:827 #, fuzzy msgid "Nzima" msgstr "Lima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 #, fuzzy msgid "Oriya" msgstr "Surinam" #. language code: orm om #: zypp/LanguageCode.cc:835 #, fuzzy msgid "Oromo" msgstr "root" #. language code: osa #: zypp/LanguageCode.cc:837 #, fuzzy msgid "Osage" msgstr "kaydet" # /usr/lib/YaST2/keyboard_raw.ycp:638 #. language code: oss os #: zypp/LanguageCode.cc:839 #, fuzzy msgid "Ossetian" msgstr "Rusça" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" # clients/inst_language.ycp:116 #. language code: oto #: zypp/LanguageCode.cc:843 #, fuzzy msgid "Otomian Languages" msgstr "Dili ayarla" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" # /usr/lib/YaST2/keyboard_raw.ycp:570 #. language code: pag #: zypp/LanguageCode.cc:847 #, fuzzy msgid "Pangasinan" msgstr "Macarca" #. language code: pal #: zypp/LanguageCode.cc:849 #, fuzzy msgid "Pahlavi" msgstr "Palau" #. language code: pam #: zypp/LanguageCode.cc:851 #, fuzzy msgid "Pampanga" msgstr "Paraguay" #. language code: pan pa #: zypp/LanguageCode.cc:853 #, fuzzy msgid "Panjabi" msgstr "Panama" #. language code: pap #: zypp/LanguageCode.cc:855 #, fuzzy msgid "Papiamento" msgstr "Parametre" #. language code: pau #: zypp/LanguageCode.cc:857 #, fuzzy msgid "Palauan" msgstr "Palau" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" # clients/inst_sw_single.ycp:1461 #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 #, fuzzy msgid "Persian" msgstr "Sürüm" #. language code: phi #: zypp/LanguageCode.cc:865 #, fuzzy msgid "Philippine (Other)" msgstr "Flipinler" #. language code: phn #: zypp/LanguageCode.cc:867 #, fuzzy msgid "Phoenician" msgstr "Slovence" #. language code: pli pi #: zypp/LanguageCode.cc:869 #, fuzzy msgid "Pali" msgstr "Palm" # /usr/lib/YaST2/keyboard_raw.ycp:604 #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Lehçe" #. language code: pon #: zypp/LanguageCode.cc:873 #, fuzzy msgid "Pohnpeian" msgstr "Endonezyaca" # /usr/lib/YaST2/keyboard_raw.ycp:260 #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portekizce" # clients/inst_language.ycp:116 #. language code: pra #: zypp/LanguageCode.cc:877 #, fuzzy msgid "Prakrit Languages" msgstr "Dili ayarla" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" # include/security/ui.ycp:417 #. language code: pus ps #: zypp/LanguageCode.cc:881 #, fuzzy msgid "Pushto" msgstr "Özel" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 #, fuzzy msgid "Rajasthani" msgstr "Kazakistan" # /usr/lib/YaST2/keyboard_raw.ycp:700 #. language code: rap #: zypp/LanguageCode.cc:887 #, fuzzy msgid "Rapanui" msgstr "Japonya" #. language code: rar #: zypp/LanguageCode.cc:889 #, fuzzy msgid "Rarotongan" msgstr "Yönlendirme oku" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 #, fuzzy msgid "Romany" msgstr "Romanya" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Romence" # RE #. language code: run rn #: zypp/LanguageCode.cc:901 #, fuzzy msgid "Rundi" msgstr "Reunion" # /usr/lib/YaST2/keyboard_raw.ycp:638 #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rusça" # include/cups/helps.ycp:578 #. language code: sad #: zypp/LanguageCode.cc:905 #, fuzzy msgid "Sandawe" msgstr "Yatay" # /usr/lib/YaST2/keyboard_raw.ycp:200 #. language code: sag sg #: zypp/LanguageCode.cc:907 #, fuzzy msgid "Sango" msgstr "Saygon" #. language code: sah #: zypp/LanguageCode.cc:909 #, fuzzy msgid "Yakut" msgstr "Breakout" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" # clients/inst_language.ycp:116 #. language code: sal #: zypp/LanguageCode.cc:913 #, fuzzy msgid "Salishan Languages" msgstr "Dili ayarla" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" # clients/inst_custom_part.ycp:2930 #. language code: san sa #: zypp/LanguageCode.cc:917 #, fuzzy msgid "Sanskrit" msgstr "BaÅŸlangıç" # /usr/lib/YaST2/timezone_raw.ycp:481 #. language code: sas #: zypp/LanguageCode.cc:919 #, fuzzy msgid "Sasak" msgstr "Samoa" # /usr/lib/YaST2/timezone_raw.ycp:240 #. language code: sat #: zypp/LanguageCode.cc:921 #, fuzzy msgid "Santali" msgstr "Åžangay" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Sırpça" # /usr/lib/YaST2/timezone_raw.ycp:478 #. language code: scn #: zypp/LanguageCode.cc:927 #, fuzzy msgid "Sicilian" msgstr "Michigan" #. language code: sco #: zypp/LanguageCode.cc:929 #, fuzzy msgid "Scots" msgstr "Saniye" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "Hırvatça" #. language code: sel #: zypp/LanguageCode.cc:935 #, fuzzy msgid "Selkup" msgstr "Atla" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "İrlandaca, Eski ÇaÄŸ (900'e kadar)" # menuentries/menuentry_language.ycp:13 #. language code: sgn #: zypp/LanguageCode.cc:941 #, fuzzy msgid "Sign Languages" msgstr "Diller" # GH #. language code: shn #: zypp/LanguageCode.cc:943 #, fuzzy msgid "Shan" msgstr "Gana" # /usr/lib/YaST2/timezone_raw.ycp:481 #. language code: sid #: zypp/LanguageCode.cc:945 #, fuzzy msgid "Sidamo" msgstr "Samoa" #. language code: sin si #: zypp/LanguageCode.cc:947 #, fuzzy msgid "Sinhala" msgstr "Seri numara" # clients/inst_language.ycp:116 #. language code: sio #: zypp/LanguageCode.cc:949 #, fuzzy msgid "Siouan Languages" msgstr "Dili ayarla" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Slovakça" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Slovence" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" # /usr/lib/YaST2/timezone_raw.ycp:374 #. language code: sme se #: zypp/LanguageCode.cc:963 #, fuzzy msgid "Northern Sami" msgstr "Kuzey İrlanda" # menuentries/menuentry_language.ycp:13 #. language code: smi #: zypp/LanguageCode.cc:965 #, fuzzy msgid "Sami Languages (Other)" msgstr "Diller" #. language code: smj #: zypp/LanguageCode.cc:967 #, fuzzy msgid "Lule Sami" msgstr "Modül adı" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" # /usr/lib/YaST2/timezone_raw.ycp:481 #. language code: smo sm #: zypp/LanguageCode.cc:971 #, fuzzy msgid "Samoan" msgstr "Samoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 #, fuzzy msgid "Shona" msgstr "Slovenya" # /usr/lib/YaST2/timezone_raw.ycp:450 #. language code: snd sd #: zypp/LanguageCode.cc:977 #, fuzzy msgid "Sindhi" msgstr "Midi" # clients/online_update.ycp:45 #. language code: snk #: zypp/LanguageCode.cc:979 #, fuzzy msgid "Soninke" msgstr "Devam et" # include/security/ui.ycp:695 #. language code: sog #: zypp/LanguageCode.cc:981 #, fuzzy msgid "Sogdian" msgstr "Kullanıcı giriÅŸi" # SO #. language code: som so #: zypp/LanguageCode.cc:983 #, fuzzy msgid "Somali" msgstr "Somali" # /usr/lib/YaST2/timezone_raw.ycp:240 #. language code: son #: zypp/LanguageCode.cc:985 #, fuzzy msgid "Songhai" msgstr "Åžangay" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" # /usr/lib/YaST2/keyboard_raw.ycp:200 #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "İspanyolca" # MR #. language code: srd sc #: zypp/LanguageCode.cc:991 #, fuzzy msgid "Sardinian" msgstr "Moritanya" #. language code: srr #: zypp/LanguageCode.cc:993 #, fuzzy msgid "Serer" msgstr "Sunucu" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" # HT #. language code: ssw ss #: zypp/LanguageCode.cc:997 #, fuzzy msgid "Swati" msgstr "Haiti" #. language code: suk #: zypp/LanguageCode.cc:999 #, fuzzy msgid "Sukuma" msgstr "Özet" #. language code: sun su #: zypp/LanguageCode.cc:1001 #, fuzzy msgid "Sundanese" msgstr "Sudan" # clients/hwinfo.ycp:43 #. language code: sus #: zypp/LanguageCode.cc:1003 #, fuzzy msgid "Susu" msgstr "SMBus" #. language code: sux #: zypp/LanguageCode.cc:1005 #, fuzzy msgid "Sumerian" msgstr "Sırpça" # SZ #. language code: swa sw #: zypp/LanguageCode.cc:1007 #, fuzzy msgid "Swahili" msgstr "Swaziland" # /usr/lib/YaST2/keyboard_raw.ycp:440 #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "İsveççe" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 #, fuzzy msgid "Syriac" msgstr "Surinam" # /usr/lib/YaST2/timezone_raw.ycp:461 #. language code: tah ty #: zypp/LanguageCode.cc:1013 #, fuzzy msgid "Tahitian" msgstr "Tahiti" # include/cups/ui.ycp:346 #. language code: tai #: zypp/LanguageCode.cc:1015 #, fuzzy msgid "Tai (Other)" msgstr "DiÄŸer" # clients/hwinfo.ycp:51 #. language code: tam ta #: zypp/LanguageCode.cc:1017 #, fuzzy msgid "Tamil" msgstr "Aile" #. language code: tat tt #: zypp/LanguageCode.cc:1019 #, fuzzy msgid "Tatar" msgstr "Katar" # /usr/lib/YaST2/keyboard_raw.ycp:410 #. language code: tel te #: zypp/LanguageCode.cc:1021 #, fuzzy msgid "Telugu" msgstr "Belçika" # classnames.ycp:73 #. language code: tem #: zypp/LanguageCode.cc:1023 #, fuzzy msgid "Timne" msgstr "Süre" # include/cups/ui.ycp:2582 #. language code: ter #: zypp/LanguageCode.cc:1025 #, fuzzy msgid "Tereno" msgstr "Tex bilgisi" # classnames.ycp:96 #. language code: tet #: zypp/LanguageCode.cc:1027 #, fuzzy msgid "Tetum" msgstr "Pentium" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 #, fuzzy msgid "Tajik" msgstr "Taylandça" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Taylandça" # TW # fuzzy #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 #, fuzzy msgid "Tibetan" msgstr "Tayland" # clients/ui_widgets.ycp:85 #. language code: tig #: zypp/LanguageCode.cc:1039 #, fuzzy msgid "Tigre" msgstr "görmezden gel" # NG #. language code: tir ti #: zypp/LanguageCode.cc:1041 #, fuzzy msgid "Tigrinya" msgstr "Nigeria" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" # /usr/lib/YaST2/keyboard_raw.ycp:200 #. language code: tlh #: zypp/LanguageCode.cc:1047 #, fuzzy msgid "Klingon" msgstr "Saygon" #. language code: tli #: zypp/LanguageCode.cc:1049 #, fuzzy msgid "Tlingit" msgstr "Posta listeleri" # /usr/lib/YaST2/timezone_raw.ycp:221 #. language code: tmh #: zypp/LanguageCode.cc:1051 #, fuzzy msgid "Tamashek" msgstr "TaÅŸkent" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" # SB #. language code: ton to #: zypp/LanguageCode.cc:1055 #, fuzzy msgid "Tonga (Tonga Islands)" msgstr "Solomon Adaları" #. language code: tpi #: zypp/LanguageCode.cc:1057 #, fuzzy msgid "Tok Pisin" msgstr "Token Ring" # /usr/lib/YaST2/keyboard_raw.ycp:638 #. language code: tsi #: zypp/LanguageCode.cc:1059 #, fuzzy msgid "Tsimshian" msgstr "Rusça" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 #, fuzzy msgid "Tswana" msgstr "Botswana" # TO #. language code: tso ts #: zypp/LanguageCode.cc:1063 #, fuzzy msgid "Tsonga" msgstr "Tonga" # /usr/lib/YaST2/keyboard_raw.ycp:668 #. language code: tuk tk #: zypp/LanguageCode.cc:1065 #, fuzzy msgid "Turkmen" msgstr "Türkiye" # /usr/lib/YaST2/timezone_raw.ycp:48 #. language code: tum #: zypp/LanguageCode.cc:1067 #, fuzzy msgid "Tumbuka" msgstr "Timbuktu" # clients/inst_language.ycp:116 #. language code: tup #: zypp/LanguageCode.cc:1069 #, fuzzy msgid "Tupi Languages" msgstr "Dili ayarla" # /usr/lib/YaST2/keyboard_raw.ycp:668 #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Türkçe" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altay(DiÄŸer)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 #, fuzzy msgid "Tuvinian" msgstr "Tunus" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" # HT #. language code: uga #: zypp/LanguageCode.cc:1083 #, fuzzy msgid "Ugaritic" msgstr "Haiti" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 #, fuzzy msgid "Ukrainian" msgstr "Ukrayna" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Belirsiz" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 #, fuzzy msgid "Uzbek" msgstr "Özbekistan" #. language code: vai #: zypp/LanguageCode.cc:1097 #, fuzzy msgid "Vai" msgstr "Vi" #. language code: ven ve #: zypp/LanguageCode.cc:1099 #, fuzzy msgid "Venda" msgstr "Üretici" # src/mozilla_i18n.c:37 #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamca" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" # /usr/lib/YaST2/timezone_raw.ycp:408 #. language code: vot #: zypp/LanguageCode.cc:1105 #, fuzzy msgid "Votic" msgstr "Vatikan" # clients/inst_language.ycp:116 #. language code: wak #: zypp/LanguageCode.cc:1107 #, fuzzy msgid "Wakashan Languages" msgstr "Dili ayarla" #. language code: wal #: zypp/LanguageCode.cc:1109 #, fuzzy msgid "Walamo" msgstr "Palm" #. language code: war #: zypp/LanguageCode.cc:1111 #, fuzzy msgid "Waray" msgstr "Cumartesi" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" # clients/inst_mouse.ycp:83 #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 #, fuzzy msgid "Welsh" msgstr "Batı" #. language code: wen #: zypp/LanguageCode.cc:1119 #, fuzzy msgid "Sorbian Languages" msgstr "Dil yapılandırılıyor..." #. language code: wln wa #: zypp/LanguageCode.cc:1121 #, fuzzy msgid "Walloon" msgstr "tümü" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 #, fuzzy msgid "Kalmyk" msgstr "KonuÅŸma" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" # /usr/lib/YaST2/keyboard_raw.ycp:700 #. language code: yap #: zypp/LanguageCode.cc:1131 #, fuzzy msgid "Yapese" msgstr "Japonca" # include/nis_server/ui.ycp:45 #. language code: yid yi #: zypp/LanguageCode.cc:1133 #, fuzzy msgid "Yiddish" msgstr "Sonlandır" # AW #. language code: yor yo #: zypp/LanguageCode.cc:1135 #, fuzzy msgid "Yoruba" msgstr "Aruba" # clients/inst_language.ycp:116 #. language code: ypk #: zypp/LanguageCode.cc:1137 #, fuzzy msgid "Yupik Languages" msgstr "Dili ayarla" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 #, fuzzy msgid "Zenaga" msgstr "Grenada" # BT #. language code: zha za #: zypp/LanguageCode.cc:1143 #, fuzzy msgid "Zhuang" msgstr "Bütan" #. language code: znd #: zypp/LanguageCode.cc:1145 #, fuzzy msgid "Zande" msgstr "Bölge" # /usr/lib/YaST2/timezone_raw.ycp:326 #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zulu" #. language code: zun #: zypp/LanguageCode.cc:1149 #, fuzzy msgid "Zuni" msgstr "Tunis" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "AÅŸağıdaki iÅŸlemler tamamlanacak:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(süresi dolmadı)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(süresi dolmadı)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(SÜRESİ DOLDU)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(24 saat içinde süresi dolacak)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "'%s' dosyası okunamadı" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "Depo ismi noktayla baÅŸlayamaz." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "Servis ismi noktayla baÅŸlayamaz." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "'%s' dosyası açılamıyor." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "%s oluÅŸturulamıyor" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Metadata önbellek klasörü oluÅŸturulamadı." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "'%s' depo önbelleÄŸi oluÅŸturuluyor" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "%s 'de önbellek oluÅŸturulamıyor - yazma izni yok." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %d." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "'%s' okunmaya çalışılırken bir hata meydana geldi" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "'%s' depoya ekleniyor" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Geçersiz yetki '{0}'" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "'%s' deposu siliniyor" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Reponun nerede depolandığı belirlenemedi." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "'%s' silinemiyor" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Servesin nerede depolandığı belirlenemedi." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 #, fuzzy msgid "Unable to clone Url object" msgstr "çalışma alanı oluÅŸturulamadı\n" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 #, fuzzy msgid "Unable to parse Url components" msgstr "çalışma alanı oluÅŸturulamadı\n" # include/cups/ui.ycp:2577 include/cups/ui.ycp:2598 #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "bilinmeyen" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "desteklenmeyen" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Seviye 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Seviye 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Seviye 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Ek Kullanıcı SözleÅŸmesi Gerekli" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "geçersiz" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Destek seviyesi belirtilmemiÅŸ" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "SaÄŸlayıcı destek saÄŸlamıyor." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Destek almak için ek kullanıcı sözleÅŸmesi gerekmektedir." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Bilinmeyen destek seçeneÄŸi. Açıklama bulunamadı" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "Sistem yönetimi uygulama tarafından pid kullanılarak kilitlendi %d (%s). \n" "Tekrar denemeden önce bu uygulamayı kapatın." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Tarih:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "KilitlenmiÅŸ dosya açılamıyor: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Bu iÅŸlem zaten baÅŸka bir program tarafından çalıştırıldı." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Geçersiz düzenli ifade '%s': regcomp %d döndürdü" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Geçersiz düzenli ifade '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "'%s' için kimlik doÄŸrulama gerekmektedir" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Kaydınızın geçerli olduÄŸundan ve süresinin dolmadığından emin olmak için en " "yakın Novell Müşteri Merkezini ziyaret edin." #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "%s açılamadı - %s\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Hatalı dosya adı: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "'%s' iÅŸlemi gerçekleÅŸtirilmeye çalışılırken ortam açılamadı." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "'%s' dosyası '%s' ortamında bulunamadı" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "'%s' dosyası yazılamadı." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Ortam ekli deÄŸil" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Hatalı medya baÄŸlantı noktası" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "'%s' için indirme (curl) baÅŸlatılamadı" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "'%s' ortamındaki '%s' te sistem isnası meydana geldi." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "'%s' ortamındaki '%s' yolu bir dosya deÄŸil." #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Hata: %s temel dizini bir dizin deÄŸil, atlanıyor.\n" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "URI de boÅŸ alan adı" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "URI de boÅŸ dosya sistemi" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "URI de içeriksiz hedef" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 #, fuzzy msgid "Operation not supported by medium" msgstr "Profil sürümü Apparmor modülü tarafından desteklenmiyor\n" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "'%s' için indirme(curl) hatası:\n" "Hata kodu: %s\n" "Hata raporu: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "'%s' için indirme (curl) ayarları düzenlenirken bir hata meydana geldi:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "'%s' medya kaynağı gerekli ortamı içermiyor." #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "'%s' medyası baÅŸka bir oluÅŸum tarafından kullanımda" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Hiçbir sürücü çıkartılamıyor" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "'%s' medyası çıkartılamadı" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "İzin verilmedi\n" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "'%s' konumuna ÅŸuan ulaşılamaz. " #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" "SSL sertifikası problemi, CA sertifikasının '%s' için geçerli olduÄŸunu " "doÄŸrulayın." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Gerekli '%s' niteliÄŸi bulunamadı." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "'%s' ya da '%s' niteliklerinden biri yada ikisi birden gerekli." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "%s paketi aktarılırken hasar görmüş olabilir. Kurtarmayı denemek istiyor " "musunuz?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "%s Paketi bulunamadı. Tekrar aramak ister misiniz?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "'%s' deposundaki '%s' e ulaşılamıyor" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Sat-pool oluÅŸturulamadı." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "ÅŸu çözülmemiÅŸ gereksinimlere sahip:" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s dağıtım güncelleme deposuna ait deÄŸil." # clients/hwinfo.ycp:66 #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s alt mimariye sahip" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" # clients/inst_sw_single.ycp:742 #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Yetersiz bağımlılıklar:" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "İstenen bütün depoları etkinleÅŸtirdiÄŸinizden emin misiniz?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" # clients/online_update_start.ycp:171 #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s kurulabilir deÄŸil" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "%s ve %s in ikisi birden yüklenemez" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s, %s tarafından saÄŸlanan %s ile çakışıyor." #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s %s tarafından saÄŸlanan %s'in süresini bitirdi." #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%1, %2 ile çakışıyor" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%1, %2 ile çakışıyor" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s, %s'i gerektiriyor, ama bu gereklilik saÄŸlanamıyor." #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "Yüklenemez saÄŸlayıcılar:" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "Yüklenemez saÄŸlayıcılar:" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "%s yüklenmedi" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Bu istek sisteminizi çökertecek!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "%1, %2 ile çakışıyor" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%1 paketini sil" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Kurulum" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "uygulandı" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr "iÅŸletme hatası" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "İptal etme sırasında uygulama es geçildi." #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" "Güncelleme bilgilendirmesi için mesaj gönderilirken bir hata meydana geldi." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Yükleme yönlendirildiÄŸi ÅŸekilde iptal edildi" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Üzgünüz, libzypp'nin bu versiyonunda HAL desteklenmemektedir." #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "baÄŸlı deÄŸil" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 #, fuzzy msgid "Unable to create dbus connection" msgstr "çalışma alanı oluÅŸturulamadı\n" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" # clients/online_update_load.ycp:380 #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "İndirme iÅŸlemi baÅŸarısız oldu:" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "%1% dosyasından genel anahtar alınamadı" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "'%1%' genel anahtarı silinemedi" #: zypp/target/rpm/RpmDb.cc:1599 #, fuzzy msgid "Package is not signed!" msgstr "Geri yüklenecek paketler" # clients/sw_single.ycp:310 #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, fuzzy, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Yapılandırma dosyalarını kaydet" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Ek rpm çıktısı" # clients/inst_sw_backup.ycp:260 #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "%s yedeklemesi oluÅŸturuldu" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Mutex nitelikleri baÅŸlatılamıyor" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Yinelemeli mutex nitelikleri ayarlanamadı." #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Yinelemeli mutex baÅŸlatılamıyor" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Mutex kilidine ulaşılamadı." #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Mutex kilidi açılamıyor" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" # include/nfs/routines.ycp:188 #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Geçersiz %s bileÅŸeni '%s'" # include/nfs/routines.ycp:188 #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Geçersiz %s bileÅŸeni" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, fuzzy, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Geçersiz yetki '{0}'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" # include/nfs/routines.ycp:188 #: zypp/url/UrlBase.cc:1049 #, fuzzy, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Geçersiz özellik '{0}'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" # include/nfs/routines.ycp:188 #: zypp/url/UrlBase.cc:1081 #, fuzzy, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Geçersiz özellik '{0}'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Kodlanmış dizi bir NUL baytı içerir" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Geçersiz dizi karakteri ayırma parametresi" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Geçersiz dizi karakteri birleÅŸtirme parametresi" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "%s dosyasından genel anahtar alınamadı: %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "'%s' genel anahtarı silinemedi: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr " '%s' deki image dosyasını baÄŸlayacak döngü aracı bulunamadı" #, fuzzy #~ msgid "generally ignore of some dependecies" #~ msgstr "ÅŸu çözülmemiÅŸ gereksinimlere sahip:" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #, fuzzy #~ msgid "do not forbid installation of %s" #~ msgstr "Kurulan disk:" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #~ msgid "do not keep %s installed" #~ msgstr "%s i kurulu halde bırakmayın" #~ msgid "Tried to import not existant key %s into keyring %s" #~ msgstr "حاول استيراد Ù…ÙØªØ§Ø­ غير موجود %s إلى حلقة Ù…ÙØ§ØªÙŠØ­ %s" #~ msgid "Valid metadata not found at specified URL(s)" #~ msgstr "بيانات التعري٠غير صحيحة لم يتم العثور عليها ÙÙŠ المسار(s)" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "خيار list غير معروÙ" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "لا يحتوي المل٠%s على مجموع اختباري.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة المل٠%s باستخدام Ø§Ù„Ù…ÙØªØ§Ø­ التالي:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير صالح.\n" #~ "متوقع %sØŒ تم العثور على %s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "يحتوي المل٠%s على مجموع اختباري غير معرو٠%s.\n" #~ "هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "لم يتم توقيع المل٠%s.\n" #~ "هل تريد استخدامه على أي حال؟" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "تم توقيع المل٠%s باستخدام Ù…ÙØªØ§Ø­ غير معروÙ:\n" #~ "%s|%s|%s\n" #~ " هل تريد استخدام المل٠على أي حال؟" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "تم العثور على Ù…ÙØªØ§Ø­ غير موثوق:\n" #~ "%s|%s|%s\n" #~ " هل تريد الوثوق Ø¨Ø§Ù„Ù…ÙØªØ§Ø­ØŸ" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "كلمة السر CA غير صالحة." #~ msgid "%s remove ok" #~ msgstr "تمت إزالة %s بنجاح" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "ÙŠÙˆÙØ± %s هذه التبعية، لكنه سيؤدي إلى تغيير هيكل العنصر المثبَّت" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "قم بتثبيت %s بالرغم من أنه قد يؤدي إلى تغيير الهيكل" #~ msgid "delete %s" #~ msgstr "حذ٠%s" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "تعذر ÙØªØ­ المل٠%1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "تعذرت قراءة القطاع %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "تحليل معلمة المسار غير مدعوم لعنوان URL هذا" #~ msgid "Software management is already running." #~ msgstr "إدارة البرامج قيد التشغيل Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "%s is replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #~ msgid "%s replaced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "لن يتم إلغاء تثبيت %s لأنه لا يزال مطلوبًا" #~ msgid "Invalid information" #~ msgstr "المعلومات غير صالحة" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s مطلوب بواسطة التبعيات القابلة للتحليل الأخرى" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s مطلوب بواسطة\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s يجعل التبعيات القابلة للتحليل الأخرى قديمة" #~ msgid "%s obsoletes:%s" #~ msgstr "%s يجعل العنصر التالي قديمًا:%s" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "سيتم حذ٠هذه التبعيات القابلة للتحليل من النظام." #~ msgid "%s depends on other resolvables" #~ msgstr "%s يعتمد على التبعيات القابلة للتحليل الأخرى" #~ msgid "%s depends on %s" #~ msgstr "%s يعتمد على %s" #~ msgid "%s depends on:%s" #~ msgstr "%s يعتمد على:%s" #~ msgid "Child of" #~ msgstr "عنصر ÙØ±Ø¹ÙŠ Ù„Ù€" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "لا ÙŠØªÙˆÙØ± أي مورد يدعم هذا المتطلب." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "نتيجة للمشكلات الموضحة أعلاه/أدناه، لن يقوم هذا التحديد بحل ÙƒØ§ÙØ© التبعيات" #~ msgid "%s has unfulfilled requirements" #~ msgstr "لم يتم Ø§Ø³ØªÙŠÙØ§Ø¡ متطلبات %s" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم إلغاء تثبيته" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "يستوÙÙŠ %s تبعيات %sØŒ لكن سيتم Ø§Ù„Ø§Ø­ØªÙØ§Ø¸ به ÙÙŠ النظام لديك" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s يجعل %s قديمًا. لكن يتعذر حذ٠%s لأنه مقÙÙ„." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "تعذر تثبيت %s لأنه متعارض" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "لطلب %s لـ %s عند تحديث %s" #~ msgid ", Trigger: " #~ msgstr "ØŒ تشغيل:" #~ msgid "package" #~ msgstr "الحزمة" #~ msgid "selection" #~ msgstr "التحديد" #~ msgid "pattern" #~ msgstr "النمط" #~ msgid "product" #~ msgstr "المنتج" #~ msgid "script" #~ msgstr "البرنامج النصي" #~ msgid "message" #~ msgstr "الرسالة" #~ msgid "atom" #~ msgstr "الذرة" #~ msgid "system" #~ msgstr "النظام" #~ msgid "Resolvable" #~ msgstr "التبعية القابلة للتحليل" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "تعليم محاولة التحديد هذه كغير صالحة." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "تعليم التبعية القابلة للتحليل %s باعتبارها قابلة لإلغاء التثبيت" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "تمت جدولة %s لتثبيته، لكن لا يمكن القيام بذلك بسبب وجود مشكلات ÙÙŠ التبعية." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "تعذر تثبيت %s لأنه تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب إلغاء تثبيته" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "تعذر تثبيت %s لأنه لا ينطبق على هذا النظام." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "تعذر تثبيت %sØŒ لأن %s تم تعليمه Ø¨Ø§Ù„ÙØ¹Ù„ على أنه مطلوب تثبيته" #~ msgid "This would invalidate %s." #~ msgstr "سيؤدي هذا إلى إلغاء صلاحية %s." #~ msgid "Updating %s to %s" #~ msgstr "تحديث %s إلى %s" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "لا يوجد أي Ù…ÙˆÙØ±ÙŠÙ† مثبَّتين بدائل لـ %s" #~ msgid "for %s" #~ msgstr "لـ %s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "لا يمكن التحديث إلى %s لتجنب إزالة %s." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته لإلغاء تثبيته." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تم تثبيت إصدار آخر لـ %s هذا Ø¨Ø§Ù„ÙØ¹Ù„." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ÙŠÙˆÙØ± %sØŒ لكنه قابل لإلغاء التثبيت. حاول تثبيته للحصول على مزيد من " #~ "Ø§Ù„ØªÙØ§ØµÙŠÙ„." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكنه مقÙÙ„." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن تمت جدولته Ù„Ù„Ø§Ø­ØªÙØ§Ø¸ به." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ÙŠÙˆÙØ± %sØŒ لكن له هيكل آخر." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "تعذر Ø§Ø³ØªÙŠÙØ§Ø¡ متطلب %s لـ %s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل مثبَّتة أخرى، لذا لن يتم إلغاء الارتباط." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "يتطلب تعارض %s (%s) إزالة %s المطلوب تثبيته" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "تعليم %s باعتباره قابل لإلغاء التثبيت بسبب وجود تعارضات على %s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid "%s depended on %s" #~ msgstr "%s اعتمد على %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s مطلوب بواسطة %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s تم استبداله بـ %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "%s part of %s" #~ msgstr "%s جزء من %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "موعد الاستحقاق: %1" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s مطلوب بواسطة %s" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s مطلوب بواسطة تبعية قابلة للتحليل أخرى مطلوب تثبيتها، لذا لن يتم إلغاء " #~ "الارتباط." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "تعذر إنشاء المل٠المطلوب لتنÙيذ عملية تثبيت التحديث." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "تم تسجيل مصدر واحد على الأقل، تعذرت استعادة المصادر المخزَّنة." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "تعذر تثبيت %s Ù„Ø§Ø³ØªÙŠÙØ§Ø¡ تبعيات %s" #~ msgid "%s dependend on %s" #~ msgstr "%s اعتمد على %s" #~ msgid "Reading index files" #~ msgstr "قراءة Ù…Ù„ÙØ§Øª الÙهرس" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "ÙØ´Ù„ مل٠repomd.xml الموقَّع ÙÙŠ التحقق من التوقيع." #~ msgid "Reading product from %s" #~ msgstr "قراءة المنتج من %s" #~ msgid "Reading filelist from %s" #~ msgstr "قراءة قائمة Ø§Ù„Ù…Ù„ÙØ§Øª من %s" #~ msgid "Reading packages from %s" #~ msgstr "قراءة الحزم من %s" #~ msgid "Reading selection from %s" #~ msgstr "قراءة التحديد من %s" #~ msgid "Reading pattern from %s" #~ msgstr "قراءة النمط من %s" #~ msgid "Reading patches index %s" #~ msgstr "قراءة Ùهرس التصحيحات %s" #~ msgid "Reading patch %s" #~ msgstr "قراءة التصحيح %s" #~ msgid "The script file failed the checksum test." #~ msgstr "ÙØ´Ù„ مل٠البرنامج النصي ÙÙŠ اختبار المجموع الاختباري." #~ msgid "Reading translation: %s" #~ msgstr "قراءة الترجمة: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "ÙØ´Ù„ التحقق من سلامة الحزمة %s. هل تريد إعادة محاولة إنزالها، أو إيقا٠" #~ "التثبيت؟" #~ msgid " miss checksum." #~ msgstr "Ùقد المجموع الاختباري." #~ msgid " fails checksum verification." #~ msgstr "ÙØ´Ù„ التحقق من المجموع الاختباري." #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "%s anahtarlığındaki %s genel anahtarı %s dosyasında oluÅŸturulamadı" #~ msgid "Can't chdir to '/' inside chroot (%s)." #~ msgstr "Chroot'un içinde '/' chdir yapılamıyor(%s) ." #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "'%s' için indirme (Metalink curl) baÅŸlatılamadı." #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "'%s' için indirme(metalink curl) hatası:\n" #~ "Hata kodu: %s\n" #~ "Hata raporu: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "%d%% 'de indirme kesildi" #~ msgid "Download interrupted by user" #~ msgstr "İndirme kullanıcı tarafından iptal edildi" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "'%s' için indirme (metalink curl) ayarları düzenlenirken bir hata " #~ "meydana geldi:" #~ msgid "Failed to download %s from %s" #~ msgstr "%s den %s indirilirken hata meydana geldi" #, fuzzy #~ msgid "Serbia and Montenegro" #~ msgstr "Seri kablo baÄŸlantısı" # clients/inst_sw_single.ycp:742 #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "Yetersiz bağımlılıklar:" #, fuzzy #~ msgid "%s remove failed" #~ msgstr "rpm baÅŸarısız oldu." #, fuzzy #~ msgid "rpm output:" #~ msgstr "Program çıktısı:\n" # clients/online_update_start.ycp:171 #, fuzzy #~ msgid "%s install failed" #~ msgstr "Kurulum iÅŸlemi baÅŸarısız oldu." #, fuzzy #~ msgid "%s installed ok" #~ msgstr "&Evet, kur" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "Ignore that %s is already set to install" #~ msgstr "%1 dizini zaten listede." #, fuzzy #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "Ignore this conflict of %s" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "Ignore this requirement just here" #~ msgstr "ÅŸu çözülmemiÅŸ gereksinimlere sahip:" #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Eksik paketleri kur" #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Eksik paketleri kur" #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "install %s" #~ msgstr "%1 paketini kur" # include/security/ui.ycp:774 #, fuzzy #~ msgid "unlock %s" #~ msgstr "Saatler" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "%s conflicts with other resolvables" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "Bu paket kurulu deÄŸildir ve kurulmayacaktır." # clients/inst_sw_single.ycp:742 #, fuzzy #~ msgid "%s has missing dependencies" #~ msgstr "Yetersiz bağımlılıklar:" # clients/inst_sw_single.ycp:742 #, fuzzy #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "Yetersiz bağımlılıklar:" # clients/online_update_load.ycp:923 #, fuzzy #~ msgid "No need to install %s" #~ msgstr "yeniden kurulmalı" # clients/inst_sw_single.ycp:742 #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "Yetersiz bağımlılıklar:" #, fuzzy #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%1, %2 ile çakışıyor" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "Paket gereksinimlerini listele" #, fuzzy #~ msgid ", Action: " #~ msgstr "Hareket" # clients/online_update_details.ycp:88 clients/online_update_select.ycp:112 #~ msgid "patch" #~ msgstr "yama" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #, fuzzy #~ msgid "Establishing %s" #~ msgstr "Kurulan disk:" # include/partitioning/auto_part_ui.ycp:200 include/partitioning/auto_part_ui.ycp:249 #, fuzzy #~ msgid "Installing %s" #~ msgstr "Kurulan disk:" # include/scanner/scanner_start.ycp:138 #, fuzzy #~ msgid "Skipping %s: already installed" #~ msgstr "Önceden kurulu tarayıcılar kontrol ediliyor" #, fuzzy #~ msgid "%s is locked and cannot be uninstalled." #~ msgstr "Bu paket kurulu deÄŸildir ve kurulmayacaktır." # include/ui/common_messages.ycp:95 #, fuzzy #~ msgid " Error!" #~ msgstr "Hata" #, fuzzy #~ msgid " Important!" #~ msgstr "Dışarıdan veri al" #, fuzzy #~ msgid "Unable to parse Url authority" #~ msgstr "çalışma alanı oluÅŸturulamadı\n" #, fuzzy #~ msgid "Ignore this requirement generally" #~ msgstr "ÅŸu çözülmemiÅŸ gereksinimlere sahip:" #, fuzzy #~ msgid "Unable to restore all sources." #~ msgstr "çalışma alanı oluÅŸturulamadı\n" # # clients/inst_sw_select.ycp:195 #, fuzzy #~ msgid "Reading packages file" #~ msgstr "{0} dosyasını barındıran paket yok" #, fuzzy #~ msgid "Downloading %s" #~ msgstr "%1 yüklemesinde bir hata oluÅŸtu" #~ msgid "Ok" #~ msgstr "Tamam" #, fuzzy #~ msgid "The package file has incorrect MD5 sum" #~ msgstr "Geri yüklenecek paketler" #, fuzzy #~ msgid "The package has incorrect signature" #~ msgstr "Geri yüklenecek paketler" #, fuzzy #~ msgid "The package archive has incorrect MD5 sum" #~ msgstr "Geri yüklenecek paketler" #~ msgid "Default" #~ msgstr "Öntanımlı" # include/scanner/scanner_manual.ycp:82 #, fuzzy #~ msgid "to be installed (soft)" #~ msgstr "ÅŸu ÅŸekilde yüklenecek:" # clients/online_update_load.ycp:923 #, fuzzy #~ msgid "to be uninstalled" #~ msgstr "yeniden kurulmalı" libzypp-17.7.0/po/uk.po000066400000000000000000003545061334444677500147320ustar00rootroot00000000000000# translation of zypp.po to Ukrainian # Translation of zypp.uk.po to Ukrainian # Ukrainian message file for YaST2 (@memory@). # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2005 SUSE Linux Products GmbH. # # xxx, 2005. # Ivan Petrouchtchak , 2006, 2007. # Yuri Chornoivan , 2008. # Ivan Petrouchtchak , 2008, 2009. # Andriy Bandura , 2014, 2015. msgid "" msgstr "" "Project-Id-Version: zypp.uk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-04-14 04:38+0000\n" "Last-Translator: Andriy Bandura \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "ВинÑток Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Сумнівний тип \"%s\" Ð´Ð»Ñ %u байтової контрольної Ñуми \"%s\"" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Ðевідома країна: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ðемає коду" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Ðндорра" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Об'єднані ÐрабÑькі Емірати" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "ÐфганіÑтан" # AG #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Тринідад та Тобаго" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "ÐнгільÑ" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "ÐлбаніÑ" # AM # fuzzy #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Ðргентина" # AN # fuzzy #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "ГолландіÑ" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Ðнгола" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Ðнтарктика" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Ðргентина" # AS # fuzzy #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Ðфрика, північ" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "ÐвÑтріÑ" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "ÐвÑтраліÑ" # CU # fuzzy #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Ðруба" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "ÐландÑькі оÑтрови" # AZ #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Ðзербайджан" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "БоÑÐ½Ñ–Ñ Ñ– Герцеговина" # BB #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "БарбадоÑ" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Бангладеш" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "БельгіÑ" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Буркіна ФаÑо" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "БолгаріÑ" # BH # fuzzy #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "БразиліÑ" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Бурунді" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Бенін" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Бермуди" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Бруней ДаруÑÑалам" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "БолівіÑ" # BR #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "БразиліÑ" # BS # fuzzy #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Панама" # BH # fuzzy #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Бутан" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "ОÑтрів Буве" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "БотÑвана" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "БілоруÑÑŒ" # BZ # fuzzy #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "БельгіÑ" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Канада" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "КокоÑові оÑтрови" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Конго" # CF # fuzzy #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "ЦентральноафриканÑька реÑпубліка" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "ШвейцаріÑ" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Кот д'Івуар" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "ОÑтрови Кука" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Чилі" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Камерун" # CN #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Китай" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "КолумбіÑ" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "КоÑта-Рика" # CU # fuzzy #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Куба" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Капо Верде" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "РіздвÑні оÑтрови" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Кіпр" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "ЧехіÑ" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Ðімеччина" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Джибуті" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "ДаніÑ" # DM # fuzzy #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "РумуніÑ" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "ДомініканÑька реÑпубліка" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Ðлжир" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Еквадор" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "ЕÑтоніÑ" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Єгипет" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Західна Сахара" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "ЕритреÑ" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "ІÑпаніÑ" # ET # fuzzy #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "ЕÑтоніÑ" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "ФінлÑндіÑ" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Фіджі" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ФолклендÑькі оÑтрови (МальвінÑькі)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "ÐœÑ–ÐºÑ€Ð¾Ð½ÐµÐ·Ñ–Ñ (Федеральні Штати)" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "ФарерÑькі оÑтрови" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "ФранціÑ" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Метропольна ФранціÑ" # GH # fuzzy #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Габон" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Об'єднане КоролівÑтво" # GD #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Гренада" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "ГрузіÑ" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Французька Гвіана" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "ГернÑÑ–" # GH # fuzzy #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Китай" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Гібралтар" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "ГренландіÑ" # GM # fuzzy #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Ямайка" # GU # fuzzy #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "ГвінеÑ" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Гваделупа" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Екваторіальна ГвінеÑ" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "ГреціÑ" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Південна Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ñ–Ñ Ñ– Південні Сандвічеві оÑтрови" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Гватемала" # GU # fuzzy #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Гватемала" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "ГвінеÑ-БіÑау" # GH # fuzzy #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Гвіана" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Гонг Конг" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "ХердÑькі Ñ– Макдональд оÑтрови" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "ГондураÑ" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "ХорватіÑ" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Гаїті" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Угорщина" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "ІндонезіÑ" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "ІрландіÑ" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Ізраїль" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "ОÑтрів Мен" #: zypp/CountryCode.cc:261 msgid "India" msgstr "ІндіÑ" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "БританÑька Ð¢ÐµÑ€Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ Ð² ІндійÑькому океані" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Ірак" # IR # fuzzy #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Ізраїль" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "ІÑландіÑ" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ІталіÑ" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "ДжерÑÑ–" # JM # fuzzy #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Ямайка" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ЙорданіÑ" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "ЯпоніÑ" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "КеніÑ" # KZ # fuzzy #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "КиргизÑтан" # KH # fuzzy #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "КолумбіÑ" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Кірибаті" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Комори" # KN # fuzzy #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Сент ÐšÑ–Ñ‚Ñ Ñ– ÐевіÑ" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Північна КореÑ" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Південна КореÑ" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Кувейт" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Кайманові оÑтрови" # KZ # fuzzy #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Тайвань" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "ЛаоÑька Ðародно-Демократична РеÑпубліка" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Ліван" # LC # fuzzy #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Санта ЛюÑÑ–Ñ" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Ліхтенштейн" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Шрі-Ланка" # LR # fuzzy #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "СербіÑ" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "ЛеÑото" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Литва" # LU #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "ЛюкÑембург" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "ЛатвіÑ" # LR # fuzzy #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "ЛівіÑ" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Марокко" # MO # fuzzy #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Монако" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Молдова" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "ЧорногоріÑ" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Сен-Мартен" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "МадагаÑкар" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Маршаллові оÑтрови" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "МакедоніÑ" # ML # fuzzy #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Мальта" # MM # fuzzy #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Панама" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "МонголіÑ" # MO # fuzzy #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Мальта" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Північні МарианÑькі оÑтрови" # MU # fuzzy #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Мартиніка" # MR # fuzzy #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Литва" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "МонтÑеррат" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Мальта" # MU # fuzzy #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Литва" # MV # fuzzy #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Мальта" # MW # fuzzy #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Мальта" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "МекÑика" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "МалайзіÑ" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Мозамбік" # GM # fuzzy #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "ÐамібіÑ" # NC # fuzzy #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "МакедоніÑ" # NG # fuzzy #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Ðігер" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "ОÑтрів Ðорфолк" # NG # fuzzy #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "ÐігеріÑ" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Ðікарагуа" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Ðідерланди" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "ÐорвегіÑ" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Ðепал" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Ðауру" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Ðіуе" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Ðова ЗеландіÑ" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Оман" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Панама" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Перу" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Французька ПолінезіÑ" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Папуа Ðова ГвінеÑ" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Філіппіни" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "ПакиÑтан" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Польща" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Сен П'єр Ñ– Мікелон" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Піткерн" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Пуерто ріко" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "ПалеÑтинÑька територіÑ" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "ПортугаліÑ" # PW # fuzzy #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Парагвай" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Парагвай" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Катар" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Реуніон" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "РумуніÑ" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "СербіÑ" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "РоÑійÑька ФедераціÑ" # RW # fuzzy #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Канада" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "СаудівÑька ÐравіÑ" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Соломонові оÑтрови" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Сейшели" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Судан" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "ШвеціÑ" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Сингапур" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "ОÑтрів СвÑтої Олени" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "СловеніÑ" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Свальбард Ñ– Ян Маєн" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Словацька" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Сьєра Леон" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Сан Марино" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Сенегал" # SO # fuzzy #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "РумуніÑ" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Суринам" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Сан Томе Ñ– ПринÑипі" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "Ель Сальвадор" # SY # fuzzy #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "СербіÑ" # SZ # fuzzy #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Таїланд" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "ОÑтрови Ð¢ÐµÑ€ÐºÑ Ñ– КайкоÑ" # TD # fuzzy #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Китай" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Французькі Південні Території" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Того" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Таїланд" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "ТаджикиÑтан" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Токелау" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "ТуркменіÑтан" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "ТуніÑ" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Тонга" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Східний Тімор" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Туреччина" # TT #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "РеÑпубліка Тринідад та Тобаго" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Тувалу" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Тайвань" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "ТанзаніÑ" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Україна" # UG # fuzzy #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Канада" # UM # fuzzy #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "СШÐ" # US # fuzzy #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "СШÐ" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Уругвай" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "УзбекиÑтан" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "СвÑтий ПреÑтіл (Ватикан, міÑто-держава)" # VC # fuzzy #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Сент Вікент Ñ– Гренадіни" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "ВенеÑуела" # VI # fuzzy #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "ВіргінÑькі оÑтрови (БританіÑ)" # VI # fuzzy #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "ВіргінÑькі оÑтрови, СШÐ" # VN # fuzzy #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Ð’'єтнамÑька" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Вануату" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Ð’Ð°Ð»Ð»Ñ–Ñ Ñ– ФутунÑькі оÑтрови" # KH # fuzzy #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Самоа" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Ємен" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Майотта" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Південна Ðфрика" # ZM # fuzzy #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Ямайка" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Зімбабве" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Ðадає" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "Вимоги" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Вимагає" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Конфліктує" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "Робить заÑтарілим" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Рекомендує" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Пропонує" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Покращує" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Доповнює" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Ðеможливо відкрити канал (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Ðе вдалоÑÑ Ñтворити chroot Ð´Ð»Ñ \"%s\" (%s)." #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" "Ðеможливо змінити каталог на '%s' вÑередині Ñередовища chroot '%s' (%s)." #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Ðеможливо змінити каталог на '%s' (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Ðе вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ \"%s\" (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ·Ð¸Ñ‚Ð¸ (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Команда завершила роботу зі Ñтаном %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Команду було зупинено за Ñигналом %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Команда завершила роботу з невідомою помилкою." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Спроба імпорту неіÑнуючого ключа %s у Ñховище ключів %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "Ðе вдалоÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ ключ." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Ðе вдалоÑÑŒ вилучити ключ." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Файл підпиÑу \"%s\" не знайдено" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ðевідома мова: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Ðфар" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Ðбхазька" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "ÐхінÑька" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Ðколі" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Ðдангме" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Ðдиґхе" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Ðфро-азіатÑькі (інші)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Ðфрігілі" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "ÐфрикаанÑька" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Ðіну" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Ðкан" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "ÐкадійÑька" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "ÐлбанÑька" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "ÐлеутÑька" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "ÐлгонкінÑькі мови" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "ПівденноалтайÑька" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "ÐмхарÑька" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "ÐнглійÑька, Ñтара (450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Мови апачі" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "ÐрабÑький" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "ÐрамейÑька" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "ÐрагонÑька" # AM # fuzzy #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "ВірменÑька" # AM # fuzzy #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "ÐрауканÑька" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Ðрапахо" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Штучні (інші)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Ðравак" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "ÐÑÑамÑька" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "ÐÑтурійÑька" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "ÐтапаÑькі мови" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "ÐвÑтралійÑькі мови" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "ÐварÑька" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "ÐвеÑтан" # SZ # fuzzy #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Ðвадхі" # MM # fuzzy #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "ÐймарÑька" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "ÐзербайджанÑька" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Банда" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "БамілекÑькі мови" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "БашкирÑька" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Балучі" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Бамбара" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "БалійÑька" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "БаÑкÑька" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "БаÑа" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "БалтійÑькі (інші)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Бежа" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "БілоруÑька" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Бемба" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "БенгальÑька" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "БерберÑькі (інші)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Бходжпурі" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Біхарі" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Бікол" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Біні" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "БіÑлама" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "СікÑіка" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Банту (інші)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "БоÑнійÑька" # BR #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Брай" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "БретонÑька" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Батак (ІндонезіÑ)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "БурÑÑ‚Ñька" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "БугійÑька" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "БолгарÑька" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "БірманÑька" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Блін" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Каддо" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "ІндіанÑькі центрально-американÑькі (інші)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "КарибÑькі мови" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "КаталанÑька" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Кавказькі (інші)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "КебуанÑька" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "КельтÑькі (інші)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Чаморо" # CN #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Чибча" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "ЧеченÑька" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Чагатай" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "КитайÑька" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "ЧуукійÑька" # ML # fuzzy #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Марі" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "ЧинукÑький жаргон" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "Чокто" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Чіпев’Ñн" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Черокі" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "ЦерковноÑлов'ÑнÑька" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "ЧуваÑька" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "ШайєнÑька" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "ЧамÑькі мови" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "КоптÑька" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "КорнійÑька" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "КорÑиканÑька" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "КреольÑькі Ñ– піджинÑькі, англійÑькі (інші)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "КреольÑькі Ñ– піджинÑькі, французькі (інші)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "КреольÑькі Ñ– піджинÑькі, португальÑькі (інші)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Крі" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "КримÑькотатарÑька" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "КреольÑькі Ñ– піджинÑькі (інші)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "КашубÑька" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "КушитÑькі (інші)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "ЧеÑька" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Дакота" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "ДанÑька" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Даргва" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "ДаÑк" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Делавар" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "ÐтапаÑька" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "ДогрібÑька" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Дінка" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Дайвегі" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Догрі" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "ДравідÑькі (інші)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "ÐÐ¸Ð¶Ð½Ñ Ð»ÑƒÐ¶Ð¸Ñ†ÑŒÐºÐ°" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Дуала" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "ГолландÑька, ÑÐµÑ€ÐµÐ´Ð½Ñ (1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "ГолландÑька" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Діула" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Дзонгка" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Ефік" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "ЄгипетÑька (древнÑ)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Екаюк" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "ЕламÑька" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "ÐнглійÑька" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "ÐнглійÑька, Ñередньовічна (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "ЕÑперанто" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "ЕÑтонÑька" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Еве" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Евондо" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Фанг" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "ФарерÑька" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Фанті" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "ФіджійÑька" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "ФіліппінÑька" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "ФінÑька" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Фіно-угорÑькі (інші)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Фон" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Французька" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Французька, Ñередньовічна (1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Французька, Ð´Ð°Ð²Ð½Ñ (842 - 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Фризька" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Фула" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "ФріулійÑька" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Га" # GH # fuzzy #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Гайо" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "ÒбаÑ" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "ГерманÑькі (інші)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "ГрузинÑька" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Ðімецька" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Òіз" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "ГілбертійÑька" # ML # fuzzy #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "ГаельÑька" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "ІрландÑька" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "ГаліÑійÑька" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "МанкÑ" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Ðімецька, Ñередньо-виÑока (1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Ðімецька, Ñтара виÑока (750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Òонді" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Òоронтало" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "ГотÑька" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Гребо" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Грецька, ÑÑ‚Ð°Ñ€Ð¾Ð´Ð°Ð²Ð½Ñ (до 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Грецька, ÑучаÑна (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Гуарані" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Гуджараті" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Òвіч’ін" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Хайда" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "ГаїтÑнÑька" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "ХауÑа" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "ГавайÑька" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "ЄврейÑька" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Гереро" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "ХілігайнонÑька" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Гімачалі" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Хінді" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "ХетÑька" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Хмонг" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Хірі Моту" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Ð’ÐµÑ€Ñ…Ð½Ñ Ð»ÑƒÐ¶Ð¸Ñ†ÑŒÐºÐ°" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "УгорÑька" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Гупа" # IR # fuzzy #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Ібан" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Ігбо" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "ІÑландÑька" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ідо" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "СичуаньÑька Ї" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Іжо" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Інуктитут" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Інтерлінгва" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Ілоко" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Інтерлінгва (Інтернаціональна допоміжна аÑÐ¾Ñ†Ñ–Ð°Ñ†Ñ–Ñ Ð¼Ð¾Ð²Ð¸)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "ІндійÑькі (інші)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "ІндонезійÑька" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "ІндоєвропейÑькі (інші)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Інгуш" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Інупіак" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "ІранÑькі (інші)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Ірокезькі мови" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ІталійÑька" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "ЯпонÑька" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Ложбан" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "ЯпонÑька" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "ЮдейÑько-перÑька" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "ЮдейÑько-арабÑька" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Каракалпацька" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "КабільÑька" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Качин" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "КалааліÑут" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Камба" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "КаннадÑька" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Карен" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "КашмірÑька" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Канурі" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Каві" # KZ # fuzzy #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "КазахÑька" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "КабардинÑька" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "ХаÑÑ–" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "КойÑанÑькі (інші)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "КхмерÑька" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "ХотанÑька" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Кікуйю" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "КіньÑруанда" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Киргизька" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Кімбунду" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Конкані" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Комі" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Конго" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "КорейÑька" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "КоÑраенÑька" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Кпеле" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Карачаєво-балкарÑька" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Кру" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Курух" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "КуаньÑма" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Кумик" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "КурдÑька" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Кутенай" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ладіно" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Лахнда" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Ламба" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "ЛаоÑька" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "ЛатинÑька" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "ЛатвійÑька" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "ЛезгінÑька" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "ЛімбурганÑька" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Лінгала" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "ЛитовÑька" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "МонгольÑька" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Лозі" # LU #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "ЛюкÑембурзька" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Луба-лулуа" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Луба-катанга" # GH # fuzzy #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Òанда" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "ЛуїÑено" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Лунда" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Луо (ÐšÐµÐ½Ñ–Ñ Ñ– ТанзаніÑ)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Лушаї" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "МакедонÑька" # MV # fuzzy #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Мадурі" # MU # fuzzy #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Маґахі" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "МаршальÑька" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Маїтхілі" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "МакаÑар" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "МалаÑлам" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Мандінго" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Маорі" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "ÐвÑтронезійÑькі (інші)" # MU # fuzzy #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Маратхі" # MW # fuzzy #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "МаÑаї" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "МалайÑька" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Мокша" # MM # fuzzy #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Мандар" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Менде" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "ІрландÑька, Ñередньовічна (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Мікмак" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Мінангкабау" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Інші мови" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Мон-кхмерÑькі (інші)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "МалагаÑійÑька" # MV # fuzzy #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "МальтійÑька" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Манчу" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Маніпурі" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Мови манобо" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "Могавк" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "МолдовÑька" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "МонгольÑька" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "МоÑÑÑ–" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Декілька мов" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Мови мунда" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Крік" # FM # fuzzy #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "МірандÑька" # MU # fuzzy #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Марварі" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Мови МайÑ" # SY # fuzzy #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "ЕрзіÑ" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Ðагуатл" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "ІндіанÑька північноамериканÑька" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ÐеаполітанÑька" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Ðавахо" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ðдебеле, південна" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ðдебеле, північна" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ðдонга" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "ÐÐ¸Ð¶Ð½Ñ Ð½Ñ–Ð¼ÐµÑ†ÑŒÐºÐ°" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "ÐепальÑька" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Ðепал Вхаза" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "ÐіаÑ" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Ðігеро-кордофанÑькі (інші)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Ðіу" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Ðорвезька (ланÑмол)" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Ðорвезька (букмол)" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "ÐогайÑька" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Ðорвезька, давнÑ" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Ðорвезька" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Північне Сото" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "ÐубійÑькі мови" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "КлаÑичне неварі" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Чичева" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "ÐÑŒÑмвезі" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "ÐÑŒÑнколе" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Ðіоро" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Ðзіма" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "ПрованÑальÑька (піÑÐ»Ñ 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Ожібва" # SY # fuzzy #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "ОрійÑька" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Оромо" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "ОÑаге" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "ОÑетинÑька" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Турецька, оттоманÑька (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "ОтомійÑькі мови" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "ПапуаÑькі (інші)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "ПангаÑійÑька" # ML # fuzzy #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Пахлаві" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Пампанга" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Панджабі" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "ПапіÑменто" # PW # fuzzy #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Палау" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "ПерÑька, Ð´Ð°Ð²Ð½Ñ (600-400 до н.е.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "ПерÑька" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "ФіліппінÑькі (інші)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "ФінікійÑька" # ML # fuzzy #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Палі" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "ПольÑька" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "ПонпейÑька" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "ПортугальÑька" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "ПракритÑькі мови" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "ПрованÑальÑька, Ð´Ð°Ð²Ð½Ñ (до 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Пушту" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Кечуа" # KZ # fuzzy #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "РаджаÑтані" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Рапануї" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "РаротонгÑька" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "РоманÑькі (інші)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "РетороманÑька" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "ЦиганÑька" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "РумунÑька" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Рунді" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "РоÑійÑька" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Сандаве" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Санго" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "ЯкутÑька" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "ІндіанÑькі південноамериканÑькі (інші)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "СалішанÑькі мови" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "СамарійÑька арамейÑька" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "СанÑкрит" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "СаÑак" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Санталі" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "СербÑька" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "СицилійÑька" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "ШотландÑька" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "ХорватÑька" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Селкуп" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "СемітÑькі (інші)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "ІрландÑька, Ð´Ð°Ð²Ð½Ñ (до 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Знакові мови" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Шан" # KH # fuzzy #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Сідамо" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "СингальÑька" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "СіуанÑькі мови" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Сино-тибетÑькі (інші)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Слов'ÑнÑькі (інші)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Словацька" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "СловенÑька" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "Південна Самі" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "Північна Самі" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Мови Самі (інші)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "Луле Ñамі" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "Інарі Ñамі" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "СамоанÑька" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "Сколт Ñамі" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Шона" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Синдхі" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Сонінке" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "СогдійÑька" # SO # fuzzy #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "СомалійÑька" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Сонгай" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Сото, південна" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ІÑпанÑька" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "СардинÑька" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Серер" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Ðіло-ÑахарÑькі (інші)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Сваті" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Сукума" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "СунданÑька" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "СуÑу" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "ШумерÑька" # SZ # fuzzy #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Суахілі" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "ШведÑька" # SY # fuzzy #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "СирійÑька" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "ТаїтÑнÑька" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "ТайÑькі (інші)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "ТамільÑька" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "ТатарÑька" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Телугу" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Тімне" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Терено" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Тетум" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Таджицька" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Тагалог" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "ТаїландÑька" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "ТибетÑька" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Тигре" # NG # fuzzy #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ТигриньÑ" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Тів" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "КлінгонÑька" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Тлінгіт" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Тамашек" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Тонга (ÐÑŒÑÑа)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Тонга (оÑтрови Тонга)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Ток піÑін" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "ТÑимшіан" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ТÑвана" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "ТÑонга" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "ТуркменÑька" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Тумбука" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Мови Тупі" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Турецька" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "ÐлтайÑькі (інші)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Тві" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "ТувинÑька" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "УдмуртÑька" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "УгарітÑька" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "УйгурÑька" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "УкраїнÑька" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Умбунду" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Ðевизначено" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Урду" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Узбецька" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Ваі" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Венда" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Ð’'єтнамÑька" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Волапюк" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Вотік" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ВакашанÑькі мови" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Валамо" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Варай" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Вашо" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "ВаллійÑька" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Лужицькі мови" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "ВаллонÑька" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Волоф" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Калмицька" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Хоза" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Йао" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Япізька" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Ідиш" # CU # fuzzy #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Йоруба" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "ЮпікÑькі мови" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "СапотекÑькі мови" # GD #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Зенага" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Жуанг" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Занде" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "ЗулуÑька" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Зуні" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Буде виконано такі дії:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "(не минає)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "минув: %1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "минає: %1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(не минає)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(МИÐУЛО)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(минуло протÑгом 24 годин)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %d день)" msgstr[1] "(закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %d дні)" msgstr[2] "(закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %d днів)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "Ðеможливо прочитати каталог Ñховища '%1%': ДоÑтуп заборонений" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Ðе вдалоÑÑŒ прочитати каталог «%s»" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "Ðеможливо прочитати файл Ñховища '%1%': ДоÑтуп заборонений" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "ПÑевдонім Ñховища не може починатиÑÑ Ð· точки." #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "ПÑевдонім Ñлужби не може починатиÑÑ Ð· точки." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Ðеможливо відкрити файл «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "Ðевідома Ñлужба '%1%': Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñховища Ñлужби '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "У вказаній адреÑÑ– URL не знайдено чинних метаданих" msgstr[1] "У вказаних адреÑах URL не знайдено чинних метаданих" msgstr[2] "У вказаних адреÑах URL не знайдено чинних метаданих" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Ðеможливо Ñтворити %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Ðеможливо Ñтворити каталог кешу метаданих." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐµÑˆÑƒ Ñховища \"%s\"" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Ðе вдалоÑÑ Ñтворити кеш %s - немає прав на запиÑ." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Ðе вдалоÑÑŒ Ñкешувати Ñховище(%d)." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Ðеоброблений тип Ñховища" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Помилка Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· «%s»" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Ðевідома помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· «%s»" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñховища \"%s\"" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Ðе чинна назва файла Ñховища «%s»" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñховища \"%s\"" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Ðеможливо визначити, де знаходитьÑÑ Ñховище." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ðеможливо вилучити «%s»" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Ðеможливо визначити, де знаходитьÑÑ Ñлужба." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Ðе чинний Ñ€Ñдок запиту URL LDAP" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ðе чинний параметр запиту \"%s\" URL LDAP" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Ðе вдаєтьÑÑ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ об'єкт URL" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Ðе чинне порожнє поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð¾ об'єкта URL" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Ðеможливо розібрати компоненти URL" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "невідомий" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "не підтримуєтьÑÑ" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Рівень 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Рівень 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Рівень 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "Потрібний додатковий контракт клієнта" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "нечинний" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Ðе вказано рівень підтримки" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "ПоÑтачальник не надає підтримки." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸, тобто технічна підтримка, при Ñкій надаєтьÑÑ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ " "про ÑуміÑніÑть, допомога при вÑтановленні, підтримка Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ, та " "Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñтих проблем. Підтримка 1-го Ñ€Ñ–Ð²Ð½Ñ Ð½Ðµ займаєтьÑÑ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñм " "помилками дефектів продуктів." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "Ð’Ð¸Ð¾ÐºÑ€ÐµÐ¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸, тобто технічна підтримка, при Ñкій дублікуютьÑÑ " "проблеми клієнтів, виокремлюєтьÑÑ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð½Ð° ділÑнка Ñ– надаєтьÑÑ Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ " "проблем, Ñкі не було виправлено 1-ми рівнем підтримки." #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "Ð’Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, тобто технічна підтримка, призначена Ð´Ð»Ñ Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ " "Ñкладних проблем, до Ñких залучають інженерний перÑонал Ð´Ð»Ñ Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ " "дефектів в продуктах, що Ñ—Ñ… було знайдено підтримкою 2-го рівнÑ." #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ потрібний додатковий контракт клієнта." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Ðевідомий параметр підтримки. Ðемає опиÑу" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемою заблоковано програмою з pid %d (%s).\n" "Закрийте цю програму перш ніж Ñпробувати знову." #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "ІÑторіÑ:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл замка: %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Цю дію вже запущено іншою програмою." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ðевідомий режим збігу «%s»" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Ðевідомий режим збігу «%s» Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° «%s»" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Ðекоректний формальний вираз \"%s\": regcomp повернула %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ðечинний формальний вираз «%s»" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "Потрібна Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð´Ð»Ñ \"%s\"" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" "Відвідайте центр Ð¿Ð¾ÐºÑƒÐ¿Ñ†Ñ Novel Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ терміну дії вашої реєÑтрації." #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Ðе вдалоÑÑ Ð·Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ %s у %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ %s" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Ðекоректна назва файла: %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "ÐоÑій не було відкрито під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— \"%s\"." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Файл \"%s\" не знайдено на ноÑÑ–Ñ— \"%s\"" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Ðеможливо запиÑати у файл \"%s\"." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "ÐоÑій не з’єднано" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Ðекоректна точка Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð¾ÑÑ–Ñ" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "Ð—Ð°Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (curl) зазнало невдачі Ð´Ð»Ñ \"%s\"" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "СиÑтемне Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ \"%s\" на ноÑÑ–Ñ— \"%s\"." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "ШлÑÑ… \"%s\" на ноÑÑ–Ñ— \"%s\" не Ñ” файлом." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "ШлÑÑ… \"%s\" на ноÑÑ–Ñ— \"%s\" не Ñ” каталогом." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "Помилковий URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° вузла у URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð° ÑиÑтема за URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Порожнє міÑце Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Ðепідтримувана Ñхема URI у \"%s\"." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ підтримуєтьÑÑ Ð½Ð¾Ñієм" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (curl) Ð´Ð»Ñ \"%s\":\n" "Код помилки: %s\n" "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку: %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (curl) Ð´Ð»Ñ \"%s\" ÑталаÑÑ " "помилка:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "ПриÑтрій ноÑÑ–Ñ \"%s\" не міÑтить бажаного ноÑÑ–Ñ" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "ÐоÑій \"%s\" викориÑтовуєтьÑÑ Ñ–Ð½ÑˆÐ¾ÑŽ копією програми" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Ðе вдаєтьÑÑ Ð²Ð¸ÑˆÑ‚Ð¾Ð²Ñ…Ð½ÑƒÑ‚Ð¸ жодного ноÑÑ–Ñ" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ðе вдаєтьÑÑ Ð²Ð¸ÑˆÑ‚Ð¾Ð²Ñ…Ð½ÑƒÑ‚Ð¸ ноÑÑ–Ñ \"%s\"" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Дозвіл на доÑтуп до \"%s\" заборонено." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "Перевищено Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ Ñпробі доÑтупу до '%s'." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "ÐдреÑа «%s» тимчаÑово недоÑтупна." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " Проблема з Ñертифікатом SSL, перевірте чи вÑе гаразд з Ñертифікатом CA Ð´Ð»Ñ " "\"%s\"." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" "Створюємо точку монтуваннÑ: неможливо знайти каталог з можливіÑтю запиÑу Ð´Ð»Ñ " "ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ монтуваннÑ" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Метод автентифікації HTTP \"%s\", Ñкий не підтримуєтьÑÑ" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "Ð’Ñтановіть Ñпершу пакунок 'lsof'." #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "Ðемає потрібного атрибута «%s»." #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Потрібний один або двоє атрибутів «%s» та «'%s»." #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "Ðевдала перевірка підпиÑу" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Пакунок %s, здаєтьÑÑ, пошкоджено під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ½ÐµÑеннÑ. Повторити Ñпробу?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "Ðе вдалоÑÑ Ð½Ð°Ð´Ð°Ñ‚Ð¸ пакунок %s. Повторити Ñпробу?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "перевірка applydeltarpm зазнала невдачі." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÐ»ÑŒÑ‚Ð¸ rpm зазнало невдачі." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "Модуль Ñлужби не підтримує зміну атрибута." #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Ðеможливо надати файл \"%s\" зі Ñховища \"%s\"" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Ð’ Ñховищі немає url." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом пакунку\n" "%3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом пакунку\n" "%3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом пакунку\n" "%3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом пакунку\n" "%3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом\n" "%3%\n" " пакунку\n" "%4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом\n" "%3%\n" " пакунку\n" "%4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом\n" "%3%\n" "з пакунку\n" "%4%" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "Файл %1%\n" "з пакунку\n" "%2%\n" "конфліктує з файлом\n" "%3%\n" "з пакунку\n" "%4%" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Ðеможливо Ñтворити sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "зламати %s, ігноруючи деÑкі залежноÑті" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "взагалі нехтувати деÑкими залежноÑÑ‚Ñми" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s не належить до Ñховища distupgrade (Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¸Ñтрибутиву)" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s має Ñлабшу архітектуру" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "проблема з вÑтановленим пакунком %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "конфлікт запитів" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "ÑкаÑÑŒ проблема залежноÑтей" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "жоден з пакунків не надає потрібного %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Чи ви увімкнули вÑÑ– запитані Ñховища?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "пакунок %s не Ñ–Ñнує" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "непідтримуваний запит" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s надано ÑиÑтемою Ñ– його неможливо прибрати" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s не можливо вÑтановити" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "жоден з пакунків не надає %s, потрібного %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "неможливо вÑтановити одночаÑно %s Ñ– %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s конфліктує з %s, що надаєтьÑÑ %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s робить заÑтарілим %s, що надаєтьÑÑ %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "вÑтановлений пакунок %s робить заÑтарілим %s, Ñкий надаєтьÑÑ %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "Розв’Ñзок %s конфліктує з %s, що у ньому міÑтитьÑÑ" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s потребує %s, але цю залежніÑть неможливо вдовольнити" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "вилучені залежноÑті: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "залежноÑті без можливоÑті вÑтановленнÑ: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "залежноÑті без можливоÑті вÑтановленнÑ: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "уÑунути блокуваннÑ, щоб дозволити Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "не вÑтановлювати %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "залишити %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "уÑунути блокуваннÑ, щоб дозволити вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Цей запит пошкодить вашу ÑиÑтему!" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "ігнорувати Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ ÑиÑтеми" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "не питати про вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð²â€™Ñзувача, що надає %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "не питати про Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… розв’Ñзувачів, що надаютьÑÑ %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "не вÑтановлювати ранішу верÑÑ–ÑŽ %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "Залишити %s, незважаючи на Ñлабшу архітектуру" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "Ð’Ñтановити %s, незважаючи на те, що це змінить архітектуру" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "Залишити заÑтарілі %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "Ð’Ñтановити %s з невключеного Ñховища" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ñ–Ñть %s %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "зміна архітектури з %s на %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "вÑтановити %s (зі зміною виробника)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "заміна %s на %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñценарію %%posttrans '%1%'" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñценаріїв %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " виконано" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s вже виконаний Ñк %s)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾ під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Помилка відÑÐ¸Ð»Ð°Ð½Ð½Ñ ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ оновленнÑ." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Ðове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ оновленнÑ" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾ відповідно до вказівки." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "Вибачте, цю верÑÑ–ÑŽ libzypp було Ñкладено без підтримки HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext не приєднано" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive не започатковано" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume не започатковано" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Ðеможливо Ñтворити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new: неможливо Ñтворити контекÑÑ‚ libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: неможливо вÑтановити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Ðеможливо започаткувати контекÑÑ‚ HAL context -- не запущено hald?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Ðе привід CD-ROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Помилка RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "Ðе вдалоÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ відкритий ключ %1%" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ відкрити ключ %1%" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "Пакунок не підпиÑаний!" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Змінено конфігураційні файли Ð´Ð»Ñ %s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm збережено %s Ñк %s, але було неможливо виÑвити різницю" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm збережено %s Ñк %s.\n" "ОÑÑŒ перші 25 Ñ€Ñдків розбіжноÑтей:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm Ñтворила %s Ñк %s, але було неможливо виÑвити різницю" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm Ñтворили %s Ñк %s.\n" "ОÑÑŒ перші 25 Ñ€Ñдків розбіжноÑтей:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Додатковий вивід rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "Ñтворено резервну копію %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "Із підпиÑом уÑе гаразд" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "Ðевідомий тип підпиÑу" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "ÐŸÑ–Ð´Ð¿Ð¸Ñ Ð½Ðµ перевірÑєтьÑÑ" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "Із підпиÑом уÑе гаразд, але ключ - ненадійний" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "Публічний ключ підпиÑів - недоÑтупний" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "Файл не Ñ–Ñнує чи Ð¿Ñ–Ð´Ð¿Ð¸Ñ Ð½Ðµ можна перевірити" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "Файл не підпиÑаний" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Ðеможливо започаткувати атрибути mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Ðеможливо вÑтановити рекурÑивний атрибут mutex" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Ðеможливо започаткувати рекурÑивний mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Ðеможливо отримати Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Ðеможливо відпуÑтити Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Схема Url не дозволÑÑ” %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ðе чинний %s компонент \"%s\"" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ðе чинний компонент %s" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Розбір Ñ€Ñдка запиту не підтримуєтьÑÑ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Схема URL - це потрібний компонент" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ðе чинна Ñхема URL \"%s\"" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Схема URL не дозволÑÑ” імені кориÑтувача" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Схема URL не дозволÑÑ” паролÑ" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Схема URL потребує компонент вузла" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Схема URL не дозволÑÑ” компонент вузла" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ðе чинний компонент вузла \"%s\"" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Схема URL не дозволÑÑ” порт" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ðе чинний компонент порту \"%s\"" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Схема URL потребує назву шлÑху" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "ВідноÑний шлÑÑ… не дозволÑєтьÑÑ Ð¿Ñ€Ð¸ Ñ–Ñнуванні повноваженнÑ" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Закодований Ñ€Ñдок міÑтить нульовий байт" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Ðе чинний Ñимвол Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð¼Ð°Ñиву параметрів" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ðе чинний Ñимвол Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ параметрів" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Ðе чинний Ñимвол ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñиву параметрів" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "Ðе вдалоÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ відкритий ключ з файла %s: %s" # ############################################################################### # Old yast2-agents.po #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ відкрити ключ %s: %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Ðеможливо знайти наÑвний приÑтрій Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ‚Ð°Ð¼Ð¿Ð° файла з «%s»" #~ msgid "do not keep %s installed" #~ msgstr "не залишати вÑтановленим %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Ðе вдалоÑÑ Ñтворити відкритий ключ %s зі ÑпиÑку ключів %s до файл %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "" #~ "Ð—Ð°Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (Metalink curl) зазнало невдачі Ð´Ð»Ñ Â«%s»" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (metalink curl) Ð´Ð»Ñ Â«%s»:\n" #~ "Код помилки: %s\n" #~ "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку: %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "Ð—Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾ на %d%%" #, fuzzy #~ msgid "Download interrupted by user" #~ msgstr "Ð—Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾ на %d%%" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (metalink curl) Ð´Ð»Ñ Â«%s» " #~ "ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°:" #~ msgid "Failed to download %s from %s" #~ msgstr "Ðе вдалоÑÑ Ð·Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ %s з %s" #~ msgid "Serbia and Montenegro" #~ msgstr "Ð¡ÐµÑ€Ð±Ñ–Ñ Ñ– ЧорногоріÑ" libzypp-17.7.0/po/vi.po000066400000000000000000002533711334444677500147270ustar00rootroot00000000000000# Vietnamese translation for YaST2 (@memory@). # Copyright © 2006 SUSE Linux Products GmbH. # Copyright © 2005, 2006 Gnome i18n Project for Vietnamese. # Phan VÄ©nh Thịnh , 2006. # Clytie Siddall , 2005, 2006. # msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2016-08-25 08:06+0000\n" "Last-Translator: Hoàng Phạm \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 2.6\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Cần" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Xung đột" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Couldn't open file: %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Lệnh thá»±c hiện khi kết nối" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Failed to parse: %s." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Không thể mở tập tin '%s' để ghi." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Không thể tạo %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Lá»—i khi Ä‘á»c từ '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Äang thêm kho '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "Äang xoá kho '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Không thể xác định nÆ¡i chứa kho phần má»m." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Không thể xoá '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Couldn't open file: %s." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Failed to parse: %s." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Couldn't open file: %s." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Thông báo cập nhật má»›i" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Äã huá»· cài đặt theo yêu cầu." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 #, fuzzy msgid "HalContext not connected" msgstr "chưa kết nối" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Không phải ổ đĩa CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "Lá»—i RPM: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Failed to parse: %s." #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Couldn't open file: %s." libzypp-17.7.0/po/wa.po000066400000000000000000003263361334444677500147220ustar00rootroot00000000000000# Translation into the walloon language. # Copyright (C) 2007 SUSE Linux Products GmbH. # # Pablo Saratxaga , 2001, 2004. # Jean Cayron , 2007, 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: lcn memory\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2012-08-24 14:42+0200\n" "Last-Translator: Jean Cayron \n" "Language-Team: Walloon \n" "Language: wa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.4\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Foû-rîle di hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "Crombe sôre « %s » po l' octet %u del some di controle « %s »" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Payis nén cnoxhou : " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Pont d' côde" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andore" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Emirats Arabes Unis" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afganistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua eyet Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguila" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albaneye" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Ã…rmeneye" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Antiyes neyerlandesses" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antartike" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Ã…rdjintene" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "Samowa amerikinne" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Otriche" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Ostraleye" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Arouba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Iyes Aland" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaydjan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosneye" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "BÃ¥rbades" # #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Beljike" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Bourkina Fasso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "BulgÃ¥reye" # #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bareyn" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Bouroundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermudes" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Boliveye" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Braezi" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Boutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Iye Bouvet" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Boswana" # #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belaruss" # #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Iyes Cocos (Keeling)" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo-Brazza" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Cintrafrike" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Swisse" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Coisse d' Ivwere" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Iyes Cook" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Tchili" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Camrone" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "Chine" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombeye" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cap Vert" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Iye Christmas" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Chipe" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Tchekeye" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Almagne" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "DaenmÃ¥tche" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominike" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Republike Dominikinne" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Aldjereye" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "EcwÃ¥teur" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estoneye" # #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Edjipe" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Sara Coûtchantrece" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrêye" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Espagne" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Etiopeye" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finlande" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fidji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Iyes Malouwines (Falkland)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Estats Federé d' Microneseye" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Iyes Faeroyé" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "France" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "France Metropolitinne" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "Grande-Burtaegne" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "GrenÃ¥de" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Djeyordjeye" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "Guyane francesse" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "Guernsey" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Gana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Djibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Groenlande" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambeye" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinêye" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Gwadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Guinêye EcwÃ¥toriÃ¥le" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Grece" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "Djeyordjeye do sud eyet Iyes Sandwich do sud" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Gwatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Gwam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinêye-Bissaw" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Iyes Heard eyet Iyes MacDonald" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "CrowÃ¥ceye" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Hayiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hongreye" # #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonezeye" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Irlande" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israyel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "Iye di Man" # #: zypp/CountryCode.cc:261 msgid "India" msgstr "Inde" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "Teritweres britanikes di l' Oceyan Indyin" # #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Irak" # #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Izlande" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "ItÃ¥leye" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "Djerzey" # #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Djamayike" # #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Djordaneye" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Djapon" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenia" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kirguiztan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodje" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comores" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Sint Kitts et Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "Corêye (bijhrece)" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "Corêye (nonnrece)" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuweyt" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Iyes Cayman" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazaxhtan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Republike Democratike dÃ¥ Peupe Lawo (Lawos)" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Liban" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Sinte Luceye" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Lîchtensteyn" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lessoto" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Litwaneye" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Lussimbork" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Letoneye" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libeye" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Marok" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "Montenegro" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "Sint Martin" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Iyes Marshall" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedoneye" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Birmaneye" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongoleye" # #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Iyes Marianes bijhreces" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinike" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Moritanreye" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Male" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Iye Môrice" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldives" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mecsike" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaizeye" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambike" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibeye" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "Nouve Caledoneye" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Nidjer" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Iye Norfolk" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nidjeria" # #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragwa" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Bas Payis" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norvedje" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nawouryin" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niuwé" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "Nouve Zelande" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" # #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Perou" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "Polinezeye francesse" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papouwazeye Nouve Guinêye" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Filipenes" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Pologne" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Sint Pire et Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Porto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestene" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" # #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palawou" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paragway" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Katar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reyunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Roumaneye" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "Serbeye" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Rûsseye" # #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Arabeye Sawoudite" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Iyes Solomon" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seycheles" # #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Soudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Suwede" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapour" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Sinte Helene" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Esloveneye" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Iyes Svalbard eyet Jan Mayen" # #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Eslovakeye" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Siera Leyone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "Sint Marin" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "SenegÃ¥l" # #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somaleye" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "São Tomé et Prince" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Sireye" # #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Suwazilande" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Iyes Turks eyet Caicos" # #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Tchad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "Payis francès nonnrece" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Taylande" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tadjikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turcmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunizeye" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "Levant Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkeye" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinité et Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "Touvalou" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzaneye" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Oucrinne" # #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Ouganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "Iyes mineures des Estats Unis" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "Estats Unis" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Ourougway" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Ouzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Vatican" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Sint Vincint et les Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezwela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "Iyes Viedjes Britanikes" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Iyes Viedjes etazunyinnes" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanouatou" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis et Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samowa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayote" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "Nonne Afrike" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambeye" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwè" #: zypp/Dep.cc:96 msgid "Provides" msgstr "Dene" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "Dimande" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "Afrontmints" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "wÃ¥rder l' forpassé %s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "Ricmande" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "Propoze" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "Amidrêye" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "Rawetes" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Dji n' sai drovi pty (%s)." #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Dji n' sai drovi l' pupe (%s)." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "Dji n' sai fé chroot a « %s » (%s)." #: zypp/ExternalProgram.cc:372 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "Dji n' sai fé chdir a « / » divins chroot (%s)." #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Dji n' sai fé chroot a « %s » (%s)." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "Dji n' sai enonder « %s » (%s)." #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "Dji n' sai fé on fork (%s)." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "Li comande a moussî foû avou l' sitatut %d." #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "Li comande a stî touwêye pÃ¥ signÃ¥ %d (%s)." #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "Li comande a moussî foû avou ene aroke nén cnoxhowe." #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, fuzzy, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "Dj' a sayî d' abaguer l' clé %s nén egzistante e l' anea d' clés %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "L' abagaedje del clé publike %1% a fwait berwete" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "Li disfaçaedje del clé a fwait berwete." #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "Sinateure di fitchî %s nén trovêye" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Lingaedje nén cnoxhou : " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Abxhaze" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Achinwès" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Afro-Aziyatike (ôtes)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "Afrikaans" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Aynou" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Acanyin" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Acadyin" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Albanès" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Alewoute" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Lingaedjes algonkyins" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Altay nonnrece" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Amarike" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "Inglès, Vî inglès (450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Lingaedjes apaches" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Arabe" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Aramayike" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Aragonès" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Ã…rmenyin" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Arawoucan" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Constrût (ôtes)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Assamès" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Asturyin" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Lingaedjes atapascans" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Lingaedjes ostralyins" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Avarike" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Awadi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Azeri" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "Banda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Lingaedjes bamilekes" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "Baloutchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "Balinès" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Basse" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "Bassa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Baltike (ôtes)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "Bedja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "Bielorûsse" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Berbere (ôtes)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Bantou (ôtes)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "Bosnyin" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "Burton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "Batak (Indonezeye)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "Bouriate" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "Budjinès" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "BulgÃ¥re" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "Birman" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Amerindyin di l' Amerike cintrÃ¥le (ôtes)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "Carayibe" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "Catalan" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "CocÃ¥zyin (ôtes)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "Cebwano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Celtike (ôtes)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "Tchamoro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "Tchibtcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "Tchetchene" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "Tchagatay" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "Chinwès" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "Tchouwoukès" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "DjÃ¥rgon Tchinouk" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "TchoctÃ¥w" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "Tchipewa" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "Tcherokî" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "Eslavonike d' eglijhe" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "Tchouvache" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "Tcheyinne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Lingaedjes xhamitikes" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "Coptike" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "Cornike" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "Corse" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Creyoles et pidjines, bÃ¥zé so l' inglès (ôtes)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Creyoles et pidjines, bÃ¥zé sol francès (ôtes)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Creyoles et pidjines, bÃ¥zé sol portuguès (ôtes)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "Crî" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Tatar crimeyin" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Creyoles et pidjines (ôtes)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "Kachubian" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Couchitike (ôtes)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "Tcheke" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "Daenwès" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Dravidyin (ôtes)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "Bas serbe" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "Douwala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "Neyerlandès, Moyén neyerlandès (Ã¥toû di 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "Neyerlandès" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "Dioula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "Boutanès" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "Edjipcyin (ancyin)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Ekadjouk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "Inglès" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "Inglès, Moyén inglès (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Estonyin" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Ewè" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "Faeroyès" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "Fidjyin" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "Filipenes" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "Finwès" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Fino-ougryin (ôtes)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "Francès" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "Francès, Moyén francès (Ã¥toû d' 1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "Francès, Vî francès (842-1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "Frizon" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "Friyoulan" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "Tîxhon (ôtes)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "Djeyordjyin" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "Almand" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "Gehez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "Djilbertyin" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "Gayelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Irlandès" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "Galicyin" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "Gayel di l' iye di Man" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "Almand, Moyén hôt almand (Ã¥toû di 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "Almand, Vî hôt almand (Ã¥toû di 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "Gotike" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "Grek, Ancyin grek (disk' a 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "Grek, Modiene (dispoy 1453)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "Gwarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "Goudjarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "Hayida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "Hayicyin" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "Hawssa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "Hawayin" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "Ebreu" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "Himatchali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "Hitite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "Hôt serbe" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "Hongrwès" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Izlandès" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "Yi sitchouwanès" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Interlingua (Soce do lingaedje ogziliaire internacionÃ¥)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Indyin (ôtes)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Indonezyin" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Indo-uropeyin (ôtes)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Ingouche" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Inyupiak" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Iranyin (ôtes)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Lingaedjes irocwès" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "ItÃ¥lyin" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "Djavanès" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "Djaponès" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "Djudeyo-farsi" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Djudeyo-arabe" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "Kabile" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "Katchin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "Kazaxh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "Kabardyin" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "Koysan (ôtes)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "Xhmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "Khotanès" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "Kikouyou" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "Kirguize" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "Kimboundou" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "Kicongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "Coreyin" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "Kosrayin" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "Kpellè" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "Karatchay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "Krou" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "Kuruxh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "Kwanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "Kurde" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "Kutenay" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "Lawocyin" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "Latén" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "Letonyin" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "Lezguyin" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "Limbordjwès" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "Litwanyin" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "Lussimbordjès" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "Louba-Loulouwa" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "Louba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "Louganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "Lounda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "Louwo (Kenia et Tanzaneye)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "Louchay" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "Macedonyin" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "Madurès" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "Marshalès" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "Makazar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "Mawori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Ostronezyin (ôtes)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "Marati" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "Massay" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Irlandès, Moyén irlandès (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "Micmak" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Ôtes lingaedjes" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "Mon-Xhmer (ôtes)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "Malgache" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "Malès" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "Mantchou" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Lingaedjes manobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "MohÃ¥wk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "MoldÃ¥ve" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "Mongol" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Multipes lingaedjes" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Lingaedjes mounda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "Crîk" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "Mirandès" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Lingaedjes maya" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "Amerindyins d' Amerike bijhrece (ôtes)" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "Napolitin" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navaxho" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "Ndebele (Nonnrece)" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "Ndebele (Bijhrece)" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "Ndonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "Bas almand" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "Nepalès" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "Bhasa nepalès" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "Niger-Kordofanyin (ôtes)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "Niuweyin" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "Norvedjyin Ninorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "Norvedjyin BokmÃ¥l" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "Nogay" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "Vî norvedjyin" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "Norvedjyin" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "Soto bijhrece" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Lingaedjes noubyins" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "Newari classike" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "Tchitchewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "Nyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "Nzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Occitan (après 1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Odjibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Ozaedje" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Ossetyin" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "Turk otoman (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Lingaedjes otomans" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "Papouwazyin (ôtes)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "Pangazinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "Pandjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "Palawouwin" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "Farsi, Vî farsi (Ã¥toû di 600-400 divant J.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "Farsi" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Filipin (ôtes)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "Fenicyin" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "Pâli" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "Polonès" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "Pohnpeyin" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "Portuguès" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Lingaedjes prakrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "ProvincÃ¥, Vî provincÃ¥ (djusk' a 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Pashto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "Ketchwa" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "Radjastani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "Rapanwi" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "Raratongyin (Iye di PÃ¥ke)" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "Roman (ôtes)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "Romantche" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "Romani" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "Roumanyin" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "Kiroundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "Rûsse" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "Yakout" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "Amerindyins d' Amerike nonnrece (ôtes)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Lingaedjes salichans" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Arameyin samaritin" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "Serbe" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "Sicilyin" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "CrowÃ¥te" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "Semitike (ôtes)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Irlandès, Vî irlandès (divant 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Lingaedjes des sines" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "Chan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Lingaedjes siwous" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "Sino-Tibetin (ôtes)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "EslÃ¥ve (ôtes)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "Eslovake" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "Eslovenyin" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "SÃ¥mi nonnrece" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "SÃ¥mi bijhrece" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Lingaedjes sÃ¥mi (ôtes)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "SÃ¥mi Lule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "SÃ¥mi Inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "Samowan" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "SÃ¥mi Skolt" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "Shona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "Sindi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "Sogdyin" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "Somalyin" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "Songhay" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "Soto nonnrece" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "Espagnol" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "Sardegnyin" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "Nilo-saryin (ôtes)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "Suwati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "Soukouma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "Sundanès" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "Sousou" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "Soumeryin" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "Suwahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "Suwedwès" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "Siriake" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "Tahityin" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Taylandès (ôtes)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "Tamoul" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "TatÃ¥r" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "Telougou" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "Tetoum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "Tadjik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "Taylandès" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "Tibetin" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "Tigré" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "Tonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "Tonga (Iyes Tonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "Tsimchyin" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "Tswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "Tsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "Turcmene" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "Toumbouka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Lingaedjes toupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "Turk" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Altayike (ôtes)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "Twi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "Touvinyin" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Oudmourt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Ougaritike" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Ouygour" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Oucrinnyin" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Oumboundou" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Nén cnoxhou" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Ourdou" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Ouzbeke" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "Vay" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "Venda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "Vietnamyin" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "Volapouk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Lingaedjes wakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "Walès" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Lingaedjes sorbyin" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "Walon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "Kalmike" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "Xhossa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "Yawo" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "Yidish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "Yorouba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Lingaedjes youpik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "Zapoteke" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "Zandè" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "Zoulou" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "Zouni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "Dji va fé les faitindjes shuvants :" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "(n' espire nén)" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(n' espire nén)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(ESPIRÉ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(espire divant 24 e)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, fuzzy, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(espire divant 24 e)" msgstr[1] "(espire divant 24 e)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Li léjhaedje do ridant « %s » a fwait berwete." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "On no metou di siervice ni s' pout cominçî avou on pont." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Dji n' sai nén drovi l' fitchî « %s » pol sicrire." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 #, fuzzy msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "Dji n' a trové nole meta-dnêye valÃ¥be al/Ã¥s URL sipeciftî(s)" msgstr[1] "Dji n' a trové nole meta-dnêye valÃ¥be al/Ã¥s URL sipeciftî(s)" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "Dji n' sai ahiver %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "Dji n' sai ahiver l' ridant muchete des meta-dnêyes." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "Dji basti l' muchete do depot « %s »" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "Dji n' sai ahiver l' muchete a %s - pont d' droet di scrijhaedje." #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Li metaedje e muchete do depot (%d) a fwait berwete." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "Dji n' sai nén apougnî cisse sôre di depot la" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "Ã…k n' a nén stî come dji sayive di lére a pÃ¥rti di « %s »" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Ã…k di nén cnoxhou n' a nén stî come dji léjheu a pÃ¥rti d' \"%s\"" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "Dji radjoute li depot « %s »" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "No do fitchî do depot so « %s » nén valÃ¥be" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "Dji n' sai nén trover ewou ç' kel depot est wÃ¥rdé." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "Dji n' sai disfacer « %s »" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "Dji n' sai nén trover ewou ç' kel siervice est wÃ¥rdé." #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Tchinne di cweraedje di l' IRL LDAP nén valÃ¥be" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Paramete cweraedje di l' URL LDAP nén valÃ¥be « %s »" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Dji n' sai clôner l' objet Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Vude referince d' objet di l' Url nén valÃ¥be" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Dji n' sai analijhî les componints di l' Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "nén cnoxhou" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "nén sopoirté" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "Livea 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "Livea 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "Livea 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "I fÃ¥t èn ôte Contrat cliyint" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "nén valÃ¥be" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "Li livea do sopoirt n' est nén specifyî" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "Li vindeu n' dene pont d' sopoirt." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "Trovaedje do problinme, ça vout dire on sopoirt tecnike atuzlé po dner des " "informÃ¥cions sol copatibilité, aidance a l' astalaedje, sopoirt po l' " "eployaedje, mintnance normÃ¥le eyet rujhes di bÃ¥ze. Li sopoirt di livea 1 n' " "est nén fwait po coridjî les arokes des sacwès nén bén fwaites e prodût." #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "I fÃ¥t èn ôte contrat cliyint pos awè on sopoirt." #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "Tchuze di sopoirt nén cnoxhowe. I gn a pont d' discrijhaedje" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "Istwere :" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Dji n' sai nén drovi l' fitchî d' eclawaedje : %s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "Ci faitindje ci est dedja enondé pa èn ôte programe." #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Môde di corespondaedje \"%s\" nén cnoxhou" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "Môde di corespondaedje \"%s\" pol modele \"%s\" nén cnoxhou" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "Erîlêye ratourneure « %s » nén valÃ¥be : regcomp a rtourné %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Erîlêye ratourneure « %s » nén valÃ¥be" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "I s' fÃ¥t otintifyî po « %s »" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Li montaedje di %s dins %s a fwait berwete" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "Li dismontaedje di %s a fwait berwete" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "Mwais no d' fitchî : %s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "Media nén drovou cwand dj' a sayî d' fé l' faitindje « %s »." #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Fitchî « %s » nén trové sol media « %s »" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Dji n' sai scrire li fitchî « %s »." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "Media nén ataetchî" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "Mwais pont d' ataetche do media" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "L' inicialijhaedje di l' aberwetaedje (curl) a fwait berwete po « %s »" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "Foû rîle sistinme « %s » sol media « %s »." #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "Li tchmin « %s » sol media « %s » n' est nén on fitchî." #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "Li tchmin « %s » sol media « %s » n' est nén on ridant." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "URI mÃ¥ fwaite" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "Vude no do lodjoe e l' URI" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "Vude sistinme di fitchî e l' URI" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "Vude sÃ¥me e l' URI" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Arindjmint d' URI nén sopoirté dins \"%s\"." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "OperÃ¥cion nén sopoirtêye pÃ¥ media" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "Aroke d' aberwetaedje (curl) po « %s » :\n" "Côde di l' aroke : %s\n" "Messaedje d' aroke : %s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" "Ã…k n' a nén stî come dji definixheu les tchuzes d' aberwetaedje (curl) po « " "%s » :" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "I gn a nén e media sourdant « %s » li media volou" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "Li media « %s » est eployî pa-z ene ôte instance" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "Dji n' sai fé rexhe nou media" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Dji n' sai fé rexhe li media « %s »" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Droet di moussî e « %s » rifuzé." #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "L' astÃ¥dje a stî trop longue po moussî e \"%s\"." #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "Dji n' sai moussî e l' eplaeçmint « %s » pol moumint." #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" " : rujhe di l' acertineure SSL, waitîz k' l' acert. di l' OA est boune po « " "%s »." #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "Metôde d' otintifiaedje HTTP \"%s\" nén sopoirtêye" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "Dj' a dandjî d' onk ou amdedeus atributs « %s » ou « %s »." #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr " a fwait berwete a l' enondaedje" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Li pacaedje %s shonne awè stî crombyî sol tins do berwetaedje. Voloz rsayî " "l' rischoyaedje ?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "L' ahessaedje do pacaedje %s a fwait berwete. Voloz vs rissayî l' " "rischoyaedje?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "li verifiaedje d' applydeltarpm a fwait berwete." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm a fwait berwete." #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Dji n' sai diner l' fitchî « %s » do depot « %s »" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "Pont d' url e depot" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "Dji n' sai ahiver sat-pool." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "sketer %s e passant houte sacwantes di ses aloyances" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "sketer %s e passant houte sacwantes di ses aloyances" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" "%s ni fwait nén pÃ¥rteye d' on depot d' metaedje a djoû del distribucion" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s a ene Ã¥rtchitecteure pus basse" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "problinme avou l' pacaedje d' astalé %s" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "dimandes d' afrontmints" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "gn des des problinmes d' aloyances" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "rén n' dene li %s dimandé" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "Avoz metou en alaedje tos les depots dmandés ?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 #, fuzzy msgid "unsupported request" msgstr "nén sopoirté" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "Çou paket n' est nén astalé et n' serè nén astalé." #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s n' est nén astalÃ¥ve" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "rén n' dene %s k' a dandjî %s" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Dji n' sai nén astaler ambedeus %s eyet %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s s' afronte avou %s ahessî pa %s" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s rind trop vîs %s ahessî pa %s" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "astalé %s trop vîs %s dinés pa %s" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s afrontmints rezoudÃ¥ves avou %s ahessî pa lyi minme" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s a dandjî d' %s mins cisse dimande ni sait nén esse ahesseye" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "ahesseus disfacé : " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "ahesseus nén astalÃ¥ves : " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "ahesseus nén astalÃ¥ves : " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "èn nén astaler %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "wÃ¥rder %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "èn nén espaitchî l' astalaedje di %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "Cisse dimande ci va scheter vosse sistinme !" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "passer houte l' adviertixhmint d' on sketé sistinme" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "èn nén dmander d' astaler on rezoudaedje dinant %s" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "èn nén dmander d' disfacer tos les rezoudaedjes dinant %s" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "èn nén astaler l' pus nouve modêye di %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "wÃ¥rder %s mÃ¥gré k' il est d' ene pus basse Ã¥rtchitecteure" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "astaler %s mÃ¥gré k' il est d' ene pus basse Ã¥rtchitecteure" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "wÃ¥rder l' forpassé %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "astaler %s a pÃ¥rti do depot schovté evoye" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "dismete a djoû di %s a %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "candjmint d' årtchitecteure di %s a %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "astaler %s (avou candjmint d' vindeu)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "replaeçmint di %s avou %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "disastalaedje di %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " enondé" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " a fwait berwete a l' enondaedje" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " a passé l' enondaedje cwand il abandnéve" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "Ã…k n' a nén stî come dji meteu a djoû l' notifiaedje do messaedje." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "Novea messaedje di metaedje a djoû" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "L' astalaedje a stî abandné come dimandé." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" "Dji rgrete mins cisse modêye ci di libzypp a stî basteye sins sopoirt po HAL." #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext nén raloyî" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive nén inicialijhî" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume nén inicialijhî" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Dji n' sai ahiver l' raloyaedje dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new : Dji n' sai ahiver l' contecse libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection : Dji n' sai defini l' raloyaedje dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Dji n' sai inicialijhî l' contecse HAL -- hald nén ovrant ?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Nén on léjheu d' plake CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM a fwait berwete :" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "L' abagaedje del clé publike %1% a fwait berwete" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "Li oistaedje del clé publike %1% a fwait berwete" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Les fitchîs d' apontiaedje po %s ont stî candjîs :" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" "rpm a schapé %s come %s mins ça n' a nén stî possibe di trover l' diferince" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm a schapé %s come %s/\n" "Vos avoz droci les 25 prumirès royes di diferince :\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" "rpm a ahivé %s come %s mins ça n' a nén stî possibe di trover l' diferince" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm a ahivé %s come %s/\n" "Vos avoz droci les 25 prumirès royes di diferince :\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "Ôtès rexhowes di rpm" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "copeye di sÃ¥vrité di %s ahivêye" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Sinateure di fitchî %s nén trovêye" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Sinateure di fitchî %s nén trovêye" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Sinateure di fitchî %s nén trovêye" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Dji n' sai inicialijhî les atributs mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Dji n' sai defini l' atribut mutex recursif" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Dji n' sai inicialijhî l' mutex recursif" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Dji n' sai acweri l' eclawaedje mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Dji n' sai dislaxhî l' eclawaedje mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "L' arindjmint di l' Url ni permet pont d' %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Componrint %s nén valÃ¥be « %s »" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Componint %s nén valÃ¥be" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "L' arindjmint di l' URL est on componint reki" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Arindjmint di l' URL nén valÃ¥be « %s »" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "L' arindjmint di l' Url ni permet pont d' no d' uzeu" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "L' arindjmint di l' Url ni permete pont d' sicret" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "I fÃ¥t on lodjoe e l' arindjmint di l' URL" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "L' arindjmint URL ni permete nén d' awè on componint lodjoe" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Componint do lodjoe nén valÃ¥be « %s »" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "L' arindjmint di l' Url ni permet pont d' pôrt" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Componint do pôrt « %s » Nén valÃ¥be" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "I fÃ¥t on no di tchmin e l' arindjmint di l' URL" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "I gn a èn octet NUL el tchinne ecôdêye." #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "L' abagaedje del clé publike do fitchî %s a fwait berwete : %s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Li oistaedje del clé publike %s a fwait berwete : %s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "" #~ "Dji n' sai trover l' éndjin loop k' i gn a po monter l' imÃ¥dje a pÃ¥rti d' " #~ "« %s »" #~ msgid "do not keep %s installed" #~ msgstr "èn nén wÃ¥rder %s astalé" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "" #~ "Dji n' sai askepyî l' clé publike %s di l' anea des clés %s e fitchî %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "" #~ "L' inicialijhaedje di l' aberwetaedje (Metalink curl) a fwait berwete po " #~ "« %s »" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "Aroke d' aberwetaedje (metalink curl) po « %s » :\n" #~ "Côde di l' aroke : %s\n" #~ "Messaedje d' aroke : %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "L' aberwetaedje s' a aresté a %d%%" #~ msgid "Download interrupted by user" #~ msgstr "L' aberwetaedje a stî aresté pa l' uzeu" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "" #~ "Ã…k n' a nén stî come dji definixheu les tchuzes d' aberwetaedje (curl) po " #~ "« %s » :" #~ msgid "Failed to download %s from %s" #~ msgstr "L' aberwetaedje di %s a pÃ¥rti di %s a fwait berwete" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbeye et Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Djin nén cnoxhowe" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "L' operÃ¥cion d' siervice ni covént nén." #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Coridjaedjes di radjoutés" #, fuzzy #~ msgid "Install missing resolvables" #~ msgstr "Afrontmint etur les coridjaedjes" #, fuzzy #~ msgid "Keep resolvables" #~ msgstr "Coridjaedjes ki dj' vos propôze" #, fuzzy #~ msgid "Unlock these resolvables" #~ msgstr "Coridjaedjes d' amidrés" #, fuzzy #~ msgid "delete %s" #~ msgstr "Dis&facer" #, fuzzy #~ msgid "unlock all resolvables" #~ msgstr "Afrontmint etur les coridjaedjes" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "" #~ "Dji n' pout nén drovi l' fitchî d' son:\n" #~ "%1" #, fuzzy #~ msgid "Software management is already running." #~ msgstr "Meteu a djoû d' programe - ZMD n' est nén enondé" #, fuzzy #~ msgid "Invalid information" #~ msgstr "&InformÃ¥cion" #, fuzzy #~ msgid "%s is needed by other resolvables" #~ msgstr "Coridjaedjes ricomandés" #, fuzzy #~ msgid "%s conflicts with other resolvables" #~ msgstr "Afrontmint etur les coridjaedjes" #, fuzzy #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "afrontmint avou..." #, fuzzy #~ msgid "%s obsoletes other resolvables" #~ msgstr "Coridjaedjes di radjoutés" #, fuzzy #~ msgid "%s depends on other resolvables" #~ msgstr "Coridjaedjes ricomandés" #, fuzzy #~ msgid "Child of" #~ msgstr "Tchili" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "Gn a pont d' eterface uzeu po ç' module." #, fuzzy #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "Çou paket n' est nén astalé et n' serè nén astalé." #, fuzzy #~ msgid "%s has unfulfilled requirements" #~ msgstr "a des dmandes nén rezoudowes..." #, fuzzy #~ msgid "No need to install %s" #~ msgstr "Copyî les fitchîs sol sistinme d' astalé" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "a des dmandes nén rezoudowes..." #, fuzzy #~ msgid ", Action: " #~ msgstr "&Accions" #, fuzzy #~ msgid "selection" #~ msgstr "Tchuze" #, fuzzy #~ msgid "pattern" #~ msgstr "Modeles" #, fuzzy #~ msgid "product" #~ msgstr "prodûts" #, fuzzy #~ msgid "patch" #~ msgstr "coridjaedjes" #, fuzzy #~ msgid "script" #~ msgstr "Scripe" #, fuzzy #~ msgid "message" #~ msgstr "Messaedjes" #, fuzzy #~ msgid "Resolvable" #~ msgstr "Coridjaedjes di dnés." #, fuzzy #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Coridjaedjes ki dvèt esse astalés" #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "Coridjaedjes ki dj' a dandjî dvant l' astalaedje" #, fuzzy #~ msgid "Installing %s" #~ msgstr "Astalaedje" #, fuzzy #~ msgid " Error!" #~ msgstr "Aroke" #, fuzzy #~ msgid " Important!" #~ msgstr "Abe&rweter" #, fuzzy #~ msgid "Reading index files" #~ msgstr "Dji lé l' lisse des modules..." #, fuzzy #~ msgid "Reading product from %s" #~ msgstr "Dji schape l' informÃ¥cion sol prodût..." #, fuzzy #~ msgid "Reading filelist from %s" #~ msgstr "Aroke e scrijhant l' lisse des pakets a pÃ¥rti d' %1" #, fuzzy #~ msgid "Reading packages from %s" #~ msgstr "Aroke e scrijhant l' lisse des pakets a pÃ¥rti d' %1" #, fuzzy #~ msgid "Reading pattern from %s" #~ msgstr "Modeles k' on -z a dandjî" #, fuzzy #~ msgid "The script file failed the checksum test." #~ msgstr "Ci fitchî la n' egzistêye nén." #, fuzzy #~ msgid "Reading packages file" #~ msgstr "L' astalaedje des pakets dmandés n' a nén stî." #, fuzzy #~ msgid "Downloading %s" #~ msgstr "A&berweter" #, fuzzy #~ msgid "Apache languages" #~ msgstr "Lingaedjes apaches" #, fuzzy #~ msgid "Athapascan languages" #~ msgstr "Lingaedjes atapascans" #, fuzzy #~ msgid "Australian languages" #~ msgstr "Lingaedjes ostralyins" #, fuzzy #~ msgid "Bamileke languages" #~ msgstr "Lingaedjes bamilekes" #, fuzzy #~ msgid "Chinook jargon" #~ msgstr "DjÃ¥rgon Tchinouk" #, fuzzy #~ msgid "Creoles and pidgins, English based (Other)" #~ msgstr "Creyoles et pidjines, bÃ¥zé sol inglès (ôtes)" #, fuzzy #~ msgid "Creoles and pidgins, French-based (Other)" #~ msgstr "Creyoles et pidjines, bÃ¥zé sol francès (ôtes)" #, fuzzy #~ msgid "Creoles and pidgins, Portuguese-based (Other)" #~ msgstr "Creyoles et pidjines, bÃ¥zé sol portuguès (ôtes)" #, fuzzy #~ msgid "Iroquoian languages" #~ msgstr "Lingaedjes irocwès" #, fuzzy #~ msgid "Manobo languages" #~ msgstr "Lingaedjes manobo" #, fuzzy #~ msgid "Otomian languages" #~ msgstr "Lingaedjes otomans" #, fuzzy #~ msgid "Prakrit languages" #~ msgstr "Lingaedjes prakrit" #, fuzzy #~ msgid "Salishan languages" #~ msgstr "Lingaedjes salichans" #, fuzzy #~ msgid "Siouan languages" #~ msgstr "Lingaedjes siwous" #, fuzzy #~ msgid "Tupi languages" #~ msgstr "Lingaedjes toupi" #, fuzzy #~ msgid "Wakashan languages" #~ msgstr "Lingaedjes wakashan" #, fuzzy #~ msgid "Sorbian languages" #~ msgstr "Lingaedjes sorbyin" #, fuzzy #~ msgid "Centruual African Republic" #~ msgstr "Cintrafrike" libzypp-17.7.0/po/xh.po000066400000000000000000003435251334444677500147310ustar00rootroot00000000000000# Copyright (C) 2006 SuSE Linux Products GmbH, Nuernberg # This file is distributed under the same license as the package. # msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2006-11-03 12:03\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Isinxaxhi se-Hal" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Ilizwe elingaziwa:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Akukho Khowudi" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "i-Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "Ii-Arab Emirates Ezimanyeneyo" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "i-Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "i-Antigua ne-Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "i-Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "i-Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "i-Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "i-Netherlands Antilles" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "i-Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "i-Antarctica" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "i-Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "i-American Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "i-Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "i-Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "i-Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "i-Aland Islands" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "i-Azerbaijan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "i-Bosnia ne-Herzegowina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "i-Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "i-Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "i-Belgium" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "i-Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "i-Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "i-Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "i-Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "i-Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "i-Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "i-Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "i-Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "i-Brazil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "i-Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "i-Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "i-Bouvet Island" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "i-Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "i-Belarus" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "i-Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "i-Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "i-Cocos (Keeling) Islands" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "i-Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Iriphabliki yaseAfrika Esembindini " #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "i-Switzerland" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "i-Cote D'Ivoire" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "i-Cook Islands" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "i-Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "i-Cameroon" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "i-China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "i-Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "i-Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "i-Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "i-Cape Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "i-Christmas Island" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "i-Cyprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "i-Czech Republic" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "EJamani" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "i-Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "i-Denmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "i-Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "i-Dominican Republic" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "i-Algeria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "i-Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "i-Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "iYiphutha" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "i-Western Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "i-Ertrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "i-Spain" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "i-Ethiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "i-Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "i-Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "i-Falkland Islands (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "i-Federated States of Micronesia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "i-Faroe Islands" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "i-France" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "i-Metropolitan France" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "i-Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "i-United Kingdom" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "i-Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "i-Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "i-French Guiana" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "EJamani" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "i-Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "i-Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "i-Greenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "i-Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "i-Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "i-Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "i-Equatorial Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "i-Greece" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "i-South Georgia ne-South Sandwich Islands" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "i-Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "i-Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "i-Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "i-Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "i-Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "i-Heard Island ne-McDonald Islands" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "i-Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "i-Croatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "i-Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "i-Hungary" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "i-Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "i-Ireland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "i-Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "i-Indiya" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "i-British Indian Ocean Territory" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "i-Iraq" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "i-Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "i-Iceland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "i-Italy" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "i-Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "i-Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "iJapani" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "i-Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "i-Kyrgyzstan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "i-Cambodia" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "i-Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "i-Comoros" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "i-Saint Kitts neNevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "i-North Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "i-South Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "i-Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "i-Cayman Islands" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "i-Kazakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "i-Lao People's Democratic Republic" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "i-Lebanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "i-Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "i-Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "i-Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "i-Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "i-Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "i-Lithuania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "i-Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "i-Latvia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "i-Libya" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "i-Morocco" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "i-Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "i-Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "isi-Mongo" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "i-San Marino" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "i-Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "i-Marshall Islands" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "i-Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "i-Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "i-Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "i-Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "i-Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "i-Northern Mariana Islands" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "i-Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "i-Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "i-Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "i-Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "i-Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "i-Maldives" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "i-Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "i-Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "i-Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "i-Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "i-Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "i-New Caledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "i-Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "i-Norfolk Island" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "i-Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "i-Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "i-Netherlands" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "i-Norway" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "i-Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "i-Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "i-Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "i-New Zealand" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "i-Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "i-Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "i-Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "i-French Polynesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "i-Papua New Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "i-Philippines" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "i-Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "i-Poland" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "i-Saint Pierre ne-Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "i-Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "i-Puerto-Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "i-Palestinian Territory" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "i-Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "i-Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "i-Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "i-Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "i-Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "i-Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "isi-Serbian" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "i-Russian Federation" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "i-Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "i-Saudi Arabia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "i-Solomon Islands" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "i-Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "i-Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "i-Sweden" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "i-Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "i-Saint Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "i-Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "i-Svalbard ne-Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "i-Slovakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "i-Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "i-San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "i-Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "i-Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "i-Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "i-Sao Tome ne-Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "i-El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "i-Syria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "i-Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "i-Turks ne-Caicos Islands" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "i-Chad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "i-French Southern Territories" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "i-Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "i-Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "i-Tajikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "isi-Tokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "i-Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "i-Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "i-Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "i-East Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "i-Turkey" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "i-Trinidad ne-Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "isi-Tuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "i-Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "i-Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "i-Ukraine" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "i-Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "i-United States Minor Outlying Islands" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "i-United States" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "i-Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "i-Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "i-Holy See (Vatican City State)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "i-Saint Vincent ne-Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "i-Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "i-British Virgin Islands" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "i-Virgin Islands, U.S." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "i-Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "i-Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "i-Wallis ne-Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "i-Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "i-Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "i-Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "uMzantsi Afrika" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "i-Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "i-Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s ziphelelwe lixehsa:%s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Ayikwazi kuvuleka ifayili %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Ayikwazi kufumana %s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "Ayikwazi kufumana %s." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Umyalelo okhutshwa xa kudityaniswa" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Isilele ukuqalisa i-VM." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Isilele ukuqalisa i-VM." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "Ukungenisa akufunyenwanga." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ulwimi Olungaziwayo:" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Isi-Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Isi-Abkhazian" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "isi-Achinese" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "isi-Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "isi-Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "isi-Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "isi-Afro-Asiatic (Esinye)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "isi-Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "isiBhulu" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "isi-Ainu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "isi-Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "isi-Akkadian" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "isi-Albanian" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "isi-Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "isi-Algonquian Languages" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "isi-Southern Altai" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "isi-Amharic" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "isiNgesi, Sakudala (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Iilwimi ze-Apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "isi-Arabic" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "isi-Aramaic" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "isi-Aragonese" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "isi-Armenian" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "isi-Araucanian" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "isi-Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "isi-Artificial (Esinye)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "isi-Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "isi-Assamese" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "isi-Asturian" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Iilwimi ze-Athapascan" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Iilwimi zase-Australia" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "isi-Avaric" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "isi-Avestan" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "isi-Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "isi-Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "isi-Azerbaijani" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "isiBanda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Iilwimi ze-Bamileke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "isi-Bashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "isi-Baluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "isi-Bambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "isi-Balinese" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "Isi-Basque" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "isi-Basa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "isi-Baltic (Esinye)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "isi-Beja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "isi-Belarusian" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "isi-Bemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "isi-Bengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "isi-Berber (Esinye)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "isi-Bhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "isi-Bihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "isi-Bikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "isi-Bini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "isi-Bislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "isi-Siksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "isiBantu (Esinye)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "isi-Bosnian" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "isi-Braj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "isi-Breton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "isi-Batak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "isi-Buriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "isi-Buginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "isi-Bulgarian" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "isi-Burmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "isi-Blin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "isi-Caddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "isi-Central American Indian (Esinye)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "isi-Carib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "isi-Catalan" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "isi-Caucasian (Esinye)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "isi-Cebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "isi-Celtic (Esinye)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "isi-Chamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "isi-Chibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "isi-Chechen" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "isi-Chagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "isiTshayina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "isi-Chuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "isi-Mari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "isi-Chinook Jargon" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "isi-Choctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "isi-Chipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "isi-Cherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "isi-Church Slavic" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "isi-Chuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "isi-Cheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Iilwimi ze-Chamic" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "isi-Coptic" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "isi-Cornish" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "isi-Corsican" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "Ii-Creoles nee-Pidgins, Ezisekwe esiNgesini (Nakwezinye)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "Ii-Creoles nee-Pidgins, Ezisekwe kwisiFrentshi (Nakwezinye)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "Ii-Creoles nee-Pidgins, Ezisekwe kwisiPhuthukezi (Nakwezinye)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "isi-Cree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "isi-Crimean Tatar" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Ii-Creoles nee-Pidgins (Ezinye)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "isi-Kashubian" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "isi-Cushitic (Ezinye)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "isi-Czech" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "isi-Dakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "isi-Danish" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "isi-Dargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "isi-Dayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "isi-Delaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "isi-Slave (Athapascan)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "isi-Dogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "isi-Dinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "isi-Divehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "isi-Dogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "isi-Dravidian (Esinye)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "i-Lower Sorbian" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "isi-Duala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "isi-Datshi, Esiphakathi (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "isiDatshi" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "isi-Dyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "isi-Dzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "isi-Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "isiYiphutha (Samandulo)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "isi-Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "isi-Elamite" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "isiNgesi" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "isiNgesi, Esiphakathi (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "isi-Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "isi-Estonian" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "isi-Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "isi-Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "isi-Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "isi-Faroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "isi-Fanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "isi-Fijian" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "isi-Filipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "isiFinnish" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "isi-Finno-Ugrian (Esinye)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "isi-Fon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "isiFrentshi" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "isiFrentshi, Esiphakathi (ca.1050-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "isiNgesi, Sakudala (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "isi-Frisian" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "isi-Fulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "isi-Friulian" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "isi-Ga" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "isi-Gayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "isi-Gbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "isi-Jamani (Ezinye)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "isi-Georgian" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "isiJamani" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "isi-Geez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "isi-Gilbertese" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "isi-Gaelic" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "isi-Irish" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "isi-Galician" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "isi-Manx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "isiJamani, Esiphakathi Phezulu(ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "isiJamani, Sakudala Phezulu (ca.750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "isi-Gondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "isi-Gorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "isi-Gothic" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "isi-Grebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "isi-Grike, Samandulo (ukuya ku-1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "isiGrike, Sanamhla (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "isi-Guarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "isi-Gujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "isi-Gwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "isi-Haida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "isi-Haitian" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "isi-Hausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "isi-Hawaiian" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "isiHebheru" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "isi-Herero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "isi-Hiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "isi-Himachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "isi-Hindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "isi-Hittite" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "isi-Hmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "isi-Hiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "isi-Sorbian Sangasentla" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "isi-Hungarian" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "isi-Hupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "isi-Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "isi-Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "isi-Icelandic" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "isi-Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "isi-Sichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "isi-Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "isi-Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "isi-Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "isi-Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "i-Interlingua (Umbutho Wehlabathi Wokuncedisa Ngeelwimi)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "isi-Artificial (Esinye)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "isi-Indonesian" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "isi-Indo-European (Esinye)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "isi-Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "isi-Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "isi-Iranian (Esinye)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Iilwimi ze-Iroquoian" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "isiTaliyane" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "isi-Javanese" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "isi-Lojban" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "isiJapani" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "isi-Judeo-Persian" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "isi-Judeo-Arabic" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "isi-Kara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "isi-Kabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "isi-Kachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "isi-Kalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "isi-Kamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "isi-Kannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "isi-Karen" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "isi-Kashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "isi-Kanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "isi-Kawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "isi-Kazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "isi-Kabardian" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "isi-Khasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "isi-Khoisan (Esinye)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "isi-Khmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "isi-Khotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "isi-Kikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "isi-Kinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "isi-Kirghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "isi-Kimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "isi-Konkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "isi-Komi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "isi-Kongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "isi-Korean" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "isi-Kosraean" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "isi-Kpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "isi-Karachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "isi-Kru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "isi-Kurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "isi-Kuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "isi-Kumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "isi-Kurdish" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "isi-Kutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "isi-Ladino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "isi-Lahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "isi-Lamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "isi-Lao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "isi-Latin" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "isi-Latvian" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "isi-Lezghian" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "isi-Limburgan" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "isi-Lingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "isi-Lithuanian" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "isi-Mongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "isi-Lozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "isi-Luxembourgish" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "isi-Luba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "isi-Luba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "isi-Ganda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "isi-Luiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "isi-Lunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "isi-Luo (eKenya naseTanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "isi-Lushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "isi-Macedonian" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "isi-Madurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "isi-Magahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "isi-Marshallese" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "isi-Maithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "isi-Makasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "isi-Malayalam" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "isi-Mandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "isi-Maori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "isi-Austronesian (Esinye)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "isi-Marathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "isi-Masai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "isi-Malay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "isi-Moksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "isi-Mandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "isi-Mende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "isi-Irish, Esiphakathi (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "isi-Mi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "isi-Minangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Iilwimi Eziyintlaninge" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "isi-Mon-Khmer (Esinye)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "isi-Malagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "isi-Maltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "isi-Manchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "isi-Manipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Iilwimi zesiManobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "isi-Mohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "isi-Moldavian" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "isi-Mongolian" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "isi-Mossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Iilwimi Ezininzi" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Iilwimi zesiMunda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "isi-Creek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "isi-Mirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "isi-Marwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Iilwimi zesi-Mayan" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "isi-Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "isi-Nahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "isi-American Indian saseMantla" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "isi-Neapolitan" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "i-Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "isiNdebele, saseMzantsi" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "isiNdebele, saseMantla" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "isiNdonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "isiJamani saseZantsi" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "isi-Nepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "isi-Nepal Bhasa" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "isi-Nias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "isi-Niger-Kordofanian (Ezinye)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "isi-Niuean" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "isi-Norwegian Nynorsk" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "isi-Norwegian Bokmal" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "isi-Nogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "isi-Norse, Sakudala" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "isi-Norwegian" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "isiSuthu saseLebowa" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Iilwimi zesiNubian" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "isi-Classical Newari" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "isi-Chichewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "isi-Nyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "isi-Nyankole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "isiNyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "isiNzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "isi-Occitan (emva kwe-1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "isi-Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "isi-Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "isi-Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "isi-Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "isi-Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "isi-Turkish, Ottoman (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Iilwimi zesi-Otomian" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "isi-Papuan (Esinye)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "isi-Pangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "isi-Pahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "isi-Pampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "isi-Panjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "isi-Papiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "isi-Palauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "isi-Persian, Sakudala (ca.600-400 B.C)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "isi-Persian" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "isi-Philippine (Esinye)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "isi-Phoenician" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "isiPali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "isi-Polish" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "isi-Pohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "isiPhuthukezi" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Iilwimi zesi-Prakrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "isi-Provencal, Sakudala (ukuya kwi-1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "Isi-Pushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "isi-Quechua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "isi-Rajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "isi-Rapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "isi-Ratongan" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "isi-Romance (Ezinye)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "isi-Raeto-Romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "isi-Romany" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "isi-Romanian" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "isi-Rundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "isiRashiya" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "isi-Sandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "isi-Sango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "isi-Yakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "isi-South American Indian (Ezinye)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Iilwimi zesi-Salishan " #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "isi-Samaritan Aramaic" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "isi-Sanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "isi-Sasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "isi-Santali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "isi-Serbian" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "isi-Sicilian" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "isi-Scots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "isi-Croatian" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "isi-Selkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "isi-Semitic (Ezinye)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "isi-Irish, Sakudala (ukuya ku-900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Iilwimi zeMiqondiso" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "isi-Shan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "isi-Sidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "isi-Sinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Iilwimi zesi-Siouan" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "isi-Sino-Tibetan (Ezinye)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "isi-Slavic (Esinye)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "isi-Slovak" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "isi-Slovenian" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "isi-Sami esiseMzantsi" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "isi-Sami esiseMantla" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Iilwimi zesi-Sami (Ezinye)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "isi-Lule Sami" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "isi-Inari Sami" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "isi-Samoan" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "isi-Skolt Sami" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "isiShona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "isi-Sindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "isi-Soninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "isi-Sogdian" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "isi-Somali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "isi-Songhai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "isiSuthu, saseMzantsi" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "isi-Spanish" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "isi-Sardinian" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "isi-Serer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "isi-Nilo-Saharan (Ezinye)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "isiSwati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "isiSukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "isi-Sundanese" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "isi-Susu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "isi-Sumerian" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "isiSwahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "isi-Swedish" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "isi-Syriac" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "isi-Tahitian" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "isi-Tai (Esinye)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "isi-Tamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "isi-Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "isiTelegu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "isi-Timne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "isi-Tereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "isi-Tetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "isi-Tajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "isi-Tagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "isi-Thai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "isi-Tibetan" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "isi-Tigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "isi-Tigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "isi-Tiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "isi-Klingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "isi-Tlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "isi-Tamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "isiTonga (Nyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "isi-Tonga (Tonga Islands)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "isi-Tok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "isi-Tsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "isiTswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "isiTsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "isi-Turkmen" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "isiTumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Iilwimi zesiTupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "isi-Turkish" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "isi-Altaic (Esinye)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "isiTwi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "isi-Tuvinian" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "isi-Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "isi-Ugaritic" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "isi-Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "isi-Ukrainian" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "isi-Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Akuqondwanga" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "isi-Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "isi-Uzbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "isi-Vai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "isiVenda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "isi-Vietnamese" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "isi-Volapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "isi-Votic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Iilwimi zesiWakashan" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "isi-Walamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "isi-Waray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "isi-Washo" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "isi-Welsh" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Iilwimi zesi-Sorbian" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "isi-Walloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "isi-Wolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "isi-Kalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "isiXhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "isi-Yao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "isi-Yapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "isi-Yiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "isiYoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Iilwimi zesi-Yupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "isi-Zapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "isi-Zenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "isi-Zhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "isi-Zande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "IsiZulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "isiZuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'%1ayikho kwayona." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'%1ayikho kwayona." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "Igama le-VM alikwazi kuqalisa ngomvo." #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "Igama le-VM alikwazi kuqalisa ngomvo." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Ayikwazi kuvula ifayili ukuze kubhalwe." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Ayikwazi kuvuleka into yolwazi olusesikrinini '%s'" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Akakwazi kudaleka uvimba weefayili %1: %2." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Imposiso xa kufundwa kwidiski ye-floppy." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Igama lefayili elithathwa ngaphandle elingasebenzisekiyo." #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "Ibuyisela oovimba" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ayikwazi kuvuleka into yolwazi olusesikrinini '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Umtya wokubuzisa we-LDAP URL ongasebenzisekiyo" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Umtya wokubuzisa we-LDAP URL ongasebenzisekiyo '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Akukwazeki ukufanisa into ye-Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Isalathi sento ye-Url elikhamte nengasebenzisekiyo" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Akukwazeki ukwahlula iinxalenye ze-Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "akwaziwa" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "Idiski ayikho." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Ayikwazi kuvuleka ifayili %1." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Umyalelo ongaziwa" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Ulungiselelo olusebenzisekayo lwe-Url '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Ayikwazanga kuvuleka i-%s - %s\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Kusilele ukulayishwa kwemodyulei \"%s\"." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Ifayili %1 ayifunyenwanga elugcinweni." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Akukwazi kubhaleka ukuphawuleka kwefayili %1." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "%1 asingovimba weefayili." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "Igama le-CA elikhamte." #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Isicwangciso se-Url asisebenziseki '%1'" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ayikwazi kuvuleka into yolwazi olusesikrinini '%s'" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Iimvume zaliwe" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Umbekelo%s usilele ukukhangela imfezekiso. Ingaba usafuna ukuzama kwakhona " "ukuyikhuphela?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Umbekelo%s usilele ukukhangela imfezekiso. Ingaba usafuna ukuzama kwakhona " "ukuyikhuphela?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "kusilele ukukhangela ukusetyenziswa kwe-deltarpm. " #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "kusilele ukusetyenziswa kwe-deltarpm." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "uhlobo lukavimba we-VAR1 aluluxhasi uphawu lokubonisa utshintsho" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Ayikwazi kubonelela%s ukusuka ku%s" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "Ifayili %1 ayifunyenwanga elugcinweni." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Ayikwazi kudaleka ifayili." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Suhoya le mfuneko apha nje" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "Suhoya le mfuneko apha nje" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s ibonelela%s, kodwa inenye inzululwazi ngokwakha." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "umyalelo wokuyeka ukuhlohla imibekelelo" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "Uqhagamshelo lucela uku:" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Ayikwazi kuhlohla%s ngenxa yeengxaki zoxhomekeko" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "Akukho nanye ebonelela ngo%s " #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Idiski ayikho." #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s itshixiwe kwaye ayikwazi kungahlohlwa." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "ayihlohlwanga" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s ifunwa ngu %s" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Ayikwazi kuhlohla%s " #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s iimpixano ne %s" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s ziphelelwe lixehsa %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s ziphelelwe lixehsa %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s iimpixano ne %s" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "Akukho nanye ebonelela ngo%s " #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "Akukho baboneleli bahlohliweyo baka%s" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "Akukho baboneleli bahlohliweyo baka%s" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "ungahlohli %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "Gcina%s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "ungahlohli %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "Isicelo sesikhona kakade." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "Akukho baboneleli bahlohliweyo baka%s" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Ungahlohli okanye cima izicombululi ezinxulumeneyo" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s ibonelela%s, kodwa inenye inzululwazi ngokwakha." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "Hlohla%s nangona kuza kutshintsha inzululwazi yokwakha" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s ziphelelwe lixehsa %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "Ikhuphele%s ukusuka ku%s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Ukuhlohla" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "Phumeza" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "Imposiso ngethuba loguqulelo oluntsonkothileyo lweqhosha." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Ukuhlohla kuye kwalahlwa njengoko bekuyalelwe." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "Imeko ye-Hal ayiqhagamshelwanga" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "Isixhobo se-Hal asindululwanga" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "Isixa se-Hal asindululwanga" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Ayikwazi kudala uqhagamshelo lwe-dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "i-libhal_ctx_entsha: Ayikwazu kudala imeko ye-libhal" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" "i-libhal_imisela_uqhagamshelo_lwe-dbus: Ayikwazi kumesela uqhagamshelo lwe-" "dbus " #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Ayikwazi kundulula imeko ye-HAL--i-hald ayiqhubi?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Akukho sixhobo se-CDROM" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "isilele" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Iifayili zobumbeko ezitshintshileyo zika%s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "i-rpm igcine %s njenge %s kodwa kwakungenzeki ukumisela umahluko" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "i-rpm igcinwe %s njenge %s.\n" "Nantsi imigca eyi-25 yokuqala yomahluko:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "i-rpm idalwe %s njenge %s kodwa kwakungenzeki ukumisela umahluko" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "i-rpm idalwe %s njenge %s.\n" "Nantsi imigca eyi-25 yokuqala yomahluko:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Isivelisi se-rpm Esongezelelweyo:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "idale ugcino olukhuselekileyo %s " #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Ukungenisa akufunyenwanga." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Ukungenisa akufunyenwanga." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Ukungenisa akufunyenwanga." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Ayikwazi kundulula ukwabela i-mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Ayikwazi kumisela ulwabelo lokugoba i-mutex " #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Ayikwazi kundulula i-mutex yokugoba" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Ayikwazi kufumana isitshixo se-mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Ayikwazi kukhulula isitshixo se-mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Ulungiselelo lwe-Url aluyivumeli i-%s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ayisebenziseki %s inxalenye '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ayisebenziseki %s inxalenye" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Ukwahlulwa komtya wokubuzisa awuxhaswa malunga nale-URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Ulungiselelo lwe-Url yinxalenye efunekayo" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Ulungiselelo olusebenzisekayo lwe-Url '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Ulungiselelo lwe-Url akulivumeli igama lomsebenzisi" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Ulungiselelo lwe-Url awulivumeli igama lokugqithisa" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Ulungiselelo lwe-Url lufuna inxalenye yomamkeli" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Ulungiselelo lwe-Url awuyivumeli inxalenye yomamkeli" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ayisebenziseki inxalenye yomamkeli ye-'%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Ulungiselelo lwe-Url awusivumeli isiqhagamshelanisi" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ayisebenziseki inxalenye yesiqhagamshelanisi se-'%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Ulungiselelo lwe-Url lufuna igama lendlela yothungelwano" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Indlela yothungelwano ethelekisekayo ayivunyelwa xa lukhona ugunyaziso" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Umtya ofakwe iikhowudi uqhulethe i-byte ENGENANTO" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" "Uphawu oluthatha isithuba somhlukanisi oqhekezayo woludwe lomda wenkcazelo " "engasebenzisekiyo" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" "Uphawu oluthatha isithuba somhlukanisi oqhekezayo woludwe lomda wenkcazelo " "ongasebenzisekiyo" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" "Uphawu oluthatha isithuba somhlukanisi ohlanganisayo woludwe lomda " "wenkcazelo engasebenzisekiyo" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Akukwazeki ukufumana iqhosha likawonkewonke." #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "ayihlohlwanga" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Ayikwazanga kuvuleka i-%s - %s\n" #~ msgid "Serbia and Montenegro" #~ msgstr "i-Serbia ne-Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Isikhethwa soluhlu esingaziwa" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "ayikwazi kusombulula izixhomekeki" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayili%s ayinayo inxenye yokukhangela.\n" #~ "Sebenzisa ifayili nakanjani?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayili%s isilele ukukhangela imfezeko ngeqhosha elilandelayo:\n" #~ "%s|%s|%s\n" #~ " Sebenzisa ifayili nalanjani?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayili%s inenxenye yokukhangela engasebenzi.\n" #~ "Ilindeleke%s, ifunyenwe%s\n" #~ " Sebenzisa ifayili nakanjani?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayili%s inenxenye yokukhangela engaziwa%s .\n" #~ "Sebenzisa ifayili nakanjani?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Ifayili %s ayisayinwanga.\n" #~ "Yisebenzise nakanjani?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayili%s isayinwe ngeqhosha elingaziwa:\n" #~ "%s|%s|%s\n" #~ " Sebenzise ifayili nakanjani?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Kufunyenwe iqhosha elingathenjwanga:\n" #~ "%s|%s|%s\n" #~ " Themba Iqhosha?" #~ msgid "%s remove failed" #~ msgstr "%s ukushenxisa kusilele" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "Guqula igama lokugqithisa lakho" #~ msgid "rpm output:" #~ msgstr "isivelisi se-rpm:" #~ msgid "%s install failed" #~ msgstr "%s ukuhlohla kusilele" #~ msgid "%s installed ok" #~ msgstr "%s ukuhlohla kulungile" #~ msgid "%s remove ok" #~ msgstr "%s ukushenxisa kulungile" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "%s ibonelela esi sixhomekeki kodwa kuza kutshintsha inzululwazi yokwakha " #~ "into ehlohliweyo" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "%s ibonelela esi sixhomekeki kodwa kuza kutshintsha inzululwazi yokwakha " #~ "into ehlohliweyo" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Ungahlohli okanye cima izicombululi ezinxulumeneyo" #~ msgid "Ignore that %s is already set to install" #~ msgstr "Suhoya ukuba%s sele imiselwe ukuhlohla" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "Suhoya ukuphelelwa%s lixesha kwi%s" #~ msgid "Ignore this conflict of %s" #~ msgstr "Suhoya le mpixano ka%s " #~ msgid "Ignore this requirement just here" #~ msgstr "Suhoya le mfuneko apha nje" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "Hlohla%s nangona kuza kutshintsha inzululwazi yokwakha" #~ msgid "Install missing resolvables" #~ msgstr "Hlohla izicombululi ezilahlekileyo" #~ msgid "Keep resolvables" #~ msgstr "Gcina iziconjululwa" #~ msgid "Unlock these resolvables" #~ msgstr "Vula ezi zicombululi" #~ msgid "delete %s" #~ msgstr "Cima %s" #~ msgid "install %s" #~ msgstr "hlohla%s" #~ msgid "unlock %s" #~ msgstr "vula%s" #~ msgid "unlock all resolvables" #~ msgstr "vula zonke izicombululi" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Ayikwazi kuvuleka ifayili %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Icandelo lokufunda imposiso %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "" #~ "Ukwahlula umda wenkcazelo yendlela yothungelwano awuxhaswa malunga nale-" #~ "URL" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "" #~ "Ukwahlula umda wenkcazelo yendlela yothungelwano awuxhaswa malunga ne-URL" #~ msgid "Software management is already running." #~ msgstr "Ukulawulwa kwe-software sele kuqhuba." #~ msgid "%s is replaced by %s" #~ msgstr "%s ibuyiselwe ngo %s" #~ msgid "%s replaced by %s" #~ msgstr "%s ibuyiselwe ngo %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "Ezi ziconjululwa ziza kucinywa kwisixokelelwano." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s ayizukuhlohlwa kuba isafuneka" #~ msgid "Invalid information" #~ msgstr "Ulwazi olungasebenzi" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s iyafunwa zezinye iziconjululwa" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s ifunwa ngu:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s iimpixano nezinye iziconjululwa" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s iimpixano ne:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s yenza ezinye iziconjululwa ziphelelwe lixesha" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "Ezi ziconjululwa ziza kucinywa kwisixokelelwano." #~ msgid "%s depends on other resolvables" #~ msgstr "%s ixhomekeke kwezinye iziconjululwa" #~ msgid "%s depends on %s" #~ msgstr "%s ixhomekeke kwi %s" #~ msgid "%s depends on:%s" #~ msgstr "%s ixhomekeke kwi:%s" #~ msgid "Child of" #~ msgstr "Umntwana ka" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "Akukho vimba ufumanekayo oxhasa le mfuneko." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "Ngenxa yeengxaki ezichazwe ngentla/ngezantsi kwesi sigqibo " #~ "akuyikusombulula zonke izixhomekeki." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "Ayikwazi kuhlohla u%s kuba kuyaphixana ne%s " #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s ayihlohlwanga kwaye iphawulwe njengengahlohleki" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s inemfuneko ezingazalisekiswanga" #~ msgid "%s has missing dependencies" #~ msgstr "%s inezixhomekeki ezilahlekileyo" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s ayikwazi kuhlohla ngenxa yezixhomekeki ezilahlekikeyo" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s zalisekisa izixhomekeki zika%s kodwa aziyi kuhlohlwa" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "" #~ "%s zaliseka izixhomekeki zika%s kodwa ziza kugcinwa kwisixokelelwano sakho" #~ msgid "No need to install %s" #~ msgstr "Akukho mfuno yokuhlohla%s " #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "Ayikwazi kuhlohla%s ukuzalisekisa izixhomekeki zika%s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "Ayikwazi kuhlohla%s ukuzalisekisa izixhomekeki zika%s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s ayizukuhlohlwa kuba isafuneka" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "%s ziphelelwe lixehsa%s . Kodwa%s ayikwazi kucima kuba itshixiwe." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "Ayikwazi kuhlohla u%s kuba kuyaphixana " #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s ayihlohleki ngenxa yeempixano ne %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "ukufuna%s ka%s xa ihlaziya%s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ilahlekelwe yimfuneko %s" #~ msgid ", Action: " #~ msgstr ", Isenzo:" #~ msgid ", Trigger: " #~ msgstr ", Inkcukumiso:" #~ msgid "package" #~ msgstr "umbekelo" #~ msgid "selection" #~ msgstr "ukukhetha" #~ msgid "pattern" #~ msgstr "indlela yenkqubo" #~ msgid "product" #~ msgstr "imveliso" #~ msgid "patch" #~ msgstr "lungisa" #~ msgid "script" #~ msgstr "iskripti" #~ msgid "message" #~ msgstr "umyalezo" #~ msgid "atom" #~ msgstr "iatom" #~ msgid "system" #~ msgstr "isixokelelwano" #~ msgid "Resolvable" #~ msgstr "Isiconjululwa" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "Ukuphawu le nzame yesigqibo akusebenzi." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Ukuphawula ukuconjululwa%s njengesingahlohleki" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s uludwe lwenkqubo ukuba lihlohlwe, kodwa oku akwenzeki ngenxa yeengxaki " #~ "zesixhomekeki." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "" #~ "Ayikwazi kuhlohla%s ukusukela oko kuba sele iphawulwe njengefuna ukuba " #~ "ihlohlwe" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "" #~ "Ayikwazi kuhlohla%s ukusukela oko ingabhekiseli kwesi sixokelelwano." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "Ayikwazi kuhlohla%s ukusukela oko%s kuba sele iphawulwe njengefuna ukuba " #~ "ihlohlwe" #~ msgid "This would invalidate %s." #~ msgstr "Oku kuza kubhangisa%s." #~ msgid "Establishing %s" #~ msgstr "Imisela%s" #~ msgid "Installing %s" #~ msgstr "Ihlohla %s" #~ msgid "Updating %s to %s" #~ msgstr "Ihlaziya%s ukuya ku%s" #~ msgid "Skipping %s: already installed" #~ msgstr "Itsiba%s: sele ihlohliwe" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "Akukho baboneleli bachaseneyo bahlohliweyo baka%s" #~ msgid "for %s" #~ msgstr "ka%s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "Hlaziya ukuya ku%s ukunqanda ukushenxiswa kuka%s akwenzeki." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ibonelela%s, kodwa yenzelwe uludwe lwenkqubo ukuba ihlohlwe." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "%s ibonelela%s, kodwa enye inguqulelo yoko%s sele ihlohliwe." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ibonelela%s, kodwa ayihlohleki. Zama ukuyihlohla ngokunokwayo " #~ "ngeenkcukacha ezithe vetshe." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ibonelela%s, kodwa itshixiwe." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ibonelela%s, kodwa yenzelwe uludwe lwenkqubo ukuba igcinwe." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ibonelela%s, kodwa inenye inzululwazi ngokwakha." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "Ayikwazi kwanelisa imfuneko%s ka%s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s iyafunwa zezinye ukuba ihlohle izicombululi, ayizukwazi ukwenziwa " #~ "inganxulumani." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s iyafunwa zezinye ukuba ihlohle izicombululi, ayizukwazi ukwenziwa " #~ "inganxulumani." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "Impixano ngaphezu%s (%s) ifuna ukushenxiswa ukuba kuhlohlwe%s" #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "Ukuphawula%s njengengahlohleki ngenxa yeempixano ezingaphezu kuka%s" #~ msgid "from %s" #~ msgstr "Ukusuka ku%s" #~ msgid " Error!" #~ msgstr "Imposiso!" #~ msgid " Important!" #~ msgstr "Ibalulekile!" #~ msgid "%s depended on %s" #~ msgstr "%s ixhomekeke kwi %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s ifunwa ngu %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s ifunwa ngu %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s ibuyiselwe ngo %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s ifunwa ngu %s" #~ msgid "%s part of %s" #~ msgstr "%s inxenye ka %s" #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s ifunwa ngu %s" #~ msgid "Unable to parse Url authority" #~ msgstr "Akukwazeki ukwahlula ugunyaziso lwe-Url" #~ msgid "Ignore this requirement generally" #~ msgstr "Suhoya le mfuneko jikelele" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s iyafunwa zezinye ukuba ihlohle izicombululi, ayisoze inganxulumani." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "Ayikwazi kudala ifayili efunelwa ukwenza ukuhlohlwa kohlaziyo." #~ msgid "Unable to restore all sources." #~ msgstr "Ayikwazi kugcina bonke oovimba." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "Uvimba nje omnye sele ebhalisiwe, oovimba abagciniweyo abanako ukugcinwa " #~ "kwakhona." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "Ayikwazi kuhlohla%s ukuzalisekisa izixhomekeki zika%s" #~ msgid "%s dependend on %s" #~ msgstr "%s ixhomekeke kwi %s" #~ msgid "Reading index files" #~ msgstr "Ifunda iifayili zokwalathisa" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "Ifayili ye-xml repomd esayiniweyo isilele usayino lokukhangela." #~ msgid "Reading product from %s" #~ msgstr "Ifunda imveliso ukusuka ku%s" #~ msgid "Reading filelist from %s" #~ msgstr "Ifunda uluhlu lwefayili ukusuka ku%s" #~ msgid "Reading packages from %s" #~ msgstr "Ifunda imibekelo ukusuka ku%s" #~ msgid "Reading selection from %s" #~ msgstr "Ifunda ukukhetha ukusuka ku%s" #~ msgid "Reading pattern from %s" #~ msgstr "Ifunda indlela yenkqubo ukusuka ku%s" #~ msgid "Reading patches index %s" #~ msgstr "Ifunda iindawana zokwalathisa%s" #~ msgid "Reading patch %s" #~ msgstr "Ifunda indawana%s" #~ msgid "The script file failed the checksum test." #~ msgstr "Ifayili yesikripti isilele uvavanyo lwe-checksum. " #~ msgid "Reading packages file" #~ msgstr "Ifunda ifayili yemibekelo" #~ msgid "Reading translation: %s" #~ msgstr "Ifunda uguqulelo: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "Umbekelo%s usilele ukukhangela imfezekiso. Ingaba usafuna ukuzama " #~ "kwakhona ukuyikhuphela, okanye lahla ukuhlohla?" #~ msgid " miss checksum." #~ msgstr "ilahlekelwe kukukhangela inxenye." #~ msgid " fails checksum verification." #~ msgstr "isilele ukuqinisekisa ukukhangela inxenye." #~ msgid "Downloading %s" #~ msgstr "Ikhuphela u%s" libzypp-17.7.0/po/zh_CN.po000066400000000000000000003174471334444677500153170ustar00rootroot00000000000000# Chinese message file for YaST2 (@memory@) # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2001 SuSE GmbH. # # # Thruth Wang , 2007, 2008, 2009, 2012, 2013. # marguerite , 2013. # 玛格丽特 · è‹ , 2013, 2014, 2015. msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-09-01 06:01+0000\n" "Last-Translator: H. Zeng \n" "Language-Team: Chinese (China) " "\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal 例外" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "“%sâ€å¯¹ %u 属于错误类型,字节校验和“%sâ€" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "未知国家或地区: " #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "无代ç " #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "安é“尔共和国" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "阿拉伯è”åˆé…‹é•¿å›½" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "阿富汗" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "安æç“œå²›å’Œå·´å¸ƒè¾¾å²›" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "安圭拉岛" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "阿尔巴尼亚" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "亚美尼亚" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "è·å±žå®‰çš„列斯" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "安哥拉" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "å—æžæ´²" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "阿根廷" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "ç¾Žå±žè¨æ‘©äºš" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "奥地利" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "澳大利亚" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "阿é²å·´å²›" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "奥兰群岛" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "阿塞拜疆" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "波斯尼亚和黑塞哥维那" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "巴巴多斯岛" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "孟加拉国" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "比利时" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "布基纳法索" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ä¿åŠ åˆ©äºš" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "å·´æž—" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "布隆迪" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "è´å®æ¹¾" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "百慕大群岛" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "文莱达é²è¨å…°å›½" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "玻利维亚" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "巴西" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "巴哈马群岛" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ä¸ä¸¹" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "布维岛" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "åšèŒ¨ç“¦çº³" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "白俄罗斯" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "伯利兹城" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "加拿大" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "科科斯(基林)群岛" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "刚果" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "中éžå…±å’Œå›½" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "瑞士" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "科特迪瓦共和国" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "库克群岛" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "智利" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "喀麦隆" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "中国" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "哥伦比亚" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "哥斯达黎加" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "å¤å·´" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "佛得角" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "圣诞岛" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "塞浦路斯" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "æ·å…‹å…±å’Œå›½" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "德国" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "å‰å¸ƒæ" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "丹麦" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "多米尼加" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "多米尼加共和国" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "阿尔åŠåˆ©äºš" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "厄瓜多尔" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "爱沙尼亚" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "埃åŠ" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "西撒哈拉" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "厄立特里亚" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "西ç­ç‰™" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "埃塞俄比亚" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "芬兰" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "æ–æµŽ" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "ç¦å…‹å…°ç¾¤å²›ï¼ˆé©¬å°”维纳斯群岛)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "密克罗尼西亚è”邦" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "法罗群岛" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "法国" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "法属美特罗波利å¦" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "加蓬" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "英国" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "格林纳达" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "乔治亚州" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "法属圭亚那" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "æ ¼æ©è¥¿" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "加纳" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "直布罗陀" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "格陵兰" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "冈比亚" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "几内亚" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "瓜德罗普岛" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "赤é“几内亚" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "希腊" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "å—乔治亚岛和å—三维治群岛" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "å±åœ°é©¬æ‹‰" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "关岛" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "几内亚比ç»å…±å’Œå›½" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "圭亚那" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "中国香港特别行政区" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "赫德岛和麦克å”纳岛" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "洪都拉斯" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "克罗地亚" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "海地" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "匈牙利" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "å°åº¦å°¼è¥¿äºš" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "爱尔兰" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "以色列" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "马æ©å²›" #: zypp/CountryCode.cc:261 msgid "India" msgstr "å°åº¦" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "英属å°åº¦æ´‹é¢†åœ°" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "伊拉克" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "伊朗" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "冰岛" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "æ„大利" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "泽西岛" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "牙买加" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "约旦" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "日本" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "肯尼亚" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "å‰å°”剿–¯æ–¯å¦" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "柬埔寨" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "基里巴斯" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "ç§‘æ‘©ç½—" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "圣基茨和尼维斯" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "北æœé²œ" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "å—韩" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "ç§‘å¨ç‰¹" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "开曼群岛" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "哈è¨å…‹æ–¯å¦" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "è€æŒäººæ°‘民主共和国" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "黎巴嫩" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "圣å¢è¥¿äºšå²›" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "列支敦士登" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "斯里兰å¡" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "利比里亚" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "莱索托" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ç«‹é™¶å®›" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "墿£®å ¡å…¬å›½" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "拉脱维亚" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "利比亚" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "摩洛哥" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "摩纳哥" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "摩尔多瓦" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "黑山" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "圣马ä¸" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "马达加斯加岛" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "马ç»å°”群岛" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "马其顿王国" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "马里" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "缅甸" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "è’™å¤" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "中国澳门行政特区" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "北马里亚纳群岛" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "马æå°¼å…‹å²›" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "毛利塔尼亚" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "蒙特塞拉特岛" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "马耳他" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "毛里求斯" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "马尔代夫" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "马拉维" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "墨西哥" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "马æ¥ç¾¤å²›" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "莫桑比克" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "纳米比亚" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "新喀里多尼亚" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "尼日尔" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "诺ç¦å…‹å²›" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "尼日利亚" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "尼加拉瓜" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "è·å…°" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "挪å¨" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "尼泊尔" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "ç‘™é²è¯­" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "纽埃岛" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "新西兰" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "阿曼" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "巴拿马" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "秘é²" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "法属波利尼西亚" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "巴布亚新几内亚" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "è²å¾‹å®¾å…±å’Œå›½" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "巴基斯å¦" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "波兰" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "圣皮埃尔和密克隆" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "皮特克æ©å²›" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "波多黎å„" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "巴基斯å¦é¢†åœŸ" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "è‘¡è„牙" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "帕劳群岛" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "巴拉圭" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "å¡å¡”å°”" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "留尼旺" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "罗马尼亚" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "塞尔维亚" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "ä¿„è”邦" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "墿—ºè¾¾" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "沙特阿拉伯" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "所罗门群岛" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "塞舌尔" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "è‹ä¸¹" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "瑞典" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "新加å¡" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "圣赫勒拿" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "斯洛文尼亚" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "斯瓦尔巴岛和扬马延岛" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "斯洛ä¼å…‹" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "塞拉利昂" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "圣马力诺" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "塞内加尔" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "索马里" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "è‹é‡Œå—" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "圣多美和普林西比" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "è¨å°”瓦多" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "å™åˆ©äºšå…±å’Œå›½" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "æ–¯å¨å£«å…°" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "特克斯和凯科斯群岛" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "ä¹å¾—æ¹–" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "法属å—部领土" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "多哥" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "泰国" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "å¡”å‰å…‹æ–¯å¦" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "托克劳语" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "土库曼斯å¦" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "çªå°¼æ–¯" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "汤加" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "ä¸œå¸æ±¶" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "土耳其" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "特立尼达和多巴哥" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "图瓦å¢è¯­" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "å°æ¹¾" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "妿¡‘尼亚" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "乌克兰" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "乌干达" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "美国本土外å°å²›å±¿" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "美国" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "乌拉圭" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "乌兹别克斯å¦" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "梵蒂冈(梵蒂冈城国)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "åœ£æ–‡æ£®ç‰¹å’Œæ ¼æž—çº³ä¸æ–¯" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "委内瑞拉" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "英属维尔京群岛" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "美属维尔京群岛" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "è¶Šå—" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "瓦努阿图" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "瓦利斯和富图纳" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "è¨æ‘©äºšç¾¤å²›" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "也门" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "马约特岛" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "å—éž" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "赞比亚" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "津巴布韦" #: zypp/Dep.cc:96 msgid "Provides" msgstr "æä¾›" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "剿" #: zypp/Dep.cc:98 msgid "Requires" msgstr "需è¦" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "冲çª" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "淘汰" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "推è" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "建议" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "增强" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "补充" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "无法打开 pty (%s)。" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "æ— æ³•æ‰“å¼€ç®¡é“ (%s)。" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "无法 chroot 到 '%s' (%s)。" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "无法 chdir 到 %s,它在 chroot %s (%s) 中。" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "无法 chdir 到 '%s' (%s)。" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "无法执行 '%s' (%s)。" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "无法派生 (%s)。" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "å‘½ä»¤é€€å‡ºï¼ŒçŠ¶æ€ %d。" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "å‘½ä»¤å·²è¢«ä¿¡å· %d (%s) æ€æ­»ã€‚" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "命令退出,未知错误。" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "å°è¯•导入尚ä¸å­˜åœ¨çš„密钥 %s 到密钥环 %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "导入密钥失败。" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "删除密钥失败。" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "æœªæ‰¾åˆ°ç­¾åæ–‡ä»¶ %s" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "未知语言: " #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "阿法尔语" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "阿布哈兹语" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "亚é½è¯­" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "阿乔利方言" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "阿当梅语" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "阿地盖语" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "亚éžè¯¸è¯­è¨€ï¼ˆå…¶å®ƒï¼‰" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "阿弗里希利语" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "å—éžè·å…°è¯­" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "阿伊努语" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "阿åŽè¯­" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "阿å¡å¾·è¯­" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "阿尔巴尼亚语" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "阿留申语" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "阿冈昆语" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "å—阿尔泰语" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "阿姆哈拉语" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "å¤ä»£è‹±è¯­ï¼ˆçº¦ 450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "阿帕切语" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "阿拉伯语" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "亚拉姆语" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "阿拉贡语" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "亚美尼亚语" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "阿劳干语" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "阿拉帕éœè¯­" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "人工语言(其它)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "阿拉瓦克语" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "阿è¨å§†è¯­" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "阿斯图里亚斯语" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "阿撒巴斯å¡è¯­" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "澳洲语" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "阿法语" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "阿维斯陀语" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "阿瓦乔语" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "艾马拉语" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "阿塞拜疆语" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "ç­è¾¾è¯­" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "巴米累克语" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "巴什基尔语" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "俾路支语" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "ç­å·´æ‹‰è¯­" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "巴厘语" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "巴斯克语" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "å·´è¨è¯­" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "波罗的海诸语言(其它)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "别札语" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "白俄罗斯语" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "别姆巴语" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "孟加拉语" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "æŸæŸå°”语(其它)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "åšæ°æ™®å°”语" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "比哈里语" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "比å£è¯­" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "比尼语" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "比利兹语" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "西克西å¡è¯­" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "ç­å›¾è¯­ï¼ˆå…¶å®ƒï¼‰" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "波斯尼亚语" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "布拉æ°è¯­" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "布里多尼语" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "巴塔克语(å°åº¦å°¼è¥¿äºšï¼‰" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "布利亚特语" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "布å‰è¯­" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ä¿åŠ åˆ©äºšè¯­" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "缅甸语" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "布林语" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "å¡å¤šè¯­" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "中美洲å°ç¬¬å®‰è¯­ï¼ˆå…¶å®ƒï¼‰" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "加勒比语" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "加泰罗尼亚语" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "高加索语(其它)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "宿务语" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "塞尔特语(其它)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "查莫罗语" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "契布å¡è¯­" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "车臣语" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "查加语" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "中文" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "楚克语" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "马里语" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "契努克语" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "乔克托语" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "奇帕维安语" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "彻罗基语" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "宗教斯拉夫语" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "楚瓦什语" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "å¤å»¶è¯­" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "查米克语" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "科普特语" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "凯尔特语" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "科西嘉语" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "基于英语的克里奥尔语和皮钦语(其它)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "基于法语的克里奥尔语和皮钦语(其它)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "基于葡è„牙语的克里奥尔语和皮钦语(其它)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "克里æ—语" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "克里米亚鞑é¼è¯­" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "克里奥尔语和皮钦语(其它)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "å¡èˆ’比语" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "库希特语(其它)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "æ·å…‹è¯­" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "达科他语" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "丹麦语" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "特拉åŽè¯­" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "达雅语" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "特拉瓦å°ç¬¬å®‰äººè¯­" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "阿è¨å·´æ–¯å¡å¥´éš¶è¯­" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "多格里布语" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ä¸å¡è¯­" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "迪蔚希语" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "多格æ¥è¯­" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "达罗毗è¼è¯­ï¼ˆå…¶å®ƒï¼‰" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "下索布语" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "都阿拉语" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "中å¤è·å…°è¯­ï¼ˆçº¦ 1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "è·å…°è¯­" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "迪尤拉语" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "ä¸ä¸¹è¯­" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "艾éžå…‹è¯­" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "å¤åŸƒåŠè¯­" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "è‰¾å¡æœ±å…‹è¯­" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "艾拉米特语" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "英语" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "中å¤è‹±è¯­ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "世界语" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "爱沙尼亚语" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "幽语" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "埃ç¿å¤šè¯­" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "芳语" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "法罗语" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "芳蒂语" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "æ–æµŽè¯­" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "è²å¾‹å®¾è¯­" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "芬兰语" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "芬兰乌戈尔语(其它)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "丰语" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "法语" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "䏭夿³•语(约 1050-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "夿³•语(842-约 1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "弗里西语" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "富拉语" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "弗留利语" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "加语" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "å¡çº¦è¯­" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "巴亚语" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "日尔曼语(其它)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "乔治亚语" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "德语" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "å‰å…¹è¯­" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "å‰å°”伯特语" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "盖尔语" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "爱尔兰语" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "加利西亚语" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "马æ©å²›è¯­" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "中å¤é«˜åœ°å¾·è¯­ï¼ˆçº¦ 1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "å¤é«˜åœ°å¾·è¯­ï¼ˆçº¦ 750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "贡德语" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "哥伦打洛语" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "哥特语" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "格列åšè¯­" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "å¤å¸Œè…Šè¯­ï¼ˆ1453 以å‰ï¼‰" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "现代希腊语 (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "瓜拉尼语" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "å°åº¦å¤å“ˆæ‹‰åœ°è¯­" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "库臣语" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "海达语" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "海地语" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "豪撒语" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "å¤å¨å¤·è¯­" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "希伯æ¥è¯­" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "赫雷罗语" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "希利盖农语" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "喜马å•尔语" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "北å°åº¦è¯­" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "赫梯语" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "蒙(苗)语" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "希里莫图语" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "高地索布语" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "匈牙利语" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "胡帕语" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "伊ç­è¯­" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "伊åšè¯­" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "冰岛语" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "伊多语" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "å››å·å½è¯­" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "伊乔语" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "伊努伊特语" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "国际语" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "伊洛å¡è¯ºè¯­" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "国际语(国际辅助语å会)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "å°åº¦è¯­ï¼ˆå…¶å®ƒï¼‰" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "å°åº¦å°¼è¥¿äºšè¯­" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "å°æ¬§è¯¸è¯­è¨€ï¼ˆå…¶å®ƒï¼‰" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "英å¤ä»€è¯­" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "ä¾åŠªçš®äºšè¯­" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "伊朗语(其它)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "易洛é­è¯­" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "æ„大利语" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "爪哇语" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "逻辑语" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "日语" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "犹太-波斯语" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "犹太-阿拉伯语" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "塿‹‰å¡å°”帕克语" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "塿¯”尔语" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "克钦语" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "格陵兰语" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "åŽå·´è¯­" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "加拿大语" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "克伦语" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "克什米尔语" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "å¡åŠªé‡Œè¯­" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "å¡å¨è¯­" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "哈è¨å…‹è¯­" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "å¡å·´å°”德语" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "å¡è¥¿è¯­" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "科伊桑语(其它)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "高棉语" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "和阗(和田)语" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "基库尤语" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "加泰隆语" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "å‰å°”剿–¯è¯­" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "金本æœè¯­" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "å­”å¡å°¼è¯­" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "科米语" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "刚果语" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "韩语" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "科斯拉伊语" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "克佩勒语" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "塿‹‰æ°ä¼Š-å·´å°”å¡å°”语" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "å…‹é²è¯­" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "库å¢å…‹è¯­" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "宽亚玛语" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "库密克语" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "库尔德语" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "库特内语" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "拉迪诺语" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "拉亨达语" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "兰巴语" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "è€æŒè¯­" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "拉ä¸è¯­" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "拉脱维亚语" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "列兹金语" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "林堡干语" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "林加拉语" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "立陶宛语" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "è’™å¤è¯­" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "æ´›é½è¯­" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "墿£®å ¡è¯­" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "å¢å·´-墿‹‰è¯­" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "å¢å·´-加丹加语" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "干达语" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "å¢ä¼Šå¡žè¯ºè¯­" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "隆达语" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "å¢å¥¥è¯­ï¼ˆè‚¯å°¼äºšå’Œå¦æ¡‘尼亚)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "å¢è¨è¯­" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "马其顿语" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "马都拉语" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "马加赫语" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "马ç»å°”语" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "米德勒语" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "望加锡语" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "马拉雅拉姆语" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "曼ä¸å“¥è¯­" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "毛利语" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "å—岛语(其它)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "马拉地语" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "马è¨ä¼Šè¯­" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "马æ¥è¯­" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "莫克沙语" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "曼达语" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "门德语" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "中å¤çˆ±å°”兰语 (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "密克马克语" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "ç±³å—å¡ä¿è¯­" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "æ‚语" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "孟高棉语(其它)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "马达加斯加语" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "马耳他语" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "满语" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "曼尼普尔语" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "马诺åšè¯¸è¯­è¨€" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "莫éœå…‹è¯­" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "摩尔达维亚语" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "è’™å¤è¯­" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "莫西语" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "多语ç§" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "蒙达诸语言" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "克里克语" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "米兰德语" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "马尔瓦利语" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "玛雅诸语言" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "厄尔兹亚语" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "纳瓦特尔语" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "北美å°ç¬¬å®‰è¯­" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "é‚£ä¸å‹’斯语" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "纳瓦éœè¯­" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "å—部æ©å¾·è´å‹’语" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "北部æ©å¾·è´å‹’语" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "æ©æ•¦åŠ è¯­" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "低地德语" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "尼泊尔语" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "尼泊尔 Bhasa 语" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "尼亚斯语" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "尼日尔-科尔多凡语(其它)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "纽埃语" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "æŒªå¨ Nynorsk 语" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "挪å¨å¸ƒå…‹æ‘©å°”语" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "诺盖语" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "å¤è¯ºå°”斯语" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "挪å¨è¯­" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "北梭托语" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "努比亚诸语言" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "å¤å…¸å°¼ç“¦å°”语" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "é½åˆ‡ç“¦è¯­" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "尼扬韦é½è¯­" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "尼扬科勒语" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "尼奥罗语" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "æ©æµŽé©¬è¯­" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "欧西å¦è¯­ï¼ˆ1500 åŽï¼‰" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "奥å‰å¸ƒç“¦è¯­" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "奥里亚语" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "奥罗莫语" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "å¥¥è¨æ ¼è¯­" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "奥塞梯语" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "土耳其语,å¤å¥¥æ–¯æ›¼ (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "奥托米诸语言" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "巴布亚语(其它)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "邦阿西楠语" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "钵罗钵语" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "邦æ¿ç‰™è¯­" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "æ—鮿™®è¯­" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "帕皮亚门托语" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "帕劳语" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "夿³¢æ–¯è¯­ï¼ˆçº¦å…¬å…ƒå‰ 600-400)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "波斯语" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "è²å¾‹å®¾è¯­ï¼ˆå…¶å®ƒï¼‰" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "腓尼基语" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "巴利语" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "波兰语" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "波纳佩语" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "è‘¡è„牙语" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "å¤å°åº¦æ–¹è¨€" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "夿™®ç½—旺斯语(1500 以å‰ï¼‰" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "普什图语" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "盖丘亚语" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "拉贾斯å¦è¯­" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "拉帕努伊语" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "拉罗汤加语" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "罗曼语 (其它)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "罗曼语" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "剿™®èµ›è¯­" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "罗马尼亚语" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "隆迪语" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "俄语" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "桑达韦语" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "桑戈语" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "雅库特语" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "å—美洲å°ç¬¬å®‰è¯­ï¼ˆå…¶å®ƒï¼‰" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "è¨åˆ©ä»€è¯¸è¯­è¨€" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "è¨é©¬åˆ©äºšé˜¿æ‹‰ç±³è¯­" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "梵语" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "è¨è¨å…‹è¯­" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "桑塔利语" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "塞尔维亚语" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "西西里岛语" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "è‹æ ¼å…°è¯­" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "克罗地亚语" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "塞尔库普语" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "闪米特语(其它)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "å¤çˆ±å°”兰语(900 以å‰ï¼‰" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "手语" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "掸语" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "锡达莫语" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "僧伽罗语" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "è‹è¯­è¯¸è¯­è¨€" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "汉è—诸语言(其它)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "斯拉夫语(其它)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "斯洛ä¼å…‹è¯­" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "斯洛文尼亚语" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "å—è¨æ‘©æ–¯è¯­" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "åŒ—è¨æ‘©æ–¯è¯­" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "è¨ç±³è¯¸è¯­è¨€ï¼ˆå…¶å®ƒï¼‰" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "é²ä¹è¨æ‘©æ–¯è¯­" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "ä¼Šçº³é‡Œè¨æ‘©æ–¯è¯­" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "è¨æ‘©äºšè¯­" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "æ–¯è€ƒç‰¹è¨æ‘©æ–¯è¯­" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "修纳语" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "信德语" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "ç´¢å®å…‹è¯­" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "粟特语" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "索马里语" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "桑海语" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "å—部索托语" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "西ç­ç‰™è¯­" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "æ’’ä¸è¯­" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "塞雷尔语" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "尼罗-撒哈拉语(其它)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "斯瓦特语" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "è‹åº“马语" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "巽他语" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "è‹è‹è¯­" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "è‹ç¾Žå°”语" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "斯瓦希里语" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "瑞典语" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "å¤å™åˆ©äºšè¯­" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "塔希æè¯­" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "傣语(其它)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "泰米尔语" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "éž‘é¼è¯­" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "æ³°å¢å›ºè¯­" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "滕内语" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "特列纳语" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "特塔姆语" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "å¡”å‰å…‹è¯­" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "塔加路语" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "泰国语" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "è—语" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "ææ ¼é›·è¯­" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ææ ¼é‡Œå°¼äºšè¯­" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "蒂夫语" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "å…‹æž—è´¡" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "特林å‰ç‰¹è¯­" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "塔马奇克语" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "汤加语(尼亚è¨ï¼‰" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "汤加语(汤加岛)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "托克皮辛语" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "钦西安语" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "茨瓦纳语" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "èªåŠ è¯­" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "土库曼语" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "奇图姆布å¡è¯­" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "图皮诸语言" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "土耳其语" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "阿尔泰语(其它)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "契维语" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "图瓦语" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "乌德穆尔特语" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "乌加里特语" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ç»´å¾å°”语" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "乌克兰语" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "ç¿æœ¬æœè¯­" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "未确定的语ç§" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "乌尔都语" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "乌兹别克斯å¦è¯­" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "瓦伊语" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "文达语" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "è¶Šå—语" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "沃拉普克语" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "沃æå…‹è¯­" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "瓦å¡å¸Œè¯­ç»„" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "瓦拉莫语" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "瓦赖语" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "瓦肖语" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "å¨å°”士语" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "索布诸语言" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "瓦龙语" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "沃洛夫语" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "å¡å°”梅克语" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "ç§‘è¨è¯­" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "瑶语" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "雅浦语" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "ä¾åœ°è¯­" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "约é²å·´è¯­" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "尤皮克诸语言" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "è¨æ³¢ç‰¹å…‹è¯­" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "哲纳加语" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "壮语" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "赞德语" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "祖é²è¯­" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "祖尼语" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "将执行以下动作:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "未过期" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "过期日期:%1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "过期日期:%1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(未过期)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(已过期)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(24 å°æ—¶å†…过期)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(%d 天åŽè¿‡æœŸï¼‰" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "正在缓存 %2% 中查找 GPG 密钥 ID %1%。" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "æ­£åœ¨è½¯ä»¶æº %2% 中查找 GPG 密钥 ID %1%。" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "è½¯ä»¶æº %1% 并未定义é¢å¤–çš„ 'gpgkey=' URL。" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "æ— æ³•è¯»å–æºæ–‡ä»¶å¤¹ '%1%':æƒé™è¢«æ‹’" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "è¯»å–æ–‡ä»¶å¤¹ '%s' 失败" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "æ— æ³•è¯»å–æºæ–‡ä»¶ '%1%':æƒé™è¢«æ‹’" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "软件æºåˆ«åä¸èƒ½ä»¥ç‚¹å¼€å¤´ã€‚" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "æœåŠ¡åˆ«åä¸èƒ½ä»¥ç‚¹å¼€å¤´ã€‚" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "无法打开 '%s' 文件进行写入。" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "未知æœåŠ¡ '%1%':正在移除孤立的æœåŠ¡è½¯ä»¶æº '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "在指定 URL 未找到有效元数æ®" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "无法创建 %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "无法创建元数æ®ç¼“存文件夹。" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "æ­£åœ¨æž„å»ºè½¯ä»¶æº '%s' 的缓存" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "无法在 %s 创建缓存 - 无写入æƒé™ã€‚" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "ç¼“å­˜è½¯ä»¶æº (%d) 失败。" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "未处ç†çš„软件æºç±»åž‹" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "è¯•å›¾è¯»å– '%s' 出错" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "è¯»å– '%s' é‡åˆ°æœªçŸ¥é”™è¯¯" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "æ­£åœ¨æ·»åŠ è½¯ä»¶æº '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "'%s' å¤„çš„æºæ–‡ä»¶å无效" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "æ­£åœ¨ç§»é™¤è½¯ä»¶æº '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "ä¸ç¡®å®šè½¯ä»¶æºçš„存储ä½ç½®ã€‚" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "无法删除 '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "ä¸ç¡®å®šæœåŠ¡çš„å‚¨å­˜ä½ç½®ã€‚" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "无效的 LDAP URL 查询字符串" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "无效的 LDAP URL æŸ¥è¯¢å‚æ•° '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "无法克隆 URL 对象" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "无效的空 URL 对象引用" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "æ— æ³•è§£æž URL 组件" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "未知" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "䏿”¯æŒ" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "级别 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "级别 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "级别 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "需è¦é¢å¤–的客户åˆåŒ" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "无效" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "支æŒçº§åˆ«æœªæŒ‡å®š" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "åŽ‚å•†ä¸æä¾›æ”¯æŒã€‚" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "问题判定,该技术支æŒè®¾è®¡ç”¨äºŽæä¾›å…¼å®¹æ€§ä¿¡æ¯ã€å®‰è£…辅助ã€ä½¿ç”¨å¸®åŠ©ã€æŒç»­ç»´æŠ¤å’ŒåŸº" "础甄错。一级支æŒå¹¶ä¸æ„在修正产å“缺陷错误。" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "问题隔离,该技术支æŒè®¾è®¡ç”¨äºŽé‡çŽ°å®¢æˆ·é—®é¢˜ã€å­¤ç«‹é—®é¢˜é¢†åŸŸå¹¶æä¾›ä¸€çº§æ”¯æŒä¸èƒ½è§£å†³" "的问题的解决方案。" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "问题解决,该技术支æŒè®¾è®¡ç”¨æ¥è§£å†³å¤æ‚的问题,通过工程解决二级支æŒä¸­ç¡®è®¤çš„产å“" "缺陷。" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "签署一份é¢å¤–的客户åˆåŒåŽæ‰èƒ½èŽ·å¾—æ”¯æŒã€‚" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "未知支æŒé€‰é¡¹ã€‚æè¿°ä¸å¯ç”¨" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "系统管ç†è¢«è¿›ç¨‹ç¼–å·ä¸º %d çš„åº”ç”¨ç¨‹åº %s é”定。\n" "请关闭此应用程åºå†è¯•。" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "历å²ï¼š" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "无法打开é”定文件:%s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "此动作正在由å¦ä¸€ä¸ªç¨‹åºè¿è¡Œç€ã€‚" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "æœªçŸ¥åŒ¹é…æ¨¡å¼ '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "æœªçŸ¥åŒ¹é…æ¨¡å¼ '%s'(对于软件集 '%s')" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "æ— æ•ˆçš„æ­£åˆ™è¡¨è¾¾å¼ '%s':regcomp 返回 %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "æ— æ•ˆçš„æ­£åˆ™è¡¨è¾¾å¼ '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "'%s' 需è¦è®¤è¯" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "访问 Novell å®¢æˆ·ä¸­å¿ƒæ£€æŸ¥æ‚¨çš„æ³¨å†Œæ˜¯å¦æœ‰æ•ˆå¹¶å°šæœªè¿‡æœŸã€‚" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "未能把 %s 挂载到 %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "å¸è½½ %s 失败" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "文件å错误:%s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "当试图执行动作 '%s' 时,介质没有打开。" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "文件 '%s' 未在介质 '%s' 上找到" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "无法写入文件 '%s'。" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "介质未挂载" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "介质挂载点错误" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "下载(curl) '%s' æ—¶åˆå§‹åŒ–失败" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "系统例外 '%s'(å‘生于介质 '%s' 上)。" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "路径 '%s'(介质 '%s' ä¸Šï¼‰å¹¶ä¸æ˜¯ä¸€ä¸ªæ–‡ä»¶ã€‚" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "路径 '%s'(介质 '%s' ä¸Šï¼‰å¹¶ä¸æ˜¯ä¸€ä¸ªæ–‡ä»¶å¤¹ã€‚" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "异常的 URI" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "URI 中主机å为空" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "URI 中文件系统为空" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "URI 中目标为空" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "䏿”¯æŒ '%s' 中的 URI 方案。" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "ä»‹è´¨ä¸æ”¯æŒæ­¤æ“作" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "下载 (curl) '%s' 出错:\n" "错误代ç ï¼š%s\n" "错误消æ¯ï¼š%s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "为 '%s' 设置下载 (curl) 选项时出错:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "ä»‹è´¨æ¥æº '%s' ä¸åŒ…嫿œŸæœ›çš„介质" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "介质 '%s' 正被å¦ä¸€ä¸ªå®žä¾‹ä½¿ç”¨" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "无法弹出任何介质" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "无法弹出介质 '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "访问 '%s' 的准入请求被拒ç»ã€‚" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "访问 '%s' 时超时。" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "下载到的数æ®è¶…出了 '%2$s' ä¸­é¢„æœŸçš„æ–‡ä»¶å¤§å° '%1$s'。" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "ä½ç½® '%s' 暂时无法访问。" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL è¯ä¹¦é—®é¢˜ï¼Œè¯·æ ¡éªŒ '%s' çš„ CA è¯ä¹¦ã€‚" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "创建挂接点:找ä¸åˆ°å¯ç”¨äºŽåˆ›å»ºæŒ‚接点的å¯å†™ç›®å½•" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "䏿”¯æŒ HTTP è®¤è¯æ–¹æ³• '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "请先安装 'lsof' 软件包。" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "缺失所需属性 '%s' 。" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "éœ€è¦ '%s' 或 '%s' 属性中的一项或两项。" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "ç­¾åæ ¡éªŒå¤±è´¥" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "软件包 %s 似乎在传输时æŸå了。您想è¦é‡è¯•检索å—?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "未能æä¾›è½¯ä»¶åŒ… %s。您想è¦é‡è¯•检索å—?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "Applydeltarpm 检查已失败。" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "Applydeltarpm 已失败。" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "æœåŠ¡æ’件䏿”¯æŒä¿®æ”¹å±žæ€§ã€‚" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "无法æä¾›æ–‡ä»¶ '%s'ï¼Œè½¯ä»¶æº '%s' 中找ä¸åˆ°è¯¥æ–‡ä»¶" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "软件æºä¸­æ²¡æœ‰ url。" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "文件 %1%\n" " æ¥è‡ªè½¯ä»¶åŒ…\n" " %2%\n" " 与æ¥è‡ªè½¯ä»¶åŒ…\n" " %3%\n" " 的文件冲çª" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "文件 %1%\n" " æ¥è‡ªè½¯ä»¶åŒ…\n" " %2%\n" " 与安装自\n" " %3%\n" " 的文件冲çª" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "文件 %1%\n" " 安装自\n" " %2%\n" " 与安装自软件包\n" " %3%\n" " 的文件冲çª" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "文件 %1%\n" " 安装自\n" " %2%\n" " 与安装自\n" " %3%\n" " 的文件冲çª" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "文件 %1%\n" " æ¥è‡ªè½¯ä»¶åŒ…\n" " %2%\n" " 与文件\n" " %3%\n" " æ¥è‡ªè½¯ä»¶åŒ…\n" " %4%\n" " 冲çª" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "文件 %1%\n" " æ¥è‡ªè½¯ä»¶åŒ…\n" " %2%\n" " 与文件\n" " %3%\n" " 安装自\n" " %4%\n" " 冲çª" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "文件 %1%\n" " 安装自\n" " %2%\n" " 与文件\n" " %3%\n" " æ¥è‡ªè½¯ä»¶åŒ…\n" " %4%\n" " 冲çª" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "文件 %1%\n" " 安装自\n" " %2%\n" " 与文件\n" " %3%\n" " 安装自\n" " %4%\n" " 冲çª" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "无法创建 sat-pool。" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "通过忽略一些ä¾èµ–å…³ç³»æ¥æ–­å¼€ %s" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "通常忽略一些ä¾èµ–关系" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s ä¸å±žäºŽå‘行版å‡çº§æº" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s æž¶æž„ä¸å¯¹åº”" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "已安装的 %s 软件包有问题" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "冲çªçš„请求" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "一些ä¾èµ–性问题" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "没有什么能æä¾›æ‰€éœ€çš„ %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "您å¯ç”¨äº†å…¨éƒ¨è¯·æ±‚的软件æºäº†å—?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "软件包 %s ä¸å­˜åœ¨" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "䏿”¯æŒçš„请求" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s 由系统æä¾›ï¼Œæ— æ³•擦除" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s ä¸å¯å®‰è£…" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "没有什么能æä¾› %s,而它为 %s 所需" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "æ— æ³•åŒæ—¶å®‰è£… %s å’Œ %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s 与 %s 冲çªï¼ŒåŽè€…ç”± %s æä¾›" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s 淘汰了 %s,åŽè€…ç”± %s æä¾›" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "已安装的 %s 淘汰了 %s,åŽè€…ç”± %s æä¾›" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "å¯è§£æžé¡¹ %s 与自身æä¾›çš„ %s 冲çª" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s éœ€è¦ %s,但无法满足此需求" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "已删除æä¾›è€…: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "无法安装的æä¾›è€…: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "无法安装的æä¾›è€…: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "移除é”定以å…许移除 %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "ä¸å®‰è£… %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "ä¿ç•™ %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "移除é”定以å…许安装 %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "æ­¤è¯·æ±‚å°†ç ´åæ‚¨çš„系统ï¼" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "忽略æŸå系统的警告" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "ä¸è¯¢é—®å°±å®‰è£…一个æä¾› %s 的解æžé¡¹" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "ä¸è¯¢é—®å°±åˆ é™¤å…¨éƒ¨æä¾› %s 的解æžé¡¹" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "ä¸å®‰è£…最新版本的 %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "ä¿ç•™ %s,å³ä½¿æž¶æž„ä¸å¯¹åº”" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "尽管架构ä¸å¯¹åº”ä»å®‰è£… %s" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "ä¿ç•™å·²æ·˜æ±°çš„ %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "从排除的软件æºå®‰è£… %s" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "é™çº§ %s 到 %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "架构从 %s å˜æ›´åˆ° %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "安装 %sï¼ˆåŒ…æ‹¬åŽ‚å•†å˜æ›´ï¼‰\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "å°† %s 用 %s å–代" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "å¸è½½ %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "正在执行 %%posttrans 脚本“%1%â€" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "正在执行 %p osttrans 脚本" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " 已执行" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " 执行失败" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s 早已作为 %s 执行了)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " 中止时跳过执行" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "å‘逿›´æ–°æ¶ˆæ¯é€šçŸ¥å‡ºé”™ã€‚" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "新更新消æ¯" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "安装已按指示中止。" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "对ä¸èµ·ï¼Œæœ¬ç‰ˆ libzypp 没有编译 HAL 支æŒã€‚" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext 未连接" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive 未åˆå§‹åŒ–" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume 未åˆå§‹åŒ–" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "无法创建 dbus 连接" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new:无法创建 libhal 环境" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection:无法设置 dbus 连接" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "无法åˆå§‹åŒ– HAL 环境 ï¼ hald 未è¿è¡Œï¼Ÿ" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "䏿˜¯ CDROM 驱动器" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM 失败: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "从文件 %1% 中导入公钥失败" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "移除公钥 %1% 失败" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "未签署包ï¼" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s é…置文件有å˜åŒ–:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm 已将 %s å¦å­˜ä¸º %s,但是无法确定两者的差异" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm 已将 %s å¦å­˜ä¸º %s。\n" "ä»¥ä¸‹æ˜¯å‰ 25 行差异:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm 已将 %s 创建为 %s,但是无法确定两者的差异" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm 已将 %s 创建为 %s。\n" "ä»¥ä¸‹æ˜¯å‰ 25 行差异:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "é¢å¤–çš„ RPM 输出" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "已创建备份 %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "ç­¾åæ­£ç¡®" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "未知签å类型" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "无法校验签å" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "ç­¾åæ­£ç¡®ï¼Œä½†å¯†é’¥æ˜¯éžå—ä¿¡çš„" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "ç­¾å公钥ä¸å¯ç”¨" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "文件ä¸å­˜åœ¨æˆ–无法检查其签å" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "未签署文件" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "无法åˆå§‹åŒ– mutex 属性" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "无法设置递归的 mutex 属性" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "无法åˆå§‹åŒ–递归的 mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "æ— æ³•èŽ·å– mutex é”定" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "无法释放 mutex é”定" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "URL 方案ä¸å…许使用 %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "无效的 %s 组件 '%s'" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "无效的 %s 组件" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "䏿”¯æŒè§£æžæ­¤ URL 的查询字符串" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "URL 方案是一个必需组件" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "无效的 URL 方案 '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "URL 方案ä¸å…许使用用户å" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "URL 方案ä¸å…许使用密ç " #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "URL æ–¹æ¡ˆè¦æ±‚有主机组件" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "URL 方案ä¸å…许使用主机组件" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "无效的主机组件 '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "URL 方案ä¸å…许使用端å£" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "无效的端å£ç»„ä»¶ '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "URL æ–¹æ¡ˆè¦æ±‚有路径å" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "若存在认è¯åˆ™ä¸å…许相对路径" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "ç¼–ç çš„字符串包å«äº†ä¸€ä¸ª NUL 字节" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "æ— æ•ˆçš„å‚æ•°æ•°ç»„分割的分隔符" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "æ— æ•ˆçš„å‚æ•°æ˜ å°„分割的分隔符" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "æ— æ•ˆçš„å‚æ•°æ•°ç»„åˆå¹¶çš„分隔符" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "从文件 %s 中导入公钥失败:%s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "移除公钥 %s 失败:%s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "找ä¸åˆ°å¯ç”¨ loop 设备以挂载æ¥è‡ª '%s' çš„æ˜ åƒæ–‡ä»¶" #~ msgid "do not keep %s installed" #~ msgstr "ä¸ä¿ç•™ %s" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "无法创建公共密钥 %s, 该密钥æ¥è‡ª %s 钥匙环,准备创建到 %s 文件" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "下载 (Metalink curl) '%s' æ—¶åˆå§‹åŒ–失败" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "下载 (metalink curl) '%s' 出错:\n" #~ "错误代ç ï¼š%s\n" #~ "错误消æ¯ï¼š%s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "下载在 %d%% 中断" #~ msgid "Download interrupted by user" #~ msgstr "下载被用户中断" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "为 '%s' 设置下载 (metalink curl) 选项时出错:" #~ msgid "Failed to download %s from %s" #~ msgstr "下载 %s 从 %s 时失败" libzypp-17.7.0/po/zh_TW.po000066400000000000000000003172311334444677500153400ustar00rootroot00000000000000# translation of zypp.po to Chinese Traditional # Chinese message file for YaST2 (@memory@). -*- coding: utf-8 -*- # Copyright (C) 2005 SUSE Linux Products GmbH. # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 2001 SuSE GmbH. # swyear , 2008, 2009, 2011. # Ray Chen , 2012. # Ramax Lo , 2014. msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2018-08-13 17:01+0000\n" "Last-Translator: Yi-Jyun Pan \n" "Language-Team: Chinese (Taiwan) " "\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "Hal 例外" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "å¯ç–‘的類型 '%s' (%u ä½å…ƒçµ„檢查總數 '%s')" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "未知國家:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "沒有程å¼ç¢¼" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "安é“爾" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "阿拉伯è¯åˆå¤§å…¬åœ‹" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "阿富汗" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "安地å¡åŠå·´å¸ƒé”" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "安圭拉島" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "阿爾巴尼亞" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "亞美尼亞" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "è·å±¬å®‰ç¬¬åˆ—斯群島" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "安哥拉" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "å—æ¥µæ´²" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "阿根廷" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "美屬薩摩亞" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "奧地利" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "澳大利亞" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "阿魯巴" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "愛蘭群島" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "亞塞拜然" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "波士尼亞與赫塞哥維ç´" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "å·´è²å¤š" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "孟加拉共和國" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "比利時" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "布基那法索" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "ä¿åŠ åˆ©äºž" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "å·´æž—" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "蒲隆地" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "è²å—" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "百慕é”" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "æ±¶èŠ" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "玻利維亞" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "巴西" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "巴哈馬" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "ä¸ä¸¹" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "布維特島" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "波紮那" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "白俄羅斯" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "è²é‡Œæ–¯" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "加拿大" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "科科斯群島" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "剛果" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "中éžå…±å’Œåœ‹" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "瑞士" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "象牙海岸" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "庫克群島" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "智利" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "喀麥隆" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "中國" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "哥倫比亞" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "哥斯大黎加" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "å¤å·´" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "ç¶­å¾·è§’" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "è–誕島" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "塞普勒斯" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "æ·å…‹å…±å’Œåœ‹" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "德國" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "å‰å¸ƒåœ°" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "丹麥" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "多米尼克" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "多明尼加共和國" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "阿爾åŠåˆ©äºž" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "厄瓜多爾" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "愛沙尼亞" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "埃åŠ" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "西撒哈拉" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "厄立特里亞" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "西ç­ç‰™" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "衣索比亞" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "芬蘭" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "æ–æ¿Ÿ" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "英屬ç¦å…‹è˜­ç¾¤å³¶ (é¦¬çˆ¾ç¶­ç´æ–¯ç¾¤å³¶)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "密克羅尼西亞è¯é‚¦" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "法羅群島" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "法國" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "法屬美特羅波利å¦" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "加彭" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "英國" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "格瑞ç´é”" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "喬治亞" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "法屬圭亞ç´" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "æ ¼æ©è¥¿" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "迦ç´" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "直布羅陀" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "格林蘭島" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "甘比亞" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "幾內亞" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "哥德洛普島 (法屬)" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "赤é“幾內亞" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "希臘" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "å—喬治亞åŠå—三明治群島" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "瓜地馬拉" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "關島" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "幾內亞比紹" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "蓋亞那" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "香港" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "赫德åŠéº¥ç•¶å‹žç¾¤å³¶" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "å®éƒ½æ‹‰æ–¯" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "克羅埃西亞共和國" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "海地" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "匈牙利" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "å°å°¼" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "愛爾蘭" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "以色列" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "馬æ©å³¶" #: zypp/CountryCode.cc:261 msgid "India" msgstr "å°åº¦" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "英屬å°åº¦æ´‹é ˜åœŸ" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "伊拉克" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "伊朗" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "冰島" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "義大利" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "澤西" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "牙買加" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "ç´„æ—¦" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "日本" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "肯亞" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "å‰çˆ¾å‰æ–¯" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "柬埔寨" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "å‰é‡Œå·´æ–¯å…±å’Œåœ‹" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "葛摩" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "è–克里斯多ç¦åŠå°¼ç¶­æ–¯" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "北韓" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "å—韓" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "ç§‘å¨ç‰¹" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "開曼群島" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "哈薩克" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "寮人民民主共和國" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "黎巴嫩" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "è–露西亞" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "列支敦斯登" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "斯里蘭å¡" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "賴比瑞亞" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "賴索托" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "ç«‹é™¶å®›" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "盧森堡" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "拉脫維亞" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "利比亞" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "摩洛哥" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "æ‘©ç´å“¥" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "摩爾多瓦" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "芒特尼格羅共和國" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "è–馬ä¸" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "馬é”加斯加" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "馬紹爾群島" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "馬其頓" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "馬利" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "緬甸" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "è’™å¤" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "澳門" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "北馬里安ç´ç¾¤å³¶" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "馬ä¸å°¼å…‹" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "茅利塔尼亞" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "蒙特色拉特島" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "馬爾他" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "模里西斯" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "馬爾地夫" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "馬拉å¨" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "墨西哥" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "馬來西亞" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "莫三比克" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "那米比亞" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "新喀里多尼亞群島" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "尼日" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "諾ç¦å…‹å³¶" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "奈åŠåˆ©äºž" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "尼加拉瓜" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "è·è˜­" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "挪å¨" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "尼泊爾" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "諾魯" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "ç´å¨å³¶" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "ç´è¥¿è˜­" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "阿曼" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "巴拿馬" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "祕魯" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "法屬波里尼西亞" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "巴布亞新幾內亞" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "è²å¾‹è³“" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "巴基斯å¦" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "波蘭" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "è–匹島" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "皮特康" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "波多黎å„" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "å·´å‹’æ–¯å¦é ˜åœŸ" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "è‘¡è„牙" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "帛ç‰" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "巴拉圭" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "å¡é”" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "留尼旺島" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "羅馬尼亞" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "塞爾維亞" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "ä¿„ç¾…æ–¯è¯é‚¦" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "盧安é”" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "æ²™çƒåœ°é˜¿æ‹‰ä¼¯" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "所羅門群島" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "塞席爾群島" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "蘇丹" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "瑞典" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "新加å¡" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "è–赫勒拿島" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "斯洛維尼亞共和國" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "冷岸åŠå¤®æ£‰ç¾¤å³¶" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "斯洛ä¼å…‹" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "ç…å­å±±" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "è–馬力諾" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "塞內加爾" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "索馬利亞" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "蘇利å—" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "è–多美普林西比" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "薩爾瓦多" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "敘利亞" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "å²ç“¦æ¿Ÿè˜­" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "土克斯åŠé–‹ç§‘斯群島" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "查德" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "æ³•åœ‹å—æ–¹é ˜åœŸ" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "多哥" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "泰國" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "å¡”å‰å…‹" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "托克勞群島" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "土庫曼" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "çªå°¼è¥¿äºž" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "æ±åŠ " #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "æ±å¸æ±¶" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "土耳其" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "åƒé‡Œé”托è²å“¥" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "å瓦魯" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "å°ç£" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "å¦å°šå°¼äºž" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "çƒå…‹è˜­" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "çƒå¹²é”" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "美國外島" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "美國" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "çƒæ‹‰åœ­" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "çƒèŒ²åˆ¥å…‹" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "羅馬教庭 (梵蒂岡)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "è–æ–‡æ£®åŠæ ¼ç‘žé‚£ä¸" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "委內瑞拉" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "英屬維爾京群島" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "美屬維爾京群島" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "è¶Šå—" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "è¬é‚£æœ" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "瓦利斯åŠç¦æœç´ç¾¤å³¶" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "薩摩亞" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "葉門" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "馬約特島" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "å—éž" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "尚比亞" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "辛巴å¨" #: zypp/Dep.cc:96 msgid "Provides" msgstr "æä¾›" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "先決æ¢ä»¶" #: zypp/Dep.cc:98 msgid "Requires" msgstr "需è¦" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "è¡çª" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "æ±°æ›" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "建議" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "推薦" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "增強" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "補充" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "無法開啟 pty (%s)。" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "無法開啟管線 (%s)。" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "無法 chroot 到 '%s' (%s)。" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "無法切æ›ç›®éŒ„到 '%s' (在 chroot '%s' 中) (%s)。" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "無法切æ›ç›®éŒ„到 '%s' (%s)。" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "無法執行 '%s' (%s)。" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "無法 fork (%s)。" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "指令跳出,狀態 %d。" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "指令被信號 %d (%s) 中止。" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "因未知錯誤指令跳出。" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "嘗試將ä¸å­˜åœ¨çš„金鑰 %s 匯入金鑰圈 %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "輸入金鑰失敗。" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "刪除金鑰失敗。" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "找ä¸åˆ°ç°½ç« æª” %s" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "未知的語言:" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "阿法爾語" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "阿布哈西亞語" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "亞齊語" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "阿科利語" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "阿當梅語" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "阿迪格語" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "éžæ´²-亞洲 (å…¶ä»–)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "阿弗裡希利語" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "å—éžè·è˜­èªž" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "艾奴語" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "阿åŽèªž" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "阿å¡å¾·èªž" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "阿爾巴尼亞語" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "阿留申語" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "亞爾岡京語言" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "å—æ–¹é˜¿çˆ¾æ³°èªž" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "阿姆哈拉語" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "英語,舊 (大約450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "阿帕契語" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "阿拉伯語" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "阿拉姆語" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "阿拉貢語" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "亞美尼亞語" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "阿勞åŽèªž" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "阿拉帕éœèªž" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "人為的 (å…¶ä»–)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "阿拉瓦克語" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "阿薩姆語" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "阿斯圖里亞語" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "阿薩巴斯å¡èªž" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "澳大利亞語" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "阿瓦爾語" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "阿維斯陀語" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "阿沃æèªž" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "艾馬拉語" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "亞塞拜然語" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "ç­é”語" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "巴米累克語" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "巴什克爾語" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "巴路奇語" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "ç­å·´æ‹‰èªž" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "巴里語" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "巴斯克語" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "巴沙語" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "波羅的語 (å…¶ä»–)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "白廈語" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "白俄羅斯語" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "曼巴語" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "孟加拉語" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "æŸæŸçˆ¾èªž (å…¶ä»–)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "波布里語" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "比哈爾語" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "比å£èªž" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "比尼語" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "比斯拉馬語" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "西克西å¡" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "ç­åœ–語 (å…¶ä»–)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "波士尼亞語" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "布拉å‰èªž" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "ä¸åˆ—塔尼語" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "巴塔克語 (å°å°¼)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "白雅特語" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "å¸ƒå‰æ–¯èªž" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "ä¿åŠ åˆ©äºžèªž" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "緬甸語" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "伯林語" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "凱多語" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "中美洲å°åœ°å®‰ (å…¶ä»–)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "加勒比語" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "嘉泰羅尼亞語" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "高加索語 (å…¶ä»–)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "宿霧語" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "賽爾特語 (å…¶ä»–)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "查摩洛語" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "奇布查語" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "車臣語" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "察åˆè‡ºèªž" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "中文" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "å¤å…‹å³¶èªž" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "麻里語" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "契奴克語" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "喬克托語" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "奇帕維安語" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "廿´›å¥‡æ–‡" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "教會斯拉夫語" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "楚瓦士語" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "薜安語" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "å ç±³å…‹èªž" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "科普特語" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "康瓦耳語" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "科西嘉語" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "克瑞奧里語與皮欽語,英國型 (å…¶ä»–)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "克瑞奧里語與皮欽語,法國型 (å…¶ä»–)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "克瑞奧里語與皮欽語,葡è„牙型 (å…¶ä»–)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "克里語" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "克裡米亞韃é¼èªž" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "克瑞奧里語與皮欽語 (å…¶ä»–)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "å¡èˆ’布語" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "庫希迪克語 (å…¶ä»–)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "æ·å…‹èªž" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "é”科他語" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "丹麥語" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "é”爾格瓦語" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "é”雅克語" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "德拉瓦語" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "斯拉夫語 (阿薩巴斯å¡)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "多格里布語" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "ä¸å¡èªž" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "迪韋西語" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "多格里語" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "é”羅毗è¼èªž (å…¶ä»–)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "下文德語" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "æœé˜¿æ‹‰èªž" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "è·è˜­èªžï¼Œä¸­å¤ä¸–ç´€ (大約1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "è·è˜­èªž" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "迪尤拉語" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "å®—å¡èªž" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "艾éžå…‹èªž" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "埃åŠèªž (å¤ä»£)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "è‰¾å¡æœ±å…‹èªž" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "艾拉米特語" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "英語" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "英文,中å¤ä¸–ç´€ (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "世界語" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "愛沙尼亞語" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "埃維語" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "埃ç¿å¤šèªž" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "芳æ—語" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "法羅語" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "芳蒂語" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "æ–æ¿Ÿèªž" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "è²å¾‹è³“語" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "芬蘭語" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "芬匈語 (å…¶ä»–)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "è±èªž" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "法語" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "法語,中å¤ä¸–ç´€ (大約1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "法語,舊 (842-大約1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "弗利然語" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "富拉語" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "弗留利語" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "咖語" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "咖幼語" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "格巴亞語" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "日耳曼語 (å…¶ä»–)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "喬治亞文" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "德語" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "å‰èŒ²èªž" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "å‰ä¼¯ç‰¹èªž" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "蓋爾語" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "愛爾蘭語" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "加利西亞語" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "曼島語" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "德語,中å¤ä¸–ç´€ (大約1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "德語,å¤ä»£ (大約750-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "岡德語" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "哥倫打洛語" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "哥德語" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "格列åšèªž" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "希臘語,å¤ä»£ (至 1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "希臘語,ç¾ä»£ (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "瓜拉尼語" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "å¤å‰æ‹‰ç‰¹æ–‡" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "å“¥å¨è¿…語" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "æµ·é”語" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "æµ·æèªž" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "豪薩語" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "å¤å¨å¤·èªž" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "希伯來文" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "赫雷羅語" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "希利蓋農語" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "赫馬查ç†èªž" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "北å°åº¦èªž" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "西å°èªž" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "赫蒙語" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "希裡莫圖語" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "高地索布語" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "匈牙利語" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "胡帕語" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "伊ç­èªž" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "伊åšèªž" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "冰島語" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "伊多語" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "è¥¿å·æ˜“語" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "伊喬語" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "伊奴伊特語" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "人工國際語" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "伊洛幹諾語" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "英特林瓜語 (國際輔助語)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "å°åº¦èªž (å…¶ä»–)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "å°å°¼èªž" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "å°æ­èªž (å…¶ä»–)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "å°å¤ä»€èªž" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "因努皮雅克語" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "伊朗語 (å…¶ä»–)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "ä¼Šæ´›å¤æ­å®‰èªž" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "義大利語" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "爪哇語" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "é‚輯語" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "日語" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "猶太-波斯語" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "猶太-阿拉伯語" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "塿‹‰å¡çˆ¾å¸•克語" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "塿‹œçˆ¾èªž" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "塿¬½èªž" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "塿‹‰åˆ©è˜‡ç‰¹èªž" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "å¡å§†å¸•語" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "åŽé‚£é”æ–‡" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "克倫語" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "喀什米爾語" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "å¡åŠªé‡Œèªž" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "å¡å¨èªž" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "哈薩克語" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "å¡å·´çˆ¾é”語" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "å¡è¥¿èªž" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "ç§‘ä¾æ¡‘語 (å…¶ä»–)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "高棉文" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "å’Œé—語" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "å‰åº«çŒ¶èªž" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "金雅爾王é”語" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "å‰çˆ¾å‰æ–¯èªž" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "金本æœèªž" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "剛å¡å°¼èªž" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "科密語" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "剛果語" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "韓語" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "科西嘉語" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "克帕勒語" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "塿‹‰å¥‘å·´å¡èªž" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "克魯語" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "庫魯科語" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "夸尼雅馬語" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "庫密克語" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "庫德語" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "庫特內語" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "拉第諾語" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "拉亨é”語" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "蘭姆巴語" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "寮文" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "æ‹‰ä¸æ–‡" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "拉脫維亞語" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "雷格西安語" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "æž—æŸæ ¼å®‰èªž" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "林加拉語" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "立陶宛語" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "è’™å¤èªž" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "羅利語" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "盧森堡語" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "盧巴盧路拉語" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "ç›§å·´å¡ä¸¹å’–語" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "å¹²é”語" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "盧伊塞諾語" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "隆é”語" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "盧奧語 (è‚¯äºžèˆ‡å¦æ¡‘尼亞)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "ç›§å¤èªž" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "馬其頓語" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "馬都拉語" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "馬加伊語" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "馬紹爾語" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "彌濕羅語" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "滿加撒語" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "馬來亞拉姆文" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "æ›¼ä¸æžœèªž" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "毛利語" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "å—島語系 (å…¶ä»–)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "馬拉地語" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "馬塞語" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "馬來語" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "莫克å¤èªž" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "門德語" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "門迪語" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "愛爾蘭語,中å¤ä¸–ç´€ (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "密克馬克語" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "ç±³å—å¡ä¿èªž" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "其他語言" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "å­Ÿ-高棉語 (å…¶ä»–)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "馬拉加西語" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "馬爾他語" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "滿æ—語" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "曼利普è£èªž" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "馬諾伯語" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "摩哈克語" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "摩爾é”維亞語" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "è’™å¤æ–‡" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "莫西語" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "多é‡èªžè¨€" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "è’™é”語" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "克里克語" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "米蘭德斯語" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "馬爾瓦爾語" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "瑪雅語" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "愛斯亞語" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "那瓦特語" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "北美å°åœ°å®‰" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "ç´æ³¢åˆ©é “語" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "ç´ç“¦ä¼™èªž" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "å—æ©å¾·è²å‹’語" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "北æ©å¾·è²å‹’語" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "æ©æ•¦åŠ èªž" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "低地德語" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "尼泊爾語" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "尼伯爾跋娑語" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "尼亞斯語" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "尼日-科爾多凡語 (å…¶ä»–)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "ç´åŸƒèªž" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "挪å¨è€è«¾æ–¯å…‹èªž" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "挪å¨å·´å…‹æ‘©èªž" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "諾蓋語" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "å¤è«¾çˆ¾æ–¯èªž" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "挪å¨èªž" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "北索索語" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "努比亞語" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "尼瓦爾語" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "齊切瓦語" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "å°¼æšéŸ‹é½Šèªž" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "å°¼æšç§‘èŠèªž" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "尼奧羅語" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "æ©æ¿Ÿé¦¬èªž" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "奧克騰語 (1500 之後)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "奧å‰å¸ƒç“¦èªž" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "æ­åˆ©äºžæ–‡" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "æ­ç¾…摩語" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "æ­å¡žå¥‡èªž" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "奧塞梯語" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "土耳其,鄂圖曼 (1500-1928)" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "鄂圖曼語" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "巴布亞語 (å…¶ä»–)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "邦å¡è¥¿å—語" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "巴勒維語" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "邦幫咖語" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "æ—鮿™®èªž" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "帕皮阿門托語" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "帛ç‰èªž" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "夿³¢æ–¯èªž (å¤§ç´„è¥¿å…ƒå‰ 600-400)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "波斯語" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "è²å¾‹è³“語 (å…¶ä»–)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "腓尼基語" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "巴利語" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "波蘭語" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "波那è²èªž" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "è‘¡è„牙語" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "普拉克里特語" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "夿™®ç¾…凡斯語 (至 1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "普什圖語" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "蓋楚瓦語" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "拉賈斯å¦èªž" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "拉巴怒伊語" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "拉羅通加語" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "羅曼語 (å…¶ä»–)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "里托羅曼語" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "羅曼尼語" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "羅馬尼亞語" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "隆迪語" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "俄語" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "æ¡‘é”韋語" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "桑戈語" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "雅庫特語" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "å—美洲å°åœ°å®‰ (å…¶ä»–)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "薩利什語" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "薩瑪利亞語" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "梵語" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "沙沙克語" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "山塔利語" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "塞爾維亞語" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "西西里語" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "蘇格蘭語" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "克羅埃西亞語" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "ç‘Ÿçˆ¾å¡æ™®èªž" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "閃語 (å…¶ä»–)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "夿„›çˆ¾è˜­èªž (至 900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "符號語言" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "撣語" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "å¸Œé”æ‘©èªž" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "錫蘭文" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "蘇語語系" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "æ¼¢è—語 (å…¶ä»–)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "斯拉夫語 (å…¶ä»–)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "斯洛ä¼å…‹èªž" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "斯洛維尼亞語" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "å—薩米語" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "北薩米語" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "薩米語 (å…¶ä»–)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "魯爾薩米語" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "伊ç´é‡Œè–©ç±³èªž" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "薩摩亞語" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "斯克特薩米語" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "ç´¹ç´èªž" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "信德語" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "索寧克語" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "粟特語" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "索馬利語" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "桑海語" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "å—索索語" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "西ç­ç‰™èªž" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "è–©ä¸å°¼äºžèªž" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "塞雷爾語" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "尼羅--撒哈拉語 (å…¶ä»–)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "斯瓦特語" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "蘇庫馬語" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "巽他語" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "蘇蘇語" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "蘇美語" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "æ–¯è¯è¥¿é‡Œèªž" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "瑞典語" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "敘利亞文" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "塔希æèªž" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "泰語 (å…¶ä»–)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "å¦ç±³çˆ¾æ–‡" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "韃é¼èªž" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "ç‰¹æ‹‰å¤æ–‡" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "堤姆奈語" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "特崙諾語" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "德頓語" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "å¡”å‰å…‹èªž" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "塔加拉æ—語" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "æ³°æ–‡" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "è¥¿è—æ–‡" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "泰格瑞語" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "ææ ¼åˆ©å°¼äºžèªž" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "æå¤«èªž" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "克林貢語" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "特林å‰ç‰¹èªž" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "泰瑪歇克語" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "æ±åŠ èªž (尼亞沙)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "æ±åŠ èªž (æ±åŠ ç¾¤å³¶)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "托比辛語" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "欽西安語" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "ç­åœ–語" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "è°åŠ èªž" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "土庫曼語" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "通布å¡èªž" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "圖皮語" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "土耳其語" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "阿爾泰語 (å…¶ä»–)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "契維語" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "圖瓦尼安語" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "çƒå¾·ç©†çˆ¾ç‰¹èªž" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "çƒå˜Žåˆ©ç‰¹èªž" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "ç¶­å¾çˆ¾èªž" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "çƒå…‹è˜­èªž" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "姆崩æœèªž" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "未確定的" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "çƒéƒ½èªž" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "çƒèŒ²åˆ¥å…‹èªž" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "埃語" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "溫é”語" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "è¶Šå—語" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "沃拉普克語" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "沃æå…‹èªž" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "ç“¦å¡æ™‚語" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "瓦拉莫語" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "瓦瑞語" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "瓦紹語" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "å¨çˆ¾æ–¯èªž" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "索布語" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "瓦隆語" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "沃洛夫語" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "å¡çˆ¾æ¢…克語" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "科薩語" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "瑤語" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "雅蒲語" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "æ„第緒語" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "優魯巴語" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "尤皮克語" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "薩波特克語" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "澤ç´åŠ èªž" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "壯語" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "贊德語" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "祖魯語" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "祖尼語" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "將執行以下æ“作:" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "ä¸éŽæœŸ" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "éŽæœŸæ—¥æœŸï¼š%1%" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "éŽæœŸæ—¥æœŸï¼š%1%" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "(æœªéŽæœŸ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "(å·²éŽæœŸ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "(在 24 å°æ™‚å…§éŽæœŸ)" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "(在 %d å¤©å…§éŽæœŸ)" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "å°‹æ‰¾å¿«å– %2% 中的 gpg 金鑰 ID %1%。" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "尋找軟體庫 %2% 中的 gpg 金鑰 ID %1%。" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "軟體庫 %1% 未定義é¡å¤–çš„ 'gpgkey=' URL。" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "無法讀å–軟體庫目錄 '%1%'︰權é™é­æ‹’" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "無法讀å–目錄 '%s'" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "無法讀å–軟體庫檔案 '%1%'︰權é™é­æ‹’" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "軟體庫別åä¸èƒ½ä»¥é»žé–‹å§‹ã€‚" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "æœå‹™çš„別åä¸èƒ½ä»¥é»žé–‹å§‹ã€‚" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "無法開啟檔案 '%s' 來寫入。" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "未知的æœå‹™ '%1%':正在移除è½å–®çš„æœå‹™å„²å­˜åº« '%2%'" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "在指定的 URL 中找ä¸åˆ°æœ‰æ•ˆçš„中繼資訊" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "無法建立 %s" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "無法建立中繼資料快å–目錄。" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "正在建立軟體庫 '%s' 的快å–" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "無法在 %s å»ºç«‹å¿«å– - 無寫入權é™ã€‚" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "å¿«å–軟體庫失敗 (%d)。" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "無法處ç†çš„軟體庫類型" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "嘗試自 '%s' è®€å–æ™‚發生錯誤" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "ç”± '%s' è®€å–æ™‚發生未知錯誤" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "正在新增軟體庫 '%s'" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "'%s' 處的軟體庫檔案å稱無效" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "正在移除軟體庫 '%s'" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "無法找到軟體庫儲存的ä½ç½®ã€‚" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "無法刪除 '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "無法找到æœå‹™å„²å­˜çš„ä½ç½®ã€‚" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "無效的 LDAP URL 查詢字串" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "無效的 LDAP URL æŸ¥è©¢åƒæ•¸ã€Œ%sã€" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "無法複製 Url 物件" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "無效的空白 Url 物件åƒç…§" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "ç„¡æ³•å‰–æž Url 元件" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "䏿˜Žçš„" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "䏿”¯æ´" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "層級 1" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "層級 2" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "層級 3" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "需è¦é¡å¤–的使用者授權" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "ä¸é©ç”¨" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "支æ´çš„等級未指定" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "æ­¤å» å•†ä¸æä¾›æ”¯æ´ã€‚" #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" "å•é¡Œåˆ¤æ–·ï¼Œæ„æŒ‡æä¾›ç›¸ä¾æ€§è³‡è¨Šã€å®‰è£å”助ã€ç”¨æ³•支æ´ã€æŒçºŒç¶­è­·åŠåŸºæœ¬éŒ¯èª¤æŽ’除的技" "術支æ´ã€‚層級 1 支æ´ä¸¦ä¸æä¾›ç”¢å“缺失錯誤的更正。" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" "å•é¡Œéš”é›¢ï¼Œæ„æŒ‡è¤‡è£½å®¢æˆ¶å•題ã€éš”離å•題å€åŸŸä¸¦æä¾›å±¤ç´š 1 支æ´ç„¡æ³•解決的方案的技術" "支æ´ã€‚" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" "å•é¡Œè§£æ±ºï¼Œæ„æŒ‡é€éŽå·¥ç¨‹æ–¹æ³•解決層級 2 æ”¯æ´æ‰€ç¢ºèªçš„產å“缺陷來解決複雜å•題的技術" "支æ´ã€‚" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "è¦å–得支æ´ï¼Œéœ€è¦é¡å¤–的使用者授權。" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "未知的支æ´é¸é …。 æè¿°ä¸é©ç”¨" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" "系統管ç†å·²è¢« pid 為 %d (%s) 的應用程å¼éŽ–å®šã€‚\n" "請關閉此應用程å¼ï¼Œç„¶å¾Œé‡è©¦ã€‚" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "æ­·å²è¨˜éŒ„:" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "無法開啟鎖定檔案:%s" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "此行動已被其他程å¼åŸ·è¡Œã€‚" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "æœªçŸ¥çš„ç¬¦åˆæ¨¡å¼ '%s'" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "æœªçŸ¥çš„ç¬¦åˆæ¨¡å¼ '%s' (é‡å°æ¨£å¼ '%s')" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "無效的正è¦è¡¨ç¤ºæ³• '%s'︰regcomp 傳回 %d" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "無效的正è¦è¡¨ç¤ºæ³• '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "%s 需è¦é©—è­‰" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "請造訪 Novell Customer Centerï¼Œæª¢æŸ¥æ‚¨çš„è¨»å†Šæ˜¯å¦æœ‰æ•ˆä¸”æ˜¯å¦æœªéŽæœŸã€‚" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "無法將 %s 載掛到 %s" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "å¸è¼‰ %s 失敗" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "無效的檔案å稱︰%s" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "嘗試執行動作 '%s' 時未開啟媒體。" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "檔案 '%s' 無法在媒體 '%s' 中找到" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "無法寫入檔案 '%s'。" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "媒體未加入" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "無效的媒體附載點" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "'%s' 下載 (curl) åˆå§‹åŒ–失敗" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "發生系統例外 '%s' (在媒體 '%s' 上)。" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "路徑「%sã€(媒體「%sã€ä¸Š) 䏿˜¯æª”案。" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "路徑 '%s' (媒體 '%s' 上) 䏿˜¯ç›®éŒ„。" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "æ ¼å¼éŒ¯èª¤çš„ä½å€" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "ä½å€ä¸­çš„主機å稱為空" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "ä½å€ä¸­çš„æª”案系統為空" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "ä½å€ä¸­çš„目標為空" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "'%s' 中存在ä¸å—支æ´çš„ä½å€è¦åŠƒã€‚" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "åª’é«”ä¸æ”¯æ´æ­¤æ“作" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" "'%s' 下載 (curl) 錯誤:\n" "錯誤碼:%s\n" "錯誤訊æ¯ï¼š%s\n" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "為 '%s' 設定下載 (curl) é¸é …時發生錯誤:" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "åª’é«”ä¾†æº '%s' ä¸åŒ…嫿‰€éœ€çš„媒體" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "媒體 '%s' 正被其他例項使用" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "無法退出任何媒體" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "無法退出媒體 '%s'" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "å­˜å– '%s' 的權é™è¢«æ‹’絕。" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "å­˜å– '%s' 時超出é™å®šæ™‚間。" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "ä¸‹è¼‰åˆ°çš„è³‡æ–™è¶…å‡ºäº†é æœŸæª”æ¡ˆå¤§å° %$2s 中的 %1$s。" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "ä½ç½® '%s' 暫時無法存å–。" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr " SSL 憑證å•題,驗證 '%s' çš„ CA æ†‘è­‰æ˜¯å¦æ­£ç¢ºã€‚" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "建立掛載點:無法找到å¯å¯«å…¥çš„目錄以建立掛載點" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "䏿”¯æ´çš„ HTTP é©—è­‰æ–¹å¼ '%s'" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "請先安è£è»Ÿé«”包 'lsof'。" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "需è¦çš„屬性 '%s' éºå¤±ã€‚" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "éœ€è¦ '%s' åŠ '%s' 屬性或兩者之一。" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "簽章驗證失敗" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "軟體包 %s å¯èƒ½åœ¨å‚³è¼¸æœŸé–“已毀æã€‚是å¦è¦é‡è©¦å–回æ“作?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "無法æä¾›è»Ÿé«”包 %s。是å¦è¦é‡è©¦å–回æ“作?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "applydeltarpm 檢查失敗。" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "applydeltarpm 失敗。" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "æœå‹™å¤–æŽ›ä¸æ”¯æ´å±¬æ€§çš„修改。" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "檔案 '%s' 無法由軟體庫 '%s' æä¾›" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "軟體庫中沒有 url。" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "檔案 %1%\n" " (來自以下軟體包\n" " %2%)\n" " 與來自下列軟體包的檔案相è¡çª\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "檔案 %1%\n" " (來自以下軟體包\n" " %2%)\n" " 與來自下列安è£çš„æª”案相è¡çª\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" "檔案 %1%\n" " (來自以下安è£\n" " %2%)\n" " 與來自下列軟體包的檔案相è¡çª\n" " %3%" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" "檔案 %1%\n" " (來自以下安è£\n" " %2%)\n" " 與來自下列安è£çš„æª”案相è¡çª\n" " %3%" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "檔案 %1%\n" " (來自以下軟體包\n" " %2%)\n" " 與下列檔案相è¡çª\n" " %3%\n" " (來自以下軟體包\n" " %4%)" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "檔案 %1%\n" " (來自以下軟體包\n" " %2%)\n" " 與下列檔案相è¡çª\n" " %3%\n" " (來自以下安è£\n" " %4%)" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" "檔案 %1%\n" " (來自以下安è£\n" " %2%)\n" " 與下列檔案發生è¡çª\n" " %3%\n" " (來自以下軟體包\n" " %4%)" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" "檔案 %1%\n" " (來自以下的安è£\n" " %2%)\n" " 與下列檔案發生è¡çª\n" " %3%\n" " (來自以下的安è£\n" " %4%)" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "無法建立 sat-pool。" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "藉由忽略它的æŸäº›ç›¸ä¾æ€§ä»¥ç ´å£ž %s" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "一般忽略æŸäº›ç›¸ä¾æ€§" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "%s ä¸å±¬æ–¼ç‰ˆæœ¬å‡ç´šè»Ÿé«”庫" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s æœ‰æ¬¡è¦æž¶æ§‹" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "已安è£çš„軟體包 %s 發生å•題" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "è¡çªçš„è¦æ±‚" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "ä¸€äº›ç›¸ä¾æ€§å•題" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "無法æä¾›æ‰€éœ€çš„ %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "是å¦å·²å•Ÿç”¨æ‰€æœ‰éœ€è¦çš„軟體庫?" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "軟體包 %s ä¸å­˜åœ¨" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "䏿”¯æ´çš„è¦æ±‚" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s 由系統æä¾›ï¼Œç„¡æ³•清除" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "%s 無法安è£" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "無法æä¾› %s (%s éœ€è¦æ­¤é …ç›®)" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "ç„¡æ³•åŒæ™‚å®‰è£ %s å’Œ %s" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s 與 %s è¡çª (ç”± %s æä¾›)" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s æ±°æ› %s (ç”± %s æä¾›)" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "安è£çš„ %s æœƒæ±°æ› %s (ç”± %s æä¾›)" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "解決方案 %s 與 %s è¡çª (由其自己æä¾›)" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "%s éœ€è¦ %s,但無法æä¾›æ­¤éœ€æ±‚" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "已刪除的æä¾›è€…: " #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" "\n" "無法安è£çš„æä¾›è€…: " #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "無法安è£çš„æä¾›è€…: " #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "解除鎖定以å…許移除 %s" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "è«‹å‹¿å®‰è£ %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "ä¿ç•™ %s" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "解除鎖定以å…è¨±å®‰è£ %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "æ­¤è¦æ±‚將會破壞您的系統ï¼" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "å¿½ç•¥ææ¯€ç³»çµ±çš„警告" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "è«‹å‹¿è¦æ±‚å®‰è£æä¾› %s 的解決方案" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "è«‹å‹¿è¦æ±‚刪除所有æä¾› %s 的解決方案" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "è«‹å‹¿å®‰è£æœ€æ–°ç‰ˆæœ¬çš„ %s" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "ä¿ç•™ %sï¼Œå¿½ç•¥æ¬¡è¦æž¶æ§‹" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "å®‰è£ %sï¼Œå¿½ç•¥æ¬¡è¦æž¶æ§‹" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "ä¿ç•™éŽæ™‚çš„ %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "è‡ªæŽ’é™¤çš„è»Ÿé«”åº«ä¸­å®‰è£ %s" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "é™ç´š %s 到 %s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "æž¶æ§‹ç”± %s 變更為 %s" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" "å®‰è£ %s (並變更廠商)\n" " %s --> %s" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "å°‡ %s å–代為 %s" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "åå®‰è£ %s" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "正在執行 %%posttrans ç¨‹åºæª”「%1%ã€" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "正在執行 %p osttrans ç¨‹åºæª”" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr " 已執行" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr " 執行失敗" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "%s 已作為 %s 執行)" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr " 中止時跳éŽåŸ·è¡Œ" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "ç™¼é€æ›´æ–°è¨Šæ¯æé†’失敗。" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "新的更新æé†’" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "安è£å·²å¦‚指示中止。" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "抱歉,此版本的 libzypp 䏿”¯æ´ HAL。" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "HalContext 未連接" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "HalDrive 未åˆå§‹åŒ–" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "HalVolume 未åˆå§‹åŒ–" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "無法建立 dbus 連接" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "libhal_ctx_new:無法建立 libhal 網路ä½ç½®" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "libhal_set_dbus_connection: 無法設定 dbus 連接" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "無法åˆå§‹åŒ– HAL 網路ä½ç½® -- hald 尚未執行嗎?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "䏿˜¯å…‰ç¢Ÿæ©Ÿ" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "RPM 失敗: " #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "從檔案 %1% 輸入公用金鑰失敗" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "移除公用金鑰 %1% 失敗" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "軟體包未簽章ï¼" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "%s 的已變更組態檔:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "rpm 已將 %s 儲存為 %s,但看ä¸å‡ºå·®ç•°" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm 已將 %s 儲存為 %s。\n" "é€™æ˜¯å‰ 25 行差異:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "rpm 已將 %s 建立為 %s,但看ä¸å‡ºå·®ç•°" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "rpm 已將 %s 建立為 %s。\n" "é€™æ˜¯å‰ 25 行差異:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "å…¶ä»– rpm 輸出" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "已建立備份 %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "簽章驗證正確" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "未知的簽章類型" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "簽章無法驗證" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "簽章驗證正確,然而金鑰是ä¸è¢«ä¿¡ä»»çš„" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "簽章用的公開金鑰ä¸å­˜åœ¨" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "檔案ä¸å­˜åœ¨æˆ–是簽章無法驗證" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "檔案未簽章" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "無法åˆå§‹åŒ– mutex 屬性" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "無法設定éžè¿´ mutex 屬性" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "無法åˆå§‹åŒ–éžè¿´ mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "無法å–å¾— mutex 鎖定" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "無法釋放 mutex 鎖定" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Url è¦åŠƒä¸å…許 %s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "無效的 %s 元件「%sã€" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "無效的 %s 元件" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "æ­¤ URL 䏿”¯æ´æŸ¥è©¢å­—串剖æž" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Url è¦åŠƒç‚ºå¿…è¦å…ƒä»¶" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "無效的 Url è¦åŠƒã€Œ%sã€" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Url è¦åŠƒä¸å…許使用者å稱" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Url è¦åŠƒä¸å…許密碼" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Url è¦åŠƒä¸­å¿…é ˆè¦æœ‰ä¸»æ©Ÿå…ƒä»¶" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Url è¦åŠƒä¸å…許主機元件" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "無效的主機元件「%sã€" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Url è¦åŠƒä¸å…許連接埠" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "無效的連接埠元件 '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Url è¦åŠƒå¿…é ˆè¦æœ‰è·¯å¾‘å稱" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "如果授權存在,則ä¸å…許相å°è·¯å¾‘" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "ç·¨ç¢¼å­—ä¸²åŒ…å« NUL ä½å…ƒçµ„" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "ç„¡æ•ˆçš„åƒæ•¸é™£åˆ—分割分隔符號字元" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "ç„¡æ•ˆçš„åƒæ•¸æ˜ å°„分割分隔符號字元" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "ç„¡æ•ˆçš„åƒæ•¸é™£åˆ—加入分隔符號字元" #~ msgid "Failed to import public key from file %s: %s" #~ msgstr "從檔案 %s 輸入公用金鑰失敗:%s" #~ msgid "Failed to remove public key %s: %s" #~ msgstr "移除公用金鑰 %s 失敗:%s" #~ msgid "Cannot find available loop device to mount the image file from '%s'" #~ msgstr "無法找到å¯ç”¨çš„ loop è£ç½®ä¾†æŽ›è¼‰ '%s' ä¸­çš„å½±åƒæª”" #~ msgid "Cannot create public key %s from %s keyring to file %s" #~ msgstr "無法建立公開金鑰 %s 從 %s 鑰匙圈到檔案 %s" #~ msgid "Download (Metalink curl) initialization failed for '%s'" #~ msgstr "'%s' 下載 (Metalink curl) åˆå§‹åŒ–失敗" #~ msgid "" #~ "Download (metalink curl) error for '%s':\n" #~ "Error code: %s\n" #~ "Error message: %s\n" #~ msgstr "" #~ "'%s' 下載 (Metalink curl) 錯誤:\n" #~ "錯誤碼: %s\n" #~ "錯誤訊æ¯ï¼š %s\n" #~ msgid "Download interrupted at %d%%" #~ msgstr "下載中斷在 %d%%" #~ msgid "Download interrupted by user" #~ msgstr "使用者中斷下載" #~ msgid "" #~ "Error occurred while setting download (metalink curl) options for '%s':" #~ msgstr "為 '%s' 設定下載(metalink curl)åƒæ•¸æ™‚發生錯誤:" #~ msgid "Failed to download %s from %s" #~ msgstr "下載 %s 從 %s 失敗" #~ msgid "Serbia and Montenegro" #~ msgstr "塞爾維亞和芒特尼格羅共和國" libzypp-17.7.0/po/zu.po000066400000000000000000003421031334444677500147370ustar00rootroot00000000000000# Copyright (C) 2006 SuSE Linux Products GmbH, Nuernberg # This file is distributed under the same license as the package. # msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: 2006-11-03 12:03\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "I-Hal Exception" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "Izwe elingaziwa:" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "Ayikho Ikhodi" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "Andorra" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "United Arab Emirates" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "Afghanistan" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "Anguilla" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "Albania" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "Armenia" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "Netherlands Antilles" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "Angola" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "Antarctica" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "Argentina" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "American Samoa" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "Austria" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "Australia" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "Aland Islands" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "Azerbaijan" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "Bosnia ne-Herzegowina" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "Barbados" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "Bangladesh" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "Belgium" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "Burkina Faso" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "Bulgaria" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "Bahrain" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "Burundi" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "Benin" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "Bermuda" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "Bolivia" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "Brazil" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "Bahamas" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "Bouvet Island" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "Botswana" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "Belarus" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "Belize" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "Congo" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "Centruual African Republic" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "Switzerland" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "Cote D'Ivoire" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "Cook Islands" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "Chile" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "Cameroon" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "China" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "Colombia" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "Costa Rica" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "Cuba" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "Cape Verde" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "Christmas Island" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "Cyprus" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "Czech Republic" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "Germany" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "Djibouti" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "Denmark" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "Dominica" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "Dominican Republic" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "Algeria" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "Ecuador" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "Estonia" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "Egypt" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "Western Sahara" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "Eritrea" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "Spain" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "Ethiopia" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "Finland" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "Fiji" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "Federated States of Micronesia" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "Faroe Islands" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "France" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "Metropolitan France" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "Gabon" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "United Kingdom" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "Grenada" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "Georgia" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "French Guiana" #. :GUF:254: #: zypp/CountryCode.cc:237 #, fuzzy msgid "Guernsey" msgstr "Germany" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "Ghana" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "Gibraltar" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "Greenland" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "Gambia" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "Guinea" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "Guadeloupe" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "Equatorial Guinea" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "Greece" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "South Georgia kanye ne-South Sandwich Islands" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "Guatemala" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "Guam" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "Guyana" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "Hong Kong" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "Heard Island kanye ne-McDonald Islands" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "Honduras" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "Croatia" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "Haiti" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "Hungary" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "Indonesia" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "Ireland" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "Israel" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "India" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "Iraq" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "Iran" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "Iceland" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "Italy" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "Jamaica" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "Jordan" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "Japan" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "Kenya" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "Kyrgyzstan" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "Cambodia" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "Kiribati" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "Comoros" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts ne-Nevis" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "North Korea" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "South Korea" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "Kuwait" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "Cayman Islands" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "Kazakhstan" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "Lao People's Democratic Republic" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "Lebanon" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "Saint Lucia" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "Liechtenstein" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "Sri Lanka" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "Liberia" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "Lesotho" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "Lithuania" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "Luxembourg" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "Latvia" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "Libya" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "Morocco" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "Monaco" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "Moldova" #. :MDA:498: #: zypp/CountryCode.cc:296 #, fuzzy msgid "Montenegro" msgstr "IsiMongo" #: zypp/CountryCode.cc:297 #, fuzzy msgid "Saint Martin" msgstr "San Marino" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "Madagascar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "Marshall Islands" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "Macedonia" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "Mali" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "Myanmar" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "Mongolia" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "Macao" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "Martinique" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "Mauritania" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "Montserrat" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "Malta" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "Mauritius" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "Maldives" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "Malawi" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "Mexico" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "Malaysia" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "Mozambique" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "Namibia" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "New Caledonia" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "Niger" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "Norfolk Island" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "Nigeria" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "Nicaragua" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "Netherlands" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "Norway" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "Nepal" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "Nauru" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "Niue" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "New Zealand" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "Oman" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "Panama" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "Peru" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "French Polynesia" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "Papua New Guinea" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "Philippines" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "Pakistan" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "Poland" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre ne-Miquelon" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "Pitcairn" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "Puerto Rico" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "Palestinian Territory" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "Portugal" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "Palau" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "Paraguay" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "Qatar" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "Reunion" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "Romania" #. :ROU:642: #: zypp/CountryCode.cc:346 #, fuzzy msgid "Serbia" msgstr "IsiSerbia" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "Russian Federation" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "Rwanda" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "Saudi Arabia" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "Solomon Islands" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "Seychelles" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "Sudan" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "Sweden" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "Singapore" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "Saint Helena" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "Slovenia" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "Svalbard ne-Jan Mayen" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "Slovakia" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "Sierra Leone" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "San Marino" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "Senegal" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "Somalia" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "Suriname" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "Sao Tome ne-Principe" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "El Salvador" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "Syria" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "Swaziland" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "Turks ne-Caicos Islands" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "Chad" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "French Southern Territories" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "Togo" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "Thailand" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "Tajikistan" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "IsiTokelau" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "Turkmenistan" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "Tunisia" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "Tonga" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "East Timor" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "Turkey" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "Trinidad ne-Tobago" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "IsiTuvalu" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "Taiwan" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "Tanzania" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "Ukraine" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "Uganda" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "United States" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "Uruguay" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "Uzbekistan" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "Holy See (Vatican City State)" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "Venezuela" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "British Virgin Islands" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "Virgin Islands, U.S." #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "Vietnam" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "Vanuatu" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "Wallis ne-Futuna" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "Samoa" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "Yemen" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "Mayotte" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "South Africa" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "Zambia" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "Zimbabwe" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 #, fuzzy msgid "Obsoletes" msgstr "%s yenza zingasebenzi:%s" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, fuzzy, c-format, boost-format msgid "Can't open pty (%s)." msgstr "Couldn't open file: %s." #: zypp/ExternalProgram.cc:279 #, fuzzy, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "Ayikwazi ukuvula ifayela %1." #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, fuzzy, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "Ayiyitholi i-%s." #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, fuzzy, c-format, boost-format msgid "Can't fork (%s)." msgstr "Ayiyitholi i-%s." #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 #, fuzzy msgid "Command exited with unknown error." msgstr "Ikhomandi ekhishwa lapho ixhumeka" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 #, fuzzy msgid "Failed to import key." msgstr "Ayikwazanga ukuqala i-VM." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 #, fuzzy msgid "Failed to delete key." msgstr "Ayikwazanga ukuqala i-VM." #: zypp/KeyRing.cc:570 #, fuzzy, c-format, boost-format msgid "Signature file %s not found" msgstr "Into ayitholakali." #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "Ulimi olungaziwa:" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "Isi-Afar" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "Isi-Abkhazia" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "Isi-Achinese" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "Isi-Acoli" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "Isi-Adangme" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "Isi-Adyghe" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "Isi-Asia Esiyisi-Afro (Esinye)" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "Isi-Afrihili" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "IsiBhunu" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "Isi-Anu" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "Isi-Akan" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "Isi-Akkad" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "Isi-Albania" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "Isi-Aleut" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "Izilimi Zama-Algonquia" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "Isi-Altai SaseNingizimu" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "Isi-Amhari" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "IsiNgisi, Esidala (ca.450-1100)" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "Izilimi Zama-Apache" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "Isi-Arabhu" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "Isi-Aramu" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "Isi-Aragoni" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "Isi-Armenia" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "Isi-Araucania" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "Isi-Arapaho" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "Isi-Artificial (Esinye)" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "Isi-Arawak" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "Isi-Assame" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "Isi-Asturia" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "Izilimi Zama-Athapasca" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "Izilimi Zase-Australia" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "Isi-Avari" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "Isi-Avesta" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "Isi-Awadhi" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "Isi-Aymara" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "Isi-Azerbaijani" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "IsiBanda" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "Izilimi ZamaBalimeke" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "IsiBashkir" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "IsiBaluchi" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "IsiBambara" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "IsiBaline" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "IsiBasque" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "IsiBasa" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "Isi-Baltic (Esinye)" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "IsiBeja" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "IsiBelarusia" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "IsiBemba" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "IsiBengali" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "Isi-Barber (Esinye)" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "IsiBhojpuri" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "IsiBihari" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "IsiBikol" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "IsiBini" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "IsiBislama" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "IsiSiksika" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "Izilimi Zabomdabu (Ezinye)" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "IsiBosnia" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "IsiBraj" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "IsiBreton" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "IsiBatak (Indonesia)" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "IsiBuriat" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "IsiBuginese" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "IsiBulgaria" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "IsiBurmese" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "IsiBlin" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "IsiCaddo" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "Isindiya SaseMelika Ephakathi (Esinye)" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "IsiCarib" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "IsiCatal" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "Isi-Caucasia (Esinye)" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "IsiCebuano" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "Isi-Celt (Esinye)" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "IsiChamorro" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "IsiChibcha" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "IsiChechen" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "IsiChagatai" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "IsiShayina" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "IsiChuukese" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "IsiMari" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "Ingxubevange YesiChinook" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "IsiChoctaw" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "IsiChipewyan" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "IsiCherokee" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "IsiSlav SaseSontweni" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "IsiChuvash" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "IsiCheyenne" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "Izilimi ZamaChami" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "IsiCopt" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "IsiCorni" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "IsiCorsic" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "AmaCreoles namaPidgin, Ezisekelwe EsiNgisini (Ezinye)" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "AmaCreoles namaPidgin, Ezisekelwe EsiFulentshini (Ezinye)" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "AmaCreoles namaPidgin, Ezisekelwe EsiPutukezini (Ezinye)" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "IsiCree" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "Isi-Tatar SaseCrimea" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "Ama-Creole namaPidgin (Ezinye)" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "IsiKashubi" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "Isi-Cushiti (Esinye)" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "IsiCzech" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "IsiDakota" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "IsiDanishi" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "IsiDargwa" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "IsiDayak" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "IsiDelaware" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "IsiSlave (Sesi-Athapasca)" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "IsiDogrib" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "IsiDinka" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "IsiDivehi" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "IsiDogri" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "Isi-Dravid (Esinye)" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "IsiSorbia Sangezansi" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "IsiDuala" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "IsiDashi, Maphakathi (ca.1050-1350)" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "IsiDashi" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "IsiDyula" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "IsiDzongkha" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "Isi-Efik" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "IsiGibhithe (Sasendulo)" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "Isi-Ekajuk" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "Isi-Elami" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "IsiNgisi" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "IsiNgisi, Maphakathi (1100-1500)" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "Isi-Esperanto" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "Isi-Estonia" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "Isi-Ewe" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "Isi-Ewondo" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "Isi-Fang" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "IsiFaroese" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "IsiFanti" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "IsiFiji" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "IsiFilipino" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "IsiFinishi" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "Isi-Ugrio SesiFinno (Esinye)" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "IsiFon" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "IsiFulentshi" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "IsiFulentshi, Maphakathi (ca.1400-1600)" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "IsiFulentshi, Esidala (842-ca.1400)" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "IsiFrisia" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "IsiFulah" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "IsiFriulia" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "IsiGa" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "IsiGayo" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "IsiGbaya" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "IsiJalimane (Esinye)" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "IsiGeorgia" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "IsiJalimane" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "IsiGeez" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "IsiGilbertese" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "IsiGaeli" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "Isi-Irish" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "IsiGalicia" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "IsiManx" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "IsiJalimane, Esiphezulu Maphakathi (ca.1050-1500)" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "IsiJalimane, Esiphezulu Sakudala (ca.1050-1050)" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "IsiGondi" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "IsiGorontalo" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "IsiGothic" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "IsiGrebo" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "IsiGriki, Sasendulo (kuya ku-1453)" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "IsiGriki, Sesimanje (1453-)" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "IsiGuarani" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "IsiGujarati" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "IsiGwich'in" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "IsiHaida" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "IsiHaiti" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "IsiHausa" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "IsiHawaii" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "IsiHebheru" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "IsiHerero" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "IsiHiligaynon" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "IsiHimachali" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "IsiHindi" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "IsiHeti" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "IsiHmong" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "IsiHiri Motu" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "IsiSorbia Sangenhla" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "IsiHungary" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "IsiHupa" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "Isi-Iban" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "Isi-Igbo" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "Isi-Iceland" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "Isi-Ido" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "IsiSichuan Yi" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "Isi-Ijo" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "Isi-Inuktitut" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "Isi-Interlingue" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "Isi-Iloko" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "Isi-Interlingua (Inhlangano Yomhlaba Wonke Esiza Ngezilimi)" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "Isi-Indi (Esinye)" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "Isi-Indonesia" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "Isi-Indo-Europe (Esinye)" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "Isi-Ingush" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "Isi-Inupiaq" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "Isi-Irani (Esinye)" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "Izilimi Zase-Iraqi" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "IsiNtaliyane" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "IsiJavani" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "IsiLobja" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "AmaJapane" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "IsiPheresiya EsiyisiJuda" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "Isi-Arabhu EsiyisiJuda" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "IsiKara-Kalpak" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "IsiKabyle" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "IsiKachin" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "IsiKalaallisut" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "IsiKamba" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "IsiKannada" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "IsiKaren" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "IsiKashmiri" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "IsiKanuri" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "IsiKawi" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "IsiKazakh" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "IsiKabard" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "IsiKhasi" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "IsiKhoisan (Esinye)" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "IsiKhmer" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "IsiKhotanese" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "IsiKikuyu" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "IsiKinyarwanda" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "IsiKrghiz" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "IsiKimbundu" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "IsiKonkani" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "IsiKomi" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "IsiKongo" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "IsiKoriya" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "IsiKosrae" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "IsiKpelle" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "IsiKarachay-Balkar" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "IsiKru" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "IsiKurukh" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "IsiKuanyama" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "IsiKumyk" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "IsiKurdu" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "IsiKutenai" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "IsiLadino" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "IsiLahnda" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "IsiLamba" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "IsiLao" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "IsiLatini" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "IsiLatvia" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "IsiLezghia" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "IsiLimburg" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "IsiLingala" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "IsiLithania" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "IsiMongo" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "IsiLozi" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "IsiLuxembourg" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "IsiLuba-Lulua" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "IsiLuba-Katanga" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "IsiGanda" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "IsiLuiseno" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "IsiLunda" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "IsiLuo (Ekenya naseTanzania)" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "IsiLushai" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "IsiMacedonia" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "IsiMadurese" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "IsiMagahi" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "IsiMarshall" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "IsiMaithili" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "IsiMakasar" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "IsiMalayal" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "IsiMandingo" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "IsiMaori" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "Isi-Austronesia (Esinye)" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "IsiMarathi" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "IsiMasai" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "IsiMalay" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "IsiMoksha" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "IsiMandar" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "IsiMende" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "Isi-Irish, Maphakathi (900-1200)" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "IsiMi'kmaq" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "IsiMinangkabau" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "Izilimi Eziyingxubevange" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "IsiMon-Khmer (Ezinye)" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "IsiMalagasy" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "IsiMaltese" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "IsiManchu" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "IsiManipuri" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "Izilimi ZaManobo" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "IsiMohawk" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "IsiMoldavia" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "IsiMongolia" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "IsiMossi" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "Izilimi Eziningi" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "Izilimi ZamaMunda" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "IsiCreek" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "IsiMirandese" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "IsiMarwari" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "Izilimi ZamaMaya" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "Isi-Erzya" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "IsiNahuatl" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "IsiNdiya SaseNyakatho Melika" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "IsiNeapoli" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "Navajo" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "IsiNdebele, saseNingizimu" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "IsiNdebele, saseNyakatho" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "IsiNdonga" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "IsiJalimane Esiphansi" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "IsiNepali" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "IsiNepali Bhasha" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "IsiNias" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "IsiNiger-Kordofanian (Esinye)" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "IsNiue" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "IsiNynorsk SaseNorway" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "IsiBokmal SaseNorway" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "IsiNogai" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "IsiNorse, Esidala" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "IsiNorway" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "IsiSuthu SaseNyakatho (isiPedi)" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "Izilimi zamaNubi" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "IsiNewari Sendabuko" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "IsiChewa" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "IsiNyamwezi" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "IsiNyakole" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "IsiNyoro" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "IsiNzima" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "Isi-Occitan (sangemva kuka-1500)" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "Isi-Ojibwa" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "Isi-Oriya" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "Isi-Oromo" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "Isi-Osage" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "Isi-Ossetian" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "IsiTurkey, Isi-Ottoman (1500-1928" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "Izilimi Zama-Otomia" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "IsiPapua (Esinye)" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "IsiPangasinan" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "IsiPahlavi" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "IsiPampanga" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "IsiPanjabi" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "IsiPapiamento" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "IsiPalauan" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "IsiPeresiya, Esidala (ca.600-400 B.C.)" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "IsiPeresiya" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "Isi-Philippine (Esinye)" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "IsiPhoenicia" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "IsiPali" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "IsiPolishi" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "IsiPohnpeian" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "IsiPutukezi" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "Izilimi ZesiPrakrit" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "IsiProvencal, Esidala (ukuya ku-1500)" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "IsiPushto" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "IsiQuenchua" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "IsiRajasthani" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "IsiRapanui" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "IsiRarotonga" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "IsiRomance (Esinye)" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "IsiRaeto-Romance" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "IsiRomany" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "IsiRomania" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "IsiRundi" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "IsiRashiya" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "IsiSandawe" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "IsiSango" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "IsiYakut" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "IsiNdiya SaseMelika EseNingizimu (Esinye)" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "Izilimi ZesiSalisha" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "Isi-Aramu SaseSamariya" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "IsiSanskrit" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "IsiSasak" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "IsiSantali" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "IsiSerbia" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "IsiSicilia" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "IsiScots" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "IsiCroatia" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "IsiSelkup" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "IsiSemi (Esinye)" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "Isi-Irish, Esidala (ukuya ku-900)" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "Izilimi Zezandla" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "IsiShan" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "IsiSidamo" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "IsiSinhala" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "Izilimi ZaseSioua" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "IsiTibeti SamaSino (Esinye)" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "Isi-Slavic (Esinye)" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "IsiSlovak" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "IsiSlovenia" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "IsiSami SaseNingizimu" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "IsiSami SaseNyakatho" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "Izilimi ZamaSami (Esinye)" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "IsiSami SamaLule" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "IsiSami Sama-Inari" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "IsiSamoa" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "IsiSami SamaSkolt" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "IsiShona" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "IsiSindhi" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "IsiSoninke" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "IsiSogdia" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "IsiSomali" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "IsiSonghai" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "IsiSuthu, SaseNingizimu" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "ISipanishi" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "IsiSardinia" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "IsiSerer" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "IsiSahara EsiyisiNilo (Esinye)" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "IsiSwati" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "IsiSukuma" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "IsiSundanese" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "IsiSusu" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "IsiSumeri" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "IsiSwahili" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "IsiSwidi" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "IsiSyria" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "IsiTahiti" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "Isi-Tai (Esinye)" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "IsiTamil" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "Isi-Tatar" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "IsiTelugu" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "IsiTimne" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "IsiTereno" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "IsiTetum" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "IsiTajik" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "IsiTagalog" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "IsiThai" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "IsiTibet" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "IsiTigre" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "IsiTigrinya" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "IsiTiv" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "IsiKlingon" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "IsiTlingit" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "IsiTamashek" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "IsiTonga (SamaNyasa)" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "IsTonga (Eziqingini ZamaTonga)" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "IsiTok Pisin" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "IsiTsimshian" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "IsiTswana" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "IsiTsonga" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "IsiTurkment" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "IsiTumbuka" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "Izilimi ZamaTupi" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "IsiTurkey" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "Isi-Atlaic (Esinye)" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "IsiTwi" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "IsiTuvinia" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "Isi-Udmurt" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "Isi-Ugaritic" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "Isi-Uighur" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "Isi-Ukrania" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "Isi-Umbundu" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "Olunganqunyiwe" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "Isi-Urdu" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "Isi-Uzbek" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "IsiVai" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "IsiVenda" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "IsiVietnam" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "IsiVolapuk" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "IsiVotic" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "Izilimi ZamaWakasha" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "IsiWalamo" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "IsiWaray" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "IsiWasho" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "IsiWelsh" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "Izilimi ZamaSorbia" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "IsiWalloon" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "IsiWolof" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "IsiKalmyk" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "IsiXhosa" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "IsiYao" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "IsiYapese" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "IsiYiddish" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "IsiYoruba" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "Izilimi ZamaYupik" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "IsiZapotec" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "IsiZenaga" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "IsiZhuang" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "IsiZande" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "IsiZulu" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "IsiZuni" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 #, fuzzy msgid "does not expire" msgstr "'I-o%1' ayitholakali." #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 #, fuzzy msgid "(does not expire)" msgstr "'I-o%1' ayitholakali." #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, fuzzy, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 #, fuzzy msgid "Repository alias cannot start with dot." msgstr "Igama le-VM alikwazi ukuqala ngenombolo." #: zypp/RepoManager.cc:366 #, fuzzy msgid "Service alias cannot start with dot." msgstr "Igama le-VM alikwazi ukuqala ngenombolo." #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, fuzzy, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "Ayikwazi ukuvula ifayela ukuze ibhale." #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, fuzzy, c-format, boost-format msgid "Can't create %s" msgstr "Ayikwazi ukuvula into esesendlalelweni (desktop) '%s'" #: zypp/RepoManager.cc:1150 #, fuzzy msgid "Can't create metadata cache directory." msgstr "Ayikwazi ukwakha i-directory '%1'. %2." #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, fuzzy, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "Failed to parse: %s." #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, fuzzy, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "Kwenzeke iphutha lapho ifunda iflophi diski." #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, fuzzy, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "Igama lefayela yokuthekelisa engekho emthethweni." #: zypp/RepoManager.cc:1749 #, fuzzy, c-format, boost-format msgid "Removing repository '%s'" msgstr "Ukubuyisela imithombo yokwaziswa" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, fuzzy, c-format, boost-format msgid "Can't delete '%s'" msgstr "Ayikwazi ukuvula into esesendlalelweni (desktop) '%s'" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "Uhlu lombuzo lwe-LDAP URL olunganembile" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "Ipharamitha yombuzo ye-LDAP URL enganembile '%s'" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "Ayikwazi ukukopisha into ye-Url" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "Into engenalutho ye-Url okubhekiselwe kuyo ayinembile" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "Ayikwazi ukucaza izingxenyana ze-Url" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "akwaziwa" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 #, fuzzy msgid "The vendor does not provide support." msgstr "Idiski ayikho." #: zypp/VendorSupportOptions.cc:45 msgid "" "Problem determination, which means technical support designed to provide " "compatibility information, installation assistance, usage support, on-going " "maintenance and basic troubleshooting. Level 1 Support is not intended to " "correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "" "Problem isolation, which means technical support designed to duplicate " "customer problems, isolate problem area and provide resolution for problems " "not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "" "Problem resolution, which means technical support designed to resolve " "complex problems by engaging engineering in resolution of product defects " "which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 #, fuzzy msgid "History:" msgstr "Linganisa Umlando" #: zypp/base/InterProcessMutex.cc:83 #, fuzzy, c-format, boost-format msgid "Can't open lock file: %s" msgstr "Ayikwazi ukuvula ifayela %1." #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, fuzzy, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "Ikhomandi engaziwa" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, fuzzy, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "Uhlelo lwe-Url olungekho emthethweni '%s'" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "" "Visit the Novell Customer Center to check whether your registration is valid " "and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, fuzzy, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "Ayikwazi ukuvula %s - %s\n" #: zypp/media/MediaException.cc:41 #, fuzzy, c-format, boost-format msgid "Failed to unmount %s" msgstr "Ihlulekile ukufaka imoduli \"%s\"." #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, fuzzy, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "Ifayela %1 ayitholakali enqolobaneni yamafayela." #: zypp/media/MediaException.cc:61 #, fuzzy, c-format, boost-format msgid "Cannot write file '%s'." msgstr "Ayikwazi ukubhala efayeleni %1." #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, fuzzy, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "I-%1 ayiyona i-directory." #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 #, fuzzy msgid "Empty host name in URI" msgstr "Igama le-CA elingenalutho" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, fuzzy, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "Uhlelo '%1' lwe-URL engekho emthethweni." #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, fuzzy, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "Ayikwazi ukuvula into esesendlalelweni (desktop) '%s'" #: zypp/media/MediaException.cc:179 #, fuzzy, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "Izimvume zinqatshiwe" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "" "Create attach point: Can't find a writable directory to create an attach " "point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 #, fuzzy msgid "Signature verification failed" msgstr "DBI Execution failed: %s" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, fuzzy, c-format, boost-format msgid "" "Package %s seems to be corrupted during transfer. Do you want to retry " "retrieval?" msgstr "" "Iphakheji %s ihlulekile lapho ihlolwa ukuthembeka. Ufuna ukuphinde uzame " "ukuyilanda futhi?" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, fuzzy, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" "Iphakheji %s ihlulekile lapho ihlolwa ukuthembeka. Ufuna ukuphinde uzame " "ukuyilanda futhi?" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "ukuhlola i-applydeltarpm kuhlulekile." #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "i-applydeltarpm ihlulekile." #: zypp/repo/RepoException.cc:129 #, fuzzy msgid "Service plugin does not support changing an attribute." msgstr "" "uhlobo lomthombo wokwaziswa we-VAR1 alulusekeli uhlelo lokuboniswa " "kwezinguquko" #: zypp/repo/RepoProvideFile.cc:261 #, fuzzy, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "Ayikwazi ukuhlinzeka nge-%s kwi-%s" #: zypp/repo/RepoProvideFile.cc:267 #, fuzzy msgid "No url in repository." msgstr "Ifayela %1 ayitholakali enqolobaneni yamafayela." #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 #, fuzzy msgid "Can not create sat-pool." msgstr "Ayikwazi ukwakha ifayela." #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, fuzzy, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "Sishaye indiva lesi sidingo lapha nje kuphela" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 #, fuzzy msgid "generally ignore of some dependencies" msgstr "Sishaye indiva lesi sidingo lapha nje kuphela" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, fuzzy, c-format, boost-format msgid "%s has inferior architecture" msgstr "%s ihlinzeka nge-%s, kodwa inobunye ubuciko bomklamo." #: zypp/solver/detail/SATResolver.cc:987 #, fuzzy, c-format, boost-format msgid "problem with installed package %s" msgstr "ikhomandi yokukhipha amaphakheji" #: zypp/solver/detail/SATResolver.cc:990 #, fuzzy msgid "conflicting requests" msgstr "Isicelo Sokuxhuma kwi-:" #: zypp/solver/detail/SATResolver.cc:993 #, fuzzy msgid "some dependency problem" msgstr "Ayikwazi ukufaka %s ngenxa yezinkinga zohlelo oluncike kwezinye" #: zypp/solver/detail/SATResolver.cc:996 #, fuzzy, c-format, boost-format msgid "nothing provides requested %s" msgstr "Akukho okunikeza %s" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, fuzzy, c-format, boost-format msgid "package %s does not exist" msgstr "Idiski ayikho." #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, fuzzy, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "%s ihluthulelwe futhi ngeke ikwazi ukukhipheka." #: zypp/solver/detail/SATResolver.cc:1011 #, fuzzy, c-format, boost-format msgid "%s is not installable" msgstr "alufakiwe" #: zypp/solver/detail/SATResolver.cc:1016 #, fuzzy, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "%s idingwa yi- %s" #: zypp/solver/detail/SATResolver.cc:1021 #, fuzzy, c-format, boost-format msgid "cannot install both %s and %s" msgstr "Ayikwazi ukufaka %s" #: zypp/solver/detail/SATResolver.cc:1026 #, fuzzy, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "%s ixabana ne- %s" #: zypp/solver/detail/SATResolver.cc:1031 #, fuzzy, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "%s yenza zingasebenzi %s" #: zypp/solver/detail/SATResolver.cc:1036 #, fuzzy, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "%s yenza zingasebenzi %s" #: zypp/solver/detail/SATResolver.cc:1040 #, fuzzy, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "%s ixabana ne- %s" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 #, fuzzy msgid "deleted providers: " msgstr "Akukho okunikeza %s" #: zypp/solver/detail/SATResolver.cc:1084 #, fuzzy msgid "" "\n" "not installable providers: " msgstr "Abekho abanye abaphakeli abafakiwe be-%s" #: zypp/solver/detail/SATResolver.cc:1086 #, fuzzy msgid "not installable providers: " msgstr "Abekho abanye abaphakeli abafakiwe be-%s" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "ungafaki %s" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "Gcina %s" #: zypp/solver/detail/SATResolver.cc:1168 #, fuzzy, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "ungafaki %s" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 #, fuzzy msgid "This request will break your system!" msgstr "Isicelo sesikhona kakade." #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, fuzzy, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "Abekho abanye abaphakeli abafakiwe be-%s" #: zypp/solver/detail/SATResolver.cc:1247 #, fuzzy, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "Ungafaki noma ususe maqondana nezixazululi" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, fuzzy, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "%s ihlinzeka nge-%s, kodwa inobunye ubuciko bomklamo." #: zypp/solver/detail/SATResolver.cc:1286 #, fuzzy, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "Faka %s nakuba izoshintsha ubuciko bomklamo" #: zypp/solver/detail/SATResolver.cc:1295 #, fuzzy, c-format, boost-format msgid "keep obsolete %s" msgstr "%s yenza zingasebenzi %s" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, fuzzy, c-format, boost-format msgid "downgrade of %s to %s" msgstr "Ilande %s kwi-%s" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, fuzzy, c-format, boost-format msgid "deinstallation of %s" msgstr "Ukufaka uhlelo" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 #, fuzzy msgid " executed" msgstr "Qalisa" #: zypp/target/TargetImpl.cc:333 #, fuzzy msgid " execution failed" msgstr "DBI Execution failed: %s" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 #, fuzzy msgid "Error sending update message notification." msgstr "Kwenzeke iphutha ngesikhathi kufakwa amakhodi okuphepha." #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "Ukufaka kuyekiwe njengoba kunikezwe isiqondiso." #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "I-HalContext ayixhumekile" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "I-HalDrive ayizange ilungiselelwe ukuqalisa" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "I-HalVolume ayizange ilungiselelwe ukuqalisa" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "Ayikwazanga ukwakha ukuxhumana nge-dbus" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "I-libhal_ctx_new: Ayikwazi ukwakha i-libhal context" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "I-libhal_set_dbus_connection: Ayikwazi ukwakha ukuxhumana kwe-dbus" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "Ayikwazi ukuqalisa i-HAL context --i-hald ayisebenzi?" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "Akuyona i-CDROM drive" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 #, fuzzy msgid "RPM failed: " msgstr "ayiphumelelanga" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "Amafayela okuhlela ashintshile e-%s:" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, fuzzy, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "I-rpm igcine %s njenge-%s kodwa bekungenakwenzeka ukubona umehluko" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "I-rpm igcine i-%s njenge-%s.\n" "Nansi imigqa yokuqala engu-25 yomehluko:\n" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, fuzzy, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "I-rpm yakhe %s njenge-%s kodwa bekungenakwenzeka ukubona umehluko" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" "I-rpm yakhe i-%s njenge-%s.\n" "Nansi imigqa yokuqala engu-25 yomehluko:\n" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 #, fuzzy msgid "Additional rpm output" msgstr "Okunye okukhishiwe kwe-rpm:" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "yakhe i-backup %s" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 #, fuzzy msgid "Signature is OK" msgstr "Into ayitholakali." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 #, fuzzy msgid "Signature does not verify" msgstr "Into ayitholakali." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 #, fuzzy msgid "Signature is OK, but key is not trusted" msgstr "Into ayitholakali." #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "Ayikwazi ukulungela ukuqalisa ama-attribute e-mutex" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "Ayikwazi ukusetha ama-attribute e-mutex" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "Ayikwazi ukulungiselela ukuqalisa i-recursive mutex" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "Ayikwazi ukuthola isihluthulelo se-mutex" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "Ayikwazi ukukhulula isihluthulelo se-mutex" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "Uhlelo lwe-URL aluyivumeli i-%s" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "Ingxenyana '%s' engekho emthethweni %s" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "Ingxenyana engekho emthethweni %s" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "Ukucazwa kohlu lwemibuzo akusekelwa kule-URL" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "Uhlelo lwe-Url luyingxenyana edingekayo" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "Uhlelo lwe-Url olungekho emthethweni '%s'" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "Uhlelo lwe-URL alulivumeli igama lomsebenzisi" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "Uhlelo lwe-URL aluyivumeli iphasiwedi" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "Uhlelo lwe-Url ludinga ingxenyana yesiphakeli" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "Uhlelo lwe-URL aluyivumeli ingxenyana yesiphakeli" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "Ingxenyana engekho emthethweni '%s'" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "Uhlelo lwe-URL aluyivumeli iphasiwedi" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "Ingxenyana engekho emthethweni '%s'" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "Uhlelo lwe-Url ludinga igama lomgudu" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "Umgudu ongaphelele awuvunyelwe uma kunegunya" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "Uhlu olufakwe amakhodi okuphepha lune-NUL byte" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "Iqoqo lepharamitha elinganembile lihlakaza uhlamvu oluhlukanisayo" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "Ibalazwe lepharamitha elinganembile lihlakaza uhlamvu oluhlukanisayo" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "Iqoqo lepharamitha elinganembile lihlanganisa uhlamvu oluhlukanisayo" #, fuzzy #~ msgid "Failed to remove public key %s: %s" #~ msgstr "Ayikwazi ukuthola isikhiye sikawonk’ uwonke." #, fuzzy #~ msgid "do not keep %s installed" #~ msgstr "alufakiwe" #, fuzzy #~ msgid "Failed to download %s from %s" #~ msgstr "Ayikwazi ukuvula %s - %s\n" #~ msgid "Serbia and Montenegro" #~ msgstr "Serbia ne-Montenegro" #, fuzzy #~ msgid "Unknown Distribution" #~ msgstr "Uhlu olungaziwa okukhethwa kulo" #, fuzzy #~ msgid "ignore some dependencies of %s" #~ msgstr "ayikwazanga ukuxazulula izinhlelo ezincike kwezinye" #~ msgid "" #~ "File %s does not have a checksum.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayela %s ayinayo i-checksum.\n" #~ "Nokho yisebenzise ifayela?" #~ msgid "" #~ "File %s failed integrity check with the folowing key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayela %s yehlulekile ekuhlolweni kokwethembeka ngesikhiye " #~ "esilandelayo:\n" #~ "%s|%s|%s\n" #~ " Nokho yisebenzise ifayela?" #~ msgid "" #~ "File %s has an invalid checksum.\n" #~ "Expected %s, found %s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayela %s ine-checksum engasebenzi.\n" #~ "Bekulindeleke %s, kwatholakala %s\n" #~ " Nokho yisebenzise ifayela?" #~ msgid "" #~ "File %s has an unknown checksum %s.\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayela %s ine-checksum engaziwa %s.\n" #~ "Nokho yisebenzise ifayela?" #~ msgid "" #~ "File %s is not signed.\n" #~ "Use it anyway?" #~ msgstr "" #~ "Ifayela %s ayisayiniwe.\n" #~ "Nokho yisebenzise?" #~ msgid "" #~ "File %s is signed with an unknown key:\n" #~ "%s|%s|%s\n" #~ "Use the file anyway?" #~ msgstr "" #~ "Ifayela %s isayinwe ngesikhiye esingaziwa:\n" #~ "%s|%s|%s\n" #~ " Nokho yisebenzise ifayela?" #~ msgid "" #~ "Untrusted key found:\n" #~ "%s|%s|%s\n" #~ "Trust key?" #~ msgstr "" #~ "Isikhiye esingenakwethenjwa sitholakele:\n" #~ "%s|%s|%s\n" #~ " Sethembe isikhiye?" #~ msgid "%s remove failed" #~ msgstr "Ukususa i-%s akuphumelelanga" #, fuzzy #~ msgid "Invalid user name or password." #~ msgstr "Iphasiwedi ye-CA engekho emthethweni." #~ msgid "rpm output:" #~ msgstr "okukhishiwe kwe-rpm:" #~ msgid "%s install failed" #~ msgstr "ukufakwa kwe-%s akuphumelelanga" #~ msgid "%s installed ok" #~ msgstr "%s efakiwe ilungile" #~ msgid "%s remove ok" #~ msgstr "ukususa i-%s kuphumelele" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the architecture of the " #~ "installed item" #~ msgstr "" #~ "%s ihlinzeka ngalolu hlelo okuncikwe kulo kodwa ingabushintsha ubuciko " #~ "bomklamo bento efakiwe" #, fuzzy #~ msgid "" #~ "%s provides this dependency, but would change the vendor of the installed " #~ "item" #~ msgstr "" #~ "%s ihlinzeka ngalolu hlelo okuncikwe kulo kodwa ingabushintsha ubuciko " #~ "bomklamo bento efakiwe" #, fuzzy #~ msgid "Do not install or delete the resolvables concerned" #~ msgstr "Ungafaki noma ususe maqondana nezixazululi" #~ msgid "Ignore that %s is already set to install" #~ msgstr "Kushaye indiva ukuthi i-%s isisethelwe ukufakwa kakade" #~ msgid "Ignore the obsolete %s in %s" #~ msgstr "Ishaye indiva into engasebenzi i-%s e-%s" #~ msgid "Ignore this conflict of %s" #~ msgstr "Kushaye indiva lokhu kuxabana kwe-%s" #~ msgid "Ignore this requirement just here" #~ msgstr "Sishaye indiva lesi sidingo lapha nje kuphela" #, fuzzy #~ msgid "Install %s although it would change the vendor" #~ msgstr "Faka %s nakuba izoshintsha ubuciko bomklamo" #~ msgid "Install missing resolvables" #~ msgstr "Faka izixazululi ezilahlekile" #~ msgid "Keep resolvables" #~ msgstr "Gcina Izixazululi" #~ msgid "Unlock these resolvables" #~ msgstr "Vula izihluthulelo zalezi zixazululi" #~ msgid "delete %s" #~ msgstr "Susa %s" #~ msgid "install %s" #~ msgstr "faka %s" #~ msgid "unlock %s" #~ msgstr "vula isihluthulelo se-%s" #~ msgid "unlock all resolvables" #~ msgstr "Vula izihluthulelo zezixazululi" #, fuzzy #~ msgid "Can't open solv-file: " #~ msgstr "Ayikwazi ukuvula ifayela %1." #, fuzzy #~ msgid "Error reading solv-file: " #~ msgstr "Kwenzeke iphutha ifunda i-sector %u." #~ msgid "Path Parameter parsing not supported for this URL" #~ msgstr "Ukucazwa kwepharamitha yomgudu akusekelwa kule-URL" #~ msgid "Path parameter parsing not supported for this URL" #~ msgstr "Ukucazwa kwepharamitha yomgudu akusekelwa kule-URL" #~ msgid "Software management is already running." #~ msgstr "Ukulawulwa kwe-software sekuyasebenza kakade." #~ msgid "%s is replaced by %s" #~ msgstr "%s ithathelwa indawo yi- %s" #~ msgid "%s replaced by %s" #~ msgstr "%s ingenelwe esikhundleni yi- %s" #, fuzzy #~ msgid "%s will be deleted by the user.\n" #~ msgstr "" #~ "\n" #~ "Lezi zixazululi zizosulwa kwisistimu." #, fuzzy #~ msgid "%s will be installed by the user.\n" #~ msgstr "%s ayinakukhishwa ngoba isadingeka namanje" #~ msgid "Invalid information" #~ msgstr "ukwaziswa okungasebenzi" #~ msgid "%s is needed by other resolvables" #~ msgstr "%s idingwa ezinye izixazululi" #~ msgid "" #~ "%s is needed by:\n" #~ "%s" #~ msgstr "" #~ "%s idingwa yi-:\n" #~ "%s" #~ msgid "%s conflicts with other resolvables" #~ msgstr "%s ixabana nezinye izixazululi" #~ msgid "" #~ "%s conflicts with:\n" #~ "%s" #~ msgstr "" #~ "%s ixabana ne-:\n" #~ "%s" #~ msgid "%s obsoletes other resolvables" #~ msgstr "%s yenza ezinye izixazululi zingasebenzi" #~ msgid "" #~ "\n" #~ "These resolvables will be deleted from the system." #~ msgstr "" #~ "\n" #~ "Lezi zixazululi zizosulwa kwisistimu." #~ msgid "%s depends on other resolvables" #~ msgstr "%s yenzike kwezinye izixazululi" #~ msgid "%s depends on %s" #~ msgstr "%s yencike kwi- %s" #~ msgid "%s depends on:%s" #~ msgstr "%s yencike kwi-:%s" #~ msgid "Child of" #~ msgstr "Ingane ka-" #, fuzzy #~ msgid "" #~ "\n" #~ "There is no resource available which supports this requirement." #~ msgstr "" #~ "\n" #~ "Awukho umthombo otholakalayo osekela lemfuneko." #, fuzzy #~ msgid "" #~ "Due to the problems described above/below, this resolution will not solve " #~ "all dependencies" #~ msgstr "" #~ "Izinkinga ezidlulelwe yisikhathi ezichazwe ngenhla/ngezansi kwalokhu " #~ "ngeke zixazulule zonke izinhlelo okuncikwe kuzo." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting with %s" #~ msgstr "Ayikwazi ukufaka %s ngoba ixabana ne-%s" #~ msgid "%s is not installed and has been marked as uninstallable" #~ msgstr "%s ayifakwanga futhi iye yaphawulwa njengengafakeki" #~ msgid "%s has unfulfilled requirements" #~ msgstr "%s inezimfuneko ezingagcwalisiwe" #~ msgid "%s has missing dependencies" #~ msgstr "%s inezinhlelo encike kuzo ezilahlekile" #~ msgid "%s cannot be installed due to missing dependencies" #~ msgstr "%s ayikwazi ukufkwa ngenxa yezinhlelo encike kuzo ezilahlekile" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be uninstalled" #~ msgstr "%s igcwalisa izinhlelo okuncikwe kuzo ze-%s kodwa izokhishwa" #, fuzzy #~ msgid "%s fulfills dependencies of %s but will be kept on your system" #~ msgstr "" #~ "%s igcwalisa izinhlelo okuncikwe kuzo ze-%s kodwa izogcinwa kwisistimu " #~ "yakho" #~ msgid "No need to install %s" #~ msgstr "Asikho isidingo sokuyifaka %s" #, fuzzy #~ msgid "Cannot install %s to fulfill the dependencies of %s" #~ msgstr "Ayikwazi ukufaka %s ukuze igcwalise izinhlelo okuncikwe kuzo ze-%s" #~ msgid "Cannot install %s to fulfil the dependencies of %s" #~ msgstr "Ayikwazi ukufaka %s ukuze igcwalise izinhlelo okuncikwe kuzo ze-%s" #, fuzzy #~ msgid "%s will not be uninstalled, because it is still required" #~ msgstr "%s ayinakukhishwa ngoba isadingeka namanje" #, fuzzy #~ msgid "%s obsoletes %s. But %s cannot be deleted, because it is locked." #~ msgstr "" #~ "%s yenza ingasebenzi i-%s. Kodwa %s ayikwazi ukususwa ngoba ihluthulelwe." #, fuzzy #~ msgid "Cannot install %s, because it is conflicting" #~ msgstr "Ayikwazi ukufaka %s ngoba iyaxabana" #~ msgid "%s is uninstallable due to conflicts with %s" #~ msgstr "%s ayifakeki ngenxa yokuxabana ne- %s" #~ msgid "for requiring %s for %s when upgrading %s" #~ msgstr "ngokudinga i-%s ye-%s lapho kuvuselelwa uhlelo %s" #, fuzzy #~ msgid "%s is lacking the requirement %s" #~ msgstr "%s ilahlekelwe into edingekayo %s" #~ msgid ", Action: " #~ msgstr ", Isinyathelo:" #~ msgid ", Trigger: " #~ msgstr ", Qalisa:" #~ msgid "package" #~ msgstr "iphakheji" #~ msgid "selection" #~ msgstr "okukhethiwe" #~ msgid "pattern" #~ msgstr "iphethini" #~ msgid "product" #~ msgstr "umkhiqizo" #~ msgid "patch" #~ msgstr "isichibiyelo" #~ msgid "script" #~ msgstr "I-script" #~ msgid "message" #~ msgstr "umyalezo" #~ msgid "atom" #~ msgstr "i-athomu" #~ msgid "system" #~ msgstr "isistimu" #~ msgid "Resolvable" #~ msgstr "Isixazululi" #~ msgid "Marking this resolution attempt as invalid." #~ msgstr "Ukuphawula lomzamo we-resolution akusebenzi." #~ msgid "Marking resolvable %s as uninstallable" #~ msgstr "Ukuphawula isixazululi %s njengesingafakeki" #, fuzzy #~ msgid "" #~ "%s is scheduled to be installed, but this is impossible due to dependency " #~ "problems." #~ msgstr "" #~ "%s ihlelelwe ukuba ifakwe, kodwa lokhu akunakwenzeka ngenxa yezinkinga " #~ "zezinhlelo okuncikwe kuzo." #, fuzzy #~ msgid "" #~ "Can't install %s since it is already marked as needed to be uninstalled" #~ msgstr "Ayikwazi ukufaka i-%s njengoba isiphawulwe ukuthi idinga ukukhiswa" #, fuzzy #~ msgid "Can't install %s, because it does not apply to this system." #~ msgstr "" #~ "Ayikwazi ukufaka i-%s njengoba ingakwazi ukuyisebenzisa kule sistimu." #, fuzzy #~ msgid "" #~ "Can't install %s, because %s is already marked as needed to for " #~ "installation" #~ msgstr "" #~ "Ayikwazi ukufaka i-%s njengoba %s isiphawulwe ukuthi idinga ukukhiswa" #~ msgid "This would invalidate %s." #~ msgstr "Lokhu kuzokwenza i-%s ingasebenzi." #~ msgid "Establishing %s" #~ msgstr "Imisa %s" #~ msgid "Installing %s" #~ msgstr "Ifaka %s" #~ msgid "Updating %s to %s" #~ msgstr "Ivuselela %s kwi-%s" #~ msgid "Skipping %s: already installed" #~ msgstr "Yeqa %s: isifakiwe kakade" #, fuzzy #~ msgid "There are no alternative providers of %s installed" #~ msgstr "Abekho abanye abaphakeli abafakiwe be-%s" #~ msgid "for %s" #~ msgstr "nge-%s" #, fuzzy #~ msgid "Upgrading to %s to avoid removing %s is not possible." #~ msgstr "Ukuvuselela kwi-%s ukuze ugweme ukususa %s akunakwenzeka." #~ msgid "%s provides %s, but is scheduled to be uninstalled." #~ msgstr "%s ihlinzeka nge-%s, kodwa ihlelelwe ukuba ikhishwe." #~ msgid "%s provides %s, but another version of that %s is already installed." #~ msgstr "" #~ "%s ihlinzeka nge-%s, kodwa olunye uhlelo lwale-%s selufakiwe kakade." #~ msgid "" #~ "%s provides %s, but it is uninstallable. Try installing it on its own " #~ "for more details." #~ msgstr "" #~ "%s ihlinzeka nge-%s, kodwa ayikhipheki. Zama ukuyifaka yodwa ukuze " #~ "uthole imininingwane eyengeziwe." #~ msgid "%s provides %s, but it is locked." #~ msgstr "%s ihlinzeka nge-%s, kodwa ihluthulelwe." #~ msgid "%s provides %s, but is scheduled to be kept." #~ msgstr "%s ihlinzeka nge-%s, kodwa ihlelelwe ukuba igcinwe." #, fuzzy #~ msgid "%s provides %s, but has another vendor (%s)." #~ msgstr "%s ihlinzeka nge-%s, kodwa inobunye ubuciko bomklamo." #~ msgid "Can't satisfy requirement %s for %s" #~ msgstr "Ayikwazi ukwanelisa isidingo se-%s ye-%s" #, fuzzy #~ msgid "" #~ "%s is required by another resolvable selected for installation, so it " #~ "won't be unlinked." #~ msgstr "" #~ "%s idingwa ngesinye isixazululi esifakiwe, ngakho ngeke ingalinkeki." #, fuzzy #~ msgid "" #~ "%s is required by another installed resolvable, so it won't be unlinked." #~ msgstr "" #~ "%s idingwa ngesinye isixazululi esifakiwe, ngakho ngeke ingalinkeki." #, fuzzy #~ msgid "" #~ "A conflict over %s (%s) requires the removal of %s which is scheduled for " #~ "installation" #~ msgstr "Ingxabano nge-%s (%s) idinga ukususwa kwe-%s ezofakwa " #~ msgid "Marking %s as uninstallable due to conflicts over %s" #~ msgstr "Ukuphawula i-%s njengengafakeki ngenxa yezingxabano nge-%s" #~ msgid "from %s" #~ msgstr "ivela %s" #~ msgid " Error!" #~ msgstr "Iphutha!" #~ msgid " Important!" #~ msgstr "Kubalulekile!" #~ msgid "%s depended on %s" #~ msgstr "%s yencike kwi- %s" #, fuzzy #~ msgid "%s is recommended by %s" #~ msgstr "%s idingwa yi- %s" #, fuzzy #~ msgid "%s is suggested by %s" #~ msgstr "%s idingwa yi- %s" #, fuzzy #~ msgid "%s is enhanced by %s" #~ msgstr "%s ithathelwa indawo yi- %s" #, fuzzy #~ msgid "%s is supplemented by %s" #~ msgstr "%s idingwa yi- %s" #~ msgid "%s part of %s" #~ msgstr "%s ingxenye ye- %s" #, fuzzy #~ msgid "Double timeout" #~ msgstr "Ukuchofoza Kabili Kuphelelwe Isikhathi " #, fuzzy #~ msgid "%s is freshened by %s" #~ msgstr "%s idingwa yi- %s" #~ msgid "Unable to parse Url authority" #~ msgstr "Ayikwazi ukucaza igunya le-Url" #~ msgid "Ignore this requirement generally" #~ msgstr "Sishaye indiva lesi sidingo kaningi" #~ msgid "" #~ "%s is required by other to-be-installed resolvable, so it won't be " #~ "unlinked." #~ msgstr "" #~ "%s idingwa ngesinye isixazululi esizofakwa, ngakho ngeke ingalinkeki." #~ msgid "Cannot create a file needed to perform update installation." #~ msgstr "" #~ "Ayikwazi ukwakha ifayela edingekayo ukuze ifake uhlelo lokuvuselela." #~ msgid "Unable to restore all sources." #~ msgstr "Ayikwazi ukubuyisela yonke imithombo." #~ msgid "" #~ "At least one source already registered, stored sources cannot be restored." #~ msgstr "" #~ "Okungenani umthombo owodwa usubhalisiwe kakade, imithombo egciniwe " #~ "ayinakubuyiselwa." #~ msgid "Cannot be install %s to fulfil the dependencies of %s" #~ msgstr "Ayikwazi ukufaka %s ukze igcwalise izinhlelo okuncikwe kuzo ze%s" #~ msgid "%s dependend on %s" #~ msgstr "%s ibincike kwi- %s" #~ msgid "Reading index files" #~ msgstr "Ifuna amafayela e-index" #~ msgid "The signed repomd.xml file failed the signature check." #~ msgstr "Ifayela ye-repomd.xml esayiniwe ihlulekile lapho ihlolwa isignisha." #~ msgid "Reading product from %s" #~ msgstr "Ifunda umkhiqizo ovela kwi-%s" #~ msgid "Reading filelist from %s" #~ msgstr "Ifunda uhlu lwamafayela oluvela kwi-%s" #~ msgid "Reading packages from %s" #~ msgstr "Ifunda amaphakheji avela kwi-%s" #~ msgid "Reading selection from %s" #~ msgstr "Ifunda okukhethiwe okuvela kwi-%s" #~ msgid "Reading pattern from %s" #~ msgstr "Ifunda iphethini evela kwi-%s" #~ msgid "Reading patches index %s" #~ msgstr "Ifunda i-index %s yezichibiyelo" #~ msgid "Reading patch %s" #~ msgstr "Ifunda isichibiyelo %s" #~ msgid "The script file failed the checksum test." #~ msgstr "I-script sihlulekile lapho kwenziwa ukuhlolwa kwe-checksum." #~ msgid "Reading packages file" #~ msgstr "Ifunda ifayela yamaphakheji" #~ msgid "Reading translation: %s" #~ msgstr "Ifunda inkumusho: %s" #, fuzzy #~ msgid "" #~ "Package %s fails integrity check. Do you want to retry, or abort " #~ "installation?" #~ msgstr "" #~ "Iphakheji %s ihlulekile lapho ihlolwa ukuthembeka. Ufuna ukuphinde uzame " #~ "ukuyilanda futhi, noma uyeke ukufaka uhlelo?" #~ msgid " miss checksum." #~ msgstr "yeqe i-checksum." #~ msgid " fails checksum verification." #~ msgstr "ihlulekile lapho kufakazelwa i-checksum." #~ msgid "Downloading %s" #~ msgstr "Ilanda i-%s" libzypp-17.7.0/po/zypp.pot000066400000000000000000002512311334444677500154700ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR SuSE Linux GmbH, Nuernberg # This file is distributed under the same license as the zypp package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 msgid "Hal Exception" msgstr "" #. dubious: Throw on malformed known types, otherwise log a warning. #: zypp/CheckSum.cc:136 #, c-format, boost-format msgid "Dubious type '%s' for %u byte checksum '%s'" msgstr "" #: zypp/CountryCode.cc:50 msgid "Unknown country: " msgstr "" #. Defined CountryCode constants #. Defined LanguageCode constants #: zypp/CountryCode.cc:149 zypp/LanguageCode.cc:148 msgid "No Code" msgstr "" #: zypp/CountryCode.cc:158 msgid "Andorra" msgstr "" #. :AND:020: #: zypp/CountryCode.cc:159 msgid "United Arab Emirates" msgstr "" #. :ARE:784: #: zypp/CountryCode.cc:160 msgid "Afghanistan" msgstr "" #. :AFG:004: #: zypp/CountryCode.cc:161 msgid "Antigua and Barbuda" msgstr "" #. :ATG:028: #: zypp/CountryCode.cc:162 msgid "Anguilla" msgstr "" #. :AIA:660: #: zypp/CountryCode.cc:163 msgid "Albania" msgstr "" #. :ALB:008: #: zypp/CountryCode.cc:164 msgid "Armenia" msgstr "" #. :ARM:051: #: zypp/CountryCode.cc:165 msgid "Netherlands Antilles" msgstr "" #. :ANT:530: #: zypp/CountryCode.cc:166 msgid "Angola" msgstr "" #. :AGO:024: #: zypp/CountryCode.cc:167 msgid "Antarctica" msgstr "" #. :ATA:010: #: zypp/CountryCode.cc:168 msgid "Argentina" msgstr "" #. :ARG:032: #: zypp/CountryCode.cc:169 msgid "American Samoa" msgstr "" #. :ASM:016: #: zypp/CountryCode.cc:170 msgid "Austria" msgstr "" #. :AUT:040: #: zypp/CountryCode.cc:171 msgid "Australia" msgstr "" #. :AUS:036: #: zypp/CountryCode.cc:172 msgid "Aruba" msgstr "" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" msgstr "" #. :ALA:248: #: zypp/CountryCode.cc:174 msgid "Azerbaijan" msgstr "" #. :AZE:031: #: zypp/CountryCode.cc:175 msgid "Bosnia and Herzegovina" msgstr "" #. :BIH:070: #: zypp/CountryCode.cc:176 msgid "Barbados" msgstr "" #. :BRB:052: #: zypp/CountryCode.cc:177 msgid "Bangladesh" msgstr "" #. :BGD:050: #: zypp/CountryCode.cc:178 msgid "Belgium" msgstr "" #. :BEL:056: #: zypp/CountryCode.cc:179 msgid "Burkina Faso" msgstr "" #. :BFA:854: #: zypp/CountryCode.cc:180 msgid "Bulgaria" msgstr "" #. :BGR:100: #: zypp/CountryCode.cc:181 msgid "Bahrain" msgstr "" #. :BHR:048: #: zypp/CountryCode.cc:182 msgid "Burundi" msgstr "" #. :BDI:108: #: zypp/CountryCode.cc:183 msgid "Benin" msgstr "" #. :BEN:204: #: zypp/CountryCode.cc:184 msgid "Bermuda" msgstr "" #. :BMU:060: #: zypp/CountryCode.cc:185 msgid "Brunei Darussalam" msgstr "" #. :BRN:096: #: zypp/CountryCode.cc:186 msgid "Bolivia" msgstr "" #. :BOL:068: #: zypp/CountryCode.cc:187 msgid "Brazil" msgstr "" #. :BRA:076: #: zypp/CountryCode.cc:188 msgid "Bahamas" msgstr "" #. :BHS:044: #: zypp/CountryCode.cc:189 msgid "Bhutan" msgstr "" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" msgstr "" #. :BVT:074: #: zypp/CountryCode.cc:191 msgid "Botswana" msgstr "" #. :BWA:072: #: zypp/CountryCode.cc:192 msgid "Belarus" msgstr "" #. :BLR:112: #: zypp/CountryCode.cc:193 msgid "Belize" msgstr "" #. :BLZ:084: #: zypp/CountryCode.cc:194 msgid "Canada" msgstr "" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" msgstr "" #. :CCK:166: #. :CAF:140: #: zypp/CountryCode.cc:196 zypp/CountryCode.cc:198 msgid "Congo" msgstr "" #. :COD:180: #: zypp/CountryCode.cc:197 msgid "Central African Republic" msgstr "" #. :COG:178: #: zypp/CountryCode.cc:199 msgid "Switzerland" msgstr "" #. :CHE:756: #: zypp/CountryCode.cc:200 msgid "Cote D'Ivoire" msgstr "" #. :CIV:384: #: zypp/CountryCode.cc:201 msgid "Cook Islands" msgstr "" #. :COK:184: #: zypp/CountryCode.cc:202 msgid "Chile" msgstr "" #. :CHL:152: #: zypp/CountryCode.cc:203 msgid "Cameroon" msgstr "" #. :CMR:120: #: zypp/CountryCode.cc:204 msgid "China" msgstr "" #. :CHN:156: #: zypp/CountryCode.cc:205 msgid "Colombia" msgstr "" #. :COL:170: #: zypp/CountryCode.cc:206 msgid "Costa Rica" msgstr "" #. :CRI:188: #: zypp/CountryCode.cc:207 msgid "Cuba" msgstr "" #. :CUB:192: #: zypp/CountryCode.cc:208 msgid "Cape Verde" msgstr "" #. :CPV:132: #: zypp/CountryCode.cc:209 msgid "Christmas Island" msgstr "" #. :CXR:162: #: zypp/CountryCode.cc:210 msgid "Cyprus" msgstr "" #. :CYP:196: #: zypp/CountryCode.cc:211 msgid "Czech Republic" msgstr "" #. :CZE:203: #: zypp/CountryCode.cc:212 msgid "Germany" msgstr "" #. :DEU:276: #: zypp/CountryCode.cc:213 msgid "Djibouti" msgstr "" #. :DJI:262: #: zypp/CountryCode.cc:214 msgid "Denmark" msgstr "" #. :DNK:208: #: zypp/CountryCode.cc:215 msgid "Dominica" msgstr "" #. :DMA:212: #: zypp/CountryCode.cc:216 msgid "Dominican Republic" msgstr "" #. :DOM:214: #: zypp/CountryCode.cc:217 msgid "Algeria" msgstr "" #. :DZA:012: #: zypp/CountryCode.cc:218 msgid "Ecuador" msgstr "" #. :ECU:218: #: zypp/CountryCode.cc:219 msgid "Estonia" msgstr "" #. :EST:233: #: zypp/CountryCode.cc:220 msgid "Egypt" msgstr "" #. :EGY:818: #: zypp/CountryCode.cc:221 msgid "Western Sahara" msgstr "" #. :ESH:732: #: zypp/CountryCode.cc:222 msgid "Eritrea" msgstr "" #. :ERI:232: #: zypp/CountryCode.cc:223 msgid "Spain" msgstr "" #. :ESP:724: #: zypp/CountryCode.cc:224 msgid "Ethiopia" msgstr "" #. :ETH:231: #: zypp/CountryCode.cc:225 msgid "Finland" msgstr "" #. :FIN:246: #: zypp/CountryCode.cc:226 msgid "Fiji" msgstr "" #. :FJI:242: #: zypp/CountryCode.cc:227 msgid "Falkland Islands (Malvinas)" msgstr "" #. :FLK:238: #: zypp/CountryCode.cc:228 msgid "Federated States of Micronesia" msgstr "" #. :FSM:583: #: zypp/CountryCode.cc:229 msgid "Faroe Islands" msgstr "" #. :FRO:234: #: zypp/CountryCode.cc:230 msgid "France" msgstr "" #. :FRA:250: #: zypp/CountryCode.cc:231 msgid "Metropolitan France" msgstr "" #. :FXX:249: #: zypp/CountryCode.cc:232 msgid "Gabon" msgstr "" #. :GAB:266: #: zypp/CountryCode.cc:233 msgid "United Kingdom" msgstr "" #. :GBR:826: #: zypp/CountryCode.cc:234 msgid "Grenada" msgstr "" #. :GRD:308: #: zypp/CountryCode.cc:235 msgid "Georgia" msgstr "" #. :GEO:268: #: zypp/CountryCode.cc:236 msgid "French Guiana" msgstr "" #. :GUF:254: #: zypp/CountryCode.cc:237 msgid "Guernsey" msgstr "" #: zypp/CountryCode.cc:238 msgid "Ghana" msgstr "" #. :GHA:288: #: zypp/CountryCode.cc:239 msgid "Gibraltar" msgstr "" #. :GIB:292: #: zypp/CountryCode.cc:240 msgid "Greenland" msgstr "" #. :GRL:304: #: zypp/CountryCode.cc:241 msgid "Gambia" msgstr "" #. :GMB:270: #: zypp/CountryCode.cc:242 msgid "Guinea" msgstr "" #. :GIN:324: #: zypp/CountryCode.cc:243 msgid "Guadeloupe" msgstr "" #. :GLP:312: #: zypp/CountryCode.cc:244 msgid "Equatorial Guinea" msgstr "" #. :GNQ:226: #: zypp/CountryCode.cc:245 msgid "Greece" msgstr "" #. :GRC:300: #: zypp/CountryCode.cc:246 msgid "South Georgia and the South Sandwich Islands" msgstr "" #. :SGS:239: #: zypp/CountryCode.cc:247 msgid "Guatemala" msgstr "" #. :GTM:320: #: zypp/CountryCode.cc:248 msgid "Guam" msgstr "" #. :GUM:316: #: zypp/CountryCode.cc:249 msgid "Guinea-Bissau" msgstr "" #. :GNB:624: #: zypp/CountryCode.cc:250 msgid "Guyana" msgstr "" #. :GUY:328: #: zypp/CountryCode.cc:251 msgid "Hong Kong" msgstr "" #. :HKG:344: #: zypp/CountryCode.cc:252 msgid "Heard Island and McDonald Islands" msgstr "" #. :HMD:334: #: zypp/CountryCode.cc:253 msgid "Honduras" msgstr "" #. :HND:340: #: zypp/CountryCode.cc:254 msgid "Croatia" msgstr "" #. :HRV:191: #: zypp/CountryCode.cc:255 msgid "Haiti" msgstr "" #. :HTI:332: #: zypp/CountryCode.cc:256 msgid "Hungary" msgstr "" #. :HUN:348: #: zypp/CountryCode.cc:257 msgid "Indonesia" msgstr "" #. :IDN:360: #: zypp/CountryCode.cc:258 msgid "Ireland" msgstr "" #. :IRL:372: #: zypp/CountryCode.cc:259 msgid "Israel" msgstr "" #. :ISR:376: #: zypp/CountryCode.cc:260 msgid "Isle of Man" msgstr "" #: zypp/CountryCode.cc:261 msgid "India" msgstr "" #. :IND:356: #: zypp/CountryCode.cc:262 msgid "British Indian Ocean Territory" msgstr "" #. :IOT:086: #: zypp/CountryCode.cc:263 msgid "Iraq" msgstr "" #. :IRQ:368: #: zypp/CountryCode.cc:264 msgid "Iran" msgstr "" #. :IRN:364: #: zypp/CountryCode.cc:265 msgid "Iceland" msgstr "" #. :ISL:352: #: zypp/CountryCode.cc:266 msgid "Italy" msgstr "" #. :ITA:380: #: zypp/CountryCode.cc:267 msgid "Jersey" msgstr "" #: zypp/CountryCode.cc:268 msgid "Jamaica" msgstr "" #. :JAM:388: #: zypp/CountryCode.cc:269 msgid "Jordan" msgstr "" #. :JOR:400: #: zypp/CountryCode.cc:270 msgid "Japan" msgstr "" #. :JPN:392: #: zypp/CountryCode.cc:271 msgid "Kenya" msgstr "" #. :KEN:404: #: zypp/CountryCode.cc:272 msgid "Kyrgyzstan" msgstr "" #. :KGZ:417: #: zypp/CountryCode.cc:273 msgid "Cambodia" msgstr "" #. :KHM:116: #: zypp/CountryCode.cc:274 msgid "Kiribati" msgstr "" #. :KIR:296: #: zypp/CountryCode.cc:275 msgid "Comoros" msgstr "" #. :COM:174: #: zypp/CountryCode.cc:276 msgid "Saint Kitts and Nevis" msgstr "" #. :KNA:659: #: zypp/CountryCode.cc:277 msgid "North Korea" msgstr "" #. :PRK:408: #: zypp/CountryCode.cc:278 msgid "South Korea" msgstr "" #. :KOR:410: #: zypp/CountryCode.cc:279 msgid "Kuwait" msgstr "" #. :KWT:414: #: zypp/CountryCode.cc:280 msgid "Cayman Islands" msgstr "" #. :CYM:136: #: zypp/CountryCode.cc:281 msgid "Kazakhstan" msgstr "" #. :KAZ:398: #: zypp/CountryCode.cc:282 msgid "Lao People's Democratic Republic" msgstr "" #. :LAO:418: #: zypp/CountryCode.cc:283 msgid "Lebanon" msgstr "" #. :LBN:422: #: zypp/CountryCode.cc:284 msgid "Saint Lucia" msgstr "" #. :LCA:662: #: zypp/CountryCode.cc:285 msgid "Liechtenstein" msgstr "" #. :LIE:438: #: zypp/CountryCode.cc:286 msgid "Sri Lanka" msgstr "" #. :LKA:144: #: zypp/CountryCode.cc:287 msgid "Liberia" msgstr "" #. :LBR:430: #: zypp/CountryCode.cc:288 msgid "Lesotho" msgstr "" #. :LSO:426: #: zypp/CountryCode.cc:289 msgid "Lithuania" msgstr "" #. :LTU:440: #: zypp/CountryCode.cc:290 msgid "Luxembourg" msgstr "" #. :LUX:442: #: zypp/CountryCode.cc:291 msgid "Latvia" msgstr "" #. :LVA:428: #: zypp/CountryCode.cc:292 msgid "Libya" msgstr "" #. :LBY:434: #: zypp/CountryCode.cc:293 msgid "Morocco" msgstr "" #. :MAR:504: #: zypp/CountryCode.cc:294 msgid "Monaco" msgstr "" #. :MCO:492: #: zypp/CountryCode.cc:295 msgid "Moldova" msgstr "" #. :MDA:498: #: zypp/CountryCode.cc:296 msgid "Montenegro" msgstr "" #: zypp/CountryCode.cc:297 msgid "Saint Martin" msgstr "" #: zypp/CountryCode.cc:298 msgid "Madagascar" msgstr "" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" msgstr "" #. :MHL:584: #: zypp/CountryCode.cc:300 msgid "Macedonia" msgstr "" #. :MKD:807: #: zypp/CountryCode.cc:301 msgid "Mali" msgstr "" #. :MLI:466: #: zypp/CountryCode.cc:302 msgid "Myanmar" msgstr "" #. :MMR:104: #: zypp/CountryCode.cc:303 msgid "Mongolia" msgstr "" #. :MNG:496: #: zypp/CountryCode.cc:304 msgid "Macao" msgstr "" #. :MAC:446: #: zypp/CountryCode.cc:305 msgid "Northern Mariana Islands" msgstr "" #. :MNP:580: #: zypp/CountryCode.cc:306 msgid "Martinique" msgstr "" #. :MTQ:474: #: zypp/CountryCode.cc:307 msgid "Mauritania" msgstr "" #. :MRT:478: #: zypp/CountryCode.cc:308 msgid "Montserrat" msgstr "" #. :MSR:500: #: zypp/CountryCode.cc:309 msgid "Malta" msgstr "" #. :MLT:470: #: zypp/CountryCode.cc:310 msgid "Mauritius" msgstr "" #. :MUS:480: #: zypp/CountryCode.cc:311 msgid "Maldives" msgstr "" #. :MDV:462: #: zypp/CountryCode.cc:312 msgid "Malawi" msgstr "" #. :MWI:454: #: zypp/CountryCode.cc:313 msgid "Mexico" msgstr "" #. :MEX:484: #: zypp/CountryCode.cc:314 msgid "Malaysia" msgstr "" #. :MYS:458: #: zypp/CountryCode.cc:315 msgid "Mozambique" msgstr "" #. :MOZ:508: #: zypp/CountryCode.cc:316 msgid "Namibia" msgstr "" #. :NAM:516: #: zypp/CountryCode.cc:317 msgid "New Caledonia" msgstr "" #. :NCL:540: #: zypp/CountryCode.cc:318 msgid "Niger" msgstr "" #. :NER:562: #: zypp/CountryCode.cc:319 msgid "Norfolk Island" msgstr "" #. :NFK:574: #: zypp/CountryCode.cc:320 msgid "Nigeria" msgstr "" #. :NGA:566: #: zypp/CountryCode.cc:321 msgid "Nicaragua" msgstr "" #. :NIC:558: #: zypp/CountryCode.cc:322 msgid "Netherlands" msgstr "" #. :NLD:528: #: zypp/CountryCode.cc:323 msgid "Norway" msgstr "" #. :NOR:578: #: zypp/CountryCode.cc:324 msgid "Nepal" msgstr "" #. :NPL:524: #. language code: nau na #: zypp/CountryCode.cc:325 zypp/LanguageCode.cc:781 msgid "Nauru" msgstr "" #. :NRU:520: #: zypp/CountryCode.cc:326 msgid "Niue" msgstr "" #. :NIU:570: #: zypp/CountryCode.cc:327 msgid "New Zealand" msgstr "" #. :NZL:554: #: zypp/CountryCode.cc:328 msgid "Oman" msgstr "" #. :OMN:512: #: zypp/CountryCode.cc:329 msgid "Panama" msgstr "" #. :PAN:591: #: zypp/CountryCode.cc:330 msgid "Peru" msgstr "" #. :PER:604: #: zypp/CountryCode.cc:331 msgid "French Polynesia" msgstr "" #. :PYF:258: #: zypp/CountryCode.cc:332 msgid "Papua New Guinea" msgstr "" #. :PNG:598: #: zypp/CountryCode.cc:333 msgid "Philippines" msgstr "" #. :PHL:608: #: zypp/CountryCode.cc:334 msgid "Pakistan" msgstr "" #. :PAK:586: #: zypp/CountryCode.cc:335 msgid "Poland" msgstr "" #. :POL:616: #: zypp/CountryCode.cc:336 msgid "Saint Pierre and Miquelon" msgstr "" #. :SPM:666: #: zypp/CountryCode.cc:337 msgid "Pitcairn" msgstr "" #. :PCN:612: #: zypp/CountryCode.cc:338 msgid "Puerto Rico" msgstr "" #. :PRI:630: #: zypp/CountryCode.cc:339 msgid "Palestinian Territory" msgstr "" #. :PSE:275: #: zypp/CountryCode.cc:340 msgid "Portugal" msgstr "" #. :PRT:620: #: zypp/CountryCode.cc:341 msgid "Palau" msgstr "" #. :PLW:585: #: zypp/CountryCode.cc:342 msgid "Paraguay" msgstr "" #. :PRY:600: #: zypp/CountryCode.cc:343 msgid "Qatar" msgstr "" #. :QAT:634: #: zypp/CountryCode.cc:344 msgid "Reunion" msgstr "" #. :REU:638: #: zypp/CountryCode.cc:345 msgid "Romania" msgstr "" #. :ROU:642: #: zypp/CountryCode.cc:346 msgid "Serbia" msgstr "" #: zypp/CountryCode.cc:347 msgid "Russian Federation" msgstr "" #. :RUS:643: #: zypp/CountryCode.cc:348 msgid "Rwanda" msgstr "" #. :RWA:646: #: zypp/CountryCode.cc:349 msgid "Saudi Arabia" msgstr "" #. :SAU:682: #: zypp/CountryCode.cc:350 msgid "Solomon Islands" msgstr "" #. :SLB:090: #: zypp/CountryCode.cc:351 msgid "Seychelles" msgstr "" #. :SYC:690: #: zypp/CountryCode.cc:352 msgid "Sudan" msgstr "" #. :SDN:736: #: zypp/CountryCode.cc:353 msgid "Sweden" msgstr "" #. :SWE:752: #: zypp/CountryCode.cc:354 msgid "Singapore" msgstr "" #. :SGP:702: #: zypp/CountryCode.cc:355 msgid "Saint Helena" msgstr "" #. :SHN:654: #: zypp/CountryCode.cc:356 msgid "Slovenia" msgstr "" #. :SVN:705: #: zypp/CountryCode.cc:357 msgid "Svalbard and Jan Mayen" msgstr "" #. :SJM:744: #: zypp/CountryCode.cc:358 msgid "Slovakia" msgstr "" #. :SVK:703: #: zypp/CountryCode.cc:359 msgid "Sierra Leone" msgstr "" #. :SLE:694: #: zypp/CountryCode.cc:360 msgid "San Marino" msgstr "" #. :SMR:674: #: zypp/CountryCode.cc:361 msgid "Senegal" msgstr "" #. :SEN:686: #: zypp/CountryCode.cc:362 msgid "Somalia" msgstr "" #. :SOM:706: #: zypp/CountryCode.cc:363 msgid "Suriname" msgstr "" #. :SUR:740: #: zypp/CountryCode.cc:364 msgid "Sao Tome and Principe" msgstr "" #. :STP:678: #: zypp/CountryCode.cc:365 msgid "El Salvador" msgstr "" #. :SLV:222: #: zypp/CountryCode.cc:366 msgid "Syria" msgstr "" #. :SYR:760: #: zypp/CountryCode.cc:367 msgid "Swaziland" msgstr "" #. :SWZ:748: #: zypp/CountryCode.cc:368 msgid "Turks and Caicos Islands" msgstr "" #. :TCA:796: #: zypp/CountryCode.cc:369 msgid "Chad" msgstr "" #. :TCD:148: #: zypp/CountryCode.cc:370 msgid "French Southern Territories" msgstr "" #. :ATF:260: #: zypp/CountryCode.cc:371 msgid "Togo" msgstr "" #. :TGO:768: #: zypp/CountryCode.cc:372 msgid "Thailand" msgstr "" #. :THA:764: #: zypp/CountryCode.cc:373 msgid "Tajikistan" msgstr "" #. :TJK:762: #. language code: tkl #: zypp/CountryCode.cc:374 zypp/LanguageCode.cc:1045 msgid "Tokelau" msgstr "" #. :TKL:772: #: zypp/CountryCode.cc:375 msgid "Turkmenistan" msgstr "" #. :TKM:795: #: zypp/CountryCode.cc:376 msgid "Tunisia" msgstr "" #. :TUN:788: #: zypp/CountryCode.cc:377 msgid "Tonga" msgstr "" #. :TON:776: #: zypp/CountryCode.cc:378 msgid "East Timor" msgstr "" #. :TLS:626: #: zypp/CountryCode.cc:379 msgid "Turkey" msgstr "" #. :TUR:792: #: zypp/CountryCode.cc:380 msgid "Trinidad and Tobago" msgstr "" #. :TTO:780: #. language code: tvl #: zypp/CountryCode.cc:381 zypp/LanguageCode.cc:1075 msgid "Tuvalu" msgstr "" #. :TUV:798: #: zypp/CountryCode.cc:382 msgid "Taiwan" msgstr "" #. :TWN:158: #: zypp/CountryCode.cc:383 msgid "Tanzania" msgstr "" #. :TZA:834: #: zypp/CountryCode.cc:384 msgid "Ukraine" msgstr "" #. :UKR:804: #: zypp/CountryCode.cc:385 msgid "Uganda" msgstr "" #. :UGA:800: #: zypp/CountryCode.cc:386 msgid "United States Minor Outlying Islands" msgstr "" #. :UMI:581: #: zypp/CountryCode.cc:387 msgid "United States" msgstr "" #. :USA:840: #: zypp/CountryCode.cc:388 msgid "Uruguay" msgstr "" #. :URY:858: #: zypp/CountryCode.cc:389 msgid "Uzbekistan" msgstr "" #. :UZB:860: #: zypp/CountryCode.cc:390 msgid "Holy See (Vatican City State)" msgstr "" #. :VAT:336: #: zypp/CountryCode.cc:391 msgid "Saint Vincent and the Grenadines" msgstr "" #. :VCT:670: #: zypp/CountryCode.cc:392 msgid "Venezuela" msgstr "" #. :VEN:862: #: zypp/CountryCode.cc:393 msgid "British Virgin Islands" msgstr "" #. :VGB:092: #: zypp/CountryCode.cc:394 msgid "Virgin Islands, U.S." msgstr "" #. :VIR:850: #: zypp/CountryCode.cc:395 msgid "Vietnam" msgstr "" #. :VNM:704: #: zypp/CountryCode.cc:396 msgid "Vanuatu" msgstr "" #. :VUT:548: #: zypp/CountryCode.cc:397 msgid "Wallis and Futuna" msgstr "" #. :WLF:876: #: zypp/CountryCode.cc:398 msgid "Samoa" msgstr "" #. :WSM:882: #: zypp/CountryCode.cc:399 msgid "Yemen" msgstr "" #. :YEM:887: #: zypp/CountryCode.cc:400 msgid "Mayotte" msgstr "" #. :MYT:175: #: zypp/CountryCode.cc:401 msgid "South Africa" msgstr "" #. :ZAF:710: #: zypp/CountryCode.cc:402 msgid "Zambia" msgstr "" #. :ZMB:894: #: zypp/CountryCode.cc:403 msgid "Zimbabwe" msgstr "" #: zypp/Dep.cc:96 msgid "Provides" msgstr "" #: zypp/Dep.cc:97 msgid "Prerequires" msgstr "" #: zypp/Dep.cc:98 msgid "Requires" msgstr "" #: zypp/Dep.cc:99 msgid "Conflicts" msgstr "" #: zypp/Dep.cc:100 msgid "Obsoletes" msgstr "" #: zypp/Dep.cc:101 msgid "Recommends" msgstr "" #: zypp/Dep.cc:102 msgid "Suggests" msgstr "" #: zypp/Dep.cc:103 msgid "Enhances" msgstr "" #: zypp/Dep.cc:104 msgid "Supplements" msgstr "" #: zypp/ExternalProgram.cc:268 #, c-format, boost-format msgid "Can't open pty (%s)." msgstr "" #: zypp/ExternalProgram.cc:279 #, c-format, boost-format msgid "Can't open pipe (%s)." msgstr "" #: zypp/ExternalProgram.cc:362 #, c-format, boost-format msgid "Can't chroot to '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:372 #, c-format, boost-format msgid "Can't chdir to '%s' inside chroot '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:373 #, c-format, boost-format msgid "Can't chdir to '%s' (%s)." msgstr "" #. don't want to get here #: zypp/ExternalProgram.cc:385 #, c-format, boost-format msgid "Can't exec '%s' (%s)." msgstr "" #: zypp/ExternalProgram.cc:393 #, c-format, boost-format msgid "Can't fork (%s)." msgstr "" #: zypp/ExternalProgram.cc:519 #, c-format, boost-format msgid "Command exited with status %d." msgstr "" #: zypp/ExternalProgram.cc:539 #, c-format, boost-format msgid "Command was killed by signal %d (%s)." msgstr "" #: zypp/ExternalProgram.cc:544 msgid "Command exited with unknown error." msgstr "" #. TranslatorExplanation first %s is key name, second is keyring name #: zypp/KeyRing.cc:536 #, c-format, boost-format msgid "Tried to import not existent key %s into keyring %s" msgstr "" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 msgid "Failed to import key." msgstr "" #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." msgstr "" #: zypp/KeyRing.cc:570 #, c-format, boost-format msgid "Signature file %s not found" msgstr "" #: zypp/LanguageCode.cc:49 msgid "Unknown language: " msgstr "" #. language code: aar aa #: zypp/LanguageCode.cc:161 msgid "Afar" msgstr "" #. language code: abk ab #: zypp/LanguageCode.cc:163 msgid "Abkhazian" msgstr "" #. language code: ace #: zypp/LanguageCode.cc:165 msgid "Achinese" msgstr "" #. language code: ach #: zypp/LanguageCode.cc:167 msgid "Acoli" msgstr "" #. language code: ada #: zypp/LanguageCode.cc:169 msgid "Adangme" msgstr "" #. language code: ady #: zypp/LanguageCode.cc:171 msgid "Adyghe" msgstr "" #. language code: afa #: zypp/LanguageCode.cc:173 msgid "Afro-Asiatic (Other)" msgstr "" #. language code: afh #: zypp/LanguageCode.cc:175 msgid "Afrihili" msgstr "" #. language code: afr af #: zypp/LanguageCode.cc:177 msgid "Afrikaans" msgstr "" #. language code: ain #: zypp/LanguageCode.cc:179 msgid "Ainu" msgstr "" #. language code: aka ak #: zypp/LanguageCode.cc:181 msgid "Akan" msgstr "" #. language code: akk #: zypp/LanguageCode.cc:183 msgid "Akkadian" msgstr "" #. language code: alb sqi sq #: zypp/LanguageCode.cc:185 zypp/LanguageCode.cc:187 msgid "Albanian" msgstr "" #. language code: ale #: zypp/LanguageCode.cc:189 msgid "Aleut" msgstr "" #. language code: alg #: zypp/LanguageCode.cc:191 msgid "Algonquian Languages" msgstr "" #. language code: alt #: zypp/LanguageCode.cc:193 msgid "Southern Altai" msgstr "" #. language code: amh am #: zypp/LanguageCode.cc:195 msgid "Amharic" msgstr "" #. language code: ang #: zypp/LanguageCode.cc:197 msgid "English, Old (ca.450-1100)" msgstr "" #. language code: apa #: zypp/LanguageCode.cc:199 msgid "Apache Languages" msgstr "" #. language code: ara ar #: zypp/LanguageCode.cc:201 msgid "Arabic" msgstr "" #. language code: arc #: zypp/LanguageCode.cc:203 msgid "Aramaic" msgstr "" #. language code: arg an #: zypp/LanguageCode.cc:205 msgid "Aragonese" msgstr "" #. language code: arm hye hy #: zypp/LanguageCode.cc:207 zypp/LanguageCode.cc:209 msgid "Armenian" msgstr "" #. language code: arn #: zypp/LanguageCode.cc:211 msgid "Araucanian" msgstr "" #. language code: arp #: zypp/LanguageCode.cc:213 msgid "Arapaho" msgstr "" #. language code: art #: zypp/LanguageCode.cc:215 msgid "Artificial (Other)" msgstr "" #. language code: arw #: zypp/LanguageCode.cc:217 msgid "Arawak" msgstr "" #. language code: asm as #: zypp/LanguageCode.cc:219 msgid "Assamese" msgstr "" #. language code: ast #: zypp/LanguageCode.cc:221 msgid "Asturian" msgstr "" #. language code: ath #: zypp/LanguageCode.cc:223 msgid "Athapascan Languages" msgstr "" #. language code: aus #: zypp/LanguageCode.cc:225 msgid "Australian Languages" msgstr "" #. language code: ava av #: zypp/LanguageCode.cc:227 msgid "Avaric" msgstr "" #. language code: ave ae #: zypp/LanguageCode.cc:229 msgid "Avestan" msgstr "" #. language code: awa #: zypp/LanguageCode.cc:231 msgid "Awadhi" msgstr "" #. language code: aym ay #: zypp/LanguageCode.cc:233 msgid "Aymara" msgstr "" #. language code: aze az #: zypp/LanguageCode.cc:235 msgid "Azerbaijani" msgstr "" #. language code: bad #: zypp/LanguageCode.cc:237 msgid "Banda" msgstr "" #. language code: bai #: zypp/LanguageCode.cc:239 msgid "Bamileke Languages" msgstr "" #. language code: bak ba #: zypp/LanguageCode.cc:241 msgid "Bashkir" msgstr "" #. language code: bal #: zypp/LanguageCode.cc:243 msgid "Baluchi" msgstr "" #. language code: bam bm #: zypp/LanguageCode.cc:245 msgid "Bambara" msgstr "" #. language code: ban #: zypp/LanguageCode.cc:247 msgid "Balinese" msgstr "" #. language code: baq eus eu #: zypp/LanguageCode.cc:249 zypp/LanguageCode.cc:251 msgid "Basque" msgstr "" #. language code: bas #: zypp/LanguageCode.cc:253 msgid "Basa" msgstr "" #. language code: bat #: zypp/LanguageCode.cc:255 msgid "Baltic (Other)" msgstr "" #. language code: bej #: zypp/LanguageCode.cc:257 msgid "Beja" msgstr "" #. language code: bel be #: zypp/LanguageCode.cc:259 msgid "Belarusian" msgstr "" #. language code: bem #: zypp/LanguageCode.cc:261 msgid "Bemba" msgstr "" #. language code: ben bn #: zypp/LanguageCode.cc:263 msgid "Bengali" msgstr "" #. language code: ber #: zypp/LanguageCode.cc:265 msgid "Berber (Other)" msgstr "" #. language code: bho #: zypp/LanguageCode.cc:267 msgid "Bhojpuri" msgstr "" #. language code: bih bh #: zypp/LanguageCode.cc:269 msgid "Bihari" msgstr "" #. language code: bik #: zypp/LanguageCode.cc:271 msgid "Bikol" msgstr "" #. language code: bin #: zypp/LanguageCode.cc:273 msgid "Bini" msgstr "" #. language code: bis bi #: zypp/LanguageCode.cc:275 msgid "Bislama" msgstr "" #. language code: bla #: zypp/LanguageCode.cc:277 msgid "Siksika" msgstr "" #. language code: bnt #: zypp/LanguageCode.cc:279 msgid "Bantu (Other)" msgstr "" #. language code: bos bs #: zypp/LanguageCode.cc:281 msgid "Bosnian" msgstr "" #. language code: bra #: zypp/LanguageCode.cc:283 msgid "Braj" msgstr "" #. language code: bre br #: zypp/LanguageCode.cc:285 msgid "Breton" msgstr "" #. language code: btk #: zypp/LanguageCode.cc:287 msgid "Batak (Indonesia)" msgstr "" #. language code: bua #: zypp/LanguageCode.cc:289 msgid "Buriat" msgstr "" #. language code: bug #: zypp/LanguageCode.cc:291 msgid "Buginese" msgstr "" #. language code: bul bg #: zypp/LanguageCode.cc:293 msgid "Bulgarian" msgstr "" #. language code: bur mya my #: zypp/LanguageCode.cc:295 zypp/LanguageCode.cc:297 msgid "Burmese" msgstr "" #. language code: byn #: zypp/LanguageCode.cc:299 msgid "Blin" msgstr "" #. language code: cad #: zypp/LanguageCode.cc:301 msgid "Caddo" msgstr "" #. language code: cai #: zypp/LanguageCode.cc:303 msgid "Central American Indian (Other)" msgstr "" #. language code: car #: zypp/LanguageCode.cc:305 msgid "Carib" msgstr "" #. language code: cat ca #: zypp/LanguageCode.cc:307 msgid "Catalan" msgstr "" #. language code: cau #: zypp/LanguageCode.cc:309 msgid "Caucasian (Other)" msgstr "" #. language code: ceb #: zypp/LanguageCode.cc:311 msgid "Cebuano" msgstr "" #. language code: cel #: zypp/LanguageCode.cc:313 msgid "Celtic (Other)" msgstr "" #. language code: cha ch #: zypp/LanguageCode.cc:315 msgid "Chamorro" msgstr "" #. language code: chb #: zypp/LanguageCode.cc:317 msgid "Chibcha" msgstr "" #. language code: che ce #: zypp/LanguageCode.cc:319 msgid "Chechen" msgstr "" #. language code: chg #: zypp/LanguageCode.cc:321 msgid "Chagatai" msgstr "" #. language code: chi zho zh #: zypp/LanguageCode.cc:323 zypp/LanguageCode.cc:325 msgid "Chinese" msgstr "" #. language code: chk #: zypp/LanguageCode.cc:327 msgid "Chuukese" msgstr "" #. language code: chm #: zypp/LanguageCode.cc:329 msgid "Mari" msgstr "" #. language code: chn #: zypp/LanguageCode.cc:331 msgid "Chinook Jargon" msgstr "" #. language code: cho #: zypp/LanguageCode.cc:333 msgid "Choctaw" msgstr "" #. language code: chp #: zypp/LanguageCode.cc:335 msgid "Chipewyan" msgstr "" #. language code: chr #: zypp/LanguageCode.cc:337 msgid "Cherokee" msgstr "" #. language code: chu cu #: zypp/LanguageCode.cc:339 msgid "Church Slavic" msgstr "" #. language code: chv cv #: zypp/LanguageCode.cc:341 msgid "Chuvash" msgstr "" #. language code: chy #: zypp/LanguageCode.cc:343 msgid "Cheyenne" msgstr "" #. language code: cmc #: zypp/LanguageCode.cc:345 msgid "Chamic Languages" msgstr "" #. language code: cop #: zypp/LanguageCode.cc:347 msgid "Coptic" msgstr "" #. language code: cor kw #: zypp/LanguageCode.cc:349 msgid "Cornish" msgstr "" #. language code: cos co #: zypp/LanguageCode.cc:351 msgid "Corsican" msgstr "" #. language code: cpe #: zypp/LanguageCode.cc:353 msgid "Creoles and Pidgins, English-Based (Other)" msgstr "" #. language code: cpf #: zypp/LanguageCode.cc:355 msgid "Creoles and Pidgins, French-Based (Other)" msgstr "" #. language code: cpp #: zypp/LanguageCode.cc:357 msgid "Creoles and Pidgins, Portuguese-Based (Other)" msgstr "" #. language code: cre cr #: zypp/LanguageCode.cc:359 msgid "Cree" msgstr "" #. language code: crh #: zypp/LanguageCode.cc:361 msgid "Crimean Tatar" msgstr "" #. language code: crp #: zypp/LanguageCode.cc:363 msgid "Creoles and Pidgins (Other)" msgstr "" #. language code: csb #: zypp/LanguageCode.cc:365 msgid "Kashubian" msgstr "" #. language code: cus #: zypp/LanguageCode.cc:367 msgid "Cushitic (Other)" msgstr "" #. language code: cze ces cs #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371 msgid "Czech" msgstr "" #. language code: dak #: zypp/LanguageCode.cc:373 msgid "Dakota" msgstr "" #. language code: dan da #: zypp/LanguageCode.cc:375 msgid "Danish" msgstr "" #. language code: dar #: zypp/LanguageCode.cc:377 msgid "Dargwa" msgstr "" #. language code: day #: zypp/LanguageCode.cc:379 msgid "Dayak" msgstr "" #. language code: del #: zypp/LanguageCode.cc:381 msgid "Delaware" msgstr "" #. language code: den #: zypp/LanguageCode.cc:383 msgid "Slave (Athapascan)" msgstr "" #. language code: dgr #: zypp/LanguageCode.cc:385 msgid "Dogrib" msgstr "" #. language code: din #: zypp/LanguageCode.cc:387 msgid "Dinka" msgstr "" #. language code: div dv #: zypp/LanguageCode.cc:389 msgid "Divehi" msgstr "" #. language code: doi #: zypp/LanguageCode.cc:391 msgid "Dogri" msgstr "" #. language code: dra #: zypp/LanguageCode.cc:393 msgid "Dravidian (Other)" msgstr "" #. language code: dsb #: zypp/LanguageCode.cc:395 msgid "Lower Sorbian" msgstr "" #. language code: dua #: zypp/LanguageCode.cc:397 msgid "Duala" msgstr "" #. language code: dum #: zypp/LanguageCode.cc:399 msgid "Dutch, Middle (ca.1050-1350)" msgstr "" #. language code: dut nld nl #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403 msgid "Dutch" msgstr "" #. language code: dyu #: zypp/LanguageCode.cc:405 msgid "Dyula" msgstr "" #. language code: dzo dz #: zypp/LanguageCode.cc:407 msgid "Dzongkha" msgstr "" #. language code: efi #: zypp/LanguageCode.cc:409 msgid "Efik" msgstr "" #. language code: egy #: zypp/LanguageCode.cc:411 msgid "Egyptian (Ancient)" msgstr "" #. language code: eka #: zypp/LanguageCode.cc:413 msgid "Ekajuk" msgstr "" #. language code: elx #: zypp/LanguageCode.cc:415 msgid "Elamite" msgstr "" #. language code: eng en #: zypp/LanguageCode.cc:417 msgid "English" msgstr "" #. language code: enm #: zypp/LanguageCode.cc:419 msgid "English, Middle (1100-1500)" msgstr "" #. language code: epo eo #: zypp/LanguageCode.cc:421 msgid "Esperanto" msgstr "" #. language code: est et #: zypp/LanguageCode.cc:423 msgid "Estonian" msgstr "" #. language code: ewe ee #: zypp/LanguageCode.cc:425 msgid "Ewe" msgstr "" #. language code: ewo #: zypp/LanguageCode.cc:427 msgid "Ewondo" msgstr "" #. language code: fan #: zypp/LanguageCode.cc:429 msgid "Fang" msgstr "" #. language code: fao fo #: zypp/LanguageCode.cc:431 msgid "Faroese" msgstr "" #. language code: fat #: zypp/LanguageCode.cc:433 msgid "Fanti" msgstr "" #. language code: fij fj #: zypp/LanguageCode.cc:435 msgid "Fijian" msgstr "" #. language code: fil #: zypp/LanguageCode.cc:437 msgid "Filipino" msgstr "" #. language code: fin fi #: zypp/LanguageCode.cc:439 msgid "Finnish" msgstr "" #. language code: fiu #: zypp/LanguageCode.cc:441 msgid "Finno-Ugrian (Other)" msgstr "" #. language code: fon #: zypp/LanguageCode.cc:443 msgid "Fon" msgstr "" #. language code: fre fra fr #: zypp/LanguageCode.cc:445 zypp/LanguageCode.cc:447 msgid "French" msgstr "" #. language code: frm #: zypp/LanguageCode.cc:449 msgid "French, Middle (ca.1400-1600)" msgstr "" #. language code: fro #: zypp/LanguageCode.cc:451 msgid "French, Old (842-ca.1400)" msgstr "" #. language code: fry fy #: zypp/LanguageCode.cc:453 msgid "Frisian" msgstr "" #. language code: ful ff #: zypp/LanguageCode.cc:455 msgid "Fulah" msgstr "" #. language code: fur #: zypp/LanguageCode.cc:457 msgid "Friulian" msgstr "" #. language code: gaa #: zypp/LanguageCode.cc:459 msgid "Ga" msgstr "" #. language code: gay #: zypp/LanguageCode.cc:461 msgid "Gayo" msgstr "" #. language code: gba #: zypp/LanguageCode.cc:463 msgid "Gbaya" msgstr "" #. language code: gem #: zypp/LanguageCode.cc:465 msgid "Germanic (Other)" msgstr "" #. language code: geo kat ka #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469 msgid "Georgian" msgstr "" #. language code: ger deu de #: zypp/LanguageCode.cc:471 zypp/LanguageCode.cc:473 msgid "German" msgstr "" #. language code: gez #: zypp/LanguageCode.cc:475 msgid "Geez" msgstr "" #. language code: gil #: zypp/LanguageCode.cc:477 msgid "Gilbertese" msgstr "" #. language code: gla gd #: zypp/LanguageCode.cc:479 msgid "Gaelic" msgstr "" #. language code: gle ga #: zypp/LanguageCode.cc:481 msgid "Irish" msgstr "" #. language code: glg gl #: zypp/LanguageCode.cc:483 msgid "Galician" msgstr "" #. language code: glv gv #: zypp/LanguageCode.cc:485 msgid "Manx" msgstr "" #. language code: gmh #: zypp/LanguageCode.cc:487 msgid "German, Middle High (ca.1050-1500)" msgstr "" #. language code: goh #: zypp/LanguageCode.cc:489 msgid "German, Old High (ca.750-1050)" msgstr "" #. language code: gon #: zypp/LanguageCode.cc:491 msgid "Gondi" msgstr "" #. language code: gor #: zypp/LanguageCode.cc:493 msgid "Gorontalo" msgstr "" #. language code: got #: zypp/LanguageCode.cc:495 msgid "Gothic" msgstr "" #. language code: grb #: zypp/LanguageCode.cc:497 msgid "Grebo" msgstr "" #. language code: grc #: zypp/LanguageCode.cc:499 msgid "Greek, Ancient (to 1453)" msgstr "" #. language code: gre ell el #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503 msgid "Greek, Modern (1453-)" msgstr "" #. language code: grn gn #: zypp/LanguageCode.cc:505 msgid "Guarani" msgstr "" #. language code: guj gu #: zypp/LanguageCode.cc:507 msgid "Gujarati" msgstr "" #. language code: gwi #: zypp/LanguageCode.cc:509 msgid "Gwich'in" msgstr "" #. language code: hai #: zypp/LanguageCode.cc:511 msgid "Haida" msgstr "" #. language code: hat ht #: zypp/LanguageCode.cc:513 msgid "Haitian" msgstr "" #. language code: hau ha #: zypp/LanguageCode.cc:515 msgid "Hausa" msgstr "" #. language code: haw #: zypp/LanguageCode.cc:517 msgid "Hawaiian" msgstr "" #. language code: heb he #: zypp/LanguageCode.cc:519 msgid "Hebrew" msgstr "" #. language code: her hz #: zypp/LanguageCode.cc:521 msgid "Herero" msgstr "" #. language code: hil #: zypp/LanguageCode.cc:523 msgid "Hiligaynon" msgstr "" #. language code: him #: zypp/LanguageCode.cc:525 msgid "Himachali" msgstr "" #. language code: hin hi #: zypp/LanguageCode.cc:527 msgid "Hindi" msgstr "" #. language code: hit #: zypp/LanguageCode.cc:529 msgid "Hittite" msgstr "" #. language code: hmn #: zypp/LanguageCode.cc:531 msgid "Hmong" msgstr "" #. language code: hmo ho #: zypp/LanguageCode.cc:533 msgid "Hiri Motu" msgstr "" #. language code: hsb #: zypp/LanguageCode.cc:535 msgid "Upper Sorbian" msgstr "" #. language code: hun hu #: zypp/LanguageCode.cc:537 msgid "Hungarian" msgstr "" #. language code: hup #: zypp/LanguageCode.cc:539 msgid "Hupa" msgstr "" #. language code: iba #: zypp/LanguageCode.cc:541 msgid "Iban" msgstr "" #. language code: ibo ig #: zypp/LanguageCode.cc:543 msgid "Igbo" msgstr "" #. language code: ice isl is #: zypp/LanguageCode.cc:545 zypp/LanguageCode.cc:547 msgid "Icelandic" msgstr "" #. language code: ido io #: zypp/LanguageCode.cc:549 msgid "Ido" msgstr "" #. language code: iii ii #: zypp/LanguageCode.cc:551 msgid "Sichuan Yi" msgstr "" #. language code: ijo #: zypp/LanguageCode.cc:553 msgid "Ijo" msgstr "" #. language code: iku iu #: zypp/LanguageCode.cc:555 msgid "Inuktitut" msgstr "" #. language code: ile ie #: zypp/LanguageCode.cc:557 msgid "Interlingue" msgstr "" #. language code: ilo #: zypp/LanguageCode.cc:559 msgid "Iloko" msgstr "" #. language code: ina ia #: zypp/LanguageCode.cc:561 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" #. language code: inc #: zypp/LanguageCode.cc:563 msgid "Indic (Other)" msgstr "" #. language code: ind id #: zypp/LanguageCode.cc:565 msgid "Indonesian" msgstr "" #. language code: ine #: zypp/LanguageCode.cc:567 msgid "Indo-European (Other)" msgstr "" #. language code: inh #: zypp/LanguageCode.cc:569 msgid "Ingush" msgstr "" #. language code: ipk ik #: zypp/LanguageCode.cc:571 msgid "Inupiaq" msgstr "" #. language code: ira #: zypp/LanguageCode.cc:573 msgid "Iranian (Other)" msgstr "" #. language code: iro #: zypp/LanguageCode.cc:575 msgid "Iroquoian Languages" msgstr "" #. language code: ita it #: zypp/LanguageCode.cc:577 msgid "Italian" msgstr "" #. language code: jav jv #: zypp/LanguageCode.cc:579 msgid "Javanese" msgstr "" #. language code: jbo #: zypp/LanguageCode.cc:581 msgid "Lojban" msgstr "" #. language code: jpn ja #: zypp/LanguageCode.cc:583 msgid "Japanese" msgstr "" #. language code: jpr #: zypp/LanguageCode.cc:585 msgid "Judeo-Persian" msgstr "" #. language code: jrb #: zypp/LanguageCode.cc:587 msgid "Judeo-Arabic" msgstr "" #. language code: kaa #: zypp/LanguageCode.cc:589 msgid "Kara-Kalpak" msgstr "" #. language code: kab #: zypp/LanguageCode.cc:591 msgid "Kabyle" msgstr "" #. language code: kac #: zypp/LanguageCode.cc:593 msgid "Kachin" msgstr "" #. language code: kal kl #: zypp/LanguageCode.cc:595 msgid "Kalaallisut" msgstr "" #. language code: kam #: zypp/LanguageCode.cc:597 msgid "Kamba" msgstr "" #. language code: kan kn #: zypp/LanguageCode.cc:599 msgid "Kannada" msgstr "" #. language code: kar #: zypp/LanguageCode.cc:601 msgid "Karen" msgstr "" #. language code: kas ks #: zypp/LanguageCode.cc:603 msgid "Kashmiri" msgstr "" #. language code: kau kr #: zypp/LanguageCode.cc:605 msgid "Kanuri" msgstr "" #. language code: kaw #: zypp/LanguageCode.cc:607 msgid "Kawi" msgstr "" #. language code: kaz kk #: zypp/LanguageCode.cc:609 msgid "Kazakh" msgstr "" #. language code: kbd #: zypp/LanguageCode.cc:611 msgid "Kabardian" msgstr "" #. language code: kha #: zypp/LanguageCode.cc:613 msgid "Khasi" msgstr "" #. language code: khi #: zypp/LanguageCode.cc:615 msgid "Khoisan (Other)" msgstr "" #. language code: khm km #: zypp/LanguageCode.cc:617 msgid "Khmer" msgstr "" #. language code: kho #: zypp/LanguageCode.cc:619 msgid "Khotanese" msgstr "" #. language code: kik ki #: zypp/LanguageCode.cc:621 msgid "Kikuyu" msgstr "" #. language code: kin rw #: zypp/LanguageCode.cc:623 msgid "Kinyarwanda" msgstr "" #. language code: kir ky #: zypp/LanguageCode.cc:625 msgid "Kirghiz" msgstr "" #. language code: kmb #: zypp/LanguageCode.cc:627 msgid "Kimbundu" msgstr "" #. language code: kok #: zypp/LanguageCode.cc:629 msgid "Konkani" msgstr "" #. language code: kom kv #: zypp/LanguageCode.cc:631 msgid "Komi" msgstr "" #. language code: kon kg #: zypp/LanguageCode.cc:633 msgid "Kongo" msgstr "" #. language code: kor ko #: zypp/LanguageCode.cc:635 msgid "Korean" msgstr "" #. language code: kos #: zypp/LanguageCode.cc:637 msgid "Kosraean" msgstr "" #. language code: kpe #: zypp/LanguageCode.cc:639 msgid "Kpelle" msgstr "" #. language code: krc #: zypp/LanguageCode.cc:641 msgid "Karachay-Balkar" msgstr "" #. language code: kro #: zypp/LanguageCode.cc:643 msgid "Kru" msgstr "" #. language code: kru #: zypp/LanguageCode.cc:645 msgid "Kurukh" msgstr "" #. language code: kua kj #: zypp/LanguageCode.cc:647 msgid "Kuanyama" msgstr "" #. language code: kum #: zypp/LanguageCode.cc:649 msgid "Kumyk" msgstr "" #. language code: kur ku #: zypp/LanguageCode.cc:651 msgid "Kurdish" msgstr "" #. language code: kut #: zypp/LanguageCode.cc:653 msgid "Kutenai" msgstr "" #. language code: lad #: zypp/LanguageCode.cc:655 msgid "Ladino" msgstr "" #. language code: lah #: zypp/LanguageCode.cc:657 msgid "Lahnda" msgstr "" #. language code: lam #: zypp/LanguageCode.cc:659 msgid "Lamba" msgstr "" #. language code: lao lo #: zypp/LanguageCode.cc:661 msgid "Lao" msgstr "" #. language code: lat la #: zypp/LanguageCode.cc:663 msgid "Latin" msgstr "" #. language code: lav lv #: zypp/LanguageCode.cc:665 msgid "Latvian" msgstr "" #. language code: lez #: zypp/LanguageCode.cc:667 msgid "Lezghian" msgstr "" #. language code: lim li #: zypp/LanguageCode.cc:669 msgid "Limburgan" msgstr "" #. language code: lin ln #: zypp/LanguageCode.cc:671 msgid "Lingala" msgstr "" #. language code: lit lt #: zypp/LanguageCode.cc:673 msgid "Lithuanian" msgstr "" #. language code: lol #: zypp/LanguageCode.cc:675 msgid "Mongo" msgstr "" #. language code: loz #: zypp/LanguageCode.cc:677 msgid "Lozi" msgstr "" #. language code: ltz lb #: zypp/LanguageCode.cc:679 msgid "Luxembourgish" msgstr "" #. language code: lua #: zypp/LanguageCode.cc:681 msgid "Luba-Lulua" msgstr "" #. language code: lub lu #: zypp/LanguageCode.cc:683 msgid "Luba-Katanga" msgstr "" #. language code: lug lg #: zypp/LanguageCode.cc:685 msgid "Ganda" msgstr "" #. language code: lui #: zypp/LanguageCode.cc:687 msgid "Luiseno" msgstr "" #. language code: lun #: zypp/LanguageCode.cc:689 msgid "Lunda" msgstr "" #. language code: luo #: zypp/LanguageCode.cc:691 msgid "Luo (Kenya and Tanzania)" msgstr "" #. language code: lus #: zypp/LanguageCode.cc:693 msgid "Lushai" msgstr "" #. language code: mac mkd mk #: zypp/LanguageCode.cc:695 zypp/LanguageCode.cc:697 msgid "Macedonian" msgstr "" #. language code: mad #: zypp/LanguageCode.cc:699 msgid "Madurese" msgstr "" #. language code: mag #: zypp/LanguageCode.cc:701 msgid "Magahi" msgstr "" #. language code: mah mh #: zypp/LanguageCode.cc:703 msgid "Marshallese" msgstr "" #. language code: mai #: zypp/LanguageCode.cc:705 msgid "Maithili" msgstr "" #. language code: mak #: zypp/LanguageCode.cc:707 msgid "Makasar" msgstr "" #. language code: mal ml #: zypp/LanguageCode.cc:709 msgid "Malayalam" msgstr "" #. language code: man #: zypp/LanguageCode.cc:711 msgid "Mandingo" msgstr "" #. language code: mao mri mi #: zypp/LanguageCode.cc:713 zypp/LanguageCode.cc:715 msgid "Maori" msgstr "" #. language code: map #: zypp/LanguageCode.cc:717 msgid "Austronesian (Other)" msgstr "" #. language code: mar mr #: zypp/LanguageCode.cc:719 msgid "Marathi" msgstr "" #. language code: mas #: zypp/LanguageCode.cc:721 msgid "Masai" msgstr "" #. language code: may msa ms #: zypp/LanguageCode.cc:723 zypp/LanguageCode.cc:725 msgid "Malay" msgstr "" #. language code: mdf #: zypp/LanguageCode.cc:727 msgid "Moksha" msgstr "" #. language code: mdr #: zypp/LanguageCode.cc:729 msgid "Mandar" msgstr "" #. language code: men #: zypp/LanguageCode.cc:731 msgid "Mende" msgstr "" #. language code: mga #: zypp/LanguageCode.cc:733 msgid "Irish, Middle (900-1200)" msgstr "" #. language code: mic #: zypp/LanguageCode.cc:735 msgid "Mi'kmaq" msgstr "" #. language code: min #: zypp/LanguageCode.cc:737 msgid "Minangkabau" msgstr "" #. language code: mis #: zypp/LanguageCode.cc:739 msgid "Miscellaneous Languages" msgstr "" #. language code: mkh #: zypp/LanguageCode.cc:741 msgid "Mon-Khmer (Other)" msgstr "" #. language code: mlg mg #: zypp/LanguageCode.cc:743 msgid "Malagasy" msgstr "" #. language code: mlt mt #: zypp/LanguageCode.cc:745 msgid "Maltese" msgstr "" #. language code: mnc #: zypp/LanguageCode.cc:747 msgid "Manchu" msgstr "" #. language code: mni #: zypp/LanguageCode.cc:749 msgid "Manipuri" msgstr "" #. language code: mno #: zypp/LanguageCode.cc:751 msgid "Manobo Languages" msgstr "" #. language code: moh #: zypp/LanguageCode.cc:753 msgid "Mohawk" msgstr "" #. language code: mol mo #: zypp/LanguageCode.cc:755 msgid "Moldavian" msgstr "" #. language code: mon mn #: zypp/LanguageCode.cc:757 msgid "Mongolian" msgstr "" #. language code: mos #: zypp/LanguageCode.cc:759 msgid "Mossi" msgstr "" #. language code: mul #: zypp/LanguageCode.cc:761 msgid "Multiple Languages" msgstr "" #. language code: mun #: zypp/LanguageCode.cc:763 msgid "Munda languages" msgstr "" #. language code: mus #: zypp/LanguageCode.cc:765 msgid "Creek" msgstr "" #. language code: mwl #: zypp/LanguageCode.cc:767 msgid "Mirandese" msgstr "" #. language code: mwr #: zypp/LanguageCode.cc:769 msgid "Marwari" msgstr "" #. language code: myn #: zypp/LanguageCode.cc:771 msgid "Mayan Languages" msgstr "" #. language code: myv #: zypp/LanguageCode.cc:773 msgid "Erzya" msgstr "" #. language code: nah #: zypp/LanguageCode.cc:775 msgid "Nahuatl" msgstr "" #. language code: nai #: zypp/LanguageCode.cc:777 msgid "North American Indian" msgstr "" #. language code: nap #: zypp/LanguageCode.cc:779 msgid "Neapolitan" msgstr "" #. language code: nav nv #: zypp/LanguageCode.cc:783 msgid "Navajo" msgstr "" #. language code: nbl nr #: zypp/LanguageCode.cc:785 msgid "Ndebele, South" msgstr "" #. language code: nde nd #: zypp/LanguageCode.cc:787 msgid "Ndebele, North" msgstr "" #. language code: ndo ng #: zypp/LanguageCode.cc:789 msgid "Ndonga" msgstr "" #. language code: nds #: zypp/LanguageCode.cc:791 msgid "Low German" msgstr "" #. language code: nep ne #: zypp/LanguageCode.cc:793 msgid "Nepali" msgstr "" #. language code: new #: zypp/LanguageCode.cc:795 msgid "Nepal Bhasa" msgstr "" #. language code: nia #: zypp/LanguageCode.cc:797 msgid "Nias" msgstr "" #. language code: nic #: zypp/LanguageCode.cc:799 msgid "Niger-Kordofanian (Other)" msgstr "" #. language code: niu #: zypp/LanguageCode.cc:801 msgid "Niuean" msgstr "" #. language code: nno nn #: zypp/LanguageCode.cc:803 msgid "Norwegian Nynorsk" msgstr "" #. language code: nob nb #: zypp/LanguageCode.cc:805 msgid "Norwegian Bokmal" msgstr "" #. language code: nog #: zypp/LanguageCode.cc:807 msgid "Nogai" msgstr "" #. language code: non #: zypp/LanguageCode.cc:809 msgid "Norse, Old" msgstr "" #. language code: nor no #: zypp/LanguageCode.cc:811 msgid "Norwegian" msgstr "" #. language code: nso #: zypp/LanguageCode.cc:813 msgid "Northern Sotho" msgstr "" #. language code: nub #: zypp/LanguageCode.cc:815 msgid "Nubian Languages" msgstr "" #. language code: nwc #: zypp/LanguageCode.cc:817 msgid "Classical Newari" msgstr "" #. language code: nya ny #: zypp/LanguageCode.cc:819 msgid "Chichewa" msgstr "" #. language code: nym #: zypp/LanguageCode.cc:821 msgid "Nyamwezi" msgstr "" #. language code: nyn #: zypp/LanguageCode.cc:823 msgid "Nyankole" msgstr "" #. language code: nyo #: zypp/LanguageCode.cc:825 msgid "Nyoro" msgstr "" #. language code: nzi #: zypp/LanguageCode.cc:827 msgid "Nzima" msgstr "" #. language code: oci oc #: zypp/LanguageCode.cc:829 msgid "Occitan (post 1500)" msgstr "" #. language code: oji oj #: zypp/LanguageCode.cc:831 msgid "Ojibwa" msgstr "" #. language code: ori or #: zypp/LanguageCode.cc:833 msgid "Oriya" msgstr "" #. language code: orm om #: zypp/LanguageCode.cc:835 msgid "Oromo" msgstr "" #. language code: osa #: zypp/LanguageCode.cc:837 msgid "Osage" msgstr "" #. language code: oss os #: zypp/LanguageCode.cc:839 msgid "Ossetian" msgstr "" #. language code: ota #: zypp/LanguageCode.cc:841 msgid "Turkish, Ottoman (1500-1928)" msgstr "" #. language code: oto #: zypp/LanguageCode.cc:843 msgid "Otomian Languages" msgstr "" #. language code: paa #: zypp/LanguageCode.cc:845 msgid "Papuan (Other)" msgstr "" #. language code: pag #: zypp/LanguageCode.cc:847 msgid "Pangasinan" msgstr "" #. language code: pal #: zypp/LanguageCode.cc:849 msgid "Pahlavi" msgstr "" #. language code: pam #: zypp/LanguageCode.cc:851 msgid "Pampanga" msgstr "" #. language code: pan pa #: zypp/LanguageCode.cc:853 msgid "Panjabi" msgstr "" #. language code: pap #: zypp/LanguageCode.cc:855 msgid "Papiamento" msgstr "" #. language code: pau #: zypp/LanguageCode.cc:857 msgid "Palauan" msgstr "" #. language code: peo #: zypp/LanguageCode.cc:859 msgid "Persian, Old (ca.600-400 B.C.)" msgstr "" #. language code: per fas fa #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863 msgid "Persian" msgstr "" #. language code: phi #: zypp/LanguageCode.cc:865 msgid "Philippine (Other)" msgstr "" #. language code: phn #: zypp/LanguageCode.cc:867 msgid "Phoenician" msgstr "" #. language code: pli pi #: zypp/LanguageCode.cc:869 msgid "Pali" msgstr "" #. language code: pol pl #: zypp/LanguageCode.cc:871 msgid "Polish" msgstr "" #. language code: pon #: zypp/LanguageCode.cc:873 msgid "Pohnpeian" msgstr "" #. language code: por pt #: zypp/LanguageCode.cc:875 msgid "Portuguese" msgstr "" #. language code: pra #: zypp/LanguageCode.cc:877 msgid "Prakrit Languages" msgstr "" #. language code: pro #: zypp/LanguageCode.cc:879 msgid "Provencal, Old (to 1500)" msgstr "" #. language code: pus ps #: zypp/LanguageCode.cc:881 msgid "Pushto" msgstr "" #. language code: que qu #: zypp/LanguageCode.cc:883 msgid "Quechua" msgstr "" #. language code: raj #: zypp/LanguageCode.cc:885 msgid "Rajasthani" msgstr "" #. language code: rap #: zypp/LanguageCode.cc:887 msgid "Rapanui" msgstr "" #. language code: rar #: zypp/LanguageCode.cc:889 msgid "Rarotongan" msgstr "" #. language code: roa #: zypp/LanguageCode.cc:891 msgid "Romance (Other)" msgstr "" #. language code: roh rm #: zypp/LanguageCode.cc:893 msgid "Raeto-Romance" msgstr "" #. language code: rom #: zypp/LanguageCode.cc:895 msgid "Romany" msgstr "" #. language code: rum ron ro #: zypp/LanguageCode.cc:897 zypp/LanguageCode.cc:899 msgid "Romanian" msgstr "" #. language code: run rn #: zypp/LanguageCode.cc:901 msgid "Rundi" msgstr "" #. language code: rus ru #: zypp/LanguageCode.cc:903 msgid "Russian" msgstr "" #. language code: sad #: zypp/LanguageCode.cc:905 msgid "Sandawe" msgstr "" #. language code: sag sg #: zypp/LanguageCode.cc:907 msgid "Sango" msgstr "" #. language code: sah #: zypp/LanguageCode.cc:909 msgid "Yakut" msgstr "" #. language code: sai #: zypp/LanguageCode.cc:911 msgid "South American Indian (Other)" msgstr "" #. language code: sal #: zypp/LanguageCode.cc:913 msgid "Salishan Languages" msgstr "" #. language code: sam #: zypp/LanguageCode.cc:915 msgid "Samaritan Aramaic" msgstr "" #. language code: san sa #: zypp/LanguageCode.cc:917 msgid "Sanskrit" msgstr "" #. language code: sas #: zypp/LanguageCode.cc:919 msgid "Sasak" msgstr "" #. language code: sat #: zypp/LanguageCode.cc:921 msgid "Santali" msgstr "" #. language code: scc srp sr #: zypp/LanguageCode.cc:923 zypp/LanguageCode.cc:925 msgid "Serbian" msgstr "" #. language code: scn #: zypp/LanguageCode.cc:927 msgid "Sicilian" msgstr "" #. language code: sco #: zypp/LanguageCode.cc:929 msgid "Scots" msgstr "" #. language code: scr hrv hr #: zypp/LanguageCode.cc:931 zypp/LanguageCode.cc:933 msgid "Croatian" msgstr "" #. language code: sel #: zypp/LanguageCode.cc:935 msgid "Selkup" msgstr "" #. language code: sem #: zypp/LanguageCode.cc:937 msgid "Semitic (Other)" msgstr "" #. language code: sga #: zypp/LanguageCode.cc:939 msgid "Irish, Old (to 900)" msgstr "" #. language code: sgn #: zypp/LanguageCode.cc:941 msgid "Sign Languages" msgstr "" #. language code: shn #: zypp/LanguageCode.cc:943 msgid "Shan" msgstr "" #. language code: sid #: zypp/LanguageCode.cc:945 msgid "Sidamo" msgstr "" #. language code: sin si #: zypp/LanguageCode.cc:947 msgid "Sinhala" msgstr "" #. language code: sio #: zypp/LanguageCode.cc:949 msgid "Siouan Languages" msgstr "" #. language code: sit #: zypp/LanguageCode.cc:951 msgid "Sino-Tibetan (Other)" msgstr "" #. language code: sla #: zypp/LanguageCode.cc:953 msgid "Slavic (Other)" msgstr "" #. language code: slo slk sk #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957 msgid "Slovak" msgstr "" #. language code: slv sl #: zypp/LanguageCode.cc:959 msgid "Slovenian" msgstr "" #. language code: sma #: zypp/LanguageCode.cc:961 msgid "Southern Sami" msgstr "" #. language code: sme se #: zypp/LanguageCode.cc:963 msgid "Northern Sami" msgstr "" #. language code: smi #: zypp/LanguageCode.cc:965 msgid "Sami Languages (Other)" msgstr "" #. language code: smj #: zypp/LanguageCode.cc:967 msgid "Lule Sami" msgstr "" #. language code: smn #: zypp/LanguageCode.cc:969 msgid "Inari Sami" msgstr "" #. language code: smo sm #: zypp/LanguageCode.cc:971 msgid "Samoan" msgstr "" #. language code: sms #: zypp/LanguageCode.cc:973 msgid "Skolt Sami" msgstr "" #. language code: sna sn #: zypp/LanguageCode.cc:975 msgid "Shona" msgstr "" #. language code: snd sd #: zypp/LanguageCode.cc:977 msgid "Sindhi" msgstr "" #. language code: snk #: zypp/LanguageCode.cc:979 msgid "Soninke" msgstr "" #. language code: sog #: zypp/LanguageCode.cc:981 msgid "Sogdian" msgstr "" #. language code: som so #: zypp/LanguageCode.cc:983 msgid "Somali" msgstr "" #. language code: son #: zypp/LanguageCode.cc:985 msgid "Songhai" msgstr "" #. language code: sot st #: zypp/LanguageCode.cc:987 msgid "Sotho, Southern" msgstr "" #. language code: spa es #: zypp/LanguageCode.cc:989 msgid "Spanish" msgstr "" #. language code: srd sc #: zypp/LanguageCode.cc:991 msgid "Sardinian" msgstr "" #. language code: srr #: zypp/LanguageCode.cc:993 msgid "Serer" msgstr "" #. language code: ssa #: zypp/LanguageCode.cc:995 msgid "Nilo-Saharan (Other)" msgstr "" #. language code: ssw ss #: zypp/LanguageCode.cc:997 msgid "Swati" msgstr "" #. language code: suk #: zypp/LanguageCode.cc:999 msgid "Sukuma" msgstr "" #. language code: sun su #: zypp/LanguageCode.cc:1001 msgid "Sundanese" msgstr "" #. language code: sus #: zypp/LanguageCode.cc:1003 msgid "Susu" msgstr "" #. language code: sux #: zypp/LanguageCode.cc:1005 msgid "Sumerian" msgstr "" #. language code: swa sw #: zypp/LanguageCode.cc:1007 msgid "Swahili" msgstr "" #. language code: swe sv #: zypp/LanguageCode.cc:1009 msgid "Swedish" msgstr "" #. language code: syr #: zypp/LanguageCode.cc:1011 msgid "Syriac" msgstr "" #. language code: tah ty #: zypp/LanguageCode.cc:1013 msgid "Tahitian" msgstr "" #. language code: tai #: zypp/LanguageCode.cc:1015 msgid "Tai (Other)" msgstr "" #. language code: tam ta #: zypp/LanguageCode.cc:1017 msgid "Tamil" msgstr "" #. language code: tat tt #: zypp/LanguageCode.cc:1019 msgid "Tatar" msgstr "" #. language code: tel te #: zypp/LanguageCode.cc:1021 msgid "Telugu" msgstr "" #. language code: tem #: zypp/LanguageCode.cc:1023 msgid "Timne" msgstr "" #. language code: ter #: zypp/LanguageCode.cc:1025 msgid "Tereno" msgstr "" #. language code: tet #: zypp/LanguageCode.cc:1027 msgid "Tetum" msgstr "" #. language code: tgk tg #: zypp/LanguageCode.cc:1029 msgid "Tajik" msgstr "" #. language code: tgl tl #: zypp/LanguageCode.cc:1031 msgid "Tagalog" msgstr "" #. language code: tha th #: zypp/LanguageCode.cc:1033 msgid "Thai" msgstr "" #. language code: tib bod bo #: zypp/LanguageCode.cc:1035 zypp/LanguageCode.cc:1037 msgid "Tibetan" msgstr "" #. language code: tig #: zypp/LanguageCode.cc:1039 msgid "Tigre" msgstr "" #. language code: tir ti #: zypp/LanguageCode.cc:1041 msgid "Tigrinya" msgstr "" #. language code: tiv #: zypp/LanguageCode.cc:1043 msgid "Tiv" msgstr "" #. language code: tlh #: zypp/LanguageCode.cc:1047 msgid "Klingon" msgstr "" #. language code: tli #: zypp/LanguageCode.cc:1049 msgid "Tlingit" msgstr "" #. language code: tmh #: zypp/LanguageCode.cc:1051 msgid "Tamashek" msgstr "" #. language code: tog #: zypp/LanguageCode.cc:1053 msgid "Tonga (Nyasa)" msgstr "" #. language code: ton to #: zypp/LanguageCode.cc:1055 msgid "Tonga (Tonga Islands)" msgstr "" #. language code: tpi #: zypp/LanguageCode.cc:1057 msgid "Tok Pisin" msgstr "" #. language code: tsi #: zypp/LanguageCode.cc:1059 msgid "Tsimshian" msgstr "" #. language code: tsn tn #: zypp/LanguageCode.cc:1061 msgid "Tswana" msgstr "" #. language code: tso ts #: zypp/LanguageCode.cc:1063 msgid "Tsonga" msgstr "" #. language code: tuk tk #: zypp/LanguageCode.cc:1065 msgid "Turkmen" msgstr "" #. language code: tum #: zypp/LanguageCode.cc:1067 msgid "Tumbuka" msgstr "" #. language code: tup #: zypp/LanguageCode.cc:1069 msgid "Tupi Languages" msgstr "" #. language code: tur tr #: zypp/LanguageCode.cc:1071 msgid "Turkish" msgstr "" #. language code: tut #: zypp/LanguageCode.cc:1073 msgid "Altaic (Other)" msgstr "" #. language code: twi tw #: zypp/LanguageCode.cc:1077 msgid "Twi" msgstr "" #. language code: tyv #: zypp/LanguageCode.cc:1079 msgid "Tuvinian" msgstr "" #. language code: udm #: zypp/LanguageCode.cc:1081 msgid "Udmurt" msgstr "" #. language code: uga #: zypp/LanguageCode.cc:1083 msgid "Ugaritic" msgstr "" #. language code: uig ug #: zypp/LanguageCode.cc:1085 msgid "Uighur" msgstr "" #. language code: ukr uk #: zypp/LanguageCode.cc:1087 msgid "Ukrainian" msgstr "" #. language code: umb #: zypp/LanguageCode.cc:1089 msgid "Umbundu" msgstr "" #. language code: und #: zypp/LanguageCode.cc:1091 msgid "Undetermined" msgstr "" #. language code: urd ur #: zypp/LanguageCode.cc:1093 msgid "Urdu" msgstr "" #. language code: uzb uz #: zypp/LanguageCode.cc:1095 msgid "Uzbek" msgstr "" #. language code: vai #: zypp/LanguageCode.cc:1097 msgid "Vai" msgstr "" #. language code: ven ve #: zypp/LanguageCode.cc:1099 msgid "Venda" msgstr "" #. language code: vie vi #: zypp/LanguageCode.cc:1101 msgid "Vietnamese" msgstr "" #. language code: vol vo #: zypp/LanguageCode.cc:1103 msgid "Volapuk" msgstr "" #. language code: vot #: zypp/LanguageCode.cc:1105 msgid "Votic" msgstr "" #. language code: wak #: zypp/LanguageCode.cc:1107 msgid "Wakashan Languages" msgstr "" #. language code: wal #: zypp/LanguageCode.cc:1109 msgid "Walamo" msgstr "" #. language code: war #: zypp/LanguageCode.cc:1111 msgid "Waray" msgstr "" #. language code: was #: zypp/LanguageCode.cc:1113 msgid "Washo" msgstr "" #. language code: wel cym cy #: zypp/LanguageCode.cc:1115 zypp/LanguageCode.cc:1117 msgid "Welsh" msgstr "" #. language code: wen #: zypp/LanguageCode.cc:1119 msgid "Sorbian Languages" msgstr "" #. language code: wln wa #: zypp/LanguageCode.cc:1121 msgid "Walloon" msgstr "" #. language code: wol wo #: zypp/LanguageCode.cc:1123 msgid "Wolof" msgstr "" #. language code: xal #: zypp/LanguageCode.cc:1125 msgid "Kalmyk" msgstr "" #. language code: xho xh #: zypp/LanguageCode.cc:1127 msgid "Xhosa" msgstr "" #. language code: yao #: zypp/LanguageCode.cc:1129 msgid "Yao" msgstr "" #. language code: yap #: zypp/LanguageCode.cc:1131 msgid "Yapese" msgstr "" #. language code: yid yi #: zypp/LanguageCode.cc:1133 msgid "Yiddish" msgstr "" #. language code: yor yo #: zypp/LanguageCode.cc:1135 msgid "Yoruba" msgstr "" #. language code: ypk #: zypp/LanguageCode.cc:1137 msgid "Yupik Languages" msgstr "" #. language code: zap #: zypp/LanguageCode.cc:1139 msgid "Zapotec" msgstr "" #. language code: zen #: zypp/LanguageCode.cc:1141 msgid "Zenaga" msgstr "" #. language code: zha za #: zypp/LanguageCode.cc:1143 msgid "Zhuang" msgstr "" #. language code: znd #: zypp/LanguageCode.cc:1145 msgid "Zande" msgstr "" #. language code: zul zu #: zypp/LanguageCode.cc:1147 msgid "Zulu" msgstr "" #. language code: zun #: zypp/LanguageCode.cc:1149 msgid "Zuni" msgstr "" #: zypp/ProblemSolution.cc:114 msgid "Following actions will be done:" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:63 msgid "does not expire" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" #: zypp/PublicKey.cc:68 #, boost-format msgid "expired: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" #: zypp/PublicKey.cc:73 #, boost-format msgid "expires: %1%" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:82 msgid "(does not expire)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:91 msgid "(EXPIRED)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:95 msgid "(expires within 24h)" msgstr "" #. translators: an annotation to a gpg keys expiry date #: zypp/PublicKey.cc:99 #, c-format, boost-format msgid "(expires in %d day)" msgid_plural "(expires in %d days)" msgstr[0] "" msgstr[1] "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a cache directories path #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." msgstr "" #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." msgstr "" #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." msgstr "" #: zypp/RepoManager.cc:314 #, boost-format msgid "Cannot read repo directory '%1%': Permission denied" msgstr "" #. TranslatorExplanation '%s' is a pathname #: zypp/RepoManager.cc:322 zypp/RepoManager.cc:785 zypp/RepoManager.cc:1538 #: zypp/repo/PluginServices.cc:49 #, c-format, boost-format msgid "Failed to read directory '%s'" msgstr "" #: zypp/RepoManager.cc:332 #, boost-format msgid "Cannot read repo file '%1%': Permission denied" msgstr "" #: zypp/RepoManager.cc:355 msgid "Repository alias cannot start with dot." msgstr "" #: zypp/RepoManager.cc:366 msgid "Service alias cannot start with dot." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:740 zypp/RepoManager.cc:1656 zypp/RepoManager.cc:1722 #: zypp/RepoManager.cc:1800 zypp/RepoManager.cc:1865 zypp/RepoManager.cc:1996 #, c-format, boost-format msgid "Can't open file '%s' for writing." msgstr "" #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. #. %1% = service name #. %2% = repository name #: zypp/RepoManager.cc:867 #, boost-format msgid "Unknown service '%1%': Removing orphaned service repository '%2%'" msgstr "" #. we will throw this later if no URL checks out fine #: zypp/RepoManager.cc:1094 msgid "Valid metadata not found at specified URL" msgid_plural "Valid metadata not found at specified URLs" msgstr[0] "" msgstr[1] "" #: zypp/RepoManager.cc:1142 zypp/RepoManager.cc:1254 zypp/RepoManager.cc:1310 #, c-format, boost-format msgid "Can't create %s" msgstr "" #: zypp/RepoManager.cc:1150 msgid "Can't create metadata cache directory." msgstr "" #: zypp/RepoManager.cc:1296 #, c-format, boost-format msgid "Building repository '%s' cache" msgstr "" #: zypp/RepoManager.cc:1316 #, c-format, boost-format msgid "Can't create cache at %s - no writing permissions." msgstr "" #: zypp/RepoManager.cc:1381 #, c-format, boost-format msgid "Failed to cache repo (%d)." msgstr "" #: zypp/RepoManager.cc:1392 msgid "Unhandled repository type" msgstr "" #. prepare exception to be thrown if the type could not be determined #. due to a media exception. We can't throw right away, because of some #. problems with proxy servers returning an incorrect error #. on ftp file-not-found(bnc #335906). Instead we'll check another types #. before throwing. #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1429 zypp/RepoManager.cc:2491 #, c-format, boost-format msgid "Error trying to read from '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1482 zypp/RepoManager.cc:2499 #, c-format, boost-format msgid "Unknown error reading from '%s'" msgstr "" #: zypp/RepoManager.cc:1620 #, c-format, boost-format msgid "Adding repository '%s'" msgstr "" #. TranslatorExplanation '%s' is an URL #: zypp/RepoManager.cc:1708 #, c-format, boost-format msgid "Invalid repo file name at '%s'" msgstr "" #: zypp/RepoManager.cc:1749 #, c-format, boost-format msgid "Removing repository '%s'" msgstr "" #: zypp/RepoManager.cc:1768 zypp/RepoManager.cc:1846 msgid "Can't figure out where the repo is stored." msgstr "" #. TranslatorExplanation '%s' is a filename #: zypp/RepoManager.cc:1782 zypp/RepoManager.cc:1984 #, c-format, boost-format msgid "Can't delete '%s'" msgstr "" #: zypp/RepoManager.cc:1972 zypp/RepoManager.cc:2422 msgid "Can't figure out where the service is stored." msgstr "" #: zypp/Url.cc:114 msgid "Invalid LDAP URL query string" msgstr "" #: zypp/Url.cc:153 #, c-format, boost-format msgid "Invalid LDAP URL query parameter '%s'" msgstr "" #: zypp/Url.cc:300 msgid "Unable to clone Url object" msgstr "" #: zypp/Url.cc:313 msgid "Invalid empty Url object reference" msgstr "" #: zypp/Url.cc:326 zypp/Url.cc:340 msgid "Unable to parse Url components" msgstr "" #: zypp/VendorSupportOptions.cc:14 msgid "unknown" msgstr "" #: zypp/VendorSupportOptions.cc:17 msgid "unsupported" msgstr "" #: zypp/VendorSupportOptions.cc:20 msgid "Level 1" msgstr "" #: zypp/VendorSupportOptions.cc:23 msgid "Level 2" msgstr "" #: zypp/VendorSupportOptions.cc:26 msgid "Level 3" msgstr "" #: zypp/VendorSupportOptions.cc:29 msgid "Additional Customer Contract Necessary" msgstr "" #: zypp/VendorSupportOptions.cc:31 msgid "invalid" msgstr "" #: zypp/VendorSupportOptions.cc:39 msgid "The level of support is unspecified" msgstr "" #: zypp/VendorSupportOptions.cc:42 msgid "The vendor does not provide support." msgstr "" #: zypp/VendorSupportOptions.cc:45 msgid "Problem determination, which means technical support designed to provide compatibility information, installation assistance, usage support, on-going maintenance and basic troubleshooting. Level 1 Support is not intended to correct product defect errors." msgstr "" #: zypp/VendorSupportOptions.cc:48 msgid "Problem isolation, which means technical support designed to duplicate customer problems, isolate problem area and provide resolution for problems not resolved by Level 1 Support." msgstr "" #: zypp/VendorSupportOptions.cc:51 msgid "Problem resolution, which means technical support designed to resolve complex problems by engaging engineering in resolution of product defects which have been identified by Level 2 Support." msgstr "" #: zypp/VendorSupportOptions.cc:54 msgid "An additional customer contract is necessary for getting support." msgstr "" #: zypp/VendorSupportOptions.cc:56 msgid "Unknown support option. Description not available" msgstr "" #: zypp/ZYppFactory.cc:399 #, c-format, boost-format msgid "" "System management is locked by the application with pid %d (%s).\n" "Close this application before trying again." msgstr "" #. TranslatorExplanation followed by the list of error messages that lead to this exception #: zypp/base/Exception.cc:134 msgid "History:" msgstr "" #: zypp/base/InterProcessMutex.cc:83 #, c-format, boost-format msgid "Can't open lock file: %s" msgstr "" #: zypp/base/InterProcessMutex.cc:143 msgid "This action is being run by another program already." msgstr "" #: zypp/base/StrMatcher.cc:152 #, c-format, boost-format msgid "Unknown match mode '%s'" msgstr "" #: zypp/base/StrMatcher.cc:153 #, c-format, boost-format msgid "Unknown match mode '%s' for pattern '%s'" msgstr "" #: zypp/base/StrMatcher.cc:157 #, c-format, boost-format msgid "Invalid regular expression '%s': regcomp returned %d" msgstr "" #: zypp/base/StrMatcher.cc:158 #, c-format, boost-format msgid "Invalid regular expression '%s'" msgstr "" #. !\todo add comma to the message for the next release #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1753 #, c-format, boost-format msgid "Authentication required for '%s'" msgstr "" #: zypp/media/MediaCurl.cc:1121 msgid "Visit the Novell Customer Center to check whether your registration is valid and has not expired." msgstr "" #: zypp/media/MediaException.cc:31 #, c-format, boost-format msgid "Failed to mount %s on %s" msgstr "" #: zypp/media/MediaException.cc:41 #, c-format, boost-format msgid "Failed to unmount %s" msgstr "" #: zypp/media/MediaException.cc:46 #, c-format, boost-format msgid "Bad file name: %s" msgstr "" #: zypp/media/MediaException.cc:51 #, c-format, boost-format msgid "Medium not opened when trying to perform action '%s'." msgstr "" #: zypp/media/MediaException.cc:56 #, c-format, boost-format msgid "File '%s' not found on medium '%s'" msgstr "" #: zypp/media/MediaException.cc:61 #, c-format, boost-format msgid "Cannot write file '%s'." msgstr "" #: zypp/media/MediaException.cc:66 msgid "Medium not attached" msgstr "" #: zypp/media/MediaException.cc:71 msgid "Bad media attach point" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:77 #, c-format, boost-format msgid "Download (curl) initialization failed for '%s'" msgstr "" #: zypp/media/MediaException.cc:82 #, c-format, boost-format msgid "System exception '%s' on medium '%s'." msgstr "" #: zypp/media/MediaException.cc:87 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a file." msgstr "" #: zypp/media/MediaException.cc:92 #, c-format, boost-format msgid "Path '%s' on medium '%s' is not a directory." msgstr "" #: zypp/media/MediaException.cc:99 msgid "Malformed URI" msgstr "" #: zypp/media/MediaException.cc:109 msgid "Empty host name in URI" msgstr "" #: zypp/media/MediaException.cc:114 msgid "Empty filesystem in URI" msgstr "" #: zypp/media/MediaException.cc:119 msgid "Empty destination in URI" msgstr "" #: zypp/media/MediaException.cc:124 #, c-format, boost-format msgid "Unsupported URI scheme in '%s'." msgstr "" #: zypp/media/MediaException.cc:129 msgid "Operation not supported by medium" msgstr "" #: zypp/media/MediaException.cc:136 #, c-format, boost-format msgid "" "Download (curl) error for '%s':\n" "Error code: %s\n" "Error message: %s\n" msgstr "" #. TranslatorExplanation: curl is the name of a library, don't translate #: zypp/media/MediaException.cc:144 #, c-format, boost-format msgid "Error occurred while setting download (curl) options for '%s':" msgstr "" #: zypp/media/MediaException.cc:151 #, c-format, boost-format msgid "Media source '%s' does not contain the desired medium" msgstr "" #: zypp/media/MediaException.cc:156 #, c-format, boost-format msgid "Medium '%s' is in use by another instance" msgstr "" #: zypp/media/MediaException.cc:162 msgid "Cannot eject any media" msgstr "" #: zypp/media/MediaException.cc:164 #, c-format, boost-format msgid "Cannot eject media '%s'" msgstr "" #: zypp/media/MediaException.cc:179 #, c-format, boost-format msgid "Permission to access '%s' denied." msgstr "" #: zypp/media/MediaException.cc:187 #, c-format, boost-format msgid "Timeout exceeded when accessing '%s'." msgstr "" #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." msgstr "" #: zypp/media/MediaException.cc:203 #, c-format, boost-format msgid "Location '%s' is temporarily unaccessible." msgstr "" #: zypp/media/MediaException.cc:211 #, c-format, boost-format msgid " SSL certificate problem, verify that the CA cert is OK for '%s'." msgstr "" #: zypp/media/MediaHandler.cc:370 msgid "Create attach point: Can't find a writable directory to create an attach point" msgstr "" #: zypp/media/MediaUserAuth.cc:136 #, c-format, boost-format msgid "Unsupported HTTP authentication method '%s'" msgstr "" #: zypp/misc/CheckAccessDeleted.cc:354 msgid "Please install package 'lsof' first." msgstr "" #: zypp/parser/RepoindexFileReader.cc:197 #, c-format, boost-format msgid "Required attribute '%s' is missing." msgstr "" #: zypp/parser/RepoindexFileReader.cc:209 #, c-format, boost-format msgid "One or both of '%s' or '%s' attributes is required." msgstr "" #: zypp/repo/PackageProvider.cc:368 msgid "Signature verification failed" msgstr "" #. TranslatorExplanation %s = package being checked for integrity #: zypp/repo/PackageProvider.cc:499 #, c-format, boost-format msgid "Package %s seems to be corrupted during transfer. Do you want to retry retrieval?" msgstr "" #. TranslatorExplanation %s = name of the package being processed. #: zypp/repo/PackageProvider.cc:523 #, c-format, boost-format msgid "Failed to provide Package %s. Do you want to retry retrieval?" msgstr "" #: zypp/repo/PackageProvider.cc:646 msgid "applydeltarpm check failed." msgstr "" #: zypp/repo/PackageProvider.cc:657 msgid "applydeltarpm failed." msgstr "" #: zypp/repo/RepoException.cc:129 msgid "Service plugin does not support changing an attribute." msgstr "" #: zypp/repo/RepoProvideFile.cc:261 #, c-format, boost-format msgid "Can't provide file '%s' from repository '%s'" msgstr "" #: zypp/repo/RepoProvideFile.cc:267 msgid "No url in repository." msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:34 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:40 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:47 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" msgstr "" #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) #: zypp/sat/FileConflicts.cc:53 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" msgstr "" #. [lhs][rhs] 0 = installed; 1 = to be installed #. TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) #: zypp/sat/FileConflicts.cc:68 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:76 #, boost-format msgid "" "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:85 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" msgstr "" #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) #: zypp/sat/FileConflicts.cc:93 #, boost-format msgid "" "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" msgstr "" #: zypp/sat/detail/PoolImpl.cc:189 msgid "Can not create sat-pool." msgstr "" #. TranslatorExplanation %s = name of package, patch, selection ... #: zypp/solver/detail/ProblemSolutionIgnore.cc:42 #, c-format, boost-format msgid "break %s by ignoring some of its dependencies" msgstr "" #: zypp/solver/detail/ProblemSolutionIgnore.cc:48 msgid "generally ignore of some dependencies" msgstr "" #: zypp/solver/detail/SATResolver.cc:979 #, c-format, boost-format msgid "%s does not belong to a distupgrade repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:983 #, c-format, boost-format msgid "%s has inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:987 #, c-format, boost-format msgid "problem with installed package %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:990 msgid "conflicting requests" msgstr "" #: zypp/solver/detail/SATResolver.cc:993 msgid "some dependency problem" msgstr "" #: zypp/solver/detail/SATResolver.cc:996 #, c-format, boost-format msgid "nothing provides requested %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001 msgid "Have you enabled all requested repositories?" msgstr "" #: zypp/solver/detail/SATResolver.cc:1000 #, c-format, boost-format msgid "package %s does not exist" msgstr "" #: zypp/solver/detail/SATResolver.cc:1004 msgid "unsupported request" msgstr "" #: zypp/solver/detail/SATResolver.cc:1007 #, c-format, boost-format msgid "%s is provided by the system and cannot be erased" msgstr "" #: zypp/solver/detail/SATResolver.cc:1011 #, c-format, boost-format msgid "%s is not installable" msgstr "" #: zypp/solver/detail/SATResolver.cc:1016 #, c-format, boost-format msgid "nothing provides %s needed by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1021 #, c-format, boost-format msgid "cannot install both %s and %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1026 #, c-format, boost-format msgid "%s conflicts with %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1031 #, c-format, boost-format msgid "%s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1036 #, c-format, boost-format msgid "installed %s obsoletes %s provided by %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1040 #, c-format, boost-format msgid "solvable %s conflicts with %s provided by itself" msgstr "" #: zypp/solver/detail/SATResolver.cc:1072 #, c-format, boost-format msgid "%s requires %s, but this requirement cannot be provided" msgstr "" #: zypp/solver/detail/SATResolver.cc:1074 msgid "deleted providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1084 msgid "" "\n" "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1086 msgid "not installable providers: " msgstr "" #: zypp/solver/detail/SATResolver.cc:1143 #, c-format, boost-format msgid "remove lock to allow removal of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1148 #: zypp/solver/detail/SATResolver.cc:1184 #, c-format, boost-format msgid "do not install %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1163 #: zypp/solver/detail/SATResolver.cc:1205 #, c-format, boost-format msgid "keep %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1168 #, c-format, boost-format msgid "remove lock to allow installation of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1219 #: zypp/solver/detail/SATResolver.cc:1240 msgid "This request will break your system!" msgstr "" #: zypp/solver/detail/SATResolver.cc:1220 #: zypp/solver/detail/SATResolver.cc:1241 msgid "ignore the warning of a broken system" msgstr "" #: zypp/solver/detail/SATResolver.cc:1225 #, c-format, boost-format msgid "do not ask to install a solvable providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1247 #, c-format, boost-format msgid "do not ask to delete all solvables providing %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1260 #, c-format, boost-format msgid "do not install most recent version of %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1281 #, c-format, boost-format msgid "keep %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1286 #, c-format, boost-format msgid "install %s despite the inferior architecture" msgstr "" #: zypp/solver/detail/SATResolver.cc:1295 #, c-format, boost-format msgid "keep obsolete %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1300 #, c-format, boost-format msgid "install %s from excluded repository" msgstr "" #: zypp/solver/detail/SATResolver.cc:1320 #, c-format, boost-format msgid "downgrade of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1327 #, c-format, boost-format msgid "architecture change of %s to %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1336 #, c-format, boost-format msgid "" "install %s (with vendor change)\n" " %s --> %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1345 #, c-format, boost-format msgid "replacement of %s with %s" msgstr "" #: zypp/solver/detail/SATResolver.cc:1356 #, c-format, boost-format msgid "deinstallation of %s" msgstr "" #. strip tmp file suffix #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" msgstr "" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" msgstr "" #: zypp/target/TargetImpl.cc:311 msgid " executed" msgstr "" #: zypp/target/TargetImpl.cc:333 msgid " execution failed" msgstr "" #. translators: We may find the same script content in files with different names. #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line #. message for a log file. Preferably start translation with "%s" #: zypp/target/TargetImpl.cc:450 #, c-format, boost-format msgid "%s already executed as %s)" msgstr "" #: zypp/target/TargetImpl.cc:460 msgid " execution skipped while aborting" msgstr "" #: zypp/target/TargetImpl.cc:515 zypp/target/TargetImpl.cc:535 #: zypp/target/TargetImpl.cc:563 zypp/target/TargetImpl.cc:600 #: zypp/target/TargetImpl.cc:608 msgid "Error sending update message notification." msgstr "" #: zypp/target/TargetImpl.cc:659 msgid "New update message" msgstr "" #: zypp/target/TargetImpl.cc:1223 zypp/target/TargetImpl.cc:1277 #: zypp/target/TargetImpl.cc:1628 #: zypp/target/TargetImpl.commitFindFileConflicts.cc:166 msgid "Installation has been aborted as directed." msgstr "" #: zypp/target/hal/HalContext.cc:24 msgid "Sorry, but this version of libzypp was built without HAL support." msgstr "" #: zypp/target/hal/HalContext.cc:117 msgid "HalContext not connected" msgstr "" #: zypp/target/hal/HalContext.cc:127 msgid "HalDrive not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:137 msgid "HalVolume not initialized" msgstr "" #: zypp/target/hal/HalContext.cc:229 msgid "Unable to create dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:242 msgid "libhal_ctx_new: Can't create libhal context" msgstr "" #: zypp/target/hal/HalContext.cc:257 msgid "libhal_set_dbus_connection: Can't set dbus connection" msgstr "" #: zypp/target/hal/HalContext.cc:272 msgid "Unable to initalize HAL context -- hald not running?" msgstr "" #: zypp/target/hal/HalContext.cc:851 msgid "Not a CDROM drive" msgstr "" #. TranslatorExplanation after semicolon is error message #. TranslatorExplanation the colon is followed by an error message #: zypp/target/rpm/RpmDb.cc:832 zypp/target/rpm/RpmDb.cc:2093 #: zypp/target/rpm/RpmDb.cc:2239 msgid "RPM failed: " msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1148 #, boost-format msgid "Failed to import public key %1%" msgstr "" #. Translator: %1% is a gpg public key #: zypp/target/rpm/RpmDb.cc:1218 #, boost-format msgid "Failed to remove public key %1%" msgstr "" #: zypp/target/rpm/RpmDb.cc:1599 msgid "Package is not signed!" msgstr "" #. Translator: %s = name of an rpm package. A list of diffs follows #. this message. #: zypp/target/rpm/RpmDb.cc:1899 #, c-format, boost-format msgid "Changed configuration files for %s:" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2074 #, c-format, boost-format msgid "rpm saved %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2076 #, c-format, boost-format msgid "" "rpm saved %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2079 #, c-format, boost-format msgid "rpm created %s as %s, but it was impossible to determine the difference" msgstr "" #. %s = filenames #: zypp/target/rpm/RpmDb.cc:2081 #, c-format, boost-format msgid "" "rpm created %s as %s.\n" "Here are the first 25 lines of difference:\n" msgstr "" #. report additional rpm output in finish #. TranslatorExplanation Text is followed by a ':' and the actual output. #: zypp/target/rpm/RpmDb.cc:2106 zypp/target/rpm/RpmDb.cc:2252 msgid "Additional rpm output" msgstr "" #: zypp/target/rpm/RpmDb.cc:2394 #, c-format, boost-format msgid "created backup %s" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2415 msgid "Signature is OK" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2417 msgid "Unknown type of signature" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2419 msgid "Signature does not verify" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2421 msgid "Signature is OK, but key is not trusted" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2423 msgid "Signatures public key is not available" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2425 msgid "File does not exist or signature can't be checked" msgstr "" #. translators: possible rpm package signature check result [brief] #: zypp/target/rpm/RpmDb.cc:2427 msgid "File is unsigned" msgstr "" #: zypp/thread/Mutex.cc:33 msgid "Can't initialize mutex attributes" msgstr "" #: zypp/thread/Mutex.cc:40 msgid "Can't set recursive mutex attribute" msgstr "" #: zypp/thread/Mutex.cc:47 msgid "Can't initialize recursive mutex" msgstr "" #: zypp/thread/Mutex.cc:77 msgid "Can't acquire the mutex lock" msgstr "" #: zypp/thread/Mutex.cc:87 msgid "Can't release the mutex lock" msgstr "" #: zypp/url/UrlBase.cc:154 #, c-format, boost-format msgid "Url scheme does not allow a %s" msgstr "" #: zypp/url/UrlBase.cc:173 #, c-format, boost-format msgid "Invalid %s component '%s'" msgstr "" #: zypp/url/UrlBase.cc:180 #, c-format, boost-format msgid "Invalid %s component" msgstr "" #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231 msgid "Query string parsing not supported for this URL" msgstr "" #: zypp/url/UrlBase.cc:824 msgid "Url scheme is a required component" msgstr "" #: zypp/url/UrlBase.cc:830 #, c-format, boost-format msgid "Invalid Url scheme '%s'" msgstr "" #: zypp/url/UrlBase.cc:949 msgid "Url scheme does not allow a username" msgstr "" #: zypp/url/UrlBase.cc:983 msgid "Url scheme does not allow a password" msgstr "" #: zypp/url/UrlBase.cc:1012 msgid "Url scheme requires a host component" msgstr "" #: zypp/url/UrlBase.cc:1022 msgid "Url scheme does not allow a host component" msgstr "" #: zypp/url/UrlBase.cc:1049 #, c-format, boost-format msgid "Invalid host component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1070 msgid "Url scheme does not allow a port" msgstr "" #: zypp/url/UrlBase.cc:1081 #, c-format, boost-format msgid "Invalid port component '%s'" msgstr "" #: zypp/url/UrlBase.cc:1098 msgid "Url scheme requires path name" msgstr "" #: zypp/url/UrlBase.cc:1119 zypp/url/UrlBase.cc:1133 msgid "Relative path not allowed if authority exists" msgstr "" #: zypp/url/UrlUtils.cc:111 msgid "Encoded string contains a NUL byte" msgstr "" #: zypp/url/UrlUtils.cc:173 msgid "Invalid parameter array split separator character" msgstr "" #: zypp/url/UrlUtils.cc:213 msgid "Invalid parameter map split separator character" msgstr "" #: zypp/url/UrlUtils.cc:283 msgid "Invalid parameter array join separator character" msgstr "" libzypp-17.7.0/systemCheck000066400000000000000000000005501334444677500155250ustar00rootroot00000000000000## ## This file contains requirements/conflicts which fulfill the ## needs of a running system. ## For example the system would be broken if not glibc or kernel is ## installed. ## So the user will be informed if these packages will be deleted. ## ## format: Each line represents one dependency: ## e.g. ## requires:kernel ## requires:glibc requires:glibc libzypp-17.7.0/tests/000077500000000000000000000000001334444677500144625ustar00rootroot00000000000000libzypp-17.7.0/tests/CMakeLists.txt000066400000000000000000000006061334444677500172240ustar00rootroot00000000000000 ADD_SUBDIRECTORY(lib) ENABLE_TESTING() INCLUDE_DIRECTORIES( ${LIBZYPP_SOURCE_DIR}/tests/lib ) ADD_DEFINITIONS( -DTESTS_SRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}" -DTESTS_BUILD_DIR="${CMAKE_CURRENT_BINARY_DIR}" ) ADD_SUBDIRECTORY( media ) ADD_SUBDIRECTORY( zypp ) ADD_SUBDIRECTORY( parser ) ADD_SUBDIRECTORY( repo ) ADD_SUBDIRECTORY( sat ) ADD_CUSTOM_TARGET( ctest COMMAND ctest -VV -a ) libzypp-17.7.0/tests/README000066400000000000000000000013551334444677500153460ustar00rootroot00000000000000 You can find here unit tests for lot of zypp classes. run ctest . or the binary itself to run just one test Note on libboost_unit_test_framework.so.1.38.0 ---------------------------------------------- When you run the tests manually, some of the testcases here may fail with an error message like: unknown location(0): \ fatal error in "keyring_test": \ child has exited; pid: 7222; uid: 216; exit value: 2 This happens because the boost test framework we use monitors the return code of child processes. This monitoring should be turned off. You can do this either via a commandfline option: ./KeyRing_test --catch_system_errors=no Or via an environment variable: BOOST_TEST_CATCH_SYSTEM_ERRORS=no ./KeyRing_test libzypp-17.7.0/tests/data/000077500000000000000000000000001334444677500153735ustar00rootroot00000000000000libzypp-17.7.0/tests/data/11.0-update/000077500000000000000000000000001334444677500172325ustar00rootroot00000000000000libzypp-17.7.0/tests/data/11.0-update/repodata/000077500000000000000000000000001334444677500210315ustar00rootroot00000000000000libzypp-17.7.0/tests/data/11.0-update/repodata/deltainfo.xml.gz000066400000000000000000006234201334444677500241460ustar00rootroot00000000000000‹OIIÄ\Ûn\¹r}Ÿ¯pôÞ2YU$«Ï’—$'@Þ ^g Û’#iNæäë³(Ùc]öÞjµÚ’ Xm‰—îZ¬Uk‘Üz÷—?>zó÷~qùáüìçêNÞô³zÞ>œýúóÉýí¯;=ùË/?½kýÓUþp6ÎñúŸv»ÿüç¿ýË¿þÛ¿ÿõ?Þ|h?ŸX¬­ôÖr1×¹ŠÊyP• Ǫ'è~gý¿äú1ÿÚßœåÏýç“üûÕù?òå¼Éõ·ŸOÎÎçדïï‡N}<õvòæ¢êù}Ü©?ùö~ÞœjýËùìé®;}ë ×æÇ¹n<>|êsÆ_.¾|~{3ÇÛ?çÞ}íòþë\;tzYNož^ÏtŠžïÞþ9ÎOï.ûÿüŽ8õ_Œ3ûï¬qЦ)Ŭ])·X(±îÓ(ÅÇ–Ù½{ûç ïÃÿõ_XMßž¯zWëõãåïŸß\ýã >øåoùä—Ô¥+Ù¡ä«ö,#Ym1J#Uª±;{÷ö[o ôöú#Ìߨ„c÷áìò*ú”¯Â«bsû ¨¥A¯Q¼¥5Š:Fd§²޵´Žð>ÄŒ¼$·‰YâGs@«:?˜ªúÄ9WÉX©ç:z³°fR/§@5YçV½Ï­ZÈ–¼¹˜êXK½?Î/~Ýýáýî¿ÿ~V¿AüÝnœNù¸Þ»SÚ‚÷[s4uiÜ9úÛ;óîÐewÝøýõè§³Éc8®Œ°Kܨߥ¸&ƒƒ‘º±Vcš±ö ñsÞ/#¢>û2Ô¥P)µÖ†¸@ÖH‚Ä,Ô£¶&%Ü"_¾Ô‡´8áSë®kaä‹OÕë57JRª„`‹≈€òr),ºÐ;Gr£[Ѓ&ÍŽµ‡ÀßGùq ÜŒÿ7…Â5n½øPjrÉÈõàŠKÞP–¸òø ùM(†—¹ˆ C§–si#°×,µ ’ÌÇ2¤úçAqÙ/Æ×छ™ŸÇJ÷ÇØõ˜ºN-D2é¾»L!ICÚˆ¬-¡ÄÞ6ÁP×4v(ýÍ$CiM™ÁMQ‘€z˜Xãå¸iЧ°Ó$’…Žòè Rc‘wqÅo=—5$ÝD¢'TœÂ®¥Ðc6J)¤S”ÚÌt9 =qL$^š£Vðx"K=„ĵ<ØA ©÷PÈÑÅâŠßü!ŒH¢>’”´UÑZ-wÎ ‚Y…¨RQHgÎHD; $»þÇÕE~E¾ºžÿ(¬uo¤]™zG|JÑcè*`QÂÕçTÒ8>@5oב ³" ÎÈÁ1Ö6Zò͸©ƒPHÝR‹Éé^Šøiè¼8-cs݇f(ÊnÓ‹£ I*42kîXò£/B¯Bq[meøõ È—CµæºG}¯ % ©šI<èb9>4¯ÄhËÆk÷1rö‘H)º (ðÛåå%ŒÈÁ^l§l?ê½ù¾f.לàU)ZöÂA‹ËÖ{: F—íã+Rf? ±ÝgW¤–3â¤#ëP+ðˆ.³Ëꢔ Z@ʼnÒ&0®6$LãØISôè ‘æáD‡œŠõcó⬶Ëœv•î\+ÅÁáæSéÉ$©ÄÀÔVP ö*=¡^qËUBGÞCc@®‰5šGp&|lT^‰Ð–°9ŒÎîÂ¥A5eUÉ𔢒]‡Ãl®‚ÛVáÑí-Í@2bÃ4“öJ%ÕPi$?(‹”Ø| pÿí í1‡ÁÑâ‘ r/…¹ŽðÇŒ0ßÚöØù—¾*éì4¸ý7=í”Ò7yö®§Ûͦïçè»Ùòzks®ûÞùºßN|lÌtÖï4Ö¼Ç@i@M‹àeY„Ê)GÞ¶:µÆJ@ú$dk«Þ!jó 1Ÿ[]Ýa¹t'èw9í¸1Ÿ”¶ò=xì~Ä4+H iÐs©Ô£¡Ì2´ÓÜü]¸8áG"ž`VkE™J\”Srb…GvœC‰¢¬»Šíµù = Fjà\(¼Z…S%õ½D×;9§u-=>œ]NŽXIê¯Ï‘þ„‹ý6ÓÝê€÷d7fÉ×Yw7Íw³áû9ô^Y²Ðy€À/«™iÄTKÍH¤C^(šóaQEó#ûdÄÔ(‘6î…c† ”³ê¥T—y_GìtP–Ü‹ýÝ<ù¡ŸÉ²ù=’e)ð)qu¥”jæcöŧ¹sœf ­ž-Ѷ±¬.$«ÀbÕcŽª©! µi‡Bß ™õ°Ýú{PÞ@ì¿–øÕðïW×—¨ˆ¾Ôš\7G¸»®à툢(Õ¯-}Šº-¶äsÒ\´¥Þ@!ÅUqèf2F’Ò½2mêaÕoË;?L`|@‰EÍ‘X=iG¶zΜóûHÖøê.lÉí;h‰Ne™«¾M¹»ùl÷~Ž»U=ì‹Wê}¬™Zƒž©(ÚKW£à)@…9 à˜6™ _‡ü ·ï+3¸fiÍÉGj½…DeʲFÁ¸RîAzImŒ6®ÄÄvÖ|’{4v\D&…­²ƒ-àjëêÝðY½4«ªì*r×ÒÛôàáx›Ü"G ¹Ñð­çѪWp®íi3³ŒÖЇìv\H¾2Û*ûÛ0•5z.Î@C¹³!JIÊ@àææÓ!¿}À/Cƒô£TRÈ!÷Ø‹u9TÖЇï<ÜAœ§Xb™¸ŒŠJ&¹5–¦¾&ð`…5vkœ÷±uÙåý×|u¾vš&§îToÃjðœ¨ÞjòvÓö!÷ÝzwÓi‡æPÚ¼®Ž°³43Nš Ñ’õ¹uŒðç/*æð©Þ–¤¶Æ¸MwNco-BAP  U8Õ;|ŽÃ¥ú”¨‡½*מhÜ%½£ƒ1io‹=Èo X*YpÒH¹$T-u˜C*¹„ÅÑ,m‹ˆŽa» ÅOÝ67µçN]á%éé° Îe(ðÝÑÑøÊxÛ€ìÇ{ë˜Àáǘº˜<ªÖ¥DCFe¬_ÕõôP~äSÉ%F±H¹öijFΡr!xÓŒ ºGÌ|ØÁÀõúr»è——åü|mËùòÕíÙ¦¬•AvÉ`­+ªQvÂBG‘‘t²Cê”>™Ý/={{D¤¹„d ®µVF«ã %[Þ·=ƒµ–`y)âÚe_îZä#0°ynz”=0¨ÁwÓ‚•qóÜ»M[A1±AË"š«ó¨ÒC¢Á†k}†Ó»ûE :jøïPÐO! » ŒT;Xãî !Ÿ\ó°Ý }´¼ò¶\󢊃¬êÁ–<^À{'7ŸV)ÍùN ²+v“øæÃ|Î>½‚ šÓ®‡îõÞ¸¬>‹À-—l°¼e”–Æ:E(ÈÒ=->çÀœX·y^Ú|†S4Ã4=†Ûð°)Mix§¡¤à2v»þ! /&‰–@Ø›Šîc0’$RwÑ5ž›áXœò±²–Ímb "œyT ™ª°ƒàí0i!ü/Àµw&ŠàºÑçŽÔ‘0xaQ´„ÄS(é>.ràˆrà²ë]-Á#h1¥N¨™nl‚AÑ=²¯î#ƶP-‡š\‘d¡ÆÑ¡Y‹çàáßÁ„á°¯Ÿè¼àÓ^Ÿº| zú>û3Xjqv¶B®Ë2ïU9T׿\ tž&ÀJ,Þ‚ ÛΑÌâC†/^j"˜¸*t’À(Â2äÜæÁòsv`y9ºZeÖZƤ*A×T(ûÔGéêîÎF¯Þ‚‡­^Ã$ÄGnœ ç¥<Ô%CÎ8eŽ^£¡fL5Ú0m:âs,Ä&/M_ëÈ<‰ÅVÀ1/†j˜Ïкh` ðM >æ¶ŽçG†ŒKOÙ×6Ÿu¨"A@—pÒ+%ö:\çì¼­Ýnø‘6§=œ¹îõÞ1;†îñ¢ PSømòL U–¬B¦ÆÅ{A>=re>sâÆ¼k4Ÿ=ɼ¤ÕP`b z0òG‚àÅÈj €½Yê~ü§ÃVõ‚²ŠšQº‡<›÷Òœ"2 CeR1ò:Â*Äqû17Füüu ÊA®®Í»£Ê×´ûZŒ`+ŸW’o!ðâ„´€ÃÓé±CþX›×þº/0ÄL31s'‘Z…"¥°m¹}Vmª@C±ÉÖ€D13À¢ÂðH‹g@q~v•ëÕ+PÒÍćsÒƒþ;?oa˜•kÿ@01#'NʼI-ÙÎEçƒmRò~>¾PÅòj^Â.©èÁ÷ÓRÒd&8Ò½ Á;ä¦Âüˆ~†Àƒ¹h‡÷°Ñ+(F›ìËÈsŒASŠõ`Ù £ìB‘S8žkŠ–/Ù6A=쯆q.¦WR8ÚtgЊ߾þ8~û†?|ŠK÷äî·³Óv#—©±8MÑR[¨Â³ÌF}廀‚u^,,v ó1GEX£9ÇÉÅ["c*:Á€µÃjÑçY%Tÿ‘ȧ XÆT ¼™¯v0¹´8àoÇ£jŸT†A14‡£R÷1Éé$(Z¿M§°¢F+³ú,•òpÓ.‡áâ©—¡÷ÅäÁÜu€Ì{lXS–ßå:Kve_É;-pà ˆhxÌ';ŽCÕ…Ac°yÖ.ÀÇ(3oÃa”¦múð#«x¿ý4ægnûæz~õ%æVˆ)TÛÞmY^BMð«#^ÿŽžj°a·œj8Çó€ì—bxÕÑ{…Æ*½Ž<(õÀ¹R®­•UOûÿqLµÑûo§¨_5¶T-ÅŽ”ÄÎ'ÛŸ­-6ÐãØëüt²„]½mή³Áqv½ªí³¯ÀcÚf»c„O]uÜëå4%m@ð..zB©=ÃÇö-4Ò1æ¹ûŒ·×E²ô;Cà$鱟#‡ÂMSeËØ¢W@§32•H ·.RçGüë?¾M+}¯]+¸ë¶­<¿ú'¢ vpªc³˜š9„“iÓÐáŒÉœÇÖ6Ƽ?žß@Ç9áÕ§™¼tÛÅÚaÕ*57àhWýˆsý¤ÿ¶me«÷ßÌ@/:ßó„É–E(U Çúô¶ 7íw>•ã—Ÿ Àkn®L8$âÇ´Wû» šèG¶ =éüï[Ù‚à= ô…œdZegß}t—,o¤h°”k{(:ñæ¼JZ¾ÁÚE·W¸ì¾Á«é>Ö4âí A–Z†.üü퟿âoGñ•ß…‹^ÜþVRÚoæ"ê+;ü$É3wêj“ø—µåÞ`Cv¡ÐÇV¿…ýDð®¶ËÚ*w¤Ä9ÕdKškÄ8i­ùf!ýwFè1lu†ÏÛhëjTe‚†m¥eG5ÌÔ«s–fñ°'ð„äN¢ ¼”.# |lÜš¥Çë…§«#Âbƒ2ÇMn,\°Ï#ùì ¤7ÛNШ*å2.wð^|„!µ9F1ÓI©äÓ,æ…3‘¦JÐg&–­…ãV³9›7¾N—>þ5޶ë=„îÖCÜ‹ô^6vI$SC‰–.2Ë0U$Ôa ‘ðÀ¯qË7·äìÇî è3 ³…¤<3L‰D†­ÎP¹§ mÅ·¯·‚õ9Ì· ÕmüwG¤âI  bŒ»Ð_³2Ü„ïØpîdŸ¨;wólð!RŸI‚ÛxÝL…¯ ó%g.…Ô§S¤< 8Ú£XµœýÁu’¤MÅr™…r)¸wð°è›‹m ¦>{7âí^ç˯öÏ_ÿ÷×ÿù]¿õþÙtø÷“Ü‹7[¼änyys¤ˆ×¿@«…^à²úT‡ó›q(9Ä“˜wŒÇÆÚ‡låóXaÂÜ(ƒ3Ø`®Ì9ÛÍóÉçÈ}7àvAnÃfi/;7/Nl +fáÉS!èáò.lþ$ µt@_0Â(Q¬}¾áH7ËheÑóóãælIç°}&Q€w3[nãÎ68R] -‡ß´+¸Ôv‡ÝIT7õ+Ä™·å-£ì¢©YجwÊ.ÝlâÿòõGzô2ÝóÆ5‚—^²ËÎsIl;šiV©Vx¢ÑÔêÒj ’дa¸;æ“Ò¯$,’þ”ŒÑ|ÃáÓ{„Œ^7]@®yæ9c/gŠÆ/ðNœ•E¢­ÜüA"Ÿ¬Û,‚hò³(«°•€…Ϋ®±Z©%ʵޞ¸a ޲Òï`§ ,ü}³[ÉÚs¶|Ç­[=7¢7w‹èB<¯Hš¸E&FÓN¢Ul=§• nš4¥ÙFßx³ï¹…ÅÃij‘÷ÑÕ(Vß¶2€©°“ZÔ ¨ CjnÊÞ‘c7¯`û\ÆÝ9ÍèfTÁÈ¡’l2—o䫾Öϰ—þ¾í-,µyõÅ[˜$C}3Þa8ó<¹ÖÀX-YÚî­iNóI,N \–Yl#ºíã )›>sJw]’Ìt[TÅëî5íwþXi»ïÕ¢áZl)FX’pŸsu"³Ûî´Ê}§ïá žäZê¾€E¨ºÔ½’ Õ*ZÕÈ0•ªÛ†è×}ÿ0*ÚGàm,´3`ÌÇšVþ«¨–†l²,LŒ‡PvÊF±?ΆÍÿ£™Zt¥ô^s™Ùj}``XM[òéí¶Z_ÅMM-wïÊŸÀò“Γ´¤æ÷ Iü÷ÏÿùúÃú__¿ùó¿w¸+>+rRž-|‘/’þÄ.„½¢xÏo|¹^õhŒÂ;Êãm6³š¸@›óÈªðŒ­š ¾ÜÈ6F˜H±jgŸÐs~séÞ·+]± *‰}Ð,ÑrŒÂºëÊ–©å6àˆfógÈ»å>[•YžŽÕ JuNÒZ^»þÝAxÎZ¼‹¯žC0ÁOOƒe$µã-±¶H½PÝ‚€\ŒÇͯ¤£¥¾k®‹ ˜ÓÑ6&‹;O–Wé^løëwGáEmñ^rzŽE0¤Ä¹É£r/ ôÎ7ËØ¥´…EîÄüuÎõèüÈn¶¢?G©9FŒ<ø >ô<´ðm«˜Ï¾Ê¡õû D–Õz\^6t¡RªæéD›BQçØbÊÍˬ)%‚A´EV°_Ojíõ&°à`ò&Ob1OÙ<Ãì ÏáY½ÑS<ýBGöï#ÇU X}¼jæ‚ÞëeHã<"ôI´`|ªCBFïÁ±ç¶©Ì£œ¸& £‘jšðáá—8m8ÀßiSØUöÝuÜç¶Ýœ»È<\™ìàòN•òïÆ•§¶\,I/¶j’še•ïÙ‡]Xâ ,ærvWªmœ˜j&µŽæÈB•mI.bÐÜX¹a–O¢³pÞOg¯ñiÁû&%KŠÐ.ÁöX8h Ï/-KßÅ'çЙÆô¤F¬Ž:Ø-v«HJ=gßlÆßXkúéW:*’õB»ìù0¡½jæU£LR…CÛ˜-ü¨Œ:›LW¬ü^xK‘³Âì£K Ec:lÝÚÞf¤¤úààl¾Rï1nªd=€ÎvPy'½¥Í2ˆÆê+¡‡?0fr)>zvmn’áëŸTbª­OØgŒ­²Â/9ù ÕJjj0–c½ó`ù$2Ûæýdö%Ã7aúZ<€´å FÔÑ2AÃÏ™s©pœK…Ô[Ý£cHs/½B f¶HHñ…\ÆkEy&U[îLÍ|µ»CúŠJ¿ª/¨ôMÀ¾T°MM…½ Vp_)ê‹s…4pò¹öðÁáBÉÌÇ ©>±sB1X@«°Ú<:%µ½º™Šãä,¼ Ý·ÙG®òC©øjµßŸ7{ŹsêuZÈ5Ìw_sGg@éúpó SJ .pðäýȰ©û-®Î¯Ÿ½Õ9 +ÖŽ,?'†n˜ÞwÐmV§ãò’ ,+^´£à)´©WOd‰qa°CVò„u÷ˆŒ_q²®È i×iØÿj³Clifp>ŒÝ†«¦T ƒ•Jqݼd¿6k?J°LÛ=luá±¥2Áuæ1ž5¬›3NÉ>g¼ˆ!ÙC§0bè8Ð,º$÷ì‚if(øœÙ[{«q4i=àkðÎÞfË÷€ßÄ£§F°oá­CesýÉaõh¶•R²JWb1ŒÊ–>»Cy›²¬×ϲ>³É ‡s–l×ÏÃd]R–œ}©ëˆ®#²Ž,ÉKÂØ±–ìÝÞ YrV]gêú«Ib爬»³ýµ›ì:“í559ÅäXR–äë‘9ì-©Ã¤, MbG–”%yÉYMŽ%û’mɺ¤.9u³d_²-Y—Ô%§¬s–ìK¶%ë’º¤\åèv÷%g39®Rûj}–õyI^rr_OÞÖ“·um[×.—l×Ͻ®oZ×ùuýµ®¿®#Kò’*ëˆ\Ï×u¾ÉÚLê’¢&yI•udÉÑdµl² ¶«–ä%gçÕëø’º¤,ɯ 3 ít“}I]R®ŸÛú¼$¡…-DìøUÎNÖZ_­™KÖ%uIY’—D/Ñê%;³¶¥bÖ‘%ë’:ëj³®6—ºê¡%e©£•×ÁÞd»êšüvI¹©ºžÓ$‹IÛDá-%Ùj_Ö“Ëz“uI©&yIè!;sÉ*ëó’“eµ³Žt^}e’—lsBAÖ%e˜ä%1jâ5qõp\=­ºýuIV“SÖmë|“²$/9-ÞL“}Év=ÂëÈ’à ;²d_²-Y—Ô%eI¾ž3Ö9ÿÇÞÙ.7ŽãjøŠ2Åo‚qÎ-L yfk·g¶¦f÷Ç\ý^%ÝIJ;íþ£­§™¢d‚‚A;Ø@U·X`‡%ÐÀ ƒ`€¶£¢ÕF¨Pá,;Ø@‘¬åmãTõ©×5®aœàd°ƒ $p ʃA$u±þlåAÕ<š'@óôó€~Ž»ByÀÕQ € v°ªF ÐH)@#h¤ ‘¬<¸åÁ È`HàZÃʃÁ6@}BžP+ È`Hà(P@;Ø@U—¢ýQÁ6ÀÅ(P@;Ø@WGyp€2ØÁÒV¦¡ È`H ju´9ʃ2ØÁ¸– Íí&h7A» ÚMÐn(P@;Ø@uA»¡<( ‹ñ-8À6@Ë*a-ƒ2 € ¨Ú¿Ÿ åÁv°mÇ'£‡0î“qŸ8"Œ{cÈ”!SÆ2îÇÁ6ÀÕQ €–àÚmÛѶý¹£?wôçŽþŒãÇA;¸Ç;Žƒ³¡|Ûêi¨§áNîGÀ¾™„ú ²ÃgPÀÕq lŸ>ƒKÔFV9UxhþéÑ?qÄ8AµÿÅØ@•¸‡Ä=$î!MÔƒoʃªÎ÷Ðù¨ F•J¤Õ­üì(ol Z¸iãjv•iT'ײ×o( ƒSªu“zj­­<q~”–Ý´%WÚpU­V±ej•uhpj`Oªc¸ûEí;ˆ?oVç¼{xëÜÎ)ï°¨çáÕê)c…â-³Y^Ü,÷ƒÚÙÎÞŒ>¼ÃÃ;<¼ÃÃ;<¼ÃÃ;<¼ÃÃ;<¼ÃÃ;<¼ÃÃ;üÑÞ¡ÏöÒ¶W¯PG-_´F²·ÜF𮸢cÅÈi©§¥’ŸÞò ˜˜z¹q Ú«døóbÁ%xk8xG€µ’b*¶·ì(+¹”Ù­ ê¯©Û« ñ„›¿ @§b*¬F²dçlCÉTgæºêP/Ý®RŠUÚ}‰ãÎ ðgO×\ã36;’L©Q‰‚Sÿ{Ž’uTP·yVüúIIzç.¼d£Z¶ÔØUë!±íRüj1Sž¹µ\í]·ÏåISªS_å]üt½z²öM ¡—P]+U*—Èv|´9˜ºÔ|¾ÐɼŽÑÎ9ÿ¶bt#Œ0u|n9{5‹§YFEÿª©ú2¦êÆ}9¡.Êôç騫$z«žý!Mç“O$nž»Êl–”sT“Ðe•§”4ýsìmaî~©ªS£¶÷õ½çø¬6åKž±=mýþ6ž¾üë·k«¬®WÒg+µšžÄ¶‰cYòI‰Â©EuÖDݰ•¨¹:×)YÛd~:¿³˜ªß©z9Mí4]ígUÅ%bç¬[¦äCNõ¶,÷eöZÿ0‘™6þ°Ä®P—B6ç:%{-Ný“RU×9âœ"Üç®ÀTC_˜Ô¨ŽÚɵÍĶ“O•> ³¾—‚êâ|›m´/°wzö‡ÉìYÛ~Xl×)ÙË’[¹¯:õ  L¶ÑáˆU»}ÈôùHmGrú€^ÈŠ™»M$çæÅ±Æ-q­ÕvŒë–¾ÔÒbƮǯrPÞ«U{{-‘C'Kʶ¦#½_á¹¢þœ°§VÿúÇ—ù÷¿ï)ÓàÉ’—kq~‘ín"”—k>¡ø¯¸Æ“ÿÈÆ¯kÀ¹O~Ø㼂X½ŒéÔÝS·Ò[¸8eµ<}ÅÛ~q~ªêŒ¾gß-¾ÙYÿTEj¡Ðæ=yu±éƒ˜MªÿNKo?YB‰E‡Rö¾Z4Õ–¦ûP ¶(ڂ¾Úߦ´o{«3èE‘µäƒúKìhÔ*lVÊ#BkɈ­T²º,‚mG#y¶v==ªw¨ê\k-AÿP»ÏŠÅíü-ŠŽko7C¬VNt}Äp¢ÞN1 ½z²‚˜þyf4b.b.z—¶X‡ê(žÛ<¢Bm;AxûÔ ÀŒâßù‘™ÛLŸÅTÖ\˜Ó\֙¿ڥC\„9[|o›:¢d·OvfÃÌÞV3Û5žÙBÇâ/OjÛŒ "Bë[T1ý?!fÁ‹Ùãsb´mÇõ†@NØ&¡í6ì×7|Íø³#ª¥Ÿq©ŽªÀiGíd3ëKM»ŽùJœÝQ9â m‹cã;Úz ŽûstL¿·²éw‹z neÙ8I n5H©#ŽÕ0ÇÙçÑßÌ5{ÄfP!‡†æ†l”;Ø@2²( È`Hà”‰W½E1ÀÅ( P@;›c|™)_„oÀaDg€²u"°ƒ $pmêßM® H·ÉuAãÚ&¢QØÀÅ( oeÀÆß¦è1-yoü¹lfU0æè;HÛ|=¡R#Ùœ}ÇßÍXÑ× ¿]d&ÍøELõC+nûf ”2n!"B(! È`Û0ã|p€2ØÁ®Ž’àd°ƒ­o¡”o(PŒ)tüÔ‰F ·N=íñp |»ØÞ¢z{~‡ý»‰túhQRÜN0"‚Ôñ÷™ˆ P¶8IÛžt”¡$8@Ù]µ–ïÐA Ѱá(m«ô¶¬ËûdOmGGÕņØ~$Ê v°.AyãÜâu(m´~ß´‚z € 6À…ÐЇ‹¾ mË,¾öçí!ˆÄ[( lß—& ,¤‰F÷FÂJD™Àa¶:‚×Ö! \ˆR P@ÞâV`É8žµ/ZßdD›¡P@þ.òeû‘{‹óa½$mñ¯¹Åqè°ýklŒÐR¨ÈøþÕO¡²}Ú–U·Øq2È`Jl¡Þ¯a5jÛÒ+…h Fmƒ¬•XxVd3²”—`\Û†bp!07ÁŠq>/BsYmÛÂ"3ŠZüÈ3Ž[¨#–¯°é,cBí ÷M¢fÀ… à4ŽUžƒ„×Ü<|O_C‡­¡PضP"¸¶€¢±ÛÈÙÚ6"œh$,’±OÒu7Êt|†$pػΦˆJ€.„%'8ä\èr1J‚#ÆFüIàê(P@î¸e4žrj7£mÙº/®Ùð5HFYÕž8œNøíÕÚ —Y[ð´á‘3 È`ø}Èu‚Á¶-, ®òàd°ƒ $p ʃÁ6@5!Кf¡,ÔCi°ƒ $p™é…5j°Áì`Éxjw#µ£ÏçàŸ5«WYÕ!S]$‘Ô&K#ë³n™rH,¬¯ƒ^½-RüÖ—{=ÉòÙ®œÍ­œ÷䮘H9åÈ-6âeíRÔSúü©“¬6#ríŽÜáÈŽÜáÈŽÜáÈŽÜáÈŽÜáÈŽÜáÈ}¦#çÒ…¸yÎi¨Ö'ò¹2«6·ú,uTBóÎîF)±Þ–|ý­#÷.øúÙ¾ÜsÌõ¼;w]€õ”G—‚kEuxÕÐ+ôÜBU{er%®íðèîðèîðèîðèîðèîðèî“Csç—gΪ!W!‡`SO®§¥Jeª×¢²,Ú©ÅéϾiyfÍ©ª3º^CD}6sLz‰°’ZƵî-Ï”õ/ý¿»+Ý[|µ“öÅå·-¾xmoqævÅ'+ûëv'+|õÒÌïÎljOQÔî3‰Et¸X…§ÚƾVÔmïf—)vhÛYY•ô‰Wÿ\U{úÂÛ›ê Yöœ>Õ¯Ö³ÔÐÔN§ý&k¿êj°¨nsÇ_ áíÒõÏ•EUÏ‰àŠ˜ê; ¸œ’Ú(ÕõêG¶’š¤F.ŒàJ•k$àÔÕ<ÿøè3Ÿ³j¾:BS%ÃÌ-[údµ Ø•XÿK·m_þZ'Ö¢®ž§CÎÉáºÉw¢ÐñËlœæ|`ßÕf²·¤Ô¹¢’á^_! Ÿã…]NÍŒ®ÎR`õaž%Ó*6LKj‡e®–NçQ< þ JiðÝz鹊M­ŸsÖÇ —®xIÉ-TG“”"%žZèïJ¡ ïhÐtÃyDªzA3Z* îÁÕÐ\«÷!÷&÷h£ïð0…´×ü×ë¤Ïiýx~ϯ¨N®„ƒØÌ[äÃRÔ”ÚÊCBë–ë)ܶgù»Ö°2Ú“Á‡ôÑ爡ž×B‘Ô]lTœ¯”šï½º@¥«\VR•T—Ž-Þöº‹>EEUZjjsÐ{ž9ÔPͨ̾öì©®þ6ÃÓ—?ƯÿþíßyG‰å_Â/åzZñ—7HKÙSbo¯ý„Ó~ŵžì´«uÙéšPÇ57C΢*¦&’C•¥¾þÌT¹drp™O‰´]Ún¾g kÅZ`ˆ«¹ì—WMW;Ü_cˆkÄ75ß“ÌkíöÙ‚1ív\®PrçÄ2I aŽ©ÿËKÄçPÔHª#åD¾ìŠÅÒ<žw\l×ó6òXTˆ‡ÚÊIŸ³l«ÔéÕÁ Y½Òû©by§ö>[2Ïjï:á\§ýÎʧXnÈVãœPn< ‡Êj«àªK{ò‰j\»óãQNÒ‹ôè$¥Ù¸”™tÊ3 M­³‘3©1~[æƒG+±û×ÛVWSh¦ma.û0IµL_"g ¬IÌ'ZÝfÈϧƒ!¿Ør\­ ª˜xùœx¤X,'Ie®!ªHâ¸Í~¬‚ºK)½mòê©wa'ò/m‹b—j“LË«]´ÓäAÝë ‹›{’¶„¢¸¢#PnÅKŒ¬žÆl6E¨î¦ÄÕdÝÝäR>÷*œ·m¢s“‚ÚZ½ߴׯ¥ ¥}“WDbãîn9;ÎÍæfD‰‡úúœE #µ,ȵ,i'²Ëmïñãw°|éýöp]³]öN•ó}%›(Z–º;Gêsk¯ÚUÕ”l¬£h° R'Gcõ=Î+ûªÞÞ°(©¢‚H\ç2/¿µs@Ú`uoWöoäð ísN ×*¡÷BH4X5BÏ«–)£ä\{˜êªY¢ìB~Wå|ÚöÒ¦X–LV+ÛjWtøuA­Ö0Sê": 8¹]÷¿ÂCõÑ9Q|@-½—†§ØmõBH­§å»þ7ÉggIðÒ˜´'äÏÏ &­0Ö%¬&o%QfUvb^ƒ…2(é#"·í¯¾ý–¿ÃãõÒßá^¥ôRÃÖü¶ Ä;ŠC¦š%êH±›¾©/®þ¹ØºÓütÁR½ß*/58½ ìFIU¥£ª"µCÕéêC§y[^¼·Íÿ(u´×øWë¢×mït°,“-á,¹%²ZHÙ—%5Ny¯íë׌†óª›©ÍfŽs2CX.WvnL•®dosÍÞ¶ýcµÐž>¢‚Þ<©»UjµEVÎ[VdndæÇ²\ØÂ%OÀÖ: :ÌóÒ+$ué$Ž`9ArjžfH“¸Þ–1?DºþÂÑÿ|¸z¹ðšèu5ÏcóXæZl‹Æf®…W9¨Ó´ åº?6Ç󑺹ú`©urteê`ï)õÖF¦Õ6NU8êF|ž4¤“ÎËâZÅtJ¶F°tñ³¨·ìµóv5[×´Q]¸Ý‘!\ðZʶhN &çbNj– }0øQüçÏ=^!éEïÕG_«x½‘´5kâ•ÔìŸj9Õ¡Ö}w¹ÙRÎyZÑ«hÎg6OjÛÊ )¤¶0÷æØ•êâ¸fLI-äXÆíóª¯$ð(m´ÛþW+£7Í] #[¸¹xª£LmyË+kKÃȉì4¿£|!g‡O‰)·´ËÚÊÙ½©Õè[=/KjÉ%ŒÚ› 3¬cD(Tí iúEf=¬ƒÑírÜ®‡ôšwª¡¯5<Ïl«ÚlC(Lf׬î[pfêÏ‘­Ç8=>û(ät°ø⮆WŽGþ¢$Š¥Ÿ£Ê—Ã9öåù€Ý¿ÅÉózfüÔ3y;@<$vwÌj«$ŠL%ÔÙ~yÙE ›€ÿÕ)lðÆ^ÆUøO"¡eðŸå »Ø·Õ["i³;žmÃ.-j^PåŽ7´sæ\]È’JØ.jÔ(ƒÙ …ÙXmø{C^ÅþTZ"ðÝ0jBÖm*mlAøî«m½Í™'dã„t¬Ia³›È$E¸D+n6hÉIß9b›g©y# ãòv¾5»¼uŸƒÞnqG‚, Kžv㯌!.$»¾ÖWÛG…åx3/¤„¬›¤7ŠšJál¥¥G… õÅÛŒPê´ÇBog[³^`¢[r` N›#hÃ[Bˆ`È̾òLºÊ…ãñ2è—ve¹r×8½$˜n3řʠBVlí Ø/Bàl6ZáðÝBÁQ{–ær £±3žÐ,+8(ÕÊ| ¥Êøü«€â\‹buÝ0f£Û Èß‘ ž!é×ã¨Ïc¤ËxèMFúñŒwY FS,lqCzI&ScœÑª„zç@IþÁz åYf¯1Ù¬[·ØÉK¥€õ'!E¬˜¿_ÂYŒ´†àiFºG †ìÁÙ*G˜¾+>ÕÚ`BL$Kb>6¥x xxx‚¬|±à£tí„eGÁ§2ÓÜØ¡8žÊþe¤5¯0ÒO‹¡GäO bT2 °"Ež—é&çä…ªÝòêUÂìÍB®Ù²N"ï8Û•¯’§ŽY6ªîþk|ù|>}ù¼ËFߟð<¾ËÖ=û܇Ý_‡ø)0 3·…E†ˆ=^ 6Ì% ÍLjIAµdW]‹vGX €‡Æ ‰ú#üg1Ñ*øOóÐm컚RäÌ…å:5õ^û’¸S]„@åÁüA[F‡œ™¸•Xf›H4š£©%Pž£úûs9h…À+ t Bœ½Pƒ“©!v|µ¯&ݹPGš¡$w|¤™H=–T­…BB<먳+Åð#9ÝŽGÓü6O' {é&ýxÄw—<ñM&HS©Ã›•ÑZÖ…ļÚJ“–òàòahÑ5V(Ña§Ô+7§”HRmŸ.F¿¡I¯8‰ƒÖñ–„îÃ$¥;<4\æžAAZãçd× ˆg”óƒÑ™ (¥të"͇ÍõÆ[¬„UVDÈ_ƒ}lœ_‡ÿTZƒðÝãÐTœçf·¸ŽŒÀ1å¶fߤ-÷)ʃ‘ÐÈ'Œ¼Òb³âmjUá«‹´™sº¤¾·¿vôò'™õí[ÿôÛé\ôþÞM:ºyÊû’ ˜\fçxÂÈK C¼­—öGN“-9>¸€CnNktCž—‘pÌyCLå[Ð¥‚Ço€Ýaq+"ñ,1}DBþ“eJ±9ô35cX$“9 ˜lcsÉÕ‡kgømø3—¬_u΃¥¸Œ9jÝ8I»âT~:„ãŠú|à0kë­³À£ ˜©„x·FÉ·ô1"Ö·PŽŠxnˆÃÚ @Àyh·›ŠX…Ó&ÓÁPK§ ¿6¿}=Ÿ¢¾}Ý¥§ïOø3þÕÆë¥Â}z»ÆÄ¥ðhq8ã+òX–Æ?ðk£‡5–4’J£Û})r½So!°¯v8´±wtþ³Xiü§é6öш™3>O4éâ!c&Ü,P¨Põë›::¸r¨ÁLH† ôÈèiLåjÕßÎMK‹]Fÿk Kîc.­x…„nAˆ¹qj3Qeh¦Ú­Õm³œjMG—厜Že’Oi>N80Oë¶m” 9•KƒJµ®(agûÓ8~>Möùþ€÷}†K¬=ã~ÍÑÇ!ÝÙ¥Ö²ªkI1?Ø«+ÖV"Wl¸3¤QÕÂÄ“àÁ{a‡‡ó¥ÕÉ~ìOâžU䟥žÛÀw/Jˆµ¡ÑÕ4›F÷3õì<´ý"ðø-:cÌÌ Ã*a…@豞’‰kðvm–KÐÁ¿ä£?•xVáwn×·˜b¯Ä.ÙTמ€Ãt$pI´`®·‰¨f|éœf Ÿ–@úÃשXE¹L+}ßàþOúí›þãÛùÜóç{w èú)ï[Öµ&ꮑÝK‹pK©*>SrP(É…u~Å,\cµ*¼Ð5Øn¤_¥†–¢0ì‚Dm;eEwPœEEG@<ÍG?ã`£T¦°vŒðŽhw7°> J×8ðq&¹213Õ0­¦N#HtÐ\³üGeWåâ´ç2Ó¯ÐÓG Ã:Ek@‚65qZtÔ@ÙL­\bæãz»YãtpÝ^•¬5½­@ë / (Ô˜cÞ¨³øôù|k†wîrÓçe û+¦]°ݺ®«5šª¹çj–vyäÑ€ðZ›àŸœ{¨¢ÈÖeо@~!kh·‘wŽs®Â'­‚ÿ4ÝÆ~D8¦YíX¸p43Ä{ÇÏ£¶ÄË›nŒOðö°w­ê°ñ®XoƒæšÝJìBPÕºQîxûsyh…À+t ȘA2ûTmÈ „‘Rêvβ¾˜é81›& 瞤h²*w) /¢Îªz-mãÞø×·óû‰ØK7èÇ#ÞS2Å\AÑše¸·©êR¶m¶åY—`ŽÔŠ›qÔ^áµm“®·Ñ-OW\à‚f˜À_ƒÀI´Žÿ³$tþnuéø&]é2s‡3kö1F«.Å9×¥¦v«]mýè)×­{k¨ÙÙÚ€#ñ° qã¾ÁuøO¥¡5/ðÐ=ˆ +¼|mOj­7«íazIF—›¤‰VLŠ[;2M…ðMMú´ŽÒª6à‚‘#\ Ô72ñoýËï«&Ûÿ9&º¼u“Š®žñ^jZs,™·gó9æi]1‡p´[ÄeÙÄ%<8º™d7k½Í-DHÄH ¹µ6B—Ðbmfº{Ý(¬¸á$2:€àY6úÄžFˆ±Äk!‚› J¡"ÁFnIG‰ŽO1m² r;œŸWéÉiÈ­Ò°™ \ªÍSÊg7œÊG8¼@H?AQØöªÍ$ê2¤¼K–½ÀXa9Èú~øqb¦QY38‰s\nŽN¹Y1 a뛑'DÀŸëùÞÌ^ºËGÿ~Ä{nv!„JÒ»DHT=0”ÊÌ«ûá!ä|ì @Å5\*º'¦†RaL@Ôjig õ³Øhÿ§Éè.üaж‘î ‰trBVNÄíFhsu'<„ò`ÓΩÂë ­ª´0Í0FÍy^8ædÞ m\‡ÿ\*Z‚ð Ýá`-…Rìê›mlz•ECBL i¢{ÐLÇö„iã>/3à”½.ZmÎH YùÞ¾ü~:ÙK7‰èÇ#Þ]r9ìKu1P3y…Sg¥°ÐEÁÁñ>h‚/^ ØmGñ2ÅdzÀp¡f}a„7RÁ5'Ñ:þÏÑ}øUcâ’uô:¾Ù)D¶I ž!®ŽÒ\tÇø`üZ >úË.Ÿñý'›¢‰9{›§×á?•ˆÖ ¼@D÷8ø™}µ¯´˜ÕÂÈÄòÐj㸸\¢c@øX`ôãr…ââ‚5Ö±28¢z¨ÓUÍiCœþïø‘½t“ˆ~<â¡%4àlÞUˆò6³™ åéÖûÕñ˜ˆÚèÖb¶ËhиҫHrGÕòýD.˜ÓäÍ¢kN"¢uüŸ%¢ûð³:2J¾:q k+AîÌÂÀÁn, Ž€§Þð—/ä`†®ÔfÅôì±Ö¢ÃKÖDêׄÿT"ZƒðÝã0º¹ážµ%äeã¢Ý€¢é•d]Qñ5³®j̓³‹Xœ ”ª+ÍF™(¸oBm”˜~noßþøí÷O§“Ñ÷oÒícþ½*È•’­êMˆ–ü• éy¥ŽkѨ#Ì ?,©®]®ÛÂ0‹&iÁš‘ÄSÂ÷hœDLÇX÷?þùõü*¤?_»KTWy·ÑC¬Wš5ò˜æŒ!‹<>c¸_]žôäð`ô§õc¶î…ðƒƒô²»‰‡-E¤ ÐVV¹‘¼oq8‹¤Pxš¢~ùt@ÑÏ–á䬙Ëpê §ÈsÀ?Ö' Êw»Æ/Æ$ÑlvIjVÛÍ(}àK¯vÚ¨w¹á\z:€ârú Öí'¬,…«TÌSðÃ7uÖgy]–w¬gÝLZ=œCèH@½åîœË…š9½„ŒT„£ì~~þçÛÿßZäòÖ]búñŒ÷êx§ŠèXŠÍb§‘¡O®:~Løt?”Oò µÈPP]ߨ%›ä­£É­rî]LE¹&¤ñ_ÂY´´†àiVºG€›y]¸®Ð¥f#v¯ ¾®êÌÖ!íCldݱ­›Nr©VД—‹ 1öÑÕ™¬©ai‚Åa¶±¿tƒÀ¹œ´ÆáJº‡"QWI™zŒœÝ(U¬6¦ÛÀSušäc(؇[}ÚYlšªuÅîðs°‰Ãò…·ž®B8M§ð{Šßûÿÿñ¦o§sÒû{7Yéæ)ß½Äû0eÊ Âçf I’ ½שúArhÕÛðBkð<«Æd—v½µ[Eæ±mŽQcÀÏ¥awPœÄL‡@<ËMà [¬5¼´)³@ÜÊ3Ûý› •—·§ÂƒÊ˜YT=+ÙÂÉEµ ›¶Êä:qÊy°o°Ó§òÓ!/0Ô€Lä{5Ï[,a°oÍ•:·H˚ɌI©âSTUÀ g^mÏÑúÁPg ÝHØ_ ,N'({é&;ýxÄ{ÂîvK)ZÓα£àß÷‡unþ°XìAë~ äjC~ö¡&Q÷q÷qÍŽÜ©5¬éX+Áz‘üšðŸJGk^à¢{¬+¤ï^=$ŒÝå„K†ÄLˆW´‰xm‰C8&"`@ºu·š°„ ² ¢˜+B¤ý’ðŸÅD«à?ÍC·±÷‚49ô”"ñlÓG'ÝW_j\Å ãož"dh©H&‘ì8#Kqbu¬ÓÅ:ÀÙ(¨¿Šý¹´BàºÁ1Ù X‰4ŒØ-«ª°¾û¤Ë*Ê(t|ÉÊO»Ê×ÜòÐâÀ5fÒ€²+x§®· ¥áXáËBÊ^›76F Ö95ë5üFO¼kÎâ¡%OÑjCDrM¾™ Oö imjƒ¸.ë~¤J!k3~• u™)†µöRa™kk 0‡ÔâŽ*Õ¿i*íˆWøè QGµwe:¡ÙU;¼‚¯Ó÷BÒâárxtÕ Þ€|î‘sÐ UX‡H•„4±ŒÙS_?ý•—·îÒÒ§ûsh‚}²iwcZoÿiVªëôÁ«5ÒIïç8¬ãÌ …(`A4$0¬º¸9'IhÒœšgîxYß(k½á,RZCð4+Ý#`íÁ²Õw«A{ŸrŠ%[½ü‹¸«é‘+GŽÅö] 2“É$ †}±}ðÝà'$¬F¯´»ÚýõެéÑtU5ßëÒÓ< t Ýd7£A&3—ì”ê´tˆ- 7 >!¨.l «L–²9 ß s9iÃ#¤t … ùèEí<5ºœ«¶¼FE³€"¸¸ øLOá2V­%Mh×ò̱ûÀPŠ?½ûr>#Ù¬Gé·1~­Ê` [{G¬Sk“&{šVÇ©”t§<Ì„í&Øä1'Di᪠{@¥duVR2%ïé{p#­!x5#Ý"¸HZ·ž,¦g.=‰TÂtΕƫò0™vÊšgI¾Ëü‹ !š&|¹{ÁÆ(Î’;Ê´û£ƒ^r–päÜ5g±Ò ¯¦¥;2Ti³’j÷m“’³ša®ú<‡Ø-ñ7f%A!q&†!/íòü­ël"ë3#a§uH)]p.1m@ñ3Ý¡.âÀ´Í^%ÍPfšÒfñ='Ë2’Ám[i Y@{ØU}†Q,'dDÚp³î©@‡\/üy”þþ݇ó×þ:ñAzºæ)fg$H™ê‚cn!»}¦IÞš ®^aaoì´¯_Qs·ê)G»N`{Ý Ö ¬ÁŒa‘é@̾Eã$ŠÚÆâµ$õö .xlƒÒM>‰a§C©AÝ(ë$Ö¼ŒŒ€LÊÁ3!ɰ½wéSÌÉ^ñz(hÛ~ /ãŠS‰j¨ê%L"E||K®ÂûªŸ±Ï OÑZqÙcžwΚ|—ž3xб£ˆ¦T,y»BSEkÃs~;&ŸÞþôñü:—YÒÔ³1~­{(VéÑJ^pM—šcŽ)Xo€Õ-%Úi!-lÝ©  †sA{©Ãúž ˆ§ÑíÿüãqÂIµÁkÙé,HpÍû #AÃ&x;ضZ­Ò‰ki™@²½ Ffß•b‹:£Õ Ð`»’! à ±Aš«ßmœÊK8<@JwP_ØI‹kè–+bcdWc´]˜Ù‡¢O®¬~€ÀW›èÕ J ½Ø¶Id•#P|øe¸mÒ£|ôáºñmLbH˜¤°ÔâdêðØa:¹ÜA,Ø9í°sѱ>Të´]ŒzÌ1‰å|Ä9¿K8BGN¯Ä½^ÿW“ÑíòçØ¨æ¡v­ezK#MSP£/²ôö7@FäUG)u–BÞúÚ–¡sˆ«®MU…wä™ÄÏ—ÿ\*Z‚ðÝà0¼ -3§•˜»`‘ºzy,˜h§i̤aïz˜ôÕLÂJÞuÖ<ŒRîYA‚pøø*,Ù¤G‰èãuiÈÄÒWW‹õÜ 4¬øQ4Õ×,«j öFaûÈǪVi­DbJEÛlÎŽO¨z)ØnîPµ†çœEDËõ5Ý,?$¨Xmº˜ì!šfÇÙ{« â^&ÇÄí %3…÷9%ŒäÔÚZþ‡+.N˜ò­Ø«|§ p.-Ax„ˆnq˜0Ä‹?°0=s‰T"èÕ¶8Âêw¯¢|YMnRK œ“&exøçÂ…;,Û<$ùécûÓø|þ;ܧyÓѳQžœZâ­ÔXµö…3a_xÈÛ³k\%í¹¼Ó=/UO"—4Ø•Aq;#:GV”&Ô«ã#eXo 8”6€x=/ÝáñbIE.–(¹ Ef_Ǹ¤x•6Våp=í$®’·»OëÍØiMZŽPE°“öPð×ä¼d¸ÁádvÚ@ã!‚ºDgã–º½Ø´ëÊ™á´àq‹g-õz¹1vz{RÓ΄¥—îËœ=DølXrèc«ÜÄÀ†Ü}ú¿÷ï>ŸäýË´GêÙ OL¬djéÒ½!)d¥×îh/⩬^ãÚÇ|ûòAì‰ïÕòó‡«r9)$çØ¹k‡,kâÄì+Îâ§ ^MOw Xúj —»5 àZ¼Uq†ælþRl‚øjõ>uìƒÚa?¼¥Oz×ìo*œ›µʰ(ª5\ƒp.9m@ñ7Ý¡öèœJ-Öôh˜÷rŸ\‚å±Èä#q'µàV+8mµÞrˆƒœïN±Cji}€¬¬éíÛÑOyûñÓ»ó«v?Í{”œžò”µbæ¤+‚i·íï<—]@sØÛÎB4ƳÅ ºY¤GÑÉÅÞa×&S„Ž„ík(΢§- ^ÍO÷8t«]?ÒôluA­;§ä©[¤æÀ~õ2w·™Ã¢C/(‡¡š.­‚ …è3s©vÔ³}äˆé‡sj G(ê…Ѧï¡ôj5L¬í¡hîÍ+C®»kì¼€¨©çÐrµ§:Avúšat7¼õðHñˆ¯øû§¿þôéüºOóå¨ç£<% %² W‰±Àc™’½ÇRì$WA{õLbÈXëD&Í%®:î¶´'¶Ú¡MÁsn 8‹£¶€x5GÝãà3(ªæS–F%Zî–jdë—Úúøu§\ººžRãe;ÞÍ^z¨Y4ùžrBTâéòGqùµ…Æ#uuŽ3 Ä ‘¤ÕúG+«Œ®}݃Iw ®÷샫>ÌËÕ´·^¤0Üq‚íI|rð•—wGù4~ú!…y¿G}åéøº)ƒ–.õÌhËœ#–‰“³[u¡±+¢í½aÏO'"Ql-‰5ësµc(Ï- TUZùÀ»Ý(Nä¨%pÔ- 劯µð¹µ¶÷l¹óÜc‡ºZâ@ÛF•ÜeJ®Y¥«(Ί9´®¾¦V‰ –’å`¬x†ÃéµDãAŽº$º‘!_Ã詃¡òäP£ƒ/Nš­Býí7b€«ï´øLO ~öAR:HÑ{6k~·?ˆ£Þ~Žz{Á-¤}‰óRN2@PT¸»ùY÷ÒÝko/…%×ÄÚJä«GȰ"øíÒ¨”Ñœ—£áâíá¨qÔ5ø´Žî]´®>½‚Üs›åÕ LÛKÐõ5ö6GYKÒ1‹4½¨2Ý¥©v'ê§ëTe`‚#op8Ÿ£Vh<ÊQ×€ôˆx ½D ²‰£w”3«öÖöyrv®UK˜–Öl×ß#̪ª±qV°÷µ9È5Mjˆ~~×ÿ~:AÙ¤Ùé·!ž¢DÇÊWkYfg×ä¹7í³ŒÁN”Ô²¿ñN ¹—Xü¤ÊÞ£õåvé"‘áaO†Zmí@¹±$›q„‘ž/ÿ©t´á.ºÅ!Ìì³Ë±BÒ'—µV@C[uæå6‡*5„–)dŃwD @õ=˜K±ÎËy®çÅO>üÓø€àü (_g>JI×ã<N;”ð1õ9ªÏ>ù!äLvI¬V‘!oÛº¤ ²(µ™Rè>J¶–-ÄÁ‚˜¡ãÀñø g‘Ó6¯f¨—йEè|,O(ùS2§æ){¬"ÈÒd‡óŽù›ý^@O¹¸Z°rŒ©aë åÌ4¡ ¤ÝÜ¡q.Wmcòa½KÕ^KCð·ˆYÁ§‘µŒ³ ºlò6, ²Øz89ˆ¤y?&‚~…Ê<Óh6Éßz?¿Mz«~â)~ÃbëìvøÁ c1yÂ,Ø5ÈÉjt¬ÅNdOÅLzt0s5V–¤îk±Þ—Œ]8yZt.+ž#pC­×ÿµät»ü»aÕ›T|%†ém¥ÍêZŠ~uy‡å÷ÛaÛb¾ÌÉà jLóåURˆ–öÜءھÏòŸJIk`£[ÚôJÐúŽ[¸ ÃöÆa€Œüú¡ÊN f«ç왜åx V¿ “Ò6õ¨áè@ªÍ—ŸÞÛ[À Ÿ¾Î|’nÆyD3 ˆZ#p°êŠ¥Î”z£aŽlvЉ&jƒ±&,%”nO{doi¹mNíV­ÑHô¸ä$rÚãµ õ"öf¢•\U¥É›Ý„MŽ0ßÓ¯9vhÊæx耧ÎÎB…jŠ9‹tègDzuÜŧrÕ&Ö‹°„ÜKdÝdÏÕ)w«{ŒÏ/Á’ÕÐÖ]«ws«:™¦Âòqïì'»4BkNDôB*Âèa¿ÎÏç·LùeÚïÀW?_õ‹(,¬­‰L|t Vžì¶•bwˆî´pìv›/2EÏ0µÛó¥j×ÖÄŽGÅ/¿7\o_ãp"S­Px„¦®A˜Ö¦]Dk¨•Òì­ŽÑ,_ÌùU>eÒíë"G ;Ÿ‡ƒJëµZû쌀há¤Ö:Âúäpà ð„Ó jŃìt†Ã2ÕZÛ§œSŧwØÃi°’Õÿ[nÐþö¹`i6>#êXOllƒ - q›Ô `ïR!|EŒ¿ýùÝç#¨~™ù8A=çÉjKq–Q4¹©qŒ^…bÐJ%käºTÛ75HmxKÞoV‹ºWìºäƒ±ªÐ¹”Ž"½ä<šÚ‚㦺Gc+Ik‘á}«>AÕöÙÕ§6¤é· ªÖŒ„'n@:¾:¦‚¶©¨ j­86¿Cãl¾ÚÂä1ʺ‡E@RÅê&Ydµ Š¢ìöHXž†„×ò1FÕX ¤þ%ZÛMïSI“eToý†Ô+øòš>}9ÜðéËuO›(vmDÔz¹ô`*ƒÜ ‘AêÍe]™¾ÜvÐ (%I­·‚õš”4¯¼Döºs“]•.±Là ñHv—„ë€)z|à ðËjî´Dàºé²u9³æš•Åc ñ¦Zg6µë¼¶Dˆ–Mè«O‘Zn ˆÑˆÀ<éRÅ&ÇÇPÿxw~•Ìy¾Žðë‹à¡)û¼È˜™Ôé îär´>t ´Í?ÎYAð”@kˆà¹Bw!@Uí0 ôÈæx¶ü'ñÏrñ_Ë?7kŸDiõñ—±&£·׫;‹5÷^yèiû*¨kÃ’c ¥<3KŸ~¦P’@%LæáçÈ30 ÏÖþTþY"ðÿÜ€Ã\$U*%V+Ø.v—Štx¶æÜjh ;Ý F‚þ °}Ùž­‡CæzÉTËnElÂû¸¼WÏ' Lz”¾ñd ¬¿IdUò­1è°^%j=†–mýd/mÀŠ»:+V°™"#g׺•àÍð{÷âú z†ÀY´\ÿW“ÐÍòƒ$ÚˆQ²7S«ê;¸± =¦\ÝâBš½ß©¾Kµ°ÅžÑZBÕ¡ÌŒÈ.#™á$º>_þsih Â#ÿH<.?ÀaTîFy“g‚¤ d·›!›jÖðÝyaš5†kH¸´“²Ì¬ÙúÌp4Ђ _ ¸oK„a«"þm‡|_›>þ:VG}¿{¤¸L~0^ÜñF«båbÿÄS&L]´6ÇsDÖaœwpà+v:‹»äÓ˜ÁÎZsðÀÅCéFŠVK ò·EËìßæ9^†ãÜ ±ã‘ÐñݰØéØ(›ÝÓ&SÊ¡CÿæSŸ{ð‰í9”Xû6þ2?‚¯ˆ<ÈW÷  ¸Ø£UÞÀBqná$E&»æ4‹ ²}2"½p‚×3Ü´–ÔCͬ3Û)pK£Âù|›'ùúÛ¼/V%~wº²¹²Õío¨Bu†Ö;§÷¨l=†š)qX!§Éޏ2‹àóá?=‚÷”†Ý6J-މ‡ïˆKIü7ÖƒzsÙêe,!«;(&ÙKÞY¼\ 5é4vëcgÝæt …l³Oþö®m9rÇ~‘¼¯àìÛ~Cx›¨Ùî.GWoÏÆ|ý0í*§SJ¥åÛKÕLÓvŠ¢Rà PGÿT|¸j¢å-€e2¦‰/lŠO…êÁD+«¬ø eµÎêª žÍÁneˆ8 )B+­ ™¶É“¬P‚‰¡:æ_ð6¥P¡§`¯˜(éÊ1óÜ·yÜ=!25ÁO/ê·Á,atñ)Ò(6Ö-à^¿ý~ÿõßËÿ¶î7Tœ¹Kwþ)éÄ™-6þì?ûn,>>yî2ïX´ïü&í¶~ÿ¢ .šM¹ è„áÄW†Þ±W9Gi/Ñ1, JØÔLYÑ«¶Ãk 1kg(¾c{O+8WkoÎUj×èƒFÛ ¶ÂÖÑŒ9wNÓã ¿±‚Y%?ŒÐÎÄɵè‚> c nràd-›[4Z~m tpåq…üªìÍ9ð È®1á6-¶ÁÓæy®Lµ˜ß˜²h¯Ðµœ9Pã*ížWE ¬i¢$‹¦%WÁ‡éÅ@ãÜ4 .Xº$Ztü’Ù œ’Òôè~èn´ä·Xùöíû_ª‹îœõ2ÎÛëŒ{rÃ켡¼æ3—SçE»}ÑoÒ[·.Ã9©Ysy™"¶KeåKö£ µWV´©v[ƒîR¹=FÒÀQî”PÀ…ƒöÎ(~¡ŸÞèjƒî·)§Òë=,3±8?.{O¤Õ0ºØ5Ò{vŽJJ«9f8:Õ 8gZK*…dñ£U[øÜ7h­cñ›§—¸¶dõ¾Zæ¥_¡k.Xlƒ8jöÅ<´H³RâhÒTXë M/DâHwl)98:ŽŠ§¨A~ø‡Ö‘Õ:ÌPühõ×Ó^ÀÄè>J˜Ÿ­…K–/à†Ó…´ò™…ÞBÀøcIzügüV†x¸eøZ¦gmële¶<Û\šŸ£íŒV?,Uÿ”Ù2W«¡«è4»v™×f›g˧OtˆÙ¯ðìwd½¦mõ^I¯ôymõú€?ËÐe¶y¶¥œ>Á`ÙÓð:°öÎV‹ÕjÞxR¨Ó¶g}“‡{çWÒ¶<âÇåÎóÙUoª³-õñZîzg;ÊV[}Œp£æží`ÑËøfMæ€ò8”Ì¿óly¶CIPÂÓڤ[{øz]úª·á­ÆW__N°-0§æœæ-â¬aJµhú ޵™·†½¬Lë4d“úfsv9§AêM VHeÌzÎЄºâ’5EÀ¯9ýkN¿ûœfâκT‚ŒJpž( QL”á*(aUäƒ%œWæô‡»J3û%Óå䎺£!QÖ¬+ŒY ¯Þ•d„ÃÌ!ôkrÿšÜï<¹}¤ìÞ0Í#¦æÛÀÄö¡U¼ªi.V;Š« Ü «Tí±àЇ¹ñmëÄí;{áßê«|ðóÛSi$MgÑ-˜ç›·Ð0F/ŒªJ(é,Ña6Íãl͉2Ñ7“%¨óÒ­¬K‚3æÝü†ÌĶ&;ªO$vÄD@«ô’TJ„˜4Àa“g; ÑÕ“´â·Þ¦`pRiÅßCÿ®óï2[ÖO³öϧ^eŽ¢-Ô¹N3ÑÕÙŽ¬­ªyÜž§gy”`Lø!sîh«uTÀõ†6o.³•ÙæÙòl{ã°‰’ÝÎɦlïµ–ÕpE¯Ûn 6')ÓB0. g DWSÖ”ÎPCº¨ºcÉ—Ÿ¼È皉Ÿ_á xri")(»ì¤åñšd†XÓC5½s”˜_G€êt,èìÉëÀ }ÝŒ¥yo55þZeu1ÈR(@§8:ÐÞÙW(¤ˆ3Õ¤éqÖœ*N;ç^}õ£R`nnàFôxœòÝó¨®ÛÊ)¬ FyØŒ§Æ®{à`pºÕîXË熼…ïëŸ[µºÓÙqe»³@òØ{öÜ:°‡-è¸h—/öÖ%è³Û–‘\ô¹yv)Ú6KA›äFC«t“ä¹TÜJÐYbæë~¼4«ÛQ¶4.ÓµÐmÊ!G߃Ô2ª33©=¡õùDySRÏ£ù—”¾å8þ¡ ×É'öºæRÓ°m¤–ˆt·³q¹Bè¨)®ŒäD`¤Sl [HàC1—ÑÈ[uðÕ„¾°oJëÇCø—ä¾ñàýÅ["9kŒ}t#3T4DkѲá`øšhí$À)®Dêú_êhÃqo]·/e@÷H‹Î&è~ìèö|ë6úÝè~²§‡©~û’áGB)OÅáusŸûpšc4u/nÔ¸vt"¸„^•V-‹d"ÜÞZsÕj^Í&˜}­”kÜûÁŦùWÌðûh—“Õ<¦cÎï]€Œ[f_µÎã`N–wt­,Ÿáß³Js(ýëö¶jªGÒ² “aX9ª÷½Îun£ñƒñ`ñl}kk­ïd=O« mèùͰ¤`Ijgxð­jÖðÏ’Q$²ÌjãÎY`ŒÓÐ\4;rbMÝjÈPAÀÜ\¡ƒÁ¬—dÿQ_#ú­¢þŒæÀ»ÞØÚkt¹9©œ1Íæjb•5š;ãw2òb¢vñäšÖ ©Õw8D&kzYéy€Þr¸¾éÍ?N·¯Qþºýñ½nKJd¯%ás5ÐÃ1rtä¼P]%¾Û«•C,24I |Ñ‘£$I% Á«¡J)ôf8Ýv¸ê¯oE«`DÍä‹ßj§Ñ¢±]¼ ’|q[~ý_ß~¯òW|äØßôçŽÅ;sGO™¯óìIÍMtɵÓþëá¹Ë©ÿ‚ž_0òÝéêÏ.o^*ìBpÅ6XH âà36ðO‹¡ˆ½eòž×ð˜ói§:³Õ;°6)Ø$ªpPõ­¥Õ”J/t4YÄã»HûýëË¿z‘ûûïŸÆŽ³oñ:æl µˆ/ºg½Q:õä[f‚^³šAÐg‚†šËžÌÐ@:ü7Cé4NN½Q ¢Óp:ýl5Œ+…¸cö ÎX MÜ %k9KNú}/=?TMXÿcfÿ‘í[ýþ@ƒOãé“ïð:Ž®´xOš.gO~ˆ4¨MüŸJê‘m÷|ò`K¹i &Ìzæ­7ƒõN±z3>Q7èË &œ±„3øoÆþid`˜R º§ïèÙV¹o£Ù †‚Å Ù<±˜\&˜Y‚úhPÌÞIp•¦åy¤Ø?åoy^òá¬xþëØ~9ÈÂÎÌLp‘µ¾ª¦µ@ ŽzŽò(Ý®¼„”\_®—3 _!+0dI³às7 ì2zTÂÄ??^èûýb¿@Ýý<Îüü¯äÎê@‹ ŽÞ†d5z¸£zøÃÓ‰k–Ðc¾î¤²êZ±£·ØJ‹ÐØŽ{®’ÑT‚ÎÔ|=ZüUÜy’ñù¢™ _Å󖿇U§!É6æÖ‚ÿ¸¬ºÜjÊV‰ïÔymz˜ë§@àS0<þ@Ûu!°†°¦nKæRŠÃŒ™ ä^Á©ÏößÄ[\ñaGj« }îÜS¯p 49·±VâPÄDšš¾ëÑ!êDì5[½ fL—Mž‡dƪï ç)HK¬Àp~';µq.‚cYŸ[G*¦kÔôh ÛD-Z'䨾Œçè[…'꣯´–äklP?;·Í7þì]¿£ÝÌÛäÒÃ>ð~sÿì?ûn,1ýxê2û/ÚóK¼uiíî… 8š©çdmÆ$iœbz0²ƒìk™ȹ½D¤©z'M[Æ­Žà’ÑBñ˜Þè`*$瘛wAüçišÞ˜öºÐ´MúVšV)¯9¦¹wÚê1cBy¸Å3Ksšè©UÊk’äëÑôðV,µ`¦$=¢DÖYS¹IÜzŽ%÷~,IÖåW²2½1ñ–›¶éÛzÓ*  BÄÀðר[ð¤SnAL ŸMá¿®±l+x6Ò€þd†á!7ʆ’'ÝZw¡cŽ™ŸŸ/²—{ô½ñ˜4ôuìx>Êb³$ã 5^ào)Q‰•#Ì‘Yó SøºBÊUÆiD>8¯š-f]Î .wxoà X1Ž9o?ßæÊ6Ï;«¥ÓžÍ«”Óó!VW¡”F΀4P­iÈÆÃ•^c…ÝË‘,Ýø¤Õ1á'ë1ËàFc‚¸â5[£'ðضvlâçÛ\Ïû¾æù1?åkŒôó1XÔ8?1 è¦ÕÁ/¢àZ¬ññp²Š›çLWø‚;uê`•€(5VÅÅèôP%üsIC¨w¸w¶€eÇ‚ö6ó¡sd-/š#\kån Zº ÝŠ †µŒV‡ÚåŠÝ ¨U·džJ–Á!Û_`I|c'bÑr;Xdƒ+Ÿ`MÖyóRkrÉkMð\“5¥<ÝSª–¿?vÙíõUÐñX˜)g“ï&³Ó ü W7tÒäûÑÂÝ=Ç÷üÅ>Ûä? ¢V]˜%hõ› ·µ™$ÙXèž¡Þ`)l\ 6€[¼sžQ|`ƒÈÑ«M` TYM_ïq. ï&¯øDj4ŠV4ÖêU¥—T8'À'_BÓšb›E-þþ>þºo›&ÊœïÚ†=fšŸû¶kËÓD¹Ì΋vû¢ãÞd™.n]R†ÉΘ¼²F4LD0ßZ  ©ëyEçí)ÕAc1 ùF̚Ĝ×#Œ,ÑQš†FK-¤K% 'ØÉ,JΈç&éù &iƒ 7X¢K.À e¤ùîâ,J´ºÈè]ëæÌì7ss¸î!DÌøã#4€™šZõ­SÔÝ E:<k|=˜ùœ +Úíñ Ý6xq›:»dÛÎ×Ý¡q2èkÚ/VCû}(évvh=«¼±%gøR¡vj­­Å*ìm†«[L.•ÌM«,—¥zxˆÆID£å~ˆ4Ñj¨5Gо•Ä›¥z¾ßÿöÿøúÇ¿þ”ûûÍÑæ.ßeº w9ßYÖÚ§¦k/FeóökZϾٲ6È ã¶nr1¾©ófÜèQŒ:br‹I3®%¨wÃu è…W¨? 0;ÄÔ8FÉŽHv9åï&‡q°´ô'ŸgþPF΄é/ãã- Ôofcå=ë¢üÇ,šXrß\dªÁË:O‰‰¯LäÍt§uf:‚ …¡¨Î›bÛ¢Ù¡ÃÁpë 6®d!þPN>&[3oL¾~3?Á²l#ptèµ@VÆyjM 7óʆº#6×í¤Y£¿8ƒÂ _²VoÔMFMê4Êð®ÞVJð2û€Õå6-cImèQ˜âì°ä„͘³ÿùöﯿý&ÿýõÏ>¾ýÿ†^vwæ¬ÞމYîÓyþàåt×<édnͺvu˜“ÑÕ¼ihY'…UWÀk+Q£Äµ897ž¬™¹+Ö­ŒÙY©ÖçDHw4"QØñÔ 4mÐX ϱjm¯u–nQð‘Ü?ê îROÉfŽSíáö¥¤4ÚÈ$ÍÄÀ=w¼ZÈÔ JĘ{³Ù¦´€Åp~JðEƒÂ ,B]FOÝ$šÁd¸cÖeùÜ2½±(«å¹A’o°6Wy@û ÀiìP¹h±¬X¼qÉ7õÃhW w\GR O.4«ÑÞÆ‰îT@ÛÐMp$@TÎi—¿ ¯Ðî©¿œfbRµP§Þ{LÀQ­iÀ¦jaáZÙø6ï•Tlу9žŠëq@xu¿ˆ9«ƒf¯Ý×½–c›9ëb|a™ßX’,ï Â|›µý{çº$Émcá'jïžF‚äþ‘¥ ÙÞØÇ7pR£¾ÕeºªÕ£°Ër|QÃf1³È$ˆ“¼àÂó쇕Gsmj)ä¡zÒêƒý4z’ØéuÜò•W;æ#ÖÐVµñ;pZ;(Ó¦éoÅuX£¥3[œo{žO×àËGú¦šûöTGß195hQóÿü53{ðBSè¦&¯=Õ”®ÄŠñð ¾Z0î$3ú ’}ÕB¾T°š~È–F*å¶·–o~Õ?“_þñ³üÓåsñ[¿ÀëxyŸå‚œ(ów¤r KM'J¾ùÀO2/P ï´¤Ëé@1ÔÓÇ2¯°CÉäñȬ_ ?§Ôß¹”\V÷½ƒ~ü+´¬Á·®[}›Úë a5ZÉê6Ÿ{øÛµ°nlžæQsÀÑaUÍ>¥b4¤=O¬¦±ÎKñ™þÍÙçÿþšüÖ–Ï£§m?Ô¼Úæ!®dN}æ•pÈáœÙ§|Ù‹«·AmLé“›„ìû<»]̃R¶’=TºyC·ù;?~ØÓ/ÿøßs¯»Ëßú«óL#]~èŸó#ï™Aùå…Ÿð•'Ïü“—þ]#ñ™žöòMweˆ(̾þ‡¥Fî{Ë´ <¹6±ö+Grõ©f¦‰¿´.‹Òb{¦Õ̺Ê0 n®M7YpÛÐ{ª ^µŸÞ>B\lïÎ5@ÔÔ6Ù“*½ù›C.©Ø°'VM{ÖÎ' §Ëod¬š´)Ôg¯>R›ˆ•î;7«‹ {^8îÍ·ÍÞj€w†ÿÓÛàwCu±¾Ï:k‰Y2KÙæX m^3·•¨Mß';çÓ-a]åòËDßž ÝŒYî©w“q-PïqÎHySê1¹ÛýæèÊŠ‘/ic‰Ç'´ÊÛ‚n3S5\VÁ|°3Q”É3™–µg3VZë¶î¨4Ö”|/¹´XôÏ7VÇbÏ{MÖÛRžL{¦ÕgZäáBB;åXŠùëÓ¤Y¥SMRøÊiDfž†YÂj"-õW%›®ð© C*Ëhßw4×å&¹´hô ÆðcMÔÝ#ùÛbžºš:JZ µÌ7Ý5´æ wX“•„N¿LÎñÊâ·b’ŒZî•ko/T2™Û«ao»Öjú|Ã|u_9Ý,í+ïZ¥ù‚Î6UvóPEÑÜQš]”•5×JgZ%´+ËBª4óœmTé¾*«z´”ëÃ5Œ.ÂêS>¹U~Ìèrºmn]Þ7™›<ý4Î(”{iDÒÇî»ö ëg›çÊ+(sµL,6º{«L6ZÉ"ûoyÈá˜vñ˜’ß79|¡yοké•þNùr³¼ø2_5d.çü+Ožù'/þƒ&ìUOf§Ìž½ wNy›ìåä193ÇSS'4ç|EVçºk–j!Q ~¶ùÝ:Í$êN‰k0kYÓmçPœh…·/þ>½^[­mð!{õº Jä¶¹äÔ·Ÿ'‘Èê,*íC$TO6‹ìËïbͽ+¯eælF«´r«³él&5'ŽÍœºÏj‚ï¡>½Þ™¨ ñQãôº-öÚM|‹FšSiÙs»L˜Ôa–©ú‰Í§Ú¢¥P.%ó¯VU©%Îx›\C§´I»ýaÛ?'Ýx¢ü«ŸrQ|Q‹@H|F»¼-è©'S„i™jìõɆƒ4ýøÎÎvò8ùûåõaÖ(SùöäRsIJ§g)ÖO w‰6.ÝvŒóËtA’|É:ÔĽ†ë])Ojz°Ðòm½fÚ%’ÌÖC®}p\ùd£P¹r`°ä¬µ{ÌÄ–M«/³TšÇPn¦¹¶mÊÔ<»Û6æ¼üA—DÉWŒæ¿ïÔ¸wLW̱XËØ8‘#ôÂdY;±®=üäÉ·½1ó•îb¶[˜ÝF,Ó:=ÜPl&"Ûbs®ÍNÎ;ß¶YàlË|yw9Ó.ì.ï›%ôeÃ1‡V¬M˜µy¼Î^;eu~¾Y®¼Y™<úôݶ…¨TÒæ­&óuMÀÇUýÕÉ·\>Û,?hŒ9Ó8cÞ·Ïf æ¼&sŸªÉ{ºMìEÑ´Š¹cçÛçÊGssZÒzÈü0s2v ÍnrЩN÷2ÿüõן¤<Áõï7hïŠyÚRc­»âqOGòé¿”)”QVªóÄjb3sWÞ²Ø8•Ì{æø¥mZh›ö¬6øÇÊCxólÑ]À»ýä×íòåæìL«|М½oŽi»ZÉfÁÂÔ´}ë˜6Šåa'Å´ÿ•WøÖC¬÷ùA{Ë:‰9b1'Š«‡d"2Ô¤!ïr¿1{Õ(?Șiš³÷­Ã•C¨ö ëö”û‚ÊŠŸíI68ø9[§Þ±„ãìKÇ H”5KÎ#Y_ ƒ| ©© –,¹™‰c‰î{‹ÿÿÿúù·ýòËú-òùXLü‘Åñoä{þXîpõµñË[xúöíŸpÕ'ÿöw/ʺX ŠzÒVŠ=ì‹úœÃÚÉl±Wm¬d)Ufÿ7Ÿº™ :‚E;ÔÁ88Ô±)Ÿp¸£þõÊYPb—Êö|äý`ŠÈÄç,³zøÈaÅã”ò­…xn£ àÎÔpíÛåbž¶¹ªÒ¹z¸8.Ó’º%Ú?s_²­¿W±UL¾m}{í¢²Åk÷z>%4qèÙ¥W2Õü‰Ø%s¶j,äK«ØÜ_ÏUwí¥vœñéÝæmdšOï5/G›ïê4w.ô™é3`ksЦµøV¿šyx™H½…{ûŒ]1^>?b÷¨›vÔ.g^„c_jÞcZj.¸#ËåL“ÞÚg.T7låÜ•“K.ZVicz¸iB–<û¦°ïî1WÞæw0<ÔÃù2#Íb7¤fŒ<,ý U¬ûð¼o²åT9eëÓ;ÍWà»úÍÇœ‚ ]ÇÑŒq^ti£R®ÍYY£7sÛè¾®“Ro©\v¼S’®…ê&} HæØxJÖ.vMŸÆéƒÏ¼á¹µë\®tþðº»+¨õŽ5.†™ùšš™,×ÍaêÙÔ_¿³%Ì¡\Údý¥1uk_ŽSöH\§ïe;ÍœK¹m óÉß~-XÝ—v£oáæ>½3½.øk<¸Ì½\ñà4„=aYÓ”’VÍD.‘Í¿1õ4sš½õûÞ1¼ª‡‹ð¾ÎÍøÅîs×¥lâ6µfF2¬g­«{×õýDÓ¸äN»Ùr¸Ëj“G{ãåÑßìªKíFì–J ²“ëI…|ß ‹Wõp9¬úJ°oQ ?Yˆ½.öhç>öl¾;±‰™M?H"÷jÆr´ºÛê+mîšKL±Ä¸šYó2ÍÀúÞ±˜Šh±ùÉŠ1a?Ùñ#Çd®Ìt]•ÒèÂ/©ÇBÔ”[דõØbŠ$J,¥a>8&OJV˜}!!Ñ®‘M8ø„±oÍ.ž¢GÆâ;òü´lò‹×TýUJOjß¶ßÂÕDœoÍf’üŠ>RÛ?ÕËÏœÌÇ*–n²D?€¸Tÿ^IVÅÏzÆÅÉnNŠ6ÍïãÝGMË Œ¥%+Öª¤™½ñ/l¿´S·Ï¢—‡Â­H¯8’yÉ~H˜;òþ/öÅQ+ù¯À9.Œ<ÇÿZB6«éUâ¨}ŸžúYÈ¢Í:HÇgÆgrî=ŒÔãórÁ=‘2"Ha¤€nB àœâ9Á=9uÊbÏÃŒ«ûò°1Ów7;È )‘!@YN=ʲ¥€ ¸‡sTp€nAp‚ PÀÍÈNPÁ È×ô«ƒ6Øø·ÊDùøÌø ¸iâÎw®ø®â»hAPÏsà—äøëÀ_‘(Œ>ò ò;‡:dq(Œp)£d§š~ôçð»œ>Wï5€tP@i/÷×–sMçäã³â3h-RÐ"-âéý`N+m¢4ç( ƒZ-ÔEŃp€7’À} CÇ82†#íIöoò‘â1µì>ÄÎMÎÊfÜ9ãNœ4÷ÒóƒCœúiJ^{Œrå eêÊI â¨ó²Ÿÿ´^“Ñk2j8£†ýPôáQt&H>ùhÏ0RD‘ßÉ › œ )„ÐlŽ[wNPÁ È yò€AͶx™ ðáÚ3®Ë¸.>/BiˆpM¤ƒ2¨º=ä(c#² ¸–˜Í-APç € ¸ùÁ *8@$[Ýò Ö òƒAÍ %X¡+”`…¬P‚òü ›‘ÄF"·H )Á"%X$ÏnB~p‚ P@ ÜAwÀ *8@$p#>Ï'¨àdÀ= >È*8@$Ðl)êùA( ƒî#h8A( ƒnA~p‚ P@éÈÃÈP@ 4«Ž:G~PÁ È {+ê\QoŠzCè$@sªQoŠzSÔòƒ2H #¨7äUHLG(&üœ € ¸¾iTp€î#º¸äiô…èO #± ôˆ ¸j#RÔ*êˆu‹BDZàˆ%%àÞ‚º<Ï‚çYð< žg¤/¤ƒp+Òj€‹‘Ÿrå0î„q'HåHY„ò m‡Ï ‚[NPÏŒÏàVó‘­f",@Äóñ|"Ź@íùqª“AƒhñˆÖD9ø+#?H Ùü›ÒÀé´6BNçô>bú·¶xþ%ÈïdмÜ R@:¸=¦ö^N"Ƶüˆ‰ *8@ bI?ùÎÔ÷c^ˆ£PØ&Ò A³jðÁG$wòSA¢OÒº>x˜Òíó8ßäÕ§Ìæ¼)ì)öŠÕFËžd.Y®ä‹ÃbïCC áNÛ·é´ýÕióNÓ¿ N+¯tóPeà~¡Ö6tÚÇg¨5 \Pkf7QR Öä…f[/”›Y:Ï .…6“gµf^¬çÆÕÊÍušŽ =µv(7z¡Ü&AË µFï4:Íü*è (+p€²^Wq<®«8éà†î‚NÃôî… ü‰òŸÕš‚›Ÿ•›Ä¸s(´y¨2(4pŸÔH B­ À}h6AŠù¡ÇÀ—š†@©¾ÕlsB¡f%ý[à†N[‡r¤ƒ ¸¡Ó8¡ÖdÖ³Z#pè[åF z:mð½Š3%C•A­ È  m‚ Ôƒ m‚ªl“ž•Û‚B›à€NÁy(4pC¡-P….(´ .(´ùB­ñ‘rh3p€û÷TPePhãPkccÀfƒBÓC­)8 Ó4;€üÏjm€rF¹1H @­1Hߡܵ¶¡ÇÖº®Ü&š¾Pkt|ö÷·V¡4úC¹1HëY­)¸¡Ð8¡Ðô Ú|(·‡r»M¹jmC-þ|å¶ Ê&¨ëó•ÛEºÏÊíPk ŽïPn‡Z“ã3tš€üB¹jMµ†(½*Úx¡Ö6´ÙÒgåv¨5Ögµ6Çâ÷;”Ú|¡Ö¤3ÊÀ m¶Ö³r“‰ôC¡ ¸¡Ð°0Æî„q'Ïjm‚fÁP>¡íðÜÐi2ÒxVnnè4™®Ðø tÚ¡Ö íPkôB­18 Ó†>«5z¯ÖäY­Ñ¡Ù ÐøPkô¬ÖtÚ€NSè´†ò¿«5†NÛ‡6{¡ÖTO«5†N;ÔÚÍ:-÷ÂéòÙŠZ·öTìÇöá[%yqÍYl8Y~F åÑí—î?k"ïÇÍÖ^žÆ»u¶öÔ,^6›n£{ô=2ZÝýý¼ãìÛwD#Y9¼ÇÞcï1‡÷˜Ã{Ìá=æðºí?W·=æðsx9¼¿Ì^=¶Ý^Ø nŠ…ÍçNfTh…äïn=2‰Àm›oË9ßwLÝù9¼½¿öòLÞûkOMæ­¸ýlš·¶ÕcÖb¾Â4e˜m,Í5?&ó~´L|Læ=&ó“yɼÇdÞc2ï! “yɼÇdÞÃdž …k[òzµ”bÍ~!nÌ¬æ ˜¨‘ÒÈïu&ÎùŸqÖÕ©ù¼OÐk/¦ô4Hj¼J)ÌdT~¢ë®m<¦ô~´V{Lé=¦ôSz)½Ç”ÞcJï¡ÞSz)½Ç”ÞÅ”^¾r.qŸy˜È6ïµúXÜÍ#6_[=€¨uÞj.-ú¼)½ÿùå׿¯ÿÛç‚¶|é›ßîåóOÙ|Wò1«¦˜Ý¼¸Ë^ǰµ"uGMÙW:mÇZÿòA¸´¢ c•ÚÄ„—™kxkMš¹75¡UJœûÜ©Ÿ΋ßþ)§à¼/ïÉT#‡Ð×2¥œTê°1Ú´‚˜®®qz(ÏÑqR¿<½=C!?HǶˆÖTú,&/þ›¹«in+W®%y{:Ý ,Þ"•ªT²I²ÈÞ…O—“y¶gFI½—_ŸÓ”<ÅûAQ”äšñÈ5"ï%qn÷9h ‡¯¶¡ Æ~Y¯¯ÍXx¿]ª»‘pmùóJ hé)Jr›ÑE®n†Z ÷}le ÀìyÀ”¦H$êÆ̓⠂D©>Ü¢c%~«*ò•8¸ÁH~ƒ”5¿5¤q‚|¢žEZŸ1YL'h›`« ë@c• %•g_8tõQ§mö_^Ö‰{3 Þ»Ðc7^0w¸¿Z›VëaØ©çÊÓU4{ë•·„¤wnçp´\$p´Æ!^'÷†p€ñS¡;ÌÖQvãÃÑ.ÚMÆ.„FÒk¥à{¦îK ê¢#ÒPlÔÕŰØkUD¦5z°i›œÉ–’h4Y7Gè™.¯ ”~®.§ŸêUCd©ï€O ŠØZ …ÊaΖÁ×1INî£Å¸Dn§°-C9µALäG‚R‰ €ž‚çÆ·­ o~l’ž§ŸçõTÀR—¤kp!ù"hÉ þZ,Ñ”– õNÜ6¦ÂÎe„q„0 ÃÊŒœÈŽLì«Ì5z¼¦w¿•/¿ÿRîÞOánžÛ;œÅ«ß@;ê²(Mb€Œf¶E¢ìà ñ¤„÷ì´}Uö9Ô,Á&­£5JBV¦$¥’4sO3È„Zy+§ód nâv–¯yèÖ\%›Ù±¦¤TlÕ°'ŠÖPwô±8¦žãŽÚ+SÀa°P½7@–’côšºŽ$S[êYÉùW“÷K|ɵiï5b„üv7чÐtÁ–m]Q{PzbR›…T²x‚ÜZß½›› ¹Ñ¨¾4BxG$vìÑBËH>DÅÐÔ“NÔ‹/mÔL·k˶!ï-û.Š“ˆ¾Pq•}ij Õ\¨©†DµB%¬„ŠdÇ›È2dF²©úa3;Lk°Fë—X­/òÚ£h¹ÝØþÑ® îÈ!÷ðÌB«DPAÿöêÏÕ€ñ;,M •˜}mÈ(q…Õ§jskÉÐ2éJýÏKæçrKçŸìÕƒgÉ5Ù”·ãÑ%b?[ Ù,vŠP+!äv\q˜lÓµë\™ru ’œÂÃQÔZ¥vCçtò]÷tþ™^WJ,¹¨(à¸ìB…‰J®{PŸxOmNõ¥ô¹ 1Åí, %XZµ %çÓ¨™D§öÒàà –\úE»¾þþpøüÏú—ý·þ÷¿ûÜÿü§îÜý²¦ÑjÜ SFª%AЋ”þ„w,=ŸÆo_¿|þË×ïØùj?Oà÷'­Ìe~ÿG#sY€þþúÿðý¶{H8{åÇã¥?Üÿ~Ùó·dFÛlâ}d¢N „$2 »ÓY$ÏZWö4¥mØÈqwÁ˜G†WÒѵeT²µ¢UgìC¯k[þÇù¯qw÷·Ãïã·ÿýeÜÚ×/wå3žØ÷‚eåã¼®ÝËÀxÁ÷)³ƒén´çÙâÜ”¢­Ë›úi[ÐÇT¤rÓ’5éà›éQ£NÄßS³®t*¿È»¯iåîçAríó¼ÊýëªôTÈåD3¨M…^+kI:]ŽÉÇ”uišQ÷¨:áQ€#iVÎKs1Öd«ÿÔ§ÕãVEÛ䢵g©4‡ÁN]¬á g›&˜J.’±ñZ*ýåsýöõÛ·_0[½/Ø&_Û;¥ª¯í…‰êñJÓV]Ìd»ªªdWm.BêHx¾—úcG·3 XªÕ†Îìg\m§˜®Û„.$¿Rè3sáëŠY}—Oøû{òÆû¿ “¥ëÂt7árf‹’â;KK’µUØ¢¥Öå!í¨µe³9/œ¢Ýâ]ÑÖK ¶Ñ£ óâ¤e_‰Þz9 .qpÞ†>9בÙÊ X%[MJšs±B"DÞž«šDN¥· ú ÷p½TjW×| ˜=SÈñʹª5,Þ’Ë—x—?Â÷^§"£kvÌ`Lª8›ñI¾ØŽ±% c¹³Ÿ‡Ç³Ÿf­q´fÇ S%¦¡ch ÐT\üugˬñöL¾dz™ü)"I12 ”*!Ê4„° ª‹Åt>HÜ–¹œ4­”4x0‘6‰¥ÓÌ•CT øo»nÝãÑ·ùõ.¼O’Â_–¢N.p ‘SÊ)‹°íãâR†ÆŠG·Eüôn¿S”ª@ÜãJ5E±½jTBt¶­Êë㎣¹VÂu o™žÎ1x^r:… p–ŠÚy POŠñb+ ¨£Õ‘Z„ Âl§¦ À`h¡•"…£#m³ÚÌ2)RázÝù2oŸ˜ÎxvZ:ÅB4'Ûaš³íú¶êÔÆé¤à±Í-cBØžÕ, ž©$<øÑùl =Å]l· ùQº»n2ìä»Ð{ªÚ?nÿÒuv™lYa¸b<öúÖ墫£™ðB‹³”!¸m² bE¤ eÀv›2˜‰Àà l^} k¥×ÏÁ%ÞIÓoýRþ‚ô±|`Þ¦fÀ½%–àÙöv‹Ír¤ž†Àt÷Üæuzé{.½ûúõ—µ]¯‘~Nî{EZyÿaZ3Ñ4 ( S×^að¦'ÌÌtÎâj…lg g5—“û°Š³$1q`ÃÙ”‡•†ëÊÈ!xõ´ÀYhmü=4 )Ç S£í=ËÖ|#DxHÃÒø'Ÿ·ÓÐÈYr²“ê”lgˆóKÎI²±5­³_¹¤½8þo”ˆ¶P¸,­aF·ÛÑöo©.”KÁçe%dg~cörJK‰{¬aTð‰«W{½Çœæ®›ÿƒ‚ÚþËTÔÓÑäaèfŠ…s…¦Ì ó"Þꬺ«²:ú1ú¬Ûô‰‘‡:Ílå®,J1´a¿!™žtÒ¼zIõñèŸe®›ðCDm`p±z ƒÀ@§~P;‘H\i‚àP«Ï_ ¼š·³W÷гcÄã9£#±4e«ÑΨ$jrMèj5{ü*[¾úusѽ~yFz|{_—á$$ù‚,à馱n`ð€ºÆˆ±¸ÖǰױÊ j¹;mn ï’€œl†P­88[qC”«§eÏyÃÜ´Ç32Ô ÑØÙ¾ZK<†C:ʶf‡•æ„l•˜ ¿N³]½Æ}ŽÆ›çª-Lž—±Î`q™…£²†îfzë é¦Aù|<_svj@ÞÑZ&HåÈ!Cèºê {“^+‘óÔi®œŸ´ËßÊïwáðí¿?êç/ýó—Ok&0|ðø¦îrhŽo ü€M\K^çàððÎ·Ä _žÃÖ/g—9èÑ38]º+::,Jƒ-ô"9çåxPNÛþÁÈðà‚„Ö;ðn°ç3v8õZœje†z?Y‡è4™½B–ΞÐYm; n¥‡JÍf¼­Ý®P3›mÇg¹E|"席¿4dÛ{Ÿ¸M‚ŽVÄLcI’ Þ‹àiÐ7Æç,½½D î(]–çv€ NÔTgQ²¦[:/-Ì|¬ ]J$î,IU®EbCÞÔj§#æšÅ9âÆvü)ôsGˆuP^øJ÷YüQ©îÙ>’W€ìa/ÉÖÇYï²í$—\ú£Ôž9@!êÚ˜Îc॥¿©¶÷2/NZBjóvyo~& æÄ])”&ä#üz³FlÂê…_ÇYÆ¿?vþœMVzÿ!_×ñõ²ÇR÷·<Ü¿øãý=žÅK'8ý”Àu²RMÃ4¹BÂU;èbp @6¡»0A“d§¨OkE!7juÙuñâ‰³Ž®jˆß¥~]ª;ù§s”7x#ŸÍq¿€n·½W;_‚iyî_^¸ À[‚h–†w·3VjSkw‘ÃLÑ9íÑÅžZLÙ¬ÿ•ké§Ã¾05yã‘à”ÍÁ¿ŒEÎÇh*a<µvW)³vŒ ,~m ,?öQ£ºeí­Þ½º‚Z‹)‰T²É™}IqÉöš]51)]Š$(j=÷ H­µW‰x€­MLÞ§á_ï,oÊêSdz9±|ÿ†Ý„õøÖ‡‡÷<‰>`xÙBËÒ…Ž@2kÌšJìHލyX‘Lƒâd_ùHqä¶•ZÅ yîüÀ€÷ŽÝÛ¼Õ8ö ÚøºÅ®%<–4ôMáø¡¡wиX=/‘¤·\©DWtÉ3NmÄÐX#¦°wRÆDÌ„œ‚‹g IB7?Kàbá m\Ë%K`¬æ›âq"˜w yŽT^@¬a‡:™=¸Zæñ„÷«·¶Ýqý¨KšØ%ÝN+·‰'×¥®¡hÿ…¨HŽÃ¶1¯Ð¯xüÇ àg$¦:È&†‰}Fö³õíJ‡b'8Ûdš} Zj¬-Z‹ŸÎ® +¯Ñö_¿þöéðWïW Ôô¾¼s†Ê÷W_¹Ý÷ð⃽ì£]õ"ÈÎÞzX…‘­ R çR™Ûœ"PK):ºï³ÈÇã?ÓûðÙãÿ眖NJñpi{‚+gy³÷³+µQjž±U(LlµOaê¸rÿúSTN™ý¦ £¯`r£ŸCâÚDÒd“ˆ2\®R[ptì'8Z WC"‘ò¶[¡š¬­ ±»b­@y”¦µl倮f_õ:Î Éïß•¾_æ2¾?Ǧ’þä›-$Û©àÅgtKˆÔ`Ã;óÁUÄZ2â®S‹µø»]¾‘Œî‚v—¯K~Eí„ hꦂTP}û⮵9’[·þ"¥øþ“|Û_ÉMìÝÔÚ¾•üûLK¾’¦£Ö¬¦ìËãžîi8 ñ(j{ÝÚ¬7Ù,ÒöûøÙþúùÝf¯·ýãa…¾—ªšq»JóËarÜ“]÷-Þ\ùê»O¶[Y­§*ŒKÍsg‰SgÐBU¼ï#J¬Å,I982³v¸`äÍA£eÓ¥¦Š¬ùpbrä¬Àg:W9ñýÌ¿÷]î8ñ—ªˆó~KµÃëiÏ‘9–á´cnÅ:õ ‚Ÿ—£Fv¦âA2o¢£Tº†Ñ3ü Ub6:RªMlKÃÉî&ï§}Å{¹ãÌ¿ݘü Š^Ïÿ˜¥™4—.M/áÊ•`ñÙð×KÞ[ö%îÏ?ÿœRˆU!!`ee47-6ɺJòH¥¶™}>WMrô0£í¨(“â–ÑNµ-×µÖ1\Ø pýïñó»Þú×ö>2,½;8Ø)»|㥢èftÙë‡?½|éÛËóž£gnSa«·Z¢•3œ”‘á&‚ÓY×ÅLbMÏ PXyH°Aj5!ýš ÊÎÃkÚwK­û´ãèµË¥žJª9LUج CaUÉ©…sG4k­ìfþž¥ìF˜nºm LéÓ´(§ 3›+l½U8—d]Ä/@•VÔZ ˜qvÑqXcÖ¬‘jÉÖ¨ÍÙÀUÂ,-'kåYôdÂË߯6õ¯ßþ|œ4]/yz{³çDŒÀ (YgÍ>•;HALÖY-в¿µ%QTrHå ˆ[¬ôhmÔVJªÖ—.0Ãëœ^J²„n‚¾;ç­õþ¸æàd„áf˜n`{(a–à'©²‹2¨³¦b}¨¹Â_¹’.¼eWôE½]¥®²¸ƒˆ¶-V±Ý‡”aÉ[d€TÔ’Z¤ût³:9Ö¹ŽÒc4ßVÔ}+pQ ¹z—sr%ÃaªV…°ç`§’<{1S›Ú½Ñõƒ\…àY Ç´D¶‘ÈjQF¦J%°«—þRŸ‚ëGûc'âé`õóôêù;@Ýä´v¯¥Ìޏ‚C(MßÁ”L˜)gmd!9I¤ó± y N¬ ›Dx˜ÉùÔG¹ìö„¡ÖÜÐY–¡ZÁÏàó?:e™ðèûX¥×7ZÒc1IÜ,w¬ìf!kg\°À­|B#]„glr<*Î¥ƒü´â_J:'HêÈ‚“2V<X'+÷¢îÜaÛó‹ý|køy'ÂðóZ«àÛ3¦f…mC¨Û¾ñVC öŪ£2}“+X‹&OûYÌÖÿªõÂyf—‹$kè*Þ¸O—êÌÉ;Ø'ÓÐ120@»è|Èö¼Ç‡”ß Á:¦‹*!Éô*VLxäÉÙ2;2áiÿÄÔÚE‚c‹ŸÖôî^K‘žÐ,§²ôîàF&bö v ;Ñ[èÑ X$ZòE¬S­í¾&o]@g[¾úHß^5;®«áþüQ3ŽhmìqGëcoC_†º º eäùʱ\¹ mê2è2”e˜}ùÂ2ôeh϶åÃ&%Ú͚ĵí–l/½ÍRG&ëåzÓ…‰|Å·ºÃÔPœ‚ý8r1}Ê+»î¾Ö…8\u·{k‹®&k¤bs)&J4X-T¾‘«–ª.‹ÎPPhïçåd›ùPê!òXh/F_º·“úw×Ùéäe%&Ó1¶èDúÀ•*‹EûÄ Ë0ËeÏÃh¸Î–‡ mê2è2”Ë ¶Wíêò-]†² M–G¿|ùòäµô$î¨:(G™SRëk«Ee&Pwë€Q=„+baù}м]j0C‡ îC¦hmÍI2n}•瘸zxEQ¦m¥Q /Âú© +jÈk%–½UDiúæCÁuð·f«—E65”G_†¶ º edæl—+—¡-C]]†² ² ¶.ò.ò.ò.íþ|¸¬g a•'VÔ[° ›ŽÓ(.‹¤˜¹Œà`· þÛš¿Ár‹‡$}j/ëÿû};kïWU<ûN&õõ–kÍYŽlS4þC›£[@·°EέTž/Y`/ö™¨0 —Ã/ƒï‘`F;ÖQP3±'|”VCþÓyÉÛ›}@>`m®ðP²ò^#McvlçžFµ,D$³¯à‘S¦‡ÚºÂ(WâÐ`„ŠEM8,mHtÀ¡«Ã ô´sqJ+xÐÈ¢1çå´(µÍ}xÏäNKJ,ƒÅwpr O»ì¶¬‹jÇØ¶÷-êŽ(=BÕcõ!m· W ¤£JNŠÅÍÂE²”1‡Õe‹Í×E¨D7÷á=sJûûð½æJ9*Eg£Íüñ¦Ñ9p:Ÿ59`©Ÿ¢ ÿ;¾?JóáÑ÷Ñz¯o´Ð¸RÓE \Àn†è­ÛÀìpôJzÖx£mi¼C<8$©_5åØˆU¬à‡$l¥Ã:°i=œÜ œGÈÑ>@’¡+ˆf²MØVjΙæ s2î$p¢ú¢¾}Žáÿ¥ƒŒÌá‡í"¹ÒÁ­ë~]!+c)¹53á»É(]EÒÄá,ºtÊ‘²Ï³”L”rµ ±mXtàÎïs§oÕ¢¢Fî.ÂêÅé´Ò4œþ™Ä¢çbœWÀXOȼ/Ïjo’ÛÔÝ*ÕªŒ#3Ö°By_-­•Lb t„ÊQ×.±F× pŒTj qVµÑZpJr0„Ñ—sÕ.^¿ÔN?ñ/”¥­÷gÅåê.øcýp\ç’§µ‚"½Á¥µ $k¥JÁyß)Òd05D#ò¶ï ûR©Ô¬½Dðx‚U9û”ÞÚlñø‹­ÈßU\ÎÙ·_ †ž,óeU*DB­)Š›±»zá½~É €ŸéÛåXÀ› …Ëÿ WG´ó"üQû’¼*HìhŸÖ©Ÿ^9©u·ð1·dÝjs‡KCÌ…ž5XÝ÷û`ö•´†Øí‚ó8Àʾe±ÈÙ çÈêÛõÔféyptÃâ8Ò ÉÚã¹s[DW€}½5ZƒíC¶èQÈårP Þ+üؘB 3æ‰=Aê¸r–(C'ŒãglÖoú}·ìÉ/ÓöàÏ(È÷ßJXÆÖ…¢–S³>zs¸^˜ÅQL·*ÒÊA_‘jen5@xB.J¶Rž‚Þk’!C•»Ä{ð… o‚›5Þý8 ?ðÔrÇ‚ï®HžÃ³5æª Ÿ&=&ʱž+qrÀ—k°u>¢ÂîÅAê ‘ÅlzmÁ¢{·¢§^%w†º”íÇÊz.B ¯òÿøñ¾¹'÷Å:éõ£Ïi¥­;<ùš|ãi…²QõF”{ñ #ƒÅ»Öõ%øÓ« Y`Q<,9O+ÇoÕªëQé’í,§;¤_ñ%zi†Û 2¯£}]õT°¸ì„œ-P7b^‡ÃÊ,€Yùþ’Fܶ†éz]Âyç¥gx&³Xll³fõJ¹„úeK§!™ ¼Žs§7oÞ%†WNþ£@¹üˆ»@su§§žKdp`ÛpnœÛ¬Ô#¦’ujm#®v3ô’÷³ÆZÖDÆ}´¬ÉŽR¥ˆ[7 r12W9]Kþ_oôõ»0×ÿ¼»Þ‡±¶Ð¬–<Û’sIP«âD’•ø-ë¸ðAûª<4:˜ ÜEç/œê×¹!< Oá|º÷…½ÑÔßcÔñàO™ôwßâ”}™d=QEBå8Ô–“1ºXeÄ5f¬þ¾¯7R±JO%øb›ø#?3<‹aøq&§qÔ|.©ü‚¯‰Un…÷ó›ZÈaF¤k¼d·NeIÍbõBdÚ˜·„RK“CÃßKÕù1@ËÄVIxZ·zÂ#ï4ÿ_o3VQø­x„z–mǬqPÑZ9h7B"0£u ªöøj ±¾8x0´Tx²¨T+™¤ÎjõáNw¸0éa>ÆßÏ>¯‘Voñ„)¢ îŸYuDL^ÌÙwi¬uÑ ëv¡øý½^)QkµŒ ˆÁàQ¦å™XñWøy¹'U¶ðÂsAK«X|™^ÚAâFÕ´È’tDxÀPаóØ( ¼4à:m§ƒÌ¬Qº”nýrç æAo=kwŽXbnø¹ûñÅ jŽÛuÔ:"`šæÁ¬:ðϦUCud¢¡jåS·Ù§²Ú,¾Z%20EµYꃔâ„ýΘÎm ¾}™G:ï~Å}йv7Nª¯ƒð0¸ø#j0E½È(p5Ù2•`œNÁ …›s©y¿ñîùwPe+GmUR.Á: [8~ɱT«&Ò`‰ãz_{0ƒƒnÝ2¡Á³²’†dEʬJ®<,–¦N湜 {¥ßô¿~3ô¯ÞÖoÝåI¡È\uÁÜx›·2»ÀSË LeC^äàh—»5±|qªÐ—£“XÇÉÙpÓaE²cçP®‚òe²É’²‰´ /O§fë“%•ª¯0;Aà]ó†c~tô1¨ÖÆð '„ 7-)J”2W®©Mò§»!®"òÅ&f—ÛíË&4ƒµ ¯ßZr³ím/¾‡Z£ÛÒ`±“@F‚¹ûsZw«Û#Ì¿J¶F°ƒr¶ŸØÕû<’\ÿ»ÁtÍÎi6NûuG}â\(Ä(;ÙÑ%ö/Ifj¹I„I;ÏÞ¼ÕcÈÀõO¸–»¦C}¾DGP XíœÄ%…q(ðB´Õ:Fù¨h‹O–Ëañ’M·nõ¬Knß-e À£Òr~ìGý¯Ñþ|%xýøó”`ë.OÝå¼s®&oÖƨe’5¶(³¬k¹ùÀñlò72Íär%⡹øÿ•*X{UùçŒk |™ÈìCr£°l"B#5¥Úc(Ùr^£Õ‹¿lÔ÷Òë*"Th_L¬W‡ŒE#Ï!ˆ¨oÖãhæèrá¥qýü^ý"_lqöq¹ÝÖlB“àU¦fì ÞFõ-§³Ób“á] ~V&% =23G»Träapàlö˜I:דõY®Þç‘”àú‡Ü ¦•³ÈSš-¤}jíG!h‘lQ|4Lí®m;Ω3ö„ÏŸE¾y«ÇP‚ëŸp-wM jè>÷²Œt¨ϵŠö¢>Öu…míï?7ÕM8Yáfë@.©‚öк³<Ž<Ïï?ÿùŸ?‡ö‡Q‚×?O ¶îòt©ã:Å9­Öïµ|âZöpô­ØÆ®Ú¾ÊUáùÀÔˆ²ãK®ØeÖÑ«óð}4±;¿K°Ê—‰Ì>$7 Ë&"I¸Yÿ\,àÒÿ V•|j\$m¸¢å@•éLÕ쎣Û3˜´f3‹æ[HÓÏN0kwEä‹-Î>.·Ûšmh"+±“ÀÎ+3Fg}ÜkKM¬ Ï4q_ƒ¥Gƺ¹êôÚ]La‚X1%pk”+ûóûœoÞç‘”àú‡Ü ¦kJpN³-Ðv Y8k?ü ðx&ôX´~Ù¹Zr–\KÔrž¿½y«ÇP‚ëŸp-wM "g’ÑÊ5”)^¬¢L¬’FÞÀè ð¸ 7`Ž9gX§-Vv®×¢ …Γ8¾ £«”eëž¹·ÚJ³³íÐÙ±z²m³‰ìß}\æïnWí}Û†0ýWÿ^ô¹ZïÛG_ÉØåßøö"½·xŠuó¥Ò$æZªÔÚÀ”Å%&ŠÍJbí’ƒ‚ð©–,¾‘¿\üþ6ƒï>°ÕÃJR§`uÍÑ œA+¢R+ñÑ{÷~íÇÏñHˆìù÷ÀéÍ}ž„Áª7Œ:uÀõdë°•ÒœðuÈ@´&A¹[í/Þ¥}íÈäë*žÜHp…{‘GסqZÊSÓ(z[0ÈuOSQ©-(7îX !~Èh1R>”¼ÿç÷­DÏ·˜zïþ-ݪ]zÔ#Íž{Aárñ·ËÝ?Ö*ííž PÞ+ÏÁm` 8:k 8¬âxJy5¼Úï ßã T­§2UáÓSžà&(¢Nƒ¨irmªµ<âý gt5J9êOíÔú‘[¯ ˆ 8µP1XÏÞ€¥*îdQ™Õõº×;îÓËõM÷¸ÕÕú‘&rï«Zï)WñOJÖ¨¢1e˜V+-£ë¹úÞQ>ª¯ß&S_Nmbe¦ê£í¥zUé‘êŒ :꾫u{¦þŸ»kÑ$Ç‘_TŠ”(ékz;3{7;{Øûû ¦ÝÛvU>ÊYe7°m m´³2;I*”øàG%Å—ÎäA/8â´OFp65.§õD‘Õ Ñ@Gs#¨gi‹µÛ`doSÀ¡‡àEk“,6”@å\Åê­ Õ{Ø\¯Çê­Zì§ë]­L'‰ì´I‘žÁP±â7ø°²œk­ ¬M…Ø·Y HÚJì‘Z´±—ZèÅw<¸!‘|ßšzÖfwÅÅO_Ÿ&ë>¤ÚÇÔÔºëZ‡ûðd¸“µnæXâûùîӊέìÃÚ{B ÍHÞiʳ ²w.b¥¶ŒX®õÒBkN¨·ª3äÀ³ÄÉ'»òmXîWs† ûý ¼1ᑬŸWA´Ûk–z°¢. Ž ôI÷-X}/V É”rXNSìzÀtëTëšÇAW‰/ÏbFü˜ÐÀ`ªÙ%ë§ŽEÚš}iÚÁ[›Kë>zÇûgíÅ'¸»üŸ•²5n´'ª´ÀeÑs®_güë¯?·ú‹Xžÿ.qu§ UõYiÂÒpä¦S Š«iäfU>k Ç}í$ïsè%gIÖÏ î—¢Vjp®j‡ÇÌT$mTG<•P¼ãGhÅÕ.Ö‚¡{áHez…ɺ˜Ù¹‘‡»¹ÕÆ©)ð é;iÆóÓð‚¨ÂQjX6ª®«;‘q®þm×°¿œ`¬›õ ·ymÕ9ÏíhŒbSúœJ·˜QF¶}«Vmý8÷w†l.mºí1 „„.ËG†æ NSŽBå3·%vúaÉ1ðÀÄyÍÇZê°yHz~c´ØA ²lÇr¶Å¨JPƒ¯Ëük–Å6ÉÙ6sð«G·÷×lú'QuË>çK¯;Ä6f" BnF®ŽÙ5ubøÌè×ÎÕ$øƒ‚¶<+B{#çMµ¾Ðw`_új šŸ¼C|—üã"×&aƒF{AÝzQñ>’Š¥€Só«°í$M%÷à7³‚ÊUMgŸ»§Và^wÖ {RáQú¹ôåëwúGÿÛO¤#xúSÈÈ»û\´Å’}w^‚ªFc),ÛÃSßµãC=hnaÝ–Z›5"ê´lè¾V­ý¸5Õ›à×`õ©\äí ?ÂDÞÝçbä€ÕX ÉÍ×Ô¨Tgþ#…MÁtožkV¸Ï\­‘QîMBÈÀ†8f¬VM™t¦z®øhÇ¢¿œ‡¬Ùó _úÞœSé…„‡±ÒS5v.P pêæ¦Vò>NÇ®MkWU÷Ñ!öiEÁxl (Ê„5ûd¯g’5k~Pl|Ñ4Aª°ê­†ŽxL­š`µÖ¥eé–ØÜA`S\l¶-Ab= Nlp!Û ³R'ëðÁ}º1ÿ$²fÒçÜç{«öÖ>Ö×âœ[ÁC[êCW‹õŸßPO÷Þ?ÈÊEçl.TÝ^]òæV‡#¸–{+R°"|­…n£{JÞ‹dÀs,í¹§Äœ&Ä@!ÔìF³A¹Y¸jãlF…»a­ ÷s®j÷­Üopÿ颯Ué߇V× 7F°'‘»5erqië=¸E¥Xà9ÑAÙ¹ YË`G k W f„›X^FjÀ•y^»“c>y^&'œÆŸë_zt¬ìÏp¯Ã6´õš˜[µðÜhW§þăþZìŠë¬US§æH’†:‡‡ãµ‘ѽäÚ¡›sqê­¾ ÖÅ/ ÝH?Ù\žb[‡–\¬…LDjÙÁ'JÒ·ÝÀý"gÈ–`ÿÞ© ð„†„æ³ £ ÍÚ4‡X=Ÿ«:»•þעк>€E7jÈ \PGV_.–† ’i]\³ÉyC *i…—õà²ØB@$P¦‰Ù’¦l$ŒŽ ǯ'k˜Þ¼ÊNŽÿg/…—„üÇÄõ=.Als"MfZT‘IsN3 :YëÛ«ù ýD­7ó€ë°Îäi­Ipf‘0§1&£Ihcs Ìgz„¿·üÁ»_ ›!L¶jGô\}cOi®-KÊÜ÷2áÔ#¼¼›µFDA1xlâ‚‹ƒGê)¬ï¿ý—-€ÁßmøO’ûAk²F.ô)9eqJñpìÊZbaŸêëÓ¯síã®åþÅ^`EúñÏ2ü}̱щ6ÕÅv,—¼ô4á¬ÒG)¼‹F~s~ûV·F¾"èØSÏ£ÎÕ§/±ûØ¡6ggBZ¥W`2‘ŸøÍÚ8q ±:½ÌhY1ˆo‹ÊaX`¨Ôš·ÞJ•:é úVö_…:«’¿v®oeÔdÍâ5sËÖ'1x¢·têk‚Ã~ZFã,‘”ƒeêW½¶²FŽ)ŒL,¥ÁW—xîöFð_ ;«âÿî\k`@66xP²vÒ0©ÛŒ­ÂT¿núÙ¤€ÀVõ6lr„s>ôª’g憰—,c©kháâ¹¼Ç~!ðçëá¥b÷Qm\ßå,é¾N’KeÊÀ‹E£%§)î74ÐQI6¸}pÎçŽ~¼ÍO‰~<ù1hº‰bXMÉfâÞCꏿ{X9ÑþN¶ šdøÙΞd&DDÍj±\@F¡c­õZôÏ¿¾ýöÜòòØó~ùúãÛ jª¥É"tri8 % <ÀܦÒå•pÌcÚæJ´Éu5ù*V˜gäbÅŸQÔ h’Íj÷M…¾C _µÖUpï*¸Ñ€&¤œmãföAÎ7k0˜­}mÏ;p‘F6ú.¹ÌBa€ u¸ŒDyZáwÇVg´TÊ?E_ë Öõðßp£Š¦ÞɰF©æ¯ERGì‡9!–ÚY é 4&¦ŒÐ8ÂCx.5sñ­JheæèMöº¯MÔÍÙZ€¥€çÍ ‚‘š¶îª‡ËÆ *~µu¶Ö~+¿—ÿÝ@1ú%Ë»3æ×cã-åÙõßOI7Aì剻ö×—\ìbüìîB±7Ÿ_>x‘f£2\qM}ª ÍÌqA3Ò ¤€Ã×ÇêtÅ›d§ž8m(K E5ºP*ÙÜÈ;ÀÁ´HvÜü±SååýÝ«È6“¦Þ¼ñ"§Ef'ÄeÁ€ÅÁ•'ÇŒØV¤2Üàô-µ¨ÙÚ¡Ê+çvƒ|ª$ÑÃ;ñ¡%7`#±XSû8j¾ÇsLè½Ñ¾GýgÛ¬þžÉÞú7KÁûJH%:›¹Ô¨¡ÏÉ6¤Ic»Ãb)ˆìŸD‰³M"×UàS‚/ˆü¢¥ €ù ¡6¬Ù8>m±Wòzo°Ö«½vbåa»÷ÅI³‰µ‰±ÆÜæ¸c}'åàÁkŸ]w3Qò=yoÃã: eUßsÒì䜟|o¯7>òÙ&ûê"÷¬ö>yc¸u–:š1D®®88Dl7|Ò nTw‡á²Óƒ® kïUÄM ¬p aëÓ{Rë~Ùüø`Ó¡áÞJí½í~Xd¯æ[ƒ* ÇdJÕN„|›)êÒê=p+á`ªKóʱÖ'lÃB‚ìl ^XGÒð§æsy;.%ÏšÃË$Øì¸?ŸeHw-oq‹oü±Ù ñ=+„ÿ=êJõƒÚÅžO¼,—^–‹~]î{—›¼úäÅÓ ¶,p꾆5ö9ÚXæÙMMäÜçr(®‰U…Ää@º,ãD ¸Èp«E¨@‘ƒm ]Mxç£ÔpçÅœB˜lñAë•N6å}£‘ë6aOWˆ9‚u}Üá®Õ¡-«¥dІʃÒ,XYì‰fÑsê`ò’ö³ 9-Cî¥Âߤ.,yJe” ß©k„:™ãðF+-öž®‘W„[WÊ}ðv­—X)!Y;¶äGÄr™”b¡V\ìÝI½8Î3¬M› “ÅKL“lÞtòκ…v((špåùäÆ¿½å^îÏgÂ×Ëqùy»ùÀÛ hqɪ–Ìr MØQñž´…Š@ë\êÏ𿚶Tp?@ÝjASg©½{/ñºŸ-lÃÖØþ·®…ƒƒ÷niÌ~p¨n‚ŸZ®òVQ¬òÈGp½zrÔíïßþø†ÜÚ_þ,úþØ“´öñKTsVÚr…õÖHÀfʈÓCd.¯^%Úßa€íƒÑjµ²R±A3 Á¹ƒT‡’iê8W¶-þ/ áß?«²ïÍJÞ¼dé–¨Õz¤á¡€Hoë²·ÁlûáÆP,'&÷K^\Xœ²N‡PÙ†àäs¹>ײÿBüÙÑÀ}ð³¾&¤Ÿ°HøáìC…èA{êÃ2Eæ–âd›"QSZ³ ÂÊ8úÀ>Eë‘à­M.ÂepãS1_ʵv®ÊU„¢¥u2ö€¥†ÿp[1ßïþõ_{íïÝ[½É­ˆ¿‡ìN61 |iì.vÕ¯vßûàêê“øÒ” MÍ ½¨’ ‰0ëi‡Äˆÿ$¸—?Ér×eÙx¶vHùn§¼|ËÏbTÇå'~ýþ÷o¿Ë×½\Y–±8µ$yžö„bSvíÁÁ¾O^Òç_oYn%7r=ØÅö…X}}’{êú¢0•Þ‹PIÅšéR 9XCØÑ}䥺3®¯Ú[;YéXý\3YÀuÕJîÁÕk#áÖ R ¾j«O4Q lÿ'‰$Ù'A‚H«ƒ[e„ÍÙùV´‰5Éç™ÕŠn€#ó\‘·F²Þƒþ¹vòÝ ¬šÊàÚZ‚íU7é¹Gá'†åæùR¡ìƤ &Ù·g­¡]`õmä \ ±Œh„yZSËVÃÉòBà•H¶C3)R»LˆD!ú˜¦ÏuËeýö­þ«ýùÿý׆ߒ_è­•pïW/WnlyyâW_ÜB2î¥Ø·Ÿ½øJ.‚ÞMðŒHŽA­[›øWŸ¹…™Ç »0= :Ì"-öŠp¾ö »ÔŠ@3á–¬­Æ 4>žž7ñ^æï}ÀSEþ:¯`Uâ÷Í'¸xË5ci€F×bË D›s*ǪÀ­ñÇþ][怦àÎt«KéLKÓ\#G²4„ ´}ŽÀoðô©2ÿ1ÍcUìwO︖¼½÷ƒ¨‹Dmm-ô@‹³…¸.ùÿ< Y¨ Ì.ZäZü²…’\.亯 †§ç}‹ÝTÊO–ÿ’ù ÞÝã’KËÇ´íøàí€_¸#☱Y;TßWóöd I¹ŒB$~ –³q +á.xúéñª¯¯²“Aù‰Øó’úø½¿Á%¥š[µÞ…Vé ',ézúÔC SÖ4bÜÏt±|îè(„i§íªÒÐXFu‚eQ™ú0Ééiv¯¯²·¿þ™÷esð¿ûþ—I%•ŒÉ.Õç4R­Û·´:fXX÷{ZC£ˆZëf͸<1§ƒ¡Þl-oT<=‡kM _¶ ÖTð¡eð Mp‚; m>*ìÌÉNS‡› ‚Zàt²¬jC_ìÖôðQŸp¥ŠaõåZ§bg³JÓh)6›NgÑκ*˜((-\<µ>­Æªj¬ „HkËÎò1; ð|½¯Ðÿ6j`üÿ¼ë#É¢<BÙ‰ÿSpÍ«ÛlJüÏ_~Àü/þ½æx_s?®_®Ý1<ò²\|±Ë~µûÞ‹^ï?záî(j¢¢p±ÉÞ¶Ž©³‘Æœ»åW­Ex‹Áï9ö„˜£JéS2Çbýu³Ÿ™ ¶9Ÿ³ùFäïáêé…¬5߇UWò¶š(êÞ"h¬†R¢j`’â*YB^[“·§ÿ'îZ”ܺqåi‹€$¾f‹0ëJÖöÚNù~þmÈŽ“‘ÎCҙѤ*.Ûe3b“n’üÎ%?=e’ØaÉ#9åVBMÉÄÓôTàÓÕÓ¸­‡ÙÎx_‘Ó«ùßµ4ê73ÓÅÀ÷™êiÖVbÞdMµÓ@éó|²4ðžyï’Z Aƒ²[¦§²ÃgPÐÕZËT?ÖÊß4ð;~á‡ÿ‡Ø?Âå#NÓº{Æ,%Œ¼e:À3[¹Á:1siÔ¥TD»à±d2Î[X ,¤6?#W«“YDu •öpsû*~á-™ç‡Þœ.?£¸,T€@ ’tëT)؇¶„€ßm®<‡5GÐQ†•]b.¶½}­ÒR‘Ü¡—Bd}Ø?ÛWÙò on(œA÷ò§–§uÂìô³(Vð¼øY¼ÇPÁº5 W Á[Š} š:gMÐHót1ôÆÎ’¶Õª¤­ h§–(ÎQ²=Ç)»ieª§Jqý±{ K <;2,CqWd¸B#…žØƒ.œe‹”î­~†@ãÜ\A#‹Û©’4“¥rY ¾àJñ¶­õUV[…#Ÿ‹ƒC9„Æÿ¾Å¯~þüéËÚ Â›òÓßo?BR‹O91N C¨=LäTz(,±ÅæÙyZ¬Vvr©23L4¬FéÙÚ7Lvv|áL;Õ€iƒx£{“çqÕ"·Ö2 éœ3d—ú[Ò–³ëOBpP´“Ó ¶7¾—$:Sd-1PhCâ5~•Ïfç·b…Û_góÖ,w‘×22ƒronH‡ö cªÏÐYÃ<5Ô–=]D†w²ª]¦*%%™Nr•‘¬>«ë•áÝ'MßíÒìšóõ÷yWÇqùs¼JW>„˜¬f¸ckx )9ÎÝŠ‹ïy©n?hm§œ6)aiª04ÖSðöBO¬• MÈ;+ICÕ£¼þVïdI.‚ס¸+£âZ à"†ŠÙá× Üƒ‘ÕåÖ ¶7uGg†ê®Bç£[“iÓ Í“!ÖÙM §pÛ•¹5ˆ¾þï]l ^{$þ¿üø©êÅu«ÓŸ;ü4Ÿs"ûÌãù¢áÒðñÛÒ˜˜QIvdÕ•"_”xçìV@ØÉŠWÂsgí}³-Iín’Ï–*2ûÜ ê ïÇýǹŠÜ–Î^ÕÒÇGøjÏVuÌMüÁ!ù¸ ËNË"«Ñj ´{g¥¡`»kaHÊ…ìZY¶mGay§ýëÕ9ê*H[J_w)5ßç˜=O. ªÒxöVn} òÛ:ÊAä Á_úÊ#Û!«ÝËÁ…oudˆ,‘C–ݾÎçO_¿ýöEo×|;$[®ßÿsLí–ïÛKÏ9¹Pij³v÷ŽÖb9cÔb¯Öhpé ÖÇH;UPl…£æN€cdèÜ Eëä'…6­wæ@³½Z"s±VV¹o¹,â"¥(@ ÑQo^ºr4ðØE4qÃÛ¶‰Í•Â1*:@dÃŽ§zn£[‹k/Ûüƒý•6qÙ .¡¹-«èÜ] “«ÎŒ©ì²ØdO.CµBsÊ¡/^&ñˆÛ›-•8Ânk~¥vÃPBÆÊuVê&Fç7´ïÿ?|Ó÷ò?Þ~Ô†\=å4fv‚¯ªë3X’Ep^k¶ª¦¼Lfˆ3Ûw¬ZDèÒÉ.ÖÀ€—rSÝE8-XQ¨ö`ÁêULžöW¹È®±¢€¥À<ƒËÚŒÜÝ•¬¥[¥È>®âvNN&<ø€‰´Æ}¾GP—4õ×¢VMÊÕÒ©Úìºä=äñ ,w3Ø52UÕ ˜ê®©rmĈû-ÎFÈSsê®#™>À1„á}·O~ýÇ!¹Ú>‘Z­›¹]Nðƒœ¥%²”}¯ð" °D£ûíX0‚¾6‘`û&2¾Dç|l­Ô˜ Â7b‡£áá½öO~½ú Q]íŸx"+Ñn.ãÜ[7Åœ»«‘¤Aœ.Á¼½Éè’p,vR`ƹ ú$8t? ù!:¥TИìº4#âŒhŒ¢XËZ“õr#®½¹*m5Éò÷¡tŸþøüŸkEá0,ÿ¢BXö üëߟÿíJ˜ÿç‹OçœìÿÛž~S _yÀ)z¦®”S-V2ÕῘ᳇ƒ_ßkŒºØPÄúlßÈâôt &<ˆâ!Òºå´<“à1³¸ÄåRzel)mÂpÃ2ZCaú¢Én·…’ЏF–’¢íNÁ´[ý‚e0œn›ÔZ²üNß‹›pép<­"ŽQLÃrMP!?Øáb ……@óÊ@ü 4›XÜdÖàP0?ÆÜîYwç-ÁÊ«j‚M´Ž´ÇÞÖcVhšNSN=føC¼LJÆG!ìÈã7^Ç8ðËçúõë÷µ^³oÈO¿^ý8C-=â$f@ŠÂ=K"»‹˜EC =XÛRpK_¨{å¡gw®™b €ûµàÛt›5œeÎ\"œaÃ_9^+ÐúÏb¨u nå¨EÜÈÙR£*¶‚Ì ÜRcd¬÷Ë8ÐÎu_(¹Ñ¬¾ƒ(:…ìØÈ o‹¹…È„•ýH7ˆÙ%‚ÚÏP1J×è|nšd¨‡_ KV9SÞém'†9—ìj-ˆÖÊd]0H$Ox}q–ŠPלÜn¨pd èZëL34ŒPÈÉÁ9,q‚ŽÊ~n ¼òö6a~&Dp½µ8!$gÄx…€ØÉ~X×´A]Œºœ§Û„}xšþƒ°¯géídýb’Æ,, åŠè‡Ð,¥ +À?kÆØm=Âê6]³ÕènA´[FFÄ`×:¡„ Ò¹mKÑh[_y’.S80LárÎÞS®nÍ—RX|X‡ñÜjl}-g·-î&B¥×_ÜOÞš YOK0í{ÙÇî¾\NÑ݈vx–¾Œh×õ®höb®ÄÉ–sU«³¦IÂ¥ÄÙjõ6³íë<vÄ]œ&Lƈ56 Sü'Acû0àq]nø ëúýÊsuu°Â±Á 'Ž™ª¯I ª,Ußy{Òl^ËÖŒµÛ·M1D:’=Ûq+4„J£æ: c“­ÃM÷^pøõeÚ—úq|øøÛéÏÏ_¿}ÑúNràêÇ8&¶wŠ~ ·C(*è(£ÌbþÑÒ†?êõÎ}áጘ—¬IŸV›Jð-®õBÖƒÈVQuî`:>|kŸ>ýþßúå÷µââoi#_¼ÿ€›\{Ή”GhVQ xÅÁÕ³¸oÕKj—®nÿu£{ÃVÚîoíbÖHž»Z­}öx"» ='e´î»?¿ÍÓÜå627äU`$(ÝÈ&ä B3”FV‘,-DZ&nKÇXÚ0˜Ö7“ídd¶Ò¥%»v1ÒpeT—úƒeŠ7€y²é܆瞴ŠPi˜Õ–ºx1x¢D¢9­‘â\Cˆv¦Zó—œúÏÞ¾+s¶­ÉfÅâ±®€}>VÓïÇwš>¾Ç¶½½ö‰]|ü4#OÍ]+aD;ÆÄ޽\¬ƒ lêÒÙ‰—m!@A¦‡ƒéì\Øâ@0Ñ­‹ŽP°^ fâ•xe-ÿÍLu9úMºƒ<êþ_1ÿ‡ °®¤«Z»ÅÑ,;Þ6sš4‰å—äê|çœRÍêµ$_à S^kú?™—1¸‡Ž.aâzŸ`pD„Vr‡ZÌÁ£ Ó¯À‚ì$ù´0ªO2õ›:1UqúÊ·Ué }ø8?uýøM¿¼ýýòŒ´ø“‡t*œ˜¹ÕÑáɃÀ©ø–¬>jÉ 0Ûæ%iµ&Ójp‹{ehDT˜.¹è@ßvSe’OñC}ùô€üõêp,<âÔ{ VÂÍXGÓ”G1'0†„‘ ®|ÍŸ³/!)${‰ NÅ6õÜ,b¥¾;\"âxJWYyëØmÄ]Bò´p± ÈÍ!c K@„-óU]@t z6Y!ûŠHžkÚƒ ÇídçÍ9†±œQgj~h7];§hÂ,éÈ®Ó%O «¨ÜD–€…ᎵòDD¡8R ð‹ÝÕfm¶€‘èwZäÓ2Š•ò¾Z{WåÀ¶@X=<QòØÇ¿¾Ô×O¬'ó¼%sÙ‹ñÖÅNV#<æ‘}éR¨ ò ‹¡ÞG™ ,–ޏ(„°S*–Þ·Ùí¥TGVÃÚwºKVrБ¦cŒõO žÈW‹0ÜÁV—(Ì8ò epŸC0I¡{`ßKœÈ Ðdiç.JôþœI%¡õšDB×Ù€J­³u@ܱôÜ_ …§³Ô"÷qÔ%(Ù1E9•dµ,–')¾b û¹ï¤RÍÐDÊÈ5Ç(ÖÆ@Ø[%}K=uQêHŸGØéûÍy_s§÷û¯û†lì¾üô Á4jãŸQ‹Bê¾[:sA´u©†~*.nŸ»‡â¦ÏS¥i´Ýb8z+0pVb%¸‘RZÙÉ}ƒß_õî“ß—Ÿ>©Ã¨8Î…«U÷aÀËöœá¹À楮 É^JÌ„•#%KEü´1à Vž¤˜ÃÈð~zÄ•}¿õ¢ó+žü.MÓ›yûb–NeX£†KoŸsy²‰ëù³6KSÜi¶Ñ† 1µbz¦š+âÓ"CÈÀKky¯pò»4I¦p*2”»B ¤lë*â[®rFÑàÖ†‰9ìÔzç²=9¢”“B’Ûq×§Ël§›#tšG4ø÷;®¿îÑïÒL½'ª]LV†níÜ-¦šú•7[ç^^¬|žg[0>Â|bvJgØÞ´Œ¦Ü½öd÷7+(¤÷•˜×9ú]š¯V8YUµÆpVØ,ÃÐü9$KâB,«S6ìýr/!ÇÒ#fjIv¹ÒŠm Êom½•ý×#7Q¿Ùª4ðvæäüÞÞäòó'².¾N =ôj ~‚n'Ĺ—È„‰·pšK‰Â^/„ŠI_ipÊ£ÎPýô£YÝNONzˆc¨×« -`ð4_²ŒÀí¼} ä©Î`mV¬Û("t0^¬„8W§Ëv;åæ '$s蜸! ‡æ{‡±þdWœ¬wÒ!üe»’À[Z’eK$`<&¼BxõÎê$'JIaãf^C"–í½÷æì¬ƒ]åܸ̑’÷$cÀ¦Œx.ÂÜJ|øbCÃðÒéÍ6‚žÍI/^þ(1­=ä¤Vf9µL ož##ÀºØÒ´šîP6Óº¬,@Rönžµø9áÛsÌ2³ç{©€s€­Zèy¶‡ó©!yEmrO­â1K)vï …Ü C¬5]ëçôiRYÅÃo/‘ÜsJÓ%Qi+ú¨Ùú³B„aí!rh„òºx<“±¶Q¹™¶V‰Õ³g #Ur­=·„Øí=O0™m?.#n˜ØLHde Èb¸W‚½ï®„0Î#¡ÕÞ_üñ…>~ýüÇŸ¿=?7úåÛ±×ÂSN}Ì1Z¶kšPUÜ¡x[¬Že&I£·¶Ô°Óòw·{iùÿ‰»ºf7’ÛúW¿sƒnt£»òrUÊ~Iò÷-ô—­Z{µ‘Öví¿Ï¯d]‘3rÈË»«Z},9£Áçt£ŽxšÐ¢#Ûá!ܹ¦Œ\‚Ì8¤}ÝPV1yfôZEä–ðµHîû5NÑÌ”G…DãV}™Yᛋ€äpYo@ÙX5D*ë5Ars?H½C.iÖ3Xk’;£×) Ï_«°Ü¿]jÚ/sèvËÏLÜsÓø8c} ™Üå ]­•Ì1¬ÃLë9óÌev²Y1Ñ:• × Ï[Gæ?ýôÿïZAø°%á“Ûï]^¿Ìƒ ©j:iø#\%Û·â£çGïݶaƒc±© ¾uyKb‡VHüŠÈW\.¹‚-Ñ4ªwüŠN¼{­xõÑo[4^¿ÌG_²"§îS›2RÛµÔYu^¶ ËEä²Ò&­ÌÔÕ–JmNGä|÷ÁÎ)ÙnˆuÓxð;þœÕä­7ü–„°ø‚çî] P¾u‹u“à×Ãì)ö2<¡¸Z$i[OI…giÈÜœÉ*ÝÄ~%ƒé¶¼²Æï2óÖû}§ýüÁ…ÈÚz ÃRK$ÐÀUCÏuÓ~Ù‡…$—ýq¦”{I¬½pÖKÖíiÎfœu'’•×û™ Ñ[/ùéuñ=Ÿd$N²ºK¢Ì y0ØTŽ(K[8‘l°R«ÿqÈœ{ô-@·sèÒ(ú*6RùQ}t ¿ÂŠ·.U_xÛóÜ8—Â<&dUÏÅ΃¶ˆMtª›VŒq£™XGŽšJì5V;žkxgêI\#yNÙ}ÐâôÙÞýüÒæ_èQ¤æâ™¦†·“†K¥çr³Ùx¾äœ¨Ià¬PÉ‹­C!Ÿ7Êsˆª‹byX˜jR´Ê+²sÖ…t LînRrú—çD> ¯óíÛéÅÖçP}â˜J›´Ü«?ö+%Ûèsü–—æãXÛ˜C3÷ìÓ°A#tì_N—oV]J ¢‚îITôäÉï#¤§{C3¦F™b›?µäKòÖT&ÚÄa« Í­ý»oßù÷a¥Ëoü>nõÀ>lÌìòjÃêK5YÙ°#q@h"F1’9« '¤¹2?ûÑÔtù}ˆïyÝ·Œ˜œõtakMÉv8½*±›ší“µv@ÆÚ7„|ëuO–ºüÒïfYgï½K"9Ùñ5ÆÁß È ‘Îe$Z‡ `_^¯³~Æi¤â–¨0.Øzµe¡NA"TµI++%-o@U—_ýG™Ò¿¡)ÉG«!ŒÓAúõF)1 sˆSJåWìúüÛç?ýM?õk<¾Ëùö7yÕY¼"¶´­{mI1Ró“’·ê@pH¢[¢¦^x£§:œ ¸ne7 ´.±¶Ö½„0,HŽ1—Ë 5}8ÛYzøû(ÏâßÌœ­±õá$à @~j/‹ux$Ñ2Âll[?oçïC}.¸Á¾Ô½ì~Ææ¤7k]5Œ\®ln¥ƒG^…mcsñKÄÛ¯ø'Œî$Ä¡Ù|Â'€ê£½àcÞŃ–} €”×9Sli¿…:jN¹“R ähÕ˜î²x&W µœÂÖû‘;‰ÂËru#çÒ+Ï#L®ò÷äCâw”3îÚ ÒŠxݽYñåd÷Bð%À-#p]0; jèH 6„A»M×:­¶NY§Ðà ‚Ðe$”h"£L.Pˆ>‚yåTsHQ{‘Þu¾`»|ì^ ¾E«e®ŽLgHX#ºZ©åÒŠ„Zª­^Œ¦‘‡ J– $ìÔýFɾ‚äuŽÔª­Ôvl˺“T9tÜÙí/:xy¢öñÓÕgˆ“ìÎ÷¦“+k²N½æz,xŽCRÑbÄ,‘‹²Ô@Aª.hæ–õÌ>„‚vîÎs EgÌrÙ]ÃwŽÅ3cÓ"·¨S *”ä¶Ut ¥&Z%™¬ ßë@ÈF1%wõI ;狎"m6h+@¶FBöèÖ·u·¼?âù1jŽÕ)"“dQ*pTv9P«…µú ®á.¯^Ùœ-_‹×ÜÉ=’ZcÁz Ò†#â`ÝwW‚¿Ë-•ÆMÀ¯«›ö¥áÓ+²j7O ë zêðo±^tµ7›î\ò" ŠÈ[g³¬*'/½R ð£× ^T+Mé˜ýÎap‹P<Ñ–¸ÁÎpè3÷‘™BHn@Q…Ú¬—ho‚?-®áV´±†ÄÅú=@\ølæ¨TáÒŠ’uo¶e`ïlbµˆÃÓÓÄ2·¥‰3@†:¶ÆÔÃÇ q±mÔ¹smâòªc o_dTH™@JÝt¸2˜™-Új§6+8Ti¸eûX_Ç–aÞC"ï{G|:ýþ/~«-×b÷ÞU$p©hÕË> O,UnÚnÍF ê{°3`žÖy@”4Ø Ö:ØZHGû¶KxZ`Z¶ÿÕaéÌü¨AFe±V–¿!‚a"¸û%ó#ùn X'ÈãY"âO«~ë ”mBÅwµöšýèõqær¯AÂeP0Î ëP0)Û’—ŠMzäÙöf“N­ûvåV!y—”r¿èXÁ|×ÕÄÖµö³SˆkÓgÿ1dÕ]Üel ºs7Ö!ެ9rP6ê I¿ú^­þŸ¹ìbþ¿«EÇCÚ˜}½é®îe _>dgÇ`"òÕ¦úöœ•­\Y:9²Ùõ <+¸iGÖÛßCõAN:HùéYjŠˆV±I­ÞGd,WÃ~§xmø'ô*[5û•QéÔê^ƒµ##&M3Ö,sWlQ"tê%¯X}£ ¯ T+¨¤DS$i;ðšlYË«ÄLÖͯ!qï_zmõ§5$[µýõçÔü©ÇÀÂÝ!â :_ ó(ãµoZ4ØyYàË…{J•™×ÄH ©Ü3yÝ¿Êq|Œ•Å£AøNì…âô"["õZ'§Ú»ý‡ìcg½ö¬ÀÒq ;ãz¹—P(œ]sÚè<¼K [G÷qZ}þDê’âø,·è‰‡†¢ïtÀ®€tz…CòÑF¼#W:«…ìUª“c³áÔÅS1É¥sbä5nLȇbýﻵ~«yX³+†û5÷ñYn’MÅßÑ™} ùô‡Ku³Óðâfk•\‰þh?¿Ñÿàäǯ`¤dÖP|ù‚ÿ‚ãÒQñ—{üÛÒ_ãðåÛ?~¹íÁŽŠã†?¼|g ÝK—´Kº é2žJH³NgöêÓçØf%]hï„7†HÛÉQ+—i6Š%ÛÙfr#rsaRâëV€ÏQ®Ù!®ßl»Î EcrÀ$}®¡ŒÄð÷Ÿ~]‰ŠÈ?Ð+Pc¹ì›ß>üì:ѳ{ŽŸ>Øç~´ _ËðN¾{ >¸UU²&ÁU\Ó,*äaWÛíÅpGßluqÑ«¤|¹(tÎÄf‘R¦Bîø™‡GÏ= ënÚÓܽ ðÚþgÑñá|c‹\M'NQˆ1„‰sÙa0¤µ½^ãÔ Ü/¢oŒðŠÁªµ½Ïð´ ×™µØ< i©Ãüè..Šž·õ…^vGœ^áõeÈ ù?`±ž‚›ÄLqépŸãx@ ¸ÓŒÖ¡8‰+šZéb…'%³^SJuÆÝ;ïç8<Ý'–±¸Í3ÎÐpv#€fÕ;8CÖHκ~A!¿È §ö3'aЄЧ­rKâ;ø¡­™%¶ŽJ^d·ðyy–ÕLoìÛ}ñÝ÷0ƒŠGÈ–Z*+ºX«‹`ý S—ÅúõļÀ ¾«G„«J†`u\;wçmbrðC£5@}Ï÷†nô…‡à°µ“kÇea-ðÿñv¬¾Ñ~Ø0¤â*Üï.~ùí×?\›³ó¶Îðrë»üáìA¾N‘$@N’BÙXOC*9[nÛ4\êFÁøß—¡°Ã9'ç@”j¢ø-Ù:èpZC6L/¬uÛÅÓ½bŽÛcÕ ¶ ÓYù¼"ú8™Ü^WÙØRç”=§†tS#„f‚ÞÜ)÷äC1z,㪔3åŽAÙÍ>À0\ ÎÉŽ¨?Óe}ùsûÛ§Ïãóá—Ÿþ´âV/Â,Ü*-ù‚´<:ÖÙý¿H@þ¢*Ã?Uå5>¶zµ£ ñ±³ÃL¤Œç ÛKÀy±Ä˳lÀJ[‘½õjŠY«¢jm:;íŸkö>Tèþ}§ÕVáù~ú б%èëÁ¹b5ú26Ö±$ÐÙá‹ •á(Z€‹pVØs ¼ð[#ùŠ:’ÞðÿÌ]Ù’7®ý¢tpðO«Ã1KWöÌøóç ´õ’KUV©{¬ÉUÌNHà MAÞ?[\âæs+¡W—[—“\7uóÊ þõ|u„×kè:Ÿ¸¯¤ê`ª'‚od5¥T´Á¡õ6Ö7æxD⊄Z7~s®ÅÜèEVÎAHh¸³¿êBó•_´ºŸ'.>‡Ú§:BÊÊ€1ÏN[~ñÏ¿>üã×?ÿS¶çù…g¼XþëÛç/ŸÝp‡?»\¾°ØG?øk)çV¿¾dÄþªÎ5ÑH6>5›Ä !´Á!fXV+ðC’ƒÞÅ ¥+¢ã$» ?ªÑ_pšyBD±o  ?ØaO^g¿á'+âK·ù]Êx¾Äæåa %góÃ2™ "œByåd3gÞ? K3U¦B)E %N×Sˆ.Ö6ì˜3ÕZ;mM~8ØFdlµŽ´b·;`Gã”§qH’V=om£þ¹nÝõص_ïíãé›Ú6qº=o¹|ôÃeýÅ>z5|øñíË÷–œ“ñfLO!EŠÑN ‚M¨—ÔRau>zõ$+…È`û]¦F*žE ´„ð4hzüåй#ÇcHçNÒžŠý9Rx´Ô &l ý XðRæѹ]*v;.3ž„mŽ¡yÏÊÙd.´æ¬Þ¤}gðîj—È û¢xáß’U º"€¬Sú9¨öTæ¯À£Åþ5üoKþºpÿRøˆÈÓaÜðLË: œ¹1N" MBmÛà³Oy_ø55Ä\¤³0õ\¸µ0µ§ —5‹|ÓÄøüO ùÇ??-}Ômå0ñ/!ý’!¦p£F¾}7}ð?BȾ/úþ;-¯Wøðú:á¯öžðE«­¸IÚ€|á³k0ùZ¼Õ²’·ë©µº@D‘Öñ6{¡ì9khšÃJ &¥1µ8b«ÔäÊn‹{ÿ”>×·Õ›hôé†;­Ó6å±V%gw£wî>'/2{˜^zGq¼¦Uù€{¥5ù\áô3ªACÆŸ1í ãA\Êù°ôõÍfù×ï[÷ï·O/¿ÕOÞ©[Ïø¢ÕbtR¥ûAj/g~7’M•Uêƒãê^e÷ ¨X÷†GF•8`e?¹;nFóRºÀ~ô ëíµº<ÞD©ß!É:½¸\£R1y÷žô:0ÐäH5Û¯C6ËêFMB…½^Û¥éYåK¡RÉG:Òg®£“[…q:W¼¥Òÿ)|J±7»à}Ýr û>L CJÍH²ien±¾î„ÝTB´Z„S²óÄØ%Kå’SÄðdIÃȪ[3Í®Õí§²EÜú^¿ÑOu¾ëë §±gäan¶‚hm±dº!×V“ßIÈÜ÷;³±Ï‡ø¶z qxª³õl‰ÿŒ½Œ‘l8ç9¹ïõ©ñFßÐ;¹ÝËoô3îÖ¾*Ó»Y#UÄ7î¶qØ5Â>²1Q@½«Û2!þðt;>„£ÅZšSîq:8òNˆ©U&ÇvI&ÏuÂ|³¿ÇÖ‘ã{mKüF?u[®¯ÿ]êŠÚ„£ÕVm€äfî<;2Ñu<È´äÌ@BaV›®6  wI6,¯7/Zçp©ètE¦Éÿ¡ÀyB›7Í=}:ÇÞ! ,½6¡1{sýÒ* m·0cÜ?LÓAäg¢*:cI)ÀnJ®È„TKpVDZκwrŽ6X‡Iñ‚Оºkb7Áˆû[gŸŸ>l¿ý1?nÕºëÓCkqõÖúMÇâ¶6ì·.^—ËÇ>\–½j3¾úîB³ÎiG”qÔœ&’̘8§t¤"vvÖtØyPä®PˆÃZÞw–h$Áh±¤#ññÓ¦§ÔfGB§öÞK™?†¹Å»-‰_É^ œ¿ôÇ®…Ø[wwë“Êp aº¹.ðà\Üo—h¦Ôuëä÷³"JyàHc Áq­8xÔÇüucÁ#eþÕ—m‰ý:?õZòQ¢B±«VÆ– uiœӌÌyÃÔs8¨ œS£µ,ÌA©F?g¯E3rúQë •Z‰®:o~}%33E/âªÕ|$ÅR)·-·ô÷ÇÏ¿.{¿üß¿ÿغS“_â³5÷‹ìiíÛÇ¿|tÃ;={,—¸¬~•ÚXaéÊ#p€˜¥Î*Ñ¥NzÔdd…k¥ÎÎLd›÷ ÑŠuƒQ-°pPoM¶3Ï ¾ÖÉ=Ý"*º[T´ Gc£gª7Ú4Hs -çgYËQ©Y)NʘMº:Úå:¹”Þì¶={ÏeZ¯þ¹{•U{}î×l®æÙ÷­õ ÿ¾e¬ÅÛhùŠ?€,ÙFË'%¦`íâë8¤Ìö6â(ªÔ”5õL£8¡ÅÒê¹±Ï,6ÖmAѽ‚¢0!F›ÿ€ß¼ûa§È´{/cµŸNþ`[#¼ÂXw$}¨+²ŒFDØŠÙîðó\·j«¯BâƒÍõkPÜ·ØëBã–ÑÆ‰}íŒs{F†%Á¡§•ÖWV•è ™„gdÍ#ˆ†èÇ(ÔÜ µR¬ÛAõÀä¬Ñ .˜nH5ÅæD@TœSiVñ2"‡®zٔ逢>:vašñÒ‚ ˆ«öDVU9Ú©ñ¹ Ôï¯Ò?ÿ1.ÿþ­­Ìå…ýFÅÿ_§¨[Ó´WŸÿE¤ö¥—§ÜúÖWZ‚kQµ%ìu£K¬€ÆYk3>W ³­Z³Œîè.jÑ"6Œ¼i²ÉËÞ*{´´J¸ëš­oSÏn0¼W;Ï|ü®rnñõº™ÙFö¢¸çDdNèK¨xà‰±¦çŽyb}L©g›´ î>$ªvu*Y¦ ÖÁ}.ÚÕÍ‘ó¿W=/½Ù®†nôjJ‚i»>ãëg÷y$ÍØAUYf^FгºœÊAuN÷ÙS­ &xlR8OV;ÂÍbÛ®ÓJèßX‡ÞRU_¸ƒ©°+.VZs¡MŸyh÷Ÿ³Š2pç,¥¬î­pþǨ“8Ƙ²6¨ƒæCul3¡Št]e-¢p@"O9ŽœÕªÞçD4õ“¨™kDzËÔztѳ§sñß_íÏñ¯ö‡ _ž|ßñÂË5%ûÑ‘ÄÕÜðêU§ÕĘ+^%r;K чk =fìJ¤ËØ…‘í¹Q"#9T.äç†Ç{ÌË—=uÈðr%9_\w>Š–T{²Z±n3Ylj6]#F°Ž*;¶xãlüQAî,„/º:¸'½´½=Òzßî¨aÃvoñ)¯L7ÚÄWGÔsôdÂévŽ|i 8Uë†é*Ó~°f—jàx!œ«ð þÊH®'•’4äP쀙7Ž|rà°a¹wˆ‹–Œ"TŒÀ"cÄW`·£È0WZ—7Šƒc‡„Ð;Œ•½±AȹA2‹±e³Paî9´Ü·>xذßAÌ+(È­ ‹:zÍ1©a ¨EGmálU'€Š¼¯’á»:£e ݆S ›Ïu­ðQÃÛ‘å¨]7ªluü°aÅ÷ ›Lf¥!8í2á0…¦›±·­xaÝKÚDZt!†´!ÀÕŽ\ébÏ*Fʬµªœä~ù:ãï¿>—wD—ç?K¼XiqÕº½ÝtÆPèíä}Â%Kª:r³a&«W«>ë~]Câ8’ͨ#†M³4DÇPðÅ.vk£©ú²1fú¡€âùß+^¬´T $§>Z€µyN^ãhd¡"­ÉŽ$\KÎi  Öí½/aÙ`ˉL)@¨±&)z’Ïs×°ß`¬›õ‰¸ùÒªs†›<‰)òð°=n’a·1§šòªU§Ê.¬Ò­³‰¥÷À~ìÔI¬¼ÀÊ;µ­.ÞGbu£¾[r´ˆíÕËhm‹¹å*E|/œ\ç¶:ŸÇsöÞºOI9`Q„²’fÕ©1ʬŠ"ª0_jmÔï„=ÖMû\0}iÝIژꪕ ) Ö íá€" œ7¬~µF@é€Ï¹(éd)À0+rÉl{¥ãôàríÅj~ÝÜp<†!ëþùÑ¢6<³Ú4å&Âx¡ÉÐ h-ÆXµv+âÜÑñSn1 Áz¨“RNëü‰f‹©HíçZ^¾ÒŸýïGðô‡€‘gë,ž¦”LÝ“Mª`é>–2­ßÄjçþ[;i2Šù},b·‚¡spü%Öi„q1ÏàêlY†·Aª[¤XÅ"O_ø$òl% ž66z²ù°!‰ÍeŽ\2~º-¸ý¼$ª9Bî#5äíÜŒ¡­i§Î¹ÂO´Z’*>µè7Ç!kö|"–>7gëvº1Lsˆ‰¼OQÇ…íz]+é„HÇþèÝzó][g ÉÊÜÄæwbtõR|OÜ”³´¤­ ‰òHRö³˜6g_:@Äôn„n‹!©i¡—4¡p¡-êôGYñÊ Ÿ2æµuN n¿F€ õ¬ÌørŒƒCMÆXÛ}UxâæÌ'?¦ãû™s¼ß’Ÿ,±8o¢Wç ¹D)¹Ö»îe' sµÀÛ‡Dg¦ÃÍi—1®’¨#h•É—a½—n=â§Ä[ÇL4âx¿ý>Yâ'‰kHŒ0P8÷VUZ˜¡#ÝÖ.¡#pK­XâCM÷-S¸5ý-'yi·Ö*2Ň ×[@,0F³¹iUœü hWò€»AºÄ2À qvº˜cHÕáƒ"ßXzc·f¶÷+,ÚÂðzëø—7K½](=»Í¦¸*, ñ€@ŸÐ‰5ÃÇŒ„ © à®"jÁOãs—>õôøíU«}ûômÍvoÎD^š¯J*Æ=$¥ßÅœòÐÁH"z(#ÖÕÚ䀄,4fq=Ånе¤Ó¥×Ú±_[ÜJ¨—¼­Yð" §EvÀÆÐd#£G™6…«cçsë>•šC Ê@ÂrzXí··ùÿ¿Âû`<ø>Äðl%ÕYÖÌœ2‚”ªC´þön] á€0¦¹aÀ¯ˆ$7\µó‡Ü´%âêü¤4+|JÓoÅ OßôZx¶À¢:œåº.ÖIUð*…ywQØ0‚†Y!ôÞg*\-³‚t.¥ä±œŽˆìàR¥ñ0ƒ}K¤ðÚ\o }Ï­µ¤Ì-i-¹k’,ªPÎjÓŽG"¼ïfÉè;¼E—‚…Œ°–‡¯=ò4ÇÁ n”q=%¼6Öó‚ ÖïDR'Ü¥‡ÇtÑÏ€TÓÛmW«Æ;»±­œë¬6b*Î DåsÌuÚe62?ߤ¥ê¦«çêÝÖmõíñÁk‹½9Ô=7Z¶º³6’Mÿž¾¦Á-…Ê¥8?Fsºˆ§cФ‹ö$7Wlsà›U˜®º&ÜǸñjùvlðÚnïW8)®ppBæf«4Ò[Ô* ~·iÇào5 çy4àûM7¾çÙ÷Çß‹^-³ÔRKJL”SqYíŒ0N÷_â®m7ŽÉ~Qydü€yÝ—Æì«Ák¯1¶Õè¶1Ø¿ßå±[R奔U’ Ø‚Jf%yâ3.œSXêN\t›RªZÄJï.j—w«êw,„¢^,jÂóç=¨.†y¥i³;à%;CHì¢+)c›K5yÖµ³ñ—,g>½ÓáØùÖ·.ã'CœÒ¹äUI…°åuÌ`®jà8Æ2µ$¿äCn«-'xã)оN‚Pgê‘BqÖ|îµ—ðãg=¸|Ÿ qbÈ+ͱ‘ —`ÕÍ­Ñ*K„³6W<´ä·—nT¯7µÌ樧b±~q‚(5ç2gžÌ÷]ºo+y/îKµÜÓuëeÎŽ¿àcÀM¦˜¢Ÿ!ríÙ–¢,á‰všMggU“k±”¿Q ¥"=Å”,ú ÌG”ò½óºÝœ¬cÂ÷éªuâgò‘\Ž.tÆCù‘rÉÓd…¸å#Ý$;Q9)Q‚¯|ÚîÍ20ñü­ÚÆtÞO;ƒó÷]µï!~/×î=÷tùælïã“Vxü½¶ÚDf °ñ0ŠDsåŒa¯0“ÎóAŠ®ZÅ W ç+[6ɰMýë àË|ã”ùÓШ>”H;;ßÃâS·#r¡Òò”e·},ã’‹¼0Ë„V°· T&\EcãT¾ç›OxíiÞUó}DðÅ0§Ç:¸Xx“M£[bP`ž°žËâ«Î½s^•ÑÕב½kUëèVo“s€MÉN'Öò ö§í°Šx.‚_gÚs‹Ì*>×ÿO½ÇN½”̾XvR…»è%KÿýDï£o“¾OTo*&K0p­ag-‚Ôà¥-ßhÏm´ÒJî¡u;‚„67N“Õ{©‡do&ÝùåÄê,Y«S3r,µÎÙŠå–·h½#cÔÅJø%î¤Æ•:q-Á²ŒÊ¬Pnyb°kÞY2HîTobx¡{“Æ}¼@ÇÄ ½õí)–]¤&HcÒX¬ËMvB´¸ÝÑ9Ú9%Q·ì.ç|×j©KÅc[…•½¦¾½IÚ>^žU¤6?|ÆWé°ˆ,Sœ½ ]ÙÄ’y;: òK0%ZŠ‹f æÀRœçRX~zš îßÚ&~ùò|sE{«˜}¼N«‹ÙÊ!å1rðÝXê@Q›e‹¨Ä:­Ùg8\.XìT,¯Öq–᪦’ãγr›wöÃ6fꘆ}¼Zç, Ħ€íJ¬ØÂÓ ·Ôàæ/¶¡ Mn'uÓÞxçvnÖŸËÎlCN¹ÎÚÇ^]…ïZ†;vˆûS¿|{xøüךü'÷=`ôW®Ô<Ù•ƒÕ\²ü"ëÀ$sIs…´Ó–rÅL{3<¬Ö![#f=[B¸+\)‡v爚‰ºÞî¯\t¢v a3Ñ=»œJL*IÙÒYMó29×Ó°É…ä.®ÕW7ý[+õš–+ •:”X’}ÌÄ즅òcMKa7À°4ÿ–i²Í#TØ ÜºA­Œž†UuÖyËêYëƒr‹õßZ§‡§ÉŸ"[SŸX½µvµÕœ’߇½åej‹Óe'Cµ–zœC}JS;gT\ÅîVß‹fÕxPŸ..Ó7’[‹õÊF&+뮎O¶ž [1I\;–VÈ¥àLÒ _ï«,Ö¬¼% ® R|TS¯ÌD/g ¾v6s£ ØZ²·Ltk´v!Yf¬VeÎNû*žžP,~δ6YÛ䪘­@±–»4DkeÇø¿!^§KÓ ó”²&™vRƒ‹T«`-pdKϳFÜjÓè ’A+k©Á¿}ÿíóÓŸãßåóç_ñ _ì÷£Õ>¤¿ýÏÿI9>Zóy»oÏó‹ì‚Ë•ÿã^ÿõä{œ]z²†c¸Ó‡܃tsœ“«4Nu±õ¢„—BUepp´¬ím¦¥÷›k總 {/Ÿì Ä€ÎÆ>Oˆx¦Ö°éb¢"¾_•up±6Â׎£t¸UÖÚÇcMZ_ *…×þëKùs­©²ûsXÞiÄôëãç®(ÃóýNöÑ“}èc¾¶Ûس ÁX€*K¤æC›`y§ Þcï$@1M‹ž`Âî\Ì—K¢;9.L¨Õ’æb µêÇNw˵Ô|ŽÔ²WUZŽåË=™õç箓nÆ{qί°Úϧ\¬©tªàîÌ<ʤš5Ï¢–à`d÷¦+{ƒ¨–(qÂz¨!Å8àÙ(va/bÆ¡Íå?™ò{}×Yÿ ZœøëlÏó¹/,˜àrî 1c®µB ‹þ?F´“M*™WçžÃ¶frÑ‚Œ K=ï\sÂCÄÁÛ;r¸­);wþñ0¿ÿôæDƒ{'›'Ÿ|妃B°,%ì}—Œ}O€@-®rI«b5ïd!1lŒXõ>ç„cô#hÖð²³=O;B™+oü^:ïoD5 ³~5ݽ÷é|ÕÉ>ÿ1^KqëcœDBŽ2­c]tqH™Ãò\ñKœÁOl1ÐÍï¼°¶tn$zRJpÕÊÊÂLÕyîú:yXmÁq°—×2Ï9îÎpœ«<î qM…Ç 0(Î&ð蔫$¸XÜE“9ÆÆN«`lƒñÕXˆ†dW't]l*’àìÁÛs>»B«¦/ƒ±@swÆãg}ÂH®¬M¸Jj¬Ù󀟵[ •« Ûêöqk¨„½w`Öx«B‰ÁÙfH½Ô ŠÌYµt7K¨ÓÓÁšÈÏžg;Žî-ˆëg0×íôõ|¤“§WÙ*/„Ò°D;¥K”°ÜµK|4Ūm5ÔVGíÐsÃáÓ•,¸‹æ£—\†Ÿz´Àï<ïÀcËà`³Kl‚±‰Pƒç¨°äœºuÕ(Ü—±Ù!4×g#纾~øÆÓ¹4¤ ¬Z»xGã`7»-lÞÖ–:Fn ¹û —ÐÎDB¨põÁl¼—¼ŸxK e—v:á&Kü~N­Wé4a×2ÇÞȺBè€aKw±:;áoÁo?_YÝÎoÏG:•©­Èj•atØÊfC—)œß8,Ø’æ`µf¯dý³Ài91F`¶Ö-Ñ(Ò4êŒú ø¼Á-£s€à.À×£•­s7ŽÅzê j!ÏÑÁ§¿}H9ú˜­ô)Ær’Át©‘VŸzN¤ »ÜLݱ›MpÞá–!:Æp(eņ±ji)cr­fpêÃâ}õ~e ítnÑ–¬ƒ¼%‹ôå[!—é÷jkRq‡rÕQò…·š£â:ÙÞ­ërÔGÊÍå:Æš·ÚÇ_ÿúöðÇ©—oåôðÇøúÛ?ûÇú|üþõáËX}©LôÁðújï·¡~tÁùë/“w¿ÓéÇP'ä£ÝöÊ·Ë/øÙº% Raô ½^ª†iÇÉ»P8QÙm3).'HiâÔÄ'ª!ŠÎVÜ.–™9»¿·‡¯ÓŸêŸåkÿôõ÷_¹Š"&Ï=Þ®aÃ_?tÁµ¯q²ëOvåG»Ó•°ívÝ¥9§4ˆz2[×{ qb÷ÑJÏúåü¥Ýþ¤ÓȾ²tøW• ¥Ñ“/5’¤äƒVp+ÜáãÑÊß?ÿ5ðlÿþk¸UM’?Ðc˜|Ú‹WúuÁùÙoúqÝÉ®øh÷¸:·am”Ó¤>HćHͬnïdyx*¾•Ũ\Ò¸ªá'¬[³ˆ±õ:n6ÎÅ×l=‰Ôð õx±Ü%Pž ‘»cò3Œ’+ÃùW¡Yë줘Lœe¬’¯C{°š NË ";}Ár®3: iff+cèbÐan: Ôþ9î‹È‚ú¸;(bÖ·q¹>v}š˜´À?í•S€p©—ÕÚƒþp‰—¡‘jOÙ¶›üOìÅÙ2˜±~rÔê,nÄ0õØÑѯçÙ>3zeþúé£ÞÂ^cœœp#h´Þæ/(æ)û"VËðx¼K¯W“ßɽhnZÜ’S‘–†ªµ¾ôµpkÝOQ_§Uâ¹.Îl/åÓ×Ï;VïÝ ËÓoq#BëƒàØÎä|²P½Ú’K½ÊÖ"1hOi¹€õxÞñ«ºo3gë¼ +_b£œB·®¬±PÅO9^{j©·µ6{8½ÄèlÀä\ïÚ™Š5)æd>! B¡ûbÓÀ´SµV¬ÆÚ!£µÀá±*(EN°Ú=8ÎÚßHpË0½‡ Úë…–h/R5á< ûÒÄ:V)I­¡¸P–«±¯½ºXEr%î­M!ǘÍ÷±f¦#ŒÝô£ûªlÛc½åÝHrOç¿b!—Ù|˜½5)¢Íš8¶ÔÜd]ðòTYöšJë»VåUã´VnZ†e”ìáÜ6‹¼ºoJe·‘×3«â,×¾Ëì¾W/‹3u2)pAÒÚôïu?ÖìBòµIÆÊ‡k21|´šc»¡×Ǔ銺™”žâi„f5‚,Êßì{e^¬€¨æõm°WÌ!Lïá8†à9”œµ 0H'$wó#úÞ[wÇk“üx”àë§­Ðæ×Gãü nÇäb˜Sñ0 Ìâsƒe€7ªÈ€Sá-ÔŸxÅ™Ü6è)º¬„2[ËZž®uuÖgJÓâo,ïVo4V°ôÓj”ÿ+“ÔùÞ7RÕŧž=ç ˃|LZ¨ª›©ÂÖÒX†Cvb Õ5ß±-’ˆt¸¦Ý:5£™ é ëRXþ|œöðçàw²Ùç{ßf·/†8af°!²5™$'³(ü½Tt:?™ù̲Sžzv¸˜ ¡jrÖ½ è€Fp-Rœ$œr¼&Øoº1VxÁ¶¸ ÀƒhJ13ÜX´ÓÕ9Hr‚íÍ‹@xGÛ^|åc !Ü5ÃÛà vÐÜ«×IN‡ô0ɺo܈w°+p¼Ìn\"‹kõ,oµ¹’‚µZ“•bË¥àØí´Ÿ¥[Š’"ðú­uòP«ã+°S²õ˜¨=?IùÞ?=¼1Gý}ãcµ|=ØÉrMsÏV|ßä[ú©ÓÚ)ÁNÀxTµÄøK ‚åm›ïVÆLÐSƺ¶¹¦Yg€oWÓTW8íó˜?~ Ä›Ô ×$Ø/£àk§à$OŸCJ:…+ˆ\B ì¼oe륹}*b™ÑuU± ˜€‰•9ÎÙŽE†w¸þ÷N(¼!;maqeæø2ÐG£ÂÓ1Tnn)Ó9î(×h[pĬ§pÚ]¦ ·Ï:55ðð´½ë5Ãᎉ§Ìƒµ9þ~žñ×Ã÷¯ýÔ¾üQÖ‡_«ž|›™ku´—ƒwÖlúa]Å1TPêìϱdK¦Äa·m›l—‰ŒàTBžeäœìeɈ£Ìîã±fZ{`½5Ÿí@õ2v»;R;,7dvŠM;ËŒ°9ÅY—{4ÉÚ©RtM_g[½çíàõb¼?d;Ç¿VÍŒ}P¹Û$v£sp‹æ9‹§°5¥µòû×Cöå¡ÿÿ&7óáÖ€'áÙÚ°´giÁ“æošÂzÞ÷ì—Kí€r¶¤Û®mJâir…BC¡#ÅÕšÖÖÜŽÚ[³â>f/#ÆMÈàiô¹•'ä·+”²@Fkë}¹IÜÌc4“·7®‰R‚úÓ*m¦ØÝ9­k:­ÇB—®€ì}èq¸3ä&v½ôÐ¥À£C ¯Æ‹ç¤fK8®¼Ó¤¼w4]³À‡Š:¬%bõShV{3øë„e»vç»w'Èó·¸9^ vŠ3dŽQÉb×»ï ¼Xr' c+,Ö|%òiûØ!K‡ÓœFi&íSôR¬ŸW•pƒ‘GëÿÏÜÕ.9’ãÆ'ê ~€_Ïáðï ‚kw7ú¼Ž»{z'ª4ãîV•J-©G·±œ©‘X*"™H°H`¦GͲw–z)îØé&B<7“S‚“ñ‰ceÎîbêÒÛ˜0¶–vÌt•ìKðB›Þå&«ý!pŽp’Ì=¹V:}‰™žJ„;ƺ•ÏíeÛSÚtö mBËõÀ<­¢£§Õ¼xðŠÚ tåHÅwË-ÒL"fÌ­9àÕdöì4/UHb¯ÿÄ¿?ÿìG<Šþ>öõ_")Ài þ³íž˜N$q%·í%ÞÄ_sX^Öj}XZ¼”"רÙÛZ—šÚN…rïZß÷§úöÛëxº™ìG<ÊLûz™¦¬…)¹QÅOŽƒ¢µc7Ëì¼}|ØmøèC[ÖÜ-Ívל-˜k#ÌYID=ÍY÷Š£Þe¦'ù¨m#Ýä¢ÎlT:hÈCNÇÚé(Kæ)JcËŒF;6:Èh£XîÙ)Ä#j›¶ DCë:´t–1«×7å\¶ÑSÔ¶¥nõOgÆB E¥°³zÃÔT¹.p–'²Õ¶g¬ƒ÷°ö:ó2ÞOÉB„Ø-ZÊÞB¶œ3äÅ[CÏŸêïÞ?öìØÜƒXïCW/Áæ2`^¬YújaK@1L!r›||(Ú\²kZáîx4˽Ù]hÁõ)­˜Vì=ÔŸÞö¶ü¢•žÄz›6º‰ô>š(õY×]ˆF‹Å·M3{ĸ‰«Z†ýTƒÐLQ-„‰Èï.¤ð€Cìt±@ò4à«äQ:Jz›†º•óÎl¥¾q…d–0%úRs©F8ûîÆž­j¾¼ dIÌèNíÂPˆÊ<ï¬êú¬ÍÕRƒ@Y>JEüS_ÿø—X—øþCE[ý½4Y…Þy@K[A¬p~º:¹Ç°½Øî}=(jyÕí`×(¡¦(]£¥[¯<¼8hw«šá–mz_b²'Ñà¾ÁnâÂM{M„L ®É¡G7¢·#¢ÒT]ŒyÇ^ñò+Vé"äY£ä™§NL­!ʾ&Q4츥î•e»Û^OåÄ}«ÝJŒ;†~H‡´£)XE̸9«Ês»¬‘‰ëÀÔ0¿Ïl•y{²2â®/{ˆ½ØÛ’äS»;þë~»»äËq¹ýÝQ¡Ä­%ÜLâÖüÛ¾·À~Æ]_÷}] øëHlòC¤¤YR ‹­†k~8ôZr£2Âjª6¦Úªæ’aÀ//ÑAkgØš¥ÇÆ~”ìCãì[(V&ÀNˆ»ÒœÛá³; a,·@ûX®°ÁU"og6ÉÂüBü1‘R²Œ—Ç2µÔâÁB…jpV¶¥Äñýáþ?–&62~úOyßü€Kп.-ãVg î{WÈmK®=ýФ!c ‹#ŠƒŠB¤ÆÔ¬æøFÊxdŠ¥Ë«°eU ÖFbñïê!d¸uŸçι¶;¿?†[p¿y W¬kw¡ë´Ìôjgøs…¢±“H­L™—ÆÇ^ÃP[ *È%…g.Т9ei’Áã§}ä_äžéÏ®O“ò¸÷ƒdüÛžp3!AÐÐ ÎM`$ߺK<¥“ìÔýE¶>ØüMŠH8äÄ"SÚP?¡@a™ˆz¡åñi‚²ÿR ÿæÉï”ïo{ZÀ=©z~“•°J3¦E¸ÌÌgêIŽÆ0%+Bv°ã-7<Á/â6p=ªàtË’<œ‚8'“¿íßéÁv+³~=Â_§¾~-–ÏvF˜Ð¡ˆHrÆd GüjÙ « 3déåm9”d"ð…óö\²d ¯`%«7£±[vêÐ>_Šï×GE§¯d Â:°õv 3à‘r¬ƒg©Aé´¶5÷ƒü`;Õ.£Û*:V;ã8Rƒmjq#à:¢ó9Å´(ùÛÞ6ž¡û)ý2Â?¥&?b<õµˆ±£N…­ÄI¾W iÒüvWSJ±]¶né¼Q"Û…‘ÆÌ-:¨#[¤föúugÅìaÂü2ÊoÅ“DþŽ%éÞJuB“KcŒ¹ŽbÝ_ÃuÑѲ à"ôœ\–OX8;D¿v2¤æ«‡ÅªÔ‘nÛqz®¿ýñ×ëxžVYoÿ 6ÿÐÙ‚ö†‡.†|piJˆ û=YÂM;Q|Â@ÂV)žÈ[~úŽŸÑ~¼ÔßÊv—UÈIŸN—,…=„Ñ´"N×Fֆצ¯M[›zú¤®Ÿ\›±6¼6}mÚÚ@-_XY›qº8֋ò¡³QãÆBHr5׃¤W©…`1WM²¥#r”lûÞ,ý•”T™S+;ùA>ê½9ïôS:[æð!xj]¤÷ž9SÈIPŸ˜k‚(‚ |Ž =dž]â~vé\ª~€‹.paåšÌÐKÓÖfÊÒèÚÈÚŒµékÓÖ¦® øvùÂÚÈÚðÚôµikSOy½ÈÝöWѺ¹<¹\Ô `[1–™KsY5ƒ˜@ÐæÈ-ôd Èw½!yÏT?y¥ø˜§®_ÞÜ¢)¦è%×HP†då%1O1 Ü'-4edÕ¡œNˆ Þþ©U*ÀÚ÷‹Ñ7ñÞª¡¼ÿ¾ß0’ywÃ܇â“®ÄaL;T½6³-ž+ͳŠ5cmxmúÚ´¥él]ñú­¾6mmF]/ª,_^î¼™_ÉR‚_^õ“ʃ“ÖAøÑä€ÿcëË;‰ÒIjÑ÷Yï>æ¦[ñ°RSçÐȲäŽÂÈÝýugbºÆ㡎Y<äóÁ®„@]@ȱ®BŒy‚/Ä´|©AZN]Â]»Þ“ÏSB‚c ú” Ýb¡JÑ(¼T²´hTá,Ç:m©ù~ Q릴¾õlª úÑß]¬ø\噸;^hGaìø¬ÍX›¾6mmêÚÌ9–O®ÍX^›¾6mmêÚ2Ḛ̂"3¬È´‹²^\=ÌYƒËê(åüë.‡BO3Hà£6‰²ƒ¿‰FP_¢Ûç qމèTœBúê©V¨ç4!]T“$?†=/L+^¸(ãÒ*æ9*Ö‹9o/¶P‘*c6‹t¶¦¯M]›©K£k#kÃkÓצ­M]Hçå k3ֆצ¯M;]ëÅÖgXd<Ód+1ãrôK 5K “¸ø6;~4%LŸ ÙÝžœ¾’¡þñß{;£B‡›?*ˆ{ÛÕÂJmX —\nÃ9ÍBˆé¦ŠkÉ×£êƆOK}PF‰|âÀn¤DŽƒ·4:º£°Eñ.É×®3¿}Ú{#œ·]­ñMÔTª%da1¸él•Q G+ý›š%->8ÌëƒÌ.•záÔ íHY¼68ùZ,iÎ ´Pn<ý¹æŸ-õ°ü awåž@–À¦“NÝIÒØ| §:eÊ0?Hå>l 9X ÁxsVµìäˆÛ <]loTv6.ö¶ º-€»c“:ìlG…ìšl§vÍ”óÑXRË5´ƒón‘GÂrdû8R´ÒVœ4kË}:;U2,÷Áaÿ“¥É ¿ÞÍnb¾Í‚‰Ð‰P‰}¦X—ÂÜa¤á¼é“@f§±»_5¸\ŽªÝ#r\“ÏAz8YÛƒÏ=‡ j*ÉÍ’¬æ´ÿJµräoÉÓÁ„ÁÐÈN¡Â]Ši㩜XñÆÁHç"]~KSØYió^ƒ–Ò Õ`Ùâl§¬%iÆL€×Lõ.ýòðO‘0WÀþSŽxù!‘½€ÉÔ+œo-­æ¥z‹=Çáye¨Ú÷÷Wú˜¶åH@àeÇ£ƒÕ ¢Ô§ÖŠè¶õæ\Å„: }µª¹ü÷ŒçiÕ"Ãê[Ðì áGJŽF÷y@ÚVÅ~4ždüÁV±¿<;zÑ,Ýø)·gʘo–pªQâàî™×ߟ&rpï œ·=­‘¨‡ v1IVßµ¸¢·rS|çF'‡¬cOÜ@Ù¸vy……§Ã׫ËI5j â³%Óao )í¸ï•Nz¸yóäw ›·=­ò]Fi]´Œ \ôVOíÒí€ÂpGcˆOR9¨—[³eVµÂi”Ðá3´{bV™æ,qÏÈ•æ]K‡o þ~?€ù§¸è 蓲Ëm4ÎÁ9¨‹æ´câTU­òêj$Ùß7!iÚe#9ê…’€Ìºµ4ˆÝìƒå@pÓ¶Ðóøõ—Ýq¼›ÓÏÀ2‰¸9ÕM e"T cÄaåfý8GMy°$˘KiŒÞ]Ê  „:+ôæQA&‹~íºZkg‡ð‡”ŽY†ï1OÏ^ɧ\ ÃZTn»‡ðÿù?ÿÔ×ݤ#Þ¿O¦p09–/ä“Iiÿ×{¾¬þõt“úï¿ëÁ¾ù2s°%•¾`7ì˜8´"÷$¢)ÄçVAo«R|°Õ˜¤gÐk™Œ ­»M«%W{É3ìl'Xk~RÍ/¿ûÿ‘Å0µÃtËƽ½éº$Hw«¥u¨Nu~êP¶Ô6ãZƒ5v‘¸ôtî€ü•þÓJ"šƒÔõ•bžyò²-m¶çµë?¿ëÐ9·|Â_òË~S/÷þês¬•Ïu¼îdE²ÚOVò§zcoùö0ž;5©ÑöSé8 åVêKC L*\µ )Y®ˆ£ŒúÙ‘j¼Ë+"±˜ó’È,­h;ÙlÁ°ðläY:ìå£*Q³»æM>ÿÊ춈ÜÊП'g¦s¸jK9¡è—sæ‘É%çõ÷÷b]î( ­Z‚z…×ÈNرØR<©­6[Qgöq,K›?m×ø]FûU§|íL>¶Ošt¶KÞà"½í‘¢Ú§¨ãHÅ"‘[ÎaÇ‘«†Œg{dr9]!ÿb¶t¤Ë\Æ©6AxuUyJ·Ã›cQ.6o\ϸIwöÈ—zÛ!? Ÿ§þH:NuJÍK݉âÓ >Å&¶HÜlÄÙþ¨]êòb³d—b$­…Õ‰™ê(M޶3ªéh%ª;՜ܷØüª?¾ó!?Ú%/ üÉ':'óÛ<¢·jÀN”‹J§«§îb6&MFª_n4•l”C±«ã˜âeŸˆgo¶àc³Žf³ÕR³©7%žm÷дï²i¹çU£Ìê|ÒácÇcÂ0òÏPgRSuƦýòsûço¿þÃç3v-1·æE‹Õ=§u®É¾•GÙóDöû­'”?YÉŸ¬ê[9ìß=}ê*°¶Ü\- ãŠÍæMº :õcûÁ‚•p…ÚqT3P«z%ؼpè’LWç^G^ýIrßrÝ;Ñ¿ÖÞ—üoýÁßFYÿ^îS=ýèƒv=íÌcÙÖ·ž¹¶¢ž¤šþy$w_â• ‹FÄ£YUŸ6doô%)ªgZVådg)K+’U>FðïÔÔÃeÿ§þŒøo¦¨ßY}‹(RSp¬~¬ó5 ¶ÁØž¢ÃžŸóeaÛêbìhOu½øÙSjQEjKœÆrjWû}'4~›žìw|ªÎy~é]*çàá“FU5ÖÂÚS¥ÐT§ºí¬ÕÕi—úÕÞÛf8ƒ·]hÐtYûL•¯šaVóßKP½¦•ÇÅÃù˜œ¶Æ°ƒô¹Ü—Ûçm|‚ò9Û7螣p>‡æ+/8/¹h¸»Ô›Qã—-Ä•¨þʶ—&=õ©þ£SóÂò6kn§×,-RùÆú†‡4À§)¡³Íp›:j‰ÆÎ2!µJ{›zN½ªå-êòØ´R¼Úåʶ„©ÅnN|Ò†06¤\´UˆÅ6ަäNÖ•¯¿(†öóù$?¼=ðúïm•·•œ‚-•k/ÕöB:ñb‹Û©÷PµÍŽèŠ¿²@âjˆ‰9h(›˜Ô[VE¨J/XsçÐmÚÛýÝ7ýõ·”ô¢=>SAáÅߥ¦ÞÖ VšY>ˆíœK¶Åì¥æytW¸Cº”âêå¢ Ò4®(by'BÛ¡j™B«{ €›ÌûüÓ¯¿eÌÿ¿ü5¶¯þ>‹ý¶ŠSok…µ'™!·>j÷=÷ª¿B ɦLÛ:š¸¬õ*»®7K±T9ÙÙgí,ƒr×(Ò9…žF»Óq=n‘ÏÇíñ‘ñ®9Ö²$äŶÐ7¦ «{WïrNW¹—‹Íá¯MMZv'×ë\F|g)Äö˜‰¬°R+­îB¦G6ÇçÛãFù Ýx×.40;‘J®©v®õlçGO1Gwy˜ø+ìÆ­K%¦C–|‚Tcå©öC›Â q‹Æ”¼Ò}ÒÞü¦¿Ìмxý†Ì;‹²Ô†p'Ÿzt¹ãÔ [-ºšå¨±ñQÜW8\n˜èV`Ëàœd !) eEB±L°)¯QÕÚß—äó_Nÿóßûû§“¯o½ËŽ=}²40²>gö­$o«¨S?;öÜÊy.»r>½•lYÕ•.ª®z·éjÇÙòµêÁ“ÃÊ÷ri½•ý'Œ„ó’¿…ìçHðµõ—TÚ³® :ÇÁ2Uc1=¼§xå0æÒ8¥´Ô<Ï1—Ñ‹´0cqc¬P‚Õrø>FðŸf ΋ÿFNŸ£ ÅI»éô–µu4×f­$ “sYuúa×'wEíIj´›Çî½­'§íÀèÔý’Ëè}îj(Ñ_nçÛÿµóõ­w©£§OÔ4„VÞ'›Ø["£Õüô-c‚´£³`Ù®-—­Ž‘áÓšC}áå-[㲌ê¡gw_vÆwÒÿÅs^ö7(ž‡Š>»ËSL>jøÁì’ïÅ6ÉIO›rŠ-Ô94ȶ´÷9¨ïDÿiªç|ܦzÛñò~Øg5—Öƒ[æèzQ±kÀ £óliEî-¶›ÖCßoVr¶Ô좺ojGŠÆüjS\²ê>×|naîo¿ÿŸÐù¯Ÿÿ˜ë÷ŸÑ\ñ‹{Õ|W·ùó~ÞäÎnTBêöª±³é ï›6f™òÁ2Ü\¶êúø´Ã[³“[žd›U'›}qM6l}l€ŠáÚ1–7?[ŸxÞGN°¼¯ds „VTp¡ZÛ9SœÕ¥5¼«)»ó5¹Eµ©WN¼‰z?Îg¶=zìÕ™ÔûTóŽ£ü\)×û攎{õk‹ððNmá¦>}ƒq¸Ð¥W QªÆJsµÅ5Ö*-ÙnÑQ\öþj—ö”Üåù¾>$fÕMmEŠi´agTHÕÉŒÙf‹Ëç¶ÿÞ×¥¤÷¾G\rÏZ%¥]YUù’ªºÜI¯¬]°Ï²Jqêá_ëÐ>_™$KŒ¦5¯J+E‘XJÖæª²’ÍŠžóÛ¯Ž;ô;;ûð>ýdgoêÖ·™Ü =Û“ÛäLN6k-ªVkcõZˆÄ×Býº²Nž.¯7kÓ¥Iu­× µ/Ô:r‹a,;±TÏe¸¯gËð}ç¾K~Ïý»i$c;XU14Ž\R*ª`íÜò^ʸ޿éŠûÉ÷\‹°”5“­‚¥²†ºñcVÏ–ª˜_ôúæWýù‡üöÏ_äOíÔ碩OñI^~Ç㔃ZŸ¼•ÌÅ١Ж(ˆ9¬اžX'©Ò»=YfÔË‘W¶TÓÝ/®º¶)-'l[+ÔEÑ–ë‹z\tn]óq>Ê«_þ‡åm;ÃBëFìgœ+àÅ©}U.sq!êÇC †k§9U³Å®6eFI-®íQ±e°nûÅu,x›öÿQCàó˜ÀÇmòèÿWöùku¥æ•æ YÔE/ªçÓ¢°zkv¸F›4Uûפùïæ¡½¿”ËIÑ(sÒpxŒö³©áªÚS% ]->p÷Í!ÜÐûÿ*oç†1p—é>; ¦+Ѹx¼ñQu§R¯y:7m÷—+#ž±^aqKUkKê+ÐLG°µ5Ë»´ìhŽÑgå{{¨¸A¦r…äSXRãE«ûKp#㦶sgC¾"JãÚÈBEzjË Ãã…L#µÒÇRW+Ü·€õëþa§ÿë—?þõÛoóÏîŒäµß|hø/ô…ùk†@ç\¡£8=?ýÓÓ{OöüͶûb•¨êÔÕs¦º²ÃÒ¹`Év\#o,æ96ŠÑGÛç5f6£µ0è6›æÀq±.|,1ñåÁøà{õ>R +¦äy-æxht-Ñ­äWÍ$M…¼®yKgä£O~•÷G\¥óÕí$%­U¢FAýÚÌôÚÞÏ©J&Å j§?‰ºoQS7’“2„.&å¯ò>8 by`®í{\9j<¡j)s­ŽE\V¥àt(­Îby‘î[¹4†^ûQ?d™õÿàºÁüß0€T±©¯´8øÒV×(×r=NK$<Õâ¾w¥âýe?¡­E®4žFMÔÕG“Å—©¦&Gº,WdÑ™(¯   ??÷ ûyøx1‚mîK-§_¶®;-mUq=êvåû†OU+•.O<—–Ä/CL‡¤Á‡Ž8£sâÊ´uê&ᶃ>>ï±2‚ž‡¢Û<‡Æ‘PÔVcm÷ji™bVÛÇlµ¬it‰ß3ŽBt®°¬ûÁÚªCQO¾¬®ñpï–²2¹$̃ÔûŽg¢Í{ÇÑe± ¥ïùóhrK;rÕmF?‹´13©í÷s&ÇËõïM¬ éÊ ©ñ±­ªºkHUçÍL“‹”ó U#þ6cͯû¢›Ãyø§©½£û‡Œ¬×U’£ç(]_MF-ÕÅ­ÖħéÈ—EÚÿÄ!uvç¶#üˆñõ,§²Õ~ŠãçR½ì!„ê‚z#ƒ3k¸ÔÊ4Z…iT©nø¡šÀÒRß·íP6g~®û··W>Þ |]ïbæ>—¢öÊMçGγZ‹®aYçÖ˜ò}CÌRݸ+ks™IšªôšfïªL£ÑåZ•Qà% æzߎŸC9\:DðɱòÞOû"æ×ï¶VË5JŽêŠz Ãv“ÔFl%¯2ë ‹k·µ.ÛÑàµ=ÂJiø`©Z΢/¾Ú5VŠŒ{‡|ôAc²|!´†>ÞS(–(¾õìõn d™]$xÕŸ©ý'ycóÕ¿ù`iqSßIÿ©…m;†%Ú }LÓþÓìp„þ?‡¬åµSt}Z g›¦Ò‹¦FÁÞX´jýg·ú#‡0ìÀ¨½ˆ-» ¥”í¹TI¿5àå¤gGºŒNÿ›í£D ½§2¨H¬NXöFQ¬×Ŷ>U®Uš| ~x¯ZÑ‚,û[Ê›inrß0Êìÿ•‰•ôL¾eõf@ÐÚŠQz1B5CÚ׌k2\«£¸2ìûz6 ×À†;‚;Œ;@j¨e5Ç+ \MPRðWC™le˜ñv²¿Ã!Ë(&ËRö¸ d í;kÚ/Êœ «44OÎX”pH@õ¨ì)àv` p ʰP€‹Q8€Ø€äsØÛ¯h›«µ~\3®\4ðå_ÞñldzhA`ß×¶gÌ87ç¦ÚÄ_ÛfØÜ›ø*Üá]^P^ÀÉ) äÄ1$ Í‘XyÁ{5ö &O ÍÍ 2PÆ} Hkš)Ÿ<±4±†ä}Ýq ÔIh‘„±û×Cí@m4µ¼´´´¬´(T)%H >D‡™Á` < ®mж-2Lµ'ÛS@ò¾ÓßiHl¨Žœ½(‹7¹.¾Ä°¹ã¸ùNØ×ÀEŒzpg€sHÀ¾˜ÈxÅhÅ uÔDŒ°ˆm1ÐŒµa’.Æé(oÈ@.£@Óži8€}ß!ܪ®°;ÀìÀ i—™(l@2€ª[@І¿òöúï‰0pNBm„ÚµžÂ} ØmºD%o(Í7Npõþæ¦ÜL€À¶é7à&Ü\€›àoSùm&¿Íî·Ù7àæªæ Ð<š' Ÿôs|Ê ¨Z(@ h!0¢’v` puÜÜ—Håy×è‡ñ%Œ/Á ì;“P?¡íp ìÀ%¸À¾¯×@›™³vܬ¸¤¸ ®•áÑ?7MîfÉEbñép »!µÅ=ZÜ£ÅAEÚQþÊ($à²ìw¦óQpj¡dCâĆĉ†d„ú{å\¼‚ò¸d m\ìA¦i×Äx’1;°§` æAÆ\J¸$&5IîÓè@‡ŠP}È”µ1ë*¹À7¨‰èƒÉxï_p{¯ºìö¢RÌÁXân)¯l9+jJ^}‰©qº:Xòx¯­ûâµõ¯7ñZÿŒ×Ò«xáá7DgÀõ"j[ˆ×&°Û¾FÔ&@NDmª?Qî j“±Û|Á©Æ³’@(ù-j³”4¦%ogDp¯õ¶I!.CÔ¶#8zÁ BLdDmô.v#àB¼¦þâDXÀ ÷ëÑ·ëÑiãBü…xM½DXÀ6Pÿ·¨­‹àÔ"ãË©!R¶}=… ص5 ׎Ýwd—G\|»QD¬oc7#Z§p†¶´§€ ñÚÜœà>\ˆ×&p jë@Òüµ°õ·m$Ä}ˆ×&pø>šS_5#:CÔ&@p!RÀDm œˆÔp!:›ÀAß"¸‰Hmâ52pìH ¸©M`ß‘p"RÀ‰Hm¼ˆÚxßÙ1°"µ ìˆÔÚŽÚšáB¼6þŸ½«é‘äF®ÅÞ{ $#A|0 öÅöÁwŸ‚ Hkèà ÿ{¿`IÛ3Ó™YÕÕÕ݃ÝF95ÝY̪ø|A2ú¹ôbmm1µu­‹¯•uMu1¯OX[]ײÃàòº¦u-‹µåuMW0¸3k›‹—q™ÁõÅÔÚ'¬-_Û\.FKk´ôW—×5'ÖÖÖu.¦6Öµ/¦ÖÎ×qʺ>܃ÁÝÆàάm.^6òýÜX쬯k÷gpu]˺æOÜ™µµu­W0¸3k+ç׋¯•uÍŸ0¸3kkgÖ6ÏZ×¶˜Zý„µÍÅÑF{bpgÖ–ÛkëëÚ®ap‹©õOX[^×´ÃàÒºÎóÑîã‰Á!c®1×Ï×5¯kZ×¹˜ÚZ¼„O’×'ybm}]ÁÖøién½^×¹øZ©ëçëšêƒKë:_+ݘZ>__;³¶¶˜Ú™µ¥OX[^׺øZmO¬-=gm創¥3w[L-ŸY[zbmuñµºøZ[|­.¾6Òk[ ìL†ëþ'ÖÖÚ6kË‹¯YÛí|Íçt¡‰0#ìxàðæš¨«½ÎÏÖ,HDœ¡šþÆCÙ.õ>²z{©¤wkõv«¢Gˆë†ê•*ÛñÂj˜²í:mQó£¢÷¨è=*zŠÞ£¢÷¨è=*z>ø7½GEïQÑûŠ+zÆ÷™²Þ±¶WŸ'K¢–ýTëÈ·Â[²–1ït¸û £‚ÞkÛõ<Ž=JvŠôçSÒ€¤‹l ²ð¨ç=êyzÞ£ž÷¨ç=êyzÞƒ¿ýíò·G=ïQÏ{Ôó¾šzž*ïÆÞôUÙTd¨XšRÆ7°3P²›Ô¨ñ[Õó>~çó¥ªÞ+¶Þnö†ŸÞ¹Xýl2ÔC´À ìO)Ò£°÷ÑTñQØ{ö…½GaïQØ{öÄðQØ{ö…½¿‡ÂžH:îqb5œVß #&k“œ¦€(À¡Šõ=pŒoÏw>Úïîvç#“¾,ïyªÒ9Vë^˜5àu·sA;(—#}”÷>š³=Ê{òÞ£¼÷(ï=Ê{òÞƒÅ=Ê{òÞ£¼÷÷PÞKîB_º üX¼-È;DÇ àH¬ïðMÈá;‹1o)ï}÷ÓŸÿ;÷:w½ó1œ|š·8‰óÙØç Ÿë,Älµâ_Â%Nß#¨×Øê›#_h>åi0Öð…§±€ÿù66'kK £såÎÇ_%×»ž”óù¸gömý¡­ œ±Ô‚[q‰þá  æªSÈiáA‚Ðñ¿‘Ót›.‘.4dñÒ½LB¦d]îÍÅÆ¡ÄÔbè\Õwä“·s‰_ r…c¼b^qÇ7¤Ú&z˜qÔ©ç§«Ê4BôÔüf€ó>ÆãUA%;78eÑ\™ufâHÕq [ä«yÇÙÚ þqÁþµ¥„Íq„HÙ‰Z Ù–LŒTêÂfÀ ñxkK N<`ôpÆ Scšš*"XáÆü[¼ª‰ûË\äkëñùçzcwÙê á­½zr>k¨ü³eç•“ääÁRófB¹ÐäÉh ±õn£ÃtfÀSF³ÕCÅ ìÙ#[é;6]y&ƒ·òœ/ÛD ½ˆXÙ™”\q!j°ÊWëiÝæ–|AWŽ;qj÷ªŽSŒYŒÁŒS øQ¥^€cR œð~}óž¾ßWÓâóOô–l«+D¬\d \S„>ÁÕ“ÖDcPÚR«Ý8†þÒÕfÙ#@âvWæDú‚.%„Kc+{­%oÑë=¢ß™i~Ö€ò Øææøg¥†"Aò<@„ dz¿ª@µ£ôá%m¶ …Vƒ^Èw³ûäÇT1n9²öI†Ý³ÌÍRñ£ÊwÆWËø®ÌóùØ+vkK”ChE¦tR|çD¾ÃƶãècS¶”|Ì]Š?täxPZà“0â,ˆ¹­• ”ÒëôeÒÛºÌGÂ+æÖ0øþ‚œx¨TBn,­2œ±/ô™{Mj-}««<­PŽ8ùN„ô w¹“t_ë-ÂÇÓ5® kš¹ UØ®QÔ¨÷9ÖéÀk¼»#7½ªõ»Ãî+}æ€ðÀm\¾c<£QŽ’[4D‘¨V ˆ=·q鸛­Lù-qäVGSÐß8£cÓ¨¶)¥¹Aj3zﻯðœûÉøç‘LÝ!Å™+ÀXá)©Œ‰?2ˆsÏyR8ÎâÚIÙÜ!ˆúȼ ¶ÕGFíöÈ~êÎë¯už¯¹>ÿlïàH[ –}/±5ÛñQ¡èA·Fs¸Ëv£w"ºTó)x{A ª( zŽG•½àøfFh?ÈÞˆÉî=c¹ÖTQ7¸UZJF`ñÊ-ùŽ ÂT¶Á‡ÌNÃ\[¢Á¸\ ¦î¶62Xõ°Ùò9Io”—¾RûüS½5¢Û"·,€Ù… n›\÷@â=µ‰àVJŸ»…v|¤¸D5R”rÔ PͧƮ®=Ì«ZVþãéô_ÿüßÿòoÿþÿúŸÿð}ÿ§?Y·Ñ!~()R‹}…âäêsøÞ±e?ôÁ§ú;ô—!tþDý¿‘#ý?Ý¿îÝ¡¾<ô´n?ÙßÚÈWñ®7Ÿª³J;"³•£Óœ€móZ‡dÀqʶô¦Võ9T[vÔ|*ðbýg<©†(±@úÀ­†òÂÞ"_Н¿FP|êܸ'K¸¬™[éIÕ6ŽÈ‰ç (Ð1ëºVpvjÜ-Cóâf½IÈatë«·Íki§ŸÇ©»›©Å¨]+½"ôl)i޹« )ƒ"jN©s&@'5µÈ^õB%:+dÛú_zÉ‚?)¦À¦Þ™<ÌU·¶#û›t[Lü 1ñ @²ÙæÇÄy¦ÚÁÙvº¢¹g|£#1ÛO1ff¾ªWá2Nm ^SÑÔ‘|CI…ÇmSŒ_šè3”zw+ý-íêu@hËVS€­jaˆ£¬2; 9|™¤6:Š)ÏoÌ wˆóÂ6ªHˆøƒLe»0¹Ç€9븳­î ‹_',>e€á —B0(dq[ÄÖt¶|$,vµ>R×0mo.-ŽÐ†ƒø %rCÆKd ôU{ªEýûŸ¾;ýö?¿üúó(ž}Œ×„£áNdëuòäµRh­Ûþ=¤H°Å€k¾áK0ïò…,ˆ< Z\ƒ­ÇÎ"B¤Áå¦ÒÉœtPÇà/\NòB¸pðÍoGÃl=´ŸžEA>Ùõl¤„lƒŒg+·©ù‚ ‰Á_˜½Ä¨³&€–Øj,%õâ¥i¾ÅÛW¿Ú_¾ÿé O}…]þîSõF ¸¿ØŒsì£û6Š-ês2áŸÏå/I麨*€r’ë&õÐ…r«,ƒâ„&\Ræ §¡_bÈŸ}ÕÛíçï>Ei)ù<›†*¡7.¶ä^|´×{‚ŠîÒL‰ØÆ ­u”–ÀêZ-¡º^-pŽÓ&ã<#¢ÜÇPß øn™éÕî +ࢬ)3Ä“QUm¤3ffèb×J³§c0‘#vÄî  :ïü„í×ZwZK0Õ\[§áßønémbâÓMê^‘àe†4¸‚´ÂÅù‚»k£.ìºmb |+é) ’ÀäÙÉ}ÀDûÌâÜ›Í{©¾3òݲԗ ¹/Œ5’Oy4[¥OÒB¾Q³¼t¤q×XÕ]8Ô¸z— A€ P³Zó´‚GËÕʶƒÒpÎ6¾¾%òݲכ…e Aa› —“QGÏ€OÈ,ñ5€2¤]“ ÌÇÓe3¸@¤â¨M1 i×èYÇå¨-ð´³là²ÉVX"Ÿ~þí§_¿ÿq\ ~Ÿ³¾Jî|öð?äéÌxñ„k“ÜÞ §ÑÀú{™±pªk´"uò¾wIµØÎí±EI¹êÒŠiÛ“.¾ÌÝ;W¤Æá¼ÁPiç) ÞÌI65s!ï½V1¿ôc½\×wÕ°j‹f§¸È©Ó5°RhŸòõX-B¬Ç©P†hÀ¨¶›Â°µRœË¸õ°}þiÎÛçß6Õr9Ô¿V3OÑëX9W±]ý”–‚ø guCӔ l= ˆxÌ‘~"“;v›hsrгž*Â4ØõjޱEê@Þ]5ÿ¿¯Ÿ¿üùç~Áï®i÷b6_<þVг?ÌɖδÞýGà*ÒÏH™Ôâè½õÌaljȳF¹°y¡Ë&xΑsVmøDýòªPÚl>¹·šêßýê/ã>ûܶûH¹$ÕÌÕÖ+Ù¡r àÏ+°yº Áìåiw"×ÐÔ¶ãD;À¢äH™OSN :Z»™´ïØøû¢Kþ’ô°ià¶y¹Âø>»øÑÀíUðš"ÏÎŽ/8¢Öq¥ᆣöÑg¨Ík™:l”d- SE¶°óóÞ†-]²ïWÊæ ms!Ó—šëÅVñô ãÄÝ.ÊÏó1€G¨A´&Ið‘1I¼(ÛÑ:`k\‘4bíóöúÁŽy¿'Ÿºdä/L³›v>M:h§Ï½:—gâ™|ì’¤qIOž.Ð]vx·÷±€Pk®Ao3&;ÕÈfæ‘ÆkvD÷ž»ºBŠ/e\ÖÞR™\+èã"*_¡¶„áBîÓ¡‹ñÒQ]Y)õ ŠG衃 k‹R4³Ë ú*÷ æ_…¸øîj+-µâ†·r'0g£œ¢m)Vׄɨ•ßÜËuçæ ‘‡ºÂÙ¼"øèræ1ró-ôèKWo禾º¹[â%¿™p*R)Xrn$ßÇpl‡’¥Ä€ý­QÝ Ü~þùGùÇùˆ»;ùÄ—ƒ"çY‚RÔÜÄ9BÏ©”Œ3²‚nQ1'îçCG:í˜9-´Õ¤ÍÖNƦ€úµIÔj±Ü{îJ1¾Îú¿ì ŘԊAH™A.›gÒ<ÏÓÊ2tÔ³/·úÉæ?òo[ümÀõž/Ǹն…ÛÚC®4Õ®±ßÛqò…Ë”.=ÚæÔ÷ÁýÛö~!¾ÊÜ/Ñù$# ›:r%«:±î”|7z\ÒÞƒWšûGR€m£¿Â>³{¯=¸gñT—Ø&àµã> °¨Œ³rX;±(Ùá/-å ü`Æî1~‰ Ö-ævoÈsµ(_ËžYÿkDy¼«ÍŽ­êݎņ_åg_K B¢>=Á;Xô¶­†_í‡_þï—ï~+?÷þÑ(çé“Ü êlŽxò,Mcbo•¬u:µšMõŽty šàÖcÍA1 ŒPmª"N;p—{·5wê]•l'q–Fí­V$]óå_y6G<å"3M;y‘2—‘¸¸\ ¡4™*¼/Îã2K±m鉑;Û‘6l§‰WüÀA¦½A²5Ù¡hoç}Üà¶Ô½íaÆæ¥7;»š¦"——æŠ&+ÊbÙUÛ…êKÒÇ…¨ ?÷SÃN@îÉS®FQ•Ý Oå¸8Áý„É'°›^JhÉ¥áˆrh‚¦.ÄÞ¦¿0Ío}H³+¢ƒ49 Ë*›Q'B¶­Ú•nÛ±t•|$:ð„›3ù¶387í\@s)Ž ½‹æØìxížsÛaÇÎP»kí8ÝIs’Ì1 §Ù9hÅ…­™Ï»á¢¸«HùÍDÚfŒƒ³Jª®Ø‘ð ¾i Ls¨3“4ñW­°z¶»+ÙqFíȫز ™ÓŽì\”½Ý]&)|ºŸÇ/ã×~ßyöšèüq¹>üuû¦Ýº¢>}ì ï8­{¿]ƒ_•ä·8IHß)¸TC:½ŽÀkô¹–\†ó´©»¬Ç‰ÖŠ}Û2µ $ ŒÎa6*Zi°ÓØ€˜n<ÇqKŸgð;«ÀRΡ®È0; h-ˆD.\ý–²Í^I\J/vÃ…£ÈŽÅÒ2‹TA’Ž5Ú1kªxÎm³§[ x–>ß#Ý¡® l;šèFË»†ÂZácxâIÖMeOr¡B 2{õ¶--¸F©ZÇ1—–5¥T•ðãqóbf Ò´Šè›øMþD •ðtÿº÷˜ÑÑiÝ~²¿µ‘_Â6>}óÉK±“{í Ê뛋5„•Ô¶?ŒVì$fäï}Èd˰ðÏâýê¡B¾ãg…W’ü<ÿ0²€³KÁb`ÛZ_Ÿlï„·¹«s‹—QÕ;~Ñ~^lÓ…gkŒ‚_aVƒò‡ì£‡Ï­®)¶Ï"ë·â‹-ܶÆ/F|¬°Þ}‰ö›ä÷wøÕ¥’õI)çf3ø«WûÛš©Øš|n6ÞoãØ#Ö½j¿¶ì‰ÖZÿÕfÅ—€ßRbXw†õhkhóÿì]]“c7nýEr‘ ÏyÌÈÛIŽ+^;µ³Iüósp5³;-Ý–®ºça]e«T¶ÄÛ"ȃ8°9²ÞÿY- 6mûüµ+e[$±ñæÚ`éS9—&p¹þÚ°o7¥éÁøÖðñÚ;o”üÒÿäZ›ºôâ´„EûCMroò¢«½täÀ+><—Þ,K‚ׯM£–V!x]zÿõ¹LŠ5L°FÖ²£åtä¨x^F¹öF¼¦}m(Ö±foŠâÓĹ¿uOÁßxm6cl-׆(ò­ÉÞXTÊõÚsỎbmÑ„¯Ëë÷*ñséïuíõÕî4ዽÎ6ˆ²¨¢ þkÓ¹HÐ/ƒ\%߯Òî¶’­Q "jS#_´ÇWÒ{Å$w‘F:$Ñ6M­Âº<ÀØqú2¦¶3¢‹çÞž¹Eš·÷å@ó]”w3ïèÞÀ ÖËÀâ¤îÑ­Ÿ[-X9â×ìzêO˜ùfþÅa&JJûÇu©[UœŸv@‘ _怉b÷<ËE𘹣•/Gš·!ô=Ø<-¿Á›9A^\w}bï'É/¡Ñ ¥PÊYÿÄ›?ñæ_or9äÖÏ’;>8¥'•êurņá:l­Ê.P>•4Grh:‹2ÖYì¹ä’U¬!Ö)`d€6k¦‚8M›5^Md ÙU?ÏÅeë˜Õ\ 5à S-`ÁY“³>§eWŸ³ÉŽŽÖÇΫŠÕÚy;Â%,àâSk½X[ÊPñŽæ†)ìÔa?‰"ª˜z²~uÙÔX¸YK/D%Ïž bÇ©kdº´Qþu«æƒ®Ï>wÚp7ÆE˜“$u†­kÍS³”+8[Y3‡Õí“£LÍQrÄØwI[äŠ0Láª%¶”ª&uê.óÖŸ¹36lñÈÖ¸7…µŸq¦4|´\hÀ|´BƒR°nc.¦ðûoÍR²¬µd-®¹ÂÒ žÓª+ iŒnªw'ýÆ[S|¾ãØ0ȃžãÞ&ä"Àc4ß)„’@­š`"­1±ú ›ÔkwT:ωmRI.®äô3õGí JâAêNn½TÞƪkþÐ)¨ºâbyàÆ½:3Í|m?­£eÄ­¬ê'€Û~ÞEŠV’knÊçÄôœ,²€Gê1Å>¹åSÖ´—cú±PµnŠGêu–8(Bl‚/pã­Ý¹D*ˆä;"NérªÐ˜Ò?©Öíñ P½Î$iÿ““+lƒ’)_:îÄd- ®RÓ&@H…s&üýoõÇ ÕòèsHu;Ä%õ‚P·É`€üàÀšuS銌y\Ó­Êù@æ•J­[ãA”º3HŽCšô1-!5ʵ%¢O¹ ë)|ÐE¶±¢V²èÕšÁ4q>ÚùH¶ÓDeËç˜'î¶–ñ#” å§·\,ÆHܸQ*U’ô%7©–ò‚P¾v-•›$E}N ð®¤4<ÍØ%l4ÄiØÖpÅc·”Ýž0ÄgâÓšA§[+T²2' „“õç³n‰Ü4þUÒm+”rð9ÍC*lß0ƒˆÕ N„â.pD’ÍÏ”Îú‰==ÚG§5[<ˆM7æH öð¹ñðšò`1>5ãT;kíœv6Ń[ƹ0¨EØQ½¯‹Œkqô »£&:é.~ûòß¿þÏÏ›²“ Qßž~§VF¹¤V[O}"nSÆœPn™Ö%FÜ÷ŽVdÀƒi²hlyV_ Ûì`ˆõ U.¡IyÉK‚S?lÜÚå3kÓ*ÀÖšQ€ð­÷壹0‹SÓatÖp'ÜŽQܾ5¶–¨)¦Ñ:vÂn¯DØ# œ™ã9£ìk³}ð^ù¦uj«Ür§¶›>û’2Rï]g±NÉVœîôw»wìÙM].·ìEV%¤Ö}cqç°T·‡V‚Î\¤F—+º–]Qƒ·:îʵ}ìÚ2Õ#ûgÅR ®yˆ nÆ~1)kud=A²´¸=l)xÁ Õ$¢#V a |PØGŃ2c½Ô"Ôí$%8RpûpZ°e¯©ÁŠÉ$㆙Tí¶ÐjsMY­ÈBRrúøæ tÔäfÍ~'–"¤VmÚ•+“ÇÞâaÒiœäÒÿø©?öÚ÷ÍŸñ2óÝ^Ûµ¼•§Oßõ°Ú4úìÌÄUŠ£ËêY¤ƒ–È96µ î\-U¥Âþ tBØs¢ikÁë‹LõÃnƒßü/ÁÄ»ÛaÜšÁ™â,2/Åt˜àϺe¡xà©jð<ôÖ£øšF²û•j!êr¨iÍ€[ö'iÅ—ú×öƒN1—GŸ£·CØu¤]Gx¨–tTï`°l)\>öÖo~µ,Æï‡D™T;Âouß»ÑË\!OŽ8Áè³ç–(ž<¸1Çgn”uc<²Aîlѧkε‚(¾DšÒRc§ÁøÖ¤–ò¶-­½0È• ÇÌhޤÝY.ðÐÁaÌDàá)ž¤olñùþeÝ"ú•;£Ô ¦_x8~k:Ý)õVÁw6H<(–± '³#âi¦ªI±+ô¬êbÔ“e°øAã‹ÍÿB¬ëÃObÖÝ —Ôb áxbW˜p]J 7²„B«ÕK‰å ÈÛ[3½fWõ9E5-ufŸhô0^ûÒƒRŸ<,¸1ȧbÖ†9B­{kh›F¤×ÉYMRÐ!ip»U-xݼol‰¢Éiµ¨…Á±µ¸^BÅCúHqøR›õ„x©5~jmØäQÜzÙ&É”Ø ¦é]h3„²5iøª‚À³Ö¦ÏÉvýõ—/ýÒÿíËᅫËüý·­²ã­»§?…[{£\B…·íÎÅ9íPX=Ì¢3¶(¹/É«÷÷|@µN5q¢¨lEµÖ»C%$-š²ÏÖÔäµ6ùä:¶È{¹¾Þ ©ìgi£ibßtº%¼}¡Øí0;tŒ-…éÉv×[ù4ð:6Ë;›(€eä¨[2ÏV¬qnrI€‡]Z™-%8÷¬À¢?ý»¶ÊÐâØØí.IÕÚäPéẏ³Ö½Þõ-¡…?~ÿÛÏ—?¼¿üÇÿþÖ7 /ÿDßYÒ{Kí˜òÛǯݼ7Ͻà+—åÃYFØmŒpQ»ãçÈ}¨µ sIã‘ ǵÛã@224쨸]}V’Ü< ͵‹×YAÛ üÈTåÓS•/ lÓvÈ’¯9 R×2ÀKÈ’ÖÛ¬P9Юsñœïq$¼`AÜ‚pe9¿EÄÔ{·4¬hu½¾u/^®æ öWë;ÁÖbÅ4¹%mÚÅè­|8'óD)hm«g»Þ1»}¦¤ÛXù Ö‚«SëHeLö&ÅÝ HsPFühµnÏT>;Sù2[lux×<6^ñ^&“ÊpwÔ­Pju¦œ?è?l =­‹%Ö8†=Ô³ŒÞÅt3Ù´Êί[¬w®òÅëõ«£Ü_²ïs’[«–¬k¦#¶2ÆJ*)YW¼ú ª]WWm)9î3—žŠõpPgÇÛeÄ®sHé­¨SUç¢ZÇ/†ØÝéÊ/˜®|É¡KŠb<ðøa‚™¥³e, Miuº"‚ÿýé*üЀX•tÀã[SKD@³9åÈ…rªeÔ³+÷Ëø¦ñGƒë“ÏQƒÛ1.%ÚʼnÎP­âÂ$q{‰lϧèKYW×.(Û~^#˼õN´ ª³é¦˜$Ò3?`”¥7?ö)‚p;Æ%øˆ…5s© ÜðËDÚį¡a¾$¯OX’˜öW/Ø ­ÜC/Óцåàל)Š‚,pŸã¹œÊÕûy4ací>âþî–.ÙÉ7i€`„hÖqµšôciª%,åÁbM¯°ÌW'ÝQSWÊÜš©mgÄh–˜=‚NÐì^ÓôXÀs”ÑÛ“‰£·?g¯ç3hĵTàdâf¤‹k…À²9D!~Ö LÎ@Ò!½ø´¦Zî9`IZÃÀ×¹º,~ë-E'KïNjÕñ`烧ÅÛ_|†WÜŒt™&“Ȧ֢ˆ»š¸ÖØ%ߊ‰5‚*¯*¾ƒ/ïŸÕô—HÝYçK¬ñÜòŒ0mEÏÞúû©àý€…ýé c}Y?á7oWµÈ­‚dJ2æÒÝ2Ž„X!««ZJ8¨mšV(ˆHı匂SÂî.ŒS¨Ôx¡o¨(¼’k¬/êÓ3—/Z‰Œ*ˤkÖÀ%+Û¡K¯x }šÅ ráÆŒdÝŠ»‹ÓQŒ.ºu‘ÂKóAqØçpõ¥ýœ3½]ݦ–;‹¡ ?sh>X†…'+5µU¿¾ºóÁ±[PAÓ® VÒ1hÚ¦ËR0§:ËV¥÷‹iÈúÅüå nÐ:—`3, P¶À¦ß§®ã6Ü%jó¹IQüܧàK¹Ò6œeš[jÒ¬ÏeÑÝþ¤/ú_?Žàé/!#oƹÀ¹J„I(Y}Šzª¡O±²‡·Ø×n®ç¸ïPgµÏcbD(XhФŸÔ®0Ò$DE¶ xŠ‹|ÿƒÏ0‘7ã\xt`v,¦¥=jËRðÖ*¶Û4h{âŽH†h’è"ÖÙ¾iW°öä/ZÔîÝÔªÏ%’ì¬èOç!këù _úv9—ª¦t?x‚:` %n° ­2ØÏM«HE—0; ELˆÄº‰ èzÈà…0…‡üh·ìgHÈÚj>9mùݱä¦õµðê‹©1Żڬ²j}Ú¸ì£@óL †–*À´tìÖbHÖ€q³jÝjÇóübþAücmI?ç=ß®êû”ØLÆ‘Á îsrL™|7 ÛX“Zd›&\ =ˆ%‡V»m5uûb©¡Vpn37R_L>ÖöùÉË—Úg«ŠuÝ'ÜO á‚8la™x7'/ìGçš¹U<ì’©ƒÚ@XŸÃ÷ ÞfŠ®¼+cü.7Tiä ѹhê!ÂðÆÙiˆÙWÚÊÍøõ—6þøenÐ÷ÿäù§ðÝV °Ÿdóæ+ËÇ7èÊ×'_¾}ábý‹ ÿ.g»úõ‹i_ÎÜKq]i¦åÀ\"Xß þêJ*³÷ùà该‰U‹: y@tºiMAü•§¸‘¸Në”ô*ÝXà­[ý ˜ŸØ™ÿw¸‡õéwm4Ÿ4ûQz²›—YÁs7‰0?¹®MŽaö#è8aæÖSChÚk`SvŽè§Æ²(ºöç.!ofÿÎ|¾BÚŽ Þ‡dëfhZ,kß-ÅÿZóLÕÙi¶I´û´•ðrpTÛÞLÌ¥$ ï ü}°fJœ“ƒFm”\†¼¿%$€@LijÌ[ØCAÄOSSÃ>lAû»¶Ä¤µ´œG€JÎÖÆL‘\aÒþíZôï¿l:L¨ÿ¾ÿ¢GüÇ–o`Ú?|¹~ãbŸý‹þ.D[ÿþ>‡á-²ˆKž«dOn”œãôÚK®´bºHr á«ê¦K¦Uñ¬­«5, næ\œT‹EAןÚH÷&¸²—[ÀàlÏï³ùïžºíÆ›¹^Õ¤EÝÿwm[rÜ8ò‹RËâktH‚´4²¤µì‡ýú ”ÔëN+»R.zœ>¶| UJ"‰ˆ qè¯aèpýƒ£û QÐQ!VË6ès–HN¦d€–ŸZ¢>Ø&ëÇõ?ˆa» ¾G²{^ø¹8öŠ#’·›z dýIuº„øŸÓàJšÒ¡#ÄÉIÕÍ„^IäœøÚ`%hDbª)Ú,F¹UñÁú‹'9;ˆùÜñ|€²ê”¾ÇNfe"4Œ]òµá-툻Ït”ëÝxÿxŸ%·bó_‹ ,K)j, „,Ä$±E.«ž¹{óßTÏg(Káê‡/Ùºp³ŽÓ5TgaÑX‘͈z zè>Q—©µ`Œ:[·µîP,q–:€þ`IàßëÐóâqîŸÄü×ÁûY®Aøß²ùˆµ*ÕC¤%›²ÖÁÊ+=MvÖ‹‘Ž|B'¥pŽ›u žÂR8µô'•ÁZ©ù Ix«M|¬nó5ŸüÓ›äüµMòw9ÄD­,¢ 9BÓO’£ªTÉ4ž½Ž¡¡þ½›ä<Ø¡ÿØ×¬C‡üåpõÃö°BSo–­)tHR±3AÛ:´èñö8KBÌÿö¥í·¯ï}zvç§Ïöïî Ε7ü&ø—eß|ôšCo&ù =»ôÀ£ß~æ~økl϶oÿÿw7oggoü›o6gî}ý+í‹6ϘÍ6ÌÙÆ²YŠJœ4êÈ^  ùðþ?œ4ý¾»`º³·<o§âG#@ÎkÊžž¥a½¼¬ÑI 6¸ <‡-ÛÏ*ÇúxÍÅ?Ö?FöýàWÿF޼ܥád—þñùÛg_ué·ŸÝnßìƒoí›Òy?oZ!cj5(Ð*ªoµÒTG)—<@ï‚÷¥ïë˜rà» µy’Xé­*&XËàVR°AȮ漕0%ç‚Ã:ã#ÍïOTçUލsÍ;û­I—–DÔ.6sËLä__6´ÙYéaôY ÉQˆ N2lÀ®ôf½¸ñÉ’AØ& мǸöó“|¹Ì_}ðÒ~ `ÕG ‡O·áŸ·rÔ6o±ØŒãf,’O%š`êÁ+rºuôKVZàìžsp™äé£]I¿?I», µÅ˜´³ßŠY­%¼Ö0Ô$ëm’«³‰ÓbCŽjp(Üß­°ŽtMÒkŠqØä«‘m°«Øì¥XÊ|,òùI~¹Ì¿,úà—Øw6»02„LïRvV9•Úk>Øx«O.‡cå«%2sG¨pF÷»›”ÑKè¡>ªúŸŸãuºõßöÀÓ¢^Úo2(ñŒUò$ÂÒ–Ø¡'S°Q1 Ò DGéîd4B iï{-vkòýIô²} ‹û`g¿¥Ó‹'ˆNÏ`œÔl”*7¶v1‡Ú=úî¨( & ÓoÄEà¾)X‘‹ÆS¡ªÐyy)éeœH9ÑÎ~›1Y=ø §¬šÂ7• Ö²Uï´^kDîë3½… d©{±Ìp»¸‡üh1ŒÊ0á=Üñhßéç'y«¿]çüøª'ö_±9gAÈ’µ,··¶[ÿïªïo áºBs8©7©d]²K}Æ¿zHˆ;aê…© 4×üX¢ð÷Gùã.äŸöÃøuÍ ;ûm:¦À=ÉÕª£,E'FÂj)=‚ÔàUïm‡X ÉX›³Š|Çv@Ym6xœÉ31ÇôXšÃó“\Ícšwö›õ›abŸüL6F»ˆ·– ~Œ •Ÿ`“!©œíƒÈ6aS¨5U‰ !bó?[ÙQ‹…æ úXÝÕó“|½Ì_}ðÒ„ ÙlÂâpÚÏšÒ‡ŸÙI@¼r\qÖZ{jyÒ¾çó` ”È.‚U?Pl¼¸$ÔÆe˜0ag¿a1†rÑH…ÛÀO°È¬½ ÛYAÉQ,бÜ?®P»ª»ªSn³+š|ì\kU?—6úšæeu.RÔý¦’:Y?{+šäg¯ÎÚßÜ…4)GÃÑ…Î2«Òÿ,xÓ­#è„>Ω¥8"­¸b9Á¥1-m‚ùþ2¼_tÀûÝyQä>¤³™=Oé>[AZëѾrfçÊ}f6u¶‘™¬>Þ2BźÒyÿUƈØKa^vv=Ï®wö[CÌ!‹ ƒÀL¡eKª¹г©–9Úá%NÁÛ|ø TAóÖ” ѬR˜¦:@y£¥5æEöËeè—Å@´³ß"`1“Fޝ†Ÿ•±úM¤å>ÁLûqY”ÍÒKn‡$’ÛÐÃH$äîŸ^rpƒå8ƒº ý×€œ‹«.;M±qÍ,uâýþ$ïõ*¼×5ìì7Гjé³gÙÞÊ{z½1'¯°"q'm¾±ö¤Åš[ŸŒ½V 7T!ÁIIºUu.ùà²ãº÷‹Çu;{Häa¼Z]Qvôh`ÝF¶d!ûr<3 Ä“Lþ0@ŠF©‚ æØbΑFwƒ5!Èy¨f0§%\v\÷~ñ¸ng¿5[ëê“' ðt ƨÏ[µfþØ$ǬˆýɈÝÿÕjΚꩋ¬{ñÀšÖ΢CH|pRå·'ù×e í_‹ mg¿T¸¦T ,Õ„(& qÄ)KÕ¦GÇÖ%È&³øî‰c-¡X Àþ(¡4K­D죧¾|’—ùàâvöY¦c…\o€J±™½ø§€¸cfzvl]ã`oš³o½Ífµ0®xx5¥„Ý0œ›žeéÈôÃÇË|ðqÑwÌÛ eÇ= 윖LÑ$&i)èøý2ü¾èƒßwGEàèÖóɵ¨Vn Ñ[ó˜¾ÒFv2Ë!X 9뫬î§ZShN ©´÷ Ö¬;‚/>.òÇ÷o¿^†·_óÄŸ¿bÓãY ú•¦g‡¤ˆRˆ»ÌNG¹×ß ÝtPÌj×!#WoYyöY±¨AÚ¸24/ÁÂÇË´òÇE­¼³ßB jD%GË0í`ŽÑÇ5&ŒP–ÃJ;¶»^a³††åþgWhFR†ò³kœ>85•¤?Ö¡óû“|ºìçÓâ-ÎÎ~ ¹ˆø †|‚dÐ(,ÃJÊÌ©•ÃŒG¼Ø'i±6Ês¸Ñ@¸š8 äÊÄWº™ý¤,¾è£#¼ŸŸä²xôi1íì7™œ;"vLÕ>Å\r‰…ËšA\Úš—`æÐýç5(v’ Ìs®ÙÇ‹u`)K§vŸ.#¨Ÿ êÎ~ÕÚ‹¥9"üÿH„¼…¾JUêQšHþL$ ¼íDâ©Ö iFQ¹X]Ú´ÎÎÛÀeikw™ÿ¾,ý{1íì7?RcÝÕ™8zn£dEÆZ¡wë@(Ÿä¿7«í’œ¥´!9Øå°dû>œ¼5œ_òÁe"áß‹"ag¿ÝÚŠŠ±4„ ›3®ÍjÅà5¸yØ<+J¦“¦Íò@\ÓÂHGǰ¶6ãVï™*[Wš|¹,}YŒE_öb¹9ê! h„8ñ§·1#ByqˆCTòè.“Oºcv†R… ºë¶ËÒÓlÁ°Ü—Êaºä–"Ñ—Ëî2¿,Þe~Ùße".7¨¦X¦¦€B!¨ª¯ÃÆëôã´w„˜“Qˆ&×{jT9A’#À±Ë|¯Kˆüôá*<}XóÁÎ~㚦5͹[*{҈ūmÄY©Ü²ÞYN&BO H,¹qÂ/@tø’à×äyZîïluííé2D~ZDäýŠØìÊ  i(­¯ ĬõÚ Ö»â‘‹÷52v¤±«¡n´ˆ?Ù&Dc8Ãn­Büé24xZDƒýÆÝ ’8,Uê\|UWbG(oN¤=B ådÚùlÃW%è2h1ÅUÔC 敜%ÎÄ¥ºÌ§ÿ\æÿ,zà¥ýV:¼¤®ÚàƒÑ*urS­5«OMä0á…>éRbeâ ò–åÕq9à±+”f . `º”kútY~×Ób~×Î~#7ÏV‚‹@`v °”q»Zîdó5r擬wˆbTÔ"ÛÚéwÐß@jóaz­¥Í[ˆ>?ÇeG×O‹G×;ûÍZy¸Zâ6ÉËdËÿŒZzŸœÝ˜µæT;¹KŽv—î4¬±7äìbÿ'áGr˜™©-áñ×Ë8Ñ×EN´³ß$õÑBÒ–ÉwàdË€äÄ³ÍÆðÁ¡6p|rRÔ¼6›^ä¼h÷ƒ'¨Ö˜­pLPJ„2–´Á×ËÐàë"ìì7„‡™@½+ :£×nwŒ"c&Öá›Êá‰rÖ¾¸B‰©õ›ôš¬H< æÊÅZroÄ>€)å%üv™>ûmQŸíì·u‡×“±"Xð(mõ Qñ_Ç]ÔκUعwà(Îk'Ð]…(›œ ¢]éOlƒÙòƒ3U¾?Éï—Uü¾Xy°³ßòl1Ï.„¸ÛðaCšo¯*Â’èáur¢“YøÒt2`ò`3t²+ª†ç.Ayä9Â’Fþßwoûe×7·_óÄŸ¿b£Ö±>!£kª#U§ÍzM—“bƒ´WÒ­Çó½¤ÓÄÓñ¨Qû„ovej!ZuÝîùgè%$þ)pþ¡1gÇ~µÎ%Ä ä"gär .«“È¯Žµ©ýµ–ø6ö,ñ ×å“F«öùç6«éh¸ö­©4~pûöÑ·ß~a³Ï¾Å—ÿT?é?Ìov[ˆX8¿JÊÑÓÈ^*àÎÑšV¹&÷CâÝ}Æ&/ò×t³d³5ž(Õõf&«Õ{ÕEHönžO` O®®h1"âŒoáêF°bˆ'ékâׇ¯òQžãÑÛï¥(×^¤N!U¸ô0;¨¯cö9µ&kˆ}É‹ nݹ‘n)Ÿ--Ûq©9‘ZRM4ú¬­¸rÛè¥ë1?É‹³¬ƒ ”àò଴¬%Á ÖŽšþÓ~üíOMõôíëI¾ö÷·õk ÿ‰ ßDZݲö€ÿ íúÉáÒ_ãôðôç‡×žì(ÑÝ<ægkÉÓùž#dÍL¼«!OsSp#:}‰ˆw]JmáÖÛ;Þéí£}"X˜"pvD#$+ÅKì’ZCÖæ á6‹yÅ(n ’¹¤"û‚ä_‚¼‹Ù–9I “ÄæNYU|pÖ1©VȰ², ‘ö&Vû;BÜÑäDÄlWòq˜µÝH![†¥»\© Ü`NÓZÿ¤žÁe± Xá ñG}æÙÖTå¿}ÿã<L¿(§Ññm%bËŸø‘–—OqKO~~üòQ¿®-¾ÿ„GOç‡>ŸßrSÀ¶³Ò)[ßCktm²5ˆ3Õeâ‡k’Zº}rüNìÖ­»"BgKGVm°Nc6Elæ ÚàùlüãË”ã©ôøˆôønÒÿ)׿‹eR"ø!µéàæ¬–aŒ kMz™vfòÂÁ}XÀp>•âlõ¡£Cër TKÖc©ö›»û©¿óæ6ç~ÛÞ¾Á±ïmíYeõœœç9 Å"ˆ14jM[[lPAXv†Âرc([ºP9 ×aer–T^Øfå¶R#ztgï%:>I™Á¹T°™gìzœä \Á€{ÒÑÅHÛÛÚ¢Fš1Ð9馻Žg+ŒÉ¢büîØÜÖW|âÎ;ûLܶ¹o£{û;Æ`ýFNfPꯀíî%å)cúÞÖLwÙ1Ý­ŒC«` m4d SE`qàè?á%Í­dÝà7Iï(A>yuVíí:Yp•‹ ^Ÿ™‡‹>d¿.Ái-iLЉ ì7+¬"Cth#º×@mÄs+á{íó×÷Üí—3Ó{îùg+ž`|sTÞ®S+UiŠõ,0M}¶¶xöW]Ù‰E;ø¸ÚD‘â%Í0BÏâ©Äázõ‘Bšq¬¤P¾ÉÆúÕï±ýŸ­x*ÍÙPÒ‘-›%%éÞZcSµaÍdxE˜!»–"àE¶ósõ¤a€[+¼og‚^X-?õnjÍå^þjïÈ\NîÎ<[î$  ’É«‹5 ñHjËíÒÅÆ%ïõÌ. Ænx•›5¡´œXÉ® c`´qí1& §Ô“y¦Ü%XÙlW-#ú>„z¸ ©«˜…r²ºBêmFM5ƒ¼)b!È0å k1Ëøñퟯº¨ûä?qy„hŽÛéØ8xÓËKO—OŸìsŸmå›à»~öTë(E¢ÞÁ ,C(­²m¬Y(/–%@½vÛ'œç÷Jë9 ΨއXZ˜A¦5÷ÊQdV9èÉž ÿ)xÙ Xý ÿ‚ä[ƒ¦ "¶Q¥0l Nêòä9mÚnH}Cò6Ve¯iBpˆIJ‰˜(ÅVÚ$k£þç}£{>XœöTòWço üÚ¼&ÿÛ(òÒæg[„WP«*ð.jå5ûª[›¿Ôº(¤êZ‡ÇOn€iZiCÖêÁê†ÿŽXþXž5Üãø¡›qö[ٟǯ>f…ÖV°ÁîÜ«Uhέù2à„a× Î¿ˆ¥~§5¦í6¤*1Do3‚ÅZ.ìT율á’Í­;žÎr…û˜¢mnK•X‰“¯#Í™^•¬£¸†u‘´ï$`{Ñ•¸DvøZf›ÑiJv²=56<å „w´JÛPÜœN´ŒF?EÙæø&'V¦6ÉæPëh1§Å1¦–´sã(¾Yw¶D>Ž]˜7àž\‹ÑPt¬dóòU܇X%÷ƒôäá“d'¤ Olšø¹£ ƒeª–Õq,”f¿3!ªòp3X|-…2§ ”Á&¦iW¾Ò\í¯ñ îÌЂØo¶@O¥î²ïsz„à?PXC~v–â5ϰØ4Üé鬢D"÷¦$ ^V®ØqgK£²«þXwÙgRw»³ û—˜œ§â§I!boËà ±ƒYçÆš@‘¡Ç’øÉÑÎL.Žî—aîƒeðë-û„¸e?@³ I<œg}þÛwboÂåªå•X\-rÔ íLsŸ†uõo'U„§Ä¥ÚüðjµŠôYÓÁRåŸßeã‚æÑåå5&éj…“özîAJˆƒ¼ HpN®"mZzzÑeÍàú(»È7$sÖ2¡ê¶€ïÝStŒ›÷Ãå9|ýö¯±^}àŸ”‹³ÛáÑç¯{âókO—ϟ쓟mí[]ñÕÓ§>R­ ƺui\'UÑ`) ¸Bv¡âS\îÄë´sH1¬%Tµ‚µ#xéÍO<Y]<Çà*£úÞ<èÁ ·©À5JCkbóaÄQ*üçHÌv®0[í¸º×x\y¶¦I|rnÙºÃh²á¦ŽDF ½µãAÑ–j îÁoϰÃÍNá‰D^bkB© e¡œœ§ƒÔBw>ÕMU(;áéT7ÁÅZ/^Í~¹ˆ·¹.¥ÛØÆH.R8ÖFä××Ù­|k<~ú½ •«UNj½¨drÝWðhë¾²ù néŽÂšÇïô8Òéì6õ¹èLZŒ³³æ_:‹·¶Gípôtù6Ûuoj¥~Õi·UWKœ¦MoO-© ¿-f¤K¶Æ,TbâE,¢‹;ÙrÚzŒl×ò- ¼þ¹“ž+DP&–¥"b¨ÃLâòmvjßÖkÿªhz…ï¾ZÃú¼Xa3Eïk<…j±ï«5 Xt;¥7!P·I-½7N0’2¸Ô–„'i­zzG8ÞW5VÀx‰jÜ‹í0ŠÁì;¤"Ýu"xqxx”Npžg¯ £öëßÚw¬ òBßq J’jv‹IÁ×èr²Ø£ØhÔJ´ÊNÇÚaQ‰áúK¯Ú[Ì% 1–š=kÆv8Ö'ò÷·ù&f­¾ÉkmÕÓN“8÷©j¦—Ü¢%ƒVW¨#8о,8ª;Mw¬9$(¤ W³tˆª t Ä6CŒU“ôÃ'®W@¼³Z‚áEVê>(ìŒA ¹M7¼5«ÒXƒóŠÿš,CfŽvæè"»]BáC,Ô/µOw‚c»ÿ‚…R6ƒ¹ 0Ç>…”'GµÓ'KŶ„Ž zù:8þl_ÿø(ódï~¥}z¾Ä ›—³OÓ.ÌA’QšŸ¥jÂWæ•×R¶•ÃRßÔæYW’Æ49טyqU΋Ÿáàä£E4Þ×F-cñ#uEšÒý„íyv‰Ö.¤”Ö˜¸°oUÖ ¨;éôÝ‹³fþˆžRLÊÆT|QØ1Þ&=Wyݱà(>ÂP-òBKuGõئ~2у·TÅŠògm”,"Sópu ¼É1ßñWû÷?òíëßß¿­gsÔOéa;=Ð>þ³õB¡5;õèµ§óŸÏ¯9ÙŸÃ)W‹œ?Á–„¬TC¡˜j)0`qPª‘Rg^¬·ªÌÛ8L—)$jÒã 0L<™‹x(E¨ÅþߨÖ^éX&ÁÏo.î ƒY¨]n°Q+ ôPêlÖEÒ¥bÝ[ŠÍ‡i‡Ú£Ø îbÏgÚ¡Í4ÔF€Yƒ±R»Ð…ælTâìÒ }Ô~,ov„…û¼ûâð`›v¡¸Í:­ a‡àÝš©f˜ È®æZ«’õ´Še¬©DعΫ¼6j¬r "X®iŒÎÝD”åÆNi5À÷“Úím±ÎBN+çÔÓz’ÿ¾ü×ý>U\È¡ÇuZñSÞ»¤Ÿ…Zq­Àïמ¯ï ôh•tXû&c¶øø©äÚ)²tÇ¡7mÀjFx8€¢%æÆžýÐDˆ¥¢eÒ³ŒÁÏŠŸD¼ó’ÿI®ì¤ª{Ò‹R/@s†à$ ÁîyÄd.gpyÒr°…å5X×¶wÅÊìÞT7X¼e¤ØÎµrq=ÃóÄY6ŠO|Óèj¥¸¯G qô¶:*IèaJy;殃+µ2gÏÚeÆg3Bû¬qxK6§»‚\Cã#ìÚ2&/¶nW°x«‹/ÙæøØBc‰™{÷¡¹e%IÑí´]²lùbÇ P YZÙM›} ”ç,zýðgÿó’(n³Øþ6«õüåÏ ¹­¡ÓÆ"§<'»9¬“¯& “(½°Îš4 zÊÖ´3@ܲÃÀ¯Åö÷oîu$0Šþ‚î—öñŸ½/WÖ®_~> ðç…p¢‡ž—7^,.e‹œl„` Š’¦fm7ȹdÕ½ŽIs¡Qc.{F¬† iÝN„Ï]¨f)¹ûÖýÈâs+ÇÊ××q¹>k»#,—· rÛ¥À(qÁ»È°jb?‚gè‚/½’°õìZ¼YJÚ)¢Êú—­}€/·Ÿ³SîÙ‘M•,Ûì=Ï£_AeñðíŽÀü¾¸››ïÖái}ÔçHÚ¬ÎifI#ÞU×Gcš‹ðÀ‹ìœÐä"š"€OÞ`sn˜ê6ÛP ðY°Ê€_³ÿûÏ_­X°ðÉç'Þe|>=@¸mÃì§Ë§?_^òRÓõh…³ðsñÿ™»Ú%7n\ûDÚ"~>‹$ÀT*YÇ›d«î}û=h×3£þÚòx$™šH­àÁ2¿:»&`G0Œ³¶,ÞH’¬žÐpE¸ŸèkNÓ[è™íâÖ0UXÓ·0Šë\sÝHô»¶Ê;½·¶Ê_muÊNyQàµÉ˜5 _SmNx4¤ÃfãF«tÞ²“/ܾrâ „hЦ™a.’‘>¡[¯Šœ—Ú¨o!ýéqúê;az–¿RWOe–ТmýæZøPµ ×Óf”†]Þßk¢†4@½#T§]ÿ®#]ص’Ò=BŸë¨´ªít”ÞXêM>j¥kŒö ¼ÔS ÔSçQ2¡¾‰y6Oas-{Že¿a t“mó•l¶÷ÅÛ&I<처zó­è¯cô&Á==L¿¥¸H½;³½Ö"¨_§+A…dvg,ã¥6ÃRºé†”û „ˆÑü™ZÔEÍLfÎÈ-M¢dN¦Â™Ô¿= Ö5{½‰×¶º†ì4•ÿzL•ªßœð1e—ðõ¶`5ût°giJA»39!B…`mÙW?r›a0ÔõÎ_3]¾Ê^ócYÀ•E}?xýœ%|Så¤6Z‰-‡ +N­Ãî>ò\¿vJ¡òÁÀ=²îVM*TÛ±eÛk­H~ر+mÄ<‡¼ú¶§YÁëg,Aì÷¦Xå‹NÕ¤&e:½re1Ÿæ³ÈêûˆE*ÒS˜BÖ‰DsH³á6ñy!üü`/€ÈOŒßƒ™¡«›2ÀgM·Äá#éµVC¯p÷–£§0…­ð=g¯ïŒÞ|P€ÕhC ’Ô T—QÁrcuµÉtì! ”_5Ó£÷ÙÃ^ ?–oÂØÕ˜b@z¡*ÿ ;²Ðу§êæf—-Ää«´$9–)Ó†$Ûýæé– SA 8Ä@1Þ7¶-žÅ!¶"ù´Õ®ÁL‘Õ ÑQm ¹\’r¬ Ún¿· ø`L`îJÙ.[ºl¼†IèwmT|Ka€–1ˆ]<¹Ùómoäï?þØ”$üû¢ï>ùô¦èês®q“ï¦7„Úmvc =U“yïÖs<¥£ª-6_òh²‘s)ZóHà„Õi4ïCjã\=²á޾z3î@úm_ 3cÃï¦óá›4c¢–QÆÕU-)¼ÁíŸ$B¥F×Ù&VK¶sí:ƒ*ð³ûŠ2(ÖÊçp~ô zGîC¬m§P⮪YI5›¨9š /ü*ÖÅýM¥æ°:2'VVx{ò Z½Q´±CøEìÍæ,ŸrÊu^Õçñï?ÿÒ¿._~Û¾Ðq;Éì kýõ®µIf jÝ|þÍì­ë³ûîvl>m™_–XKóµ¡ÈF_²]Sw\¡<ÒZu 2µv`Eiç€âtQé= jÐe©å‡ó¦¥{f~Y8*†¶¾ð2²ì»Í¶<åÒLB¨ÐSs6‰,™Ð_Ð\,X§_3["w ˆ`ÃÄlÔÞˆ  0É×ç6l—.Ï.?‚°>7¨ßß‹yzLößÒwd€ýˆ&›ÇgÚ[Jܤ¡Ô*¢9qiÔV#š‘ öÛ,5ÛÀÓì*AW³Z½Å%g`ÉÌÚœ¾,N®9Žè=ã} èï0Ú5žQ§pkb’òݵ©ìäãÈc6W3HàjñAŸ£Žœg²«+½‰¯nigF*ð„ ©…¢'û7ãyårÑÓCú%ÞÕ÷eÑýÀîä}ÊÁ+Ü4ͦ±uÅ2zì2tªËѶ•fŸMçÜáRT³p±‰»‰‡¯&ùŸac˜ÊùÀ>0á·Øþ>Ó]Ã5¥Ú†I´% ¥MOHI³ EzZ‡k¿o¹R)ð»zäkŽÍ„ëÑ¥#6©ÉáóÎuú\¿}þëgùõó/ÛJîøšÁ=Ý\ï#!¯ÿ€ËË;?½|ä ²ö¸%¶sÎUQÚNâZV±^=‰DØYÖDÌt0v©--ÛuÚ ±08 j©*`M3*,—ûƒ§_¯M~ÈCn¿rp'ˆÈÖc.‰fiÖlÛÑPj°â«ÿ>ë}rïšš¢Tä^ê(Ù™ÉP¦ÈNS^oªûudF (uBíÓ²ääƒÔ¹vÓ–QOÌ9LAòaå@&'ÝRÅ¥„V%K)ˆ”„…ðìEp·i_-‡g™ô+«9mÒ}B8Rj@eSL6“$R¥ÕÊ)Ï4gu£«ž;ç°3›ÍI‚øVôz` ,oHG4ýú™—ë‹?½|ÈCÌüÍ–xžÉ½ÈÀ¤îÏØQÙôEt9æXíXMÉȃÙ¶!È¿Èä´ó°ÚÊ{™ï­D1蕸DIâ?‰£Ë#˜mêZQ¯®1gY³OÌ…÷OÀb,s*°qzë‰z\% ¤n2Åô=L';ӹÖ·q¹rðõìÐ|¡xûÑy»» PDRC°Ä™ûÒÿ³°Ëœ`¢ Ý€NéÈ@vEMkdvM9kBt!Ç:Õ§fæþ`¹w +¶¢G)ðJ˜ ¸©yœ§oÓûÙ"HmÑÈØj˜†ÎÉÙ„¢ ªsL½1ÌÀ5 ²ª é9a ÈÙäòyªÍ¯JH†H}£¾%Lò›þùYÿã/Ûmôæ¢^=ﯻu+Ù}ûÐÅì{å'{ò]ùníÝd-ÙA·Îlˆ*¹ÁÊ‚ŸË¨!£Nßè×9pš,ʹÞ¶Ž\s/†m{¦Á„Ù×d:ÒX?Ãæ¥ "VÛ ®jSÁ3ÓÓ Ê”X]p\ È^wHÖ.wk²k=5A"Iç®mzæãáìÈ?`Û¶‹ìº—p£†…ÃNrT€µT‹nYuQÝ?ÄJÀ-¥Ü 2ŒéñY¿d©Žm˜—ú9»ÔyN.áÍ7úçÿÿõ¯íÑ mËŸðl»}Ò¥†ÙcSdê‚‹ºÓÃ®ÑÆˆk‡UuÃ?å`xü¢”ØQ¥Å5ÓŽ`€uM¢­u 9¤¤'ûçg Û¦w…·ç¸áº1(Ø®ØqXWüܨÚÕÅ ØÊ<[}àÀE Í*à´Î@Ç­ÒÙY€z[©§óónÓE'nÅK)€ƒÝ¢l,1ú.T­•8غ‡[õR¤ƒQ;¢½"·Õ¤2’[ÑB™k¬ø Q*þ üàËýýËŸúÓqîÛßñ°ÛxÜerÎ&<)£Ò´]Üгú" uèêðy¸ë`{²…š"±ìseÑÔbZldبÉ5òȃ[Û“ß箟{ûÎzû¶|%"¥ã°Ý|¯Ã¶ßÛÒWá»5®mQï±¥æä¨(¸Rm£šuÕ ð_•Pz†]“ N¬clT÷G¬eJr³ñ41aýMNͦùPm—ofÇ«µç¥Ÿz«>:zï\4CJa=ssRw°”œ n“Ýú¤e}Ã,’§sæ Eº“4‡WužG­˜œ@s^èi Çÿ+ ·ê¨Ó ÷ÎWy¢¡G©:4Çl‚yÓ{@_O6gå=§€ZÉÓ]ý_< 3ÐÃ2ð; SÀSF½S õæÉ4ó$ÓEcìc[SR›"èÉÖ,lñÏö׿6ñ1Äû¯¦ãÕ_Ýé7»õ^>ðb/þdÏ¿x÷€\Ãë·/ï¼°Ï®K1¡= ƒr=+X „†£BìAΈÉ.Û‰l\F@’µêÁ烦2ÐÈiÓÓŽäìî{î6l4=ór㺕Þz=§áðÎ#ï±ð™1ÜñǸw뎞)ùÚÁ“C ÂIÚdS›µ:&8<ì.tÀ&$b5ÃÞ €üƒ\vµySO¢ÒHRÀ¢•slâ;Vpï™y¼§Ü‡q·~¡VÍ ­Ez&ƒf2 ÏsæÇ—IÎn_ó¯0[ŽÁ@¬!ÕsA½›cK›¥­S€'¦u©¢øˆbÒ‘lßAn4sØ<«îç¯ÿ· xñê’/G9ìëë—×n‘Áëg^–W_ìuŸìÁ÷‘¿›÷^i› iße°i4J®k0XnáE_‘¼Ý#íX;<<•`z¹lì|õöo¬™ÄƒB˜ÏW[¥Jq?³Á“Áæ@>áf69!›må=Ê;‹ P@ñu’…¼uØ{<|²¿^¸á®{xà­·š+NT›÷.V¯^ª«U—¸û*ŽŸî-wp¹Ùa™GÂP’wѪÓ*f»ZšJî,>…ìÃÉ-Ý·ÞZË';ì+EÜðÙ”ðÖmÔJM5xçÁ¥¢H¦à ¤iH.XnÿuÛ¤·µxä¶‘ˆW°´zóÈþÞn1× jÙµÁ(’;áZT4\@ådØË×ßÓý±ÈøuŽýy||ÿ„ W“ÑŠp‡¹¯*³¦{uT{ªcížQŒ9hp0¡Æg&µLHc1¡T@É0MõÝ¥²s²bÍyë~xøžç†5HD%ã¬E"j,¡JÝ;655¬6uVý>Ï ŽeëÎx Ñžær0jšB2dÙO@¼ìŠMPd9IlãðSæ÷q€ƒ®• P_ÏÇÏÔû'\êȨ¦‡‘YÄɉµåýXÝçÈu¿ªÈxXœŒ¬ÒURØôHõXº€öËì÷Íp½ÏOë^xžnœPDRõeisp=JÉÄcôºt»ü°î„´N03èœÏ¥º^Ztä;r´{‚ôŒ[÷ž²žÜß^s‡ƒÓº+§oxí VÕ&(€JEP?Pî¦Õ¸ºño ‡ &죨¤d­yË@¥4[§e¸ÞßJó'÷±_¾ËÝ&?ŸÞZŸ©ÕÇ\ìîŠl1ݬé5kèAë¨cŽõ;[$û»h–ƒP¾£RWìÖ÷ 墋â{JQ£6“ ~¶[>®vœòf­ûd„xaV`¹ÆEz-»"ªÖ_V‹Cøä {ÛiCa&Pj´h} i`ái²¹Ë0ݦaSÝñ´O>½v<ó„­;'Rç6§xöÝy,œÞb+¤½Sºéœ¸ŸÚsð<í¾x¶*¿‰ZƒO3óLo‰ÿ¹p×eÝ›ý´ˆÕg²­ÞdDfrS*žÔ»°µŸvÕ}øåïßîVR¥{$ú§Iü‡½+Qr$Ç­_TÞ?Âþ… ‚íõÌlŒÇ×ßxêîRI©”Jªªžu(ýZ•É<€8üñÜÕବ­Wå­“«_r×SuÅUí]‘ZNJNÝ6Ò±Ú[lsõÊr•¡æÞµ%QoŠ=OV7.e®Tz±â|HýLý×:Q[Ä¿¹<Ô)í£ŒV]dñV†,9õŽ{]M²î²í¬¶YÇ®¤œUƒÓOê)²÷RDE¼†‘ƒ˜:‹+Mw©ÎÊ{iC}ʇÉÿ¦ŒÑÞS½è” Ë"g%¢k3$U=²Ä6£ŠÚvÅ9+B°?ÛC…>®ÈÊ^)“˰ܪJ<¹¬ö&t×T;ÖzÓØÕ™ÞÄE­^Öwœ1ë_¶B‚zQݾâÅ<Àÿþño¿ýºã«…cóS®±-ÿ(Ê­m/ùjx$ìDx±f±ûÞæŸ^úR5RìÓ Íi·aIYݦ<Õ‘Š¡ ÖîbõϾèxãûïŸtñ¯ptôð}j /^/ꇻõñ¸ÙµOÝ9—N¾Ç7ïÜ_O„“KÊÉ{¿}Hû ?¾§“»¿½‹Íg{ó)œRýã>?ë¾u·uøqì›PØDä7¯¨GG4«á•¸á[ËzvÝö'~û?‡-JÎÛoéèÛֻœë³ëEz7ذ¥2€³.«†àPÁeK0Å\§9^¶C£†Âh$``ªº¶;,s2;pÁá@™† $àh Lx´ìh $ ­$°÷GK`ʲµ $àô­Zì‰8 4µl¿ÇtøÞñ8î<¬5À”%x¢à‰‚' ž(x¢á6  ´NFKàê8Ûp7 ;á¸úïö”‰§L<ŰeâÈÀ 0Zm#8ãŽá6 ήaO.1Àä9@«û£%p1ZgÇq`ëŒ_ÁxÃaûé©\ZæÑäÊpNÊ0d 'wP¦ƒ2†¨%胖@ìµc2l-Wà U†ñ¬†gv -ÖØ€¶ò Š¡}G{ J5è†ö@!´ªlƒzê¨G /hH !ÚmgÈy€œÈ9dí*ç=´'´6 J»‡´{H»‡´{H»‡´{“=Ôö@NF{àêhl@ih$à$´®%Ö(¶ÒCinHÀ9 ;p Ãl@a´pv´®†öÀB{ ç²±žý¡Á&† ·cÍ[†ÏBM?r” Î6MV®&q¹¶Ü³R©Åg¨ù 5¿â¾ÏPój>CÍg¨ù 5Ÿ¡æ3Ô|†šÏPójú?_¨È]Y/“J.æL #’mt[•™E”s±Öì¼rµØŠÂ57gÖ|h´ù}fÍvÀyãlš³˜“RëU2'ÛA;”U×%ÔZÒ3æ|Æœ_qßwÆœãÿg̹nˆ6;p@ϯ£hS.D›ëB´9/D›‚h“€çÑf“½hsÝmövO´9Ž¢Íy!ÚœŸmò…hsôÓhs"Ú\¢Í~m2°E›|mö¾m2ðR´)7D›_£ÍÕž1ç3æ|ƜϘós>cÎg̹s&%ô•ÝxR÷*¦”£%2]j0\ŠeT5«§–J“ï\õˆßbà¿þñ³"O<ü±øóô/5TYIL† WePu.'¯^ˆÚ4eíª“Ò›§+;ñ¤P³¶¹›v(Ú/ÄÏ µg5ò*ÒjäG½s×o?¥¤#V|]¾} ë|zýËJÑŠaD¥{ÌäBñÓyÏ¥HYìlß9(¤²_Îs¶¡®ÕôÕ¶&™+ªso»†pU3®]±HSG¹?ÖÆþþrys£Oœ`~xò#óÌÏî𲚪7õ¿"^ƒŒæ¢ZŽ®R¬žpÉù8 ž³©:³úÏ6®Ú¬Vâ®ìO¸bªjÎBOa°ô\²-‡ãX\¨#©ÇZïÜa‹Q_×W.°éöÎrÎ¥ê­êò߸T…SžIH¥ZýϨd¼—Kuß¶ÈŒÓxÒ|t£öHê×.+lcë8=•0¼¤rçÖ»›\újãrWï².çìš®–ÞVK1äªø–’UÔÀÈe«¾u/»ö;U-êµÒŠÆ¤|›‘ªZ¸©îI T9’Ú¹8îÜÅâðc§üòÛÏÐ}öÜG4ßÉõ/nªMÖ@Í:öãÛFºÎNz0þÙ­búyè–ÏýžôÔå¶­ ³g—›w.Œ]îGÞóérž.÷Óå~ºÜO—ûér?]î§Ëýär×p%磚cJˆy&›m‡_-Ûµ–Óª‘R^^âo7\î¯Ï9l9ÞïL:œøÞͦ~å!¯ÀV ¸ÖÕ«òov%—²þé{?ðžOßûøóô½Ÿ¾÷Ó÷~úÞOßûé{?}ï(ß›èJíüÒLE'kö%Û†²N¥e!ßõµ‡•ÖÄ÷þ×É¿üŒ9&öÜG¦˜œ\ÿÒÊ §‘ÙÖ©Ÿmªî°ÕmÙmM:,Íï?YMÀL¶á'M[hS$:ŽƒÙänS ¹ÍbÀ×¥6É{¶á”úŽÓÒ(1rr.ŠëÕvvW%Q8Ú”´²I}¢+ÞWžUC¢{O¶SrrcW]ã‚jFõì(õ^oÚ:âêuä¹Éƒwž§lÈj…˜TþCJ2j˜i”œ•P=Æv'¸2]ÝYžQU«)êšC‰³„$¸¼‚«¥ZFz,éö×ùïò3´=÷-tr=¶GK55gûnFZ=§˜Ë4«SÈüÔ8^=o·×2 v0Ÿl§ æ_ÏÇtn®;¬í>,GÄ‚;Tä:êB´‚`ž:uøépÓá¥ÃI‡Ž°ñÜx#pFà‹À'Gž\x£¼mÕè[ÛŸö¯ k÷Ðvf¥5Šš=¥åUšÕˆEÝP#Ž;wÂ<—æ¯S雲|»J?ålsDíÙa–²œäªŽUP}"Í6Šòg‹rðW¶V*Ršjâ^Іeeê]S ’Fh¶‘âò+« ´š=寶›ý.ûx*Ó3¯Ê®v&e²zë#­!Jã\lÓ«§L¶L»ºïq+•mÝ4ûâU”ƒFÆSÝJ!ÇQÔ®Ö—9—Èôζ_Ÿèj`×¢»7W¿Iè´Ü‡«ê"ÿȈdó4ÊVÆàøÅÃX?o±­E¿ÅÚvÊ#v/á6P H[^¤ ¼Ûw#9•”KWG4ÙÎIâS®Á®²Í}WêÉŽžä!7òòŽbŸgv7øz»Ñ}ËÖª¤àÐ1 ,¹f%|±¡æ<æül-yŸ­1æ(êÙ®šRc™2}m––ØQºþ+-IÚݬìSMÐsße€ÞòwN—dR¡ ¾”“v‰¨qYö]ùðSºmÜw2ºFï£JY¹õ‘8fí¹¡õÉKJ°à|ZôÐ2Ùÿùå§,sÒÇ>¢’ß^þÒ—ÄEsÕ(-I÷͹ÔTGÛh”²!Ç×x9ø#7ãÍÊbàõ´Ö†obÓÆ m€ÒjlçÛf¾Í¢ûK,ŽíÊÒÚc-©kæèÕP3Û»w^æpSåÕS©SȱøëTóƒo×Í'üUë¥^öè9Μf Rµs¥ZCýiüMÎïóWµqÏUu°¥Z»•ùYªrhr¢ ©å­a¾sÜ3þ~µŽÞâò»”ô)£-›ë{R]½ªÚcª±R%!Ó€?‘Ñ®í2Ú[¼RÔWWÝï‡×~x©†ÅGõÚ›•~ãÛœç³=+]”̱°†›Ä¾7æÕVuêÉ…8cY—ö¬üùã¿ûýoÿÜÕc¿¿üm^èsÿT×÷VjÉŠÛßBרã[Ý7yI—tþùk¼¼^ü—×g¿èôÏÛv ß½©Ýé¥Öªj£ÊÈ3*•zŠMƒ¯ÕŒZÙ YÛ;¿rûv9±y„‘Vf«{&“•ÿ^¯±T'•È)^Úùe—ž¯<°ï¤çˆîˆøãN/êuˆM„3¬°œÆéN»Óê¼²ŸK¬lâVñê íkF¯Qm³’…jˬ¾ªêCÕë!7V§‰†õÿ\î‹6/ þ[ øiro–ðÝbƒ}¼.õÁ—Ùh¥5™zToH=ß,I ó4’¹ õ¡¬Æß1e+Ž öŠ9‡> 9$ä§jYuS(å~aÈë!©ß£æ[¡€„¯2/Hí*õj]ÎæÖQÊò6˜d•寙OVXzß¡WñN½äÒŠ† Ô‹Œš¦Ú±̽Ÿf‘D°ÌŸyŸ&öß¼ƒwKþm>Ãuág«‰Ö‡SÍRm÷©:œ+i0J3..u)îçCmŒ0Ù=8åØTI5EíÈðêÚ<‘Tl®Í'ÿš¾•ÿÇùÚFsÖµ­ÂÆ °5ÐÐþ?Ue—Ëv°±×+•ÔœMÅ­…4dêwA €ö/eÔL6¢–ºSÏæƒºÀn!/÷z“•?Å÷9½5ºƒYÖœâX¢AStT¼U šsÙx»tÞâa‹ußÓí}‘†2%WRC“ĉZ“ãšA{ÉZó+½Ÿ£ÿ!>ÐÖýî%æ~JT}Rk$ª4ÔÁu,n«¾»†¹E£••?Ê Ú[aûÕ¾Ð-á>sþ}áJPÑ2ÚZ~¬Ô¼äes%Óž¬ªp¦m*Â×ùD»Âä|´'¤ýžZêÜÜJ6å3’Þ׻̅ԅM©JÍiØî}U®õ„?ƒ‡tK¸Û¼`—(ûYÄ”—T%ÙÜÍÊ"6mLU› Ñ/±J“’Äp¡PÝ'yJ{ÅGôÑŽq%Ë3Ùeí.‘v µ¶³²öUŸTbOCoì9¤û²<'¿ì·¿Ë¯ÿõ÷_ÿ,#EG¯óñ^ÓöÍÑ1Äû’ÛR{T§–× -†ž…yõ–·Â?w˜çº³œO%›Ô=šwe‘ Ók´.©d5Ô¬‘{º0üáŽÓÙïØuº|ÇÕ>tîÍÔzÉå.¤sÍÄMz½@Ñkyí™gX¹+%ÿ¹k[Ž#7²ÿ²ïMH ‘xØÇý¯c@X+¬ÑLHrìz¿~O6)“"ëÒ¬n’E §«ª §òäIT^jiôà†EY™XuUtGG0ï›ÆÇé§Ë ãõnÃ.lãݵŠoÅsI¤NÍ©Ì.a,¡XŠl7ë°€¥)œFpìYmàÎyÄNq6 ¯Hà[k¨«¸Ár>…õÐ÷%Ï–¨‘*Yf{ì‚õó­ËË™·ì$0­’ š:×Àpà®Ñ‚ØXGU’ qåc™Ûû6ñÑJêrË8äú7ŒCƒäZª³AIârCìÀ\}B`¾5Š‹ÛÑ6Å}×zN.ôÖj6iž¡©9P›‹uÄ™WöKÞ@NíÈmVõÑFÒ‚ ¸[É»ï­Ù¤Š‡[H³‘üʪÒöFlŠ-Î`SÚˆÙÞÒU¯1zmy@ÅÅâŒé&±¸1ýWT?¿ËíÕÔ™ï¥TLÁjwúLV„8ÂÜÉ´2­Œg™ã¶]Fˆpö6œ-¦Ö8»až#T¢¦׃+‰SèMvc÷WõjµrºSmнO†Ÿåfã.¡Mn^8“iÈ¥¥Üiëf2ÌJá¥+‹ Yªö‚"³Òr†göXá·°„ÓOÚÁë½ýš$+Æ¿èÌ€âfˆR]ç\“ÊŠ¤z àb>¥Õ8 q–{Ïd/¥­^  ~‹ØÝ5½V6­At>úš»ŸôÑÕ>‰âÈ¢5!X\ȸ™Yúq¥¡šQuî1+qñ…”‡í[@™¹É.ìs#øhÁt¡)òëkÖ€Èx¸ž¾PBê̾²ÎÖFZ‹wòׇͦ¬z·MÄ6FɈM Á4œ%ÿñõ%K{´f’H)ãI›«/ê’KÝs‡u°Kkì²—… Áeõ‹˜»0L@àm+œs”‘iLG¥®½ÈhêÒ"œ\s›%)Öë¨X¯LbÓ´–ÑôåsûŸï¿Õ½ýîÎ=1Ú6žÇÛßW\þ¯>ÁŸþ]èä×NpÒ$b†mODÕ©UËOɬd V–&VYNë6z¢ÓÂ@°UD„ÞåÎì œ*д8Ð#²(Ç ”–Qxž\zSÌálbp‹¹5a'a†[‚NõçÆ8¶N8Ñ¡ƒðµ6",¹c‘ø2 ùŸ7Eáç6¸ŒÙV±È–Ó9rªÏ,•XD«×ÌaÛÃýx¸õ–fá><ÍOPr ¡“FQÈ%¦ÑåYÿ¼ÿ|䯠¢'ÇžJNN;kÄPyŠÃÊ(~øî¥÷Hž3ž(o;Ô0*;K“4H‚„ñTÔoæfн\gþÝ èù¢¿‚{ž®ypÅY±2ЛN˜¢†Ì RmÛâš§¼“dÈœ€\=m£nùñ°"Äíôê&ÛðáƒÅ^/ÖüçùÊ¿Žlž.¾öª¾P?„ÍÁö#Ší–R‹‹/¼“nuÀˆ&*$l/1ÅrÔU»×ÌîXz“m“Ý“¦~ù<¾þxGºy~鬳~Šçs#'Ë-í”’*¨'#ºÍ3T,!ñFQÛ|Z³—v¥¹h4ø\H¡™Êœ™.×S<';ÝŠ7§  .`¢ lëÚMýy 0Rðl½¬FãÀ9×°„ƒw)lÇeÜ-R€ÿö.·³fe7€Q?ÊäàÅï!­ñN¼´Çeô´¢á Ú8לÇf¥º3iK-÷lÒÑ-Z†çíyÂ6±‘¦oÝÅI®ƒõ’E‹UGdÏ.ÇzlÏïñfîK|>„¤ª‹®!©ç§8õ¬ b‡gÐÄ Ycé±X­i› Õzò,4øqiûm†–kµrÂvö‚À¬Î,¤wžzŒÃ~¬ÍØãÍ|û{ûLJa¾ †_OpJÐG¶W ¼acìàl¥Û¨m—sé‹Å[©ìÔóxåÅ6™z5VˆÞd=F³­ð¦>OÈ3üúJ¾oXÂáþÒWñü'Sìá…{(­×ìµp®XÌ N K"Êïô ¢Žhܹа¯J3ÚöùtPN‚SZœKëXÃã=÷"¯òÜ/ÀÉÚtá¼Qç«Ï% òÕ2`Zp«`Àœ¶7’ ¢ïæGŠv"7¬ùêœp30 &[AЄÃ9öªt Œw÷Þ‹¼Ö{¿@eÔ ;“·—Ì.Eí¶™Ñˆáv‰ûº‰„¸ýÚΙû†‚ê…Àˆà=щ8£ÃGÑy–†£VyS-bÒ":é§ ž*@űNeMž´û5óØ©Ïûh…‹ÚF\§•^k-çpÅ17šzlóþf~×Ó_¬¶©{¾zø×QÖòIN \’ǹG˜­ï¥Ñð ¿6¿• ÃE7FXp)ÁòwjlÈÊÌÏru¶…­Óü»è„ˆs6œG¬y\S½@éÝyl£‹©l"HÚÚͽw¸nÎÅ x¼õDЩí"ˆ8o‡•Ésjpí%å>]-P^®'KY¡i‚Ð]œe¨,BôAü¶Ôk(n+kÕL³û”|L Â_@ÄžÄ XÊf)îcem|wj¬â<ÒZ‚¾èg‚p\A³µÿ>V«þÏÛûöùc)ïÛç« ïÅ) Ò:ütÎ3XP„ŽmÞOw%+ü·qt‹¯™£”_tpiÎÕh•‰çê+…JHÅ’c«&ˆ7ŽåJz„å#8n”×0ÜKL:ôX @BµÌf³ÚÀ6.äbÜó&¶I³½›é‹3ó-YJ·Â’ú„6Ÿ>#šô쨅›™ÊÇ‘Ú22¯¤´—à$±!dͶøg ±Îa½ Á9"Q¥n#±ì„û@’f軃²V7ËИºÀéh VGÇÁ­Ìó=ÿ­¿ýñe|ÿ8&ûù ®â²•“œjD¤ãa2‰[L3ÂhjR­þÖöí¥,¶É²D°mc2 Òj°G\Aí-œ¤ˆAÛ¬,ø/=\t>æ½¹l –KÙìÖ¨ä¸SZM9¨ t¢<V3˜Ú¬ã­Âõp®ñØüšET>†Í¶°yŸÝÜhÒ¶‚ž¢¹fˆ J~POuv«ì…N·¹„ª*‘J¬Ç&ÆïèÇøþãôýó¾Ÿ=~‡«mõ4'’Üà–›"0©#)ÝOóøž¼—¥¤³DiG4G2”­ègVI©¤0Å!A¦‰B¯©ph׈æ—ð¼7«mƒs)¯Ý›¸“äá(IU®œF™³[¢MM=¹ZK¯6Þr½œ4¿‚ÍÇpÛ6B¯`·70 °¦!@®t‚/ Hh‚hG˜;xø¢"áç±Lœû{Z›Îó¼ö·ëøìùá§`›ö)UçÔe'žlÈÙ1bu!N8îê}Ç?Ö‚Åw›{ä£ïÁ'û[ñžÎÿû‹u½)ia¯ FÄ4;ñÏ(œ£çPªÓbÕ5ÎFhvN)ÛpàÞ¦“ySZ¼ól·ÙÅ,÷±9ÛAšÎ{+ŽO%kê™Yú¨ên„˜ÛVyh•@#³æ<Ô}ª5"ðj¥Î(òÏ…r°Î3Ä>ˆq{ ÷½€nôà*†w¤¦2µªçÃðržÙ}!tj£Ô–¡Ú›(®”)Ìsˆ¡ÙDûÒÁ¿ÊІsމ_\–Èû"ã#”ÖÁ¼ÁQ]µ‘m®‹õX`›ÏÞýZÆÇ×ù}»^Çßù_ftìdô<~üßÿMÖ(õñ¢§óçOøä§Ksâ–>‘Ÿ¹õÁÉʆ)eåØCÑ5iVâG—æÎÞÞ"¢ó >Ø\ÍRJ›ÂìY\ösŒdsôØó`ÒÁËÕÎ’7]|ãÆÕµ¿€—¾ZjYf­*“"Ç:2l O³‹nZ­ßÚÒg·×ÖÜ‚Þ(–fÿšBD€è¤„ Ä·‚5LR¼\úº»éê?Ü*—QÜ"–Ù‘=\ð• -ŸìŒN Ášô•8£ÏÖu ö!z²‰÷#epÙb³Ú©ÍBÜúŒ§r÷ÂÔfj QŽho0ýÖõèÌÏŒÎü|CtOvFgh9úl)q È!A)Îâ9F k踲M’Å& (–-©kDBÈ[KdÂAm´N;+‹c[ÞOïç/;è„×¢ã7º- óÇ—‡õè„Ó1dOtîlÆ®À_ÅR–£ ÖÉÙkæàz<Ú2~GãU¢ªð†¤.ÑiÍùq.;n #΂iÖ˜Žmò<½Ÿÿûë§ÿü¯pÒkÁ‰¯3ówxXÖø€OºÂz~9ßÙ€uR’V³øØ%ûf-„fÌpGV`b¿±t„ÿÐl CÁW®¤äÁÖØƒÔš¿·q¬]®ÔbË -RneXó_Ñ|n uÙTÍõ¶¾pÍß ’ž¢›·Uãóƒì€ËZÐ>9ò„c>å ã«íÓœÒ4%Š•$t«Aðj·ÙÑ·IY²_£™ËNO.šÕ4›9CÚgó‰4%CßW-Tl+Èå[ ¶Xí8ûV-ôG]‚èõ}QŸ#4g­–lËzÐôÖH§Ž)· F´or+B\:ש¨­…hs« _Y,¡¯µzÙËÜæ1ÊÚ:Ìê:ê M«¹?$wÊ×’úùºðª¼R…§"›½v_P\óN&¸‹\Ö ¦/eÝÊç«õÛ³³˜é¡ $ÎìqÀ%•Âcr¬Æ%ó$Ðþ¤Ëÿó˯ÿ¸‘ëÆŸ¶'~·À¾œóEè?äòçéߤO®e®WÓµ—ΰå<¢Çð\t5l]fv´ótã±Õ|G`)­íQ§Ú0E+nÖÒ­»Qö_ßxîÉ¥\i~K`§êðãåu¦ ¯‰ëex&-³Ò†9H!{M‹²9_žx  ÒÍñº´<­ÊMi‘š³–ìAÓ5b¶«on«™;ÇeVs—ÊÛ‚q½KZ×TâÇ ìŠB¼&³Çâ™Ø‚Iglž»yÎÖ³j¯!–m]cs@ çk,ñíuGÔRMm¸š+†)¡ù8™<Êîaé¶!2¾é=ÿëæß{Žš¡kH1ß”ƒÇSá™y¥~uµØ¯¿­ßåŠúäOõóøü)}IYë‘¿ËÅ‹~ö«_¼$f…ßòédœwÒs°qŠsH!¥î1éŠTfÃÙ€SBÖÓ¸æ5*wúØ2Á«©½\´—H=2d¢YØŒzësƒwÕvEX×ë¨Æ{ÃÊ—§¬ñ¨¢þ@ ÕˆÆ\Æ`juën½™þáj£ÆnÛ_N)dѳÞšåÝ÷ñf‹YWPµAc”Z¦µ¹ÕCä±9ÍþóÅÇ}=¶÷õY£|>D|l›|Š“yÞ$ß!óY‹”S‹Õ“yìD3jššÌ¡¨}ú„+-Ò$’ïl72£,³†¾çˆu”fÆš]m6_%¯â‹ó×µÌi¶È¯+èeƒ|Gý<µG«–åï»’u«hJ/ìh†¦<¬¿&î×ÚcmÓíÚ‰{HT³U*í›§òÔf(ËtvqYTÒÇæ·žµÇWƒà{›äÍ ÿ3Rèi¿9Dè×ÕÞyyúî$6F¥Ðk›žºª´áÙÄÆûuߤÈ^žy1=•¢6Ô† J=ÍT“O¨R^{nkí9¥hRµê(1h>õ9…;ÖAI¤mŒ©EÕgÒ+ž{›± ÍÌò¸³Ï²dJLiÖäÁ'¿?]Ù;[5›{nöÉ8S â ×}aq,§'²ûÅ¿”Ž#Öªù_6†ùÑm÷¶ƒv,µké0¬i¥v³?ì£þ‚Ç>Ã>bó­$LŠÙü®”MAÌ2{ýB„ò¿ÿ¼¶Býç¨]ÿAßQ÷ž\þh·£[Ûœ¾v[ömuß{Úyädòžt¾•?Ô;!ÔÅ,s­’Ëä‘r:Íï -X0ÿ´<—nÝå_Fý¼Gœé « ÙÄúeò; j–eÝ¥t= bã½·\j•{|6N’ç6 -ò}H­JÉ—G‡雺þñë_ªoúúŽ}óäò‡(3á)‘5eÏ8’ÉLÙnFRòqcXwò@Ô5™=dÿO©¦bŸs¥”V~I̶6×£Ù}M¿ÚÉO1Û§d®NžÕׯ˜XpÆö8_ÉÇžŒ!êø ô£6y©s,ù…Ü`—ìÁ¯í³»FŽèôªoûôaedOì!´9þy ªí!l`öy¯ Tp‚2Š£àdÀ=QTp‚2H 9>^Tp‚A=;¶•œàdÀÍ( Np€2H Ù~ePÁ ÈàÞ°˜A'8@Ü %A( ƒn=¬p”(‡‰~¸( ƒî2 ‚ € ¸åA'8@$p~¨à<Ì0P@ Ü„ò ‚ Ðáz <¸÷vïTp‚2Hà^( *8Á È [QTp‚A÷DyPÁ P@ ÜåA'8@$p ʃ Np€h>fÂk0/ Np€2Hà&”'8@$pï…Ú^¨gçdÀ½PTp‚AÝEöÚFyp‚Á=Q €îë€ Np€2Hà”œàdÀÍ(*8Á È ›PTp‚”ãèVÔ§¢öõ†oÀ ¸78Á¸'Ê€ Np€òñÍÀ7 Sð Èàb\œàÜdt'‰ñÃÜøòñÃp»[¬qÌà(¸q£½àÒA—g„õ]«xp Üe@'8@yŽÊà \ ‚ GGÁ È ›Qœà…ÿeàk.p‚Á½1…*8A$p/”'8@ ÜÇ„ 8Á ÈàžÇ¤ îNA÷@PÁ P@ ô÷Œ^o(Np€2Hàf” € ¸ %A'8@$poA} êSPŸFY˜4Ô© NuŠÒ ‚ € ¸åAHàœøAó=}EˆÏޝà* ‚$p3Ž‚ €nBP@ Ü›ñœŒçd<'ã9OÈx6”9¾WÆóà(8@ ÜGÁ"ë˜eh5(3p5p€2H bxvÜœàôF^øÀÉ›*8éœãûMа"l¢›(Â&а‰"l¢k(‹‚`EX@O8œ ƒt|¿ž}áÙõ±ðì O½ðÔ O’ € hÖ j%Á P@>þžø$Ð,š‹&¢A=à\P@é( 5§àÇ¡ø@ÍŠ9Ÿ÷JL÷Ö9—áÑôjÆ4ð†¿Üà.]Š=K@Hîž'ùËL|½g®ä¡‰¯«³%+š‰k:Ïô{i5…U×þþÐ7R˜ãí¶–ô8K2± L¢»·Ùø\(&Ÿ7pûÒwõÁÈ›¼¢ vï{Ý›ŸëHÇþCÄ¿sc»Ð¥Àlþ.•Ï2UäÓÄ£+— ½ûÍmFµvfF ¸½e_èZršÜõ±…¯jøú÷Ÿ5çÛr¿ç ÜëëªZ Ù¡‘OüªVÙ”VJ#«4w˘²òé*Æ\PŠžÞ75|õfäË[‘iŸa±/|uõàmÃÀ„sdŸÓõ°J½³°{(ÏNÙü#ûV¶ÆK­‡j†{LÓž¢µ¾Üæ}«ü…”Ï;ÚɃÚçZKÑ ž7¦6®6T7îSñm&î­MrlI¿´AùÒ.ôJ»˜Þ.|ñYä—³¿ÏtõŠÿ·^ȘÈJÓ³èl+Ôɯ t¶ÔÓ¦^Ì4-%ôÿ£îZ”ÛÊqì)Å7¯é"Hb*µÙMWzzç÷ÀµcÙºY’íÞI™¤¯(_ÀC«2ãc¨„6zÐÀ°z-ç!i˜$ *~BŒPsÂ(AÒ௫áv¤Ð?üý¯ïÿ,ÂÑò#}àú\ý‚'§c´,ë%P§‚q ã‚³k™wòÖ±¿lÎ+—#´þÑA­‚QÆ% ½½E$ûîká5Ù%.z„‚ÿúõÏò½òó| j/Gf㸘xmúZWetçE±•kwk Uo¨Æƒ»w0ä.Ž6dš½LÇ¡t=‰ εæ½|ÜXÒt[‘ÿÏûeÞäx·ÔéTÖŒ±Ö&j‚Yòô­H§­˜W9 U/žW÷Áµše;í€\ƨ¨·?\”Í::xdžîª›ÔPÁk®$ÁM"¿IU8ÈâŸZ™³&ÌÔÐr@ -ßÜ·¿ë{ToŸxnX¶Ùðôõןž?öÇó7Z[Çw®Ö·ƒ-M«¬Ðî§öŸ­ d­Ž¢µ€P{b¦“'?bÈz€ƒüŽŠ{.Ú™{ævh•߬§üõnr¨,î©ü„gvvË’uËŒ©$•Ù3¼%úŸ)¢ ½ê(j8Ø ã›@EúÓ·-jéNËjZ Ór”–´¤åm-£h‰4ËšYŠL¿¡[RÌr_–è²L–%ôü>Oo˜ï¼Åtž»|ç-¦s¿›ï ¬çþNîs?ã>Ã÷y!\ÑÿCt?c=/|çyÁq¾d7oq™ßË_>g(÷ >ò9yaãùŒ}<òùúÉzƒ4=ÎÈÑç¤ã}ºñ%ÑxŸ\ gãyF4îtc¼ ŸÓ/‰Æ[ã-rñ%­x‹P|N%F“pF+gäb2ÙΈÆ<÷èÆç¬Þsê1]ò|Ç1éx‹ Üé-%ÏˆÉ Gxší…ªL„eÆcÚ2š„ ³Ì¤=o²›$“Í$š•FœšlŒ_^.¡›——ûÔÆæå%¡`œÞ…·lrì2œùŒÕL»¬æ3>ó´ËªËFm|å¶\l5ÉÜez'wùœµ<θ˗e:ã(Ÿ³“ÏyÉxÁNgìä…‘ »¼dº›—|ÎE>ç/Ìã¾Ë?Þà+ýi¾Ð‹—…#‚ñ9©øœN|N$ngtb6òð49úÁ^hÆŠÎlrìy“d²™D“`ò’†ÜÏÈÈ­-©Úubò¸ '_“‡Én’v©ÊÓä0ÙM’ÉvFd¦ Ú2=òò9myšgæÛhËçTeØ¥*#¾%)7“hL2/‰ï7TeÅGáýle0Éã…¹Ìý-O¹¿“­| Oya(¯u¯‡P•ÖšD EÇÆP*² rw”ªŒ}Ùc-éò•I²ƒÄËMI²ËÔ åˤ–‡–¥,#Kô>CÍÞ‹ÿóy>ÑEi—.:Œ.ªd58)ZµU>ŒÏýŠM ý7›”.Ù¤zÆ)kFÿÍD/~=lRš°dÊ#BMsVÙr²Gy½’X>†µ—8]ízcJœÆcLkRúi ½…»÷ÐŒÞùKò5aՆ ÏËW(k - dªÅS~â‹Ú%bM;…¨]mX_ŸÖmñF †…=JJ¾Tì´šçäs1ç  ¼Z¬‚vRbTjô-ÞÅ(^Uÿ׺–}¸Ñ·\À¬ÙÄI0ȆU›…߉°TQj NÉ ü¬~|R¿.îóó±çs±W4á¸C-9ŠñÔÌÕ½©&®<³5R(÷¸Ò‡K9dð-h^ê.²ÙóÄìA?iÑ?qù¸æ_¸l%µ°£…J(#¤8ÃÔ:=Èz_=o)Ý0Ó¥Ö±dW«ö4”‚9öRÒ¾õCÖl¾ï*Éš¦¾r}hë¦åy©/¥NÈôyîµ`é~VlÓ5m¦£iÕŽ^Wè‹x–Öœ×6¦“8¦že‘)êìQ¶ý4£ÿ¨v@ãü¤µõ›XùÀÕõfLÓWnU Ý 8+ JC&¶ëшü&Òó Ksw[Ô#¡}¸$¢ªÅnrÖÊi9ÈF\’{öµGºD Ðnc„e‰Ä§—ÖÓìÑÕ¤¼jNöû„â}·aÿùþkÊO÷ë¿6õýºÐãQ³ž—ç÷z¹ýþÖ“=ÿÎVnkŸ>a¥h_žÞ3 *Ò.FsÕC¦R†ß»ö›4³bŠ‚ÎQð¥8§¸È¡·§"ê^³ëò ümhöB¯K>\Zèt{þ¯(tº:ý®²6- ÊHp,²$V(~sú“˜ê™C‘Mv£NÍwÍkº]~ÁuÏZœÄÜ·‘.¦e‹z°ž¶§m%\·­êAà{wže¿`¥µ§É²_v¾oéAÛìæƒî \稹kš=†. Ö“êÙÉí¦o£š¿¼Í~<÷±îènßã”ÞŽqª2é£Xêœ!–’B P,¹²x­¼~%”à¸Os’€ '»ÔUäîFÑÎÉbzÙ¼Dß}ÞZŽ|C#ŸêžÖõñ.'u¡Ž‘@ Y”m؇AˆI“¸µÈlç&Ø7쨣\’Ì(rN)EÙ.‚öP "ä$DªäyÂm±7Ôñîj])ïuZ—ˤϖÓ2K²‰÷$0·µZj+Ðvôö—‰ædä1üŒ©4­Q#òäB½:7œÄU¯º¼zÙô;¦Ñ±&Y„)8mâ бJ¸LzSŽ6»ìÍÿýùãïׯÀíßíô×ü%êØp{á[ßgŸ©Õï«õÕGìñ ç·úsœž?~Òþ¡_v•¼b°“¬Š¾’oC6;Yd½¾8Âè.jà4㊞rÜÏ?8Ó›YA,¢1u[rQ“©r­cTp·EI»úzí?H]ê¯ÖÖ>òeu” ÈWÒûÿ ”Q£•BÐQæRÅ–²RIû!-—‘Ð%–; Q†Ã2¢¸e° €+X‹^Îx¼².\æéëÉq^­²ë<è5Zs}„ Q¶Ñæ•áÔvb,Ë  |ÞÒšø×âöïb ƒÈa:'[æ W»žåbÙéF„Ä=߯¬^·ýFY_¡¼¥÷ÕƒU¸2試©‡ŠÊg’51±W½´áÆrÅ1Wz4FüA—9±WdA(8´~ãÌÜ©*­BZaô‘:Üé°õéÞré›õHŸ¹2âI– F¯‡á?Š5j?Ì®( t«ª“5…ûPÆÉºî˜}.VC* žtu“ž¸;ÈÚ²ßXüzýåöâ±Ï& l|(>H÷_í|×5»ë½P3´qªšeM·ô ï'ƒ=ŠÅWNìgvš(Ï‹WÒ*HÑËÆ!qÑMI@*5Uhšv*@»‹‰—™%Ó¬YàþVðÇwúóïÍýúùŸ¿¦ÛØ%Ü7üæÏ“º¡|Ë{Ærö{xc‡xûõ§ås'ýÄúWm {£œX\¬¯5Äì»2å[/¤ELEA¡ºž†Àƒ’sÖwlbê¡j½á4ÁØ´¯^¹ mlµ„¾vÖâ»g->dÖâI€+û°î¬NKë@–EBXºK³vP ,-Ì7`NÐf5¥‚Z4<¦º;§ìa¸­ÄЖ)¿Þô>À’uÃ;6ä+v¹];öLÄÃTd·ìéƒÖ~µ4q>mC#U‚H€­0BNèìåk´“ÞehÑ‹ê0¿U:ñv;>˜³øˆ9‹§RµÖœ*-Š@À|Ÿ™± Õ¼‘‚„–a(°×Zrf>5¢—³*ed«Cñ¶È–_ìà`ÈO»÷±-_·eïš³6kh6(ñ”²-6êÖº8ºHæ\öQVªzg¾c¬IâáØÅÝDŽ!§®W•{ê³SÞàýÞnÎÇ34sñƒfb—ÈSÂÐY†2Ñ$vj±ŒDÜ€õ.ÊH®§î3ê½TÞ‡cŒ%Æ¿a\Œqr5u­Ö% @ˆzú‡¡U­‡.ê‰Ek†\r¾J9*ßVeîkEÊ™´ªù.ñB ¢G‚ö ÏHÓmÄ o_÷xq1ÆGMÙì}BSï)ËÿI‚íBìX—ÉžYZàZ=ÝgÂÿݾÿÏŸ?ÿ<ýKþéËðòëŸâN£Þì$û%$¨ÿÙ‹+z,µ2[¤V`­y¯Ä1ÎK ¨çiøÌ5½K>V–³Þu!¡Ð£Œ{óµo±òíÁN#"G±I’9$@’(M ºH\&ëzsÎA1Ž1ˆ£ð^Fc÷sv½™J…P„ÂîD!ëÖþ¹úÈÖ߃wLÝi)‰‘|k5q, Tù›ÄûM¢õÑ7Ôt÷ñi¶4ûD­²ï\ëÑSKýè7N-ÐÃýøu3xÎÞ1ô0 Ü–m‰q¦¢é-ù«gyyßòú fÜÏ›$Ùb%œ½iQ7µØduš,É=…‘GJJùCÿ Ô}dîï„;¯Õ΂³¥Ðºã#LñÝD±9‚ÐÍC˕ʞ Fð…G ÒÂüÊ÷Y6ÿ\˜Ê†cz?2úGÍc¼y2ÆÅê£Ä™È±¸œô2Hƒ€âŽ(j³—tëÆç×ú*s'dymÇZbW«pDÁ½Š—è1Cê¥WŸ!h…³µƒº€õ ÁD*idÁU˽V¦)È% °”èK«ÛŽáKt× Sî&obÇ1h¸–Õ=wrEÙòj± ”ëÝæLÁÁõ°êÅ.,JÔè´%DDŸÒt)³Òè› }Ù÷c«Ÿ ?îoд!(Æ ƒ\3 Öæ*©õ 1Êúô^P‰up/Ú±ÁAÓ"9>‹F}îVõ ½‰KTn¨[óô~XñÆL›Àâ® ä¥ú¬ZÁ‡]éP<+qwcž îoM™8¶)!‡6Ji4ÈPµªjú„± .O‰d¦_î† ¯íýŒ½`â™(küGÉÏPCnâ´ÒÛ†ÀdP'Oñ5²MêÝÃ9´®ò„''tN07xÒƒwƒ‚×VûQ³Õ¼–ØÌ ¾$ªÌ]PªAÕ[î¨ ¸‰û¾ïÔİ\?ÃvêÝ|1Ì©ñƒ)Õ +æ,nRÒ„°–hR¦iZ½pŸÅªê¨´ˆ\t5Hà#Dɬ¤m‹¯£8†¸q-ðVüö…o´å‹adÞr,€Aü„V¸×À":AÊ,¯Î[>Èþh”ÐM™e€–e´6¢˜s*zT/èí¶* /¯³ÃøýpȰðqïcœju_Ž[š^t“8%åêçª:dªº§¡ÞƒìÅq Ùc‹mtñV™µŠJŸzîx%éùuúÏ_3}Q¬aß}_¼q1Ä)O'Ž5!1ÄëKpР—Y° œVÈCŠi TîŽÝ¨-F ;fέÍ&¿³Ÿ™ëÈEBKïÛÆE±Eo_ö†¨ãbˆ“ÖójÍ£Ÿò¸e=ÀÎI<çê|€àòœq@Õf4ä«^€äžrÖqÉ oåÚî§:’ Ë}‡¹4\ÍÑ…Üeyç¦a‡,¶ÇËУÓUÃMn?TÖÓ ûHŠÖ—x<þsWÃëF®[‘$Q¢¤_Sˆ”Ôn‘lÚ· °¯¿¾‡Î¦›\χïx|]`‘MX¾CRä9ê0æ¡ÚcëÁ4˜P~]Xy}xY‰Û¬EM.pKiREœ¨ò! "Øî÷ekù²3VL lD‡&Ðgà‘šrpƒ«&Ÿ Öv^ؾϭïûPÉmüN¥$ãª1¥®Y3¶Äa­”–3ûp‹!@í£ž¢ÓTc=á9£4ü’R’ê ñíèô>˜›Br·Qü›ÅîFL`å±p±ás`!9ŒÐí&P¬±g ëæŽÉ1\Ÿ¤}ë¿­Êxjøû‹A†åÏ/dÚ+ªy¶þCmØä2gr†ÜçÄn,8‚8íœS&®@@¤ƒ—î ášü€¥ÙO`ê•tò jX|Þw@†åÏ_r²3DÐáÕÔÑ\* ØÑ]¦ûn¯¼d¯\wNÖ‹°ïQ%”Öá@A»xÎÅñÁÆñ¸¶ÂöŽ ¸µAº·­3Tb.Óé5™² }жµhwgÞ¤£ÜýäÉW©`TÚ‘ çuâ¯IOg=/Ï€ [A{ÔZt±cu*ƒæpÎÄ7J/½õÉVÃ&SoÄlÊÛ1ËÞF£ˆÍÒQÍøC"ÓÑ br©ÝÈá1¤{³ˆ¶"÷¾Â·¼àÃî†DtesÝJô<•cÍŽt#xs©Û/<¢K5Ðàlª¥#àŽ‹t‚c½ÉU«Žw·lö.°°Â¬‚ÙkoO*k?êÀÆD™ß á·ÏËX•€8Z²›ÓU 'êjÍm&@b`âÁ¾Œ?¾|û½_ôËçÿj__‡~ù1Æ««]b“DÁ‰)‡1¬“ÎE®‘QþaßEBçý•‹m5† Ø›¸éÕöNî®W-šƒ ¡©¶j×ZëÓ1ÅÚsC««=ÉŠÖ§B±™jº– £¦ìëD5ÖQøó …uÕî…üG㎀_]=9ÞA©·=U¹¨´l´¨È0‘j@A¢á'>©ÔG¹¶R_OC#;á~Ž F;l¸ƒè@rœKAU;Ø`ìP®r̦ǘÀ©M÷,cÇ{ÑþIJóï®Å§§ù½žébý¼”ìJ*Q‹qß‹ËÍšø¸¡4 Ûw=ÇìDþi–<œêw,I0Ù°‹œÑ5¶«çQ¢ $“5ðgЛ)æ|¬ûü§çúü¥û4.òéÛøúåË×ÿxÀyû“<Œq¶¼˜Ì…"‘pÎJÁ—Ú'ª']ó~/7Ù¿};šµ“ÆŽ˜)eÜÕÏõ}íàqJJñtÿ[C:[ ^l—îÁbÈ•XíàŒ …*k¶Ü‘gõ…³²M–iTà¨À/.MÇ ¸3»¯H1r—Êá‘ðÑxg?þßW®7Ãßn±¥Pµ)Xš&ËÕ<×<&€‹ ¶[tÙ®I·ÃíÊûª{+>åÞ[‰ÅÃU>ä™Õ÷•¤uêÙþÓ,‰àoÁ)"l¶—bÃGæ¨`¼}¥Ký{ÈF"¡Æ.mTGÙtL©LeT¥›@6È1è;‚ÿ5ðg ¼»noî‚Þ:¡˜ºÒÉsŸ!ä¹dd2ÎÓÊ·—½ƒ“ÁBµºÈ9Í9ØËvüFóM›!¶5ã3AÐþF8Óžô${æ9°L.àÊœ¢Y°á÷ñ:x9“ šäIž¯ÿx´×/¿Ï—àëOqºYìbo PŠŸÈ4Ýô94g#“€+9¬\e§½¬åS°5áß_µQ2¡Ñ< þBÀãÖZ±N‡?oû!ès³Ø%–\§½ééš(] Ûœòi9u͆Ûrvjº{SÌ­¤’vî4=l§HÔ]Ðc:²;Ñþ"ȳ뇊ôm¨#[èÌ> %› Ô%dCd;RtZvS¨Ûü¬•2¥ºÖ,¸£.ÔéC(È> á{¬45Õ2zc¢ª¾Næ§úKáÍJ¸-Å·oŠ.©jˆu^{æuR*RÒÈt±?ÃÿõfãŸzˆ$6ƒp¼8£šJ´Æ–ªo#ʳ.âÝôgÙ‘ždljÚÛlÌ1ÌéE"2‡à{ÐMM#ÛØßísùñXÿ‰¿9š±â,0óv­K« 4K&,4c F™m„/çîì²Ø2êty;Á»áÙ阊)¬v?Z²Ÿœ\t³ KYûÓ8ÅßgÁ‡ ÌÛµ.IeZ7QtÁ®°McC˰Ü qÅ‚{MpØ0 :mŽÚ¼ŒÄ­5Ÿ*2Fò3£Xfµû­gú§ßþ¹¦Júqn?ÄYþv-Ôa7¹KL6^Þhj¤Ø‚äÙdQH~GX«ÔV¦˜G1ÅÀà\N2“:ªà^uæËZÃþéþæ© ô·k]l ä #Hù¼¶c1t¾Ù¼ØE îLfkÃkMf7Í9ä…ÎÕfMç#~+hO”òðkÙ…@b_óCpó&Êsk:} F«õÐF`LVÉ’l`ÝŠv”r“ú@±“t›v‡d°y\‘^ªŽÙP&Fš?ývÕ]ö{®ßĸNÄ3ž« ¨ý¬At›ÅÎ*¦ º8]ÕpçJvVA¬1dØÔíâl‹á Á3òø`çxíÍÞC1þR°¾éG1æM°7ÐüœÅ•ÊÈcHQ)³7ÙïRׂ=m;K ¶òQ­…$Å.Ný`mØÂ)–Ùcû€×°›ñ~’é¨ygÀ©f²– iɇ*6m«ÂÁÚ°Ï´Öá¹}ª?½9|ÁÏpzy³Ô%8À»ÉÖ̹%@ëÝ›9wd·xÙ‡½a¦Yˆ‰n¶àfu@°ö¡Ä¾O»ãñ=£Ÿ~ùû. >„^Þ,uQ ³LFᚎŽA·‹xÐDä‘V-ÈÛ'މksÞ²ÓH£xÞŽìŽÒèsüjÓ¯žç/B/‹Q~¨ø¾ òÔ@í[s&¬(ÙÞ|ÔÁâ9S’2´¯ºˆv^)¡ÚVÔtµ‘©7ü?´4“£4q®øË§èêÞã'ØÏ^¦æ)š€&LÛÂŽðˆ©|JŽ1÷Dñ^€¨¥4&qcóa˜g}œhM:lÍ= "›$§š*èo­¾9@©‘£Œ4{gâ‡;‡¿}ýíÓ¯C<ׯçܬr™C$g3FD†ïR)µ¤žÜLÕåëÕ§™.Ú´Üà•²0 ‡µg·ÎóJ>øÖøœ Ï{ Óܬr!Û-˜‘L…eKjËV ;Ãa¦O‹t ò1jy°I«ö†È¦Á±ü>5”?¿¬òûªímWŸ‘*ÄùfÒ!ì`Kå6 úáO¦”¿ä‘݉·Ã“ΠàSÀÿ“âLn Ï­%ššv?üéç;6;„Pn£˜YFm£z;î\c£ÑÈmz¥¶l³TwEâ<RFÍ3Æ™£é±Òd0œÆRÙùpnB~ Y‰åwWÍ…pÖÜ2šÆ1“øYSã\²k]4×Ú]“]ÝçÈÈ"²ŽÒPÇ•.!5Œ´X³6á•Ãß3‘ÇJD?l9:l¹í+¾³"ÃMÍÙOÓ&SiÒ’dÒX¨Œ\£ÜuÂr3€qRð`ª‚Ê(ÍIèÅkS+$—ŒþñiM¦ÀÿÃÿ#ÐÏC:i{HçO¸þãuiDûÖË÷~±øo¶ô½"o?|Ñf¹ÞfwY2`C?ò&-×½käMÚz饞©ÅíH"¶ìÊŽ½Ñˆ@‡Èn:S/¨1å4Q¿ñUãX*zcý_ëèŒÿ—\ݲí請1}ª&Ï‘šCbΕ*Ž‚‰ÔÏ.Yš^5=@ÏŽ`GG’‰)^§Š¦€rìê `wrгGN„RrŒ¾1ýMò‚õÿ[[vÀÝ2k7>h\ªù0³5qdÊ J¦© O˜Ø×ªw^„ôZ‘ž$z²Bॊ˜ìƒÊR@Â"’X=x—æÇ£lK??ßß•‡ôÇÍ"W©»Î0¹QB]C8Ä4*¬§Ëz¹¼Óo+øà¶ ™&‡L°äLÁ¿"rÖ±·¯?fC¼øÉié»ìð#Ééf… Jã¨Bi£9«$#‚zÊUA{Ñ&½MPEe„Yc÷¢Šj@¡ÉŒÁî#Œì{ mJ:bkbᳫó÷ÉyÕè›%.Öcú€ïÃägˆ³ÉðóÚfâ:¢ç%ŒU}HÛð°  Šcém-+(œ³ó{kª©Û¯¢­œè”Ý+.yÇî¸õˆ/D´»Y«]/h:Zh±ºÔ“Œ9ö<²—¯¦Ï6˜Ë¥Hrîqàk’ëZ¸¨V»Ã€lȇÇÜzädÅ/ï« ·®)cßTcPàLNÜj+Y‚»Ã0ÇŽkö®_få4ÉÙtU ,pw“·psÏLCûÔ™<,úõ©^]âú)ÎqÓm¹·9sö>v—¶‰ÂÂB²É8~ØÐñ+±~ã$»/±}«$•FŠ3Øgj9U``‹šFrQª ¦ØÝ‰øõ‰^WóúþrÛmýE*..1ÙlÏ>+Ç4V„K‹ža·£P‡­ãACBRÔš2gw± ø·”'¾Œ…J†›Ñy‡¤©Ånuõ5'»|­T$Ÿ¯Ñyù××1ÿ¼ôöµ]>ÿëÿ^‡>ùÛŸ¸¬»óÇ?·ºn¾ûrýØÅδ°þ]¸ac €šõ~z­Ý…Ù´ÃwÍŽILq…íòè]Ò^y6rÅ:ãÔµdƒ€lŒï¬u“VÝñv{ê ÛZ{θcWmù"¤¥Deú\ÀºØG¡«)íOc'qÍ; >*ÞQ£1í l¸Sk% «Ž8‘ðÃ1¨°ê‹…jtª;þªD{¹¯mnl ë$¤!$ù9…B•àî+Nq;úHpC þGeMõª¦*¨DÅÕb²=¿9V~“Ïߟ¥KøÀTõó×ÈRË¿d=¢–¬{È|QµP®=2XM™@lK4³¤wîU${¸Ñw%’½niØ  3!Ov¾ììrÉþOÏMÖ¿#-­ŸP¹h˧Űò\‹äiÚm+Æß‘½žà¥6ño/3ª •IÍ¥ñ€KhKÁË\Sm8`üJF.¸/­xAíªd¯`€ÁÌb @QމØÎHV¼°‚˜Bô€½T´Þ†Ìw%ºä£)Ä—Vû1ññÏ_~ÿr±™˜þï;$Ÿ…Ï^’s:yv*Ig¾Q´¶.nv‹Ô#xOˆá´XJÝ“Êï6ê™FJ.¤^±Íb UÏT¼˜:AÄÆ8Ö cÿ§çŸ5ëß‘|–Œ?bAR Æ<«‚©MñÔç,b³åT6ïƒßéƒÑé{màz“ÀùL‹²R¢,œ0Æ‹^5 Î0þåŸ5Ü—|–¼ÄØ[™vyïz™ÕæÜ °<Û[é,~Û ÀüÛUX·ž¥;ö=+µ„Ås/¦\¦jÂÖÖÔîõÂî1És}ñãLã¼Yã"¹ƒ)ט{`Í1 »:3 ÙìK{¹wëŠ|¿½)˜MÀŸ: 2ÅP"°¨š‚¶JŒpL¦^uÈ8¦å}+n]®õ`Eøõ³6QN“˜ÎPckÝÞT·Š’@Õ¾Õ¥÷äxgx¦Onø~LÙd¶LMÎÇ \Ô«M‘îªÇèòá?¦,˜ýÞRðÖêÞÒ~ÕxUî!Fµ–í!€.#™jð²ÕsØÑ–ɦàŸZ»ÞAÒb·wˆþ—¸kQrG’_¤  €¯qTá±ç ŸíðÌîÞýýe±íÙn‰%ª[v8ÆnH†*‰¬L<ª O¹påT0ܱêžQ&ï¬ÄþÆ9 w.Œà·dòï;ZÎ2Ÿ9_6_zw}¥¯‰“:dF¶“Üê}n7GT­gˆÈÞÔÐ?Ë™Ÿ ýü£ÿÚùõð‡øçò&§ê”RÊV#–ØzâÀ{°Sµ*xnÃär}å"çáU!¸ÜÔÜ­Ô9’»ðXÇ`K-.eŸß‘'òÑwÓ ³—ñ®‚5¼ëH£Ezl  pìåeìäYXÖ@:MdðÄÊÊFŽÕ¥„Q|À ­Âñt¢Úå^ÆZÁÞX2ä 2µ°%ï^gZšåž`¼6pI;swV÷©µà F)*ÉcäXŸ0ø¹ns¸ø¡+4ôŸïó퇴/O÷ϯýißâÄÂÁ‚6²HchÌ“¬ø˜ý ¼sȤZ—á’]¬ì}EN2ÇH\”JW/³YŽW,žHX«HÜEW@´L‘<=|W·¦·p :C¡1hK7€ˆ×³¹ï’mÇyÇÙê*Zá’†Ë6¯T#µGæc[D¶€x:U­Âq/Q] BZÔúè _„X*ÁÌuÛÓçjÝ@d§ ˆsvRÑÏÚ׊ .ÅàfKðj^#¹GùþíÏ¿þñcJ­Í÷T50qˆA6€ØÉï¸)D$u7a8qëî#r•ÚÂ_ôeh’—RïÄÓéjŽ{©êJ4‹ك懴ÑŠF«í6£m]GÄïÔf ¬z ‡L—𛮨YU¶êÕ¶úðà„âéÏÿS„ú÷ÐÔòèÇhêì'†‰˜á™S¬YœÈÌ%yP×Òìj}ƒÍnë&ŸJ±]Z1ìlÃÁ¬Ö!j6É%”îÄÛà±…Å3ij ‰ûhêí&u]ÏÍþ(.!ƒWØ9Ûy9"²Æ† ¹>‹•äm“.HÒÐÌ.äq\„ hóø¡n•ü=Äóij Ž»iêÅ ¢6¢Xݼ çΗbs&×­zHÔ´e±^"-SÎ×Òã„$žÎ'xÎylCàË·¹z¾æ£êçFÿcÔôöâAÙ„¤!W˜åQš•j)Œ)Éã_êÚñ&äã°Óš2øÖjê^£µ-µ“FV4E³ÏtõÈûµc4DH+‘¿™ŠÎ5”á 9&å8‚Õã‹Ù „ž<mÞzù]ŸŸrdÐÛú*¹¥f–ó£æXâ€AöÉíµ´sZæãh%ü÷PϰÐ}¶¦ÒpŸ²BØ·]$å œßéÊŠ '±‰­¨9çYÄ*¦Ø©%;Ÿ–I­ÌÞüŒÃøß¿~ÈV) ã—§%žó«On8.FÁÛR®½Å‘;‡/×ó ÖjõBš¢Sß“ HÝŽð‘œs'—|±ݘk^Z»úôÛà?‡xVC+ó\D>“° vNZÐä’b±mµ˜$Ê‘/׉G¬zŒÂÔ#‘4hÚé½4ax³Ùk‚1窱½ü3™g5þwPÏT¦o,sGtqn°×NV£ ůuv6zôjëV º²x«ÄgK³s"sÒ£ô”Ö^¾ÈÿÙ~|þ¾]ðヨççcrÏÅåV×FCt*O‘b½ß¢ë®µxmUpæz}ð²{̹ œ”’y÷;µBÐR /dæ¾Qtì@üŸÃ>ëÑ¿•~.ƒïkµî…ì­¬8õd…潂m’àóuæ/-âÅoÙZd?bJŽ,Áƒ–ù¤Lì†< 8Ï‚ÿLZ‡àºDAmz3VÅ«‰€×’Ü¡á…åÉÞ»-v*~ N‰4öNÅ;8í>ÆTëË´Z¥ëÐÝô®_¾5ù2~“zóð£t´q“ÓlàŒæâŒÍŽV—XªÌ¹L½4œ‹+I8_ß{l'’õCƒÊ*^KtAK =#ÑíKè®ZPD«ˆ<‡š®áq+AmÁùÒ&´)x©‡¬¸3rª_NxÚ‘Å 8vŠE“@µ»AÐD£ÇF£`{ÏÄjG?‡<²¬° Ç3Éê(wPÖ.9„jl¢R„cSõi°§¦îJßÀeç DõÖ|§[ý³½6ˆUs%I4ˆv7è‘”¯_ÿùõóÓ•ÓòУDuvñ)U& F‹,f‚W&›ÁÈOk‘yçp„4Ü0{“]C]lñ55”èÉÂx<°ãMäŸCLkq¿•ÎÃ^#2f 4­ÙT.M¨ü)£ä®Ü6¾s8±UXŽ‘²™:±Ò‡U*.¡vøg+È;Ò{…ý™´ü;ˆç<þob)*2²uʼn=ø˜'(%H}Y?ûë„ãØk†Ô´†Wp¿Õiè_È%×EØy`½àßCŸM7xäQ²yséiÀ!"óBŃš­<@˜KÑz;™â&}—ÕNkp;"Uì‹$àjËp nÂÔZ4¦>³o^]:X¹æ<ôÏá›ËÀßÊ6oãn³ì`‡ãÒgä­qÎUšxÍWãN;'qôTÁ1€ `1«¾M9*N}¶† *K2žÇý™„sý;èæ-ÓuâN޽ËQtŽÚñR6$\Ðt饖t:DÙeéi™ov&¨AŠ2 òZ9ÀEë+bÿþüu~ûñ?O7f¿ž{˜}.®?¥˜|bð²S†1„JÏ,o­¤µ’˜y§{¯Wß}ÄøÊÖhªš%³uÈ´ÍK k6DZš«<‰€Ö¸™….ã_›÷Y­¡ õiá6Z$Ûb2½\q²Ï~²»ßZ2såú“íå-M‡SšÕ@fÄ&lø÷µóÓpy×§¹Ót£Õ`e Wí¼<†T³1Ô‚uåæ\à¼Dà¼?Ä»ð³˜Üfüo«!·~A˜˜dLJ]\çÁ³m(-QfÏn=ü;~VBÉVê•F¡ÂzíÁ<[Éò¦iÚD_<6¡wþ•ÆïŽÀÊ-n‚ps•Å5ªéÎdÆö¡@_)‡AØû 4ÖpÈngÁêÀSWê1`Œu †îU¸ÄÜ`uV=åØN‹W_äzU‡§ ñR–áqL.îsŒ ÊÎV<ëAY²íÉw¤DÖ¯8ÃbØY ¤®¥“qáa‚ºVóòãiê¥Påƒduq“Ó°BãLj8”l]pc’lË9—šÛ:e…ë”E 1V«4fÓçÛ ÍEµ(HÇä @ ãe½|—'çë—‡Ë՗מðš&í>;^`0"¨ƒBV*3u^©5pËÊ¢Þó´Sð„4.µ‘$ôVá¿ýR溊ÐÒ‘7 ,αÉí·ñÊ0ØŠþ /ÿJðáÙÊô£f™±À„Y+•$V,´ðNðãN©×‰<_3Áw G¸ÿ”ÒËKÕw ˆ\­ÿ;ÿ‰Ùa ‚Ûr ƒz˽X'¸IÈÖ­D…T²*L;(ðÎt7|¡¤Ò¬¤%î˜í(jëcÖÐ`þ¬yß(<µ›{úùu~W¦~ýø¹ÌÐâ­ÔRïÙÚC"/P%$†©±vsÌé:! ›öÚ\É>q·ž¡.Áøý8 —%ÐÁÍb?¿Êó³óë?BN—YY–cì3©m¡3„«æQ)¦@ ‘ v¶ §¨U î›™ÃlžóY8ÖH%¸,6á¢ÓÕòœ›_öû>’¡/îp‚ªgï§‚Q¡Œª•é¶=_ÖèYy9}†ƒy¾>+X&òH*Â9¢U !EÄaMY'öǶí­áðÌÁ°ÂíƒapQ°†P2Ñwß’ñK jµŒUÒN•ÊØ«ø˜£µ>‡ú²¦‚¬\­M¬u´€陿û †çç‡ (îÊ—hT×ÁÚYŽÊ¦ðØæ`»ÕOìÅõZÖÑØ1 Åg?{+ÖŽ­tµ¹»–¼xx›Ö³Fx\×q`r0¥2E´8Xüæìœ=òíš5À~ºÍòøøîÿ5¾|ßf³ú¼´ ^ý]Úb²ŸO´xד}ì“Ýö& »¸ôT#»BËá ŠtjÆù6c(´LŸgvvÛJw†Š Ó ©óˆ¾gFÌ/’ÉwÐÜÅü‚¹Þ3äÆZ¿®..nfï¥êœ$¾ÚÁÛ0zÌVcˆÄ­€—ª‚t² šSØR”¤ÉGN}àò¸unPíØ6ã³€¯±Ô{Æü'Cm„ý6jºŒ¼Ê¡©µ¾ñL9&"ßJ-­GBFÝŠüÞâ‘,É1DΑm[åtlÇ݇õd[ZvÔ‹MÇöÿú;’éÃHæoj?J5g78)ä°Ó½\qZ>ûi¹ÿM$¶~ƒ“Z 8ê\Šm¢JÈAâ@1šá±Cc!X#‰îKX›[çê÷ ý5²NôÎû˜!CÚ F„Rwð–y@ŒqðÌõ çÛÙ>c´«pÜÀih8fŒ ‘1'b_jMá„ÔÔ‚ôºƒFq´³¯JÄ6TÙ>ľ[ë|NŽEjœ…l«‚ õXsƒ 4V6·} ? î*&·QÜ,ž§ ˆïä4„n•÷ᴭѰûƒ$¸šYH+ÜZsŒ,S§K…[ñ,]ºõ{®~Ù }›o¹`»^ŠdÜjPh¥wÈûI§ä ã|Û”kÿš[;uœ?^÷ì uOeÿúüòÙ-†ž–žìCŸì®·)´·ž4¦jåMò¨¥Wgõ|Rì:†4è( …¢„µrý‰v(ä…0ô‡2»„’­ÒPç™mh#_[o:ò1yð*àç¾òã½È²µpß"È΢ݭeY÷v6!)!<¶r`1ÕšømEÛïK©¹ƒ ±#I$k‚íO'5Ùÿƒe^û±òe¯£½â"ß9à¿TØZÌoÔ_ga'䇌·®4êžl*‘‡…pÎL›aaçP0|¡›”l+Yï!Ÿœ "¸Ÿ«qL«²Ô‡?ö“âŸÆ×þèåדóÌÊN94ßñvÁ:g{?¡u\°ÙDQí^ÑÀ 4´sZ7zŒ.ŸféS*gÊ Êɇk­A×߇g±Î& ·Òϱçû=BǨ-ÀBX›0¬G¦k_c!_OÍ-ji¹5ÜÆ8.5Âê­¢ †œ Å”ƒG2VAx.mBq+­¡¡¶9G³•ÔCZ„žÕ2ô2Ùꀂ»Ö†Dª;¼‚ÈZÒ5ÛïР\£¥‚0šð"eVi°uÇѸ>Áþa¼ôkVð )_~ÒAyr¥Þqšµ÷Ô‰ <.ôO´Öôƒ÷ªEøiý]¶fÙ+ø1¤ú®l=ë‚/ÓLË;EÿYl´û[©èBO×¥Pj0g¹O7à¥) ¢XÞ¤äÚtÚ ìpÿÏÜ•-·Ñ3×'¢ƒ­îÈmn¾ªÜº°¦¯%/yýœRþ%rjHI¿«Ä±iÃéý½ì+λ$ýÛÚ y¼À]ð v Ý¡ˆË» ÚÏ©fM!UÊó< ³ìèuZAŠž»Ò2xMîã¾ø^©ä2ê <¿[¿¢íÑ»î7=gŸ>Ĩõ»zê!ÚØ9îŸj݉w}¶:UÌFcJÃêÈ¢L0/ÎÔdŽ€¨…aGÊ];A”8ì¾}‹ Ò¿•á™%üµvçœî°Ç!›àsµÚ/·‹ºqdÙ“î¢;VºÐÚëÄÛ…pí\ÁÏ‘ B]Ã=†²ïLû‚îokuf©ÿ£sγCH™©jþkÖVJ~p1pc¶,Ûle ?‡'Ÿu iFxSY…ès×–q½–´¿\E¥~ÿúõû7ó¦–çù­w™ŸÅ%: ÖwXèlœˆ4CY´§F¤Òª³s¸˜½[?™Ó3ÙRs÷ÂÑèS ÍÀì;øpI:¤Æ=9æ9ñ†hƒ×U -°aØ4ÕY—¤,¬i_°Ûõ,u– f£ODˆ°@YqëÑíŠ%\täÀ€›ÜÖc C÷Tˆ7³K̸º¤n¦hu@dJºSI©vc›¢Š1Tm¾1ð‘i‹7Ô=rÈÐÊ΄X]3“ÅsémÊAß±wĈ&ÊU(#šâZŽEF•^÷®ÿùýÏê(ÄÿË_¾ü-Výö]¯OØè?Äÿü÷=X¡'Ì”a—çÒ\2ôx¯ÿxö=O>zP¦âNŽ¿¸ÅÓÕuÎc ¨bQ8ø{ÖQ¾T!X!c\À{bçÊó‚!ZgðЩŠpZlï\à&”“öhO­!0 ÁÖ…†8/!£ÛCFw'2ºw˜ôÈbŸ<@UÏ O­SÜÉ­“ÑmÌ•ÕtŽPtØÃÐ=TíçÞ\%r°`º¢›…¾¤«ÐÃeÖ²nÈzã¢q6Õ¤}šK‡¡Ås :¨‹)9¿¾­ùW\ÔøÁ|°ñY;ŠUåxòûš›°¨§ûŽ¿ ©ŵ\¼üð¡ P†vGéQcÒJyT@5mŸ˜ÅiÏŸù„¸¾çÔà»s˜¹b„ÅA²ölZþ”4µÊÑÒ®ÇU”ŠË¢ö°øÍý”‡µqÊè0÷Š\²-ÎR•S•UJmDHÜ¡Að(ìh¹š]ƒ¥¬ÃꢗáL´ÇÔµ®ùñYrûúé›öEÊ?~ü|7Á}ö-n㥥š‹ ÃãFÌÝN]5(Wøm„Tα@¾x1@Àfxk:~~t°CÁOÆà‡õ=7A’lMëÐÍ« ¿Ø¡9W쫦ýs„¨Ô\Bñž¾4Ðé^ò?K¥}Ú°´ÔÛ|}Ÿ (»‘6§ÎI± ±U€j%sí51€Á ï›Ô¨}¯?O4x7%zònS¡ù…A ÀȈFÎÍ-l^êÚÆ܃fë’žq âŠÕi°Y'úÂú2 ^š¾T})ú’õEô…õ¥Ó$9ãïÞ–¦oµYî»¶z•D&èèfŸ5Éf¯=¢_¯[ŽÁAñB p/}›!é>m›_èß•7RñECIÞ§ÔM0$¶˜¨ SŸÝ¾÷GŠýoþ“AµwSËÓýoSÉËE ”á/Bè¬'FÃêf<8ÂbG#à÷>s(hIë.7º…õ¨’ŠvGÕIÔ0¦m IÉö±Ô$ø^söÄû´år‘µâh†¦a » Ý¹Zc†ôàƒ]$[ÜH5>õkÎ]¶Q€+µE*ðù 4ô¾z·¯ÎþïýüqpÌüøô~ý¯ïp£PÏ.tpä-çaYg:b¥ Yè:§ˆ\±”f‡umô1D­“ÒÀ:#–ƒæ8 ½æG0/„Ý/êË'Þ)س éœ-á\3÷Önmh j’sm û0K:³QýÒØR¨BCÄÃXgkƒ*„.±[L,y_ó­Çúò©¼›@ãÞ· òó- K\MrQO¬ ¨å‰œíˆXfÊ´YÇÆ®2ÖÉð|¹ šI‘ö'g‰iø¨Ó,ÒB{/ ~ò¨û$÷ù‡7b í'£A’¤ êÚ“ö|›+\·‘f”lDä ¸…˜Ï!²ÑÙ¹•سk)K¶fg›‡Ç'ùÙþ|é¿ ‡ô®öøì{Ü&ÊË‹œ~hžÙn:pºÖ©[³mÄÓ¼qñëÛ¡F;–$‘­/Ý6ÍÓ–—ÀÈ1Ø3’'÷ÊR½ðÔû$|y±C ÝjMŸÑ!UZÀìõ( ±÷pN $\vê„P­9c‚8„úÚ^½m#—üû¦žR”}‰õÞ;DwÙšÙB \›®’Î=õ „dŒ ãœv'¶ÕE¹Üµ$N¯[«­ µŠÓ~^tXÑ®VM¬±sͳ´bgc{(ä<Ô~s p½°&éM¹6>Æì¸RX°\÷Ò‡»l Íl ½9µízN°ƒOM-v|× ø+•jª±F`eBôNCÿ}U Þe¥È€ZOÝŒ³pD€ådBîv j±RäÓ¯ÃQ»ÊâèÃSE þ¨=Ë5?Ö= ¹ÅÞî·=œ>ðqºÑA?ðQïq]ÓÙ"ÓÇaöBÌPÌ:ÿ2# ·©‘Ã?¸|t³û–¼ÛèŽLð:V VջΡ@O\ÕýÅ0ú°½z;»/2=gÃy1Üݹ0%2m1áš|¦YôÔ C¥'È#é~«îÚä*³…ø÷E˜ ^=è=xš õ ‡®3­½hO­IMžóÎß3Ì”ÀÝ IM[œ¸2·é® ádÝžQ nJÓѨÉ4¯!A¯ŠC”EÖµ,ä}ÝYâƒG©ß–R*_Ó.émo¶KO9²AB€Ú/¼v—J¦8JŽÝAD 3mᮽ–lÀ+œuSu"ÞÀûY­^ñGû:Ù4ýÝÿá”AóŒMŽ:Ed–¡q:_O©ÕM¥ŧÖ:•ˆà±ëÀÜ£T'cç°´s–¾™[eè•6î’Ÿ%ðàÐH–`JQ;^Ú’™KšfI½2?IÛC­Gë­Cs3ƒ«ÖóÉ´RM3:L÷J0¡a¿ÏzÊÏ7¶—«\½Þ^^2V3Ý¢Ñ5À 8Þ–lïŸåQ?¯hzÿü¼Ýòþk#?¹ú›dNfWxØÀÎCÍúè¹¥s)I6 ò#{(×€W­Ù#ÙéI_€ÐF†EŠd‰ngbûs¼­\áÀµ¦òœ)hM½­Á'²‡”2k“µèû˜ÖÏŽ¡ä-T´V?~hx¶dƒƒfî¦[‡¦çÐjÁâ?6ÈHQm‘r†$CûD(q)Ö2Hkg\e»¾º²s[uNÖ/ŒÕëHûÉ^]+ï×™®e‰¯­ü¸AûjDÛ;;˜œˆ¶º#«¤–Ðf+2£×íôõÝ{-†5Í{0e‰k+…c‚²±ÎrPˆ…Í¿[$~…˜2¿Ÿ’'©çìsÐòì”´² qÊ€Pø£½ý)‰¨n4Çi¤#¿»NS*g8|í¦ì™"›$Ú fß>êßgù÷—_ïhã§ûßÍÊ?_m’zÛ´#³\Šk#§²óÚ·?dÓ5ÛðĪE;ï\LÝFšèDûRͦ Ÿ³µ¢Ùº£…Q½+]º[Ê!ºŸöø·Yú³¥Ž¶>ê46`^‰Œ`B´vÊ1°ö±Ä¶HI¯K½÷¥;m“ c‘«%jG7ZWˆÀ¶¸svê¼Ô?‡¯#ôŠ ®—ù+ šÈÃ'jƒâœ Hj)AL#©Ô ßI¬ç¤ÎöޏßòLÒ¼¶%Ù(uát–*ØÁ‡qÒso#¹âY'»f`¹…c¶[D~™”¿›Ž'>‹į‰Ú^’Ô’Ë$C»8!Lß $k[þuæS«jN¿)fdf °›ÿêöFÑn_æî¼¼¿St³)õ/ôÊ3‚O:ÂÙN•*³VYh~zt<͘Ç`tÑ-‹ì7ö¬a|r·Ò²wÕÃ9Ç Ý‚ù§R»Tަº…’ü{F8ë² 5£œÑKÇèZ÷©]áJÁ÷"T*·É Ûφ–Ë2pN):|F³9'µ€U‰:rÆë&ùÿ^—³Ö_GøOÉÔO¾Àšä_—T=·Ø$öòXSg ÃVXb{¡†ÔT=Ia®>Wˆn ±zx_»ášóˆ~ˆ ]JÏ!ÃÆ§’»º[ºà‘oøe"^Hûn >ZzHÛHà![ â¢K–£h—HèÉn4¹B¶>è5KÆiË®(·HÚW¦BèµÒ¹ïì;}z¨Ïí÷×…Á¯ÒL÷¾O@ó|©I¼‹E=*Ðj„Õ­6§ŠÑ¹^U·…§°ÓZÃ.„3N§Ê¯ï?§¡£°Ý­jÙ7¡0–`¹j×S¡±/%ïôh?òRÞìë-ÜûN ëéJGö€©VkíÑ P©T+zŠ«#!)½D_ÞH³”x£˜B±Ü:n£~p»Çœ ‡è­Î¨o¦Àþµ–ˆ½`=yô[ÀÕ³e&ë3¬Õ䓵¸yDS¨ç Ó­<:Úeh6NX`iß1²­B“¨ºšÅÊ™+>%OènÍMþ£j`ù.6hº÷}lÐó¥&!Šãup·V…b'x —º ¥äšì ”º ©Œ“u(€µL…SÐ'±ÇXÙÔІ“QÓÞB[:ïìpz´‡÷Ûëy¸×6ÏÃYÔ_¤ÅáCVÏ:\j­‘鮎b\b¼3iO[Ü–HV§Ù¬{ð¦œwˆ’-ð®6ü2§³ [‡©¸‰h“`ûÊèá.›;çq>ÐQƒlM½ù2<,@<<,ëØÄAÕÆ“ùYÞ×INd£O  ÂÔ«†ÀeÈ4`|860s$5ë)Ißy¶~!Üïq×üExì\Ä)'-E}«¨£ô´™ɨ?rh‰¬Û2˜jŒC+¯C¯¦³å¦ÛqÙg§ÒÝpÃ.õš»°]ò4<‰y¨&Üé»$–{3¶(Á2—*§¿± gɆ¸QŽ(zJ R[ßáRC«:ÑT´º›Ô[8éÙàïûæ%ÿ}°ï{2ûøîfÏ?ΜV™æ´˜=yaËsÑÌ}flæ!„:‡zâV^´êF'6­ïÛ»Œ˜Rð‹£8™¦UÖ–—{IlŠO@¼o:Xüùý÷C}¿Àÿxû;qêl±‰OÎéFeh2`J ”lFlÞ,5íÕµ²ÚÀ=Xá–lÐÚh‡6Œð–åâ­üü·FÃo±$Ä·Ç·ªnb›1´JÒôã¥/åxÉÇ‹/|úÍ~üÍã¥/åxÉÇ‹/£?p¼´ã¥žÞ¬Ç7«iJìgb=‚šom{‘M> B öq¹h_—ÞjÖ@7 ÄÌëÆÏùyKLq¾Òñ¼Htç5 )^F›.ýxiÇK9^òñ"ÿÏÜ•íF’ëØ/rA»Ä˜·yoH¤8·€ÞÐ3·gùú9ŒpuÛΈŒÜœ¾(TÉÈŠÅIR‡‡E®C[åõ†uàuëÐ×^?뇣[ßWkª±•#T£+çªùªRj/\b`ËGLÁÎÀù#tl<½C xWh𨞽ÃÔåáÛJ x )É `Eë33kÏ®„B×Ý´ ”aUË}µ¨°œV…‚­|âë‡Ñª'Âl?^‡ûûbŒi aw­É´å‰æ¡þ.jE¯×Aiæë0Ù bË:ð:Œuèë@ËЇ=j¬wõu uà¶~8e¹yyóV¬eÇóT=P”R‡ À3ôTò„ÐbŽ*©Ú*;|kÙëý ­½hºÕ^‘ .ߊNSÔ¬½‡B1ÓJnÀ!<Öÿ«š~Kwpú,Àyóuï oÞ=çuÞ†L¹:ËJ†‘M³Uðdjî[U+ ³åÀÛÊ„C裈U^.#÷Yµ•?ÄP-å<xø(c~6Ï?0å+x݉%÷ |t3‚³N5Ž*iFòÙŽT4• K.)—tÔŽ©…š |w¬ÙZy´:]îÄÀ“Œ^ÉáçÒás†|›Ð~¬ŠÂL„EÉ:µ6Ï,-zM޼%µìJ:¨YTK¶3ç‘zæ,7ºsD·bçbcÞ•×öÖŽ¿†3XóuìàÄ ÓÈy€æ294óo‰\ÕõÜâÌBªi€ ƒ*ÂÅhEÖn‘ÿ=' #³ÀÀ£,æÎ²1¤VçlúfÑýØÓŠ£D*ÕªKV½§–šK—@jtË­ÕÓAóòdm B€÷ywœ£X7$—-…Ú3ˆŒk{ëv—™õŸý×ï?ÿÜ¿Œn¼¾ÿAŒããÓÖíô ö˜‚"J9Cl鬸ý˜ðŽÁEóîâ>à!ÁAÍrj.Ò0•FŒÍš‰J‡õâ¤D=ïU?yùðõï!!'Z =hì¯ “š‰ T¿«U¾.ÔÓ±(½+ È @±P‚­T·qk|¯É×d™ ÙÃêo¬)¸mõOæ%Øüå^vÓäIA§ŠFìšc!df°7r²d±1ï&åÇâ1U q²KeÁ” I Úu€ÛZ? /‡‚HÕº˜.³yóÕïa5ï³R÷ÊDb ­Ö†v+‘Æœ œíH„Éú½$;O˲-\¬$˜†<„V¼. è˜]~…ù¶‚l§þ%è~`åWaщ[ ƒB¶6À¾fGAµ@ÂãØ_•$ç’©‚4ø%`š•«5·Y:ì¼Æ‘}èuÌ¢ACh‘?ÁÎwy¢ŸÚºÕ#VÈRå]s3ÛÖ†§«5sÿægÄÁÓAæ÷„jfjïé}8jÀ(áÜ‹•ŸÉš\_vü´Or`ð®RZOµ@Ÿí~JCè•\ï{%FøçþKÿsǸo”.Ÿ¸úG+x¿Õ9|­õ}/víOöø»ôb´s÷rã ˆKôKDF-cZÅáZ›Lö:(²Ã {?!á²Åç-é£4GL`ó³ÖY§o6_mi³2•¦x @lŽq%Ÿ·oñ-¡ü›¯üíUd7Hë[\÷Û°"‹Y½¶jÂÓ¶’»ëÀkËt,.ðüƒ¤ª2œð„ÔCåvzdÕW¬ÁGê‘­õì‡xÞìûðô±öj±Ô¾¹^>X+(_â)ÕõêÁK„¹B¥æ‚d*_"þ×ì¥39m) `t°€mײTüí.õ‘{ ÖÄ…4 e„Cký ®·Æz¬^m5{;ÿg{ ê@8À‚ s‡m—êÌr‘­BZç#–®áÉa†$Éê*X½-Gä>Ö †= „xÛ¦å{[=!5×W_¹o±—¹È£é“-r 0#ßbKàжS‘mƒÛ_¢;ÞzÐræTgŒ‘¥‘¦Õ"µ£ÝA¾½€ßplãÊÓ­‡F{*´·v{µÄ^M·Z}ø"uéîbËü¡5ç3Ü»`®_ 2XßAÁÊ5¤h… ÆpøƒÙb'RÔ1½NéžrÛ;‘é¾Èx5¸ØÕɸÇÛýu÷ª ë-+šµ$ 5άà°D.N…­“Ä „â¨Z+("bÉw ø`Ö Ò=¸!¶´¦³`t*ù¶•ØÙßëå.Åí É_ÝüAS6⬒JM éÕÊJ°póšØÊå“Si=OÖÛ6~NÿȾ~6Ä=JçÃÊpÊ}Î&TjL5ÍQ•‡’õˆ.ÚÙøí‹`ç$ŒP'INn’"|ALE‘f+e9êIa/ŒùþËÏßGØ­ëš¾¹·%. ”rFm_¿\»ƒVë+_–‹_ÒRØϽªNn}Q*î!Äc­AfŠ•szÈ×¾¥°Ë—xœ&R;¼Q`ŸPPàB=¬u]°Å·ø{/ö5],uª¡_€R§2g ƒ OË"q ÊvŒ‰$ä$!Œ}™¶m‡c˜ˆ«R±N< 1ÏdòBÓSR+Q&í6Rù^æõ\,öWŒÚ‘üeu*|¨[;MÉW¥™y:X¼s=.¢;#üzÀ$]­äb†êƒhR®Ý)u[éánAðm´èõ‹Èüsî7ÜøD´Y^|æ||À ê­þ© ¸*PqÔ‚UPRC“Írºé Rh).yÙ Dè_ü„˜Ôg"^ê(*|vˆ|Ïx¯ƒçA϶. ) ´6³vµd*K³ ÓÞÅyuÙf+ÝAðsÜ–öµ¥€gãж®B£MÈ\¬Ýyi2'lØzÅÔÖ¨D…BÊŽ&ÎG 4‰cŸÜ0é³S—¬É'E(Åi£¦je¦ïѾäAî_H¯¯¾’NaNœõÂÈ¡ånûÿ,ÑyØ®/Ö!«n夿‘f“X½Ì 4çd9 óÂoëD¿­‰çÁÒž.¦ 5ÄPf˜:(@ g[s›ÂâðI,eS µœÏãvZw¡‡ß¯‚P¹µ; H ó $@ý¡ó¶ž N{ʸ ž6ô1ܘoQöaÚ¡¹Ù«#í¾²Ž8t{Z$´¥8Ì cM¶øI~PM­»£N@Tж.w>~þ­ËÔë«ï¨ÓG¼HŠfL,ÁYA)S.‘ÚQ¡¤­¶ÒZÚ09[œ·öZ=ª/¶{ƒ«€×jÕY¡þP*ß¶¶±­‰çÔž.¨ 5ŒÖÏœ]oî¡‹"j0Æié|­úM5yl®E0™œ59iæº[+š%ùiÅ,ºU7º±ʶž P{ʸ  6ôQœ•a´•§Á%‚HÎbi¨(4©oê#¶ó\ÖKÙé<á# t]©{çk@h¢Æ&ÆüeY€' NýkNˆgo‰ªj,pt…‡-„á¹{ Núý׿{¡Ÿ$N¥oþòBû–Îg”ü¸~¹vÏ–7¾,×¾ØU?Ùc/‚±w¾€oÚi×bÍÆ4E+ ‚š)Ï [;•üyøbÄ)uÃRwÄ `ÐõZl(.† ý¾S›ë`Þ¼“÷Ǥä‹ÛPk[Ú€Õ‰°cVê”›uyíÖÿv¸"M!“,@”=a‡ó¹gcŠ6ê‡ÕC²’k<e³<Ú²Ô¤ÅÛΧ½öFÎÔƒåýŠMÛ"¿ ’N¤®©Í$AS§œà ‚d ¹%ë[7¥ÞŽÊÅTËwsp As²âËÅÙa“P4Š•,¢Œ(å¶tµõ;œ[ZúL`Y£áÛáåãý/Ãú?U?§ «,}L«õ =µQ6ö\pçw¶0/«‡×›ço#gôÁ¬O³¿-·dCOƒšmù_ 8¿§óž‚Ímd)ùÖP¦E*‘<;ô9 O½-XØÿ“Ág[ ×@Љž¥š9äÇ,siõ©ø Z£9íLƒpÞ×ê%ÍÙg]­ÎPç˜F·:Ð; `w¿ÿóßÞ¯–ö0ô×[o¡­»_¸g±ÍCئZ…XxM;ÊmµÖ+Üc·* [1sˆ;<“¢XþVÐHÖ±)xšÖÔi* ¤²T•¹Î‰üŸBûÒ¿‚6…o(3 ‚Š^8$€Ååñ+°iì ?†ƒ·"–~o›|× VíÚjMøB9`‚UõäTËm[š'Âí«à2ÚÔÂRå ”0(y«ð]-ÍsÀÀc±ó'nW µ4àðÃ:¥¨¸kª©[«PDhâ]ž‚ÕK–o,±ù÷wy>úðî;áèÄ!ˆÉ? PȺ#‡sw˜9]¦æãf¨ÚÜù˜ G[œjH©O§ÖÃ#S‡S¶'Ç‘´²¿1—qG#O…¦›9Ò§¨ã¨Y!/Ã5MÀ M«±(˜‚_Ö,±Þ{'L}_:Rʵu¢+ŒÐ£Z]£8\ìôÛHÃh=Îéåàt®õû@Ô¼T5 ä«ZÎÑÈXæËH\†õ-Ê·…£_fÿõ¿ÿñýËXÔ_ï¿À¶žóÊD$-¬V{= uh®·åa-éòfMxŸrpÞ± JzvÕœõ¬c_ôáÆ0'¯¾ÌÛöJÏhæ© ¶¯—«€lS-®V-Öâ¦ä–ChÖ£œÔévÔrL§$-Œõ º¨˜@½çf…_LÏb5t>a¾Ìö•s- mê'³‡cÚ$ü›žBRsó®ºlë§;wÌ-!þ_«ãœÔº‚Ù('cÔ,x«x¦{™Ø/¿ýúÛWa^}/Œ½ÄË 8w­©ùa]w ÑÁ©Ô¬’…|Ûê1åjŸOOVpàéŠvÔ©Wà® 5¨["”@F1j®;EªnRÅsÁkK×áÖ=(›Ù§X™2¬0[˜yfP¥m=4*²"â…ìøùÙ%:̃ÒFv=úaÛqö$7¶sÜÖÃW Õ–6®ª iÖ]6µ\á%æHÀç#Å25+§m…Dž 7ç«UùžVé,L˜”˜h°ÆT]ìÝm+ç¿—ÿø¾_Æà3°i}åM˜trëËðÝz¸M9«¶‚jˆx6³eŽ˜¾Ãa½Á±T6.ÞÒíoöZ•9vVoÔ1þËJoX…Pû§ìÌ¡r°ñ*ê¬V.v@ßNÓFŽ ® m6"7~¹1“ö½Îžb;»¼N AT’S()ŒT ¾4L {ðQ—£jŸ¡°tÙ ê·iD˜NQiÁ¯hé· ¡S‰Ž[W tnËp{¯°§¡ÝŽÚ.C¹SÍÍÎÎIP„Îâ½FÛ7 @“[ü$ÍÕƒ©V1זĆ.ˆoÊô¼Fàö=ZóËîÑܬ¤½}ñ=Py²80ƒ<+&[¦´EKÛ­Š‰Ø#&çæ¦J ç7·L…š¢2Ù[AŸž @8€(ÃVÊlÁR妄ç¡ÞÍ+gÕ@<¨¨ã#;Xy±ôj@ê)/•øcÉðŽi©Xù6ú¼¥gÃØ=‹e{ª€c>$¼ÏQe0»Y¤ƒçJÚ™ ‘LÅVW´#`éckŠž8—d¬ÍÛ)ywQ‚ÉIÖ•Ï'Õd;Ò1“ídÍÀÛð{YWÿöÛÿY)®ÿÇ?•ùÇøþ‡ìâ™ÃŸëÊú,w„W]Æ´j§¿ÃË{úñÚ»ýâª&gž¸<è„ËyÍð ŠHjå:z°s}!ûÉ!Àuá§š¬OS³Xÿuîæ’ìŸÞ—Æ9Vž£_êÃ#ÒºUS˜j>j½s³úX\)·ÿgîJ”ÜÈqåi‚O|àñÖ1¾bŽÙ¿ µÇV·ªTRµZmÛѶ*–„$H ¤‘× ÅÈÒª*¤t)÷²oƒä:Ä/Ùò-6ʼ à+8t_Žp4yÊ©§êŽ¥(z0aä¤:ëxzG|)óF¹hµà¹;—7˜HmMÝ+ødJwƒ5H ‰ö­'­ã»ÀÅoñwB¾ åëzhª)ê\Á±/VIfnÖ­vG 1~Ý(©Í饶D˜d ‰°QjˆëÜÊà"3 á•Zö‰òc\Î@ÉØÿÑ{óöóq¿³w)H[F·JêCAèÕâ³ÂÂ+‘úH}ÕËÆfÔ„@ÙµgçéÃLÐð!ùAì:Ñ&KOc­õí þõ‡|ùó“üÌÖ»à<’FO?аéâðO˜&dJÈJà/¾hòÒÅgÕUa½i•…Ÿ¥˜ËœJ °.ufä^¹£ðweFÌ¡]ÔLqù-!}Gj½Ð} ûxÒF’C˜1…ng¸ì¬X›ðY— »Üªã½Òö“¸Ïw§ÛkQÝͺ€õìÛä+óÈœf€>`E©Zº÷}XÞØìV RcÛéFJQd–>T*Å b5:k¬Ã÷°¯šªõPl}±0Eù˜†î*.Lkž¶>ñçÏ_¿ü>þ·zÒÕÿ[ðö öpv{?ÿ»º´JÌ?îz8¾ÿÃÓ]vÁ‡p%û¾ãxñ¡k´'ŽI;ôüh¡pg¦˜“-ŠÃGTêp¼>l¶€ç“ïÖTÑ5ÎÖb.[cÌlð±å¯u{VkÆk?ªý˜b}íG?¶„¶6u¦n¬Û!-ÍjÞ(ç\«Zƒ¬`U È©œu#†ìáQ9V§ÍÍ}«‰gP¿ÐJ]VŠ#£+š+ŽuY¨Vs#ëáêk‚8M¾t+^ äìµ"ê9ÅLÙ'T~©´wb>Üù.|÷cœ'0Ê ¥ Ѐ̌½Dž¹·ÑJ³­¸2··UÚè’-„°X<'!®b¤kC:2GšbÏa å’^›iž‚ñPn[‡â&F» i£>0Ø J¥$*#Ïž1˜©ÌÙ¢ƒNÛâ¡nß¡›E$Þ½Öñ¸•³^@rlÑ•}³ÝãHûZÓXbšHöèßé2$½:ɺ˜©¡(ÇG€,W?ÉŠÚ"/ Ï"Žã¾½M?¿Êgù¸^’óm©Ên}®ú9Ðs4¨10:—©ÉT2ûhµQÕ§Ûqä¥`²îÖ——­YÒ`Ÿf+ÕÙ/A¦?’|PPR9TøÌ¾:SË€<”®.Àq_½D#«·mÑÐ'ðŽ6Uj O1´1¡6tÌuƒ±¦%Èå µ™Sð@9g©é—µ @ÂPyßnŠe4Þ².`r+g9Iáz*Ü”‡õ6Ìâa0[¸ dI´ ûÍîÌ4D뱞E*ÍEÛ‹+’moçšeøQ²h{,H?}:Ž0ÞKbž~„»°Øù€ß>AA”š,/ÂïÌÈ[Ëv§ÅÃ¥…`ÓFs¦™Ø{Gˆ”Š¯Ç¹9W xejI‘ ¿6¼,õPV»¦›Øm ¥Ù1ÓÉ÷㉠Ӷ!“tHLa/¡Ä´Q/ên*pJ}u4³;6HÎu°(|)‡Új} Þ쮀êVÒ[C«Ú)„$UÙëôž§ƒ‘ŠÒÕÁ- 6B2 Ä4{˜MN 2Iòh.¸ñÇê©XóÓ£»¾ ­ÿŽ/¿–µs;oM{ßï~Æ{6Ö0‚`D¶)×›äpÐóQ«â¥ËµÃ²‹©tð—Ý80Yi{{–(J‚ç¤yÜo0ÂðR¬æ%½6(½æ¡4w–›î^¨_^ã,µ«O’[AjG°¸‘ œb ­8+0ðZÍù•wàµËØÜJi ðŒÎJÊ30¦õ,3+ÙcÎ;ñËNã./Îtò±z9ž­©i6D4õÒ²vÛo+½°Þõ¤Ø¶v×ÁŠ ×ï)ëVÓþôìÖžÏÒV÷ðÐotz!âå¼ýïïw°·>fƒ^Er/.}“õÖoF/¶ór/Ü^{ðprå”ÊÌÖe×êÛ– XF¶ ‡$µ.íxq«o0á6àðªbûì€Ê^m‰ jßBýK»?ˆcέ~5Í<3ºÍ69»‰ÙLJ§ØŸZ³+Ò¤e£W.H[//¥ØJcî=±u ï1rœZç—º5“sŸø{iô‡͹éoášgÖo]$u¥Ö˜‹k‚t¢vŸeìxeʼ{£,w”Ø2žˆÖ’”sÀKµ~LQà29ƒ†^aý_æje˜7#»é~ºy~õA¢•m©fŠ”\ñð… ìG„TpÈK#lun£Y¢‹!ÏFp«¢j‰.ˆí-öø/Ò&D~ßsã?ˆq–L5çÜÍò•ŠCéÝ× œy4vAƒDÉZçœdµx¨¦W¤6Ï,ÿPÚY²ÿ-Äó  À»/Èhsu§²ËVŽ½Ê±ÈIÞÙYæé›|ùúÏÉ÷ÜÏ;Ï.>8Ï «´ÈNΆµ<µx1õåì’·ªs­e4¤IÑÎæ&/nF˜ÜÇ9£BWC˜j¢²oÜ™áD: f¿šsž[}†rì(f›ûÄ´oƒDVÎ!ÉLuq¶»7ú()X=â]¹Ï«Ð±™\ä¯v;±yßúØ·6wfô‡òÍ‚éo¡›çÖoö@SèÔZòÃ¥\}Î6'KÊc™küÆÊ¨§*)Z•ã>([“É*f“l÷šTàRÃÜW«èéküc‹kæšlm/×<»ø04ð&h­¾Ì{I¶öRH}+CÒK$ç¹½•c‘ìUCƒHHÕÊ>·Ë§LPÅ×Ìú»?ˆj¬~5Õ<7z*†îqrŸÉ6V[Ál+êìpæ%£ûÜåe2µF&.ŒìSl'K)ƒÕ”îÅωÈÛÇ«øýÄ襚ÓßB5Ï­ßµªu†i\N žÔ!õ³+Õ¨FÒ’õAFa£õŽ=_ƒ+un½@Yͦp"d”V²&­1eJmßz2\(é,\f9–îî¡wܪÍÞx¸´ZåÓGýçó§µèô[þ-œbæýå~b'ß¼^¡ÓîzxzûÁÞøÁ†¾¶6çË‹•së>eðÒe‡Õz,ãX¾l":,5 È¡ä©\2¤ØqÓA”P"EðT®#:(2O0îÞj§–yxóî†ÿ^sÙîוâ<3;øº‚È“²Šu÷T>M}xé3;;L³tN#ÔË+Â2|íÓ§Fu ã쵤d”\nJ©’m ¬»  Ÿš}áŒåÝ-ÿ³þæ²ñ¯®¼yf¢îk Áè®qZ§w’gšZ§} Mb&WF`€©]Ëк€£+~'rÈ¶šŸƒ”_5íôã_ïˆÂñþ¯ÅâlÃÁ* ˆ•Àimf[`» qI ZêMaC$_)vÍAƒÚ6N¤n kå–¼X#P½¶ÝÎ_&ÇDJGÇ;¿Š”ÎF8Èl¬½6.£Àü.ß%“ëìÈõ—€Hq7ކjì™rÿxÛìsñÉGmVÞT¥Û!ð* .—»yÛˆüoŒWÄå³!HŠæ˜3\¢Mp¹sc†NEÓè‰ta§%•¸±e?çìjT" ¼`F«…’º¹l²ç$û«þŸcñP§XAâ§8ÌO(¢œ1W[šÖ)!¿«Ì¶´Ùq¸¼"¼ŠB‹#ñjV„”KbkyØj¨±z–š\Ü_¼üˆwˆ+pÜ/ÎarÈ0«·’ó)§¥™:¤öRý²kÔè/'®¶ 8ò,Öq²Ø"‘‘%d²c˜† 5÷×Eð§/óÞqüäSÜó˜N³ø„ÁìT Ñ©Ù{K{%_6B Ûa;->ˆ³ó^Ȥ›/®GN!i·Êÿ“vw]:ùJïÙOî*;òÞ§‹m·‡pv2KlÅ3—›2Ó"4Ž7tÕà?:E깨³E.õ6 ·‹H,vwé{úJ_×NH¾yŒÿÚ^áŸpÐ\cî²äae'¡Ø¦¸–‚uà–²-ŸÃFukõ)µaý¿FhïØeǪkØóÑ$¯¤±¯+‡#ßÚ5–P¸Å%îB¼¼l+8Ä‹ôh í©€´´§82TM…$çv>ŸXá=bÈ7ÆŽ;¡‘6šÃ%È RÓ/9ÈHYñêðøK;b€‚lk×""õê§uä$ ¾ž™gô):gûœçÚ"¢ü=×ö¤¶ÿþIÎU«¡~Š`¸¼ôûòªã+¬f7?œ\p°·~°;\Åi‹—¬3$KÍÔ!9å2ÿ£í/¥Z»¿æËÏšZˆ³[¯2{èT˜FF€ñ /4wvejp¾Æ}õfN1xÎco 1Ú®à³e ñG±ÅØ ¤ã â¹í¹Cö+lvâ–ÇiócPÈãÄÓ„zD¶{SøÕ c´})×)gö¦|g³ 0\ÇeËHŒP•¬ÂVËê­‡\H5‹O.„¶ŒÄÆ~ÊÌ1ÅÚ‡ ¡âðŽ6j{ù™ C;Ki“÷=‰:~ß?CÖ¨ÿß61}0â¦ô›ÏVÍn>ÿŽ‘ìxÃuœõãÖÆù°ú!÷Üöýž÷m˜Ü)Z µK^ÿcu>wßúÒaŠBj§HN˜ERÍNCw8v:Kðµã¿«ë>FÇû¶U-~É  ù©Þ ôúZØ9dïR Ó‘RAªMd:b>žƒÌZ„Ý_^ d§¬9kWQ+Mï&O°¬yš†’æJÛ»…÷äëMùûÓ_¿¸§?ãC}ýòŸ`W(eêÄ »àD‘ìÔÁðK«Â¶{ØèˆÓBNÉ¢­¯-{@Å‘Cïʦѽ!øXç>½ûjÖóPÔ$DwýÚêzÌ­?unHx:YÕ<0±kŽG¥8y€’—0ϼñÔ>fw)ˆÛŸˆHïf§b'¸˜mƒÃ«þæ¿0Çßù›YþðsH\% ¹fŸKï™F #ÒèNV/‡÷°Q–>ÊÑ“´ì²ó¡pñ2l¹Ù“G— ¢¬÷ËëÀÿ&kM± ŽÇç{ ¿_ºÛÔÄY‚d襖*ãŸZ‘ÄÙiÈÉŒy°Ò/«Xš)[΃úèYrnZG®™“ZCuy•Ò¾º3?¿Ü·f~ýË2ûñó=Ž×/ßî{çÃ˜š ¢œ¤V%WN½V±=LIÆ"Ú¾n¬7!y+³ebêͺ¶:ýP–‘¾ZÿöcßWÒáÇ×ûg¬Usø5ŸïŽ}énß%Úˆ3´8F«àc'žÀiV˃ݲcot¥( Þ+‘<õ@ÉMxrFfØÙÊzT…h“áR¥cŸ@ýËïWÃ}càÞœáÙ]=’µ™£õ…ïyëýÔÒäæ»ŽÏûìz±ªJ£¦9í‘Ê„Ú#dü=»P»6¨?1w¬%—ž¸smœû­¶V­½Î>Ä#ó×V×’ñò?ƒŸ¿ößþó-­ðB‚•Ÿ÷A¸ØnÑÞž¾OœWýýŽÇË>ïu°Ëóu H—G:Žq¨ì¥æÉJiK*Öá:ŽTËÿóv…½‘Ü:òH‘’~Ž$JwïCð€Ë;à_ű7YÛ£i»gÌ,“PíQ€çjxs†÷Þ䙳€¾¿0}Gà^a-s¨kôh^é×$Çä#³"׸¼“ÿ&n8ß.?H²èu×)VèÓØüÌ` qÈ®Öy¶ôùÙã>Qñ­œã²*ÌÚñöCUE‚–+ÔîÂ`IêZ‘M¶ªç´¾Š±D Zz•¼ÖÜTgàþhÿùï§3øëmï$òß/ò Õª6ÈçÃ…Jñ…8ŸõÛ! ô¿ø°ækfªˆìÆŠphjìúÉvC…lðчä­ÍÀ‹¶“P÷“ùoßô§üô ð4*ÐhÍ2æH¶4õPfnDÞ†é ë’Y²ÒX¸DȼœÍmæÜ&Aûãn6ÎÕ*\ë“èýX¿JeŸ±šŠu^Õ9 ÐTÑŸ°±Ð]KÜ>„xÐÉDisU‚º¯HM5,É{íêÒîû–3 ·Í~ÃÝLª'¢ôŠÔ`$U[~HWy4©©ÎÙfà5ÆêÛ ÑÁšÕŒ-ÎÙMU¤‰ˆ ;{ðp³J¥8°…Ô§rÿ-¼~ƒá>CjªµÆ.J D K{߀¹²}ÎÞǨe¢å;1 9#.iͤ)v#b©YÖ¦WÛ#dÀUÔž‹Õ+pÉbÔ!åÒ 22Iøµ¯ Páû{`+ýPÓ‚‘l©¸‰ê~B7Fï[-iõÁ‘y»ò%àþµëeñƒrà/ºW üºÂ+RG&0P'O6YÆx±cM°áG™uþøvøMò¬ÐŒts÷tÄ)µé' V È°Èæ©ø:X ƒ/{"WÃÃ,£¥d± œ¸%øØf‚ öÔÚÐ&¾ ð>šÏ%ü@¿Ã`hjai΃¢¿Íͨ×R½‰ð\íh¤Ûa®Qý$W_ìå¬eÁð¬Æ~|D*ã1çÍÒßC¨þLODé©p†Ôï=ŽhõÚ‘å,W l⬰ÏC›÷ŒÈÉRÁþâ7'ɃÁ» Û)©pÂùÖG >gÉWµ,p_Ðê>c'ªJ:hˆŠ£›Ï0­Pj[„„N”òê$:[’ôµ#íûÝž/ü®÷*…®ñŠY™ÃÇ*O˜!pø¥§À‚™%ûôíC8[JÚ1Œmfï;:•9—jn©ké´t*,ǃ×]¯ëŒFxÿá—F3gÈP¼ÌÚÝ„!N ! ûd{¤²¬vHã(i† ÁÜ–,¤Y-iù¤p$ܱ ݱCð©ÏR{œ~™ð>Á´ö ¡ö¨°†aQÉV£BìSëÁL¶Ô¡ùÌ{W ?XSAâN6”!:sOÚ¼åz%T'DÁºÂtvàX`TeMškªÒy o² QºÍ>žI#¤XÇ &·\B©M"Ç6VmVý >Wì¡únûˆÖP{ ‹Ψt…Ãy´MÅæ= nˆ³Ûe+ì]õzVê啸¦ 7ÕLn%lú|8ä'Õë;§>bÖàè¹u¼ÌH57éܽË)ÞB/ÁÙ'ÖÛ˜û±­ A¡Î K)YõfpÙ§ˆSK;–pP’¾ÔDíËO³ØÊYykÓÕRÀhNbJ÷$Öß@ú,òßBô˼ö¡˜ :4³™‚€ ðÃ0æZÂØ”gp$¹½ÕAcÉ· %ÔY9*T­ gy‰Ïrèñà³-Ÿu‚ùßã3×aeeI¾óÜ ±'PšÓÌpuÚ°Îê/€õáû "Âb°Ô&ûh›Åîû ÿ××<Á÷ï>úÂx» W|¯)%ï.^ <€ÿã{ÈÛ%è|PdCVe HGji#ÃS˜â‡bá<½”­½Áç“Ø~‹Î¯RÙpRêÕƒ¶ÂB³Ç”cL*Yðe[Š™ÚF…©Ó«Ú’Dø¥¤²43Ñpi'¬œ[LuµoZ} Ó÷©þ=4É2{£¼Ùz«4Z2ñ'P¼&ñn›ðŒßfµ¾‚ ï.ùT‰Œ`× MS¤9C6îñäIýÐ|*Ñoú þú€Qk ƒÔgö£–©UCÞl…@ÐkíË…³Ü^ dñÓæí<»1MÖ°JíÕG0]Nxn!Ëf›û4ÿ¦'¢ô¶b RÄ|qº_(”6eßá[û L” ’%¥™X:ªð<á•@¨( ¯Äv®)Ô¯ïñçó×ö/w½Ÿèÿ|¿hJi¨RÑ>Cr8U?KÂ^øLcW໤·ö4(CŽl4N:|8ò XœØMþæ!<„êÿ<½¶ÿáÃ/K…ïf¨ëé5PønQ'X9¬8ZßWÿÓÁÈ„qÒ –foA'H "À}fÄÊû\Ì>©Ï#üN¿AiïaZŽÆ‹Í‰}8{W™Þ#ÆÂ‚éѹS¤Þä6éà TI}ȈÅ'X%õm ­±7z'H ©í§ ¯¡ôû1zéhÉFÆËEÉ—zC¯©­–:Øah 7”oŸ¨šokGP¼ÍBù×Ú%¯qÃíüð¯WS?¤Ï¦þT¿GkïÑš¼uqî¡(Û°ìEÕÜ]¡ÐÜ’«z Á`Ë|8xžPrp¬µúA-1ŸIÂLA–’þ¡óü[ÀžŠÔ+f{K¹ehÕØxÌuéu=9²˜UK[%t[[yMß ~è«ÑŒÇâPLY*Zë倷æeý ¸Œ$¹Süs·5)H[ÓkÍZÎÁ ðÕר1Vc\íô”ëAÓ¾P½5c S`bè°ø%áf@o¹Ô _Ø ›y€øû‹ž‘ï?üÂ-§gó¡b¹(˜‡¼(¢P‰Ðä¡-HâóÚnW 8_d¶Õ«"sö%å5_BªÔÔ9,Å{ÿ~šØÏI€=N¿Loa*ì;u«<È^3CWv©Ì¢”·0Õƒ²? ]¼J» yK°B©f›R-š‡ŸzE6ßðÛýà J¿£7GÅchškX„ýkóÓ6A¾;åT®ƒ´tZEpVlˆz›ÔGÌ”¼G>Š©ÏRÁ+~£º9iíG%Àªß!¶OIu\ZÏsvÒ¯ÕL£i’ó +•Z³ÞFk‡ÈÞFZ—·*Üa 94Bª±¡AP~°Îï`OEêM¶Ö5"^ì:jî}ù)ûÔäwØ K®b¶5T/îÓì«Ôû€P->F6#] Çh'È&¤í;0ûï?ž/þýǽôÿë o«©T¹pŒZñb§X`Ò›ŸûËÕ;)”ÍÆ +X¨ 0l^´xØ ‘ü¼¼ˆ]k¨µŸóÿo_ó õÿþQÐŽ±.® ß³¤.Ò®ÔRõjO„'ëúàÎzײռh'ùüÝd ;±ø¢Ø¨¿áóY´¿Cç— í=8Gä©?%Õ¤T$ýÍwä5 j›ÂSöñ!Û€~.¾iU`>#ÁÔ"±–Ò|ƒæ6­!—þÔÿÏØün|~9~˜$ØóDîD¼Ü@–˜÷ÅÑ«Ì-=WgÀyÒVm‹ –StÉ\–çJwûû šÏ%û@¿C`ï1*kTêe¹ád“.³K²÷] À»­@®ù ¤rN‚î×€]õŽ­ I.#”×RN~6…² ÿ3LODé­üDjO¥t(8ð¤tÀ)Ji±ËêÛ$*¨b4D¾hkÐÿV¡CU¼y'ÑšÑÕ;yÓ®]ùW:ÿï_ëé,ï7½“æÿ¹Ä¯©•†¯M2Õ—W:´ä’LÙ—ü70 ñà¨ß4.M-2ø‹{`ɪxµÔè-Öî©»9Ì÷óüßßóÑ¿ÿìKóù11”u'jÞõuÂâçqlϦÊÑ!óu…8Õ 5Ì×Cæ\¡0•©‰èðWüžMýßAú$ªßCô«\ö¡Œ7µçÀ6yÖÖ'8'úëÛ.Seê (n“}‚H-!ËU§}<Ž Ý†¼Q˜@i¡e]»Ê»Éþ @¿¡·ã|³åNøùý4xîKC+êk›Q¯ºíì“ôöAÌG Ÿß°| 4òDGŠ–>úL+&“²=­û]|>•ï÷(ý•}j‡äŠÉW”«zÿ¥$Zxø:gÏ}³eÊêmÙåõÃm.­SWŸ|ÛK‚Ýàê£ëŠ$pý?ÇøW°z&Nop…]âj¢ø¡,ñ—å › I•½Øû:\5t–3?‡]b€Ú-yä¶B¥AÖl,_ÙGîïÌy®«ýùŸñ_ÿz:í¿Ý÷Næw•·ÔJ¢¾öyHYŸ£gÚ)ÓVŒtuf¹ÐAy:L¼rÈÀ}Œ©sÁåêòy®ÙpשíÁk§×#vB|úøKm”8³Y¦UÁ?øù½•ã‚Y/•®Gª¦£ó¦¥¥á¥-LÍÅ—N‘®Åß?g2#ì^–vn ì5Ð>IÜ„ìWyî bÕ§’¬ä…M†§²ŠOò­"‘\Àµ M½fdŠYƒõa›Zˆ+h‰Ã“öù xÖ«Wãõ}Að¯ _ÊXBƳ/þâ®E×±ÛH~Ñ$›d7?‡d7½Y¬lì 6¿Õ²Æs¢Î•4Ò"ðÀDGO±«Šì‡O%¶úëÐ äC\dï¦+àÚ0ø‰u}—±{çrý ßå¹~t•ѵIµåSV¾4HZÛló€¿>H¤¦ºÊŒÖ«,E<5yÃdDß”¡®Ìð=n‚»ñûÇ?^/þøÇ£âàûþDk÷,çÚò\q„¤¹µ¬'êïÅÆÛs™z”Qï”b‹­.Æ~°EP 0`C¢ gZkð|Úéÿ÷Ÿy&xûÑo<Øz€ÂŸ ñù¢ÝsªgsŸ "‰¼Õ¨äNgú­) Û!´•râ ÜN½Áç«´À_¦·÷à¤fñf4}s ôã,¾Z0õf󻜮k±ä À ¢6$Å*™$ØsiFäSTøYE}Ÿ±yëúœ«F*©ùíT­¥+ù¿Š>#b{^’ÃAKjk6'æ’HápkÖìØ»¸M=÷ ëðS ùZÚßô{Ñ"û"ÖÆfy÷ Q$C½?2Ä×¶O=8´*æý{¨Rõ·ö¯ÃV%‹T‹Ò¤âaLßw£¿gøó¯¼ƒàß~òÛJ½ÎXÙ”šO} +¯±r‘PØ6‡T”$^?Aô¬Pã0cÊ>Å6Ɉ“¬Ú-X.Ž‚K8¤úÍÑû˜_e¯÷¸œ‘-aÿ§¡VBW£ª3®zjh4wy'¥õ”Z¦/oö`Ó@î\bŽœ —šzÊFLŸUÅ÷ –7®Î¹ÞDàéb½vO … BÄPéaÔh·8DwÊj¹Z†“½î…bÂ0F«VødŽîS-¸‰úÊ—2û›7PÖ{xBk?¹`BÐÄ‹Ð,mx’¾¥ûB^~š•†0“zÁºã5¬ öb?9l^Xª»hýH[•žW²Ú£D­ˆº‘¬«Ê\}w§OÜ×wðpÊryµÙ_<],@fÙÊŠå+€èx@þbüaÿûÇë©ýÏï}”ßß>åœÄ×{õ¶ºÉ›ö—½ÙP¸Éh?Ä'uDõ>´+"8ÀPø„ZÏtOØ 6 þªÆlLëy$ÿæ§ÞÃô?þ­WscãsŠ)ĺÔ纘Ï"HÞ]bßðø`¡ c´°x(!ÓJ}ÍÖÖd’Þ N´Z{ ‹ï̾Šó¯!öËÔö°^:fì†û4%Ñ ’$U.­zÛØö †_Êj zk«ÁKë dxãc®•Ä»†ŸÝQêârÝ!>Á5õ6r®)ÒÈF^>`Ú'§m¯Ps»~<—ǂկd½% €>áÉLz3“†NG?Àõµbàhoa»KvÀÖ|9¢Gñó(lvŸ«èÍ”íʪƒÆ(‹´p'‡^«ª5˜ñ²8õC¸`k5>qªßeèÞ¹Z礿èQV†Üa_Ç@‘ݱ§Tú2‰*·ëÖ³òpà2'Û„JÑ4h­­Õ´jY0¢iwéü%ôþúú³}|ç£Âà×wGS5ë \4B±YçºLé<â.yÚÃAbª´œ W©î lÀ´5ˆ2µ3M9Àª´ü´²¾ï?óAð뻳ýVWô)èp Øf¾I‡wÃËûv?ùL¾ëéÓ1tø·¬PójÔfÕÜX–+e7º0>ÒãÌþ7ø|•Ø¡óËäöœŠMšWgš‹!x¡bÿ®}Ô]¿ÄŽzøëôY~ÃÇwíAÞ£§ Š§iRÂŽðBÎg íýŒÍ[×çœ;µÒê>'kd’ S¹vXb A!Ê·ÄO¡Ó;}ÔR€Hïu¢®h‰¤àóWǰZåGjùß@󵤿è-ö£šVà ²2@Š­ŽäºrŽRâ~ÎDãë÷OËËO€ö©)ŒNˆ?¡ {ËFÐnÚˆOìÕ÷¦w¬Ò9ºTSœl@°iLWMMÓdÞ“|yß!¯'Æ‹œºŸEû?~è¼ÿáÃ߬y?r&¬P‡™‚ˆ!÷d‹È¾¶mùËÁõ¾yŠ/ˆÞpòZ»KÇh5ÂÐ*V’`Ç<7#õȨ_%¶Ï0@“R)RÄÕ!ЬS‡`Za„}Е®yËDP›;uRйÂ4|i÷6~ÝŸÄý—PzûOù9Á#pÂìñ$¾Yj…’„„¹Úv‹ãzPí>’bÄ™¸¦’´ÀÚ€À­ˆÛXajÜwg!7ƒô¥ôª7ðÚ'´6P”kbe‚ˆxOxñ&ä”·%Àù [j•ê­¼£Ÿ…kôL¬éý¥êŒ±'V@aÜžhù/ö®•ú³¹þû™Ò˜’a»‰6xÛ.Óù š8HK x…"`—L9ÌJÝ>¼3·]~Ä—0ûkýá¾é£à¯GœMU ¢žÖ˜Ó³$d.(Êmi©-ÙM;£,Z•hMgí0 EzA°¥À—@¡B×л´§ åûëwÞCÿï>ûM!v kÃÞµ ͥ蒄šeî–(Ï×mw‡6Šª`±‡7£´\\J+çV¹Ô’÷ß‚ôUä¿…è—yíBi±ùì"0“-¸€‡&ì¬ú…ónùK8ˆ§’Š—4ç©+“Á˜±Šô*X =M³ð¬†}zó }?–êÇÒÕ˜˜¦pN$õœTO=ÛePÅpÐ{1r@Þ&g³±@5^ÊwšdÙ|>…åFó‘ þ·ø|-ïoQz ™}j˜6ZÂ’[pç&?VeÂ>Þõ@‹ñz(u¼§î5 OøZ?uÍ^ì§ÓËàfažXЫ÷¬Ó9+5ƒýBÙRoy&™ªP®†è<—Î]NdŒ§¨qh¨±¬z±8©Ï¦ÂËsTÝ"jÌGÒøÿó÷¿ÿörÎ÷/}ó<â|#՜Ҳæè=”( ·þx+¥Îì÷xÛ€qp#•j÷]±¨)ä—tjÅ æV µ”§•ñÿõ;ïàü÷ŸýÖ"W¬ û¸œ9$°¹ fÊ'“¾¿Ô¿¾D9ú1‚·¬R¸ƒ‘•ÍǶ°ß¨†Jí‘NSoAú"ÎßCô«Œö¡‘ž›Â*dQ+‰J&ŽÑçl•]æ:\ÖÑô™Õ™—¿QÐyªwË@eŸÆÅEoÞÏ*ۿЛWèœå…£3Çé½1| äb©(Ø`XÛßì8L˜Êâ$ï dðq:ˆÏÒžK Õ¨ÍOVHí‹Ï—rþ¥7pÙG Æ%±ÃÂöæ‡PX'гš×2A¼ï€Êõ ;*e»D,¨5÷”“7ú[ˆ.¤¥®±óŒHÏãü X½gÎ Ónôìü þ«²ÁÐͬ9Ÿo/—s8¸9 QBÓ4>«”ï@o^¡sý3? ½ÏW÷Y-BëCáÆ{Øfg¾ž5^ÅuÀå/?«ÃŽÁ‡žDlc¡UX¾ ÿ—ŸƒÏ—rþ¥7pÙG êô;§)6ª_ƒú.Þëf)mD¿Ï?µ³Ÿ^=ÌÏãü X½gÎgûRq6Ÿ´e% 3„š€¦³4ò"©ëœÏb‹›O*jÒg#øLÑÖ!ƒ±‚pS9›O€½®¿Žßÿøçß~ûåå¼ÿý‹äþ÷ù+º¦@9xbz™ÌÉù ‚l)s²óüÒ }zgDÜH!Á±Xo/fpë<ëðqÒ©ÑÏŽ®›%»C|þü·ªaD¿µóÎ¥Ù°åsg¯±]«nœ£ôŒ«sT¸+ìáÉfiDªÝ'V˜2¡‹=p‘ú¸/Ò×aûU¶»„ÚdJ³Š·‡8Í3äû蕨yÔµrÐð»õª€}ˆ†¸Â?>hþTÌK[nqÂÇ=ë`Ú»Vê¬]³a{§äÓb•!Á×àžÚ¨Usê¼Çl¹® Fˆ¥ršž`î…ÁžÇ»«Ö™ì­ÚnªÑ=˜}©>¸ŽÜ¸ïxaá&ˆòâšWL‹ñBdW9•c8è\ 9ÀÞoJb7heíÍ›¬ùq£·tºF}â}À¿÷®×÷bØR/™ŠØ‹ ¢Û|x$(…–òŽ¡ Q¯ßóä,TmðÑÞ†š :­‘WÐdìCXñVÈøuþóßÿx}€?¿öQ­ðæ!çk,Ɲ=[ BöÙ¥pöž`Û4ëÃd·V¡þLfõä¸Õ;Véâ³Æþ\Béíkt>…ŒÇŠ@ê‰ÑÐLÂØ„³rn^@¹iº.–°Ù‡×Q…<ÃJЩ¨ªy{jŒ¶+D¿¤¯•{¨ÞÂlÑZÓ4®’f)0¶Ú:{éõ,Á"Xå˯"Ç£¼÷æ½§ƒ’â-SŒ«²ê, 2¹“W*þ¤ÝÙøO{×J+¯ØñVчþ1þë¡5=Q°‚ÌèeÌæƒ³Ø‘kÈ %Æ dêJp¸ éÄ…ã(}jÜ%ÿ~³¿ÍÿùçïöûËEÀù{”ïžòý,vîs8ÂêÜAJ‰+»§(ûJÁƒðÁѬ¬\aI2SëoØs¯ÓI_ˆ_ƒ©Ï–xûSïŸ>þÍ{£ÄF9¨,‚”±’&ÚhÅç¬íê Z[Çâû, ³C‹y¹ú€pRIxyL›ûy˜}‘¸ŠØ¯’ÝÀÖ>SMž²‘p?°–ÐÂ1eÙúÞr0­ªÖ~Zn8Þc‹Ôš«X¼ Æ Ož\ãýÉí,/.×í¢à3\§ôZ-7޵.¹8g§ Âkl3ƒòÁ¤™NR•ÊÿwE;Žå¶ò‹DI”>‡”¨½ÁMv™<äóSlxw»Ý–OÛîöbƒ`3Ç:%²J"‹æ5„Ý ?C>1‰Éí-eB°"Ó•Î]ÏàúTbp´7$¼ ¸]™ÓL’¨²u'³9ª†^h@¿§½ÍH>x!· ¬—u.›e¤QÝʆΔI}>é÷‘ƒËнsµNgT¸~UiÃ;,½·øâÆ5KÝÓ{°½^)Ü»ßkwñ¦¸ ªÌ½SEôˆVUãtêìøx^ü€Ž~:;ð/}üõˆ“òn$–»´µ¸-ÅÈ£ÎÙ‡›×–ÒÅQU­‡ëo ÷½ï[uA³€¶ú”ÀØšäŒ?𾎞·¥òó‚?ç¤àýg_VHT¢|‘ÖªAUÏsÚ-Q«×F˜¸Ëfç 22Zkä­òHG$ˆ ¶pºx Ò'Ñ=D?›ãÎÊ3äìnMeÍÞ2BèØ€8­äòm»ütИJÇiU;í Tù2­ÄÞ±˜‘è ™¸Ð›WèÔí '~•:ÝFÀ‡WÍ£%ü^ënøÀG9ÚïÚŒ Ós·•‰Ó%!œ*v󈻌s+>Ÿšÿ÷(½!µ¹Ñ݈ݤ©´|¨¨TS·ïá`$0©X¿HR²ŸJrpõ MŽbó» .`õžu:9]äêõ(”«7OÏØ»Ÿ’z kɯMÿ»e*×᪂„ƒ(Úü&KK©À‹¯vð½Ãåìö5%êËýg¨`KkàXûz`¢uj‹>Iq‘@ÂÍ‘[‡LëÑûÆìÕ‘Tù#­Ÿã÷ÿ<Ÿ¼~ëƒäàÍ3NCs¯’‘¿ÜÊÎ +†4õÝß´WÚÎ]…¨8è8È“é¨m (ÇŠQA¹æXÝ^²Ôaã«od/-ÖÄàìÃ/Ìqd¯öó¸ªÀ‘;NÕœéÞ)Œ¦¯ú„Šà¤%Ì !¯V ððª¯Ò|@léf¤>‰\ÁégSݘê,`—«!ÿ/[ðPY׈µnO[ëÁñ·‚¹*É*QÀU¡ƒgˆ¯J6ÀL½€žZ¿‰\Béíktj.ZQ——AP¤ÜÝò—×–#è°ýtÚ£pšfÃÚwÕô[ˆÔñQ t˜‰dš«”ùUáô©Tà ToHmÐ $c£ìeX¨•ª™¥¤’“nHùh‹­2Ýy·‘O´G¤îÐ%ÐÖA:1ž¯ô½‡—{×J*²B›#$jÄøëwi¶fM‹­.ìì½Þ:ð`®¾8äý¶‰«m èê /ÐEÔHD?p/ðsþx>˜?Mÿ<át.y9Ô¡½%›‚æôµ…’JTÙè ®4˜U<€B B·zmH w\º¨€}eN%|±Ìú¸P÷¤þ·}i1·Ø‡ 2…°örŒX"Ñ´ÅçÁdÐÄÚ–¸pêl­"³ ¯úAL-¬)”Ù(Ê~ƒÏg¥ý:?ÐÞƒ3r²\Ô›[G­%åY(±KÙ‚ó¨@cÕ£ˆ›âùíeP»V‚¹Hl<À«a~—ÓÀGlÞº>'hR…Ô碓’-Ã>n#‚¿w»¤¸7b88^-%HJ,´Š<˼Š$h9§˜Å=0{à¨ê 4Ÿ›ìw½%½Çh€|U@ I‹:2Gt‚_×§d[c!¯\»®÷eMò£¯Ð„@n‰TšÏuëº$wœü#?ÂôŽU:Ý[QŠ´„eéT“ïìíç`ַ㿱æ(†ÈÜ—»‘_àå*PNKB¯i ²²ùp~ Sû§É¿ŸŸåñ¥¦ù?qÊóe" «ß© ¶5´¥NIêêÇ{1ŵ.]Ç ë„Ó’–šOiÖ\BÐ A;äÚ´¿Ï«º¾­aðÏßzO²÷Ùë#^ª^-SÇÌË ¢` ÎÓë2ùmß…šßÆñúŽž4ËklàÆîKl²‰R6s[5"ˆ3=0âê-XŸ•ò·PýtN;Cª­j"³µÔÀJÇÊQg7µT@Û“^AjìO^Ù‘ðˆ8ÚúDNë²Ãçuf„ÕÒs ùâWëŽÌÿ§#®ì­”ÈÎÈËišØ@Ü¡Ôsën+¸Ç)}º§Ð§Ÿñ›$Yë D·6pàˆQÅ÷?`'ü§ÏÍÿ[´Þ’Ú΋EqêЖ¬°"^ò4]=±–롵\//¯^Žæÿ†^¡1ÈJ½‡h}!¦‡úÍ‚0{ÏZº2«J‹Ó‡ub»vÕYüüH²»Ï_…íÑ4¡¸fXK8I̶Rq[gNR¿â æš­c÷?ÛßþŽfÁ×o}” üvÞ…•*V´l.ð˱ °)Zõ«ÄË•ä&"×Y+{ƒR!lcTò2ƒ×F/ÊtgÞ%]â°\Z¬{¸Àû¿ø(ö¡ËV/æfÀciêÍGп>ofW0yÔ´>sd¬‡ÇîŒ]m¼›=€›¹æ}„üöüfÁ+8ýt’;‡© $4w4ïÁŠHq™R0„Ø¢ƒFßÁô(ŵ0ÜFˆ¨¦N¢Ú`Ewqu¸1¥…%ô]¶B—Pzû\Új¨Ö¤—Å3Öåse*Uˆ¢°-Eë~¡9Øt¥Ï 1°@Qµ•—ïä°†;ÃÎìµ?_ÒçÒ€=ToÉmçhõ»}o3 ±°WXUäh/¡¬0ÚØ 5§ƒ£€ŠØ0]añ"Ë’"ÛÀÚaãýÆq‚—{×J¯†¯R«9øà‹\ôµ‚J µ°·˜=8ó¯Ì+#ųVèl…2›Ï*®øWv#1/ï–Gµüüñëÿ}>ðo}”üõŒ?†_Æ–c-7, %Wú‰›pi»«Ô@¢W;TsÎ3†–)2GÊÿ$™Y ³ wSúb´^Z¬{(Àû¿¨ºý‘[ŒÒ‚üÝe_ÝW÷Bñ¯ŸþWÓIPVVêr7QoŒ‰T{[X¤¨½Qê¶(¯z‡ÔgQ€=N?ÞÎaÚ2’¿ÏN7aŸc—kâ’W‡‚ÚMË£ƒûòY<1H0g­c¼öÆD“Á[Ù’:û]Ä/¡ôö5:]¡bAR/à3‰{9Cùy’Öî¥R{¿ár=ï„¢­–¹ÈKÚÒˆ 1ÚÌ­üU`ÁrÚ½¤Ï¥{¨Þ’ØÎÑV|¨FCð$ÍØÔDƒB[[ÿüZYæÐŵ2P˜«4k3 È,oAœ©çÅ; §/¡{×J0››Ÿý{üë³@\%ˆÃñ³šêZÛ»«|0«-0$ѦJj!‚@x¾^¥ìvgØ`ö×Oûçßp ðúµ’€7ùë´•zéI4©ËYü <–ýÄ܃¶L…ZFüи:Ò¤©â=ð@V« áÄ'è6ŠÍ!â°€¿~é=4àìÓ/½ÔÆ´êÜ}“ý kÈ÷ÆŠÝœï<½^#ÙB×äÅ-WCFÐ Æ> ¼’ ëPMó¡ ¬wp}¸ÖOg¹XE>ö¹1³w,lîZAœ4ú(ÕÁÛø®3Ö‘TGoܹ@c!õÄ‚8©UÁYÁÎb 4¾ØáêÒbÝÁΑêe¹uð’Õ…¶Ü¦ΙôÕ~‚ËÁ¡ÕB¸yž7Š@Ž‚ Œ2Yd„(—æ]ëwH}.¸‚×[’ÜÈ‚P¦­z§f[Y|<ÓðÒá&`ü[ÈÜ à ^Så³Z'+8Ÿß}UwÀ‚^ñÙÊî¸ÿ|àjï[«Ó•Ö„è™>΢»ç¢—2–\gi䪾n ­ ,¯_g!³4?Fd¿nÙ/šú…¸W®ögLúÀuÖ¿Mæ?ÿñ»=üñŲ‚÷9É®Îm¸D 9aͲ÷]AÄ®¯ŽKÛ·q¸-¦>»Í§J&<˜VèÌUü}pqÔJÌß6†èÝo½ƒ|üü ˜ŒÈX-æZ¯6@sFY~‚âþ`{n¯S(„Óô:0+6÷Ý_5ËŠÍî0Ä!ó÷¸Ob×aûÙÌw µ>|Éhšs¶Òˆ"èšwh˜\±¾ºÞ ‡ § è/ÄæçeâÎBËLµ¤E9“÷‘ú®Ã‚ hïZ©ÓèŒSîiMše–’U¬GIöƒïØWMÈHÁ›eFQÖ´B‹µc‹¬‰ª2ûZ”žcö©<á:roÈ~—À[[‡¼(dL>ÛdÕ¹À>ûÝê•9<-FAÇ¥T³Ûô›!¯æ…½0›æHs7{ï+¸Â¿÷®×i²¦¹í?)Î^,~Z®aøx',ÛÞ×=øÝú ¤‡Å"æ šL3C®Ú±÷‹Õ¸V} Ùå×ÿýëÇóg¾~ëƒLáÍ3NW^^6M­ÌiUPO·TƒìHÞûö³£ÀÁ®ßäøA¬€ÌÔ«üÆ]§{lÍÑŽ#ª!îŽ/qi±îàg~ñö¾jîÞ…¿v Ùü|žPŒ`»9ÛÉ2(1sñAÇÿ=³†øsõ; 17sy ؾCê“ØÁœ~6á}€©õŽ}c.Ö˜­…”:T¿.£m{óA=¡›šhÉqnäP|ÊIT´ú mªöÕ•¯–êvRpÒ©ÃzÎ3e¹±ø%rDw%Ie {àVVí^Ü–A /1×2Ê„³ ”ÊÆuï@úT:pª7ä¶h•(J6š>°5Vʵg³´ÊJm?Óü`b XîZ‘ìƒ}xãÍìµntÓ$Þð•v¾¤_A.ö®•:5e#kîWº{eB<ï(Á´¥ûtp;Û¼9»µ®A1có¹y ê¥áT=rñõë÷ý _ú(øó' Ì É•æ¬1­RBYìÆ9=ûéÿ•¨A‡óß©"@ˆO×n33á 60 b‡–å«Gl^Xª{Òÿ»Ï¾zYY®3ºgü°–Ù‡‡ I·cšòA½k@|^™x“f]H\MÉrm¾A›Cb“Š]Þ‚ôYÉ ÑOçµs„v<íÆ½Çβ¢RZ6ا@!co}GóÁ‘@µ™–+ssBLÇôvx¨…•S¥•ÆÐw§þ½y…N5Ùs•Ü_û*kÍŠÕªîŽhu[`ÄŸ%@‘õظ[B>cž™Í¥mÁ·´UÚP©ã“¶·ø|nÞߢô–dvT‹!Cã ‚ö¦•©ú|pû‰X×°cxCN,ÜçB”IzµÂÁ{Ô‹›Ø[š'—o¼*¸€Õ{ÖéTïšþÊe(ùŒä˜<8µåNXmJ’Óu15iõ¸|Ç"tjÀ~ë^UÙŠÏ}·BËÇê<`Úþë‡ü 9ÿÇn°öçóÙ÷cµkŸ"ÊA…ꔜŒÚRP¦åw7e7.“R½0„CE´Hîúª"ˆ«&įޛĒ©kdû¾ÂÁ?ç=9ÿÝg_–LsÚ¢œŠ·X敊åj~OöF,í`‰ ô¡¢yéPŸ§ ÂÞÒ«Ó5¹»0ðoelhÑ­ }VÎßBôÓí ¡îðç„«ü¤š¶~·œB Ýöd÷ƒåÏUsæ¡J™Ý§,­0gJ}B²Ò¢ŸC~q7ÖÇ…º#ç¿Ç§JÌ= 0#ÁþMÂk¤8ÝH‰F1Ú]_ ÞZ›¸.(aÒÑ\€ü&Bx-HÞM¼½ŸÏÍù[”Þ’Ëκ†WR­î~^÷CâÆÎ¥¦œýHiJ™ú[rY¡±÷Í" ¥9¼Ñ¸"q²Qá)”X-ÙnÙ—äüX½gNÅ‚sx¿Ž×ý†Ê,£Wø”´–¥¶—PíÀL‰z¿r‘>É›†êZ+ÉœÕg’,¼šõÈ ë¯ãÿí?Ï.túÞ‡3ÿ›§œüg-qÍ"Ê~£Ô_c×ìÑ,²î,Yb<˜_>üÐQ[q¿Wˆ¨ÆÙ]!èµ"‘SíÜjñÿ÷û’ÿ_?õ®üöñ—"=¿y–¥äÝ»e†ÈÔIÍ;]¶!6„ØåC˜Z‚Z(Æ© žlf, Lܬy÷À×aöi,à b?Ÿæ>V¹L)T©Ì Òœ¢šµh a›*ŠGc\[Ph)ŒBŒœ†wÝ<©ji¦ ÙòZÙÉÛ/à—ðzÏ:dUýqW£äæŸh«ð3ø™Ç0@ìŠ}—DN.—§O7Mé–» ~Z’K[eY’‹E°1ÓÌtk£»jF ÇÏ«ÅÒ©—êh?ö²×xÁAÛà ºRPTü¨¤¸†L7{W±Uj˜(²ºù;f]ßÀõɤà h?•ïÞá”,º‰R¦}ØÒSÛTi>ºìCß\Y!Ð\Y9Í&Å·6K‘Nz#Iï1²ÑU…ý^æ.w¹[´ÙÁ;ô"—Zd©*ªÑ…²Ôø“˜%nÑ{0yÙ´†EQ¼Z‹›:PIè6j_~ öʼn¾½ÿùÛ¯<¿sðÏ·½—¼zÈÙƒ˜"6y¢N(ŠZÞï‹9Þ&¶äCÛY i9ÖBm•0ZbFXµ(ãY_M”h yñÁÁöÃ庅¼yõ‹Ilr!°Ö5ƒŸ»…\>P%Ùi óÃe:j®Œkuh¿°¯®’!Ý ”(*DµøØ’›ñŽi‚K¸>‹\ëOg¼wXÕì\¿p( "Jâ2›å*ÃÓ¦agN¢GÂŽ<¯ °ÌÏ`®ìÄS‘¿ÔÒ:¿m“ùÑbÝÀ Þ"µsû¶b°ž¦µ€Ÿ© ”$P–fg8Šz½¿GÜä©>â‡kØÚ(I°  D-ú|×AÖRŸË ®àõ3iîdý)Äd·¢=LÐÚHA&6Õ8·ßÆÉVä'`Â_ìk³‘{¼OÓ[ÇE½bJéâÿ̯¼"øµ·­ÕÙC;÷:õ­]±#v5~ð[K¶À=HªÑ:I#{âW)R'òPF!&•*nâ¶6ã?Üÿþåïß~ýÛó)ÁŸï{/'xý”óLìt^@:yŸÕ{n}²ãïèAÞTÂQüž^¥wa‰®†J?WðÙê׌¿*Ê•H ß9CÿºWõVðöå/T­O2—4&0„Clª«zjßÌÍi`wÐ)ÀÑѤ1¿˜œrI+Ñ+;0)5:_î‘~ƒÙgñ‚kˆýé”÷°Ö[dÚËbÍ©Hâ) Â.ªÖèwÖCâèÙ(ˆÎ[(³èùS„½Ì$s͆¢>؃ûárÝ@ ÞÁº×ž*ú–;Ee •ãŠÊ¸[¦¨zýºTÔµÄéŠ.àÙ¶®²¢€!‡^°pÓ¹;ÌßÀõ¹äàh?“ñ>´cy“fÒ¨MC*HäläDÝ4wÍXÀm:8rÌm¬4"…e~©ˆ¬=È\M¬µð…®„C÷ÆÕ:[YR£&À5‘‹àå¾»˜Šì|·3ÄC°½NÿK‹®•:øe+6*®¦ÁUc¶¶Ó]5Ø?¿ýÏïßþíùáÏ÷½— ¼~ÊyÖ•o Z’w«àm~TÊ»ÄÛš®tg—™÷faÍD¥ŒbøJg œì¶Å~ex˶üö>2Œ× ž#¶*˜ZÌ¡Ss~-õäÄ\I‹1}'Êû‚𯷬ÓY…ÀƒÇú̳©Á.k,ul¾è:Ý‹¶ù(–ëËÔâêþI@K6mÆ9-êDpÅV@ÄÕ~Ï!í%\ŸN¶ ýdÊ{ƒ[JQ‘i,´ëŠ‚úuÑJS_[5¸xÐ8k)çæl9ÛäÐ ¥»Ö0ÐCð…(ÚêB‰ü`b»[´› Â%zýh3b‚d­Ýר¼Í¹Öð+à“måÈâAË UGev,v6vƒö˜Ò8]w£Ð‘Ÿ†Å{gøY~ù‹Â/!¿\à6Äzºziy5'f¡ð©ÖÄkí{-ˆƒ+†QÙ¶ šÀ“‚P­ä‚,˜‹;ÅåÆÉ)¿ôËÔŠ^Ô[ Âë—¿¬2§+mi2Žÿöºûgí<áÛNÌMñ½Ñç`ßFê@Æë-ët¾Åµbµ‡‹‚`jMTÖuš©u±m¢õà깦ÌLnLú" yövi‹aòDðÍØøƒëó ´ŸMy—¸µŒâ‹–E=}‡ƒj,ÅZ¿¢Q”d{A4²ôÑj5ã˜Ô <9¢åjÓÊ»ÊÒhCñ•W B÷ÆÕú~‚¨«_=/‘x‹¦ÙÚ–­±É…‰­^;(Éç”G·&…N‡•“sUñe¬;®þøÕþùtvÀ7½“üëg>k€i/ž^åjÁGÅö{t©^шª7bÉ3®:ÍåÚq)`M³I ã©vJ!ÕÝ7p?/øñ9o —¯}éÀ£¦ÍiØyÜäµrÇB…½ÿöuÂ2;æj(z•Šf©õáAf¶ÂÐ8t*Ò'Ñ=D6ǽE¨M+nÌÖ)õØ5ÄΆÁ\'äã•Iу.ÄÔGX~­J ÁøFõaQc58Vw`Ç¢ã«ä >è§Wè»eœ± ;®¶b‰¿ZRܦ¶}.Ͳ8m?S 2±J‰1µ6W Ù’ÍV[Åyϧæÿ=J?‘ÎÞU–zuš{sZ:jx”¾N+»tJFF=MÅ÷"o(¤Pùˆ&–À’‚s|å<ÂX½eÎc_i Ís‚pzÝH°Rt˜ŸQE^™D¸>ÑIq~ÖäÍ/^©}Ϋ€ÚÛ’Ó°ÞcÇõÇßÿ}þ çÛÿxç{³ÿåsÎM1k()W[³{õÕcË#Ó‰ðÌÉoÄs>XdŒŽm ^¶ÞÁ|iæá:…`:yßܘÔ#æMñ»þO é`ÜõØþ¬æR‰ÞçYycPGE)¡š&ª0„¯Ëþ`õ–u:÷ËÙ­ÞJ©YcHf=œ 3ª×í2T¨iVÐÔÔ†L×íÔ?ºÃor%kšU}µ;¸ëÿþþþ‚#ƒï|göóœ3n‹±¹tddJ¦Â«ÁPm„z܉»½þ–Á‹Ïj¦Ù s«"Å!x/|ͨ½R »Ñû)À函|ð€·xå-ZÍì~qsÄ0ÝI‚Û6yçƒlea]$¦noKm¢`¨’V’^cö$®Ú6ïÐû$Fp€ÝŸMzB—ÒÆ OJÄÈx±/1Þp„»,¿÷9pÿsÉudžÒ:{B‘RÊ ~y9p…F¡:`@ù‹¸Á¹·­ÕÙÒ3FÉ bBu—R$}LY9bƒ}¸W<ºž#üv{•H˜ÊQvK*Kæ½ï€ûTªpßOäÁŒ¤Þrt:b0}bÁázš.Hõ]Æö¾ç¨Ã ¹‘Rhx?QMäFdÇ–~gn*ªŽ|èµ_¸›˜ÃG8NN£­Üzppš yÅ™b¡újœ'ºQh®ÅÖ8#N}#ŽG¢*ëØ+øwÙH žÝÚ]ü4 ¹wøñâðý!ç² ©ªÐF~Å5@5ÐËËJ+åZØœÖF'õz©‚&Xž4ÖBbw£.þŽò{Û³Ø#ƒ¹Q˜€«Õû&£vjÆ(²OHq¨ÎFÌ"wt\"õéì`‡×O&ºKÈ:„¼ÞÛŒ4µŽµwë“×® TGÙ†W0Žç86m³^£¯ØPÓk)¸“«Ú@BÕ0»>Øin³d7“‚ à‚׬šÔ!¤Joâ¨A`”ÏQš³í½a:ÈD%lð ©G{Á´äÕq¤tÄ…"À­t³ýÇýúÇ_s ðç;ßÏ ^?ç| –š›ÞRC‘± §õe4ªso=hò¡—à)ÌØ@Àá¦(}[œ‰u¹ó5[~°¡×nÑncoðr22Ò>NTºÅÒYwRù,=ï¯rÝAk<6q˾aè+»Ö[r9¬¤£k/6ñÝáþ½Ïã×°û‰øº`ú°8-qt¿ûŠ,hËŠç„éÜ÷0§ƒ|P1Z~ ‰ë´E×25Ç ÆÜ˜t-ÓïFÁ>Dîmku>Ç].écÔ“jW—ÖÞ6Z‹n{ÙòõcCEÌ 5XÈȹ:ó(øªõSËFÎa«O¿»9¼ ¸Ï¦ ×àû¹LøÁœŒm®•YÜ ³,ßbG`Ô™´!ûž¦p=ž,”À¦-!Å+í\*ø:š;õ:„Sú•ø… ;ß¼bç^¤êøFðr‚´Þ¢·ÀÞä+á†`ìôô“ò•lž¨s‹ ¾úçýe¥Y;€~}øöÛó‰Ã·ßî¥ ßŸpžYHìýÆ’XãêZrrnd"K9-»å×”º¾ÈÜ ñœ¸¼[*‹nгq ?•Àáɯ;G8Ì[hÂë—¾Ä5läqìâBgHÚÊzêšçA;ªmœ=Pî²pRæ-œ¨Qi¬Qf4à_ݘìbJùŽ&ÅWø|5Ø¡ó§Ý%8âgEÎf“¶M¡ 5þ)µ°ÂßvÇ”ƒ†®ZèdQÃÉËÂX®5ÜgÍ%«YtVÓ{½[¦ˆÀ4A)9þÓ$"çSÓ 5W± ÎOíó=w•ƒîoÃÚ`‡æV¨&]P©&ñ2ãPìáÒ+¸E÷Ø×æs“ÿ ŸIb—8%„صÄä)¬™|O(¼jÇbqdaƒÑz KéhÛ"´nõ‰:€µ#$sÎvä‰ï½,m1Uÿ•7ï`zÃ*‘:€Gí±”E±,a.^¾"¤Ö Ò²½58Å¿kgb%KJH(RG®i-7ü¦„º·y7Ìîé‘ù¿_Ÿï¢ˆ÷¼3ÉÿxÂw¥™C¶Á¢,Þ?NA9_™ÆH6ê“å@Ñ„t5NΘP0 *[ÄNH<æe‰ÛŠÔjá˺ ¿Ì’üÅK_új ­pLtÛ~Ö\^V¨ºÖÞæH}˪«–[«eÍ)ÀLU6fßdNæÞÁç“’ü?›ÄÞ€³º‚ZÓʦˆ*`Ú°ÚQ“OðÃàÓî¨5—êl! 0Ö–±äµ òž¬mdN*r6ùò«nÞcó³ës¾ÁjØRnPá5÷”²MO£ Á]Qá¬×÷îlÒŠÓîòKên(f¤¯î«9^ší´> ͧ&ù-@?‘¾Þ`A®aU’K_¼‘c•'JÃçv´ºÿgîZ–%¹që¯Ø³/ ð¹ðÂᇽ±½ð¾ƒÁ‰ëåÑhÂö×û ú¶ºûV>*³ê^I IÝQŬ@à>vòƒ éØöª5»xªœ@îƒø¢ K°¯3Ô7,ò·azÂJ/I©s8`ï˜s«ÙÙ¼¶ªÙÇx¯HݞȚ™¨÷ú8SHuYéÖ—ŒÀ×â}Ͼ>Gÿïûýý«<úh™ÿmˆ—åSe†õèO#4S ÆÌh´\¢¸yªuºv`¨x[êóÁÙ½ë}ÕlëXU}µû[Ù›€ö#Sâ2ôoºvDâmÑÒõÉa¦×#\Øú’õwØä°g@‘b¾è*êêBvбðöy«\ëÁ*J˜ìœvĽ )œx‚۹̃ºÇЫ—=ƒ^ð€¹všN×h•ÀŽºM»äFÖs¸´Â`TÄã¯;¼'´¸ïˆl–Ãö@~^Ôî¬RÑ_ï-NŸ r–]ü®œ‘Òl…­3Ò—kî Ù!°²´çõ@ÌúmdÇ 3¤u¨ :&aŒª6Rj©»–Ä®°ØVãÊÙ½31ûî(d9rUËç¯ÛöGiízQ¶RiaxäÞymqlûºxNdßäžr·Mv `1È®Ý4å§Nžf[Š×wÇ ËQ{¬èÝ.i/6øÚlÿÕ®€7‰Ïv×Õ:Ÿ,§Úm” 9GÓå­(t±J¨³°'cò&Ú?´0÷ƒú9GQÂrì>d0>m°mŒPãŒ5õX3I7íGÈÄä°öY»ŒŒbÊcÁþûç¿èï¾<þ!´°8ÌŮ֑”.Åî©5çªRíxÂdØ‘‚ìnÄÒBUjì|§jM%  åÊk;¿Ï Kï{7,sñ?iØreŽ*Î)‡š5ŠõÐršÖ’ñöLvŸòÔ8‰Ž†Lƒ&VQòLÙµiB[h¸æwD±| 6.‡²„˜KX5)ØØb±SÆ1¦¨µi.‹+ùlëÛ‡l¸¿ux¢3bÚÖ+Ï4@mÚàÞ0sìüÍÁsH‡°ÄF$?h4¾L£ ‰tÆî;èé0eÛŽª’ŠjY6×í3†vv¤÷J S‚ẉðš€vD~ylõá6ßZl„ó±r¹Ñb°sƒ˜ ¤¥ÞLšL{÷5êjDÓE'÷-"9› ¾“!vÀ1¹šf³.ÍCP3õw96‚úqÓñiÓí¬ªõ9d†é(¼Ã%V»œ“¦Ñà^qZ¾9"ÒæÈYHšÝM}ÂMÕÛIÁTjYÖŽˆ´CW€‰ûÎó·À}G[à«/\?¼Mì‘—OŸ½Ø§>ظw•Õ×ß¼T ÑOXxЩšæ|~KÍ„z(ƒ.¸+xÏ;W!¦J€š¹Ù|Î×cÓ¶d+°g@•hí\úÚìßVÐ7°º•ƒe£ßQnmÞƒ áíê¦îk…sàŸ2š”u›#ñ§mBÙ¼-ÁŸðiguÚ9óåØìÈ´ N—¯ƒÐwé;B·S‚ß8sûôæ×ßü·~ Ûvû«.7c|¸ýE¨1„¿¹ï0ø=ϰ/0e5wõÞ²$þ9[¤xî‹ èlÊÛrY­ó‰‹K)ÐtÂØ$ÊD\5‰^Otî,ÖºWo&æ{ùõe¶>êÙûæõݾ-ÒªOQ™®¡²ež€YæœK¾õÑïÌtñMìâE·qÚz$¤ Lç¨iN‚Æs‡)^½Ûl¿~ÿ×?àœ½þ®7Ÿµ+O¹úÖV^s/´X½0Ò­‹aØ´ëù€ßRŽÛ¾µ2H´Ã6¸3‹uœ°Õë¦æÚs­‰#:'k¾åÛoaÌ{¹Ö°Íãž½p,iÊìBŽs’ø<'È~”]죥4–Ë~Û±HCáÜü…ÁX¨ÊbÔ«ÎZ‘«Ïwì,%Ÿp賓¼åáØë”ÛO»™+j-ƒ"úÐg—¾œ–÷Ún[7gŽTzœÚ0¶]‹kÃSµ6QA¸p¶¬IÙñðÏmôý~)¿éÓñâ®þt*øGëƺèRÚÙæÒÝÔû°{¼M“IˆcÊçØÝdj¡·)«{lG\ú?úãnŠâ7½ñ]|ÂÕŸ¡)U–l÷1Dm~ °Q0Þ0Q9¯§°w,°éÍ/¦_LR1n™SIÂq Ÿ;i¿æÏ?TA=ìÓÅtÝ«ä“Þøu’#¦S#åèñ$!-rW𛼣=˜ržŽºdg·¾gNâûô£ƒ*ijB¥ð¹ËxÓls”Gm%‹Jâ™B°CïÅÏÕ•ŒŸÛ~øé××ÈûŽãWn÷qoý‰?_8õquøó3/öñ‹}ðƒ |ß&æí—/QYt²´ˆˆ:&c€¢†ÂÄZcçíŠãÇrÌ;7¿º5ý1Ío““cGÃúQôR"Á]<5ÎX‚;¹yùÚò¯W\ŸjøëæÛšÝïÙr[2{òí4žÝûÉÁøêN1$·föÂ{Ýżå1UGY3F²´H©ÕuÀЩ«ºrG;°èúTËÞ$Z3þ[C ö‡If7uH»s;ªçá‹/вAR‹µ[]±¿Û>‰$51vKD>fd¨’Ž$=é´kMn¤ò<Ùƒì·aê?/\Ÿþ¨/^ rq®:»&g·C'Ðtó@4@¸“õ&UZºyÇ;è®;?‚ö,4µäî\,Õº!#ÝYgXÖ³C¿½K _¹ãsÑõ¹e¤W#\|o½#Ík#Û1UΩwÀ2¤’±ì…«†ím›CŠs†Šóì­}ñ`Â$5¨nŒû6n÷!ìwÑŒv*<ä즨{³ÖºV½¿ÿØúYüEh}·Ô©}ñçmàöÕ®^)á_|ùô‹}öƒ~W_þþ¥s(Hg§ËÚ ¾Ý¨‹…2£SK žK~Gpß›Dht”8Ùq0±Yä1 £”û$Ó£Êa惢&¯ µÂT_”4]²”ÑsKìµLB„м ¾2¯¡/jïê´R™ £q"}Á0 ú! Œnmx€O­ËòèçhÇm¨Þì0?;R-ÏlêIf%N›)Bq挣¹Œ’MìÜ,´kã§Eó×m~  ñ¦…VµNkWãkŠÂä«“‰ÌâN™#캧«f¢ÇÌD—j!Lxµ9„ŽI…Ä>l—Ð[4Äåé¼Óc’4ydbk_hÄ; ç•ÔfuH5$pçÝêt>¥K{òÏÔp²«÷!“•p5y(W“&*Œ9 ˆ¤³÷ÔYý@{}L€kI™È0šõÈ-0#seäïy¸¡ï~¸n‹6]dšTi’Yì ÷ðŽiPÉ)ãE3/mÞFœu¨8;‡Ü¤H°[4^­K\Ó¸’g©~¥sÆÝA»‹©ß!t?câGøfœsè`O;²3Å82൉”R1˜2“«qªIþàý„3aüú…ÏóÍ8§ÐB¬;Êû½Jvã¶³­kUÃÜ &WAM"ÅêùSQ_½Î&/ykÌð™Z<„n¹h‰&LÞ-€K’0Fˆ-\””JM²Éq¾åZ¼ÝSµµÖšÌT <ívU-H=ôøýîàJªÃ#)T¤ÝþV4À†'Ïî,ö¸ Â@ca¿ 'J"·ÔšÉéŒÜ(•Ôù©*›/óßÉ3n^÷Ǹýîä3;¶5ÏÔ%ª¢œ÷ØËÈ`YÀ¤7M…R¹ÓMq$F†˜£žÒ ­¿n_e?`æèFïÀxç®è}ªï’1ÖõŽ<±§QGËSÊôZ“és î5ôíPÂNœ†´s“!&έ¢ÒÕî ŠO½{NÖ<ˆ½ _ &¸ƒWIïãkazÆP¨kÇÈ öZ+*¡»úÝ a4‚éÇnFiØéùió޳4ë1©H³ãP-Z e²aÜ'Dé;BµµX½g,„«ò +ÅÙúJ2œìX+Ô½öØ ×š¶Óª¯>%o8¼Ùý7µõ@l„®<³¯èV? ÐÖ"ö¤¹Z¯Ý‰¸”kC’i½} ŒRÍãNЖfHÙ#ÇÚC@ä8ÐØ-k¶xlÒYç.¼¼ÎïÅ2¾~üƒ|Ë.š'oצ¹õ ` °ÃÖû`°Î€*loEx·È|Z¨7€:z%²^j½YšZÓÌ{Vð>Ä,ÖÆ¸Ø±ûV‹µø.G½ѪTyš‚Ô²Á¶s.8„ª‹Ù»bG(Òœ^Já:ìï­m­¿Å¹-×—WyFñõƒA ·L¢…ÎÖYª'¯`c&Uz½­Â!‡^–·—ØY¥ƒsªvºˆä”†5mMµªð(Á—s­^^eKÕîùÄ'¹ŸGXÅͧ¶m#Ù:Ú¬ÅVÙdW28XwÏua'FÝYž9¦€Ã›© Ë(Õ¶bm·gÕ‚? Êó`¿ÕcŒâõ«ç7#\ªI—à lI¢Ô6@•Ë3s‰ V‹ÆŠu;sØa7`¿)&ˬ,8!8ÄÖ.Y|ãó‚ö=3ÇJÈÞŸ9"•ŽÂ´µ €¯$vjž#ØK-ºì„ÃÂ>h5ˆpŠ‚âéÀµ¹N_0xž%àh”ÂòôÕ´ Sf·ñ 8ÐuoMû¨öÒ£-?VV‡€õ²¯‰¶i˜‰3%í‰íЗ-.Ĥ&i‰à‰ÒÌ•L5öyñúþ@m%jáŽÛÀÅ|¶®¶&•¦ALü5¢:YóÀQ Á²7ÊŽ7‚ ·J%D(õ*Zõ…šCý‚®&Ųv±ìY@m%v2Ù9­aBýª½·Žš,‹·ûæ®m9’·~Qm A_à?ùÉà-±ë˜oÛáÏ÷Au»§¥Ê¬¬›¤í i»5UYJyp mŠmæ¾¾}¶ÁÿÕìD!öH£ÎÆP>ŽpþÂMEZõÎ 07 —¨µ´¢‘"×2Vâ¶öê!þú7ûOûŸ]V‘ø—`—ôýDÿ¾ï~¼üüÒFñýOþÚ“¿ê7¿êMÉñý;O¡MB^º(Á1QGÉX ( ‚É;{0Ås÷b"£È²à‘€µ"…‰¯Îÿ+º¥!c9è]‡£øÊ$è¼’GZiø#‡4³å^×T½GDUŸ¡üF6Qe‚ èi.o¨QÁ¾,¥\˜9镚±ûöï³ý+”ä5–x¯U|ÝÕ¾þüÚý±·Ÿ~:¿ïäïøÍ?âÖª¨Ý«œܿę ‹k|ÊM¨d+-°Z“ávïYÉ''œËf½ |0p1¡ÐŠ ÷o>lß–žcù¯‘¼ç^‹/ÃWMÔ=^Î"?Æ—áËG¿ÿÚì½É!ÖëzõîòÂ#‰ yGɸÉé^öVOÝâ¹.Ç›¬Û‘ð•_?öXâà¶=Öý0ËZÏC‚úôÄ)Þ®®}Jˆ%ͦ0tÐÒ2ˆ3ñ£#a6î´z%Ÿ¼âǨÅ÷Šr”¶7ÞçÑ0¸ÿ—GŸEÁpsÄ~H~ã¯3„|¶¦ÚZ.äM@‰‚õäÜ,A %—ëí¬ø $à_Çe(Iâ[„zר’P–3=\ zႯÀÄKGÜ ‡o|1áŠ)d|y.Z­¤àFÊÞãyËœJ9XBAþáê!‰F%T™ FÚæ€¶u¶›tÂ!úâ{àèê:ÖÍpôÇ…ío®ÚûÖ&TSzñ–ê X²‚¤2ÔþÖ< ×(ZïÞ›õ\oºšÃYQ+ "±ŠVm¼SGs£yöO6¼¹G~Ü<|ª³R[CóŠ^‰™Çl!ãr *£ñ–y¢ûzš,H©ûÉÄàƒ.aÐ2p§&n=õ…ÌÞ<ÿ6"¡ù¹€üÍ[ñx(¿ Çà9ª<§/5ÓœjĨáQžnÙLCÔŠ-€‡wxœÝ'`Í5ÇÑ6V$ÛVSoãΉ ‡á¸e~Ø8|:‹õ©~ðbdðëXúLVçyU^!æ·žUˆúƒíA ~®èµÙðwmf«MhkdÌÞËî±c|oƒñ–$õ\<þ™¤¶Bòæôô.*{ïU ×­Ù¤j²Œ ¥Õ¾Jæ2·Q ÈAíýŒ9ŽÃy’blLr®½©\2H2ùXkÈþâ¨Ü1?c"þ Õ¨¹:ù®Ó̦ˆyöš«Vûüà´>>ùå7q½hèƒ#ô{õÊSqúþ'ï:OÉ–È¿”û°9lMiioÀD’ƒ“"Þ};‡‹ƒÄÊ[ 1}ds4޹©}l´¾»×Gböý%NÉ;˜¯Úe!X55Õ3}öƒ[’VÚ2—÷">hŠËÄ5X«/ŒPú1—b\9B•W…ذ½¹·Eî•z¡Lôß‹}O÷ïßr…¤&ÍôjDC€å4Å—ÈÚŽÐDδh”dmµú^È*!H.ÒâŒ#øº÷3¸súuäk5ê.Ž{± ÕtM§¤Æ…ˆíð)î•V!òþRÚ¹ý…®Z®÷õ‚BS‚ömÞ¼?ùÁ÷Ú‡7Í­±´Ñ¤‹7%ú@-ðîfïWï/pBl•å-ÓjP:IW$¨ÈÌ´Æ Ý¶‹®¨JžæM…óòÙ¡È«ãQ$š÷õ¡A¶7&ú¨ý<ÜØŽÙÛqã"d}RG-|È@ ]ƃzÅrmÔrÛvBôfæ×åk¨ƒïòûxVŠ Ã±¯ ¸È€ðzTcÞ«3|…^؎؇mí€DÝGÌàds”RUzÔ9){%$©[E(_Ot@Œé£†&pµŽ)Z…‘ôê Þ>•2W]ùÁ©V[ûÙm;lïâ—kþÜ3¬Õr€Ú ¥‘VbNWk> WZÂÇ{ëfEó9*aQ¯K³ÂíV¥w™!Ö;Ë…îdiÛÁûŒÅø:K±\%9+X`;eù)˜Ê ¹¶¸>òîzS¡QýÀL8gZk²â*U†·í)xo€ŒÌø|üžÆï{ç?lÛâ͇?ºu±w‘“wß Sb4k} õ£‹©•KöQÁ>Ñ,'ÁxŒ{©½"†'Æœ«Lš>¤R‚éÄç“à¯>ùœMŒë¹àß9nȳÇÔ Ï¥4'IsEÒHOͦCbå|°`9 ao…C‹àç&!E0º¬ƱER<ŸR3ùÌ-ënyºÞy¤A}@DìŒ4ìó+µÀ-Ã|= ÛyTr †àkµ’x"'BmÖ­äêÃ]ïîçK7cÞÿ/ ï‹-  æ«„“’O8œ`颪 œßäñ !«·³3³˜xtе;ܬŽîG6 Vzõ²Õ­F|2Ô/6nÀ@Z …b²ÚZÉC&bì¥æmn¶1ü`=«‘5EnƒÍÞh”&Aç„æG|üä¬öœI^D¨¿jçýoðNr±³òd*Ì 2~pÔ€ï\¥Aœ e›Û.R9è-^´šD“ƒQ@§TC~F¢«u¨Þ\êsTqù‡Š­ú„ÊyûöS=ób‘Ž(îxZ$”ä“ǵIôitÛ)¶6 €¿x%w-žÌJ‹^’l/pÅÊÃújb¸k¦ûuÍÛ·Ÿ"€²±¯®I+¯%«µ>Z)¨¬Û™ôñ:¨R ‡„ÑÚ:whÍâ'#Z^ÁZ¥h6|Q”~vlÅèípñ>DijE?!¶|ºˆyLñ–[2úží¯ï9®mТêÃ2f¨9t0ò“tŽÈ¶^Åðj¾g¤»EË»M®À(ÕŠ¼Î±·$ËzØÕ0æ*aÇHϱ·y¡2 #T¼ŸýZ¡HmÊÁš.ªÙ; ì<Çwèg³¹­0½‹{¼‹TÛG$'Ÿ ؉}dhñl]ƒeÇ Ì×;ÎywÚÅmAs¢g ðÞsåv^ˆZsïw6¿“³mëã¦â2UÛ2Èõ… õ\–’`³Œ–)†diìõ‡»9^¿VƒüüžÝ Õ óΨ޲3#‰UžaáßUÎÜ„‘ƒVR ì"Њ`3™)¨€µ@ #Cl§9 D?vËqã~ã QcàÄ>6PW:Ú8/HöéQ½3î®^ßãZÍnMƒ˜Æƒa )X¹v-ªAcèi–½Ž$·Gó ŒŸý$U¸pùˆåF}ÕuIc(Mèß>˜ÓÁŒßŠëµó8_Ȱ†Akiö"ÓUæªc3´ü´7ðõßö¦I~¸²øþéÏ Œ‹«œÆÒPýXMýÞ˜ÄGqr@p+h Ýlâ>¹.ód-0sÆE³ÌVî¥Ä 4=Æs+Ð*(чŽmÝîcrãâ*§¸ŠÎ\³ ”BÍ+*g†H«2RZÚ3ÚuÕ X碄T N?pM†4Ü‹B‰×$òÔÖùe .®ì„ñ}ÀrÅ50•Òëš>Ñ"z—¨a°Uõ­¡¸ãƒÅŠ–T¥ŽŒë'o¯HàïÈ'´†Â7RŸéÎN‹÷J‘ ~ÎdüA&+3ŽØeÃ]†­s³®ÄB'4I’åÇðW0½H¾›³\³ÍF‹µÏlbPŒSC‹k±7æ«$۞ѣóÁƒ×x ²méJhBÔ@-5ÖØÛ]íÕT¿ëíÄóÓ†ã2œ 7ðáXúydÎlÄ>’gpÇß*òeŒ”ûSZû‰¾‚XàcŸaoß~‚lÌ™Ãò> °) ØÔT­ª×³hë› 4…õ«ÅQâÖc6 GžSp 1 2Dx;­*^Â&ÞÜêý4âíÛOaeÎ \ ¼«DX(B4¬$MæÓ¶¥(U>:—:'ZŠxïºó\_¨¢Ò؇HÅ%£Ês%è¿Äêçq‡­H½=¾ ÔÞ:¯´htˆ¯îÚ”>º w×vÌÏEä`ݸ™ÆZbœ½ø¾ùšŸæd©Wp«Êœôu[qú ø4¬°øÌUêÖ‹OI©ç… òÅž@t¯Û)#¯YźÏ(‰I[-Ud§YMe?s¬ÿ×0ýlz°¬w¥·wñš‚·Wl:, BŒ$ÂJŧ ¶¶ãá¯Kç,b,úà.Z€Ž6kÅã@òD!zõV0¾slÜ`+d·Ÿ¸ù®Œ„GHukõ†¸&®#ùi­íÕ¨{h·Gcùbó܃6LØÍp[ø“½“ÔŒ“ ¨4oÚ@õzÙ¦O h4Rsõh)‰Ø €ÂÝp$pÛ¼7Hàöxþ¢eÌŸý$q¸XÆôÁÒ%Dñ*´ÎÙ{™JhUr®-ç-wT¼ö:ŸüËÆ à—KT‘n›7èRúƒ†F¬ñÿïåÛï¿ÿíŸz’åÍ'?tŒeï §ÏÓ|_*yï§ÚÕª7È—±½ óÁ,P¢Ø‘kS5²À¡1scT¯- SÔç#<ÆM6ýð §W®{á†ça× c‰Ÿbh>ïX$ 8dKò9œ{6RÍíÜ—evº¼q€ÊSŸf‡¿û¥×9áÓN¬\wÅmÉb×íã‘”dx[ÏÕµq ¬C1ë¦7(ÒÁapOß-Ë>*ÌH‘5fÑ‘m5<‚µ+ej&馎h=g,v!dz¨6i>¼paUŠ$Ú^ÏÙïMÈþåÛ_wàŒþþÂUBýŇ©^Ÿ2ÿö=ç×ïÀÚÏO?ý|ÏÉ_ý›ÄM°¶w/i*À®0bòƒ÷x`s›ãªkloõІƒÂ»ÕSH,}fÓe´j«ÈZC)F¦ ›¦¥— _¼…´s…CÛuOÜm»Žï~fÃWPÔâ+‹-R²³å¬ÛŽÈÍX|OÍ€m!Ò—z¿¬ÆÔ"E?þ^¬Cí=–_.qkæ‹ðvÝ·ÁÛ®GBE„.hºZU×’&Þ‚ÍkóНTlo ‹Æƒâð+¤w_ŠÀc†ËlTiùÁXóÑ8®&õ±cÄÞ˵†#ŸVß8>Y[×9ù:#+{Ñ^ƒg2Yd¢<",+IVÛ꣡,þFd›Ñ-ˆ×p7INÀfšÍDz‡ RÈcçWw¼ó%ðµï›»@ì•®‰×K5‹Pž”´›gÖΣgÆš¡ð©D€÷J×|! í;è^XÛô÷24LC¦‹a2«n¦ úµã£|]V<MÆT{Yàw ½ìêҦϠbzÞÐ’ ZÊÃ;5—~ùDP;öÊmK0ûNá¨ÕJk9©ºâaëÝìÿ˜»²%9ŽùAk)âD|Á>íó>Òâ@ph3âÈ$Ñlv¿~EŠÃêÊ‹Éb÷Š/"»2³ épDà@l8¢•IÍ5P²Ï=Ðñvp¶ÃEͶÃnů‰‚àdöf?æ™Û_–W§³chNïWn£ ¢Ï0š%—ZO­ù0KTG«¯Œ –¿à“ïä$×­]¼Äl’‹hò€GGÁ68 â<†º¸&¬ 5×â@Té³mÇçl üœÖ/É yµ¨oáâ–æçïÑ?ý¶µŸù³ìn¼jö»k—iÍϲL”º¯Žml3èfÍêýA€™úpXÂiNé‘gpÓÍŠ×/Y/e"Ë6h¢×Š—­~ïVžjts%[6?á@ÖLn-ÁkLƒ°È-1ÂÚIƒ¶ZäÛ†âêØ–ppU† Á]$±2IK’êB§N³€cN.–³ühü8Œ)n-C-Ææ±ô“©$v‚XÁºþACölƒüèb÷Òã¿ Ù¬˜þ4Û¼°|y¶6[¤Ù|ŒÕÛŒ4iòK§¼iùJ‘™ÅSl·½–¨¡BŸÆO[‰´e³Ùà.&£­Xþ9gÅþßC:/ ð꽃 ›µ1òÅg0¿Õ47©ºÁA™Eöð!Ø7¥"ˆòÖ¥}Z'­ô˜‡ ÚkQì?›þkõϺü¡¿Ã„›Õý7 ¸´Â_Ÿ¾}rƒ~^>xÁE‹}üÝý mÞbq’Éöž+ˆ%Q/šZl[ŠV¤•Åk`_­d åÈ¡›³MÏ–YÃ,2¢gæk)[@¼›þDŒŠ`8AHÛ(›$o‘žnŽííx­µXOÈ´ŽÖ÷ ÜàJ”­›¦Úž„pYmLmÐP¸¯u`¹–ƒ¶…ÂÊpô'ñ…–°8GNÛpX~F*óv¾å‚³‘ ÞøÜ6’³5R^ƒÃZî”áUÕ˜á ¨±£9¹¢†äa ùÁRÝɵÁç®Ì©5†pX8nF›™bøñË;„[»ÿÿz¿•ÑñþÃŸï ³É¥oàËe?‡ðÅE· 6h O^þýñÅ>øÎnŠÐV.^|êàV®<·äR‚¢Å&Û>&óŠžE¤p0C¦—`c#5dÖ/Ó³Ä9­^O·j¢^£oìÏ_?ÑüÆf›Ö?Ác«ÆwÎR1$›È„A¦&kkÚtƒ ®­ŸMœî“X(‚Áz»ÄɵtSVê¸Õd®$x¢k²êë?ðÖOà ‹mbpŽ¿Ö`Ðá£5  Þ©bÈÃLÊæºCŒ”÷cº˜«µßw ËÇÞºïiK_C,W ¡«´y²ŸÜw!TÁÂiÖ ¨2'ÛŒXO¼Øl!mq×ÿÔ?þtËo¿´LJï·BB÷ §_ƒ#}Fe ÆÛþëiô…=þË—+ß}yä‚kßáa§Hmûvv›%ç\à@ ”A5ëºG@ÔJ)ë‡mì¶OoY«u-x£šlT€ =µ”(MI\™„÷—¾»qëçïÿW:9m'o}å@_-ˆkØ‚ì6K„â)½Z€Ìæ-­Ž«‰ˆÄ‹ç°jA¬ð£nJ"9»¡ut;$òÁJö´¹fUö¡9|mO{{‘ßû‹Ÿ°ÆÍO|Ç?á9VxP;¼wÊ­# 4±õÁp·#ÖI«ø fç}"C‹ÔéØTç9[겿5Œ(wçÜ­¸?m×õ¾g¿•þöûk}ÛÜÜ2¦ƒúa΂0޲·¦uÎæ Éúú¦Ú¦¤T´0âõœÿI}ØV¶/Þ&…øìõýà‘Âÿ≿c•ŸóÍ Ý&ÅÍ$ÖPÐç29OŠÊ©»YTRu‡øGĦ.[G½‰Õ=II{ 1Qœê‚ðÚ ¤6Ç¡]_èV\Yë?fÅ/˽A"XGž(Jß9º>o½Øæ€EW­Èö¯'Í~v‰Ù&‚ô9‹W\Ejá ä(°kUOÇ?hüžÅ\è&‚ëÐH *c $ÙŒÓÆßúo}lny»» ;í‹ÔÜ>º¡m>?p¹}v±È: Í^^¸L¯³ZqN.uŒÇ µÖ¨Þ+ƒ“à‰×›0Ú.%k ÌÚ¯Â`uùq{¸ÓB_ Úq³sZÓ”Öqu†Ø\Ês%³˜4Û~³ G– áp“еôôxhÞ:ôO<ÈÒ$(_ÛþÞè-ølžïgµtü­eû§`h¦xNÄ:¨Kèø™Ð‚ÛGS¹ v³ŒRo–;ëÊ–B}::oÇn]⸘ìƒs(zjgÛÖ¨´EJv²“;€ ÜfcZ3¢å\‹Õõr¶’Ñ”ð^±ÕuÊùòèÜû¯õÿñ&T·ù{\ã»S·[:VùÌ•ò:šÔŽr'Uë3³ÖyIè —ŒÌá«eZ7ñÝN÷¤–¿d’¢Ñú.•tñ¸â®W!¾ïë\¿ŸXµÀ5äxÃY7üGŸ,S»CŠ9G¼ÕA-»"fnUfq¡#‚V¶¡Š}ú8ª.Ò2`ÄË>V¯HƒßØé6@g^°žSAÜY{À›eµDk_`뀀†Âh¹ä :Š\Fö\ÜŒ•f%ÿ3Y ÷­_vÁå[«¡ç€¶5¡ç©ŸÆ‚wwZàHGÎ:U¡¬“F´ –u‚XŠW‡Zx»ßL+FèüØ„ØzLn¤®3‚ãiY,dýN£]}{ø¼÷­ söîÁI\GLDׇÆ9µNEWH ÍÖ;l{ˆƒ}t†Í àT»RHD\E[®ÙuÍø‰Xs¦ËÍÿ7Ñy[¶[Áè2ÑÝÃäey²5¢™T­F^¼“<ÓHÉši­¾Cé è‰KN\P*Z3˜n¤Æ6¨W‚ó Ñ~|yäÈýWzs†{¿Ý#Îɱˆ;uÑê”mFhå2¨¨–µm‡•vpŒá]ŒqJÆÿäצ2ÐŽ xX“gIæ“øZ£­mpÞ†ÞžDn÷Èo{Þ¶©<,uˆb j!­#“áâ÷sP­o#W(yðe¢hþ 1.ä‚W…R<Ä“B¥ÿÔöÙ9‘ªm/µJuXf ¥&…Ê=ôTBòV¿éïÿXÞô¤uå7¸Fw7Z,Ý:V›ÊQgÆûzË:Ót?ËJ•n‰ƒ¬6}2Ùì Š¬°kCRðm0[µD¡^<ÞÛçUˆî4'Xî™^«ÕæÒùŠ•ìcóž z§²ŠL:xmXœgòSš·²$/–Ì <òìõÍæGØšÿ{™Wä·Søœ#·#ˆ¸IL.×Ä:›CÀ,;OÐ’œ¬C”÷!*$µôÕá¾avéBž1lIç‹#¢ÔYÉWÌPŒ£hTµ^;ÎêÝíd’7ÓN~Õßû§ß?Ô©+÷ÙD»³ù—ÝT¢~}¢uDÿš6tnTôãµK„ýš'x‡(tF”)~Þï 隀­4„¶˜ô$˜^Þšš§5üÐð77#´È  }–íÓSFÚ¨Zø¢îŒäß&Ek4®Õ‰¯øé=Q*MÓŽ‘Bvûú7ò=*ȧä@£¸®2‰4Å\ÚèÙ²ìý5æyXžž·:Íl-δ¿²6“ÏÖǶ‚,—3EW ·»6yÿ¨S­†¨[2UàU.xógS®¾>¦Ûw|?X›«&r×Mä–‰èò$§ ³‡¦ÏÄð®je~eî.M{ÿMêD@°w³ ‹62Áƒ„Ç€b½¶3ø°2ׯT÷.ŸÍÕ¼vÑËG?: ±á4l‰¢e–LÐÙ®OÖðâÿcï\w丑,üD2xgÄ ì¿}†A0H. xlÃ3ûôqRr·¤ªÊêênÉÀÊ0>¥(+‹—`œL2h=”n?Ö&î«Û—æÕV÷N• ãÖQf êëóÍÙ{L¤~Qñ_/ÆÓzÇÞð+Õ~Ïöð¯k}hÉD³PºÍ|Í ×³7ÆšÚ®Ôzªñdqiˆ!nà ޥÖ&ö#mT5eÝeÆYÓcOÚ¾¨õ‹+ëß´â?m¿R÷wîÿºú­FV!“âkÏ› ܲ³Zí…Ífî¯uzë²'Q—G*Ëãåd~çá×–"pš ™Lå"üØ)ÈÏÿ´¤ßùó~þõZ¨­wµ<Ï¿ÿ5VèJ9ÔëHs“'Ë—%–lž³Çj "cÎK;YSît2Õæ4rñ½û¡T–¥²¶Y¾n2“ê Ý[s£m¾qºÙ2÷ªk Ó–9‹bM`Éwt¼…]æ•®5L©'3ýåÚüÞÙÏVƒÌVS§RM;šûú¶!t—èIÃ|kûu³y^dË®µPõÇæ;Æí»Ig•QÌ‘MKò2êJ Q»½Fª³I¥ì‹âMƒô{5‰f Ë#=O æäš¯šU>ûMÿúó÷õÇÏÿüý·­ïnâžÝË›™»Ëe~X9–ÑXkŠþФÏÑK6ÐæXXöÄ#˜´zr‚šÌ–xh0w¬Õ‚oXöµß£¦Uë–Dq“9ïÙ~ßÉ Þj½Mâ[7ÞY†an[“Èc˜{1ušî×Ü|y©ä”Š´Ì;”wm¼ïj*o5áãfóÍ[ñö,”–îº}1¿éØ^›eBcÍ¡~¾éåÇWù|òrÏBh¼½ÍüòË2’7 ù0)šrlÅ\h›iªÉÇVSV}uÓ”"—öA”vrà[Ù£ÖÑGÒY¢Vo*Í|A×MÓÝöÕÔDÁ›6È70‚§Íqß"„7nJ·= “¤mVrŸ²ôÀ9‘ÇñR_öÛ^x?§¯Â¾Øß̪¶ÉÝë ®6 žÈ°Gœïk*ÜênªyÙµY˃$Ün_]«I‘Í77²P¬ä«FeŒ&3šfæ»4ÓWOÝÄýÇ&}³Gg2A|¿mµ¶¯Ö’¾KÄé›AëÞ:âô}±ß'ât?yT1fŸµf5}P°‚„}zj²Š;›ü¦ ð<Ó•uõ7k°|zU}uθSÔƒ“¾¾æŽb>ÌÃÞäë7Å$¢fìéÝl¿Mó—ÄPo'Îô¶.:ùú ƒbms‡©ÒKE7Ù+zL®¾&Ðô+»ö‹MßóMŸœ‘ûd<”(ygïäj6KÌN…#"LI%{põ·îØ7M?õëט>º5{쀘‡Š6Jæ©îeš¿'͵šöïWºõÉ›@?°ž÷*›ˆ‚Zý‘Gò!wDƒ²éÖ{xìyý+ãK¿²g¿4¾ô½Hß'¾to·dÓ"\¢Ù ½Ø4?ªŸædþëÎ{ìÍ‘ÌR¿Õ¿ÏâK?uñWÆ•>z¹uA?0,QcÅ(Qiäªýh.)_éå½Þ6ÉfÌÒ‹ù”´Ö®æTr¡Ä5™Zö@”Üûº/¬ô½ü£Ÿ6ÓOýý×ßüÏ÷íïÇw\j©¿nçjÏ?>û@Û}U4Æ@Óg5K¯k›3o–HýX¸i©LÞ—ÖýçTO–v4/ %1hd*Ñ÷¶í=Õ—2ì”êöý¶W¬ÕíAp+ÈúÝUûU¸õ·«ÚׯÚÛþM¡ÍÅ 3;³gвýHúÒÌã—­:ëvºëyÓ×oÚ­µvH6oÍ¥¦Vl>Oîqrß]m–¾æóÿ÷oÿûó/¿ÈýüÇÚ¿ýçjöÏ9‹gðO\?­ª¬×|ÕÏ¿úÃñ©à»>ø§þï<åbA(âƒ7ÓA¢qÇ«¶"KçhfœÚ辎‚,=Ž<°ÝÅ8íÕ&ÿÛ#&ïd“†Ç™êT‡f¡ž¦?®¥Ä¨[Úq¿pÚðj8õö¿øáøÌÇ ×Šùp¬a6[ô`®ýÄIV‘2Ìýó#Çʬý¬örí'×} ‘˜sO‘§ÌYÍK+¥µjã-—8ãcÏ`/÷í/£Ý¿q×voõ®ž}‡¿z£ctN [ñüMaj£˜SYL·ÖÏ;vŠ'‡Ù¦`o·fÅ÷F2Ï*Eײ¥[©eg¶~þÂU~gûBý]ê×/¯½§nh®È){,Z-œ™#”F©Éß“ŽyÞ­é$¸H sòS0ëž½ìº4ñògÓöךL^ä2)ÕÇ^‰_îÖÎxãžýÑO½«sßç©ÞèßËô6ð–b¥Œ´ú`eöX†Ýší´—œO\V*£KÝÙär/äÕ 6û‰’ƒ‰ Îæ¿tëYÿ¾\‹—ºøCuøÔËy˜õ-¡š‰(j2Æ#FŒ öC›‰ÙÁg5Xý´úÛ>¿ªM~gÎc¶ja/­Åa>cšê´ê ü˜²ýâwýûùõ_¿È¿­k_?ýx)Ïïãí\– ¥~ô_*·àÇ×BÉct$n´c1³µ“mw1ú|æÜÃÉ¢‡™w›9ù¶QßË«ŒX]öà°e“ïïµ|öÛßÈ…ùºÌCúÚäÙ×nGsŒëJ”·Žî§Øq1wÿò2_{ÛÞ›£´ÄlŽj5AÌhÙ\‡/àÒ¬~ø÷}®ý##áÛû4wŒƒ—OÑo? ÊIXòÐg3É5Í®5´(%5µW­­ÔŒ¥dª~¼î ‡|ÀÇ9¯¬Í7áäA'±ɖèYw Á§ë@¾¿Çωa'S¨»?öèŽAð½< ;†ÂCSùÕÑ`>JV«jsà¹kà¬}דoQo3_ ‘ùö¤ sMµæêCLxíê nýDð¨tVs”cn6é èt@¼¾NŸÆDt'iôÜ’/ƒ­Zgˆä.Ìv›¶çkc‚(Þ¶/m‹”šãò œCë{Çí;"4­H6“?ªylßåf®ÝLTPš6–mï,ö7ÕxG¾ºïò¨“ÿùó—?þüõ×õGäëÁ7øeƒ(þD?1ÿô×0¢«[1/ÜćOŸþÇÇïýàŸ¿Û ¸Y$Šú ­”%ɤ؜Ãübbffk`›–Ô<ȦzûplœâÞL‡:ØùL†MùÒBö¨DsÕY†‡ÓeÅiR8®’‡HŒºJI9ç¤re¿Íõjç{\¯+5„ÏþUç/ñ»nøñmC.­HÓ™xPݾ}bOS]iêÇ ×£ÂMû[1ª^¼®ÿªõKql’‰ø“}´6ÌúûŠmzJ¦WLêÍhsÝì÷®j{l9Ò­‘ôånÑwHØù²qtÏNÉóa4ë0¿ksŠml-}/ªyÑl%Eê-¼reJ1Üö¸Çò˜­¹eò¥G ‰ƒêÐd”ZÃÖ,ÒpáÛ£U~y=^áÏQòÕ#þÂnkôý©fèS*½EŸ•§¼n™úOµŸºóÃÈò4•“uD³RbÓ M2Ï.ªéh¥œóín¢ ;[ßa }Ú¸ù²±tç~Îóá$dR%°Ç©«¥JÙ RÉsÞ¶¹ ¯N¾¥¹ž¼û®«éî©iò³N¦¯€âÔKN³‹6”}ÅOy|8Ý®øË#êUÕþ4¨F²ß—WÌbZˆÍÅ3«Sl6öIë~å r§œNÎÄšZã\\²X#«2óÛÆ4Ç{Øà¦7í•Óck3/þþœÆÏÿþû -ÜÎû °Ï‹þFÎ_å“­r«²ÍT©è¢Òm®\EÄzUÛg®|”˜÷ Ÿº½n˜}ª©7lŸüMœÁN‚±õ¶: ¶Œ®½=>žÕíÖ"à € ¸ùÁ *8@$Ð,O‚åI°< ý<¡Ÿã®$ЬP‚J°B V(Á %X!Ïh)Á"%X¤‹”`‘,R‚Eòüà&ä'¨àdÀí«V­­XÁjmí € h#4a„z~PÁ È {"?8A( ƒš-Eý#?¨àdÀ=œ ‚ęQÿÈ/ÈNPÁ È yyÀ È fÕQçÈ*8@$ÐT ê\QoŠzSÔ›¢Þõ†<à € hóê ùA Üÿ NP@ Ü‚<à ›q nB~p‚ò‘¾zÈÀ}Ü'RtàÞÚt Mîpà‘ È [œ ‚f½ñíȳu+èÏ‚þ,èÏ‚þŒô…tp€nEº \Œü|”Ã(‡q'Œ;A (GÊ"”Oh;\ƒ nA:8A=®×àVó‘­f",@DÿŒèŸHq.@ë?NŽi£Ãi-Ñâ-Ñš(ÿÊÈh6?Âæ£4p:­Ó9É© mñüKßÉ y¸¤€tp³Ër1¾ËרMPÁ.íÞMúÅÔÓíùœÖä>êLÚƒÉИվ4·bfQèfMJ“t%Fã{¼Šû$°Þø…ÜgÅâI E L5-#h6Sm¢i 9ÁFÙçªm?¦ÚößTµÍ/T›þ U[ùLµ1üüîgÚmCµ-PÁq\C» Hà‚v3+Šrí&ÏÜz¦ãÌîyNp)”šœ EŽüPgàsçÇ‹z¯øRÁÍ ½šÍôOªm:N2Hà†j[à„vSAZOÚÀ¡_ê8:HPPm œ €_k:óXP24´›€ ¸¡×&¨ @»1¸ ×&¸¡Ñ8éIÇ-èµ ¨6œ‡^7ôÚõÐkà‚^›à‚^›Ï´)‡R¸¡×¨ÐkãÐnù¡Ú&ôšÚM¡×ÀÕ& ÙäÒn”+:ŽAÚAºCÇÚmC­u®ã&ôš>Ónt\û]+Pý¥ã¤õ¤ÝÜÐk œÐkzzm€þÐq?tÜc:îÐnêlñÛë¸6A]o¯ã( ?Óq‡vSpÜ¡ãí&Ç5T›€üLÇÚMí¶¡¶@…^Ï´Û†R[ú¤ãíÆú¤Ý&¨÷è8èµùL»1HWtJm­'g3&ÊD:È z ËšìNwò¤Ý&h åÚ×à†j“tÆ“Ž#pCµÉt½Æ¡Úí¦Ðk‡v£gÚÁÕ6ôI»Ñ×ÚMž´ zíFOÚm@µ ¨6…jPm‹ž´CµíC©=Ónª—µCµÚíaÕ–M”œmÛjCÈEúªY­"¥ÌÚfðxªÜüƒ*íµ8µ÷=ßáž½Ø{ôî¥÷zÙìº9îÕ÷<<¦Oèîóçíûäòã½Þ÷Vˆ?Þëýx¯÷ã½Þ÷z?Þëýx¯÷Cþx¯÷ã½Þ÷zÿÞëµpr©ï«K…‹yCÓO´ù?ö®¦W²·þ•dö H¢DJ‹,‚A²ÈÇböI”cÆí ŸÃzýÜýúÝú¸õÊ€ 6ìn»ß­ºxŽH‘œOØb€M6F¶|á¥îîm§õnUm_³z>;y€ƒ ŽU?’[·uF)1É3«÷hÍöÌê=³zϬÞ3«÷Ìê=³zO÷Ìê=³zϬÞï#«G{šM$PËœgPPÊ"ÓúHI§VNú@J Ô®ã´ŸÕ{ü]è½ÜÞ q—Ò{ÃOï\²ÆÄ<ÄSà uHˆ§”è™Þ{´T|¦÷žé½gzï™Þ{¦÷žé½§0|¦÷žé½gzï÷ÞCÝéèè¤8·@>4cèZHrеr§" ymÀì}š(mgøÐn_“|0Uj5ëZÙdìöµ’€‚À1žI¾G+·g’ï™ä{&ùžI¾g’ï™ä{j¹g’ï™ä{&ù~I¾"´ÝeÚx¨KQƒØÀø ªFM«$ˆµ!-°/U\œå¸$ß}þéÇñ·¹62ìƒs¾~›{ôæ|÷ì—<ŸSëjk[ŒÑöԚ͋5M¯6îp„¥Ùy®ìŒíäB }…ðäSX–AFjl”ç`¨6vËÊÌ{tÎùæõnžóý“_†ë9›lg“ôlœ‹ Èzãµ3µ%³–˜·6@“ŒÜX44BQl€Ü}¶]#]`I*w„Ç#/·žŽk+¥W°!U9RäŒÕS†}cj6¥ªBøØë"6¼Û™‡ð ~)µR¤êð@,kRÅê XeóŒÐ¸²Šw¨>ß…Æfý¦…B ¹»àcÎ!!š¦ÄÎŽh@éhi»SWð•*ö­ 6ŹÇ9cª'¸»(9Ƹ_‚·5N=L&Í|É9võ๥/ÅD;‹Àýe×’«Ò'Oǹᗳɤ:X8x+Æ:)¿µáo¿×Q³4nÂÛt¸ì|‘ÐR°qÎÛ a›u­ãbx ;ƒ[]ò X^AH‰-Ì–m Op<Ö=úB‡‡—‹L}?½*Ñ`TFˆ=21_{ †ŠÍj)ल=û¬Î)åRdº`ƒJxš]E‡l¶„˃"~}ÃßÌĈ·ßèž´li†„Æ“ôÈ>‡Ørò2¡ã³´LØ2ó"zÒiÚôƺBíz;“œšêhUñ­6oä½–XX[¤×õŒÁÕ¬BßÌÀ¼ƒ]|þË¢†ÊA\a¥›ËQR²l•Ì â°8¹T2þÔöºú:K‚µ¤ž´ˆ%®žÅR)Öдê <úáó«Î¶òÁ¢téé§ÝЬ ¢ÌþÜk.},}x«§æ¬i,Z8ÚÙÎv6'oÅszn„úY=ôd(s(+¹Û.íºþØýðLÜ\»Þ6â·Ùbl6wL‹ÕÙ;š’j‰Ýq³U€ª€?–ÂúaZõ,ÔdáÛAƒ%Ù>ѱ>Y6 BªRFåœjçÐó)ïlü›;P·ž5ûùø™Ð¹ n ÇY€§dDù’¸ô)dü"“)ÍUô¼0ô;+C ‰G¸¨·€GP®%à¿jOùðþáXúp"¾Š¡.PžÊìcoeL-M |½êuäHk"·3Ê«´0’6î^„ø¼fÄô(*‚PäRŠNWº9ÜŠ¡ßšª}ÿÝ>OKê´¦Þí¢PtY˜’ŸXéî8D¥ÈËCè%“”íóÓ„MÜmDÄ à¼dal¶vW©¨ØÈÊãPu7‘»þ)'„¥ÊÂÅÙa'™zl$±k„@Ý—‡ÔÃpì¶£À”gßë9°Kášín‚¸1£Bž¥9ŽœCúæM3‚÷ý·º7Í[¾ØÑ†@ÍBvêÉ+{M1A$ cÖ€%l7N-Ø‹©Ö챪D`8“Û,mà‘\£N†À7ÏZæ¿ÿôé?ÿñÿô/ÿúïÿü÷ƒþÃbž½5`¿B‡|}IóRÕcÿîÀO,¹Ç¿½Øèÿý¿ŸuüÜ~øYWDr€ùùÆܶ/|ù‰ðÅ(®é·÷ßáÓëÏþéõc?ÙÿÉ©Ù6žxzЧڦó3A“F))*ÆíkP+«I~ôr&ü Ꭼ’v0Û©ÓéÖש€ðT'xº ÔÉS9ù)aÁ5ì´k›É@¿Qlp°ÂÅ9j2 SuÌI†àɽ•ñÞ; À{úyÝZüÕþ·›žO»è¤œC´a‰0k«š[ª5F-Ùª´|¢€Àµiù>äE4S[ÄZ°o‰¹³G´›¹¦ë•®ƒëí6{lÙ>{´ÎØSw‘6ÂÓrŽ%i‚ÈÁB–Ö§CL‹óPda+ݬîf©æY ûšg@)ú\B1ÝÆkݪo@Ö¶õ¿ÖM†Á%^ûé6€ØØ&´ÖH1ñ~¤Ý#’í •B-BrÛõÓaó‡A¢ë€~µ˜É× 番aWïÂ} õ…«^†®ó˜é.ÀBN©7vq+^Ø—RßU[†ö‡Ì»äâN?øD*).‚-ݱµû>±yÎÜΠ%Y¡57 lw¾Ù­öÁ™O ˆOO³)SÑVœ:N` Kð¡û[”´skä>ª]Ÿ3ØU »™”ñ<ê§u1ž‰˜Ê×p-ØbkÌöÇRÄ—›YÇÅ·ÏýBE†UhŸŠôƒØÕHìcy0~A^ʬÆÍÞUdrÇÙO*½‘Œ@3G@øJÖ´0—îR'X`áð ÄïÍÛCÿÞ>ò"+D$ÊÎÛ… !€ßF'³ˆl*Z´gÚ>¬¢,É3–ð/ÊuÎL­¨ÆÐ3¹–9WGŒwÃIÝ.®cKX˜ AœB ð¾A Ÿ­ë/ÀÕ^ÅËöÚAAl-!sov饈dŽ; À1!Ö…VrÃÇSµ-(`Î$@|T°âʹiσìÐÈÖ~¸/0Æ*x{g™œ|'tIHD ãà\RÃäТ—ó]ðp¶‹‡«ÉÀ$:„£—h#Ç2'Wm]‚o–`Jº ‰°³ˆ~˜@†g Ì«Õwšø?š ­DS”Õ…ÅF7q«-TcÔ/ÀèƒVl eR¦(Ð6y8(%üx~GÎ6YdÚ ¯ *6Š,Éaù ]ƒï#Ga%ä^Œ3 P>–8½9=ž?->þ' »Hé9xiÉJ-=·/ö–þm¥–¥£U_:¶a’æs¨Ù·œTÀ 4X¼T™z8âdÒ•½î,jÉÇ©Å'Ÿƒ=(‘í 1DpÔaµÚ‘áÈ “Ö¾lŸr»ð!>ûX‚kÅŠô5ÇéØî!ÖÞ%¯”öƒ—2«sÑr#¸XÜvLéÜKì9URïË„ghnΑ¯sä†pB­ ÃGѬ3°rœmoƒJÚ9LfV|0¨»nJ\›‹d&2:Ï6Æu‰¼3¡òpêu.`®& ˜ñŃ õ˜K\Ò¤^úÐ4jno×UÌÈvN\]Ì4#–wŸ"%+Imäâ³mžµÎÇŸ"_fæ£èØ:rz Ðî’ j[S«3ø¢0sÓàJ^CŽì2,“K-‰Sžxt·vPd ,ÈZx@ÆDÒýªÜ(S¡jÝ‹'5?h•Jîl§ $k¹Ñ_Fýñ§Ïÿ·Z7ì_Qr®ìÏ—×Ìø*cûõS?þüŸ^>åS¸„–}÷ŒÓÒë,Í•ÐT¥ lôEK ‘(ÅaM… X‚Ï™¬=Qó?TñVÀÅX†^Nl¬]M9õ4=5T9uq<µfާf §îÖãÂ:íFxXLŸpµ}ÒÙ*Öª¤ž…”ÂLà{¹²Ó^«·™˜ø2”ž3Ÿ¬ûZ–Bç­‰÷¯‹BW¯‰÷öß’56ÅÁðô5YŸ±—Þsxzäš$Ö·M¼gž°eêžZbÀ¾¬·ôSV„TJ`,×¼wðû¾6å`ô?ÙßLd{T†]ñ _eµ«¨¥Ø%}(Ö‡®sFpãmb<”T倕žÖ¥µi²þ/ÝGoG~£¹IsU3_½÷+òz¯ÈäÍ1§'ØWȃ”6Ô.Ã:ˆ º‰Ö‡"ÏKòÛ#S sxlTX QƒÌŒm3–©Y/j(4ºî:À;ä-Ô] ¾/DgçQšEöF5‰uÀƒéH åA ¿ÂoÝ`}ä‚{gIÃmŠÔš‡Ê†Œ°K«¡åêÞ`‚ÃOeÄ ~%Ów5æ= ¯Y˜W$r1Ÿ4€•ÈDnxü½YÒ9~»%_O¼Z•YÉú€õV‹o¼ƒK™±qYÞæÃv°4Q8­-1AI@µVˆý æx% –9_×ÉäëKýðs›Á'Âa~}΋[Ë$ðtøµØä_±kÚG—®’m.¶É‘¶å–"NÎë"•êÕ:wOn#œJÑðÔ9‹^|¿þ2æòú¦·ò•¯Ï9¹ïu ÛÑ/·imi)õ2:¸ å™4½ÄDÖ¡$õI´rí÷ýPn²î¼EÓ#|—Êv)xŽÅÍ$L-&VkO¥ µA6 #öb½ì§¿¸YáE€i¬ûï¥Qñ;¶Òë¾G‘ì›ï½E~:ÉõåÍÄït†Äb*„£7f>œÏÉu®Éûn6á Ñ˜´2ñ8V±îÅ×Zí‹#_iµG¶š[ØÉC.òLðàÖ DJž6†bÆžjÅVpÝLɯ¯òcýa­"ýÞÂ>úñõA/^ŒØ¥V N§9œ~`û,>6/Õ’¤XYº‚êw¤Æ9Á²3ø›ZBžÅÊ¥9ëË v¨O \ò¾,â×w½•F|ó 'Ž}gS6¡& ãú0Xf!T–ŒF‰vJô—š»Uuº‹z°°:SÕ†ˆFu´& ãÞ*¿õâe>|QhüÞ…¹a›lŽÙ§MÊ (æH}L©-º°nÛ…C—æÄwëg%6C¥ilSã€Ô×èØç¦÷=ÔØðàëLöJ'¸Í`#¬A ©ëdñPjÁ öL^v`Þ)øŠEZ¨ Ì4û¨­±µž–a#‚H'´Ôã•UIËüB±áÆ—ÆÆw›1´i’bUò ±–‹åmCæ––Å;,Ìvâ XÑL’ØðwÃF%4 MŠOÁ'§RôæÛÏѺ”TlxóÕ–{uèÄ0’iV0¤b5ºÞ@¸†wäXBÜឥLGÍf•Ù À§³]bb¦x+¯øå¯ã/9=a<*áòíW8„g¼àáFÁf|œ ü2`Ó¶ 5â¤w^LZîuñLL¥@V;×Îiž²”%5ɳÃÙ}¶b‚IÖe_Ê7Þ½ó­¼cá/‰Læí2”ÝkUšxY» ¿LKF,{M®<ÅôY¸Åo|ꉃ‡±{·µÇ ^}gÿPr†«_[×<}êtPÑ*øgo4=ôu¨šÜà@£–åEÚc% ç5‰Š¡s %Ìœ·€‹=¯!Â-÷­9ÃÏo³à7‡CÄn=ãÈÖ§×{J’‚ýV,¸}nÊãG Ig¬y²MýBà°Ô|ë>G,KI½\yË`ÛÍ@VÎpöKCïš¿ç‘ût8µ1jÓJþ]­Š&/®VÊ;‡«,VTN}42(Ë´š‹àZçŽØQá„;ú8zߎ·S˜5¯×¨Æû†Mël3Bš“ Ç Á™aɺbÇís%.m´@!¦Á‚bK‡ b%ÍÀÿ…’ ·ÖŽüm|þóõóƒHÌ—O?„¿¼yÖ‹ƒW›í¡—üL6?I@§3VÇ;Îꈗ®d{aÀÈK³…nl]ÐÍ—”Z…‚ÊÅ’aÓß¹RäÛ·½•´¼}ÖÉ¥¯´Üöi¿×Ô‚ž²vªØleýò®-IŽ[Ç®¨$ø^Â|Ì Î(lÉ[7nĬ~X-«U•YÏVëã*lvW5“™ €I•WÊ\sÆÂ³@~"Òïjª\è»tì›Éó•²Þ {À ƒÊN¹'èZgKXU'q©‹¼õÊß>Ýž´MÞLšãeÚ¬zñ³ØÑÃ’­,jµ¬QVÅ® Ìr'5ty,Ñ®4ÿ‹ä²Lß«D7ÄZÕª^‡–ÓœÅlÇ12\'ɱßfϵ°¡—«EÛ`˜­@4“Ë>阭p‚5jáãå­W/RïydC¸¤Þå…ÁÂ%gs€Ôê$Ðj#¶ÚÙ…½‹ÂnÅ£ º ÉÖÝÉÂñ¬¬.[ ×JmÂw1ì]É¿þܯÓ>¼c¤ô.Ï‚oýWßuk7<¬®ëôÑF½I·ž\xäÙdÐÊy¶ B_R}Žh…·<‘÷¬zï9·h¥Œº¼œâ&À‡4óʯ*°C©ÛF3TØä-†øXæ‚×t?Õ¦oLvÓ ›T¿Aœ½wf 9ƒ~®¸\lmò¤Ò5]#:®¸ 1…±C#el° fm÷¨ö"ÒØ¹˜SeP*šeXQíðúClûsƒï…=;ô¿‚ÎÉÛ€ˆ:„JVƒ²e[dL`<òÜ$jîÊzc®=vµz®AsQ8QB FO+^¢—”&t÷[‘ÿ}Qh‡ w€Ñ9\vL;'é~f+Ù=•’†J©¥ØÜòåeøbežƒ¶^9ÃYbUž`4Ǥb›¶1[‚¢Ë­7¹”Yñ'âÐ1õÒÃ0tzùÁÍRûn¹/8¯|%s·%q‚YúV>Ùt-ÕŠ'I!zuA§Õ7×Þ뱌Xõ zX¼êcuÃÎÉÿ^ ´Mü[1èŒöÒšÈh ÝšáÿX>PÓ¿‰yˆß¡ý•7«3*£|‚Têˆd·Sœ¶cè äsèîÁ“´ç´_ÚæÀtÆ„dÕœàŸ9+ö[‰Zœ¥b5{S m3!_©À›`hv^µ=$F•l;*Bš [Rò7rnæÇNã¯ùýSÿŽ—Ýõqô9¹úÀnTgêÝ;<#ŽLHà³å¹#hËMÎ]©#EœàÃÃÁ…ípçjôv¾,Õõ…]ƒï%ƒŸ€Ÿ×Ô/ôÙ¤ý­àsJz*AîÝó§c«  ÚXsÂÛ¤-ÑeÅÛ}¢ì?-pšÙu*SËÇ䕦ŒNª®'  ×¤_ðÙdÀØsÊ7 5MšÝ(¼p–€Û7¸Ifœîð Ä+kúŽd«[K˶XÙOæmu‘‚ÏsŒÖòã>ðñM®•zúÙœøVòç9~œŽrðÌ.VÑI)ÀwÒF³MËR<Wðl·¢³¬Þ•\cabÐušÊ§¦`?|ÆŒ²ä¹0·êL¹?¶Ïòým.ú©Àô­6Ïðt:Ä¡ôÉ*"¤8‡ Ç+«Tž5gèNŸ6Y‘J¹¬›;àh2å=àøe˜JÎ{Ÿ¢%‰…³¶@î¦"g먣Àÿ ÌÀÖA5Ž/£M†ób̼·Žúù·O_>}½PÎçõv‚o—Y÷­÷ê¹W…õå†t>X·6êm%VO/=ó`3Uµ¸‹[*t/×YB ¡Z.·­| À¢k%!1;Ã"K:$bÔ&1¥Ü̬!´£Y©=XGõ„è§y+ßæ«ŠÖ6Éo)uFqK™ Ï-y’Ê}Ÿíض…ÏZè}Š—ËI¢\ }v¥Þ›- eß$»»ÇLÔ >ùØöâ¿î¤øFúÃ7$ú·uÛt¿±ôÜéi`…•Y Åɬ£6i³(4ÃÈ‘iŸôéJÞÂäY‹·-ÞñZÊËqгD·lJ ý¦ó%gȤ¹G²ðj…Ü–Ú ¸2S´|šÜöé·¡_ôë¿ÿøë·pø¯/å/_ÿ[ÿþ[¿üÏî9Ûð!½ìgÙ®°ñ{ÿÕw±.=Èa q°‹?†[qìÆm·Ì­k3ºj¬À÷’Høïf`õ•à¼à_Ç d›×oYp|ô°ï¼X:ô‡jªÞRåD\\íð{h}‹C>6Â84ª‡l¶W.ÖŽn-³)lÓÔ “ÚÐ(f-›ÕÒëXÎ`Œå ¡x.ò®K±r&ÑC,ÕôŸàIWoåà•žaë 1ÌÇk[¾À—†í³þ»–ð Àj:Ï-¶ä÷|Ü"‹?‚ø›‹¢ù]’x¼ß*ˆsB|†•g‚%ï£U’©^œ—ÞýÈpšÿs‘Z¾v²©Zò^`ô`%ø?5W×·îÓ­¤É6%Éc{Q·â™n{sY|Ñow‰ãmZïV‰t¾ƒU!SˆD­î ½Èµõö$‘¡º+‹‚ÒJsmdf‹­-y8¿„×h…Fª-ñXEQh¡Q-F)øׯVé2a&b®qO½ÿÉŸ?~þã_»{ªîCH¯-²ô!^’Ùº¯®;šüŸ{¬ûÁ:~´oÒÚ’Z˜b°åÚ>†$£ÚÙ¯@A[J‘+)¾äzù4ÙØ®F;ÂÒš•³QnäQ¬ˆƒ[×ì`ñ}–~¤ÝJ#z†FtÀȹ¯Ò…´Àϵ„ Áa‘>}F‰üe!L¥œÚ˜V]¨‹K„.j°/cõÕhÙ~ gϤóGíþÆÂiº}W6oÐ㛢 ¼ °zàûsŸ9Õn+غwÅ; ?×ÌäÚk)Ð(´Ãš+ 6R€Š¦1,‰d†Y;vç§¶2+tX·;¹Æš?õ¯½³éï€`v÷çìÇQ¶lÎdé,[Ew:jMîxvdëv˜.;{)“ù+.Ö‘ªØ‰ ®{©,æÆôéÞd¾¼fÊ{#ØKîG°ŽP´6oâ…º(kIiDuÑëÎ4ÉW¢&Y”X£¥ÒX«3Á£,#ÂúK€Ëš×œ;¼x#¿Á6øò‚²ÆC£Ä™H]Íp+¹´BÑùç`ìL–++#VL3T; Épù Ëú´DçeØa!® ÆDé«þþBCü~.|½„'=ƒ]§C(æžc<§œÄκީ bï›÷¼uÊ×Õp¥Ö…ƒ[ßag0×ö$›ÕEe?MÍÃä®­{0ú±8=n¼#nmòâ.Ð:c;«¤2¸ Ê6¼ÀšTŠ3r•*e›†ì•ý%¶8áÞXÀA˜ªPî®X*¬)Ѳ7A³øì;ó²ÇŠw¬M†Ü‹Vg< –Îv©ùðZÔ$µÃ§'‹XM–kszÄš®ä¼Ò¹Š5Ž’gçà‹# WlCa7Xå5¢8ùÁ<Àgïsyqý8s\í}þœ u(0…9“R÷k¹Z%V«3æ,ZýV:­€™uyå8ôdÄÑàŒÎW `2À¦°%ÊÞ<ÓðXiª³wº°€ü@v\~ÎNÆ9X1Áj &¬‚6€@3ê}@P‰q›5ÐW¶—k‘ G>—œ¥ÁiaËd 5?²s±åîÌëÏša—¢h®ª?>£éOF8¤:¹T¸G†m\|#7²zJrsn-ìÛáÈ+•”fœ³fÉ 1šžºÌl§P*Ç4JˆEÚ³Žã…ˆÚŸ:=¶q×¼8åô§ÍMhdK骖ʥÔ,“R›;|¸ZÑ“0½:,ë*êºH/dù[zª¼»*ÙâÆ½:ä”!ÔÈ'é’Õª`9GC‚N¥êXÓþĸ’ë¢Üÿ Ã-{çuФ¡™|Ì¥ÔZÈ5Ïö¬||_«á_=Û0çT¿cà½x)¶vh%ø‚Ö<«Ï7|K‰<üËëÃÒr2ÏÝÒÛIDçs„Ã8+ Gtj üX2äÓWúUêýÕÝŸG±Såî´Açæ¤½èVáLò°\R^¦Ùä‹oõJFö9¨¨#…3 ¯Ðe‰ßY§o˜QIÅ?vÕ|k))[%„Gk ¶24,Ë ³»°Wü×Þ¶KûÝíéôÚú¸¸uÝî`]?Úèǽý[ót~¿ø¸£ßW`ÀväˆàKN9UXQŽbŒ.Œ¾…q)x8#—-± tóº%²’àìh_ډǢڹUçú^a¿}¥o¡Sî‰It/uÙ%8t3×P-e])½jqñ…85•j Ñxl%Äó1Ày¾âAx›/bÎæÝ2¾öf…E{b5?ìyÿµ³çô¶ù(ÛòxŠü Ž<eŸðâ¦ZaµžУYY i}Wóª©|9<ЊfºY²S*–YsSf­4gÂ};Xpg.é+âøš@¯¥ñÚ¼#P/ûЪæî93 ®<„‡©´'Œ!À¨¸ZÁwø€¹êAb†VíØ ~ZÀ`j,Íé¬úðvè_ûÛm÷ÊãEj·>Î~³µñšæÅ‚ta‹Åh™]ßÓ )<ZV„-lÑ<…èZ’Eõ‘­|Tjݪ»$˜/Ð2¥„ÊdˆIá…ÝgªlÆ^S÷vºÆØ“H«• ä^œŽ=UöõÓgý¿?¾èžc oî_ŸW»Ì-ëÞ¿Áíõ·{V÷ëë¾Ò›ÞÛ?ް®=x8™ÓI–==†’ ~<ùm{(ƒïgñê¶î)[€w|ôvþ#Ûwõ¾Go9òãèHáñ‹…Vø~¥c÷¾Xȳe–õd±Fü d­ÅÙgüÀÅÛ˜‘„ð?Y|C,+°¨P´/­;¾¥ÕËv¸e?}°Z{èa÷÷xÂhNJÀ(„0•­[8^¬{,P(Ö/GÜ*¬ WÜ:_­£«­«Öî”-𨠣ek犗r}4tP nj+4‰ÛñéÇ_¢ï+œiý•á {7û^» màÝTk­,0nïšvü sE@õõ÷†võdûÍ®lNÕ#ÛŠªk«­/­ÝK¬/žÏ:-É®õæìá:Ö5¶ZØ–¯V°†«}°!<8?š1”¨ëÑ­­ÃÎ.Ú[{ {û¶þÜ×G»Tì·¬¥¼†Z­Ú·²è4ÄžâÕuêºñj;·--Ðr]cß6äúâA›Ýb³Œ¢Àd= ¬o|”ˆi‹K–p ïo«bu?Ǫþ‰·7ŠX»‚ÑìS]-\ëµZYm_-¯¶­¶Z[£±ku^­¬¶¯–WÛV[W«²z®V¬Õh2´º­¶®vöÕyµcµ²Ú¾Z>þ•×÷ÖâÝæú4ëúËj‡µÍžn ÎX­…hµ¼Ú¶ÚºÚ©ÖêjÇjeµõØŽÕGVk§eíë3¯¶­v®P=]­ÃöVË«m«ÿÏÞ™è¸r#Yô‹dp_¾Æà:nÀKcÜÓÀüýܸ)UÕS)S*=½v÷€0p-½b¦$.Á8 &£ð¯¢Ò÷ ßNLû𷍙PUöʰý¥cjö¹™hd_cûMÚ"DÒ‘¨rfžæx•9hyp‘ôÅj°eM>4þ2^EmÔJ-ÔLMÔYy=µSµR 5SgaIj§6j¥j¦&êÌ,OíÔ&Zš”æO¬„Nm¢[§2üµw¾¦–6ÄŒáã]o+ù¢Ø¤C[|1^@m¢2zÄð ~– 6jÍÛHg*|'~1–¤6j¥­š³kÚ*´WçOél5ù×Äfë$]¶Ë+üy”v#³GSg§ ¥vj£Vj¡fj¢ÊnhiVèhv,-ÚÅ„ðmÚ ÑÔF­ÔLM¢³pBè“-]ež¥­üì°ƒÚ©M4±¦x#ÑÒÙ´xÕ8 å•LQèPr»ASÆ‹©•Z¨™%:»VeUé@2 ð}¥jžÛ$+%&ÇJeõ@k š§Iå°“;ZeGciщ ÝŒ¥ESóRUâeºüLÑÿ cŽw¡ÊIb²üòºÂ»SkÙL!ïLMÔ™yÑ> ½ÍÎsl§J¬IçÌzâݨ™š¨“V[GÀt+.FÞ¦Àš‚&ŠI^µ‚ ´óŒèF­ÔíÔèLMÔÞånU qg j¢ÎÆÏ£ö¶Í,CÍÔD•%©ÚD97òm¢ÎÂbÔNmÔZø•Yyò;º"ç·hÛgfþ™šDÛŒ2âxyâo—'Ñù~N:#ÔNmÔJ-ÔLMÔÉ'ܵSµR·çßóöýÕÕ”·º;s«¾ÔÁQ&ïz®Àÿî%$útø#foÉÓ6ƨ¶Ú8z(Î[¥œ–3Å»Ù;üñ׿ÕÿúýßÐ-ÿgùs7·‘ã4õ‡@œ3[ZèýS©?\Ââ;g’|ûN—ëNrÅÏò)Lrt—SœÎ‚Y:Œ6eN}ò0_ªúd}6·Nó”HÞq~)“{·_[Êì¶O&áÎÆƒJ9IúŠ.÷T`ôv³\ŸþCZE6»Þo”v¼¶ÉpJéUŒ°LÀº+9Ê}‹·7ÛÄ*s¼´¡œ ͤnB0%ö0¸`AæQOr‡0_Ø&7×ÿ!Ír^?¹ß2-¢6Ž%f´CÊZÅ`² Un,Óœ·L2Ç)R ¡ve¼î˜XœnÖEÔ’\‰M\n§Âs Ù®~ϽüÿÂ&º$/xMCݸÛÉ]"jO\guî®è†é&Éuãê­üyÉ»;'gWø§ ŽA€“§©¾ÉâA>õ8Å'ëŸÌvtõ£“!ü«ŒÜ%™Á LÝ[*¼B™“}rÅm½¸¿ÅÖØ0°l‹·)ÆpÜH˜l\‚õ€ ›0PMžhI;Û ZK=w üÕ:N~ô/s.éZ^á&ܸ×i‚† 碄q¦ÍÚ®l ¹O«$aä§vÒêøÌ7§qàò¬‘à— @h„³d`tM—û“›¨ŽÚé¯L»­ôõÁô²FRéx~ª#¸Ñ‚dˆ­»Ù0íE#åfŒ ªlL?ñòFúkç§Ý¦zj~ºÕZJçT`¦Àª~Y5#ùè1¼Ùùx»µòÌ»p*f!Éb¢ášXÙ]×”éÕ%T¶CûZÌsù­®ÔíßÀðýÑ^eö®ïtòjze…A¾¶iÓ¦¬„[;šËÓµ~#©eÌw2‰ooÆd: l×qÆ 'ÒGÛG©µa¤Õçò)í·Ð_fòn·ÏïEÍs'Ý•ÄÁEiÊjeS^ ±è(qÉJ>vÁ½Æwxož¿ØØÝn¤çLÝ‹ÚIçcCßpJ²šhL.ERÂŒhU ±eÓ}FcìCLûiÙÈÑ`‡sœÙI°³ëb%Q¾1 hN{ËFþïŸÿ¿ý£ü}Ç.ªŸÂ‡ö ê¸=/¥YrǾ}â ¥ORîg¹íCöïóµ§Pk-Êu/ÙßPTµ¬$¹3mò.—[I‡’ŽwRÙÚ09û”Òhu&íK…‹Ò{²9Ȳì²ðÏåùûTïßZ»—V»Ø¸½ZÀªÝ¨tSC‘í i–: æöÑt†‹ÃìUºä)w2Àjçì3+;ÄÙnã#¢²CD%Õ‹êí5µþɈ½´âϦk¯î3V7ªßi¯aïƒöAÅ.ûL¦­N:{´ÆyÔç×BCJõ­MŠ€PÉNŽA5ñ¾§áLq¡÷ì)Õ†°qBɦ„j»éÊaðWõ€çÿyæãY¨žÎk4·KMG·ò­íMk{ÓÚÞ´¶7­íMk{ÓÚÞ´¶7­íMk{ÓÚÞô—ooŠw–{Ñg‡mDgŠ>ô8›óx:¹©‡¢ç¾³Ü{„]¿\°ë!êúåB]ÏB×/réiÎ *V5`î‘tæ:΢Ð"ðwbÈÓ}b®ú=Ìõ•‹¿›¹ÈVÿnÔU/Ô£iiH, Éu7êꤟy¡®ù-uez¼“ò…ºH)âT™wÚjçÿ7ê¤.¸hgêêßPׯs¤Õ¨õ¬òY3oD÷‘º&¿EÞ&"RW.¨«¿QWšïÔU F{Õ7êJ‚D›_–.TÅKçu}$Á,ÅI]C¨K&¯ó(GºþF]“ÔEž#uÉ÷B]ýB]ƒ_%‹f¡®ræ<~#RW¡ƒ:I]ƒ„ÕÏÔEúƒj.¶±×8"0ÎQcs³¹G`{ÍöF`B]Ä/1Ÿæ+–ÞÙ‹5Ëë8…¦üF`âÂ&BØÜºÏSV6%uåþF`s›Iy¯ –>°WjïìÕ?ØÆ^ãB]Ä/iù3uu’VûÀ^ùÀΨÁ›©«Eê…ºˆ_²Œ¡ÏÆQñN]…Ô•©$0RW'u%²Ø$W½ŠÀ6öJßK`›ãºý6þëLo¶ujzacóÅÈ[cc¯3uå¶Q×¼PW!u%Ú¬¹ñÕu‘¿¾a¯™¯ lc¯rŸÀh«²¼¢}ëä­F­oÔEþ"u‘¿ðC.Ô•¶5…¼­xT¨_$0Rù z¦.âZô½f½&°½Êm#u‘¿Peê"¡/Ôµaä ]õ|›À„½ ÙK*í½’=ã2?ôºÈ_¨EÂÈ'ÛØkX?[_ÖÞ;{•3u‘¾0xŸ¶±Wù@]“ÔÕߨ«º2õq±oëuÍ7êêoÔEþB­ÈÇpz%ií˜ÌN*ñ= ,g ËmÛ&CN½$°&ìUùþ“EBÙ¹«Ï–…¡&Y‹ œd/ØöJ|¿X?³W‘ÿÓ#ž¤«ÀÚ}“s0—·Ç¿¿'ÓÆ÷‡V¹jɡնu4Ѽ È"] ÓèØèêÀ†ðl"Ä d jÞ!°ö5ÛVYì>m7ýÈ^ž©/_Xöêd-XöÊ|ÿÿˆÀ²ô´NÆ:$°ÌÅ»M`·ØË†p¼¿0Z“\ôu(eBCoNÞË2,~\o.ˆ×$¹ÏÊoôÊ0ÚN~£Q´•ßhÑVmÑVmÑô ¢­ Ú ¢­ Ú ¢­ Ú@MßÙ”o•WÙ`¾@ï÷5+—•ô°PU`¿¸0wžAz6ˆö‰¹®ch_E®-„æ³.ÃHGQÖ„4c0Q p˜™°|m…ÐVm…ÐVm…ÐVm…ÐVm…ÐVm…ÐVíG„ÐÀPÇú¤šqÓ$éŒ&¹dÐÙRôséȘ Œj<ù8ôCyŽ^EÛÏsô!¶ò­Xš^±´K[±´K[±´KÓ+–¶bi+–¶biÿ±´¬ÌXZ¬ì0Sr¸OŒÝ$ŸSŽõV ÀΘL·sÞì³±´[äuN{¼¶ˆÚh¡•BŠvx[F²m„ R…?Z^¥­ˆÚЍ­ˆÚЍ­ˆÚЍ­ˆÚЍéQ[µQû5ãâñ¡¶{—ƒK±‡aäK ˜\x9"²%9u2Zÿ\¾#¯ ¬â°¾Á}Whô(¬‚‰Ç`Ô÷…üãïã¿ËΉù§ ÁåŸL¼p ß;™„w’¢?ËÝORòáSIÞ/æu§Šê«-Ø×˜?D¹âSMQ眒ÇÛnœßé]pQÝ9NíïÓˆÓÎP“œƒo¦·ɘÅ1B#rç Âý: ê 'ð7UÔVE_­ ˜8Ë Ë\ j^•½S&:¸§1tQvŒ[yk<üì i€x+;T4S«ÁŒž]oQ¡wƒWpü¹}¿éß>ZùÚþ(›|w»ã|¯{c™<ï{ ðï`±l®Þ›‘2Æ}l¹îöƘ ¦žã`¼šèÒ=¶UÑÞJ¦´P¬¾÷aSð Æ(ýÒÞø±‚>vÆ/Ô͹/ØþªšñÙVc\.Ê5&ŠØ†ín_4²Du\3<w3æPL˜‰ÈÞ,Li,~údGóp7¾¿/~Ú£ðÕîxXÙçe²[õýØêØU•[åœÔj0xœruO.)›¼ŽÐ›i«¼Î6¤ãä-:Ôa¼Ôj-Ê;㔜Æ.'|»áL°Ž‡†ÿ§y s6\ejœ’ÁNÌÙIããÄ-înügûõoã÷ìž¿®½úÐX&Ý;‘úRže÷ÎÙ:è‰ÅORðg¹ócgl}¾øÔ<üO1¸ALÞÃï‡gkš)™ÍcFò#|n3ƒú?žÍìp€|kJ‚Ÿzœpò`œ2üƒìë’øOÀå¹ÍõÎk{þÒÎ)Ö|·o>`ÍovM ¯2œ’õÔ¹P'úQuÝ·Ò]P{]3ûckn`“à‡¤ªgÐÆºa«•ˆc‚)Í»nF†ã_Û5o×ûŽr§8\sz€q‡d ZVˆgV%…ðz¯cš;çîØØkÉôÇÐTÜ% tQmÍLm˜p÷êÛ§|µcÞ˜ð^Ú7ÏÓÝn÷|lº»ÕC%K6áÙ :kÛ5fª‘t3-§fvê¾ûñ¦m3VÆf绪CÍ•äb69I (á~˜jóÅ3gïõÐÝzrßWOîÔ­ªSbì9ZYÓ,˜¸XØ'8‹ßºg@õñHQ ÒÇÉÌÒ2òXn0¦gg ²¸æìÒ÷õÓ;YwtoÝRã~gŸ½ºÉI)ð™m~Hêð {Ñ£hÓ'¼4·<ð¹=²wÇÍ1ƒ¬WÖ´ ª¸–LlÊ–KÒ=,+FDO^í¤ôzY·ýö·>Ùy¯nrR¾F;ÇH³…aG4ð7‹f„1ÇôùV……¬y.¨Š‰-yˆ\£tÅ¥9RÅàðf¶9zÐ}oÿ=ÈCüCÝ€-_ð÷8Ww8éZj…0ÕÅ̉©ÚÆP+ðþ@¿Ým1Åg®Ù)§3<¹àÜeøÄC5(¾IþîŽÏ°S=”ró\Lg?ð¨M¯˜¡ST6®}Æô0wôýçof79§2?Yû"üxÅÑBˆ|èé\ø‹Ë Ÿ.=U]UK±™àáÌ:£[+6–¤=œ®œaô­.†ÇßX¾C/f´QЮLºRÅéɦÀóq§YI»Ç²ßKóø¡ò¯ónþ€ºgÖÍÛUÿHšÍO5/û*¼žÉŽ»Û£n(@åQ†3ˆ~Xó1SË€“ãm”З3YÅÔäÉ›š xÜÛ½w€õöÜbÈÇš¿‘RóTþ%¡æíú0ƒæ§&9#À´Qóÿwm»nä8ð}ÿå%êò²¿2 $  Ø“™²_¿EûœÄ±ûb÷¹‚İÕh²T,J•³]Æ(ÍŽ‹™‘Õì€û.ÆN³e8µØõ³Åu‡ßFlĈë#ç†ä”»à©ãïßC?öä×pÐÍïŸ|RXkØMØYº]°MÎQ ¥8¿t5#øg{ù¼±+µú4ˆf€ø˜‘-5‘`#1úr×6ð¾>’…V

h4$¬©Y©‰G–Êœ¶”­SlñyÁ59äí=Òì€dÌ!a^”鑹$F®b :‚?¦›q«¯Çëüïûׯ+¼?Qþî÷¾Ÿ~Hâ-æ²g>¿ýÇù!2ÖÅ'ÛgÄ× N¡Qog:;<€Ý*ÖŒÆ+'Z°D Ù+´/9;$ B°y`©Àà+y°¯ŒY#ñÁ•Ókû;–v^Þß~±Õ;åO§?Oy°DàŠü>Bˆ²ý?†¬æ ³f'ò¼·ùHVæ0š(;׫³*+R¤Z\cÃÐ 1\Y۱¡+ þÊåoŽÓg6߀é},~R ^A %‚^›‡ü8íûZ¤±ŠÒä·ONq`ЃPé3 ŸÈ对³ i–S Ìjp+4q¥W–ºécVzÁhS×âÈiLiøSËt©A'+k³Ž:ku0é¶•J’Ʊ؇LŸa$Ш÷ÓK±SáÖi¤|8Î]bô&º½9LÆ· ¤Þ×®ÁZAC&«ó1X" ¬õªÍ®8]+ã‹; S”~pÕŽÆ… ‘Ô„ãèjg4º5;~pAf¬·öºÂëöz,"öÖ[ÒC°º÷Ú$hÜ9eMFÖ 휈f„ž½m}PÝÌÃN¼Úqƒ©PŠÑ4}9XÚôü*[{=ï«Î Y¯×—ãœà›*rîT¼XO/Éq¦ f០Üq{ϼ³UMødh±–‡å2‘¡žÏçŠ<Ä4ßSüxÛW¨‚Ë1N &0#ò»0“já®fc…þÔØ«ö¸f±àwŽˆæ¢UçF àôÅ›½7q,vLid’Àðx•„ÝÚáyW}°àâßâ7oøw1([OëÚHm–àZq\¨Š«¡!ßQ)¬Á÷ˆ½^^Þ&`ÕSg´ÈM=x˜S 9Ú‹«†õ=ŒÔb{•fØÙ×yoå°…áÇbâ Œ§Ä1”ãÔ#§Ž>J&µês_­µÕŒýö†»`TŸ5b Ëø st±S ¸»+~sÁ»f¹W)‰0KêVÝ3b\dâ=¬!ŒD`Õçb—?¬9o'³U ¼TX({¤Í,ÍY½ŠQJÒ]Íyeòï€ùçÊÈß_¾|þö«¡WO>¼º8ÎÇœ¨Ñ˜ t…&3pl©¶™g=’k ›ˆÂN»›Þ¡‰êä@¹ ÀùÔ2Õ–ßæt¾¥Ð½K~‡ª‘¥W}´ddqŒó:C,Di{!‘fèd}¹Fâ$h%sYKÙí9¯ "‘X1ºm?2)÷ŠŒn`ºH…ÖîVš ‰ô¾û²ñ=ؽ#0®CBÂCGHçÙ4Yus¢4í$söÔê²/J*;üëØ[ÔÙ òóJÑêÌ\/”ߨz«@Z¼}™Èrë \$TÁk¯2¬K 2q‚ìÒÚÀ†9¿ÜÃËÀ§2Ýy†ª¥ª5L†˜kl É]¯^Ž­­÷ƒV×ïï}ÑpÁ>…¦˜ü*>·fÝ;þ…ìYÿ¡EòõÅmï F¯cÔÓhÕeí9i‚tDŠ"‰Ë5†hݵߥ,dÄÇMvÆñˆ˜¶îZ@ºÅÚ„ ÅOÞÅ<4.š 8ŽÛûD ­KŽ2BR† ö˜%£±UOZ}£´š‘æ•xWíÁùã?ÿ3¿üû_ÿk6ñ˜®ólibzypp-17.7.0/tests/data/11.0-update/repodata/primary.xml.gz000066400000000000000000026135331334444677500236720ustar00rootroot00000000000000‹HIIì[sÛ8–€Ÿ×¿‚凩tMK"î@ãÙL:IUÒ›©t×džR Ê\K¢š¤|é‡ýí{@]¬›-P¶e:fªºm“wøppppò÷«á ¸°y‘f£×Ǩvg&õ_ÿþÛ/yü÷Ó£“¡-µÑ¥@|T¼>>+ËñO½Þ M®ºfrn»ÖLzs©^œ ‡Ùèø(¨þUa~ÊÇÃá@f5P1)ì"Ô(»°ƒA"ïu|®ûö&¤\Kv&¹Å”„ǧÕã“ÙÓz Êë1äÃeïtûÉHí©ž”Ùµ.J|Ò«þž¿Ôy|vZäñI¯úmþxVÑgñÙëc¨lxùë"ÞEê8ÈížvÑqo$>³ñy1βPœéã`|ÞOÍëãÿ¼ûr|Ê%)³)ANWsj$N¤”‚p¬¤0Œ¡“Þ<¦EÔðûPç×Á@»Æ¶£ãÓÿè/¿áà j¨Kk‚£¢Ôƒ.!Ó'½™ü"¼±Eœ§c÷r)ŽßÎÒb^÷üšŽJ;2Y’åÁPàñÐŽÊ K‚òÌq6*ól$éÀ÷ôÈeašxŸ¤ýI^å¡èUôÅuQÚaPœe“ ²Ñà:ˆl]ÀÑõ‘½Û<…n Î$µ¦£´(!š,‡Xþ­ótñŸ‚›„ äpXTé§K.Ó*!s×.¼*R~…€·?—Ó¸Š(`•Ý|8ÍíÑ«ÉJùÛ8MRÈO±ç—iU3Ú(ÿÝ££ª|îꆌUþ:)TâØÕ$ÔÝ´²FÖºz-³ Î-´×j®‹l’Ƕ€(\užA¹:êÌþUMøû¥ Þ딨 þ2(ÿ6éÿ·ûŒºÆþ¥_þ­y3ÒEð«.ÎÒ䤷ÔÞ‹>0kèütö!E“~ÑÍ ŸULYÞ?é-Dæa&ù`.~yyÙ¥Ùû¿ »ws¹2Úª¨00aDB˜“ã š¤3}Ä™ÀŒ.}-Eú§w¾J+ŽƒYÅØ* 1Çû0Ó ;}Â_ŠeÅÓ:<ËmR}ö=ø–{‹½3û`;ð©váM× 7Á]7ÒåüOx¯¤1TŠ=}ÿùcp]Wv²ùIoùåjèa&ËO¿üþå]ðñï¿ >ç™™Äe¼Fÿü1øubóQdóþÁ{ iŽ®§ÑÍ®ÆÖÏ³ÉøôKõ=ô\—šÊN¯ŠV5|–å饾ÔóšÊß¼[ 3ín®ªÖ^œYmlÞÉa€°4C^¾>¦TºyÆ5¯‡Éí“4·ÅÍãÙ èü0`¹¡öõ±Éâ(ËÎ;WÅ S”×ðEœY[Ë‘m õ¿úBwÐ7ö-ì“QÇX˜Sv¤¤Qî‚ñcÐùúécçßy »Kú¼ß™m;‹þŠw¾3““ÑŸéx—Ì&5ÛÑÈßzø…ÝU[³ð埗ٸS;;‚\ÁGß¹B¨Õ¶Kvú5A+–ƒÌõ/ñ8›¸g^²Ð¼e– üò1Ì £{I–¶(‹ 4³Ÿ4ôý"ñ,Ý´Æ}Dƒd ûÀ0ïß-sá;ÃßÐ4¯ÞfÃ1|b0gþ­ú+¼*~XDùq%é†]:H!„û¹ü½ö¶}°'½åAp1<.ƒuÒ\Ù²Qæ~€É´Ö†¢D D!„„±àæcPhEdŠIñLÖ©HeÈ‚O0À÷¸˜-hÇÕÞJŹ_ÏVzOŽúvdó Uø²¨üyÌ/š7„$Š­á”¢Ü Kz7nL{jo{×^Á©dK Krz'¨M#¹®E+ >â ZçÙEjvÐÊÒTÐqùs ºc ÞÞú‹1úÝ¿vUóñy3‹þœu¯Éfšè=§öÜoê{hNðŸú磋—p«M~"J˜MôŸõµ£+7ËÿÔö3Œ2éÕ–¹ž:íÏí3ý££Ä–zQ:êgµ ú¡øøçPo-íâú,3K0‹Šl`Ë{~æÓ$¶Äuâ&žÓž-ã^:JË®Y þÀRîÕS’ÕSÂâ™H2M… R©aÛ(!¡QX%±ä˜ªVÁÕ*¸^pr$9S«ÀÉçŠ/'ãºÀÙ2æ1&á„¡û0æ°ZúBæœ•Ü T/ L¹µIö9«/”zP®Ÿ&q ó?ìBÁ ]a6ê'q?j†¢ÂÀ~á ’0szJÂx<˜Œ=…]ߘ”é ð”ïçÖ7j“&I¨ç¨\‹ÜŸõÚ`RäU¡æý¹­žz¾{2cq“æÇÓ%É< [žn9cPoîÊsæÊ50z¼me2{].Ú›º_ý—%Q¨-ÖŠ(™Ê­H¬Æ0 ܶ»‘Š‘I¬×²äãÏo>Åd<΀TÝ2ÂóÛiqŠõÌ¡øŒÙ ä9„Þoµ2mÂ"¨‘àÑ,Áî|±²+QåÎ8J‡%ŠŽ\ïÉ–ãpëX>¹4»ÙóÎ1,µ ÐK‡zÜÛÛŠa´ŠÛHqÁn×ïʬªw‰ á2kI¥¼›´¡wö¶õäδ7v\?ì‚Ð3ÂíY éEZ^÷~µåe–ŸC‹÷Þ u:è}qKɼðqú™Kº[M_¯ÒåÚ|*§Œí©ø…ÌTy‚&îL£»ˆb³kl’Ü#×CPóZ&nMÇ]¸Ùy`fûÜž³ú>¾šØc×?v­Ir¯Þüð·ßp7ü¡v´G.©h Ô'È´{ºÞ9eŸ  `då:uâ»:¯w£²¿8ô‹lpá#ü¸4ú”HV™Ólc²”IþøPf#iJe¹4”…4±,ÁÔÆ1²„˜˜h$¹B‘”ýìÊ’+]î”R[<&-ô¡.~³5u§>^ÓA³Ïs4·{…htéô¹S`ÛžÑîͨîèvªsso•'èd µözjÝ x“{@<ö€ÈVáÊ*Ç `ZEÇX2æv˜]XT7H¯æÅÅ5ÊÊy‰¡LùdäX®Y0)Û€ÉË[a’`†È L*BB¶“J„ ß “î³Ú Éªë¬{‰<9Jí °£†±$Gû*x·¶ô3¥Ã–Ùj²Ôn4zt-×tz®w[Á0GëÍQ Ó±}2ÕðG„d(dY¢˜‰06‰$aŒµ`qdxˆt„´ß‘ŒÏP’ƒª†j$ø`ª!—f³fsÅ0®£’”òÕ}XJ(]Þ…¥ ï¡r¹Õ 5Z3„p¸ßl>Ó ¹&ÞG3äÂ=Ó¹¿Õ 5•2öRó<šÎæûU”ŒûÅ[%W’ãôñ!…«Pó[)k&—:<$ %v–H(6Qˆý Æß~n¿üëãaQ¥n²,‹”›†-D­c Õ­Ø‚H¥µXâLÃKÜ‚cvpË´Ën¢‹ëâ+³íTð%âË•éó´hºà}stqM\ ä¯~xÅi”–»f‚­¤¥˜D1¾=e3p—í–ìðÆ?ìVÊ©QäaÝ:ÿáB0ßß/QÝf t( ¢&Q”Qƒ˜åJ`–ÈDƒDZQʘ-áa­AP“ ‚jâ“B¬IÂÂeƒ EÉ×·àÓ†MPKO £'¶|ŠwzZ˜í O­mPËN;¼$vZ1ï©nÙΧF¸%ƒŸ¿†×·(´²åf‰‰©¥Ê²È$‰U‚𖈔bF ©È(Cü´"«NІ_U¢Mã¯z»nˆ(²züsÉ—·Ý° »\{mÛv«zs»ïÖè}7ÂÔ½ð«jã}6Þª€-w½ îjm²Í&;ίǥ“õi '›UwUWî0ôl½ê‹Ž)<®²Âöòjõá7ÄÛ ~³‚ßwöàÔSMzùðQÜB=¦ôwÀY~îhdâütÆ»ü4ÕqcõB6‚×yóyŒK Eæ~öj 3¨»iÝ7S­(©³A^NÓ©fYejâó›O߬Nš°­ÜîmJùËË`Ù“óL¢úi´…^¨`ÒuŸÎ·†q– õBTèzA*ìÝAf^©—g¿i‘n ㆵjßèFÒøˆÚÑdXÝ2á#<ÖEqé­»²e—ܬlƒ¬ßw„{·p慠Fšcjý)âŒbC+à?M‰6&D6LL(2VY©0­EFÃ-2jZÄRÌV]äa¡ÐÊ"ÉÂýme´ËØf-c)%e“±¯MlkœñBÖb/d-ôtË’C‹Ç<¿´iGqŸ°›6Þ‘ÍM1j¤¿l“Q#ØŸµÒyܵM#­4Ũ&"ZJª0'* MÈp$á±Å SÉHbV~ŽzZCÖPãÁš`¾vµ ¢£wjO°Þ4ÕhÁºY`ÍѾÆÎ­¥FK­û°çATªÏÁˆãV_‚‡qiÌ¥"£·JP+4a+Nµ²4ÁŒD¡A\píw²©u&ø,\ËPÑUg‚!xÅ&Sì:Õ´Õ3ð†7ÁÖ1p“fyŠDëJ°Õ™}'v¢ûNò;lÔú|xËÔƒœQ2±!‹"k«"NŠŒ¢’Ä4A cDpÅ1õÙÖ,õ ·^!‰V–y„"%Åò!Š%Ú¥|ØvH¤=ÒÀã!áÂ(Ó=χl¥Ö³E­oêõˆ'T·œÞÇδ5/mÍKï.ð“›—›{Þýú؃VÝcõ«F¨>í9³=­arZÃÒÔßZt?»Ò&h?[ƒÒÖ ôÙ”™æfëºñ0zpE1ÁTbÍx¢ œ!Ë0!<‰Ih±aìµpü½*ÌA5á.þIdoôáÁ,»nW>(ÒᆎK}íÔß°Tq©\¤y9уÀ­=íúÑÖ6Su¸ÞÿüOH°®éÝoÕ‚°YËÒú÷ç¶ê{•!—/cæŒÓ¥éÁ[K>m¦VOÞX=9Cä~žW§-¼¦|²Õ•¿€ÅXcNM]Ò4mâ»î8ì/ÞPŸÛ9NÝ„ãKì'XGªãȵçzØæf|¹Kî">;¿%»¼gé »ÚZ&±<6ÆJ¥B¡“þgP1[B]QØ^²ô¼.Yªë¥ ºî¥–ðU/µ{]¹qÃR»‡Ò0T¥ßϯÇÍKum:Ú›•^¨¶ZûǧU_G²³Û˜^ªYÉZƒðÑ(ÑÈp'DªD%˜†V%‘•„ÅLaÉf:R­’ð™* ë¢!lÍ”V`„äz ¢®^[t„-{5Œ½Bø^ìÕª [újÕ„­š°U~ïjÂ[Ý%hs›q¤C3›PL0¥ÖÚ…”È„“ ”ƒ­³¤F;Kª»…UdU1ˆE¸L§˜pŸ-ìMWIív“оìûYV·—Wµ`Ú$Øl®ZÐiŧíõUíõU{Î; ‡Ri±$2 ²¡ #‹%ümLÌH2D¶kOmOçíÇtÃ/Ð íÄùê¥T…’,_ÁA;”œ[1²Ȧ$ ±@÷"Èöl^{6¯=›×žÍû>q¾=›×žÍkÏæµgón—û~Îæm[/b>þr‘¡´RR'e‘QHF k+ªD$qˆlkƨ].6fË#.‰XÛt@‚pw–îfÛ JØŽ#t±;Œ³UN»^ôY/®¯äî^ýÁw·¹}ൂðâÒ~wâ¿þu— ÃÌìÝ‚ÓÍ(I÷½¸i{I;øÉMÏøfƇx\t½Ñ8䆜»À6¦¡b±$X0HÚ$"ÒbC¤¦˜pM%’1ó›\Z[Î&Úr:OS5< ÆÑêoÆÃ•ß‚òý< o1çl] 7KãÉ—sÞžÖœû^.Ôšu¾uß3º•õàw«>£ Rk_wzíRkåÙ(Oþ‡BZj.´D(Ñx– ©C­”‰Ãb5M„çqðÖ—ÿs V¹~ ±Óe_þŒïÒ´Ü­Þü[dm²R$ø½uáÏ_`mû¿ \mô©É®‘Nnc5( £2ÔgŠ«˜Á,i´– ‰0ŽMlPá8¢ÌóŠ¢ÖËM3@§öa,‰\;Ì´»r˜ïRÏm¿µhÃÍMk‹Ø(ÌÁô~·~·>nZ¾i­ßÐú­õró¨¼å¶¨Ÿ·BÊ£FÖˆ3b •2JX(© ]"Æ a~Nn>þüæóAA«F‚†X.ÍgWBÉU5!€WËg<(ÙuÓV¸r}¹e«æ²÷suíÚw´ráZ²jɪ%«‡ « j ¤ãg•_ ÊþâÐ3²Á…ð÷ÃdW0Õv®êÕ/—ƒ¢Kæ…E5oç&Š•¦†bf)cZFŽÊ¸Ä& uh‘ c&#ëÅb_»ÿ“÷ƒ/³òìY0v•¡bªåØ~\t“ÜZˆû¼ÌÆýÜ >œJ®o¥“Û·Ï0°’»Åcõ6l"$]¡÷H(Lï çÈo­ßt í;U«×õß÷¡Þ§¿šw¾\¥ö\ê3¸é}ýEòoô‘}õÝ^oaÛ%Ûs§l=_ýÁÕŽ10*%VßLîÌ¢I “ûɸúþcœåÖKT'‘—\ì/G°—¤‰ürhòÔKÎ^iO¹r˜/QÏ2'‘±g—~²0L¹1ÜKú—\:*á ð‘zi§nöó’Í-ô6¿ -b=‚¨ýdÏ´Éü*u*êY4WûÈKò³‡^ôµgë_Œb/9ß²\i¿&ºŠéx¥Ÿt‚¢ñØS”ú‹Êoˆ×‘&Ø[ºÌµ‡ä°;õ„ß8Z “;óV€5„¥gÌ£‘ž1¯MB›ëÖ[ ó!Vͤ³U«g.àÄ¢ãæ*Ï»ÄÎíu”éÜtêå¦7e§£ñdב¤õ0®²vµŠç‘ýÆxIxq> öoßyj¾|ò4ö•ÔoÉKáD…‡¨ÆcßhŠ|EÝGëé4àëл\ãjχzHúfôûÓ&á&) öpl±DÔ²º¯#û8*f‚ûD^«§˜á•g‰M>ôÌ»ûfmÅž>ñ.­Q|> ~+<£¾‘}õþíÛÿgïÚšã¶‘õ»Ÿ¶œÚh Af_ÖQ.åÝä$eåìú<©@”ÍmIŽ.þmçíü±Ó 9r¬!Ž.32RÙwó6 ð}ݺωYa쎓ÅÃÿs)/ê[0x@Æí'‹™ýd±Ìog|~‚ ƒº…é+Rlï`1¸Êv›&'·ð§áuƒ¹á…[ò—«¤Þejvì¨ñØžp‘”‹©¬ö 45gxàP—“™-@~ º»ê™ôÞÍðæ|`ßÂŽŸtÿ^‡tMÒë¡Â)ÊæI.DÙ,˦µ¡º1­© g(ò`b©bÄv3ë,f¦Y-à‡Þì&Ÿçól¡1¼¨2E>ÚÆÕXLµCÛµj‹…chŒ«Jw-`¢»0Ñ] LzÕäW³v~ÔX]‹©ÉWvkfb4@Õ<1hxÍ ¾ÿ>ôξ` í¤Wû©šÆçÑdJ}ÁIR"}‚} @1ó… }’pL&Öy4ïì‡N7™ÖòPj‘*õÚM¨î³ßª¢€E´ŸO#1%q·ípév¥Õr¢ÆP'5d«%zÙœÚ/µÜ,—Fr¡b¡ê@ ­shA0v·ÙæºÄ•]¤³öxÞhçýÀAª…QEŸ{¯ž—v>MœÈÞG…ì½T„ÓÖGÞVöN#®miVn©çSÀØ„abë÷áôGkŸ³_í/oă› Y~+í‡]˧¬ýÚ¨ƒýe^E>¯þ»ÊÍJkm¢øÆëpˆY10uÓ ì22oÂ8F¦Ó¼úlw{mÈ…ûŸÌ÷W¼,þÀ„m6õ*Æcòg)åQ,¸HÒSf‹PÀ8Mx2„AvÚ¶wSà't Šû1Ý-ê'ˆŠ·´m‡(b=0®>¢º6`mˆÝÓ¾8Ä1*Ü’b•À`<,d!2²tÙ~ê6Óñ=™›E{½›…O#|³)S0¡–ÂY¸4š8‡ZgáШä¬Z¹œ…í“Úèlœ6Y* ¯FRgá°ÖÖY¸Ìl³pº—ÝYøl’96Nk!žµísXKó,\®mߘµXÏÆ¥ÎœZ8Xßx£ã³qè$ÄlÜÖÊ>+Ÿ`„ÏFëgé¶ýÙ¸µê?S—¾ ÐÔ«¯´ðê­¼"Ûsõ¥‚¦^N3è4ƒÏmý ‚Í ÅTÕŠ-<Ö*B—VNhåÒê m|î†6Nk¥¡Ï½äÐÆifÿZ¢‹õͼhy´ƒ/¬¶-<좾kyŸ½Ç¸ÓµÊ@+~8³½Ä®Vp³Þ•ž ò=Ël—¨§Æ³!hÖãñ }žÍeŽâv=ÅžŸíÍ¥,1Ÿ…Ûg+‡ƒÌ8yŸ“÷9y߃&NÞwŒò¾O×óôåÒˆ ‹N³P„QŒ¢„ˆX2‘D”¥IˆSDœ£È¬§ü¿þët­Â[×ûäý;Ÿ‹Å×äL“‹ïçÛž^¹9ð¿ÚþJmA)OñÙU•Ï/¼·p ßTÎ1°É9‪sx7ç1õ;)Gø„úHSMc;㨆Ù^ùÆ®$öjòŽ÷µÃéïÁ1Ï;ÂWù]=åuf2øLç>ýƒ7 O L{£æ¥„Ó|áµgŠ|v+·>Ílµ²>K£Ž´Ÿ¸PÖ€çq¤\´ç8£=ϸ9ÚPÊ.0CéÄ1j¾òâ´©…dR¥¹_Ž>‚Xâ3'<ˆqœbX“$$dX N‘JÊÂЬ¹Æ{!r…âÙ|jn¯ôÞÂJ|û­÷I./ï øs.Ë þ¸Î’oöjr»“§b6œ*ˆ|Áöžª³ ×è >ò#œŽ³…NÍy¬ #4²$ó†ô¨qoβÄNKòÝf*…×ÍηiŽ‘9Fö„ŒLm‡R^Æ]Ys<Îñ8Çã{‰”ø^pŘõé“t mЩ‹ÕÙÀ5ÃÜ•˜{†ÂõQ’0A q‚‰Œ™’f†ü E!Í4" ßeåFV¹lªÜcD±ê•ØÍÊ$ÆQ—@ªOÒ©ñ ­q¿•’³¬pÌù¸C­t ¬ÒárrŽš?¾gAólxš1=³`evdÌ” X™ç©V{ì…g¨Šì“VbuOµÜÌ–’™31Sv<¼ë•äÏv±›ç¨'È’Œ¦ Éâ8HB¸ÈR¿2Æ%£qÆÓ0IcÉ#GoFÖD651‰â8î: ¢Œv{xÁ'!2êaº‹ßYëÒ½ÎÁÕ {Ó¶c6ŽÙ8fã˜c6ŽÙ8fã˜Íëa6:eàs0?¡Œg49Nx,bß‹Hæ'~‘@d¡Ÿ&Nøb¥ÖêÇh»w1AÌÇ!êé#¾.¯ó`µõmUàqÕ[?râ³IéôJåÛ'Ô]ƒ#MGOšîÅ~Ža9†å–cXŽa9ÍÞÑjötÜï´{Á81<GI‰ˆeX 8ài(CB?’X¤nKØc úYZú‚CÌâ>õ ŸnQ?ø(ÔR¿ž¤oó³”ö#ñ;\I_DF&¾ÿÓ]ƒãŽÿ9þçøŸ™­ãŽÿ9þçøŸ÷äüoG¯äg*©(Bîû~FŒK)ý ‰±H0Êc–,ŽI„\·ä}K{cÛÝ’8 f=Çe·£®G¿_ò±UõøÅ¦cò!óPM“÷ån®iò—>S×4Ù5MvM“w ×4yç䨱þêú"·8ʦÉÏ!Ê‹E€iÆe&|”úiGI0¥i…™ ˜¤,ÄÜL”÷´LV’:l#©óHÜäp GÝDê¨a¤)_þ  ÎIé^Ž3Êö­­7ªS²nì6HÖ/’÷}‘õ¦M;dƒ§¹]ÝüØ`%OÌ®°iu¬·k:›Øµ B©f÷¼iclÕ7M‹õvë^ÅaVÃ[Út&6ˆ—®ëM7½ª l×í‡MM omÝlXoym8B×­… ,ë(¾ÞÎô^šþÁ&ñæM.ëu·`ÓÀÜtÓØÌzÝØÀºí¬±ì7Ö÷ûþê;í~MŒ#Ã#÷›ûZr×Ó׌غž¾_5Çnzúê-ÛV¾Éü§I¬ûõ˜À&ä™ñ}µ-x ,M/ô ÕxŒØáØ%}vd*Œí¾·)ën¿F±ÐCP\¤éyixèíÛŸOOωÑSì:Y<|§lÙah5¡ØP¶'SÁXò—Në`½õÑ*l\£`×(Ø5 ~ØÄ5 >ÆFÁÃÚ¶gØÙÄ%#I†iÂ$ÁD†K‚4Á$eTDœ *‰°mß J‡!Ú.MG,î Û|ßïÖ60ÝÔWµÕÞ$+IÛ¡nI¢A0¶ó¯“µ ø8Y›“µ9YÛÎ1ádm»SA.äø„þàdm€÷­0OèúËGÝ0‹‹SLÂiH•€È“4DqGRY’’‡(‹Íª üàù7u3Þ¿eâ}_,nJsQ[ã˜Vq’8›‹éÝ·^)ÓU!¿õø\xò6•˦´ÀôÎËxYM ‰|D|@ª]â3ÂBh‡‡ø,ðkˆH-è«/õD úîÖ*¾÷ó»ú[”…ú6ž›‚´Gȯóêî][É;PïÚwƈ–\ÆÓÜ–’l=»ù☠ã±UÁgyYÂÝ—w³Rv.—ðÚÖ‘Þ¶¾Ï/™Ê®™ò1ˆŠÒX¬•†Ëã*Ýnù¯1˜©8^\J`‘É%™ôiñçJ¿KÀcÖúP“ÀO˜Ø]V°ösa˜ììZ>]ù!G“Aü #1rýOu2«§ƒb+e%Ò¿þÕðûé¿=ýôéý÷ÎÍ^â®c}/Ÿ>›I\#1¼ÉÂÖ°!,ÒDíÚd¢‚VOn$s‚{oìkIÊm<î‰õXïH·ýOÜ¥ÛÆGذn‹ M¿Gb0!aà'>%"d(Uô‹DJ‚ÎX ² bw±;ØÄ0í§±Ã…»Å´B,À¤;ˆXLüØïÆ¢H%¶ ô´[ä×R@û:¢‹E)GIkŸ(Ízë´Ëc»@Ëc»<öq籟kï¹Ë—»|ù8&ÿ´ùò®&CÚ¥ÚW~ ® Bmxˆ-—…![ÆXè×ȇ`»=˜HÊ8Œâ Á¤"$Iœ¤Bd‚³ù4ñ9ü¤Ò¬»œ"Ÿ)†ø¾hÀõ‡y^1É?7Ôç¬æz¥)þÐ<€å<øÄtC»Z¶ ä•×8{o“ÅbýË7^r÷F½ð5g½” MšW^þ¿ÖŸ¶žŠò¦|š®¦p¡Ã!—jÓ<ÍáÔ °)ç5in|†˜îÅ8u1‡óü”ϯ¼¿L«¿ÝÔ¿ÿ½%8¹¨þö¸ìwèFa²­]£8Šñî$9Å~ÐO‘à Q‡ã†(Š4ÉqÅïÚA~Ò Ô5D×ûMYîÏ¿ÿâ]ûÞ¢€±Q©(ÌóÒÜv»è÷¼”&lvoèleÛü`›ojv}ú¬·™ÓºÇ%=Oð2‡Ú–ö™FY–‰0c‰@,ä4!,#,Q½+yg’2*P3n¶³ý½w&+ï·Ìûc±˜–ðÓ;kdÝÞÙTÊ¥÷ëBHc\óÞ+á` Ô¼ÔjĽöÑ)2_TðÌUù­×Ê|aé]¬¨(pfižå©§Š×O•]òôÒ›Á|.½K>O~‡¹qêý ¶²Á&KõAMÒÏ šÔfyÆÁî€eîÊEz•×¶ÅŸ7/óòj²œÞ[*ø´€Ë*ʧ©ÚÜ,~0‚/äd.+¥;ùSšþî~¨ iÎ}E¬}(‰ýÝ9$Æ· §…b½²iÓ%ãëÀN{…'½ñ<ª~Úa  ÓÅ\m|ÂRi»ŸØ#"LY½¹½®/Ávªz ˆóÕi¹ê<j9¨³‡²×⋹Øôº2:ÉÆúíϧÿç÷?ÎÍÔæË‹Y‹ÂP³;ý¼ð uÖMK!íêÚò-< ßO?ÊŸËå”——w†ßÃ-¬2‡ @­çl€9í.·Á‹Y.nKÀ„õå‘¡>ÝÚd§JÒôªÐjkЪmvZê€{‡Ûí·ƒo7ø²œ¬¾€eЬ—ÙÅ|UMÍúŨk³˜_µÝi5v-20k¤öÙ¬cƒŒL£¿üÎÄÕÉXN·ÿêd’‰Ìça€ˆ/ˆÑ0,ŽbžR? B?E>•»Õ镯N8¦Û»(¢!ݹ:1[igXŠpÜM;‡pXƒ"g»§£”ÞÙ,N£K›=m`É©Ë;U`Éå>ïüÔ¥^A²Ú"™ì"L[V.Âôè~-;ß»¼ÈFnÎb»M C±HNâL-­LÊ$•I–É”eïY–„,6Âï RÏÂSÛ×˱ÿq™—k|¸Æ…% x¸E>U%ƒ¼óyå5lsU4PP}wåÄ;U¯ Ÿ¾i·«xÓüJ}8û±±öTI`>-p`Àö› xýž–ÁÿßÿŠ0µ÷›,*€ò5~_|aö=©K^﬒ù<|VüÓtQä|îý½ðÊúÃ_Oåj ý„¯fϸw&¦ªóVë]“h'ÇA„·¤Ä÷#õ²ÄFfeHÖïÄI½5D ç£MÿtiTŸø’« ËÄÁ?ð £IÀ‘9a˜V5kªÚ±¦‚P3Xt±¤+9•smÄ ¬`ðk¬ÔsT–fêq?°Ýg×ìûŒ¤žÞê᤹>XG«"OVê­:‹‘êZ váÌ®àØK庤a–73´­–«ÊÔö–ºa1ËaÄVÕÉ]MÚј.s]aìe9ËKÝ`¼¿ àg¦ûŸÖ.…\Ú왚]ÛXÃkcn\Œ»¶„#mo7YÝ- þéÊØ£·uÏÌg%¤©é\V'u(Ñr‹ÛáX¿ú`F}£0GënÕìÜÚ¥, òNŸc6²žˆI/3­ öùn¯õÍaðoé¶ÿˆ¦A±Ð-7°$‹JMšÜÓ—'épó>|ž x5î'êÇ`±cuÁóéÝ»nž$äWË€Ž U罜‰Äγ&”à_@ßsØå èf~RÍ––nðщbÓ!?xŒ©î)‚M0l.WåemS©zñîãïøõG½ÂÏfV“ú­†Pßz‘îŠÂlÛ³1Ï—ÚaÕ5¿‚gfh:VGV“Ï ˜ÝT|#­ •ÌÊz¾NÚi¤`hˆuM ø‘•ÆO¼„7k¨ŽyÏö†Œ‘K>5¸­:H™Á§7ò)»"z];ƒGTH³×BµÎ™î [ví·¬Cïö–¥êµäºK¨øÐ™Ï- ÞîŸüšëgŠ<ÿtð;å39QáÀ¡ÝÖº7ª†Ï§9/'|g9üm멺5ÇZÙš«¯B­ãõRhæ“yia»ª²ÈÈXE6o³66´]ÿÍôØë¿š[<›Çq+.Näü:‡EXe+Œ¯~ÛoÐ PŒ˜h_°j2A@k«¡·¤¼”Óé Ìï&rÆS½•~¨ª;õÞ•ÃØD¼‡¬ÒË+½¬óçW*ä==oÓÃu8Ô”8üèkC@ïéÕùÀŠÒ±ªW”E6X¤±\š„,®ótðá•3^Tç¼2iZ{œ^ªðéÙ0›ùÕ®ïv4Ì‘J™5‘¸|ž-D^èÚŠLw­îk ŸT€]wÆ’gò¤ʬu¬ôVÊê0UXTéêÈÓJŠÚIŸAÒ%ìN]Ц&S阂ŽÝ pØ$eõƒÌøjª{õ]©ÞÀs.ÄÍ¢Øú>%iQrxtã0"<ˆ£Ó4Óù<Î2ÊÒP²„¦’‹‹ÀLÞî¯ þ?{×ÖݶÍeßçWè±³:Žy òmÚ4Í×Õ¦É|Igò¦’ ÌZ"U’²âüúx(ËÒ9´%Q6²’Øgó€¸ì}.&qmÒ&û¹›„z¦¹%@š>µz$µÅÉéÑ 6;TµËL]—Y’†blŽF}¤µú¨ÕG­>jõQ«Z}Üs‡­>ŽÔ‰{4ÎÕZ‰ÔJ¤V"wi%R+‘Z‰Üc§•ÈÎB+‘Z‰L´©•H­Dj%R+‘;´ùœJ$8ßÖp!ÒpÀñ|Û 0Gs(ób¸¡iš¶É‚Àµ,K®"_¥éÛ–ëmåËu Ûî ‘2×^!R&Üz\_Ó2äà4[žCª‹˜š[/&{Ô¾É^q¸×G@c—E¶áx6-—‡1w=Ë_WPË"¾eqËÓ^¯i²õ·'[âyç2‰gxÞvعi[“­w ì\&Ú1Ù^dæ(àd®‚ñø{ -P¤ý=´¿‡ö÷ÐþÚßCû{칃ö÷¸íº¡]7´ëÆíº¡]7ö™k× íº¡]7àöÚuC»nh× íº±ÛR»n¨ÚuC»nÕÄÛˆ“«[6gr<1©¬ÉYè¡9ÁûjYñƒ¢¢†1ˆÔµ]â»A@|‹qÊCƒYÔ¶<“ðˆÇ Qñ“x¼,eóÉOò­*MLîús¨ªØá«V™,xQˆöþ¯‰lJYÉEþárŸ5)ÚKOD‡M~ÿåÝãÒà—. &_8[T‚Ÿhøÿ¤ê&¿£Ô…Y¯×oš{ì•ð<ßr]g«ŒåöÒ>÷%<×7(ín[¦k[ÕðÄOýš‹Ç·]Y ›!ønaosÖà'Èä-1[`ËÖ+åÆ0›ªú!1ƒãI1‰¯7›8LÄíbØê  a³<88˜Ø£ ¸Y=É£nU3¾È;%b©Ï¾Ýãqúùæ[¢ïSiXÐRœmðJt”Ø‹`™ Ž]•aÆK|ëÿj=ã\‡¯Ä̃]3dÁ-°S³äfJq°-†|ÚË›,ÍR4ª¼ÉÅ;¿Êž›ßa¤`ÅÜBƒ²ya_«(£ðÇ±í¯¢Þ~ýúÓÏ¿MML¡ _­s_¿NQkdQŠÎX°”Íï¿×;L§Ôè “ßv©üŽÝ‘ªOç·¬ð^ο6b«2«8¤sÙ‹,H¤&ŸIYîltvä…Ä÷îDÄ Œ(vÇáÜŽ¹E®E™ÍcÏ BDg¨^iòIÌK¼.¯%²¯¡uIö¤˜°ŠfËåLþsË+&l@ž#Iв$-&å Ÿˆ£|¶¿*Z7äê. Ï[\27k˜[ܬãjö¹YËó=Ò£f)•®¬bV )¤œÔöT9El]©ó;%7i†ÞÿõÛµèmû++³Õ8øW:Œ~ÝîÄ8ênßè5"תö%^X†®¿Þqz;Àú> Øh]T‡—ü®(ç ¤ÊòKe¸Â“Ê =A±0) Bb<æ–OBǵj&±MÓ XÀÌØò)Á>n^ CÕ!ê*±'–÷¨Ùý’UvÛí‹®ayþãb†íú¬'fÏ"ާŠÄsl[å‡+â³5äT"YÌgdZÆÇ87¾îÆHØeYÁÅMóûq–KÞ~.d܆‹é¦_ád÷ßâAÅç ¥º»@¥îVXd™E“Ϧ²¨Iºª2ˆù {Š5и}{ÉE!Ë$Ìâò†Gìˆ%Í„u’Š¿Åz…Ýs–#¬é ÒQNäQô†Ï—`"±z*±‰©*Iáç öá¦í”ŽGr1”w _£ž¶ã`›öDŠ2¤VetÐÛ‰¤ŒÙÝ´ì¡e-{œJöxU*Äq$Íã?Ç—t»Æå¡çë¢\űÞã ØdôõÆYk®` d”t €q(Îç'bŽ´î¯8Ø…ÝÉ)ê±Ú?=£†½ÞkXÞð…¬P‘ž[EXËGx¢~О;-¢~^õF˜Ï˜gųcNYl“Ї÷ ƒ÷#/À‘{ÿ—¤Q¶ž|Ã}†ÐL*2Xo]_aQ_a’ÅÕOŸäm™-'j•«ñJ ×µÓèk Ä£¾ªôµŸš† ÐS¥ƒ:®c*R‚íS×î¥dÛ+%ˆ–®Hpr%G VD8sþ4|¨Þ’-Ù= Ô¤X•ÄOôWÛì9„Ï # *á@ô"™ò8æa9•¯#v©¾½ÊJ€Y‘4[[ ¨:Cµz3S}¾p@¶¬ƒrÁ€\-˜ S{XPK1à¶gKX“TÖ‹LŒ¢´¸¿£8Î8¤‹*kYꯄ?û?+1Ž¿C­s‰…™S›¯y32òLtÿ´sƒØËA€DÔC꺫;‡iºª;ŒéøÖ~Ê@EÖI$ÕG ½É1­æi”°y|Fª‡˜Í± ÷¸ 4\a°ÝÚÒîíÛä¥åCܱ˜²À X}¶‹i<úh© #5U%ožWzÿð“¹PåJ QH!ªÙOr¨ ƒT®ØB‡^½Î%¦ÌzÙW%Š ‰³±ŽšÍ=Ô¢ÞûH"Ý@9 »½Ã)p'Þ KŃËl8A®u 4”ì‰Æ?5lA zù(ã&´òŠ”Z دoTìB2Ÿó|ZKà€:(=[Õ\_-¥óî´»@óÿ¨®Þ^_ï)ªiþiÁKÉ=ž1‹bãyy®Ž(¶3t<;tbLjcBÝÀ°yçž™^$ ægq¸îR fñ¤~·§'P” v%_­S_y²Ède÷ë0ÏÒa›Že»ýÔ‰Är ‡RO-kClÃô ,¨c;áâ‚9ðRÌØ‚7ˆç¸½õ®Áì(]ÓÔPá ŒPвôŠøXDüpã;‡Êj€X¦p¯º6bw@óÛlÎ l¾´-ÄãWá³ ãy5+E¾ä»’Í7 @G…ÊÑÒ¼q‚™[MÚæ|‘•€ÁÖןHÌY¹ÊùRLÿà¤\ÕÀ}TÃúHšÂûh1m°ê½Q ç<[²2gó$kï3®†Â:) ý ÌÁ­(?L1'D÷òTX/bŠŸÊÐ{Õµð)—¹ Y‘æö]ã[”Ä1à©©xt×ÖඪÍÁi“¾@~˜AžD3@ïÍ•²%p§æwnž­‹ ìo›,ஹ[“8Ó q0¨™Àö]ïAíX‚Úw£ ꋎn«ƒi+unnV 4N™Ó‡À»uŒÄtnoއ"P+ìq[wË+Q BŒ¬¿X§ ¦[sƒjÚ kÜ,‚{ÏÀsW!NÁ †³^ˉΨ ¿?:æ T“PrT¬·Qõý—óÚ£¨v\!tÑZÈ´(ód–p6MBÀæ­³ÎãгîXà.„ìJ$Ÿ×¥*Ÿ”¿W µ» pTg‰ SÐ u¬Ð¾GMlzŠÝv¹KNÙ`ÄÊTf¡ØxÊ@À”Í¡ Ú(ý:†¸‚ ðëä?Ó>/<¹k$C°0DïÏ–³+žçT"ö þãWŠ"oÊ'"{8H >ýðþÓûï¦&ìõŽH웃9Páé$slVID§%ˆ^Ez‰Ó±`¨|Ôðioù.”]«B…óDüª/Æ›ÃñѳzL@Á’RB¦w@¦Ú'9(8‚ÀDylÂÙ΋ϖqÉtm™rhEœk-–¾­?¨úƒbÆ‘zdˆÛ.ŽôÖb.L Ä#ÊS¾Ì+(OuÄ\+ƒÝÿ©Î+õ¡È8oVÌlð²Ÿw"ßøãpš®Õ’Ê(X›Yæ(™ç”„? A¸tA¨šÅQ\þ¸XÍf¼(ÊJäªZ½<òV)B€ñmãÚ(}Aör~¦b·4›?eñ fÚeþ…Y§ ;©ÆÉú-井Wë:ùÎòözlÎòÅáÁÛj›K.“yk°Eˆf™eóâáà}8JÔo¨Ý÷•\8ÅÐaÄÁP¼V‘QX̀ǓnÞóÖ…·À¢›ÍÏX=±Jïã™è. 0MË%öfõb19†ž´˜ÊÃy#qX[ ±øÌî!–µ¿$ÄR¶é¡À1¦,qÖ:ÔÚÒ®^V†µC"À°N yÈ0¬gÁE›k¿µØ)Ê3ò!³–‚8d'Û0¼;øÖYt¨—oë±p ë¿ÛUº/Æ©ŽDbex3KWËÖb£0•aíâÇïüMºÅî‹‹ª­à+Ö4‹ãÂê͵X˳ÆR5[s…SQ7à¶íÙ<2¸Ëm7rMâEnàQÓ‹7ŒFD&„S}ùóݯ“_«Ö›üoó¹ÁB©jëªäü&¬_áÌYWLVE’Î&Õµëžy5ÑS.1¼~ì”ef/rÊ2L(»•ýìäH»èЩ^œÆ%FŒŽëwrÔ\ÿ%N>õw‰1U¾áy½½¡„ÀÒÚm0Ú#O{ä½ð’à:ÃÐ\;Âñ±8ÂÂûK— 8ìþ²ØÂ£Q5Êà8t8ÕÔ¹lž9—üLv±T§g$j2ï<Œ1;²jZ–ÑEŽëEVLŒ(Ý€ºÜ‰BËvl#ñA’ o.˜[¿Â4Éõ+2¢æ"e&—WUŽ×²|êšýr¼žE)%j}ñG]¡ „lÐÌ@ÔCí"ù˱H?—2œ€¹"€QIŠ ¾žfaÉËzê^V ¶+è[A€9<x*R®.Œª Ó:ÈlÕ<½ƒšê˜MM?iúIÓOPÈÑ*­ž&õH£_N8àÅòŠ#ˆ=Ò!AƒväX¦uPøËÀ‚¹:æ*PåXÁ'ãà£Æ…èHýÀEzh¦Ãô7*b”âÄ¿¶âÖX*ÉIÑ,7 óp.úêjË,)PãbÇuO¯eT»ÄŒož;uÉÑõ ßq)±]—ƨA=׋dí`/ò#nÄŽïÚ%”ù =ãS¶\-'Ö¯Ô3*k)h°‰l‹IÉ$a=Q×Êïòµ ×ékŽåö*ûniÂfKÚ –G©¥(Ô&®¯‡Þ!lÔcèZi*+_ÿö‚õåMûjgI2y˜ƒ”aZ.Z"¸ɯÂRÄ2ðÃþà’ )-{´PÁ;m WBµ´d %ƒÓH k¨é{²ãñQ¨ŽÐÇ¡Tf…l)~HåúQÀ–ôGZöjd¢Õ0FÀ@…ë¤ ¨Õ 0˜x€BÕ*ÒÈ ˆ¢+``­À€À´Jbï±Mð¿qc ÙþˆUˆy8¨ã½1˜–Ç`¶˜p´£Äq°–Ç¡’êØr H¥·Q¸ ý|áuÜ4´“pÆ\`Ã<£Pxe$zC¿¢€%¾ûú”39è{\1§’ÆÜ;¿öˆR8La=¨ ý‰u<(¤P•ÃP 3:¯¤ˆ <àIQ¿!L°ŽE`¾£§&F~ï\$ãæü¼‹cLÏ=:Ãhø¦QjøDì0|“Z„¹¡gÚÄö]Û0m7²ˆa”$ß§ß>Lþß=Ë8Ïøx5Lq°OÂöWEK6VwQHÈâ’ÙGÃÜbÏP»°Ï>“é‹­°¦íê8jMLÑsޝH<»øG9¾®7CPåÑä¯.‹zÄ×Åü••Ùjœ£ï=8åˆv.9c>Ô¡Nç)£ÙÀW®}xrvpªÇÐaˆ9‡¢áàìœtÃqmŠ Î¬A9.4ö²|xuÅ‘Ý ¤ÓïÅzá)º$°OØØ3•ÀE{’ŽÃ‡óD>ÚEq.Š—åoxz·¼*wî¹r ø‰Mz±czVº,$u$p)‹-?¶Äº€³eåçû4œ|ÎâRVxf-®hp-1vÁ4.Á€iQÛòìf[ŽcDáÁl“RÓR¾¸ý ªquÑþÅòHއëOl¾¸ÈL†eöfH8Ve¨ºðÍápþÊnfi´JÊé-¿Ï“t†Æ-ø"kvŠ8 –ÕÄ­æD }Ð2[,ôqe½)D‚²(CƒîêShkX÷/p©Þ¤)¹uèÉ”ìì¯9#æ¼+núˆs'ìûê9Bî†^¤-Êúh“¼L5•û*¨\ÍÌjfV3³ÏN³žË|4ãÅ%=òîkû‡¿¼îeRdaµZùã@‡ ø–šV¼ü²u#à'Ü÷p8qeô 'õôÜáÄ¥F=‰§Ÿ%Viƒ0ÎÅω£8 1ãÄ -‡[4 ýØŒ™å8:7*–ºt|Šñà³ˤnŸºô Ç$ŽZœÅ3ˆïÚBˆ+¾ÝÉQ/Ï…ïÙ²£ŽÈ³Oôµß[ot¦NŒÚçåtbTå|B2L'FÄÄi§JMÝiêîy©»;U¾IMuL«Î¦z\YgS=l¬³©î6ÖÙT·!:›êa1AgSG窬³©>j£³©Ê )ò‡d­d„Ê­ä–ª 'Ê©êú4v(õxäó8æ!3m†íúžû.sâó`9UÅãeâûš|‘ªÀ—ö倊ˆ5˜IÕ0ŤRŠe¥‹¤“;–'ÙJü”·ãÀu1VmŸšíç8°,Óð}5Çe‡ðíîåXUƟδz~mĬ:y˜6ÂòE#O ³¬Jè°«ÊøÑ„Ö N¤AÌu¦Õ½šÎ´ª3­¾ÌL«:M¨NκK?x1ÉYfÚ’w9_d%>ñ§Îïºp×ù]rá:¿ëzŒ™ZO˜lfyÝÉû¢n¬óÄb¨ß§^à¯SÍž˜5fùâUÛãGÏKÕfùŒ¥É÷³µÄr‰E¸éº3™ÁÏ4,“ÐŽ˜ãpv›6’¨ý¸y3 KÛ!ê:Xb&¶ó,qE°P­Iˆï{¤ÇÑ*ºÈrŽ–PÏõ-õ*‡8Únà½,†6ŽÅ¯»‘rc[kQÛíŸ!ØZéÉÞuìÎöoñÄâÛÅÓ¶-çÛÝ|ð%dZ‹à|6³.OWÕˆÂÝp±)ZcQmSåbïÅ.“0‹Ë±{,´¼I KRñw™åhü=gùgnz'T$y–½áó%žz¬Xl¬ªç­³Æ ñõsOÛµäÿÙ»’îÆ$}÷¯à±/U…}™[·í©îçeüÚoÚsÃK$L@ (ù×O.,!"Y¤H /’âK¹F~±Ñã{Pó˜±Þ‡´­œqSÜÂÀ gX雘Í*³YåJfÍHŒÙ3›`fÌ»1Á¼A{Ê›³ŠÌ&CЃ`8É3^—{“¶‚íêf›¦^µ=ç’p®f¾e|³[ÆlÐzùF îÃt-Y³ùêÕÍW³íé|ÛSÆK¤Ø2@‰M–B„ZÊ‹‚Í[³5É^=ëÒN¼Â± —t©£,gD4iÊÓÔ3œÄõ“¥FBêQÇ5 ¤~‡¾CñmKº$ÌGdERî¿ð5±Dذ8¬K½´S-¬U "û’øíO Ž\5eµ`Åc¶)‹5Ÿ°7lÎú4™”É·Çö,‡ÿkàn~`Ï þçpœNÞå­ö0¼ÚæTÈÁ 'ïji…q>ˆiƒNɤlXwTR±+³ +E ^¨æC†½ö-lWŽ™cœíŠ£É`¡&ŸÃõqqªL±º-”ïRUYg ,Á| ’7S9µ0¹‚ဲRÅSÁ€Í6gq.jG±•ä.Ë6d­ â9©`]"¥×%ŸEEý þF~Y^2ÈIé*'u÷/[>ÿ‚JoXÂCHI)¾c1LTgæsþ¨ۇȋI€D¨©€õCŒƒ©ÆaÚáÆÔ ƒ1=‹Eº¥ ÌŠ‘YãÈE }ÈÉ} J2’—Àwä(5ÀÉŸ9‚k"ü„‚BÛû3÷´ñ´·xkuN¦1?~ú÷‹9]n6*^._Ìôøùgà’¹Ólqsò·—ü­Õ'pZ`³Å‘5¿¥ßjn9¾en Í¾«Dt÷žU.ÉÃÚ ¢:ëB…043ªauB\¶+k«Þ Π†ËÏÇ…ÊóuE:¿l:¬ƒýi”Ašp.WþvÎõvKÚ[=v‡vŒ“"Ñ*Ës¶‰”Ï0Ü_çßúi%nSѶåQß@ûsÂR²ÍÕÞ9 )ó@T³F–õkoH’ˆ«Z\–«×̸I˜z¦ÉL/ð›…¾í,qh‡Ihz1K)ÈŒówõIXNgqéàÿà]r»ö™ép#ndZu`Ÿqm× Ìa¸‘k{–ëaRB ¦×› 8:*Ÿñ¿|ÿ•N,wyäy†nä‘ßx‰ñåKl==µJ48@¡mwG"üŸt ›çª)» U§úQÿÅ“ŒÔòü-‹œÿ¿4Baa[>ëˆþK,×Og€‹r•eúøŒwšC'mÚΓ,ÕGóm÷œ.¯H¬î}ÉXÎoʉm£!qÎ4ûýQ,7Í×o·slz8aá$qovÁâ¶uS®ÓŒå j…+´ð‰Ã?¹Oh7øhl„¢˜¢²³›‡í:.Tµ!¤“·Ôã°ix†7è𓵣ÎÌqgs©ðÙÚ5g&¡æ°¸SF¯9,‹™Ã↶¬[ ‹»ý4ƒË,ÅŽ¯º:açÞ¸jx²|¶‰q#úÏŠÉÍÐì­@Eމ¡Q#é>µæ|ŽÏ|ÁÒˆŠÏìjGÝhlæŸø¹¥ÎÙ•™ºxèœs £=Øpˆ%YSâ#Cßhà!U[*&ǧ®'4P/ʱXšúQz¡‘¥æ ÊwTY?I›,ÛÍo.slÔ~Eûº4Öí²¿È&©OY׫Š^Ü´Nƒ×ˆ—¤iøaà†¾m؉gÓ õiû±x„dŸéó_…êLñ¾ÊÖ.btß 5»gug‡^P¡HdE½h;mÑ”‹š5Ûj! ª;²a Bi¹-šz‘‹Ÿ”âqÃq”“vzÇÛé=à ÖØC;½å;¦=2Óû†eûæÀJïNhMéùÌût0A‡Veþçû2Îãc)—eY3þ‘Kñ¬ð¦a#{ ?ÈkÊV2ô h»Êœ€²" ›ÖT€±` `{Ü gÿq¤?†ëGPü(fNèÃy|}`íád=”6GÓë <¹PFG™á:/Ÿ0ò\£ßT˜'¬Êœ@«CÙf˜|MIž?¡c…a¢¨Þò¸ÞáTïpyÜ×jã "k:öCZc¸j$Û '™1D1†ëÈeÃjäT‘Ôd‘ÜtÁE 1ÆX¢Á£ia±¶GD.’¿…Ò¶8VEIb˜H ‰bµéF}žQ‹`ÄñŠNJÞÈzºH݉'"…pÒrCIª &Ê×õ)ÁW`,_1ˆÒØ4¨aS„aBb–0ˈfRêP7¥ µiœØ)ˆ¬ü©{æL¤aSŸw/)R¹ ]C’xu—ÜMµ¼X—É–kwLFz>ªŒ¼cØîa";° Ï’çíØ®?ØK_:$×î1XÏGÞVL†Æè˜€³‘­›pT³MÆ·?‘—¸µÇ0¡lBmF'šé¢ŒÎk¥½MÑÂçÆ/o rðòˆÅuÚ3 Ô+Ð8”R-Q˜þ>ÈàÎX%%@at:PàZj‡Ávº*Ü F¢ÔMi¶Vñ(Â×Á’·~ô ¸FcÐ×Q·Ž†7TOÎÊŠ4‚Áee÷\$Ji„YOŽÃ‚ØLøÎ–<‹{¬:Õøy ¯ŸabùoÒžŒDúV=%YšbS zm)¾c 0nïo%¶Žx“%KÌ,Èû`:ޝ=VÃt¹«K¼—`¶Öð,<8Ò4Áíã{ ðWHèžÆBlÒX¿‡{°VÏ¥ö¨Öo`p°ÕN¼â›Ðš-Ä8ª7[ÆT9Ù3†®Ö™kÚÅpt¼“Xh4Xodyi”st¢QMe‰ß“kúÀÖD¶Çœ† v±Güçi­H>êzQB‹I2´û´°Žðÿ`azð«)ú¼ßÕ #2U,3F¢ŒbÔï¶Ii`Y:ÈGŠRb·gG¦Ù‘éåïž‹žrŒB!¯Uý½ÝÍ¡Øs(v¹éPì׺ÿ÷X¼ÂÙCuÂÿZ0?z›’òÛ€,HŽŽa¹³vTPЄ¿ïAŸ¿ÿ>âÇ0{·í§ÐŸûüË‘‰ê€«Ro×§ëî‰pÓü×eêt)²ëS‚3©wW¤ÞœØá–hN½œü­ ×ám;ã-Í3þ§nn"d]¿™¥švèV¨› E¯Bú²Ö›¥Ï}ÖÌ+PÞz)@4ˆòw‘6ä­[š‚¡Óué%DÑ7<¬Ô’W»|óyX  ®Òº&ãÛQë(Ešöœ‚Uåz‹¦85Çèå€9Y’5 ÷‘EFkO{_¹gN6ð1Ä4ñék¤¡ðK“ÄÛz¿]^)ŽZ<;Fñvä9W±õæ7—¤GüºÞ.—¬n&í°ÎyÀO¼²$\IZ’¦Ü@„GIÉ!òâÄ \ç r¥$©’ÛÀD7KRçt t’ækqÛZAÚ¥  EN6ëéYÜ9@𬲼„uغŒ³œ5e™×Ç“÷x–DkuÎÌÙÌšˆðê1kRñÏÂÂ$›ŠÅh¼žÍÉ»H‹‹nõ:˜Ú…E´È’XM…}˜:k¢”±d²†X‡Q3pâwg®z…ù2{†H*‡pˆ¤èÓ©HF>§,~›êm!§Ne€ òŠÚ%ÓEܨÚ×]1¯—¥¹+(‹)±ŽGš’}H'¿ºL¦Fy¥æÂ 6~«mñR±:URŽ4ôaYl«iI®:D¢¨1ÿõ䓟„—ÿKî”ÔÜ¢¢ŸH²ž,ð§´{~86¯{XÝ=a,ÿ1±S“å Ö'cbÓÀ²¨g§”¹fì±OÍÄ ­Ô3B#HCß7MÛµmÛE þÑ}ÞB8e•_Úgfìq°¼ë2Úý©^ða[ÅO‹X½jÊjñcñ˜mÊBd ü®ïß—ý4¼ÏÇË:–g Çö yŸëÉûÃBg”¼ÏâÃ:hâÅPÙ“sU†‚:Ä4ÓˆU¡³w8»)› ÙîtÚ7©©g8£l-ŠŸ­rR¯‰ÊÓ°`Ôƒ‰ñµÖNmK‹oéOÛ¿‡Þ÷¨K€sðX§\®ôï²Bï Ú»ñÔæÎ’X%¼É š}Õ…ÕÖó‘½g/ÜË2ׯ[H½îøà¿FÚÞÀ BÃlÛ´ýØH ?I|$&¾I­4‰ù_b~v€Ný_Ù®^ü[nXÐCþ§_ùÇ/øAO|k-X³(D#êŠ&Ov¾=ßðÙ=ytÛ&ïnè®cŽŽnËý tg·å˜®Z/ÞmæÝvzÝuÒݯUÄÓíÓ÷ò¾*‡{s©xC®ZëÞ2R½Pæï©#IˆµU4§D»R”Òeñ…#47á€Èœë5Ρ;×Qò9ñ)Ù9ñœƒø(n ýrÅRLC.“¶x2øhL¶cDêßw‘7·wÃÈÞaŽ]Œº&-O^ƒø"¢’æ.Á_{÷ùu1/r v}âpþb(/ŒcÆ3 å٤퇥å6…ó–BøA]^ÛãçÀjXÙI¯ÏéI‘S¤^æÞÅY=Ÿ†Ô¥4&>ñCâqè1Ó·=ÛL× cÓ JÄêý³l~.èâ÷2mDT ”Úëpu‹ëؼû%óÜ08È[ëÆp\‹h…¦#RÔØ<Û0CǦ­µBÇt쉬µbÖ|̬!%þv_„Þ?É&3âÓo$_C˜»ÿ&M¹½ ÒÎ2,ëÒN€Š“r-‹d›5ÑŠ=o²b‰Æ­ÙºlÕ^PxVòäFâ¶yŽUeÕæºÅá¥ó"AeR¢Aê~R2Õø5ÒáCÚ`C„â{N\”÷ !¾BæúÍPíBCÒm¤ËhñÕ.°Ê3‘û.ˆÜ™—yÙ™—}C¼ìݬpÎôõÉJdÝ­ k_:<â; «¬.©<­B€0Š<s Ù[¾PüÊ™x<+äó&HË›d"[ðå )ôá7õâ–Î'/5ÏO3f¡o2_v-©g'‰Á¨š–izaB=wDX 'Â5\ß9 D0mÿ«¨gçÝMϳC>†…»<ß |¡±£@_p¨Ç2¡wƒP‹õ\› CðCËÑ$ES¾žš‡í:.@ ŸQÓíŠ÷Lš”ü…lQ`àD™!Êõ¹#›ÅYžI‹23Ê%i®/ˆh™ó=&›du•àÛ²‚Ï{ ¬o±À¥oœÕØêŸ%_y´ÛVì9.UA#„tÄ{¯„¾¿rõP6i1ˆõ?ªÖ ‘Âm, ’“mA`²|I€Íò“Žñ¸Í–¬k¶K·º9D´y™P¸èSÆ×YCv‘„%˜áâ…bùþÛl¡qV¤¼'å¾/³­e .KO„N]Ç—üü2ͧW‰ÀòK±u äwYÁufȰe%xóØl‹bPö±V?Ôät›‹Ô Xd§æ ÞrÇâš«Ž Ý‚¾MN]¾¿ð9™­¢>ÍÞ$ì¹^n…•¶OÐ╲"kœh=G ºÿ£ФB²­°`>?6e. ‘àU;BåYUAfÇÄ/[7„ÎľŽaídAžV1¡"Va˜š¢Ü:y°‰f5>ž@i½Ü@Ù Õþ¾tµë:B\sÍ\¬P 7uµp÷ÈÓµ]` ãeÚzµWX ˆ#\ÍÙDÌVõmDŠl-vù(a)Ùæ€%Ù«*g‚aU-zòÔðÇ „=f˜ãþ-õ+’Ñ`1J}Ä¿¤x?†=†U0Åv ª³5ÿ¯î›Öò¢/Rï`‘bjŽ™ÔrS‚oâ@rPZØŠ pýl‘¬Xr¥—Ï ‹#È¥xSîjDŸ¶P~‹E,l]n!fž1ˆÿD!÷§T¹“DŸo¢W±p¹ªeŒ…âfM9S1í> †)ò²Q?MƒeODq¾eA…S²bД2kT@h%%þ@r5ÆP@{{ß­U±†È‹ è¶LƒqñD·àv‚ôŒûËã~1ÍIÓ‰özÍ7™À^ÏÁKe¸z@ÙÁîÒ ö¡È‚}Ÿ*гÚ‘üÿT¬PýsXë6ÿwìß&,‘u¦ªC@œ»Þ²CÜž7}®eœAos¶«¡Žb·¼ÿ{JoÕØôMºñ]ÉóÏÒ+¦‡A *m6`ŽÁ]…Ú·/ŒaAó § à@_!}ÉÿùÀE_¼\—É6gDÿÉhƒA(2â ™âêQÃÅgž}æÙoƒgç7Å-|Þ^&WÃå¹~¸´È^×lÓÔ‚6}Tÿ €Á¹Dó\ؤršÆÚ?Ài ðÚÍ¢Ýë]=ÄŬt’ãïòÛß‘Åc¨} €0ÊT,M úî½ìß~ûõ³iE W¿¸¥êJÞè§K'AÜØ³5Y²8Ïš¿€_„sgǸ¨_Ѩ7»ÃŸAÝá¿Rèhˆ7¦•5š†lëøƒ(§ ”†ç#Av9âi•“Ǭ½óÖËmĈ_ !ÏèD‘£gR7ÖéÔ÷áן8nýD3²D ¥dª¼Îž;'y^®Ãªá¨¯± ¬H°IÀ?È“¬Ì e‚ô÷íï?N˶ ¾_–cO͆¯!²QoANêñwµ¡!¬¡Ÿ”͸f WU—õ†N:‘wÁI©ªÊŸ¥ TΈ)ñ8'…Ð ‹«é¶e4†¸eÓUEÔ}&ÕÝ:!\Úk攨¸éȈ„¨’²}¥¦;SòÝ"'\,§äÚkðdµyï¬5Ó^t§äoZ®!/V@a¡Õ&‰'Eä}&%=@¦D»»ö¤œô”V~0Ù' X$JÓL·‰šaCד’M6¹ÀžVSçö:r`OUÎUû©ÑévrP)'©rÖ,Ÿ*K%»|5YSi¼¿ Ì|¹ ¥Ñ¶JHâáâm÷ÚyÉv¢<’ü¹ûã5k 91±]úAl'^j{®ïš„˜©E,–º)1bÇ =–—L†õe|“Ú-~éªv‹p˜¨9 Bøvª…Vå]”©üíO‹ÖjÁö1|÷¹ç96ª„a[Æaê²0p˜ºÌ‚00JöËU„Ôô›Ë½~¼žøþ(P_bàIÌø0:KSF›H|ŽÐvø½Z¶k£3€«ÌfX´´±t…xñàÎ=‹,«.b‹Üls†ÂqŒÅÂçHň q9©)aë’ÏÏ¢~ÆwHùô¼d¨1—0¡C4ß÷…ëY’zÃÁ6,áÇq‚ÆíXŒÄœµ9žÏ°}` (æ™.ô0" …î'&^M!Mp;‘4Ñj:áÁ½U¹CÕèÞ›wfíB#¹‰EIFòûú®fjëH€ƒr=Œ?õ¨43àoŸ¬È6;Ãj8ÃÎ oÄU±ˆ:ŸUäÀy…ì½XQ¨Þ…êüZQ ¡ƒ+ Øù¢¢@S*Ôz§"›*Òú«b cÇUrïÁŠ%DØ@ñ°Îê\a1˜½O, ¥œc1ÖíÙû¿¢P{GX ¬ósE`:V„bŸqè7úÑÕÆ ë°.lÝIߨ!´>²sJEq;ˆŸºÌ1C‹z~â¦Î\Ÿ\³>¹ç”4²¼‘Eï >yh†¶{PŸÜ7cTŸœ7lšé?:g¯’zëÁ¬£7c±¿.Å%€5ÿÏÞµm¹m#ÛwsÖŒm‚cFa—Þ£]vϸ!9œ,&AÇ$è‡õXcã°6ë¹9¬ÏQcs–®í)äË9ƒÏä§UM­!_çãáE„Â}Õî`ŒCwj`žq?Óü<Žà Uîæ^:Íxާ#çRÈ캼ÎI;uj/½Ò£Ó.Ë쉬~ÞËpz¡MYÊÀᮟø1¶'¨ëÛ‰ë3&dì8^àR¦õ³çô¾×¯dý¦ º´4˜ÖÛãë.±Ôù°TýWí V>¶ôRç½Yewé.‹ä›aø¨K<ת7`¤_$Ä!³ÇÔ€ _Ý݆ۻ<·çzþTáŸz uu®Úðã¨z­ãP»ìÃJ‹@Øe½ÙhÈÃSÈCõ6BDœ>ñ: `p5ý¡‡©iŸáé.ô«áA1Á 8={ÙÎÔp¦Oµ4I>/OžNIò¹ÞŒÄx`¸Ý –’6Äî‰ÝoŠ ]ad&lîEÏzSä­ÄÔKs¿†‰5lê‹°©€O­‰]ÕTm¿(¥zÎË[™Ì¯NLr=NF"ß&A,$qÕ1 ’ˆW‰#\;qAüjGeþÞ½›¥’E.k™ë3Èóëg뇶(óÇCQæ7ûÎqdåxr9.ÏÌY?˜ø¸<³ï2ÎÄ+·m®õ{ö¼+³ÎGj3·´ë£³´Ÿ`‚ä`¯.%g#6â^Ì.)Ç¡¶3±L³.RºÍH>•9¤ÿŽæÅÅêhîŸcÚû4æ»wôXFôùZ¢ ÍòœE_ox^“âõ]ªÅ6lÃO}NÏîQ%Â'"vcfÛ, Ý@Î"{j¿wIìp"½0JÜ´ãÿ¢ßgR›TÀÔõîMí”ÚQZß㫨šâü¨jŠÏm÷™íÚóù0™Öcãö!<îøtd»Ösæý~Võ~ú_®ØKÚ+—òQO•÷ÿV甚-€ìÞ?ŠªØÍÃkÔ™¶aï‡õµ½³rÛ7‘i`œ`Æ fœ`¯àš•ðÜkðD€u®æBnÂCXÏ’…®t3b•Ÿ›Â4'rË^Ä„/XäÚ~ĨËÂȱcnÇ!NìrÛ‰$„©©o@jÊg¤¦ˆ:ì>u{1óÞ EÍõü©»­ºÙ­Ã\¤q¥¬Éæ¯ è1E„x½ÎþëlÓ[Óm}°+¥%£´dØÊo‡­4êI†Þ4ôæËÆs\—Žü2M€£Ø÷Ài„-;®Ú¯å_þò¶GO’w9ÀÞú¬× Ù1jLa´Ð´Ç"‚/Ù3¶3£õ íMÕl= ·À¹T¥þ<²Î<´©©A0Ò-qU© ]ÆiU@±+ÅÚDÍÇ)V šnŠ2ýmr‚åKâ@/Œr˜ýYoGÍöea®ëñÆ•÷yœ6¾`§]½”WßÏvA—_íHxR—ëUÜ}Ò…ÐuD…>Ûá¶£“fbÂÂĈn(98yj_¼àyÓ—úyÿŸÖ̲>èäªO]rÕíoékjMÉ®*éUug›úNz`K«Hšœ«º·­u¡Ë%\sœªMPÎDÏgœ œc^à÷åºqýÞò÷œ+ñ0e¯ÛˆOjš“·2{j„þ^ŽónïáèÕG!r5©·°ÖµÅ jš±5Ôžåñ†*ÿ¸CAΈg >¼”;p¡Lø¥šíO—®5 ºÑ{Ê ¹˜)Ãb;”Òu´²aʬq©px](š± Ib&H(i2e>ôrÀµ ѼÜé¹ßšôù:-¤0™ë8”ro`š¸Ìeœùþ H»0U';Þk]2Û.ñ¸ãL´KZÏí¢”ÛTdz»_´»™ZzÝ…CM¯@壮A¡5Y^j,nÍWE&B`ÛR=~Mg´©Ú'¶›"²E˜ èÕѺyë–5öZSüVÕkP)8‘¢ÚmåF­ý h4M}ðÕac¤›ÂÇh½è&pŸ±À4[¾ÕVš§EwXãz*Ü¥%dTsp/êS­ ñ½¦Ö›=@­î M=/Ô5Ôò% õßž»L uâ5¾Äi’®‘«™Z‚gwÓÜWMsðD:Ð÷úà ·i¼„ÕÆë¢unÆ=î›[Þ•Ø”®á>££E‡i§8Ô®àöûу"º¹m¿ŸMPW*º¯öL_õ׿vBãzkú8®x|oy·Ç ®B WµÇ n3Hb[G¢Aˆq£;âî†{uÖ<8Õµ5×¹E /Œ´¯]ºpðZàZßé…î–.Sy ~tÌ  5¢÷Û¦º+¨µ:ت? îCL?Þ•tÓº+cPS±L¥X¤ÀxÛ·Þ&‘:ª!·Ä*!AÖÁK‚¾îÓÔi}pÖHã?¡K‰J6QÉØ¨ä×9Ñí!`Óh@ïµµ3UE¤ OÄ—‹ U3Ëí)1Ý$÷&‚_qÛ¿ýmá‚ÆcbUÜ™‡”?úî§O?ýòqA`¯wF†æÜdÎìxd<=’ÇAR*禇 ÓóºLÏ7‘æðzt*Ÿ¾ìÍ¢¢7‚{ëÜIQ–ªêæ‹­ãÈÑèe3' `Í !³‚0ù³e$Mî÷Ò/ÎD¢òWà´åÕ§º\3ïZåš0‰JÐAº«æƒj>x fY@küÉ^«Öj-ÌKÄc¼s¹)Ö;(átF¾~kTÎ(Q ³|]YM"ß3ɈªÝVq¸+«ÌYR©šI|'Å-˜ Fd_Áã”Í%§Kÿ\î–KYVn½{<òQð; ñ âÒ–J€IN¨?PKDj2çb›ƒÚi·š6ÔWëÖá©wéÅ6†½^“>BZê>+Т攣ÎZc½­Û5Û* aYh¨EG`5«àº¤}¾µ²õy¬YGAŒµÓ}ÝŽ¾uòª™ +Øø­vùr¬É¨¢›e¾ÛŒ·T†ÂB× T?Þù‹Žo-G[­ÁWlh¯Ó|´¥6®ÕæxÔ߯/ëÜÛ.U6(p8³¹ëªï$±WÚ‘ëqæqGÄñO$qØÂ…• ªßÇú¤ÎvÒúܼ°|P­1M!Ñ$6jkszªQY"ËŠ»Òº/vVUÔùSÛ"ÓݾiúÒÚÔ÷®«W꟭Ÿ~ý÷ûêA²êªzUc‚_o2²§?Ê¥"Ôñ(õú©T¾íê>_¨7kO(LtáÚ•µèÏ2“zâÜ_g9"»«bÉmÊV¦ÆLͲ*׬ÞdXè v8ˆÚ÷r vn'RÛCƒEj59€É\¡$8”ª…³a«uÕ;ê~½Us~xn0a“&lò+]5ª™‰V”³‹V;6gÔweª«SâæÎ.D:+©OxX *‚ä,a˜hˆiÖ¤P…×ÐÝÄ:ÿç႞MÉ4#èx.÷åŸâ<\zÇtiŸ7» …×pjbI][¾í"?‘ÎëLÇë£t BjSŸù¼&Bf;"aT2J=é…"ô)«6†=¹£ÿµö/hÅBªÞ9]öèøŠï¬TšÌµ×$®ë‡ï›¼{ófx!‘[¡h«^µîÒê¦ØU–Èï­Bݨ.C¾×…|SVsWý e-­Ó†M䮥IçÚ$ÊS…ïG¹Bâ¹B³ Oó ¹BF‚`X¹\Í!×vûL!'n0"Ù…O5ëå½Õ3ûÊHC¼ÓFlĽ˜@w_¯Ï^@IÍ6Ø/àLaûlno@Tî;ÿ]|z’¨íæ^}#9¨iX¨®µlJwÁšÖiÌÀ·êÕª„j™[ÁÀ;•ÅFbm¾¾/ÿÌšè:¤ør¿”ù[^øV­]뱨ã$ÞmF޵s¥,w6šuÞJF m7iYD+Pë—µ_g!±=Œ£¾˜Ø¶‡ŽŸ$4²'‰dHd¸‹(õ‘0᳈ Ðμ¯òYoAŸ»WÆ”iP‹±ênQÛ²¾N©¶ÄJ“E·b›;õ«(Wsfz^XaÛ³=°áfl”±¾¶2 â<¿wòÚùwÝBۃȰiêðÊĶ Uã?‘ÜÛ52K# òÆ’=LimeB£FÏJ%ÎÄR™X*Õºó­¦rõ£óÄPa¡*LÓ¤¾ ] YÈê˜êÃ#M¯3*ëHâ)z%µŒG·”‰»~!Œ«/ô»]9ÙdÚ¥k·z±z_8]Pïì¼^D]—:2¡,f ½ÀŽ\"’ ò!<[F‰MC?ö_¬ðïÝ+Ÿâ†kûMg‹–²Úm¬½Ÿ%¢¨PçïÒJsëçfG¼b ÒcœCíÞ:ø ü/q¼a°#Ä>ªþëR¯‰GÀfò½?š¦}B«iq]à„8¯"Í#¡íÖY$‚Ú”¶5x$°br Á†%ؾûŸï¨¦ÀT9bÚPÈ=å†Bí¹7ªO¡‡õi9°ãçP Ž¨C€ZÆè¨; ¤åð0™‡íY= ¨£÷0˜χB5„Ò2HÄÀ:†é¨>$ÂÞã8`òÇvìâv½ôE8hÏ×!1¹p,°'9Œ„”‡‘Àƒ‚+ØS.Æ ;b‰™Ö§GZìHè´>ª³cGt,ºçeq°Ž Å¡Z¦ÚS¶PŸ»Eá ôóíÙ\ hOëb@ÔÅÑàióXoƒ=pË(Ô’‰>°Í(`…Ÿ1Cþƒœ²0 Øk ®Oc#pkìö< á°yŒ@Xd hO'c@=ÞvªG0OÂ÷yfÄPƨÇ?pÇØžDF`þ‹¼2­,÷ìbCŸŒP̸Öõ’ jÙ¬À°¦jiy¬ábWs™\ÞæŒù~ì„¡”qâÛÜ¡\‡®ºŽ#'±K"Ï^H@ôöç_?þhýXw õŸV}Æb7­ë´g­ j‰ªÑæÃKkW¦ùÒª¯Ý Î5³ÕÃV3›g@V;„Øn_ÃÐ!jÄ8”¬nçÛµóÔƒPÕ–3RsäýG=wpZ†ó °÷i(>æ÷bøëNÓÝP׆º6Ôµ!  mhC@¿ =…`½óøj✹ÀɼÚ50cûÊs†3̘aÆæËŒÕ_êc…X^Ÿh*¶ùy&7ð˜äŒJ=7ò—Ž#™D$"n“8¢‘à^«·¡)¢ï3¹­À9Ñêí›ú5½Tߣå›~þáãUÇ?¢%B9s‡)оë3Ÿõ(%ß lŽlf–a”fÊ(Û%ÓïÚZv†Q2Œ’a” £d%Ã(F麙ž ¤Íþú?ÈðÏ–30Çÿóÿç}”¯ЗNˆ¬EÞ.xŽÜ œ€'"JÜ8$c …K#Æb‹Øg”x/–Y‹”~ê„ø?èc”õ1¿M·E®ÿ}JšdyÈ“¬»³ØÔwú*KÑù‘>g|(‘FâÚl I<>R6ó(A²îçk' ®5=²ãÊìéá%‡q¼œ|TY´æ-–"×=a­ëÐÅ*“q'Ô·mÛ·½˜$>si\ØaÈ©{jˆCîz0ãOÅf·±~m^{_·n¢ïuOX•бՖØl²´åm¯?Y‹Ì±uìÑM]Îí ÇsSÏcΈ¶C¯Y=ËL ²Ë†Û;„ —48Éݨ—é1Ö¦ýQ×Õ!«Q¸Jd5ÄÔ 3Y¯Ï ¢É@ˆ¢þ@M ²¬œìÃq|jÁ衈<8§ípl‚¤ƒssP– ͦ™Êbqrx*ÇÀA]gðK›ú`u[S À<È<Љá*ƒ™:]ÓX)5ÞúÚkmµ¬Ï©§æ¤£ÌR][¾Dxegû;^ÆrP4ND8`v“P±ã{<±“ˆ;ŽçyÒ‰) ƒ&3ÚRA¿w/fé³K‘«Á>±l–ÎüP–F‡TÍL ëgKVU±éçž¼Ù÷ìŒy«÷£!šž?$®<‡:ý±WÔqûˆ¹"œ2…êçˆÎ|—Âe$ަjMËxoõ,›«ÙðXW”'²-ª› Ö3ö\·¹7Ø©à\V¢>¨êf·s\À¡š‹0Œv+µÊ!a2¿DŽå…˜ð¾h½‘2•ÊI 4Ô2"÷Hl(qAŸ e·…)2µx!AqZn2}#™«Ï ÒSJ/9`Ø·JóÍ{Ÿ? õѧè^_Éû°[TLp¶P_ ŸU¡±]²º)ª)0==ʵ­®%[£Öu&è‰ÍÄ.n µ ÆØ©[ª]EÜ¢±\—r;Öž!P˜ê¶®0_Rõ‘*‹e³y=hЙ €‡Êõ*›ekVívq@BN?\!y˜³^Z÷v!VY–Ïöï ¥Z>÷Àñ¶û®É½\±eí ùE$O²$v¡[.[nuRVò|ú»-1ÍâݤÁÍâ¿/E^ß~d“ùf2ÍéÈætUqPfkò¦­}“²cpwbH;|CíàNp`}‰îÒwÿÿiè/²2ÁþØÄöQí–Ûýù;<Ȩ%é–E@=Ån©Ò*ìƒ$H0“ÿ¿±åªyy³Z-wPjÿ-’õ Ôº¸sHêUÔ^ªgÈ C½>2Hî¥ï¼,—²À¼W5@%ò§ÒÔFÿX…ÿ?í&­Kˆ¥ °Ò¼87LWe0ë‡V,Yœ°Ë7›Ú{”n ~A´M‘§ùñÝo·ô A$s ÆŸæ3j£¯n—ôñÃOÔ¾Å\ÜÛëéÕd 6ñ<[ÿƒ=çK:¹\•Ï68À©i„ÿ®y|_&ó¬f»PG8¡¡~¡Äf:ÃäÞ—ñ yCÑiœw‡ÖIÈÔÇ»9û’5à æÍ™0‘ú×jq4Ï’õóìÎ+×öMUÓ|óá×ï÷~à0ÕAÊûÙL”š£×Â|¡¹;†ÍçK&7Aåþ‰ìÿ`Ãa©Ž3‘s ‹µ#zª)·Èx =»O÷Ÿ~ÐÇÊ ~ÈrMœx\¯ä+ÈVõY°COuÿºšV>±NÞÖ¥¥XËåú¬\%:Ù©z®Z.çO—_]xÚ@kC*UÕHéB7¸…6®ê©ëž`±À°Û2a€c¢FØMÄ©“,´‘ëLû‚=Þé_ý­ÕÕ(âq9—[ ÝÓÙ|É9ÚïWkÞò³˜Ïuê–ßqÝ£é~‰Ÿ –S¾j*Uðö~ÉÙZܶ_ßæß]Ypë–tEÓ›˜r⹎ ÌñÃ<å<ˆ}bG!õ„ËcÂÌôæOŸ¬…àÖUW)´û]Õ]%¾›Íš{2Þvj½á‡2¼!a‘®ážíS¯ÕLm{‘a o¶ƒkêž7AÀ¦:B¾ýòÊ·­U?m¦DvÝ£ŒÍ ‡ltC—µ¨ÊõVoŸmÓtËø–'ƒèïC®XØJ椣Ôö”Càëk÷QuÕ¡ÜböQäòÛ.ʧÓ›·;ÊâÎ-åßå~»UfÄew'ÛÑØÈJîò±¿F³óøS{ÁÅ™]Ï—uš2KS,9¼èñb@מð§WÕ8B¢VÒOïßß:*~–¥Øö÷RTß6ó¼h«¤bë8+>¯ëigåÔR€=s‰ÓßøjœË¹FTEuP•öeX{:µÈìa%RCª¿†ÛU­å¤¯H˜½|©NWIýíBÉÕ óˆNVÁ5¨ëZµMÆXëLuE×( zÊyãXt‰úš‘ÕºtÙ¸u]s­EËß_Åüz[‰KB?ñÏóÂÈsb'Mظr)ˆçÇA'„%6i¿Ud}”GaýY_Ði«N­rj¿-E•µ}¶ÖŸÙÚbóyñPZO޵.¬¦\CýqõM}3­eõÛéªXTÿÚúéÃ_oUOÉÚˆô©W`º,³®Ð·åSíJ»aèÙ~[ñØñ#âk[v]­q{ŠiוµŽ;ÝŸb.ÔÐyÂQscòï I4˜—« êÛR¬26—ãg¥4>ßè=¹Z¡ÚÀ¥,X–7$ÛigCêÏ.­.{µSåÁYrà ÞV”ê¾6‚1î£û‚]š…cxWáUf¬ÇZŽZÀ0 "ÅÀi8[€# ܘ4¾Q 2Ø©³2 ,?ÂG`ê°ÐJï6ÆÆe‹w:ÛÞp¼ƒ9c æ³­°öpé¡p4 …F#ºH\ §BQTž‰ƒQ0"=Ä€†(Ôn0D8 â°@}ô^kÆz×EÍÆmQ¶\&g÷'£i%Ä·mê§qÆ#y©Û$¡$ˆm7bÌóažñ'ûªþd”öüÉTÉüQ¬Î‹Bn¬‹ˆO‰Ü(·ÐºˆºÄÖÁurèiÌÉdÄ„Ð:¼3Ù’-Ù7YÙ^W~ŒÓõ½É4æž% zëDˆm Èt@PÛw »³¤4.c€È˜;$tã)ˆÝY‰‚·b€Ø–D0xÆ›0@hË Ý2CDï¼À`IÀ«limA¢{†_”žÏ ekïˆÝH?B»"B„$ºYiCBÇ.@h˨K'sÌãÄd‚ßÚNÖVç“Ô’7ĤAGb' þí¦í4 1iµt!"c«Èé("âá$j_ã’²‘¶ÄvµéøÕNH Ü“3g€oÏž:.%Ã`™}i'}F_*I“qÜI ˜Ø7B¥Wø»(\vË% •ؘC¡rZvJ¸¼­*m [ØjŒŸpÙm¿'TæÆV–tØÝ Ÿ»1u‚ev½œP9] 'Têι •¶1lB%m}špY{öL¨ô®+*7jºL¨œõ,íˆã’&¹k´ îû+“r¬´ï¦JØ3QÒeõ¼“ô»=c™ôÜí0–I‡é­IV†Ó2IhŠÒöâ[žGð–Õ(ü%–¼uL‹ /¸F®m?G”Ôm͆ Á¨ú»Z †¨Ôë éãGY§w¡Ò>Ÿ«\PBØ8éᵆ="@BÛ–H~öZÆvb4u á=Ÿ#@FÏÞÑs5¡–ç.žÜYpÞ€óç·.B XxðVIc¼ ¹ëIP(Œ*øÝÈ>\ŸÙé:œ4V÷ì{ “X/²$jýð:â­ U=bŸ¶Š˜Ø­i éìô®Zü lèBê] °ðÑgà*Ú1UêdÇ_Ì~’{öjú#.;úD<; p¿m¥ˆÞ(|èC‘lð¼ï—£GÏúׯGƒéwãŽs8Ô¸ãwãŽcÜq¾º;θ½q*YŸ‡ì9p®§èe ߦžk¾ˆ)÷lOð¢”r'Hâ€Ëµ¤›‘jTýuå)r-mýœ×wSïoÛbë?› >¥?°¹kJÖKŽ„û¥U5w=°•°äÌ[ÜçëÒÊrë—º‡{Ä]Ú¦@B1^ÔŽä éôú”Ú6Ùñ©ãAå»ÚCôñ®ëìà;G ÖµuÑ!”v6OU¨ °÷@”ˆzéQÓ H‚Q”B–×¼àj™ë+J²îßžGì «ÛT΋GL¼\ϯ–˜_¸+æ ¬<$ã«"^mP3ð% T§d(êî¨xÜÝ‘¨»#ãqW{þÚ;Åô¶›ÄW¥ÃÏ%Ê•kQ"‡J•ƒ,Un¸à¨ù=#XŠHGðÿXm°;Ä»=1# ¦O4‚=×Å+ª÷ļ]}Ð@‘õ‡ *ßëC—÷ ¨ñ´+:yGn¥ÇcŒ¶XÆ&[Ëwz€7‘qÚÞçãFê´½e—®Ëqå?hÏs‘rü˜û<¦^Ìb8¡í¦D8÷£$‘Æ~˜xs)ñ[ÄCiýQ¡ò`:냼úÚRû¾Tš–Bx­Uuʃç—ï˜0-åE!¦ž> ;ì²R6 CÇZ¬”mcˆ­Ø´‹é;|T eùì­poßWýÍ“3ÄŽ(íTtàè©ê¡¾Ñ+‰ª0¤‹u•‚°¯VñðšÃÝ4†!0.O` y ]b)Ð䆓ÀRC<€ù8Ígp¤†K@P(æNÀy=€`àd–GÃ÷¯Ë{qј.†QI åP=½ÚyÌrí(~ŒBm!Á3ðÕN¾ns"ã(œW%mk¹“)o¾)¶$šbû¯ŒéÕhÚu½ß|²ïö@\Ï R;á1 mÎî›%Ôvý(tRîP/ }ÆñR®×”cKÕ7ØÜ&]•ŸOÉó¯‹äùÄ££H¥4rܨå9vzžÛ‚ò‡„¡®À¼1Ëî¬6…ôÊ/ž÷ƒšgÞþµVþÊrn‡@z³¢(…üuUM<\ÏöÜ ˆë©ÇßmíKo›éV)5‰ [UIˆŒÕÓr]lÄyåôÙñL©Rª ¦ÈçòŸsˆ}i“+îåPb蟜-ñ9yq—eè4å—‡»÷rüÙ蟙ó,E'Éïရ·d1:g»s‘4$#0uÍâ¹ÀÝÁ/jÀãÎqSƒÄЮJÖ€^»Mø}¹.i&æêÔͪu;øw6H}û‚ €½?Õm[¾_Ä9Ëî€{…{ xü~ñH™ˆPhå^á^A^ “ŒñìÈå€=W}?ÔÞcèAšs8~K÷ÕP$†"1ɱHC‘Šä¥P$Mà ²Z܇Ñl9»‘Ë ´Éø…ø×¿nZÀ'}cƒ3;y€«Þõ||]6h¿ÃcÒëCCp”àúüà1TØ\ç`Í.ÃMØê5#¼H*lÛ_ ݵâQFMï%÷ßj:ª§/b¸»épwýâþ—Ïöu˜¶ë’~|qzÿfÓn»í·CKö Ûã)±#æ 'N©Ú¾àÜæ$ˆ’ r\Á³…ÃÀšúób–åJ)Ê♲±x²Xê¼GßVzU»ã—òé©Ôæø¨ø«-ùWRm¢Ð•iQB=¢ÐóCt%ômBœ(¢m!ª8vÐú°iJþù¢¢µÜ5’Ðÿ5?8!éüR½«9ÀöM£Zwí«ùvç» /À6`ãÁuö>üEù°÷þÍ›Ì]ë~6 °þ.ÉÛýùÅ‚Ç 6X°Á‚ŸÅ‚/CÌp{)~¶W€l'w7rvÈE²ãÅÊœõ†Ç1Ÿ‡ñ™L΋žIÛþ|ÞígòaŸ³ž€OŒYÛaü2&ÚcòÂ6hÓı£™Èå®I­èµþ¯ }D²ž_€bs¶ú ÔP! GðÔv‚8%6Ò4öÃЈëÚO„„$”9N(ýº&ë“Lá÷s8ü´Í¯î‰%7D¥¼Ûß*Ñô…BÔÿ…ª5¶ÊÍ¡7ÈÓx'½ÔD€‘šð='ô‚®º|PD‰¢ïp§(´§E>;U÷ûiM€µÏǤ,á¸ÁPe‰êù)ce¨ mGólNX‰E±ˆWTœ“ "[#Ñ”‚šRÐáÞ«Eý¶¾Ûb5±ÈŸ)5P¡ _ Tx.Üo²¢VVsSJ¹/NMÿãuU$N¯¾pÔªpÐèr´õò•z5:ù<ŽZ±ûuQWT+`†‹/b~5 q¦‰/ˆˆD$ÿç³Ð‰]×õl'uO‰g‡q®ê{Æ~r!‡†õ+…õ±¾‘ÿg}§à+ë‡üK¶*rõ߇Ôþ•»â¿ê^Ëê—Ôs-­"­Šë›m- …ÃŽ¸ðO/¡B\oÏ€’F! Û”¥Ž§)ûkäAvvÒÒ øâ¿Ñ)€ø~4´è¯ý¯^6¿Y·æ°èÚ¹Z)CÕzIØÁdû7ôt<t€Dà8L.‚gl]¬Ä@¡ø8Ó*iL~Ú—XÑ„1á6óÕÌg§¶ë§Ì â$àq$Ô—› qbc¦}õ¥ŒZÊ"?^ÏLÛõêvÌ´}?ÐqÉ;­³}'íÉ­e†QÉ£[ÏP?r®göŒ´u3ܾ6$ck› ®Ý²áñ¨j{c»–غ„ãNØÀ̃ØÐÜžï5‚Ûwì ƒoL".³Ö3TöÁXCe*ûRÙ/UɨÕ TwǽÿrU†.!„^7Ï›-›º€^‚Q*Ú  R‘)N8ɪx… ¯O´h¶Ã‡õŠP4À@¹¢(IRz,n`“€pÁI’„Qä»Â‹¢ ‚ЉC˜7‰‘+zê×Êù”ôäŠÂ Í_÷åŠ<Ÿú´çP¬zý¼NÛ˜’6Tö<ÔßU+BÂü“+Z²%{§VÑ)†ÄF«èl(®Ñ*‚\·Ñ*2¨­Am_7j;â¤õ,­¢SÑX£UÔ WF«“{£Ì‘i¼12GÇp«u.Ò«©¹v W? "ðiÌSê%vÊ‚ÈgiøAÂCâû]ýùᇭ«Ûgý;p¼ªŽ®Ð§Jň­×,ù¬ZkJë¾Ìò™U»~4ãŦôŠF!JÑÈ ¢^CMèøÝÔгu¸TKÎHµ¤ftšÓîˆ$Ž"J†BUÛçzéÊÂqAJ¦0ð5ÄÈ F1º䀨”UYÙµŒ±¨œŒ§0I.M¦Ued*v ªqñõš|iöÌ×Â#潆ùkµÕF©'bšR²8¤)ç1áĶObŸ§ µS7dƒ×Ó|üù7ëWù®²Uµ5<¥†F•ÏÈ K–ìAšš™êWÚ ¶#.¢ÑÖиÓ/+ÿ[@:@ED®ßÂ)BâèܾTùLNº[vúÊ¡kG–è?È´=âT%¶P3L@ä çõ.Ž­o¥E®'Aì…AB]JbÏ£<ŠÒ”¸ä„Òˆ&"à0xýOŸ¬…àÖÕK ÇÞU3M•øn6knÈ„§&ÇÃI9øqín}§ªÒUVÛéɈ*ðÔOPÝa5ééé’þA<”8 }lÓ  ›·¶ö¶…oÿÂòDp}-è~êr)ØJeI®‡æ€ÌxU<”à^°—9¹XAŒö2‹|®äfžò“¼¸sKùwùžÞBõvÉ»ŸÄ'+0PÜÛHDìÒà"Ût›Üî×z-#1aL" )vü©M”3j†E›0‹vÙ©r,´Ý• ½Çáñþý­ºK×—¹9Í £¡bób¥Oõ š3T7ÃY<Ÿa„,Úñã²Üf`øôqðé¯NÅ¢Å\± ß”‡Çu ¶°áÛI]âÅœ¥Ì&¡çžMì$$>!~BlâùÖÐ ÿÙ\œ¥6óE.Ÿùy8yfýbɽñݺX¶m?¾ÙÞÝôZ• /è)Z»ò/-лOƒxNtY0j÷ÄÃÖ‹þ\/ÁÁqÚpÀvLNõ¢T¯u>>Ù Û'þ@uë圕 öaÆ`{#cúƒ®§ÞIõk°°´{s÷åÃΠ™ÿ]Ûÿ^,“'ÙQäÓ9‰ôŸ$x{ÞµÂl-6ª‡Wk dsl‡yvB=á<ŒsÓ4t mæùAÈ ¬rakmñû†;/ 9ó3k#Ù.´›€hÕWn ¤®z"ng:w*§ø¨5Ÿ»Žk.pBoºÔ!ø{šÊ~»ESk ´}?X‚W{=l.Nwÿ-OT¾«X#…ÝOa3•[˜Â‡ó>¼ª:Ó¦<:&é~q66ÿl=VSnÈx¨†Y8kò^WÕÃkP…¦§^Ÿ8º€‰3ú™üFÚ_ä_t2€ê•@‚èúÙÀõg± –å×Ösm5žlj‹°\Pàˆ“¬•‰52ZÔ–…ÛŽ‡}9™Ìn1Ô‘Ž‡#ùÃý‘AÔEAOјsÖKÒc³ º16-Îgº$¿qf g5§Ã1FK^c´$¼1FÉhN;ãŒVt9Ê.Gß’GÉmcƒ4øxŒÑZµ^ŒñFV3ÁŠoGY ñc¬GZ¯¨o”a‰ßŸMcY$ò¿–mh1FFËÑ`ìêÚ„ÝëGŒàGè[·œˆ¬0yè{Wý…5Ëä8MѱCM¹€±ª.643ZÙ*g`æEX¨ï®i#V+‘Æh©–ÀÕd fV5ý„‘}]F˜`M:ü•4a6ÛF_¥¸Å‡æKµÂæ;Ê`¿4RoM?1£yîÏˬðY‘iœ[­Ø5hx˜ª { +¬„.6Ì{x~L90Á ›G×íÒ&®aÁçÙ5¼Ò—ÐõqI>UVà|ÂÕf阣Ž9:s”v)~»h û‚!]À\ œb3+8Bã èk'Kà ŽA0"p"J+ é‡çŸâ×µÛ‚Ð#ár8JŽÇ1µ)ºŒ•pa,Œ@Ñà/ ˆEâ¯HØ žâA„‡Aî0€ 13†çÌq9#@‡Ã! 4(rvd€Ù÷yú|£'g3‹p 'Œæ91 ¬Ð  :9q`QWƱ-%ñºL£#É4r¨eÑvA1êÛŽß((F9iLJ7:q ÷©'Ëâ ï ŽM™Ë@R™E9³œˆ… ki^Í|šáÌ_EÏò`õÀŽl§=AgØd6uJá ÈT§î”ÂR¸ŠR¸Ó¯Ncü¬%¾‡란„ö1üU#e¬¡6õèL^ÆùdJÅNoˆÁ5[oxêšÁÃKë¢Ñc`››[ŸïÄ6Cîy¶ Ôã cá„„Ønd‹ØcâÛRPî Á«(¥ù0Étgƒ^”ãT|ëp]6ãœj•~¬ÀÎÕü… ½µé|þPàïÄ9ÚÄ9۳뗳‰sºÌgN³¤’M|K}\Ç9¹Ç™‡©U*ÐÎéë½d€rÎ@΂8'yymoÎ4X[(Ô%‘õE{Œ²!)K¡JGÌ/üfTpó³å1PÁõUÜ} G$ ›WèÀÌ«¤–{WÕ…ç zvÐe]vÐe]îº oúêí’ɰÄ#ƒQ0-ú»%£»#¯>o$6›×ÒÃck©øþ {™ñ(~ÿ-MÔùá§?®ªºüßd¤¢Ä MÊïØ aÈuØZ‡­Í'†É ‡2SA§ˆv¥Âjl׈°LŸN©8Ê¿'i*úwÓT•™œnõ«ÂéL~÷ äYrÆ—U‰îø£„ráùë„®K׎¹eÇ¡L0B/ö";Aß§ÚùTxÛç¿.>VgÛSGEøVFUFm‘dÃT.@,¤K„«W^‹²ЬÈÞT…¦½2ïy®KcŠñ«Ñ4-“±®&üáó‡_þlêgÖb"{¢èM’ðZÿý«Úq~Wµ^ýt]u\ ’ItöêÕfÜQQoîE¨¯×ç0­D–ê^ìɬÿ×eï뵞:)^E2MÔÅRÃ’lQG7[Ìx*ùÇlçô~ÍÕáÌ€9MF=[ñ?óµwŒ²ö=÷”\ë&ýLÉ qi=Í·•)ì2‹Q·¥ÇäD}ÜìðÊ©å[ì~¤R§ ï¼×úÕýÒ׌'2‡¸…]zë’ÍAï?ÿïÝÅÅO½ý|ñî—žúýöýåÛÞë?>\œ¿ÿpñï'B7.þj½Cãé8^Áƒ#ŸUâ±|½éÿKÄ1rŠAX "1ˆä@¦™]ýöó@W?}Ô¾½Èé Nñd»z1Š«woÃéÕ»÷ƒk9¸ž’h”ƒ/bp£~僛é@ݰ£›Á(dÁÕû?Y:È2ý±ÐVãt0.¯~þ¨ÿüði0ɓ頸ÿ ŠÉ ¸½º|;('ƒéÍàûõÕ/ïõŸŸþÞõ®Þx!ôjĽ> ¦«ßTÛ¦ÝðVz hxîŠügöB”Ñ9Ö¸D&[‘IŠD&7òÖ³|)píÞ]@ýq®ƒYîØ»wø¯_Ûᳯ_ûžCº„óûÜåØé b_jè †¡ïñ0p}Î,+r ØŽç{±ï„–c4¦D 3o°yÂ#| ©NT¤½¼®þ±ò½ôWiÿJ½·” ¹¿ÊãÖœ”Ïu?7¬œ.ÆiÛéâŒmuºÔÿº¶CÚõY|ßöZ\Ûf°$˜{¶sŸÎßþ&‹OÃáÚÖ áoœÿ<É¿ª j„ “ìZN¾,8òÝÎWëÐÇsºlÊ]þ §«ylÏÎݺgû¯û [žÏ'â5OuËÙ{XÍ¥ëü©“‘«m¼˜[Û&.óö nq˕ʃ1çœQ',âGï9œò ­ÐVï7;³„¥ÎScóÞå›ß1¨Öe—_5ÚôF¯H>©MÐû=)5f%GŒ4L¥ßi³Ù•ß’÷r]"¬™¤{øŽcq§åjØÄq·ã;ŒÛŒØ-õ,¢{/-} [{$ÜÞ¡DÓÛf3À3kô·BôÈgïiÔ6ÓùÅ"e^Zn$îÔÕŠT×­=6œ‡ju£!г}‡¦XHVŒ'­¨IÒü…VóÛ¦¡gÄÞ ãœ6l2)‘þ¯˜Dêus)ËM‡ì<ø%|’~„–ǽ¹èC»a°–‰ÆHAc +X0*ÀXõ[]* x±†yðE†%ÂZ5HÝ«_ôAï©`hä8 ¡£8UÜh£6²s½ ÑÝXùà SÏÞÝãžwèñD„zdñØa¶ø,¶¼ˆ¹‚Å”‹Ç‘ ^ÅÂòm'„ê òãL‡Þ{›Ý&“<«b‡“gÔO|ÝMx·¢{ o—3_…?Í€Èvcº³ì* ²]]Ö|úº•ð~Y·Yiíc£¸­EèSm£Èg¨áÂŽM0U~èäV]"Ð+¥9þõÛÏþüøéí t¸f¹ö `Šd4LÂPý»1s5«ÆOÓ/r¤îâ<Â㚦)´è¹v+’Ѹâ2KüpÌB5 Û@dŠYr7ž$Y‰8¹Gö|P!ê~€¥#ŒïäÝX”À±cõTÉcïÔû­GH_Ð&ÎuÙDšZ<‘RûK6pü°¼å tRu†ÐY§cåyȾHÕË.S¯Ü[ ]PU›À‡dt· }ÂÎTlÅŸp–µ/3jÎTz¬uO#ì1…yõøá5ë‘•è žC}ÆgŽ~3*_oŸ6Ì XwP-8¸Âûtz(â¸H®Ã쎶 d{¬^÷À›fñºnrrº^ÍÀ²#êFˆF7•;…@w£›«qrLcŒA©ð8•{Åœ‡3Øe]«ë©rbdªy^(Óñe,«}ë=b±ýþ±<Â?–á»òÇ(fàë÷——ê6 o™à¡·Œ|¼äÒ4Á[@^AM È££iá¢-<´~y9ÞÂ`}9t…uÈÞ‹ÁúKþúôîº[ª¸á¥Uã+Ïk—6Æäd³†ÄæüeSC`?]±¶É–CO–¶ ˆ lÙ NcaZð¶äÓ¶ÝÍÅ?iRVf ~)ð¾ŸÄ\†hi5?÷³¼Lâ9­5óÛA_Ž›=>Ž2³5¡«Âp×0ËGò6.6}Ùú¬Uøœª’É¿þû\–áùp"Ï¢- ãËÿ?¯àß³¢Jž<[OB?F~“#dNqÓ8äÌó¹ã[±Œ=‡ÅVl‚±0  }Iß·,ÙQÜχâfÌkQÜ·¶wöÔðtxâv<3«ÞZ}dkùðý÷<Áhíús‹ÀD÷µPOÆ ±Ž‡ê^ª|¹ã±ÆÃ|²‘YÛDè˜QÝÈ¢W›8oÓ Ö©oðL5~ÚÈì[qð 5bS²iÎ#LT9¦ÐNƒË6µÃ/í^ñgJGœÄ‚SǘTä:Ô cÙ;–ýÞ±˾c¦ŽeïXöÞ¯ÂǾrtû²ÝÇ&[ƒ²¥&Õy ŠÒšV˜Å[³ïjÌÞË Ã-—Dúþ‹Ë¶¨õ½Ö¥m程ØbÐ1åpëTúQ·kÛ"vê~nÛâÛ1§»N¼c¬ë <Æ®EÅcL[œ<Æ´EΣLWx®GØ®xû}–û=àѼàç1êœÅ[,{SKMÜ›Ûúƶ¶©¥±!âÉÓæö Q›¦Éô_nlh~A8ò’,ù}3«†*QÅ».@•ÿ^S `­ërŒíL7€²˜ N¡íߊ}6±A?CÖé{cSL¡ð d¾±1âi²‰Ú‡×~ÌÅ)°wu›ó74DnߪxþUë¬üìã“‘ ô«U;^ÁÀr=žª  £Húg‚²˜ â$¢®ã†$lß¶|WŽ«§Öbœgj7½¨‚u“lØSÇ]n¿:_D¥Ñb¬ÕÕDßWe¹~«æüϯ—U‹Éê§ú÷WÅÞ_©¥ù¦@›-BO<Û•à@®˜ñ3Ýxò[%*XîK½ÒeLãišª“*nÊ|\•2Nf丮/¯Qº¹¥Ú¹Z=¼Ðt›n¬y£~ÌËŠz¥;Z.t«Z¬òNhÆé9iÐuÉ|ϲZPÕl”?õíé÷Ûë‘-î¶—V’ÌL pÔ•È<î4ßX›iÉ-Cþ½Ú ‘cm0&'»nÖü:Ý,¶*L]Ž9Ȧaû2yõ†Ùµç—gùb(35ûŸNJp½³ Ïò Çú9V=òµÝ®¶±éAó:*}r?UÒ´=»d€¥ßF\åÊAwÐòõ68@Â4¿íi‹½åãx>¸,—Y§GÀÆ;v%?°Ê~ô'gw5Ì8DH8–c‘k‹‡>óÜÐõ¢Èq]îÆNQáZ¾ i»öi]û4ƒ0ÖeÔÑÒ£}ÚöpvKÿ´Ò6P;ꘖ87ÔÝw]Ôº.jGQütã׃p']µ‡8…¦=Ô¨-¹ã;DPâGQx‘ønò˜Ú‚F, žåS¿ÙõP;®jÑ|@Ãór\ç2K*¡H5L«D~œ V&RÍš 3M6èX|1[0;ˆUàþc¯HFI*&:4ÿM¤2Ï~ìýÞÿCêU”_Ä(Éò«¸ûë$)K™õ¦ZSM¬û­7ù%R×ì0TL?‹üÃI^ý±ŠÝôéœõÞ•sM©÷5É/ë™*BUŒž:± LÚ§óSmèå4)O+¨ßE¥¨(ž·E,¯“ ͨžqâ·ÂzJ=B]«ØSjû*Ö¿?´×ý·Àø/®â¨“±lD¿GöÄ·,Ã~ˆ_ep5tìx'Ås<þÀûýD¤úÃ=+å]‰«ìU9èÐJo꥞ë}tÜO²Z6o¢öõ™÷1§rod½¬¥v~°iy¦Å¤Z¢êÌË›ÿ¼¥LÆÂmŠÉÉÅ#7æêŠÅÌq}æ»ÒgÔ¶ë:qì«x˜a@„e éÔºÂD]ÁuŽC\Z‡PÚ51s›ê Ïjª+<×®=»·A0PiÅ‹ÃdÀºŠ±‹oâxTËbêYõª C1ŃTHƒ±jâÁr‰N'Ñé$ºb`#ä «k±®_@Ëöawu-ººÛGî7Þ=.ñFãoª !žY¶Ç쀒ç̳BâXêsßq$,íô~`wغS?À8mÇ­œÕ‹W4ãVn¹®V4õŒzNC?@)ߥ˜§lá²_b&À3IÀôm»™»Ž[; A'!è$„àÄ`# Á©ä:{–„Y´Ãv%3ËËèúmí¹iÖA-ž¨ÙÍónXó2r7Rlèýâ5½ç­Oˆä­LŸHœÀˆtÈóĖ㎈bÅžϳ„ë{qàÆ~àãÄ ç¿U²Ë7¿cÊš^æqùUëÞèÉÇ#µÃz¿'¥oä(Q…Ǩz6{’©Ïs͵6ª–ž"'ϸEtMиa‡2æÖëL©ð–oWÏ­Ü|µÏ^1_ÛJçI0“D§ÏÐSÇv¹!Ö±}o˜V®·So@«©:,ŒÏŠbÛ4ó–ê —ØÑÐÜ]÷õÇcÏß½¹Ó™G­ þ-!d8š{†2Éê^ý”=)çÜ ®ONpýä!Ç®º‡©;ǨÍ]Â|;ŒÒ¦,äŽ 6|›QOk£}êQ;d]k…®µÂžjÍéÖ Ô# Ö ÌÙ¡Š¾¯æÜ–æ /„m6l¯p|…çj½˜aºz×[¡ë­pãét{‡›õÇ]o… Ò¦BE/”¾/Eè:Ò}„±ãúVÈX9ˆÊCÔ°4—®¡KصVØg= ]Ý^ˆîP×ŒÖ  mì¬ðïgZˆªÀðAîV×[¡ë­€w';Oê¤q®§êJH$(•÷\Ù‘+}á0߉³©C=—ñ8”’z¨t‹Ó¬zé¾Ín“IžUìøÉ#[§ãÿìîéÙî,uoOOÏ¢„YvxbÚûá à‰ù®Í¤·ÔÐã嵕³üGÝÅ“2F=3×g¨u2„ïxh"/˜ª—ËäV]'…ÒIŠoY®}˜" “°ÊPÆŒÅdͪñÀô‹ÔÅHòZýÊ0NÓtœN‡ ì´‹DW9)eQâ‡cªiØþ0Á4Kîªz-ˆ“{d¦Ï¬òÀ£:ÍKâè´É»±(c+5/pìzÍU’f}@@›8ÏJ­ÈL†Pƒ‰”Úm‚fÅ ËèPQÞ@'Ugu:Vˆì‹T½ñ2õ潕еÁ&ôNÖ’…mj+ìLÅV½ÕÓeáæœt"ªÇÊ5Šú³" ªE œ>T¢|ŽK FéóDßk Jés <€—^¼Õ>m‰ªH¬òdûÕÆ¤ÀÁ•Ö@§?¶´«W?ð¦Y¼ú›Ü´Æí/¿5c]aܽ—íÁ—Ò½ž*ßD¦:Q*Øý2–Õô7Xý‰ÂŽðOX¸rT¹Y3ðõûËKuÈ·LðÐ[F>Þòrhšà- o“¦äÑÑ´pÑÚ¿¼oa°¾ºÂ:oáÅ`ý%}zwÝ-‡)›­âÒ~•¶7B›³m!¨’.Û)Ë¡ˆÇCÛ¤KoÙ@k6 Uk[AmØ-Yü“&eeÙ?E¼yç1¤aZZ ’OÇý,/“xÎ<ÍühÈ™y&ÃwˆË;9„nY—Û@·,U»áËÖg­ò´çlj”Lþ5OõžÈ³hKJ÷òÿÏ+hölVdüLÇ#§’Þ}˜$‹ÐqíØö¸G¶° ŽôÁbĶåŽ/'à,ì2¼÷šgÀ¸Ç|»•áíÚ®«‚–z†7!ŒîһݗgÐNò~! Ìó>ÞDêØ>ë2½×8‡.Ó»#)6ºO«Lï®ÐÙ½à÷ѵƒO «™—ðB×áZ(6žCô®†ÖKª¡u\5Ïá"\ÓD¢È³].8ñ) Yì‰ ŠœÀeê—#<ý?{gÚܶ­îñ÷þ|wÛ™XƾLßÜ$î=Íœ¤Í©ÝLÏ« 6Úl´UKRçÓ_€ÔFY²HJÖft:­- E‚x~ü? ,%Ôh…e¬x+žï)CйüÎH^œÔË;¦&X¹âyؽK–*ž#Ê9ÜPñ<^“óòâ‚Ï¥Ú9 ¢´îW~/ŒÕÎcµóXí|Ï­ãË}Ü0ýx7L?Žºc‹p‹»¬Ç]Öw.r²±Çî*?©¢ÉÙT1Ÿ¼@}PÝðf|ù%øË¶soƒ9æÄ‰¬± b´IB+ ¡±šiÊ¥©’XTMìùwùë•ô‹PÙe›=¤5Éuš¸[¡å<_7qLÃm„à»ÙUfK'̃¶M±2LZœ ÄÈ ÀRj¹—Žâ·÷þhñžNŠ0¾òüš4ÌšcW8b¿=¾ ô^,õ)a}MW¸ÇõrF/æp±Î1tC‘ãõ¥{Š=qNݾz‹›Ó÷‰ ÎwÂ8»Õ‡‡é‰žg@Á笄­7Ã{Óà EÒq¬CÃRBœrkŒsš¤PZ™FøášÚš”„mg„×ij+Mð‰)k[àãÙ»ÑØ¢í¶÷hlï¾bƒ³‚aCˆ¦C¦¸”Q¦€¦sM ˆ¦÷%šÞzqFþýngzW„­µ¼§`´•á=êX#ÁwTÝ*Úßh do–W­ý» X(ŒHiꈵþ3D 1¦2"^ºå=WkéWP"øRÁw@‘‹A ‚Ê6dO­±š'm/Ï, …êQ1$F‚œ.ÄH ²ªeŒ‰‘ ÏUÇ`_,n€(g™Cã© i•#ª9÷”ñÈâç™!‡$‘eç"÷;Í@œËsu1|]ƒÈâ‹ýöž¨€A=¸Žu ΦcBÜ Jˆ ó»_¤·¾EÓ¹ &%J"¢4r{LåØb8`ˆà7ʘju£n'_'¹ž3ư*PÝÞ;=j;õÒìn<˜°ZXX .*:jßê«ÊÚJ·=&æÇ¶’ÿöÆFy–rmOV‰ÿÉ3Ø ×dÞ\Ï[æHöàmÖ×r ü¯º¹mí–Ž&Í¿}ûÖºëŽCëa/}óßñ*,ùZ÷£NûIŽL0Zæ(†8”|-Gyh —Û0TàRb`bS)õI$ìtž^æ­aÐëDZö?&×½ŽÊº¯’ÿ8.Å0êº* 5TÕÑÕƒmV\ªÀ¤‚rØ —¦gôÖ.»à”ü¹Í¯õóJyƒQ¦Ú¿¨õ‹ð—7ZÅdk‡ÛIâÍôŠV%•ÃlüxÔ[FîQa Ëo;<¬6í}/ Ü͆¡Ýw;îô76ÊÌá$¨§ð§zÔssø2ušc•ƒ„€aêsÞRj#ô&Ö0æmm„ŸÃÁO€Pº ?‚'à‡3"–à JðC%•¶õ[aÏëŸ&ø¨¯ÙÈÓH¯®xô|$#EzNÚ‹ Ô„ŽÄ±aè@0TÙל…`Ú0a)…’@í$ñÖNÉ”‡’Õ6}‰,ôL,$ \b!Æ·íxÄBBH¹ÄBÂe!H’MBP𪭰ì5=h§IB~²NïA ±ˆB…" E:K2mÕQ_/­Þ2Ib¿5 DbÜX …"Øb‚"ÀJl¥Ð(H(ÐÊ ”âJ0ô)Œ‡ÉµÿâÚœ:Þú/øúSu ʆɣŒ7• »ª?¼ï’^š‡ }Í´8†]8èEqÐVòn‚•º¾_×9ël’¥‚ò¨£ÔOÂûpù“Q/ùâ\¿à£|ä‹Ùhã~ø³ÿÕ=•àüð{òïÞ_ü÷_³;×N~é â>]§Õu£ …Ë5ë#“ E\À¥¼:H ’®ä?b¢B¦ÀlŽ_ó´ N½¹¹N𥿯þý”,…'ý”¼/>iÁ…ÏÖØOÉŸ^}xw»o›Œ}ÍFW7ÎŒþ‡JP6Ö®.M®ùÂßɾy¬áVƳ)°*€gÝÚµ +\<‹ÔA Ó¯Úzj·Ô·/u0xf†<]Ä{^&Ù?l_“®1HHDÄ$‰–ŒG4„Þê+á8aW5€¸#•àu7¬oÁ6ßözí/Ù¨ªá; ½ „!Æ]ÿït´Q1ZNüúîÏVrë) ,ìI<è÷¼¥î¥£½ÏÓåÇcHÚvÿdA‚Q]›øæ…Ó{fy›ç×N{Q„.¿ò­Ã­ ýÔpI>¸¼Ê»ªü åßFGÞ@¼¡÷ý„ qÓ_3uÎü?s£œc‚È£] O1ÝÀF»fþ­^PŸ²›ëË®ûqñÑ[ÿ8z™|âŒüJáGp—ùUðœà‘ŸÇ°ïo@8·ü‚»áÉâ[ò¡yÜad½nä§>”°L;ˆQÞQqÄù¦íJ&DMïÉUÍkŒ*ÃÑ@}õWòËÃQ‹¿m¬a™¼ð¢\̹š›h-özûþõ‡×Ÿ>üýݧ׷?o7ÆoÞ¿{Ûlˆò¯õÆwjÐä,t,_†Ïüúûëßöè“#}ÎRejï©¶²û6·øÑ`k>¯8ê”u÷KØaúEÿ²ß½Ë¼aVƒ·OÊ8{í¼)°®k²µ|ˆëJ€3u'_¯”­ ö³Ž~ù4í×éÕê×àՠ櫊_+6÷‹w`£¿1yÝW}a iy–gÅöwWuh›¥i¡Ÿ3G»šP³ÄwqŸ³‹³þŽòüâúa¢1®ô,Iêˆ(èØå®Ó¯»Kl¿x?®µƒòr·FÊÊp UÁ/[½v>…P3_ìÕèÄ¿ T¿îåú^kÕzvÇ^ø¸§ýup£ÚúðûÛ½ QÎã+Ž·bàObÐ>U© 4š¹€65 0ZvúfßÉU“jÍíæf³³Øàôœ½ˆªÐö‰ï´ØÌeªB» ͪ~“avô¯MŽÙ*—»ÔxÝÅž5˜ZcÍ+ŒZå‹/Aãs«ïÎq¨Îûð9+ C„1¬Ò"maª…­B*eMµêëQrŽ’óÁ=ì¼–‡!L%[’œ©´,9sªÄ*>VNO«ØÇéûÅCŠrÃZ{åW”­Þ‰¶yÚJO®û&´›7§ÇÍ^›vó²µc…8JÃQŽÒp”†£4¼'iøÄ£Ëa í©ðiƒãMèûIÑÙët4Õ ë)À õâ*ÏäÊŽUžÌÕ÷6Òv-uº™”]劬”Àë(ßUï¨sG;êÜQç^§s¯I¯ª³Ûhc­!j˜© ÕÆZ¤0‚Ì"i!2È …C1¿êdÕ_PYýE@°õÛ…æùU(”zÞE~U^¸ge‚UÝÒ=/9Ãê¯ðÒyR²$2¦XÍ_ÞcŠÕ†#Ä«mœÝ{!…,ÖÊAÈ)EÈ¥‚2Aµ_î5 æ›=X aµm×¢·;z»Î; ï ü8ÁŠAÂîéso7ÃX² û],ÂΤsªþîã¡ÄÚI^Õ‘KªÑáÞuP8:¼£Ã;:¼£Ãûé#D‡wtxG‡wtxG‡wtxG‡wtxG‡wtxïÅá½§ŠbÎ €p€R¦$ȤL(ŠÐX2†‰F6EÎE—÷©JÀ °Z5¶r—7¥»qy—Ël•Þõ+m½d·÷‘Uë’D4Ü&9ú¾£ï;ú¾Wñ@ÿ¾O/ýP¹ït°-Ðj±f›ïkŒF˜PLSå6\k.u(;Š4´–¤Øa*1ÁÇ_>ÒäçF~} 'ùÁ/mW•þüðþ÷übø¯¦¿ïŠ Tì¹2sHw{ÝK£üÙWü*o/{ÝöÃ…2ÆO¼`Çýp9(LÉ ˜xëm¼?f  éoÝ?£ÉU?óÐë$~vù¿ª)–¥K¿l½úQÓ[Ú‚ôDªæ×lú ¾Ý erª‡§OO[ÕnÎ+Zͦ‚¦Ð É,DDS€ŒµRCoÜTªªÅŸl¥¦ä±'!Õ2¹s]7ðVLéàt7“vÓÜ@o:Â_à »,§¶ß®ß¼+M­ÏœÈ$]r…ùÀúÁDPP&2ÆAØØnFdŒ“MDŠOÅH¨Yø…X_õÕÃ1p˜M£a&ŠÒf=©ºšt2Ôu4uäZRÇêKÒ¢›gØá´#`¤þÝðï•ÂÎ>œN€ !`ožŒ2 9`µõç'¨´š¤ºZ]Šgq:Öeîîæ?ïçñ¸“ÚEÈM×´Ç~Ø Ýó âÙÊ#@ŽHI~qóŠ }Ûû\üfYÞóÌiCPÇ7Å!Kõ¨0,†æbÈ@•ZTóy½SGã¨éþ¹¦îf%…fúœ5ŽaùìoÈg«75œ§ÀTl6›µ{&ÁóçÿoTä/vD±£E±g¢·þß¡=4»…«å®YfçðhÂVÉ5,éj³5ç6®ï³ºýÞ1sø0üÚÞHŽÓŠÉ” vŽBЉ&°BX‹­NIJ 6{’ã:y—¹Ÿðæa8räSòîãÛ©Vuî|()«£Fa‚i™¤äÄ„m Ã™5™Q‘:5EŠ ¼EŒÓä¶oÊ‘*ZU$¶é˜QŠHT½âÂ$§éÔ>ø»V;ï¸@ ƒ,K5¦P)͉T„jRÿ;Ó˜kÆÜ£w®;DÊMuðOÝü罿FÉÏí¬Í« j–‡þs÷.ëºÖÅ‚í-®j°ÓW“î¹ïïmH÷„ϳ˲N¿í:EÚ™?rùSëÂÆçn :⯿í_ —ÛÂ9NGLïýr>Ÿ§›O¤´Ð©7%ƒq^‚5$À»¾(ßÿ÷ë7n…†­Åsþ>•˜væÏvv˜Üí7ê`×™Qá|ÔÙÝüÜ }®•Ì g;ýôöñ™‡,€a.Õ}ó6Ý /¬¢Ì¨ýî?ΓæÂ óœü°x&!K?~ñ']JóŸŠ‚IqOf"àä× ¥qòÑdš_ ¼-ög4ì»SíÚg-&Cf~uôèŽQY-’‹Åj®z<ܨ7çÁüD<5œ-p0¿ëUUÅIëf*Ö¬ÿfª¬ÚnaâFÁ0 †'DÇUº F+>Η*¥ËŠÆ¸Jëc—žöÝ*‹“ Y]Z\×aïïÝBýýCÅúK$Ð-SÁ'ÐqC¤äZ‘ZíM˜ãºF¬ßô í ;ÁÏá@}R‡9ñ—60PÒ]»}áÿ?IåšÇì%?v¼Tç)W‹F1\”iTÐRî”`Sш‹NoþáhDm–µ·ˆ–›ÞöMfiÒ¬"ÎFòäK°°ÔVD¤®BÈ÷1ø^WsÇì8éÜVQY¸ÍÔLÃ_×Q^ ®‹éeyTGHéhX—37Æ{7kýS¸¯þåÊý‘ëáIý:N½WÅw™ØÛb R¬ºz¨{£áÂf›mTB“¿.-M­äÞ¿Pîv÷ûï4|ðWãôù/Kw»<ø›=‹Ÿ‚"ºe5ÛH~#­t_9æü®¿ áeþQXJ‚þœ€â¯ð¿ØìÊæÙ+~ã'ñ›¿þuŸÂÚãhƒK?ôë`ȦAÚnu_ûBLç°Õ}ÿ¦¾^P[íÖTØžšôåÚÀ0·nöjÅâõ°rÏ‚†`ÎòY 7¿¸2ϳ/¼<0­ÜY­} âûS¦îø´œ•‡G=›3oã– è)?hé¶.Ö1 ^èò¢#>ÍPœ!li&QÂ2ø?ÒHÆTfÊPœ#·!dòÑ=p_ßæç€V¯à¦¼Žf¡÷§Ãaq]Fu,:ÄÏän3÷‘û ’[‡Ëƒ̱ž&yåCÙ‡îèê"Õ=—ÑUYGÛ£CuëyÔÅ8gÐ=æ®=X ÜÙÇ0‘†÷.u4²Úõ›WPÑhõ@:u_Û-ò·³~ •Ãü²ŽeþÕݾ‘ûzœv>W6s·ò[w¦Ñ_†ÕßJÿÁ ,DÓ»ÐScÝ:n°ã/çÕßüagÖ½áÁ暺GäRû#'ðÙÉdöÙ㿹˜æeULÀ\ó_WãþètñáÉ¥ûðÁûƪ–‰{R`ÎV©Š#JWB’9,®«)¤Êu’AGˆåÚí_ qÿ™”e&ÓRi¢™Æ˜i”e‚ÆŠoÁ´Œ>Ú˜2úúñÃogoŽß½_‚ŸƒÆÅD«*ÐX;QØIÊVª@c¯¡Žyn[=_¬NÁþ¦À)²xÔ£¾f…®ÂGÓcŠ»mÔCÎ=ÈižÜÀœ²3OV’é8¡i2•h–%Òm“J0nb.´Yª '©E@(O}ýüaF8 Õ¡ƒŽŒãVÞ¡î$ñ×ÇŠ¥$*Ø[ãfbo[Ù/ÛŠPtƒ,7àëø¦ õÓ@_ûB6µjT1ê¹h¯Í2Ö͹ÐòÅÏ@7³³Üì¡r7Ü\饭ʮHÈŠŒXe´ ¢ʬ¥Dg)s,Â4R:eH;*bÏOB§Ñ°¸>öå¾î— ©ï(Œ®Æ³Ja‹`a(Ûk¢b<€¶“br5ÔÓèïŸß6Ç•Gï¬)tæš”ežäã˧U¤½–¨oÞ†®¡‰ÿU“óQý,œmþ/‹ Ÿ9xNk勉W£jb„ä²=*F çÁ5£Ù,ï †I´IÈL3žk½\¾U°£«îs_¬‡ªmXŽ*]¿yºg—s3½©ºbBtj,f™à(ͦ[‘"C9qûN†%M%Vv ñÈwj€Ž÷Rò8úôásôê“—‰fòÇÑçÚÂó::={_« î„îx ë&f÷G]†5º«Ætð¶!*ZÙ†°B«uÑ0‹ÉŠsS s4s¼gŽaŽÍL?Íx®YÚ›VÌ1ë³gŽž9æ‘Ã!ŽÙÓÐ=qL¬~° üäß &åyÃP•Ò$E˜fœdˆ"[KYj” TZãY8p,ñÄÖž.6õè7wÑeUC‚äÝéouE”´0Ö}½Ys‰È¹Õ¢Ž†fÂ?pÈ ÌG9Ny|±_*£7_N?ÕMít?;ýÔX@fc;I•J/ 4hL6‹ €åvÀιÃíYWzøóshχÎ4â>ÓPŽgšX »%H”Ée—&J®3¦ÔÊÏó‡iio®õ2ɦ„eh¼±;±{wÙ$ É iPr´Û>®ÿp Κëë+kve»ˆ1Ìë-Xc]y ×®ãâ]Ù:2.pª3š%"¦ÖdŒÃ[0ÊO,ÃqÊ # U-”©ßÀvè'r«X•Ù-…|iË™4óBÐu-·#(g1¼òîØáæWo>¼=˜¡G]ÑäjZïP¯`ãt|ùú_Œ®J¨¶Øù@º˜º0Å­Ö>:&:5n«÷f’áíÑ’{¦Ž¬iŠ¥Õ^æ£Á+{r~âÁàÔ쾎FúvåTBýF¦H¯¼“§jü>+Öæ<%žŠôÐùEÒV~ +ßá7{c¶RBMPîz5Ì<‹AáݨŒæcŠöÆ$C‰äO/‰¶fCúáN±i Æ8 U9 jå·=B¥žb°u >][~ VG?ÍÜ1¬+4vÏ®£©0Ü2–£jòÍh;Zû-z*<CÚVÌhOӥܯâýCDÈ!mõ,}ÛVc¬jÙ4|Jç­fJhhÛ¨ý¼µŸ·# Ž×·×ú™#[F`œþ~¡¥Æ­nËCÇ…< {—:‰û²¶ 1k˜ä&(ò6r'ezÔÌínó iz»²|«ÑÝâgõíyà>ÔDYKP­7J’²šºwÁP9A½0#W §Ï_àmùÏ Ö»_ĤÁæ{·¢a 0)8~]Rxï¡Ã"`nçîåú{Èúç0¢Íª¸´c(°FâSÿºÖÖë“„´ýß2ˆužÄ …·.5“Oÿua•zÐõ`K°_µiíj˜¹Vmb¤¢ß·ˆÝ»Ø­»ä†æaží¸äT&±Nc2–ŒQ¢‰Q”cÂÒý“¦œ’n)h%nùC~~Q][øôÖzgÜi]7㬩Ó½úðöôìõ¡Û‹$¡‡û»bÊ%Z11´ªrÌ_g*ZvuÁ$í]]»åê‚@ž *ŠÁ®ÃIãõq^½~Åã$¯Öê|¦ìM ¿bÿÀ>ž„ör,¡ãüÅ€=ùØ8üÈ¡{ÌÝõ T‹ã`õzÂq¥.›÷®ÐƒžýÅêá#ÿ v]T˜äAÙm8øLÊÓTaæþˆû)”Kbi°’g6I3ɲ-T®¿—’þëÛ¿¿y)Š;j–¶(ôŸZèa9*G*žà°ÏD߯pd‰„|:ÅÀˆ‡˜û|Œ{ƒA¿Ï÷ƒ0d1Å ÁŠJM$ƆЄZb4SI,9IY‚-߆Ϡ/Ƹ¤¡kã›À” Fîcäbµ£\WÝyS‹±/Š´þ ‰â¾c ;Š Ï–KúŒI’{—Õ·ÓUíMžuç‘a1ã*K5Ds¦i¢“$±F&ŠfÒr3*QYfGSàU3Ë»¯ï‰^Ínl”M‹Q”@2ãµÛßësÇ ÊÊñ hÅDõ®à)ê?ÏÞý»ç¦/ïù¥9ìÐYIÐ{…•þ4ñF1¼ªÓÂ9æt‰”8gë@iÙ³º÷Àìžf]Ò5+94iëñÝî ÕùÒ³¼æU»yÓWø‡ {®¸6æ¦;®H%G<5„8z ˜šÌýÁ‹”5– 1 +²…úB÷¹â›Dosx†“«ÊÑÂ[@Šw7é,›1n¡ÕD „Ë&Îãâ³0-{0Ø90ØD|†tÍR MÚ‚ïv_À ßÕ|W÷3¸û]ÝKÖth.°<Å–¥ K¦cZ`Am*q–dJ„ÊÒ$#¨“m½–¡oËÇÛÏÿýÁKÊCÀFö¼òó6;»dˆ®F]L¨+Êò”Ê{»Ÿœýæ¾c›»d¹@¬fðóͲ7¿Õg{jßܨ~3ë„æý9ZÀHýÅÚÐËì‹´%ž?ýöÏ„<Ívú?õsfÍ[ëÖ&cÇiþ(XЖ`Ñgõî+“Ñ6*'O×GY&myPáU2OÔ‰lqä¨íõÏeS®’mtìê‡ßp‹á™)ˆ¶Ñ‚©i{~´:ϳ39|ÜB—óÎ^4¿€ ö¢Çûx\-óá7‰zkÏ"oöŸviçœdûñc£¢«²Ø(÷¯Ô*%(L&ÖÊŒ'šÅ,#†KŽ4Ö„oÝ·éÞP@(ó¨Ž ;ŠÜK…®¬÷P s(úýÓû¯‘û>àËY÷’q;(íùÈÇŠø[LË /JR«¹c’ÅËå%°ë28 fkŸ}¾CÑ[B’ ‚Éýx® ß‚6¡ñ[¾¿Þ&Ùp…Ë wd¯¬§u÷0Wî¨0qŠâ4“œY„´Œ3÷IœðŒ‘$FT)c5é6¢ÈA¸¹K8Ð,PIsEG¸)°µ8f`G‰5¦Žo‚ßþí‘Ñ»ñy>¶'Ñï¥Ï7¿°¥]êü¶¸òõ­êt¨#>(®Ç¾ßzEv§ÕÃÛp¬'3'w'.†et;Ö¸ª¢ ý½Ihw7l8€ýE guÍW‚Ñ#]Õ¿µ7>Øy»Ñá³ oÅ.1»ŸN'+¥±(ZW±|Î.óiÒ‡¨ïäHD7p¿†jôÏÛÂ΢ßx^,ðtD/‹¹Ú=ÁÜ”:\-¶YªD"ݶŸJ–¥Å*¦X$*s\#¶©ˆt <¶×Ñ×Ïf9p@P“óÀ÷ø–ñSTr!Wã§h¼bŸ ´•¶›yX_Ø¿;nX¡äÁ×nØ×¬Ô7ekãÍãÕvno÷ U^<ìvx–;Òºyå]è9ró,´6Ç4ÖÆ¶cž°‡y þ ¥Y°®Dƒ®2–)†‰ÖF©D¤R¥¡±ÂJaIœnˆy~ZúúñÃoþV¸¯ ¸n"Õ·'ª.tµPããJ‘›#Àk=5ÇÅxx;XD´¹î|<(@ rˆk3ÑÕ¤¨ AîÆ±7UsF=Éë ¹ú)9t"“qK" fše«‹+jƒDa\ºa>ç{¢®ˆ–ì)hƒ”ÿÐ:†óvö”E¿=sísíˆ5æy¥$¯ñ\vOD³TÑ®€(NpLS‹©Š‘&† &…™ÁiÊ„QŒ`"8AjK棅>Ò~FWÃ*?Nn+»¤¢\êÌΗç¾,=6ƒ¢6_Tù0¯n—~W^¥‘.iFŠù/€¨l@1åäÿØ»¶æ¶,ýÎ_Ú‡»J¢û~©yYǹ¬³qì3³©}qõ #Šä”ù×ïéH‘Ô…€ƒ—%ªÑ»}¾>ç;ßr‹3#5ftƒ5#5¯‚–ë¼AAR‹=üM5kw/›Õ„@»2ç;‡€z s ÓÙ¤–Ëê%j¯|ïßQGÇS8ãˆÊ€&Z8)6åÒX¡‚äžÈàEKlÝDÏ-Y4g_F³ìÅðìËK€Ë×6™ä£‡šË& †ð–zC­ã †®[*.ΞœÛ>oeMéy?KœÎrlRZ¤ÞzXÑÊF®‘.û1Òâo§çØ™»-¡•.%ì<¨9r´Â´Ìfrlx@Æp–žpÍ9rŠuÐwZô²#™ý»ŠÇKV ´eö1AëU,1MÌþ¶òH/Øk.Þ§vTõ‘FV¼—!é-øÑ †œ]¶¥æ‘6 åÑxS-r‰TL°Ø(MpäPo)¸hÃõt~‘Žñ`a` Á†zs:“3ø :Îb©£«¥÷ ûáçfï> Æiç½9vÛ­9m>Кð ÛÍ‘Ø8²sŒQ]Ù X®}ð SÁ´‡`ÌæŽÝZÔ ľzý Â_P®•!í¦ÁO×¾¹w°··dï±ÈóÜY0ï`Ö±ÐBD'&ß0†5ŒZÎÃ’#¢ ؈ÄS&Š‚•š^—aøÌÞ$¸$·îq¯&ÑcJ~Uí >ŒÛ~æGy™ CqRÁØgSƒwRÃãG ¸•QQ¶)ä!4—z½B¢Öª6éž­‡ ‚ r" q:wQ I]ÆAì­GeäP­–!ë&tH×>vÈM±pg£ö\ýFrIüÓ¢8Í"ÎKö_¿¾û)[Ѫn ,ƒÿÃÁÛ< F:&6ĘÀø&é|•Ú^e„™$ðqY1« ÷2DœO¯³Ñb=€2Îa€O§KÁ[X¸ÉÚLá{/®à¿‘³÷—X ©Gn¦?H¸çž.Â&>×ÒèfÅhRbhù(ð±UJÀBN¶þþ‡±p]Eº€UwQÀ`% ã EÁžÅ9¦Ù««bþ*B^ù©[.ä¢|~ùîõ·ï¾.§ Æv°V‚:‹šF ŒÜm¥šv쀪aÉi¥Ä›É!„kAäz%~¢w¥¡®ÇQª-¡¤t,’¢ aOÇW`3v§ÓbV«Õ(î 5{¼_£å ÞÌÍÀ¶ÕiK{\nN5ÃK¸ØÉY9ž ¶¼šÅñ:5ñûMà­ÿŠšî•M`ÿ*­ ñ¶TVªó©6¯”‡(eU^ô¤áõã¦BxË+žt»æõ³öX:—ébÌÜî U²âöÝT±0âËñç¦#¿~Õ“ä)º‡Ô0¬ŽT~4ÿµóåêD÷x¡«ªYü呺XÅüsį¯"Œ;|¼ô¦ïWMN¡9o›Ávøl4iï`+rΉÆ\;„öH å0ŒsLuÞhÎl°`Ü,‡"o'™ñŸ }r_—)+nŠE¸LǡҞΦ”þ‰z‰×¦@磳 \ç²êÚ•§< ÃOI5ñbÙõéÃIù3¬üë˜Ã7HgàÙl\äËK—g18ã­=0¬¨8ñ, íãùî>‰Ki|çQO²ëó‘;Ï.ƒ~á=*¶.¤søÚ€«o–ýÞª)Ge&Á{¾ËDÃ|ø°ùqrÊïX̳¿ÿ(ÒÈ4æÿ ‡^` N«SßßÎÿH—}1_4îÜ&]9‹Ÿ gËϾøÍù|T,¦³ÈJÿï«É—tµ»ýpxÞ{yû§ZÝðT«¶ˆRÁ‹´Î ”šÒŠßÕfÐi;v¤U„í2¨fu=°lÕ˜ Xuþ\zý‘ê¸T-…)–oOû‘ oM‹5D´SX š[ï¨7€ßc4ºAqÉs!„AæP")Pqv~0ÈDí+ãªv71©2j'€…ˆsvZj]DZŽ?ÃÁëRîñdE‘4I úøY” ÏdåÄ@S[„E äÁ,®`Ý ªŠ%ÐÐÞDçXpG´û1XÅU›’•Çökì ,eP/dŸ`ù,QÞ§ ,LûS-𢭨i´þ*H«Zòö” yƒåÔNŠk¾}Œ4õÖµU$Vk ¡Îh,#Hrì‘ *7Žr‡9j¡ÊZÂd8væ¬ %“+Ê·j¿#"§àÖׂ´¬­/`_<õ¹17âäé€ Îyð¾Ÿ~ªÑ46©Aò¬:«IM÷}.ø"=1|ÁtˆLÚ\³Zž]•ÆL÷pào»ùê…kä7Åç"\¶UkDéª3XZ¬|X:†5ÆAhllž { ×Û”—ˆD>–q¼e0>fçøsPTÔŽjPº i¡¶a±%$êí¨Öb_³£;5;Þ'¤TÎç®RÙª&øXöù\ðG € HGý˥ݾ™_ŒüM[69n “ÁketLJ1Njï¬Ì‰f"*Pi…:D¸F¡"îÜrUÊpü{t¦ìE5àñ—a‘'£ý21kÊÄ×I6ƇÏYÜßË 7fr‹«šÑü¤äáÌMË]N²ßÊÿâ_~{÷ÓÀOÝUR²ÊNOÁ‚ºñUÒÛžNB)ùXfÌ*&”@€!^ü.*ÓI.«”Ú÷ïc¨XÌ£ë¡ËV%#>•@8Ù¬¢w±bn¡K\+=né nQh¬8™; J¹7ÔB,©·®ü•áJÚÐPëDéî&VI+º} bÜí¼=n ¶šowœI‰6k ‡Z”{„‚ÈYÎ1uî냕oJRí3vWc³ˆš[‰±QÅ^Šlr¡ÖˆrɾEtKÁâ O«Zï#LQ•9z(ДËA’Ïb P×¹ŒQ²CkËQ®ážÎñéRË=èåÌïØàËFMIU×=ø«ð:zí=(¥zwZÇ)í¥’Ì’çJQNà·c-sR.mP–ôM4Ýé mD Y*ÌL¬!V,óŽxJ<*Ëž¬y6¢¥ª…^¼ùéíËAÄ*ežÒ$]ÍK“ú¢Ê¡{9Ì6nsyUD5Ž[3óŸ¦s_º_¢´ô5Ì^{€%‰‚;¾9Yóò”–Jš#åY-?¼óa1¯áfçáe*n²~+L·ýfKÏMù¼£-9åó&vßÔõXkki¥UoŠlh&6+”͉¤¢>àúJ™H· ¢–ξW >+E‰Úƒ³Ãô|[Ô Èô4®­Ñq`ÀY\.fŸ¼ —;¿E¯ÅÑÃÞ^‹£ç»×âèµ8»¦cZñã©…q‹ΉSoÿ¨•3ª«ÉÍ.¶JÙ ¶\°rušÞìB3©Õå¹)ÎïÏ=ãPB·«3À…‹Ýþ¨K[º|k ‚³:˜jL Ðpz 8zÕhyySü»¨º›^áÓ;CQxŠ øçÔç-s5ÖÆéN³Ÿë|¡Gµ`]Ý|ä'\^¯mª»U§íïE-Pyÿ"¾o*Vܹ—A{¿6ßÏ·} ur í$èŽw‰ø¬)ó´­Ê³šÂ–²”œpD(N±†s? AæŽ&4Ñk¯qN¼sD›¯+ûíÝOÿ›F"»ž›YQiªFsÇ»úÓëo‡Ù/ˈXLú.G/‰Ú–§øx2œºè ò'Ñßrmæþt:ßTZ8Ó¼ÊOœØ`ƒ¹„OçƒäòZúÃâßà±R÷±;4— ÞE6}@TH¼î¢³´áU–Ôê-èõë;”%µ”O£Õ5N«v5¹8·ýöq´¿2!ç H—5¿ÂêV÷äÕöëþ@Ûí›Õz¬í4Ù¬¢­ª<Æ‚·I­¸£QŸsê0³6Ø“c+HN =x7;’B>þÔ§c/Ç{+[¢MНVl#Ф•®ŸŒ].Â>û¹!…èH¤šö›tÕªnuÕgAŽƒ¶ÐZÀå X¬ò§0Ÿ×„1)B1Mò¡ªÝT†Ý ÏŠÂÌFŸ.æ–×¼â‚ß>Í®2‡±yÕs¦åë]÷+vÚ-7«öÝ#ÉçvB £IÀ(çμ¦Òaë¼GÈi®Í•`ˆõ¹çBw¢‘‰¤Éë¹ç©ýZî9S¤®énêyïBj¸I©÷Hâê“Ï{àvÖ'Ÿï2ó³bÆm¹o–TQï0s¹VV³Ü K[oÁê+cKaë[ùòëÜr‹Ÿ\T9F©Lêl©Æ» B•·HO4šœ 6„…4róPÎĦ›‡bB6¢IXÔŽ&•“Û{yžXPz¼­rÖwA€Ô¨&T¨z|.H¡Ü†NÃ.šÇq ³œÉ!æ_ |µHÔ¬þÓ·=ª'ly<${s˜T-Æùv†;ï¹4"ÇFXpƒ;ÅóÀypAÒУ¾é…oîd`¶i’íŽÙ¾œnd» Íd»oIßôµ º‡Ú´ ÍàP}œF)ì½ÎqgòlÊÜt&£ Óz7_F³¶tù8Ñ&ªðYÏU°ç$Gž[ï±E9Ãð%Ϲ?€.ßÿfwÐI„ó``.§~”ß$éíŒY™^~ì¦]1ÖDÓŽ‰6…l„FJ¯%ÒLïÈ«¾Õ´ƒaî%í:#i'5ÚƒÆs¹c†5]±¯ÞŠiäÙSW¶³sŸ7W#¾•탔ðÇ(o ¥D,RÞi.CÎ(·–yPÒøÕ#8±ªÃ°4VV´’jENβï~{û}öb9¬eáîÑetY¼ƒ\Î\7(€/¢vMVî÷)èÇßýàͯo¿ÿ¾ºìè± ôzC›u¬9¡b]¯ÐÏ®‚‹·Ø&®èÜtÜ(½¸‰“¹cûŽMj›ÔÛsÁ7eöø2Ë»‡H]%‰ì„.-á‹ô^´0Wå¼µ*DÁrd™!L;ÀÆç2ÒB¼4ð³ÑŠ Ây 0·Ë=79\°âGÏiZˆˆàíBDŒQ¹IåµÑAµ{€Ð!€°w!¢óZ\ÐóF\Ðóž Ú›ùçÂ=ï4˜{åJbæƒÃŒ{,<ò9­™³V`dÁük”K£<Ǻf~ÍÊÇÃûëÙ öôÒªü]Œà¬SÛò÷ú—ÉÜԇȧ¨:H¶9Þm)UlãG㴛ߤKÅèr46‰”ñkøíïEöæ××?—MÃ|ÿðúç-UÝ[ÕøÎÁk;¨ˆ©·Xc AÄ \A0?Wfüj >˜ŽžÜá\< O˜DšmªÞF^rÌx¹U½ÅD+T»Xbœ‡ t ÀaÂE=]µrÒ[@§_`£Ùñ|½ëWB=Ë/Ü1`…Ò¢)ˆc—T´k[+-©üµ<,“L{¾É­#Ô"-ˆ±F $=lN ¼ËÛˆa,sL²ëór€œ›Ö€Ÿáï¥k1ËÁnÑ51ÍÌöÇ(q¶ÖÐMQD1'6g"ÜÕ|«4‹–lŽÐFt Š$Ù#±ÎÄĘÉÚt´Â{DÐD@¤Ú§’PUÒÔ¦¦»¢ì¯wV<gÅÓõ<”k´}¿C$B÷B€ÃdƒpA„Ê[.¸Ð +& U¹Â6m(r^S&BƒÊ‚Ëïô'¤¢ÂÒˆvõNjü0U¶‰ƒ] é~¦È®Ãx<€ÿW=EÄ繚!ÕðÉNÍË#·÷’ª&™”ˆ­Ì Ì™ÜP¬àj=s=ób9ÿ­VDÏ t'CCj¾>Á¤~ò»b é»å÷©áY>vMŸÉ£_ñ+A ÊZþ«|—‚ÿ6ÀÎãÃÄ´!ÐØ“m £Øc´Î2P¾^bͪ]ͶMaëŠë§7ÒGðq]õ–;—¼Øüðæ ÊÆínùubãÇ j®mÙÕìa?îãáJh÷ãþrƒ¸~Ó½íG .¸µ"íŸ,ŠóËikùãÖ:/'¹³Üj9S^rï¼#{§5uaG}´€óD<ü”åNª4òD„ò!.¢ìŸ?¿ým“O=(ÂY¥9ö3‡b¸QŒCƒMŸ%¢h#F‰$®£LëµQv(FÉöÈ»J³¹‹TÛÔ¥T§þz—cg»O¨N˺}p™ v[Òºh®r!¤6HA-³(Kâß°S Qu€ÊH÷Jë–c³äH/C›U­¤Tþ6ìsܶ7Ù4X°]™ŸM8œ_=h褚l)î3†éº¼ c|W’Õ­÷1ÍNï~ìûQ*¹G’U9¡»\uK7B-ÿ[Ùcz@ÐÈU5^”†jTõY­Ç!ë&Ш°}¤a¿–`†¶œYJ)SVX(X)%±ÅÔæJr¤$ŠØpp˜ÊÏ ÉÕÙ/£É^ a¬^FÆTõ–þ5Äê4GЄ$\oÉöÇ‚/k²ý„ìJ‡Z¡ ñJt JHµG:ÌæŽÝZÔ±¯AA”sS+NÔ%¬Ñ’£Õ¾uÿ½ˆäá–Ì{`ž î1ÅÁ"*˜´Ì:‡‘AHjO‘ÅÊróõÍûÇÒ5,ëßÿœ½øÑ|6SËì½ý=¸Eöót‘ŒÐËHR™ñèKúõø{3W’b“ªD9ÖëaÊEmãgoÝ;eÝõÖ=N玽86©ißSo½ï]×ZK‹º}Sï§÷ê¬& Ê)ŽQ°Ö Î%ü Á ä ~Õ^cí¹¢8gÒ@i-É \¦K2ã}‘}ûþÝ28pìÖ\ÞMT~,qI*Ä·•5Vd#sIÇ.ê§.Á"l5ké™Yþ¥-í¥Ô Ó¾co†M“•b§=8Ú<¥;Ö½ö•—M¬lr]×” ÎŽ'CÅ·ª}ä‘›báÎF-ùr('I›£œ#ês¼ÂÈ#lœu‚0͈tõü ßÃWyóÃÛ,A'p"ý Ìr:-`Š$ÅiQœÎÆf'%UÎ{¬Þpð6Ïn¦W`Snö,òǰÊÂuŒKÄ{¤°„™,âïga‘S€p/çϧ×Ùh1¸žÎ/Š“ì¶ x ñtz‘™E"O¼…E›L^T [\Á#3fï'``ã}c6ÜL'~°8‡kîé"üaâs-ABVŒ¡”®KO[M£%À"NöþþRJ9/kúÅŒó‹ËU~–ãsÄþŸ½«knÛÖ¶ïúœórÛ!¾{ŸÒ$=×&õm2§ûâPf£¯#ÊqÝ_°AJ¢üEÒªEYæL§±e¤{aïµ×ö;fQ€0È 2§_æf¹Šóbýÿúñ݇OO—ÓåÇvPQã‡â‡0¾oXýÝVðРb¸?G(EA¯¿š{Æ=dŒ«>ª)ÿ£Ü z¿ÎùuŽùÓÁ·õpí$Ÿ5j•ÁÖѰGs²Z—RÙó¯dƒf d× ™_Ó£bWjÐØ¿} ×Hã¯|1^ ¤í…ÿÂÓö ÜÜû€ÿsHíwy©Ö‰sÅ¢Í\t§º˜ùºáS:oµRçóµ_·ãöëv®Au ¯Vi~`JBž_}SÀ¶£ï g¨Ò¸Õ°Üw]“tuämzÒ݇nyijÙü•³îêxùx_Ù ~y$ë/Ÿ<ý jÐ0õ—ÖÉœ‚lß0ëZé´z»J Dœ[m ÑÌJžÆš«DÛ$54AÔÍ%I%3(7„"²G§Ã¿^Q¯eUY"±Œ7~p~¬ü$‰k ÆWªÊúåÙgîQ Ù¦¬l½.84iZXz{)Çžþ€Ñò€ñ\lÿý%÷”o…ſ׎÷] «cÌâ$µÎ1L¤¶&¦Â:b1Ž[¬be›ý{Ï{ïyÑè«]Ý[Ic šðUøE„RjCöÈ˜ËÆì®ë½Ga];Þ ~: ëï4îï½ã}¯qqïxïï½ã½w¼?ÜtN¸½ãý1-ž¤¨•Õ¿ û3O‰Á)Ñ.v‰EI"‰´$æ&¡[AÒõE¶¢Ö¯j’¬‹‰Œ¯F ?©7 W©–ëÔ­ŠŒ­öþ¬:˜ïE6Ê7•¿åWæJ˜éd9ˆ«?úé±e%XÄèuŸR†ÔwŸRUGÞ_ëö”«¼'níqK(´E1‘å”ÖX˜e³¦ê=Ë^_Êyª?¹ìÀ£@ù|«÷¡{¶°#Ü¡·2µŽ E¦‰Æ‰pÄ ŒâÊ9’ÐT‹6uÍþ6À0,U¬á¨A›€-zа °¼¥ÌC)gU3e±hÊósЃ…} ’mòóY³!‡6 aBÑ_#¼è²‹âõéUü•Ý[[`˜‚)IJtb,c'œ"'Ö1’r)ScˆK±ÆÏ)þ?›ÎÀ¤âÐðÈ¢¨)p 1ë,½ ¡õ@0Vá« *Í1…ŸC¹YûT*Ž«^Ç}~”{D±WˆBná~ð³YÇ!Ìš–€¾z,Ñc‰ýÃO‹aîOèçrc¶|Ws$wqÊn„HYj©2&& ¥ŽYCS©Sêh¬Å­ß2ªE£ß?ýüëùû“çg¯FØènu£Ç„8Fd³º‘âUe g¸†WW•5*c¯lô"•”ÚÄ3_³QÚê•]÷°f÷°¦‰#òô+ÛÈ#õÂJÛc òîuä§±Â2§uB³<1!V “ÅgTQ¸ÿ¼øyh"l­`ÏrDý´x Ÿ……dþ“yòcoèÍèÊÓŒg’MàŽÞÿ|öføæ5^Í +Tr•ÞœF·_儱Fþ§Átn‹¼Èhð}Fï¬GJ¾ß俏â@*@Z™‘rQ– ŽÜéð4àªwþf—îM4Ö7·ònÝod§æ ,oñ¼Ù­,ŽåóÚ{æÐ២ªSJÅ2 ½jn…’œ³ª_ +åÿkê™z¯$Fuˆèʼ§üm@¦/Á/—Ž`¹EZEOÊߢAúAŸ›ñHãÆ¹;¿ùx1»°Úk¿EŸƒñJ=‹}FŸƒñÀ5}FŸƒñL‡Pøxšø/ë ü7'6ù³‰ƒÉfbk©®ï.šyKào“¦7u « _joùî Ï=ãP Ê«¡G«‹¿ö M‡M ÞÌéXædè lÐr|“ÿ»Ö»òÀ:›Ü¢»CQb p)xüZ?FþMÐa­°{SîXøBÿeÐæbúÍMü™®É¸ƒ«&šµ 2QMÚ6(gÍî_Ä÷MÅÙV÷æAÝŸ“eF÷'X=Ð:x³ê¸|Ÿ5É[•Œ¬®³±Ž îBò„2 CÚ9)qsJ´±~ñaËŠSæTœÇ\܉ài#¹ÁcŠ7ËHŽyµ2©„z÷{„Öjwb‚mÅ6^YDp?9„[¤ÛEû `ïØßô«gs'4='¿¸SÚ~‡ ý©Pw‹4v‰”F¤1N ÇV ¦SÆa0ל:ÇIC%¸íaQƒº‰›{«ªá8¨MÙîÆ›\À1¹7eðW˜±“DƒH,Œ4ü”ŸÞÙèÇ«trÕ}¿£lìÏÂ:*¦Å7M mšF©Ó‹+¿h%ó “@iÞÔ®û_eº97»ñ#ú2M×zîþ+>ü€O£#ø¿É4ÈÍ%!š^Ás^g‹Ëèì‡OEÛ(//=Ž®/3ßo–G«»—Þ&/CØô—?¼¯dÔ¿9ttx·ÞcèŠXmVBa1—Õˆ!Cq]¼pýËØC× CÐøÉÐÐOx}ò-‚Bè«G„ŠŸK/×&'ô”Õ¯°Ž`¬þî1Òƒ õ»!•cfG2B1ÎÓ#¦˜:9÷Ѝ”IŒÚû¨Ï©îE ‚°6LsŠ)ÝÌ£˜ÅU¦9Å µ( {;­¾=Ñüp`ÁqÈ%ß´I­oÅ ïsì_|4ðŽàÁ¾äÆmG”k%‘H.‘Æ yðDÎ9M…H„L5Ú¨felÿÞ;ER|`5ûM?›]à×l CØ@IÖÑwØÜ7Ñ4Ø,MÝÜ/«e«0‰LížýxþçqôÓùGÿÿß~øt~îñûù§Óè£7*ƒ ™d¾³ÿ.˜ÜzM¯³«eçùÂ?ß8¬_hf1º)|3É|z»ù¡ã•–_Rì–QŒˆªŸÃ êDçWÄè¡í3ö»gFW|œ<¨ÔÒa†¶¡Ã÷ÔÃ’]Â’ßjèÂø}4 ˆƒ}˜ì9ÃdéÜ9À ù™†¦ Âe³Éá†DÎuÛ#o¾h2}‹°ØX}Ã}Üùͬ{¼9ìèî?úRxR‚aþéË/Ÿ££Ÿôwý%´,±QôyZ¨½M£L²¿tY8ú ±$² ˜¡6™@Å¢Ê"ˆÊøqd°æÃòì 9ï 7XH¼¨A*14iˆ Bo=8èÁÁÞ[ú°¨»7õ…ì@w1šî×D;—Zø[dDJb’&Z"–bi´ÞUÒøí²`xÁðåÿ~öÃ}'ÎÚ 4è? n‘àÌø8fw:¨XÒb`Áê¾ ÊËCîÕûeÄÆw¬§37EqçÍ,½%WÜ Îp„žp­ŸùoEÊSå—½(ø8ü烕ÛEN¸<ó«ÉÚã—™žwé×?|únhxZ}öà‰ÌøF«Û„´+ BM'@DÁ(®Ÿ½P{<ÖÁÓ.?ýz÷ÉA²¢Š ‚ù`ƒ½ä?NçÓñÊG¾VAµÿR–ó½¡\Y« ·,ÌIèÂí‹ò×¥2eH}+>*—ù‡¶¼J3Pxó¶ú°¼U+=ñ³[ÕVcF)¯ú}bŽÚÄÍŠIèÅ_bpMJLŸ›Šà'Pùþ> {­¯o¥k}Ae9ï•–¨æ_ÅŠvöƒó/€u“=ˆýHKì÷tà[çÆ{=°yïÅÖç‹V’äþŠÕKr·¾Š´ºìÙ‘;|ÜBzîž=iõwöÂnz—ÖÃZT·/zè‚.”© q±îN‰&$v)‰¶ Sj„D,RÎ…MÓØ¤L;žš$üþéçßÂ`x|«g.4?`ÈË?½;?;~u°‡ƒ Ïò¬¢¬Ú£òɉÙt{ XòZÏíIpŽžäJ-ÔB`s™0 È\ŠÇÃßüc@}ð·]Áÿ·[eüet#)€ªºÒÀ· æSÙ3Ãö ¼Æx fXSÅU»'Å)oÐ{8_ Të+Ô¬×pÙ©ò ëù¤‹{ ï"”ª¬R‰­å<ÆÄ™ÄjæbaÑNs‹8sÄc!±ë´I¥r1 ¶¹ôæÀøÒß– ,x•£¯~³ÎS7x+µ˜šé(:úñëùˆ²~™„:4Ñêï¨CG.’ˆV²MpÉ¡]p²Ah—1mvõ+¹ºîOÔUÉ-øX~.k¶nߢaÌúz)€$ >¦Su*ë/h\g#/êH4ìvŸ3ÿà½ï5­„ë;bã#¤ˆ–Ôbd´Ð$F”% eÈ«4vÌc*T²gѯa$üר8ƒŠÑ)ÂÀ+gÐC® Ám­œ<ÑÙB±…¼çÕlZpëý¸u.Ê;êYVÄZ‹Ã¡Ã+ÅDÆ;‘ŒÄ›Ž!.D^WÑ[­øžõ¾G¬÷í%Ñ›”ßXµk!Œ^ôû¢pLé1×¾b®^¾ü^ùòâ½ì¹?³´#0„iœX‰‰!Îc£”Ì”ãTi³˜:’r‹v†îú‘:?t, îfô=JŠ8¾EŠÁ\T“ý ‰¥| lp¾ýêëù0{Ƈ’m `JëÕ¾Ik:5tûR°Á!öÃÕõöWú-²\Œ§ˆí9½%<膛üû8vÅnÁN;Œ9cIL9·F'Ò9aü±–â8æ ÑLjFØnËÍ®b1_nò…GÿŠÎÎß¿ž¢³¸•,æñ¦à"¢Rn(17æ§”ë±/-öˆ,’mAº-'½g­z–}ö £÷¬1̾‚riw²±¾×°ƒEB¥H°N´0 !9“zÛc’Æ&Î1B„‘zWJÍkïAP,ôà`-( ½µ†<úJ­Tà]œ}zwØ!0\¾ïä¡û?e󰾊Dù«‰ßIG7í0'·ñõ(Ÿ®ÕŸ?þz~<8ÿ圄¨ÎQ4ö !™þ¹$ßú齜ÚWæ mÂL`©n RŽÅ†!‹IÓ@¼} cÒ£Ò§˜ÎKMBÐ[3vŠ3Ê3ðüAÑ  X“{Pö—fûl%?<ĸpóyCÖÈJٺɄ?ëw˜çz–]|›'¬áߨúiHƒæeÏ šÎô¸aU“Ãá*‡¶{à;¾Éÿ=êÊ FcjŽ 6é”[k$pŒ9JŒF„ Ä–JÜm’×§›ªœÕ2ÝëБ§¼+¥ô˜?L(…o!O¡¨¬¦š#SU“k¾öˆ……Ùçlí«KržŽ<Ãl6â¢@Ãl;iž‹ânOíãÂÏè…Mj†{Ô#åâû4@ÔËÇn¾ýн.Ó+=ì·òùð÷s"ꦼñðF®g¨A½;—m~xX“ðo‰|÷—ˆžáã:V·ìÇÃVÍíÇß§ƒUlðÍ%°JãÑü‚µéôd¡gȇOÆS{×5'L;‘"m¬Å„pŒ\JpÊR&G†%’û3‡N›Ÿ0ŠsE€ëïÂ׌üÚªbkáq’{S|™ù4ÏOf#½€)Šþ÷ë§ŸK1]g£²›É0tså'étp–F7Ó«à÷S1ƒÅ7ò‹Ø]Ãqîôgõ$(ÚÝ"ʧÞû{iH¸œ^GÙbp=Ë ™]¦Óo‘^}ÿNÄ;õ_qåÿÉôè4úeb\¸/ô˜¸›éÄ ‡óÞ>ÜŸl‰þ£ÄpÃs…gñ­¦´,ëù¿÷GŸ  \ÖK•àÜ–)+œœÁ¼Y†Òiôö*Ÿ¿õ³>woíÔ,u^¼¿~|÷áÓÇÓ€äýÈ*‰ · ãເ}«¨IYÌl6)ãåô^»¤Ôû=ðŸ wÑ(UÌ$ÙäQb%$A²ræóŸ¨8®):^r)oïÏ-¢»ëC`ÙCö=[ܼýìðú÷úío.yû¥p*¼(Š%‰ãø‰ì‡rŠá¤Uo“!e´A«|Ö¨UÐ,oØ£ÇéYm…h9óïuƒfÞx6iæ_ŒQ±ã5hì_ázÙ6ð±úùoAW½ý2îø¨¹¼½Šþ5ÿÖèa/ÆãÉŽc†P-ø~ú9³|²†‡²·I6ñöiZÒ w»áߺR´¸ru€n3´ë‹ž4¼e¨ªÅ—W<év­%Ç[,q¸5®][9Æ·¸ÌN[±jÛ£ïmG¾zÕ“äôác8g{ĸhf½JãIïvO?áH_žcm6ÿGåt_ö÷ˆ l±ò€±‡ŸëüËëàˆÐ}0rb®ætuŽ©±T+"Œ"‰Äš2Zm┲3k,щŽwËÊ×ÖæQ92KŽ\t‡Ç÷?Ÿ…õ?ߟ-£[y¨üæÐª-ƒ“”¹€ÊIUøåTM ŽeÍ)uš,'£'뿬¦Ph ²~9é5F¨lÕ0ˆ·ì³'ÑõQ²V¯õ2;mfšé‰5iûìêþ¨ÅòÛt@ !!wãK ªdŒ‰& 'XjAXJ¹sÒhI ä4;…±F»aDe“…›§ÚáŽUV !=óÐâðU†[) „ð-ú½¿l“}_'Z½¡,P¬Ç^\`¿<ßX¹eÞŸŸÕšÍ¸lÕZb ì¼Ç‡é—ìÈF/Wc÷6:ù wgŸcÇiŒü çÌz ­¹@Þ,Xo·“„RC”²;(ù»ÉX^Lƒªòºðl”ü•Ípttê‡ëM` k¿¨6{ðv›–e²âMu@Ì0«fÍaÆy E ?è½ÍÞ7›-Ñ©s~Fk6fߢ­­†N{;½K;]LR»0ס›v“îÍ:˜/ßë¬à”RÈX„­s"æ\©”a U°Q<áNXžÈ”µäY~£uýÓÎÞÀQË0¶ÇÑõef.×B=ða ËÁ‡\y¸ŸÎ£k7 ü¿«žt¨1É>ÑoÈ»µ2WôÁâ¶¢ L´V"x$XÎ~‡Q‚øE!…} Ð-d—“^·Ñ—͆ V½öXá5Ç `§m˜&Ý">ÐèX½Ý#Gë{ï$ Úù HId­Õ’!ãÀ§ ¥äذ„{,ÂÙMÁ¦¾ºw—ˆ…¶B,ì?ì]Y“ÛF’~ç¯À¾ÌH1Ýš:P×:bcekìWGoÈžqì‹£N6-^C°Ýnÿú­Àn¢/M Ùx‘š`¢H¢ •2¿Ìܪ¹&’¡mÄB¤¢µ+®ïÓöª®»VõF{(e>EÕ» ļD2¨0šw‚Ì6NÐØâ\`,8a5åXBÚDŒJ•sVšˆ€†rÌ¡ó¹—cJÚ(|%S~ 2ïéJ9&ܱ:ˆð‘b̯Æ:ÐRÌ^`D!â;ó e˜™}Í2ÌzE†Cõå߬õ”Ï·ú²•ç¾tF¿/Ÿ{èÝJo—‰Ö8¥iƒ¥jYhP»qéí"Ѓ7Z^µû>5_ì³æ‹}SPZ#ö_»ÔuùènÓ­úÏFÆ.˽E¦MjK%V‡‡JÒ¯ÚÖ¶”4íŽ)J‘±–Q”jm=EJy$”2ÐÁX’JM‰¥†Š–ŠIoT®4³‹ézrj®Ö>±ñ‘][Èád:À3\»-z©ž»Ñ¢xŒ[O¦ñ¡ië½ìžå$.’ÍE¼~óØŸÑE|òjÀ3MS†ˆ¬>£#N1­älâÆ‰lÖúÀ8íãÝpIøŒÓkUæÇÕÆ¬)÷t—èóÂ9ðB‘Ck`ÓQ†æúþé´<Òþ¢Ì"¹ Ž,K£Þ2g„H I"Æú` -TŸ 0vÞxðÜ-má)RA·P‡rWoþmÌq·ÆWiÑxLM0:Ç%_ˆãÚ´F#T2tÄxn ¤‰Îõ«µI—´ëö½i%Ö÷>6º®H"Èkì'R,uR§„zå¡—õÌP†-'i=AÌ·s;½p…÷Ì)§K¾$?ä¤g‘Ÿ® "2D¾"Aä]… ’_l¸‚9wDÇ×ÿ}ìMÞhv(ãX r‹Ë+ˆ@¨ÒLK‰kW å7ñómRVÞ}Ù߿˗ñwûÛÁP:ã„?¡å¿ my[K©ëPàØðE­ß_¦jÙê 6ž‡f3ýy'µ$n[µ>öb D•S Ä’¹†òÍl`2| Ä»ùÁ“„ÌßÝ%óxþï¿r.&üR¸ÕÙé»k›¸mÀH“q Ëè¹Xפ;lwÌ0¨4ÈÀ<ÓÜ0C8³”bäWñU+}®¼]¬\ÄbFXñ™û6^³Ób¢’΄—£¨åÑ'êÃMtÔS$Y5O—F„¶/+2y"±kõ|±2ê=’QÐý÷éø æs‡÷Èmj–Sã Æ:ÐÿRª¯T}Õ”ú×Q ¬¸yºƒ…õ²»dœ§@ ±Þ¤ÈyœZ-´•š!C—L‹0òénűsªY)‰dK¯¡Ž"÷ÀM›üwà,øÕ(zxˆš&/¾ÿéì%ð…\Ü/æ2Y«˜:v Ò˜,$Iµ)S¸Ò´ž)&ð„âj(B=KÅIDö"qFwlàÑ¢i =,’áüfÍž¨÷}LhæÐXEM8EUÕæ'hFÕ?c[%ùpÕŠîGV°t«–nÑ®âJql¤ 6pëfÔ›r‘ò±¼‘Npƒ¸mAåœé›xÑ’æ7Þð´xùº@W¯™¦sÔ5&ÓÉø|}zéá?x}Íã..9´åÉ!OùrÚIâö¸ÊaAg}ö~™%3ýÛb4î"! ÀÍNÂÄFuÂ&™wöæc-¨%Ç{´„ÉÈâ¯]'›$`k—8â—ß$n5)àùâbêr.V‘mŒPñr±Z]´Y\¬!#¹ÞEø¦yŠf¾X'ÅÛ×m çzzô±)AE\È©@·ú"Îe¥Q!5@†ñ~aïá>qFwA'·hŠ aÐCA†®ë?®ëÁÊïgÿ¾—bÕBKd,áV:#U*1V”id‘ sbŒÑÚ $[Rz(´twÜñÊúßw7`¦Œ4½JÞ®£Ì©]ÙÈ,ÖçI„JÑÃÇaô4ɯm)â\ÿZ¼*‘ɱƒ ÅÒ&‰.A±àU0ÁXª¶{Æ`Æ ÞA ¿Nuå×zHuõ(Õ%‰ØƒJ”ÏgMlPÜhOä@š_Ù [ŠÏ©‘[«iv½n[7¥ûûg±Ä½{ãã†àüÜN„´!„Ø3²öà{>èë¹å—ÿîEÛh8¼0ÙÈÒ»îÙ®¿Ã[|æ=ƒ? Ë=çl|øœûíÛ‡™‹lòG‡ILE…ÀÊP«•€îs)VÜ#´QZ!8"„ñiË…Óéâ2ǘÑ='g?½ýåt:ùì· èd@äØÑbÃÐeÑ*I]áªN–b¢Aa¾:‡"ÂCŒO ÉöhnOü.6cTùÀC”ê¹D©úkÊ×p÷0ÀØøiç]¦‰V!¤h9ÏhÐë@ƒ§KÆi!ãöíd£}§§öbª×Ñ‚ZeW,™_Ì ä¯!‰{y’»¿<Ž´òvx2Zm”/¼SÑ=âÄ•P#5E¢J f(EÛj†v–²]G•ŠÕûô°Ò3 ½‰= …ö‘ÜÌg}Ǿ^ÕŒò”#è`ˆ¢|Õ(JG`£¼úŒ6Úè@% ’{ÒàˆQ !Jqpc*e’g|@-Èi pãéåów¼-ŸGJTûÑámJ MÓúJXwðÆ3+?L­,¡8ÐÆ€6Ž m|>ðÏ¢Œg÷–vµO´33*$uRaîC|”6 åã1M‚W.^µÐú.ûš %—“õyôœf²Žnàêtêçãxø¸c+Ù†¹ûÇŸ“÷g£iî/®Ž“ÜI–<ªÎ) ¯Rk¨Bš.Ui}=ñ¸`]Îþ` ¨Í{2Öˆs¹c{Ž5QŒ5@Œç 1еòŠöÓã÷ë½öe IuÔK‘,µ˜Â añš1´â2PÜ€s;H_җlj´8ÚúÉ&IH*ù-^ŠL• fŠdœÕÈ8=¢|ùåÓN*|Ù— E?Q}о|Ìlо´/¿”õ€ú¢þAûrо|Ôpо|Àrо|Ätо|Ú—ÙÂ~öë{e¤Zˆsxk´ [Êh2 <õQññ ’+ìP=õ†½²¯ãõåé‚ÍE3‘ mÞˆ©‹‹”7K¹˜OÊÁ›\Cû’Ø.Ë‹©^%ß~zSž—”íW6™å"âtSHcÆOÐv d ]šŠÇv8té§Óâ-;ÄÕþ*¹%Ï™¿XúÕÂãzúÇþ¨ÏX#^)Á·dRI£ýVc^)ÈŽÖ'×¼Òr2‡zåþ<Ñ¡ä,ŽrFw8¹Òªf†e3æe9Òç­þ<¡t”£ÙÜÝcè }aw«{®\ª‚1G‡d¬G)·EÓ”hlµÀ¬mrF®Û”aOô<ùðîSòâC® ’lÄn’O³ôeÞ .'›Žl´5*]@“²­ZÑ)|ëUܧ‹TÍr9-‘ÐÑóKöâ¥ñíj9 æ2ÅÛ]Ri¢Ù]®ó¡ëZߪZÚ£ëZ9«»¸…UÓÊÖÍà j[{6ë¸{Ô°´óuW½Ô(ò(0ƒ‘BVk„m| •˜¥Y®<ÑH¤Ž!Úípq90CœŸÙ2§^l!‡øFðz}§~¯^¸ nÐxm”-õåÂÀˆ3½^AÓ~H…½xy’\êÉz9qðg6Gýëí÷ÍN’¸>^–áŒI6Š+cågSU gœäÒóèÔáC·ÀÁˆû00-⯙Åý>ùùÃÛ_þ =ÞFãUü¦Ó+€&P¿k^'¼w&.£“èÔÿðñ£á»F„‘]ŒÇ>[—2à%­b{Üýß ¬×ÕÖ¥XÃWÝ@, ±›c‡= »ÃQNÕ-QJªý>Dº«ßÇMo8¸K‡"ÞC ÈH´O@&Ÿô]ðlê6jËÇ0г ÅtvŠ5Ú=Ô»®ÊV¸fT¦L𔥞i*Sª©qžKbt<šª€Î­ÈÈ"±ŠÊÙ¸1O [_Nfpí áïÉ<ÑÉï°çMïGn‚_(­òYŒH¢h* øç‡·ßŸ$g~8I~<ûGü÷_ß¾?+Æ/gï_%ÿˆÿ(÷íq…Ä¿!™óŸ¹ï€Ëâb½¼Ø žE$¤gYââJ³g C”˜Õâ2;~.gêŒ9SUÙ#ʘPÛ±Ê8nP8ㆺ™ÞÔÍH¼OWû±ÛZqu«fÜ€!ZÅ¿`\Eü²Ìé>5Ø>ÇGÉëM"*žVÞ¨y‘[úqnZƒ‰´œ1©É¾º±}1&¿Ö™¾5®Óö7œ¨âk®x3"˜50‘8i(ÈY„ÓTxÎsœqB­EI×’VS¥;ìºJÛ (Ð/šNf“2¢–0½}¡µ\ûòdÇ^Æ·á­É*_]¯r”w1Nsz°ÓžÄ ¤¬ªNô4[ÜtŒùðá§³“ÑÙÇ3šCQ@>Óz'S³øc£gø|á†^Y2‰8¹¥›$Y**ºIR5ÉâÁÍ1¤ðz–“”î1aJw¸0iš¼Ë‡g«Q«r#ÍÙÑq‹…ÅÙ<•w`êK´‘®æÓ9³_ýjÕT\s«B¢ŸêŸã,ÓËɯŸW†5=õ3»ù¢´Éyåg59g©g(tM+ç{r÷hùúZ ©h)¤¶­ý.œ!B,4玧Ü;EVwí q¯b¤Q—2^å®ÊÒmÊ<¡;Qïu÷.qm ÌwxÛ%­ \µÞ"Þ>åi¿H½q_ óý¡¾eWÙïÙù¬»ó4hÃ]PÞ*…©ßD†à•ZS!VÊÓ–´DoêüÀkºÊÖ~–ü3Éûò¸dæ£?z’—HQ3n{*oé‰3**a1&v¥[·£bå’c= Œ ±OÕ]•u…UÓðØfð/'·½#7½YÝ»éÕ¾ÛqÒ:%& *¬p „w^±Taé#Ö¤Ò =~ž·o&á(RʪJ 8ñ¤mwŸJ¼«Q^EÄñ–æ÷àíûàí%%èé޾׺ߵ¡ESûA ü‘iÒ¡edóJÑïÞdyàð þýE¢C³lÜðtÞQGt„™Þj¢•Ür•b¦© ØÚ`ˆq ¹v«#7{õM€èíÙwŽÕÑƦá!EoѦ8ÆÛJž˜³]ÒZ·ÃCqMªß‡ˆ*…${ÆâÔ׈!E«§Ä`ð!†tœÈ¨Ã¬ÆîùoÙbÞ'§©I‘ñVËhêõF:I±Œ i(b<¸€Z(ÿ+y"¹cýñÓÇÉ‹õïúSn™|4¿y»N>,Ö¹z ¤ Et©Ûpܾ½a[#¡8«ÖÚaE¶};%”6Á"A½óÙxŸ Sºcg“¦Þ:vpÕÇ骮•Q¾‚»÷ð÷÷·ãß}TÊÞ!I I-ÁÊ é2åÊHä½Rí“G‡òþ#BÑDÝj)D㲫bÅ‘õAG¥À€}€’¤ûÈcÖ*óoÖÚ4øUXȇ|Qw²‹¸]LîíÓ÷W`$˜BAh©´"ÊfSÃ,õ©cJ­d°Á›6Úãä×!™d ´¤Ýïzn½ËEH}žMJ²‚ θ çî¬O‚FË—:©ÒÉx^è.•çnš1çY¨¸YÇ¿Âj1K>Ï—óâà¼ø;.¹K¨ÊÝÖfÊ­Ö¥Û² D„±õ…ÍdWZÑÞLó²«9¬£é¯zRhDED£A‘u=ŠçWO¤«ø³ãµ÷F®u:ùì“ÿ‹»þÇxùfÑÉ?V¨ÿiíC¼”ÿˆÛÎ*ùËtýM–xûÐê¿ÏõÊùx¡NKÌñ—ñú›ü´3¿ŽöѱÚx‡|Öù™K8öj¹9öðÉ߯&Ùz±„PÑÿ\ÌÿÌ϶7_}Žï=½kL¥k¹–в[ò‰[˜ GXU—u]¬¦uÝ#Öµ$tÖu1£»X×…U]Öu9æ°Ž`µE·ê C«#췹뺇6z¥î2„X™Àµ')ÕKñ†9ïã+Ç©ÈÅGKGZêžT©Z‡Å¯M¡Â©‹ÐÑÕâ"o¬´˜Ï×AâˆËà:_̪ùÑåd}~÷/]%7m•à2d'ei£oá(7<ö0ÄŒd%áŒj™§¢BHâ)nBH‚ùI=Ë6 …öèSºcË“¦yÆ|Øôo’±Xõ›(u„òïÙ=h˜åéîòM48F]iî… "8DÒ GÔÒT!†)í4@ˆ¦¸8€ ´ ·”D£,ÑÉeܶ».šè¦>?«ìQ£8T0^•Þ¢LÑm2å4ÝÑøð&wTLÏ=êSöˆ=ÝáÓ¹c·.ŒjÆ8Êo¤!ޝÖÉf]pxj@]¯ÇWi?qFù»GãÙ½õÚ‰N(äƒÁÒ!æ6‚ê ‘¯•5F¢žèZUùÏËÅês’G®¹*§%WÉâE˜0É~NÞŸJLrì£aså!Z ² 0âMä⢠} +È}r)qFwlÔÑ¢qsåÙátÜ;&”ÑRL¡Xõ¹²¹zøšÝûyªÕÝyúàÿŸ½+knÛØÒïú˜§ØuEÝèuæÉ±s3®òV±gâšWoS‹-)¿~ú4HŠ”dMÆI!å”DªOèí|8ËwPf¸v‚8$r‚´Fþ+£çL0¿R&ë®Ð7hò‰3åÄVþt+‹®%öW?lƒf®’gVçÏOæ%ÀÞŒé=Ȥä«Tº™@lÅŒ èºÔe-–l¯ç÷MÏK²…5!Ìéšs:´‰ÕõMǽ¶?ZmhUîHòý)͞릌ÌtâUkGÁ².ÅÊe»ŒÝ¤høMþãÈa¿_ÎàÑzîÔU¤Ç.×Ud(âegÐl>{wО¹ƒDжÀ>³Y]—BÛ´Šu Í;ïÑ“q íÀµÓj™ïî‘Ë•µ×]™HœÄ˜YJµšS§§yFRBÓÄ£̈́ιÜáíý0’?N^U=)ô´ö äµQß½¹€“óè­&ä^¬È£e—SÆÈ”Äår¬¥¢uÊ ,É>ádì!©ÜÀd®9ƒ¡IK‹Hè­G½Idï)+¢î^½5ô»XMº³LdXdÎ:#¬’y*s(ʈ”4u”å˜yâDaÜWò~®üÓÕ`NЮ¾rn´D>1º¤™²>@ôN€¨øNž)Ch5ϔƤÌÇ»7 ì™Q€ ² ÅÄlZ×ÓófÑTóî{TðTì{þn¿XÉÝk PwªßaDýÛ<çÌäÖ '9ç:£)÷ê?Ï ã©(ËÛ…@¼™áÔ6:+P@ˆbžžàT~ߟ&fRVÕ`/¯€ArQ«ÓäÂïzGòü–¨:ø3ÞøÕ”NéýóÔÿ(Ôð,I>ŒŒ †.µ»)Gö$m=Ї»Vpcs5œTEíBÔp/þ6 U ‘'~9•àÿþÝCŒ¦Å(4x[Œ¾U~¸Z: ƒ #òãtñ³årü°ˆD¹JŠº„‹°àÁ|r‹Œ°DBÐIØÈO¹ÐlV/^…¥üê_ÿ:( E©_[•ÀP¬CCάm²XJƒ–ÎAý·zþYHC«¶j L‚£¼E³Kõm]†ÓØ_­.;{ÕíjXûÍà·ûwn…¸^èbô˜úBë#¤óîÂ×°¬üY¯Ýäþ’i:~ ‡ÒœV“ð¤°Õé*´¼ß^½|OÅy‹–^ƒÑ® U? VÝ…Ši¯ý¿Tq©3LÒ4'˜äDæ jâ eTóžVõž¸ðuv1 …¡—éO8]±{Q.×{¼uvÝ!Uí]]çCoî֞Nµ•i«gQ}òή9Ñj×Ðf¯ùUëÂÞt”cŒ¥“"Í1¢(ÓZ˜ Å £kM(iÊ19ÝA–„Y5žÛ°Öy@­×F)y6oøpVåA9?ø¡'*¨M8ÊÝ$ ¡S£S?|TÕPYÇQ$eQùÑHòÕxŠZŽÇ¡ÆkâqùѰTú:7û”÷,Åþ8˜Î5Ú¤9Za”Ð[Qž2F çCz&e¨[¼Ÿ@%¬èîÊØ–ÅÚ,¹Í‘Ê2MµÃ”Q-)Ï?LHšZ–æ)X:vcãÑ´ô_ŽóAóñe nK^j¯ÔUp;œ ’aq~Q®ü€Ïó“#i~íÍ£´·XÜ­¨·Â —1²Žn¡¸ý:ì©fL¹CXÈ ?åkoߢ¥ú:Å:»£×ÜûoÞhÃ(çüš«Û8w~ûÜüê-{Ÿ‰ê`‹wo}) å¹3” HÒÜ ’¥2çL¥„Hd‰ ÎiµpÆqNtq¶a\s¡ÀõäUlXêFó!ðÍËܱ##‘ñ¨XXD »“NW‹1¹®HЭS&LBï–Ù· ¬‡ÍQO˜Í5gqhÓù4ý öéÑK$zÙ•?§ä9N³}ºGyý`ÙáØV¨É”ÄÔðÔØÌa— ’³\:I5õïô)ÈfMw•]Àä,òqª±SßæQ °g“Ïþ®r79ù8ËÅIžýûóÇç@Xkýq1jŠNr#©Òtstó¾H@@ì×M¡I u߬×X¶¿p'…à (~:l¿y½äl-ž¡¶wÚp ÷y¹ü°ùb›uvÆfTwIEh´v6u©ÐÊê ã°ÍvœùcÔ2%•È,Á»E;W”%ªkw9±70÷Z‚lì$wªžúUÏ« oáO²¤[ÕÕŒH õ ðCéoÏžŸ&Wª¨Ç……_«â|¤†ðÛŸoþýKušø5ò|\T'¸Ë¡»Y)tÚdi_xÄÕÎu ×@@èŸæÒkºäÞ¿ùòKu–¼99Ÿø;Þ$jì¸)ü½&À#“;gµ_I§ñ\á Ü«‡_ÕôüÜUõ¬¼u`E¬Ëÿìþ”v/´«Áw;5Üêܲ¦ž‚Žß÷Â=ÊÄL¤”«ÁÅ$¥+|ƒ„°5©QË0ìÕ$&Lå³0ñëP ´‰ÅmMLJÜzè½:CÍJìÚü Èô.š(±1N1\K¬¹#‘” šRîœQœ9ËwÁ>ó„kLGº¬8ÁwØY`’,û¬ ×y=ðÂiµZbº(> Ï– hs=Ý™>|ż·~©¾ÈôÞ™V†ÙìÆ‚Â˜Ã¹æc“QÅm*‘Ì3c(EÜÒ”Ij‘PnÇþ¢Eþò§/?.Žðñ–ϨQ¢]2­+Ê•×v®ù4‹Ê ¬ò¡64˜4ê“YWÀF§+WvÜ €ÎÐéü7Äþüôú-|½à“ixgŽöDÖF ¼j¦È°Ç=+yT˜g,Âw;¢·S¦‚oÁ³ ó¾FS@“øÓêp¢|Ž í½è2ö6/·¸ÍhЏÞ߇འ{²{õwÑ!Œ¢È «]žçi.vX"C6éœä.7©Ñ9;pDý_1¾Ç d¿àÌñJά"¿ Çc?jMí­£Ç5@ï‘CSÌW` —-£.Ù:²ÝePãº/¹gpe»²~F×ȾE,XN{¬òT°JƒV6Ç9w$ù‘ØfÝãàU»îÈcd¦V(ãœRÊ¥ÖØç+C$ͩșK3£w/µâ1j yôáOúäã‡Oo¾ †Å7·”PUŒž3M¯ã¯šT@ÙŠE¥=ÑX—½+éð\Il WR˜ôuxÚ´%Ð ýõÀ¤w(ÝâžãI¸nvB÷bhví"ãÚ¦,U©‘þ?,”ÖŠZ*¨EˆDæ\h©õ ÷H\ÞB‘€¦T@òÚÏgSG{VWà6·úíë—Ÿ?’È¢ò¨3Éé’AŒ¯– JE[$˳O¤Þ+Œ°MÉ ˜ÎuG¸UmS©Co‡ú\ꃀmbV†~ã|Ó–ñ(á kß¼RU»P—ŽKØ Ý—+k»2}ha Gö?Ó\F-wVØQÌŒSÂÿÑUÌŸN{ÄRÕ“BO!Ó'DúíÚ\Ày~üP%ŠŽ—  Ø–  É2±ìp!—¬%TÙC•}‚*|Ò9˜Î504i UBo‡Uz ±@£#õu÷êý‡®]ÐËí°4ŒQ’J¬¸AHi–„•p™×üZXœfx×<û½oc^ðï^\ÅcܲE|•Ù g”¯dµfrEb©àßçF,·ìónì í6Ù¬½k£‡­Ezׯ~¸6.TuÑ]x&Î2­µ$Ôyõ“©1EÛLj¢¥ÿL(ÎRjwàÝxç· íëÈ2’g0.Ïý¹x^ŒÜYò²A6x9€T£ðšÉ5ìs’bt~Ræ^_ê¢U‡^º¾H.›ž+HƒHòTCS®¾žC©ä‹Ëã÷ÌhL¸'Äv®†{""‘\ÉÞ%’­«D¼ð cÞG|î[ħ[Tü)]sÌC“ؘÏÐm@žJÐgÛÀÍŽCXÁ݆jtÙU,„P(O-²N¹ŒÄMn°*K-gXskŒÛUA›U—§÷ïŽÞ¤ ) —£;…ü(GËá’tm¹š…çÖ]ï9Ø'Ï@[BÂt®Ë)õMZÚ Bo½¦îM?¹ðŒñçälaž!ºŸH!Ü_§Ha¤¦u1œVƒ {@µ­}ÁÃ:¼ ,=Ë"0ƒò:ÊB5Ë©v¹Ô,£©礒h,•M1š²¬f-òûûï~KðÙuòÚUßêrÜ•yçߣ¼†rYÌÇE•W“ÉûÙ°†b5Ê~W#ãlSÏæ²¹@õü>N–ïcùØŸeÄjíìµú¹ðª¼¡K¸”KÃQŽrjµÊ%&yj%²<Óq‚tj,"Æàv™·þ·ip}h™ØüY[ÛZæœc5Ôí6l_à(è~§]C„Èèƒe?„> è±Õ¬R)¨ ¶–ü‘‚{ »&Èò.‚! ±9Vg· (DJ[jgÞ×c½,›¹Uñ„–Íʱ›uØ F„ò!:Ñ :°H!\‡ŠCE¡#¡ÁçoôA DïÁ›îÆrèEnà4t£23‰ þ|…š‚/;áB‘”ð*H ÛB"ÓÉðd’a`0†9ÇŒê #C©È2®í T±ŠçsFD(âµ”\( B¢’“}U¿í¦Ú©]û1ÒYÆ8Ö{JZ`ˆ[šÛ? ³±²³Ž µGý8Ëß§ÈCžÍÇfŸ«¿²{êÓÊgè°òªGݨ†ÕLßœ7(Iñ ¯«)†³‹eøú½&]úLüG¹ïØ…±è9¼Èü6ƾúŒµŠrp~ùóçóßÔÄjÝ=£çc«üV{¤¬bô¤Œã©;ùlDC% BX乿9ÓVÅkD¥â@Q’¥H)`2&xkm<+9‘I ÙÕ3lÕÚ„ =¸ZäÄÓå%öTìÇÈO$GÂC?H ‘ð ‘ð`"á!¼DŽ˜ð¹ ‘»¹ ‘»°otä.Dî¡ ½È]x`ìËá.ld‘ôI‘ôIÇFzØÝäI"$yÊG %@!2†s’ 2#$dXçH ¢)õK½@=X‚˜¤|½áí^ MCno˜d³ÈiKzv9¢` Xõ¡±Hìr¼5^R/Ý øiÊ10`,§4VûB™#š#²”ˆI® LµV,jàGã!®·y‡èºq±¾¸]“aSŸXe†ž:øˆ*3XÝËQÔ½Q÷FÝûœeŸFõ{pK©r«{EÎeŠS°¤Ha…3Œ5L³”S,bÂjToÝYµ£æ‡¨CØÖ …OLv¬DxDŠÓU ÜdûÇ „±áÉiØ^Ðþ~\üyþ53¤—Û\ðåûð¹Á÷æ®Ø¯I•æ˜2M™°g>ÌÏIY&!ËóÔà¥xµ_”OŸ“»Âž®w‰}‰»ÃÑ´˜Ãë…™=š¨Ù¨¢ÐW÷ÞÇvêø¿?þ,–mÏï~û¡|Ìg[®åâÌþ¼ŸÏnF“é_ÎÎëŸò*>*{þ$¿[ÈfÇ&ß fï2÷Éä¯Ã‘Eqƒ ;Ûw׳w¦ø«½±Wó†°+'¼Òüî#€w7ÔäPØÒûPé\žKµDÀƒàߨ¿ç廄ðíÏ?}y&4ðé~zk÷˜H‹A'vý,ñPÀn̺Aúz–ߦMeZ:k‰ÆÙ5Á¶cë( Ü•_í¡àu‰Ýn/B…ƒs×ÿ>û0ªx5ÌÀ¿Ï>þ8Ÿzþ4/¼Ç^Þ<Ç>/~¡Õ|¹Ø—z>™Ž|™ó—™ºµZÃw´ù6ó½n»{ÍÔ“{YøÎZ ÍÄ^±ïõÚc3›xòQÂRžŽZîÃߣXWG~Måó ÿø3¬‰²¬õÕÔ—`»ûý§®°×kúºz޾'T%RÞõ]gc} ãšz}‚XATE–Þ,Ó?üàysÁ߸¼|ÿãOW~IMÁòkwyyåW'òшtÇÁŽk³¼JÄUYa+Üø|¼® Øõ*eÓðÆ)V@jÄ$AXf¦Yn˜Ò˜K%òŒKŽå”ΰ¾ðµ£+{8±Æ´µlë©·Ì·Šú|yõ·Ë/W3«ßçs•OF·WÙDÝ©tPEµíëÏœèÄdv‹èY‘Ÿ\Ä£¾ìé™óW3$¥~z‘ü4Kn”½»)Í·ÂM7̯ϋa2-M¯òf‹™»X{3ŵÙnžÉ|˜ÜY3<±7vkͪäz¢Æ7…žÚÙ&™ã1¾Ó3 EÛ´Ç7 Ik¦=Àšî¢eÜÉåÍ ¸ý#¾',î óì4I_˜eÿ«sz1ÔÔí­™àG­Õ-…îoñþl¦Ê¯…J׃ùÌ/l¬õ¹Õ~{GY¬æ‡®‹ûØFƒsû¾í68lÛ³¦ÎWç÷œì5§ì€ßàA@-;ön¨¿zuºO³û=ꌙ£(¤óÍžrefSÈíù¾/ÿNý–-2M¾NíYé]B©\ÁëûdσfÅ‹)+´'€ñM°+FjÀµáJÈS ¢)§ž!SagÑJ–ùñöb £¾þ§:\J¶t,öÙ t8@¬Å00¢¬ÃÀ‘‡ANµ?w…1ªß¾@¼ãÉè†v+!H dÄ@ÆÑ2zK7"ARËÐFÔ"Æ$´vÕQ‰Eø#D¤Žƒ„ˆ´"A’«ÈHˆX#D"¶ˆ•„Ȭ‚&!REð:Í0JˆÜ*ž$µ ¬ˆéлZ/•sA;Ë:çoWÙÉFØ&à>×â7!’ƒÐw·Šè­…vB$›1ž¹F§“Ð"êã-»ü X· «ÃAB·¡O² ‘ZFŠB„šÕ#üÅ&Áû±Þé&Õˆ&u’o•¼'hÅ–.|d ù3H †ð‰øçSôðˆHc\p¨¤ˆ DS¨¸’:EJ*R€Ïhôˆ«G$4ôÃ1Ʋía‚¢«“ .ö°:Ë\Žþž‰ÑrHZ§ˆÞè 9oH$È÷âòñtx;8üýþîŒ`/F˜ó"ÌgàªòPx;&ýAnˆ0-lów u>ZâÈ\ÐÈ\ÐWe”§# Òû™ãv{û”«GCP=ŽM %P™Áœ2È$æÖ4×J.€Ét–¥ÐËÿÑÝKòᇒϋ/¾¶v%º€ß‰;&“±q††ùWaîL–ŒG“YÉêtóWÖI2X,s‘|¹1gæv|£¦Öh·ÿ¸Ù¿­ø¢ŽeSQ3ïŠÙMe©Û©þ˜Y¬&Y}Í÷g¿Mr=R7Íl”˜©[·˜Þ$ßýs>š½3ߊiiÔ'®€6ÕÇ¥ÿ¡¾dY󬸭óxë2 ÓQu5nùê¦W—©&Ö¤š³%yÕXCq6Wƒ³i}‘uÞÿEòÇÈšåuѤÕ7¨'jàΰû$5fè.È¢5×"j49+†z0/wP1ܸÿ©ó[ܳ™1ÿ6Mæc»qÝM6‡œÕ(ùbôͰÐöýnÜ{¹8;{?˜ÝŒæ×7õMÝ©©½€ëù0Iï“[skàe‘§«.gÿ?û¢ÜÒŸœÙûf!}SŒKB®SÏú°TyCöqš î“ÙÝèÌ]ÅÔ½Š-‹ºïâ|XÌîûjrí¸¸»½<Ù½ýVº¹ËþÓ¾”¬Q?Ë>ÍáõYyËo’ûÑÜ>|û‚]å«r†òË]ñ¯KÔsŒô|¹)Þ$S{÷ñ#½ýhþžr©½î,%€m Æ‚ÝI¼RpÎÛY¼HI i8|BîëÀYz|ª'Rpçîl vöüøÇÇŸ(ûhŽ£æÕ‡ò¨°ÒÇ»3ušd¨B½;›Ïí …¯„lWÄðöî \{IWާyåvÙù­ƒOû1ÄšX€LÉ-Ýiak­ä„JšØ:¥HÀøÂþËí·Ó°e–b2ãÉõ•ùfô•Å.…ÅGa+®K‰–%¯Fåx§kÂ!’÷Vo W+e&æÚ| [£ ?5“bY(l©–hˆ\q=´Z/p±J(@¢n\´ŠÓõW3ã¾Òv[{O }gÑXØzN"dx×}ø¾K©M§õ¶Ç!|êo§Îdd•Å·_¡—áö~Å÷´GΟèèü¡GÜAíñ\µ¾ÎÔGw`6…Þa¡çUB.*vø\û~ĦF'ÙWÇgãnÄ^¢/Æ »Cò‚ö•²]~ŽÀ¡ûäÎYçy>-ÐÊ&ÅHcÉiÊ9WÀ~sQ¦ Ï)MS¿ÒïM·Ó’¯ÔÃm»ÝyÖòn%*Íg+wØ·Ú8¹ qr Šà]áÝÑ \SŽF‘w‚0¡Ì‡Ù´ÜiÑ×u¾.‚!«¼/_æ“ÛK ‡óε=ïÉÌbóÿR“Ìž_ÿ0³mV é]žõ$ ­¦àzUxí£Û Ç‚!ÁµÎ•bZa­T œç2“ŠaÁ1‡Y >Æàc >¾Êà#k¸ @wâ21ake†,¶ã”‹fï`²'ßUÞ„OÕXÝCPbÙ ÅÐc =ú‰ÆÐc =ÆÐc =ÆÐc =ÆÐc =ÆÐc =võÙÆGµ¬?üñsŒy¾Ö˜gÿ†×}<Ã9b9ÆK5ÆFΩ”Z¤D ‚¡HäKýÊD4^/ž•sp.=Æý;^—^ÕbKÏëªdÁÀœ©ñxPèE¯Îº~ùZøuÝ×× £.Üt‹õ—îºcpÓ!>%ŠÛ-> ŒŠšåÀ‰Àœîk÷Õ Ÿ–=²cõ(Ä€ÊÛéÐCfAb3ïÆ}„9gã=×ß{'Ry-¯Sƒíkç-DÇvÞÕëù‡º]jßO+¨/à¾"ÒÙhŠì—òÛža~ý½+j®oçäBÏýÚOWY>CƒIçÙ|¼·5õaÁÙã's7¤8ÆB¢¢šS˜â,S Åi ¡1å*Ë=Ý òDÈ!ÏË‚ÄL]¦YePwí$wˆý³‘\í;C̲>ú˜Ê±höç>çêLì‘:Ï8X`™GzA;˵ÎÞHˆö–¬ó¢¹÷|+ó9`ÍF ôcv¿íñÎ;¶„ßž´ÜyáförlKïŸkÜ{ é?Å2óøD»ÜM>Ô“pÄ)T9‘XJ¨´‚ d,SJÐTåJ`,uFˆ¡H˜˜ •ô 8:Wš?µ[Ø'Á’¡ÔîµL¨Hì~Æ(Ú±|LòYàtm —£ÜuoâsÐS»ÙÌ·Jš @H@jxÊ yžÁ " r†¤JP8)ãö¯^ÚmØZèµß¡Ì_̬ŒJ~rNÝBO]lÈ>ãäûß~ùôᆰ®zZe°òÆÅóBÛïÈ*Yë³ÝËŸ-—ÏË_œÙŸ÷óÙÍh2ýËÙyýS^Êûaf‘õ4ùX ¬ŽK¾ÌÞ©¬üû_ÍÐ .æZ ®](U«ï®gïM‹VwîÆ¾ÏÓ·öïoënf·ƒU+e¯µï$A€wªVF @m"wDž&‡#€<ªç®ö÷yµGÏÝî ÕªÚiê©,>*?{jåúGé(yÛ@gûµ©Ú?ÓPmºã‘‚¦-ð&ÙÇ7–e¯i›FÛyî<0+öåX÷=…èÊ«xØJ¨õ¾¢ç ð>û£†ZŸýou¸›ì£±‡CfO´b§ÊÄ¡Tìèc ò±>aýÆ.Å­²â#<‚jõ‚£t:˜YØ¡÷ùKû0ØXlcÖç’ç¥Å˜vÝ¥0p‹"1V)€$5cMÎ1å™PRD‘d0"Ê“E”É6¢´€ŠÝˆR¢µNYÖ¸¸YèÍ~@¨_àú^oá¤pÆÔ‰¢KS oÌäfrÀ’‹ŽÙÕ5U¯q'ìz ˜rÏ-ž2²¬“ü":Œèðաõ¯õò Ž#ÖùóÏŽe 2)#9TÌACÌ@–J‚!Ô)$X)šË …—ø2 J8–´ê1ÜY”v“܃Á²*ÃçòøÚJ8¸|„Ë [Íͯ0d¥)K´4}³ °½9«Œèù¤ü¹ß—¡™&É~V^úÐh{p-PgU\Âe ØÑg.Ped”¬ÌÖmY¨QŒç5³0õ—Oõ%o¿¾n KxK¤[ÃÞ× xw§CR Û¥/0@­²xŸ÷´…u›ßÙÓG»Tø%€t¬p¼ùnŸ6/¡'þÞ‹q_<0ô+wñèÆ[ÿQÕp_õTM#-U/§¼Äú¥W É7>XܾðmOð4 ŽFw“#µ!€e€ve‘Aj(V<çBžÉŒl]]/IóÛ?»]]XPÌZºŸ&AÓ×ÅçhOµIWáa¥uBÿ)ü[ë*xËŠ°Mr‘—ÊtÓ+Íÿ°úæX¸*‡ªØýÌ…Jrk!£€ë!¢©`,‡R±”šÈÒ\Súu †c4W}pº¦>˜$r§ú€Ì5¼_«š(‰³&—ꃌÁõ±Í|Œ†ãQŽ VA”¡îݬ÷[me2zë¿kçcö­É³zǧ6C,Å2 Cz×uÇ(ÊLIS«PÎ3®3 ¤€äšc–×RG»ðt{ ](1ý)e§»:)´ÑÝhôS'>ÚË÷µ'Ì{ˆŒÚÈ™ˆœ‰WÀ¨}Ng—¡ ÐŒƒ”i*$Š’C B0Ë\Ån?gW’G $ÃB~y‰Ÿ §H©¹Â)å(‰²œæÔäPiƒ3ÄAšfäÎ_b§ªÜ©ë3ÖVîP Ý¹6L@@[ºA„Y3ÝÆ~Àýuûj—Ÿ¸~E‹@¯¢EÕ‹eÓße3àÅ‚g«­æšÍìan1Ä̪'«*ÜàÀÔ¾€dz?œ©oå1=5ö¤Ÿ9`µº»—3ú¦êjlŸ¸½Cs—dE^㉪9r¢ç“‰[¹ÝØbûñt<f®Ùñ™›,ùö®u·Kÿ÷SöÇ¢Ó’y¿ì‹ÎôÌt÷  ÚÁ¤ÿ,’å(ÑmU¥8éÚÙ²J–ªdIÅ*É–lG:dÝXü¾óñð:€ào>864O~V8 æÙÄü?h5*=\~:=‡ÈJk÷s¨ó/ÃõJ‘ϲâN-ìõŠùªÅ×~ô^$ŽM0†„! ñ~B¢™¿†0!y=8áŒÁ°|›làÞ:¾°íŸ“×n°,7棢,ÏüÚÝÛ›ªVö3RÛ>ÍS»èª¶•7t}+OQæ–1Ù³Ìíæá>Äâ}óá)h…?îî#¶r‡ª€S—=ü‘(œ˜(”£æ€ÿ¨Ì1½ñž¤im-´ˆ¥ ÏDf "ÎÅBÚ”sVs#â}Äû-¼G~foâ=|/Þ LÈV~f$h,¡¹+=Œ÷>gÍNlzÑ¿˜:"ü6· 7”¢g2›[­ Ÿ£ÎŸÉæ°ÇÆÐßÝ“ÖÀ ¤ˆ¥<µš)Æ™P(xЍ¯¿“+Â6õÄé?Nÿ[Ó?Çô»Ç÷—Rt_c_Ý©îî¹Éßk‚wbÖ¶7ÝGPìòõލ¡øÍ€Àíl–[w˜Å×KpöDÏ]ëÑÙ‹ÎÞ3vöN“ô¼7ìSι–’”[ ”„)‰2(q&R€°Å©ÐІ%…‰°a¿Ýëƒì…}ç4`ØŒ›’FÜ$…ešÛ¼_Qä=Þ|ÔG‚~¨ïWêÜ鄦˜q¦z>ï`=Ÿå£/!ö›1ö´ôãåÆ^nº– Êðr«õû<$KÃö»Ÿ~üñ=ºa¡)d:¼¥-ì·füÝ¿ÿþê/¿¼{hõ†åýý÷÷aaOË¡%¸AÀ¿—.„fDZˆdfR¡¤HS†¬OˆD5Õ~úé¢Oa.(ß*éF&¤°žó#Ìx¨Bµ© Õ¦Å=.Š¥>1?ib.•Û>F‘Alô ºÓœ÷IÕä[wë[‹½Yaóâò‹Âw<õ_`Îe\I’Q%´–s*eÆñå×3 Ë Š>ø'ˆ/ÂÚL¿ã¼I|âˌʖ¬•å¥&ëìº/雤ð—!1 JH¾É{$‡5‰ä=’÷HÞÏ"ú€42)æ™’LL4‡j´4 Ajy–ç*RøHá£ðq ÅVŒ(.eùZŒ(„á~+H4Òø‹¡ñŒƒž4>Ƈ^8Žñ¡ÿøÔ–½ñÞ*‘j ˆce‘v`OÝ ›¥„ëŒÐ”"  ’]Äû^xùv ¨؋÷B²Š8ð± Eð¸_/¸Wé4ã²{ Ðç³O—²êŽ„8Alh—™5¯c³ÛÚp3cØhLSydšÊš‚իѽìõxy1û¼uý¨_«šÐÕ«}]ï:¶ƒ¡¼ˆÔž—°Øü$›ˆsû¹‘\)È-*, ÖÚPGf%œ -‡‘»FîÚ/}ê’¾Ê/7#²/ „ä²±Ü %mKhQßÛw55Ù饤®TQƒû9p׸ý-3Þ£jF¶|¶ÜïUŽ4;.27I{î.Ä%7£!Þ¼}õ—_ÿ†Ös#ªb´¯3 ¬lšqSRE RÒ aŽ„"ãXá°uæAÉ»wï|Êø/_ý]|ö©³Ã z^å¿¿\ÇÌ=­Þôû¦ì÷¦ì×ߟgOüní'µìëå}håÎØsÕýüø¯K5µÉ; ã¼$ÈwÕß?ŒUó©-5QüÖ©bÂŽ­$*.œ!°Ÿ C$€dÍ­SD l䆖mþ^É­N¶>æ~´uUszókò%λóåOMvW=Œ>Н׫BÞygÓërx‰·ÖÛ•ýî»'àÁî úa?ß—olËD^žÿC:Ú: ‚—ŽÓ8s¾°m£¢~~/é¨{6 eL •s¯ˆŸ®­— ´tïïx94vN¾]£qhïa.ÐÔë ]ºî¦^_žõ7ï{„]è†îØE@]…][ºdO•‘¢OèïcÅñêÅ×yÇ»±í6|³Yé5 åP´70é€ ©k`:öý¢vñ£ ƒI¨¹Qóæ¡ÁÊ“î/Фû 4ÍÇOôÞ²ÓÍÕ$4àzeùëýÍ«:6¨ÿÂPeBQ³îv»†ÜÞ CÞé æƒMY@ÃEèËWC!ä}tÏÞìEEç‡ùaÅ­Sç{‡Ø¶7¹2ÂÏqÇÉ”ºÂÊ¿6£Åüϵ-VÎÒ Â?šŽŠ¡i5[ÓÞ[ÿ’µ[•ß_—.çäv1ôÔj=qžh e>-”s¶Ã¬ËŸ‡L×d^ÏòÜ,'‡DÒÎŒnm^¼÷³ö{öó»@ëü“e'³i›m¦>YßgPÇ·¶˜ßù¡d=š¿÷ÎÍûR’i3öO$¨×©ÎU˜á¬:òp>n5-Æ“ >ÝØ ³s®º× [-ô¡·`m–OÒ ƒÞÛ\ðÚ4oï5è½Qøp®™—F¸}xïyµf¼œŽ¾t8=¹i¸Ít9õ¥)[ïÝû‘ͪ£<º¯»nñEèÁÁIŽ×ƒ±Î¬€dÀf dPk ¤±€Î8ä@sÅ©Åa±Q~d=¸,òY‹ŒŒˆƒ•B9¤¹1B9¨—örŸØVÛË×úh‘3_’œÏìxÜ=b[®m‹uà ¹Ú¬žš°œ~°z0@ÁÖù<ÈÔÁ{]®&i+¿Œ}ñâ6³jQ ž‡í>«ñíb45f]¶ }3Sö"SøNØã¡‰ …)ÀV0•*T&±LZ`4’XT§šž#4!ÆØZªt-ª'‰!ŒKTÇz6uÝgú‚ÁéÑ—+bY\®ŒË•q¹2.WÆåÊ.Mâre°m\®ŒË•q¹ò —+ãªc\uŒ«ŽqÕq¯a\ul³‹«ŽqÕñÚn—½ãÇ«»™B†@q™TP¦Àd†¤È,5¦ƒSVt(ª»¬îb¹­îrLö§‚¸¯› …•LâúFÂËôô‡ÕÝÕžì}Úd÷ÝÙß‚Âë9Íþ¸,ˆcÞ(ðFwUx ƒÏnw=ºôù5I´W£~7¸)¨v8òZYíÒ¦’X;´hh­]ÚÕE×í:g+˜1º×’i&½¸Q{4©é®áë*eÏfý.tŸ<Üâó«X—KC›EÝ4‰ºiÔMwÚFÝ4ê¦Q7ºi¸nZÌ&ZlpgS5Ÿç»ÔéÌÿ SP™ÃrxŸÖuʿɹQ&µišaa$"ƒÔ¦LYa„N}P,æ<£4H:õâço¯_¿-óWÚ/Êg¡Ìw‘‰»J‡¥ªJ“é“s¾š{XJÞ–7¢‹¸Ú¯ÿGP>«g8TóÝ“H*1ƒMÝ“ *êIзʦ@Ìa3¨•cÊD=%—Œ£–ì;Õ@ºÞrƒj̸_hXYtÑ=ýƒXÝá›UjÎsåŸ<¤V{PJʾq®÷·µv;O €bÆhÏ„<[Ïù¡Â¹²8…´¹:|·Ãîèç£úäî‰êÖ{,w‹¦F-6ŠíO÷.vU™:¦˜\#5þÙÛCÑ-v‰^¤‡èõ èvëž‘?æózj>:#*K ÀHgL3Å5äÌ0.,åLdØ(”e‚i#ö«4 0ùÇÍ›äÕ›_¤ˆ+7@‚bwëó¢/ã6×9‚>ƒÞ{£-ë[Ð[[~/~  ô8ô-õ°|Ô-SèŽÁq&Ìø5ñ-ÜiÐî§±o½¦rãæn¶5öÉïÝ[òÙ/Ý¢G\¢‹ ~‰ ®>+3Ógp“AÕ"E !` ò¹S9¶)N¥åP@‹-38ÀÿQ]NrkÝ éÞ“¸ÿ-78ÛÛŸîÑñ3„r(9!”5ÀSŠ©kXÃsL`´mƒè6¤Ww0Âù%Ã9$ ÞeI·ôSCs„—˃—sú…™M)˨ * …Rg‚¤„ZJÜÐJ®¬°]ü›Šõ]{'îoÓÛÑÔ~ŸüöK9÷¯¾JЖ_;Fëý¼`¹¶òGyUßhÕ™ž9xqGY¬Ê%剛#Œ›œK«Y–ôH“ß쪴ÑÕ/M¯ÒŸ˜·ôàµ>C/ûª9*yãº;ªÕ¦³ñìvdóáÕÛ 6ùÜêQ¶–’ýT\&íppf’ôëÕÍrš,§ÆÖÎÁ½:“åÔM˜~þÕî^]m.}ÓÚ]¡š&ËCϽ°¤GsUÌÜc±ÓÏ£ÅlZÖrß^¹Áa•¿/›ƒíˆuœ1rã*Yøj4-Üìçz(fIjånüx¬ÒÙ¢º«¨äÔæÅ`– Ò…õð¿:ÙEžd‹ÙäJ¹YÞª7tH06ÃgI8 7k:qFü+¸)é$ í(¤GÈ¿dÈPçÂ?5Ò?ÛØÚMdƒáAÊ}ƒ›ïW*´ÎW19PpHw¨Í8þr¼R·|øÔ£8VçVÁÅ”SÖ+z‚¶f¦mAhí†+‹k÷C9¢¬†ó™Ã¢¯Z,<…(Êb€í­´_Š¡£èÖ«÷¶Û!ª\G¨~üœ”wjÂÚáîÍïlz ãûwsøQ•“ç_ó¾[ß(ÍŠ¼X¨ù N‡ÕÁªýtnyÿô…Ê?ºs»›¯nûÇåxÔ÷Ük]CÐ% ÒŒæÁ D}ýOPÂÛ2l!ompEÔ½dÔE¤‘¢ìÖžõs ª]ÄÖˆ€îrΈ|¥©Ò"#5H%`™Ä2é"qÄt¦1  äûu”.Ôbdódjíjmk±¬VW~£›¦6KŒ¡ø×½ßgˆ‚ÈùžÈ& "…¨WðÀ€†»Á aþ.þ"ò8ôë¼rº°ÔÞ‘±å ïè×êw¦`÷ðPOs1‰^lÄðÕQ®Ìd4½€í¢8Ó4Í7"#§C‘A­rP.°R’P¤1 ‹kõ³¾Ÿ nbö X†ÅÜÿ}Ú]£GæYb½à¨ô €F9ÆP¾1#Þ_4ÞsJŽÃûÆÃŽþnÛ"Vž+³…µþ»Uº](9ŸÃÄCz?ÎP'ˆL©€’ ª˜P©L‘Í(ÑÊb˜‚·X¸ÿB–Qá¯U@fZ½‚]_sòv±´oÝ_î+÷ý¸th¿†Cä(¿{/7Or8ØG´ú“Mõxi*XÊ¿_Á»Ì>\µ¹odãD¯J›[Æý®FJó*®v^Åðêê—ÂM>«[’OüùËb¶ðñÂþŽ,s7sWÝošîÍ›«Üü”¼].|(²O›küâüà‡ûSòØì“ç–M~›9l)’w£ñ;ž”åGûê£ÝÍÞÙò¿Ú‰‡¦UŠ^ÿÑp\}ô Ù£¥ê­èåÀaê·Çl(‡c ‚I°—rPJÚªʽ–PÙç±–=6î-½Þz™å 9ð¯âÐ}ýŒrôÖÞàëµÌtýcIBüÓŸB¸ÅÜÑįª+³ØÜÁÚ½;…”Ž ÄýÈÅÖCÝ•}wß´{ Z±>ü¾FÊ?¼ÌÕ¡‚çsf}2Ï>R°ã&$îþù ª`ØóxmON¥£âø4ø½)GÆ!Wè,•RR%˜Ê@m¨ÆJ”3âàA)G¤M9BÛ”C²_å  Þ ”BHPq8VÛ–3Vuv¾Öuô|vN@>>¨ÉÄ.ð¥°É™8 ù¨žîÙ(Èatv7¼†HRžš¤¸ã\§*·eƲòÙ\4o9#c‘©ÂÒR•bÉiÊòûõ˜¦;ÖÂ2ƒ¥°LMd,‘±\4c!øH"Þ/’pÄ mŠ$‚A 뛑‘„ã–={8Ë g+=¼œ›«€R‚¢RIHTJ,ÚÅ5FT°GgPS͸ãŒò J›Rb à:%ÔK%nΖŠayÿjà þî±÷× bºIf•ƒQG p^ ”IBªIÇW!ühݼ:L|ó«û;´…ôîò|ÒEÙżœŽ=Ô&~*pTc¶,æË"¢ý1úx€öœïE{Œ!¡Í0 .b¬™Â[€–Ì#þE¹Þ‰Rþ›.ÿÚ1IG§îFŽjŽ“×î^ÝTíL7_óÂN6€ÿ E îoáfƒõôõ™B]ÿ§fÕ¾»±é‘½¢c£o€¬««…Ú­+?î…Ûà÷«×¹QH“?ÊbT/0æäÜk@R!i ¶P¤0“”)²Qh•ÂFa®µ&‹<'òœ>$hH{·õL¦oÛ-+^z‰ß ÁÙÉû$Ñ5Ò‰m ´Ô8ÕpˆÔ&ÍP 5Y boŒã½h‚µcçÑ¡ÈJM‚åØ= †…8 ŽþwŠíyÅÛ5ÂçùÇð^ØRBÎU‹Q¼ ¿¶£xÃØFI³Îµ`„1#8CŠ×Àà”2E1'–ò”@ÆRA ‰!.Iüö#ŸGj+ÄEì|×€ne7a„!Pqq0ÒâÒ\0*_§¸läæ¥Û™?Žã°‚ú’ôÍ v´¬RŠérù ŽòÈ…Ë#»¨Š›ªèLr‚ÁH .3˜Sj¹…È(D¨p‚†é"‘ª¼lªÒq×DbÚ' ‹‚Õó¿ºO-`Ý«²{ñg…°/Œ§ôS&¶YD[åbŒ ‚ð®û‰°õüÓýç<+ææøµ~0¼Ï-‹h·M¦\R¨!£’IªRZY#S¥3À$)‚*£&%AÓý¿¬ûïÕnšNþþö›}ãd¼soOá¦h_š=¹Ñ UøŒßa ð¯òù‚ônÒö½VEQ¿÷B¡ùÿÿsð3½Mþó—³âÏŸóê·žSS¡Cí´†W¯ÓÏ£Ù2M .îßtV$*¹]*7® k¿wVQêÝnàyé[ÏŒõ¹Q’;•'wÕ•\ÝŠîL\Ÿ£Â‹îÉd45ß—b¡VnZŽÝÜn§ëBönŒÆ#¿.PÌ®TQ¸‘äÀåßì][sÛ¸’~ׯàî¾$;–LðÎQmíÉý¸ÆI\qæLj_\ ÚŒ)’‡¤bg~ývƒ”,R–P’#Û¬ÊE–Ñ âÒß×èî/ÌçfÔØUŠéå%+Êšÿq×{<ÀØm™³ ƒºCZ”Ê ÊsÜÃ1<eЄŸP yü¨T2–óÉŒ—ÓŽ·ÿx9RN¥ä —x–ÊÍtˆ9ÔÃžÒø†þ,øsp´‹i–¥y‰$޹RÞÀ†§@9ܳžt‡¡H'lÀ+_sn¾¹Ê¡½ï~P8‰ñ(óñç>Zi óØGITŽ‚ã™Ò½2ß}œÂ9TÂA)RL Xñ³¨ŒaÇçÓów!´ñt Dq¯…“¸Ø\G­¸`=kJÝF +ƒMmšïŹ/Vî¾R‡•$h±î8‰ªåO÷|Ó÷\@Ez`ºúšçêÌa㨚íø=NêqÒsÅIŽi.A&d5N2LWoA&–îšö"ÙgY¶×·RÅ^ æ|^ÀJß'Ïç¨Ö²QXð©WÄBL«Bå*•ª''¢Ä–Î'¢åRÍ ¦ÂÊWá\ô5+ô}j8Žc†¡¥T£ºe²þDìOÄçz"ÂY¶d³×ˆ1Um)ϱ¦/2‡D7»:Ë'âãJ?´«1†£¬Ó}±†fÇ„Æ=kس†ëŸp0¬áƒ¸©?g»Ö…¾Ü‹+üé(Î6J“Œ›‚X°æ¤"nµÍ¸Çn,åf)XiüC°Ù‹\ææÒÓ2êeÏvölçvØNÆ;²3¸ —s\‡9ºø¾k[¦AÍt]Ý4mâ™ È„byÙzp׃»'î¤éN °œÞÊ ¢ªÄl&P±ì ×B¸ßå28ydî–¿”ðܶ3;ç—í±]íÖ>¡ÇvÛí-6Z{@8¯¸„O&EO/£ä&§Y†êÚV?œÂ.™#×iªjM›y‹irÞb6 \ª¥L׃PóU•9Ô±|JBÃ6}FlßôÅÛñˆe×4àé”þ¬]³@;1ÅPÎ` †'I!Š[£VÃEôáQj'¿ñЪt멃ŸÎ^¼¬[RÂ0?ÔƒÃ^ù™NÇþ2ûµ-È@§Æ¹pýTnXÎ(Q3åaFÊ{x»¥“,l‰µøÐ2¬1æ¬*lL¸€·(Òk­û˜þÅ1Åçœâlª/Š£*Ÿrw%'Jæs¹ÊnC°zŠA^þ>ü·’d?"íû}þÜ!<¢ú®ú}=v°™Ue¼<½E;,@›œ ð’ͱþÐs™¦1Ž \ uáb*dƒ`ušÁ"`«¡á‡–¤1S^3:…™T$Œ#ÄKo”M=-Üýmæ{‡—UÖ EI˜ϼ [½?^ ]·tƒ,‚GC×}Ñ2ÔŽi´¢>k®¡[î"vDŽfvDÃ`«¥Ãûvƒ¡ÖÁ§ÿ@å_Ì;þ³Äõ-è,—Ó"ëd1Ù MÐf7°Ùn&¼æe@)|F=·®]?Ô¦Û 6Hؘ6µ&-®DŠ-lurýÛªkÛÃóZ‡üWuÚ³à-ƒ} iÃh%HÔ÷{¤½¤ýA¬ý­,HËë!€"A8uàPÿ¡øÃBîQž BUa(^”zm‘—q\o á„«Ø ‰‹,ºõ¦¡Œú‘KŸ€Æ3‰ÔCuOF¢í‹R²c•†J¬n^žÏ'¡ª#JKÍ®{7N±½³(øuêJI튫>K¸§®V ½%ÀÀ̃°Î‘À÷C˰½ÐÖBj¦ax¾íÙÄÁð¥¾ë:ºå‰9äôÌCÏ<<æ¡™‘™ÓZm¶ÖÍuÜõ š†Ý ˆµéN2zéHägG=D‰½WïS·—³.¡LT®4!GÐ` úþÐÿí·gæ·#p Š_òÚ݉ªy&µñ<ÝÑþÂ1jùÌ7|:VH©F<7°ôþDíOÔþDÝâDu Ç5[ømUu›ø5W$þ¾ø‰úDî‡=È‘úÀL¾nkKGr'&¿§Ù{š½§Ùiö`X)p"LébY©«`=“ß3ùO‹É÷ý‹BðúÞ]ÙÞ¼¹Ð…µ$$ò¶[BÆHlz³Do–èÍ xZf ™Ê»ãQ0«`ÈìÐÒ<+ð}ƒ¨%&2+T5¨Øšfk†¦õ»{že VbàB¹¹Šü+xÐ5ãÜŠäXlšàbP"Ž™”ç5LU¨º¸Jó’aÜŸþ:ŽBVd4Y›ç+û>M”²”s %»bé?j¸?~!*Gטå0ƲÇÿ›ýŸÃÇÕwøëãòûqãŒ.1É÷–Á´ Û5,ƒAlM_íyI4Ý4šAÊCoÄ(wM—«5Òl+à` þ’QõK:áõù[E¾‰éô—¥|MgÞ 'J®Xþ}Æylf î£0¦av¼fÑhÒ}øõÞMmhÕ£!Ÿæ ƒMÊaTžõ%®‚Œæ“MÕÀîTÂ4æ¦Gf‘R…_DŠì-þPGhLj]`Š!û½«tKqQ¼4ßÔvVÇ3iœ:kB’̈¬©ù Ô9 _žnºf ¶ëÚ¡ëX¾mfh™ŽZœÁôÀÑu×b–åˆÅ éu¹^—“Ðåˆé4ÃëÕÄTwº` t3k•”^‹“ôIÑð­´EdØü'ã2©ÌØÃÛiœO“„åÄU+Oší¼DÈÈ+ ª\„'KuMÍ‚€°Ã€:ªæ²Ðöz3͆Àšó ùöçéÞ­ãP6UÎßþ¡@ÓD7ìó4,ohΔ·8"i6© üᦪ°‰3<¬Uí(©3놑oùJ.F{ÙànnnFõÛÛ;Ö$šk»ð?ð•ªêæÊKs\Í&­à±D·Tb5ÂÇxW®¶ŒrÇÕ3mÈ' njÛú Œ•Óê›Yøîãçÿ;9=}¥œýùúôä ìhoÞ}‚íÅdzÓãOg§/z+\˜Lǧ‘—É͊ãÏ8oD¶Æ–Úd*íapïøßüð®nh±º!ÞÕ³cþ®Ü[v€g IŠ,o5àð7Ú4îê)VU£ˆ¶‘TÏ÷o>¾oìWŽº¸•Æÿ¤yçÓõ9+ïk²Ñú=ô µŸ¼=jOáZý!ݶºJ™'%M€Ò¦¼‰àë…µú½Ø|Í&Æ ·Yn•Ìb_´`P–|˜KÒEø¿ý&8t …_¼ùöíÕë“ 1ÏŽEAÞºoß.Ħ¯à¥(,97—Û/Eõ«aÇVf»ã ß4 ®€rãM‹:~¹Ð±Ò,ÿâÝ·³Ï_¾¾{+¢F5%—¾¨"š\F>¦Jhè]Y™F.H5~ýÎ&°’S_¨uZ×4Ž«{4BÅ‹]O0O‘|q™j ¶¿¨`šD·Y%¥Dçv¬ýHÁÔýsePã±ÛŒ–‚e¹3¢`Ù[8ãø=>l L˜&e•AT g u&M°<a,JËkÑJ¡‡¢µVþKC×À±ûƒ‰ŽÍÝ•)rà!H„q«(ÙšŠ•Ô>ï#ìåÖBO,m9îq D}õõêýD KA®æ[Žë+dkžgd‹g˜ŽJ&®h¯C>1uÁœó#5lÆÝq/¸hfǽà$x瑱($1À}XŽ}º\MA‰a1ÚyE­ß3Æç­%°¢„©sùmy"¿-‹Óî é2_|:?‡e@DÞ {´$$[¨%$r¢4Eä%DŽ ¦„ÈÖÑ”0¥%,i ùáuå%:Œ¯+:™„§ð¬0>äϯ'§¢³åa‚ú PXj2"Öj¶c§¹®‚b˲˜D&6ÉæE%v–¶Œ=°%#Õ™ŒÐ€·¥Dö˜¶ŒØj.þG%™zE!¸îë‚2/¤!!4´HÄO³a’–QX›¶*½]¤'nAþ[DÅÎÂ5ghÔÞá"×e’Nذ¸ïa˵rG†Ú\DùV—9­KÖÊÌéßQÁ/ßã%ñ«mÜó‘r7ã_eòöMÕ ß ‰o»ž†Œ†®GUÓ ´ÀRÑóU|*wÅ–ÇÉJ˜ …pB} Ý¼ÏCè´¨ù›»3Soö>à=–4J*ÿ„Oüªí^ç¿ÞŸóÈUü§Åçs§† ÍOlŠÍWóƒÛÊÙQƒt±ŸÜ>Ÿ–, ?F8cèTq]¦^óe—ye×õ¦¥‚1ÅÐuƒ–)Œ /ж¤Qq ?¦%7œ þxû®s«òô¨£=-óúÒ]câÕæu]'j3Õ(1ÛR½$L×T7¸I¬4¬7×\og°³_Á:ú°›Ã³²ÛéèT[Ùqùd‰“jIÍm®¤›?Š×‘\Ïæ°\Ë›ròmoÊ·¿¬G`M>°÷ÙyÊB퟿¼ŽÊú¶±Ä òÒ$õÒÎrw¾Qc†|P©î1ž0“LŸ;‚ZFÙêÈ aç@D-ÞYF”kYÒ³e¾ÈK¶oÑõ-s"ÈNÎ+,©â—¤$*¢IF$ÍJÙÎwŒñ”—²Ó~5w“Zé䱺p³kO¢mÞ/z?Ä»m¼ìîp—x†Ê—é€om7 u5]%”šZ †³‰jéž+–¹³‡»=ÜmÁ]Ûµ›p—8†±ºw5Sspj°œ´ë:†¶áyBz½n}¼¶ ý”Á.¤It€`—ØKá=Ø–;D°ûÀ07?0×áy/{Üýtq÷ã‰ËÜ£öµ¯èQ{ÚW‰<=Ô>T²-RŸù”T 5t)¬n8Ì7 CÛ%¦¥Zฮf<7m_#†oSâøD,—UxFy1K#õR9gþ4Ç$Sç•'#b÷»ÐNë„aû¬öå*ñòÊËÚu›•J*ñ,Ì¢êè2áŽÚƒbšei^*~žÂØÏÒU5Z²E]ÿ°Êv(è„ÉòA#Ä”òjѯ»Êpu•W 4…û‡Ïžu~ÎqÒ?ô£Á×Óó#åì7çÊ™³öì!óOÚ‘r~üñäã»#åÛÈT]ø߸aů±Š}5k0â€ðyP<*¸—NjÖ‘ãì::†å±6ŸgŒ†á[wUW3ÖÙ2蓦å[×mWmÔMb"lµè€ùRVkqˆ«ð¹[†×JãÀK;»—ãÈ/ŽùH¢9ºÝX„jŽÍÖlÖ»À ÷„ÓC”‹ÞŠb}šò ‚ßåŠ(†•sѯ»^Wu¸’í¢Uê- ªÇB×Щø4°ÀSÛ÷U—ªL xºc™š';f€å/æ)¯«4¢*I«Š#¤Ü',*×Iz“`x—³«”%ï‹al—£JWÉY¥œ @é@¬¶:×äÁáH)¢IÓM hÌÒäHùcø‘á'8æ DIzÄí7p„–,©ccÅ4sŠ5¢i!©Ïx¦89°]3iPY,šêOüYéV¨^ i mZ kÃSŒY ÝÈ`/mwgASRΧQù¸ŒtÍuÔöå;Ítµ•:ˆã¶ÓÌi©k¶ã¸‹‘mtÍ´7fµäQ>›«ŽÂg×s]ÒËz! 弄§ÆQú·¬ ²bèw h¶juŒëyü‹zÿØp„…U»7”jvò> aot:®2™ %»-eÊËÝJãì¢(•lîCô bÆ\A±Ú<Äžeº²Ö,0=±ÆøqßðÌ”ÞsÌó1í¾lxÃÉÒ±ˆyCcwÉ@Ÿ{‰GâÐâ5t§ÐG9ØKÌÑ QvÄùÑ:%º#æ£ å«4#Q_:.ü+6¡Åq­fêŸ×$‘Â#0œ±+¿Ú‰’ó‡ÛûLÖqÓªñtäò’A¨Yž¡…®e&q<ÛÓ]Ã4¡UTwϲÔÐ× QË7H)gi^ò€¾uÄ`aãÓùÙe†f”¹é(J‚Ù%Æï[&i2üð牂ɢ(&|RªË ƒúQUù£¾^±ŠÏ¿jüx`ta\ÌÅQýdÿ*O“èoþ N„˜œ¹Ij›ØÉñ磊Ýù¿†Žá“±€Oc†6!üŽ)-"0a¼J &7{½¨‚sr Lô²²/U8¦¶¦Áx‚Þ ?.þfn]Â)½Ñ¢d,Y”lW]L~ÖÊ7¥šc5Ù—¨ŒSð…iHøRÞ-½!_>C\8ÏÂw²ÎY57"=„ç$í…qÞ}c˜‹6HöæPïÀ,OÍe&hõV¿ 2è9ºþ:—¼ƒ½ØFz]ì²°ºÝáº?úζò#mˬgwÓªÅЗ°_µsÌVZmWó¥nfèØv ëªÚð'ÔUÇ·Ž/éÅÉ»ñåôâäӸН¦ã(Gåø;_ßt|=Ãr\'É8ñ.>}'ñ8IðCFQ*‹ÇYyñú þ{öuœ§ã|:.®ÇÅ¿ÇE>.~\œ¿—ùxz=þûêâÍ'ü÷ë_›Î¥5‹àAí’ùþÝ|„¬®-ƒÍ¡{òšôÓÑg¯nÏÍmsmv2XL7UÛ0\Ó×\Ýðá,³˜­ûV0‡Z;»6Þ_ï/‰w¼$nÆÒ%qÇ^©º¹*Ñœ¦¿¸nÙ¦ª5.hY¶¥™ÇæK¶q[ù9èl]H=Ÿætâ¥ðêçZ¸»[gV9u¯ ´*Žâ„`ÃÈrô0eÂR„_C°û3%ÍvPûŽ‚¢TÝ’`çdw§«`ç)ëvŸzn—t÷QJÖ¿ö"és&T/ÎN²Ÿ¤j¼Éÿ³w%Mnãhöž¿BÑs鎱ÒXˆí2‡²Ýž —Ë•Õ=¾UpÓªTJ ‰òÒ¿~R )…Jm)TDÙ¢ŒG$àÛÞƒOöKéòÛŸ>§”%¾q:ÃJëÀÕPHð:CóPF½"÷ÁÀØ.e¿?28»´ÿÞPÀl¼IÀ ˜“ÛPÀ¬Üîóˆ3sGÅ`¨ßÓ­ðã¼?Œ ¯P U5pópŽt¾jê4˜ ¤Çm,d`´%| W¯¥Iá >ÐõGpnÄVrå×ü†ÜˆãæF^‚ÓäU´€åçÜ32N茸<‡Âñ û‹²ÎodŸÂR†=’“RÇáð:M.W]ç뺩®léÞ¤ÔûÄ,)ÅYžEQœgD²œ"L‰V(ÉE®x®S‰bÆÍu¹e_Ù«)s¡ÁÁèþ•ùœÌïïË6òV&Ø—™øõ8`ñ%.lö”Þº§i•í×qͪ6kÿÛ² æ–Y‚ˆBÏŠEWjÝÐ7Û;q%@ [æB"É‘@N GŠÖ"öÎvP5l ‹*_‡k¤‹ZÄ?®ŠO.’$Jpä™ãßG·§Çã)®³J½·õòÎV ØÅ{Ó Ÿ»] ·n¯ÅD½ Sñ¢±/:¤lL4_pñ4‘@H0ÏžÏñ£4GµÖ¹Ñk*ØtX;uìà]Hg.­¦C‡V–_ew«É&Íl^²µš}µ¼•O·š ‹xr΢/ÁËRG8IU–ëE‚QDâëˆSN˜J)ŽiÊ% ¢Aôxµ…R[(4j&¨SŽ)« xSJ„P;ÜRJ C5á ©& Ñ@!(D/£µã¦9Pˆîy'‡BÔ¹@èÓ°ÀØ@[¾E˜oÐÓ“Ø@Oå„z1l [Ù#N'2¥BçŠÄ8׉ä)$‰Šs¤™Ä”ÆZ ™&:óãRZ«Î›ºúrÖ ÊÙalÉáJÿ½$]>2ûÆ$%RVJÅÇÅÌÜÛÉÍã|X &ÃÒëòߟ{óéã†"+#ÏzÓAúÅþ½tAYWÎ_æ#cZ?ÑíÍÍf‚'+ ¿`°Ÿ+v'ëþÑ£þ¿î*{s%7™Z߉i6¨´îÍ–g¼(OÌ3 Ë&iÄ›žsÌdSPŽ+Š$PQnëw}"óKKr´ ½l•yl>FeÄÙ7³`zÚÔÇÇ÷´ñAØ™j›à¹Çéž&‘º*µøkñ|ïg¿'³ñPŽ©€ÛGø/láÕÏw~çT\ñ§b‰G–>%+’g<ÉiŠa:‰Ó2Mceœ GJÍÀXâÝXâ©ì²Äo§”ˆ2L[šX4¥J5y˯!`çC%5‰'ñ=x¤žŸ^Jê¹ù[8¼`Üë{{Ξ٩U¿µÇf‘?žëõÌzn†Y%×{HÐ Ø‹|…)(ãñ;ç$wvÀüvûF Ë•lÎö.]õ‡ò“§vº[V¥²ö뻘³¶© Îõ=Ì*Ey„ó8'Õ$O8BHe™RD²D œé §nBëÁ¬ f•“Y%ºf•ÕEßnVqqì2ƒÉz¤ù‚ã êÜæžÿÊÜìãʆ†æ³s2®„ðÕP8€qu¶^Áî vW(ÞŽÜŸ t{N,MêëžâdÁF8QV΀I~蜑'Rà$óG¢5EÔä9%2á,Æ*Y”ã“rrÜrrˆ ·Š£¢ÛI{lNUÊ)'G ª¼öeäXÀÕ À|œ‘™fçg™Ž£§ÑÒqB:NHÇ é8ç´-,ÙÎH²YîXd‹2O­jœFLj1ÂPªyBH¦E’ˆ4M(åœè âNË I6¸Uô/¤”M8±DvC±ö;s¬È.iß ´å‹{Å´ ÷³1ŒÌÛ5ÊŠ³"†$¾›Éº>ÛnGÌêp pãÈü˹áš^ q VwHðàÇ”‚3»Hø€”£âð¸o.Y+]nx(Æ%g¥ÍEì̇è àÏ^x\»ô` #k#ú¦í¹š©Ç0:c@:Þá£Ø&LÜTc'?i¤íœŠ$Üsö)‘`:GkÎò$gHbs™å ç’då1“Š„‰P"ñ\%6VÅ;•ç¸N-ÔŒU)ÅH“ ˆDT6#UQD9$ª¶UIO—]!…hÌäØT(=?÷ü¢Pñ¢ úPzJÏŸÅF¸œÒóÚ(‹¼ÆêûÑøQÍŸ)1пBåXäQšQAD±”!œs’eœHÍE&2šé$eÂÉhZ×v¬tnl¦ž]W­yaú]^vß\·»Ìò`֛͓Nm†­±øÕôhÜ{_žóßÿ¼+-ò¨þûe‰Æ¹5?l,lÕ {âÊÚêU29«myirý(ëG¦Ú>`»5Èn¬Á–χÃÞBÕ¡´ î§ÕîÜV…ŒÆ…µ’̸°ö’m>³†R/ÌÌḘL äæÃÛw«’—u=þ?N†/¾Z„>Åà*j < L©YG‚ ]U"O1·6ß»ëãnmHì|²y¦]*â/ªc–Ó½r88m jÿþîóoŸ~ÿãÝ[‡…·kºl\–ÃÕÍßZoédØþ«¥ùž¹t䃡Ÿ~ÿi`5 ܶ®Éx4NÆÐæ±8ÊÙÖâ"Wëá(Ýeš@0™“ñ(¯™Ã­?¼ìH¹‹rA«ùÀà¡jRÚ8§U59@Üj<)< ÒÝ­§…ãÀ{!Z$/3ÜÖ/ËœNÅöœ"™jB8C S'Ò“ˆ‘“LÇT!*¹LrêF0°5æÖ(岿…{qYˆÂ]AÌÿL0æ²Y1†1‹¥5KS1ÁÕŽ‚±t9R¯úíúõ\äܭ˳c„VŒ{†åºcáØa-—Ú‹·‡€"ž‡[Ї•c¢Šê‹âû³J‡ù*À§YœÒ$V4R:#1§©ÎÒ(cRs•fYŽrŽPž»åítHŠÚ÷·sÇç<3/ôÔ,Ôã²¹ù°¦²?e}ËMMv«›ÞìÀe-»–]iµMï.‹ž]ÀŠŽZþ]*©S Ì‘;”>Þ'†óJ¼û=»{ˆ§ÿ¸¿Ï¦f¿9<½v:Zj§Så» /š}{qT@O¼G•wŸ>§ÆI¼Þ›ý§yë^ü>é%ºDö$[܇c'eLE©d©DBfÅ,Ñ<IB5Í‘T2K¢HEc'pìœ#ÇUÛó–¥dŒv8vB nwNP$øÓ;·Vêr“ï%¤.7ÚŸ7³ŽDÞ»²ªúX%»ùD¢'PôlŠ &Pô@¢jŠž@Ñ(zEO5 =¢ç8=G'ç9‚[tcØ÷}«B&-^_Ñb`! ,DÏæ\8k?A`!‚  Ñnh`!:A‰oÍ-\[šwîÏίķ”ßÛ+1Û¿¬×–îjBTÄQ$XªrÉc’Ò(OQ®%E‚ð(RÄM.z÷Zfc¿}LÇ£2èwñÊo—ìÛ™-£V2¤^*ÛŒèq!‘äMµfqiÓ±j1= ÊdT îȃî¾µšÏkH‡ö«±ýb,Ùþv~E¶T"äèË’ùlV¥Ø% àÚ®êY}OÐùÆýLƒÇûAZV=ú_Áû^7ŽÜÏ𗮊C`6£é¯ 2š‡“áü~¼?³e;0+v±~k›øöîç™ßK:Ÿ‹_Ö¬A ó!°}6¾Œbìi1ˆ‡ÿO3[½t§‹M›hï”·‹t:¹U7 3•žÎClðÿllv ~ù缸ŠzžZ¿évYV@ûf ­êˆá’ì/W‡=ÍÎúÔìªÛ/‡…¢Ê*v þÁ½Õâ"ŠÊí –6…ÈÚoÐA³& ð½óæO3ïìÜž0ÚþwŒWýËÍþœ ¾'óÜ =¬‘'@p-´Åw¶ˆ@Pï;l¬èÙD‡æõ$Pì_]¾-òŽ>Bß“GïÉÕg¼ð׃ •ëŽXyð}‘Ö+ïÞXâ‹ôžzÛ ï d¾@î ô~Êèÿ@𑬜÷~¨†Ëßù “xt?öÙ–Àr—äÎ â…­‚ Dµ€@ê O˜Ç|¼…¾ðŠ®|0à9¨›±æ õºÈuþš70mÊýr×BU‡3ƒÎ íü'O äyXOê|ÒÅGƒñ¨²f@WZ#FòCÕx˜¼ðu:¦óñpÀ@VÐÁ#%¿O‘ËÓ¿ýÏk]¤¯ï§ú6k>ô–Ô«]9ìË˸­¨‡n­Qy:¢ˆþí\SÇ!+ÎbÅ2³$MyÌQšXšˆœ)’J©q,òÇ)Œ¬øõû’FøîíH4óάÓßl”±F~Óû0(l¬R?&:³áI¤ªÎ>™ï«šÃF1ä9…ÍÀ!–ÑS½R Aš,EãõÀ!!æ<”í PzŠ«·âRº:ŠÞ=Ù”âa2Gƒ3Œ#FDÈF:Š{ qû9r8ã †§Vº­[|ÆÖen9Í"ëÅiQ;FnqýÞo½ë!Êó|©Å?¿ý¥ö­íƒ Æ¥Å/à‘?g»¯ÿØß ÷ŽÅÇyq^ Ðð¦ÙfÀa-­sR¶4Û¢ƒ“ìJG ŽxbvÓÈ X¡3Ê©JPL„Fai¶ß)EAØ2PêžNØRŠH4¥[””¼Á£¤"»2IÍ µUØraƒ¼hëïhº–m3l‡í¦PCtÀÝ`2¨¾Y®Žº>Ÿuc+¹ÜIË”UBÎe¢I¤(Æi‚´ä™ä,Ée’Æ I¤åê:Ñÿâ«6óÀZE¯I™]V$°VLúÿº«DÇÌ•ÜØWÓ<,ÓlP‰=š3,ÏxQËÇÎòƒŽÒ–ø v&Q$šRÈæ,Ø|]'ƒ5_™Jv(~m-?è¾qWV‹°\N, êbïtÙÅ8"xOrö#ä2ò£/×±õ2Ãç‰ía%æT£TH ”GD¨,ÉÍTš ‘Ë”q”k3M2¤X‚ÝxH)–.±¨*Ú¾ÀUܰ¾ ‘XÕwˆ™ÁB‰›åXB ñ`åaYdPd¹äE?(²ø{ N,.c’¥LÈTÅ(KA1Ñ™F‘bŒ3Ãë(Ͳ„ºeÝgApl‘gê)g-ÅÙv; ’{ȃwß»ëË?òtœ­F8Ž=˜Ç È[·üÚ©×âL(M¹V$㜢q†ŠX„X–è\§HÒH+ bZ®‹ÿ§“ÞBoÊu9oâ•Ý<êéðGïa4þ6²«îo_Æz4(Wݲ™]r_U«¿Y/K¡+¶fÍåÙ’ªf%~œŒGf<½2…ÇÁКòãÞ{cÖG¯zúµýT®çobcö_•kó·é (ôÈì¬'ÀžØ&ô6õÝVËyÙ¯¥^ÊÝcè–TÊmïçb±[±R#ýxhúTßm”k›uY˜Ë˜˜)¬}95Õ”ÞÝ|P\ֆ๥äbŒ4ÃÍ”rIyTç.2ÿ)µCd³’\»tñ¸åòO¡Üoùÿ¦“?³ÈŽ*_È‘=ÝÊI»ì0{û®ÙšÈ™ã’[èï¤=lOronâØ¸r¡ömY0ÊÇŽ0s£Šñ¤o¯¼¹”'ÓWÉÙOìð6Ýž¥Ë¡¼òb<ö]/?OAOö$ίuÈ??ÐÉXn^t†¹CÎÞ„5 {ê—ÓÈX̨Ná÷ÉÇ?±A(e‡ ç”UÔv_õz–~Ññìõb;~»8ÞR}½Ü“åKoÌY…€îGãGý5ßSÎÖ?ìÃ$% #¡’\& !8E2Ë4Ò KIqŠD²˜ºå“¬6+oŒÕ—µ‰Ö»bú]^n¿¼^7§Qm™Í“NÀÅ:M~-‹®ß—çü÷?ïJ÷LyTÿý2îrcnÍÛ [už¸J;éUΜ•Ÿ¡Ì=ùQ…¦Ú>X›»’ÝØPV>{ ³£ôÝO+gƒu'Æ…M1ãÁ&ŽØæ3›1Ò˳s8.J*Ñ›oß­âXë ™þ[ŠÒ‹òøx„€eÛC@‚©fH`Ò`ªXzžÉ.íÙo[-ôpZ´~\ÕgëáŠR?_OUYƒ[!‡Zã51 Ö!ü´Û€Íމ” !œè\¦š ,s•‘8'’¡D`E8Åny‹öZJ[lQaÌÖWæ³±‘îËÖÂ,ËʺN¡Ù(÷~½»»u·nËö½;ΧfoÞ«:`k ¾-»`n™µN­pÅ¢+µnè›í¸$3r]}0[܊ד‡Ák3¾*ØU«A™ÿ·Z˜˜ÑÈ´jؘŒóˆrQ³2í7 íH1lØ™«W¡_æ¾Ç×a].R ?®Êd\ŒËd^è‘Ç…ýAóVïaW¢…])hÄ­³]Ù/[}xÖ”w/ïß/ô:kñá‹4{^Šîîyªáº<ª6›>ñr´páO$èçîí:éç.ÍM!ïw—ZŽq²\;dòpŒËûЮծ•G\Þ»6Ï;át±sX ¿×i›n™¾¹#ò>Î\ZM‡­¬—nw«É&Íl"½Ý-;4ûjCVO·š ‹xrúðþ“>gÖ§}\"ˆ¥9•r+`ªµÝ2¹æÜ®MãâÁõ¤æ ]Ï:Ÿ˜Í‡îÇC³Ú̪ûU»ÞhªÄô˜)!5 ÷ïšÞŽçK.9=£§g%9îy߇Y¿2Þ\¼õ¶ /ÇgŒ½HŸóÂÑQñyjßµ©c½÷ç±ujË‹wŽ]ŸŸk͢鶷í—“:6. (0Ì“v>.·õÒïøÒ,—~ÇA#þX1‰¾óÆ1] Ü«6©¢Í;êšäô!mÒ݈/s³7Ñáy/\yPþšèrr‡—ÕÏä>Ã>ÂgØóLktìz O× Ùüö^encƒVر}“MØ”¹ØœËãDZöÈò<ç„ÍÈé®y¥y¶0n¯äQ’C”çiäóI4.ù"êTí£]®äÌ©ºþã²å:qµúzÁ+ì!N·âÙÜðcݳ–©¡‹Hj6˜þmÁ¥=Õ·Ù–,ÒÕ¿¿.]³·Uâá­µGÎ!¥tci-LRm±ŒF4Ž$ÉsÁ57SLD¬§R‰ 1»&“–I—_f•þc]øzWÅmÜ¥×ç꜠g_þ,¢Òº°ÒcÃeJÜJάWŒo¦-M³†¼Á.ËQûzd£ÚYϘô´Qv{[2›•QÛ¢÷mP|)k{mè{ù[wweÔ¦ˆ~¥¯nþøåîUï·oîzÿÅ–ÄòÆ«OäUïîõÇŸ?¾{Õû|Ë2à›^ÍXzV%Žm€rÕáJ“-žf³‹Š‹ïQ,º…À$Ú2·ªî7åÖ°`Í$Tó 4 µYòO[í×±ðñ0KÆ?Ψ Xî—:£ÀâßíÞ­¤ÚɸëXÔ@fÚ™L-w°®j }ÎÑ8‚è·Ì€ýîx¼‘f‹è‹Ü£ .ì=6f¼?Vyc½{ìô¿Ãé™Ðÿ7j5m×'û½Gð¿=Òè=d•ÿÐS>#hý„M’xæ\‚/§¶q:C–<Â'û%ÈtùíOáSÊß8aåôC5üˆ^ghþ?{WÒÜ6’¥ïúˆ¹TÕ„Ic_†Y‹-Ë’K!ªÛGEH0A€E*úÍy.}¯?6ï% à"!A-”„ˆ ‘Ê—ûò¶üGx¬…v¦ ÿ»ªkOʳ8Wõj­I9NãuZ¶ÖÄgò2)Ç©¼BºÍqœÌ+jÂ-HÛÍnõƒƒ>òÒhòn¡ ÿªª×?9ÊHxÏ«•wõ<-^}“ß’–g1Ö ¹¶Þ’Ò·%¡Ñ†ôîgCÚu¾no'j[§À z‰.—Gh+¢øõ{Ô¯7‚1ÇñBÑë”·ó3‡@n:÷µ5¯OãòüšW¥¾x~-ÄK¨ø¦äE$Í7˜ºâk°3A›19Þž=Xâ2œmÑ\©x¥†—~}o@çÆèÏíF‹®¬;Ä&²"9D–tQ1 Çô4C5EO5GÒL‡(fϹ‹çÌÿ[·TÓXz„-iV5órÏ‚Ñ Š°¯]‘.©ª!·ã2pÑô÷umüâ H<°éÀ!'¸dàÒ 4¼þr0 Éõ§Kü÷x8 ÙÀó^<ðæ×ßÏ#rýõx0Ê®¿~Œé`œ |wৃŸd0ÿ¢Á$À¦NÓpÚ×ßÿ„Á ñÇŒ Õ,ÌÒëƒKü÷âjGƒ8$“Aò¯A’›ëáñ Ùdðk|}øÿ½úÑJ×§Ô& p‹âªë«Ïß‹ÒüÉù·¸±SÅÃ+üìjÓ ßU׊G #Õž%”Åu\[V¨dØDt=ÇÕ$â)Ä©l–kš¨©Ãœ+,›l¦´Œ9/‹›Y6]”- aêë˜ó¢¤Ê*7æüÒúÕ­PaÞɃú·†>o(V{¿‡W~UÐáÊ7&\NhPÀŽâÊoŠ2ö¤¬v…ÝAa³œö7šgò¼é °ïÉÜAaß—½ƒÂî °ß86ÓÚfó‘t ÙÍ):Ðì†ù;Ðl^Â4»MšÝ„â݃f?²ò&Øî·…‹ýP\æç±’©ªáè’¦J²ázžªŠ¢NUKÛÒ4Ktl™z"1›ÁcwV²W`%Ó-ÃRêV2ÉTÕÊQ¶l%3 ÑëÏ‚eU×-S¬¾ †$Y±¶±’uö±Fö1Ø~…þÈ,UÞðÌ<ÈDìim X5«5.©bûjEÄßöÖ¶Æ%TŒn.<ð1U3``ÍNÖ–Žh°Ï5.gÕLÇщ’åã!a¼_S‚.2ô"oz]Þ.2ô%u‘¡;sø²‰»ŒnOWû\ ‹ëh[àX–ÆrŽ+£´šóTÌçìÒ+~AŒ^C@¡—®ñyÐ}W­ù¼ÔU³>‚ñ›Æ<~„¸?[†y_áwøÒ´@£®˜ÜŸ=° Ï|l6òó´»b‡oGU1û·¢¯Zÿð‹K`ˆ»Ú5WµÝux¨¸ö>–jˆn•8¥¢eÊ„xºI$G4=C±EZš¡S>Ðò_œøðè¯ÀîÛ[´áW¨„o~ŠžtjSÿhÎK÷CHÏ¡Òjn»`–çÅ1-IëWeIULS«âȲ¨Hzk¼‘Íì}l‰e¶Ë€#Š*kVKýæõñ̆À5ðfl4m3›Š),4;czüŽÎ˜³±(ýëÑYc˜ã~¥·K¯çžR;à{ÅýÊ©ñ¡'x¼óz½ÿß™³ôÓ R/L]Þ²ëÄ _3õfòFá5‘wÙä8ˆ.ÚÔT[“TóU]öì…¸6Öt (Ù_?þù…JŠoàÏÐU¬3 ‚¢Dcý Ø$ñ½)bð$à”a-±±ø=÷üc$hÃü#Gœ†iBÈ€qÈ0ÂÀ>@Á¯ÊSúoWùÓ²e(úÆ´aIÕhHKä1”:º$)ª¤T*Iè]}¿t†›ìãê~ì±-ÕÃÍÔÇ,`v¿`†Ð¥YÒdƽ2â Yšel'‹­ÒÀæ÷±…°Mu¿yaGq¢aMì P4ÈÖëØØç÷-<åùHëŸ<ÇüÎÉ.žÇ@ekv¾},·&§Ü M«orÒ­øª·ôo硪~4!Œ¼4š„ —÷]fžÕP¡ª6÷‡çuœ¾¥QÓ–‰Íê–} ÷*?Ì_ÂࢹûùQû詯*vØö`´O.J+¢7`[Üu‡ÂV°ÿ­¼ÛÄ x2àÿ:I“Ëuçúw3|—õ» 3þ<’øsÈÕÏ##ïÌøëuèmŽúïN€ÍeµðÙ2×=üÙ‹†Ö,ŒB.탱֛ûã*-_ÿ9žFmƒZÔ1,ƒz¶¬ž'+²F%Ó‘5Õô$M¶õfq5WB­×»ÛÔþ¸>ªyB¡£$"–~Ü6Ǫ0xy– Ê0ºÆzÄ¡{‘·Ô€×e­{ÈÉĵ¥†²fUç¾n““$KS5¹f”3$Å0䪓‰Ó ÿÝo”c¬÷,åžR¼q{~¬5ÜßÂv?¨ýñ ŽnaQ6sC¡qàG¿xívKó <ÞóBY±Ìúɽ^¾]w@çñÌëm{s‘ÌïÙëT¯9äx½«z×úñc}èÞ¼2ài9©ò£zŒWEÛ¸S2E"«’£Qx˜ºè؆«©’¦X®¤Èªg©â£¹Smñ¨s°ê¬–=†-aYUS«?FÖÝk‘ÎeV>ßk¤b×<€Þ·åk¤¶>ÄOévó¯mý"iLá¹L!ÜîÌíí6o“ÉØÑ×LÉ‹?f‚³< ýi´ŽU #ü_SÈ%i± t>È%‘ʲ¨W³TÕõ\S·M—uËñ [QQ¥†C]¹«ò¥èr Ÿ`¤Æô7ø1üÜ+ÎNW8•‹«_(n¨æª*,*(h{â³gà ØÁTE_*+*X¨Þžï¡r&o›°€xª\Ûȸ~’Æ>£®À5 wD{EW€¨ö®ØÖr0`ÊgP>ÿf¬ ’ž’"ÈÂ1ªƒf±ŸPáØõ±º½ßq@þ¤¾*$3ê,ÐäúÂ1ô‰çá§VÀ¥Šî%Àå!¦N€û €°üüY5| g@H?,æd ×릢¶€îy”¤ìµÊO¿Ùûoá`xÔKÒ9ô¤èôávÌÂYAt›9–M¡8ZÍDíÖʲ\êâŒâ(ø¬+S;> >Náb(f,)§á÷, ü eC6‹fY@b®k, eWwÑ’älà9‚$c¦JžM°PÆr¤°6²x¹½¨“K°É1FÐi(¥>êì(c{±&vUâÎÂÇç£qzKñ_!?-²¸àO#KÀƼ,´è{ö€ð`h`Ý »“±?+›²xÌÐ ðÛÊ^ÙCaÈìá,Àýiã+ý¹@[Íj ð°Ò~èúPF䨑d+XRY Ê>,CÆ&'*7ŠGÓʰ¾ÀX¦E‰°0i’bŽËJ¬6Òd!4_ú`Ë2DAÑ”²×û°ø± ¸ág•}]Œí‡|G„QH¡§?£y0^xp‡M%Hß.…Ó`²GܦpÖnf»?XÑÂyÀ ç p\‡ÄŽiLXÂAœÁ †ó2Ç^ aWæET'ä0öCÿ†$e¢ï ½ñ¬¤œÒNA–ð…ú±pNFa–$ЌӸŸ'û$„>ýöi ë;OŠéHøá“²¬?&SápìC•K9%g$™ÀJøE\Á†ē°H …-ŸXó0QñwêyаÅF(R`µÏ…ƒhÒ¼òÓh Càc£óï X áK”„4È‹ýFaD„s(¶(ä&D8¢gäsŒó^&¦©pîFr …á½ eû†pÜÀdD±¥y ô˜À"¸ 8GO" •—jŸ°»ÛPtI­+° nÒÍ2!)Š&ÕC×)ЍºjTÄE‘ Y}èaI~Ó/Ú݃ۼÇîñ~þçjÍõv–ÿm7ļ ›H1p毳vãÕL¤ÜN|)›´TmÓö2ËOæUÞYêkÚVa_Ùì‰B,bÚ´h`)<ž¢cÏ\ºðž'®ËMÇdsBà6xªÀŠÓâI3½|îNb}pãÅчÜV@Ó^a­¦ñºš#/ÔàÆÀ4¥}÷¡œ‹M;Mr"TíBdâ>t¹ÿ“Äü´.Ѽo“´5m2nKJãv^°2­š½ nÓð\¦i×섦xÿÐð¦]Ã+ô­š>ÎR7º [V^R·ëzIݪá9®|ËvÄm*Îf#”»V»üʰÞOš¦óÕsìå”d2µ¨ª™Žd‰ªI,àòuI×LU1EÛ±eÓ± Se£‘’ì{ÇÌlÐ;`/GÐ7¦8ù²89|“ü\̯z|Wèâ Ø,E¯H§Ÿâ q}aåƒè&OsA`ýôd+RB³Ä/ˆÒqÉ é›¸cáO¦I‘m…¦ø K8 È<…žýSZ œ‡°NQ*=ÈRÒ"-†Î‚Üèf´ÈCá³Nh¤´hÔЧb¶£ðZM:ŽýÉBäÍeù+¼· µÀÔOc_8Œ ›Ïç‰Q¡ ü- ì`^$¡:Œ‘—eÇ X§ÂõgQàæIÙDpáÐÏ@žÈŸcêB P õAìÂðÑ…ÍæZpSôåËßÿ†= âzH ?!a‚7 Á ìùi– 4ü•'ÀH°óŸlZ À 0Ë Hü4/åë($ŽaeÑ”Tt —œ ½À²®!N8–ÓyE÷ðÅ@*L+)?(r¹å„œÒdFcáôïÿÄ#”;‹T Ó%I¹˜NâÄËi©èÀ„+H*T§ X‘ðéïÿ£¿JÅ…ªk.”і€%›%Âpæ.ôÌ…O]¨(¬¤]ô…?ûÂw†jÇ;õÆ’–%£’*„1‹]Xy 4µõçoà VøMÑösTbž›ÉÉEJAJP(—Î#Õö€ï•c÷¤cÜNtŽ]–…G@{~ÍÊ}ðÝŸD‰ð NÄ6_‘9Šq„KŠn,yRB·`Meþßÿ›·÷‚dpîÄEËXLY’—sáÃd}ΦdbJ¾Ä.h óç⚥ŒýƉ ÿ„ÍIžŠ D˜þ³>,š0„í¸$ŽÑÌ6-|OÂ`Ï#ù^€u‡­?ÏÂyIÑÀ\ ›¯¨€,Â¥»ÓÏ ¦t†Zrøÿ -ή!,4H:ñƒiQÒÕÖ8œ$t^O¸ ¨š-ä,|H«¨¼®¢pβÎÊpA§ãRYi<*+CU •¥‰¦\ö²tI4Œ€½–õUîëNµsz,M‘dm;=Öù’G³u_ÉÖÑ3kΞÁƒ±¹N°Sæì¼ãCª“EL_¶ºï µ.ÿÇËãOGçÇýô¯MáfÒℳ-Há*òA˜ üeDž’ í•^<ÁËK—[Ænágᘺ*i²§Èšf¨U‰¢+•UÝ“O6©«šÔèü,:?‹ÎÏ¢ó³èü,:?‹ÎÏâ¿dU±ê®å†¨X¢T“YuC—ð,G(êûdªN*}tŒi]UZbLÃi„°þjìp¾ŸÄ{0Ç éI×ÚµØK²°‘‡wþòg噯C{$€Cö"¬Õ†ïÉÞ ´õbË¥Ñöä.™t¨âZÔruBeÝ&¡ªb{ÑMÕÔ= ÉTd"6ãǯX÷Û¦³T*3êŒj¥ÞcÔa†T¨'¨iÆÇHpµ%û#Ú§*ή>L >HªÜ‚GYˆ­ ´r.KÛÿK2Å*‹g$ ¢;1#œAúþÝ¥°È$œ;‡Ð_2.jq¦ŽS|ïOçit œbZ«fWøefÏYö~$ûYÒǰyµæG E0Ëø3 ÷à áœÔ2~ ý@ø§ÿN©¸h™ÜìäÁyÖ²Äh_8 ã€ÃËlcâ¾½H¬Q|C>F8Èâ´xf³Ÿû°FIþ,»?÷kƒr\ ¡¡Œ"Ó)°nûÐôtŒ±¯ú0 •YÂ9É“Ìû9Þ/¶URkÉ%N瘸@*bc7Í?öS Ï•"ÛI‚úP§Ô#МsòëWäÀýš·(O]7¥—䧃ö ø–dºìÉÒ,žÀL@{.bbÃT»c˜Ô|UbòlØ;ú«>£(lœeŽp {6B>8Є(Þ÷ƒÕÀÖïUäºù¸Ü¦ðsšl»UŽá1B|Ú{IUdɨ±B¦©©²,W8!ÓÒeSåô6Ýt6wêûÝSßk–"î¬ú~ÓBêô÷þþ èïóåÍ¡Ï Úið ÚV*üÚ6:ü¢SâÏ¢Ù,€V¤Ql-Gì›w‹…ÜÁ°5Ç$2‘Û ‚Ï#‰¬‰ãf¢ãPGÒ=·™3ØÅÑgôÙ€3yû³"âéUÞ½f"ÃE>&9Rƒ‡X‘Ç䇿f®'`7>½]RÏ G4¦á{…À¡ŽPÇú%˜ÏÆL-{ÁõzvvØG_ `B²x%‹õr<¡¼hSn#/ ܾðÙ“ôÂA”ÊH¬8^ôÌËB'ÇÊbÊV*QòšF‚ƒ›rü¢Ìz0%¨/ Y[êAÕiÙ;ôB˜M À&U$0¢mAîÆ!Øcít€#Å´yìÚÛ1‰Ö rñà'IF±?®ÿÿì][“Û6–~ý Ö¾$[qÛ¸ƒ˜ššJÆI%™Ä•¤ìÉz÷Å’`·¦[‹l·Û¿lß÷-@R©+@I-Rª\Úí^<ç;ßùNOô_ªä…³Í12ÕШÔg^ßÌPÓJ {zŸýïX=˜-¥ôÉ2={?ƒü~6.Ž5Xd;ŠÃŒî³|!,fQ +QíÙ¬ZɬZËx”«Y¾ÈËd2Ufö2=1¹ñ“MþB•ÛánRˆo$÷å èé.'r°H™T • æ÷UF$øA{SÁ0 ¦ó5.Ñ÷ƒSë¸c4Ð Søeúöuhªƒƒ"ib®òʬø'}¦å´ë‹3ã&³;=¯ÃâªoÌF×k&¼h\Ýkcº´ûÈd2Íç—£/ð»ÔD?zR_j010¸I/­'nô‰µã¶¸“D™)y˜(QÇÎo•~Ù%æúÚîïÌ^¼-®Öd-ÌÆœÔS¦=ØÄLDcëéƒeå=$“@ÏA`òUÆÜñõDÞ‹h&F_÷?+å”å‚–]œµÅxP$AR½öK‘•bWÜ›]`Nû`ªÒ/Ô|_eaær+Yñ¬³A©×¢WÇÞ—o6ôýò¥§òV•Y¶ÂÁx÷Û÷¿ ŠÌ]`¾¢æÒõôŽŒNùJÙ¥0³ò¾.Ôe̯Æß¦úc!£fðÿ‹a ìâ§ÿûßëÌÄKňÛÙÍ·Ñ07gÕÑù)Câù³jòUÕ’[„Å!g&ž­‡Å³o‹Cš½* ÃPÔ[{1ÄB›éìÕp-® ÷@‡o­;{éwÒYÅÿ~¿ô&3Å+ý%¶jÕ¥†:$u uçÓ¶œ°c¨Å`ZƹúU¬à=c{ŠƊ¯‡r[=Äc©ËËR9v¡|_žùâú®ëз”·Á¶VmWŸµ‹il-&rù­´ _Ì&À±\€ë8þYziûõ¯_ÀVËõï©*.YLÌÈò¢Gî»fþÝÒñ~ë,Oâo¾±¼ššñׯ߿ÿî?°ëtPXÜËû÷–zë:èF–›í‹Í➈1¿^0fv^Jj”oîµo8Šö“\ø‡;*å*³áÈÈ:[ØÓ]­•U>‘уÙM¾òiØM͇ÖÂÌâòI®V1ª§Äv–OßÕÇ Ü!qD…ä0V‰„$P (e†’c'*a€;WÁ9þk&Ëj’óƒ<ï ¼Àtùä K!ó:Üã1žÏi!žïï+ôd˜½°Áu^α›ÁVì&pÂnMìÆ 6éýÝÝã [Ôf°@mj Mج‚5ÁɶA6ƒȦÎÔðŠ·ÙÖX38¬ æ`Íà0°¦XËÁ!`MíæmÁš Ö Ú5A ¬´k‚%X38¬ `Íà°&X‚5Ölk€ Xƒ1gMGX4:> …û¡š¦§p8VS ÷¢Ÿz‡@ѤY¬Þ6ØÅ6PÓ‡° pj;¦§XÏ) ¾bg«SáP½‡Œla ËÂtºÔØõGÛð®ÿuë˯mÑöRL>‡ì#§"bBp1¤Š'±ä˜ÒD&HR†2µ <Ëä¹#žeâY&žeâY&žeb \P„›À`Œ‘­À'€7¥¾ !Äu– ÝÐEé8l%š”ý<¸&Ñì>Ò^K7p CÖÇðd“ÞÅì_ÿç׌èד{P^ÒÖcqû‘:*l;ÖadÅJq˜%=ÅaÐ èà2²Ž>8Œ«A ­Íñë±K&‹Ã G®·5:`oÖ‡SÖ1‹v£jI«ñu¤Äú ŒÃEqÚ0ž³ÝÎÓbŽG‹¹Ö?ãúÚHQF“(áQ 4)„±R0ŽEÊHcLˆ`Â6fÌúGO¹`ÊSc<5ÆSc<5æ9"L¬Ô1Ó3b+ÂÄ §M„ RÁ ½fÙA›ýÏn„©h ½ê0ÔÐ’»g÷ #õ*uV2«~=Æ,ßÁsËÔwcÛô£ò$™®n­îjÅ«±£h´ ãŸdK&›uYï>×ÉíÕg¯ôž0C÷u®,G|˜?G÷©Ë ý¯‹ùÈÈ!+—“Ȉ;Œ°æ6é‘™²=na_l6—Až@ÕUÃè4…ªæJ˜Ë™j¹`sÄ“ǘÁF)ŒÁ§1Q 0– ì…z–xN…Út¢r%O=¨ÁƒçuÝpG¬ªÀ¹–`UЬ¬€UA¬z±­lD«'´j°…FØÃUƒù¾Ý€VuÕWÛHT_¨cl¸p¨NV°C5¨ ­U ZA+þÔ AŸ ºAŸRÙø«Sñ§Ö ­`ÚúK…l Zr§Š­0¿]ó7æãÂhT/xTñ4ªÔA"0lªùC0¢!a ¡\ϪÑKÅžÍÒ´¯Ë/ü7ßô¬ ¶l.×Xʃ!¯GyBüÊéúˠ̦÷@Å1±µ-#%+ë'ÀÐ.Ùê`lØÜñ} ?æäj#ŸáiJlâ$RQSSID01N! £„é_¥aJÔú žÐà žÐà žÐà ½õ(‚.%3‡£F¬G( j„RŒ÷„zUÍ̪Óp”²™±:U/ƒˆ8X÷ƒAøƒ¸Ø[¨ñ¡ç7ô8 ÔGÿùõ®Õä¯'³"¿NœFýx?tôNe¹û¨÷£;×Ao߸ÎÃ{‡hç>›Ì\KyޫϹó©ô.T™ëëåýÐù<¦=’Iç{Ò¯ædæZÔò¾t€\Ovβ¹“°=ƒZ´§-+_Ã¢Ò ¸“?å¹öeâz¶™sÁbO‹Þ:XÀæ*Dz‡gn­Ïz²‹T s,a$eXUIªPœpÈ£”#„/Ïòh¦G3=šéÑLf>_4Ó‘¹Â(E+ÄÁôç´^ž%8d{:/¯ðVV«³¼zq}Ôé˳Ðd_žåáË>×—Wžå+­|¥Õ©*­Ú4óÅY¾8«ãxÕö ­§R8 %—H±GIƒHò”HC"IÌ”2Š1KÛ—huµò[¾bËWlùŠ-_±å+¶º-Kg¢Iâ#‚ÔU‰¸þÁ·%Z«Ùj«LÔÏ¢­‰‘:hÙ+Vò¯…b¦^ØÕ…Öî¼°uæâ­#U í„èŽUfN‚ì,ó[;à ¶Nž'R;›è+F:ƒ"¢QÅ‘ÀP,¢ ¡”s1Q(U´gt! ó4O#ð4O#ð4O#8©ÊkÈ8mv@F˜ S5: 1÷µZ‰©Ž¡ñz†Hªçú®œ€ƒB§C£ 7ÚÀS3|¿[qÑE&üQ‡$\{ÏX6.:kÖ|侕ºžÕ^´ ºØxûÜ÷â›bàãÊÛ¡Ž2—›ˆh¨I™˜ßàê±»V ò4‚7„ÄI¬=TÎIPÌP”2I0ˆQíÍP¨ ‰8Lð¦kÙvîxpǃ;ÜñàŽwo€‹â à 6så0DˆÖoô/Ø>mÓuÁ›Õ2/xóäHîV©H É_3²ùBêQí§é„½,q¸M¯>²iìJQ‰Ëi׫K\F×ËL\Æ­Ô›¸ ])<élïïFMŠË—d½8åô2/^}Å—³.'ýL)BI$9d‰dÀ’T¦<$)ÁD*($‰)Œ¼˜´‡Ö<´æ¡5­yhíÙBk®e(8$«u(R£/½,DÁPìÓ_Y­DY•’öí±kcNª!t`{ìcªH;ðâÑI;šxô~Ëšf´ñ\*ÚÆv¡mc<†Þo[éAï7œË@[XÖÔŸ-¬ç¢Ï¦K­g ã¡íQëÊÎæKAg㥎s§H§’ìy>2<Öm¿RËGg ׄ•÷[WzÊýgèõ”v×K™ä9>¯ê à)¤©T†D¥%˜ !u p(8’…*Œ°½Vò&Õ™?rÜ%¬Î‹ÎxÑ/:ãEg¼èŒé8ÚÇ!†M"¼^" 9@¡+Ô‡¦9s&¸ï¢tg`ج2rGÿ¶ëÎ|ÌTg[£ï¢3sÔî˸xàí´!Ü™ªdŸ+”¢eŒcF\Æ©4]h SЦŠÈHp$ˆDP`«Pê»$–!Eð{5WßOâ{óÆ+Þï}Œ£<é¡Nz81ëA‡Oæš7ÇO» —j1p"GMrݸjC%ƒVAT°Ê‘8q$Vc(Ï‘ð Ï‘èWÔ„õ·¶Ù¢¦kãµ° #D„£X§v-¼¶ÌÈ"ä†G“øà€bÇ1žèàtõO@tðQÐ)Yõ½Ö“DÖ•ÂD(#˜&úéÿR¦bD)ƒè r*B ¨×å|¶¡–ç—{~¹|ìôc'Š “tƒà”¦.'Cœb\×ådH ¸'|ZSo8ŽpCOâ§n‰6pBEžÓ½DÖët>{jø3YxêK9Í®jô´º~¡¦épÑ}¯È÷úšV‰ðm¬â'Be0„8ä1¥„âÅBP®¤ˆ¤þJ$"ŠRFd{^qPÏ$öLbÏ$öLbÏ$öLâ§ÆuŒÂ¦=®‰À¬Ùo€ 5\'=lâuQÎU.q¯°#0‰»õ @À¡Ùò£pÏË">y¿É*¦µµ-ã<b±ÏÚ÷,*]Ùñ=ÉÛ¢ü¹øÒSÌhp³”¦T! Hõ7(A€¦¢8%È>DÜ,שÒSŸÆ÷i|ŸÆ÷i|ŸÆ÷iü“R M]h#Ú£ÂhÂ-c=ð¾þ ë…£¨¿%£ý&AÃÖ}ÌPTi©=dQ…éÕá< {­:­”•ž²–“Z–—µ:•¬U?@…ùõjWñ.;¦&˜¤aÄ´‹¤ˆY ‹¹©Œ³HÁ9:SxWÞßù±_~í˯»]~ý ÝH=a;3ÏÄ XöC0ˆA €¹°”³CÆy ƒð)ç.b"Vº@ ÄêUnƒB4œ‹~VaWG~Ò[ñÕï÷‘ÞfæÁx¥¿ÅýÂ"0 ¤%‘¤Å~ÐóµÇo,xOAw[-¸ùíèü-xüû‡Xkr«ÏÚ/µ úŽ2,9ÿÇC$Fî[í²@Œß¿Ox‡ÙÆú;›ï~ëñIùº_;ð†#ü͸&/4 2ªNåß^¿ßa6iïÄÆnœNö[å=ؘÝä£;»©ù:[˜YÜA>ÉÕç¼i×µj„§…` e‘â)Q( R0i$`0L"Êbš„¾Á×"øZ_‹àkº ùZ„K†L-B¸^‹@…hÖ"@W‚ʱTÍûY‡Ð„©/BðEŽ‘u,Ð×"„-Ýê§Óøä °RÊ08 D$€È •ŠaE•ÀRµÝ7«¿| BðU¾ ÁW!<Ç@!Ð ô f!Þèa‚¦;á,Da½Y=ç†&°3ÎÓnÀ®^õú¯/¼aª†:ëDpgšÕãÂ;߬ޗ#ô4ä»óÍê}³úº¹oV¿cˆoV ‹ïoï zÚßþ\ žˆ8J¸8Mi$“H„aÂ(‰’ ‘ßÄÃxÆó0ž‡ñ<Œg^âÆ«>‚Íž !f­öòfOÄÃ=â‘M ï^Oºt ¿ã°é0ºâwGibmí{€<{Ä­Ó…H­ÀÔ¡ê¥Þc/)4¹o¥®#%½¬6ò½DNÂÏ:k† p‘FB¬"3, $¡9Æ1ޏTðØã9k<Ý#iùz_Ïãëy|=¯çñõ<Ý®çA›Ò<Ä8æõb&À>Ž×ºØ,9Z=Ï™˜^—TÓ¢MÜ6*Wó¯Eº^畵Öვ뼵=G*PÚÉIÛ{”å4\< tÚȱ[½7ž¦A#‘ E"8ŠI)%ÄG ƒQ¨ LÂ(±EðÝ7|ÂÜ'Ì}ÂÜ'Ì}ÂüÒ"ºš0ßÝl#šúŒšÆŠµ€ˆ2âÜh±Ù£}›Å¾t©·"„v¦ ‡C¿wßÃ'ãŒwØ~«©ï—Ô~ìJnÚá¬$µÃ¸ZºÕ yÚÚzìÈõ ë,‡aõ,p»Qµ¤s«ñõܳõ¾8­E÷̽ißaæúq:=ˆ°¯g•½äÕÄ‚:`/‘$)JCF´s• ’R”D0$ % 0c€p”D1³lÜQÎÌ‹àwãƒÿÓþθL=VŽLðF޵ñô­¡ ·Ãnó™ßh?]ª;íÊ'zsðH~[y8 _ùŸÃÙ0x;“:80ÿÎÌ¥Uüeaõ6W©ö§ßÆ7ÚOÒq¯1Í̆küþ~kÓ72¾úSG¢³ÒYÉø“ùÓšù/wò> ~‘j4MK/ý¶øyÍðvæ´å»ÉHê3«‡ìvXÞS¾fúVÇ8ÃìN~ þfãɧìö±0ýTüiíæ~•IiýöN}‘·…é]Vü\·=n¤°;XoÊf( 0alk(`ˆ 6ɳ qŒ®‡(d‚£ÝAEž5OéUù¤iÿö³ú½z”¬b€øfr«ôYf®aÀ†Ù:B -ã€G™é®Ú£âM1³øê{( x‘E ¯1^wó·¿™áç_O¯÷yò™Ì ˜d‡¢¿ØÂÆÙ­“îd}Þùü†ûN¨í0 ·]ã±}W†p÷!¡ÍÙã4Ÿ…Åú±-讥FAÝgWвˆàääãú ‡ÇäFÞ]eùd¦?–W§GXZž²Ý©b¼nítý«+£Ùp²ìÎaŸuq½eäKh3mÛ ‹±÷ùÐv-LÖôØ\r'¿¨C¸À>p;ݼÈÖ”ás2œýÇß_©<~UÆì:Al´|5­ø—‰Ã ™󷨙Ëaк})Ê{¿ªnÞÍú*»?kC‹"žØÊ… ¤$¥1e¤)¥$•*&”ÇŒá4‰D4„Xáœ) ®´‹YVÄÅöP>“ÇS.O.x  ¤))Haæ(KMAÊ!v¢‚ËÚƒ*gU à‚·ßôIµE_.ÿSƒ&û°+Êê6MpeeX<Ι­ñÑmì®MtgeùE[ZF_†Ó}nät2Í­V†“Ö·b7ã&¼³º“‰~ÒN ßä­²8â”ó4â.ÄëËÐÄ`u¡·×WÚO†ãëì°*Pô²—´ò})$€F!e1W(Ò¾n´³‹1V*†Å<ÆXXù¾ÿ-ß¾CÚϬ>›•ó9 ¾‹c½ùlýÚ‚Þ8ŸqýäÚ­4ÄU3EA65<Å‚\WÔ0 š`e_­û`NÖÎiqU;wßÍ> uløÆ…“æ7‡ø›ùÍPjS•çcUº±·åÏÎÂ=þé~œÜÈѨ²ÎnðLÏŸ½ ÁVo“0ÈYÓÛ„ †וoôoÂ6­ŠÖ¥«êi(ܨž•7U^§Ù°6g–Ϥިz'¸zœ{¦í‹˜`-E­ Îùˆ~¿½¶·ÖïdÝýÛñ~<…Ûùãu·“^¾Ðýü×Ó¤²Zd‹lR?]͸œ0+rÑI…G[ÔþÍI¼Çxj™Áë Èÿ”.·¹gó=?`Öß øR´r²%9—1KBŽ¥P,\ÒÃDI–2ˆˆv²Œ˜•“­ßã#ƒðþ:«O»€yÿ•Uƒe"ÃÎçv:èvWúŸÚ•ýå~ªâ¾5?®¦Ž0ïíYhÿüÏa2÷¥GŸŠŸOçóVæjÜ0~õ?Õ&Úéjš±4b ßêk³fi âˆbR¯öGCL÷8Ä~-÷ùU¹WŸîzsßÞµ^×gëž/¡„£vžï#šŽö²Ê‹ÞD÷Úö~:†“«ÇÆÓlD¨Wy˜µ©'a”Ùѱžk)É¥Õºã¬÷ºÉÅ‹ô(픜«}¡îYûå@WɾºâÏ»õkŸº£¨BÞM´³kÏe_:g¦£… w´~’''’ÙÍSñ®/ЈÊ%•»õ2»ÙÁäY\ÒÒþnE§r ïCé†d{†Ì#œ­FÙÜêª2*y çWsõ‹úë©7ȶÙÙh»ùøÝˆ]„9[‹TšÒXaÁ¡H…Œ€*ŠBI1!Q§hÇFòÁb§ƒEÓñÕì Û³' ®ö F_®Ñ7@ð0´‡[ú™0q õã™ »(ІäÅí#| èE(ú@ÑŠ>Pô¢»(n`Ñ”´÷do Çó¿ÓsúœáQ’'!“òÿÙ»ºå¶q,}ï§`íÅÎlMl ‚½U[›qw&ñtÒNW{¯R JlQ¢BR±Üo³ï±wób ’LêeÉ’ƒêêÄ¡Ï@?ç|ç¾í2@äræ;Z>}oÒ`"µ»J‘x«¯?WT´<ýªáªÝùªèýyÀ¦sŸõúÓ{믟½Ÿ~:“³\úþ‡ÌýÎýý¬ª»¼ÌP:ïb6v™9qR¤=.ëR<<‹²tXõS—ÙnÚâ8؈þø×ÿ6Ã?F©X Éå>@ÔG4ŒwŠ0ƒöDiÂzšèPº‰RÆ2åÚåLŒ¡ã¸KÑ¡Žm§ê`Ü–ÚuVë¡%ÐñT+>¨Fˆvrv8LphG鳪šÅÜD‰>¿4ðhY?L¥ƒ3~WNú’j w˜Ñ-x°ÅÞ®ÜÆ,fSãµkÁ›:\³(N –šUÿ8Š:‡¯®^ÍÇÎÞºaÄ t"› 1Ù 1ìвruŠdö@:63Þº/À[—z«™õèæ*Î 9K¡{ Ô¹xŠ•ËVÝPOU€ÕLÓ$ôÓçí —]Ç6±Æe÷೦ËîÑ‹Ø/[Pn8ÉvdëÔqÃÉö¤J™5¼oOK7Øì’{º2¼¸¾rµ]ã¢{.ºÉæ|: âŽCØ‹B1Ç !Å ×%¨™ÉÓñ¤®Ý:ží¹êu¹—]]~õö©&GÊxºà¹êði"ž¦ Ÿ>µÑƒÛžBÖPÖ©;¼Ë=„il©€Î—™W²Óà©•´;æRåËEë4ºW¯Ó‡4^:²(u§eÔjÞnrʨÇcÙ».<Ç¢fžŽ¸¡;ÆGsL9½“-§§æ=ªœòx×Q1`Žm'ŒdqØ aˆ±ëSäRÊü2Ù7®£Æut´œKœ§[\G¡CZru·Gˆ'„…2v->'™TYÕit‡„ÊqµM]‘ÌcT[/ýñ2P™º"¦®ˆ©+2{zDÉ deŒ\—Dœ›Ê#¾AÏ …ÌÄüˆ:¾ ¸Í‚(2é Œ-ò$l‘+acÛl‘2=Cפ'pVÒè™"Wƒdƒé y L k“§Àä)Øô½Mž“§àùßgËÇÅz‘O¼ÈA€ ¡Ím8ÀvmÛgJ%®V·Ú¸ÕQv™¶N¦-è"ºìVušnu¶,£½U–m¤Ú2I¶žÁ›Ž€ŽPõÎÞtƉÎ8ѵ¾ð©£ïG Ù£.ýtaébèÀâîDZä¨á ¨åxº¶eAu¿Àgµ³ª¦ÈÂÕOÏÃï7íRCdá×ÅUOep =UǼÓ1LíŒ7¼SrÃûVHÿ‘§Ißø(’×­ m ŠˆçGÜ÷ƒ0æúÐaܧ~"Î!".B€áе|ð®36îÇK¬ßržYïGB'ŒX \ôã—·ÒÈʹx=ÑÈD6ÏÉ-öÅ ó“ʯìô•å3YÛC4ó¹(Á“¢ÏÏî¬ßc¡4Þ[•‚¸Åï©Ýæ `‡`ê4âò„~ m¸¹D¤øÁÍbÏ ?8 Æ-øA#…bµ˜gÞ\REF'k Sõƒ Ä/yº9Á­™°§0ˆAŒv¾?•G¦¸æÊ‰@—ãdÒ“9UJï¸oÅ×±†ƒÜ×I,éD¼FÓzi«™Üä~·öd| °bÞùªÿ]Ù1R(b·Ñ}¯U©:—î7“xÃp›1°úBâ¨ò MüX‡hýsq•f\7‚ìsq=‰u™Lö­*ä"ÏäY£äc"¹v‰äz¨¶ŠI[ùD ‚f„N7í@¦$” €}æ³0BGqß 8'…ލ¥®4ÚÁóh®—µ j¹µ—´ä ìeíÀhI;€žz”ÌI÷eÇǤ#þòûãÒ l¸“ŸÜQèFØÚ¹QžXÐÑŽÊZÚÅTxuì/$èQ[0V¡ÎV¡¹ü:¶˜c’öÕ&w÷mÏ e¶ãS3.aØvdÝ¡Ø>Q 2âþ3‰ûZ18ÛŒÄsaSÜyÀñÄ£TÅ™p£{š.…ª¿Ï‚þ‘ ûöNiúŒ°o„}#ìaßû[h°¿×û»ûâþß¿¬mÈ1‚B‡2†¹ï†ò¿Ð±]„ aàºÔ@û/HÖ‡€"´” *ÕD}ÁzðÑI_,ÐÍ‚þLz5rþLn_· «Î;Ji˜~šΧ¹ôÂXŸó¢­fS˜Nz|Ô~P‡™Zض ýcÌ{ª´ÓÒ¿_•ú[•Γ¢…j̳äüîæãùïY\´FO彡˜ØAkß“±¸¸f>(Òñy™‚DIœ/Ö hjJãm—ébC6“tSK65¢«œlL«Šò´âÿó_üâXûv.×poï†òÉ"HΣœãi]ýd"8>6óÝÈ8 bu—º˜P-ïæç/Ø’ÐÀy<*oåâõ²mΘšš—é4å=–˜'+)3iÆ<¿°ÞÉ­¡ÐÔ$a4I¬8²ÒÉ_2~6)3q~xó_ì¥äýýý…üteÈ­Á¼6€,ÕÈ Äó6礄„@ŠÀR0¯ãÙЫ]ÊP"K ¶ãoõ%v>[%çr}œ÷¦Êâ$£Þ/oç%‘Ú/hö=.ÄÕšê'§óÖ˜¯'@á\BíŽ&w9ž¯³ï¨¼ôøÕW‘°m‡ÅS@a²÷ͽþÒû«·Š(ÀÞЦÏÅÝP5îñöFq´wªRòi¡Jš«BJG\Ü)·C¤ðÞ"x÷ï{Ã**U¥‡Gâ¿^º¾yû>7xÔßËÄÊëkc~ÌIÅ,"8D4â”ù^€©Ï!s‡8Ð÷¡>B¶OCè*IÅ5é¥JB)a-ÑøçR°hòŠo—ö26< )×Õ‘r‰–Îçˆk"® ëßk«„[e]4òíóÊ·ØNS–Ô’o7¥O4òê ç²;ô½±“e§ #e‘8wó|ôIˆIr—By܈ZÙÖr ¬÷WŸ­«$æê äÊ{!É$”’$)!Ÿåq`Eœ“¬º?D˯¬$ˆ]ÌËb¥­$ã¿‹‰å•ËÜY¯¬ ÏŠWVÂ/ö}ñìUU %(D yaÝÇEßÇÓ!çe3ÒNs&N‡b’¿šõ- •@ôÅù§Zbü¯,.ÆÀø?K¢ü,ÊÒaÙA<*ßäú·÷¯*þ~,³œ<ÌþUž’y•'oÄï«!d¼'ˆ²² 뵘 ¹‚I5ÌÚĽÃk椢/šëõ-v–DzÞsI.ÞYœßòcXó­0fIÚ»¨nb–ä©Õg²4̬B4OÎdÆ‚¸7ÉÊ6›Æ«jÒnâµdÛïiy=ZùdjˆÙ¼ÍgùQÂ/Ä×-.Î~ϲ9Y^½«ðâ…B‚pt$ì"ƒ¦í »Û­'pv1¡N‹!­W¯Ã‘f-ˆ½[<\þ“÷i&–VïRló=Jz¦,ÏöàŠp tA«g· ÂÁ“åµíµ$½‚0óD-Sï äRų÷`âÒÈëû­˜ `–3o;õ4ÍCµ™*»NàeÊyFe5!ÊNÔÌt_Åî“ Ù©Å*¸g™¾"½7ÔM†_Å=¯Hù­Ðh6æí”b†‹4H“¯Ã|¤Öîá‘¢€ö(gòU·a>³ù0ñŒ ™¢ÝêÅX;•Êøä ¡BT êÐMG&ŠÁ3B­uµÌ£²°aô=çY–fj¹}b$°j](t1ˆSÅÅ jy“,çåD*ø_ŽrÕô¹Ê¡¼–Qe©­eTÙ÷kÕŽ !¨ Åà“#á³JÀδ’5Í_{Ê~œq©: á|»p–§ÓuM®ò.¥® ›­™‚¿Çü^Ö>‹Äè¢tz‘÷’‡‘õ0ý3N¦Î0 ¢b¬A΋<`c®Î!ËfjŒ'çl˜ŽüAåÞ®p§œOm'Ü.`À 1p)v)q`@u}×64$ QÄ= Ô\¯ ngp» ·ó XÂílëåZ—p;—º`9•ñ¨ã ZÇíÁN[È›Ìe· ?V»Q»ŒåcÑaöp4°]C3°í l·…ÒÀv¶3°í61Øn÷€ƒô¤Ï }é3Hßñ"}:¥ÕvûˆBߎ"Û  ®íbF˜0€¡ã‡³ö°Ï€}í‰4\ÔQº'=b#· ö¹Ð%ŽÛpÒóvÛœôfeíVq«“«g·#ä÷ R?>¼Ï! Ñm¼O½QøÓb«#€ZŒP [%Öi±,ÀA-® %TeY‚ uz2¸á!pCz\3QƒcŽ$ê°Ì!Ež:¶¨Ã—k—¸{Îò}UãÖÀvÝy5ŠÍu/88Çòt¦¶ êipÎ8}ŽNßñàÅ›XžN§5œ®×#º§Ì¾ù4ºœ£}ú#Õê`žÛ ÕÓ`i `ÙºÂÜ¿)·ðˆÂéŬÁq?nNê™ Ôî8 aø®…ÁÀwO”%½W ž \ˆÑucK{J(Û(ÁpìÛÉ[ì#ì1â1äy”9õr¤ƒçÍ“~ý僄Î$.¤ž(ýW1Ü,L­«lògùà&úŒ'Ö çƒ|/p5ˆ«:4çbøíiÑífZtä¢m~b˜RÏi GPêNbxÀmñ«@Ëö|¶òÎÅšÓŽïüXáFðd£O >«ªèViy¾ž0riìŽÍKµ\±Ú•ÄKªXÞ3²¡¦ÑúÃì)ðªç Í6UBŠ»OA­3±…£hm?r¤ùíÍLJÅYªç‹s Î4ÝêõÂÁùBqª.>ÁñuOýI¤Ã$þ×!ŠË$á:©ÿ ŽJÕâЫ}VwPªqf”ôåÒÖ`Ê Å%{ªþ+û¯K…ˆ4)bÕtÚÁXÑ ÉÔÅê¬ñ)Çgí¢ðù”AFÄ'ØÇÀs1ä „„{ pÏõ)ã¡P&ŒÂwd Ÿí4>lãm Ÿˆ ª)|žãØ´á( šÅõ&6­×_4ƒNNÝë¥iÎ;íQßC㌾gô=£ïÕͨnFu3ª['N£ºÕm£ê¦ãp¿“öFBgG¶‹\7¢8r<ßmBmä…®ç2ä1íí¸´7êxËæ:oIÇêP/ec6vÜfc[¶¼]›ùy¯WIô}½ON‹c=q`ÈjtÇ¢Ây¨c&Ö}«pªn7F—;&]îTüzäa»PÇöê){xg×%ÍK§ÛUL‡»®‹éð-)e:¬Kڙ뒚¦ÅÚy†µn‡;쫦*§ãH»ªÓipÏ”»בjìÖ'p†©‚3WÓ u¸fÊ¡ËLKÔ`©©‹ÇáÜ{H½q*y´ìª6ºB1¯^Ô#zU?Y8Ì–S(!( œ9 E.v=†qÈ@ÈC$TÒï.~Éz–”ÁʸܜU¡Âã±ÐJÝ#WÕ¿ôã|®ñT±Õ2N·T[ûØ –¾]XW©ô·qѯŠŸ¬–õXÕ“Q(îŠÜº-Ò$ðòÙßSߺ“G ÏÊ'W,•ÍÝB„c+Ÿ½aB‚µ~š®PXêOÒ\¬à>Kªg¢G1sÿ3¹Í&ƒ~*ãSÙ(ý^ý6ô¬›4›5ð6‹1¢~šTƒ{Ç“xj}ø×ÿ%}˜.½ÿ.ÆqÅQW<ÿˆ‡Ö»IR¤ÿ¼æEñ—ÿüÀe¬ô'9½YX>ùȲÜú0J“j|7lç}ëV´ßŸ=(ÄäßËñÉðñI,æèçtÕžð‰õ3Ï2ßúwñeþÓúEhÄ¿}c}á¬âûÔëËc»-ø¸ÏÅð…ÚÅ«Iü](~<³ÞÅ£Á^4u¹ë.¢ŒsÑö HÇ­ñØ¥–Ž–´tHm\ßjKZ:ÂÔušñØ”b[hïu·ZÖ²¯35}~Vœ‹Í~.·yýÂË›÷_žI/—½ÿ&.¢¸ˆÕª½ò¡Ø§éHWA_©'PÎ=H¼ŽÖ»wb­Ñ6@{*% {Yû•y¯E‹RìÒ¸h§ÙTW²,#žZlóÉ_E6]RO¡þãq˸Ô"ƒçTzÑÆÏOýÀ‹ò…}¦ü‰ZWï»[] ãhƒÂ¿dl¬ÍÄ&ú,÷®äqõx¨äÑ d¼“G]šÇ×ÕïdLj׫Å ­§ß[8 ôç½K¿Ø¥U¤­Žêt ÉXû$SÀ„$«ÏYè*žw±öLtÍe0Ô_íÃÉD»ýå0ê*Þwã,¯ÇãßfZ»Þ%s'N!ù„™ö'Îd+ý©Ÿ{âN[¹>ÏwíqM#Jžþ’•|Ã8×þ/¿uÙN5wÇa¬MNW3 ‡ö·xdê4½Î৺oX^3e¾·.œ|¤½+¤B/Q.ÝUžøÓI‡ÓòÀÈþPÓŸ±ˆþ>½¾ÑKI2õ Òîñ‘éÓ?¯!úªÓáéfé²xy: zøçSñ·¶>øº#| ƒé²ý©Å°_@Öaê˨s”äÃQ/SgÉJ°L—þrž{´3㥘̌t`÷Ë´ÐèWô3æY$—†S8Ô –Y^5É/“8×Ï‚G~ci„ç:S´(É«?³à"Ô`Ì×ÏÚ#Åù­ñª‹ŒÓ‚·‹Ó¢…×OH}ë]V2M Ý|Û]¾.Òá•XoYš´°,öÝåx¨ÔÇòføïq¾þ mæ‘,WÛ¶ÃvÖk.”õ8¸Ú¶‘[vo§aWœÅ]q“Š–®?«Úø¿ðlXÛ‡y<54¾I5¥z/7ã yÄ&‰.׿£p…§ú+[£õÝkŸØQ,hЋß$~2Òa‘?øi±)EÓ&–2¡uO8¼¼Ž¿ó7ü{ܾÏ%õ¯o_¿¹y{q;¹}«Nó`’ÅÅúûv‰c2ºêË8¶Õ+‰å(fÚÔ¦{¥Éð… 4ÞõŽ‚P‰R•¼mqÎ •ÎÔ’XÌ‚tmÐ ½Ø ­PçÒaB´˜´]+¡Ü?j¤÷bÄ£¶cC’²IÑW¡eþ_LÕßKü®txÕ„x Ùõ"Ù _¬å‘èq,ÄË +c¿&]yã¡Ø#]™wyÛ]úXWÖ1+‚~Wf¡¦teÍ{Ý¿QÞyÀS¹æ;3ËJ]y³Ð×ãÍF›êñ”?ª°ÔqÚ‹ÊwM¥:“Û;ÈËÓK†îl—óe«áFªI´õ"2K VðÖæ$`¦Ls>Ú6ñù€'—ó‰¯;–á0Ûòêˆ./z™Íóž% }É™•—¸ì4ØÔ§Ì])æ÷WRÚÆ§ò*iÉry'}·R°±´ó·©¿i¾æ4~é8ˆÚÈx”f<‰{ýMÒÅ‚2.6ë ¢a‘²š`«ø5§ ÿŸ½+kŽäFÎïúý¤Â¦„ûü`¯±Ž°äpxä}ëÀÙ¬e_ÛÕ${ôë7ÑÍ£›ƒ" 5š5¥B¢æÈB¡Py|™@~µ(“L±¼V©¬JAe Ò$ þdj’Üoú¸.­Yì—}.N²‡7êKï r„Žun”?JÜ„÷‹0äbžhp_+a³åö#^Âòv Šñ,²ºI 5 Å.åzg–C–ý(¹qËʃ…^¯»=˶[§qK’Ãe¹—BùͳTB›»0 Ÿ¥ö‡[¶ÍþzsŸÖn„ØnaKR«1Úq|ÊCAh_òe‰¸¬dùé8©Á¢â™äc;XãnÆxσíbqj ÔC±üYfÙmíÆìJºs£ý·ê}éU?ÖæËbëTª/Š•îû0T*y’òâÀ¯¿–4ñÁ"©QQ¬¤‹ Ñ_‡ey^Ûâ‚ùíûôí¯’Ø`ú\æ®(ñ¾l@±¨TRÔ1†8:éòÛ‘gcÖ(Þ­yaV«¤8,Šö—Ž@—d‹ö2Ûۢе#TíÆŽñf76Üßï=žc*‹Ý-Ã`åùLì>%¿E±®üŒi‡²,³(*ʲð¼*Î|Ù»ã÷GŽÁw‡•)Eq)zć¯!ÅŠ+þê^ΙԮx¯ÁTõIb›¼åæ~³[_àëÝ‘¢¢¸ eï yÔµé¯\ïœ]±)®Éöô%ÆŠg:ìÇ …Ê{"ॢìJÐì0\t>I˜bÛÍñUŒÜm6åû#ujú¡æûÙºkSœW’ëŠê~’*G¬$·)G€$vüšÝÁ×6 .ÓGQ‹&v×ùýíºøbïÆ<í}Qõï!hŽèöµ‘úS†h–ËÓQ÷p\q.^’Þ¹×Qâ£ÐKlóoo¤Ãµßä´ÞÞŠ©ä,2¤¨$”bŒáwN, FšK…y@ÖËÖÞÚÚ[?ëöV°ñA{«þÜ0&\ÀU/h¨ç”qÎCrZ«8‚L{ëCÓæ´·âü]¨¥~Ù~šoYE-«L`uAÎ8¾Ÿòùôö•k_p>ž½&£¤Og…G‰nÍjœÜÍâ4ÝÒIÓbãàíâZ¸z°«d$ýÈ–×Q3}>õV_óîçêKþ:aj5·õפ-ªú«Âa_ѱa®þ²Õ„§šðHÛqZ{yÍcßVý¥§=úë&¬û]õ%íÕ×=œ<¯»î˜¡Ô]’òõ8Uúm{ ß6ýÌøO NFç€Æ¹·Œ±¹f &(§š‹¤é79*QCç îèœ× s‚´â\\’Ï`ÉÔG¬"+] Ÿ9~ÔñCl^ûAÇÏœ*Þ"ßïÌxº™:–™F.ó¥w\fˆ\f<§Ìh*™ñ 25Ä1ãùb*hb*ØaªIaê¸`ê(`j˜_*_ªx^jè]ªY]Æ“¹Œæp©¤nÏØRAÔ2šŸe<-Ë6–j–*î•:Ê•ñL+£ V*xUFÓ©T²¨Ô’§Ôq¦Œe©f ùc}ãjÂ]>Ýg_Ò³ÔP¬L¢có.Gµë%ùJÅàUšòÈÓRMÏRÇÊRIÆRÇÁ2–I¥šqeÌ¢¯ê­ó‘he%K ­Ê$ –: ”‰„)µ·©[à!Š– ž•)”,cꂉe<KïÊXº•ƲÒXVËÊkÂe¥±¬4–•ª+ËJcYi,+4–•ƲÒXVËJcY™tqcYi,+¯É4–•ƲÒXVJRe¥±¬ääËʳTcY9 5–•beåU‰Æ²ÒXVËJcYi,+e¥±¬ J5–•K¡Æ²2{3œÛí§fY‘hdð?†m*~®Áç ußÑÊî»í{p„ë§±þü8ù†Oá§_žFŸQãÓVÈún¬èý¥Ž—Rûʘ¶’ÿÏ£ïcéôöÀLŽç»‹süä'¼*øà@éøÌ‚ä ™o¯ƒØO;†›5ÌsµxZÚ6<Ñ“ëRµe„ÀÍEï%æ‚}bü®æ!P&°3(j¢‘& %™CÑsïC cÛðûï¿KÍ^àw.4{¿«ãgã/ð;¥JÉ ü®)á÷“òæüéo>7 ïÌ®šUä“áwª?¿õõW‚Ùn_ eO@~ôˆ~¬ü%´{ÕÆ{ÁØ}‡†úê먬2g`ù7|òµlü•øyâe“¦ü½yâb¿c >š q2 T«hÕ2"m"·óŽ£©±FsƒqÄ¡¡ðß% W겊N¸dJ £pB‘zYEç‚ÊsÃ$G0øePd%…ß/ÒQd¸ïîý[AáDÉFá­ŠÞðtÃÓoO·*úXéVEoàý·ï7‰¶yyuH'Í?®Œîð¿Ñ/·Ä3ŠÓÐ; Ö:®¨–£Q^§¸2ûQ þ—D9Ö³ÿ:>Ûxúò0û)­âì´&Gž†Ùš¹ëvû[³ì~=¢D@ØG²óAgÖ3fü,QÌ̉öÜoV¦[£ÙW_þýv³ÿÖ~õõ‘¤Ìú‹Ûõv×ÝÁÛ_ÀÕÏ’ÿ÷(yºÇÓ¿;å¿FL´Ú~7#©+$®ˆš!ô]úWÎþÁŸ~ñÃ_ÞÍþøÉ]7{÷Æhþ§ÿýÿþá??º˜g‘•[QF ½`åV„!9 éª+¸ÿÔ+-ê§?|BõJF¨¯Ãú‡âú³Þ_=*îÕï²Âþ@Öý¨ëe4¿2x# ³ÜTŠZ´õæ7@õLjJÙ4X6±õf½Ø. Áê$ÿÈçÁúÀ¡ÍÓáֹ߭¾þ#{ñÒÚh ¶"Ö¾ ¾3sgç`0®ËÜQ¹‚3§­7%8–»ÇÞÏý‰U#3>±œ)”ÔÎ îK$ÄgãÃÛ\û9Ìz¾ßu‰z!3º1;îq’9ÆKXîlôØÏ×±÷™1!ù'E£ QâõofER —8X¥sL¡¨Qpº~àuØÏïçÉbÌ6»ä:8£Pà$xB+^i̽A«¥gVáH¬aA•8x3ÓÞÄ·€éÞgFÓ°˜Ì1 ¾~tøuúÏÞæ&/´°DÃÔ%‹jõKßÉY \JPšŒä„YFÊ©ˆ3<­‚U°G‰‡;3nâÌ 1œA¸\C›èL’SÜÌ»»ý]æ&.R¯)cÎ`I±4õ7¹íí<gg”Ë9wšG-ÌwØos.PÁT™A*p°ç+“ì± !(D0ÎŒ¬åÓˆ1ˆPkëg|çýRöœnGp@œx%#ÞÕêöÓ{ÝÞ2”›¾åÂ;E%)Dš oóܺí*y4×Új9Äã&DžëÎ'}ÿe†ÇÒ+ ±]xo£«ó8¼w9…±ˆ[Ràd“#¯÷hA¹`ÆŒA(g¢nJ|HË ’J‰ ¦*hY…<ñ€v·95ô‹ôA(ï=ÈV˜åI 7}V¹ 5D3inG¾ÄÚüÂ(- †EÎq¤”´Ï4Ž®ÒÖûÛõnëæ©õ|¾ÈN›ê`£CÊI£q°J}Z Pçܨ„Bƒ@l1 «`N8l7»}6´c þƒ‰8,&hÜ)Ü%ÖÀ%ä;¹†§*b*(ÖŠUØKZqð¬¹y£´GHtlO¿÷9 Pƒ!úRÐ<5Á]¯Âªßwîf7X,DIN°BÂÅ)hû,‡Q‡C¦GND"š®Ðò“&ò¥ëœQz9¢H0@ÝÊW@ãÓ¸qóÍþ:äœT@òÄJ*©0øs'µ2Yå8x‰-ÇAzé?üôÆ@^Àr†ê!ÒP¤nZï]VCݸؓ¹_æRÁ ¼… P Í) ¬bà#FÙÞåf  !„°)˜œ¨\Ÿ íXð7ãõ³90å¥ôØ¡ÜhSO¹ÞüT’Ì@#V4yS¯_‡®÷k€#½ÉY#…[åx@REVm5)«[ŒnrNËPl TR-",û$•— ¸cÌsƒ¼œöeÑ- ÎåîTkœÄmp¸Â•dç üHï4§+ÈY )š‚„Gò{?¦Øf½ÛÜî³nÊ룂8ÕŠÊ °29A³\lr~Šá}ÚF@d¢?W|ì>,sD(¯1 *?þÇïnl惛ïsc;Á¬Ñ°26DÄý„zdÞ˜/à¯jɦÞ6xjÀJYo'«ó»MNi8FV ¡!'¸Ãó Hnè{ê’<ªèÐ5 1i§ÎÕ|˜CVh,… Fƒ+›âc:°ÄY¼å(Ç(b”[-ªÍ¹\¢ŒKÕw£ˆpS²³óµvBÁ"³3° ŒóÀ¸¨L#¼s¹Å–"¬°4æq¦&/†(”ˆŸr+"h”Cz¢£çU*Å.&ž–ì`Æ‚µV³ eMêp ñŸ¨´r÷P‚*cB@:œP'HE  ;‡|ŒUÚÂè†Y¤Í—˜ÖÇ–æLQÀY¦¤bbÊÔ×±[wÖ  =×·bôÎRã*œâs*›"vË|LEW¨¤P p9šê49Û·\ ^Yb<—ŠGš!¿Yä f‹¢5"Ú Éd—{ŒwÄe}! ‹Ÿr:]a9KoæÙ¤\Jã‘ 4ÝÀD5!]º0¥r³':p# 7–6!aL:dvnÅ` [¬£ õ^:7AýSà¸Þì·ËÛÜûuL;MtÚ¼ÒTð‰õ`³Ïb<)9D#gÒÇÇ™™0¦X—äÚ²E¹eÞ °_RS>KHsÀ:Ș”Ñ»UÖä|W/­¹r¹4}=XðpÉ&”˃7¹£’ç0åé)î~ëV®ËW-v$r Û-d…º/;;_þšC[ vA{G¸×k7ÁNó¶c‰õTJœÇå»ÒùÒŒ/,À paÈÔ,6`hrw(t`Á¤mßX‹4&š;×y€2]nÆ–‘h£¼e`ʲBïÒðK³Í ΔS1H9‹RÊ‚.¯L2.þ^W§æÇBYJÎsɰ’‚ïæXF¬Ræ#b1¹RÇü¨°–Å€£œ’`¥¬¼c9¬¨œvÞ Þ?e»*嶃ûïKXg” }aÊNoZ–k³Úßå à$VÜ@\ ªÙ«•qÄ0o“Ñêù¤"Îæ¨sŽ I`"ŠÔS2E»OäƒóxÛçËðB=8ní%†PS„Ê[9ÄD»™NˆŠ“OºâsëÌNµbÍ„õÈ£d½1œi¯ ¬ežÉ ­Pé€H4’1T¾R¨ý5ýð!¦£g¹‘Jˆõš8û˜ØwÇo™úìC8e9ióŠkü=·L…3€z–~ÖÎ7k£ÆèàptÄDO š€´Š>¹#“ˆ3æÄpœbL{?¿µ¹ˆÄLqÖª´fdÒù¨|0ÊÁ8 â”q‚G´©V–´‘Æ‚]zɯ‰€‰ÿfs@aŒc¹ Ã5j|¾–qor‹¡Ep…2Â&E©S»•qƒGŒUÜq¥„Är L7ØonÂz×­s9<Ó(ÝÒt0ÒUây»¼ ûÍ&»L4âA(k‚Šr¾‰¯æý&îWÙT•sÈ'-…´R¦­‰Ê¹ï»mnTã ±6Þq€p…Ñœô/W¦ ’bVÔà ïñ„N|×o—&wÒ"×:Pçå¡foúñ»}v5LÔ~ æFSQS}|>R“ ,F:J„‚—¬åq›Í(žYðxt­Á=— ½2ûÝ&{ø‚8ä(C60F9pƒãXÎ^ÀßI (SGïlm¬}­‚ì"–‘E¬¼²TÔ”Á÷b³æmØ5“bdœRÜ=€ùÖìò¹‚ Æ ðy,XG¦T`8š¢\éIÞSaåà‰ã à®!“ ìG¢3;a·Ïž ã’j„"h»žp¢ø¼J=´§üö®eGŽåÆîç+´œ®ƒñ&àÅÀc/ c6¶g-Ä‹£†Zj¡º%yþ~ȪîVUudfDÞ–íñ½ H­RfVdyH–L¶Í³ã¢MX¯¯d½'—¡Teå¢ìì}Lu”Ô}Åžml¢`UÅcõjžP#¿õV5ƒÖì:¢ÚSÂŒÿ)u‹í¹FK>`Å ¨`GæãF÷\t+˜ˆUK` ?qêyEþ‡¤gI²Ö-W ´Ê¤Lø Ä»yô­DÊÍ©*…»‰LÁ3u±·ŸU4DÎ{Ó”J{ÎËc ê˜äèrÂ!Ó }¶µ=µ–tX`Ò0ˆp%8Þ*r°½§½ŒzÛMü=8¡¤y)Yα•ûôG Jcɼá¬u…vØÔcuû·à הu(-fJÍξ¬~ù¦ðVöÙ{WÉBÀA°\ûóû W¡ ¢Ä–”­^ÛÓl³žüò&$TìÊØ© ;AÊ8 Äû„×› s8áÈ–ƒµä\uè5²™éD8ÏÃ,ZIž=oÆàTÖ3¨gÀ°æy½'~îÈhÓ òùeö»¦„Sd / ÔâÌŽ(‹"͆½§VP-ûDÅÑE·£É¤ªÞjç†Ú ò«ßD)¹Œ¢¾¥C{—¾öÌJˆÒh“„9ˆ'ÌEÞZ«ïîïnïúŸ P±-Iâ|vý• >j¯|hà=ä9Bôi´n·+¤8¡ã6É5úJ3¥Œï¥®T0ôLmvšw#ÿ£G w¬É1Í&mä‡Ô¥-7v—Û]bGaw©»OmKyã9ÀÊ.iÆYð¢ÿ­»ÞÑ8~‹¤Ai’ ä÷·þä£ßŒÅ '(·›¢ôDQX0:gÏÛúbµÈ¤í«ç/÷÷Ý>ǬÉä4jÞ8NM8ÿa¹¯úh7&¡Îjð‰¥Í¿óåWäGÞ¼‚˜•¬¹¨mÝ &¥o?ùñ®~¹moeâÛÑhÕ¥j‡Û·¿»»{Áv½Û‡ãèï:øñóµ~ÖÎ:þð$&RRïÀ€Ù:.csGå¦~à§ÿÿÕ¸?^7íð£õœäÇâýnoÊÃúÑ»ÿß{º<{O÷ÿ.¶…IÒg½>ÞÞòéšû—_Bÿ´yšŸ/’÷rÖ^>ÇjùRÛ×—ÿ`ëàÜ~ý¨»ß›oi^®tgI—¼Ë2wøá•…Tn¾Ý~»¡›·>~Þúäço­ødª£øä©>òAºÿvóPÞ_ô´d¥YP»“¹¾¹ý´4^ïòC¿y´ì‡&Oñt÷øVeàúñïOÿø÷ÕøŠ˜B-ÙÇœ­0lÊmt®$Í1h3¨&3¬ñõç–nêR'Ù®?¿å¸Ü×w/þ“Ì6ä·s’Ý=<]XxL7' ©5Y]¹ÿý›¿Þ¾¦ÛzÖ}xüËÜÝ×£*–HëþÛñÓ÷­½9Í@<”Ó+ýÍþù¿ÿã_ÿr¼¹ ”}SùÕ²½ûé_Hôˆkѯεº®D¿À)Œh.D¿¬s ¤Ï'âA\Ÿ—µ¶e¿¿4Õ¯wüÉÃNÁ¯ëåz%½¯ýÎaߟkBîk6fXŽi#ùÌê*U†Ä°™:˜;»v_›ˆBöIºtWŽY‡/»¥’}åÀ×ÛFE•Hƒñ/_øµ5¼žžµŸ±$kTÔÑhÓƒQîÙ²vè1Z¬TΨ,v±œ_uŒ(©[5àj.º’Õƒ™€ÇYãð`޾„R«ü‚G{çÏž)ûl(E•ª×J§f7Ñêå÷yzÎó¶!×F.îxƒ+28Nª²Yæ´Xµ™\áí&? Þ!k3¯r̃©ÖÇë/tU@ðMtÿÐ+>ƒ£Š«YÖþ‹Ñbp¦¥†ÃÌ ¾üf‘Á´VJðÙä:ª¿v2}`t9o°ó@ƒ™Éçp³÷Û“³˜r1Å»jþ¼w•k4 É¨¥©Ç„ºãE.H*ð5*ŽŸŠb¯YÆ×y@ݲ©ìR˘|fl^çÌ#R“õ¹òRx¯âhgÂÙ3÷UâŠq@ºòZŒoæíBlr*¦¢5ä˜s‚ù=Ñgºi«…ʱ©£ ºg¿ºÌ^R Ø6‹%B¾ºŸß}óÌþ09hªrT¶cÿ(1ªÇ=·JœÉ¼]cwÁ—Ñ*Û¹ùèWï¢hÌñ~c]¶dÞášžB†Ø{'Ša´8ueùû”rï´ŠYT³‹¶uThò ÚŽPÛøt[ÊM4)(ÙQ)–«õËö‘²lDT6a”¹à eºHZc,ˆZ—)ŒÊ¦ïr¦=ðþÛ»›Ï© ÑTõAŠn5;ùQ]ÁÇM¿ÈÏ-Õhˆ¶zj"Þ:Zû< •²cØn8&aöôðÉGè¡@Ó x€˜§3û…9¡ŽÃŒ[–¹v“€Ýž] 5:Ž Eu YŠq”{³àüUÈbVÕ•PÈg_÷í—>/-I4шêÞh7õuÐòšj8 ¦¯È_ª¥Š*óa²¹Œ2XÎ#Ä×ÖÛy±×Ä $” Œ2¨²³£æW/v¥Ëß³g\±aÁ4Ê–y, ë:á9€/9jùïÅ?ý© ŽZr¡°ƒ÷G̾ͽçjL ªw‚qãQÕ€,m(ÕT©am‚—ÜŸ41tpz´/ì{À¼ØHh’u͡˾eçG[7¯rtËLæjE§±×qŒ2GU+^D±ë ûæyM 9ÇhŠžÿ+rU2ÐÇ;ëo—`Fµ+ήÝðá=[ñ[`$ £úÈ'7Ü{‹»„’º6vAáÒXJHJmS­%¥é_ŸUªZ8Ìä`pT¼t!¯ÕÍ´cÑÇfA6‹]9¸…|_lº¶Â‘±ÒìïÝždÙöÄ#%ã"ªË92˜xþ‘‰ÁW² 5‡èæ—~lf;ÐXÉ5ò‰ÁÀ|ípA¦ÅaÈÄH+ÊL;:{듬´§h¬¦Q,É¥8qÙ¦[õ샺ç'&ôŽ-¶\Ôüþ^ëë Ø‚Gª‡²ƒ{±2lK·ÈG&h‘¥•ÄyÃÝ•lPN—À°JÈ%M”GF!äì”O"€ Å´c­»ý¬J[¯ÄÖlݤƒP©©Z- ªP”aGUjN¥/ñ ìm´-K6i:z 52¬éÀ~\q˜:*4t™¹ïd"‡7Œ'l·]çcaê‹g»ÃÇ/5¬'€öšøHZ”#½¦xO5ÿÀKãjbCaÀgÐÑ×iOÒÕèÀQöV°•®{s¹ `ì?(çd¨£§ŸSÈ\¸²M6T‚·¡Ž¶²wto3çVš–<®¦F0Ù»é!eö‚jÀ&(_s¹¡ÙÛVùåÙ*ƒ©ø î‹äúêƒÒ_+â[ÒOzTýâmMêà½4ok-Eêòà/Ç'#£ ˆÇ¾½‘¾„gµÉH«; .ûñÐveh‘Hˆ£a€UÐé4*½Áמù;¡‡èÆUE§¬f詚³tµ1•Ê™}(ù¢ ªÎ_þ5M9¶É2ËÙPœ™È·ÄÎ<äjÐ¤ÔØöéTÏÕŽÔ’ˆaQŠY%­÷-+ó.H–E%k%"3×P(Z•0+†ú|ôçÝׂ(|1®dcÔEIrW…¶g©!·¨s1™ÁWš ½.¶['£ƒ{I £„^¸Äevœ0‹åÕRM” ¶Œ%'¬˜'×vUð7çMäh£A]‘Ml£ãÀ¿‡³KÃ2ÚDì0“š¨m,N<ʺD‘×+Èà¦Øy<º"kE ^ùÈœ–Qå“%2Ïâ nkulÍêÀØ)î2³=?¦bòRÈ19å3GfA•©ñóA”"('rø[ãÔT ƦVÏNâ€5¤µù#³n†,QQRã—_›Æª]V3±.1XÇ5ƒc—‘€QNrºe|èõa¯1c1­ò=}‰et&ÞS4´4_*Š&¬Ñ*–£Ö|±aIì’1oÓNæ¼ëus¬Åm¹¢K-I¢&ƒRwქ)~š”K¨(Öd8^žÏ¬t!ñÎvE bÓ ú•µµÎ«Ó@l0‰cª ШHÍE½¨÷Ì¼ÓØÏ2ô=–äçžyAt‘A:ºæ Ò8ÒøaZ@‡óæ Þ^05G¦ ‡ÛÇYC$¦óA¤U»Ês-ÆÍÊc€-ѸÇÞ”`oES-9(ª•&»VrÃ>”LœÏÇ?}%i’„KTtÕüõ©ÕÊ™¾[+¨lóDayMù1ñúRóÕP´-ïp Ú{ ùW3gÙjî‹À—†Zccª«ABÐ~¾ò»<”McØ‚2:w±ÎïŒ×•²ºf¯‡I½,$‰«`Tʳ_§]à¼z[Tó˜}jìdíõÛÃCaü*:õ#D§?^ÞèW9ªôêrT¿jE]]ä¡5*Âñ«TÔÙçÿÙ¥¢j£ôåö«U‹Bç£Ê`Q»šáXš––ál}Õ ¼.Þ ëEýå!}ªéP•¢ŽjKùîáý›ÿþtÃï¡°mäŸðgÞü÷³ÔvîÇ¥¥Žr7§{}¸º×—ë{}¼¼×ýé^Gµ©í'pWÚOü“³Ä× í'£Pô.µŸŒC‚¿Ð~âåûìR›ÚO[û—&•Sy¿Sþ©»b¯£ÅPÿRîù·}ȼì~žîï,u$¯=l~êÓ—›áó»ûM§´ý‰ÇÕýà¿?.Û(—²rÉ5]°¡o0XËxºÉk D]?üV™Û›ìcÄæØø„Fƒ1ew‰úèÆ.ªñ¯¤°;:àúCbA& äDBÃÁüéVC´ƒ–ÐØcV¾ùZq°†|y‹ÕΰhÄ–Ûd@gM£rõ/–k•V‚É¥„djKÆŽr¡žî±*¹lÞ™B¨1£ £§K/ÓŒ„Î]Jªº˜a4w¹îýR™ŒïåËèø‹Þ1[Êeéb¬nšã4^íÉm¹. 1ùæ]Õ |µv0õûÝøtil­&Tú(Põ®¥Þ, ò&Ñ€Á'©¸0¹&ëUÄÜLÔ^ÚRõÉíØÞk-/.éœgCPÕQ©÷Îígß\¢ Ò(·ûŵWfslº”@ÍŽþ»¾ÁF“hMÞ(0>yms­\¬ÿ#9Ûú hœ a˜%t~—5"‹Å 2/„ß³tf &·û µÖŠÞ€Ï.;ÈÈ4“{u[é¨xBÄT+¥ÚQ­šî}“ûÚ ZpÔr%8ª”Ö_¯¯¯®ŽÕ³ÖÛÜ/3Cù†2²¤Ñ|~ÿ;õéœ^¡Ç–”lUl¬rô¾ÍŠÛWKÚ ™ÀYt“8rµÆmK&•JQ(ò£m4ÔóøU‰ÊŒòŠ‹£ƒò®×¦_ÅS± ]ô@Áƒš<kdvº…J… ÆaݹÕý¹"/æ|Éžß«Nlq·¿X-ó•¢@5oCPìòÒN ÒWÒÂjØßIGLJÑN~ºöÿˆ(¹31b74iÂW$I5Cgvl‚Ôu Ñ¦×3ì²Ð¾Â±šXkó¥J;üf¿ÔNQº;[ަ@p£2h+>àÕ…ÜοCŸUoÉ$ÍG C‹~²+LjC•1ƒ¼î¹Ø6Úþv}éuÒà´&̆ñ´‹ŒuŽY¦’×¢\Ž2<-¿í;§_*M-BЉ8,Ýyö·Ø%|ø›Vd|q ‡@ÎÎÓÚ 0£#•(stGYükÙ‡å.U$“—}»¼Êz÷`ŒþØWª ü¼÷$otÅè[ÐAšBšÆQBÜËüÀÉ_ûHEgò:EþŸ“§n¥Çɹ֔ 1gðÎŽj _¾…Eޏnì-V븫ɋ/ÅmQÙ#Ÿ¥3ÔMžßÅÆ^š¢è=CòvTÉð…ë^èzÈŒ¡¹¦ ã´Òšj²éŒ1*‡¹˜áŸnjr8W ‡ÂµFjġިôÃÕ&\W“Ì!˜ä `$Øa¯Z1W‘’ôÒºl5ßoçBõG*4Ls…¼ÊY•QŽå* ]TÍÕ¦’0)b`nF‰Ú×÷zui¼î ú‹¢ Ñœ¶^:?ì䯮ŽwaÝz(Eù¢ß'ÉÝÆ¶¥ HQ(‰$؇j‡ï?Ë¯ÑØ B1EeeÐÁ¨Êêõ}úíàîÿØ;·Ý8’ä ßó)újakMžÞ/<¾X؆ï¼@"Dz(rÀnI;oïˆ&[Û‡Êê̤4»Zp0f¤fUuVfÄ™_ŠØ3=}ñEšÞªÔ%«ºšëGq/æÙ’gˆ½TíK1ÑÆ¦x*±× ±7Åòò]¬!W«#çh¼"VŠ>ß÷׆Æî¥AdUµ.(RpRLî/uT±ye ÔXdÙcoÛùH¶X|¹/:£¤°f´·ð+H턱%š$_srØâ ++m„*ùˆÃÔ^”ôå"h´è³Aá­Íäk†©h/&[%”Té-L¤¬ÐÈJ’VÇ\­LEç^îÑÅ øê¸%¹ìÊ Ó©£ÖÚÇÙ ¾>6Ȉ¼° ™!.ª}ý²ny#uuÚ‘ …þ³z©ZA 2³5±ÕÒ¬˜+äxœPAZ—µï-ã=‹¡V°QЈ"´ ¼C7{êÑ` VÌŒFZK’¬“"¯«7;°¢w†¢+švjÜ»-ÅlS,¶‹Ãâ5¤f€ 9¼/è,ðJÇߤô£4)e§‘{oËÑM©+ÍAtd(/Í{n:’fÏ›VŠ=]4j4‘ö¬ëY×Ó®^Ód(”˜F³UŽ4j»Ù­àšMöR“ ³f0 Z-ìÓI8Ê(r–5Ά Ëd/ïcÒ)Û(Rä^§-7vJ"¤‚v Mνýué7¡´-žä76M ‡Êót¤„õãZÙ˜¥ËÕ!&WhÚLÚÏ&8¹:nÆâ(g;ÔÛ¤ê";cµƒX#8n’F~<#o¹ÿÍk$Ð|Ñ6¸Q“pkiäCô^K[¤†É9³̳’¬šãjg…U\]µÔÎ9n°QUH4‰fƒ‚5¤w•š©BÚ“H1¹Nn!¬Ñmlµ>%L`AæÑÄ’n$*Dn—KPªô“^¸ujKQe,™{6Ytƒæ¹ ¦©ÆòÌñz0‡j6æ[™TB.©,Sr½ì›‹á_Ä$Ò‡|fÎéŸ"zÉ׳uÍ1¡¯èÈ¥„4¹rWÛËPoÁÑj †{;œ¯Ý%Oå¥ ‹5w—Izr¶Û>(N®Zo"¨ÑŒÀz X0…^jòݥ‹éfK¯Öæ”Lï—[ë/¤®ÆD£(LIV§»¹y—Òl! r¶w¤4'ƒÑ|±EŸ²´UR$lœø+òÛZ+‚JŽ©mm§ºÄzm*½cÔrvgj‘wâª`”“”&T‘Ë+c?ÜÿeI‡àŠtÑYe*˜Ù¼÷v‡aÎ% Å$ë«s“Ó§z7µ Î×sµ°ØžÝŒj÷Ðó´´<…IñÎïìÙõ:*Ž$C¡ë{(˜ÉÖÍ—´hÔÉ[É!TÄñÀ¹Õ§«á©F ^Œ†Î'g¦Í‰^»2Ø’« ï;9Z¬7Rödc dfõû:°óŽcÁX(ÓkŠÀ`ªæÂ¥Ä&Eisž|ËÍIª•d›¯Ve”½½ Ï5áJKIÒâ!R`Ë{%ãÒêk2æŽ{¥á»£èfÀÝšÒ uh2ô¹ž’›úFá¤*³ËªJJ|À A[²“ªªÝ³ˆRJ ¨P%šÙâÓ+$0ŒäYœ”Ê`Ó¥ô¨/Î/¿*LïB1.f%¢»RœŠÞûÎ’¦Mca‚¼‘îÞHw¯üôÓéîtÁ¼‘î¾+ÒÝ‹qìD }·„ 7PßÑçÿÞA}Û_™K·ÿ“Ã_ÿ¶”¾E6Fç´¦ð$dg 9€LAæš}µØEéûÏý—Úüù×ùñ~óâ·›¢Ayöí?÷Rø^®µÝ_kûûÍöc¹Ý¤í?>”Ýþ²LßûDuÊdÿ~¿¹%_´y¹ÍÍÝÃó«äk¦Ý.ÑÃ×Íîq³»…ï6?ÝÞm¼º Ù–]º£ëí˜û÷ü臧½aîßî’È|¿?=ÃíîÞÓ'Ž®—~ˆ/ûá—»ýß>ÿÈæyæm7VmIfm‘¯|óò·Ï¶ÍŽ‚ÈMªu{ö$›ã/ôü=¶p¸ä»›ÿ~¹6­¨[ºþÚ—ô°y|¸ÿ•žs³—Fuפ'¿¤²;<íáGy>ßÞÑØÓG~Ý|†/_ ê»Íñ}_nzÓºé_ïw÷@ßàÒ² ‡Aå×{OÆ™~¿!#}¢ÃØ<ótèù×ýŸ¿<êþÅ—[FÔÕû}‘²7‰n‘¶NÝã²L£·E£Ué+<<î6ï?¦§ô°£W°»M»ý=ž‡øæóÝýýæóãÓÏ{°ã?Ò0?mÿõæ_^þÙOåÿ"S°Ýüôøô)ÝÓ üÝýî»—ÿù·]wËÆá ÞïÞïþp³ÿ‘-Ýê‡Û§¶OåÙ”üðïÿû?þé§?ï~?F•~ên?ãþax’Æñ$M8Þ<ãIJa¼Šö'©9cщ#˜$ý ·}<ºÊU”$ßïœ#ù#OéÇ_>Ð*úáyzl{h’Ÿæó$NòrÔ¾IRYãâëH’ü\¿}à»_´Òm?2£øˆbâ2ÙÌ¿©’+6êŠ%†*tÄè”t>‹àN€ªÖb¹KÉýqó#¡ƒ†;xâgQÖR&WüÅI“¤!cõ”î7û±Ú`*¤vwä{aïŸë³×½ýø´ÛüOûWH.úÝÍÿ°\![õ¬³^.øùXc|"Wx÷žì<ÉÖø÷ÿpðe­Îœ¥ÒÇDðe'´;ó–Rr—+çõ |Y «”„/Ó—ýÎ]æ0zùÿØîM³—/ì+‘—…?-Uö—Ïös—[àtëo€æ«v‘}–!'KÊ•ÁÇ·èCîHj|pÆúþJ¾ÓJN´­(ƒŽ¢HÉÅC#ß“J¥8Rᢉ®¿*þøò×PLbV|F£sê/>yÍ+Ç{¥úZ´Ì´lLª½íÉ/‡è:ÄKÏ™[U©Ä…òS£µxB&s0 Þ™ºðò“ÁªDÕ¨³å“Ü¡Áïá@Y]€Áž é?þÚšH.Õu?žë2ņ®¡9ª´ˆ:DÎ3C6t=ù¬ƒ§ª}t>öúfR£"Y‡PÅ…ŒÑ”Fh¥ÆçàP¦h(Úä~îĹYnÚFä3ÚŠP|K ĉmhôŽàôÑ;š‘Š» LYè+‰¼44Nx#¥N^  ¿¾¼ÔFñXV@ONë5“eÃþ¬þãGÿdÆ/J¡Å)1žD™$ÈH8…9Kü xŒçÓq…ßO¶P¨‡2“ÁœR•ËŸµ¹jÈdry,ëìó" p+3R<¬¦¬×2;>qqs&1O¡™±c¡Ùhw Îç(8ÝÔà®R‘( å¬, “ÌC#¿Â>&¥Z¥åZxÌUõ³—½R q&œˆAe¼ûÉ¿—Óf±ž_„L’¸ Õ…±Í·k…`¥-œòNr²”<%m®'×ÓäÑh¸t«8Šð§î²ÊEt9 Wjxe¥PcQòZ÷ n=†¢Z³]?’—畞LNáQ °Û paÎ5å²!Ë%g[QDQc¯µ£¶S¤(vötuCÃýõ¦Ç[K7Y€·ÂÐÐ/C—½Î(ÊBahòƒ®Ø©¨¸­G_@¢”£åù6t# –“ ¨~üðéò_ïfP"Ý£J¡¥@ãÆ„R6NÐú±AŠ—ý=–MØç@ѲrJ…¸‡ áÜ~Â7 ‹žÛ„íª–`‹ÐÙŠXE5S' kÕüÆ%®qbü.±9q¹ßÚì¤Fª$¦>ì/*?Ñ8ëÕ‘uöÆ­­Ç~“/ m™”‘³­ÏPh%¿ú°ÁP®I9@`ŒKpª¿ªöt©5 œ€Ôqd»ï”ÙO$x1ûKþuîy<.ËE׉¼¶'£SГ¶)S§º+œŸ˜ ©a£Ëá¦LÁZ‹L¡”—!%i’VƒÅÇku¹ žcž´¼ ÑÐÛ®¼Ò4¥` ]Pš´ñàñË7JÔÂr[%«%Ç""™¬ý@´ã‘i0È ©«C”FÉ âÔ¥¯2f)ºÏ ©3wPßèoR­V\ «!"L† k½ÿ”FE>ÒÑ p׎¯ß€!Ñp89Tûbôì–aƒ;±FGD#=MÄ©ýˆ5t–—ÒòοN$ r½þa¦¯” SÐM¢#F‹û©ÁǾֱFDçHÉð¶„(¹Ÿ!Á×oÓ%oho)ŽÇ\ôá©—û Ð$b¤Â"Kšò+· A‡$D01ç:N.æˆ4[uÒõRJ%G°µ¿ZøbN.·u)5é¬Ù1ë¥Ë.h÷ûËÕrf‹ÏÂfçú  §ò¥Ýà‚òÆI <öq.ÔãâNÓV£§(0 ]»·Ã¯¶IjiœÍ’;”LÍûU<¶æÞc1W¡ V7f‚W¦½ôºÈJk‹ƒL9Ø_£Ã©à£-  ¦¶³ýD’¤\L¶L¶3sáXO‡_T ¥fpJ»ØÉ}–C>ἋªV¯BØÏa=]Qn!©@4è•.z,éj­=ï+EIþˆÔ©ós›¶MÚ6o5ócDÊYe­ãò°0(†J¿IûúéÒè…^“:‚`®6Ð'§u›ê–pd0Î!÷Ê£»ˆ«Ä΄d(½LÒ¯8[×·Y‚®ÖÐÃKmæ„MýÆ9ÎÞCS’ô‘þ{.ëfiTW “#¹¡@²sG£m\¾sµ©b …;péÃÏ9Oá)W]¡ˆj:gxM¾%“¥P&Ý\[o¶ÍÍ£•w€B5—-±ýô´ˆ›³µ¤µ oPìX¾ÐуsFì’G©™œxÐ@Zq;¤Á…»Ò>6y+Ô ) š•WÚS“‡ÒZGIÚ"êÐÙ ŸÝ{#_%iš±xþ*àÕµ9EVÇ‚é‡gϦ>¨e…,i$ÍtgeÖsÛ‡‹x„,I¯r¸ª–¯Ø#DìGÛÙŸ[Áª$„sû#A'”ºv³ ¶¯)«lŠ1Ì)³kUÂW+ˆ:¸3ô%_éá½@¬ä%O˜AðuA·Ç»m:¯×bp’ ¬è¬õòÈ-€4H>H¤¨Èk®ïYn».)ˆ-dm¥yÑß$ç4•zéi…A…ˆ±rŸ±)³»Ž¯«„*¹‚@§<.µ‘¶6zí|vÙ{ý]=ãrµK”6Œ(؈ªL­šF»ò½´“Ö)ŽýãÚ'Ï-,h ´| E‘²G°Céßh{2…š°}#e"yMj¯J•Æ6þ×zÇ©JÂÑhÇ©R˜a]ÚÑÓ&J¤Æ ׿‹B®¶ÔÅkQLpýaÎåX…OweÑ÷Ór-ÕpÒ§P†cÕ\;­¡Š€ÅúÒ߯õüô¿A ®)[GÖŒÓKINNåÜJZ,i!ј1¥P>ôã¡OÒ÷–Tz™NCiEœ+ÉûÚˆÚ‹C§å•¤åœOµF°3Yä™<°°0ßµoŒÚW~úé tº`޵ߣ6÷BYÞ8¯GŸÿ{ç¼¾°‡—aw6¸ßVC°(l"yˆRE"XGâ 2!Lõÿì]]s7r}ß_¡§­Íƒm4€FÙ}H*›ª¤’¼¬gUãKbE·HÊåý÷i\Jï%0ƒI{ãH.—KôpæÞÐ}Ð}NŠÆMɃýð¶¼úþ³$ꜾâI°2^ß½}õß®dZÞÊOšHëÉ7ð£{¦Ûy±Gò«_žõñòYïÏŸu{ÿ¬ß”"˜ÅGŠ`ú¡vâ¥"˜&'àOŸ)‚5“´ðP@“¬"‹zz`m¶~w>©Ïå­Ú¿e50Ã?–¿-ËuÞØ³‚¡ræ\)äO}¼¼•{Žè£Ÿ~ç(ˆïÝè5ß½}'!tï²{Ö°ÕŒjûéª×ûÇ<Ÿ/Ü¥{¯ËÕ~ECSð¹»Þz}}sµÿE%ºÜ]}Ü¿ìZxm|¿Ý„ý„Žýéš™{ºlïµ>£*þÏÌöÞ|åËÁ÷éçm{c»ú¢ &YaÑ?¿uéS3¨Únž!˜bUÔ¡šE_Æ~Ó ‘äx"åæ[ç,ÜU(­¼™VÊmæÛ¯Î¿7÷a!1Y[À9F¦•GL¨‰Èë—‘Å„ÚW>j\¾6ksÎ¹ÊØ2ù£öß3•úÔÊP©m‰ËÓüžòÈ“kT’í Oa^K`ÆhÊ«âNNÄÕµh§´¯Ùã”®ŽÀ vÊ2«lÍEFÆ ‚V:]ݦ6e½¤yæ’m°¡úyi°Çn‡3Çåî‘¢Î>0ó¼0ÅØÂlXOÊ:Å2*²þ¯ÚÀ ŒJ2"F8ê¿£uÄуä¶5A88›ÆI>®±µ•}ƒ÷qÑ_u¢L'"I|… ¹úƒV¥“j«òæÃ*³7 [§9>c•É*h÷„1êûkr2صNÑJó%·%×­hJ%kÉݪµ§Gÿgïæ–_§[«Mw&) œ4f£1áͲp#ÃÉ rTè“[päœ8L«Z^ “,©0/ËpŽ1ºuçžu%&´³Þ…<°!´R6dI笫QG-]Çú1p“ät&2e¾À¶~|Í sÃìU9ªTj«u>êá½ÓÔ)(®®ˆ*¹Zóqõ~ÙjÉhI6,ÉÃK^•£ÒæšUEe”³ÐçÅ1ôÌdHU•­¤k2óÅç7ï7çF]a_@)4ÅbËÖ€5­\úxìè× ìƒ@Š£ÁoGÇ™Š·¦Ê(K8¿'ô»2¯@s#Ln^QnÞ¼$Ás%+Ī•›omx8¬=þ"ÙŒƒ²Åjf5_¾1á;Ö8n}v‚Xòôâª}ÕÍó¼€<æùFMèJ‚`b \#-Òëí¶>#P—µ'mK4Ñ/ràÉ3hr^\S5F7ÅÅ'õí „`C.ï}™’:‚%KSÌÄHd2ÑÓ‚ÿ@$3±L"ªA@·61Ë^‹®§ ÄdYma¾E÷Kd "Ûš­¡ ÖÖÃ[ùû’,€ä˜=]@§ƒIëKð/·àºJ[1¤ d±9á¬5Íku„ú÷Ä ²óí¹UÖ÷•¨ª¤–&CÒœYàžö_ÛúŽÆ;ï\XJš z¯%•àSÉÉ“òjNè§a™9!ãºhWxÍ@ƒœªm,Þâ*lÛÔòˆ %ÉdŒ‰ýõŠÍû¡ÚLŽ­O2fYtjÞ[é1wµóçBÊ`Q'¨;ßv¼•tÊUê†=ù.FS ”-[?uÚê\/‚b„ܤX,53ÕÍÌ.ë/©mÀüVIæ†öµ2{Qrê,¼qŽ„æù† E—È6¦lTŽ /¿/×°¯†0dÁïG•ºB"•"j«‹^ø¨#'ð\› žd¯&°.rc@‰¹¥Š¶óf.—ÐÀ0.ŽQ³«HÍã€3nL ÍŠ£xR¾9=%¨¦¹SU†¶sNâž·Bj0ìû¬©Î÷¾>Ƚ]ã\ § ,mŠ^ÝÛh~±.D«+F_PعëF#°„M$Ç’UÒCä ŠS^Ì®dCÓÉ@ë"¶ü‚‹´h£»É4ï?`ãÙV}47Mu®Hxl¥¢¶:[ÂÂÌÙrF3 .A"çñ™~C4p# ³mçù:/Õã‹CÂEÅ¥Udyõ~n-XþTlëH&*G+æzquM†H[ðè!ööÅYÐq}¥šså“ B’æ­È.vQúfQglñÁ!kO‹›(s^FÁ8JªŒ›h^¦ª·Ô†–#1`ÙÊíTC{}pÈ7õ¢FËBå[S´§£›ÃÛúWÁ2ÄX¤¦[ÃÐ×Å •ˆ² ï^–ÃÁ,¶Ób©9{$ )<¦ƒ!hÊ´‘ÑS’ŒZÀ~˜W=¼x9½ôÂ&°“Ì++Ø[}tmm›^d.V!W= Ò ¬g˱úÿ š z^ö1`ßÕ’#F¤Û£'çCÕ…Zc€¨HHײzLÛ7Þ Í7T'ù¸6EstoBG®í_òMùXRãÑ!ýƾ“êM“Í•ÁùƒOø’MÞ|ìÖ²Z ¾‘“¦d’›·Þûyº´l½#K¡f¶\¢›WHºØ–úøÓø 3eï%‚ éô*¢Ø±í±WÐ2†˜}8gìšSbo 7áAl&®OI{]Ë$á(2–©Ž–²Tæ6D¨@šH|¹ZÁ8öA-‚û ûT´D{´ÊmWÏ¡%kz޲˜z/nû MFK9¼oú3I»M+ðÀ6\c|Z>ì{¡RÈkÒì! /_®½©3V—Qðe)ÙhyM'çž{q3” E³UY¹^m—ûá]ýrŽÉAß²¼¢0¬å¿náh©µŽ–«I«”yÇ?&a0§ª˜P™y#€qEÔ¨w!kY_Õ{ 17qÒ'ô޽j :t!¡ãÐsxÃq¨.•0 wS‰G³â¶”±ž¼°«Pª GO¶f ¡€]f–œn„çòjñĄݎàL‹È‰W§ÃÂNÕ–ô%ò!'á¹*—ƒwï÷7éÜö$weÀ9/‡z¾·Ö šdMf§ª.5¥EF¾íC ¡&•„£Dg·¼;²gVNx2$Á÷R¨KÛ_¢±%ÉÔwJ'ÈV Г+ÏÆ²Õ9ãšÀkÌäý¼]ÓÅFaW­I Š+yÚ©ßÁ6nD)í˜X ìLº¨8/!Ô)öì-XÍœJ­TzµÈÇ­›QkáûÍÂBø…{^ˆA!jã¼·ó®‹—‘sèï•´ "W„¶D³zâ±á@‡§Š¼}t±1{\ŸÔ[·™e":ˆ’`ª>Û†  ïaùàJc¶ÍÔÆs=Þhñ¼”ã”uËL`z¡ÚjCm¦:I”i^gûAÖŸkSö9ÛvúAíØl±bb¬¦i«‚j!xÒ!žPÕ0¨Ìà É9¹öÂ=æíÔÏ0ð¡ªUW¥Z‡`I¬ì òï{œ††kAQl O)Œä7½=*“Á+tÚzŽöh½Ó Ê;n¶‘Res½ÓÕ3‰xq^1q£4æ^¡¨SÙa4ZÞ›Ì+åÚ¤a‡†|m­¹½Æysñ‡õ€=:t*®¹g¤¶¿º²IÖ-ófÔÁ…ï7o Ó™µ}›*PÙ%Õö²}}°lhÛ ¡ÆìtŠ˜)µnÄÕ–µVkû¾¼áîVq¡¬hÈB$…`¨Pæw6F*¡i¶VWæÕè/N‡Òª¦íø #‹¹ ˆ®Æ¦9‡ÞvvQ0Ùª*é‹—iì!Öˆ%1µác¶v¶úó#öÏ{CBà"+‡bBª¿Â¶ K«›´6yeSÌÆN^~¾÷/áÃp>u >s’¯£‹Ë¦eú/_Ósú0\Þ»_†«›6¹o…Ù ¯Ë{OÉ´¦&âm©Õ¸ÃlñÃå£úqÉHÞV¬UÆ& ÉÝ»_ŠXŒ1X“×Dಙ¬—9Ÿ:ÛeÙGÐÍ ³ÉsᬋÇÖ( ¤]MëâAÀÁ„‹«y«47‹âLdÉÏZµ> Ï©—ÿùæ;}¾A‘!F寳–Óý1زÁ0˜¬„Ò¡5å.¯æ)®lt®HL6Ïúñ>xe5S®µsgâ&¬ &[ÆolCÿV™¤‚<y²å`ôžì¿‘ Áví¼`ºµ72ýfÀ½ Õ'tiñþò±¦ZG6úŒhf-u·ÂH/údªªJYE˜mR꽤B'h£d²ÍpcV#éÑ—è—¬Kîg­8ÄhåkÌV•_Þ|S© µ†À¥J ÷`p1¾”È~/åÕAµ€?cu–daf5Ú{ƒ=ìªÆa›f›pu¸G³NÉd JÒFtœãâx?«[ÀcHÙƒ“Æ+ãrV)JžæÉºõÇcàÖEmr1G§“›Uã8¿ýóô¢\¯Ñ´*cCHq™UÊø|ó¡Î±EL ØÝFdV—QðŽO€uÚ*,18_¢šÕò»|LßNÉå†NŽÑ›µ3Èþ¤@,I8P‚'`–­>sÉíQò£Lxƒ4kfÿù)cH²PÙ¤ì¯v¶0ýÑèvåU´oÊ6UYÁºh«½±¨³–ÉîŒÒdª;x÷çå裡çå?Î I³ØÜÞ´u8ÛÝöØŽš¥Q«Ü I¨`’?‹<` F%ä4ª"SÅQ°J\¥sJ‡•“X „ òl§ñyŒÜ’ø×Áf69–Òº·ÔÁ(6áE‚}LL^D6sò°®ÐS³VZÿÁi´ÑÃUjÎP1¨d¦eº¼¥M1D)Ô ¯h•¬nÚ›JºYëÕ\dݯké0*$T–Œeõb8ÞR´­òv*¡IF+EOáYÏé+Ða½É¯KîFZW]Ô¬ØÊ彟ݳ`ÌÚ·ñꤪwS¨Pè`Û{ŠUE³$— ŠÎ§¤±¡ÆH ‰@èMR³*Àfk·ý8ƒO C  Á¤WÂIÚ¢öTM”1g=«ö0º u©k“Æ€£ •YëÁ­-ËqsªÂÛ“C£Sdòô XôçЖU¦®ÁF¬ìÈ'ƒñ`Ò|)‡^PÈÈzv 9ÙAjëm‰_lê(iŠQ“—ˆ$Iø`&~Y ƒ‹ˆ´a×\‚"l¦–F%˜nÞØEî;Q%—dÐÒ0ØrþŸëCŽ,L¾În<„g»Å7w¬‡ Ö¶YÞ¨”BPµèÕ˜ÞßßÅf°bMÞÔ©×ȆÚdítaeSá`üÁtw&w²åm1–¶Ï胄¯Eø±ÙVcT‰2µ¼r–žÀSFâ›,ë½*!ÏÉñ´ß\ïÏê1Ñì}ßt¡V!&'ßÀX\ê#q›èƒäW ÍÏ¥ê£sW9°rLcS,Â{fµ+ÎxϦ²Gô¸)Õ“q<+Ý[k}5$‰~®¹™ªY]¼3d³¥=›Q>u’7T@Ôb.z~OŒÇx kØP«ÏÎTDGªê£ûFS2ÆÕX2PUJi³]7§Kô­‰CCÔ­f­›ÏПúkЭZ#F’è³z®>Ô«W‘Ç{ø2³ŽEQL¦. Ö]çâD9Õ-Ž„4>évOfªw–…¥êÉàÂNÉÀ»$¹æÜÀ Í!e¼SÛ¶Y Ë?Â}Éð¬îÃG4ð×)]åÓi{ï[”æU(%±òˆàÒ$RcZ—L;¾9¾#ü"VfÔ3Z]l× ´ò0•±þ/{×¶$Ç\e`m\·ˆ}ò³÷Å?+2H’aQbôŒdy¿Þ‰ÕTª¦I+´” …Ôº«€Ì“·s"8 n–å>î]=TÞý–Å€ƒr4Í´B½!ŽP²h˜¢7ÜÐáˆh›ÞÔUÎ&cçÿObÃAD¹BÝ“"yÏ”¸ÜìÑŒÙgŽÍQ—zK«¶‚Ìrw^ç*G ÒÇ\MÒ@Î{Wá ^Ó| ÕûNM°6·ó‰G‡u ,.ê%v<î]ùÁôöh4:†F¼-®¦¤NƤC>S?£šªÑl/Ø9l©¼)ÿ¹1³wˆ.2vÆlߎöf m›Å¹;€Ú4ì8Ø“ñxŠþ!||÷á> û>"Fõ0XsµüÞZøo¡á–­ vÅ@0½ØPȄՔ唀Ši–ðuøp³jí‘}S‹¬Ž•ƒÅö¯ 50Ê ,õYé P‡Ò0‘B¢YÑ” {üÛ°ãbš ’ëÙ9øðW˜èmÎg·Û’ɲ·¶9%–%z4èó¶Ëý ìWy_}iÒyY;ë±¥Ãy‰µq Ýö4 ÷öl½ÂéNwR+S³”©ÕÃ¥+"}䬾^õ‰úŠ1ÌR¡¯U¿Æ´Ó!‰˜Ü³8!—Y>ÁûøxQ²¸$«À¡F’cäw•­Üs*ïéßätÐÉÌÈ‚‹Tc¸²z4«‘þAS´®`V}àJ60Ç6«qgQ‡" hØ,ÞC§¾Ü¬$“;9tOo¹(ÎùY]‰ úNžF¥ßéPv-OìÙÑãPœ{G# çêÙ9Ú«áÈ;Qóyå!ÈçBÕ¯xC؉K¶6Á«—‰ƒÚ&¨G£­n ©•¸jzF×û7”¶%œm?5VíÚìøèTسîòéýÏ? a$\Í(ê&Ç!ĸi¯¾¡&ù@uo›Â#õ®êÈ :•ÉÏ&q(~wºûÜ ¼¤cERi(z_1ySIJØQÔ“•-7EËŠê,Ïç…¹YŠoìXšŽ;½ÉƒiÖ_—]Q-`g›‰Îû¦Ö}“¦oð2_äRƒ?¿ÿáÝ0B©É[  ˜„c<ê`7 ÂV›i%(äiÓ\Àw­Œ½Srtb)KOwª—rqVírÖÆÌ°†  pcÀNëE;ïÔ¢ök´j®¢![œø4+Ó¼ž3"´ä©Íú>Ñpƒc]òÐ rP|™Ä(ü>ØYTóÉÂÏ>º®˜óNK³&(ã]CE÷É'Á°×÷½Àáqª7¨Õ*ÞEŽ5B™%¦èÆ\ù­T qÑ“á½=T¿ÔõúœmÑhÄuZð¼Óˆ}5*þëFÔDZÈÿ¾î°c\C(6Wï\°GO¹Ò/OOÃÜ!-J,…ÂÑôåò˜¹«ºT²Âõ|è ¯ëa9Îè)ÖÀ ]j‡íך¬´ÆHF}N@öŽ5ì#ygäÂ"Qôµdôo½TâÞï•rÎTB=˜µÛ¢÷§˜9wAîг×G«KIe›ÔàgLX‚O9!“™oB¬ŽA¤KxðRkò…É]T¿¸Þ¶bŽÙýuñQ05€ôñÿ”é`lÿXÿû4΢ö¹öF UµÐA7:è]jR6Ö¶Þ°ÜÑk<ÔÕ´ P”FRÙìí@\ßêI„}Ðu¹[v®{žúÍú’Í­'ã ‚K<™w}%‚˜áïBß…ÞøéÓŸòßþq52sµvøC+ |3¶ýÏ&eŽ[ê; úÅçÿè4è§çÿG¦Â>‡ƒ­ð\<“†¡cJó‘ €¢úSEõóèÿÑðÇ3çÞ%ú<)ᇧW2Bý'}€ŸôÝÔ3ùéuá>ßûá…Xï;ÿyÿÞ@…î† Ñ‡²F…¨PÈ…*ÄlÂÜxA…˜tádàr¡ *ÄÓó? ¢^Üz”ñöY=ˆýÐûëq¼¿±è²‡:ÍJÁœ?¾/£øÓó7!õ;=O¦A¼`{¼­u³ê¡§[¥¾­tνÄz¨<Î6Ë\l³=~X$µ˜«÷Ðxv‚òô˜YMñ Q& §©i k êÄ—=ßyð¤üúpF¶‹-† §$™Î/MÁÎÛ×íÀj sÑ ¯qC•W½1$KM@"‘¨aEñ³å¡/_{ü}1ýÝÅJ®&ûOø,m¦ÂŠXJ3Æe=†³€§ã1K#C)¦Q”£?pMÇ}áL9™šzC ËÓlœw·±A$†ìjD¨‰Ê×°N°„ÌêÝ ±¯³­È§ç‚u1¦yõæ­„À³lº¯Vd­šQR"ÈDµñ6kmßÐÉ@°C©b‘fÉm÷kU†R]Ä©%Ãgk†wÆo¥¡\oJ¨O[šó;ßÇK¨’=cC‹z¬çQÃL[sÙ}ŸPœíò˜9ö*’b¨¬Ø¯ë\Úq¬ÍÚöùX¯ ²©k´€Ð$/¶î÷‹Í +Û†dÉ5³ý!"Yö3€;Yt-X ~ç÷éaMç™TÅjd£)û/Ív—x.©Q÷Û•íev˜äÒÍ,ðžöéMiôhœ ³d*7'{«ÑIªÎ€‹ áH1;mì˜2-©yRlYD}Ù¬–ù‹+Øâ”+P@µÌl—ÁÝËÜb*ª¹Õ*‰«+F±øAÜðHÖ±KxùhR°ß_çbWuK540{r#í;SC×µUÏŸ›†hSŒy¥VéC©Y ‹$RXųÍBË3&Rkòø•Ú;ñä{–Õ: +¬ô.$èålsã%B†Ù¥ÄØü Fçpv$í*²Y7TŒmô˜\k©G‚Ê•y.E‚êÕÔe–ÙÁæû<äè:bܺÊ, BŠY’į́Añ|êa?_.-“/¨Ø¾¥2Ëï}ã&VÚ® z׃XÅä4Û¹~ù3Æ)0碵Æ*عç󾓣ýÅhìªG¾— ³ª·@<Òjè¸¢ØÆìd–ùeÁ-È|(Ú*æLÐß©»fåP>?Ÿ¥‡’“:gsf˜îJ‡rš \)^ YÏU¿F4óWxEÔ™)ÌŠk‘Y¯Ó›ô¢šGgòî’'¤_~ºßóÚà>˜$èæz.Œ—ÕÖËÂ…CK„Ó2$/`kÜXï¯Ç…mÝñgæ6SЃQ¬:cõ@Tz–¹Èœ¥®‡ã¬Zs6³ õŸßB·¨R4">Ó¹H ­ð‚£ÎÒEJ¥X¶;^ÝòL´&6Òžg%¦.àü:ýN€&F­ôùŸ«¯Ó§æìšš¹jLö±âþë±Í´×0"‹ÍI§Æt‡E¥ª(Û‘"Fý»ÛÄ_^éE1 h9ÔÑEWÕGî;É3üC@©“lŒ1ÌÒ®]žÅ¹õÖ§EjÈš…ögc¦TȤ€“l™-M+H|ù›ô"6Š †D- 2ìXÿ«‘3ÝF—c†‡¡ý±UDÜ,ñE 6ŠŸ¨æÎÞ†¾AœŸz}Öà —5d%¡- B˜V§ž jˆ—œšl/ñâø"•¦±ÉÈЪ…ͳ-ð«E½P¡÷IÛ4K\?ŒÖ¦3ŠõÉ*Ö6’jïxâ{85#–¡Am;’3ó-YÉ$DŸá~D2®RVŸ4˜Ä¨Ñj”Ò!æÊÕkˆQ½ ˆäVUရO¡“Û [/Š ËTÇ.ר‘p¯wš¼õ}ISŽå6{dHFIò=ɵ¶ª×Î y/¹ÂÒYJ­gg)Øo›TFv_‘ ‰6ÑènþäM(5D†h³—bÌ0ËKñ¥4ê¼:+ ¼BLÑ[Ûö[¦•Éh6ú§hdÞÎû±Á˜Q§¡¢Å†ú˜ž¿0Õ#£A}ÈY‘’F|À‡à,ª‹Ê.ˆ©äŽ´Ë-+骷…ÒF ¸¿68AQ _¿+-U—:áÅ[:3™ÕÚ¤ÁyCWÚ,ÑâMjl‰‚ŒÅdk\NR†è5.]`·†æõ²‚…9©+ jŒäPÿJÙ›Þ¨wè‰,޶'päDýbÒ0¦…y½ªD©4ø`¢3Ô4¬hŠXPü¨[/œåœ¹kKYÔî˜@Ãe½£ŠqÞRÁ_Ñ&¶Ò¢mÅ6ßõè`oNdMMÄûÌ ³o) ÕÙ‘ïÔ°¬ðÕ%¨ƒ†§ÞW"“öeÝ×Äù PE½”Üv$*–ç‚“©Õ™l($E¸ß‚/(ŠšRIØ ÐÌÑ8z‹=ÝŽY}¤ÑÓ4¸;¹X£ dŒ·I#éYRØ+C¾Ì8!‚Õ‚‚}LêìßÔW¼PFј,XÕéÓÞäìFéí@LAVŸ,¶YMÚÛLñèô`iâK‹=ˆŸ•ô~ÉöNÉ!‚²«Ç°.T¼éŒMŽS‰gY#¯›8—œbI9†Î„VâüMš`»d OÕ'“U ꬨö!\–Ì4¥3í¶>šàEf©¦núH†™Å\H¡gS»¥Hb!ŸÓ#?ɇwãÌ‹ž7Sþ|ú«^ÚNÿótÿ#Ü¿l^Â/‹àé©_‘ûï±i©í×ûÿÏnæ|~üõ£þnÝrkÏoÆÏ6Ë~óšíâótj¶ÚùqÈÏöéz6£ø¿G¸%Ö Ø(WëYc^ßœÁ’"X‰Iøiz¶ÿ|Ö€Oõ31ۙ܌~~~ÿ—ÿú郾VKªÿF?ó—¿ë¿øW/WOóLng’©—½þûf¯_n÷úx½×ÓË^gr·? ÕšSœwMµfárBë†jÍz[”kª5(ÙgwEµ1½ÄQ­éaý×ë#}M!¦ÿýÏ̶v§OºÅé2® ŸÙCh×|ÉùÚÿýmŒ®—Ïë—ûÆÜk?ðûÓ–yùÐÓæ§zïúóæ§>}ÄÍ´ÐùCÛ*HÛþîýC›K½ÄfŸßÁK³à§Ÿÿ§õ«Z1c²ºÖb© ‰*Ç<ÛÞx·ô:g5î <€d1»Yu…ñ&+´x.q8QÛ%|`²¿²ÍR—L` Äl 5šMÑ/ï³ÖÔkµ%OªmtÐÀÎÐ÷„PƒZÁØÙù:ßÎ[wZ›f‚ҘćlM⃆e›×MAÊ)øè¤¤Ù¦²µ}–9¨böX³„h ÎN÷Z*€ÙSRhãZü£v`bž>¹f›) £,l­í´Ü“‡Ì³ê –Y¾¡µ½§Nk7 UZ/!Y7«r»¶ÕóGÏŽj¯Dý]x~+u±žÏˆý!ú’²Ÿë¾ßl½gÍø‚ú!yvŠïn—1“H4-zêBÖêêÔ0[|\¤¥N¸Ü}xjIêììä`íE’Í"’xtgFÌ|Љ®t1G0 $Á«‡; V‡»:Qŵàs˳õÊÑãn„P1%r(dZÛA]®?ö^Ž)(´ðÅ“·ÿÇÞÕôF’#×ûüŠ:3€1&ü x/k`±0ìö½ HFD«àn©­Ϭ½ƒêQw•ÄÌbfkÖƒ±.ÝTbfñ#â#â=ší‘¿RçZ4ß:…Vðn¶½pí!ËU'ˆê±°9ô‰rª_1a3<« Q„ºHôÖJ¬a§]œËY…̺V¡™ ÷nµeî- žrë’ÅjRx–œöÅøK\ŠX# )*èIϳôo/†ïW£—ïRѦ¯XYd– êùè e°8,+ö¤«d§£]çj«-7—;‡>E_¶ÞÀ¬÷íè10à ;0›Ù*ïc HyäߪГ{w͘ …0´†ÁZý ³=/Æ^¦¢·к¡d¯÷\¥OÐiÈŽ]´±ÚÙ˜çXB0”Ií›\IÑì4ß—õzCVLê¦Kä˜âÎt‰…·Ö¬ÞZ­OÊBÖN&>Ê…ÜDë7F!ÜSVk5«8ÅW5êæã­Ðv’Ž4 bgß2V¯9ÛŽtúqSœº—ÁÖFj…ø+]ŽÜ»È’3;6ËEêçBMë8›Œ%š­€?}ÄšÒFñ1&è*î(~ǘaÓ«­å(àhܸc_.Ð](`°@V½±“\7â)Ê£\Œš˜”*òÆ[¹x69[Å(Pˆ·ÞšMñQŠÏ)XWkWTO{öýÂu°#Lññ¶x«ƒ»,bTCÊ$ºmRÒ@bëuÜ Wn† jáSà,ãû»"†ÖelV¿TÑç²ÇF®-fŒÖ£ Õ ̤Gu±£P'Åà;ÿW»µÊ`KÙ4ª©µârg]œm9y‘͘|cÛPl)Öí˜íËth­šê²£)¡ÌJÐ>cå¶Ód2%Û¢‰¼|.QG ›Jîpßã4[ÝÙ¨?–›²”¤¨ê—%‹¾q ²9‹ùeøÇŸêP ¤5[‚ëâÉãÆÝ¸Jòb¡©»25wÝ¿¶kÊׄÆJgv@Ž˜QŒÅýÃ{ìª!“Á%52ÀÍìþ"¯«×áƒKQÕ.9ú52€Qm>8¦\ÕsóÅrøáÖ¸d0ŸÄ×$´°5³zQÒuäÔ¬nͬ¨ÒotM3|R 9I d“Æ!e–¬êå ˆc2â¹)((àÕ¾íyÀ’Ì™bá®dõ¨Õ”]ӳʾaQÀcÌ®¸4Ë¡zþ€%V`ÑsU£.oœ¥^y™Ñ§6®újÙ‡Š_Ÿ^ïô‚í !6R€³/¿» JxŠ=ªcæÌýSï[ŸÞ[ŸÞ[ŸÞůðÖ§÷ÛïÓ{Ŷ»mÝoM ýSo-ˆ'Ÿÿ­· ~,öDæ|Káñî©•ðîÓŸÞ>îoÑÿùŸ7røPŽ×‡¬æï¯ßþùþðdÌ?\ýõîØÊûoþHÔ½ÐñúÝáO?ßóuŸ±»Ã·ú:ßýýá§«c»:üÄ·|8êFì}jLŸÞWãú;:W?ÜÞ|ó¹YñwÕ¤èú?ÏEWõøîî¢+ú%ÂÓ¯ò\â±÷#­ô$IfÓï} UàiÒ¯þœõ69!ïš.=#Qf¹àNÇ3ÞP ˜L0ECÕèg¹OÇ]£ß†dG§{ÊQ)iòºótôÿ>ÞÞ5#ƒÕ¹¸˜H­ØeÌõeè•ÄŒs>`æk&²aõÖ4ÞŒ@,€”«šÎY:ï>èÚuK´¤6¬…-VÞ0µ—ï}QºØgÕuËm_¶•RîHÅøR¹e0%›ÉœÆóÁ/W(U±¶mº©«?g¥zI‘œ‰Ée. &f½ð K¯—3"¶41~Ç„Ïè' ‚‚; AMÂliðéSÖ¤3XòìZII Šì8ëëwtλŒ½ßÖ£‘8+gøiîGS®€EíR«]±Y÷ʶ£¾’—2BÂú_£8]€ý|={“*'çf«^쓱âl”Ôh‚ÍÜbœ¥óýlQÇ%Î2S‚ÜØ™D°ÁLol2j-÷*Ýà!Ál‰nЯ¥^ü›KliVôîôK,¶9é’¹ÉÕºÅL—ûêŽïÃêE¶>@ ,f¿cÛ¬´‘ =÷HÍéô¤Y]ƒ¥^jøãTO1c"Ói"·mÎ…ú£Ø‰']õ†tÇk»Õ‡.eqDM€i£€ª…<Ë#ÿrM—K¸£›^ãÁ|£tÞGžMa½0$ãuVìžÐaiA}ˆY0¢¢m‹8Ë;ù9KµÒ_™uŠÕ[†Â2-ôûr«,H½çêíC1zœíÝŽswB(~­–`±]âù,™cV_sгý=Ï^{´C|`R!-¶6Íù|:®Ê‡ÛBÃ=n ?Fe]þ†Êždt»ÇâdÔlgV ’| ³ bO›p¡¿¬$‘ÔLÆÞ= ÑëS8¾$ Z>µèRê\ïð7s\q¡¨åMló–¬ì¯Ö ~ö%d“ƒÀ^uh˜Ì, ÁçTØšÌmŠÖ:‹¢ÙÓ"_çÓ~wWÞ±‚‰!³œ"7Sr³ÖJÛ˜Ä[êºs1©uÂÕ¦4Û‡ôüØ,RÕxI¦ÖÀŠ”AìJ”~šy¸'|4Ú.]ƒ1ØJýVf’2¤­ÒƒnkH¼âïYèÓ·îAÏÕÍýÇ÷£ËI˜\ËUƒ6 ³=±/Oè"…‡¢ËÑÚBà+ç«zjîJI†:˜±uÉ®(Ü£ÎY±§§=¹Zé^7RP!hÁж¤¾\½ö fõ qO†o*QY&˜p‰ƒ3YC6ŸÆm/PYúõÈ¡y¨¡5D³"öÏ!ç(v°µ¡¹«7Þ’ê]ê(ÍB4ʱâ¤-hí4H[fïBòº¯›q c³û É2od «žLÓ˜`÷™\áD1r3>B„Rý¬\ãùMÊb§žÚ© ‘ôýêzî°´c¢·žöË®î…y–Ïìt\¦!Óƒ˜¸(Rë ;IÒzN¢×#CÉo9”3Ü\D5Fê÷VjÃÍ,=ÀÓëùdD*ªùHD©Û €%P—×H^¤5Ùˆ_gh;škœ’¯IC×qóµz7€Ãô°ÇtïIÕƒfËM؉EűDo»ÞÐlëïiÅ*‹îk¨ÌÔd›bvÂO )—Ñe›†Ã >¢kTœÁ=ÉøZJP³]‹ë}ÝÁβ玭àC·8NÑr¢Ä¶7[ìAX ¤ Í©¤ýhKR÷bÓ¾@(Ð(¨³oÂû þÑ|1F=Dè×ÕÉž¼<ü¼\OÓ(çjMä’}±³ÂŸçnh¥%ÝŸ­U0„è„vÞ{Œ™‹·’uƒjPa§éé×£½¼*ª>s°ðïA==³ÀØÝÔÛéNO•Cj²¹0z¼! *ün ILÕ€vO-mOÙÿøN½@á«ÎMƒMõÏÒE¶Ü_äGˆKá›÷biËÛ/ªÆ $ ´’ ýjoÇY¨Ñ`¤é‹fj6*Ôßar{Ž >ÜÝ á„ "øP}Ï!ïYÉKÒ%ˆ½DN¬p Îr<=?š÷7ÿÉ×·ÇëQ`[+·ÒŠïžOvÏÕ“âÿe˜G cÐØ"öZƒ–åêøØa0î‰r´®¤ŒÆ[› ÑVÅå±™ªàNwe ´±`l…HŠ*`³ ÕÄž˜Øš`_¥Öê¹RØU³I>l) 8]Í›k^èL£Æ`Õt±·+Zœ’8)ÙR,’¬X3ËIû--ólg›«ß,"ãÆ›¹5–FG5†Ñåõ;oÇ«0Ìפì4.ÁVleGP70JÎw²Æ¨‰ß0ì»k†®ñcÑúHìhúš,©ç»o]¥#z¯ÓвïQžeð<›Ž1­sFQD ê—!Àž@qVŒ zö® Äš•{Ç´2¼[°l<£é °q}j[3q ØeëÉn¹‘<;ëø]¹-C?âª1W´¥o qGˆ4N2q&´¬›’Û鞥m†w‰h@8•rôÕoÉ_¤#ŠÒ¬¢Dfe?Î+ ×öо{ªIZ´Á§-©„U¶Z=úV AN9æ=•{1ÅýÇ!i4YȺ[\W£ßßóØ¥a­z$}¥Î³Î›ÁÊIòzt¯¯…€B] ÒkÌ{òËÙ÷Û6N4E¬‚¡â}Úvî_“wþsÀðDZÔ`“P'ÃJ&Þ€O.Q¬WEÉAbµ¨î’g¹.—Îú¢Ä–à‹Óø*E ä˜ 9¸^P<¨ f–øìæfQ.Ʋ<6Ê {ÓÊ,aÛSFù–™~¼»y3žs±ê‹= ŠwuVŒ«ê,FÓ¼‰Â®†lp‘¯M•ú®·÷£wÍ‘u»µ€Mj¶_…¸—„þjö]v£±™g¡~Þß•»¡õÈ˜Ø rJŽBð_Õ¶Ô‚ךÓPœ Däè·ÔP¬É6 †è ö”›ìíË^ðŠ7•„ötU¿®6ìó Þº>=%›Ös§Ð|â4‘;ëÆ¿¾~å§oßÏÌaà¯O8úÛcmßßÝ|¿ýî[ ÔŽj:_,Í«0 ~œæ/zuÚ¡7¢¾“ÏÿÖ‰ú~æëÿC¢¾=RÕÀƒºXb‰-†–X0‹É„­8‹.ãQß¿_ñá/|}ø—Ço6ÏÏLJísøDÒ§Kð8Œ–Ò‰›Êûãÿùé¿/š¾ü‚¦ÏÁ‰³xNÓgÁEH挦/nHñ„¥/bŒ)Ÿª\"éÓyþÿEÒWK»ÚIÐ÷b®^… ¯kÒœ§…þ0FñË®H_l=Z˜rhýëm ùûV?¿Â¬mŒ¥ oDÝ»0›/êc^¦3sý €Æi-J˜Í©õ±·ðhÀ–ºD¨ŸU ?{ΰ.KÄW ¹¹i¬èbI»¬1I¥Ìê¶œ=b¹¡P—»ØXJÄT÷,ì…FØfŸL¨¦Î–Æ-¬Ä°`•ɱ…Ne‘㎘º[MÞ{ìc-7Ü;Û¨k­o†RÅŠ¹ÌÞ?_†ñ]‘è w ´Î/…8[÷}6Cãë-I`¨õO{2'q:ìBQ¢x]LñÖÄf)UÎÞwØ ÄF7y«¶*†`ß&¯›Ï^xX³êˆdj©m9Ÿ,-Íbñʼn÷¥¡±;&ãr¡Põ>tBˆþ=Ìt¡Ðó½½0xPÛ™MˆÆþ/{çÖ×àwþŠyÚÚ­Ú•€Æ=»¹8Im%[•Šýîj4Ye‰Tq({•_Ÿî!Gž!ÎÇ”b;rÙ’,’8gp麿¶j4G_)¦+Õó:Ö\rˆÖ¶Oßx½bG{ŠÞzll!¼<8ÿS‘ëŽÓÁ¾)~k:Ûœ¦xžíñÅ«{(Š|qM'í,ªÁ‹äÓqùÏ"£„9¶˜Í ptE†ÏŒ¿–/é¥üB%!½®ÛçߺsËZ Vdƒ‹g¥µ21Í‹Õ÷•2ð{zmj7zöXúw’h“!ã|`«ª.ŠëS€Û÷òý¿÷FµŠƒ–Ùìœ8âÕ3%f[œvÚh6¨Û•Ü_£cÊR`Iу)ç3³t»«©Šá‹oÂ3°_¶Yr¥9cÞý„*¿ Õh¥! ÓÑ[P[¦zµNV±@Û¥_bÌ[Eõ’Égt1>Ý·ˆ0£ýÜŽëØÍ@ÉJ¹ øv 5 ½M®T—>¢xMcY7Z×öØ*ë'?–dC†HÅJÄ'l…nùm#ï(ÞwJ+½A>ÎsUšI®"æ`blvöèTQ¢­%›سŒºº õ¹É‡OÍ~ˆRà,+ׂ^XÖ¦ãAo—>BÒ3+pvâyÆ·8Ü«< ö6rö¬ÀŠVψ¨‰t9ͧO|&v?½mÓ<+ï¯ÿ zœ«£ÐÊ+ø­š1zº´O)óåéÀ Æ@Øâê=;ªðÌÃYO H)™XœB~Ö(¸b9FÖ)õ¥ƒ\«Öµ‰ãÕ-m±²Ž˜[¦Z½…œ¾õrÝDå¤ä„‹ïÑæÈGiÛEäÚÆ{®(+€¾fF;\‡]©x vIƒIÙ¶ ¡…‰íü©p…'šg)¢&Ië9Úà é’F“){Ó؋ҩäR.¬Õ†Q¾=!ÒK‡Ê¥džŽƹ¬ý|ĺWÞ‹>vÅR‹JW5Úèà,¾”!†°ÖƳuÌb˜k€HÐMï!äâSMD~š»Èú”8x1¹)ÑŸJmÖ—ªMKÔA™Š–Ñ–ÁZQ%ooIg§½Nmˆç‹Áÿ-7‡¬¼ÆB™(e—6¬ôó“ûžšaËpJ×”ÎàØøªÀ~熘ÕrvµNdsMÞeix4JúÿéL]›I"ç0•j¢ÑÜT¾ü†Ï>ùA™”fbCåò±6—½,´l’޲1ÎOÒz©˜œ‹fKñŽÌ3ŠcQ&ôýÈ^W1X֭艉ê![Zòž×‘Sab·ô‰ÂìÚkUÅRrƒw©ÐTRÐå‹u:V‚?Ù0ËÍax j_Æmƺ킈ϸ5Å"yh´–òLÊv “=KW²¼ÅAºªÄ ‘ØÕ-¹Áˆ¡Ub1tŸ,årË ½PÁ›ÊšÍ€ øÉrOÔÚr˜è3iÏÂD;V<3ÎíBAGvþ#[ä®’­£Ù>Z¡¸ã(dË?“ñýµ#£2{6:¶)bt3ÙG—¨£ %ÂZÈHŸÃ-aÐ Ø9§B)3W­¥‰w¾P½ÞœµIК1¶ØÔ!¸Îek&šˆ¬ó‹ö3ªùRûöz’ó‰—Øš ‚\Fm4Mµ¯´ðÙüLJÎZ½Y™ý{a¡«Q$òéDŽÔÙéÓ2X'V§Ð ”™dˆsmÜmT*%ƒ˜ØÈgá·Ü,Gä|.Uñt³G¨õ¬þ]¡4/UxÎH*JQ£½'g½q‡ØXËð±¬%£åw{ôÑß\DžH̳¶Z7[Ýr÷¾ÊØs¨£:›í(+c)÷«Û 7öZRáÇáØnÒ ý~²Ù`EÖoFàô¸]V]ëƒfÛ½T'‹K¼7lNƒÙÊnº1ÖRÈž7è„п¾q˜lô@l¿lõ:‡:@dϨ…Z½[®WAD&±¥.¤° ÝæaÛÜ·oßü}i S°>ÊU±“„³™x$ŒwÊA£!ÈŽQÞlòƲ˜…<ÍHÀQzšm–ͶÈûH3Ùr§–Är7²l2lߪ¹m Lv¢’¤=»-Nºê€4±Už™Yõ(ÐÙ!UW[}b‹ŸÏ ê-îóz‘U1à!_Œ3F»ÕOË:ȺØh6MÒ§§e½á¤Dg…h«ñaâÍ»ÌA—”pÑh6§ôLªÓ'ÃV}LÏê´ýñ:øQE샫Ù+¦å‹[ƒA»’…6síûÜ$¬FÎJÿ7C‘w°ƒl ÷Øüi›-ßi²óQzÙ£¦lGûž9ˆ»¤%°Ížåúh‹áqšÁž£”Á5'—Þ [˜ é­ófeIØv&¥Œ[Þ~ ž-õÂ…Ýj‚蕹0=hÙëöúÕrškf‰²cuÉÓ)ºÂ†úyšÛ€Mm));OïZÞ6Å“nJíŽõôÆ«ßS[8Az÷²å0sëµÚP[ kIGiûA5²Ï‘gå™Í{¿ 3›ê*+Å`RÝ¿Á^l›*èêŠ6²oZµÞRw‹Q#ÇÓ+­&‚¸ƒ5UBCXðX¾à×>~ít®ÿýȽ:üåaš„°oµÑû˜Ý~á¸}á¸}á¸=þ¹ßÇíï瘛“™ý$˜›/ì¶“ïÿ¥³ÛÊ í—àm×7òÛgÀ·•â‚aU•4´U9^çŒì!9öÅ3°ÃH9áÛþãð¡v_ÝÐû·¼Ö€×Äm_wìþlÿõÕ¿íÊÃ0ûsí- ÏíUÝï~¿¯tøáô‡‹ìn×noÞ^ñÑû[^Ø»#ÝílµñK §9«“Ó쩈zDNóV%ká œ&.¯C:§iAÑœ%,Óî7ÓË“-÷˜&_ÿÑÓÎ6ØË¿áõAí¶òJnD¨=³g ¨c×ûÌÿ˲!ÞW ò^ŸßÜÿbÁ]°àþÉxýúÍ\Ò%ïÞÑgP$ÆATJç!XiòæRh! ¤£tÕó‰%^aè×w,öÙ“€îþ´c{á»›÷w¬>ìòä*‹ç„î£~iÔß·Lx¤}ÀG×Õ>ÂZ‘Ÿ:S?6)^[eNÔõJ=Mv[R?¼ÿ^žïÒsQÊ_ÿéžir'á-¾Í7op£îYœ³gAxšä£µ?K_nÀ9«¯ú1´‡‡výÆH¦êÙ×óÉÆ‹»y]}¨h¥+¸Ñ¤’ÓÑ 9† £0•Á”ØÇ¯¿R¬ž«k”C–ô[ô`¬øôÝ/æð¤ê’5¹Õh—`0Rz|Äúu€–fN’¡-·úi´Àádì^¢¶Q. Î$ƘŽÞñ=žøuNKØ*(BP!Ñh@ýøŒ~î‡u¡ÖÖRD `prÓ¬]¥)kS4’®B:Áh‘Ú“í¸!©•Zuh„#ýY'u­«bu ]VØ€3x¸üœ~:û×SrªI®Éàõ×ùôêš‹‡d< ÎóhßÒÇïOïÞ·ÛÅ‚¬P%'Ó†X1e?ÚùL" ”;V üŒ$­<…Ñ:þÓ§¬‰£´°>CãÙåž}6¹:+¨*ØàŠ>NžãÕ[¦ªÍ¦I‹ó¨/¯Î÷Ñj… UÊc FG fƒîêå3$$“’†Tù×ÉY¼ê¬!ÄÂ’?“nìŠL†û‡à v©«Ùšèœnªe_fÛÊöS‰-k²àš ¹êh²Ûéìwv‘Ør¯lÚ¬µ›=`ë8‹â³'o©’Öüú“"ô¹kç«Ùcaúê2XÍúű›Ú6mǵ"ŸÈÃú ÆYÍØ%LES“äÐö5Ñr–O7ÈZ¾MS¬ c2NAN0Š!;õËiGÞ„Rs5D‰ÕÉ϶ºW*Z¤lt2Y{ [Õa'ù2 Hf+Û@ʦÉ颊GC… ‹ßšª*£0ȾٳÚuÛy0¦*ÖU…&Uûzõ2K%ÁЊOÙhc˧J°_F 5¡ÍÁ¦ÆÛÊêIoq!Áûªfm¤ Ò¤3±gf?”T² %[µºÉ©,Â2YÛR `Ù¸M1];v+]„‚ì{0¡d$ý³íõ~”ò-+Þ¹i4oxŸnÛÇ™Tx1l ±ÑÆ õü´ª“7_Í9W–ïW^ÅþïFÑ·Vd¦øDPLÚ‘ƒ7)ÿ>æñG¸LùplA{…Vl¥á¤”]¡Üåè²U¥HïñQ²ÊéÀ+\EˆÖ+@_œ-.ŽæÃžlŸeTháí!+ž’ˆJMÚ*—+çkô­56*Z,ÖÌÆNúMz,ÛãД²KÚ(C—DTyS~çä1 ³i«yØÅ™ŸŒV¼QéÙ>Â(Æ6eÏN\MìPÌOû!‚<‹^ÌQåÆÂ‰×¥}Í>³[TûD¢Â˼/[F¯”±­ú”6X»$OÚûаµ*ô¢²nM±t§²`r)ŽŒ-3ZÓðRý@¥KªAùÉõ¾`§8¨ì=¢¾: “nž~Šu ªBºÖ »©úÑÊÆ§aùµMg§raË×ÔH£M žœ¹>t#H| WH…×d“ÛºR”$ZÐWƒºAÖn\‰¥zfÑ4Áª<ëÌ_oÿÛi—œ‰äB˜œ—vøÝÍU–wÿa_êßæº¿ë(4i´+@­²ñ¾ÑÐêÜÀ6uô•«B Þ²Âkíç’‹ìÁÖcQ,:6Jî~ó’Z@¼ 0‰ø,ÌFçX›­%å“çÁÇÍZ+­´öÊ—&YUl¶ØM‹ qÄß–¹¸^8YÙÚp”QrúîË耜»Ò›¬‹~ÜtúyñæY¦Óªi½Q6¬öµ³¾yW­¦æuÙ7#îcL>µ°á«fͯ¡âtÑ¥ÚXäy«¶Î×ÅV`†€`ò1j 0Ú‡iõÀu×MÖ¢ºcs¡Ñ†+—rËlþ¤sÈÈŽNm¡‘š4ùžõpºâ‹H½2(xBXåOºôqˆ™]½ÆF¤\…ÆP7NøJ <׌Q.°oÏ"icØf%ö+Ýš|ŠÕ€¥²1fz ȉw ›ô6S)[C=Ô^Ì5¶S¬‚LÚø).µ|ñr…]´‘ÈÐlxÿ†XÀ‰¶¡o5×VfÃû=:uå™Á’¨(6íh;Û³Ã^ƒ –2DØnt­ÐÖ‹Ô>ÝØèÀftnšÝgï­.÷ÑŠ¡´ JÊžç¼Ñä–|f(ÁµX·eY H˜2ξ÷X’ï¥RpÅXŒ¾>Clº—à!bml¯7-H‹IeòÜuï—Óu‚ªä|E—#»Ü³ §©FË^ó†í¸B9›ÙñJ •Ò°€·^56—óh+Œ51ßïlmSË^Š­go{”¨ºxó³L£Â¶gGR©VÕ("àñ– z£ ¡ÞÌ(òóIDHœÕ%Ùà2  beq\G»<ýy ³µà’…O)… çg=ßKlXƒD¶¹$ý°œ$3[?uÅÿÓbêÛ/5Ð¿ê šþŸ³Nzgc»_Nô3ÖõN復Ê=ùþ_zUîþÃÛŪÜÏSIU1ë’tjN-QS†hïf‰Ü*²h@§™’ܯ?H ÊîAºîw¿çx÷ýFë§ÆÚÆÚÿq·Oßíp¿kﯹ÷…º?àíkÌ,Ñþ¸ûŽeÚîá1W¯¯ï×QÆÄ»;ä—/»»)÷}ûb÷Íw¯÷ǤÏ;|ÍãI)ðýãŽÃì¯x”û¿?¯äÚ¿¸ºúë}µÒëëWü'ã±×ËJ•‡}ûîõá«Å_÷Ûn¿»y·gu½»i2òÕÃWï‹jvw·µî°”ý£7Ù~ ûϱ¯Ç!_\ýíaìcyÙÊ^ïn®ß|à÷ÜTlÙÉü&õïHË™?*ðãw¯yîù[>ìØ<~´Z^ìNŸûðЫÞCzÞëkþoe’n+Õ%Ô{YÞ7,ßø÷+–sÇ):îÝ}?þþáU Ïföõ+y¥ûµ}0‰®û›kÙ#»7õþvôPÚ!êžW‹g«ÜðG¸¾¹Û½z·x}W¥,ïϸŸâ«Yøî~¼¹ýþ…TêýÓ{žæÛý?\ýéáŸÃVþO–ûÝ77·?à^Àß½¹ûóÝÃÿüã»Éð‚'ïw¯îþ|uø‘=?êåûýíËý-ÝË‘—ÿòßÿúÕ_¿ùú0ñ‡9*üS¯;î·S è¦S†ï£Aö¿ØóêôèåßÓâtéÕy ¿P(R÷×\ø•ìå›wR˜þò~_ìGêßÝ|_ùA·6Ö>¶g©Mç?Ÿ¹òYökú摼×ç÷ž'vÌûŸ™g(Gü Zó¿åzxé2ìíg0ä:­A¥ÿeï\vëÈ™;¾ÏSøò…ÅK d ‹ì²ÈEi –-C’gœ·Oñ-Éì>lJþ<31ð 0Ç}a“u!«~Â(“k³Á4©œšpeJÀîWKüÃyðOòx¿²8» d±]‡×YóØçRçÑ?ôzÆ»ÔYû~ï< wûâÏ?ù 9Àíñù–ß¾¿ûÓõÅûhÜãèÃÎïOÓ¿ÙVI$¤,¹¤dê¬8ùwÛö»jUS‹H’ØeçòÑ]ã‰óªˆL?Ú)…MôKeõCj´3¶†]ëÒ_³R¾ßŸi\ÐCà¬#Óï&±eµ‹ún³‚Ö t•Ÿ–š_¬DÙ.ù‚­ˆ‹- õháÎ…âPl6wÄ$Eÿyñ’ÊÆ:$ŒâK1@+ ÎuÀ‚‹/1¹(±z¢4Äs` ÙëØwÅÏ(.Ÿcv±§Z¼F-½¡ëðÉäv%v´˜©Ë ƒEof%M.7¨{EŠwTˬâÒJutÀÔ R±&'‰‹C“VâœÎj¹[Sã½h.6:5lñ nÏp*&­W¿Ô¡#xoŒOó¬xÅ® WlQ vÊ,ö¨'x\¦£ÿùþêzl²+øàºþ-êXÅÕκmã›é ­lµÕ¢©­ŒÞg®3•LjÚ ,m¥œ”ì®MãíBTŸQq<.ãɽeÌ s1¹Åú¢mâML Æ0Jˆ²Ð$²×p’†FÈɹ蛟•³̦~“oÁAŠÂùhÅæT¡+†ÈMýä@1® >(t}û»Þ”‡ßÃRìUaÉŠe ð°Ó¶Ÿ|0¡ÁZS>ÚFðµø~d™œ7š;J’lX­êÙ©YÉ&dƒ99S9¬~…“ÅÕâìl+Ъ& ºÚÚsÊ?^ß] ›Ñyd*d¯&|VÎá›ûΘÔ|£sÔÛ”×ú)îøõXK$DC…5ðäL\Œ¬/•…JÑo«^¦‚ÖVít«ælª¸ç˜|ãuÆÒ~ã3«}nK¨)ÍováG•ºÑÑù"Æ92«@–­ö:_u¸‹§F4CXm‡Ú)ŽNÙ¨sêÔþ›Yljª­¦{—¨Næ»@Œ©IíneÑ®yqÊÜk¶÷ñí͇a6Ù¬Æëž8ƒ»ƒ±†ŸÇ2Õöæl2".·.Œ‚)#-öæ6ômÌ ðªak×xæÚQ–=¶£æ—,Õ”0:Oj9ºÙ*5ÝÞf]ð™=Ý Ø®ŠåP’)ÔŰ àÑnæ ±ӬŚJ/¶!,VNŽÅ•°… ¶µŠÍ~«ò>ë(kÖ¯ njÙ¬Ò¨.6ã„V“úO½ÀêîÑiäÕ†}{«wÐ<=j¶#aueî kW£™9jŠ ë2Œ¾Âhúñ‡Ü¼Å)Æ`š:‰¦‰ùÂÆÓÒdguÊWu%ÉQvà„&£ƒ‚¶uUVéh¯ã>æ¦æèˆ›‹B±xYàlÌÀÙš¹°&³¹ä£Íéó-Fê7¤DäÉájw÷¸«cïç¦à{*åf±‡Yì›Ú¢œ[±…­[ôá—)+©¥Ú¹"NW†³ÏëÜÚ Û›Rûâ0:’\†h÷7ïê‡Û«£õ],6ÔÁñ¶¥£X—ZJ E«L@È*Ìd«}Íh  ÂRPs¡ƒÏ¿MèÓ©Z“zÓúáÐ~_JœtЫ˱XçWýΆʵåš3W ¬TU›íà71t’]×ïÔÌjÁèm¨w:ÐT*²šåsxéö@ 1«E¬«±+ÖË| õºJŠ)׸HN¸®CœL®à5!÷ìÑdp’0ÚÔD«ÍóèR;º’Žol2F'EèzÆ‹‹k¼U(šàRsΓ&¸‹SéDZÎn‘÷2€ÑÖØŒiš)6K¸Ð¿ÙxZ:!ÞØ³[†HrÆDÒrLUØ8ê½â6D–%rêt‘ú†Ñò!˶@³Qƒœ8{ †œ¹E‹ª‘bÿã€ÑU>õk`׌¦OëiƇC‚ZT‚K8Œ}:ÒŸ@ ÄÂ’Éd»Vls|ÖP$Ap!ûpTàcý+àÈÛê¨cgYˆ°Çì$ª¤Cè°ˆµ«´¾9”‰Ç.+"lØÅQ:­îÂÃ@#´˜CcîMÕ«4‘÷mLý`ÍìÉ P§#?ƒòõ–ßß² %@lNó'úŽª¹< R7ué;B˜us+º$SªMõ ëB-L¢q’‘èVÓ….g¾q¸FúÖÍëš‹æÙØå=^xë+#”¨iC?û9Î3ÙR×)¶cmQc ßtý-ÆÛ§µðæê ß +!t¡bÄRbáe4ÂX–³uýX<v®¬ï{Ù̦\+š¦œ){ —N±w¸l{©¿ö,úï0|›Ð>‚@èJï´Uˆþ¾”êPUuר,[8Z4úÇ=4Ijd±‹FLçÎû„G«Øfƒªõ. c$³úìYÜU©@0¬ºtœ(T#-ž¯æ1MZó}Mà(ç^P‹GÕ¦žM_Ù!k¾ÏõТŽ3÷œÍÒžHí|EnÑWÂzX ãáÆ–ÖY`MHRŒ%êoØU“°)‡ê4wˆ¶"-—ÚGd«Å0d0Н5Ùe êîî~ˆ]Èæ®æC©-mé-žI&·DÍÁÊCÈÇ›…7¯G´üh-·`˜1Ö˜'‰3¢Ô]M+GÐ_ EDnõàcÌ(J.9«aK‰"ц…'ßR*š$®NÔ›©ÝùÌ‹Q/¦ë6¶ÕÒÙ~\=ò+®8kÔè«ûÒœs¡¬fïŸ3øìcÈ®iœ²îΪ”ãœg«y³)h¯l«hhŒÒ¨‚~]·Î.ÚæSÄË·£`‘|ô^À×^kZŽÍîÊkfc2ªQƒ*P…Eº·ë½n²œ²Êd]ŠÜê€ôT‰«Œí7§FFggrñh‘õiÒð‡Û›Occš»ä€9f˜–H‰#ÒK>X‡Äˆ&=«ob_3&6S.1&${ðN;°>4<ê‰-6>K°ä=ßßÞŒn:D6:ŠØE žt| Æ2›ÙçXA³ßwÞÎ›Ë ÌŒÜ7 u1´L«á ¦Fïy˜i¶€ÙkfW¥µçì’^ùQ Å©ê õÕ6!Žiá\t™È@¿ª=)LéGX;'ÞÖ]aq>Ä®„Xko(yFñÍ(G]KI×ÃüÕ‚öÓÍ(ºÉ–Ä{«3GSk¿'ôèíÍýÇëO£¢ðšöêÅ d6‹Y»”Q%& #«in^hÙ7q¬}ç“5tŠöþ ¤ì”òvï*ƒÒ¸ ÙÂjñÂoW·÷C;ºhB jÌlÇ®î^¤­kp©Ï`բ﷈7è¬àØä84Ö·8º'ÜOònk•×w7×7ã]…¦_ øÊšmjˆ³*c=IiUû5°LŠÈêfú—ºÑ÷£áBPëD(¶éÇðG…«.áH5w+ q~Àè%5Ï=—Ôß®Êpû©úH)jhU×d¦vèñ¥f«éD,®4v«ÅúãÆ²@‘©wôëŠ>ÚózIÏ…³Ô\tQç–ƒÄG¹Ð(xs)‚#^MÒâjø1°Ü­fOÙu­Ðb*àä©ö/¢í·¿÷‹hû‹h{á~m/ ×/¢íƒßÿ鉶'ÒÏ¥¡ƒ“-R jˆ¶—R$Ÿ¤6ÁŠaš†Öសÿ@¡}.ÎqÏÎ÷<8_@¯_©tõJmV=Ól¯ÞwÏW;Ôñn4zs''$ÙÿwƨxB\3ña;ßâšfŠä{SØC⚥:)×l×+!ýãÁ¥.×Îßü¥€k®ÿ÷/BÕu,W«¤ÑÁ˜½nÍØ@żÿ}rÌûÏà}^~ÝpêW7œ¿üÌÿÜ[é¿jTû5l»½¿âëÿâ[Ñ9ñîêýèqü³ã¿Ehû²x×C¡æÌ‚½þü¯oäþòÞª¯¸ü«©µ €öõ¥aüò³ËKZÝÛÔÕúϦ®ææ®ææ®6w±©káÔµpêZiêZiâZ¯¯ùöÍܾËë³sºûsØü­|äœ_ô0æ=—Û›»<‰ërz!UCÇQvq"þr‹V ² lc‰&R¡ÒªcãÀp Î{™#-ÿÇ«ÿì¯ó‡XÆ’çDc¬|u÷M áNC~}K¾~u©WËÕõÕ½ºL º‚œå Þ~º½õ±Þž>à‡Rÿñ/ÿÝu!tâ-¾\ð÷·µ‹9ü¦ùÀÕs?¼éò z™÷çåï’1œÈÊ2ðÀF~Úi³h]ï0t”]³¢Š¾ÃeÄaLêY,1qâ6YÉr¾ÇvëB¹eêÉ“§D?ðF±"³é£–B?'Õú<_z³§Z' Jból«ÆãçÝAX3\[èEŽg[ùžÌ÷ݪìa_l©eZcù|‡íB6±F4otÈÍl³û·ùw™œPšÉ:& ½%¯NpuÜ÷Ú­ÄëÃ³Ž ‚YžÔ×ù²· žlô0“$3K{üôcJH•̵#5]N"y²ªòñ•·ÈÖ«2<Ï--™Î †Úl%ÛÃå4¤kÕÞò )cïø˜-µ~òü«V-ØçD³Çéßæç˜ÛÈÕ„(EªQãxȾ{G¤w¦¨Ã`s 0Y¯0òG7¯G%wV_$,âTšÅ"~ý†;”® jžacQëµ4ÃwŠMH%`r,vT×Êå/uÉ y—ˆR$Í£d¶¯éáèï#ŽŠ!ÏA<2FgûÊ;\B¥R³ A SÈ„»r½>¼ª©E 6bàìÚlSз…´ëÅš‹Æµ,~Vnâñ³o#ÅÕ›&jÅÙ^Ž8]kýdd&*­k095N¡£›R8ºÄ¶ZDIÔÄt6V5Ýl¹é÷þï÷a㷅ꨠÕpìÿ>„^+Q_MeàVÈâ3¿Â±Q¤E¯‹Y?¸6[š5XhþD,J¢CUg鬣EüÛ‹óõße¼ ¶ÞpÔ>â,ŠsëìuK«GŒhô^™cs²ÙxÖDÇ$"¦Ñ/ƒq‘T`¥è«ˆ 4ø<¸¢Ç8^Õ–ÀNCCŸŽÒ’xêÖ'9Q£fχ‰ eƒÑvØ´·û]â± âBéqÁWn€Ì³X…Çû #ƒàXJÃ*TAü,âskÒoá13Š™j«I¸ù¥ ¿Ç³`idB%®…ƒwKKwW+A£Oô¨Æ¡jŠéÐ0í ³)‘T’§VÍ,­ÔŠºFë;Õ°Du¾k©ÐZ¯˜[ê:…Œné²=¶«Æ³±¦ˆMòÖÙî¾ó¶9•)¨†ÆìbÒuµN‰˜bLÓ(õ•PgéÛwÚP ÖƒZh¡ »Y.×9æÓA—¨òÞ¦VÅ:8´ ¾É%”;oÝ( Áf§«‹‚…³ø¡íÚSJÒ¥¬ñz!4FçÒò^Õe¦…/”¤ïâ X¾µ¨bòÕðéAë¹-¿‹ìàSðB 3JŽ™}4‹˜È%v¶,¤qƒz‡â‡¢)šò IvEªÕT%e}x$ªK±çõ¡ï„[ξçbu)“q˜úãË¿8èüÉD¥RqN-~‡´°³äoÎwB„/™;‰ÚæLf™*O†~ó Â%Í*Bì’‘¶CVçÍ&ÌCí˜FÁ„Ê,öéVá¸ß²S°$¢\|1Çö¦¡½×Rm$˳°áQÐhÒ'½téBóPÉÏ¢̆ žmØXlÖtEƒÏÙÎ÷ï¿êÄ6º„ÞY'hrnåq !çšá$åWŠ=´=»sDõ÷Mõü9gœ†ä ¦á§Uç¹D¶6öi³p2¹Gµ^ÇÜXÍʽÏÖ­„8Cªr,}¦ô£TT—zlCüRG\Ì¡ˆÆàNmL²4/£4k¡¨S‰¬úØc'”KЬܳ3Ähص©1 Sn× rÙÆ eí |G&hVšB¤¤ÎuÉ­¾<-{°¿¿‰D `²T—<«9xp»+!Í⹋å¹ÚO±fÉÍO"ŽØgÖaédwçû' Ãg«{Œ®J_m’¤1ÇKlŠoDðI×nâN›âmmßwP h… Q©¹ŸÅ`|ð±Ý«\À‘k¢qe«YFÀ÷wØP$% µ‘æ©›F? dýÐäïJc°p⣴ àRª¹'ŠÖ:&‡“´œÕ0¯mˆo xÇÜ p+L:‡Ì,•ëé2¸ sŽÁ$uŒ,½éúPô}‰O ï}ÒÜ`X?üºãܘÿ½+knÜF·ïþ|L*±û2O=·'7•™ÎÔtªæq «­´,i´t·óëïJ²)‰”HÊ‹l¡RIl HÎù–óÄ5¢ÀŽ‹®[HD³Ì°ñI^ˆWþÚïu×ê¨ ¼¡.8f¼j[>sÛ¨Þ °A“qá‹$iWëè~)ȃv1`&ØtÁµG4, ‘ªÔPE¼l[¦swëª/ ¸ƒÁÙªb³nQ Õïf½?[”ÊZiŠ=IúUÇÚËšj»ót„û$• Øk+5Dxñ4p8¡ˆ3BŠÎ!(µ%±Ô‚,` 7n[ewbÇ£Ðp, *Kõp÷AÓ;Ëý8M%eœ%Œ;€Ü°_kõýlY‹*¬L%cˆ±n.Èûˆ.7\Ìêw]˜Eæ’©èn]©³Æ±Ñ,ÚÌ” €šˆ6B+¥;Mð>Jœñ”¤§)ó¸×;7‹oÍ(Î+•Ê£˜Áä?@³¡3’ÔÑáÐ,t ªÛ#Kæ° Xè€-pÕí;ÕTªÒN¤ÔP*Á8tzT3‰¸å°§†Ðý#ëK™–ª*8êáeà¶eò¶8YížÎ™ |Á"‰æìÁ4I˜" OQô2Ö´UåÑÁ,mÂUì¶UÞoµRÌÁñ€™&ÀÕhÔm%ø¶]RõÇkPÊib÷6±îF²d€Ûgtv–ÙTp(í_*t‹‡:¤ÁG‘ò"å» îhl+Û¾eœ¬{F›T ¸F&‰¡~öàfñqNœ0Bʵ"«q˜ÕkÄÂBL¡Œ#Åhk!×-kPCŽT M`¤#æ¬óW~h&µ‘•S!-@]›l·û}øN§eƒN5è^ –ut¿mØOÍu­ƒ\sÀŠð?òµUìßòÐì×ë<åh.|”1Ò^&ÔCu`iôpÊy¯X@…;Çg5*OSiѰ4lŠ¡­|厇¿^i…%0H'•LE û²¤^¥#(y°tª˜Ø;… ˜RÝ~ s 4&¤ˆÖl¬×ÝOÜ­Ô9³¢O¹#°Á`”°úa–26 FÝf«ˆgÎ"%rœtƒz56°wˆGû—@”“NÈÿ°d³—Ò‡H¸pÇòxÌXû†çÞ†à]ìššö˜"¶•c¢6`Xæ„»´N©0Ü‹4’ÑÉ“„c2J·­W»¯ 7‚."Ã=–NúMçþ*"-oðæ™ê½ó6•t°Ñ! –HbúYyjë6¥ï&æÔ‹@<¡¼K^=3¼ךM&q½_Äê>\l’™Rl$¬¡ÐËé9«¯ǃ’;C½c¾_|aC”  ‚;‘ï´Ÿ?™ÄñŽ£§6ž‚cνHµQ°îæA]ÕÆ=¥ó>¸[+ ïnhÀ'+—diu`¯y\‘˜s˜aQk56 Kñƒ·­M7X÷IÇßî®C}=F‡(É.ªUèæ~©~?›ËÿCê¸Ñ@z¨—(20Mí™®yŒÚ0Î…!¸•^ß?ÊG*>ÝÝÚñp­Ú7+¾ƒW¾º÷Ù÷meûVך•ךýXÌî¦0³".Fn^^6‰‚1ÓARíƒ7°ý«a.£åD¦kšùÜÀÍûb>Nò·WE) ¸žMøvÎÍ®—¤—í/3»H"àåçsÍLýJ÷/‰ûý²T¶K’óêõlˆI5¦2(ÿºìR,×ݬ/æ3@6+1ËÕ_—lŘua¼ŸmÝIQ} åsÌÂú’W¿®®tÓáúû:;3*U²á>‹ø"]î$|3n¾¾Ûu×ô¾Þ àÝC“»âk¸´à¯Šê¸«A/š}o0‚'(¥Õ§ÁÁް~©iz‡°ÁÁÿ/`£[¿¢õ(–inp{W~¾ºÕrâÝMR©óë¹]¡Ç C˜Ù¸Tv,†I¨;]´ÔIÈf Þ–Ã#ŒÆóâza¦f4a©™ÆX¾â‹¯ƒá°ø:ž~î©'UÕe2qÏ㤧„ÙH‘ŽÂ;CqÎ*…CŠÃ~‹<ÓøI.éòFÏTBÈNIÑ|¦r–J—"º]ÒEâ„û7Jº`A7cÅëVXåûê¹ÀŸßv1—‰™˜;sZÕ\(%VA¿S5Ws©½j®æ’«¹<· 7Wsyh–«¹lµÊÕ\Zíù¯­š ì*×cûGpóKòt‰.Kß‘ü‹û#ƒt£!(Elª$¹4 [m’ž”uF8ã² 3ƒlYÕåãÀNÓg%'ø0$;àÿÞÛvÿ=Ìçei•âC§B/Ãեׇ|²õ­/o:~°&³ù’‹Ü˜ÙM˜ýx1¦øú_OÍím˜.™Ê,•~)-?Ï?ÿP~öóÿýóןöЖß`½M‹_Í|>X’–I˜ß¾ÿæâ@ÒÏaîÒš(‰Kjþi’ ’Óâƒ[ €¼ì1[~ÖÜéïãÙ áþ6*ûü+ÙïæÆ|¿_½]Œü Þ`êdV¿¼¿NvϧÊBŒÅÏfúçàóòò×åÏï'c;þvoÍL-ÿeþ0Å¿ @ ƒ‘‰M­oV¿¼w³«ÅíhãN€s7£ÕuÒüñþzþycðŸ†ÃÁx^|JW¾Žñ$-™÷ÓàoÌ|cp`‡°¬†Ãÿ~]^ðvø~ðyp÷~3ãá¸øu »Ø¸l3\L³÷>Øm @dì`G£Áèz¾zI7“š§þžæà´[>òLÉîküçWXÍ¿'œ0-[çåÏ;Oü)X3À5*þ=Þ„áí lþuõËûÁÔ\-> ©Ë“1ÏÕmí¥Tʱ®ÒN*°Fz))ÍÑéL‚+ªZˆ&íùj1ÒºY¿E^.·¹KÒƒv~\òÎ+|&Ýå& èÿ݇r»ùðÃm˜èÔÌ&0èô®+½†J6^ßcv1å½èÃü4Ÿ¯P­ý@ׇ¥QÇPÄÇ ‹gѲ?bo‡Ÿ?þò?þC®hÿžW¬wß=Óפó‚|;öîôæ°ÀTchJ¢´„ÇcÖHç<‘IÈjJDd`ši¦çLY#0%R©-g£˜T!LŠU*רtw̨ôÄP)ß”é†J×óÛ•î.ŒJß4*}jd }&ËEuT·ZßÿŠyѾÿtžºâϼîÑõqß~¯RãcCûCwo¼&H©²^'!ƒ „sÇ™ô*)ÿê3tÏÐ=C÷³îX1Fv {µˆÆŽM™¡í@&`Ö+àJÙªÆüŽå°Š<»Æ¿ ä~SnXpg›‚õG™“;Z‘Ÿ©—¯°qÔ±>³ó‡~Y.·m€PŸNo‰!t†÷¨;#À€:{·{pޤã¬Pð*ð…Q°òÁP9ü7)L+¬LZ»LnæVN£gœQpFÁì¤t¹‚1òjÀÆL`ÒW÷Æ O s"úCàõ̶‡ÀÕµ!pm§ ;Bà§BÍ~˜z ¾oØé!¶û´yŠó…×僗ç% "©ž¤`Ï$‚GVcHR#¤H I &$ ÄT SxÍ8Ï;c쌱ÏccÁ÷`l¡ð&È–Œ[¯ løà`²ìrß{W³Kn€Åe³Œ¶_m Üm/隆֞¶#~¨YOώק'›Åš¡ùÓAsòLVð㜒­}«‹j"ã’PÏKs‡Õ€í‘ëö½ªä־ןùœteyÇ>]/ç AºTµPˆ 2U^×FXk'‚z…DBb¬[‘”_Fn¸ðK´³$Ãõaœ4Xà­Œ¡}’Cñv'¦²£ž—@ÿ(¸$? —ToàLJѼXVÓ%(z¸ÁÊ¥´nñÝZ2fa†0Þ5l¨0Bð¥’ßÅJ„nõp£ÏEª1=Xb­Dw–º|¡H“»æU@w~ßú¨3ÕºXQ­"S­Lµ2ÕjOµpw†d‚’Í Š8’JT3E‘º•O£²ÃåÎ8!Å¿·À®¨D}³C+3úªœ Эnû@ÃÏ×—+'Äþ†én\«KnÄ®žŸÃÍãÖM«i]£°Zá¬ZÔ8ÀšAh•4ôRË0úÒ¶iªsðÊÙìcMõŠ;<Ú·ÔÈYOoùÜ×a$øË°Ao}«õ|¾ÍápoÓúös-ng‡š®Þçá½;Ô8eyR·iu9 IaúeeÅ¥=K^µEÄ € -“8—dFcO FD〔ÁXZšóª3Ë<îŒxœfLnñ8¥öæUKM6ÃÒ’|5,MIÕB\voTÚ9fT÷Sœ}²¬Œ#D~rHZIk˜é“f 9$í•…¤­ /‹¼e Ë<öB*§%¡žäòûœÆpøKÖXg`}NÀok´nÖXpÆù²f‚ X4ø€ëî‘J,Úz{ÌAhÉM2ýNE¬H’ž¥‘Ö³ÚC¨èÞ˜Ÿáu]§·¯ûË"‘+ž…>ñÙ>¢µY^Ô¿¨SŽþ:¯Ì³ä ;e„ vÑr,™àNb‹ƒÕ …sÄÝ®@\vÉd—LñÄŸˆgÛ.™½™Ô q‚6ÃȨФ´‘E,¡e-ÊT7ùc:fR¿~gÌ ¥QS‰ëܳ3&;cêšggÌkqÆœhŽ{VÃʾ˜óÅ,OµD³^ŒƒFà—8\dT3‚2œkéOmc@ĸ ‚jø~Z$ÖVòÌõ»*Ÿ²-ÓümÍÍæ"f÷╈ÝÖ_¾¥IºY\ƒ0Ê…¦U+5cš°fê|›ÞÛë útßÄÛwá)‡ƒ?Ë'}m¨iÞ³dseaEô„˜yUÈxúô…4Þv{ò¿\÷‹ÉdÉÜ?Ý«­ Èçwv1òÀÊ¥;†­yú—r-|¿;fÍÅO-ÜáYZi&sm4Drd|”‚FŒe,j뽎˜ëͤÙLzVfÒN‚“qªÕVáJÛ¨@%k©9Ùèðê äÛ2–ÌXOci/Dn8 @ù¼ö¸“ªNvžº+[É.ê…=êéQ¯ðÔ£2°A!­hôR0ì &`)QˆJ2íR¬qF½õfÔ{.¨W1†º”Ëbö¶•°)8l-xC’S~¨81ì{ïÛY¡Ýž¥²¶1éK Þ5¶…ÑܶrtG¿˜„Ù³{â«0Rx®t ïˆ\ZÊ|­2˜xøIKLƒ´ŠRç™@Äe°ÁB çààç]Ò¡x³´&A’Ó ?+  ÚN9z+ä 7Ž%{JFï·4=©}k¿“v?ØpãiXÌÃY§ ¯à[6_Þ,‹‘‡-æQÊÞ€±¬Ïƒ>‘6!RØ-xh¯GãÛpù%ÎVøÇßï—!›v¯å€5W^…K…¹{‹>ýråßýù矗å2¹r³›†«¦J+lºhþiñé§%ð¾ZAÑ—Ì‘ß!¥Äæ/ %GØ2ÄœðJ&ëWÚ á$Â(Ir:c•ç,Cã 34>#h¬£ÛÐW¯¶¥š…Öz«\a «*å •jŸ&¿»Kf¤|b5è æHôÃÊÃ]ÉæŽÙË5ñìp{ ܲ[÷dܺOhQU4îÖºÓÓ×vl“jÒ¨¸|¸ëJ8¹uÃåóIáßÎY»,% ^,À“p섘H) Ž´´DZA-‘/ ¦Xæj*¢gˆ~>PŽõ®õšîè\È­j*|SÊ ¡CJVµÅËýñìc<§f6A§'bÉÆ”!fuD)¶Ý¥‘aú+–êPVp]<»{ƒ¹žTUáå’y­>¬„ ^9`yÃlDH.IôÖ gp† ‚fz6´sª:æB7#(8#ˆUsŒà®ÔÆX£ÐÚÂÛçˆ=O*¿H2ÚxVªnwÑ ÊyEuÞ²=QÜÊìú†îã^yR'aƒßf .ôv(Â~µŸO";OÎhÓ±¥NõBøà]ŒˆcŽ•¥(xoÛU\8+¹ÅRªIûŒª‘¢ò1ä~ÒÊhÒûI{](ª§àÏI¹Ô)ÒÕ‰.Ø)KþdÉŸ'}ë’?õîé‹Ùâ” ÈŠŒFÑ{bH”JS¯„Ñ’[Í9eQœke[\¶Å—-®“Þ‘ˆëÍÚF°J*0>‡Òž×¶¸û1ãNÉÇÉ1š)ûýxUè1›ã²9îyÌqOdYÛꢺTk=#ÙNdÊ‹§^ îá<"‚sVJ†¸WD1/Q´p8SKµöYÂ(ù äÏÈ+ÆÈNê•h6®·pmžâŒÕ:/ýؽœ‹˜p¬½À*H§‘&1ÅŒ·Aj'„‹‚Žíðî߯n‘¶óUéO8X’c÷C váYšÔûAjh†…¯½…òEWŠ„f ›ìùÙN‘ Jª”¿´a‘VJÿ?{×ÖÛFŽ¥ßó+„}é ãð~釽=ƒÆvÏ.6½³Ù§€×DÉ$Ùqòë—,IV•,¹È’-•$œÈçT±XùÛw(M—4@,=³!|KJl8ÿF½B®„,»!×Ç÷yVÞåGQI&>Â9ìUN²Wã“å8"´w;â5—À$œD, +î‰I¦­ã®¸ +hìzÐXv~ nË­HQƒÑ‰Ð1}³'–Ì€>eÄÖN”é„÷y3Ÿ¤ÕèÙ£ƒ¶ ÀEÝ=€¯Æ¤´|ëɵY™¹#çYë±þÂæ§¾ÖKØ~S{†9¯ÇŠ–;b½ö@`ë=ÐIn<åÜÅc*¶þa\a¯mµÖX{M°nÃÚg9ü‘`1vZǵ\ÊðaÝÇnC¶µ€ùîÌ׫“÷‡Ìÿå’_søJìÅ;,G‡Ó-¡z ª¦=0»êv×隉©×ÇôôlˆþX0[¥‘–1á¨`ˆ(L”„’AndÌ4SF3§Ó˜žJ¾à炟/ ?Ç ={‘ }£ Öv˜>=_B ¾7ЙPK˜¾„é/j¶ºIœ®˜ßAЧÎ)Š¡P O$×^3‰DT +^Í‚Ê *»&T–¬r ”!Æ>MÄ!H¬äoôÙ)!û…ìÙŽŽçGj¸tVh®83{[gÔzÉ nñ´S••ÞP/è¤]÷3~{7/ÂdïÌö=NU•¶ŠK‰¥ÒÉ-#NaD ÅJ),½@…_$:lîu[¹N¿Äáƒð™º-NÃÁ­òݳ“5_|mÈ7çÁ¶ØÕÅUíâÑ6YÞzxû&¢« ‚9P],üU{7Öëëü4øúylŽG»dr;ú6X¿—Õ…V²Awþ&¬*ïfé®o>¿üïän0çy¼ŠV:\ÀNnX ¾ª`Ý,j>æJôÍ£Ôò÷“5îØ€‘gC}WMÃúÙšK¦ÂË1¼iˆÎÝj¸+6P±®Ö„€œò1„ßêoÅnt mã2«Õ=ÙâÏœ÷Ò ÉPÌF?ÄC½~ÁQå>Y%§Js.Ü·' ëßûv{ýäp߯M'ÌÓ¿¾s óîÓídì>>"‡hÄ\}"ÿúco–ÓvOõXP‰´&ö#çFyeõj@•qrÆ…Á¥® Ë‚.¯]îéž ÷¢KÈMxÉ$f¢žöÀ$0·uUižÚÏæ©Ó¶*Ÿr‡›K¢lAo÷LÜŒlÚΙè4ñݪ¯+Ù¸ÇG®H2)€ ÚQ'\eLAî´Þ[N 3Ö0)­/©¸’Hzþ4»›ªà\Pò©¸”îÎÃÍĢ矄ۣ|B % ·$á^0Â:aÇJ¢Îjî±áÖ3f(¦^X©†Z‡´AÇ`Aa…] Ë ; „1l¦ÞNq£+¥‡žK ¹Wf ô(ì4ìù&®ÏC 3™¹»Åp4OMœ­‡Î&Šo…ßS®ýùòq]—}¥8vŒ‡ý¢%Š]œßÞûùf…ÿþçã2C¨™W»¼áŽ+×BØaÑÇÿÜØwß¿[-“3ÿÜ c·jìU¨Ò»ã‚øû»÷¿.ó¼oV0ô”¡òµ³µ}©(£žqJf\[cy0C6¡Õ^8ª¥&­ãŒ¯ ïèKµŸ),k"cÌudŒ9Ï`ÚzºQÊ­¾Áå°T@7¸œÏë¹{M”Èy)Ã]:§¾tÙåøjëé)'ì Ř Ô"ì Â\qh‘FÀHEÐÂ0% dZiA¦W…L³MA (jÒ%€i™€!mišZùl™{ÅuÛ/,*ÀˤqfdožUĽ%ôõvÊ)ô/®;ÜuBñg üw$ßæçÜ^•qQo0}Jç·†Ú9ˆ6š¢!RC¥3€"-ÖáO)&F11Љq=&†$±ZF› †É¤Ñ=ÙR+Vó|×÷ÇâóîW.‚„Ðfâ€"ú¢(fÇN¥K2;ŽÔlÂŽ¢2ʸÛZ£Óí:U·]ø=×`í8®unC–è …œcí”Q)û›ÄHp%-¸·àÞ‚{¯÷îJúx–„‹±Ø¸Ñ^PŒQ ù†xWco,¾õžùÖ©<€Œ8Ó™6*=Õ®æïúy;ÊŸ4kWyìúv5°S¤qJo7ØL 0í©6H&…ÜJHNAÎPêÿ=üë®bÙÜëéZ¥×§üÿ\cúE8uæ£pì‘)bëŠ'÷fµÍ°ա`Êd£NŒ‰HNÛ¬8ugï|ÿm¾pãw¿‡g ¿WÏ{f.@ db! ÕÞcX‘‘>[òÕG|4+Ü¥ÙÐ#îÒ»[;rË¥; ô,‡»ôÉ«~7Mÿ±ÎZd uBQçh0’àHY‰=TÂS‚¤¤PÆ«…o xØŠ‡íŠ+m‡Ü„.QÝIýwÉõÌðŸÃôŸ:>NôRˆ<”IÍcJB…EÄà2$Œ9 NóCl\°q”/Øøì±qvô™bšØ˜Ä6A5lLx×d\âÎ=@Æä~52.€¸—¡ÜWk»F¾y€÷å«‚úTãs騶޾ú„Ø–(”1¦=¶é…0RÉ©†Ï²Ûl[°íUa[œ…m9„´‰miV‰ð'ÛÖ÷Æ‚p{†pì˜LP³é˜¤¾Î* äWö6¿òµp|&Þž.×v鬧ߩ˜’cºS'e€ÎQ+á­¯ÓÓK_×êèE‹‰£4ð èHb„ ÒzË4^(,±“^2f="غ²‚ü ò¿"ä/ !Y}¾âð›&_×Þl¶=¾À¦»…ÝÀ~é.±|¥»ÄáZºKœw‰UÀ¸e.»JŸ { <3Ôi vR`N˜¦#´—^hÈ v< ÿvkFwvyª.èh} Â!¦fäc’Ýœ6² àòÖ™ðíŒCÖðÓæî?½Y¾÷»ÙªËíãk,&“Ñ|ðcäÃpïÔ(ÜïSø²‡;8ób®3žåÕÃÝ~¨é4,îUIÔÝFéàV§dÍGr§^ÕòMô|2 X(ÿûþ8€§ß÷åŸ\úTÚNßKX*& €Q­„‘Lq‡±âÜ@K¹EŒpë8#…ô¢@ôѯ¢ïìØÙ~ˆ)@€·vl B9¼¥pŸ³ c‹¾êüºôn+ýƒ/1ù¸^K'µV>UYü?„£÷í„oýäv1ßüo'ñGðç[ÏDýI襀ÊJ… »*‘RRk p:œÓ†B!|Zµ7ÿ1û4X=Ð!Õ%ãðïøÿ€ÉãÑ8ÿ<œNÿ+‹¢ºÕÍ«`£øfnü,¦wÌ¿,&ÓVDD\6‚ÊbˆÁþ 2"†a3¬ 9Ö]™a\Ñ"< •–+å]sI½ kâm\ 7Ë_ç`¤¾ûã·?OÄ.ïþ·å"jGBZ…GËDAû&ê%èee]ÁÐÖ° v:lÙ·…f«˜o³`S MžÖܨ‘Ò#—©î¥òîôáíÛë^Þ­¦$§Þl{:'³¶IÉÃW‡8{äS¼Æod£íØ(ìÔ¯ Œ("VqI€ HEâ@)ðÀp€µÑÊ#U€Ñ‹£ðKÝ ñPD$¯WÑ„$„¬Å‡–É^T´:ì $Šg¯<r @ð)±Sò»:^Ÿß§â:‹_MÔ"¾³I×[/ƒ¼íq™N—¨N­ß~ù5CúýÂÒÇ¥Õ]Ž´›i޼{Xäˆìáæ9 ã¬Ñg ½þ•Ož…­ö¿ÜEðaCí³¬Ù¼ÏŽËØÝ&C‰ ‘óž¾è¸Ù§jd¾˜$}§^döÍÛS 'sùp-cDz ƒ‘³(MøHI$àNyŽ@šËç—ð$ƒêdªjx*ôqĉ•2?Ä ÃþP¡›ÌÝl>™ýPaŸÁê%Úêná|xóÞÍ„ô òÈÈ#IÅ/¶•Ô&ĤA‡ $¶°ÅïvÅõVüA§ðq$=Ìôó»»ù,NÂU|PÕtT}7ÎÍ»å×ãfjüͧï|}÷¯oɵEDæÕ†þvn¿F¹YÈƉM?"‰~\c½ P($6\(!¸b(i¤Ž›Ä@KãyJ ÞÿÛ¿ß~>î¸d_?hóðã4œ[{?~/¶Î>,)–„n…h ‚T|y;ÖPµW ›0ï´ÇÞcjHʱgÂ/]°U:}« ÛLÖ ~”0Бz3.û%õPÛ¼óçµ­½à%NµΣÊCÕ?3ÛÑìû|håçk…Ù:îa‘¯ÔalÓq¾ÎÒ:ïâÚÉÖyÿGþð:LܸÃZ¨\2Ùj+ƒ?[oå†Èæ}‡5±vÙ䩦?:%Ó¤}Iâaìv–¶ž?†‹ïy·Ü zî¬qëÄëSü4øà¦Ÿ¿ÍÂÏ[7_„÷^ÿå@Zš¼›õÓ#$nbzßßö`HåÛÍ]ñº:ª'ˆ!ÜâЊuš;×_ ªfÖižÞ›µ´Üæï>üM°$߇¯î§Ém§ÂÌW…ø$²ñ«UŸzŽÅïFÞ™·ôŸÅ“-~Ù2‰j©ÊœHÎ(J n^À½4HÒƒ‘”*M£TÙ°&RE+”…j?Ä×Hýa˜:‚ñÝ]ê5—†Q¢t¯‹:¤ê÷)ëÞ̾MSWÂF6kŽí(ê´%Wl,·ÄѬ ¤ÄÅñS÷©MÈ8ñšãü7Î_pÓáC8ôßÂÄ2‡×c€F¹ÑoÂÏıñÄÁ|O‘ë£ u¢Øcp Öô¡u4±‡aôQ¤ÂõmBq°m2aŒ§£&­MÕ­9‘ÝÇ%³ž1`9SR+4‡–dBDcM)bš!šd÷ý󿬣'1  © þg û×Á¦§šz½ÝÖÌ7þçp¶ˆ”¡ÿp‹¯“Ù—AÄEw‹ÈúcB¿L<˜câAL$ÍG„` E½»}ü„dxqu7ìṄx¡x»¬ç.,÷±Ö\´ KW°· ¢eSŒ´b¤u4ÒŠÝUì®bwí‘-v×>bwµÙÉ–TeVœÜºY§Ù7 x«-c4fQQ¤¥p• ÔÉÁ[•Öt¡žö²Ùfçk² Gd+ÍsAk¤YcΓØC÷Ãî:]Êg] C·ÇõiÔ,Ò äG;»ûu[.È"ÌÒdöþ÷ߣA‘$ª¼N’3ér%IZ6B;&ɹ•(·Ol’hâ3{mÝýç¯i²¨Õ.ÖP’Üðvɼ$lj45Ãxú%ÉÎ\Xmi:7ê6\:Mö³²“´I]Š&>Zœ}˜$yŸ¸Bï?©Ä·_Aòv¹ÔgyPi¯èÁŒ†ÓÈd™&í¡žNEIº¨øYŽ4FÉÒ‹™Jϧ8¡´}taxB4YX š~e)Dâ•flX$^y;_ï¸N­Übêw~=|qßôDÍìÛ¼q„#&ÙÃÛé]rÜg¥'«í­¤õä{ÍJ¥RÕ¶ƒüö˯‰žŠ÷¤:ñ^É©¾ò(ÊÏÃß9N~®iåÍ! ’©íµ«óX’½ò6Uø™¹TW‚].žµRìø!ñ‰ílÜwð'c>Î/½‘ýñï¿üò'Íb])cò‹›ú%ÜÔ9&Û«¹´3í—e™Ñ…ºË[MÏ{ÍWþc;œý˲õñxb䆮}¦?òFèÝm¼CÕ–oÔöûÊ¥û¬ˆ¹oKj ûd¬‰ˆ˜=Irn¶vÛ.ÝÑxH‘Œ>â¹qâ(gãÔA.&íécAâëðvxë'-‚Ÿ¾Ebx«[%F­_Û$&Óɬmš&w‹¶±‘¶Á‘¶Ñ„MoñÕ©/-b«ý±EêÞŽR^ÙCšHÒûij‚÷ª‘[Ó›Úþ±£70!™ÆÔa ‘L '$öÆz „ó`6¬TˆŒõP$¥[´€£­ ±ðn­ÛIü°]"v^ÔÝbr½ä€ @+bGr¿^†'ð¬rKXIT,‰ŠûÄ‹è%<@%QñEE)ëHÝ—ÓÊ´»ýgŒñ˜[ɤ—žhå°¢Psh´“ Š`jÀ”L«»&ò>À0•Ûfœx&¥CÆ$Ûâù BÞ ùà˜ònÕìñyú¾ü^gDà÷Y…'îY.%¡âPnBß÷TgTèû }_¡ïÛ·& }ßþtÀ’öÕ{Ó¢÷ô}§ŠËHã´2BCŒ¥]$×6 ií´š(H¼,N›¨ Ήª €Ö kFUÂt#(êNáÈDK}ÓΘJ‰¦œ’s&›è·$/åM¥¼i¿l)o*åM­r¥¼©”7­„KySz|½”7@úìÜQ)o*åM¥¼©”7%–ò¦'VJ)oÊP9·ä–RÞÔ[Ox)o*åM¥¼i§H)o:ãò¦=émG` 4ÚÇ6Wœ*Ç Zaâ-7N@gŒ¥HQâ¼KdA¿¦Ü¶ì&V2ñvcZÁe3·-\¸­1í.®ÀfbÛYñfeµõ–&P~p­¤¶íLà)©m%µ­¤¶í\%µm(¨¸üûoÐ÷7µm_g¢c$¶QH¨T2…)Á^yϼÆK ´‡ˆPG½$D•ÖDÇÈ‚ (ÀXÇRoMå´ž>a Þئ= n«7QnÜ97'êU.Øt&B x:†/‰ºd/\À©úZQKÁÿ%‡¦{g.ÿ½‰–‚ÿ–#ûÌ:í³nŽSP$ÐzA×HH bVCª§X3È++ÇÚbßt,ºç9E÷ð€›}ŒâDRT·o×n©òÙ®ºß²pòëíÏÙÆéa~xÍ]£ÅÂ)Îù‘=\$†µ©“£òhóä(­ŸG+(Gi˜}›µ]”£S32ÔLîØ¶™ÚYw× –JWÝÍùÒI©Ó$­ó`Ó5êVPŽZÝÊÐÛØEJãÜ»ŒXg û'ãž³ì—ýÄ"ÊfÃ4ʸéÚFÊPùž¥P¬¦ãÑÉn"Ì@à½VÊi€¼F˜"æ¬Ð Sž"« áÁÆYüc€b‚E3I Bõ,­øõQ:ÙùÒ]ŒD¤'!=HݺìÄ# B†Î’!uP¨2T–T 9 gB†Â’÷³æpÈQ©Ì“ …ì_Ò;d¡èMTŽÚšð!K‡tÐÙP@dª­¹ rÔV¤©*MvˆT­&MD†V/"KKäÞ«É ‘ªU¨$ •ı¥/Ã?¼¦’ÈØªVœ9®Ñã8¡×t—ã¸çOŠ›"G%ûaŠÏ:]“_œ·{›'"ïv+ˆ,ûp\ò×áïdÛÑ‹ßÕd©q<\CÌ °>Ö‡ÂúPX.—õaoSÛãD¹!Ô"†HQ 3Â#f©'‚J™÷žzúÿì]]wÛ6¶}÷¯àÓÜtM-ãDûÒ4ž¹“5MnWÜfÝ·.mÕ²¤¥¸É¯€”dR²D’%JFÖLÛH (~àœ½÷9ǯ|zhkûýHŒ„5ªò‘ ð8åÜ3÷‘¼¦lÄ>rµ±m`%%Ît´òެdhl{ ´ô<€»³v.›ß9h€ÖN èÓi¢OAºæ+À´+Ð;Õ¥‹E9w·6š„)ã†J©dDÇÐÄ@`!8!€€Ô8õŠ&¯G6Ћœ·³ÈÄ{sýñæ»E¢ßwŽÚ;ŠüÙLîÍÀ|ÞÛwêdh¦ÅÌó£¼ùùýÇëï"hÊaỖ½ÿŠèi”æêÖÂòb}=y45¸±:Zxªn"H¾ÚŸR÷³é¤ŸÌ¦2˜ 뻩+³áHòÏÑÄFºãÑÐ~—UW¯û¢XA/Š*Ñq¨3wpg^š`:rk™È©‰dd=Ïiì]Ø?ogÓ»Ñ$ûáârþ'ÿßß¼‹nFéôQNLô·ÁôGw_ýÔÏ” qÿv;ýñEâéùüWÙ£{’ôöPšAÀ©„Ò#*¶ô2ƒ€ŠjùEdåê‹NçKjR]ñE·¾ËüY¹tOIÓr‹?ß\GøòÝ@ÚßåÇèHÑó|†þ—þôëÕ<§µ?¼½²wÈ"œö*ärצãê¸‡è €[FÏz˜ý¡¥q¯Öí[‘[vìa#›ö™Çâ.ÕÝd4²þç—cûDfcÏ€ÓEßÅ üìo'ÆwjÝOÓ&SÛ·€{ zZÛàÛÓ²ô+7 58Ñ‹÷^Onþpïx0Ï OfjL“c¨»‡Q£E©»Ñã°ÑYø^­bz9mzÆöGrŸ4–¦Mnj޿•’7‰}KÝ| }5OÚŽkxQ;¡©{u –Ciõ^:]© ¬]Q§ <åJpŸòK9¶5ÊñŠžèÕù7Ì+­7uN½3õX†5UÊ÷†sÆé­¯õàq2‡…=Œ‡YŽÕy çã© ¤îùÕD*[û?BmZy¿ e:r<–vÓ™lé¬Ùgƒqobn·ªzžæt¯ÀžÛÛz9~°eLØŸ:PYþ}Ï©¼Œzó}‹ñd¨UïÞ|Ýb²<ç<uÿ¹ÍøkVˆ#®nf7ÿHíÅ´Ñ/²ƒÿk£Íìª@6ÂZ¹/ ¿¬.íÂn·ÊvÊÆYÿvøm4Ü&ÊÍ·ýÈU£Ë:Úòs?gKšØÏ}LÔ3«>4ÔçJ€g»êGv€üÔÑ$Q)â,NtÊçn„Œ1á,Š ½ ¿›;91:,šA8àËs»§¦gÏÌì>_C/žAŸA"·A„e€n"X4Ê<™Î#¦‹l:±>ôÌΜXWø1Ê5ìÝ8LN=ZbŒ­FK<Æ£%©kDRúãr¤$âš‚cyw™êsPvô›ö—éDœ´/™‚œÈJ`QŠý#¥ZþÐñÁiÈ@ù½¢};WLK¹( ‰æ¤±QZdb„!,ÀpÎ"Ib4÷Ú²]3ÆþÔm¡vŸü}ß}Í7©±ûŸ}gµÚ¥+ʾÙòîåõ½ÝµíÛÔÂz­£ÑýlÙÍpt‘Ó}S,c¤¬ès-¡/"º”º =Íìì·núÅ‚  vN{w*ÃUÌs«Êb{ñj+Ž!åN <¦¨f+_ª ó'㜵†Ëæ¤Ô†1ŸÝ>îþ2ì«‘6×v»ñÅØ§ëÐQüÄå/î’¯y­¹§âô§WöŠ-Þñ…äúÊ‘¯“~r¥ß Çoð-ÑÛjþ5›èꃼ7np¯¿Õ×j6iñ¯Þ»qmó¶$|8IA’0žB „!ÆØMWˆ8fZs‘&„kŽƒ¿õ:ü-Ö¨þmÂèÂßÂûð·ÊÊèëT…Ñí|®îˆ¡­ÛE[rüÁí nWp»‚ÛÕ]·Ëe­ æJ`ýªXCEà ‘Ìº_ŒK¥Ð‰¦ “”@ãs•p¢eN.—øWþzòGmYhŦQˆ*¿JF+´÷ïÂi<ó­Ë¾Ëœ£u;‘Y4s¯¶|ªúL¶Â³ ™l…ásÙZ&Ûvm&®–a¦vCå®°râ4œ¾™»O"Û=­#pf´, •gÆÔ‹b󵜣RÔ¶¬«×¡ß¨ÕetŒàÝéô­¥i_´óö€½ì®{….â†èÌ MRŒ‡È!ë¨Ä¸Ô‚BHœxº!¡Òe¨t¹ßL1Õ¼{J„àå´{J ¥5ý"ž\•SwRÎ,‰D·sTB¥Ë-)5ÛC¥ËÍrâPérû€PéÒwH¨tÒÞoEÏÖ­€Û2é{µÆå)æ|ïƒìJ¶7ÇqÕÅðÜÊõ-÷‰¼Xâgµv¥ï€EÉÊóó”CÊS€º›·ˆ™QˆÌ7 ˜W­ô6ltµWÇø\ ºýoèóÓo¬Ùr( U3s‹C¦ÔÈ8Á J+Š…aH ÒÙÏÄ,ʆ^ÐÆY¡næ¹×Íä€6J¦±Ýêf–“hž­œy¢©4{’=t'µÌ[*Bù̽YŸA°pføÆ´ŒCÀ£@q%Mu )I Lbˆx,ŒQ"•F’T¥€s!BV† Y[×UãöZ›ö[«eK¨È¯ËJGÁ0®“:.‘×µ¤Œ½;+#ŽIû-?deœÏ¦²2ž¾èlVFÁ]a”ô§Ç,Б #¥)G‚Ú=‚„‰L†“TSÌ0714, ”í9xÏ<‹É–΄X¥lÐú­%ÇÁ~B0kÚ™0¿óÏ;8Ÿ¼NŽã–¥ºŸ$îÅeõ#p×Û9ª£×;¿â¡Rz`mk»Ñ2°¶µ=4kÛ±o“ƒ°!vëB–¼uª^¾" +$‰Db+¤©<Æ"Å:fÅ™NPH’IòÇH’g” «%}”UZ5ÙO8©íã´–&?[N*ä;^–üjt¶= £‚®—µör¯ çÆËò‚íò»9ó´òšq¿w×éÉCi‹4Ê$±T¨8UIªD"”NuK*TÊ*CÊýúE˜ÂV7ˆ¨l2” ^“R)ô»JR¾^Œ±;Ú$Ì*ù=MqÆ@Tž¨ˆÊ§/:KTÑ),á©Â„#8@ð˜„1Ö€#š(×o8 ±ñQ$ÕÈþ‰W ÈÅ1„•r1Q—}–Ó÷VÎOM- hÙ*Ô‘Û¢-ßnêÈmü•C¹š¡ŽœïPG.äxœ°çÍ׸ŽÜ›ïÞ0’Ô÷ãy"èXŠ z´õXÜ~d´Ûdä\ŠÐäç©jŒ\jŒYŠšY¨ŽZÈ +IŸŒZ¨  ©Ðù-‡5¿§»¢4uuCѸP4.‹^áÛÔ$ôI‘,ÅD$±Ñ±HRš„B€‚ÒL’Ø•C1B_C‡Ðæ©\PâºîÞ!ô)µ±Úô$[öcïJ2#ˆ„Ö ¡5h1Mh ZƒîaÒŽ´Í!Ü£õär @¹´/_˜™hÆ•Æ$%©VRˆ%±òKøüÝžŠ}ݘœüݦ¾æ”¥Ï¦Žl¥éªP޳åÜô}¤û·…žËÆÝ£ÑýlÙ­Êpt‘Ó}S,c›Ã•»Y¾¹£KnÓq¹éhf`¿uÓ/œ;ðQB¶óbÆA£nŸ˜8ÍoÙ÷"€CÁJ®sïþYEŠÀ9wÑZ>2'”SÖ21ÔÑŸ¾Ä ³óÕx3s²,d&¾pˆ-W!ûztD*J\e@M©Dˆ¤NcœbH•! ñKÇ ­NvËt,ýÚ–¹•¥‡¢ÝZ,÷ÊgûœâN¹¯*]áì!¨l¼W†žû°Ûv×¶í|ï’h9¥Ì¡•<&1K$†6L¶oqcŽKˆ£žãûê_V[¸n¯ÓA^i"Da°ÜG€›$¼®q¾g˜öÚˆõíNâkÌ`Ëv®ø=ÿ}ú%‰ßöZòžhÚM²ÉÊ to {ÝÛº×);šb¦,QZs‘‚ؤRœjœR£Ž‰f0¥NihQst,c¢‰Ùµ¨Áh-jždÈy_‹SW!ŸSc^üù‡¡¡ÓÌék—OäÁú|è"ïÝ7(n3è À€îK±Cš-–¡?Í¡_€ÝÒoŸ_šãôó<ª$–ˆTKH• #$°’Ô~Àb&¹Ž §hjB¤t‘’«ä‚¤T5i%RâDª‘’@òr¹Zû £¸¦ÆþRŒótÏŸºçÜt«œð´8'[èV½Â¦<Âj€?·£zBṕè8ÒâWÇtîe LáÙ?ÈGfïÜa=öÝf`§ÉnÚí:ИR äƒÜMïoMÜÃóŸ”ãÍÚx"A,öPk•i¸ŠQªRÁ­ëI(¡KO½ÿÛ¡“FMfYôÛh4¸wQ’_ aÇÈþœ.ZjÈålÓb¶OM[’ܱ¤& ¾xê-JÆ~‘çÆù,îqRàÆWë›Ï»¸CØà<üÔÉÓá[ºâq\½ëû:é¼›°¶ËKj—{ç,k5þEk™ù*r¼ÆÏÜ£aÍr5r÷ùÑ µ›‡mMÏ•…™v˜˜‡‡™ï™dý[‡¼Õ©ò}~îŠqmGš‰j4gaî1«Ï‰‘Nž×ðüÕéØíŸg°Ú š& VDb-dŒ„„„¨±1i ­ì¨ýòäÚÐîã¢Ýq´‚vSLJòÈ5´cìÚ_—Ñn‡åB=ˆa*êäAy"Å:xÛ4‹âTñn9HåpÔ°›·¬_wRáT»ØÀîv°;€Ýì`w»»ä°;€Ýì`÷ºQ»ØýšÁîK×4uï>„¸rù‰bZĆÅ •H0JRœ2%b­†~@ °ÚµNdfrÕÙo?ïX¹=ʆrœÝuÕ P6*Ï¡K½(šãÄv¾¡74F;¤8¾Žf5Ž–·Šƒ„ï»o&ÅÌËÙfc÷µ»WNf±äÎ qΑX­ÓÎ äåfêùGz¤ˆ.ïñDÏÕäÐHøÇè—â“,}öë,±£ç ÀßGÿœãxn†=]á´¨eÐußâ@0ß\Ü3,TìȾàM[´lòПS8å›)ï&ÅáwðìÆŸb­„L±ë£¦Aš ‚ŒëpAéHïSðy8 lÕçA`émÝ^ÀVR¼ ¢šâ…Dm3·yIûõ­·y9ûS%¾'vtÂW±ž,ØK’W“løÍëNsHk«)VèðFs”@ØÖŸEoÛN¶Î’7Ÿ© ìî8|—KìMžûÍ8ôÀ¡=pè¯+ |I=´ÙJN·rFNÒ“êÔßeAmw¾?É^j•Yâv£Z-|I278è·Fo­@;Ú9ÐÎv>Jš•BÔ€˜èØK £’p“à$‰¥À“j”ÒÔ¯Hqà;ˆÁ"N%9Þ™Æt?¼s9÷¨J<ïÖÄåu1ÏJa‚´ìAhç@;Ú¹±p æYš˜Ç Â"I4¤ÄPn8Æâ„ÄZ#ŒS¬¨T2ø§êÂq±¹Àá~ü€*[õvm0þº|î°ºB –}à‚+\à <ç ô‡ÃKízŸì ò™2Ò¨m‘݈ h•Ri° @ZÇc=¹±þñS¢ç²©fúÑ<º}zÙÔ%ßš2_wàS_ÝE7rðí²¨2ãÐýcjßOÙx4™FYÞXÈîЛ»åÇ]¸nK/Öô¤TÓ9 î¤_£á…½[öûå²òµ»¾D“Ìþí§Q–.åvo‡zbdý{`r;Y|òÓýp”Ø·ùílh_æKûÏý¡2Ñͽ¼“ÿeïúžÛ¶±õ{þ Í>õNkؽmnš™$›mÒÝÜ'€2ITIÊŽû×_€”eQ¿P¶,;˜é¤Žs€ ¾óœs0mÚ½²¿ùQTr˜äÚômhÖÑ]óÅFNéÁtÕˆÛAU? u5¼Î¦Ãj®‡Óñƒ]“d­•«’Ì”í¿)ɺ$èzåo‚8ÛmŠÄœ2Ð2Dጮ…ŠDΈåvV$gõçñ¤‹¡˜á:/¾˜eñÒ~Æš¨Ã)êFY;«Sw–„y›¼Ÿ%±|››–Äž=ð>L óä]Ï xû<ðÖ9ïë¸eZÆ,b€({¹z! Q$¸ÙôÁ°(¼w(ÜLÂÞ…„ÀÚ>pKF)‰WÀˆ‘+üôîºU4Ÿ«QóKžè™jÑ»2¡Ëcáõd ìÙˆncW‘–r9oªCf’M³õ¦šîméG†¾`§*+þÖäXõ—ÃÙh¶5j}C¼φ… ·Ç÷Äí^o&¼yBq`ØdO5ÃÄÊòºïC_6y8=´­;¹Ø‘¤°_3Ý\°_±°? ͯôW-»Gj—ÆN¡åÛ}9›'…eлÞtK¾Èí¯ºä„Y^7S9”é®L” ÑlÔÙÛdž¦ÙT™Ñw¦îÔò‹W4”Õ®\’;Ñž$ÃRLfÝÓ7ÒöÅ©*+«"K†0JGÙ¹¥èÂúëÌì2.ƒË¦°IwíY‡£\ª_Ä’>ºJ_‹J^º m’-ª¼èœ®I^©á´vŠí´ [ùƬ^Y; ÝN‹™V…_ºE«Y©§Êeøù•Jœæ47v•éëa:©ºd› uhûÑ%Z•ÍK§Ô• 7ÙR[ÈIÐÌÓÙ|.gïª4«DŒ´[»ódéÜ÷n—˜W6槎̶lϼ•):dÚ&«‰.F»v¬mòv·õß—âÖ–o\Îâwø]ÿ|QN’>ºòË# C·YÂ^šÍðRÕ1»}43eL5WÅÄî…{“Ûâ˜äåÞ\̶3MKëŒìHÝÐ)+á<„7ǵ¶ÎöåwnÕÎ.Å•î¡g~Q?³‡j1é«iw¦IŸÞZÅò¦ÏüXÍùÜšÿ=”ÇZþšõòôÔñZŸùôÊæ7øÈë¢*gû3ˆÛ:ÕØìßÎÛ‡¼ª¼F­ò•…ïªÔ˜w~Òåý4Š})ÉmÖ"Œmê.m~íó–Óš½|óþýpvã©ÔüoXIç÷ÝR´GÊcÝoSî×勯*ô~t­v!¤Ô¥Ï>ÑÖ6pt˜®ï˜ëC.³—ú¿§…¦ï‹ióY—Î 5šÌç“¥Îã²g=—™5+U²‰˜Y¾à,ïc šé©÷yúWÂyF}6I+ëlPXáú-{(øÍãÔ2:ñ†¯z(øØCF|>ËÓy¿åÄò_½0Ê*L2çØÙœåî×D|Ñ*ùËGÜóÓšäêLØ(ç9­½iÊ ÄùK×€³B6‰êÒù®÷Wwáj6ÒίàÖ¯à*o} Ö•è¥0ÉFîl…Ô:Me?¯ÍZE>¶ˆ=þ8›æR;[;³ÑÌ:fE.½>ÏY1Ÿú~³ùx샅ÜçÛîö¾u]¿”ñ|ê5ü¶ºÒ2wß:ÛºzÚ_wäÙk[iœœ'ÉÊ{ñ–ÚýUÓb/=ž½í ÖÃæ£à¹ëY•­´»Îå8w7uÊË"›~±ÿ謑¦ûŽx¶ªØ³ƒÔcn7˜Ú6ò´yl\àÍÐs •úzfOM]寋¬Òfï‘_ÔÀÚ8úßÇîõ©aqH€¯†p¦ C&“T(Ì4ˆ4H„&)„Hì« ¾Ï2À—Æ®W»¢€¯BÙH-Åqܾd)&œP{ñÒ2À7¦BÞ‘]º(q±¥ú´ï8 Ì׆Äɼª3¼7æ<„÷†ðÞÞ{ü„ðÞ'Þj¥»…ÚºkÞEÑöRê5½‹\'.ƒq=uV£r=T'¾‹mSÛCe% ×]¹‰Æ=ùbê!ˆ6 A´žÚ!ˆv\¢ A´!ˆ6ц Ú;gr¢ A´!ˆ6Ñ:(† Ú–J¢u”A´=Cm?ÝD‚h;dCíNñDÛ%‚h;…C­›B¢u‘A´!ˆ6ÑÞj„ Zù§D»»&ý±BiSL5¶W¾@¢c róGÄaB0‚<•DèT$€†²ô!T÷H¡º âµ[`bD8X½&ŽÃ«ÉìÓݬL¢uµ(}ÿ`ÝP”þèÑ‹ˆtdÄ}¼ûÖ(ƒLIÄÀ1'R%a!¥ÁY ™0… 3‰ü‘6$­<$D”y݇F)£  …”cÇ«U驱Ø"ÜQ•~y%Z¸ íT.C‹@Qo I+ûDÓ´’VöH‡¤•'’´jÒ‡šô{ÕBMúP“>Ô¤_ï^H§Ù pí¡ÒiöÈ…tšNÒiB:MH§¹;Vé4!&¤Ó„tÅNÓR é4ŽÒ!¦‡bH§é§ÒiB:M‡lH§Ù)ÒiºÄC:M§pH§qSé4.ò!&¤Ó„tš[Nã"ÿDÒinOC3›AÄPF0J!Q$€ZƒDcE%q¡D:ÆøšÑ ÎŒ 6xoN‹|2ÓÁû÷Ÿ> ÎÇYía<½àßS ·õM<˜2ÖŠ¶EŒ¼l‹8 |%ÐcOâÉíz<0ïä}>Xü8†ê&Ÿ*ŸO•éèmçO*÷w³·dU¦ŸJ>JDaÏ|÷Ûe¨Æ±ƒfŸA â8T°öÑt­`ýàQyàtð`ǧ^þµ--Ó†Ù‘ d6¹‡·]8æJ•j˜¦XF4Mg„…¡`‹(å ùI!?é6? p³jZ¤NY´b2™ßÄQÔq©ŽYáéI hÙI]FѺíÒaîÀm˜;N¶D’•†Ž^äèv¤¤G93pcªÕyüLÕ}dv6;ˆ$B21Ÿ?5ìUF,%)4Ÿ±¦Hb•˜!U±a» 0هߘEm2Y¾{cÔÙ6“åf{o3Y†â&kVÚvkþ!pØå¶|™OõÒ×§TJQà²OË>§Ä¶§œ¥Xðé±à}ÆÏ‘juˆrˆS¨8:¡Œ¥’r¹ Ñ*MÍ¿AJ(‚õsZʽh)`¶õC á«7½"Á®RuÍŒ­æoáŒgnÿœJA Šã`ûÛ'Ø>Áöyº¶OQtú@:„·¯+ò2{¦'šÑ„bšrÆÉ9Ó •$DE&â(v2{>]êÁ»ù¸Ê v;eð©išÉÁëBÌê\'7ƒç§A•çc[¼ó*+çbl¡~Ú •5wê&¯21ƒÿêÄ`éHï1z>åI&ÊÁ¿t•}1]²VOÞüü£6/ªºük(/—üWfƒü& J×Îûqñc2ŸŽ²['ÿƒ™Gv 4’]^¡xÃ+ðN»ˆ!“x-¾!BqZn!DéðÖ×~!Óɳf±Ùeæë:Qwý«LŒ¦Æpɤ“çg.¿ŒµyrqãkmÌß}TÖ¤°o(C]ìç_~ûŸMËé@’Zûõ›Žì·Ý;-á¿ÿýó–Æ7Í2ÕjûÓýÚûoV]¾³ûhJZxŽF|Õ¥Ý]=ÕQ”ž*2›Eâ©4Ö#³R|• €úö®Ö™åÙ´òÕœd_µog™ï„÷êZ]ÊÍIçÝoŸ^_»bË*4ß<vYÁu3fcºøøþ݇ ûäí+z>κ•º®·µ!èômìï ìªÃ´lã ÞuÆUI/‹[†%]ØvKoÁÄ.ÍäW»èš2«¹uì²Ðîƒ)6e×JÌ îÜþžÉ\<à?q¬Õ«ºÀ»žÊlç#"ßÂx%ïNóž})ÇRn®ÕÖ&þ3:›Ž r¬uö×I”kób™Žl^ݾD«†+ýÕE°¡£"g &vf8]s7Öþ|vzÛ#Æ®?ÁÖZF)•TÇqŠ5¢a(%©JI!AÓ”‚}ol‚ÈjÌD›`s#ÂÚaæWœÁ~Í¢.Áp»èá7E¯¯u6?h0¡ÿm]ÅÉÌRy‰æÓÎÀ´‘rŠr3ñÇL\e L9‰~5‹üì+ì©[1§6ïׄ;P»€àsÒÜd"•f)KAq"RÁN˜`”£TP±„8Þ¿ááú CÄ¼Û —+jŸEsÓr¹ÀažÉ  ånzž8wkp·wkp·º4Ü­ÁÝÜ­ÁÝê¡Ü­ÁÝzÚîV¿Š,ðk ±Œ€DBaA!PH›ÿXŠi$ Š"¨Ó(U‘[E–À¯œ_³ +ç«Ôx_c€Ñ¿FF°Í¯î iº-Ú²NŸÍEÁ~;)Äht"›µwæÀ±Ç;pìÀ±Çû9v(ǵW{ÌÎÄw:'Lçåöx`ý] ?1nÞÆ×ú~Õæ€ÿP>Ýí‘~iÕ1Á†€8Ži}k}„«˜’D1©Xœ8‘ñWv(ù¬Î¥}3•ã¹ÒƒzXzû63¦0;äÀL³¡—bjŒñA= ƒt>•–ÿê]ݸ²öå$2ó3þÙØØ÷‹T^CöWØþ0¸¾´©Õ昇_Ë}P]êÁë÷¿Î_4½ºÞTƒr>³™ÚåàÕ/ Õw¯Èu÷ë‹«òB-ZHÆùuš•—/Ì®o%í->/^|º4=¹])¶°0<¸~ZéjjÝL‡­¥žIÛÉŬLµ½YÄôåE•T3•ƒ2O«kÃóÒPÆÁrÄÃûõ ìsÐf ·'µ„>Þ}ÈŽ#°~ÄÎV+ÝDèÈô^ÿµÏä̬ó3دjëÛÆ 0„K?À?æ‰ùçÁ«úJ±ÿ,´¶“}lÁÊwórù•¼<¯—Éù÷ß»xL_¥á‘_ÁÝ/§ö\ˆ“ž§ðk/|ÓÄܵÓ݇Q»|øöÇ~+fíY ¯¬*’’Â4¥*‘$☋T3Ð4Q©&‘º%îž× ·€ªÛ B-°éçÕ»En ¦p.ïùöXøùñן¡õÿ D[àôÅ-œVàô´!![Ë|µÎ&¡€´Êl˜/Î=O„ûX×¾¹·§i„€Í~æÅØÖ´îŽp{©>ÿíÿ>|º€ëÃô{÷¿ý×>mø°ÿU­ƒ&8pÔ8òmü°^kîVoÑûoýæ}ŸÕsÛÐú/¼ÛA¢çHnÊmK¿ñn‰ô ¹¯¡õ‘~¡=Bïk t} ´×@ŽK3š»yÆõÝÏÙÈÕÜGép’Çöm?Ê…Ì]S}ÑíVÃz¾~è\Ø©79TDHK,¢DD1C)Bh#ˆy*¸¡ŒÇ(Ã!‡1çkäÄñîºN8Š1\»„DŒ´ï`ˆ\Š}oa3žež-¬,?ç' £vˆE_VØ— öf½é_oÞwáó"M} ^ofw¥ó¤R‡S¸ƒ¹›/cº®v$Í“NÊfcž,èpöu0í |ëùð-oÒrÂ%{äë0w&åO¹\¦j]§s®ž!;;«iéãp4,¹ &LBÆRB¦ŠŠXÊ5V"ëØ±0PàhGàhÑÆˆv'ªD,Flý¢G¢¡Dí(Á–Š*¡¹†‘Ä jJákRP‰IŒ¤&hBÂyÚ©p5Gëçiî¾?.b0Z ¶ŒxÓU®†!CÞÁ–¨E×¾ùË«ìJŒUv"¤-=Ë „³µp¶ÎÖÂÙÚ7y¶Ö€Z CÏè”줊ԅs²Ögsôkgùbc ’”Š˜ŸŽQDb•r!¦ŒG‰)B0dÛä`ýtn%²ìno¹×ÁÜZúøó9˜»‡Üñ“ЍD<:ô¨.¤Žß z† zЕT½áT*%(Œ0Ó €4•±T®‘€ ëT"™b‰Epež°+sµ”å°jïsnA¡ŽWÁPŒh‡/ÓÞHµ{~Àv<ÿå:ÚtTËÍìƒ÷» ŸøNé~WSï­1"•˜`Éä±”ŒÀDÆŒÇ8I08¥ Rn5…­òä¶Jñx-‹ŠÀ¸uw$fçì¨#]ßÓ´e«ô½©)ì•gõ“ßKupÖÎz:”ÃYOá¬ç”ÏzBÕÉ:D Q8!:!жû„èDM Œ,V€"¥)ƒŠ'\`ÆI #J¡V1Õ GDßô‘7=ñaGDkÌpíŒèñÃ{8$:)ºˆ8 ‡DOÏ&zV¸úg…ï'êÝwùª°j‚4‹’„+¦SŽ O ²*N L%D(A È$VŽE†¿ÿÞn5£BLný ? Îs vEäSó&Ýžÿ^ e©«Až®à…ÌìX¨³™Ùë}¹Ü‰l‰(u}?_ùƒié‹Ý £üƒ}— l.®ê{aÐ^™W:Úw9_‘ǃOÚ@õOÍfš×âæÁ.Ù«ìÓ*ó0{ß^üC s·ñ¢hÏM{0b¦mÄÐ`&+(h~±®Ã¤»Àøåª>«—å™]ܸ7ßücPÿ%ªÿò£‰˜÷I[¶3·2g÷€rCJzÜíJæåÜÚl<ôéßÕùÛ¹yaÚ²(ì$o6 gáW?ÏKgáÅí‰ÎòŸtY9 žŒe—_É®Iݶ›ß‡Qáâ©o0–×sɺ/”/¥ãâ5¿WS眒C«ÙF­^ä |R®,£3’ò¢tôlßÉ~÷úüü"rêÔª’ÇXðó‰ÿ·±~›ƒÊ¬2”¨ï–s€ÑUi¿Ù·)º i«¢ïÀV¾®T]¾æÂõ·X;¾uéWY)ùý÷Ž+nEø»óÏŸúùÍ…Û¶·ªX÷îóç ·]é/—±?,^<0OÊ|¬« ÌVGÀæƒ7žðÌý+„¥K@Ú9!ÊâDh):Ö0Á,&2Ñ©Š©8‰N¤ÝmíN¦ŽÍ–Wî‚fΦn•ö3KÆzIŽzYêøþªŸ¬yã¨pí3;lçQóä~~ÀûãçQj67'Áß%ßœÿâÈ_þ]E›(w—íɸx½ñͤ|ýǾÀó§«cФ|Žß9®‘ϺJÊyQæ…ã*ý¬¿V® ›Z—ŽnµÏ™k«™Y96bºÛù~„76v×3á°=cïxbg>u¤^ÕLCA!ÑÕí_¿™) P^U²ÃϪ¼¤DºçÜsÏ="õ»ÊKß‹€K80šø>ô Ïïïl È ?­ý·_þò& ¼ð©éç°Û@0£;tvvBnM—Fä>',ö´ŽŠ²yò|»,uøÁݲ?óÇ|ñïßÖ¿Ú»ruol/;ëûòq/kešà aœ²Lé§‚è¢H˜JH‰²Œ ‘0ÆûF±Ö™écEÕ},‰ö¾GÛb-†WínVA1VÜ71µ?aRù’¯Ãäq3nâòéã^Ó%†Ãc†Ñ«µö8™÷jŒ¬=8ŠzÂõ (ƒƒŸÄ\ ¨5v=}µ¢¼ë*ȸ¾û»ÇÖ9ŸIþ‰&U{8½‡UþñÍõÛ ´WÐ5ÇN¡}Úû¢·ÐXϰ—¾¬¯zé^úDxüZ6èqÂ|¬Ù/ʃ¶½â}„|€ßA§h@0öPu z¤òáeö­/À¥”K–Q".ÒDab„¢yŽUjH‚E’Æ$Z'aƒk5Ñß~ýé˜z$‹5ï󺑷é’5÷õ+–ùžŠ÷£ΖoÇ7Þç6ÀLʙŶóÉòn|ÿWÝa̺×®òâ/JÆ!b&i×Ó¶”É‚WL|!ÑŠv8+yHÔîß+À¡×%c„Ȟ°ô¡rWôuKž«mU»‚®h «<R.*BŠq¡Õ+X1çj +X-Ùº/'…|¨è*¡9cG:CE® cÓFF ÊÃY!3¢°ÊÓ¢ÄZ¥… ±Èq i¥ÂÛy›9î/rhLê?¯ÔL æ7¤Í ŸÔÖÞÙ·Û•þÑL§ù‚#±¤X<÷@M,7W3$¡h)AþF$lwúÜT©0°à½á˜»^mׂ*}wgߊÄZëzš‚ÛÛ»h²­"ÖêUHˆ'c…„­õ¬˜°5¿Ž/u…Äm4¯ ¨øõ„1òžŸ¤®®Pmi>!‘¾ø³_êtÅ)Ðù÷„Œç©iÞ-¼"Ë:'ÇÛ»ÓÅ!ÂîóÊ UF²‚ç$ÉYŠ(æ‰A…“—4IMÊò\Æ9Ê#ò¾ämaöò¦|ÿ€t%‘f¤…¼©µÔ…ö'˜pì¨élïì+(ð\ºÐbÖ_h800}‰Ý-êß"´Ð6BÛƒQg¶ýŞ؞VuynX x¯Ôî 8.¨=bðÝÜf wömìö-ùr˜YšñŒ±”¢'†*’­Ì2¡ åF“rJqØpZü÷Kó©œ&¯‘íæ&ȢĵÀÏ?b£ò+-RÙå[˜s€@ñÛN¤(¶‘¢VÒym¤H¥- ¨G¾òO1M;@b»<ÛÞ‰+ÈÃ/ºBû BÀtlwì¬ì ë“ZoäÒ;£¯¢ ĪçðŒFýâ]ëÈgWÍË:ÙÅ­W:ùq ¯‡äŠ·€ûB¹àê¤U"xJ|šuþà"øñs̘#|kÏ]øØ«NñýGû÷¸ÊÏUö°)'ãŒå„Jƒ•¢ÄÁ±¡seSLJ a$<ýl><õÜŠtùg’L2q ×½2rg¶.`´Ñ5M,¿Voüd´þálYÕcÝêF—ÎæÕr>2·Ö­B¸¢¬=æFr駬L!îš°Ù´WPѸ¶–¤Å‹’ÓæÂ†%¦váûP¿NïØgÆ\d9Þ–ÛPNІRqhàacÓÊQrÉçwÆá䑯0ø9¤p>þ<•yžæ!•Dk¥Np¡±’Î(V8L:c3ADñN–Cþs¶\¥zžôåíh\Œ¾Úß<{4›ºú»½½Ú­RËsÊuúè† ¿iMþæa9«¾³ïçûŬ,çS¹ëºýîšUõhâl–—k©Í›ñj¶òf˜pæ¶rÕZˆã†Pd+ïÞòí›Ê>áKû’³E#שà<²Gw¹+íÙ_ ”qíÓHôÖ˜FŒÙ~iSkÞ¦\±B!îO+Æ)Áº²ØõÄâ§ïŒŸA;…ý‡›ÐÒ¼fZ#aöî—»®l+¶§ÿôÛêæ†Þ‹.ïÉýÁ!IâÓ;èýÚõv½8 yæodA0G¶oŽóqsòß틯^ùð›´)ƇÕ{ѱÔ>‘Vm7‡×­‹ì$è LjÏÚÐ¥óð¥Î5hí{ ®ÇÜ„,þ9/MÐÂÕ† YZ? ÊIèëÝqµ8¾{Ûu`¹ãN2Îd‚MÞÐPƒ8¨ *8H‹5y…³—5Ùàª&ÜÔÔXÈ\€ÓXüG;™31s·„ûBÇ ¬9¤Ž™®µk9.«®eöúå¦Ì»–-癩ºVMgiÇŠ¹M&ŽïꚈàN[:Ÿ“/Ó ¥v±Ë»–Nͧ®Ï`v5c‹i×]ŽVг|8¬O8 ¹L®0•©!,Ã:Snüob$§¦:C4-ìïxÁ¢@a@/EŠ—0ÂU»ù’cÁüÖKÎu‡™¦OíîV(\¿ ’( †åu…öc-˜ä…=ñ×Aj M ÕQmÕ=²Â9e&‚C mó Å—6)ä&5Hk^`’æØþ› ]ļp8y!ГpÂu[¸ÊòÍ0G]&ëÏ{­žg†7Ýh5(gLBð©ÓÃ}U1O<ø ±©êššªNÖ"奱³*æ§GPÞ(5Å”“sYdÒHi„T'¦@ £$Ç2‘<µ©MLYF=ì5ëaI1G iÒ¦K±Ô„ D}=¬¢Œá.=l;9~¦ˆ½¶¼8P;¤Œ˜XÈÃd¿”ø–Ê£ûòåç²X`¾õ±)eÔÇF}ì âEø5öþÝÒÐöŠÜÓÙcr£³Þ”@0½)wIy‡Êý\÷(ò ñÃ<çó8$"2zQEU´QE{*Ú/Žv:“|6Íu¡W )“ëŒREtÁ8§¡Laä¨Ã`oV³GœNŸ-Ì£g²"ljž÷¯èþðÓh\åÓ %yŠX. [#æ±TLR7×Ä3=P„ 0=p¤÷®b•š3Ü‹°…ãt¸pZ>¾›.'Õ8lý¿æ÷û¯y~¶òÓrÜé}àaËÏá í9»Ô†of÷À¼5ÆEàõ«šç“K±!篹íÇÙ»»‚®ƒðnnnA ÿ¸ò¸?-m¦.ö'Å…K„?¤¢ Å$šP Á}ì!zÙP\˜§Äš‡œÛí˜ׄ[õ®X%˜ïEÀµ˜ÏÅ}è¥Ù[l ¿üåL>„¼ûè‰ë[¥ñ!7Š l5Û¢Béñšþ<Î;ò‡Õêì$l÷¼¯^ã`þˆà*Qi’"E$g:WšH•')‰¦J¸ÈE‡}gØ—”j{Ø#Þ7ûÙ°/ÁÚγs­=VD|·{rÂÎI_·;<áã2ý4ÉíË.¾oÒý‰ÙLú ãt ³ó.Có,¸Ò¡ ÍX¯×Nm¯&C½À´ófs¹Ri-å9×h®ç\¦J#J¤H2®D"hAM.¹IŒ”˜§H£Xº?v#ÛýYTð½9#Çœ(JZY#Á˜2,|çû#†y—y—;>mÇ8tkhC·¤ ='Âî­Í_{SÀSýåòOÓI°ªš@ZƼ?$¬)öC"šª?(Â/ÿC=,¬æk!!ž2Öð«ˆF+ŒX‰@„»Ô 4ü#(¤¥'E>ö:ýþãéÔ:ƒše,?Þb½p‰Ö…@H¯.:¿²…MtWÜ×ãY»æ&±kn¹Ô¿ó-öÌí–NÌ…´ÛmŠùÇt¯šöÞ_ë’=¤Y®WcÞó"þYšú§fw<äkt3MOêÀ›R#á™xWJöð®'rð*h* ã4Å̤¹ä2ã Kà$Í2‘qžÓœR0—Ôë«tMQªtMÊ´Øk‘ò©Wû#fWv”íÛÖXO›òší±.³ K¬Úw²—Ó¯`ù²‚;AÔ*Q"R¦„ѦÁli0I åFa”h8 #@ƒyÏ`ºÄrö%7Ã9M0• c0ÉËúΉ˫oTŠ}G¯rW}G±ïh‹Ksn±ï(”„“…±ï( (öí¡!{Q–0Ò°'Åûކ7ÆžÍQ)‘†ˆ„¨ !eLó„è4ÁÚ0Ž œiMYAr!ƒ¸ÁïÿðGç8çýQCÄ|};riçhÃXÂq92nZÔhVx|aM6Œã·úx~󦌞 ÿëqUµÓþÛÆ¿¬6ø­»†okžè¾É2ß|´ÿã|Ð.”bÄbÌ„e”¶™ì¸FÜKEb0°ô ,™þöµ¬òé†M¼,‘cÔz „sˆUϰeQê–x…âËßò2]†£Àö2ÇâlÇ·`Þ7GíÁmôð½xBTø<0H ß±'‚®;C>Òn“îþBž„†|›ƒ!úZ%ùHC‡õÀê« mÖì•Þî·ÿYŒœÝ5d3@êl|ƒ1*“(C9HKIR$D¦(–i¦³TSB0V¤È"ßp|ѾAIŠD{ØáL)Æü^RÎ4Èz³«#ópnæhÿòØïB†À O§/ïp3æLyøû,ºÏî º~\«X¸?ªH zˆJ†¨d¸XB&ˆ( å>†$8"ªžÇBø•#æ=iÙp¬ö`ž¦|Ž˜E­œJ¦H"dÁ´d™„)šJfÿpÁixksªBtÏAõ#Üëfáö”x^>ð¡Ãh©Ù;©äY2™CžËSf)ʳ”R×ꋲËó4ÃÊ•äÆ$Ó,‘aéc¬†œ9‘”tÛ]X,°7‘ÄTKî›^*É RøžìœPL©8œLzΚ—ï§Ù§2$MŽê›9ö*OGõ務먾Œ)xT_^:ÙÕ—!1ƒS_Ú ‹>¢hó@Hm‡†Üv†Š¨ö<yy„C¯túZÔž{êb'2£Ú¤”¤ÏT†8N5O3Zž0J(•Z+‹t zÆÊ˜¿MN7,‹ía!’yßÒmy'Vx{TU¬=(„qòªÛªÝ´KÝG3æ : šƒPy²о?VÊö]L?¡›7yÏé‘ÝËvì ÝÓcùfއäV Ìu[\s¦„gLDuš˜<—ºÐ&‘ÕR#›ÈHic³QF)²4º9—”\’kB´n[“`‹˜$ØWZi©dg·Ðs÷ã˜Q/£´œ÷ŸP¼5û}_æÇÓÅñtq<]ÇÓ=;ÀÅŒ§‹øvWÐuàÛáÄk5<ÆQz/|.ÇQz~P¥WGÅQz/&ßnk˜èÔÄqztykõ@'çfèâKˆ¥˜·Hâó8ÌmUÄó•«»ÓÄgŸÛ§ˆâ9Ï L„̸). Õ2ÑŒÈ"Ëi¡¢aÞÜQBáo–³ý#~7Çvs1rfXÍÅTwôƒ<—PÄqm3F}›E&½:ˆãt°3¨BažÄ~ÞØÏ{ÙƒOÞÕͤçê¿M ‘rR "3²0XñBdHØ(B M•F´”&¡–÷hýèrǰÌÊ&FMNTyý³oGãbôÕþæÑØ£U³‘s-´·){1ë߲ɱ~­Þþ\½yj¶­>æ£o–³ê;û~¾_ÌÊrnó=wY·ß]³ÊE²™MèV‡x3¾O'ˬÉcõAæú¿M7¯“Cd+æ´|û¦²ºÒ¾¤Mäêžßú®Ò1ºËSeq¡éR³ðþ^&¤ý‹ogs’KI[ùÕ“Q¬×á[_+èóÝÇýÉ…º3¸5üÆ©è)…mHÃwZ×Wõyz/ºúÇö‡çžÞAï×ÞÛ=ABßw1¨kûCŸ(“ýݾøê•¿I›|XݱKíiUå<¼nMÁ’ 7Д¡KçáKé´ö‹½×j«Å?ç¥ Z¸Ú°!KëgA9 ý`½ Ü‹ã·r_&޹îqçï‘zA*ÉÐ2°n )C ¾ÁuÞðò.¬ª (æ‚j¸Á¥[`ÅT¨…ÕgE; ×5à|ÝüCòŽ]ü'èâÆÊ×Ìž ÕÔ[B~¡uâ5‹ÔQ$vqËqYu-³×/7eÞµl9ÏLÕµj:K;VÌmª0qŒWW‰Û¶t>'_¦AKí2b—w-šO]ŸÁBíjÆ:-Ò®º¬ ƒ¨àÏgeug¿¡¯éÎA 31šsC MŒ³÷³ÿ•p. ©sŽ šÊ"KÀ ü—æ3¹ÂxS;Ôï7AŽP^ñ.þ›R{9² ~­¶ÝHÙ~ÛY—Ûª˜äÞ½m‹³¥\ñvÓ™$Lû~Œ’è.®vÛÚ{³ WÌ#¿m“ïÔþ2_Œï{²·õ)­7qéÏ×)ÆkÞÇmÚo½+À6ÙU󲆨áÕ{ïŸü8ý‡œn¿’LáJ¬ÿû`æÁ-䯑"Ô9«7Áž›ãpl ¼9’çV~R\ä"ágF¡L¬µb\ªÉåÌæ‘‰Ì”ŸÑüÜÐgSR)%l´$ÅHtNIåÁ|¶÷÷u¨A/}^*Çý2Î>5²×œ…¤·W4Ic±ñ"ŠC6)Iá×7ήMž«:Ј»pžÍíŽ^Ȥεâ2ÑÕe“H„3"†i$ "r¬=¯»ûÞý請ï§v÷UMnîkúúê û ž¾‘)Gùd2L\÷ÚÅ{±ã zÐN+!•`ÂÃvöGŠ*â+Ëw€;»E¿}¾™Ÿ3â—èÎW`ØÆaØM Öº£‡£˜t9/ƒD©îi}7YV¡ Vç›,þj·MZ»à½¶H8TÐìÆB»¼ùëÿû{€ž7층À.-?U³ù»ºï夸oPOÅÚ–à\ Y\K„Š›Ô("%Jµb2AœÊ”²TÚ?8Eyly.Ý©Ùvz¥í}*JQ»IŠh„5ñÉN¤$‡‡^ƒÔÓ.¾Ú&)ÐÓp@­R˜ ¥ž=3áíîðy͆ˆt嵺ó\¢7ÿeš- É8i#ªOTNY’HbS³ŒëBÉŒéÂ>´iRP橱yZžY°X¾ˆô ow±4âÇLk¶5ÖÉCÙŒÌËИ"D¢Æ¢]޾Ùêó<÷1Gê’†UÖ:¸·—ïÓ@ëcûëÆ×/ ºåì¼ï·¢Ç6=«SpônGô:©½ÐÒŽöÓaÿžÍTwï¤ä—°ëáXóÙdÈGŽ@5L>aõc#n=:˜—VŽ7©aþ“®Ϧ UÊäD‚`]ˆD‹$™ÄÏU¥8O™³?þñO£ÿð8úÙÜ;”Š^´a¿:oôÇæÓæ̺Ÿþ8Z©?m¦þy¼˜Ý;ÁÕ!Ôébìûù-·àú›Iõ=Ûÿiÿv(ò›»ê»£ÐÕk”¦sN]=-°ÔÂ7©Þ®ò"JÅmð©•F-ï{-µ ¬ò>m¿wõþyçvÎ ½‹‘“p.΄8øûŸ¿µ—;o–î zœöt9Z„½s‰ji¯K×p)·³§Iù§túÁ]Iö!/Š<­>¸SÙò>|rñú\ÎÊq5 ‘^Ggœ.ê ×+¸þ†÷ˆœÍB ¹XNrPœ¡±û§GËÆÇŸÀq3žÈ:l:³ûó¾ü ?!³/_ïrÐ5¯ÃæSV=>ßÃÒ~y~‡-òÌ>‘3pÜcžc^ôM´ñv‡}xJÕAnŸõ mv[Ïè§ÍÓ3¾ÙB=ƒW©gt³àÁ6Ëý´¹ãËï6v|?®X}#¿ì&ôC}ûÍd}û6¼Ù©à‚° µ©˜}Õ6I}ö§Ôc'¸/—} &òé!¾XÞ»”ìéõøSëõ;ßþî£xu6ô^tÊEâûä}~^0ŽTékR¥káǪ'ïØ|ÐÏöÃOÐ/Ñš®‰vZ¼í`wkþ÷4*½¿}¾;‰úiÅC²¯ÈbHˆY‚CÖy{Ý‚>E ËÌÔ"SxØ4ƒ?Üš‡ÄlrPT•býc>…n"7EmtHXU‚O^ò;¾ÌYe'÷V¦W˜)TÄÖKÙgó5CÚ#ƒ}Iö›®GüÂ’æ,ožm ÷íØ?ð9ÏÀ¯3·X~1æÕWp̲Oà¯tÄq3"T›-Ï&Ÿ¡÷)3Π'ôBÅŸåÿ³w}Ï­ÛÆúýüšû”‡kü"ôáΤM¦7·IÛI3Ó¾i@´yD‰ŠHc篿)J$e›XZ²(›IZ Q Hì·ûí·…Yb›]Hÿ¨NSȪ¬s¨™}T Û}d,Õ6!´Ê[½Ød¢Š)%iª7ó{®{Û†½–_o~«ÍaXØ:¯äAæû)vÿ?Ò±Ú¦E5ã릪rRó\6.~A"ì>f°ÊëÞ§ËbâÂÊØ‹%=Íç<¦±ù/‘‚PHj?fJ†}§Ü¡~y¨ÖºÖÞ¨[_Xúj™ØqK$>ÍgmNÖú¢û©ù¶E¶ú}«7ÙNä^}µü×™^© Õ³ÿS_UÕ™¯œÁö€¾ÞÌ#‘{Ì£ðØó¢X‚{Lvä?|Ñ–ü‡`ÌMêøhï²hvï}„ìc¨6ÃS¥:AÂQxC¥>Žn¢ÿ$»ÝrVÒ"\Z¯|^ÏI•óÚ óï^þËaèökñaèÍùË.ëßøÜO{Ùº^˜oµ^÷¶G~áà);…bOŠP"£ÃcœàE˜¢¢STôE#óÏ 1G ðË^M‘o'ç5Åè¦ÝXctöÏnÄø— \ÓQï@¸çëÅKjÞ{©¶ÌìÞ/g7û˜ËñüOÎÓ îáb¨ú‘õЯ‰þÖ B^$xw ü”•Ù¯,fLþ÷µ¤Œ‰ÈG+_âÀ÷ƒˆqJ"/2B˜°Hz‘›–oöúwýÛ±?½³ô³nIX”ïyÿ6ûaWðã¡&àÓ~q¯7FÇ0b²££^§:À|ÎÛmqBB6’qD„è) °uéÏíÒ&Ý}`yúUEé–A–ްJÀÇþÀ†d–#»T†ô °Ðs[ãb4Îýu û=•óÌ:?Ê}™Êêäœ3ø¢sçõ›FSó÷g>÷5Cæ-â…"öcîSŽ„¨P¢ÈW¾‚S/œ þN¤sÈ‘.9>RuEÜó=ܬ÷“Ü'¢§ÛýîP?.ö›Nñ–á›Öúaÿ µ~}gÕ“%~ŽF­Ê>g›º ÏÑàPÇçhP—ïõ ?Tí9Üë¹Ý×è9 ß—æ9nVä9ì ñœFêïËîœFªíœ†WEvC‡ìünIËøv%“E·€ÎÅ艺9³n¹œ‹ÍQ•œ‹Q·8Î5ŽÝ`;™´X½@‹.™NCÄ>}-6˜Êܦ2·ó"§s–¹¹S*ÀL Ä›€Ð% , 9‰p¦B¸3 ܉.|‡VéŒ á‹8šAXòˆ3áN•pgH¸#Î&µ¶§B¸3 \ù`ÞÁ ý¶+”bëR \~wÍ|€à|…s¹w{fÃÁ=ƒBœpçK€hv„ÃÐCÖ8|âô¬Ò ¤s $8)8ªˆk1˜Ø1œÑ1ˆÊcpˆ®|KÓ4FWJu²Bªë)£2È•…I<áŸ= ƒHÄbcÄšpI¢0VšzÈÃL²€àaE±ÄÎis‹“U)Í%ù:Uu>åuÜ ³Fÿ]¦cóçV…ܘÖùš]…Öõ¦fˆäØïj1ÒR3ž/|ÑéˆlûÐfMˆÙÓÀîµÏõflæìï:7lÔ½}Á,1ƒm%Û+3ÑÒ!ªº»ß#`M ^"ŒëÔü¡ã}f¹û"~SpîÃç`±¶÷=ûH±ñÆÐ|‹Ê« 7ætXé°È\ai£»ã cãŠë‚t—Ž™­ô·¼ØÆ1qŽ›'È–ª?ïŠkìkí¼'ê‘ß™­ÿÏï™c·oõú=±©› MJÖˆËZNq²)N¶ÿ{;¦u§W5Y¾/øe;}#Â"½hüÉÞ=vRõ¤ÞC¨Šcí:Xp-="|ˈ²ˆ*‚À#4¢"rŽ@ýÙ6üùÐùïÄ%?{Zð5?·Ÿ~*ÚÆæX7øª¼ÈV'ÌbŠª™‰˜¶…¦}«l >6&±¦ÛÜöϼۨõ}ªÔNó©ÓMs¬°žøG¨ÿœ0¿¹™Úñ/J朵`XrD9n6#ÁÔ>êk…yÐ*ŸˆZãÆ$ôs»ÅW ͇zcàXØÑŠ æû„¶K>Ý#`fÁ­‹u iá7Øf97ë"­ï³¬1I¤a££ù]š*µ½:S¨é"̲E¢¿¨ Ø2ÏSPW‹Òè›}t °Ù ¹Ùµ {éC¿Rg#û’RÛ(ÉŒÏ`‹w!¶÷Å25‡±Ù%èþ²¦¥ã 5L–wó(ýDk¢×p“Ð&±&Iz^¬É—5¨e5Y‡`“´­ÉæÔÅšw jòÆ`è6M²ùƒL PscqgÓÆ@›!&øÊ¬Óœ¬bÐæü¢¾*ë{é¢ªé‡Øn²<_|=qÖdi<ƒT[ïdš¯ušÎUù¸^…÷jzú¡ÐQb^{ó( ¿e›ÈÒ3ÍJ{r5æ1nž9¥¡Û´1Á‚"ÛO`ßbu•ÞPþ÷‘ £AL:…9þýîᘇÊà©yh¶hß¶&KÕÖì °½½…Õ>ÚxZ³å6- Ý*³Nd´*—¨Qƒ,ýèHï<]Ño0~*¯Úß½ ÿ$w :¶G·Þ­ì[2ãU©UvllE¯¤p\µ2–®v4f\…âËÕëù™÷j££›¥½7ö˜9GâøCg›O]]ò¿*o‚U´;Ò`“tùÓ~méò·}ød¸TÅ=ÔèZ$IÐyrW€ïOÌô7XþIu’@ípÎ,hªòl[hƒ~ÓÌÜbˆ䵩§Ž]wµcÉ–Ùr®7àþcp¡×|Ýö7“x=ýõ/™`›ÄÐû.ÏÕ:™/6]È#ÓÆædþËO¿¹ÏõÅ>¿à×Ë—µ.BrÙ o§½heÐ7Ò_“Р øYz Þ)TqÊPÅ Mcý¸/wõ¤…lc"à+  ü®žü%×Ë@ƒÅ‚«"»+oØon÷ö½Ilè6€kJC8ÒhD=Á¦[óÀÃÐ>|eú/PáB¯À[åM›é­r°.ó:¬n9HØÛØXƒ°aW-ázu‡ ø«®K³¼i5èk‡‰žW‘M°YµÍЭ¼ µñ+•Xr‚[ ™âJTÚ–)n݇<—ªÁo´å"š7üËɈ*“àH¨¿ìxÖ’b¹cFÉæ¿þç³.ÂÏÑÝg3pû\ÝpkÌçŸÎþÉ2ØX™³Lûüç—Ÿû8ŸMϼo잊Ó;Ò:ÚýcJgØqØ<¿ßQö­·(¼¿ëÒÕ7üËKµÛ»á2rdîN–ê¾Öƒê“ßë4í]˜Ú3ZfÑf»Z9T¿W+Ò7ñR-ô™Ô×EÀ8ËíâfÞé¾[cRãë"Y¡Wè¡Xv‘?æw[µ‰¢‹U¾ ª"r*xìa†¡Ž(•Š#¢"Êe€YÄQà.@lcÍMýÓlÿ g‘Òfy^ÏCîÎx;û©°Dá•ÖæÙ/©Áû!]>q¨V³@x²3ó¹ÞØU}KŠûl[ÌÔêq–™/*«è÷|çOE6«¾Õ^C^²Jgñ&[šE_f…½Æåz[˜‰FÌ;v(¼—Â{ßãµiÇ>m+"cŸñf÷KU÷Ï?S)þJñ %CKñ«k£;zÌî Öµ ^ùÒœç-àßœ¿YÀD€5 ”lÿª]K7•Õ£®*¾òá…Õ=ZTw­¯õM°¨³×“/¿Ævï¾üžïìuj‡7a¯gð4/åïf'kµ¬°CXÇqŒ}/ãXÓˆQñ!‹8¦ÂÓU’ºµ×š*쮸Ž æ±Nóθ|ÖÑeÌ— µ%¦°H2ÆZS öTØÙþ»G¡Y+ìþq•¥u÷ÙB›/Ù<ޤ¸3ú´Ï¥ÅáÙp'‹|ërìµ2µ.cWyîZ°Ø'c]r°Ë²„Íujw=Š/ÎÚÍ­Ãð¥ŽeEýv|I—T.Tc•Iü¸ïòàfSç‹AibhÖ–¬…çh¡©YPFvP"Ö!%Z#G7”®ƒõƒ-J¶G¿rÕ¹‚¨qTùÈoÚ >ç›Ð¬x£ Ãàð¤)w4~Ò”›4åR¦\ƒ• üÝ÷?ÿëû9º•2ö•G˜ÞL·î\1¦óh¿=Al±[7%±#3·{ß4l™švÝ?ò@Xvr-®KùÎiœ«¯ÔCûÜ#ëQó ݆h„§vÎ÷¤AÈØïþù÷¿b2‘0à“†Ðv 7ú3H—óãIS·#á|r† Ž£óè0Mô®ÇÁfô‚‰Ï]l'±ÅK÷@ß$…> Pn†sAe£HcÆ5 8Ææõ|³@¢±ˆq_9çf~3çÛìÇò€sïn— î‚¾k²2³å¬:)ßi+t"99ê·Aš º­Ð1æ¢Ýn㈢F&„xv¥ýÔ›¯Ží›sm$ŸÝ Éפxü\íºüó?,‰Ì%-²Ø† ;Høi,Û R"\øí÷ÓÓ1»g]ñºïÛ¦ê?ÙómÜþžX¢8u,q\Ý4¦ÀæÙ›SœrŠS~„8å(cˆN ãl†59u;º ‘§3õ=[ y˜úœºŽÎž(é)ñâ%¹„Ùê÷Ó*öÃ0«B¾¢Äø^ …¢2 æÉXJ)!Lú¡ö%Aî˜õoæìa@Ìϧ#¦{6 Ñ,x,¡_Ý-2Ÿ©üð½×Œa)ö:Vx¬qÄw0,F˜ñv튙ƒðˆ•Œ¢& ~^.¿ÞŽM0—Ë¿ºR•PmÔXp«yæ†ãVsïÊÓ"Ø`ï÷[ƒÖ 'É£Õ]¼õÄIqÒAìàÖ3ë Ž]šð­ñ†‹Ÿ ë …5Hj ,U4Pcg˜BÎ0›k•œ¹€^̘4Y.Püvé¯:½`Ÿ9Ñ8 ©"”qNUày:âØÃ3™÷c¡ä2 cwÔÚ®‚ûÓìÏ4kÕ^‡a 8k”¥%«0ÝFô3Ÿ­¢¾­ ¬PC¹ÆÙº¬ï¢`ÍàRL!-á,¼E¬¤õ !žßg`‚ú„¹#ÜýþºÂ]¼p Ò‚áÝý|ë Ž¾î½ÙÖj5£,6CúrካKÖ³z½ÓØN#Õ ½C­ð™ëXU§±•f¸ë´EÇNc-×Òià]›yÝ.5Í•ÓÀp»ÎÝfüªî“+Ø£Š›åÿׯ:_gܸ.ˆ%3»ŽM¢•ëPƒ{œwÅ2u[ÉßìK7åÁÙcR‰Ï9ÍnÓ¸ò¸ÓؘóóÇÿüê4ö}D©†…œÞò¯oõ^¿àøé­ómæÐRÛ"[fáåÛd—M¦.%ãAq,‰"ä  #¢¢À¸»ÈüËŒKK¤•”œd<Þ¿ŒÈx`*‘ù¸ бšÍ6ÙL"&›ò ÖÃ0 y\I"†6É.Ì”Õv¢«îù «ü·ò~½¦É_ a†Mðî<.Pnšƒä×®”á7Þ*aúÖY …Îru)¤†Ô™ÀwÆÉ3rGÎ÷¯Ô4§B¿úŸ=:*úÇô¯w䙋›i” Tz:Ž”FˆSêa©CË(^¢0‰/KÜ«Rï›´,<ãÔ÷IÛ}çÔàÁ&g2Bz2m½éÝn¼âê3¸ÿ>ªŠ3Œ iµ·8æ±úšØÏóZ ¥ßÕoí·fú1 A^úÄ PL"FŽ£õN íê42F/眠©£wC£ë¾û Û¦7m©Ákké÷‰Dß+úД/ºh¾HH¯ÝmÃrž= ýë&r&æñË)ÙtédÓ€ÌÑÕëØ¾BöÌŠ±°—çyÄ*N+“érßßU ì5JÆCgiÈ-ú`àÜTv\ö”õ8 =¤ÁDz!Í5RÁ—,9°FžO( §ž²ï¿§,ÈuzÊR)^è)Ë Æ²Óh QD[m¶0•M¶œ[ÊØÕ¥û¬LÇ2ÈÒáZgl*‹†÷¦¦²SSÙ©©ì¥ñÕÔTvj*{ɦ²õËû)_7ß I ÀÈd¡OÇqȧš† û~ˆCF–8 °ÏC$‘G“¯k¹²Åzt߯×'«Fi†ïKwV’ŸÉÙþ¼^—L+cÔó)m‡ù™Å+œ7ëB¨DôPËÌŽûüMêÝz˜ƒe]·ïeWÑ€Çã‚w'—j#ý¥bO:Õ•éVÿa©_}µ²i«˜¾wìïÉÒ\C&ÅnuÒÆÆ¹&8_UGgƒª ‰sÍñ"U_Ç|HVn¥àq´]÷–$ÛpPîV/¾“²Ý'¤~øDîã(ÂAìf%*Íî.ƯͱÇBŸ+Ím¡f¨…gN@…ˆ¯b…IÈ%³ª3î3õ%fñì¡þmŽ==~(‡×Aš’M]d³ü>û6[™÷鬚nd¶ÐÒÆ^ò{¦³j²+¼ØS°«ˆúò)((÷Û‚¥=IB¤pïêQ­íD¬¾˜$*!|pleÿ¦¾S¨dêË11¤÷£'†ôGaH¦îµ5„mᓱGÝ“r\…ã˜n °.ÙÙ£%²wB c}ˈ hÍ•§—±ù1‹ý{ˆD±Ïq ýEî4†6ë{TR©«luÓ’zŒo‘ÄmáTJj’Ú(˜ƒŸ¼6 ¦„û¨ÉøÆ”Ù/@øh37yÌP4|ÌoóBT_Íb.ÆÂüÆœòÖ îŽŠnæ[¯8ß½¨8íÕ/zyŠp©úC`Y Bu{ïÀ͇8ïçq†»žoäA¾µÛV›æ–2h>Ø\>!ß`S\óÈGaìaÎ9Ž¢‘¤R*䕊eØ|3DÝ_j‡çßõϛٷP¶27ÿôâ‘T}ÓWüôRõÆG©zßçϺgØc¨S'Ì’5¼3ŽˆDâeçl'jÿÜ^m²?@·Ü>Ü«ñ±C‰o¼µa¾Ú:UùR½ì¦Y¡Nßé ¡Ç×ñ*åû΀&Ul·öd5ì 6ç§¶¾Ïó¼ŽÃEä¢#+Z}¡ NúD Í´I0ó0¦Ø×Œ¤±/cí!Ïw:ûÈ­={«ãÄÎç.‹ùuƒ”gƒ7敾¶ÇIKúÓ½N׻ʑ{ý1‰Ñø”âNoJOÒfŒÆó%÷pO•HMVØoÓ)Ÿ |!E—ž/mìî®.‚çY”ܼjÑó‰Çzß-]„ôXúü½K!˜ç÷.[ •¢;“ü9j% À;ÉŸ?e=Ñö'ùó ·N¸õƒâÖIþ|’?¿ãþ#°æß¾¤ûÛ&)žl¹;”BÄ1F¦ÂG!&LcOyf±§%‰=ûšG‚»ÉœT¸ì¡˜ý%E¶q.æþ·]«Ëg1¢î٦Ŭ°ér¢ƒîù®Mn3‹zÅXQR|„=Ö8J;XÑæ¹y[µœcßk‰–sÊýû$UoÀ&ô¹:^Ôn†äkR<~®v^þùV•ÑUCo$ˆQ`Þ~G9ÆêÈMVIÁæÕ5ïR×–é}0Õ„OàœîtÝgmü²ÚIU(AFMh 2¬1&Ȩ›£êXÔðb²Ã¡“ …˜í‘)Ĩ†¨›VYU b²C¯“Œ…˜Õx`S[€IýŽ®”ä­çn[ÃWÀ×5ëÝš€f6ð˜mÁbˆÑCLÖÆ³¿0Öã®n¨éºCZ%ïîf ø °:àpˆQ*³j óAöM€˜à§ƒ.ÿØf€¾óBøÙQÕb_:C|AObÂ¥Dø" ¨d ¦)W£,Ž,ÖrÒ2-ô'ŒàN‹l¼fy\67…CuÔ5£þajù#AúœŠv5‘3Òß_Ð35KôVú½ÁÖz’ ÷7ïIß-×ûâgwìŸíÒ›7Yñòn~TyAnÌùµÔ7ÿù‡ãÙŸ˜¦œ$ß}Ò«×}ÒŸW/ßTÛ»;÷ü¦*h`3…KØ0ÊÒõ}²rŠ0Öä.@8Òedœ¬"§;ÙK—¡Y¶0^Í¢OÂøPÇiæµZ›÷‰«Å*_§Û;—åksvœ~­^«<ÿæ¶4É*ÎÌÁmŽñãýÔÝ7#jü&…†\P#écƘRQKB©0e±gëÜ4Š”;³rê|ŠQ>ÇRÐv¶Ív ¢™nÔ‘>·ûH1j*F¼t—`6Ðý„™ºè4ÙÔ%øÉ¤ÀÔ%x|]‚§v¿îù‡÷@é›Úýî&¾80mŠøü?{WÒܸ±¤ïþŒ¹Œ#uaæf¿~áqŒíçxvŒ}cP M,llIýë§ µ ³(d ‡[Rf¨=·ï›ÌÔ!¶»–2#r\#6ˆšÄ´-b0N]„÷\Û±À¦ÎA墀q¿)óba´a0Á5$Uڀͷˆ¼1C-›÷2lö‰qTáD ¸]‰€û F äR£ùø !<ÚÌçL:'«·¡²´®aün´Úð4…6['q do+a´q«$íÂ^5­(H0Ún`´qô ½Kn$Ö*­o²¿ýño^m ™šíO¾‚Ê&,‡Š s <+²&»Ýˆ«‰”ÆMxÓ›#*b·KV Œþf 9žGwHmø/qzþóïcß“óà„–øûÀ…>­=±xJÉÁmº­‹¬ˆ&MOÚ…ñ&c–t ÍÀ7æ²óÀ²|Ç£~F¦¸Œ ´¹Ëá1¹-1ìñ–®$©X!ã,òIöoM%iÛ ‚!L³áôc"†g˜2YiÜrèϽ+¦“ 53Oú<’º‰î›Å-iØ–õ”Žd=´)sÇq(Ä>ÛÉ—ÉZƒÎ¸AÊÁUW`R.'EjõÌCùHcÒHß þ|J¯}ã$<™ò¤g<ìj•ÞδÌðã\X3Ùºâl×ÏI&îÏ¡¸~¶:œ‘b#n~ÅŒJrE¨$O;s}Z.Ïér2—Qó8Š=n0ÓåÔgÌs™¹Ì¦”Únà1êh*ßœîéõœÌŸë¡ò>¤¹`öÈ!:|2ç€ô»÷ý´]×wŒ&PÇ Ë3ûN Ç#ÄCRÄ?çÈçÔ‘O¯¯Æ¸.äÒ-K Æ¿ˆ.Ou½…Eý¬j»Ù%B£Úžâ&Çòª‚^P×¾»ZYr 07a^àVøòôŽ($yrpOdœ%t“ÒGu€¨äü¾ª·ql‚Š:‰•G¬S§Pã u‡^—EUEpïC#v)‚4¶yR×¾â¤sü±²(‡×¡ØýyHS…6Øó‡ /“†p ê"ÁÜñ•mrÏéø”~%óaN$¿>ï¢õêLšÝ‘³;ò}¸#i‡“yßžð÷?üòÇKJ޾H—ç;,ƒ8/¶_0ñ,-dþ .í&‰ Fæ5=˜ÖWçM†ßýQaD­öÎŒ¾kz¶!“HÃ.³5KGŠnŠ*y€Ê£®ËùÊ0¡ ïd¿ÿý·Ÿ s‰­ÂI_pÝJ¥çA;ú¥Ä”t”&ÒI Û›/?^¡_ru†X¢ªëÂ"“P^ËC`:Îk;´À£Vè3?ö ˶™c»F›‘íx$Œ™?‡=ÞAØÃ÷PE_–kcõ°¼À0Ý _óåx¦)ù,‡9ð1qà#°,]¢1ñ)¹šÅ·ê°ý OPf«•f¼ôÒ"÷¶fç·áHœ)f¯Š¾Wå¤yk(¬°[\‘tB³÷„4Snô\€©°è2¨xÝФÚåAÅÕâ¹Ú¬dš¸6«Å-œ>Ú&~ìù>ó a]°„>µœÐŒb×eœs/t}îs,D÷ŠÂ>xè¾Hõ±_D4_„\1 ×Å¢º+3.Ts‹°xÖCYdâo"æÇLô¤ÙÀm0sEƒÈÒZ£ÓZüúÉ@Y7à1 |ÎlO±É,ËF¨o”FŒËw}“À©¡l? IÝDûd”/ïè …Å/ÿµxF”´Ùoî…i²èzlQñ«&…Æ‚²ŽmÃÈžã{NÌÑr‰kôƒƒ¯"² çß³àmý‹Âbñ|çˆz¦Qå`4Aa¾' (³Ã`vÌe ÚAιLa.SHß jÊÉPðe¶¸Ð³Þi™^D‚ü‰àVò§ý<]*ò…ÇÌçdßQS½[¤™0 ¤iñz8ÿÀ¤žÐ¾orè&K!¶ Ó\7 |7ôœØ±üÐLÏ'®O‰é~à{Ä¡ºs ñyÞ8…X& æÏð}ß³¼ARÇ'}‡ÅhñœAò*Yå`(ºË Åý %œãvsÜNŠ"áÅÚ+õ­ˆÜ\dHð‚ë_uJfµ”NTg{ âATŠlÉË8ýX ÜÛrÙ÷žP×VUE7Ér]†°/5¾ïýbi.ýùOÀ ~’;t÷B!Ã9;¯+dk>'f¶V0¶Ð_Vƒç,ðÇä2$UãdÐâÓc…Ÿ “E¨vÈòœ‘¾G”Nˆº˜WÐ슫[œ7rD%õ‹0o÷œäåNˆ™¨&¹ nÇœpW‘õ­ %JNvàd|¨RèMû2Ò²Ô¯eâ“Øw_w[+Ÿ3ÀåÜ=ìi«M^W›ÜÄ’ò?¤Ë[}‚Ûê…4°Ì‡AúŽüÕ­"³z5ƒ¬‰ üýë/c‰fý+ç˜ì.c`TRÞ)Çeš› PlYÝmkVÜçPùûRôÛx¢Ý§—Æ 'e $F§Hù˜ ¼³ŒÉ40£ÓÝN²‚•Û<ÿÔ¶GÆÎèšï“,F„[î‘›2Zñ±¡‹T\2yl¦Íh´oÖÝX5¿êþÞ¤2n6ÑÉ+ƒ€9A‡. Çó âÆ±m9µˆf¹–çbpQÿäe–ˆ³ K¤¾¿I$\Ô­ò‚gÛ”ÊzÅ] âóYŒ›@8VªèþH"Óê‡ÜkÄð=2H 4‰g“ Ÿ?(~ã›öHú ˜Uú3¯_y'þv}5ŠƇnÖXãÅz]òY¥NáI¨ã gècjt èD2Ç­LjHe¸=ÔøÃ””,0«¬7»æúÇ9ªý–QmTøù¢b¹—š£­s´õ}‡D§#@:_øs¶O_„©Cò9u5&Ê?|Ÿï;®ùüVÜ—á˜<ðÖÀÜI­‰Pò÷“zUÔÝ]Þ *Ñö³¾]ügÓQ÷ ‰|òØ÷-î“0´Î CÖ‰j;–k…–í9±Ë@î•ΧñW÷a y/r15Þ¾zT:^èón—ïv={½‹ÿ V”ëz/:`\Ó2|Ã9(át=Û’uûNßs,o̳G†>˜ª­_Aβ÷€]ÉUëCD?ÛooàñIàiúcb±¦ê»mæ´Ùô¡p}b‚,Ã0Ú®E— Õxþ%¢9R)/(E¨ÈRQYÒYUZJI˜¤IsÃè†*Ç£‰Õ¶Æê©Ø¿J,©$ó=R‹çbEa•ä”’»Ž†ö«’|³Å>çS!Ö}‚îõ5 Z2Mµ¥èüý®BÛ%뻢ÖQ“Ó£º'kÆÑº–¼“®š)FWå²!•Ä6Ȱ‡7 ý‚~Å*«x©¡Ö,(ú±±W1:‰X¤Â"À¨5Nx‰"õråì‡P½E+Ë“3Ñœ‚à:Vî²V¶uíƒõV⡵Øn©ØÜ#¼âJî„:Š÷I.¬ Ô<¥ÎؽP…±—;Üõ³F M#ËÔn¢»@ê|À=+q;¯£-îû›…#¶K±’õrç™ë?V«­Ø¦÷ø8$ðÖ…¾r ‘3ùã´—Íåp»ÑnE̼RØÅLÿEðûÊ0»9ÙlPón -“|Žyyô¬hkCývêê?¬CMUyú£ÎÆ»º¿éáí;E<¡ÇzxŽãÀ÷«U‰_ï½HÍ]—¢Ø„Õ&÷HƒW¥UÅwjsUiWþ1ºI,º MìRÓj½¿<¢Tï9wÏr™´®m¨ªš%Í“Œ6p<¦Û³it-4àËÖ5/1†ÒPkµUYŽÆmê ™duä‹$Q±ë‡Ê½ªÍÄ«ãL¬¡þi¾ µ«DB™ýŠô¶.Q¦ú° ¹ž0§o«ÝzW¥ÇtÙ¡çÕȆæãi›àùJX4b6FCÙ*KÏiX÷•ÎH´mˆkŒÑÖÏ é%ÔÕ?E(Cü@½¸o¼ bJ7™‡ºí4»»Ú_´ÛМv’é?º=ðúÊÕß¶òyÇ› m¥é¶e˜nùW´–$Æ•šuQÔÇÈ^;G¹d•ÞMÕ¤Ak¶þ¼ûGÕÔ´±vqŽ„wúëY{ÃØâ[ËÚ{&ºJY’?Cÿh£àgÚÛÙ%lD÷|„°ô»ò½ä"Ñs~úk–h‘CÒQšß.­ä¿6€ë âÌ6´ƒ{AMºÍ Í©ÃÐù÷Cì»YRE؇]µ'ŠÔPŸ´³A|£‘¨¼’îó;1# £[2» ;ZÔ¥+ñßDbD~ÞJAvj©á'ÕZª*QTGõ0§ªIï*m©JCoÍÁ ÷ ¶ôVc±œ‹CyŠXž·yó{ñ¨86Ñ{R”€QÞW' ´Ú2…‹Žßí¡…ÎõC3o ¡n`yvÓ%ë£X»ñ¢ŠxÍßøuiÜ„ò¾øäôñÓ¶‘žÒï¿ýd˜KÌÇM°Œ­ýsÃÖ¦IýûÎç$zŸ4ž=ÓÌŸ•f^…>×ë=JíBµpD‚ZP÷¼;Î0ºÛ*¼!·Z­«Î:Cž„P}X§ôKÒ:W0+÷+ê%Ës€WÉËQšDõëÑGZÕæM“Ó|óÛ/Ÿ¶þL3M#ÕvµâÕHë m‚e#ý±ÂÐ4ÝPaUO_äéÛ£ë™@Osä « o÷ÇöŽËоOò9þP—b ÒR½}nT_@ S°_*u¢âµ¸®¯ª2+Töù¨Ôf“>6±üfFŒ‚‚¥4—wÜüv=ÞvSD'Lñ£²E“êìþqT²}Ák ÉÖ n`Eû ÊEäêŒ,ˆœLÿ“kÝcbʽ0&Õ¹FÊhΊ 2ð—[&ùŒ ²pT„`¶ÏÍ^b¨µ~‹Q¹¦bDå=Ád€bË*¢€6Q3¬ó¦ääÀ€ëêdt=¬Ç†Oíu !•Â6©05ÆF§Ûɯ؈psçm óÆe—¯ÙØÐ wâW„Å‘/ëJ{ÜËþòm7]qvª·íÆ¿ðô- ³‘¸w.‰"Û‹Í(pã ¶=£8r(5“Û„™µgÄãÞý¯ø¬-/‹rÏèûß‹e)k¿tú¸2mqZô(v“&Ü;¨ÝŽh©_¸ý¶ðynà{ƒÛ­TUkGðÜ`uÝÓ_zî7Ÿ‹uZ#õüX®,¡i±š Ë•rbòÀrYd…Ôäc$4¨»Üq¢8p}‹†|¦u¯XÄ‹‡îÓ€¨®ñEDóEÈb—` qUwÅý"›ÚB5·‹‰5RÙ¢¹.-Tc×| ¡‘]}—ÀŠXÄ ì>¨ˆeŒI{XWÕµWëŠ8Š.ÐÕ3‰£w"õÇpOÁSaHq°¨3Êé“<[xz-<«—‹É„E$À¢ò^áé®ðlU\º)"ežð MŸD§Yê œ^d)€tb,Q0~ç ÉyDü˜è·VØí†S§Ž¡yZkZB–½™‹DËômæF–¹&•h‹”š‰ó Ÿnfhø.ó}¸+z3É×h ×Öy?óÊ.ú¯3sß~%Aî„jç]•ð™â ®×޵ b{C;Ö |ÒΡë8®K¼!C‰áŠÑÀc®O\0C ËúÀŽßº+=ªYX¤—‡‡i¾3`ÅCسÏŽÉS”ÖÀ²Éj÷ÕÏšöí$Vr[Í:›Ç£½$º{f™íîÙî~§v÷™Luía¡§^mèI¼ÑúFœ9Zrj€-%…o àÖµ8l$zæ¸Ðc_:+‡Ò&RK•j"t$©ìZQ/!F‹Óh΢hM”E3§ÀèÓàä&}O¿Ú¢Ÿ¡Py…Sd—D#·¾ÎUÉ^ mö]aö €ïThz`´»VÕY—…‡½â@õÎ|ƒœÅïD |½øÑe\¤S8ú_†ßOT  31Ä Ëwî8ÌA,£‰!¼îh\IšòryÇSçöá>ø:‰ð3²ögÆcºMkÕÞ1 ©èÀòybãsó«#É~Ór+UnÅF]æpJ¨x~dvä4f¡íxÌqlb“À]püFÚQ{>âãk¤eõX†wÑœçÁíH@B¹mkž>öXŒe‘õÿ³w%]nÛZzï_¡Ó+÷¢lÎÃÛ½ '펓—s’îä­t@T±D‘²HºTùõ %RRtQC™‹ Uu?Üñ»u åÖðÀ7Ò”Xò Óî…ƒLßr¼îJ臃|Ãrð_Z 3tÛ[Ži:!¾1q³œÛ’"wPMÖGzgÞP\ˆò?² (ŠÚ‘!8iz#öñ ø’‡…ƒ¾*s.!KiÔjá†$35 MQÌà¾t1Ãä+ÔëyÞDùÁ9ïÒ×§üã/ÛüãgêêóXÝX.Ý­¦Å}5¹Ô$·=fÐ]SŽÜ™óÇ‚iK$£qÂÇJMLðÿõ¹ ›8&£ŽcÆ67E\eˆ´ÊúŸíkÍàœ+r>‹/`’ð!Kiû§R˜ä´Eòf7®WlY¼t¦™g˜†q`[˜žg‡®mv©Î=ß àÒ_´.Úd³/$PMYgÔ³Îü˜¸™ ÿœªûzåDìÛŠ —/‰yÑzÉ76œ4Ë?S‚ðÛƒl^‚K#\:²i”f©0pˆeˆÁ4üKÁ¤Yh‘ñ-'ÛÍá„YΗ=Ræv¼4ò‰Ó|]#¯úPð/ÅÛ’=EÙ`ÒÍ:Òs>zö8›šx_TÒ0‰å=?©V¨dF€á&cÉHÓ{œllFˆòƒŽñ˜ÛºXÀªd¼tÕÀˆVO"Ȇݦ9¤êavA›‚ŸNÏ¥]Ë÷ߪÆbà¬HøHŠ}_§¨!‚OïsÊ›®*ñ¿EÅw#Âw:Š–_ÀÖ¡!ÿ˜æQŠÊüL ô汩sþ{.ù3HIFe‡]d«åh<å#‹J®9V´F½›Xºúé£åS¹¨ù.ö˜Æ †¹Q/ê={ º‚ÿš …¤Fä>÷Á|}lŠ ê4‘诶‡ÊÒõ³:z n;Ôž»{ üÚ‡5‹E¶]"Ò²»8Ë0;«H‹Ø«¨\ƒV ·ìO¨¬Šr±ÁÆÑ—{sØ &îÌ5søB)>ѱA ‡Gœ®Í6’7"6Q¤"år¯°`Œp5g3O›â]BŽíœäé vù6­^‰-ø<«yD*nd"ôä> ©á÷A1ûœê÷èt1ì¶)ÅTñô1R}ÔHx>”†Ý‡­qŠmT¦+þß¡OZ ;¿Ú`ì©>–6â˜i@k ÜMst…Ô ìšä a~6H–/¸ÒË× ÅÏEƒß’¤IÅiåG0TëÂV¸N4Aü'бŸPÅ£ðñõ&R4áb;”Ÿ±.ToÕ´ t¥}£fEäï²’?©Áb$æQV3D…˜†ø3ª¢¨–é”cÜJRüždrޱ€ÆzCÛÖeµIiE„!ƒ²ö¼|SuÐËrÁ^o§ùÆ ìù²pe9›ÛÏ)˜ê®¬þè_k–ËñÕ+µ›ÿTÝ4VuÓMÕ+íý¦¨—»Šò¦[˜ Qõ×6 ¼UZR䥯²pjªµz^_7jß¾‡ b†ÁÍ9ȉ֩Ëêäsé,Œÿ王"ßx±*â:c:ˆ"z`´ÒAÈ,. ÄК4³}¾ìägŸüì7ägß‘”¢dÇ)kß×/œÌÙ#¿p’XØKµŠE`ƪÎ9¤¡Wü©ÿ¸®2Î|u׿¡bÊ8Ñ*A+ù–?Ëoÿüen¢^ CSŠÖ $í¨LudßþöëO¦5G=ú葪3UÜžNG?¥@Re©àǼÑxŽg ê]!ñsÙíìèEÈÒwü©Š£ºÜ±—c€úÁT¹°Y{l uÝïL¬4¾ Z3°ËÛeF>§Íø^®£d~ :C–REÊ'RVÖHê»ûõãÇW?qq‘²^,X©¸zÛ í;'Y¶&\;?ÁÝ{|Ã&ò€e>tÏ‹“¬Hãût¿×¿ÿ¨–m˜×¾,ǶՆCd#Ÿ‚œšÕg©ŠYEߢq[›¾¡ª {i *¥ÖëìIÄ@ÅŠP‰GÉA+Ìß-Õ×Å`‰†Ø YaOâ¤Z«S)½73U¢`鈂„%jâ¢y©¦;JÖèÆÀÀÈAŠ¥J®1ƒUbÒîUIµ†®Jü¦Å 3ñÂà ٠JÁ8RŠ{'%2@T¢­­­”™Ò2Ï'»EŠÍKJ×ÔZa­+!CWJÉ*U~`Û¥júä^‡’Il»Î¸j¯šv'‡E),TNÑÙQ%C¾ŒUSÓ߉µ Gš·ùÝE âå)——’>ÿT}ßzMGoëL#‹xQbR;ð<# øQm&‰mÚ¦ŽÍbÏŒ©éTy߯¬âŸ×šÍä;Í?­¨Ä5U_Sá×½XïFwðW~·}kŸÙ¿‹úÍ=W¡4ËI”±Ùÿ’ÏD†9Å*~®ý ÂÀ=l÷lÙuõ öO¥eõYEÂÐëÕýÙ†étëÆNUýñùþhév;sW]òÇ¿÷EwÌÑ«hì˜Þ@N‘£‰ôž!îð–X«¶×Â… Zi|ªrùÿrfñl á霦ÏfÑØšY4í;>÷j:fîM¦M¹<§ä_e¶Í+NžÑȆÑãïž×ý^o¾Ê+¥ùÕÌ 9CÆ+eÜņE'ÞÙ‰wöAŒf™U_a7tµË»AÞùÄ-šÔXAiŽNïÁSq‹×9ð!ílJT亭è)_×…HiïÖËù‹ôxiÛžã²Ø0bÛb×IüÈ·ó ßqM3H,ϳcc⥽j^Z;ôܰï@²ƒÀyÞÄçÜrÚšFh]^ZÛ4 ÃBøŽ–s—hUÓ‡t“¼´dCVQ‘‘k!¦µƒÞIw"hwWNL+ÛÙéi›ê¨‰bVÃë2QÌvê$&‚Ù£ÐËÌjÌÄD/{ zY—þVÉeáÓãÔÉîç9‡NèÄ^h9Ôö)åjedš3L“2Û'I˜p»Âñ™6!~nÍÁ—´#ö&×ÐâYô$Ôç¶{9·Êý}¯Ø xé@rèŽÝ7 Ë÷{V€a†¢WykÀ:œâÇ—Œû†ñª?Ÿ?¬O¦úÜAÛ©1ÄxÑ×)˜:So8˜zÛ1RT€d´¦ cóÆ Ðu›‚gãÏ® "væd`áÔ½TL‡šnhúM|Fc'0Ì(ô'±cÇ2æ$¦ç9E惱ó×S_Ò;hìñå˜Î‡ªÞÇqö&Ì––YËͨ ZlÈú>¥$ƒË¼ya¡Àq­ƒ°ïøá³æ mvh÷ BË0-Ç·ÜnOÇœÀÁe8¾…€Ð}±dCÍÂ1"BžkÚíÂ%r$O=® +ºšÓÍÓº*p²»*{•lŒé%Ôý‹¬ˆH•}˜f ¢Ÿ-Šeʆ„^Ê2ÃÐé Y¨ÞdVœÏÜö©¤¸&1CSÍ‹,RÇiÁOVÈ’@@î«UÆOF>—ääBTÞ#åÓÕbǘÇI¶FKn1S ’)Å,T|X[HÉ5Ýb%KTW.¹Y øh„dµÀôÑÉ-M°’Èý#RT׬œH ¸€vÙ8Q É {{ÐÓ<Á¬“ò™Hj™ˆ„€lв\> zYpIIõÇ*ªÅšeÙœˆÿ ÅYNï Š:·bÛ Šbܽ Å&rFþò)jGïÀ¹VÂOäÒéà– ·WEx»¬Ëî$Žëò‰rÝÆÑ„vJ5‘|{×½Y³Nç”p~Nù®Ï›…ç_oótå"ÃÉÃŽÛìAzUgUŠÏ ÐNbœ°X¹ÂèѨSêØ¹sLøM?UÎÝÖ4Oñ<;x–ão¼sß…ª‘âç?É‹c0䕇rÔîÀ³4Œ¨Z®MgˆYîL1zŠ×¼'ß­¸Ýt{÷¡„o5þ0 ‰ôÿ,AúÒðÁl‹•ÌVVèÈVì\ynߣã5WT-÷+ÓEŽ&(ºžˆÐ Ml8…¦ðˆ’²¨E<ÌóîTêw&" r•‘©ë­Þp{h$V눫9Û`×ѵ‹{[Å„=NÕb‡ûûïç6Ž{ svš ÷‘EY’u:_n"9–‡ˆ·_Ì­ù/þ@<àìØÝëaÍÄ‘çaxÜ׳5/…+P6JÊR< ðø%¥“…®„áõìiGŒÉÐ)ÒÃÿåóÐÕ¼%[E M£œWVÅ)ºÙ90Ÿ'øú4è{…<ž™{ïAÃ"j¾R+¼R­ÉZ-"$¡K–c'tDæê¼ÄV¯©œ!Lñ7…¾5[¬¼û´¡ô•37kåëtk7VÔk=œï³ð´a¥å¢3Þ…ïTN¸›È=ºjžg¢ÿí*³‹q[fXMû §vNkQ°ô9#\Î šÞ&µ)N7ÿ%{·ñâ=«>GÙ“yßKÞ_AºŒŠ÷SÄþú壒··£rªis›Œ¥$è”f]® "Åæå}]ÅÅ£Ša'ÿ¸!ŽÛ%gíC‰àDåB|v 5y+è,J*V`$UL«¬ŠG…ÛŒˆêÂ+²dû$ ?ßWõònCL55ü#åJ&«Òuy\ÜdÙ¥ò]7²<#JHY! -7}× L+t]Ä~Âø(qUücö|ÙÝìïKuäêj'Ñ0ÍiVÇ2=ÿ-;ù‹9cüûS31ÀÅzÆ•º»^Bâ+á©×ÑIH´Û:ÈG4mÛ £fŸŽh»@oÛ¹‚§BŒô”–xÙ´DÓ·¾^M¦Šf./¢o`Ãçé(¹Ö%(=¯?”¬¿Äë®­Êg@ AÇÍ>NõÌ`CóLöâè6Òq»Œ$]Ì!Ïÿá‚DcÇ[^L{ë·¸Wjo$!¶A|F™¶ÇpËæÚ\HÂı%¶ëÆüß(í­Õrþlßj›O‘ó9ùú(!§ËSÞì;é]¯J¦à pLÃñt²00œgu27 ÜÐ?PÊBÃ3Àïje¡é–‡PËN´’j,±WÏ!ð5äa_¶—àí¡dôÐ}§º¯WQNRDÖ-_ó(¢õ’ol8i–¦‘À ²yA0¹ît5Ç6ýÝ˦Qš¥"¶ƒ€D¸k¨ö;HÑ"ã{N6N¡oòiYÎW>R¶Ó&)|â4_£j\¸èCÁ¿½;lKö¨†¿]é9=\Ñ!ßߌYHËæG¢½"„÷½nÆÉŠ.U8Ñ~\ ÝÐYH7¡Œhõ„*$à¢Û” Ó·Ysá§Äs™âÈ÷ߪÆb଀–ôbß}ŽSÔµmÑ•W èzÏw#Âw:Š–_ÀÖ¡!ÿ˜æ\mFÕ8èÍ£écÅ’kƒËÛM¼R’ÑšëÅFÙª9OùÈ¢’«Ž­Qï&–.ß_øšL—ó]ƒk%¬él†.ìåŸ`Ç~–è#3Ôö&ÔÏëi[j"Ñ_m?-GtÔµ5aØ•Øá7Ð>¬Y,š°íQØEìzbc2FïF?r›vÝÎëz ÃGïç}Î&ÕúÍ’5˱“<]QœÈRgˆO²Š ÎyD*ng"ôä> ©á÷A2Ü Á%5ä¶)ÅTjö1ølÅ>”†Ý‡­qŠm$;’}RÙ»Z€ê"ai#Ž™Ôø¦Àß4oÙM†`×$Çp4HÙC”¯ŠŸ‹Î¥hS<–cÚ@ù ¥™º0ÑuYÄ¢ûéU< W_o‚ F.¶CùëBõVM JWÚ7jöQ4L:/ð'ù“,Fbe5û+ 󨊢BX¦{PŽq+Iñ{’É9Æë m[Ë©ŠCeíxù¾èì»åg/èÜ=×>a9 «É}ö*ÿè\ÅS›N8=#ð>¤ùâx\LS¼:q½æ+°ç+ÆÕÒnn?Ò;JÑðO‘ ôÔ­òHþ_k–ËñÃUß¶›ÿ7Lß ‘È2UE¨âÓ×\°»÷›¢^N£¾·ñ8£žB¯¸ÄæRh” ÿµMo•–yé©X 2Z.º„_ jßÎc‹ª·ùÓš!'új‹n3­¶¤ I/¤ƒ(¢F+„Lrº®f©û.Z“s~rÎßsž›—5~ÝŽÓxü¾H9güÂIba/-üºOû³á’EÈ#ÇAô 5ƒ&#ý@0*Q¾ºk 1•´h=¢•|ËŸå·þ27q·ZÃZÑ'êâìÛß~ýÉ´æ¨G=¼uíEÏŸin”¥ÕßÈ7¯­Á#SóI¶ŒY:œ?UÀŠH³T-0@ý¬\ج=6ºŒîŒw&V_’­ æˆí2#ŸÓÆQ€ø^®§<t†,¥ŠfëO¤¬¬;‘ x÷ëÇޝ~â2â"e½X°ÕÊ=^)Æcïp'Y¶&\;/äø†M¸U…~§/N²"KìÓý^ÿþ£Z–¿ðcš+䨶ÚðoˆläSS³úL¼,l—æ’U\U]”ª*[–¶ Rj½ÎžDàT¬eÙ{FrÐ ówKõµE ØCü•²ÂžÄIµV§ºî~gfbªßEÃ5 qÑ<‚TÓ•5ç­‘ƒ¼L•\c«Ä¤Ý«’j ]e >Éãb…™xá–…”¥`)EP5úûœË¥’% ±µ•r"½Z&‡àd·H±yI âšZ+¬u ä`bÔ UªüÀ¶KÕôɽ%$3ØvqÕ^5;íN.™óÂBåä*Aòe¬ššþNüa~ä¿ï2ÌÍ»oó»‹Vò“ ¯)?¨`ů[Q ˜º7zïà8N,Ã!nâŒ:flØQÌ·?¤,¶]zIJ]4¥Ã‡\Ž"<æ÷Í»i”vHfM­L9K;×$QQW³§¢ÞÌäZ¸Ýº?+Mz½‚C«›€qÄÅ`9¡ß+û |ß³»Í‚ƒÐqTÍ‚ae½?\‚Ý6¸ pC%ÍÒÏiõô"f`¥¤•è•¶ëC÷å}Ëš.ëå•´6=ËHÈ «µPýO¸dŽ*á‚Ü>Ôtrï*»ª· ÏÝÑøªr«¦özœè¼¢Ÿ>þß”ÔÊN-ž_wÊÏå9ú¿åä™Ñ2aÆg}…À]‹ýl´å:*ʘáòK³s½À\­1¾˜›]gßw<|9ô7œËј›\Q|ß®»Lâ0=c o³¤/}ܤÓ­-”sIY$igeMéSzÆKÉL_2à§Œ‹)ãbʸxeçKrÐQÆJpШֿžâ{t&­ˆþ¥ÿ–‹€o=ÂëÛØ›~Ñúšl×Ùï”'fxsϽcªc9–M='IXš‘®é‹AâÙ±cùfd⓾ãfÌKætÚ*’/¹f>T}ð¾·ê>`çÝáÛr%¿yÓ{ð ÁÎSW,{ê\ u™æ‹Y¯ñê›WÑxÕò Ã빇Lßr¼çSL;0|£çrŒÐ¶Œ®{Èñ=ßRx‡äRßû$º]Dåß_}çUþG¶Ió+é»:NßS‚wUü’;Šg¬Õêt¬F­Â$Ú.‹iæÃÙëÁΰ ¼ŸÊÙó§ È&¸@8Øzç%ëDᎌÏk)ï¹upg·yÙš˜}‚öÕF£o3°|M1Þd-pÚ¨)ZàH’¾†Ë',_.T…‹,—š–gß;2‚$q‰ë‡®¹AlG±¯þŸr•gÏÚˆø±§?Ó {ö噞ítÌ˳<¯ÛGø¹àq»o?p¬a\UÈØ7¬㬓¢ŒŠü~rΞ“<Nå3OÎ)Â9E8¯8‰ iŒFÔ âã{ø˜Nü TÓŠ“}Ãá®ÑCVW‡ºHÐ(.ècFVHÿ¶}’Ø,ð‰çÛÌ´-j1‰b7v]Ïq¢Ø(£ì‡‚Ö¼‘Z?DXƈ"ÁFÄÕØ]¨hFòxƵñ5X½˜Ð›{–­¯Ÿ¹MË1-X·Ê¼°Ëqôݠc¬¹¾a»]ÖcL0‡/Õ)–sáXŽé™†çŒæt&òÜa™r±ÊîÊ%S5ðÛ“o`Ãi ||m’¬@[síEø^= |"w®ygn¢!%¶FŠ’Çå7i‘N¶ÙTa;UØÆS…íí„T§ÊÞ!Øo F÷vjl¹"déê¶Ì*ÝU|•qÞV%\±4‡SÎ¥©ÜEÁÞ¥(§¨ãyIèúV옄x$¦‘ãÛ~’Øžo—9–EÃÀ¡¿Ûjö£ ïCýþ #¹`éC"IU3 ü{W¶Ü¸­mßû+ô×ݘHç­3ÜS¹•tRIå$÷É‚ Í6%*"ÕNçë@ŠI h6R•8í8‚öÚk¯5©u7ÜÒ-´ \10,1e£ºS·s?m‹tèßMÛRÊX @ €¡š_#1Õz·«/Õo¯Ç\ñágcu›ZS”á‘úíY»v§z«Ã¥;­!àKs}†Ùg˜}†Ùg˜}†yoË“f˜Ý–®ëÈJ»+Uû<¶C íóØëß÷È«ˆñ‚aë^‹Îc$¿áêQèʆ8 `"B‹T¬a4 F? ÀKo{Ú€§ ™=m`+Þþ÷·ßÞëýºÕœAûÒ ×*-—¶öÜ…+á.ܺlt_”œçÙü1µ¤ß1 *Ö¡†×%JbDŒbB‚0"Brˆ(rÈulôS-€öòòý†­ß–U3t}s&rÃá8Çp+Èr(ºìÈ ¤œ·-¹"¤ ?ÌoX¿vhys|†Fæ/"7Ù›‹PØÙ‚ÚÇ䫹 ɠЦã"ý"J·g{;¶Ïúrq®1}ƒIø4ÿ«‡|šß§ù}šß§ù“æÁ‚ùZIkHâú˜gòŸ¾`@Ít07]:Oè#É ¥SPDzüëÏɃÈçzœ{úÄéè×ÄØÂfÖ¸È%õïW–.wétAÕEiý@E‘¢˜’€r#h¬bIÈ0´†hÌ÷è‹ÙZ ÿ°S—«á–¹à×b³ÅaWšc´àã¾4c©á[´õ@é2€²!!ýä³5¨ßž>£ž,Åý@ŸÆÐ0²(42ý1§a¸¦™6:GÍÝtGÕ¹Å";ï·„mœ’ÃàÊK°ç\e>zL *ïÝLÇ)Õ9w²é26ÑîðjÜæ³ÓdŒG»ïìhóÝrÔWŸwouìP^7uzEW†¾„‰× "·$3 @D8I ¢€@)à Žå4F‚<À,¢ŒbûÆ›yMöF!c̼0Ù†0ìF!F¾]V¯Áyû‡c͘¼éÄóÛz…A7ãèy8ÚzYEÇ7÷zƒ‘—O›x´çA¿´7èòäà×/lvþÊÚ&:¸˜k2ŠˆX%L B¬T,”1¤HáPÒ8q@G±y«:ØoùsaÏìÝjÝJÛ:¨2ZÔ¥µÕÁ£êàU0ö¬"rLÄ»å,MRŽ¥3½ÅO®I¿lTè¸ø(ë8‹WúÛí*\D1ĸ]†‹×G:~U^ÊÝQzÃŽÊÎïjÿ˜Î>ü¡¢«jEþ½ª€ ñv ëˆìINïe¥¾50㚆fDšùòùcZ”¹)[¶i\¯ÿ6 ëÒ²åcYíãmZ/z¾Èl “u빞RÌ0ŸI;A󸺚¯÷z 2+VµvõÒîE”/˹þ¦-Û/Ô4/•šÉ<ÖÃÚ²Sñ¨²LNãy¶|0tvR3˜mïcÕZïÔ}”çOzx²Fý¾qZýÑÓ~4êž«Ž÷öçjzèåg¸CÖ–N¦2K ÃÁ­ÛP´êf¾ƒ§²,¬ßñ YÝÖº—UR·¹´6Õqøi-0+ø_]ý8¶~öÒÒ_1p“ØYaóÒ’óÜ«‚äÎÅ·8‘BšX¾úÏsU}Ô¡Å€:ƒBÂ9·Yzÿ±<8ê¢Ý° yŽ º~¶VnpKðkƒé »í6ž åØöÔ}›ËúC²a7é¦ó¼Hÿ¶mÿ˜ÏrÛ:Ÿ=@4‚fåÖÚéÑxˆßëtN¸PÊ×›šÁP²”ÖóZ±ë,Û‡ë댘9¥Áܺ-Ûm›åm¨Ý&ÓpE.-ÑBÌ ^u×ø/‚Hû£V5á2‰ãˆÀ0R Š \D˜F2‘ Ãq¢@Ùyµ4Y…?š˜ 4Ÿé×tÖ™~ˆ©lþª¨ _ÄîÚ™w×gá2&éû ´ßm7‚@Àq}F`§!l™ü°+Dߌ¶[K‰¸³ÑôÝ?šÉþÅÆ.­‡v HÙHbÚW¼EB8¸ÈÙ ™Ã gwÞ:ȹZ%ÿSÏ™*þNÍMˆ>“é^$ ƒÚnÌ;Ë^ÂD¼™2SóáWf1fúƒqõmŸàÂKüSñµxXŠE¼SA|,Üqui(B©"Âq¤‚0bc¬—®¨ùU%Ù‹ˆ›»l–œMÖ÷8‰…Òèåk|ÿˆï'?”¦ôu¦T¬âjÍ_7éWÈJ1›Dj³O·B-ÌS<§z °,'z}˜äÆ—ºZú›½Ä»2ŸÔg5×PTëCíW§õ5NçK½T]sMíÀ~À¶ØìaH÷î'($4ìʨQtdÍ!%a8àq¾ß$nó…´×Å7@n/̼2;†QÜ‘÷ã±´ŠúÚpë¥nOÝø}ðžØI:æÍo!|æÑµ?FëWå, 4F—ê¬êJýäÊøž.,[ÙÁ¤MMýÕˆ©˜_çÎTå f¸Ö˜îÏpõ™wœb…S©R~Øq!‡à¬Ö®ò²Š/ä.V_Tv<{7© U’@¬A ’0I¨&æOj¬­Nv=H0 FŠøv^ä¹UTšç±ï¼ƒûÛúiƹw„ÕÍ¿¤s­Asðé 毲9Â`Ó¿‹¬´m+ÊraÕVs•e¶‡-Ó$±jkò¾V ÒD×îR³BX5”ËyawÄ/â1½3°„(ï¦ß}úMoqç¹! Ù>CZ±m›Æ3Û¦Ñ?ÈzTL3»¶Ë¹Þ—˜—R%zîªEs KQ.Ò‡Ôê艘ZµÓQߣ˜ÙãŸõÚùýŸ¿Zµ}a™ó„D5†×ij%Góh '‹zQ‡^nIJ̧¹¼° ÈS¼3U~&8"uœ¡æŒr,ã8&,P(DŒ¡0L•´:²üÁ”îéýœóL|m4T^lè§ô?µPËúø…þðMׯÄ éú ®8”°À³ûÆ ñì€1Ý¥— §€‚Ž/9GÖv5 =z}è5ˆŒÍ†›r¸Ø,NŽºË¹éí§h §_E•“ÊÌ[¹«§¤·C“SE§ÒÆ[~dÞòÃ[~lºxË7””’Owzu™Uþõ5eÞÁÞ$ZwÐuHÆ™ëˆ<£J§2é­{¨ÌÔsQ.“9Ÿl”“ʺþÆ¡O&þùêúš[æîãoÝE‘¿|üé¾'·kÙ-*ì2y݈á‹wn±î¶Ñ>~%n/j¦ƒN ñ N6ÔB–ÙåYÕc¾‹€cÊ8€CI,bIÉ¢KÊ‘Š ‘Ø«€uYG¯y9lóCÙí¼álØ÷+WÈÞ*¡âî4ó°óÇTŠÌæÝë &ð0à=j‚At÷‰Ɩá.AaŽ'¤]sƒõÃt ì¦MN¨>ˆ·FN 1òl ªxneì5A,ã4Õýij´³~ÁN|Uò}x<+ çÝ˸ÝûºÂßiË?Õïëoç=õ˜Pá³ûnÿs¡¦‘r~S§ÂdŠêM”SßñÍ,/Óäk ĺw.3gLed µÈ‹BŽ)«Žî€c_Á¥ër––¥19l¤\z=›%ªŒôê¥'8×Þc77’νÔßsµH;F8ƒ¬£âª:||Vâˈ/k½n{G¯+u+÷IŸôðI}]®:é!ô¾^³\î©Ýëã¿}¼ïùU'Z®>Yr®DDÛïÛoï± x¼Õ—¸Üa#ùæp±í··ž/-Q2>0¿ÃwN´LGÏkY3—mvGßìô»úµâÙ¸N¿|ú7D÷J#¹¼Šý]&¡sæ’òùBÌò‘ÝÖò’N³ûÍæ¯ö¹uúØk±¦É ¾½•­g±¦‰%ˆ c¢ÅH‰ I.H8œGŠ`“—x€^]}kÛ@ôVŠ]Çø‡2±Á£nB‰AHÚö¡ ã¡:×JÁ­;’oؾæÆC)Y`·4Òæ žÛ¢9û¸âÐW3¾žEmGÝÅ<Å4Oãb×W,hpuï:­p*Ba  c¬—5…CÆ(Ž! BŒ‘Š3eä«îc¬Ã3}}"›ü²¹1»µ¬ÕwýPjá¯F€nÅzPFL¬áM\Ÿºèá…ˆ@df¤öBD@ØÞ…(ÄaØ­” ak! I ØXë´Kõkýœ«©Þ™¡ÓLµ¯vQúǼ>·%©¿j ?Ñ ÍÈŠ"ÛúmÝsžNkú…m—Ö’vÎþ*¦ar÷”¤³£ÊA:F¡’Ë$ !†”°JdÈ‚H4!¡€¡4CÔÚôRoí+çËßuœ™–_­Ý.«ž]§ËB™Û¯&ÜX¿&ÃÉOWÑCG\Íl;"À°_«Ê‚÷NÀ À®›eÈk—ªŠt¼pxîTªšÁ×ÞßÞ\­jÇ˲uËjÔULËáIØÌ®$.à±ñqy‘:ïZ¯j:^Ìjî* P½Ø¢§Zxª…§ZxªÅµÐœJ´|-äerûÅÙU&÷Ý+Ç¥†}‘ßð|†ój[5JpQ­8Ïæéìxuyn@Ä UBB„#ýß@F<Æ!¨#h"#¦\€ -þt m-)ëeVv“–yRAä†a Æ·$µ­1¼%ÏKŨgÁ6ÆM-B*L\{äµnǸÛF)ôgûÏÆ õž¬€CڙǬъÕË\ÃórÓÞÞæ´=f.ž%u…4Hf$öá”ÛAPœà'ÔÃìpÅ8\  DÃȰÇ/ìa 7´Â¤pÀ&œ {$€pÃà{”Á+pÆNæhï¾>e§²§w¶…?ùº½¡ºƒMº‹oùH·pèXöê†* ·î‹ 9Á.¨ƒMÛ Ü $HŒ‡"FanЃ-zp] Á:`¿¬<÷Æmû2ÀA"EÄ A\Ÿhæ”>òh–·¡v›´ÁÓ;Ë`§ãè5šÐH2¦P"å‚BFÕ?¥ŠY¨D™]&£É üÑÜÜÄÄùL¿šã›˜N±Û£àÝõ•Αu¼/ë‚AûÝö’Œvu]`¼m@b¬}ˆ}Ê.ûÆiÛLóÕk¼D ñhæõks Õßc'FµO^Tªâ°Ø‹%\֯㿼Cé¨ûÉV²ÚÝ›Á°|ÞO µZÀÿSOí*þNÍ 0“é^¼ ¿Hfæ&!ÃÓns.²˜õér pA¨y0ÒŸa!cˆBCcÀ”%Üjíÿ¤ÊBй^ª›š¬€ÆüeËû`Ý™¿ÕgÛ@“ÿÏ—ïõè6ô5Q¦&ÿ'¾ˆßª“­Œ‰Ò›VypÔ{cºèò¶Î"8@Nû‚fðzÑ·Kq‚#½ƒ¶^b¸GÚ€˜rjÐÂûæX9jÃy,¬Sçý‹=wªó ëssoVϧú|ªoWkŸê«R}¶÷uã9Á3¥Ñ8ë‹“¤+W>ÝÖ žï‰r¡úß;}–‡>C’óÒ%''J­Ùæ¾|RÈ'….‘ÊÍ[Vå ‚ö–´lÔgÞqŠ:¸ÒJ¦ Ôï’Ú>þÎãô²FëÀFŠÙ@‚©iú%UÏê‚Y¦ÔÄ(Úmz=ZÔÍ÷Z†S,F¡Â*†bÏ’ ÄÂÈ$ÀA”0ï{½xå¾×ˆ: Ä’–ÞCß÷:$”›ÜU[ó#!¯„@6¢AˆÒˆ^é“v>‹¶•³»Dé-º_ë%I|ÑóiLNvûkÈ_ OºËþúDûÑÓÛ6ÖÖ—dÁµü«/Dšk›T[4ï{S[téZRÛtè;QÛôi ¨2t\å,Û[ÃRc|mOé#þv8H[ ÉnôNì¼Ý6ÑÇ€¶L¡-“ÖÕBæ½ =8íÁé-=8}RpÚsnY%;5Þø*{\ûVpíAÏÛ–Ín^âÉJ~n Û¶ßÅŸªÀÄu÷뼟=aÉ5¨›,KÙ6P¾š´ÅÎŽV/bWG›9vwG«ýZÄ·¶œ—_CgŸ³²Ï];_–ÜUå@k”KÉ~ÅRˆ˜GX± Æ’ÀHBÐ@ª£ÈDÆX ì %«|ÆêŽ&ßW –SBÃäôÍU+®«þ¿ZèKùîY‡÷“æM U^qêàèr^„´gk†)@mÆ+ÁŒ±6gö –WgôÝ® —{Îàú¤»(Ã#i¯Y»´½óFßÛ°PûÃÀ;œy¹ zшç¯ܳ [N¦Í}&ýÇÕò: «)_œÁ鉘> _ÿ¾§pÑ|¤SôˆÛ­{Aõe5½c5Eñ¼Ó¸ü,å°Xp ˆG\$$V@@&8$I(¸(ŒãB»rXOÿbî'_Ä“oM,ãÞ·h=MoY­õÿôß“ùê<7âsŠ—šVÈv‹Z)@[ì±Ãf`SÔÚ¾¢õbvåü%¢ÜúBÊ|i#s×}å>”÷¡¼·Úò‘¹Ì}d¾·åI]³NC0÷±²¯vôAöуìM¤zÁˆÙ°(Ë…ÕÁkú¤mÓ¿JbÛ´L“ĶíßEVZµ]ÎþIç6¢Š@huHÃbµj¨W¡…Šï¦zºKg‰ÄSyV_×ÐÁËEúZ5²{Ps½›ûª–Šú:ºü¬gçïÿüÕêðjfP`»w¦C»/ñ‹xLïôÖc.Ê»éwŸ~ûUóÜŒv§‰—óÁ{Ôcã³ùâíy\8çZ¨Œ‡ç`1 d@™dŒcAèí\Â@‡R/籂€…¡Ïs\•‘QÜïÔ»+ÄXk¯„A5•qWšÃ³ÏŸê€#•|ªÃ§:|ªÃ§:ö·ô©Ÿê𩎽-}ªÃ§:|ªã–RÕÖïb´@(C Nc&*‰!f„#Ò@JÀÖYU®Ã©çó£¥:ÚÉ„¾5Ö»V¶cò:¬±Ü0A¸K$ m® at(ÛÐõ¿ð$ÁKÕÿÐYz"çæ‚öVá÷<œÓ‡¬ÞD½8½%ÆùBu;3úWП|ï`~m½žËt™¿Š¢Du*íîÓßm}Çaªƒ8jNw¿ôÖÓëéCrÓÿeïêš[·Íô½§W餲‰o ;ÓÉ©O›Í&›f&i&»7mÆ’¨©ããüúHÊ&%K(Y’}pÓæÈxAñ>Ïûy{«KÇZÓv “œ*Ƴ»|êd½{©‚õÆÁó¼rºƒû,Ÿ*7ëa.ÇÅ­ÓÐ~Ž´ãqd‹>ÎäÌœ'®O݀ǷÌÏÏVê2Øz"ê6Š|}?­î›wš­»?¹Ú¿~hÏüêgd£Œ2%S„¥Ö0L¸²Á0Iš2™QÈÝêPf§™û“ãè§çsCÓÙ§E‰²y1‰³†àµQ;:2r˸ŸóƒÎÛq²­qû8CÃZ6{›âˆô²yA ‡”±àxG«¸ÖÛ´qÿÕŒìîy÷¾§Û¢(õ~®§+xPM1ª›Ž²7–~êê&•ãta^Lm~Þ÷Ñ“´š}eæe9-|¥Ê»âaÁç)ZÍeyç,¤§F?i{—NNºïúeªñò|PªñÜZw «>¾3§ÁÇ||ÁÇ||;ƾbÕÚ×ðÛ9û×j=í¸¡FǹøÔÊÇ©j]Ž‹v®µã‡™ZãÎéZËgH ÂhªW†ég‰V„eDÁ$N¨–©Ô’ä^)óŸæi" ¢Wù8¯]©þ÷µd?²´ÔöñkНÌKJ _±9>Ò ¬µÏ†ß¡†Â>å‡Ñ¥üp×îðíÆ{Ãþ±v†ü“ÙdWõŽ[Ô;®ÎKÛÍ÷ÏÊYÆ)Û£Á–}‘6Æ5Æ´6'É~±À=CUÌ@VY dõ}WÅ •-CeË·Æšßz$jCgO…êêM÷#ÙÝéÄŒ©„:¥m¥f$"¥á,ã1) Un‰œÁ¾Ó %V=wzLâÁZs§ÇŒôãN´xŠ8¢Ü‘[;yƒßÛöw¨ÿaßá9»ÒÑ@Ê\éÁ•Ì_ˆ9#X'‚u"X'`~ñà ?øÅH|ûµ´i!§*¿Ä‘±€g6­TjÎUªšKsŽ •YB3÷òKß/³Cž hþ5ú»åDÝ2—û%šúÚ©h™OÓñB5ä¸q›Ÿ eNµVZ]TET¯r1«ù»Ùío(wôF _:ÔrZuµo­å„€‘èY88î8B¸kNØZßßÇ¡“Ÿ à0öxI÷ëi^?ûó[<¶ß|yõM×}÷|í}©5õr„ÏœÞPüêå A’R ˜àBa$Ë2L†ˆÐJ&FÙhþÎRÊAÏß9h€úå ÄnTŠ˜†­E¼£H±èõrÇñÎ*‡Ív¿j?ˆnIèæ/ï½*tjþ¨çùt€no(¢½)˜í00­Ì¾B¹Pya”£YðqÞðWþŠâ$¯×j€Ÿh[¥ÊO¨¥÷^BÓ²TÞ÷÷Và#tW59¯ûËþ->?z_¬µ_øˆü^z_å÷ROí¿~­r9ËdžŠ{ÉZ÷JµÈ2è/YTyöØÆý…«ñÄ[è9úÃGj^”åÒ®å-ØZŸ}Ä*ý¹²e ÿ—±˜æU¥6Âel]%Fy™ÎWzj×dqï+6»+¦­EÇ[J¶úÀÂ9öáÙúæ!Ô´!þ/Sí,«CMƒ‚‹k˜‹Ëãµ®„îzI^8…:î2/©oýO®¾ÍKpéIóZºÔ<„Zßš‡ÄÒÉæ#ÒzÛ|D:n7±'ÿ›ÐÒç#óì‘ó’j\s>"3oµÞuÖùˆ-½v2Ò ÿFÓù»2‡ }{}}cô„‡lžùîåßgº>©Ïþêú]_¡ âZÇ¡?Ãàý2Êû(”`8¶Ÿø~Ó“=¾iÛ„È÷ó²2³¢Ì?{ CôÓ[½/õ,ôÓßxãñ5÷ Jô2:A¯ÍWÚFUÅÒq®ë^'l7ˆ`˜T'fa|7taß |4û A^+ð á!ö”øà!ó‡—Àûq%ínP5Ø£ä$¡ŠH&S @±ÐHaý­ eÓ ¥ =ª^¡„k=ªî&®õ¨âÈöíõ¨B1¡½Uœ³¶[ïÍæ6UþNœ7àʹ<“Ú †C‹¬÷¨r=JC³ª`š<¦i2ƒ1Oh`+W•¯‡ÊÇ1僤ÝPîÞ'w§“Ÿ¯ÉÇÅäáYòr(¹û‘ÜÝG~^#g‘»È•Ùx3 !®‡ð,ww“ós.ù¸‡Ü½B®,Ðüy¹F|<"^¬n8‡ä¸ðóWìm9t\ Ïå¸rÜRgP:jÚNt>58-ŧ¯}ªâR4‰ä’f Ic˜e’j"Ô”QÇ,•8eÒ‰ÏZbX³WË?Ìf+ÄÑõ-Ô„U>×â¸èøCΰDô 2Qká”ÛÊDAlÆô2ñ¸W3s&vxz˜C¨†Q2ÄÖÀxº¡ ®t)èN°œä‹¥lõЯÍq«ÕG=³Pušæ©ò¤nÇ‹Öl,wïŸ ¿:z°?Û¥7Zµ}7?ʲ‚#£À&zôã×gašz’‚N] ûÒ;«·ú¥7W}aöæP[ÜÞêrÇ35¡ÖF›)v†Öp6žÝåS—¡÷ËŠ”NƒæyåtMƒ9—*¯íV.C­±+)Š{kîK×ãÈ֙ə9O\%¦ål¼¸uY¾f|>çö´Ëpy—Áù4+Œþ6Ú|}?­î›“tXiŸü„ÉG ƒ'ÒB0$D&1ç±âR&ˆ44LìS¡u(ÝöŒ£¢ä±W`µŒdù|Í7 kV·e"1‚ÁŠç`Áx;›7‹è¿Ïs"RoG†T¤SY€@:D«›L~ÊSÇæ‘ˆd^øÍ²Œ…GöRÿô>uQW/°Ž|ð¾ iI›¼?!-)¤%…´¤wœ–t” #ÿÐÂa¥W†$†¼Ýœ oçœrpŽ_Ü£gï8!É–ši …0 C©dŠÅ$NT è -R©l÷šñíCEÿ¨ËMyl[ãÃ<\-hËzØÿjŠz˜™GGË5‹J]½mJíWÜŽúœCL èú£ EÜ­4û {0ÐêS¹¦8Yu£âói^á›þÛôcËkö×/ÙKøw¨E8yàä“N¾Mh¿Æ&éüžº~°MàXÕwC©’`°8WƒÅû+4²®t•^•eC¼®fÅCm20Û­é"¸ÑBôaªæú!úÖÐV=¯MD²þåò¶þå›|jVñÒ¬§556¥|ýg‘Þ›«ÚáfRûßß”‹ioصü}QF?ãñDçíԳ忾¹-¦yj¸ˆÒ¯f†ª?ËÆa^𭾜êj»AŠ(Z1HQkqÚdBØ|={å”ws{BñŽûÅ6·;ª?É‘ý/í¯oÏöô±þ¢JÛ“T–FøÙžÖVé†'!†V`©ïfÝJ´ù\=„•ÈìµRÏ?< Ö|ã…k"¬ÅíuÓ²ÃçØª<Ë|¦^Æ>œ~ô;0dÕœH—P’³ÎnDDœRä|³(‚e[”¦òùŸþV#{0½ˆc_Ù@˜ÒMÀ`sz%æÐÞ”Wf5ª=“‹qµe´eó—êªE´‡=_ùªºË§†ðª›ú·Æ½mÎ%¢ß2GwÈM·Œ¬¯8O_¸æYWêÔ€¨ jAÊÓ$K`BbE…æ4Qæ§Œ+À5rk–¨A çB ¸X£Å›©¡,îQFã^åFn«þ89ª×`ï[uM{ÐûÕ-Î… @AaA8MI+ü hRHÁ™£À£„á”s¦cšÆZ!I „8%)D˜Ç<•BÐÀ#xSŒÀÓYàœö˹ŽbÒ­æ;Ê©˜ov´8÷ÝÒÞ‚UȾå“^Ô°à>,è:}h~S_B*5*¦£t®eÀ¾®;¦…ý?7õ/½Ë:&q·X×î x̉NÍí'„i‰41Á†‘' ªŒ!£DŒ~qÒÿ#þŽ¢öx¬ë=ÕXŸåæ‘ÿ5µ'¯ÝÞΪ$zÈÿsÕŸ«Ž×/¦+“n>\ÿ+ŸçÑÏ‹ô®˜èq}þ^6ÿú¦Þöé‡?ý¶pÄ™èp4æ‚‚Í&.èŸoXĨ/(ŒwDç7ûêê¥m8j÷ÑÈì ËfÜSo:~üè<Ž@»]ο»¼šh_kÈÎ%—ieôsuW“'ûÌ 96êºV9©œÉ$ç•mCUdÑv5]ÕþÍ6Òï½ ×W½Œ~íß›¹+Xÿ1ú—Ùœ ¬h´F4ÑrZ^ØÍ<öºóÅ4š,ÆUnèl£„§ió`«ò¥-Þcø¦ÙÜãÇ ÛG<*Í_Ø2ÒPŦQCdHê\wŠeÚ \«%ÌC›ßÕÜ(õ©­ø#/š;]^¶a¨ãºÀùkÞðØöÔ5dÕÜŠY¤‰U'–[_G~úîÂÚ|òšv/ûFüffŸÉ¹\yqÉ¢ŠÊ»b1VQb—Àrãâ®»¡Ì•Ž #;_}Ûmû£ç¥¹•šƒŒŠ^ù"NX½ófT#{T¼É¦c›6uÖXrõTBëêºn}rýõׯ•w¹\ÃÎê¾A€Ð0øÖ{©ë(l³Z8k/¾é²;M÷¶u{çÛÇ~ÖS§qï ½?|3{4Gûô„h(b¨4i²˜0ÊŒž(KÄ•šÿq³}€N88ˆbˆûæøPkÓ6ÇÇØÌêqš#'`œsÂ8Óý0Î¤ð©¼Øß o Í_¿8ùʪ<·€—dØ O…- õP)†«GØxDÉÔç·g–©AÝeÕ&‡#wÉ/ Áº'zîc £<Á8¡2Á3§bƒ[Hiआc#ê+ek&ã]gv`ýQs(C_¡#zHÚÐ'ß;<³ žÍÏö 3hc»Ž~Ö•#•Û†¢E^ºÆúd/ç:?‘[—ÄèvðÕÿéÉÂ_âjÚQwÌÂ~QôJ.ª¢†g»“­Û ¶å[/¯±zi“HÆÛ{Ú5¶þtž˜Ç–ÁË}3®¼Û•{½ã¡:9Ú/<És¢öVCÂbL(å”ÄH§b-cÉOck1Æ X«I°š«ÉÞÎ>ìãìæ3Œ뇫qNÍ×ÚWãfØ®˜|›?¾™õQ“!ž>¿´rIÌÿ´*ãd]x"ïNñç ÷séaè‚'‡™3µ˜í4^ÜêªÒŸ«]£jbâtUG£‰Oп=ŽKívy£AGmÃ#' [2AËYš¡ðù®š˜÷X©]K_ÝT‘º¹4iV9ÏÖæ¼É£eIK‰P’ë$¡(æî¡ÊTF‰f še™„(à´€ÓNÛ§­z·¶ã4Ùªs‹ ÚÏšDt;Bëe­åL†˜¬“§LâACÊä;së¼®¥óLlOG5"¦0\J’‰SB Iæ€gîãS5ÔÙødD€µ3õCveýÄÑ.ÛSÙLs6˜RHñ^˜Æ1&6„él³ô…07¦3 :ç¬âåb‡D içt. ^Šò rŽò‹öää ääùãðãçs”‘n0k OÝ ¡;!tçõWoµ_ºkw°Ò~–Soͳ}Ñ „#ëÉ/N:¨wk­m½æ`4/ºÞéW³ñâ¶±Ïa;jw™»zÒ›E~cÕÁ×ô4³ï•1½¶°›š”½xœB‘ÞZ¿ãÈ~/cít³¶QÙK%îÌ]¢]>ÈÞãn˜ìòÀ½í=>qãøMÓ›Ò«@_èÛë볺¯Xcb²Çš–•J¿þÚ÷Š]©ëß~ûð÷ïn€OY“®|}Û¿ývãõ:7Lp <ÖyÓ£NÄãlf'ÀŸG±ˆ³ƒ¼îžÀ}/ã1§‰LA†œpœ¦"Ñ2ÀR%5W$Îxªà xI Èàíæú®^c€ú©ABλí¿)ıSÅæíÈÍ× ô¶À®‚à .>û2Ð=-Ì è6 ÛSÇ£)¸ôÕ‚>Ÿï pì'ä±Î®±™ÿWØÁƒóp¨¼FÞ{¡â†ÛA5žÍ«Z탅‘$Š€˜%ÿÏÞµ5·+é÷ù¬Úª­dkdã~™‡­“cgvR¹Œ+ÎÌÉ>Mèp-‰:¤d;óë·ʶ$Û"([±”ða2²Ô ‚@£ûëF£!¸ãØYƒµÅØfŽk›+©(UHÓ¼þ>&ø+Ñ,¬×V3’zùî! ex K¿-¹ ƒü´@a ø~‘0ÈkU}Ý=0,d†{0üp#=ÞM0ÜãÚ×ö¸v=®­§€¼ÎêKs樓ÑeZá=aÍßwJ¯TƤ'i¾0$Ò)ÓÖr”1†1Ésfâb»§áuNáu’ÁÀ§ŽOƒÍOÞœÔ.4°óÏ“Éi9œyô höɔ㘶C†`H9üé§ÿò™u’–Ó/ üÒ$"‚ŠJ^¼}÷æä´iãeÈͺþM$/>¼þôöõÿÎô< 憵o¯M†Î'wÍ[õ©ˆoÞ¾¾À¡ÿ‰$/>þz”0ŠÄKàüš¸+Ÿ]xæ|K`¢§eV6m}xý¯_’_g>«qê³Ù¤žM&e5õxüÍÉ…hºLgcx¼ôc—ùW ÜÇ_Ar °×@•k½‰ I¦¹!šM¬Ïy ¹¦M×ÞÿþOøzè»Ã8ç/}c¿‚E^x@Çf“ÐÞÄUEi‹ìº¹™OMЉïZ s•oâÕlZÂò:ä® Íxvë†î:oµyŸI8©>÷FrXƒ—ß}wªqßV3ï =~}úsòÊÿs FýçäÓe™õ—Ÿ=¼þç°¼ôb̪¯Ax¸¾ú4øäú«Fç¢0ÉÇ'žÆLêÙÐÜô, uº$俆Y£šÉ—M«ÌSo}ǯ'8y_Z—…bÉ Ì^øádÝÁ/¡ÿŸ_ýñé·Fú~nÎx'ùlÆ×„Ä\èÆ´œ„qñÍ‚³Úö#af Xcè¹~©c@ËɉƒöŽÝt>K/ŽOŽNB¿¥—¶©9wàïùü[hÔ‚Ð ý›5òSÏ'i¡ÝùÀ‡Ïé$óÓ–û}rpåU'(Ž H@Žÿÿ¸qÈn¦ÓÀäæf6œÂ«óA]œv¡•ÄÎ*ߘäzêß«¾]Ðsó­~tÓªp¦ÊBá-À…VxÌÑBƒÝŵ÷®¨aÂôú†ûôéÄwùÝñ«“ Ð~b–“_§¿ýAÞ¥æü4Ïjït…e™¼øýèô†ôèWß(á½<ðͽš»Ä~é7TMFçÇwÉßÔ?ߌ„ïÀ|æƒ ”—°gÃEÙ÷¹Ý7C ®L™ #ÖîÈÙÂwîèU3æÞ}»‡±™33…±Kg@¾4{/± ‡^ü>iÄ.ñƒ½ƒ!ùxú f¸¸ðòóÛê’À: ³ªzêûVÆõ‰É2¯süó©Ý¾¤ôíÑiòßj¢0×ß‚¼úz³ '¹ BâûcÝõBcXøtrßþå°¿7:sAŠ®C%ƳÊL¾¸0W·ÚÐÛ… Îì~55jj ½‡ïü¨„¬ñz+iÚ———·p 5[[`L•ZŠ“¤À^?'!Tp®–*ïøÔlñëmå*)"UŸo;;øcà‘G×ÂÏÏ"™·P\€>üЕ<tW-$g£IT ¾3€y Mt…c@Kõ`˜­¸¢Ò~=­™ÄÕ|ZÇ—ÜÇ-„Ï‘b#”4‚6VÊ!p42i¸9|Ä*®œÊD¾ß>ÇRþ:$ðÇBË0 3ož‚‚]sÔh_ îb0¡T‘e{ĘdÑ1í+Þ¶'±,Ëö¢IÚ³–ç²Iÿ½Ö ?&„¯ÞððÐò¤Þ †?¬„ž"þD–”PÙ7±[FJ³4×ÂW‘e9Ë¡¹Ñ2g)#K’ ¹ßv«•õ±²>VÖÇÊúXY+ûace\qîk2-V6Rp²tAšTRD]¿q?´î“gvLÒlCÏdÀ©-[è|¿…&@‚@jm1¼Ê9?>I`›ÊñÀ鹋¬#º0þ&dIud²›0å02ƒI•wç<Mº3}™¬;—%vçYÞ DØ–£î|FðF\¤;××Î\1 ·Ôß:ÂéjŸU.–¬Š·Ô‘Ô]")Áâ g±ð‰{M}ú8z[äyú† V[Êc_qþ Ã=á…ì¶Õœ®Lß׌ÿÊ¿ÇVtŸvšÅUž˜iœèˆbôC@¨˜Èðæ¸ù³<'Ó/¾`|¤1\¤Þø1¦à^Fµ8`Y$Šâ/wZ¼ÝÅväóúýnðÓ¦ë¡FðW@|Óì=ü»LaˆÜ´ÂÜç4íÞÃIùà¥Ü_;ý!âCc|`$²hý Ó<ÙFL°TÃŽeVO6xÐ<ÂÔ dïþÇ,ÕöÔëÈBk-ú"ø¯r¼Ú¼’ÿíRl)ãJï¯ëÛB}þ{ȾåF”­R;81!zù¨£ˆ œŠM~ ÿB7J¦c…lÕR¥:7¹É¤%ŽJ©,ÁÆà ™¥Ö ·3u\Ôóð¨M>ºÉ06­ß8ÈΓc猱{QÇ0VMù[»ÐhuÛhµ¡ÑƒäÍ4UUVž#üôSóSRúMžßgáKÅšqSÄu¢Þ¡žl1>÷QÚbš˜úšÔÙŸ*S؇öCgBÈɇO›Çû gí¦aGc6I²á¬žÂt­IÇ8ùR ‹É†§¨ÇÐ_ÏuÒ|wP5ßýä+-– À¾3ðf¯‡C"ok_¸ë¯V˜¶<õ26J"µ6Å‚"´XSd%£aŠ–Ã¦SÁ¯,¦˜¶XÙ䣘«ëlpw­ìï¡Ì·aw4&bzV–µK79š0 ÚSÅ”šmxóz2ï†oîÑ€-qˆ¹ˆjrK§%çèñÏF¹;{ì`Z7ö›N¸ô´£Kßì£ß¼llL'"VÕÇe¾Y\¦™ÄóIüåbÀÇË»¢‹¹0ÌJ!pš„ÚÖBt»i–C4K±c<ÕÝÎÔnÉ+ò;Íó¼õ[-u1cûby1ür­ ^Þ}æ=ïHŒÏYz"”h7à!e$S)&’çH8"´‘SJ•cšY„z”Ø£Ä.(QÍWQ"£l J¤œ-Wk&Š#µ¸·_S¼.&îÙf{gœè8Ù€(P{€ØÄmÄŒNYNXn±R©}ªv×ãÈ•‡RÞVû¥ˆO¯Ü#ÚŸrËl¦qÆT.-¦(5ÒZlˆ5HX”alI*A:zp؃Ãí‚C†ôÊ¡0%„KàP¶†—Á!¬²>'0Tlû;¶ A~ Pè_´„{ a×€6n4ÓÄ’j£ªíè}T›Š"Å2¡ATkÛ–¤³ã@пënƒÀGþ :k#¸6ÖjË•áÎpE2L$€¿Üîü‚´%8sq×»÷p¯‡{·pu{ váºÐe¸§Y†{­Å{}Ešûa˞ລÓ5G@ùÓ5¿½ÚÈ[c-Ux‘ÄwðÛ7-AV&ªfË\ñ7ïIûuÔF09C7ðITs½÷7bèžG<ÿ)ý¶°F—;:Ÿj×Kçà‚JαuNû@†Ð)ÊÀäaƒ8ü# U:ïs£zK×ÍÒ1BV,¡?hé´Rt%5JB«ÔÃK¥¾Ö\QÙØ×‹Jãc'ÝFtƒŠ;Ö±nôÑ>º±n["Œåœ[¾€N ¡OÝpŠ(£¤b2O3ÄÚ¶ÏúèÆS`ÁÉ$ó˜ïùÓä‰4Úb­5’2W\°<åM9b‰ì·Dv$í¡`·™&¯5cË1À’ˆ.nqÁÐJ‡,ù°ÈúùÀ‚j‡R ‚Tüh°yÕî1 S¸½¡ Y‘›Ì*IHNÒ§iUÙÔ:3ž ÃÙóÜøæm÷ZyGb„„¤(3:W©Õ<ËX†3!°UFXD%Ø8†I†{`ØÃ-Çùò­î ‰7âD“õÀp5F–Z%|&dˆv2JdâÇ@†Í«öÈp‘a˜Âµç&qF¨ä† &|ÏãzÍÛî6†{ä¶X3Ô¹Ôª çHì4À4®RêsÖ-'&ð¢Võ`­kÁîÖ0Ê£•bÚŸ€[ØÑ%T³–cŒ‹hípì,{\ÓŽìäb"ܤÁšµÁƒÐ鬄oʶ\&OúDÛ*ÛËÒ¤J¯v­bêDúü=!ø‹-gz[óå ÁÀ¦lPô€oÌK7ç<`ónΩ"9·Ž’ï­g÷ÅÄô”‡¾L¤×ô05”^†þœ1i®U6¯Z­á °¡¥ÞJ€¿óö:| „~êÊÁJ`¨> ¸m°†!ÔÅ[ÿB7$ã·Ñ+¶Ž¨Êîöfüއf7ò>²4³±q$V‚*†”ÎpØúƒŠb,-Ž»0½÷>zïcØ2I—ÏÉ‚³ÂÑ’÷8‹/¢r ¤÷ìHì·>:±¿ƒÐÞïèýŽÞïØG¿£3ÿ6$ü`wôþJï¯ì¬¿Ò¤ã·Å~×Yn¦‚`FòLh”gŠøì'’J‘™©ÜöõÂ{'fë• YÞB!Z ¬OûR*AÂ*ë‹ýôÅ~n¥áÇHsñ/Ú'¹ì£¿q¨lܺm2 F»SÊÚÒ”£Ú¤Ú¤†ë4Ín;b·u€]=*mÆ¿ëþ%Ít;·Y „ÔbÁs”aËSGR”f#b=Žq®±ÄLcÝýîu<÷&;]C9Æ+1kÌ(×K×Ã(¬c¾Ý–ý:áö¸ˆõ.wÄ£GÜ Ó®¢ì×ßšú;’}àºK¸þ¡×?núÁ³—ß<M5A)¶àÚ¦”Z 1Ò2WDXF‘&O‰c*ï]“Þ5Ùr$š¨•;‰4t©©·½\½“hÍÁË>½Eÿíd,º?tÙÇ£÷Àˆ=t))ΈLóTâèÞß´û‡.Û®”|†Òt‡b‰¹È¥¦ 3‰òTçÄñ,§Ì9šŒËeÖ¸Àm·t†Æ«¥3(¥x¹t†&Ëë¶Ü*¹w§4÷­xÆÂÕã;…ãú›%{,·_X®íHjS †ÚæBQ¡ŒyªvsŠ´âÆ ËUŠ[o¬Üy”¸ë7K‚RÉŠq^>êb!¬®ÇV.©ÅV8˜je#Ô"jŒLMSm•¢€™HZs‡lôñ¸ÉÐ|M£•œNÍt¶Ïxì.¯ÊQrèß7~÷Ÿÿž•™æ£Ôü•øA…YNÎBÛuR—Gêæ±~Ô›gyž÷“¡Ê¦%ôÖsMª&Ûc¿1òáפ™m2áñž ìÙØš þžM'³é5ì|æ= » 3NÞ›!(†qÀlõÅèçåߣâê ó°¶Œ‡O×ò@ ÿ.<åp2K'®Ù>„n´à7L•ÔKø )†„|¿1¢õòõ‚Sº˜ $-y þ ë™`5Ò»gÍÚûr\€€cƒÒÆ…‚Œl÷ ¬È…UÆÙ¬ª]uÏÓÄç¿g:ŽNýÚXsLý 7Êd6ÇÐÉY†µ¤YJIÊœ†0Σý{u¼§ê˜ ¦VÔ1}ü :¦’¯dj)Ì–¼iEkq¦}žÖ]u¼_©Z©ãÍ3´´^qž™Â|3çyRÿr8««à5 kX&-Úûºû÷‹PaOè ï³›v3ÊWµ™È]ÏÞÙ(g—òwæxÅ3¶¥Ùu5õ„m|KŸå´u_¸ÉMYZàä¯Üˆç œYKV—ÙùlÕó庬Ã]ñY.¯)îá‚â4O3-d0ÌÚ”™³Œpƒ%3ÑÛ"=ðÚSàÕÕ¦T¬”uJK¾¼$¢J­^! å.”ØÏŒ“oá o wÑ ‹Iö¸«Ç]=îZOÝã®»d»»º¤§lŒ¼ˆLW™&R£<¥šëT#œŽ\ž¥œ£,¥¶G^ß;ò"HßA^Ь y ªzyIªõâ„ä¬-ÿwž?rNìk¦H7ôõ&+ÓbGÀ—Ð=øúþÀ×þÕxÞùúЋ¸«Ãð^ãªîÝg¤‡d›C²+0³ƒ+Œþ 2(ÌÚž?ÉÛd2Œdx¦EÒ!-lžæÛœç”8A¨NÑç:ÓyÊânoù|ð{u–œ†×JNßÄ𢾶ü‰?[nÀìœtO“[È„õSrWÎAÛçÓrÒžK8-gÄr®ùÃÕ|V¶^%aÆÆrÒ`&)—-õæ æ9€ ‚lp>c|øþͧg6ï@™ªpu ®ùbF#W‰®ÀfuÄnGë çˆoXzá¶_ö¼EñÞ3éwq΃êà)€ÎM ‘i•DrÃr5…Á‹K<¹á;óÙ̺óØQ6éÎÿëÌ㮦ݙ6èÛdÔ§òYÈUg¾7G¯;óœ¾ïÞ½ n´,ÌwZd»:O½ÂïÌ—ƒsã¬{7/6 iøcZ »±Æ{{èQ‰£†—öUг(rè»­âäùlXLÿîözrìsÏŸ!—»Lërè¦Z¼¦é;m< <·Uá-¬7”å€ðŠž¦Su°pÁ@{7ÔfXp‹°SÌŠœr–ßÄ'b–)C5æ¬Lï•4/Y?¨ßÓàNátµ‚Ó¥Ò‹;¶Ë8ƒ˵$G„¶{$œ–}ßU ~W¢ê…aï»zã—Õ‡Ÿ…γäþ·ŸçMaûÒøÝŽÜSœg£ ›w3ýe«‹ƒºlQ¿¦:$¬§‘„Ó"špTÔY41Œ’­0‰£Ï¾H„eÝÕÕU ]1©#]TÕ¬þË 'þØo,y—¦Á6ÎÆ&‚ükU\ŵlAÓ~#ÍS€=q¤g®´.’Lc¤„˜¨HJÉP$¥Â±”£zÛQ€ÜÃHÒ‹ìK;•w‚ £Ÿ/ÞEîk¿ñ]è@Q˜îÔ ¾cüIxÁ:-ãÑ™‰'üb"ˆ;õbìÊ‘9+"UÕØ]NÊ*RDƱ p¹äªèÅá); Cƪw¡íÖ<½Âƒ•8òšÆÒ]ÕY¤ªÍ…‰¦-†°Q ]¨tTvx·"Ò á¬Nãh§64Ó|Â0Š ‹]S:ÓÊ©coé;IМí/ nZ¹—y6{\ân¨èÅZÅiíÆgq¤,RQ^¸:r†/bELF$áèÒÄîEYÚ²Œ£½:‹Ä§@x5‰#ý{©×x]k#æËžùSD̸@Ó®gfâÒ,w(3ÓV#ÏÔV e»¿g Ê}¾gÏ·[ža‚r›ra­Í¨´VY©„¥VKKs£´âZÓ”F…áþüpt½±íëN…Ýîä_ÅØ–—óÇØ¨Ü«ñ*gRß6ügQMgf˜|˜Ìòë~J\½€.¼Ü¥H¢]vÔ1“L åûª‘LóÅ2¡ð '(®ÎÔ’˜=j3}7²7‹Ñíâî:Cš-™“øLe“@£ñQcì§·Ew~þ„W‰Aé’Ô<×n¼ß«¾ìSdoSÞ5Kñ³™ufñ¹™ÜÕÿ³wuMrÛVö9ý+Xû8eI&’ª­8’­¸V±½ë¬£7H€3\u“nöôŒÙ¾ï[€ìn~Ìôð‚=ìRe)š¹AÄ=÷âÜÒcž²m–ßÇÌú2‹ÍÆú*u¦-ì\“HŸ$4YÝ,­w 4jä¼ÚZZ\q—ï`ÛÑ}~í øŸ¥º¨06}\Ø^eqÂ<[f×ú+ýºZzü‰fðšü–$~}­ÿ¶í¦ÆÙöó7+Àãú-» ÂŽmŽ$*xýtãÚ_™HªñI¢Gã½&‚I,ˆÀ‹Ó$Rا~Ê”ÇIŸ3Ì3&°#`í„à‡M/ž”#Ô«–@Möðñ”Šü0êåû˜2‚¢vr±þ”Ü5*AÇ·ò–jA瘢ˆ•XÄÅ\LÊ Y€G:@ý~]̯à¸dˆCÔY€p³Õ‹úûÆE™Š4Ù%p;Œ@–2†õP®2ºdTvå¢ Sà=W —[˜m³6Ösd—å%$¼e6\À[Z&™ùölWJÏ6Ø€®‘ë¦a¶—B°A­M·fF?Y^gèÕ…>ý«j?l½—k{D×É<[šY0ë4ˆ—K )›²OAdcغ\ €åb½ÄCc¶Òˆú†`cÎBxËœ1`Ë)Ì€-÷s³Ÿ–&ÓÛÑ:9Úˇ¦Ó®?«›¸«ªtªE?vÁË,_n†$ßï x`ö¡I˜Õó+À‰¡ÔÞ~ ¦þòw áž…³¡Ë­Ií¾¹C|©MjÃŽ‚(Nh«ËŠ "KhG_^püeUˆ¥V4ë(Jò,wL,œ²ѸÕL‘‹kàzä±%g ðR’äÓØtcûÕû·o?aÐ(¶AƒßPØP"Úš°†tca¿Xt¨m0?=‚ÈôÅÆeëpÝpŠûÁý—úH)°íß v"ˈ¦û9ó[e®…Ô[þøþ ×Ñ7¹ÞðfǪBøø¡ßW„î½&ÉU9`¡×I!eµgY®½¬åæ†Î0ÎÄÒ0Ä»°—«´“e¡ÿ6Ûf9@­å¢òTs ï"ü²EžV¨B?)‚44ÿ7ba‰¤R>Á #ÄI ‡)ŽqŒßíÂA{ð{Œ¡<$݃?4 #µEôhĨ?tðÇÌŒAÊϽtÎoªåþxàŸz È‘}Žì;O²ÏU <'^pî*Þiï8JÇQ:ŽÒq”Ž£AIŒR_%Ü‚øA¤T"Ib ‘2§`4œ»Fk×ñè+™Óè}£sÖQ0 ³#2ï”0:/ÓJÃ(ÏÔ\oদ`±Î"cO]:£Û§`䌜‚ÑÑ9ጎ.ŽÎašþF} F»/¬2­g¬lnêšKsNb²”ù b’2Åi‚ãØGz÷aÚœ+kÎX̽õí­½¯ô—òú•÷Q-/oVúï\­Ký×Uÿñ´­»°»Ø¤võ¾M¹sÂPD1¾%LPÒÖ=2?B µÛŨ£œ õ½Ëó ó-§C"9¹–¼ó-o9·„»”6ž¤…iå7Ú¸‹`/ÑÂ9´ó Ï<‘éÜkÈN¨ ì£UuÅK]D[ÏîBý@çþíñÅ»¯ò䙊Æ>Q!ŠP€PE‘¤‚'\ÅQ˜„q"©$)ÆäõýúãÛ}vžÅ:eÏûg¦·í[¯Þ¢C½oó>Ò[7 ÿš­Êöö~Tå¶X}ö̾hSfù…÷•#Ý;ý$kÏ«U}Uÿl`Uþø½ž¸,z 0íLç¢9m¤‹æ¼.çu9¯ëˆ­óºŽaœ×5ðÉûQ•Sñì¾M½}z® V¨÷ÛBÄ(‘‘„aBcìǘ«@I&…”"Å© "ëM{˜iRK_’éÞ¢!÷£ ã±0ÆPÀÚ’Lú'AÔir¡¨çöUBýèN.È^÷ëb>'ŠK†8PO' Ž`¶zMÿÁx S‘Æ »n‡ÈRưÊU²S×¹£Ê®\d ¼çJíèr ³möYÃÆzì²¼„hq˜ ð––If>} Û•Ò³ 6 ëDäºi˜í¥lPkSà­™Ñ@–WÀzu!€OÿªÚÛAïåZÀÑu2Ï–ól]Â¬Ó ^.¦nÊ>‘5F`ër%–‹õ ˜‘‚‚9 á-sÆ€-o¤0¶Ü? ö´Œ–ތևᠽ|hæëú³º‰ ±’¯íú±NÈòåò騳ÜÙŸ¹ƒY=†ð‰UZA~xû¦øåïPï1L±5Š•Ý7wºdç|_ËŠÊ!KhG'ÍsŽ’É9wr´ ¡gƧîIŒhÜj¦ÈÅ5ðŽREÍ_$ɧ5°éÆö«÷oß~ Qlƒ,ßqÔÁQÛ¸lÆg[ú/µ„Å åʈ¦û)ów,³Õ¿ýû7ªL¾YRoùµ£+¤u¾©eņR†~_ѹ÷š$WCùLz4‡!Ìžd¹Nô²–›:Ã8KÃìÀ^®ÐN–Åp昶Øfy–§Å€áE™XdyIôÌW<ñ1JB‰€@óˆû\rÁ¹ ±*C—82ÔFmBmæ>!]Ñ@âû! Û¡6ý“È÷êwCm½ì@Û@Û9§N1àF|6¶ô‰KC‘¾ ¶Î%ºäÀóã¿&Df¹äÀÉ/.9pà“}fÉCõG*+ZVpLRFFiìK?£,Ž|(äÓ0á8&I,hÔ/¾¸ ŽQ¿‚c„ïIÄâ÷*8$à¤SÁÑq>ïë#©Eøeè#šcNÓ¬â…ã\™©âÕZjÊ9‚‡ºŽ`Ä¡À£¢UéÑÕ­–j?Zê"p@S Œé•…´ÄºØ¡P$ת Å´KGB1í’PL»B$Ó* †45#Á¦x$Òª" Æ´ÊI‚1u]I q·NI\§Ò¤°]rÒ¶¯= EÞU„Œ=9³@Œ»T¯ä$Ö®= FY¯Í¹íË»²o×§#Û…*í@#/Ø+] ÅjXÂíb–`T»ª%´/oi¸Uç޵ýÂu*_BA­˜`Ⱦ&`½HܪŽi7mﬗ9|bÆ F^²SSŒjׄbš*›`DSn ±žmMN0¢]‰ j—ä„‚šÚœˆC‘N0ÆátùâG/ÐðÿNÆüÎ0Ä.1õœåŸÏ¯˜æQEå'ÖJEà§Š¨)” LP€ ÁaŠ) C.HJ†œ òC¦Ôp½-‚ò{tt@ {‚ÊúGÑ  rGq눞²¥òÖ¹RÑTÜ ´;r"í•]BÎKMÈq‚Ê.{Çeï3wÙ;.{çаTž¼ òqѱ§©ÕÊÄE)Oh…Š#ê' ŽIˆDŠ0á\ÆT{†Nv¬í¸õóˆî­´Šý˜u·@{mŒ²¶ãf~úã*­º«Ïï¶…,§ºm£ÄÇÀm2 êó Gf©uÉløÕ€J©ÌRK–Ù*í2 @-bfØ©™ÙÔa´©Fßl\±G T­xfØKŸÙz´½ÿF ͦPã^ÍÓœµ·íuÒ¬1¶ã°WN³ÉÀ±}cöZj6ʲXßx-³fU0³Ñ+°í…׬0d¦‘b³„í5Ùl`;q6pBTG¥ ž·Ñ–k³@µtÛ¬PÌöZ]%7ëH´“ts’n.D?BÒÍb©Úi»ÙTAš*õ{Ù·iV¶S£~a?;8ˆõ͸¼8’Z Ï£°}_¯Íîr;á6+ÿÐ.Q¦ÇýsǬ¦w °ñ°l¯²8á%ê°þ6šõ|¼°éæ(ß®E°ÃÙÞÜX—¥¥µfûÍ 0Åp†S_sêkN}ín§¾vFêkæZ,—s½˜ý«D§É¯ùoX³[é(¦qäÓTú‰J•±@8JS©ýJ’4ŒQ0ùµŸß}ïýW•8c¤Ð>è/·ùýkï?Kìýs%–Kxpñçzh¼lí #¹öÙ+Ò*¶x½”©g.t•©­6êJÍ‹¥’^|ã½S+õÙû±(òx³ºÐÙûùÍòÒ¹ôÞ¯¼Þ¾ñþq©Í<¡ÿ+·…4±.òu¥ëf.dºn.òÆû>[™üÓ²˜í¨œêº«Ã ¦›<©SX³òƦ§z|Wº+óÝ­—…—˜¯˜¶øMÍL÷ÂÍõNRy*Õ×+u )4ÞË7‹Xß‘¾Q=Tó¬Ž!®½,OŠ•^#D©Ì̪H ÝX¬UuoÛKݤ§Ó=PÉfeú“­×eÆOfë¤Ð¿Tò•'æsÓÆZÍ:—P×Ée[ŠR?çuÕ¨^¼=½bx¹Ú𙥇I­ßx?ä^¹YåUS3Ýt¹ÊâMÝÊb³.aÓÂUµ°›¹ëÝs\¹9«Ÿ¥nýî²´ò2[¿2f+UÏ€yQ ÜÔÖC¼¼ï®Tîeél¹Ÿ0y5MÖ—ú·^©V ý“² zêÛºQ¥îXa®.ÿÚ<É+ÝÚa8gÕÕ•·-Vs=^—zf¥›ùüæ•g†Ð«‚Êu÷;¸ÍôÀ Y,Ë}GÞxߦ¥y"󹯿óýG¤GEɵ¹Ûnmß}ýÏXÏÈÏ3ý8ó7³Ù/滬;Ò¬^5jäBwÊLÚ­XIsç9d&¶î«(=YÌôM{iVêŽê±­‡è¢óêqÔ³Ýûë~™ÖÙ…~¶Õ£‘jY]GwUßú—ªí¬žØÙn†¬6yõk¡›ÕãWÇWuƒ_WÕ[ÎEiTý`½*[À<Ë™ž2…y{”Ði?QÌ;(b½U«»PuN£þVlͼ~åݾùÙJéö3gWåá>ê6ïv^l=q%²yÕ¬Šu©/eJ¯ÌKý0ò 5ÓÛ<µÊ½ÿγko—Mà)½áÓ\Ý‹Ÿô“[o’Kýžˆ…ãÖšW³íe¦©÷žWªN€0ûƹZ˜N-ÌeV sŸub€¹ù¢ºún®VõYõüöÔë…¬_m¥gÖÆ,9ë²(ô¿ÅîÑ·»IÜêP"t—÷}ÙsÏÞevqéýkS/Qè]³zéF~QÕ\®’$¼üôî§j Ô/›~«gºëzxóܼÕÚ°Ö³q6ûvSê7ký§ÙëÝÿªe¼·îþ~^þYšåI‹B?€õ=æ¿¿(ÿ\YÿÇJ_ ¹÷·ÿûß‹µÉ>¨ŸW—ÑN‰¹ª*ßèÿ àQ²Gö¯¨] #œ†Ú_Û^I@iØI 9Ú"4‘ù@Æ%£ÙÝ+¼®>÷ÚóÆgª£ùa¿Š@RFb±YÙæ‹ì«¨È ðqy"ÍûGª÷nÃtË¡ `²jk»èƇ^5LJ+¿ÿÎâvw¼Ã¯õ–AÉwÕ—H£q l§øfm¶ÿs¹‹n="èeuž0Å”~Þ|~'ûÑ‹k@S¸÷ß*ع‰u)“¯¿6Ý2þêíÇßþõ‡O°Áo«Çöñã'Ø€sË¢¾cáþpt%›ÀÙÔÖº_9Ƨ¦''xÌRÉUÊI©Hb•`D#2BŸÆEq@d¬ÀÄBãwï¼ë)P †KÐŽ²vÏוçÓ&ÌËm‘syà¶j¶yi|·‘œBÅG4¤‚7ŽT˜õH¯K*¼dfw² ž«0kX…­àÁi…Ù~ÞÞÁ*xVÁû¡üƒöÿDZ‘ k=.•—Xñ 0.é1z¡r—«ñÑ·¯Ré­³rSÝžnuG=ì}Ó™õàÝ¢jâCOšzتŠ}¨» $ö]y3k‘º¡Š0|Ã-âýàõ臭aD6s3 ?«óÐ"%î#!f;B­ó?œÀBÌö,„w q‹‚ðúÄïv ÄÌ8Ù#ˆj*ìo×¼ÇñKFÌ:d„7ŽŒ˜µÈo<1kȈWœø]Œ˜Èï2bÖž##n“ …]2"䤣gÛ«ìA8õ{‡Y|G~Øâ#ÐP]ÝI–þN£åkÛeÙÓz™zjJâ]ýÑ7oWÃK|ó¶þÎýõY1È't¤nçYžLRÜÛʲVý¯Ö¬]×Aù9PÛÚ]Y?óñøˆ :ˆÝ6>bqbݯñþ!a$Ã\1£Q€…bŒSš† ÇRqʤþQl«\ôón¬ÞÉÆ,êÕçë]Evn‡9î¬=DÓç»]ÄûCÐ3ñvxzfžöºáé¬êµqål”Ÿèõ£Ô3«(ußMtQj¥vQê3‹RsÖó qÀ ¦-·#D†J¥ôãÔzkñqêgpÏ;FýŸèw]´õÿŽ·1UïÏy^çêyµæÚ¹ø]G~Ÿ&2‡i BN• ±ä‰O©OSš¤Lø(ÐÿŒUàÇ(…iƺ”ß—ï{¹”_—òëœ)çL}‰Î”e” #Ÿ¡Ž3…&¢ÖJù µ;faë&ýޝ¹´ßQi¿l2i¿6êY.ÿ÷žK¸üß ×]é%÷>ÜB+…whŸ÷ûxR í<`ŹVªî8T+3x¾ üòu ^bÂðS„ƒ# .¥’ –˜SI)â)çqä'4¥<ˆ¥ÿÄÜ¥ »ta—.ìÒ…]º°KvéÂúEË|‡œwÓ…ÛóËýdá3Š ¿°TaFOc5\ª°KžÃÄ—!uΡssèœCç:çÐ9‡Î! ûQnÊ‚{Ï’’ |çД³¾Ç7´¬d}Þ®áR,ÅuAëÇr£À9‡Î9tΡsOÈg~×Ĩþ‚IDHÂãÄ¥ Vqœ¤)ÇiŠD²Ðé»df—Ìì’™]2³KfvnÐÍØ™c -/"£WÜøxúË‹’™{.^7“y¤ƒwFiÌòê´;ŽNôêœ~±Ë_>C?o‚úÅ·Š:Éc'y<)&âü2˜ñó©ö™Â&]%V%T’8”þàbJ¥üö®­ÉmK?~…j_²[c¹q¿¤R©LeRY×$)ïØÙõ>¹@lk¬–:ewö×/@JݤZ])5Òç|ß9ç;FgFIˆí>m”ñˆ‡D<$â!‰x¸8â!²ŠšINh0ˆ!N1®qîgn[T©ž•RãKÕ)¾ìj$0Û‹zØ—wˆ­›l ‰zHÌAG™ƒU>¯Ìª™}F)¤zëfžEy1 ÑEÚw{Üú ­Ôv ÅJS\zu÷îÄÈ£-ð¬†÷ÇÃ’BT¡Ö1ÑȽ0לàêÚgK !ƒµ”Ì)êÉ!`œs(EˆYÍ´ÊÉ)”Å 5R¨Qx=ùú¼’òB=“è™DÏ$z&Ñ3KÏÄÖ†cAI3ýŸ`H1ª±3îßê:ª4¼tRsë314Hî)înß²CH`Ø·±iR‚H¢yö¤yÞüøS`Á?N¦%ãABÿ<}ogEðàw£À±ï~ <µ†ŽtÞøl2 Lù`ŠÐ…ݦ±³À—À‡aèªÃ±ª;z¼î-i¦‰j*ß#pé+HD2£À+ór2–Æ·°dÁ@°á 5s…ó—” \{Z^”4u¬¤)riYS¥uVíG¨¸"S å9È™4Šb!|ö9’¹X#b‰Ð{È{t«KbIì#‰}$±$ö‘Ä>ºÍö!Ik¶´à˜×•>˜¬æœ†R}‡R‚<ÝwMjat5Èoo泩¿Ï+÷ÚyóqŒÞy…?¤^²•šl]åé2\=ýv\ w&Xuë~?[úƒA ÚLúäILN3ÉÆZQˆ2«$”2SJ°WúÃÏî×.aª”ÿòRþCÊHù)ÿᘈˆAaSýJŽ@ A`,&*†ËÅC—žþ€öLð·ooÈà‰L€(·MJ€H —£q¢XvX¨q‡xi’cà/'X~k> ¸=®v3>Þ²y3Éý3Üùó‘™1Éþeu1#8MÀŸ‰3Y¡ë–ã+9ÙˆII=¥‰ o Ó™Ë#v(d4;Ÿ‚Š`T űΓFJi£ Lf<—€:žÌÁ>;ï«38Ç4Z%éªláKN¤«²£T’cÙ0á$d‹jœq/¶¿êK`TÙ˜g ¯Yá;ï}_¦¨y–ßM.½ÙïnÊÏ· Þ9·(dÜ8Ÿ´*&*û2ìSq7 wï]‚€agPL ûP4ÇuŠŒ:AK!¦¥A9±C’YÊ•5(-…É0– c€°¥'&*1Q‰‰JLTb¢•˜¨ã´ âBrÜd¢(á²ÁDQ@ å›m¢¡.§ÉìžT—ZaÀQb¡^ ÕѤ¢sËcÍ]ü®¹®ì˜G¶ç’i·ó2¹Ú¸Ð;Ô+8QBó kQ©µóJM† # Le€°T—hžT—JãRi\*K|M _Üél6n‚’qDê¥q’Ã6eà•¦Ñ«•q©mt}ÖÑKãÜK¥q§&~Ri\b±Â¦‹ÇJUn©ÊíT¬\*ŒK…q]+Œ«Yò3QU\äN 4yÆ0‚k¨PH’áÜb‚‘ûcê*ž¸©ÄM%n*qS‰›ò/ñÄM-Œ`“›Øý}¥«8äÁFWq(X£4®•ž:3u!ýÄ;ÅJq±kÛ;ŠNÄ‹tu,ê&ÓÅKIº‹ßJ]§J.2K*5$?]CòP9*€œäyޱÆ6€[ÎŒ–0ƒ–›‰,©y"v±“ˆDì$b';aÄÄ„Ë&±C8âÍ~äÇf­¶#OYGõY'èG.÷Ë:JýÈSÎÑå²E©ù(õ#žú‘o™òr’ÏŽ™‚•Z˜§­‹ja¾8àu„žs@Mè*qF”¡‰ sÎp¡Ò8SHX-*ߣÃ^¢ð…—(¼Dá% /QxGáI‚bZêAÈ1ÆMÍq¥„TÔKX´h=9Û³‘’ºbòn‰ñUz­…’ƒrM“ð ‚ê¶ø<0Ýâ »Q(¨åµÇ|ӻС>±"tlhÓíEVAÐØ?ŠÀa8hÜüÞyÇv°xþ©›µLù?_LÑKü@ÄV§Úq?^Þsµä– çaJtÆ€ÉPXÌŠÒÚB$˜È%Í‚Ów=ªeà.eÄÊË~µ½¯j\xmGQb' Ñß HôV€D¿ $^µ"‰ÞZ$ÑB½ B³ýp(Ñ[îâ5H¢_×™ýf“Ìì7Þ Ý)ú1*³½(¸Ñߤ2Û[À¯¶Dýf{ Ù~7fílüͱfŸÁŽþ*ìøËuôvT—-·ÂòtýsܸW&4û*Biö/IhözzCŽ zÖÓ[ÖÁHl‡«½}ŽËíêý÷Êèû§ë ŽÜüXÙù¿þõ²zA‰÷«©îæ·¥ªž»ÏÍ{ýz6‰IXzûçJØþõ'‚v[#ï\A8ÿ¸Qž®i8ž¦_,!+Qª²†ç˜² Ò\J±ò 1LäÈý5É8¦pL ǤpL ǤpÌËEC‘ `frEÆQ DY Ä$ÛŽ‡ `W†ƒô€½îÈ̱’ª±Äû ÃJ9F4)LšŽ)¿újú㞦Ëí“€cÄiÆ·Æ}]nWEc¾ö¹úcÌìQM2fÞŠdÌÔaÈÎöõmhFÆX’çâ‘ñvè…´î`kà*7yŠ‹æÈf"mVVJ‹s3ʱPÂýŠ‚4å4'-‘h‰DK$Z"Ñ^‰™RÀ°É¢!L%!õ¬„„¨%¥y%¯ àB';D5(v Î’Þdb¸ÎÀp¤²;éM^^-yÒ› Ÿ˜ô&7ز¤7¹¡*½j]|."GSÅ!È “H ¦¤T@¦)Ê™‘ʈÙ'9ê}u~ç§sbkLŸSçsŽLèôßþ˜××–lçvz1Å%ÏyŸ^ïÓoò>Ãò¨=ûcz;˜ôû “^7*Lú{Ñ@[ L"h ^yÛ÷¡z5ìÊ*K" KžÑ@©²¤‹¥íb¶šK%k”–HHxK.UÉ5œ‹Ëd+ ¿¸­xóvž¹mæŒg‹/‹Â7ÏpBÈäå üè®W‹ë߸ášõ”h”À);Ð(;(GcD‚eøìƒóKCY“D³„f¹®æ§ɰømììl±ý­[â“êuÿlá5+|ç]“ïË‚DOt»É¥SùÝMùù–aÃ;焌ç“öQÅDe_C†}*îF!ãî½upŤ°EsÜkæÎ«B‚f4³ÚJ„AÕ„åÔäV ÆÂ@žâ³N…¤kesI†$É$’$CrmdQ’!¹²(N†D ŸTïdâ–õF&Lâ–ö´«2$O^ÇeRFW¥A‚(Ù•6jÕ YÔÕÅÓ]‡ ÉÖ²Àí«T¥ !R$þKÂ4ƒ¥,¯€#;.xîZ¯ÈÓ¨›XË„dˆ i­4Ò2ƒ‰FX›[Æ1à·^{>µ‹LqüT—‘ê2R]FªËx±+RÜbASë‘PâÌmeQêåè#ÕMV;F&u“ÆœãC+ö\Ÿþl-#wÐ6I½#×EªüØ­wdĬ5‘Œšµì&5é±­dÔ¬eɈI‹F“3–'c¦ÔZOÆL[ö Œ™óÔŒ2fÖ0ú{êí)cæ=õ©ŒšõÔ°2^ç, >IPgsˉ”b[[_ç¥Þì2bÚ¢ëe”ézåÓå´Ç|7÷SîN÷«Ã8h“9žø˜Lüš}|÷ß¿M¡¤‹ë,ë'Ü®Ö,°F 0,§('il}‘цæÊ â3ßåóQÿ­»`¶è;ÊS:¿Ï<„wÔ3 âÐj^þ1”ßl\´þЃø’mpðû¾ú²j½ŠÏp~wa=àò`§üÆžƒJîÏ3ÏzކwÃ’UXðvúeèÙ.îÜq}L?ÏJFDi÷élèéŠyèùåü°/CU2Õ¢žvjžÃ\¯±<ç›Çóm­;ˆÞpœOÕ¬˜:€èéOºUa=;²å×OçîÇÌO+ ‡Ùò:/¿r ÕðËÜ|Þ:Ìé\ÚQÉŒÊO^ËO~XÄG²áW·ëúÿiݧ‡¥Úã±x…+ ÖÞÏ4ܾ\‘p ’Ò†‚ƒm!ªGí¦qûµgjàž¦×Õ  b ©ü¿U[Ú§ò¿[pÝÇb¶_ÆC0 îŽ6_#˜÷ðûÐÃ`y€-®~.C×ô\hyE‚+pOÒh~ˆCµÃ“óbèË‚ÆßNmèÒf˜ç1K»Ç׿}G;LJ1x†!|¸OC9lÿâŠ_‘Ö¡×ea7‚ïdK±Š¶íawx >&äÊ~Šº¡£¯€ã)O8Sî”Ã.ÌåxÙz}nV¨ÒÃm¡o†ãañÚ4òGÿᆔòsœÇ4¿ß2éqÓ7ç¹u–>áÍûŸ~}ûËßÞÿ´ÊÂ{¼æƒùýêÑD­Pù]³VX;sù¨Úóõ|VL6%þ‡,0™lê6±v®î>Ë8GséøØþó§÷zKÙEÈ ³O“¯£Éí†Jf<äž—§zËÐS"Ú™pž…tù “ ÁÒ\fYf 2Bq ±Xd³œä†cÂ!Øà°Â‰wþLJøê¯Î¯jìqL(FõÅ kðxÔK7÷?© ª»Ì!ÐÉÜaÎRÓÙáZ/Ÿ¦å­’J&Ó¢ Èn'ÎwÿtWeÞøày%7î­î0ÆèÏ 6éî»ËÅ&yñÕãÙùýíT™el}Ùøeº¯nêUø××G#·È¿Ü—5ÒVÅ >#+ÓzƓŚ/j\øâ¥^™û1Våy•%SËw˜neŸÀñï{ûþUßýüóí¯¯úÿû»ûñ»ûõÍ«¾{Žþc ¢ýÙ½‹Ô—Iÿ·¡½³º/ò ö¶úð‡ñâãÆÃËÛsW lµ”¯ÂZºÖR*ÙJž1”qÑ&¤\à \ãò@þÙø§êÒz.¢Þ‹§éhAïÕ«t Š%At7 Z2Æ=këBÎÞ“k×ÒZ¹—^{æ±66ûRrê­‡>ãF‡¬é>[Ó½3ü3Ó>²¼4Q×dh}ÿ§{ÎP¶;ëƒjðùãò‹ãx–6€^ÓÝVøåýã 졹ÇbÕûÚuI‚”»¤c°2EDFýF—·Ù=$e,¬uÆÑáy™hX¹½f8ý·¨œí5°`ýПŽ8¶£MÙÏÞ,=¡Áx2žÌf¯Øaù½vZf.ÐÍ¥3{´8¤‚¥û{}l¬„¡DCá¼ ,s¿QiˆÊ©É á\B0$P&¬”°Òé±ç`+A6c%ÆäM¬$”Ö±C˜"²+¹'ïTrŸ]7RºLfÖ}ËôÏNà%ÌeÂK /%¼”ðÒ ÃK ú$èó¡O\íö®è¡<Ï´Úý¤¹Ê‘¦È(‰Œi‹3MŽ2šÐOB?§G?ËgègK±$eˆ3´)”ÐF¤ˆ&iK¤hQ.¹êÕ_jd ÒCwÒ“™ê"²K(´à …ÏxÂDÁsÁQðŒ'”:%Á¥—..§°.¢iM<èå|Ï Ò±KÃV!Sgj§vzIØÉùGNR`¨©UÈy)J2ʜՇLæ^°8'L ë •ëZ•€SNçL±˜BÔL±ƒˆIŽI½ñ â´uÿuOÞ3Ô´@× ™vH°[5mý[øµ˜ gú³±¾ <.<tÒ+k2Xˆ) Ê¡0—ù”>ëù…«Çëv>ù¥…+{Êp{2e œ‰+ƒ„ÒÅoÞ‰yžxni³º->_?9r\”|zö¹ü§˜ª?ÏU(¥fŠÓL˜ $D •e¼m#Vr(y-ûÇßêW¯‘þ{wN6g/tµèµ²Hø‚±C&ML‰¯Ù1 D[ȧVô´/SÐ,rGA‹ÕÛw‰m7k|/Là´ISÇJgr@]/U-ƒF/Ä,ÛÇþQ îŠkh¦x’(Á÷7“ûâÆ]_\î>÷ËGeÌÇò±ü¸ Ð_Ï6 4çÖü›³r䛨‚ÓäcC%ŠQ#B…Î!0#(CÄ*®aЯo€îå×9Y% \! d ù:Î %Øœš4àpW+‘÷¡®4Ø`ÊNÁp!˜Ì¥ä-Dæì6€©¬{3 @"÷Ç‘ Yÿ¤†,6ÞÉîË|×(ƒ¦K\ÁÓœ£°½4E’K¬S¬÷ ¸PcËPÄ « Ðy ‘&#¹šæBj-³DzŸÔ†EFo1E7låœ4Ho‰xpìv-çB¸'&¾¹ØÇ˜%âûZl^"¾·ŒNÄw"¾ãl†ÿV\q¤´"‚ -ÄÐ 87yîL¼@Jd Ö9ù[g"¿1aŒ5ý- d½¹¬-=ºA}¯u¹~bŸ b”|®äsEû\ïåW÷«"öÉÁŠ˜ôäi]yW¸ä‰Å{b†ãûy1øª´ï˜°_ô†¿–‹+Kãü0‚Òi¥¬âVH¨xf‘¶Æ0 ´–œ)J ß|€°_žTÿÎYÐQg)ϯ_Ö¥Goʸåדq¡œ‹Qz_­_±­ú[_#÷ã';®£ß»ÿÕ?”“—}Ôâ•{¤úšÊ »c¾µÞåkíŒ.Ù3þ‹PºÑswJ6c8A½b BÆZº•1œ•:(7Ù€^n(Çm›ß‹áhX±1ú–«vÏŒK±£cöà¶ÜÀœïXc§ß–eËîŠü“¹í™ÝTÓì¦<ô›òÐ?šé—×mÊO#[EW®Ì:çjÓ[ì®á8c×ôY}JÊâÊ=#?;›@8•Œ;ÜjHÎ4Ç’Jm‰3äÖý 5Å,kmúf¬Gscûå+˳fS5u¯Ÿ_à®ÎdZq ÷ç<¹÷ÝI÷3‹¾8|l} R(ÃÅä0z<€±µÆš^1é›êËûêþÞ½‡Ë÷ÿ¬j‰ºØÞغßÙR ükt…Û@›m)d%–„1hÄ’0!±¤µ›½n.+¢TÛ·7{Û›’“jGκí[:¶ae;–W¨yèHûP„F¥ºœ$%¦»úGk8fF~NÛ“áÞÞ†»øÛ0ÖóéÌÎüDzð—ÚƒÎîßðá¥Öå%zÛ~vUÒM4ó»MÄk£Ü5¿oÓš\Ø»©õrìÃ0à{f¶X™:íŠK;Ú*HY. ×Ú‹š,œ+ ÖP€@c, «»Mñ®CÇ»ÁÏójNÏÚ IVâ] Aшwq&Zúz-2¶x«—šíë‡v4³ãn9ú\ʆÕ9TØËÝóC¾B5R¬Ûü\'ù³ÙE•i£lαÚëP(ê dÆd&•šÅ´Ð8°þ)Qh—mV%€¼™F‚Eœ4:Æp Â{[Y´d\Ïi\åÎV;³h™u:mG;›xµŽXïxµˆ²$Øb¦,™¶˜9Ã3S7–-ÔYÄÕ¹‹½œw{\Î:«ûÖÚám×àÙâæ•„[gZË$æ­›ÌÛfœq’lsÕB"¦¤´JSÃ4ϸ!ÿÏÞ•ö¸m¤éïþ d0«vÝÇ.°ØÄÎ8É`<™ì— XUt4­n :ìöþú­"%5I¬¢Z¥.#G›Í·HÖù¼×ó"Ñšä,wX% £NZFÏ´ŒÈ`uA%j¦Ä¢°ç=kð ¡V#…¬_H½RY—œôI™xe"9é““>9é““>© ]ô5$;ëLÅ(µ9¡H À-§Eužˆdž‘œrÂJi%ý…A>‚`*·rRQ ç»+˜’€2ŠíX5ü&Ào‚ï_»5f¨púiq‚r`V§`Ø]A-.îƒnëPMq@`fn¦ÎÊÉ*S ç&‘ôfÊ1çwžÅêÄ”;5„û’À ÌÀŒRʼn¥JC(¹Ö™D†Ó°%%xÞÌÑ$9àuû“@n󫘟$]¨¶2<¯ÌútTŠgÿLP\ ²u¤¥äÎ×f1ê¥&{É{ï3§ƒ Ê‘±Ô,2leÒRN2NrM0V*«Â‚ÓÒÞÛ<2L F`¡sZeŸÄBÈ÷Ñž µ­#üê‚ÔŽ:Ä{©Æ%O$ éOçø ZtÏAÏà˜ba $#Êb-ÜB7åZàÔýž&‹î5ð+PŒq“cKÄjæ\7Ú-9W»ø³BoNZÖQcN<ƒé€­wæ%íÐÓ¥C±jiF“a9ó†ã‘wagˆ–wp=fˆUëh´Ÿ„Ðfa– 1ÏÄI‚Àà\KL¹û!˃NÂ?þõ]õ„ú‹ÿØoýdžÏÝ3pg¡rÚçâËdvoÍÀmN/-×pÑø?…²:qGälðëãèÉé­÷ö;£|Ü£;ïæÅ.Xª´?ôl2Ÿä‹Á?FnÛü2¿ü¸ðO=.ÜãátÜ̺{ߌüzsWÌl2uK×õìt¬´õšË¦êÂ÷ãѧߨ»ïcñrï•uc?øæû¿üúóû?8’?ØÇÇ¢fÃÄ.Üáà^uuR»×~™ÏÝ’Cù¹Ûj/P†Äµs˜2:0_ç0Ua€Ú´ßÂ|½{• ˉ>ôSüXö>”Wîà¥Ïèêä :£ç‹™úìzù>úŒ®ôkµ/_¢B ¤câÊ·Ÿ¥»gÆ®#uïžøgêókì}ôÍk½ç ŠÜ ލó“æ7=¹ËÁi¡1xÓ…ÛË” lµ˜Gëúx³Åå#ä. —²ñÒ.&îÈ¿fbÊ0J 2C¤ˆÌ¸F\SË!G6Ã,ƒî²63}·þ×ÿ“§ÑÃhñu0_N§“Ù3ÔxÆQ5ôJAUÍL²r]Ìk}¶éÓa¦æ›Ï4ö³;ÚYJn–IÊô“‚Ò*,CBЍ‚«1a³>c3ŽÃfÙb¸Ùº`´Í4I@í2@m3ø¨oÀîl)Ùr>„ÅH‹›—‹Ñ¸}Iœ"Û#iVQc!ê'Ÿ|{|pJw€š1c€–*Ç4—àœ84ª°÷wÉL)A%€ÚjPx÷ËÏÿ“¬z7dÕó&¹|¤Rì¯`9oTðBTPc^Â1-{ÖJ ðÖrÍðÑMÆÙ|årBì£GaÇb„#8 ÷Ì‘„/ƒùëw£ÅÅò¿\”b¨¯DAåf‡b˶~rÿ:);ŸVë§‹è$û—Õ‹N¢%Ðì":^”}Sž6š|i2òQ”8öݦºDÀQ2UÌÝQ¬Ó‚¨cöˆG¯À{L¡_õ0{dÝ;óGãqIh¢Î©6¬G \ÎŽ-r* Í‘‘*±6RhÉ3jÍEÆ…ûÉ„±¿+œ)ìžåU{Üýê5…ý}å›5˜ J‡Ô|0ÉÏñ¦úå7 }`e¼F\8ZU?’ ÊŠþA0Ä¢%U»°_oÖÜZ«7AõWk©F°k@}å¥üÙ©.8F‡ó‘?ábºU‘oþòë‡ßÿli«ÉîºÚPÌ wzÓú+F½8»6·/OQkÞÛ©ßôõh¯²„cùŸæž6elJê½S ݆fùã»ï-Ý %¶ æÕê9³:“#¥Ãszå®éƒÖ¹Ü0»CæÖnm²« î.2 '?¹Â¼SM8¸ÇN«š®–¶ }øÛ^ûåaβ•iF³?ü×[»Ð%æßC ¶ùýÛU€]黉X¥3l¡J ÄT-ŽÌ=ë®v[%s™[-”BpÂ3c¹D"ƒ c›kJeXÁ¯R×”Ÿ4Ê|¦Ï×ä¥ÛÒ½×б®wÖX}]}ÕŽ'¾qªxÙäõkÞ”oiÞ€Vsâ¶4oÜÈeÇ×RÙI@FݾåWSË­ë‘íð›©ù´SºÝ)ÃÅhWvšr„w)w9ˆ–tßL¹ZÏß)•ÍP –ÑV¶äÁªÆìÞ<{{v‡2ÀÚ¹iaauw¬áJ”v;ºVCwäD•’‰ŒC PC˜¨”ÆYŽ­ îŸe*,ð¾T¿|Î~•PéÊMd<<‡ÒF@äV#š(mà¦_¬u,ÜFéÔ€cÙM§N©å7 »Þ^jyÊOYâÅ_O4ÿÏÎ&ûÅÏ4Êl†2Z3ŽfLf„dÊ!t˜“b5W6 hþïêkR¢øíøU(ßò«D‚ 7Š0Œ`•…™¹)Õ’(¾ ®×J‚=‚]+n‡WŸÕï£á—™š¶’Í)aFs=ñ©QÑ’+óCÔ¹n#ÎË€ÎrÂ<8à°•HqNG‰„MËA¶†Ÿ EF¢È'_=g@ž‹i”s£0äyF‘7YrÌ„„+ìÀŒÚœæá…4|¼øÉ3„gõâ— 0\åbCv>îåò5ËPY†0âÑ£÷$¹¥Á1T ­öP¡ÊLÊìxÜMòsv~š?ļðÎUëeë:x'bŠ®¢x"$Öá<"Ê1÷öë0~­$ã„.É uRn§h¢®ä@g¤öYÌÜ^µˆÞWϱŸÓª¹ŒOæÓ[7×'Å©µ Zø]ÙmŽ÷‹É´O¡ {iHÏb]VŒ€œäœ˜¨™È3fµû#5¦VÌ$0³.'ÒÓ bs%uRŒh=ÈÃ6Ý`·iy›€4Ù•{eWwÓ ü£Ñ`9ÑŽ~ÂÙhG“åµzc•D4àîq…;4àöeh€Dƒ)4@¢AÚ.±á}9»t•4t¯É?o<Þb¼Åçù¢à·cˆ_Áý¡¿yèA’?¿‡öi1SÃO“» w?Nüÿ ·SäëÏÕ)ƒ¢ª[+¬rË´F1H¨UÏÈ!#óœs¤”¡„¥É¾ÿê>d¤ÿpÀkªþ|-~¬¿yða2¹*p=)®ªñ6/æ£H³zÞ—ÝÏ{3vÏsø×lý»‡ e;¨¤'cOàQäÙ{xîkÔ×A<‡ƒlæñ´ƒþb­ÿÝý4»ãýÆþïõŸÕý2|\ØÑ£{_Aû_#÷±ú¿ôx|šÚ­¶uR·­c€…À{ñ³àBT·® &}aí †vWDkÚk9‰ß¶.€a9ƒ‡~îÞ•B1¨ú»ïxøn¬–s{!øüï?¾ýáç_~ú>:;ëZŒÅÍÅYކ™¿~Ú>w¤ë40¤ø…jgºAèÖQÞÆ¨6®—€Ç7€nOnº*èvGÝÒ™û¦ßöS¶›+gòrêÀ‚7^tžGÛÏÚÑhßè.Îå^·ÌÂ\+£ ©È„nAS¨ÈÂŒ‘Ü$‹We=‹ô¬sE=0Óµ@¯^H,X …ö¶o}›ò"¹Õ{åVGˆO§/ãÅ…/úæ4_“a\‰ãß^)¥³¹Û¯Å³â¸"z·BÑIhÍqÊPƒµ€Úé$Â㪬1q +z‰žE-$ž‰žñLlÀ̰˜& Ê€hŒ”9HP.­`Há I. %DšA¡Ã¨§SŧTñ)D[e7c=`5W¬ëh{IH­â,‘´V(h_¸GcÝÝf˜Ç‡˜ªOZÍÔC6«i©ÀŽöéF¡ƒr”ÕÒª˜"ñÒÎÂOG4±ëbqßÞ²Pq-€–q¼æQ+Í÷Õ|÷X‰?V#ï®U÷K3~èüY/©Sw}lÒ¨KÄöïY¼“Ê5N… ý~`1£sj|û\«ÇÆùÀ€U·ûð€ÝP …òŽO×¥r!’q Q&V€ ƒt¿¿¨tðÞæj9^Ì7*R/1@wOîW…Ëwð®(l¸œ•ðü½ë;Ïš7(±kTàÐV-Ÿ]/¡«›J†>×Öþ=Þ˜õãKeì®×A;STgÖ#qRUƒFaá:&)F§*uö‰:Ò§4Þo5[ÆáM¿ŒØš;èfÏ)šz-éÔæ¾8•ÝíÚ¯D?ø´¸GC·‘º.ÜŒ³CbghÍî°¬ñʽ: æ,€h¾üôÉλGQ­¢ñvÄR5ÛŠÛZEnÙ}³µøþ£\•­I蛨nÜõú;Þ³’šY¼Bùß;‡ÛîÊãí¿•9‹™µþrìþí±ûŸ+”ŒgJm·9"–a¬±2MP&A›Ì$Ó2ý¿de¦­4OLöWf‚Fêyžâ2P«:‰¥ ci¬¾› T‹rô²2$ò…<ÅH¿ àÃÿ‹YüclKìPG˜öƒmú‡G&Ùô¯/\Š*˜J¦Úý±Å¢:z RMª³AÁ9ÌMßGëg÷ØéQ?6ûíôØè~¹‚Á,§PS)â"Ó 3•geç f¨ÉÎÂHˆÜl¸?øÉ}Ï{ž·üø×w ˆÞ¬ ©€u ê ªÞ(hAÛî~ÜfâûmÔ7  cå³ÊøÞu(oà娻yóuÁ7Øë'ÍoÏ õr¶ØT(6,ÃØÏv|¹ Í`&T‚²Ú&e! Àä9Í ÎáÌÊ0*zÿ-“i%Öݵ†ôS†Ù}¥¸i‚Ç's÷yvõ`7‡¦î’ϧý4Sþ&µ¸ƒÑßýf»C¯”E†x@‰¨Çx@)$ ¸Êœ  ´ÅDXó(Öä­…wTçsBÂÛwÅ:x÷§?]k¤âéQŒø yti¯?”¼/ûií8r^wZ­â'ßW8ïV„"N.r(¸Ÿ~Úúº­- Š·OÕE³L®“šKA­cA ’J.-‘”kˆˆ¹å ï• fP~Õ(ó% ¾&ãØÈÛð¡xézgÕ×ÕWíxâ›I>(›¼dç÷…ˆãº¹ c€kY¦mu¶½¾µE˜|¾=öùRIºAºrˆw! t‡EÒØ3U®Ö—ÎÁ„ñ©ô5fw%ר9»÷ ŸA“}ÛÎÛ¨ÅÝkÔrq’Ž‹Vz²–+Ä‘´FF-#gQ)Й°<“sÂ=G¢çxAÔ£P¡¬QHŠ€kæ0BaÐé™àV±Ò‡bŽþá$ÅË$9½ å+‘s_šœ;¥_¥ô«[¥ôNE¶Ž …|8¢;S®k¢ïá)¸û`I¼¥Ç®´93šý¡$¤,ž°GåÝüþí*€¦Ì¦º”Ú»–—v1qÜ%a,ÓF8%"ÏxN)‚ˆU@Jƒ¬E1™‡Ñ”·þ"o$=x›¸çÌžuÇgŸ¦×&-ÙºçèñÒ{ª}¶éÓaI®^~¦±Ÿv5¿8.ƒ HB뵕݄%¸šC毈ZÅ«˜,²Íª¼Y5ù\ ‚×µž`Uy=Ê‹áf‹:*k3]®Ö­påºÑfbÑöE•—3© Ùr>„±)j…”¯B—¡ÖãÔ¯ãu–”ⱄ¦NJuž\³Ìª %Vˆ 2+lL•åˆkJ(1™ÎT"‡z­˜ oåädøÅ˜6¢]µú‹¡–œü"ó+ê²ÀnŠä€ºÁª&¯N˹p€*Rò™ *Â%¨Ö'œ—*Xä™÷)T$lZö¨ uFSÁ‰¤7ñÎ/Fç$ äXA¤–Ú 7Bie)2P«<“a+NeÿU£Eš@ãõÆH"'N¨S`ˆ™¨å–¹pKaˆ•S±2‰SoIœÂ3Êšƒ|µIýþˆ#—MåY~@•ahã —óû§ZF¡Ì³ ÑTõáòUR‡×[ÆÁÇç>Ä:ÜýMãïAÃû¤³áÓ8¸f’»ýòŠÚ ™Nëph3•v×=mi¹îžÅ¸õ3Ÿ¶Þ㔆¯­7ͬn½Ç¡½"ïgÖzç„+;X/¢«[ÉYÎãÁÚ–A˜ „ XªrK…¤XC¦¤¶ZH›‡e'j–DÍr"Ò=Ä8Žš¥ésÙOÌ’<.=ó¸0˜˜Y3K?ôâ“C791³¨KÆé`,"”e¹ @°Œh€-C€Y‰iæ‹QCƒ€Ó·ƒŸ7ø¦Ü³?¾æt³kÇ6q*HJHd=LI@D-P×ÁÒVêa;T7…çö5<!7ÂÝãHÆsÕ!ùE¹euo¿ú¤²ÈÂN+ÉÈjPãQdrN·œž‘ÛÕÕã£sG”qË6ò1“y—oòÛƒ]ÄÊÌÜl5&¦jœ3£¹;ÑuL©8/6›,&z2FóF²D0…ýÞÜQôÑ휟#G~#¼!ö‰vŠ•U]æA)'4‹í™ùÄ϶ç8£xÑûYÑøNq}2Í#_táPòb掟±U\±ÝÎG÷]E‹#"^ØÇp3ïºCAÉZ K‡õ:5ÑAhòÅm®+Acsµ/†%uÀÐéF‹2L*º…í2Ôu³Û¿<æ1;Ôþf¦£îí7 št›«Vº-ƒßÕ¸óøþȨ7ÑíûÇÞ³Ñuxˆ<_×b÷™ÚÏn5Ä —§Üógw™ÇÍ6:õ~³‘nýÿ¸;ö¾ƒ`ñBÓÑÔv|^)ÚqÓŸÙ5íø`·]ê¥{t:|³® Ýa²yɹs+ÉO9Åšt›bóNGÖÊ9œ<G& ®X,½òÒqÈ×ÂgÛçÉxùÐåœ °JŸ::í˜è²é³ ­‹2¿køF†µR•Z•úöÃÇos£xœô˜é’sÛFΙŸ{m¤” I~j“SÉgÖ†Ýî¨LäÞ›ÒÆ‹²?b†ê¬t¥“‘/á‡ï"SÍoÖD8ßœ.ïVKìÄ/E£¥’M²¯6É›gÅêdwU~ÜfjMô[‹lM†Þc ½Nl•þ> ³s„‚8m|òðàÔËÃ*QÕ§ãå§Ñã|XÌø]OØnêÂbS¸_wﺷ4ëÞMU[ n%ºãò&ë4ø'/–‚ªT†5bˆŒbm‘"Èý+D†a `€ÂLþ a"/¹P“È8N(%Ûpœ…Ú}Œ9UªŽïodÜcòÃä¸kÒö¸oeÜ·2~…@÷¥f|6qÆ}+ã'ÒøŸk+ãáÄŒ¦ã¨|çðÑñ‚Vƒ½É¹€gkÁ´Ä.*ª9‹(JN46œâP¤’§#7€“=ø|¹Áðí‰Mæ—Zt¯¢?o½2|•hNä¶Ç qÑ_•tOºãÌôQ¬§ÅŠ5릡ïÚeÒ›&è2Ûb¡*“ÞmÊjZfŠ{~×mÚÞ«Ö{ÕzGÒ³MdLGxo¢ðjê½B¯7‰ñ„½)ÛRû´ëíÜFŠç›„ÆcyI¨#Þ–Œ)@±à&a#Â{$•¢ ’}øù§ÿîý$/„UúI°$r»®-A˜·ËÚ$‹Âï8'½§ä„=%Hã-sb9k¿â.ž†ó¡Ž½¯á‘ÔÿŸùv´-²LE9qûýáâ´Šuòæžk¶“=º~y`*(fö·àV5M·‚â}~ê:ðÌÝ¢XÅ~"ls0'Í{”#œ¨ã䩺På(¦’9£©§Úa]HYGÜ€äeQ N{ßI¯¶×ö£H|¥¶Ã›$íl#.ÝSúc§Å}-Åiµ¥ ;f’öŸÔ¿Ï‘òð™îó§¼¢fõíÊ}¨ÿ)©T˜qÚM¥z¢Ê…ã7“+&ïû%¿z‹°/òðoFuˆ0ïã÷Ÿ¨T—ç=S`·=sÉË?@XO‡ŽJ•‘@}ê‹K]wè¿Ô)Rª¤·ò£\÷öR~–‘çÖDùféÇóh¢‘SJz‰NpO,‘´éÀ½‹XèÀBTeyï?]#á nøøšýÏWWÖž&BS"¶p5Ɯծw…±Px_HØ®ã¢wVœ¬³‚`B·ÔÀrd µ/Íp½Ô¢º>ÐxT4®©›Z¼äÜÓf: ¥£A’8`ÒP8ve“ΖëM‡9”Uâ™›ð”÷‹²Ñ~´œ›•+¨ –F/f«™›‡¥oåš 4‚¢Ž&]ŽuS¸±¾”½¨kšë>Ø4pÒƒ™T¼¶ AÑØEá—]Î+ÜT“.¦ØéŠâïYS)j àj7u±´¹ªÜ¦ŠB·é% lèðš)V®¼nßáÔÊò±³‰-º„.ÇûÍz¼‚¿¿€‚¿ÚØ4KÉW¡âmŽwZ$\&C¸Q¾NcÁi¿›z>ª&ïôòvi«Þß%qk~2ãÚÍM÷`·o·MYõÝÆÆÃ‹¨ûn“2Ar5zòÙúaøZL³¹ào¾R“í’Öìã.mÕNN×ãqÝ>‚jPš‡ºÙ7u—ã"L̼î1pã¸5<¨‘€åßÄ ºr–HËP¢[\l~7FØ¥­b„eÍý H"ùg†³épäKô“KºÕ:©µu¯êЦŽ'¾ÌÆëI…d)ˆ :”ï«Ìó¶gù_}Ò‡–¥n­äÕZ~zEþ¬jØx Jü­Á~ÿãÇ÷gðÎ l¯9²7háJ¬Ý/¥ìí s·(Ÿ‡D–Ô˜&Š[ºTÙ1êïÛ¥)á$Po '`‚9¼C³dËêšÏÒl4Ö.d× EéàÞ*u0«ÔËõŸª G±;^—™F_Ö“ß»‹§ð|M&Þî%¶<¯ÏGÓå°aÇÜnOÕT­¿tûÑâß6ì› ¶+ÓÚî›ß¿õWëͦDá¾± ⛹¹cèu§ª–»üX•ñ›*KdhfêGÓóaò½&ç`ο\†ÇÃMr³8mK¢½Þ{g‘$T²( 'ÔI%µ@F8ˆÔDr'´°È–wùWã²|·yËkW÷÷?ýü¿È› øUÓ˜`𡉡\/6ŽÛï`ãRÎÞ`ãØ,uöoe^¡îAn®ý¸å`“s}ŸÖñ¿züÆÝÿæq=ç{äŒl9É)¢Jµ0¶äJÛNíS )*yËKŸh*÷xɽÞÞÅŽÃÄRÃÄLWNÞÖ\÷úË¿ýøÝ€?ŒÍzŽäÿþxÛð\‰SüS00c¥CüíÎ/î÷q ,·4òr{Ðe#abÑëw³Gtl^é“ZYN'Õèªéò1 fy¤Lyd#<0*°²~P\8;¼×WúªG=‰å³[©´[ZT}vÐm›¤Ù0Îñ,’ŸAÃãábõ°"òF¼!üMB6ÍKAmãÿ^ÌŒ-%Ö2¡5—˜ØfZxoœ3‹T§ÃGË*©ý (ò—`Æ ðÚÀÙ¿7_²Ê²¸Ù—dS¼'¼ß@ÔÅÕÄ¥õÅàùËÁ¯³Å3öËÁŸÆ«¿¬.ÿñ_³%Üê€ÿt¾úË7Íèeƒ†7’q®y£o?üò×ï~øõcóðÉ `¬‡7;§g~lpÅàWX ‡ÉüÝ€ ¤†H1…ÿ}ÇÔ;¢ÿàÓo>üëãà[@îÓ»ÁÇ1Fgßþòþ§ÿs8üõë×7›ýKcßÞ‡‡… €}Q ®¥ÔmöÙIJÕÐ8£[X*Œ8¥í"’qF˜(iûr}†×| p?4[èHØ÷ŠÛ÷ƒ^3Žf:«Å¼wíÖtö°—#¡ºös¹YØt6=Ÿ÷ÈšÍðÛ˜ï޻잙þ¼X½KÜw– )›ÎÜ|þDDÿ~ûIQ¸TZ”Ù‡¾oã£tŸ–~zöÉ,üW³gaò)ó§°4Sæ§ÆÉ>Æ|™db vÂqiµ—Ä([ýô~ggŽycÌçXN ‹ÿÏÞµíÆ•+×÷|…“Ÿa±xÎSp8A^â¥dÅ’[èn_æïSlYvKâÞÍMiÆ™dæbö÷…dÕZŪU.ƒ˜nm˜Æ§îóí) ¨gJ´ gƒ,†ª™°ª¸êþšz8Z×Vœø²€Û×qÉ]Í)šê ¥FÎêvWÞ¬`4=³¡jzŽ5·“ók„÷»SõR=É=Ĉ yä ôhã8ê†u€CâšX>M¢í®á[œë¶wâªu)êhµÑ—íTô48]õLH,d±p‹ÿA8׫¥ël4تHH(€à÷2޲…|åþ'.€ LÈÚ9Ç72âGùñ@B@¤OÅæ…$n"/í½kH¡¹XLȩ۬ý)~¸ÊÁùÌ)sŽªnØ–›.„ Aˆwq„ 6à¦Ç¾{wwÓ;BŽkÑä £lv³}©ÝrïSƒEÛ:õâ‚·?âXÝ”¨œK.(L« “ÉÛèûëÒÌôûnÚɽ-% ŠÜpì}Nãn©Ku(®övÔ«Â$ù=Œ’»‡±Ü'%‹D00Bàµgòúóñs «U™£x SØ~úôuåD¶:AØC°á€ð»ùT»]÷À>阹uŽÜvûJ×éQAw‰Ñµ,Dz|u?Þ’Ÿ» )9Xç‚™ð¹7µëd± ŽkwP_röx< 4ëf Õ"¶ŠÐÝPê¸Íþ÷v_½ª=€ß SŠŽ*º ¡§ÛÝ3R©f!ŽA`gȶïص}@ⳂøoU’ö;²Wvû÷e,n\š,ÍÄÉÎOªB/# Ñ`™GW«A[¶o›𤛫]?…NP:x²>˜ ¾{Ÿ8{} Þæ1²6*eqðÞ?qvFjtî…¢ØG“’,˜„‹m8ëýÅèZqç’&ùÏT-}q"­7*ÖJa£Ö¹Ðuút8tϪ¼ «å;YíöÑ]Zxrq%±®Âý£Sqñ6vK¹ïm±Ê¡ê];¬}”…±ô\}ª=±Ùj Û—?ÉEôl!†ì)`õ–’ Š)˜²ûXέUÄ’’òÛLm+â©Gºé¹McS°‘)#Ÿöeêq…XÚŽ4àŒÀ7µ-Hw y×$\ß]ui¤MÀF±l!Ÿª‚íLïlí=7ÅÊ«T˘Çy?@8B’·—¯AM„jÆÃߎ×ùÃÒ’Ž¨rÖÙG‡be'ü;åè{HÍèt2@)çqSr–±ÙbE]@}p¶ È$9ÜjZ[>T=€ë»J!d Ž€¸b[ìı·ìÄûF Ýl¡¾bGZÚ=2§íÞ¾¥ttc!&?5¨$Žr<àrbìM¿  •¬"&‡)¤¶Û¥ ñŸØæ (’Ò¬w_JzXb hÓ±Z³¾ÊW‘ÒC `”ª­Î’RÊ´]Ÿ²¾»é” –ÑÈV‰lÈNÔ,×Ny]ŒJYKƒ­Ò îÏ|Þ‘ìÃüîØÛ„9­v5R;¨a³ñ¥¾ªsRCÔ)­·&:žFzä Ô#3bJ‹Î¼!\+«¡Èa¯ZR}ÍÑ›7°ÆSƸ¾é¦õP2„Ž Y§ìRÚ{¡B¨5AHÆUãöLŠ~ª—1ƒÌ‚Úmù¢]²i;Ò5j5Qw-vìãu¢eøìŠÊa)BÜP)s¿Àúé¹IÖrÑzÄ©t’F€®®¯èÐ=±ä iM3ª,„¦^ˆÚqÓÝò¹f ȲxÕ|0û[é\æ(&ƒp;}H¹Ö=;Ÿ˜(R’0†‰šÇö…îÞ÷BY(p EÆj_TØnœ›lfoܽNÂl­2*l¨¸hG«ûZ"ínvýH;Cæl*R€š§jŸ]b )bÙo»y:ÔèTkÜ3Ó(\-61‡LUskùûnßõW¥º§B«جȵj˜ˆ”½ØÅ%¦r1I9Ÿm2Ñ—™â±ÕV~ìÖ:ÛÒ*”(¾Ím:ýúïÔ[6,èƒtsI0ÓÔ׿½ùÚ›YñºVP?Ù¬½6üú·JœýîSÿœÊ¶†Â‰-²Ë¥>ï¿,ÔÉ®D™6±ÚÊãD&NÿP†Yž³Åz¯y[Ù]ýÚÒ›ºøÁg'ÈÑ'1ÕÎU½ ‘Þ§äö(EW3T¡âiKþöwïÞ- έ„žª)UKªöíþØ ¬+1¼\¯ùƒ-í’èˇÁ+¿uŸÐv|{Üí†ïpW÷7oÿy·;6ý£º½Û‡v£}Ù¦£÷_¿¥ìà¦ÆR¿åÕû?¾,áþ÷PÅj±’›ë|\ß1‡_|ø¶eîÿŸß·ë%xCww´¿Ýí[·ª¦txþú¢ÚÊAZ3˜}ï9.‰O¥~~þspÑVÝ|¾ÕÝ÷–[h§®#ÞOMgNãŒ)–}·¤cú7×_n¾\óõÛ·w—®¼û‚ÑØ+©Ü 0på=|¹_®ùýÓK×5Öžužƒ,‹.Õ¿”•–?.úå{Èö‡Ÿ.ÐVvùГhû¸k¿ý"m6†bBà¦d®[m‚㪣VZ±2BäÉh‡pH¤íßNoõæo»ü©ÉŸT¹ÆõÙ꡾¡}= †ÿÇßþåMù6̽$ù-}|s'pxó‡šO?ÿé$0v|ÃûÝí?ÈåO{™ÙãƒÌÛ½VÕá•›?ÌÉ¡µÔÅs9´&~^ÖýDÍðÊÚGjhÐJ·Ùü¡†&ƒ€öá‚ÚýjúålÍ=Óøjü4Ñ­°_þ½ ÀÿøËÇ?p&nõ¤(Z瓽‚(š¶‚ÔñË¿ö‘ï²ShööŸàëøú ®ä~ þL½OÔ®Dq1ÄœœuBăØ8ªZø³æE3s%Mïó\æóͽ.æaÔÜÿìcGðFÇûæH~ÛüµÞû•oý+NŽæOÉÏù8ëá‰ägÓÆ[ôqÖi;9í` œy9Œu!^ê†q.úy?ã¯$üùñæ×ßÝÁÕÏõfw×Vå/ßWþe÷ëÕUÙÓ¡µÄ›rtÝÏö ®ÎØÖ#æ|ÝiÿŒ…›îŸn³GìÝôë»ö ‡®º¨mõí2óº^xk˜K¼è5’ôÝ[ï×tó¯´/²(>ü½{c^ þD4/YÙ±7_ß^•ãå‹Þ‹»¸|ÕÐ^púÝåºìò–74Z»lh4 ÇFlh,74–+ÆzwCû«±žw÷Þéð¿Ãæ/7hÁª†dn©µ_ûËdÿ“cUŸéãõÍ ýL†QJÑ¥[¯4ji¦¾cu"žÉ¤ˆ&4=¾a†ñ÷£Pñ&$ãí‰"ì>ß4’pBt§Nãã¼£zxõÃ¥Qßø¿‚þƒÖOиˆþµ } !<ü×£ixÖÏ+mÏ“×/aÿo õÿ™ê–¿lÝ'‘ÿ£½’øÐ%M6ǹžîçtøv÷±¤Mtš[â …$¶ 2nqYR.f Teóø”­•a}:~?=Ò)M“K094ƒÙRcÿ]OÅJâW(”åutu¥Bp_e]ï 5tæ3ï•Uëy:v?³LWrÁÒæ—aTçþéØCŠ,‘|P®ïÚš%}z«~1Yvr0l™e`0uèÙØýÚŠˆ–sÐÞ·6ƒé8—κ–` 4#2ÛÄY^> eÍMl“׊&wóJµ&xM)1ï£ÏÌE¿ð»éÛÈ>&ÃFsB¿ :•GO“ ,ènr_–ˆA›˜ßjÎ`X£®³›‡„á38B]ØzòfXšçì“­¿¸IO®Ê åQ]ñå/¶RZ¨0«(·ƒèƒ7u£õìE!  zíJöa8³´73ýT霂²uF‹ßžŽ¿"½†lœ7)+††GÓ=WÌHW›##+VbÈØŠ5™ÿH Y Ê:AµxcÛÎä TIÅ÷“VS2ò£ƒO_UÔ°ZC¤ÊbÈàhÜÓ[üVmAz.oYH øC£‹8 ŸíMö¢Ü£³ ¦([L¶³Ó½$´î”,¦¨Äm$GeT¡æéè ú6ÛZ‰[M|k¤²Ь–± ])*'ñÓ4˜Tûr,Ÿz_Ød—Jr:;³ÑP¬÷ á¢Ø*TÎ@¶¡ÌNh¿îÙ`kÀ¾€W4¬ê÷0ø¢P£±6ƒ`÷¦ó_ O£à ‚¬Æi£lMÑ…šZºÍÔmúÕk¶Uö :m:ÀçVÌb#;¬Iœpô^€YÖš ˆoOâeÁËä°q–«ð ËF%Ì%¸ÀÆÌÎnÏØ“ ±2‚uÛ)òæG^Ó×JºhYì•öÈnãè¯ÝL¤ï¢–EŽš¬:PH¹óZ³®ªN~Wo)³ÌÚךWÔɬwûÈPýTü{¹ýXb•L*â\¢ª8_âÆ[)Õ 1·³R“p¶¯i^ZW9`ÛŠí5Œj1÷ºÊzÚXlKõ mUhBV£½Áû†½ß[¨ULÙÉ;`„É­¾¤”—Bÿª‚x%½c^nÒ,ÈI0É© ï1Ý÷徨©µ|—9æâÑQœÜÇí> -?¡8ˆLs´jTTõ²Y‘QÖÅÊSgùB@Mú¢×ï‚õt%ÙCqÈÖ:¯Xo É΢ã©4Á¥4NA×UE¤š‚ â߀[g‘Ñ6BoÐ_úP8ê–­‘’ë3iz.kiÉ$„&OíYî+ Àó²4—XéhB̶ٞšXèñÖœ­•F’FskEU!…TËtFéJÛâ¤A¦W|¢L1Y3 Ú.6†Ä¬B‹âØó”+[Õá8—ØçF;<²Ÿ+Š™³Â÷äm‚Ÿt2ài!VQ”Ê%‹Gaú“¦¨mˆ÷»ãÝͧޑgA›K—Lή–ÉIï7u'P S”¶²€•`²²ZxK;ÖýÆ ^èGn›”ª‚¾ —+½J= §ËÉ9BuEe—7¢æå>9&į ›â¬ÝˆK¾Tä—že0ZAë¶`Å6™2˶NKþÚôbêB©•è¢ZDGåõWQµÊ¡­û@tž­ ;Ê]îÞï>ö D"—”Õ%ŸŒv¾èAˆ~Ò^5B|m+LB›ÊÖ4…×lóèùk¿µ°×³ò9XbÜî>eÃS>º‘7ö±Ë~%kùEŒe1£¨+k¨‚–?”ÑQgæfExØ ØaÐÚÍo- zåîÃ.7E®YCUN#V±î%9;“y¹ÃRñ&™äàÍ=æv¥eL\ïÞûl¯ üņ,7ËÝ”ßñ›µ»ÑyÖjƒby÷zô”cR¬ Èà{ VƒïÕÀ<™Z-ó …uY%S«Ìum]ßɹe³†ÜÒ ôÅiµ1f÷y9”›G)>¶®`D¶¦rû¿3¬Á7X‹}UËm$bZA%ö¢š’ÉB[ºÐ w)¹yZ ^HY‚´Â,ôÊÅ5"´Öl,)¢L*`k+§ƒo–ÕMÚÒ¸©XVŽ»ïú—jÕ/€ô…7ãŒ3 Rç¾ëÓ0Ãoª"oª"/ýôý_ùÿ{Ò3s2¶ýSËŠü0ig›ò¦¯ñ—Óר}½iêkü(`¡O2Wºq Ÿ1™rJVˆJ5å¬äuÿúzï>mž ònó7zæÏ_~÷o½˜Âç±vû±vßìÓ‡ î6õñv¯­ñÄFÿï·Éþ}óÌàæù2ï¶·Oo’Çć¤/Ÿ7w¬ÜqóÛæ¿?lwÎ߆èni¢pZ!£4}ÀO–÷×&p"øwwåÓ§Ûr?Jà¿|nW‘šñæ´Uöíth:Hâ/ö²®Ÿÿÿ ¦¿¼¾M.?=üÌh&Z¹‰)¥„…œ½ÈP’×!94ZV+†ñÓì•â9ûÿ¹ÝÒ¢!‹³£Ÿp$öOºõ£=Ñ_¥þv­ÇókÝœ^k÷t­ßþJ¬jK®ì”UM?ñ“>’YÕ„;eU»Ö ¼$Þ­Ñ©yžÕ¿¶§\ͪþø©Ü|&Y¶£‚lÍÇv%Zuá…ªlÏßîGÓªßãÊð?– ­®ŽOÕOKúÏŸz¿\ÊpøàbyÛû²].]àÖµ‡»¥=ïïî·Ë7JFæaû¸ü±»Ýûm¼YþÜnqsæãûÎÏô<ØýÇ–kÇõžƒ¨Îþíy’ÿê÷áZ‹ÅìD–A#¢ µ—Û|þ5¨ßçcO&ŠPd4ôdT‰¾›{r½«#R&c 9@´#—X.£RôøéÍÚd•¯Ø‹ï:}¿s8ãsΕÞ-B7Ö½ù&(€\@;ú7õ‚_a;’R*'øzë)ϯÓf¸zQ\t13Oë^ˆüùØËÕN(æ· ¡2ͪγÞã5q6¨é=Km¥*U;kY.n`®ðÄ §K6Á„ê{˹Ï¿ ûíö)ªÌ€Gìm oϪ¬?#âÒ[¡õç°u~©6 Íi‘ …Ëh-àoãª4ùÃàÓ'؉¾®6U™Ê…c½ m›1‡”2 ¬²¯’+7|gåÆÅ¤oÓ£',Ü -àJ³1ןêY>Iè,‚¢Ñ[ÎÒZ“}.JÐYˆ¥BoQvsɵûJVä»E¤dŽ‹·‡žÍƒL6䤤´Y+ÛÛHqzvÕ¤Ôô:Q0¨ÊúäV. òUö  “zç1Fk`ô¨’Á(½èó?0C– )k0 rVU ÑY5s}ºñ&Šƒ¢v:ÐÅ Ê×ß_§Ý|LÞ«b©Ô$°öö¦ž}Užúуo7–lò†%ù¢q¥s Øùùó˜€g™*T¦‚ªI÷–oÞÆ…KUñ6;Íh”^²ÿL€ÐL¸ü1g]îí¾¼ÆUÝ C~PíhÚ¸2`ËzÈ+”ÀHAG«4e+'ç ‰ž(r0ž| ëzq8Ç·3ÓJdl®¥J*k0¹¾öEBE 9[4‘âõÖ¦e}xbЬ”Cé^­²½éÄiF}FSÞ‘èÕ[¤Ž½=ÿG†i‰x}ˆ %CYˆê¦á.pmÐ{Ûå\ô>“¶™—1VŠÓ)%ð^¦˜ÍáŒ|ŽÜHUtnsM“Eúà<¥ÉÙ¥ì{{oWXF³2€Öð±Ñä;ävçmÂJçú@!ÅZã·$.Q¼Ñ•–@©¶„µö{¹“4f^H…œ0Ñ Oî§x%QuøÐÆd˜Ê°Zc®”µ}ìBg(aŒѦص‡Ø‚Ts®rr’$9âLè]F•-ÛgQQø4¸‰Ò'6´ƒ$¸`D›½<ªöR›¤GG®Ü tBñª[Öñô"¡ ÓבRyU(„µ›Ã³ÐbÖ¨•1łޡo³~C€l¢¤gOËa¥ûv:Òf¼1!Ú²BÂo{AÂgl^­‡D+Ø* öC¯¦ôÅÃiÊ뀎 +Rx£Ö®­y¨^Æb„Ū¢Ç@Fz ë™SÀ©¾ÈÀ\']¥²ƒ¦mNª–m´‚@³öäüÊxú‹]Ûf0j^%úº&E½vïDð¡mxÿ"€'[Ïik_éë¡Ý/½I[ §1)H:¹^¸òÑtŸPŒõ „šÑ`‰®¦|±-u}"úIIQs×Ë É‹?i ˆ¾Wæ²}€”zÍè&ÖÀ€µùa‡ˆ(å(ô.e>-e¨Ì­­Ä$ªMI¹ç˜4ZÁÈÿó‡æq+Å}}*ЬY[嶨¡ÆÎÚRzni1Qè=¸íË_ÿáîc¹½ßÞ¶@>P ¥f-‰Õû¦=Ì{Cáá¸Fû4|ئDA¦5Ö¤ÐË{ÉÛÚ«)ÕÐê²¥ø²”¬=¦•“s _V(® E¡YPÔ7’µÁácò¢oZ^‘2¬á¿fáh©Ñ* VFSæeädƒÞWÅä`…îeLÏUDMõ.dEë«z¯dÌG÷Iö½ï?ã}ûSFg]HÖaàˬÞp|Ï÷Ö@²‘r7©+ 3q­Wœåµm&¹OíŽ CM"QvnÉ:»áÝ‘% é(O–‰â{™R¨CÛ_{¼k¶÷±(xpB%™ …@/®<›Q”sN»Z"™ðÞ š ¶ ¼!ÿEQ\!Ëç~+}Ø Çœ‰…I{á•ÍbÏÖ‚Uˆ©Ô …ÂC/3ÄéÖͨåûZ[ |H® ;yöÏ%ýÖذJ;ïM/½øÒrNªð$EQ€+”¶D=zâ1#±d)œ*ôô­‹ÚÎH®Oj­ÛŒ4Œä`ªZkÛ:¡¼ôÅ…²ÙxŽÀ°®o´¸¦,ÀœËÚ!‚Ô-Sm”Þ©ŽeÊ(3çÚ}ΆO?€Í+&¦5š kǃÁƒ" ñ‚ª†‰Ê Ì29Gãg–8 ƒùÝܶVÖæÁ’Pô*XŸï 6‹¦)®•²´Ü¸ð’ÂÈ6Q^gé´¡tÚxŒfm½Ó«!ß烶)Y`çƒQÕ#²x_Òdw(y‚N¶l*:µ¢çFóJ¸A‡v|_d_§*•äÀ×Ôšù1öê´Ö^›ºIÖ,ó ÌˆÁ)ßÓÎ >› W)²K‚÷²}¤ zeÙо6ò¶noîeטJÑfHÜ8Ú²¶€g·´¢ef™§D(ƒŽaVÝF(ÙJ¨ÅV×­¸rq"ˆ÷5šwü)#‹¹¸0l›úÀü|vQl2UT ç5´{Æ!Ò6 ²µ¯Ë‰% °Ÿ+´,ïæºìöV¶+÷[l~–`=7¹™ˆˆƒ¥t3ЦxU)A£ÄØŠÒ«ÊÔ:†ikì”@±’ˆ9FÇ%àPÃf¾AÑß è/ýôý ñtÁüD&:~&_tswÿï´h™h·»¼ µ û>Þïx‰\~%Ãö˜Ë—¿'åRZýéÕ¼oºäÒ5þÙœvòÛÞ¨kç{£®Öúõ¨ko²GŸÿUe¸¨Ü™ª-QIªÁ½ ²  •Õg¹ <…•SQ(3¼ ¼ ¼ ¼ ¼ª¬…RçÂJ×yŸ +Œ†¦²æ†úïHe–²ÕÇç¡-¢ò“]‘xúÀ/„Tøü˜%²2íð§eòÿhï:Ì„GoÚoÙöOŒçžŸÒ%ULãb®Ñ{‡U ¸1BX­OñM}àÏî(¥ógêA—ë«H­¼#xì)¥Ôä_…#_Iw)‚4'B‹Þò°Ùñ‹;ÌÕ;ŠÝþ úñëŸOƒÀx{¦V¼Úe®ÛÃÚÿÎ5¼WïÖíãÍbÍ_ÇvÍëaígê  å6:¯hñÒ’<j/éŠQåZQ•LÖŸE·‰›ÙXšPJÒZêë8Lž¡›­‘%Ƭ­wav<Ó/¸•?Äl%&×â|—x^ÂAp\€YÙÕµ¥JxmLÒÜ=VðÊ#næÚi³ó¹ø‚"Ô¬“\Y”Ú òDIÖŽU¬°£‡Îm…r‘}ε%~ϳY@&*- å¿î5Éq£¨HFK6ÂEuTàH[ðúl&—";ðä@mPYù4ÚRÙ„9Öt9%Ǹ,Rª\’¯Ñ†Édq9‡Ž¸öl ÑPd„ «¶a°•u0îiþX%EI˜•X›y/ @`‘šq-ÚòT`ûtˆ¹‹©”¾p¦ŒÊ Î`›¬”.ç]É«¥·zXšr'Eß]U[+ŽI&:Š=‹üU+lQÚŠaÄ4< k@(£õÿ±wEK–œ8öWü„ˆ˜éB¸ãw¸Ûëñ߯(Ûáªê$3¡ª<žÙ ?¸nÁ½$HG¤Î9˲ì¥Õ/…^íùæd±H½Ûj>ÑjmA³oºZ…‰°!ÎùVÙªàñ ô¾šÒ.ØÊ.Aãhˆ(¶e•€8ÿJJ%PkŠ"¡ó&êW7TІ¢Iɯ’qÿ€Ñ?~9丧âí¼¦X #.~û¹¶CV³$f× QŠlǹù§¯.±X)Zl™ÞBY†.T2ñÔl™^tõq%ªÃxÃv©tC¼}ûÖ™5[½¤–„ævÕûÙC0°Õl›¢w›YxN-Í‘-@DN¹áªžÄ…ÇhÌ9–m¥¶+¤un‹·#&˜Ðy_t'º(ùRÙŠ`ꂤ®Ö'j?)©:¸Vo±3m.Í\GÔ{ß‚·J¯(ìÚ¾-Év"ñÀ\!‘x\ØÍ÷”<À§”Æe„Á8—IJÛ:´Z¸çÖ‘ÒªûµC}Õ¸`u6'Zõ¸¶”K©4*ã½@V•³å€ÃÍ£ìj±’+‹«úÙ§¦HREÑYvIh¥i{‘¿é™ÀUìLZmûk•Á’ßÌÃoîß1 šdë/Õé†:nÖð–)ñ±~–'FÅd%ªÇw½l'¦ÄErµ/ï²Äœ`÷Ÿ8 %o·'lyµ:½%S0m†\¤çèe'3žXÊ"¸Ôâp~SD¯mTuxi"©f ýÁ¯^ž8ˆKöÎV£†˜£ãU¤3[{ —ÒÄj¶çÚVEFþP{üÀ?}ùøáÛÃR º@ílSômú‰ªž„î x;Ou]ÐýÔ ¯ƒ(Tˆ¤9÷¶ÛõèBor C0u­­C);¯#Æ£¸ŠÅg¬ÊV½–'FŽ™+ÖVz«·6ããñ–dïJ;?¥ö¯ÉÙOǾ°'ò½àAµ[Ùúî½ÎT¡D°qèìT¤Å¼ˆË®dî]Í.ªr-.ú²#xx½ÙÖDKz»Ö¡¿!ÖïŽÝŽ OCÜž¹LŠ}7 U“mùR_ Ï}¢X)Å5S,Û7÷D½F¯›8ŠI%Ù¶Ý@œ“~:«Ôj!`4ÜwMOµ¥ ùT´ùub[U”œ;­Å¼|ß ðªÞc;óGŽc›ZÄŒÄÅ2ãbÌ=º•åïß÷íÇ£x?®A O)ûbÿ\-ÛþØõ疡̬àz@IÃÁi#üôAä»öùÃñs°¥¢¡ìÄv‚ýVÏü©Â; Î9xC }Û‰äQ|ÐÀq[‹¥uÛQ¥r78îV_€<¼@û‰$Úú„Ð-}¥˜ÜfÍrüÞàÁ;½± ÁW·j‘sCùo1M-FSp»ÍÈçNØ9`¡ªIjsJi»^ÿ•_Ðú|\†vÙpVèP«ñ͵OZþõm=z †¹dçe[ؼ;÷+„Áe{ô²{Í|Ç6}¯_øû#çvùž5*K–]¯ð‘ÐêOŸ?6C[KäÁfb+^z½t¦ÃÈÐHcÆV{îÛ@O˜v õÇ/‡1¡T´HR(»Ö'fÙã:Zí?œVõìvª=•ܬ¢Lm\ÆÅ _Û4cÉh¿"æNøµÅÕ‘5¶‰; îúR>ÄôöãaLwÄDPC¬V"ïOpt¼ ÅÚ¥–B.;Þ^SÇ ŽuUì ©úP_ L~l$NDH!‚-ö·1¬¶³ÁÔ£Lð`WU •Ú Þß/gžw*’%œäÁçí,|Ç×GÉuGÞr½GÙµû™¿ÈÇöÃÑO±,LÉ g„^Gƒâ­ Þ¶ýÝ»Âö»ÂöÅOxWØþë+lÿû³Û¨Dлó£ÏÿÕ5˜Û“Gš}Ÿ>ÉŸ!Ø—R6,\‚f‚¢J)¤deGƒP%çÂVð†wÁ¾¿¶`LÏûȹ¹`ß°†vüÁ¾X(zHé‘^_ÄÓ£ÒàH®Ïvë¹VŸ}à¿Y¨ïâ_ø/(Òçžöýíë¿VÞ|ø›å ä0mÊǯƇ>¿R2ÿôëFć]Oh˜ñú»]uÐWõ釟u4ûY3üõ¡ZÜšˆ´³/£i@ºŠ®¾ ö;MjÛl謾½n"TÛ·Í·Ô}Û¼–8¾ªäÑÞM½³:.Ûî¿mMR”B¬Q™Ã.cevJDÝÛ£¤$Ú5m¾¢œIF/4l¸J–ºzãvÃÁ’‹=ÊÀœP€ã‹&8~=E5„ØŠ£bÛ†ã®Tâ”#-1kÂî†ãàÞøoKŠy{RÀÉ=º` ©YÄA_sÙ} sÝ¥[Êè=#ÕB´Û>:ÑDà˜k¤]gÒ y‚ªÒ´øÈÕ3-ÛÖß¾v…,é!ˆúNv{ô®…}Rt."9+êË„N´Š<:Цƒ6¯»“wîxSjÉ¢ ²ýo42½e³F,*µ‡D^Øey>ë1ïˆ]áJ9Vý’wÙ ÷x³µ1nÔú«-Ø÷ÞC%@ 5´ –•ÉV$â2¨×Ð{‰XW_¾¯½ËfÇ`õxijÕ÷®?èÞÅ6ÂBë–Ól“ƒ{®äD6K0Ô+Úïz…õ;é×F½ô¶ˆ¡d ¸=Ùy›¬ )%ËCÜ ï¾ñ;Ö‰B§ªÖî-ÕY`Ø~cvØd0„ö,‡gÍÝ¢Ûë·3–Þ3ÄÀ€­B£Ø{OçE0:’1X†Û'BQZÐQ* ƒŠAð‚_pÜ14*ç\{uºë*=WǾØ-B 5ø¦oÓ‘ ZH”Ø$¥/i«ºîœ+Å2V(17Ê»m wûx½”è}Çš6ãâ=édÙžU—B.»[m.ÑÐRl$)´l!EÓ&ØœJ¡”Š­¤¨ÁN:í* >\i}yߨ;vѰrï»,݉ºZè&Ã^e(ƒ¦þ>Ô´E½ ÐPØjy·EýXÌŽÁ…?r²YÏ‹ÒsNîuúa̰¹kީ׭$‘’JðÞ~¿€¼<Éž¾…`„ƒK}7{^˜¸Û è±zÜ,f¦Q³8§.'àŒ»îׄ¢ž4a¶4=¸ðyWDíJ´-P¶è“©7¿ÚsuÚ¼=ˆ¯±õÔ ØÏØ­ÒÎÌ-FD_ljo‡y¹íDP3Wê1`´Ó;±ëœé· Jœw‘AŒÕÙr8É‹ÏrÞ,\†¢np¤·º.2=«öM¤Â­X)×M_fôÌÔìd¶ì¢=¹Õ{ä+¾{+az‚½‹¯‹©iÞþX@U:²!­^ÕÜQmw2Ê<ï²ZÕˆ½ zÝ;À¸Êú:aô‡Î '°ÊX>f8B3ÜèÈ•ÆÕå՞͹{HI•É[ñ¨0Ãb^~sá9a8«D,ňJ“e6ÀTY¡e– ÎR}mJ«èŠVÚr¨tCÞPû>ÓÛÂJI´ô¶J¼8õè¥v0|UÑ6Ÿ®BۛꥩvŽB¥FûËU¹æy/u`Ç`é…‡-ƒß‘^¸G„¡¬(BV©^·˜ÍܤÖŸÝåÜ`éœjì1 Á¶LÜQ"¸avU‡¾bÁêÆ}9Q­3ÀàCó– ˜ÐªFÌ-³‡”…˜Le˜>ìùIê©#ò†Q·VtõÖìû§GÊÉC­9w·,êtr]ZÉøpÛt5Á]{ÁÔ”©uÛ69[!±zwBM£@Á"|NJÝ܈¿'T”Ù{²¼TK$Þ‰‘§ÒÎècé¥ÕdÌå×”©3Ä9s1F{˜~µËàÌAÌI«Y„•ehÄ®<å`mQÔKéžÙÃÆj_K\ï­Ð´”ŽÓ²@וTñp)0\LСùæ|fp?ÂØRÂàxêíby¹S·o\‡ÖÌ–«Úþá_õ§Ã»Ò.â94(9–-‰ñÙÛÞ –®\¥:,Ö¶–üÌZsˆ Y,ÇB¥;_ö‡?VD«®9 -È•Uq÷›¾ŽÑ†O±CB‹eè G‹V%&ÐFÕ2·®R;¯¥HKr1÷XsêIÒž̉»ÚÈY¼mM2T¹jƒvÇ©)t6eÙg«CxUÛí† fׇܘUÔ!ÆU˜sgDâ÷ö ,jö­å9âñÎà&Dû!;L4\ЮCXO†„óâÆœkïV±êJ¬^cª«ên÷²Pˆ@!¡48‹@xþݽU«± ³ÈÚÙ¹{áþ7øèïÞyƒï¼Á‹ŸðÎ|ç Nÿæµ0>õNB|ôù¿: ñùŸß}ÿ=ÿIˆ9F‰²ZÅ$MjÍÔ}2¼nõ;o¥*#o“ÿç{ÎøéË7üÏ_¾y Š}ê ú"ºá|Ôÿ*^a†'¼BtÞ=?zÎ+LC÷Þ?ç:{Æ€Ox…Îÿذê‚WøÛ6ýÿÅ+ühðð—¦?o2 ×았….<•vüÛq50Ϭ¿»?›Yøk5õÛì¥î÷ɦ”: Z$rÎãͪóé°g”:Ê­g×Jµ*_û]jÎïãŸSêÈ·Šäîrà›•øó±gv¿ Ñ׌ÀY\¼[Ž5ø„R—;aaï )ÆÞ6GŸQê\ÁÑb+>îaasaN(uȃ˜P†.”ÞUñ=œà˜R'–z%e纺»í_M0¥ÔÙ¾)Üc&eÛšýæ«Æçã¿.¥îùè¯O©ûj†9¥®iÄŽI£—Žþ®,íW\Rê‚Ãâ¸&r›ô|žCJ]-B'—ÀÕ»-+_ }A©k)•’œ­ݵé;žä„RW,Uf´Ò,w¹yÁv6Í„o¤¬SµGžî¾â›ÏsB© ˆA±FHšü‹ÒœRç°W‡º=#w_%Ìg:Õ?N6QP§Î’R“Ýý|må`[!7ŠUZ»Û.u6ÏœRK¯˜ÅSÄäê]Iõ㹦^É;Wrj!2á]âÈÉÓ-nµ”2Ø`HòEûî’RGk  -Wç^ö”.(u1²ÔàK¨Þ²ó]¹³©&”º,œ«Ž‹fw×Ëâl¢JZ5މ»æVù¶aÃד]Pê”GOŒ€¤èn6M~5Ë1) X®ö„]ÒFtóMÔóÁ)u + FQñ^n›%Œ=¥Ô9CzBŇAx݆Á'=BÞAÄB j‡Qv‘ð ¥Nrê!8ƒ’œÑßeeMpL©Ó6<B‘š\ØÜ§Ô%«uø'€U]¢›«L©«=ˆ+|ò$z—9öÕØÇªÁ-ÇTW)Ã]ùïçcSê¨ôAé¶š„›ú»mÇ_=§ÔUM]¬ö)*›ß|°ç†£ÁvMÈÁkQ×ÂÍæÃçSÌ @o [k5ánú¿¦Ô%ÁÑi”¹·Î/ù'”:PƒE ²z]xJ©«Yc j?£%%¿¹Pg”:Ð29¬œQûî«ç9¥Îû@à»uÊ]—£Gc¿&¥îѰgÆ (n´wÑÎ^{B©K¡4 bѪ9æ.ëË<¡Ô±Ät+¤”Â*n8¡Ô8,VâV²ôšøn/ã£O)u.ÚŽóE­Œq£›|gô×£Ô=÷ŠR7LG kÔápbEßb¾» Ô "®ä_(ÝåG>ü˜R7”ÒÀjm"ZÎ-Þ¼¾&¥îј¯J©{<î›Pê~Ÿ`N©cÌÆkÔØËÝþåÇã¾"¥îñ°g”ºî†åi ÉAµÕØøÒg”º*µÇÓHÒmž'£Ï(u$±8Un±Z”^½ê¿I©Cñˆ¹sïJ,yñÜÌ)uµälÛÛGéè® ìãq'”:‰Ë $ïº÷‹pç¥Î0¹Q ²«Õ«‹ùñŠRX$öT H©oìÇ;”:Ðc.–0í±nlž ¥Î fŒèz½Þ•b}>ðéžä„Ì©ü{×ÖG®œßõ+æi± œµy¿d_r’ ÈÙyŠERìhF™nÉöùõ§8kfÄža·e{íh½É­b7/UßG²¾J9;f›0Ä)uœfbæJ)FÝ3i6¥Ôù¤½’! BsgJ¿×·ËŠž™)‚E­ާ†‡Sê’39YÙÚ82.ŸI©C NÅb´Äþ[³  ŸI©Žf¢S4‡tsÍæCãçS2ž‹êgÒ8ÑšB~h}0¥ÎJ…¨…7´"ŽÝ:—RçeÑ­â€ã,¦Ôé¢=§iýGY´Œ' å唺\²CId’ä»Ä„Åf·S‹d‚à›û㌥ԥ\T;=¡.åªU&ùÈêÙ”:"?NkžƒH*·ŠÛ=7&¥Îp# :ÂŒ‚{0#)ÅÙ”:ÑÂKêm„±ÇSSê õ;Ï2X?rº\N©#¿’ #•½.g[eóŽÍ_L©KֺȤH¡[«{Õ©¦Ô PŒðVrvìIEKJQQ“l ÏPä+§Ø?“RÇŒG)eN‚˜c³ðåsóÃ)uNÂ`l©ç™}kYºç- ¦Ô!Zã 𡈎ñ±Œìs¤ÔUl¥Ôa,D¸d–úàÜØ«|çRê˜Ržl¹cGv8-Mi›>zD$|–‹ ‚'c(ê&ôØÝáw·,¡6 tN7ÔöW[_SêÒkJÝkJÝÅOø­û—¿ÏïÅ€mýçÉ©{Á¼²Q·ß_ªžÿ³'Tm*¾b>•ÔAj Ù¤†rd—:Âl®_8Ö6çSýGé}2Õ6±©9sjû»»”©m×t›Ä©YI™™‘Ç¢ÿ/5Úæw%î¥;šPÛÊl%ZºZwÿtõóî¯MCÅ^7û}µ~„Eìf?,ú_úÝÿü󪋛¤¦nú_®6Ow)ÍÞ>të·Ý·ãúö_ÿûß~ýí÷¿mªÅÝQ´œE_Züo¾£œ-uZ ÎH}pcé$gK+'ÈÈ£œ-aµ-tò iK8N¨\°ö¬­í€¿LÒÖrñáK'lýšÓbu_æäÛóþéå)- È/MKÙªvØ äkc+ʼrkVüúfá´!ßíÛ½DžÖâýu馧ĥÓíÝcêë‚mRß*žýØÖýÿëH“â¿¥¾ö:ê“áwj?‹NDÈlY±‹÷?ßÄKôÐ-ʼnËO5­Uθ¾¼ð7]^ÒÚš¬•Çš¬É6k²ÍZ›±&[¦É–i²å›lù[× Xß´í]o£Ó%áˆ/äó‡˜È–Ys¸^uoNýŸ–X¼wæÚ¨/Á-w‰iÎU²6rãµ"8pœ•“Qi#R»VÃ+·ø–¸…dÜðn¡ØáEéSn¡µgÌûSnáÕ´4¹…”ä¨ýÁª®q‹íL?K/¶|ç cNËcÕM-9ý¹X†bRÙcÇüÊ2^YÆ+Ëxe¯,ã•e¼²Œoe|¸ë¾âá…Ñj©¼p,K}°NsibJZ–B‰€ÁeëYÁØÓŠwaµ˜íâ\7ûñnw/ßýÔJ6v¶º­î/³îogÐÍòÃûÙÂ4a=‡@aå/³[ ,³]3Wóåv ‹Mè{ —³~5ëoÓÝ›Ùï·ón™g¸Zi {}Û¾úþm¯ ³èŸ‹Ñ†ñÛ`Ï—7ôĽr¡"4ü÷óÍŸîÓöج›­úްÉl•‹å«#:5ë×Är :~“Ùám¿£K{“o®þsg{¯wæ—–äMï9Û\ˆ³b’Þ$½ì÷o»ÿÕÒïnçÔ÷ôȇٻôñÓR|3;lw×èÕP£OíÍ—ô¾¶Nü÷mvex+ê1è®–v]´Ÿ³mV6?ß½êfàñ¶@ä¸Ûþ»jºÕ²Ì‘Ù¢€ÿbt“ÑV€õV\Ñ',Wýìæi÷4ý-ô›6¶]|õn¾XÌÞ­ÖL¤³=ÙíŠkxC÷ÿ›ÓCv¢q(ìá]úNë”—Š1ÚR•ŒqwÀgé'Ä}î®]:)#·ûM‹Ne²4'¨¡õ‡©Töy¿½‘Úš©§e/ö.€}ýJ«.Ъ¯€ãb"§YrsíÌ—@r̷ƪì¢S, —Ñkë|аpÁ à™·mÿuökùž=†ÛGâ-(kWñ¥Pü1H¤!—µ†ÅlÓU³ Hø¨ŸSìM›ø·Q÷öaÝÏîÓz3‚¢ß\ýW+ä­¶8kgðÝm*ã‘Báü†=Á†rAi‘î¶[ÎßK°Ô^žl{g†…äÖ9{.™¢+˶ðSÀdÌ8‚þBf™½o§ø‰ó/þ EÍÑ’À@sëvêí’Z‡½ˆ°fÖçÔŽ—Ûwû:bÀ›¶Ïæqñ„¥æ¶Hpyß\²¥Ø½,^åBf2‚Ͷ¤G}ëˉ\˜YÀl³¡…§o.Óuøþuíð2'‡Àˆ¸ý–‰=S•*Jsâ,1/84W/;´Ü"EèYðÆp‡A9•Ó¨v.eDzÏ<ò(A ë§u{Ie¹]õ÷‹‡›Z¾‰³C™B ›¥`Ž[xWdëãªf>{ç4ËLÉŠæú\û¾©J pëLÈ•uy{I«£É8,V”T2‚²%ç­ Q§ó¦ë(~]ç‡7jý®™Ìp‘.G5Òåc´(9VÊŬ¥o•+Ùš/r딨…ÕbUWCÉ3ª\‚#×Ö\7n?¬ï`IQªž§K¾•Rhâ˜Ô^æõhFžÑ Ò)´!IESȶ—Ö<´_òçÂñˆj©G"re”<“S?´eÉ„ hQUæh¤ @×ùØPËHÎF©R²Úéæºã§}ó²‚×Ã.ùŒæh,µ<=G¬TiœÔT¯WKBóÕLa#-S‰‰ätL^Nja#ž>¿¿« eL’’ƒuä=GEÆÜ]g¨EB´`5H]ZTž‘ažAʺ¨\IÍå ÷Ža@ëædÄlR´‰GÕªõp2/»¸¼¾!nÕUÑ‚r¢”ƒ¡˜Õ*ÉpÜDŠUùš Œó4б=1rkúLµ>+KÅ„ƒ-²«£¬î²€;¸N7ÎÕp™"LÆ“çäã=Èæ2Þ»òb LÏWäC¨kGÒŠ§þeL®ZuÐj®å¼ yÒ÷2x-ƒË¾Uãñãª<§¦EKR‚´&XúŽVµþÓ½©Š O,Hƒà¹ ¹UíáÔ6§j³E±‡’íhÞÐËOéý>-ÒýíjYc8¥¨&ÍØCܶ*۞ļªf§ÖÉÙ¤dDÕ,Á~l°jšK¹RÂç…lÕBa1ïµ!_s«°×Ix?,—ŒÑ9 ³&SÀŤ=²a9x]%­&ïŘ l’õ6É~…ÖÇÂ"MF9Ë˺AB))˜ P*9£-ïúëz` ³h —c$•Y5ª³.êC)ï¸E/Ñ:â|ÒHÔÅÛµ2 ʆ!ªa¢Ç?_þ$ÛXªg*ÔJçæjn‡]sQÛ ¹}4Ù/2€£s]è7ƒ ÞQ,AÛi¤ív¾‰³ô¯*¸d™Ö–Gi=²< è,RµFTQ™ÏÙ[ÏŒçš_ZúÉáè6H•Æ[Dø"†i8©6B2È5&£IN;B¨ž~DE†e4IÒ£VÍFHø½¨•sò4¹!yn”ϨÇõÅeéM(ç|V•;½eýr!Îh-‘¡Á ÖŒÅ1ìjl —ÍjÏу @7y«4¦Ç9V·ÄiöY™cเVü“j¯ŽÆ¦*ˆ§íúÔÐP¤!jg4êÌZKoež¥×ÉX”‡PUÈC}ÚŽÕ`-@ŠfÚ9mÁ­™/6 l®jÀš‘o%"#&‡V½º²®ÿÎ#2Ö)qÝZ!ç¨ëUùGj„ÍÅl–$¦¾Ãeã„·Q°$,xÆò¸µÚ$­Œ¡HZç\6¬]s¹™Ó- *«Vä ƒ•©½i{&ë¾z¶¤²qEˆ=ÆÖâD5²º_Ô­…c"0ƒ›y²­Rå•ížzÉ\åµR±\ÍeÑà¸]ñ r¶N0)­"÷›EÖ+ •Þ>¾B¹iŽUŠYsË 0b6ÛÑ›J-’åÒ8ïE¦ÉOÓò¤mÕÝáXm+"dA˜è(¤DÝZ£ëdßá–vÙ2Uôœ‰½Ê 'QÊ: MZɨp‰ã4§_§Á uâŠú<*™½õÎU[ ñK¥ø¶²h­Úò4eι1§}–ŽIksˆÔÆä©R/B¼÷J%§¬Ê†ˆö¸Wó‘ÉJbA4µC0¢µÖÂ0m¯†Ai|Š:†”"æI¸¬0vXܬªUn!™L}ÎtT)NÝ<-Aðúõª†>4 Î'iÉík1ª—ÊÕÎë’¿ýiuh‘ùJ-É׫ÖbtÏÇ€Z¸BÖu'_™òØàÆrtœ…˜Ê1C9{C_›÷ÜeäôêeŠ:&n€®*žM)œ§8¢õ$V }µx¡5Ag§ahóÅìÉ!*Rª‰›È“!¢“8—£˜BC™%š'*:fÃa ¾¨‹® 숖 Å£i.éø|{¼ì ÖN M0PP$H5ˆ”`JÀ£¾? ½µœ3§h¡Žš-/\Rmˆ< Õç&*lÊÉGÈj’“¿}7plÀ\ÚÆSSΗ&Ù¾PÖ^s1Šky‰<ü„ CU œ–Œ ¡˜Uvô•×z™! l¹ó”¸™|Iº_ý‘–ëù²v!Uæ¨)äE§R §]Biª·"MQ†QxâÈÉL>Óª{w ´¦2J‘yÌ}¤q€–±0îRóSà~¬½:óÚ­Èép0íÐîi-6q¥k¢Å$è^¬ßÂÝbõ\XD•%E؆YÞZãrÒQóÅZsr—²i`xËçÔ™+»ª¡œ3ÔbÜQÄÓE ì”UÀGü¦–[]’³Æ¾Ê¦–Àû‹18/i ”¢>£ÝÏ`M‚©‚h…qWöá?!ªì7‡ªwë‚.›+±Ü¢ÎsG³©zA?meòÆDŒ‰ûµ³µÝy®ÎuÁèE³bŒæüÄ»}¼\ª'& Aæq÷QÏÖdBQйƒáÌg®Õ´íQ›$‘  ÎfâLÅ /ö°dµÏi$‹ò™@0,Gïë)qè‚Æ˜³—N;opÂåô:D…DQŽÉ‚$1ã4Ÿ¸Oš˜‹ÚLL\;Ë1ÆrðÁ[ —ÏðÖbð'«· PJ"%Ì@@>r;÷› ÌÉ#æcâÜ25ç#Èï[Ü”“‡q#޶âîÒ ¬¡º9 SôöÎ"31Žrp'»•×xÿPþÎëêU£ìK´AR_MNÃùèJ·EVª`iuE©3çܪO΂?ö5-ˆ<ÓGwQùLQwKV¿ z¬“õ³*gÕÝoB´V «i±q)’Ë3GôSrÁ4Ê<þÌá\ l™bŽª”s/w)¦0ÿ¡ÚsŽk®u4^ ä~Ü^tCáBôLÈ’"LI±åÎhŠlÕ²ª÷ÈA²rÐà§wµnÏTGFN‘ÂøÄc’ÚC„ôÂ7¹«Ñ4åD”¡~F9-½xرHÏ€ =Dª¦yöíBïæµ®ö x©œÁlL¸ex¶´¢MȤ2å~¡'b<‰Flrêïk#ÊéíÈ"-PŒÛ88d³wP%³ÎgeX4,xZKŸÍvC`¹¬}CâãÁg_v§“Ÿv«‡—¾:ó1䤬 *û(§Û2 õüÈÝô’GÁBh[[J|{-‰øZñSŸ^¿ /˜/U±¶~îïa}·ZÿL‹¶(GuÏ?B\æy2ë®,‘çïq s?Äôøü÷8¿Rw¢úÝÔä¥6iñM·zc~üéG£Âœøÿ³¡y‘ò‘gúZ<ò»+ù>-¿r—”˾{4ÖF"‚^1CôQ¤WLEePM4Û4xùß´-Ó·/ ³í”ôl1C¾J²ç,æßý¹º:õÛÉú>tE“wÕoô™‹L`\ÝÁ|Éf?þð«þêd¶ý¯Ÿ6¢ÍP´›¯–÷„|høoè·ŸžüŸý“Û6¾#-?ɸ;-é…9ðï§Z~Äá-q´#-?çé‡ÎJù9#”ú{g·£Ém£áÛÙCIÔœïì©AŠ"ÖÈnÄË_²‘±»{ªê“ä™À^Ø€†mTW«$þˆ|~ù¿åb+ýÍæ¸ü^X~±“û¿ÿøó!Ìïëû&(?Koñ£üÓu~ïœüÍ6@~ÿaÿÿJ#¨†$YÙÒ¿ºx=ÿþᯆ –VkÉYV‘ ~Æ£&qqPMo8¤š!]þŠX—¨ÆQÌD–}×úÓïmü.bvÐ1µ­64¼_‘›&ÄÉ5¶1‹aŽÅÛª÷^SÍ&Æ9¨‡YÒÆcgQ.{V›dîQ“w%ï¿ö' W[Œ˜f,VËõïŸnÿìó%E¦bå„öêR«ý¿l¿›zA(³ôTkÇÄûî9ìiU¨ñþ‡<`3dâRÊÀ¢XW>,Î%’£Û«f }–2£”•yu«Žʈ Ñ/ì/ß¿ñPãŒ3”$½œV‹?¿ìí—êi.UF‡ ©!|Í'Z\@‹¾Y‹ùZEh¼ú³ºIçܰа¶º±:_/ãcÔ\<‘\#0Üï?÷N–L™zµƉ¸)¥­EŠÐ'&ÍFp¥!Jb¬^I‘Ã*Fá—mxÝž£ (anÔ!CÅ‹ï/‡òV(˜Bïk Éulžõרa@oÒ }4Â8oŠß-Æõý3¤bš9b‰Âj‹è¿Âœ‡2Tlf?œL>͈ÄUääW{ù;41|YñëÆÁhö¶ÀL:’£‰Üï¥|šŠæ}ÁvÞ*Z棋|F^p¬Dy«iuèI´½±*£-À›¦wÞÕ[U‚–¡f‹º»l„Ưi,Ó «Ú%qƒšV…4ŸÔMk³"-r‰³I[•Æß­û}• Ä< 8(XdµYñ_õ‰´8«°e€½b˜yãÁåb ¦…lÖÜlGT×TÞf5‹e±¬ÅßyUnõîm¯ªè( ì@!\-ÿ’ëÝ«Nº¨Æ^lgöêûëðØÀ–bwç„yKˆ®ª•>¦À÷º‚2y4Àªsµòù)ŒºznJ³–‘³ ÒÒ¾üZ@Ls°EÜµÆ [øši‚a0[ŠÖ-áie缿‚}3±h·¿ `‡vV> \sœ*þhV €ÒÁ¢¿ækp©vÁhQ Ù–_ÿ¯i/£f&´•á©¡È} Ô*<ØÁ~…뺮Ä`ÁŠå#Bz`WIß0jhE» UÜ o' 丢‹Q'a_…ø|´1÷÷8Ì0VÕV̱íFµ—¢žN#›=¤žê8ÉÎÖ&qT[ÆËÌeµ%øËRßÁH-ˆàÊÞ-×íäŃ´B±ôUJ ››âVUGÌy23æÙÚNê°Þà{…N4g `ÑáÁ=ÁCgÏ$îÈötÊLⓆBzŠÚ-œÍ½õ\O^ý%/X ZÞf£ Fq{ìR–Þjï—¯“.îi¾¸äC®õ­§­Üø»ké],µ…Ðlñ=§[¥Œ¼ËYîšÝ[# Þ3k?€´8¢á]L8 9w+ršù a|ÄEäȵڧÌlÿça=#ãÀ„^¼râÖá}ðˆ¨5ç¨ów=åÕiIŸ+¶.nÚ./j,œeT;¿içZø™ë@:-ȱoÛÖdMÎ=œ1t²Y8 É®Ëo¦ChoæŠ<1÷·ŒxŽ#iIdóÄÚ6¶û½ÞŶÝDqb0bÄU’ò§#ti›m ­éS~Íw|˜ÞÓY˜a&̙ž¨âhiœy’—}u7Òx h朔µ[¼EöÊmcß=à@í„ç>ºÎ,gá“Û¡Ë K:i –q™óÜNÍŸGZq³Ý%¢Åˆ[›ùž8Q"™­ÌYgÔv’`Ý£ûÀ!bqØ!9)W}ûQJŸ]ÙåÀÂ7K&ÐVœÌ/¬˜ø°Gîk’( õÜTÈ*Jþc‚u+"€\PÍÕɈz´»_ocsõf¸QZ´°s u}ÊÍ·„d±5ï X%.~Ø+—P¸Ü£ßÝ$Åâ9ØH _É ™Y*Õ52hÖòu&t-31cjë`Ž ûù¤ƒõ¸Žr QÉ(H¡æ(ó«Í¢îÚ½AD©å6Ü×w›ríŸt¸at.ezñª`<*<Ž¥°¬¹•”ªë83­Ž¥ø*³ºžÄ­oLÔL´:á談_s?Ãð¢,7µ îö×Ôš¥GvsÉay ÙÏçõxíw§sCµïw6< ó“”²¨§Ç&öçîû^žQ"œ#êH¤)DÚ£@ÔÑr¡d²ã”ã*™ôseìfYŸ¹—d§µ#ætÔuSÁ·cÅg ¥Ùf<°ˆwØîÔˆí\J+Cv|Ä-Qèd®£‡“ÞÃDQ–žµ6äˆa“òé^ïê„$µÄ$ˆ ÓSœÒd‰Š9íÄ„?â—÷è=Îá#ŽJ/ÜmÜ<ÁÙBè Zj…œ—Õ Þ.9.{Â#5˜€Þ>;Wù{j-·sü,ˆ(£Û¡[²}"/»du¹¿Å[Òª—,÷º•¿%<û³¿¼a¬°§6¦º+¸JîûüðëòͰ­\¹Ö"šcÃ$ØŸý·ÿ¾ èC”Ì’šÕ›'b›3YÁ™+3§ÞÒêtÁÏï~¾!¾m½5²%Žì>bÈYK‘‚5¡Y‘%Â"nªæy[ œvz –F#ÕªöÞÝ¢5U¤nÈŸ?æµjÊ{Šò°E1ƒ:Êê̌ϋrâQ²ùÄ`±ôÕ±3ï~7«'&Qµ²óæO[rŸù ­»Ð†¼sÄ"ž¶WùáïsÊ?ýõþzã;,yäIÈÏáѸÁwézm3Öhž!ò^CôÃlãQ¼wú]cÝ)e¼œÊÃ\’íFû-5lSÂîªívjÔGµ «sA>\hßjñ·T¼M j)ǘ‚W…àˆ‚VR†ÜC¤“üôRb¡šg±$:áC\÷ÈèÁ×edÂÞʯT->(DKp¥Sq¢_¾žTl^éhgêÐb ÚˆNjÜ¢=ûÜ{™JÍÞi.žz½Í¬ËŒ=·P8ðކaíîÛL¡×QX'õ2ʨ£åœqj-£Pê'âÆÇÎÁ‚1 ‘±Ó Ðä~l¡Ú.m‰í¢~²B—ê(ÔAF ÁNïIQã†I¡ Ù>¦æjiGƒ—Õ®l“—çE˜y§=î¹`™d6í 2ÚØ9Ÿ Ò”½Ÿ9iÎ40œ”v^Ë^9g3¾eúïêIËC5¦˜íªs†ò6…)nÊnDF2«}ÇÉ®>©Á<«!c½æJšZ–q¢øÞ¸¥Á{°·®=PÉZꄃòë5y/IUŠFŒÅ |Çåó gÕ¤`έ%·á;ÏB“Õrõ!#Ì « Š^ææ$ ¸lU¼I ç¸áÊ_ƒf"åÀEKì,‚:Bµ=6ª™ ¬>®*Úg=5ÕW!DŠjɉZÞ³ÙGp 6äJ‹ƒÈÒÂhFï¬îy§Ýô©à fë:&GÀÖmo傹qêCrDh´+ܪœuø…M°}b;¨™(`™DÜ wÍÛân¶[žÂ Í2ËçN#Å·ô¸#)!•lÎUÈ¢ 9YŽíoˆŽ61nI¼­øIÂýH'·lƒ¹š“ÚrÜ1Q; ;ívâÙGT•^kx–5RŽÝ¾ðœ©6Îa'è¹í{P_𠵓Tï»’e^àëRBDèRÙÏšÇÒÓtÍxKƒGrx•n¯ÛƇìß‘XyÌYë‰Äÿš˜ºƒd‘Í€™ùN»B«;zUöÁ‘²¶œvZT_Èæ†¥¤ Ð1 Þ‰¸±?M½:’8,*¶ q¶ÌÒ‚«•h¹çVaDA9ìm¼é …¹!‹yµÁÍŠH„EØ–£'(ÅA¸Û7Öw$&ªM,Cí!ΰ3¡àqð6Fsª­6»¤cQžæ¤èJ¿šKÅ æcMŸí÷à¬ÁýgØižÚj#éÑiÔGãä†à ï-Ôy8¾·ÆV·‘8ÔH2x ä‚'ü×ïÊ=yâN8À‡S±àk&Ë;ÏaWKŽ#;ƒ©°´‚;0ú%¥Nv7Q¨AÀ‰c‡Z{ßþÝÁ;+öqçîàcÏð Æ·O-ìbvÊ’®Ž1þx’žéà ˜%ZˆlGòŽã¸´ ·bÀ÷zè-›oTÙ™ps‡óT¬Õ¾£)ÁÜAï<(€S›A‚YÉC‚Å“²½·J^À²?KÄÕ©ï_m˜k˜%Û‚±J£Þ“îD·÷Üûag<ƒdr~ì “ 7ìÛjÖudÛâˆ'><ó$¶¯`ô¦s˜ì' ³y{í © WâËN%ðß±y@´ôÊ#V3&±˜ãÙInW¸à±[òß-"w­ÿÔ͛Ը”Áâð æ"ã´È{£ ¥GÈ…+¤yÄ”½VìY`n^¾N¹•]ëKøoÕIá§Îþ ·›-[މ²÷6#âûkH8&Ìyˆåˆ2B†MìÔ³Ö v†ÄKg7;÷: ™ö­‚Âz…v6øë!Th$ÊV;¸*;±î‚ʸO‰XœÖœ1²n˜øž’eçö=±(—ÚË΀ƒçù1B3‡Bjƒv`ø· sU¶ß;4çÙì°Uäjæ’¥—LAp’Ò½¨Øý¶ kÈÓÎÏæýþÓ‘ lÙCîÅbŠÞËN÷Ñ«¡H~b^ÂD8¹½C5•R"²`U<Íß(‚KÎ%[t¥]OóO£ÕD:t2Ÿ/±î¸æW#á,ëÁRÑ>e²hhçäõÔ >±²†¨chÝiÉyàÒ“x€lù=ŽšdUôÞ—†t €BÔ3ű„ TNÙÌIŽØ’ì4C,²~dòÝŒëËùúF®²Ì`ËmAÜ wýïtK«ë x+Š„Eú *Oêj^ÆŽå&ïÃ=LÿHwçã²Ó$FÉE`d9ËÇ_´¤,©^[1WwP€ºh“dû£KIãîN¨¹W§Hf~ Ï(Ó¯ãÏ.³îÔDh£¹f:¡Æö«¯-ÀE‰¢ÙÊ9Zµ…'s_,”ŽX…«†.¸¼¼”9‡fïè³ [ÚšÆò!m¼ž =s›d©£èhó¨&z‹_ŽˆöШ9ÑÁ£Ÿgm°ù&3>¹'œ45?Lx‹Ý«ef5EųÞ_Ú=g;;ô†|ÈNpÒ/sÃcKÓQRR¯H•“~ì{Ò ’J†V„æNcÙ=‰¼'°€´õ™rÍå|ZÒ-#M¥Xž%š§Ò5~3^aÏhëÜÙáÕ¬; þ%„V—a'' Ëoç˜;ìÚë…dyf = }»ÐÒn(úŠ;¢µ1©‚Š×³w°÷<\¿óT°¨…l³Í“ÚûãdßB±×[J-sG*ŒW´tµ¬Å~ ðÿ±w6Írå¶ÞçWÜ¥³ˆCüB•7©Ê.‹,’}ŠÀHeY3%]Í”ÿ}À+nßnò4yæÊv&²«4®ò¨û4 ¼vÊ‹WÆi̜տ¡‘ÜÍ¿M¹Ì§Q‚UíÞØ÷—[i‡XvqǦcŸóKÐ º!æ×7>“#ÈjÕ/'Rg3n¦‡œ52’È\:s}x8DI•z²®EvzBOÎè™À©(ºúU±ïg;;ñÞÔËRAã€Z¢ÍØçèžòÇQ Ž:5³Ð§¡îXÀUÈ‹§²­u>¬ÆHg°Cs"vu9:BÕ·F ÈÉÄä$+Ù‡4뽪·fž4Ú]‚·°ã@ªøõÌd{&|>n²j(††Ñ½Ìõ}óI¬ŠA$[w(œÏü±G¸ÃºÄž%¯Ò‡1@Ù™Ó9%{2­JÍhUNÙR§oÊ¢:â`A²Ít »Ù½b_ü8Ž!Eë[ñdçÚ÷³Á­-Aå AqN½±uçÆäÞP¬Iw°‡‚ ƒ½»ÍÆwš|*>Âlkqxâ`L„™†¤-ªf/ýúèŒðX¡ªÕ^|¿ô6YâNJïë· KÞ©¥ˆª†=•|æé0S½_¸iX]?Søö*\pjRT ÕâÕ]¥ê +z0C$HÈ%øTŠ9ÓR¶2„¬‚£Ä‰¬ÔØŸ.úËOŸœeŽU81U_U9ìÜz=;±apãkµ© ­•‰O(³oHV›CžUª›‚®7ƒõîþJø—Ñ"'B É\ÒØ”­=ÓŸ‡Y£NDÆì9ö0c±§ê;LíËßû¿Sûðíù_ßymùÕymßajWò SýÝ·¥þñã øç?WÞjDrój^‹¾v º¹XÙoºùq»ø÷ÿÑ!n˧F·Þ Üßä–UÈÅh|ŸjS¸ †¨BÉ:•¨ÃÈíßþ½ÿ¢‡/¾ìáGyâªýÇÓ¯]çº=“ÚÞäYf~÷ð´X’ëÛwoÕ7>èK,ï¸éWäLJ7Ÿ><>¨ãz‡ï+ÿñŸþóý»¿vÆ›þÿÏøË~ÿðöýÏüññíùñíûúÞxÇùø;B¶¡>_¸F¶¥paPomÁ‡dü d›µ.FëÁ\0ÛTäBˆÞ_äðFжÏû÷_/·ùˆìó¿ñÝöå¯Ý ÛFkö:ð¶äоjÿ4ŽæÎèó³mp×¶£’yìôôÝy)ß'êyN(½pkµãó§.¶©ÆÞ»Ö§dIÍ%¯N)ùk·M6¦FlRLÁùh“VŸ¿é€=ã›Ø„dªµÂj>þå8¸_IТI&£å[æ—¯MÞ±ËÁqXrX¬ˆºzÍE9µÅVÑ=7.·Õ;¢Û%ºßMmDôÐr”|nµ†Ø/[’æTÙ%¶« ´—*Ç÷ѨqžÈ*®ðÖÁYfªŒDMCPï_©®ŽÇ»XôÑÙ©À9£ )7:µ"ˆÅ7¿èiÊõ7úBûHOê–Ój£öô›&7)Ö!ƒX »ø°ÚyãFûÒ”93jÌ×hõVâ…•9®pë7c˜bV•‡TVgÛ¾|ôIͦPëòÝ'è³W‡«>?û}^ÔPzõ([Æf :¼‰ÔaS€À«SV¯„×rrÍ{Nú¢u³nO °á#ùÖû‹ûôâU¦Í(ĹǫÖ= h‰dã¶lè1n¡q ¾æ†‘B$Þ¶ÎS‚Z‡TÆ5,óýJdäcS \E®èÊ*‚üÖ,O+ëH06áÖɲR•0ÖbÐ 5ÖÕNÝÑ®™VØéÒÓ¹b˜#ô$×îKÔÝ`}r=¯E-›”S!ñ«#Å.”ÂŒQ袊2gT©pJç,ñ«#¿n·ãv\m±ÖPOlQƒyJUŽ>ïKC.jJ6e/[,²°ŽÆ ‘Šh<¼Zê}eê'&.\TÌkhæü^hv§˜”Rˆ…LozeØÌ*­¡>õ€ŠàméCÁÏ™‘¯Ò¬×À¦Ii°ZÜ8óJ³>} %(>E4²Z{1Ü6ÃntÓÛ]jUœZH{É·{íÌì­¯\zƒW®u±:wÛãvlÝ<(®zÉȰ:þt#ϰ@¡$!ý#‚·ö¢ä#Ê4z bjÒ3%äSþ騞XI,Î÷fŠ-ß} èL›8ö‰ç2ÎóºÞR;mD ™d*ìíš…ŽáÞq«¡yÔOïºfëmÎI¬rI­‚oD–êvŽpB£µÙ»Ä=Ó&NÿØúØûˆåb°§{»¯þTнR.ª?ÀеBdÌ:©ãëУ’DÓ£>çŠcp'Íï1¯«’~G³­ötØJ•¹Ñóã“5‚Æ®«3ëgò¨«ôX€D©Oû^->¿½¡x]Þ­M˜tË·š|5X¼¡fÚjËùm¶|öø.dÑë»hX): wH*ŠYTÁzŠ”dµ©íJB7æ“`ég}YíšùzÐÆm Lý%ò±ônÇUÌöü~qÂPn GìãÜ–;“¯Ú”ÜÏ*¾©Ûý–í긟¯fä¾è-¦Q­ìe‰]—VGå¶YEAT£S%ªtª§.&«P®*¶˜®¶ëjÞm5ë7Ѧœ­Ë›yèûÝ[*kª†¬ !õnÂs©¦{£³jo1—UzoÞî|3èܳZ³=ö‘åÕ÷1˜«}Ä/Wf2·Ä©úð˜Èª¤Lfò3ŽÑ¦-¹.–b¹ê’¨Zpçê&£¡šG(‘4þîcÎE"GŒVã€úÝõ§ŽÔ#¢Ë€KjºöÕ­²ÈnOë¸ïƒ¤UÛl8u#žJwq}£µ¾_,`Vµ<Åíy§Ð=4¦WÑ¡ñM§žI;õèGüfC!¨’éYSËjÛåçÏŸ÷@Ûž…Àè³*ŽF{.ú˜zPUÄ0[jë*Æév£Lºö w\–1ÉQ)í\´º¯ÕÏÎ9×BìÛjçÍ`OŽªjËX ¨óÑ.CÖ.EÒ0¥Ú|/œ‰ÅøBÜZž¢‡N qÁj ÅŸºœ!ÜÐô&Y¢¨Qà*Ulpß}ˆÍ­ ¾¨¹Q÷tæù™95*Í€“öLðÁ¶·±ãøõlõ Óîö÷¼"ù*©² áU¶ØíFf9¬*W| MŸüÔr¯ÿc…šj+ƒ[…Ï_}ÏddAè½Ç­EHÅH>‘/?à7åÊÉê¢W¬¸WÓuÔ×ÛóJdÕ©: ñ\Nx o’ j lM.öŠ˜Ž™¹Rs¿{MMÿaýoß.ÖšDTuÄÉ©k’Oi÷Åùº&¸>=6‰&ÔUÞe9ïüÖ¯·×hŒ“ú§œ.Ý›€®¼K ›wúðÝ9a³4Ò!„^(®f)¬6¯‹zF§ …ªÿ -‰OÙŸ»yÊ{B[ j²˜°wŸó¢¢a:­,D wT¹Z U#ªÓ%ÉGòµ‚Qñj@l [ríxÂ"’ËCRçŠ1z—¡£À‰Ðè/¨~¯iapm+}H ²h W'“=¸mú©OŽ SKV­]ù<h˜áV…ˆÄ6[_Í*ÒâëC§g5£3Ò_¥jš½xþ.â:°÷%Te+07ÅÓØÙ³³ÎêNÞ<—>Îe.VõjrCû’ç3'¦tPI­ìÉ™zêVhï²CQw²Ì^xV®czŸîÛ €`Äì÷o¤& qòTU¿# ©sZ¥ºßZÆ£©}ÆHS©Ð…N‹{÷R_ç=ýÏo†€@%˜>óFlä¸J븉DÆ•v¬± ”ëêò[]0«çgŸ¥LP‰Vc:௰Y‹Ïj:¬Ò©«ÝËÛ,*”b¿Ý5z8™$^›,ªò34ú6ïeq– 2ÅXŽ“.YÝKÖ¢MLC ˜UbªÀº:€yZ^2@Øé_Õ>;g Å­D÷=æü]3Ò,7Û0—SáÒÏo?< U E ±„#pÛ¾kº;]§bÚÀlÔS§fŒâ'ig}€.WqÒG7ϳٷ-éñáL&—ØGøîÞ÷}8ßÕš²ŸûXc•תöš…¼—ø? M…£ÃÐ+'­qÛºtaFYîÈðÚ[+ïE!wá–¦FŒLFe*«Ÿ;-ÇæÃ¥õ¸ÖsªÛ±êx¬¹žVDn&Iõ±¶sí>£ÚTÕ)Ј‰·tÅ‘-Ütµrfë kÉ{]ÛàVhÌÜo0’½ ŠK²XÍñ=089ß!gßröá;›ì;›ì;›ìúï½"›ìQcO¶ñ;%ìwG û9¿ûî]þûrÂ8ÚêTÄ ^ÙTUÏ„€>KªäS/’°²Ä ûï7üð_ù}ËÚ:ØÃ¿<è«~óã§Ç‡üþ¯O覟zcZ«à°'ÜÑçOýó½Oý]Ѿ<\Ѿ‚qo÷šöMû’öebŠ6õíñLû2I#µ k}Ÿöõe»þ¿ã}ýÂú³OÒ¾ÆköJ¼/¤—3?ÿ4ÃsÇòëÓý}ˆ__¾ý¸–ckžJ+•ÈpY Éýè5¼·ÞÔ¨ÓJ°¬D¿~ÇÂMl εf“VÁ¿~Ák3Ñnç^9q.º2…½P «`×_sPGÍö¹uBÑZ+n1ãxýsj‰õVjÃ$¥ÏíÄþ<(?¥Ïõ¥VBÓÿn¿Ü{}v’uIrh®ÖÞ߸˜R»=]‡ù£|®®&ÂÔ,¯v–]¿‚qbÈ>G_œ®}Ÿa½˜×¼Ý¦w;_J#®N8[ë œY©q?@‚žóm¦32Yí–¿xÅ“RWìÖ¡µ^ÎuµSçha&åbÑbS¨¥Å»ž£/:(kˆ­æ¢–[¤-W_Ù¤Ç]…‹³hÉdª&ÅÍ¿W–ÒÓõ£æm(«ã˜^z‚Ãæ)¬À)©Á¦’ìz‚o;™ìñ‘6Ô!ÈA4@8ï–gÓŸJu ;5Wo¶ŽvìœÆ™³F9êÚTQÕŽÝ9ï~Æ7祷(™s5E/^ ôÅð¦Õˆ7hTaTŸÚ¦¸G†óÔa;™“·: }´2SnMŽN¦d6ÝÂß1vkA&ÕÖä¼Q…ê[`¦7_ÈÑvA©ø]ß¹p/Ðû9L(„†3Ùvö-ñ%Šï;Â,èi““žç¨=-‰Ñ}dا&|µäéÙý w ‰ë·T*ó€Vאָ^éŒd(>™X³ ßN=I'•õ=ho«únÕËT­¤ÕÞ…Ë3<ᘖbXÜåDNòjÇô­8fäœÕ> †ê™–‘/ßÀä£9v££û¥ďеºþÓ>ǺÜUÅ©i!¬RÅFöyÒ´CŨCõjÿÍêäâ+ë<âq€g`Ó½KR'³Êy¾üà Û&µ»œ›>0—“[æ¨Ñ ¨^w1ÛbÆMí3½­&Ý„µ¤Îa혙“Ømš$ ‚ RÙTóB!Õ3l …ûŒïÇ~R[šÏjJª5–Øý†¤ÏÈVuö7=ð%»°› ˜·£f_ÉÔØÇ;VÛd†þsÜmi 0©kcï7Uä1†:pŒ¾÷»J/J^íê~a‡Ö›A£~ p©s‘O.ÉÝÊKßeuTÿ©ßdíÙìÑ«CþnVþ€JÏF#ó !‚ž[¦øf¼¿ ›uÐ b ÂSÕªhm«e}£Xp2e;ŽSúœqH-œûü1ñžK˜S‹©º¶¹wV[v%—\³³ô› à¦~£Õ²$"®VnÞ¤"Ç%I!ÅÞÞæ]¥Ün»×éâDmQ)R¡fXít«Ö£~âXLE=§]îaç‹P³õÄm°«w^¢5zTt±ls dN¥Žg7„&¾ª°*QD[ q“Õ›4ÎÛ€¶åVƒÆB›ÏÿÚ4¹ë§c"¢.:cIb- ;ëwÆ 0rÇepôͬ²*ovæ¤<‘ Ø ö‰ÔY0z“yÔh5”¢A£ü¼Úntã‰'MþF%&CìXm­¾|ìû qõzJ%›˜¨ð*ÀáúLØ?º0…­Ó€ÜE¿Ì8~yHï’kEM´Ú<ÐZ’Ý“´ÕõŒ@ÆèŠÉژϮq:ªÆÔ*ÑE pOn¥×çìRäl¨Wma{ëéæ›8$•×R9HÖ‡‚qµ²ùæ¶nLêoRqËѪs<éçUö¹‘‰¨N7Äž0:}ÉrƒTƒL¹8CØ|Øü†×„ÔÝ&‘ïðÒ¼~‹ÚeH¤aÇÙ‹•¥^ áÿeïÜzäº<þîOÑOl$’U¼m^ÖÙ5‚ y0¿¼­$0-9q>ýV4R÷ yš‡32 A~±å±Oóu!«~ÿìÑNZgÛÊîîl½#@¡³¥~¯«ùl¸âÃWÇÑCÒÊF“­õ³[’ ªXf_ŠG×xÉîÜrÛŒaÉ…ì!Þ:/]ôïµ UBƒ<7Í%ev¾Ü=ÜÛT 5”æ1_²Í;íÝÈ™ll5«PˆsL˜e¶mP Ø> tóœÒ°ÿ·gÉsHqÚDÉY•5vMqú´žf Äÿªe‹ê]q:fY—[†i4[Qs‚á\I5{•g…,«±JsdKÚ‚ÍhÝ¢çßaª</רy¶ãøÔ²öQžª­I;ãJ5foõC·u}¬_èJΖ- 9³8K[ýS¶…l[Jü¶«×³]þ–TiA‚xâ0£jÏntùÑ›© ‰ #$¿ˆÚò÷¨V?â`pدش&ë£è o‰Å”jÜK –Jò•ã$U¬¦ cÄPòú’Õ yϵ|…7ƒæn²3l œ6ÈÝÏÎ/³Ñg]Œ2É9Ž1°ñþ[Œ·/ÈÏòFóÎWJ(i÷Óob¤²ËäZÜÚPV÷öZá,0æì3rx¼t‹½ÑÚ'p>g)¨u³4ÄQÑt_'‡dݰ‡®ì8­‚Ç–ŽõH.5’wdÌâ½Ë†T' :qBC(Y¯ú†MI=³%àÜ!r~o¹ÔǽÖMOØb(¯\¨HÍ,èußé¾ •2".ÆNº-é zî£ÊÍÆÊfH9šUyîÈAÁ˜Ô¬JÉ ¹-Ôn¥þ^Ëh¬^|ôy"[J¨5»ðä#½¸Â9AL5ˆÌÊêðÔ?¥Šb/Æû6´ÕÒÙ­ÖA£Øè³ûâœs¡¬fCú9gƒÍÐ8NY wgÁYJ~‘pqfïõÊXíFP(ž4¿Þ·`móÖÑc@¬IjMËÞ¢ÙM‚NNZ©ìب åf–8q7ôôâmV Äš×´3l¸¤!©bjÀF†Wg„°·Èú!Ksî’­Ë!óÄäYZðÝèCF–‘’ÄS¢ª *>ªob›®š¢äo±äŸ¥^.KòN¡1ÑWSÌ,»•>äÑ"ÜA6¾"- ñ0‹tzXØ»E3ÓÈi/^tÖ5©Å¬½¯ŒTU¨Éi_­á4wVí¬v³Û”ÉÉgâÐ)è°·ð‰é|÷Ë…7ékÒU¦K –³…Õâ…1=.òtecfŒÃÕËËêó\òÄ'mØ¢‰`ÌúéEwŽš6’m‰¿ÅÞ3áÏÆwÛª”+”#ÛŸÀe,ºÔºz˜¾¥Ùã4['ïê-:ÕcúQzoºÙ¢9η.` {Íó$—Í“Èe8´¢¼Óˆ^dgʆӉP ´«ÅúýÆ2ë[rÉKG¿(á-X¸üò½½¾îöy¥\)ÞÔ¹e[÷Fâ½\¨¼AÌÚiðJ#›¤ÅÝð´¸þ CWÙ ¨lðÒ/Š´›¼Õ¾ƒRt†ûÊ‚ûÊ‚{ìoß|y,¸?ýç¬mállûÛÁ=!탉øŠDûâhoõphW6¸_†Vb äF<Ç„Ñ¢àŒ §yœ#qoøU‡)Ú_o¿Ò-§ìðÃwßþñîiÍSÏ®Žw´³ãû¿z<¼{sx{}pøç?®ÛáUºz}xE¯®o~yvøËÛÃÝV>üðâ—ãUI/¿ù®V1BW¯:|ÿï·ôZ¦ìxø–ç÷ÿuø×‹«òâð/º¡Ã¯DkQ}ÿ¼o_Ðá^žWDûü]N® nÿŸmµ@ŠlqÀ±?…Y†º|Îö•_«h„í Ç©&Íž1ŸŽÛ/œ¬ÞF¯¬:¾C½0îVc'§n†œQ`LMÉO&¡§£”Ð:C2NÎ!ý,-•îá;#§Œ^lfJÅRg/?NúvUF#•8¾€H-òÌ/˜² ê-»Š lfƒmn¶ÏåÄÜl·ÞUg1q£-ežý2@ÁD9+F—\i¶êûô3ú¥›™¤R¡Ô išíêû´.· ‹+*’†š©&éÉ[Ì»‰6åv¥ËæžÃòÙzÓS÷1ªB«=o#›G˜¾Y˜#¶ëd1\veºô!´ë—ZG©ÛËÒ«ÄY¡¥+|Lt`矂n)Aˆ)™wqINºAÕœ«q =û½ùWaé˜ ´Jš²˜ítºoGeÚÒ™Ì+@2py–îuψÐåì™9Új‚S‹ÚÌ6Cœ\ƒ l*!dóÝlÕˆ|hŸ†Ui¢¶Vµ ¹G-faלçtUºÁ6ž÷À‹†W:ÅÙ¯ÁÅS²§Nr*ÔÅV©Z“8ͲÊ9hô¯0ÞAÒÏŸD¡º(ãÊž1?2SÕ{Üp6y€µjïÙïL#Ü? >ÂÚgÞ‘½11W¿rø3ש­É–ÓY\”Væ]–{P%Ý,ÇÊ&Y²9p|¾Ã™Ý;.ì­éX8ÍçD‹}»ÇÙF·ÓÀ§ç}ùë£å´Û!µ¥(|‹ù¹Ö’ hÑqð{Î=.•)OÆG©Cò[˜¬?óíãRtrjº&«"ÎVùÆö!š×th·¥³ãžds†ßÁæºUÔPš•nóe×Ðgø¶†Ñ@Ö¾p*Xf+äÎâ´M%ÎTÅyÎüu™í/;ß9ÝÓ+9V"màL0µ¸c nqŸ‘_ŸOìa¢fwìwG›@kĤbà$Ê©YzÆý·qy' ¨•4yíY†—±ƒÎÛ&¡U Ä{–Éç£>d߀ó>§j[`‡ñÞF‰è(2}°%Qƒ_Fz&0™f•*…=M³ÇL6éq.™tö†Ý£Ã=7%“Ì-RJ’khŽ×äbØç¦Cò³­œe7qáì­ßXQ½…ÆyƒwÀN>î8íœìOeë-ÇÀ^!ÏŠ^IF/­ "FÄѶŽqV-øã-Õ†àAà)f_¬ 57‹4~¸TF— ØÛÛ¤8ÄÛæÝ]uBpüšu…c;¢3¦P)ºÀ?i(ZzìÞ A+òЊ+%ͶøÝŸŽ @‡R?ge1×iAïûyw¿Ó,›í@¨xL¶îLžÀûä[óE…(úz–N}f û‡5'ŸJ–_åå.b`‘ãïÙv‘Ó§Þîö✄ª)!sÒÖl^0†ˆhrZKÛ]¦YN÷ÈŒå”x“ñÎ5’¬s¶ÁúnMn¥V¼ÖUK‘CÐmÙsÝðéè§wÝ»{ö”ôtè}%*cÕ8ãÉ8eãàSͶôž?-µëJÝa$›²òlhU­vÁÙYçÑ[m,ÓÜOÝ©*XÎrt3üžhí4Iè„¥†¢W”ñѽš Y ±Ø3ïLåtn³„Ìþ-ãH½À9* #g»wÏORÆrsìôÁU~~ù}.XÚ>6_®ý‚IIxXDv!w ‹š²–²‚Ôr‹yO ;©sYäN°:ä-S=îÙ”SÜ¿š«rnÅ6\¹«q(²ÒZŽl>|­>5š…nœEõ}%E0ãâì*¶VÊl÷õƒ#Í Ùƒb yÙsêê¦%QÎ `÷z…c&¢"¼ñ£ÚsvbQz{Ѻcr(âÛ¤wNÉÅc^׉°ÉVI-ÂMõ3N‡¡¡‹¦ÔdT\¹Œïwý:aŠm9wÕ³:.}+¸ÕÛ y§ÉWO]YÈQ†BYET¬j‚lj€ºçR÷2šl‚R-;ûÒh-ÄŸ€­'¥ØCX9î̦­äàéÝ¿Çõ4¥† ôXJ“6;R ñP ƒÖ ÅhÚ,‘î¾—î‹;+ÜRàÊI…ÆYÄtçúµÛÂ-¼ÞV3²šþ•`ÌÆT…½¯tŸÉú2‹¨ø4é#r‡ßšo*sB»RK{‰RÎΓÍ,8v_T¸t<¥ä bÓuÏÓ)>ÀùBmhycåhoa… $)8)ü ¡í8Ô_0¹›ðW6,¢h³HC®\\äE(¨„Í‘'¦…îoÍ-mšœEÛ:¡x>~±+GOcº !ZAòK­Á‚eÙÄj;Ái“|°Šó­Ý…h”#è:ì¢2w¼*½m0«âpnl€Új†X4´,¢Ã<õ;C»MhÜýT»rPížÂ€Ó·yýš *µh6]Ô¬YʧXÁ)è*X Z0¯ Vr›ðtÈ-aÑ1ÆJ³Òœ3™ ô磜ÃðëEp¾¬œãôïk|0œ5²VçXfžÎf¾‹Ã3H°­µ4Ü1ìGA²òòݱŸÎ ½Ž­­MïMû!º¨‚ŠUWf±áç«o[lÖ!ò4”€’…Y®çÙtôIÆ(Ž"’e¿ VÅY2£CÁžW'M.¶ÎÊ«<ÈcTxM )ªåjrÇÆê<4KÞFK&h¬zωäÙ^ßðNq•¨{~b˜U‡9‹Î»—LäÀ€²%ðboV2ݳk›îYbTÐȧbƒÃŒ{n‚/~ju­hlµúj–* ·ôº?»Ï¾§-ú=W ŸÎ‹zNÈ›š A¦áJåÞ†«®¯“Àd7«gy:ø@_,ÅœyK¢`êÑÎ*4v/¯»²¾‰Pfá$=»°r¿|{û~Sú—Á©BT©i†¢ß·ïŸ’÷±N »#uäd³FÑsi¡ÒŽø„óõm䈨ÎQ²m.ëÈî’fµÚG{}(®‰ šÅd8¿ò.Ú[²¯Kb$vAVáÊÉÍP.LS»m”‰„ªLSïn”? oî^×]%NT®‘±ìv¸È÷«¤çc¢)äˆøI3§ {n©ïžµ¯cñr+6Tƒ~TÄ=R¦Í¡æ8 Tµ.÷mŽÅ3BôdDÎÕ›j->ªlÔ‚WŠáT¼&p‘î©¡ØI1Z Ѩ(Wnmµ¼»-¥à8Þä¨Ä»ÒUý´ì¸ûáDJA¹;æ/ù¹Y° ø+3î+3}óå1ãþöŸW©ûäøÌüvq½ýó†#…W×7àM+,§ãÃ/a.âr> ’n޲E>Ç¥S•w•~~ø÷´¾”<½üù•é~oþÈKŸÉo°<;^?sßþþ[ÎÔ®Øv>x5OÂ×{3M0zrîÐWZßÉïÿÖi}³»ýóÝo }ÒÁâð×Àõ…‚5g!È®¸|«SäôÑ Tj#Û)\ß/èðwJ/o1q“‰9üõök®ûø¿xßðë©~-üå> ,ÅçWïIpÇ[–ÞwïÞ¾¸¾9þ÷7øðÏí‡Èç?^ßüœ^Öãáw/ßþñí‡?üÏõ±Þâí~÷ÓÛ?~sûÛG¢ÃówÇ›çÇ›òþ>ÿß¿ÿùñ·ΖŽ•ß-ÛÜg_ ½”uÞgýi—Á}zŸ¶ÚD‡çô>ƒ¸èÕ)½¿&jt'¦¼Gï{¿ÌŸÜ ÷htïü%ü®_Ö|ýË"¾ïÁ|= ½ƒGÒûøÁ~mxßûäèæí £È8^û'ºàaö@˜Çž¬“}$WK˜Q˜½ræñ§ú_bÕœ¢kj®(pÿÌlST0šÝ@ñ®h2³8•Ó±§î •¡ ú¶«6Üñ1CJFc£1[à¯çG¼XKÁμj~—ž¥Q³ªH<ògëÅø°‡è€rû±ºFÚžŸ‹ ÈQöÁj*£I-ÏÞé½cÈ:+G:4øÌïÄ'>®~°‚·9R^ä^jÊ?-™ÙK‚“Þ,qDÒEܪã¬Í"Ô>Œ>èìwÚæRd­™ß½s£õ>ˆ2‡^@Q%Ì–_Ì÷v€ÕÿÏÞµ5¹që÷ý|:åTÌ]Ü/uR§";Ž­ÄrTVì¨Î‹ W-£å%$W«õ¯O÷»"©™!0ÚUÉ6Ÿ–ä Ðhô×h|­²Ð‚pgCt¥7û7Òå-Ô)„kÙbü¨Hå].áERŽ X ÉfLùY=Ç £ˆq´‘ÍQ˜ÒaCÞmá“a>pO¢wÛV÷õ âáѤ´!(SêQÞíjëñvàRQ$ Îjc ½ø[ÜN‰¤¤kèçd´–ÚP§4û"M¬7œ¨]аˆJù›Z·Ô¾¸_IDÜûàsð²ô@t³PŽˆ8¥t6$3n)ô%oÛîà@5<á-^c‚èÒƒÊ5ÝyL—qST:Š<¢ðzG“öšy‚Ëäœâ2†¤Xiý½饌 DG$l’æʇ¼€Ù !G¤ŽÌ/‘}(×v¸Óï‡=,¹—Á6”°Z`ö¨5V'EÜÁNÚ …wÖWš&bi øNÓ÷Ê´¦Üsb5˜‹’”ž2nå¹ïŠ- š ÐP\yIM…yPÀŸÃ¼ò‘Xï,3` [î´ÝñÀXÚ*f,èî\šÀû`»FdÌœx—%lŒ‘•†hïY ÝñüÄ'Â<Øþïz—˜n'³O/i›1’0CUàõ‚ÝGÆÎ2‘Î’l"’–æ3‡Æ;#Ë•3Î*Éau'HÙÑA@µJo*¢f»F[tDHØ©’L†ç2¬ÃÊ&»CVH¢ÎtXL{ƒ$¸#Øk›´ô†é¨h`|”±¤ c &µ¦€‡²­wI¡ P†£"56Ù`]¬·x{¯ÒgˆÑyKh*j0FÛ¶Ø31dd9åÒ`ú{Ñ ãk&y#Ú‡zTÛC}É@¦¥ÔLaFòXšÝ¸Ã@íˆ\± ðröŒÌ{Y>&e·þ1K8“" Ͱ³«½'ß‚0`ÜKŒ>ÏVåq¶XF»6ęꔔFHî/›6'D•ubœ‰ì|¹íx„ÔÕr%íyrZ˜RrÛ{Én¿he%•Ù+F]$¬”foœÐX0PHRÃVT²¶”œm£¸ÛY,¨Ó†ÁöÂYBwSýjì»þ 6®“ƒ;6–Òí쮕Î(@'ÑuÀõÆ{GËå­„oÐQ)ËÁ`¦Êbê]«£õB…÷ÊYŽÈ<°œKoXžt„ÉÃZÃ,fÏÑ•ÞÃ9Øz;.U)0½À²1¹¡ï*%§Û®ÂöQ ö?l„Úœ-¥š½Ÿ¿žóðF) F 1æìÕaràô¨2ØñR¶ð]@Ô™úÀ[Á3ñBÂ7¬ÂqSz-0¥™Ñp2ÑzÁnO®t6€¤aM‚Ý4hÈÛ÷ ^êטH…x®KÓ<íŽvÇUM\#ŠÃr¡Ì¨X1Ç(ã¨uJ+-ÐZäR¿D¶J¦s0„‰ÃaÁ× í\ÆP“Ñ#D±Ýn&Ψ;(`?#+æ¯/Õ“Ñ‚Òi[M½Ó×¶‘6—s,0c­­ð±•_¯µ’vi躥±Â÷ÓŦ“yJ\éd¨ÓTz™ù@ïw3ªÛ8J h¹û§‡˜0 N`ˆ9cº¡Ïê;/I082q/«ÑÏí'XȦό$`'á¥âzD+Å)£–{Ë’HŽëât%­@¥ë`}ŒÌ£¢æia¶íôБ Z.ñ$ðCŠDeé­ÖÝÑyh6úBZ‰ˆq{ÅvÍ|À¶Ò˼’0Ù"!Jý(åÛ=Ø»8¨ÆEPRÔYÊJIÏ>8•ëL“ॕ^;©¼E˜QïðíÀæ& ˜Å(¢`‰1ªœ>y«¦Zy–<ó_r,4J¹Hæ°#ã_´É"e-ˆ‰Ñ¶” §í#L»½ JŸ©3¬âôó½ˆt$™L`˜¨„K€ÐQ½‰ §„â-ª ¡¥ìŒ]®½Î¼Z/n5iM Û‰“h?€py¬“bN8|sÌg%ˆ²"´dÀ¥5FŠâ…´ h3©õß‘ºgQ–Ͳ4¿Íî nWDL¶Œ Xãt÷€#¹£L6ÆÜ¬ [+‚ƒöµk{¦ˆ¥€JQ­d[a«õgW#<0dŒ°£/å~ìðïuÜ ':eÆc4^yÁTùŒR¦ÛLUôN²Äaëà¾è¥má/¡VGÊØ…CZoÕ† OS°™£×y˜oÃxVû JÖh@ObÀ‚/¦n F€u•‘ûÝ ]/î=Dõ8ÒFžFFµ-å%iq‡¶S'=Ì©W 9VðXi"Gç!9½?[éâB”V¸ ÚËÂvAs…Žé#€¦$‰Ì‰M˜&õ‚~,}#ž©pË´BX)iÛáZO›„£–y †!Õ†á{Ž6 ¨G"58z `ùÔ7ÛsÝÕ¨haÃ7R"­7Àp9“‘¹Z P‡T–¦§€IHƒ Oµ`ÉãµQ…Ò“(ꃗ!K•X)áî^Tq]ˆ ’Çl=Á³%9Àžè箊BÒI)0„,¥*ؘA=iWŒÌ"l¤*€;¡å$b¨òDÎ\Áʬß~zØNòš+ƒÃ)+å7î4Vºò=ÇSá’ð±4=©›Áö4ÎIM _Ë7Ëã,jÌ¡H²"F›Sª×tA0“4‘˜„âfjw ©C²:"òkª›¼Ób¾fŒåLÚÒe»nMè@Œ®¥ËQò>Jèzrn+;ÖùÀƒ’’úîw§!Ú‚™­2<º)e¬]®û‰oŒ(O©R²Ú}§L[gA[ ­<𠯍A§{ígìRFã`"•ÌZóX§'³Èd¦“ÒÚêBl{è-ËBù(’S`op!wñ;EÁÁƺ¯€Ýi2.laJÙ÷¢[:—•ö0²°@²ŒËJ…\À.3˜wŒ&›d"~( îŒmË™9. ØÓ­ê²ïR€ø˜Í “4©´Û&!T…¡$'É]•¥úÀä¬J Ƽ‹aä÷€¸›,h·"mL)x«‹­;¹;&)±^§L´¢Böû³€–g³ó4ଲ/ ©ÂøØL‘”ðœÊÖWnu; ¯Ö­Qû:D•ÅÕšÉx]ÄbžŒL(‹X𳩾ÕЙ";hx’¡’—ª”Ãp/>¨3‹‹Üî`§ð,úŠƒ©·@+Á8‘˜'G‡`³"ŠÕkàU«pÇ<`ec憗&²k?Ú¾¼Î»vWdTÚˆ¤e`Æ…r7Þ}Äè«ùú²U…%­UÌÂÙ†V_;é8‘V µ ·:L“¬ÂëÛÍ (ìÉBû˜²ô¹Ð£1^®[ÄíÄYuâ¬úØÒËgÕþ‚9qV=>gÕRP•Òpœø¢vʶ|Q¿Ü.ÈhÓ|¹ûOõX„2¦(Øé9%ƒx¢(!–0N•Z)D*>hÍ“ ˜¦P›¨ׄŠ"ž(PxS°Š¢)žo‡é™›ÁŸ)Lùè§Õdöþëñ¥K¹£ªí¦ú››þ~½H¡aŒú÷üøç† 'üÒÐEa¡¿\Ï”{æÂøçIp˦lý¿ýyËçs_ü™[®'³ÑÏ“8K›²Ó·Íç݆…*Íö _üÿVŠzh¡4·Dó=Z(Í U;jê€J-…Ú#…bšKØä=%Ó‚rs„ Dùb#èã­°6ÄFðó¯j+‚«¨p9“à)Ëj.¨–Ñz(©ö)þÿÔn0·¨é[¶˜‚‰Õ¯Ë7½nÁBÝê!¬v¨«ã†ôt²BýYjz3B”Za±«¸aÏùýX¬e£sOãYZî‹o¿úÕׯÀàúCu: Ê9¯¯Ä꫈‚*¯CxµÂjdž~¯ìß~ýõ+^4\Ó™˜ÖÏÄb {ƒ‹XñB8(]õ¬vYšǎ†‘«hÃÿXøÖ;…¿øúåË'_=}U&틤q·j3/_Â\–KGMÐÉQÙÔÅk vÌíóI0mÐúp¯ë#›‡¡•¬xýÃ1ka ¦Ë‘‘K -oôáCv w«K<±ÁÛX°ÇÂÙlÆç«Ë@tߥ÷寖å‘EµøÖll¼W;du¤ÊÈé,´º+5n`ƯBô¶Ú^a|³tÅO‚ݤktZ˶·ÿyÀʼn4êññ"ç™DŸhÌH, IÊ‚a”Ö¡É)ô /þð"æ;À‹œvÓ+Jäx‘PKöñ"Ñ–Á‹(Ëm€ÿm#ÆK:~É?¸(÷Î!Op±§Æ .žàâ .žàâ .žàâ .žàâç kRÑ|Ô£””ê¨7K-‰LJ?Pp‘F¯ˆ”Ÿã¯0 "¤>Œr7ôÿ0.´8ŒL’ÀÈ)9·gZ`Я5ÙL h¼I“««Ï2ÚdŸÿ寣Ƣ)ÏVšF{­LV æ‹åÆžsÆóÙÕí/a")à9ÀÄkáÛ/GëËtvXLó8ZÏ1Ùil:Ô»Ÿþ ý[crÔÅõr1_¥/G·óëÑ,Aiw6Ì&Sµ× "—€¯F«Œ¾€GÜ¡¨ÔwëÑָŇ~|þlÜÂùÉÕd}{ö?ÿ¹ž¯ÿ÷å_—)5Fm¼ùå磧^ é1ædmPðæwBÑôó|óæç‚Wx±íëœmYLFîþF7—iÖ4ørô¯ €œ›ÑÐ4£°á#–׳@êæíÏÒ;‡æKlóàágÍ’yIé ¤Û_<ß½[ë‹Í¸^\¦«ÅÅ7?ü´ý¾ÓMé»®}0Xë|ôÁ㛹«ÕüþõÜjûZðžÏH½h$Æi¸ð|ôÃüé·Ün›ì¶»“{~öÓj3Cƒ<^Ïwž0n@² Þ¿ÿ"ýÍ—ÕÝ\lg ú·íÔîúqüFQMð-@Paff°_¾M÷‡Ò¶zôWá»nÅ¿î蜧ë³Ýe|3Y_îåë·ÛN¿Ÿî7¯±o'éfû¯/ðYÿË7x/ÿgMbÐ18Õq‚³Žúp;“ÕÎ3Þ½_©[-Ö“ïy3 %²=…9á£<+º<2ïãÌè, ÊfKtÒŽk¥"e$Yï™*¯DΊ‘“}2£OfôÉŒ>™Ñ'3ú7iFsÌ?¬ݳ¤)5–jÉwÏ–)…½R’ÝœYáÈötmHòïÏœþ¿cHäcΛ­QÖ~`~77¦ÞØ-´O¾þæ|5/-÷ÅÏßüøâé?~(8ÔØV¸ÿtÎÊBìvJW®îÚ¦V}ÿ¾}V6`M¹š^m*ÜÂs(U\¯)]U¸ºk›Zõý{ùyq Û^üæÝ­Ëïƒ:5½ý°rë¯EM½ø¾p}lKVõs[eçsI5Üz^>{^Ö­÷…kz¶SkÿkA寞~UÔµM¹Š^m+ÜB[\ ×”­îWSi@ß~B~¡Ò»+\×»ûZû_¡%¡Ö5ª+ ëkSsP¿žÏ¯þy»HEcºS¸¢Ÿ»µö¿žËsRú~X¥¾Æ°înªëóßž³¿ êiõ$ 4«.}NJì_?¾HË&•]ÑöŠŸçÜ‚*yFÔëë R¨=Æ]n<™E…Ó»5¡šUX®y,*¸ Hôw¼èlëx1´‡Çq><(çÇ+K ”8VñÎ2náJíóŽ ¢ƒÅÖoÒÔ§8ÿR4j¦ÔÚóc¼™8Ì««ŠÒè6nL¦‡½ÌT~M§ÒÝþž+ò1‚<+ã6—k@“ß¹%ƶ½y‘ÖmntñÑLƒ¿íÀÐǃy‡>=lxL[ÿñöÇ´»ÛHý6Û·ß*Õo¿ÿ©°ä#D•æÍKJ /j¾\|tóǭߌ)軲[¯§‹ÐPeÀSxÙsjMŸØ˜2hz[°jBë”ÌHµ1ç³õæIáJô滕*Fëu|Ó„8°âµ5^-&ïüuTéÕ;øZS³²ø–º¶¢ÆÜÿ;…uMuí˜=âõÿi½þY¸Ùëy…ölÊç5«­ò.¯kª|ƒÖŠE£Öz»fhÅ2Í 6ÿüêm¡²Ü)\Õ¿R¼_Y‡²ä²NÉ6°|ìë9û7FÞGhuÞθÂè4ë.¾KW‹Ÿ'é&-/`y_`ÇUs^¸iêòíô2ÞÄ@5¶ ù0wQ;½¸…Ëå|6ù%-ŸàÝ÷‡nñáºZ5ýM½‹¯ïÃ'`¬ËEN$P›­uI+-˜åœ‰ÄE( Åȵ໌þ•üè«åüf…óQº©¸‰Ý\ŽóàoÄðÎ&¦,}ÙÄG¥w!-î#²[­7ár~ó(¨}¶šÂÿ¾ݦõ(__]srëkŒÄúùzšð¸Ñ HО¿ÚÆ95QYW“édâÙÝ’Yo_gu½À̲«´=ÚÌfóŠ«5´ê–qê6ÁÀJdib¯¦g‰ˆÑ`ëù&ð.ç óŒî/TºM°^w4Öæù÷±nO.^£ÀªÒúf¾|ƒU NÛS–1àÚ§Úøªƒq{¸*÷LÚ?µ8µØu ÆìõêvZà›[-`Å6:èxÙæ=[ÒEv(ɇ8%«ÍöŸõ±Sêß]®ªâã—§›³ õâY©3·Üí›Þ•:~‹=ÄŸ¹Kv€õSùq‡yr‡8Kð¶ÍÏÎýû¹:gý¬¡¿*o[GÕ‘þÏz'ÿ’¦4–B²N^•»"çÍýšž‚ÿeïÚšÛÆ‘õ{~k_vöddãBÀlÕ©MONÎ8‰+v2©ó’AÐæšº¬DÙñüú’,Ê’ÐÖÅ6jkg2J7‚úûîI%ѤRY­eê›ÐÔ½cÉö×&[ÓdáP¥pDyLU¢Ti “0‰“(D(åÙݘô4ùeÐd@éM¦ÏÓÛšL9„×ï"ñ(¢¦óW‘8…°9Kµò&Òß{Â7@”¯³k‘'Ùžpå¶UõrXOD=Ý*u)•КŠ2ÄRI áXB™€ˆ¦i,DÌSÍL¹iÂ0öTÔSÑÅ/žØòZ-ö:¥0Ô\´ž`!@"Ö*. nJŠ1)¹°@¨ÜË-<:Ú²nßfèh­¾b{:j›g»ÆKm•õ¯Mö•a€kªQ`{ˆ«I ÈËÉüËøgŒq4$QÏò u ÛßXEÈ…ç˜Õi.•ާ/µÎYA(# Ô’x kœåùøœ§‚ðh> >åMYðMLù²5Ù)×UǬ(× ó·gïÜ9ÊMnÛšU~üp¾mŸÅ;ó*ýqpždñP 35:<*'àÑë×6î “pÖ9Î|6–sã÷þŠˆD-+F.û¸÷] «wÑÇp*Ôû°êéëíó¬µoðì ›…)»@ k{€ùg€0™Jã$•V$Š&'±d!˜ÓX±!oþ½ùߎù0‹ÌÈ×Ô†ÆaD¨ŽqˆÃ9ÀÃE  Œ˜[f¹\ÃæöÂô¯:®ølÒÃÛþX ‡Î ¼7dø aKËozÓ`Mô³š¾Ú¶aƒfªyç\useùuÛDù- }êÕbrOZ\½ÑYJꕜ–®ç,zƒ·mZ[€Ô¥éªà¦¼¼rª†½ÉŒþÈh¹ÔÔ‡cF³ÿ+þ Yº÷<°pó¢mèj\™JÍöãÕÒ®±fëÛÃmŒy(ûK¬Å5‚éŽ:¦Pè\´ºYìªRhîŸXëTé,¾•Y¸ÍqéF°_}ÿ=O˜e•¼jÐí:j•œzÐMbé¬o/m» F§ö«If=i,­e挵ågÚ˜Gó³]íövXsu}÷ª€XÉÛ“lø·ê¬£bP+B²^V$¥Ôº“ùâëw¼l¥¸ùëªÍƒNWTÏpóWêV^@ß ®Š)>ÖTú}v4±?¬KŽdg¤Br ÒF2çWª°”¼ù•…hé.±‘kÏràU^9›Æì^VKõÔOɬg±… 1,zÖYHެºh, SæÎFNlž«-£¶wzùØÉ®Ë²6lðZH1‹9jºUô›²•¬h(×m'31k¡Wìþôõ¡Üðº•¦Š¥Æhʨ”a„â„2 x 9榡÷ºz¯ëÖ¼®dÁëŠ)^}èŠ B´ õH‘ÚÉ+‡ á¦ò$<|™ëÐ=Füyø^G}•ç=SfOܯ ¶Œ÷î×årÞýêݯ/Éýê;Þ:*{KÝK¼ mu]4g>Q—ª;G[Ä–;‡<Û+Ôü¦îzsTwåš'Õ]ýÎ¥ê®;ç[u‰î®\§.SjÛòm†žßyI;ï.uS›ùM]ÔœWß¼'ÕAmæ'uÐÙ³`oï9õžSï9õžSï9}fžÓF+n¬lɪâQ—H„\* ò4Á’$iŒ0å‚bï?õþÓF­ÒÕÉ!Æ<¬ç× ŒÍçyD,lª…°è:-—¥w îW𪞵ú`öÎÓúwݶçÓ;À,^t£ÅÈôs51$²šÍ0}›pÀôK÷’]Ý]U!%!a…!à€$Œ žÆ2”P`œÆ"Ù/ªJ]³{r•}»Ûþ=2Ø 2¨Øe?O&}®>G^ÿæofM”^º€÷NgCÊV£ FÃÖ/ÅbĹwc!†¹;[çOý>ìƒq…ʵ¡×ÏÜpA#Ú ²»¼|µ¶ÁÊc†¡ÝUßÊq'n‡ªm”žüóW@öð H]…>™[#ÛJÊõ"o§ø›&k‡n7MîŽìüJÈf©÷6™sUfüÎ;Ëû 1 €B’Da 4ÅHQ‘3 Š(‚EŠ:ŸÞ½Ž-KVQ"ÁßÚ߃㟅ž]Fè£†è¹ ®±6x П¤ä|_ÞFòOáíÖ÷þàì ø(†õ‹’ô]tË?ÿ«×*ïU¸dò&ï/áø$A€RR'|#˜Ì;”#Ü«¹L‚0›É‚ðþô$¸Fþ~¥o`?R™9÷ÔüÇ"ÜÒüæìSóÎþùûf!3š¥ÎõFþEI¥§Û°YzŠ.šBIU*ÆyñcTô‡ªYÜLÞ_4·7=þí7=ÿXÆ@š S½!=JÓÐü=N‹å8>bS¿ývV%ÏÔ6kŸñQ[ž@ÈÆ «QñÃÄTœÃ&¬ToëñºgÚ³zvõàwÇo¿¾ÿáÓ{W>ùôæäÌEóëÇÓ§oŽþ8>wÐúøá­›tùŸOÏ?|þäÒ½RõÓçwÇ®:_ŽOOÞÿøtüçñWå³7ߎ¼;>;rÑBÀGTíø=aB>BÀGø!àt6°ëˆ™›ù„ª çáÄ0òH2œpICGþdÀŸ <½“·«³p¡€uË“òòÆÒs_Âr×>„`ÛâÕþHÀ ÌEõ•åÃwv.)àBÅ’B(£%Úv«”§T›q†H•S…¨êÛ[ýìÍ­ãQg0 qÍ܆BJØœ¹ µ¹ÕÕ!´¯\•O=´où¹ÈQ9^¿~’‡#8âmGê÷i9ÁÊ8Ê']o4’Vr…$V‚v®žI>lÛGEæ§Ö>`‘e(D/ÙÍÇ •¤‰À(Eiª ¡`J“T@’PF™G!…ì0p=éXâ1Å4 É|†>j0ÓCô‚[Z¦Ò3ð;øÄ¶û»ãÛ6èøÄ¶ë$}bÛFYŸØvïxó–nG‚ !R%X…„!%\SgcIe‚¸)÷虳gÎO›9‡.wÐ!#ÈœÎDŒÎSgý cóUEÖ\B_Jžý%ôý`Ð4z$í«²¯Wn5Ržw¿Þí0+Yîi­‹Ûkj ÛV·½&uМQa—¡­sbÍ)u×hõ»®“æ¥mÖöë¢1¥Á.:óDµ¥Z«ïGt;Ïx]¬ÐõuP›[[çÃp›ã°·r<Ì%J¸±’@’$BâˆÄ4a,Š¢$ŽXB†Òȇ@í £}lt1½jÃ9.ä,¼ˆÍðb 6žó¯<Ç]‰ý$s!{ŸŽs1ࡉV}¶ÂöQØeCQØ[¹ &S<âP&T…<¬hÔÒìt毳^V$¥T²Flµì9[)nþºjóÀࣆìxªgú+u+/  o×Eä¦ì|Ù íhv0È×Vð¹'m$ãq~u¡ KÉ‘_Yˆ–>¹æñ,^å…°‘³iÌîeµTOý´‘4ù˜‡] AcXô¬³YuÑ46Y"Λæa)§F6ÏÕ–QÛ»æ<‘S+j!6Ù àµ6bsÔt«è«®ÈÖ-¨’ åºíd&f-TâŠ=Íž¹ Ç+JA "ˆ©0Œ”$@¥ òP±”p…@§)’úä™ûè„õÉ31›Æ aüÉ3w¶²½ wï\¸†¾¤–?-ÝLI­-ÝL ciacd’$2fQŠôÃ$‚R…¡¯ªµ/IœÖß§a…ªZ”D¯ªÅBŽÂõ¦gr™fia-÷Ë4Oº¶ÖžÝ¡Gª¬e[•ز•žÔÚ²_(ºe«6õ-ÛÊ/–á²Õóõ¸|=._k¥¦¯ÇåëqÍ…røz\O—F=Ùz\þcó™ý ¸x×þ–ôÆOYŸs¹®æ+g[ò_¤8Ž©JP,P Ó¢8J°Œ$¤’bI–ʦØçÝޛÆg^àè²á RNï]:c0\¼tÆ"¾'N›Õ×Ξh”G¸x¶gNs÷¬nD¬8þ{æOS–@’ëLÝ\ˇÝ~‡zÉä5ŸŸÏÍ$Œôÿ% Ó0 9Œ£0U\pÅc–*ÄÂ0†–)Þ¾éwùvt‚·ÃþÍHÛòàlOûüEwz”}­q“—ú/ÿTñDrh‹[&OÐàEq¥ª-6ꩪî]Íýø¿úƒŠr†mµÝÜÜT;€‘=\‡Ñ0‹ôÿjQq„(‰àJŒF(ञ†A€ÏßÊ 5”ƒ6‰ªŽvÊݦcö™%Ø%;×szt8q"GÕL·ËëmݎݸÇc¢–‰F³½±cº&¯G æÖ^êZÞÇX«ÍÓc`»¹—hÞ¨mí³G?wžG÷Þm\þ#L<Ç(}¡wÃK…Mt÷Áò ØšÎhx=ÙèÊ–™³N·Ÿü¨¾Ìš@þz¿&êëbúïwìð?z¼=XÕÅ¥*ÓçXë\’X$ÝlÕ»,ÈkècÎ ;$¹1š6J]q¥:-ד¥ÊlŒ. Q¢gÍI'·ÎªÝÛÉH¶Ð­>›­¢Þø{‰Èû=e¯rÝ[úÑöƒ×¸¸XÂlÒ8Bq!Æ„† Ò|FJF—!“¥<³ñÌÆ3›3 ˜ ‰øê”g†ÙPüÌfâ}¾Ñæu~’ìæFey¾/ä¦m–3On<¹ñäf¹Ž'7žÜxr³Irc]´ý̆CÂR$!J9`œ‡1M`š†)%BéB#î™g6žÙìžÙ¸Ù@IȨ ÀQˆI-•"¦ ©´©g¿¿RÓêÈf‘y4fE¤÷³"Zü R² )-심"¿ÚàZ§‰x€ÁM‚(ä‘H9&©€&Œ!HB2‘!S†bop½Áõw·W¯Ó0¬\ Ú©\t%jcÊÕh_Ü··Èzñ$ííE_/ÃV /6æIäÞ“è=‰Þ“8ù ïIlVñžDïIÜ ±éöÿÊò\t~Žóḧ64e> Îõ^9½K=‹L$à2JdÌd1LCc¤d$H˜¢$d*,óáU¯|÷JvܻΆýžAî¤-›ùþõäK92¡i¾ ÷• Z3Lcv­¼.fXD¬‚±¹Ã¦yIÜï#sÍòUwœÙ@‹ë_?=úü1ƒW%ŒUÚbXÞ@fÄëÿ®·ð´ÿÓЖWç—ãžIå• “5à{úÒ¿÷µtÍ¥°dhr^Œþ5ùÜÇnì&˜ËsÏY—©†¹ây¸L á|ª–¸b¼TÌ(CeÅ;ÀÌh„8kÈ×S†/[É,î€QÆ y{þœT¿À¹ß>~þ¿''o‚Ó¯oO>i}tüICé_>žž~:=ùÇNÍÙWÊ6MÏ9 ¹qÈxcÖ²TÈ…Þ[ú7€“;>—Å3ôW²Jº]—ÿåøûéç/çÇïlêÐÖ5ïýbÑDÖ½È4p±êè¬K'ç´jÿe¡úoÕÕ‹¹/­z§§Ï¿GV’½qžò±;V⣬;(ájá.î2PuÅÅ,÷Lªì¬W8¼ÜÏv’c‹´üËÖð2R¹ <«4CW$òõkKJ¦~Da);ÐûJßRö§6tŸvò2;¥]œ~¯pª1“•2À ÙÉ)®lEEqeÛ¨~CÛV«” ‘k‹×Ó¶÷ZÙŽk= áæÓ²Lç{o4ÎZ|GËé{K£û ሌ+cƒu„³Í™×bXd"7‰4¹:SŲa|Óöiú¬Æ=/ñšÄÙT£™—u*ÙóBË26ßÓ²0Î÷¡YkC˲ß Ëè=©ôÅÚ•ñE›ö­h“ÐlÛr,Û–%fJac†* ›æmK¾\‹ƒÜ ³úž¬aS¬ëu=ân¬X¥¿_Ïg¯òŸùD Ö°D/Çâp´à^‚9‹…¥•ÄÔ ‰%„y4"Œ(‹|»J/OX²Q6Ôs!ïÄÅY¥ÑÕW^Üp·¸c€’j> Ã0Bƒt8cn~6@Vç}Ñçþ5ãÜ¿•¿ÿñ>î_é¡ù¹]]^„éx69 ,[=®W†æù³À«—³ÒÈ fãN2í÷õMå“lTð~ïÆ3ÜÕÐSõºÓ1ÄÓ à›æ¹~ ñöAÿšM TãÕÇw¿-!ö9*”€©kOzöÈ,†~÷§Õ…;g;ƒ–.€µÁÃmÏžíO…wq¬”&gJÛ['–ïØtK ÒnCô£ j»EÁ•g&•ºG¶ŒÆJ… “8ˆ%A“HyqÂ8f(Ä1 i'½ÝF¶md[lb@%²åhCdK5Z7ó÷ʤn&²¨þmñÖU¢-`ŠäÅ·ã 9åRî%ÂåÒ±x-ú´¯›µ6Ôu²®E¼ö•»*©«üÚ·ÂvýX¼˜{ŠùŽg‚æP%…ÛÕ‚Rx)ÂÔÔ\Áì-J,*ˆÑSp 1+G™»Z¸ 1-ÅP³§bY‹D!¦µ²'@'ç"H˜Ì£UÅ,l…˜,âWˆM™ª`o6hå Óͪã:Ù—C]ëïq”×Ügè;Xæ)¬ÏŠr‰sŒ›$Ò|åûS„ª€%¾/}3ñÀ£±Iõ}n'U¸ ÁæY¹ÒHµ.^›ào Æ:@}fC“óûÇ}¦†i‘ó[43 ¿¯g¹Çc¥{Mæ²A‹Þ"KËÐ÷u'Oi?›àö}ÐWFûèc÷ßÊüTd¿ é0›I=ŽÓÉD ;Ó|Vô²HQ6ÌeÙ&sS3;ÌuÍ.CGųØ9gyÞ5šLæv 1¥Y®´É‰ïIñå\ç"ÆÓ‹†‘iŸ¾~;¿–šÞLÓÉi…ÅõЏ¸ZèÒÄŦöeS\ìKì3Y Œ á”û¨BÂ[²Mh\}+»ärcàÏjò˜ô”¿Ö/òõüEÎm¢â{=¡Æê7þ ÃXY9ôµ†Ux;_B¶ìNÉìÊ·´ªÞæj@׸œ¿D8g^5Hæ`!ˆh  gÝ6]Rï^z…ïJbר³XšÍ$»æÎ»[ÙÖ.7†ßëh¡zTÜ»¦ëÚ4ëÓ-ýñxZ[º‚mjå3G²ß&:˜¼x’ß±eá¹fɵ o;I_ÛÆ¿—”–“ÍO9¶@ßR°d·G+ ½Þ¸>×yt¯A~=÷š¯æ¿7ÐònS²809*"þD‡ù±>crŠQD¹D4b,áT'Ê`#‰¤HW¾`Äê4çKéŽ þ‰Âpòêpub…7aØùtd¤¦õ×/tòâ H »ÝÌúN^ŪoPt³tFœè=žÔqÌöÓZçß3Ù|ƒ™ýzMk.±)‡Pf*pI|A·ðð¹ å·í☠7-çú“¯~úO1'OU@T2G1:3oúê—uWù¿AÒ Æ½Põ¢ å½8èŪ§ú=5¼}ÿ¦§òÛ_ÿ4ÿþvÓSÓ^’ö’q/ùyûùSï.¸ýð[ïnzûásï^õî§½4޷ ÷ ÿ—õ¦=ýÞzƒaoÞ~þ½7ì÷†CóÃ(0V£~o4¹}ó§ù÷/½qÖO{yÚËzy¿—ÿ·—{ù÷Û›ßz“qoúÐûçþöígóï—¿Xf¹jæ8tX~ÇZ*þÅœìÜ 4ÛÉloŸçŸ¾4Ïóíƒ{Š7Zau—Ÿá%F¨·Õ6µ6±y…nk«‚ 3iUPí-ZÔ]QFZÔVnÓª ÚX\¼ ê ßôEWõœ…N‰—‰'’ñHÈ„! âÄã”' Â<¢‚y8ô1ŽI[tóœð2±‚—y¤‡˜”ptˆÙzmed} cøŠ@ $Eä®löw=í9î µ*àS°þZÞ=ÄÎ øÚ à½{¹¸î=Ã0S×@ïö¶5(r»«˜ú‘‹äD³®ÀLWx€í$¿K}½Á3–fm¾œ ·XBì®–iw·ζØÕÒÙ°òÔÁxGCФ©BóކÎÏC:º? |$K@ÞͪãÛ«SVÐ|ˆ¬å*¬µ.ãûG§ôé¦Ú¹‘‡¼)OH³‹ x Y…êMëÈ:àÞÙ°š¬ƒñíKh>äáäзºŽï;BžG3Úþ´ÿ€†q[µÆ˜©Ò/s «ïª¸ú¨~¤x¢ÐgBù(”H˜Ê$UŠ…EQˆ=ÀªÈ\¿/ê»Ü¼ûa ÜèM÷Ñ ùï̘d£‚uð1N€„*.„m³qgÖ{:ÔŸgq­®Ž ‡–•û~ G„#ó2@$÷„ÜÐ7—-æÚåÕ-M§ëOi8Æ©ÊÏ«'” ìÖ7ϽC‚eœ¦v 5´Æ¥iêfŽÕ 4µyØiüÝû‡wŸ¬‹#uêÞ1¥Ôí¦g–,N}²ÎÚAFÏé¦\ƒz·AÕÁmÒûâ1#¥Âcuxœ‰TJ!écß "Sæë<Á=¿U‡lÕ!íyÒõZyÒ˜ùŒ2b¥)·…a›xÒ‘BšvÔˆ<ÂHÌk"[…È3 !O7ÂÛËø%+DV6¯ÃÖ@÷‰P‚ˆQÿS¡Â7•¦©ÄDë3¶>ã³êžóM>#Ö“ÐÆg”:˜Ùì3Ú)Š_fôóÔ× Õ ߯N“SÑèký#=jħ÷²Á‡ÈC!óc!BLÒó"ä  Äåc_EÊN º…§]«føR{S^ ž¦D &Êð4öˆ¤Î{Ü*:} ÛÚ3Áé£ÞÞ <íù/¸¿µðô9œ-´ðtã´ðt O·ðt O·ðt1|°Dy K/R˜Ä‘ÜÃ÷)E£\…~àEù‚tô`Œôæ=Ô¾c\ìßé𮣯¼¸ßnqÃvaIq´—OÕÓ=sJ÷¹EÞ}þç_7ædpö[ùû‹C¾Wzh~š 0fË‹0ϸÓÅé¤zŠ®:_îÕÏârIÝVñ+snšLûýμ¬¹ ƒÔÝx˜sÅa6éhÇXOˆLŒižMšNœæú×lRȧ¼úøî·å¡éÓ‰¬úY–ó:o„ÆbD°J$¦ç$/5JÎð–š71Øâm»¸0ÌMÆë¨£/aÔÝÜéÂ¥(æ‚Õ>Uj ©ŽR6«þj“]ø°˜«vŽO¹9ä"«†õœîeL J/ïó’"¼ßÿ|“N¬c¼0fam˜µ¬XöÝn·ÇPÒ%2<\grÆf£o1Š»/ïPxf¶“a¹[ì¡z„mT{ØX5MÕí­Çˉw&aìù„§óÐbN²ØÊ›¶Ïß$îœi? "B÷B¥(RÔ‹B!Å,`‘ôQ„f˜¸ñ_ª7 ŠGW‚Ñ\é[ ú¬h®xb›˜¯2A§ö ÇE¸8N‚H½Ê’ÚœTÔw½fRÏåÄk¦&#$™Ðaa9ðˆøÜóJ¡Ÿ@Œx¤LViÊÝ0™»ä²ÒC+¡ßg5yÌÆéðîúo^¿gzZæVÁ`6¹‡ÆµÇ@^2þÔp×’§3Jrõꎌüð<ò†w`5di\¤O$0«Þlãý9yÕá;û0îbÝH:˜»c£ÊEDX¢"!c„‚h¤"sLõ–§}š8N"Ñ:6GèØøRËÝ86œ1 Çq³c3ϸ²sm.$Ó꥜CJÿ®Ñø¨{Ç.“­‹Ó|—­‹Óº8­‹SßïåÕ ¾ Â…Q„ž¨e¤‚{2ˆ"¤+êJu-’~ôŠÞ™¯è¶M­‹×Æc¨qÿgça˜=MJÑ÷™¦EJQÑÌ佞¥6•î5½‡Æ¸9‹ÞÂÙE<1 ^wòtöƒ±á¼×«n6|ÝùØý·2?ÉJoƒA:Ì^Çq:™¨¡öš #ÂtlhÕUjéd×5» ¿šQ¢q–çÝ‘~OÍí\u>Læ©Xݸôõ5•Ù…ã¡w™Ž¾‘Þ_ê·ók©éÍ4œûà¥Ý5éqáñŠ·Fˆ@&åÉ[#ú#²ƒ°Þ[k´³pÐiñØ(v¸9h*¼/%[6ªd¾á¿ˆw°ïǼrâ8õci˺*0MÛŠ@zÓ+}׈ÓvÓab[^iÎÿêš;ïBne#ƒ`I”ßÈ”X7@Ó|\ Rqï“,ëwmZØÈ­ÂÏñ´nYü{ªÔV»±¶Ýyµ›ýŸq+Ó–UÙqmp©‡r#‡ªipÞu NSÜ}ç?w{„Ó©¨®¿ê:îÕ È¯ç.ùÕü÷µö…O–,fŽJ™}Iž#¸AãfoÒˆT)EED8DZ¢RbŠ¢HF»=&¾ •œ»s£6¥MAÙ®V/ÐÉ Yì°Àe¸{x‹ À&yÄê›w‰‰gWU^PéxÔ&£ì%eö®µrAmþ‡M»½çœ˜2@›4²Ù¢Mi“F6´ÜmÜzðÈòåRGž%žêIFT (ÆeÉÏ—8Ld:¦¤ÌOHÀTÌí´ÕZñÔV<µˆ$1¨îóCÈJp_Ð-ôÏæºgrû‘ßr>bûO²©RT<60í³ÛoÅöGït£Ù æã ÛßÎRÝKJ1§SIÏ'Œ8ôƒ0PRD(ãʧ¢2VIËQm9ª{ã¨âz§¹Ò¾d¾¨Ó%ØÇW8ª˜#nᨮK•n³£Ï#;ZPêX9·e¦¶ÌÔ–™z€Ö-3õ ÌÔ£ö…7DõÄh}A8«Î_µyu›‡ƒÍ–´XÈeÕ‰±N|Øc€ép4èïG«Zx¬‡ëZ5r"×? 5òÎe0NÉ5å<Àž&’ÄbŽyɤà¾ïEˆ£–kÚrM÷P’›`I«éÆRȪܹO±0Œ½âyË2=M`Ppê*Se€r†ÖÑM¬k¬Sû$¤ )ÔÕ~í[Ȩvý´é­@úF‚,`BW˜²p»eöTòq÷“U OuËq-g7‡ TÕ°þEÓaú£ nî…I⮨=®X:‹–1§ú1 &–m‹˶?ôFW$q˜ ²´I²áÄ0eÒ;[ƒ±RÆq²Í,¼›<Ø6 &¶ê;´íu:Ò.ˆê}½ç õÞû]ÙŽ 4)rÇD&Fl:ƒö”7žŠ.ÓÛjºž9îýØ*Á.®¦ÖÙä}EÈ2uék2±Ì<ü:6ïר2'ðëÄò.=c_P’«ö_»ÅÄ$–‹CGtª9´OÛ½åK³Øî-'¹kŽîÛ··Ä.C·nd3#Úlà«êÂó‡ï§Ú‰Q}ƒ@ÛÊ©bÞr‹7Ê6=y_–ðeÙ> ZûcÒð—Ï77ú5@6^3A–—^3p#›¥j·°Ù‚ª6KGÕ‚-8Ø>¼ná0¾Òv„MÈd=…Í—üõåÃ'ÛÙ²­c”LðEÈ ¬5´Y Ö|®†v¯en¤šì&Ù²)`e©ÛX 'Ôl@·±°±ðº•ÍS·±{›óÿöÓIaf3õòÜò½Ÿ7„<Š…ÕК£øé¨;Ì&i2Ç·f~»Í¹ÔÆ?6.öxŠªK rÙ29wÍ—­öZènÌ1Û8ÿÏ\ºc¬®â‰Žå߯çÀW3E†+™`Gø òV„©„)e |‚‘D* <• ™`_D¡þŽý$n!ï3‚¼I½T÷d3-™ Ÿ3¯ yÊ%!•ÅP© Ln£%7BÞÅkÐßg|ûŒ¸ hÔ€fó°Ûví`â¶î©„C;Á¯½ù¶î¡€ï˜ãX†Ä!¤¾ fíjÚ-X¹u?«9„¸kBaó’|*Ém-¸uD·A{œ^xØKzúÌè:1)Á„³ ôÚÊÀás Ž>à ‘nåshjUÂè ¦à¬…:x5 ð¥Dn÷*:+»-`xÖÀ|ö¶5Ør»«øÝ‘kDʧöLWP?€íü·ÓŒçÅu?¹> Tn±D ]- `èn+œm±«¥³!à©×1EGC@>Tat4t~ÒÙÐýHà#YâŠnV4Ò>Õ­JBräVÑI¨u¦<çÌAÀ4hÄíÃþ%jæb^ƒVaGgS§›|!«Ñ:HÒÞ¸„LBN]êX¥£!äy4#—­à³Ï¸–èéqdÙ¾®9;£;t³Vim[rkxÓ½% ãX‰8ñJ<ÌA\Ä‚rÆ!S< c$¥ „›|a½Ö& öÀŠR`®ô­ýNV4×?<‰š¯2‚€ÕʦzcõN ¢Ü^®ÑdsÕÊ5úÍi¹I*„¬`”Ÿ{^ ¢ˆ‘­¡Ü0•K/ |FéÆûl¨~Æêñ¨Ê7RB+äR9+^½ºã+þýð¼²ß^ƒ=W˜ï>Á₦³¦SuøÎtÚ­ó´O¿æ!Va+Ú5k_®ûV/#ØXF#1-ó ·:6Vœ'4A\Qɸ' MKòQ,„ïk߆s¬¨c£ S;èïÅíuÞ. =Ï«1n‹º4ZüiæÍwóZG%ŠØ«åønpeûEƒÂ‰ÑOçÿôÿwî¼Ì¿c³ã‚f~•\åyX0Þì¸0Šªø-¾çù’–ÝKÏ®<Ñÿ³÷eKŽI¶ïõ´y¸£6Sfa_zžº%™F·$µº«ÇF÷‰˜(ba`.õõ7¸d¸ƒE&3 3&ëÊL?Xá~Ž«7r°ÝˆavºÖã iÿü?¿¼ç¯müSË7Kl°qàéõžÛ׈8<ËõÇE«ŒT99&˨æ’çgäccãØÑÍL_×ï_Ǹûáî…Ê9. z$ÎÍò!-Æ]Á¢’)¸®H@ —C®?uïìŽß´(3ßò©Gƒ(1˜KhÓж"? ¡o‡&_ò˜ã—N?åÓîÃì7Rçu÷8Lg ÿ Ž«#ÌÊDþöC×Ím=üköëž·ç×­0<ê×ÃÀò\cX3톖k؃’éÐ6MÅ´Wﻑ×wHâ/oÚÔ[>¿lcdK%Íçâ=:s–$ŒÖsq;5%zúT •mH«”ƒpPÌh¹n“1ò †Töq+ë ÷gsnjÏ# jÉÜ–­Iž.¡æYÁ‰´ÎK>ŠŠê |åãÓ‚A^‘´1a ¿öÏ>Ž¿@­×,æÎ0†š?°f:fäsýó®lb/¡†Ô½bL½h¦yÝ8zé`Œ ªÛ¹BâÁâð´HkG~ÔГls9Ìã”d%ð9J #¨æˆ@ðH„ŸãŽûhÈ}ig_ ­nôÚæðQ~ýwï(žŽ{À™FÜ-ŠÞÛ¨¦–cû¾ÕèYŒ’žzK' dZÛ‘~ÅÖ™þKøùWà'óË?݈Ðÿ¬íªÏpÂøgýC¹f`ãÿ¾NEÿ¬Þ¤`ÛfG lÿñ~¶ý3Ï€¶>g„”Ù@-Ûx’‡ÅŸt³®J°öZLrÑÂjÓôÂÙ#T×íOþÅË@"ö…P¡[åÀ7ü§˜2×ÐÃ"Åí*ècˆ¾XÀƒ^PÚîR:uç;«Ò[BäƒÈp!ô׸O·+Ô|=.&¤Í/AÆLù ÈʼnLô¶ÓzÔÌÁOsU?AM¥r-ÔøtvmšlÒUâ1a™ÝgnšÆÀ§yí"5U͘HgO_”)ïP´c8`¯C2Gp¶‘ºÚD8XãÙ7™/Ó,cëùËV"a«ôçÁgìù½¾_ŠÕÔ\‰dÏ»4?Ç,!›¬VÇ;å@j{`^±Z$,«—+OÝ_Ⱦ`‡°ˆz®áPæ¦o$¦ñÿ7"ÏŽ#3¶I\' í©€cÖ —)à00že›A0TÇ1Ïw,¯ßÆ |×ö‚~ŸkTÇT¿q ?i fðAû®ï6yTÃZàdEt³äÆŠ{J0J#T”„ b'‡PÊ* ýu J£4Ked‹ÁF,Ã!îÁŠYâ>e"IÁ-„H Ÿn ŸÜ1jb p!fÂ1@¾ÎàKÔ8HKü\¨ÊùçQY.yT½¬ÔÏ#Ž@IF7<+×£ÑcnàEÎkºÁÝ¿üpöwÊáø§j±áÓôC/êÔƒ”:ä i.þqzÞuG…¼uÉ— ã/?¯ àYºZ¡ÆÝÍ|›S.=êè®bˆo†áXüã2 UuÜHp/Ò»uÆ›-Q tèÇo]v±ŽÑ'ÜfÈî‘¢®øªMÌ!íê„ Š¨2Ti¾üS°© WØ#Ô¤ZnƒGô!N;Wõƒp¨z5sR¤¹pumZ1üÛ#¬„èæ<"uÍÖ˜…Ò]Ñ1Z°#¢©Ã¤‹/)/;«•À ×/.·ÄâWÈåË­ôWO¾ %™P¯QKõá!Ä÷„ñ¾ ºÉ®ŠŒé|[b{ÂAV¤`˜|HsV,øŠ†F:âU6`‘9 |ô1x#4qGãóRd Ç¢ùOµß—2 ʇ´d8Œ=ŽœÝÕü2ú#Çc‹Nóñ§nü¯RýÍQ>«ŸG‘meöJÈ’ d]–5&1²E¨”¬ÂÝ‘L 4²ÉàÓ?U½NiMäj—Hõ¦JØ•°Ž×­Kb örU´°ÔõTk{0nnjm‘v[t‹€ìTߢ?ŒXþôêqQ¨Ÿñ ¦a…. ø+ÔãÇá>¶>‹kJƒQ ¶FjŠ…ˆ1ZëMù02¬#F!·ÅXW+ŒµEÃ̶z…ÂËÕowpO¢©CÆ@¶É(Ô8=ý -?ÞU5c0IàåiE±'kë¢S•û-ŒìïËh÷ãUñÛje 䕨ág߈Àûni8Ú|ã`b-UÀM›AÓfз·Ä×Ò›KÃv@íµ´‡kß«j8HÁø©’ÄBŸLæÿŸ¶N Þr>P¨†üqÕûw[ÚÉEvýNmïŠÀŠü¦eàôùÑQá—ùÇß~››˜Æ;«»²@îÐß?-&º‘KôÇï?›Öss/°aû5û ÜçT°f£,•‚¨kîÑŽ°Û˯k?û• Ý9¦¹Ê‚ê l™V8XºH?×¢ÑÍRµÛ…: êƒz`­;Ã`7U¤$£‘°–bv: }\fä>m’+˜/÷Êšˆ_‹à(KiýüîΩjëFÖ4ßüþëûG?pyj³X°Jst%ßçšç±Ý…!Y¶"|t +ýþ ›=¬ýfõ°érË4Ö AwЛ?ém½šçíØc½æŸ Y«« ‡Þêþ}õ:P¨Ò‰–Ñ·¦:^¢ZŸk­V«ìIîåË¡32Rˆ·¸]ê-Itb‘É/Xk+Wô0«vݯµÞ®ïu¦bi(‰dKÐcˆËæÔzÄÑÙ·‹,ˆ(ÿÖÙ5i™J/è¬Ú4‚ÎNä®Ëòâe–[ùh ãHk"“0+Y#¥3móZ;ÉQuO0ÛG Ù¼m ´Æ¨ÖfSvâÅÐ\kY§Úìq©{}j®©jö¸ÊøRC÷vÚ™\|,ZcóVw,Ët†â‘/cÝ«ÎÄÏÓ´¯t¨Ý|¾Íﮜ-}Í™™ÙqdQÂbZÌOœ($vh$$ŠýÐ'VE.5mFxbfÏúãà2¼F‚× 7 w(ÂkxfZ}y}þ+Ësu2¼|ìixÙ ¿¸w˜·EʧÆû~çϬM/†ËŒÃ«ŒamS(Ò(Y7ªðÏG²nðF,mAttÐaò Y“ÓÁg¨òH-Á¡±š¶ Q=Ùðx d¹"9Èàn’}–_pF¾õ{qB±–M[rækö¸·ãqMÛqz\'°ÝÀ6‡²÷Nà8¦c=+~e›Ž¦¥ÍÀã6òõ·†è!ÿÆý-%ëó:[ß0­kõµ«T̯ÕÙ\®¨ýéÏÍßVåŠ?õò,>W|U Þ¬Ótv»H{; ×t<Ó "¾MLbQß¶Û HäÇ‘g’ !†7->gýáp™Å§Y|š|AéxÚ¾nN¬íþ¢íê65ƒéÃ.ÛÓÍß_²N=ݦžnšS¼f²Ôyw‘¯/ó|ïo…‰G“Èôæ¸ ã>& #Ë 1ÌÄŽƒ8 -„“÷ŸõÂv󸫮} Ê#ˆÐ ê­(¨ç›ï[ãB€Éù¿¼ó÷CÇÝ_CÕ̸;: ëNþ`Û¨~ê\k_ìl»Õø@iO€e« 1m…<¶[ýN€q'Û °íÕÅ­WÜjsL{’œëž'Âz+À AÛn .ë•MdG\é45¶-ß`:¬Ü‡¶ˆuSé 1md2¦=uL}€c^ç!-L昦»£|©3ß¼„Ùou.aö[yK}OÕRgzTÌ< a Dö¥+ÅJêˆP¥¶§O Z±î21 Ž€ˆõx‡(ð€nˆA‚¿ÚÃäB ¨Ç)ÄÀ #ñƒÛ10ÅD :‚3 ß!ìÁMóöˆeHË'Ø az@½0ÞáàdzG‰ÁAzL=p—O¡Gìòt5GåÀ]ÕF ák4qèž4# Ø(2¢0= C®Ó_DÁV°ÀV£¶ˆC÷EQÈVË:,©ˆÇ¶JŠ0äP@…ê&¢ [¹D¬UID:qDjOJ!¢ ¸Q3>Da¶z‡0Ø™C x¨n2Þ5ƒ HZi_ÂØS.Ô¡v Ñ›`“Ná¤SxÐjýú·Þ¦žàÊøjz‚÷„!æ=}AùÔqÝqüUõïkþ̯¢åxmŒhN>TïÓÛ_e3óo¦ÿ9¼—ùŽ( Ð×Ô›cz¥÷ä1c 0ßÑ  väˆU@PrTŸxDÓ÷­ôß”gŸòì¯(ÏÞ©ðlñ=H>¾ÕÜ»Š\#¬°êéA»2zÌV=b܈æ½ü–ÆVï û9ÐéíÈßAœØÝô…ò›+àà,µÕã6’:!;Œm'z}§ª/R‡³F ¢ÃZx#$ðôˆžòÞx+x´½Ð¦^OeܳÃû*v£‘·á8Ý:(¨‚[R©Óñ›©{štzH_Š`Ý*ÐéM‘»Ù®ÞœÞþ äJÖ“ºÜ‘Üù¤.7›Ôå&u¹I]î˜É¤.7©Ë†¼u¹ëÖ–“®ºÛ¿Ù¬TLùrL?ù$¢Ihy! ߦfbº”±$HH`†Ô I96ˆé'ˆsYÉÕŒßÞ¬á¯ÌšPvv3kïvÖÞÿéô¿½CJ ¸ç?«Öß ³w;×òíðÿÌÐ ]s@ÿ³ Ãöúì˰]·?hž¡þ¿ð (€¦Í_í Êð •:GFÊ¥ ¢Ö‹} gZ-‹ ¼Lb>ÿÊcfw¶Ë×½¼°ˆÏU9ú¶Ï¨í3¶˜Ií$1ƒ’RÓär'Jÿ¬?4®QMÖð‚¾£jgY–=’Ê?yö«ôìfàWãÙµcfòñ“»>^%Ÿ9òÕêüªðabÚ^Ûü3´MæÚ£”†¡ç1#H/$‰ï†Ž “æ‘><åèìQЄzï6K•¿~PGh×ùe"ûaÖðŸøÖ9ì×ì¦}¡Õ>pÓŽé™GÝtès“¡Ÿv ßõÄj|«øúžhägù°zß»¾gáxÓîxQ–ã'„Í+óÈV`9þH,$>ø›tæ,I­çâvÄf€_Ô@Û²u>ÂA² RŽ- Halå *¦ÐÖ› ¤‹ÂMíydA-ù€Û*i¨yFV°G"­ó’¢¢é‹H@ùø´`W$­EZ¾†_ûç Ç Ÿ²^³˜;CˆÔ‡4`€*DZ#ŸÃøë‡Ëg{1¬J‡u¯S/‡i^7¤^:ÓOwº(Àzë¦Ø•ŸY+.RÎó8%Y ¼FŽRÃZ@/<áç¸#ĪÒ*xN4ÎKÈËQ1ßÀªm"Y^Ér¢AâiDÔÏ‚­_iò*XpnãUr/D<üªÂÆußpÞ!†8–‡ ïptº ƒç"6ÁiGçbá(;牯Žès!öÈù(WO³8;UA/¸Žâÿ²L¹ð|å¦Ì.¤YÆÖó;–Š„wçAtÕ£8@ós£–§ŽwÊTª~¸óÚº>ÞÜsÎÞ(Ð¥¡GmæY>u#;´mšAHIG¾OEçWÅ5K˜ŽÜ¥qýFžÝËÔïìÒ¸¡iÞN×wBËvûýÜ0äÇÑU¨÷l«@eò¦wm þiå›åè-›ã O*¡pE·åq;6âNä¬=WÕïï£ÇýŽ ßýå;ωÒZçmãO÷›18ö8êtwužÁI:ì l°H±ˆv¤wbCp„ AÔ ‹)«ŒÜó%IR"‘Bð )ª RªH”˜´äâê>hJ1Þ…?X‘<"ŒTñ_‘ªzˆ;QXÌ7_DåÙ<šq§]³¼¬Yœ®ñ¯RvkŒMŠ?wZÎI¤d{Qå ‘(äç.z¤Y¾¡„‡£#@Õ’•«êUqvá\öËÁ Š5Éq„HPúcaI½ÂBò‰å’nMpAµtØÝÀ…ÂE&0}ÁÐf¢Gû YFsɲsÆâEPÃ#É®`Ä$ð||7]M0(ÙvcìCã¸tùPÅVLL€cÐÒéÆeÎb#¯}Í ²‰ÓRÈm§˜‰Aae¼†Æv…(P€òøs¤ËW2¢ÔèqÞôªŽøêŒg\Ý/Æ|ü5{¬GMÇ6Ö—ÔáéåêÕ܈ÈVéJŒ®h»›>€Hu~®›GÓÚGaÏØ$‰Q˜/(Àúr@eÜ´ZñØSsÁ¬P…S‡N~D§¶)I‹Óõ(ÉÚÇxñ^¨‹Vïûõ\79[/Ø1ýI-N‘ÏE°¨S’Ý Cб$Nl~Šò&Á;Æ!»­Æg`=¡Zßëugo¨Vf“å÷#Q¦7\“s¹Ç˜E›…¶´1­´‡?j¯m»îHä¶ñ¯ö¨iãµJ¹i.Û)%Âñi¯@ÑÚ“ó/¹æÃ\«pË#ƒ„cµF÷‹º\éu™ëµ(cƒ=¹q­3j×Ú‚ãuZ³C7üÂjÛŸ/¥¹â:1‹Í ù€ð Ç-×c~âøÌŽ‚0`(q‰Ö\·ØÖ þuÖÝà,&Œ?ÓÔvx;û¥j-cüN¤¢Ú¶•Ñ»wÑb±m=쌟S  jöÖw妞‘âiV •Y Ü*µ½«Ë™:«¸¥Ù;KÖe>S•&3QÈ·á3É«.0ö-#ã[–Ë‹Ã6ì~qq`Ú¡FµÑ€9þmLº0W¡ cZv0Ô8¼× þk®Íî÷4Þ«+°oÝÛð´>ÉoOœm@œ CqÈÿÅÀ Vá\ì«nƒ:¦£é¸M¯»] Ô?¸“åE–È¥H²±ú„ɯ7Üw'?uæ§è­*·GÔ·pé…š/?Ãl©ŒãµùÔ¤Qä…NLb°02¢„%NìZ†a™N’¸‘Û@¥Á‰×vbØ)5‡¼6Ûq†n`ùæŽü i¾cZV?ôäÿçÙñ|ð9 >ÀÏzóÂÀ”¬Ç«Ÿ‹Ðf„cåþO&´i»<6]æósð]ÖšÆ|¬¦ ž;ŽÄpŸš@µŒ4ˆé€ˆ4ü3e³ß±í(JãŽd°ÝrËÆJÀ¾e’é—Kû2¦ÏƒvébÌ>K ‚Ú%‡é0=NÄ´£‚ŒaSŸø²mø^ [ÉîX¶ì.€-ð“ì¸\CEávÌ-€m°±V<-ˆeQûÜaeAÌ2–Îô0 PзO½YG6º|ldÕ¤x©£UŒ÷ØT*ž ²ÃÒƒŽP¦ õ#;L)dHÒ@ ½C:”ÆøY”;$?i¬w9OÐ\âDuš¨NÕ y£c©NzS¸2kKlXnùL ã `ß±—ô¶“˜ìÛW#&‹Ó†}«j¯gpíQ‚ôÆW©ö:r!سmÊô¹G€ÊYdbŒp Ä+o IzË- °’8D?­¥FéãâÅn¯{m؉@¶p9Ý-m`ŒÑÞíHB[¸Nï'°˜î.€ €]Þs.¥árdiÐ&>£hpKÜÑ[v|˜é–¦°ß²sÆ)`{}ãÃÜeGo³#¦f&¾ðo5-f¤ˆg1÷|iÕv >­ ?¢ï%éd{üŠÏÐÚv%œ~¯¹Ù€Øu=Ç3€–é¡9¶½À4aä9'žÉuðLÂÐË3‘µ_9hëW¾òk~Ù=¼±{Ô/Ñ-³ÝœX(Ú§Ä·nµÓ9mNÛ†Ó¶á´ø¶]tyýCÁh“˜$²DæëÆŽcpËËëj_‰Øž{éÖè]¡3íðdäËð­@wkVà1ÑZ~LJþûmn¢w%.½ùû¢?ËâÑ(Kë/À×0u’œ:Iv¿¦¬à .±Ц4s½­³+à±B•\F’Zq-êFnz±I<×$ (ò|#ômÛf>uÊiGÞ$åò H¹xž½“P³¬°W‰½“Pó\?Ø‘rñl>Œúé4ÏñÞL­gÓê´\Þ<µ¶3J1ž]{>%ÇÙ/rRr™”\&%—O¼òuÿ¤ä¢þðš•\ŽîÞ^$Øe‰aE!‰ãØŠ\£^åq/K˜i{Äò‹Æ\·pÚ¾m˜hÓõ߆›–aØa8ˆ7ö|ÍömpîíßN±evÙÝ[{ll9íÞâŽ2íÞN»·Óîí´{;íÞ¾ø‚lÚ½vo§ÝÛi÷`š™¦-Øi vÚ‚=˜€ÚYн‘À L×°ü˜FQbxa`Ø®MM7v}#¢I`„QH¬(Ài ÿo{W_MMXä øKi·*Odöaö#«–u¹šýTܧë²ÈùÉÞuõ5§¥°¬‚0ðÌÀnƒ††gn0à˜Ža…}½ixW‹‰bp I*?tÇê 'üƒÂHô–Å<ŠèfÉg6˜5+î)DUSØ%ˆÀÒ|N(eP˜WÙ¦QÊ£ .nÄ2¨þ0ÿV€š¸´Ìø¤³m’ö0cVð¡´ï[Ìpk¨üq±iÒrÓO%ÿøRèc[²§¨%3(ë9z0‘\Þ¥ ‹"¬ÅK¬î¤""›½$#›‚BtX¹-Ÿ@bàa¹«c|2&0UbÈÁÆÂº Õ!¦B?f*Èøk5ƒ’î1æu*Qh™>äóo½b„¯Hø“”ó¾$ú¦ G$>=!ù‰].ø)j>>ÓQ°ýBLû‡´àÑ2äµ ‰fàä±Þü*æQY.y8¸¬ÔÏp %Ýð ¢\c‘mœƒ¸ÊI1^ºÝ›’>^Š1™.ÁÚÇÝ–øC/äDY_l ê š‹ŒÍe@²¨QÁ||¬ËLè!‘à¯v€ÊÒÕ -Ü%ä F\!t$@ð tkkJq°Ç%@¼¾ 2³ÊüÞ6Ì€‰5öཛྷåÐ=ÒƒÕb V?Û.a€îဴ­Ö¥øB)|O¬A€ô®Í6’&üΡ‰ÑšTËmÀA<0"ê˜ç)L…K=Û9âß|–Ÿ‹j«Mø$[àj•q瑚/4qòŒð‡ %}w÷;èt1î´B{‹Qá#þ"Åõ"ì!l l‡ *Íùÿ޽RU_¯!ë©!R m€›i@MrJ$œøI¨QØ)`ùÙ Y±àA/3þ.ŒÈ.EëòÔgå.X¨ðcay)R'Hÿ‰BÖO;¨òAæ‚øxO —Ó¡úŒ±PܨiAiŽ>Q3‚a*{Ù€?«Ÿô`ù$æQ¶a_ Æ¢V견+Ó-¨€¤•”ùÉÔ;†šÕxm­Äéj"2 ÕÞn5ÕKÕs]CyÖ¤g$²i±Ø.¦©Ý®zž_ñû7 Ïîæ®b¦ïzG£qý¡0o»žß—%ð¯_dz(øP#®Ð®ìßtRð<ß,¯.1-Ç)Q0i´Oí—Õhÿî/ßyN”Ö€m¡N¬ƒiË=:ÐíZÞº£±öxä­3‹@б Ïè"û=“û!v¾6zÁÀ6ry,b…4‰‚ˆQ? M?L˧ŽaÇ‘;±Ë߀%¹d‚+åþaöN€ý‡‰ðT„ê­Äz™Èß~˜5,Cîb»lÖ«Ž"ýEš†m¹f0ˆ#í00ì’v„¡Icm#I5ü¦¨ñ*¢F+CwdÔ(Ätø›tæ,áKÕz.nGìðq'uí1Z¦HZ,F e]±p£À-‹,W­´ ¹Þd …ã{Yh?#@JLËÈ ù %,/ùø,ª'ü)Ÿ õÎ%Lä\ë÷÷™»nYn†ƒ­YÌ=rŒÆ=°‰9éKäx>¶ :( gc¡»Ò=(t7xFâÕ nÒH´NxpǤ蔕n¶)ç>í:—“Ø|¹è·ã ¿² ¹#Šb@cjˆÈ–|‰B5,L fË—¼úÇ–%‰Œúvlº‘°Q'îqëçÝ’ì0 ÃlªG……ï3âØ#·¡.ËrCÀ:Šó8ûßΚܷz~Mæ”Ò,cëùËÔÝiùùZv±‡±WÍ.ÑüÜH§ª#žv(µ'5?\c-Í›/´ehØ‘Ab‡1#ò‰éD¡KM暱ͨï$¦G"ËJX¯…›Ú7Ï.¶èa˜ÃöÍäƒr´Ð x=Ú^çiq»ä&¢a[Á ›ˆ²…3.;õržz9_E/ç)‡:åPOÌ¡ŽÌ„N)Í)9y<9yíiͽ^Иç¶)ôˆ´èÌ…ŽÉg^q2q(w•iÈ®õ9s+üø;$…výùÃ]5/ÄɧÔã”zœZaã»6Kʯ§uaôµõ´9=Ç&Œr'º¶:Ä÷mÃql×tÍÀg!‹|?¡^@)Jëâ_êž¾šÒɲN7ò qA&8â„B<*m»¾âœžïØ;9=ÓuügrzNhÖbj¦Ú}… Ó2\ÏDõ¾nFe›£âcjÒ¶Ðçö<µ¯A*uå|\jO܉܂™+"Í|®–ÁˆNÙñ§û œ=b~Wç¦k·ˆ_ö²[õ"¶S½ãØþWtªƒv–.«ŒÜ³´HJ@ôÝ…ZUµUªÏ0c1‹@{wysˆ±’mŽaöÉ#p7䩪‡ÜÅYbÄgýEð—€ænQ'QJ qº¿ÙyYDÑ›|¦´œ“Ö3\˜*3†}L¢gršÕЋMÒÖ#\ÚVáÂ2+W+È#æ¶ÀO’[rÏ3,ȬÀ Õ˜€Ù¶{Ô@ë¤tK–9@¥_bæ^a¾& ×¥ºKï’D™£ôQ¸íÍ:…Ž·A¥Í¥RŸƒ„ g˃üùàß°€ñ¡ë™.Œe/oäsàæéò¡BB*&f Hº¸Ìyœ»À5+È&NKÑŸ3|v "c(¤£¶iì”·šÃÜ•’¿”ÇG>w¯xÌWF<žg~óÕýñÕì±Æ|’Ç69ïíC ÷Ó÷vÕÓ¾!“…½W»JEV¢rÀHi®›GÓ'²îÔ¸²gÿ&[K¾áN‘ˆÖ¨nŽð¤*72(€\ïÔ 9[ƒFšmxð/ç'HïEpw¥«í¢˜&ÀïäÓŠÉЌ楌ìU[ú,…·O;7ÄW±6p[Qfw…"qo¨éuqp›}½¾¯yc2û&¤·z)Z$' Ï m’‹ÈËÑuê›\.w1ô»aRæÓnλ~‘èðô¶¨'„†Qä9‰ç¹Ô²c#ò©ÃLG„ŠFèÄI˜óУ\w&³©T$2¢5?…¡øÍ‡TŸðïßµ¶jY²Q:{"œ]¬I¾ÛµM4w+ë¶Á[šÌžÊÍ,.å/HQ«à7_‰óÝ¥‹»Y&F‘¼Ü7Á›á1¯íìļ®o{öñ˜×³Ý!kÆr-Ï7û1¯‡ê Û|šýî­óeød¶(‹S3_;äµMÑ\o\È;x—F›š¿öì°¸ùØEbœâ«Œ{ߎ_s˜J8°úWOÝÀƒ¹u«{M®a¢¼:KB;°¨i[Ž;Ä =qÀËHüF6‰©çû.È«dµôd¢hc¶½»Ó»šŠÿúOk&¶eÒúIfs²Œ»\>­¹mùŽÄ±˜Esâ^ڤΌ{óÿlÒªœ­ÊªJ#±•Pª«¥›õš²ìIYÇïÚ Ÿãd–¾bÜ„Ÿò}w·Â=·Í«DûŽ¿–%ǽêÿ<°ÙÏ„OïëZ:ÕÍ»]4?“zöqç÷˜ûð˜]…µ|cÇÇÚ¶s¼õº+²Fë…¾é ¯šeò°âxßï7| ßÈ!~+þöú¬j¦[½¥ül-¸ Wá`-Ïtq¶ÿ÷=×ÑéëkxWœìÚp—­òS²y¶ú˳×IB‹›ÞleÇÙë ¶ûâG<®fC¯3nj+°—ÚüËÓŠ !.Ñáô&)‹ƒ±à%2<Ìp©GÌ Ä L36\Ÿ&.%~à±ç3YA2XOпÍÄ­H¥]înó´ ÒøS;=ü?0±…(˜: ©xØ–®V,–ê_µ¶/>Ÿá؆=ŒµlÃ5û¾¶išÞó±–ÈfìÄ)¡ñ¢ñ–kû#÷ðöÞä´Áö '¶{­Jý¥Œx±é¶‘DVDM? Pß7¨ãÓÀâ†Û¢&Jmêc{O§ºùýmV3…ªf£üÐâ¤u©þ8#2mުɋ¡6ÿ ¹+°¸¬÷<«¿ª·l€£Ù“Ÿya?ãzãüL{Eí×`‚+?ÔËt»Ê ¿ùLÀ…k½W¯YpÉ¡'xzWPjùŒò"<ñ~Š3$†ëÆ.µ\‹fdÅ–íG4ˆå„5h¾Çȶ’‹?î«#Ú³¿õ¶yOs“Í3;$ÂhTgYºdï>üò)köªw—-‘Ȇg¾M# mÇ®ÇLôˆùv»"3¸ã44U•2ÿ½;`û“ÿëL‚#œå•eÀÀs쑞²(:Ç¿¾/Wµx÷¶hS%þ[–ÅgåMÊÂ%ä*>¸X3VÏiF¸3¦`û‡´à:D§8÷FEäĨÌvWæ@Å7¸2] Ú[N c#v'ÙÕ0S°.^Q@ÕëVåÊZòi8H¯C–l)g]˜-Ÿð€†gûë ~·e;9PÂ|)_!T&A|’ÂE9£Ðé·1­R1‘¯;­9í}ìºùK¯Š.'öV0Q0~ ?þð?€£¡ÑÖ1šÔ~ιÛ,f­¢d¢"ê4°9•θuò·1[ò_ãçP40[°ðzÒN¡*[±Àg%©>F€æ+°ÎÓ¡Ö1Ô• ‡l¹*€ÂReTcäÊ‹,Î.3q=Š¥paõˆ5°:ì|¯D|ñû¥Ìƒ ùö#YÆnŬ¤PÖ{9É£vG††Íì ²Õrî‡æ×EYYd§5°9!‹DÔŽü€Ì ÃЦAÌI æ$±K#/¡ŽºFl€²¨—·Òe7ë™ ß«¶_4ÿ‹äÚŸZ>¹îàw)½kÉì3Ç©8 ÉfJMû]²)¨ú¨x¾OÉL]çkΩÚ;n4ÛŽ®iÁ £¦×¯&LË…w¸iGí´ïø¢ûŽž5š£žÒe™$ê ™«— ÈD ßþ¥—Ø;g픽 ¾DÑnoaÑŒÓÈî^ê•ÉÚ‚‚ÆÿO€1ù¢Œ>1Z#Èõáàs‘IB(ƒ ­Á—Q¨PÿšÃ÷‹DÍB­6“lç'ŽÆ’"þ®ÛRŸÇ_öÏuð ãÈ;ÚÌœs%t¸Ê@áç¦ÆÓñÙÌg±@ãØd ÆB\F Ó‰ÌȘA; †Ï&rüDŽï}WX¾x²$ðTrü°ta?. Á¹BmcË‘¡öÄ5!öy£–«#E]HÑãÎÜqBÃò>Ÿ”±À6|#6|+ LþÙy¥~ãÈO¼¨ñ® ©m(xQÞ©¼¨FÙðYjÔ$n8@Ý› bÔÈ‚õ‰5yy á걨T6þåªÁy˜nð%$1\#ñ"¾^4,ƹÂí$r¨™L]íwVW”¬Ú-†YÓ§ÝÆ8ÍÓô68Ñø+?Û²]×ÝÎþ_¹ywÇG·Xf±‚Á•ÿKîÉGy2åù9^³K®®œ`GÅ ,7ìËíšwja”½Á;-°^t/#[¾û'BÔ¥QÎS‘íê7ä³ /΀•C!®×nK]À/‚;OQÛ…ªÈ¦"Ì‘Hrs/¬ÙÚó ž³†‡:´½Ó‚ÇuÇš¼´¿OÙÃn¹ÓuµÐ¸Hox>ñ<‡Çóib›¶ãû†iÅ6u¼€Pj‡Aì?™h\mD „ýÐ÷̈Þ5¼`Ñ{®®Æ0¢ßkŸ1…óÜÂùAbÎ÷Úgèö+º®ÐÂ¥©YÆkÐD|í2Š×»^c8Šíiú톯×$£Ù%/¤íZžázV옉g2ߢIì&3‚Ä5¡v†F@,X!ú$¤ýv…´ËÂlbºF°Ó¬Âóü°_úîù®¡É7›˜G¤´_ëö%NLû*v0{RÚ¡1.¾œ¤´_ l|Ó=ÖzJØ£@­|6›cŸékì?vü·áU´0›}‹bÛÝ|¾ŒóKÆFÂì8 Yb9¾sGa”3t¢€ú£~œ˜–£tP³Rlõ‹¨1N«UFžÚJëSÙŠ¹ªÏÞ¿Õ?mŽß–¼ê¤nß7lÏê šŽmf¿LÚt\Ãr5åeüØSÖïåÝ ß²ÆEetÛ_<×Ìñ °ÃY8œ3ýb%ä¦$''»töñ‘¿7æhý¤ŸBÔ€óI!Û¬€Ñ¡È‘‰õs´çzè8MÌ¡å;GÉsq¿¼a>œ^Lá‰l –ñÿgïÊzÜF’ô»…°‹À²y;‹f»³†»§m,ºßI-‘T“”«Ê¿~2’¤DªªÌ/dë¨2ŸlË_É<#ãø"‹6p”J5Å©0D®É$‡Ûj®ƒ†j8æ¤,S'p ¬ƒÏ÷`FøDº„;6ä&Z¬?}¬KwQ8¿“‚ƒ(áWA¸ôHÎRäR5ûÂýP9a -‘D+•G5–n^…ÔçT‚Ô“öECYF¾ëÊ‘ΓI`ùºëZž‘XVâi‚þƾõ8 4×Ò tB?š‘®Ìa±ê«j®g ®îúÖ ‹ÇK#xH‰4ÙrgI"8Ò+4"=Ã[æDˆô$|"Dº2ÍúäZ­Ú6'B¤S;¸ÎAÊ©ënhzè¦ãë^Ù+4_$–« W·ý@衈&ÿÖµ–ùs|Ç2ü[¶éxšÙ÷oÙ¶9 p%Ý¡n…5iÁÜaè®P‘=ûCŠ›–}Åxïï,/<îWU,”h©°z}=õêšuêsøï¢XhV¬›~à;¡ãqêÂ0M×,‘Ćpma ¡O õËT¨™ÞBËñ Í=P¨uoÀåj–mŽä |…´éÉ[x~}ÚpŽ G;Ч'5ú|jô·ôÓô•æ«rªã»8 õÕi(ËßÒÍÀ"†ÍÀQÍø£:EÇ}¯úmcu±, ]ª,‰æ˜¡íD®ç†n‰% ñáÄq`¸Z¢'+DíC÷Q_KÓ¥ŽâífÖHUR}ä£é¥uÑüç,PEêºP5bc¥P¶ç£Æ$^5<Ó³ˆ±œ ×S8HW›¾œ .¨q򾄫«»ø´.ª^þ‚ªíÐO…žgÉ Ù!×Ð*þ’óT{ÑÔ£Óñrgáo%lé9ž´2pC#v/Ä‘bçËÐêÑK¼ðÛyŸ~‚ÑèOŽõª3¹«&fŠ+e¦PåÒ/•Eç‰$tm-Ð4aêalx"4<[^ÍÒCO·mÏ´ãÄ>2‹î÷TÞo«ÙEž åÔšý"¯˜äA<Â(ÑÝ”=â?ÿÜõߪ,”cÐüþ¿.¢býšb¦¢æ•*þ*Uðñ«®9ôÃêö.ðê›.˜ypžWk`¹04Š3ï. ͤPªÑ¸§á žÒà.ëY³ìcƒ’£l¡FHK‹…\qŒ\9õà)Wîʤž{L;!î¬xça­ce£ea´Nå`£®:"ì´jò95¿,­¢¹TOäýKÌ)?îb f¾k‡FìëV”¤û¹ža¡m[†c:Ad Ï®ž`ލ¿Ïè[”7HâYJMÛJ)â_\ÿ‹ì1Ò!©Çš·•TÝÒÍFij۴¾yîþ'fZ™ejÄÖSâLͦZ¿;ÎÔuI,{0§Ì²Kf–Í ö`'ëÊò¿.b[h=`seˆº”!0|;°’0ÑÝ(v}K?Òt7±"©¶é‘™žcZ–Æü[óE³Û˜Ý(Õ¬Hh{7¿!]OÛq»ÐàÁk\>ët%^½÷ë¼ZËùþ¬M ŽçœB¶çOžB®_QÔÔEŒu±ø$Ö—L­×Í ô;´Ûò-W×Mî¦Aj^ù–隉æ›LFíu±@ô¯×³ÿ%kÆì§üSZyÃ3ó5v:ùšP=·ÈÙçÈ[$H£Zu¿¾õc“Ìßù›Ù»z÷°×³@ÔrVHx)eèÒñzöþ÷wÿl2 ˆËðVEu©O›½—jäV”E¹ƒÌnEØD±SX·é—÷?È7•Åúõ«;¤c’ºà² ˆqð±ò¯=zð4™ÝÛY\¨oƒ¼n¢² ½ï&]ÞÌÖ4‘Tsû–Êçl™dægyŽi Ó³ Ûp\½ääžÇ$P tJÏ:¿ERë,’ºío‘ì âHéLîÞŽ].Ÿjä‹¿æ½À³ýÉRg‰ó¬$®æX‰ç…¦cúŠM×pCÛô<ÍŒCG÷Ó7¦Z/³V†áú¬ðÇ6÷€¶Ø³µ~°CêáHñ¹!uñƒbSxÉ@î¥2ü©TƳ8×S© Äty‚Èà©TÆ7•ʘJeŒë·Ól-ÏÖ5Í ‹¡çD"ðÍȲc׋\Ïp„H4á¶«óJdü wŒmîE.'ÅW*³m}{ •ü×ê6ÍgÙž”mêUk›úëë½qjù]„MJúF)…yõ¨AꯤƨΠ%Õœ¬ýÕþÆ‚õj(TäR—ï$›z!U‘5Â/Ån¥ÆåB,⸇1u¶éû®íY=åÛ¶,Ý24–ú=)Þ—c2 W;’V¨YÔíšS»;'!ªž¯º bT ÖÅ~l«îŒài‘‹ZöÂÝýø•"’|µØ¹X7r€ÈV‘e?tfD þøiËËIºi”¼éÈå ผ¸ã4j÷`°£h0Sgk\eÖ3ð« ¢ªP°:¦/WŠ'CEÙna±[®D†r립HÅœ"x±FzM"›SH+„kyˆ¢ØVÿ‰nŠ¢R±\ˆTy¿© ‹GKhˆE.Kg5)–`;z1 |°T®ê¢ÝÅT#Ð&rBn¶àw¥…ÊtÀŸý±xŠÎQ G‘ Ì« }¨¸‹ ÄÑàPtg"½ pJPDö0ºJË”j{š€³ Ã‘tðÀhJkÁ´UT7ò’¡Ëz¥À­ŠŠlË”âùA4)q»¨Z\¦ØtQ¸ @¹]£½¶ytbåÝíÿ.Ä€æ*ÃVmé .UuÉ#°Í*ö/[‚c/ÑŸ‚\òFƒÏ•U!Õ¹µ¢™<–qôFªÊ’æKP¤¾G‡½*Ò…1ð¶B(DP”Ro“ê¸ÒîRyú6á½UÅ´·åNÆ ‚#å’AB9U”>§%¼-“ ãèQp¹9ßËY.Èô Í.%u[¦5trZíøŽ»QßÂ2M¾ ·¿šœžTcëGÒP‡E±Ê‚r… i¨J“D±èþ«À]zÈ(8ÛñˆŒAoÄz‰6ùc OLT¹Q¸Lä[ÊœCfã^¼JööQã ¡Îä•U ½Œ\Á ý…%T ¼¸ˆàAiÅh¡±ßÖ¬4Pìc’wšk¢Á<»ÒŠ îÙr´›ôÒÜê@<]ðèKA8cÀ›¡yTĘ"@BÕ )Y¼K•‚„šô*º–JЂ³CÊÊ}›þX¾"]ÝVœ×H‘¦BÊÍ4’¼êü#xo©Gú˜Ð{;í¸D!§Ö¶æifÊdy”HYlªx½D¿¾1‹±Þ#w#²Ü0uÍ<Ø.oê{žÜóØð&Ù¸ñ5ò²”׃˜×²Æ®W—³ Ú¹ùBŒO«%–ɤlåLCáH"ç ³Mé½Öü¶*æFîíóU7ñx›U¦êqEóÀ }Ùj¿Œ'gES©CÔ')TG/àÙÛÁµª‚ŠJˆú±(ë«“€ŸeW×£#(^qtF^Ø?~Oùüüÿ òÝ?½ÁRvÞ­³wY‚?üñT·®L"€T¡ŽUs©A:á&²EÇAÖ8 ´<•ÐvË…Ð(±@ºÕûȨ]à ’QöGIÉpTŠì*PлÄsèXýòŠ«Ç0ÎñENUÂ%ÚUë]7€ËY¯¨&þ³nðÀ,ikoÂ@Ö<9 Óˆâø~#À©»Œ¢ºÒöXÖ'Üë9ùLñíMJÀö÷]Ìç±ë“ ƒ/xÈ¦ŠŠœ(eyò6LÞ†ÉÛ0yXš'Å\Y†{:Z†÷£Ñœ2Á‘lùk!,ÎwÑ%Ü@çÝ€Úö¤®´ùçö¨àDYŠV\åⶪ·I‚~CG¢ŽAr§rš’Õ0jËyt„#ˆLÆ´¡èídµ š´«q?=!‡Ër}=SéËG‘k/‹–¦R»„öÆãèk&±yZòÈžÖQ˜Ê«x8×ÞèàÚ¾‹Âùüœd6CžûdýÑŸ\yjö ú™Lë4ªAÚÓÛ?=l‚?ìËæ…|¢xj9Žâ´üÿy+êèí]¼|KwˆêmŸgž‰r)â'X¢FåˆfN7o=ŠÄ(ç›xbÈ¿ÊìåS²«þó©3VϸÁ¥F2W—Ý·WñE°N—¹l$[ÒLOèÐÐñ5ö *{è>+¶²kIûÁdȆ!kì‰RÝÉIÇË߬Àvwf 5±Æ¨|WySCǨµ1 áiL?,©›>Ž ¬rƒÜ.›½Ä‹"!Zâª>µäí5¨ªÛ§6´`ºê&ÁW딃¥l÷*°[÷öÀ^KtD&…>bÀÖˆÛcßDtzÒwÆéòÍ[Rè¦æâ›;9C„¨îU¸ÇH©ø2ß³3’bðF•°Êv!åiÎhDW¿p‘Q>>}.Ø„јoÉ<ÅÞ™k!tc¥Å D[2ÚÕÙv!p.ê ®ƒèBÙ&[b­èTgLz/Æ. ',1ã0 '(2ø¨WÑ?ˆ¡ãÂu¦k ¬ìC h•f°{a}s¶‡‚©Ï¢ ƒ×)v0ªÈGy+BΉ{›æ(n±J×kQ.+ôЃ€ ‘ãBÞ­ I·w h51Vñh äTiˆÉ¢yø¢L´¿÷ u|ÌÍ7Ö¼t[?÷Åvt²>þ0‚ößÝÍIÈW?­aÅÜ•†½<²¼§ªpÐ –ïr]3ÖÛpŒØ³ý$"®Y?ˆL=£Ð0“È‘?FÀ¢BþÐ}Ö×P %p{Mš5RD L÷UzéŽý7P%«ÚŽœ%e‘͈âíÓÿ2ËVžéèe7£Çûëf_(YÕöæT´ê‚e7lÓø“ «hÕíb„å/¨´ú %Œ¹ZÊçÞ}r3s*ö†þ‰s³CtÚƒyça›æðØy¸ÙD§¯e9‘ØA ë¾æ‡žŽ¡™±ç&Âq#Ð Ã M: k¾eö£ØP s¥ i¿ÜÌoXöªí²YüØk5±ÖéJ¼zÿî×¹bb}Ö ù¦upDÚ®é˜O‘ºæúºî IÓrtÍ¦%ÇÚÓ¾|TÊiøöpºö·~ùÿ/ú”K|YÐ[ˆòè*NJ©éî‘'eZ,’t4×f îŒð—1&Á'”…yIAÛ‹hÈá;mðò~‚üuEÃ/†A1RqÕ—XöqƒÍ1ÇvŒ@äºØl2.‚TÛJš$¸–H*}Ž!³™ ˆ0Lu&Y š'`åy ~Ϧؘ eJ,Z†: »scèý°*ƒ‘jãŰ5ĆG@F…‚c<žGç#.Ì êQÄ?’ Q’O™ÈÎãdŒ<ÇŠ›\Á ø?MØ>wÓ>MJR§ærŽ€ðM€æUtÈ¿ÈYø¯¿ÿ²ÐÙaÇÏ>º9¨Öد×ÛL¡õh¨qeÈõÄú‚‘·ÜŸŽxmL‡pIË"ncå( ¬ƒÑl’Oâ*(ȳÛ]±ð¹¬šƒw?†¿–ªUyzû©©‹$pK‹anh%†ïy"Ö‚X3ew&&\#6§ºªS]Õ X ×bÕUµ Ë0 o`66Í6½_WUþ䚺5RWU®¿G˪¶Ðk0>²ªê¡=w¬Vª¯ ô üŽý«œj?ýñÛ<ŸÄ‘R´ÝT01Xqw¿”›Õ—QI,{p¬,ªÜ67ŸÒÏ#0âÞ@Z¶jÓU0pÚ™…Mx0$ýøÏ¿‰Jný4øˆítSUw8ø©ÕõAqðS«õÇŽZ7¤R=mUÑ|-5ýgÝ΃ùxòRda0o†xº•;ɦ­O ²v°yky„ÎIJ¡E±¡–k¬Ûý›_´0äøÊ3[qßÖ˜öø-âZ×s8þ=_ªI"; C/²¡[‰n›¶8‘èŽi†®G“â:)®P\IKe„;–홺ôWÛµ4KwÝžâj»žnXNÏ7ñ0E:\2ÒAީ͇j.êЬêvQésWœŒýžEL¦êžó™ÞN†s5þøiËËCE-î8âÒ°Ñ`<žˆrð”ÈM9þj” ®É9f÷%XÆ1ÊpC[¢µÜC¹wÓvEï^¬Á:ØXðie€Ðb-OQÛ*@ÑMQThÝᨼßÔ`¹ñŽ8¥œ+°³Èåùb»DZ°=‡ˆŒ×"”`4 XP“Bn ¨2‚*öÇBžá):G)äE"8 Ø”!XqX9ÁlÇ«ßöÐ ¸j5ÌŽØ`Á¡[ÁE‘ ÜDõ€È–¡ Cƒe, |Àô…ˆ(0^ŸšDÚ$bMJÜ. —)6]ä( Òí0xSVÄRò4Øÿh„¢„æPˆ,ÛŠ7à§mD©n4y¶Y¹³%8öý)ˆÀ5Ñ«Ð!"€—b%ô†Šú’+L"T/ƒîéÃð¶BJv* (¥ÞF ˜ÀÝž÷~ ï­<Ê`œ'˜G¬bÑ) ™[ážqô(¸Üœï©ž8…8@³KI)G:rlZíøŽ»QßÂ2Ml1·¿š_žÈÕÌ%h^‘†ª4I‹î¿ F3¸¡Y„ÐŒ‰‰*7ûjó ˜Q±¯’=}CˆQ¾{ ª@{¹‚ú K¨4xqÁƒÒŠÑBc¿­Yi ƒÊæïnÌB_8Ó÷¿Ùû²%ÇkÛw}Ã'Úa“…œ0ø8NXnµÚ²»%…[¶ë>U$€‹âxH°«ZßvßîÝL $ØUd‘Õéãã–Ø{aLärçZ™v|¶cg‘«&@ìM‚gîh>ÑÉ#Â<UjÍcX `@«{Ûý wðë*0qsÄ”žGÀ ÍŠø"7+ÈAÀöpAø‚š'ÕA7,…Ï"ÜNší0+vR¨%ü±dæÅECÍõì‹P2ë =PHÑCÍsz¨5|dæ°ÆðË„õÎ7´6(P—ѵ}8Xñp üeà08±¨BP–!+]`½öä\ÊAx˜öƒÕèÙ±=»P«ÑóÊ5z¬ÜNW¹\®„¸5#ï„èdÊjåÈBaIŽ÷2¤|¼ÿ0×!æBÏíý µpÜ~ÍÙ’Í5¿‡P¬öüéæ~”»†¾ñ­-öf±"s¤+•žDßÞœ ËÛ€ö:ðÔ÷`Æ¥$yλ:¥õ²Ü ½4Â2Ó#k2š?©tßNþd¾ÅWÌl²!tÔƒ °ßÁ‚òþÐË¿ÿð/ åoß `?L¦?L ñ§@C±‹\C-³VÇUžÔ€”êóÎb¨u,§pÉì[í• ×­?„<ˆpAÜn;#@—Q6®@¸#n—†ÁüÄÿ££™ŠL¿[%Ý$gq¸^õ ð#ÈŒÿ7Íí£$ž¿€Â5NÐŒG‰!‹ü²PÀ¡;Œ¢;è—¶µ}óþíÛ;>€‘åìÀ`w^…!˜ÙmVhá“©F€«ýp6©³¬"˜Š ؉ïïÄÜXvmîm vm㕯m )òì‚ÈÓD¦Pž<<a¾Ö’ÇiSõòD†åö¿Ã²v_È^þ¹×oà<ŽÓ”qÈø>2ÞÓÜg<°/BƒîS¬}ž“# †â1#&Î1£_äy6ER˜yÊ€l³ÚÌR{sÄE”bWwS³û!¾i2ï|mÊSð¦\ ²Î«´0Ó=½ˆë*k» ã™JešÊ¦â>Ÿ.¦CØU”¡3ÐØÄ½0z õ°†‡`fšæS°«ÏzL·"Ì:IÁoJ×0ã¬>„0]¦ àãÇ››&A¨±yfÑfžŽ`Ž1별I7¨ãqF3¨ÝÝx4™¨åâ m® ÀÅ'@–cРÛ.@¬Ká6[€fbr—ü®ê&Šßº#s}6àý¥2Ùšú ¿Ì×­ƒuÿÁÌ+(þ½Ìœ²7òä£åœõÁ—× é3gýXZdT˹ÜûÉy—Ã8ô"årÂ%óXXJϸˆ¤ dm9Š-GqÅÊrÛ}ü±vÿÊîã_Ë>~»%ßr[Žbè}XŽâh9Š-Gq‹­å(ÞÅ£8ïS<7SqGÎÙ륄X×ë#p=%ë•q¬ZÎTK€Úbø*P-%é~¥$µ¥L[ÊlEÙRæÕ”2-%©¥$µ”¤P®µ”¤O-3[~QÄò‹µ¾p~Ñ ã½6*Ïaª(äÎ^«"ñâº~âðÀ1Â÷xnSO1_D*T¾p)ˆ«âŸùíô¾S S›E£œHâß½c½o+ô Oc¯(žZ/Þwš*KCo2«oþñÃOýlÃãU³6p*ê¬ ã~e&j°6B¹ëº5Öƽ@0§BÚÀ83D$•£8ŠÇÿ•±6ŒçË™™+/‚³ŽïÕæ´åÞµ¦=³¨¡€KF­º{å…ÿ©Æ¤‡"Ìöâ$òs¹ßùÍï߸<¥mÎl<4¥Ì»Hm«l‡!¨“Ã0ß;ꇒ5ù#1ù bÓ€͆@ÙÎ d2_,¾`AÅ.y Æl‚CBŠÝêÈ$– $d*Qã-C̰ˆbƒ3K°x6K±7¿˜/R"0˜|ÿ ´ážFÂôSXMñÌ› A©Ä~ÑÕ^®Ø$Åì[˜Àa›D ºVïÁK¯„Äì–*ÀϨZ|²þ•i™Äù2!Tv· hyý½%0¹áj b•}H’æ‹ÂpH„=GsA :cM ¢+l¬zc>årA=Ë)ô¬±YT=߬X­ùãpE *jùg™·‹ò6²­#P&ìëшÅ-ä{Oˆþ~þö㌅ƒ«µÏްNŸü¶vŠ8íJ®&ûH«UÎn¨JQµ¾Z[ÀTø±sÌÓéü†:ßiK¤Å ÚC{ê ‡5rÒa#9c>¸P 1bpm°µþ°¨Œx=ŸÒaéúÍ=œ{Ÿý‹Ô«Ë} û Ö‹EtújµO#Ê"á+Ï1§DFÂs•PépQ¢e!1+ÿ¨ÒU$ª—ßSoµ^,æË´§Ÿk/+ >¥F]=XíD}ó·úlÛFŽÞÿ™¯¿¹×á´áV3NTïïò³ü”,;BªÏqÍÅkÆÅká1·²B×(^û®ùÛá°ã¹‚Wé†v²a="ov†nµ« ^uÍZïù9‹áĸˆÂ5u)íH6¼ó&Ïn—ðúså jbÓ‚m¦G@ ‹þ'mAêÿ× “ïKÃu&ÃÆàP˜¢3õ² ZR.¹Éä,ÙRKµt.ß=Ã>ñÔ=1ö†œ4’ œÒ~ŸÖKv‘¼¸îIâøœ‡±Ï]ÉUèÉÐaaèKÆ™ *„ä1‘©®T7äu=G8­oÔòßq©WÝ©¥ÁZÙ§Úºâ}¤_Ór·Îø—´Øí1ß{e]hû×>‰]0vGkŠlŠî‚q‡Ôw¡hÈðÂa ž"(°)Ì Å5z¡¸©^ðÆ„ ±_¼ŽÇíè©Êù¢@KÜ^³¦À/ ˜+ýb Èý€í_¦ÆvÔ€QðRB¿ß­P0µQ Æ€ªÒÁ(Ü6CۧÚêaPèí¶[adÛ/»£<ŒAV$ˆ1°q®EŒƒ vòUÕ‰Q ­L1†}·î´.°RÁ…-™×p ì ØŠ£Py] )¢°‚v …jС° %dv+‰Œ‚5µ‘±à­H2Yª%cpÙd¨ÔOÆ€Ðû¼7ŠÊ(DEZƒ«k,£[±e$¬P]Æ Jh ¦®ÃŒBnÙ Q°†23 [H4c0[ª' *mÆ!ªêÍdEÆÃ{š9+¹¡fÅB ÆNÄñ]Íg¸‹ûÞ¯ƒoä Q°†.4[ˆFw•¢Qð]Éh¼$ÞCš´»``UMB{£š¾4µecjœÀpþ³@G¥;bÔØÒÈ^yê.è Sp786vÝ«\Ý]“°î„¯hYwÀ×D­Áø*s4´áF":y«œÓ`LS¬Ha£pMlnG…ÞQÉÆ¡7rÙ]`;ºÙ²Ðî|ˆ•§ª¤6ÔÐÖîÍõ‚1HôĈŸ ñ<ã.éGS‘ Ü*3#n8r¿X7ÿ€û&·òÝ8H‡‡ÙôÆá6ÊÞ8XUâ‡Üj}ãpÑo¬Ã«È€c05=ppG…~ÒÞ'ŽÂïh†£ÐMñp¸¡ÁÇ `@®¿5? 0†×DƒP¨õ $z«=ŽîUîép€ÎKãÕžxôÂn ŒU$º|´ îPIª]TÚƒFFçÕ#à UtךDõ²ÿ*¼S! vtM ŠÆ–ªØ.Ù_N«àY]Þ!®Ã‘¡qÜ!ä­ÂqaÙÕ{ÕƒtdU,Ò§Âák*ëhEn«ë®c {„|Pð%v º®ñƒDûÁg+ÒŽAÕÔÚ1Àž ÔÔoG›ª<pSщmH»#Ð4ÞG¨ˆ½#PUy$¬ªó†îÕ‡¢÷ Â#±Mex8|G" = ÅwÕãH¼;8¨'>À~ay|¿Â<ôû¥æ;¡»Ü~S|ŒÛ£BXj¬´öÛºgÜ©‹˜r ]zâ_XH©Tl%ë¨B»èB†^¨Ùc uY{r«o•B÷ÌVñƒ*›žPœÊ·KC`„¿­Zàá6]¡ŸÄS¹ë4Ï/Ã\¿_¡qéz,j£YN°¬I!ˆx%Ýiýkªö\E²¾èýÛ·f“1f4åî'.uïQÅâz/TÔ6éèŽð4-š³+<Ø*¼­ÂÛ*¼­Â_Q¾«&­á¿D ŠÖ£y‚|P¾`Ç´SuÑ Då6<\„ÐY·èÖ'зøòËÔš¦#´˜Ñx¦Vé:IÐ÷yvÀIW=ªŽK.OY51EKã¢æèìt¼iLÁ\íDþö‹™bS½içJÁs*m!NÛMgk•ÍÎ øØu*m{µk®WaßìÜ¡ý¿Ù(ƒ=Û%Éz½ƒØ ²Ôû4Ž“X?w*‰þ?º1 ÊBG$QÌœ(Iî±¥³ôaåÛ;#}§¬Næ1îWiõëôaTP×¥¯ñ‡¹ÄãŒ§ÂæR"ˆã·ð‡5ùù¿.Fþñ|93Žã"ÈÃ8´úº ˆ=,ÿ¬‹¯ºmM¹Ì kÏ›BE+ ËÉÁ‡-Ò©{KŒ8€%F;4Ú,1Úb‰Ñ,1Ú>%F«b,1Úb‰Ñ,1Ú.Ä£€Yb´ý KŒÖ„Yb´=XKŒ¶Yb´=`KŒ[b´ã KŒf‰ÑpKŒ†Á[b´}@KŒ…Yb4KŒf‰ÑŽâ-1Zf‰Ñv0–Í£sKŒ†¼[»%Ënɲ[²ì–¬npKŒÖ k‰ÑŽB-1š%F;¶Ähp˜%FB-1æ–í¥ˆÑÎM‰Vœ—÷æ:7XhwÖ—¯?n¿f³Sn{ÍïßÕ®ù8úq¾öI…Ùt´ŠúQîûú&äh±7k›YX±R)% G gN¥ò@{ûë{0CŠØì(Ð_¿Ù^shL<ç]ÒzYnþ[¦:ÿ›Y“ÑlüI¥ûhîxš»åõ3õ•O´Åj½Zf–zPMÚ#Ëýg¹ÿJX,§h½ÎH¸m+Ã]á+¤¼}L|×8>ìÉžÊQH¢3ÖòA½ ¿!êužŸáÐÒ B[ºA»¶Ûµ-»¶e׶κ¶eé¯ieÌÒ YºÁ£HK7xó"tƒµÝ¸K¶T…û0O¥*De˜ÏIVˆ:±¥+ìz€Ap¹ËØÝ£°ÿ¨ÿÄDÃ^á+ W,NhJC“Q”‚–YÿÓúÓ»ÝKÎî ÷9;î<4zÚ¶€yÁì_ùýí¹?çÚpMªYÜúH³UÖ»xµ\Ì0÷½ÏÝÓüÙ Ê‚^2-÷?7*nãáÉÉV7U*ÂþT-‡*þóÁ4À*¾¾Y2›™Å¿±ÊÀ ™Œ¡ç3Ë÷(`%PX!‘*Õ£ix5_¤Æ–e+q•âÈ\Ç=ý¬^±.·.%’;9 gúò@Ø¥é#ˆi½~AÕ2˜©~B_¦óµ~´&‚aLÝf™ÂŽ¨Ã£™ gƒ1ðºËªR6Ža“EèDúŽŠ´¬õÁ ymckV}Ía¡'Èõ0ŸKöêW/Bœ¡cøÐÒº\­Mh;Æ&Oä#Ð<ûN1¶†€f ¬W Úµò)Q¬¦½fX”aaÆ…ÛßGÆ{šûŒGÃÁöEhÐ}еÏëˆaXzÌ8ZsŒÆèpyžM…fž‡2 Û¬À³ÔÞq£yNlq75$5æàÀ¼Ѽóµ)Á!À›‚8È:/ÃL÷4#®«¬•ƒŒg*•i*£{õ|º˜aWQ†Î@c÷‚L³Ö\˜ådfšBæS°«ÏzHLÃ*Ì:Ave™fœ•š¦«Ñt|¼àxsÓú 56Ï,šÂÌÓÌ1fm´ Ëb<îÃhµ»&µ¼C|¡ÍµȬ¤€,Ç A·]%Xgc·^N@ ©ºÉÔïòÃßUEñ[×£d.¤Ï¼¿T&cSä—ùºuÀ:œyÅ¿—ùSö^žáx9-ù]™$ÖxNвyºŸÏ0ýU<~ª …7`eqˆ8ÕîâV= G¨X(OJ®&9#TH)‚$Tnâ9žôc'ˆ„/@z·ƒŸ–ÃÞ§ì¶zŸ¾ûÇàiJF™aÏ!O ‘`^ÉÀ´B•ý ­Z ÔDP×J >w¯òìëZ ŒxÜ *J „ ‡¯"”@¸Ç„W\8¬“°gõõ@ègC ƒbÂ-!7øå…”>ŒÂ¥\ŽÌ§¾ý»ºýV ae>¶™ÄŠ%4ŸØöi=ƒd‚ŒºµžÁ€¶×[Ê„{^úÓAïvl®@$÷c=í·µ³o :>˜­p˜¼I‰§ÑÒ 1ê1Ń:\ÛbŠÇä½ÒhÜoß¡1Ÿ>â/¯Ãƒ›v YW;V,¡q¦¼¡fþ2?w¦Äõ¯t4ÁA!Æek0…YoZAæ¦ãy ÏÃÉ(ý w{ùäØbÝq#ÔõîS:ËZ#låïÇ;°êö‚áù¾Ð|±ˆN—S.\—%< ¥Cý˜0B_ºÄK½Ä hpW¡ãòç É/(§Äi†ã‚³ƒá8õH@¹WÇæù\Gq•€\ÿäiÃã¹;áø6¸Ô{=q¸9{þnW7·ßë$‚Cò¥\-ôé 5å%…ä:#ë(bÖ¼®áä±ev SŸwñòó`5oó•#B™ ³˜MšÅ¶ŽvS™„ »nÇ(È2aW/G ;õ(vétƒL÷œ„:Ö¸€Ùn·Oµë1²Óþ –Sà--¢‘ñ} [Ós²„=ÐU$gúÐ0Û{Ïa57Þšyúdù8B?%ðížE ;è½sÞBGó„z•™–Zßø* ¢Í¬ãêã®C»ã²3%4$Æ<¬¶·¤{¸ ¯.ÏlI*Ú- –‰vÃ’\`YpJ@,  &e«íµ™/™¿Töá´[ÿ±»ÈJøÞBÓám(æ™ìl™ÎcòëD÷Øž­ÑÍL¼#yÀ¶$,»mûû¬ {Ô$ú|¨%¨´Ðó¤Œã,fYæÛDÚMM9Ã$KS!ØMW¹œB/2ëÿi7{ÍL#n‹á0MZ,F³Cýh[‹CÍÉ[‹‡6‹ùb~°u±4š¯Ó¶kÑ&m£MÚ®FOz郒‡ÚõK³b~l±úO ¯ìf fž8jøY.MñþŸî¾oö%ûÛ”)ç¼\‡[ÆRpÏõ)§ GIJ%Dâ2ª¸ïÊ ŽiÂA+ißê)ʬýÈIï6¿½UïNÍÿØ»U‹û/KýçL­RýÇç$üýÓÛ$îd´'Šiã>õÚècO<Ϋkqú'êÓJ(‚èŽËFá÷Çu[—»ÄF9N|·¾•¿*—{hmÏ|¸J럶±þÜpØ|¤½TSÞs×`_G9ðLİ›Ýe²´nJ}(jWôÅM×kôYºQºZÊÔcÈm­¨ÓCÂóžVkYgà-ÝV‘.–i§Z-Bœs‰~Ù;õ#Ìež‘ˆåUµ'…+ÇK@ÿS UÚ*5YÚÐfd.¶ÍF_ãåd˜vP„ïž:»”„T„NÈcýß„0É¢0a‹™N/©L×#vÿÔN’ÈÝ=û§ÄÁ$‘Ÿºn3GÔÏÛ¯íŸ"¾/*+û2D3.ZvO“ëÉ ?`öNMå£~C91º:” Áø“›5íþ©ÌÄû§ìþ©CcÂîŸ:ÜohûÊ.>³¸ÊýS:Z8y\N¨/…aâE"ò e1”L$aNäG¡àR¸®ëØýSÛpœ`ÂqA= ®ã8RÈG¸ž[‰ìö…äzDÙ@UD—׌w[¨é•7#æýQ¶SFÙwë-8pý¨Vò® ç'‡æYä_Œqà:ïùòlþáT±ÍñÏX¼D Ù%®?_ÖÑ)ƒèÔvŠŸÏ”¬t fŸçtI@ðQzׄ SrÚ´¼X‚Ù>o@»?ê|‘Èðöó,z©‚-%N›†ÅBR‡¹¡Gˆ"W¡ï&Ü¥#þûÇ·emU?Æ<ºëý'#ëåá4\üvÖDöVÛÿ{´L×rÒûQ¥Fë¹g†ÄÚИõÞèK¸¤ÎîîìÂ?E²Àñ¨S "¹ãOT7áë_\Çi !ëU]3ÄžPÏ}ÿó‡ÞgÚÓ~’óñ}¡ä©û~¿®€.ðê—™·äTõo-óçí÷zðún`Z7¶wçbJ.§Úww›éFЃ–ý4¸6hk ºå<;ê®}sÜít;én1»+«µ«ÛLï¡¶Î\O]ûË÷Àd™Å…ô¥¼Üž&Üõ˜ã0â„¡‰D@<$$‰'R®F‰Ïlõ{»caOõû™¯#xÖyR-~â:¾WkG1? §ÛŽ»WáåsáNÇœåi bÐnÇ•¢§rÃ)†Àääb˜n‌n ÉyÇ0€Œ€ È™ÈP€‚’ ÓÏŒ|R[’²nMÓTN[†”üe˜†iìýoÍ0 Ï%µFÝs³a*ÉÎÐìs(éÏÏØ/¦$DÃ@²|@ßxΕ†j<ß’``%{ Ã;`¶|jHXI¬† kPHj Šªs®!Pò5ÊÇž«NÇEY^6ËËvnë×QÌ-yÙSUAІÙMxžÝž%wÛeîí²×sŠÑ‚¾»ÍŽô^ÝÑ&éîtû*?œÚ=¬»%õ׸‡µSnwƯ]S– aÚWµÍÖR¨Y 5K¡¶ßÄR¨½F µstLŸqá²ÀwCÏ‹(Nˆ"2L"D™HÆ™ÛJc ÔN±7ž ¢!fÄÓŽY!Psç/ÒGÚbj•hÛí¬­U¢µJ´‡âZ«D«¬­íxܶãñ Ö¯£rj•hÁu[«Dk•h­­U¢Ýd)V‰¹¶ ºU¢½ÔJ¾m£´m”¶r¿‰m£|m”‹ÅÉ É ]"iDy,ÄaqÀ"R0峘øúâzÔvQ>ßR%;]”‚Wº‚š]”Œ¸"õ.JΩhtQêŸÜÖ.J=¤Z›(µÍk_[ÊÕBŸnù墖ã8q»RQÚʶk°”g+ÚÙJÛAy9e¸ ª©ÙÊ‹¯ÿØÊg(l%Znà YŸ+ F<‡DœIò$ñ…$¡Š"Ȉ9IB#Æ­Ú@Ço§×òX‚G|ZgíäœÄçUµý G¥w ±dZwÍZ—šÞ9]¥d­Ò€MÑ®"E³Y—ͺlÖuÀÖf]‡06ëjqÙW¦4p(·9Î@¤|&’:’ÐÄ 0 ÕUÿ$’ ñ©ë)˜Î€MovE öl%;,J@¸Ç}ÕÓêñ@ÐjzC=A–­dMI‚F†ƒ$¸æ$ç… ¸6ű)NÇçÄÔ¸—Ms;BŸ¦LŒ0˜J†d¹n&9¯±ÖÒÁK€.—öŒÌ®W˵úJÒ¦"$[ÅãZJ„/9cqàJÊ\ŸŠØ2â,Ôu¹”úŸÄ¥Í«ÑûôÝ?ÏK®QòR²"dW#gNƒ1ð=HU{ú(¥¢RY‚¶ôét­ }ôt)—#µºÞ…!©míƒgAÛëŠÇÐ|fûÎ_*«ÑIçýX}VèE›VÀÙ ‡ÉÃ~<ÆÄýx”ÙôŒÅèdêpm‹)“GþhÜoß¡1Ÿ>â/¯Ãƒ›v Y!Vl±B㊘™Ÿ;Œ‰åh–þ+MpPˆq™P˜µ¾é|'È|’íì™'£ô7ÜíÌÇ­¿:€ Ýy¼¡û9ãò‰aO%ù€{Õ3pÄ݈ԯö}ôË!Þ7ƒMë÷!_Š[Œ© ómró¶'gqïíþIGf#5Y)4Ç_ùëOðBÚqCQíÝîæGç³çÈ-Šó9sk¨Ââ.ëÎ[Üù ¸Ü—t¶WÔID¼ÐQ*Ö©³T¡/=/¢Âc‘›¸.‡5G#­u¬WëX‰x$¨æ:Â~•/×Ñ?AtNö{ëS/À§zé'¹ÔlÐ-ØâþNåxoV&žÄ¥ B¯ è8ÞKï"îÄ»vI}ħj™ý*"&ð‚áÓ¦GuCAGž$MxâHÇu™p ¥œúNb¦×0‘`'`ªwt6&פ0QÊhµ+Ô§\PçxÀdÖ?÷{{äºç«—î×Ñx¢:­‰ž.drƒŽM¡6d²!Ó+ ™lôsâèGO\çˆ~\¡½\¤ó|×!¾Ÿ(7Ž3Þ4‡$¡rƒ ôcêKÛèçuG?ØuWcÜZô㹜Ԣýƒ´téQ~ ú)÷Wýt+5C“ãÑ Û‰f@qB<ü2Ôßã9=ðÅLÑzP†£ô©›Ÿ6WSx:9Õ™ŠâÜQ1•Êu} 'Ñi†t•§WEN²Žnçꋞ«IU»º1W»ŽÎTë­ºëÖ¶/êÜ×ñZ¦êb÷bí{hÌÙøŒ_ñ´}º„•Sá-aÍÂK¤­_[×›M=mµþ2‚¡— ƒ„ '‘%LÆ4‰‰Jˆï)ÿÈDùÂSÒ÷¡ü6 ºÚ0Hx|'eþÁ0ˆøÌ3Sµ`ï:”×]Ê9ŒÅa¿÷þJ# 9”齺˜Hxì9š[OméþŠâ'Kp,¬9ÃîõWõ³Û~Á&EÊ“ &Â#Òó”Ï xPE„réQÊ„ù6&zÝ1çÁNLänbp™kJö•ˆN@ª¥!Æ{¸k_‚ídÐ3Ãl8Ÿ]V''ÞníÿäqQ>$l…è*"œîQÊ# èE¾¾8ãà^Î3Å®{Aà“ çħÜ!I,dLI¬½‰ ƒ$÷|KœÒˆ2ã3ÅÃ0q¸Ë<Ÿ8J§öœ†¡¤±«Øñ¬ÛýúÜ®0Íðeív0OÓíò†Û Zöy6VAöy^»r!~—8ÖïZ¿{5~w8›OUÿA…ýÅýcú™Ð‰0Èå¾ÿñ§ïzÿQaïgsKÃ¥\Ü›É æE÷£?•Ú™Î'Æ£ÕL;ÇTû†õdÒϦüÑÔ¼“Ìa›ùë›ô~= gr4YåŽöo¿|ü°ýëž~àÚK Õ1ûö~9Z¥#9ëý¬wtŸ{Ëû…úKöÒŒ;™{|xxlÎrÔ)2Ï¡œÔœ"ŽïŠƒNQÇ©“âFõaÛ"©óß?î3òƒÆðÕ3:ï›±‡æ?¸ u‡÷ÿúá&€ BÓyzõ|Ÿ×38?=:末ÚçƒöO,Ïáø¦óßF“‰ì?®'ËõLØzìµLÿ»¿µ ¤šN3‘ô)ÐÙˆuªgh˪_Z?ç1_‡×Gÿ韥} Ô™:‰ôJ£N¦ã>Ñ· »^ùYÞúÑd¤rý €PzÉ" ÄĆVh 9™Ðž-ç@!¼Ls"36D×~; ׫\0,2c3*ràzÀ ~¥ØEy@ÔÐP •¹Û²ÜB8aÁaÝ­€‡ÞÚ¾yÿöí= ÌiåS!XÇ㌥•‚'#¸[ŒÃu‚™ñƒ2OAÆvªº‰ÂÝ„0Ÿ“Ø_ çá¯*J1§Huð+cû"N"Q9ÿíW3âÚ-g« ðÍV‹%s¡ƒÕ9Â/föÙL‰EK5 tŒlmßüüã{Bï ßê"&ÀSèèi>ù œ[Áºž«üE]Ç*£?ü8š*ÆoÞÞÞ~û×î`{aªÀl¢¿½½ƒ¹Z|oÜðäù% ¦QÚ߆z@ÀI4P§   ‚>A&ì.C€5WûQi”§j7«è^MåêfSÑ1o)ÿ­.Ôk*íÔÖ Ö†l½¹®—%qËwˈ‰¯\&"d4vbGnÌœˆŠ0ò¤“ðWEn mñˈÜá2"a¼JèÕ(#rîx Q$î»AµŒÈÜ ­¥¥X[;X»V¡XT)q>‰Ã9º}å¤ÅD¿ëBš-&Úbâe1¬çQ»í¦ôZ-8b`ÍÊ#»-A¢±›Z¤•´}žþòmU+i»-/"•:#U)8b hõÜf9õú·uE¤^o¥ÀxÉÞJ±¨¬="°Û$æ”Z$Ú,JbÐÕê$—â´u÷Ô+1ÐzáƒlT01ÐF)íüBÏ$3]”;²î‰‚äP¤^ Åë%Q º¬b0ÛÂg'PY-…c+ESŒX÷¶zzRQðj=«”<»¡*ÖNøj¡|€M½§`¾Sxíï‚<“äú¦8‹ÁUZ $+×^¯¼-àž¢€‹ØóصzË©#CŸËÀ÷|7s—a1Ј’ŽÁåmõöÌÕ[ê‹&P^aFlVo©ÔÉ'®WW´g­”ÆfCâÁ2$r7âÖm‡óùªÛÖÃÓ6‚²zYÕÖnmíö•Ôná%[x¥W ÅÕe;”c;TaÑÅWhA]¸|M ¶§ó@AÕöt¶ÖUqU|µSùY5ÅKñ5Rti_ÅBñõOLÙZí„9áµMxI[ÉìTÀDÔ-1•ÇNUJ\yU•#q5HT°sű{©QcìVZDW‘…DxýQ6„W ¡EBhmЖ_cI¡šÖ±$“ "“¾J¸ô’Põý$p=?$t9ŒÍ–Ï]Äí gL0·Î–˜ë{¤RdÌn‹È«‘9k+o½âš`‡máÍZ]‹¨™ï‹ß5!  ›ÎSúÚ_·xƒüÝóS›é:¬@¬#zú˜ï’Tè»§ ƒ–IB6»¯G( ÜüaA¶ µœôo?~è¦)µl±^/´#PúÀ«q:_ô³I]ï Еí+”bÈb^Â]$Cõ˜.eôdy;²‰…^°Zª$‰ˆžW=J/RqäñØw#_º‰ˆæ ©8ŒßÌÌrÚNÿ{—ßYïã(ZÎWó$í½•:°Qi/+ýB]m z3xûí__zÇ¥ÒžÖ¼¨Þ<)Â{÷#í·'ÔóÞJ_Ê7±v‘Kæ«^z¯FËžùÛ‡ì Úͦ÷£ÙÐ¥Uï?#=ý>¬zßÏgiïgý²µïݾ¥^¤ýl¨6djë™昫­ñÔŸÒµž;õC©ÌI¿ü¦–áë“2›½½~c?XoŽùj®ß7sk|¢Ôó]×=LlÆ€²†{à×䨹ãÀ¶^l/Vgç´oFóÕîºx;ŸéÜ[¨Ëb9ÅØu»}ë9Èʧ#Yùö‚vWëMQ½gX­{KK¶³ö~OV(sïª_~©”ûxl§a{BdËÐãqèGIâÇ,‰¤ŸÇp¢FÊኇžpldðE™“¨E$7öpǧN=2 f/_%20\åÇ#ƒŒÛmŸ«»NZ7DT0–÷hmÛ“Å"°1ÁKů§ó¡ Ö¥ðfÙ8¤k#pç0$ ‘` Q*¤œéŨE~ìPåˆÄK”`N˜Ø0äë C\§.@K}Çg„ C(åMýY¯J¼î{Nïºé.Þç\¯²±„ÿœYœœNÕ’8ØîÐC{†4Žºbwv¥qõ‹Ú“ʘŸž#•«¤ÇƒúH-&ù3Í7µ˜Ê‡q[WÕXŠ*Ó¸ÊD¶5õä)•ùÙ¼9ýÙ§­bj¿}Y,¶'ÿesrêÄîÙv{Y‘<9ë&x‘ ˜Çbß“(Òÿõ\élGqèË€ˆˆ$Ôá̆ 6LØ„ žïÖÂá¢&¸Ô´Š·¸; <-!£dËÿ*²"MþÇ(=¬rŒÑZÔƒtã©9j[ %Q„‰“ø±ÇT8ŽžduâQWGh.“R…aÈ`9Y¡âZ™o®ñöf¡³kÛqÏ{ÿM íý]ïcôVÎfùÔEúÿòëýÚ¼§“Õ¢ü Ç£t`fuŒpaZh+ûc|—¸;8Ýy®¨Ë&2ÂüjVäЖ†Û¬­¦9 ûùHê›1tmý5û„JïËKi©F­£ñzŒÍ*°úèž!=rI@º¥GÍ—º9çà|ñ9Òö§Þs¬œvÂj _›–0ÄÁát@º»¸H»8)=*F(M¡CI_$úœ("q¤b]†\YwRǹ»ãâxpÄÅ™¹°æâ¸Swq-ªÀÅž’£Nîê6—<ÑÍEr)/ÉÉyÛJ­“³NÜYR»û6aHhI!'ž2'H¨çÅ®ËDúÂsˆCA¾-/ôb©ômgþÈTºÇ¦L¥gŒå꽕úòbÕJÉÞаyV9OÂêð¹îešŸ0ëx˜Ì‡CkOο1u±i®à~þ`Je_Ì_ª¬Uáa”ÞgÕ3ýîkýcï EÝm¬¾„s¹Œ¿1àé\Ÿ#‡ëøý‘bÚÕz\‡4=®WË —ŒÔ].ÕI¨_ã\ „·¸]Ó)yÀe\e³äwÙUÑ¢u¨.Ç»,èè]MÛØ¬LÍT”ÎA¬E 9½‹ÆwUL ¢³}ºóÖC\O/ŸKû@ åâ!Ʋê™m4ÃyÍç.DÅß©…a”šE£ƒŽ™!³~…åjdy¼÷ï¶/JMÛjö«!‘…-`^z¿-éÒq #rëÂ|Šœ¬NÏgŠ%¯<[$œ}QO`6ÅÜò~Y?ûñŽ€†_õîö—w?~úá§¡xã|b'ØKÃQ+Ötb0_˜fñróŠô#-—sçUSŸ=DvGìo–ëY¿È#1%p‡ŒoÇî™,e`~:Χ…›<ÇÐÈíÁÆ5AŽfÚ&®Dë- zκýöÎõ·$9àßýW x“ÜïG.°ÙÍîn}笼Éå“ÐO’Éaø°×þëS3¤d-qzøÉí/²¨î©áLwÿªª««æ°`}jn82ˉÜ?µ„öpáûÖ»²ÎïÛý«ÕW¾‚w_ê‘í:íÕ¥˜6öX=Ë«»ÒËSiáM=fî©çß¿ÀyöueЂ"%HÄÄ8Á½5‚aV¡`4Fw¡´Ù1ð²¼TæÓw›…R¼^ …0½6„ªÛ[ÎÏx³¹½k kûË0d ÿÙ9»_avdç@Çœ§Éó‘= Ù£ðtÓìQÈ…ìQÈ…îxZ_Øß¡ ÑÁF˜û¨Õ©(µÊX‡ÂNFž Ù¡ÐäP`ˆ1ZOÀИÔâû$— ¹!Ë3;»MäìO˜î}\‡ëGBГLèw<ºO_‚ó’Âß*7¥}ß¹c5©HÂ]?éøí0ªJk£ª¦gÒµ?§~ã•]ŠŠ»¢Ä>N¬s…~fbž Mx‘8!`™áQs¹Qx5ZZ«ð8üôSL”¬G¤—€6‘E­cÒ«9ò¼cÒŸ¿7\0µg2Š3{ÃWÃåì>ñoÎ{^kö—>kâifÒÝ@ݽة¥1Fql<×(H£4BÖJ"XD´s‚¦e}ÎjÛËRÛúZmÛqªkŠêÙŸËäϛٟ¦¬!9ÈÖ™†ÒÌç.¦¬QtøÑø?Ê,rÏøÌàËбþq¢–õ³l¥CoKQŒüè4û»-v,OSMü[RzÎå®’ZII¼$rJ¢Æ(Zk,ÕÎ8I”$@®2_uÖ{¾E½§]þ,±ªß⨾ÃÂ1G­ÝUÛªÏ7à¬êX΄rç,k?/IûiQóó^ j_&ô2uEÏPô‹’Õâ;Ö´­ýÔ®}júW»~•"–Úå[ÒÈÎsˆ†Që'È K¢”QH/±'9g‰qNxoLà*ëcß >Ö2e#o…¼0ÄjI™`-³6nkcùÍF¯óø¢xÖÆ^–6ö<}Q'ÛÙˬç¤.=™ló,ûv{pdÂZo¢Rа@iTΆÈ#»À Ïɤ;µC&ÝδÙ2™ôÖöØ×i6Ÿ×Ù¡96»µ[†ÅáJαù¼Ô™É¶Ê r1¶ ),rC<"–cçˆ+kuˆÌG-B”(-‹tö¼,âRÅ·‰ËøÓÉ1åx«~ ¤Í˜@0j“RÍŽg Ýö¾€~QÌ÷«L~ÊÝÁö£ícA”©žßG"ŠS»n Z|¶Ðâý·dè96UöõØÞ6›+÷A¸{tÙˆöÝ»s=è÷ÛÝt¹dŒÅÒqɬ‘"‚²•¥V ʽPÖÙÿwˆH岚õ ªYmKˆpLêjQСvdKñ2·YË ˜sÉÌe\1­ùYU¬œËì%å2ûúT^Nvöh/:®éü*øv^²3„Tmg*kÓu+eY‹®÷¹Ë^¸y²gÈÚF’³6½6ó—íÙm¯Ù¹ÎÖBæçEÖõrF´œ­±SΈVóV”FÝÕÊ€¸ªTÑÇœ“¢ü‘æ´ ©kyMðz“Í’æ£LØ4‘ÄqaH´Ñ1Æ=V̸È|ˆ^kæPšÛâwø>Ã軕–o°H'ýž[ ƒ…ëïMÚ•¥ºz ÉŽ‹/WŸ/§ÓbV]Û,Eí¢¥Ca%~)â†ðW_µ[Ná•…ûû¸~õªÔ9{¦7*Š»žYôÖ¯:LjN‚7Ù~…Õ×5=cF•µyÿp Á¸AoõÉõI7¸Ó?A%"¬xA9Rµ¬èuÿETÔ&k¸†ØpOh¥õFøØcÞ‰ÕóÕ|¸zÐWe²ˆU³çç¦ø_só>ÅGaŒðÖ^Šæ§v”=!¾gr™rV~2ó¹Z[ÛÛî¸GVúìÝ0½þíÝÛÿjÒs¾zHܵLÃeqûÿ¥XÉÖ4ÚÉiÖôƒ^SŽ”KëÂåÇ…-ŒÅžÓãá&™+±\[Ã+ÙnA?®¬ïO×¥ &­pÕgì9x—N¸Ñx ƒÛ gi]f ¹ÜÂÒ }°¤ÏiÝ@gÁé÷µbúíj1H•QÝPCËñÝ­” %(ªÍMK-ô“¦›^?Å9 Ë‘¹žŽ:®—&'ì=L)Õ ¸¤„cl”f*På­žF/¥“Sà ÍJiVJ¿(¥Dm¥æ¥—Ÿ|‰MB5—‰y“u«¬î› ɯwÂÚ(Y/&çì¸(ü(\-‡zðµ~PöHˤe,pË8H§±å/X{«D0ÂyÇ£R™¤Õömõ…ª–åc*Wµ½˜aê¢ú~0œ?zpÅV°É¼Zæ½I¹ñî{‹¢ç‡óéÈ|ê­E'•ŒÑ¿Â ì}9UqÕ{kÊõº÷c±ìÍØÌ«V ûƒEy¹›ÁpR.çßÏÆEÙü?Gŧޯ&.aD†ÞëùbVLîäwU¯÷0ÔçëUü‡¢˜ùáÄ,ª^-¤÷[:³u%â&¸ål¸øÔû{Œ° ”­Þ…Ŭ÷/f<ýó?SNþ|WxÊw+?nYö¯DÜ,ÂG3óÐñ—0‚ëÿs3ÌVw20à»MÊ•Zü>›÷~YNîFåÒs‚…~5†«5~ç’Ε`H×–tδ’âÉ%½L\‹ëŽL±Ôe êÃªŽ©’´i]_;¦ÛU5_®Ê™²‡‡á×ÕŠ~/¶¦¯¯0ü£èÍßÂâc1+#vÞüO°oT’”Õ±ùÏ÷®u,êúYn<È#¸çíçs(ßú(¼^ÝÖ¿.M>ƒ‡±ðµ¯àéÅôŽ‚•àvR_¦3à´&ù8>ÿpAŽGë¥qÌ”Z2A$hFÕB!a€é £Œ‰‰…NžäøÍÇàœåk1™æ/‡æŒQ)dæ\c!7Ï`¡4n l¬Ó|þ!Ó¼›4˜‰}Ck4ŸH¤ùüC¦ùn ™æÉ4]’æœl±È̽ò&8†…õ1pF¨1–y°ƒ";Œæ¿šÅ‡¡™œšæk1™æ¦¹jCs¬Û: ª¦DhæJNƒÖY>Ê,ïËÑšåa´o©™ËG©,e–7HÈ,Of¹7d9u”!æ…µ"p­¼ÂÞ¶9áÎE„ËÚ ÒÅ´² O²üG39ƒa¾’’IÞi’‹v$šéíJ#m:ÙTµ"¹7™äÝ"ù½UNàm…äÞ$’Ü›LòÝ2É“I>^ä’x'¢µ§•Šc¹w é”( @'‡‘ü—áÄŸ|³¼’9ÞiŽËVþuA%­»×åoz×%“M%Ãê 3Æ»‰qÌÐq0>&b|0Ìß-!c<ãqvAŒ#C#¦ˆ0 šZ4›Çxå5—Âðò@Ó‡aü§Y˜¸“ä+)ä/äTW¹ok$gHq¶é[Ç#ªZ…½ÅYfy7Y.gò,³D–ÇYfùn ™åéáëfî?Ë 6G-£GØ[Ä8ä!¢-1$VX'VšCÃ×MßT¿NÁ¾“iÞiš· {£eH½Ä—á›çå1°€·s°/F™æÝ¤9ò(4_ŒRƒØ©qiži¾_{qIË\ ‘àF"69uN g¨qÑã ÒS#xZµ‚§ƒØ‹±Üþ’’YþrXΕäx+‚½,U`ç4-õÍÃ|Ë ï&È1%œäó"5~½È ß-!ƒ<ä—4ˉ¦.*‘Ó‚”ÙÁ¸2ÎË•<"KÃJóv3*`]:Cûƒ Œó—ƒsŠ1EužkM‘Ú,"ˆ‘Ô(1—ÝüË@ï&Ð9§ä8ÒR-óy¶Ì$d '½I ãHEÐpÎddeö (׈Z¢° й´¤\Oýg°˜Ýx~/'ã¼Ó8oµoN¤ÔÛébâŒÔyÎ8j×Ï<ï(Ï)BƒçýTž÷3Ï$dž'ó|<¼]L.ˆô€¢Á+O#WRŽb‚jMô{L¸tB÷Ö³“ûÚ+!æ†y«óåló-–KJhÍÕ®Õ­RÅT.ü›0ÇX¨£´Wo9‘çUÛŒôÝ2Ò“‘nâ%Ï™k‚dpRñ <ÂG ?,º+i"¼cä›çßÇÙðΘIrŽì}™þ (s½Ó\ouÚ\(½U;k¬Åf0AŠ·ó¸›˜¡ÞQ¨ MŽu‰nbÆùn çÉ8—g;(²ÝZ±D3-Uéd§D*‹2"*PV8{àúô,ycÖb2Ê_Ê9â“m]"T‹lW\€ÞÙ†æažiÞMšKªèQ"ÛKâ$Ñ<Ž€r›jšÛlš7HÈ(Om¿d~vࢤiA#Øä cËI;B,æL +ƒ†ò¿ÌÎàf¯„dŒwã­‚Ú§ºž=†hÅÀߨk —içaïçäì]Å8‡·y”ˆöÔäìýœœ½ABÆx2Æ?nÝ%#Ú1cÔGŒ U"J¢¬¦–Qê‘3ÑP&tž[q`Õ´Šaz½×7Ãñt4ŒÃà¿ëýþþ'uj¼¯%gÀwðµ:„.Ý*¿‚ç„׊œÃ¯²©^MÅŒùnb^`¥ù10_½åDÒWm3ìwKȰO†½»¤û]K-°‹Æbb½¦†Å×N£F3B…<Ôfÿás8}÷JHFz—‘ÞÎõûWÑ)’DÖ¸3„k…t—½ïå9×l3{ïþæ… ‰WäÐôí?˜±-üÂâe¢wšè­‚Ü)猈­ckŒy^«”*9Q­ˆ~7ÎDï&Ñ §˜ƒèwãD¢ß3ÑwKÈDOÏã~ÉR©Ú[,³^¤—>p+°ž(d„ x¬¸<0Ìý&Ìì9²¸¯Ädšwšæ­r¸ IÄV|GªV*•p¡Q«ø¸y®”ÚQ”cøwã|žZ)už+¥6HÈ(OÏ'sÉ î’ì8BÄ訨ÔÞE+æ‰1ÁÍ%RfpŸ…pwòôí¥ŒñNc¼å–9eÛQp 3‰ù¦Q®‘`¼Uf¸s·w”ä`3gË<¤æn9w{ƒ„Lòt7û%¬ !8ÕR)â¬6K ¦¹%>e¬ñ`e$Œæþs€…þµXÖr2Ï;ÍóVNvŒÁuž $ßĹ€6íJ¥Þåsk¥9¦% ý.õÜÚ]>·Ö !Ó<•æDyÄ:Xæ56Þrg±4Úzâ}”ŽÚ˜ÖžÒPþ=l9›‡5BJèôn>_Æ© ¿§ò¼gáÕµÆ_®5¯®Õ{ýÃÛ›ïO¦ÁÿSïïœÞMµn¼šq|{@Aä û`ÿr^–—‰ïMƒ7ý¢?„™Ãb8qÃ)Lƒ?•úÁ Œ¦¯àºÂóž›X§{!ÆP.›¡WLà]ƒº̬B|ù†—“jÝÌ D§ÚFÐô…­À;F‰F²v0ޱj§¾U}V!:©Bp"„Úóìû>h>\!Xcð¿WPþÇÇXÍž$-mIÚñ§ùÿ}q[ü|)^~«ô \¹Ñ><ä:fæ 4é6«ÛÝÝÆÁÒÙФÄJÉËFq…¿¦·0mZB««¾Oh”ò ª‹…Å"ü±Hh9›iB³9hjÃÆ'SÝ¢…™ 3>E6˜áÚ}†qœ"ÙÍ>M¾3¿šž¯Êõ?¹ñØ žûFãÛ10&á¦G>éù–›ä¿±ÃÉ›ù`/%9ëù¬©ÿV޵f쇳ú÷7aáÞÜëäå·Ú®¬×"Pî'ñÚ¯Ûß‚9Zúp]~º£s¹ü@§5ñ®…­<Áƒ‹û×0`ê].àœ-/™ÍšKÁ WŠB£ÁÒ GÁ j›FiÍÈÈß–°&žÞ¹“͇N›­Â‚(#TnÛ¡L†kGp©¢íl‡Ù2›5”ÔG ò-=³eö@î–ð\5“ Ð|xÑdœQF¥ÚCCˆq‹Vb¦y`‚†P<0¦ 𡺓'Á¼”‰Þi¢·ÛQ¤TËúŽ" KÅ7+B3…ZÆ sJŽòK¢é1x>LM©1Ì)5$dž'ó||IžKç¸aÊ F­ÆÂä„w~J¸J#E”u‡ñü­ìžšå•Ìñ—Ãq%ÔV`‘‚Ôßiu`gœ1ÞUŒ ŽŽæ;NÅø8c¼ABÆx2Ƨ—<°ãaeôØ%œBšL¼ôX2Š´d\Q\àÃ0þ®¡0ÅJJùË9¥ P^w±#ɤ¬%®Æœ3ÔÊÅ>ÍGv:ÊrN¨ÒÇ`ù4õÈÎ4ÙiYžÎòÅ%ã|½wsg Êl³„D­(ö*X‹÷„ˆ]ìïŠÙbÙ_†y8=Ïï%e¦wšé­¶ÍÁò&x›éXi\Ë…$nYzºÈLï&Ó©dè(§¦‹T¦/2ÓwKÈLO¯AqÉc¸ÊsL‚ÞF¹·(z&Üâ‘BÜc¨9´Ú<ŽÑ9r]Vb2Í;MóVI5ˆ–l;°âXæZ·¬íò1ÜŽÒœi¦ŽçRáº| ·AB¦yzÜ%-tÁËŠÏšFb£µÑDÎõÿ³wnÍmY~÷¯àÓ&©J};}©TmãìLyÆÙL=»Ù'W_%Z)¤cç×o¤$‚’È ’°ÜO‘$ç;çô¹Ã)²Ò2I¸ðZI¯ÜžIpQ!¥})&Ó¼×4oog€ðƒIŒKΓ(˜¢ª] \öÍ{Fst7‰BŠnRàR}óQöÍ·HÈ4O¦ùüê”4÷Xc惱†ðˆmMÚ"Ì] ¼òÖÙöLû÷U|žß ÊDï5Ñ[EÛÇ5€N•â|5ÖÎ0`Ü çó«Œó~áü>ŽÊNp>¿JÄùü*ã|³„Œódœ8e¨¸T*ú䬬æD"á Õ¾9á›L0!5gt?œÿ]ßèÉ6Ïoåd˜÷æíÜsÂ@¬•âB EWÝs‰hË­ó9ØÞSž !X'[çRƒír°}‹„Ìódž›S¶½L}PPµ± ;‰ª>~¬BÒ€±ó"úéVíÇóŸ¾D|Çi"³*+s½×\o·‰^ ‚\O‰“J4;É`&AµâºÉ({ÊuVÙh]pݤ€6yô ™ëÉ\ÿ4:!×­wFWõ»RjÆ•CˆJ¨ÆQxß*‚¤Àí9cêF~V}ÅÃ{ê÷’2Ó{ÍôVw¬YÛJÓFgi!¥’­ŠÐ?2ÑûItBq7…kŸF‰Dÿ4ÊDß,!=}ô)7Ò %0& EgÁs("Äøˆó %h¡ôž ÇÓOúàc#R2ÉŸɉPˆ‰ÉaÑc_!¹H¶ÛC/ózOIN©D² ’—©{èeÞCß"!“<™äοw§lÛŽ2ÞÈÀ%AŠ`œ“Ì€å†äŒc”§rO˜/”Ôàû¨/ÊÁw?Ï¿«Õs…Öi|÷vä¿ûáð3%«[8¼^~/æOÕⳕ˖÷×­ïuvÏéG š–±Fö¼Ð.y¾~¡³±Ð/cá6€N†RºÔ@~½²½°YB¶’í…ñ) âªA”„YcÁ"ÂcÜá÷ÈsMòPµ¥ó‚ìg,¼Í.çú9ô÷’2Ö{õVywœKÚL¢Ç Zͺ#ˆÑvýdǹ&®gL¿K¢®K'€qjMÜ8×Äm‘ž ôËSzÿ S,&Ò)Á ¤´Úc¬ŽŸ¡MgÆ%Úè#º8Ïïeœ÷ç¢UWYÅ õÁm‘†ŸÎ€ ÙªgÍeöÒ{JtQuAôËÔÁm—ÙEß"!=™èW“Xì‘ð3mÀNš€ˆ…v  à­ñ6PØèÿГIüMÍó¥˜Ló^Ó¼]xÎÖkâ²Qyß®"îj’QÞO”+¬:‰·_MI~5É$ß,!“<™äþ”¾9±6ºÞU†2N()³H¹hÇ¿º ÞÓ= ÜÒåÇùÁ“æR2Ç{Íñv^¹ ´š´ÚðʅĤ1ë…‰Ê1oƒrŸ½òž¢¼RÕ+÷Ù+ß"!³<™å³â”qvÂÀ£J>à€<0m óÚº ­—HkFОçïæQÓ~pÛRL¦y¯iÞ²ü Z+Cd¥’¶bù¬È,ï'Ë ´¿|V$²|Vd–o–YžÌòpÊÆsÂçÑW„cÊ ¶‚8Ë AZ†@;k˜´ïܶ꾿c¾“YÞk–·Ü/)×s¬øjý¦¬:¦ÊCî9×S”«¨‰º yHm9r˹-2ÉÓI~ÊÖ4QÆr…´ UÃX 2:éŽE×Ç(‰­rÌ ´gíÛ_G“ɼò¥˜LòçCr@I³Ñœ¤€åjŸ9©h´9[¡<7¥é)Ê+½Ã;ayjSš›Òl‘YžÞ”æã)ëØ1‡ˆ·J!,m DK†ˆ!Ié5x£uvÏÝò—cs”´[9™æ½¦y»Æ4X‚j–›sI$[ṳÍË™æý¤9%p4/?¦6¦ù˜i¾YB¦yzûô”-æˆ1‚`-)×Ê)J3…$H¹tŠ8GŒÒtÏýòL x–/¤d’÷šä­rØ+Ä×À ‰9id±Çõ*Ûµ‹½šf–÷‹å·}c„d¤ÏüjššÇ>Í,ß,!³<™åÅ)Yn„Aa²œ0C( {U¿9d°3QãýXþ¯éõQ<ó[9™ç½æy+ÏœQ@°6ÏE‰ÆÔUŒ V;æE†yÏ`~×0†bÒÉÔÕ"æE†ù æéSÚ.NY”f”FÑ7·À5Ì!XîqðÇö\ì;¥m>>NØ;Aç½Æy«¶®Š0¦šCÔ%(ºZ˜Fã?I+œ›‹ŒóžâœÜIÿ7s‘:œí"ã|³„ŒódœONÙ-FxB·–z$ Õ>‚Ý[å7ȃuFh¢‰Ðv?œÿ÷—IÄêÁg¹,Åd”÷åí"튭m™c5?kÆÙ9jÕøm’»Åô åwíÙ1†NJÌ'©íb&¹]Ì åÉ(¹¢\ Í}0Tr§YtÁ½ H9¦# i,¨·Ò½gã·×Q'Mü1*Óî%e ÷è­RÚEÕ$¦tB€0²Ú›*E[åÀ\z¿€~ç›C5B· \"ÐG.}³„ ôT ?FóøR>—]Sç¬WNï˜Á³@@A1%Üa. å/#¼æEé—ø¨€3xû%²å:•à·L.:¼¾ÖõýµÊúZƒï_ýòö‡ˆ&=…÷üa3x[+å4Ì"Ûî00ˆrF“HþŶ¨[&np㾘^Œâk×ÄhbG7ñøse\úñÍ‹ømàr` •ôÀ‡à+éÓI|ÐÑ\ñº¨ñ^=Þù¤VšÙxèµñ­2è9eRŠæV=‘Œ1¢VkââG@¶Æ÷ã›|þ$ô²én:¬ã}Û¸ªÐ“ ‰´:®„KO†®zg·°h>ùct³å˜àæ7¾<*5û‚¶áå)Û¡E¶YǼ«™ (HŒSi ÿ§Ê]Éý|ÕWÅ4¾ó‡÷ToådÒô™4­ÜTþ ‡ Á7&ƒ‚nÕí2·Cë«›Jî$½û2µÚen‡¶EBvS“Y®OÉr,åˆæy‹ 5ØiI°¬Ê쎚ÖúàÉž[È/ mFöàe×µ”ì2öä­rÁ0Ã|mx€B°p!T»B-IÞW’ËjÐk$ש$×™ä[$d’§'ƒOHrŽŒ0ž;éÖâ‚hÂYHª%8)@»=s»žÏìÁ›¡ÕB2Ç{ÍñvcÔ’|m(Qœ® EŒ·kŸ2g’÷“ä\(þ0N¼K.Ø85lœI¾YB&y2ÉÝ£»ÇÇ"y`ÂbŸ¦Rá£ö„àÍâˆ%L dÏ\°…†:4ÊR2Ë{ÍòV>9£¨ÎøjÌ%BŠF‹r`Úåu;ŸYÞO– $Y'i`Î'²Üµ¤jfyfù“,÷³Sî•3â´äà‚"©w,’ÜWýƒ¡À7h?–ÿW9›£}Ê­œÌóçÃs ±f•`ˆ®ÆØ)Ãíhîg™æý¤9–´›*-?K:Ë4ß,!Ó|;͵}4ºþYò÷œ¥qœÄ7¨Ruõ×äg¸OŽYÍ±Ý •g;J8nˆ î\Ò66,>\Y³;2dt3¯¨)øÏ_ß¾þmðÒÚ¸"â⃜ŽoFå¬LEû…Ÿ…øS âõåòo»*¯ˆùO•´å1+’u-ù…]JW’7ÀþåÄ^G%[D\›*½3òu<ûQŸ]Üò—(þf5xE¯ÿ¸˜ý¸Àóß^w ÊP=-˳òbtežG òÁGœå¹½vï£*,7ÒSÆÇ(é:=y#y-ÕL`±6G[ ¥VKœ B‚mÙ ^¬âóø°†‹E:ŒËólñil.¨y2f.*ÎkMYÿ™Èký9>† =žNÚríë ˆ™ ²ãhÍx/‰ó´Êé‚sÏPñêñ‡;+§gøû¾çÌŒ¶š«§¼|õæ=>C-Μ͊¶ÒluoÂßÞ¼þéÕûj ÀÎçÒÝÏuÌ€[Ž*;ê˜æÌb/Š!†õoý˜uss“X¯¶‡iýE®,CA–*Â@F릚*â?‘Di³W^Oìxîü ÖEµñfd -޲*;s•¿þe‘I°ˆTîö~a‹ÈÝÁÄWvKu+£å „»ßÝÀ"´ñ¢ m,„ôÍM¤cMãr0»Ô³Ár ÆøH¢§MŸžÚ/Áƒyôiï_Êuû3B±|Ì8ÛR×éùÃ½ŠæxĆ̃ÓVìùÝ¢>U¯±WúSŠ¥s9ø/Îÿ~:3çn„¸d»nÏ?xÌǶzVïàIÙ)&Ä–ÛÏÁ¯&8°xž'Œ0 D V™À‰ ŒZb”—iƇÀÒâ/îKü&#»dט ß¼›(Áã$ÌÜ×îá÷Ë‘½lübq#!z†ýÀ:Ì*U1_¸ƒ0ŸØ[«/p½éÈ‘†–‘ÌåZ*<ј N9[Òç–q†¥úë2ÔÐB/Ãwpþj‚wCǨûPùˆntóL¼Ã™+·:ûØæÆyY9ŒcUU]$¢u§“žI±c„åþœ—ïÞý«ÝRÌÑ™´õô5ÛwOwÉí|ö°ìlP”ë‘D¶ª«0qPIbSH)â$·8m˜]Þùé±=FäMEž¶Ç¨”X®åA4j1ã”mÉ›¨ÙmÏü}TŒoçörzíǵ%ó¡\üë/5Ÿì•ýÒ­Ý²Ñ QÕdÔ0HÄŸ™=ić°f0%šÉ4€(Þ–õºœXûØ2.×Ñ0® ¦×Þ*“ñ—ý°Zªõ˜b®½ƒ¥²õ'ìbn-C°c?¿_Œ£‚®WOùsµ®·)õǾÐcöϓʦ (¾"ãùM¢©a§…ŸÏFã2ñø‹Â§^ÚBhséúÇÛ™úÖªàï°[-Æo&š‘ŠøÜwç;‹~¯PZÄb3Ž„âZ¼¤$06~’VNù¾<ç|Ç”T› Ä¢¤«‰7Q´%[¶j­žŠ¦ŒöÕ“vì·.}_Hb]¥‡¿ýòfø¿Å(þ’[äü&j?ŒKøj6½Ö9è@i±Vœÿ4›NÇIÎ|9+çñ–Ê—Ó+öÏQ ?c[!r2¨ÂÜÔTÛ;+0tªBè*rŒ]áI-¨¥Q Žì€ëœ~#€i(ÀÐÃΊU)Òtf"Ê™(‘5<Ã6˜2ÀäŽa w–eA–á°÷7Hû€÷9ú¥BŽÎÜ®í¥è½®¹ò5ö¼¶ÅÚç/×+¾ÿÙDÌ5J¡$[)^ÌBøîÎüð+vûKr†ië/¸prM¬D³:ª%–³’/ÑŒ•މ¦[ÛJÙD3º'šÔÕ:±¤•èI`,ÕO4g¿;¨›¤nì¼--±7sdöæ˜ m<¼l¥ñé"ÿwCné–멾mrøiŽiÂo¶ÅàK.CŠM• 2ã¶Ìh[[‘šÞ-üÍÈ?ÛÐ6¬ulÍÔµùgCé;«ã`äßk‹ùËâÀÏÈ{bCd„6Ò3èowîRø±c Ý Oúä OúäËÕ'7‚é´E”ã ˆ‚è ˆîa ‚è ˆ‚è ˆ‚è^ì‘¥ÐÝ^á4ø¤È’cgìf73Ø$8B¦©°ƒfKWOõ‘5è½£÷¶ÄÝȆ•bžÁ%mhmùâWMa0ݶ};0‹9žå¨žañùFh8‚»*m [ÊwžÇälƯZj炬­øUÇð¤êØ–=Í´Ônü*¤bèâVcÊè¹ú¤¢²««O)*£µd´„ŒVŽI‚1U'ÆÊÃXU˜ 5`ŠôKT| B/Aß%Ⱥ5/ââµ[¼dKPj -N—%ʱT¶‡Š–@©Ê'Mð$éœhy«jâÅL²†I‘.{(–D¡«O’dIЉ!{hhÉ‘¢4âF¬®ˆ–©*bOñ°fø©¤öIz AD«xÑ­õ¡%>вGôÐ:A¾T»Aµö‘ûÈ›„µo—Ú'/³ÿÖrŸm8–á9–å…œqÛÐ=Õ 5n;¾išîZ¦ézªä>Ü ’‡ùÕMÇó²]]¶Œ£zŸ½tÁïÙž陎»6î jß ö½µo8rò{‡#'wã‘r)‘r)‘r?òU‹”;rrP3¿zP35sP3ŸPÍ”¢ŒÑ´\Ü yŒ§9 ’(}˜ª FÁ¦¤]Ò•”6S5ǽ@a©ªë†®Y.ÓlÙÌe<`—ù@¨šÿ+|%a)YuT_#ù ¼ôÇ‹Ëwÿ¾Æê›—u¡(²T”ršK_¡T¦Pd¥""0 þpý?”7Wsùžò{VV7…Ÿ`N ÖNDzõ º%é­­>>¾©8•÷xLXdJ)Û×L§òòÙ+#R]JJ“ºfM¡rîY3:"hõyŸG©Dd‘ºVÈʪÅI$)hP˜™©‡}j'3å¶ðI-YÊM$|” â­RI‚Å¤š„±”ÞwËÄ'Á?“êàcb§’”Z¦’òfy¯þ#`’¦è}ø¤Qx= $`Mò;ú(+ß‹L’¯…Åo¹%¼˜Ñ*Ó6r“.8ÖHy´W(7ú奔åä<Ê‚€Ì«½A<±äqPðØe±#Ñ¥Àf‘xš#Á<+Ä´Šâ‰‡.ŠM:ˆÂ’ô¶— ­£§ÇÙ ñ˜ºzº`­! õÂ_o%ìE†–éßw4ÏÀ-* LDšDó¼BîËXaiÕ(iõVuäÜã„ Ff¾’r³ÉÁ´ªÎ8Jpé׉4¸7_‡8èê=g’qk­j_“ }#ã«w ŠXz§cišÈº«¦&YJCTB¢úUÛò<ŽàëqÝKµcSïnÒ›¯5 ñ𴌑]ZòH(8ØuïÆ#ß@yý~q5ÖP…,'"T—É?ËÔÅ™Wð&l®;hRëØIÄ´‘D̼†CÏ]H†``ãÈ+›f†ï¥I‹ljK(©¾`R/#<[® ǯPkH`­Ï¢ô¦¬Ž`µ„vá÷˜›ÄÛ¥§­\ïÈ^ÍÆE•ïXÔúðÇ>cOhùÒÛ•¡à»~bœ3Y±J쪀íêP“6¤"ˆŠÿhb¬¤ëïŒJÙ =ã¢ØƲ‡dÁü ¥„ÞVž²‹bŠA§ŠTòñsL„Ÿ%eÒ¼)+'–°VØž°# Ò¨…z ö´ŽŠ:ÀX¶ÑeüÞîJiÐr†ÄàšWl–€Ëz¡ý´ª°¨$ 踟ÄÞ ½œ6„xež¥åîÊÚfÂzšÙý¡Bìt¼³+v+ä_ð?_\^ýŒûYVÉý 9ÏÙˆïÅÜ׆ÐF5á ÷¹¸¯D*Å¿ãuÝdç`4é DuÛú·‚‚‹„K³]Uå‡:ç F`$÷ǰ—ø$J÷ÆvPÐdk=ò8Tz(#ÙbDëhGü³NŒžSG[àá«P §³@“ä2ÜDXà Í2ßD1á#Œñ”:ê |’áÁ×íϸœ^,¦S(øÂ¯WÕÐèfÍ —º,{%¼XŸF3Æõÿ ŸÅ _êÍâ7ÖKIW.bãáõŠ4¾\ŽFSÚåa<^® £Ñeâ߸]·Åã©/ W‚³ 9³6DÂV÷LJº¦"ïçH“³Æâ2Ѽ8ð†o„µð6iþ4 E!‚ÓÃÞÁn²Œ<•³ûi•N²D,7 DȦññ²ßâMøñÖµIj-.2¯Ž?­¦ðƒ^Tu38}PEæO˪ñNWž9YTTS° –'ÏŽ[i$cqÍ'Öñ‚E+1©åázÏg¤½ôïÛ9TLm"a#TïZ¨gÍÞ,§5 ù›÷z«šÕ3=Y´÷JYId‹¼ÑTÈÑÒ¨%±N#æ1YÆî fª“RŠ-…XŒ+‘‰Ø|;D•<O Ýþ¸È}¡Ã¥¶ƒ•Ú¶©=Þ•R³ZÿÂæAgbãÀ«"º¹ï‘Þ,‹òSù9gÖöYv¼0ÏAž‘*Ï!»n¿U»ö€?†;,bva‡$Ô.îŽU|rÇ ¹;±»„Ü'Ý[zˆ™œùë¿. ¶ÃÔP™kø–íyª`Ìf^h¸¡ë φžk;¾¥ú.j‡ig?è¥|©,¯ºùŠºTÞÈmÁWäºá„]¦¥;ëƒeV)LÙ\ïð¬Ö7¢¶µuàˆ™agå·=>ÆP-ÝÒÖ6Vjª¡Û†ÕÙX©©¦a»UcÊ2²m½Œí•nröaѬϚ-Ëoÿþ÷ït_¥•Ýó’Â=µýÈÖ_3¢öD”~Û˜‰'ž}3þTs¯“®çé>w|Ç ,7„ÿ|Ë à³`Žæ„Žç꾡’çÞŒOë5´feà!7gìKu˜]Ÿjv5¡ÅlÌ®º¥ŽÖ]uK×U»çìšñ—1·¾è£  †½ž7ƒì¬ò§ž`‡Iô{žD¥uôT³¨0\GtÎ*™X«ù!74ÝòT#]-uÕÔY´>¥*hÍyßc‘Öfͧš5]ͱÜu—Ô±L»{ÔæØ¦f÷š2eóæÌg?gj¶íýæÌ'ÙDóB¿í^ãïyæ¶/>¿í‹Ù2‡ßÝDÛ„ßUó’m¹zçùSsVÀa¢vCßc`ÄÁ¯f–¡1.˜ërß³ Ýä:§so› èápËápË×`îÚŽ) ]s×vU]3wUSÓ{™»õ1Ø»ÏßÞu½§½»§ÒŸZ%zÝË0ÃÁ¯Á2&Ÿ£ñòŽ­ øœå=¶÷ÃÃh[óñè¿­Ë¡tc¦Ú0¬fãàØª ÙÞVT™Fá¡‹/°öª‚ãÈjÿ¯ênïÆ®èËÞí6KPsTï¬)$2—w]º«anBÇÕþmV t >JZ$Oé& byom¨ë{ÀÊÁº”új¾4=’Sé8šé{–Î-Íð]¸®áz¡¯ZÂR™Å™¡®ë åTþo¥\É×Rê<)˰ÒJ;ü+ײ8PoÜ$×I¿˜Ö»ØÀ˜›Eà ÉÅ÷‘¢¼«N–7±É$ìz"k˵ÑÉI']yW™"ÿx®,7<,S°¹.ŽOoÓìnÁ’A£'òRò"o\‘ð6jüPYÓJc£Êߥ·^`9/+‘”#yoZ'¶àŽ•'Ò4®”»¨š4¯ ÀÕƒ‚LoÛTÊÑ7s¼êù%KÅ(Õ¿Ë´5ÛYó»äººåìõ»[7UÓZó¼GÕÑ€Ê,—vó®ÿ™MÒ_6ÐOðYœû`ȳ Ê»Š¸´y—ð÷ŸÀ®½bc-å6©?œg©¼ð~”fKôGö‰)áåŠ(e`·×ðIû霗£i’Ê~±"Dþ(?eP½Pãui|ò 眳dÄøhz»ÂNažŒcåºàaLXÜ$_$¥áó,ž&~ÄÖR¿æYU)¿ 6KE[|e09ϳ¿+¦kÐ?¢dZ(?±[1³f³?÷¡ìŠæÿ2™_弪&1QD<‰ªóè^–”ò¢¤¿®cÖhøÿè&Í’y–Oý³úÓYë 5Móøî7]ߨýf9¶·? Ópks÷›§›k»ß HÓäð´¦NåEƒYìpSeÇ–§´Oä \×ãÀe=ê œèa,eT/eG‘}ÍlºÙ÷À£&CÛ¦ÿ¹çk˜þÃ5åY1.ùF½ðQ+•ÕÿÿÙ»¶æÆm4ûî_¡š‡­Nõ¸ûe÷e';Õ5IM×d&Ûo*Û,Ë¢V”ív~ý$%“º¤$K2w_z¤HøÎÁùÎ癤l8‘¹¥×3Kꤙùƒeè™Ü7‹ì€%‰Ÿ§~™o‡…ƒº¹¸Ù]Ù¥ª«8G[s˜ÌVSñªÅî,+×h¶+_Ê6Òù®Ì.ÛÈþÁãz£,óëacÙ®Z£Éî7Ûjº±hX­Q¾­(LÍ+}ÝË9&¬t)£.JÜdÍxº‚‹7AðÒBH )©€°XF ‰°´‘(C:Ò Ä˜#¬%ÓÊ^¾r|©žVÃPõS7ŸVwØ`—úµæè Oßþ›¹÷øéªü[:³à$yeœ ò‰‰ÓÄŽóœÚpòy`ãKÛÛóÁKöXz±g.°~¹rG-ÎÃÄþ}:ˆï²Ô“$wQbÕò2E¹{c÷fð»zNÒüî¯W ÄúWŽÍÿþ6°xméÊîg”ã|ÈóÏ,¦­@þÃáÎS^qËns°lÎÁ!ÞO(¥¸)2¢€CÉjð„B,ˆŸÄ¨þµ\—ÓýÚMôg(s_Ž ¥4¼9Þ¹¬÷G¯h˜ÝÆF¿ÓPø²x õ‡¹ƒyKSÇkO06­qû€1ó‹o¼ðÅÇÚ—ÃØ–Á+¸.ˆêu{ëdâ™Ý…·• Œ(0$&s†%¢œr˜@BEÐУ8Ô/»çm{Þ¶çmO“·KÉŒ’RèÆÀQ@I#0€‚:m+ B;Â"»‚Ý4–¹iÿëû nïãû‘±×š¾œK1éDß–/s#‰ëMÚI—¤@‹^`ÇÍŠq®•?Ê-ÛèŸýàµÇéÆX·äß ÑÚ¤PæA½— †à“ìÖû˜Æú„&™{DíÆië/lO= }™ó-~b‹…ç!èœáu΢<™Y›¥zq«KuyÉ•±ß‚m섆ºÐŒq€¢*AXj‚!–0† p •Ÿåñ¿|ßÏ&¿ŸejZˆÒNÎÝ’i¬®|µ`«ÿæ,”7³ŒŸlØÛ`ÃxUcwQ‹ƒÍÔâ•ò!'E. Wì©I.ŠF ¼Tè‚H›A4‚Jˆê)ŒPÊüéU.,0†¾…:Åú^Î8™SÜ­óÊöüÁ,#Ò#hO.Z?%¹‡,rG!7TÚaôð•>…x}O}¶I6™±-øtæùHüÃG®ÜKêû¬-¶Fž7û§Ïç(Ü®W!lNÿRªÍ6«ÌÖ7½±¸ ¨´Q¿V¬7¹Eâ*wàСÜañUÛP#ÒQ:{Þ›—(SS;UÊÆ{´ý']ÇœLFUŸ|¨fǬ~ÏÃ>¥ù£ísÐhš=[À¿Ï!³$qœÂG´xÖFxûýá%k1œÓ$ÝFŽT|ïî¸ëÜt­ì[6ÏyÇÉ÷Çeñ½}NãŽÃLÌ4Ü™©åûúŒëC>dŽ6è6^¾‡×7»{|ˆÆÊ¶v}v5µ Æ~ŸFÝ{ U_lo^cûÇQº±RÃjÇÙýuùOÞ _\Í‘u' puÌDg—êÖÄ3¡4I’X˜D&„G$æh¥‘RB"ḛd^Äó¯ö_Ž4-(Õùóz%×ý(ç/ß3˜M• ËÕÏ)`»¼:蛓³r•œ•p³ÀKÈy³."SŒëä,!Œ{™57æQƒTl[‘í„8Ú¹©†ýí£ôÏâ÷ûp³ÿ£fÙ㩳PÞ€@-ˆÙâÝÚÉÒ’ÁôcAO[;zH=ÃP‘G9ÿÍm¤kÒ¢¾âRUo%æ·8枃¾¶ýð·ÛÛ!öz ßô}Qø:@Ҩô{ô˜„u²È>zßß2²‹MÈø®}à´¨Nš4~¸xµ…º4øåÍÂÞƒ¯ubw…,`*ÚßMh§â;ó½ý#‰T'.:½~PéØ9Ø-$û>—ÜÐó×ÿúû/C\.ôyú-˜bùLÇ?zΛZã·_¿þøÓç¡ß>PïX¼ª¯_‡~›¯D÷ਹ)°jÌ7TX™\_kw¤óf6G(á2¦X Ãj‚"$àö_ D™b‰`ø.ýÅÁÅŸúõjŽL|îæz ¡ÞBèd-„]¶bx³õ;Æl©€«TÔË·JˆÈˆþj!T® çí ´þ\û¶à‚n?~ôAèß²,?)/!ŠZÖ©ªî§x­¼„v qÆ?åï-ŸŽåªz6;ÎsU½Z_Åá—}}”3Ž 3—æD7sY‰Ý×S¦‹¿½]ph¨Ã‹ΑК%š1¢¸!ÜnSF$8ÂÐÎyD ?QBïúri®/’®XJoK,°xBBØÔøABGuÛûÄŽòœvö¯·}©öí3[tTøµI-XR¶Ç5ö­Ã•¸Æ+.HôãÄä;ö–òVK£OÓ§$G^Û³#ðœXpg+¿á,^¹3ÏH옻ûI(ë¶Ç)ÀµŒ©V:ácP ”H ኃ$бØo뎞áx G`q; 1FžKˆëÛ¼\¢í›ü<}p=Åq~îöÀqœR­;Jq7¯äžßØõûz~£ç7.˜ßØ\šù(G_\žÄ”AÌHLj¨˜A. !(‹@"=Kgõ>úàµ^O2x <žöÛÇͼ L9mx`ÿ÷ÝšÈëìŽæÚ÷8µó8w¤Úé@®¯ÍÜ×f~o‘ð¨¯ÍØ©¯ÍÜ×fÞÒ¨¯Í\þ¯ãøäl:y8VuæHÅ¡`ŠÂ(g‘4BR„Ã# ˜Ñ8â€?ˆù¹ÀkfPl7[°ˆîÐØ>šÌ¶wȳÆ4vtбð`lœ»«»—´ºƒdq¯ícc´ÑW&VGƒº9¨ÅŠj6¨>~m@x 'ØaE‘D ‰ ˆ´è¢nQƒ¸Ø!Ü[)‰\PÛ}Qä&68©¢ÈÀ™B´BÍ·|nÿ…›ªßix6Ò™ç9¼½+¿–£EݯqÃäÎ~Ý÷.|OðÃøt÷ â÷¼6Œ|‹úÔm¨O]t"°#„#…dD“ØhÍÁHBç‹m˜TLÅ öô ê ìžÀî ìÓ$°×¨/DýØo9LÅ6óK(•¸á¤ÈØ.#Å×0õu±kP²áQêùrÙ'¥»À„´ F«û)^e÷Õ^-祩ýä;níŒõïŽ^&Ž×¢n×­¬@ýθêv†'ĉ{»t,W¹öy¾{&ÜN‰OCõAÍ…ó´‹YïpwóÎljoîF#£1b“$X'„Ða$h¤$$†ŽŒP¬ühÙÞÜ­7w;޹›`7 ³JyÝÛM0D›ª¡ëÐyûzè½{»êË“½*ÎuªÿÈ.Эíååav„¹€¸ÈŽþþ”ÎÂ?¥¢Ûm–Û»I Íj`ÿ:»ЫÁ«…t|RwéuÑÖ}ضoHÏéËdVÔwœ®ø­:z̯aè,(zå°a茟S’þ=æ„dÈÖæÖ½rª…Ì”Fï~K…»C7áð¢èö”ä-z.• éZ»nÓõ!ôç£ÐfOƒ—Q§ îS¯ùݲ[«µÅn™Ùè)ôó™ÎBd^>ûХąU¡—ZTÖèógÐEË” JãÈŠXÐéô/¥ÁçfcÏõMo,Ïò-–¡Å’v“ÇwæAå7U¢Ú°X†*v²æ4JGéìexo^¢LMíL+ïeÐïãú™ãJº—ïáõÍ²m§]_ ]M-\³ß§Q÷CÕÛ›×ØË¥¥ù&KãÕŽ³ûëòŸ½\Eq5ÇQ¾§ðÓŠ0Ë¿¶¾Q¢yDd L%#, ¢”G %¥1Vœazߊ޷b w¿?ß ¾ì[AÝ,J%\Ц(Œ9¬“ú€º£`Åé¯7¯èL꟫E¤ZTXÙjÒ…Ë'R¬ö¢òk·´NXºaÉܯ~ä­²;+ §l·‡Û‘…âÏ÷À ªtš…bì¢SñHAè# 'ø¾Åñ0½L­Óßno‡v¾ôÕ÷×ß!lÅéûá$ý=&-{Û‡j__ð¯uÞ8­®X™ê´ºfK6Ôñ}í®ØGíBk¶Ÿ ³–ï3˜Ø*k³4‹Ï¹uïbþ‰oF“–ÆP*»4‹³ª ›Ø4Ä—ÿúû/À¥¦©Õå[^0O¿Åm¦r>ÓñǡӲÞëöë×úQØP§¶µW¥€û(Ì$03Àt¬”dÐFÜ‘¡Tô˜¿Çü‡Äü‚ñ%ÌϪ#ö%Ì/å Ì%.ì+˜ºÚI;Ü*OÊz°ÚÍ"å\ÑþÝc|?jWUõp˜Ÿ±–Õ‘zÌ¿?Ì õ}s0Àn“‰Ø&GÐ+Cpàû7^AÜ­Ðy8,o…ÆCAx(ö‡ÜH;`‡ãêp8Ž¢CÁ³/f…Ê­r80¶-a°ÏG´ ºîô†×V 7ÝÁËÖX¶=ˆ @¯=hÝœn]Àú7ó½Ô ’KÎ)i‰œO"ãTIÇ”J07 ‰ûܰw™&$]±Ý$›m7)¼i´  î»iÿ ؎݆ñfñ}ôÆ›uôhFéµÂ—5Iö^ÓÃ$Ç]3­ß ;¬œ[GÏ{uÆZ¦-µN :Ûtœ€Ó…ö‡æ}–ÊûJ7yë<€I˜ÏqXèpL@`ª¤Š®ºÕö~µ4Š!ÃL.±AR’X8õªŠ ´q`B¢Iî§\íýj{¿ÚÞ¯öDýjñŠ_-›½³8£ /Iƒ©pcÔü>ñ,ž´Æõ=U©ÎÕ(µsæ4\k!¢„µÃmå Ý^ÖNB§/Ø»¹lýk¨ËF€s­N“ä€l}8ÕϪdtt7Œw ãn/ƒQÐC‡§ò&B‚˜±H!ª™ M‰ŸŒƒ#È"a"ý\ {ôÙ£Ï}ž(ú «–B E)M¿I‚¹D¢? –ˆyÔTߌ¢.x¶ª–² wAAhµè®¬S£\ r›Ý_®+Àí gñįrÜ~1È۳΋£PŒ6ÈPŽåRœ(Èq" 0RPB¬ R@ ­D̤öJ”w©DYõûçlV¢j*Q€ÝyH]‰(çlû¦±lQ\|%½QñÒÖrR®ÿ’ñýHQÚ(P|…'Å<ê…'Gž„Rt2“¶ê’“Êò8Rb:ÇzSþµ£êÚ—ý'H„ç;4.‡IhÊYö˜ð0¯œLB¥Qy7Ò”ÑæJÊÉÕ¨A …v_‡&&€Š,"œ0ª‘A†ƒžì©ÁžûïŽ!…Lª­úrË2úgc?JmÆqº1ÔÅá¡îVеC&r=É@?ûac±ê‚Y”g#3kó­,î`u6”—\3öª2·Ò€ ÌÆP1¥‚^{#¤€Ä16&„I‹chK`  CÂTìç_ú¹`«Í ø<ŠÅ}±Ø;½‰}0™mïx÷Ú†ð©›Çnµƒ±q½Ü½¤Õ$‹;xÕèŒÑF_Ͳy:¨„Ø0i6¨æ«£Íí6s’â&áæAd#”†bRRwa¡ˆïâEÝÌ»iNІTÃý÷^ör2²(¡í¢‘æK~³’Ù-«eGíÈkûΦQ:ókêŽäýZ¾Ê:¼Æ-ôS’û îξ}ïâ5ÜgÈãDü^‚£‹¢ Š©öv1El\&O¬"”p-…$:‘,6Tá˜G\ÂH¢PÂz=o¯çÝÒbC–æY/‚ˆFTcÿâÒKBâš>¢9ÙˆIø©+yß,Zºv ZËéµh§‹\)†kt ëƒ@ÇV‡Á^ŒÆnä `ÁtÑú6ËíM¤ãoþ:ë SìÀ#eõ¤îÒëx”:^ÁvÁÞ]þŸ½k]rÉÒÿë)»=ÑV™$ôDlØíÞéîi{Ʊåéð‰PÙò ìsì³Ì‹m^BèB&’ª¤2þcIuN džËw¾#Œ*-•´ÂÄXñ€÷óeVŠn¡¤¼E1ŠÏ”hp —·éØuuàú5#Ý“"VeÛ÷se"ú˃ÏÓ"Ÿ[5¬=,ää)¾–܆QX•Åž‰~}þº€*ÏQyåA”ÿK£ÃûN’Ý¢U3øž}ë‰Ïcñ‘ÅQ¹|˜Ñ¥—’¨ðÙ±c6‚ÿ¤|˜§røû ŸrP/O?4?åiò8Ä Gd03 O{á2Òñ° ­72ïÇ]âäØg“K±»L?G$Á…äèû§þŒÍSrä0Í£lJs§z›CÎSk8n¼â·¯œ.æ^B˜l~ì d«)ó„ØûIÉLa¨æb{·¶uØqTìã¼ÚV,gcùQA»öþÅÑx€ïY3àûJËž %iSPÇ6M^9î!ºØ†ø„Z.ö° )´-â«O Õe’s@r¾$'DÀÞÌ8ØÀÙèecCÔÕuÇi\=„óE°# lÓTé˜éõÎXUšéi %gCÉÙdz²ïª=;J[– ½pºåK'jÖoÔ.-Óšž³óB¿ÈÏ9Úo»iü´8|ÁêJÑ-Öð¤,(r@`c't}Y˜`ÞvÛGadÛf€”<©ûˆÓ&3·",?sèLe‡IKF„›²Põ§ÖÓ4bޤ1áh’PáàÌ™-¼:ÞÊçZdì&°/7õ ±Q%|‡­½ f‹()"öq´R–Gâ‚丣IÊŒvv<6ú"‰Âå G,slQ=Ü$'Ù4ò™OÈÜç ØIŒxGšó+ ˜KŸ‹Ð5³º^ñ³ºáÎ^ÁLáQŠÑ¸QX”£’úÓ$ÓÉRbˆ>¤ÌD\òK^]])N1åÕ›báÏFlk:ä¼­¼•_“)-¤÷!z=e?± ßpµ>¦óÑ’Ï*//#q˜Óåë’>f›>óð~'ÉOÌ™’þM^?² ãγõ›>ÊèYäQPPé*1í5sçQ|¬¥wì­a›?«¤â¹øÜö…ìâOÁÆîTý&ÿ}ÂGˆh,FHçâóköó;9-åëÙ<9þ¯rC?PË+¡âæ]&%» ×róØYTDõ ÷·ÿü_òodžýù_¡ƒÿ3Ç÷ïÉBN¡O&ìûëŒÍø¢à‡¿-óã}]fY=Þé2àS—–Ó¥Ä+å—ד9a×¼câøÂiüOJ«[\äâóë$}d×s¯¯þ6‹ÊNø˜ …]·é˱Ÿ 遼Ø›uy#Ómv±a¿ØwàÇ8ðz ¾ ó…R—J¸{&WNÉc>UqVþ`âm»’ßò7Z~NóÙ{™P‚+×k¢’´LãËܼŠ|,2ZtB×ý±ÿý÷'ƒ¢ó(púR[‘ø£Îd‹‰LæñøÓûwc¶æ4ï’^²&Q¸øŸ8*¹žÅ¨Oê.=¿ÍWݤcÃç̶ŵÑg43Ø6t‰å¾íx”[}†‡=? 0ÄÄC¡ë`ßg¿ƒ(Ù|ÕºúŠÙ¥?ÿ±•1¶Îjɽ¯m?M“OuØ}6Ð{nð0³àMäÕ9'¯«qeŽòhtŸ“HZ ü£”ò¿®ã³% IÂvÜé‚-Û¥Ümù—hkÀŸ‰/ÂÐþø÷ˆÃE,œ™%üÛ–øo1Y£ßزž…Ò¦š‰Ï[‚ïI1Ifªž¦ú\Ì"yMå–è}I’¨ˆÉãè÷¨`Æ@1“öÄ£ø¶uqïH ¥ïcú•̤%VˆÏMÙÓÚƒ¹e1¼?ú lìbg“Bñ.®Ù¬£sM&¥ ª|Ù˜áŽ'~&£¡z¡Îe5üûŽ©:344 s˾P ü.IQÂqõpTеýSÀè Nd®µøÝ¿DŸ"î;É&]𦂔¶Å¦Wø§»BÓn'`ph@§tÁCˆò˜eK÷Öt447qÁ:w†m[·š=Ò b­†ìþC¡Õ]{Séç·oØS­®;%ñ¸(Óœ3 ¶PKZ/í ŽN2Ú{e–ÆÜä ¢îºV©Êò¡~‡0+¿ìw\m­~aå\{å.è—¥îÉI0Ž©{r_|o,­ñ*¼ÙO½æ—XòóhêéNçù¯BípQß}Üç¢vQso—V·]ÂŽ‚êÚ%ËfãFœKAÚ“Ú1såË…ÊðUüfÌ3ñ˜ÿ]Ci±«âæ†Î*ËôßUÏ0N' Rì± U&‰G®Ääs$êÒœlá`ôZl±gœgÆ­ÃÜÓç cW)ˆÙdÌÎ^½vú»BÚIÊÿSelö­eÔ8Bx#„f`Xì"8 Úu!u òlË5©I,‹ CªÓþ/rÿŽÆ£ŸRÁAu2zÉCÆÛ—¯ÛHH0¸r`9îêIyJ>×Õ¯+VÔ7~}÷a6ùá‡>Ëû;ýS]hÁÏx$WÜŠŽ`ãÜyµÈ¢L'4¡9{Ž‚›0Oçò8Ík©Š’Ä·7àqÿü¿M|Ü9¡ö]¡l8mˆœk4Á -ˆœ°±‰s,; Év\öÈt²åó}wèµWϵˆÓJù+Šjo¼w¿||ÿN%®íå ½fº¡måi< E+:Q·ó4wÑšî]ÖN¨Þ>™ý§ðâCŸçµ4Ÿ~£MüE^ЂßÞcÙÐÙ¬^{+&±©éžú‡³ÝÖ°lÃ%¡‡¡IL°G ­½õí”äÄ祇œ =Xeq+({>úKž&%å´oÇ0£ûõQ³ø3eaù-UÚ¨È"ï·K훯S|`è³3U§öƒp%Øz(fÞeñbÂy "/[ÂJæ¶“-\ ù°ˆØ…*ꑹ¼ õäÖlîÙ¾v/^§ØAe›á w¥yåÉòh}–?ÿGó,Í.¦ÜËÝ3@/§ŽŸ”íùÚ©›×Hæ^¨g=%yVežëßÂе7n·?`÷(¤î1]- ë7c 7ŠÖOÐnðš#t­ @2\‡n=ˆmß ëø„`‡PÓµ©£Fò7ÑÏï`Ë?tj4>[§ÁWëc¾º‘iñE^ŽêÓjv¿–Dßq¾Bn1/HÌŽÇôT] ™À gáÈ`yIÉl¿¹(8Är}gþo`ðxy ¶ipˆl³ÿB45ˆˆTº?µWÂ&‰ÇuºjçeñhnÛ|'G•äÃê祵ïa'¶uG&ò‡g}ü~UuVÜ&U¦~hÛxm6Ú>uÓì6B `؆˜b0!ij‰‡L〦<°y lÏËæ·b½¦éîOUbÇi³yX´Ø<°£Ú?²MPq†ƒ“ÇšYôÌdFMæŸÌCMxàðøv+GÔ9<ž$tÛ'Ú{ÁÝý`ŸãôQ9[Á6C‰¶ŠsŽ^…5‰VEËõFÞÛü$JŠ’gŒê?U›¾šiD!¯Õ|oHKìÑÕèJ¸Í¢rr§îexA©”‘„}`¹^–»+V’eÊd÷î­Õ+RâÐtǦYÈ%¡ãì û»p 6±m»ÀUì–ÐÏ<³“§ÄŸŠ[5 ¹*\_ŽøEGÉD½o˜ú˜û³F«(ɽ?ÍSTÙ y\l *É÷¤üZESʯ½âgÉNɆ4ÿA¾1e¾Hfwì©ËǪ+ô`;Æf) #§aµC–]´Iøá˜–…œ&á‡eÔ…“fOõ]ëá‹XøÔì¯:á‡ï™ã·üvÐgŠ=pТRÆâ‘ÍEöˆ;¬gk=O§ÈZXæ6O¹j©úœöyß;Ãýù3Eòó3lL¾FY‡ˆÇDºl™5ÛÆ{x¹±‡' #\PL`ÍÙ äÍž²?wÌÕíùëj}{•Àn£ý•¨+»7 1‡ý„)wœøðvr°˜g bs¶]R¹Œg¸Íý!·UÛ¸-ÊŸ¥1³ùékó©¸è}ªÅ#«Ózs,BÏ5¡,š!EØ ,ìS×€ø¶Mhy.2 `*¹÷Ñ<‹™a“†åg•¨LSioÎk¦Z@“ɇƒ1xs 0±Æ]0dNf´½?+øÅM}B+Ä'K\p¦rJŠˆæ·#ÑÆ#Ë#qArÜÑ$%1?}‘Dáò†S:rlH=Ü$'Ù4ò™˜dh\u ¢0¤9¿Ò *Ê\á¦I!˜‡n˜ÿi(FãЂ¢•ÔŸ&)sôÙ„FìZj¼]}u¢ƒHžrJÉ›báÏFÌ’8Ô>d rˆ/ „ ÔÆ1ou¯k×lÑî -‹©4ü[ll Ãþ-¯‡ÜÍL¨Y yx GáÑ‹ápŽz21õÊmͪðñ3ŸæK%µ¡ÄWå‡*»¤¯‘ÑWLÒ¬—^‘‘ÏI?Í…ïSôÒ­ÓWZªD‡N7sæ¹8;%„¡ëôVôóc¯²%Ûÿ“] P¿êddÞ¼bŒ@öã@Â(ΩTû‡y‘ø¶»r¾ë{ZîšNëhšÐëØ(àµ.1²óTý#Îo¹øÓù¹´¢ôŒà¡‹)Ã{æ:èˆdþ0QÇ:¨£’"ËÕÂrIQ˜ª‚üÂÔ„õ-6  Pì«]Z…¢do<Ñe€ƒúó·)£Š8@BíÞ롊ŠBñ‘ºtB¸ â8ÛIÖŒ7î¥[ 5>¢ ãJÜÖxàaµ˜rïû6¸ËfãÆwþ÷êr×¼«*¡‚;,áÛª´ïVíDZ,düåôÁæÏxWø:›u#]²Ùü L±yøàùBËüQä!ŠãP,Ü‚~M¢­ ° 6‡x4Ièڡ帞 hXéù¶ -zJef(ÏyD÷:nv¯åˆö6ïV¤øjQe­A÷‡YÿJ’Ño‹Œú’ø}Æ?nq£k²¹¿ç¾M2ú= ’2æQ|>‘z%N[h–ÿ®#ýŽšö~èŠ €c·š´`¸F“c€ý‚]£ƒc@@Wä£>®žÖ+n¤©C²^8¢y¤ÝÛ1W'íY¼ÿ{¿ÐÞfóNTžõ®0ÐÞêq žmɺðìÄæ‘¨$~Öúµ£")W踰ÆåÆ<.¢ýå `¼fZ1Ïw2Í®ö±Ï⵬•žÆ+dÀ¾ O+W†mïuûCò`ÜÊg;lGv,e¦BÉì–.ÄbΆW´}ƒŽÜŒ÷ûS\«>¥µ|ÜÅÝD‹xî½çÞãS…c‘. ¯Á*/”÷RüvüVúmb”Ú7Í÷Q­(š~wÜå({Œ¸Á5yõŽæYa~­=&×ðH”ç©„%`é(B’HÅ#ÍB†$V‚GÆ:¦¶2x¤Q^ã.5ΣoÊ!¸ ý,z´Ò/ý ‘ò²Êœ=•r`¥Ï ²¨~äR^ô¡;ý*êõªâ5°r\—ÍVÜ/ïa?D§W÷p…™Š8´„Hn”Š¢ìï!Ôh¡CLŒê_Ÿºb“‡ˆ…nº«@mÚöAÞ%íQ´¯×OÕOÙc6†X¸TœÍ>^'}ÓŒß*Ðo0nuçLLQ˜/{ÇØ¬nèíËúÕ¡€XkaþÇ"þû¡­ë¨;Š”V¶ÃD©kõí·»¦~^³ûxT„É?eñˆSAŠeÈ9%€á€H(k`+A•ý`C ‰cˆi 1]@ˆ‰ó­Šw‹½G¶m¶És„˜Ó5wǘ^¿,×3—wI§Â‰âL¢gÉ»1Î4Æ™Æ8ÓgãLçußtH1íï¾J3# 0a8âØ„r&bË(Š¥Á*ôD»£ûfØî&Ø„D ½X†œ!´!Ί)×ÅY Ä>i¤;8¯žh´0‰kƒQfE=cJ£2«gë–V£2ëVï=2*³îi7*³ŽÊ¬{ìï›Q™µÚŽQ™uTf=™©Ø†ØßZ¡‰B…B…\‡qkiÎ$¥…2f:¦ÄèÑZ|Ö"w¦Ã†VÚìgSûÏëÖ"¢¬[‹ØÕ­òb(î0ƒ.U(çôAÿÓ¢gQÇÑhÆ×.²Ú(yv•ŠÎ* ³#öååªà7ͼ‹*7¿fÿ¯`ýkðè1Äe×ÍÄí^£‘xaFâôÑ^:" x{ŽBшaChÈÕc" $FˆK©"&±9{îDT¹‘÷yqK/@(r]æ-C¡@¼YS—a€Zu šµƪ /Á†ö~‡k¨¿U»ƒWòœžð6ÚÚ‰Ør“Ťòõ,y}cEØç4z)pxµŸ´Ã€Ô 6ºðî]BŸ.Ùâ(KÚº×:ôè`[Ïú­*àž<ÔÝìÔá5qÔ¼H3{xÎÎöðlù ¢ï‹Ùµ3ÄóÔÛPÕoõ|ÎΨ¿hûc½Qçë©i§{úܵA/–!Ð× Ýf¬¬õ.†-ß,jè~£;tr-÷õh4+o‡¿Èâu½øn­¯óåËyGš*˜Û’.’ˆkšÌšV g’q„‘RÓP ÇD„ˆ„\Hˆ‘—‡äcâüyAžÆÅ½SÒiºÞ‚Ù*ìýØ £‹Äiõ$y k=•,O‘.¢!ÍS:OÕy®ž&ô(ÈãKk§Fæ‰Én‚à×[k^gI¹ jÜ`’Ê©»ž}9Oâ‡+;t)ô4Ü$“‹ÛDÙf¥XkRÛI:‰c“¹•ê$/²ò—ÎóÒ¥seÙfv2q9š3˜ó"(Œº§Ótb74±kùZóùÁ-ùquE9ÅTY¬•/Õ]`MŠüYD…Êæ¿¦³àƒÌîj6ÀBNãÌ<¼-ÌçÅÍÜ+Ž™“ówŽÒPzpÌüíg»0öH³Éj¼d¼—Ë,ѹ©¼MÅT¾Íd>³Ÿ{}·òÇØ×ÆùîêVÓYùóÛÌè[Yh·uiq[y±¢¢úåíd&íÆ5ïXy}•Eð_Æ|®oqž•?¿§Ÿíz%%¶r?CÞ8i7e£@6øþy3÷R†)nªÚ—û¹ú†¬”ø…&~¾“Æž+^n.©»W’Ú½UÏ‘÷†¬gÚç´^Âݧº$ù'mÏ™/üßèä¾ËŸjÅ‚îcYÂÚîçé¢W¿|!ïçýz.•2F÷êûd“uêZCí–>«±UÇkGüc<•S mzG´ŸµpJi®ÅƒEó]5?h¿žµl=Ý…}¸AÇв"‘Ó?ÙóÕžðwM±k;ÉÑ©£—ë¼õó¢“÷LÎ×!ùQ‡¢Ãuzg’žPÅjÊTÞ:S³.2=óÙ'·;¾­½e©æù"ós•Îóû6t ókÜæuP¬š*¿¥-¦:÷lÙ[Øj*UýêÞòVN©ÇïÞw“·ÊsÏGjè^ú9žwzm›~ʽ>ÛU£Æ‡ü·»i€‹»ëÆïîßt¯NÍ7µ¾¶~ã|,NìÑ¢þ»ÂšQ~Ùp »—3ZNœ—Ú=ã‡we¯»vÉ¥ÅÝì`›|ýòúå\Òu8ánrm§¤“ù$?Î5mÑ»!ýò»"ÅQ$„A&qŒ«Î d¬aD¢`ib{ù¦ÿG~ü×YXYð½rU_Oô¯·IþTMÞÞ÷B&sç‘v[X\™R#^–ƒ:?té´­Û×!‡«iYüÁyŠËYðá~Ÿ}NJ"ÞÜL+ç¦t9†WWÜ&Ò65Eñ˜øuWý¼ƒXWÒÿ´œë[9›Õ­óÛ#xg®6·ÍªãMÔVU{ÈنǑÙ^˜7=Ž äåqÜ~•®ë·¡t«]¦ëÑ=°>~ÇŸd‘.»:[vìYdêÝ®/ëí|@î&>0l{%Û¬ŸÆçpamr÷:V¡½|Èð‰iÃ)áу“5T*Ô éJC·#Žbû<øÒiУ—ƒ]÷ žfüPŒ á¡mïL™cÀ¶±xÅH@Æ$T ;SÍ¢˜@S¢")#梯#ØÁöN°ÍÞ,ç'à5HBL6À6¥(\ ï3Êpè‘ÁÒ‚/2›Åjç÷ÆIçd–³€m4‚íl`{Û#ØÁö ƒí­m¯¦K‡*×½)×+$c."­¤A1ÆãB†íqɈ`:–„⇴qÁG:VÓ¥®Y^’Ÿ§Ò“%FÖ+QÊ#Ñ·EÆsãwª—ýnuÍï®*>Ï2«ÀÚjZ‰Ô¤éoî“âÖÁõ¥œÚëMì‘d¯P®ªH¯\,È…¤ª%Í«Ebå°Žpí`#Ê3²¡ƒ‘ }lh°›€Ö¾Þk.q€p¸®]±ðze,a ¨O¶ÿæw°Iò½HC©ºOÖÿÉèÐðžyÿ›·ðÜôØvbîaPá/®ò‹)îÓìîçB?5‰d”9¹4€VÙñsµÌr“;{þ(ÙÒ⇤—3”AM4Ž×ÐP °…#Šsá"!Ö!Ží÷[éWYöÑú£R¹¬³¤KÛtŽþ”Ye? Ç4õt•¨¼Ê7õ~þ.ˆëñ]âY9§« _鹃óÛê­d: ò ÉyABW•sUÏUP{Š>zëÖƒv]?,—+äêë,Œ,=©‚+¡á¶®‡_Î…ù»œÌ—-Ÿ;~y˜˜yÛSë˜ú8•Æ^‡EÕܶ¬JÎnÙgïË_¹¯/e… ¯Ö­ÿŒ»÷hlÉŽ”ûªà6C5ŽóI,“Ã#q?oÅMÝV‡ÇóžÁrPv‹ö<(; 9бÒÁ#QN\9C ŤÊckdK'‹ƒ½%´{Ö+Ÿ3Ž0iÆÕÇ„·”«°Ú¾ƒò"E߃ÒLí!g¯=ô ¬µ ‹cìFÊBÔÏn\›ÚïKê±ý0–{‚Þ,¦Ë‰ËÅ+Cou›vz}9ä§eòÉ.Ô#Ûàid×Þ?¸×ØÍ=±½Ý°ç0v+QS÷†LÛJá®NÏãÎÍz¹{i•¡Ví«L8„˜Ö默"Z_c”n î«.tDéhË84@2CC„Òr¬0Ž –” "$&~É'k<[ \ÇÉ첪àÙ‰ªIï¸ÒX`ú5˜æŽû´îmƒœî5"XCÀÖŒB´p"”#€Z"Nµ|ÒÚkÝ, ü5ˆ(õ)Â3=I­iBÂcŒ‡6soΙjIo2ó6/Ûîš›MýBU®æ¬WÃòuÎýÚÚß½ÚUFŠOËß\IŸ†ÑoÉ¢Í:[¤ž^Ë*S×{)~;îªÞz­$µošï£Z6¿;îêòyŒøT«| I¡<êömØS$uhì´nš½ j€b‹ 4ÂXC íy»¼k9¤ AƸ†œ¿š #Am$¨µ§ë_An•ëdÂ,¤t=ÀA"LüÔVqÔ.Õbè@Së¥?%MMô 7Œ4µ]FšÚ…z(ý’v»`µcòv Ò”sÆÆ0$2Dh§k-!L[Ü&òkcÞníüŠòv9a[<<¾_zŽÈÀf‘Š1£ëy»„päuÔ·ä¡^êiïË3Ðfš,;{Ï’¼ËD¿c=y×WPwÌâ}ùCz²º€ùVí(}¾n~%ñÓ¯sj;,»‘\Û¥WeÛ¡ËàôÅÇVí —{Vc¡, ƈ¤Š æL¥ EšÆ*fa$ìt$¬ƒ(·2;,ÜOX„ŠõÌFXˆD“°J¸è„'÷Ñ/_;œÌå41Y2<Î*§GiorVí~QÖj7T;ÒW¿VúêËéNØ«?¡ô+…ÒûI«#äõ$±n>Ž,6#nH/+ˆ±¡àDXˆ09‹TÒ˜¹BÈ0Ô\†ˆc?¸û}07÷.¾¥RÝ:]ÊÇ]ÓŠV[t2ŸøBÝ.cî÷?rS?ªÛ,5ºvÂΦy/ðI¢¯ùçùZk÷‡Jç¶È–ó»7öy¹®˜Ö|°pÊɱØê€ÃÖ"g²Nå„!eŒà¦Ã6tu[b³.#lûɾ.ŸÎ’ Ø1!ì‡ï|ý£»#æÜ°úÝŠæñæý#+äÍ%ãÇo¿õbu~¶[¤ÓÄÎÕ®öî9ȉíÜk_—í&KmGÄtÏWè9PêêêUrõž«=Àñ,yO}R¥ztê‘*5,u6óe!}åŽ¼ÔæO u‚Mý{–:±ÎÔ~‹Õ¢Usk¦Éä^Æ—S¡¹³ßsûyN;CëÞ%`ìWê‰\":¹ ‰a†J’˜plF 3I¤’FrH6h©”núÕ~ѲQ©=~UT« ÜòjÒa¾ŒfNéûÖÌ\ÃÕò+\á¥Ö{UJé÷&Ê“Âi‡K;|ɶ´ãÛ[¼(ƒîÜŸJüê½»c3Œçì¢ôyz­JQÏü»àþÖâ®À)¡»ÁT&óÛ+'.‹¥KªΛCÞ”Bëõ O#•CÔÒæF_Ùƒ­Hò «OJHhGs|Ìd^=‚%c3ÍÊÑë©®VòÝM7«üêê_ƒÿ.gXÎ,hÎL©eÕ}fê?߸›PÜZdèˆî’‘]_ìdì~»6Á2›8¢áÃïªaSy×v‡í1íܳ›×òÛô>X.ì(™½Âj.ßøs/çªâ‡>î]y “evQvææ‡Ø—óà³ý¿6Áßj¦t|[½nɼ0§eÞßß߬?m­l†k>aÀ`û«ƒ3Ä^w ¶¦üÍ-aWêg5M‡²àµûô­ð3Ÿ>¼÷÷?ËUx¸“™–­¨= 4¶Ï)ÀаP##`á3 aM- 7XFƯ¢dµ¢}Ô‹,1§[µ–‰ >¤÷&{÷ËÇ üþÙ“Åd4Ÿ¥º*©-–Su: z›Ln‹bË»hÿz%K ˜8DüÙ\;R¾-Õ@7ÁŸ 7ؽmPX$gé,°q…)ËáÜcgGʯ,¢ue{ì®{µ"p²§õ\ËLçNÕÒñ´ò›à§efñh6K3WᲞû•ƒ”Y,->ÊR=rZV‹_÷¨¸l™›««µ¤šÛtjG.ÊØ»‘RÎPsá¦áZÛ'òdx¶y‘Ãh–!Zbi Y†,à®C!„ëŠæ¡5XG‘‹XDuuyÈ]/Ü:6¹¸‘ÏîfÝe OíxO‘BwÚÖwuï| íz6F¨÷BPïL•‡_ð~Kw]ÏB„T¾ð·N÷â•Á}>½óÄŽy¨ #*K-¡àZaË­€‘ÔÔ¯hàèÒ]zGÄ‹ ß„~’5—ž ´kÄxÛ£7ÆŠ‡üÀÌÄѧw‘@oôéík>úô.ÊÍ^”¨€á‡P²ÐýG#¡ g±A:6‚ià Q?wÞÏ#ðX0·{¿4‡çl#Õ„o¤šˆ¶T“-,W¾b#˜˜ƒä/^yWûÁ¹²ëˆçF<7Z^ù@ªibÿ\^ƒ ·Õå›õ?~‚´f‘á0áKrõ Óˆ†C¤)‡Â¥!kªBLt 5 ±_Ý Ÿ}[p±Èq'r¼D$H)Å]¨z!ÀhCô ‚iªþ!aVàSGgÀŒ½—Æ(€ôÇ&õŽønWЩ}²0Àåùáä©jýØ×vº\x6vb€UIm¿ö“Ìø­“8î2ôâ^wi>œ’Fc¤­†^É3¯è\ÕL§žNãºa§ÍÚìã³[£qµ(, ‘Ú³8k³u§›³³£ÏÚÙ{©1 ÝnÜ/Py6gPͪí4dÿTÕäªìöò^-­Ü?—ÿi«ëå¾Ò®Ý''1ž¥Ó–¦¿¥sƒ*fJ{»2èq¸NXyéGC°­¤Øöš‡Ñ9G„Û>1 ¥&RÌbB§¡ý‰Y£žIÂ) | êŒA3°³ë%(äÉСŒõagïˆëŒÜì—¶ê!BpÝÐ=&ªÓ‹™=†wF^¶·qBmù-#☾ÛÈÈô~½A ,ô‚A!êNx¢sU?q(ÕŒªˆ“ðÿÙ»²æ8n$ý®_ÑOŽšÂ}ÄDlx,y5Ž•ÆÚ‘×ã}bà*ª—}¹«)‰óë¨>XÕ'PM6‹f,µ¨ Uùeæ‡/™% (£Rp‘´áe•Â;e÷”6%ÞÛÕ;Z˜\ŠÀ§ÔkjðYbê9g§Ž³ØÎTvtR h˜°[ Ž1V8êT@A 3‡-sØÎÑ0ºQp¤¢:F¥LDïD;À`ËåÆÇ§žÐ(ëôˆÍßå|]ÇòuˆKq/wÊÝ„vK¤<~ÇŸÜM(ê‚»”ÜÍÝ„ÆänB¹›P§Ë¹›Pî&ÔA.ι”0 J!Ç„¡ )‚œâˆhÌUA¬´q-3'“qÎ(ù¦|SÒt=†lœ¬Èðر}€?A.,sqž^P—¹8ûí2çeÎF¿A†h¡)bÖx'Ë©-€†vŒ!K82œ#©@Ar]&×e˜}Ãb¢ ãD<8û; ‡¤B†ruNæÜtŠsƒ`'tï©fR4.š”RM É'×lrÍ&×l¤fs.¥àíêJÛ± #WåôOƒžöt§6J-‡µzF{k)Ϫ·¿Òò$Ù~¹òò´*/þà#Uþyb‹6B—+ÔóÇ5 •fŽk'¡(®¨QX:i%&TkE !qvßûØwþÕ…ÿÕûY•·ýù¤ÿƯ“ÁÕÍÌU!ëNf_}ÄêCèݾýû›½OIùÛÅÝZDàÃúÝò€¦qÀbë€/š¡·?Ìàjì£wa/qq5Л¿êMªÃû0ñöU5öU°R= Ãá‹ñ"Pª&2jÜ«æ­*%U€ß›½5{#åÃʱ Uåcnfã‰?ö8ؾ¸ú`cyÑ é†êž¬Ò >j¿šùˆpµ‡¹«ÀñÏáŠü‰L¾–/Ö‡¨ìÂýð/>f y k+DUVg?:¦®fªÌ«Ó}±¾o¶ç!…lœŸ·â·›ú¿«ž _2Â+óET^ž‹«‡SÞL§“™HËö0Õ‰Ú[ÿçêú†þaùÓ ¿ÿô믿}¬JIËûùBO&s}†ûgåµGšåúHR”ÿšýèOüÚù°þ¶ ©†‹›ëKRléõòM>’±à„bÐÌX`ÀD½é܆8 67 a ¬',üŸz0_úÖ-O10÷iß*¾Ï¶uZÍæ“‡íZ'€ØÞÉ`ßoôøÉçþ-aS@Kÿ¦ — ÃA!A€ƒ]AÔ‚iA© VÆ%ž³Ëþ-û·ãþðMÿFC{ý˜nØ H©« ÄÙ1ÿöIlù·¼M")¿œ”Œ‡»|aT2>DqV¹à_Ždmç½+¾ÛsÜG*ü©¦¬*…_Eè£ërxü„uNoï´êú–„êöfʼ+{'¯W§3wua¤í–ŸÇCI»ZpØ÷®¹žÙÿíým¹ÀS¯?Ý|ú¹ð—õÕ{zäLJ‘w¯åÚsÛÏf_0u¦½™Ìuîïð•ÖR„; ;E¥±xZR”K.µØ& eÐYC¤†’c $˜èB ) “©Hå@êx¢Ò­D!ÚŸ(DB"Ú¤6 ?JÖ)ê$ãúZoÅß+¯I«›YW)˜©Hå@ªCÔ#ñ„:Í0Ê‘PŽ„!JÙœÚ2 Bs€$1Èq’[ 4„Î1B4ÆG*Lå8(ÇA9ºw„A1–Í8 Ñ,(-*LÇ÷ênùïskn+ÊĽFA`A£ å(¨KQP.'årÒ¦Y¢v›u ˆšz¯í?Eýj—ʉÔÜ~úï÷O£õ~bæÚ«ÿ5póÒõ~wc7R½¿ çýZýò£ŸÁÜL=*ø÷/Wó¿>àêê‚ñApÍ%"˜³:¸æ‚úÇp {”~5¶Oû9ê%„8‡‘u%i[_‚ýjõÃJ¥lýòÓ‡ÞÇíÿÚ{¿ø©+ûç‘ S@ötrÝRÝvy/kwñê ˜ÖiÌü²z²Ò7õ…° rïûÀÜè^:Ùß7gß:ÿ¢Y76ƒ½H '"©åõí½²ŒVŸ¥tÏã‰v.ß§E¢,R<(|ß™(Î1”Æ«i‚„9.–VSÁ$²”é¼S-´\a4Œl)ŸQP21²‰‚ ûQÀh£‡“w–õ#¤øXcΕ€Ì> ”ηxFXÈQÔ$ïE˺d8”áÐk?ÕõŒmì“p*kÔ %‡G@C• ÒLq" ¨„Xj&t¡0ǘ!…w·ä¢@Ðßz…*ç¯z¥37A/TM‹¡û6ÐC× ~(¾zþq‰Ô`Tƒµó³õÔpîc¥è~ Uæ¯þ‹;¼í{‡eýqÇ6&”ǯfjt û”PR•+¢)¹"È$ಹµq‚ ®·0gpLŽˆíÕ3F9WÔ½\‘ðhY¶CIåh>,Ë<TbŽ'•*Ó©™¹HÓ¹‰˜´æ`‚N\dÝ*_ƒ@ÿ!s³ÔAƒaú ù0õ‚bSÇßAÙ»z‹?fÊF—×ãª0~`VFÜ…ºÓÊýêëuŠyÂÙÏÝ·yÊÙ—Ÿû)æÁM&ÉFúOS¤ipçᣇú @9lìæ¦¸ê@ìšqÒ÷£TåE£\,“˜óaSPËŽ”‘çG¹eÞãÈ»oƒÑö‘wbŽé*SµƒdµÍf 7=BõôÀœË£ªQ …ùPõ‘›eH•q“˜*cO‡xKÓ×ïyóó?>ýaùÛûO—ñÖÊE" õäflÜ…).¬+ÔÍp1Æø«ŒÚ'âZ·]n‚¥FˆWnìfa¹Èg\.ò‰ö~eãÎai™pKFêÚyëòbrg^}v£N¦J–ÃËÕê ïÙÅ`12ü·¿ÌÜEš‡ïnø—˜û¹²_$5#øo—º½ô+s6™ß›/¶óD؆ÏÄåT•å×(ëPó+'aÏý+]†Úy„í—Ál~spÖê«V}Œì1nÁõðwªÊ„T‹ÆVS,f»ˆ43‡VšÎÁeâÌ›q8íAØuÀÐûÁ×+tŒƒ;º^ž\XNGÕ¤'á%ð‡1ôk.Êì°~öÚÎÎ&‡D±×v‡ïóÚìz`®cìü»i·¨Ý0Tö^›ýyãn\Œay3=®ìýçèÏi‘Î>f»lÂ;×/ã£÷fa¸ãØAq ÿ½ò¨îQyNH‚ #Z 5ז„æLYkè©<§‹k½?²ÓƄϣ–׆ñD‚M“ñDY“ñ„Žì¨Ü`<Ý­ËL{ê 퉴Uí¬joWíhOwk"sŸvO’¹O‘ÙÐópŸN£Mÿ #RøR™¤tªôGkã˜Ñ$’Qÿ'€0ä:Dý§’X@ä0 …ìJŸYJ…lÙb)÷"È¼ÉæfȚK qÈ8;ŒoÝÝ·ýqªfÄ34³Áؤwt(ŽR[ý¼ÌQzÞE ÌQÚ¹ê3G)s”2G)s”åtó³£ÄìwŸgb÷ZËņ¤MÓšP¬B²…’È9@,{ÐxÐtöo𠂇­<èxˉfîoG<(aÙƒ¸¾ìA¿zj)Å@ˆ4#( #!ŠpŠ,"–AŽ™ÿ(²ÿì†ÿLå˜ÿÉN÷Ÿ ‚é–÷Ì4ÓŽxO²÷;ïyx‹é9r¸…u‚C€5d sû:¬7„!¬•ƒ–äý¥ÌÑðV_!$}…˜<²ÿ¢ž Ý½¹4gi;’¥Å –‚±ý¥y[iÞVz—ÝÁCíh‘‹ § ûL3–9:ÀjJ 59l)v !À ­t)W ­µÌt2Ü'Þ·5eï!´Þ$xbýÝh&ü2÷"•‘¡L†2Êd(ó°Jç"øøÎ2. 4Îae)¸Öˆ*YåŒ1#µ2ž€#€ÁFGŠ%iT2ÓÊØ d@ÇH‚¡¶ÝŸÛ©eÄêÕe3’Æ,ô3RÄ™6v*¶ÚRj{ïb›Ñw›[Œ^ífl14Y¢êêËò‡-³üÆ^ó,¿±X–ßÈòwwôþå7ΤÀ¸¥zÑzä:a,i=6edS#ᯥ1RÆ,e,ÒG´z Œ„ƒ6¤0Æ­•.Z i§ºRÉÈ 4nô9Aè†nF»Q­–ÅìFÂQëúÝ‚]0 qd!ކYˆ# qd!Ž,ıkPâ8h–…8²Ç™ØO£ÛÇ$>IQ ‰…–@ ‘$V$yFœqŽ .$TèDâÓ‡Ûûã<ÝÍõlª‚Ét'o²Ewbt§”­MÕ"ÌL§2ø)¤íê±Æ3*óLrÚ=I&9ÅeY»Crª–ó¢@S%¦"˜K[C~hþx éC±«¾?ÒÔ­”Qÿj~½ ýø¯g,øì®—k]J÷(úäHnxQ8˘ÿ¯eJ9b87ŒHW˜EMœÙÿªO¿¡^¿÷n~Ý{7SÓÏ!üìýåz¿ŒçnV¨7ãÐϯc×›½ÒùKô“„r¹w÷ËIÊžúâ}š d¬°Í¼:ð«žV:å§y÷ÛÆÖ‹ÀªúÃC!ï2¿ö>Ý–swˆHõOº3;é½™Ýü»úáÃÀ|VnØûà\ÈÁ<Lrã†ñëêBúþôá%Aˆ×ñ’€Hq/AÂ)h²»ÝàBat2ù5ùz½hûË…×÷KnåëcÑÒûwß÷¾ø zþñ Õ<„KçEK‹åPÝñ¨Íl7Æ ÆƒDT´ \ƒ.È6ÿ) Bhÿ¬¾­vq!WÓ7/_³š_£¨éü—ø[U"Œµþ÷íte»XgÞr>™ Ë(ã@4ÙØÊþîçúWñ¨yüiÞÞ ¢Îò~aÅã»$1_KÿÝ: XÃ4œ”kè(À†8aŒ#ÊZÍ¥&Nb  GØJq”[ú5|a«7²÷Ëh:tA¥dñaóæ_ŸúÔØß¿ðk´sŠžq¿·ùÛX•½¨òó ¨Âs?¤¼Wÿ18ºá…T!>¯¬Wv0êýÓ}¹U>¦«| ?]Ì–?íóÖe·×“/Õ~¹(¿4G½íáþ›¡º9 &Äóúý@ÏÔÌ‘¯ßTüõ7/_Æxºrì†ÃÔèý”k÷íÂ<²iþßÑ^mÓ<$bŽ_¸'’X]lw{îîqYe—NeÅ%l3K©‡ƒQ¿,<¼‰Å-£aÆ™ªQìœÆÞRpÃSNxœ…Û1Ñådèæ-_ö÷¿í[A‹ƒnÍþP >ÊrRi‚CÒ* °– H,PDa† £*⺠g”õlQ–ðp{eN0¨£, ¸ˆÙ^¾^ôO`-ÓõÕü´ #´å&«õ †¥"³Á‡qÉÓ…\¹ŠÒ¡*J›Â˹Úo¶ê¥ù@m1§sÿW6¶ßbÍ:­§ã®1÷»úX\ÖÊVÑC¼£\Ž»\³à"gñCLëÂ.âä§ÖÇRrû4×­à X„ ˆ•FsP0i76®Í@.uµ@†ˆ$€70®ìÔå ý¤à˜Æ@…qwWÈRQîwR"ûƒõÄ“ô„lÙS :¥Ë›AL±È›]úF„s»Eþ"cÆúŽìB¿{?e÷ïÊhm hÏ‚*¿¡‡w:XÏÔúýÁZ²«Ál’Ö9ý¸á•1—±½³ïlx÷æÍ%ŽzpõA ÏûÊ^÷¿ÁEr$nñù—ÓÁ7}S¤ òÿK1yW2t)#&úÿœ™§ŒX`ÿ¤©÷jù¢ŽÒ_Ô©÷A“„oFe_-í„AÑ¡I9·æåËÈ«­ÿðæ?þöÓ/—qúÀê^ýñÇeÜg`ÏÈ s«÷ –coc›Íߢ‘DW:?ÍdÔË›A¤eàÉT‡GÇNàaãËÎÄ{i2rí#>%,æ\`Á [h‡µÁNPÀ‚@b…s’爯cØŠø©?øˆŠÍˆÏGö„ò†h.À”‘zýºr»ã˜ti¹'÷}uƒôêÆƒE}–Œ‘‡Žúb5rø×¥ð/]Rèq4ˆÎ¤´ÆTÔ§=µ´ŠÓâÇnÄ])‡ÝÀRF×#±”q!YÊÐØ,eèF–4´õ¥¾W£Þ«f —"´Ñ¥HúÌS—{= j7ªìµ_ùN „~'Ï!㧸M–?ªE„)£–¡aÊeŒ˜0¤,vC™©3QcB#¸vÑ1Æ)('T¡ ^0-€fBSeî`ˆBå±[!£x#d„þah!V%‡œÕ•È%GÿÏÞµ-7Ž#Ùwcv»cÊ n±/ÛÝÕ3S]³ÛU³O ÚZëâ¥v¹¾~^$R¾0AÛ%óa¦KV&)’ p'ó¤èª¢óMãÞÿ6‹;º­¢^§v0;E!H+´6œâ¸A<¢ âÈ7™#Õ7R}#Õ7R}#Õ7R}Ûê†gJŸô­}RÔÆ±$VYËRKS*•Il+‚”t»#Å„e$kŸÞxíCœzmºfû)L8ãÍîS˜Æ œòDEtÇ÷&JŸv÷dOoã¨÷·q Ý L ÅÍ祬l‡a~Ûi2 ¨v¶•:òÁ šoîܼ2‡Õ3¯Ó;a`öËîæ¿îU·ôÒ¤³çKžÖk¸¹ð…ž<àÐa’pÒà6p'$ð‰dzºõˉÜABÃÈ1;HdìlñÌäµþÁ ce¬¹¶‰ÑI[+µå1"‰µDX+ zï®Ç­°Ëráü­€à¾7ÿtëÐbG¦yÜCšÛ+µŠîëH;lâ ÊíduU§ô§*š¯gn t¶gn½\ª™GHÎI-­UÙzZ ©b™šÌ/}Ú”ýºrkˆÿPéD€‘(ôÙÚQ!ŠŸPÒå(!¨-òF&Eá„pÒÕVÇg·5Æus©Lo«íO‹›»åäòjuP€äÆçÚÝ©€t¹XäÖry7”D‰ ´/LZ]}qó'”/p–#ðÙ'ðÔJ{¬ g©˜©=`ôAPîÕ£ M$ç(µZªDÅi‚-K¤117„$ Õö‡2òàÖ¹•5Qc¶Š~žÿ1Y.æÅ¿ý‚WÏY°øÃû_~öÁ}º.ÂUNød{2Ó8™}ðdgÜG«Vë¥Ï4fëéjr~[f‘¯ÜªY3Y9ób/¾½™ºUÚ}ÿ®:Ä™^LËÉ7·8¿+x?kG‹Õ•ûE«+÷×Üý9nítêÿ«j,_ù¿T§òìÊý^·Úº…õDV÷а¡Ü«_µâ4æÑfäƒ&1‘WíØ‡›žû8ö5~8ALyܳò¹ñ4iÝ®~öêº8.W5ý»Z·ˆ\ÿfW­¾É³Wߣ›^ÆÕ90Üð“]µ†šÉòOe·èrí~´™´ÿú/e¦Îy±««Z×Û§:P7®Ü4õ“P€Ïµ½ 9EÑ|ýqóú!Ü¿ÒýC¥C$PšfÚPœ œ±XʼnYŒm,-â$±ˆ2Mp¬D0Aã†_Q!A•§‡Aó’Œ)üÍ»¨ÊwwÈĽ U¡†™!L«%¤Ä+“ül‘¹¹;~£–Îvµˆ>é©8véþÿ7w3gëPЩ?ÔEýoÝÈ&>ž1ø>èöÖ§F7¾ð•ÌB¯·„?Ûjíà”›àrg¢§kS ¶Â¶Þ—-ôÙwÿôñ—ïý·<¿1Yôݯïÿú}<=ô!+b-·ÊÁ:÷³+èà×Ò]³›KV Ö¹¿v3ÉW>“Ú¡2ï8·ÅõžÕŽÍd²ú<'Ç|Çè`K3ÂðŽøŒ ”Ƭ•‡#„íqG*N#ÞÒ?Ô2 êø#,ˆ!‰zªëI'¹›Vºm¾¤¹1)ÀN/ŒÕù=‡Û^]Ãm'ùÇÃþïn{½„Û®n!¶ù+¿&å`Ã/+›Cž˜-¹ùÕÒZ€u¶žë¢ç!ÀöJå²@Fƒ¹7¿Cì«Üý`éç¢)䂦¹{2€aHïV¶x²÷š 9íK¾Ð×rQùïÓÉʈeh,þ%_-× ·Ú%­n&Ó[«®Ýôßm©–Ku0[›Ébx;4U¹ž~cú 01è_'ú2‚ôo«¥Cþ`êÖ¸+€Ù­ºº`–ƾ¿i·™ÃÖÖC€%$¡Ò†W¦ç+€Ùåðp'3·øBF{?–Àù)<‹®Ø³ÒÅîÀž¶Ãû€ë**—ºŒ„\*‡³–y¿‡§s 8¨'òÝ-Œ1·Ÿ.0 Àò2Ì.»ír;”üæÖ¬VKÈ`ËïòéðãܘœM€{C×ó‰_ƒüv¹Ûøh~:ÒõZñµ½´ãjwô%£oî—ë+¤>|àâ=”$ö¦h?$ü¶ ‡¸T¨4H6¶aÀ»‚ñ…¼Ý&=O $0…ê{Ôê’!?|×2t ¼é—"æ·z¼¢\Å,ü-뵃#¹ßW_P€y±‚Œ³Ú²wW°0ëý4{8¿²¯#{ùÊ/'²Å'ºÝC^î„¡s@-¶.Ó ù rôå°fóóù¢9Gâ® ¬ŽÚ=ÁÊGÿ¸–Çå<îÃ…©̅ίž Äî™?m]ØÑÖÞìæÎ,t§M]a˜Õí°Ëg«sqswhJïü%:+ô&öTÌã8ÓDrkµŽ³„êŒè˜b™R)ABqE2 "ö>]œ^t^ÓbŸ®Ãå17ŒZ£|ëÓõ…?V][õùCäcדU™Iìn´ÍËœ¥OzêL¯ìÙ¿ý¾^¬þã«»ëå¿j¢Ç§ûøcížéDˆ¯àò+–Ÿ—Üj³'m²^‰8¬«†<•¤£.ÄBˆÒ–$œÿ*ÒF;SyÊ_íìŠ7é‹[ÂΨtR·3V_š…—„=,Ù9Ôüª1¾ª8ûñ—O8  Îå_õ,S;Ls‰}TÄõ­nëY›æ\Wz* ¿Ÿë0—í3`3ì³&Ìáäú»ƒîš4‰ 6X›ÙDe‚fwŸÓ”QFµ´Dè8ÖýP#È}ü%ç:Ù¯7¾–[erÿCèwµ±ô'ªX©è·É\Û³_«7íë»È¡awŸVK xMèúˆ>lYìÞеGíê`ôã‘ÛÍ÷Ü ŒE«MÛ±hu,Z8ŒE«OZŽE«šE«»FcÑêX´ú¤ÝX´úˆqHÑj‰Ò‡]ºz¡Ê±®3Ði¬ë„ÙŽuùŒušuýê:ÇòÌ'¼Pž9 1Í}5úŠÑš—ÔÔºÁñ€]Zd¸ž­f}Àu9ÛàÜeÃA]6DØ¡d|Àæõ¶¯9 ¨Ã– {„½àmzêõ- ˜Œ*§o1Éþ•UNO^&cO™÷Ø&¸ç–HêåÔïö¶i¨€3oø¨ŸŠ; ÷èuq}€ïòO®³Ð÷böŒ÷¢Å3œsC#õpéרüØ:ªïrE~MÒ(Ä­Á¸m¹¡>>½îé· ó½.ÃTp@‡$ú ™/__OÀb‰É6†J!XŒ³"IÌ(œg ã©°¶Ç#9r‡©ŠéãRÎ^Ȥ­m*%ˆ5)H)1ê”LpoäôcE§8÷Ø£*j—|ºÚIRÒÊ™Òéª3„Z¾ ]±S³¾±]«ü¥ÖçúÏî²r;Ð9/g7 »r× 5-^¾| 2¯6 ÛれKÀ2]]ƒÌ¾ºùáü+B°ßú¢Á•¡$,=&ž8¡‚½:\ ™tS­Î¸J8‘’)Ê5Æ:!ÂXDS7k£”ŒÒ‰{XIÈ*ˆ'hGàÓ8n |†q‡t¢f'ú¯Þ’pÐpꄱDøÞÒ¨šÛƒŽb‰'Gì·deÀ¦ãO®~D(q/PÅZ‰$Î’¦YÂ2,c\j£„¤<¶Ç–Z÷õ¨”xL;ÿ0ÌÃê‘-ÌÃ%Ã^Az‹yâ„Æ˜§-•8BžÃ©$âQ%ñÃŽèìäÐÙ¨’øJ ñàxo<|‘™s8‚‡EXòPÚà˜YË‘(Å¢™bÌ!\Š'ÄP”LÁ† âýP²ZQ1iŒ×/DÝGŸÑz¹ý耧¤*pó±ä©Bâx•çCÜÞ¿ç >pYÐu©ç­ °¦€ÆgæÎÝð‰vÏ]óîï…¿¿åo¯Ýf©5U·p€{YŸÒSpŸ®Šð_9*ôb¾R7F% )`hþ.R‰¬&:š7ã®dÍUÉÑÅ}IwîKÅß½«~¼ÿfµ½öæE.–gå/mx»_¬nnRTe†zõ{Õ4_Ô dÞ<^ƒ¼½šè«èÖ.mMQ–6g›ÃߊÔÒ'wàÙ1ˆÄ75„k«“3Dx»^‘ò$‘R6ë©d1eÉÓÛ††Àz1BNEc½y84uB9»O6‚·õ=&°½Ý!Œ |ˆYÕ÷S—óʨ:w c6¹„f_=h>Ît¨ŒáÌjN³Ô&1#©Ê$ Îã ÅÆ2‘h™¨D”éୈįñ-Ê”Ç;”©@”iì0¦ÇŒN Ó ìÙÍæFÚôb€“¤M;9ôшÐ~HPÌLªb’PŸ••ƉIu†%ISM§JÄLº)Ö.n !¡ã …’È$¦„!¶¢R,Z!!!˜ä{1¡£&“»Ïå}ŬÆpÐÇpБ…ƒŒ-†ÉtƼì'ÆF-„Ò©àŒcŠK´D†*#SC`¡j xï.È-OËr½ù­XaÁpëŸÂ-ÖydšÉ}DçÖç ÝUUrn…/ѪSz”£¢ùÚ¡O²³6•‰kjYä£eëiø¸o±Ny¤7Š+(G·£K˜$LФ*pB8Á©¥±ðE?Ïÿ˜,óâß>W·^þ`píÃû_~.•ý>•RÙQªò"7es²FJ°[¬:ÙÅÙ÷ѪÕz鬣‚‡;¿¸…û6ZÙ¯ÎÏLVμ( /¾½qàní¾W'ðêÅt±œ|›Ì/ËìªÄæÕ•û«ÏXΣ[;úÿn„ó+ÿ—êTÎïL¹ßëЛj'‚C… åïÀEÙÎú¥„ñ.ÀØÈ^ñïÑ©h¿"1¦L>/ã×?ÏcÂfcÂï &ü¥ò¾:Ôðs]µ„šÉòOe«ørÝ~´“¼ÿú/e:îù¶<æ¢Ð¦9]¹Yhêg¢Ÿk{rŠ™šÌŸ0¯Âý+ÄÍž"Z‹ŒRÄÕ"5’Z!xl Ë2B4eYJ$‰"7G…\Bã\”#”_Bäf·\©-ss䮣®V¢Dç´b•n† ,†•¬Ò祕@TR„“ÌĆ› cÁ2#l9eIœŒ‰LIð³Ø£¿½ÿñã‹G~µ,èo±Näåçºê?>ŸMf7eŠu¹Tý BÉí¢ÏóÉר}ˆÓXbƒ»AE{…Eîa7×WŒ»:œ6â~$yQËñ·&p˜ªwC÷K7Iš®tÛ2õ¶îzãqÝ= )̧ ITf“àƶôÌ ‚\ù1‹ËÜ{¯‡ƒ~ãdö£ò—(f˜”‰!\e2ÍD¢S«…•ˆÐD ’b’eØ`i$eÞ()Ü€rIéK2M¹Á]Væ¨ÅY¿{}æ‘ ™‘ ™ÀHƒG2KΞ$‰ŽSlEŒ ÎpF3Ddl­J%Ã:5£¼Ë(ï2($ûœÄˆ2Ü‚!μ%ýÌ…ƒl¸CॉƞĆ;fü…üãë)÷¼•véJˆ®]:§B.@ÛB¿h»•m:j-@ÛB¤h[h³tÚ’,Vµ ̰`é²në®tY7åVºl·*+–•¸J§ÝFS¥Ër#¥ÒiX+¨tÞNérØè¥tndR: 7Es–9@E}«…ÒeØ@é2Ý*ŸtXÖ‚']f“ƼI—å7Àİ3é2lh˜t™Vú]f-Å’.㪺ì¡OÒe !2 `xÕŠ%]ÌÉðp'3·ìBFASÈäÅ£×»²%æ°§]‰”tX•Ú$F I’.Ë–IW£ éÚuok;-7r#]–—édvÙm·Q#é²+EHº¬*í‘.³Zr¤Ãn«4ÒezCÛº"Æß@+ðÓa®aè‡ôTƒjwô%Co ‰”AQ²}X\¼'ê·Çyút¯QÌ=Xé{ò/—„KˆmØhë¼t;lä]¦¥F Ø0è‡ïú@†n@bÀ®àK·Ç ø–ÎÂßÒYø[ØX§–s[†å?ì)Íâ!GÈÝzÐ2ßCã¶L·yS`Ý~é¶Þh·˜=o£/‡”ìRDç‹r8ä 8ˆ».°:j#‚s(ýýK|àZ<•Ó¸¦":¿z‚Öºgþ´uaSM;{˜…õC€5Møö®d»‘Ëîý<½õ¡„yØÙ•v»²ËCg î•F‰•œÌ S­úú‚”Ä 8AŠ"),|2“Æ‹ˆwqïÅCêÖ ;ÚUƒéØ^ÞZ–ÛRûçÖm WŒj¯‘ƒžq ÖÚa¬LPå-£^èRøçD¥*A0Èqk€%j U°xŒg™ŠàèßÞ*R-ùµ_Vý9ç•ÜçoÝ«îOZòKiáN.ÄP^v)½Øê>¿ºéýhòå5Œ‰¹óõ×ñ°ûÅ®5–ç¬bW|"BfÆ|ѳ`™EØ ÑŒe"É8ñ„C¤©äž&=×FymÀž2e’ Úßš·¹¼ifíóŽ0«6o7Û¥¶ÕÃ׆óꡚºp{õPŸÏÍ-åqÑɨßV£á<ì›ðÛp!åu¢é»Ž\,v—AßÊ)¬Š ê· ¹¿ºþ`6Þ,¥j$wWÅ¿~·ÈÕ‡ÇqÛ› HÐ@l‚Lƶø¼§xeOyD9kì)ÜŽØë×7óîó8 Å-–´ÿôéçÎW½h}U;óŽ‹ã>×£åú§|¼þÛ?¦ ·Ç— ÚVzpMÏÄ…×½å¶R°Ÿ„×-zGžø²xóð›ExVºÍCì%¼Úþm<°{ù¸ò¯"ù&ߎ;RµÆð¼ÌhR“¤$ã”!lÖË úsÚdWu¯¦Ö|ûmn—,G}øãïÿòñæÌ^ޝûõ?nÒw/x]4ø†¨-~Œ7î3Ÿîvß±a!uœë€Û”žyh…$.¤iG¼†"À9tZ•Æ FlõíÕLoØU~eŸøqvÿg¤ôV®z úû{o0êüu䆽Ûü…6ñïo‡þ„¤«è ¶ýAÆaýa—MåR¶ùÕ†òM/Ê*vɵ™¿1æ[ÏÝ%¿QßêQ6iwü×Xn°þ{zЄ½.F]l Øl"MŽ–€¹‡œò „©”Âj„¹CÌé‰Ñ’2¬Å{OÀgC™Ér’&€5)F¥\.IĘ)ë°6Œî3ÏšùLÉ)§JZê]ënKž$Ʀ0÷ÆÓ%ç5wxùéüÕ­eâ$‡/É¡I²xŠÖ¤H{6佂°âÕÑpD:.°‚œl4ÃHh§ZI(‰Hs«Ò Cvv8 I›ä…$õ!žp˜¤Q ËÆa[d«Å–¢ŽÅ8; jUĪ"VXV`Ù À²­êT²Û{OL¸—BHuK°ØÀh$LQ¡¥ ´rLŒÉÞ§8%VÄ),)¥ñPÂýÄ©h$OÕ¦2}åç,MÕX=¨ÓyÆšT¤©“M›~w°"ÇJÀÔrïp{í°vš‡_8pÜ;á&b묑ï=Ÿ)"XNÒÄ”’•X#&–ý¼€ ž°+9¯Ô™OŠœr¾d°"'˜ª )RH‘BŠ<þú–¤È/°bR`§VÆ:)`=˜æ„Φ|dçÂbd.°"\H´²G(’R¢Æ¢x‰¤`i{„î†emÕrБâ@†Á0ýX2>‡…/Þ:–Þ°7½iC §Cc¸§+øéÇç+ØqG)~x֨}Ê]òtÔµ\k ìµÍˆ´zVua÷Ï)ÎZŸ×Ú³=ßÙ¶ ؾôFÙ!õóŠ^e¥Ü‘awg¹¤Ö|œ^Ï!Ù•½^>qË™ E­Fãéu0¸þê­Ä½]«4 ,ÚcdÈBI¬EšréµÁ4R­ž#Ì)uˆ1VPþ™ üL­’Pà*ʇ˜ðåeP0Á[J–…q=€Ï$}S€¿F(p¾Àù&œ??>÷X•´W ý+Íí^ÒL’ú¶g¡õÂ}~Øå¹ÇBâÊ Í3ZJCÒ; ïg„z (|û… ä¬éä‚°e²ËærAø¦Å¹‰?GÛû@yY›»7¾.ks‹ß¡ø.Äï° Ñô½c€ØZÇ£Œ1ËDZƒ¸vé´Âÿ„½=Ë4= )±l€0)Z6¡ BQ+¿Ã&VLËAGw¡†Ç}2H¬¥y¡@² ƒd¥ˆl‘ÆO¡½uÕ¤u *-,ó’{o´2ÎsJ¦ŒjÅBVÑÍÎE©Î+ùJÀ‘Q[^!$“¢±Dˆ‰€Ôwà³M•_KÉ”“Áe(<×ÃTz-ZuÊU­ºhÕE«.Zõyò–÷¤Uo-—sDª”ËÃ¥dÌ!¦‚)ç=RZ‚•TQã©|÷U ßeÅœLÚÐ~s6/2[[4çìX×½êæœ0&uÁù¥lÎI¢à÷F‡…Wâ(ÙW†—Ê!Ì5tÆJ(ÌXν¥ØÅB`¯ŒzïÙ÷l2f&ÆCFÍ"œQ@ä²_ŒQŽvÆÂxM Âú3I•GbÂV³ÖŽýÇ%yIhµI.Í$·Ì×ìœ>Ç©Qø¢0ÛÞÑòNõ'ÚAœY'…8©qcºß©1ôK9l*{û|¿)÷UðÝÊM¾Æ·h¿é ·üpž3YQ/ a#€•Dð0IFÄr&&À¬`iÎäßo«ó¹¾­ŽÚN¼ÃðyèômjjI;Úæ4ðýPU_Uu×óuïXu5¬ÿý]o8uý«ð˜b2¨[ÿSÙÞ ó»ûú ¾ô†uÀ×øÓÕdñÓš˜BZ©:Ÿ•}ø2úZ‡ØøËU5ÿ¥qØ”³h~õ4˜bóë­¹ˆŠ$iä"&Q£„ùj.„5…8¤Ëº ‚Pî*ݶ˜Á­Žûn=p»¸Õ¤í/Ÿèà =õFihþÝŽó¶”LTá[¯fýiîdí¹×ž»ëÓ3ˆ…l9? o_}A7¦7¸™Ó¹ëéçñqhÞ¨ðú¶ :œöüÃ^×0Vƒ=.a>ÛÅN]5ÍŠ\}^ÎD7f‚CL…CâMœF¿&ÃÛßNÜ8±©íyŸsè0Äú³Ôƒ×ìp|ã?_Eý*ÊZÒ Ÿ–›jU1Û£ :õâ1f0îUÞ˜ÜOZ3îÃ/Ÿ>~þïs3ý“‡qÞ±ÔîáÆøZâWòJäœ9@­\³œ­#P‹ˆV77È}MB6Ì-ô.ðÓ÷¿ÜÀœG>ž”¨lö9—ÃZõÌÚ#d½ŸUÕo3jæX½`˜^ZƆÁº8ÀÍ4@Âj<š´Ì‰«=¼K«G(€*ׯ„süJ˜HØ´ÎJ‰i£à9D¤UùYÞÅ®ô†@ŠŒÛá¨ÃÈguìxœ+TJ|K…¯„äŠm%‘»ä}…Úøn¹ÉÞlg)è§npŽ¡ ÛñpŽ•ˆÎÜFm¸zòù;>~(pøVJ³ä€ ÃdS2€²ÒY Œ%Ø ¡¡óNB!H`þTßÊkkÍ«gÙ®6SÔæWW›ŠPº¹¶—àvøAìªl¾¢7Ï_Œ3Uœ×S˜Ÿïzê>%ñ™#Ôrߌ²Õçùc?2®]œôýÔ¢@Ÿ½Ö›šò Št}ÎØðIËx#Õš{lÔΠŒv–CE¸"‚s `Ðä@iFÕú|`_¦j-¢+‹Biø¥©Zc™£ZÃó¬[«§&Q3‚ZJº ý´éœ|²Qç=_ »p«']Û ÝVAm ò ¡ê#Úµ)ýý&xõ‰×'†d! åF]e›‡4V¶y(Û<”mÞs¥]8‚Õ *E¼ãϹâFsî(ˆ)‚,¢cNör¥æÂ™AªLKfÐæª4ÈqcÓ,á;ª.4-U/Š.KU#ðõ¹@ÄJÝ…RwaçÞsÝ…RB¡_J(ìã)x]$|LL:P½~-ÈïKÂ+ùx§T.wàN<Š ô8D1pÒxÉ1#1a³Ö+¯¤²Â´M^ÿ~ç:?ýúÎ/á¾zÃÛÎϽjÚ™gôIÖ¶ ½ùv/Ž5˜ëªþ5¢Ö§}Ô𧪇îtÔŽ‹Þílâ:F`$ CG§á¿x Áâ€ýpÀp¦¡éÏâV 9ý²ƒÐ¨ #7^ÕóiÂõÜOzÓ© .öpز/ÃÿŒî†öÜ­ªÁëâ1wD™TßÍ«µGLùªèõv8«qk5òÓ{5q׋«xüóên:èoµÇ¢ª žP0*äFPK(€ˆ6‹- I¸R.s…RP"ÅŽ lácçÕƒ¼[ïDáOŸ~î|EÑ$Œ´iŒÇ·‹#ô¾ö¦׿ºéýhf>·×?Æ»»^ ñz@¦ Þ/“Ñ0¼‹Ñ¬•‡z×õåP/Â@–å—´Dnü¨F&í™`&;›TƒéøÆ*7ØÙòvåÀQxîÓ0>wÚ'Vü¢(›j厫ÇWF`Œqæn”ÓÞd9õ'ƒœÖƒ/ÑÄ—q×1HÝÉ ™Žf&yªñtë¦õ´()ªþ¨WýÄÖãð½éU¤®™8Æ’†bËØw™„VÉݘ8ÝðkjÓ¤Oá[»GŽàyu†}­YôtçÐZ«í¦Æ×â^­·ç¾ˆyšdlô7úw8—Æè݇JkI­Waª¹íuÃt%#"þ¹%¤N€‹[ý<ûüã|ºpµýÊâ»ÇÓ¹ê|bíÍÀ ¬r¢ Îh®‰¦Ý>haæ.Bµ›ñ}VL•7Vg‡Ä¬”Ó¦æe™ý`úó.º;'¬~¸7ZçE}&üñC« “e{•Q“mNû³Á8ë!ùÞÐæ÷\o7‘…Ëêƒç œ>¸uCÕï©Êå ¢ÞðßÎä<Ô8nê ~Îiê¨ÅÌ,/(ÿÓP‡î‡yQ‹¿›i?'hPõ¦n¬ª¬3U·~ùV<Åä ˆ¡»Ï|cÇjzWå]ÙcHÎ…ý9™ ‡Y¯ÑD·øzOÂtò«k1‚ÞpÓðÕÏ뉥¨œÎ˜ 2Ru7º¿ù3þÿœ{ª†¦EWÔìsŸ2‚fÃên6̹§ÙØd“°àp3"î{Ó»ŒžŽ€iO§®MLrryŒª“ìd5qé=÷äloš–Ãæ|gVXìõÞÐ2ÃF5™›:X£Æ“Þ×üÉz Ÿ‚FÕ4ù+öTÍt$ªõ®+¬ÜÐÆØ¯—ÒÓkžˆ“SǺ½c ai«´0`µB!í vŽ[©ÐXJ^´˜÷¨ÅÔæ †Ã9ßl0"²êÚ–a€¾¢ÅŒYÊæÖëԃܪ×¥Ãh^uB" oéÞ."LaŠSD˜"œ‰ssßYïÃTÄœ"æ1§ˆ9EÌ)bNsŠ˜SÄœaEÌ)bNsŠ˜ÓŒ»D1§š$¯òn¯å-ÆR㉑Ž…¡«€aÈai@ -§h9;µ.q}ù’–ã`YʈÄv”Ž ƒ­³P ŠŽ“ªã¬ -ÛÕÊxS;IÖH¾L4ÝEH‡ì›VZ%ÜO¯»ZÝÛù® ;šÕï[Nù•ñ·'½n3£„Hûä©0’M Šë35œ ‚4¤‚X¥<ÁŽRÊ¢Íw™\(¡+ÅÝ ÃÛm†ÿ ^8¡¯,ÚaÀí®G².½d"¹¨ôr;U.\Àäᄬ¨XŠU XŠU XŠUà\¬Eõß$›Õ¿¨þEõ/ªQý‹ê_Tÿ¢úÕ¿¨þ9QEõ/ªÿ¨þ“™~èÚ‘éNzûÕ„WâŠ]!|$XžDc=‚ÚHè=£QL¥ÇD[ϰ°Dk/¸ÆÂ«$‰æ÷p[ÃðÀUd¥]燑™=톓%Ò<öwx᣶2—l~ÿØ VuƒêÄ.Ü,’üïìKï®7u~QÓpÖÑt´K¦ÿùnè¦}¥ÃœóêßãWUIê§ïkgavŽ9À¼!‡pL!K……Wä(† rH\t‹Åòv7” &ÅòQ6W°\”ÝçQÕeçXȲ±éMx³ÐgÕuŸIB»2w¹HÝ{+Ýv½n ¸åÆKOô¥²ýÃq-$ž~ëy/ž„}]žïèkêªi·šõ"txÓ¬ pXÓði“ÔyJâŽKέ…F!ª±Á\ š–µ¾ÎsVèö©³ßtœíw›Äâàáߟç©!º’ÔDV§Ã^´tzK'¨žØ_°NháÙš/õ®\ÑkðÍh~£ÇË/âíD h¾½êt>N;wªŠ–…‡Žàv†E}”ÐÌ„¡>uÿ7ýö®­»I¿ëWô£“1%Ü/Ù={ró$ÙØÎœ‘³;ó¤ƒ[KQ$—ݲ-ÿúš”Ä›Ø)‘”Œsb[iU¡»4ªêÃW…£6j[¹q˜.á7u{†Å”ðÖÈ¢Qõe]¼RuKApãþ7“›TõQ]…3í^¸P_4=ßÊ'5¶¯'Ïú¹ñKz¥ûîøèèÛ¢}åÛúîè¨Wœ¶êÅé·ãŸÃ…o߇IÛÿv©£ïÞã•髺~]øÉy1´…ñÖÍÿŸ¿mèn÷Y…¿i›úÁ~TãìýzW}îUƒ×þ9ç}× ½I³+üÃw’j|7þágiød½R¸þæ³q“ÑýÕ¿tzõ·f"=éߟúÃ:Ü1üæ5Öa\zÃl‚b¸úóÿh*S¼4¸#“Ç.ÚÅ­xåÛ¯‡Þ/hÍwãÚkìWßóý›âÃq£|_¯ÂV]x…v üùþ·ùŸ¼ÖÀÕÿQüüÇéëâ}x5üä;î2¯~táZxΫá8¼ì×ë9!Ì1ž/þ òÎ/Ÿ=ÔyW*ò|ë…µ1;O‡âü^hox¼y›ø#){'é¿,cEAбòã À|v?P‚ á>ú§rsÚîtÎå’ ú 6 úÓo.'Ô¯Îu~º}Á ó“ã9o¼dôáÁ$õò/“ }&Ó°6)z8Îñ¼¢yV±œ¥$ÂP·°_)Ä1íþþƒèe”äËB²f´ì0¯d˜ZÃ*­#–¡ QKh¼2ý˜Ã€D–öÉœ–-Ý´Ô,uoÇ)_ÈRç’S> )@@§›6WÞg«%'Uí‘Ö3­åY:?/Í` MoR¶p¤ÆuùUi,K!–JÁ‰.±¦€*U §däqAU‘ûõû·óu䶯L·ÜæK²]É. Àtþ¨?¸R°ÙâtˆSDW6ðÇàvŠf†ÁÁ0 Á„mˆ6Ìi&d+·g+·ÃÈÌpÍKΠ–Î2¥•#JJyi E@S§³¡;ð Í:„0xC·X†u•­Ë¡Ú^MÝ6lºl격ۡ©›’ê}tÒAŦÂ1£(–¡Ê8 ’èc:vH#â²ÞL^hJvK·ié¿$û•¨q\Àtb”H²„ñ.D»t9D;œ ÏÄÉfëvH3ʘғ¥]–W¥$J‚$±Ø ˜¿˜-9v X¤5âD+žíÒžâª`—ðövi6¢zÈ4åˆj–I.“p³eÊ–iOÈàêØv,•”Y]RJ0ÆqP (R*,Á¥ZP‹â‚¥|Óî‚(ȼ%âô1NbšÛëZ>†)‡Qû=‡i–U½þ—ÏaZw‡l¬¶JñØa¼!â>|r–ù? Ä ¢ £‡Ž!¤Õ ¢œä±¯)ØbE,"$Fh.ÉÛº¤3n–Òl¾B··N`¾B·€<"_•ʘò½æ2n• ’s×ß!ÛªG)ѽ³à ;ᤨ0ÔŽ$Jà°O¨E"c!Å\©È3%rIÉ\R2—”|ÆSj•.ì%ÈcÔèž©Òõ`‘îãï¯D7ÚÆiÊ%º³ouÔƒ]ÖZM)0B ©J%¸J…“%¦€dÞÁþ*?x+5o¶(àÞ¼Ìñ`,6Î_&ä ŸÕ%ñ†$¸\]2Î\]2‚ABˆf Ä’ø ´€x6ÀWåOíÓ™rˆ;J¼ÛDd‰Œ÷¤Dê’ u© áHXƒã6ÿ3>•ñ©ŒO=kG?iC2Á0œ¯À¨@<,Fwž>c‚Ì"=ýìæŠ›ÏÃa ›¹ùs‡wØr][g*¿uÛ}}­ý7«Uø»[ÚŒÔ¸Ž‘»öbu·œmÝ£.¡Êy!ñºnp}5Y#dÓ-TšAqßó¨7­Ìpð1Ê«‹÷¯l„÷7¸,»…¦ÇÛt Žš›‡szN„ä•… tËÕQ}ìý5%…"¤†æÒEÌLïžx›Z £$k£‚7æ2FªîÏ# ‹0ÝrŸTñº_¢àˆÎXÿ‰0†“:,£}뿵²:š7QzIhA„ÙÙ-°#ÜmèpHg_Ì«ðGFAf’-’Æ2¨…ÕÐÏHƒwD£-·‰)O³¨3µ¦öüljžÿ…ª&R#2ºJÿŠwžÙ1ð2îmt”x „5ñ$b'À¹Ž™“w¢Ió%¦õ§ÉB$æ—ïÿºGhÇú?OÚKITc;4]"U—@m­ æ‹ÏrPeˆwFOã\I ,-rç4š``DI õ÷Kº‹8zZ.B¼¿\ °çJá#UÛŸÏZU‚8s…öXXlS0+W >ìæemm­-ö¸3+§1%à”†Ü ‘Áˆ a,-¥…¥T%W‘Uµr©ÇÇ'ºrݾÔã½Ýz¨Ðc¶[{«óÎÞÜlå:ÝwÈFis¾ÅÎlQ`BbSJ‰×Òh 9“ÜúE²,™FÌÛ!è¯Ço– ™p‘ ÏÙOJ­øÁÆ „ @0Ƴ®ƒ„HŒb}¥ì"†‹øFö™o‘ù™o±V.ó-2ß"ó-2ß"ó-2ß"ó-V«d¾ÅZ™oñ¬ùƒ²î…_¹ å#·XàÞ œLÂü˜0D#¡)1Z®×F•@a€ …š0(U¤ŒÂüN¯G£á¸)þô/T5Õ<ûÝή_ø7µÛS+Þÿý´¸¾mþ¸ø÷ðºðngÑ\\û{&ù ½–Gµû¾)&b]|¬T+à=ˉ/T|T㪅}|Ìöû›¾óöÌ7ÿóÙû?ßýøæŸÇÅ߇ã£ÿ»6ª†–­ëɾ¾E9Ú&'2ÓÇ]SFï¾*‹ß+?ž-ø3¼¬ÆßûÉü×OÚùüi=þïãâíu+uñWÿûj2½üdz2€ÈÏñðcæ_càšu‘àúf"Á©”l¦èBÄ– §yr !MÈá˜À®­4ÿUœÜ}6½vê÷ä=ÎñLÀ¡i ÕǪ¹9yïš=úXëÄϲthìýñ~":´ˆß¬Ç|„¤Ëõû£‡Ê:ëõ´f^Â`LÏüíoR—cM£šóvÎK šÿ¦®Ïû×.¶ÕñÈÔÎx¥.H¢¬+{¥FQíú¥x™uĹfd£|ÜÀjÿ›báCo=e똇¼©u䥄@b$/!VÐRæ€Õ°ÔbM¡„ŽHÅãØ«­cû½oc•µUTýÖBÙÙ¢æ_‘1bÌ#A>¼]á •\< Á0zg‹°DT™NÑKô¼2C·´DæZ»ÔmŠ5æ{ËŠäŒ,Ù¬¨mŠé ®ÂõX<Ò›®Öÿ3Y·œýÙùOĺ©\¯q"¦ÔgÔeGƒóÔw°€þ=y¼.u=ì»&bbµSýþöf¦X¾ÝR»boÓÎoÛÔä†*é ÄŒcD%©+! ZP…°Tâ„Õqg_g“û”& ±hr%£kLnKø_0¹áí9“ÛUŽazàÛ²Õ}vg½mixk?+ܸ:Û+6¬šmo¶½ÙöNlïe –ö&àå¶lÐMm0’‚’둆@j4¥ÅÀ:©„ÞBS#‰=PxŠÈ¶0vÒ…V~jO Û¶+ï â£e¨¸ˆ†ŠÖ@ÅE4T|ô5BÅ *’#<Ÿ0$š;Œùf@LÒÅÒW5c÷ž¡p˜ñ“¹ „Â-BõùU}ÁaèÄgççÃËó;Â+š~àloÖEaݺR£.aÕï_"É Çn:hQòçcÛ´­Ê2¥i¿ª„”öf$–rö“ë‹~^äí wnËèþeecY?‡ÍòÚ€²µ+jØFä°˜^EB^¹ñ8µñ¨FÕYØÒŒ×[•‘Ó|VúÕýý~úíÃog1cIïyn¬¯KwÓ.¿‘OwûÚ-÷­õüPEöÒíÎkKÏŠ!‰ùXïcdÛw»¿‘þi÷;‰–Cã½Ô¦Û¯šzDK ¯ha·qxqKÜr9©Uslƒg'¯äxÑ»îäôúôMé;ç“(תÞs¯—„5”±–Mí>©¬»äƦë ïEGæøjx=hlŒä$jî–«?†k÷ËnëD4v³¯ÀKM‰–Hƒ•ÆÎ‡˜BÉRÄ™ƒn&:®šxÆ42¦‘¼ýAž?a Ùlvd[‰ ƒq0³ýñª‘7Böl€;dƒÈ s%3²‘‘ŒlddcÙxõÍ+FtÕÄG¹É ÷1;ÝXo®éÃñMuS4gâù„.ºÍ³Š×XŒðÓTïƒ÷ Õ–bþèfæBÿ„ÛÏa)z·`@‚Î* 7$èÍà)Zs€A‚âr«“!„ !¼laâñí)@rVŒLé„’’sE1\’b=8ÿûr2ÄÖ„ÄI'Î'ÇŸ.*j«±+ÎÙP½ÉßjÒ•G¡dѪ0E¾žè=1_b CA¤™ðNù,{‘@ŒeÄaR÷S:ç oZÚH)u¾žï,ÊÖ1ìóÏs|½I|=ò_]U‡A‰}’ÉÈãÂÙ—·ûϽëU£ãûÌFØ)á+ ´‰ÏÞ<Æn˜g"BlËw0Eøé Ÿ½ûíC*Rñèü…A[YæI™ãØšKE‰Øê†×8a àpïInJ܆Î+Ûi£ü38~øfóBdÔuT[×Ý!~ž™þ 9«½£VÌJú oÎÌØÙN€%À+z¨ƒæq˜¼d,Y-7™ QŒ¼Aë|ÐÜ%W_ ?µÝß)xÕ ›ª\W?i"ªÞЇ<¬Õ]äËPb4Ó”*!-5°Ö9IABP Jê°°œÐm¸%9gõq`ŸÄDÉ„K9«”/䬒ØD”ùŒÕœ~²ÇlU¹\Ý(g«ælÕgíl·sû3ÔXn"”RåM®Ã 1™,¹3”•Â(¥,G0;3±óiJI!¶P×y¯ÏúˆAÉ#w†buæ ¢}mm|ªeæsf>ç!î7ÎîÑ ð s¦êóßÊ™ªyƒh« ¢œ©ši¦«vi2ÍôEÐLw“¢J©Õ”ã D ¡$J¢´% —öZm:3MŸ:ODÑžƒ Ì•¦R¢øDÑ%²iÎÝ3¢°éã™rš!€5Ò™rúò …ǧœæìÐÎúI³Cçiš9­tÞÓJWr<6)õ–üy¸y¬S^è³Ï|ÍLÑÌÍLÑ5‚ÏŽ)ú0γ ²¨"Ø(ƒMÉX4PHH¢CšBW¦Ù+Y4£(F•¹ôÏÙfA+ëÃÖb8>š<¸}ß;㡚ð¾·Ìhë—ÐÛo./ݸ­Î]øñû¿M¿ [µ‚§Mèï¾úXü8ö#jZñZ·?ßbæËãc\ÝH^D²üÕ‘,œO‚H ;ÛWY“Ïèdåg× ßM/|1DZg„kÞÔ»:y¦mõ¥}±¨¨‹áU}y“Šh­è¾û¾{h Aç<”hdkòݾZ~ÀïB8½Þ}[9)V ]­®t-?ÃËÇ'žÖmÞ¥5¿QuƒzíöFýmÍ8:†ìÞ¾2˜T: 9°–VA‹ ŽÙ#V[¡ Ò 0fŒÆ¸(Cþouú½âþ·ÛÅŒ]¯cømæÌ_-'mïØö@ºd{Öì¢pXȽ%„ )f“o Ã"ÒüÌÏ“Þt {~ˆŸ­å cq´ó“B¥œ5ö;)ÈíìMû|ßú]&fþ=–mËšOþ÷Q²±84c¾„Ç0|#cK@8ÖÒ²PaáƒSê H¥°_ýDÉh\FÈíJÿÿì][sÛ8–~^ÿ Ö>ef"›q§M'éîÔ¦/ÕIïä͠Ŷn#ʱ=¿~R’Iš2Ê’%™U}Il$q9çÇïëÇV›Å²Šrˆ´÷âQ‚Ùf Ì[c5‘@ ËŽˆü7 ¥—ëí7 §¢öžåÈð …Ò>…Ò›6ŠÆéÞo'¼Qügxùõ_M{…Ý>î´Q(Îh¬tˆtlö ¢ˆŒb1ÖE1D!#'‰›R)$Xk¾¦émCŒ–úö»ƒ˜‹˜ß’jÂbe™óÆ[ö3.›årˆËËáinwz"®ÓÌs÷¨/ì- •½?Y7qZ]Í”*NÀœ6¥¿/¦Ó‘£JÞ3-¨/¿ê™¾i‘i{˜£³‰v@m}4Ì“wó’œH c(Åc.ÄLè„ÆT‰àæ1‰wZü~1Ã0ø4¶¬31Y˜uÊŽ±ÉÏ;VÏüQ¼†íˆ¶Vf­\Þ¢˜m'Òu'äC'ΕN,¿Åyðiüüõ—ÏA1 ÞÚZîócñ]¤#+gV®¼î¡ÍÎÌê`ÖŠ½ûììE–>¡½J9«2d1cUs‚‘æQ;(†]W¿ý×?ƒçZÊjºÁçâ×oƒ%-2ç xóÓ>Û?ýmß+t¥sÅ\m_¨‡ébì-ÁÖþ’ŸÃׇìH¯½VÚ²k–ßðÏÒA£šÊ‹?>~þøîËÇË_ûúñ˹žœ[%Ô¶¥½ü¼Íç´•œÒøÒjÛ¸B>c`±K&o»´ì⑨yì­»Ð0ö@4¶ìù&é3„KÝ<¥%ÆBP‰¥ñØ RÅ4"”Ë+…™­%‚^áÒéd²í)̪ŽEÖP}—&儿ud !ÎHe›¶R÷”¶iŠ„-YêqQ’6aD§uÙkýB"óE¢>$zÁãeÏe­ÛٲœA¨( EœÐ„aÊ‘DB3®yH  ·T¥¯þl3cS]Ø0•6Ìq›®s}ak>%=Í…­ÓQ/ØCÿýʶ°Çy…ÛéQT‡D0–H" ޏäD…)Î4Á1Æ4˜ôHÏQ!=fS kPà!ÂåËЀƒ8,µÎDòìÃñ¤˜tÄâÕTÆÓéõà. ²ÅýHgC­mëïÕd:Öyš¥â’ÍÓ¥ód7j¡Ú.éfÓK{·ºõ>’ék[);"ÿ2o¬’ÓÖBK.¬™Ù׋él`§`Û›]AZÈ«õiNm#kGöEêAZã8N˜eŸ`œr„#¨@S*T ¥âæo=øÐ >EV2£Lë‰8䨒|…6E›7­§†@œ:­§àߎØlÇê!}´{ø³z’Ô‡Õ“¤=«çÐñ—½ù·]¸ÓùÎWŠ„QB™FT…HbHÒ‘T2³GóCŽ0qC©îüõ÷üvÏoßW÷ §‰ÒˆT.S/ßÜ〓°=èr¹vv\»æyÀß¾kv»§ç q…üñy·Ó¾²œ¯ØÕoæïïå1T‰NbB£Pð˜A(0>‡’+¤…F¡Â\šE¼'ï·‘÷)0ëX‰§,¬\16?@‘'ßLC?®uê€xDØcg½Gâ÷J6÷Ç0ºñ͉dˆLhN° 5Ψ™Ô&(gR αö»˜ÔóÍËÐ$ªÝX2¾YTqÏ isРǤóSG7ºñÎOº&¦þ–7\ ˆ#ïœÊ‘l:…è81 c©²û‹q ®šÓ·;ûÉá95¯r¶:~PGÈlÚ+ã$#‡‰¤Œ'èP3³l&X‡ 8ÂÊ _>Wð9\˧ ¬BõŸ™ùC>pÝQªo*&ªÏÌ굘×ZÏLå°ÚÅV»hÛø3-ójÖç²g!±¹ÕÍÞÁסYï§é$ÇTjM¤yåcq½®2\^ÒͼXâí#ezqcÚ·ÎéÄ̦,ÿ©¸YLÍ Jeþ›i–¥¦ùóÿú”œÝd¦žàÃÏïÛФé‹%ý*Ûö\ÏFBÚCëDÜŒY^:{{6ívðé÷@(•O±%l"òj—Êßoó~ÇÙùÄYþ<;»ꉶyçÓ…ù™5NO€,Ì»ýW:¥bœå0‹’ñíÿ̵ŠEELé©Ù@Áç©ù ¶Ü|<Ú)³,~{{{ž:Ú¢fmüË|öì¢ún/ZsÄQPu¬°Åfç€Ùœó¨ŠÜD”‘ò±·ÂLQµ§ƒÒLz³IE¼ðœ%aÜ ]†IæóFK–6'ïÿ7]ØH·]NŠ‘S93éG6 j+6ËWE×\bÕ©m«9êÖKSÒ¡“ãéÌZ!“,sªu6›9•»M-¯ÄTêyšJ_YlZ[C®ÌÃ5¹³ÙžÜ TŒP$˜LdˆYYœ®wcI0"š¹©%~N㹘¯rk˜MÏî µ½3[æá0û¦h>žÈ_ɶ²Ñº+yŹ{`¶Q-²ÔtÂ4n›ÊÌft¶òVLn&²…Íʸܯ7vôÕoǸ¾´q;6ƒ‰}‡©Ð×8%-3=ê»±ý¶dSävyÎ,9íb=•.~úõ·_œ(jWÓi¦M‹so-D7Çf«à=Äê¼›o|™O6Giî¢ôå÷ÙÄÅ¢a=ö[–Ùçø«ýxº O?Q¡ ÕF?dÃò¸CǪ솴BC1j2Äž ùŽrs7µÿöǩŃÜ@•o8BrßÄkɹåkÌÓ%ŠÅõ8cQû;äk=¨Ô«"O]¯îÒtÏëz7®Y6㻺«Á\kë·9 œü]L£¶ÀÇ–V׃;|`Xu}9Kïâ›ÄÇh$òûîåýÀdãþýÇ5çíØlÛ#¯Îä[åµ¾ŸWñ€àí«…ï·;Ž!?àÜóè-ÏZéø±ÜSèN²ÙÜæñu)™E®í[p+l⇫©Ç~—Ï×:##Š‘t{³‘ÊKN®€ëö<›Ž®-³Ê¬¹ŽkèÒ¢S¼¹2®è«×Â^Ç<åÒ^û·s‚ællb2·á˜eŽãöNƃÂíñ™òVwî‹„)îøNîÆ#èø9vˆÝ¢LA9Ctá½ØDÑ& ´ù¤ÇƒhË?}§®.,)9¾JfKéš'2ç•WåÛË=ð®Z¥‹éSé—&ßg“ ¤fzn™—Ë8ÜNÇßÛñ#Ž&TcÍ?$Ò’ÑA (B*TE˜'¦LÔÓñ{:þ)↞ǫˆQˆk2D!À(Ÿ°Â0 iÛ]½†3Öã>]ݞȬ¢y;'èP ¥ŠUƒnû9p‚Ͷe–š…y“VPöæ* ÒD&Wƒü9… k0ñ¢®æ®Î—):›ÍÔ²•öÚ}N|w„ÞÎÄ¥eÁØi²h†8Ù²qÜzX;”37h¸t{ÁÍçÛe¶†žoéó²ìcgÃCUÁžˆœGÞ {•Nwˆ6ú#ˆ{@‡Â*sEÇþ³fâ ×ía|aÐÐ|óë—/—‘Ót®Z¸Ìf?`òe1ÃŽ8à+@èVE—ÞeyuFõnnRuh—ý±[&W~CÞ¥%µÄ`T:ÿï+«ã@ øU‹Í…J³™XÈ¡žŸ«N_ MËž÷žhüb’¦5š™ioæaº"žy˜Œ}§Äx‹)1ñî^—½¯ÆRó1Ëü;¸ä­y™,3‹“­£¡ÇTâµyôsMpó±)˜n^åÍǤÆ}ó6õ¶*óÛ:šušbK~œG›ì·.6+Æœ»iæ;ªÖ :W›ÝBXAO¥ë©t=•®¹ô1Ré: ÀÙt JHÇ $JÇ€*ÍeQqc†bÀÝä{6ÝiB¥ „¸ž4‹“R ÚGPiÄÃzFM3¼p%£&ˆ8e%HÍ*m¤Ô^Ú…U— ³MÌÓƒÕ÷ãôyNÊ{}¿×«ïçሯ„þ|L–Š>&%é?³² ?Â×C‚–k@_Dð°qÄ‘@£šZ eY6Ð ,éú˜Õ„ýL늂^8kYZpíZlpO¨î#ùÁƒ‡„ëÊ„ ïè}P>< x¸ X[‘Iô5¬ê%žF¼ÖTÜ'°\RYì`»–[ìí-moTºI­±“yË»kÞJÈÑÇd¥èèaã·ïªï5„këA¥3ÓV(b¬!Žb ‘&aÈäÑX3™hH(¢gÚöLÛ“„iX‡!+­–uø˜2¡*Ó–!À­ðãÓ–añ¦mSr˜:7ôÈòÂlϲ…"¿±*.ëŒ÷›Ê÷ÜÙž;{l§½À£I/ðØ€0ö›Köu$ÔuGJ{ÇF,Ò ôƒò:½ÀcÏJíY©=+µg¥V=^.d”RJ$€#fþœ¨Xs)•"bIB&Ýrâ|^‹7y 6‹¡XäÒâlCW] u0Zw%¯8‡?ÓE E–šN˜ÆmSVÍiEW]û-rNÕŽöp#…>p#9©¦”à–ÁFa[B™ÆDÔ6¶8rÀ±YÙÉ™±z˜h#1îˆ6úG$EéËﳉ‹…·ÀÒÁKFõð—vÀÖîð£ƒA¾¨Í0?TÃ'2÷ŠsÝÂÕÝÆ~è¾îSYKàEPÆH$!„XXšÄLpŒaĨ`²w`{ö”©°q(kÇåf¤Y_çÁ%sø´»á®U“ {tw­¶tbY˜ „‘gqeýYÎkŸ¶›˜SïܾVçö…®7´úPç;'/r£ãõˆNdûnLoOžöÉzÄù÷‡èR HD¶8Ï5vâ¢)c}–ÍïÞ÷E»‰ c¯rûÕdÜêÑ(0í:+ÁQ:NZ™ICÙùòq–ǧY.îS|ÍüÍ ž(1Wð—ŽÍHµGN9Sp|&¤œÎsxo1͹ƒÓ$Ie*FæCÙJ̶ž}í™&‹[1×Á»‹/;èòQhaÀ'8E„ÒŠ:‡’Jæï*GHÈBHjHä¼ÅDm‘³±X\ÞÓó3Ú}a·w“ûüê¹ý‡¢]c†ÓÅrÆd.Hœq$fÞP\íÅM¦Ï»á°«hÍ8ÍéÙý8kßÿ³™™²ù"Ô^6ÎÇhܦUò9p83ÕµuJ2GÜéß‹6ä`%òj˜qΪ'ŸÞtŒ'¿üâŠÀ¹£zúnáZÔµà˸töö¥ýÒ B< ÔÑê[ ªû|üºË׿’ò2s…´ÖeßüôþýeäÔ©²‘dzìBÚSìÜhèòIšõz»º‰²l0uÒÿ^ Æ Gl<[(ù8~ÚRá7ï¿}{÷çK·u¦l˜?Ë·oŽ‚#‡‡çž ™Ë'"îU‘s³ñëf½Ž¢ qwr>U˜œgÖy§\˜ìNâí'Kš‡S%ƒD"®P$¥ÄQÈ5‰Ô èãä>N^ÇÉæßzœUâÛZœÌBŒyí',¢ rSÈö›l9µ·ïù’xO#Rþˆ()ê’S)÷‘r)÷‘òQGÊ}ÛG°‡Áöah†î5 õ‘WéˆòDÃ$"0BKœp¢“8DTɰŒB’A7aÀ>}(%Õ»¥65±æÆ@”Lˆ]˶0¤fÔUl¡­ µh.%Uj•¿zÊi£wz"®Ó GqÈ*ë~ÇpÔU] —ºõê«P=4-–‘j‡Ùî%}*÷ˆrWE}ª÷ ¡½UeœcÂÎ’3‡œmd?‰Â½Cdÿ<Û»ªë6^o®cDÞ¥uï™ Ù9,ßOæåËìº1àv®á!îöIõÚ5ïÔD÷°½dØ©a¿°“åñç}}ÍÂDO'[ª-@öðX‘£Ö",ùÖ\!¿“—°9dÁG‘ÝW¶­ÿgïÚšÛÆ•ô»…ª¶j+S'RHð®Ù‡±e'qâ‹Ör.缸@´9–E-)Ùñüúm’-É Ø å[Œ§x4è&âò}À×⥒¨•§›·Y£qv)-|ñû¼¹õ¬ró¡°üx<殺­Ããï{ï[½ãþ¿ß·v÷öNá¿¿öŽLçãyÞD]~oÞè)»â 4îCGÞ· @礣ۼPmÝÿOè['Çýþöiïóþ×Çý£Ý?Ê7¾$¬uœNà…y‚Ž¿öß ˆâì¢$éå£&é¸a~H¯ó,Å,µn_ɳ\²tË„g˜šg—èºæòì ÛJ–fÛ–¹°©dé–C*¶”x ¯^»˜ÛzäEö {¯4GÙy’d ž˜Jçã}Ðt›ÈMfxšWo3‰WG”9£tÛÄÏo°Çò¸hí%"¹|õõ1‘æašÁL‹›3#×¥fD´( ðo¤ÔuˆÂD )L¤0ÑZLd‘å³6Ãp(­ÅD+‰\ka¢Ù1Ûƒµ]þ íÕ#£Œ÷Ò}!°H×,R°¨,‚×à€8϶YdG†kù ‘kPF[§šye¾µ`¾ói`+`¤€‘F mr³È6MG[¹Ñ)¿±rñF'Ís*â`ø^ÑÝDÚdÃèug´Y»EžéÔL1û”ùY´S}þU|ö'‡Qk±Û&¥BoNXôòC@ž&š£ÆSP øyT­ãuÜj™¤Y‘ éùHÞŸì—ßTô$€?247 ü.ÅÀ CŸ¡ÆX`y4r¡ºj&Ñ|[S€_~øàß$à÷tÃXü<©ÿ"àwuÃF\Ö°4™*Ðÿ2@?Ñ,¯æ ÷Sˆª‘D`‡Ç$Õ4d}íy¾ê@接ï.`á.ó¼·£ .ÅßF£ÝÕWI!p± ‹,gLü,²‰|ï?8-éýÅã~W³ßrŸÅmÏ'„¬Ä¼2·s6D’@P뺮éš, ÌȤñ3pŒ@£”˜väîö)zèU ÷í‚^Ã1V@¯®»ÆÐK ·9èͳ=•£Þ·u{ëyJ£(½ Ìkë d‘ ó*Ì«0ïÛ¼O%zµB‰áX0CY¦fD†y³/0ôÀÒûLmõ*Ô«P¯B½½êÕÈ ê%ž»Šzµ Ô;Ó¼–ã^yñëëF¾/Hù ÈWsòUÈW!ßùß8ò-‹òÊÒ'6˜ÌgõCF=fšÌ¡†åèŽÏ(±¬ ºåÍ÷tG¡]…vÚUhw“{¼¶f;Þò&/`#m)Ä ~¨ ñ‚‰òa|× ª½™à®z›»«8´Bž¬ÙóôcÑ_>´Q çÝ4¢ŠÏÊV”ú¼ÊÀÇ !¯çP–Á‹§9C]·]Ï459Ž™”ÁŸ³]â0꘺0—˜Tá …/¾Pøb“øB×5ž|¥qy~ˆü`Èž¿Q„ñXáã¤Á&š Wáã<êÑ ~ÐÌHטñtøÇ#^H|…nF&ÓÇóQQDŠã(Ž£8N…žÒ°„ίã8ÎjQ.¿³ìÅËú4Û\º{¾2WV>ªàù—<fƬ¼6ù·ÜÁ‘¸og±)¦ó;1úWÁIÜšôöã-—Ñ¿Dmïi€Ì½R |@Âì…]Í$É–Gõ+aÏ'±H¨›^ ùžçQ‡™q×´ÂÀˆHÄ,‹3tuª@9Pä@‘ƒÍÊO ƒÞød1ÅÀJ&]•^àùŽ=jÞà­òè*,¯N-Ô©EIépjñbÂS‰¤ü0Ô\FÂ0²5Û´<›ÑÀ±X2bºí9vä¹_pGPAqÅÖ È%d°m×[IÈ`i?S¸ç–?IŠ¤Þ²<ê%cž°‰û6¤7ÿaøýCýÍÒ±žáàÀ::P‡¿%ÀO]OÚÓQ$|"n†ñ½Žv÷¶¦Üí<ç„n[:ÓLÓ#šk;”fnfºé8L‚ÀÂ¥\;WjýlÂbè°€ßߊWl `„ù‹Í“ƒ}ÀöɈq`Ç¡à Û—£äfÔšÌÇ®8dãØlßo]%aÅ,ä8;ƒŸ‰³_wUzÇb¾r¶¾õí|Mç˜ä° Œ`‘ÜâˆbÈÚA’¦­Áx<-`]2ÀŸÖ>üç0Kæ¸/k]Å¿r8;Nb€õ­(M²-À­¼Ú|æ‡Fï[÷úg4)JuÊÞ!tƒÖ»”P`=þŽeÁÅU’Ža)4 —%Ñ䆦¬sÿ¬ÿµÜw×Á>ñ¥+\Ûµ sMöYÇÑÍeÜghš®9‹·¬Á/ŽcU\³6C~‹umóÒæCäU^B;¸¢wõá§®˜± ûþ̰KYØWÒr›"ô<§fÚb@¾û·ýK×»Ó?/“?ÿ¹¨Z8€_ ßMù+áKv»ðUq¤lÆÉx:–1à˜lùnæ2èvœfK˜ÞÐ Ìãiå*»ðåb×ÒÕfp¹˜Í£ñRkfut­£½ä¶sØÑ†Y¬ ³§BhÈ%²­ia’ß°ÐÉULR®‘Je±è³ò‚yñÌ`ÙÒ‘ä²_#Ê~v‡Šäp²ÏŠRÆ8Ö•íçAp–É>lÁèS¯wC¹­ÄØ[±å«²Ä“¯dÛæªÁàà5˜K_ÎÅ*Þ‹ŽŒ©OzuË uۙ훦aØ„úðChØžPâxÔv l\æEEzé]%½žiÛ+¤×5E5Ó éµuËr–£%<϶ù=,‹¤× ˜»ÅKx›d¨Ä륻°ÎZQIxݺ—®(«¯"¼!JSÎ0±„’jNcñìUŽ´¾EÑ›QKööh¶U²+ÃrÑäVšÓJRYRX‹¸Öb¬5©*–rJSSŒëQqN‰h¥w•ãž5™*¦æÓIŒ­ú PK¾] ‹¾> Á¹­Ælˤºí40ô( l]÷<3-S ˆoê®2ÏWVQØzÖ²´ÕsÛåhýe ëº6°Ø% ëz„oÁºž¡™(ñŒòëyØïO`}hÀøQÓÉóûõj擟£‚JéË;ø×¿ªÈÍåyŒ*ÊÍI0êÑ£`šf,{“™ç«V(|ˆqý%Š„VHê$ >µu¦Tó]Bi ûnhû.ücFZ¢Ôõ$K”g®£¯ì²®§/î²Ï´¬*iQxZ²J½¾ääO¹L=î+±Ô«ÚcU{¬DE¨í¬Å²j¿Uí·ªýVdÙW¾ßª6OÕæi3jÊûEÛ§YC^:[•‹†5œÎ¢¸¢Š™†VdXfú±,' ,͵Mjê†c… ôH³"×7-3=îÕ‡w*"¾áûæÇDy[´ÚáiÀƒ¦‡­½_“üo(Å™à ËíÀ` _`k«xPÖJÀÓ›Ø]ÚÊ nyüvêÇ“<ò=ç£ügï[lætt¾ÅAÿÐüy@4ÂŒ-•æÏ§qŒ­[0Oþ½€˜#¾ “E/§©œDs¦zž$E®òàæœWð¿¡î Ä„!„wB ˜E¼£ ¶|&~u©ýãê2ð~Õ…úǃýŸÕÅŸ·…’à’MªË}+ðf&Áä áÝæ}¶ Œ“­ÞÑ«2¶Ýî.˳œhWn÷xçË^ïµ÷¥E²TñMqÛ7½!Ͳnw°-|õ*3'ƒI Ó–Ðî›,ùévOcv–W cš3/‰¢ÝîÞ|ó)VY«Bä…³›P` ÙÂÙïî ê¼ P:]>«žDžà—Ïrâ®_5ñ-8èvaÖè"uK^`aSª.|ý¾’VEð–Üp\ÒÄÍíˆÎg%Dñ½4%âzÜÞ/•˦ÀªýŠ%ÝîgF¯oQÕÎ,q+¡¾<ßEìv™2þ£° 9Žzœ0¦LäÉì &™#ù4]ÓPýqîi|+¢¨Z8ÙM2¾æ7莅Ÿl\§·åÛÂ*¼Ä#Ñ,-ƒêg…“ò÷‘øÞÜÉ!‹gA˜³eÚ¦lNø¡4‰¦ŒYÐh¸w]çöü&mÌÝÞ8Ù\Ý>NGE®·y<¤›«Ýñ€lÌ×·ÑâJCgßóõ#›xÍSv5Ï Uy1œUãüüÌsñ‰×Üë|b“d +÷A2ÂA¿Ent8Ü¡Áe Ó~ž PÊp0Ï¡¸µeÿXhLPKÜþ1¬(±hÊÄξÜÃÇ2|„[J¸‹Ò/®Wç`¾sÒÇ%õ@7wó#_Õ°ÉP{`ÉA×{ÀØ%õËÚ5j 7C&dYXöš;ÉY¹Ð‰¯IîÈãÑÞ©Øj/ºúv´ÿ³IGï÷`X_‰šÖ1q/Æ]ÙH4Óê\5 ãÄhàä æ¬„?¶‡q’oå zy^¾D|¾ßg¸7:ÁéKÒ´ñkƒ`@¯…@PG®kF‹ê,ƒÛ+?iB‡NÙ/øÆÛ¾Ÿ²ë/R¸Ù¦ 7©-›ÀdÈÓÔf¸uôqqä“àVÄÂ:_B$iX‚(%Úï”ú"'DÓ`]¸Y±ðô#¥"hžl´§Ÿ‰m:™¤ü°˜•lB¡YÉA®ˆþ­øñÐûPöAÂcF%kÊE”§È.YQC ŠÙPØ•°­ÀÏ˦Ôl0ŒEWëX–Âx…,°A(ÍÕ &$á7Àöà úr€ÔN"W\MÔ»†É£Á|9;侪ƒB³74åGà%•@5õÜE·›²sžS½ÁR–Ÿa–j Eª…Öæ®„™|ÓágšòÔê—6iÍÁôõËÓÇ¿†ñå‹ kèŸêú“Z"Ã×/š”P@.ä`“é7háä<][ çR½òeÄx?úPœlƒ²Åôiåˆã\º²VhÈ‹ë]EÁl‡ý½M":!YI¢Zj&õ8T7MjÂL÷©î»¶c†Aà>U’D%I|{’DsU’è‘ò‹c ˆn{Ʋ$Ѱ,Í´%‰†«kâöy±"Q2™Úo&HLi6®•aíq$‰æ²BáÄ4ªŒ©)IâJ%IT’Ä¥‚J’¨$‰J’¨$‰J’¨$‰¥^”$±Ì‰’$*Iâ:gJ’XîDI•$QI•$QI…N”$q%I|èFI•$QI•$QI+Í•$±¥$‰ OP’D¬‰’$*I¢’$®˜ü>’D¡!®*5ãVñ_­f ¹ö™m>¾–‘y$r|bûžeêV`2j3ªÃÛ¾æy>£„™JËø(ZÆYse[ ¥Œ­Bʸ%'ep½âì&…;Áâ5‡|[“¿b¯¿}Ô r—ð.S°ŽGyéÿþ¿i2ù“³â¯­Œ¥€~WM£±ªitÈâ­ËšFÛ0tÓõVÒ,ÚŽm.]°C<Ë3´ªD‹Å<ðá¯øý Ë›ÒkháË¡kÔ=Ç´›äZ´P;m`3ð¥Úƒ˜{ŒÁ¾îµyëžÂjŒ18Ü?Üks=‡áÍíÁ$Iùl){Ê™øªó¼ö|Oe#·ý9>a¨å0¡¤¤s2ÙþØHœÐ´Ñþñ½oYìs¶‹ ¨}JSTÈ×…öV˜òÅM9‡ô’ñ¥Tâ{ÏžÔNÏϱ]ªŸ„í=XóǸo΋ã+4ƒ[ÈmÀ5ü°$kçæ?6;ÁßýñÎ6ÎTöbØÊÜN˜DñÞ‘LaXú$Šïîœñ­ X‚"‰ò{;½ÝýžŒÁˆ_"að‘fxí@Æ„osÌ#aóiwçP¶±òiQ¦<¬ ü/ “/}‰Â_O$ óõ‹m “£mtÄáÓ°œ„Íqç%ûU¿ßê!cÀØ¥Lñ˜2õÔxé§엌ŠZȘäç·RÙw¹âÃä\Âàô‡DáÙ}t2Å ¶8_¢$Šó³L™9ƒñù¨²„ÉýÝ#X‹T¦}²\ cpASJÛk2­tS‰ÒùÉÒöèv>âœ&΀ßÝé¾ð´Œ NËî\ˆ+…Pç‹‹n¸ÐºôØYCJl––´ÚÙü(®sQj¥páANƒñ0.Y¢”wòF â’8%ÜIgìäOÏ›Õã .Ñh¨ÖàáOÉ͉”¹XAÕ—¾Šƒ¶$ÞägÊ¢GÏ;0ë]\Ñô² °÷iéôiŸ«\±¡`yé$¹Œ¾<‡°øÒý”M&¸@“¢ü4ÃÝÓ˜—.Õ”¡>-¸àÂèbÀ”ïo¡ v»Å.§„ÁδÐÊ¢ z4¸`‡ç2ÏèÍ÷ƒñ&es!¸`¹—ˆÁÂÙø" `²pã ðgÅÄ‹޼7K¸Œ}šI˜í]Ó¡Lñ_Ëw¢»ÝÆ/­†åæN€ «ŽnéÕðl”LÎî6Œø§IÀ²ìŒqýŸ„Ÿ§}¹ÒÝîˆMÒ@Æ(N³ ߤv7‚Z8 OÅz<mØw÷9/‘x}`¢Çþß_o€VF¢(2ÝÄÅh~~@«ËXº}ÎWÒ†‡1ï \Ù¹#ÓG‹9 ƒ£D´ž'ù+|ôS˜Äd^î§l*îR2½ ÷wÂpWñVƒ 6”™>—þ ©§j,Ü|;9xè÷Ruœ…\JÁMÿà›(òIë¸(Ô9wÁUÆÁ%CFj<°‚Y÷»¤¥L$ùŠQ®`­gÇã:&È[ ïÍùVäÀmõ¾êŽïö‹ý¡¤B÷ ¯Q€þŠëÃÃZ 6 )IšîI­©…Í>—Bð[Ú72xî¼mº1EŽ9ÄᚇM?ànÿ¡®ƒYt]óù[Õµ0~ˆßÀ>?b®oŸ54Ï L Ñ„ìΓ$(X4’fM"cÎQ/ë>¿71É6ßܾÁ£ñùh!e?`Ãh:©«›Ja“h&ž¸%…sÃÀ·pÙ(8ŽH§Cñl";.»Ð8œž{‚šO³IrUk„•úË+*ü˜º\Ë®¨ð8D—k¥y+$ïôGsßN?žÍ'#³BüÔü“Íåwp©yµÀ·(ƒóaœ‰2ÐéÈ t{£’œ!ÈIîí4¥¸žûⳤf›™tV­|G·„wáR—>t¶f»¾ËþNx\Li¸Í8ç…ßÈÌë|ÿˆGar#&¥›¨ûÌ?49fqîþŸ½k}jÉößù+T|˜š­ –€'“º@â 6Û$™ùBµ¥¶Ñ¢‡§%Aœ¿þöC’-Óm–ÄîÞ½lÕllsÎOÝ­~œ>Ïëzá†Ó/uà¡Wœ–*ác=ð6"¯ ­û ”9CÕƒ„rý…6vàyH•Ávïb ;Ò ¼n£­»~÷91šÀLÀ»`ûì{°“E9&Á÷õ4–fZ:ºÏÉpëDi ó›|s…)ø6€}oŽåÓ–­pƒ4ž:R¬¶æ+I°èN‡Ìá鯢WmÍÅpãÌ]GšN\!$XTºwdÓ¬i‡÷Òœ„å |™WO)¨K|+›å¥°”‰‡K¡}¨¯aCdÕ6ú*ËY_ Jžo¸Ô£Úf×Ý×LSUK.ý–Â’ »å ê›ªtÊeÁÎkš]Öƒ1ûOv媀¶GY õþ)u:+‹ ÊbX©YO^(¿£—Aõ…ªøFGSÔ:¾Ã~Ò®ÇyD,‚̧°DŸõǎízž®…¾p’„KËÓ Cô‹Î¬HnÕ†vò#Š"Q,¬¶Ìí†Ùy€üQ ©5µÔŠÀw¹û´îbƒ(²­Wj•o_Je:5@®à×ûcâ@S‚E^+M ÉÀ7 ÌÇ=‰ç®`Ód9;ؾìºHj;ƒjNšüCn>†%«Ï1§–H•²\§‡Àù&¡ß>%^áªÈR—oÜU.l´âþ^(^Ø F<°)¥É Ì”‚Vh *  % ð(ϳ×>p× ïùòhûiKOÐsí]ÿ«ÎžÿõJg^¯Ì=‡«‚ÞùÖë-D9¸_Ë\Èaûë×AÝ|­XìJ%¯c¿†%¿ø ÃF—û+ ÞÕÑs…ó&TJã…/x¼v…HK AY¦ØC«‡@‘D^ãÙv Öá— "¾È„U´‚^Ã*fª(&D¬VEJ3÷UGJS†^Ð.Û)"˜W¿œUÃyï%@zµÒ`žò”–UF®¨!Ý(Tž¡0kË6Ì]P9¸MÚ mVpfžmÏf)^9"‘šÔS¶o ˜?â Âö˜Èse€±`nC˜?éEô²zé,?º¢â[týÎõz3‚¬*31ÃC›·¸:B¯Ò/Áú^\Á2šÇKÃIa^îyÀÚ{"P›¼€Y'ä™\Z°)ÎqfDº÷@ݧ†Ø œUÁ.ïQ.4`õ_2¸þ÷•£’c@šœ$µÒK¯›m&Wbk÷rTçMkK2ÉUÁJ¢øÔ‘ÑæL*Ï!ísy+‡Ç +ÖtYD¥PP ‘Õ@‡mô»Ü3{ÀÊ|îð¦×õ9Å×J¿Xr$FªRXIÀñx¨²–ÇÌ<¸.'ÖªØJÓ’À†®ô˾Zu&Ì~¶ùçÅðF~÷I—ir„€`…%Zt1…º‘W-<FSnÃpqÁvXŠ3©Åêc¯ÄÔtVÙÆ‘ú]‚ï` P–ð^ª#€]w¡z½Ûù?å6Z($=Œ"Ñe¼XE¦}7¨ÆyÔÿ&+>MåtÐ\fìTN¹šÝ]ÀRdm3P)d0 FW°PÛ<ëÝhÚïÃ2H ÆÏJYJôP»y‚AïI¬ä·¼\·Ù€å÷ª´x,GùxHzИ@G|ŽÂó"Ê”´°Ùœ@Ða”wt‚lPúö› Ê@ÞÐ6ºA‘9ºmaUÒ¬À—Ÿ‡o{4R¼(XFk!ZÊN?øØŒoDz*ñZ `¬Š›nNaŽ1*¤TU²N`^cŽÁj1aU²hxS|¬F7fE‚(¨‡Ê„OÕ:u[¡ ·5œ³B> û’ÅÒÅr·šö¢žE…í:IpRON;*±#/LR}ÉåE4¦ÿ7P¼%Ж"’,@ò}\H)”¨gPÁ,‘=9r5Ž^Ï(J‘‘ š1’^µ’Œ× IcC®a*LlZ(RÎÀ\’9LRtªÊô`0Ì Vn7ÑÀˆ}^&SÑxŸ>EžÂ£$¥Œ5ûìø0í,gø«8Û‘¼ -Øɰ42¬%L&N@¦øï˜.V Î4ÃrÝ_>d7Ф¯œzˆä"-ÌŠÈ!ع$hsAOYB|Ã_«l~h=;Ä3‚5™³¨¢J›@á ’¢`‰ ýd29±Õh—m#,@³@cÇO:Óˆ`äUm“â­·t.‡3î,}¸Ru“©sܨ[f¸‹ˆó¨ ¼ÐÄ›aâYÒXj­ÆÝ)œ²¡RÔ>ç7èmkаi,¶VCÒ š$,oêC_Z˜¤¬—ZÆAüjG?høôÙ‘ /PøtR¡%)Ÿ\e,Ž(8[ÁêÍft¯w1šTËjøHWÒÕ¡‰‘U©“éà`ÓM má—Ö|嘯h ËQ¿ËȾóÑ)à S— ¶;™ùî8½S:E®X²H…‹p³a‚ö3Æž8«(åÃÙT"© }U%#Ùî¤xÙW`¬à)Ø?!â«Â7» 2‡CwJËUÊòîà h§P¤09UB¤mL.`0J ä¸Ã?”Ðv¿7ÁaìV²ƒíNY’…"H ØÁSçÌÐhÝPÞ©·~÷Ä|Aax Ÿ(P_A2ãµÀ+è=ÀžŠ†@‰6ÅÙBkB_”ƒ³´ÂåY'Áû"5 ”Er²qg:¦Å-¦Ozž;Y´£¤¹mX2ïD•:6ƒR ‘Yܦ‰(9UÚ0Ë÷…VÁû6Á e÷`qbÛ0Ì]'Œ„´eªìçPÏ Ùð<Û)G:;´XtÖ eH»f‰çôö¬žrÀ!ñØœs& køù)ì¾#pxxtW92v°4<|Oá(Sl¾ ‹^K/’{LÁ7Jã²AP#it!’é} oöŽ…@CèFƒ/ýÉôBfC€zCdYûÕi¯ ¡¼Ô( r•!¡z`wWäÂèÄŠ6ÓéAäzN¨¦_ ¬ž•( ×*Réܺv–¢H‡)Kt`BQD– Ðà£8 b`☹³T à0M ðcÙrÑ ªÈK€2W hï°¨lN¿*FtÚÛZúA9–¥ :¦÷x¼™°èƒ¡×{¦¢`»ðÂaz%…®6çyþ{˜áÚUÖ=Û#²àRèºVRsôÕÒÛ!tk ¥" )ôåµé ÷”PžÉ:x¿2ɺ IŸ ôz!]‡Š„ì0÷ e’Zà–™É›t»ô6zš¯€óHðäØ8ÜúýLðß±C¶–<”~§[×Ï_D¦ Š6]ÃÎöftÓß\‡­¤1ÍCcE0û·¸_Gsbuç@8ISLjDr?!b»Ü ’5´MÚÖlhö€µ ›Ý#ÃOè ^lGkn?£ÜÒÜx˜?d”ßøsc­Û…ã8$ÇsÇ?æ“i?-m‰ÕƒF÷çüÜmÏB+å†áúfpyuo6ÌF§4o«ÊD.í#¡»†œ},ÇñQš1ÂÀR‰DfòÔt¡ezw¦3ý:m‰‹| Û ÇÃG\£¡¦ïÕÇ„2=2ØmV‹a‚žÁLƒÛ ]ès.ˆõà<á£" ùÀ­¥Gܸ¡‰ Ò$‡ï;yRŒáöQS%‡7èI¦Àÿ´œÀQR™àå6!Ù¡šžD‘…XJ‘W²/½~Ç.Åï3™™«wÇü'…e®ŠHx€ö=‹Ý-¤¤{©FEd+äHLUØEFsDbÿˆq±M¯F‹U$½í˜ßâ…ãÛ&à‘Å¯à¡øiŽF^`‡EPbµË:Öðy ¡¢“@å< êÊ¡3í©ˆÈ5W^M`›‘W4i7¿è¼Â˨ØÖ ‹™Ç`1%"Š CÈQDG¯ü…¥÷ËB’ˆÄÅ‹Pa»)‰í,daá> 0.š!›‚b#-¤dÑ5DßÃx¾»IÐỏïïŽW"Î9ùš|3¾{®O7÷‡(ZõŽébôãï ;~Ä lÇÇŽÛf-^ƒáЈÖ+!ÎfOa§Å{±«ðéï̯ó½Ó9ë¾;æÓß“ãÐÀ«Àzøíð¤XIôŽO<:¦ÉãéSáøqéØ¿þÙŸ¾_´:§æ©ÝYtÛö¼unÏ‘uÞ=9Ã'¨=ÇØžŸvæ‹slÑW›"eÐô³‡è™GÅÃåo‡Ø?|?{ÀƘvÇpX`&Š"6åºŒÏÆ!O¡Ìz²áeÃ`c‚¬È¡ŒÁ½x¬‡|Û˜ÐN“ÈH³Vˆ…F@‘<ç¶ úÎ *‰øLíl B/„µ­dƒ½Ýð' þò€Uaï˜=`A:BAˆsÔì¹+Í o@h0]–mP¦èEÛ( ÃD¬EÈ c¢Et»Yá:Œ°Ç>Ó¶Ós>2">†d¸Â6b¾M£À˜cúÔt~Æ(\³_ãÓö/ŽåP~Ñ8+uÈ4Š09 mò)?Š#gSfÚò5årñ¥<žã;rÿÑ88˜6‚í 6<.ûÑÆ?!ÇeÂëâÕøbdX’ö%¦ÜŽÏ©ú;¢_Ù;ŸBLR̃ƒ‹˜Ž$ {GÉÿø‹¿A„¾‹¯Èu1n‚˜Óçý‘ÊÙ¿ŸIÃøÉ~ué“éÿ:1_E?-£_ßoM˜l%k¼OV=ÞÂS¤‡tœYf‹–d<1qSòçççk=£<~wÌþ’R1ó-Ÿôi6»f§Õí´9¿ÅOÍ]4[ªåw!~Fò¸ß»ÍöÉé ½Œ:iO¶*»ÍîéÙÙ¡„ðÿÛ¡Ùét›§Û‰Þ1ó1ŸôF¿à{Å1Ûø™{$Vù[ß ökƒm%Þí ‹ÿÀÄJ×±èˆà÷$r˜mȸ?üj\oŒ'Ó ó“›DH¡)yä‰NÌ€¼ŸÞMûÆÍ`t÷.R:Y,º®½ù§_ŒQŒ‰?Çdù‹q ›ï.aÌ£-I¯ÞÀOØ Vl%§K:<ó­pC•çäo€%%yÿ€¨¬Lº þ®m,X6γ…<¨œ~zÿbCb±Qüº<ÿf¾ñG„¶!‹‚úí°Ý¦o’öŽÎ‡óÓ“³¼V^®”W]: 3Ç›Úa/ÛÚáMíPHþŸ¬vð\6 ˆ„¯VÝ:ÂÅTW# =ÏŠ©>\ò (!=IÅd" 0€Ž9›fõP¦U‹I³ª†Å¤|«%±HÅ”ŸÇÅ4¿OŠiÒJ|Å”#xo3o®bÒ[8ªÈ]UL7n®(¢Ãø@Åü‹É¦ð~$ÞëÂäÀP®½yX¦¬LˆÊ –Åt³¯Å4‰S€n”ÅTlç-¦âÎlÅd©çR1%3º±»C!!ôTdÐqç”bºÄ›¥˜ðÉAÅDÜ­eQ ¨£N"~$áÒÕ`ÎÇ j¦ð o\Ž·a6)ì*¸å•1@0:myåÊ1ÉBe@nôRLW®£ð°9É]òA²EÝ‹Sл»Ìò±TiÇÜeïG¦Á³ªö ì]òÐQé`hôä½êWpß»¤ÛÖƒ‡ˆ<¿,IáÕõä¤IéX<…Öê xÆ@rz&™Á©ÇG,šCÐÇÀ¸ N­”k6@¯–B̰·›„~|KòÌ{=¡dÓ`¸ŒÁa,‚^ —:ÏØÄ‡ƒYT{iÂ>R”¦§ã•<›i˜N?ÁrB±ñB³ m±¬Ne sylý'K;–·0W„²h*+¦×Ô'œ9mWÂ.Ðyî½D÷™¾²Ί,-í=&DkzòlÝ:Ô<±0Kú grH©#›°$ÏIœÇÊdçzsw ‚W5èÁíüŸ¿?Óë×BÚ†g œ›¯c–"“‹%–úŒC‡ÍÌŠféÌÑ4M˜aÈÎs³ ‹ccB71Î)c~µfGÑH‰+¸’´+`z*—*J›°)æn++ ¨¿(ë¦t€G)…ßÜÉ ýœ¤Î‚%í´±ßâr\t×ý¢É™î%˜xüo9>Å@A-cÿMh›gÙS &ľ€SÖêƒEÄHñêIR¾ ¬ñºË6EàºÃÖ¾Ö™*xxŠdISðê/ž ­îÁ”3g%-ªô€LÿPà#扦ʲ§½*ËŸ¦,Íϲ-åO2:Wbç˜`á‚/d’¦P°Í¤}k’1³;êcÙç_%>4ºÃ—òWxôÔYú(Ò?RXz¸xeC#‡·µd“-:L. CG^tù¤Ó‹U9Ð}u*u÷Á<¤(ßEoO´åq^©¦Äœ`/(7ú2´*m»gçüvò6-ÇÞÖÃ6}zîõþ’W³”:°»K',.d\).O=Uón@z=+ij…oŽ[4ªÈeÛ`޵ä5õ±üX‘,R*Žg• Ôf3Xe†‚J™³I¿?}„eõÏØ>]L?ésMúW£[8s·¢»3·ë0 |“¤Èt”A—ÆLXb¥Y¶`—ÏcE5 v®±”‘sUâ@˜C”Ù£ *|–þ ¹R%4ï͇µÒ$®òþ—þ–lSöz7SX¹Ã¾jÏ1&hD•¶\ÉS!‚‚úSæú"EÑjÌÕçß÷Ýwhß´ÐFu`Ðã/)H–Ép”JL=e¡nÍ~‰åY¦A«)¤JeR;¥H×ÓáI«%;eÌÈ®ŪìžZC”Þ¥4Öc¯÷YQRPƒÎ9S>é´zÀ€>¦§Õ›ôû¤zk~Ÿôzæ‰iÞ×ƼhyþAÕ$ÖšzÛhôÅOoïyC¥/³©7rz„T©®u°„ÃQõÁ›}­Žq7ûxŸnF:lÂ3©ú+Ûä›}”Op­}UÈ· †¥«L>|äS÷Ê¥Õ"ïõ¾ §0žÄ–žZûRR›°¹ûl»<ä¦Ä=2ëT=à|Kç/ÛýÕñíàY‘¸†¶'øtø¯€kw]/Üpú¥<ôгÀZ/Ÿ¥…³ë·yUxlÝ¡<‹[øA(×_hcž‡Õ?aÙXÂŽô¯Ûhë®ß}NŒ°âé/ÁöÙ÷`'‹rL‚ïë©<÷4kŸ WUoª’a~“o®0ß°ïÍéåLØ6CO)V[ó•$Xt§Cæðô‚WÑ+XUÞ Ú3wiHý…`QéÞ‘5N°¦:Þ_ d•gËAù2¯žRP—øV6ËKa]©Î¡RhêkØYõ¾vꂺʎ¦RPŒj›]w_2MU9,¹ô[ K.ì–ƒªo:PAQj ) v^Óìú³ôˆÙ²+W´= ÈJ¨÷O©ÓYY„ù:’&d®Ô,e‚Ø2¨¾³PeLîhŠ:CÇwØOºÃõ8‚(Tä.ѧÇpí±c»žg†+…@¡/œ$A»rÅ4ȽÁb™®åVmh'?¢HQm&9„¹Ý0[cR€Eö(ÔšZj÷Tû9ƒõ9bƒÈÂò/´U¾})•QèÔ¹‚_ï‰M QE]‘ Ô• óqOâ•+Ø4Yæˆ}å A“¦ ›A“5ÄœZ"U±sno䛄~ûXìt…«âàVÄÐw• ­ø„ÏÊ=”w‚Q lJéDŠ¢Øe š‚ hBI<ÊóìµܵÂ{¾<Ú~GÚ’Àô\{×ÿª³ç½RÇE±“WæžÃUAï|ëõ¢ܯe.ä°ýõë n¾Ö ,v¥Œ×±_Ã’ßF|…a£ËýPïêè¹Ây*¥ ÆWôV*‚ÅagjÑë±ØLØ$`,ûJ0j=;ÒnÁ:üRAÄù˜ŠvCÐkØ@ÅìO5Å„ˆ€ÕªHiò¸êHiâ*Ð Úeb;Eóê—³j8ï½H¯VÌSžQ±Ê¨-YuÉ0Ty†Â¬-Û0{tAåà6i3´YÁq˜y¶=w\˜¥Lx刼^ROYؾ)`þˆƒÛc"ϕƂE¸ aþ¤CÑËꥳüèÒškÍFtýÎõz3‚¤•#¡S'ÃC›·¸:B¯+}ø¬ïÅ,£y¼4ß™æåž¬m°'ªº{0"ë„<“ ¬:­À™éÞuŸÚWj8*ËÁ{”K'.l¤pýï+G%Ç€49;Hj¥—^7ÚL®ÄÖîå¨Î!›Ö –dn«‚•Dñ©#£Í3˜TžCÚçòVïŠWjªQ)TBü€"Ûèw¹föx,ÃËB=€RÞ§ø:PéKŽÄ(¹JŽÇC••°UëÔm…&ÜÖpÎ ù€îKKÈEÜhÚ‹J¶ë$ÁI=9í¨Ä޼0Iõ%—AИþß@ñ–@[ŠH²Éô p!¥P¢VA³D ôäÈÕ8z=£(EF.hÆHzÕJ2^ƒ$ ¹†©P0‰B \’9LRú¨Êô`0Ì Vn7ÑÀˆ}^¥QÑxŸ>EžÂ£$¥Œ5ûìø0í,gø«8Û‘¼ -Øɰ42¬%L&N@¦øï˜.V Î4ÃrÝ_>d7Ф¯œzˆä"-ÌŠÈ!ع$hsAOYB|Ã_«l~h=;Ä3‚5™³¨¢J›@á ’¢`‰ æeš¥Wë&|Ù&0Â4 4Æ#e¼ÆÑí* oa)Èò¼³ ÛKðòIX‚oD‚,ÿÙ.'ý^Šo•{Þ êˆ´ËøÍƒñ>VY;rájŸ®C*´$•ƒ«ŒÃµ_+X½ÙŒîõ.FÓjÙA ?éJº:41²*u2lº ¤M"üÒš¯<óa9êwÙw>:exaê2Áv'3ß§w A§¨ÒÕK©pn6LÐ~ÆØgŶ¼s8›J$uᱯªdä Û/;ðÊÌ€<û'D|Uøf$@æpèîRi¹JYÞ¼íŠ&§Jˆ´­“É,F ”wøÇÒÚîwà&8ŒÝJv°À)K£ðC ;xꜭÊÃ;õÖ/( áuà+èAf¼òw½‡ØSÑ(Ѧ8ûBhMè‹rp–V¸ü!ëà$x_¤F²(@ÎA6î CÇ´¸Åô CÏs'‹v”4· K怨RÇÀfPŠ!2‹ÛT %§Jf9â¾Ð*xß&x¡ì,Nl†¹ë„‘ö¡¬S•ýêy!P"žg;åHg‡‹ÎZ¡ i÷À,ñœÞžÕS8$›sÎDa ??…Ýw®à*'PÆ–†G‚ï)eŠ­À·aÑË‚céEr)øFÉ`\6j$.D2½ôÍÞ±hÝhð¥?™^ÈlPoˆ,k¿:í4”7ƒÄC®2$Tìîêƒ\xÝ€XÑf:=ˆ\Ï Õô ”Õ³ôZE*[×ÎRé0e‰NL(ŠˆÂ²|GA L3w–*¦)¡~,[.Dy PæjíÖ•ÍéWňƒN{ÛAK?#Ç’£4AÇô7}"ôzÏ´Sôl^8L¯¤ÐUÀæœ#Ï3\»ÊÚ g{D\ ]×ÁJj΂¾ú@z;„nM¡³Td!…ž¡¼6ôžÊ3ÙC/âW&9B4é„^/¤ëP‘æ¤LR œÃ23y“ÎÁCƒ`—ÞFOópÞ3 ž‡[¿³Ÿ þ;vÈöÏ’‡Òïtëúù‹ˆ¢Âô`¡SѦkØÙÞŒnú›ëp£•4¦yh¬fÿ÷ëhŽB¬î'iê‘ÈAî'Dl—{D²†¶iCÛš Ͱvd³{dø =á1Á‹íhÍíg”{Bšó‡Œòn¬u»p‡äxîøÇ|2í§¥-±aP¸«gt?_ß .¯îé².ÚÑ_²4K°4Ì2L-}¦Ï)ñ”V©ç4 ù—L ²^EŒ­hJåhµ¦€=?j7:”@ê2ø¢rC¨×ŽÈ\\Úsq‰o é½Åsw9<à²óô—ºÀ—º§£.:fw¨µ$e„¼)#dIa‹@WÙYð8r ïæ„.\ ›’žRmº°ö#Bˆx)-ðó0à‚yñ/rŒ >D&`¹ŸÒLÒ–šíH$xƒ§.ZfÐh:³;Ж¸È·° bp<|Ä5mj¶q¡LE‰#vË×b˜ g0ÓàvÃÇÆ_—úœ b=8Oøh†h>p+ò7ºBèEÇ£4ù£ÆûNž”éCxÆ}”ÄAÉá z;ðE@Ç?-³p”Tlx¹MHöƒä²AO@^…XÊ«€d_z üŽ) Þg².2WïŽùO* Ë\=‘ðÀõ{Ó\HI÷R'ŒŠÈVȘ6 ª°‹ŒæˆÄþãb›^«"Hz 4¿‡D Ç·MÀ#Š_ÁCñÓ?Œ¼À‹ Äj-–t¬áóBE'-€Êy*Ô•CgÚS‘k®¼"šÀ6"¯hÜÓú~Ðy…3–Q±­@3OÊb:KDz†<À¥ˆŽO…¥÷îB’ˆÄÅ‹Pa»)‰í,daá> 0.š!›‚b#-¤dQGDßÃx¾»IÐoÌ4‰ïïŽW"þ;ùš|3¾{®O7÷‡(ZõŽébôãï ;~Ä lÇÇŽÛf-^›âЈÖ+!ÎfOa§Å{~XtÛs‡¾þCúWæõú~µ¢ ’JNÎD¯ëá·Ã“b Ú;>ûèÀ&m £L%äÇ¥cÿvøgzø¾ƒN:5O»g&î˜>[,æç‹³n§Û´›³»8o£VÛì¼;N‘2húÙCôà£2âò·C쾟=`cLûd8,j•JF›÷ ]Ægãç—f=Ùð²±0ŽŒ1AVäP)Æà.<Æ@¾mLh§Id¤)½ăB# HžóÛ}qG|¦“7¡ÃJXûØr6Ø+1pê/X9ö¢Ù$ #ô„8GÍž»bÁã ð„SôÙeŠP´Ò0ŒAÄZ„Ü00–A ZD÷œµ®Ã{ì3m;=ì##BácØH†+<`#æÛ8 Œ9¦OM‡ágŒÂ5û51mÿbáXå³RoUƒ è“Ú&Ÿò#z[Ä”™¶|M¹\¼D)çøŽ‡Ü4¦‡`A{‚ €´ñOÈq™Ⱥx5¾‡¤}‰)·ãsêŸþŽƒèWöÎħƒ‡óàà"¦#IÂÞÁQò?þâo¡ïâ+rÝ_Œ› ¦Ãô¹A¤ÂöÃ/ÆgÒ0~r£_]údúÃÿ„NÌ—ÒOËè×wÇ[&›DÉB$ï“%Hϸ°Á¬ !§F@–ÙÊ%OLÜ”üùù¹ÁZÏ(ß³¿¤T̶Í'½EšÍ®Ùiu›tqÍ™ .~j¶Z§Û‰JÞ…túÉã~;4Ûgín÷üÐpÒ¨”­}~ÖmŸHÜèO““Žy¶å9ðŽÙÖù|¤÷ûß0Žé&p¼Ù&ŽÄR?b‹¼AÿÔ`{ʆ{çâ?0ùÒu,:*øý‰f<3nÄ¿×ããÉ4èeç'âhJžy¢“3 ï§wÓ¾q3Ý}£ •N‹®‡koþéccâÏ1Yþb\cÂæ¼€KóhKÄ«÷ðvƒ[ Çé²Ç\ÒÚPå9ù[`Y[ޯР­Qƒ¿n ŽÍ_ó\!º§ŸÄŽ»=ˆ!áƒ(ø7tyþÌbŽm$6B%öÛa»M_&í}‘§Í¼çÆ;¹ÍBr[¸l„ÁÏÿø™¿Û"‹P è0¬#¬A~5Ò!¦óZƒüÃ%Ñá ók¡A/²¨ê00+®N‹Ò<é:,iÁ5 ž¬rœW»èÐ' ,ŸÇÄ¿O4ˆÓÒh,£c”9ÜhðÜ–xŽH8¤Á0®m3`ü¨CÎüÍ4è§%:ø'ëp$ªK–µ7tvV#GÜ – ³¯ĉ³–‡P§CÉ™ Lƒœû?iЧ^/,ÌTÁd,8Ñ‘pJ‡;?h0$nOÒ Þvÿr·ˆäÎýÿÇq`cD†ÏÞ&ñÒœvi^λS‰Žf&p'¦æj}Ž ÌìÜÛ5xk°zºsÌ+=Çrfà’lU»m}®Š 1Ñ¥]8?Ñ^%»öpû¡õ¬×5zÿ˵›ÜªðoÒmÚó¶µ8kÙV«eÚÍ>íX§çèä¼cŸ sÑn·LŒÏÎÎ[ Ý&WÔ}¬˜é+¸–ªÙäœòSp¥"Ó ²Sô¿TaÖéî*ÌÎÍmEW^aÖ=;==kµò ³Në¬Ûb?n)ÌZfû|;lr¯ÂŒÎ¼7uY¦#(\Ñç‘õ‚ÆŒéGs^dpkNp¸4L‡Žý×:¾ºô­•×Xþ€HÝûLô¯%sïõþ¯Àÿ˶–©0Û}?ëÞwÛ¯º5›óÅ|ÑÂ'ó³3«g§ê.ºËœ7;æÂjY­vó vº½YîÞ,wÿ•‚HkWéžî±ÜµºTêhç*p˜çÍî–r~Ú¦à'ûű o¶ŠÜ*þúÿXy@ž‡I÷?AivOóÕ/ôÌwP«ÌX±ÑÁLs`‹Ðµ¿AÍnpk›†‘Mö4©Á-iÄn7—iXÉ4Œc61¨) jƒ¾€ö. 3غ7jAmY0Ôr1XíT0óÌ*4FÁmP`ÓÄâ54AíK`³Èš¹Îrã͈ô/3"i[qÞ"JËE”¾‡î³ƒ½‡æYÞ‚Cß‚CÿOªÿm6²–m"<ÇÍÎ|~vrb6í®e[öùbnžwš-‹ýáwºoZÄ7-â›dÎ윷OÎN»9-bëìüääüdÛœivOÏOÚgÛ‹uŸ9óÍ”ùiÊlžŸš­œ0£gË<ê€r@½åØËð–{Àó–{à?7÷À›qá͸ðf\x3.ì#|3.¼þÆ…Ÿ/üõþ¢_ ,¦‰ø‘ÔZÖó:i˜ $¤ÔL‘0¿ÊǾ Ã’{³ëšªN (GnPY F§-S›eÕ¤éªO§ ò?ôRLW®£H? Ê |ÉÉrBEAл»ÌŠÕViÇ<Ÿ6´E˜>Ï®´¤ 4ó%¯«% ž|£Wý ¹/é¶õà!"/~Þ­Ì«ë(ƒ5¥cÅJ¬îˆ ‚G`(NÏ$38õ˜à(‚•ºô1°h§VTj6@¯–B̰·›„~|1özBɦÁpƒk|^•f¸ÔyƦx˜Eµ˜&¬FвÀôt¼âåQ%Vðl,'/´óØQÃòÁ ¶þ‚ÕdOÈ¿[˜+BY©+¦×Ô'œe´®„] 5òÜ{?ˆî3}eœ ,†÷˜­éùq6Ö£îõ|K‡É!a4“W.1Mtp$q_ñ„z•çî@TöÒ _·ójpüþL¯_ i¬6¬rÀ¹ù:fõc1¹Xb¸MsÆ¡Ãf¶é.¤3GÓŠ`†Q ;ÏÍ6¬ÈÀº‰étNYMkp^éÏÓxvR“LOåÒŽ´„° + +`î&7MRïË7f(Ìøæn*•:Ï@Rg Ag ²év nŽ‹îº_49Ó]¢/ŽVŽˆŠb  –±³3¬ Å&ľ€c:ç uá¤x›^•Ê•»ÐÃa©›"QR‹µ¯u¦ ž³ÄûÈ•÷Ywñdhu¦ ˜‰8+yá•JÈôe>b^…»,{Ú«²ü¢(z~nè,ÏÏÙù&X¸à Y†¤)l3ißšdÌìŽúXöùW‰îð¥ü=u–>Šô”)vñʆ–UÛbÔ’M¶xè0¹( KQìª «r ôŽˆbW¾›èîƒyH*4ºñ’ÞžhËã0 ¼R+L‰9Á^PnôehUÚvÏÎùíÊöZ ޼­%†mú ôÜëý%¯<Çê Ãî.œ@°|¸’q¥¸¼.;TÍ»éõ¬¤©N¼m8nѨ"—mƒ9~Ô2kÂòc·J}îm¨8ZœU‚R›5Κ a3 RælÒïFo“'aût1ý¤Ï5é_nálÌáŠîÌÜ®Ã0ð}LÆÂ±M:Ê Kc&,±Òä°ËgŠƒ±\Û +E™ °smÅó¹tõ‚Á¢,­ UሽÕr¥JhQàkÝÌQ ôzû_ú“?ᔽÞÍÅt£Wí9fè Ò–ë ÙFh6@Sæú"EÑjÌÕçß÷ÝwÌÂØ<Ú¨ ºsü%ÅÉ2ŽR‰©‡#\tª÷Kü+[’&¬š{HUç¤vJ‘®§Ã“VKvʘ…±#y X~¶kQz—ÒX½ÞçqõUðyLçœ)ŸtZ=`@ŸÓÓêMú}R½5¿Oz=óÄ4ïëc^´t”0RMb­©·F_üôöž7Tú2›z#' GHQÈ]k­ ‡£êƒ7ûZãnöñ>ÝŒtØ„gRõW¶)Ê>û(ŸàZûªoA KWY™øÈ§ î=”›Ú„ ˜…gCÞë}Na<‰-=µ¸FWqï2as÷Ø5vyȱ‹"œÁ'†Ì:U8ÂÒÅÝ÷cu|;x–_Jëh{‚O‡ÿ ¸fap×õ §_êÀC¯8 ¬õòÙ‘Úê·yUxlÝ¡¼Ä}øA(×_hcž‡|Euؼ‹%ìH/ðº¶îúÝçÄhÂ6ò`ûì{°“E9&Á÷õ4ž+”]°3W‚›X'Jk„d˜ßä›+LÁ·ì{s,Ÿ6&ìN›! „§Ž«­ùJ,ºÓ!sxzÁ«èU[s1Ü8s—[ kX •îYãôkZ ÃáýÅà[mP¾Ì«§Ô%¾•ÍòRXWªs¨Ú‡ú6DV}`£¯º n§²£©Ô£Úf×Ý×LSUK.ý–Â’ »å ê›TP”HÊ‚×4»þ¬=böŸìÊUm²êýSêtVa¾Ž°LŽ¨Ô¬'/”ßÑË úÎKOËf££)ê ßa?é×ã<¢0"HæSX¢OáÚcÇv=Ï W B_8I‚våŠi!zƒEgV$·jC;ùEH.þÁ$ç0·fkäqòG¤ÖÔR+¯åî°>'@lYx‚Bþ…¶Ê·/¥2  Wðëý1q )Á"‹•&'À®l@˜{¯\Á¦É2G°}Ùu‘ÔvÕ œ4…Ü| š¬y æÔaiü ^7€7òMB¿},vºÂUqp+bh„»Ê…V|ÂÀ Å«;Á(6¥t"Ù%¢$´BSPM(I€Gyž½ö»VxÏ—GÛïH[x‚žkïú_uöü¯Wê8óðzE`î9\ôη^o!ÊÁýZæBÛ_¿êækÀbW*Áxû5,ùmÄW6ºÜ_õ®Žž+œ7¡RÚ`|Eo¡"Xv¦&½‹Í„MÆ2ÅZ=D!ÁŸi·`~© â‹|LE»!è5l bö§€bBDÀjU¤4}\u¤4qèí2±"‚yõËY5œ÷^¤W+ æ)ϨXeÔèŠÒBå ³¶lÃìÑ•ƒÛ¤ÍÐfÇaæÙöÜqa–2á•#òzI=eaû¦€ù#"l‰öZÌœÎ*Û8J¿Kò,Z§]WîЇ¡ÎÎúãoê3Z*$(cgiÑE<M¦çVÔç^çóHm§“Æ2²ƒr9ºkÓRdm3€Ò5GÝÞ%-Ôv—õ®gv:´ ’’q²R–=Z˜»z’!_I÷NªIQ-ÑòûIÝŠ£R¢e’(WþÂR*š*Ñ_ ˆ¼ˆªMZÚhN  ÕÍ!i Jçy³AéªëB£µÊÉ[¼¡kâ{j}˜ãm÷zšEËh-1dBK•ö£÷Í ?0]Ü´AÒÂüÕtˆAïT]²Nb^c7q]²hzU<®G¡Wfø‘ÿ8`®kTÿ€*ô_@ÏJûäÒÓÅúj× {yÄâ:Ipò29íÀb·a’êKm/’  ü¯«yK$‘"’,@ê ]&N¤JÞUpÀ±D ´rÔÛ8ùZ(Y‡\ÔŒ‘°ÔJ2^“, yŽ£BÉ„ÃB“r†æ’,`’«ƒ^°ês“±'niÔT†Þ¦ëh¡ñè%Y)ã?;mwV°t½eIq¤n‚A›#k¬Ö¦ˆŽ˜ü¯&kÎkÄÕ{uz—ÝP“¾ ê[KmÒÒNJÈY`-i.è)KÈoÄkU\e‡|ð,XtQ¥¢‹ðIsaIødû*;Ñ(UèÓ6‘'@#?G¤ŒxÔ_FaŸ–‚l—wä¯á¼bîÁ× ü)-ÿÙcNø¾ß0Ú¯¼Õé1ãç-ˆGò¹°B•E©ÜüHÖ×H—‘f6!ŒÉ]cŽ ¢uÂ1¨Vʦ‡ Öá…OËпéWõ¹ú6…KnÊÈÍ/–íð%^ò.âgåžï^€×#%–‘ÇxØÆº°D~fà~•»á3Ké¬XÏ5ºDÔc&ŸïÙa¾åÑÜ·5~âù[7ü™ÆÙšº’ÜÅ‹]W«æö«á±ãÙ#ÿ;ߣÓ6&Þß{0 ΦÃA$ÀËôÒpôþ¥ ÒôâªéC7/Öh⯴¸^¦~/)Ê ýš­ý n÷ãèýuþ±1 ,/”{{³‚pÖdKÞ£))¨¹°ˆ ëwøAE@O˜QÀ­Å¡uÒ¼u#Ïâp$œ¥/}W¹ÝTÍ£n$Tî¢Àù® ¼È‰7âÁb¢Œ¥ÎU¹;S6ÕŠzÎùºÚ2­)mKqƒ÷bèB:IƒÓù¦>ô{o&)ë•'ã$~½£5HܼwÔÆ õÜ|ÁhIn>¤/GÞýzÀ©7Žè³³vÏìê¦õàG"]*gGNŒõ-uª=8Úp“H›Dø{ï|í¡¯hLËQÿ˜¿‹ÞÙ‡—¶]&ÙîTÇweâðN!`ˆ:!ÌZ²H‹p¥T%É3dOœU4kTÚôÞÁÙÜDòRxøU—Œœtv§Ä[+¼ýFÄ<%ûµxºðÍÉ€ÜÁ邵|ȵ¼ðºÐ(+Ò9„uÛ´@-Ñr|Ä?ðµ $qÿnÈÃØ=èì ‰Ib4~ˆ$ƒâž>gFŽÚݪÃ;óÍßgb¾¨0"†OÞÀ>ÈHÜü}À¾‡xæFC¢E›â<B[¥¾(‡¯Ó ï¯džïËÔ(TmH‹tƽÆÈs´¸ÅtÍ©úÜYG;*ª[£%óN@t©ch#(Å™Åm0Hä•S{Ì ÄçB«èmò©¶y´8±mt× #iíSYMÝù9ÕóB¢D6=ÏvÊ‘ŽŽ\,yæ 0¤Í#³ÄcX=뇱K8朡æ4¼uJ[ïH}€«œD8\I^§“O|ϦE/KŽÙ"R{LÑ%Â¸Ø z¤MˆTû>Ô7{‡!к^÷ÏÎÐl«Î¨Þë¬ýú´WÔPÞ5TÏ–« Ívwy¥6žH+ ¼´†G Þç¤îôK”å½…ôZe*¾k¯SåaZ':!0YQhN6Hoőnj™Î§í”€«¦K€@yIÐæj!ÉŽÉlsøªéq’¶·kæùaäLÔ(’š~Æã­J‹>HÎÎî¡Qð&…§î+iö*hcÎQç¿§\»Ú»Ie/Up)u^ûKåqõÕûÊÕ!U4…ÎL“…”ªBõÝtÔuJ¨ÎdOí¼H,™Ô Ò OÎÎB˜‡š„ì4÷ m’ZâV“W` ±€»°=ݽçüA–¿rln=ÇÇÿ+v‚íÇŠBá;ˆ®7Ê(*І¢ sØÙF7Ír¸d$•©±eÀñov»Šc+äúÆ‘p’ª¬ r,÷Ú lWxDªŠÖ ¢µœ]ðàú–ëÈðÚZñAÀ§ÛÑšÛeìWBš‹Bz»‚§¯ó6á$ƒ“±ãˆÁô<-ÔdR ýL©¾¦{óá¦{qù¦u–DÊRÙƒ¥T݇ÉÈÏ´G9{”bìUN)ÓÊDb –²e ©Ú\CÀk¥:ðH]„Ï’Â|õxÄC‹3{¼@®,ó-!ý:¹;ˆ â´[äŸv^è_êRj=¤ÎR³¨sUHÉHyJFÊ R2Ò&Ÿ†•2Ÿ”¬ c@…Á£)HiP9Ôñð“B·«"»áÍÏ…¥ÔŒ5˜ÌϨ.i¸<µPDþ8ôÅb Û¬yÍ‹òb‡`¾ébš½šÂ€éàŠ2©…¢åÙ LF/þQ²ãï¼ÄíødÁ# ÅìÉD܇qÄ¢‡¥4gÖ¥ ¶x'¥Šø˜>GÛwaSQ|J'Úñ¥?™ÿqTÎÞ¯;ãº4)úlãï3ÇþãèKÇàÓ8äPÿéÔ™8À/+7I}cY`Es Nð[°›ÆÀ 5.—Ϭ”gáxÎÂrß– Ó_pæO¡%œ-„é•_YŽ‹¶6ñrÐ€„¶ÄÀíx‚ú·¿b?úß™üTyàð0 …v =„g…bòxñ7Vïâ“åºÇìÆ¡›>–à!˜Ùócö1(±ßÜèwJ†ÿ:±˜D¿Í¢ßÏO¶Ìz%S0x—L>Ðna Ï4Bè§’ÌÖs6XóÄ›’ßßß—°öHyr~‚¿¤Tx’.¬«˜F£^?bc´¾å£ŠaÔ·úœ‡0üXR’ðo½uÄœô¾U|Xk–2<´¤ñ/UN[[;Pçx”/$,ì§BVœ€*·(gyçw –Pl8·Å•x€F¥ëL Cø»v9xJÇnäƒßÙ‡Á [U OTš´ASò]ŒK?xgÞ™vÓíÝ}†9 ceSáÃb|}Ìz1¼1fÇìp¸K¸„qmøñòÝ_q×_âD8Igtx2‚pCµË)^¦‡y7·ÀR%ñªm.Y6?ï²…"¼{òÑsŽáÅŠç,Ä@³?ŽjµæƒjƒLmì^ÌK?Þ°ÇE›—±Á-<¡7‰a‘’h‚AH"|ÙSõÖÊß­CÅJ‘þh6¾6j¯¯Kk•:ŸÖ+U^>­Ôǖݬ6[ShÕÆ´r:mYF}Úl5øä—.}]ºiÆÊ´ •)˧LGs(9Õ°ø‰Àò„õ\¨1êYh+H൚fT¤âU [p"0þ§ÿVj<Ö¡§Û~.uh¥^®§;*Ô¨ÖO•- jÔË@×|^ÊÙ²–;ŠTþø_¬Kñ6Øtò÷‡œêôÎ(‘üº`Ï% ÝñÖz¹ÚõMÕ ûain¶ÙL}™Í~XŸÏx‰fŽøBåÃOÍ.!Aä-»‰'m,-5àüe„ñ„ÍôÛf@ºÖ„––c—5;–ƒÑŒÔ2”¦[4Iª«$‡iœ¯MH,Iú"‚6WM• „öCKhWU÷1îs©©¹3ä£GK7*8|MÎ"âÛ}\¿ñïš¼ET£OÂhÓwÒV¯D¬ÓÕAÚôšX<ö:ªÛ\*ÄK¶¡îz]Uªeò@ǽÕw“”K5Zâ¿äžJÒæº’AT—DPA0e´6¼lR¶±ÝCK*‡”˜hcÖΑ5sÍ4¤íÝÈèõƒ›%'i­t©|hÙ·ô³ I,æÃbì²’YIÚãqÀW4D¤¿ÄÌ6Û, ƒÀnCš}Â,Ï”È [¨ÐO~ ŒÇ3ÈùjDF?KX-—OaÕE“Šé“:¼d¤ÏfŽmŒžFç{Í¡´¼‹š j2»ñƒºxrLrr¡ÇJyÊ-M j&½©Ã]åP¢öž>Îtâ„$ Ô‘ÝåR½N»~Xd„8d ÊjW})U éÒÈÆ!féœÐô@M›êj’æØÊÒå –Õs×3’¬ÙMÄúÞ]Bœ|æè³Ò½@Ôìë†ÿгÍ.à5æ7aÄS4E\k©¾7¯±?g©zomoÞ<œ›€Ö½˜öêà4 5?Ç^Å-òžÅƒg'úqO¶ü¯ø4Ø‚As†û)Þßî¥'"LÄ×ô·¿ÕI¯Y³¦vsÒhMËÓj­>µŒš=®rcb×§µJëtÌ[5«Um’œô„ÃÙ•?‰ÑûF8Q]ôçÂòØÝu¤w:¹¡fú·z€=ñ¢~άїdI³vˆ#ßwÃBOæÌ Eì̼@ 6Þ *9,±÷ vž°³s¬dAJN8(eècªbK›.×t÷v¨˜xó§Ñ=tRZbRŸ‚ÔNÐCsŸÝ;á\tÇŒ&òÈ «âÛ–^ÅÁæ‚*óJÐ_'ߪ!?mÞ4©T*ÍònôF½¢5MŒF³¾{Õª•ëVuÛ0iÔjÛ>ÚºØå]±QÜúðµRòü¼áÌÞÙr‚‰c¹ÿ {GÅ¥6w_5r¹Z>m´ž˜$U=µÂè[fNª©gçzú– ¦"¦ƒË"޽ŸÎ2‹F ™¢…É×<h«Ì*$0 ¿Gþ²(V«9@ÑÙB…<¿ÅÈ/ŠMè+\êüO±È®FgCäd±ˆ ñx‰ŸúK¼„e³)Cb¯R‰²,1ß…\“š$ÑÅ0åĉÀXƒÌ»»í^ûæsÔ¹5Y·wYbo~³ËßE’ Ø|y˺&ûÔ½iõú0½.;=˜f£ëûØþ³Í7íÑûþð¶`ŽÚ½«öðŠu®º£n¿Ç®:vnúƒÎý§;Ú.àãÕ6_XQ`mß?úÔv¶ëéß±~ïæKánØÈrÙï%%®Û#Aо¼ì F¬}sÃúïѨ3¼5‘tÔîö:WÐXxÜ5 i;Ú†Îm§Ü­Æú‡­z” µ6p ;í+¿¦*\B•ßßÝÜ|)±‹/P t‡è´cvgŠ?ý!»êš£a÷ân$:ªÁÒÆcõ ºê'_Ö…•Ä›õÝõ8qüxÕyßí‰1KÛš¨»­>_p+±>ð6?hÍ©úÑû+޶A¬ŒƒŽæ‹`éÄ@ax¸"Ò‡,p±òuìÄ1?û1è -‚‚ë,œHhoÛ0Rä¥!ãRÎm£¡*¿¿=.`Ùrއ¸8åèwÕÞ²dÕb³ñ3cOB®ö`Xpb #gã2GÊfÙÛ{D0ü¸ ^…&ØíYÀEPú¦4Ì52 Žd†ÒV¨Å÷¤+špZb[/ìñ„òâ ¸B:Ï“¼.7hîcÿ ¡é»ÐÓçŸÉ`ú¤B2¤>, ¬3ma èo%DD‹Í¸¼`dÅÁcüñŠ%@¯Bá´åÀ( DˆõªQá6Ô½ÍÙ êâÇáÆìJMÑ‚¨ §˜Á§Ì‰¶‡î ¡|ÒBÔE|2÷|ן=›ŒGҌ۶Ïvr¤%¥ÖâÀµ"ßÌŒ€:‚ulÙ oÄï0Ñ— ÉÛõ'DÀ_‹ÜÃ7iëzjÝ?r˜ÉNÃ-1!”å„ÝLÝTŒm=`Æão0¼±ÒX[@Y„IòOV1”/Þ ÛCzœ».þE6xÂÁF#7ÿ1áKù5äê x=Ž'B*%„l»íˆéw,†ý ëŠñjÁ¬öŠãÆ!¨æã~þ½·]nGÖÿë*ïF¼[§,à÷ÌÄĺ]žîêqUõ–«{úìÆ†ƒ Í²$*HÉýs¯d¯e÷Æ ©  hK¶³Ï™nIF&2‘ù< ‰&ÈI?ôóìoÞG ïU¿zÿËmOÔa›1Ñ#þŠ6¯.h0ÆÜ}ø0gj-Ç£,kÔ±Ù7öÊû.n‚ɢš7¥›Q¤Wc±.•¿ »f~ƒ€×¢jÎßB°$£Ø<êþʨ{z£nº½jð¼)¬jÃxÍÒñüÛôš›W×Й¼ÒÊ×Ê^¼0øÇ7ø >Â:pö¹,Ñ”ûA@‹Q©íO® ø¡'çs6ÍÑÜ /­¸ÔŠåÄ"Õ„ï-/ óa¾F|¨­¤üUÿ[ÿ]ð¾_ܽjñäí&|o˜ ‡]A&¨á{H ëÌŒ ³áï½waS)ø{‹;üØxÄâ-Ó¹¬©i!¦¿aÕL{l’õª}AòäÙZ­¿ÍùØ[?ÓW›äµ½gå½åkü½ÿ.z/æmœ•nù(„3…¾$ñ;Þöü5_ÀräÓ„7ÿQ‚¸ä=„Ärýá ^µžËe\p½Â2$מ"‰Ëü]à›Q?)5Ãt*æáÉoŸŠr¡š¿¼ëq£ë99”0ð¸D¤±x¿zAµŠù=š°˜•³úV¸ÿSIVÃGÌñ‡êfKƒ^ÿ ‚eR“y˜ì€ ti¾§‹{TÔ—g¾W/ú¼#Wx—H]âgh³„‰ k1aH`ˆ_¦E9"8ƒ=oÇœMÅÈã`7<ÉbZ€I„)¿¡`TõøŠ>•O Œ²ÙXî†Ç`2ÝÃÉŸ¼ïæ&Z?˜òEcÌäÖú¿˜þßû _SÞ÷R ¢ÊY\΀1[šÑ0Hù‹3 îŠY*îxÉ8ЧÃ'CÊ7Ò ÷VªÓ¨´¦[.˗ʱ½Kå[Ëw€Æt„íwÓë#6±\põ ³,ù=…¹Y3†5'Ë{ïÒô½T±F}e2ÕöœþmÊM¦Ú{rË-÷Ø…¹': í 0ãø]à{ÆógÌ ¾ñœ Y/ ‡éUk|mK&†>å3Æ&}±èˆ{Ù¿ËfÃXˆ^·\8*ѰþròWg}#n-—öãš&|è QÆMtÐ(¯/šÊÝD 1¯i½Â½câF«…O+þ.”œJšÈîP85ïg¯fAñÑfvÄrq6(¬új]cü}Œ€Šï#8•ŒÅÜè•ý]<²pqifóWJÂõßïKùìaþµW0Ò‚ï@pCƒ~ÈÝ.αx$ÁûMFÙ·3p×NK‡ª±¿DÙä!O¯®¡ËbåN§ÒªŸ7–¨°ÅŠ,JÅdÛf2œôÂŽÇà%j Pš3¸EsG¦W¾¾…÷ã÷1T”ê3 Ñ’÷„¹¾ë4vŸÍ9úA<âQð nŠ\JÁ*c?È—ìSÆÕ^ñ>pû¾I9Á+éˆßÂ)©´ÀdºGT0BÆçp Ï#ùЃ¹+¢¿pê¸d»ô7Ú.Òpe‹ßApáøºeâ¾qã ìÂ…7p^é«ð§ðh'{õNÊvè°<>«äÕ-VžmóSõr¥éÝñ{Q÷™‹Z—à tñíÃÒ_î×ÿ©˜k.NmÛve¸^E¯˜°H^²ôHË•o¯¶ÖXÚ%Ç||»gwܼ÷€§¼uqcZÖ¢ò­¬›Ã³¨‚²°($·°xGKwS®0£@‹•,¼Ÿý¬Ó¯Ÿ;ùþé§O矾ÿ·\ºàÕ`÷pÈ\È9\íæ|¬óUB.”ðRйšÇ+[É;¹à¥œÅmÓ÷ŠåOM8ÒX[×ܪå÷Llã|RÅ öi>£b`UËLÛÚ;ý}áùž6ü;¾ïGÁ¬˜‹Éy-÷èÞrw3ÅŠ ø}àÖ*›>ôÞùÆ{n„Ë¥•xQnŒà À}3¾Üoô¿ÁŸyëñCÿäË|Ž:»øÐûôåôü÷S:ùòßs U? O¼k§¿ð/'ÒðùÐÿ×§ï_àŠÿâ—<éývòíû§ÓßÏO¾õûýÛo_/Π+_¾~9úôå_߸b!;ùvÖŸõã‡þÙŸ"\õýk¢Sg~‡F"Ç¿_ÔÚ~»²¿œ„PÞOgýó³ŸùÀ!NöÇÉù§¾ÑbÔ0ŠóO' Ãí ï_ÿì¸$„'ÅŠ ÷ïûE£üʯúÓY„ÎÏä@áîðÛúíìô»{~ú7õüƒ|Bðßö‹³ÿýwþ3ÿÊõõ~û"jðÁœ|>ùùì.Ì}9n!¿ô÷_à²'ß>A”¯ÿõ÷ï2Z÷é¢W -.žÐù× ÏûíÛWþ . :xö+ÿ~""„_ùûÖ?ãWøúùÓiïäãðÔ~>ãË7îç“ïßùŸÿSÞâ¯ßþ»q[>ˆûÑÿô/q3~9¹èýtÆ¿s%Ÿ.ø„(£ˆüñ^”0ütñûé/Õàà¾rc/ë˃3x {Í×xñþV«ØÝ5;’<.°~¾´ïôâ´©7fWÃôŠq_à½p®Äûv— vf¾• ³<¶â–]*,>x{«%jþگ߳!h¾ŠÉÕ ÜÅÀr~ƒ‚£q)æoumÕH¸ÕXÈ(_±¸[8œjuÐ-ŽF¥TQQòÝ<»:ËUP|ìÂCäKN±²qäúÇxE&9£Ëµ­ óˆ®UîvذûåMßh]ýòéÛÇ>¼ÌÿÍçèÇ3¾Õ.Nkç'‹Cõq-D—^ºý-"Mµ¥WÖâGâ ‰‹‹k—¡uy 4˜–Üà˜ZÕéqiÐ-[½f`Kü­v(R§DLñö>Ñ‹êô·æˆ—Þ鶮ȭ·r2Y{ö|È»RM èÌb΋±(ãŠÐ5nJ“ë¢ïŠÏ[s^(Ï¢ä„AƒíW;wÇÇõ“®ÏV¸Biú÷æEø–$ò€¤ pC8ôæš§¥‹ó oþÛrWyÈ,Òʇøð6=vt:Xî‰xÝWHGb›ž²ÒÌÌfÕô›Û\ðFŠ7¿{ËF©<Õ•†Íâæ‹¨y ·áL8Ÿåácëm[½#ŵ8påóGÂYGVü©°šÞÚâqÒ “ï†É'ZJ.»ƒAO 0ÃÜŒ‘1ŒG`7L¸¯>]<ñ ;†˜nö &¥Óò=–N"¼ãex£÷øc;.‚Tåiõ“-¿8•£z%n¸<¨< †)¿ú˜ûõüµ©²và5Â-O9a±È’ñÃ/|×»ÎRyP2¹¨Rn?fyZÄi†­¬ 1ù`©^ì‹«Öÿr͆U”Ù¸ŒÉL¥¥Z¨æ«9¼h° ƒ¢?›”SðhRV /¢î|×ÎïÜ"±BÊ,³ŒoWcä0y"W,®ÉòÒ‚è5º,Œiy^°¸Èš37ù`ÄhUUæËÒŽô-bý/ü>eùMÿ4Í#ÈÚºàO,蟹!ÿ¡þÞú¶a[Ä«z2¨eQÏS»7ærË??>KBavC!wÓ¢®ù¶iX‰›Äs\b›¶M=‡xÔ =uÜÀÕ…i]|ü÷‡•ìLU V Äõˆ*SqL°]€†˜²µÒ½2µtQ<*‹,§YQ½@sU¾Œ¡j@“D'dîR!Np %§’úi95q+lkùšÒ(/SÔäÚÝ“ËVqZ"²¡U¾ å6Q”yULk Ÿ¯Üohž—i··)»ƒÕjZÓ[žŽ”&.w‡„§,,Rˆé/¢í‡† ²tT–A\“,±—PÃãšH£¤á;Ô1ÀÝë^ïuh*m¼÷S-¯“ÒvA{ßMËRV¢‡E|³6®£óÛ¶6?®úI” yÅÆ®®"-ç~ç#w[¥zæ¢-GAwº´ãq7•vÊwç ÐøåOψؼAÝÝ÷œÕPËfw´,¢®8:½Ö9’tªÝQà¦Q¼ó[é ÿ$Dp$ªRSjSXú¬—¤ -¨¥N>©ÏR©2ˆe•QŒ !¤À›Z§•lIB¹uOË%R^0 áè{ª`¢,V­óïóU«viÛX½èí5–J>ºã·£ã%V‡æZ(^Sypö[0fñcª+üe:žBšl.(Ž:ÐXw:W8à?t¤tÚ‰v?|'ÊÒxø£E?‚nn=×#<á®´{Ó‘¢£|”¢«´3…M-hu¦Ipêu¤ëº3M“Î4Ýݨ‚Œ¾Äv£,»Ñ•Ý»Ñ4êê–O:ºßE ؊⎴MƒŽÖPPÕÍÒ.4u3¾ö§€ÝèJÇi7¼¦EGš¦A7oŒt€iPDi7+{–‡ÝyÕúXé/šØÇq|Âÿ¿YÝuþ"Ôy} B,jÖìê¼>£ i}—Ö‡ÏÇoÛ•y}†ixA2â È¶sÌ›¾»øýËø{ˇrI”x ²õ/Ê‚—WJ=äwjòÛÌ7Ü(ÐoßbXK V~ÑS¡1Ê?$è^»yË1.ä—ÐR 8Àø=L¯i‹-dë_”SîÆ§°!¶h1°e «?i*Qê]B³m‹Ö„ßÔEUF´f#ÜÕKc}Bf&Ý!tMžƒ°T„¥",a©KEX*ÂR–аT„¥",a©KEX*ÂR–аT„¥",a©KEX*ÂR–аT„¥",a©KEX*ÂR–аT„¥",a©KEX*ÂR–аT„¥",a©KEXj ñ#£u°Ô{Ϲt¬g¦fbß³ I‚ÄO’ˆqCfÛ‰„F”˜Ä$$¢JÀÔ_?þtzü•ÿ«æ)˜qûuçàT‘ª|­ƒ©R§Mªë¸Aª¦EM£Qu,Û§5€ªcù†õ8:UΩe|*ÌÀuàJÙªûG¨r›‹6+ÊUÑCxÂ[‘I[_¿r-_cQüÝûwަÓmp±53íUÀ«3ÅÜ8¸‡eM õ‡ÜXÌMpHøCÐnÌÊD¤"Å)†H1DŠ!R ‘bˆC¤"Å)†H1DŠ!R ‘bˆC¤"Å)†H1DŠ!R ‘bˆC¤"Å)†H1DŠ!R ‘bˆC¤"Å)†H1DŠ!R ‘bˆC¤"Å)†H1DŠ!R ‘bOXÀð– *f:¾oÚ–ï9ŽÃ5‚ØpLÆXXFÈ—;Ã`!ÿQ*ÆÇøîûç÷}»ññßVò3Õbe¦§ÐKKP¥ŠéËÆ·ižÉ]6 í“¶–Bú¡W&—~(×r¾hŒEžÓ¬¨^!q‘z‚ñ°„ñÝf¹2{ Ì—l:X2Š«oHN¬²eç+S:~üšÒ,/“ÔäêÝ“ËVq^"ò¡â$¼Šù–EQfbTQ­,q|ÆrÏ¡yv\&ÞÞŠ:dÊü_©·<)\î _YؤÕ_ÄÛ_6Ï%† 5!k _j—¶Õ‹®Ñþ0_ÿy<+rîS†`>ÞŽŽk{ܪÝ#æmÝpÿDZÐÑ¥Êÿ¡3µÓŽ4±û©ð>;R—ÆÃ©útõ¸&áËu§ÌóÎTu8/ EÔ¡®8ëRÛu‡º&]é‚<¾~t¥.»Ò”Ž“¬+]£îîפèJSÁÝÇpvw¦ot¶Ž²®–X¡««QÞ°8KêJ[:N»æÍ0-:Ó5 ºz¤+Eƒ"JÓŽTfyØÕã„C3j]iƒÜâ.çG>J»Ú¸ª®nW•³+H#xèHc!òin;³$Ö»Ã1´v¤o6^;ó¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡z¡zêÅÌW¹yRÛsž™ÇñB?2\7ò}Ûa.±]Ë·Í 4bÓµ=7˜éº¡eê2ó|7†¯g U^žÇµ,(s6·Y*÷.ÒêÓ\Øêeþó‡^^Љøq=¹YëƒH-•÷n6ŽDEJî÷Á‹@Z!qµ•‰g™ü‡¯n½2f»™xH„ 2V”™`Ò‚®7t:2.(úeF@^eN†³«+H[íÿkA!´ƒ0… ©/Á$DˊƦÉR´îv§E#Ò¼È.¯Xö§'Ù_dhêNl&YÃÆ†®¤yƒ_é èˆg˜Ëô?¦]Ýšô?”¦mePÿÇu}ß°©_ãÿq=nóXŽõ8ÿ¬ Ëì?k(k ²þìŸõ‡˜–í4Aúê´?uRN©Fž„ºD™Rg»Â¸€ºfjß•»¢¥,·ÂÚK ã`²ƒx”íÐí£|´K×ãqÛkA[É¢h;Û¢¶‚qÓ˜ÝOW˜»‰«¿&AÑ–«*g‚XN¥Ukfª5³ÔšÙ*ÍjfŽÙ!}–\[»V)ûÊ•*“–moËÕnì¥â:Ûé0AgëÁâ±}È‹Gí^Ò£Í[Q‹Ò¶ûwK‚»é ÈøF#vï.~ÿòŸIžÞò‘\ò¨HIÁù'¨h’+uªlØ¢W•ä⣊› ³µžM/‹,ºaj!ášDgª»Ù¾Åð—¬ü¢ âz’*õU¶kÑÇRpþII$ÏÅ^É–­úUŠÖ>+ˆ¥"eZ±©t°Ñ¼E/›òË?¨(È –ªÔÙtr‚N«q‹qÕ¥›_U„¹Õw9§÷jÞ¾zÃ6£)%….£üî2f£L¹ƒu‰–=m¨Xó›’Å}éG|7ÑiØfH¥ä⣊Є]©õK6lÓ¯RrñQE¨HûUd³q¬ÖôVÍ6íÚŒô¶² ä'¹G)/£#ÕùV6l1ˆJrñQEˆÿï2…|0µÞÕ›¿ûãì›jßrË?((ÜO—Ñõ(S›3Kïƒãùÿ‹369§’¼ýqjÊK‚ú}{÷óééàÓ—ïgß¾œœ«ˆ+g²]‹‰Q Î?©ˆ¤j ºlצOiµxËO "ùHÍÐ+n EzM[Œ`![ÿ¢ ( ›”úÇ­4Q3ôçM[ e![ÿ¢ øWª¶7Êv-zV Î?mé‚äzwþïüéÙ¼õ)Æ”a£Ù4.Î>«ÝÓkqÙ§ èF:ï}ÑyWw~ë«Y‘~+´d÷SÕ¦©jÉjCåKO Õ¦ÊgZŠú–¸Í }:t¥°%‘m#d¶àjoCïn©³´+7ÔºÃË2nô“zêOí 'íHÒ>‡ô<þÌÓÛì…˜~ÛVõa³l€^k­g·VPe$ëË´¯‡ ²IÉË8T¼‡Íöš«Ýséùsw¨RD7no‚$a«:× QŠ •JÕˆ ŠîŠ£ÏVû¸µ¾„å.ï£0‘NeNõoÁ˜man©t{- ÅÛëh*ë¼w—·£NõÝm!·×P§DÔ®£o;U»Ž¶ídí:Ú¶Òµk(Ûή®¡L‰_]GŸ"ú†ÊíÄèzÊÔ¨Ñ5tª’™k¨T¤3×Ј„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æHhŽ„æ ͑РÍó-„æG@!´ŽÕüÞs.ëÙxÍ Ãô<ß ±óÿÚ^’ø,ñœ8`Ë Ÿù. <Ó•xÍ?ò1A\QÎ:™1ëù2—»¿¹ðPªg0g*•®qPtØÔjë&¶ë¸µ§Ô¤Ã¶ljyÀôXgÃv jÙn Ûõê×@É븰ålZfÆ{¸ŽÏY¶FRì Å6<›š dáz²õøÏ«2ÿùþc…éT^ºYÆŒ¶PQÿ¢+y¥×q~''ß¹a}#¹[ ¶ö’ž•_ZijsþHÙ]››°Ûé,Ô,ÿÐFî sÅÚÊ´øBEý‹®¼î`KƒàöäÝ$[|YÑêOítéÞŠ» °Fk¡Ö7 ¦£ñM[ƒÖˆ×låû¢Ÿê‚kÚ÷¸cu¦é›t‡Ð5bk[‹ØZÄÖ"¶±µˆ­El-bk[‹ØZÄÖ"¶±µˆ­El-bk[‹ØZÄÖ"¶±µˆ­El-bk[‹ØZÄÖ"¶±µˆ­El-bk[‹ØZÄÖ"¶±µˆ­El-bk[‹ØZÄÖ"¶±µu€éÞaµ¾aD \G†‘E#›†.q?ˆCÇ´½Ðð}'T‚ÕBfå»ïŸß÷íþ7pdø:q6¾MóLìfªpÚǵôzßË ÐÍm Üy¶(ÿ›°ÖË è½¼äzz³8Ø‘Z&*ïÝl‰<Š2˜Ü3î…´C çªÊ‹¯Ai-YþXf/Kü'ߦ½2jT¹¢÷¬6(ÈXQæ‚IºÞj—2 .(úeN@^åN†³«+H\íÃ{·" T_*D&ZV8ßÁâ–o¸Ýiш5/r…Ë+–ýéI„¬ N݉í$kXÙЕ4¯ßøâÐðц>šø¾ažßH›¦gSÛ¯#¤MÛçzZA¤}Èèhêñÿk‡Žn Ë:Ŭ= N ¨Ò°Vò¶Ù9•+t:4®°eW¸=Õ^òh“Ä£¬ØA:íÒõxÜöÚAÐV²(ÚΘ¨­`FGÅ4f÷ÓUænâêS=(†-Ås&¶ •fT­™©ÖÌRkf«4{èm¹>v­Rö•+U]%Úrµ{©¸Vv:LÐÙºC°xlòâÅQ»—Í ê;¶Ý›¸{ÜiÒœD£Q+Ö4¥üü“ºdM4É<*‰Ö­,>jÈN/‹,ºaš$áÞ—_jvI°õ˜—ô¬ü¢A^2I5ÉW¤@{Ö)?ÿ¤#™g‰ngK‘º[j¨}V—NEZµ8†ÓêwS®uç›j–ÐГ,'To ?èä&*Ñ”âÖßålœÞëŠßF¢õÍ­,>êÉ^FùÝ%p¡è÷»!ºÓšÖü¦£Mw[ûßMÚI´r©`ñQCvÂ4i~*‰öÝ-,>jÈ©nw‹l6Ž5en5M“R ý-¹­LùIƒµJìŽúkñH{bWí ºJ‹²ü—)$¦ivº!÷ÇÙ7Í.7Ä—P×3!¤Ëèz”iNű®W ´~J¥üü“†dª¹è—í»šV ¼ü¤.™4íÃ"àVRÔV¦õ*ê_Ôågc8«×æ¥K“‡¶2»°Ø•*ê_ÔåÿJ5·ÝR u‡Kùù§V´qûbŒ+ÙÅþqWdo³ÀÌÔ$0“C8 †‚2Ö¿bÛ­)KG³i:\œ–þ|V»5¦×â²j>æŽÄqqý$­sd¼S»£aÀïéÖwïOဠ×ýOv?Õ–Iµ%&Úú½šÚ2ú§sºW(~>ÿôÓé%Эq`5aªs¾VJ´ºÜ>Üêçö(FºÏo´ÃóÛ‡3±‡àùÍñBÌt¢qÉÉô Ñ f´k5 ¤‚Ë8Ôíñ’`«‹ïÃlÍŸ”£µ¼`•šù¸Aw$ [Õ¹FXˆf!` ¦ ¼ÂÍÓù÷¹-V“m¬^yÍþ¹Fÿ<žù1¿mês;:^ÊÌjš¿ÇüÚÂ,ø!’e„|WêüC‡*oØäœu©1§Ó.õ Ó¢S}Ó ìP]–‡q‡êÀ— †Ñ¥F  èú!磴ËQsu9»‚„ǵJ¾ÄŽG>…54w¨Sžw¬denv™vA·žÞá1‚#xÊàÇ5sd_T]b¬SûT ª¯€i*Z,-Ø}] VæKcà(§@ ¿Fÿi±¿ˆXCÄ"Ö±†ˆ5D¬!b kˆXCÄ"Ö±†ˆ5D¬!b kˆXCÄ"Ö±†ˆ5D¬!b kˆXCÄ"Ö±†ˆ5D¬!b kˆXCÄ"Ö±†ˆ5D¬!b kˆXCÄ"Ö±†ˆ5D¬) ÖRÛsž ¯æ:¾o8†yal2ÇO¼8ðL× æyQYÄ \/p¯ötx5âæ2^Í´Éf¼ñ=³Ws<ß³jx5ǧ>}¯³L­m«vX5Ë諆µDͤQÛ6k‰LSE˜i#Ñ }ði!20Õnªø6„µ!¬ amkCXÂÚÖ†°6„µ!¬ amkCXÂÚÖ†°6„µ!¬ amkCXÂÚÖ†°6„µ!¬ amkCXÂÚÖ†°6„µ!¬ amkCXÂÚÖ†°6„µ!¬ amkCXÂÚÖö#£½ÃÚ±ù±a°Ø²B,ŸÐ01-F˜Ùqby&#¾£kûõãO§Ç_ù¿úaž‚ç°[wŽpi Ê×:4›¥a3M“.AØ ®£a3,ÏÓ‡°ÁìCÛ!CØuÚAØDáùn…jmEãüʵ|äG§ty Åܸ‡•L ôô‡Ü XÌmnÈðC”nžÍl˜{É<„†!4 ¡a ChBÆÐ0„†!4 ¡a ChBÆÐ0„†!4 ¡a ChBÆÐ0„†!4 ¡a ChBÆÐ0„†!4 ¡a ChBÆÐ0„†!4 ¡a ChBÞ Väk‘a÷žséXφ ó¢Ø aì 3ÌØ$~ìÆ! ‰á¶K,jøAL¨é+aÃ.jÙÁO«'º‚-#ÀUnì _('ó$Ñž½’ ©K" °”x|Pè1~Ëé2zÌuÜè1âX¦éÀã¯ȈkÛ¾çÚ5 ÿÉ1xãÇadrú-Éø\]‚’IvH2ƒì‚$k<êWéâ/7C$"©I…H*DR!’ ‘Tˆ¤B$"©I…H*DR!’ ‘Tˆ¤B$"©I…H*DR!’ ‘Tˆ¤B$"©I…H*DR!’ ‘Tˆ¤B$"©I…H*DR!’ ‘Tˆ¤B$"©I…H*DR!’ê`TÏZc+1m+±¬Ð±mÓ ÍÀeI"/´á ¨£mØ%1D^zTÍbåz\ß0 A¥ÔuùcœŠLKd\D“62—WQDý$ßñUeðéËwœ¿ßAÏ#ÓS›ýоRd‡¡” Öý¸MÑÚ•Á~jŠgE~Ìm¼ã„Ûy[ÚrS[ w÷‡4FXÌÝ>H2C x´ÏÔ„öÉC&ã²P”Ã,®Ÿ¤õp˜Cà— ¹xsÁ¦ë†míŒh|‘ L®ýOBø =PXÎ#­vï~>ÿôÓé% «Î’i!20„â!HQå†ZƒX–Ù:Ч…Ä–¬!ƒ½Â LBÛ6 ôC—0;‰"3‰c׈#Ÿ&#ó“0V‚‡œ_œÀ+öð®1a'ñ-ìIq™/Ëí6>5O5c"xpý÷Uzó¬å³u c–aYt 2F©×€ŒÙ¦Ó2ó!c ³-Ò2Æß‹¼=ðp5 _+r¿ùßo¹uuÉÖVÍòíh Œ´u*_î‹kÄáÓc@5&l] v‡Kcà«K ràh\®øùüÓO§—Ü•Ø/ìzoãíHC±sˆCìbç;‡Ø9ÄÎ!v±sˆCìbç;‡Ø9ÄÎ!v±sˆCìbç;‡Ø9ÄÎ!v±sˆCìbç;‡Ø9ÄÎ!v±sˆCìbç;‡Ø9ÄÎ!v±sˆCìbç;‡Ø¹½`çb6ÊÖaçRÛsž9±e~À|;&ad¸®ë¸ü^že›vD­ ôlË”sùX ¦(g›Ìè@+]ã ‘qÄ3¼edœëÐÈ8›RbÒ%lœåQ“8utœgdzÇÇÁ¬ZFÇÁmb» Õ[ÁÆýOþàpq>ñ§50î*‚dÄA‘mGßÌ›®ààtdë_ùà'ß¹ |Ãß•N6Û·èé’‚•_Uü‘²;.Ï›·ìñB~ù#X,”ºZµlÑ˹hí³Šø?L­sUÓ6½›ËÖ¿(–í)ìxJ½\hÑ×e «?)(¹ RÀ,(uyѶEokÂošhWØy^ÚÕ¤]¢]s:üä177o.ØtÕڹዄÓ"¡ E((BA ŠPP„‚"¡ E((BA ŠPP„‚"¡ E((BA ŠPP„‚"¡ E((BA ŠPP„‚"¡ E((BA ŠPP„‚"¡ E((BA º(èd8»JÇ{ƒú>‹#›0f¾kÄ™Á?“€ØIl‰¬Ð7i¨ý)Ïî 0ØÄ¨ž ª]bSö·Þ´®¤¬°8WRHæTnF?ŸžöÍ•n$¸.(õµ¥^¡ž”ø–g´†'%PmÑ3ôñ¤òY ¢ô ¥”øfK@©è›|¨ ›T€_#Õ&s@*MJí­Å•Ûëê§ZíÕþ”5õdÛËãT ÝWѤÌåUQ'Éw||úò{^'çŠÅ×êyäozj³Ú÷OŠì0”RÁº5ñ’[_7Œ˜<žù1·]n¿niË]5láÒÈb1wg!j Að ðES¾(±PGÁP%Àh.%Å0‹ë'iÀS¥:®"ФªSÕ.ºjè×iUn/‹ L¡x(JÏ*7ÔIJÌÖQ<-ì·¼`å᫬‹bKÑöþ¹Agwc}I¬‘‘#ZÓu¡* á|ª´Ô¿óJxe`ÝFè6B·ºÐm„n#t¡ÛÝFè6B·ºÐm„n#t¡ÛÝFè6B·ºÐm„n#t¡ÛÝFè6B·ºÐm„n#t¡ÛÝFè6B·ºÐm„n#t¡ÛÝFè6B·ºÐm„no€nÇ,„äôdm)ß{Ϲt¬gÀoǶO"‹’$$&µ'vHHÛób'b¶cAxÔ÷‹ùò!å,ré¡«°˜Ww±w…HëÇWôVûÅuò‰Ì†p2ndÖóPÅr8+¤cÒ«ÔÃZ#¥¸Ú+ù2.:yÐu„©áÛ˰oß¶7¾=×$Í*ÂÔ!¦kÖ@ߊ?×ãk0ßr:¯V.߀&xY6~™Ðo1ÓTß“,GàÔê›ø.µˆ=Ô÷šÇû Ч¯‚øä 8Xgþ)0µü:ÇâéWßàÝ¿×àhõÉ+à¦?Š@ˆÄƒX¾CB³ž…ð,„g!< áYÏBx³ž…ð,„g!< áYÏBx³ž…ð,„g!< áYÏBx³ž…ð,„g!< áYÏBx³ž…ð,„g!< áYÏBx³ž…ð,„g!< áYÛàY·l¸_hVBˆk®EÄ1€’ØrLj›|e§ŒIdò?ù4 ²+ß}ÿü¾ïô/>þûÃJv¦:«Ìóz`Q ª@1qÙø6Í3¹ÿÂV!-˸ª½2µôC¹Šóåb,²œfEõòˆ‹ÔÓ‹‡eUE¾Ï,wBæ.ñ’ çÀ.¸ú†ÔÄ*Wv¾&¥ãǯ)ò2EM®Û=Ù¸L`§%"+z ÎÁ«ˆo¹EeFÓÁâÆç*÷š'ÇeÚímÊî`¥šÖô–§#¥‰ËÝ!á) ‹bú‹hû¡cÐ 1×s,§C³-˦Ô"5 šÍ±ZCÑø^ M¿éÁâÑJMcJw_‘¹’ÝoW’³+8|ØYWÁ ÈÛÚ}ë+DBËm[º„YwòЦ`³‚¾5ÍÆ]ÍÉ»¢‹Û}WÈ„€ÝÿXšÖÈõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?Èõƒ\?¹~Fû­ÂN#â[~HL‚Àó$ ]#¶©oÇV °Óô"[± ûHD˺è"_Vòꯗ$„–T®ñªhhlb™¾í7Xh<Ë0|ƒÖHh<®ÙtjL:4£WT ýQÐð©b9~;ša^E–¨‡Í_È´†ç/TÔ¿¨Ëó{2ùÎmäþ:iõ}I°õ–ô¬ü¢§é‰©×ÉBn§,Ô,ÿ ®g+Þæ"­;?×Pû¬! ^–ÉNC¦}§ç*ê_ÔåË=þ6[½Î/K¶²¢ÕŸÔuÝ)à(ôFRj=ˆšŽÆ·¶ŒK£ìù —^·òé¡kâD­"jQ«ˆZEÔ*¢VµŠ¨UD­"jQ«ˆZEÔ*¢VµŠ¨UD­"jQ«ˆZEÔ*¢VµŠ¨UD­"jQ«ˆZEÔ*¢VµŠ¨UD­"jQ«ˆZEÔ*¢VµŠ¨UD­"jQ«ˆZEÔ*¢V×£V×V‹ ý8´¼Èw7¦3|?‰¨c¡¥„V…¤Êwß?¿ï;ýoàÃðåál|›æ™ØÄTQªkéõ¾—ÉŸ›Û,°­óDQþ7a¨—ÉÏzy)&‚ÇõÌfq¦"µ$TÞ»Ù8)e¹7fÜ/i‚@ºU•;_zÒZž*ü±L\–`J¾òO{eÀ6¨ÒEïYm$"F±¢L“æs½1Ô6+d\PôËt€¼J› gWW³Ú‡×mE b2ž¾TÕK´¬à²ƒÅ-ßp»Ó¢f^¤ ÏA¼ru•pS—º»HÖ0°¡+i^¿ñÅAÃŽ‰gx˰cסaÇ&±·:&°Dõj°cÛóüºŽ5 c¾6,#Ž×CeßÖø/xäz8ãeøḭ̈Kˆ¹Vœ%1·[Šm ²r‚qO¸­ñlüW:ÙÖF`-Ž‚¡HĆMy«V)Q扯gy! ‘XˆÄB$"±‰…H,Db! ‘XˆÄB$"±‰…H,Db! ‘XˆÄB$"±‰…H,Db! ‘XˆÄB$"±‰…H,Db! ‘XˆÄB$"±‰…H,Db! ‘XˆÄB$"±‰¥Y?ð– ×á±RÛsže˜&ñl#&‘M<P™vb¸‘[†åÛnÈbb'Òd]|ü÷‡•ÜLõÂsü×KÊfÄl€!&k-}ôC¯L,ýP®á|±‹§YQ½:s°T¾Œ–j€D'dæR!¡Lp›Ì†âê·´–¯)Mò2AM®Ú=Ù¸L_g%"'z Oå«YnE™…QE´F°´ñ™Ê½†æ¹q™t{+*‰}(s¥Þòl¤4p¹3$üdaBDk?t¬”¯ƒ•"¦gRϲp)Û²-B¨]GKY1â<˜‚—wµF#ï~7Í6µÇòŒu,cj¥TQô­àsuc좾W¥´cuBR±ñ#×UP gy‡Ý—·W¨U¾~û!ÐÍ7`{É:>o` Ê+d‘é–©{¼÷OT§NÀW¢ñþ ‹¹ëÉFcoÀ㙚Eמ¸xžI;PyÌ çãâZqDz­±0Ÿâ ~OÕîüÖWøOBøK;p¶·Œ´Ú½ûùüÓO§—t`(”¾\!-D¦¾X Bñ¤¨rC­‘/˨ ýÇ0ݾÎÎÛ­$Ý.8.D¯¶ÍEئ×n­U¶‹Zk­»´VpëHž¶ˆ%˜®üåþçñ¬È¹oÿ¸/ÑJÑUÚª¦ ü-ê@Gœu¡åº“tÜ»*TlÈ:PKß®jâpW ×Á®KÊtœd»êíþx';?Û|6–gY»**Áƒï¬gì¼Tƒ’ÝÄuì<šÛ´˜ÃÛÑŽznØœRî¨Eú¸4(¢t×;ËÃ]ï œARÃØU ¤kwqsøN¶ëªÏUìzS¸Šœ]Á1ðÃŽš nó@ÎÞ®›j!R™nw¶8$¼¾ƒ5»´í¨g6îfÞ»ßä»B&€ì¨æþÇÒFf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvBf'dvÚÀìÄ'd°Gb§Äv™cy¡mÉ\—„Fl84‰#j…±C"×4#Ó'JÄN'ç'ð¾ŠðæXÕyÀÊ+ozi8òIßÂŽ—Ù²Üjãów¦`ŠCü®ÿ¾ê@ož³¼¦+‡NJ¤WÀÝw)i0y†ë‘‘G ÏÓç"‚¹‰TDEED›6XÔ©ˆ€Ü €·«B½y J„¦üòÛ¬™ŒÏÏyóèe^C ׈¹¡ÈRk,VýKcà+S™¼h6±¥(½¼·£ííž–íát§C8ÂéN‡p:„Ó!œát§C8ÂéN‡p:„Ó!œát§C8ÂéN‡p:„Ó!œát§C8ÂéN‡p:„Ó!œát§C8ÂéN‡p:„Ó!œát§C8ÂéN‡pºõpºuHº{Ϲt¬gÀÒ¹¶zv@ƒÐò]Ëpˆ»ñMßM‡„£a@c)aé ¯òÝ÷ÏïûNÿ¸1|…8ߦy&ö1U(ÝãZz½ïeþçæ6 ÞjÈN/‹,ºaš¤!Ö¾ãu-KßÕµ$ÜÕðVÍ¿$ØzKzV~Q×t=Iõ†P ´îz)?ÿ¤#™g‰ngK‘º[j¨}V—NEâº8äÔêwS®uç›j–ÐГ,'Ts ¡öXèh|S×ðƒ^…^Çç"­»=×Pû¬#=‰ŠH·Ï•Ì®TÔ¿hÉßD!ÚŸKíÒõ¹’æW Ü¡»œÓ{ÍþKÒ˜íG[*X|Ô“½Œò»Ë˜2ý~7Dw@CÓšßt´éÚv•ĸ›Îû}§·–þˆï&šÝ-%Úw·T°ø¨!;Ô´JöVöü¤!9aWš}-%Úw¶T°ø¨![¤ºÝ­¨¹ZÉ´ä\Eý‹†ü­¦+U ´ïðmåJÉOê’҂ַךr­;ÞT³üƒŽÝ%q´ë’8Z,‰#Ý%ˆÒ.SÈVÖìtC®}×j–P×3¹—Ñõ(Ó|Ië’—š‹ÂXבïèBçÎóXÓm§š&G)о«ie^ÈO’Ý»:Ùñ®Næwu¢wWó‘æ] ´îj)?ÿ¤.Y܃Öôl2­;¼PQÿ¢!?ÅuåŒ5;¿$Ù~KŠVR×5C¨_o ™ÖCX¨¨Q—¿eyš<èu{!ÓºÛ õ/êò¥šæ~)кåüü“¢änt¼»Óç’/õ™=Æâl©:cön Â55©p%¿ãQ0äo°åÛnJ™s4›¦ÃE¼÷ç³ùMq·MÖ]U­¿Ça:>.®Ÿ¤u^ÑÓæû%Èãa:¾¹`Óu7ÛjÁ;œ¿|êdqGC¾Ènéþ§MGã=ÿ“ÝOµeRm‰‰¶„~¯¦…¶Œ~@N÷ KÐt`k„‰†A€­/Ñêrû8D|ösç>éN˜Ñf÷ó;~…˜ãDã’“é5°º€˜ÑV¬Õó .ãP·ÇK‚­.¾K5Rºùò‚²äqKî&H¶ªs°ÍB€GNªE4s^οϰژlcõÊk®ðHþçñ¬ÈùmƒüäÛÑñRzyeñó« Sà‡Èð’»+ð(»a&߉®,ãNÝL £]@ïÓÝóQÚ͹¢œ]AzþC'ú$›qgãœÂ‹:;Ñ&ö•GŠu(°Ö¡À:X‡ëP` ¬Cu(°Ö¡À:X‡ëP` ¬Cu(°Ö¡À:X‡ëP` ¬Cu(°Ö¡À:X‡ëP` ¬Cu(°Ö¡À:X‡ëP` ¬Cu(°Ö¡À:X‡ëPô•ëP¤¶çñ¢ªOpá»ÝŠ?`ñ ,^Å+^Pñ “vX¼¢3e²&U^ÚrµöOmîhŒ m—ÞÀJ³}ȵâJ÷rïÅ+4š®ð1èÈÖ¿(“â(PÛˆ ªíZŒ`¥…ެ¡Ü°E¯ÖTPb“aö Ö³Z1½ÖmóX%ŠíâÍzºí[ôwkɉí*dÁÕv-ú¸R[BEDÖtPoÙª_kŠHlkTkÐlÞ¢—[ªE((˜×gÐiÛ¦§›ÊB(°J•åÔ[¶èßÚú*beѦ­z·¶Ðƒ’`UWA«q»>nªè B޶(å L¥ÖžsM]rñ±E•}‰–=ÝZšAE¢%³©ƒºäâ£z%å†múµZlA•\¯5 Ÿ²àü“zmå†mzµZ>AAHÖMPiX–*ÐhÚfëË#¨¶&BTœÒ­@ Ù¼E·-a ÀíØ¬] -ðn08žÿ¿ˆ&ÈpðöÇ©)?, ¶¨«ðóééàÓ—ïgß¾œœ·)®ÐB¤Ýð.W´ÕËéQÑeÝÀª,8ÿ¤\{Aµ]›>-wP™(Þ§õÅ”矔«)¨¶kѧ•r ÛEæ54š¶èÙ†º ‚ÍÒÚmúº½Ãv%óªM[ôuC¥…í‚sZ¦-ú·¡¤ÂvAYÐ@µ]‹ž­ÔNP `Ñ„æMÁ¢ X4A§h‚B˪V‚BÓTµáDµaUÞ ÃŽ¢¾¥†~Ù¥hÏ’È€¶2[ÔdhSÆÁR¯Æ ÜPë/Ëhœ>é!㓟!=õyÅHñ­é¿ÏpNðôNXYa{Ëzý½ÖZ7u­ ÊHÖ×wh_BeéivÐm¯¹Î=‡!cŇ56(º+ŽFl<[íãÖÚJìø§îô[0f[ÈûµÕm¯ÑQíŠ+W(«º¼u¤é®èBQ [ë@•RUŽŽjrtW‘£ÓzUãè¶G§•8º¬ÃU8° VáÀ*X…«p`¬ÂU8° VáÀ*X…«p`¬ÂU8° VáÀ*X…«p`¬ÂU8° VáÀ*X…«p`¬ÂU8° VáÀ*X…«p`¬ÂU8° VáÀ*X…«ptQ…ãÐA×A~³®Ç½ç\:–j cZvë Í­8ŒÈqmË&¦GìĉCÃp=ĦcX I쇳™á*à8™?–ïyÀiÝ + –«ßøOuK`ñä é¸ÔÉ_Ûiq3&¥A®1Ÿ?¿Ó{13ÿÃ'nvWˆº›—á-a^@`••ùÈ"#§¦Ã\3WSþ“)dVÙƒlZÜHŸ+ Æ‹°ûaί!MJ ®ð¡›²;‘­+‡Ü“güSðŒÒ±„À¨¡÷åK"HJû‹Á_‹-úV&¤fw,OfÃ^¸ˆˆqÏó¸- ÓÞ ' º +BUãCÚ✤²ÁzйÒ<›‡}Á‚žæ,ɤáï§¿ñ«‹< ¾Åöz'â5/þÖ;*ÿÏðgè] ˰èËu%~ø?O¾ÿ_â(‰CÌ_¶ŸÓaÈÀâ Xò—ɃÃÙhœøXÄ+4—ùrŠþ·Aÿ§Œ]„̵ø ¤Bø ªmÌÛæþâ+´ñoМ—¿²1ƒ ó¦?eaÆûÂRÑ6ä_…ÎbKd8ñû;(næçÁ ‚%ܘ§L^`(Äâ'‡ ;Hò¹ÐGþœÏƒDº<¬‚¯…æÑx‹;4{àÏ!å[ÜœÙCuoÜwkܘ‹”¯,| oÒqÁ?AûâþÚÇQÁ›‚h0[tþ׌åWýÏÁŸÐöÇ>Bóa6f Ââ&¶1œ( Š¿ØH‚búƒÏSIŠ£¬q3?¦ÜwÌùUD< ÚË_ò9 ˆ0 ë7ç×ÙøˆÏÞ4‡m-ûÁ—û_‚«tœ òq9ñ©ñœhñÏ þ­…øí¹'ÌŠÆÜû5»æŠ>òí1›Nåø!fÞ~§Í‰ú+7gú¿×åúÁ?AK~bÊ-ŒiSõOy÷¿e!ý Ð …TòŸ…ظùÛ˜Ç ±“â:»éáÛÕ_Îä à71ä(-¢¬Ù>Èùcþ…oÒì *‰öð›hÉ/£à¾9 ˆ÷¡”‰¼¡?1Cù¸Ñ¹|wxþÅþ~JÕâ§Aõ“~ v¿µS ÂÅlùÊWRxö'a Ÿ|ðOâJYVÔ·t<+ʼ(ÐTW…!p[‚p̽—jë-Ž«åäøä÷ï¿|ývÑ}Mž2Þ9ß¡ùñcÕw<Ç7lß©WßñÏ'¶UÛ{›Õw ‹á¹f£úŽmøžA,·V}dž†vô}]õiÏ{|$l€#Øýòo:¥w~þí¼Ka÷(îÚ;¥>‘¦Ç¥ ÁWßãip5æ¾G©Ôà )¼^ žµ÷¯ƒÒ;¦åøMHøz^¢5Øêj¶o`ó95žï»÷ï+L§ÛÀí¼‡%O‚ª@1&ÍÅšUŒt$²BD¨ÀNÖ“™r2|=)ÒBC€ž²HGM5D®ò‡Éu6Öàæc:NÃ@’£ª åq Ñ|˜†‹uP°Bè òíEOìŽ_L£#ª3Y î Ñ<›D3›•MŠT£9w‡¹™®# µôçY’ê½åùPçvê®!ù,žh4/™ÎT€nq9›[]h ‘FûÙ8å;ÎMºµµæÐ] ¦›f{¾8G:wvþJ¯cÔÛtzÐï€O︔ý0–¨%UƳ6B¯€é­Æà¦±êþÌ´Er&ðÊ‚ˆG],ˆÇ…¶ÌTWš[I¤;¤V3»µ¬Ù^r`µ–m/éjHÜÝ–dkBÙè’å¹¶·o¦âbÆÀx’œº»ŸÛKkjÂAŒ\b´%ùž'ªº“ô*¾9º'äˆê¿\ôr’Þ‡³¤•4ÿ_K¹é_ºwçjÄý¹!ku½LÄ6Z‰J~±v¢­˽˜æfk¹êÛ¥yùùÓw -ìAPÂê>¡›<´µ{<—Oº=é¾*£Öó Øxmv!(ÖÈVÒ‘®ï29Ó–_‰âLzBu¢¿–b­†D é.è¹öjþ¼^kÞGá‘4£-s{ñ6’÷ü¿-ätï©ÞÒÿ,ü‰jT‡ëNÑTè Áïào1Ä飿ƒfqDÛÍF°*liÅâtªÐªÓ–f#–_±íÚ 03¹ÙÖÿ<¸+CÔ6›*ömÊî§Tá†LU.Z‹Ÿo¦n{¦þ‘àYȇz&OÆwÇ÷üÄ0œÀ§Q6£¦›„±eú¶Å YM¨‰a| ãcÃøÆÇ0>†ñ!ŒoRÏn†ñ}þ¿eþrß¶=ÛiñmËr¼zß1M«Æ¡½.€/Êœ-™õ 4üýÍ…ðð—(b7‡ŧ5›áí(¾|°ªÁ™²õ3‡h¶Æ†¶„±á¨WiœÐ’*µ|±œªÒ‹s™WªãœÆCz—àŽíÍ£Fš†k'M,¾1˜¡¼„¡Ñȱmâ:ÄŠ-?FG 1tÄÐCG 1tÄJGÌÒqÄ<ƒ@vÃ3MâÛ`³/|1Ó¤Ô²5½1ôÃÊãδã>O6µjµZî´rÊ´^¦´F‚´j^´j:´z´rò³NγZª³n¬X/D¬˜Ï¬”Ƭ–½¬˜´¬–«¬š¢¬–™¬ž¬”‡¬˜~¬–u¬–l¬“c¬˜Z¬œQ¬–H¬˜?¬“6ŒÙ¯à„I¯Þs™$¬—¬‘¬— ¬šãª û\[Ôfn#¢T›y%‘¸E±Nê°^ưv¢°r~°NZ°v6°f°~îo«”_ÍL__ý¼^ýt^ý,^ýä]ÍÜÛSu5st5Òl[fäªfÖjgà*×_Y›¹º­Rt52s5ruòpõòh[fݪ<€Z²­rŽí~Ý¥õ‰´Úù³ši³êÙ²ªI²//Ї¹±›šanìSc‹•†aÊWÌ-m’!»ß6‚n.mÓ3›p[* ЉZ±Ï+Yï#Œï3™<ƒïã:Fœ˜±ÍB/Œ"Ód¾iÈO’0 3 ŸØ~”$èû ïƒ¾ú>èû ïƒ¾8:žë¸K¾ëP{£ïãz.÷—šˆ@îæØ¾c:õ±­G=2ÓS(¸±%µV9e²Å›óËB¾—¢G†zdè‘i{dì6Î`¥=‚æGÜe¹…up7¿Œ(d¶‘êö-×Ì6#ϱ#Ó ƒ$6ñˆ2‹X¦ÇÝ4?0]Ä®E•\³³j|ýà]”ãSóÊÖ ÷«…Ü&˜ ÜW™oWàÛpï+ïq /I?̲áEÁ¯AÎ÷Aá†üüåëç3nT Œíàɶv¾ŒÊ¦›wußôm›4|ÓônÜÕ©I\b5Q3.wŸ׬íë.×lÙŽÒÆ¾v&USé&ÑËÛá?ÂÂM¸9=>O¹qœ§Ü°Ï^<`½½]åFv±Õ{¶ç´ÛêEèHo"ë‰è”4–’åuòö*Ä¿K ÈÑÒ•½ž ƒbéHä#éŠÁ;3l!7OÛ\n’MÌbŸ£ mÓÑb¤ÛQëjõì}]ÁžÆ1¬-.[J·œ?uÃXw>Ô¥o£DS˜O£êž¹šrå5ù§8¸Õ¿l%B|Am­ Å#[_eÙÕ.â-øBìË­…ïX榦¼Øê/ Õ–®ÍGW¸Ü|Ú¼¨ ñYZ)ðtÌŸ×|0uÄï£kØøŽŠi–s“§R¢£ãJÜ¿êêÚ‚r¾j˯ÝÿWÕGô.œd>nYLæWþùlqå­Yã£ì¯t8 ŽÆÅ6ê™õæñŒù p`o<öõÛO)@3D®¸ú,b§YñE`Œõå>½˜WkQ«ƒÇtÄfqš•ÛžàmpEÃ"&š H)+|øv²We²¹Îêfã,ÌôŸG)'…ÂÉ–Ž1¨»Ç,ÏèÀn-k¶—X­eu$ç¨9mgi_nV »§#ÖñiHÆá¬8"º/Š`7¢ÛU¾3ZÔÖ¾`MJ~.Wê†Ú¦\k‡©­Óðr-Ï Ç"Ö]8¯Àfë­Îr¹ór UOt‰ª#f­Ä†AÌÚ Ö °:rKøVQ8°Õß{¥Ø {È%]‹¾ðmR´¸ì,WG´(‚IzYAOuV‡ÑÚ—To)]† ëtcÚú5h"5äòÐÒ½[ ø¤{Ðà6258±²4¤Kñ{ª=N8Mk#7ÒÝ_ÆÅPwÅ“ÜÒ;ºáž¯æ1l%ñåââÒж‚–pSPØ傳Õ`á­+Ø„zëHW@n™a¤ù¼'øÐÉ&SíŽÕqÝ-ÅZù[åÓ´†+×èy 0×(FéˆiNÍ…ŒöÛ·,ªñ­ˆH{aGC”ÈÕR«ugåÊ©ë×q1ÝÇQJh?Œ ü¯3ªûÑPÛÁùKë"ù“æ¼d¾‰r¡Ý’M(IdØÌð™G‰nèØuùYdX¦yücˆÉ&&›˜ŽÓL6±ˆïoN!u˵յžlâR×tz²‰k†¿%ÙjSh$HÔ”½â4.puõ´*\«ÚÔ #©T>ˆÕŠ($ñl²µ”ÁUEÿõ_ÛZ ›ß‰i0›^«årJ¹@ª4-½yÕêGqmi9ÿÓ,벂‡8[QKQS(6NcµdàÊ Qi[‹+*—ÇRm„–þü|~ô[óee[kQŒCIqq57ªYÀ¯¦Çú¥ºðànv ¨G¾ç„³ ÿŸí‡‰gØžë8K nL„‘OœövC¿¶¨÷EdXÕ’øÎwüõ*ãšJQÖ¥²/„•0fŸ3€ÜV{ȇ¾\×ù°+‚¥”L²¹>È›Lø~'¶Û¢wF×½Y‰\ß‡Ü .ó‚úuÛ¥Wà €Éb[/?–'~³ž–åS—Òz9-Û¦„ÐÇ-–GÓc%“d5IÖrü5•¹Ôð0›ø’yºI*Ú`L®ŽXžgyç»ý")¡sûD¶¼M eÛŽ ÔlŽ^IññˆG|üaÄÇ>^ZT{8©HÏ/¾U¬%rûÅ™’ܽeÛ’Œ8ßÍr/wÝmDÐ.‚v›‡ÿÚÕEЮ’ ‚v×É!w½à«Åà¾<­ÆSßM»±À3"k׉>²ö¹ ²w}² ÄÔöœç$‡±ïȱ"7ñqâP+bÄ1ˆc’Ø Ðð×ÂÄW’‚h:®à–š¦í]¤ ÂŒÖÈA„æo'ˆÝwûŒù‡NÛJ.˜¸IóçM1ÿpIó1ÿðQ»q™‡ÌóÛ1CjÌ€Í!b‰íF¶mP3+&žG‹aæa·ÀK 8B,BŒ&MŠg®È­™mžmŽJùsCãMå3}ê¥3M†p·æ}oͦãéÀ2øÖlxîêÖlË[³¹¥ Úc°Œ•A´-¯)£†Û2nËo{[Þç–lE~â{&ß–]ÇÌc^d±ÚÌb†ÀÙk[AŒ©ñ{¬ J‰mۆ׬ j˜¾çùõ ¢†íØîRÞG¶NÜ6sÛ¤®K[ÖRxæ´•óâiyñ˜yñ/%k óâÛ{<˜¿¬óâ1/þÑö˜yñú"˜ÿXkÌ‹¼!æÅc^¼ŠæÅ+´Æ¼x†yñ˜¿h‰yñ«1/¾ÑóâWD1¹]W“Û—$0¹ý¹ó瞉ÆÎ殳i„žk{~ʼn“„D¾o2Û2Ü( aø†és/#}Î#ËIòãAú¡+és”¸Íô9ê“-és›éñV³ç"or@©ØÞ8yùÇúŠrP3èÞFHåµoÌ&ÝPÛþqgµ,Z±aF®Ç7ef'¦Û5ØMŸoÕÄ )fÒ=mij<£†eùf3“Îq ÇnÔpÂ×Ü-µ҉ùøÆbSG‰i¶ÛHŸ9ä`NÝ#­1§sê0§î¥D\1§n›?&ì¬ã~€9fzù_˜8…‰S‡dEj%Na¢Òam›­¶?L?Âô£Çe0ýÓ#ýÓŠ^BZæ é b®Ð–¦o8W該0¥gSäp2L³ŽJ“Œoû;¥ó@®©Ž6¨3¨‘Ûl :¡ï…Qz±O-3mJm;°Xä0Çf,b‰OB×5•Â…Ò—c¡¼ß`¤'0RÕáâÞôSˆŽÙô.ËoXܹ~±¨~·¿V‘ü÷qzߦ7¬—MXL¡¦xñPLÙ¨­>§QžY2íÿ'ÇÙ]1èšÂUÒñ”c~‰iÖoÛKGàÜò_â<›¥c~c'à b²fz™t6¦W×\”·»û0þàûïÎ.¾þþåãûAÿs2›^gyñ·ÞQùÿ9ƒ|Úÿ-cÓ)ƒYüü[ÊcÖÿZ£`ü$1ÍÅýÝÔ´ˆa8´Ô¤õŒz8r)¨éQÃn„4}ðêMŸªP3sír$gùÌïÓþÞ?—¿ ÈÞ‚šbj×gN¡ÍœÂYò0ÓgÖniý>vÂäÔlɦÛ!¼©Z4‚·½ËU"LµI²¡BP®&0™…ô¸Ö’¹/F ½Z;«WÏØYÌ»8a_ôbã¥ß¡û§Ó3Åò‹ÏŠ ùæ§Øê“ß°‡#å™_ ¨E—Ÿï,¾Í‘·Š½¬| «ŠÒôÚà‰2‰^±··WwM¦9_[¦ª‹]÷ ãÓѰ ó7õŸÇlßÇWÇ|Úfb¿X·£ÃšËü-n}ƒÜ^mñ½à”~¬ ˆbÛ2=Û ÍГÀ¶,‡X>ñM%Ž©Vþ¤ÿen1KÓB/eíïl›Ü¸&Mb[b[¾åÖ‰m‰íPS%3ƒÅˆ–÷Þ-o£J$Ô§­-ï`XG%Fkß&Ë0Uj'¸.”»œfx3fª­ù¢–I•ò7NMiVhôÞc¦fL‚œÏ©8VKÇšÄi1 ¦‘‚S­ólšEÙðHõ©ÌXÅc¤!£œŠ6—óÅêVíAÍe ¾£(æ×M¸‘Æ‚‘Æc“JmsÅÁL…“²„ÜŸu$”Ç©c¼N¹=9Íù2­ìF‹Õ¨HÇ7šbáT–á7ôh>)¦‘úQBCpÆ-Iõ¶Ù(TZ„Êö1K‚ÙpÊÿ{ËwÏ#nŠO¥×¢*>eH¾ÞÐI¾˜ñånœ(¼í›¥'©¶x«‡·,«õüJa­©y uo.¬ƒíF×”ÔÛ0ˆùƒÐÛHm#©ZnÂøˆÝòª,#øÅ4&Ù²¨Î}\–Õº“ãÙp¨w¹i Üv’N˜žv)¡·8ælLô.ÃWœh™Í°ª‡oƒ\4RŸ  e¹á·›˲Z¡ÐY¿¹'Á=Çø(¥±Š}RÊMg`Öê=ªJFoN@røHcgQ8]~ªƒíúÁÕòl{rƒ=T¨£¾ÁluM·Q‹ÚtÑøÝÉùÅÉ%f §ÅëÄF©œ4¿–“xÌŠo!⪈èMhqv*¿CÊѲ¡ÖDZ–Q™I×jšäÁ §rˆ E5š4Ò_Gúïk–Œ©³z‘'MÙð&åÞ+g¸”PmŒYOvõzÓ`Ÿ*ö«|ôÀ΃©*wb1‡+… ßÎÉ"o]FÅ·ÞÆü©ãâògˆFsïq?FØ“áì*Gb:®»Âª*{/ƒÌqšÿ† šñõ~=L/þ~‹(Ø ZÛÛÊCÇÁ$ØÐtVäÂ1ªÇÖ÷߯ò~pý»ºÛ%ØÏ(XsmË÷¼8 Qd˜$ŽM;–³À·XhÙÄV#çùõäôßýb6™dù",¾È¹m„ìßh@ƒŒ/GÃ0ÕïÙ¯üG܇äJ‚Éd˜ÊXxñÒ“ ß÷šë©íCvÀb®6“ˆç»¤‘;`:®gÕ2L—Ò-\D¢ªßúw®üÞ±¨ßKÎ"ƒY¾ÿ‚yò®áÒÆæøõÇp›OųÕ:‰”Šçë'fÍîçðïÐrK•F`Ò(ÚÓ/)§ôiíÖýjÃ4_Krü<†šo›! ê&±Ë\ߎù0HdZfÈÿc1›9!ó _-+óüÓ·SÄE½–¼L}ÓÊ"~Ó´"† P^$eL> Ó Þ4­Ó´²IKjÇÚ³mc!ZHh!iYH0i.…ÑP:xCiWšé]Ì£0©ãñ²0fj?Ä¡çPÇHœÈ ©3Ë1 A+oÎ8r=ºlyÞær|îP§‰'Ô7,¯a™†i9[ã%ö†}gÖë—lå|¶ŽeD)¡^;Ëh)éÝûwަSýL}I=!sÖ¨ç„hˆÕ3,´ÄÊT ™2çBC¤–• !5OOÐ’Yä)èˆÕtÄš©m$ç9m„Ëdƒ6¢ó¬ƒ6Âóôáf‚¾¤žP®{g–#âú¢óи¾¨þMYË5„êQsU±5ÀœV¢ÕA¿¦ð¨Î.Ê$n}-„æ(MÁpm=%ôDSnÀgw5éÓNÏn“`ö§–v¯A ¤+»´“Švão…4…GšûëZè¦ðZ ÑŽ:ZÝý ¨"]-5x‘¦¨Äi ÕG­D[.ú ’¶ìIW~Jj!Y¢“4%×ÔvTÒnŠ­¶¬U“¦‚&”©¥pËÙ¶nR•G”ÓæÖ¯ã¿í!C ŠÔNjŽ{ÚIZŸölD2´æyÜ»µ¬Ù^r qGWÀIm%ݧ>r’˜¥§?¨ª€Fú­{…Qz5Gis“†ÌH÷Eíð¢ÕñJxD¸nÒÕ–Â3ÉC=“l ‘Zеz'›Át­STÝÕSÿܵ tÒ‘¬!žð wçƒÞ:NJU&GÀÔ[L…ÛfÙôzo ©nl%P¤Àp8¶Ë7ß±‚Ä‹‚0Ì€zÔ ÌÈWJ6ù©"¿OGéô1T;b¨æ÷´RÉaÊ0Æ‹GRé—A †o,!©<Çk ©L£V O½ Âü]DJÖâd]$ýz¤QJñëü6J†Ó£ùÂÔ&ùw>E0x?G‡ó ˜x{hÃmøú€ü扲‘[3W`ó£vfu‹ŽFA:fÜBr¦Æ>sšƒ$ˆ›1m›[•fÃò|Ó±í b?pÏ`j/˜+}>UúŸùøúç|€}p²&¥Ý‡°—lB’3ÑIr6 d/×MBÛ5&¡ízæX™ß¼áÍÁdçÃLv&ÍÞÎ"¬u ΃Äs¦šfÝ#»SsiNnRñÛïçg—FšùÛNÚg7Ë}û¹i±ø#ƒ¬ 6ŽÒ–§©iyp„4ŒáH*½zJ¡×a¦cúIý`m£ýS†(÷KÙT y7 OE,e­Öé–+³fèY‚YXdC6Ýië<ÿ¾ñXB^{å"‡ƒð|ú‹(Šmæ0/´,×õmÏcà M?¤A†Ô§Iزßùæ\Mò êø¶¹„ï$Ü¿vêu q¤Ò_,ÏöCò‰Æ1±‚Ø1©éúvd2#qb?p|SQþ7#¶•ÜÛÿ£ †‘Þ¬£K‹Ò†£Ëç©ã?s+ûÍú0Rõ® Ã{ ¯áY;”ú¼ ®Ó£2ÇbËþ¹SΠãk•¸†ó´àpð‡y…ì=Ö·2¨Ä„& ÜÀtHùŽm± ²B“™‘kz>‰H¢äYþT§?¯ÜÞ/f“I–/ܲš÷Ywߨúýšë¯¦Y:ކ3>ìÆ=›ßÓ£0(æÃ”E%Š—ïÂjÑ"¾c5khQ϶i݃õ¸ü¸»\?kùmÄ‚Z‡XP‹ž»W8=š¯Km@ ó ‚!Ÿý„|æ@1 ÿÀO‡?¾óCƒ¢#râQãt~ÒvdRîÃì3ØÁ,/a‰g0ؾe±$ñcJC/r3l—÷ÏXlÄJ&é©€@ .O¸…6Ü›O‚jXQ6žÜ Ò²g}x‚<å¦(¨•0²¢Ÿ%ýÅèÕGþ:íPÿ ±—c)¦gš (†éY†«–[µôö½ÚPÊy5¯^ ùIlg÷0 OÉg¼ka^Ÿ@7XÑ`Y•]÷ã!ð¤Ô„ßTE-O橬ûÒŠøCn¥,þÈÄ©Ö8J7ÏfË`Ë[*†µWŠ.$ÞBâ­Í«¶$ZOé !WW{F•4R¾cO6‚Ÿ³°È†lº“A3ïʪA#¯½r‘}8ºKyû‹À°Ä2×õ’À <† ‰ýЈúŽçFD­ÈõLW €Ï¦>áûŸùèúç|x}È”Îé›÷|_¼—jéDK¨ç™Mø÷Z>ªM‹‹*¢%ÞŒ”¦«jÒ–\SË+;ßu– ·6Ž‹nøvK®€áRUeÍ¢&ëª~·U¡_Y뀚/»â$ê”#Yöµe5çðžS‰^U1æ×´ Žø½ÖýsÍ0¶Ü$ñ˜¶i¹a1£$ ®›¸‰ç:®BìJÁ½XGä„FèK7B‰Vú‹ïº†ß´Bn—6ÌPÇ7s`/ šžjzÇñwŽÁ#‡ÝE†ÚìIB0.4m…ŠÍy#ÑœøH˜G|…:â+”–ѶN¶}1WóC£6ÅK©RI´ºµÏR}´Ã³o[Ok¢pM”š(;¼,lê,;Ô“_’\ýI§,Ë>«ÂfthÕ:{ihíÇB>Ï“†i8–A½ÄñL7´œ$ }x±k˜f8¶XVâ˜u0àóF}mÍÂ$Ô´–°Ô–ãVÍÓæ~7UÉÂT ÷`>æ¡x܆×j²|PÞ>ÆÓ:´ƒåÏ>Wڟδ|Þ,Á6yu{¡úÕÌzÃú$;Wc&Ë‘ð¼(ô¬Àc¦2/±BÃ#4 "ÒȈýˆ2[-Uk±¿Q{Ñ%–ï4¹wlÛóý:õŽíQ{KŠÐ²Å¸Z‰íÄC±)”‡Ù52ƒuرûžë°oo¹W\ "V^bA(‡B9THýXç Àv/„‚á²"ü²I³WîZ;Lì$²L? =þ/ßñlÓpÂȘØ$ôcß%4@^Š·êájfš–KšÉ‡ŽgÒzñÇó!0Ë/ flö!}ܺùkѳ;¨X÷c;}HYñæ“®¹Æ´.}t ‰ÊY×)½v}Ôѳ#–^jšæ!Ó.Jêµ$/îyO;ìÜɆ³®'w@X¸~Ë,ÁõVÔ+å¦y´Î{žL¢§wi`q F=#ŠL‘XèÚA`û4Œ+±¼ÀÍ0QrÏ?};Å<Â×â5Ãp–ˆ#€U¤^Oe ³g{¾Ýðš‰Çj^3ñlgK!ŸõkÒái8|¼Ùõš§à¾³rœ Ëké8מn›|>Ã\¾ý¸m‡–6§tƒIs¹ðÑöWô³æÔ 1»eÃýåÌ™ó(ežáÛ^`Z¾ãÓN3Ž]n<…6·l‹ZLÉBúcÉ&¨nWePÔlŸ¡ >xx£VS£t÷¦7)„4X'+/ Ôìü'¨/r•#hLû|c„Ö½ÕúÒM2m‚mh`4ˈßó‰ÓHÖ3¨aë•RïäkËÕ«½œÇçùÈñ©xNÿë¿^^Úu=÷bêâYwÊh£ïpһɽë(!ïSeÄàñv¢>nyã•ì,òOÍš/ÖaãjYµ{DØIHÌÄ ƒÈvýÈ2MÇb'69VàŦOü8PËAÞªWw¦ ®cú´É[eyV£¦ ÿÁ×2·VY«^µõJÄö›³J±½¤ªê Éoà ªX¦”Þêm[dí#&â™0m®ó2ÑËŒZ*3fN¤ÕÝ©ñHÞÖÙ²=òFÑ#+ìZúìVÚëé°ô°+z­õ‘.‡é›¿\Þ«uÎy‘?CjJèűkG$ \bÛm’ˆÚ 3‰í%Ž#J\ß l%ßü¤ÿeîFK—ãB¸Ñ蔿§Ü£ŽI›Œže:^Ý)÷,˧õÜ–5N9ŸöÇ»’è«øãËîò6ÛXÅPòËøý{øw:U:û†E ÖPäj«´ ‡3ö—\÷og÷W|¡ÙrŽ.¦ÚA¾ú‘ÿu0Tj÷ƒ¿NJ !›}šÒè(›ª`Ó*6]X ÊÒ‚PlžGJ §Ñ$Vj8›Ä²¯ÅÍ”/Û"ˆ½Eäž/‚G÷„èÄl:rô'óc-¦ôY²bMßwBêPƒÚ$fNúÔ`ŒBýËô™›žaj*™§"×HìæyÂ7kØÎß|T`sŽG±.Š"óµŠ~–ÔÒdzõ‘¿t£F?Û–šÔ0š´¶aRçí´)q·ÀT!ávþƽÎÛy2ÇË̯…é±sˆ¡ÛèÂQ‘¬sRÑ®•^—]÷ã!œÜÔ„ßTE ûæ*{&ªÂPË3†ZöÂ$Õ"Ø€á î¹úŽGê} -ýÀ8ÍÿÇ?Ù´<åÛÀÃ4ÿûq‰"‘Õ ™ˆéYœf;"Vbqߨ ¤~$¡ã»Äó]EF丶“D²0½Ñc{m×4mÒL¥s-תãI]Û$îíZ ¦Wãå¾$)±­AÁÔBDÛåÝJ¹¤§½Kô._ òóÔ Ao÷U-/èöàO£sܵsüÌÛìAøâ/”™¹µÃþJ©ªy²Óö,nxäS›Y‘áÙij<#ˆ¬„ÅVâS7òˆesÿX,!m膫š]›XÍ@³c8Ä«ˆä?¸ÛêýÔ=ñUDºá‡ä†SÄ´¡“ü&äXÉf‹›Áı) ½6BÒ’vnóAø±I[¯à0=ñ—I›çÉí³Ôé9ÄpCݡѷó­×,zν@¿hЊÿ­|‡ÓCÅäîÚÍ`§§ T@^uŸ‡15¡¾ dˆX™Ìôæ1›;AyŒÚžé‘ïDDÉ–^__Ž) Óa:}ÀóŠ\fBºy³†ÁC9ª5Wìq§Xª|ù>°.+õ,ÒpMÓ¨;À¦gmqë¦ÙX’ÕpüæÎ ì ˧»Îoâv†·eûÜ4K^lq"äÜ«§²¸~9FÕÒìž_{uv«¦Û±"Þ`BÕZTÆÊ¾3òÖ† žÇ^b^ùQl1ƒ9†ÉœÐ±ÍÄ‹Ë2]ß1,‹p{Ф’Á€Á>%ƒøÍ€õ¿^$È2‰µ­vcƒ´Þx¥&’V°àÀÌ#J­Ýë=]°`—AgÁH¸@&<þÙX?Lv|Ø:¤ŸÁTÁI< g#ò* {©.âÞào¡Æc±ãÇ4vÓñid†fdYKË5<ê8¦£ÆB³³Ïþg>¸þ9]ÿ.&“Ò;~ó®÷‹v“µpÜ%æmâàl§ÎGãƒl)ìÖà£i¾3ˆ‡;T<u»!`Ï™vè<7&–½*©íJ¯QñÈßÚ©EW]Yô&_,/)¼ÂGüI(.MH»òvÂÃuð–víÃFIÕú>âÜ]Iq_Pßd~èYžX†Û®•ľÌC?H¢Ð QÂ<ÏUsÈN¿~ùW_ ]°(¯mZMJPj›Ö\0j¸†J˜rÃ{òJƒ–/>¯Ë÷ZƒÖîv2 ³âÅæq½pÃÿë·ŸÒ)·ÕŒ“gt^f˜F®pâvZÛîWå £!‘…?X4Õ‘6®†Ä°chR]D¹²qýL^&•’rLGŸÊAƒái½ƒ½ä$ dÎÞ%Üòò"jņaØ~èº61\b³À"‰ë‡6u’Ø ‚™ 01±»ˆ‹oØËÇ®›ëKæ>qÈ2“oY–oW#èR¾w¯3Ø¢•œx•eã—ÉÈÒ'V[Çò©xÌ-Íçµé‚He°*ƒ-Ïñ%‡JÉ[ å¼VR‚öÄM 1¬.©Ú^‰—н¿“iî 5@ÛaÇd¶¢øŸÉ÷Š0Ÿ$3ÛtiE¦cPYÄ÷ßñYä[¾‡ ~ñïµÄ¹·”p§ âÏO Ãÿj\ÀWog8¢øÅ(þÇg÷[Añ¯e‡ií“ØðB?1=ÇrˆxÌr‰Gœ8äß™~Èm+ĉ¨ÿüÓ·SLiy=)-®GõØz-£yÄM Ϭ§´þÏ–Ú:%Uïú7åÕòöj›:ÆÝkØ6igçÔž.÷ìUOÖOkÞ¼dÛ£ƒ#G-þLý£C˜—‹¬:‡[Ú§ŽmÏ™ -ÎÃâl¿¦Ô=!ûË Ž¬(0cÙ#¡E-×Iℹ. }B¬˜ïŒ1µÛV²£þ$ͨ×cFifSÓ2šE mêNÍŒ²MÏk—ÌßÌ >ȼ`B–_ÐùcåMÕJò¶€üÞÞ¶6eB6j Lf|×-®µdî‹‘B¯ÖÎi4üöW}«G¼·· øžpÃŽ”g~) ÔöÀ3°÷Ây£™ÕûdɹӜ¯-SÕÅ®û…ñÉÏQô(÷ñÕ1Ÿ¶™Ø/Öíç°fò5ìfšMöÊœrJë(f·l¸ë‰¦ ÇÀå­3êsb{U3“F¦kž;vàúF’°Èô¹ ‡f‚¹¾¥vž9ÏjË÷±÷ÅZ FîGi6æ*¸y|—N¯ûÕè_Ì&“,Ÿªšì¤ØN¹qÕRl¡3ÒšvfÁÍ{& ï^\öi2ïÓu]÷GÁ ësS2rA弓e»Xùó”çG,îï\ø"…Aÿ; Fýÿ9œþ½€¯ÿ›ø7Ãÿójú÷^ïBAýïÜæÝMþÖ'žG{?që‡wGüó·¾xÊObŸßÝÝ æ=:~Ä>§†Aˆá: ûܧ¦á9ís>¹§yÌI§nŸjxÊÉšoΑ¸)ܺ$mÏ7ͽYâå îÝ"}÷øTÌ×Óÿú/£œû†y‘uírñ¬k·®ƒÜr-Ûlm7ꪸqëÂ8­] 鈼ô«·N_ÏI—œÜ{ÞWƒÐ1Yà8,ñ‡¾å8¶mDQØfhQÃõÍØ7¬øÉöU¹ëê¦*z÷ööMOkßt,¯¹oZÄv¥<©ç«…kïcúÄn·cÖç3ÓÐN7ŒƒI1 w‹âi…Õ8}»ŽߺËñ%-ˆÝÄö €:qØòÝØ4là -ÏŒ-7Œ™Zç{– a? bî^¥_^äð¿ýó'¿õC~ïø‹£µ—MAgŽÄF)ÐSiò 6´ê*¹\1ùž”;ÎÇ xèz§|ûË3¾ðBÜ%˜ÂÎ%·Bq×ù¦4 Š"«n=²™ý<ãÓbEyG¯ÇüìgWÕ¯\w\ý!ÎàËËÛÛ\Ã%+{[}u[ÚÛ\î6S_\ǵëU'\ÞD¥LWù‰i|$&ð®QšçÞÕJ ém:}8þ"CéøêXLG•=-¦±Y´e=êò®ne¬MD%X><‚‹¿~÷nžÕ c>ŒóZèQÉlYncû:•oÃ]:潉; ghï6ÆqdÛ–Å cFH ÆDÇt1±ID,C-½ô?ÿ?{×ÖܶޤŸ×¿‚OS™šc›ˆÛξd}’]Ï$gN­sjvž\ :ë6¢ï¯_€Ô…Ôm‹’Œ‡T%JàDwÝýuyC‹k$[ë¥@{¥Î[<µšªÄE{Ãltiµì{sæKÖLö8sÌûõ®”€b Y¥„c:ƒ-»µr’·©féΡ{±ê‹±xÇ þ„-ñÏ"DèœÃ¦Š›GÊÛ0Ïïç»Å+p,•qÎs=é-{ùÀí{,Å?‰’÷µ‘Ì}¤ñëÆb’ë‰wV©´b.ó×_ïÍÅÚàOÿûíÓ/w·ûÅsšêïÏDi¸)í­>­`Æq’)!D¦R 4öŸ`X!H€d‰Ê8Á‚wc_Ò˜b@“„£— @e{¨ ¤rÒ‚#Ux[«2ÄBŒ Ì5›ª´ëpxª ¥ €4£q*ÓÆH‹Q¦%剆,’¼™†3Ïàhõ›Ò^_H.+‚ä›zo®B!Jꓤš\Æh*þX%—-?•EÉ¿œ¾ö;¦09Ž[¶®®¾ÐÃç”™¥·Z„t²S å–~œ¤—ã‰9•ÍáÜ•›hÂ,¦Œ†2 ÀFÉPž¥g©âBb~$nnâßçÝ,ÓÞÐþ‡-/|ÔsΘãUE«[uÓ•—Ý1çóE<™ £|æcƒ/•°QX£IïÁˆô#iÎk«é~»ÝGoõ=уç裑5ÇQ¡ãþ96f^¼—"`~’ŠÎÛÁÑz JTÄ4q!WÜ»êv>]/ïL猒–M&‹«Aµ·é¥çvº­g< úÝ"ì\ô…Q×w³»OegÅ+s~ z¹]6÷!’ê¥Ëg[fš/ïä¿>yX~ÑŠvÒgo›¹¢CØ·5°æ º‘“m;…6Vhf${ÐÓûÅø{ã_?ê™Çª5!]Ù{HkAPšBR-ÓB°ä(Ó™Œ3’Pc2­R'{¯ *·•žás+8¤7”ýÙ‚Òt9c ˆ<¿3ÈÂXrÐÇ’#1XËëGÑ*í¹ØrÕM¬¸®a ·´â*¯Ñ±V¼±\í­’%Zµ¯~C›%X#žÖÈ7¬~«&y‰$ÍCìÁ<’ï«;Y^·¤½r)”b•& Ycìh.h&P‚8U©ÂÂXAN–ÎÇèîë^ßÜ~¾+‚B?eŒÊŸ ôÛZ%æõõæúô®àõrµ€JÃ¥ Ëg½i»Y†uŠ»mžòÕú‹Æ^ÓQë1k_|aÖ|ˆróþÌÕ&¯y åŠúæ³´$+8å—FD±ùÔ[†¦Ìêë×3Ñ«PT$¤ù%¿‹žb¥9Vv6ˆ¥k#Q’ÔÛó}6¯)®¶d)Ë Ö¨Þð¢`Û(Ö¿Îé•pqñÙ˜"ŒÌªÊl;3LEÕG¹Èåø)*^cK+ÃÔ#¹¸·‹9ÑÙÝÂþŠþ®SóŸæ®ÍU ´¥ÀõÅů}-Ì.§ËèaañY[¥*_Ÿ:ôPOD?²ÉËöó*®mxQ kåN¦ÅÅfNAøöɾ#óªlÄn-æµ»°~~2¶ïðѾè‹9:¿›|à{$’³É¤àº(VšFóo,ÈËø6šXèâûèÉÌöÎLi Z7¥q¼Û”Ncy-¯R“¤–Y 9†. Ö Ã÷–MmÎÁ ÞÀœ&´5§-áÛ‘æ´0_ô@»È:Ð)‰Yzÿ¯Ùh*šÅÍqk¾ûûA®²ÜEzªîï,úÞb™óÚ¯¯ÈØn’›õû®ëÍÙo¾ÆGr:1¸7êÃVR:ÐH™ #¾—«¢£aߺl¢å³ì;lò`tûn–~º—£±Ãêaè =5÷5ÈïÓéÄAüyh&vx°Å|÷S•:Ìi¿ô;¯„šË±:xT½‰×€>Ò“ôt4“ÎþóN5×oñö`LŸ1y9Èh¡”ïbS¯GüÆqwƒ8¸z,¤ì;r .$?|¼ùR/8 )1§Ù¢>~ûö?Žó9¨rÄH lµN,æmBc¯á·A–ähp¯'G¦Q9y»Ò|²£@¾âWM¯ì€Ya¸\‡35ê¢Ù€Ï×´>ÆåËxÈs1îÝ?NRìxeë#>T~¸‡÷_o¿9,ûˆWO¹ÉèXÿ°ø×=r]M?Ϧ½~æra ÑÅí»^P߸£—ækr|ä¶TÕCÜ•Vw˜KåøH–¢¶Âî—»›ŸuÇ0wU| I¯¿¨ûs—¬–:Œ]#IžÅÛJ®hÛ@—}ë@fL§Qÿ‡ãÖ«{-’—oßñÀu*”ÙÃŽ’ž±Ãÿë>¬±ôþlLBÕ~ÿONFæÛd*¦zÛÚ›‹üG‰h±ëæ•ÜÑy|5ÑW»úâY™Þ°7½R×Ãu¶’mB”&5¡å%[ÉŸÛ)kOf©%oá”§}w±”œåz’ï\<’rˆýûéß{C=UVøi½i`´žìcƒÍÝÏv­¾t-Í£Þר°™ÈÝ/¤"´û…,…r‡Õ6ï®;®wpÕˆ=ßûL=/JÛ×Y«}ñÖ‹DõV‰ fµÔs3º)õܿɬïÏwœ2s4„۵EWÁ¦<(Äj{ Xi²ÒŽ™¸ï|Tp/Ü´oʹQÀ¶M C‚ N3Å%ÑRÌS…Èhæ–háÎCáà g_‚,& M^J ·JŒ]§Æ9-]ÿ ´8Ç“ ›P‡î1‡×Âç¦àæ}÷ºô2- 1V*ŠI€! @¥€Xý&5Ï4O¦n]dÊÿ¦,HþmÚë÷¦æ+?íŸùKr®ô¹(+}–mæñáó*÷¹¨”ûD¡Ü'”û¼ |±^9ÂwZ3Ćëæ dqÌYµØÇüälÒTÏ¿“µlÎÅàƒvfÍͯ ¢½n~e8nÕJ!÷꣰¹ÏRrÆH zA“ƒö#ñ!+T“—}í2‹ÙcÐ"+ØD‹W¸‘ü‚¡›yÅÎsÕó…ÛŽ[Ë3vŸ¥šnì³ú2™¸Í˜J²óèZ²Çªµ„d¯c¿ïûP6ò‚=vc5µÝ¨‹¶ ̳T»÷\Þ<è:(œN¥Â:I çY„R©Š¡5³DC8NO„V¥¯ž5“½ÏØì6Z0˜Tý’5ç†A›`Wñm0q\ñl0DMýájLæà’íº¦2?—l;ÄhíüòŠÍ:—¬^zp1BÊÜé¦Ì™ {Y~9͆[m„C°ˆr¬–Špch¥`e#Æ„JyÒaÆ…“…ðÕÞI4Ë-q»Uï7ÅíG·.êiPŽî 8;ú`ññ?ºšÅ3º²+*þjÑë`/"Ã%@ÝN-6?ËgFC>Uùcô¨->­Ìë•ÓþóEú9Û0g0 ã”§YŠc€3‰UŠE',aZc%¹P¡ø$Ÿ„â“s‚çL|z'€„p€¯srQ‚I•–‹r@Ì¡²¡ß`~¿\ÃGÓC ŒyÍDr‡æCýÉÙà¡þäEp~¨? á‚£ „ú“PêOöÆCBýI¨? õ'ͱP²Ío– õ'¡þ$ÔŸ„ú“PêOvJ…ú“]r¡þ$ÔŸTL£¸£`©ÊãP#Ma‚$ŠK¨"$¥ˆT’rŠ2è,­ÜÕëµ™YÎØ—½f€¼jûB[$FI½¦„TƒZ³¦šѪnÑÑê>¢•PÌjP¦{DËÓ«¾ùC7›i|ÀÁjvÁÝ‘™·EElóX+ô»˜hãéüRg®ß]ñ-O’LQfÕ!ãgFK"@Jë JI’eı{NivÔîïE&Ð2C«Èu2~YOÎ ›reJmQöЩdlu4^eu=}ï£f u‘W6O+ª_é\x`ˆŠ ³LHýÞ ­˜bŸ_ 0ª³×‚˜±ª¡@BØ~CkÕÔo˧qÊU¾?—Ûp`޲ë/‹}{}SìÜ›?ýé´ê|é•´¬óÝþflU­_ÄN«îìm¡óѦå6œ¤—ER°9¹;ÂÔ ”)ÀRƒLÎ4NbXh’a(h %ÈÜ8,&b<6Zmž k“nõÄ=æèUÑêNÝ4êÇè©>ßtMfÃh†EO½é÷BŽ&½#ÒlÛMî·ÛŸ÷è¿¿hó%=G¬9¡ ý÷ω°yÆùi÷‹´Bו`«½â@Ì›:Û®òg«Û9`G øE/#¸¨¾Ñ×a¹h=ãI$¬ÎÛÉŒ†Ù•º¾›Ý}*‘+sˆ z¹]ömR=_‰)â³&ÏÞ>9,VÓxé¸ÁoÔ"£vb8gm¬¢Jzz¿oñÇõÞáQ”._ÔÏvdøa˜*† ‹‰Î “k¡£4¡išBr¤„L‰Oéæ•cGÕ‡ÕIüè–âíºº-—ö’ë:ëѶî©Y0©–ᬗaÅ0ŒêUX‰18kñ*û rŒX­'kDΛ/¡'»QŒÅ³8 ³–m‡«ïЗ~aýå:võnKí¹›ÿÒ¶‘'Å¿äñ „})(¥õª€(y|¯Gïã±è{&÷9°gV>jÐUóÝJ™ÅÆã$#8¡qB)p )J%O`Ìyâ$õðÈÊ;z=l>ßûÌå£1…>=R1‹áZ._LY]Gæu6„˜‹Ö¨«½£vKNx-ÏË7ò«è*ßxHá;OëœRøòñÎÊ8¨§`t—÷–Bš¤8eJª h…h‚ÈŒiÀcÍÂáÂ4˺É{[H+Ó#~»íòNÃõLƒ#Ì곂 †Uü’&­ipñ)gÀµAp)åÓ–üYëo±Œëª¬—Ó³^ºáø÷A{y}|Úò< Xyx¸Ñûk‡ß€;[yIíºÍF6ºíÍ€- aˆ+MEdi Eù')! ¤ÀÃ@þy$g6¾0|^Vb){—<·‘ªNl9h{SË:<Ml´‹¬T¸ùUà¼=0q#ÙPwê`D8ƒ5[ÝüÈUsÝþD“¸Áb7Ÿáõò;Ý4=OÄF¯}–×3{oâb¦‹þáÁÓH_7¥÷›ß(Ž7k} X)…ù²t…œ˜]a´Å¼¥Ax6ÎÕÀ˜'N’f¹­9s›×N‚掄컊.™å\ØX£«¬Ñ„ÐIvðœÿËí’ÔFnóŽÅÀMn4ž: æÓ³û¯vülâ¡“è‚:ÍIøwŸóº®M÷–Q5Œwd~DŒŠa„¤ f2†Rk‹ˆX+Bc`¦ãj<žP#LâÖ¦Œ½8Ô¸‚ñj»ô”Q¼s :"|Ø cùæCfˆ †¸ {9GÇJ=‘ ‰ M ýÃ4G>‚Ç ¡f1Sä0*:ÞKE‡1#À†vG͆‰!^3$(HŠþ<+SÂü‚˜5Fí9e{¢MTð8Lãתéð*å†D0$B¯ŒÐ+cl蕱%Êë½/ö‹Ÿ~7‹Sî9q<$:ó»ª*)¤ž!”Q¨Î0eÖT ™b2±A) ^á{ö ÷Õ±¯Œ×½BK¸Y÷ b qçE5KÕA8Õ‚–ö1¯©v¾àKù ^äWž+uTH] ~qð‹ƒ_üâà¿8øÅó‹ç º1óÕÌÀ©7æè$Ǫëþ²4N€„K¨ã\'BSEDãX’ ¿›r·«/µÞÿ]ö(L2KŠÍ¼i@AŒ\&PÝÍÆ6Ñú(ÛÌ/±Ò¿ ý û0³šKž ƒŠCž ‚«ùä_¡qÁ‘UqbXkFÜ"ï««Ž ìgïzžŠ-{Y~9͆¦6i"¦AF5I¦J)ç„CsrJ‰ã8¥ÄI™~µ÷bÔU7V Ý ºµšg¨§…^Jt/úpsûùî®Ê³xJWöEÅ_ŽŒì¥~,f¼Šn‹¯Y>3_ȳ9ÀŒÒì •yÁrÚ¾HŸçeTö2íÛ±‡×Ów=¬\ól[Ó?_šÿ7‹•ÿˆ¢Qq={çÝÔÑ牶ú¯P›Yùw1]¤jëOý PLcDëÔl/P#¯5¿0@'-ºúNNYÎQíÏË {jÌŒ²–Ì«Ø º|Êên…uBˆhÉã£CX ½J ¢]G*[³BüõÓ?~ûvûåî>öùŠ­;BzP:[¯ÏÈVúòû¼ ®×¥¾gÜhÑÒ¤¯œŒz“ºÔ¬QÌöG)Û™«ÙØöNë´1Jn{ˆl)"i*˜ ‰€™È(L1Ó"œØô–TrıÔµ ¨m‹T*Ì­Sx LŒ|%Š4ú›uJà ÌöÄÒ¨^±=ެ*ŠQû ›Ö6¯ÀZ'5ú´/ãø0p-•@²8I"Í85ÿ2ÚSgX$X‘8£)6"í“s\¹±×K<~ê2é¸{íbºÑ.v/YlÌ’z»/DP} LÚÅ®bŽO[r€O/}1ÃÄA§Ó¤µkå7UwA Š=y=Ú5 Ü –ëȶ1ÎÊ4Y&uëä¡ÌÒÿgïÊz丵ósæWôSâžîKr@‘}/Œ+ßkD2nò$°¸H ÷–^eÊìSfŸ2û”Ù§lÍ>e‹dö)OîSž§çß™R­…¦ÒBT$uˆaÇaŽX,ÇZ™[ý]Gâ“ €eÓé#’Õ1E˜ú G¥<×ÝÞ®4ßùbwï‚’Ÿœ0Ñ8ºR|¾.=þ²Ï—}¾”!§òùÞVû@o? ­†(Åxa ÀœDA.™•Z[-  Ç«x6ÅEàÃü2úùžÄ‡âÓÜ?JŸÅ ¡õF‚œÈ¶6‚ëZçÕ6yAlúCF=¿êvO¯Wò eΦÈ5η¢5ÏæO;jm ,§…ÔJÇwš9B»Úk˜×s¦ýŲ'ãI3A0kÖçëô¡rKêtåIû²»}nÍt[~4ç/QNñqÏìA_¿V¼IºCÖô9Ý-Lc'0#$ÔF#7q¦° \ÂBp y¡…+ Ö0eç»S–£&Ñþ«—F‹Ïì¸ßו*xçû’Œ »×g®±ö;d?÷ÇímŸ»ÓG >˜ut©ÃZ@êÈ}íßr[úÓ7­ñVËÔÇ^IŸE;®˜, Ѹ`†CŒ pL*f q„;¬…ÂŒÇÕmT~}ãÁ^mÚ¼ì9 §mlž›Þuw±Iåðeœ¡f‹¸P¿XÎId?øæ¹^ß.]l.7À%èÊØ^¾ÈLsÉs=êíøUo§•Õ?¾=çÁ÷ˆÇ'©Ïž¾#yc{Î8ÃŽm G‘‹5³RIm´Q„p£Q%!’Ó‚é¸ oeñý0Ö‹P¶Yš=/«S™ÓuαgêùÀþ|ÚGpÍ»ž½ÚÏ} ý½9E ¶Š XXÖ:&€“iƼz+âÈÜ»°Æ¬KØ/™7f=ÉÌ“NÛJ!âMækÔ5! Z`V«ds×\oHòv¨[ í¡l®æé©cžÚºlg~]±Šs©QNm3ÂqÀ¤²ZA .þXÈì)«3=ãÐ3=ÛF+Ûˆ0 o&l!‘˜‹ a7‘”Cm¿­ã¯Ì.ºzo!êHh¿8§ Ï£ç‰8ó4xy ª<L‹!OŽÇ#Æ“€â øðxXx4<ž„ýNƒ|'"½£Þ ¸î˜˜è‰½ŒêtYv_Ýú/?&xe\QOR¢ÃßLš4à÷ãÄ^ƒô|¼ÐÑðŒUàÕÏ?ü’:ì‹·?RÆÌªA^¡(“ž'½â#ATÞ\ÔyõÀ­Ùz¥c+ÉïÞ½ÿYt¾<Ä¢®¾ýîݧOÿyý Çì\0Ð'’\#!ÉÃ䃈°(ƒ“hÁ $;É­ÀŸ-§¹ VàÃÈ;ó¹´ŽO¢xT‚èüë´r©R¥Óžø¹1ýÙ1:í$mÙgÕêG¸ÀœãÅÿïü̵÷2vdûz:µ=ÖØ{ s5·ÏÝ{÷&ªÂÙe""¸yÿQ…²“‡©ýò`þôþ}K¼’éúóó8íB³ƒBë)É*4·W6œíRëP|§<zеäbf§³C‚«WR ? ýGdç&?©ù¹•çª$üÓ/öÝ}íZúW½ïQÖ2S½AjBûd-4‹¸ÛîÓ2I§ûnv?/Fç"ŒŽQQ …-¸qa¥iÁIÁdBÍ.¢u?‡é-f R$ï˧ïýR-þc*³w½ªø¨÷]ȧýkl¦®|EámõÊ¿†”]™+,UB­÷S‰.^ÌþdþÖë~ÿfCnË VÏßîŠoËÌM˜fXš§yújGµ9ÿsøþû½ÿw³êz½q9Ÿ¹›sû»íýyjC ¦Ìܸêïj¾ÆBÏ{W™Âí¤p5F‚Pζjî#ÒRo,Á( - œÀ%´Ù!WK%´,·ûóúS*¸» fH‚‰ŽÍ6«wØí5ö.?ê•X9€µO6™®!ÈÔ pùëÿóë§Ÿ>|ü ¢vµG¨n ò:IåB"GuTîcé:nœ’=Nf)µh[û¢Aæa1Ñþ5žÏ%­'èÏ×7HKÀ4†K B_š÷cV)«8b ãÊ\ßW% ¿ú¯?/Y/®%º\¡h°è]õQ=ÏrKýSbô®†íeÄhFŒ!Ü8ßAŒŠzÁïV¸Q¨l¶±¤€1ªüO”Ò¶ÊáF³ e-Æ[îd‡þ. Á0Ç küéäf1P8¼KëXküþ‚ùC<­êû_ ò¥½8ûüä¿ø‡:½g±w7SíßF¨ƒˆ”žÙX|›?‹Xöš¯t©"åz¦ï\Ê¥ËÌÌ`tTœd–±›U7d-ËPÄׂ"ªŒY\/ýÄNÑѯÎÂ/áÎLË-±ÅËgZNz)/àZŽ*F_«?ê{?Å+½‡ÎÚ(c×q[ÑÉ‹¤~6òx¹¤ÓÞ;œUÜ”ôö¹ª“¶Ü:Ö™pÇ€5óN¹M}ŸÝ˜ªŸš¦<âɨ®‹~ò÷rôØË&1âl9?ɤ8½=p³¥sý³…(ȳޖ1ÞÂMÔ\õÇùó¨¥ „L8jÒ¤gþÃç±g»0º˜Úgx,ýî(dÝA±­yWSž¢Ž‹ C¤â ,®ÂŒt³¹:„œ}›UNÎã¨z=}woÆO#ÿ´Þ›¯z¢Íý×ñø·ûVàs—ZL^ãBUœoöx¤«Ü»ÅH‡ðÚ¡´G0ïíï~GÆ_”¶HƲð¿ÊÃ,”9„û[ ;h²¦ß~ôRñwοµËÍlEzPοÙ6‰a1ðïyñüÆoȵÂ2K+ê9'Óq‰¶k›Nô*yÔ†ÕJÚ.Äb/7öçý¸mQƒ`YÔqgÿÃ|ÏiÞûÒºdm@ÞºÜtôÅŽ&fßQTÝNÆ1Ï;WÏ0ŸZÛ"åMBéöïÎË™Å0BjÞ>}¯{çÞÉ9t4lÁÛzäÄvþ‰à¹wq°pNZ)pA€¥Šr®‰V0””F×UI%ÿ8¯×,#\lp†çÏh¥r 0)l¦³uð,E˜¶$²Vüpá“|ûɇkO`]ý áñn¹«$ LXìÜ¢âêÃèø{Llíqc§oÙÕÆš{‚""ÄV¨Óˆò¢0€sd¤e‚Q¡‘bÁ:iîú5\4kîf–™6·C]fˆŠ&q.ã òF7¯Ðï+G¡®hwó\m}Ñ+pç^P±§õ>õ‰¶ÒÖ’žžAw=Žº!KµœûÍÛ9·£‰«}ðÔySÕœI [Aâ g¹ƒpK˜Ô ! „Œ!B`‰‰RÂÿ¨¥÷ƒ²¡‚7œ$ŸÊXM‚ZíWŠtùVîÍæR…|€ÞÞ‡ÐÛS|,Eñ!,ƒ²¡ø$¤œÃ:¾UBýZ·+¾Æ·zµ:ïÅËÑxq$ºi¼eRs¹˜¯Ó"§R_ÿ¶‰¬.¯nZFÇ0y†4^„ÔÞîS³˜G7âmj'†!µ±Kn+ûJ,œñèÒNa¢rP¬·gF^"ú3Árõ{®~sÁÕïM„j"Àô…xÔD j–´#ì4oš3M€|vE‡Æc<; A/‚jqkÔÿýéÇ¿}üéï»ZªÆ\÷.¤éÊwˆÂ”V7='b’¹ŽdíîÞ·™Y½˜½î®µa.@))½oÜúà½÷â(_v•ü1êk\Þ|0üJþ[äªY;òéð«ßqäÏŠ‘ ¨µ¯jj‡cïƒ3ÅJµv¬ Hœu0¤ Õ!FÀ‚+ QXªñ\¯›j^öª»@A‘8½—Ìí"´8%@Ëd`2lä%±¤ž•$ˆFç$kÛãjóKÊÃu6òº"²„ Ù´ s›%Œ´ïšËž1\W Ëá«„`ÏùÃ0éá‘ÔHÅÑB ÇŽÄ:ôIžæ1<Æãº€'6“C×½I?ªï4,lJ!K”v¡t¦p.`Ï5 #í€Shg'wöU¯á¢Q}Ë)fH_ÉÝES¸»¤IÜÁDÖ;½"8l:/I»¶vÍ5óv½¢ïr˜»BõCwD_}IOç«îÞËwfìíèÔeeó®&õ_ø±Õ(&F#¢µåBŠJ…¥V¶ÀXA'U¡ ŠÃÇ¿ÛðŒ†ÕþÞ7^ßT ’ïš4¢˶ð×ÍsMpÚ«NïüìËÇ~¨tl4·i¯Æmz—¹M3·éQ*Aw‹‡*A1ÜŒ-úa˜ R/z?q Èa3Ét{Ôû•˜E§¯ݶZÚ¥°Û(%ÊÖí;£pÿ¹Y8ã¤e3ß(щÆÉ'ó8Áo~_⊖DMQÂZ+¶ Mý&òOuÅÃ Š’þbŠÈ7õd*¾ÎÃbÑ%uŒ›¸rŒP{Qš8fè¿o0M+Ýø/³Þ‡ÞýÒ ¬6$€â#¡ò¢§úÃÒ|›õ‡“AßUýÑVwYÚG^ïHã½)v÷¾"ZØie‡ù#µ ¯”/Ýkë@ubŠÕ´hù¿,ü7øÕ_ç?ѯÞl)ý—Õ¯þÚfõ¡š±×§ôSë9d¸YìÁ§õ˜÷"-º¾Ì&V;à¾üŠïËï·S]¯¾¿¤”"©ÛgIAjwcާ×ÚÝûpóÛs¤P 7$ÒÛAí¬ÙA;Ë0Ø™Ð:  ‚phÁ(ˆt*Ǩñ?¯J ¦ ‘€ÖYí_ ¦³¼ÞÛ$8J®äؤ8"ÞsbBÔ;„ú_dL‡ÐÍ÷yµp™[RtAÖQÑ­24ÓœÏh™«Ñ¿-“‹½r±WÔ˜ .öÊÅ[¹xëÀ \Štm9óm`ò~8Ú)nÞ«J &µ0Úqïr€ # ƒ¡2…t\ª¸,úkmœ€;®6ÓØìͼÛS’©Ð̤J ëYT)dKÆŠT÷™MñŽÝëÇš] É.ía}vIÏBQróÞàM)Ð}œð§p3¥¥eZP@ÎjXF^ÊïN PC 2+|ïÄê++-‘àMVxoûÔ‹ )G¢%-¸AJoñ§#¤¯žþ’ÒDtHwèÿ•yâoBOnâ`çizz‚Ö¥7e ´Õt‰¦RÚ‚`N%! qŠUˆHá¬ã¶P"u®èÊ]œlFoZ)#‰kVŠÀ‚´Ôs­Üì=Õ\Ù¿>—»“"ä2®ö;d:Ö£>k·Æ ÄBªÖ¢,fYŬÓþÔ…Ò£©Ðà4_²þ óËÊ3GˆCqù+½“_Wž¶Uù,QëMÒunÿÆÚš‰^âãŸKuŠd½yMzsÓšæ|ñèåÝKÄ‚–tN\ Dס2Ë ) P ñè÷UK­W I×ßÔEîmOíÊÉöãà2ŽXÓÇÄB@AiMQú_â-éÜM4|³5®™5¤ éÞEÁã/Êßnu³èØ¥~­Šn9>ÈÙÞüëz;†äþíð/:ôÿ0¸ëH‘0²NY–5^8aÐ Û›>¢Óòï€|_0t}­&î·ë¸-¼püUê°á”»¯AÁ]ÆÔ€ÄÑ£xâ„»6€Å ã6°á.cêPã„áƒô;nA“¶@VÜmT§ÛÖPÉiiúÔ!O],—ãz¹ËÆõNhXr;—Þ¹Æe‚¡OƒvÖBC ¨ ̨çÜQƒÓŠÿ‡Z‹5ÎXèi®V} i³þV2I´›ˆÅ•ÞÆB_WîEœ)î^ˆ›ñЗã&ÞTúiiCÞ69_(ÚÍ ¦Îíœd… aÎ ÆØÊ;!MéS{¼×‹G?3}~ÕÆß!—@„ìUm ÿ¯è0ļÞ)CV?G†·>×kŸž=ñH‰T:«µ”:ÎÝÕ?5fúÍÆC“|·Eq*¦…Ú„ø‚ê›2SÊú˜2zr.”Î;a¦ÀB8Ê Ø")•AZ¬¬†œX"ãø#såÖ«:ÛlY$ˆ0¸ß"‘˜ &¬‹#"„ŽÄyÛ›Ïòzq]/'»RõM]„-‚Ä.ßó‘ ·ªåϦÈŧf»§WßduÔÊÖ>k\] d˜S8]`Eœ(˜¦q ?Œä€@ xœÖí‚í^{û— ð^O2£¼»ÄÞiò;CÈXˆ" ZJ¤–æ@sÏä¸ûeÄÝ é^'Õ\ÑӇܟÚl7¯ùoH©îobIê ùö®­ÉmK?oÿ >&5î6î—ݪ­ñ8NÖSNÆ5v6Þ§.»5Ömtq»óë÷€¤$JjI¤ÔÝ¢Z¨ÉTbAÄù¾sõâF¹*pŠyÌx¦-VY«°fiFb„—^¡¡›·Ä‚«C« ÌÔøBØS{µZäé-V{JÈX !ÖB8n-„B!~Äœ^ŒKgTf•sFbD¬‘†:ä´Ë\J1ˆW„wM|¿ŠwzDåp1ޙꇊ:®¤^ÖS.ñ’ÅškYÛb]žÏ³¶T·JÖ‰ý£šöô.N@Ìðuò²øØBg¨‰.NΚ;V–.*­&Jy"#2Ê{ª2c)rXñaÆhJk†IÿQ¼Kò“ñðæ¹R-0éFR¾Sú¢C]ºÅP…>8”¾ \úÌd½D ˜›TôeR(¹Bl5bHT½¯á)jeÉZ:­§›#ëe¸¦q"Ùž²>Ÿ mä¡1ÌÅ»ŠÜÿ\°§rt·£· ]»d±­B¸Öøº|nÊCÓ«4ß%t:5-}!//,»ºÕóy×@eŸƒªnÿIÃÀóNpåýè[¬7êµGžêÌ_85ðÊõ&:uÖâ±¶W¬íµµO‹k{Í Ï×ôœµÀb-°-çÕAv^üÞï|ÏÅG2†Mó¯`„\pŽ_å\P¥@—NyÕ§é8ÏiJ"Ì…H~â\Rݧ…ЇI¬Nkä+BÞXøe<å)“ÿ†O;ý#øïCÍ‚°/´DÓ2(Ÿ9 ’‚ LaÂ~Rè“Â`¯á¾ÈÕ`?ƒø0Iovpî ›KªË k—?ÿU’ï[+ò÷q;{Ï‹Á(ÿ‹O3YœüáSøKXx­Š°ž7x}qñ±ë ,v1lÙÆ÷séäTÞªxuø¢’ß÷#ÓM‚z*|_ùÜúE0Õh’O6qáƒJÞ…ý‚m €h”ÌÆ kžK¾W€µú_Çù*…õ¼Ÿ½Íx†Ÿz „;r —?©ünÊChâ>–CRÏÛÁŒvf°J"¹ULª‰¯VuTIƗÊ•Ð\TËG…_ÙáWV¢ªõ[ð”QÕËp0cJ}§æ®Xã:6¤õÝ Gbî³è&ÝdnÝd¢ÛË3¸½<©OÊÉzX¼4ê Gî2煀ЎG½Mš m„p”ƒ\jÒBdŠH•I 4œ2­xZ/Ô#3úQRR¢@½¾ú|-â]²xÙzTüMr·<0ìÑ´ŸF†„E™àÛÀÐ:7Ф›X8wAMýûûŸ¶0©¿û‘ïÝ'o íž˜Ô¿F&°Í|gòì'I§0 A7 brƒšz%ISHÊTáRXìÊٸĤª‡ú¬™T‹´ÓJŠ=+$”®aÕM}œ ½G<‰h•Â})¨È®ÜëOÓOï õÚ\e½Î8í«‚lÖö”K*žrÑS.zÊ=‰¢`=Û6Ó‚l¹ú5æŠM«9Wá'l< LðžoÔiØ µó™™v'×ÿž&¦A?¸˜á†¸î]6nÔmâ®›.Cf¾úë`Âiò¤ð çùÛjw˜v»§Ô7ð‘mÐ%ä4ñŠ74è’z˜Û"³G“>ƒ~÷¾Q{o»MŽ[q97ép ³º»¶ƒa“‰Uz‘&Ý&°½ñõw3™Œšô»ïãšlPþ„ëå×~J¸žYõ÷H¦J;l¢ì}uQ£O˜Æo2˜ÚÚZÌ™} æ~iÚíÀS“>ã¢HBã\Ó‡M-qÌføˆÙ ëd)4¶±~dÞåÍÛÍ”1å}×ìió>o>þg³çEÕwýž/Nõ½På¢+}¥šôœÇûªÍ£¢=*Ú¯hï5½øÎA3?O¸G—JÆúgé›<°š)qÏn§d¶;Úô†n·µúýÙèAOk™±c&h, q•ɻë‘¿¹Ú–°°ÌçØ_-~öP£µ iÉÖ„[Ú†~w«¹J?èL]œµœŽýh¼­álIŠ.á¿·´þÞéû‰ ïÌdG*Æ#o?Ýôô9˃¥Þ™ˆqd7oH¥Ñæ ™7×xÚúÛ=§¹oÒɲCëá¨ÅG‹T5Ìj§µO L™@\§‚¦Ä¯¸Ð)gŠs"©òØgÄJY¯"N(3έ:o}˜Z0ž$ÙhÐ+*Ú rãËgxß$ù9_ßÃóP•NœùÆEr«…Ý-+ÍWŸßÿüóE§:ûºÅ”óÉô’>˺eµXøNþêû7@(n:W°—ÁódÆ™‘ï &~ ]`år#M)°`ÛŒ5XSªÙJZÂ)¯]1Ö0ÉéjµtN4§KõÒ9×bW¼¼\N˜âe~ /óظNÎŒ_Ü=ªyæ—‘Þvìøuyxá&Ým¡1pššgÖÖëì3á}£nÂtRÇn¼VC!ûT`mÏ-°Gš€ïË]þ5pzÕ5îÕܺ^ó­ T͈ð?‰¼†åÒÞ°d+äËÌw2܆÷fjŒuÓÉê4š.ÝlC}y«a¯Î`#3®×ì®V³›”ÜÛÔŽv´›ÜN{ißtº»ÚÁ#IzW§ÕÐíš\Ñl×^å­à=6‘’j;ÛÖiU§‘ëHÛ¹l¡á´ÖCw䄟5ëy×1ý Ç«1]·v;-¤ ÒÅïÏ"XƤáˆòTJ‘*'™¡Þ[…-FTiB(P Ãxd-gD­²ˆSv#‹Ð”ë•ähB‡¡ª,B†í'ÛYDÈæ¾Š&q?aq3Œ=•CxÈ›þ}2K¼ôÍÿWr$^ò)U[Ôº¨ÃCn§ök·=D„ ¾')w³ØÌM„¤>bkâ}¾ß§Ý>Û§¦OOšŸìÜœ£Á3¸õÞ½7Ö^7vŒ\p±§ô5ìí½”ã‰³ùKÓçU{½ýòåÍßÞ_ã}ŸšOúË—ëF»¸a€+Ýì jzmµÐ­^ö·‡åCå“ð–]ûXþ±ŠÙíæiÊ™Ó*C‚fš0l2l$ÖÚÂÇ™O‘Æ €Y=4_)Ë•,ÿ—+Åå@º ÚOÊu8(Ü’ò©j]nX­mSš±+á÷Úì’u†ÓcœÛ J ARš ò¡§_T_¡4;\µ‰ ¢W‘8U›KºbD Z±PAùRä7£¬~é¹ÅY_B•Í#À—áø –KÍtÔ4.1c‡¡ñåæžßÎàõÞ4 `–Zåæþ„ƵÎ%v­Ö7¦Åzw§–Çg§À~_fµÇ1½’ØZf”pD#ʵaÎPO VÔKÈÅu+ÅuS÷ß\\ãâz‡â,wþÝ,¬›zŸ¼¨n‹/°Ä|ÿzfQTGQ}ž¢šÍBÆ—8ÕZs„0w,õL³…#…~í¥c*“º^Ò½h!{±2͈l⡇1"+q>Œp"—,dD´#Û’…ì^¦h»#äs•kmSÖÂÐw2¾–{ØÞÖ»ýÍv‡Øë^ ic³Ü äŽìa'¼{‹2‡ Ø)c%6ÒfŽx›"Ÿa•*"¢’ït•|{Çm¶Éµ›S-³ÉêD䊖ïHngµ4á8÷â1óyèážË½E ¡ÈQ”á”ê4Cðâ°ÒÊjšzÎ$4ªâÎ^רE3€h+uõ³+e¹Æ;ó²‹ }TRȵÅ/†a¦¬Š{ÿô¨œ‹Ê¹˜ïzKÏÓñˆo–A5úÄŸ‘Oü *ߎ¦vK3nµó”ú45Ü nsˆSé¥7À#2,òLGµÛéªÝ›Ü%î[·®€;gÕ[»¬ïÑ>ú×E½ÞáÉéžK§ç…M9&ÊgV+“1­4u¡Ìm&ˆ6cžÓÑóÓ½(•STàÕ,×Z`RuÂÀÿvãRé¶&Kš+ÜN8K][na3]GÍO‹4?kYé^úç(Ab&»˜É.f²ÛÐð¤2Ù/Ž6£©$ §!L{Ÿ:L5ÈjNá hŽ2¦¤¬›ã:ú¼T¿€æ±¸Z£e’Ô…²ê­GSºN!ž½ Ã=)Ÿ€¶à2Œè~ %†çD€à1<'†çÄðœžs"—”lÏy.FYjR¯¥•8K¥öÎéÔq¢°Á+Î wÌÛznÅÑU ¥®@^¹V#t Áæ²W®<²¤s†óÚˆÜ×NñÀ¦žt€ÎÖ7xñ¨ùåò—7ô˜ò4#„"ÏÑK™3ÖzëR$NS*•$Ú[ÕqQ·.“·Õ”P(ô¨ªã¸ÖKî{T QÓc`ùƒ9ß`¶ˆd*™=@”=µzîH@á9”tg[@"*Ú¢¢-*ÚÎSѶrŸ·ZݶÉÅdö3¤¿ÁN ø‡fÛŒP«´È|êÁ„2#²L£L°4ú÷¶«³F¦sŒ4×rÙÁÆØR° &\¡pŽéºwo‰7ÏÀµwx¾ ¢wàn†–o¬Úè¤î%ȈcĦ<.Êk…öæû¸;y´Œe` ™CyÚÌ¢­ULQÇ':£È"éS+²¹Œı“ÌÔº²ß—*ŸçÖˆ99 6Xœ´iE»|ص ×ÍB»2×¹,Ì! ;Hß{çÝŽÒ’˜á®‡ü ÷¿™$å©÷<|ƒOr3òI~ùôáóÖËX¢™@ÕËXpM‰b›/cJ_.Æ)ˆ¾]¹ŠaT)wø1•q«õ²8l—á˜5~üðËÇÉ7 - œ€`m QÃ@é kšªQf‹Y]ÀGФ$÷Ï@¼º»ë:‹-wË#7sØøô2'cû¼xUÅL7ÓxÎëÔŒ}à—ÅæäSÌ÷ªpØ:ªs˜ÇÑÄ.ÂÈ:aHf¬&È2­ ÃÔä©Ô ¥ð¥°«Ç”@Œ$Ÿáz릺ÁÛÿévwãÜÐxÖlèä˯JÑÚéÃ_ ‚CýâÇ‹àZÿŸÏ¿~x•Lü÷É«üVí FþÇÂ{ gOp¹$È>øÓ=t¼õ~r1Y~ž··¦ß÷€]½Ÿ$0½p”\¦ {×ë&?̶…ü˜CŠ0¡…'ÁFÞ/Ü Õ«‹0›/ÍävFí®’bà»Qg2ñý`‰vT$o_A×Üc€öù;ø,c¾fã øi8;i×—þØŸÄvpÒïÃz½ùíÓûäíëÿøôþK>3oÆ÷‰ï¥Þ¹ÀÄ.Þt+Non“þ ðKà’£t…­éÜôás£×ÐòÕèÛ`®Jz¾{•”Ç6{ß(“Â$„wüŸ™ñdfCŒò74€7¯l €iÆmƒkHØ”wÅføI2Èغ@aa³ißà^úÎCGø÷xÐ ð+|^‹¦ã‹p©7˜jy,ÂÀu;}¬YÁ´·opëoÞ&LK>hÙúá•À×ágL?ŒwQŒ·…pÿ[î»ÉÿúN·NY ÝßÊ?üu䀼'åÝÑPbÝÁ?›Ñ#˜³åBT1«+ A½´²k€¤!¢;!Ëל–ÉžYcŸºI~tóaFAŸŠêÁ£š óÐô((°×%óçþ2ƒ!äJ\¹ øDÏñ¶´ö±Õ±W¸nèSæÓä+¹±£ûañÔXÅjë~yûÏÿûøù×2­Ý o.áñ\o^Oh— _]Í•lp‡´Ã̳;9G§GÖ÷qŒO‰ N¥^ƒxÂÒb¬œqÇe&¹åZ×KÁ‰G$‘xœ&ñxP­L6¬¥R+㤖ŠYp½Ë[¾J<V(ŸýhÚX ý³e/PUƒ\$sѰϑ4Óçëê¶n¡ýó5Êî\Þ{v«àõú,ÁögÌÔ`Uçxþ‰¿Ë6åj‰Ù ~ö“Cà{–O(U”KC¥5NkšbN1–R -‘vʱ¬^ö“ß#|ðý4á»`l¾/%C^·P!W²Û0¢èR8à»üófÙmÖ iÓä6'Ý¡éÍMK`»|ØMÑdð‚LOjí ÑÎ0øÔì ~Wq„ƒ˜w™bÀN¨ÕR¦ 1ehƼO¥tTf>ú8E®¹Ê¹q…7s (w9ôŸhÅ—L DkBj‡þ/îÃ%<~2UNµ^­ÑÖ²)P?š"ƒx$ÁþÖ¦'ö#xt,„âT!Æ,uXûTyÉ©×HPo˜È!2•€ëc˜àñ@_Y[Ê ª‰XQsfY!,tí2è«Çõ@¨õ"‚[ÂÐ lusO:Ppû¼x4Öî@Á|sZ(¸¹ÀñsI`ÉM%æ%‚i¬5Ç©)2:ÕÔ8•áSâ}”ÀÇ‘À©V%0"z£¦ éJ‚ _Ñs`ÆÝªÿ  ŽÒ÷¿oÍè›oK°æZ®§^i.%y¹ÀWæÞÌZ;'Æu+ÏÉp,fÜzáß6IL F<ÃÒ-R¬4Î<ÏAY† Sp=–-fÑb-f§h1 PR6’˜iV”9€6h5çÕyÈO y6¶²VE)‘Ü'>kdNtúÛÐéàÄGˆ:¨ÒøóÔ /ýû¼ã^ØÙ…,5Úús ZzµÂoð äч-õZ l¤Ou¦J9æ’0Í©îÿÙ»¶å¸mlûî¯P—ñTM·q!@àåÔq%ãL”¤¬L25/)eÚ}3ÙmKþúl‰Ý"›I©Ù*åÄ‘66—µö%òbéÓAgü8ãÇ?ÏÖø±mâ>gxÏ_Da5¸Iý{žAöñ¨þZ>].¨÷m“–kgÄ;f¿C@FÍ$ï’ÝO‰àGæ°t¼iµyD „ÌbõP?òbzØ €`‘Ä E¸kÒ'rT:°½cŒ·[žrÊt“Jm Î(%-®J;±«/Im#XŸÅ阔 áÕ¼öî†ÔݺÒÞ6ñO’ÁЃE”Æ=rÀE  !À|/òÊ¢fgÝ üœÖ؃̃{öx;ö›Ï¨MVë‡üK¬V2¬×꘧Ý˱»cÞóî˜Ôc^ýr9Ñ»ëLNäÍ:YŸ(>…åë¡ÕB¡%…ïG ðcʹÇ0 ¤ú•A•ûêè—f‡ý…ÌY12uÚÜ1ëæç¹<»T/Goíe˜3åbq¦OÒí =/ßdäôsqFkB}™æìùzùêî,/[»è?Îþ½Hnζ/pç ïô—‹ßwT¯ÔA¤û=}õN,Ë@wC?G=BÁ¹šƒÏ5•­”>ý›|·ÏŽH®fËÛWaºÌ²ÉV]ñ *º˜žåôt9мÜ}2_ÍdÞ‹/ê$Zn²Wk~X,gËkVò¡~P»ÀY õ°6Á\_"Ü•ê¼8¿|›#©í}Gò-ÔôÕ«¦s€Õ¾L®7r¦Fsö.ßDÎjÏóŸýßM2OÄbËiçÒ¿ ÕKõíf"]梳Íj“ÕI~ŸÈµš g—b“–E;£âG{Òµ®—½úr¨u°H'‡\‡óT‹trH<€²8Àí¢,L°ÏªNBSàµñ(¥—ÐÃmb’¯ó‰Zá§ïq®ýF½·ì^ð&Hë£>›l!VþÃe*+¯nˆ¥kÄtdRt^¿ƒì—éùOÿú{ÖSh1nS„”"-—It!²õ0]jVfÛ­_õÍÞ0jReÛ¥÷"•Ãô¨A“y‡v÷‡º>5ƒ!ðúÝâ²zîóD»åþ(à…Œ¾—êLŠä"L-q7m™{ýÖÁêO“.‡íí?Xåxd?ô¥'8ñ"?Â#>¦¾¤2„Œ0$!¤>¡G=l„êºÊGS€×Šw·%¨¯»Á×€uG½z½+µ ¦Åý}‰ ÎÒÍBC²é«\ËnAÙ"o ä¶êö‘¶þý+¡¶Ùy0Kr§qv ¡Þ|8bóÝJÚ1„x5ýŠú‰GXKI»*^®!Ç„ëú^¬{™h[X{¿”+´æ°ðí‚Ffq~Ìjs]ÎØS…Îñçì°7?ÿÈêZ×Ù^¯Íb¦¿úÀ?Eí6GöKɈÒávÅ©aé#b?äIJ¼ÐGž@Ä'L‚xf5´ßò}Ï._’t¹°s3uÌó£0ÏkBuÄò¬í“Ä2AØÇ`·z4òf;壑G15+ê°·¼h¼=*jÙ'Ý“×èÿ¶Ì’›Ê™Ú!¦Ù²ÝÃ5ùôe>Y仚‘|>Å SäoE_ÿqñþ/h’ã®EõÚîÍå'Fâ/¯E4)ˆI‰‚ªl¥ sûTxÂz]Jd˜””¢®F‡ç˜ÕÕxPyܾI—ÎáQÙkâYÑp›Éffî·1™š:è`¢Ãâ‰suØÎ¤M‹µB"²hñˆµQæökw¦Ò°ã«b¨¤­QÛÐh(u MVa}C£µXÛÔlí745yjzBemZù `t:ئÔ]2ßÏÑ †éiî‘£(€†q |AæSÌx I¸ˆPˆi9óÒ™—/×¼ä€=0/9vê(&úG1Uoš›ã˜^Þuó¸Ü;énYuK;Ó…29óômLÊt¢Ö›ƒøgñ‡©ÖÜ9=DÜ“A()Ž"ɉ”€‡>b„Q⣇‚õ+jìs8^Èëår–9@_èëâµ¶áYy~ÕWE-Žü%–VÏ*V*}õªþ 8Ì>fG„@øhWˆ0È+¨s)7+†}¿ 8°>°îy>ì^;ï”ÖÓ,ˆ¥u¶]áò‹•‚½h–ïôKœ^äµwúa€}?¤êwzëVíï"ûÔ“ÜWùïu2S‡†ì«Vï)ç2Lê (0¥S6U;A[jÜ=UÓ˨þŽ™vë·‹·¿½ë Ìš´X¼Qÿ^ŒÛ‡"[-ëm\µ¸ uÈt²UØOK´ŽPZËÞ[ G+¹É¢~J®åâ¦_Üäk}(†qý͆ñIB %úu$™‰¬ÞÆ2ïFqênÖ kм/…¢/µ©-ôÌE¨±A¿QÍÅ'©'nO-Ÿ‚Í"šÕíò6Ò‡X%“(‰ãTéD¹¨Ê>hÜp¹@—2áúOhý/eý}ªM†i±ƒëõ”2Eæ_ùµßZ¥‘žŒý´({Zm[½O¤F5GR&ƽÂb< ݰø:ú–:\F=ßëMˆ{éh.Hp ”­öÀ7«Yç*h‹ýͽµÑØoþ¿ vš(3y¢Ìd«’ÌumïƒslKy§æxjåE¹O¥Òù~0ի݉ê±)yž·û L:öŒµ¾ù}Th—6Eì©qûh!‹‡íĹtlÖéÍ4ÆæôÕ`±”S»:ò9d8Ïï ²éæ³é{97x¸œ£èyɪ_ÉôKÊlzu;–³?Ód=@FüN°e~”ë_‹æëðzßYw-l|•{žcÓMZxk½+XŒú„–Õ¾3TçêUäv5:ØA<î•÷Ù~P¥˜íTÖ ‰‚Ém*©Ú±’‹5ºÉ¢©œMm‘)éÒ©œË4‘i{U÷Dd‹`É4¶JTb›XÉе b‡44•Õ¬ ¬Q'bµ…M¶d…qƒíš0ipÇBš—4£h”˜<ý:«r+i h2ŠUÛ›_Éh3oÓ´e(ÛÄJ ²E¬ „Úz_r„mRíÛ²|-bwäìt¹göy¦ðé±bÖ%A‚‘OH„Kì(|F¹@$Rÿ0„¤~è‚ \PÁËuP².‚ Ô9ïª ìˆï1\Í_G¡l?è´W¥Ø*\ÌúÜ“ÔÀÝ“î d½"§WùWÆâ>¬Ð– ¨h;Ÿ%JfðN6ªµ …(–Ʃީ¹0ˆ§ƒx¶a¥¢ßÕÆ•‰°‰¯ ¢¹{ËÓg-Zî-Í pˆ÷/}â7³Èó(‡;¤Ã ¿B 0Œ m)$«VÙ›‡ë±bÜ*—Ä ¬ÄJÜŠ±\2@ú¤û¡üœWŸgÅ}ÙöµÇ¥oyV*§ju¹Û²Ý– ÿ†ìƒÁHcEÏì~ªè=M~,>½Xˆ¾ÂtE„…‡^„☨z#C‡õÖ[¦*ÏÃþփܧUG0†uL›àžKWudÀGàs€Ï>øNðe·ú>ÜÃ4ò¨± !ÄG>G>e^Äý˜±È÷ô/0ÆféPÜ;e¸ç|‘C¢wS¦z ìUC8BÀ¶ÎA±]8:Ê{ýüÃïøX­µã®Î![‡lM‘íýTü=(“Çm'íD2J—‹…: Vi’Ém¢—¡ºh¤Ù¹8ŒÃN9ž"B¹t…†€A,¥ Ò‹cÄ=!B…g‰€ÆØ(Î@yÑ ¶2P0Eœ³ …@ª,ýª‰B ïc¯Å3â⌓q'ˆ2¿O¬Ä<›È»3ÚZ/–êÕÍ&‘:­Âõ2½5‚ãÂ÷ðo8 9TàöÈÐ펪Á­ÊC:-:ùK>_¦ßo§ÀôçHÔ%·,øg¨õ™ô»qÏM?g{bðÈîìó,Ói>{%V·ç/FDÀ8ÞÄ8sxkFðû-Ù¥5YÇÃ‡è¸øŽö5~üøŽã¡Ø†’³IôÊsáÈùñ>öë±BL¸‡¢@È8šé ¨ðÃûŠP€ãˆ BBbFóüt•¥`3²ÍjµL×Xžºz•šÁØQ¿-`™“*³Ò`õ’Äê › k»’–‡ƒBöSE aœ´›)q¬¦Z5Qâ„‘–œqwa!åêq!£ > óñNUBÛ{Ù»rŠåâ¬9};le ‘Yœ÷û•ÈÛÎWgI´<áÅXwó󬎘è:ÛëµYÌôY/dï¥Äþ˜œj̤QôÑ’·IOR@<ÄAÆ8bœz ”Š)÷eÌ|†04ËÜü¶@Žï Œxv±ø’¤Ë…>wÝ ä‘o Ä.„ê²±=ð€<˜”Ùçx7T°5n«Ÿm»ò]þµQkŸÚXß}Í'ÆÁíZÆ7Åõôü6ûlW´FaÌ mQ€qK•cÏ`¦ƒ—©gà u²R«àZ}ÿþß´âæjŸßú°>{·ÙF}ÖÕl›4É›u*ì’Á iL6éÒ‡ÁLÙ»ÅF¡ A4}•Á0zºdâ{ÖVðsò•,·¸ã噦1ñ!IÎ|Ÿ ŠyÈYGqäQÏW– '”9‡ÉÓ7WœÃäÓ™ñÙ½2Ð7R°š[€ Ÿ@cæ²U8Ûf¶ Ó&k÷KƒŠg×ô×ü»äxg¡Ø6 «Ñ-€ è:ñTÏ×-ótü_Ê­ÆÓœ‘Á‘œi¸x1•q„xPRæcÁˆ,±0F¡<0s¦ÉûnÙ²ß^ý¦±ï?ÎÞËùr­!ºÉÊàl;-u0‚4¾œ3š k_#χ¾·{‘ïC¯z!ÂÇ;%:©Å9ÂfPŸ î6Cþ%M‹ÑäÂY¹DMäÓr}û~ÿS­†a¼È4ÙF0 •Š¿¼jŸnw¼¡°˜ÞîU»q"fÛíü‡|M«ÕšM¯–„Iõ|س¨Ð ôL/nÖjÛkˆîѽ£ ÒCíáÂEÝ´mS´è´x³Q¢¬€^®‰¯çaªQ«[©i›mjÃ(-ºò5‹ê3,4Üdu9%-5mïœFDÏ8Ve`'ÍwçW:Pä|© [ÿí¿ÉêçZƒL™g:E͵" ­÷уUÈvn:^L-ªÁ+ >~ÊÔçL#^¯Ð…Y+-hSFë© ÙÃÑ•%3%éÿüï¹.x“7%²Üõe?Ûz»ß‰©Oùæ{‹Ílý§€ÿ”³Õr!ÕŽºL§"[Ý´)@C(P/ijÖß U+.«i²HÚdËWð¦øÏôf>kh±õýÏ}‹Ìá÷zçZBò1¹ DP‹ŒÞGŽY(\ØŽ—9 †Ž=0Å€ºÐc‘ ©`òbáA›Um»ÐƒÙ²šŽÚ?6µ¿û9_€¯·MÝìèÑÝ""ˆ0Fw ÆùÈ&-Z±¸Ähc!í àhKØ‘ö:¥Dáž|ú•»æâô]1ë‡ܦÊí­‚K±Póo> {ÕA:(³L\hVRhß½ÒèSÛ‚®>T[µÚØZz©•VB{ë°2 ·¹ Ž’}¾”lN%6Õ´ïÀJ6©:iJrÄ[_Õí:m8Ì1NV(Ì4çVõp^…Ïšzp^…ÃR»R§>äºÉŽW!Èóv¼ }à–ˆ¤*Q±ëXèXŠ#»BçZè\ ka드k¡s-t®…εÐñXεй:×BçZh Ë¹:×ÂZ-c#zk¡s-t®…Û{€jæÉc¥ƒHH.Y$ˆÀ€œÑ3Ó ô@Hz¦ûþ;äØþÑfS_Ç1úÍŒ¾mÂd =LöK’p̪I0à´Åí0Ï/VÝ#\n±1ùØ£ëëwß]¯Zu ±ØuNZ숟#~†ç†±Ô‡0r×u/—|E“]¯ß†ÚÍ> ’ÙWmÚlïT.—ßÔ>VÀ EÉwÃ2ƒüCw°Më³stîVÁ&§h˜ ½Ñ¸ð wm;î»Ö:¨¹»Ï:-£»ûl@„ W”G¨Ë™¯ÐMú ¦¾ãG(¦¡‡€ LR"I(=É<*|i–åÚÕä-]ለB¨MNÈEï0 ô`õžIýˆ1H[˜ˆj‰ÎÔ•°á1Ê{”çìkå£J>}™¢(*˜‰h(Ônm"¨Ž¾‰êƒ¸1Ó»Òæ€‰à·DmŽA‹¤’Ðs*·1´ãŽL§Y[¯UýB'‹üÄ0’Ï·lÙŠuª¢¯ÿ¸xÿü»M‹êÿ´5ÌÁÙy(2 §ï‹oÐð™é´€¢ç›l½œ_ŠTÁ™:û÷°]¡E÷ÞAöKï.5(±ì†²D²þÉWi²é…û:} ¥ãÿ]µr´¿Ï6”d1;2Q£F‹F9gsN:{DT”èd©I•-­¥‰>…öÒ»øé«Ûy°œý™& " ÔUËGØáG¹þ5GÇý÷Ñv}§M^Ž5 åWeºl‰ÄÞýjQvÊ4k­ã ÂG£jÏ•‘1P×já)y><í`ë¯]ßi3¶÷z†›`ZÙÏÉâs¿I¦Œæõüºþ|äºOFJ>|Z§›xk®% Õù:¿® ÓµƒM‡4YÀ¥knÖIϰãëyXš¿—þ –ßÒårÝWËhnÚµ˜§Ëu*ë÷Vã“õþ@Y½'„i{û ùþŽOpù½ Ç6”δø,* ì®ðOÙ !Kh [7 nŸE“â‚+[N‘ìë~÷Ýù_hŠ X±P7¡¦rwª[y³‡ML8ºý&SÔ¥‘ù¸ïuxšzö:t wéîö¤#êÐÄ7hÍŒæý ÕÌÜoc25¯ÕŸ‰>Íøéëù2Ṳ́M‹õ‡TŠÈ¢ÅÜpíÎí×îÜ~í®ÂTv|U µƒ´Õ j ¥®¡É*¬oh´k›š­ý†¦&OM׺UÛÁ¦¿™È ÁK¤OáÇ¢‘É, ׇÕ9Kn&Xd¤|Ø0…¸õ•ôkO²Õr]×XÙ•&pTDQ²Èj<|Y5oÅÒëçE^ŽÞß·»9Ýází£¤PúáWªO…Hua“™œ³ÌÝÖAÝ2xø¼æ”µIê“G(«ÈB5H陵˜‹ðC²†‰P§ÊÚÔÉ3²é\¬Úä9”ìM›TIÏ´ˆ•tG›”²v[“P´J4}ð½<Òj¯'¥÷M«|Ar´¥¾È þ6¡öd‹#ç¶Î#“³[làX…!"‚!–ÅŒ¡PŒªŸ€ÿ?{W×ä¶lŸ3¿Bu÷áf«<2>I êÖ­J&NÖÙ8I9Þ;¥@´eë+¤ÆžÉ¯_”4Ô )"G¢f°ÙÄZàÐçôéîHBËŽu-JaQP´°…ÙáfPì0ö“RDà®è„«•ª G8 +[EÐAw×ïÄË{sÜË[ØO®¬èhŸêÕt¢zèìälÖ#O­òîkªÚö:BÎÛÑrÞî^Åwµ•ƒ}±ë­³Žb˜Ée¯Î¦ZæpšKB Ì¯µ]M–KùØÈ„Å% ,eYJ°bâ$‚j€ÂÓÓTbˆ#2ùY;ë«Ñ; E <ø>×d°‚+$)§22wÄbZc(Û²^´öô´‡¯Vv¢ulÆ£Ñk‹R¦ÓÛ‹å"7~z–/f£ÁÖa—×yn¼}}‹”>a_lÁ £# 9ô¨L;)«3ñQÿÐzh _ô€‘]ž9ŸS»¾Ñf}«ÅbZ:øª… ÖX¸”è ŸÙ|¥_³é­öWGW³øECŒ¢DF†a¨(ý×¹Jmv¾E+ñIDúYÌWæµÓ‹1`‰q6w૯F™+íÞ/ìBÔ0æ.¤ÕˆÄj•O’k½^û« }©æò²©'únÎÜ4)–Â&OOÌMµã"É 3º±¯ÑOyû+?Úïì+éñ}HÓx¤!Ìà— ¤Á2‚+ƒ˜2²ÒèãåÝÞRñÉõ_<'(³Ôoô­˜Aм ‡ƒ™òYÊÅֵܰ‡§sõkj,›vžv¶tÆf }Ì4b>†iî *?žscCõÜÉbx€fHÂÝá ƒ¾6¸GuïÆIvv÷–˜ÊÎØöm«~3ª4B!Y ¸ 1”r‰àŒCÁh¡@7ÍXCÉð'Y %ÃÛPòA!‘F!`·¬$†$&;%à ¤¡bx€!'Œ©Äœã0$” v(þ‰h³‡OÕ¥ºY墶nøQ´2+¬=7"U3}^E8,$R1%$•ÔÍ¡{e.eT^ר,J…Á—kz0ÁëOƒ9Àx·<8ÂǦ½ûÖ‘C8„¢ýžÜBfg‹™!øsÒtñçL¥œ«ÿÙOÉzC¾%€ÞLÒW¢¯*@ÍÆ|—õ‹‰œõ³¨&S¾Kz+j)®VÔ`ÉC´³9¯¾åÎß«HѰáPÏO X€¾È…œÖ*çÀîÆ2@ÄrÆ“ˆ+˜€V dÁ"S qΟ?$ÂùüîýÆAûU&˜DŒïŠxxP #Ø ¶*“ÊFHÞA€È8èÐ1¨Ê´±¶'鼇a_ñ|ùž«ßÄógNKzШ?Y(ÐÔãu iÂS’AÉ8¥q¤AxЏ ¢¨XÄ„Úqœ·ÿÜûrP{ýDä DìóO ÀœÄ š ‹³“ÏI Þýñ½{°mÇ#r¸wß‹«Úq4 í8f¡G÷ÐΘõÐŽã¾ÑÐŽ#´ãí8îÛí8ü–Úqœo‰žz^„v¡Çð³úB;+¡G=‡ÚqøZ í8;^{„ÐbhÇqŠvN•ÒËQ¡GhÁZpøÌ -8Z¦„O´GÃT—ºvjÚ~„¶¡íÇ£aïbÔîhhûÚ~„¶ ÞNÛ#÷9‘d1â ’iœÅ\Æ*Aˆ˜ ¨L@Â,MABv’,Z±aUþgêÍA®X/WÔF7/“Þ!VB¶¸® Úò·eù[{Gs¥ÒRœ¸¹Â‡F/.êŸ@,nu®{‹f1Ã;ŠE8‹@\,j«œ×Ò·öÁâ Ò‘ô¿¡ªâÿêyܬmÝÃ|aÞ°üR,V²·»yrñÙeÞ=ýÊ·æ–_ÍßkO¦cäÿžÍï÷VÍ=Øì;Q4ÔÏ=Øä¿Vë¢à}¨]”lˆLEc6¶¼—©ñ›´^©å\vø×Wßüúºsp¨ÉŠÇý#vRh\Z;vej‡KÙÍJºJQ^«÷¸c䦨 …úD1Õü¦îµõ0aN?™uŒµi¿¨}6 ™LEQ¯„q_Fy¼v¯ }®{ØÑÑ8#¼â“2/nG+Ÿ’ëyZ[YÝç‚,Á³œ\¦“,ëÉ”©Õƒ©âƒaèåbÙƒ- Ôº¿Ðæã}ªÕ zìàæ/JcŽÙç‰úÒíZæ‘y»YÉU¡·­Î'R£#©PMJ•@ý2<žŽi‡"iÇûzcÝßnŠ *Î5ÅÜDèÐúA”ð\• ù‘$%A,ÄA,ñ”vøàòì4‹GÌ8 ꈠŽèQa=¾ÇHE=}¶ Gb_È/«µRÂÎ3÷j7ojüº$¡úÊ–ù}2O_Šñ÷‹|ÖKóãA¥ò ' ¢*þtð‚òãöámB 1EmzKÄ;HS ÓÞ2lM¥;Œº)Ò6iŠ!Ã[ƬÙî–Q–ŠvÓv«îxä6ùJI·Ž*™à¶akª×qXÛEìp¾®c ©ë3Öi™ÞÂ.7\“ó„Í7á2aK"» ^³ÄCӉ˯¿ÏÅòƒÃ¸’Tvèr˶;¿Téõ¬ÍÒ†`n¶f[†•ܮӠ¶Õ¯)Þ¶Qí?·!i[†•,ì‰ÅaÍ-nŽ Ã2‘"R˜ãˆ°Xˆ€”Å A’,£‰LR’xt¸Yߢ  ;u»ÝÇ$bÛAÝ[£ë¿…»E«&”W+Ú1ýßm½l¶ú°=l‚@ì„Ml(` ÄìŠfŦ툗¾éßE]…܃kÕZóHÜ?Êu5îv߈¹~ÍÛØ×Z÷Z<`ª(Äûk’ì3xHUËžé}Aj»ýÕ&i±êÃ!XPìÎ#ì7æQý=4z&ðÖÈöP)Þá1©®ÎÔÆÃžšÜ“úèÔ¨ùc÷DÓz/¬9鲎^*Ï'&ªŠK%£[®J1U” šò$†*‘,•Ž#Dc @0fIìÓ-7p K83.Á·3.Œ)Dd—K@T[©r 8Fžîåîúↆ¸jˆK!`;'Pà—¸„À%.!p K\Bà—0D.¡©ËžvŠ›HȈRˆ3@ ¤ kô‚2æ‹@FIF)á¡ËÞy“ C(ÕqÔ‹C`!Æw iìIªðæ +9uL‚þÂk»ì­áp`Y„û8¿¥/vÌèn)>g'Ý={ö/#‘t˜L }&ìóYLßçF¥ébðF¿è—7^êü×—L§Z³w®NÕ­Vr•žÁ$IÓ˜ÊDÒ”áXá,Å,ÊdÊ“@ÁQ8GÃ9ú$ÏQïnµ17EÞ*‡hUчyËÁYiO[~÷AÐ7Æ1{xк“ð›Çyd&.¹]©ìæÒ7—³ÛâO¿Z5'ɬ´–&¨«­ÞhBkȬª7C—™¾µÉ$Oû³¸È…œöw©¦¾ôê½~þÝŸéMmlâùŽî·w›ˆ¢'{Þ•jz¤Ä›L},O¦^l™Ã`ªú\ÝüZ{A½Xú¢’~ì˜Ì¯|ÖùòžN\à‘øÉ£Ã”õ—p*ÝDŒH(§L–Dˆ(ÀQPÆ¡I’ÁØM7ôãoöZJ¼¸^.ùʺͥçâŠTêJ7/|Çü¦–³Óµ4ÊK„4¾°V´¹øRŒnׯ‘_ϰô¸¹ûðÁÖ†úÍ%ÓIÛô)·AŒíeˆ!ÄY•'CŒPæ,¸Y?Aq3gŸÅ>ÜÙ¯È^ÖgBšf‹bšÙÇnEdr|‚®à ë †-„ºàÅÆï…¤?'DWx‡zâ?"òØ>*T¿±^õj®÷âe>)Ô¦Äg_Kt²@Ãé ë{1´Ék –IšpÊF9Â(’P)¤HdLq b¨ÿ&˜ `‚çŒ Ž¼48„B²+‰@DI56 °Üõ^ÜÝ,‚&g °$øyù^?ÌÎ'k£_wÿ@EGpùŸµËoPnÝÁÆÀ°HpíGãÚQÉÉê×@A,y"e@;.* #œáˆ¥€£D²„¸wJßú£¥s¢]æo~ûÕ8²/FoÕl±2þ¶ñxWÉh9ƒ«bWÿà'P@2#pO§ÃQ!Õ&ì(Žn ÜétôÞ4:CpþǸƒóod©EuÓ¿nrªÆçëïÛÙãú‡þúñÝ,ùöïÑ›R/.×:×k¼Ùñúr¿ì¾X½OÄt³o¿hý­ãߢûcêøc¨}–‡•ŠèéµÐvƯnVzÓÛÓ+‚ÑfÇß)ÓÄ¡Wë}Ç ZlzÜÙt¢a@'Uß׳²Õm­èj¤Ð¯mqvìRÿ¥H;vã¾)êz#{h}“ÄÃú¤g}ãÙuI´r„ßl:WÞ@ —lì–|‚„ÕÆPÓ©ú¤*mD ´{|Bdéú= ‹Èî/Z¶fFÓIþ?ÿÿR­Êê˵gÙP»l;L?Ê—ß©L\OW¿kðjºüAÍ•ÞQùXË›6¨ú&ÝÖ›äú‹“b9žÌ'mc×·àeùã›Y[:ëзU{Û»Îm+»µKÞ2ÌøÜCÚ:ð=hÜyô€M|>ÐHe¢‰Ly–(ÁBÌÈ¥Ê0 )t üü/}-£wª°|ñ÷¹¾&ý»RüåtÃëÌM¹\­ eC–ÁÓéhü³Zm3P‹ñhôÚ²þÓéí…I€U©ž³˜~4_X\{q¹aÏõ-R¢P/¶d?£#KáëQÙâ:_}¸˜‰ú‡ÖCËp€0²Ë3ª˜Ô®o´YŸé³Yjc6¹@–Ò7a~È ¯ŸÙ|¥wÏéíh2]ýÍÒ飢(ûMÍ ý×¹J­×bÙû‹•ø¤F"ý,æ+óæéÅî´ŒlîÀW_2%V×zo~a¢n„1w!¯‹•¾bµÊ'ɵ^¯ýÕ…¾TsyÙÔ0ô=Ыæ¦éÝA$퇛$Ü‘}I®/±ÝØ‹_-Ö·¿òã!°?CàAe»½ØÈA% €d¤š!€AÜš¬[Ͱ;LÈ J,@?bÞAT>M}”—¦Ö1D®~ª556—؇í.݇±ÙBŸ5 †˜!Ó_·Ó‚¨Lȵ§K® É È·e è´Á=:‚ÞÅ#;»{ vÙ;ÔòÙÇA1i’Fi¥H€!"–¢ŒS%ˆÈ¦bá†bBåÏÁj•Î(ÕàŒ˜ûá ΈÀÒ ÖÈb'ó€†å-}½«hãžÇÀÆ)Á†“9lô"±Ÿ|ú<ëG«_FL\†J¡·l—ú¼4ìǛݥi!ã2ð¯‰Þ!“–‘z„y©l_Ãþª|\,¾þû×I&«¿·O6wörnÏ¿‰vW)cpМ¿zûVoß_»½ófˆïìô÷‚c?Mæv{É4º^ÍÞןܬÉÉȇO«üºÁ½u·R9Àì}(ÜÏmÚgÉÃ]z/dC ÍCäþ~&ëOsçûÒÝÀâ¯|±Xuµ2¬(Ç^+î©j•«ú½ÕùÆPQŸã:ß?fÚ=V{Äø¤ãè Ÿ¦¥Üî g(¶w)­q\·hï4½´±Ë]FÄVÈ™.«›ûÃO¯¿½ú±;u&ÍÌȃ¤[OØüÓƒçú/s;sŒ:Ìíò»ä็όÝg¦S¿·ènÆAÔ4ͼ4çˆ'Óû~¶H¯§ê ©«¹é!Sg¾ïú¬Ã»¾”¹ò]಼¶NÓ[l¯¬Á‚ǧ–¯ÌdèqÝyMèR?ºTÃü±9T§¹Úï|PÓÉÍe"æÅ¥.Œ!·gÝfg—År±ª›¬!‘‹'%Òt2/j <¼Y5wÅZuO y–À»øèƒ;Z—²R¾–FŽ£Ìý·ÔìÅ©^ÂuÑöÕØƒâZý5™N¨û þ^sîL­b©>ËF;ô£QÃè{ù83!?LæÊ1#4C%£ú/Æ3±lï”ñ²&ÚF­™…–ak¤Þ6JµÖlÖM|wˆMã¸\ËLZÇ—ø¼-GÈbÕ¶AíWPÌO¬šÛé£x¢²¾ %³„ÀL¦©>¬Ó$)aJRE$Ž£TH¤2æ¤{e®dT^Ö¨l hé œ;±r®éÁQÝvP])ßûE¼ö–òÅAÄv$uS› ­¢áÚ"¨ÛóÝÙ B)ßAˆê¤¸ƒ¨®T®\ýøÏ~$0õ†|%9o&é+Ñ—*§Ù˜ï²~1™Šý,ªÉ”ï’ÞŠÚ¨Õ+j°äQ‰ùð6Ì!E©Oæù!€!‰ø†ÿz\Êç4}>ʾö§Ë¥ÉT–¥PD  Fa…b2Î%ä„C¡bÂ1fní©C›A£‚Ðæãx­ÿ(Ä|7݆ƄUûI¡OªMe»7öEèìw·¿ Þ‚Î~+ìU¬õÔ—ÐÙ¬o›’òë8W×x{ÁÇ>}WÂ'RñÞ¸ !{ÐÂ0ê$·+•Ý”{×ìöt½þR¥â”«Èc¨¤’Q E¤IB‰’ˆE*¦ðŒAÄÈ'@À8bp·¸W !¨¶øÀ1bQKq/x°Q„àÀ0üÆiÜÁÿÿV?×ïÿÓt܃q<ŽZµ?ΆP‹¡/Yp¤ƒ#íLVŸ< Ú³ ý°Ò:—¦8L8³·mŠÿ²žE¹ø¶êë‡5‡é¯¤{–£Þå$™•çxš Öi‹”1€Xñ,ÉcL¦‘€Bh*á «˜K„p×òß}‹ª,ªÔO'€Ê}‘¥ø~ù½‘¥Hw@%DœcV•Þ*×¥ê>‚Jƒ•à òõ·oÊèŠþô.yS}3ÎøÖ=Ò§¿ß›;çlèéxt[NãD!$!E+ÂXCˆ>©dªXÀ˜ÇÅ$" !‚§ìÌ…Akˆà¾7·7D ‡cvý9 f°% Ç 9„ î”!<0OE,êÐýãrV\ªmK>Ò{¾Ð÷nz™êSJ®ù­Qî1øNºÓŸ¨/‰Ò»Úƾ‡*“ê­º°Þ…Sûlz,ògû¾Œ¿Û¼ãŸÒÚˆ»Z}*¤ôæ:ûnÇébø´íOÃTü9-L©Se3ÿÈb€Äg‰=:Ù-yˆõX‡Qì¿héJ]>—0Öú=ڟ΋Ý߸Rb}.œ¸>D©a¿5ÐûD,@’b ZDš$*4M$fÀðûfa+!ׯƒ\úÅŸSnJß l³úä2U¶[Ù¹ÂÞ€VÑjßMÈ6¸þ'výƒg_ê\ãƦªzÕ±Õš™<ÚïÐW‹æo¾þPÜd(.}sp¸K¿} ÿeïê¶Û¶±õõä)¸Ö\œv5R@üó®­›¶™éßj3çä\e h«¦D I%Î<Ï<Ãyy±’LÙ’ P²D)¸icØ@ø¾½?l…î—s‹ÁÞùUÎ"ßs†Tm<)’ÃYÌ !³ÃuÕ\ò[]ë÷¿ÿ;Ý‹)=mÏ]n»ÓžYJb©ÇEd»LýÙlO±Õÿš´]g …b飊c§O$ú¢©ì¥Ð•zznã*Âé³ÿJ"JÆÊ\[+Ê P… €)Qˆ ¤vŠšc´Q•çYéYÊv–¢®¾&™Ï*¡Áo`°Žž-…éyò"7WZ6ƒÌ”JN²êác£~òñðLe7Sáœ>”LRÂwÇ à›AÎ!`&ñÿš±h«šð€§Y‹™ß¯î—€ê6ùœèJ,äÍ@Ø Æ,‚ýØŠÞ”êFéÂæ +F"¯ÆeÞé~{TOælê5®ÿ‰Ykò´k†lüzv=™í¥x`óûBÿͬ±‡5ûV”·û¦Üy`ò•‘oMö=ORÇS®”œl“€1ó1§€¹™ÿœlOŽo-;ýíõ7¿½ÙÛ]¼ËŠÃøˆíãb]_ŠržoWúè©liC,çr?+I•Àb«žÊ¡;ÆÈ]™ìgäZÍî¶}¶&Ìî'ÓíZ3ë™HƒökÈ$åv±¡}3šíuQ혃ömi }Øz_¹ƒ©ì׫©¸UæÃÝÓÊm¼˜%Ù¶UÞ¥CfÏóÉ(™¤éL’zSåÞõ6¸_ڦƖfjûÐæ?šäÝn½aÞa7ÿÙ³SšsL?LÔÇý>¡yñ'4ã~V4mÖËÖÞ;ÒN3.‰¾”ܱV8ôgG3ÞŽ9!ódÏq½«áï^6zxý¤Ü¸Öó.»ðtÉW¥Iç“%²–“ÛfûêSér³‡ul¾3³ÆŽÌkç¢hŠ¿#›²ÕM¡Dâ`}j9§îS°öÚ»aê¢_ü÷ëßßÛ â\ÊÒø¼”¥º»µ¢UW¶U´™vÛ+ZM¾­Uí&ûŽª6O-j·œ•œñªŽà”æ4Ñøw•‰»å:»‹¯–Q‰U²–ñŸ¦qžýO1©¶¢âe×G¸:ó~PÕ¯ó]¢ÍÉ<ÍéÎÚŽOIkacóØéøMãÞÉs ² bLód‘)+Dò¼‚àanY‘mf•ÝRv”hä]…–ðŽbK·E©»2é(U;©;Ê,½Ð¥j±M™®¡º÷ïv\:p;K5Ú®bK¬e±®NløbmËg«KY«F¤z ­|@ÖVs¦ÂÚ¹kSxé½µ(šLlž~]ˆùE¹ÆÙkQЦó®‘Ÿ«d1í²´rüv[zv;Š5>W«B]­_º^»Ju?nå<í(ÖxGOœ¹»VžLµÅ¡JpÂeŒç1G1d&B餒&ʬ:ª­_þ¡{¼Uee$TëX¿­l«©n´Z’Qµ4”® Õg'ô ŒQU]±‡ŒƒàM­äʲO/æyaN\¤E> þf ¾¬Z‚FŤ‡H‰R½\ ¸4¿|Ô²,]*ÍEuób*þÔZm$^º@P7Ïhi“º}Áª}fYiNi¯4µ¢ÊH¿jIYaèw6«ô–} &³à꯵Æ+¸esVd%M×.TR§Eª5Z/*=‘|³Ê|wº1FEÓH¶V#ð—¿©ÕBO²—uCÔ0æ^ÈEYéqUULâ…noýÔF V¨4Sõé3ÓSaMйˆ—²‡qP¿Žq¡»Xwuç«|9ü­‡{MØ5aaˆ9ÝÌö@Èq;‡ŒðŽlß÷‚°zuñ‚°!Â`Ò}îæm^¥Ìg&+ÊVÆc=®MMa'}RÕåhlšËZ.8æ.†vqíÔC»? À§2ø¶¦áy ¼K§c Øk;²¯gcuïà-eá‰ùËÆQ½Sñ dÈRHf”G@ )‘QÓˆcIaܧÉ:ÿ³òi²€ùXòÆ(ÚÄü<Œmc~A¬1ÿÆŒôØØ?䀱=°ÿ÷Ë·ùÇ?³&=Óê[÷[f-íë}Ìz@HwÝ™OŸœé9•œ×ö`8ÔÚÐóBÈc"½G9,N—‰ÃhpB*hL Š & ` HP#ýOÈ)H<Ô»x¨ç=Ï;Q¨kÞ$n2¦n:žiDhûšIÄB„:®nYæOz´\øJƒ¢Ýˆ~«ßì÷ïvíØ@COj§‡´1Ô¥qÞ/³’‡°Ÿ5„=;ñì°”¢Ãs‡2ËëÐoväu"þËi@±ŽË!˜ëðT*b(°" p¢é¤ 1eSADÌU‚ˆÀ #žVzZùùÒJ×àFˆ(†|´ˆ% )B·˜% C¸ã®ñ Ö›„”GûÜ:-Gj}ƒ·•$'×#—½MÉ*/>Yñ*‡Â÷`î*C]ô±ý¶ú¾÷{l·Ö·a¿~ä)›ü¥þ^Æß­>ñO‰Ø–6Å­™¶V/…ìú¹:Sy°ZvoîëõŠrèöZY>åM å?³Ò8öJ=ãîˆ'Í;À,{ô'‚­çñá/¢õ Ïî9~ú[LO‡bwÜ“<:·ÜN'­Ù¨ÜϹÆa¸^Mk‡‡:Ý;šºF ¡˜Ð¦’Å<æXF‰€©‘")æ1%± ­Ü;¿êÎüqü¡]W¢H‚Ÿ&q¡ËØzv–V;f ‚RUÆ “Õv&Ë“Z‹UÚúäU}­xPÖ•ú¡e}Âl*&³Ì8/¤f„e Sÿ­q”‹¹9ÈâÓ¼jެN¤q+¯Ë›êE*¤yŒ¨j§Šš¶dN©•ËuzÃQ£mÊ›@”æÁ™fµiý‡—/ÄBמUË‚/ïÏäZ[Îã¶®O¨ƒeß×ÞæèÝo¿úã¯aøâ›ßÞŒƒo6ŸW÷¡öf™sxºÄËu#~Îÿ5É29\šßÕÉÎßÞ,ôvYIÛK=³¦;ÕÓO&k7QmCL¦KÕGótSŒ£ë㤺 4w׃9æ÷QK[’ë±+ó—æ,à-nDð¿ÅŸÿù¿ì?ÿ®½<~*þÌ3ñµ”ã›E5N'k—Ð7³ªšoÅ\Ì&35«K Um)ùv2̓·ªøÏ¿ËºT¥ëåH”_On'í’¿f" þ>ÑS­.˜ßNН—Ž„gs.}üø±)-GKï^ígj~õ¤»‰qBôÚÐv71…”ïV1D ØL©2 „-oSÈXÈ švÙîfÝ™ç MK µóÕ zYù™ q3uÖ-l³C8šà=“©k=ŸÌF«oðV–ºeeÞ±çö+^ŸÛ-º‹7fGåü“­ém„nçnxF¦w¢æÉ[®˜Z>º£RH}•ÑÅ3¶ág~Ù˜[îªênžåEgei »óÉ«bÍ.m[’ŒêÁ²+:©“¾Ø”|üøcòö{°¯âöNY¢ÅB1I$R‰0""!TF"¸Fþ {¯Yô¬!ïFSqì]Óà‡Oôüý³åïÇüµ‰Üó°š™·ù;ãâöÎLÛäZ‘å1„ûÅkƒžã „Æ‹ÿê§Õ cCà“‰ˆU–M†Aá ¥=/oÞº_|ùÅñ¤²Éì¼ aj¶P£C­.Âü\\ý‹à‡×.<Ýß{чé;|n: ½ë¢þ55iî[×¥æ&…v¥ÕÅö5Ö¤Úq†.Ùµó¼v^}Ú|Û¥^›÷¬Öëcë·èµ9³Cµ9 Ëó²èaBE¦4‰â4R*T”°„¤& ʱŠ5E˜°”"§BØåÊ™ò¡PO¥.šJ!*EpÄÈfZ¡“ˆÃ° åà]¡Ð%™Ú ΑHõ‡‹MAÁa¢¶[ñžõÖ!RÛz±R·‡ù ©§RçK¥0= ;& ëí::}ÛŒ>»¯ëhŸžúàé ƒ§Ç>S$X$8‚<„$1"‰Œ5Ÿ 8T4Œ ÃIlw®}@l߇N=ß¿h¾ï(}†Ä6C§„ÐÎàÆ#]ÜjáóŽÀéù‰Ÿû„M‡¤{6ŸÁ!‚¦Ï ÷sÖùÈègCç/I=(A³W'_l|ÙêáãÇ=G5í߯†ææúÙç&Ci¸&?ŒH RŧT¥`l.`CòÜÈ}z*t¹TÈÜxø€ Hw‡>9Åš(µ™fÚbBØÜÇÑ‚*Û˜^‘^µW­ l¯ÿx^L¨wÜó:ÏK¥ŸU|%¢ö¼Eñó |6ìÑÙÖ*­ÌçGzúÇ0‡‡<ƒhâ1¥á‡Œï9¼ü ˆ· Cfy¢!` `*#A¥ŒY§€Ä‚ÃXqý‡HItvÖ<ÑðDãr‰Œ¢èaÌ=‘ݘ`Š"¸©±ŒôÄ&íäÆa„"ö\óŒ!° H@ßãj>áŒ×Nú`‹O8ãC:>áÌÅ…Œ¯™ôšÉ#Ä ëëdNyJ’`&# cJ!KQ(QJ@F€ )¡ˆ,ÓØ%Œý&I&ñkjjƵ fJ%*©¯œYÒÄÖ­;ö÷i~º}= +ÍÍËå–ó¶¾ g}P›ç.ʆâªË¤…kso£Ô¿/Yåúw,J)E¦¼,«$c—“{b6ïb……„¶³ èß“åIV¹yr¯þ ö<¿×Ìa\œ³ò]½ºª}?W_}u~Çø(Æ}Yf륞ZVçÆÓ® ò]6¼›‰ÊÊªè ›–™Uñ5W´*}ŒÑîÆ‡#aǪ‘Jr%bAÁ–"È ”1O"Ec h*aLXBí¤Io|Æx\¼ØF„’¦#!ÝHšŽ(§i×Z^ìÇ`ÃÑ—}þHch.mŠ!õXã©Çx¬á±Æq°‚;dÐÇropÒ8’Q¥œ¤ ¦JÓL€¡ ½Ú ¼@a0Ўι’@´[ (¦È…!Òv($€tœ Ýô#Õk×ç›jHÇC)j¿|'Hw"…æ[ô:g¯7ø õC<ßócò<· üprØÅ5*ÁYL E)Ä$±ˆˆ@ NC@Œ!ÁçÆU| ÏV.™­¸Ê©!%nÒ2¶/ïä!‡ÈBL½#ƒÍÙ ªû$°šã™ÖÓñì“Øø$6žçø$6—ªx>¿Ù~ôÔê}]¶˜yH"“ãd•RP&—!U‘<*Î"† ’rrKàU&^eÒŠà.ù)1@üAV–“0$í•ú7˜ƒUk¡r§ÌÄ5GåùëLÀxz‰×˜xIp*—íéu&1¡ Š2Æ â!dRi  œ¦<‰ #ý+è}·Þwë}·ƒ‚wÒ3Àvûn9ŒÞ?ýøã››/Cnrö‰È52¿ ®Žx‡ªw¨>YÐ;TwVô^Ñg *§Í R@x‚‘¢HF9W*ÕP0ÌR!ýÈ„ç)ž§xž2ž‚ôô|œ<ÜÍSŽ¢MžQÂvn…ˆòÐæ¨ãÃÅË+MNÎRîy)rvüDÂýîÝÜøâ<ñ¾w’‡‹Êð=øû‚O“|§´Ãßþ;$š“¨7*›&ÅH´Z݉ÃAš Å9Ši @ÂŒbH0I5pŠ!§‚@dÇp–akUüWü¨{fð‡¦Óà{ _~øåן_ÛRïš¡ ¾W5þ/ƒQðý"Ë4@KÔôšõÄy~[ÆñîçŸ4x?¾ýY£¥‰ú¨Šà‹ª[ó3ü²þÓÊ c Ò…^5j¦QV…ÆF/5%‘EÞi®¹†)¯qx^#øL™Âõïôv¢!SôQ“cïeƒìgJ›1­©ÔuC“žÂóù¦߉m««5#‘7c1ýú&Ÿê•F­á÷Ï“[¡²àGƒL5ÕÈšâÓ‰¼U_ËÄwbáüuW9×)”‰~º¶NT·zÑ®c·¯÷ŽÉ{ÞŤÈ]}¯ýv€^ÞúU^/CÝÍ…³×>ÍgU³09×,”2„Àõ{»–ò½óTmUúáêê½^Ž\êêþ5‹vydr;º C]Ñyêªïç“»x‘öªmœ ý*Nâžõ*·H©4Õð2ë×Î<6ªƒ^U›øK¿ª½ßçÔõŸ•óío‘6‘% Àò> ~]±^ØzÕ–…r®“I×ÎeIéZev:‡CFÖÞÂyá-«D~õ•ë‡Õ®uõîÝ7ß¾y:Ýjܪ_wôÝ»÷N{oí¯¬wBè²±ÝÉxÔÀ ‘Aü®/è¾zŸšwúÿ=ê¹¾QãöuÝð‡  ÚWÕ›æ«RÞ¨©(WÎŒñòçŽ{­ÖÉSÈë ÿ:þïéU!O’Ä ðXaÀT<¥Š`A•¢‘0±`ªÈÇ}ü÷è®ÑGñ_¶_óQü×dÛ/þ[§Ø>ã,ŽžÑ[q3„[”m¤¡vñŠú˜¯ùž¥Gò³ˆùê¥á¹¡ %M#šÆJY¤@ŒaLÂò0ŒxˆCÌR²'´ñ_jžÕ„0Þ¼÷“`LÃö5\›]O=á¶D{—;´4÷uÖ8å!êè8dB1{T¬ÀBš,æªìDr$¿úêpØÁz×Ös?3ÓCck|¡'[6Ò áè7Q”ªè(­·B%£©žwõÅâÅs½“™üHåm•ÏGuB¹gÆ&BƒÙÞv+wÏ}^$,‰9(‘â²T¦P%ˆ`HÂ% a*•waxÆÐÕ]2øÀ…R¸áˆ,“åìrbx×q=`íÉ@=ó{O†÷dxOƠΩ¢4a’D`Ê VTò(2 §’Â$ F¡Jíîåô® ïÊ8M€cù¦v]áµð Ž è819at& íy$ï‘dÑkÕ½VÝkÕ»æL[«n/QwP¦Û Òtènòs7Õ¹­ÛY±=à\“ç~IéZàîªk·§»«Øm^÷Ã:6ïû^ðî¬sw”·»Ô{‰ÙÝTìîâõ^šuW©º£BÝE˜î®Gw—¡»«ÏÝEç¶Zs{‰¹«²¼— ÜAGn-·W»ˆÅÝÄÞ=¥á6óµ°]™Z’ìÞúïþÂo7Åw?¡·³¾ÛQÖm¯ævqÛj·½dû¹Ý€GÈÕE)‰Ã(¡)L¢”„)Xq”Ò$e 2&‚y/ ÷5MqJÓ…)‡›‚&Šùÿ³wmÍÛXú½kŸ’Ë&q#8[qß2ÉtwºÆ=™Ý§.-®iQ!);_¿¤,‘²%ºX’™qS ‚8ßùp.”Gm‡&CS;S—ËÑu,9º #¸«4ŽtŒ c#èAÇ:FÐ1‚ŽtŒà:yÇ:FÐ1‚+E#¸CFðZŠL‹l+N¬T€Óy„?û°‚IŒ¹R" E*™h)1ÇX†Œq󑎱]øÃeCýyoà©&™¨ò»œÕ²ez‘ó^f=`5õÆšy«Ù¼Ÿ§5̾­9¡‚(ôü{‡;{ `å‰Êð~ãI¥ ïYÈúÌ»œ”U!²TŒ¼OõøEæý{”Öï úVw2ô=ôüNyïEvcú¼šŒ¼©,ò²®ƒTz?|Ì'£ÊOû=Õ÷?žy¦]Ýêr¤ }ï}‚aåY™ê‹WEj8Õ‰[£ Ñ\ÿ‡È„w+‘e¢¾ð6U) ýsê«jš¦%´õ~ßD™Ž®‡ºá$ñ轆'ÓÅ™÷VÜ¥Êû«þuUé; ×n Cš~Lo´÷ºÞœÎê¦o`ºÀÄõ¾ÀFúÛ™÷¥Ðwðjþ#ª²n? ha¬¦ãä“ëá™÷«Nïm>*cxˆ¦¯:3ÿÉáÈÜø³6Ó~™eyUÁ0nÒ±÷sšÅ…6ñ%_ò[ï}‘j¥³3ïŸÚ±å'fYó˜•õD@âlʹþ^ä·bT>ŒãŸ¢˜=Þe¦ÿõCy?›µûZU¦á¾½Ì'1¼5mG) óaYž™ÕrÓü:zx7³Ow¾ž`b‹"U°Nk®œÇÓ+?ÁR8óÛÇwûVFié½WZVÓ.§kà*Åô½Â‡Ÿîëù]a¹*3ð&Ï®§‹áÝ<2Ì~•6åÚnë?õO²<¿å^>ôo¶¥Ù½.ôuÿQfY5­š¿S¤ÇÃoåyVNší­FÛõÈÐàµèš˜û]šqDZÌ×"MÌêwsÄ¢ è˜ã€ã5‰Ž M<{Óƒf£˜-öĨâiél]WÒ0¾i’Ê‹¢ÚðÅrë¾ ñÓó¶ –˜ñhÃÂѳ1=fRWhÑ]0¿õJ¤€V`½AÍ'ïiÞw:ÚSe~÷@â:>v¥¤=Éú"˜Óça4wNNÚ’ÇE:Žn¥ìwÆÑÝöÿxެ;afÍqQGÂEÍ œ%Õ"ƒVËÕHrÎŽ)}eÙº IJ)KVœ ó„’Æ>Ê”– E¾dä;þÊñWŽ¿rüÕ¡ø+òþ*$|E*¢€tù+Ÿù¸Ã_~D×ðWu°óÓD̉ÏÄœŽd6QúïÞçË^9ó¦ç—ÏwìÌ“Ã"Ï«~„û™LÆž‚En² Cg¯îÒ¢‚™ó ´Ô@4£Cª@—WfèU:¸…þËk³™º‘ºOÀ¾ ú­*Xñ×g¯ÞÿÏgø °´‚»˜›—õ³EY‚b‡ÞïGÆV…þ'cóGýXW½:?3 æ>ª¡ö²üºÆe«ÐíÞùò̇·óbµ0¹„)¢K1‹ÝŠî&€´ #ÝgÄ ùÈõçÝñ¼¾zëáÁ›LÀôî|ÒÕ}^ÜÀÚ¹x_/š­ ´J‡ P\‰½âæóÇ9+ìr+ÿÈì ‹Â"Í”Ûi걸µ“ƒ9¸†AZâ»Ò¢}¼½¶R¤8ÁÌ×± qksš„&o’$Âësî©S¤ß­"¥ˆ,*RÖv2Y$"]O#Š|F;•÷·ò4Z¢Kû»}¯êô¿W£‘­¼|N7,4 ã4;Ì:-9]©bõC>öZ¥¼¸/ÁB7ObéÈ[ðQùíCº8}#K7¬‡C1C·8·íÜvŠoãÞgÔ­F›M’i_; ùçÑ9ß«ÃP:cSÒ»X›´ëï·a ¢¦lM=¥t«¶Ý‹_ƒ^N ·ýÝ?¦M`ü ›~Ƙ¶}·,³MͺL #€ÇÿÕx<»Oº,•žºØ5j™~½Ä/î ÐYæÈ`DÓQZ«57xrä3H¼âI¦ãµfwùÈgãlE°8Á‹«ÉÕ»ÞØ= h74 kiuç?Ó‘®”Å0gÌÈïí¤`„°ô*aU©´©›¶B¼œÉ‹I5\5Ö¹d3MQ\¯rmY”?¯rp™K¯™²Žàý0·½-ªëLs+á?&y%jÒÁJ¼±0cq]ƒB.yÄ£á¬s´oEþÄH †#Sæ.’2!ócA… 8«ó·‡Dâ ðíJ7:òÇ‘?/ü!ÄtŠâ‡+ÈŽÉÂ) ƒò'D„¯!L~ð%¼EÏá/€öÑ|.pgSrôx¨Ø,õã¨Gýô ~zó'ÏSÛðÔS"ÍH #«9îòDÖôPOV¨'dËm@ßì†ñ±çm6cx¬©‹ø]æÙå´¶é[ÖÇ‘=ŽìYlâÈGö8²Ç>£ùVlõMƒ©CH$3ISÖÆõó0$PìØÇö|§lf¼ÏlÀá´ÃöqŽ[l‰B­ ª³i/á*ú¦Ó~|Ïñ¹ù„aæ:®Çq=ŽëyZÖq=ŽëY&è¸Çõ8®Çq=ŽëY)鸞“æz®ï’r«ÈhÀñçø!!Oԋ㑉$1"R„!,¡>މ ‹iIÉeÌpL­8žßß_yÉd$›ô55 &ÿÏÒØ–ÓYÞÊ\;³,+ÞQ”eÞ¤p5û©Ðj(*Øjn$±H'ȶN,Ðåî!œ"Dy7 qÈ|ÞÉB²Èoç&Y–U–Ù ^*³HúF×~hŠœûK)òÖ}æã[@ê L)è€75%ôæo³a þÒ£|´×ðÚDM»¬"ÙDÿe•’#ñÛåá0;½]®Éi)Y'÷¸ÑߊttmÕb(ì"víó€L¿m"q'†é NxiÙBª4·•-oãÕ[7€%jñ|s=UÖë;½ó*·{…»¥ ]om1t Ÿà“ªÔÚ=v UJ}„éS̱Ð$I®IÊSiAˆ¯U¬•:6qªt7ª±pQ•"yŽ.d¢ÒYG•"ŒB‚QK—•( פô7¾–×Öª=½-_„VNäM¦7r¸\J¶aß#ÂÂGØ.£û¥>&Ì—ï » ËÍÍ—ÝsõnžÇúÏÙ'íN^ =G–œTæ„ܺ)7©5O¯&×ÓL¼a žjhùŽ(ß#QˆÏ´ íD¿JeŽíjuväxóö—ß¾¾yûöò«Õ‹1Ç6»<íuÃN›æ¦Ÿ/ÿuùé·_ìn¬âI9,—~-\ìÀr-÷¨µ™&õ÷´ãºœ=ëf‚=°¿r–ýKT¶0Û6ýËZ66…勚J5Þ¶7è_7Ôä|S¶hƧ傰=z¦Š“O§°ße©Ê™ájù(µÝ:=_³è~RÆíËì!e¾MÇ¢½æÓ¶°å~›ŽXî“,l ƒØ¤ É’’<’HÆ4’š„ˆ"‚¥ 1ã f˜Igïˆ[Ft±ÂÚÙU¸#¼k3âcÖ¶‡ ýu *Ü-XrýN½[øºI’öå˜÷aA´ii»ïÔ vÌ>UsÒܽwy6x›SZåEÏ.`& šìÑj•é¼Os}I==›½ƒdüÍúx†¼;ÙÜ ;L&¨çÉçÔ²·öšViÓg-è9ªŒmQ0ì‘mtüÕÆºVM–æÍ¾kwN®¹up,i£šËæýb¹½^íYV|0’æÔø©á>WÛo«ÈÍ?ÎÕÉG94·gÚ Àór¸®øU=F±ÎAjú(ão6rk‡fr ×Öðªå¬¤noTZX 6¨gÐSÜüd'?YMçm~gÕ¡±Flä m“•ä­T)ìÆWÂn™U…Ö‡õâjßuMtŒE(Ⅎ8:QQ¨8ñ)õ°ÀEû,pööa #?êVˆ¢¡¹0·µ_ciÏžëeæNéÔ9$Á†ÆöüžÎ‘ó 0=_Í[£»C)ž%L¡0â‰Æ1á( k _F‹Hʘ(åS»ªžNñìZñ3NN-̓#ÆÚ• qa[§§Úùô”UÏU·~QoZM¡ÔSÔ6xÃã¹)x2ÊfÑp}™úèèÜ{úùØzs˜—ÙWô‡÷ðýèYOšòü4úû\ìß%♬ýlþ_dëÿ · Å#15‰hy’®¤öá %,„_˜2¹†n;nÃZH †>oã¶0¤hMä—ÁmÝÕvÒàíåñŒ±ÍÜ&;¿Å™ó³à¿ŸßõÀM¨n¦¦‘P–'Ë›4r0²'Œ<*îýÖïPΈ”<~(¹6öñ™¼=±dL†8Ž}!9cDª¤¤r¥#?H¸PJX†u`r×Þž˜ú'ÝðGÄEm< WH´Q¶ý=ŸŠ€tŽŸ‡€ i°¤t§ƒòÚ=¼£EBöo;‰ìÝvÙ£e7H²¿ ¨«údˇpÇ>óÓcܸa;²_ݘƭ/DîÛOw!@r¯.¾óÉ^b'3ñ8·B/û7›Ç`¾@ÿåÞuzOÈy¹’Ù§a;6³·t+HsŸNÖÙSa›½&s¿y~ÝGãáóLö=’Æ"‰“ ¦1f& öb QŸ©PÆIÈc„±³ïweß/­Žæä˜wÝK1bŒ´|P„×Ôh›ö‹~>§hÖoæês<–|HÙ6N¥ÎÍç(-÷gµKŸ+ªpI›™ƒÏK´ N,¢ð„Ðò‘…ú—Ñ3áBÎÓ’èbž„%‘’q„%¼˜$qŒUk‡ w… y¯s„p7ÉGè“°ã#ô£À.÷#:Epø¢Î|Â0"›!Å­t…ó'rxu¿ç(/,÷†C­+›ºÔ/¯®·¯h»‡’NB&…"Põ¥TœDRÑ 1•HÓØ÷I¤ˆCª;Bª¡ß§Ö  P»øøº,êÓò}«¢¾xú×ÕNö­èoN]lüŠ;¸ØømÕÎ3Q$Œ$R$A€8¥1å(Ð> "¬@Ù`ê'¡DHJ¬í ©;ų룳(ØvЧ}nöHõ8näàê9õãÔÏÁÔϪàŒg1|¨ uä“„I(’(æDù„GÚG>Äu±£èTä8äÝ@ßšðNŠÀ >ZÇÓÏ  §3œ tЪTœn¡„\PÆñ«­ÌU¥²sU©\U*W•j©¬«Jµ¾…«JµæDCÛr.Ùó%{#ØwF°3‚ìŒ`g;#ØÁÎvF°3‚¿G#¸‹Äv ìsÁ 8ÂLEQ¨4g±Ò”†ëX XcÅ]ÚúÃ…"-ç0Ÿ¡vZ;øt1\Ÿw×›;>’sáñ-,bWÿh§^€e{ü6ë© GfRºúG«Æ;šÜÈÏ!*­ÌY "PŒIžÉ9Kbâ‡I¢DGÒAȃ@È $w …˜¶3à¡­+z4w(\Ì‹|zèq³¬ÈG ݰ`¦Ë‰ì0›+}þ¢š+}~rxíjrõ.›ßƒ2FOa¶Qnþϵásöõê÷OEÑéSGíc²µÐM)àAûÔ'B¤J0Õ,þùQ"…¸²ËŒpU6O&™÷ÙœGTl“ Ý½—éèÚ¼$bØ›kŽf¤«¤þÑÓu&ÍKÍy‚! ·çÀÍšþ¼ ¼ö¼Ò"Ý\ßñ¨vø¹ôbpz›VfH÷ÃT= У4pÆuŸ7ФОpµLaÐŒ¥êW¦;#v— óo¯éPewx°w•õïÏ|1{Þîha¯ÒQRˆ²*ÒLà¦UîñóO–ú¬o_ÀÆã¬j + $hæùá–+p퇉ºO¯%ÞÊjL›ÕWÎGõ•Ÿ¦xÆÛZþ#¬:ïº6'v‰sWbZBCÜq2—0j' XÀ´ŒÞM–‡0‰(mƒZu".žBµÍ§vÑy}ƒÖ75€¯é¼êq„{0|;í!½ÛçâS³¤a©]\i9)àš Ú½I Ñ쮞Æ]¸EœoXd ¿1\£oÚÏÒC=†¹k¶è]àkø’²ÉØlʼÐFë––ò×…¶íZ¥IÒ§kø|Íîk) À»—wµx¥ÿ¬ú Ûl\}åCÓv^¦zÃúM®–ƒµ¿n Ãð¦D¹ßT?/«ï†|¯Øø<ìÄýl¿˜wzÃ<.óLWÏ´}6Cyâž-’t”V窫”¿š‹KÎô—¶Ä4¯h4[ôÝvÐÏ&¼øòîãç—_ÞYõ2Ei2˜ŒGÓ«‡w•ôðdËA,*¹Ì%¦½œ”U¾ÌIæƒ AÄw.ß9§ýþâö¼I8ß7o ¸ðžÛU™æFÁg¬)Ø‹­à3¥š[òù´ä„î4æåœ*‚7Sú(WHÓ®ª6KwÝÎN¶[þ8ÄW÷Þïò5ŸOÃüs„ÊßÚßÊ÷/oáЋ5D“Õ JDc­¯÷nõV7Þæ}¸ì˜Ræ³ÛYç뮵›Ïˆûðª=Ä󉚭÷B=’ßñÐÌÊ#" 2¾V,h#ƒ³†RP%òJc„ƒ”Œ$!ÌÖ!?øËù??üãí7£ =‹± R§‚K¿k>A\’)¶&ˆB7³Ä‰àó.ž|Û[SNS#ôŽˆWzÔ¬tWlàúÞxlZM!Zöc?‡iðþÓØç„ŽÉP'i1ƒ3ØM4â'ð‘|ò©¡{¹FŽ)¼, ßÙÈGÄñÀ¹fR!di@ÈSãt^:ƨ0^ž8J ›Æ\ÞÆÜóö!ïËS®ûñ\Í·ëž*¦è&ŸCqŠ;òÜvð|gŸeL?iL§w´׫=â=pýN zwlÏœ1ø(lÜU9~öÖÌf{k±= ®%˜Í²ÔÈÂk® ƅи0 @9¬,MBàxFdzkÇh²&8·ú;<ëŽé6êÃ=·w¾ÍÄç˜ÛEvòÐá[]"Q"ÝrïÌè|Âè,19w¹w­dAßÙb^Ã@5/ÍøWS98†/Ïý|ΰ;ãL†Ê“€ÊqL==ž‰ª¥ È;ä½òÒJ&´+ Ƥ˜1‚£%äºVÆ`â½ó.ò3ªEÃYÙ—pL Š)˜”å$ÏÒÿºOrÇH¥ˆ#Eðf$q¾Å H˜‰–áïtáO,ï°ÂÇrì¹~DW´/>^/ CG$BDºEZ¥òë³µû ÜM‹z©|Ê)Ì(DˆÑ¶Æ…|pJa}APêœÆ*ÙÖµkpÞͬM½â„o&Š'ú&z«Xz‹‡¤8hVýÂÆ›+£ø £8a\ »ÁøÆRg¶ëOï””qï®Ô¨` #æCP,Bk!=CȆPpäXÀÚjÛ'¾º €¾Š¤¦Ÿ'Àœü~ðîmR«Ø(ñæ×d„cœ4[Kµl³–:î7£µMÆ€ßÂaæF©ieÒà¾ò“Ÿ½ÝŽÊƉEÉÈ÷]Ï0zŒãÚ³tðXq¸«/.&ÓñôÒ£³÷Icê™/ʰv6GÈpmqL˜£ýzvVø¢©kµž|7W‹I¬‹§|Ì }{ôo£á Íd¼¹õ,žE93ó),‹Ÿ|*«é$>f›âÇÞÄ÷òíf7@Ù`µÍb•“ÁúÆgådÇtë;°1_¤˜ŽÇÆN«ö5NCsQëëùp†¶ò‘1½œlUB5½:3€F0Õ(ˆ5v£'©©%Ûª QZlóÛà'R±Ž²]1'äf4ÍŠÉC¦†ð˜ÓsPjˆ™Ì; $bë/‡ÛÕ])ë—’ZþÑ\ÂS›eUùX’¶kSy¯ïHg|w]úÈ6ýõÇÂ#ÞYÒèãò.Ó÷¯_Cv_#ž ¥ n—XLþ(g‰¯hnb­ªz;lâ@aÛ7ïÎn1ë,(p¿ŠÕÉh?'榚+ÆáÔ!µQrTX¤­‹Õµ²$0“lú¿ûûßß7°ì¿˜¨o\³Úïß>ìúOl1 ¹ÖpL(½I%‡Åê*¹ãÈQíKœ¨C€J„¬½¾³ÌOÕÐaÔ]žÝ‰ðLÝÄÜbIbëOìµršË@vŽÈàÀäBÁS«¦i¹ÁÙ#‘=/Â#!‘&Û%ı o¨À ‹®>4;:RÖNW7Âh+{òÝè±u¢§Zq×'Ñ“óßì)ã’K#~K8Iw »f{  cWÁƒ93û·yÔââò€ÞA½G= «$3Vލ!Ú²kK•Ò•Õ¿µÅÞÖÚlWYÂnÁ¥Ä+ø?ʵͦ€_7u·Ü?¢ŠjǼô7u§Ü*¤ÿ2ZŸ ½ünûÝ¢n/ñíŸÃx&Õ½†ˆQüFÄÁR¿å«¾îö¥jÏ P5Ö—m ~N§óz^™ýcôÑÜÖÉó– ô¹Z}°àëËÛÞÜþáË×þq1.ûÆ%®}Ô>Hå|Xšì³-g³ÄPwŒ!¬À…ÑM§z§ai‰t¼Ii )ü5XìV²(BÀ(påO3,)ç`tLÇ­“µ¼šM«¦Äßù®f É´Ž`ËôLâ÷é—Œ6O4ZâLV¿‡F5ŸµµŒo«ÒKXƒ!U}2cW7eúæËüyZ»q´PÖ%úþ–ßtðfð«e{Ú\L.Ë韋é—ÑÄϬéìÜVÍ#ĸ¦[Õü4‚Ýf-!²]›„ IäVÇ%¤pW¶ìÚWËM=l6æ0nÉüø ñÛìÔÙl¿Wÿ\î¦7ínJ±Œf`Ø~í]Ž>¾»÷vF‘ò@›h¹Ž×õÙ›Oœû°‰âm£©sÓ};¢˜ë£!Yp˜Pküè›k}¡÷ã>nºÑÙzƒ'ˆÃéÝïĸPA ‘vJQËQ¶@ÚKî…$˜“øé± Ûeu%gDÐÛ€˜îb¶Ä]…uÛއב¸oçÃçÅã)zH,QFâŒÄ‰»¸ø´—öôE‰ß{x£+aQ Öû€}@ÌŒ¨/”õ”bY`fq(­NæMXüæŸç÷»׺}/}¥VÛèK1•ìFôš£ô¥k½Õ£PÖa·[õÕr3oâHû›—†À_üÄ\–'€Áš©C·kù´08N¸Sb–Ò‹køÓ? Ïÿ÷·rþzŸ8@Úù/ñô`zc‹©-^¤É¶a“TÅ7$L1³‚òBÀ߈¡Ò"-Q Ú;„¬á` §%=gàià0Bw«]uº×øŽ ð#‚¿>:Á?ƒ÷ãfð¿'ð?V<\Hƒ”3H0¡FV޵µN“B3†Õ…äÜ¥µâûoSϿԅÇtß\YÏ«Ò.bפÊ*÷€rª a½Œ÷Bÿ{ >—󋙜-å€p_UìÁ—%”c»U¿æàØ) ¸(?\ Ç "—¹Z¥'î,,Æãe£¾¨vDr51ã†}³\íŽr^ûqL'pÇõµ£’òîç~úŸŸ#5–€zÞN1vû[Ž­að`õu|ÿacã¾zðuºh(Α+>oÕ JõY9)Æ ¤_ÞÿµÍ »2å¸c0Ųâ>í¬E¸´óg[šUdHàøê¦7\ê¼Pÿ\y6¿?íûæn¿üíÿMâ4°c3 H† ;®,¶’ùìàb¯Ø™YpÌI,MsyZªTG¦{ð-Êc÷àø…>º9ò~yØÈg >¬n÷ÈÕå±T*S€RE'–pf„ š†%±ð@aÆŒvJ›ôhÊtç•÷ø;è0e^öõ—ÊÌJP˜Ôo@y?ÖR[·¨ãOàäù»ŸÁ·Ôæ±­S×nq± ÞΛ½õšKw1ÁÌ×gmÜüßëÁ窜Ïýd°hú37•g/ÿ*ÝPÂ@á‡AÝtL‰¿°MjØx€‹æ ÖjLóí.h泡¡•õYh²¹–Ó]í¬x2|X”/È Ô“©4C»-@ISJw£(KUY.³Îr:‹Þ ÝõÔYnÄÂÓTZ6æ»N‰Wéµöž.r¯R‰NÍwsy܈J›«~¤Š-° L@Xá±ÐÖ¸‚À½”œachà<$VÕ[=Í`8¸)ºòCüõ}…W¢É~í‚ëËÛ÷™ä(ˆèc߉íÜlW›%é9Ç25ÂåËI„X”Äwà8Þfèž(ÆŽÍ ÀÓÓŽˆ4gÆžÇ)˜Ø‚­ é‹ O¥`…aÁ#J•‡#Uò"Pæ9ܧ…-²mìfÌ#P-ÀÆæøºM{ÚØ+Eà2+'¡h*³‘ýì•‚ld'2)o1æ¥PÌ"ç #œK‰yà”âÂúÂhø#XnÒr3y!“ž5y¡g^ ‘änä…œœrì|´öW°ÌaȆ½#Ÿ’ö¬8 wjtÅ À‚h—J „¨· ,}amÀ¤ Ô „Mëf›«¬X=kŪg$KÎ V»uz•ÜjPŒ¥Du$ÝÆ¾Aû5„—¤ZâÚU€:Ü;°f×t¦´AuQ–nZt¥¥À[v̹]°­ÙÁušxýáj<¬/;屿ÓG…î“Å×ÇI·´;@TMb‡YiX N2[PisŠÚ{8XDØ °`û,BšßÍs±&ZäðÊ)„W”<´%pöYdŸEöYòH!}Ìp°FŒ:kÑ…#\9ª]0LK'…M¯b‘i!™r`°E÷ ¶(Ý8èïJ ùp¹Ì—£G\¾‘CÄá¸29äi`x&‡ìÍÀhT£¹Y„2šŠJ;ä‘T’ ª-hRT‰$:¤Èt Ÿv„Ñ妩?o;Ö-þö$Tä¢U €²» œm'Ttµº[ÛùÍ2fkÿ4¬}ÁïP´êV#ô4Aó9Àßi'LÄÓz…E'Xâñ1ÊŠeÁˆQJÔºÂqĦ¢`!Pk$¿[ç£\áñ4+ ðz½Â#Ù-òŒn‡ËU5¢9»ÿˆE.ð˜ <>mt~ ›M4C˜#g‚à…÷¼ !€é˨òXQ#|,HdÁAQ–þoàIšz£+gÏ×¥[=”NWÕ_'] GКºÔ²–ØØåBo”·œLÕcÀš4ã_Må½/Ïý|ŸRÅîµ’záòËÈ»Ÿ6Pí†[Љ‹ôQPaÆÅ¨žvÚ k¹ï~ùíío~'#Ôõ]‚rØ Ú9`È!÷9dȈõtÀ™2¤ú:›Oã84Ò#•0” (Þ¶Ñ?¢Üqù=K£g©ú»²ú·ÿzåçÅ+jØ…'{-¤›„Á’™„‘»Áªº.5²ÏÞŽâ¿nÇõÅïKò,4í¸nÓ-Á¸3î¦ÉîH ‡’ßBjÊ«¡ÉdÑ9Et6M‘kµâI[Ö¾HyGv »0EÔ¼X/¯[p1qã”+‚?Œ?MvçÐÌçU²0í°UõS‡L}DaÇ8ÿ%m@U¥,n+8œ•ÅeŠt ÏÁ±7“$9ù¹d7L#8ŒÌµ$éI(?$ .&óáÔ6,¸ùÖ"¶)spe¸é ÚkvnÒí£pê^i„_Xô” [ÏXªt²W,À¹œò­7rÃaâNl¥£ýŸ"\ŽáDN?vÂÕ|xƶ^Õ)ÛΆ¡´ŠEš8%0ùÄS§=$ˆõØÊŠ!ßœ©VŸ_™*?K[” R€çˇJ‘žÏgÉû­¼2³&\›"¿¹ÔÝVN’Ž´(6t6I,sP~DÇÓ”ý:žÖq.’ž}\'ŸO Zù«i’𲉇S ¦—“0M­gã¤÷ß|à©r Y8Qi…SÏóVzZ̧³EÊb,å'=§3]TéW¯BK¼ù§¡hÿÁËMÇX hÄ+ïà´0“”k9 ¤]¼ª}ú¡Ñ@f ͼ¿ìqáj‘¤°6rÍú¤I,Æ)[>èÄk| Çe*Ú|•i²>m/¦ø8ê\âë­ž|‘¢hÖ>é¥×ð]¥í;ýœ(–nt4Ò©Ê@#œfm€î˜tºÄèO’bƒè³*e‹ _MÝ"I©¿^Ùé¸,, f£ù’x .& t%ªKKét ]Ìœ™§ë{Kñ´w±né'ÃDmy1‹^âŽÀå€Äoô“Iñ°Á|Ëð5ùš­tÚÒƒÉ4„ïoú9é0û|•‹NAö˜â¸O}üÏSI{y ¦/#±†žÓ¤ÕžJÒËM]¸«( ЉƒDŠG“Rjëµ+°Ó^èà©V–æ>\O@{–µ&"öCÜíÃ…úõáÚ(l½Û‰+×Z8r¥(tx¥¨Ü+ãìöÂ>¥n\±lØaÖ"ì¸D¥aA0ÑØ¡âÚbE(µˆ!Òk/íÃÖóuÃ{CØ.yK¶éKÄØ^ÕŒà &ÛF* !r³6A Ót”…­Aöt@>ëÃAö–ꆧ‰±ßŠ«& {#Uæ0€?MNÔ üH˜¬‰Ö"h[°‚â‚z­aBråÓÔ2ë F %³'øé,ˆŠkž`Úϼ±×œÁd ²ìðªÙ!|Ë^.ž¸Cø1‚£^`j5Æ–r+ƒÕ ç¦á`¹Et@\ šV){ƒO D{‡S)%» *u?oð*œºë ÎÑÔ#‚§"‡ƒgvgtÝZØ'復ÐÐc «2³À5'Î*)µ„…F’Qƒ¼  ÉxHsç:C/¶ÎP_GJ‚=¼ÝRa) Û¤FaD”⌥Áùn¡¡ çÇ,4th \h(a\.4tÃëÉ…†r¡¡\h(Ê…†ÚŸG%-ºU*ê–Ë…†¶Ds¡¡4Á\h(Ú’Î…†¶År¡¡\h(I*Ê…†n Ý œ åBC¹ÐP.4´Ì…†r¡¡N±\h(Z È…†öIåBCAöy¤“ J·š"‰.X J™A†ŒŒdÖá 3ß'ó}!šém¾VJ3·è>ð©:è>)0»ŒŸœslÖ>Å›Y? ã2ëç†×“Y?™õ3ßýé;Álü<ûs_øÁcéá#Gìే”=FnÓcú¼ßO¦Ç˜–0“: 3g2s&3g:D3sæštfÎdæLfÎ|“ÏÌ™¥Pfδ²™9“™3™9sM83göÈfæLfάÄ3s¦•™3™9Ó%”™3™9“™3»â™9³G:3g"UæÒW?ÆønÔ2#ÂGxüDýjÑ$4æQHDÀ“ÂÊ@µ’rÊ‘·ž $öÌû ?xç͸!WD~È—Á_›ÇL.8wQÖƒöÍDBMŒÀò¸¦]µºpô‘—-‡â^ø)tíý Ù#uU´kúêÍ»Ÿzûþ¼¹ùUäÊ8XÛ²!Òœ7d‚Á{˜œ¼W³×‚Âÿ ôš²×„þÁOÏÞüó|ðcƒ#¯ç¿aŒ~ÿñÝ{ó냰]>þî%†|¨s¯o¨íj.PÙ­&–÷ÉÛÇ–ª9ÝwN9ŠÊ©ÊÓØÂxÚõÏsÈ6äJì2§‚>Õ`Þ¡'WÙ¨Œ²2Å fPÇ©ÞÑF~åsý£³>hï´ak³#æ:´þ¹³¦žlI9y%¦—ïù­@*= äöDMJ6gIᆗŸçÞ® B6T}‰GãˆYÿWîڊ˹ˆOÓâÄ‚æ[ãw.ÙJÍýæqÎç_:ÏñìlÂ\Lñ®h5n“Ï=˜Onr²„&Ô§ØòD=ÓÖ¾Fe’-*ÄX–k\O*ù¿|é<$dÖ¹bf n ýøaße YGUQAÂLWµ÷*úqM™SO¥pr]L"ëqK‘h踩ÇêAQˆ&k]A‡—»¬okðØò˜¥Ñ©ˆ@ç˜3êq}~œzf^»T­®©v¹NÌ­N¶i£=M+Yiã镦[ݸ?²ÍKˆ×³ÒUfaÔÕÛIß[ kÑ &UÉâ ³~1<ùu7m§îÎIȼ‰,R1}V ?bšëÃFT¯>ã‘6øÔûHbŒM¿%9×—yjp?wÁÞiÏ6Xe0•ŠqyVé»#,ÛǹoMQØ(¡$TaE"Ỿg(ÐãFy ™½C[_n¯ßòLò£ÖÞ±¦b½¢dkML4¾ù zÆ©œ'|Vd9F¿N÷¿÷‚.Ë-=“‰âŽòrxyÚsû½Ì‡pFÁWX¶ fœã®éÐ=;ÁÀ ;gÀêÂ8Ö>·êVÝßõ@ï¡8£"VXü×hËçítwß½ (!]¯ÏUðÐÆåYÓ·y»#ÖntçÅO Ï‹‰RIX—¯ßÖ­¥z"Q¥laì0ÎìÊá‘ôß½¥“5¬²çe9µÙîËçžOT YPI¡Ò––‹àÅ'Ì¿?œî…%v5»(WP¹T´ÓÌ+`K7E!!‘8™ €A³³ã,ý- šžNOÝH@Y Î1Ѝ« Ë ]¼ÀfûGWÛRªâÀjJ: ßkÊm3oñ©›àlÉÍŒ,N˜|ª8î!Ÿ¦ã©k$ÄÉÚ)ã°úÈ÷¤ð†ûýé°}ìÁˆè\g f$L+r þzŠ´×%D0Sz¹Óý¶î–ºU¬ÖxÍ:Qä Ø:žhR9ÓqÂmOµQ|"æ¤Q¨>–ñ]¿ºóö_?BD>ekÑÇš¬[þ›ÿ®1ݸP€)‹Û u5«¢Ï¦Æs?Sœ´ão ‹$Ç;ÚßbóîÁújlʆ0ؘÇ-HÈÈÅ’Œ˜<­ )G¢ñÄÜ9^¸›îpîdAbY_rˆ¢BkIÄ®‡·Ê1¡ E±—ÀaT_Z ¼Ùweî\¨%Èw‚qãaÔ[$ŸÅæmï xU³D„© I®!çË­Ý ¶Kø›S×Ç…RMõ‰ªÍ¬Vø¸V5Ö&õ¶-¬*˶cÍÅr.ãôç$º~¸ß?ô˜¬o9K*rv@Ë5ækoÛÞ™´ŽZ^ÑSv>ﺥçöôpžçðÑ’¬“‰-Vøç:Kšl}%üóÞYO¢ŒÁÀ8]=ìñ¶ì1™æú 0ó8S®¥WXò^ÀVh ¡É:,_V(JïÜjR ŒCÔ õ¤×ìÀTHÝ D< oUµH°'!Yrn€wlƒ—tJ>’Õ —ãëËætïO÷Ý[”ÁW¶˜ 0E7¾õܸwüRÈ,´*_Œ¬Ï ÖCÎ=Q€ q,:²Ã8°lc®´•¸u1u§Âˆ ²°*à‚/@ÚUŒˆÉ;#ž—rQ?UÙíÅëBÑ$NµÂÚJP´"q$`t‰rH$¤;B¨^—¶·LðBá(çxÃ^Â÷qõÕ%N]¦STÒ¥VgTá´F(Ü“‡ëeáfå5[7èQ¾5Omæ=ŸvØJå@µIäHååÐ/ÃØ£MZÀlIˆ…RŽöoô.2!&£À„0ý¼6I¬%èfš^¬ˆÂve꺑‰/qªq·ÎDvØ¥½^M <2“óãêÇ/ýêny=‰ìH‰¶µ¶EæbÐ8k¢‘pEDZû^º³¢@Ñ>kˆ¾;©>…NN;Î^" SÔµ5¡oã…ª–8>qíÊ9›4sü©rß…G$ñ*†KðÖ%]ÝHv«g†™ AK}ëqzÛÍ;8+¡H¤ S^dÝ‹†|l¸ÉZ\ø O›;ù¿:d”(^ÑAhuÛÄd“ˆ@sÁˆçäBJ¥øhÇ [¡°ºMÔ´±–äõxíë@´²dÙnÖa‹Zsù¦µ„î6•À,P6ŠœèØ{ŸMÙ¶¦gµRÐľ(-·Š8ŸöŸéá8=ôòoÎAg1l‰µ3ãì Ó¨Ó|Øb7ÐÔYÂnƒHR°¢Õµ‘óü8ÏݼgAŠ„1+!þ½z¯Ä0Ý´{û œÁ(ƒŽÇ ç¥aƒ§ûÍ]?Rœ©œ²blÖ?îΨvÙRë7bJiE‡F+jöUgŠ‹ÉBóp ûW8Ó—.V£'áDKÕÇú«mjn{–N胶µ;.xO3nº T—,²àhÊì5¯ ÐïÚ„Ž'ø¢Tïuʶ(ëK±Ô±Êkê§ H\!´? _(vœœ¶¥]éé…¯Ây}~®èµU™s%úB‡n$cÎQÄe= ®ÜÛ÷Àž”¬…Hd!ãAN«0·GÿTD/! °ÍÖ²{'Æž“(˜ZcöÙ‚_~bœw<÷œ<‰ tlå­l¨œ…Çýc¿uA•`,R5>»Û Zg¿¶®F BG¬ÃÔr°~ïw‡G«º]׬…ó oàq¨u÷eTÖºšŠ‘øKHZS_~nç@‰?OÛ^>SX*ï ã©ì6¹i—‹×çÊà8Ik8r!ÈÕÛh$$ !ÊΗû­ï‰ékÝg¾@©•VLΔ)^a#¸½ÛwSo¬&ű¢‰ByVáÓ…«Y¢u­"p±ÎÁ}Å»ÔG+t¬Hœ”l‹:ÆEqîzÚѱ›³¨l´fˆV—è„6 ·WlJ™ê¹¶‡ÒÁ 5«OEskÞÀ/Ðë|LIÂŽvùÉïMw5ZÚôHT7ó~»¿V[)–PŒšxÞë­¬žZ˜sëš©­ÚÇQ¼kY{Ú=jõ¹v*“‚,q¹kXÖÜ~ØÌÝV*Àµµ˜ÖR+tÞœWîI×(ZÌL+(Ù¹,T°'&ÉN!Im¹%qVÅt»Eg¬š­Ó¶ Ö\¸¤Ý|šÊçKhê-´+–Ùx cÆ8dÁž"ë´YéÄ­Ø2žq:DÚ]ž~¹Ì¶Ô·%³F 4ÆCºã©qKFjc™XE7Йð¦Ó©g#¦@,®V­²Í%ìï•§n®"3“¯†£¥¼ÂKOïË]±«†“?^AmλQH…¤ð„uüèîŸûàéTãþ)¤êU0ÉÁ·Ùm¿ôÒz5Qr>2ËC‚аEkÿvóüÕd¾=ÿ?¿›ë-ß…ñR»ýñ71Ú6¿dþø%àæ”ˆ×EÚ€´co·0ç±ÒÓǧõ-Þ´}ÚA÷{Ë#ÍGIwDz^rŸ…ÖÒé׎ᘞ·ÏO¿}Þn}òðl’u >‰uAëŸ|Iº-ù ÏÏS›ùÃG_$Ö‘ÌyìÓ‡¾Šeºúò‚×ýå+©íbþÓ§EUÊwîÀ(M5¶¦/lѤÑë$òKjÄv£:€åâ ŒúçOÿھѧ¯.åÓžÏo&û·ó·]34êçOslx~Y[š±LÛé$.ê“bnӤίS»<ž>‰Û<ŸáC¡ø»Øþþéqn/G{]ðùž>MíEÓž¦‡»ö"6Yf÷2{êof”&A€7¸öa”o%t÷ã$¨ zû~ÈòöíR7'AOîÿÝ0(Y~;íÿX9ª'³_4 ,¼ópÿÔçÏ—}ÑËÞþœ©PçgÿòùM/«.ì YÇŒŠ·ëza¤þþË:¬uˆFIü$Fè‚Z˜ÇxyÒ•ËT®²Ž&©¢˜,ð=ºíkÓùÐÏÞ&¢…éä÷¾v³Õ™`l+cã™—ö•|tpý ýÂŒX Á‹÷/©,mBx#ôží D£<„vÝl•Dþšãq.>éB I[CÀÚ‹˜À-¾üÁõôRåÉÄÖ=´´{ïÊ\/÷ _e Ë3)/-ú¼ßúÅ[èµÑw¡DÎKï¹½îývg`‡mÀˆ1N<ÊØ,ºmì±¢oS1“OvHüK›’­Î%¦ZKÇÒá'?¨èå;’Br….Õ˜ÍÒ!c½çÖÈÑQ0*™˜˜QÙ! ½ÑFÕ»‚Õ„äÛ¢QMºØÿIÐ!%q`0ZÅ.µSç¼[ cóÒYzaùâÌŸÄÈT¦Jâ[x8¤¼vGµõC¥àE#¡]à]…Ð7n‘ˆh¼ Vkƒ`é-•7‡záöK’‹½fA6^:æýÖùĘ7LáR£Š BʬB&Ä)®Câ_>æ£:^™#XÌž$Ôc0W±Ê Ó ]®†²€@F•DZ…}‹ÚR9Rf‰‡—ÞtûêûÓ$Ž%ßn Lýö®¤9®ÜHßõ+êäðDŒ%ìËØ‡Y<ÇŒ/îž³"‘HH sQ°(õh~ý$ªH©–ðÈîv+¤Ž Ôd1ñ–Ä—@æ÷‘•kf ÃIÄ´ Ú\®ÜàÉ£‹A[Gø«Zéõ¹Jä/^Y)Ô\”Ü+êÓ6º"0ðšõÅÁªý©“ª¯È(Ycy…&f~9Ðîä1;m„/2Gõ×8·Ó‹¦dsQAjnÖ pé ¨Ì¯Ò³õŠk¦Fó¥iŸŽOR–:X¨ž´Ã_¦Ì^¦5IB£0<·ƒ)íª {„‘™_@)KŒBh?JVðeD% ¡øJ«Æ$Cʬt¿ýÄJŒÜF–BKQyا¼ã{²àõcƒ9:Ž]ó*œ7¦›¡xY9¥B "E,ëŽ+^œûèÜ'4¨2‹B'+bÙ¬º`é©iFyËc‘5ÆQBü¥ãÜ& 7ƒb*Œ`mô1”Ñ:ÕOªE'oŒÑÚúRìÔ 4Å*(rô¢õµØ:ò·ïEM”£B¾–Á9SÝ3@]Kµ>µú}§$I7uˆö’T:Çý²Ìù <;,ž¡Ó`®êÂZjÕà2Ø6JT´a•+è¥ ¥¼ Ò€V“çЇku™½a rÈJÊ…hâ(OÙéiè…2z,9Äâ‚Ò ½'ow~6†¯h¡Q¨¯%;G‘ÝLÉ£ÅCÇ=ÓàC4Œ>¬Q2¤ b”yn9FkrþŸ’$ä.a´`Öå4Ê™³Õ*ùÊ™ ­ŒDzd;J £b½1Ò‚gýª%Õ¨ðæîpŠRÈÜ÷hôÚÉF%e,¥Vf—‘eFiPšY½”¶^,h`•ÄÔj½ÀÆ1=ƒŽo¢-©äUÞãÎÑ9F2õÔC`­œÛÛïA×Sí-0âÈqn‹î—¾ i1DR”8J{>Q¥‰‰‚ D01¥¼.Z«Ìfû¥²`Šd‡9bæä2 fÐI9öcÖK;—¼Ðf„JÙÖÄŸ„M•¬}|isë‘+¤¼q’_ìªKÀG¶N[dŒž£À0e{”ÖK[Zg»›2Ztyüü}M!Ç”…2%»9Ü™öÒk”™×V 2å\`‰*J-–€T´ Qþ·ó‰¾xÊ!¹˜d½Ëü䫺{HN U-eOä”®ôT«ÚYù„ó.ªœ½ •6eÅyy¯$)Hît,J£žËéê1Ôs¥(y?btêüº3á&‰[Ÿ4ÂR@Jj.‰é †_N¨w¯!ó_Ò>º4øÖKå‚Ð {°\`v”>Πƹâ…Ã8{ŠØ`ƒÂŽÒ ÁÁ$-«S÷|zÖ„ ³5üðR›uÀfˆï͹šX ‚ôãz™§I=K« ;ä?.‡bŒ–Ëž¼A[}ɹŒBªˆŠps÷9G M1ç9Üaä*£CލV§$÷à+*ÁàU¨"AE7×úÅÊ:šJþxPE­KÆèéSÙŒ£ühçÒ‘ô$râM]áâÞÏ˳3䤇€Ó±ê²\¯V­)‹Pª Æ(ŸñBVVƒçŽQ]*É(m„òaTõ$¿ny7¢Ì½í4I+†eþN õ‹’ƒ-Ü åûEÙÍNlѺ˜P³9öÔ +ç;EØwаç~úþ;EØñ‚ùNö›¢ÛùÆï,aßKØöóÍv‰$ìÃü%Â2 ˆ¼1¨kl U[=’I5}7r ¥r"C aÿµ{¥ÍŸoÒÝõOØvó{îòLJßþÓ(QØ£­íÎÖöŸ7Ûø~ÛMùx‹;³p›7Ÿàþªò„ñÞ³7ß<6óêêv?Õ&<<?|Þ<ÜU²›×› ÙÓhòê|€+¶WÉÌöÍ=™Ù¾b+ûï?pkpŸ™Æ*Ø_ö\Z•dìáÐ^"þ¥jöæÃÕî§û_ÙìçÝvs÷ñaË@å‘>íÕãO÷tO›}6óöäI6‡/´-=™|ý꯶y=½gû½_F¸ÝÜUò´D›¸È›j’Ÿ„þðáéiŸ~µvÀOﯸïù#Ÿ7?Ñ—W£üzsØîc£¯Z~mïê–ßà¦vÒ=!{„§N­Ã{ÍŽÿ~ÅŽî©‹žæÀf_CÃÒçÝ÷u7ðŒEoßÕGÚí#|Ülïv\r›kúÄg£»[­ tx´¸·ò¿ÂíÝÃæÝG¸‡Û¢=ë\mcßů~ºº¾Þütwÿ÷Ü¿}än¾ßþË«?<þÙMåÿfG°Ýüxwÿ ®ywýðLJÇÿù×¶»­®á5wÞïÞ=üñÕîW¶ÜÔ›Ûû7Û{Ü;’7ÿñ·ÿüó_~üa×ñ»>Êü[W»÷­Ð×{B_WÉùŽOèë‚uõÈüˆ¼.8%\8¤® Î:q¸Ž}ê›·{BÀÆ?ý 1Öý¹Næ»7¼~Þì'Æv„·îÝÝÝ–¸¥ûÏ+©ë:îx딳áøZäOËA] ÕûbÇݪ o÷]3ýŒßƒ™ù`æWrŸà–7 ø±œñ¥&9©XœOÚÕú1M”€•§]Z@ERè8„å~äÍï‡'ÔóÆþð`°‡ÚìÜÙ‡J/P]Ï(ýë–êXý–8[ƒÕ'œ­¹¹éI[Ïü¢;ÚöL¬l‘Vì{Æ iâ!Ø…ïqšþ¦÷¾i¶ÖŠÃïnŸ³í-wÛËp¶ ^§âY{ßÓÓý:¬­­ï³º>ÜqŒðßn?o3}z›xÕ6®C@FisÕˆ¯)As5¯´ƒ¦ˆ¼g—n4mäØl¯Ì;ø\¼È19W¨Œ ü<Ùï_Ñã=!ú"Qy=z÷tj»Á âA™¼SàQ˜Ñ œ3ãª_‚‹ e¬Jƒe”ÖáÔz+·_D'Lîq¯³ZÙ1» x·tßíÀóæI)¬pƒ7ÿ‹ ,߈Ԭ~åÐÖg£š±g 4ó!xÞD(Ƈ*³ìÊàë©ý—½.:µþòïg-´YÏ2™ᢑXœÌ“¾mœùO «&©Ð‹•±Hú›¨ KV‰4Jr{fºOÂUK¯ªü­Ü[à ËtR¥"»¢à2_†sÂ;Í4JjÈ °‰‡¤Û®\wCº*FV QKžÔhm¿©å4<áJNéÂcZ?{ŒzT`¹!M‚j†zƵóù"ñQЧ‚ÏÁ$Ìy´Š»×N›—ÐÄ’œÇZÑbÇÉÖÛje;×|[½ÍÚ@p4˜Ûi£Ãi†R ´U­îµÔNí]ÊZQöIˆçÒ…Twc“–Q'É»óhæF¯©F•GðVi!s$/F©'z u*©j.‡³PÈçÃlOçõ™v‡ªæÁ‰Ü(;ÊY+Ë¥„º²2—AXÊa”ñâÔxƒ×Ó%‡Î ¡”hÔJwÝåÓ`¤‡!J•Ýe- îÕ¸ e\  ˆã°.ñR ô5±F0”ïä({àRËüΔ•áÝRéˆÉ ½rò´Y´ô*æT$¯8ž3Æ‚°Z!­"zôõ]F¹Þ{´KìK‰ÕóÆïS°£’ ݶzÅBx¬,w†´-Hë¶ÖÔ¯(R³'‘äµIG©MOÛê$[†x™ÛÂEÑ(ýÌ™ýV‰¯ÔJs/¥œmÕûX9“wGKc“É¥Ö Ò4Z8yj½Á±’d*N«ª¼’• _2ޮ˴1’Š£.¤•½¿,#’ŠF’VÎ>³½è@(ÅŠè x5*c}j{Y­ Ä’9†¬ò?™ä(?×™í6÷Z"[cŸHH&²ç/5Ðä(šgöZR$‘GKEN›h–ñ©’³Ë9£JUöÖ»…|¶Ö< 0ÒCÉžó­!W¡F°•óõp•Ùi+‹uÛÉ“Išø5²¥ WvTOçAQSQL!~öÙˆ³_ß+¥JÄP„ŽrÒõ¿p‰ÍÙ“*CGj¥F2Ξ¶ÝàÆ´:檴ÄÑ@-\=°Û`¹4ÉhU8¢ gqC§$ˆÁaä7Þ^-ŒVHî6Ã3NFâ0Fðä˜ô`mu·¨£âŽH^ÙQ.Ù»—ÈjÁ&cD ?9è›Üï.dë£s !‘ŠÒÃÊÆeë<åÇÚì +_ÔäÉër‘â(ËŠ b†$üh)üÍmo´ ØÏèù©'ÑÏÆô÷Ô@›ëœÏÁ Q•î]Œ“çiÍ"ºì“Ú3x¦€“gÚ—›Š Ĩ­P‰{cÅC÷$Цb¥V‡J9¹Vº²MDMš Ç97Ý×ÊBY‰Ã  €~rÝ´‰Rô~G݈EÙ0ªMxh·¡ÛèêÆÅªÒ¢9J0~j¸[[Șœ—(;Yg’V„;l¢§Å¥¡j·Ù¨´VÖ–óq„ùŒŒ*ÆGÞ0Ññ°®˜< ý\ ôq¢SÒ(÷Ö©á¾²’u¶ŠáÌ(êI‹ÄæÒ —‹4ÆîžI¤9¤=+i‡N¥•ªr·¢‰åã2§QùL‰,FŒ+|z¿êš‚+5ÿI•PÃÆÉ}¹£¯ˆ˜‚MFäì9ú+¼£°¨ÏD.[“mˆ+fco0µ%èâ³Ò••wÅ`6õ“¼®Új*:ZgO§z*>PGTQªÈN®°Ü,J·,¯ÿ¬ÄѪîsÓ=e²"s¥ÌŠfߥV,þÎi§Uä ‚»üŽ9ã-Q>*¡Òª2êbPnF r¬¾…;h]R$~‚µ²$E†›Zk~÷¯ôq¹¤Øi‡1£’ÜdHÑ%a­¢æÞ–É@š½žºXnd"pÜï²èäGµÂÌ/V%ö+…1R=ë ~T?íØü—k¢–€yrD~ ö ÏidQnGÂAôZð³7—É¢åPÔ‘OüFŠáÛïÐfJH aÏÃMŒ²?›ïˆ-{𼽊Â{kšDÁBˆÞE|¨rr6"ë3ï9²I)}±Ö¹²ÊýtÉñ0×@8hUsŽÂl*_¸Tyƒ-I£Œj”üÉr›ïÚXO;Ù à`A²¸Î%.(IŽ'á>ÊΞ´ŸÝ Bël ÞªÁ µ§ÔÖ_¡²ã;+ÀwV€ß`!Í¿ÿß‘Jå‘mûC ð‚¥ñSÙïß‹ã>ÿ^Ÿ©ÀÇ뇥šªÊëÌ/QVÅA>–d}q1ñþå(¨è‚ƒFm ¹\ÈõeUµÔ71ÝüÏí²›àïÔòö¿òË|k_÷ò¬b«/m}È =J×<±ÝÖø`ï"+¯¹D_ÈŒ‹67pA7ƒÓ‚Á)8e¤É½~ɾ>3F²Ú{;νûµ•^J‹‰IÙÀãŒGk4—;ª—ZJµìœ7H‘ÿ©'çêeUUt%ƈõijñÃÈ'ÛûÅZS’ÙHŽ@S.*Æqm£¥þâÞ\]/k‰2¾²:ž] Ãh1Å’·¾\LáØ?1p1¾ÔÌôqfÚ¥wZ–u"ºH ”g¯bƵÏßæ=ÜÜC^Ü"Ø¿š¢\Íß·&ÚIÙ½y4Ú‚Ì%Ô’Öqbý34´´ãgQ¬Ð‰6ä•ðwYR³ª±ð¢LA:9Z}üÜ njØqË‚ÿÏÞµíØu×wÅ<&@b÷¥úäÅ #Hä„êî*r ‘fHËÎ×§jrÎÌéÞ§w“2À¹÷>}©Z«.«ØöÜW‹SÏçANˆ­FÙW‡b˶¿8LÂ4BR2âòVKƒ_¿cÜ>QºLDÄW+Í>?ûÆì&ËÌr®,ˆÝ¯&í.Ĥܯ tǦHÝ%.'Wd^„-\¯øÜ;ÅÖ<¯Nyþàq¡ ggN5ûfS°›vì¼ýYÀo­é1e­»)®»¼>Dìù7Œëb=:¹RÅrj±é'‡Í:‹i”u¯ Èl^Ù™ÔIpŽKõ‚§C¬û5>dÞ:Ò› U¼a ÉÊnoœü8ºB¥‚0LÉ! -ݼû·Z„åò“3ìc $Xå<8èi. F/ÜrÓWÅNŽ¢ˆÉúQݦÉt³+u7µ›‡^师"çè‰s3­xq/›·àiLÎ÷oäLz!]Ë”\*2¹²ÚÕv8*Bs1ss•£Ž÷¥õ¹Á/IÚÈŠ"R®ÕÆë“Z/wáþ¿:,G:»¯tˆ ÜW5<.¿z<㦙‹M± ­:|î±S*ŸÈpŽQ GX-ݼrÝã¶Ð\; B ä¼à´M†t4¨½ˆéÌ9›Pjóª¾"49™Ñ½PáÞ3 ÕsýfµrM:¦Ï¶’Ù fØ5@‡ãJLfm(j¡‚«Ë¯ß1™Õã“§Ð8šZM[x9´ÓïÚ4,ÀܯjE¼~דôՋʃç8¹h.ö\ö°ÚD>|Áx=¦l)8¶%?`UÎå ¦¨èdÿ0 × ÜÌÁpÅÈUlôIþ;+¯ÕQÊNð=jì6Ó&JY81Ê$ħFèûW¹ã#­%ÛmóÍyâ%9î½g< 2aìU¾¾¥fÅì[Uù!oð‡oá½\Õ ž¡Ô“[ò &ÄdØdG—! p¨Ü;æ¸|x'7ßÐ÷÷näzçže½ wa'÷{ÞßRÞTæ4d<è_I„Áõ³gÍf|饂QÎôõÒl65™þòE?ÒP)«´TÉ‚I „€˜¯ÈiTú§ØIK ´¸ª4tÏop «ªµïºÕôÕ·ëK0©zΞ+°I!TOök–iœZÊ jpVç”vÙ…­LÊAa~C|ÑYÚØ|m›VûÛK!Žü娕AåV‹÷>•ÝßšÌÙÂz±›˜!àõYók=ó<`}>fƒ Ô/­HïQ6l²Í™z mµ§áÒN[§š¶f—mˆÕ/ ž½âPÝ •L3ÞeÐíf=°A=×,F÷V ë&ÈûÅ.áCÿåâ0˜H}aWrìVå£.¼Ûˆ³õ¢Ñ:£H’ݪÜU²øP”…²Uzß8mô•ŽŸ?=ŽS5l±FÏ®Va '÷á†Æ/Ùä,ç^+ân¾é 4ÉC‹g# Xöd×õ||Ðù.£(‹CဌãÀŒg«U.0ªîöªÊ îj²^`X€“„ê°uÞ[àh1 s¶}µ+ìꕉR*ª`ŠÁ^üú€ØOk £Ñ‘¿ÙGòPO @~Æ¥¿Š>Ä0“? š‚Ò?â<£ á“øñh5ý˘hAГ£’EÚ¿ËùÖOÃýl9›ˆ®ZĸÚ(zµü:¶ÅÙÖb‡ºIÚnŒ2(ÖEh:aÓÚ²ºó´¦°³*7ÀaYð}”©…S#öf„qvÙcö«B¦W_ßG–8vÓQ޾…ÜMm_Q;ÑzÏY…ìJ :ÁnÝû\€;qŒÈ¹†ÔcÜ<>³¡PлÑz½Ø›‚íÝ`Ô\Ñ3ÉÕJBÐiäw7w­£·>þôã§QòW ÓB65®bëö[¾‡ÃŠ)X+Ä©3Ÿ'Î3ØF$†§ƒáT’9K×4Ä“%W ­v#Þwó=GîWöY`‰cÌbv õ×Fshı™ Z`üš&°I˜ëµ9ë`±¡ÖÍýèmà1¹ lK=¸Ê¶î´ßÊè9Á↩±ÕXÉyhõ-å /?û@D/ {“ÓŸ3&a¸§¿™qh3Aàw¬½˜h]Û½VŠïÇX5ÁKÈäƒÙMT5ŸïÑLk- +t(K³Û|údóÕ³Œ=#ñ,ÑZ\Ìv+ÏÃÇa{EÐ 4@e³"ÄM£¬{ (#Ç[6Ï!ö´» 7f­µ®ª€Õ—X³ì÷ê<,‚ #„0m”<ÎþþñÃ&„È6n@h…M çúê˜ÝÁlµê;hó, lHYÕ¿\©ŸñýÇO㕲¥b )³CnËÚ¯GIñÉŒ3ÆL5-zOnU9}ÈÃß|Æñ´©) ˜ÈXhY7ôÅ:ÍkOLp¡kUƒlü·(Ó™ sZÝ}#á­®j³ Œàèw0£)5™’–õü¯~ÇPyŸ… ˆ“ûÖ埓çtAp¯ ZJ Ûæ”í¦]ú¶s>¯ã°B@,‘ì.<•SJ‹-MŸå4äúoÿÐûÚ?ýð÷§ÿö_ÿó‡_¿u;òo£ûó“€ÉwþU.­Ê6=^ÿwSçù!øð¨Wäú;nÅã?uúÓõß³7;‹~üÓ;7üÝòJ½ÒßDúîÿ¬ã¢ØÐÿ[‰ ˆö]üù¿uѾŸF‚}÷!Ç¿†\2"Ò¨W¨G¡Š½Dª˜jk(„1¤Àkr}ÿùô“îdWßÞ}÷û?Üý÷§Ÿ4º®ÀwÿøYyïñ—¿úx÷é§»î"üñßï>ðÝ;¼÷ŽÄdýå·wÿññî³¾ûîí_ïþø›ß÷®žãþý›»?üù#½×%{¼û'ùœþ—»ŸßÞ··w?ÓÝÝËIT57ê¿|ïÇ·t÷Ï{Y«ï>üæ‹¶ßß—¦„Wš~É_Õ{­éçJ ^`ó M?£:ôÑ™KM?c\Ö®ê‹G 4ýôTÿîùà¿Ò¤Óÿû÷¬å÷çöç6eü®—ë›Hø åeÏ¿™ÀÜ!é—ýÕåûÄ Â×f½³,«'¿åB²áé¿iÙÈAéë<ÓТOÕSÆÅò}ÏqO#wpÍ2iºÃa\dô—Ï—ÛöJ2Á  1Âj‚õò¹GŸŒ#1 Þ¹Ž˜c—OŸÆ0!D[3º˜:@Z Oë£J8œƒP2…\7^Âôù¡“"PÔ)ˆâD‹_,ƒÒ‡iÀEë<×V*’-•N,íí^{.®?S•ÓªªÇå¶$euô9`%í6ż:ÇéõÃoK!i»Xª!ÛÜêh$}Ï\î¤ –3Ñ–î2!ù s,ùP°¸ä ³ÅÆ6|¥÷ƒ‹÷¦XÄD¿ÚJ|ù–£Jìmr SƒÂwýÆd->cëtþÇÕ®ô_Ö~˜˜–óç]«µ èYU9ù|Õf§wÃIþÕzÌ;«<ïÎÓ"†TB•Ó ìWç+_“±êiär›©Å¸*¡ñŢޥ-œÐ‰ž|nä´|û„™>™nµXêzŸüj¬¾èv•{³½“I³/-åÅÌÃ嘲9#§(·ÆÕzÆLýÚ t/¾_ëñÍÈÎßåÞkg³,OZíŸíð¬G‘ ž"*©›˜ýbäþóáœM,èØé:9ñ´ªüôìC¿­ÜõžÎÕ“\ðrÅÌ4­"΋©†ëE?n×d2(øÂâ"+¿aÊêpÅUd0ÇÞÇU‰Ù ss,b¢‰6cUß~[ Ó•¤ƒ¡š³­vZ-ã¾|ÇXc®R(Æ0¥xK«XÏçòXD¡ƒ!Å0ÄN5x+u>/ü´7‹Óб®bî–¯Ö2]º™|-›ä¥Â ür¦|fa&2Ý…d|ˆklõÄvž“U±C'¬0Љþ­§DÏÐó(›Ï¾[ájBŠ ­¿`Þkbuú$w²T­÷pÂx/tˆi÷±|¬–ùXWe¶_ñ™´¹xfA[B»;ëèÌ/Ÿçß@Ì·vom£’ÆN\·=öh´ïiãÖ¼ät߆àXÖ=Ë¡‘“Neµó \|Kõ£Ë‡sa¢Ïk>աЬ`bôÌdOx…ƒn­"Ž8!+ÆÅvæ™ÏêpØm†‘®‹˜<½Û”ÄïÈy9ûðÙŒÏ*72Cr®Ôžv‚?k\%¸ª‚Ú)ÇÒ¨³Ü“V'‚• 5 >?áÌ^… Ggº4¡ùY#é¤Í çÏÈûÊχ ´;ñ ?’µóµ÷¦½AV(s:÷¸Õ«Ö¹T²ÓŽàÕ‰Ç/|û\:>OÙv ¦ÀjYï‹`ìX¯Ãʙά“äJ•3dsIe¡4îðÔkU/b×5Œ¼™¡8_mjªæÏãîãFö‚ÙôÒbrÚ±³ÚWúò挕KR2”JÈ‘W‹ó^{tB PÁ-¶†°™ ;£a =±²P;î$£ç}6>ˆÙΤÍÑ€¡Ÿ$O“1˜˜S3¹¨ú¡]aóÂŽƒ½bªÎ`­”µÞð7k…÷â‹mË!†Ïg²²¿š@Ó‹1” B€AꊡnVÛC¾¤ÂZC‚Õ‘ml³sáµZ#j×9ûܬµ¼*'ù%”9i:w1‰u*9Š)L©l^›©–p2µ¤ìÙ­* Žeªc§Ó«ˆwí•9…€Æ}{].º­!ù‚¿W§Ÿ]~õFaç©»–kÔ®±Uñàë:mtb)Z‹ÝC¥UU”™ ˜TG—bdRÖ¹*ÐþùLQ+9놱ÅÚ™tÃsèͧaî^¼CõF;«ì¹•ùø—(8“…² ø4î|Š|-=Ú8”"†B«IbhMïaÃÙO^«­­@È¡‡¢‚r'¿zˆ©ºÂr,»àÓ´¶Ð 纗J\«~ !fS K ­T¹™&ÚÊ~ûNHŠ…©ˆ>z¬ËÊä/#)Óv/±SÕÇ.ßïŠì熥7ciÚ/;Da÷L6¸ÃD†MTG®\–5?ßÃu¥¦9ÁA®LOpæR.éÜõc׸•ÊÆ§q:f„¹1©÷„L«ú/PýxÊ‘wYpq˜[[íã¾ iL{l®Ñ“ĆP×W§´¾4€Ãô0”äìq•‹¯:Y[etƒN^Ä6F?_cq¨³(çÚW"ôb² ®6µ_'¤&ÂëEµo!×TФì$ãÇSc¢³]ÑÙ ÜÕæíôó-Áov¤ÃSOd!¶ Ž20mNŒ`G_]ϾŸIêÞTtg§Øzgߘö þB ;#"h¸³:ÞáàøéÏózšÖs®ÖD hÝ ´2Ë„l­Žp,ŽûfÜc¬Ga¸a–*¤ÂBÙO¿5áÈ¥ê2+„Ìõ€Mo''=U ©ñéÂèÉ8Ë"ð»yNlªÚZÚ[ÃÆÄ¹ Ù¬*7ó©ØøÍù‘#"all—•ŒŸË‡; ÐJNµ€7ˆÏL÷MÈH“ͽÙ(PÃäʪŠaÑI tHT9SÙñ¼“·†ß 8R"qU©äõÕüøázÿpÿ~Dlk¥† A=ŸlìNèi®~å[ð¹•Ý×Zƒ Ër(ÆÏÑ:L9á[§ Ñ´Gp~è°›©îÒSG¡_Øðn(õêK³žëÓÖUõ‹/ÐîPÉIs?]`WÍ&A8Sp¹›ÞÓ„ÐÕ1÷VLqp[lqM2Û®ÚuÅ[¶fU:ê5Zš+›e›+#4[t´öªÖþ&s „*|T8Œl/ø˜ÚNgœ¯IÙ /b ÁÖõ¡Á/V~8§ÌeBïáÄcü²Ï’-ÿËÞµíHr#×w}E=ZÀÐ2A2ï,Ö†ìü&ðÔ44ÓÓîžÙ•ýõVi¦«j˜YÌœ–,hûAPa:+˜•IÆ…ŒssµÁ†Ôtœ¢Ûî ›XûæÊ,Ùôåì[NõDú S¯ˆ8mBq¬ªkXk4‹HNã2ºi¢ÊÅn£kOúØ;Ç‹kÖU¿ã!­é;"‚’hjìG“΢@s\tb¨Óï\ë+Êo¨%n[” wŒ³ 0ÙùðIኄ¨Åfú0 q• ùÉ-‚ð¬Y²k>CÔp)¼{³ù´Öå];kØ%«õUðÑm\’cµzg{c@"Ôä íÙ¹YäiG L2%™ Óîã ¼*à†³Ä›BÆ7±ªuCˆ<Í’QŒ‰¶ˆ9jX·å”úÓ½>~Ý+{ÑéV\,š¨2|UƽD]˜¹ åÌššZwã6¸û!= ½Ç ¶E ÁVçfÉNj x¥X-ÅkBÅÓ–Š–å£s­‰ýÈ­íEƒ—eoxGÍ75+é:$;²‡—eú»îX O•Ħô³S,$Ì¥Èvc¿Òü½Òü}íÕ¯4— æ•æï—§ù}÷.—ïžÞç¿ý÷Z©Ý©ïüâÕ¼/àÃ4ƒÑ‹ó½rõ]ÿ[çêû™?rÄ×÷ðP~ º>£Ù$tÎ"@-|c´I3)è{Çú˜BဦèúþóþãCº¯é±þrü‰}¦‡üþÛÃ_ïï>SàôšÃ¿é/?û§ûÙÓ<·ß‘|ì4ÖWc}¼ëÝåXO§±~WL|Òâ’‰ÏÓ}Þ% fÌF‹•s&>ŠLdùœˆ| ºñðélýã圾â–Ó ~ÏL|壺—}<|ãçõ"\|†ÌÅÞÛŸÆéúrÌÙÆp{üÎæ"b˛Ǜ{Ç‹žn^5G»ûðî6°éxÑí5í»}ïý¢›¦Neß'‚÷#¾ñáýߥoêªÓêû¬^ké¤1%ˆàjo«Ñrp£ÜÁb7@,¶_tš¥RÛVµ†Û\I–Ù‹¦‚–ó0 &ÿRçoÔÆ”,ƒãÖ’˜kÛi{¡!P\‰ý¤.“¤„[˜oaˆ˜¹s—5vEšÌžëÎ ðæ!åJÞª´:Aò”¢¾JLÉùb}Õc˜gDªÑpÔi3…š—t-Õ¥$šùf¸ÌÚýºÊ/˜Ý !]|DWÕãxÈ!î• ¹ÝpcÂ<çȳ€ÿ)ù"Òuå)äZ<§¯RÔY>¦R%¥ ‰§i%7KmÛPÜщBãÆôUÚmk›ºžÓÛØ(HÞ* ´©…¼±R¥ŸjW­ú¸[xËœ«N½ Oú?¯¾»ÕHCQJn踣ÜBÙéXn!$Sæàºbi f§žëDÎ51¦ÊÍyˆ)|ÕX‹¨të æ © Zõø{ýÀu`°‚­Eò9ùÙ¶ö}ÂK©“¬…®R•bÚ)ö:uY»[¨McšNrk¾jå®2£ÅæJâ³×ßõÏo…ÆÓû`|ˆ£ß=Øz’AשNKjšpÚ«Å5Æ{#³äêp4'¾•CÒ’QcxÐÔ»í¶½Œùj-XÂN‰ÒÑ;ƒè N¿OFIBp»€‚i‰Þ°‹V²ð,ñÙ¼dOPSÙ¦–̶h죗-Ùij3BmÙ_¡ù#M- ªÅ9²ygØšc⎱uÄœ*‡Y*ÎÕ±VÚó: †ÈŽÄo>»¯½M=æ4eÖwåŠqâÞ©¶ÜüQU.kNS²3Ù\„ÅìkÒ’"£®ôiªê/Ì÷-ÑÍCM`’!Í•;éÔ>ëK ,uÝL•Vß²k;ízs.\,kYZª§´Wy !Õe`ÐrëìxlfÁ^_Ø:”1&Ÿ{B_Éí5 ´9Ñ•]Dý içêZ¡ó„Ѝ` 4®íž« úXÙŠõà3øåÁRS¹³‹ ΦàgI¹†ÖWɇ›烆éäŇY\Éxœe`\oZ2I½OàV&»í¯Gò^uhªÍµ®}°[ž| ¬>‚ ÷=°Pf±‰gÖ+’ !sG ®ÞÖÚ,ä–ô^ç/³l‰²£Ã”°ñ].“eFo+™ˆ¦q§‹Û˜Ñ­¨mè:ëbªQKÚ]ךÎW]™5Ò7·uùV#k(ZÂ4g«m­@Þš^ºòÌî-4I0¥—y`‚®žåqûb€ñĆ`Cö6ëÉmŸ|cŽmO@êÆ›K®Xœ¥9“é~1̹ô÷KrwŸÛýE¢Îõ«ÇT.!j%¢!¦H©ê76†šEn‡RÉÖh¨ÏUxkt‹Ë.Šu^‡MÝü,ÒèÜú ÍêöÄóºÎ‚F.¬/¡/ZÌ­Síf¯“O¶¦¶“D .jîL…c&ýfÝ1UÆ­ð˜L²^V0‹§=·» ÕÁ‰¼e/š~r°fÇd¹IP‘jišëX滴χXc:޾‘÷=b§IßñfHG22€ø†Ö¢Ö;æå‚& €4kbÂyc¾3EP’Q8b޳z WCŒÈ±Å0ƒæ(˜j²u×lJn¤we¾œChZPï˜÷ Ûe(¶#»}([Üm@sv]GF§MZHlÝŽ[árddTœp3q– èÜð Ä›C`K9§=>ríez[¬Ù©3³¤ÐçÖUR4ãìÊ4žH_&lí2Xc-4¥æPJ²ì¤ºYüÔ¹åEE”JE Ä)Ýñ´oC#€š²½I.áŽ1Vv; W“£… Å?KñÉø³[«Bâžî“fãÅ t˜Þ§¥CЬq¹qÓ;ήm>Å|6ü”‡¼ØJäl©6†iò˜Ë!–N{±h¸2™3A+»ùíPÒôV}¹›YŽÎù1p7›jmP'ƒRÌ.ó7y³IÍ;|³5wÍØ¯dÈ?_s!g¥rÖÈ-7쇬é„Fg(4ÊÁ5WÜÖ“Õ›\8¢–Cš¬Y%m MSÄLCs5À‰xãnË¡¦‘M ’ú·=,©Ìi.œ-„Ncîۮdz*~ÆhÂÍÞ³M6ÌBO/XhÐ0(M×Uöúz=mœ˜Ë29¹hum#ery–s}[ãBç!Ëè|©šàlL„WD²´Z¥|§ÚLÆÌ¹ûO¾¯Ð?y…þ½Bÿnþ„Wèßoú÷‚H¾mø‡WÔB¿ê‚xvýo‚øcýøîáÿ€¨y?JLš¸äÚ’9kž^kõ†ˆ™CŽÙ° žáþ]³`»§O BýtwìÕ•úlè»ÃŸ?Jº?Ü¿ÿpÈrÈš#èßuþ¼9$ýG}io¿ÉŸ‡>h½£’rèùÇáMzÒý›5BõýÂÃ݇ïÿ~_äxù ”øMyLOoäédâhî3¾ñïwoßvG ×ÉÌ)ªä?è]·÷‡öøþ]ÿæÏf>}õ÷…t¤pt„óîÕk¤£þÑÙè/Ž}ƒÎCÀ3¤£G2ÑsUÝ@:gÆ?ÎñÍÇòã[ÑAÿg'ÜqôÐ^ìˆ}«å"…øÓ¸@Yö§{ûµ¡Ž§òî8ö%ÂïAçDŸ=Oßyûöû§‡Ãì¦ãÉŠxËd‘½:ÞCï|6ÄêÛeÔ©Òx‚1ì_Å06_,H™Ü´<°ˆYdOVD2V[ª©“eý¹Ñ5Ä¢oŒ¯ÍL«¸Ÿ¬¯ãAÍçm­i¶™ýÒòZQ=)‰Æ\˜Ñ—ɳ²+Ó XÅÎ~j0KÊ™MœÅÊ]Ú^B*B)Ü÷f:ö49žÜq»²½ŒS $\¤*2M?0?æ.4šÖt1Y]:ÁËìî¥ù—Å^Ú~yá•ýÑMF6úWá®"8¹-veþ&z|®Ñ£i$¶ÙÍ·ëQÆŠì† %kBƒB³¬îÛkÔñ\²z„¬>ßTB»œÍÿ%d 1˜þ ,¢ŸÜT½4=ÄUR±VÂaM¶çb» ß@äX<¶ÌAÊ=Í*P]1î(¶P"‰Á“›U.»4=FãXqM|Çs7l8»Ýü…åE,G-ªcK­#wÛ_ÊÔ¨ «Ã¡0Ûoñ¥ù1LF=p1-Bö<-°ú¥õñ sΚ xð>%‡“gg_Z_ƒÈt™µ–«ÎFÊ8{8´<Ä2ŒLj¦ÈFC–ÌRâ^Ž´ "ÑŠ°·PK \™¹²¾€ñ0&Û£Lb‹Ø5«öØÓr&Ã:ó½8O%¤YòÆKË Ø‘f‚èÔ ¥×O‘÷š^FŽx[4ÚÒ9PQfš®FâF4¥®à[å#ÏñlWã•屪i*i"£Z¶ÓÀ‹KËcÌ`¢œK šÙèrݘV#1h~h¥\˾Äf/ȳã|dLØåk–NÅU!©]°¸™< ·Ø^ÅŠ˜ ì\³FS¿¨™ýþQ–‘">#&X-e›Ë,ƒÇåCœˆw¡X0lv³Ô)׆—Q"’KöZª›ÎW¼Éû®cDÔ%Zc´ N+’YŒÈgË/‰ùlt"$i¨N.˜\â¦ru"¹ËG4¨Ð¶¾Œ ˆ®7FA—jÞju ⬾0cÔy›¨¡aÓB¹… 0 ÷¬¥5èž•º<·ýr¨ÏVoaB*ùª‘¡kÂë}Ïöà\™OäÞEl½/¤%»ßä0ñ ‹–†5G_3É6O7î ?â‰Ù™º„묶Åg‹ Xï’ÄZ¬Ó²â¶ý›_ r2¿ŒITu]´Ò|EÍÎ6͵EHˆI#FhÃ,HïÙè*¤´{Þá´¬°Éµ¯b4„HÀScC¦á,”çÚðjr§GÐrÛ&èÿ·1Ægè#޶©36PÎ*ª<[]BgtÕ gÁCÁjꦵ<'ê¢Aî}z­š•k}`Õ€RŒÜ˘haV@åÒìê[/Z½ØŠÙëßV ­ t±Ž1eñ$i×ãXÇ3Äh¤+a—¨‹gZÊ÷y€•Þ}­BSÊTueÑ,õijéÕÎ}jUú©bJ´uƒvµoŸÉ¦ˆäÄWCÞT­uíSÓ:Î'«ÓÛÆ¶­8_íÙgŒœ³XKÝ~÷;ö=WjólœÑDtSYwcë%‹ÅPu i±R¦e O¦W:,µ,‰Î ÍÑo[4ËVu–¬–?!8æbÌé°òµkS^»6_»6oþ„׮ͨ®Í ¯ÍŠg×ÿÖ›’ûQ«âOì¿÷ôkt+­ã[„„ÐBr¬©\#W¬Å¢i®kœ0Ìu+v ƒÿ’ûçö«yáƒíñ\õ ›Ñ¥þv÷øácz{÷¿Ç¶µï¾ùæ¼³±÷/~ê@<Ê$ô¦DµVß¿Kw÷æðí?ý÷Ç÷þE²9}úÃQ;A¯J÷ß|¼x¼û›¾þôÛÏWþõÓ•¿Ã>ÃhíUŸ!ÓyÃÀUŸ¡5Z:ë.ú {µì<†³>CöÖKg~ÔgxšÓ|žøW=s§¿ÿž{ {Ú^Q…/Ÿ×Ë*D0x°7÷ö;ÛÐaø­^?Ã~^µ„·ZVæ–äÙ´sã· „ Ææ‚÷Nkú\g w/ÆøP¿×4BçÜpç5;â$b÷¥urg©ÛÆQ~xÔq?”GMŠ+Ö–~Š0»Ö­/o;4Vœ0¶"-Ìr›?‘%)¬µq)ý@))“›>ç†çˆ5mŽÒ{õ¤ƒ|-nx¥ ­¨¡Rî»Ü¹süOîùœßö½á‡7ïïG烈äõa€p€³Ç´çÖõsÿo e÷ÑgõÖµ¾÷à7O¿%¦`'š(xÏñHŒµã®Ç­¡•HldÉÜõ]'·gÎí.W7±É‘Õ8U[ßBÞëLÖI¡ÖˆD%A@“à烬œèRÊι5]ó³,ÚgØ<Áz«” ‹sÓçÝîMrBW€ôÖÙÉýïó;^;¡n šœT…lÜ{žÛ7™²óµ0 ÚÓŽ·y nw'ºsÌÍiìIeGäyswD’¿ŠÏC¨½7úZs ³íÊçæk-Qµeƒ®%ŽÇF¶ÉíÂs»KM‰{ñ\r1Xöćþ¸G!`Y¢m³MS×1~±ƒÀwæºZ+i&µaYž¦á˜É£Yìý M<‚ù´(OèlW¯ÏÞ¤ªi_+×úíÝoŒ’[1\BŠ ³¤—ÏcÜÖˆÇi N¥%n7ë­Ô FÔ‰€ß1ãNÑ@?¾»{{·Ðß@¹z„È´a½,Ÿ8ƒú[‡b[±ºV`Gø¶‰ÆL ÑuæÍr%]†Èõ~æ ^“¨ÐE/³äKAxQÂ%€æ°ƒÑf;Ÿgá·H«¦9-–‡}©ú¾êª¯´-±hít€Zz3½N`Tk\¥ ØdL¶\”2@ûö“r}sMl¸ÅÝuª¤Hˆe¹Àž—/ "ÅHÍáqvÉyßSl¼ß¬Ú©c®ž~Y¼v°’ Þ^¯›Å²ÔÌCÇJH LúùÞ^Ñ$>I(iË÷?ã|Ñd1ÐÌÄR…íMø9šs¥RÂÆ’uL ½¹7•ï%O!Z)¬ÑœíÙ›0å$fºe@8[}Ía HœL—3¬š¤ƒX0øÞª”cs“Št²‰·’Ö‰õc«³äØ–¢Ú–ÉU“!{ˆ^AwãÅ©¹žî¼%Є0·ÅØÞ¦ÏS=‘ÖæDDˆû¢À„KxñLŽ1è Ú= 5[%nŠÉ %ÉÙT%²"jqn uè¯#´G,E  t8'˜© -}ˆ4:š(ºK[N£¦SµtÙ+Y=ÁYã70òêg«S³ ÄÛX'9EiQìÍ •ŠL¡wà=áòÞžo8M³Ý‚J\Í•}T˜mo7 #®…»ô6¯¯[„"б5"ÔXœ6¹3-3¥'„£ÉgN×›_ÀY¶xÕ$åÎa 4?«pDÇ&ÌûÖÛ«P,q#UéM´?Ýý¸IíRU#£ h‡æÌ*ÁˇgÇñv½{wûÐZßdB Š«=kÐÐÛsè4Œ»&ÆsÎ’7Jäï¼28@ùæ€æ…M[3ÈÒF“ÐùUK„´¬k!&`œ«‘ÖÖÌI_»Î:‡TK$ Gl \^rSL¾zÇ‚ìIj›E1÷“­Ç¢LªZE ;–nÁv¿tMÅÉjFGÛ£hç¸F¯Ìm{§›ÖÒø f #"³d² kTl½x"GŠ)È×¾u)Ò8Ÿ“oTÕÞBzåÎÌ×ÏÃOÉÆ+c|òµ8Aœ%ŽD‡š +{¬ÜR“óϽzÑ'²)¡\ˆN“í¶œvŽ‹6ót¡†•Hvb4µÈêF³òÓÌfO!åL8¬äŒyäºêòJ#§®ì-Þm07 Š ¾™4ãH~¡WâhÜ¥I§ÐdôÆÕ¬tîmTtL°&õ µ§ T¾íî²Ý"ÁÄú°m‡á#¹z2Ü!;I °$uÉú·£½’[ól¼äØÂd ÏéÄð\Õ—E2K’4öŠÄ¼dBÛ›¦ò¼šr†Ïgo—ù㌀¦¶P̈քP€Y‚2Ï5?¨<'ˆTtÆô6$|vµ_¥Ð°íçÚ¬‹ä£µ…/¯lC—³ªÞÄšU œ |;;`³fd£´³…’Õ ö6[z1x[òJ$¾”®H C±ýÎ^·^Æ S°Fn`¶ð¼~T­¨ Çd(Õ’¿<³a¦…ƒÒP—.ÓïKß·yFCI²&…5kÕ«ˆÊr¦3w@$Çš$…K”êÈaÚ嫇غ©!Ol¼UtZ}¦·ðód¦Û7øtl¸Ÿ:—Æ9ÚŒqJ‰.zté\f.5[â#•ZÇEp0Vfâ6F.ÙÆ}Ò/*+áBä²lÛÍ”M†¤½MVWçˆXŽB~Ànýs¹ßÜÜ·8¼ Eq¨¨91²WŠòsøj®[^¶€X| Äù¯fúžYK|2j¢•ޝ&¾ûTu&&"Ö˜“õô„\ph¦•+ŠÓè”W¡A£XÇsJ,ä ¸½ŸN)i[–ÜMŸ‘dÂüpýnа$ú8[©ÊÒ:I+ð´ÈÁ@ˆ¶ìÖ ÷u‰’ ëÜs<Ñw¸Û¬›É*‰¤ˆÅmõÀ¦¤ÙÞ¹H(3ÔœâR_;ANUºjªôÜ–„ÁgzÔ©€‰Îµqäb\ îîk˜µ¹DA6ÈBLj$‹i"#”½A&\™ïQX9™q€I™B暘|ñ¾WÂo‘Û)›]ÓñÆ:„¨´Û{õö¦¢ÔSwÊ)9MòqD)Êë5]A]øŽoe\Iôí¿u$l.1ÅêŒÈa{µ<¡†k͸—>‰ËgVɶä0nš÷¦.cÉU‹ íþÌšù^›«|]ƒ$÷f‡6þc âFµŒ¯P‘Ȭ§ƒÅ×>K’S–×ïn[·y!†är6&æLäaqf¶m!ûBœ!X™-Â2ÔyNPIÒ©á¡ù®2 \àȦƒ1ÕÚl¨@VdI%Âafâ $ò¼18+¢Z’Õ¥Pw2¦Ö€K²!Ïè\sN‘I4)dPS·$òé¤p±a뭅̆|¢ ‡h½Àhªå%–À¢}µBdéûÑ”\BQpS®ð}ˬ8Ï…6È™#„xܲK‘«M)ùj»¾]·1~•©&SPjdç3xôg"øAW$Hò ²WËéÉÎÎè“&Ë鸅cÀí›F®º&z·ÆhíFú!¢†s²³Ý•kÜ`3m¹»TÒ‘Ý­ä(Ì Zß— ,DµAÊÉ%-q“â”^[ZŪ¤P•#Üm1¢0¥Ò#ä6ŒRv(U\¥«ø°Ý6룪::§‚¢cÅç?Ù:&%ðÆ‚ÖToÌeþ/ÿ]›ë«hsNö=‹"íÿr?Í{ù¨+©å٦߸ðâ \ÿ÷Ó6ßE¾šƒü.D¾>ö*©|—ø:øüo]âëQ˜çÛª|ˆ¡€F Ø,f]EYj$úï°4xèVùzÔëúŸý7\=Êcm{õ¾Ž´¾ggûØx”e—VäÊv¯ÓusÇСÜÑžÚîu¸þýa÷v½ÙþùÕO¿öâñ¶«ŸÖ›÷x›·«?Üîþ²{úÿ­·y/õ‡ëÝ_^í?½-eõæa»y³Ý¤Ç¥}óÿûŸýÛO?îuÇÈÚ”U¦%&»÷úŸHùKÀ‰ò—ö3F­eÎìä‘ò—r–h©‚p ý¥¼VΉÃb½óÚ_k~1ù¯ûÛO¿¶ô×_Ëûr»~Ç;óÍçÝÿËÿÉ/_Y ª5gìò_Â(œ9ö¯mÈÞr‘|xúÈÃãÛ-æ­‡~¼â)ìúÔÙ”¸§™—Îé×ä,„T;tÔov7xû߸ɴ)~þ±ìZ¯c¾Xôö™5|]H߇3{NìíÇ®óîü‡Þ’¯8ÿ©®³*%¨«óÿ±óGšÜ[×hü±®Ñtßhºo´¾ÁºÆ‚®± k¬Ð5Vèëê7×}Ѷ«Gï´ýmØü)BòH0ÆÜaÚ¬·¯O€ý·æŸî¶-vqc=üÜT2‰UïB'kÖ!øà‘þœ,ºE8 (J·xfŸîâúvõäè¶«?§{zùí¿ôòŒ§±¶û±¶ZmÒ^!¸>ܧÝ~X&ïqsƒ‘üÊŸVoɳ¬žóêæþq%yLÜí^>¯vkÖ¾{½Ú«?/'‘â ÷ÚÃ{fûŠIÅþïwô4rOćÉÅß±õÍý5}â`¼X*³Zÿw7ûŸ>q¥Gb»]­v['«uå‘_1©ÕnC3¡ã7Y~¡Çï±-ÏC¾~õ÷§±™‡Ñøsÿ˜U—t³ôò>šW<$½Iùˆi÷ü¶Ïÿ”'àÃÛš{úȧՇòù«•üzuøÜ§‡¾šzè/Ï»¹§o°§j›B˜ÿù™[^ÞÛ5Ín_ÝBzš¢ç=°z”cµèOû¿zÕý§·Œ‘óóÚ>ÀWHÀíúž÷Èê–q?º¿AbäE«E³•×ôî×»ÕõÔÞÑìÞânÿŒÇ)~õáæövõa½ùyÉîhÜ-Û†×4y¿{: î˜Î*!å´µT”PGlÖ ©Ø.ËÙÌLf™,[Õ7–÷„“ñÿ$¬ylÜàõõ(•}9i ² Àç ôó؃û7\ß„E§UghÕ7Àqïñž\~Û@±4–Ì«·6H©È"‰Œ”Z³ÅÔ¬ŠÝâŸaÏûá3ÂàXïÞ˜½c‰”þðñO/ÁǪ̂ÿTíN½ž´á°?ßiûédŽÜžÎ{m¼?p|RV£²jÞõqŸ¶ëﮉC"€7èúÚSv¡>„oÂù¿ç·[ÐËá®è)cåéégZŒºœmˆ9¦}/ÆÎ”µç¡ûrœ W¾¸PG­coÚÐó3:”1<°R´2*%¾·´ãù—nÝðbrÎi)`¤™‰…UèCV½Š2§™É5UYÖœB NJY{›¦Ÿ>`:sXZYS־ƶôæ²îÏ™´D¨*Z¬*ä™þ[¼¸çj%*Ò” d“ѕڙ/÷òtÍæãrsàd¸Õ¤Ï²ô6Ž8]‚v½8 EÖ¢¹÷"öÖ/¿Ü¦gÕÃb%™ZPJ+ÔÈLµõ·ù®Ü¹L„S½•}KuN¹x¨’ñ4Me„ÑFjry¹[8øYed/YÄ„l%Ä^!†cO0¯|“Tñ„Ƹþ;«¥žàk«Ð·Lö„L‹©":ŵ¨P]íL;n¹å Ÿœ"÷øðÊ î×T/p4¦UÌMa×f¼NΕ…ü|QLdmˆIÄê{‹šø¢YÔ4"Qhòf5„A#À µ7ÕÀBÇÙ%ɈÎT«e‘ÎgŒ½z›‡_à|­‰eÕ3‹2ZbBb¡[hŸ¾ý@Åæzˆ Ž3þmPYùÞ¦&ÇkÝ®½Óš›Ð–ë•]êÜ:Ú¯Ea£€´(ºóò_LÓœ4|´ª&Y¹§:‡:èæt©|´Ð¢ÈhÈÆ¦Å®º¹¤¡š’m"£B¯¨ÆÉ’N©ªVëYT™©wZôöàhÏÈ´FN´¶ž ¢œ¬¾·¤àðMèÆ( M¸ALÅ^Ù¥—fz¾"’­’-¡[Òòx¦ÊܸK†£ý’…ÖN ÚþIOShº¡G‘#kŸЉºÂM&š t·ˆû‰ùlµŸP¶¨"Øü{ò0€¥'ÔÄ…( cÁL/\âà–™ë±'«"@mF™ê…àdRG4Ð&LÑÓnqÖÃRO5«Ë)rõûrHžµ­—OöUò_ÂÙ‰ê6§$ ç[Ý[{„=Úzh1[$K•¤¡˜/ú´L!y£"Ù“ˆ–Ʀ‹qѦÀºe)k×4$3òy¢*%ç,UÙ^mé,Å9[¤ªÕ†¤zë6JÓ9°‚Á 5Š^E´6†ŸQ<· «¹gz’”£Ñ£‹K¿˜ù™>(E3¢d^ú;ßž>áâÂó&q¦~VD­hËòB)dÿ!Ú¶f_Ò2k,K­<±…Q+6Ýï#ÅÌ–€Œd¥9H6ÛÝ6Kôd«öÙùdz[Ä9èá·êT‰˜èrL±Wžvú¨MµO&Ç—“¬^‚Ó°ðÛœiúÞq#Uk˜¬™¥ñ, .:WÀÕÞkšW›fOM¢„Á! jP ÔŠЧÿ^õq½‡eœ{V™Ð¦È-À¬áÇ“NÜ›“¸Y 2º:“«MÖ÷‹†zÿî㟈rñ$QôÁˆ_|0‡ºÉØ[>X‰)MzÖÜĹïul¦2Ýb(Ì:{^·%2±Ú fœõýtZ€>"Œ6Dж-Ÿtœû—Eq+(kq½¶¿¸n~{³¯øîןò«Ödâ^$°ÁÚ^oß…ƒJÞò)[ qÊìjií9uر5§ª+ÔUl%pLç¢}ߎ.Lô­¢^¿7>.V›>Ÿë:‰Yç£æ)[k(yFk̃“ô)vÅæïöËyÓYÁPœC]9J­Ý&Nèè‡w~~óqÔrNi¯^<ƒ@áYŸÕÇ÷(y„ Š‰… Bñ¨4wÖ‚ûAïæØ6Ö^ùä.quŽð… qw#¿Êùu¹£§m!An¬W¶°Û¼ðËë÷†qÌ÷¹üê5˜!’Û°¼B9ª·Å¬ž5¢yg7KĽz1|F 0YöõW¬Ö„¿˜‰ÈY[§Ÿ¥ŽÀ”ÓøX¦ ¹”Ýbú§¾Ñ·CÓ=Ðè¨`Ó—áÌsÆ]Foºù Šó=EWâjx¾Í\¥þò:ËÏtof 1D…VuÖsePÖ»Sç*¨t"f›ÛÝY€ñ`™‰CŸè×½:ózååËRªdÝÔÒÄ—U$>éxl °Á€Ó´¹^Ö-e\a:¢ ¢|4Øl*Ðä¹ùgQŠÁå¾:|ç‘÷6‰á¯ž$ ?á?îþýŸÆ\ÛÿyC^Ð5ãSˆøêœñ—sÎ(µñÇ7þ•â¶P0ù.o+ÙVM^” : NsYÍEz½b Ûzh]¤SU|óß?½Ö× ÀëNÿ¦ Óþ—þô›¿úM¨êY*iÿ{¯ïõöá½î~»×w)ñ44ÅÓˆ§aÁG÷@<-ô#y {£œ‰¯ü/nUC?­êÿÛ¡˲iÂù‡MÙ´ñ{Ù4ñ‘-üßǸñ8ý|þv´lÚ+þðà ¢WSfòñû‰Oµ7W¢ÿŸ>õêºýùƒ—DèUÕÇ|ù¡7üó‡wW)óÇWïÞ¿¾þ¡^>¼þxý±ww¯^ËÛëÏÝ]æò_M~fæÁÞìê±NÜï·µ;ûÁo?-ò›C£û¿ï­d'íd-VS}&«Ì¯Fž<˜ý|¯Ë‰seª’­Î¦6«$öùòçQðÖ´œ2Ä ÍZð>¾öQ±Æ¤.I¢Oû@è¬ùøç«Ï03ç”ißë­íÜâz> õñë›õÙcl\'ëAßïYC¿£ÞZš¾[q¶løbƒ…‚%ý3‡ÉÂýã;\w•§l ëÅA 1§Ù‰ëÇ÷—¶¢©$½±ÛÙºâãk_×’É`£z‹Í6ŸÞ®¨«ï¬4( g{ žü€³ÆÙhÈ2×â’K-†ÉòßàùO5+Ð}D,11óì èxU]Œ.ƒqdXߊî?b³bÏÇNÉšì€<{ïû™ÓÞµæÊX"0h~`×2ÌžS~¾øñwÖ¯k]C׊ò²Yñ”qÌ8›åv9xï?Þ ´Y©¦'‹ö¼ XŸ<‘oºz‹²^ gúaQ’uÆ“P_=cCu6! @bòAj ³(Ã-7œ~ȵ æn#Jãz“ÒÖ³¹ãWùΡ®$¡dðŢϋoøl ¬¾N6PÄø˜i¸Lj¸6H=/„Þ*a,®ɦƑ±«ñˆK¡ÎªI>È'"ƒ)—®Ö„¥Ÿ“3Ù/õùêÇ^’‰%›j°•6å—ÒÚ||Ÿq«ë²jbrmÙðtóÈãkÌ£+Š«•›÷&Sk³s7~Ü`]‹w&h6¬9VË‹ÉýKÈ]>~Í“rS@Õ».Z¶¸¸ÏÅ"À Öè é*Ñó,Øy(’ƒn~fIäiZDãé=.äÀÉ8̓6YÒeC³}‚·Ñ`FÑF +­²ŽÅŹ ,¦$מ5Xxª‹`ú¢eÖùÒjsJ*[r¥m¾ö˹tE ¥xv¢x]Ò*-»m8VÉWd…Ä(ú[ý|Ì1q:–PÞ‘õÕ'_ÁÊlÏßM`º’T—˜D¡PvÊB4é,BÆc¹™ä…#4fÛynîÀ+5OcÐk¾äšqŠÛÄY—ºj"MqºR‚!ˬRÞ(ÖÎz‘@ÖÅlô_”Íäv¦Y!&ŠJ“ åíâ®›G“@︟õ– ‚<žó­Æx J“BŠÕàw!9jtö^ã£ùšVã÷µ6¸”¢äN˜hV»hDîåò²â¹ZŒ÷ Í Ï<|­#þ¢ÙŒ“qÕ!³™G~²à䋜%fI1@oñÞܵ/.Søø/."øøG`5C²R7ÅH›ôú|ìÒ*ÔeŒ]+³=aC ¡‰Vó ·ÜlŸxؾÓpðO ¥äRQ.c5›øKÖd¾Ã¡£@íB¿]æº —YmôÛ‡?ö¸êØ¡%ŸŠâ÷Õc¥a!PãCêŠèâÑu}Úõ¯zà:}Bµ"Yå ì"¸ºƒå® eJµÆTt³Z/£-t ¤%Õ+Çh…šÔf(Fçxn#!UWc0÷vÏ jGËœ ‹)Ð ÈRJ^ˆWÓ”4#2Ç‚¡Í h=ȽCC]A¿°ÐVÜ­ÆHZ9Jâ°y‰Í*ÕØ€—nF KØJ Ö l2.†È/&Úødí e¹¢h&t$ÞH ÕoÒ¢ÑU[h°‰ì®æ¦)Ù ˆ\#WÓÆÊ?ŸHè-rPÜmnVü¡q tp£ ³—ób›½óÅCÂjWe6žõÑÇMTx.«ãø‡ª{¬ûUÔÕ‚¹¡[rJ B@ëª_=Äþ}qQt¿#êhv¡ î¯#‚àÝ:É…|)yJÙwÁwX.8‹5û®È¶&'«YñT¯ZCTv•j£´z²5#z L…YsºUžË»ÍF†‡€Š3÷œƒáF˜6*Ugz|!w¥Ð ³)³Vn7EªD.½n¤¹«°ÎYI÷ǵµaÐ Î&Ó°¶œ7ù©Ëy‚Ô²ÉÊνFgÚ®Ž\ùó)O†¬ørN³’®ƒ <Öë©Y—>ÌPœB gwžë!6"K­Š††#m† ±¤ Óü¥(®jäé§~‹9ìx¥öcbÓå]±™Ô6{Ž6,2çÚZ¨ £ÙdˆÇ£›‚¨|ßZ”Á*ì¼Rö>ïÁ£¥ÆíFÎwÿøõû:AE=!PUÚ"v÷ÄãD Û+œªúô=‰B»Ýy$¬VX"h‚i¸ÛnCЉ]…~qƒ¾¸Ø·õA‹—Ôæ;KYwÌì(T;´¡W`i¢ÌecåLn«ÄR\?ýýØl³câXïÒ5LŠj!Åî÷´»ƒO:3¸@&Òë—¨ÜcÖmþñ \ZÃfLŸ¬™ÛAþc§ùÔq-˜PÀ÷Á…ç4Fò÷£•-@Ö)v‘»~õú‰ÙQ-<mG¶p“Ù«F<áç Ù]Ze&ßmkB 2´™Ðn—Æ×£ŽC„|]k¥?F\?üú©Ýè@Â\©V½¦„^_Ý)’ Û<”õCpå{–Üæ³9ñ{S(›^ËŽ¢ z±mèܲ»I!ÌâKÈ}qwdíÂ7Ï뎆¢DR †Iu31üÖøôúŽGËK·Ä‚ЪoÝcóDðЫÒöŠ¿22)•Òvlšs/êgÕg×L ú¼¶ªgç>çX=ÏUÝ›¿æeõ$GìÐ.¤JWhêCnN˜y³•îD»ßÕˆM šcoꬱÄèfìe_kŠ•Œ “Ç%Ÿ‡1ó«$æWIÌç~úý_Oó?ÿù–‡ßÜ}‡EÌÑþùYsÑÛwïÿ¦›¶kÙÝ=ýx)öûEøý]ß"O¿ÇU`ûXê/Oÿ?€+Zýæ—·8üÝzË«{êÌßݽû޾ý·oÉÉkÍÇO^͋ȇ~ §“úm_U×ì«êÚç½þrªk_Ujo>ÿgW©ý¤?ü¯T©5Q$ØÆºÛ‚¯búÀ0%(]õ!"ÜW©ýÛ7ú¢x÷ñÃ7üÓ¯ßÜ+‰þÜGCë³ôh¯úž ¦¿Ô³!Üž¢„g£5ö¡ð,vSÄ7³ƒIæ¶iúJxö³Pöÿ/áÙ‚›²³ãÇõB²³d8ü}ÌÍŽ“È’êùoÿÏ2c<æ¸Ç+G]ÖgW!MA©÷c®Ýç¸Å rö•m.‘bs³•·Æ×ZZ“”¹‡.…S­Ó³‰ÆQw7,Á϶™Ï8Xô6›£çf—¯ü‡yô¼|×䨴n¬Ê•“d2º2Á&ØôΙh­“K!³h+51O`šæjÑWâ­›mäx²‡íÔ{'»îX’w[ÏÇݫҌ8)J2ÕšÍut.øŒÀÕ:,©Â²MÛT;»ë‚^úOK1è~{†cìa÷H³ä¸b|qÙ¯:=ÿ Î'Ùa,.”©(Œû¡hÙô¶;‰áÖ|í{[`ܵǞҫ2pSN )İìT~¥è}Wú-}^ÔÏv6 ­¦†bC½Y@t@qm5€œŽs·>ë“W:RCUìœu˜,È65¨ThÕhwA"Îön`ý1Y#›6°ãf$ ë™»Q¶$¥ «†Ó‡3‘Œ@êæs³ã¹OÜ·_¾…°…G‡Á¦YýêE‰‘B°°i w©›§ßÚKÕ ¦¾·kÊx¬T‚Rj,¦k¾[ûòî²{âk>¤E‘|‘îa›3ÕÙ¦ò§ûìBWÒ:ã«$ŠU̪籬m}qççþœÖ®{¨æ¼Ï€•œ>™êÚ&„¼hÙ*’»øLˆºÕºrØæ£ÁYì±ÿß¾%lÒµB¢çf[ÖÏ"ôA7swáíâ§}¥VE³øËnf›CŠäô?èâ¬gÀƒü>ÖÁk²>:ròlÏË(<É4Щĭ²Ÿm†_·m±D_Pª ’uÇm‚ù±x6ò'çJt›ûZà[rŠ…X·[¶^6ÚIKO ±6‹."ŒfçûÏLCe©iZSŒ óþÖûY£_4ž(Ó‡eÀA‹Ùëòvê™é¿ÉœSn”îÖhwí¶_\?ññ ÎôNõÒš9±DDñßbHÿBîÛ—’F1B’¬9{¯X\¼üµJ+&WØ©µsÍÕÌìÜ r?Ñ¥ªAIÞµc>õ4]<º8©QJâg‡­oK{/)[üø«…Ï•³ ¢H@$Z^ÌÌSM€–š’ï½?Ù ]Ìg¶ Þט,R¦B.톄£‰é×ö]İáj:ø•ã”ùÒBÔ·?àÀpÂa+Et×ñ› òDƒËxR¼XKpÝçfµ841'‹A‘Fò¤òfÑæÅÕ~Ï¡õQϹæ_r¼rñ®®Ýëx`ÊWßiÖèßUZ7Òa- ¸®äÈÚÊyq\ý{W¶#Gneßë+ò©Ñl‰ûâöÃ,` ̼Œ{€y.yɪDWUj2³Ô’¿Þ—¹H¹0"T©%ËÕ@ Z²‘\î=ç’<§@i,ÁÀ™Ý1vAŸcö¢a!XBTŸw¦®ÒÄd¹Ï'E `]ç³F.LÑ :æ ÞÆV)™ËLÜ"fV"—–B´®ùNÍU„¹­ÏËD¡r²Ìå^ðð¬,WUºçôÛ:™ýõ‹Z‡ÌrF‹J ê Ú·—Êý@>â"d«´Àt”IQP/Qbg“Çë{@ãš|¢EŸ­NÆÚÜjÿVãñÃ’Ž¨™!(åiAI ­WªO¿F]øS'e¢–:Û̸p3£ÙÈ=|-©‚M:Ò3£ûÄ]=FÁ…sjYx¦t«×Í ®¦‹ž ægq½ºyG`ET¹ØÆ±žõR¿7—#)Nß³(›¥Ñj ©~GS¤ÓiIzÍZÅ8®wíÖRpÊ &xŽÜ[ýÊ®¢_õH¹¤®TtLÅ€RõB‹a󙕱*8Ô‰Ó’ïÀ¾Ón«h‹í¼ ÆæhÌܺcµ^4âa¹ŠèY[° uç–ѨA o òd^«¿^ r ©;gFÕj¥`l¶ÄŒH@³*—nfMÉßX¦)BP!zO³3 lCD™—Mx©ãÜÔ3*À‡‰qMÌ–Åì]öÙ0×jX3´ÿT—Mˆ,GŽÖ4WsºLÜîORR~Ž8~)…tbÈ6UÎ|̴Тõ™'ÛufgÄ[8ã•P}9šËg.á*¢vŒRž;”BhÞ“v§uD‘!aírI@²¾3׌š”mdBgY£v\êù;ù#vMÑ¥VT½yì-ˆTµJ£5ÁYšö%4ÛVM—ë 3¨Ì!=!•”mÑ¥á¡÷¬]“7²'"Ë *[„¥xëã“!xÖ;äç}4"«ã°p~!(/Ýlu=¿Æµ¦ [Iì§è:×9ï§nzã¢+Ú̺Öè©dNºÛÇTÔ±½- Œ±Þcv£·‹CÀHðǤI¤ììØ6îH”šhO‹ÀgÏczèá"%ZºVˆ,ˆðÏ\b_L¾Öûu¸žTæFK´Fꀽ[cƒÆ¨©˜ ^KëZ­¯O§ç€¡òrx¨0ÄÉgöû„EÎŽøsÖÚX–ÅÜãm“‚è%ü@‹–X¿í,P(ñ;0”©´ä&•¾`¿M¨Dë8£÷,'1÷(q“ê&¢‰ï%É‹oYg©n@[‡²çÉ)oÙVçáúvÍ ~d"˜.% ¸v’wçØ ÿz†" CΔœ{ˆë´6ìDKl@ðb…I+Û‘å§ìa¹$Gs7&]ÌŒF_ÂÁzŒ Ô•-1 zeQ;ß*ñr^ý­jˆh¦­fÊJ&ˆ™!oÊš”H^ñ~Œ”àmä]%§áT™þ*†$Tn•°ºì{ŒÕÊ€–D }ä„¥™13û{ÂFšçl}‚LÜ4a¬ÏXºÆ5ˆål¢7àÄ[æëˆ~û°¼¯òL\ié2—FrïTç7©_“ɺˆDØy«~ÛÕÒV‡ÙíÑË›Rêg¡kão\\ÜJt´”P¤V¿ðZø²ACƒ¬¢fçëÚ)•çõ?»ƒö•Þré8šµ3&v ¹ºérôA¹ä˜Ì ÖÝe¦1[Õ(€0Џ¸L]™e öé$½ºAd1ãî=h3à+Cü4°„ž°¨WLt6Þ¨G€:ꔵ-; U¯o8EލÌjŸêl”àJ´Ê‡]ã÷Ýß×¾I—êÅZ µF¾ T’gVs „'"oèÃØÕáHH¤ÒkŠ~©Yc­Zó~³YåíC§"‡²Ò"J°s†k”²èbj€It2žýt±œ|(C6sÝɆŒÄ 3Âzæ8>+N û'£ÓÉ%EPÕ'lB»zÈÀÉ™(‚AE™çn´žŽu Ê"Í(-rË µÚ Õ¹`ÕŸCÐu6ËàeÓV[šk0¬ÓˆÞdÊ/´Ò÷žXðVT‚qÊQcŒ 碘½Õä‘;ǘ02°8·ƒ¦EKmR¹ïˆ-çN?áîhf²Ìh€²æ­îW‘»ºM^OÙÆ+ Ýa¨jÿÁ‘2ȺoÕ6Y ›D©“ËŒ‚™Jýßc@*‘UiAƒTA‡Þ«O#îOV@ÐZeÎ߯1 S’Kn³â\'‹sÛþt´¡ªò\‚ƒËRª"?;w“{Âÿ…´ eà-…‰ÎT=«§,(é I¿”θP÷ ‹ÆóèTÖ9Vå=zæR$P"S·dê—Η~VÍÔ£L%5½è¾è~î§×ߟè¿ýíìýYÛú›ýÍD11¥M]êE­ðäóߺZá^°ìkŠXA“EȳÆ,XÈž[ŒÜúr—Mfo#BÕ,Vø_¥GŽJ…{ÕÀfYÂýÏîûf±ï›ÍN•pQÔèãèÏðˆ‹åCÉ”éfÔæU‘'ü×§íÝj½ùãÍÿíTÚÛ,~^­ßÁ=n?ÜoÚþð/« î¸Ýþt³ûô&¥Åë§Íúõf÷ûúßÿç?þü—Ÿÿº ‰±x üº@` ¯¾ADÂfüBQžI\"jCìÈ2w&ˆH|¯Ü pæDQ8ââÊž µNI"îGü™ï?üÖjˆNïÒýêm™•¯?ÎüOÿ|þ#Ÿ”3¥¯¸ 4+—âˆÕŽ{eDAiÏoeü©S«é‘VPhÞ¿ÝlÌ\{èû7¥ ›>5Y.=|L}]œNì ÄzëíîÿÖH“â—¿¦míuÔgƒÉï}ü6¸Ù²bïßÿá§TÒéCw”0¦?Õ´V97âÍôÂß}lzISŽkj­|¬©5ÙÖšlk­­±¦¶LS[¦©-ßÔ–ohëÍ=¬oÛŠ)oöÙiómÄü!N²çË<@\¯6¯.°ýצ65‚Q6Gú-(†ôBi)RÅ¢‹Öé ³NÖ)áAšh¥aÎIÕD1ŽÄâÃCXÝ/©n³ø‘ˆÝáå7¿k¥‡¶6»¶6¿_lžâÝ6‹üô·»f ×xë%Ê,¿_ÜQnYs³|Üei¶[ —ÇÅvµØÞ¥‡W‹Ÿï–›#j^ÄÕ#Ñjo[t×÷¯~|Û›Â-¶×zì…cüe±—·ô‰“öBÊ…ŒÐ x»Üýë2íÙíf±zÚnž,V¹´|sF¨Û5ñ@âCço²8ýBûï±IÇ&_Ýü÷¡í£HüÈGxÜáozÏÅ®ô‡‹Ò$½Izq{|Ûã–øõnI}Où°ø5}üj _-NŸ{xèÍÐC?=oùHß`ÇØÖ‰àÿñ™›2¼÷+ê1ØÜ<F:tÑq,öûÔ@ø°ûûëî>Þ”ŒÇ±=@À GÀfõXæÈâ¾P€ÒèîÂHÁ^4ZÔ[¸¢¯ð¸Ú.nŸ€Àö–†`{ÛÝ3ö]|óëòþ~ñëjýK'¡ÝR»›^QçýÓ³Z¥/X­W§©/X-gZ9mÎHm [Þ³JKãÜ©R|Ðîãêë“è{ÁËöøù蘆a ··½„öºÛžÎ ch2÷±Ù“û {;_…K¿« rõMŒß¾¿‰¹A°"D h¬L™…6̰`“c=~ÍÓ(RÇ”ŠžŠÎ1#óÅ:#ÏÊ… ”Ìžy ²™]ü_zhÒ+ 'm]`Ù@ã½ä³G K(Ópw:e0Þ†žpI2Úá,e™,°î:4Þ&Áœ‰:äÎt @“z™UJù”Ž„ƒF †³‰:&o¥=W‘¡ >xnFŒ˜öÌ4ÂÚš@¨|«‹ÝYU H}¶²(÷1F«×6^¾9mv@‘1g©h0³âÌh«¯˜Ÿ½oÕS+1šä1ð@@"©VÍã³®^T˜,Êìv^fqÎúlð*ˆÜƒ‘•‚èïèŒi¨ _Ê÷`¦Õ[érn4®)v•ëˆÚ0®X«‚di|DÛ “¡qLƒuÊðŽ 2îªÇMtFÈH0BãýÆÓö¿”ÚʱcÌ9½µq ´ÊÚ¤Vg©³9^½Â'Š(0êÌ=× Xã…ÒÓvé÷%F¯Z–È"KJnV”>§ý1Ë™2ÌgY2²ÕIäô­ŸÕ`kS!Aï)‹×­V6—Ñ¿îÒEÍFYdê8ÄÄqFâúZYÇé;­¯mŒd9[Ô"‚3–xƒì)ºPT´5—œ Õ*™r–b†ï.—ëÁ8¡¢“Ò@ãøóž©][æ1aÐd.ZmWÏ–öúPRD tªUÁ¶4=mðÅA±rÜ;)Aõtõ¨84£ *—‹ûœ†µ7TWos”Æg"'™xÏŒ8ê»+ÊuD yn½´|A¥ž£Ìë‘i-;º{Ü´½²A¸ˆŠûr}A®Û!ý|/Í;ÆYl•Á=öó€féuV:—[í¯Nûa@ÂT ³%féxÒ3ës{¼]Ãçv«äïIcí+x.\ N$žz¼‡p:¬Û¡¨•¢±ŠÏ Q3œj‹x­ø‰~hg:€ð³›‚ ƒ!C0UŒEUJÂØ ØÐ3hª•Q–î€$¤¶‡ê=»óæÃ—=Â{/‘XïÒŒ||]#£A¬mÜÑ`ôQè¤t«Nû§ZÆ2Žrˆ)Óêš|úÖu9já˜V `¾Å ¬ùL ÍŽÈkF¢¤Vú r6ÛÓùKIÀdžZEMYîƒSÖÈÈÑ·êü\²éu.Æ=†`}@Êj1t0𴀍;œZoùÙë! Y0‰Šù\ 27›ŒÔU›D )eêíÀ]è¨aŽùö ž™4FØ€Æ'Ù>Út²KeȬäOƺóÃQUq€:n™L "‹ÍÞÓ•WÕñ£ÉbTäAóâ Þjùw‰3èÿðTKD"0ÃcˆÑí;FúùÕQ¯aØfY­dƃо’ ÞÙQ³ª+ërUHÞè€Vû8£¼Û¤­®JšÐ`%óÉÇV{Òü°ëŸ“´ö£ñN0éýœÚA“ç°KYA, ARß•ðÇ­Õ… 9A,F32ÌIÕ˜0h/Ë\gÎ*Ê[•î>ŽmmCãH @™ÄŒÙBèð6oªèGµçÂ&†Œ¢d‚›òïvÖ@ÙÀ¢_5÷¾c÷e7a–ª†@Ðä-8'òt;lÜi+‰ªxÇØ{.ƒ £]£¢)N@\„VKÈ«®—eÃÙœ"…Ag;:zس;ãdš 2'0#~1”«´VÍt&Dn(˜pM‰g¹mÑçŽÈ¿#D®ST)Ϭ¤¶è÷J!ó4ÆÞMÞAkXÇ¥ÒAz#Ejuû¼ÈÉÕJ–3”åM’LYÝjHxº?2êYT@£”†r4z`úCCüå~y{WKÍŠØ2 ¸¡ÄœæäÎ óÀê^x¥"GÄÈ”œ1¶Ÿª”£þ¹åH¿ Ò± `´JL_Vv†C0ÑX±²挴f ôîÒE1¡6´p3ÎÁº RÃ.!÷:x•”ç¡ÕàØñð^ÔŠ7ÄÎi<½ÎA§[M‹éyDó!)¦!SÆvæ.ì3zK^ò܃"JÉè˜MÜHÃe¥›vaq¥Úä C­Ÿ™õý±%ñ‡rŸ­sÍnÇ–…Çõê©Þ²‡R¡,$Yò²§ :ä@ªµæ’ýÈrö3ÞyBµ6k¥¼ÔŠÐUn7i?+Rn»‡wuçmÌÒI”ó‘›9©yÊð•XׯÓP BCsŠ ÇdI¿”S×µ>á1ekÏ1f3çHΈ§7`ÈÄï}4ŠA«‚§÷Ã[ f8\ÌÛù™ru BQ8QÜÛ\Œë;(Ä„Á¦è%€/ž9´*ÏŸ”zEÎLŒº›@\Þê ù1ÿޏÀeS´‡µ,GQUçZ/bíuÍgá2eWÜ'”s¸4|J\"Á£Ò(£Â>>þ©h¹|·}WÝ—CMÙ[¡T×±5àÿ¨2Ò/µ Œ;cÞOxw~¤KS)Ç÷³àþvUkK­Œ‘Ømæö³Ë–#Þä8ÅÊ­¡ŽŠ­ö½COªn32“™C?¼LZ&3Á’sœTV¸V7+ÚX·¡OÊ& êˆ9ÚÔµ'ú6>ÄetI,*ðžåY èhzÌ ¾œ£`œÂ§Ïz5ÈÿÕ*+we·Œ¢&f,¬÷s Ýn7:=VÏh¹=d ùN»({ÎË@¬ÖHÑtBä²#¥{ÎcØgÊ ­F2Í9X6ìå„$@j]ʨfƒºëô£É¨‰gaV‰€´iu<}Àz[Ý×QžúÙ§„,g2¬r0dœØb¤•#"ñÛ‰„ΪGUÏHš ™cžÆŽÙV眿³wm;vå¸õ}¾¢“‡™u£ø8@#y‚ù†D‰nå ªÊ=¿uªÚ>§J{i»ÜÝ™q£o°]::º‹¹Öùkâît%bÉ"]ÔƒúCÅb¼9”öí9OqŠZ²¶väí}_u=CŠh-úâÍ¡.ŒÇÚ/ùt?®¢-¢Q UýW²])/žûq¹eõoΈ†ÍÇmÕÓ»PÎnôflA±{m¡o.ëi¦þTzÁÙÊI¼¦N^ØjÀ!;¶³¢bÀX9P°KtŽ Ý¥ùI¿Þ™ GÂçý&«êl´„±ºà„ƒÝOcäC± `Ðu™ åeéü¡G¸ÃºÄž¥ Ð§¹h‹]˜ùcCçÈH‘©,œ(œ‚•R§þ„u×ZýñþÃí‡ ,:´oêrzy)/ý§ò¬_Ƶã0’MP k >+/~žË.-Æ„j ÞÊʳï£Á­-YnQƒâœzcëÊ‹ÉÉðüxÛòí(¿é8é ¶8+Yhù˜mˆ”zkñ‘ËÀÅ»c˜iHZQ1{éÏGG€Çej&ÿ<ú.6HèÞ& ®¤ô®ˆ‰yµ¨h88¢’ÌÞòåÓýý0çÛû…«†ÕlS4~åÁôäeßËÛ7ã2×¢‰KPw•8Îʲ¿H<|¾ÛKÌ%†Š9ÒR6#šËÖSj‰@kj‡‹Þ}üäÍ(+À*ÂÁÄ9¬¼zí $÷ÆZ†T07jÙ«ª¸]®û¶è¸BuSœïÍ`½»ÿþûh‘9 É|ÒØ´éŠ«º Ëër—=Ô0c²§ª³! "–ïjvßDÍî|±ÿýW6¯Ó/ž–ùDö#8pײõw4v·ï²x _á»ýªx ÂòÝ»wÖÛßé~î_~ {•˜ñË ùî¾ßµ—ó¸æö?ÕöóËŸ¸vqn~g‡ß[?òÚgþfŠ€¿\Ýœ­ì·!ºù.*xöçÿ袂õ?Þèÿù-hÜl°–r,TÁƒOAÁ‘ ÚĤA]gˆvH ‡—?~øÀŸ:Wî‰ÈkÌí¾Ýht"bûïþí¦> óÈ ý.w^·7íþæ_îÛIóã†þõÄIöp#wÞýIŒ?ÝéÎ><£™þË‚Aì µó´æ3µè!B¼¤b>ý¨A ýå³qj§é¯ggî)XÿÿXÔ.NØ_ÿ3¿ŸaR»kº•‰Ô‹ö*Aãïƒ,Ìgû0ÿwwÆýÎäîá÷äÍ©õ§ $J¹¿^7N.—± Õ™tNš<çH:³çÿ´|{²£ç²óÞä Ù§þ߯E'†Ð»_îIÈ·Öò»ÔÀÍWº7÷BjÀl»7ÛK§»víAhðñÌ¿¡>Ñ5Ÿs‚л‡2~зµ|8ª/ðbµ^…4€Võ°ìÖtb ´žËp;5w÷0•M4Í$‹Z;`˜íŽ>{\…ÑkFb- z+³Y~öYýüñSÿGî†Í’šiŠô×Òlù±~Ìv]¦ ś؊“Æq2!¶ ;ôɰ³EL‚XgS·:öá˜#«e]m[‘Ãd•±ºIQCÜöÕ›$hg©atÄoÖ3÷y ®4Sp­Ú½ô^…YÇÏ£ï´õøš;•G!¤ ¬nÝ£YÈÔ+£Â®.Ü“W~ñÿ<ÑM…ŠZ°©ùÑкÚ µsÕ![ c/ ›¬Ñq·k…ȲNU}0’N7O>e—@œ¥Î$Ü9R4è>Hl´/f µÅô®N‚`ÂºëØæ;w`[ï$÷Áb5³M—ϼôC,žÔÌI´6øù×õn°Ä¤—­ûÿRÍüÁxmZág³Ý&néÏÆÐ:WK18?ã«]¹ŠT(¹¬ˆEXžUêx¼ÏcŽiÛ¼†~º¡F¨ åW‹'_…:‰jk(°yµ<>H’žýSð½~Aöû9ÀèBˆziK-ø¶d×w[•ŒZ!õI5°™m·xîøÆ'ÚFù½?Ùb4Ô{«gÚÏãæ[$v¡Â€õ0ôr½Îí§t‹˜³ZDß81^{²&Ea[*Á§''~‹ç«š™B„DñËZÌx]¶'o¤8ÀÒ ¬ŸóWW ¸|ß&+ðÜ:ïFeÝup²žjÙãÅŽ-ÄB–B °®/ËL;_ÎÀ‘5D¡Úu´Ds𗆫/&" †pVRêeAÁèØb䌂F°ÿ%Çù²¿:]øynîõéÖ.ï£sèzÔ*Þê uíPâo«eÞB‘ÎB'n5³ÌÄ@úÍõ]C•ät!´hyœ ÆišFNc:ñó§zG…(j`Ì{ªµ(8Z_îÊÃômçÊkÑkpÜÛÈó­ ¥ÙKÀ”r…yS;êÒÕÑÁÙɬdëy ·+Q¨v3Á‚·yW\¡#Ã"Y?Âdý«¬¯þŸ¥±ÉÔÐŒ^RªG2y;4ÖT¡¿\I?0MGüë¦A-õ÷ ;©ùæ';A¯«Ç/Br’BŒÉÏöë?]ÇÝk’Š´"z>§ŸÆá†BÙŠaïbráÀ–mùYïj/J6R“z‘ÌtŒõ.N¯‹mAïù¬ÎâÅ Ó°ô©Vtˆz+cXxš¸N¢V¯· ¦¨^¿.Üb“ŒÖÖ¥µ¨Þ}jûº«4]04šN·»>ó+JW’ÔÙPš­Í+%˜kªQ‚.rS¬¼P~vÝ8h _¼ËÔ-°]_ŸktDE&er]ÿ†ÌÕvέ¸ðçW—õ}F¼ž„ܳýÝÓÙ°‚Õo;ùÓBÎ5#C’2ʂߘ$û-=]ÄN3)Fjóët…ʺ“x²ÆYqK…•ÅæPjb…BÙ5kX·¿ãÂê:/:Sé–Láìò°{’XMAŠ)Å{²Š˜g™·žÖaLR)Äùl ‰ÏAVëŒÆ¾­tMéš#têœ×á÷eµRMJ®†œ—¸0éáÓx2]¢ºb²æŽ8±êýøFw£ˆZŽYA[Bɼ_—ùåjrÚ–Y.é‹à/WH~ôŠBÕÆLŒ 5˜Ê³ä0¿Ö l)–\|vQjꎄïsrœM§FÅQ‘\-ëUcýKü”ßÝåúv»êJɽ Žm™ew}Á?|¼åÄkƒU¨©–§ÅŠŸyäѬ;õoiÜ’)èÎúU¾KÔèÉ›{M Èüžïj{gÇÉp!o%s׺k³lòÏ6uƒG“ë$¶hýsÙ‘óVŽÃ†ZĶj2EsäÌ›i¬êÎÑH5¼\ÇU;R àk×¥ð¹a¬ÖÇÞ"Õ5hâ¨Eæ*Ž×cB[ÔŽg6’SÉâ‹î2 ¡·ÅJUôä$´0ïØöækî, ž¼Ž:MÖyv)G»§—\]BlÂÀk}{êECcwôŠ¢8ÇïsÀi¼ÇêÎKt%)2[Ýa>·©Fõí¦–›´P“¼Ï¶Ç= ÎÍ×àLïüJG6.dÈ@¢SlÍ»P×S°{R,&± s@˜Ö3¯»ì>ø&†­øÎ{v ‰p§  êi)žXG.yZÏö, Ø•(«­ö¶&ã{Ws9°±Oñöèö€-)bmÉ/¼.œ=ÝÁt5‘"Ñ{ëœ[7«;$Š6+P Ž‚ÕÍyZïÛüq$äh¤Ô^ó‘ aNÞ—eödR iÍÂRwᎰê”ÉbñÁjÀgWq÷U¾Gˆ™™" ›ÊþÒù4D­)uCÕ˜äb]l ¼¢­B®¡”Žz3îWUm(‡)tRcµ9Iu¡|îsÎt¬,Ñ­Hé‚$èúèÁÜц‰16 錣Akë9‘mõ¦®Xç}õœ {c¼*î L„Ä%´b[ˆÀé@^ð­úû÷oKÞ~íe(&z.TH#©u”¹¡¤7½™¬¸z Uç§þå­|LÝË•«#€ª¡‚çµTÔO²%©ÊìäÔ±»¾Ö­µ®Õ;ºšFýsˆ®‘ÇÉ7?ß= –õ;ýè7¡½ûÎúnê;kèóŸûa å¿ùÎöyöçÿðlŸ­|zó{r´EEñ¼cñÑ™æK 5&+oÜrÄÎV`§8ÚþvóCÿ>7Oèæƒœ˜;ÿãô]ð´ý”ïoî›~Í|{sZªÅ6ooß>¨G»Ñ-,Àíá§üpóÓ§»‡õ²§|Ïí/ú¯÷·ÿ{ó龓‡~ðï?µ÷7oßÿÜîÞ¾Éoß¿¹é'ã¶½{¤{û‡!_sð‚[vÈ×4†& pI.j¼Å” œ³‹£cGºB/zN¿vÚ·26 ·:J+:X®W¢` _GÁö8·ß‡…íôÙsIÃÖëh<å“ëÙpðñ®7³N¦Cm¦Þ…2+‰ý8úD铱®Ç£%v]¨ÉǵÇá η³}˜èAw1Y±˜1wAÏ•ÏØæ¥tÀ‹̶͒õ\nðKÎF:«ÆP¿œ™LR>½Ù,ƒ’ª«LÙ¦2ÛWq9ßD¶Õ3“›„ÎRæ²›¬˜yvÞwi£bBl<[n̳l Ÿ°ÉŽg{c˜ôŽÓYæ&Óˆ_Îßõ~StM$ª#óvVÛôåºï¼àÛÚ)ò²® „4™"ú|^ö –BW5ö‚±`%S—ìäÄÓll]`7æ”RËn¶þrø1ïIW$o•lp…j%H»y’CC ž}5Ç—ÌË6‡Th!•Xšõ³ÖÏæ5i ²ÍÁ…ì álúËñ³n†žž‹±rmFmï’û¾QTÉX(é2Øp¶™`äî6ªT¬~‘b"W'ÐEé÷pç98 ÷÷!›Xã¡ ´ÓÒnqèh8Ø(e¶Âûrøk5¯½#DJÈ&ÖY¯óÕßg>bƒ>‡ê3£1zÚ|‡kmî(–"ôö…PÔÎ/]Ò^féD¨C.Nì2ŽÙ•™$.‡(¥z8d ¶‹áÕY ;+P¬¡C«?Ó&Ђ)$™Ô '¡°zŶXv°ª‰ÁTÔÔ`oö8ê^ǯܚþ<5ZE{Kð`©Œ“N_MeÈÂhgùž¶vaƒ=±VI^/³n¸™-M\´Ñ#x‹ {o`T8¼„ξumüå§Œ¯$að&'$)Î’çmmÀ^íºzÄ~VéÒ鳕0/¯ó†K÷Yã(Cjmto^/H°•õ«TÛ.Þè1ÏŽIž%d§ÈÓÓš!¡Q n}Èù”ûYeÑ/†z§1,Y㜮C–Â<]õÖ X‚W´ 1çÙ’„ËtÅÈ ¸\Yb«Ø z?ùì¾uè·ŠJ¬>trÑF5‹?tà÷èŠs4¡anœƒw‡®î.¨¢Ï裇¦n¤¥eÚiÜÀdj%¦Ú©šÜlÕÚ^ˆ2îêW×h}Ñpˆ“:ßc¡Ðßw3Š˜…@£8¿Â?^ãà)5\-)ämq è¾6ÁÙ¶ßæ†1lŒ(¢~òm‡ÁzPë8j@}è mÔKþ½si®ë6òø^Ÿ‚«ìbGÉ,œyT*5“ªTì½ h’f$ËEJžÉ·ŸnÒ–É{sJj4ôBeIÔ=çâÑèntÿþÖBlµ€™…æßá×N”µnã@7 [Vb?Qx+³¿Nè•âµ´ »Üèh c‘$aÑÀ÷çUŒ!o OˆÛÐäÙzëûSr€WvR“UPóŠ*^¯™ã’ÃTŠ"š˜ ЖAêciµh†ßv|+âoÕ%9$Ó9¬±–˜ùå=âlmݹß6è€D;¤l%Óz¶Gé<Ÿü¤Ÿ?þÉÉ:' ½ ]Žd [|åS& ³`°_ß) ˆZ69£Õioè‡W&rTá‚‚ê ¥µ/0Åîb;&ÈEF„çgé&§©Â~‹ {›Î鈘ɒZË=ÌÙ[.`[ ´GH³|ÃîMSoÑoÁ€ŽÌ=Í·T s¸ÂΧ[Μµ sÍZ¥HŠh–”vï³ûW4©²ÁÍàæìa·ÚY'G¢¼A{/mò2¯7“GXl°Ö€›­Í0«¹tòé½'™J¹Jõ|æ­e¬/õ…쨰“lØDO[nþeº^% ÙüàCpíFx¢§PsØl“Q˜Ø€½ÔQŸšÆV1ëÂî „ªiï¢ü áÃqØ£™bäÓoëÜ{z†W'?¦‰4I5Ñ&¶ð‹·‡ÌïTlª1£©rÍ4KÅ¡€’G¿ét‘wZäóØ-°È®7G:»;—ð•­uWj4–åbk+e°ŽØåNìû¹5ãu _*¼ðUØjsÊ®ÝN´[ò,ÚõÙë´wY{$gCªì5AL>†—&øH©GWJÅ8vé ™·Æü `s{ÛvœIÔ¤žíjëZQÝ)ƒ´7ÚÇ*]Å.¬í© ³€ĘØK­g)$¿¾ê@*Dv·H“øq¯0²¯"¦ªöEWo †6[v½/¾ä¬ç(˜ãÅ‹¤ÍâxlúˆúQ@z0ññÔfé$wr ®åêmfG\hk¦ò˜,RÉUQ]çXÍ´8+ÐqzgÔ?^…¥!§R±õ$Ù%‰]Ê6³·ÔÄ~…ºV°tI¤Ã(!¹ J„WfÅOrÂ]g/EŽfDˆ5är3a;F/; ÏÎJšÕlìÜhõìy!J­¡Ö*X£× R?gƒ#Æ„(ºB RY»¬>d¢óáoxć§ ->"q,£UŽÞëÀ+3ضV(ù”xû“?n×'ÊZ£Í¶Å2Ͱº—êëfEvÇRÚÛØÈååž!Ñ@t~´ŠM»Yá¯<İŸkŒö À:ˆ5ÜŠhöãÑ,öó¼ò£÷Ú|´“Øy¦ä‚Û Ëß×÷7ßrÜ5HZ4,l­%g]«³ú:=f¨¢áD'6ÄÊ1»Œ“%Ýw€Î‘ÿ ì{ö=ö§¯Ÿ}7Ì3°ïëöÝÓgfßWÇì»þøêvjÿ‘Ø> ÙiR@1;>ãKöì)böŠ*b>£1±ÚúŒíû¿„íC¥ì)¶ÏÞ¿ 9Ãö¯ðÛ\°`û4xõ Ïõ¶ï—UþÿÜwÞð¢Úc÷ Æì‰ð}h¶KþSßëHŸ_ïCðûåñÓà˜ŠTjl½sdO“é_cõ3ß1R͹!ùÍk=ž|‰£dÄ=éd(ãg/¨>?âïó;û>G©Óh¨™fÁùø×Õïs©Ë“ÈQ#”†©ÄÆí¿º\“ŒÑH¯?ÛX«sœWÚx5WSsb§U9 ¦QšMæŸýlÊç*ňµ’Š iZsíä ã‚\L*åLÞ¥hgo ??` k ä.Ï Õ­~ðÅ^éì}U”Ð5>âÜ,"ë|ìÇ¥l|A²øG4ÉOžÐo›®I¥Bšý¹¦±Í–:Oìáe“5ÕR"LÙÄõ´0Ö¯·§j¼Å¬j‚œØåœ×ñ:ûK–ÝYu«¢kóºŸß¿÷î$7žÁ—œRƒº»£ŒØAkl•‹§µfNÇç(ÑÛ¦Z¶Y£ÌêÜNÖ[W\ás%b ÖvVÐ ‡.7fPúâØüÏ¢EφètC¥¬«a»ï\›m\í>ap;§R@P9P4ÒŠ¸jþ/T[Z9²¨ðg·Ô¼ ͽ³ë E&Œj¡…äÍê“(17[¢ò˜mszö*çþŠ9ÀX€ôŠ€o)èê¼BãÉœŽ)ÏJé’ø80:UéÂÄ¢u76ÛZ_Ÿ²Ý=·æ>ÊeÞ]  O€»»P¡S¢ê øˆìÎËåÞ÷²of]SÙŠl’ëÒ,ïµïãö{–-bjÁÙœÁÚ,<(›ƒŠü«Ñn¶“ÿ<â·ÿ(‰‡ÈØhEQúä[t+sÈŠC(é]°egšûå\à‚÷"ˆš4¿õÆë~Eokô ±67¯1{`û(¼­úÀî˜ÈÄ©ÙÆ«“Cú¸ò"¶¾cÊ<³e#_ÑÇÇ{Y%2­ 7V?wFQ§Àû–[ҳ즃I8‚pJ¦µI²]ìwÌöÄžEc ˜´N6i¡JV«U÷f¢†‚xJ¹BágQ »t&Hž¬!€¨Go/á1ÈÔXœe×*:wS{}0¼n¾/m¹Æ«6K:žùƒÞ*4ÞÕ Þ¨,=Eh}D¶#¨z` lø‰m÷@Ÿß7²ä0cq®–Õ”ÄT–Ë…c µ(XöÖzî$Ù–mZŽðŸ3yþ-Æ$@9p©¢­–£Àd¶ŸpܸZ•ª)+]9ˆÅ0¯t|oÆHI ²áã…jd˼œ¥›aÒØèyn‹×…=IZ^³@…Z´2’Ú[ÛR] †'>YŠIõÜŠZog*¡­aw—Ò†¥Äºk.ŸœLx>ëO 'ìd/j[c@ mÂe÷AG%õè È‘¡µœ›è jÐxƪbRÚ¨Çdù‡Ð,%:œCšÖx`G ¹JS„ºG z5Y5GUŠRY]rv¨m³³‚G}?¢ ›1Å*ëù@â-‚;)·ö;rlY|ÌìÓGé½Ü•`·ók‡»8HwÊŒÂêbMÂõ9¬® KuÃÞ·êt,šwø¸ëvô©9ÕÀ£µTß´kµ‘å˜CFªl+¤Î_­¦.v&º@Úñ *ºvhv2¶*º€¸<Çe¤]ïz2OÏìë9½µŸÉÙjLF“-›ÏÃFs¥CæT+ÀîÑ,ÌðllúC‚VO>Y´«°Îîò­”×–÷{Ö{‘»¡Â˜êZj29€÷³¸œ?jݶQI;R‹^¹ÝPtL‰âi´µúìø0QªlGî]Œ1ÑÛ¬²"'KrÞúíáü¹ä=6ϧ-»V_Œÿ7H†[Hô‡}Ó*V«Œ^ç#¶,(¾6´CʳÊg_`Њʧˆq5A)Nª+ƒ:êF56ä8¶ >G³l4<¨·<Û5’m fõw.\Eô·\À”9L®ÊKZa9Ñ8Ó]Wœ%-®­k–fÑù²Ý'ùRié8lf/y~"ô 8Úà`Ái—›SŠ#$b«¹ªàÌr×ýkÍþUA&Ï‘…BŸ”³}[ÁFµ¸l!)cAϲ&CFhÞ ª7>²-*q'µÖ'X6ËKQšJ=Öå+塎*%ä;ñx(+Àëí¬ð€r¢|Ö ¨ñ¬¢r³Ùr„!U Ÿ“…}fs¿siÜÅÆXØÝ©…½A•Ûr5á˜;ó:1N±&äXvO—cé]Uc AÔƒyðyP%µÊN¹•"7šVé×qõl25Õš4%ëXÙ§Ûõ…Æ:-s¬Ûøp)¾ÖåèXFÔ¢ÎBZã“ϳ”Ÿ~b m„BˆUèX®V½\J7…tͦ6-xdܹÇÂxbBÐ!TðÛ·z_€Ù÷©ûÜö o6>ÔÉAÜv/ɺösSAv2»¦Ë¥Êp¼iÕ)ã Fåò,ºè|Áv^ä` ”MHX[Ú 'àò¼}CÍIóÑ,Ÿó,óv˜£l&q4ÀãîªnVPá| Xw‰×¨çm|'ªµœT?Rщrål?ômZf%DAsP5§Tv WçÄ,µ‘S”Ø×òpùa3:Ǧéì­•ZqÒm3ít¤Žâ9Ôt@P½nª¨Ý©bn¾4‘Mk™Õ\duBÜ2$ôDÈq‡™¡„#–¢¡&PO|Vmõê—VlYæài˜%ûœ®ØF:»Z¬8 …9)îéÝÁIŽ;5K2hârJú‚z);×%¡òlŒø·“h}à) Ïeöè”iÓªFÝhr¨°xEæZ0óaàâ¶_q É‘ª‡ ødã˜^ã¬Hù÷6›„S˜åÂP`å³0ú®OÑóé¤b‹ ܧ…¥ïg»Îè›´kþûâ|òjRAW$Ýöù2D"HDÆëMM~¹î€Äc°Õh[(ì·zˆºh2RãElE;iǺóÒÙ™þøæÕë~©vfÎ)ˆ&sô½»(çX5Š'ÙÊ©ØñÖWÝtåW×·\ºÇŸ» zéë«Öc A¥åâæË ̤ÇÄç"•[NJ?o ”1YÑ9©ì/Ïïã/Ï£Ön.ÔR+­Y¯Q‘°±ìߤ÷שtaéÿbç–ln‘©ªcñ9{K>ûˆÏ/QÙ,ųn÷„hI£ʬ|rw"Ž@ÇäRn’¾a‡K©YM›~¢h · –N[DÍÑ®­k#nD¢£Ã²ûÅ@“Äýa€Ï–T¶F«™–tº¿%ž”;y6üýfQgùµUS<øÖ—å$쌂ðYßjæ<Çiÿ"q wUZÊ€A[–õ]szÌDôNàvlqIô%uízó¶Û¢P‚æ•j "Ç5Ë¥ÏSÚN|ê“Ï|¢9`OurÝs$»•°¾©¬L“sؾ5xZLçpž‡òw!„–x/4ŽèAûí”D¿m7Åı|ËjsæqÉÞ¡„h±è’u¡°«½]qö®v{id“‘6æ“ÑŸA0ñLz|&=>ö§¯ŸI7Ì3éñë&=þbOŸa_ìñÇÉÛé‘ÿâïzTÀ±ÔõhlÿÉ‹ï>üð·«¿¼Kü’w¤BóâÅ÷ü°Ì‡õ-7ñŠ_ç¥üîåÏø©oî~à͇÷BIä—üey÷my‰ýg¥ò¯îáù ~ýéíü#·ˆFÁIþáÓÇ7®o~÷â·?ÿw;,ÿÁO¸¹úþÃõOé]¹¹úÍ»¿ÿøóo¾½}úo›øý·¯*õ›×ûÿ’>½»ú3[½NwÿîGþ“O7ßÞ¤÷9=øÑï?¼¿úcz÷îçOÿê5ÿæÛŸ8Øýæm~ÿ /ÚÏ?zSëÕËO7×/o®én•¿ü—¿þÛ¿þéûïn'˜Íu½*¼Úùàøæ«!dúÿeïÊšÛ8’ô;ž&¼"U÷±š‡•íÝÅØ‡¯ð›¢N 6"R‡ýfuƒT죪yr‡-…DeeuWבùUæ—Šá}†LÎöx2½†ÒŒì1d*‚„’52¥ÆHQѤÚláÇ„9ò²¹/ð<¦)´Mùjö]ý“3ü|è2×fm>™‘t™mcx/\™ aºŸÙöÏv¿¥ûH¯ŸíIˆ2O×°fÖz>]o«Í4W|^$þU5 õóúâCHwJk˜˜iZoߺ°X¼Ý®¯:‚戎‘J¤6,·JPo»WmÚR:"†™¶–«ÜŠ$-­ vj+T ±¢é–Æ\æ-kÝCgà.£)hN‹@8Ò$·6aSißmŒäÒ»tᦢ!\gB­µö~ÊBMž†èeÀXdÆoìkî@ ‘4ÒGä# Vx› P¨îˆ¡‰AXê`“÷T%PiŒî®˜/ëcÀÞb˜"XÐÜÔÝÝ©>G%•EóÈ˼+iQßõèTTJ9”*KÙËÖ¢¾S E Ö+ãš$‰\8þ@}gì¯IY–î5l¹¼PûÚïçÜ×}ÿÙú»‰Ku Vå£ñ˜ØÜ|Îõƒ™÷ö¡¬‘”r+¨ÏÛ9î#!ÈáH­ãÁˆQ]ÔxE¡E­µŠ£vÊÖÔK¡Q T © 8—âï@q?-ˆ×©Ì7aŠª`pnhE[=‘Ær]ÕûM徃µ †ÃU Â6Axâµ5[³èð¤qN‘…U!t&îß×Q{ÐÃNZh¤gšä† uõÓG©e¢J¦I•«¢µ£öÀaµ¨a7D‰s(p—ÍtÕÝK7]¥0œsÁœ1$0Àñ=uå¤2LÄ É¬ã¼/Ý%z­”4àóïu¤t™9‰¨f‚‚‹Às#ÎZt÷’• j#)œYܦã{éNFJrØ™ppÙÜÂËû}´RhkÂ@'3Z%zÇQßÇI…‹ˆ'sÁ:°‹¶ƒþ,u¯ÃQ[…™‡=¬èÉï9<þFiO‡T' Ž;¾„g<7öîFsG1"À+o[1j)Ì¿B­zUR¤âR€ŸCnüÖ®ðú´GE„ ž{Ræ‚•Ò’ECSÚ™Ç –|¹îû ¾Ñ:ÄoGD2‡¥Âí}ÅÞt$Š$2c‡8ƒ·Pu{õ#ë£N¼àà§ØŒ¢ó±=ïŽzˆâÈH…#É¥Z¹ÑØA ¶2ˆŽ$„kWúœÃV«ï.#Œ•龯Ê/3>:9a¤6Ü©TJªªdTª´¹/+¡T ¢È4bg¦pT ¨¥$Q^†Xö’ao°„y FN…¢ >3#z¥ÅJ)‹msÝdJ,b¢…Š60'(+²z0±† ("‚‰G)7c_m/‹Á`9…‘LâYÒW…Ñ ŒˆqÒs˜ç£u÷Ôx±ÑQl±IKŠ.dzr ½NepMI¢Ø—]Ád‘Ù#l †CQj°‘+Þ¤:è|½“)-T ÊQD¶xar•¢ò<ŽÀM-ïžÊ_‰ƒ+¤ÕƲâµß÷ØŠÄ5”IgyYhCo¹‰Mµ$mÊ_f¹t ÅIú‰;"Å üò2—oï³ÞN^¤¨MùÏHÀz‘e7˜],~RØJ)wÈ*’[Gãða{ÓÃ9bÆØ™®ÈЇ£VKöœ6*%j3Wæ»Õ‰UæÂt¡ìÖ˜ª²ŒPÌj–K&w¨¼ú“me§&‚ ›òÛÀGfD]\D/™ätsTôMk¤¦ò¼—ò¾³+sÝRÞÎG]•–‰TaŒ–ð™Õ'ažðE –—›YÛ좿pK\•DZS1¾µƒ`¥‡öà襒±h³ê.¨‹òàç:¯$!‘Üá²· (ª®õ,óFÜTes±§°·>hì¸ML×&o”ë@Ì)Q-L‰jS¢Úà+L‰jÇŸ¨vygÅAêÇZ>¥¿5ä6ýÍ-ÌÒ¼oK|›s%ò2ßЙf£’Þˆò‰IG&¥„!%Õ.FʵԄ˜ÄQ°˜•ôözu9?ßT©[‹?ç—¹ÙnßÀÌRëߪÖóí̬àÿkm—µ¶*Ùê×Þü~6K©gK3_ÍÖW›õÅ6eŸ\¦”¹§¤r~IGJG›¯.Ãù¦Î.‚Iö.µZÌ`ý¤œ}e./{·„Ùx²ufµJl3µöëo|mØÌ ì8áãÜÂÌ3+?ñ…IY^-.Añ&¥Éøo|ì >{„if•ò°yQ55Õ Uo~áL³¹›]­S:Ûê|ö~nNÒ“¿'ߤl´Ù›Ë4ŸÙ0»‚c ^)%þqµrŸßêõ÷æ·ùÏßž®Â‡ÔÅÉÛK8X¡£ë¨ŸÎlÐN«Q¨!…ê9¶køéÙª)­+7ïxàí_³ÿ\ü±¬þþÃü<,fÿ¾€g}°¬µz‰œÁhô$­¤¥DT4’Ö <¼Æu˜´F¸®l/gÈÄׯ)kD!k¡¡¥%c--Ö—õƒž¦åXåX¥Þ!Qí±“Òv`Ù]~zùspWøCNrÚ6ív«âì´Ãẇ„´D%½çÿ³Ý=i³+æv7ѶgC>Ó¾ðWß|÷úû׿½ýñ§7¿½þåÿk\ã_¿þîÍ7…m÷ÿšÙøjµ1›‚·ü,ð¢oýá§×?÷úÕ­Ÿ”¨x;—<”>~£Õ¸¯uKKÇχÔÕŸ«lè8ÃïÃÅN»ÉGòîr ¶æê†w½×¡Ð²=ïÔó ËËË}“íü¡æj>¡æ÷ƒš— ÝÌîy¸sÑ1v@nyÆF·-iùÜí¨#²ŽÀr¹³ úßG6µT:Qçl M\x\«Q~+túWÑ®5ÍÐ<Íм4g×2GÅ0æˆ&<™;x¢ Ñ íCÆ«T; é)šzB™ŸÊ, Þ¦VZòfÈ[(³ä¢ÌT!½2s)š»êb¦w+úñlðåwWîÏE€Î6ŸŽe&r/Ïh,Ê|ä1;S<õO=!Ã2à˜Ã”×L)k8Š3®pôJRÌl# òh‰w”ÊÉx¶¢ªˆK+Y˜Ý“ФÓjš¥ŒZgàxX¹RåF=ÿÓù?ÿçëõÏ~‰QÐLÀ¯À…s,`/XHéYd„øÙ§8·)ÎíyX:²ÄÒ!‰.¥ ìf ¢Z)B›‘nˆ!D†BÝ`¹Þ uÛ¹_z¨Û8åÐŒh7=ÐéqPâ#ßHÇúÐÁ¿òiUdŠúð> _ºµÏ´C5³Î—ë,E°µ×wr©:]–Âj×Ïëúƒ¯SúÅÞ›Åùf¾ú÷k>Ëßáã? o õ*z*ðFa{³6ZiÅVx±÷ÆÇTÔnòòŸéÙWÌ$RyùDÝ—¿O&ÒôóËùDþΞþ±p’$œŸN~þäçO~þ}Ùóô"ä´v»¶w5ðÙçÅD3*g˜B-Ƕ1ãVT䆲 ˜6ÚGë$ÒY¦À›ôV32;­WçàœÞ¼_ž%pÝ~ç°o¯œƒy;;ÇÕ¿5O÷?®¶—`%€› ŽëõÀœÎæ—' 3Hnª5Ÿ’È,ÅwÁœÕzȵ}sÜÍÌâbu¾MÞq%q‡UåO_\A/«OÉw¹mç+Òó}š%p!ÄÒæž:JÙa3v×Ýà.)¦ ÉeØîJü4ÚŸe-%¶;7ûû°œêÞ»zýâ- оÛCŸN.±Íg>Õ…<ŸÒ|ò‚.Mˆ1A9qZGœÊŠœtÁFV”Â…æÓ|™Æêæõ&ë©Üzº’öÆ2!Eÿ =ŸÛ3»\¿˜Ïã‹ÙëÇçzuþâd½Z¾˜]žø çÅìãz9YS7ÖCZ„‚ÆD³¬àCˆ{j÷i&{êéí)!ö‹wçÛS{ßòmZPyfή¬½"ù´‚‹¤Õ\Ô6†"ùtRÔÀþ5”Ët8DË2ýÃõa÷ä?®ËôÃ&9 Ÿ>Rák—%æxØš+ _³@:Mßñ…]HÃT/’.Ñ ß¤DÖD8Lé´ʽžÝYðØ^ÏßÙs™¸CïÑźÝRÐTV›Ô+ØÝNu&J¨—¥Ÿ¶,LŠ©0?7úñ‡aòå·ÝíLEŒÇÄ%y\W Ù‰ƒwp„òyã5ÒD.öœ)Ç1  MõY›î¦{„£ð|)'‡ž/GÍÀ†ƒ{Á5Ùó|9 7_Î4¨²’ »/îù¬<Þ°oTãÝ! ‘IŒŸïò¯Jn ¦‹‚çbnçZ…ÅÖãv¥1|DƒÔB_š½ô”!˜¦, "DŒmðÒGæŒõHkìešX[b*½¨NøŸo:f1ž>¸ÁdƒKgÝ€Étrc2Íþ}ñªÍ‹ºÉ»A³é˵vã%8?'š ¶ôc¢j&B`LbE¡ÄÿäæŽBðÇQæÎ8„©ßNx(ëdbš|°f|)xô»¹*n>^Ž„'L²­¥_”–ƒ¹n1jxâ&„dü”~’b`ry‡oøÑÙÓõ%E® íJWÍ1A“×§ÌÕù9øš—ºÛÛºo+9`”«¼Ý9Êôs;áÊYÞ‚)råWïó$Ï7ÆæI®/Ÿò$·ï.>äI&×>Oòý<|x:ºnÿè1pdð‹Œ³ž„€±iÃ0#T#O˜*ÂÏ5º( jrŽ&çè¡`Ž…QPHiÄ÷2åxPJõ;G `ÙÈCËfŸÝ]a>À^ÒD}nÙ5æóø ™¿5Y4“E3Y4ÇÄÚö†LàÈ”å6¥uÀÜh‡‰ 1ˆBrJ'eÛDÙvŒå´$Z‘I…LŒh2àLKR×[øÚ¦Å§¡kczäu×D×¶˜èÚäwtmR5KÛPÅ)5dÆVtGB;‚£!³ 3ª‰×…24Õ4kCB5‡Ñ…¾ÎèoÇ¥Vò½' µ‡¿¾fN;ªãGºd>¦èÛ[ŒkÃM®©Ö†%?3¬Ý_ígj´ÙµáF7üiÏ"&ö˜PõGñ@=ÂX«†¸w^cê,!‚’¹‰ŽŽ§ÂM ú“{¢OP½0!N3ygP½á_ÞÂÔ'ïò‰€u<²êÛ¬OÀú¬°þ(ÁBä•t,X'"Ä!Å-2ð»$XpÆ£4Ø›MÈú„¬ÿ?{W·Þ¶­e¯ÇOÁ¹õ|µT‚àøÍMb7IÓÆi紹钠ĚuH*¶òFç9æÅfƒ¤dJþ!@[²âì›Ä’° ÄÏ^ kh,m¶é÷Jª¤ó×*ÔöÍŽl¹íp‚[¨u (Ø;«î‡…H"«®l€¬:²êȪß]û3pÜ‘UW7BVYõ¯—U¿ x‚?¶sÜ)å (ñ‰íȱcÆcJbÆÔfvÀ"áD±+bJQ35ãž+2jzdSo€Q×§n ,2ê1Öa8Ý¢×€„ˆk›5òÛÆq÷C?ê;7)o%GMã……r,o³D=>ý¸>â!/W{áIã(¢`4²e¥ôÁ8"¶%,¸‘)¸åâz…ëÕ#®WDg½r,“ùî–Æ)eöƶ.«˜:§¥Ö|BZ“™Ôº±¶¡¾)ê›ÞRõM™ØA}SuÔ7½QõM›ïQßô®’_‹¾©Ä³‹Âc([Àìý½î¤kÏ݉&,Ïö„iÆ–0=©…’At]ß ýˆ±;Âô…¯ÂZ¢ñSå…ÇÆY¸ßTñ1@™ÈX{2ôÂX7…*HûÈl«ýnY­=Á À4¬"?ŠnÞÒ-ÍPŽª{k½fñu­Gÿ¤Æð¸('³±¦ ”- °­µHëg”nmlTÆGuÑ{àÖ¹¤õjÜÀ­> øðb<åIº[UÁù,6Èž—¦|20^ÖT¿¾*'p‰ÁfCùÏÀ8¶,³Yõë§I6å…q²(ÅÕÕò(_¤ÆO<(| #/š,òeõÓÏ/ŒÁ/ð /gå^-tÿÆêt’'E™ÈšN'ÉüOæàrDÆñéü¿?D0­°bUþì:ƒqžLÆ/9‡1Ö·ûþàyd ò”K480ÞUÿoþxɃ/ã½H‹æ9êú³ù^ø HÄX Œ_'ðJëßOdÅã×´¹Ô«RÞ+ôå,ER¬åS25Ð?Ã×ð¨bðæÞÞÁ87ïÎùÈ͵ٙ|;ðô¼þa&À‹oªú ?ÀW™¨ WÝÊåÂ̲b–¤Ó ÚòSM0[=Í{^¿´&èyžÈÆþƒ§óê·Ÿ³ ü’‹‹ >Ëò¥|ŸÐ!Dý†~áßd?üÍ?ó ˜ aÄbV×ùZ¤É ˜\Á÷0RàÖyQw!ÜP¿ñ:[¿¡Sè¥2Ä*¿€ûª¾ù JÙº'©Ès¹jÍÝ yvyy9š'¬F£dÚ}ìÁ5·82Û%÷¥„gÔö¶ötLËo %2Ûtm•À­e}Xy6CéÓhSeo>¼3>[r!Ne'Ý7[Ö\!ùœ”ËÞ‹ò2“óèø‡·Ëp&˜ñröì5/³….}V¿ñv>}fÇî™HNÆw†¨=ØŽÝ"i¿Í¬úG¿ mu²».r›?ý$ݺú~wßô¥3>“Ã]iãjËdÜž8N¯O®t”œeS1¼KðR”÷çC©] Js¬@ Îÿ^$ý(`vŒ`¹Nîdi?zòk&@÷BzdA‘É/íÙ`]?9݇”î™ Þ}Z'sóBõ߸ÃCþ:zÝÀþ”‡¾/"ϣžkE±'àÂŒÆ=árË·8U;€‹Ø±?bÄþˆýû#öÿZ±¿Cümìo1ÿ^ìOí›ØŸncµ, ÷ ýD Ï ÿçY99øo1„ÿÿþ#üGøßþÇ ¸XOýmA݈ľï2°?¼ÈuCXÌ-fšÂ&ÜŽLÓ\ ú7pße8ªoõŒåı²R…t…Zm³'PÿººÓú~Š#i× w„æÍš#4GhŽÐüP 9Óæ¶go!sâIý©öÁF é8·Ò óÖÊŒ¨üàP9ñ]Ò3ùOëÅîWU÷äÔñiªªe¨H Ü‘Y¸È QìÜ"ò|<ä¹FŽ¥¸*o¾­À‰ÍDñp…æ Äв혌ÙÌqŸy”G$ðEpß²¬ ò 8ÂÄÝáñ‡ªt@d»áö„"ë›D‰0a$ÂH„‘#FÚR™uFRvwt·Ã,ÏßTµ·\æ´a¤Em×SÈ›Ö^˜ÛHS×þ9!ÈþR÷;‘ÌtûáÈöËÝ7¬ëÞ9’,/Ô > DÌ×ù,dwpÌ猙¶˜Â1-Ç¡eòÐu\N=+¦Ô´YÚ!‹0^ãuÍ!šC4‡h®žrÍ=[4gë 9¯knë¯ö8«+áÜ=ÁºˆèÑÉxÝžrw¯‹ñº¯ûŒ4ÆëªïÃ>a¨®Q±Iý0à>µ=ߊ"ÆmÓaY.õ8¬û¡£„úß|úåûáI…‡Ïi™ÀÄXfa–íÅ®FǧäUÅùÍ(8Ùea,³…TLãBþ«0 rcQÈërp«é•K Ò×`ühu'8'aºˆdÑ—oÏŽ³ó÷ÇÆÿðI–ýç±ñ3)d î÷ß° Â"Ï£ÅPþsl¼=ýíøèíÇSpÀiOSã\©/“B¿ýv €¡\à2ë?êØ8ûʦ‘0_ò ÿ+æ“e>:/¯Æõ I媔¤ åVÏ1¿!åp‚KùœR•š'ÏFàhÉ|}ãF/:Š 2ƒ‡a¶€ö®¯% Õ7"JÊ îâhµ«¼˜Ï³éÌuw5bÁËŒeÙ†Y)qtCf¼0.åÓóÚâh1Kþµk‹c)j=‘¿~yÚìYÃ=ŸNß]¬ä´µÝÜM#}ÍcpC.[CjTKß­r°dÇ ¼L%„âÆ¯3I:À«™…£ã£³$̳"‹KÀ³9‡¾ ™ ƆŽð]=¾ÿq“_4GfEtìËÎ9Ñ¡dá²K p-ù>–¤d™eéÐR4 ³\À¤“;É¥²*ý˜×\“…9€ÍÐISÌŹ(okMûÁläWI¨Ê0§¯êTŠ#L~ýx’”Ã&OªºÙù™nE«|3:&Mâ“U›\ŽÍ¼J¬¡cVº&¼¼xµšd3Øú/©±ãÒ%å“1²5.ê6åvJœ‘ÓÛ–ö·Ù½mu,y’guZu£(XÃj P]+¹V›jU˜êZˆ Ëd7­º›¯c(™ÈaÛZ«Zi]ˆæ¿^•Kþ¢r×µF¤¸šsm£8›•õN ¶e;§‘†]µÆ×€ÎøGUPKÎÓ¿æÉU°ˆ{Y˾ÚÏ®ü¢Û¨ãj¯Bôª¯Ú1ÖžX76šµ³@fwìu»E™ øÍÑ·.'`õª¸ìߑʋ éÚMuÇÈôkÏl:”±î=ΦÉž®mV¤º}|VÌs[{U&Õ¶­ i5””õqk*ÃjíeæBÛ& 5qžF…®ÉlL´g”y6/µmêñü ³^£¥†ÇºõêÉÒϺnA®½:Ód*4ûpñ/Xx*#­G* ÝÁR±«‹ù°b®’š ¯:zevÁ´ôš¶®ÍûX^õ˜ñVù uL¦©¶©ç:ä‡ô€Ø#>—Ù¸u¢”úÇ'«”ƒ¢ kîé‡"œˆ)/~XÍ õÇŽL…«Ø£§JRØ¥A±— …aP ß"Žà>q7p½˜s+ô©ïš®k1Å|— Q„#i Œ¤ÁHšÕ}`$ FÒ`$ÍCR RƒÎSK½D(ª ƒw©P`zÁC¤!>ë›_(nÙžGŠç¡@Ñ…ÄötÅ cߤ$ˆƒ8ŽNÃ0 Ì†ïà#ŒPbÆ6 )b1ÄbˆÅ‹!C,†Xì°±˜æ©‡É_o`1ºÅÔtåïBcx®áPàé™íá±g Ç®ß(ËžJТ¡-,æpnÅ$6© SxÀv"ßvmË´LµüÝgð Æèý«OƇ ©À Y;ﺪKÕxÇoZB«õEFÿñi’kv™È£êR5`%p ^š€y¼:>ß©•<Ÿü­„U¾’¸­º]˜(ÆàïL¥,ïa—E”…( Q¢,DYˆ²eÙÔÑê³dbí ”eÓb-eÏêȪ½©Ò'=é;D‘> ¼'Ê’/uTd]‡‡¡ÔwoDy"DŸ@»ý¬évtÛ]W:«=ć]äCÕ+_~xÛû2›]û+“|>pn—xׇϴ©™úçÚȈªÓ<ߣòDõ0‡B¹zŽPºäªèw¿¿úøÑ8§¡S¯ ¯¯2íL‹0ËÁä–YG°pL³{ây–<áËI"…ýŸ†ÌˆX$*|NC‹Ä±ÇÄ.·=Çô‰í0æ„5™§DflJý­kÂøçZvïlõàÍ>óR•åØªc~£ŽÅ-uÔÛÇKä'Ÿ@~ù ä'Ÿø*ù ÛñýÍ]`bº”ºíìâ¦ëšºv[ Åj™Dšâ0i ›šýh yª³q”ºÙŠ[:‚û}ƒûý"ï]õÊ5Ú&ÞSR[¢úº;¡VƒR÷ïŠ!¸õŒ¾JçÛµð|»Óìƒ ax |ߌü0ˆ‰¬Ø&NìŶíÚNxÌg–…¹0׿:@>ù äƒB>ù '惈ãø6±7sPB˜e·sPßóM…¨•›üÒ@‡B¹.uR²I­st”«Stjg6è(»•Р+öÿ:AgÉVú‚îí¬¥¯“tlå(èÚ"o§&è*»‘ £ü:AG¹Vþ.Ô½J;ÐQ®•m £ä:É@g¹ëܪE¯S tXlfèj-L € çš9&ÐI Ð]²7 »t“. »à*K€BÉ&9€BÉUN…¢­T ¥› Ý%ÛÂÿÝ¥7ôþ•‹oÉü‹{ VŸ4ú&}öZ”LÖöe® (nåxÄmŸÍl åo& P4ÚÊ  `ÕJ  Pz  »ìVƒ¶î¿ÂÆUKî_¡ô–Ê¿’Ŷ¸ÿãoð­¥üw²ØîW-ÝÖëßÉvãMuþ]ìQnkñ+Y\Kð?bìµþºÐÖÙW)}-¯ÿ˜{±+1}•’•†¾RÁ•t¾Âîî†b¾bùM¡|£•>¾BÑZ_¥`­†¯Pr-‚¯Pv¥}0»è-û'ÙrO[*ö E[âõ ¥ Å^zT}·ñm õ:VWêSÄJ†^¡äJ}¾»¨Ò"—£Öü7¯5[àI‘ï>ðÄ ©ç[Ä7ÇŒB—”zÜò½Àânlz¡Zd·àÍÐ=ù±>•1,ÅÕ-[èwœÄ8¬¤‰ÃÜEÁB× B;b,<Œ€Âˆ¸Âጻ¶Ìèa‡ µmeÌ@Š""DDˆˆ!î °žèÖ[¶øqCÏÑb >(uhÇ´tBîIA*þVAbŸàú¥µY?|ˆéG1ýèý5|£éG1—(æýÆr‰V„݆¸3+䔦ŅM—ú¦ÏGD„Óa!‡bªqŸ$ñSK8ü³·îí ü ‰ÚÚ!è•sxiTüRPU³Õ$ÕÔ!î×Z;Ò©L #W3F¾˜qžM¸\Ò%¨ˆªëv¬t“äs@i<­dàÆÿ4þHÀ˹,à’o¥<øÆ 7Y펃aL²©ærfŒá›Èúz“°†¼±Ëú•…¬)¤<ò@Ê)¤<ƒòpÓ »·L˳ ÎÃñ|ßkïŠ;Œø]»âMÜ}½yŠ‘öiïy¦ß︹;ØyÖ¿ a¥ 2º±ù`6ŽõÊ_gƒÐ0Ja>ƒµIÇH¾ãZ!VÕ$É‹"Ñ;˜0®%‰•ã” ËßXpØtÍNSR0š˜ƒ=î)½Vá×?¸ñ$'=hËœѰl‰µk´Ð¶j»ŽéWq,å†*÷gу¹)í½§C4ºÃª¡:.¥£c×RæÖ2»–èÞퟕh·–I¥Þ­g±’ñÖ9FÄg"Õnñµ@·ŽM­Ô­eQKv ‡©Z²Û:‡©öq«­È­cSèö¥µð´†Í—:Mf<, ñ´¢W¢Ï gÿTšÏGÝöÂHbÏwìȤõ#ËqDvìÛ¦ï™LÈM…ˆÚÔ³ñ¬ÒúHë#­/AZi}¤õŸ.’QŠã¨G2Úžm±‡Ÿu«bï8소Aìû®µ‘éºáA·ƒâWäA·;£Êö¡ƒâ›¾ –I<3r‚˜Å‘GiàxÂ1g‘ÁoÉH„!eR†Ø±'bOÄžõ”ƒØó™bOM€$Õ¹»øt=Ëöüøt½­KÜ+´‚+‡(±âQÏ{š2ÅH22¸1õp1Å(1õ°…˜0 ÃP°ý…‚íì4¡J>îíˆ=L”Î,nǤõ EëƒÖ#øL+êL?Øì xnE”õ ${´‰ö–°±^ÑbOy®u#$L/L/ì1OÁ®Â½”£¼´‚»´bº4B¹”#¸Ô·ô¯z†i©L­è,­ ,åX,,åÈ+€+Õ8«¯™>áUÿÏÞÕuµlÙw~…æ-w5UI*Iãy˜4›Å t g2÷…U’J  ,Å’Iè_?U²lK²Áçll¨^« 6gë³T:»öIa-È6B³ |—y¡Ë¼À}×w‰¹F"ò\ÏòM'º™N[ë´µN[ë´µN[:mý|âo È¥L9®Ù–÷|ßoŠ¿ù&e+ú©wÅß–5ÓÄ©­H_;¶ó,½ÇÀÜ"ÝrlÅ6Ðrì5¥!{¤Ý—hÃçïð6|²¬Õì93UJ¿¬!£²ÞTÅvIÆoH¨3ß³L‹Fq$sMÎŽk;±kF§„ÄvD‰×y7Ðy7Ðy7x™¼²q9u«- fy¦ 3ç¢ñžÛ 5amË;²ñZGmK²žcöËÔÚÐP9- ¯!»- ¿!ѯ jZmP¯i®$ß3QŸßÂÎêåÑBõ'B^Œ á Jg*Ä Y๞ê2ŸÙž˜–éZ‘0yìÁÈutǧõzÁÂ8InfyµœîŸ. ,2»DmÑ9Š„ÚGÑȱÈa½ËBFe/ê½îÍöz¸·7ß`- .Ý_‘—÷J}æv¶ÞQ¾ÓÊ,ÌÒBz‘a:ŽÔwŽO÷Óó³ý½ÿã×YöoûÆñ@º`û*Lú.éŠñh| ~ìÇGÊ_¤«&ƒ«45>)êgRˆ}ãÏ?÷÷ÚÌŽ}ãüøDÚÊØSž:è‰üú~¤“1:£“1:£“1:³É¤î ±=ÏtíV:ƶMÇô›Ò7¶mâ®HÉt¨šÀ±e‹¸6ë—Šù2¥¬¯ðÿù¸Ìx(_zåjÛ@åi†Y Ølµ¦Füâ· ƒH"ˆÕ÷,æ|8P9¤å‹dLÔ‹,¼)€7ªÈâ2»>³Á´G | ñ•wè€6^Þ@-§š€!•L­[ ¡­HÐzö¦y·¶BÁC˜‘¸ÍJ m!½}¸å/î‡!Ì~Ûξ¡*_"¹3ƒ‡a6– ]‰é7"JÊLñêK:£P¨’‡1¬F,x9–¾º†Y©Ší5-c_Q2~ª³çÄÞx˜ü‹bNÜÎGÝHþqqt2ÿX]£FW úh’Âfò,bù4&\] % ­*hF†fdhF†fdhF†fdl#Ci;#Žú¶Șe&i.‘!Äc qE.¦clƒ1ËjGgËëiKâA5 ¯ëÉ+ÖjÊa6¼“®¨ô¨VÛŠ_ežÊ·ìí$o³ÂZUý”{ ±¼ËÒ±àÛòÁ.kZ'ò:ðŸ`©ÞaÒM•Áo¥/Î@}X<ž Z+D†—r£€Úu.çãðúP¸NÔ[b'O¼”Þ,Âôr2W­F(¾DÝ“ZE¯.Y¿*úär¿Ø­'¸7Q‡&h®T‘»Ì²ô€¡j9J©È’ﳈQÛœeëF2|K¥¿ɉàæ\”Ë®¦ýäa;Yû—[?>ú,C}þú{¢ªg°äòù)p³pEöo| µTý¨€¦#õ”€©âo bÉË›®ÙPF˜à‹[›såŽñúeÜžÓ4;a7Ø <ePúÀ–°DejlWƒÕØ«üÝAÙ‰b$§6Ì®TŒ?„–ůœCmãlXN˜aPÀHU>qÕyòüžã«èæà!*Cts™'¿‚qŒ!é"iR‚4ÅŸ@-νˆ(ÛÚARØÛ]ÞTa³3Qt/…ª—ÂU†x¹WöÕL½l†á>jy–ƒ™þºµÃÓrÞ¬lA¤ 0CeºÆùA•¨H&Iɉ3ØË¯08˜8Ƙ~ŽB~Á§iþÌ”Žt7»`,î™:+¯`Õ?ƒçòÑXÙ·®Ùiãšlˆ2œäÞᵸåÅûé#:ù¸ŠORs8^ŠCò`cëPH¸"æú„š¡B¸±Ì´¼ ¾ëÙªEµ…S Ð­ugkÍeÐ\ÍeÐ\ÍeØY.R]Â7íNgk‡š®Ód28”²UjŸ‘a¡µµæ1l¸–ßÊâx º­µnk½M•j½‚[·µ‚v¼¸-e½-]¬ÛZëRÌÃÆº­õŽ×>t[ë·ÑÖú{XQÁ,˜žoY2H&‚+´}ÁMæGÜ÷‰:‘#B®œµ‚³Î±ë»Î±ë»Î±¿ù»CrìµÓR–l—µœ]Ï6M«©à,ây§Ùšjé~ZÛÖOË¢¶éµüqp¶}&â m ÓRs†‚š ï ˜Ž¾3V =C͊ψV:ég`®é”t…³Ÿ¨BcÕB@ !(‡é¨T Fc3åhh&!ÀÌ¥Ø0M›TÈÐ`,êòƶô¦Q8äӖΨˆ©52Ó¤cšâÔPÐ\¥ŠhÉUCAµRØ|&` E´”¬1 ‰¤5±n‰\CQµk̕ղ×+NMË^o_ÑtEìMÈ^c|¨®þ5;ÂÆ÷ÈÜLSÍ…:ooä¡Ý‹AÎÔ›¨Q1Æ¢¥c ߪtª`Á4¤¬7ѵSÀÆ@*Ù(pCÀº'¬¡{ ß@§@¾™²=ãìœÑ¬oc`ø²ÓŠ7 2¬Æ#¦º=ˆé¯+ª½æ€nZ‰Ç`p>ü¼ˆBLªùëo(¼´¾zÕ=)(îÙÏx™X7昑 ‘Ó¦|72ŸIr#qAo z&×݃~ðæJߘýÍ%¿1¨ZÒ@O`3-pÄΦ¢à¨ rT´ö÷îi?Ê>ÉópíÔá…f{ܶË  Ŷb+ŠlʈÅ5cé„hꉦžhꉦžhꉦžhêÉ›§žØ–Ý¥žXÞcÍÃ]Ÿ2·½¾“X¾kµxæxÖŠžÒ)ZÎ;‘x«¤‘ÊÑ"÷¯&nõ„ÈññDê †q‚ šàø%0Z œM%‘`¸#@Ê”)%ˆ òªP:†‚ `R„}²Z(†Øäs h`öœ´àj`(`f†ãa€éÖ˜lâX ¨ F…&Rh"…&Rl/‘¢M›€R Д½<_÷_¾À‘.\ <Å¢³ÇŒèÏ£À(ð¼‰çvësÅn-þ×ýÃ"2Àù 8þAO¶‚îþ(ï ÝÁèC.À° Pd0#O@pàTÕ–º¸æ(ÎÀiöw’¦üâz¬t̓d=‘L CùCÂêûk6Ç×J:û–ïßµM[L„,dqd9Ìwe±ïR&œÂ”,TÕC•ü¢ƒ©êï]Ÿ¨qÊ“ÔPá¢ü.ùʽéQ6M‹qRŠGÈSÌ?3U7¬ “²\¢ÆÂÞNþ<­:®­ÌÔØÏû¼®¤¼/ç·åÑê¡ñ˜Õ¬>âQßs¬>yÔ’ãÎk7JµL›˜ž×ì”j™¾ÇZU¬êO‹OÜÁô©QJ]O,E Œ“É7‡¤ñÝé矜|0¾üõûÉñ‘!ÿÿxvþÑxwúåäýÙ—“lKë£bž¼¯©?âUÎs~ϱ…«U·àÊX¶m›íDäò<äòW®&WÊ»½ÊÆï>~ûòùëÅÇ?nEÖþYè{{¥ú”Âj>3[Ìá5P­OR~mÙaªFÌ~@ÒˆçŽ «OeW ¬1æ š°öGø; ÄP—Ú õ³¹-êDæ¨Ö'HÔ6BÜ”º­€µš]`Ω ]ü ÂýÍ¥Û+Õ)ËKå¤@Ý6#`)0¯ß™hkÌEká:Ÿað¢«qñ¥±¬Ró°ûûµ(5 Ê(üí7`eA9>˜¶¶Jo}mpk×í@%Öf×îÓ<.tWF£ó¿ùÕª‚c2¬>D‰t‹WY¯£C¯îçûܵ8Ø]Jw«ëo\ScÈV¾ÐÁrÀ]¦Wyz Mneëß nœ€w¤+‘ÛV‰Äô †– §K»1·oý½pÃKh›í¹í»OGG—è: [§^0ØåjÂWùUtÞD—ßïxà æÁÊþ.Fì`ub|Gà﹨W˜0!9ð™¾Å¿%nño xü½öÚ5œbB@'Ùá‹äÛRVo#4‚¡.áã=®¯½ÂðÎ cµ“¿.ŽO £e3ý­(.)òÂ}®g¶ï¾œ}"ôD€@4ÇÆdÝ6ÅßX„LRËõ-úaóÉZTt8Sèb Ïv/®Fº3]d]#y£v•àú ãwGß¾}øýø;6Õ0üö x|Û“_ÞžN(ÅøJ­ x7µK7éÄŸ3€êW»«#Œ@^;4éa»4i*=aøËü(9³•š#=rM–Y´×d™g³i²Ìó“e³R“5ƒ€ÕôbÊ£Á@jB Ò`Ö``%öØ:\ ²AºÁµ‰š³o𸠽YZ7Tx‹AÎH2kíoХ͠®i‡?ƒØm‹Hƒj­0£ `@s Öa¢à ]JÊ.4‚@?Á‹´,¸Ï¼Ñ!²`/Ò:¢ËqÁ$ fd¨WØ}oŸ0÷ˆÕ_ [1{#ÿ¥/¶w“Œ­î®Ñ¥Èô²¾@·/Ðï ìC|ä-™ñcú¡Z¬x&ªE®Át YdÙ`ÑMºÍÖõQ™³kz¦”8vÊÌÁì¯WñÅZÄôh·ò =LÃ"Sf#S–ðfzƒSëÛ¨tY5p`ƒöÒÕ`ÙôÂ7É6¯+Ãý7êii^Φy9­ÓZFÒIm‚¢cn™>õ-N˜ë¹ŒD®EJµ-›E4ä4Œ¢Ó8'ÅLYFG‚Ñs.®“bJÙ˜÷‹)„‹AÄ‘ˆt †—Ÿ~ˆâòÃWõóãù@Œq2ˆGƒ+~yüqp=$åà;ÜdÕÃåf0 .Ï>†é`8T¿äÒìl§ƒ¼¼üý«úùåb0Š›A‘Š»Ëóƒr4øûúòèLý¼ø_|©µýúÚxÝu´~Åd\yù­TüÖëRm§xCî w"“ºå!‹"êÄ‘C=ˉœ€›ïù.õl/ ¦«ÅšQüïÉö1Þ“4§c]ï‰Ù.µ[Þ¥r㬟÷¤¦×é0Ù2Êòz:LZœ.Õâtc-N§Åé™èü%2m 1×âtÏ÷¥šo«ù¶šo»ò¡ÖâtZœn@‹Óiqºå˜W%N§åâV!´\œ–‹[ ÑrqËAZ.ŽÐrqZ.®m©åâðÀµÊÅiÍ7­ùöˆ±Ö|[j7ÒÜÒsK#q'Òdi„Âd\Ø”sÇul— nz̵|áñ€Ù6±BMÍÒÐ,q\-Ê<Ëls\)õ$Èo6¤–íX¦Û“¥Q=yš«ñJ¹–͘ۓÝúÐ`Ù|m°Y]ëªÆ6ßN1Ý ¦ú£9©Û[ûãäu”G¶©l±ÖRD¹V¨ò.»ͽÂsëȰl&Q±ÕñäÚ£³¦ƒIåì‘öìÉ0LÇ‘hù„Wåͯ²âu”7´úíðú ›X½yuZh‰«*RFÂ~åI”¢1åe4¾Í{À+d7¢Òé‘ûŽp˜|âºqàE¾ù–e‘ˆ†.uc;¤<6u\ªãÒ'é‘3Œ¹E]ÊéÄ¥¾íÚmÅ¥aN=ò%‘©V%5ªä22uÝ–£#S™¾æÈT«X>n« e?yÈ´ŸÜ"Z2¯‡†Ýf«^JÖi5ztL»:¦•>b¿¨v ×.EA"Û€[Û®RóÉópñ­åÛ¥ž)bצ̉‰cÆLpßh“È‹ÍØÓb>;PzÌ딾ç>PÚ6¥¶c?˜¸8- Ð%4¢ÌyÎï·1ž$¶é´JðpRËøhŸW˜®×—Ür§ecyyz¶{¾Ѐ‰Ðåg>‰iĈ%B3±m—pí·ì”ß‚L„+BéªBüÇ\å·<œØuÑùðW“—þ 뫪£ýí¿hÿeü— ›É¶xœY4üHD‹Ã Û÷)‹ÝزíÐtM'Ò›ÑlÍ&Ø\òÇ¢Ìa.í² ,jÚv›M`BÍ^ÉŸ%Tõy YÅo·{¦}4‹@;;»Ç"Ðüv Ÿ@óÛ5¿}e±^óÛw‘  ùí=ÂÑBpù÷qe·ÒÙÎEXf£'E£Dzq„ÔÃÐBÅ¢N‰1‡BP߽ȑ/ˆÅç±:AÌ©ˆE?­ÎÏøãó©qÚñÑŽÏ®:>É(|*[ò O옑ÍY…¶1[x!÷wE,#6õ™ c¹1Èá9þzTù³w=ÔÍù04vRô4ÞI7§º…ÿhoî͸>] ::äU¨ã¥^×p/q-Bý†¡¾ñ-Ø‚ÿÖèl¾çÞ8§QÒô,¤gé>ͳ£ìO([íE<´íEìšÑûÛä;¼Xš„‡®c±É‚Ð3æpAm„$„”«Î´¾+Ài’b†r@É7B‡Iø¡ÁÑ;W=¨Kñy”\%Cù6¼7.Gª!ÿª6,gó"ä¹P,ÈÛñPm[îu2±îWóÄGýâVÉ’Ÿ bep+'qƒGw|ÊíªÖÆãܲúª¦$`.-LQN-AíÐ.z˜·ln£œkÁº‡ ðø¦Þ¹…)ι¨}©Ég³kèÞÝ-cŒsmX÷²q}^ªroiŠqnj@€Cc¾\mûP×1(W×ÑÏBv½4¼îs©¿€¼ncÜmú‡ºßâîãÕüäßÊã^ Õ9‚A=óÂ騲o^ü …™˜ö­\Ý{ å@Ýoa›µŒQ—Ü‚uAàÉàÖD@—Æ8W°î!<¿©>RCDa>.j~!Æ×óáÀ„«°×±eŒ¹ú6¬{—T®¤1Ä8¶€¬þ„€†We6ú´´E¹µBuŽ`Pó¿ ê\c‹tnê ŸÔ¸àÂãØÓú›å0—*;”C5bùò ä f \êc 1W¸€¬þ„í‚[”#ØM_ÙâÜZ¢:GºE¯±´Oi‹¼ŒªsÑ0ÕÙÍäÚÂãØÓú ƒuMKS´[¬í°_Ý,vц9×6G9ØöO€¤iÕd·:æ(G;Àþ  †®.`;T®lq..Q#ôv0@P¾ñ§a‡¹†±ü ¢æÂzœÚãLƒXþèé°œÙY*؇ӵG9×E®4QNÒñ†¬lQN®P#t4ÞÄ…)ÒµÔ>€'7°÷iŠt¬µ @ó½Ãܪ QN5ÕŸ fì騿3¶¸kX¢:G=®sØ­í0N5ˆå_ˆŽçz¦§ŸË v¿ú”ƒ}ì†s…ÊÚNObœî#0N¯a7œƒ43«a9‚Íj´ŒQ®¶`ÝCÐòïñT]iøtU€r´]?iä~6×à pWÕµG¹ÛE®4Q.ؙﲄ%özŒ»}èú)H#wÃ+X²ra‰rqiý ÝO´²“Öà·@9ÙÇn8hæ6>ƒœ]Xbœ\bZƒ`Ÿ‡ 8õ»²Å9¶DuŽ ÐQ¥ ¦ÙµšæÆ*7€Pîn€o> kìn2-GsD ôÅáÀ.uiйÀ¨}ÚÉ! Ld÷x7[Ø ç Íè4~™Áz°–1ÊÕ¬{ϦŸ3à ]#\º‡p™_é¹vƒ%•ºö(7»Èµ3€&î†}g9Øíl[cíàzǸ-Ì9h-?Z.¤`=Bð1sƒ îÄxÓIDCS‘·æ£‘Îàwea½º%®w ‚75•@'WÖ8'[¸Þ1 >›ß¦0ñaâui›ŵ“û,Oxœ¥ƒ…–°Àßænçå`´Ÿ›Ncï´bâ1Ž´å#· Gb[‚Þ ó•T‡y©ã«½unÖ ÇñVMçÆájU¹Þëù¦‡Á^^r–+dª;™ª½÷®^ùúçK˜ÚÞŸï~,ç`¥Ë÷o€ÍþE)Ô²°£Dò/óæOÕP]ÂôÿšÚÏ~ µžý5ïñÇÁÕdð‘ÝVó› –LÇ£q:?Æ\ÙâýjQƒÅq(î¶ü64Naúý-[ñSÒRÍT9_Á“Ó]-Æ£ù²VòyS­mê ø¢t]WÛÍþòúõÇtÑmâ^]Ù‹®¿9ÀGz•ß\ÜQŠ5ˆ“ò.½-0 Ç*í s¯†ãüv 1[îÁ*ëL>«ƒè%õpÀ8µËä0]‹ð¢è×S"úi¢«¯8ô/QÀì†ø©tlð1¸î³‰ BŒáw¼oº1 ¹Ä„‚.²‚ ¤]y»ÈÚE4"B#b4"Á#îo½Ã6n¿ cû#ÿþðëïзe¢FWci®ì+B„s†<‚ûèŠB‹•íwoÿø…²/|2žÌ¡í£jTŽ#¿é¤6ol)ò˜‰ãlX5ì[Xš":À>$ßÃ@:Á5 èööQ®p6v!æfu Ë>å= Ž3Ùœ³ø ù¦''ò²Þêx“·ê,z”ïn÷jrµÉÓuloLJ–Æ“oEðT›ÄQšq™DÜD`±Šó"ŒU !’ÅŒr%hÊ©p ^/.ãÅeP›ôµ}wnj ™ IÒ— 9I¸ä´½Ï0§%´5€ìßÙà™íeðPÒ2'·§œwrxÆ‹Ëxq/.ãÅe¼¸Œ—ñâ2;ÑÏB潸Œ—ñâ2^\Æ‹Ëm½¸Œ—@¼¸Ìf[/.ãÅeÀ öèÅevû'@ xq0bàÅeȵ3&¼¸ÌÊ3/.¬þ¼¸ 1ðâ2û^\f؋ˑkgMxq™Í˜—Y·ôâ2^\dêÅe¶6ãÅe¼¸ ÄÚ‹Ëxq™¸—ñâ2‹ö½¸Œ—yhkÐãðâ2ûÙgéÅe¶™{q<È‹Ël5ôâ2H7¯  ªIã¥löZ¼”Í^€—²Ùdç¥l:–^ÊÆKÙ ^ÊÆKÙ¬@^Ê'e³ëO¼ ŽWÁÙaìUp6ÚM½ Îê_NW碜fO¥„C3JB-H‘Ê0å4IxZÈBsnþ’¹(TN$L ç×w¯sÿVb-P±›Fž”æÙß½¾Vóêuù[·¹g¤#1ú0LH"EG†Ò8¤,i©ÃØ3 k7²WƼ—^ ¦ˆ1¯çYêÂÄ évå’…YL×™—:y[ÙywúøS €ÉéGœr|63ƒ§ÇVúïþÆr2Òyw2úñGç ™ŠS–:¦$ ‹8I ¢tšsC$œDŠæJÊŒ‹Ï%ÿÀø¶*Ÿ ïó%@p+Á> Þç-püºjßA`‡+€ê‚[lKû¹¡ðW±CNÜFKóÏ „÷z«Ê ¦ì@³®:ˆ‡¶þF¢›Ò1Œ¿M  ²R tC9Ü›í*…ˆ6VB‚n(¿·ŠÂÛèhb\_ÕŽ!PmÅA7þ6íP9·±$Ä#ðþn?„cW …N o·i"bZ4Â…N 'Ÿ¥Á-,5  x7*(ÂѵÜ!ààg_Xü„óqYÁ„À,Tñü­Ø ÀˆÀ.e@.ÞnfÄ´ð Ù«·d@N—¹Y¸ÜÂRaÑ‚÷w£ž#ìV7è;:`Û|G…Ñçà÷nõGx;qFWœƒÿ»E!í,•@.žoÑŠ„·Ð–ŒD¸Ý(<¢øk\Ó’#áG4ïãšÄ$ÙÕt:ø¼OyÞÒJÒ äàû6AJL n¤ ÆÉãM:•|#'é‚qòw“|%ß¶á¾®«Z"°.D¸¥Aér¹Æ-ª—à‰J4ïëš&Ù9êà7D#ÜÚšxåPüµ€¤3á­µÔ-ÝPW°]QÞFOìÒéàÿ~¡Mx[]Lg ÃUìÓß·Ô—ÆtGâ¯ Ë ok¡Ÿéqð|“Z'Ý—Ñ<êà;DÄÜÚRmÓ‚÷}£¶'½àt¹ø»EòÞÂÎÃÐWWÅ´ÙE\ÖJ¹Óƒ¿[”B‘ø–„çPWï÷ˆÂ[ki|º¡®`»®(¦¥ô§ÊÉïmr£ð6ºZ Î@ï÷©‚[êÈ„:Âðþï'…·Ò¬FÅøÝ]–ꈬUDÁ:Ü2˜Š)º½)2Ôêè:ÂÜ®~«Ê)¢•– ©#ÌÅ÷⧘V TŒçäv¨¢ÐƦ“Àö¼Fjcï5R[¯‘ºíÎw%ä£i¤"º¿¶X*Ö¨¦" ùT ¤ÑQÅ@Ú‚ª\KY›c¯©§µŠA¶DW°Žú*דaE7°ÔþÃùcoj_õR8cCwä%wÆbK‘TÌ"„+Âéžö´P1ïmQTLÑìJNZ‰‰b`=UQ´//Š­R?N±ø ¥<ŠÁõ$H1Ж)Ö%Å‚]z¨žL)ÙÓ+E†w…Kq5åί¬S9úJÓU{ŒZUl×2<`pq(Þ\Èš¢ µ%±:uEZ½SW,sE:ƒ{_ ÕˆxWúʨŽÀؘ8ÝH‚|$K=T7TGEÜBWLSس®ªŠE·åU1ØZg…¨W1•šªh!Á Ç.”XQÅUNu\m SG˜Ó€Ñ b*9–b .t‡º®Œê Etª›tRÁˆ®u!mŠGàolOElÉœº¡ZªªNø¶¸êiÏjag¾¢¾ÆéÉ)›­·êuX·ê°–BF.ª¦ˆÈ¥J Œ†<Œ’‚åiÄ‘LÇ)+$ Ó”0í…X*Äõ¥ÆÂ0­Çº&ÄJy!VûÎmWbµÿúluÆ€R¬'"/F–B¬TtzÈéÆYÙí]¶bõB¬Ç™~<=ºrÊB¬ùxxa:ü‰YÆÓ'”e5”!f"OÍ%‹PÓBëHsÆó,/$ÏbAHcÚR¨ÁO¾ ~]]"ŒK|¸.gV§TóñxÌ —Ì 8þ2 îÇ·VQµ¹k•¬ªý Ë1¬ êÄ<&½XŽ`ÑÚ¸°‚¬¦)Ó­Û6&z<èàËõØŒ°:ÈÇfˆh‰¸Ö²iA®?ëÁx2´¬¦õ#íóφÓ$,ÂȧHvÅåã„D¶(ÜHDv3š5åÔÎwó uTZ½{/?˜/döòõ¹¼²ŠÄ稟*ᇜΠ¦:]”'=ÛÚñ¤çÜHÏÖïá¤èéánL÷d‰JSfXŽŽU(Ͱ”æ±ÎyȤ2ãZaþOê\f “´ç7õY½¯ðà'mÆi3$ƒ)Á'®ÿŰŒ\œŽÈ|[?þÙiØ"©b ‹»I³P¶s*2i¡R*Í{ûìÒ*ë´cñnŸ#눑Æ:š÷Ì7öžilkÇ3sc¾“↠Õð­7fXޱS^!4¼ ‹Tšq"óDð,“ºà”rŤ‰ùWâ?ïí%¯ëkr›¬©R"‹[žGse†È@ÕÝ šÛ¨Ö:küãů#3Hô¼c6³[í<:'¨ÍöJDw7ÉÎE›Ž"j«½öî÷Ü«'z~ªrðòßs»ãˆåÎrÿ=)Cr?i¿€ÂÒûÊþ²‡ìÊvµ´…êAjCZ—ò°À¸Ù‡®Ÿ¯·ì>Ïû¶¾±õ»p‘—™íëÌæ ãCÆå² ¨jø²ÏxÚu{ê(4i(0,—AkýáEúàJ\x.®ÊU¨ç\è^¯Dñ_ðµm€?©ÌR±'Kñf&âb !Y"d.ÃŒD’*n¨•(ò\0Æ¢0§QÊR¼oÌu5ånðÔ®½Õvœ#ýedu±\gŸÑÍ Þz»¶±Üô×7?¼ý>xûçÛ°Þãó?>¼­ÿºV&œ37RÍîíT·ñ.m¼V¨ì…g¸æ¶5ƽ®w ÉÐKËL`I •1* Ô‚uàfÇA”1ÖÁÖ&‡­CÚÝ8t5­nÞÅXK=,çs`â¬ku¯…\;ibveɰ]] svvÕì‹7G]ZØ?k O¡>V–H÷jLëo¬V›*al‘Ž-P#t˜ ¾Õ¦H×Pû„w‘K[¤kíryƒÎà]ÐÊéެݭàÏ™šæ ï–×–˜Ößðd}EË}’~[;>×îsí§koIvaî-4E?Ä?¶…ZÏÃS?_ð„ó\À7?ÁÐOTÔľҮ#-žË ³,#‚&¢ª ´ a$2&³‚„ FI«ÐWwÙôAÂbÌj7–ð$îWwŧíê..cÚô@«Ý¶x=“ÅnXãub3 2‘„ŸHp­ðÂhn(õrwŽ¢@½b,w¤Ã†dû Áúû¾Ì׃íÿ…#ĨO¤„}=k¼4µ“Ö3ZöÕA‡õ8ª‹nÒ„ÏO%¥õv‚áÜYÔ‹íX|¤ˆ.T‰f)UÚüW4§©äD¥šiIÏ)×¼ÈÌ?ûuÁÃçªÙuÁQ´]°Ü³g-TÛ°2ø™DißÜÚàK¼üÚ`?ýtTj‚tãÔ×o«L?ÍHy1Æ2N3Íò$c¶ÔX‡¹Ì5Ï¢"))ÒXûÚtÏXþ—1 !=Ê’Hv8‹$’J‰$-ýêôgÂX¾Ýúôˆ»>³çܦBu't÷±‹\«¤Ü …÷{G;¸v¥¹ ï÷Žêvpkeç@ñW*zÇ´¶¨Lw9ù¿¹ÓBS²î‚qòxS‰<| ®v »# ïõÎÊyxN¸UÜî†r˜dÛ^PjcQóî†ró{K=¼ tèÞn(¿Ga[µñÎ@7¯wVåÃ[êT¨a®¡S=ïŠs¸ôÝUû˜vräöñëUüxhëozQqïròws?¦…¦ßãäñ¦Ò Þ¡ß°ÀÜ9Bµ0sè,7­pBwám,+ú x7®ÀÖxøe>ëK4v#OµDãÈ;ó:S*_Jræ¥$GÚpðg…NzMÁŽâ“c(ÅÆyœeažhÁ A3IÈRQ¨”é4“yLh¦iä+O‡Ÿ|)k+OBy¸"}WvCÙÉsP=°æää_ã$Œ}Õ‰VÎ(Z9A~q®U'Çà’H©â#D(-´ %KX‘ÓT¤„¨‚KQPØZE_ròSNIÜ«’Ì«ª¸"+œ`}¿Þä9P•+699ÒB‰d-^ÑË!n¬Õ8¤@ä*C0n• ”€ j1œJ>œk=p宵u *+‹8ªÞ@•P8VkT¦®™p(ËpªÇÀ–C¸×_<@ávzYðà\_qpa¼ÆÁ¥Â±‚SÈàV1q@©¢fÁ©4¹&SšàVq@ñªÁ±Øá *xÁKUƒc9ƒ¯cð™A/‡èå·Â¼b·üWõ€*;p®qp/n€W5 ‹5 ç7µpÒ¥ ûä³ßR1Âó,a‰Ð3™ä‘¡”<-)Òˆs.‹Ô‹!žÛäAÄ1{)1™Ñ«s QD:u4Ž¢=‹U{)m“Bô*·¢¡?…à·ºõ[ÝžGØè¥ }¼ W¼é·º=ƒXíLC¯–.ÔC•Í.Fã»Cµ„[ÞNÆÛçÞ°K‡g\“(*2žE4§š‰8£†„§aQ˜£XÂ(ìúå?/®éïÁ£ú(ø±´£Uð¥4ÑÎí<ø+øoi¸ê—àýýl®‡Áûº —ý\^]σ7úJ¥÷æÁ™ŸÉM dÃ…Ñ|p¼ÿbb-Ãn/ƒ×&~Êù‹ËûüâÅïãÏÚœ«ÈºVÕß;"±wev­¦yðÞ†"†jWØt8{u5º]„]•á¿ÔtüSj^™Ü|ùz½fó‹EðŸ±Ü4fŸë¿_e³Ë/jvmœžGöZb~R†Ù¿]oTö/=úZê ˜®5ÿÆÜB= þ«ÍÛ˜7?`¢‘©Z³|«nÁ;m¾ŽûÊj2œ®Ù¼lùۛ엩š_××]Z³üqZšóssíÑoå0øÑÚÕM*‡éâçi™ï/ƒwêÞ|ye¨gÓWóëû©‰+.Íg³º±æ’Þϵ nfõ½œÕG¯J­õ£‡¾ë/gãbþEMõËêUz¹;æe‚%¤_0—ðva~¯`.¢ŒÇqož0N:[ð„'{Êû¦åa»† Û)®Îô¤aëÏy97è˪GDª×j8ÔSsùÈPµ¾u«ÛöQj±Ä-J­œùhL¯¦j¸gì]>óõ8cëøð!”}óm¶}äÛ•Ÿ>ÙFÆŸfñî©/û=êzÜQv;é*x'³^Ò~fÿïåílZ}-êXýÓ±×;J›3p箜ä!Ïu,Š¢ÈRaXjLJ r!tJ³(JcA Ž»þ½!­éŠ´ÊX—D´jÙ“PkéIèã’ÐÊ5¡Ð(¢r+ ™”BtI(¥4a×b¡ö”á·{hh5û²ì ZlêÀù–ó¢ ÷WWùTÍl!“sPóF´Eé•„þ½;Lí\éúNg8ÐòÝzvd÷ÙQãê‚S34í'n¿¾þ˜q}ÿhø¥PKõ%¬²Ã`[¯Ã5[Ì÷¿†·Ð6'=æË©›óøA/J™Nl”¯«eüÝ¿¿ÿá#¹L K²6À.É4ƒdÇÕü悚w–ë?éé#æ žÎ|S¦Êéø¢€ç¦ŠñhžGEy|±‹©Ö6 >è«ü¦æ=àWÈ >NÊ»ô¶À€Êø_™ÿÇ4<4´g 1ˆqjë‚0ˆ9ö}šèêyE€'ü˜¥¨øO²PL47Ft?•}õ`@£+Êж߽ýãÊ>Bnnº´#ÿ…yg²é,çeQ}vá~Ó¯îå(s¦zt­FÙr{g¢Ìê›´3ËëM¯·±))ÕMHmI\™dWe—N2ÁÝpÏo±ˆ$YL %µNU˜Ñ+ÉuF¬àEš¥!‘”ÀJb}~Ëç·¾¥üÄnÄ×Ío…akžm-¿ÅÃ(Œzù­ˆ±$&üVd¾;Ù²¶é’lJo¦Hr^Ù-ó \í/NïO#¿•8–ûü–ÏoíýŸßòù-Ÿß‚Øùü–Ïoùü–Ïomµöù­“ÎomÂú?Ÿ{N©±'J‹Å…ÈI–Q]ð<Ë8ç4‘$e/bs.ä2a:–4ƥłÕLoë»M|L™-׈/–¯ÚÔUL}¼kÞ¼`ùèLÌ¿Z–à“c>9öàɱ“£L’0Ži';&ˆŒ)´•”†<ŠÛŸëÎì˜ÏŒ@fLÄÌUh÷Jœ•s ËpRZæµÝc÷Æ2ó¿~j.Sƒ½¿;yväD[í~9*ö-©ÌæÆ+È3˜ßJÆlo¾lÉ—&zï;ç“›ä?šÞ˜½¸Ùô~2#‰›i*°¦ßÙ¿>†ßüúáÉvØÓ°%Ͱ~ÖgÛ.ã£],¶ßlXÎ@=¨ùÖ fW{…VNd¤Ø²B|éyörv£/-I»€Dx)î‹íê* `Öl™±Óòjª'&„0Ì`0¾Úc<µ·ÉÆLåè©«.ôÆN޳&žê8J¤y‹<"<ó”è(¡‰PBë¼ )ç¡€í¥öÞÄ S5~/g“ m«8q#BCÍN;EÕÎh<FÆWMNoG#C3±!ûe¾sVÄ,·5k<æ2&ŠÐ‚F©Êc*sÅÍ´\e bò«¹Ž†H8’-ò¨ƒA•ßֺ݀Íp‘æŸ25z‘êÀN7ã‘y.º®GíšßµƲN«Û‘w66C¡6å|öb86ž¦xšr´ZÒ8‰XÔÍ–‡qrÒN–‡± ØÚU®Üv,>a~ %¦‰ëRi;líßG·2»0v·j_Ž£2-GsPŽ£jÖO÷%•[Ùçãr©ú'½lé·F×'ùmœ ­Ü¢yVI$S2"RéB)’G1'¹`—² )“$f¬e¬½¤ç޾ã‘% IëÖ_°˜°„µË/ÌÁÁŒ²«ÿè åSÊ$ ÉxyýÇoŸÍù„G-@8ÛrùGgù'*+¹-ËzœàL',æ™ )çBPsž…±,7ÿ¯3.—‘Œ„O´z²ì­¨Œ^%Z{Û9&Z;“Á½\«Ÿ~º\+#>×ês­§ÍÎ}®õ›Êµn‘t:·L’HÐ8"‚h)3™ÊPR^$B:eæHiÆÂyU§gD}Þ´E)Ž ò˜„]‚H%#ŒÄ²]/hN *1±+ìäâ“1D&æÈ½°Ó eiŸktvBlpÓ(‹Iȳ[Ÿ{Œ‰Y¦yšiªižF…Ês•šÿÉɵ”i–ˆ(äa¡|ݘ')ž¤à63^#);73¶ucaøuc­­Œ{Uc~/ã§+cÄ‘¢œbaÌVs_4æùš/; ^¹‰Rš®ì±¥fYN9ÉãÄDeY"³¢ˆSIŠŒÊ<"Z“"%¹ä‰;n4ð¡_}cϰfÌ’Ã5±óäH™Ä!ï²CJ#.H;ƒeOIî;7ÀšØyÃq<1ÜA ûôm_‰Ã5Êb4j0S¹y‹÷V† ä C;q>»¨§Î÷Õˆ•…G†´z5¿a C«] 2l&w¡¶“ØÔÎül›©[˜íp_¥Ô̼ CUîkh®ïtçvbFm<›ÝÌÇ“‹*á±rgË¡@ײœ.„?,ÝÌO‚0§Â>7¿R”Gi’Ñ‚…7,ŠBiÎRšg"¤f 0ý^Ï™>«ðƒy…O¿Å¨-}lécË#,^Õð'»zqË6PÇ`%”e,+â<á¼ Í’0äTG†ð°H¥QR$)G “ú} ž!ñYò?YÛj'?á”GIo(’ÄI§2Ýœ‘‘"ïnåÙÉ“í%⸉ßêÛ§I>Kì÷Úÿj?‡} Ì嚆š1/&¸Œ.Ãå¡íDþ^^\0YE¢TÐ4•yÄI& f:’\Hªu‘ ‹(ê‘ nsÝ$ê,¯ú½L§jZš#3š;36ö6Ûö“½îñdX%`UüXæÚ ¯¨(– –Ô¹¾óq×?þlúŠYÌ‚ùµšÍ«Sgüvð嬸 šGxù(œÌ´l©Xm¸ƒƒÂcÂÚŒD–šñ­ÌúÖ ×͈z|Q33ˆ”óRÙi‘fLmj`êžùÙ¼!c»YÃeðë<(g/Fã/éó ½·Œà>h’µ3ëŸ}ójQL;Ï¤ïæ¦ã/Óì£3=ÜÔôï·æ­za~a¸ºÛÌMi`ã¢r±üÍà]†…·åp2жk7´ ÝÍÐ`íõ]9›Ûj;–«i>³ÏÌ´š‡^˜ûrs;©î­yÇfß7ÃæÍ Y¿¯>¤`fÞGmoŒýÇïíÿ¼°ëY¾ÞýãuÀÂ$2çÞªùµýϸÍõôûàŸÞüÎ͉†>}¼ÿÅ4lÆ[5_™5?ðâ¯Ös3GÁÐÖe¦icP¿µÁ¼â9æF./Özùb6ÑYY4DÇz¦;Een€¹¥e67Oòþ2ø0®µH«Û>ÿÞNù-:ð³z¾qùh‹ñ`0þRݶvÛÆ“ôväã¦(*¨rhïcÇŸá߃Ÿþ|ó}ðoƒºrÎÞÖ}ÞÿðWõõò*Cˆ‚Æ‘YðÎ<¤»?~¹\L…V®ý7|]=’÷æÃÚ·Ó>‡ÕfzÖtî'ó2éAð;Ãgg/í¼Y}îrqîU9TW—Åt9ÏöÃ@2žNÇÁ?ÆSmþS•©ìúV¿ªÿÓ™–{}=5îü®¬ ¬µ4÷ÆüùêvXf× ÌÊp>žØçóã üúuáPÚ¼ªh«ÎÍ­4lºó#¿Ùa#ø§ùl̃ͯê©ÏOöä«\)kz©V¿ôÛ8¿~rK“jÓ«æèÕµy:MÛ¾cvüÇ\Ùµ!9æÒË 2ü\ŸyõÙ0ÙËéíÜügÖ¹ 7†˜˜—îGu;(¯š»dÿ|Õ𤕡;6áÖ7õÜå°>óÊ÷Ñ¢#éÌà–W·`ÿ¯™úªŒ=÷jt› tv{yk¾ÊËáÝòÇíÈ<1=êrZFÃiñj:\šÛ~y;\Næ«I]s¡Á»àŸ† ޳º×Í„¾vgŸß©ai^…Ÿm_uU¿ÓêÔ+­¾š·©}Gß©Éuð»þl^úÆprýJeÃξ7|ÕLÍëP¿·óêÏWÙýÕè‘«ÝP™KŠÊ\šh§§kF#J"J;!ó€)tl¢ðgöÔ5%«ˆçì’”ŒˆÃ’”صø;S‹½´Uý/y£§äþ. o æ9c vêøô§[{mÙílp»šÃÎk‹é,Î¥Ï:± ÅÖóMl³g]Œ147lþäùíÓíð]½Hð¨ˆC²¤ Rä"a1“¢(ò8a)ORZè4bšû¤ýÉ&í)é0VK¶×;F‚ö“ö,Lâ0jK0N¢p_¹£ÝIjûD;rC©óMÔÐ0è‹Ïå¸N;ÐSa³<¤~Ê}»¡Ÿrßö'—ç?µ¤þöA±nä€Q;cÉ‹8ÎCiÆgÁ²"¢5—ÀÒHDŠ0‘J.DæG퓵קÚe²#ÏDN£î¨MLWßÙ’îÍ3U‹¶ÛØ¥ ç;nŸÐ»©×)ø‘ÚÔ~¤Þ[W¥*ž,È–’D„Ñ$ÍiD’4Š8·Ã¶ynâ®0RJyª|Aû©×&êס÷WÆI!xwZˆÅœ°(l×1§Œ£ƒìêU~ž¡¶˜AÔißæG«Œ‹£·ëgzÖ•q»¯ÀÃOZW=œÓšŸvPN„æ‰H’0.Â4L¹1¥*¥J)Vs–¥±é¢aýùâ8_ç‹ã|qœ/ŽóÅqßlqœ‰‚úÅq& ·GA4‘$éÇ%a$ÂöT£=“ˆ=IËvt®ñKqÜÉ<”ÄíjH‡ˆÇ¥Bî‰â£ç«…â^ëæëÕvÖ«!nÏ¡egˆŸ:¥Š®'ɳ' CC©XFbN ÇL<ŽEBižKMÃæQFYXHæÃP†ú0Ô‡¡> õaèóCѯœ2Ñ­x±Uœê|Æfô< 5œá™¡'[àz`0jŸâ™Í|aæ³ Ž¥ó@” D‘¦š±(KIQÑ$Ñ<¡Y. ¥ cyS^ò1„!| ácCøâÛ!Ð µ4äì!bˆ¾Ô]/ŒðZÇ 衪v>xðÁãÇYI–f*2C8%¡IÌ93¦â(‚ÆY’ Å)}èàC:øÐÁ‡>txæ¡vé® $}ˆÐ¡»t·8œÉÂ]—°á„VêÚ)‡CWüø¨ÁG "+}œˆAiBÁ‹"JŠ˜å*ÏR•Ë0-Dœ J3j?Ùà#1øˆÁG >bðÃÚº™ƒHH˜ôD¥Eh†¶z&†Ø·¯N'bðѱ£Ê§E Õê/#}þÈàÄ·¦.»kob—ßy¬ ›=ø¥?çØÇ@d[ÕºH½˜âwÆ@ä#fN ?‘iù£Èˆh.Â(R$Q)–¥œ©4lU¯ ³BË¢H…ʼŒˆ–}´ì£e-ûhùÙGË8Å!ënÁCã0ag«ç˜›“5K/!òÔ3ôáìøìgè}”‚ø(ûEÙ~†þôrç?C¿)Õ`FÄÇO5Äyó('2Ï©Ê(åV_-”’†šóL&*¡ñ©Ÿjð©Ÿjð©Ÿjxî©Ü€0âLÄa'×F KBÒÊ5˜3¡Lö¬6Œ`c®¡‰¿Á\ƒÃl|?þß7ÇÅr-g ÈQÙ·Ç}ÐÐøéçÒÔm1»¸NÌÅ›OòÐÔìóŒ" gÉGû0qI£ÄÄÍMÛ!Ë~­Í\¦aN ûÍbÅxÄ5 ÍžªB¦‚ä”FPÁœ™/ÂŒCóؽT››n©]04Š!–æ03Ác 'Â?˜»g™…%¤ö±X~z;Zñ+Û1³êÃú>ørmF0ÃÒFÍïY:f·}­x¨¡Ÿ3óúMÕ íGðá9YÕ+泙˜ýÍ6dš½ÑzbX× ÓL9 &×÷3󫃠iÑ´61ç\Wd[YŠ6«Èñ°¼³?f¿Ž‹ñÈuK(«£/ÓÒèÅÏê5 ¾èÁ ¨¨ýLO«+²|,×]˜væÁxô¢bƒƒûÜê·ÛÑ';&þy£>õ(C…}£/gÅåHÏw¡$´3TÔ£Ù:TPF㸻V,"f„iæD,Éîq¢©àê~z[¿ ûÕ8Tuýòö÷à3 ¶1Ìô‰Æ“*°¬þ(AÅ&¬«;Ùºõ; eMšá'b]ÁxÆzñp×óÐÛûÈÝ#O÷uÁ´»©ï}ˆ”w3þ§ tþ“6©açY¹u4 ‘‰â›ªÓn.y·if"¯Ûy9˜í±3ñßÜÌ˪IÜæµOoý L#ÔoÇwÕÛñ÷ÏÊýmýË ‚f,Œ…â‘Ê‘?u2´þÁk3pîùÀ¶½ýuËëMÔÝâíd‘ÝÚÙx3¬™ý»öïü}ÑÏümý74}Z\®ÊòÀL5#2IX&‹Øn!•‡Ižçq&ZÑ4W”§…b1K2ÏT=Suaª”‹5¦º£~‚RÉMÜÜÉi$\F”F",ÑÙ¯i€ã©Xµƒ³d©×jh¾ Æžœ¨Ê%QwgñDÕÕM¦ž¨>QCÃTã´HcÅt¨=Q={¢Z¨ÛÁÆ¥ýà• ÌTA2ÆIFJI¡IÆigQÆYÈx”$<ÉX.CXEgªž©ö˜jDHŸ©²Xì`ª†Ät7ûà$Šy›©r‡!`»Àþg·ª"k€Ï’©^Ç3í´«ýãqÕ;nò¨\µzež[­/ÚóUÏW7óÕêýØ™ZÏã(¢i¡ÙW n7Í ¥XÂSª¹H“}%±'Ȅ׾¬GãÂõ½¤cvÃ5VpŒøFÑ2I †šeRMÏׇÔv5Ì(âÛ5"O²"T¬,•&[ˆÕ]6l{9®#™êö$w=‰/æNåq7 ¤}3EÅvG8W”Xe,·>v¦„à>õ©6ÀIÉúD&v„#.Ðôer3‘ Ñu‰L®¿ïoàý—üžò˜ð[§}ŸÇ¤cyLš¶ëÓ—}×YKfÆwÊHa5’„h,,÷FY«¼— ¥œJ&Bá©Tkâ²´ÏWÒ)vŸ‰nä+¡šÂ~ß(3E¹j 1Ë—®7Rtm:i¤€Ýò})Â÷FŠÞHq§ñ%ëׯÒÌyìSL)«ó¡i4&Õ&5\§©E¤ÎðÑ9#ŷ驼r`»k¤˜ÍøÉ™ ŸpFç dÄrÍÂnh)Ö¹LšeµÔµÚÚTSæ­àŽ[ƒ´iDµ§ÿ:åÉ/_ùâM¾tÛ_ßÂËæõç|è‹2y&å%¿a>nü±‚Æ GLä;˘ ÂvL(ÐÌÓ¼œÇ;ƒÞån¹H¡ ðñg<[^d W‰?ކ¹åÙ¸x€ÿ¦„gL~ ìùà}²ÜXÍ€z¯àÖ\^áÿØKÀùs@zØpš? g®]üÎÄš¬¤kœ‰5 ®¿òAÎD›9±bTÐ5Î O›x‚_mö“¸aO`«¶õ÷^-Á›êÿ“ÕAx°k¶ü9X¦³° _½Éáë#|&½‚Ûk„˜ {>ÚÎ <Îãõ~¼$ ñ-SÃÍÄ5­‘>¡É ˜Ö´ºÚ!w˜ùï;ã¾B†ëÞwÉg0O¨™»ÝhûN¬#@_V‡ˆõI6p¯â¦Î'ùþÔeñ…™ºÔ>6Ãö‘y« åœ0¯W’(o E*eÄbì¨C.#€OœåÅR§–çŠäýÏÿø) „7—Ï[®#-C¨Ìº\ç ¸ïOiÀ¾QÀGû­g»TਦHù2¡ÁÕ.\“Jí¼/ÏüBU×r)n‚à`í†Ó|f"xCûà`WŸ„}4ºu«+£±70n^AÿÍŽt Góåj\5¥£üÜ'ÿ‡õ{˜¾1Èçù”ò¡ôLå/Eð[þÛ¨ü¡ˆ? ‘1ÿ/`ça¢N–¸ð·aùCìv \4Ñž™âÜÄž³ðÛ`¶úíþÎ?Íó¢œÎ‚Æâ¿“¯±·½þqp?ÞÙ}ÿöÖÆþ£tðBÚ4ÿ )ñ†ùãºXè+óÏòè-@³*?‚‰ªe­£¢ªUC;Ðj̈ž©)hGÖ£mºÔ›œÇJµzëöÏ€3; ¾å{!@ Àgeª±B‚DÆ3g3”+̈ö4c2•; Àu3ÕEœšKà½Yc¶ÆKo¤à&dÞ”‹ytγ+Ø Î.GÅÌ\L¢ë [p´žOGÉ XÐó/½L^Îrþ8ь¿þ|ýÏ¿Ç ì—ƒ$ÞE^tÍýxä~Íü<¯|j`„¼äÖý tV­!ŠçºiD".×HÖØC'¾¥ÛÚwfÆëÅ.·§¸¸òuhÚ4$¸j¼žßž)¿Õ“Õžˆ§Ú£ûçþº?s•ˆ‹Ô„zÞ!OŒäðéžqoüì½’¤ïy6ÍUAÚÆ+|¹8óQ`øÉÌ ¢? B9Í@žM0ˆ9‚ó¤ód­¡™¢HŒµÓ¹ Í¡Y o_Ìç‚”=Åþ `!¸h;V7 \‚ÑuXÀB5,s}½Ë{W— \ ñG¸â‚ÖE'…6m \ÕÀ=©ì!×Î2!àdZ·Œó¥‘(ÐÍë·?žF× ©ŽŽƒÃÐ,¯Òÿåó¸ÉdXíÑeОØ;Ê£Þ$аËÄŒŠé*~ªHÞ½ûãôøèôý)vœ¨\IÆÀ2éôK²„.Xᳩë}Šo[…b[*¤8Ûй ¥E ¯âðrô:—Né\˜~„MXÏ‘š´Õ¸Äa™ž ô,OÑH ‹?…ÍÙ^Ói•ÍÝ>3;²tøŸJqvÛLÑürV¶ ÎZuš†^h ªEO7j{ƒÃ¢0³üÓù<åm»žóë¥mú-¯Õ¦ÏÌD"F-ºÅh›)üz¡tñLÞ?*—Åçâl¼/×*B²,UÞ#“²LÂ#QN¨v ‹4S(uÝ *ç“ÒÏ3c}¤Æ*ÿ_ò¿›ÁoÏ›OÛ+÷b↓7W1oÕå¸vñ®6c¯ÚëšjOjñïjYë\¼«VM]¼—cö„Ú«å®ñµ£²~µµ÷/î-œþû²¦N)‡¹ÔÄp¡±D^)ëe†ÃâÒpC´Ü‘ZìZÖ—Ó µ S™ —Y¦/§‹ð'XÁIˆ nDÑ]z<^LBЛ?Š~Ϋȹi*e\&.Ï2]ˆÂ4ÇËÔ+mÚ bÃçϤ W0ÅɦÞKhØ9ëEäµ®ËP}Åaq{¨èT(Ä·,º]`Më< ICœˆ£õ,ñ]³Dµ[6—¹; ooÿ‘™¢´Ã|_ú*C,¥Äaå-N¥e6~ãœ3Ÿf7ËøOx”Ÿ~}D–Ø‚ bÁŒ(þO 8BòœiQœÌF¦ ‹’üë·o?N½sÞ%Ëa€Â0 X–ÁÑë,bƲ×,äÛÁ6ó!¨)Šœ€fñcèˤ±Tp-3O/BtüÅt~œq'ÜÐh:=OLYÙñBhW7SxîrŠq˜Ñ y?ê × #¦þr:qG‘|îÂ1á¾Vb7)òÒW±þñVà.B«iðÃ>‚]üý3 G øÊ+©P¯¦€ÉŠ–H@Ó‘7…‡ç¬iòjQÌ_E=Ë+7µ«]\T/Àï¿üøóÛ_«å‚¹=Ê'Õ¶å;Va`!sAeá¬Bäž?RµÊÇìŒh3 Ÿ*6«O†_ÐrÕò0èѪkh¥©Ú²èÇÒ«ž™NŠY£V1³áˆ!û´.@n6¯s3Í@¬5i{TM Ã+XÖ:©­¿ƒ•‹Y˜¯žoïügß´€H_ç£C°ûj³» ŇœNávÙÊÜÊhÜf-—ÆßæVâ-oµSš:1ŽÛïÛqû};Ž}pÝ´œT–ã+DI42×7 €;úÜp…Ö·š–»ú5yAÒtùçòù¬}ñ^}c>œdvÙ,üÏ9i‹ùçÕ¯§ÁºÞÓ4|„,›œ@s¾çOí ç¾<®åöÚi*¨©ùTYÊR¢°€Oì,V;+ Æ€ bÀú4ù9a¾é"x­þ 3 ÃÛ³ÃÏû£i-øMÿQÆ×ƒgnèÑ‘›ß|”ã =:åÍ*=^mɵO•¶ŸÏç^1õ£ÑÄwÁ{Tjõ5zXÑIš4T£ÇÑå{§ÿ²x5úa¤6‹›zÿêô¡Û“&ÝÉŒcä©Î¤E„ïx똧Va•R<ÖÜí!!ýZz8ÈóÙ"d0Kòq˜ú°X1’e½ßѵÑ}Ù*.bqjý1¿Ç¯¯ÿyœœ¾ûõ8ùíôøïŸÿx{Zeûxúvü‚â(ÊyØðïà†ýŸU.[3I¦‹r¶X àáÍxUQpt]’t>½(L6û ðc‹€ZÉÁ¿šÓMÑ\6N;t½²¹kÊfEé#œ‡®F@ ]Cø€‘zôØ%z|ĸ!||œ›˜Ö»®(=ì$²Ð%›{¿L¿Ód’ÿšùalÚ@©4› 1i¨H»nûD2&Ÿš,_7[]ýëN©·nc'fû‡Î/Å> »‰Žf"õòšz©e¦”$&ãcÄͨfi†2ÇÂ}ì¼ècp¼øøáÍ*nyé„ñ¼‘.D$ßÒ(=˜N)ºñA)cëYý)m•vc_üñðb–1{„Ö Ö¼æ|þ 8­"–à‡€}Ž—ƒ©Íèa_•m#WÇmŸíÊ|צÏòÆÚ&Dllxù÷IãhÄß“~{“J&°PHzžq‰¶šxgò’fRª„ØQÞh™àÐYÍÍ*Ý˪bÓU“\À™º®¢KÎ3NALŸ¿ƒx—VŠ2_‰6¨ ˜Š®«ÉãuTu¥%«V§×”uNSö¨ˆ—jUkNìñÊó¨ €,G<hzNØs¸;è2*+_2Ú„®<á:W³¼Áýã ‹0ß™Ëw>?™q’I'eˆHq*²©02„˜aY–ÑfÁ5MæûgœŠäbnfÅ2„$0r˜ðåŸ~<}=H~_Oö[M_Œâ=ºJökîM÷»,09Í’¡Ÿø¹‰Á9+ëÞt~TÙC$“ÇzIWIŸ5»´ö1¢œ!¹W¢8Zg¢4­a—k£«÷ w4ê–£‘ Žc *©–µNñ³j×<¿ïrÜczŒé3ô&÷kU®Þ¬ýÃÎ}¾Í»±AašbǸ§Z{œ"®•UÜae¼I5eFhK‘ÁYïݼ¾þݳE±X>z³´!ëÉq©¬EnÜþÍ}nܽC‡Ôâe ›{7·²4õnν±¨;r½®Ìû“æ2‹1†d4õ©šj›šÌræ’ çSÂQ¦[Ä*ýDb|SZù’¬&u©2¨ôq@Œú„uŸä (Ò|nàÅOo^¿< îÈÑç6.敨z± p[•^^]f¼(BþŽkñÿ:šÎ]•R#$ÃÞ+ÉÄ},<º<^Kþ_y¾,“yÄ4&«ŸŽ^øÁpáàÇYPœ¼LÆærãR"×ã&nj±ús¼ßüFÕýƈü©}þ CÚ0ŒVšº©>ÑLP½Q„Ys"iM¤uy"†Ax¯ ³LœS¼Š>?‡C1”",¶¦˜©ó.Q-}R‡7Nê±cê+Æåì“3~\û}òŽçɞݯªp3‘Æ +l&Öh5½íË+ÜL›Ñêr­ýÀÆØ:«ô-.·Ê“ѦŽÃ*aF‹>ëI-¶ëµÕ„lãT×1¹ðó4…yðe Á‰KëôU³¼‘m%3uIÛ«fpä‚”kÒô²Žf*¿”3"æÖôÜ1º-†…eš´*߀jÃÒ"±xÓN†¾,ừAËñeñïFPµ‚Í'·§èöT,a#|Â(~›ÞÕ—\ƒ½q’‡pÚ&ôïQÞëÊ鹟ÀT“yoZR´y2´ý«h•woâ»–âþ\8wfª¹;kŽÝçžÖQwT—bƬI¯³–3gßùr¾ÂI¼/ßo4Ê|¦k ßÿ>øWR2n¥3’2F4²Üà=„Ó‡W J$öw2üšÏ’ƒá×—1çlÍ•nê¹kfÚúµ(&6­KD*½‘-UQT¹~í×¶gïÒÒ1—„Q²:¬hrš4td‰£õF¥Þ‡¥•K—Nâæß»a*âÚþ¬Sš#9†Xo ’ŠûL.E–)I2D°©féÓ“Á‡eXsË¿}xÿ.yñ›ùl>Ä–Éûô¯PææÝ´2â¼ &¡ÜŒò¯f™²ýY“A˪ÌTar#úÐu¿@Àæš°E{¿“ÿgïÚ–ÛÆ±í»¾‚u^:]Û€@Í“O’žãªNⓤ§»æ% ÃŽn#Êíx¾~°Á‹.¶#RŠIZf^"Ñ H±°÷ÂZ=ÊØHBv­±B„"My'¾Ú"<—ØÏy'¾w?½xÛtµî­DÁ …Š„J„†b¬J Æc‚•T\kUo›î…g†”"w³ÄsG~¤%ÍËžyÒ|ªý~ñËO“ºULI¤N³‘ý¶\ØÉØÞ:P9·‹Ô³˜Ç®ðvþâÐ\TCÊÖÏz€=uÚÃßÞ]üñSv\Œ®@°Úd5wƒ)Nsñê[wÿÖhד^:´õ ˜ßp¯ú9zŸŸ«Ì GȞi ,Ö…w4,3zjœ.o6Æ1Ì6½¢ El=G(å;<.Ö£q~¬š„O.faõýA¨oõPÈ•iµË+~*ˆôàR«a»Ž‚oyOì>úVñ±ºÃ6ŠÚX…XF¡ˆ¶ÜÄ–EZ'FY«©Bj#Ó ¶¼P<5N1’¸«¤3@uΨ Í1ª¹7[ðfz•Níið[ˆÇÎìZå4ƒíY9½Ç}[Œf7S_oþu—UãÛÿÀ¹~¢7i’óßr6gìÌ®}¨Í_`怀<Ê£ayx"È2_\DãÆö›ŸâÆ0ƒ?4i&–")7  –›;»°¤Áõª§ ðä “CÈFu‰¯U¹¦0euª PåB•Uì®T”ð·«+kBÂ(£!FL&†3,YF(B‰Hb.t"[ ýñö×þa¸Ÿ±&£—? /£T2z‰èT  •<^p±„DšVÀ,¾žÏr(ãý'ûmY\QÍÓ YÌ&…®ß€¶ F¡Ü²íD2Ü´íÄ FU¿XF½‚X&©WkKU®±£Bu§ 惯“ ,µe‘гݜ óã³{€”,ç9hªŒT1šÄ‘å!Ñ6Ô’iá>`C¸±”)Ö(ß äøu9Å*ƒxˆúZÄd¼^Pðɽé³Ä.Fn~ƒü8xñ˧˟•9$’¤Ó<²³HbÉäqcžÆ”Fo`&)_ßnŤˆêZ ¸~<øôÎÿ‡D@\“îx»57[A]O Óøú°ÁÕóÁ5½Ý­õH¼¼àÉÌ nœÊS±û„B¯dwÁ,×þ¨YmŸ7šÁ¸ï:e3Õv²!N­­ 96ÒDd©cIL¢ Sw‹4i—ÞS>¾?¿,Í¡êñ_WB„à°®-zŠOžÇòe>8ËsbÇàÉ|›å¨ò™Ê®uf—ž+ïOÀ§øeù‰øÓ~ÿøúW8¼™»:ò­î€½h#Ÿö²p"œò )eÂE´#äTÁ/ ûã¯g–ŸêHsÝe ¿c’€"5aš¯í©à´eµ²Ë½®Ĥùï>ÿ?n{³¼TTgB?qˆ‘LˆÆÊ& ã(â¡Q"(ÈF!ܵ¥*(Ì@*Za)À!Œúøÿ¿ŠzãéDž¶ìŽx/ ÈÊ•Œ¢Ñ°È+€3‡ÐòÓý~ÂW¥Ëgž¬ˆÉù•7/`Š ŒlAYr3ëÕü´ü¹®Ý¿­¨¸HY;À@¿ÙÏ••‘·’¢´¸žæ´ï ³sµªõ‡×ÿûöcI ?]¿÷élé Æ8V—)a¦ëÔSPûÝê³"óäbÙ®ñ÷åWmüÙ=ºÝ˜q0×ù^áZæ:`,áÚ÷Êe{¶¼|)/ï°¨ ÔºÙÏ“Éô3AˆaŒÙ£­]Š;ëâʳÓgiwÕÔÒB‹ìÃn‡7óhI ;fF5ù95—›÷˜Õéµ=ÛVE *oÔ½1W6iÞÙKÛ£Ý%K·£sQirT#ذr)jT¸Ñc¹× éSp¸žÆÔ¸gžHiê~G”¢¾ïÄ/ŠUÜð |Þò(Ï»×I¥}›”´3†¿e!Jɸ[½Ñ+&‰3a<Š#aÔ‚IÊ¿ÒùÔ)äAÈɾÌ5n}$À»§€eÊ3pHå5k²¼f”²ÍÕ5äTäÚÚZºÖ®ËsOy ì÷lM:DSÉ5éŽ Å•¨ë’T°aMÓSöØ ‡~à­œ[Ò> •Â7±K©ʵŒu(‘‰0gF‡IÅ N$1id™Ö[ƒrÊC¹ã†Š°!ÿŽ}Û÷6ä‡4rË¢M¨ˆdºSÖ "&R Pqµ+Úá€=ùý…Ow»=å¡Äû£?hÑ:ÈΗkØÕ‰È縑ÏvlœæóÁw(Â+0£ƒ3ëŽi3®Y„Œ4\ÒXiÁCki,`+4bk°2¢äè$ïõŸ^Ü'ù×ó\ˆè\gË…òá ÑèÄaŒ«/Ë“ ÿÁ÷ 2äÜ3o`~.¾Vú?nâ]ää8뫵ó,˜¨?g‹ty[Dõ*ÅJ÷.½N’2"uùú½«ÍÍö/²ëøK ²Ñ#[¨Œd¹º¦®{Àœñóß³Hs¹ò/³ë± À¶%™Úæl±¸) âJÆ-ÕÌáN=<ò"JþÏ>z˜†ŽÄ4ô å¡à›#ðT^'¡ïB0.´f60‚zÅ"ô€D!¨ÊìÀ/fÖØZöa©šÞE±ŽhtÌ •?=¿û¡«Êóc:ô†Ó Õ‰Œ9¢‘6¡°Ö! eŒDSŠ9±uómÅîwÿ0‚›…š/]†G^üÉ¡›Sˆæ¬¼ãòè Ê£UøäA÷¸`bÕÔ§1¯ìÔ#"?À² 9[Œò,§ë%xÝÇÊcîèáG3¿8ÒMQÃ2ºŽ>B/zR|Tca€ ½‚ ‡úÅåºc¨ÊíáW\`%Ï” Žo«>ÜÄñ­a½€= AuÂrÄ4‰‰,ÕB«¢XF."YKBD·@š^7.QÆd5>\¾:ysy±f]rÄ £±iÇm‚ì€j¸î؆1&T|vTŸ¼#>[†Ï“dQ¯m—’:ÙÎãݰĪɤ.jpÈ‘r©{¤6üˆf#ON¾çaƒ[7r»Ç:{‡´”æ’6"‚Sd&0Nh‚#7÷jŠx’`­GœÈÁ=dpÜCzhãˆné cÄ(åy>Žw© ¯‡Úî8ˆ4³=3äÛ—`œtÈÛ‘HÝÀHãG‘ï¶à°,è}δp ipŸkö!Ï öèÀ†"?„G7ËÒoÝ-1”Ä$Ô‘² B Ós‹DˆI¸‘e&˜…¼&ÝFDu<žÝx- 7m—ï?^üq2N¿Ú5Št ðäøñf#^YÈG[þ˜E›(Y“Ä®ïØ|z`|Lö'ŸA«ïB*P¦1ÍWå$8 ŠàšsÇ{Ú•hlg1Œ½Ž8ƒ÷ˆÓ°7T‡<,&}°¼JaYۡᕤ!O›:"k5ð–qb¬-aR$"VLĦiÞ‹Í$*öB5þÉñê;vdvYÄr겊Óqº|z#þ…VÛ4° ­{UQ"qƒ Ý7Ã0¥÷iJˆ ¬çtÇ+Ù—i:­çûÑNì÷xk)­ ïÿÝ£3›t‡ 0 ‘Ž!-æ‰bŒÙÄ"n)QBq“(Cˆ`"jÜÙªýúýÛç±G»ñ‚>míW‘Xl¬è]¤É’ÞuÂ?øAÂ!>Þ®Íw¼™]‰¦*àÁsƒN̪×0ªº‡Ù´ËÔƒFRŠG’E&6‚‡J$LK#¢™)2Ü Â;!!||÷öèùŠMw,D!'›Ü£ nAˆvñ7öÇN‡Bß°> àí¹kóé´yÁW;À‰ç'Úˆ6¸3Ýû±èŒ§˜õ,øí-Ln³weµÉ$B¨”P8B!Š&Ú-š‘f4$H‰uu -’å,x{»®vRhƒ<Žb#IR´i½Mˆ[‰ä´®}¤ï–E±oE ¶?–ðZø‚éaŸó«í[ÇgײŸÍ.“ ÝTÊü÷Ô \–·]“ùÝŸ8èw±‰(ŽÒÖ!Qq¨0÷„<É,ÁÔDBbƒ¢Êá9Úô(ìÜÿÈÀ-ÙÑó3/¤ ¨ò$sïì—A¼˜eÙÉ|¬–Ð@Áÿ}zûk¡ñmMPT3½òÕ\»&:]$ÁíìÚ& ¹sèIc×#í±î^[M½Ðö•]ÙÌ¡6w-žq_f7AºÁþ¿ìe®þ­‚ñlö5PK¿×ïÂupbfîç/¯Ý©Ÿï§±õ×…µ½MÍÆï­Ã~Spc%¨ 2Ðèö÷åïÅÝ”š©mTÚﺿÿå­6/l{A¼ß poQûE‘WœuÞ·ÙZ#yEì¿ì]]sÛ8–}ׯàîK'5¶ßî¤{7]I'ÛéIíK6§%ËcÊIœ_¿¸ $K²’ÖX¤dVuul?âÜsï¹HRc˜QŒäÂZ§ È¢€…Ä Ý8WvÅ»{´ÓËËœ+øþ»‡’°l¼Éýùô÷j—ë¦9lÖ¤\Í/®Vm áиª”NEô÷i‡÷‡ÿôC™½úãô·ª©¿ÃïN;É’Zñb`—L¹˜§ëŽæAú·7wv+û5¿å†-bük3þqe³fÒfí°7ƒíCXœYb}3w””‹ÕÍ &Z¡¦q0 CBÏ‚˜ Û!À˜6r½ûNÊ‹ËͰ­ùÞžn[³xàÀ›Uù¸¨ ÂwB —ø#¶ë|<¤¼‹à„½³”9=ØR§CŽ•4B—cÄŒ S:è?—ÎÛpéq%—ë5‰‰ÜðÞJ±êøû>—¾¡<éÝ[kÐ Þ¢ö`sÝàFÁ‚ƒ\ðÀ§ï&ahMC¸o€¢WÒÁåùdÚ^ÐAØœsF™fÌ.<5ÜhÅ EÚŽ<òÞù—8žMãÓ˜ü(ûrUÌï#äO~†Ü©žýïoo>e‰_γ‰àfTú30îh°Gñf9DŒèZÀF²®â È€ù: Œ¾¡ ² Ê€!­ƒЦ)ÎHý @cýOIHÓº{ÃBÔ]ž1ÎåVQ­$Èyë’Tp$œ ,×ÞQBÃ:‡o*¡Íd´Êyˆ?ÿwÆáõ,ïe ^‘xo×"ñªØÇøS^MålaaµŒžc‚±!¤$‘­ú_4Vº.›a­R$|ÈϹVäü ,|•¦ò«¿ýmÂì8—R=G¥±¯HÞ5G­úÚ u¿ÑóÏ#0µ5q];Ý ÙÄüU×®F—ø¥Ãæ—àp3) ϸ;e¾/¢±JF¹q£€™ØSqÖ e4_]“[—îbv/NÝ…·ÊRG¤á)ïÖ2Zk#rÄ©ûFô݇Äh"µ–Cô¡@ŒÞºH† è¿ÅMù¯ƒ òÌyNŒv8—T)*ò€r­œk1G"ßAxÉÝäéJ70Á»›ÿóöV^½ “>p{ßÚ× 8Ö®L¨”kR(”ª6Ž˜œƒ—¡W^¥·•HÚÈ_ T}lD‘Oÿ¬®öØ> ÜêŸy0JºF oHõ`mÜ'‹iírùÞÓ?šÓ¿W™Ï_û¸0åþÂBÚr<oÕÉÛ?´Ö‘ChGB˜–³œ&9Å}¢Ú E¶8¾K7.âá*U«s×þ‰[ Ï#4'Ëê”¶ï¨gZŽpxjË)8tÈcmØ¢å la‹é{îî!‡b2  JÞÛ¾hq­ýé~³Ŭ&å½ëœ–ÁæškÅ™à2ç¹Ò{CYžôBR ŠÃ.„žVCá—ìê²b䛯²òúòrz5;ì-Ê#ô9ÙÐ­q¡”‰í§µ’‘q6>Þ)ù̾û幌{Ù-ëJƱ¯ó]V­ZÔ•„>ÿåà¿ì¿ÿr>µ»©ncWþK¡„"B:¥5³ W vJè\hǃTÀ}ì$‡3ᯢ51·Å$c»›hjÀ|—q ‡¿Â˜ƒ;3_:6Ë“Ñi^u´ž7ýŽ‹I1Ï¥3‹‚“åµ-ý T)w£9ðˆ í @”hbnû_†n}{yMköqf_Ì•ÿ¡Ì^ÿDN²ð£x=¨ ™Rè Î+\Ã}¦Üº7?½«ÚfåüÔ£ìËyû-ÊlyõÑì<Ú¢³ó$ÉðþõO¯VBÄ^4(j¯Éˆv  Lײà–’4÷ÚÆò9‹1ì«c—¨-¢Þã˜×ةآ­:ÀÐsq¶pñåö˜ðÓ©#s¾{€ôPeŽÝ $gyΰå^Xçh„IÂa‘CBP0‡ˆ¡\ÞØk2çxžÅ9ZóÑ”IJ7cß¡8‡j[œcÜlÔçé® ÔæØ"m¨Í1h'Õ=pÏ°Å¾Õæ˜º¿ü¬ìx©¸“Zkc‚·T ¦§ÄkLQ^kj0v>šÓl<ýr<†E7𥸹ã’PØþê=%×ÊõÅÒÜF¤U®šéÅÚ^N/¯uüôñõü¼òh+ ®jR–…­rçÀgãfàx1óæ£*† }ñ ¥”0PE,gù{é—[£ÿ`ÆšûK²^O„q‰We˜À´…ûd>žÈèÈ ËmâÜ«!­c‹ªVm½$‹ÎOÉsñ”p~ÜâèÞk2+ò›®ˆ07Ñ一1 Þ Ã £ØœX&%S)C‘S;`•â[H’‹@°€"ѼXxMÙ‹ù ‡_NÊLüËä‰&qú¥™drÿ9Kà“»Ä½¹8—‡)®*ÃÙ•wé“ÖøQö©úþòéÝÛQ>u×)Ñ.;>ŽöÏìL/|YQCß'_RO#¸‘ˆ8N?~H'U‚ޓ캄æïßÛTήÀâº?¥eá4†Fë@¥pš[ ƒtйU?‚¹2(õMùHm#ZcUª¢Q4LêmÀ4Ï9&-èDësÜOÀ’ft÷hźxµó®²ù" 3§¸QÄã`Œ‘ÖiíåÖäL*L îéáÊOÅôöÊŒÝõØÌ¢Á­BCæq!evq1ÂUªJËɾHúËpÁ£Q$qàãÔŠ@”si¢IKÚDÒ2JøzÐG ­‚ˆQë œ-#i«Ù;Òîi í6âÉÕÐ׬íU£†ÀaÞãž3tØ^(±¯š‡óo¡{ÈQNͽòA»!ulÐŽåK‡(XÛ@•”q¦¼åžK©´;S;¼“ŒóþôÃJNúõÖâ̶¦ ÖÙ´ªNùXI Teœ…"f£%€©Bn€I'à|´ø‰¤Óþññõ[8œ•—Ó„9“tà¦5mƒÑ%Z)š­ÊP"i]Dø"†È×ýãvÈ6‰0èµÄ޹lÏê˜AÉèùP:-ö ç[Ü&ÔƒÓÉþf{?D4™>È/}-;«ì•£ Î$5#tÄQŒš¸óÇ(£ån”Éó2•Œýôñí@ÍËÇ:‚iÉÇиñ^wÁ©ÔZ2³"ºqõª8‡ÚU{ÉÙà-òvâ¨×¬Ï_˦u« ¯}A,U~Ñt2àÞúlšÔ©ðqÎÍš°CKÔò4h:¿zƒ—ý­I»Ž°|âÝC!È|ùÚƒeˆÆ†k„8ÉCDCÄb™Ë±¦\Pn0ÓÂÉæIJÿ&,”‚gýD+“}xÿñͧãqñ—_‰ ..µ—yJ­×õ¤X­…äRBHMù%9•æåÀMí)7E·É ‚‘¯ЦiaÏÔß¾@¤äìäÔÊ»ì1U} Ý㈇x©]øT¨Êu.¼ÅF[›{r'™´Ü9©MЖx-×;¨k1°R=@.­}:˜QZÙ`¥˜ÖkØEhT^nÝ:œÔà×Ù¿Î6±¸ÍY©ŒpËÓ8gžÀáÒg/J_¥Éø &e[çTä¥öD`pDC,ךɬÁ„Ç´òAt@+}z÷ö÷¯ŽþðæyèãBPÌøñ½ AȆãD  nÁGÄ3¤Fw5"¦šŒCLÌþÅÄ`¾ «”†½ŽXJÚÆÅÌ»ÀÈs‰ŒéwÑÇÄãlLÍü‹îù¯EèPØ®1—Êû€7ÒY…Hn„QÒ„\å.Ä]8ꤦ™ÿZI_œe?zóKöbñb³p5dÅr¥_FPXÙŒäåùõÃÏÿ•ü:¼ùå—ùi‡¦Úéêj!׋ Å* %—5ñ9«` fõ  Ó+”„ø‘Ã0ž5 94i‹R·û‚.›‡ ÖÓB¬žk¤ sPÑ¥¤¬¶$VçñƒX0Ú[ÂH`XY¨ m(¡ˆ˜æhâØÔô´ò¤,^i•hŽ¡XzeNxн#øáp‹Á¹­NÍŠFÁ6ÁL5‹– ß&Moê@Vå…97ëZ÷—"NXñú,âÕY½›kéÝ©*gM ^³Š Çg~6‹ÛÁ-«ÒÌ °ÞuÖÅÅÝWt÷UÌ1ø"~­G6ÿMÐá´ÁÜ8.âûs“ú׸h„6gÓ¿üEÜ×5yï@¥íB³¶)Ê´IÛ–°îý“ø¾¡HÞ¦¹×%/®þóÖñtoQ…{[B1†6­“C«¶ð6x8¿'–(»SÞáÎÍî>k«¼ŒûÐËKIîUÀPÖÇ© rÎU^Ráœ@Äá =r\¶Èb¯žèÖ•Ô†l»SÔÁ¤Î*—ØÕ%ÒÅ•q´VlóÐ=H­Ë8)¶^_(¬×ÓÜnQ_¡ß!&iÿØ6Œ·ˆˆ®†½Î‚¤Fm·y×û¹UkÒ±¯3§‡áÞ0‹!=Á¼=½Ök>¶ˆxº'ß>=VÝjçDÞñ·¢³ü0¬gRKo4·¹—œ@y‡a,¨´^á¼ÞAa‡ÿ+.ïÔu€¢ »Ï¢­šLó"Ü$ö Ð|ßYÅð::i™°Å‰RëùZœµŠN„fÍExâkj"ôŠÜÚRÞ8hÁU4Í‚¾öcvè55ò8!ä‘ýðõÞVà«ì©”7åçIyÖY6;ÇyàBH¡ áÂ!JFDhk,R*â½Â;VŹÍf¿)g~’ý={óáÕsIèj«H¤Z¾ÁPütž`NëÊ_¯$“WóqÈ'ßK³•Êq5ò5‹õ¼UÓ¬òyŸ¦9PLó$‚8‚ÅÔî$v¯#<AàÆ ì-’Â;ŠvcK´Ñ\h‰ "tšÁwØ–ôZ2wn ¿)Ú˜2ÕÒ¾X¼‚ج8|v¤òh»:Nh³z5|µãHÖ°+K©¼4—Ê;»ß;¼-\M¢ R›†f¿êo0újô÷ڑѸ¨>Ÿî¡ÅÃÚ1»p78šsg5‘6 O¥CŒY¤Ž® L±”‘”cÚ:âz½d-ÙY Q—ì¼RŒ`S7fð3ìŸó-ÀF;å˜&pcŒðF7$ŸŒkyfÂz½‘•ç]V¼”Ê asÑ”åqߎU\w•SÒa&= q£ïíÀ÷ò¶8;Ÿ}ñðÿìuS7›Æ«:×0³©›Ž³o_Ÿ~xyèÀ©ex+£ŠªBÚDòµBÚBÕäF¯†·Â$Tbz·ÑôãŒgÝú·¯/™ºÝP”î8}­—˜z>°ª÷A©ãøøzډܥ¥ë畦l©¨×’Ij÷8&ŸN:â¸ÕÆ’3ÌsÇ]N‚f"Ç{+h°XÆ„C¼Ïë÷o§5G$cz=ˆD ÍÖ¢H”¤¼)K§ßPNiO‰$¼E9¥úäÕØ¢¡Wç;¥{‡^ {ô6ndð›ÜAð5u6Rj{W”’¹ð(h’ckñÊiã-7LYC0NäÞi¼ƒ|›»R¼‹ìßì˹OFͬD¯Ä¿Wª Yˆ6ê<Φ™Å5´÷Vº±)ËÌ87½Jª{ó¼cw}u§`vxìд¥£Hé @ƒ‘XU¤Ã˜5'«Ò ÒvzFC!¶Ti¢Ç‘Ú4„+U`ÙÀò4ìPG š£ÝƒPeéŽ9ÉIJ+å‚QÖIé=¡R8óñ Àœbÿô(à]œìðj_ ”½€÷ò2®XgÅ…?ÉN«zÏybPq›ë“ôìÒ^€N¹iˆ–ʳ«tgñìÙy6©z.³kh±ÄgX¹g7 ÖWIÇgÓ¸m>Ÿ|oK©~M(ÝLc½æá`ZÔU]\¥aà4L¿h¾ ³©+uO3hÒ–†Iݸ` QzÒ î-tÄMäŽæ,Þeî©'ˆr§½C6g¹Æ$þ‹Tε4 BûƒÐþNHÒ†¤ÑHI¶®DB´‚¯)¥iÿ«ql,yš§ÈãÙ;™ý^0”"LajlηAiÿ¾fƒÒþ ´¿Ú ´?(í7:gPÚ”ön÷äûP8<(íJûXoPÚo†Ä¥ý磴ÃÒU&$xÁ¤Âåõ’9àÏ£L£­€øÝðô ÚÇ*D7¹k~ýøþ·ìůæ³ù˜Zfïí?9ûmZ¹^‚Cª0ãâ[úõ°=Fs'óè»Q0RËum8Š‘\‚¡˜©ÆÚp0=‡ ˜~ÁH­·‚i` IØÔÛÀt¨¿áIBvŸ|÷q? –&uç,ØÍwD‡ë B!P¢%!RzޱrBÉ„–Jisv:›Øª[Âi©ÿ:¹ÏŠc{3ó«²o&øeèì2ÞÖ\ä£i•92K2p++¯ÝyfÊ5±¸Å2ld„!|§n#ã›Î»ž>DkçÝ;EFf3úÇ€§3cû²md¬0’S/š¯ÍJ-šohn~[7 oÎt¹€¯YULÂ- K æDÆÎ¦‰Øq“$„%:UŠ9¥É÷Ç—dË“f¾á‹ì!ÆC…)¼È›-’,½ :/ˆÊ‹ü¨•©z\äýJ‘ùùp([µE.R¼YqZjA:dÚó=:ù ËÉG𧃋ŸÎ†ÓØ·èêÞ>|9$øèÇ·‡vñîyº_нì!­¯,s/ Ü1¶YÿðQdÉMOP–ƒ•“aµvÎÿ½|KcÉšÇÜ ¾ôøäá{€9.‰ü^NÀ(E/ªñ†'yÀáe OLs‰ûŒ)óûÙ©3ó#?Ó qÔÚæTÍæhv˜Ù «ࣚÔ!Qµj‰ uŸ#…üȲ—œ°=ÑK½ú˜óYoŽ* µÆ¦š{jKi*°²4öfi’X™bIh/µ¯«ËR»±.¼t\^ºñ¢¸.¼@ò—ÿ½?TÁZ‡­ÀЏWkéÑÈ+Å tôfä•O‡È+ÍšjÜR„_°#A Œ Ú ü„6Ò¾EKr€¾Fjø‘©¡\+‘S=É}¸»þe~HbÜ—ÔŒK•M‘V)Ö† ®™"Ü  Ù_©çzO‘P[ªŠ0.›©å‚Îâ6Iœ±Açpøò½›gª‡´m-\lGVëöieÃ$Œ~h~—RŠm’¦‡6-¥|Ùß(çTÎ …õŠm åöé-BÁ‡¾Ð"¶DSšúÛ•^bq¤hÂâD;†EŒ`i*Ѝè7Èúý̓ñÕ#TlB…BøNr8,=&n¥UˆiÒ+±b`X¡ðŽ£-‹ËTsŸí‘û¹ü¶ïf¾£‚ÊßÓ–êÛn›®æ±Ÿ8†cà×Üî@ÌBÓ'Ôý[o™}¢š/h]`vdå»·ÒþÐ%/¶ßüŒy‹_ß¾’^^¶lùßeº;òãÛ!îíåÇ¿/L¾<àÛ‡ÈW£CLýZŠôÿxV¾דƒ8Âh‚‰‘({àR- •1OQ&¥ÒiÃcÚþ£þA·>IOÖ^ú-ø_§Š\WÍ€7CIuapêßWyGMü¿ëžŒ…ò¿ØæBñøèؼ<èÇ’ÎÎØ”!N·K×ÛÅ0n[ £žü§;d,KœÌý™5Ó裤³ãõ“ÊOÑ#.èY=¹ Ìié’MÖsß$ «f- ~Ýë¨ý‘ÎÛ–Õçöj•»|ɇæõè?ò›üK~1ë/8Þ ªŒF©$©b K™ÂþH¸„¸ÔžàØjìön<±~v“ný-òwí%~4s^м±´c0<%‚ÝNåf0<æ²Éj3¾Z’c@üâ¥f;˜K«)mr©.[u Œ¯;á0ƒã{Òõjì_FWy ú“ÑBIĤ•,¿VιÐF§”$±À„é„`*S™î¡ŒUvš…K"“$yùtxö®.#qø²¹SA*®ÞŽ´ÖB£MG&-)iÈ˼)›«¥¸“lÞõ àOz¶'»’¨SÑ=~RW­º ð†8ÃrgnÊúÀI7^”Ê0Ëå´ â?p·µÎõÒ)•wÊ¥ÊÙ&Bª›²4¯íCÕ óõ Ïô£vð[«¦µ)è­lÕ6ð­ês¤ÂÙîs:Ç¿½Þ ýcÇWÿóûS.q…YÂSÁPL¬£L§'ÖI«¬Š¹D)ÖXa±§éر(“ ƒÉõ*+\tù_œœ} Ž'Õ$—S± šÊ;¥I)§›¥(Õ¬ƒÞ –èh”>i§y˜Ï†cštΑ ÝŽÀ𣨑:¨‚ž…&",ù^yÀøî.9ž-’ÏpgýaÆœá Á„:A$1VsEµeÖ)NLL5F·Ç‚‚h}~fDÀ[°ƒsHÈȂێs^EvµÈóãåÔ0E!Ùðc¹ƒO&oSP:x1|W—à=õ‹Î]‡Z¥ ‰Ú0ó^{BŒò…Åþ»L´H£‹Åu”Èä“Eþ°ð74],.#S„¬=oý ŠPWþŸÌLO¢s”¡ÇØÝ,æÉ´*öáþ0pcµ¨Žr>y¸¯p/þ6 ÕŒ8¿¨ƒôðŸñ˜|rË<Èà’{™ûÑ 4åñètê 6ÐneÒæWWùêUð«y•,l½¨ór?üõ××oÞÿz„®ÙI6/·Ì 0Â"ŒìͲ²|9³Ù¼JÎXM﵋ËÙ:|:Ã]èL#¡èvå-¢a˜mju´oÓ” ±B´»§Æ÷6î›×ª²/Yqóêƒ+`ú}ýêï.~uV»>r£‹'ºòTó ‘Í4vì%R‹Vù²U« ÿmÙ£G¿L[´\úMÝ¢™—œmšù]1-»ýþ-ܪ™[`þ;Pðݸg®¿Þ“ßã—­nöól6ÿLâ7ƒ=¶«;kɵ¯âlî…ÓZ ;Ûšo¥~r –ۀήÖíò¢' oww}Å“¾nÖuéÌvX:³p1f¾®+íp ˆ`Mïp öôKב߼êIâ%.éú¥{Ô†·áùÚãbÑNzUÂóÙø@?áQ¾zˆM²Õl<ÕWý=”ZµXÇ¥‚°‡¿›âXëëàù ûû#K{òY`.vÒ¥‚hâ †»ÂI)¨ˆS¨)#u* ãý$Üu!þt~ýúûÛߢõ¨Féj1‹²<フ6žm'¹bw ãdF’;SXç4à\)¹mêЊéM ­4n¨M´ö ¸Ÿ&lÏYÀŸ™¼˜§Á;„vvMÖFôÂú{œß‹Pö¥u62µtÁîR\§ò nnx7Xó[YÄZ4¯“‡57}Žet†ž!,-–ý™—,WZ›&Ø0ŽS”ªÓ”ê˜:É5ÒÂÿ'Õ‹³ím1Êà]• Œò¥3ªÂBሌ>y©—§n5ñ"¿XØÅ4zñÛ§Ó—à“øÓy^ºß®R«¹>lFKídÉaZmgõào){¸æMe±7-9~5†œarÔYÞýt6œß¾EW3tú\°¯ «þ8àøÜücºxÇì1Cì!§^…ó ¨Z&‹¾ÔeŠ)1P•‰]œ0$6Â0šÈÔXb•¦©Áû!ª7›ô1þ§9x\¾|]rÕk0·&“ãhš_Ç×þ×ëÊ|åx‡¬;ÕËuepðá)³¬ÂU—Î-óhfþ¹XeÅ x+Ã]xd³YšY/ž®Ò´N'rú\l<:½¨r–0¹ÿµET§!ñ}ÍýÚüò§(Ye%^,®¦àw4½)óxH¼^¬V7/® HŠRÔˆ³À8_Qùñº,ÐÜLÜü×Yk((QÛ¾=P»i«À€ƒµÖú8^ OHv€B¨5Ý@MÉ¢¥ð‘ºÕƒcÁC"¹Øõ‚½ƒ‰²‚]Ð? }+”{BBZF°eÔ:Ì8q’2éó Ä4r 9Ã%©c¹ŸS€KÑ=-Óc.ELqµœŒ ]Üj™ˆ” DqëRt'˜{ô)Q ¹ƒq åC¹Î%C…Œ„rû®‚«íª'µ‹†œóÚPbRÊ )3ÄE,e›”ú¿ý ¢örþ÷÷ïþF"º^™e^eN…´K0ÞÕG¯OßžD­¶! m9z¡2Îd­{1Ñ|1?¶(9 ¸6«ä8¨=fÎÌœ»yÐÀxŽñ‡ˆ33ÿîj<›!‚ÉóÂ>ó·T!‡& îàjá3Ûií…Ä›NRTbÖ¶ÎzŒ*Á©<0ßPÖÛ ÖíZ¢Êm¿Ï…WFØl¬“"6·[çû{Þ;·;«ر^õ˜µ),…K1‹­HcmmêüŸDó§ke‘áTíI©ì(©±Á+ÙMY߯ øIê!Æ{1Ÿ;’àƒ²ÆùjúÜ$Dl×î=žh@4EI–¦n¦ †ü¨ Ë^V.>4œ„†‡Í7Ý|º£zTn…j †»„jÃüŽ>ƒòðAb‡p.˜Ï†štõñ ÝŽLs¸.:åš8iW¹'l÷Ù?1Ìý}ä.ïI9â$Ö‰Ö’"M¨Ç„¹X'X:¬­LåˆÅ4a¦‡®j`ê®èÈÛ_Þ½ ð—_ÞÖÒ!Î/[ºwvÖ`œ¡mí…Ÿà-_ M$i«½¨æb ñzž ôÔ0€ÕÜ7âU«–ʺÏFÕF'ÕÆí2;i*µÌÜMÛ´í Aê_Ó?…Ló`¬ÑÇþ)%±Ò`• 8•1a”PãÿO[åw ÀèAiñ\^KÇ×èŸÑ²Ô^å%{RôîÍëÓ€?º%ég˜é;ŽBn…Q¤TKþ€å9NÈ;N`N›Žpߤ%Q„Þž NŒ¡C$S¿ l¨Vv”pµož›¼‰¦'€ ´zùF ô>üX=®$1±Š3“P­ EÖ d(µ\p¬‘ÃÊ–î!Î&Ý‹+Å 7ÞJA7X™BM^"·¬ÛAÒ£ÿê(ó=„IÑÑ#âHLÍwÍys8yf†_ùó4›÷…OŒ8©•Uš$NH%d¢#c§cb–RD-µ1Þ>•QÕ10É3·. ^%eï(¿É 7 ÀRjŠ‚È/#œO¢·Etmò‰ï<;`òÔU]»/0\yqæÿ qD—óÅõ¼|s^þí—Üuî;õÌr9ÍJT(/-*é‘ÑžÂ6n8.kDAúbß>žåÕÒôÞ­Uõ£J/ᬘdù éÊÿl/oê~o‹:L³KýÃËÅ~øf„VààYáR?”¿ú“uýyZü”‡7Nà¨]ýç…Y%ÎÔqÅe>/~ —:ðvöüa/L~i•KxïdY¿÷틹Xey±X‚µé®æ_ÃÕööÍ“Kÿ惗÷Ï÷ -<ÆJRʶƒ±¢tSÁæß¼uèTuŒô9úDkúddžjR`Õª%…Ö}>9²#G=¿OFÇžø¯Þuý3`6ëÍø—pK°0Ôpƒ,¢1F CHÊcÊ”6"˜3¹÷,ƒ!'£[ô1+òÄL=÷%ß½}ÿútíz|ø·„²þ£lÖ×IP‹]Íý!?½­›=¶Ó ¼—§A,ÝDfš/nËy~øðéôhrúñ”è™=f&›Æ‹?jžŸÞ‹EràÍMŽÜÓº“Ÿ† "·òÓpDÛV‡m1gt„*­O"˜ÓqMZ¢Pèmä ½rPuzuBÂâϰ&G€ê ž–»m±‘"}öÒ„ =ÔÜòp á íŸ~ó…½tE_ø’ëœÞ”ÂÎ Â-5”'‰IuSOÄ.‘dU\_{Ö¼>ž)l{Áæ–ƒ´›×Þâr]ìum—‹åÕÔ¬¢ŸÏÞT×åGUÒÈÚê¼\äygSÈ a¶[³©šOJ…)¼uí¦Óò£êØ>mcyx±t« ØÆLÿtðHÜ- €yÇ:­¶£˜jPMæÈăcbÌwQ–ÓÚ¤$,[µUV}Žp| JÂáÐg_ê»j?ô0Ë|é¥dOüB0c&e‰2Âà M8Fi¬¤Ia±L…µíù¥ü9·"þÉÞû&tVÛ<×ٓʯwä‘dRƒŒ 9|­Z'„ \P¹ “-¥Å¢u¤rrÇ8Âç‰;¥(§¾ B£¶¢ËŸ c”gѱk2Ç‹˜z&Op‹H½'’Ëwsë_¶¿ûžø£ºÃÞñã!îð‡ÍwO\À´äÄ%q…g%bN m­Nc&4¥„ l“TvàŽ_@F‡ÝÖ)eA=¢UBżvÓâe‹mñÈ‹O;½ êL•_Õÿ³wmÍmãJú]¿‚µg“ªØÁ•÷¼ìärf3›ÛÏžÚ—‚ŠÆ’¨é8ί_4Hêb;&heDYfMÕÄ¢ €èÝ_w?yùöÍÓxù*Z×<›Œ/ª’ÑÐænrŸÖæ6³‹¢Œ´]ëc ‹åËDæÀ.ƒ¾N£ŸR‡?<¢™^=Û0—T *>Yme©/žØÓñ©G+?- ­äÓh¦®¶nåѺß(ÍÍ…7º”µF}qðF‰l2_=/ìüNò¸A°·HöV"!×Ê«% ¡„mæ_rW¸-˜Ü»öüv]ÿ¬2÷ —Ü›vIÓŸ{Ø÷2·®ƒš»E`C»Þ&=€Kà$…ߨü;H‚dõ¤ÈÛ@…OÎÒYªƒÄƳE˜\y$è˜ ê R zGM¨t9I¯Âe³,Tök1 {†Ù,Lìªø3l›„-A²¶<)æó »'DýµyËVra½.õ$l¤*l¨V¨j›œÛ¬»w;pôÿ,i\iiàÅ|òõë/ļÙ5õe¬J§JÚl»ß&mï^}v ¹}6µ_OòiÚþz€:›L§úƒÝMÊ.¢aËsi‰i›Jì~PXg?ôðuû©aï6È:Ò«·j2F ”™LI•1,S.°Ìl²8Myª„˜Bõ‘ÆÌ¨ÎÞ6¿ã¬ æÒݶ`°Œq¼ ‚eÌE coÄP/™±ÿH‡Êst‡8Û&Ô´•TšûbKøêÁÃpx„D½bÝ=“îxøqÍfÕ»‰jQ,ýæÝ¾ÓŒJC45"BZ›£2%’8CF¨„Rk4ÙK Ÿ_ýP¸Ÿ±Q£§ž*»ýÊËü½ =£ub–U툞4Dº‹E^Bvÿ›ýZÖwtïX9\Õn8~(Ù)"– Jù”$RÐMG5Ipœ‰eµæ‡ˆØÉXì€WÓÚ²ç¯äÂËõÔý>´è;ÍgÖ0õBçÎ+øþàÅMi›+ø ,Ð×C*Ç6ª¹ Šy<$XÒ“¢‡Ñê_ÅWÅ—ÂÎú+égu†±Ö©‘,!4&N2†2’Y›ò,ÑXÑ 1±'M¿æ×ƒª=«¢ý+r#¤N‰»F‡{7lwÕØ£˜ˆë))\³íŒmäùÍ{õzÊìR™=‘°,õ”¶Ñ*©®ÅöšÎM¿³Â>êíõ¤œ›ÕØ¿‚þÎ|?ÊYJ‚’$ÓÀ;WØý§Lb,ˆ†¤1S‰F"ÎÐp ïYiß gß©´coG¼Nø–#ÇqKéšM¥½}ö(l±C [è)¼“¢Žã}Ç»«éãÕë‡qèþ£ÈoMH¾|”FJ§ÂS‘j5#HJ¥p–¢eÇ‚aihÆã}ä#¯ÊÞ‚2ýåìÃûèÉ/ê‹:ó’Ñý$ŸWÑWO!–k¢¦“oþãqëóÎy!©LèvÊq²y§<6«Ãâìê‡gW;ØÕÿhŸ‘@˺ïmÐåƒÿàsØøEÝ¿¾‡³ªëÀöwOÒ&!Š%̦‹T ìÎ|T¥†!ÄSC¬Hë?Òü¦Ç¦Ž”º‘Ä.úpkdŸ+îW'͹W=)Q`–b}`yt¢ž5F€3ÿ8”;ÏüD²m¨çLl&ÊÃ\&-q(›gþfþw:øïŒ‚¢è×8°®¸wI0ÝÌ{kDa%ÖÕL°ê~ÀÇiЯ7{ÂÐá~M%y¨uÚ¬'бZúý2?·s¨bÕW\f2ã)Õ™‘qbâ4ÆÌ2Ã%·Y¢°ÔŠï!û/h‘Õpl¸ê]j¢ÝH®ZgÕfdgnå¦U©XøöÿÜv½žaª£ÿ)êÔ¿…Ýèü*¿ðIf*…û´A4è·Ú¼ÝmÕôê´õø"dMòá2ϧêL‚¹(£Ïê‹¿Aîð‡šŽà²ˆiB2þ™ucUVßÚ¯^­ú¤ÇÇm5éNA$Ùö‚`ÉäV}1™ààòb«u2Äæ>Ę‹bsWsߢVr†–u¿z´Ö–žPÌz­öcÜVè^Su+ŠÙýDk¦S$ ¶™f†2lŒÁ(E*Õ kÆcزLì›:ØM˜ûu%ÀmËKk瑃™]ºU5CUSö¨7ªÛßi‘Iœl»NbŒ7Í"4æmµ6Í"Íx|ˆC2yˆ$ÙA½7sÚ²Q7b]M«î%´&þ’ƒ¶`¬Vrÿªˆ˜³bÜŸægÖ¤ŠEŒ™QJs¥$Ítšºó¢bDP©3m÷›ykå#Y…(¼ùøò±¤àê£@Qr-FÁéxºUHœÓ–ƒþõ·&{õ| 8à~, ¹c ƒ›÷€@'uŸ@è|Ç zRåÍjì_“לÞ<1ç’YnbbRšNa4U’ ›ª³ IEe‡|ú?,ƒf=2úŽž€Â}ùöoøùå›fÛ/"H®ôôØÕ{Ç ›Œaº­Þ…[N›v|ôÉP;~“Xz°â?@+>Jn¦­VïõÌ·ìãkGtˆVoú´ú£µßß/ëÑ&ß¡]z¡æv"Û i~Mÿ($SEiÆ“¾PbÌ*Ê$eHc“$$$fÆP)’DiŠcJÂ*ÿá~ËËŸßTÅxî‘ëÀ$ö5rN ·Õ<‹Ì2/Š“ÅT•0+Ñýöîm´b=ÔÝÌÇ+ÎÁéèMæ)jé9š‹©-íÔ-5{ D¸‡ÐTó>m¹Óöî^*ʳès~MÊÑe¾N­*¬[YU—èùE±|îf{iŸ§¹i–qQ½¿¾þéÕ»×§Ít¹±MæÕº‡Y ’_6ÕÊ5:<~ wÃWsГ »g;n•‚e+r•J‡£½z;R`s«CÞÈ9uÑŽÍNŠEÔ¶Àž™´Ú€$Ôûƒ2'bn]O«)@ؽe+QeóÝx0Øõ¶²0añ¹žÌÝîý—Hˆº#¢¾‡î>v»û¤¹?¤ÌøÛMDHHHš m%Ûi.ƒêׂ÷é¼ÓJ M;ë¾ngÝ×íÌ·Á¬]r^%ù˜)P%žLß. øvú%p†6„; ËmíB^Й¾·>楓å¿mzWgÌÍ“îͳq-nŒWâÅò `êç€RAñ,|IÚ[Eá R‹œ8qÞ7k¾í)ÍA¦3šQ£MJ”H•±„H¬°¥šf),Üëþé…¯w„sôågëMÅÊ]RÃèþvßå¾Íܧ€˜„L:U½K0Ã,-d ·Ï: åSE¤/ܘT=Iuöt#yäјí3®Å5*'cñV¤㈄Úgübì3‡gŸa;4ý¤¶lÓ^&Ð>Sõ7Œ`ŸÙ=ó/btvõØö6ª—§¨qGaª}5²BqâP…QVa¬ˆ”†bj6IŠ87N›‘8ÊRdn'ŒÙv¡IŒÛ2] 8¼TöÍ¢TKð„Hv ÷èZ–*4ˆs¨F5à‰nô´¾Ì Sã*OµéKÑdž&Œ‹XÄ1Áqf±Ô»Ï„ÒŒšfÚf2é’û‡Å…~xõâÑätèôÉÝÊØvNHI¹¡àe‚ÛJ^¬<,À!âóBI8»?€iaë§ù§Q À ugˆÂß÷¡À ÿÄî`ä`ÁHˆ¥¢^ž‡A±½‰[üã}Ÿ0{]|õÂõsÅÂíœ}!"ÜI ÃpЏ@)·2%F„L¬ã„2%(Žy‡bžÕïù@€x¢|g7Š€T·h8³£Æï¢¦“òjEÛV† º‰¶„²6÷ÉU³;À¢‡‹€Õ|oXTM|›®÷B(¦îñ¡à˜j+:±m´–ã@,ª™ÉSjbŸäÚ°²úžðJý„ýÃ;2p퇋k•L0¸`i¤Î2k±DK–ª”'#‘hjð^ª 9¸~`u1ód;¶Ll7¤I¦èÍ,\CŠÍB'Åh‡ð›®9¸:ÑI‡d\ýD;Ïö= ŒmeÞ:ðªd‡“‚ëkq« dÅÏÏR…Ä ’[”Æ"£VicD-ÖŠr‘ N{Éj/£ßÏÞ®ðG•?ë¸aðCy'~¨Ã äZ¡óíôO4f¨%ùÓŠêÖáýÙ¡ \…Tî@üpóÞ²E-B Ð×Cß5ÿ.;åñ€‘í±nÍ•_BÓßtH¾ÒÜ=`°'OËM8¯xÿPè®Âðûp eÚ’$KÖ2cˆÐ˜rœp#¦Æ™T©f’Ë,ס,üÃrƯù2&¶Š ²Ö²ðk—Ñ-Eá÷í4zX%áÉg„±¸?¨ê^>­ Õà”4Ý(ßÍŒs˜Èã€ÊÃ/ÆÅŸ}Ùb$I†m‚´u*ˆ™R…%eVöÈ(¦–[©z çõ6· —öìŸo£&h·I¶â²Læfzáºé ²/•[©žù±õÞ# UŸÒåÄ·ÌiË^ "¡™î ·AéJÿ¯/uê6Ëzalˆ·¾þáÂ8í-].GħÉ8’îd¢bÁŒ$X[¢˜æXX+qÆöYµʾÿùYôËÇ×îÿÿûâÝÇgþ¿|w½v iäÑ„wíÌ'®³ÿ¨J+©y”_”‹‹¦ó¢tÏ7+¢Ô-4SN¯*{^æ—ŵŽä€åƒv±|`K–Ü@9É6̉q¸ñcœŽž3kÐxGÏ8mQã4พx³Oxó;Æç÷…k (£}Ðeë÷ŵùË€Y¶´¶.…2È,ìØ‹D™-æcL)ßkÙ'N#cò)dúJB.:ð 6·™õ:µqwûÜðTÄb)ÁB,!Ü žR#Œ œÈ$!ÂhgVïÖó¢*eùRM @L‡´*/Wíâ*¢ùÅLCiÎ>}üð‘z zÍÑù×&þÎÍïç<}ð§[鋘¾†é¦ ,aœ—¾€×b°®ad‡’Ü0£-ºD1ïm@4{E4õÖé3ò ü ÖäAA¡Ç†ž I>ûd—ËÀ9$A)<ò¿\ºëÅhËýí.gË|æ;Yý¬ÊWŸChdqîÚOfó®4y8¢jNVy7êU¦ÕŠí^Ѩ—Hôþ-»”Oºá¥-i‡1ZÓI»”kZsEïÕ¨!˜·­y¦îV™³¼šÔA0OËüÜÁoöÿÙ»¶æ¶q,ýž_¡Ú‡©îš‘Œûeç¥ÓIv&ÕIOv½îÚH6׺E¤ì¸ý¤dSwP²%ÚÆSå¤HßwÎùpÎÚšrGls®R…­Ñ‚„i”(‹h’Àtb8•”(!09J-ß1aö4j”t >ì¼ÒoÛ3‰û1oª¨´Ñ•$ÄtþÏ!ä<æÝù-÷<Ô}ìð÷“ߦŽåÞU\ÿ¯É›Ñí°œ·ÂcwYÕ¿ûÓ-¹ ãºÙŒ£Qÿ!D}¥nÊ ŒWTý7÷ánÿ§%q›ôa°*ªÿ5ßËè_ß3‘—Í^›÷Eb«â¹p¡¸Ÿ2,`{¿LbÌöyÆl< øýÛßE÷vÔ‡y#ç}µ¡Êñ—‡µzz³¡ÞLBœ•b"SƒŒ4,¡Œ+e´Ô '†àcfæc1¼W] ÏÔ¨%¨`|±ü/ãÔËÿ2N‚[G,Ö‹ç9Qv@ÛñX /š'˽ÆjxÕBÀ!ÇÉNðP…€°Œ CÔÒ"d‡Ì¨ÔB­±Îå6–'é¸Ü'Ó?™J/è@pt[Åf–{C]ŸéЇQLd™µ²òÈF­ë€ ùß:Ó2ò3?ø³ÆðMiø²£/ÍO(3Ž£/”SX'%”K´#úRëIàn.ÑiÙ àþîØé½Ih?[¤¯šrT«egMœñ‡òöNO nµþ~¢P‹"N•Ô¤€ˆTž8Êà˜„wpSÀ)X½@žGÚßMÒyŸùb#ÉÔÇ>ü™7}zå÷¾— í+2²ícÁkÐN0VÂûëì¶-–À%=àø­§;vaoˆíålÛ_5¶?Bå¢>=Æ_š¢0ß‹SÅ @±´Z†VÈØTjƒ€bþ€$ EP½­õâAD/ùõÓyç‡_•?ñÖù4ZœW)ˆ;o¿|¬o¼Š81÷‡ËÐÃPͲ+V†ÔxÜŸI4^A@ QáZŒ€K-®}‡z‡k±KŽQ«Z[­ñhYLÂb³—ºKS\Y…±Í D$jâ—Ã9濆ÓÓ=œŠr0¤8€ Œ„s^5†Ê± „„JNN¸@2‘úH*Žê¬}GiwÞÿëó\ÕÁ#àH ºÄ’|8Ì ÜŒ5LŸ#iäm¦{뻄 £A¨pÁ͉B$ „ ƒÀ¯à V js='ÿk:=ÙÈïò›üêd„C9¼£ÂRABeJ!ˆ¬„¤Sb(V k|¤ØZˆ²5à]^˜AçkÇݵc q$á…ôñäƒ6 G`Ÿõ¨“Bð÷ ‚WPŸ-ÇŽh³àRÐIgöRwlÃ3«ÐÒ9³9#ˈ,#<q"¨Ÿ/íÓÃýH'é‰d @sˆ¶J˜äZ ŠC+‘Ή%šêAö¸[(ÏE¼ŠàBc‘ãå‚}‚:ÀɃEøÏE»®°ï³K“;ÊáŸÊy_Í·Ue¬ª÷/Hž ƒð°¢úó^˜ŽÈ¼Ù‡4Kg–fT3ÏÓ,õ>•òÃþåh’WƒW@n5¬—/•è„‚`^/Fî>à»0ôÆ?ñÈnÚÆnɺø7ºc‡÷&ܦœ-R›HmZ~µ\Ô§¥nŸp ­«ý>thõhÎ=Ú€EXpÈ”°XSŠ‘o.SƒKPJÅP†¥aj›j§Ú·òû6ß³/<‡§^pìc6Neƒ|VÚ[ èϪaÜÜ÷U¹u{Hÿ®[ÖËÈÝæ8píù…oê½…üîøDn:_ÍÐ Tç/ýâï·å'?G“t:öÆaø_.‹¿?üW_±lh¾… È€ÛíëA(ä[ºéa&äRÝ,„)$õÂY”±Cz1ÏÂÔWm·\v]¿àöÈÄ|üùsçË4qÿœ‚cS€Ù ÙMVÜýj /÷q„òìƒ_9gçU‰Ö TŒ™ô³ÑŸÙÀìaÖã#0JÚ·Qtýí®¢êæ]æ1|r„NËÕ÷ÛøÍš úsæ O º§@ÑÁ]þíÀÕ`¨L1RiíÜ1+&anwÎV ˜Za)Az“ýé¥ï 6šŸµè|¾;ÿïOç¡Ø2׋AFAWQ¹ @tù,&tÞtý,& «]_„õݼ©ƒü‚ Qg*q>rÖLt„‡î©RÐYZ\”o6À ®/„ˆŸë'9K²á™<õ ÀæúôårNû¾¿yyø‚î1ä‡Å/ éÿ:û=]öG‰ê‡üèûJÊYé+"AÁÇ8‰#¤ÊâT'Ò”* ÁœJÌ PqMq¢`j‰è)9/ ¼Ä¸›9”œ,u+%Õ»•"väÊS›(Pó/ˆ]ŽFùžg3žŠá= ^E9Pä@‘=´1rœ@•‰—ŒÃ²Ø”c…$Z¢Ôñ¢„Q.É”vÐ¥†!#ŸLøðdÊBÔh%•£F-‰QÂH̤lû~1“òÒttºŸÒ“#§áHXÍ4eÂh›#-‚©¥‚k,b•¥\[VKûmǪ¼ø›®tê}ûœ¶o¾gIßtüžd&0÷LÜ01¢.•ÛÆ˜@ë"D÷ ¥»šp¸Ex¶y›XŠ•Ëp¶#h@$_m­„B:™¡ßö´Š…XúUÝ×jŒ‚¬ÇéÄ„º‡ué¾Là]Œoµ÷®ò£"OkàasŒùHr5šZ(t’:Ë2C©‚ ±”ZŒ±Å ¦T¤`V9†™#B#€´Ôs0²Ðrï:e·¤@[‰4GZ[hÎ#^Í#ÍÁþcÈ9†œŸYù‚Õàð!cWËÁ“­‰/7¸•û@sè˜ç0oŽ8#ëž }%k@ÎmVˆa¬¬!ŠËDQl4ÔÊÎí N’Š&ùù2à 8×Sô+ñ昢oKŠÞK÷É~Ä)œ_Oyyøù9ˆBÈ,€:§$‘cžˆ)H5B&!“¤&¬×Âæ8À—ê‹>^`aiÂ’ÍDl.E"H,ˆØ˜dáY‹F˜l!L:‰/Œ/)Ù–CÄÕõ“ÄØBX¨ =r¶½TeãoÞ0@ùöjåg'ž´& ÁZQC¤EÜX)¥Ð„(,2 X¬HX ¦Ï[’>‡Œ1è˜KÛ08§uvÇŒïà7 ’³(6kŸØL0H÷,䓊ñ…VÆïPÛ7Ü’þøúnöS1¥tP×°4-Ò€IkÈ£‡y(ìì…UóœÛÉ|¦fƒ²~óAE¿é …É]í‰ØçÙ4Ÿœåž¬¹ßÇDiÊïîÇ•¿¿ðn—sº ´vHhé¶àþthœŽ&¦x„Ù;Ï tjYÛdêŠ(ÍÒ\Ý^71op÷…ù^4¹ûüªÛÄÜãd{¿5š>‡ªüXà°¡)R{Ùè(îÕ¤ÈTÿŸj¢¾>wj½ou`ÀòYúoåMvWÊ›?ù6yƒmé%üHUo÷¹Î“•ÊÜ‹‘z²'vÐI—x²À’tI P°a£5²<&d‘ôIwŒ—Þ–ßn˜óP^7·lô…g4¶L#=mJOÝ·ïŽú7/»fÜhÿÈUÞG×È«eòÃ|Ú Ô삾ì¤s‘‹ŽÜ,ð±ãŽÍ÷l°zå5—(‹_ÎBF:›üǬæ}|÷á×ó–ÿûéü"ܺjÏ`˜Œ¦ÃÔôRÛÓÆªi¿“ºo7ô ½lõ[3Yêóƒî".ÍÐL²4À²Šg\TÅ{·²‡a÷0³lðHêÚ8ë¼7š†™—ÛnÐÍ”ÑÀ¼1_]eÙl0ÒÿÙ…îÍý¾ëÿ'äyÎí«¨fÀ·w©» ·2'EÈüÎÜÇMÈïÈoc•ç·AÖ>‹åVNƒu\¸Ÿtî³Þ¶7Ù¤˜nµÜÕÊÍH—ïs›é]î-²Ë³óéùëöö[÷:‘ßËÌä&s?óûT ™•öST³õMÒíF>Îâíöq¨ÃN!Í„IñÜÒãq𣍖´NÆ…FYMˆ$(nßÔ SŠIn4ë=M5æ˜Ô1G+ÔÑRõ îb[ùLÔ(µD£äéÌ!%D£ð:²˜(¼ŽÂëã¯rtLSžPÃIš"*„̨T !‘©I96‚–ˆ¨»~VÇ®™„,¶NõÝ|uݵ±ÞÔÏ•ÅÃd-ꮣî:ꮣîúÉÝ·¨»Þdºë¨»ŽºëWIO£îºš8ꮣî:ê®7ÛGÝuÔ]GÝuÔ]GÝuÔ]?/Ýõ ÅÖ†Jˆl­±è”˜*“b„¸$±@„I“bb¯%( G¢¥ÄÅ’,TTf `¼« Ò’;ʯ[(¿ “£æöBÕ¤õ$_£1U¶¯‰4v)®²ÇÐ=5¹«‘–}F?„\ö=½ì1´±@8& ×þŒb²0& c²0& Ÿk²ðHç_Vrt{ì¡Æ’½Ç6¹˜¿kð„ïyMÆÌ’nÍGìõ"òu .º¸k0î>/·ÇýNjÍsz‘„†>& ]Êòí7j¯eñ$lpÕz¶°ñ:1mÓ†[ cÚ0¦ cÚ0¦ × Šiíf1mÓ†Oœ6T™Ï8¬æ ƒO‚ÄÁZPW¼íÌr‚0Ø$ILjÃ,`RÎ N06,c¨o”#ºóÑÉiy«ïMaÒ2 õaè¶ÌÑÐ÷i M¾ýøþC'Ë}®0»ŸQßÏèv͸ov¥ŠNuwešÍÛšËIVÜmÉNÔ``&?¥y¯˜=›=I^°ZYn%]šÞÐgãÉèÿݽçgþ•oÏ"„„KYBÀÈæ,!²Å®«qIxýôD¡¾«þ»ÕÂêú%Õôìß?¾|êÜ Îhâ^gá7fÏ}Ûýåiú­<±GHB©á™@7«Y-;Eçñ <ç€ì“;ê¤Ï¿¢mÄpΪ*|h:¹ÕýôèDSÅ(Ò$¥œ§˜§š Ô‰ €àYF&ÀDt:::ÑUtânD'D‹÷‡²Þð”pLwXܲ[ŦÙNûÒ±ià3iÃiC`Z†õˆfˆƒ$_­•´ù'Y¾Suâåc»¬*íÏ:‚ï6-ŠIíàJåWA–nÿéVîóÃ?Ýõƒf|\Ð:}õ’MÐDäx*8V‹µÛû•0ÈÌdØÝ9N™H¥ Ê$%$¢Âñ}–•ê²€‚ͨ@„˜-ù,¶PŽÍ6®@CsYãsE‡TMT;| ¢Ï}–ú,áåA'€‘Hl*9°š+j%Â(ÕI 1Ð ·\/·,ÂSÛO-U?G€¸‰à pGB¶ÃSY/te·mZ"ô¹BÓ~ŽË¡èÑé”ètÝWus¸Eæ‹’zÕ…ø¤œ{¤@‚™C$&›háKZc˜ªieˆeñ |ú/‡?…ñ'ÃÜ®”ξY u~qXdýÝù þ Ø;7Kçí°È¾fŸRùÇÿ­ú×Y±‚þgäv´¢óÏÑ¥Ã7 lR~ðSõÇ•ÿأƓ«^mo¤¶Ÿ#b´K’@¶¹Ð#a„“¥Ló,ƒÖa‰J½¦ê¶»~IuýbzE^“¡¨),­<­G€%÷ʥܗªÛY‡L6ˆGÅ¥¨íßxPm¿»‹÷ïþõÅkJIêî©õ?Íá€#Éôç;p£ÆõQï>½ýüöëÅ—ß~þôñ]ø×Úøó]Mߢ6ͺ*ýƃ²Qã!c÷ûΛê£MWÙà,…C3¥kûëÃöºð·¢;(üxÜD:þ­Ÿ7½Û¼Ðé_ÿÚô±ÖG½ûã·?¼€MÎèÔÇ—è?.ýŠ7LГáSüÙ¢v7÷nÄh\œ¹ß-.7øóT ÏŠ«_ÜòöëÇcaD Ø“ëQ¿?Ú$ð]µ¿i£¿Ò@¡¶¯³Â€ÆDP–Hƒ˜#"‘BRk3$‘[ÂÂ*ZDgåpgI¶ì¬ ·8+˜ºW¶ä¬0÷Në™È8[Ô¶m¥­pïW"K+¼ÛеÃUpÏî€ÑUyA®J¸‡Ê÷û-.qTøÁë8ÄEiæ›4qIšx"áH#¿#Ô{hìeU®y {ú!—yp%šyøÞþÂþŽÂ!B¨k=‚VyM2ìûº ÂÐZESΩÀj©¡w´¥˜kᆩŠ.Á±ò€-¥Õ%à ~ÈdÉ% PŠ¥œTbà‚K¥uÝŦ´ú É}-iuë¶¢Ô˜Ð;m>‘cÀc#:Ñ1Ø•‰ÞDô&¢700z¯À›˜Þ¤ÃGÝëÁ¸{_å€lÃà~,¬‡h ð Ï«o;ýŒT[ĘäPnTÄkRm〠$FUù¿ÿÜùê¿¥wò¼óÃo_ßýع5Iêœ=q”7¸˜öïõA¹w;þ³³~zmÊÚ!›ýOj:q ¼ó%¦Wn—,}Ž~õao<ûð§üúÎy½Ä<™ßQ.®[½ªsÞÛ.æu×Ûãú8gµÈô’×ÃpÁéàÒúáxŽ`HcÜuëµ»ºæÊºxÏ+=q^ª¿Ï~qM?Ä›Ì9 MûèZU>ð1¼‚ö<+_¡«>ÈšÝd;J¬[AÓ®Ù¤ÑÏùZm–F¿7c_i˜fÝÜÐM¸.WÌý—ÝnüPy»Ý¿Ù;÷Ý6Ž,ÿ¯§h`…“±”º_²‹Å8Ž=›8ÀžÍ,£nmuL‘\6i[yžy†}¼ØžjÞš”HvSl‰” A [ª:Õ]]]}¾_:U%nP¤›äËG˜G÷t1r:>žÍÆÇ·Ÿ®ª ÿ«›oæÂ0/…À67írØÛµ.7†hfq`Üê]„´fwö©}|aÞW/÷-mp"µ2¸@ ÏMË>iÖ†tŠÂ×J FG˜ü£Ó6Hã{˜ùÚ7çׇ@ÿ;%Šžô^€oœæ^‰Ü— ˜<¸FPG<²’´TLæÊ&ÀÀgH¬¾B[–9§b5ÐÇâàsÅpƒüBùô±b¼½bRv’WhŽçRâ›tÞ_g“Ý´ÝfZ^_í‚K˜K'½p3‹ŸÇuù]å‹HŸÃ§©èÚfKêtWc‚¤é©ñ’HA ÎÅ0E d=.ÇÁQ—¦å™–¥B7tWÊÄÆi™J¢VuW nWõX˜Ùw%~›mUm#¾žÜ.ÖÖ÷—Ð7‹¶3wg¬7¦ø$À&6 °§#ÀRoµÉ¥Ï…¢Bs(»9EZqcçÊbë÷GtßÇqt›úšKð¸ÇDåŠû–ÞL}eÁœààŠ`ò.Úp@ë(&%2ÚÕjl&…7)¼IáÝË~Rx“›Þ®uàÓ»m9Æ`‘'šÑà9ó(Pgr&‚€×Ÿh§sÄJrMÃIH¿1)€^Í#¬4YÝc®4E»òaUûInÙMÉm4¹]¸+u’=7v«.Àðx*ÚB¼Õ¤,$eávȅѱ-°KR숴¹•†Úl!gfµý3”AšaïCLŸ¸ùí\.’‚ t<•i—€q„\¾öúvDå±G»`ò…ÝNˆ¼f½¯Yï€ÆkÖ»cñe#]xÍz¾´Þ…/­wÁà ëøÒzü½´Þ}/¬wÆÞk-œ2yÍD8wÇdn” J0]ps+˜§Ö~{‚½‚¬R4í©: î¦BSºŠÝD°úÒ>¼°´}x `a»#`Íþ)ãÿ—Ð?’à~ÏãiyÜëœY$1ìÁp³+£9ñÚ!dçI8‘à~ÄWO¢RJK´²ìÎ÷ 퇛ÂúDÀGÖ]ô4T€x£IH*Àm€ cc ±3–sî¹D[BhCbßn3(¢ŒªöE[ns›MTgÀÈ­–Yâ[tBÃ%|*FYíˆ$¸¡,ÒܾÕLrB„”Ú0sz!kSM'*@ìÍë «¨5ÛWj¶®Ôlw¥,›8¼ P³}p`iûð*ÀÒöáU€…íT€¥íëKÛ‡W¶;RÖì?BàÞƒŒÈ‘[%ŒcOœ`8çNÃüŠˆ·Haê±U>å]9• ¥Wó®HDÅJbU¤Y½~£ €- @ XÖzšA ÿþ'üߊêÜèxTª Α@ÕAð_Q¤˜ZDµö»Nh‡ÿœJ$B@qw=Cx×"zk<×2¤„ã6F‰]¹S[Û÷”¢¥ð”SŠù® ƒ„ÿ ÿþ'üßÃvÂÿ„ÿÜ}ÿaÜ4eNZÉ-ð¢Ü *)ÇHÊ€ˆ¥ž8F“p"a˜‘õB°•„ì:]åö[6à§P€•jÝkh¤B H{ð“ô€&{ð9v„Jn˜0^óÆ9øîÁׯqáAD"æš möàd•ÄܹÀ5Cn×é0GGØi~Cëi~Úƒ¿Ÿõ´?íÁ¯M­ÇÄßá‹”}“¿ïû`S"7X0‚–Ƀ0Xb¢±•6.” š¤äw´þÞö`S©èj >Æ0}¯À7üDµ=Ú´¯é`Ó# nv„Ô]ާAÝÓ[MÔ¨û6€­FÇêFy‘ç•$$'ö0V•·>h츆!Ót‹eµa4»Ê=·Ì-r¯PÃåò6-ä–˜œ2oe9²'‡ó7æ…nöÍW=ÚÁÎù¥Ý.öÎ×­~÷|Ýúá÷Ï×­w¶ƒ¾ÖH{èëÖ¿‹¾f½ƒ}ô5ëì¤_Zïb/}Íz»ékÖ;ØO¿´ÞÕŽúõNç·šwïõH8á<ÇÄ"“ …(ÁLä sŒO™fB JDõ2fªßQ¿kWým¹ì·——¢ê—µ:gzxWéÓYy‰ë×/¦wiç¸á@®„å+ÕöL»-›ì£ ÈòƹòŸ•ǘ@9÷R‚à5û5°BRc¬\xÔÉy|A#.¸•’Â½Ø ŽN@Hgåµ´ŸÎÊkÒL:+/•wû鬼‡‘†æêýÕ`Ò¿USh$1Ÿ½øE=÷ú.Al™ÉsLCpÚC¥1Aç´2RÉ—¾a\À‹ìço²7@y½/Í8s¦ÿ†ÛËþ{Л€¿õ€Ìd-Ã({ ®ÜLSaáÝeQfWSãð7Äí3h#ô?£A¿z„Ùçb|™½}ó]öì­¹²&’ê/ðäç2ûéÝWðϳŸ^þœ=û)Œ?›Qˆ¿~cFåùO¿¼ú*ƒkª$‹êÊÿÚ/¾d€£h³¼ÌƃÌ8ø<—gc¼rh¢Ñ»¾È~g¹qE¯—³B±øüøQöivçƒ,‡2T¢¼8«ß镃,ÅÁh=Vô?d—ƒ«yð8Üx0‚ Š?î C Ãð it=C?D顬踼ÈÞ]†¹áÏоéõ®³Ï£b<ýê)ÀÍeÐÁpMg?ÆÑ› †adªv§–2;g—`u!³*‚Ù"/ A¸ÁσÑÇh¡ Ðm¦wNÕ§Á¨ºÑïÞ~qv6È^Áo®«n¬†Â¼s.C1ÊŸûó¾‰EãEW}¸Ð~¾êÅØY±B64e -zø=\Ì3xD½ÜÖWóº‹N­ZÞ­=ªÊÖ¬‰Y•Q5Žúƒª±øû! «B•åE‹` .½ï‹8(MoÚßó¦çO8ލI¿º¯3ÚLÆÏ3x¸Å8+ŠÊyß‚YÉåó3èµÂÇ+Mϯ¥W”0´«îà=±½ªóIª^ ã ®íì›0vßä娨8 «‹ÍÌd<¨®Þ.x®Õ_37èçŇêâã()ªNŠcï¬bŸÅ×92¸É(^Ñíìììçù´•ýëÿN㛯àú¾œþ ¾ƒÏ3xמÃÅøª÷ª' ccii1GœÙÙ󃆦C7¦H܉{pÍ¡rOÝm‚8$MÕŒŸ*[e/¹Òð?eð{΂àNº<—&g¹ÆTF¤h¤7üîåíËìíUÌþ2’ÂÔ™»n*)Ì Ì½€û‘Qzs§°¢è1ø…r©deÕ¨ƒF‡~gW¦ˆÜš¸†e„¿êwSÄ™‘}6¬?ŒÌð²psÞô˨"œÕU„)!GB/úÙüÍÊÌpîñ´ Øt—0±áÞœÓà€“¨ (<-8å/_|Ë= ù}3žŒÿf÷^\ÍÓàUÌõóŸ_¾ýŒÏ^üüÃEöbµ½ê¦pØ%ž/.âÍà·¢×3Ùk˜ÈòÁ—ØæÙ»ËŠ m1òÏ+ú¯ng¼½e¾¤¾hÃWU§ÂÀS‘gÊÆàN•œªŸý öà9T\lÎ/ÿ_“K“ýÏè×ßÿ¯÷û?«äò¿^~ôÌ»¸œŒ/ò"支ʾèÇEöÎ M¿è‡~UÚ„ñ-%ßWƒì]ýþϲ*Ø6¸§Ñ”,>õ’é™<ûs¯ZUpð±ýqFå²ÿüùó´´;‡áþkpãXç›é¶'¢ c¶œ ¼åŒx u8¡kÕ†]9©Ž0½k-f¥ÙEžOçó8ãÌééthsf¡ø?‘ogot£5ÄêèßZ"ç:nI¦)¿’à¬z4eÌÈù)ôvy "Ìp¡YéΧzÕ.o n ¾†Í¬~AþãF…á+ÀÄô•Ž]áÆŠÈ~!c³SÑbWÏþNσvÞKF=o‚+íœ:w¹D’ºÜœk‘ãäT$§"9GãTpzÓ©À›ÓMp&ˆ «>…FðåZ OÒ \{;nñ)NnSÇÞ>EèÅwhŸ¤–›]±»Ù„´gpÒ †Eÿ|> ?º®lgœÒ~ÅãDF ¢ *³çåðº©éÛ$õßÈꅶL66ÝЙ{üêvŠ:ÂØ©Õ*²‹p+ßk¶ÔO‹ÒÝE§Ð$Ìiñ†6¼ˆøBÆ÷±¡íjŽâE¿7µ?¾Œ¤Õ4°¬VºÕë0§¹Xs×IÇqÀU"s³[h·vÁh+ûl4ÄûÝ¡GGH”çE?ì*Y½y/|9ïv“P?/àkÓÿ´£P?Œ?†ë&æf_ÕðeØŒ¢÷Ô¤t»ÃâS£bÓ¯tÓ’ü¼Éâìh|¯š•¼ÙüýƒûT³¸k®Ð;, ˜€rã†×ÌåZ ¤±6–kǃÌ:—cÄ›!®iU!A³  $V·;FLl|8ï{xÇ@æå¬Ù[[…mÍL¯Rõ"¤élvùz:†ÏµãIøÉÅŒ)×àï¾€Ò™Hæx™²¥PÍü§×v¼pŒ¹ZÙò™BõðªMY ë¯Ó #Øy«ß/_e|Ô7/+ÕçåþÐlÝ_ ®ö ”ª?Ñ{‡´l¸Ý3ù]ÞC ×s§´Åÿ â<òë(œÆ5Ïiº˜òp¾ÆRr8H°ýÝ ËÍCpØb‰µÈ2c¥FLá!ŠJ˜LT³ääG´\PÉöýéjA ì~Ë1rÞ¤ƒ´`;©0]sî˜FzónfÉqÌûTsî´˜ šo§…Âõ êMËë“×i/ìú>„ÁwmŽÃŸãBîéÏ­ªjm"YWõ²5kU‹Z+£íÞ=Ï'Áþ Ù¤Ž>T|¦„·¨±Ä[ù™6ÞúEiý:×Õò6õêºöžÕö0·×oóð÷›…ö Á?¦pú㈃º!•(uR:o(å$K=5/M ŠòxЩ‘M „J\óx¹¦­hÍ)§ëiš$C’ºh-%–dÇŽÞºh}¹úá‰æžÃ«»‹ƒ"{î›â RTŠƒJqP)*ÅAµ¡º•â RÔÒ ¸{*¶;,L D°VŒ1‚mŽyžç\I$ÁwÊ*‘Ëœ)ãOnSZ˜Lÿ˜^êµ#jªL5/h}aRK,V£Î¤¢„Õ&¥bDíX˜œ%䪭Õyô©ääÊÁQpkz¾8ŠçjßÍL§¶:ùÐqzÕÕ§)Xz~¶«¼aD×>•ì§¼[i1µ r?Ðbj«Á–Cœ©î%Ò3'È#á<Òˆ#ä(fJ;¥•ž *´¶Ï›e·N@•€*Õ}¥†XôÜš‚Ä3iÐ P), ®/ˆ*¬mbM=‰ÏcË Á%Þs9´õªAÛe€V‚{Â¥'ƒKimô¨:Óªåý/Bn ;}ê ’°Gÿ@ç¿Þ!Ëž²Vï јäÄ dtüS{¬CpÁk&ãáÔ`*—&”zÄ(u[p©Ú¼6Ï…á+$E1‘ñxIQ̯2¶yiª>wüâÔãˆ1Œé•\c¦z!¦›O&ýö®®»mÛ¾çWèé®Þ•:Å÷Çš—›ºsÓ®¦ú¦í¸OY ÚjdI–¨8™_R²HYÊ’(óÙ(8$ERÀ9ûì½u±":s¶hWЍýá2ªŒbÅÒºós O1Í”†J1Æ…J&€jÆ1F'ŠDa‚RAÑ©U+±õë•W¯lÃ!‹]Eª\:Ê(¨¸qÊ)n(X )܆ÞÏéÉáÚ4:U¥P&ŸÅá#v~bç'Ö9±h‰ŸÀú&¶od±|"O…­|2d2ˆÛrCÎ3ÆS¦˜óјa”h?"\tX~É˳jA’!¶bV±ó9¨šU`&|lø6,Ò³Nß_¹kT-Fym= h+D‹åuùC´X^‚h±Ü˜k×^Ù8J‰B& ˆL0 ‘ÌM±N4ÐFYŠ£ Ùñ‘×Èqc#îºÉ\y‹†Y0†êŒ{¡լŽÀ›¶w®$ugà«Üš!Ò%seFèóD|¥o;Æ=RF|ãjÜ‘À“E[æSQ!G%ñ3(‰éHp$‹å¨î}&«ãCñѳŒQœr• -“$3©M?’„C³„cHYjçˆÅ:#Ö±ÎèLè•D‰´^h@A¥@°Š D“Ùq’þbÉè³KB“ç5=>Â##Ÿw•rÞ^I«&ÅgUuÞe©•XÐ ^3?Þ»™ÝT~½h ’´yëÑ…èÀ‘j ¥f0…q£±æÌiÂ%S\N3}j…”vÄÒÿœKÿµÒ¾eÿVã»K;žÚ$Ÿ‡ýôET>‹QrGDQYQq±u`T\l ŒŠ‹C).U§` RF3™²Ä€„ âôç3„Aª A‰Î¢è"Š.›f(¤iF¢ž9#àZâÕFì'Ôí9Ð4{ª»Ï›O_zѹ³3KÔ^l;MÔ^DíÅž³ŽOu§>ïžoÅ=¡¤š&{d± Dni 6)ÑPÍZh”2! 0~t¨ÿØ\ÀÎ-Ez‘Ì¿™_Jñ¶÷óÿ´©€=ÀÅâ™»´Gq zÿÏþdæ0QÇ]pÿä€íO¶0ßœ3üßÈÎñyïÇÑ*s€IñÁÿ”ÿwë>~34ùÞÖîòѾ)'gû}nŒ;ÝÖEADVm$r‹R’Žë»‚A&F´¦””4‘êç‹vyÙp/Óé-Ö­I.“Q~º6?¹]ϰ2Cn·4——³nuÜ0C<Ç’ü8uOò¾ü¨&® ûéƒÉ×­ ¤Å r.‹ VË ½Š.ÿõ›«½I@[ùº "µá’‡|r Éb âT£.ß¿ýåíŸûãû÷?]úâSj’ÑÄ„>E6ëÝæwƒà þ(8dlßÓPšÄ]è[v·Ã[v4êÉ}~q—‡Ò€¦÷® À¡W;ÍÓäõëÐÛZº¼¾~ûýOaС_Ü¢ëëA¿â x#Oœ;3çßÙß-.&ø‰þ»Ÿßþl§·n hÔ"Š{òi4Œ†Þã?w±`±‰Ï¾«"…”‚D¢ìÿ""H²LRF˜âÛR$cµr°j…“ÕjEŠ*:X¯V ­-Bõr] ³,W á€4óíëö´V™'ßç^¨¤(°LY­%¶×˜¡Z7É¿(F ³ýž~HÙÍÝØkœÝƒ½—«®×Ð,Íô •Ãñû`›'ø æ¶3|¦X xf'suÆ.Eb4£:Q(UÐð *i¿îWœáŸe†Ç!3É›-•Æïûnõ~7Émï훸Ž&êëÞ4.¹;[nOöƾHMÕ„Mük²Alµ°y¯?)(×·'—‚IŒ]óú± pI$* ×v._æ‹â…¼p¯bÛ¾ópðõ½â¸øÃ)hÁÝ8³×ö3ä`2Å+sÿÅL•Wk7™§~=à‰1nVA~ë$¹°ËSóRô÷ØÜøŠKî†ÞCÇþCó~–ùéU>ÝÌwç{¶Æúll 7tú)/ å`CHªgÓ è-Ýñã|±ÓÓÅèwàd0³¿Lsá2ãH ؾÔ_Ø×a'üo‡å>ƒ,a„h”RqÎu–éÔ”d*£"5Yf Q^˽]¢IïÃÕ{w%ö¥M—‹tÀ"O*KûÃmßר|ÁΡs\q4š¤+üeÔ°8ãÔLì­xÓûk4{õз˱SïöÔÀÙãôƃÙMø˜¸Ã¨…QŽU‰?ÉEJ°²È ÉÆEžs&ëû…!$!DUå*’¢ÉôÅá…Ë÷·ºÂ· ½Â?ƒpÕ%Š£a«MÃ6&J»©c(„OÒ/4Ñ–Íö±6¯Wù‡{_Œbþ®<…(7O`ÏQ–gÞtÖì.îÔäs•_úca&½ o—›»~œzº›ø"hapØÄ׸¥ë U7€&÷ñHOG“Ï‹åAŸDw'ô'£îH"’QŽ¡1JÎ(0HH ¤¤$AYšB…öÛ”.&’Õ—ä`‰$4-²™Š•g¥@5öª´©ñ\W×g’m¬gJ¶ÁŽö–D"“ȘDÆ$2&‘1‰<÷$²´ KGk·kJ†¥F§X ž…Â2¡¸–È`"´ýK’Œ`âg?~å즓™[Š‹ÄÃ߸ÏËG“¾Ô.ç4óOIx=ÿä1º1ÿdbÀë*D£à*˜I„”\4hd«YèãO`™IµWS=­¾Jßýøû/ï}ÒÏÛ~~×&ý¼ÊÿmôÏý¹\õþ=ÇFVDÔRcuŸ/kó‚b_ØQYìٕŧ—8þh¾äe_çÜ·^AÓÂYš˜€SÕÞÏÆ$ø™Ùž»$ÁO~[nQÚéP®X,;©‡y÷πÜG²üî½g÷îýž#ºü§g®w•ã%üá™­_åo§Ó¾Û<"¿ôí_zÇ]¾/:ÊþãýKˆ«ü‡ïgSïÁï¼ œWùvÅ÷ükÉ9òï\ËÇï5üC±Àû÷.ÉíØÏ7Þc·sž÷àr5ñ~íÍ—-Æþ¦r;]}ý‡_<þÜìëd6™Ž&ž?Ìk»ÈøØÎafêÉ{½îûµ?4u§|¯×.äéij¾ž·ç¡;Wö¤Ïûíd¶ò( ÏÛ²à`yÞ b9ö›w——¶2÷¹—Õ €G°GÚùJˆda<¼±¹T8O="0]F`Ö–p˜Þª'²Zd1 {Ë=Žû¨ÒqÃØûÄÖÊeKêÆ¸yÖöM!Q°„½oyã¾}Å`ï#穹u‘ZHbTÂSM ` N”P‰”0AO±Ö‘¸d8„ ±¤Õq%ŠC5Q-EÚ`]!É>A® ¾sŒ8Šy˽ÐïsO„£È[#]ªtC Ò ÒοVÛ‚9í«Ý;OUþ,W“þ`Æ®:&ýØ •Ç®ðþºÂ/ºÿ»Øq15:»ÅyºäµŸj}>0è¡¯Æø<õƒVí6È–c/§Ø_5U}m ~±Ö´½m Þ%ÔgXÊ<½Ñ”ùÀ {˜çF`Z¥Óïß”NûB7÷îˆÇ6Üwr*Ê¢î>dže<%ÒLP“H ɸ¦FaD€¤H§ÊY!?€£ [¿ûã§}ÒµÓ‰zpÀÆC?½1ù´@'ÊþW¯o«Ò—ÁxÁ ±B¹Fsç¶ä\ÛÃ@Rµ ÛDw©½ŠgÁuÙwÝIâ D”×¶!A-*Ïø8|wþÈÐ8C#¨já6ì›®À)ØM ¶ücËSÐËéâ{Ëb£ü4Ê´Õ^/¹Ð“Ñô±…<ý|ó¹oVÇGë:'MòJE†42œðŒÂLËDj…°2‹ÌÉ€9¡Ìo–¢*¿Ð\fT;Õ"A›žÒ×Þu5TÏÝڢݻÐ(;þk©|]Ñ+ŽfyaÀ\¨_í1¦&Ÿ{ê¥I\‘s¿«Õ[˜BVµBÔʧ”UëÜý)ê\»¦sÅköò й.ÈèͰV9Лᅥè~PÕë6½íK(àk(âtËŒö QÏÊ ·¹`d¿ašë†zµÁ Z7‰„˜2NqšfJ ”ÆR‰@Ê&†¬Rüä«‘;xl„ÞmÁ€Ð#)HÝ>ò/áyò£n•O5clÃ!ì&$/í²Å'—vX~qÏ æÜ13Œ‡x~…ç^úÚ¸FFºŸ¯[œ¿ö‘‘Pû9£ØŠWMdfd†yÆ“1 ¤N0ç0v¾÷ Ĭt¾ Âtó^¹Ôþ-”u(iCDÍoŒØgˆ›šßå›öÝêKYÅÊ!§¸Âž&à ;¬²mÅæ?˜iÿfXv¦‚–Yù^Z®Arò=Ëý۳÷É0¥&ñ³Å¸¿ég~ûÉÈsàÝôáân6Èû~ãÿ‡\¯ÛŸÀoä§IÈq‡~öhψJ›ÕôõÀÌWϸ~æùüòrrt<Ï€‡ûWÚ›–Ͳۗ“ªv€æÒÕTðâ±OÒMGL?"ã&2n¶·4¥\Šš¢óä(µͳ·7츛a¶* }U-ëqì7¿ýú¢ÚÊólH`óÙg¢è@°k&´;…!}<¨ ZCE7P¦Ôp”%\ !3ʼnʢ í¹ÛÐJ xu¥UZމ\Qå8óN@•(†¸óá \±:4¹Öˆö„¡ÉVV´ã‘}×Ô¤s@D€¼5a¬­í7ÿý #ºŸ{ù–=±¥ ˆ^çOj·ñ÷^® *àZE! Ä( dÅÃ6(r]!èUÔ*,p_E=âXAQ |*(è±UU…·‚+ÍŽ ¸ >7Ê‚æˆYPУ©RPTE·êBƒjVºÁs¸/ bû…„TÀ°³„C¢úÁç©‚„!qK´0(j „%¡ßjÕeè õ­àog\`eþ+HYHd2 ˆ«@[­‚ šwì]讚æ„<· âTÅüÃÆ/YpäiUÁ”ZÅW¡%ïü'è{î?šŸ0ón|BƼÍDûAt*Ášé4ÅTIÍ$怢Ôþ#$öC1§Èþ“Hµ? Ü„àn V©ör…jo?òÜ6ƒE§‹¸µ¡Ûwo³Ï¶´î}ri‘q÷Í_á\iGsH&! “ŒA’’i»@§(Å„`CfŒã}[hnsïg§"ð[ÿÍæF•õõÛ^?ë}µó`“@×7³wtl_'×s9ÀtaŽð¦÷Sþêq1v¦ÿu?åÿ°×s9M§ãÊÝs]½ºr”‹î¥#»ôÏñjÞ9+Ö¾’ÍŸVkN ÅjïäéœR6ýöUn§ÇéÀ%ŠeNPÁñ"{ä‰öÝ8XµéßêÍ@„Sl¬¸á1Æ µ$€ÁHSðtûdzµg¸v¿·æ4 ;"·§'oÙh+A¡‹ûÕuÿÑF¼aM,ŒÍÁ>Ëîã´>÷FTä—5àiÙÞ£q7äûbNÿÇž|~æí™¼~ýq>eO†Ú%iî—¿}ÜŸC^PR°|‡Žý‡:vר/v.8î>ƒ1Så5pþÂú -ƒéÀ÷‹µnÉNö¿Ã$¯ƒ=ïÜÙ!ÆüäV"ÛG}$Ðo iµ[È6þ8-ÆýKeÂwŒÝþÚíÏ}42Ö;@Cï…´_RÝçÛ]€H F×@šõ§M Ô}~FMMÓ°Ù8UyÓ¨;Çôß:bl…¼šÚ£î¶%ã1úrç5ÔCvxÓÐ;õ©é;ØB;‘†A“¤é‹Îú#ðÑýw·*4ÚnÑÒûM0L4‚ £ Ì à I–Ajì¿4tÿ¥Qžqfò ŒVœc(æUxpUž!€ ÕåC)Ý®°y§„’˜¸²ŸëZmƉîìÚN˜q3MMÛ­]÷+Í nÃævˆñÒ Ÿõ‰"Ã#k[#Ä@p£þ"ê/*ú Ÿûðç†Ûz7uÇdoÎNûÞy§ž!A»Iïm §ê†ÁFöÙðÔˆs¾lœ3n™tvØc”0t_°•y 'bd40MT¦²LI‘ ŒrB”ÖÐd ÍH5R‘Ù‘ˆp'v¨±#1â[ “AŒÓ:;’KD¨Â^P`B ¿Hb-?òtõ;1$wJì…$)xK«ä—Ô,Û„=%I¶ñ:‰lÉ-w)²%#[²SˆèÍbiÙRcT¶Š\¡Vîß0¦µõËA-\Zø£D‹“ t-NVˆm!Vkˆ•mc"£±JVUÖ2$ƒ®6Z³¬ è®ù’ÊÄÈ©ŒœÊƒÒKžÊQi.,¤¡d”ÒTds‘‰„K-¤–Ø~‚3ÿýñʯÔ+¹KAûâÕ" ­MOésÃqûãõÜÍ-ÜqÜHeÇ]@Ó5~eñáh–u wœ=ÏlÜS½Wïí?Oì­;Ul…`ÈYߤ–ªûè pSõòÕ=g`8h½NÁÃö%!5N€?:¼q×ï °U90@]ÃÒ;Šº¼€uN k Pµ€Që \ˆ¶* ƒK»ÃYX?*z¢X^œ6²~žÝP‹!A]¶ÉžSõä(Hajå€2Æ4£(3$Øþ‡`3›Ô.u8:>žBÞ å*§`H6æ­!.Y-qÅúÐîAÙöäµ¢ãY¾ÓÕ”ëD…r#×x[Èá¸Æ'¶óå$ ¹·«1>žç]¢@ïìzñÑÃ1_è7 œ =}^8øLM'Èd_,|¢ c¤Ï}óÐl¥?ŸgG´€Û Ð3Ó­B¶x49ìWIÅLÿŸ½kkrÛF³ïþª}Ⱦ¸Û¸_*U[“I²N&ödví¤²OS ¶5V·:’Ú—ùõ j5É–DÝ¢H NÅ4@R¼á;ßùÎù8×C¨¡&X\P’ÅeJ4,I³á¢Ä€×_‚Vs)h3ÿ ±s'‡ußyL(b~¶óDZÞ)p¼5Rǵ:hïEˆ–o×nôqZ62MçÛ$0€ý½OÉL‰ªECEQ-QV‰´ÎnMªu¼KL©‚iL'[‡”\¡wCÚTÔ3 mJr‘-柗ÐsùéjDí¹ìè~i#ÏYx‚;3 (% pfÁOf !2²¹Î ­µ‘ 3’d>c€¯¸­Ê¦˜óZÁÊ#ø*8¬Õ8Í%"¯X» 3è§ÍÞ<Ñu¬_Á4EÏÕ|¾4±EJ‡¨˜¶RxÞµw{†ÛÝ£7OË p*{ˆMØ@\¿c~–Œùp½¹ÅÊ'¢ÝgìSˆv8@~~Xœû×¶Nôú-[5Pñâ)ŸÅßç¨'Ãà€–?ŽÜ½Eˆ$&Ì™˜sÊ`ˆ(ˆ1‡™šåA… Tdw2€¸£ˆ@€´„R‹¦Ÿ$”Ù‰8·¯“ð9•<`CŒ3™w¨ZCx1‰ÑqI_±mÒi$ŽcJ—ºô$æ«oæËmi·óx§Ýo‹B§T°ƒÇ Ê(+rÀ8°È¡˜1žóA©¤Œ’c ñ5†h”QÙŠF¡lg4 &DÒf_HŒ©uݾH—%±{X_=¢Üæ1F¢1ü—7;;Š1‰;ýÂÇV[å Xn6,Ae¨æñ½Yqžc÷„Ƈ È×kóïÕªbòÌ­c#nôtg(ŠCÑ·GÇíÏþ û?‹ç™Ü8fPäÔ¨%£½2M£å~Úu¡×EöOùñ8;¦ú¼ÍÞÐ}‚ ä'%Úè¹SQáí›÷»ÂÛ 1èQkl[Æãíh}Ôùe0E–fáš í«†i*‹‚™J’ŒõG‘xà·Èáî¤Á8Æ7y0J„ ¤N„Q òŒîx¾Oƒy2ÂÞi—Œ˜¹aoõ¥Jê‹Mís›cSîYè9 ’Úç†ßßVq¦êÆQW7îo Ö ½\”ÀYAp–)‘K Œ9Ì€ÒhM¦¹@2K(o(„ÐËå!‰;Q‘¬ åÕÙåíÍÓÑ|,l×øâ‡ÍOé›Ö/L…’Û&%ä™gBž y&ä™§Çè„;íiÏ·EÙ€ÍÉv¬ðìÈ}‚àBÂ4Ï w·Jð0ÁÃ'"½Qb°¨2ãQ·„¿’;k»)ôE©÷=Vkh` b…d8Ë ‘Ð,ç…BŠaÃs.œsJÂ]‡Ã]@r{ÑÛ­¡%ÛÝ„:)"-Ç ´ E Ïè¶ÔŸ‡îÖÐåã˜D±A4ä‚Ñ8Ì5ÛÕû9¨ãA£IfÔÌV7è÷ Øô‡î§ÿÄCãÎC÷­¨÷™V5“™Qu•šQo/2±Ög:lZÙØ/dJ­ótÈ´ª_ÈŒªuàŒuSê ó¡mÝ©ƒvPu› šÒèW4ósÔ寯Q©€ü¬»ÕŒzh´Q„÷´^öÛn)zÙ 7I‹ìÑ”z-¥^K[²cÑ–jÎ^[|bç̬¹ üÊp󷶇@À…IC©‡®Ï‡´·»Ž~¾î{;‡xéEµžzÜíùÐæ}ÛõÿOò}à¦WtÀIÉrð86ÕG×ëSÄTA8eP³,C P†\OÂ\RPVޱaɬz ÉÛR¿A«ôkÚìVò–3geÝìŠ%ª›UC°¬+@¼ÌªOH›ÿ ÉÛÉ9b‘¥2³°*óÆ“ò#ó•m±À! ªqîûnœ@¤õ£iemH Š •,( Feš°LαýG)‘aȯib¸ãƒ¤6ýWäê·NZa’ »Fµæ¡á «£N@àzRBó¸éÏUYÊë±Po#¿ƒsøO ºC²þAÄv ŸÈ„dôÃHko®Ú›¢e¦Ãi:Œ~öf½Éæ Ž9–Zög”ƒ‰ä0þØ›6Nzóm“NˆYÐ.aŒOðúvPA}à ¿Ñn$1Fcìϯô¥ÕO.ö>Ôs ãü¼¯>]ò¸ìçËÄõä¨ã{«‚ä79íçN=&³… µ<Šôæú€Þ¾ ­ôAóü6Ñã‘ë/ÕÑÅF5‹·£jŽ44Z¢œevâ"ËUnDÁqN`²P™1£œø5hNî…G—.±GÒ%Z·þh»BÈ›Ê%,”ÕÒºv D´ƒ¯é–ÚOö È—b §W˜Gæu£êH-DÛ¤0PmÐ~²©ÞŸw`Pxì³+è¹@?¦Ð>Õ̧šù-Y‚#Ô̇ԽW°¤ ½ÇŠò¸òðã”xŸMö[ß›!=o?ö{Anr (3çp'¤ÚM…Är,±ÖA–%È9|Èiï¡$-Èɪ#´] % ÄcÔk‰ˆtÍÒê ÙÝ&B€g-Ñæ™®ûê=¡šh øòÃtuS1tX#BL`Ó#0 d†û´ýC­VözûS¬ë'eV‡©a ž÷q@LôõYÒ×=‘×jôžØh¯±çÖ³}€~ûiÖî÷Z=¡ÏûÉPÝà¯@ —aù±Ø`ÃU!²˜\bqŽi¦$@S¥!”{;ÿ×”“_ÉíÄÿo~Wi–W5hýr2-&_í¿|Vvo«ùıI6p´7³„ÿËJý?«ËÉÏ«¾ú`&ßüy7_}kÏçûÅ|¹¼©•»­í³«F¹Ù“|nQÿz/¦7zv—W°·R嵉õd@ô$)_r._¾XÙ(ei9_Té€r®`zre\¸cÿa¤2"(d›mưþ¸5¡?a ÀÛjk ¡ä ½5æ€ÒZHÑA8·€ìhYæí2¢?œ\¯;04ºÊ@d* *‡¼øs£xøš¿_áÀ%ë‚»'û íÍD»ÜÁ¶ƒ#Ÿ çéíè×üÑ=ãÿ¶_yÿIÚHàŸëÏö¢c¨]–Öi‹ýãîÃwäuUñ£ïÐ[ÿ¡®.Ïkìû.…>ƒßš¥ò¸~`}†– ÂræûâU3ëÈì÷*H1ùæÖ!ð=Ý™çÁq‰¤3JU¶=ãaµ*=i1$sIÒ•”ûiîïx²•“JàÙIeÈw.y¿ëðo€©Â”B;’䜟¯¸å>•Ô¡lq €»érÕ5ÌÞ?£–¦kØÝm®V]£®çºcÄ­ f.íÕ¥Ëq—MßÞ¢/×^Cí0d‡w ½V»~ƒ…Ú«9é´Ð]?ônê1]vtl‹MäšeX2E€Î°ÈsŠÓÌ©žÞ$9èDGâOµ%©Ý›·UÐõ<º»UØÙîÊ'‡¬íÙݳtȺoÜiÿL] ÜcÐÛ‡—CÅ PJDarªrH3ª5¨ÀX1BŒbÀ[ŠK&ÕïY7j‘ט餷™™¨læ°ªk•7qW¶Ä®ÅÝMÙŽXÙñ_ïõ¸/Y·q~·*u¹•ÆwîÀóÝ­Ñco> %Ä"˜lVCqÊQ½J€.¬šöá¡=Y5lPS½¡ib!¸Á²ûCÜ?Wµ»ë‘­z«Fkû>J_.wð'© G0«yü5h©Íqtõƒ¿¤|q°çn­ÿ¼´þÎ/ãX˜ûØ`2„>)(Df$'”fX "eži•‹ J».JS¡}2†0ƒ–ï żÞÛ¡MŸ )›E÷Ânhtn{®ìæFgÆp(WóùÒÄÆ•‡eQì­q!æ£S;«ÑɨðÿO '«©šý¤î3ññYm öHD°wñêÉ%{¾8‹¥g-mIô@   û&e¤Ðš N¥¤Še$HIJü=΀̞‰Z™üaE Jø<¬ÃŸ?Lí ¨ìân?tyµ,/Ôg·&¯­‰Ê…µêi>±!ØõHÍÌ8Æ­ÜMYs°kQ¥6h‚íš)ì~Pce•öV2Ô‘ÃiªÙœ9ÐIhÙž!…ó„j…xša(#K÷6ܵ~·\Ní‘oVßϦöÃÉà†/OÔÌ–AÏáùëŸÌì6|VõÍ ŸW3ü ›·nZÒµLß8§GÚììjZΘêyèŒëåç‹ë»Ùj8ñ_·Q¿iÝ.7dÊÇEÔ‘ªö¶!3–Ÿ"fØK~8«Ö /² ^Õþ5hJµ¶:ÝCèÌÏQ—eÒaÉ©ªtuõÕ aÁ_¿ù-tJßkŠñê¼6òžÖöž[$Æ.±1­#ÖåÔ1•Ë ¨\.¤0ç Ý4áåv©@¯>iÌ^² Óke^ý¨¸b¾‡IÿøûkˆþPªx´BÀ³)ã[ã… 7~H¥“@*¸•dñõØ+=å>MÍçN›½?×_§c;¹1a]äZ¢p†ókÁs@¹²ÿE"Bk²ŒÓD&"ï Ûn{óÞHÉX3ïM„ëëÁu‹ÈîÄ[‰×JÕŽ7ãݳ ï%ŠÃF]RHŠÛ“m¤>ÍÛm°H=:oüß g÷dËÆì—Ry±•§=¼éHtl Òïœ|â ¸ñŠÙv:ŸG?rB ùÉ#á#ÔQ!ÝnÃý <~lˆ}QÞ®£µâ¤2Î5ÒÄ0 1å㜌1iXF˜B”kâW–Pö1Q6\BÔV Y¯¸n£l€¤ ”Í0„‚²ʶ[þúÀòy>i` Êœ`ÌŸFo ÝøèV75¡é éý·b̘ú¼ýÕ‡ŽpJÝR.Ìè0jÀo{N„{Ø#áÓ­{`}âÛHœ™Ðm߆àÍÅ{è†à•Lîõê#x* íúˆ$u’ÒòjY—çw7ôÂ" Ìq!ç’%s& %f9šœ!?cÖ54-‘dUÆUêŒLVF{ï,Fxÿ‹…²óÅÊ®VWª‚¬µ=Ù(üjzc^NÜA>9eÓb~=ùå§÷oß”°ó—¿½[oúáÇ—/Ü–Rÿt»˜ÚcNg_-2›|g®ùÏåä*ì¶I¶˜^šÅådòsy¼kÿWf9/ÌufòÜη³æ«fÑ@Ç/'Ë;'²rS¦³É¢v«½ îŒ×ûu ºÚñ½õN>]ÞÎÔ×ÍOºß‹û/'ï~ýrò‡û?wöåQ——öÔ^¨Ùr>Y·—_N~øõm9ì'ûLþ¯}lÀlÿþîÍû—“ïßYý7õIU×õÕß¿ý®ú_·Ë×.@ÚƒÆ?wñ,Wדof«o?ææ/öC×ß\­¾-•—°LBÜ­Ìâåäç}ù€åW”ÿ®Üòz>¿²c7#þ>ÿ8U.‰aGyË­ïVjúq¾\ïÒ=>ïÌâ“…¦Ërfy"Ó›bþ—e5ðòƬÜÙ&M`²Ó•÷ªÓ—7’"Fvkº!—¢¦ª›cÈ0”µÝ›i†½4üÃGåbóU¸p߃FþM•,¸ëtAí“&.F¨Fûoµšß…¦6Wµ}QŸ!‹@jÂÉ$ÂæÄB#Ççä1ØÝ¿œ<àM o’=ƒÊæÖL0SMóPœ©í§<ä¡®9ÿXJ‰í77ô¿²¢æÍ³½ŠšZ!µ¸©Ñ?tªï¦PÜ”© 6ïNÏ~Ñø­]fæå:š,pË—)jöÙž×½ÂN¿úÜuéý¸~YÎÂ’.‡Í(ô‰ë"ÅfaS*X/¸^ ÊŒb^@¤¥A\ªY&,2¢8·'¢²B&\Ÿp}Âõ{p½ ­V7‚â=–À¶Z¬A%hXÊ0ÊEGi½ûL¼j}NÚðÓ9{D¯?̯—ƒK‰é)䑘¾uÃÎm,Žž»UÛæg>\?X¦“£ð®¡{b C(@º€0·á‹VS™1»7e(“’Ù¸ž!•™Ȥ@fO ƒ oµ‹Lì©`¤DJ€š@‚’zË>0€ÐÏyv7;XÆx¢LLiãa¹ ââ˜GÜD¢$N(Æ™õÚ• bŠ—Áþ¢#‚ሠ6B8*#˜Á$.Bªé¢*ï‚'{§£¦ù=ˆõiÏo›µ $kÂ9špj&œ‘ $b‚ø—ÚÅ—< &Y|îìuø—©IÇD±0!r)”:(%Q†˜D¡D¶óIdÐØ%'ÇY¬¢2DFsTÁ%Ê . -\ ã:ïðh¬°–<1)ˆIAÌî F2$V‘˜7ƒI1¬Ç0’9OI™ÊÎÅ6IT†)QÁœEö¼~X껜@üð‰O¯¢‘£È â4g“õVfœKK)µÊD ^qŠ)¤¬àXcM RðT“"²‘í‹È)3†`ÑŒÈBuoi_A±?"k§òâûéƒ./ÆE|§xì™ã±£ÊôP6Tp‚‘Õn֮ǜ—0 i? ”R,*€Ê¡ 9U‚1©p¡“AKаR„µ/ 3hA2ô˜¸ã-âN²À¬×Vî.徆™û²86±w‰½y<Ó)åê-[„À&ÓØ¾ty(á,“(§pФÌq&¸NÙ¢ˤXfo¶ˆe‹Å7Íæ(³¨k¹ìÁy‡–«Ìís¥¼Ñ0óFDÀ粚Kr®Šs’œ+ɹŽ.çJ«®I`•Vç$°J*©³ÉOì­déMÅg(ÇDc׳MäÀP„%AJk‰)‡åÔ0”R)5‘R»SØùÃ裧°YÈ"(®{àK)|Zäí„ÎI5D]æ Ò\&U±¤*–TÅòĨʾÁ½DU”d˜i‘Ñ*Óᜉ¹²•”eÚV(RT•¢ªUí#|`áCí;Fd³ý°}Ý ‡¢NøHŠ(舭ì—bwlµÎ<¶Š¡zÚ¡OG´…|-y,Ùti‰ýkžK:{U3ó¥cÈÕ­Y]c S¦úî¹kXÖ9¯±UÊkèónDzÙù÷ÅÊ~ðŸZ‹/ñ}¬$ÂJ_µHÐ~¸t¡°T@£„q½· ˆV¬°¡…òŠÞ»&õeìà~“ûôÏ‹É'ûÂÏï–“¿Ú»šÛU𢸻Ñå²ëA|o—We¿³6€(Ìg»ð¶sŒìþ“Í1.Ý2øâ¯o~ûñý¯¿¾ÿi²Zد€=æG»·…™Ì?ߨ  ûúpz“w?¿®–Á—“ß.ß]~·g…}kï™M~šÏVö[xS®m×å¶¿|Xo»_l²¼•Ðeõų×ãʸÅtÏBd’ÀúBç61JñÎ…ŽØJ@$õ*M dWa]¥ùðÈ_¸göBD•fV‹ÚfIûvò„¯Þþüþ˜k[ùð¿úÁØ[hïÖÒg]»V_ìݹR³ùMhâ ºŽ6¾š-.ä3$  à Æe níã´Á®ïÓs$ ªã:î`sÜ×?Ö»Q¹ýjß웋5ìí½î„[M:ýÊ…û¶ö£î–‹r¤¹ùÔl>Ò¡mŽÚ¥odýýøA[Ï6…ã¾þö9þ¯Íc¥n§UTnÞ9jå3È®ãv]»éøay=Õ‹yç(‡ÿ;yœØ ý?{×ÖÜ6Ž¥ßý+XûÔ]ݶq!.|™êtRÛ—t2©ñônv_R Ú,S¢–¤;¿~HÙ"eËä›ä°§{Ê’.@à;ß¹ÀCh¦êúÜ^y=@¥oWøüàVÍM^>Ì!zkl‹DšZd9Çi–h›`©•I¤Ž-"T¥:‘\ *¥¶íáÃrªëIGßøBXÇÅ\¯¾†³Åµ:Ü‚Ùyí ì¶CÕ òP¨«c[ {òH0¶•_ÒY»‚j! Q­ÀŒ²õþºˆ`6t×%ŒÁÍ „Q¼)åNë¬Û[êK0ꤻ‚iŸÊ.jÈ/òæêøÃ¼p#lruÜ®öã¿hæ ¬TX;ÍmQÛ‚´°¶vËUµ€/Â~ÑMñ¥_6Ÿ®Ãò3= -ïV•—äiÝTÝ[³{×_¨¾YžîJ=áÞüuòæ :J¿Z”¸<ÿåÿæªpëúþïFþ¤±³3;Þ µ­,¨ýöH»Ï¿T¥†ÿÕeÖ ý6¯æ3hBh)¯Ïà˜WÍY×ÖéÍGçý™:Ãû žw“ÜmïA¸9Ï»‡3íwGç‹ïî(õzV@lUÙªŒþWÍà]<&ürtºøåð[û˰†½Uý„Œ ¨u}ÕO¢„±¸§úILÙÛË™íïÓYöDñû]Uæ+¼\ÇÊFõé¼0{zÉŸVÖ·j“gYHÕ°¹£ØSð·§äÝÝê«ú"ŸæÍ£j+£&´ù†m {ñ Ž#^BÊ”Ü"neé®rb±åÕ‹+|E¯©îÎÌ¿ÜLW6´-gßEGí8Æ;ÿã¾.Óº,l³# ¡ëê}jÃnº­É«ÿøÇ±m:Çö•¿3Jç–8¨gþ’Ǭ«úȬ‰´ bŽœ é%]e ½ê^ùîÕ;†Ã©±“#³,¿© ;Êúò÷ˆöô8F‡Ë6Ú/7D?iP‹Ê²Ø e²yªRë!æSÙ|ºnFn"ÁtîQQAf  o*g›ƒwb“H7Û„àÙÐé6­·ºÐMµQ*Õzr_¯êÅ0©¦QzÝòè v䈇 O«ðÎo”Ê ÉMb•^³ÆŸŸÝsÎKJû¹5³‡Q­¶ˆ Œ˜k‹ K,mÌI™0$NìÅì½ýûÓIôÎ¥ŠªZ"kÉ@}ªòiÓ£¦“pt›››:ZA-µÕ6äZ˜¹zUÖ”½ì ¶ÌšƒÙ¢Ýו Bb,èΑH$ëóKÆ8¡Ã¯€­¥ÞøèA[7 ØwcAôqõF[;ƒ f±&×̤#!µ–œóX2M³@§sZ2ÚÏ;it}RgPŽI²b.¢ÉõøBÄxåšÐ8Nï‹b7×›Æz_Ð=Åþ¦¢™UU(¾Øè:û Ë²¥ÛaŒÕnÝFëö‘Ç@ãÍW¯”<:Xh…[Ä€Ÿ(&<8Â{À$¿4«»Â`ÝB»É“õõXO!ÁÛá…1+Â>AÝ%–vħsL¥ÐV¼Ÿ©Ö‘*Û,†1*˜*.b§©6cU"ã4Ñ‚306 —öØÐÛÜGFe7¯ ¥˜#qÏ5u±àxȨ0&ˆì3*,Ä;”mȼúH6=OíÎ)TlŒBOÛ‘?ÙUÐ4Z×¾·ûé|Ø”KÍÖ| ¡DXŠ2ΗX’¢8# §±°’f‰;²XR?Wé‘OyZ>%Æ+1d=ŸÂÅ+בQ‰ãA‚I Ó¾!ÁäÂø¬/³¹Öù4ß-NE²-m0#§²Oð`?ýªwÙ;z•…yŽ[“Vx™§¾5é;gjÖ¹q?}j)›hDÂ"¦(I2›Ò$ÖaÁ4u×Ñg ?¦fôâÞ}/îà\D ³8^IüP:°s1Œ’ ^ÜKöfèÄý0öf_}¸w/9d=ºq¯—ݸï’ݸƒŠŒÙwJÙûã‘ GÍ©`’3@T`cEK“¢,Æ–¢”ÙÄðÔj--‡ûhò¥û>ŸQî(¸h›V¢“rb–_DE~n¡²4À\unÕÓFp ú³+ MMË&×*-®¢LÁ&ZE_óæì q´ccõÙ´,ÊÓ«Ÿ[R6Ÿye£ÓJÍÎr]Gg ® šä§gMTN¡’3€ãQ=ŸÍʪ9p]¥ïz=l«™–y9í >^EøãèààcÙØîaÛ¶áß3¨j´—PY·€>‚^ÜöèïC‡nªp|îgŒ£Z¹z¢n}ÿÜ=p×|;ónŠ÷l#·H/,LÞWµŸ²ÊOó©*`„¯;é:óé,/¢÷ª*š²ëËɼ†^½™žÚ´‚Ï£«ßAQXE?žê×2NàµÏ³:ÿÇ?þ½Úé÷m^øèݻϮ'‹n™®ãÍÝå*v²…ªNmquSÝ×*o_èñ{ëVÁ'·ÏVæz õÖÑ[x„vô\ ª«É·èÏ9¼¼SXVÆÞÔã<ÏàÅ…×¹eè5_óæ×2ç[9¶~WuûjÞø@ŠE÷gUéœyŽž,ú!«¬…ªÏ›ræ Ÿ”YÓòŒŸÝѰžÕ•"Á˜ˆ>«+GL®guá˜1'+¾w(aÔ;ûÄnâRQlˆžtöO8¾—GС;|BíŸ/änwÒãc×zwSþOÉ¿Ä>Äó¼~Rû'Ì'»ÍÖú‘°¤N‹yshœOámÊ ;p@¼¤Oµ>Ô?ý´Q Ÿ_…Ns¯&¾¢³é©—è%¼I‡—¶ŽaEjsþ¬TØË˜×€Ð¼‡âP)˜¥°åÅ-ID‚(e jK5ÅT†’TRdýr8tÄ¡#qèˆCŸ ‡Ân½‚C1Å÷àPÎ@„ `(#œQçÈwƒBá¨_RÔ»phxXî>BÑóªœÂ[` —Á=ÐýAQ˜Ñ-3ÁBó±Þ\ÚKç @zPÄoï7œïÙ†ïVÒõ‰~XäõKZÍ_jÿí¯ XW(›Gh°óg5.b&z\ÈAÚàçɧI'*¸œƒUhPóçp‡66æý½§ä•¾(±Õð¸Ef§:t ¯ÙЙœlY`«g›5x” ¾Ë¬_l«†/ÏS‡óBõÛnEêû{*¹Ü|Ø]ÞnuÓÁÒDÛ¢è{¸îͧ٦83'Vƒ~ºjzÝÂÈ?á¡tæÒ&2ެ–Hé” ”ÆV1–Ù !ÄâÌRë—¶i¤‹Fºh¤‹Fºh¤‹žÍlɃ̖,–B ó½Æ'PU.ŠÁŒo°Y¶Ñ(w1¡Á(ûHmgµ|:¢(Ž·LFyóC#-4ÒBû@ ù³Aþ$P÷Bù2=AO¯3ÆxòJ;ÿáÒ±ÊùLÉjŸ9é“LÜ’/CÌ$ù<ë$|ùõÉ£-©&Ÿžõ&_bi䓾>É;YåC餘 –¡TÎTʹJI¦Ešfî nYŒ6*¦j¤“F:i¤“F:i¤“v‰NâhÕûqÜ;ÊoÑI¹´%ï#J0¢}: ¾!^ÝE¦ ÝG2É%(*§[%œ}dB õ¥-ï ¥µÂ#¡t§ôH(­“ ¥‘P ¥‘Pz!Bé΂~ jä¢F.ÊþãJÕ 9œŸBpgÒÕØ8x?øQŒó‹ú‹f#3%H&h81G*I¬°á<ÉPšJl±\'Xñ„x1Sÿ£NþM¢ÃN©„û ¦N'‹Þh ãa‰WU»†¢~°-¥ÚJ›â”ÈkùI×äA—ñú t°¨íÕ=Ê›ê¤@ŸÚ¢h3o*÷Í/ ­ã&SçûB2û^ÙÉ,kÅÎÏÛ¿o ~PaòÞ6 @…N¶ûû–ìIc3P®ŸOÍ™šLÒõÙ‚jš×…ºˆþ+¯§åÅu2Ô‹öS'®¿=~RÐ{”c§ÒŠD²žr _!žÈ¾Z;TŽãK2tµÀœQ*ûº1|oL½ˆÌ¹ý:.Þ‡6“ÕÞÝ·PšÝ¢õºiWU¡i²ïØCö(™@)Ú2HDZWäÓùiw÷íGº­ùÞ³M>†ÖëŽì«Ùìv:H8zù :È÷Uß{É€…íƒdÀ-sZ©CÝÕ{…~{ûö ŒíŽÆÔÑ?ýÚb¿ÔÛÏŸßüúÇ>Ò/ßvûóç/A1$k*8Âã|EB£I®ˆã–ÚT‰!¥:J"ä2E·«´ÍV-Ø=´ìmÈ}Tf±Å‰â$M¤NÒL!ŵåˆQøO † Q±à~©ÌF¨üÝAeÉb±•c믗Ž1#,Y…ÊŒ$t•9õ¹Épè{Ø¥†;’·¿»ð9 2á[Z•†PyDÈûƒ¿sÊ~ ö]áì­0yX¡`2ûIxòôݨoÐͽ1y÷GàAÀ{ÄÛ¼íˆûÀ-ÓÔ¦k“ÀÎbªIJ f<ÕÆ¸k¡¥MBjä¦GÀÝ ¸1–«€I¹ps‚%[ܰÎâ!7Ëûw¸;îÙõTû«Í‹b'Ѷ#ÚÑöˆ¶G´=¢ím¿,Ú6gz¦Í/-'0ºÝSò  $$Œ24I‰Ø&I˜¥ÆZ“R…-â,©Ä^ðúMôî÷·Ÿ¢·E3µ¸x×Tw£Ú¦ùã“ KqgB„ÐFDιÇÍŠ+Ù>(ÁB³²=_Úæ¯Ã®¯Ë]ÄŸ,nm„J8e¤«ySºÚ´ äèÂ%w?úASºð$ûµ-WXÒâÊAìŽûÍM­+So£²}¤{pü¿Ê«èDyÎaØ>¨jj‹‘«òê—I÷ùÈ-ƒ'»ÖµÍQîB¡ŽøyY0;^Ä]ÔÇÝ߇¨ ”"4@Ô’0ÊׇBB$Y½å•Ò•K^%Ú§ÝM]Û Ðé!¿à…áó¢†ü"o®Ž?vëVÓñ¯eÙwoMíuå«:…©;Tí7O{?ºKº»Z仼}ý.r5ú¶Ût,ÓÄf:E1%8MIŒ±–:F,ËKÿŸ½kërÛFÒïý+ø˜9¶l\Ipölâ$^Ϭo’Iòæ’`7cI䩾ä×/@JjR-‰¶®mœ9ã¸ÛU$n¾ªúPQŒTºmÚmÓ·iæãu¶é SKxµK‡$ zøxµÏãÉ.}a^ŽsئÿkÛQ÷Dz›ƒü¦5Ÿãºë=¸¼i÷¦ºÔ[ö¾}¸9ô¦12µ ˞ƹËZýGvN•ó»u4ƒÞ\[Âû}XKÛ[^ϨËe.QÖ‹½Ñd]8ÝŽí€ÐæÚÆpH‡L¦"Öö»0.”ÄTáXŠ(¥Ê(0(" $Ü »øÖ a€qÐ…„¬ '=vûâŠÆ·Åc»ÆlÐ,ôÉp*ùjbWÍëÏç¹m1öRACŽMD‚?!QŠ(§‚È+Lƒ‡BhÈ”8Ø{RØK‘ßuFú(ð·ßŸ$ƻݭ¢2¿­„“°¯‚¢qEn\¬øvY¾É!ˆ÷N/±j #òÀÀc,:%7ÎìÑñ+?ï>ôJ€!€yòiåpù뱞/pcfåí5HVé¯"׌碼†…†ü&¯› ë_ƒ5 ’/ÀŠy9øÄÆ5wˆ"QÀ5( eD)ó#)¥Q„Q¢bÂS"ˆÂH:ˆrjˆØ@ÌD ºž9šÒÏ­ü¦âK/D9æJ9©{;÷Ü¥lÎ=·[ֹ綋;÷œsÏ]ü=ÔË%‹©Pœ%DÊÐçABaD)W åBÆTÁ.;Ô{&Ž9„iö Ñv͂Ӿû›|sïž ÞÅ\Oá`À[ŽeÙ›Om›÷ë¨×½“Dú(Ä#ƒz$odß³ªú„Ì4–U7j¢zÄït74è.AG3øå<ëwÅÙÍÌÈì¤=›«zY5z4‘•ó´¤wÖ\²qÒÐÏ-_qò†¼ »ìû€¶ÖÏ¿|—U`P]K¿ËKÝÜlz Vûõ#°5)1jU®SoØŸÇ×Åø34ÓšÔ'Á4 [ÙËrždù²!DþVÞd£†NLè¶P©‘¯•ŠÙ²CÚJÀ‹e!nJÏßÖàh¯â1Ð9®54ñ¤…Ó#ž=U-lN1ѯÐ@àÚ«…k_Þ·ÆÄÑ ß¼*¡6²º/$”AnêÀ6gTÁ®ìµÌÆË¬03/Â-¥ÑøÝX㬕€îò‚û»:ñ]èJn´¾¨‡™>Ï­Þ´ð·ƒ_Ëé­´pß-‚ñVò—ï¼n&¯úŵU4*«|&¯¡‹µP2»«§7ì—ü«PõÚñkšùw:-÷*ˆ[uòy H Ò%t ¦e1cýQ¥Z²¤PAÓ1˜pmCdQŒ¤ÇUl”ҊبÄ3(’-Æ1lØ‹qR%§×<‚yQÄe>¸¢¹¶óñ-p¿­¹CÐ|Á ê}2¢“l¢`+¼l¾E XÔÒÀÇÏÛ¼Mó*Knè3š¿IÑy–EïãhÔ˜¢6;Û£–…Â=|/ÔâÐöOÆÐ5ÂD³ãÜTUܸÈÞ–ñšÈò­|ŒLŒ¢Edbño[nH>}Fó1ìTZúç6¼ît·+Áóã\­Ä/$Q(¸W4L8 yˆE)gR I«äBYgrµ’ ÁØs9æõÕÊ~’¹»WÙV:&½|hÎ G/wôòÖ 8z¹£—ƒù56©[Ÿu÷M JcE}ÄBNÎEL±ïó@ú”sÄ#æ“·:\r\‚BŸ˜ÑÆ%±ö­§'E7—~'éCÀfl74Y¤LÝuÄ^\öÔ!À¤È³i,Sç¼°‰Ïù@lÒvs@SB:¶cÛìRul›íJ/µØ6IdÛ´[µuþ…þ‚ˆc¡±d䨍,¨96*-ŽŽ…ÚYÇFó‘µc£Õ¢ïبux<6Šë„{ÝGfµîŠâc¡ÙáúØë­‘~¬° Ûg»>Mzìã$¹~$ðØt³Ëä±ÐlQzlµZÜÕ±­Æ#ÛÇFiAû±QYñ,”Öˆ@6šmF…^—d£ØâÙ¨­‘…ìT×YC6Ú-úZ‡Gd¥Ø"Ùé-˜E6Jk#Õ×ÈZ­K:²Vo³¬•W4$[ÍÉVyÈ9³ÆP²Ñ\£*Ù¨®q–¬T‡£m“…Þ:ÉNÕVeIp²Pyd:Y(Mlwã6÷ÉJí‘e£VZÜ’e¥Ró£ì4–D) ­ Œ);íuÊV±Ë¡²Õn“©lt—¬*†^e¥Ñð¬lTV„+¥%óÊF§Mª¨6Ì·HY6õcÙYªÎÀ5¬™mâ–N‹Áe§fû¢íœ.‹§¬`®Î’åe¡³‰î5H}ˆæý€s`ɳQYRÂ,tìPí̑Ė8«@l9;B¢ASHù G¡O˜âNX$¸Ra!Ÿ%XqŒÃÔEaOÌ6ì0=«ÜïÒÃ#”¶ëV FqÐ^*¢°z î Á."‰/8þ:„¶íÉÏÅü+•\Twú(§fí•j”&óBõÅ›•±Øé ¢¥.=†h-äoÓÆw2–z’Ç=RÙ´›À%ÜÅežA‡Í†w¶J”Öû_>QªP³Ñy¡ÀÇÙ6YßR²Š]ï7ÞxzR–MÎÏc±³Â$$‰ „ù8`4F’…LÒ8O‹yjþçpÁ‰ÙYÜŠEYKûI|Þ)ÈC1°š5(ó§ãh0ñgÀé`ñ¬ÄŸP‹Òe=Xг º ÛÇ”¿šXèÀæ3£“_GèlK‚Ð ˆa óÂ[úµë<Ë›˜ÇBÕ\)Ef<"$E—A($á‚G‘` –)Â¥½(TMàxí.&Hû.&EBÕý·1¤>mÅŸÉôÝ•Lw%s_sì®d~M å„5¸Sɤd(U! °/h„Bd¬DDU’HÉQ$ÎåwQ¡@,BºV0@¾ AûB&Ƥ/¸1W„ËqzHÂÅ3Êo»tç»$ÜLwóù yhkìÒw$]ºó^—î¼Wî…¦;§°„çë7-mbLY—#½#ér¤ïÒp9Òwi¸é.Gúnq—#})ír¤o ’Š•\Žt—#}£¨Ë‘þTÔåH?f$És×ß6½ôˆ¿ŸÉâ&‹Ëò:‹¿¼zµ<éX¹/f‰„vá/‘(™²0 2á"JeHêßù$d‘ <ˆRAAá¯ß3u§fuÀê]>Õm«ôOzx½=ˆ¥7òÞ½zåeSýëTÆJÿ\÷>/4œ­êxO •uÇñ›ß>þÃ[zÚ=é¹nG:{™y±7‘Ó¬˜›àŽnÝU5“†4?›í «Þx*/+½X2+/O½$+‹±|ÐØÜ+µÐâieýýÄI­_zóÒHT7ÊûÓû#›&ùWÖa–×í&•ÙDãˆVçõ¸\Õ?Õ5~ðT’UæQÍk^×ãØm‘~F>«eJ5ÖøY%WwõKQ2MЩ?Doa‰¼ñºã¤Ÿ5õÌX?ûn–Uú±zž®„X Uó1è—gÓxüøãkïú_×?ú©þããkïý‡ë¶^}ºÉ«Ü{÷}=”Í›LTîµ7Ë+YéÿêÕ7+ÔôµçcÝÞ™þxbýkýW™$^Y¨8“ã+•¦Ê¹ô³Lšv™ö–òVÕ¿ÒÏ+# §^9/̨¨dÑø7WkžÈ/Rzž´ˆÖÑ@H·ÆkfPÿÊŒœY…œ™eøæ:KË×W )ýIyiÆi9+‹¨næ“hªúÎtMæñÍë培F\Ûƒ´¥j:óí~ûŸŸùµ^þ‹³vGÄè¼Ýq ÚŽ¸’™4Å[#®Œ‡¼{É‚0Ÿ…í»—„…>î!„Õ×­ûä¨ÙêFf“³½þ‰ñÛ~;vÈõûÇ-îíÿjÄ'g™*ß¾kvÉW¯ ØÒœ0SiƒíŽagìö‚ 8ï†;gÐìZ»Þ-g·Úl^O;NDo,~oŽc•|¯ §q¶5öD-cOÝžní¡õˆáZ›³ÝãÞ5}õê³ÙVõfÓw§òaÙƒÃqóë<Òf¬ª†~OZcf;xúö ¯YåO>ãÆñ~:`ÞmÐs¹òÏÁã‘Æà(!Ê÷fi$U dœ„(AÂф“˜q¥öÇ޵5JN޵½;ÝÀ›]xûJ÷ûèp[?NŸæQúŒõâ›\ÃŽÒËÒ+ý³7U}JÓè뙜hº¼ð.FeÑÂ7+TÝà÷«Güî=¿_-ñû#|ÿNãv3ŠYåi,gºkš«ÿq ¿Úè½ ×ÍÄóúç5Hµ Ò¯ìnHµÒׂOàü£ö:¢7«WOÏ8¯(ï}¨§Ñ»“ÓÚöXØ®ÍÔæwÚ²|ô5”‹©¸nÄy¢Ì}ûéƒ~ýjè.°³·é¬½’ú‘†‘yuõÛ^VËýÏ,Øæ,Õö\VÝxÿ'^/Þ=Qzt¯de&rõiDªÒ_ÁU¡? 3¶SmŠêOSx‘züê|†Mx[±nÝŸ~Ìúa-œ“0h4„Ng°HıdA, "‘ÀHùAÄ(!õ}Æ}¤JîÉ„™Í§5úY@6gÄ8#æe1ÐX£·1Öxµ;ÖØìºÚìz²,ú‚]W›‚]žM°«p5±.H˜kÛjÅ»¾kŽˆt $`În'mÓ¿~Oˆk³1W/—hÎí#ÌužæãhOæ™\ .ܰ*œ‰çL¼K¸÷N†ä…Ûy/ÇŽê'Ç~2YÐ8!œ$‚â0Œ•>ó0G2æ9ó5ÐQ5ÐQ5ÐÛb3a«â÷ƒuj 79‘ÛÔÀ ¤ b7í€üÎ^:5+0ðýa“cžÊ §è;mö¼%ÑÎï;' fæ€ó}Y&ÏZqõög6ÙÙ@ËëpNÉÎu×ol ?ÇÖR‚¤)'q,câûI IÂÒˆà€EiJ0ŠhÊ8‘ÜÙZÎÖr¶–³µœ­åm±µˆ­Åó)B[‹c‚ˆèu…0Á‚÷Mï~kÁYZ[,­u#¨'„žÛ'vÈp‰çE¹È´Ü‚’x&ïzd–°XÝ:ŽGñ«W}Rf˜šïid’Ä–£\q}™ žj•Ub¡³`­À 14}F•¥)Tön5¹É`µz¾\/bk½ÏüKêc VÝ}¿–ééã pÞVQ £4ðã |Ì1K¸ÄœaÅ¢€s©±p’ø Å'޶åh[޶åh[޶5$Aƒ¥63ÿÚ¡mùÄíÜjا˜¡ÝXÖ–ûJ ñuž—J¿vöp^q}¤:Þ–ãm9ÞTi€Š£`],k?ÍŸ•¥ ‰ˆé ‘ÂOMÂd„‘Jˆ„ÅL†&P ¦1Û“MTgF6V‹¬\ëšleNv6’³‘^–t©¸žN<ë×"¼›3™jÔÉ™LƒaÇž&L¾˜¼c{H™|¦iÇ0£‘½UÞCÁó}e%;­íú÷ú­K>-ø6ÖJ¿~´Vùðîû¶éÿXëȹ½N2‰ VôwVôÑvþÖO„ÅU Ú¶qÝ_²v&ùw%XÞ˜^¹Gǘÿ'OË MÁu”8HDÃTqš&4ò©ïË4—~˜ HÊ|– ¥|_××].‡ð_0Âÿª3pY9ÿ18ï^Úæ”ù~‡C Kf€÷=×eøþ‡äß:[_?Á˨¸\ÎÏ¿Sɥ಑u)¸Â.×Aâǹ@Ndœ†22¥™Ÿ’ B‰‰5‹ %qÐ8FÉ^.»¨…³i¾6›ær «$R&j!Ö£~'‰”‰Z€*=öÆ,.äJôK-òh{©“⛤]ÀÂ,\Àâå, 5Χ˜$RIÄ•œ\1Écß„)xÊRšÄ*T,â*LѾhJ¦÷.fáðýKÅ÷K «€EwտȈ…%­Iøœ††ØÇíë 44ž­iÞú’XMŸt÷.—Ð`J‡™+O6´ô˜Yß,{óÏ6úÿé7,ªË´MLGžªò7õú_–]¼à÷:©ä{¥·ÂDMãlë+¨+V©\åIH éeT œôKéÓ¦ªOH€h5÷Ke1d}ýeש‚@„àQc)@ë‡Eõa1ìãü:ï—šHÀoÀD¨4Ëlä©,,Om›AºXÄ!ȼNŠ@¨Lý¤ºÝÚ4ïË+À–WÈ1àË,â"hT6ª"´<,—"‹ë¸È ËrXÇÅ0ƒÅ2ê3u«r€ à„(JÀVW”"Y w€Mfv ˜çÙ0è3ÈöXBÖB™¼¼ ¯²Rײ[•sÀVB6†ê0Vh£­2Èjû ”9`k¨*H³îs¨€Ð "ôp À8·ÚlœÚF€Afç„Úï&G€…Øï#ÀR¸œË÷1 Õ÷ämw€˜Žå§f¹»uÎQÇˬTsÙõgŽ•IŽ\vÑÐ5•`Ÿ5{‚V³¸®™FËÚ@M¦pà‚]˜Ûo|@PthÀ…À‰ýw \Á„+Ùo>ýô“ÏgtIqs ¸¡oh¿¨F1ã¬R#ô¦… _Ãd»~1gPÜéü¢×Ç"?‡2D"!>RJ¤’(J‚HKŠ˜¦ B&c—·Þů]üÚů]üzÿDpŒ˜@ŒvKç"·Kç"N8‘Á{"ØÃßG û<áÄGþÀ£AìÿgïÚš·±ôóúW¨æa6»»‰+‰™ª­Étg{S“ì¤ÒÙݼu$(³M‰’ò%¿~’’(™6(Y–Üȵ-ŸB$|çöhæ_ÍK×am¸ti!ݸ̠қˆ7Xcú+41p°øÒæN6Qq°tK/lî{0‡J7‘s¨tBK7±t°¸ÕÄ›è:Xzf·Py°ïÞÁ:M*Þ†â¡âmL,^çáÒÊfðU¸Þ"gzŸƒU®PGò¡âMH.m³ìVA~°|í‹7ްxÿ‹×‰pi«5Ô¤€¥K›õÖ$ €¥omæÝ¦@Å›<p X“P¯3 àÒ6or ÀÒ±Õ׌mVm›†·šø*1¬0·Y-MªXz³Ö°9’›,¸4±’¶ZŠw6[n“é–Îlgau²”V+±É†KOmÐû&?¬±´¥Õ¦Ø¤N€¥íN­6™.nóÊ­Ò+Àò•ÕÔïmÖK“y–.¬¤›\ ¨ø*).oóúßÚ-€;;ã³IÜK/lºÍÑÒät€¥m°V“å–^XMäÎæQ6 £ — r†™ ®8ü,ŠÃO½¬üQ.Xs•ua¯1êÆŽ­ïdnØh­S8ÞT©ý&c”Ò*yãôkû×ÉWÝÍÒ°P]§kXè8úuk€§9«ÒtÇ”ÂgÇ<%I¦*Œb{@‚JB«iº£îÐU7tÖ.­Ã¥u¼­´ŽsME¾gÓE‡2AÐ6i5åÔßnµ)˜ènNð&:=ÄÕçÑIç¼Õ§ÚXÇgjµù~õ|mÁµÞ±møâåiÑE¬ oEd3ŸûþüPÑŸþô¹Íû*Þ¾ ãDè ÍÇyX晪ƾfcž¶ÿøê=—y–YZ_àLx¥C &h!ÏÄG„†!‘Œ¢HRŸˆ$ cÌ”d>s¬Ò€;îX¥ù½É°|í¤î“-O¸ð¼6˜5Ö§ô™0aíÇ(}’X¾çùãPû:3”[áx¤Ÿø"ŽGúè<Òð!80Z„áÑ?h\Ë:þuömI-ëšO£üøH¥¾_Y¥ì°)w”è S(dH**cÏ>S4&~ˆ’!©»CXr/n¸i“+>ŽÝÖÖ>c¼]èï}tÛíɊ̋ފÌÉó™k­1/6Æàdcðbe nlÁ¿i#ÐÜÅ´šh\o¾®™®þåSÖáÅsÖá¤cêéoŒCýóŽ}xñ”}¸{cŸ·/zíÃZð‘m¸ÑÞ5ÍêÕ'Ë«Æ.*ˆôÄîš¶ƒ±“>Çé…MAlsí¦"¶.Ž…”ÅnªaײçlÉòÀ&…<&ˆÏ·Ëb}.¨×¥u¦~@ØP$zÆ ; Ô!ŠaO5 …„O†z­ Ò9›uçisÉå×aAl&09ÕëWv–Ò}^Þgua4P8ݰ¤ÅÓ¦³“ÇÞJLÇU†CAb¤‹iB8"¾òÄóy„—¹È™‹œ¹È™‹œ5ò}‘3dcoø˜ÁväŒymEΘ–ˆœ[c(pvÇ~q³S55|òq–† ¹Ð™ ¹Ð™ Èbè¬Wö$NÀV<Ùò¦cÑÔjÜÅãQœÄ"b>Ç2"$ <%2QÔC‚aé*›ÒU893ñ+3ÏÕʳ$[¥Làž '¼[áÔ9ìlˆV{‹œÎ†oõuN§I·ê3:’mÕU9¹*'Wå䪜N§Ê©ou¿Z¬FÅžqz”£„#ª’H‘„†BR–ÈØOâ˜cÄÃáò{œ¬ïT®uÍ/;ØÜ¡r‡Ê*?TnÉ;À0fÞ6*'„{þ*'>ðômo&øò&(¢¿¢>Ü5þW1±òëbô½~?/ïõójÝëÖJŸ~²Vùáý÷ösÓÿ³Ö‘K{x-@Záïéb(‰êw="h°©ñáƒ$áð2ùT;›EnÐù?½Û¾:Þd›Yy¯éŒ}"¤$A"$ æa$b!=„¥‚D„¸žqä;ïzƹžqc0ÄÐvqêÝd5ýÁ–×Û&ŒQ1çÃx»=ã8 FÖÈô>_[NÛžâh×O”÷'„9Þñg³¬N”÷úUh¨ßtNÓ«vݦóýȧ¾P*BÂOd =Œ…Q¡HÂUñ—Hgrö“³ŸÞ–ýT›å2|T䲯÷k\l[M#ŒÄNI}ˆw+êy06ýéL;Mª·“M¤åŒ­‚G¦:õ,5“€Þ 3ˆP˜–±­RMÛÖ!©|ùŠ‹"y®³E*~VÝ„nsš/3Àõò °å-dx3Q Lj6ªE ™y X.‹4¬ãE ™T&Ë`/æ€'¸˜Cîz¡nµUœ‹°Õ-J‚,†;À&SLϹÈ7½€l%d-” à†—Sú*+5•ݪ\´²1TSÀ½ª@m•Bn©6 Bù"l U™Ö=àj# T@„nçVÛí€SBÛ!ÈÓ¹¡ö»d¨`aöÇû°îçò}˜õýrµ;À XŽådž¹ Ï_xnXÉ1ºíÁèv$8<&%rTŒtDpÔZÅ?$Iy+hõwu Ñ’.ï‹,ª.ØÖܾâ€ï{<|3û÷@ ¨~ƒ!Ä}kÙo~þï>un@È º©`‹_¯È°¨@YZ©K諭þ°Æý,ÃÀ—í+#7œ©"Z©ìeL±i ½ Äëë¯8íæœS¡<¢hà% c&A@Q(¼€+æÓ„H†¨E»?E2«CµÒ²*Òpi‹ŸÞÿ jÿ´º&„&'‰,«o'Y:½®î”ùï¤ /Ôù”Ež™¸¶~5 bq¾Ðã¦Óy 5=¥ÒÈx]'×rg&–›'æ~™9úÆijùÅ„]Ÿ‰²ý$«JÿG?þ,›ü1«þ2[ÌþjÑó4ºÒúÓê//uë\çÝzÑ Þ¸÷¨Y/ ¶ZínÞÄ ÛNÇÄ!ìo_Î…?À|Q÷ë]ÏóR¯ÏK³2­[ô~üùÇÉ-6±Y.^“õâ×<ÏÊw-o™Iç0kv+ÔÔœÓv·ž{w€H!‹­°ß€êÙs?§ó\Ã=”¥ @.YåFêZeër³…¬¢k€·4y//{ûú,Óþ=÷fi•°#ð%iôzœ¯Çú¸ _±q#üøëzþõXÍk.5¿…ж7î”ìÐ#•¬zò0¼~zú5©±¬e;¢!i`œøwªŠÞug/É–Ì»ëi P•DM.Êe¡±é€h¬ÁD‰¯‡ÈO7¯Çƒò,t/ pªêHä#Îõ¿!UˆKëƒ=d 3_FIH #0£À!÷¯¹sFÇ[È3† µô¸sÆÑP!•^·}°½…žµ?Úwõó`œ"ö˜?e¥iœGK/jH6‡ˆ¬œÎ²Ëòf˜íl–Uƒ¡lÂ9,6;qoEuÃÈ#Ã㈅„&Â#’ÄžGFÑOâÄçÒö<à Vå펌S;2ÝígÍ óŸ<2L<,vœ=ŒSʺæ<„´˜ë94,«ß¡± ù OÅ×C„óõ8_óõ8_óõ8_óõ¼p·#i‰Ýq„4}»£€0¼ƒÝ5Þcl+P+<<¨m™sz ¨=WÎ[@ðÿ)«|y*žr²7€‡²Y¬‘Êjë:†A¤{…æö(ÞÎàÈý1ÍL'¼÷r™¥ª¨AwÔþ9Ϋɴùµ¬&&Éý*) ¯ÑçÙu:ùE~YÖZEó³–\äùõU¥¯ºL—‘Y$/ ÛÛu5LgÂM{^¶Ö)ÆÁ3Žv„˜ý¼JD<t ò‰§í<àl¯3+Þ‚Ëz!_š%|n—ý<' Ö‹²`¶·´{ëÑ[ŒéÛ?Ã<ãÇhõéÝë xõüaÚËùGæË[­×ýû­îqêyX$8ðQÈXÌôQ§¤ô£qD  SØ©÷Ýä゚4,j?Õ£z¼™›ñw9kÜQ-ÕœùLï¶“E=`ÇÕá«Ï=}Õon°‹™¼1ddkš9CÃ¥O9O7?n YN”,®&¿êc³ýÀ¾…ê¢ÕP±Þð'2 —³²½@+1)¶èºÈçy–Oõt²ìáÛIø ¯Q¨È4“½ÈäC¾¬j~8ýy´,«|f¨ã óá3»š|7¯çpYå—†ÕlC®gûæ]/jæ157þ¾²æ63pù|®G1lhØôê)dýu[~„oõ¹}77ïICn+Ó–¸‘ä#ë?Ôÿ:Õgÿü$tÖÄΑΙÿô‘N±Øéª×ÆiÖ ‹‹-d1,.ºÈb2YMäE˜ø¶ YÞ²@6È´K@ÝíùOYÐÍåFØã$€ôï9'Ï Vìí89¡'ÉwÚç0ÛV?Ø:·nÒüs;b³™ 'ÉuTbã9´Ò(•YÀV*•þVv +bjÿÐêM¤µ¢Ç†u©øÒìz½ÃæøÌ’âw8BÐÑq.¼“ù&ª¨ <ÿðþ?›%O‡EáDKŽé% Ž,6ª­~/6²ëÞ0ÖJÚ®±V³xþ­9 ¤i¥?° ¼_/Æ¥t#›‡ ö&Ž yäàÑæ{dú+À^b-ÜÃeEZSUÅ—)T¶vO@¿aK\ 8ÍÁ’‹¸&n¶•À5wc’Ž oœ#ØzRé³½A7à˜¹þY]Î*àKSþÓ0so_#L Ò›VUVÂݾXvŠÝ†X£5¯ÄÉÏ^ÖÏ×^0ËܸGö4׳yd6Wï¹L›ç“/ªwz['MÒÐÊ!Ø›Ô'Z]«™jó» ¨ž6ó´™~SJATÊëü.чüIå!½^îQHŠCŠcDˆŒÅ(¤I‚#꓈i¤ MG¥yMëÎdÆ_ºifR.0_æ=ý_Y¤ù²¬ˆ.MžÑ*»¨éeeú|éÒù*¯èÏÿ>ù.þ²,«MÀ ü—?O¾[iOdý‹U±fˆuÿ‹IV+˜ùÌä|i|Wf´Oy¦'ñ»j¾Mw83—²ùmám†¬µ>(Ó„ë&SõæyZª¦KWãÛM³JƒD#ø4ûYjdäæ“<Í& ó£°ißÕþ~æeÙˆªúÏÆÛÜŠGÂï¯õbÉeVÏ j˜Ä®[£õhýϼî-Ö\cÙü /2“åͪ±ÙFø=ÕE^KÇu‹³BëOJý§yœÏ²‡Ú¿Ü½5Ú®}4r-=äl25ŸíH»$±:IŒÚ$‰1Âi@¶CÊŒSásÚ-éàX0áÞë;\V؉d…aÌðÁÀŸ› 2Z·wì“4;鏿æÑèó¾2[à¨!ÂlY$Bü>Õ¼ˆ S@ªÞ`çs•ÍÒûñÔ;ô8eÓrä—n­{ESKg²›òùÈ+7GØ(UsbÔÆ8m}*Ô­4A=Óz¸Î«…~Ò#y:O ©ÑÀHå@©^ª¢ª¤OGz¦·éÍs5D †ÖXhÔ&Õ7a”²)[¨ºUì(ýħ¬Ì½¿ðJ}Ué×Ò§½Iú¥o–ÍränqwV*”™éL:f€Ò¥)i³ñöb)çÞ,Â*üb퇻ÐÁžîóDZkå+=e‡æQ<…2^.m‘ìWˆÒs¹ÝqO¼Bð©¾aÇ^¬F%½@0¢?”ˆ¼'‰O"–Úè OÙ÷c[MÐRr˜ÁNÒ¤>Ð%¾z… ߦ–ØÃä*]"¿U|ê'Ÿ Â0B¦%$”!g¡ ô?ÈC „‹‘ˆÄÈCBR,q€‚ØÑQž¿+‡#Óž{;ÓXö|´‰›ÀÒ!¢M-¼EÀéìxå÷öï|1àë4<;&Ú´h]´ià .Ú´mÔQ* м8 x2Ž)•‘瓘ÇqàË8ô$ó‰ˆäx£oÔ™ðFé¿w4ÏÖqPJØ6o Otu¤¥8·à˜vUC§R5ä¾7’›ÒÑF *8Ú(Gõv ¥£r´Q'NåøŸv}óŽÿ©+ìøŸN/´âøŸFò?9'Gâ4Â,s$N¯å¶,‹—OŒ„³„1.¹b* ñD#?–^èG<&qäËÃã×Òy-OÀkéï²Ý?ëµÔ1¼ÝJc†„ÇI7±k¡Aº{ýÎöy-[×›sZ>ë´Üõ+>ï‹~àÿaW䘊óû‡©j|;M}HƒúÇ´ž®ƒ7½ÑÂe|C.+} J³ &´IŽE·žÖrÉ6ˆÐB6…$^.Ô#1;B£ 9Í^?hššø)]( /4ezz›%ŠDœF<Š„JeŠ%Õ3ãsA"®ß×ÙÇÏ6Šb!üÝ>~>¢Û}ü1<Ú$¨Ýú¬³žFtó;¥<'"èȪúݧèúø¹>~çš5Tþ$x¡÷eÉ’(B# Š+!TÝÖŒ†,žâ2ˆ#á€c8Tb6P‰ùŒ£îqx]´D<Ê¸à ¸4@pvˆé-å‰càƒåší2|óoßp¦ÕPPg˜ `Ÿ‘v9ökM°Ï+–€=ÆØ¡ Øo¤oÀ>£¬ ö¤ÎsØc„J=FZs ì1F—d`Ÿa¶Ùö©K;°Ç0þ½Féì5N‡‘`qQì1Ö#Ž‚=Æêì1Ê6kÁuè öe‹Ç`º„û ³Ål°Ç@Šƒ=Ùá:?’#=؃ôzÛ{òB¯Øh]2^óŠŽÖ¯éÃ5»)ª7·›i§Öæ+Ú(µù…*3ÛÅ2Ûc±l¥¥TuáMZ›Åe»I^ã´:Ùh£ô»Ii°^Ö3¸ÞKß0IÂ+ºIH’+NK"â'‘ðqÂP¬êáØ &‚ 9—è¦Ë³úêó¬mœwœúž/ðvšU€ #ÛÕ¡˜xžG¬ÜwÎew".;?‚R;¶<zÐ÷Ô‰ŽP]ŒŽÐm+GÇhvJH-€ÍüëŠJ]Qéñmà—-*µxeVÕ¥ö¶øëïÇ1ÁGÒšÌQJ«êO¸n§šÓæ’»eºúN­u¡§¯`Uñiå”X—~ÅÒƒÚ)mªB_Üݲ©µÑZŒ¾¬gg]Bj£³©%µÑÚ•Zh­«KOÖ[µ© ¥´*'}«î±Mù§µ±V;C_ܳu¢à!Öå¢Ðï} «=‡ºQHåÆQxï0å„…¡áîL<Å"îÌ£J&”ˆDr¡˜çažÐsñlºº¯´nƒ>NF|®n”þ?{×¶Ü6ŽmßóªóÔS§eã¢õÒé$Ý“Šs©vz:3/.mµ.T‹Tbçoæ[΀ºX¤neɺ ¦'±l$A`í½ö^@"ªu ¢rÝltîÖUm™à]šÃ’¸ƒX°šù² _¶qôe2ËQSïðM tLûv‡6¢ È.œ\3˜¸n„" iÈ9•!Ž`¡ ¤*Ld ¦WfD$ ãˆP+hñoyý5šO“»5—Q¤gÄvªñ²˜l`6^ƒ'dÑé´cÚ~ @†/ôLšÁihPŒjÍ6úrøU·ºŽîúªÛ-6Ri>ùy²Tβÿßuå(k¼“ª7HŠfNñóBÃ÷2¿kKÝTåyR`Ðÿ¼Ðö:W‰+ÿõãñ]´Îî–4Ô`'ëʯµ³~ú5ë<M¿¿›Gߟ~§_»¥bFÖanK×aWoé"J*{:¥HÌë@èOÞTi\|‘š“—AïXøÈ¼~ÈrÕ»4ÓÕfK¿MÓLÕ:MpÃ]{Šºsô@í ~ð€>unm$Ù¯d¬YŸ| fßûÛã>„Ø=ým¹ëÅ=ëž8Q0µè7#g]Aç²M×Ç*_m.îÁVßô^àÂNðò!XʚŪèmêö”ñö$§ÑVªpÛ o€9f”ÉR” Îa˜0Ä1 ‘‡’Úõ¦ÈûuLôí1ì¶xíS0æ„ÇãqÇã~§OgÜ>TÙ2Þxùém㽑ÿôÓ s‹ äþÆ(ì̈ã¯ËÆÑ½¸4vcåé­Ò¨Y£±øE2L{ã–1>Y%»’ñ7_wÕ÷ÿûo§@ÍÝLÿ";?kè¬Aÿ…ž@ûGÎTˆ*r†bu0 cÎ5¨šGÎú#lfßc]®i³!fäÓÖ½Ë°à‘ èÒì¿üçç÷W6@:Kõ蛼*©¡-b+€êgxoäÑO/LÓNó>ë6³üAƒÉ;¥ò\vRmQÔÔ»ž ž> rÛÖ½[묛ÛmqV=šÔ¥æ—÷WÍ?‡m=]7´În{ú¶v6ö:~¹LÎ†Õ ÆÍuKSȶéY=-š?Äy;’m› Y† N@„"@#”ĈA)…2NBªdÍ¿ ìN—ò¡°ó …QÁª:¢kBa Áz ”rõHï"› ® Q#㸃aßÍ“;Ä0ØýTóa0óa0óa°ƒƒõSó×îwÅ”ÄT‘D%@„‘Jà0(áIœPÉ0Ncv§˜ûHØÉG  ÌðÅsÀ9 Œó‘°@PÝÏzØ<žßöÁ°qû#Ñ{‡­]^žY‹RÞ  ²^7̽Ãfä~òú”wÚmu1¶Ù_BD¹ˆ8‰*†¥R… *0""œ ùÀ–l-ÝŸ™9¥§Ø"båþL4lG%Ç ã Ø¢„XJÈnˆÔ…cpKé9ñ$Ûñ“‡·0 õ6árx˶6Ëǹž“~æ"ûú%öÁ×Êïµ0÷ÄŠA¡Ã}~p–#˜ ?¹XMâP&s©Ã(U=<¼¼—´,JT̹ä˜#±@)U #ShÉ'*’ayZ§Ëç–Y`Ì)¬€e@Ù|ZWÛÌZ‘Öu¼É\»g€3¸Xé1º€FŸÂå”Âu|iY夳­|ƒ“IízŸ~ow»òWýýIz?;_Õ”Ôo—ãU€›çƒ7îíŠÆQL1à‘ˆÂ8æH©°¢ØŒ“$(IH!°ÚÛ?Ï]P±ÿ–/x»Í=Ói(»´h®0#£0;ÄJ/uÃ9mÕ4© `Í?iØø5Õ»ìx#1;g]ýãYÅT?¨ü[:ìh¨qù§ /¦ß2KMÕ¿G²ŸwjUÄ㽊x£¤nâ‰UE’‡œÃXàqc †‘0†„RÉUÚÉ;Ì`ÃøªzÅoLV|[´SéâGƒf´ß}htúé·~CfF™JõÛ÷…J’i¶‡ñcÉ©áDsÌ€¦½…ãAhøÔè7½ŸÿhÔ©Ú]94ÒK¿é•9íÿØx×|¯ÌO…ÐÒ+Ùk÷Ó5¤Èß´›‘«¾FTÓàÉ—?®*øjÀŠqM¤ÏâºûPöašeÍ~OÍå\4Þæ‰¬\7nÊ®SIË€½5ôeÅÈê弜kz=2*'å©B9ÀWC98¸Z÷F¥Â7Ñ&¨ ›¸BlÍ#ž€«›'´S`Vó@ðo*¼™,$¶©d²Ý? 6Ø ö1/\!+k¹ó'—9´Ÿj„Ûµ¾5êȲ±94XÅÍž^7ší~’ZšéÕÉÓAÓ\yÓåR–á®Å¼«Ÿ×²4•G/®ÝÄš¶7À„¨v÷,¯µ%&æmÙ5ÒwFDôZåË@'Ùt%n¶»“z 2ï蕸Êû#ñÖYÊö0u¥•ãn]‹Z÷´^BCÜiÞCØDîF›Þ Ú÷á(©e­ÿ_Ë®§^ý똦á_*Êk™æµo“sÚG? ‰Û¹3 ”Ò:/}aXLîZÖÝÈu Ý8s5y.Å÷#M¡¹hÙíkTä`°ÛNcª®òhŒ«.³èNõdv9ä“ßWè‹O1Y2 Ë<—²¸#7f­Z?PD¡˜DpbÁC QŒ•D0¤P‰ÒScOWâ)Tà9c‘#ÉQÙž3œvÌØvJœçW¹Kûê!Vß*®Â(*gR{jÌScžóÔØ¨±}¤EDR)x‚bIg¡P 戄ŠqZª/zbÌcOä \rœ¡¡_%s %bLïÜÔHqòYM§’Õ@á)1O‰yJìxZ{JìY(1[šÈ™N:`‰·:&uDÞ¬LfTš5æNœÙ<‹ªÍè«Pç0¬*#W‹ˆsäßÜi7w¶Íd³åÖì)5W&­fÍ›ÙÓentWMrìä §ä—-çå©®=…{öÀn…,¤*ˆ°H„q´WÌH($TªDP;$íñÑž§ ís¡íA€©+¥A³€áR¡8ÆlJƒ^ÂÚy¢îdˆºíñÑí9žÖ>Úã£=‡íñ¸ñ¸ñ¸)n¬õø¶ ܰð$ÁBðp #NؚĔ€@X¡ÜøÀÍþÒtª›µi:ŒÀ@0PNÔa„BFÅü‰æ£@ð ŠØFæoSüÀov•¨S«¬ÅÀóŤi«ð…½T_?í©QÛV}¯w­š.͸µ1L‡aÛN pð ×ƒM’…£þ÷ö`S›^8Œ¨ßcücSBðæN“x4ØØÍÓúµ‡–š»±,i?6<‘%„…#aÂi„qÀ!ÂEiH±ˆB™Øå+“ö«ô¸(½@Œi€¡EeÙ´M.—zYQœäu_Ž_÷…ée íáë“|}’¯OòõIS´únW«´†@Ûˆ F,Ö c©ýFÎ$a” qž„‚4$Âîhú/\ý^\ØåoºmÚ¸~ý®¡g‹}®Ó$ÿ&‡ªñÚÜ“t`l¼kç&T¡z¡Š‹èƒÞǽk°“6R}†ó!„ìbe>œT+§ -Õ<—ñ ­VÜ ˆÔ¸f  (䀬G(EÍÍê¹ÖœL—ó©À™›N—WÅaz±¿ühfŽU2F;ï9¿ôþÏßù'€&˜`ÁP=l²Æ _ذÖôÛoÉÓ¡ÚeµÎ=ßH¢=ö“­ê_@´‘ñØDX›±xßÝöIÏæ¯üÝûÛ×WMt ,ý!•WX3ïNŒ¸#çìÌ ÛòÁúmý+³¢ ˜cOêZž0©ûÜîÇVYóÛøœ% A€ED1e `)Œ'÷BÆ(hl§ 5 `j磀âoú_Ûô_øþÇÌ}™p”íþmWM!¹ »GŸåw2oD²o(N cã¡„išgÚ5¼èºy{Ð-ÈÒÿýòéÕÇ÷%elmü™5†íèÎü=eŽ ûùn¤ñÆÐлGµÝä‘`Á)‚bu^: ”"Ä„¥¨-BÔÈlÛšÔô˜üìRÔ­} Õ5R ‡‡è€hM?èÖ„ °€8áH#ÒáWý ¬6—rûÞ|ùôñ÷Ïo^Û€©²åÂ']´{·í(í[ ô±­Ë ç¬J¿Y˜þ¥zúmN#«Ñ9`¯Q·;èŽnÛv—µ{z‰ÎU–»7w¹QeÃêŒúíûÁ°ÝÏ.î‰1£»º›0Á Zúzê~ s˶E^¦eÛ{½Ó‰§f@–6IÚÏMÆ^ûÖÖ`¨”AN¶… ·yǶ©Ì;¶ê+´íu’*!»zÓëëÍ÷«²½7®5{ ÏwnU,ʵ§le4êù @Üúô¦'+‰­B q¹ÀÆmþ¡¥gþ%É-c6_†æýZFm¾ä–8÷‚tÜ!?§Â_›ÅÄÄ–‹Ø<ÖºŸÇíÞò¥™n÷–“¼n]Ñ«W7Ø®ª¨jd3#|“sS‚ÝiÍÓÝHƒÕ5¬¯-ëñ×@ó–Y¼QÖ!t÷e¹ç¾,Û‡ß5Ã. øp}­_h3ðŠ ´zň»Ùì(ew ›-¨la³t”-¨³s¶p¿½ÂÝ¢Æý¶wظLÖSxÚØ|ÉŸß^ÙΖýÔ7£$GgQ¹ÔÐfX~´L]C»×23Jv“lÖÔae©ÚXñ‚§Ë˜ÚXÝðª•ÍSµ±{›³¿»í¼0³™zYfùÞOº<’…Õ­5¡øÑ ÙOóv2!¸Æ¸ÝæJœIþn±‡».úlÈ]í†×Hê*긾&Ù²/[쵨ž¶q{ø?“r㡺ˆW”Ïþýr¾È²\õ.Œô|EÆ3§Ÿ/çP!1R8¢X&!g,bŠˆˆ'€KN(c*V5ODzd±žú^^ ¥GÔÈFƒA:Ìõ×?VB™‚eÕoþqÝøvgºng/bÕ5l¸nÖîUR=ÝôǓâÖùÂÑ×kŽ1 ¤eÑ7b’yn0‚™˜sÝŽKeQg—w|]¬ƒ—W¦ ¨ý½¸ Go 9Â¥º°q)…Z6ʳ,ˆZú¸ÌR¶šV­Ñáú:«óµ{äév’F}¼$Ô^ ifi‘ưå<¿ú¼zž°ðMÏ#§zÛÒõm@¤Ùáq˜’s”"PB4¾T2”1t+ÜzŠÉqñÂá=òâ’›Å5;²g£p¾ö¡(àú­èó_¿^Ê1Åoóß_ ¸úÖ<˜³Ù LÇc/£1Ö™™Á˜‹Æç;õP@Ì™{£â'# 'ZE¥üípŒd pÔ¬‡ì¥úΘæ™ÉRjÄí¬£Mó"çÅ»×of¨ør«{irzN P+€c†WJ€2œ\°`KêùŠ‚õ@rR[¿ö+šs¬¯·ÎÙ¤í~¤_„C„’uý,r‹ÙpátÞô¼Õ,¯–uùW‡3Ö;ÓIì6ò²ûØËöÕ,ûY[òàrvg3uïÿ¥OÊé&t˜öÓ0­m'ÍRXì¦âÐÁ$ÏÅÙ`Æ·\ÐÚ¶&æ\×ÖÁrš¯bo1—·áb”ö“ñty¥, »J:†‹içÚ o¸[VA\L+!.Û›ëÔž&K8˜LhW'‹1ÿêb’r׋/qœöfÃÜuÚÏ“Iõ¬æ¸«Zöó–uÓzÛ1ï6‚ðìþûJÍ•ý”>Bâr.±<¢ @ÆÇPqÆÂî%WœVCw8T¢@ Ī’+„Æ`©º˜ÓqêV.*®œCá–‚+‡]lhTWHPZå¬W¯º²²ŸÃóè|QŒW]9è ¯ºRödN9oôÐså¼êÊ“8 ûb…` 3¡ *)OT±ˆ ŠF§ŒSIËÓ/¼R“4Ó>ˆ­ø qÄË>D|ãá›ëȳE7äL˜³-=‘C¦Ð0!ÕLÇò~ÈÊ~¼²á NÄ9ÖÈóMÛGõÉgFe걜 SPY^¤æ2ýÏ„`™ùAž‘)°Gqž‘Q4ŠWJ"H þ;1’ŒL™NËEB˜£<üFF«3ÁÕ3Œ Š0)¹j˜pÊ!£Ä$‚o*˜YI¯ÁÙÑE§(I‰æu Z€t@c+T'ëv°ð‰}Os ‘µŒÜǾR“Òº‡9iÊã¾y±J SR“¬kç~k7¨XZ÷³(f邘v ²V¯É{‹xi¾ç’æcÄÍ7ÔpÙ§r}3zªÛçb2'àçb–»Žm^Òoñ•ƒ‘ÊÖ6vX–‰ÚÏiº<œÌuU¨ªÖ4ty«5}¥ÖÖ1®îT×ð0˜ÇÆS(Žct¬;8+&}^ž3Š'1#qD(e0Áˆ(VH*˜3Œ"¯ã5cjqªFð¥Â©r¾’SÅórò+¤7'þÍøTH…uÙÔò[çiÕ UŠImVÕëÆšnÌq‘kÇË}uÏOª¥>)t€É¯^le¥¥[Ù*2åÅVžÝ…ß­ƒýì¾ï&Íý}•<² Œp’È€ò8Ô¾‰þ€A"ˆÆ’%%¡óëU÷½ê~ ‘T@L¡•ê¾Ø¤9³®Þs¥îþ™”}ÖTÞ?ärO#¾_ª]tp}½øþf—Ô‹ïRëñºÚ;§KÌÇç,¾¿ Oî…I N%‚qœÄA’ a)qÈ…ŠG ýWÂO<˜ô`rG†ðäiŽpZÉ¡¬D’çÀ Ô„‘‡M¡h kÊz 餒Hž|ÎXd xˆâˆ€KšpNI¤þ†DAN•ŒBäNÞ#ôf+dݪ>5á8`朥GxG˜Àh›Xá†Oï<%ô¼¨ênM^v£®%¨7v/J`içE –Ô=‡êIÝ€/n ^Õý@æ–m‹ò˶÷z£-J/Í€,mKm &ÆÈ²ýmÞ±m*óŽm§ú m{ 4RMÙÕ»m_ïý_•í½‰Ò¡2E_¶í÷èš”™UR ®=e‹MÄ@Ý´#žRiÂ+|<—ÂG³p#›ì6ÇÚö |Ël½îÇ3é~œ´®ê¹h†8=D¯âfëUC(iøœTCœÞj/bcëE@Öze¦^äJ-žMRÝ‹x8{å†^Äã(6ÆO„ j0ýÓê¼e_¶Øë9èy`´BÆc_ —@É0Š©‚()8W"IÌ TIfþ‰HŸ@p: L°j~hP"þ+ €@PY_#à„R(æ6.8 æ2]Š—Á§ئܵóÞAæ`=›hiÿö®mÉmɾû+ôØá²ð®ö¥ÛÓÑሱÛÑîÝ™· Uì¢.KI¶«¿~](€¢JÈT]T*¼”š'R$€Dæ9Ù5<¼‰¸‹Èã“ ”ÇEÿOûƒâýîa~`t\GÇòOâc¢÷îA{×X="D¿_Š´‰*½£n‘ÁUpr.¨²ø6nè.„E ƒƒ°˜ kœ O{ššïnµ³»ÁILLŒDD!!áGPÔltŽÂC‹.OGãòxt¢Àà#$Œ‡ ùÁ@€{Õ ¢"ƒÀ€ <ÿÁ£~ð`"Æ í¹èÀ<—çb aËÖMpÐ9V‚¢b€¨à"ê÷Áã|ð<²éÁcyð &z‡ Û"o'„é ñ9TXs¹ÇÞ`±3d¤Íepèº ý±=HÔ ÉÄð0±;\ЭÅé`ñ9çX<ÃÀÐÑ6|˜íÉ·oÚˆÝsêNœqÌÌR’xö§´ "O³8$$H’4,)e*&3Qd"Š·’ß^ÀÅ ¸¤^Ï`ãµxWqÏUÄ„>»¾Ûw/åvg·@-‡®´Ô¸ÛrbY]ò›¬Ÿ^µÓ©³;õ~NŽœÔ›`íb}9ù»š;g-è½Ù´ºÒoÝüä¸Ñ²XÎŽšiYh.—bJus§ó7 øNç>¬§tžÓ»¤·RIz¶èB$Y‘’8RÓzBb‘’Pq@¹Èã4 $ Y*}µÏ v^QÄûÔ ?¸¢Ô“—Rî’A­ÖØMèýwîÕmG_f!L=F=Võê9ñ Ô>ú¡½ù§É›NiYFÊŸÏBž‰PfyL#JI&hžSåëg$ËïÎ_ÐäË)È'aIG_ÓXMÉ`}ÁÃ9Í>•ùe§2‡„Ñ7Ë"+BÏ÷Úƒ;¨×¼íA_°öå÷v}yÀƒ›‘¾<à+ð½§u¶òty!Ï{NöBž÷î…<½ç… yzyN ÄËsº#¼<§ãù^ž ôòœŒ—çtA¼zyÎóÓ\~AUïÎX»³åm<»n' œò2IO“ æ"Ê‹R0qI‘"Œ¥,ÝÓžþìéÏG½"zOKIDîôb„Ie¿O»Ó~ó^£nç…ÅÃypkJizcotÏ‚îvœÄ‚öÚ§OŽ©=ñø¬ž­Ü{¶g+cvv<[ùòÕ±•7®€‘<»fuêLê7‡¼£Éæê ŒµÌ£‚‹8B9Ž<)dÊ ŒÑ(Êx–—Y*‚¢tã0)WíëB9SW?×Ê—kŸO¢ª¶ž«#¹E7l÷ÜH¨F“Á´\y‡Ö×´~ä»ÁÇ…æ}oªÅBNK.½:_9½:)ºYù‚M)rÙ²VéÚú&iZ¾É›é|~5SÎ~V6fuúõêJÅêJôé•+¤ÞgÝ»™ZúnzùfÛKóÔù²Z¼,ïñýlãμ_ì~–÷÷ù” (ã–¤V@X¥æcÚa5±$ˆXd³š$ ĤI3u£Ô˜°ïñ-½}WÛ×犼Rò³\|Ÿ6·êíxÿëX½Bï?Ô•Þ‡qq2µä®¡NfÏOaýQÉ=ŒÓÈšMݽÌCOʾCtßÈûQ»ø@¾Ÿ›··#ŸM2ãþ;ï6¿ÏÐ1Q¯Ê>þó_›µùOÿøiŸswÀ€6ø.BcœÔÃÉD˜©Ó>gõPM ¿ü¡ÿ~ùsØ,‡óÛá¼ο]ýu¸h†ß\ø¬ÿþùïc+ˆ#üÓ;ÆÞ1½÷¼ÚfÑò|ë”dAJ‚ "$œ‡eP–à,ÊyK.„Z¼pYf~ÞoÂã—M< !Ë&ÎBuF`/›F!5ÕM‚•ÊÁ-›üJéâVJahIÝ€VJU&'ÕHgÂ;ÅØ“!™S&Ìn¾xí’yáÔ±õyNmí'H]ˆYD yzç™Ôç®ó2¾[1ç‚.d‡²Z.ûŸ àGYÙ]­7VŒz0$CÓîz¸„’í™×z‘"Üôu¶€Æíý1ÛÌ™à³!7ÍÂuÚnðùb™ï"Ìz‡¯Êëè…D¶e!, çÃrU][Ž|ßvw}49U=«æUQ©eñ±³CŠÅ ·<_<øÃ¯Ž°Ì㯟;$Y—fq]fõ5sìL扒µ×¸eåüE^Ÿæ%ëÓ<¦€ÌY‹Á8©ºØ P=N(˜£† RzF¸¡8ï “o@=Ø”ByÑܸÖD8â’;¾ÓO£±ÐY½5/¬ãŽðÂ:^XÇ>s2¢®ãúîÜŸ¾|þ²k'I¿ ²ëv±Š@½@·ñÄòæU‡`£è™)]añ ö—ÏG^h¾ä|&ÔXéC{_¶oõpŽñ9¥½žT{ö¤ ÉÒ(‹òœÇ‘ KÉe“’ÆATÈ‚,/HÌSY>ƒÄgœx«ŸN3ƒ„$!9LãŒhÓ„2+…$¢I…±ÉãÔ‡Ržáqêr·Žù †!ŸBÒ1rwó}ç?ŽdÍR!+à:•j}î2¹Ðb®ÓF+Xu‰\pAÛæÂŠÎ"È,îéNšãƒ"Ms)‹4KIš„’g$) Ê“ÓSLàÀG¥˜xžˆç‰Üs²ç‰ôž×xžÈÙe”>Yù¯¢(RÂã´”‹ÔÇDgl¼ƒ( Iš…4ʸÈ}Né JÐõ¶H½­UN)KrJù±œÒÃõ¶g•ú²[—‘+ACbÅ?}^©Ï+½”ðÖ㮩εhée—†œ”!Ïâ§AÄH0™IˆÈ!“(Š ¦4‹|v©Ï.=…–C Ù¥‹Ó8a’¥œ§QÌ­’¥¡zI¢#T×CÙ¥=K}Žé%¬›‚0æ’ãË•úåÎ‹ÉæiË•¾ð´ŽsJ·xÔŠ.Æå^Ò"`Y®1c÷ícD†ž&ÀrÖûྫ|EG‘%G1G‘åF_D±ÑgÝ@OËË Ó[£e–•R¤)Ë‚’–„ 82eeà(ÊàQïŒöîçw©Ž÷ïç§,Ò¸Sñ4¤„Pšûù!xx¬t×áý|¿…®h1þ tG@}ô^Þ# m7ÝmEÞ냬Hg  #ïëYÒÙ¦%ºiq(øÞC¦„ØXeB:½£>¢@ˆ =D¶t¶`äš:Ý%Dâ‘ðkv c:ÛÚ&÷. “åƒ@6ÀwÁ"R"aðÛ|/}beÃâtí¹§sÞ‘ótΓÏn<óá需QÉäu`‚'±ezB Ê'bp?!°´o6(iÐB0‹ Çuˆ¢`-/ €Ì¡7µKÔ|¡±ù.Dc!È–Æ ¸AÛxº§†'àk-ª'gP2! !ë03aÐ.E‚6£2\‡´ ìM(Ì¢qBÁ˜q£Cì„ ; O´CõAÑÒŽü ¡Ü~è›8>a,FøêÛ"²fêÁ-‹Ô|P,–a‘h `.ìrE‘@À³ÒeŽ" ˜¢ø$þ$-_‡²X¦î;QÙðÕ=¬S(Ú¤ŸB°ëlbvìØ¦(Ж¢êŽÝ2U!߇ÚF´’%0Ô„±á–Bö-[ž%P÷I§h(`Pí£ ¢Á€¡uË…#à7¶CPu™38”‘¨ƒÂ›ù:—µÃý7èml<Åõ|X"³ÙSD#ú\ ÍÎ߷ݹ×ýc< XWf)Hãä û§ µ½?N㘤†ïÇiÇ.ŧúŸñ«õcê¥Ö~ßÿ,ªºZ¨¥½‹çw£†:Ùjؾ…º»øÿàó¥„Y«wo뙇ÃÒ霋ý¼¬ú=ýïç¾'xx^ywû ÜÝöB_›[òúY¸*ª|%ï×Ü=J:/2ù÷å:Þçî&£*d<¿£ q`/Ð#=kDzƈðºhê>I qšÍ§µ\œ8Á¯¿bÏÖó¸aU“?›÷%Ê8‘Èó˜Q†””Q"BÏIœ4HIYáÆÐÿøÇœÇõód ±ë@Äà§7b±úýþa›{E®S r"0j¹N”&e¦ï¤¤Çäi;Γz2½Ï´ñ™ÔúBý$Nxb ~`?I=Î z}®_Dzã—ã/m ÑyöÏiåpª¶Ï ë†0$´Èb^$y.%á)s²BjYÒ fi$æœA4_*Có¹š:ù=?¨_õªë¢â÷¦U5Þ 2¡žÕú_mXéó\̤ÎM/'Ú¶úÖõÐú¶³»™º£F~_'­N«a| Šob’+»ße6Èšéw\”/›F=Eê;Å7QÕ"«å»7êòf³i£æ¥‰6$ó›IõK9ÔÕ­êÈׯìíà“XÜ|ú×ÛÁ×ÿýííà?úÓ*ùm&´Á7_>ÿ6»JTª”•z:½ÕùHåR_žêÒX^­¿ë•¬BÆìR”¤Œ\!ñ”„Aj/‘‚ˆrÆ´ÐNó'baÊb7ÍŸÞéú• ýü[fïY¿ N»ÊjÀ««â\JQaÕ}Ôp½ÜrsŽ»Þb5 V™Þ¤¿ƒ%ïAáz{&zެÍô> H*3Qˆ+0Ðv`C ¥À>oˆþn» ì´eúÂzkàP}6ðÝ65ôÙØ"à}Þ"wØ›¬½´Ã úÚbͯó¢çPQ!…è³¶›ÓÛ zŸ[ ¦Ï[¬ÙÐô§ùü¬Ue¢à}6ÑvÓ݆,*µø…õz‡A¨ÑµX³ÀªMö=`Äìé= ÐZPëÚo•ü»¿ m7´ùòÇõhq ë¶‚÷Ú[-èDÓBPým§šíg Z9ÞÀ×st«€PH-î¦K ;ÍD!î¶›³z©||h¿w(L¿wh» œX Êv}› BÝ,ÆõL4ÀçÞDÁo“‰¶›î6*Ê¡š£BptƒÜ}`_ <ªÂ¨¿ Üç-Õç-ØjÄVDeÄ·„¬ëj| _€üì_ó¿`}ÄéÕ6À%ÂÑ©m¶‹ƒÍGæMYM€?šB©ênÁVëQuzDÿŠhê2·`«ÐB‘ùíÖãïo 5>ÑÀau‡Aö–™Ý…©“Û­Z°ÏÑo ß=ÑɳÂõ¶qˆþ[øîˆY#K ¢„Âô¼[-€…e]cÞÓ¿*~`û  …ÇÆ ÞÇ °ý@Êf\Íu@øÒv€ˆ>ÛöŽ,U³l:zœÑ÷Øj,LæÐ[ÞbP=Þ`Í?»¾r; ª¿¬ÙàÕHìíèë¹ûÁ¢Ä¹š©ÞfCƒ0ר‚­–»…¦þ ¼¯`û €”ãéBÎeó­ÊwwŠèw×DÏ1wks©SPײET‚èšè9°ÖLŸš’& qÚnl,¦ID¸º‹Dô¿caÿÀÖÝ|!ÇWðAµD\…m`¥U”Ξ©*à–v ¿Š®…ýC[?Æ#à6~ Aô| 5>Ðw3)tž |;dŠè{×DÏ1wkË|:ù»†ï{ 5>CÐ߯šmb€0ýmÁV `a²’$u~#šB—ó}hÄUôXé? ²ùcÖT“ÆÍý®ó ·b‡ß€Öl@ñ:ü+¡1¢=(¶÷†‰žck2ËšïsàXk¢W` í&ÈÆ¼ù–Co¿Bõ»EÛM€ªÉ…Ã÷<;@Dïm{GÜ-ý×ò‡šÚ7ß‚!ê™ðN`å9äh5ò:?‹)¡ÖµÑwn^@NMî™#n_ Ã]} ï´!V^Sñ; :a`‹¸ô¾‚½ƒŽöXh¾‚ßþÙÍãó]ŠB-¹Þ \ÍÀÇä+:ý¾fà±;™ çÚŽGÇ!_[ð?ê5iÄX¼ƒô5 ûq¾&¡3Ò×$Ü‚}MÂÃÐSj>]²xí«¾Žê‡¸ttTÍħÉU…-¾Èâ=H_dñ~ /²xê‹,Þ‹öEM¬/²Ø³eç‹,Á¾Èb}P…÷Eû¶$ÏAØlßj|!ЊdrRÜow4õõtÛ©=I -ŒÿŒ²j2NhB *(ɲ²”A"Ò8%eZÆIhž$eÆÝ 3¶ª_ërŒ+…UgYÖ¾+ѱ‰ü>äk}VKMm÷† Ú»Áª†Æúü7­öÙÇO?y;øòû—`­döùóŸ_ÖŸnÄ\ý;b~§eÖ–s¹+Óøz4ͦ£”ÆahWÌHÒ”Xå9'<à†fµ“¢™þݽ¬¾NâyéšÑ(‰RklnzãÁ‡'‹Õá‡(Š&›N„_… 2Ðvwr^ÖÀ•ƒ‰‚÷ÛDÛMwrRô Öo…À1ÐvÓÝF5žiñÍð‡ž”`߃b”:&zެý)„êÿlµ@¦ ¼Ë ªÇ¬Ùlæª)«ƒŸ ïµï´û¼  WOÀ­h…àÜh» ³—¥2Q¸~²TF`<âÇBc ǺJ90f×âzmØ;°4ig@o¢¯a>Úèž‚C\º…ïÙ)€‰ˆ-Õë5Ôø BWc°äÇ„êïlµ@Æ0®¸Ã z¼Áš 1Æï@¨›#|ÛY˜#K…êõÜ4wMwßrщi-Þãj|vDÛî´/ŠqÐŽ/Šqì)|Ö´·§I^ƒç¡¡»Î=ǽ¤B$‡ºÐTãGš×_IIrE­•QÄ›ÁŸv‰Ð0Ú{®Ç2¤hbI‚°gÏuû \íùbš¡ +öâCH?ozÝÕïöÛ¨®>ª»|èö˜EŽª¯ÆÌÜî§:,¼çë­Þ^1µQ~é´¯¿t:7cgï÷pRVÏž=‰ŸÂÖQR.R•f4á¡HWÂÄÕ)5!M¤ SÄœù-‰Oز ‘ nûáûoIܶ-:;¿‹âžŸšAa×-÷3(üfÄÞxx­ÆÃ oF|aM𢍧d³ÓOòD)´AÄJ›T.¢”Q&‹I"ÃÚ‚ÐBÄY–°d>ü8¸vw5x·¸­ãL‰Ú½±zêz2ž);+Ô ~`ƒå¨Æ>ÇîgÚ¿wÙ°c3k‰Un;äWbàÓc¥Û‡ºÆÜ]Ú$dž"&ô°ý±•Ûìç>G¶“#ûÇÌmk§ºóË’•„‰ûY&Ížˆô|¯å‘á¡ èˆèûÜ:CÄGwˆ,~ê  î´°} —o½0o'îíß‹žr‘æÚ ŽvÆó¦ìŸ{`ßÌÏ<`~îaï}æÂI­êöDæ‘ྖ #%£$ ‰µþcI(7&”,e¡’Ü’F$¢$”Ü—C¾Àõ£¼½Þ£Lòx,[†¡¬ÌŽiÿiF³c"ëYò¹¾} Òýù•/ó¥Ÿç£ÒLÓ|¬oOe¥gG(n¸è¥º%¼Yá`íS\"J£àBÇ~p£¼%ŒQð@Ec?¸[8ˆG`T•.‚šYÖ bd‘Šî®QAõQ¤j»ŠûÍú?œ4F½ƒU‡€eЦÖ%ŒQñ@y! ¼,êC cÜSGC‡›#†šƒ0Ц:+Uï`e 6$¿)ÀCŠ£níp娺ð.‰To»Ä[ÖÖad‘Ší®åAutQ¤j»Šö@@ø¹£H…jáJäPÂHõö•áõƒWUppIŒj;ëíÀ}_hçýñàG»Ã¼¹dÇyùpïƒýúw>Êõy¶#àká_Ûª†ïáMŸUw€‡pQ”›ÿè˜ÂñÁxÌÇvfüÞNdøhf•V¥¸ØÒ|ìÚ¶¿ºcè$§/'qW¼ÿÕå+$¦Ùñ| Ò;5ֶ݆­2ÐóéÔv#û›ÖÌÉ •æòÍûÙ`1v ýyœÿÏÜTƒ"¿µŠ\_ÓÔìó‡ß~\ÿׯ? þtG3;²W¥r ¾ùôñ×j‘B‘ÛVŠÉäÖñ dsw{V¥‘¹XüÖ+±• 1)Ö*bB6¥4“„G!oRØK±mª'‹Â~`W‡fím#íKŸøo“\ý´ø 9{¢kÓô¤DÑ-;dXdé¼4UÏœ5ÔúÂmÜïZî»V³w‚¹iL“|’œÿÊË>™ÒÎ?Æ6WÝÎ&å…ûæú@£Í-„Aš6v É?¬a²Ûz8­$ŧ(W×e*¡qœ¦$‘IÈ$Ó8ˆÙCÂí ¯3Ã5ñ9Š/n‚ÅóíÈÔSiÓÁƒXDaÓÁíô*ùáÙµ]ßMQ|Íuñè Å«w9ÍO½[ƒÏNôÙ‰»>;Ñg'úìÄ^aŸè³}v¢ÏNôÙ‰>;qoäÏg'ú°ŸÏNôÙ‰‡å|v¢ÏNôىϟ4ÐÏüÿD9Š41‘ S¦š§Z$$TŒˆTHB² fœIOþÿšÉÿ]f$AeFÒ0òŽÝsï¦~F7õ™zÏ‚x÷@müÓpïf¡µÉ…Ñ‚*p“¨01:E""(*"Ê3)àµk¾2þÑ sca.­=Æ}•ñqO&z‡-wG]ü« ̽gUü Òä G§|¯•”/÷ÞÞ×îí=ñÒøCvÆS¸xÔ.Ä(C-O5'±Q(ÓDrÅI&IJHj”73– Ÿ›ïÖšL°û›mßí+ã5¸mïidœš«6ž{ÇÞÀxÑÆž­äŸŠà/N3-SÁT¤9 I¨‚€GKI˜Æ 5Qª£€éØï&Â$~4,ˆ!»É÷‘Òl%«u6”%)j÷ÜSþÄ2Ô‚Øo)ïÍo>e>œð–òÏå“™!™¤Q¬E¥’kɲ pÎ žpEiÌ(çZxÚ>OÛ·Ä<¬‡%DyXBÑÙù…”DÄMÖ¾ðˆõeó·Ý,¯Ì½òP¬}'æg‰¢Hòã,$ûùß,?ÿ¾\¤E—ïOPõX˜'.Åð;Œ{¨ƒ@u±;®Aš)]ÊC +µl£TmÀÚ§°aÊ-QŠ-!›Ch¢'ã,BÕÚˆ#•k» O øZ—‚åVÍ!T—¶ÁTZ‰¢”Zƒš'à‚‘–IÚF)×€µOAàÉm|r+Qœr+Pó’"7ÑÕgh–pC£\Ö>…°Œ¥¹5Aê­EQ,fkPóYñºŒí_`ê6¥ê6zçU@SΪ³I5„1ê6aíSx˜}»Î` €YŒz Të ŽÌ+I¤bë±yu …Ù#ì[ÞZy d¡¾Oæ°ªÿ†0ê–°ö)\s»æ*¸Æ)¸µO!àÙmý‘ZC¦ãìöÛ,ÞÐçÙ¨°‹UXwlcî¾ kŸBx‰€ÝÉRÅI¸„lAD†ÃÜša0Ö²8ªÄ5ªuƒÚÿS¨rKY¤r+Të ý¢¦QRm%‰QliC`ŒUk!‡R¨Z1j-Ž@/ eŠT•ÀG9²K}Œ ª€k Ù˜}²| {èYœZkTëìai‡&¹·€”EÞÆ Õ:@ÇFßN@ª­$1Š­1c( 64­EÑjѦ^Àqi|[oÎp—ÁÞ|K¥` ؽi Re _oµÄQж€Ý  Ê©É`57YœŠkTë Âä›|Ér˜{X"ÖGHÉ`#ÎB£Ì±>‚@Ìt”W.FûpÚò(åÚÈ­+&ò2™L`Ë,JÉ ªuƒŽ+àC\‰"U[‚š'0`y ëÿkQ¤bKPó´ß;L­… J©%ds!Œ²r:qþ ¤,îÖ¨Ö:MaOv!‡Qj‰XA f4™™ÊLïr {^]JÁ.vÇ5H©ªqÁIŒÒ]ŠŸ ‹Ýq ÒÌt¢FùÕh£TmÀÚ§ àÉT <\Õ í@·/Aù^ÍÌè½HsUL†ú莓½ŽOj:³ ÿ‡5B‹||{mf»^FxïÚ’³,©Ÿd¢zŸ%ì‰[]ß¿û寷öÏÿü)Ÿ]8+BåvýØìŸ„@%37+Ahôþ´=ªFêƤ÷çÔ}öS¨ô ¨¯íÇ7Ű,n(Pm5»½ —ð '“ñ$™€_ÈR\¹äýº¤ÁáB(nžƒèåñBÒ#¨$€<û¤Vùtì‚`¦Ê¥ êõu1÷—MƳu®:äó̦Æ8×°»¹Õ»w7 tÓPh»àQ0Ø#>rÿ­¡{Ä‹/0$ ÓÛ‹o„XyèXe7eþ-™gÐc%’Úÿ0jŒ&é¼0„ËÅ—µ´Vã;Uá0ˆ1y•LW’‡¹éÓ+ îF˜„Ô/¥©Ç Í#]8³¥~„§£Áé‚íJ„aß~¼¾¶ƒ&ÜbB@7ÙA¦í6€ÌómdÆn#"4‚£1!ñˆ#ž¯„>aç%÷Æ•°û‘?~ÿ´·”j<œ LôZ¾6¿° lF1G î t²ØÈ¾ýôñWBo _x9)gÐöQ1(Æñ¦4j Þ „ R; Î· O¦3 …[o# ûŒÖ¢ˆ±³‹±µw0ûÝ€ÞLE« 8ê,1«…Ýö‹£Ï”]^­ø_ïazrT4Û­î€/½÷ŽCÆŒÓÃíËá.M·±ÿæ<÷¿šWÓ…gqCÔQÿáÍ ’»Ð>Ín ‹‰R­Hf¸T:HÈhJœ2BR" K©ßƒöuïAË(GíA@Cö  E£‰þ=öî@ûJw"Àí?{Š[°X´†rñ›ÐzÚ¿óˆkžž­u›Ð>›¹£Å‹bž –É#CÉ2ÍÓ@ŹZ ¦Ïè—˜‡5£œQ7£¥”QËŽ¢2RÒ°¤¨ä‘ÃíçôÚ¬§‡âùæMƒWŽ9Gª²Ÿ æU}\[Kæ«ãì[‚8:þ÷U Jÿ²ú‘«CL/T Ó¨ÉôB%§2n]Â<É#A›1só6e£4èá̳}ýÊ©yQ÷å ׋/íµ{¼<5U‹ ž¸—|µê®^–R•ê»ÂR²tÔ°±Ð€Å¢åõªA :§Î®(è¾AiðQPl”­>_`ÄíàBÇ`¢»®v1/ÂÎfÀ(=œhÓiže¨ °›^+7¿ÖýߤÐ{p]Û™fû:®‹Ü^;®¡ûðƒðýêáÒÎk^]X“²ï•N&v Ëõ…}·v˜ªzÄÝS¿¨- È#wO¼L³Ù¤ìk·–šà.Ÿ"Lí¹÷ßðCÆž}¤ðØHá1¿óháÅ6â·t‹J3Czú½„zZjÙ:Ø\ÊKÌë" V4Yc"MæÎ2²Âì¯ÃªRe~s;M¢#onè͇÷¿^Ùm´y´€Û±kØzо¶•n–W¢okýP篼°øÌN+VTªØU½|k[ÿôã‡ئsÏé¡9ZM5)®*J¨[¶*#Å×iMšyB§ãsYvÙ9;¼€)‹²ï¦ìú¨è³&kçŶj;tX¬!çá©úT›”ea—е}¸ÝövµKméaJóé¿üýÊÌËù+»6ÓLiSµýkAe™"¤m—Ú)ÝqÿK/ÝCKÚõx¦æÅ¬á\íp·û»’îz%«ñ¨ìSw1Õ]-œZ—i ìÃäã|¶= å´^¡oùØÌÒ¥ÜE±çmü¬Nlf»MZi ä¾^°‘,'EqcÅnçôYûÍ/ßî0¿p@•Žòñ¥=Àt¡¬‰_aaŸ‘˜/“ý;µÔU0ÆU«Gl×äÕ(HêÙ¾¬%vèm­…‹Þ>É©Þî}§à‘Çнí’2g aqÈE c“hž¤±Ú¤Q¥ZÆŠ2šÁw·ñ.ù3vÉKÁ¶\òMGí¶Kž1i»ä'qÄ›.yNc"!Ôë]Wó=Y×ÏÂ)¯ ;MÆùi¸å=’%Ý»å½[Þ»å½[þÔ¤½[Þ»å½[Þ»å÷ {·¼wËïƒx·¼wË{·¼wË{·¼wË{·ü+tË×^ˆçÊ–µŒtHELˆ2$iÄCd‚•š™,\)ªA®ùßìl®¦¹©êÝà¯ûExãûׯ^¼ùf*»6Ww;6&5é ù¾hQÓ7®±ÁdöÙ*¶VvW=/~ÜÞ„¾/§ž‰;DsóÔ€ 4ý÷4`”GÍž{(¥Þ}1—W¿kãÔ³pëŸL®}ÈIÔZÞÁ}ú¸Lïuñ>VÌÀû½ñy}ˆÞx¿qæÔ=v”“ñî˜ßíÑ™^”ã åN›åYì§áNë:gêÀnŸ“Ã..¤bW×óë_2Û¤#Þ¦—éÕ’tµ:äÛhz!.í<ó:45w¦x®…(Ídò8Uv šp &b©SDŠ$&ˆe dl(-Dvw2)Gö%~ßåÓɸ>~ËRû¯]eÒÆ/»ÆËÎ"C.BiÀÃ(j-B£XDœ5Ö ‘ ,êI![/Aë~¾µÝ/äjí¶¹zç|ƒwûÛy­>CÈã3ʯò©×ˆ÷Ì?ª¿ªªXêÞ“<äl_¤3æ@‚/`ú¸6Å)ävÛOëñ§í€Ä\i;[ë0ˆ“$ ID”¥™.雯$#B(ŸÚý:R»CLj7“vRÚ³rHHsÒ˜–í•8ÃÃó²íë[™ÝË©åLfä§LìîΕ=ók,Û~ø,·ˆÃf)­/Ü4C-VíPQ·`ɺÇ¥Q°tU”pYàŒ^ªLîv¸\ZöÎt™‚Zœ—vJ2V´ºMJ—Zlú€v&?Ýéö›à7<|ô—è Ì‚@Æ\kHi",2Ξ*)Q` e?ãžùŒ+âîŒË‚€íq‰ í¸NÛÅT!‹Ò\Çq@£>~³Ewßšt—_ú¼kFö»v»_<ûâ—L†žæl-ïë©Ú˜¯§ê‘öõT''ý¼KTOõö_ßò0ÉgGd\FGcÙñÈKzlx4öxdŒ@6R0/fã€m’0ÈUÖ³I³BeQTý­$Š{@·ó/ÀmµR+:´r,0¸u}Ô1˜FMÝ*­Büê;\î1\­ £Ž€4j©ààfÊÅ‘°£n´‘²øÝUÑÒH÷@ÀÖeTÌ_(Ý7j³üA_Xå «öKúªg)¬Zúš°¥U]¸¸ª „•WuQ°«.Ê—X=B‰Õ£v‚yFÏ}”¤$0ÜÐ$–*Îb§2‰¹6&ÔŠ%ABY¢ ƒÑ ùZ«WQk%EwÿfŽZǿ󈷹Ҍ5w/aTŽpîo¾õóŸmÕÕ ‘©…LÐVB=Ü÷ÿuW‹^sÚÕW/Å×èë©€_OuHÖ×Sáœ~H_Â]u™¡]k¾ž ôõTÇÔS­èCÜâ~cœXÕÓ"èülÜØÊ>-’@s™Æ2Hí‘'©È¸$I …Ibg Ea½$zW߳އÓÿgïj—Ç•ëÿ} Õýµ©l ²rëÖîzf'“;³3µ³›LåÏH‚6ײ¨ÔŒ½/”É‹ õARì¦mY²Qu“É} €ºûà´¼)ž³[¨]®Æ¹ô M'òùtj~[Öí×·ø_GÓ¬Ô_¾‡ÊŸ‘‡ˆâ\‡{¬£ÆA]î7=DJ}!z´8ÖZÚõÕµ’Ú÷¥è¹¼=-ƒ½@íæH@=¿íYzdGå^‰÷ݨû·i=Žè1çs;Y39Ô¾ìŒ1šÌz ú²s“™IeõeÕ–¦O½`2›É¢øÖ—ç›Ìþ§×b_&iaqÓk¢Ç]ùÞUFJF‘šõZUi°´0û\ˆ©šB,'³*mÙo¶ï&.LÒi’õ[Ýd_{{•«?UTAŠîɼ°ÐcŒ9.s¡âȉõ¿©ñ¼H17ŠFƒP*vŒÕ¦æ^hjnÿaW_ð íx‘@sž |ƸŒÑ¤£ƒxOÇ˦äD ÑܱC¤äŽ;gSw;ïö³smê®ÇúHœW›º³©;›º{i©».…¸Ë=S4 XºaD9D˜hç4 (~zn˜Ä®ð&‰­;jÝѵÄ&Stó5À鸣øNK•ß¡>í‘^ÚàŠZ–èQ)D¸œŠðHýø¨õQŸ…zzGÔí1ó]Žä#3?ÙsßkŸsû‹öØöÚ•ZúŸÏöÜö°CØ+óta[t/1õ@^¨dÜõBßõ¥Kp΄ Š;.Â8’X¹¢±k©©–šºÃ%ʼn:Âgm5`ê:~@›©ë}ùѦCºINµ…v?=—ßGß²S÷ýÂة֡;Uÿ ½›² òÀ­î‘m[Í×–kj¹¦–kºÛê(¸¦;+ȳd”GQÂ})Æ^â;Ci("á“„¨„Ä$¶Ø™-v6À‘¢„ÑÎí í[qÑÔx'ï;ã×t¤6êœõ%ÏŽÈ«r)½Ï™?[óliikžjͳšmPmýŸªji$yœ(ž8L(îJOºI”PNé‘€ ’Jĉ -QÇu‹9Óû½îbNÜ}’n^@ƒv4—’OÇuõ~ GÒmU¹týÖ<\ùÒ“¥é\fY¡ôïäwǰ¨3ßw†-êOÃÔ©£ãæë<ƒeû` œãºZeÑ<{ â5ŒåÜ0æ âkA,ý ˆü(p“$¢"’.ÑO n¬7Øpí˜Y6Œeà ^£Ä'NÛãò„ÇÖð¸<á¿ÇãZË®mpaNLðú˜0Ǥ¸æR—ÝóTK…9e*ÌMöW:™Èñí|bân*×óÝ}×r_; „-Ÿ~Út%z—s?‰X ‰KOqâEŒÐ0p$#ž±0¢žŠ„£h9_nôÛ|Z-Í%½îæ-tEÿüǻߪëcN9*ôj¬×ìŪP¯ß‹ûR^Ér¤]‚Q¨Fzz‹Ge6 ³¬,Ê\ξ»™OÊt¦Íuƒ?|þxñáýHÎfzö®Œ¢F›uT£<®ÌÑG’ÝVܖ߯æS=…iï ‚.þK¦­ë¥È,Çqžš›öãâ¦?ú¢Üø½ë2£~@½KUðv¡Áöº¬ŸÑ-VH"Hà´5h(õï¡©çmoÂxù0Ícü ©ÿ6zÿá¿ß¾{÷Óèã?¿{{¡—é‹×¿êåúû÷ßÿúñÝ¿z}_´~MË»ó†EYÒ=EY('1zU\øXèYÀ…7l¡¿ÔM¦;Õ9‘úm<+2°á÷¯?üðÛï¯_b8KÈúŸ0PVçé ÝZ›#;×v¿1,²ëT:¹2Åtp j~Í$õ5Uß@]kc:ׄµ?BH嵺 U¬_#PÓ›Ë424t”-f8 Të„Õ!¿ÊÛ™Þ´\Næ°§Aûrª]]¬1f@MXû# ügêÝôºjök2À3œ6°û¤ùd2›Ì/SØS4Ó+OZ˜½"l`m{ÌÈ:Èo M¤3³[ƒute‹êäÕúƒjÏ Ú·ÚÙµ¨ùœ]§ÐŽÕ¦ÈŽ-@ÍÌGz£wÛ¥*`w´eŽé`ØýÒ@Úk1õ´eêj¹ñ „ã¤7Y…Ùú¦é-¨·¦»]èæW€FæÓÊó‘“èJ求= [@˜ŽoƒoÿÖØm!FÌ»5&»½C[#‡¹Æu>àßTXä_#ؤÖ0Æt± k€oo&êV?q°6­1]lá:Ÿ!p³g‚up>ÚÊ+Ò5ä5ªõ©ºÍ_Ü݆zˆ ¬™7Ë8úá`ÌPÝÎd ´i6ÚÞfùåø–E@„I²iY{gP@®”‰ØQ ½vJ ¦²¼†6ªGmu>‹e©ÆrRª|*K=åB¯Í"¶ûŸutSůÔLMc5Òác† /Ÿài1ËW-¾YGž%èðS¯Öž­Ùj¥ûðöâ5Jôá·ŸÓr -¨ðé=°ÙÏ„@-“ÈŽúœ›#ò´>—Àȼü2¹œM¾P`?ô 2&úîÁ.Y˜M³0_á…¹4Ñ*nlp.7OÁ?ôü…§^¤G¦y|Áun–ç­0·¯‹Ü¿õ |=—+<ð)¼Œ¢/ÐÒ6kÛïß\\|a A7Aˆkui]¿s€—ô2¾®¶N<{hÄ—YzÎ HÿÆü&‹ç…A˜ðx¦©¬#9ý* 1›-Šp@.fÐ5…ÀÞnL}¨ã*Ë„;ë]¨ ´,Æðû_?}Ò¯; ±! Av@§ Á# +TYkÚàh¤æ\à®o½Â&Z~—ÆæGþøýí;èÓR9âˆÍee_m° ¤¤È$‚½²³I\-½Ž[VŸé@žÀYßÿ<¨æÝàZqÐS-ÅMz£`÷Ê1§u1w®‹ÌkÐåí¢ ³[Qgƒ…!æbµ aWAà~ aüýÅçÏ?ýüö ÌÝj«‡ðóg`ÿ>\|shÌ)g1œ4q¬ŸÂÓ[êçéP?£PÖ¤~úÌ#»©Ÿœ—vJ=0—û§~ó¼+Xô©”š“ð»ß† ñáeΞ ýSMÌ“9D íPìOƲ?'kê%\Ðeƒß‰F®ÿ‰Â6X˜Cqƒú¼ý‰ÙZ’4‡`ðýÞA 㛼Ía(|Ÿ÷pEá:\-Ê(¢ë fç ~¸;¹¤p¡°¥£¬Õà}CἇkŠi£Šý!:Ýæ„Åá‡ÛÃE…·Ó¤¤b¤ÅÚŒÑÁ@üÈ{¹ªð–Ö„ÒA }ßEaÅ´°`šÁ êñ6f+¿  Á êï6Â+\¼®ÅGŠÃ÷»‡ o§MR 0‚>z,\ °Ã\ŽÄÀš·µÈz?4~<2-¦Í§7¬5íu lÐeØM¶·ÒäÃCá{¾‡ƒ n£E’Ã÷|/5ÞÊ"äŠéw{Å–ŒÚA ×f‡ÖÂîÈËz-{q×]^²OU“ƈ€-øŒĒ؈,ŽHƒêˆ•ؾuÈdƒ‰€µèx\‡‰n`E)ÂëÎ?c¡úóðQ•Ü»¼BÄuéÐ 1ѯ&Ï£¿æÕÌCsš\BÌvH…8h—]ˆAO4C ®Ã7Ä@ÄC,¬Å@Ä‚‡ÌN"Ù!'b –" :øATပ†D(4E¤f–á+ââP¤á/ÅÒ¡ÈÁ@Äërå»LÇ@D¹—.ïq(pø ·dÅo†j±"á1Ê9ÝdIbÑMº$[ó&Qˆš@9¬BÊ ¾¬Ê’YùDÕÚ1%g¶â1óHŽ®¨´¦Á §ÖMnå`(â²lcZ#&Ù%9À_Øl%‡¡¼ÌAø&=ó¨B†ÇTyè©Û¸E~î# É#â)®B_IEˆ†ŽºLF¾bTy‚ [îãsã>RÎ0²—Fæ\ø†ÖÖ$? B<.H“ü¨¿¾Ó£{©nˆìå‚×hËÒï«zyÞùÃ~ú"wØ&{”Ô¸Œ¢±Ñ(Ù?¯ŽÔ˜|ñ¾8ãb>©871@ó4†IN74-@öóé_i_mr „ž"®Ël66/m¤¿I<Ÿõ6ÓTÁj?P¢è8׿1£áöÓ ·>ÿÂÝC,ÒÔ•N yàù<.I"W„}Ç$¤žÃüÐ#v‘~v‹ô†65s¼‹´'/8H›š»Îþ5º~¼·/ÓÕ;ÑY¬k{»^7§¤Rí3_l¬ôÈs €\±•Ÿîd\­ü´•Ÿ¶òÓV~zÃÞÊO· V~ÚÊOoÚ[ùéýXùi”µ•Ÿndt¬ü4Üö©ä§kOÜrÖ³Þoiw­â.ÀÎ*îZÅÝ}«¸kw÷Z[Å]«¸»`YÅ]Â*î"Vq×*î®AVq×*îZÅÝ}ÆVq÷„ Ûã q¦OË ¡ë2”„ˆH×OÂ(¡’'Tÿ¿Ðçžþkä¸B€8a¿›ÄÂdÁ¶Ò—v´fv= JØïWº7ËÖnc)uFºG£b>›ey©ÞŒa®ÿ^ŒÂy9RÓñŸFß®LÓiñ]¬&&{¡ÍÒ©þm5ºÑ-,[|^œ3×ñ:œ3ßmúDÎaÂ#®ÓâœùBáòåÌ>ñúXáûgæ…³„38áLÏm“4>N®Yø~kŽßžŒ€¦@Ì£ñüpå¡G_J.æq7‹(çO|§~"7~g£Á£ÝŤžÏ"¼ïÉHú^ ©PQ@=åøŽÏü(>wõ_„QW¯?vc÷08Þ| 0‡Ûª=Œçö0.ïÙØW¼ƒ1ÆvÿÒ@œaž8qì.Æîbì.æøÏ. “8n(¹,vN’ÀgÜqqB/HxD¹çE¡öhÞs;šÇT˜D?z‹Ñ“PQÏu½æÑ<‰  ÷”Øɳˆ‘¸gÁ°íÅ¥žg2³Æö³ély!¾ûBVÕ–B¡'¶¼€¯dË ¡Ïü ÅÙòBƒØøÑ’-/„À6? ð¶¼ÐýÏ9ÂÛ±å…ly¡žV¶jÓ–†²å…ly¡xò@å…ž ¸¿"#Òêv&K mÅdÚÞfùeuÃtˆYŸj‚§š(Ð^;‹PSY^CÕ#„¶ºM•98DÒÆœYµøf“gø– ÃÃ-~Lëge²µ¶à[kk;îkmQL¥[§k/bÐ5=™J]¶ÖVÔÖÚêM<¼˜Z[¨9ÀVÛÚƒµÕ¶ömµ­mP[m ˆµÕ¶–˜¬¶…šúmµ,ÔVËêÄ*±û[-«'lu\Ìb|äÜÙìÒ–ßþ»a -Xºqšÿí窌Î/suÿýÜümiúÔ|庲ÊÓ²–Ý@Ä!õÜÈ žšð„Æœ$> UóH*‹(¢ ÖòŠj|þÆ0GŸ^ýËVþ¤úo†EüÊ\›lV1žÿ™–†‹\1º ýØðOë_H§úûÌÐ<[däçE0vní½cæùÄÓoŒ‰`Ä¡,hŒ‰ðÂü{Œ«Ç÷eÒŒOçù;½Å‘yªŠçÁ7fÔáþ}Çã"¾0·£ sm>‡OTÝR%kG~ œ[6ƒÍ§íúyãßõª)0‰hO~ Íɽzg3'š99pdXJb`ˆÚk=Ldå©‚§è‘³÷°ý®Þ?ÎçE^M¤«VÆuº±íîµÌÓi4™ÇªY.>ç—åõmiš3¼ ê_gW÷oikCOîîÒý˜ÍRsšG £$Œªœ@x!çDш ?I”#I"Bý?••ý°²(—Yÿ§í2ûÄeÍ'sCöƒ ‡=„ì‡~sÀªÚöÙ{ÊÃäê×=ÏïŽÓAÑø„»ÇVîÃ:}ǵO;e¹Ýáóí^'‚ÄIì)fÄ>¨ =P.¥£œ8 CÁ|˜ðªÃF€¹Â÷(ëÄÎõKáÚŠ{q©?p+°-pþö÷Œšó¦€2F½Z¦6jn£æàûf7Pƒ¢æÐH2:â|˜RlÇT"íèÊž¡Ê’MPU¹ åà唣ˆËa §u}‹#ò©lìû4bß;ÝÇC‰^3Ÿò(¢ŠJ¦\×q©«”ÃBAbO I=/¢2Jbë?>©~tWÜq¯~4ó„W[þ#u}¡Î÷Š}Ðýþãném䋾§yôZÒ†|åxÖ´n¤u#­iÝHëFî°´n$hÝHëF´èÀò.#¡ï“Àý8LÂT@«¡‡ ‘ø‘£xÌì쎭8p:N©ø˜¤¦Ç©#Ü ]qÀ%®p¿YqÀ¥¡ÍCv¨¤æËKg>?j ÷ð>1µÀ†kÑF8dýOh­å4Gvn_À.{)à0ÅtpGµ€~`C£eŒéÜž²€ýz«@¿ýZ†c‹ÎNÙÿ~hWïà¬5öQƘí‘õ+y €‹ÔTÏGšc†Ó#Ûh ©×ð§ZÒøX{ÌÈzeùM¬ôð1¶¨NîÒßAkí{„)²kÛ„öAÀZäaŠìØ6E}€³ÜT°Gšc:Ø#h ¥SµGuµO#¿¿‰Ž=€é.@ ¿¿‘-Róƒ@˜Ž#TïAuäZ_gænUû~xCKeŒéâùú~pS1géâ^z|!ϰ¬Ty@v 9xŒ-jÈ»äç8çcuç70Vw~72·ºó‡±Î_Ršu¡;ßoÙ”›ï·^¨Ì÷.Åå– My€eCJ`];ÐŽzñýÖ-™x°yGŠ[‰;Ÿxv–™ìj¬œv­?‚ÿŽ0=ÐÔ£D1Œ‚µ>Ì›‹‹/ 4èÈÕà ì7aˆ;ÓÔÕXwäôAˆ®Š>4A8ºšùDC*hÝRÈbsgGèÈàCÂìmõ{P`y»×Z÷€°2ðE½Á/7øåäó€*â`õÐ=B@ƒÜ¶ÇBðÈzØU±Ç"<4‚£ðˆ×7€^᥼<ʸ­Eˆr·Dèömíy ¨)9€<#o%±]ÉÉ@Ky€éaØ[yg»äÛP lŠX(Û² K¹v„)b:ܰÇc ãÝ&YGA&Æ…r<Øs±:¢ôÄ13V%®ýä¹Î‡+û²µåÕ,]U„µêãòo8*ªž,Mƒ,SNÈÏ ’ÈQ¥ •’Iâ„!§Ü¥>ã‰+YǾr8ŒŠúæ×ï_þK…£Ÿóì[¡òÑÏÒC³ZµnÅT­kéôrôzz™N”žúzq¹jvªù™pñ3F4ÐüBÝWª¸.³ÙÙèmYŒLZ12dÔÂ0N¿«×i”–w†ijˆtÓXæq1Ò÷JÿAN£½‚zú†d£ªÐÏd:z“§¥þ!Þ˜?üXóf„Ó ðYNGï²™ú«²º•Ó-6WyZ”ú§uÃy]U¦ÑÕLm±ý)–7£Ït‹ye¦Ÿ³›«£¯ÅÙ¦í(9ÿ’Ëéÿýo¦¯Øoú“ó õg’Wv/tfétôË$û¦òXÞÕ=ª¿ý1Y~{Ý>*±vÕ±óYž¶8_¾0û‰¶L§{ú3àFDý^td‰çR¶®ç{mʺÜh-»9^¾›cóVÞ“Zû¤$Ù_Uù-˯õ;{®ß»óÅë]@h³39“wK›Ýq BðÇç¬Ϊ0 ª¬‰VÖs‹yØ \…åP6³¸{§îÑžµÜšL^¥äVÉdØ8ÆfFÞ3˜žäïžX§ã˲ïxÌÒÐÌ=¦i‘£L_£¾kÚ3|ͱ^-z›]­©¡e–MÆÐm”åÊøÉ”·,Œù$F%¹aÙ¼t$?ýÌè#æ<+달ÐÝճ퓦Jåj‰J•â3 …9áó(éR9ÓÌLæPû¯ò*G“To }sæR¹(ˆÉt@/i ¨Ãþ6S „ØLñƒgŠ£ünVVÆÎYpæ÷âp^Œ 𽨌« 9Õ̵* ‘ØŠQMo?v>\¦KþâÜÕƒæÏO>£f¨ü·vn1_>IKPñP¹õñÂãCw 5êZÝ™“Íâ÷!Ð8ò@ÞËÈúO€¯ B'äX³¥QÝ,?ubÕæH·!y<í7g“¯À)žN­_àÞ° ÝÍgãiV¦ÉB<¢ÞùnÒ±çþVÛ)„)êa»Âqí—— .Û…Ü.{à“,ºŽ³oÓá-TkÍ`xp©]gTŸ:§;V·¥šVG³ïŸÞ]@™ÀéÔŠÄ#"ÂÐUÂã“‚"TÉÿgïÚšã¶™ìóêW°öÉ©ÏR‚0OŸc§o¬M6ö&Ù'H€#ÎpLr¬8¿~^fHÎ…hŽFš‘‘ª”m©’ Ð>8M}Á˜Ë]‡h%wXÝõ:KS陪ުÌ뫇®—ÇÝ^MåocÙpv_e†Û\ïú1~gýçòr¿'â^ä*}û»ªÆÌÊ,i]gËBX?Š¢\Ê/ã¥õk¶X.¬ïÕ¸ò×Êú i÷Y\~Ȭk1_NÏô&å–¼)$9 Iú¾Âú#IÓ¤8É\+F½J-Ù>¶;b4Ã\k€BûÛˆô¨C=’h]’:aˆ.Õ§r1£sÍÂÞdY!Â)FcÏøR²ØCîÄÊlëå¥ÊÆŽeÕ^y5q«»ÑZä«™ZÊ™I¨Ž“_¹šdsR>úÆUÀjjý\ͬ@àjTÈñ¬¦˜ekঙ²a(%¥#—Åó‚²É<΀¨eq;í•B-•Eù%Å­%-?€A/)ר2̲;ùçð¹–,¬&8L~Õ°Q·ebÙÁ*ØîþXÇ&Hlž¶ßÐ>®ÄX´tºôƒIÖO׃Uð%'G–þÄr.û»÷¢ÜFp® y®Œ†GL¼>VõÉ%°ŸnÇëo@gÅBuÆÕXŸvKøqön5÷˜Ž¾Ñ£~¬Ç­ßçïæÉW^ür±H…RÖ»ÂfË[[عÉS9,—+eû^Ï“lâð,zBr~äŸò?_8ŽB˜a›Ê¿È(ÛÇ4pXè8a¨µÓT`¹õ&‹–êÕ°É;8›LüïÄÄß¾WÄW÷Â7îeµchhüÏ€ÆO!4~¹Ôî«eûØÅ=­lß ¼÷ctgI0Cã?A?ƾ;QñºûnŸ€”¯qàÙ‡Çu“N0ßó7õ>zÎñS>¶/°ÍƒÐ#>!òÏØ—žƒú˜9ÅAº~kR>&ås@Ê;ý”ƒPàí\—qUF±Ÿò±]§ŸòAþH]Åú#ÍúÔf&ñS­ÌŸ–l®'˜ô±ƒ§Lú¼øæ…ç„I©Sÿa3ûAoMØ–|4±+1hbG†ÒÂþT ¥m9#|Gòж,¾#hb_^ ÒÌf‚ ‚Þ™i4²5åÃoæžtñ& e’P& u"Qá:XÙY¢+w2V¥‹¦bÈöØ`¹[g†&Út’>¶—U\´M/ mž ²|¶ '¦Î<u éf—&Â&ä6;¥{Q“¦zViªý{O‰K½ãï<ÅnÛ±#\LjÃC䇈Sç©ßQáò€ ³ódvž&ï<¡€ý'B(îV>ìqq‡Ë±mçI}B£ûNÊÈì:UûJÿ¨ÁpŠ{N½=ÆGßs2DcC4A¢ñÌÍÏ>k³Çs{<†hlˆÆ†h¼{+Çìà|M;8£õAˆCHc#ßF‚:<\Äiì{,ô\E7ö‘?Q <<®ø±ȆC|æbŒQÇ!âîæL‚ ·a„mäº~gÃÛ>Û0R•ªï{À‚=˜§ôØ»CÍ5Û~û. s–'¢ø¶úÒt6…¾ÜÜðœJ‹ædXÄ„ôõ 'lU¯ö xĪ qsñq§b–êÙ>ƒ㸞ѩÔ‘ƒÿ1œÁ| é„LD4t‘ljùb.宋1 c!iꃨާà<œA}êÔÞé¸6rÔg0»6¶i€;~ü ºõˆ¶9ò»ÝU¤YÏÎÄx¨TQr“.Áp½Yã‘6×x­%¶¹­ë:á µ€ò,RñåÇ1}a1ä(µÚŒùr1^Ü"Š.£ýk̪RÇmÓV~W§Ÿ "‹*ÅÁ€Ñ®ÉQ›W–ãÕ>–¥n'Ê»ê0Ø~«U™­6ï¸P)Ò¸þãͧ]ß®R„Öö«¨½r™èbîçѶ§Y¤z=—KTzùçõ»Ë_Y^Œ~kªÁh5Ü)”z7¹\Hçmýa¨uel(nËþ@Üñr–OÛ£Ò”¦Ÿª—«}`óÙ.Gˆa$vl!μÀâÀw°ëë‘3.­qi›7øä.­qi1<ê‘~É;Ûó±ß=.ïH׳G\Ú>9ªïÓȉúŠœÚã–¼³MÉ;SòΔ¼{¢Ž<ƒ]ÕÔ”¼ëYš’w£SòNóB¦ä)y·ÏØ”¼Û´5%ïLÉ»ö¦äÆ”¼3%ïzSònÄ”¼;£’w¦r©\g*×™Êu¦r݃ŸEx¬ ­°…Ï =;b! m2Bˆç°0`T0 ÏŽÍIÕ1“¡=› ­ÉÐì ´yN" PvvÛ9„3ËÑx á´R³˜©©YsáDSeÇu™N©ÊãNŒ#N|7ˆâÈ‹¸å„.µBØó¤·àÛ”B1¥Pž£ó=Æè ¹‡—BÙ8ƸQ åì1>ÅëO3bßwu&LM”½W0nÃánã1½#LEd»^à³HøÌu<*8'q9GºQ„Bdœã4ŽDˆpÀ6lÕ1³÷r{/ÐÚõo‹î$”íѯ]¿…ìq^Õëäzœ\Ñzb†ía¶bNÛ#xZ¦cÌåÒO‰O]±ã8aƱ‡|A„8µ¹ƒ#näyTÇŒ;p&î¿A1²}¯çÛõõ:‘kÓýÁÂaè§Jß°Œ'V'Û!Ó­‚môz:[F¯§)£×sNniG¯P‰¸+Ü… |øFÊ€h5} FÜé¨ü`¹r­ûAu€ °ž8”‚c×Ú@`ìJ$Žì¨À=Ù 8n n`%¸@FБ>ÔïߢÊ3 A®4z ·Ùë ;ª=PTG¾M¡ˆVhY)î@鲫ÁÀõÅx ÀµhÎ$P+ÏÀ®åv —èîÀ Cº£Äõ$y@ÀŽ6 ׈ô@@µ´#Û†õõ{Àð®ÜSô‚§¬4r öT@Ðé_ZO\ @3è$9Ðû-á­ðàr­RK }M (°/EwU‚ ØV.‚©uƒ@ˆZ@Y) A@­¤ÓÕî™›4Œë  ©F&èâÙ  ìúºŠ` Ý„ôu󴬨¹zmVñ¥(ÅÌJÔŠê ŠûÏ +éôË>\¼¨áß4¶W–õáVHÛÖ mƒåÂ’þ‘˜«–¸UfêÛR}VIï‹PnuÈ0‰„UÇ`…õâýë÷oUÚð·Woß|cÍ…à5’E‘(êó y–•U—/ê._]\¼[™üUnÝg9/^Z7b.ò$²îD>iaÉ€Ç E•Y-­ûD®ÿËÒây¢†Au«rô^T—–ãmQªŸ–·¬´ÚÎZÕïj€z$¬é°¼õïe4¥”º¥úrU¯ Õiå¨È_dÅê_Ê>”ò‰ÊŸ&ª[ò7òO¹^[,”ï Ì.çy{§Ý©Ó¯BÕ³½úùº¿½h«î@>ÁðKÕ JÀK¯@™æmW¿Î­sõ©¦éëÝÛw¿|Sq ’â‚}fIÚt¬Â77(Ÿ@‘É!Åênv{S_¯뎨ŸÖ¶‹¼"tךּSgTŠîEä%gÙr^VOvõέÕ;ßEvx_Š8–cîd.EÊËŠp_ýõßM"wÅx¿,Ø|.¬_B‘ߪ7Y3â<»Ý°ý^öì–Éçg–ÌyZ†wf¯æòÊgóc¾óE·-ëáFý`Ãü'uýÂúM$s95ˆÊT^El¶›Š¿™ò6dË,n›dq×ðai {ø ØÃØFé𰇨:º“¯à£ÀµûôEÇv‚î!ìº.ÒÓ›h'}•c¿TóõùñÞWƒù[E7Ò¡#ܲT|R6ÓC°ê=I›…Ðögkæ}ëêk=ƒ`ÈÞï3ªyZÃLÙ\VÞÊXª>‹1“’19Å%êɘ˜çR®µc×ùR|VogÄLÍc¬‘Ñ:a)úgm¯n8dÚÜMV‡Æ£þ ’}ì5î?Oòÿ¬ã¦jÝU©ÅjÆ¢<+®ÖÊVkÙõÕzV½ÔdÑ&Ïnu!Õt¤N@ë™çËù¥úçûŠÓ¬ÔµG¶Ïpäöz6 Q.{-+gùãr!½µÐbX 9k>-¦¤Äs1â!AQ̹ 8p9·‘G„¾ðmÅŽgbJSš˜ÒÄ”Ï#¦Äy1¥wÆ”ØvöA¥C<¿T:ŽïŒ•Jù`g¨ô<ÃÉ£Ë`Ϫ_ð°ÎøÓ›ÚçJ€”î¦ù qæD¡ãžG=á²ÈEÌv¤a‡§ˆú!5¾„ñ%Œ/a|‰¯Ô—ð‘¿±?-Û¡½ýiÇ;LWInúg¦hx|gâh[ÓîDÍB³5m¶¦ÍÖômMƒw†'T¶>N-h³õl¶ž3^„HnM 9…ÃmÇö|!BA.hè(¦±-=)?"f!.špÑ„‹&\<ùpÑF„‹®ÓÝÀ†‹ ÃEß±ûᢠ)÷†‹Jm3:/ 6`°x“ÉID^!?6òMÈhBÆ]&&düjCFý™è¯y?ýÝqéñWªeäò­zóòZ}ÄrõÊË ’+÷*h _À‚BLãÐö©íx(Fù‡tnˆëxÌ£. p=æÆB/(Tñ[(QÃʪ㖟ßü _ïB¬d®ÛXÕVR?7KÎx»QAB$¯)=ퟥ§XVŠŠH¯­Z¢¦Š£¬b¹XdyY5ðê—wÖ‹_Šˆåß¼´Þ¾þŸ—Ö±P:-*`ŒÒeªþ˜e7òëüÀÒ;itýþ¿¥÷”}i*}Zéý‘Ȉhõæ^ZÿÇn³ìå…ôå«Ju·¿½Þãÿ«ûT·÷A°Yå#˱ñoù+}x4Ãæ{% ‘íøˆ$ m×÷vúÌ®/‡;ðš=¸é¥Y|dxÎU¢eß·rY ÷Kr†é—]†Í-Zù`ÜßVb¢wPW»û`;Ïñümjc‚§ùÛÝN©ïù»o³E©Æ©Ö–»êÛY±õŒ:š§|chÁ£ÙÇú:Y©À%†@r®ŠxÈÙð®€Ó„‹…`¹Ò‘ÒÏe)’EÊ"Ã}®÷Ë&\2·ìs’å µ¼“\á·_@ÀÛäæ6•ÿ—@T!ŸìJò3˜—òßpwj²ú„˜s½ü,fB”µø –ݧòQˆ9Xª:Dq\k²`r4©ªc‚Ý‹PLb®5–“ìã_•SÀ“"Ê4“>ì”Ìôm5'€)ßoóÉÉ÷>‘Ë×½>$›Ïë gr*-—úý«Ê™Eå<+ûÌk˜±$ÞÖ ãK}cµNß'…þƒ†Ì:Ч™m¢Oú¶y¤m[Úæº3W3k 6¿¿­u)5ZóÜ„9nÒüÖÎmE °Ì…æÁ)s`ƒYh›~QQиuš„5 ýÐ5V¯ùc¡µF6.S‘^%”¢ QîjV»0º×Ê“è¶z‰<),×y{â›Í]çÝñýCì;7{]¿×{ ‚¿ %3’ÛŠdʶ¢¾pó´]×\%b9O“ùÝ{Qnë¼sp™óÝÖ}èíÚ7¯ùµR»7mõ¨Ç-=èqÃVZòQÖ°Œ–y‘åšSÓŸò‹×mXŽ”Ê˹Ó±¯ŒKÍëÏD÷úÉ\älÆtïL®.\wÚì*ekX…¦%‹R]˾è¶ ,uûûx9 <rE&œùžÀ°;Rž‚¬â›«­NÍEz ÿ<hT˜Ç ×JÊã¶1›iöw µ¬è*,›¯¥Ž!¶ ÞSü7Ox%“Ž5:´–UÕðÎX=ÌtœM.T^sQ“Öñßú¶U9X}ób©o»LtmoËYªk›dº–餻¹¸/Êeƒ¼ÿç*¨ð Ð½ŠR&U[ñÚ·â…èß«LM¹®å ™iN.AbÉ¢úët¥ ŸV›N:O¥Ï«gºÈŠäo]û•®†mGíf z¢[:^Æv5^ à§H×ÃüT^ÎJM¸£Ï;nÜÙÕ°^ëÓ‚Œ»b¸0`Ww¹’¿7ý,g/Ý!ÕªÕ2×ìÄJ–Vô•–7ýGÇ.?6cGý8 åP”3ÿH:³NE®®ý¡¹6ºÂcæÐå ‘ºyc[î áÊlI¹î`Õl±¬÷y¥¿*o´ÜÍ2ê!ï“ùB&.Ö&Ÿ×À(ªÒò¤?Ö¥ß?®{}Ùdq/»¿?¤=õ>ä,RIýk´®éW³àí=­ž2—IûtËT&nGÈvŸ˜PÑ(Â8fØŽc»‡]Ç •ék¢2yØéS™läÛ]Ù˜•ÉCžëÑ>•‰º®íôOŒS"hÐe2×Ñ€%2©Ã'ðCGe2!ÃdÒ@&Ó.¨a2í€&“a2&“a2&ÓÂ0™ “é©Ó†É4r»†É¤sÃd2L&Ãdj- “ib˜L†É´&ÓvïÌ0™Ö¶†ÉôÄ¡‚a2í‚&Ó¸µa2&“a2&“a2&Óc1™ªwqÉÌCQà…<¤qÄ],8ˆïø¶m‡vÀ"ù ½:㊋Ó2¬wrÉay¢¯ºû[=Yp+m‘ÓH)žÆ™R?Uœ¢æùß]\ ¿R«ûž°t¹èýH^©÷o•Îê5¢¼êžÅ§¥È¿œ1ûHÆu!¥€øJ4©Ç> ×ÁêäO|¿×ÊŽÒWû)2ü9RjuÒc %};øÅHM,„܉5±ä;RŽ•ü\Äg1¶W½ -´¬«.´l¥Ã«eW|J“Rïò÷òÞS¹Ü_–Y6ªVóåBŒ=lváéë‡AY´u)ô£¯G¡ëpjÛT¸6eÈãÄö¹°Ù”Êe‰ ‹|jˆ´_‘–ºöHëxt÷Ræ! ‚zK™}ב«Wg-³1¥¶\óö/fõÀ׿ÒÖæÏ`›D§ Y*§Ÿ¢Óä}½tZÝâì»yµSZhøuS ›LÛ)­ô({Sro'´±AÂÐÆ€¦7¡….An¼eËMou'´ÑòÞ&@kJÛ`ß6ß'»Mh¡Çd›‚ïÒÚ&àû7í6¿ÚÈæž. ‚ÎUÍ0[ØÁPì&MÞB—/ EOœ‘¶1ˆà†J Eu8Å@褹sò¼Ù¥CAïZ8ðŒ¼II†Baù!“øaø¶ N™õ™ñší;Ôf ¦å8ëÂú 0jHe€7°æ4À±Cr¤…-„híGm˜Ñefô3£ßLK‘@®4Ñ’¦!†= thÔX˧†`ÖÄjª„NŠ Õ„èp®!¸5ù„Z³°!°†Ž €´¼l¤OІ [¦6AßÔ }åNÆ’éÈ+g2‚ÜJŸ†<¬>€lÕÄšY µk¤Ïµ† »¤k®Ã¨€º|jnE¬`Ö kˆß×R­!˜çkÈ×0К… Ã5tl¨áeC@+‚6Ô0µ!¿À£¯ÏÝ6!ÐH k¢7(pê1¾!È5õ‚Úà€À3è¤7`…ƒÖÙ>=pÑMž8¼"Œ1kæ8¸¢C@]®öDؤÒr½]“¾ û€êÒÀ!°S{ªC Ÿ„ïòõXÑÄ^óÅ q†ƒöoE%‡`ZN9ó–¹a™oÃÈQ¡¨6Ë3ßÓ¢zS™æ{š=E®ù‚Í>ÎÔã;H"]·ý"Ýî©ÆQbŸí„ Ûws$<ÆÈ‹?rmáÆ¹žÍ‰ïkû^Y¿¾º¶®«âÊV©X~›ËËÛ³~ÏÒå¬!3ë ‘[ïå')oFŸõ—V]¹¹"ð%3Á-y 1ÿœä2ä—_qQ3ùÞ_o½xÏf!Sô­ÿgïÚšÛ¸±ô»~E×>l9‹Æ}ØÄví¤*™Mm2¿¹Ð ´Í EjؤmͯŸ4I5)^€–H¶(LÕ¤d h 4Îwnßùû6ëìo¿ÿ¼úÛÛ_³W.  p·ûó/zZ_ÿí÷ße0'·¾ÍÌÿ>~Ëæµû÷×aý9›M28è0ã+ïÕ ãîÙO³¬Òåp4ï×4rÍAû¿Ê¾,Þ|R¹¨ùº©ñ]®Úï£Gõd€è~ +æB ?Onlfà-gz?¯Ý¯G“ÉmÇðÊŽ½ÅÖÁßÚ‡?×7¸xðW O‡pîáz¸Ë¾N‡³™m‚$áå2X`˜ÓÕÏîôfð•Lµ·yR²7û €AK›:Âc‡Õ„ô ð„Ú²éÑ\Ö_&Sÿ¢?þönpu5ÉÞÃ_îü2ú£°\œÏv8Í&_Ç˵qMݤ}ÃÉ&:¶ÖøUt‹å³ nu]Èþ“y[4šÀk}·ì»Z´ÛéÄ«ÛÚ*ÿ¬Å‹.SŽÆ?˜ûûŸÖÞúFþÉ«áQ0õñ]¦ºC©GÍz/‡^î°;Q󱟈uótÏ™Ìg¯3ØÜá,«õh´XÛ•2ôú Vmè#JÝÐ˹8_gfýòஇÅȯc5A×›Éê\ÁÜ®|-ø $@‘ùàWÜê‚!üLàë‚}õ?fÈOÞ’¡_$wö®ÆÖ­™ûœÝѨm9Ÿºm?`WW¿.¯­ì?ÿ9ŸÌþ2wöY’[7¿pßàë ¾µ&ÎÕ­žßI8÷OZÝWÅbÿ` æˆÏÚ!¾ËÉÃ-ò*û©‚½±“±õ§S_9utXÎGzÚ,_sÇÀA­¬ßúû_g•µ°{Ský]ÿ™Ý¸Ÿ®š°^ë¶ÉÍ× F÷—[=ƒ{¯%Òîþkÿjƒæ(À´?Ù 7ûo‰DTäkŸ‰` ó=9$˜H±vKÎy;„ Añ[Ç]»’W×Næ\;iËSûsY;Àg‹­mòDÞ´r¡îÿ¶Þþ>HöÓdRÛ¢ +í¶%{‚ZÅÄZðowo¸« Ry­š>ôNïÄOᜆ+©:05§^{Øu ¡³ÀzR ×Ô¹A¯?üòóõ ,_þ˜Þëgî\.ôA÷2Ì⯼Bd3KWOŒD›N²hçV¨I3ÀÞÌû³lù ¦ ªÂG´sq´iúýɽ„èîõý×b9¬ê2ºÃê›a]ºݨíl~»mž'´Ð¶Ølâìî ¶ÀâïÐÑkw],Zºq÷5›n·ŒYq0×~6ZÝüy¸Gû& ÝÍìº2¨Þi6q ë¦å=ÎÇ=°.\SR ·Úbafà…a’0cEŽ*V)Î$*8Ó iª8œá°üÁdfHf†dfHf†df8®™!Æ6Í \Èf’‹œ¯—Éaç¬]$‡ ~ˆ¦b‘Ù»!»ZÊs|.ïó49LF¦˜ôÅÜ ˜XøÇ574{~b£Ã‹Sá“j~ÕüxdÁIŸïŸ>ßßñiôº¼$ŒVr,óJS#dYnói+xÁ +ËxÒë’^—ôº¤×%½®z•LmêuñzB9]/ÊhŽiéu xۤ׽<®†å ¬ãŸ}ÑêgOàD 0MÞääMÞ÷ÂqÞä”5¹WîjíuÛ®õÈá3ÿJíDþj©-\-x`èÁÝ8û0àeNß¹vÌû+®Ö^üðP_ô¶ùù–Çæè¥HÛíÁr8„æH´°œû–’îÎW] ¶†æ&9Ãm8'0Gòžón¦Õ§tí¿†kÙÁÍÚ^F¯ßŽ4,Ð_²å32ÈûR€Ô‰7ͧ„ó@A¨ËI¡Gf ô¶-è=†)fÝžŸÍÙp?kÿ¡¹ãzÀ}=„O8´ÓCè¸ó2~ è‹»ZqÜh-áKÍoÇzÈ>Mm裮óè{C¨³‡hú¾÷ýü÷Ù±éüRǬÄt’*OÏWó+ÂÔOb·`¯Ý]Æ9ªÏ2ÄK·Ö6îĺEMqÍüpÀÅhUüæpÃ@/Ë›ƒxûÕaÖL…nêõ7*hÀÆ´ËĵŽÚÈ­C¾è­þƒV‚¥]×Á®ézt¸ºqÞñ¯S}²'ñz;WàöÙ~\µÄs»¥¿ïF¥ 8ºŸ¡éƒ*ú}ùÀ­žä­ßÔ ðßèØN#}k»¼Û®é^g`ÞìœÐÖY¼ùÿ÷?¼ûå}D‡r¥ÓŸì`Ï‹ìê;-t§nvzVÛ§ÃHõpÜa,ß+z43×>ì"¾ãÝØƒëøž0O8óŸnAÉŒcßs½sôØÿÐ_:l¾‹„‰ï5Ö¦ÃºŽ‡u울.Ñ㬌?‘ƒ­úEx{;«ö.¾ã´* E²èòšwºžÅôòWœû"âZŒ­ô|´+ÖÈ<9Ù6@}W7>ð7¿Í{_Üsõ¶ܬK«çþ{¿A´lH^»ÁK½/ Ê÷™–!OvÓå®`­õff_HÔ}³ùì`DTà+øe‡´ŽýÒ°‰î ié ¢Ÿ/bkb¸æÇ’Øt÷@˜¢R\ãRؼ2¢2´dØjMLn•É+K©4FË"Èqo5‡wÊ~to÷~lbœëOXë3ø¸\èÕÝdî þö›-ç3Û´)'Æfõ­-‡Õ°t„ûx ÿ E4Òd\_œÉŸ8ÆÁ–ÉŸç9'»³J(Ú¤(¤|É‚ Çz¸×Ø¿ ²Ør†[vêxJ‹¶éÿ¹ûÿá g=1ó㜡u%-ØÌï6ôãjCc<É[ʼníóýoq=7áà ib Æ—©^3ÙÅô[·Ý5*>²ˆÈ«MSØÉ ‹רtøfì{Nè&$f%Uܰ’ÑUÄ”RZQ¦rI‹²,rLlÿà*|ñuöW/Y2ýùw“rîÂâ,à¢b—X)*æ~¹ Ë Þç®P×è~hkÂm}Üï•iÏàqÙÀqœR´ÇÅ$Bë\ÓÔ…Ý®“M#•S æü‰~2 wÞŽwî]&·îØÜç¾yëOôÛï¿At†t‡sMéí§Eu”*¡º¡º=>.[,K7xVÞMçõµ3Ó,^â0­Û^òë¡;çáÒïpêœQ~?Mu˜îRœæ¸ÂçV•¯ %0çea2 ä5DKC”ÐIŠ÷\ŠK¥Hñ|w]J,¥ëÙ49’Œˆ–ÏQÎp7ÞÔH’|I>:±£ÑØNû%ÏqŽhG Ò­û}6©¾S„+¼÷M’¿$=981ýâµ’ˆs. ƒp©Œe2td– ¥™1 /SÌ OâµçâUH¼!^fx’LÄFzƹ”¢M¢ÏQ,$]u·†™®zQBµ±Ö)‰5iÉFOZò󔯗¨%ï R8¯¤B²bÊ’‚R‚/U‘k]Zs­Pe%Àh.¨eR„‰…öƒ$w mЧëÅ6ˆ!ߪµAy~ Ba]^o Ox„Ì~®± Ý 'Ž ›ýT ).¡÷r÷´9^]²¢ž:W©7‰AGÈöi‚z“äRVÏÏóxN'Æã¹ÿº4^ØÒ(‰´Î ü×b¤™ ’•P\s@mœiÎÃJ$ËùÐlÓƒÁø†T’ª8Ê©h»0à7‚Š(ÈÖ:ÑÉÐâ±ÙW8b³ÑcñÛ‘<]é$¶nøEx0ö¾ÉÅ#½K²M.(ô;_œ+EHI©BZ–BHKpI@ðʼ(r\ðRFµ’M¿À;=Π⟰2ƒ8ÐbäI1$º­‚¿Õò±tÀ§úíÎÑr:zÝ+ØÕ['…SVÛ™#õ\p’úÖ ݆‡v8nöÝͤœ€Ž­q¤¥ î’swA&厶õ4 º†&ãOž Ô?Á WWW?µý»cô|õî§ß¿»8é™-’£ñ áαZ—í3´_´oÏqŸRÊéY¾Èc}&ÿÕ$Ù}ÖSûÒýŸ7y~~¿|ðé_d‡7í¬Ç#rOÜ3’'åž„öèyâ¤K„SíHŸó!ª1ƒˆ.ŠBpťɩ…Ķà†pc„ýËÀÈËxëß-ûûÌQù{:覉ÂÙ0M4Ë–Í—¾8ˆ þ0„’ì1@ÀŽ­ ¸HµSZ9ìatDû|^&LiNiXÝöž†NrÁ»–n&÷£Yèã ^^3a⼈úe‘r¢©{Ð8Š{2ŠÞ.œ´îr1åy) „«²`€o±â%ÖAð­à%2–qVXÅX¶§Ã¶â¶åj'¶%cºaC )ž· pðoŒ8×6èÙ€±Ç°´'Lû”˜– ÉåEbÚS£YÏô52 G[(Wu—N '$|öH³xzë#†¦%4žÐøâÁO˜"±#‡s$².4̬¡Ò…RŒ®`]®pí÷Óm.[®ájŽ´4ÖQQ4´ß&ûhC—Í|uÖ»°†Ó½,žË†¹9— këÐm@ïŸ'úfØÏó90 åH"eÊP]iUT„ZJ·¢ BƒêW¡‚ÐT=,U{ÚàBáT‚`¦òv|ˆÓzIÞ7AΗËà¬¸Ä †)ïHWÑFD…p¸#ƒ>Rí°T;ì@ÇT;ì¹Ø%"k‡)æèÑJ¤ï‘NXv·”èŠ[àÎWE».ŒxUØë˜<ÂËä¿Þ ï³Ë?¡mq‰¨È½²·ÄtZTùŠéÒ­ò÷ªîW?B ;zÂ,<î÷©X*– €¥`©ØÎ~©X*– €õ¸Ø™´ ¹¢3D9ö¾Ä W8G¢$RrVNeV8"ù ^²ß@ÈMʈ½_=¤åT ´F{-hî<ûýëœÀq±T_ S¼\”ÜÉmÜ}lýòÜ/>è±Ã8â$»ŒÓ›àÊuFЈŽÉ\z/ξÅ,¸òL„:$Âý/:ztkWñÔa§Qᣠ/Æ“š¶}ÉU‘\«^ÉU‘\ÉU‘\ÉU‘\ÉUÑ WÅ~ ÌSòÊ™f•-˜¡¥¤ÇRVÔªP¬,*žW%’Ì2•ø/ÿåWET-)%Z/ωA9Y«±M‰¯F²A~™ª‘œßEsÊ×õÄ`Åqé/#5ÀÄzyzƒóiMÉǪlrTSáq­7½ Ý€‹èØ(H"‚”T•4¦0²´Fc- „4GV«;*p!PX9Óºñ’C7r´NH$@jº N%¡<—·‰WHªÐßÉÖÐ… ¹¡Üjå¤Ð#3ŒF›ÐåÜQŠ?ŒÈ’÷‘ÕEM^„t´¥æ®¶ÃÏJ@_•MŸ%ôHNí.¾} :­«‚Ñœ2L-«))fBäXrL¥Õ“a¨´ÿœJC‘½Nű×)"É{& ­UßFŒ!~ úö{ÝfùíÇ×=û²Pýd±£T©T~;•ßx…^øñ{^~»]SìL¦w„ia˜*uŽUYH*Á%Á%¦‚\JP9+«0Nd²§«ÔHVjÜM׃sÌH¾&Žs:@Û˜sŒÐbNëÆìöɼ@{vlŸë3rÑQ?’ëà„ Ûdª p"»wwæ•ǰ§œŽ¥I×Oç)I5"–÷ñ”;bVLɱ:5âµ»1zt ç¸@Èž 'p„Ì”U&'ÆH­J‚E¡5&š Ü悹XiVt¶gA\¿µÀ`ÌÄ/ÄO–uŠKµ÷µLµ—g¢_úÛ âsšk$¹`’8ò`„t©Kd˜†T\h¤´¶,“òv²w±¦/0ÛCÇ+at]y#ªQï•7¢$‹cã} v¼À˜ÀÔ§‚ö&Rù¤¢]²Ñ¿Ït«ÏÕ‘jÌÇw¼–ÐTœ~×T’‚˜Ä û£ î¥m;Eà–Èa„"l*¥*Æ T弪˜¬âÖP+TŽ©‰ToÛ‹ám‹Œ“Š¢õT7LiŽ×Ï)“¼%–BãÇ6ˆÛRüX?âÇzlºy¢nK±hÇWK{¥û%¾·P 5}ã­ˆå¹GmEûpÖ½¥(J“[좤GBY+ª\ñ’1'+ɉ¢z›êì[d?N'_ëp²·¦cÃà6½®¦ í˜ÑÝk/å|j=ýMf¿•Ö÷¡{—UŽ(Û㢠z_Õ7ð·×Ù ¦j>]WVÏ ¿ñý«ù¸ôÑïÙW;e0~}WÏìMí1W6Þ 9ì奠«fVõüöv2ÑÏΚÝô¯èÉàôÔ4ô@ÛۑuT+Þ!pã8ã&S³€VÎE0©ªa9Ô#Ø(÷xÁƒ±øÍø¿MªÙWÙo~;&\šjÐãnÞìK€²sFy›€0, £b'XRrž¯Ã%€X9%¤…E0€*vˆÖmá˜êkwæ¯á´ÇÚýßù=´S·}ÁHpœÞ,¾˜ã³Û¶WoçŒo2Áo÷Õ?¸ãþ10M—A}Èó°PVÏètØ®+ǤuV—•°R¹Q´àH ­mYTB\•Ê ]T„ «ó¨¢öI]¾du™ äýëê² {| ”"D׫Â’Kø%m«ËDa)ðÃ}¾S[ç‹Ïqº ¥¹Ôî†ëƒº¬ð“¨Ë¡ïkzsDzRR /_ŽH¶XhÒ="TêE˘‡Ghá˦1Tñ£3ÂuÉÎ \§2tÑóO“ ­ZÇç [ßìµr5ù.¬Ôÿྑê|샟 îy%îÝ+Ý1t]µïNCt×Ù[; §óïê<ô¿¢>¤d=8¯õ >ÍÓ­&YÁl:¯­Z×\­ëd7•kõEæÃ&~ÎÓ$MÇÿ*f'>®­´Chæ~ɉ“i.«…–uµÖkºç4´a¡ÉOÆòÎÇ3ßð¬œSÊ3oë?N/ªÑp#õ£ÀјY=oë÷Ý‘‡t$^Ó*—Ã_åÔ¸%øòƒ­VÑ"²såЧÍ쎚wî=B"¿ýÄÝ‚^ªo±ÛЬÎôÍÌF›r4r}œ@¨SjðÞPHh‚R©¤fäF+­Yš C§R ·@gÔ¢… ¥‚Üñ ct=¢µU QˆÒ6r£†lBs÷¹ö½» Ýã„C¥ævÚ9?"¢ˆˆ)"Š ¾# :ž`·7!¦‰Édм‚X ¬ b eà~…5ïtÿHÁÏ•µU~Dr"üDðå (=E ä7ÆÇÅÈ: þE–;Ö|GÞë οA‹îÛë¾[jçØXÉá©¦Š¤dJ•a¬ K±ªÐ«qòʘÁoãuxçÄ_þõÛûŸ’?½åÛqe§™Ô6y—«©œv(Eð®õ¶êä’ÉùTN.r7né.Yl¾äÉðæ’¼"_OùZN‡eéNX§r”õA-_ÎAOãX·~/‡ºŽ|¦H“ǹ¾¬ÛšÃ/ýhœL½ó㩜ÝvüÔ…Jœ1¿tv¼¹H}èå×|”˱o¾ÿ\‘›0NÁl±Ø<˜§œ¬Ç\4e¶}/`¬µÉ‡ÛRùJóí©0¸Î?»Öšÿå÷wÉ”¸‘0t(xú¿É»æÈ)¼=vß8ì¯s^L¼ïÙíÀ?«i.›ÕÅA«ÎŸt¹Kä1³‰-·X‘sÇ]‚j½×c`0_7·4­.¦Ð[Zånæ¶³H¯lT «¢ØvsyY|Þ~27’ÝËý<<Ÿ„=²ùC÷mPhë*ϲ ¶uçOïß `t á6ØóÑpP^n=ëlâl›u7P^VÅdPCÞ-]œµÔ> èÖw·_tøð‰·ønaw±ñJ¥Â amF…r ¼RÆZlH*3n ä‡9ÁDÿXm<pÙÆ3¾ÞÆC?&XËÆc 1^”U0EBl)e4ßXÚhæ»o1==KoGnã® L|ÚE‹aXôÌßà9g}S1ÜyšŽ¡© WeaÞ°ŠîCZº{¿¸m¸‹}êCÏ.ªck}î\IS: ÝE;®‡Ü4ë²ñ%óiÑ7Â?¼GVŒ«fó¢k}6µÖC•®¯Ós  U_¯K Ýss9ø ¡[N:s×õó$ÿªfY¯ÞÞ÷똫^ýFΊ û]r§u·P¾âE¯ëV½?ÎÄ-°EŸ™\w¬çIïÞY…úôuì¢óruLñõÇ¡õÓïXšu¥ãP©ÁœP$¥™ sÀ4Ó†ð̱* ˜1‘F=m…ZõsjÑ‚„¶D£¡¸í ‡!@ˆ,²(Á6å÷¦W͇%Àßq¯ú鱨þÉâM¤(Oik}},Dªh@§"©y¤¦¿7_¤4‘ÒDJ)Í3¦4¦Ð»5DhŠ cJa2Æ )Ýo e–j8†„CÍ@§1&oòh%¿ÏßÚ›BÏ<”«ál¸s¬£-7ï}^ä³LŠyŽ®Ä,ž3™ _ÔÓ›ú’ª8©Nò?¥¯>jÛ=#½ÙÇ.Øo/ÐB`Šà½!„ƒÀäÝw§GÜ(z,Eœ »Ž$¡üfé«?øÞMïm›'ÀBžªµÝµb÷.vVÃSmŠ4¤’d:ƒTHmšÒ *¬2HbµÃ'm\;ºYB(æmña ³ " Ûl]ë4'×ÿ® OžžUíáhyxß ö öáÉÑÓb?­Ÿ¸+JvÓ"*§OxMPpÍ­@¬Kv–#;ª]ÅÇîšc/©±«ÂØQXì®'hy\R»‹†]µÂ^ae°ƒ ª>SB2ÀhGÃý €0!if0E–S--' a€Æã©‘LÁ”j‰És#&-Ž£¥Â}œ¤`)õ¾£2¬•x_²%íþjÕ¯žQ÷{ …²¾Õýî•¡4c*º0D¶Ð¥Kd ‘-D¶Ù‘°…:ð÷aÙ‚O–žr„ŒvL!8%V`žqC‘’™€*n$ Ëñv¬‡3c“ÚÎÕµ®nAQ2ò%°ªÂµ÷°~8íæCà+m­v–ÏßJ>¿ìöni‚ke5'U‘˜æâ>½–ƒŠMm­&C×|lxÖá@Ù¾ˆE ?èMBŽÚÁ”·3»sJèbA/.|¯>Îþ;FZq‡V©;c¬Å»0‹;ßýÁ·(zïN ;&•O¸Q]†%žh€CÐ)Ý͆ӷÔA-Ÿ'z~ˆä¾Ü*$fFdÖèa¢¢ëŒÒ‹¤ÀZh BˆˆG"éåáñ[Æ#´ðˆà[œW¹_¬B#Ñ ã%NÖ«ˆD È£"÷n‡)Äœ½Àtfg ¥PY 5ȸI‰ÂĤ‡D2"‡wu‘”mÂ!”ïŠCVį‚!Ï>†ü¢Ûkc¯Ž‰‘HD"‰1YÑyO8ÄBh„"@cSµ„sžZž)¬°Tˆ;C£P ç|6Ž]qµ@²k8ç*¤q'–3âŒ#ÅœÀÉ­ìã³²÷µí@ …õŽƒ&@IDF K0ÈpêþÎÄmjfTjd¨qYM4¸¦B{(ÝhZ”“šiŒk”»x¶æUÕ„£ùY&Ó™£ãsGmÜÛOÐ);=™?O)ÜM®¦ye*G|¡åÄ¥ÄrÆw«œY} ¹Îòò³Ãi—Éë‹Óä§ü|è¸ç™{U/?¹UËgç—©¼6îR¿rjë–çÍ‘UßûBè®íl\ÕM/ÜUí>£äÿåxV–yÝî[óûå¬<ÍÕè0´fÞ¼°Wîa|Û³Û¡|¶]KmÚ#ˆ#Äki¥BP¶”Œ2–¦­l Ð4DN¼½Ï›5?_v’Ü|,Šayöƺoç>SBn®ÏÏÍT–ÞÌwc7+ÞÜ8O¬ÑÂ&á¤æö†îBýu+â>¸ÆÓÀð÷²ï —£>ëz\‡1€¤¡ÝEñŒI(˸ $ ó†?üôîç??¾}÷á³ãÌ(äÝ®ìÈ:Úaxo7-¿_Ès­?—×øÞö‡_^¿þŒ;^ ÓLNÂI嬘4¡}¡u§ÛYÙ1dú–ÐÂ÷WVFÿóŸ¾Ðø‡×Ÿ>½úñíç°Õa±cý,Ÿ>}›ºkzž¦[ÇÁÃgþïlVNÕ©&õ±MMLn·:†ãàá ŽRÌBF… G¦# 7§)†-‰'œºÏÁ JI‹à*ê­ž[~#¨û÷–lsn6­b7sŒÉÍ&r³Ì?¶Õ gíõ:˜;8œ0p¶eoNõ  mjUXœ€[Aм¥ac÷»8õï‰Ó¹tìGÐÛ°1 !˜CcR¨0)˜NœAË4 V NYæ¢ [4l!† A¼lØhˇoI¹Ã„s¼¤Üa7NÛʃøÛ¯0m»9*<2ÓV^Y[åöhT;U»¨ÚEÕ.ªvQµ[Ó.ªvQµKžžj×%ko~™¶6E*ÅÐ0Æ$âaMUF $¡”hb s‘Žü&ò›~C¹ÃoÞà™€˜Ëž SÚâ7˜!–ÑuVß9ƒë#c9ÿñxùh8o“Èqîãt(¶~‡ÐÞ}=ÔèÛ·OÑ¡çœ:tx=7¿{%2±[Þÿ–0ôèÒâÁݘ@¯N7œ#¸ï¨ë o¡üžÝzÍE–Ðá‹p¼_¯ÞЫÿ"}ØõŽE„"’‰;dÂã¬oÅØîä€Ùü…EA`{ejV>Aµ(u?ÆŒe)çÂd™Í,¥* bçÏ’¼ù[ƒ#*?ú|‰ÇØÍæÚ¬õó<„ujÁ¦£r­¾È|(ÕÐ&5Lõ×,O“¿ŠÙ‰g¥­9‚û%'0L¦¹ƒzß[Ö\äÚžnr•WÉ_òÃÇӃ«Óy¨¦ßYå¡·1¬ã õéE5n‚ÞÒ4åtz#ˆ¸ÃÞk¡7vŸ¥K¤•a …Û*´ù=ó›ñ9¨ÇØÀ‡ˆuÜ3ÿ}¦ÜÏäM1’ùø…#_¶f÷ ½¢zö£,mÔ–çÒqɃn”s¾"£_(ûd¶‹7-‚êÛô^­”@« à)c”*_3‰Ï”['ã:ø ë ÀËë âtý:H÷rÃÂ:1….–ª„ ¦‚nÙbK+ÃîÄã\ûdQYo;vQ )ì™ õæŽV„?¯[:ö!=Ôs·~߇›žV¹þ*§Æ-Ä—lµÊ³œ!_å±G‚ŽºÝc]íXÞ·#êúw5ÕËÊ6óñÂU Óu‹|Ö°Mõ¾¸ØäÔYUk64tXÂÿãÔ4]NË‹-ŒvÎކ»§÷f¡Ê¦™¢)&LPãxU f‰–:ÓJÅ0ÒBšÈB# íËB!á¶wÄ[,ÈÝi¶í xwùu<*RÐýúÎCL`ËÎ…ó1S”h6οn±.³ñ·|²­ÍÄÍŸá­¼¬ŠÉ Ö÷·tùêF»¯\ØìYf[kqºÄô6:F£Y·fJ4Æ2%Ä`Í©ññœQcÅX…•QFç™–@d½ôI¸ ¢š€0’E«ƒ0Ç,eaù–LO÷À„§a{.§ÅØMK;= 4í[M½-†ú£·´ÐÐNQ}¢h‡˜†¹:Ú¡G™tÞ²ËÉ;(«7M»œ¾£lÛ98äðQ'ÇœÃð~b:˲O}p!w¹O§7×S¾Ï„ÁRpçL!½Þ؃% Y+òŸá»ÖÛ/}H7ívç %½;îœÚ¤ÏàKë4‘¢hý°B°yoýŠ”ÂÀq@ˆÅ©0 £¬å«ÔBB…¶ZFý ê·ú‡wDkÇ×ê,E˜‚%ýq j¥Gœ¤,$üùíèÍþ4”ƒ~Þíòœê[Ë>zNE‘ zNEÏ©côœº¯¢ÑC+zhõcñ‡õÐZÓ5dHGç®È“Á“«R-¬v,@ é òA¢S%Ž$ðÕØ2, p* §€!Ž)”I•ÚF–aÈ‘M>Ø©»±äuýhua‚$›ãÊzÂZL“éÜc#8{õ‰¸y{ÿØpÓämurËvGŽJ$ó:7-x Ï"p¼í¼.wP¾¨« øµ"9šÉ<à;Ÿønïs=-|Ôtòç8×…©£·ÝpyÑ”M(“±½jwK^}xýömòÃÕE®/ü©Oä°,e›K¨ë¤}Þ?Þü>Ä4"Á°(.Ë%ºïÞÃõÉh¦=Ç¿´kÏà?™+þý2.FžÈŽíÐÇ¢må¨ü‰›úrè¿¥;ÿER:”m’ÛGØ@暺ŽÉ¿‹Â”u!ëÿýòÜ_ÄMŃRh‚Ø¿_èìf4l&ûHˆZY|Û¯]'LÖ®¤@8Äx1HŠp·ñü:ëüõœøÙúÈj ®cûØQQÕyš™½ïk÷Ÿn¼Œꨆ¸¤V Õ­A=S‚¼ÀÎdzjX5ÍÇÕ°*Š€¢¨óî:ÌòÐBªWc}ÔÖYƒ©5ƒ‘› ƒ|œmS zxÛí—_?¼gÜ&sÝ¡¬jos-,§”h œuæc÷‹Qæ‹V¦Jd„P†©:¬bx4×Ñ\?sMX[›GA$ÖškLämižq‚[Ž}Ì³ÍæºN4³Â\?®º®{4×κkO¯;çŸYyvJ@)wL{Xþ™ù­*€´nmÞ‡ ~³„m±š_Æz¯:ú³SÝ;éé¿ýñc^ P R¬¾»Ñúyx>~Fb¨¬.Ð=lØ}¨b\¨"ø¶çÍ¥_ ê…Î÷#¡ýö ½ÐQËþ=ÄøÃU敹3„tòºgÍ· ø¸ç沎qAÁ£Îõøü_ö®®¹m[Û¾ûWpîC')ø&оœ$íœÓ9Io¦N?ÎS$@›µ$ª¢¤Äç×ß P’%YIÉ’e™$cKø"n¬µ°±1Ì¿&“¬M&ø×&yV¬žm“Ã3µ¦3Ô§T7Õe»<-ÞŸ~𵍠Hþ²é¸ÍCWbv«m‡»"¿îlü(éªhaÉ|zÿ6´ÉT Ç{ìmq'd4> Y½úx拳üôþmE:6|¿„õ8_ *|ŽÚyó]°ñŒp„uJ„Á6Ai†âÄj¡ •™I‘¡©äªaÌöÀÆl¼¥xNEr5Ƙ;®‡–ÝäDÌZ>¬·5þ&Ù6ÈØóáãûÉçG¤ãrß[ßÑÈ@Çw¤t|w†@Çt<Ðñ@Ç7& tü4t¼Mà˜¹Vˆg±•%Zq®ŒŒ•F$–„[¥â'ŒØ$k:&ò@ÈŸ!_·F€Mã]wÒq¢Ö¶Ç…Tœ®rx‘^É»M¶}ólHù_Ž6 #—(0òÀÈw3òÑ–©ùQƒÙ¬‘õ69—X{‹l+ô½}¾5ߺ€•i€æqîI>ÁmÇ+œ|`1m«Ü±ô6ÙÖèz»¬ë¼½Mîeß&ß“o“u‰Ò·Í¶ÂíÛfÞçÍXcûmr®Ñþ6Y×ø«¬{O¤ Š@»ÜKÒ@ÛŒ«A›Üs±`ß ?§Œ4ÓÎ&¼Ì †ºÿg¿˜¾ÁOù¼«ù²^+' ðškž ®˜’¬b¬…Šu¢ŠJ%Q˜6’ÞFŸÞ~Œ>z\ÝêXùG÷|ÑoE¨z陾Ž~uq_.÷ÁÃ4¿ª4wr€/Ü©ÀMuØÁÞÒAÂÅG„¹üø.zu©û‰vtë÷HÑ—2úùó·ðëÅÏï?E¯r‘YàëzTv~þýÇo£Òk³[Oä_}PWfyí‚Áè4…_Œ‹”CÈ=÷n+¶®Ó¼—µÓªD.ùp䓦³'¯DŒÒú¡Š¾ü<^^XÒ< Ç\škGý ¼é¸åÖEÙq÷Šb˜À<¼°ƒtt;C?ÜÝûXVÁufÑPñ(¿Ê«à;NðÛx8KÚtñÁMßÈŸõõήhM&ãè €JS%2B±y–C…ð€ŽBúh<ºM÷.ÀL‹‘Ðw—?t/.ŠèG'zønôSaÞ9×6EÅ—Á¼o\R×hŸ°@CÖß‹®³¼V2Ôe 5øó †¨WÀc};Ï»è4 g¾èÝ¥¡šGóqU̲Œü<¾2÷ýµCŸÈ—¼¨Ñ+BÀ±#mL^Å1ªú{^õ|„ÝŒš |C¬k§+§˜Œ_G0¸ùØ‹4å¼oÑŠ^_@¯åUÀ!(kÞ–^^ÂÔöÝ7,à=Iz¾³‰‹Cä){U«¹ü±à Èqâ&´ol¤'ã·Þ.WÿãìŽ_ßx7KrßInî] ¬ë3÷:»©á£7¹mž`Ÿæv+úæïI1þ~2’îã*•Õî|Á»Véa®÷üHÂܸ+ia#.’ÙøAEÕw]1ÓÍVb`àË CûÖ]*ìf§¾ºëHÓIOªî«l LÔÌú¡¿«ñu”Y £7²Ö¿ÑåMÔw?]À ïMŒuÃäÚ[:QÒËnc°{åq®(ãßñÖ­¦4ûÊv¶N£ðÿªƒ Ž BËÄVõ0)•`+rea´$‡Q¦X\sZÄû§,V¬Ž[t:n¹iíŸò¡ÒºøÑÔ°Ù¥ÄühgX›è^£b|ÝVöÚÔ[ {).÷<²hP·6Ó"é&…l Þx ÌQVÓ4±©ã1WM¶áÀRö:|üÐùÝí Œ‚¶¶ãÝ$èÓ¿þðäâ©ûqœ*0Ò9Å8òK¿§PWue}†¦±~À²4Þ©¯R¾‚f·ø7î²ìµh50¹¦SçV¦?Nó¬¬0Fá+ûyY·ãà'DiÇ“á¦vn¥ÛVˆr|{‡ºŒv¡ó·D¯ñ—cÏRºzw%›Ô§›s~‡‹íõ¶ø:óTý›ú4ž˜éúãNfP¹3NOY¥œêÑh28S=¢E°ž}å*XªHJ3Æ”¶XÆi'™-Wœ À¸1Ó±P*ÈAŽrD#‚ñ劕ˆÉª•÷ñ¹Ó#ˆŸwë.ØÔ‚Ôˆ55b]0Ø­1!÷Œ*åYFMc99üÝ(­ŸÊe³HUn27J·FøkRß\u*£UûX°‚un`&Ø^§êç—Gêîͤ$ÉÀev_L™J€”ØÑ£„¨TŠ“DiÄQÆI¦XŠÝ&J¦ ˜2`Ê€)¦¸¬ŸÌeý„ûïâ‡ø¼JæÔ›öÉAábHÁD§û݇ƒ4S±F’‹T"Ì2I“Æ”%˜kš0›&\ÚFŒéÃoIô¹(zeSëÞÕH÷«»^`ƒUþjF«*tW7÷í’òÕ|P›L¯˜ðž& mjNÙ!Ë{þ˜d{ä+&V29Â8^vÈäˆ Us±Š‹Üà¦Mg6ô+÷4…,kª| †y§KÛ¾”£©`G â€yŒé~QŒB¿uúz|¥q|—Ò>ìr}¾F°Ía˜ƒì æX$IŒOc9Aeð¶ÆÌh•°Œds›eq°ƒ›\“5;ÈCÛí 1^`ƒÁêA/Ÿ7¦’Ç ]ÓïÃ/˜z‚öðÒI#O0=&ù 1™ÛºBåˆ0±—ƒöÔƒE°‘3Ë Æ(œ{ˆ~>#;áiÚÜS_˜‚-°QªÃj,zX^ãê‘{ÅÞ'÷Šl˜®y­.wÚ7{tÁzÎvO»žûþGMË‚\÷¥‰]KÝC¨+àeQý?ç€»ê ­i:¬½É°¡<ÐÖuâjd›í”Ó6EêäöN¦ìu¿p=]ý7ð ™wL8krˆÂµf”½RsЊ²(aÏEäì[wë[ãæ9öš"µr=•k´–r´¯î¸êá¬Â")‹ž·ƒ»U‰²z—{5ùè*ïȽÑ7dSÂ73jÕ<ƒÛ•Ÿ ›§ŸÓý-î*.Y>ÈÇ]ó&)Ímkü]ðÏ{ûìráÉJm¶•ãô¦éµc)5iŠŒùNg!Hs|\SÉËaOßîNd¿º{»w§©y¨~“§êCknÊTê’Mú›Çù. tsZ›d´;ÅÈ#®i²óØ2I—Ò¸—§.v§)k¾®é¸aƒ™inj¾¯TÃ&“j8­ë·aƒ¾6è·áî~ÖöÛô*Í®v—ådМ1pƒštµÃivÃôª€Dµc5½j0VÓ+ûÕ9GÕ¥©3Ó«¼__Nߎê:§3(ŒÝ9¬Ó«ú·×¥©›a.MÝÛ;½ªiJý ƒ1ÈñfJ¯ª¥Þˆà y¤¦<Íb&­ŒImBf4!šIJ  A8ËR#IÚï{“rlaxÕ¹©¬ý62&ÄÜCÏ × Ñzª{ 7Jç䥋*–| O,d»¸÷6ô–;}UÈÆR`'Z/GX‘X²åóNLT·¡ç|‘3fUŒméˆôôUìý?EÉÆLˆx¡·Q²«=½€·l¸¡˜Ù–äó—“ ôKý!½ixœã.í«ÿûôãÏoºüóÃûÿù®‹0üm,Åœé飧^sxÕpç)ƒøþÓ?žÚ¢g(„í¡bí-|5Ö¯Ú ]:p-O“yº,2í)I5iÚÆŒmÛ×êmÚ˜‘6Ê:Á[ðZ;äV=s¦èûd>%iœ¨˜q£Ýl4ÓIÆ–26JrLK¬¢H&ÍN#½ÞÒ“+ÆÑjÀÆ(%+œQ×ðe?’û<8“<6—|Å þÌ!x‹] ,‚ >ȇ9RÞ#Ë:¸»Îç»ëüh»¿[ð±ö_ "~<)Ay#i&3ftšQ£gˆsCÓ kcIdð®Þ,Jß‹ÁµK”¦1¹æ] Kºì]ͱ`Ë픥ƒ"}FŠ4‘ŠÊ½áðCx/?œKõ }©ÆEù!}§Oì4ÝÚslOW³ñŽnÑÁ-úÔ©Ÿ‰>’[ô™nTq˜¼£ín…§GØx:ÕÂø˜\·Ù´É5ûÑé¸û8xd¯äÙÁ#;xdoú>xdïH<²ƒGö†¯Ÿ‚Gö&<çRœ@7šðT‘Ä2n¸À*¦4f™J¹Â¦)”d&Æ:Hàh Ì֌Ęº`$æ¢Fw³cƒî>~Y"ø>Á–ަ‹vôï ý;èßAÿúwпƒþôï6y‚þôï ý;èßAÿúwпƒþ½9Ísп·ž‰<‘žic™‰E©LˆN3ÈPn˜Ž±•J©X‹f"ø‹8ÙZúÆ !¼zÇ£ÂÒ^:IcD–Uî¾ïŸ‡ ê÷ã©ßî0¤Ú[ý‡!Ÿ†Žâ‘<Å*Ä#y®²XˆG²¯Dvt¹«BÞçrúòvr ꆾïâÅ"Â[nÆ%â&FØRË%–˜¨˜âDe2㊠FpÂbœáF û—OÐrôf24xk†½ÿtW´Fnß-ßÞݪìk®n:u÷«ºÛ^¦þ–_S|¸Y⾺˜ÕU5›Èµg6Ve7úÁ@0væ³ûk‹d¬óõyYs±Z ›þp<÷zñ×öê2Z\"Û½€?o'ãëbT~wÑ™ýñziÇ×Ño¹âðMoü}y3u?ÿcx}»˜%ß\¿?Ê…«k“æXÍM«ßãñò;«\‚ ¢ø*— D`ãå»VI,q]|Ï& …j"»+C¦D>Íf[Ú`Ç㶤a½“€2И«=/V…Ö܇í;ŒÑCp7#îù¸• n…ß;Ã[xM5 «DxW®F:YP“ÞÉÜÖw†zTnö~Àµ-œU|5¼êÛfIaýi¶”þV-Ö,ÛÀ-l„¶d#³N½÷ȤË÷+áÃçE âHž /ÏõÁ¯v7yN²ß8²Ál¬52(€[RŠAïvSù÷ Ú¼éç‘V“ÝA·\{“«|à¶óº›Eí¹F€ÍÊ-f…, cX£ºfkƒî•÷f¾òwÅ (Ë®û¼mÖ í•·Iø·k÷s>ï=ó`íÆNÚ™EN%!Vs”Xœ’”r¥Äˆi®9'ƘµŸ9ÔF ‰u¨M; 6•œ=ÔvA[ÖAäa![žÐ†I½Gx–ã`í8`퀵Ö®ëÄ€µÖ®Í°ö¹cíy7˜Ç¸3B1BYb°¢BX±L¨N ³–)”&cIÖuÿç×3Ä Šqžå3€Uy4…ßËÍh@ã3ß“/×yz]!ñê ¦žê¼§x f¹<wpÝ7â6º-&Ël¾õxû.Ë4בíÃo¯£ò¶„Â!7“LÊ炦[ ×!*VÀ4—+g?…$57Ë/ëù0éúà4íyÖsyìNŽ«Ûcù …¸W¸ƒ[Áì«"ù˦㺒ŸâY¶ç›žN;/xy‡Kªù¦ôæ¤\‹wlXY:g± êP£Ò»üÛË>'PÔæþ‘C`ÕÚÈÔˆ8J Í õk+KµeL«cófA—,:?X„Æj ‚é.XDØa°hvQÊV`tðU)Oý=уñ¡:Š% è( £€ŽvL@Gg€Ž™„)lФ%€€dаàIÂX§±UÆ®D³;ÙÂí O\PóõZÊ_Ù¡•HÈš£UK*@§àöiÃ>mا û´aŸ6ìÓžtÃ:z|ÄÍcã4†×"Ã5&\äÀ‰Æ6e$±Ñ,q?sÄÝ~W!¾v‘•±`Ë€›J)ëBÀ4¿¶gòù"íöû·ë`¸fg– u_{lFÔë$µ"ܸ7.Š:¤7ƒ„ÆNm³¤'…$›‘À9mFÄ-^XNLœ¦Î'§ÄhšZÉ&VA<¥©¤ÁA穚vçî¾¥f§»;E£Ãv¢æ~î·¡‚ÃûR®#{èÄñž·‘†=¨í©ÃÔŽÂT؃:Ý€…¶½Ž‹Rx)&]Ñ%¼‹ÅlÈÐrÔ“ú¨q– ª•±YfáÔ0Åb€CŒÑ,µ\ I¥Í¢r|Þø‹Õ=¿.p½ýÛ?cS8ôùˆqÕ-Ž"CalŒ‡>£yÁz8ìÍÐÖ.äâê/£ÏÅhª{¦ôèe<ûåEiz8èráS—ÖFÕü–æôÍû_~üá§Ï—¾ò~HÊÀÀæ=Wç¥_£¢ÏÐX‰úÃï"‚ìÀ_‚#„¾£ì;£ÿEðéÅûß.£w°j¥×ßE—0F¾ûåíÏïÿuÈôåË—nÕ.í.¸„•B)º—°b˜ ´=¨W‚“x/qÄ)¡+Ú`¦ˆ¬¹ÐÆuóbþws¸³·;(ž$-žOõzÔTôLR´EM-y1Œ® ûã;=÷zÒ‡ŽëÙŽ³×Ç‘kÓëëâ)»)øÂøïlªµƒG´õ‘H #€¥š Æ^&ÚÀ/À¤I©i&2ÒØÖÿ<³­Ÿ/ 3++f¨GzšÆÝËÿë˜ÙååÀqÜÄË’&J ¥ºô:¥)€ÑPô꛿'Åø{èaTýôm%¢:†|1 Gù¦Ðä¾Kùë<åÌdºÅäÙ˜v.×L;ç±ÚeÚÙšÈY™vgï×L{ón¾¿4ÛžŒôu¿<ºm§<Øöªøs±íS=È{=ýˆöcA,Mɬ󻇗^á„I¡a¤N‘RF6Ó7¥¾ƒ Õ#33òQ'ú’ÔžŒÁ¦ÞFþ=ê1ÖøþGWj9/õ¦®ÔgdcäuÅÇ1Ùmù¨Íä:Ôæ¬¹=žÍÑ—f“ 9¶=æ*ØãYñçb«Á|DsŒiJr a²ŽL’òa“)+3M’<ics¼¬¨D•]llxW@wÕ5¥·»îÞ[0U_«½¤(ï;9Ûº‚ºÁï™|Šå“ìŒRwÍÂ’Ñ1(¿Âá£Ö“æV¿î5£¿§ÉônOmîp›êÅÐÍÈ7‹Y_oô30?i‘ÀŒÌlý¥€•ú¨Ößm¬¼L#~Û/Ñ„«gL %àõ%œif¨ˆ•â:LmRƒm¬cÛÈ„Ï ÷m?)zÑÌ)¸Œ^ÁÒ>k|ùmSs>+«ôe•¯£ròÿí]YsÛ8¶~÷¯PÍSºÒ–±/¹·¦:ËL*ÓIMêfnW¿¥@”Õ–D•H9±ý¤d‹¢%‚´e-æS,æ®À9ßÙuî‰ç;ÆsY~­fCùw—êÚö—9NŠéÏ©²L¹›7½,ñþ”q¿—{]–_S'Ÿ;VøZŠË-O“žyÙU½—០Vd“­œ/²±ö…gßÿïB%ø&í93 ÛKbæ³’Âêe3§G”qú¦|'½Õ*ž#µËSöϾ,ν43¶0{/“—qÞÕT$Éõ’<—âÌþT:[Þí’Õ¿€"G#O·øaïÍš~oõº‹‹žmºèýõ†÷¹FœY'b—×Lýç%î©ôl’L–¯h¹zÅà,ï»É/n5ÿðÅ0³ü¶‹xõ™òA•4™äÙ!#/fýI}mèÓÝ×roË$î&IÖÌ•™ûy¢¿FñŠÏ~8£¢÷#™]µ ™;oêECß½¼Jj@À—mD Uˆr‹$‚ÈÕ†Òý„,/8¡û4haObKÄÍÔ`°c¬€9©¦©<)VX|DcÝ2 %Õ|”…»¥seì4ŒxªêŒÏ{GñË8³ì{þ¥ö r±D *©²‡4&ŠFÚÆˆ0,eL­‰HXfüÛÞÿ8Kx³TRíÓ.ÚKÝ~ž©Q/S½XiŸ7ï“Ûm®ºL¡.糬7µ³ü:íÕ?û·×än;dqÂ<;r8¹vZb8Py¾»Sˆî4ãô”@Î@¤ë B¶ ÙŒBXu8bÖŽ5‰íËû¥yŸ) DªMÉ:¯ã^åùU10zoÂÜ ˆãX3ÇDÓˆºýYâþ¤10Æœ–ϵ£_%ÌÙ1ç µšå´Æk×þW…ü÷‘rÖÒïʺ͓“^]åW¿¨Ù0·«ÆÊ]ÙþH¯†Å3eR¿¦#uÝûc˜N’ëôê&'½ÎUî³2õ·‘½UW9é(Íÿ^¥}Zµ¶µª3Ù1Æ¥¨”ŒøFƨì²$QLWõ¡Õ†ñódJÛú¼Ø—¹{ ƒe2' 6C]¾¯•7õýP!€TS¾Â¢ª4Cç‹2Î%È,ÈEWúôÕ¶¦›eôR=¦“êââ/[{ëN«¡ ÇÔnæ»9 £u¿ƒèîNuå­£ "Œn‡ÓºF°ÓdšlÑ‹6ôQÂÞø¥ {‰QâvZèRM3£_¿û⦜Qei2ºÜ-³ãïS;{ŽQ5Iä^ªÍžDhªœñ™aïÚ:yTC|З~ÔSÜ«¸ÌÁ[Èb,³€ÆÂ`+A-„Ò˜†:0&ö‡oÍ:K”/‡NîÜøf9ä¦çz8„"Ü&çÜìU_¢YAg‰u*³£´¢Ü‰‹"½ž”¨ý ¯Ì.²Ù|ruáÖËy±`êÀ‚`ü´Ù{Mà>_süAF(UCF 5Îkß¿º²ÏóÕ™cš†­ðß}ûÐÃçïý±û,þ<ŒfÊG“.Þç†ÕûׯCpàÀ)¢V‰ýeñpÿúž:T_­ B„è¶ ÌÚ(ˆžÜÝ_½pªl¸úÉ+\þúiÒg¡t¯>~þôîýwÔ¿4f-XÚ0¡,}Üœ ÷Is¦ûsª2ÏðùnCèvŽ«ÊCáœ:u`h1 ¬f€Ü¥ "¿÷×8¿$ަvöhïa{¥™–4–Cµ%„)ÃŒ„€ÁHhÁ1‹#h -žï@Ô€( Ö=hœ‰Í4( ‡¸r º4Ο¢®˽ÿ¬¼¸WP@sÚ‘ã(5r2'™4íà¶C%©¶ÕQw7ä4À«_^åÙIuÊÅÿWwŒÍ¨ß¼yŸ¸¯£& ¯òæÍ«‡^L6ç[J”¦œÿJ¢¦,_lÌSD¬›²ýŸ囵9ß4iÃã•`¾+ÛøÅKFó6æø®}A¾æ ù?>çTéæ7ªÐ[YÚ>³asJ6I¨P{ÎÓÖ¼Õ·åmÏÉÃ9Ý!{¬.÷wkì «ÏæÑÍþ°:¶’Y°ÁDE\É#(%ŠåaÖ¡¿ò«Ÿ.V'ˆÊ2VÇ”úÔÜ•YΔŽšcu¿¸;¬~HX]VM÷ÚV¯,†JtPbÿP³¹Å˜»ûâåµÐÁž‚­ÔFˆB+åˆKÇ”ÁPZ¢TŒò:pöø)`%å•Ý.R ³ÛSD( C²ÐÇãË L-…d F°.χd×ÿqÆcyxïÔòÒÇ{•Œ·LÆ[½§F€bªÙEÝ->Y”¸Xsç-nĸ!~Üë:S‡$»…&ûŸâZŽVïÂÎÇv®àȧT¯‚Íc‰kûÃaù‚ÊÕ»;n+AZ½äç®ÄÒG¾j=N|:q5L^¥Ÿ§dc§1m]>91ðÒ3‡nsº~zYGê×BÐ9§ã± $LCè¼ ÏÜÇ ¡OE`7¿ü=T7=dn ©`;¯jÒBkÆ T‘<ÂZ&˜ˆÔÌQÈkݰÖhG%L]½ÒiÖ+Uì#Æ·xp9F ¯UÜJD}yÒJ¾…Ä€š‚[¿ïÊ•VÊoüñÓ.Sº´³dr…J1Ñ2¡â¡”ÿ° %UJÝÉ·?w!Ó`:¨3Pž$v ý› m C:Ëè¸,#ØÆÌy6sê¸-°5Â2»™f‰çóÛZ08›‹¸zÒ¢\ÏTH´þžZ÷´¯>¾ÿ­÷U¦ÛÄ—¦Y2s ðîG å8pw›ïîiæ°ˆ2ù‡mFÝè2îP°Ÿ¦£묨  |A+įÞÿùçÛwŸ¾‡É™UÆü¹ÿüó{ØŽÞÀÙ‡!¯m³ àõÎÃÀõuGÚè›zûÖsÕ…PÇL#\t@^œ:¸Ýk³°Ípö·¿_ØL_û>†)/¦ ìÞ7 ˜¼×eÇ Yþ9ü(ÖZ‡Oþì狇oF}žÎ÷ç! Ì>O^˜RšAÊ(0‚Ø™ŽHrI(!²ÀrãG¬$ºØìÉÅf›f1‘(Çf9¢€®–z@La½R6‡g+{¬a„öð2Å|·.>ÛÅgÝ ÑåÍÕ„=›d͵K¶»mtÂÒ]D´‹ˆî)"œ€ùˆ€(Ž"­5£œbÃ–Ô ÊƒR*Å™Šb®°6]@´ ˆî5 Š0Zˆr¾%a”F`y˜C‹¸êýÜ$%€5U-‹&>ëQ¾†©¢ÇumLÚ¦Œî&(ÊD;{¤ ŠvAу1Gº hí‚¢]P´ ŠÖwAÑ.(Ú{GN=Þ è¨n(Æs¸J„à”K.­Žc@4ŒAL¡1ÊPαŽ nj×MÄè*ûv¨ð&&Ðzn1¬OÄhâO©ŒÃè¼*{™‰Q£ÞÍÄØÌÝÍÄØBÓÍÄèfb!pø3165t/›|D* ušÞÏÁ–‘‘S+,¤sC ’q#ÅQ ^L*à)$ùÁJ’Ÿ;¸%ž&°(‡Ó($Äq¬”B"Q`uáÆfÎMË ¼=ÜXýtŸf F­*w•÷ñts®Ã ]çM,]箉s-k×Ĺ,s‚!ÛŠ¿ÎÂ[ýìÖ¼9¼A|Ïau`)Œb€ªtpDTL#¡,²Lɉ~9H'au¬gñmµ:°d–»š@Â[kûȸ¨#Sµ;ÖGñu†Çþ ˆ(ë†ñu˜)˜¥ëŠØ ã«ÐÜ0¾0êy*¹!q ¨P2A¡Z¤#ECWŒRD7¨©m5Ú„1¥J@ ! ”+@ I‘ÛÔC3>Ö¡Ôq•iŸäˆˆìÔ‰ ©“®_nU…|`åÄGU6• 6(H­„s‹•Œaã` # Ai5´–k ±5DrPW…Ú%Mî·-¯otSNšÄh[kA Ï,µå%«•Æ K* ž­¶žØm_ÖdæÛAdKJÄÛNO{t jýØ£vŨ‡Œ-•¶ïªS©Ú ç,o6ù2Ë*Î<+åœ ¸VÊ.[1- <ƒy× 6\vY¹Ù€eÜtOŒ±'Ješ-ÙZ]xvWæÙdŠçJ½g¶•ÚÈv\+ ­øW A{_úèsÈðSÜ—|¶áiµ8îêEwfŽ·C5;7âýá®”ô”’ÖO^†Ñ§09[Âw×bÌ™ŠrkJ‹b÷·R‘Œˆ¥]Pæx‚2M‡š"ÁH¹q.„2±:v]ÁFšV–õq5}‚XÌ!:uK£Ô)!ÜiÐ ¡¾²º|ß.w¥Ë÷ÝI¾ï¨4>þe&oOÏ‘lµÄ FØhh8ÀZJ"¶8¶G”kÉ•ýz:ôÔ´"3I×Г;(¡' ¨AOÕÌà5øÔ%€¢°P€êT Ž@mJµqRr÷-Ìb 14v Ä cÃ%‹-‡<Ʊˆµ±&21 +©êòlº<›Ý¿&Æ_ˆ æågw2Vû“å‡X]­˜Û‰åÙ,`Ìé&Ù´™½ŽÉj``²Šã‚ÀQËÆJK%ñqub ªƒ'MÚq…w’ îfì_j0™×Q%?oNbn§h}®_¿®£²NÈþ {ŒÁLM/¯‡·5d¡¸F ú©]u2JfçîŸÉyvé@=r:q1Æ‘¦WY2=ÏÛ^>+–>hRßmêcRø«Ø n©x ”FJ+€bX0‚…„X„åw®ƒpí4 ŒQ‚DY™S,ò^MšÅ’òE^ Œ­õšêcûöë¸Ú2›¶ë4ÕušÚÊÓušê:MuŽÓÎqzbŽÓ“ò…ÞIG9D‘„'c.™HkâÀJ. ;€Šc¡(Ç<’ª³5ŽÇÖÀ6 #SJ%pÍÚ  sNJEzî€8Ìu¸-¿c£}¹©G–Tf8hX–ž?Y[÷0O[¨G*OB!L /ÏUµ}Px ÒcŠÖ-åDıfóŒ"&Æˈ¢˜RÃ"(,îæu!·£¹UJÛ·…ܘ@˜¢§˜´LÀzx PÓì«—vÛá, F+ú´›´™»›´…¦›ÔÍznÆâ‚'6 h­sƾòî ÂÌÆkÄPæ@°e”ÉHEZåmœp„Â0ï)8L–”_Tv»@¼ÙíiºUšeçSÄ™,çc1ó’÷éXˆJLC:w¯-ÿ#ÍÎ_€Ãwjyé#ÌÄ—Èvqõžˆrz„5Úm¼éBºZs²nÔ‘¸¡Ž8tõL'3ëûA&33ªhØ÷è”âl/1dÖ¤¡yƒðÚèPÚŸ‡cØåêçÕ|WHÐl¯ÚÆt”©á$N¼‰[íPZ¥Ÿ§dc§2mÝÔ»'/í»›ätýô²ŽÔ¯… sNÇcH˜†Ðyž¹B[ä£n~ùMÿ½3)þ~ö_MŒ“Þelibzypp-17.7.0/tests/data/11.0-update/repodata/repomd.xml000066400000000000000000000027671334444677500230550ustar00rootroot00000000000000 c1d8b4a70e4e2ed3cf5d68d27319974cc023cf03 1224755528 5c8a77e4e4f57070709f995d2d2ebee13b052ded 630e1f5bc7d12bc26b571e35380191835bf9e5e7 1224755531 726ac5ccf337abfa42bd6a76d032c3ed7a923ea8 958ea074b3c3ff7c57112e292ff1bceb07c6d682 1224755535 4a44c8ef91cefaaaf31070d5556ca94b27525dc9 7949794d363b7a84c2e9168649613bdcdf9b2b91 1224755535 f26bbdd272a1f51f750b76b67bee6f178e9645e0 da21499c94aef90694c8e9d94eec39ab3891cbc8 1224755535 7314b359cc9b5c68f22cbe7df2e8cfb964224593 libzypp-17.7.0/tests/data/11.0-update/repodata/repomd.xml.asc000066400000000000000000000002751334444677500236120ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBJAElRqE7a6JyACsoRAugdAKCImJX9Aop0Z5ngfpYz1Z6ec4637QCg kDTnvGTdR3QFlYLXDEnK2UpM3hs= =QwmG -----END PGP SIGNATURE----- libzypp-17.7.0/tests/data/11.0-update/repodata/repomd.xml.key000066400000000000000000000041751334444677500236370ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiAhsDBAsHAwID FQIDAxYCAQIeAQIXgAUCSB80OgUJEfKmuQAKCRCoTtronIAKyuJlAJ0cWZifmBO6 Eh71jattipdMhUYBTwCfSXbJJtuF3c96JPmpmT8be2LDo86IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkgfNGYFCRHyptQACgkQqE7a6JyACsrv3ACbBLhafFXmTjH3 JJWFJGWuIOaZUosAniPs4feEyN46gjXGgcZc2Ai8nkm6 =mY6G -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/11.0-update/repodata/updateinfo.xml.gz000066400000000000000000001725611334444677500243440ustar00rootroot00000000000000‹OII¼][—œ8’~Ï_¡­9gÇÞc²¸_jíîuû2íÓmwoÛÝ;o>D&S$b€¬rù×oH@&®*ö‹³@ }Ò ….(žÿøe—‘VV)Ï_\ký‚°<âqšo^\üùé­æ_üøÃêù¾ˆiÍ*©óêÅŶ®‹«Ë˜߰,[G|wYÐèšnØåŽÕ’ÒËj_±Ë&[š'ü„ü‡¦ýþòÓ«Ÿß}xûIãÔsÌÈ ˜G†Aã(phà†ã»Vø~r9…“ª¦õ ‡ÿÃŒ]¤ä»;šæµq^Æÿ#Ê\Çðª¾+$dѾL뻋c-€ò<øÂËöÅ0´ÞäÑóKx"^Ôi±Þï³:-2Fþ ‰ÈÍ>ËYIÃ4Kë¡d/k“ðŽ¤¯YÂòŠ=¿lr %˭ؼ`ùÇ??¾!´ëóËî±,¿ªö @Ô ZÝ4,×Òm˼¸l$¬X%þì? [øÙ´„ûÍ×4ËèºÇDµå·ŸáÅ:Ú¤?B+[žmþ…lðî·ÄúâR‘|¿ YIodËur[<—C@ÏcVEeZÔФ?|Ú¦iJÒ/Ð<»®ñÆíÖo¸U×pW+¼úëf꺯™–«üñæÃë77_jH…-£ ÷   PÓ2Éøí(Ÿ1•/*iµ%4§îØŽ—w$âe¹—õ"ý\†åëý»OÚÇŸßZ†i]RHßf+Gé=YÊ«ßþxMh“­*Ö ÍÑä†=»z~Ùo\ÑØÅõ&K«ºÕ„ˆg‹º—Í¿çmç#9Ýyž´ÑöÅE ª×¼µuAZ…4ôµyq"“4cBܰ›hO“©×Bàº,vÏ/I€:sð0ŒE¡ByÈ¿øîg×FÙˆDÀY±`áñÝÈÃg|ˆS™ó˜8¬Qbð~™y LKIÑù—R—Ò‚!f,]CÆÔˆ!bD½ƒÆÖŽ*¾F× ¹˜fôðbéÅ.ªVôÐ"êÄðƒ4âùåÐS€×ñ¼u˧<òÀâÅ1 Y‘­Û&¥‰É’È -7ò=ò’‡ºcyÌâ¾Sîœrº¯ù­jsäwϯ„I^’(ã9LR%Õ]U³|Hs"R¦9 ÷UT^Ù1w<Ó±qÌÃóôÖ1oO8æÝ›‡:æ¯ÚŠ QšfävË yHÆkÂRкf%¸¡´d¤m0¯1Љ]—ȹø¿Ç¸¹6ܵôº…¾6f:ÅAšÖæÒ íºùø|”ÚWdÀ}ÑGÿÈ®ÌÜÐ6uÆÌ¶|Ϥ,t¼ÄóÇ6aŽMƒEº²i9‡¾|³œÕ·¼¼¶´w¢%òú=«*–oX9êÞ¯Ä<­>¦9ù:(`úGÉ÷Åÿ¥ª“kÓÒuÓñÜEú0LX íÃíï‰>ܽ™èêÛ°:íï Ý›‡‘·’aZÈf: ßnAgɆյ00 %‰Y 6F°·jØû{uäÙ~“¢LnÏ)ÕŒc­u¿çZÁì|Nº&åh"·¢«sŸ: }žª äþܧ'~Еø.‘¸‰ÏŒÀÐY€±\pˆŒÈ0˜¡›±Gñ)mó`C#/¡Î0¦l³4™ÍÑÛ+òñ…ø¯¦ŽÊž覿ŒçãÛ†Ùy>Íï)ϧ}£²$ žÎ¨•Úa†QT½¥5!šß²x5h½jMž— ]×{Ša¾FXf,–¾vÅ$áØUìù9ÃH¢ÖäÕlõÙ Ö¡e‚ªdŽfžX ,°ªsó±ì˜AWY@¤Üå4bˆO/NacjÇ5ªŽœÇÖ”,¦ÅŠ"Ä.¨'}ÔxjrUKú˜Q•ä6¶Žìîª/aM¤Üµd€OMNa£êÉ5ª¢œÇÖ”b³Œ¦H¹ jÊ7ž¦œÂFÕ”jTM9Ž®)iÁ–P»¤žôP#ªÉ4®–ô0ã*É6¶Žˆu x‰)M#xA="ÇÓ” ਺2Ī-пÇb‹îEŽnšQ®Æ4ðœ8ŠLø&5U÷Ÿ¦[¬Ãb /XIGK,¿‰gWÇó;ûbSÒ˜‘šw"H°vtõã_^,²ËdëºåzÍZK÷ût­åðæQk-­£- Ë4ßTD¶˜hŸêØf’­LÌŽdk­Vo¹Xs«Ç‡TEÉÄ]En¡,¹H_õny†}µjd‡,á$X›n³v#Žäí8Aë”xåïÒªdEÉ*–׫[LèI4ŽK±”X‘}%ÊÿÏïyýß+kPmiI£$4Ï›¢6 eZÕ[6Djö¥Å…L”Xd4bñºÉ±Zõñ;Wäϼ*X”&)ß?w'v=ú•[A3«›8qF¢’W•s¡ð$ݨŠÜ¤tõó§÷¿’W/?üõò#¥ÛAý«¦"P"*Ð&¦Õap=Äê"b­ ÎYlÄóZ‚áɪ.÷•8 ˜”`FàI.STð`e«›VïÈŽÇir'¸‚«ŒGr?í™Ø…­k¶7#L(Yú¸•û‚¨×;±ÂWqY:´T%v@’³[’00!¥h‹<& (ź \"|¶ªXÓ\¯¶4ß°Œ ©W«öðëíííZZ ÙíbU—Q—®ºÌÒ|ÿå2pôKŒeCYÎÌÈ*:Ô½ö%¥M$—{jCèÑpÄ|, ¥¡q€çd$|,¤ï1ä™nxq¨3?ò¢È¶¼Èô º:c¢7F‹ìÓÚÇ#Ð#Äq“Ѹ÷®yzEÞ¶«å­y&·i½•Ýü¦±ÞåM1±'Ïù¾&74KcòëÇŸÄ¡ÝXìôªîBø±ÌÁèÀÐ ûpþBþž<ѼQÙ…ÅÆ»£²U MȺ$06æ]®Ž­‡r£-uÆ~kCû?î˳^b+Ikòh"¥¢aZUhJe„ìĦ¨‚û.ǹÌÀ÷’в¼8N71ly4Ö;fºÚËØý`[ =tõxd[Ú§³¶¥Úï„mÅ‹QÊ»B8 m.Ñwâ´º>œkZ«Ÿð²ÓXhŸÓwüÃ>§ü=¹ÏÙ¼y¨…ùC´kÚi®u„³Ö:·+p€âTîm>#$Mº¶s0UŠÉ“œ×$f ÝgõSpŸ~뜢ªqÊ–ê£u»Zý—&Ý·…ô/É-ø—ûF8áU ÒŸœšžðª$RÊîÊ}vR¡[¾ÏbY%(N”î_ÍDÇSzÉÁ¡$[20©ìKA…~JÔPZ†¶¤™ôýv4W‘U6¶-võÇ4ŒæºcZ÷rDZyÚ '‚ß6Â9^ëÀƒ©d{G('V6ð€~—eX7ÀHÛq“„ú¡è¦áDžïf™³xöñ(¥ôsHÅAºá©Úö1Xbqx6ËäY.97:Пöi&¾_jÜ”'¿ýôñ©úb‡cÙK\Ë Wþž4¸Í›‡ÜŸ˜˜,Kû•1i7»‰m,îÄR:ròÀœœðf`ã¾61“í­l]hE1艣&ΑۖÉ9oè©xó'¯:AštT<õÃncd#O˜’‰ã:õïT }£âÔ§¦&‘;6cËŽ}#òÀÐD¶ ÞEÎêû£òËë7¶&WJFf^›¼ªµ¶ùH›LÕQs|ÝZÄnø†å¸­ÝhOØîÍÇxÝõœÎp5¿§ Wûf ¾¯{GWUŸ\&>¼y°å ˜ÉÓxÉáD1¼¬Ó|±žoIªT࿎Y‘îVöÚYM«ÕJèÔïïÞZYÚ¬VâÓay$Y¬ÆL˜d˜6\órCóô«0Ô :^ŠoŸ€È¿ŽåÙúSÈv½¾qÂ3˜cƒO(:ŸDÔ|.ܼݥà\‹šŠÃÍMïïŽâ:×<æ-€ÞGÇ1XpqB:ÍoRéƒ+oXÝarÅqü#¦ŒËeéœç­¢4•KÒr}´þm—Çõ¬§§eÄœUùßk1‡*ñáSþcQº÷´­D[íÎÕoj ƒTÉ`ö%š%κ|Žo9ö±8žgà6 '¿Ú21$Êç š»<‚’ÌIdš–˜“ñ^n¦„z:ª&u庖Ë­è #bý~îÃrU¤â<m%-Óõ{7itäæ =zÊpФ´©¨è--c¡³¢E t»+Épxí^@Èùu³Ì íZ¤‘XY³—"£w ü ¡€f´ÜAÛ$±l* U^®`°ŸÉC)íV 4˜øêˆ«îú£¥\øNºúÞPÑ!D'‘ú‘Š…¨$>yæÑßsòtJòõ­pWX©5E0eí9¥%9Eâ¦å®ÁÈþY>‹?>oYVh­í£œ¡q¶F¯K¶¡Ðig<{-<ýÞø¬­ùÃæ=yZ“SƒôêÇü'pý˜ªGù'PžxC(@UOHÉýΆD~_$2ÿShÕT`¬ºLaUV„9¸Hº Œ(šaèü÷ª2?ˆÁyÛcˆ8<ÇçH¶{øLûÜGER’Dgk"% Ãñz !pŸ'V«ÂÂê¼BvßíãSìºcxìöÑ©wÜ1@$†yykγ è£Ht¾OѪÒ> ƒýS¬J0 GrÏ­O>¨…Í~Ÿ"ícx|÷Ñ©=ˆÅpÍÐú¹†Ïq¡2É#€(,÷ðaÐ<‚ˆÃs³ÂEt# ›é!FEªO!"p=D¨Nö)H$¶»O4Â;蜑ªÒ>ƒù1Nò§ bñŸã1Ÿãsž£±£óœc2œãs[¤G3äR6¿„Š ŸDàx€Oåˆ8<‹m†º”gò±Øî‰Äæ|­"ó3`øŸÀª®3p‘t!g š€,tö{øTiÁÃ໇è@†oÓs#öƒ–ý@öziâ‚é»=lêK¦#xÜŠSF¶vØF!y$•í¼*´Ÿ«Êÿ ZEE8_#Î^%¤†»¹ÜfAí8w2tdMùÆ•BÈàКëê®ÚìiÏ`W«ÂQü¢úsZ L%š®¶&ÖY¦« SEº³QÜJ!Õ§ì#Sq(ÇÀT¹ïãRt%ÇÐøüæpò@„G[†Éí·U<ßcˆP…‰ÅùmúÌÎ>N_ >ï#¤ÊÌOEá~„ƒý ¨ªügiˆfƲðX?Å÷h§á)q}ŠN…æi€x cö±Ä%ØF2ïç "1gäÏýßyzâ›uüØN"Ë6\=ˆ-#ˆýĦž‹|[ä?Ïå—%oÓ’%üË8:_ó’´o‰µV¾)0l×Zä“D[‡Æáþ%ù{òþ¥æÂýK]ŒÆqóÔ\~‹˜¤9ÍD[u ¾^­>mÅÇ-âÃXñm (]Iå×2»F„öeŸ•û*ÈìÍÿ÷»õe(Lƒl_ZO#ßë¯PÉlM㛸µ_ ¢ê5[—4¯š€*sê#÷%/¢“ØQÔa:¢nL"ÇR”IðªZÓ·T³NŽ{q¹üÙU”¾4MæÓDjEí˜Â8vn”!*iÁ §F$&Ûše†é¹ýøÇ¡•RÃ|ÞâÎm\@[Ï;äHpÑ4÷›N9`<˜Ù s`dMëX…Uù4‘M fG0uˆHÌŸ©ÔA"²ý “õh´Òd-…ùœÉz,â¦K-¢­çL\,Íý†ÉÂŒ©ç>òy,âæK”e4âÌg>xpÑ4âü‡>x€±4¢¿r0{ñdpÏ)ÔPMfG˜¥C<¾Ž 0ŠVLḤ òzqvQDÞØº%uäÜ‚ ]_¾1À Ã_Dw69ß±›dnÄQ¬B'}Y ×U‰&ª€¯Gã`«ÒD%Ѧ{¬+*Öd°Îµ¨V}{q™ªàk×½Ö—©Ì÷Øds /q“ p"šN™Ì‹ÍÄ4õ(ñ-—.tó{pØdûЄØ}Os*âê^ÇãûA¦hw˜Ô÷ÚôÀ_äFw[×íî¿î÷ä^›=wßÙ½6M\X}¼'¬ŒÚÅ⺵š–õªIPE4ÏåÖ¼$·©h‹ª"mÚªM$‚Ä·7°¥Ç{DÇ©ÑQv[É䯶< iVQ1»H*VË"^Ë5‹QNáuú0cìšøe÷éc €0B°icdC#¦LÉVq'%hßåh°c{~`ÆÔ‰-/öXè8`‰lÝLl$ž·@ˆVû`€¢Œîè8V]óðê$à(̰õu`­ Uk㙺ï.ƒ.°t³³6Íï)kÓ¾Q‰A׆gm«¿¶i£5yW7—ó¯nh™ò}ÕÜË/ãbæìظ²u®†áB­+qx¸}Y0¨[G„½‚G/ÿê"¶6%­ÎÄ •1V %1ËSš‰e‘.@ÞMJ ]E¥¸Þ<&¿Ë2ÄålZ—éf#„s·¯5žh¡»"Š¡8Æ®©Þ¬_'ªv¯~ÛÈÑš¦nˆkì­)ÀR‹U=@5áƒ)SŽ\ÞH<¬ü¡àd¨lT>µù€äjàXÕÎWƒ÷]B®F–›¸ºD> MÓµ™cz`ÆÃŒ8Pœ31„¹Æa£Pƒ-3µ?Û fâÑU%åw¢9U¤cÛ¦éY Òq]«ÏÚßStÚ7 ıñ,ÃÔ[íï Ý›øžgw‘|ÚßS-оY"’êF¹|Ãê(hOµ@ûFŧÿ@ô—¦»ˆ)oMŠN]kâòƒü˜¤@\&b/äè¹èŽ™Ò¼èÆ”C Vm¡nÑ.~òtÖ€U'ðþc›I©†åÛRª´Œüã͇7¼üôæóÇ7o^‹ “%ï‰5tOlÁtÓ¶bbëHL û³@Œ0q#Û33þ9ksíÞË„j2+ 8‡t8¢U #7ƒód\Dªêø pŽÊ3·˜|"q¸oZíh½Å¡¯‘…Ê⟙'ð”9¡S¥ö Ã_M$z¿šÈÜ‘©;†Àê—2¥h(|F2ÆtîÄì¤á2;ƨDïDuŽÇU‰ž‰Ã¶pe‘¨¢yî£S#yá>6ezGðp¸Ý—sO $!3ÛæFì¯=dÊ´Á¡°‡‡T„Ëi™¥C`êŒöp©:„†Åçlô‡£«-p<] ¯gB¡+ÂÃáöÌÙ¿‡â“Ìp¹?Õ§Û³çõáápËçÂ;>ÿö®­ÙQ#I¿ëWðd»gjî—ãˆhí Çxì‰mÇÆîSG% 7PŸ#oìߺ€D•@§¥LŽ÷am‡›|U_VVÖ-sÌk5“Ü Ój>µ# Ÿô9ŸË0p#8. —Ñ16¥48§cdPR5p(¬nHÛ¥Û‡Ø^.·B½—á kø $_BÄṫ‘8îjd~ÏÈ`Ü*Àx=ãsª@Cás;ÔýFhÛ —ÍíL˜v,8—ÛùÀë`8LÒ®£Ïsùºn…'…!sª"„{]˜â ˆ8<ï‘,0„ÌïÇ«ÀxÝ£Y` Ÿ;Ò"­ÛqI¸ŒŽ±(Õ Á9#ƒ’ªCa5O«rn;èð„(\^t buppflPjux8Üî ’ æ’™aƒ«BCàu„ L« …ÕßÛj.1Þè¸$\VÇØ@¬jÐ଎‘AYÕÀ¡°ZdXm•KÂeuŒ Ī Îê”U  «û¤íø‰fi¸ìêA O@„³¬#„2=‡í´9ÖH[) ™iŒgË :0Ç:@†í'¤õ;! ™ß1:½8vÇØÀäjðP¸-ÓCÓÒ¹Ài7"ì…áò«!1| α†Êò%Dž«,IqHæ’pcÑ«Aƒs;F%V‡ÃjM˶E²Í½0dnU„0z/"0¬â“|…ç:-;$–…(\Žt †upp~lPvux8Üf³Y…ÌëŒU§g\`Fh8|R¬S\2£é´€ SŠwJ@‡Ãêm $D!óºÅéà˜Ý"Žtx8ÜVm>—‡ðV|\2·ct0n5pÜŽ±¹ÕàápÛÖ´Àj¸B2» >½:<~t`‚u€( ó AE>ÈìFŒƒ4\–uŒ ž' ™ÖB¹ž‰Âv»ÛWHKFB.Ï :É:88à 6(½:<nK¬ÍS\2³%Òö) ¯%Þ* «Ö/—„Ìj…´Æ«AC`µÂ[ãÕÀ!±š~¤ÒºA/ ›[!^ à >8É:Dž?y‡ä[IYÈ,+ø`$ëð8VÐ)Öâ0|رÒæª^2Ç*BÉXVñi¾€ˆÃó±ý¼o‘6åôÂyVÂx¾ˆÀ³ŠÌóD4ž[Št*·†Ïó!˜g Ï#|<«ñxÞaò¼[‚ç"Ï»xÞáò¼Cç¹Ë³#É\.Ãcl z5hpnÇÈ ÄjàpX­>Ò2ÿƒ"-žÄ!󫣄‘<i#˜î ˜(œ?eÒ2—„Ëôˆd œß12(µ8VŸ÷ŸìÆjÉ'q¸ü^ ‘<ÎôF(ÝS0Ñ8¯‘öSJYøl×8{*/àáð\£í«¼ˆÅðS“wˆ­ZŠCçYE ¥ú$ Û*FÂ/`âp޵“ö{í3ÒÚgäݳÏx;gŸñwÍþ‘#-<1A¸|ŽøTÁùá‚ò©BÃá³ÈçÒþÜ ŽIBft„ F© Ó20©*¸×HøãÛ4Ùø‰ë:åX!Ù>¥6 -ß§$p¡ ¦ófúލžó§$‡./­–ëgøùQ¤„ç9?vVï{º¯š£Ájó#Oò÷_~ýç2ÕÙ^æ …æ³‹mÏòã…²gFþ)Ÿ¼žL>#ïÜšûåÝdu;&¶$y‘—[#­2*2]îÉGþ÷_ú:^•È,WTO#E¬ßvÔ¨I—îŒöìóŽ'—“É—òNä¾ËÛ€ãè ~ƒÔuÃ*"3uÛ±ö Z˜±PÎÚaÿššk­Ý™¶6ˆ2åK&h¤ttZRM(8™Ò±]&քƒv?'¡®“äó§uïÂ)D.ƒöZàÝ»°Ê²øZy-/P }! /T4þ 2„á.¨\Þìq"‡û1Jê/€¾N`{cmÒвìÄò™Og¡Ÿ/ ìMâé2U|r¨x¶üž†ÝÓ“Ÿï<<ÅìgÖ—Ê’2¢%ÜkÈ“º íž'™­ù'ÊôN¨èz®ï-áPy–eE‘t¨†ëK‡êt’Lo¨¬Ž¹Dã ;W“Q•«Sõ=O»œùM"eoË<«´*7EžvìwZòôw)„KÆþãûVÞÚ6zåk…ˆ;¿~÷'=ï™øse­Ãµ7n]öÚ™i]#a¦xÍäC»^"ÔS»BÂ’»^â›Hï …øæ‰ú„0Ëäø‘•Ä‘K‚ÐM²™,Ÿº›,ô–1OÑÉ<%UÕvša¿‰Ì®b¤÷S™‡Œ7qãm}ìvU¹ÞÕõ¸]e¢]±zdƒ?Ú4U³†š*×µm+XÆTÙqà ¦J^O™ªþÎͦª9 cR*„mÎóvl ¶mÈž ÐX½‘öqÅþaäœÂoÞÿÍÔµ;4¥a}kü¿÷”w;VÚí_ÿjt´íÖ)«tÃüéí¡mÞæ‚Úóá¬ý•Y†>È_ ³8ßZ5´=]+G¡\O¬¿ wnõÁßs'ˆ9\G#mȆ¯„ðÚáJÑ2äPdƒÖˆL“œy„Íq5¬µ¼ë:¦*Œ€þÙºêhÙIyô¹.ª¼c^4é¸OŸY•wtu’"v¾ùÛü`:L[LÛœ7(žÃ˜þY#ÄÂx‰ÓöfÑXœ)_4ùã@;4…R7E AÖh ã„AB€ íuÁ××cîÆ+×dðQÛŽi¡é)†®¥c„P½ˆ ¡c||_@Äã]7ÏB—Bx#Ä(ì ‰wêÀÝþˆç’0³<;‹\êÙiD£ K)ëtšø1¾?â{'¤Nªù!ü'l/Äq|+—Z´°Ý󢿞^´wà^HC·‡‚4Ü‹hhË+tð1Xù3îOUrØ0‰ÂAÙÕÓ0egˆªeÚÆ æ£ÔuÑOK´Æ¡ÍËíJ<ÀDÔMÅ—D&?&&Je×Zާ­ {v%1°Ï°ÒTLÊØãIèàô°’£ANÞQW­z÷ǘu7´qÜ^¼™î$T¶u9ó.ÃdO›|À5Æ£š;áÀv¿Ð\˜ß;÷1ri×;†ÛÉþß•nà6pÒúã±yÕÑ¿ šôóõþš{‚†\k@}ÓÀ½Ê†+ ;p"Ïöâ$²€†éÆ!n;ABü&λÚO‡<Óztñ›\Ìhɺ³Ú˜-m>ç)¸g/Zf~Á³¼Ø‡ž]^OõìýÈv„jcˆ:ê·c’Ëj2ø'Å„AJÊU•2 øÚ)_$ ïºwïYÛ(½¤€2» *X¿ÿíÝw?ÿàXcçÖ™Ý-¤™ã÷Lþ4Ђ(õ-PXA–DA8±ý äkX”,af$ ,+°ÙUJíMX%žã“ÐKÜ,ÊyƒAW홓h6Eþúhüçû÷ÆçCQÒ†$yÁ„€ Šq•_dÃx§ ãòzjÃxg €-šëÚÖ`Ñäõ”Eëï-šdèdÒÒ¦j[³å™úWØxcÌ\~Æ);>5ßïÿ_çAc/|ƒaáz•ZgYñ?ÇÚ·¶Öö¸—f;ù^”)_a8k)î~Ë1ˆ$Ù>/Í'šºn1±*‚—@žUiÛËÇÄ=»êßÉg2Z^Â@Ü‹\m[›ÎÛ$uŽŠø,v Ô£³UhùñªPr§« «»~5ÑK _Àb@mÅ~‡^–úià^šÆ›$MB/ 2‹Z$vÝ–J=ûäwlJùsŽæyœ~?ekÙ ¯!ÅyÎë<)ü‹º•Ñ ì( ™ÀtãØfã·Þ+‘×S^Ièœ*¯÷ .jNu (Ÿ‚¬«¦Ÿ7Ì¿g*‡NÀ ÊìPÇ]ûãV2?Ò?‰2ÅKfŸ"¹@§r`à@C› lÃ<è´ÜYèKÐîÀ9@[학Ļ Ê EtÞ_8(wÐáPvë¹~Pè5Š£§PñôôK60ÃZØÎ†ãÄaâ¥Ne$¡I˜DqQ×KüÌw6ñ2çÝóÌéçvÓÕúÔ©üÑ8»„¯Í±/î ±³_l¸/ª”Ÿÿ~0xOÉ4Çá©Áñˆíeöo¶ïŽG=áx wð§CœÐõü~Ùp} àt€ûQ|r½äõ”ëÕß¹ÝõbwŒ'þ¿¶ÚÓÞ•zÓæûCÑ‘’V‡Ö`*fÔ+ ÛÑUË—!5‹·39í|Z\6Òªiµ À©Jù×ðÙã]ÑVF¯¶YΞGä:‰…´FY '« »bcä¼à­È'éø‡¡ÆL«×Æw܃'L ÷3PœíÇ,u¥ÇŸµ_RŽ)Þ0ùsÀîKÅ¥÷ZX ÎJE5aïÀ^%2J´!aÀòíÀµí,´6>V6e&a´ÌI¹óÞÛ²­‹Ã6/Ÿ6–æ‘MK?øwY•PãßE>öCÊÚ'ÁñcAÚñ¯‚ÙÏHÆÝsÈ–1‚£ôצm¸³€mõ™pw ¯§ôw–˜l·ìøtDP^On ’w¨Èsƒ~ýr¸ž¨áÎ,/ úë ÃÈÌ‚˜Lx\­LãGÑb†ÂW”ñ_”&òÈäÞ®XüS?~Qm™¢móåXå3ÖÚ½ý3¼iðÏ|×ðøº†´çˆmXMUu_·ÆŽuï7@/ªŒmäÖØóƒðüÌ:´š¤bsñÿ’ÀS’îøÁûä¼z„ÖßäZd0/¤8rߘ4búéÃq(ûƒùFÖmUÒíÖ |)ê©j>š¤©e†²œ¤öÙ#ùñ:¶×þ:Ž×Že…¶ãø_¶‘D“oNIÂØ–3Sýàþòŀř.ÅÄñþå ònMš¸i–Ķúaꤎnì ±b+±­$ [S‰†AŠñÂyÿnÛU¬mQ“5¸C­oûß3LÑìd«ke¸|»zæðïHÃ|“&ÿÌ´l S~Ö†/Úš_ʪ£IU}{=ž:î2!á¢À÷ý¡Ë•×S]nç®OFp#Y&£—|õéPuß*U- ±K䨫[Éñš¨'fí³œÈÀp*YC‹’“ôCoºêã4$GÖ U¬úî§_ßœÉ3u›¼Ù?ñQZh ;¾Ô/‰ä<îYG—´€ #K¦^G>4üt egìØ¯«C)4¤r2÷ƒ÷Li:0B‰ÜòDIÓEœ•„³§üÔwž¶8;£Æ•4»¾f)qæ#D*Ò˜qDŒHè*àÿc¼ã½;-7^F£lC¢0HÂlãÇŽ›x¡X$ =º/jzDZ'ëûÏJ˜Žs¾çþY3¿ýM£¿k¸Ü0‚,§Ï;6Ö¡,tŒÂ²ÏÇ(øõô1 q`9%­¡W³@"¬IÎú:^WC…¯W+n‡ÈPY~‚/Mî¥óùP4Ü5vl=œ~e^B³&ëôC+gãŸ"KXOÈM™ünÞ š~þ.‚ÁRdÆ1e…UÚٜۣ 3Ùk¼±}Îi„ªË ò&§ñ]8“@ˆÐ•Mlײ-äÉ\ÒÇ’Ñ€Iì(ê0 Q7&‘c)Ê$x¨ÖŒ-ÕŒšxëP‰¨`G³ˆÇÒLñžÉŸjÇFU ‚´` áí 1Ù~aéö^´rÝv)ÌW6GÜ XîXB®n‘¸®\_¤m]Û(w¡ÚEÓß Àxú;ßÛŽÒ%8î`å}ÏäO£iÁl ‡ˆÄüµ~‘í ìÝh…] ó{/`i`—Є«ö^¸ýö£%ÚÖ5‹w™ÚEÓßKÀ˜úÛUUmg…Ì…4BÁ‹£—pÑ4BA‹¦—€±4b<+3C(þÂáØ”PS¼Ž0¾†X*ƒE+¦ðNÄíA‚¼„^¼s„}ˆ=´h ®Æ Áb-¦3/Ä¡â¨-×B¯Ç§C¿pÍc뽽ߖ՞~ÞÌõ÷À" Ò—Õ ½ ¨J4Q|=ÒK€­J…XT›–íÔ¯¼Z™–ë"ÔO,ªi_°¦,Œ2Ǿh»yc™¢¼+Ø­f¦0‹´ueI[pù¥W-Ûr6áò3wiཡj,˧–E¢4ô’ÐÙ¸¡E£„D‰ْq>5¾¥MUæûJÛŒñ÷þçsR"B:å¥q~¸9#tw¡l7Þ)pÍp= k.pÍKç”N•Ài:cCòBžTZñkžømýKõ7ž1æ{ºù‘o"üAæp©ší[RóÍÅo!oÛcÛÑý[ÎãÛï ÝW¥AŸSZ£eà¾4»wÉVÖ/³mhʼnmŠÁÛ«N"§]w<…œH«²c5rÞ‹zæK”F£X¶8s߸·.îñÞ áI¡º„"¥;ÓS¦`"$FÃc”tÕ*ËÛº G ]<æàßgooùéæÏy{àÑ.(͸XãPWåJ>/ëè<á„•>’×ðì©'X‡_td·dÊWÄyÝkæ[(¡XøÐ¶¬X…ý›Í5Cÿñ¶žs\ýȤ,Wìükeâ<¤4×;„% ôÂ!š› 5œïøÓ•îúix¹þ$|ñX¼d‚2IÛ9&3–f’—e11ÐÖžõE¼jö¯ÿ9Š9_H=ü Z_[Iç‹8Ë­”ÿ'¶oGײ[‹|ú€Røëk¥‹ž›+1¸˜;Q¥S¾ñç´Iµ(ú`P’×nyjA&Ƭ€²,ݾîáY@‚(õƒÄJ'‹³$J½x{ijýÌZ&4LpáÊ&ú©ã­TæÊÇ!¥ÿ‹=Ì̶;ƒ'™mxL¦ÏÃÐg ²¥}-@“Yx^d»¾µH.Ñt9Ù_Oàî,ÒÙò¬SHgq=ÒYÞ¹u¼ûîevŒã‰M6\L¨ˆ•µzK»ô-o=oy´ð–§üºãcPNå\ñà•9ð¢ ÇúwÕ]RýÁ¹Éª±¸¾‡ vçN¡œòw€ Aó~Sg ÌטùKÒ0ò<‡X®c»nšjYvhÇÞf»Y’,³?3Íü¥Ÿ.¦ýÒO8yÆ}; âØ]f&Ïþ—¹k[’Ü6²ïõˆðÆÆ(VUÃû¥÷IYòØ–<ë±dí“$Ánn³È’Õ=í¯_$@²x«» Éž ‡<ì™<È“Hâši÷yÆåµj"­-¹Ô±ü tç+š.xQ’¼,nÁß”b£j!ëý»ÿ!k š#IŽl#‚ÂËðï‚íqÃ¥ ùË1"&wD°½ gî)þ´¸ïßÞ¹ãYïðÌGüiÛ>±…û´—‡N¸¦û¨µ`i. P)v®kÓ_¢äÏý»_wâ •U±Öy{ÌÐP¶ò®ÆymWÔBf8©qÿj‰I£ÀK­ÔŒ3vLo®¨5éŠÞ6÷¿Ûÿ.º¢m’P胊ŒqY¤Ùí±‚ŽNçnü¯"çkö?-ß2ƒu’©9¶Ñgôתî_[²Æz‹åœ>òZõ™hK.ýL|,óNÔËhúV&íØð± n€›yKhÄ’Kßs=î÷°yø!cbuCD‰­÷4Ï7¿¼‡²8Á[{s;×5ÑÚéù .kÛ>ûÃQú¢|ŠŽ¨<„^èº ªð5úŸ¦‘2#M-#4˧‘ÅŽ¥Iâ‰çúî:ÎÐíá粺Ý~6͉/üm_&{:Xz†žÖ$×Ó={ŠJˆ´Ü…TÖ„Øk¥ºöC§Ou-¯U~°-¹x|8P^Ôð.æL)21Âüùï?ýéí®U+¤ Úd·EY±Â]O·ç7ð‹PЧé8^p4þÎ4’pùTJ'gËŸØÂ}šfŠkì`4`iy–)ª™cÑö…ú©ÏÒÈ2cß‹,72ã&¦›&F…q {âPuVçäNö¬‚b:=¤Óÿ~CÞõ1M³Ævü» ‰¾hž%åŒNè„öJ^'CîµÈ]ÿPÖuiÌ ´<Æ2;ïÖÖÈÓ²#£ó>Ž…rÞ§¾8J.éØgÎòv‚ø§ØØÚ'ߧȦ£ãëécŸâRŒ¯‡ö‡%VjÃÄõ]j°ØNY⺞ãDc†¥»{Náq¼ÓéÀ{V³3ËŠãgòWQ„3•æ–ã­”xrkÞ^Œ5oŸ‰5¯?HóÌþ<µ¼VÒdÉ«ÿ®ëžÉkU÷¬-Y€mN¿N#¯Uë4mÉl¿_§‘×* ´%k0ìÀéÈk€¶d0­~ªB^+m@–¬À7B¿#ˆkåA–¬Àq=¯Ÿ¬×ÊÉY²F†¾Ðs;íµ*]P[²/tÝ KÁ+¯U)xÛ’U’$úVßÉ“×Ê´þJF(DJ ô%ë°{aƒt[²Š'´žÐZô„ÖZžÐw<»óíµ@W²Š\ßî5 ®•%kä*5M³sÅíµ*Wi[²N‡ÄNc¡´%+ð”6З\afÔ÷$²+†m²»*6Õ[;og¹»p·Ù¼oº¹¡Ç’t=â>Ú 9älߺ!ߘå>V1ÛÀÆ¢1Z”SJbò.+È&¢à…"u—ýL®µÞѶá÷‚t Öò2æƒQÚ4|¼À{á€ÖVŨ´Í ÆQžP–(`â–l¹ª«4/a¢ýã»~˜½x#©Á‹ÉèÅÛ— ¿YÎ÷CšïöÕôíÀo+ ÛfþÔ3`"ÈE›0©}ˆ\GwüåyÙÔ0Ò.!8ÌêwSo´Y½aØÃ’M{ã~j“ógCŠd|›0þêÅIÿ‹vQ åm»'ŸÝ’"ÚIT–³íh“ß.Ϫ*¦˜œG©Ú 6Û­T9‘L•7!ñë`nT¹é²RÝžÛóùUC2KEí¾˜a–q}fKõµãÇU{ÁêUªv  ±½qi_C[«0}HõU¸ ·yM+õ¥Z–ìM!²%~ Œ«¦ïïU5û"î~\1sTÕí‹™äÓ~ùè×Uãâ¾ sT Ágµú2¦8¨Ž!Îêõ¥ÌðbÜ‹g‰­Ä¯Á'•Ó·GeݾˆINª†b•ÊÚ})ÃüÌ D£äÒ¾ƒT …±YµÖeëÊ%f›3Bf¹^ȋڞIY˜$–í¥6õ’uŽi§0ÚyY“EfñÛi¯psW1šˆm¥bz*+Èþ"~dESÙ¿å4Ü›&¸(< &ñ]YÖpZ¡{®Í²ûæš5WRhøþ*kÖkvëݵj©¨-¹j7L:SlEc˜Ó+’LNgž4C$îÍXÏ;"‚ ðå¡)÷°Ç7Μáþ,ZVl~lîà¼k[ˆÅÌ㉜Ý`+ç6ú·”YËVÈ‘›Tí­¥¿)f„K±Á÷jXZ[bF¨Ô{¯¦{ZDJŒ**šo‡ºáæ¹Gãv&›í³G].Ç+º¬ŠQ×.çõ­ó™Ð" q,UÊ=“^ãZ¨2•¶VcD_³ þ€i—'|ÚZœÀÃÕ†ENâØ#¤Î@£„¡sŒEZM=Y翟‚ÄDUyÏ ÷qír‰" SVœÝÒø‰ÐÃAä/áoÐ ãš¶i«mu ×·N¡ ŵ2´¡,¹jm[j莜°‰ÊºÃ8e+œ bPmZ$oÄ»J¸Èªyú†äÙ=#Ÿ²ÔÈ1’úÅåãˆ(þrsËqQüç÷”¿Š›§¶ÿ/Ê¥‘¤Êº,ú äÝÐ_©…[®Ùó•×Êã}îÒÇËZ8-Èo}HÒS¬ºÇ¡Ê2±Bm¸@Ý‹â>™¦±sžk M´q7Rø§Æs1 ®ˆ j„ð™xP×€Ôíýôr¥áñ-åá3>Æ©Íù &ëc”¼Ï€"3¿eŸ›ji'öõx…Ôµ¬`ŒË¦1-bŒÑ.¦ ±­£N–‚^™Ë\Í2x±ìb Õ*hmb ø5Ây¾k¦V9&MJƒúžùiêîµV„ó NƒMHà3éjÂO§8ñ]ÛôƒUâÚ¡z}ôy­Œc$K® ÁDQÓXîNdFþó/ß òxT‘r3tÍ¿ÿùãæÓ‘,!ÿ†Lâ(t ÆÓöJùû )eK rG¾ë".ldLˆq|…C^fŒ–ðÈè}Áj™aO‹ìpÌÁ0 <3‰iÌ_øæ??Ëæ¿O?ʬ. >ؕߞ"X˜ŽãƒÒ †Z.8¼7¦a¬t{9V:HÙŠû·¶~$÷!¦±SÓ€¤ådžˆfŽK”î×KÈ‹ï V%+xìåá2:ǩǭ¦6Ës”Ú|+¢0n›ú¥(åŽe\ÆÏlQ׆§ÏôùíéÚñ>7SL9E«ÍÅméC,cl;\Ú’® Ukú8‡by-Ÿ¿ˆBæuˆNØ)8}f‡Ø´©ÂCãö™%Ì«pÊ¥ËUÐ":“<\ÞM–c5! ¹ÍŒðé©pY{Úæ8øsnØf`¤¡á¹Aìʼn9~â„F9/Zanà”\ Îéž>Lfä7äùJ>m%Æ.´w¶nvP×·]Ûq×Y†òÂÐé–¡äµjª-ÑI)U"‰T–BI"À$Ð_"Iú¦MNa£c#“ ô¡aÁJôXÈôЛ=½ï’Gsõrm°=—$¬ÎÅà{ò©àï[Üò:ž³ØãR¶âþ­¸KÓ­ 0M·-^IË™ )¶^J÷óòÎDz¸ [‘Éóq,táé²úl ]€º ï³"+Øãr×ìD!ò;Ew=½JpzI¥&Ø´ÈUÂ{@FQbEžÙ¶á»^`'†e¹ œ45([¥š§lvUs;MdÇ’]XY¥$NoùŒ; «*ˆBß=¹¤ù¡Lnn~©¹äß½w•ô˜Ža^ŸoA^«zmÉÅÑêI|áKX’>iLäÖÍöYN!]™×„SQËÜ¢T(r#tŠò©ÞÎ&Ú¶{¹)p1mŽØ-ܦëB¨Téu¯¥ç:˜’ê^ ë5\†ePÛ˜e‡ÜCøFÄü4hl'¡¤NáOP™ÆiÄgÑç¸z:4¯Ñÿ޼ųB#4Všœ üÓiy­ò mÉ¥>á¤ÇY"“çŠ+ÐÁÿþO·ßå·%×ÔÝžd)ùé{æ65“àwA~KZל#HçÁ=Fû)«¥ÍG8;Iz¸ >Ä¥h4—¿¥½ -dkê÷BfÈÆ~D˜î ¸1®™/цp^¬yvèŒb…h¤gÖ‡®€)W‡¹>;»¤R`·”s£2}khÃ.'0_åclÅï˜ YjÙž•I¦¶åºfìxæ:Q{MÃ~?5Îüc̼!ûcÞd‡¼XÒþ{¦é¬2w™Þ,ï”ÎZÈ Ù–¬‘ w©Ü~x ®•ÃY¢³N5<™çå£8? ª®o6[ÈhÝÜV¬þ”“úx›\S‘ù«ÿ9ØÙäMTÄh¾áÉœÙ{ÖÜ•|tkS¼ÓpßLýë÷rMŽ?/où`tä>Ù;¥$õŠ’[Þ‚wtøØzÔ¦­smšËÙŠ'¶pŸ¾càûC-Xº®p€jæµ€!|”Aâù¾Ãåe×癞Ãå eÇ—å³ý†Ë!ÊOrû8×k@€ˆ®E{œD²ÇOÝúo4ÊO"ÑyŸ£Õ%_ ÃæXÌ@ ÝÐÝéTôºèQìT.¶ð¾ZÓã²ÐÛÜŸ®*'ðµ‡`¦€H– R±T/s%¼¨M¨¸ûÛÓã…ÍÈ} ܓԳ‹Øž˜Ï«øzÈëiùY#¾4¢óÿ²f)Wäu–,E®ág'h1šÝ,–EŒ±"¹´9\$[ølšhFG±ÙàÓ¥}ƒï:¢'ñFÿÊö2W‹ú•í^ÇþµÇ7N|ËI’€ùNʨ™®ë¸4Ž Fº«¼ ;COC`Úp+æ*·Ó¬p÷ ‹¸îœÒÕìµܱbX¡å­Ë='ôûØâZ»@–àÏ4ÛaX}ðy­œê–BïiOu›¶kvSÝòZ5ÕÝ–¬¡Ð ûÉ~y­Ò@[²]@šìï›Dë0j"¶ d©ˆ`±¯Yþ¡Õêv·¯Ë{›D´nþV £–…0ÕÏAV FÔ5ž6‡›·äP•MÉ›)¹£E’ójí³Û»†påTU&æüÉNÏp™•pfݺP E}ȰvЭIÀ=6åž6Y,âed÷=9 ËRBh–ƒ'âE¸=-ŽÃÛ@Ü8Ûû²€¸eˆsØå0|Å`c|w¿pÁ[ ×ÓGï ÷\ÏíþuØg—5¡„ÿœ”í탛Ęr6%2àk‚’ÜsæÉˬjælC‚Ë(§ìóê8Ñ@KùC}wlø›¿³àŠøþÃO»•h\=n^í==á­Ø¾|€ç`C¢,-³„¼ùTå7Œµ¡Ñ¤ÌwÙÒqþ¹Û9Ãe°ø±JÛŠç¶p·f/N…qú=׆¨Õ“S!Tô´AêöŽdûI˜ØR´2æRœ½:[ŒÜ|1ΓDl¶»1&ÒNÞÚ85-SÁ:§(õ-TÇJË¢.óåE­‹q‚4|Ö‡µ9ŸBDa|ˆƒï)H¶_<íñlç鱫£õ•_:áq)8†/˜ê¸·Õ¹Õé PÃnÇ#„šÍxƒãêü*´.DžÅ" ÉB*Ã#l:ôΠér;B¦Iì «Þ>ôˆì¶ñYžbÕg[…õ)Rö`Ѭ [wB4ƒNä v0E«o*°8–0ÅŠb *¸h¶k5/{égý|Çc"µ÷¶€W§w.Ž=ÌÐjvìÎÆ·ˆ•fEŸ}ËšVóÌy!ztg^^ ;¦ÝÏ #[ÿ³ç‹PÁ¯Ðîë§úöH«ä¥ª—Uá$~Uû™×ÓˆÔ•À¶¤yÍI]lªÛ‚rnÉf0Ç7Ÿï*(¤‹Z˜[xߢfu˜r°íiV¥9!WÁš Pû‹GéËg:I]ßRÿÜÈÛ3ÝõË é²?Bö|çü2pX¬Ž²#P+ò£ó;B©Oò$ Ó#Œ(tOa¢q¾œ(æ˜ôŸñÅ„1qø>—8$ÂY ˜·Õ'º„ÇñÙÕô*€éžèâÒ!U ‰Ïgò\Œ±;ŃŽôìž‹avçwP¹¾hˆþÃñ!^K¹d0~ H|MbØå &Ž]ÂWÍ+ aØ|j²=ˆÀõŸ>Ó3ˆˆg@_#m‡Ž™^@jÚ±G-× #°S×¥”­'ÀëãÐø%“Q~dMY6w7$Ûr&2å·¤~ÌšøN‘-Dn„2Mû4IråéðÛ^%p€o†Vwh¼½VïJ.=4þÇNe$«I’Õ@OB¢'’°”ófGþ\>rûª¾%üÿ r—ɳÅÍÛÜ•Í={"u”òÄò?opÉ›öaBv_Ö $›*î?Фþ†$%«7âà2pãÈš6Õršú³ëNÒBa( Þ‹»ó­Í[N¹ ÄlÅ[O?=ÅÕÌ èàzÆï[>3œ˜†®ízüÔ³ ­ÐffÙ6]'{Ì)]é­kK“d[Û¸b´)«‰/PÝrC~È>C²”»²€3\ù¤¡·ºñ© ôÌU¢†8†gºvŸÆT\+ӘʒKÿ¿ þdN’>ðZÅe‘f·ÇJ4çoÉÿÒÿ$ßq%þ½ 魯—HDû… ÍóöÉÊ]I-£þôˆ$0†·5üaÞ¸îe‘ÿ2ø¯D~&ÿüøó/o…\€1é"2WV%WG .Y´5®òÉ-÷$Ͱڟ÷í òO·ÿ…lcòö®Ü³· è-Çø¶¬¹±ÄéífóO°½÷²bAF±²(xc„×4%_óëÏïºà* Qi®â.ùÆ‹mIàkÆÄí?ôÍ;yxˆ³ðG‘µùQ†j©yÝyËa]åo+No·US“OÇ,¾ÏeÖf^\lê¦<ˆ>ÅŽWäCwª,àÞ«‚έ|ã/ï!-è ]m&(wB¤<6¯¿ÕýÛÿgîÊš#E’ô;¿‚§í.[!q9fkV}ÍÔl]Sê.ëÙ±±²‰ 9’²ýºG $¤ª2U½tS"q>÷pâpÿâž”WYqsµ $ºæÞSÑÿ+uKåïM®ºª{Ã;wÆ]h£^5U ½…”ô ƒÃ¿lÃqÿ­bHP†!AMw/±`”lëÄ!‘Zá¿“Ä‹ ˉ<ÿj£ã¹×mœ¹¬ œÑ\êÿâZ4Ðuý¿ ÿý·:€åoô …¥Üà÷+V¿/¡?h¶a{/6ê_ÁI‡;åç`7«èEÏ•£ WÎå‚TuNêÏ){ü9"ø…`מ⠆…@¼U)AJ·è¯òî„ïý©Èd!Àò#›H­À'VÖAKØ® Ca}Êöœšx¢ M矌üÙ̉Ê"Ø$¬Ö0‘§–AÎ@Ègí²Ûð‰å8¥µçbBÇ9(‹h…¶<‘,!ŽQV;îö5Ìgä5%—'¿5Ç8e4è1Òç˜ü:”Xž¡ûFÓ€À϶"â[ Ö}ÛL¼uV¾¬Éä7𲢕gg¾ƒûõ>ç0ú)Ký †8`È)…wðEáCš'ðl}­Öû±ww={Àúyc'ÚÂû!ó»<ÃÏôoܨ0J©éc½-`|Ó›v@7ß°8äØU•†Ù^¡Û]½ÇÕ.|í\ì~ú€ ¿ÃáI”5(£«¡d‰óæo,„ >㵿`Ê<ÙΗm6_>;˜c°á離¹!(´Åÿh­é¿ Ü,ª8w ¬ Ol <¯‚ GÊÊÐñt\WóÌPëq`Id¹ÄÌ0N|ݽÈ5Û ’Ø^g¡äp^U—E~S=|ƒ7 DÒ-ÌU ÖGOj†(‘—Úërϧ5Œýw$L3˜WˆŸ™§û¶m¬²bëvà÷§×òë¹pÜÞa±…(ŒSÈ æ»HXZß ‹>"?jŠgÚ‚†H"Û­a'qé‚ÏMG͉?íÏT³]V©`úÇ”æ¯íÎÐ.kÀÍâ£ñ²å”ËI‰ÓÿYÜw5LJE/×\diì)ͯtÈ<•—}FžQ|Î3ƒˆí%ÄÔm?t„†IyºoQÏñ¢ÐpW:JÓï£H\†ÓÌ—HÚ¬â YAb>ð\âºOëâ­¸êR4\®e[ö:áÂò¬žö›_ÏžpÉï|y¸ ¼™Ú!Yƒç޶]´m;ìÙýv#6¤V™iG5n(>Dº)}%4‡‘ßP¶’vP$ƒÂG Â'/ý3Ío.ÔŸ>üðÓÕëo®~§¹Âäˆoª š ÷TI¦’8Nù.4²hË Ø ]³ÜÏ ýüÉaÜÓábˆh< ;P2ÆÏѨélH¢z&în»Ób ¾pÊ‚ŸÚeùà“!õ³¡ö²µc)’¬|Œ¾}×Ò@¢ X ÃjV`ÒW·ÃH‡™ž·ž ÂýsNƒ|é¤Ò¼iG–êE5É+{XÒ]HH¢×õ Gº4„’Wnùvéžýs,¢Æ>5ˆƒ0ꘛžYN¬G^€Fë ºƒÃ"*î<#•ëdÜý¾ýs7Àc+|[²gJœDÖ¸I‹[ÖíRÂ<]_+e!°ì>e_ÏwÃïœ3ð6Ì‹»6eÅ6õc ÃÞ-Ž‹ÛÅg%N“N$6gÛŠlL^4uŸ®€»¦¥úêÃ?¤ ˆ;`KY€þp’ê鋳ÔNŽføû`GŸâWXB¡sŠê8;ñ|`ÏZì$pmÛ2¿ž›é·wÄ·Zl²¢¾…¿´ §ð†ÃœæC8ĦŸ‰ 9$Š ¹x¾£º¥†ØrrSRïñoÒ~ûo´)ÁûÒHJPyÉBdò.­Ñú™~é-tµ‘4 žÓدÔ,Æq”‡(¬fE,q¢3^.wW ×µ—¾G´–i=…v(•£Æ§dYóI/€,Çæ?å WñŽ'*ÙDÑ󪶵u8Qá&ª¯v“í9ü»,/syò#ò§pL>‚¹FkʈËG@¥ùm+™>Ö%‘n&u-/c–å SÈ2=bŒX¢_LAËöŽ*¾“î s5Ïà•åc¸R½b€V¢OŒ?ÇÔ ,;Šj;6Ñ×4¬ Ë%nBMꮵ¥|XÞÊÒpWìv0±áù»“YèQÎ[7{Â%™bKÕ÷?ý¢ÆEÔ`‘øœÓtmܦѭº%1²ˆ!é/´dIüð£-³=<Õ½ˆªŒ‡K*ÛZž<ù„¬ u îû)©w `ëìÉÖyhY#)KkêÖË+¦dXw4çØKš,Vy•{ V 0f¥ê¶£Ae¬çŒZ|‘øÈºt?]|[3èûËuÕ#©Úài k«ŸƒùÈ¢NN;”Ä^aîŽI‰EÄ1Y§ ÏÐÌbÕ–±¿1>+ ¦ÇR¥ŽÕ…°j³¡/KˆÎ:‘ÀÖýÀë‹©ùõÜ‚i{GJnó6x2Â*\úQ(çì^L’„ ’W¾¼gLÒ –¿µKæ!g&F’c\/U,ɽ¹…–8èè9ú†³îvEfÖ»O0—ºßV7½6ÈÈË4ª«œÖWÝ/£ŽÌðõ¤‹­òWë· “Bêâ1&L"#8[I' DŽªœÃôQ¿o¾¥d§náÑr¯`qÃŒÍùu8—5kŸœÙ«å`äTëMηR+¼\0Ý· VïS‚Lá%I°½Þ¿ÿîµùë{¶ðOkž¶YÒªÉXž¦BÔŒ”ð™c‡°:NÒoÀÇæ¦9÷àé¡ßè.êžÖõ]Þq£÷ldy[’ΰÁ:é*ý“‘M¾þé×îÄ6½¹­™;p~#pP§.›ŠY¸kBÛOY«ØüÛ–q°ö~„djÌs(s#…ÍÏÚFÞ1áÃyƒÌfÊ ê›qÝB÷É h Λ:e·ð M…þ†P,ÃäÖÿðþMË¥”7R¦z-›ý)Òœ¾[GÂP Ö?úyl–HÄ?%Aœüí ÆMsªÍ° úpÄÁ0k“5Êô`X’ïù …ìð@žÊ‰«é­›ËÛÆ³?TZ¡aÚ°cŠYxö‚20Á HÄC‘p­@6yq¡šlQt»ƒà"u{2ƒ‚'åà£m 8_“å'æp“ãB{gk@»Åõ¤(•6ù»d+äÕKNÝ5YEù³Œ56µ°„€ŒÞÛ£(('äÃUó?šª†—ÖÓˆjOÂC;È^¿ûS]cqµ‚%Ö£•i.n­>ùKÓPÆ—%‡Ïè´ÔÚ'^ÌÑiaË'd/‰ÖP„† £Ç)49¼¤x¨¨¾˜D\CÔ¦{²æj(Rãkøˆ„Òµ9´ÓäI`… Ùæ°Î$ H‚+£Ô’ ?rtÚ.Fºàw:+ ¯cq¼TçK~>ì\ùt9=\ŽcŸ/Ë¿eúÉž!ÑV°¾\{¯dá'(ÏCÊy'×Á{‚mò<°œcRºõ#ŒÚû“·BáoÏc˜ò[SŠ—.vïgÌ~&ÑæÇÏ7ø@±B÷#|B¦^€(ÏΟùj|ò*×ê#Ñ«øÀ¦ðU}fªLÇ™U@²÷LñKv¡Y$úQS§'JMÏBÎD®ã3#´R<å¬,ÿa•åÇpŸ£®4Š=âŽÄr#4¨m8®gšv`Ñ0­+]`Á09îw;ZN-ø7ý¾yW±´%å]K–ÏjæðH;À’emÆ@WŽ„Ý*K£ZøèLÏò-c%b ÝÕÁb5d°P y2Ï‚·`Û`Ð@¼¡ø‘˜‰šS 6¤2nHžðÀR5ªCkª)ËÚ()«¹Âlå –eÂ`&BnÊúŒú}ͲºçùO(‰ny9Ü‹KõO5à\yÜÃJº+ª´.ÊË»ö»4b•c-1šR5«…}¡ÂƒiÅÒp¶ä¥VñìÏ4”’ºÀ\ŒnÛ²2Üð,’ êÐ{¤Ö+JÀØk–âñ~-¥GƒÕ˜ J.²Ó²ÿ¥Û¶\mr~jCB°|WÁ)%!ƒt1œƒ/bÎrФµ|^ÖK:™æ†Mÿø±t¬Ì4Ú éòTê庪Ì| „´ùŒ´=!…Îüj$‘ØIûI=J\—z„:$´¸ã¯ÁFpàO$Q ¡‡Ä“F÷ç Ø"Lë’”ûIÁ²ø×Àô•Θ±¯§Iâ׳ÅùüŽM„ÿ®¥ºLFˆwù]^<ä*-KöQU‰òwrO®™„îÈR–à‘¼¯ æÕÓªpåûC-·k/dD¿ñâ1ëÆ¥ùéú·ÏK’í„iýc_z ú™Ý&t=âû>ý0´‰kZuhè¡;àXáÝæ@<ŒùdÒgÞáßÔàÒ1¼XÈÎ+¬%±zø¦§[ë #É ;š©½žé6Ý/í6ƒÖÁ¬ÓVÉXe¨K­C‚_š jvD9•Š\Aµ@«‡‡‡Kf¦i^õ•êÕU†´Wc\ ,Ýó7*ÇÒ²60Hq}3P;båࢠg+`£-èÉi`nv»‚%²1Ê/ß~|y­‚Rx\Ô…ÂÇ|#²uD–ÀBF“§yŠõüéŸÐ=1B^³#§Â½ÊGàƒèÑ=I0vÜCÛ¥[@)ePÄZr!&` ·˜ ®y_žB4Øœ HhÖ:Âs4:9ÒsÌLÈq,+N¨§¶V#ßðLÚ¾èùv3ÁÒ?p3fiXåÛáLâeNk oú¿”éXðe×ÍuhÙat´ìüzŽ–½½sÖÈbÒ}Ä«Šrßd9xR˜f]ìÄ”üÂQ^w þá~GªJŒ"ÌÀ¼8ÄC=põ²N¬ãV^!Î¥=Êd÷¼Åð^”ÆÒð§â Rctãp" N4-jŒí(´ˆÂ]ízª¸i;Iò,;Åv¶aç  ÙuŠLĬsàdYõ‰¬ÑsPòœÑ5°žÈ=(Ï•mñ“¥çÀä•ÒûÌ)¾R)0WhM)þyTšrÉ’½t TZëâ,G»~û潸›ö¢äy躳qœÜ–qÉYx”ýè4[ ˆÛ¶%϶Gèζí,81jþ)6ÛÎÂ{ŽéžEßóõ8"vèÄVâèf¬{‘å8~:0M•>ݳý~ºwŸÒ‡ûh2×ãÜv|†“ÜžbÜû‚3?Ë5=gÊ[ &ÎAw W{=3óëî®)óÖj§~KMv©h2Sà ô cn„¿]#WäõÇ·Œ±?­ÙiæÿõŸ¦¨ÿB²LKŠ2Lc˜Nò?tÃj"ÍØ¨qŠûÄL-ç¨zËžBùÞ½ûYVc¤­?gnTú¸+*Ü}¬ê2e,¦í’ãêd”¥ô>E¿w£ªìYq¯¨pƒð`%íiÂ[CÆ •·êBHÄÒèá¡[f°¸~Ãåhì 'ǸÆÁP–P$£: ƒBÀž#&: }W·`Ô䚆K“Dcݶ’Ð0ÃÄsVØ0Ûjo Öõ.”“`8¾©ZX•j\0,zŽîZúJLàžãYÝV¿žÛjkŰLó›JmÛNí¯.:ðv¼T_Õ œ÷-µ3aÈ—Ç÷9´¢¼ùåú¥Êw lõj@íùÎF}‰\ÅrS4¸ª_Qì´¼ÀÀ¦üšîv ö=²CW©ÿGËBý‰ìÕWl‰¿NyÃMI¶,3£dì¿“U¼4ï5üñúZ=Ø&*š¼æé81eT“'qS…å˜Ä¸q@×¹j0#…È A©‰c¥#7VCŠÂšv†LßVÃŒ ÄP„@çƒÏÍ{5*)©9G1´ú¾%SnÍ ®ƒ-YÊûA˜?ˆ¹ài&Ý;øŒ!|ô@\v8mº ÞQ:JiNˆÌèGð³ÀiJÜQÁó%ÙË’’òäx™Â_†¢2ìÛ)ËÙAm/™ Û˜öõø Ž ß¢àK“O÷½ þæ{ø ¥ÛïPƒí®F.ãŒ\&°¬zÝ9ÙÁ]ÔÏ^ùÕÁØ~pšô~òí(’ávϾ#]¹Pp9 Ömó‚ckòCÿöáO Ú¥;Pz¿ ‹ 3‰@w Ê!Ù†„z¼Ÿ©và?­kµÖ`n\դɣ[¥g”†/ù-FºÁ+$Y« q -öiUH¦´«Ï-? ?X´T»s4Çj­fEtWÁÈZ4‡5ík²‚³©³¤%|{—-4î\ÖÑ;=xoèm^ W pâ·‡ér¤ŠÊšÛy»²%€‡EÎßO= ÃŸÀ_j¤¼©I/P9üžó†#=ûÿ³w%MrÛJúÎ_ žüBls+.ºÉ²¼Ì³l…eÏè\À*ºYd™K·Z¿~ÉâZ­.$z"&æ"± Dò2$‰Ìò1òIðhÖ„ÉÑá yVp¹æɦ>Ä8GHRÆ-?z¹L‰€7b$¸º.ÝáR¶oÈÖÛÚð ñu˜j—SÏ È¬»»Lãf 8íªÉ·läþÞV Zֻ߱výM²æ3knI`YéÇ@H>þñ³ñ³á~î¼(N ˜Àw&g´usëg> ©Ÿæµ…¯4X$´ÍšLfw6š¶@®åó˜þmÓÚw½'ÿËÑÔN6§v¶œ—ë.x;g8ÏæÍ~úžÑ(˜j-šEÞ…1ùõùxC~„OM‰ËY¢uý5¸< ç¡ò…¯_Ï"ÙOŸý¬É}VÆ'Ñ]†ƒ•ÉR&Ëiã€>Ÿ£'Ó3â?„¬×úõ_8µ¢KMu­ åßžEYÚvw™’Óyŧ:¼|1ÊéV¤Ô†`ãbc€SÖü5#ÌD­¨…3î–AìjÐcÚŠ¤a?’hlÀG”“UôxB³ÑY :НèŸÚ4/Z™ÁVøó&øbðkdõŽ‚Ü\B=7+ ‚–’–K˜WŒˆ°UÈÈ#G©ÒøÅ¹ªòV\8¾’n‚8ÅR*?_¥ ãÔŽÚK³  ˜øã`Ù%〇ͼK·´éfôôUKÓ¼ÈµÚ |™š·_¬V¢T²T/ÓïøÙóþ6¡Ž~›gçðó+Ò7鎢ÞPò ò‚@Q8}Çp‡púüy5œ¾(ÁOzk®Ùß,ìŸ×üÿ»%Yw]oÈ;,žW³îŠ™óÖóýëó‰)çuýJû'ØÿnÁ¥£Kh g<·EÙdéƒC^DEü•`Ã×ð.­C»?ŸQˆÓØSåYüç¡9æ$‹á §á‡6QÞVÕƒ&ÈðÎìÉÜ2Ü> 7É)·^îŒù¬”uÈ‚¨)zåÆd?Ž6Ö‡M)ÎØ¹q·rŠt”t^G‡7%ù9¶é* MjÁž#[¬^’àd§æi =ÕMECL>/hcsž,¸Œ”Bt’‚9‡ ™#lò¢9ƒ‡ ›pêè¸}·r-.`›Î¨sŠ=ZCÚŸw ë# ¿ª,ßW‘>ÎþëÀ¢IäÅ©YÙËÁEqÑDóxeÿ¸8Ò°@+9\Œ/ŠV¯G¿¢Rj.ðåÚ!,ÇφSîБ¥ÿ£=2x#á¶~¨÷mX%[¡Mäšp&¯T~–­À¢õF`KÒ² Èâ´ÞŒçð+÷wQäïÒ—˜4 BË3 7M-˱'´RÙP Fëä»Bð'm–†è(ûys6îàXuìm;J|È­ÀÌîjMÿ¼´i % ¬:þÎtú¨ÝóšY©+Á`î|ËîôÏKC‰«¸ò£ý“܇ jï Hª²%†@90Áuï( Ýž›dõ)êÞ]¶&äLÖ’oY¾àÎß6 Ø| ¢wt¾ ³œ{¦3ÿúî­Ý€ãÈë»2KÈyäƒË$÷|Ñàêù5÷×ýðó{’—å-ÓS0L?ãѶ™.w’ØÐ07÷ cb:«¦ó—%—5„ódÌ’¥–‡5|+™y%!"©ö¦ƒàî&!twmm×ÑáM%Á^ç®$4Œ¥ßÞä«$8,®>rŒvJ~X¦ë…#±k€Šƒ/lŽë ÷ù–=✂ þ¨™!•ïÐ%P=Š"¤K¨hRzi‹~ T±AÄçþ…í8 LÞ_Þz£EãG+Ïü5°8pùPï¬ýá~¿^<ÔC‚ª¤WQÆÖ X´ñ5ÐFß›L(+ÅŽ¼W™Å—:²+p zøŸâ”æù&×§(1ø¾ŠÌù‹&Õëñ C ")¸d^ŃŒ)˜Zñ@cKGl%t¿3£©L2Fx±äb U*Fheb ø9´V+‰©gŽa8¾o:–c:©Çž‘XŽg†¶"­õø9Ï"ú)Kgúj÷k¯®ö**(M¿þÀ/‚ýðÓ»÷òª©mŠBœºÖ­{^»rו¨¸óç8ÞÜV<¯¦3% üã<×ðû[ÝóZìë®D…ƒžá™Ã½Oñ¼æ ×•\µ;'}û‘ÇàËC»ú,°à6BËs® Qô^ü‘“o»/v²ðõ Ûà%÷ö×ä?ß¿ýAëCJ®Ô´dL0è63ܺ7¦Ëößç©Í¶.eZz_K‡wåÓ1ñÍ“ÖÊÓMÈ4F·’‡V ¬ŽÐS½|xpRql ï…ƒëÀŠ£|î_tp¹ªpÉP0Ž.9¹àAÅïU$y]ûWhE5œÀaK_˜˜nìY¶éíl3vÙ yŠ®ƒÆÅáè÷4ÒO‡²)gš×¬”k`]”V¾˜±e³³V£2%ì=e·–6Ú;¦(1ÚÁ.`Íïâ/ˆçµø ]ÉSÿæáÂ'3ô ¡ä´ïÕ©.ElEÊJƒ,ÏDxÛøå¶\„å=„'և쇷LµiÌ]ˆ²öÏØ¾9ƒM.ßl[ãgät~ÙFþ”cå|î’)5gm`\™µda>Ëlex±k[;ßKv‰å»‘a%–Æ.¤ab%Jf«Ý9MJ™†}¬›ŽtêÙ\5-|E~*؇™züîù½jéï줫'59Yžo§frr¬srXñ¼69u%2gYçmÂÓŠº ñ<ØRÞ-ŸÇBϺ~„9«ïLÂ{ó 便] qWʶ""@=¯w oy¬ðãèb{Ç–ÅæG™°â0â´xë\Öœ(³êLIgutxSršZb›Ç¨’€&59-‘­D“'«ðOGt±(áÿ‰iróÇÚÄ8¥§C=½}#(þ?Îÿœ×FÛùÍq©º®8fQJ]Û± ϲdçµÜL¶5,Do„kÁ¿²ùõÙsÁ9ýÆCYð™¯>´ ̬ßÀpX5|*<†ñ!+¤ïÖú®é¶š5 6'ýš$ž×Ö¤®ä©kÒµ¦%-瘉d6ïK¶¢<™º=Aú ”uåŒnSf?-¦³©º‰é¢š/K®.K„sýW Ô³Ä·¢ûJC”]iFd³†]…µ7‡)A|ÑvÜÞ †.XĮۛnðGÔe›X%=‹%·K¸ˆrû ±0%ÎN•ÈÁ)ŠÌbÉÀ'–Ì¡>‡™ÁH‚ħޓ„žéÄž ÆÐÔ° Ÿiy®O}EFQsPï`Ë«×l?S½m²|njX”¿"0<ã]ÃÔÈ0–´}¢µ®Ó1Ì¢¾¯&.nà›Cñ¼v>Ú•(8 Ýy¶Ù¥íŸWô%´ƒåƒg ÌŠ!ˆ8¡S‡¨V §«Y!ÙŽ ‚xµgk’g·"ÁßÀ?¥s!]›;5H+wãÝXæm×tõ¡þ3nÛêRÃõÂ8ð-oÇvofàű—ì¼S)uÏöÃcY&9 fñã9•+N°£ølC¤ÄÑÙ6dý󚣳y݆ìèH”È]lÄBò¦*ëZÿ“»WÙž+ÍÃûI®ÕQ¦>ÃL?ò2ës–GFmׯÉû˜§q­µC–DÛ¶\ÁØm3ÄqŸFÛ¼NÀ)‰Èï&Ì’6ÅtÃ^˜ª@Xa"¬ Œ0Y©àr´ÇD¸Wð‚5ðékãaª@ˆÙ‡±Š>L0û0Qч æXNTŒå„þ™´¨ =8϶}¢4\„˜ã…ª/ç`s1E‘ªÃsÎIUÌ9i†‰0SSKUè`{L.ïUpy9îU̵̇ï bí;`Ž”ƒŠ‘rÀ)#å€9cTÌØY‚ˆ0KT ÄÔ2šC†©9d*4‡¿0gì¿TÌØ·˜o• ó´b¿ˆä{Ú¤ìojñ?Ñ¡´¿¡ ü°j)’ŒýДÕƒXµqÓV®Y^`© ôã£8;Æfœc+ÎÎE׬k»NºíŠ}uÃm‚&8Þ8Bë¦/"#¢‹×uWú†åÑýµ oD‘:Û5ùíý;ÒÉMMÂÒêîiA+чÍj}çñÐÍ¡­IÆz4¼íî»r¼npÝå.̳ÅÛ~M¶/®@˜-sòÆØbk„õŽ€n<Ó½7‰<7õíÔs#Ï·cê&vbÚ û)J½4T4ÐvËxþI•ApØ»,¡óh]£þ'Z±áu A¾+º¯DF Òuªè]V‚\ ͉ ‡té%p|íÕ\z1}{¸ôŸW/½ˆ’§_£;†õaÝæp“nˆ<|˜çÚF7Gl·zŸ5¨`Û³·_“°†Û.¬÷*÷ê¡LnÈ8(¨ÄØÇ•[¨øñuWq^ojô#r iy,„¡Öòs¨Æ¢øeÑ¥mÿf÷Xôã1UÿjaÅ—^Ã|1´dœÓkˆ‹2--òø„þ彊,z±sQ݆ £l„æxä\›ŸÆs-ßÍ(Lw‰x~ä%¦g¹nl8iì[ŠÖ³s¤oZ—m‘Ì0±v^XS>Ã’÷m^Ó×m’•zMùT• ×^È¿üúîí$œ˜¼Ò¸ó\5K˜ø¾ÓÅóšq°+Q¬èK¾˜† §¤Œ„ ân¾à²/ŸhyÊé×¥óÞµl»ÒT%Å Þ\”ô¡=!^¿Û÷ÀKqEVƒ·Â¢`b³7Û‚‘nÚ‚ ^þЩò<*hEégÊÇ@/¶ÚÍr1è.Ý`ôöT”çÐcØX‰;öT ç cXç±’·ÍúÖäß6.!a—E%^•)t ´8Ôž[3åËÁC@AôÑ#°§ãNÁðÑ^>rx:Ôá¼—ï‡=èp’ƒÆ‰ÀöL¾Qâ0~T–ó#+Ææ^"¸qG0·ƒ¿hé¼–.6ß\Ç”ƒ'Åét+ÚºÀçµéƉ륑Ëþ‰½Ð²ì8µ¬˜&‰é›ÄšTc¥ô¨(­Â$kë.íå<«ÇPþŠ|?—DY‘ðäUX$å‘@àoy °ëXªÜC-ÇÜCùóª{¨(¹æ³ ÷}?s3é¢Çúp}GZ“û¬9h“®-¤2ÝA#ë\èeòžu-ÏëñÓ{ýu’ÀQç ù±¼C=xo¤Ù¾g$«IT•·´xÉÒ7,«µŒMfM:ƒkÇ42g 8¨=4Øs a*F1|.úas©3nv£!ëoç>˜SÔy]Ý—žø–”/ëã×#îUHe¸³0oOarÌ èÏÔU¶á‚.,«qª03¥¡VÈ*D= u‹» u{ î+ÕÔ¢ÑηRÓtÈ ¬ 0v4°w)8èÙ–ìájÉ'Â0Ÿ¬¨Î°¢ «LëÇ²ÉØrÎ7[VùKã•bù¾ä% Ë2vJ’d9†çF¿ŠŠçµU´+yrBå9€ã¸Šþ£&EI\‡@ Ô÷IáL§;öÓ*z*ë¾3i"&4ù¶mÀ‡Ÿ#ÖeÚÀ¡#©[¶³_Œ´VVä"ÛWá‰-Ð5‰Ã‚}·!U[ðeÎGç<Ó~΢Ǜº¼±ÙçÙ ú"¡'¦qÁ)ù|Ýû òÕ˜=¢¬£s)¹ä3= 5lØ9Iá?«ó*’sÌÚußd ¼²›²ñ/ðñ¿÷ÈÝÿô×Îq8Ž›‰Á]ßw‘¶·ó‚˜mCTy,Ÿ¯¥½X¦nê È;ž’óžÈðÃCñôMËð=EÞÈ;ÃôzßHñ¼æÙ•¨H®îÚCv÷îy-y@W¢À³Åt Ãê{@<¯õ@W¢ ßîÂûçµ$Y]‰ ß–ÛnQÏk‹bW¢Àº²^°™º€eœ¬'öJTØv/„Ýó€®DÃÿ.ñ¼ +Q1 l¦ñö£@<¯‚®DE0éFx^ë®äÿ&Çœ Åó*Q¢b*6 ÿœÂX_ †=àxæù6^5²‰%Ãì‡ý0äÏ«ÃP”(™ˆkBñ¼:‰’§n¾ýå ùJÔ&:Üz«„ôî–÷<ÿyRvéºw¡©D×¾+ùž¦ÓíBȵSÑ0éS®$Ö¥«,bÕê°©Ëœ)s¯Ø×’–õI^î÷ð5ñ—%eòÒþ*#¶…ÊáFM![q—Ì*w©Š‡ëTÝGadŒ?ª7e žÂ$éSKrïLpÖìê²=â¿ý ´¯ÄØ£é ´ø®¾ùŽéÃ?ÂŽv‹¼rSD]13²ºL?ÿüp:½WµH–v ã‹=­NUwäÂî¢o––´ªïÊ[úPßôm‚E÷L–¤a–óäF m˜/šÂºŒË۾ƴj˜ŠMö§=§Ó»µ²wË"îÕzþ&”±÷H¸ùõ˜D<>o±Vi½}Z¤a:°÷8*úw›±¯ó²˜1v«Ü¨ñ†å\GbFœ©üà([’$«OyøÐ±i]‹{qpó­ÔöÙ%wY݆9I)M"¡Ë—…x¿ËzM?Ѹ¹¾éy:ë¬÷]µó•»jH•?x¬½µvNp-ºŸõü¯E÷‚ø1ƒ©`Œþ÷Ù'-/Ëtß, Ý,hTCPDq‰O륹a€×`Ë Úç 2ôSs„Äc÷`Ù®ØÖLcÌ-XWð¡&ši±ÊºÎ"—OÍøYwâ»;šhý«÷0#ü£éh ÞÎ@y Ê rF+íVŒ•R‹<˜OÈ §n`ò„—ZwJòã8\È3H¸%BE9ŽÃxædûÎ`#÷(¶Óäû³¦C}ñ åÈ|}C>d òPk¸çÅz#kÊ*ƒ¾~8e1Of‡s ÛÜhÓÁ~I¸ÕEƒ9U\°Ì&–išÅmÞð´I§“0#E§2­8!ÙÓ¦Öè-È}É#vô Ë@àÈÌC7<íÈHg'ȤžA¦Fs<ƒ.7|Ãh'p¿V$6ßêæ‘±ÉaÈ|ÖM¥°G$ß•Àæœ6ýS>ë¶„'¶9¦I~ Íë˜õyM¸šÊ«þuWÖÜ8ޤßù+ø´[ž05$ÁÓ»1=U½3ÝÓUQÑutÏSÐæX"Õ¤d—÷×/Å ”,°gŸ $ø™‰<ØéÎ|GW#«ˆ=Ò'’'cvgv ý‚ÝÇ„^ÃÆ@ÖÇ•ÁÀQÍ|{ðT½KØ#)ÆUçòÊ8ðé¾ÚŠve¨PqõúcÉ)‡J.è\ú¶XE ž=ªÔ¢[?½÷úÖîo aH/ÿâü÷Ÿç?ž¡UšwIÅR¦GG®Ò_¨Cât—2}:® ÓÜ­ÓyrÏîÚ •뫳áÉĺò½{=–|N&^ùþ½{2C$þÛý9ëã’3ä´Å¾ƒÇý}_´{'Ùó’Þ½4{.uî9ìyIÿ^=áRãpæ:¾~Æ£[“åÐó&©y ;ñâ ºÜÁ¹aœ‚þ½4‹.wOhY§ ‡¯Ã¤p4ZàLo冣Ùw´cÐÅ^y5†vfÌ…r}yæveÆqr½y=F;º^Ð)6…þ ˜îب¢_¯Ä€'>={fœèB¥÷åI{¯¹)/tíÒy¹g/Í “Ø‹—ûö ,É¢ŠU4`nkmï—_æ‘Ê–œ5fm”w€yÙ.NýfTõð¥Yt±ƒC)U}|5V `ˆ_V·Ëfw§gŸÑËa£ý5™UÔI·ªéãë°«¨‹b~UÓË †åRÈÀ˜^òò.>0êüñÐZ:Ïn¾EÇY9Ïë$kÈ⯼άwf*ÔHõå¥g߸+1Fª7ºgÙ…Ö¶±[DaˆÜÔEöqyØñ]„‹ ÷ÝÄIõXÛ’YL1–ù_îqSa¸æž: <pÿ€YVåÎd·w²Æ¶vàÙ£ÇûÀqƒ+ Í Y͹Æ5ƒáàö)àÅR¨ÑóŠƒ`i„×O*®<ûY¶†:áxqjôMÑéaÁ£’Vüƒ&áB/ß;\’µxÖK]nQ„³,õãà"K"qàÚØ‹óÂFÒð-$)wO£ ÙìÞæÕt*ÂOË¡¹Ë á­2Úm]ÌBBsƒ™…ì¼ \ä0zŒàaì:#xZÁ³šó}kû(½D™ ù[@ôÁï xŸ`´ÌôÉ£êõJí|X¼mó=“•ùæí×-×¶# !^©˜Ìmñ|@8|4G<´BK>éÀì ‹>'ëÏ?À5é¥`ÉùñP ¤p)`Ò E°Z#¬µÎ“¥[ƒóaUMc!bY‚/–¦¾¯VX†¬”/6Oí˾ᗂ¦­jãŒfU¬!€¬Ž7Fˆ2‡´RîØÖí¢Òk`‘¾im|2G¯ŠY–À«ã˜9v…l³_)ïÖËv•3oW×Lp«b!luü2A­Y„À5p ÒÄ)H3§ =œ‚ôr ÒÆ)H‚S.<#œ„¨p"œDØ÷Ó,s7HÓ"ô œzI®ãH܇ "C°IÚ?&§bþëM¥èË»4šóá?~þõ÷ŸÞIŠ‘D¶¦¬9apÈSÅÊBgµ´=J[¤ :Ÿ £-SÍ«åÎÆÙé‰Óü¨"N¤šŸR½ÉÃTEóg(ÛÎ;Òô(¦þiõš"¸JøàY 5E€_Bjõ /Êò̳½Ôõó$)»Ècä¤Yáa×ö4™fô‚+3¢ºÝÝ‹ò5Ãï7æ[Öî.iÜ š¤¬©÷·wæ?Éc b¢Å‘Ųã.+‹Bñš³ƒDž–>óTv,’B—¡9MÚ2_wø¥5!Œm}«.3!ܳM™v¤­ƒñ«#mÈ1ÃwÊù\xRëÌ Ý3ŒˆÏøëJ¥ø¾—¦9òÉEš““q˜#/Î i8 »}ZÏíÓî®®¦‡aúãy^Ñ52:ÉAÄÛzÇÎgÒág}×öõD[´Ûïtj¼,:úò QÖÂÐŽ»(k¼,XÚºb¿‹1Ö•ExŽëв«‘µõ¡ÜË“mwyi;6&/&}a-ž |.Â.F°jœG3¡ ²Kƒ¦’ÊsÿQ65¸7‘â2A);sêGRSÎa*âÊoje‡Æ”Ó{ˆP–ÚS€*h=ħ€ÒSˆÊè|\!{.ÈN‡¨–ÒGÕ±’ÕÐú”2V¤"jßæéF±¡1å´"”%õ  Jñ) ô¢":—ùz9Ù﹡1åt"”¥ó  :ñ) ó¢":Ño‹ªgÔÒxY»%N}ê¶äà)¢í÷º}™´¥œº|²äÀSAß:ž| Ý¥°Ÿ¢ M‚ J$NÓ".B; ±‹ršîDúÜYðî±nîY ˜ÆºÏñD•ùñfÍ"/«Iã{¶éñ޳ý”–¬, Ïj´dçÃCêKVºÍ²=‰bÔ'FˆðPät‰xY€×hIŒàÒñ²01‚£)Mä{Š#ÀÊB¬æ\µíŸ B:»x3sv5¾ª uRPM·I6ÆŸÌr°àªá6¢e±êáG<ûëÇI›¿GÚ5X»ƒßHÃ_ÞþdöÏ´*”±óµgÑÑ9l"× Q8²É\ºêž·kõ-¢¬9Á2îi¼Ű¥¶ÌeÔ‚ÐŠË K‚/w*‹¿ œ©•kއ4ÕÒÅt2j©–N(æ&X¶•¶õgоVŽôC%Oé†J®ôB1_éˆbÎ"_É´±U׸Vžšö@%C-u@%7Mñ+f¥¥.¼ˆH”cßIÂ$$gFŽqÛ¶›9®—f¾³¿w![—éc»I¸{rf„FkoÀˆÄǹ! Ë$íI#ßÑâI†Btǧ®,2¹à5’&‡{¦ÕOܲtPŸöd´>ñG­Ï8ÙܨlS“ÖÓ=Dm1IO›‚Èûm—±Œœò.—Õß?þhR3=‚3Ù“Ÿª]™1ß“;œ@ªïŽ‹¼+Ò~ÒåQ">ýB ¶4MsƒišªdGSÉ&äãK@3[—ÓǤ‰›1 dgÖ,§RÆ éG¯ÆŸCJl?Æ,{$ïú0&Ú²#é¸9šnݶäýuÅ(§º7iR‹¬£@' SvCîv”‘ÛQNiG‘Õôu’ÖQHÕÃji±Eš¸Ó•Ñx 饤>TŠâK8%ª:úŸ°ç;ëÁPM5ý›}ú¤'4§%Ä^\Œåz NÖ v¤òóiTÑ|ãT2ŸfP_â¸gqêgÂ~‚c„1ÎÝ( sF‰ÙÖqÜpÇ ðr&]Ÿœ3ø¯7fÖIÔj˶¸HK"K/¢0 µÜO!?v"ž3¹+ Ž]Ž» rt:$mfe¡C;«‘<ßpJñÓM²H0£—ûm?ð®Xô sñ%ïY¢×&©Zæ¯Ä#[ö ZÅ£ä`ËAVyK}Ç¢OJ®vl3ï!)hRëÛ™ÈsH ÜK¬hvóØâ4Ë"?"ßv'‚ÐC!v}YD¡ßPïŒød9ƒŸ¨Æ„Ɖžª¦®C²CÈwkYÛ‚(p"¾¶ñ²`mëj4¸ËD¤g/$/ t5Ä!ò‚Γ•EΘ¼FÇêî#ÌhYhþÀj$Ww`\¶´ß˜cÅPYVÞ0EáEº‚ ü…Ï¿boä%¤O¦ ’›& á|@:x8Š+Ø~ûñ¯M™ÝÃ{ISÖûÖÜà ¼ I˜÷! »nª·#Ýdkošä Ô\ävGoÍ™ÙZ§ º'‘Ñ5yiøÃÈ_)týñ¿ÁøñÐ Çõ‘Ö‘S…³ŠVÁjëŒü7—m è¢Ç’· bo]  Ií^Cd³­K8Ùó-mó˜–òŒLµ¦œÂÇô”Ê`JSû„¦RP5”¯3ën·hzXÞ¤úOÐ*`° ¸`‚U #,ÀUÆ M©˜šRôHÕpÁ¨èq*ã€9T%ôÇß“Ív½è—y Ú®I <0E+ÏK`åù`ŠU ',ÁU ;Üî¬v_î– J.AÜ7ªæˆå9b°x¬í0T1Lmö«’{›~±YÜüœ‘ÿßòDß”E_²äonæè¦Ÿ8©oŽM°éIÁ“•j ÑAæ\)ÂÂÙL%U¸dH:†%MÏ*IbŽ© $K>yÜ´ä<Œ£•RWˆU†ÎKP¥).D*Iû%°/6(r;Àq‚Še¡B,rã<*²4Ž¥oc—¤W·¿ec!9¿w"æD’ýÂ>ÿ©Þ`óso‰ mÇRj¨EJuÝÅ\DêÊséP£Å Öî¡YY(&Ûš¡Q¹^ØI©¬,’Ry±ß%¥éÊ"¼F ll}XYD^£Å>ê°²Ð>ÒÀõû¦¬,t†÷5Å0%MG‘@ËB¬F‹7~8ðƽñCmÞø¡Û+‹ðšsÏj_Ö-,ÎÿL>}¦šòÌý®Þ*·oÝF\Õðw¸Ó=`5ö1[J)$nÙb-ÐC¬õËå‡ÁXXlCµz=ø:¸Ã ⨄‹2„°] Þ·à-iÜ,Æ4ýŠÕûôͳÔÏìq“çÌÕœiÃÇëÛaÌ×®^mßâ‘‹„4d6õž¬¸Uݰî3I»2+ak[ó¦/Ù›ð îÜüµÄU•?” hÈWæŸéêycfI/bšYåãO̬Î1Ål|¨ȸ6ÿBÖÅY4ù(èꛚ|‘ùQ³©Ü9V“õµKÁ2kƒ¬Ä¤•ív›;ª: Õ`²¹`¸ÿy¸Bè`6€òëÇ+ómRÑqHòܬð£ù·OïÿüöÝûÆnÞíʨ6V²%DÚ™ïþþö#‘ØËÎZ¸®ï[³Îs%Òúýr<"b7(ˆ†â²¸; 1xÝ ¥µ‘bijø*+ ¼q,Þ†JÈŠ¶œ*%ƒüÉHœ'¥¼Ê@-'I©‡¯˜wÈŠ”êahY/ç ±+e!t•|3D®šm„àUsMUoŽÄ‡‚O‡n|zhÙêÛÐÀ5CìB¶Q ])× ‘/±Jð/“<ËìyiŽÓÄs"/÷óÐANœ¡»¡¬ý—ÈŸ1°Šrºo’y¨&¹éž7÷ÛÛ&!Bí®6ã•ïJêÈ ÝEzœ³=ðüxYdVÄk.òž+Á z:2 L¡ƒcÔUÂXÁÿEùÝ88Ö-y…*‘–)„…E Ð#ÁjîÑaÄöåLB™†+o)áiÆb/Xð˜l®ÂªñÚ/J.CáÓl½—‚%y<~N;;¢)Gyätv6Dv0SJ_+%_V5 -Åsb„OrøfðÔŽž< Î*áÀe7Ô³‚g¥bú.:£Jƒ“§î1—Tix/!ïNŒÝ¹8´±ç¡(ÄN!dzqç~ª^Þû‹’%‰å|ó¿ÙV»ŸÆ½WÞR¿t7äŒè¬ü•Ýýï²b±yÈ×bíÙaŒz· Zº±š³…Â}eþL†‹ŠQl8òÃøì€_¬šE É0Áîq)åÎaô—"ŽãóaÇæ'Bù23¿2*BD,;|÷çwÿ?$ãç_4“{)Ô5 'ͺÄÍ5ýÈu¨ÝÝ5õþöÎtükã`JDD˜ +âMñw€^Úԅɬ([Ð;ÔkHØC>hpš¶×ô'»37åíÝÎLhÞOžˆåéáš®u˜ebRi‹yÓ]³«ñx7æ—ª)¼(É(yÉo85>Y)üÊÈd”â¢&cÊG"¼U“12Æ8½Oƒ§Xº†à÷›´Ó þW;ü}g±üC0Š£¨Ó™±„ª–ôüöohž¢„œ¨F†%*›a"ƒï«]³oA_„à—iÛ}b¾ýÕ BpoõVæxÀô€×LGd: †p@L> "6ÈL/#'”†Ú†ÈNMÒ<ÑsM;ë´)è´Á:N;íþ?à’#ƒ" ãèPýQlÇÓ¡pnÌ÷‘ú,M×ECá)ŠSó2 “õ¨| cq{z4 z͆œ†ÉBeú\4xÄ GÜÛ&Ø1å®ÅëbØ:ùàçŠP'ɹN”ÒàÚ|ã^dѦ[ߨ¦nÌ7èŠ/•˜×‘•”|cÓö¬êû¡ëÚãõÌŽnLó¯c²Œ¨ò+éf¹ÁÆÝî2 WϘ¥ö5À8J¥Ðá1þq¾¹È|ÞÒF“>OHµNDxÝm’iÑàÑȾ6a_;<1“a¹üZ6»}²6Þ“eòÆ ÆÏ<6~Æó&ül¼6žÅå|ì Y6¶ð1e;÷ŠoÊ"Æ7ÆŒ/p?ˆSSÀx“§@ze.OìÊO ËÏ\œçÐΜË<—yXõ„†ñü¡tÔQH´$óˆX_~ý¥cçûª~¬:V&›÷C½~‰¬gâÿcï[{$·‘-¿ëWXìÚíLëý¨èñkìëöôºìëÙýÒ $ªR.¥”–”õð¯_I)õÌêL†Ê¾€1´*%…y‚d F€­ôï÷?€mKd4 Q;G£žd)75›QÕ0ÒŠAEºãÆâôúúãBKS‹U²öÉ d0 h4—M„‹úŸÙ1ó!+s>!Ùöµ}ɬ îê(Ûm>cv뱉xNËþ–Vô¬÷rÐ3ÝçÊ»+ë†ÇH˧z{^Iæ‘ÜËŽ†7#Xå §T³ò’¹¾ ï^ÎÀ×O ˜‡|Q÷û÷ÿ~£ïO÷Ø¿Eóç4”·|³QÔÎúšŒ5>©u6=fsÒäí›OåØì]¦¡àÆüÁj…{)rBdÔ¹…¡e…y8·] ŪᣘÎA¸ŠÓÎÙ¢«åPîf(Ç:R[™Ç=iäª+]£/¼^òþU‡Â×®ýA V `© È<€É° |uú%X‡¥2 óp.‡z!D‰µ™8ŸÿbµR sñ[-Ç…T-_‰~ V b© È<òã]¶Þð,įÎE]­§LLökâ_A•Jð{/Ì47<dzBˆI#?ðü Œôy l²C yLÎ@wµØŸFØl¾Õÿ3þþtŒ·ýwsxWØôý_<»ºC¾ØÎ†×ÎÄ‘éDmøKqw&èÆ© ÕÀ)ú›`›é]Õà©ö§'¡çÍ…+P¶£-6Ïç¢ÐáÅáüECê«„Ç´$}ÇpbÇ2<Ë5hdûžkGiêÅ‘j¦…<žÛ Lô¡ÌùŽóVÏd.ÎÑ Õ=s#ƒ=îd~€-ÃÓ ~Üó\ìʱ1ÃÐY'Hdøì²wóëÙìÝâÎÅþÕ³Xë6SõÂ+­Ö¿nër«ë20¯Q±Z¦ºNtƒ Úú¿‰e:ž¢û´ §•Ñoì â8Qý®*‡_³º{î‘a 1â˜} ˆ°ˆ¬—Õ*úû‘‡âl`‘–ÁÄ.YO<îv¼¢ Kum.oùvÍ2ÿfFrX“ÚêŸÿÈë_ÿ‡¬7MTçMë»g-‚rÉ8$(cé¬*/ôºÖÖ²¶`±ö: s±“˜•¼ie@ª<Õø,öa?Œ]©O>‹|Ò3ãƒW¥ç¿q>^ F)D“×(Ë™¨&NÖÖ¨³6F1Äð¿z›>ga­UŒµÙX¥}Ìdö±s¥eüZµ™e"¬¡Qgâ·¬Sˆ×°ï#Ïwü€x†íyVø^èFD=7¢¾kª«NKöýiá)Ï¢Ã1¯é&ªÊÇš#ÓþÜ{wL²ò´Ål^n ©'Ì€ 6ëXòV`wáVÅõœ%/ï\jÉŸ*¸ðÄsoÛ¦ÌLfôäTÿðÝW"ì³öóüY‹ËŠM%e‘ˆÓìDçO¸œ„€Në'"£¯Hï4’$µÈ¾SøØ%¯KñoÖð #%YV;Ï‘w}«ßíI\M3úßy¨¨ú€×σEЂÂ@Æx]D_¦ÌáTà¦*ûs(Õ¸_ŠÆüÒNü M|¾öÛÁá°¼¼«®[Lój r´X†Õ@&ïI„ØQ¶ÂP[Í¡J-ÎD¯AEœˆ¡I„Ó-29Èì¢tˆCXœbu…C`HL¢v‚¼p¢u0D–ÑëW[«›ÇªP£‹PשU5]‹ §˜Ëtk¬ÒM"ÐŽ9?œàÃ!yVø¸ÆÝãšësèËsë¬Îqw/åæÃ¥ µ›¦k«l ¯–Ôn JUÓ¤<¤FÑ“†Ž¥ôD¡2»M ©Èñµ5ŒªUà z *+á"޶bQL_èZˆ›O_"®àØâ=YÈmÅþž‡‡]{ÊJ‰mmK©§øtE ÿª ,ã>!Nß}mZçP$Eì‹DÖÇ9´jj¹A;ç°*+é\]•.ÆHj ¥!kÀ£ùSˆ¼*S>‰Ê6òÐ>ºfÄÁ} ò*M¸òÐ’m¸Ô³"Ãñ¨K¼8² ÏKìÈ(¡n„+Zò¬~€Ï&KÓѱ%ùëÌ‘Òùò[¶å«Çõ´]3X猒:mFy=wDHÞ¹ô|Ê»6ù±HD"òÞ)¨™7úŽÔÃÜ2š¬I¬ ™ ëk1ØZ}/o#XŒt;·áonøó;œãÖ‰SyÇc‚r¦ßʱ³Ð“üBO}5bÙW¯…ûlo}-è¶¿ÆÕ ¯yÙø-ËF«D{½šÃPL{ m´ñ½^Û±‘›Ýb@(BkáM¯¥ôQ]_gPh5¥¤uX¯q¸>µ-ÓµÍ(°ˆ‘•fìD1MãЦÄWÍ55g§šFßN}ªófj§Â¯7ò<ꎒƒÎìCnœ)Ú©žÚ¦³V&)ËíìTq=›IJܹÜNÔC›ñü§/=®žMyW‘Ã.‹õª<6YÁÓÓk²&!b½4^Ù#;=.yiš[ ¤nä?” -š Øëô‰1ØP‹¾þ× m÷ ’ù …š[«?á3ís]!HÚˆw6ð¤úÀÜÇ6>ªMuXî#›9ªa˜ã2ÏÉ× CòXÏŒÈ×26ã/¤¼f›á¹ÍœO‰¿6Qôs K??ešx=âõÚÕ‹ÓÄëA«´±+ &Ãô­8°,Ÿ&–û®:nœØqY–鳡}…hDvg0EÏ MŸD£ýsý{>2öeQn l·0žê^vbDz”1û)X)‘ívAhäõœñ$﬈(ð€¸ž ï\‡§öió\>–zËu_Eĵ) fm±Ÿ³XD¼¹Ñ´÷ä¢àE¾ÎF ù‘ýP¦mN½!wukÛ‘‚Yv}:äeÖ@<öCUÊD{&LÈ*J]>ze]g ÆVû| 4o4Ûž +Vü&SJÈ`†Þ>×Û_it22Q–E'š¾8æ…ƒ`ÞÖ^è:&7üÝ {CqÌ[Ä:îç0 *{‹HgF °ªcHí…à$²” / û9„×Ò¾P‰ñ9| d/@TåYŽ[ûCNªLô@Ó³¯¥z ¢׳È^‰Äv…Æt…Îr…Åp…Ín…Èlµ «/ÎQ.GÙÎNP±B?†£¼GDÕÀ>6% AS×À>2UnGàÐXݤYE£¬Zòvºf+Ÿç ZuÂgÀâ0?ÁŠ¢3pñt¡¬Hœ# 5=+èÁ©ºL€"éÀ'ŠL âñÏ&¶Í]E1¦sBWЃ)bu]˜Œ¤S¼(:1 O/˜Ü k²Ñ¸‚> ‘ªëÂ(’ q¢èÀ*"ÿσÉ?¸ÿ¤übñ?À‰Ãÿ*ÿg7Ñ.C)÷{09?·u¦ç6Ì”à¡pKŸšŠ,%¹ …ËxêüÑ©<ˆÂðobk‡b) —ãB%’§ÕYáS¥y …缌 ›`6èH\ÎgÑ*1¿VÿY¬ªZ°EŠc‘!µx. —û:%ÎÇàÔ¹`Såx …ÛGºœâ"tL.¯=dJ¬©sÚÃ¥ÊèŸY™yºìV2³#ŒjôN!"p‚C:ûdýœ>|÷#8=ÁåIQÙ¿Uöè[½ï¬n³ºöã¿~þúF—W”$Ï'`Œ*¥ê†UþpÌ Z ê$mh¥5§ŠØê8Õà;Ï¡@&1R$›<+ gX™ë‡û¸6Ý \k²z¸ÓÔfÓкÙÈ g¯MûÇãŽzA 5©ž±–JÝ_èˆ-Ó]§×ƒØþ9¿K)l#^ÛÀÃê¾Â#„㬚ÊU½„Gøf2i*CDð³mÅžßx¿«Ø{_ ñ·à+á Ÿ`4bZ„Øz†È®¯»`ˆ5¦¤…3ÐTuOŠÄk)}k Ej!}iØ\Ÿ]O¿¤XÆn)çÖÕQ@¢×$†^Na¾†ÕïºAJHžádz~‰ùay‘å¡¡zJ¢—¾upPÂí VìÍ#«_þÊGè¤ÊÊc-Ò¬ò󒺼¿U>(aóB®bð›Nè÷&û‹ “ý+ þИ€] G tžþµoÂsËšËyþVä-™ ^¦š¬6fÃãOǼ:Ì~ÖÙL“Ÿ (ÊFOpœôX £ºH4^íBü‰Š¬Š{¦Å–Жû¦°ßšÜÅÖ$å@C 7ðœb—4Â5鮆¥Ô PÍõ?WS[‰/Œ5âëºGLV_i!b0üò8£ò5™À%%×µÈsIøÄóÂÀ´BßHJUc, 2^7Èܱ®0†Yþh˜Ñ…õ iEéb`4àºØ ©•Ëwc•ÁŰ<Ûƒ‹¼ž\Ú;—._²Ú:æ¤)+=%L'øq4FDFUÄ×FøH”è¦aüwíË¿°{‚oÕ %ÉVŸ.Mñ5š6U9ÆØÑÑ»ÐÛ0=·+°ìÏ¥vÒÉÚˆ·6ð¬bo3Á7ìiÔá)õ4t“^Fàkô2FìX4´£Ôƒ0µ,7M©“’ˆµA“z&]©— »^æp¬è&mÉL/óÝûæç_±–À›GMïRr„ˆ**}Œe8®íZëœô5|Û³Û>F\Ïõ1òÎ5áü¸II ¾êºo­VÖÿüåì¯Ö“Lv0:ÑX¥1ñ¯>!๭Պþ~¤u#;Þ1^¾.ŒÒ×t$/nš[«ßVLgyPî„mÄkþ°bo3A8Þ2S¨ÔßLðÍl˜©C|' â‘„PÛŠƒ$ñRϳ¨MÛ5˜ÁcÆ+õ8þÉ®yHëigÆ؊Ëå¾?c†G>\ÃÕ&eŸÚ0äû²PŸD[¾éúkôA¶xV ú özÚuw”ûïY—’ؼ— áµöíÿzÿõgµþUÍ‘ähRýÌ,›½.*×hÖÔú7PYp“õNQ–þ[Nž:ØjÓD'ѵ¤È}·¢¬ö$‡¹Jlˆ¡XDŒãÅ©×02¯.å )üù <¥jõ0§ZWCR³|zˆf¦VWƒRAsyû‰µ},[q¸|NPª;R™á Feªç`¢p~~Éä2íD“í³Ë%ŠðÔy~i©D Ã0î"̇p\~ûèÔèƒSg·M™Ü1<„r öZY,eõ»äPËó8¯¦z¦ª;Ç JÒ—¾Æ<Á ÐH=3vC›ZéÑ4´âEa‡4Zižœ¼ën·_ÃÑíG’çc»þ=žq@g†'|¹ÖÿÇïDzù_L<›t‹k}_&Gfï˜Ù›3ëaùÂZ)P™Å* u¸“×3Ëí ‡»ŠÂ!X¨}ÐIÒˆuSØk« öààïO¨aÆvÅ®bö•oâUô6ß4éÞ†1O(Æ™ IÞÇÛÿü±2C·×Ü­³ÐÚR7½·7ìË2&]»­ùžk–gX¦û4ö¢ˆ¦„ú¶G~¼F´dÏìš[SîcÒx£†&~M,-+=a57eÅØ­È!'F>T—ÛvÈšØ:›Û>«×vs[\ÏmnË;* ÜHyŵͬ(Yc˜¯=ö MÄÖ®­ÂY“»§þ÷ÐaºþËÏßlmOú‘ô¬ÐPâ%K%XlTÞÖØšÞÀ-|©=IQñ ûçÂF´ŒnC’}VÀÙr8Ô˜X‚×@ž”q-åcâî‰]õoäœKFwb)r´õac}47ä¡">‰]53ö0Ñ2qk ¬iõÓ†U„‹]¿#Ñk _¡ÇPí+®]ÄOCǰ-'vf,Û'IàNdS×2\Ó]ÁTNq‚ï²qRöËÉF)¯ÚdŠ. –Ỏå­tÀŵ·5 ÄõœI ï(/Õ×”Õ ó‡5Ôy(°zÔ`º~+Ì€ŠÊ:cCÆÞŽË¢!àÏF™‘—Ì0`²w ^õ ¬®ëx(ÆÀÝ™3±î¶ßN{1SÞ?ÑÉßÀCªë=Ëç`¯¤¶Æsöìëµ”×ì˜8ѳa2P`S¢q M•Ë2UBÇà0X=Õô"t2:'"«ç¢š*ASfõ…¨¦JàPX}X>Ì|¸‡™Ó‡Å#Ì*ÀÔ}8wpYŸ”YVËñŸ.BÇEár:@§Äêœ2¯lªÌNàap[?8Ì2A¸¼ö)±:¦Ìi—*£#h|Þ£yÊä=÷˜Þ#x5{×N“}“¤44 ßw}7 "?°H%^…©µJþAÿ´¢~O«‚޽÷ÈŠã“þü–\.V]2góS×4×q§5¿Í[#¯çÜiåüÄ9–é®\³o¯§º;+dî1œ ´Ú×s5 ï¬ÀL÷D9¿DÑÞY@àwÉ“äõy€:ž'u ½žñ§lï¬Q¾„S9¿žu*wÖHå»F·L%®gw®Ä5¸žÑm‰ëÙu2qg V`µ~ýòz€¼³N „Æ©ÂùÃKí5”Ðóì–y=§„òÎ ÍÐwŒP¶‚öz¦¶w._+¥ú`ÐÓÅðÉøŠq’{&X[ok¹[ÓÛjÚwíþj{ÂFnáÆÌ}¡aß”äu/üÌ^ìÖJMÏ·ÛLÀà®P‘‚>ñŽÆ÷òð0üúîöÇ­©%²œAš2ýÇw?ó•îÛßà_ùò»onßÒßîÈÕ#J ­Ë‚Ë̤} ¡yd:\(÷«æÙ“x—´Î¶|ïFW€_½ë-ëiNEJ´ò¾Ü§&l YoI>Ö´©Ëø¾<4ã”íó7zz,bĈIn±h{ò¬ç|yúŽŠÃnƒm}îRew€‚´Ÿ8"‹5ð'×2&sÿYÝC–5•ǺÑéºH¶ß?–uý±~.šÝGH÷‚ˆuø Åp Åû]¾`ÁÿbðÚ6n9âOêõ1žîZRRq4œ)KŸEð(x0¡ +mõ5A¢¤N?#:e%àœíÉ“ø{‹±É8‡’5ǪõˆiÅä!–4¤6æñš³S«Vd”)~ðB:ñÈzñ×jZÔY“=PMO“žôƒúrE}}n¾aß%ùǼ,ï®sŸ[oôò‡;¦FZ[s|?!­¿“:;UÑCÊn@º¥Óy¤¤„:ÒÀK‡ýÆ´‘vç™kSä„ݨž¹ºö$kbß&÷D»ýøÕ×ï¾zsòj8_êö@˜ÁÙT‡-?àâsáEÔj·ô)’±¸~ùk[zY˜þ‚ÿyÔh*ŒïŠÔ†1~\0‘èJÑQ+Qk-Ð 6L´wÐ3äeÃEðþâ‘uNˆIE+Ù$” _˜gv½Yoe,N¡ú7Ý«p.ú쬓wüQY6ë#kÀ¬y$ÿÛ„ÎxôÛ“¹¢M&‡h…;?U\³xü¼.w\ä_„½Añ†Ë ˆ¥;³üðj…ÃRιòýiêYÆË¾ וüˆ†…;ïͰ^áî“ã~!€ÉUEãòþ Šy K[xW•‹‰ûKt&¬.¡}¡ñÅåýøªPûÿê¯ÑõWÈã¤XVŸX5Ñí­Væ_‚96Ï©bÔDHü ¡™-ÛŸÒ ‹†ÓêfK÷gµ¼úy1&ûu…còþJù¼È«\ŽB>Ÿ‰þŽU²?KHÁ×õQŠüK¨ä¨xZ9_º?E1G…ÃÑÍùòýYêùD—¼H®*÷—PË^±pX›l]Æ®=¸gÅaÄŽçÄñϰ]Ó2iØa䄬ár3ˆs²'#7ñãiãÃÓÀ2<ÇrWŠ4­·½­%;ßêý»öðOç Ê*³`zñô~è|RƒR6ðü‹ÈËýÁÓø¤þ•”¼˜†ˆfNå_ JÕMÊK–rT] ,‰p9ì!S£± É.e2ûÐ^'iQÂÆ ×1h˜²a ýÐiày®GÝ4´ÖðJ ºá"ÛçY4ާ ~lwÂ!ºa»Ó,÷ÿýá½ØN—;Öòç?¾ç‘Si…ÒY%[èø†ÝùñëYÿ!qG=¨BóØó8h‡¨1QË[M»=Ð8#²œÕf —O‡=ß¼¬¥ûÀi¯½† zò'ÚèÜØIæÀõàP6´h„üˆjôé—™tŸ O ø TQÖT¤bÊ„ö³9–÷vGODÉ]0ˆäÈGN¢ÿøË?°OkB¥3hkHãn h›¨¢|‹nºÎÖ軟.g)r6ü£žçmˆk쪫K©s¢šq×U¦:ÔI‰ç³c_НMòŒÊêùÙÊ~1S¶2H$¶Ù«¬X>ßt)N)ñNUÎg`b°>B‰Àû P$æ…Y€Ç¼”‡Îü§*ó301˜¡D`~èk¿”„¾ëÄ®OIà„~šÚ^h8^¹¦aù–¿ÆZÉÉøMÙ¤~7²}YrǽñP—J×ñÌ•ò(xŽéužÀüzÖXÜYåL„y ².®gÏD˜KAÖ•¸žÝÊ×säu¼Áýðä îÏŸhï\:¥Øèõd‚ðþöGýö‡úrxÞuóéTÙ¹3QýÙÐí­þNºùÖ3S9?`o ÙO™$„–“„ ÿX.£QpçKè3ødó_˜„¢NOßæó ö5ÙîúR]WH½½ý;×fiÌ”t̔μiFy‚˜q€;.Ãç%YR|…`OiJî!õ*’ )ý¶õ†Íq’$ƒ çÕ@Ú©šÞM`D…HçXöçÉöZœg쯚wE:Ää( ddؼï¾ü?zAÙ°ºé]yVÛŠ!ׄ ¶^ú÷GöE³ntð L”x×¶¸«à Sa‹m¸˜ a)²Tã}ªëA) ©L3×ÃR5„Às3¤‹Ñ ×Ïsó#u€êܾ0;R‡ˆy÷p¬ù²Ï'#ìDáqp£ÿÒ¹?Y[ƒ‡­U\ë4ÍÀ×Êë»þ)Ÿ#¿ž ½!î\ºÐ&«GïÕÏ4Þ€¨£­¦½ÿæö.Öý‹“/—å.?¦OвxÞƒYEk Š 'Áá´òÏÙáw`»ü³Zÿ´*õ¯È³þO~gÀaõé®"û·<æk_'Úð>,ªIÀ_ÞÞê§zËcÁ— `™Ž¯Þ„2É„·ˆV ëcšf1,eåÏzýA ¢(ðêaüq"rD ¾ÄjNƒ†2ú5™z«ýãY»†põ2B-©îºsöez’R ‘×D;‰y+â´ß«…í4œž›ƒ&—>¥Ÿ— ëoQU>Ö°ê&…óA®d~“}LÓ¹ÇZ$«O¨Yhwý€òó𠊯Z2YÕ±/Œ–ò|}2êY0–õ¦-xqà1Æá«—=Ÿ¦R7íû®c˘Ç"d¥!iñÌÀ„ZÕ ™‘Þ8QÃÞ±+jÊyÃ>²Ö¼hÔ ` â6¹¡±’"õ?±²>Í•W­– ƒ­]seAW²åâ¼JÈFÃiH;òâÀµLÇ¥ “ˆvjÛ‘jBôYƒú”Ù€YmÌ&¹§Ï#;ºûýF¿ú €ya²º1M+ÚöÖÊŠ®hE+ï—{lŽÔî—‹ë¹ýryçR3þ¶egl¼·'>AÌ„ÿÐzãŠý]éÅ,nËo††½V¿&­þóV¾>cåk/[ùúØÊ×d£ü¬æ»úUAr0\ÿ“äGØ“¯˜DqªnªcÜ«¿Mþ¿ŽÉ^ÇŒ ˜æõtÌîõ0­~1IÕ^Ç£ÛÕgç‡ßdàñ¤[ mŸ5¼ìªòx'‚Ìe·ß}ûÏŸµ¤j ðÈøö??è„J‚š|[Ñ;ý}üžÇú-»‘í¡Àì!í§NÕ¹²@t^â'¥ò2¾î¯­Ž×ž>ÎGÁë¨,í²jïרÁk´ ¢vÓM›AÿŽÔÕžrý––iªi‹üs¬Åµ" G¯õ_~úA¸ëk5ÄMÅòçÖD–b«ÿâÍ1•gMUôIàPRãHÊ.[@$(zÖìdÌ4î7s¨²öïeTܱKp1aÍ\„d0ði³ÖÅ5žµÅDx¥„“ o«—j„Gck?Hô¨,ïÅ÷¢uîIκ~¬^ø¬Öö¤( ‡ãéáÆÔ…èôi‘çŽ\QR^$Ìû„™'¸Á YæõïË]¡»Õß?3½í3öHÉ}U ÉbbÝ@BJšwê&ű×îHÅÝ…HÎ;Ö¦uX*Á0O7uvWŒü†X¡ñjë´˜uâ"ÜT«ÿCÃ}|f_×xµÌ¨ÎØçDw&ÎBfÀ¼Ù¢ìA\:FSW_š.cSö„r2XÏñ—ô‰±‘ÈÂ7¥FŠç^“L¢ZóëÔ% 20†O/+1t¥$Qy±Iç0ÕŠ„Þ€éHCã]‘ý~|¹©g{Æf],­M‹(Ü£F*ôUÂè·a¨©èذñè=©É.c£ìÿ%{’S¯ÄÛoE¬¥rÕ8¥^„J`å¯WÞþüþYäÀ°Â¸g[7È´o­ÉdÆ…ž‡éf%›Ò +³YmF]ï!ó­výgÞ”wjwT­~¯Z­p®¥}EŠŒæÚ·9ùƒ5ý™þ Œ‰}WAlx/êVüÒdPÒŒ'ƒåÜ'Ɇ5®˜²FÚ‚I”ƒ}1Ô/–*kp®Ÿi%Ô¬³ÊY¥‹{¿ "­×I;«­\út(ë“æ·ýó°j¼~Õ3ã0 ¬ a`µoršÕü— -+é‹wÊ*Hk3)ã#„ålGïÉÑù‘{oò&6˦~žýž›¿G‡œrQÑóÔ5LZ3ÝÝÈOJöü3?ÐÇM¸¾«'Ä‹¥Ö:6BMY*ò—ÊF?¬7·_oþþ/¦}…ú2'Ç$+µ[ÂÚÍžÕý]V.W[?„¨v*X;ÞiWV1h;k/%3­À¥Øî?²>å¨){š¾~ º*­ßU±¾’ut§še>g‚ôªâö‚–PÍñÀ§#ƒ‚v5·µ`Z]“Ü ¡ˆÙ3u¶Ïx7ÃÛ"3ûÛñŽi¬Ç—±Rß÷þëÓQ=±ð.ovÜþ+ ´nÅyçµSþ9ù”‡Ð}„øÇà§šté꺈¼ÜªZ)S(8‹(§Xu ¡ƒo3““un\ÑYñ7«hÖÎà2‚AJ6”Ä<_nz„™Œ°òÄ÷Çjf÷ÕÌ´}ùÌ;?V‰ó‰*vâÚÎ-ŸTÊ®UúAKÓ,fvô¾o–mµŸw½¿ùØ!ÖMøì‹õ8u&æVbÞr’¯ñà Ÿ42Èß}{{ŒÄ­ø±Œ-<Ðýöù."õk¨ÝøòG>ŸüµbmvIƒ¹-(¨ç­¥¯èšì,†Ã1¨Àc† 7&9¿ãeÖFæ·¨¸Ç¶ÝÌÕvªŸÓØ9‘ êÆ#%·—6ß%[}ÎÎÅÈ•ó9%ô‹À™žÿû—º˜÷Pû-ßb™A´{MhlÝð ?t%³5Ìf1ó:&jtA³†Õ`ö«an†½,ëiXOò=ûp]ýŠ8JîWIÆ ê‚6Ñþ¬²xÿ¡°l¿÷“ˆ«Þr¯ñ…CaO‚Ò=u{”uü½j¶š´Q5õ+'oûy^[ -=%Ãg–ò•†¦µ³ß‚ð%ÒvîœC£¤ð{‰l‹%­'1ÊI#UìÏ)-ëTñ4 š—꿯gZd`ô½wµ­õË߾ŧé¬Ór0èiSûü!+s¾¬¹h2h¬Ãpåðæ¿ooåÛƒÚò࿊ö§wÖiz§u6Í Îx‡;¸z‰µ“vÅõgjÞýiqçÒÀk×@@Œ T~n#Ñ3ÅH`Ýê·Ðê„¶ÖT,B@’Ö_w¢ =…œ„…Êl¢ª:ò%G]h}>Î*Vë %_ê"b=€µº§¼çѸæÒ‚Ä4eÕÇ:£F‡ÕàF„—9Á ÏíO×BPtëÚ‹Ç4ae´·“°œß©µ/mÔ“aMÐgªSÚ™`›9’©Ougï$”™íf¶øÄ“éàxŸGŽ ‹Àqtb7ކ,BÇÓÖ›aj ·†nôP"hÄ$’ô0â°?‚‰ÇùÙœ¥W•É7ÑY?—½&ï/ä1EŠÇ<ëJò\¬3 }¹khÂnX‚¤s¨q4d 8ž¦<Ðâ~O–à^ZŠ\C?FhTc,’VŒ°â(Ä Ü×ðà1üÍp"Ûµ“ÐõÂĵ-#‰ À‰g¬áÁct‡›–¿¢§'°¬ \%†´cº¶ovßøõlÀ7qgzËòl¯ËÀ¯gó#ˆ;{ÐORïóA@ê¡ë5O¼£ä ñ=5½˜ZFžk)îM¬ÀìåG°] in ?u&£ŠÝo£L‘–BcJIñΞT¦ÑÇ6ÍÔ£M5‚FÙlÂpñR¸LÛŠ²óÙ /EÉ%®‚ÕszXÕ¹æâÐá„èå0ÛS‰ÈmæüIP ˜øµ‰¢ŸS Xú)$ã·¨žÜq#·®žÐ´¢\ÚB½ j¯Ñ¾Ê… T ˆØµˆ£§#¯a[I`¦QàØ$Bfq'^¦ÌRt Ãð‚$U´¿+ ‡šøi îv&89¦ãqøI9Öà¤Ì1§7z}<Àb/?Oƒ´DnŽk­´Dn{–ÛšÃâzΖw.ÏéÂLÝIAŒa~c¦ªà‘&Ÿ–¿¼m.òS˜†.@ZèU⇬jñÂ~“°§£ kÓ{kÏ*v,}|à žR§ÒG7éMªx\êýþ°9—ĺ÷Õ]vÄÆ \ÖKÈ»ol¥aiÄ´<çjý!r”’c¾”¯Lü+¯ÆÓ L‹­ø5ФÜÚçJ´¢î}R¡Ð´ï@–âÊb•ˆ}á•´Ž1 œ¬©sü¯£qËÙ}± yq_‡™s)}_±4¯a¨û‰&a‡žkú¶ï‘ H‚4¡Ä4 òíʽSfа£Ö†™š»ƒ;NRÃ~ºÑ!\†êP³ÓÍÐrÇ]'­¯éAîÉ.ð \Ï~áwÖHã¡Ù%Ëá׳ÉrÄK' §ÕlÏ úé}=7äç@z¿x†¾#pÚ 6+g ( âc]Zè\Ö°†Q¢–"¬Žnø«C9XíÒá€T­o_À9éQ *‡)Æà•g n1ùDâpÞ6Q¼'ÍR"Ÿ ¡ Y¨,Žð)‘9§Ìé*µ€8 ÿ±´Wy)¼?,dnÿXØ©T†ÀêËû”JÐPøŒ {1!K‡'.ØJÃevŒQ‰Þˆêª=‡m0‘¨QÈ<÷Ñ©‘<‡Àp›2½#x8Ü«¥ñKá1IÈÌö°©;„†Àk™2­Cp(¬&Á!• Âå´‡L‰Ò!0uF{¸T BÃâ³Fê¹(tNkœx …×­ÃÃáöŒoÒ¥ø¸.·ËIŠà¸=뇤‡ÛrÄl¹Gæõ„LÕ0NO¸”@Cá“>e)¡ —Ñ>6%JGÐÔ9í#S%u…Uoße8ÄJa¸ÜŽ*Ñ;¨ÎðŸ*ÉSˆ8<7$Ž›2¿'djÜ€!ðzÂ¥Ìé ŸwK‰¡.„v—à²y·üI–:—wË žT€á0Iˆì‡D§†Ì顱€ìñ)S<ˆÃó©f‚ùÝãôÀC`¼îÑzà!4>w¤FÚ·I¸Œö±)Q:‚¦Îi™*©#p(¬fqY<àÐÊEáò:@§Dìœ:³lªÔŽááp»'H]0HBf¶‡MØ!4^{È”i‚Caõ·º\rÀ¼HÂeµM‰Õ4uVûÈTYCa5O°Ú*HÂeµM‰Õ4uVûÈTYCau‰„8̶ÒpÙcTbx¢:Ëc„ªLÏ€Äa;®žH[! ™é>5žÇðX Sæx ‡áçúw¤ý;. ™ß>:5zGàØícS&w…Û">V5]:z!B) —ßB%†§Õ9áSey …ç2‰–‚\$á2ÜǦDïš:·}dªÄŽÀá° ‰Kk¤¾Y CævˆPÞ @†‡ø”Iž@Dáù Ë\.ÇtJ Á©ó;À¦Êî·ÉRÀÕKÑ%%2¯ÉB°U%`œ&ËV• áðI±N €$dF)Òi4N)Þ)8VïÐæ@\2¯wXs 18fïç@cx8Ü–u¶ùR| ™Û>:5nGà¸ícSæv‡[žA‰\. ™Ý>5zÇðø S&x …áŠHŒtx •†Ëò£Ï3Õ™#Tåz$ Ûõn_"mqQ¸<Ð)‘<§Îð›*½cx8ÜXÎS ™ÙÉ}j ×Ïj‡Õk$!³Z"íñŽ !°ZâíñŽÀ!±ßÓiß@ Ãæv€P‘Þ1@ †øÔICÄáù÷5’Çð8 S¦x ‡áãŽM¼œ«¤0dއÕHžD`yˆO™æ DžŸë‡}ä”#…!óÏ=„Ê<âðÜÇÁó"Ï;Lžwkð¼Cäy·Ï;\žwè<7YòŒC2HÂe¸M‰Þ4unûÈT‰Ãaµ¼§EöÇbvöK!¶âù£T#y$ÓcŒÊtÏÀDáü1I¶™@.Ó}lJ$ ©óÛG¦Jí «Oû»±Zr'—ß J%’ç@ª3=Á¨J÷L4ÎHþ”B>ÛŸÊ <žh~•€X ?VYƒØª…8tž‡(U©ž€Da{ˆð Lα{È”øS糇K•Ï!4>ó,B"”IBf´‡MÒ!4N{È”I‚{ .O=à âÐ ±LÃwmâ+Œ­Ðw ­Á%u\eݤÙÓ8q‹ø9Õ¹iVè„ë¤V4ÇoS+Šë¹ÔŠòÎ¥S~ÝÑB§OŒÛc“wì’ÎÉõCUÞUd_ëm%YR|Öèq^ÖÒ¤h 6z+«¬ô2åÙSèéŠ^?× Ýë1aÅÒÞe2o¹v(Z4"·yÄ~:äe ΛR¯wÇ&)‹ö“Z/Yy e'—²:#këò%YÁÖ]jUBІ¿²U;£!²qX`j]Ñ×LæWhÊËy>‹öÅۤϸܞϡ­ƒç3h«ÃÄâüÜéæ+pŠSºèœŸ9包óó§1`bqÿÞU•ø“L|ö§x•U`.ŠLÑb(Ã<à×0AIšø~lÅÄö Ç‹R;¦¡i‡Iì¡§ÁJÙ¾ÃÎ %YBÇÙ¾ÙO7ú7`Rö!V‰úŽàr}VОÜS=kôDzºW7K ßtW1K Ï ý.‘¿žMä'î\j–¾cu¤?°‹4»;V<;_\V¬Æf:>fÍN¯³»‚VQ0V¡ZtløÝ’ýÛ=ðV¯KV§õ©ÆA6ä'1û|1º5ÈÈT~ª'û_–,9á[Ó¶%c9='³/là1ÕL=TÃI ”ZV¿¦I·£ë5º×6Ó %¶ãG>¥VBÝÀ ÏRJ#' kÌvÝ®Ÿ¹ÏÉž<Œzñ#ú\74XgºF§b³^Ù³E§Ò^O;•î~zRÛ5Â@öjíõ €ö>3ô,ÛÚë)€îÎ¥Ýj,bÇ:?H{*‚‘{¤|Þ* ëO™Vîk˜ºSM*\ûu9Ï—²ò,ªHõ|’³ÁìŽÉ„NXkv¤iS©‚,†­ýµX\È36ØI5åÏv—„÷4ÑÈk u_ß*¨X(ˆh‡œ}õ*£§8ûjÇêõ>®Ã:£ùÞGˆU6k)öÔCTã¾újPJ=õÓL_}5¬×è©ãÄwÝR'‰â€2%²­4p¼Ô"ûÛZ¡§vN™¥ñŸJžk;ÊîêýaÔm·OÜèÑ1M¡Å1Ai^>ª&–6˜=¸NÏ혮oXmbiq=—XZÞ¹´ßb=‡~O«‚æzRe¬6ô¶Ž¸!׿ßÎy/FdµimµA^gÖíìY÷Ò[®<FNq·Õ{«ŒNè½ÁèI'”•t¡W©Øw»ëæ(Y»µ¸¢?•¿™Jbs-Õý‘årLÚüê%Q]@})%Ç|)ô!NYø^…—AY†#Ä+Ei$9W’•tìlaPµì@–f~%aÒ_A»»ÀÁZºÅů¯YOté”F!˜ôW`¢W†UZÆ™R¼†Uf»^JÒ$ðÜ$$ÓØ³SÏqÛr3]Ã* ÍÓn1ÙܗǢ﷿ãï¾c®³cl»n·c,®çvŒåKm±SœW¬P¬¢«š/]ŠŸ«(køœ0¡Á²âYK2X½+ÙGØu†Iäg9¼ ‹|ŸuK}>£‹‡™­žVÓ¦o§…¾´ÜfqÖg»½–dº‹kN¤ ¼³'UwÆØÆs?hj»cd33@pÊ{ELÛbºˆŠ’K\«çô°ªsÍÅ]ÅøµÓjÏ0+u£(2ß7È£ÃÚjì¤ì‚®Ð³¶Úvàyñž±5êÁůØÝ·ax¦ã­3•†ih;•×sSiyçò©tVË:ÐÓì‰õÎäT7¼˜µØ]‘õ«rZÇ| †÷ÛY‘OölXE9)îõzOªFI•È—o3ºg¯k_²Ÿþu«¿w¶ú»´a¸¡Óž eAåÖ tôà\ôá»Û…Æ“ðnc‡Ù¿U+à40XlPcƒöã¿~þúFÇ<Ÿ¾ÇJ 0Â*cݰë/¨5§úÙê¸À'–<ËýžÉ¢#±A­ÌõÃ}\›pî¨Ì5Yk|j³ihÝld=ÃÎÒ¦ýƒ×aAaÛ‰‘ ¬üHš±§ö°:šbµ‚WN£ò0Ýy||Ü N6‡ªü5ÏmYÝ}Ñr·Ý5û\Ó8½ì?^q” © ÑÐý¡Qü¸xå¯Xß=Tlœ.ZÀ’Ê0 ögþÌwÞö‡œ²*ÁtOMuy_Ìd6ë©Ã³ýEö$l#^ÛÀÊCïádL Ò<Å7·_¦ Quhë‰}i¾ k;¯‚øìh|Üv@FÒ!¡ÉN¯õ ‘]_w3ÀkLI g ©êž‰×Rú×@ŠÔBúÒ°¹>ëzHáɈÝRÎy…¢€D¯I ½œÂ|U&“D©á…Ä4RÇHÂ0ˆß6m+ ’Ô±¢’b™†—†e„fë¬/y–´ëKâzn}IÞùÛGáOôQ°?mßÝ~U…Oõº> Ÿ ë5ú©Èõ©áš4ðc‡¦à­šžEÇ Xãvü5ú©ÁbÊÿi~¥Ñ°!™÷Ó£.‹Ýÿ½q°×T?°¼u¼U-u‡]—ůg»,qgDzÀñ|G:–ÉëDzöÎÅî²zšîç½Þ—··z^Bð„¶T괸˺•–¸"õNëz9X£èÎâ‹û5?vä+LÔie?.Ú?žåÙ¬»ô—H^—r…éX0ÞyWØvÚb•èP1 ¤U…¡Î.t’³4ŒþbªµØò'"7üå ¼¢¾Â0vØybU]m˜Ç:éT±à"Ìã[áª8«hÀÂþ:D,ÞdÊd¶¿„ç3k5¿÷‘!¬"þ~·ŸK•Õß/ãóÓá0ùÂÈåÅ>Î3+ —ƒ ¸,_:¾qÔOã´ ‡¿K!¢×"‚>N@"飛”K«Â—õÕ‰¨ãÞ,V•±o*û}¤Šcà"X$-ø½±ëãáPVKN-—+ìI$z럢UíæÁbhÂ+Bg0]ÐÕ±èuÑ£µc¹Øz²|8ýr¬ph»Í-FW†‡\{j:ˆ¤™ »Au2W‹ڄ:+°>sÉuXeŽZÒÙ<&X`שY$¥ÂEÒÚ'ÓDS& ý>UÚGð0øî¡C zaô~´“¹^Ô~´ˆÆ~+|—’|]0aˆÃ›΢¼z ¸¿&U&‹0_cGѲ]’&¡žGnä^œ8Žç»Ži¸ö ñ),ÓêvŲï·Íýh'±û{31´×^笳åÛN·™(®ç6åÿ¢{y;r· ½#qk…®öZ.mèÄmº7ð¸bO4A9ì…°@*õDŒ“^ ¦ê8y|néùj´bÝlþÏ-DãÆÑ…–¥q!#ØOÝ ­ˆÄÕ‰Y´Jq¬ªµ?Ūª gᾆµâ%±8$2ÓKˆŸØ‰IM×¢Žm›4°Öˆ¦eµåGúdž“¬Ù+ü®­bz¦oºöJaúœ.¢V{=¦ÏYŒ¨uÖVyÏŠ§À˜Ü5;=ÞÑø¾ÓET Ó¢ºµP¢š Íòö,³ˆÙûäpȳ˜|ª·ú{Âþàç’¢ö ­=Q,„ömIZxh6¥4vèÉÎÑÀÎ音}‡ŸcBnÀïS¯ËcSn…DI<€$D³bÔZïÔXz,¸n×ðJ¯ØàZKGP’ƒˆq­‘¸9r¼â(íNba\=µ]èbí­Ý÷z ;€ž¨ ¼´ ”;U!2>–f¥‚IëaööJДº÷)²Iß®Nu`?©ü§±j¿€$ t6«}lgY½ «}d/±z8Vá +N[å§aQÛj›R[BC`µLµ­Áá°zl²Å…Á áqQ¸¼Ð);‡Àì›*µ#xʇò"ú´ðÆ›šV‹ÉÏŒ­Ý ä-‚˃Hx^õÈÛÎIÀ U˜j‡ÞPÎ…QúÓ)ß%6›<±ÿY‘a[©ëQèÑÈCÛJ@Â~á!Й)Ÿ–Õi>ÕÖYž5åS‰¬ˆóc¬çë¢æ¶ŠÓ­À÷ 7Xeºe¾ëtÇ<ÄõÜ1yg…s&¶å´Ù‚Úëíõà!ûcÞd63WQð¯aõ=kÙWLd1.Ê6ȈÓm£÷ffž¡oôŸ¾þñ«¯Ò¿~b“<~¶oGÉauôž9÷žX>hÍ=¸§û’/ˆWÕ‘Xï¿eÚ~ÈÞzÿÝϛ۾ï- Ë× ØÈèyŸåËýô_“¿mÕœ¶Ÿ¬uù6«éÓg1悬…- wYóÑðMÃêgóÃÅ]+&iszgO*Ž=lÃnšR¿ßC6éê1À½J =3%9žÓôËK]Û²’„ýh¤Ô[)ç…ßu÷Ϥn¬ ú‰²"ÉŠ»zÔûO¸ÑsÚè< PžÅ÷:ª%¬ì04@ ð^#bÆ0''ƒdÇ !ˆ“oÁJAœL×è‚8ñëÙ Nâþ@à– 1ÃÄŸ¸ž[ø“w® È<ÇtðPñ_E—ìÁÁ?¡ØµO@ï¡g|;e':ÑwÙÝŽ½/éjñ5;"¶AÙ·4f H©ŸGEüßDå‰S‡Ý2šL BžÌîPee%†£;Ö;7­Ä0”Û«ŒRuÆcîIÁV§CâÝÆD~WÎÖè´,f32½­Óæi,SŸ ÝÈ×!Ì‚bŸ½ŒxœÏ °RO¾Œw&£ä×èß Ï mÇ ¬(ˆÃØHƒ€º†Ʊ阮¨Úòóý»evG’]|ˆ“QŸ.~¼ÑÅ¿zÓŒY†2к0•ψ[.³òV ›j:n6•_φMw.wë€zÖë³4‹Y­4ñNl‹$m¥5%SÁ Ø‘½ú«µ^â# B¾Ëû'’$µž”ñ‘1ÖÈqQyl4nb‚‰ýÕ?¿ü ÿ~¤tƒ&jö,³ËõòXµŸ=/N'ä..3Yƒy³·hD 1|MÓÞxÊ–çÕxyéjPJ=ÕÓ̲ÒÕ°^£7 -ÃL #4ý(!‰hìvH’Њh)¯,,ôFæ)Ïï]QîéDlØsÇQ·4º{Ó¥WKYGÎÚ3kíëŽÂä• ÍŽµô‚dy­C,u?4Ëð×ñC3,Ëõ:_ÏšxâÎUs}¨-f< +‘×XRžjŠ}†k4O5RŠîzÌmµ•4â|p:LؘÚñb¸:LચRÈŽjƒßq,‰FÔ——Ð_¯2Ÿ^Ik^®¤8Ÿÿub‰E‘žé&Nj‘$|›Ø~3ö"åÁ9Ïë”÷ÛŠvY\¿'wY¬À¾¿i;83¹á'}wÙÿIg–K‡7âÕ¥î¶;tì·‹T©Û™Ç9㳋Uux‰>ï×5âÖë|]8ïÛQ/^ôïG„àÞ?üÆÿüŸhв(Q[^ĽÊ||Õ#çÑ+)ϧ` Z:ü­Þ\WoŽ„£‚ÆÖ–åƒâ¨°Ñud YU?ÖÐŽ5uc%ÍXY/~%E²|ÊL7¼¦~ #êÈ8®ž pãêʺrÎ5ZåôiÍŒTDM9ƒùz5y ²Z–ÀeÄJ òè×XR¡lÀ»~¹IH]J-ψ-ð¸J‹˜k,©Ø§ ø=­à>{Õv¿ã/¤Ø±R2 ßrì.˜¿ž ¦ î\ã§´»{¤‘.~Ó“,)>ƒè i gýxRápÌóÏt¦[{8ÓXZëDôÈÔl×å:•ÉêøN}SeÌ –‹2À騥è´ãX¡’Y¾£xù õpur)þL'N÷ÂZ¤jL¤ ²Éyé«)uC\sg£¯†ö*[ìFèÇax^@œ(Ž;p#ubÓNBS9rË’ÃÏÉ?Éî²{²{üˆ_oôŸh]æ¬!T„Ÿž-’Œoòf´œêIùX@ î’·+›RÕ Èr,+Xia× Ì° î"¯ç7å«6Õ…ûN%j òoN+î+Q·ŸÕ¢Â´¶ Åád~¹®:/k~þøq¿Øz«ó¤8÷`oN/ëÇ"ûýȽˆv ®â?íÌ?öY­AÂÈ’û¶s®„)=ã®÷V‡Œ‘”§nàŽøl¨AÚ;—Jufë«ï ã/ï¾HA|³ÅÞøêû\#dÓm­ë©¹ qÍnY]MÕÔ–"ùöÅ!?ÞeÅ’§ëå8ûBÑyžC¬Êù` þçð"èÂäôbS™ù•±ž§^Šý©ˆ¿÷Uõe®$¨º³Pl=š+¶N-aI¨íÍ^r¼ùDðc‰x´„õj•9UuÙg©ŠRœûÖ5q {ÄOÃÄ Ûq‰å™¾k„¡›NJױ®mó¿Üq)+ؤ`ßû¿Ký}\j­ãRKîògò¨4P9.u%à?ó¸Ô•UGùñ“l-E ÿâá?¥né—D|eåu Ä‰RÃò+¡1 ]Óó! žú©GÄ\cÑÙ÷%ïí¾É ?îÓhˆÞ¼ÑšR··¬zTGž0ð-g¥`¾¡éwÁ|ÅõÜú³¼£0!‚E”ZVT‘¬nQUo¡ej¤—˘}QDõd?¾Ñ´÷ßܾÓÅ*³£qŠ?àž?ú;¸áËNæîFk*_&ù8vÃ@¤}£ÿã_ï!crEØÐTÕL±X錾äý=y ·¼¼Z$'ŸÂ ÷?íÞè·í‹#¬tZÿQïFÿçÏïÐY=xâÖǪ*ïX5ŠÇû-ýKp…¤2©(}È® ¬Þ&´Ï«‡“˜ÌºüÂܰm俹 5oôïiÍFÕŸŽ ­Ø8§u±,ˆôº”Á™sò\ÛPÌÛëFÿ´ï S¿·ú‡«Ýƒþ3yÎËê­þ--«»LÿöX0kà>{ËÙ}W4%uþŽðU§ÏƲ|ò³§*Ÿý´}£ ñ¿ÕÿQFú—9©žÅwÞ“ªÉ~+ô_Iu´ÒF”On„””NSa§´Zlo :7úW„ñÀ¾gô7rÏ?ûUEõÿKJ}\0°Uî䆻Élåê´ó²øÁ¾˜ú‡*{`ý.@mrqÎè!#ú¿?|Y°¿è¯ì l®©Xß;ÑO—5ñ“úéIh€ýºáÙÇ?oaZoõb°z‘g5…¶BõÊ)fi%ü$UýÆÊ:l…F¿!ÛíßèßÀV¢ïKXN*r‡ah ;§ÅӛèGæâi顸 ‘ïÕªWó(ǧ9•A*TógNw*ÃT5¢F‚Ù°PÔ¢ý,G‰»t_öJÚ0‹I5à#êÉ,z<¥Y(Àk,³¤aèúÄŒ8H˜-eD±öW[F˜šáÆëéð^ÔÃæé˜WÇ‚;fhŒ'fé²Âj@0e×ZÉ•âµMY°檭µšRkm[Y{­u«Ÿµnµ¿­Û¿­Û¿­Û¿­[dëv®¯Zô£ ?y»‘ì›s¨Ç>Vˆ Õœ®Î`žñ¿B„­j Ï~à|Š:eü"[Ýê¥8“¸N¹"‡ÝªúóÂ2Å´'šÖlµç”¡`eðÛÁ´«´~ÿ!]šÝ*£•¿¶6ˬP³ÅÀשq)ðÕj¶ «jÖÚÆð;¯X®5‡áGVÖºOXåR.Ð`µeå¾àåU¯õŠó:ì෢ŭ҆†koëöÓo½rùÖì'¦ºR¯\Ét‚4Ž"ÏrHèFVøÿÛ»¶G¬ÿÎ_´IVm7÷KKßC綉v’Œ2“Õ¾EÝlc°ÀžžÎ_ÿÕ©Œ1à6uÊÙ¬Z#h‡u§ªÎÕ°|×v ÃôIbZÔ• µdzC7üÇÇ=¢¬b=½àîPx~ß™3-6`ÆÚô%í™¶aøŽ¡¨ ëŸäš×{c×÷Ï·C¶Ö´!ÿ¢Ø1. +hZB~˜¨­Ú 5/w{§÷Ìž~Û·—øÆþ´4èšá=?ÒB ƒ›76Rú\?Tå~«mh]3Á}³‡¾ÙCßì¡ÿãöP;ØCÝ;­¨ÿýÓ»–ÚÝÝ/Å7ŒBAó_i’Aiè/¿Òk6×­Ê*cìcCQŠA9¢{¤ ØŒÅ>½ß>~¿ ôß~}Uü4ìÏ©iß—•å\õ„î lê:œ©ðçççu3?¯™tß¶Šïö©(Ÿ‹Õ@ËÜî¸NÕ¸RµŒõãn“#,ô4ödd¨PÞ¯ªò~JuÕÞPJó062†“zñHt("h¤Ð†>ý9#¢,va¿R*)s&Dð‘¥æŒQÁ ( W˜d_äh‹£VžÎÔ½ ¶t½Êl îu®ÒÝm†Ä M;ñÓŒˆ†¾{$ô|ÛW±ù ºÍgMɦ,žèË`ÏÙý~0ÃþYÃR$-aé}§e³þ«î;E 1"5Ûž7Ã×ßmŠáëÂÁ»a„µu¹ƒìX¦Gȸƒ ¬[¿þ©) › º¥g°Å¯iÛW¾í+ßö•ÿÛûÊ×ÅÙü·nD¿ûO°éXÜØ”Ì;´,Ý‘ŠIKcj—M7XûÑn&œ+(g½jíÑ‘ÕÍ,„õß º‘Òqà¤Ös'ØÆ‹ÄIÀ“Ý ˆ&åfÅ4î– C9Õi{Ú# ø>ŽA &ãÈÄ8n ™„Ž'/YcJ #§B6z($bIzq¸?€‰Çs¶Ëš­~~)P §‚ë}œlÂDâ{%ã‡@ñ8ÏTIžÇ4~¢¨“CŸ® Ià S°‘$c 5Ž„LÇ“”O´xb[+L!iHªZÑ‹$¬81÷* ÝÿLÇŠÓ0&$¶ %Ô ¬˜º©ëY‰c«°ùYÍ/Þo‡‰à'ìá©qJìy¶áv%†›ã{^{F¾WÓ¶bc­ÿ§ŒÚVM;¶~à;ØÓvñÜbÁ+sÝ®ÜÖ_Üè_ìèç?ææŽ/·¹ø“ÉXºÖÚý¶È`sô·åªqrôó6/³¨º+;ÕHe;^Ò“-Å“NV Q¯Z±íÙáÖûÓ1nôþŸ&NYxú¤î³×}½åN*+~ý ®’Tw}LC ·’”Rë#Ñc‹AÉNcœ^œgLô˜(ˆáòr€PŽ¥§¥9;À'ÍàSˆ(|žÏ½¹ b›æÉåÙÌIxò<>—7# …Ãya)c …Ìß>:9öÁÉs·Mš¹Cxh¼=s¾gZ®ílù¨m ø¾/\¶Ç©—zÄN‚ N,j°…;IÝJö;vH’@Ųݟ©x˜g+^æh¬xëâ”^ãûžéUŸýq¬øØàÁXõã¿{Õ/Ä.w#Çgüúú›_ÿͯÿæ×óëÏúõÃÁ 웡} :$¥Ü¨Á>Æ¡-¨à׿?|ÐÓœ<ÿ× `E®§œ[ÚgĨõ±ÉcríÍÕP?_β.H˜  Õ¢ ±‚Ñ“OƒÉ––ÈÀ‘ÓLƒ¹Ö–ÈÐñ.Ù#έç¥ß¡]Ý+“Ùµ¾ôk´+¥²tÆ@"ýíž_í—õ=q]Lé6Û²¥à0— ý¹ŸJ°ááòã& éÊòa`ýUMÇiíÈFL¸ø*Fb§,ABñ浟̉â¢m”–ت½ Œv² jˆp˜ç„PJý ñä.!@”ª:²ó©”‹¶|ø<ŸOœD‹Âÿ³i’hpñd¡œŠp]Š–7XQ!åD”+P$(§#]Ñ ¢ñŸ~ÞÑ¢žM‰eÏ=ê³ìŸ| *p+¸ KN1d™8E<.H ¯± M|D6!qd%Và$nl9aJÂЉ¢ I=%ËÐðÞ¶yïÉI¥ögH7*ÊôHÛoõª,¡ížþó÷䞦gŽá+©›d¡ç[báÙŸ.<»3øÍôì0Ûn~íñ€öŒö8††];Aq<ÖN°9£€çºN @hΨ`z^Ûѱ9М¹t÷ó}ö™}Žu¹¡:ÿ²ïû.Wü­_êï°jw‘ 9²Xÿñ=¸_Óìa_ /CwÁ·?|ó^/èžN®yOªš=jûlÇT1-½ÁoÈÔ]þ¢ßI×þPØóÁQª‰Á~÷¯Ÿt¶òÊØ[ x½4=Ëö ë…“-Ð÷+¸NÖö3Àu2“.…%gÏ ›-—»ÆäqXaÙfè° ƒ$~§¦;”8^਱ÑX‡(’-Ùü¾)÷Ån0=v¿ßéìSä}LÁÖðî—ß}üí½þ‰T`WqãÀÜ7däÌ5ž‚ÆRb®ñí.J¼93×4g.UX? Ÿy3·u”·bHÖqõ²{óR,3€+àbÍjÄ1xë=zÑÉa\AØ’v¸×:7½ÖÙ’EƒŒÆ,ÍhrÃetMg™°‚¾Ìs¸ r©÷Eij©¹Êb:êÓm^–Û¿Ã3ûQ¬DäLv䆻‡OÒ];ŸdG pº+¸RR‰`và–&¥ÈNtÜ–'»<М÷J.A)Ü*°Îø—ŽÆ%_8=ø‰m:¡¸ah:ŽŸ¦qb:‘i#¦¡O$™ŽÛÍ  ·ó„l­ÁÜÐý~˜ò,ÊA}&´ÈH¾*Ó䜰5„ÎHî¤Ï2}ßV2'®´&üæxlÛœQ±Šö]×jˆã1Í™°FtȦ˜a‡Ù.Ú«a¡È/ÐØŸ<™¨Lõ–ß"åˆ@8#ãOE7%#KºT¥›ƒ04b÷¶bð%{Ú[Xëla½É ¾ìþŠhµIU÷~^›Ú×ßý œ'pm}ÓÄ€5éUÐCL'l²¬xì­ª²Zk‡¬&+t­¯ôû$Éà\ØQIšeÛ~è;jæÛð·«½ÇGkï‰3‹–’¸­RáiÔ.^$F_;|ý™;{¸ÇJÄ™‘í6Ï„†«õ<{¢-´† BsqnéêÊ_PtÕ1¸éà/cîX“MÇ$WíÍ+¸ER£= Ã+¥ÓƱŽŠaÁ•ÝȈŸ³?HànM ÑÏZ!$ ·†Err.÷i9ð.KGÑ×x& ¸²Ç•ó1èÈr>›%\dô(“•™\)LШr2Ÿ7… û+V—ÒØ0ÜÐOCÇ2©•˜ÄvB+²ilS3”­"7µbµ=ßx(ýŽl‡=ßÚßÅ:•=‘®n³¦v¿©![&³Oz‰8ž«ÆÚiúngªhŽG–¨í™Ë—¨Tͷæ[gž£aГ’ÖÅ;§!ð¤)bl‚P£'Z4‡Õe¾‡òn"ÜèQÔMkéhâª&*ø(¼ .*JÐr¾»7›ŒæõzßšgL~k¡»eÊ–­"Æw.&W¢~ˆk$Fv9´«$%PÛO#Ävl/²+1œˆÔ‰LšÚ¡dúç,¦m½ÊÖ$q‚°' C*›x`Z¾ã*ª!k*}­·E|ÿÇã#’zm'ùhÝhMÕí„ËTa3BH|aY<Ô»¦ e¶ë œìo-!/yöð¸Ókò‰+(ö4½ÚçýS(¯e¾K_åt82E¥Ιóæ»ÅÀÔ›ïC»ÊbÈ´Ò”é7öÛ0ià›Ä4“€ºžI‚XÖY3æíõ‚ ½½æÐÛ+Ìv²¾ÏöL×Uc£ó­.U³9³Ñ5g.U@¿pÿîÑÀ œ¼ƒ‚‹XqÐs.[ó2w¤©Üe»Z—í"H×Ða)1¬ÈOIÅv&nÀ¶Fn”„&e{`O¹l½Ã¤!e]Ðþ,6D¢0O hæÂ~&€tø‡å­¦ÿµm~§Äñ¨Í^œ‘J:¼ÑfÔº ”‘Óz)_FEü7ñtœ.4-€É-Œéö£¬`rAÞRZñ{Vp¥ìR¢ž ‘•„&·˜¨ÏÅJ‚»†"q צ‘‘:näØA°ÏŠ[XøÔ=OQzµsQzuw¨§„ C"l9{RE t‘;„ bJª‘8¶˜VLÆGƒÉÄ™KµÉaxÀp¸åÊàålŸ;6H<8!×aÔô&/:ÖŽŠm†IÎðÓ$“ê¦La‘òáe“gÅ7¦Ô¤‚Ö!”©qlB•ØLŒMçxå5õ0*+q=¬·dUHÓ±ò$¥4zˆNÔ… (Ùéè5޳©r{—ÂkÉáòó¥cGAÊrø£4«Ga^¥;/ #Û3h˜š¡É6%> ˆk¹”F¾Š”Cï`{†f–dW—9;{>þÇËv{×$S¶¸fzx%åÉWZ²×ñWM¥%Ë0¯Ý†ˆã±mHsæÒyá¾)GtèÎ åñN臆„}?Ô ÒøêPºÖÃtØxˆ1Ç òîX;`j¬Ãµû*ïÌ)É¿ÁŸ5vhb@+"8uÄtƒ!|ô@|¦ºËB¸¼öˆI˜®ì‚Of«ºà€E•‚jMõVYˆ(ª‘‚>V)@Å“‚>R,)€E˜c&xï¬-m¿$Z‰[pxÞGvÌi9`²îã:á«4$~ÎNñ Š)›·sS;H >Ÿ™Ò1`Êòü ve™Oeð½^ß è¡iñ œKuø4L¹ êq”ú{¨‚-esÄö)ÿ³²rTlibzypp-17.7.0/tests/data/Mirrorlist/000077500000000000000000000000001334444677500175415ustar00rootroot00000000000000libzypp-17.7.0/tests/data/Mirrorlist/remote-site/000077500000000000000000000000001334444677500217765ustar00rootroot00000000000000libzypp-17.7.0/tests/data/Mirrorlist/remote-site/metalink.xml000066400000000000000000000044371334444677500243340ustar00rootroot00000000000000 1288734483 4834 8fd7745c38277ac8b5618107edb72b7e de06c2b34f5b13fe6029da59475359675931eb9d d6f8135c9d5ac370fafd258c89cfb574989cd8557044d9551eefd1aaf2c54c48 f43d747fa0134e9990297f98771f74a7a449f1b5a53a6936949af5e0b51f3b3834b69af3e25ae4dd7c97415d5570abb5c0a4588ddfae673228f46a83f200b5cd 1288642986 4834 bd32127a8b2ae7a370be3dbf876afbc7 b4b9ea2494aefd82ff08915c28f6548a31625744 b0d8ae9c43bfd06829092273b409cb0f6e2b581fafd370f11752842c0cd0c2c6 78d2eff26e6a12bb1b1bbc78956f548734e921335943afabcfbf4f3ba6d164e8820eb2e685fad78088d2b42b7ec75fe4bde8ad6f5d7e9cf44e70837ce23fb758 http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/repodata/repomd.xml ftp://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/repodata/repomd.xml rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/13/x86_64/repodata/repomd.xml http://mirror.eurid.eu/fedora/linux/updates/13/x86_64/repodata/repomd.xml ftp://mirror.eurid.eu/fedora/linux/updates/13/x86_64/repodata/repomd.xml libzypp-17.7.0/tests/data/Mirrorlist/remote-site/mirrors.txt000066400000000000000000000006241334444677500242360ustar00rootroot00000000000000http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/repodata/repomd.xml ftp://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/repodata/repomd.xml rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/13/x86_64/repodata/repomd.xml http://mirror.eurid.eu/fedora/linux/updates/13/x86_64/repodata/repomd.xml ftp://mirror.eurid.eu/fedora/linux/updates/13/x86_64/repodata/repomd.xml libzypp-17.7.0/tests/data/OBS_zypp_svn-11.1/000077500000000000000000000000001334444677500203445ustar00rootroot00000000000000libzypp-17.7.0/tests/data/OBS_zypp_svn-11.1/repodata/000077500000000000000000000000001334444677500221435ustar00rootroot00000000000000libzypp-17.7.0/tests/data/OBS_zypp_svn-11.1/repodata/primary.xml.gz000066400000000000000000000226411334444677500247740ustar00rootroot00000000000000‹ÿ/bs/repos/zypp:/svn/openSUSE_Factory/.repodata/primary.xmlí}iwÛF²ö÷ü }¸Ç>s)öÞh_GwlÙÉëĞؖg®f¾è4€†ˆˆ$´%ÿú· %.ºÁE¤f±%°Øèµê©êZ^þïípÐùªÒ,NF?žÀSpÒQ£ ãÑõ'ÿüòS×;ùß³^U.C™ËŽ&e?žôó|ü¢×Ä£Éíi8¹Q§*œôfT½ “ÑIIý"­ßÐ43òl’©{úQòU §ºÁÞX7òZ=|ÇÞ¿jú©îA'ºÇÓß;ùÝX·fš?{9’Cu6ˆý?ÂX’ë,è‘×½âùK™ý³˜zìe¯øñåtZ:jœýOôÔè'f’™¦T ô»N9;é½ ú*¸É&Ãéë²¾Ô=º¹ŽÃOþýöâäL…œ î ü@‚0… ÷(B…„J yÄ_öf-½Ô ezwöéMÑÛN0YÖ‰’´“õ“oz:åtO²É Ï^öfßxª,Hãq®{ö¥g³ÙéŒÓäk¬?íÈŽ{³ó­Íæ5Õƒž¤ýgU'ŠzØ!$8äžtüI<ïyšiÊâïjÖ—O< ™wÒ‰GY.¥©có“Ž™ÿø«28!À|uÒô ÓOUôã‰Y§ÞÊRv‹µéšU95§fÝõ—õè†2?{©}1ˆ5ÊÔÙÏß¿ìÍ?(>ýªFa’ž%c5ºøçÅÛÎk3ŒÎ…J¿jª’~JR_§Éd|vq—åjØû Gz\C5ÊKÂò®˜~’ågÅO– ª,™¤Ò?5Ž,K3°²‰‡ïMô• UÚMåH¯¶ž×4×›”xæTëùŘc3†r¶Êßt§Ó»Ž9?ž¬¼ü¤ äµ>Zo?¸œ†ŠÇwèüêûÝx|U6zU¾á4KNQÍw:a‹=Ô[í|ªþ˜ÄiÍP²< þö7óõʾ]§rÜÿ¯éÃu\e÷ï® Š–ŸýüþÝëó+=ÏkèæºñìüòòÕëwWðWR÷2?õaŒ¢øZ3’Ôœ­V“TAø)ÿyRE ×4Ï>Ê»A"ÃwÙûïCùü~Ýß¿]YwrJô•ë-}|˜Äg?ŸŸ_a·Y*¦ôòR““ç“_óá]9\\ó±Ù‹æs ñÆ‹`ÚºŸ¬ŸW'‹žBrJPõMWà<êWe™ Ò<õú£¬qôdêu[‡¥½Šê¦uØ4­Ÿr|1“4wÜLfÙÿ“_ÕG͹ã[Ë®Žc©Ù)§â¹ÛàëßýðíGúS~ž¤ê~z‹¬¨7:3àÒ ”tC¥Ïc@"y!$@`è ," ¨ÿT”¨DÜ(fUÐäýR·;ÝNÑo->Ó¬»B%§¯úá‡^Mò~’f/~èNÿù¡£ÿù,¿I:¯~ª‚~Þù¯Aþ?©ü]tÃY÷[’ÂÓPý×uþ?ùE®"9ê\ý‰¯Ò’>3¿Ä7sJº;\„™`Ô0hÌÜ!Q1K{FoÊ2¨§÷Jª·Aï·¼¯WìP„­ÊYn‹“ÚB™¶¨ìQåü®å×օʆü:“y¹ë±jp áC¿JH`cÕ~Å Ä4»ÆP¾Dše3ìHyP„¡­bÕ¯:#õ­#Çz»É ßÉ“{î*}¦C­õ߇ qäÄÆ—¦º‰§VØV|ç¼w§€ÛUÑU·c™Û5fW”ñ<ªÁó œ'É sX`·ŽÕuë{íÐ_Á#Žs‡)K•qIrVyÖ›diϨÌ}5ˆo‘™s-RÍ'KŸkY‘«,O4늃I[ákØw[‰[¥„Û$nÀõ¸„Ä÷EDǘz¾¤Bú„ƒAˆ"T%q?–ýÿïÎG™ýâ¯\¥£ÿ.øæÇ4 'AÞ™·V Ý–­Øäî«Q¨×¬ºrEæþ§qç"•ñ¨ ø=3?–TÁ÷–úQAúf2 4étÿ²”öáP_ÍokÉür8ZiÊ/zé7«oÙM\Ž)_!½Èå(Îòkç_q6J¾f7wé×â·•Á½—aI}1PßåMA:ÈŠŸçiÛk”.c¨ÁÜ*†€3JЈ`Üóš×µŠh`Dˆ0G¤[îù.r@Zíë|E­qdn°ÐVmãÓml×û<;XXÙ8P¨PX0ñUßPo Ãhži ­g¶XµÞm7Ua_cÐéè‹Ãœ>_Ïny'³ÍÚš6Õ¦/ãáó`“øš©«¼j~ê^Ú«ø^=>º_#»µÏMPñºéëËAWKŸTw± ¤dÙÀ| NÅ©WC¢u BË’‚IšÞa½[¸PÓÉÒ˜½çB7WŒÓâ.cÉúoëŸè#•Å×#9Ⱥüfr'“8ìjåÍpÙÍàá&`¨¾Åônœ'¶ýãx+²Ó›™F,®J‹›/¸&Þ : `­¥zíuǶnVZ^~ݳ˱*PwÖ5³Î¶Òs˜OÝÛa- ýIÖ…M7‡N÷Ck „ØÕ«%”ÐÍ&‹j–ÊƒÞ Ñ+×(î4, ]Ý~lDÞÝé ]%.,aYÒÎSCQÀsZ­Õ-ukžhª[…qz2×^ª7TvZ 7Ñ׳̮£'z2‰} 1dJAµÒÈ QQREÞ‚žè~ǶyÃGmò©k“Ì#‚-Z¤ #<§LB±ðˆM™,ÑG•²Y¥Ôú»GœUJ»ÙÙE±¬Ò¿¦-oE—[jkE£3N˜zôU܉¢9Á¶HÝ ê9B¯®/õNµ§zÓxÐØøn‘Qq#• ê{PâúÏ"[û¡ÿ=WjÁPÞ¨ÇU3 vnè©Ñøê?þ®;Õ¸Ê%À«''ã̻ܺT G½V×S>fZ?ÒÿméàKÆFŸMâ\•šY[¥÷†ÖsʧNŽH <qàãÐã"$\J†Bâ ‰+á«Ð“ÛÁP+ãÛ„Zj÷ˆ Ay„C¼ˆ ô#A+¼±<)[ôÇ"ú!sJ? #‚ZÚÝâ”tõù؃·úÖáSýàÖGSTxÌK-õ ‰ëVð§¶ÞX9u.ñ¹Þ!2,Ì„vËèeJUqÕb„ >ÙMQK§®¶Ëa£µ74.•ºÍ·hæ®!jîî‚ú‘M;ÁÕÞr-¹ê½Z{ì»·úoûÆÛœ7WO¬¦Åß8´bÆ`K ·'›~”Œò20Æ•Qn9D£¥Y§wh—ZÁÍKìÕÅå25þ³i‹ë¶Z~q©¡T˜Þ3¨ÚËM:õ‚¡¦U÷¬ÓádÇ™à—Q¡‰Ü}eR¼PåŽyè‡Â£(”õç}‰¢Há­+“åð¶®KšfªäSW%!GXÇñ¥˜g1 QÏŒAﮪ³uÔ)íAÐÂóÖV*‹IÞ±fY©ÌƒyvÌ3Vé {oi}Œ@ŸéiÆÒ ô9”Â÷!b ‰”*ÈV»ëÞv´¤6):¦’2ïÌú^)yN-N†§8 åÞ’M̓dáVÒ<ñD­MmqÕ*FFó‰aƒ=³V‡ƒ8vhføÙý«_¼¸ÐK *‘ç2ñg5(–̉øÍ}ü˜¹ãëljáÔNÄz`÷¾êV5WNež¸wåFÝ9ÓÖ>ìö¶aJ¶×jô©×uèÐÅÀq=ƒ8sÐ ÷U=OôÉ“£Ü‰ø£›N„_ô1Édà¼~IüæP£©×ê18lm/í-ňéG¡ß줽¶Ÿ0ÚÈ‹Úì)Ë­0ØŸ·ë®ÃÈf–QÛ:q`zNùt&¦ÞÙV¼¦ʇõõÏ Ò:U¾Ï<É%¡Ñ)hà†×îã×*ÁZ·½3˜ËÎ`¯Â Qè-jŸsêñyåS?a¸^÷¼Ÿön1]=ƒ{Ë(Ñ gAì¨sÎÖjn€ëC-sDZæåZjM|=K¿6á…’P“|Öݼú˜§6Rƒ*²Øx¿³—ò23ÒSSm”S•ÿ*Hô¦ªëËôrÀÒÔ—áø£Ìû¶7¾ /òTÜF÷ÏtÐLbZa kÚbÿßÄVª×2ÔK÷ö6PãfıЉzPhó/ª`w ¯»HƒÙŠ:Œø\Ž¥âüÎ} : 8°î©¹ÔFöŸÇZPãüs‘6ÈÞËir:·±¿QZ8T—z7Š’÷qfíçÛ0vÙ;z8¿jfæòæ‹\æ“Ì¡ÁßüßU»q¬‚—df¼WÎ\ϬèO«;l¤ÿœ7T®ón]o#Ù/&Ã'·8GÓ¤8Ïî'×aç}p9$ÓwQFÓ=w?ù® ÏL]ya‘þVL‰õ%¯4Ê0ÈUæ?MFüÔ`[kÇ‹­ûZ÷}baéËîrÙÚÓ™uß %»ržØ‡iе^þ±](>pº‰>Iwî«m£|#s++X(ùk³ i™Ó´™3'ÙâÜâ5¶ï=ƒD\Xö L8¼wp¹üŒ1YÇ]®Î“É(·ºKë/2½VNâ` ì]X­ÙÌnKé&†îù«óæ‹TªFA9]Ê*@?¨0–*Z#oÁ5ñU¬œšý¢ÕWç“åŠì]o± ZÈngΩ{ëMf‡ÆóEÃkEHÛ£j³Z,z"ŸB©™]H}@=!| ‘úi’*ùY÷ö`uYÇ2Ø#˜/•˜‚c6¯Ëš'ŒÕ겋«v˜š¬Y«ƒÔc!p(÷8ÛºüS·¦rš…)8mj×'ྠŸÿ².Õ ÚË®ÇrB%Ѐ-µ|„Á0ưþ+Š(G*BI7©µ7µŽp"8]4¤z¾PâL?áŒ4 ŸCSê\¤ÍžT:ê’E§ÁIó!­K;]ï¨Ïõ¹'¢ÏÙ…úQãÛ–Æ·”õýQ"n1•H d<­èD$0ÆDù$  HŠî¨tÞ#ª€ÌI¤ ã¥\J יcDë¥ðÒ2ËÔµV1 ]™º­©ÎlWŸ ©„+;þ¾*u©~m_0fÿw«û¬­pý=·Êý»íâ|-”ÍõuÜ I•©t‘m[ùãU-çð+îãb¹”ºÈƒ¾IŒX_LP}6ž5Ö"ä2EIó[Œ<Îõ4µ4Žë?ŒC™+û‹LQŒâãÓ¬_M1Téµjoè[^0 —;Ñ ¼<²–™idÝ ³áa_£®Ö¸D‚”qx\Cû¨²¨†‰…0‚îQOgø\ËH¿Î$3…å›-!í:­KÔõ‹u~ŒUPfàº1?®$©j™V냆ñ¨ó¯8Íj)-~^iø—$SQ糊]aJû{:ûÕ9Ö «ª%¨úŸé¶¨Æ¥óe7;èy°—r áR‚,³Þ˜Î[‡ ÔâÒr‡vË-çG¤P³ ÐÕm`€7£u®œì•äÃHóáþµ(¿·n݉L‘&£5êQ´¢çÔp‚ÂæÐêQãl]ãBš·ð¤v±®lÅþâ„z™™”AXf µÀ„é8íi6ùºg›n‘‹{õø,Æ®ÇG“»/s÷¤j×Õžž/ÛÚ[R5ÓÆ™Ab™eŒ{©fWU¥N¥•õé|™™ÍáXs~=œâ:ˆ<¨UŸMaE®Jy™­Rf³fºz3é^÷»ßR¹Úhe©½é7V†RÙîF™ugWD P\‚íß<‚@0àyȇ< "S4ÔØœéÿ±qšñ=Q™þæõA\:"‚5Ú\@•ÈÃÞ<¦Ä¨2éžÐžýRî‘//f;w³ÛÆžSºT!Ó³Öê ‚®æO•&ÇoZèׇa4wª¨VáÿNõ:€ÚkËÚöm¥°¶&Hw]ŽÉ~æ×H -PĩŠú>ðÐz¸¢Â÷ô¨òBDŒö¼c5¦c í­¤Ð&n)´=ÁX3­Kc'·>„ŒðÀ”0<ŸIaDRD3‘·aÈB‰J7íOoŠÎv‚̦nÚýä›±Ò–ý×=1 Áê$Í—~œÝ[{g檎ì¸7ÛÉrW ¤¨Â@Š9&‹aȘiúù(Fqß[:XÅÂtÍ’<>Ë{ÕV¦G·Àô&›!Y7~q­4*¹Íמ6>òHÕJíˆiÄÍ·ÀRª£>\tØö@œsˆ<È8ÔØ5ð" Z¯5N.¡BГ˜{ˆÉyµiÂS5¶LÎ.|ÙZPñÐ2,PFdxÉ)‰QN9süÍÈŽÖÙ£uö‘QÛ6ýs…SˆHâH!É –¾8¤Ç Œ".GZC„ž¯ž¼.¦tQYÖàpRíŸKwáŸ+Ú?WlÇ?—ýsÉ?wë¡g¸eºåHD""*%iDB Ž´z àócìÙѺ©TóqA–Y;˜×Åž1X{&¶{ÁŸá퟉cðÙ1øl-׃r  BèÖcWŒìÂA`/$T¢ˆú$ƒœyp‰$”Pà#D4h9ú lÝ;ù h¬-ðR4 /0†˜bVÁËÓ[Ý^óŽ%ÑŸÌáÌâv±N2[…×.™íµç Eë$•Èyúìù3Fü8ßOÊøÇÌVKšFzŸ“ô™…ª"·jÃÚ§n|«ÃZ=fª«S:ߡƼ¥}5ˆo³ŽŽ öÓ9ƒµR_›š’Y;†>3Ö?"PhÍŒyÆ9CbŸøFRUzWÔý=Ä¢Y­üÝ &]´ì@aòTÌ;»A^½¬Y\¹“3õ)u/QÄ F ™˜9~vÿê/.ôßÒ¨ºDi ÄŸU™̉ø>Qò¹ãëÇI(séD¬6qï«nU+›©Ì÷®Ü¨;gZ'Âi¢WbøÜV¢¬‘ý/6ÔÒ¬U= ¹-|g®3á¾üç‰>¢r”»Í¥³N„¿$¾Ý}î2Üo©¿n8ÞÛnmÚÔX|ÀV ØR>}G|÷”Ö:…·(Ñ0 }"ŠL¥Q©ˆKŸK@Š"`¨L] pTrSË!,e 3Æç±’~Â!lÐË——ï`Ñ’S5ï½à%È…s-ï­ Ë«ZA~ ¥ë{L±CÚ‰–R o_t8Ê¥iTIã%kšª¥Þ©h€;`ˆÝÙº÷QBe{’²¡÷Îä¤$0ð>ö# ‰G%÷€FV”SÄõÇ $Œ=¥*Üm¤$Aâ%ƒ‚©Ê ú‰'„d]îÑN•¸÷! Úe%nÔJÍmkØž+Yy´loIDõ«-ÕñÜ™Ø@!䡇I ôX B€cî…a„$Óƒ Ì"ô¤+y¶#ŒQjjgωn¾Næ+&Qö@½©­åy¼u¯æ‰‰·³jžh»Õ<ÑáUót¾–t¼Ðm©=©RžOUâÚªyîN= q|xjâ±äæá—ܬÊ.ᄯÖI0AD…€¥",”Gˆ Pù¦*¢8 C.Ø1ÁÄѱښ`¹%˜ð<ÂÙbü4ó4°góq3ÌÃL6úñ-'˜°c×§‘câ¬>yÆ:HPƸT-Üw›//W8Ìr3C½1 ³y¦/=³ÅÊõn»© ûZ šî‚n…[}M^׸ڑ t­ž6ä„ߥm‘ã(ßÍû(k²öñdmE…K×ä$­‹\ú àB„ŠÓ(">–˜H!aH<Ì€PJ!…r,rùç)rIÞ*âxÞ娨/8hðƒZ­tùd|-Å.Ïj‹x®ƒDDÀ ŠXÓ«¬œî·`4–ÑH-݉¿·®ëðŠSišŒÖp)^á<ðîS¸Mvšãº ã¼oêrÁRÏv6:-ûY@ -ZÖ©C*›^f¢ŽaP8oµ€‚ÚôœqŽHük…A¶ÃãšãÌ`¬ÌÒîÂñß*:ž;ikÇæºD.VE$ª´2Ñ—™ñT޵pÐsó@\—‰f†d«>›¢Y\•"5[¥ÌfÍtõ†Ñ½îw¿¥rµÑʰÊé7V†RÙ EŒ@û:uŒ¹"3  ¡¾Œ"z´ðȤ/}àCLþRuŒ= _ªÜN‘ñ÷Ÿ¯Ü.`s]µúbÆjpÛz=ã3—BÍkÀ[L¨pŠ£[|yЭ:Uœ÷ý‘·`WSççò Ni(z³ gÚÚîÜáê§_LÆã¤díÍIL®5§ë¿oMÞMb§œ(»’­â§ü»´a)ÛªâÂt4X2) ´ì00¥l©Œ°à4ò#Æ~ª€Îû¥Ž»§eØãœV&j¨1X~–¿ß$W­æý2¹B*—ÝpÖý–¤ƒp1½K2†Ý¡,ÌØ¢_DlÁlØ;Y³™ö³Vs6ßõ~ËûzÕo!ÁxËžÁ êx¶…Am1^oEÙv)w{ÂdC®](·¦lk6‰sµnÂ{=¹¦ÐMÑ;| ×ö€CC„}ý/û4 !À^ˆ@H(âcîƒíäÚYâ–Rí,µ{Ì´s™v´œdYt1€y…è”-9ã@*l¾| ‡œ­KÛ£[”®9"{±8ß}aGœ†ñ­/½ÆÄ=ëÎRšäI›Ú%£¼Tʶ®ókòËØI'm©L¶wais³õTËœG¥ £nê´¨U™Ý¾ñàÔUÓ„NkàjLYë¢ê2©T¥ÓÚþ‘“õsÉîø2p¥68Ùñ.5£ S'ÒØ.>´v0Zû†so–“…««ñº'0y‰¶ÄmàwoõßN­^¦¦ê„›» &i–¤Ž¬ùrè–NzI·©a™£kˆœôÍu­*Ù\—ÒÃmßÜóãRÐïÉT¥ªHÚî4ί?å¸m1}"Ü6¸œ8uñÝù['ºÖ&ÊKu›o;–e§éŸò¨ü[’Þ¬®Cm6_ýµi´ –ƒ›Z?Êãàt8äñF9p—qv(sù8jºðå$Œê?"e,­‚ûA =,CCÜ#ÛVÓËn]K7Í•ôÃUÒ©“’9ÂB°Å„¸ˆ11ZšaŒAF@{EÝì“£¶ît·E›$¹U½k½ÒNp4+ofVþáeo¨riÖïìÿB=ñÚpglibzypp-17.7.0/tests/data/OBS_zypp_svn-11.1/repodata/repomd.xml000066400000000000000000000016671334444677500241650ustar00rootroot00000000000000 734543b9cb748334925d6fac1a1f2f3f5b5dffd1 1223586019 97bd7432a1c6b1b44b9ca1f52b9a18979c72a9ba 722956718221845366d4572fe5649a268cb93920 1223586019 e9edadbe3063f4ae8c97667f67d31a192eadc427 f586852ceffd230cd6e7b15a880494a9e2f7a8a5 1223586019 c9e4113751d71ea413fe4564f1f0e94e2cda9bec libzypp-17.7.0/tests/data/OBS_zypp_svn-11.1/repodata/repomd.xml.asc000066400000000000000000000002751334444677500247240ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBI7nDkyW8T9xlZ+8sRAolAAKCgHtH/tQVLIIM1k3SAo8EMMSe+7QCg ylO1hOqgWrRGrF+JovkE7akc4XI= =XnSD -----END PGP SIGNATURE----- libzypp-17.7.0/tests/data/OBS_zypp_svn-11.1/repodata/repomd.xml.key000066400000000000000000000017431334444677500247470ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.5 (GNU/Linux) mQGiBEeWW2sRBAC6p0M82A5kapMTPpn9MQ0w++cEHC4cKRGKe4ysJiGEOKcl8wmE buiiYOZKLvuFoyPDyyB/KPQ56nE/sEwJAsssXpMJ3EeSF5Px2qresY7Ralowozc5 8WF2Btq90RNqIhfjAEpTmiDpn9g7fIn9YAzwh6md2i7BemKBEfNkVrVYNwCgy5bg 9fSyOa4mr7HldiIAdNsPFLsD/0e8GhiSxD8xV3o7dchf8jMEgAv7gAbP1lGsbZQG dSsyODycr0PabGY3XVkNBb6NPdEcm63crsKeVltG455NL4WgkULaJDnDNtU1SGui AlAqEjXXR9dOCgVMs7lfpaF55cerUwGjGGMnZpGbzVClHZubwZrWV9h7O+9ln7Lu /W3mBACKfr68onKxCxmFEadAYEXtnJ/9Yk58rsD2V05rV+1SYCrybOTM/Hhjt5PZ WwXyfCwla43ljVGdIO2Rde8o6UIzbM49F04OC97HMzyGyUd2EiXfDtF4j5y+caoq 9mZaXl2hiu4YSjNGEFGBelOS1YwBefnytgFV9nyWU+9E1iqDjLQyenlwcDpzdm4g T0JTIFByb2plY3QgPHp5cHA6c3ZuQGJ1aWxkLm9wZW5zdXNlLm9yZz6IZgQTEQIA JgUCR5ZbawIbAwUJBB6wAAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEMlvE/cZ WfvLxR0AnRRinTmsd2B7Db6eruYX40smjwnrAJ4iIFZQXD/qMEGsSr0GfCgvhmGe 94hGBBMRAgAGBQJHlltrAAoJEDswEbdrnWUjQqAAn1QYRSp5S0NrCknsvvWbGmhI jR0SAKCwuY8a+dKLOdrhV+520EhUsYU6+Q== =7eFk -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/PoolReuseIds/000077500000000000000000000000001334444677500177505ustar00rootroot00000000000000libzypp-17.7.0/tests/data/PoolReuseIds/SeqA/000077500000000000000000000000001334444677500206015ustar00rootroot00000000000000libzypp-17.7.0/tests/data/PoolReuseIds/SeqA/repo.xml000066400000000000000000000021351334444677500222710ustar00rootroot00000000000000 package unkown x86_64 4 1 patch unkown x86_64 4 1 pattern unkown x86_64 4 1 product unkown x86_64 4 1 srcpackage unkown x86_64 4 1 application unkown x86_64 4 1 libzypp-17.7.0/tests/data/PoolReuseIds/SeqA/solver-test.xml000066400000000000000000000001731334444677500236130ustar00rootroot00000000000000 libzypp-17.7.0/tests/data/PoolReuseIds/SeqB/000077500000000000000000000000001334444677500206025ustar00rootroot00000000000000libzypp-17.7.0/tests/data/PoolReuseIds/SeqB/oper.xml000066400000000000000000000021351334444677500222720ustar00rootroot00000000000000 application unkown x86_64 4 1 package unkown x86_64 4 1 patch unkown x86_64 4 1 pattern unkown x86_64 4 1 product unkown x86_64 4 1 srcpackage unkown x86_64 4 1 libzypp-17.7.0/tests/data/PoolReuseIds/SeqB/solver-test.xml000066400000000000000000000001731334444677500236140ustar00rootroot00000000000000 libzypp-17.7.0/tests/data/TCSelectable/000077500000000000000000000000001334444677500176655ustar00rootroot00000000000000libzypp-17.7.0/tests/data/TCSelectable/RepoHIGH.xml000066400000000000000000000021641334444677500217570ustar00rootroot00000000000000 candidate unkown x86_64 4 1 candidate unknown i586 4 1 candidatenoarch unknown noarch 5 1 candidatenoarch unknown x86_64 4 1 candidatenoarch unknown i586 4 1 candidatenoarch unknown noarch 4 1 libzypp-17.7.0/tests/data/TCSelectable/RepoLOW.xml000066400000000000000000000025321334444677500217000ustar00rootroot00000000000000 candidate openSUSE x86_64 2 1 candidate openSUSE i586 2 1 installed_and_available i586 1 1 installed_and_available i586 2 1 installed_and_available i586 3 1 available_only i586 1 1 available_only i586 2 1 available_only i586 3 1 libzypp-17.7.0/tests/data/TCSelectable/RepoMID.xml000066400000000000000000000021731334444677500216510ustar00rootroot00000000000000 candidate openSUSE x86_64 0 1 candidate openSUSE i586 0 1 candidatenoarch openSUSE noarch 0 2 candidatenoarch openSUSE x86_64 0 1 candidatenoarch openSUSE i586 0 1 candidatenoarch openSUSE noarch 0 1 libzypp-17.7.0/tests/data/TCSelectable/solver-system.xml000066400000000000000000000020341334444677500232420ustar00rootroot00000000000000 candidate openSUSE i586 1 1 candidatenoarch unknown i586 1 1 installed_only i586 1 1 installed_only i586 1 0 installed_and_available i586 1 1 installed_and_available i586 1 0 libzypp-17.7.0/tests/data/TCSelectable/solver-test.xml000066400000000000000000000011211334444677500226710ustar00rootroot00000000000000 libzypp-17.7.0/tests/data/TCWhatObsoletes/000077500000000000000000000000001334444677500204055ustar00rootroot00000000000000libzypp-17.7.0/tests/data/TCWhatObsoletes/solver-system.xml000066400000000000000000000023531334444677500237660ustar00rootroot00000000000000 test1 i586 11 goaway i586 11 goaway i586 21 meetoo i586 11 meetoo i586 21 libzypp-17.7.0/tests/data/TCWhatObsoletes/solver-test.xml000066400000000000000000000002021334444677500234100ustar00rootroot00000000000000 libzypp-17.7.0/tests/data/TCdup/000077500000000000000000000000001334444677500164125ustar00rootroot00000000000000libzypp-17.7.0/tests/data/TCdup/solver-system.xml000066400000000000000000000022431334444677500217710ustar00rootroot00000000000000 Product openSUSE i586 1 1 release-package openSUSE i586 1 1 glibc openSUSE i586 1 1 dropped_required openSUSE i586 1 1 dropped openSUSE i586 1 1 libzypp-17.7.0/tests/data/TCdup/solver-test.xml000066400000000000000000000004511334444677500214230ustar00rootroot00000000000000 libzypp-17.7.0/tests/data/TCdup/update.xml000066400000000000000000000015251334444677500204210ustar00rootroot00000000000000 Product openSUSE i586 2 1 release-package openSUSE i586 2 1 package openSUSE i586 2 1 libzypp-17.7.0/tests/data/obs_virtualbox_11_1/000077500000000000000000000000001334444677500211565ustar00rootroot00000000000000libzypp-17.7.0/tests/data/obs_virtualbox_11_1/repodata/000077500000000000000000000000001334444677500227555ustar00rootroot00000000000000libzypp-17.7.0/tests/data/obs_virtualbox_11_1/repodata/primary.xml.gz000066400000000000000000000424121334444677500256040ustar00rootroot00000000000000‹ÿ/bs/repos/Virtualization:/VirtualBox/openSUSE_Factory/.repodata/primary.xmlí}[wÛ8²î»WöI¦#â6»''‰¤Ótg·Ó½³Ÿ²@´K¢6I9ñ<œß~ ¤$K²HQËr"Ïš´M‚ n¬ï«B¡êçÿû­× ®\šu’þ¿á6z¸¾Il§þ¯G}|Ý’þï³£Ÿ{.×Vç:€âýì_.ò|ðÏããn§?üÖ¶ÃK×vvx<.ul’^/é?*Kÿ3ô–>eÆÅ³aæ&åûÉ•ëvÛPáñ@›K}înžñ'¯Ý…¶ ùZ<ú;ȯP›¯þÙÏ}ÝsÏÌ`⟋ßÖ©¹xÖa’ÿ|\üúóh(7HÌÅ¿ÁpÀ•= Û¸M?„F.¦®ëG‹‘GÇÏ~6Î\fÃÞè]Ù…†æ\žwì¿ýÏ«³GÏ(‘k'âˆGTÇ<Ò±æ1R‚Z!$STq˘³?kzö3üÓÓéõ³.xsr|HÝ MŒË²$ýùx|÷gë2“v94Šv²àèÛ&éçºÓÏ‚/Ã,r¨e0U\ÐyÅam]>a|4Åöü¼æIšýó¨5ú9 àgÜ¢Üé^ûçãéŒ=…A¦Ýg£9<7¦}Þ¶“ôüøçcãç¼ÓsAÜéÂpa‚Ç\pÖhØéÚòRˆ ¹Þ¬óo7žÞ=òW¥ è\®»]å™™¤á£ÀÏaçÊW¸DÈ?ÞMŒö­ .Rÿ둟ìãb ´f'µå§³ío·ýj'ã$íéüÙÏðç?»ãú™{öæÃ»àŠ0„];˜Šé›EÉ+×·Iú,¸þÙ_g¯‚—¾OÁ™K¯ TY~T¤(~ž&ÃÁ³SË<ô\??~§ûçC? Ç'îÛàä§ŸÊÇÊ¢ÅSÅ@]$Yþ¬ø ³²ÄÍå¢T– Sãà·g0ÎRãû[>ó@ñü…ÓÖ¥­äí4‡/!”^DÀ¨K? ÇeIXYWX å_Ћô:ð_Ø¿Cý(ˆ»ú¾ÍWÿõh¥Oëøvå©ûßa']ô*ø»Û‰Ð×ÝDÛ·Ù»÷ô“ɫ߽Zðê°MÆo|ä¿ÿßãÛ5Cµ¦%mþøÍ»·/O>“6}²¨Ül ^ÃúÎ~ÑW>Þ¸ómISÐz AOjË5«×õæ$éAƒ2¾C¿Ã­¬¶+´Úáz!O&“~3Í^L<;féqÔéûOׯ㟋ËðŸÑG:†‡:Ñ_|;ýÌƨˆR¢¨:’‘6ØŠMqBCŠÌt¥èÿý¯à$ð3½M qp6 ’4ŠÕU'I:™A\ÈûQ]ãšNÆ~ ’Ôt‡ñ‹b' ÙJt§€"𭌅R0¾– ”.¤Ïhxa6èvk’ÀvâØ¥0ÕA6ŒZcLyzä¾{À4´ÁŸ¿˜Ÿ~*fæ iÊ?¾è+]ôÖÿ‘D_ÌþRÈ ah0cœp2…G˜qXaU‹ç5Æ#Ló—RñêmReI×å•ïjõ†Þ6˜<>÷@5 €„&m}ójµ¶îϽ(oY¿h¾ øÜŒ´¬Æ€iüÓÍö¨Çkx[kq-ì?7ÉÕ4øÏß5›1J;eÜÆÈZgÑŽii…Ò8DŠ",ThC]èeá"vàÑü…ÕŠÝ`úKíµ9h£GÃÇo~ññIª8˜WÈËÍ4ßР0š€‹ ì *åIÒÍ‚hüÊ1Á(Ø\ô“nr~ÝUoóÈsXu g²¡é£I\€Ò’NøG;ø˜” 7§ ¤”Ð\'ãžWq/@PÜ`p XÐï±mÃÓ’(Iò 8Æ x׸“÷Á,D#f€¦³Ü"RÐÐ_œ‹PbŠ_Â.`qƆ #¤˜³†ÃøÖ 伯ó5èÇôS«°húñïÎa}3J·.Iع¡!r¶Ã'ßžï×n7«A{¸_þkëK\¦õ÷ã¥5˜‹dP_ÂA}‰n§Y_¢§/—ÔaºN÷kŠ Òåuxñ’íÖßÿ_ô†ÌxÑ¿KÛ¼2Œ9ÂD…1Ñ<4ÄYeB¦wÖ°c™°Þ@óÓO¶á“¦ ßò¦¨m«\C63« â9³:gc¥¦˜\!¸T²«‰LáhljZ—M-~¸æõ}%Yna~`–JÛÈ®)Ê÷» p^ ™ fdoÞ)ÚD:²<´†Ç6Œ %Ìr‚)8árŽÌQèêÐæuÙîÕ7 iâãJ&È3RÀ+ö‚Ç ?¹MY5C/ލbt½„Ÿ!…§Ð ®,—¨É£e±ÿöz¼~÷¿TÓ¿F~À°­ {ñ N}Q|gHT…÷€Xç½o ­º=¿ªWµ—׃ߔÚ;ý8Ù)üÙØhQ‚((œˆÐ€@Œ™Ã±¤–&:bâ¨ÊÞýÜúà¥_¡)àT@/ì{×L¾`Â!é0y+¢÷MšÚ)¥ÕSÑŸƒ^µ¡7Dí·~À:*Ý9Úܵ¨-ä]v±a‘r*oîÏI×5d§wPÙ©ìQiqìt¬òþ¢NÅÄDÌ(ÆP, 0`3ìÂ:ÕáWïU³ÔRåÊr7F)¿Ý–—¿Ulûµ²a'wÛ§¢¡ógÈ‘ xÖJ”…bÚJ…%“Š×‹S?û/N-–Ù>2|†HSAê‡ú@ï:½_mGŠVUóïå*ÂÒÌ—5l{Ëèý—«Vfê¶s¾˜¸e‡½ºÝó¥öæEÍÝ/ýÎņš…»]·[|$QÌB€rj¨Tš;¬²Lð“H¦áx>¾+šœú.K¼e+PsTƒmPCiKóþ(ç€VKS(‹2ó·Ò“Æ ÓÂ}¶Ç­-n¦·ÀAbh‡a6¨Á…ËCÕ@[öá ¹l¨¹`¢¦€[ùw¢»Ü™üÞs¨Þ\GI¢/;ßO7±e„ÐIå·Šc*PXd * 7<ÆDH®tL«L<.‚^0n¼«>[ÕÄÝoîz';ÒýyÏĉ âÓÀ¤®ð}Œ®ƒßÝ·þûøë™Ù)Šik6†„ e¹£ˆ:â,ç±HÄT lC6@±­aØb+°¥ôýàmx œ1ªÙSàþGÙô)pÉ1•ËñËÀkK ¢«€—9l©ìÚÂ73ê[;¸µ<û!ëZg½Ò$¸*d¡6Ÿ,AÒfª R©XRÃ5Ü&H„1·XI š–#Äg,E¸Ðìõ?/ÎÞOŸé‹×&HUžwY§×ù…?=ÞwΦøàe¥0òÉyª{YoçFÜP+ÙÂ4ø5¹èg0DÿÑÍÿsà¯<Ï“ÔKúvßåÿqžÿg#Ìùúõk{ê¹chÇÉìØ·a! Rˆ¡¦­dÅ%¥Â($qègzs&%Þ܇o* +½În–K«˜ÿ–Ÿù¥Øóòì4 ­“®†1Ýà!K€§èåTÿ6Е„j`»Õ:AºèƒÛ”ñXÞôïÁj¶‰¬UÛ©r@p,½ØÂZD†Ë(²Â"C)’.–\j£¤A5§vƒ?‡ýBì¼ëD©Òž­¬@³ROôÇ£!,äo:ìOdïÑHo°Á×N~1Ñ,|+&[üåaá S8_Á<&OAu^pÏ¿¯¼ÍÝÍ’%Íí†½í ºÎË–RÞø±ÔÓ0Tó±­ãlàL'åãgoÏž<-ªéܪ洓åi'z%çìt€›eß{•Ú_œ¾zRè<þ•’¬óí#DÛ,xÙéO¿î‚î”å÷áã,Âf[2Þ}YÌ™ìB%|á)“\Õh3þ`Û1*=´‰™ß!S–Yµ‡Ü×i·¾Èvã–V2n¥¥hZý´ñŠõ®ryÃÖÖSu´Ü; W©Ÿ<`­°jh…÷Ã\ù{s0Ÿ³ÂãÃïz¦ÕúàÂέa mà ¸m-u¦Ÿ +ªpYÐú ùÑîcžJ’ E I¦£LƒP¬5ÕbCãf?º±r#y1¢×UŽE½…r¤}z¾a¯¡»ÀºÝëÀŸ®†Ë'>´¿Ï%š; å†wBV¤Ý÷.’XIÉŽ}lšýÜ{SMŽÚ6ùħCum£o‰NÚDüe³ªEÚTÙ™¿ž4nGMÉíÒ”éW/“Ô·šVã­áB+Ô»B ž¬E¢ü:Z™$ެbä]0e÷Ä¢9¨¾¿K$wöÔ|¶®o: ÞEf|:mÇ´CYS›ò8 ±ÁÚÅ&VL#¢°¦ Y!‰rh¥³Õ³všëš3steÊ>mŒ ncFï<Ú÷£Ø‚53SðâÙeœ&§£¡rN®e1“%t8‡½Ù9lÞÜlz »¦Î-s‚Q­&¶:¾ŽûºŽ%â>l û>µ·''/zÛp›ê5ÑîïÇ °Ïü`»è7!gwL#PìP¨°ÐQÈőұ )."`Üò8&•ÁÞ—­^}Ën|ëšrˆ›è,Kë¸\ç”ðÙsì„ÁóÓÇØ Ã4D5°>™ÑÃöƸŽqØ×'#¾MUš_TZ–ŒÞÞ{'o= kˆm•é• 1äžpÙv+ß~swCØž¯e‹¸Mžð½~]Í-ò 1Þ»&îàãšPh*±ˆq‹cc¬3HJ Èn#"¬Xh'ÁïÌÏ•|½oìUUL¼¼· ñ¼Ä3ÎùÄD5W Ij5÷rB÷ßÇn)û|HÊfؾí“(åÔm»Æõõô¢{d_€óñâžÁ^íðÿ@{ö{o£ǥݭ…>B„Ç8湑…ŒM¤R‘‰áOd"&8ãq¥…Deßê´PËf ë ó3OŠ?]æ-Eø |ÐI7 Nt uJWuSþñÜç&m[ç=Õ‹¢ot¸Ó N“,øÓžïKŸÛôy§Ÿ;xOÔu-pCßìlìã^<ùW7혋à4uƒK‹çlùûs€ û䨓Ò.:Ýà•ý .ßÀ÷|Š%L ¾tý/Ðí~ð[’õ;—EÙè2ù÷¢Jß%©ë¿¶ƒ?;yÞuEÙî—´øã¹6½™Š]ÞÖÝ{`/D Bø,}Á’R1Ã_àŠ¨ 5±yÿ|(¦œ…÷Ñ&Ñ(@Åd„§dë§OÅv={RDûö¤Á+VÉ›´aöÏU[-ëØ~ôñÛM +¶yÕ.Š'K¡Z …_¼|û×9×,.¿ê˜àõœAF‹bÍÔ w~ìM­=°šmäè„¶á¶er¾3;Úƒ&ñ;4´Í&¢Øq0…˜†‘OzÏ|ލf þ ‰3±¤JXÉÒþ·å1Ó2¯A±%3!AAÏóú<ÙÒ¦Ì<«%=ìv ;\InÊwÜœ^ùâLëG#¢85ëw\Úîüy¢2âu <,¦0 ¡0n‹§ÁÛäËͲ  Vá\(U"”w‡òÔ¡œðÚ=½Ù…u`Í+²f² mÞ8•Ì:›f;:LºÛŒÄst{»É•ïÿ\ìÍrIv;‡Z‡­Ä"#(b5±ÆB&5%Z„Ή…9nN3¼9Ü9HÓ›|ÆR¸Þè³j%Û¼ÍR­aJAÊÎZ*B¤ñ‘ ±?N6’¼‰9ÈÝå.ET¬*ws©ù€‚£÷’nÕ,˜·±µEðvH…½TJY"…™:e]Hµ•Jú}e­"SÁ‰E Ã^¾èI¼€ éEãŒ^ï¼%ºj#yüˆžy¤0^×å³þ3‰\š@B_êü¢0ã¦ÖEðûóA%ß\6cö}™´¾ºÒýÒ”Y÷<ö¿µ“·õðÆ: *K|LÒ+ÝóÑϽŸmÖs¹ž©ø—ö¯íàݰ(zñ¥û¼Ýwß²‰Í¹qhÓùÏ´‡—Çÿ¯§¯­¾®éBiÈ› é—xynŽcÎEta&rÚ†Ìa•{àŪk–Q«X@1’˜\"“usÛ1 ² ï¬вðãýQ‡}çÑ$›&¹®2XOÆ?Í;ºû p@/0Ï\ž-üÅ-®áßïy¨Y_ßË›ª{:«ºÓµUw’è‹Ïps{% ig É)–Bqò×DŽ„ÌY™ˆÁ¥à±k‚-Ô ¸›hÁ™OA³ZÔŸº¦ÐÎ]ߥ ¹ûçÁ«îev\T>9¢5 säo¹Þ°xÂ}sf8¸&s7å;ý¿€wà%‚’¹Óï’3I§wo¥”5ƨb)w5ä%X©á;‹±}¸ÐÛt³i¼ ð Ð{RN¬Žò%•:Àÿ]ÁdL§U8ÞÓ—.J’|ñ]ÛÉÖDøËB’¬ñmš]õ±l!±ʃ",­³1F!…£H i‰Ã!MŒ B!e¡Ñ #’ƨîk’^ û5íAß?@q±4ÞkéºoA®³Ë¬Æýë<ÑÝÉ>Îe)½'¯ùgÐ Î:½NW§Aä.ôUjÖ&M²bcÈcfVfÖv6DøÏŽŽZÁkxw'êt;ùõÓÀ&ýÿ“"mÃ~ߟÎV¬Œ<íç¶3¿t)||½Ú¶.L|¾|¥ï'=4º ÷Z婃‡†y«eäá6 Üjýãuzîò¹r×ó=õÛmåi´AÚñCôœ¹ÐýNÖóõû.Œ'¤læ$^_QsÁµŠÌä§¿•váº?›É0/ª½yOq>¾P_ÁïI¿•ç‚Åyu3õРWE0óaV,aÔš¬‹jþõ[^z–·ƒ?²Þ°o3W–:©m•ßG+èÞshð°Ó_)Ä,|#¾|WGYan é|d6´,\bߦC¡·:Ì9ã "4èKTdü¨ D£žMÊ-/÷€ëã¸x ¦q)'âK8QUO7É·„›Dø+_¼„UÒ•¸Ñ"œkâ0óƒ;Ào?"Ë ¾)i^ç˜2ºÛÔefãÏ2•ËÞåb 7>§ÎÂ3&¯.ÑíWß3½ÄVß>÷HP}Û}¤5uëšFõ.¡Ù5·-þQÓë^õã§nðöôeM»zƒê'áC©~ µ®KWuí­¸÷GôåDm«~ÈB?«ïëwšªéî ú,ðê›# ¬™~s‘Ô´+»X‹]û8Ý»ˆó¯±c¡ÐÊ'!1¦Ž b¹uXab8³ Ê#Sçßçp‘f ’©+ åˆÿîKL6“*ØôªÕŒ¤ ŽÎyß»H¥Iï¨ÈHï3Ð <³…IK¾ ±7ìæÏw³k`¸ßœ7Ù,xBÁ»öyûé‘ÏÓàcñï›gO—›öoˆÓÖvJ›ÜTŒsüo”#§œÝ¬}ô¢ŸxƒÌ ¿Mì°;éKSå}ÃÊÖ—iv‚F¢<-†JL>,yu>ngt¾ù½9èá‹÷§<ô‡M¾åÀr¡¶ÈÇŸþêÒ'{ž4K€@%‘³Q!8óÔiÚ…ŒQJêÓ4`¤B5‰åÔ,oÀ^¦<ø‘NMnnÁ»‡3“k½rU³]-·,Ñv ˜¾ê¤^NGÉ·V’­œ˜îf “r>–f‰ˆ#Œ©¤‘ÜQ¨[G€×!¢HYbjp‡V.ì¿ËÖ¾L¾€+±çà™ww®@ç…Ïçžb§óa ˆÝ1Oƒ‹ÎùE0pi1„}SlfÙ¡ÉŠ½.Ÿ†@1óy¨³<éÁ <õøæëô  xìC¥ðT ¼^w'–¬£"×”Sçß|“9NgÁ ˜ƒ³Òú,‰ó¯>Õp—ŽlBiol¬;ò{†È÷à])ãƒÇo>¼«‹}Øé¦»ËàM/ú¥@ÎN?Nž®ŽŽc6ÆÍ›5Sé÷Gˆ ‰³;\2¤ˆˆE®%”cŠç1 \ÙÒôßm]„©«Ž\qÒV>?¹üñjiI¿úÖë’ÊÓˆÍHØÂ–-¶0.û¸–²«—; ?Yoim¤U¬@–W;Üølg½ˆ‚šþ7oõŠŽÒ¦&l².o V7„/Yˆs˜ÙTT÷Éo &iÝ”¯š*§ù¡ÚÿÊß ;¾dXõõfݼiÓ¶’ §>äÞ'Ðîóxwå0ž$©«ÇzD…çV´`}×b£#ɵloðÕ‚JÓÍ–tôS~o;45K¾a/¼P 7÷ËÁ Wˆ¬zλÒ^a³X•P°`ú‹…(ê½N¡fgËdö2¸BäìAÁ • Úµø+k@¼›ñ•…‘¸kMAþÕïu¿HW¼hSg¤ UÜœPòš‡OßÍÞt¹9îô;yÛ_Hõ]~û¾¿QüÓ6ñyuÝ/¬}ûúöÓSí_2ƒ‡íÌ{ÃTtöÊv¼wóí‡Ö]§Cø– BŽZ¾i6½j—Vl€ÓÙõ²á¤Õ}>užxÏw{ºÄX·¨.ñqØ7y·vZ wÓ÷Gæ9ÛIÝÌÐLˆ­s¯è· Ÿò]˜ÖÄZqN#J,6–Ä"¤VGÌpÆQì8áK̉E«ƒQ«—ÙËÂS[jðÔC5¾QJ…æRucªøLt0„ ›ZÞ¦VÀÁ ×Üá<äŠ/·ÂUõŒ ~£¶Ì"¼àͽÄênGg¦óÏ+?½zeý//_½z]ý#³ÿˆÌ?2óÎ?npêV5¶…e‡V6-,‚³‚=`Uu=ÙBP£†šë=ꜽáÊ– M½ãîBY¬Uë•¶šàD¥\»Gõi…ÀUuºÔÝ©Ñ÷©/5`îrı{×™ooè`Vœ—H†ýܳ¹,®%„À_jï_Å5„ó¤Û)J-$Ýeå-OJ²ë¾YÖŠ[7¡Ÿ ©ZÖEÃóµÈçgáD|ŒÄ+Qƒ,wØ¿„C¥°Á†ET:âp¤CøÃÒpa~œß\ÚwÝà}éhå÷š§±UŽrú³Ee­Þ¢Êüøþ1UÞˆ©J &g˜*e˜R>®„D¢†Lu²XZ·fÿÀYqVIÄä¿Ì®{}4Ÿ“'uL„ã’E‹DaQÏHh|6=óÙŸÜ©­-¤NcEmCгŒAψ‡& ôÓ^Û@¥¬uî&Óò­Úþüø.9ÿoïLúŒ_m]\ð0WÖ5™\[OdQŒCÛp òîçB ù 5|Ÿ{:»¬­ž±+a*k?ûëÃizUœ{zR[•e*v!²õ£÷$ˆM’ôCá‚ýwmN!é¤UÍúÞ……³dJB:…kXNÊiòÈêå &ÖÖ( “Ö*µJ——|" Å›}!¥´\í;™…ÑŠ6¿JÓ“¤5äø½ŸÔ5FPjPU²+׿ðÎ[‹$Q‰e/ÆÏo¦OWôÏÛ ñɋׯ²â’ÿÉìø·Ôã¥yÙ;SiÊ{\ÎØU¯PÙjÒ˜D‚G‚Q-X¸p;Î$©+wÂÖëôyêÕ½Y§>µÆBQëa7ß9O4ŠN±¡‘äahBe) )UEþ584(<ýO§Íx:õ†ÌgNL•šŽáH@="r%’^¬•M_—¦Ky éš~ éû@Ó«åÛë­)÷DÔËqÙ U/ª:õ‡@Öï–W?¯…&j!¡Šcb¬"ZK×'«õ{$ìívMÖ¹´†Ð˜ãˆIŸg]IK ìÚðH…X"¬•;õ5Ý?$•ŒÍe¯'Hª™ìõ¡p²ëä@Ô×$ê>©ßΈúâ¹Û: 9¨Uà  ¨ï–¤{™±‚ÕÈyC3öxÌuño?ÕM¸7wF#ј bø–µï”ç©6;§åØj2ˆ8GXÃ.œ3"K-#Ž„ˆ‚"q åkÓrŽÐr:Zņ^¬”1Ž.U³w æj~ æjÞ˜š—Rc 伨è@ϼí|~]¬h8/—A#³yL(¢Ê8j ñk;Ò?4Šþ ø_ëÆ-›MK[÷` ‘H3*‘¦Q¤´±!2 A‡±#)P¦Ü’‘Ÿ0Ê>”aê{É0+í{”TPõOžÿÏNUUÛôê³ÀUa¥ü9ÿuÍ[-^T“¦¬nú¢øQ÷|ô‹u{'ï<¤Ò¶£±nt´î^¢t5É%° )CÏp ®ëå6/s°,ݧg#S Â¥$ iá8¦\†& 1²$ 5ŽqŽã$ä_ÌqÒÞ³2hxP|;lÇJšgšk:I¡‹M}à 1_d™„Ex\‘³œà1Ø‹Œ„'ŤœüôÓ¦„ç¸QNÎè$k5ªåî›çÁ‹„Ho§-뻲è®O!µ8Ù]–ô++-¬èÜ «ò=-J¢N^!Іý¯¾­nп¡LõÝr‰À—³ð¦ËaòÚ§«ž½kÌ,‡g20{"ÁË”ÜË$xÄ"¬L[ì‹ 'FRª Š$ÁØjE•Vò Á÷L‚c.8›•à˜ÐWIpÄnKpNмG ÃýÔHpF¨g[‘à¡Ú+ Þ@W ùïD8o"}‹,°+Jß5sG>Y¢”nE‰´Ó<Ä!¢ÖF± ¦1æn¥¿èE†îãÌBÅš×é_Væ*?¢géòto’§›I%ølžn&¥ò„y"Y¡ŒäUrµ&õ÷“¥»‘4U~Ì— ÓØ.ÛwQ² Ëp#Y²f’aD©áØRR„x3&`j®I$,3±Ô!‹"uH2|H2|H2\•d+Àd¤f£b* д¥J!¼0ÖçKRï~79†ItJ9Y.Ñ+ÙlýÝ\›î Ýn%Äl«çÃ$NX‹\áƒ-—LpüN&CqÈ(ÑÈh®b~ȇyȇ¹|˜¸Q>LŒUŒÏ…†kŠÎ„f!]˜¶Ý ÔŠŒ‘ßIBÌFb”c%—‹Ñ»–Šeüíú²¯(×ñ‹ ¹¹H(çÁ¯V*ˈq‚*Jà´Î>üăa3O‰‰Pl.ú¹ÄœJÿ\’X †ª˜ÞRŸ–‡ïTÜðô*k ·—DóÓO‹d P-¹Ðåàs:Úx*ƒW#Ö]Ýo™jä¯KU‰"ŸTX}8°0Yp?»Ì“A«Ð}•»ÐÝêJJVÐòqpëûã`ü³º+-1ØV‹ñûð°›9=´¤ºŒ#q2ç<«m`ÇvÌHVxšµ2{y/áእ¿pz•3T˜ìjÜl³ëÞÂç|’¦­(›ªñøøÅ2ø ˆ@*¯Œ(QÆïû³H)ÉAæ¡fL¡XÄ<>ªïÁPMC Îr&>›¿$•ª0T‡[3T èáªߎ¡Z Õó†êFl\ ¬qH…¡ZmËPí?†‡f¨ÆCõªE#M›ºPÂ(GTgPÄýNmbN#´e|0T?dC5eR¨9•ôpÄÉbCµ$œÞ‘¡Z< Cõ6¤aˆÓ»2T{×ʳΊ=yS™êqÙÙZ£w™ú²öàHohAîê_Pyó!XÕ§4«îJãûÌÜŒCu•»³Õ—NeCfÚ=q¯]Yná; é²¢3U/­x/÷nz»tFï}û¡aVP>óp¥˜t|:~U#Ö„HÚXp‚ ð#Nh¬mÌ-ÃÄ Â”S¡¢IyˆIw‹„F$D),ä¼¥ QŒg,M“pÑÙÏr 4ÏíÂËÈt¢]>ø}°“gKØ:á/FhÕØtxIðF‰àxkq¬B#l ÙN :®‹±5Í;tú°/_˜B°ýž¼íçÙ’JYh"´µP`Â:ŒÝb85#¨ƒñ6ÂÛYã")#|Gaé(¦„·ùMÅE»¼‹l*·ÑfɲúÓuÎ-+éB«¨ØvÐDÞ®[¿8=8+v…^ƒ*]ÿ­;©B"›Õö¨u}È?G¡Rz;™¢H8†—a¬µIÖ …ba ‚Š7 VÉ©ß×K®ë%#—!7‹³ Þþ]¨¶¾uŠ‹u¼½‰q 1|Háóࢄ¯”çF»>5éx„üÖ‹ù!3}W)|Ì`0C¢‘"¶Q i@÷B E(Œ„Lø]<G DZSÎÒ*V¢2ŒÄÉIŸÈïQi².´¯óÚ×—a–|njÆFå!,Fïà |Âøhíá>Bî F!w  žÑ¹¸DÑi£/\¡ ój«X CîÜ›nuÇQwž-2´†ž%eH–«YÅ`×~Ýçµ`÷%ÊÝcFžüݜݴ§A3î>$ÞM¤¶6›nМ°ößü³ãa–È Ã/HáþòìlÑð|÷V6-˜ #+¹Š×N2àò&)´4.Vå s¡V¶µ­lR‰9+hgœÍús2ŒV´²Áz9ØØÖ¶±¡0<ØØ6¶ÓÆv°~¬_;·~Uؘuº…ÍÊVìkPÑ®¬k•gUHL$cƒœ’Ú.ÎSsȲ׶µÑ:ý‘’|4×ÊVÔÄ(аŒ:gYd¬T¤’ˆILc§}† 'E,i>n+ba3ŸK‹è&ÓÇ$…h>}LRpÉk¼š&ú¸ lT÷¢‡‘ð†¡®“êc[É8j Q[Ë4"æüx|Ë uHþñ˜E”¼£n$ö5ÑF­ùvõxí¥§æ®wÜ"+­‰”æ&@ËA4QÉiŒDˆ51F¦aàö¢ ãƒ_+Yegž\Ë}«»i¸Ñnf>Ð  +Ĩ˜t…$Q5[iSÓ|ØPÛtC ˜X,Ÿv&ßâ¶Z $–o¼uaÔ-9<²vƒ¿#½¶QιÌKO†Œ›õæÕVÆõ.· o޼¬Ûèíæ¹{Db„SÎ0Ž-ÂôÎ¥! ®*—8 U ̬;¤ÙÃdPª–úà,s1„’ AÙ© õHÎÑ24=àè†8Š G´!Þ„®žwwSh´Çž,%ll ånàs›U®¢ ƒþWiXÞÌcêa9›äjÚ hþ®YÛEh’—gÇ`/âa!rW± £HP #JË8"Œ¼PýôàüÂjÅn ú¥ö^šÐFnßüþâã“•”PÀå²F3Mt–%¦£}À{#àŠ3˜A4~å˜/”¸j.úI79¿n*ì”~G£˜+IÚñÁìQ64#?ÓQ˜(-é„N´ƒI ¨psªÁ>rLPJùà:õ¼ëꈚH t‹ÂÇqÏ›“$y”aP¼kÜÉ{ ²¡ÒM1bÅªš¶£‡Dr­iKzÈB…Â¥dø0lLBJ3†"_×¶¤óy_çk°‰é§¾; ¼ûÏ™GÜ€ŒKÂWý™Þ¿c.,-ó¢.¢%còà]ƒýúîf5¼î×ß|¦¿Ú—iýýxi æ"Ô—ðcQ_ÂÇï­/áÃ4.iG×é~M‘Aº¼@dɈvëïƒohC²f<<ì–¬qcbƒ,!šR*¬4ÄiÇB˨•ÞXø×Zf~úiB×VöÚöL˜™·Ñ@m[e%¤Y.k†XÌ&ëLQ¨`Š“À•a²Œ’À4(Éæ‡kX㽑i'lƒØ·ã:³!l¶I>Ú—òbàYïg»9ƎDZf‘°GÒXÂhì°µc¢"2“"Nê äuÙþÕMü°Œñq%8éßÿÀ“É'÷€5Ôßù=ˆS¢™€¢<¤Ë¡ffâèŒ&i?!g*Ëì2È™øïàtçùâíûvêÝoVoËÙ`#7¢xüÕìT²ã¨8b±$‘Šœ# !*)‹¤A4²‘ô®2T˜}•ì÷`¥ÍNñ+!a3 '¡šF¸B9BMà û7s=š:ÕPöTŽ=W9Î{ß"ºÌ„ÚÄi3[ëüÌooÓôk/ShÆŸôØ1¾«¨²Ö)F±¢Ž`…µ&Ê(Œ#,DsL£ªÊ·ÐäÖ/Ú Ë J–ù¾­Átá­"OØLõA« sÙa@ÏhF÷€2T.Ež¢G;׿[oR5E?ä]ÙøA4(RNåvN–‹Ã{ îX‚:#CˉÌ:ʘpq(‘tóXbâÅt¬!üê—ÜÍVw—ÈK_†voeÃNî¶*TY3:/)‘|6C ŒfxZ¨ÂJëŽÞLâCª¿‹m‰|ò¦âÔönÄi±‹ýe ë÷ñA#Ø¢FðïF4ÿÁSò/W­ÌÔm‰1qË{u;ÞæKíÍ‹š»_ú‹ µ/"»nÇh†,‰”´„I¢N`« ‚æ¸5Ž"( ˜^ˆf:×ËŽT`ܨÛ †ÒÀå½ÿÎ}–K—¦þœ¾ÏzîŽ:¥ß¢¦ÅÙƒr$ï±ÿa³ºGœgèobU"®°XºÏQöâ ml¬mÀX£¦ðXúÁÌõ 746×+’èË=x&1á£JaÍbFmŒ5Ç±æ ž±¡H Ê4âs„ªŒ3nÙ^á&±®Èš7I7ô0Iã¦oUÊ‹†{LH:›f‡(>}ð ®P²üà×h¥=1ß,sæýìb³Æ»Ø£ß¡ˆ/Ž1NAoÃsíûÐ\Ö$s?®NL* d¥“†°¡1GRRGŽÄˆqÕ“¶†H‹ñ¨ÌÙzô£¡QÈ9šó¬¢0=dzsƒ ¶< ÇÍ;€Ñ†.Ud02÷çOuwP ÊÌÆ¦»ÝûáKå;¶c܈HÌ-2”ÊX…ˆ1Bãš9a±²ÈŸ† ^pcë¸!æU!p{Ö#‹«I<}ü®€æIaÇ56Š¥è*¨ñMT#»mOÛ‡ˆf?€âR&~^v_ÙU ou/:AÚ¼Ñf†0”EÌ)+É…Ð*%ØD$DG†ñh¡ónœB3¿&ée±ñ5íä>,RVÄCüYÊ";|qÓ£H×} r]f5»÷ç‰îfc¿ÝËRjM^óÏ œuz€i¹ }ÕšµI“ ¢Ûõ>»£(‚€1~è³££VðÞ݉:ÝN~ý4°Iÿÿä#„ †ý¾óq|¸„Ôžï['™_ !}|½Ú¶.ðÔ·}¥ï'=4º ÷WCîz¾§ÐR˜uüÐ=g.t¿“õ|ý¾ ã )›Ù‰;%45ñ, —ëÓßÊ »pÝŸÍdXfF»yÏ×N~Òd@}¿'ýVêÌçÕÍÔCò‹¤ ìXè5YÕ~׿õá¥g90ެ7ìÛÌõ‹ ÏQ'µ­ò ieÝ{ vúí¾Ë|†oÄ—N‘”`üÁ-Šù† 19ó.a!…µ ÁsÙw8Å&ûŽ… «yÁ¨oÓs˧$Ø BP¬‘ãâ1˜Ê¥|€,áU}ÝdÏ ñÍòÅuø\-LYÖš¶§M–8O¤y#‹q± ¬}(aI¸ÍÜ8.{—‹=,àÆçÔYxÆäÕ%ºýê{梗ØêÛç^˜WßvßiMݺ¦Q½KhvÍmË€BÔôºWýø©¼=}YÓ®Þ úIøhªŸt¬ëÒU]{+îÎ}¢yU?:(’SUß×»¦»ƒê{ðiTßa]Íô›‹¤¦]ÙÅZŽ?×:ë•îqëÐd>‘°r” jù¹eaAÅC‹ß3c çÊ E„#„c*ÒEù^œ½Ÿ6& MŒ2#æ—ðxz_xþÔw¸`4´¬„Prô8+“Õ3w²ÄQͱ¶(BðkrÑÏ’’Y ü•ç9g˜Ð•ø”O 1õÜ1´Ç›„²c߆ã*^…H8Ï«å|A¼ ÄC6g© £LÍœC J‘š]ã›%Ó*V@ËÏ}Võòì4 ­“®fnl,Ëgýœêáöx!ØãoƵžNÝþèö„Hù,oúîÞsIŠb U,"Šˆ% a©$“Z†ÔIFÝŠY…|I’¢?à³,LÕÁ8Sh…è]øŒûy„9v:¦.H;æâipÑ9¿.-±o¼Îءɼâì-á)€ræ}+3ÐåaPž"“¸îfI ²•ÂS1,x½îN, Gã¬ãqêü›o,à ßÿ¢&8+MägIœõ¤ACvéHGO{cãÉ‘·ãF ±‚w¥Ô ƒšøä¡¦UâBbDgmï„ ožv%ð9Daã·{”Kiï³ÙR‰i\ø>£—¯_-Ëvä‹ý殣D§¶IÙÓÓUj¤M Ÿ¹Ü[ø²Fe/àk³þ|óniù‰8iÔŒONþxÿöÃÉI“€ &ý&%ÿ~ÿ¾ñÛÀß'KËm7e•럯5î¤ùœ4©îÏÍ{Z‡Ç¸ÍÚa倞¾k¶ðIóú:鼊>év¿Á_@>Éš5û¯&ÅÞøäÅÒdpve6KI¶âŒ¬vE£[óଠ×8Tø¿y«—7 UPFQ›jî§OŸi;\òÔ ,…ÝFËÞ2ÈXµ_7KÊ®$—}¤…ZcØ‚¾eÝföÄéAyñòígÜÈzz·ùÅ>aÜ(¸¿íúbd…‘™7 nj‰\gš[|×¶$7lð‚ìákª×%åh/iÀå>ƒŒ/./úfØiTrz¡67îoy—¡ :˧ì“ßøKÒf¢®)å|µeæ‡ûõoë5OR¸ ½šú¶×|Õ>ä™nFœüŠÉ›æ2Y!¢÷ œ£©ÚJ~¯S¨èÙæù.?¹oͺ ´Ð»F-ÇÕy Þê.YÃù^@Nkw«ü3ïu¿°‚/Ú)7'¾æáÓw³7]nŽ;ýNÞ¶Ç>nßå·ïûÅ?mŸW×ýÂÚ·¯o?=µLüKf¦y¿ˆŠÎ^ÙŽJq»Æ¡uWÇé>b¨£–ošM¯ÚÅ¥àtv½l8iuŸOçÇóÝž.1V ªK|öMÞ­èÝôý‘aÐvÒG73´Ö†ÑàŸ{u£ ²«|ë1e”KI™Â™Ø›5Ca­bJ1ŸjKBãp‰)³hw0j÷2fYX[X^eþxê¡þ(&ŒÑ¹8¸R†3'ኒŒ4¶úM­‚ƒp•<ê!#ár `õh¯jZ`¸ç4áÍU™fZmu;ýá·¬½¬½ýŽî+ÜónÈ?õ† ¸ÌŒ(»¥×klóØÈIk›zÜVÉé¢Åz7 õNÔú•ӯꋕùÊ{ɰŸ{®’ŵt°¹öþU\C§NºþÀM¥,+oyÀÍ®ûfY+nÜ„\Á°·òT›uw‰?{ã#Ÿ±÷Xfa5ÂÊ’XSD¥•þH„ -ÜH©C ^baTžß\ÚwÝà}b‡#ìiEcÅT—Ee­Þ¢ÊüæòCåaJa<犣0Â>˜õ”‹3Ƹ.uÕziÝšþ!kFÈ ²Ëìº÷øuš¿ÏÎñ“Z3J_(‹zþüø*MO’>”Î?&ð{?©­0d1Â–Ê G¢è³é™ÏþÜCmm\9c#jšw6èôaý]¾0…”þ=y ¼nI¥,4ª©ó]rþ>›$é‡Âå²¶>aFŽÚU*ü»¶F#¨ƒq}ÿížüÓ\[—5.’2ÂÍ&$ï~.ügð…}îéì²¶zŠ)aD7¬¾ ßÂ’¹‰#®lû¥W;µîy:ìƒõï¶NŠyÀÈ‚Iz¥»¶,™þxîó\d=—뙊iÿÚÞ ‹¢_ºÏû×}÷-ËÇe+v¦ó ži/ÿ_O_[}]yÎ‚Š™TCÅ%©¶RI>«Ûq:ÓQ-0µqÉ‹•×-¤V±„d$ ´,’Å¢ŽnÃbï°^}+Þ¹äÌê¢øGÉåpÛh62¶¦yGwÑ©õBäÌåٲƬ4üÞ£‰÷{y™$½¬©º§³ª;][u'‰¾ø¨ä7·W‚Hë®v‘È(i,6RáH€BÈŒR ÙI,#.”r±X‘ØM‰²à̧®XÍ YDvðFÈs×w>fDÿ\à]qò>w”W„ðÛÅÅVýšW†ð’¢í-¶o›òÔRȘ ´O«0ÝG’ˆ’¤bSÓv²5ÑÞñÝM 1"€ò¡'‘`±ß¸fÆPÅ$­XUDý-ø¢£@Y¹ƒw—A¤F±°~÷%&ŠoXµšvð¶8k utÎûÎ鲎Š8‹ §}´Æ6Д|-(AoØÍ;>ÆUv  Üßö‘¯&a·»öyûé‘ÏÓàcñï›gO—›öO¦œÒnªK†ù`˜£â—ó›µ^ô71­Ê=ÕQ_˜*hÚ¨õ£3» ŒD@6†JŒ7´ûXZù¸À_¾y;ôðÅûS> ú>Hå×Ô½ù|u釓=  EPõRй¤c>s8v_ÉP.‰ŸpˆœÐˆWÕ4r™°oÁ§v¯ß-/YB3Vò`ÚZEëØJä]²áµÚêï:=‘4E]Ga,ÄÄ9"$ CMcæxl !˜a[}ù…ÕÁŸÃ~!ªßu¢T§ú¬õ ½‡²âLnÐWŒ†·ˆúúðD?f¶e@ÆqèfߊIöËÇo~ñP·ÀËëÀG‹˜<ÕùpAóï+(A§¢¾Y£ÔcGo{£m5=e)(ZqæzFÃo}DŒXû˜g&'ƒÇ/ÎÞž=yZTÓ¹UÍiÇ㌆žT”Î8Yð¡ì{Ï1`M¾8}õdl¹ÐÎ:ߎ0B´Í‚—¾- ½î&)TTõâc™4Èîm5¦´j–ÿL ,çüÛ½×!3 W8©ÁèñGsÈ}¶qTiJÄr÷6=Ÿ÷u™Gbù:(šv–…v.ÜõoKKµúYûëm|ÌþN‰KÃù‹N~÷$gµ³–«xÂ7ckº‰/|lù¡ñ­¤^£Sw1¼œ¹q¾ŒS&!¥¤Fm¨E:ŒG4r„…Úåé“’„¶0J×Mf‰`$,Fìâº*ñiÑS¯æÂ z b¯¡Ã£XÙ…#àÊ„"ÝšsÁÂÙ8Ð~fÂ@Ã…Ú(г3º_x>òŠ~©Çjý¾åR¡l„Ý7Ò®1´qC°<á¹¼ìÌ_+QÓ’ÐŽš²§ØYÒ„‘¨«ˆ»m@1¨ÑLŒ¯ñÈ>Y‹0ÝtyhÑwh !£ ª,¹5{jø¸â³}pþ…cÙ±c¢¡„ ©R6BV*+CÉÐÊ‹0FÖš02匽7¢±{ë‚BøˆàÍòŠña4'|.„Š4à#&²Š†yE&2EVTNÃ¥6é…À¸ò[ÈòG¶Œæ[6°,"u[ âWÇì¶ãheÓÄbú²vˆÅÑ$øËöøË.wtvÌðnPÞûùݓѰHXî˜Õx‡‰´ V8ÎPDü?!p”pa0Ÿ£-š×e&):çv®kң͘©„Ó[CÁí­¡ñ;ÇTèh´QãÛ3iÇIÁ”{3 )žl•¯àf»!œ Ÿsk:Á&‚LÎ$f¼ž°Ì­’‡°+2š¢=e3”7c3£¯5­ŒÊÜú?7íÛLø¹gû´Ntá^¥jº[gŽûòþœúûä~#~NT÷†AŠÑ¾™¢i¢›Ø.‰Ø1}°Z†R-cM#m9•QLrg c"€ÚSúp4±¤4¢÷`iÈ2$Gd–eÈI1íq!CNQØ”eøÅZüMöm8Y‰_lÙ.0ªõ.ê¼m;X›\ì™7Å庒7À®ã07óCxøÊoh¡•ƒ{Òýµt„D–)))•TUÎhŒc\„ˆªi.ªÀû}ÙúàÕ·¼o]Säîd~7"oRÇVÑ”4óy Í†# ÑOû<0ŒD½Ê>7·?ÆuvŒÃF˜:ùí«ã£Šó‹Â;«¾Ð]¸#Œªž¼}OPÜÒ=ŠæZ„q½'m{”õ¢a¾›5”ìµà-ˆxrÐÚë×ÕÜ"ߨõá˜ZAcȰX:*˜©),€F„3äBù£a¿E8{º(Ÿuû)Õ…„Á€êol©—hÔ¿¼Ý®n> âKóÆÍŽeJw­5~ÅLk»` ?Ø1Kº©R¼r¬ú314¢:ß¹ŽžD_îë8(<ŽÆ¡ M„YD(¶”:‚¸¦ND–*«©^h]Aèø\caÙþ£G œL¬Ü5Öõî’*ÆÆó­Â4mÓ c9 Ó˜0!§wÕ1ád‰½{zj÷©ÇgTƸ—s ðÓ¥ý×í¥OOÉ6Q××»ë=ô©wî·¡»±ÖG¤Ó‚dû{éÉŸïØu¿”»öÝç–°P…¡ÑŒÊP@bd”!< mòa‡DTæj.£ •BÍäµ£Š`Þ•x¼sÞ·«ßN~™rë îŒð~ssÏýïìþZ¸»«#õ_.3·ß“ ¬T1Y-ÂÌYG–p J±ãZF#mªìÔ ûV§…}s6èO_ÙÌS£âO—žƒ¢Sçç*í餛':…‡:e =Sþñ<fn”­(úFG2Ýà4É‚?]§ |nÓç~îà-Q×µ@гq„¾âÉ¿ºiÇ\§© \ZNøÃE§¼²_¡»å;åžOÑ‚›€Æ®ÿ:Ý~K²~ç² j|™ü{Q¥ï’Ôõƒ_ÛÁŸ<ﺢl÷KZüñ\›ÞLÅ.oëîVéJ؈®Å™_Ó| ©ø´Û\QtIxƒÙ/d/ÏNðÚG#¿›mí—#=%í>}*ò±*!^õYõÚà«äMÚ0û窭–õlßÎRÑúfÜ…Á§jDĪC6y ¿xùö3®‹ª±¸üªÍÁë¹\ÎÌ÷:§9šÇíø±Ï}ì ÊÚ@j½Ôz¤4”²ßN)Ú–¶C¯•±ØÞõ~˜V±¤Eq¤•Ž˜Œ–ˆ†:±á4R‚k%#µwÊÀAxêUŒÍm* "„˜ÙU” ÙL8(++²a”‘rŒïŠ0.± U2¿æÍ*/ë='×|Ž®ðÜœú±Þ ×}N¬÷Üšok6}Û5–W+ë¬À5;N6:Ì5ú÷Ò´~±p~Ìð¹k…qB+f øÞä~ˆ3l¶cýéýdÓÄ$“$vNÄ–8l²±#+d;-¬æ wäßöMwh]P|¥£”½ãœ=Oüód´Ù>µ¼RŸÒÇoÔ—Ì'åø¿ctð|ZÉ8)ãlFSªF¹¹ï3x Ã$Öm•(³¦vs9Ó†`FéÌqs¸¢5#ÊSKç@šWßìç!Z4ÏŽ÷6wà¿Ëpiç^€ÎŒØ õ7¯6£ˆw ôeçf­ÂÛ‚‚]‡"‰MŒR†RÍ#Ƥ”XäŒf‘”DŠ-rß%–ªBjWü#~Që¸-¶ ¼Ù*Åu ˆ(*ÑL6LPÓMÖòS<ÀĪ0ÁB˜¦5pb7qÛ¦³©ìœÜ÷š tÿ!okb?1;ú jdˆ„ÂØZ ÿW±’ÆFk‡¤v1’s‘Ð?MÌð&C×´;m±=0–Åõ«V²kñ‹)UJÎZµC¤•ÓGZC(Ö\þ&æ }W–¾Q¶ªôMÌwÂÎw$dw" ~>î¹\'ÔÏþ?8Ôop{libzypp-17.7.0/tests/data/obs_virtualbox_11_1/repodata/repomd.xml000066400000000000000000000016671334444677500247770ustar00rootroot00000000000000 580103a6b945e1830565121199acbdad45437c7f 1223588080 2d2604f11a697bc443b3c9999d630897138168ad e8696a3badb8419500de7e1618585d6272912a99 1223588080 91d3e517317bcd686a5ec1e88abd63b6fb7619da fc0f951db57c5b767887190bf99e479692b1c407 1223588080 a0015ff42e9822c16990b23a9cb08e026b4afdf9 libzypp-17.7.0/tests/data/obs_virtualbox_11_1/repodata/repomd.xml.asc000066400000000000000000000002751334444677500255360ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBI7njy+FLjwVdyGmYRAh6pAJ4zinB1Qa04keOTZET1/KTWRQcdqACf WulP6OHLt3n1fuHPRQRYUmUgeaU= =GveQ -----END PGP SIGNATURE----- libzypp-17.7.0/tests/data/obs_virtualbox_11_1/repodata/repomd.xml.key000066400000000000000000000020201334444677500255460ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.5 (GNU/Linux) mQGiBEeWVjIRBACUzcPOeJfTB0/AbBdlmZqfGca/YwPdg7PXB1zBkfuH/YSDDgTo 4BesZigfcgIyO+3KCyPZ0P+5pO3RIdmIyMGndhKsSTb+sX0utPYvsJlMDmo2lHm3 i26st2DZLESKOtfpeyeXrZHTL1loAyUy0IHpTD6pmtgnBLr7SNkcGb2oJwCgxMvG ArBVVG5+R6r8gXJ5NxAH+rUEAIOYuwl8RwmFHvVMg/swDl+YTXqhM7BOyieY4HzR hhm+OKOkMFqSMudReHvX+jwtpUduN8GiTZq0QaWTF1WUZLQhn+Q+4oRjOWnIKiwl RRQisrn4cVJtzLQojCh6JBcIobNCexAUCMMoC0dGB5LGxfx8eKKuytzPooMYpfzV 78QmA/49WMDc5wLyobhchFzm4cQmk7SYGaTFbAnkF6IBgIEOfQGkQCSMcKlLNYfB kgJr8FMeakkeExrXKsvmL5U8stwtLgRqYhBYgEE/1ZS2MGDLB0nzaEVfovvTYn6B n4o34KE/l6RaXUsxcyL0sbZ6BOG1MgKWLjlKkn9xI77m9jR5HbRUVmlydHVhbGl6 YXRpb246VmlydHVhbEJveCBPQlMgUHJvamVjdCA8VmlydHVhbGl6YXRpb246Vmly dHVhbEJveEBidWlsZC5vcGVuc3VzZS5vcmc+iGYEExECACYFAkeWVjICGwMFCQQe sAAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRD4UuPBV3IaZrrMAJ0aJsQOUt+s efyWCGh3MefGjBEUFACdEixxBrtbVss3yILYjJbzlUwhp1GIRgQTEQIABgUCR5ZW MgAKCRA7MBG3a51lI3O8AJ9vv441rs2ZR8pHL2EEmvegbAMPTwCeJJUbs14J5Wlr zqyZAhXnXWJnldY= =elkz -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/000077500000000000000000000000001334444677500174125ustar00rootroot00000000000000libzypp-17.7.0/tests/data/openSUSE-11.1/content000066400000000000000000000217071334444677500210160ustar00rootroot00000000000000CONTENTSTYLE 11 NAME openSUSE LABEL The openSUSE Distribution VENDOR SUSE LINUX Products GmbH, Nuernberg, Germany RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/11.0.42/release-notes-openSUSE.rpm DESCRDIR suse/setup/descr REFERENCES openSUSE-release EQ 11.1 LINGUAS cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW BASEARCHS x86_64 FLAVOR dvd DISTRIBUTION openSUSE DATADIR suse VERSION 11.1 META SHA1 02f22523c8302dbd4838618b746cf8a348e39a53 dvd-11.1-46.1.x86_64.pat.gz META SHA1 cc02920ad0f2270663a04861bc44c7fd480f1e9f non_oss-11.1-46.1.x86_64.pat.gz META SHA1 d8e90da75261b09757c10d90055aba27c36c2571 packages.cs.gz META SHA1 1bfeb67fbb2e77f1309bd105d209549370d63184 packages.DU.gz META SHA1 2db9160217ca686f78a3e86de3de38955ad9fe3f packages.en.gz META SHA1 f4671fc99244c27e2a467a9bd11aa43a5fbe96b8 packages.gz META SHA1 73615d8e511ea4ad14bce617bfe18ea5de65395e patterns #HASH SHA1 cd4e142d292e299488a482144f38f9f8d4d61f01 license.tar.gz HASH SHA1 7bd21d938f9fec0ec764ac4d46d80417baf5c94e control.xml HASH SHA1 e1499f54fba10d11ce6b6f0fc9c57c6a2ad49f83 media.1/info.txt HASH SHA1 d423ad41e93a51195a6264961e4a074c6d89359d boot/x86_64/bind HASH SHA1 635492857403d315c613579760694919d252fa68 boot/x86_64/branding HASH SHA1 6c661d6cf1db68da6498bcf179fb52dbec907563 boot/x86_64/common HASH SHA1 7cb8e2739b4751daed7c6f6e7cc20b5021346885 boot/x86_64/config HASH SHA1 7eebc04d8999af9a5b2fdcb75c6ad2e9cd46ef24 boot/x86_64/cracklib-dict-full.rpm HASH SHA1 50067c10711281342e1b73bdb02b49a95ea626d0 boot/x86_64/directory.yast HASH SHA1 93d86eaadeedbf29cf4028f6b965cd513fb4b392 boot/x86_64/efi HASH SHA1 c9216fb7114ce0f23a0c0650b91d4efd5785dd57 boot/x86_64/fonts-arabic.rpm HASH SHA1 d4cde75eaf078dcf5a9be04f5cb6427fc5c0a4d2 boot/x86_64/fonts-thai.rpm HASH SHA1 c82ef5b36dda514d8239a0c234f50a5201cf2f1c boot/x86_64/gdb HASH SHA1 44bed8ec07474e7703fa7915909eccf76a624b68 boot/x86_64/indic-fonts.rpm HASH SHA1 e3005c6ffc8600dc1e5c42b3a1d94ce3e32562d5 boot/x86_64/KhmerOS-fonts.rpm HASH SHA1 e9c779539f1b3f56a96337f262b2bc548e6b223e boot/x86_64/LIESMICH HASH SHA1 abdf17a0246be709efbcc7c0e0a68f8ad797a754 boot/x86_64/LIESMICH.DOS HASH SHA1 b5a21e780bdad707a989754f0fda867b60bf398e boot/x86_64/lklug.rpm HASH SHA1 c4dca65aa97554bc45885b22ef4af24ad5177c75 boot/x86_64/mkbootdisk HASH SHA1 635492857403d315c613579760694919d252fa68 boot/x86_64/openSUSE HASH SHA1 ae44557c57285f0866be41334fdaa20312ccdeab boot/x86_64/README HASH SHA1 4a71ee6114eccfb88582dc5422020cbc5a2639dd boot/x86_64/README.DOS HASH SHA1 b82adaf3be49972e7241ade027a6a26139cc632c boot/x86_64/rescue HASH SHA1 3810d9544827f1d42708f39427e0a48e9e086ea1 boot/x86_64/root HASH SHA1 415f125a4ee1e5a42dc65399b31526110bce3dc1 boot/x86_64/rpmlist HASH SHA1 bd61c88b73894e8106bda37d8190427a910d3ca2 boot/x86_64/sax2 HASH SHA1 df10e84db8c57c00aac85e2e6a6cc5e359c27d8f boot/x86_64/unfonts.rpm HASH SHA1 1239df7c815fa8e121aed8c0dcef1afe45579611 boot/x86_64/yast2-trans-af.rpm HASH SHA1 b12865177ac3be4741dfb4aae42b39398128314f boot/x86_64/yast2-trans-ar.rpm HASH SHA1 a35e306a95f4dd292baab41c280cb25f49e9a90f boot/x86_64/yast2-trans-bg.rpm HASH SHA1 b6eeb78c8462f7d5a26e863f1e4b60740b3379eb boot/x86_64/yast2-trans-bn.rpm HASH SHA1 b3f6d1ff28da9b19e42a0376a44eaa047d538ebc boot/x86_64/yast2-trans-bs.rpm HASH SHA1 e95f0a401ac1b94f463d3c47bb1fbde091644dbb boot/x86_64/yast2-trans-ca.rpm HASH SHA1 6a2c8a3bad0ecc2d18c000d6c1ce0b3af2e0e208 boot/x86_64/yast2-trans-cs.rpm HASH SHA1 11486ac6c36f4d5a4272bc1c712c30dc8f2c7828 boot/x86_64/yast2-trans-cy.rpm HASH SHA1 9f15697ae01461959861b33ca46a04587b8f428e boot/x86_64/yast2-trans-da.rpm HASH SHA1 4a15f3271782059ad77d0b2027685e86d26f0b00 boot/x86_64/yast2-trans-de.rpm HASH SHA1 1667a7ab28bcc171234c960dab46fef1871d4d69 boot/x86_64/yast2-trans-el.rpm HASH SHA1 70dab8364af972d42cb21879eac56eaf9b1b2b19 boot/x86_64/yast2-trans-en_GB.rpm HASH SHA1 29b416da00c34a2bced9438f0ce4e4eeb92b94e6 boot/x86_64/yast2-trans-en_US.rpm HASH SHA1 46c97123053954623de74f2f88eaabe9bc7a330d boot/x86_64/yast2-trans-es.rpm HASH SHA1 ab897d8d470485f1ede2ed378502faa5ddc699cc boot/x86_64/yast2-trans-et.rpm HASH SHA1 f0fba8ba6a39e4ff54e55d0f5afe52102d7f6cb3 boot/x86_64/yast2-trans-fa.rpm HASH SHA1 83c25237432beb7fcb31ef4242d692ab8683cf2a boot/x86_64/yast2-trans-fi.rpm HASH SHA1 54d0a51ca313a293afa71837f06570933a811123 boot/x86_64/yast2-trans-fr.rpm HASH SHA1 199ce417e36c36384709f5870a9227bdbeb69300 boot/x86_64/yast2-trans-gl.rpm HASH SHA1 3adf1af8f9a806101ec2ec30fd30e3b6f36c5754 boot/x86_64/yast2-trans-gu.rpm HASH SHA1 4b7f87ba2f9c0305b50ccd05993223319bd98699 boot/x86_64/yast2-trans-hi.rpm HASH SHA1 64573b85a3635dd438ea3a20948b50e7feff1e1f boot/x86_64/yast2-trans-hr.rpm HASH SHA1 6450a7cd2061f5399816b521248ad4f96d1401c0 boot/x86_64/yast2-trans-hu.rpm HASH SHA1 cd7a63bda7472183da33cb778e3ad403152663e2 boot/x86_64/yast2-trans-id.rpm HASH SHA1 8db427cb2eb69348042ea94e2523c0e626431894 boot/x86_64/yast2-trans-it.rpm HASH SHA1 3c273d19b4c6ac6d3209fe35109595034fb2bbf5 boot/x86_64/yast2-trans-ja.rpm HASH SHA1 4a14bf1c880b63ebc4ae0746c89519f7b8a41cd5 boot/x86_64/yast2-trans-jv.rpm HASH SHA1 f47f6a81e05c38fc77a37226dabe038d64b3b4cd boot/x86_64/yast2-trans-ka.rpm HASH SHA1 397dcfbe3dc3f54b0ede510105d474360d986930 boot/x86_64/yast2-trans-km.rpm HASH SHA1 666f733888966efd0490fbb3e41f1ede9f14f1ca boot/x86_64/yast2-trans-ko.rpm HASH SHA1 417c70401e18d2f948e5f4e87db1396dd6d886c9 boot/x86_64/yast2-trans-lo.rpm HASH SHA1 f7856142994f69c5d6fe3c7a78fc1ad708fecb55 boot/x86_64/yast2-trans-lt.rpm HASH SHA1 58beaecdacfda372a34454f738a0f8ec80aecfb2 boot/x86_64/yast2-trans-mk.rpm HASH SHA1 c48d3d055928c8bd2fc1ec3040f102fe0f387990 boot/x86_64/yast2-trans-mr.rpm HASH SHA1 890a914b0ad6a29143e61deb161eff3556b72a44 boot/x86_64/yast2-trans-nb.rpm HASH SHA1 11a8297890053f5cca3674953805284d88b1ad79 boot/x86_64/yast2-trans-nl.rpm HASH SHA1 fa28c6c056018f95e008e8dc586f0e0b370428c1 boot/x86_64/yast2-trans-pa.rpm HASH SHA1 7751c37d3d772ff1b85a3a890d95779703980419 boot/x86_64/yast2-trans-pl.rpm HASH SHA1 b8462077cb347654ad110e7a5eceb5510b785ba1 boot/x86_64/yast2-trans-pt_BR.rpm HASH SHA1 97f44a1d7e04f9d08d2ce6fdd83398d7aa0643ba boot/x86_64/yast2-trans-pt.rpm HASH SHA1 570ccf8610302ee61731f50604a0d74405c36640 boot/x86_64/yast2-trans-ro.rpm HASH SHA1 74822dc08976c91840e90624d369da07c035b69a boot/x86_64/yast2-trans-ru.rpm HASH SHA1 133235b1cb582ecb94c2f1da2b42f2bf7ad555dd boot/x86_64/yast2-trans-si.rpm HASH SHA1 a49abc3f07422c8b7356633d4293de4f477d2d8a boot/x86_64/yast2-trans-sk.rpm HASH SHA1 2cc14382b7bda0846d529580fc168e76d02eade2 boot/x86_64/yast2-trans-sl.rpm HASH SHA1 6728cda67fd1c92d4b34f8a75752e98145916e4f boot/x86_64/yast2-trans-sr.rpm HASH SHA1 fc9387bfec45138cbcc10d112a4160e93548dce9 boot/x86_64/yast2-trans-sv.rpm HASH SHA1 3a6f6bf53ab8dfe8c268dbf25f7aae869dfa8623 boot/x86_64/yast2-trans-ta.rpm HASH SHA1 755b0d4289a35a84bdc643112c09f102e5aecee6 boot/x86_64/yast2-trans-th.rpm HASH SHA1 c4e460be4ead26938872f5ee56f05fd527af31c8 boot/x86_64/yast2-trans-tr.rpm HASH SHA1 5df0e280b9d3f071cf72158d4a482e443fc98c51 boot/x86_64/yast2-trans-uk.rpm HASH SHA1 e4c77981b4ab02c963536ab6afd3cfe226fd6a3d boot/x86_64/yast2-trans-vi.rpm HASH SHA1 dcd414589be7e8d1d837d49d35614845f986a59e boot/x86_64/yast2-trans-wa.rpm HASH SHA1 2f76618d24c00b3fd4cbf8fdd4a56d34dc19867e boot/x86_64/yast2-trans-xh.rpm HASH SHA1 3e6ac86cc533dae2053c06dca92918444e4c9361 boot/x86_64/yast2-trans-zh_CN.rpm HASH SHA1 ad9e32afe651712cd384c8e20d17de18d6a86ae4 boot/x86_64/yast2-trans-zh_TW.rpm HASH SHA1 a1aaa5991b25744683a761b936067ba279be608e boot/x86_64/yast2-trans-zu.rpm HASH SHA1 219014df667b51f44d62b22979993c6914aab3ce boot/x86_64/loader/linux HASH SHA1 266979798cb8924da5078fce8f1c41db54e21032 boot/x86_64/loader/initrd HASH SHA1 1ee4dd576e7aef8b10e01cf64b70e548175f9f40 boot/x86_64/loader/08000600.spl HASH SHA1 f93b778b469797d3547ce21dd67d31aeeefa412b boot/x86_64/loader/10240600.spl HASH SHA1 8a33d7e0f2f1c1933261e1747ea9592991b6d305 boot/x86_64/loader/10240768.spl HASH SHA1 8f51f64ddfcbe6b3261bd329a65bd8f75ddbd779 boot/x86_64/loader/12800800.spl HASH SHA1 de76d38637bf6a520972ba22125023fb5e9005d2 boot/x86_64/loader/12801024.spl HASH SHA1 db7c22e91260da6c5c86587a477b277a2921fcc3 boot/x86_64/loader/14001050.spl HASH SHA1 a5985dc49d457ef58127b288cf3e20c4fbdb5a55 boot/x86_64/loader/16001200.spl HASH SHA1 495cee4703eaea74c31fca705a4cdbb8825c9f8d boot/x86_64/loader/16801050.spl HASH SHA1 01aaf0d2aa576c4bdd0fd2638baeeb6e788e902b boot/x86_64/loader/19201200.spl KEY SHA1 17162a96933229a9771ee10c0976bdc047a2f53d gpg-pubkey-0dfb3188-41ed929b.asc KEY SHA1 f6accbb18d705bfc104c893cf7dfca1247a33f3c gpg-pubkey-307e3d54-481f30aa.asc KEY SHA1 47f6492d127ae9f6aac353a2dd23752fc0ed4f8d gpg-pubkey-3d25d3d9-36e12d04.asc KEY SHA1 2288e5849740566e4fb65b7c9dc0c7e4f43b1039 gpg-pubkey-56b4177a-47965b33.asc KEY SHA1 89d4bcd20a281553fd1d4ec1708603ebf88f1a59 gpg-pubkey-7e2e3b05-4816488f.asc KEY SHA1 06ff5171362496c0db84beeccd29967f580350b2 gpg-pubkey-9c800aca-481f343a.asc KEY SHA1 04544096c5c3b0ed7b01a83d79e048307c2af919 gpg-pubkey-a1912208-446a0899.asc libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-0dfb3188-41ed929b.asc000066400000000000000000000015551334444677500244600ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEHtkpsRBACRHiXh3olS++6/Mp9N7ByGMmjaaE+Y8cJQLUPG1myrbW5aogIP 0WenayhGbbgOHNWgd5dQ8KQpYYFoQuUHjFYzj5MvgrdOENOvD7ZNJ6+EmbkNh5cV zUYfNG9jdiGweZkyA1sh8DYS0JiUmQ4CzaBD/DotB/dCmDcyuNQFiw4qKwCglQah ATyueBRsOiXl0NIs1uB6dkkD/1A2YmQ6te1q38a1J+a8os6bDlMZhVnkZdhJdw6x eBwUb9XS0n7hyt/AKCcBnrDEUQJuhBMNgzctJvbuMv27yRMANAXZDQkp0ip/yHLJ PhUdSNTTRHOL9bV3t+JuZ9xmuclprwyrrJYUkEESXNc0tkuczHBP2c/RqA3OxYHt hrHLA/9Pqe2gEleeo8l26u/uFXs2dtwjh8EZmdhHoqGcOlpYR4DyAg2D+jYfh3RI oPzIwRlHVUR1ii5h8iPi98BVuEvukwfbbQ1K22Jwzxt6w3ihCXBKWKbeC3ElIMfA hVMchLFUbTAw+yodO/u3NHxKQ34+ginid9dVyxV5T0gpDEEHObQrT3BlbiBFbnRl cnByaXNlIFNlcnZlciA8c3VwcG9ydEBub3ZlbGwuY29tPoheBBMRAgAeBQJB7ZKb AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEHPSXWMN+zGID4oAoJPTGZbZApW+ tuU422mHYGwoqgjrAJ9fhzRhRbV3YsOxKUomNeuIfmWGXA== =Qv5+ -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-307e3d54-481f30aa.asc000066400000000000000000000011451334444677500243560ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIC GwMECwcDAgMVAgMDFgIBAh4BAheABQJIHzCqBQkHwXpNAAoJEOOlw2Awfj1UvWgE AIRoxE8S6jQB7S43SVcX06FHJeUJ/m+1ErIj9LwJTYrR/8qsDjTgrttgb+nBHkIj NhCCLAuR8sWj3CxsUMH2fayryNnwZEWGqnzo7Jtt4R1Ur3h5pHYonFjfoJyFUZjJ 7Mhw7/TuOWx20FrzqBi8tbHx8pd7Fa5lCUgopVtMh6GR =R56j -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-3d25d3d9-36e12d04.asc000066400000000000000000000032361334444677500243650ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQENAzbhLQQAAAEIAKAkXHe0lWRBXLpn38hMHy03F0I4Sszmoc8aaKJrhfhyMlOA BqvklPLE2f9UrI4Xc860gH79ZREwAgPt0pi6+SleNFLNcNFAuuHMLQOOsaMFatbz JR9i4m/lf6q929YROu5zB48rBAlcfTm+IBbijaEdnqpwGib45wE/Cfy6FAttBHQh 1Kp+r/jPbf1mYAvljUfHKuvbg8t2EIQz/5yGp+n5trn9pElfQO2cRBq8LFpf1l+U P7EKjFmlOq+Gs/fF98/dP3DfniSd78LQPq5vp8RL8nr/o2i7jkAQ33m4f1wOBWd+ cZovrKXYlXiR+Bf7m2hpZo+/sAzhd7LmAD0l09kABRG0JVN1U0UgU2VjdXJpdHkg VGVhbSA8c2VjdXJpdHlAc3VzZS5kZT6JARUDBRA24S1H5Fiyh7HKPEUBAVcOB/9b yHYji1/+4Xc2GhvXK0FSJN0MGgeXgW47yxDL7gmR4mNgjlIOUHZj0PEpVjWepOJ7 tQS3L9oP6cpj1Fj/XxuLbkp5VCQ61hpt54coQAvYrnT9rtWEGN+xmwejT1WmYmDJ xG+EGBXKr+XP69oIUl1E2JO3rXeklulgjqRKos4cdXKgyjWZ7CP9V9daRXDtje63 Om8gwSdU/nCvhdRIWp/Vwbf7Ia8iZr9OJ5YuQl0DBG4qmGDDrvImgPAFkYFzwlqo choXFQ9y0YVCV41DnR+GYhwl2qBd81T8aXhihEGPIgaw3g8gd8B5o6mPVgl+nJqI BkEYGBusiag2pS6qwznZiQEVAwUQNuEtBHey5gA9JdPZAQFtOAf+KVh939b0J94u v/kpg4xs1LthlhquhbHcKNoVTNspugiC3qMPyvSX4XcBr2PC0cVkS4Z9PY9iCfT+ x9WM96g39dAF+le2CCx7XISk9XXJ4ApEy5g4AuK7NYgAJd39PPbERgWnxjxir9g0 Ix30dS30bW39D+3NPU5Ho9TD/B7UDFvYT5AWHl3MGwo3a1RhTs6sfgL7yQ3U+mvq MkTExZb5mfN1FeaYKMopoI4VpzNVeGxQWIz67VjJHVyUlF20ekOz4kWVgsxkc8G2 saqZd6yv2EwqYTi8BDAduweP33KrQc4KDDommQNDOXxaKOeCoESIdM4p7Esdjq1o L0oixF12CohGBBARAgAGBQI7HmHDAAoJEJ5A4xAACqukTlQAoI4QzP9yjPohY7OU F7J3eKBTzp25AJ42BmtSd3pvm5ldmognWF3Trhp+GYkAlQMFEDe3O8IWkDf+zvyS FQEBAfkD/3GG5UgJj18UhYmh1gfjIlDcPAeqMwSytEHDENmHC+vlZQ/p0mT9tPiW tp34io54mwr+bLPN8l6B5GJNkbGvH6M+mO7R8Lj4nHL6pyAv3PQr83WyLHcaX7It Klj371/4yzKV6qpz43SGRK4MacLo2rNZ/dNej7lwPCtzCcFYwqkiiEYEEBECAAYF AjoaQqQACgkQx1KqMrDf94ArewCfWnTUDG5gNYkmHG4bYL8fQcizyA4An2eVo/n+ 3J2KRWSOhpAMsnMxtPbB =Ay23 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-56b4177a-47965b33.asc000066400000000000000000000017671334444677500242510ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEeWWzMRBADU8l2IckSzgdUS1dn0WMM7wXK4seoFsHHQw/0unHCQCxpyDMnn TKV86p5KTbR1FDdeaZlY0yCV+IGsiIxLyuUdJn8vuA5gA5ZkUr89/HtWaeZVl77J HIQxvhDRBWCOO4QNtrZYWvGbvl83wl/zOfdLEs8IGElt0LgfohyTA1qfrwCg/Hac tDDscXsPlo5Jek/+3RHVeD0D/30riCpfpLJOmhraLg1EbWsE0mN9IQsl+WDPdoYo bB76z6eH3e38618WzP/LTG4WuVbwpSSqmXyfdVpXxWzESfT8q0B8CGpHf/Sa/T/L emohmRnLvkf/tAfxFmDMm1jOewJIE9S35jANGHVJcxmfRNpPWC7uHnqjopnsmDkL kMEdBAC6YcpDOcMJZ9sJbt/JNZBaoT5CltgMDlSN50t2v/J5em8qMLqCSNF5UJyd LFnePHTHy6gVjWbqcC0ncFzOqM1y644Up7BoKSAr1hRTl6Mw9S3UfZZZ0al3JtWt 8y0eFIW3QP66w1AL0LO2bZMBuOvhb63DXv5iHorcxk0yIFbbybRCb3BlblNVU0U6 RmFjdG9yeSBPQlMgUHJvamVjdCA8b3BlblNVU0U6RmFjdG9yeUBidWlsZC5vcGVu c3VzZS5vcmc+iGYEExECACYFAkeWWzMCGwMFCQQesAAGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRAcchwkVrQXevBsAKCOeScnlH2fWVBJGHTOVJ3M4yBqDACbBeNk PuWo05AOQ3M1dLE1hkN36G+IRgQTEQIABgUCR5ZbMwAKCRA7MBG3a51lI7PfAKCc 9ZtKfI5G/g66V7pSMXh9gi+ykgCgivPfGMDh9HIROwBIudo2qGImOqI= =htdw -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-7e2e3b05-4816488f.asc000066400000000000000000000020141334444677500243150ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBER0iroRBADfqUeJmPCXqPJFnf3CVKy40dL1F+gfvP+JHN7/uu4c9+oCYjI1 uAE8iGTm/Twb/Zzbs4dt0iWjhNFXbRi42rMww4d/8QcPYZ21WSehh+fv8nCjt2sw LeC87ar2SR8OTpJBK0fQlcd4e6H5GMntfI6SYEUOPd8m/eQ+4+1AxpUUpwCgswaF 13fePZGI//pDn5tGjbvmaP8D/R3qum/I+oDS8lbFeeDS10GkEkwTYec13gdfsq6I yzIj7VBsC+rGfbipv+VGR61Q4d19pOHKLDekr9OG+3G4ZcYM4NQvQZR+QIlp3xWu nBmYD1LRkHLVj+Z4DGQhjjOffkPSuacKPymMaZ/aRiLgTIAo97W2YPhutscXrLSG 2Y+BA/4jsyaDb7kbW4wc8RtPIcuFEheVqgBeRakP9Uj47kBMBEpPtI/mIdY5liKk ztKnuQG6ROYLNV/PW0ZbE1uT64C710weh4cB3PnZLV5P10deDLBjHk8MJQGCTSDD JYvhutUzQfshAU6j2kErGvKdZxWGezab34vFyMP2oLGqswPAJrRQTm92ZWxsIFBy b3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20pIDxub3ZlbGwt cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQW AgMBAh4BAheABQJIFkiPBQkHhmvVAAoJEBTCi8l+LjsFn4QAn2wgOHudNubNZvTz NdaYJKJ0m2qnAJ9hd0nQBhn28H4Ii4a4h7kpGWRxN4hGBBMRAgAGBQJEexD/AAoJ EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU fJAKVDoB9w== =MWDN -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-9c800aca-481f343a.asc000066400000000000000000000041751334444677500244440ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiAhsDBAsHAwID FQIDAxYCAQIeAQIXgAUCSB80OgUJEfKmuQAKCRCoTtronIAKyuJlAJ0cWZifmBO6 Eh71jattipdMhUYBTwCfSXbJJtuF3c96JPmpmT8be2LDo86IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkgfNGYFCRHyptQACgkQqE7a6JyACsrv3ACbBLhafFXmTjH3 JJWFJGWuIOaZUosAniPs4feEyN46gjXGgcZc2Ai8nkm6 =mY6G -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/gpg-pubkey-a1912208-446a0899.asc000066400000000000000000000034131334444677500241500ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQILBERqCJkBEACdqhZWdAbUHLIumXMEgv+GFjr1ZzVHgynnFOzztU/8sxZNa9cm YV4HZpVfjMr7fos3ArzyiPPt/336cf7w9p79/ZS4rHSNPDMlPCtXYvFxUbvU0/GY q4jwcBsrJ0xaJ9CP5bWyAgVKOb7Y6k0ktaLjRR+tDfMsHA4H0ClMoRr6ATw8NL0e VCfAHuzqCKvX1If8ng+wTivtAhKvz/WwQiELNELmPfc5tZHOw8NgP/r0Pze18Hn2 dlAHu0WpC7uoR00vscsMIJiJJPcsxbL1F1eADKnk+wEy8Go+EJeJ5i0WoFbqD52q Lv/C/oY6NVtVY0MBwtn+oQNSnQ4JBsB/Akdt53LAi0ZtNQxMyUW+76R8FCOmVCV8 WGiF5CPRP0yvG80AMBjBjKjHb/v8ov5MnIyFimzAHS1gQcUNxTEYA/5eFwoYcGcK weGq9FUjPTzLQAgvp7XmOzHpSAfJ7qysxFTepNsSZZhgizJyInrdQldr+GYcUNqB krD9MWmFop975OxhCTEnNv/HcE79r8WD26HzDFYxTiTJbr0pU/ivBzo+rjq+YG2V stJk+udVYmZTnC4LmXus8JiNuqBXbxNscwCBpcJ8YcfCV6uh+7E0XfXZsgVUFLp1 NF+ylYRGTycOlWoZODrnJevZW7N9O3bWRx/G2P4bJD07LsDLe4i5hymf5QAGKbRQ Tm92ZWxsIFByb3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20p IDxub3ZlbGwtcHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6JAjMEEwECAB0FAkRqCJkG CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBHijLooZEiCKSFD/93vZHCAMLEfksU KnvXl08bv1rfuamuyJnE3ANRE5RDyypriHMCnkVxazvQ2WI4W4UEjluL9+SzZwtV ZvKVoAr31614nSyWwv2YnJTHfjMG+xRlkolZMnuIiB9PcCBo9+GPU0ABuzo4pEJW NIRoSS1NFbAZBhtUnY0cN+trM5QObLl7xXTavLyGk//blkk57fov7GXsQJlZUig0 l2yt5XNyGpLUnTMDumHh8b389quF+0+ZfdwOy7A768xjipAZiTvIujBrEv51wrxh 0HBT0VGA0MhD9t0B+Ce4BM9P/iVMO00naaOp6PqMfPPKxQQqer8qy1i6UWBx95SY mKZBIvOm2d9PezDxkckCu61r6krx1iKnT1wdprCAkIYwALK118SpbxuyGW0bhRHc wsc/akzWH72fS0Xu49mvL4k4A2U9asdeQid3dMgbtm5mSWof0yiU/G4YNn0yeXoY oG1VbCAqQbFX1Rvd6GITJVqI+ekW/uMA9BP78dF8wBeG0+QmpQnSf+eOsxB/RT8o Kb4hHY+29MUlg+i9ceVt7hoKr03J/uIG5TXFXRYLaI0iAFVlKfWxpqDfS2XA4+dD VYt+5RDgBcnxDaTB4FE9GqcYScNfe7+NFtL0p0wOPftbmgZzGjucTmrD8mDUNdqA xGK7vlk4GATSfOQlq7G6LXW6RYnInohGBBMRAgAGBQJEazMlAAoJEKhO2uicgArK 2vMAn0TbVDESEVKVuFZStrfIzOvJQrR9AJsH733Ju1kE99GFrdfCeGqpckmNhg== =E+qN -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/media.1/000077500000000000000000000000001334444677500206305ustar00rootroot00000000000000libzypp-17.7.0/tests/data/openSUSE-11.1/media.1/media000066400000000000000000000000521334444677500216270ustar00rootroot00000000000000SuSE Linux Products GmbH 20080918201559 1 libzypp-17.7.0/tests/data/openSUSE-11.1/media.1/products000066400000000000000000000000241334444677500224120ustar00rootroot00000000000000/ openSUSE-dvd-11.1 libzypp-17.7.0/tests/data/openSUSE-11.1/media.1/products.asc000066400000000000000000000002751334444677500231670ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBI0qRLHHIcJFa0F3oRAm+dAKCLULReuAU6ZgUPJaYRwKuU9tqFfgCg mqQniBKmBYN23YM/PTIUhH7yP1g= =2Ub2 -----END PGP SIGNATURE----- libzypp-17.7.0/tests/data/openSUSE-11.1/media.1/products.key000066400000000000000000000017671334444677500232200ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEeWWzMRBADU8l2IckSzgdUS1dn0WMM7wXK4seoFsHHQw/0unHCQCxpyDMnn TKV86p5KTbR1FDdeaZlY0yCV+IGsiIxLyuUdJn8vuA5gA5ZkUr89/HtWaeZVl77J HIQxvhDRBWCOO4QNtrZYWvGbvl83wl/zOfdLEs8IGElt0LgfohyTA1qfrwCg/Hac tDDscXsPlo5Jek/+3RHVeD0D/30riCpfpLJOmhraLg1EbWsE0mN9IQsl+WDPdoYo bB76z6eH3e38618WzP/LTG4WuVbwpSSqmXyfdVpXxWzESfT8q0B8CGpHf/Sa/T/L emohmRnLvkf/tAfxFmDMm1jOewJIE9S35jANGHVJcxmfRNpPWC7uHnqjopnsmDkL kMEdBAC6YcpDOcMJZ9sJbt/JNZBaoT5CltgMDlSN50t2v/J5em8qMLqCSNF5UJyd LFnePHTHy6gVjWbqcC0ncFzOqM1y644Up7BoKSAr1hRTl6Mw9S3UfZZZ0al3JtWt 8y0eFIW3QP66w1AL0LO2bZMBuOvhb63DXv5iHorcxk0yIFbbybRCb3BlblNVU0U6 RmFjdG9yeSBPQlMgUHJvamVjdCA8b3BlblNVU0U6RmFjdG9yeUBidWlsZC5vcGVu c3VzZS5vcmc+iGYEExECACYFAkeWWzMCGwMFCQQesAAGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRAcchwkVrQXevBsAKCOeScnlH2fWVBJGHTOVJ3M4yBqDACbBeNk PuWo05AOQ3M1dLE1hkN36G+IRgQTEQIABgUCR5ZbMwAKCRA7MBG3a51lI7PfAKCc 9ZtKfI5G/g66V7pSMXh9gi+ykgCgivPfGMDh9HIROwBIudo2qGImOqI= =htdw -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/data/openSUSE-11.1/suse/000077500000000000000000000000001334444677500203715ustar00rootroot00000000000000libzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/000077500000000000000000000000001334444677500215315ustar00rootroot00000000000000libzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/000077500000000000000000000000001334444677500226315ustar00rootroot00000000000000libzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/dvd-11.1-46.1.x86_64.pat.gz000066400000000000000000004570521334444677500264510ustar00rootroot00000000000000‹šÒHdvd-11.1-46.1.x86_64.patìZ[sÅ’~Ÿ_QqÎ+)l` V<˜K°Äà=6°Á Qš.ÍôtO÷œ¾Œž4ºXðÛ²Ïè`Y[öȶ¤ˆmô:šùšË$ÿ‡ý²ªzftÛ}؈ó²ÈÓ]™•™••™•YÙ‰?37'œ3y‡æA <Çg'Ovì|õµ®“]Ÿ¿þÚg¯½Ê:;Ù‹É—ØË'N¼Î$êûï}ðѰӞk„ÉÀgïf{þ5ñg–Žðx æ:ìl:dgDŽ||­ûä‰î—ÿ…}tö-I$‘xãcáu³î:Gðífì•—{Ì@²fÄš)ֿŃ®$ïfgEÒqm7e Ÿ‚õp_h ßÍ>f,›N4Ï‘LkD70ùMî›~ , ð4D4!Í9ŽÉqA<ãq_Mv7«|[YÚ®¬VVæ·†Xe¶²²5VY«lTáïneïCÝùìÝ7'æ·–ÍóëR áä4ÌㆂôšÝì´ðÂÖŠx !^÷>>û)¦ýÐwܼ#˜¦š2310ìf§lž³ÜlÎu„ã KLƒh#¨Š½Í}®Õgí»Â ³UJß)>|:uûéƒÏf.ªQ+ÛÍêÓ—êÓ£õâ·òßB}z°>=UŸ~PŸ“ƒcõéûÿ58QŸªGêÓßë™n7û½¼¸wï¼ü9C ÛRG¦óËw~ÛÎg\­a§§›½ë…ŽshïûðÞG?«ÝïÊAúíÒíí¹±íRO³Û¥ËÛ¥Òvi}»´¼=7±]šÚžÜ.Û.éÎÙûÏr®á¼ÏíÓúȵëJíô›Meå‚ÏÞüË!xK™¶¦:]+TתëÕåêZm¢ºÂjCÕ•Ú¨z„¿»Õrµ¬Ð}«Í!æbµDw›áç•V ;šM¥¸c9ÐO"Õoª‹Õijvå¿Ú•Úw u ýÙ[´m÷Ó©…&àì'ì ñÆ{Iìe?ìº3kúI œ a¯¼Üù&À_B'0³‚½ãäMÏu²Â $BWOJâT—ªeHBjXl"× µÁêJõ^uQáRDñÄÍGk¬ç—ïÓòÁï÷ƒh.«p(*€|æ):ÇÎDe ±Lïó°w@˜A˜M‰žÐI) .WnTVàøó2"<®l°Ê ø/Ë•ÛPLX)PÒULøßLÁá'p=Ç%kL¿¤'‘É0iFwz{åeFkÐs‚xQ&\ÜŠf!´Ï3œY·,×1Å…Fxã×á¦ÅåK6Ízð‹è¾ÆöºcéAò1ãñy4— ~ŸaÔ¤ö`.s-/Ü\ʼnÆ(O½að ºkE÷=§_ ½x -§²=Lj·GÏR¹}¬1|±1<Ü>¿s§ølfò×ow~VÍXs]—¢ ._#¸Ô§/Êø‚ñ õ⫪”¸Å/êÓe k .ñØ]yþE™íŸîM°ç×®þ¾¼¦Pì ^Ìæ]Æs¶éX\A(ò(³`Tžh7. >jš¶ç¸òfl\9eƒJÛsKÛ¥"ÂÐ"bÆŠ2!4-3ú™ÃðJ<´(ÃÔ9 ÏEMü6¯ã¸vûLßr5oœ$¸]Û°©w>‡…E‹~r•…u6mWGª&²È"rÄvy`V›Yxa»ó®Uk Õ MÖäðJõQmRz4…´Ø£çXHËßœçú' S¯ÃoªUúŒƒŽìϵcÛ£À§¸ç32ºÀ4|¹3ÚØCKKŠð¦Â "m‘O‰CåÚ8é¡úk5m4:bùOÖ¾|¶ñ5¬òéw÷ýj¡i˜:**ŒÑáâBº6ôtª¨ 8ñOo ŸÂXâl4Ÿ \Zi¯iCÛÈ#àªÎ;Ì Ûi)%/¼Áò›3÷l ïÚ‰Öð¨¦n.t±÷¸Åüœnο|´EIßí ú¸'º1o)âdâmÌe£2ø )ö¶ðð¬´Ù™çžÉaˆ%½Œ`,ÏíTs’':°D$eBN– m3•F¢Øëz˜‘7-xNŠæj¯8 ¡¤†g¡…Ày¦gdú›jçÇZ) „~JôE³i›<“L‹,x—œp(ê’¨žFs§™½Ñã4XÄ‚%6&mú,§RæX¤ i/A«„¹R!Ø8[$)7Ösü†?bÝýnȰÉÒq´´pê$*ßlnlM2=8npæàaÇ ^V>¬,Uʕխa ß&¤ò’D½‚‘%`?ª<ÀÓ¶5Yy´5Ф âôz$i=®ÌWÖÔp“½vh4Ì)àì¤CŽè"ÆAH?Hˆ—Hžö’X¯4EQÙ2äi$Ó[“ZÉ´FµXyRþÃUóU2@óïÀ쉘Gg®€3ü[}[¼“G5â¬ÏlW Sçœ)‰ã’ÔÁrƒ¹™ÑœcÀOÕ‰ŽÔ”£`,RÓ‚îÄin¦¸mÀˆ-ŸLxÅ´LCºÎ{Þ3›«£T@KÚÁr±<&di~Lòˆ†‘ý1³0ǬÍiC┸Ïcl ‹€"oº8çC`>ׂÈG76˜"éOÓo4Ëøäºf‹ 9f 5ƒ7?t±†né7½P’x݉·\\#*Aq@Ú·'û6$Ä~`ôìG4G6‚ A†Œ Éí ‚Y’Ýžá€eÆISÀìöo "%BV“8Å,3Í LÜ `Øó¬°ô"é}ÆÜä;3P2 ¹h>0aœYa÷·ÐüXtŠ©:=šñ£È-ngyÌ›XJÞH–ÿ (Ž(`ê±Fö[)Tj(›ÌÔLi dŸ$V„€uæM¾H…&ì²i 1--‹Ûò²D£p±Q¸Óþ¦1´Ñ~ܾÛ(üÜ(,ìKØCkáËòáVc¨Ôú±1ôíÎÄå'kSÂåFáûÆÐD£Pl ˆÖaäÂäÎ× ºÞšln5 #ô\¸ÖReâ#y`ed½x‰¥Ås2ý»HÅgqL>!¡3õéõúôˆ™ªÇe®x]æ×0~L®() ËI‡™€ðÆåó¥¶ÜS•º×%âùFÍ">Ó?ÊtÜh>Þ¯IŒ%éGõéq9Y‰wA‚–•ž9¨¹jNd|I&½ßªW‰€òûª¹×áx.tÔbÿóF½xI)˜ôªìv'ö~¸÷ûòðރ̈́yïÚ ûýÞàîÒî×SloäÆóáèi÷ï¥Ý‹7€¼{qvï‡@f÷V¯>¿<·;q~wb¶«•qï›|~I’ú¾´wåÞîÍÇloböù•ñç—¯þ^^d{S#Ï/O1MjzTÐÒ¹Z:äá:É›v[ê¢í·=sÉ™¹t15=EYÐQí¢ð[£ÂŠ=ÔjTí‰fF‡‚ía¼¡,ùKÖzyi¨ªìã”úºù.vÖ¥Ì#ˬ»¹N7ä~.z¸9³y“oÞl”Õ4ů~- ¡¤É«Êï« Ðr³Y*¬‚ “âœ*ëƒAU¦„F‹€Œ©,Íz,0m;ºIDaÒYæÛˆe3a{:JâH¹Pª'ª· ?lÈRmÕùŠÜæ6Ãx$5¼~ ¢/ÃÿmpüIyþiifçñ…_¯Ä× ®>Y»ˆ$hg´ðìNùéøßžÍLÆ—k OÝo&HšrÌåì'݉߯í N¨$lgqL²ûA³+”wî\?ÄntøÙ/v&¯ü:~þéÔmЉ§¥Ÿž¬oì\XPm¨Š¿ý|©]bšxãcÓïf <èÝìäÉWO$ÿ¸ÖÔ+'þÇÖÏ帗u½?ºSt§þèNýèNé‹£ÎØóã&ÕnÕ2;•˒êۄíˆGH3 ©Õ‰:r¹ýÑq €|ûh€òâ£aÇñ'÷=@Þ{4À;> Ÿ=pœT™ãÔE>ÛT~}ú«úôcY¼Iߌ»8»£åÝåÒ©öqÌÈ-·¹ãÄË;ã8æÚÛŽ„yîq€ã4MÎv4  ÛÁ’˜jX sfŽ7×Í8e¯ÈuQð¤7…ãú¥¦$5 t€¸ÐÕ ï›–%¼´0üÎ^ä΢Ïõ,Ô3YÝçp{l3Å×3}g ˜¥|ËuPÎÛÔìÐw6Nˆ{„oõSä¡k9½Ø8œI½"c37ÕZÐQX‡hRRìIØKÃ$œ@¶ùz[JéAÂU™AJ€Ñ2t¤ñr™ÅýÃÊèZŽ|!©¸ú"b)ý¬eœA^¯ ³GÅŠ¤… ±ŸñdRø>b‘òyjwjßñ»Ø{r  h¸¾Œ Xê[qq[>ÏzmÞGb ¤ÜÞ‡'*—W„\l…§$5¤Ë,p]ê…J8­¡g†À"ÝœüšŒàÓñõåÑ+í3ƒ´Ì MU¢†I8ÜfÈÍúla¤ŽèTÎV6ž Ô\ æ`e•ÉÆu ·Î¡h)P‹ÊέA+K•YÇPW°»²¬YP½E<ÒÙ¤TCªº!;‘ xÄÃ’lMŽeU‚©‰¹G[“¬2¯šœ@!ü­ÂÖ$` ãq¹+¥£¶¦“pø÷6Ä| $ wQye¿•†W¶¾”<ñ2HlVPŠ©¶«úhek”84û­´ÔòÖW² 2£Äú¡Ò¦ æÑ0M¥®m›74ósXlA1¦ÖìB¼ ¥c-ãØÖ8~¨¾.dˆU+5± yÊ ýZÚ\"AF¥ [X%åÇýeX«Ü—‘­Ñʺ\b¯¶ê¶b wOö†•Æ¥J—”J™o!nã]®Óïë¾õjÜx&™W›z·²¶õ-÷˜ò.ýtéCñC™¤“ b±¼Ôå’%Ýÿª:Ÿ:ˆžipƒý5¤¤œëÉÛa=Q*“æ‘zݶÃÜE5æqÕNWëáÐÏiÒrJ¨™²Í)5M)þ0.ÚtçÓcÚÄB àï#ÂúiHÖØô¦·A¦á‚Á‡½žH Ç÷- G1&ÓÇO˜BÉÕ§D®IÞp‹æQ3€ãRК|îaq¶»_ u”k‡TsÀßQ!ƒ›4%c¬¦ÔÒˆƒßPüàî`ÛÇnzyîK`è["Ýuž°í´ù¨_ÏuŠÉqKÒ9ÍöÑ}'Ïmä@'+Âõè3¼½ÇŸ7]Ó8uø3Ѭ—”’d£ÙhÖaÙÐ  š ݦÏošâi2/fû£ûСKŽA4 *ŽbD4Hú!ÚK¬%e¦]θ™¡„wËu Ñ”ÃÍqæ`%¦È#…0îX– [5ýhVîG†õaÃaß ÈGd¡RÊʾ‹Oß&@#(™à¼)¨Ë§ý(ºgé8RTò›ŽDÝûÒkùD³ð HcË•boò뇶°EÎÓËMJZ›Bг$(Œ\†žÍ…~Ûæ6e£;»l aÇ´•û$ÿ›½+kŠ#ËÎïúù&;Œä¿xbÝÖÄ„#3v·Ÿ'’ª¤HjI:—bªžj-ìH€@B,j$DKHˆµ„ xHéU#~BG©Š­ˆù >ß¹¹ÕÓ¶ÇK¸3¡ª¬{Ïv×sï÷QöªÁ>x˜ÀKi‰”ð¦¶^}j¥B@å5™ï "1Ž •q´ÑFåz±j˜U©sQmJ1¦Uïî¶ ÙÑÒ(±Œ”ÊØk´›§@·—hs¾µ÷œdÖpÁYú¤SÍš”BÙK1UŠ#ÓiGjd±%и½8Höã„Ô­e©J—½ªS`n¤•,½"㨠°Ã^#'\ÿ´8ï ¤n•6¸n¤[í´—â+#Lº]N`š:•¸D0ž²—`M›H¨½²¾oqµKMiI‹j)F–Œ£«F6ÁzÏ ×ø”Ë$I µD¼é ;ýÙK‰9`lФ¤Lµ}d`TBŽ“\F»ô4É¥…:¥¦"ÀÄØå8ù£T!E[÷.àw${¯‡>‘㦥ZRR‰ÁC ¼VÚÁdš›Ñ~®é/úQ•¦^êWJ6+s¦ëô,@cT‘}ò­­ãÈT%$šNšÜu,õ+°€E•XBu6ÜÓ%Õë¢êMékÕÞ@UCàoU±…ˆqÍBiH!Á‰ÒZIGÍfUšÑD¤uz'#¨R„ò9µ£j—p·ÕPœENõÖ82#0D) §¬p×.+ÅX  ¯EgüȺÊKÅë:¥§X·a(ŠbŒ|êšhùÂÊ|‘@™l‚"!í ½8çÐà—šìU¢˜¢Ü 5ûGuÔ¨¥ãòZ— “Ô'9ZXš#‘î K4&SªÁë7n(U%É5LÝB=ÕYºaOw`ÅÎÊ)T›JZKùÔ”­*4EhÜ2²‰|:ØKŒ^%B&Â[°Dâz Ç`¹'-d:Y§ §©UE²šVx?¡Rƒ²9 IÑMµšª¹ËVòo*ù' {šç߯+Ň•âZ¥°^)®VŠ‹•üËêÆB†ªåÝêÝãGý•ü ±zS)¼¯ÞÑÃÓÙñJá~mlüËÁcQ8·¢2k•â³Jñ‡Jñv¥ð==¬Í/o“œÃJ~E­mjÑz]{µx\xW)ôŸôßD«°Kº!VU ÷*…k½Ì9SªM¾¯Ý/’e§3•ü8cÉ^TòìuÄyñ‹…J.²ºYÉ?$áÇ ÏNÖf¸ä•ü@a$œÌ@tÈù·€¢‘Å•Jq³öf´­Ÿ§ÓCdz{¤ýäÎÕ¡©êðtShª{Åã7ýÕÇÐRìgxÛË@þy0Zsƒâ.i~Ï…ù·KŒÚÂS?_BŠÆ-0lÎÅqóåÔC.0}5 «Ž6Åeµ6ä âøðÜâis!dû.ÞlšÅ>àßcì™gÿ€‹f ·WÅ‚kÛ#~>é>oo3£Í$~²´Š ðÌ›v½›dU̳#WH–\ëûArÓ?.Œ3 ÞÞ¿Áôd²ñ-…éq‹éW‡{ƒ5Цuƒ+,6ÇG\itFpZDcäùÉ´À ¶Ø|Ÿ?%3ZÚõ)÷›]þt˜‹°ï#®z¸àApf#6×(?ÍÞý§ºlþqFt:-‰'œ qóïü6vÚuœ£3s”±é®H:œ”.&ûÏ—æÎvKçó/êÇ¥óáÜÅÔ–t¶>U_œ«/æëOJR}qâl·,áVøÄóÍ­úÔ]±x·>ß_<|‘%ÕŸLÔ­K>†Qòñ”M(Èú“élc½¾8NEÎ 3Òù+RVÂû¹2‰’êÅ'g¥u}¶¹}¶±*Ÿïä.ú×¥úÐ\}pùb`ÈK2ìb¦$ —ç3ã°¸>?^ï/ñ«•\}è i’êoí±þv†Ÿ¯ ¾ëéÙúÜù:k Açc³³“MˆÍ­‰óI7s¯1ŒÚa¥(|Æg6b/‡;ÚRuftëJ:Š÷Á‹š†#ž¶W5”ž™þUMÚ- ¨‘–ãd®‚¯lÌàçE·ì]Ú8§¦Ý²WJkð„c”¦4\…2 [ÅÝHù:e‰¿¡R *%\ž צ¦p8»iEH TìW.8oIÅ$SÜÕ(³6…zWfvY8ì‰)¿ [ë4BÓÍEÔd—bЏ>ã’ØŽ+QR+÷⌠JôÌJQÍ0?ÌöZR”Êinî×'§T¹£YµiV‰J}™¸¦g©!¨ÙÎ2ÎÞìs›œ’—L$Ëø[ÚxÇ-3NϤ¾9)ìo8kPt¾í•eRh@«â;ëíó3Y Ú9}‰ðiH6ÓLadÀFåc?{AÎÑÌ`6€Û¡yÛrL`¯JVR&˜Î œ²WäÀ œpf¤ N—,Ñ©õZL“n¢)NZ‘1iÎ 55“{bêtv8 %øî©s^ªË ·KNt hOKâØîtTÁñ(ÃŒ…9Þ iŸŠRXî‡Jr²7áäm(JÉåYi5©4œ“EÛ3c©àé(ÍdÔMpnÍ·Ö¤¼›R°dðhTÆñÎ%èæK[)©%(Å”›4{v™jZ.!»Äá°7Aù­ uêHûE3ÈÁë[ Åm‡¿P#@¢&âªFÀFŽD[Ú#Ù¾š¢tq—Ý5œª;GÓ^üý“éKÜÍ¡?Hë?¶.9¸ØƒÏ‡Ÿ×Åcõ–޶ĝ;ý®C B€®¯øÐåê:Pà u?o¾}è<< û.PœI¼G†è¾?fh®äÖ?*2¼LÅZ1Ýô;0û ÞÑ=¦¯ uøåÑœ†ZÍAÅ>ÆPâɆm3r½=z¼Ü=^’¸Ô[h;j©*!n UçHÝ]QºƒuHbÉQ_> ºty,9Úy’Xâ"^4÷¹9ÃÍU7‚íÄAHc„tY ¦)%6rÔ‘þy×7òóÞQñŠ~[.œ1ý­aàʰoa< ß[È—8î[,½…“.Dî:\oŠßÑ@;Ì~”S¢i?°ôêJøÄËŠ½Qy­Õt*Ú«a‡‰åÌY\-ZÊ¢TOÀhãê.®é›Ò×ݺ½”'‡ª‡vR-¨1I¿€J¹åƒ((Õ,XM; ¹úÁ@ë>ŒÐÒ¢™ºÒÉl„Z 2¶= à*öZšQ8r‚¶6›@ú+¹·OŽ_Àx‘i˜Z¢I•d2ð€ÜÁê¯I¦dÚûI)›”u–£Å-#C3•çˆ-*pcöž©Å3‹{µ”½»4j¡¢®}QL‡HÙK±GK{†t'dì͇V½'™iMï´ššêëÊÇ%SWã•©PÛFSš™PƒÌ‰Ðë?(Ø·¡ñE¬H5jD#ÝömÞHKD–>.áØB•EÈ,Ò„Cd5Ez?>kÇÃhY¹–‘0ܵì$>H<†Kíø8-'Í¡µ…öÝö3¦Å7€ÓìgÔÂIÃô“ž@}‘òPwŒFå`ÂÓÃà܆ŒÇê¢ °Fs°$íPù6Z¬Å(ÚôZ½½¸ 3S‚ Âø5,5œ eb͸5²È2ÓJÄ®¥}M %eÄUÐO¼p w2ÝD(•ñ6ØøËöNÚhG5iý éè6s;h²¨ŸW ²¿~Ñ$MS^©i*êhÝC©&Í|“b†§5â:¯ {]¥u‘ ¬O˜·01·¨â%i@,I4¯ÞáYîht²’÷$óïúÑm`¦Åi«Í"´NÌ´Ä4LÚâÓ2ƒÀª6а˜ Rp9Áü¹E'%®¼X>JÞâAfä„åyž©§™‘EA#í0‹§aò¬ªSFyaohreJV›ÆwÒ5 Ç*nCtS«µ‹( è;bÑ^ÿ¼Éeu.Í_)ކ/¡ó4÷¥ÚÌ›j9W›<¨íyÿýñbþøQuoòxòÅñ‹¡êÞXõõ½êÀ‹ÚÒíÚüΟÊÃÕ7ïÄó“ׇ§_מOgÇOã®Tï‚åS}]<)î9|R\ÔŸZy¬¶5ÿ¥4ròôeõî* 'Q_ޞ䆩ØÉ›üñæûã÷ PÍêpÄORÄÑö—½Û_J¹ê³‡§/gŽ÷Vª»Ïª»¨¿X=x´Õ«_Ë­WÕ±‰Úã­êà"ŽÔ_T‡§«÷‡k³{dÜU\¤6!‚þÜÐéôª:ºP]:~ZvÒ¦Ú{Žå1O;«¶2„x½9.ì‰O…;âb®ÍTǦEÔ¨äéÌFmí©`*UïìOLOoWÇ«ë#ÐöÛÓÜbíîxuämõõ¦tCˆrCÕ»§¹ ¢ãí~P©î-¤p“…|ÙPönH;Z¢4r:—;yž?]©.OS0‹fÚÔßü«ùÕ5—¡ð{­×¼vƒá“ï~u  1 ãùw—­¾úŠÊÿNÿΗtƒþ£i5ð^üíãšlEURÂ¥©©Â_ñú;Ÿ%áUáû}”„9ÿA×ßÿ·ó¸n\õ·ÛÑ¡öGc}'œ”±ã†óÎo¬^°ˆQ濦g¿Ö?Ä×nð[z|ë¦W”__s"ÛÔŽÊ–6qŸ£eœ×mÒ\‘[Æy(ÚçÿÍ]9¤Ú…T»j÷s Ú¹£þoéÅïùÕÍÞT,$Ü…„»pîBÂ]H¸ w!á.dç„„»pî~.C:$Ü…„»pîBÂ]H¸ w!á.$Ü…„»pîBÂ]H¸ w!á.$Ü…„»pîBÂ]H¸ w!á.$Ü…„»pîBÂ]H¸ w!á.$Ü…„»p÷&Ü1AËçp ¾ÖÕd;Áséa_ý²•mÕ"†Ã©ûŸdÊýâ'S±þ«l9_F;ÆÜW¿üIŒ9Aoüé¬9Dõ‹åvuhÑSBv[Èn Ùm?v›ûErhwfäa"X >i-0´ÔÐç­q Þˆ>l³@1ÿÇ/}ü¶»ÖbÆè7âØËi—´†±iØeúÈ-ëËÈ¡OZû&œóeù£R• t"Ÿ´†éâ¥|bšk7â\bšˆtÜàsÓ®¼[öÆšËSsÆšwMçÕœáæžúD5gÁ¸{CŒºO›ÇV _Ví|÷õkŸ«ösm掣ŒÏVsÝÿÏwgµ¶xj⩈yöCÑç©ùÝ›ëÓŸµæuÀýÆØf½o@”fµ“ï㥜Øô6ðØðÁò¨ØìHlßj”žãzÁwki߯›ÒoÝS“^ÍÊ*€«©I{)Âi{-Âg8òHqT륮ÇÔ™  ZáY2_vàÂ^íÖp9í£ [JZÀßQÖÄ·k€§FåÄÇ%X$'ìµ#ñŒ8}îR™vÔ6ñ%ò”póT Q@M5©Üp®Ã(Eç”X»n-âMNSø#õHÙz§nÅ —_\ñ¦ôkœ›Rœ¿‰÷Šös|{½c;kŒZ|Áh"ùGYú¯ Œ´ }¬WÆ='®3Ýï½çëO*cÉQ6_|† ËŒiª1×C8hPévÔ³ÄÒ ¾ŽÂyˆ8ýý¦tËðÙY)KgFšã*˜Zð°Ë^î&ã 韭„©Z€¦ºµÿ-Éä#]‘q„ñ×׬å~µŠoºÇ­eÊÞ1ùB¼/Гàìïä8¾Ld§X¬ë&@ªÝ ¢Ñ 2e‡&õ©zœÉ\$Ä2³üåÎp%EŠÞM­¢´Ò™¾íVá4Sx³ç4µä¶¨¸ÉVÚA&Ðq×¥¤ç*"€ó˜`;cæÁ3ÚvÂu¯‘;¤ŒFm¬0a¬‚ ³ WŽÄe„Ôg=B±$ŒT ï!éí² šÖ—j¥M€•"(6.¥Hð€‚4ZsëŽä0]Ó&ÏÇ·,P>-2æÇúTþã06˜se@S¢º¯èÃw,î°E2ˆ>{lÉ®C¾ažÌûOï»l–]TÀÛ›Ò§.¿ˆ 4T›^2'IÐƒŠŸ¶mç-Y)ˆ7ŽGTˆ_vHŸJAžÌ[6´bnZƒ8|æq‹ši4`Lñæ|'·P™ª÷“K6*¤ ÙTâ½pd¾uZB„߯u(l{Í­A/aèü¿ë¥-Œ™[|Nn€bLxšª’ìå«7¥G‰XÌ`¹)}MÞª #Ý73œzI{ç ˆª¹°d]ÕhùÀí/‹2eª’ oþE:j M.²ýVŽª:yó¥€I”c:R$q¡Ü-G¦#(\<{“8® iI¢1’Z;BÊ·ö2mÉ$¹‡$ªq™i¡½-»6æ£ H€šAUÒ²7Ë‚Œ’DšÔ@±h@‘û' ”Œ´¦’‹ƒd5QR¨=Ø%0! ±Ð»¶a º•îÅ,m*=²Z‰ÏyÑ3ÝIÕ^îzX-©2@i,à<4-’¦º6íÄ•D¯†H´£|­DTæ~$”÷ãºò´« epbGDt“Ö>+!hM”‘(í,d]§N-z ÿéÕ -wÎH¢®Ã G 8â¯×´Ù«ºJ}W·Wê@iÍÂŲ’‡\£G(uî.èNC$©EíèFMT C0R°Õ¦®QÜ‚ sW˜É‘°ÔIû‡d[ZÆ­¬$ÓíÖ¥.ÐpL{3nï詌’å- }!•öR ³…“£ÔD<ÒŠÎàúJôãµÛNgg—‚ë÷lŠ6lö¦áq&Lt“I YÙá=€&D;¿¥ÎN•”hI9¦Åã4s€vAá4iˆ·qbÆU%vm)UØBª”Ž>ÙìÖ²í( ÿbQ'ÐÀTPý©ÃE¸äAÄ›/´¦é‚'S ®Ëé4& 48¦ Ѐæc¢0,a÷f ±¥é@KSåNÕÐb)†­Ë±˜ þ=¨=´í iG8>B›“ÑúI1¶˜1€0¢äwÂñ‘ærÀÐSÚßý¾ýȯˆ½úzádi¸HîÀÑO–ïÔ¦Ö+Åç ôީ䇫ãõÙðð|Úí@È C Õ ÷¿ìÏU ƒ_Jƒ•üý Ö»6—«®ÎŽW÷ž3Z¼€ßø9¤ZÕñ— †w€ÞdØé£ÇôéñýõêÓ"éªMAr~ª’ (þâVuü.ò9>øeÿqâ/™?äÖzY=¤*3•üó“Ãýêà"Ãû'*Å¢ `/U ýxR8dìù&òùRmpÞüœ<Ï3 ¾@N]…Cç\ԃʶbЯH\1”wÈ…å–jV— Œt þy&€¦º…?§bÀˆ°Ó$Ç.ãɃçsr\ °óÖÕøÔ-3É?„=nÝ{ŒOå£ÈÉî¸ö;Jݺ¥÷Éf4,´ÀÞh, Ü y:€ÜöÌÞábƒR‹côÞÃRb׈gvÔ÷œC>\ßuw,Nú€è_.«­ëMpòø¿Alcsßsz–O?î\9¨öÇŒ¦› ôù 4ýeHnD휫œ/¬_sõùþÚÇ\Ó¯úò„T/¼ª?Z­ÏŸ­ç¤ó±Y}8D6=–.¦¥úÝà“±nT¯ Ÿ?XëÛsõÛÃRýÑ$ýˆóÅØ«‹©Äut.ÎI³3gû¤¦Þ?Ç:ç'HòEa™qÜôÉ£uÇ®‹©¤»¤óÉõó'e©¾3 {ÏJç ¯Îß” ÿwö®í7Š+Í¿÷_Qo3£ÐÙ\F£Õh_ˆÙL¢H´VÚtº«Ü]îêªÞªê6í'cîÁ@.'†±I0wÒØØ~èø5À`)nJÐþ û]ΩsªºÚ0ÑÎÌJí®ªs­úÎåû¾ßù}Ï'çž¼C@샗žø’ÿ|ê ´Ó¾bM&‚Ъàº6‚jwŸuÀWÖéö†y h4"\4% •wi1À¼3§BqkŽv§† ½ˆj®ß¢Ý9m%D\ Z”yx*ŽìXØ@3¤¬ŒäØ  8¶ ¡ÀI Rç°oDf¬¾ß<‚ŠÅ{ oŒVûS^j+ôÒ¥vïsíQxa;O Ë!Ès²âÚ´‹kZBø­&Í´e/c a–ÛsÔFÐ~ ;1‚?HžóÓ€ sËÕ1Ƕ¨5%›)zõd»©Qð,¬ÏYŸ»Ÿ²Þ ãû4ÙßáÖBÖl×÷×ç®_žµ,J™îbŠù›ësçéþš‚_çè×ôúüñbr·в·Çáöõõù ´ñÏ=€º¹%Tm9›_ÿ¸ÑŒõ¹Côô–ºM‡¬3Ø.ìÖ!.ù5`nÁÅyjà ÞûÆ¢‹£ÛÈý0¿_•1‡M™¿a%oé*Öˆ­À—×W¸Æ7i}n‚Þ¶ÿjö¥Ü¥L³äÐÀdSI!X3÷æ8·“k™¢¦_¤†LpeÓS­HžË¶ËdþbR ¿³Ø¼Ë³) ÜøÎÄè›èÏÿ%F]4¿¸íÕ5¸ý¶Õ ›åª¨»t!‡8¤ô‰þöÛ¯[;«Š2¶Â1§<ÖE w g¨)Œ9ÖhöÍÒŽ~8dÙ}¯£$ð®·a”ŽŽaÙÉÃZ“>Ý·‚´:MÇ@y!D-+Ñ oX¢áø"B[šJÀ%P‡|„Ä Ñè¡Ò°•*½Ui z™Q¤!hi•†Ph¥2C ‚lå•jì‘"ªykÒ b"©JãoV¥@–û;KÎ#e5H:¬ô!Æ{NfŸIä±²tg ‚êµßìëvä„݉¦›Üœ›é=8ÅйÍk³|‰(¹ÉËËÑN±,îÙø ŽÝ”ÏöÇlä¬äÎô¨Î(@ÚÓÕï7–/qgž9C5OÇ!–n~:É‹¨3* :Ö»~åÙù бgßž†Žm~1aöŠºt™{…Å^> ýzôwfcåðÓ…Ï¡©P5ßábû1l;ÃV­F72dò…hto]ø¢B†Í4­<Ñ‹ï•n¶½£Ã[Ë¿ñ–†» ±—ÜÕvµÜ(Û…ê¨ë(V¶V¡V² ž[F4NT¨ƒFâÆ¡]¨vÓsŠxUD"®¨à;qy¸R@(WU xœ¬£6·zAÁ¼Š¡ã9Xcr£Ôt=»XsÚè{™h ñ—TŠ~¥ZW©P‚ý‰ RQeJ±Ýg‹.Ú-û@rÿb|Ù¯…ìé¼¹P½·¶„êÑç} ˆž”Y˃¼`©R6äHˆü¥äD^*iQ—Y™‘÷Yrä…”yÅR¤.¤,ÉK(#Oêãgn'Ò%$2¦¯YÒä5Ê›üÙ'uƒªyûÿ jD.<–÷ ×ø ×ø ×øO€kÄ]€Ä.©ÅcHλi¥Np»}1¸SÂkü€²ÙÝÈTÒ;ÆqÊ`P%®Ôó§xxàá$r¶âØ5Ž9ÍÂqûžI+Égj!™Ð°Gj@à¹è§ìÞ ]$k´5þ‘Ûç&Ä…ýø!sí%eðGÈ4xèôDìjø#ß/Ö’ÂKnt–ðqòLC&·3]‚Ã4C–h%0Häg$­O‚Jzø,Ãn¹ÆI£xí Çî^Ë%è'k¾c°³0Y‹FHyBŒá¤Èß M AÅBfõ€*‹jVT Ý–S B;ª»ÞH·“!4˜ç™…ýBã)vuÏuJHè+®rëȹ.ê²"b?‡âjqаDXB `?jo»&´ŒÄ{WXû›ñžT¹!˜’`*ä#ÖYªÁñ[nø(iýð¹©í6î>R`­»š[ñ??ÔÖv“¡—L” %þ»Ù÷<ÉA¶ã22 5w[mf=EcgÀõwg@¬Ùd•C—È!³p)˜ì  ˆ "“xº¯A{kHYjÁ"^w<f\ j"j=-$4•¼É¡û0òš¶¢Ãdž·d«šb˜µ‹É€k‘€©&,BÇ"l8ŽJ¦8W²GB©„å¸Å µ¡æ"Á4µëîlËS÷ž‹Ió MéÈ/U4÷Y$‰fÅäe:V$üH}/_òÀÂn†ŽhÊ/ ß!$ôlÒ„¬AÍcA͵m–¨¹5˜‚äð¬5#KCˆœ8ç@ÚµMz¯ˆ@ºÆ˜€•Ud°a?dŠÒöçDö³hî¥%ëÎÝü´ 3ΦæÙŸx!Q¾ŸåãÉñ£mÏòÅÌ[l?ˆW%aUñrž^#W<œ´`¨¢ 쌠hŒá+EÉH¶ÜUvÛ-_þVc»"ëøBrŒ*À„ßêÎúv ¿Qn Û1 d˜)~žÞ†#m¤SS“ž™îå±pЇӤÍ ‘r±ã‰œZKO7Ð}v+Yi‡“7ÀïSiÝj ¹’2ˆ*{|ðñ$`G0~¢»Š‰Ü¬ÇÈQ–øîP¢?>3À%Õ»~ÿÙÄ7‹Ø“èV|þîô.¬ô–¿Þœ™|öå×ON^‡õ‰È µy‘xà’Ø¶rõnœØ<ó€ëÐ:ÚgPèW½‹gt´!€7{+G“ LÆ‚>×M^ô^í`q[uáêåÂèÛõÂh`»õ”ë©‹rTôƒ}…:{R"ø‰Ì;n$]+lQ~mgTùc¡ÙÅ (ËQaØõ¥=Ü `Þp •ÐiÔ…ëÜ0ŠÜ‚çúµ¨àþ«à—‡ãFÝÇå ^¨7ã¸y¡_h§§ùkáÁ•·ÊAæä¡,4}wß[vÐŽWqTxÇwa³M± [ShHÔˆ‚hÖÝ}ë±EX€™«€ð*ÛiÊa»K§N‘:ñ÷tɼõ2Öñ_ë•IeÏ:¼µcF™:^ì›!!RŽ”²ü¥~¡XÉ߉@©ä¦³%Jn›"¦¼J¸äuVÄÿ šò¡¸% :å×ÑS?QUsX Õ£jˆ¤rõÎ&O+™„4ITVi¤ÀÊ+%¶Êå&žaù»OUï@œ“ØÍ Ôªgº ઠÉ/)ìª=ZäÿQ^¡­åÞv†Æ´xåzåzåú'ð )¶ š5ܲZÀvÈy Ky±+F"º0ŸóB=ÌÒ^äݧñKQùÈâÙùq ›0š9èÞêVLy3É0HùÄaEv ýC{(Üý¼zNübb =í±‘ˆáã\R®åƒî¬ƒªF çž•1'ɧÓ/Œó`¨ß úgÒ<ׯûÐæßˆ Æ3nêóׯËGžË²ånÜç²€¶Hpƒ=‘5F¾™Ì莵åÏ©fOD[øžºó5:„}ëó^ØÐXôýÛ¬*_4ìjM«éÇÍš”mt*)§„m8>ÞÏ|žÈ9¶Ä£Ö€›QëÕP§{)ÂÓÂÓo–{ŸÓ¡Û³_÷Îçð}áÖ—9ººÅ)ÅAnŠ):‡H¡Žè·òìßÊO ¸`ô”KŸv”¼2JfÒΌͦÂnáZmx?³@Yk3®¨«I¨©¾“þ‚¿bsâpªnÜŽ´¡dGwÞˆ]+­ p}öîúìêúìÔúìÊúlGÛNþCŒ%]D5ë]gIJ`pFÚT²Óñ+N½$|P¬µd— T©­#Îд‹ Œùf˜@(~—¶}H'h¹ua˜<>ŠSïõ¡UУ䮩 Ý%ßè-Z´óS›6v±‚ ‹ÆŽt„’”5#÷²îpà-z±MëÆ@™CÈ-Ty>J8å [Å%Í®s+ÓQ]§ŒLðœK¾Y¤’€UÿÇKJì”U‚ÛÅ)´9‚.‹M-þÊÁRƒ 1IdDÞ,S¡SóÛ‘<…nfU>¡Fƒ²>ðíbM exH ³0œ+”ã@™øî° kŸj”ŽaZP‘ZGÔÛJƒ6#$á$sF…YŽ .C e3à»ôQfƒd„P£AdM>2tÔ²*8ë„‚@³ê7X S°–ž[ 1\tÄ! U +[O+¤)ß3dÁv\AÁn ãZ‘aHÇ”†ô,xMQqò¬ ¾¤/¼E€R$K\ý±óãÜNZ3¢ô­°Q]/«OäÂ\‘¿i ËPW–¬7‰Rr÷ãí‡Ç°}”š°DlЏ 6Ë *‘TÔ lÁÐ KËßû÷YjRÇÚ‰¬—…Äñ8„µUë†ÕÌÉò0,#<ö uްcIM­DŠ(›k «Ï³ùì6ŽG JôÔŠk#žµÖ"d®QRЩEzlA±p«æ82ps(3ªqp£ˆP·Œ›ž‹¸iÈ›kTR‡2°ÈšŽˆ(Ôˆû-4ñ´AÕ>2$8ñï¬b#¨Žào 4O݈ÑÞ˳;ÉcHK#Ç}wM¤lnòˆÿÏ\s]TÜ2rúIØ­OTƒÜ, BÚŒ‘¡ÏF⿲ÚÙMdÔ¦N(Þä[¤·»õÎVQ§jD'¯`õöÛ­¸;Šš¬Ÿ -~u] –x¯e9•vw¾ôŒ7,F2†¯ {bíÓdOT\ =}dÅ¡¡â¨Xö™èîÂDófp¼ò½X‹C#wḨ¸ÉBf}›ƒÅ«Wıà‡òÌ`\ìÓ¹ñ§W¿úiÿô_ýÆðè›wVžœž¦¨âÓô}ÿÂÆÒ´–qB±ÝÙþðë:”ù ‡D?¬ã»'Ë÷ÏaÌø‰ÙŸœ¡àñWŸ¬ÌnmoË9¿ÓL;¡R“ ]Ÿè8Ò/o•zëàæûÂS¯È—4QÁ/P•Idéñt(qN=mÄÏ‹O=4Ðú—Ú¬B"#¡†þ„PÃÜ´ŸoœB{àóãðõ Äð¹Ÿoœ°~9ÓÉ„“¦3P”éç/`èÎ$R~]ù..¼Gž~ÊîDŒÆÈ¶Õìß©êÍ$parÀíH«;Ò½\3ö#)Óá{M¯a²B½¡dnJÈ|¨Vs'¬ÄÌVexxh›EЗØyŽk3‚°E'nÌ99F:®¡<ƒ¤Ú\+¥!Ó(™ zLÖ©[´ë>K§À˜‰ée „[ƒoמɖ¦y¯9™²ÜOÒÝÏvNOg¸ª¶R´åTQK±CÝR€ãï¨UGTÛsÝmη¤ÇÛ\-6.ŽuLÞ|¼±Pß®Mûå:È5òéMsÊk‡Ã9º…Ûµ‹ÈRªvjaë9:hÒFÂØ-55sHµ«`ö£¡æÜt£ú67[6*¢ý4)cp,°ƒ`Õ‘¤tH K1ë¦Ù–NsåF%ttÊ sï¨"jDî&$F*ä)=y޳—­¹C×:0êPžÙ:£¶­­ø.yÑ¥·áˇJØ´’i*h ÖßHaCıRí\ r”|Œ5I_¥;õ°©*÷}ÜäÓfb* ó–£ÝròÇ'eo˜ô yˆŽr|;$ù9„qeÌ?Êq«¯^æ#’U °Ñ#6yQÕÔûl²wèòœÄ½Ðõk¸Õ™9» Þ‘ÅÍ//#ߤv¬õ# <Å싟oe×ç “® *a€3ì§ TÉhs{ c¿›‡d6 gÖ#CÍ-~Ûï Ó>Â9ÐÎ@Nš·ßú}™®Àδ\$t² •.ÿËÞ›5Iqdù£ïù)âMÝö'¹ÒôôÌî5CBR«ÕHLCÏÌ^dQ™QYQ‘Š%‹ª'ja Ä¢FHìk±›Ý³ûÄò $+Hl¾Â=çøá‘•H¢gÒºEe¸{¸{ørüœß9~N”¤-ä¿£ÿ5ê¶*õz½ÒŽí;µZ%ó•Ô[ËlœÝ «¬^ŽÕ­y†IuÝuaVÁÀ—µô™3QÖ´ ˜)ëX%S /[Œ”aà{)kuôa¨¬¦N«I3S¢šñ (ìkëÂ—Š˜La!<&íiùÄ a>½ÂV—&YÔÆ¦WGÓ$?«F¹r› ôE}Ñ@_Ô—¾ˆl½­ê"ÍH½Ã{h„m# Ú¢7b¦ºèJxQmO$Y „±Þz¤[Ã#Å»)u[H—T îVÐ"‘úB:¤ÒØny=ÒrŠÑŸ©$ÒÛâI=œä¿åÕKdvî'e &²:'ŸØ8kYj̪4>·ë˜tÓó>õLÒÜÜ •€ØÖv¡[®w*D{™{ë­ç·dYœ¸¢ c§/{‹ºUÓÄš:Yà£-áâ,z&î‡1¯gZ©…~K\÷„g–›'02üÍÝ"4|D.‘}tßrƒà"z€7]vó×îÿd¥p·žt¿JQ[¤9/¢Î*&a¬˜…U×K6]ÒJ ý–¤‰›N ;©Zª$‚ߤº)´)Žþ•ª:š›”‚žˆ÷ÙÁØ:¨s %âQ5V_Øà*°I¿5_½O>"—ŠauÝ!‡"R+t{3z$‘F­èÃdýŸ@î¨cæöfŠº%œ”L£#“[gy,.ø£¹J¡ð]vÌ]AÇòJŽf¸…´°O#ºÞ…ÀV½;ãŽîür5ß%6UÉ_¹gÔË„©2P32Ê¡x츣.,CÏð>…Á ñk³¾xÒVÌÐ~¬tGê9iµ`!µ}¼K üT±˜J¾–«§‰±–B´¾õ)b’èHª’:¨µ*A^ àru1Áþ9B‡ô`C5¾#PÅ{¸|)D‘e" “\>¯hÛÌÚä1ËE‹Üvìu¢yá¨çøÐBÇ›ð;.> šm3Ó¤H; ꞇÿŽ$ª] 7%k§Þ=–Âc÷àH4AjtÂ2á¡Yo“³zÝ#6ÕGu0£Y |q%ʈiÌÂnƒÍ<^ºªÃì´¼ªZ™Hwßfû&¾×¢ËX‰Ô¬ð³’©UäzdšŒ´)U®ÀÊtˆ¢é[zx>Áh7‡H[ñÞÜÔ¦¹É3èá=¢œ@ÝG©Ï¿gnê2†Ï™ÞÔ[¯±ŸÌßGŸ#<(ŠÕSY@2=”e*‹õšBÞšÉiRz¼ùën©âòÙG[·>üü S|=ùhõ6·$Ÿï’qJffQeÑË™oƒLz\»yƉiÅŒK.’تò‘_±›%¿ G[Â9[‚÷‡JæÎ«&]'Íb7ÅØq¶bšô(Ï-CçÀ;èÆøT^=©ÀkB߀†Ì‚°ˆ?·:)m…Ý–y !ß`ý´®%0€w–¼CÏß!¢QìÍ»-) ŽÁ1}-®Ãák¤)ÞL”)7‡^)£5©¾M1mN]rĵáº9uc}m‚Hp†cÔ·áô¶ÃhXƒÉõ³ˆ!Ù¯@¹]Í©H 꾘&€Š;?¬e<ïÈ™Hz¾·àßË‹dWļì£+û¾Ž,¨ô&q‰àÑëè;äîÚÆÿ‹ôküþ¤a '#w.ÚmÉ(º&ŸuÞfS…Î>2É’©—+œ€HæÐÀ­óQ’Ý±Ü °ýVq ¸à%ˆn§÷æÝÒãÇñ‘¼»GR:„R…ñ#/ ‡Œ»Ÿ:ÜmüÓÏ‘’@M<¹'‚|ÿÊÎO|4ÿñÖ¯ï»÷þ—ó—¶sç—>@_Ì£;¡·?íÙPŠß¿pøÇc'~Ü´ñ§u¿îC݆¨å#VËýs3%ÐoÑÌÛ‚ü¾ _7K#¼8O?PåYòCæBCî…•Z»]©uÐëD­2xk+úP‹# ¼Â±Vx$gH$ËŸ˜Xi½D7õ+!¿òÏrÛnZ©ÄµDâÅðÏ4h?üã°²úPõ¥wþI4[«UkÿëÑ_z[ƒ¯­¶(ÜÀ0¾ëú‘êU£6ª’´õðg%ƒºÛ^&;)>³ÝlT…“ôlÖpLCe¸žµ½„‹4þ†·l˜¬åÕ–0¯W)QâËÆ —#è>›>N¥N:ú Ö*­ö°¨ VC[¸Š_ój±ç¶´žH?æ7z|§0Ü}z’4‚Ìãï»YÝOeë¿6ÿb¿ÀìãBðÚË6þ…~ x®@YØ;ßCÒ‹ÛImKC<®n+ÚÂÅì0éC ï¸ÛD¢Üs"Aßy"Mí?é„v¡p™ñ’æ;C: Ñö¥t²+Z8}¯%V€Ú¯ê+ÿøÕ¬¾_µ«IµˆØ»Fßõ±Å3îfU¿ÜÓ*Iîl•¤ïoÍ‘¼¶Ëå'›Ã«v¼Ð„¨ÝÅ'‡v¿eÄLJ ´ &=оà *]£ ¢^rª¯Ó-)„˜aI'Äú"j!ÈpšQü6¥#bôC£"Ú`ë´D®{IQ~+}O?d¥†QqꞺg îéëzn—^·ƒCƸ!^.–Ön Á“õ¢¦÷wOèÖg·Î1úÛÛÌëBÖ~å4Øôç“ëÐQ8»P ÖëÆÿÍQï(¤XÜkŠ]&—¨I¶ –ü-¿^÷Fв1œÓBeî@¼!´鯱&Íïg…ûì“ ?Jg<”þ·:›ö¬ÄÜ%Xþ™5î‰ÿ§7 „©; ®¾ßL8Ü­{¾[‚Pc<òÌÏq܈K_°j†¯cðÖ@²` &®ö‡°"žd(8¯/±¸ š=Ë‘XŒÈywqÝ»ëînÑk7íÕxi¬d§è~5“'¯g?ym¶×IÓ«r×ÒÀ&Ó:Ƹu–d.8»ÝšZ€ÑˆV_'³v‰7_b^Edí«ihNê]ÍÑŒ994sÿà ó»#pL˜ô½}3ó—/ÝÿlÆ‘Cž7Q¶Ú?/âž Õ¤UCo D-1aõ$c†à>kp"Êý‹&ªw­ö¼Ï÷&Öè8ZK̶tp«y!-1>“°K#ŒZ¥Q¸ËwùŸŒ»Ðæ0q—×ßz{å«E€w Ë*7J´ìŒXÁÞ+à7Z*îz´6,£?ÔF«“Ï)â5ú«©x¯Ø¼N¶b£Õ…ûˆÕ•ÇlXjÐ&·¹ôZ @GK¹xHG¯†¶Þ…ÙŠÖ¹¬ö2Û\6‡E´‡½õv Üó)ŶÙÂ|Ý=Ü£u݆õÙe`V¨íÑÊh8žªIž+›Q0jôŽlsi õ…ioòÍÒ‚i³®ƒA/»A÷ØmMÃÙ •µa>«Ü¦pÙ’ÛŽ6\§°12môòØ ëšî—£íÖÐ:ÆbÛz@š²]•Üž2zžGUj¦€ ¬Bº)s¹Q/Òk:* ‹Sø^ßdŽ '¬\jBX'X,DÄxä ‡ïÔ’¨å6"k´¶Un­6B§çlÁ † )"¢ÌÒpÖjH´e3÷<¯ƒÞN >#b?Ö{a  r~¾6‹wþOÌZ¤~ÉàP‹»þú𑾰Lš ±žM•ŽEÛÅ÷¾ÉI÷øÀ‚xíí)–Cg|/ç¸pÛÜ&ÔFjÝI]‰tÝãµzþÍ|ä( ƒ—0Œȿ֋ÕÚB1¼ÎR!¢AæÞ2M·rt‘í{<$ìÎÝi_{ÝÖ[ÊK­:ߺ¾×íY²Îùé—Ï—_}e—'‰«Zðì P×`Ó¦0ÈŸdG£[#¹®²RùÏ?SÂ|ùÐÔ l˜Öœ_ uÃdÄO5×#ó7´ÆøÀì Õ†ö>õ¡,©¾ ¼Îˆ´Å_auäâWÛo¸áxáÚð+LIÛï¦n•¹ U=K(øòv·å×4Ð6STMŠ#)’/ÒŒ/ îHK×y¤Ü\!§d&ø%#ÛàšÌÉ+ÙS‹o|”‘“ã¦Ì<ÅSåÒ%ge¤kü•‘®sYF†âµ,Éúb7ù.‘Ü—øiáÁJ²Tµ ñcŠh\™JÌófö՜ɧ C`έiöÈϦ¥ëœ›JÖù7-Uã⊩²OŽÎ–n”VÜJÔxÖL‘ƒoð´âA)gË HþV\00¹\A‘4^WœÞ‚㕤,ÏÅä¹_í{Íé)r¿fFq[9á\^žÓ2¸·_]ßkìךø&~ ‰ïïÄ ß4ØŽÓÖ¬å‘'J©Î ã%éîA®çCo:¨LHÐíN½{LéÚYacØ)¿XIËF»³^ìüî¯þ^)àYi8FR»—, í,5ò;n]½=}{3óçO1Ðâ)çÖ²ÆÈ,PÀuM °çrµúÜл(£¼FÏgu ZíÓp«òðbÝÛs½^Df†Zèýùoµ»‡bÔÌœO•öŸw&¤ÝlSåAºG1íV¡þgMw©¡ÊSV&Zèú—·†|áqDêïøg¥¾Òýß?wjþÃMlƒßÿøäüÓºóÝqÁ´þ¤?]ÝU0p»¦ê»"NQ Ú+‚GÎ=ÚqDhïíÞõóé«ÊŽ€}~¥‘áé+¢ þa3Ò¬ ÄjM5w_r±j6^÷„˜N˜©Ï‹`™v|µLõù©êÈ7ô§ÂUô~ff»€no#ѨsÂÆIòh­Ó.a¤ðŸl†vyÎÍ=rÌOšº†o¼6zÊrϳ'–}ÔÑ‚¦Y2ˆ7¬j=µð5Æ]äßáùÐóèדäÉøl‰¢O?hçˆ"8GÁ‰Q†V&b]ÛÃób‰–nÐ:Ç;†!²'ïœcÝb.wïn^ÈoÙO{6ÜÛô!÷”ûþ ¹8 ¾·ã,ì pGĘoe6Ñ5µÙOôCWm– SXgÌ÷œåáh–ºN„ái^­~;w+”±EôÒæQìɉ¶Õ&£ïÞãáöGÊmF u›µÆÿ©cÔ“t“l—1>l&( œSV[”'8±JlSŠgW/óûQöøÎÙ•UJ+ £:£ÚÒn.C@Ϩί?¶N¾j½sÑjèCÿ¦¯€phdþÄÆ÷YÆsFÝŽ;t€ÎÐé Ðù3ncÕå®DtXÌ–ŒJ*¸Ÿl7#(½¿‹ªB¾øí})½Õ^Lù[…KÔ…îD¨ŠpýSEù”ا UÝ(¡Ç¸ò *Áñp߇Nn/Üx ºK.<°™)Þw ô2ïÌæ9æØòq®;Œñ¸Rú:±Ý{ÐsËÂÞª2–¨·ZfÏ ·ªœv-BKì°é?à­z—o;š˵5ñ G»îǘoµ-÷TBÛªˆføZ­§Á¶$P­ÞԓĪMy]ÿi³ …—ÕFè)D˜ícœ~©0²PLÄŽ-zþпòiŒ…Ñ«î#ð+ħᵈ·ÈÈ®pð¢¿ð„9)Þª}ÀcpÕç›¶z¿J€V蹿@ÌUíË d‡z,<œ¤Ð§ AUwÏMmùÍâªþâAU!ýñ"ªÚ¤î§¬ýßïŸÔÜžØB¦âÀ/&jê¾m…¨©4wO1N*:&¿qœ¼™»¾ãÇê\3õ1™ï„nVF]ΙÊØéC7ÖÛœ?VÖ’@«Ú‚.÷ÐÒ Õ’o^1Tu2©Ú=ƒw{ܪÿƒ¢f7¯ŒÉ¨"î©6s¿@èÓžÑDõ¦ŸzŒÓþ[~¦C™Šø¤ G'Õ¾é©(Z†¨[ê§Ï¤ñ(§Ï^¤Ñ~Bˆj`÷Ï£{q¾eçýÃ[X°Ð{›¿†ÓúÉB†²JŸr¬P êü¢rû3 kçÿù¿–þSÎü¯ ÿ1ûÕ&wÂC5¼¢='Ãú#°‚/ê Qé±×ðÖ¶Í”ö»ÇaFë VƒŽÃ( ‘N¼r"~·\Ÿõ`´îµYf¿[¬£Y賞·Ü0sYAÄzÛ ýLj±ßNùï1ÑD»k+¬ëk]`[«£Ë*k½¸æ%ô«È޹m?1d÷õı¿6bÜ#ÅŽW_xçŸÞy¾ŠN«1ž„«\±«Ë:EsÔ®4¼8ÂhËàͦ §¢¬{Ès¹Ï¥|:E«YRƒÀ«Q ¡B^Ýõð6e!y¨Ö.&ú /IáC‹I DŠx¼ß–OÂë(Y;ˆÜz!k$MÛµ¥² y(JX³VP±GbõäÓ[ò+Åòm¼½˜Oì¸_wÓ(¦¹«ÁÀòåÖOÞÅ©CÖ(¦5Yig±—âœxuX|¶ÿ³JƒQy¹­˜ñŒêp¨£©ÄQïÚ´8/öã9‹Æta5,ÞÐÿóó@¼¤F'Õ~!ÓŸ9³¤&ÃÅD¢Åd pÅDFæléŒZh9¹E«åp—KAò§'±U©§´ôÎAÔžYÔqÔ8‰ÔSÆÌŽ!¹×Ú Ò)Ï92jIÎ O¤òôÄTÞà!2*ž1•ï—Ô’|"¬¥y’¼–”`D¶,HmY'¸¥Ùœì–ä˱('Á%4B\RÉqi#ÊeÙÆ*/!Ð%¹mum©”Xk+D:Í3·ˆ| ë~FÄÅkHÊÍW èåÙ¿‘êøŸú íÍÁU€æx 9¶iŽak˜zã7W”8äÌŻヷ šg™†»lêfLîOÛ,kãûÅúE|êµ”½SÐ4cR4ËZp·`-y53¦-Â힬ÏÐ?ËÔQ6`}jŸ÷_5вÜWXK^ùŒi%ºgš¥¢ê“íšg¬ëñβ›6-³×ÒóËÜëÉ"¥šdYBÓ!«4›c=•ۑñ°‚Y¾Å÷%‹E³,çtAwzPrgzƆ²é€s[«Ä‘vIW>>¶=Õã¼ò³w‹p¡§5¡kµ]ÝÓ}ž¶Ñ¹ó¼EùÎS­º=sç?ß<\CE›"OßgžjÒP)š±xÿxjzyÇËÓ›^daÊbu‰W¦u.ñh1.Æ!ž¾WŸ¹8‡xú{‹u‡§Þ]Àž*h ß&1{bOxª•<„¬ˆß^ð9,ñW°É»éKh_\³ºÆÞæÅ…=ãýQ9§(žð:¨x©:ÅMš§PKå%O󌗴Ñq:è¸#¾Ï[+ÞZýW/iGa]:GÒ\`ÕÆã,©&n"^®GkÇñæXÃV^åF¤'(ó  #ÞJ·áK·PÍxHÄ E?zB{Ô¼ƒ×§9Žªe±æfªÑnèn¾üz¨FÛ^C=µtïT(é%‰–Ðö“HwXÕµWÛ@6ÝyÕ»>~Íæ%SÍZÒb¹–µc7Ô¾+õ‡5G]Y¢y[„¿¬·¼'}¥á`¯ ƒné9…Z½â/< Dl?õ^Oiì7„W±±Ž-êpìy “Îòb·=Òñ'TÜBó}cùzU—.OÌðÃ:ná†×Rêe¦ÃécVT³¡qL¡þùµDë΃ý‘Æ’ZYúäâF+×ö[ÚSRo¾(þš©UÕUžFmö¼Ô¶pÏz_S³^L+ÐM›ÞÇNA=¼1%o¢Ùô@6ÊšŠ+fåÆDøèzô†Ñ¸›ý4üò,¾ÞWŽx blóÊ“¿-VB¦¼VÐ1ÁxêdÂvŸ«HÒ{“î7†tñ^Ö^¹ZðÔ(»Ur†ð{N=õ\ågEÙM"y‹î¹D…{–'ù,Ö8?`¬w„ût±]âéënœ±8\ëy´Ð%«æ oi¼iž?}ܨ±ß¡)œd‹¼!Óã&Œyõ¾¥¢ÝL)†=b1³‹'Ö3²ßÀË¥œµÛyý\ñ,e,z©êЬ¼—Q¸‹±×@/.“j96—UæòÝÐÂÕ’ˆú•º?<Œ(C¥á£u1p²~XGÞ„ŒÚ»:ðnæT I¥<ºS¡ëcx+uo(k°r"%ª%²ã­äYíY·×Þ¶Ú°/ëºçdjAôÞ˜Q¥Ó\ ϨDÐÙ¼ 4’fWÀSrŽ$„3­^ljuxš)¹>ßÅÒÚÜ›)¸že´ ý< °¦Ö4ÀšŠXî Aö–¾õê;¸D9Þ)'a¢ÍL•Òû°¨Ù»PôФ½˜ò·  õc!0HU„ë*Ê›«RbŸ^‘Tu£|„Ã+’ªwU’Çn(±¯aóR4L¥t;"CÕ=žiªê¬ lÑsË< ©2HZfOHªœ·h‰5.}º@R/ó=EƒdÁSÔ,?¶ ¤¡éŒZQ­{ÌY [ò1!™Û‘ndk5-Ú㑎Ät"6Îòp 79DÎ0ú—G.O¢Rz‹ :>¢*5„;óQu<}ßFÔd?¾Œ´é×?Ñ‚Ÿó„.ˆ8ÙÓ0èu÷á_ˆ–ˆúi&T‰ãù ÿ)q'¤H+¹¢: ¿{hΈ›L„ä²9éÓ« †xÍ…ÄŽôD²°ó ÝÅ3JÔ%ôƦ æÌ˜2L¢†ç¦>žßt„ü}:7ù« OPé·vÿ£Ÿk=6§ÌÇM¥ƒç<øÞcyáYÈQÎÒ·¼´jºÈÑæo‘¾p çoÞŽ^µ‰h'75ü¼Ü C¹Ð¼»Ÿã\Ábï¹æI]ÖP7›Q<1tJx®™Ð‡¡Ÿ5y¼«¥|Bo4¬æ¤X«†£ÁúúHÆ©çü»}¢7¦QnHÆ-ö\ÉäÀz "80ŒG} sã»F08V¯4ztHT¸ÃüÙÒ û§•Q#½p=‹{™Ÿ–ßuOÏ‹ Žz™g­Á<$È]³Ðhüx}d5\¼ªè§u§eEŒ—¼·yÝO{×Éê~Ü´q~ãUæÑÅ!öð(¾Ìð(ÎÐ@úÅ€-nÆÉžŸ¼,ÃûØ¡T†"øo<õ†×²ˆ«t‰ZÄ|¥ ˜³¨šŒ¸q#”³Ÿ×–%’=i€W«´4Š'®nÛÏųä5úÍN‹õ¡ÒÿèŠúU.bÈëZR»µÀÓÚQ’6€Ùx7Й© ž0Ž6{lx¢š6lÞÚ4‹~QÍ <#)$ï3ô“GÓÏ1oˆÿ@S­˜0S…´úí¨Î‹ÏÌPÖhx1{åvéqÒi,ãÅ:©÷ü à¿>üú‡>q·Ç_Õ»V'ðý@¯´"ûó¯#©jgh |ÓèÜÎàɰ?įü.®Ú+Ò+…Ú1"Iìñ\Ü=Å-⫹“Tja? èv•þí´·ŒÁp¥Oüâ>+d°ÝVHV{®Åv^1™öŸ> |ê%ÙÆÓSŒ©g„šµ;õØ£Æ#ß©bœä5W Û©zÚ¨a”«íZž¢ïÝß 8ïg£ñ8çà¼/#ÍU¸] àuÙFaL8¾c C€É™‚ÚñѵSzP»jˆo{o‹P»öbÊÞ²`RGÂÚUM¸E¨ý<ÖN‰}bíªºQ>D=±öRLBÕƒû†êÉÃí”X·³¹)Âí”^fIžkaíX@õ݆¾ë¹eè»*cAߵ̞è»*§¡ïZbG SŸè»z™oLš ú®æýI`M¿h­_:ÞÔ“ ÐÿŸÚ=¥ ŒÓS @ áZ=Ãèßø”ÃèU÷¡/ Ý¯…€_^€8`ôÛ Ð>á±èóýl оÌÐ1P @ð)©þ øµ£ਓV õ€À¢ã ¹{‚O#þ@ž úµâhëù—‰?ÀÈS?ñãö;|å÷O9¦Âùï†@›À_ APzÿn£åÿ&A´ozÊA´š‘(zýÿQ´è…€HôÓŽBÀ*Õ¢<˜/I½±7lD¹-:á!‡˃FûéH«ºÂæiíö+Q8ì7øcG@X]½|õ_ ÕWÐ= K~ù·VTñÅwV¹qâÅw+k¸*ù羽ÁL¾þ¦(í{V¼µZ{кÏo¬R¿ÿì ‰iÇgø¯å&M•°Ú‹;z5^ ²±j'F0!n+©þsVîÉÄÄ«þôø3üÜñç¨^ýSÚ V%«êÃ")IW3=›i–ü¯pêY ¢^ÜŽŸý ¼¿Â|üÇJÞÕ¯¯ü ÿðÕo/_¥ &ìÄ*쬔);X|Í+1,uwH%¼=4êÕ´«knàòÏ_ÕàÜý{ ‘•¦ŸŠÔµ)‡wþcµ–°xôÖJ5õ”øH½þìÃ:AŒK<¶<ÔÃf’˜ý ˜Üá+ÝöÍ·y¤4øâ!9ÿ!7Œöœ’kAùü«ÿÂ÷ÁÿY.Þc¾ôó‰ÅxÀ#ç•(jú^!VÆ_V,_e¤¯xù ãy5òp1ÓþCœ8~Ìñ+#®%Áfõ#N¹ÿÝs›õ†ÍE†ëæÙ4Ñ n>¦‰†z×z;î¥>L4hÛ,l¢Å€=\ÀÉÛ+{hä&ÑHÔ8Ã’dbõÌ<ÛhäiÌ£ž.XH#Íd$,ÅNÉSYÌɳ–Ö–TÍ´djÌf1W²œF–ÁxZrû™Ë’L¨-XQ#Ã`H‹9À–sª§s5Ÿ„Œj>mU#ŸÂ˜Ö|*±®ùD݈%šll1‹3³zFŽ¥µdck¤kì­ž®1¹…ä5êN¨HL͵!Ø^= ˜^ó‰³Àf*%šI‚6R5¦ØHÖXV r!U±ÉÅ,b– ÉË\È“LLi²Ïå¹ÀD3•6COlµžÎ™k#I²ØF*c®‹)ÆúÖ™î|º`½õtÉ€‰Ä{7R‰%7Rc®'sö¼T ÆäSÞOål{>™1ïùTÆÂë©ÀÈ&;ŸËâL½‘ê ÖÞHÕ|3#Çæë™vf_/ÁY~=‰#A°ÿF¢.JÈ'3 ŸÊÄ#• zR^D0ó¤ PHVâB!‹„#Uˆf¢ ôt]Œ°¥3XÏQ"E>µ8qJ¼È§"³¨§¡¨¡?k‡ÉÝäÄŽ’L.|XrA±¤r¡£<ç?L¾Å L¢‰í4GÅzJq1Åš'…•ü¥‹,ÅÃl¼mR¿·-“Ç…c¤Q€É?£ã^s6”Xc4»pS  $âäˆtŠô‰;Â"‘ö¦Á?IÈØ¹w”0TÜx$’™`TØIB<*d¬"!IO梒m ©=ðlÚÅ’û×eìÀ2v`ÛŸe,Û0‹µ¥·lÖ±”¡ÛÇ2Ì6 Y–Ó§¬Ö °’-é¹ÅNV9oÚle¹óè…¬eµúÈ^–õ¤`1Ë’ûµ™Õ*•÷x±ÓôºÈr–ÕU°eÉeÖ³|æ,ö³,§‡íµïÆû’Ýa}B;Zí[¬–´F~©-­VÊfM«g÷¶§—uƒZí}2©•cׯQ­V0«e³c3¬Õ–Æ›ÖR]¿¬q­ÞÄ/n^k4öĶÆùodb«ÒÓ2²]h¬~ 3[ã;Ÿ¶¡­Qy?¦¶Œ*DßéÔ~ÝK°·|+‹j·(U k&hT—¤ò[£aJUãû,i˜X¯yä=øsûp{=沞ƒz΋Ó*_þKž†¢i±£÷Ëèœh½®Ó½„ø.ëê›06]- G3ކè­Õ±{O¬‹¢Ýô’f3 C7Yâ@:r¥ Q¦Ž;Å}ØEMòIÙL}>J‹RVáATÐT¹ºšÊù7H¢óÂë§½ÊkÃyš®æað„b+Ñ\΋™€ úÝñ"¸u#Ö˜õÇÒná¹¥NR Ôè¥8#É„?Uu–鎞-õà¹L[c¨ÑÂ5Æ×¸ú2C³o*%ÔÔ±¹éiT]M¿·wݽ'ïoÞDJ¨©¹©-l5ý÷Ôv-Z«Å_Ü¿Ed¤ŠJfEyÈÝAÑ? ”Ϩ«û¡ùy\ýÖ£¤ß¢® Öêá¹½·pœžyx`æáç»0çѦ³¦.<ü|æé»Õ/UC©#Úô(¬F8¢QXS1%›n’”Ç‘|rµ”8®`ä²1É*xBg¥¸›žŠ>ªêÒ)ÜuŠé†¾bz Ã¤zºÆ´>L µR—ü·ÖL½ýkÅaà~9åÍŠy˜¢rˆrr§ùÓ×O±em½IVF@ûUÿšþc(«ØWa"d]†¢g¡Cï£úä4¼»gña¶Øé;'¡ÝYªâ 5Xjøæ5?íkñ…îhunôF™0ÓáÖÇeà‚¨£Z}BÝ– $R¸šHÁ)VÊ(Öx# º_ÖÝgWßÅgd¿;©–ÓwwÞÝYŸÊ¹„„O¡ö¹„Ì÷Õ¨Ú•aì´é­ò¢"÷vÀ²ÔAPCº cº¤†Ç˜A3YÍ]1]¿ík»bž˜ÁgY¿»(ê 4  Ã@ÃІá¯ÙÐ8î¶¿Ò¾±ÆV倭QRiŒd›JÁ,ПnÁÒß ô·¨m°U•æë)èÌìU–FhGµä•fnŸZ KK£ùYx ½½OÛq=B û®é àÖ4È+5ÌÜõFn¥õf²{5'I0<Ê$ÐÍ$´rñ‰„°Íg–2/âÈŠ¥ož3zó\¹¦Ä2#å*KaË=[©žË šªÅ–Û±ÌGŸÊKuœ™ËÀ¢Ž±,ÓÅêeÚq÷`ͱʨë©è`:¾›ß”(òŽEqóéê\ØÅÜjþ7ö´®í”|˳¤PA‰©—QB¥®;ÐuOP!ÛL?¥Û:=‡è—Ñš®ã‡Ð’K˜ßŒû7& ë'rÕos©¦æÖq„Ÿs•³(ûþ|,ÍCÙ9ùKê Ø•¹¬c(ÌN’âà(iÌMŸÀS'þÛéžâU¡¬=â~Í”ê¾8ÃFø ï͘³…×göíz¸oæáž­&þjÞêÍ^F¡õ¯ÌØÖì/ ‹ñr_RÍ“ÑÜ%ɦñk.ߊ¤ãB£°ÃÂÙ žïwØÖïÿ‡é òÌè/¥ƒp y¿ÄŘVÔñ´·÷LëHs0ƒ5ÈN]‚¿ÓøËú=} &R“YkîWQÀWZNO`î_¤&žÆó>{ê¨ìš¶.ÝÝ@è?}“Q´¡éyõŤÁ÷n¸·ï<‹™üdw_rõî;ïë-‹¿üÂ"'sdjìDù¥ç%Æ%^«JX¨é‹œV6b/0}ÀªåžõÒPB£^#¾¢²×oíʈÇ„¿zõW8Gd‚; Ý­©WjnÛǤ0’IؼŸÈÇÐóê§=¦Õd8m› ‰jBàÖ•Ào á~ý7P3ü±_|úq ÚË6UÃKÏ÷¡jà‹bAeƒ±ˆx›¹å#o¡àªP%䊱$)…¾”rÕ‹•KË*—,W.Y-±\[h¹D¶Ü ‰lÑÙ’“|7Ä”j¶ +]I_k±Ýzg(óƒú@_2З ô%ýéKV­t^¦=ójØñã(Ì]Ë8m¢ÉIλÌÂÆîœÇT`NÎqeÕJ¥bMå¬w1ãóq`üBœË’¤nöàÀšòƒÑf«þ­Õð†LýÊÂÔÌ;zë2átW û 6Ñ’P¶”,î3ØÀQ[_‹=îk±,YMJuTý:ZáÂ'’õ®0Û­kê(ÔvãL}=ˆfÉx«Ý=£Pt^i^xOBi[‹»G˜ Ù.iW Ê&lʼnî±ôæGŽM©²¼5„Xž§¾SS¨@ÒÜô'ˆ¸Lo.êS¶lqì?FãHD> Éy­Àï4ˆ„Ù9Ò¦@í.n}ðÉÞ¢*²š7¿Ñ‡†Û†UÝt• e%M:‰ýø}¸L Š\,‚Ž¡9Á<’Z¯ÓÖ>è ‹›ù$¡ö°¹á…räægpúDc~ÒD~b¼¥´ùAru›¾GR«üÀ¶>´0A¯D!BÌ×VŠè‚^°f-HAm+=&¬#yBBº@›(ötG!jÈ ºÿñIÌT*ÿìl.],IšYÛ]ivó„Tƒx¡•,°ïº±­yó„M²Òá R'é~•â%’Noˆ›2Ò‚“Ši$²ÙôFº_†õ”¼$xV/fÐÈûi⦎:R7öP޼'©N¤ƒ>˜@¾Ô@ã”ÖrC·áÅÅÿB'ñRºúP¢ &eݶ[kBE‰®€aäÉŽÑŒ¡ šyôöFÔmÅ©[—n£¡¯`ê“Û›‘¶Z(n]BÕ‡P 0weg!Õ%×o¯§jNÛ2Q=ÕÖê:¡‹ç o’wôx¾&øØýÉ/9’=Ê+ânH«{,DB—¿#bÑ­®yÈ´Ýw3X,IÎ t %£€öÑý(TŠG;¶¼PÏq Í© ¯v§i÷]¹òj˜ûÀˆàg-§þ\$õ-uÏ¢rQç™üˆ$§oÁôñÞ‹{z)õ¥¦¢e¢{¥ ïãt%¤t6Ä €r­ Ìf-‰Zn#j:â …?Ý#%Š–7ÂćCu)Ð[ú›”ê^Ød2ßdè­Ì­ÕFpX…æ…M£§e¨o3õ.tN„—;¦N‘ževnzßÜô6ñûï¦Úå«|á©ï}½åþ‰Í¨@™Ú".÷ö®›?ùÁO»?|BåË~~‹bßeøA<Áßï»òý¾õ Þ¢ Ç_Dw³™Ò×k‰œg‘ ËBNÏzèw¦DI¬\{œ±¶ŽÓZ¦ËùùÚ,êZNÌrV©¨Å¹W…~>»îÁWGîûPÓß൑ [§Æá”0Kœ'H¡sóŒ¡ÐG8›~8Ž” ˆ$à3 B(xù™®á!’Èʤ7nŽ7ƒ»mž×ã, N_8Eq¨qjÓùpÆm¸µ³š~y#äk>fôʦ÷á_è±YP „ ž¡(Ãg8Ø©•”Žé‚¯4É-¤îyq]†ˆ±¢ß”¹ƒt({¡9Ìž™šæ0±¦§-… >–é|+ÅÍ.v—å»#[ªòA¿îÂ/µô­Õù ²I• ¢¢¦‡o8îLsÇ}E.YSý eK<á …¨ãÓkVÍØ¸ÉQÛ®›ØNÏá^êÎWÃ"rá‘Ç…87[Ndš¬€ÖtNå³pë…£Û59{­®ÂÀz­ùn½¼9MÐ^T¾ÀW@¨FÌÕ»[î\d7H>°_ëžÞ®-’* ]¼¸sj»½hWQÍ$/œGÉ!÷Žö¦îÇ…ñºy$¨Ä­»úÝ¡ ê«‘“v¢x(“"Œ3áÑÍk \…eân&t[v°S‹:¾,gÓ !‘©ÝC†‹T&q[Ì‹HAä¦L páÒ…/Ò"ZKZUC{éúÅN5'0¾bNîîÄÁ¹ ”GPê´]}¤f¢ t±±…é¼ ÿb=Ü£³‚¥òïª™é­ ‚á媠­ëï?xÿà ó»3QO¥Ó `t-ÑO{6̸©]41ÿå§P¯ÿ“ƒ(G^=ÎyåF¶ûLg„,X2Ž=tFËÔ½·T`ê㊛¥F ¡xÓ¹2ä‡Ä±Vjív¥»ˆµ Uj¤ÒpÇš•F­Vià°–]:„d :Âa3ö;ˆjpÞT/AÍ«PÝ 'TB/­ 7*,šjÜnU ß ¡i%uã Ôëc4T ñ6ìb…œ9ÁºÍÖÎÞH2©ø@gª<ºëô3ªÐûc«‚Ì lê eýÜ<‘õô¡‚5Â[Õ"~òõ¢=âÌòG±vøcMFšëH¶dd6¶…g--fŒÿ%Ö¦ð9&ãFñu*žøjåjÍŠqѦ®°fŸiêµꢺh .êûzÍ"xá;^*Y\»)»m³ˆK6Å»5}^©Éݤ±^ éëÚLî¶Œõ’Ì"îÆä®Äû-#§ÐF)ÜU©r™=P”úÅüWÑO¡ø%ôª[M2t{Åž›…ë ϪjAÞÆx ­‚ºÉa»_²¬…]Sêëz‰yƒB¿’aÀúÆÔçÓb_OÉE‘‹¡÷±0ô$-r‰Z$z.ýY-#5‰%w·åWÇøÿw+(­ˆñ þ¾ þ5µàÿZÓ\,ÈÏÞÊÃü°Lªí»GZFÜ0¼! è9UÈê÷×ë囦ìŠØ¿ñr*ß,àÿ,}A €^î ^]^ À“•@8ý°hô*GÕ°-Þ'–^î-^Q^À“K”|,êžcWðJûU¬‹â ºíµµè:cÆWØôf¾U#€¬º^¬·R@/©©Œdc2Ž^Ï/×è¥øÞåCeÑè3ÿØ:¨Š­i>†‚@ó,ÇñPœ5ðV…×¼ù¸W Ñ;àÃýǯQ` øúšþ=Imún­’§ö/ìcxÅòCúìþœ'åAØôÑŽê×jímç´2ÅÜfB5Œâ ÓÂY,`GÚÏÞº0û(ºœà9/öÕÙ @ r Tý5wFÜd"ìÄ[I}ÂíX;æÁ‰—]ÈêH nalï"ˆó¡Æwˆ§úk`å˜77ùÞÜÔ¦¹É3Øh"ñ§óÜ)uÇ„ƒ ;ƒPj£oǬñu„¢aô~=Œ…¢rVŸ”¤ºùËAдC­ tÆLá?ÐxüLcÄEçFkjÍÿK~ÿq£Õ0áÜö~Bð—¾…J)\׊Óbëðšl~ql;jEµ(Ë33ý¢­Êê2Ž ©jž¨Z’b“P—l±Ä?ûaö}G²ƒ‹G;± (ŒUÀËŒu„té–ÿÞΈ¥^úva„SW§µ ’6 Oüq¨Ó&œqð¯ßjÀ¿©;x•4H¨j^ćî°fUÅí kV5`4*I-JÓñ ó#ÿb»×Á~}ô³OìêqÁOùªûìǘš†eAèSµ#ÑAX â›yáZ‡M{ õ!l†U%b­e\1¢~1ßêY™\³5¤„i2®'iżVõÔ¨W˜ü ëLþ¦Õ&ž¤)³Ÿï‰/?]_…ª3¸ù­Bñq´ŃZ‘<¥£~>“Àê˜74VÀêXí XýwØ-vTõïÀFœ²ñN'  ošÚ០PTH·ÙMcrð)”4°Sk7sÀé˜|æîßç­rãÄÓR׸ÄÓ‹­ñ tÅ’T}um;¶¥ÿù5zrìɷ׬ª®Xþoêiuu…ëµÄ׬ŠêÕ?Á¯JVÕ‡+í‘ö?Ñ?Õ¡t}„ÿžXÆ~ _`Wbþ”Ž·=þ3‹ö«>äÊ Ïe#Ï~F-öÃ[ë³æªÃÀ½ ¹*{HÛìG£Îÿr“UöÐâ¹~- ;ügËå‰dÐJ¿Zè¥öT‹ÇÛ¼fêJ?£úPÿj{a’ðä¶'¾¯Ýe“‘VÄëNBщ$ª5¢fãI'ñZÚÃHýú8û5V¯¯e¿ÖŠÖ&ÌÆkåj\Û Ð@¤X»+–­¨þ½Ô¬{@'`|_¬„¬’F-X©«n½å‡U&A$2U<'^0Lk@o`?ÔýíŠe4æÏ&ÀlîcÜòU+ÀýR7 ±}ø ÑIoQL¯ÀÉ®9$á¾7,äGÏRD¨ªHQ1‹R!Y#K…©êˆºÂ3X/DÍ ü˜!^®bE²;„çË8 OKÛ´’ºÂ °¾`|ƒ7VÇxŬTnú6áǧ©cŸŸ,!5 Ädmz©¦·I~þém³¹'Öb¡WŒtPPf¡ ’n¥xl(,Q(/‘óž£ÍBc”ÞÛ“··AÃWȵÏáöúüÀ-òÊÀS¾'W¦µºg ù(Ä ºÌ×B$`:ßSÌãÏ¸ê™ ‘ïTшŽà§g†?Ð/°aÕ†Èz§‡î´º‡0X=)¯úi^7¨{bBœv”‰=°X ßÌb.xþjô¨7>åðQˆd *ÀÖEÀ]iC#Ã-äFÆPÒ“‚ï ŠŸð%Wó=™ÐáÕžPãE*ŽÿxøØüñÏæ¦/ßûz˽MjÕýºÄR^žrá•Ͷa+…jØÃ>§ØÂaÿ:J_ÏB>ä:·ND„ø@´ý…CøD¸býÛIþ„~,<õèýŠ#qQE¡Úÿ%²³e*Múß~ðɦÅè1—8wz´}ÓÃM»ÎÌ:g=¼¸‹ âÏ;ø«O¤îç7f°•.OédOi^“Â’~ jQAo¨k‹‰Ý•ú^+Ó'½q±—ò}Ò5ªœû¾ÉùhÔ“/ˆ }ybÅïâçü":ôËiŠñJÆY¨æ2¾Èûk ´pÒ¹;MüO’kœÓìõY¹y^:ƒ²ïœ¼»~Ëfsß²8Å3;¨;Lr_"E —Ê„ÀḺ$í‡3ú%Ê5+µÔO®a–#FA؈Ýý€D±»Ûó^„È!ÐicÜ.KBØ4†R¸ ÝÙ„aÆ5AöÑ+QaÓ~»wøàü矖i¯Y‘]úq eŽoþñïëZ¿ CPù^zn&:ÊÆîŸ›±ê¹ÿëÊV½ Æ`s3÷Öo)6SzÝæRå€)iŸX8öˆþY˜?öÜn6ªC~X'i)0Â5ˬE±ÇQ%Y™Q@QXÈ =4DiÓý¤ÊT÷…¬vLv*…tŒËâ6̾ÆGt]¤§#Г\*¹ ‘iI6M'¨Éþrb¼Ý6ª…´ñÌ7’Ækí*$™Ãd\cbåÞM×ÂZ'žV\Þ(*†gÀ0`ðá^;úõõ­/=ß'úþ¸ Wõ®Uãú‡>4®XE*WsÉó6s ßHµ/£ˆÚF²½°}CE ÛÂ̵l³Çù-bäÅ|Oß.f޹iŒ/EP!šnׄØkJUöpfïƒÓ3Îϳ'¼÷¥Ò˜ñ¡ˆh,jþh¤©ÍÔD¢@(ºŽ¸¿ÌÑð]6K¢Ò9æMõ[vPê”g¤í5lm”Æp –ºR¡A·ý\mLGøUvab ß74°•ê4‹Q¥hÔºÏg0Δ&;¨µÀŬª«À+ÞMÝÝy÷SC½voï¶ù÷Îï><ÿžšXûÿpåfË<®p££ 6-§Ñâœ[ñ§WV.ºâ­Õr }eÂWbž¾k•¦½Níeܾ˜EÐÆ6 ]\é§xœ¸àL²RãXFéã(m”>£ê‚»•õ•g·ùÖUê¹Õl“R«^J¥•zŽjö)¯%Avóœã¦ªc•#܈µ7ýMººº¤BTWÝ UßýÔÌôTÖ(ŸÍ vBR]»××>gµ)—"²%Üú”‡à¶Áè€Rû±1ˆµE⻾Òüë$õB1öHX¦Q[|Ÿ<°~<(åßj¢Úd(Ÿ¹.<=“ÈAi>‹j®¶¬¾Y”®OŸWËêÈ﮾-O Øë$“Ë8! tw€/©‚¡dE>xŠHâ k¹\Ý=ÆÊršµÄiîì<\»© ²¶9,>XêךÝ#NÒ=vó˨¿BU ²ˆ:þpÄDñHøî̓#½{,õ—:«£ìÆ6”î}htêbej}”4Í‚$¢ƒ¯8šhGèH¨Ó=ˆMb,FÖV‡·`Q=Š@"T:*Sçc¢6e­ÝtúOв󊡖6 ƒ¥Îïp¤~O«F÷ܖç¬&´ 2ßZý{‡–2BaKÙ°6|lÃÔS" ÔòRÞ§&ªlÒ–›4ýænJ÷±GÁ+Z°|Æ#NÎ%ÎH'b‹ÕŽÌb$a£N†u²µº_«ävBo‰ã÷ÇΫªn=ö’ÄþO¾c Ô§À›ÎjôÄÙh1]©›,f¼]â Îè#¶†•:oyéª_‰Œ˜I—:˳î~ cÛ’ŸQœ°*NXõ÷+ 9¼ÓÆÚÁªØ’3†¯CY̬á 5Êð-B•ÝCð;DÌtåC^ÁØã¤A'a —³^Ås5‹ŽôÄj½Fè˜b©âÚ@½æ"ÆOFz¥lÁ³Sƒ.°õÚŽ# |Àå4sb’ìWæ ÒQ.°¹>¢½—8c#0,.w0ž®ÛÄX¸n’D5Ÿ„“1?ÅȺÔaÜ»ô' ܘ)wßÚZ§ñ-*¿÷˜inoÍ+¸­JjL¾z{+Šg‹"‚VÅET[+Neš ‹˜¡ GzÙÔ,unÂlœŒƒ®£+¥ÇnoDÉF þÀ­ƒ€Æ:âþ|â@¡á”äX Á¸3B/L@ F9l¬Ž \Š‘BDõ)0Î.c¨“dö66s¦Ñ=ÒöšK€—:¯Nxá°t¯L S¯C§¢¦3äO¤QÂúÄ…âã¡×ñÐØÀiºíZ.”ã#ÉúC$7?J€ ™ÝÀUYëFT ûp«1‘¤š0È|Pð)­`+ü ‚Ç÷`5øz„å˜ÀfðÅ™S9S$×—§³tBRËSˆò]Laù Ž%f P¶<ÇW ¯”AŒ$ú¸©mIå)£{Kè} ‰þÄD¤V¡aEßÔé“ÉÜä54’š7ùíü‰käÄö«¹émsÓÓXrú垀Ü{ïyÿüg¹>0…ì½éõóNa??øð‡k{x™©)lú³n’ÁCЗéÍsÓÉ ìÌü‡Û Öûç`,ÎÌMBÇ?š›Ú<7µêæõ­›¼¿ù"”A6€:/›ºˆÖfë·ýpý`a@D‹å¶a=ü<| à¨+eµÕêÍ*3Æ1á Ýó‹ÙP.V²±È~K€h;„³Š=kÿDû¦íâ >?è›öOÉx;´ï÷}ôýþõôã4%îÞ5.S…;Y"õç#z÷³žãú)•ßLó°—ï»&ÚÞ.&zvÅDl¦ÜõÔÆJÜIÖ±‘ç#Â{¹Ž B ‹œy w÷á°é§T¤uTˆíÛ…ÆšŒàVZoçÅW}D¿×Ñ’øH´û Ùç±ß›øÝ?óýþ"ú 4þ 4¹Q|ÃNZlIí§(qIXü±YÚMoB][Xó°•ÊlýpõôGŸ.æÁ®Ñ›3 „•~±RèàùçsGžßñhÇ®ŸgO ãÁBxà ³þ~ñá¾õ¶lz°å;)°úG“g™uáóPÜyxùì£O?š9‰n¥Ì¢*¶>šÖÃî—% rL â±N`Ñ–_(ˆuAY„á¸ÞÄÀ ÇpÁ%NÒö`‹S ´º©‘̉²½lOà=^fxé)HU`rˆ¢šý §GFðGé¸×€ù^=5­9•´ìB·§¬¤eàÆ'@LöÔp†'”—i0¡à˜?0yFÊg¼;A¦¤:†ŠýÅ^¢P”¸›QÓ´’«%þ9Å»gâq'«C©»Ûh_Ùä_ßBë¨Öô[’cW ©6>ŠÌ;4}cwÓç5µœVÔ¸±ÞA¦«Ýœº±¾61~c£“@!gáÕšcýR©>)cƒêÑ×&”d;ê9cðî„ UO8¡;1æ¶|¶Ö¢±ñ–¿Ä6¼6á5ºg‚0º¹§æ;4ŽãŠƒ3lDËQ„VEˆÇ×Nïw¿Ž\P¿­Xc¯Fé~aÁ ˜U§ËcúåIÐ` ïb"'ÌZ„@ž9èÄ)"-b Eä–r`Yݱ›6†´A–˜A÷±Èð ‚WÈCBÒô¥j”sÖ¯‹h}äÁa{¥+i‘cÌ{XæDgº«ˆÎhãì…ïf.c‘”C°±Ü(s1„1ÖPfc„ôªÖ8gÍ»ßôóœ5ä'&s³Ô¢-®iz NŸé;çïœâ¦©ðÖ5²Ù½Ì Í’ *FÝHÍaÖÅr«^¨ë½JÍMA ß9¬³Ô­sw® =òYrùά]·Ü]vÅôhH–Ô«sX–Ñiì7Ö YÐ,•sd¼¥‡µñ%²zf¶ÐøÐ+}ZØz÷}ì«L ™9cgÏèõÌbGOóÏ»»u‰CvÞ9‰õ¼s‰‰½Ã³Ô·kPßVãÝ÷—`U§1*+·í&“àÜèàÈña󱄺±M•¡™«¼¹Y8‡ÇæÖsë¹õ?’¹59¦ËÙ[‹Ý,ûïþ²bùªß+‹êåŒm½¹›…."ÛjQKÕVÀÃñ„|wè'–´G-›÷èg̪æÖåÛ[aã¢!Žñ&7µîõ†¹5ŠË¼0Ziå`u¼é¦nE ßÒKܺr›2³„f~ ŨÞa—# —CKìUšùµƒWwý¦k‚åöJ÷X Gzj½nŽ Í |ä›aD•¥'½ ÑŠésS'eÙ Òâ}#©‡QvÚ”‚Ê ³XŒ¶op`ó£ |uTÐ ½L g¢qóŒ°Ñ6‡É/" q=7X`MJ×gìBúIºÁ¾ƒnÄŸd5:c¼¨Ì·³äæTÖpš¬äÜ,ššëŽu¨{‰¡YδìæK”•4¿º`äˆÉŠ—Yh;’ôòH‹øŽËö/’%>’–Ü‚í·Ù"ÝAÖËs uÏñù«;$‰Ë€ÄcÆÙsü§­JNYMÁ]‰iA>ˆ@Æ)1t·KÂj–:ø/Té7FÒ1ÿÕÈÄò:‡Ñ$d8*:ã°»ÇЄÛi:í›»»Ç’4kgð…ZÈè}¸Úâ8F÷`kqÖÝõüŒڤùÐzÞOŸùhQh /¼øÓè~):¬šÒ¬¿-¦ÕeFÐdRvÅ¢+t#æM/òñô|´/.’rH_ähùqlCÿ™5bxØq³açmêxUk¤ÎÍ ;,&µ—.u^MX u"yN÷ ôÏYƒW²¤áA½#qJ]oºaho‡} t+ï ëø‹>¢Ø¶Õ¡~õV±ŽÙ,ý§çŸ¯¾ìÖ0‰ê-·ªîÏšZÑg>´dó¨Æšoq‹¨f–ÀÚB«KV"¿24KÏ_ÉXùRáD'+Zõ•d\¼¨Ï´EþF¯_ÂJ×èõíu·'¡{Ó·Nóþ*#dÓjšU±Ã‹±Ñ}¦ôñL` N‰LŸT§_ ¤ "‹4‰´¯Åƒ+€-Ë ïÎðˆº¬Y|÷l¨ {,ô\nÐ,ÍgU]ò;t£Òå0Ä®3R`ÈšÝCãhøé©ÿ <â…9AÉRw©Ãöºn‰Ú'í¢úát>TƒÛ›æ:‘ù#h†%L÷š‰ÿDfŸy^ŽÄš~\¡ÏÁÀv'…—‚™ùtÀaÀæ#!ˆZÁ÷ŽàŒt¦TrçkÂó¡'¦Å0°”GGÞv¯%N8Þ½4 ¬S³±¶º &ÌÑò ±¶Eé‚A¤Ÿ“ÿ´5f‹ÚI¢2ñ <ƦţÁP›ä`q]éæ›cÂ…}MòíA6šQ¥jŒÍºPNhþ«<~ÿƒÊZpQ'>Y~C„̧ÛòõVÖ¡O˜ÍžnøÓg{ÐàpÓñ=מ›=”o致±ÚE–c»åb`†v‹Z ¶Nn׌Á¶›}°Z¸éÆlï ˼kô–î=W™šŸ³GTÞo(+¹èÈ^jê(Æ´ÚqÖ&êõkߥYvaÅ¿ëo –Yw& °Ù‡Ÿï*váâÌÃ÷éf]œ;¶ÊN?žuVÓFŸ„Ÿ|¼[Â!æ?VÍh(`¢&ÆÉhPgìk%) §jpi]ÿ<±“Ru³O?Šë©Óð@>ñI§¤‘×pƃžA "ŠäZ,Þíäêbé˜g¹ä»nGÿ‚|™ë»Tä°î!ëû–Š#OuëÙûè£î»/éÎìd‘ý td½Öü¬CžóN’·¾ýôïþ]|`CG¦¾;‚­n ¯–-î÷‹¯‹/™rØàÍôÃWß)Ó äxÞËJwø+æöï"Vþå!‹W¾·Ûf¼Sn>fÃD"4IÁ†tN ¥Ù=°s$»yeªAU¶#Ie¾yÞÞÃ÷/]׫ìeÁÁdÕ;fÑ‘cu‹Œû§¯Ý?y˜?¶kþƒÂ؃mùN`o®m`™÷/|öÃì{¬8V¶e÷YR(?Œa’¼CQéPŽ?–UÚn‹%q7iš†K”aˆxI¥U—¶¿¾íÄ ‹R±?®ñ„µ«õÄžsõa>‘|9aöÉ(LžˆàdÔb}÷·2’è=ƒ^8â†pø¿ƒK¼ÌB£)­ñja¼ŒÏp ò(M"þ³{°¸uT¤^m„T&/c°šÔkò ÍD‚çÈw„ÄËØ5*]7’ø˜àЋ·.‘÷…[‡n»½ñÖUé˜0QÃ<¢¬²D}V÷˜›û.zóíÑkðž«›Fxq¦¾ÈÕ,#ôvÌQ›úvFoOðB£ž2›X¸m¼˜€¶"‰×T‘šÖPC0TÎ 7qceR¡f1ÕjJç÷…´— ^Îà>ì®’fãíõÜÉumÏ£nçï··‘Žæº21ì+Ê?Œ+¸Ÿ ¢u-o4ŠA~P6kº‡|ØÔnšÕ¡ˆ›$Ý+P^TÀ ¢b7ÄcBŸY2Ú=’W¢V÷fZ¡ù. ¶ð¦}àGq÷ˆ2™xÓºùQ§{,%\v>µJ&„/3²‡~9|Þe¿µ¸i¤ì!îm98å›cŒ]?uqnzÃÜôÝ BÂpÅ+­|—k÷0÷XP<þʇT`—²øùäŽG»·?øp¯ ·ì}øÞ¡GëµàU«Ü†“âbˆQ 'aŸ¥ì#0.˜’ }= •ø7dGaÁÔµõ$ò¡ØHÆU$0ûÝáƒù˜ÃþïWÖ° q¸'"æY£ŠlŒk–|hE­ô‚mÕ‹}]ÁDú-­Œn¼û&`É×1Až?pHÈ¢ Núµ;'µ¸Wã×¾yÐÜwWÍ}Ç‚Íaø6ŒmÑ”ÈÊ~n'~òîfv‹Â舵œÆüpe×üÖ°Øî\‡ÖÑ—÷fó_웿ráÞº¯±Ä¡÷™ý´f%±ä4`ˆ5RrL#% &ÝØ3"$Fö}™“87wÃpfN4ÔotuaÈ ºÇnlkÞ{ _¸¼P+ëY3óßuÆŸ¹‚3*A>mò äº6…í+^Í'ÅiΑNî0búYæ`g(ö²µüÓ‚å‡jSãØÎRTpžQÔu6»Gà)hùÜ–¶{¦ã6g-ÿšyèk©{ØñÕ|ˆ™ÎyKh ZQ¢k•lª4å®UZ¿¢™vXôŒ?\»>¿éÈÜä7sÓ¡ó©Säùcvnêãù¿›ZW<>Q§G'뢓XU|Ÿ ›Í]HîºÇ‘¼“Øò=È–óç…Õ³tXñ8ǶcÕ6¬Ó8úhÇaJfüÃý'M¯{¸oFq•éÑî÷}Ù¯΢3„”¿Á½}¾ŒÑ;‘ƒZ­Â1`h¬Vød'0œyé,ŠyÄЃe€äA«ËZQ¹eS!‘¶ä"i{PÔAõÇß™d:$¡Ã™"½ Ó¨àó^©>1ÔN=ù¢“Tx¿PÐϳJ=õ*=¹'g©g7¯ÜXûšî¨Ã¯v<1^wÓU!ðý>âñc6m‘h N‘¤H’×If÷‹[‚#B+óS¢Éµ(enÿØQJò•WVXëO%íW 娹%Ô^§{=Ì©Ž!Oq…f‚O.raˆå_µpˆ¨IÀEX«Eø~#½âvAÐR»c|¯èö_‚ê n­cg?‡¼f©ËØ4àÒZatóZ’v`”È`<§’YkFÌ}Ü("ä³ìÞ§Št½qxø¾+ì¾6ݲ¤èM×è%º2IÍ®+°[”e÷"¯ï¾·ëĽí¼¾ƒ÷Çûãõ<ˆwë‹wg/ýpiýá„ùi÷ÌüìWó×6Íúl~ëúž‚Öaí’[æ zÿ§É-?\ÝËØfºùí‡OAu¬,öå§ y/€Ôµ©¸m`5`©2ò&ÚøÞ;Q;­$cï´ÜX$ŠÚR¥Ws¿ ÁÜÀx­á´]iÕÝz«ÒDýéÚJ½»~½TÚIËOj•ÕÙêW‡ýØsƒ`YÅ­7MãÊЄß^V©eí¤ÊüÀï8¨ÔÆ1ª&nÐ?n–ŽÔ+õ!6§î³_^:‚Ù*޲ᕼ|[ZÖÿ ²6ü 무’pŇ¢Yê-ƒ,øœ¤‚=÷°Ï~°¶Ò€ýœD~ ƈðà$©°X* Õâ(¬¤n\kxiE„'au EÀ‘¶7©Å.:©  ×òÝ q«í k@·*I»5¯’‹‡Pr:œT_lиTê†o·`ÐÚ0¦èC|8a—ðò-jãV©GÉpÂnk6ܱf¥QjÁgÁ‰³6­òÓ©ŒÕP­D5Æ«#ÿ6–Á?­ÊˆTF긞*þ0ö³^Á{ä÷íZ»ýü³µU7maÌ:´í¨bªµ¨îUB/­¹ð9Ãrvá§_o¹íJ˜ÔêôlÚp„j:ôÎËӨרŸ ]i×|öÍíZýÆ€VíûÈ–³‚­¾SKHåƒÓÆõ·kt±ý¡ûk1šÅEWÚm¨¶ ¸{AäÖ+±G}=¼W# ÉLz5DZ¯¦2iµßaM$ù¯ Ij‰_I2ü“,ñþê5ðx‰+8ØpLÂ×½NïÀµ+ž7˜9æcIÂïÖvüVe-ˆ)ŽO»2.ïܶé8NÙ¸¿¸ŒÏÓ*ès)TYËÅÑðãwþ"¨Ô|˜ŒVó_É’!†j¼R”ßJRƒQC¶n?¹: eëÏœÖÉ i ¨œŠÐ?;-•XN/, p2jéCÛ$(&oè&ÿͨ§¸WK4T”rEØ%FOùƒAUyÐVñ (¬¸³‹tV„HRÔV¦Äâå2"-I*ÌŸ9-O‚"‹g¤Ëü7n<õh´|à”ZÅxBz-ž8Õ–zQÚ?Bå†t\ŽPs±AM×4}@ÙÅ‹‚¾ËPR2Ö`þ )¾Ø]:Ýã܃ú‹YÑ辈­EÔŸ?°3@´ÁN}æøèóSANz[®vBè—µKzX˜q^µ<9ÄÀÁù!~Â)"‡Ó8KÊ©+òwc™ü)j‚“Fü¢óFÌ0;uäb!½´H¦hçœzó4#Jg’xÎíq>In­®Í„¾ Ù‰UPµ±ÓK¤†ŸŸdò‘Ÿgâ¹¥O€q¶ÉÆ´â9ÇòÓNfЙ§Þ'ŸHiË.µ%Qâg¡¨ÐÓÆOœ‹òÑv:Šu-ÎHñ,NJ1mt^ÊsõHþTg§Øü›ÎQñOSñ›Ÿ©b³'+O„ó•ÿb§¬œ_©àÏyGhk£‰§¯¾æ^”«YÄ¥;Á<•ź–g³Øò„ÅÏiI–Äi-F Ïl‘™?¹ÿLP$˜ ÌfÿÌȹCÂ…f³ƒÙÁÀì``v00;˜ Ìf³ƒÙÁÀì``v00;˜ü#˜j+§cê.]“&UiÜÓ0ª¿ÓÊP´µñZ€:u`Ÿ½¯ûµ´:œSw 6ƒÝ&fÏõ˜o¢–bYúk+^µH•H ñU†‡/­4âhx¸â‡>Ð\¬!©ŒF^¥™ŒÀã­(j£¾6&ÕZù6õ«ŠŽÓ×âs6ìÖÒ,öâêªU+ DÍ ¢F¥ÕN«$­£ÕÀZ¦8ZãÅ­¿zný/èìõ0«´cRDÇQÔæøµQžº‹Alj•÷I-ö¼°ýN0Ä{PIFܘ«—[nœ¶¢i¹¡@Zk׳VþÂËÀÃ…ðÁ)†œÆ¦:VÆ^lUÆ¢ ‚ªæ ?A«aÞ&@i7$¥îu04 G‰ÿת¤óƒæíl8öÞåVèT¸Ÿ”kÖG†öcTüˆjÃÉ2ÞJ ¯¯Úý¤Õn·ë•`<\‹ýªzÿS] D°–T€¥ª5ýƦ½=Ö€¡XK.];ÕH·íc­ôéeW}R¸W©Ç¿¦vzÙâàí§¢¡VYµÔ½J€ÖTK5™´1ÛUê"ò›V×Tª­«§ò ¬”´…šX(,ø–Všá†ÔêÐöJÜäRC(·:O Ï5¥ºSl~©‚ŠÄûjû矉¨T“(ˆt" âA©”–8±j7M¿Ç ‡öˆäC=2""ÔpHJ„>HévY‚¸ˆgAb¤¶N#46Í4':òI6Ã|`dH¨Ûiº€{žÿ’vJw§)‘$[@‚%tÄH¶¤v[/¡üVzmx)¥¹NÂD…œ~‰Ec>jDM޵hb­©fdNôˆöÝ^`>0Â'ºª‘?1ÁHE3D EÙ¦Ñéú‘ÎÍœd¢{°…·Ï4ÐÇ7ª{ÏOtÏ'¬Vå^f±{~hHHSÕ9üfý8 pÖ`Âàó'Òx5óiÑž#×QÒöSò¬‹)>j‡Q+„›Éǰ›‰ôßñŒ: bDøÀù9n›RîC˜¾K|-¦Øžo°ýçør€áMù ¯jãk¨›ñ››š¡Bsë&éCç¦?›>Fzã3Ä~¬ù¥þÊÆ0æZ+÷Õón›Ü57½ UÙèûi³OÌoX?7ùíÜäÔÜÔ–.ï$e5´ÿß>7ý%•¹>7¹enj³Ñ¼2õºÓžºŒ-bCûç¦Þûñ›cs“×¼o}27yRH˽ •áS›æ&7P[ßPz/¿Ú9wÑ?[â]{; ´˜xµÜ\sn¼Hªl|)Ÿu ûNÒQ¯Óšü‚ÞY_Þ˜Tƒ÷åÚ>J%>ú~?«t7d‹wf„Æ|ÊæXÅNjr7Uý)ûÙwï t6<3”ò‰¨pÿ*”îg¬>µÅÇLéÄ™ßpíË™¾~WAÝ¿Sø7¿ ?Œ¸.\°Ô.¤Ïà²-SçcáS»Øq„ËûÑö™÷>ÚpàáURØ?üü,wç­I*/ÚÂo¶óóÉÝ?_ç<˜9Dúü­&>üôCçá¾M蛊<ørÖyxùì£O?š9 -9ίƒ_¼v*{ࣟ/\AS'±k?¿JÙ´ «ùùôV§§ŸnƒuFGÝÀ÷ Ç5gAØAvš³ÏÈ“wí¼ÔðÈb ßbì3œNMz¸ç, H³(þY²Ï†‚.ÁÑɺpŠ W2Äràœˆ@Äu&<îG» =m:þhˆvSQ»á¸nPwšYˆ6Iè|GìS°NÆmÃÑfx,…p¼å4ùº‰ZÎÆÊ®ùÆq‰ZQŒAhmßœÂäwøÚ 1ýrë.¤‡9´ÀfÈ~ÁÂÉÉh…öp Ä K‹»:a ¹Á&/Û~=b|ç ð_Œ2âtÙº‡Ô˜v–Óò8¯‹|dv­°³ºžþ)y'Ýú×p„} lÞ6pß±G–8©°oX€4L!Û.ï4”ú¿dßs¶,&Fs.ç›{ã^Oλ¯2/ݘ0£c‘è¤ùÒçîF2‹¹sÉ!_ÞWTlïkw=Mö,Sw·N—Éîå,Åú>Ü-ó@âw·ŠH⢡kèÂû<ë&šºÌ.uî|LÆßÇ@õ˜FAë!>àƒ‚»oø&9,wfµq1Ýn DJá@èfóæ—Q‡¹»çExDú#ÀÑŸ½y-yðæ—ÒY6^™€É!£… EœÄÔuÐ^i”"Ïë‘Ä„r`‘ÕÜFŸ¿º—q–FïÂ+wwr‹œ«Ú Ù™ëkîðú ¹ÞžÍÍFUß„Qàó±ÞY€v ñN@ßIlgK…lßI“…¦>XVÍVK"7WPJ~?´¨ oÜóÃÕ½?Ì^b r~ÿ³†ý¡ÕÍ'~¸üå—ß>û‡Ùu,::ú¶>~ðþñO1¸úû_Îð){l€°^ÛÅýìõ¿ø6÷úüúóÀ”ËJ˜näæ·®¿·å(öDì:zþF2μw÷ôÊMÉ<É¿`ËnìyëþqÝzÖtõ½gº#B¿'»Ãƒ¢ 7ÜÐØOëvCæ?üö‡KÔpª>¡ï'ðͽì?¯|sK/ÃIµ‰ a q'ˆrϘk„7§L[€óN2œ¶ëìeẂ=Œù!¹mHÑG «ïþÕ¦ZŠa‚C/=kÆ-šêv³–2_ß…,ö,0]=íY´:úñð»ÖŸvi9SƯýæ–€‘¬/aç@KÀ¨È¸ n,a*¡Ü@ä—†‘œÒ]íÕgMµ…iRzŸ7Á ˆ.pLÍîA¼3»a÷˜ÒÚSfÒDX>íÎêj{–…ËßZ o( RuYí¿ Ë«a8±é üOnOÞ:u{]Ý=êÜ:ÀáÚÓ¾u‘ZCyß³Î/üÁqŠ@U#iõúŠšÃ:aÍ( õ;¼,åžñV»{(†Óµ{^iñyƒ!ùg°'ÀŠ%ê6/ ÆmÍȉšq†Aeõë¼”ÛÌG]PWzÿ⇠º@(ãCªL–·†pÉúØ$|’¯ÛœÄhhßü}nêÛ¹éoï|rþ‹éÜõÞÏH‚ßÏÿu3Ž~œ'låcqówÒÿ?Ú½ýáô$üÙõóé«JÿO]¤[¾.°ùaÓ¼àK‹…¯¥ýW+%‚•ÒñåJázÆO…„ô-É=;t£õs*XÚ¨'¡~ïW¶7?ƒýAË.¨‰P»íËà×Í•ÁU‘*?·rHù $Ïg³‘bx\¢`3ÀÖ gröîe$ öÑdÃ’˜lßÕ¯ùÒØ¸lpΦ¼ `³62SIÎùœeËÀd4oøî¹6õ‹ûïŸ3.îÝí݉l)è¦k_xAÚD´oP¯éÃòCü!Ný¶—h&‡‘/ƒ.‘MøsÜRoÿû팡þ—Æ®2!Xœ«¸ÊIö>ÍØNÓñ¶n9°º6‚©^¨Ù -¸u/”‘¾hšŒ{&Qßcš ¨~Ó}}©~Pý (¬£uްxÓGÝÄoá–v«¢q–Ѐiþî›o¿ûvËwßþîÛmß}³ÿ»of¹!TðÝ¡o¿;tå»/7wDämßÚ¯l°OQÇWV/{éÍS°’ è^Üæ¯€T‡í猎.»I· ØIpSÿï$ÔrGuÅÿϳë~¾rViüoÀ‘u}¥ë/ÌîE>Ýšª~Ħh_ íþ+hÕô•^?×3ùzR±ç,öM™/×î¡»×—K­ò·ã)þƒ!'¡Ÿ¦š _-K>AkGþÅyÃÇ3Î7ÔøóÇ>ýáê'æÔcŸÎïã=˜@ -—½§Ôøš÷Š6õħQoÔ§d"œ¸MßN>D 8Bwê±)Âo!ßeS€³÷åî`±³õ—˜ ‚Fš,•Ù º@ü¥b}©Æt½pÎgÆ™òÝ'4¡·'oo»5Ë¢¹ä•—9ûìfAoiîqv g\½É.fâ£\^¯T¡²ª{n— ÔöÑÄCùT’¶T 8/Õ’äÞ£)i¾ÌŸBœ(=¿4ᛦ“yß²î™_MŠÂ6+dUÏnÛ2) )ÌŒ´ªŠ|{Æqƒ¦´Ü ŠpkÓI:$} hB»CxEl*-vAäFºD©]~<<7ùùÜäqª÷]È^D®õ ]~| lalŒRO%‹Ô#­ yIò3Òè| ­d«Åû–å}*S€ }ä™YN'??Îzx`‡EÁ@nPJI j…ù‘HTEÀ)š²|Ô––g×Õ…?Eî5È8—vÑ ÙÀ;gîN»¶á™›tFÉ j`ä™"ôOi¾Wˆ}G`¥àFžˆN«='h¬„,·vÅ%U¬CÁ}† ÕëYDÈèÝeø¨M„Ö–7ê´qØ)?/¢I`ÇíüÇ[ÙŸÖo»µ'bÅÈ;’Ü´‘ÿ`tÃîK—ŽvS†9ȵ8Âýç—$¦Ô@õWR‹ý6zÞ‚W«IZ¯¬âòÂ<©ÅžÕ½Q·“Uüá.¢ßÀÏæ‹ ó À<%‚²{T ¶kKÿÜûÚ½ÝÀc}q3¢8ò>޾¸>Äçà·BUú˜ˆžžÒÈÊY +de€¬ •²2@VÈÊY +de€¬ •gY!¡ õån‚þy™täaájú”¥(æÓ•¦ Pð`+5e}Ú„zdåÝVµƒº}³š>ü'G[z;Šùçe #.}:ˆ1&Gxd±O‘ôÑÂ&ÊͧúD=›pLÃmy¥F.¥ž+Ð4õ^%a'¥ô©;²X6êëÔ…±Õ¼Ù£Ðñ†¢¸žØ[ÀVk¦Q»àÙ‚§/ƵŎÛë yƒ¸ÈÈܬî §è‚穜§û²6òÎ.<\iû‘uÖtÏwÏnæ–8¼X3Þ=ßîžÇ[r ù¼Ê`åd ¯Y ºÈTE-8Q,N/ê¬ß3½‘î? NÓsÓŸöéþ‚]«ùèûýÓüŽÌ¾Ë ƒy°í$:•œ<úhú£‚‹nŒ1 ²f‰› sÖó¾.Ô¬œ]$?dÌϽ-~ӗ׋v´ý4³y½€10 þ^»Ðõ‘¨Ü F÷ ̱öFQ›7 ±?6–8ƒ~ 'é0¾lsÑæ»ý5ÛP4ëNawóédþ gXÓÃcÆÁ­?}þ…Å]†‘¡Ã4£Ñx’úµ¦ Ì¯#ÅÐ`™]À~¬²/nû?ÅãäÒö kiû^ài@Ë”æ`+^å“MWôZS¸ýþœy ݧÅÊî¡°‘i¸Ê*/ð5HåÏ^¶VÇLv~÷åÆïVPÉØS8ÉŸ»Óî‘f¤!$¯ûÀÕèðÈÔiºXh¸†ßCÛe;ù…ÑÀÓ[îÓKܼêúu¿e !08ÂAV·Ñ•€ì$öø »å¢`×cÍ»úŸ£FÎG„–‚øÇŸ£Z&@Z­4e:ò!§ a5*´ü SÚ±AŸm±¦fgïmúÀ6~š|ïÞ¦ÓºŸ·î:#Ò ¬T¼JבàÑ}BƒbõÒ0ú7hìÀYÇVSÑÛÀr‡.N-Å;ZtÆQ‡½¸ÞðbüzðŸ¹uœyܾHÁP.âŠì ôh¦€¼AA‰ ŒÒB¶a|I{]Zã'ˆ x3jFHÕNÝ­wÙdý¿¡à¬ºˆ ÃŽ(Hõ1Ö±vxu—ËèºÜÏ7Gcüæ©ÑÔk¡wj›(ÿ·ÐeM2±äùm!›Ø.7ÓO{6ôÌõ«›x#”Ž%sÛY¤`Ú΃o?ü|kNæ…ýXáûñæ'öA4 ÇÅ„©&kkãâ l‚ð« ÷—7k€ 'l/Û…^cWÃ.ÿЉ²çèRÚAyqí8Þ¬#7ÆåBî"P4æ`Ô›$û7X! ¬š9G#µôò"+–Æ+ð%…5ñòm*Zûÿöø+ŠDFH›‘.Ç~FGße8 /q•dÖuVÑNä¸ ¤B}!€jóCl+?½s νuèŸoÏÀ,ÛÊˉŒtÁœÿpSOw³DÏ ÐWNØtì´÷u;»Ï*Žòè³â"”ÖÔåô= pEF™sÚË6¹m ôv2Û¯.H½´ðˆõÒk„©05¦þç SmFžªDeüÚ@œˆSqj N Ä©85§rŠ5.0~¿D”25mü#ÉR¨ «ÄQËÏZ•á8šðÂêP64§äpìy5¿SIÐUI GÙÚV”F•`‘f”¥•——¯^]yíí5Ëÿµâ…~£åVh†ñ‘k~:^IjY«ÕiU€M­aŒúPÔöaÌK€ó«u7u+nŒáÙÓ8 +C±ÿnQ¥æÇµ,¡pË•ZÒÂÀè?-©¬t½X•¨Ui»µ–V@¤id~XåQ+I¸ñX WÖEn\¯¬Åð 57¨ n­YŠÖþzÀ>¢'#{«ÿøÇ…EÉ>U€bÕˆØ úÚ‘i´‚dlo¶Ž„W“p™/ÖÆ•ÅÒú1"h•É(Û°ÖTDn\q2ö­;qÕWŸ áÀ× pÉÏW ù„ëQܶ—«R¨(ùÚ”!»å )´NE¿pµòßrÍÊÀ¸relcýŠ«X ­eñÀW´è˜X׿•Út¡ÅzcîøÀóÿÀóÿÀóÿ?’çÿzˆóå ˆ—‚\L›Ù¯rKWÉ¿ÕÝMè8éÎ%•‹—£N÷ 3w†š¹¬¹¡×ŒûVäT6™ì~{ˆMÄ–K8 ÿ½ ›Y §c.ó{оP“îWU5dݪª~‘S>LÜe0?K˜¿ÓÄïà;ÏQÓ^ò¶epçÄ;¿ƒ.þÞ†ÿüÉÇðV)^ÿ"¿¥AÀ£ûf«xO^“=AÓ¾.ª«e$˜ÅXê,Ϻû½¸îµÐ¯kˆY80‚ÄAø­âô 8WÏO¼>b +)âOjÌ"8MR'kÔåf‘yt͆k wþN@˜S2Kl€Ä›ETkð£üEòÆGºÐÿU‡\ö_¢[GY\v!áÜ­«··ƒ•맸¿P pë¸èÄ»~~‘E Lj¯%M Öt•ý½½Íá`ÛfŒH.’ŒÅXy$îWð¢Û}Ñré)í¦cX‰¢#5 žî0!Î8¦ N…¼çf š± ·!žp«Ö#( #Jª?€zYW½6ÆG÷³ÿöÈ(†åF pB ¦%"|ìøµ²,ö«x+#wœŠr”’¢v 6Ï7\×i£ÿwÖ¼‹×BCg¼™@õô“Üô‡|ìrÕ†6°ò/(Mù ¢17ú-8tbFgh<øxaˆ>ž0^uØËÐé}[öu¼“…žžF5rGú4p@ 9%2ÆÍ¸8"¨JzóÔÈðUº4"™=\,‘!/ðºGâ´ãÁBBZ¢ ºè+I‡¸`r0qmЩZB)B¬ õéòË!A­jx‹V…ö„Õ”2ã£ML–¹¬Ÿ:†qÑ×M*§ñè.þ+º¨rÈCV…‘¢ äþpùø=¼Òò)^°Eh7/\ð`Ïú27õ±¸ðB¡×q}pv‰{¸ð{¶Äügßï_GBÑz&o×ʬ“â“CWhX˜t¼KC—bØe™O“v ý¦›iúõTÊêI>Ï)wéÞ?Ÿhu%ϼëoµ±cˆ\$››²[;äÿýó‡[ö.qœ<òh÷ö§¯.És™\Ä„ô“ëð*ôé£g^ß(¾‡WòßmnÜa£6€}ìPPtˆÌnÿ8nÆyca°–×§}+c—…$C+r…_öÔ±0)äÃÝØ6ú/÷n½¨cxø¨=AÁÞ¥ÃÊ.yr¯§9TÇ7Œ4bIÊ‚ÉSàxáõ $pY·Dw¤.¯†Ÿ^b\a2˜ô¼ü>«¹J_O?¾±ykŸ—Ñ÷‹ðõëÙûè| ów~½àÞ\ï:¼5ÉïNáõìFû7äÍ}Ó&QõþîliY?¨OŸèo·ÙêŠÆ˜KgMÀ‰rsœÂ¡_›¸±¾gºó;šàßÓ*kÑÅ-þcŒÍ\Èœ8×0®Èø˜›â³¾žLßç¥ìDËdrÌš§X2æî›ø¬JHB—à=¹‡‚ëò)v@vÏÚ½#$‹Øzó{›Æ IûÉMõ2°¸ÿ» OçtKMn®Ã¿™ÿqLæž­§Éüâ$F‡Ò³Ê5Ç€¸Wé;—0îüçÎ)îÉü,ú·†÷·±B³RÄ»sr‰éœú™EÁêﮣ+`'¹a:$§b“d2uMD¹Ã‹cúÀ›þÅaÔO‰É«¸v×Ñ ×q›Q‘ÅeâëRŒ“xó:¿oާè-œÒ3ªŠÆX‘ü“7㨅·êн¸gtÆô ¾ÿΧb@Ëï¹Àš6¨ww.!_âw·S69yw˜Ýµ»ÓK;_ ‹xô/œÂŸcm…ÿN“¡™š¶xð^~¬ï~ÊZžåïð$ÍÃøïKt?¿vÿêñ.ÿýþ‡€…ùi×éû“ßα{þã­Lz—z¿zâ‡Ëçq˜3ïwvoËþû_OÞß~˜ùÿþ¯+› “ÿue3{¹—v‘±>¬åû‡·Ì_ù@¶ó†ùÞcð€„ ±ýËûúv;º.ž»ܽçÞ'G¡ó'60P“?öò8ð~ñùeÒÙP3ÃW7MgJuîz{ØKk#-»âÃ!\ã!éßÍÜFíÄn½S‡ctØýnæ×_d^ÏPC¨ß‹†‡¯Òòã8ŠŸAU¡®MyLgܶJ,:Cýt†z5}(å _LuÃ]¶œBqqPM$OaÓ)brã¤Êß±rÄM¬?Ð4 UŸ`¡¤i~F5gaÔò¾Ÿ¾Ÿ¾Ÿþgú~’v°H¤ì[o¯|Uš‚h;JSÊÐíä5yö²RÍ­ÂϽ¹Û«wéYD>¨™DYNs2’* Ñ“ª %†m88·>ºuõÖÑÛë(žêµ[nOé- ŠÑû5¢aZÄU¥¢žTZÇs ¢C[M•}¼AF„NÏ #ÊJ^oŽˆ5ç&©øÅÚ:Íò›}›Vèõ¢½ JU׃DXìèõvÈDøÂìƒ ›L£zA/„rŽõ¥®™Ö3ºájfÄÅå¡·D„jùwe9ѵuŸ’ô¼¨C©±ý‚ÄDhò1‰1Ñ»Ó6'@šÞ›e Ê‚‘; ö÷žL{ WÉÈòƒ’Õbca-: óId³nHò«%Œò%2>Á4Ìg)d‹XSlóEH*“2Ókæô‰M3ÊTJÓÙœVIÍ!ËEBšù©OWp@^„qkò§†Iié±iÿ¨®ª…ü8¨QKe)Bj@&Y©F°Ho8g /¶Æ_™t6=iäDÝ^Lêð:Ä q¦ÖR‡U…õœ×ë„„øu<Ͱ“Êqfš*Œú—¥Èn³€ÐöxÎ¼ÎÆ8¯©{¬C*ªÔK8ín~”XÎ@d–³µN˸N5G¢ ›Jê/Ϲ֓ÒéÆi¨iÊRâ³Õy|yàÛ6M?c'OüpõúÜäÌÜÔ *w&?¸¿çì½™ýäíëû×Þ§ØÄ3eGñ‚×>œõ“ô©ï÷]2]§å‹Š¨¿ˆ@ìöõÌ(þÍ郦Hà öN³BEsžTO2bñgšæýï÷o£bû5µ//¬XÈàušþêZ©“µRfÃð¢^ƒ÷îúyö¤ópóÕŸÏXâ<üzòç“><0ùðóYë‹ûÖ—G×åë³xN^³‰j–±bÓ¬¬à4©:¦ñ.HŒ—ðö¤M mÃÝ=Üèç{»Nü0»î‡Ùoà`ùñ멯_øáÆþ¼¿ýð½MXÉ^Ø|‘×f5ίÛ2r› »‰µué‡Ùíóë/ÜÛ»yþÃÙù+;æßÛƒ1: mäý0Tü–Û@™,ŒÂw¢$ßu;nem#¨öðŽ[où!ÿ-l%+­,Hý%Ñð0Þ³gh£‘%¶ááe¡Ìž^z^ÞNZ›¸!¯³:äÖš8~<ù 0ùZ§}"~Z ¶»;/-à‚Ä¿…áwOq‡&?ª¿ÞÇвÕ×óæÈB€—r Q¼$^^xIÜœøšÃƒT¥áäÿïzl¸—. —Ž‹çq-…‰¿l`Wè.Å®¤½Â„¬ž]YéxvDJ€Ö&Qƒ®sP”Ý·C‚’ vqTûCŸP½Šü9è/&i0uw²@’hõB‘Àª{!DE× 9„¨Ä{žzZ(È€ªŒ\6PÑå¸Axå~³×jV¢Õ¬ ÙËãQ‹Ö¯ -©ÝÑäÁ!Uüd{øqŒÇ2ù®ÀlÕÊmˆ5…h‚G,dyo˜Û5:˜axÚÕƒØ>%AÙ`Â˺g ¾Ío]&Ðå¿¥r{#>"€‚VϸûhgìþòÁBRð'/ŽÝ®:—.©žË;þV \–ó`zZ~ÒqG<3Ò£#n€wÍ\¤M7È4§oã¹>gŽV ÎÊL¤q÷ ö Ħd¨ÊT«àðÕpô·H|¯ƒŒÐÕ²+üVhüþñƒh$1=ÃÌAuDük’»×‘,*%Ø)!2YW>Îäî°•ä?Ÿ]÷ૣ΃f~>w4«qèø­È¹q"væ¯ßbQs‰WÖ4åƒe5NX•'_^kÈñÄÚ³*fZ'MÉøu6éЧ&þ–OÜØ]Ÿð]}¥–Æ_£…%וê9»’_„Ès/¸¹r¹¸“ÛáèŸÛ¾¹¯qûžYE›HΆJßÞž“€ˆq°“)”œ-çüÆÆ ohPù§hEv\³¼'$&ì”UVFe`9[’ó¾Ü–Ù ,/¥VKœÐmßܽ”îØdnëÆ6qG1 ^¾¼”‚-q†—zÍd©¸Gdͦ§ñ9š™Ö-y©s&–¾¼”!àxöðs5iÃzð Q,ÄÌñ–6–Ò0^Õšõh,,Ý}’ÒÛë–ÞÞ¸T`Ï·.ñògooÆ(tÿ¡és6—\9»ÄáÊâ?£€?/@¹—€D;Þ¨×jÑ Ñ»™çBr »ý*:oY^BÝa-uù)L¿¦…ñ÷.Êв߂ÕÃYÉz÷PˆUøiâAKPµo¤KÎ èO-FÍg¼¯ˆnÃÓY€çGŠó»v°”AKh¬1ìÝ+¬ìÀ›À»÷÷¶‹=ŽŸ%0AÐLp݈3£6 f¸†êƒ@z=³]dÈsÂs“Çç7ÿi÷‡tcò<æN±¯XŽ¶Þ§‡KrW¸Á°àu" NÃ+ülAv döá½vìu|rêáç»øÉùp߇üðtJ!Û@_À°B8BÕa [¡3±y2E `6²›×b· åZ™oqœSrèJ:ˆ[¶û¥t¿LL:h¹…Ë}.ahn¢ÐKœ‰ät2»‡f€÷­£[(²¼‡•¬ÇVèw¡s\Úª3[ó)fí~½•=Íìí«ÂÃÏ{ ä°¥-ç `‹¶—âé ‹½I¶ç®ôfWDgàˆ¤­ýFÍ 5¬1‹¬ˆ®íÍdpš¹V§™§š°Nln ðú¸¬Éf(ÌG²ô•ð!b×Ð舿qi}E„õ-‡CìA¼”’€9o²ÛÜÑ¥Dý0ÏÔ0ƒf‚w’|% õ1K—ÈÏÀ‘ódÞ~•á£×8(zýî´c‡QwÚQRú¯+[¸¶eþ«)øqûá.½ÏDÊŸ¶OÎÿ¬µVÁß|§þ¦î%‰Ady/Ie6ȆäeÏ«ˆ¯nàÂN½ ìi·¡vED2%6¡K¢$É‚ì*š¶\i@&:J©¿nÁ*a°Æ*9œ¼0b)†›7Ç]˜ö²á–~tØ ?Ë8&a߃ÞAïÀ w`Л3è¥ ‹«ÙY”‡F÷A/Ø%2vÖ2n:u;#ðO-ü%žiÝ#-;ØIT(ÑZRèæËù,¢2æ$Ú‡ýýö6²æº@¢u™énák,¬öñÙ•Ñ­@åë&I÷ qÙyp²ÑG(Œ’Œ–îvëny2\£– €y6=™ðÁ¼c"¦¢yd1Ïðv:HwÓr®x¥Œ—D²vºOÀqöä󛜇[ö¢`µ~osé¶¼“°.+¨‘e³è„Ú¸+hQͭȳ ‹*Æà,»$KâÅq(ÊHãü"sGcùrn ù7×@#”qî¸D_êyP.ø«¶/A@ %F$>}xhÏkmöhÑÀü`1Ü?¸îþ™Ë÷/ï·`~˜}è}Ì>wÊ „‘î18¤Æ‹Ê‰ÒµmÍ—dzÆê/@‹Dè‘x |P/\JøÎÐi*#þŽG³ÙvkM·Ä%è´—Íf¯¸µG™§c `;ƒh2íÓÄTÿNk¨ÚÅö³Õ­r£ ˆ”¬:+=Ýz4(˜Ú<*—\>@Ÿ*ζá×K£Ö²ü´ç … ðlæ ¬ÿFäÚ ·…¨ÍгL#LD´–D-·aR»Ê­ƒ‘¦*H-âgA‰Ig¹…f‰é%ÈŠˆ¨1r<ýfM"—³ýøêØ,Œ&%¶@¬Úž–‹¶ô|#ÉçáÞÄÖøéðóµÙû>81k3~Ä€S \ÿ QŠbŒZz™yˆØeÿ¢ä/hÊÈÕIô U´ƒž÷öt™ …±Lï õÀÕÌ ]c @ Öndîü¨‡š¿ÄŒÐVI†…%ð”ÞöÎuº¯~ŽaTÜÙ€Ž,]Ô˜b½Þ²È¶tÑQ¤……(Ú}bçbÜÉ‚£å<_vE„cÛ²oc¾,Q%Ç¿n²` xãgEöܘš…Íôî6ÃNsv±~~ëúÅåñ÷½?ÿå§ð¾ÕÔNIÿöÀGýÜ…á%C5ê-nÁå¶ÛzþÔrý° ô=ãÏm7ô¸ _ZHü(¬4Òæ²*œŠhýÇr:ÃÉ2ãR}£{pþÅ,úø›~Ê%–úàXVEw6躬*ÐVi19ð‡xŸ[{» NÞtÓñ¶+>¨eaZqÓjÒö+ ¯­ yn#ðøŸª×‰‚ µI"½P G¢Xµ‘ù•¡¬QÊêõq^+´œÆQP­áŒ+µ¬ñŠ•úP–T_À˜´~2A•Pé°*u?n…¸âE Ò¾šWQ= r1†ˆi *m¿Þ@KÉšÔðæz¥ß[ ]¬ šÁ¡©¦èO0tùÌ,«âµ•j=ª‰ q³º‰žcW[n 4¡{bO $‡l>Í1•KBþ")Xü3Ñ:¢ž²%Ô3Î5ØŽÉæ³êÖëb1Õ`…„‰Û‘e(ìÀ2ñ@kæ2ÔæÚüjs ²¡æË—:®wa̪¶GÐ }£ÝX†ÿà÷²˜ÁгçßyáùÜcµd08ÏI¾¨ÌkDQ-^/„ìOÚI[ø%i3‰²¸sîÑ~a¥‘ÕFÐ7x»â‡í,å=oy©KžïÅDW`3À¬FjæXk©þ ÕxîMi%ÿXó‘ï›0Jýa¿FÔjÝõ`X+Q\sa±…°žãñ*[zãéH$°ñ6+ =n…š«W[>.™p8ªÀI§Y»ª×^I`)â¥Jê†H_[iÔŠÆ‚*Ô«¬…eÆœ’3¿<ô¼,·ÑxgXV‚v¦•q¬} q°õ¡J; Ð9,øªG%ÐzÛMõŒVTÏ`Ÿ ÀÕF? ˜G´Å’øqÍ’Œ{½˜:–¯‡ÍoÛ­{ÚHÁœÂ@$a³:ÿjúÝ"Ê™_oX¡Ø¾Œnzh]î¹M3l¹ YäÞû-œü¡_4ûÉÍžõz¬ÆÏý(¸Uù‚ 88 h~|iò5Ré(5Rø*ÒÔ±j”ÂÃU$ðc•?æWQ¨äˆÕ›)Ë4Ž[½>~èÓŽ^óóñAèt‹ ì¬5ä±h&óãÙL„CZ$ˆ£ÚèEŽŽð ú±-|ÈÈÃ[$Žp‘ÁrQ"jˆ_t¨Ëó´^Ÿ®s¢Ã^4?òÅ3Ž9ÿm?þõÖ˜s2FFcŒ ñázš"àÖ¹7—}îÙ…\J˜™½ã¬ƒ¹QtÂÌQl„¹‘3a¦Ka&Œ…‘eUÛ†Ô—„á0²$Û!RùP?Õ¨šÔÞš¨³#½K S¢/6Κ¨$bPÔ£bS´4;ñ(XáWI1. g_òËUD>!V&ŸÉšB*ò<1ÇÍXuZeatx²;rÓiLHÓXŸ\R*œM$~ç˜!‘la‰DgŒDh™{$#Î “¤´Õ¢âŽTaçÙ&ž\Î<ƒÄSTo;%f»>$† „µ*fç¬Òì4)ËEf«4SQèrÆ«X@_¥:&“´H:Œ!“O’-ÓRZÚùkcÑL‚ÉÙFvMìÅ´åN,ήýV}ól½Bï¬V+„ÂÀ a`…0°BX! ¬V+„ÂÀ a`…0°BøGµBPw`„¦ä±n¼ðwÇ_ûãû0âk+›zk—!,Ym‡ „Å’Jâ…I'§ØÊRaá­…UÇ%œê Ètè×~“ë3‹‚Pž–ê«wÜî—ðÁŸ7-YP¦OœÐ§OÀžlsª•Ò©T€˜˜Äg #X·B·B·Bϼ[¡"Tõ:ù¯+z M³ bé#ñx€JÚ~GžV·}/Ð}ù@oȰ»®¢; ÚneX“ÖÜ[fá6Ëð¥V÷PØÈ ÞwÚ^àkwþìek )ïûx÷4‡*v¦Ý#ÍHó¯óºÕF|;’$Â(ÒÚQ WLõï"çôÖ‡ûfòÑÍk®_÷[º39ÄAPp{ƒÚJ„€K¡Äv³KíS z=Ï?ŽpØ‹ˆK·:¥s×ø8ÜŠ#jƒrH1­!7Øš+…iîÍÎÞÛô ùiò½{›Nshq%·ˆ«"=çbWs‰Ët¶¬-苾¾s°Š¾€óˆIÙ°âùŠ F~W”Áb{A }Ÿ!mÃä„XTM;§*Òr0ƒÚBE<ÁØK¥hÜT6¹¿ÝU*’ómVt‘ßoE‡úÆ+JÛæ\P 6·¢Åÿ¯Ü“E±VßœV‘5·KË|5è;¶(Rš[×".ª=lÍÍÜKzc»º·ˆÆw¸Mc»„ËaE?žŒåç¥ËoóMðÂóÊ(œ¾‹¿¡Ys·G€» ׿Ĭ¬6â%¿…ŒõÏýræï¢@{Ýæ¢à…>Ü©¾ÃÇqa‹B5êÂ΀·”…ØHÿV‚P?Ãí×KÃŒ Ä 4ƒž1Èæ]õ ££+¼ŽDmÒ­Ø#ƒí"¿ªçØ!Ç}¨[š®RƉæN¡/yçÎiÃÅýÎZŽ:.X§{µF3¶y1Ô^CZÀ^óbXKY½ã7?lðååüî¯þž”‹úKžù­¾òx5LÇüZ3Èàí¬|lÇ­«·§™ÀÛ3ôß\â¨dýw.HYÝKÜ ‰)FÖË”}m™¸pÜ2M òj#?Í üˆŸŽ'ýÅ2«wÐg´Y TÓ=ÒˆauÉSÒ0ÖJ÷`:ÃÞhàI»ùÑBÁÎ|'éøAÖnËOU¡ùw=wjþÃM?íÜr÷¥E=ûâû}ŸRÖÞï÷m¥Ümd±MDM™ÒBÒË·x€{J”*9¼~J„99¯ÙHÁãeƾ—Ä6œ{´ãˆóóɽNî-‰ªÆF!‹RŒ@*"æC¶aMìØ*in«”:‘mxÝì5/†ùpŸ`p’°}Hþâöwd7Áâ±ËçŽè6‘rìÔ—áï)¦/ë;JÛòe:æ"€Ð8Àj§è ¨,Ë ÷rA½!wPza' `Q9nþõ“¤ž+­6c‰ÇZZ ÏoWóLj…`xž-=©%;i,ˆƒXnW€WÓ–Ày¦äÒIs8BuZt¸$n•¸@ÿžÊwÙ8§~Ú³áÞ¦篬›ÿà£ò°p;ÎÂÞ¿òmß+F|8D1è.œ*tä¬.n€Ç¿Ñ89½€züMœ «M„t³ Úi%Ó\I‰…è$=_¡Ž‹äÎ t:{N›u- -Iz@%½Ú)À&+ÔÙá…FÁ"tâ¢aY¦ü{!”7ÙáPœÙËi½œY¥ˆ»›)€™ÉŽz¨æo’È[|…±›·i‡eÑ’¬ù‚³­½Ht~jÚn3p0ŒÆJáž8$_¶z¯üCÐâ¾+iŸi؇Å~@?ègý<»Ð™¿ÃîÕ’œ\¤æôÝ̾›×y³ä<¨òº–j¹ŒU„˜m{tqŒ_—)…4Xd[Ñ1µŸ¨cÀɸ §x]^ª2€ˆØú‰r£ Þ“çúŽ4Ý åNP´YM3Nws SWkw©Ð°÷lA‡(½-•Sꕃøgß®GÛ È€ñYú• LnæE}q‘ªT¤/Þ¤šÕõçÔV^ÌVÓX¥µ).ŠËòj1E9ñWÿ7¯Qצy*_•y‚®=Ù®>е'íÒÃ* á9hŸFԚׂÅÁ‡;Ê,’基_†u8¤ñˆt‡ºßð„{β‡QCl¨¢¸ù²4ÕóÓŒÂÀ†òíÐy :P`q6BéªdÐ?¹a¸ÐH¶êÐ%ô„b_KJ—I¿Æó‡E¹r{+FAàóªs{Ó­ ´Oݺtû}LØp{3J¨·ÎˆNÉ"ø÷µÿ1Ý.Á.¦—‰öu/IE¼*1#ÝcèäŸSâŒk·ïŠÂî (‡/Âû£®Óöƒ•XÍî¡ÄO¯$¶ ¾ÔÌ:> ¹ÍiŽò×R/·ˆ¿ÔÕˆzÊ?/ÌZÝ#1#MA¨ÚТLŒ­¦ÝƒO‹¯{¦IÁ²ÙÊél:MàHò,²1oœ T¿EüšïxÚ"æ[„fbf禮ãeÐí—ç§?˜›|onjÓÜä™{»Ðãñù_a$’©<¸•“Àï«Hù€Û˜újnêðÜÔò>C/™[-¨à"„ ñzë÷ûféžÃ,%îq¸ÐMáª{U‹þ`ûö‡_¯{43K¤¿žùùÌEU‡Ÿ}øÙ‹D~ãxÇóã›ßÂdøè0ƒÅ¸ÕtâeoD,s·£H€ 4-úòa|_Ñ+xŽBI»ÃCžÔÙX›ä΄s íŒòú~vö[¢ðûá_#š³…Ü;tL}w䤈یrýAVÍÕò Yÿí¡äæTÖpÚøp×Fœ‰úèÝ76:¾Aý É¥f‰ç29^Ûâ¾ÜáG;¿Áó€p~éâëÈÁûîœÊw7g6ÃÀÑ»[î®wàĺFa8ÎÈó‹ES>£g³L¡ûY;v;.ëìð‡Gö$!q¾ˆÈÖÜTœ.ri¹ôzèDP‘>º&üÀ¾I€ú÷À¯â÷À!ŠÑíY~O§¸·ãäý“÷×}óÆù·â;ýÁü¡ ¥€Å»w@ö½³?\ÝvÏ,“ÀÐB„îYh^yé¢ßDã:»²ÀwY«åJÝúéÖ2ÃÕ¤ ý×>þØ¿Äþà‡^Õ6¦o[r„A”—%6®¿²ˆÁíåc‰ ‘$2€DÈ@"Hd‰ ‘$2€DÈyHN¼î<)¢<9 Wº7à o%¼UkVü°™ÔܶWi0‡ûk7Ì9iHG²ÖÐopwh‘büã$=]3Àö•ôéœA¹\ÖfDºíeó"ýk~‰iޤ÷_œgiÁ]z˜e³ `–gf ™Ãîâ¥#Ü d}ßz}CåQßxOmÒ\ºÜ™f;´ ·“ÔvvÜ%2¿vÖö«:ÚËüÆQž24Æ|En»|z¬Ue…bÌòæõ•î—´«ã.‡æ¦ÏÀrenzíÃM:îòÅ÷ûß#™àòôyéû}ï3‹æ”åáç³fN>˜¹`»’‚=p h1¾=ÍC-f§-Ý ÙÏïƒÀfiûýí‡ïÞ2i!/:¿·q3íÊ6QŸËñLê³IæšÅÀö€Ï¬¬­¸x"L¢(¬xM¿áVj#ž—˜byÛ óÑUPìë´…ÿ¬\&dÔxµ Ý1þÚbýÿ^„Ìø2½QƒM ïË×¢äà–æùü ÆX¡¹A§pFEŒ+šW²Dé5¯ö"jvöõ”_èg¢·"é@hà™…zø#ù m`.ø»¬!N»Pâp[âh£&U#hABº_Á"ˆóÖoÅ=9é·¾!bòÖ'¶Þž²z×p«Q×漨–t¯žw²ÔÏ[g4Ý™G·ãjœ"~Ô/‹6Ôìf‰´cÔ £$Œ@¸±- Ý Ê#8&ÉD£{¤Ç Ð=FòÊð;5_àƒi`ä?$ÿ[ÓPcßåï÷o !°Mw“Œ(^Ègâñ=¶wK „ëg½7ûàüdB`Ãk”þ2›Fô:žº-7iú¡|¢v¬>7– {š6ì7Ún•&ÅסGìÙ ˆÅcös Wak²`7;—àÏàs·Þ}Ÿñ”°_íÐuIí^…Y¹±­{,…¹ÍÁ °¤áXàPD±†5ìf¯“ŠÊÀ³ŒÝùõë÷>¼ŒåÇÞ?þé½½—l€Ã± ?Þ5¿oËO{.ÿ¸þ+Íàã-Ó8õŠÑ>œÐíĤŠQø9s'‘;sÜ„˜]¼ª>ê¡›þÄo ‘´½š?ì7S‚†â¬á´»_Š íÉõëYC…P½ÿîÅÍ /kxK(DÔ8Ⴠ­‚†Á± §äZLlõ^wˆÁ2Ð郤ÎX×½p©ÃXEA":_¯¹AÀîßg‰çŒùéˆÃ™Ñû¤b„"~øßº ÜÀ ,2}{#ü$šhŠB¾ˆ€I@^á¬zÆcl„wC¡ ”;çWÁ‰ü݆,ëÙ¸NŽ‹Î a d»=UŠä©|_Zù“£«^W¶Áœ$^÷”[‡4›èÃ6ZtfRü$ƒ–ȇ…÷næ·Aòl ì%¶à%«Û^šø.òè0…9†S´&j&N Z×y£Ø÷“ÔµÆ4ySmß…… ’h3 =?uŽc¬‰$ËÂj‚LyÒtáÙãämŠO(Ž‹v÷HÍwæ'£…ݯ3üD8Ðz'’§C"‡ÄòäMF‘écÀkŽxÀ«I&ºÇþßc)ä >N‡l±PV§qÖ¢¸q‚PE HkÏlbßrº,µÓ¨fnê bIÓÛ禿$Øè:HùdéùM_þxøØ‡7ÍMÚ:7¹_žP3„<}»`À”¯ 1ZG'Ôû§SFr4ß9Oë5/N¿ßwM¸_ÝýýþÍTrCîXjþ] ÚŠaÕ³‘rwÑÁ¹[Øï\MÛ+ò¸å}À?c‡nY\yä:/Ÿ}ôÉáG3'ÉÆç³#?ýÐyôÞÅG»·?øp¯<¡?˜ùùÜÑR„ìÆ‰Ø ›hæ“dÍ,«DH A²ˆFýV†¹œ ¸¾X¨EDzUé©$‰Z¬¨+ñq¿f)ÐtK‚$Ž€¦yèÌ€- «}xq mëÕk*¿Vu"¦áA~“¡°nçÉX/n?>½ÄAÃ"2!É຅ñ ô¾!{¢÷²wùR9L¿Ðè%úîðßU<™”‹H‡¾;² À¯Í„rk¥CTé–³ƒÌ›”Ó=ãμåÆ7v×'€´M¸m<çA"7[Àéd7¯Œ§ÍÌÂè7Ð àXnî Ç[¾-ÍkDç™gKÇËÓ l§–Ñ'ÑŸ@$òïÒNKÜz{’Þ{r=åaI½EÁ ±FRu°ø¹s%bÇJKr+ªv |‰Q\Öݞ“ð’¢/rõEÁn€¼¬ß†;³È©kRÄPmäÅ Ó/H—[„>Aoj\%X¹J×/µ€¦ŠkcƒÑO;0–È©Ý<ˆƒVVÌu57¯ùp®9ÞK0£µj#6Ã+vÔÑNo°=g`*\޹hl†¾ÆÜ°Ó=ÖC4Ñj'Á¹Y—±³r›èì§ði“d›ÅŒÑpd{îÎ%âyiÈÐKƺÆç`Ö¹sÁ¹sYqÇ â- ¬óÃì'?}zøÇã×€CþaöR‘aþá*L÷?›ª» _ί¿çŽSŠñþ´ñóù“Ûrl5«çÞæuìh³ThYz|Ã.ñ~»®?¨=AæMpL·‘Œ‡ð.óXì#Àøˆç2Þ1°Ê±)¯æ„ÓgfÃñøˆ°þ¾ÕÀ«o@bN¼£æCF ³bD’6æ&‘gHà¹lnže,·•©ß¸·NróG|œþe7?6(ð×>Dí´tŠø®æ¹ÇhM`¶´·ê‹»x}OµÐ=X,(¿|hê‡ýÜãNß¡Ïæ¿ùø‡«ŸØ®õQÞOßn/—Ùög™-™¾QK€^}Ç–`¶ú¤ZÖ\¾n!fßà=@Í|[yÒ¶ëË,¾ôí_fèÕʵgÅÕ–ÃõâÂ(ŽòzŠqˆ&Eˆ¯°J­¾¬Dƺ=.õ(5çÊ“‘2|ª0D–pFùÙ·kŠô€ÊIMh±µyÛ˾òh‡• Ù‘‹^©”¦2Á?¿´Mù½±êeI%©Voë)EÁ,³Þ³¾üŨ —1$¸é••‹ÐËTH¥!7LF<¯ú‚úUrkhZõ†bZ¹8·rs±H;p ­f¡¿¶’F]—þ…œ Þ® °–d‰W­Eu¤@?L€˜.]Ò¨Š½µ)¼€&¤Õº7ìÂçôjµ]7‰2(0šù5jâW–éÿéùE‰Œ/×çë°ÉöËú ¥/˜…å{9,wá%SZÐX8¼[8úo¶ˆxRéR*4R\D ÷CG-ôEô‹\I—>b@ ˆ1 Ä€b@ ˆEE™p ;ýá /üQªìó®W~u/´!X= 1}?+\”¨Þ§«•^îTžIy6‘{ ÇäØû(ǾMÛ7/Ÿ6ݰæ݃7wçÅÓfÊ"J4}¹{%Žä•uM<jñ¾A¹G½¸¥Þ†G?,—J‡°¹(uãfÇ ‚iù¯5Rbi±%‘Â~«Ü¡™ìá‘–Ê Izð\†uúQÑ?Ê7Ü)mÞ-wÁx,¬Ï£U82»í ^R¦Ž>8Jîs’æË~/8½©Í•Újoº*’-[í+òIx…Œ~O*‰›ÈE±´¯{F#~š0¹:ëƒýÇÆÝ&NîC—}ÅkKoòÕ'MO¿o“% 3K;húÎ3+6%Ç÷öͯ?jyMy1PÛeR ße`n‡X¥@Þx^´í¡òŸVKAö+l¬2Á/·ÃÊd?¹ÕŠ’_±3¡6_‰´gß…E ϶Ë}‹hû²ÄuÈb6h¹‹¹SË„9¾eËä¸7µåd‘áÄ&^P€3wsQhÓ·uQ^+îo«¼V²Ñ훹é‹2Ú»ß"®[ΧAz gŒ0ô–ÌôvL±,â9}é„YáE„µ÷P«"oƒð6o!n(­ë¯8õŸ^è[„x|‰MߪTí'zˆÜ%4ÛÀþVZÿ£;P6„´6ÒBÚ@Hi!m ¤ „´ÿÙBšÉö?îÝ×>d2å9±f57©´tøaÞiu‡ü1à7°L‹¼W5DÕ¿ºAì⤊'•ÛzkÙ–õãüP—¤”ßø$_†l*øŸy»•M…x4äÌgRÖ#7©ï%Qo ê D½@Qïob祽P8ÜÈ {𣳼ķwò«ÃpQÅXdyhAÛÐÞ0¾cX÷ª¯²|bØpë˜e/cò’Ý\€¬ï±/¨¥,~²§6x!ö¸ëxØË.¡ïõÔQñ<  ÀÖSjkÈØþ& ÑÊ€íg4Àa£•ÖÚTKêc,0äñ‰<)˜ïâ½}{uˆb;…ZÚNÔ`ýþDüæ„‚Q‰>p b8>;üó™+yèBŽˆ^ÀX]¶LatsÙÐTza)œa¡%…ü9ùÝácô|NÁb%‰1&†¬Â‡=Ÿ¯W#7iŽÜh¨‡|Ãu@¼)¡<Žƒ»;#¶!ˆ7rn„¤3w®!-ÂÐ)—‹¤^Ýa¿ÖZä‰ÝXâE*‘É]"F: ø::eÚYФ0toÇ&¹¶,ô‰g3‰G-žäTÅ«)¥=e°Œ•Â39jd…gòD¥Ò,–põpl`œ¨Y¢S$k%ÈŽ¾!žB—Ãy$’SBñŠ€Žô•;%4Іí<1,|lT± ó±‘Ç2äÇF'Ë@ Á\ê‡rq!+ µXà÷EK­pQŸDÕŽ-–ÀZ°¥rJ[3YH®qê‹öö€  *Û‚²Õ (ñß¾Ÿ^.7î^Ùg`D9â7»hýbÒîãã0òeúò|?†4– b.ú8þVÐA?ƒ9î&¥¦`|W £ jøLkËSxÁvbüºNøÔ«ð‚ 4xWbê5yF¬°ž#ß ùÌAº‡mŠôDà >¦SãùÃúЭs·7ÂÉ-¢õž€ç)/(«,QŸÕ=ææ¾Ë£^À¨xô¼çjÀÁ*/ÎÔ¹©Â ôvÌQÍùv‚X DÑã…F=.,Ü6FŽŒB/L¼&ÇêX'6Cå¬p7V`ƒš§îkM¡˜1¿ÿÒ½½Gï½·îǃŸè(Ãv ÕŠGæz úîû}{éîÙFJÜ(B¸N}¿æû}{4èaöäó›èϦ txÙðß&ÚÌFòðzœ…aaîQ^ÈÏ}÷ÛP‡Ž~wd£ã‰çúIgà^rÞ¸ôŸ|ÐÞiGõ$uÇ¢1OÁr¬ØL¿,‹ ¹|5˜üÞ(‹U~Z«Äx’ë) ¸`8 fïÌ*øAnˆ#bXºgäŽ ~F¥t5nˆgd~|ˆãÿCeb›pÄäÛ»»óî§!§ûÞÞa¬ƒÞ8ÄÿqW¯æ‰;oÀÄÅÃnM·QÐÊ` Ì #ø8š‰]  ]P¥«ŸÜ‹q÷+XÜÃÈîä!†êË^˜¥^\• ³@äX‹Â´ÜÚtà\Ž}?‡TákàûöÌ­ Ú°Ð'"QPi¸²$s‘I§(¨œôô.¥¬V÷ù9ßiºI–º£.*a½ÄÓ0Ö:Íî¡ñøz(”¦ã-„ ¡µOB­ÙËé:‡J`Æ2Þµa/F=ì„%çã#ôN8!*‡±ÍRâíø7ùÚ7Š©››³Æ{ÁT@Ý|Å Íû>t~>ûhæä£÷w=üü,0ö áЦ£Gi49Éõ‰KÄJ X j*á$„Ùq|½õÐ\‚<"²'~n)µÅ æ˜÷¤ÁÝKWd1ñFŠtÌˈž‚=Øty£"6p=pY¥ ûÈ-W¸ÅZ/ 䣰¼I½ËJ[Ì?0œ/Ï%øâÝI'ˆ³)¤,UÁÃËæ@U6·{ ÉÅkH/µðÙ^Êl¨ˆ¶]xP\ È¡0¡yÑÀ‘½<üïyäÉï\t€AÏ÷º¤sœ|j3Š1g7]¸¿ƒ!ºb¢—ùl†E§ýqÝú.o!ˆW™¡H1DRD‡«ù3¾‹Åè¥60_Ç›Èb5æÉ¦SÌ)¦E³Ô†™P•µV§#èl4 N!Ì B[÷B“i^ZVb·=â×Ü€Õ”! U Ÿ¢§#’¦è•Øü &Žêºu–sÌÁÔÛw€³Cõþ¾uÕ)ýS˜dAl––@6ýHÇ~ZÀ„ÄÚ‰8,Øùá:îcô0Ѱšyn¡B].L0…NáÐ(¢Úã­v÷P ŒBFáR ö£u¸AÃðnæiÝÄ&0q¡¥6`—T3KØ[%ÇN©¾lÄ›Xjäá仨7@qJ±Îá4&º´tðlX8Ñæ¦NÎM^¾EGé“ßðón¡Snnòë¹ÉÝ2ôt£zÒs²Ö‰Çóèš3}8÷£wvUf»¨3„±ñù¡ŽíýA`?ßEmÀiê¼þ·7lPN ±ûÔ—âYZÐ%d"è½ “1Wvàâþ³6cÂM(Í pUË¡ìt¢(–HkÕÜÓ‹ÇÚNwx;ØORÚ·äHŠœg~ǼCæ\›¾ûò­c§ÈD8Î òæ)‚¼€>"ŠWÊ(ʤÈRÔé[j‡úJ¸Q»Vy/,pi ø Âäµc#â“w.Ñ©ÿ</² –¸´'˜Øî‹wi—ªœ—æÐG‚ù‚·>j§…c¹3k~D î¸taà¸VÕüžkóW¿ÐIÉ$¡Šù½;áåù­;Y]yþÇ‚U"¨´Là øñ7Ê–B”/hvsôFµ‘6ù¯Z¦qTk¸ŽãgºÄ/€]A+¿T5XÌú2Ã*ú@0å0óæÊûÙÄ7ý–ÛðÃFOèCw§aS]º»a‡YGéúN$+ºÁ”n*Åvý1'I Ô4ÔSS gamÈtè“sØ2K@ŸBøZÖ0C‡>÷ ¯ ,ðõÛë‰Ù=ÁÀŽ~˜"ZÖ|&awr:JŠ®‘ºHêzâGQèkÐèM‰¾ºÂ0ÒàÑ×"Þ¢Ò=*t%ª… ¢V÷`¢`NèÓ¼#ÕŠ ä,²x÷Žìÿqúªxî"vlòû}3ÌÓVŽW’¶V ê4Ô‚?Ïž|ðÞ— ð\¡éqj&Þ™›õdTÍ:"jÖk©D¢àig4¾%¶ae'qXž¯a㣞Ðç)¤2º_wϱ)´Y_¸§QºpRk¨¹Izœ© ¥.úÚÙG¿<]›)V~§Xì°øy9#ºS€BÙ‰5ÿžZ\€728J„tí /H[,&r ÇæöMîóu!¯ÇÝò]ÜÒ‹U%hø¦ölx©D ø¨ietÀ£Ú‰§@Y;‘HØÔQb ~³©Å¯c5%â:X&ñ»o>ýîÛmß}sò»o®}÷Í·ß}sý»ovP ÇœF ªïmøîÐéï¾ÜøÝ¡ß}¹N»¤¥&ÙC±„r¿•L†S ¢!zÁ~…›wWY"üÀ65šöíz´ýªfä÷)0¡©Ù'q!g”ãß5ìͨ²&‚o \j‰ï¾1­Áh’£^ödÎ8H´Á4j¥Ðâ—Œ¢zqíÈ¿8o´ü‰h(2@,ÆÞ˜Õý‹ß߯“ oLøéHÔÒN®‚ a4"±ÛkÁ”2 ¼e6êOÝ/Ã:œêx²ºÃNÝoø âI÷ƒÀCŒ*jð÷mxÔËQˆ¼Ý3]¼Âù€öYXçá…êOnX°ÝH¶ëP`¡ÄŽiÔ’"êô5ž“ðßô­+··"Â4s{ó­«ÎíM·.Ð^ßÞß~y~úƒ¹É÷æ¦6ÍMž¹·ë=ŸßøÕý7ÌM}üãÁ­s“ßÌMÂï«HÌ€ù˜újnêðÜÔ÷¯ê­Ó¸)AíÃÑgÄŵ+¤Á |”²õû}³¤£¥Ä=AHÄ ¥Ä³ Â}_¯{43K:”¯g~>sEÑVçágèNtiBÜåeoD,n·£6¿jmÿ7mxÍòa¬ÀÃßqC³†ç`­„@T†ÿxßÍÀfÉ N¦‘¾½}¹»aý{…ÍG`€›K£’¼oÔ;§4QçŠ9ÀàÁy³Ž4Ï[î®V‹òPë,Î0ÄbíùÒY†Òý 8¿ŽË:û:Ä1‚žú^Sž/ãyxM¯€vŠÃE®/—¾1t"¨Ã8ZrŽW郮Áå?~?ÎÕ‹‰wZŠúœ<¬roÇÉû&ï¯ÿúþæóoÅwúƒùC3Hz@)?îÞ%îí˜ýáê¶û{fù˨ä€r«ÃeÖ¢£dT[…iœ)päÎYý¨†/õ#…/zåRΕ¯Û?öF<øû}À¿:zÑ׸-èée€` Œ‚ñ?Áh»µ¦ÛðÞÅÉ $c€d Œ’1@2HÆÉ ¿’Abµ¼uIôñøãKÆX^†¼7^ydjôãšT~«]ñ‚vÅ[룣Jªdñ;Æþ­R‚îÙ·=œ0_Cø£áŸÏ¡˜¨|emç7ð9Ô·Øÿ„IO?C0ÔýÀ&}úÊO–p§+¦LxÔá§g³ŸlúôßZ¦˜Dí±©mByâÚÎoeÒ{n›@ãÊnÚ ¬L‚~ŸFºß¶áÜ$RCc” äßZ o(ÃãF܃”Öί†?ŽB¤µ:*cÈpέdK}ñÖé[Go]¦kuW‡$ææ“ÞìŽBtíÞþpzþìúùôUÍç4ÈŸeaÓ¼zÇŒlÙZÑ<ýÈ•ÁJéør¥”Š’§¥ýê9ÊØÈxŠïÇdתP›ŸÁn‰Æ eaÄ=j÷ðœ“è⦆æ¨üÜÊ1…OÍ0ôœÄ5ïnQÈf¿iÁkøØ¸lpÎ`MÁ4s’ß.9ËÏÞÍ!2¤ÕûïŸ3.îÞѹȗBîî—­~s…æ?Bm'&ì"¾‹JÝw)ôFwܯ(ß/T+PGk¿*¨‡â¹½ÕJTkœ<ôü">ä(äÈ š¿ ÙÒlÈæÓK€?_$ßåck¹jÀ÷¿„zìÿ‚å¾l·>6`zªàD@ FX@wOÁH† ÙÜÉ&$ôœ®6ÿÈ2€wAÊ `(E"ETGJ…i% a÷3!K÷ö&‹1aÒd[¥“Så–?â)£zžÕ˜Ì¶c¾D¨ ¤äœz“knuÍIŠƒi™œ¬Hô ³^r ›I'ŠèöqÃ$‚œ4àõ³v^í³ÔYFÙ$tœ$º±G¿ßeNûæîî±Î=©ßš–8­¨d Š3BÂîI3†\˜‰&”¼ÎÄH‡|âÀ‚ÌÖF¨GÝøî³áqì+@î†5Ú„î§ÃYPOÙ—ÀaV btî/X}¡¸ÑzÄxÝáßáØ‡/NÇܾrÔ‹‰QŒLœÃî×u¼0ð#^} T5t (^Ì`>~¼õ ‘êLÝKüFè´àÕîty€åDž´“Œ') ëå<öÁ@·x'ðà'Ð_üŒ¸é-qšèÅ' ¢~7äÑ'×ìku9A’rÂ¥è7×8y† [è»Ø‹Syp8öðBº_i›br=RT1½òÍÑŠâØmà%ªG v‰FÃGBò±$ëÛË^ûÞPÂF$)`¢b4`!µ£1èYÀxzžœA7ºê˜§(]¢–œ±(nò!H–:o¤N¾<´­†ñÚß-Ù½V;ŠÝxÜæRÎ÷øB7£,Å‚øÙ4~똟ŽÐMA¹ªÇ±bLaà Þelb¹ò{ñªwÌîºyÖ³Q°C :¿O]SÊN"£kz©ó }¯ë Þ¥È8»¬-¡/eŠ©n-Íà«Æ±u˜éî)­=?L2üŒ¡ÀÃÑÂúRå7j òäÐrÅçvD,wÙG—ž¦ˆªtܶ •ZÏr¾n0¦­…¨<*øØ,rPªlGâV¤ŸŒ×½P¬^X†R}‹pA}nG^¨L`§úA˃?¬ QÏ(4= #ë­î¡î!ë%J1m)Ž˜WÂdHÉ„OPvæ'‰ ¥ø=ËÄK”O ŒJ &ðÀqƒ¶Ob0lN?B^N8€·`¹:š–,bÌ|ëL ³UóÚe«¾xkyZèÁXâ4Qóœî>¯jÏf´f»‡[ðû9omõÕ˜\ö^îð}ºð " e÷XÚê ÇožZ«©1”7áÄ Ä°%æ‹oŸ–¡Oš#ÑÄRgùÖŸÙºyÊ×NÝ4ºåòÏ7%ô5¾ÖX‡9Œ<°’>ÌTÐôê7?âp¡m¿4>H±nê1*ŽÔ&ƈÐÝ3‰ƒç6­;ö€·½àæGÐs8š‚ÿŸ½kkŽâXÒïúýæÝäuÐx½qb÷áøàõ-ΚXb÷á¼­™Ö¨5=Óãé™ùI#$H$#86q‘.‚WÿÀ^Ý0±a3³.]Õ]=’Œ1^3 éêêºfeUf~•iÒè³Q)(•] »ŠCdC¡ÃiÅ+×ïKcw q½J8 ;îªÜMËŸÃ0À›³l±W`FVøZgè'—ó€³8Èc¢:E]N&² lùÔ"_YæÞFV¹f„`^¨_ãC¸°÷]¬E+):ðÇß·ö^XØ{siäÈBýÞËÝ{„²c7réÇw”3nš Ìæ·4Y,κzüŠ,Sô;j¤@Úœã õÎ@ÉzKf-Ñç$:ç y(d°¡œ-xÈ<¦ ÇÕÇz2.g]ØÅ¸Ï¦˜ì$M‚œ=Yý)üsþ°*Ä5F½<)Íè&ê%žŸÄ(èM ÁàÇ–ÈêÁQkõÛË«ƒ [kãà !£œ<0Œ`ÆÖ¾î·Ö&ú1¤Çó©c«gÎ㯵Ó#kg¬µ}Ã/Fû_l¬_\;~ o¼sÉzíôÀêÐàêй·¹o™ÇÆž7¦¬µ3ÏožÙb­MO¬ ÁÛò ZµEmé[kcõµ·ÖÎLðkƒg°PþêÙ kõ»‹«GFdÁÐŽÁ1hÒ v…W>3ñüæô‹c—xCâ¦K_9)ã $¥LWÅËÁ¶Vöº5Q¡Cz˜ú>vžzàŒ­“?rå9å(d¶¬—~n¶€’C(ÈY®v\¹­ØاÐ9šË°Ô 8ðU ¦ÈJtBRx$ë[~{ªªh0c"‚82ë6SÖwrÖKên&õÚM²Kö tÆ‚¥D÷÷ÿxé:d´D•côcš]Õ¿úã¥:i?áËsÿ$ž1 ‹ÁÂT£“˜«`_™Õ¦¿He9 ¼¢k¨Ñ§d?¡ÅßÀ÷0Ô°KÃ?^<¾…¬Á¼iØcæ‚à*Õu‘Ù¿eâȼ-š¡9>¶_q£Xî¤hê 6"øˆ“ÇÞ³Û¶¨vþ†\½awël|¡k˜{·&c*íå|/6u¥€Ô‚z°ž|t¿ØS@}Y!Ø ? ¥œ ¥Z sÀÕùYÄQÔêö¬rÐd¾€„·­Gõ‡ðÓzÔçTvÆî·fI÷¶XxH  L8‘>ºï{ø>ãYSdzº‹=Öîžœÿp k}¡,8£2I±ÊŽY˜ÓÍé'-Íÿ?rƒhP-˜ý8(’c Å!hn‰„È@)¿â§Ê 1œ% /)IºŠ_ øú›¸LéF’õÜß‹®œCHͲ= FS¤²   <½ÐNžÁ:Ï8œ@‘ A¨çݨzƒk ×tèÞÀ8ùM† OáNóñá H6ó…   ÕºÃÂJŽ Œ‘`Ãòô¢¬ùûó³O4õ¢ó7i0;K$õ¦iN“^5Ž€èÙ©ùB×Þ£2š+Ζ²ÀÿÖü=ÝÞ…dôk1lÍß° ˜zÜŸùójl¡æoPîÿ¨gïÓ/ -d›Åª¸ÂUÛ°æÐg7(m€õðé?nÁG·á“;ó3PÁ§ãÓÃP”0 Íš&«FžºAYî`›ÔkhÓÓ!mä5ìˆÔËZµ¹´uƳ¿!èP„«Lµ,\W»ÅúÂñ4kBÐ[è“ÂHI·†Hµ·­O‰«Po· ï²ÕLW>:ÏÜ™xÏ‘:Ü» .4´è‚‡‡Šs3²­3VÖzwÑ K_µBU8»Â/#MšƒKÀÄÔQÑ< °QùŸÞQD¶L“#˜±½äÂmZ°4ÓœG”8k¤D‚ÄJúìÁØÒa(ôüÒÀ¡g·î071 æZPÞÒÔ¾¥ÁgÆÑÌA.„/í¿ûìÀ L¡V<»:ûìêÙņ¨vù«CXíÍ{+÷&!ópŠÈ£{_- b[¨†åãwg4C.Éžÿ¼ÿ륩Cñ^-è}vñʳ‹ƒØ$Þ±ÛÐ1lô䯽g÷&þ~”™tU ÔI]Û¿tõÎòØW¢Ãõ•ó‹÷¾Y>ÎK;|p©ïtVºÒaÕ­\9°2=]Yœâm‚-Ÿ¿‚]ž¾¾xgh±qEí—¸'öùŸÚȆÜIe#’ê7¾¼»ðÅn!_ZÈ—òåG¾(À;x`€´Ø¦Å^Ôb§¡ZšPl ab¿ ÄÄÖ0&ö¦A&¶†2±m˜I<ã¿ÍÑ+ñߣl*!z(¿ಒŽÃø­1 ,UÅk@Ž;¢5 ñµ)H…6À‹Ü±¦¿܇ýÆã>ìà>L§á?ðÃn?ZÀðã3~²n?tà‡Ý~˜€v øñ:€¤má>t܇ýÿ ÷+¾Ãv¼Z܇Þñ¥ïÀ„õö ð°ÿ0Ï:BxXÿŠ˜‰wÚÚ)]­ÔXú¿ñtJàŽƒb±‹â…ÝJ[¡êW¼™Ô,¹ì=íÝä»SxçÉ9x*Å]A(ÿîêvj ¯º ¦"´ØòOÄÛ˜'btªùÝlÕnË{Š#ßVéòŠyà/¯þn+=>5£Ó†¡×Íì±)%›)Ång U€­Âé¬Â’ ^‘rcìf»ÝÝ;5¯~þ-y»½@±®|Äñi/8E'GªZLÇá åçA¡€ç”r[{Ú>¯@=áç>ý*ãΕ]ñA¢ŸÕ¢·ç³íïÿ¥-ëTêz[g5twÁ϶¼“ ýÝN%Ó?;;ÑÈÓžÃ:õt8å ðgøáuv¾Ìp°¤0¨³MÇGøï3&u:{ôA3ZbÅ¥\Á)e©‰ÝÕ¼Û$ò¼¬O“íVk^Ö Œ‰í{`ñ >jBívxçWKZÒÇÿùíÙwŠÚ3œCË=ZÊn¯ ç²9ÌBüÍÔØc­˜$—,Ìޱ† FÑ#­ya¶È监óF•/ô‚¢ Â.­‘Lš áG K~ÈùY$²[„9‡¿¥BGÕó)w¹R4í|èª!'Ô<Èüø¿T„ÿyå{ >ŒX%(Ã;‹ž“rÇÏ´U\߇Ãf[ÍË{úy¡ó¼c­$[Ç-V H‹ÃN¢LN±¶5÷%ŽoÀç{¼Éýø³Ê÷’)Ä Å—q ¤«l ™Ì™ú9@ô¬ð(¹eô¤ðÌXbŒsFoÕ!Ri‹g$Qþ[rTå9â«J"ã®J‚à±Æí /€çRóR‰ÿÒÅ.½Rö%±¦jZ´;D´GH­0¹_ˆe×Il︃¤-6¾›ÈÇZôª$Û_äí2òIî52…í8â‘öÃÒ¦=Hþ†HüÖ:'w%ž ö&áÛv(Á$Ù>ÅŸp·2Í-ìY¯Ëõßú;;·pÐ-t ÝÂA«8h ù»“lþùosgó¾“%\&Ó­™`ÐÄSBåS €~?þ—æN®?ÆÃª© ¨ç’ L^Ã=Eˆçä²"LPgß) dLrg½ø‡ã¼4ywyⲊ¯ÐÑÍ©†æ¾Ÿ&û…Õ¼9¨m³·­µ¡ ²OhˆfuÈĘ)XæË2t»fýŠÐÊ;‚lXqv»{8Â/†TCð¾ÞNûúÌ$0ÉGæ§d¤óú^0ŽK¦ö~!¨gFPIV K/J!ÃÔ¬œíešº$ßžû’)µ²BÀŽ?wxr>ÆM¸_š†’“Ï#´Êó“@_æÄÐ6Ah?,#zÕ%H*ìùy·â2<,‡iÛíq¸lwJóÃc«„„"E'õÔ`XOÀ8w Q yX+ÍH¾äôã·LÐȸKØ|¯Òì2B DÖ†P.S†0|+ œ¨´Bƒð¥\] %ž (‚¼ â¶D¥.·»¥Xî„T{+m#j3"ÆÒ¯bƯ)8ÀL?í{:d°®N“­QlÔ–jfFÉa/1KüÕ®J-A³É)Í:ÎÅL\&«ž¸¹2ËÃe%Ej Ô~í$´£pÕðÀ:Öý¢ ÿüÜ—KçOÀç)æ.n¥QøÛTS ½6‡aDŠàçªt;È»[Y(f7aºœ|¶=ì¬îü z Q³ZÙ÷:B$e¯Øžu3 ‡ÕÐÝŠMüüOBÃH÷!B§æ¶ý“}ÿJê¸r쑚º* AY×ÿ”²B¹'•|(‹‡‘6£-Ÿ)ìÊUòJ‹a18¨ÝÜå…A[ E¶J¹§ýsÛË®€L÷y%SEí|¶µ ;AÑ0ìúÖvB”¿=ƒË©Œ_岯!vå?oPji¥³ZŒIõüîÖuUÏÂö¶´$¸¸>É.žÆ‰/J&”*¥I OˆQž11ŸUuÛq¢4©&4cÚgý‰È4¡zãÏŒd½E”óH¾Bá±Ha¤,UÏAó$AÖü1…¸EÀ‹lÇëÒNm”Λ…mi¨Zª–†ª¥¡ji¨Zª7GCõ ª_¢Ÿz õÔúÚ)Œ z”âj³½ôI/† }|÷OëñMŒjaÌP=<è0æ3~I‰ú Z˜ˆºY-š)z触02EÇ*ÍMwyL¹–5Å+ß^µî-Eõöª5o)W5ÿ¸z·f7Ë^NëÖÁv‘ó$ùæ59j.nŠƒ5'2esUTMÇà¤{޽—Ï<ž¦ã0$ÕádŒgækð_Tq2Þ¡¢_Š6º%õDª¨”bgÌH™ô¾³Pè‡Ì'ÃH´] U(T@惪ŠÎLâšÿ½¨S0ÂHÍó©…PÑñ¤FÊžÄà58iqvTý’§”Õ<€ ¢¿™«§"%Nó¸B³Ãt‰/Ê‘%P*rt¿pû .ù>PÓÛ(ÉRkC²[hšÞæCJ‘Jë‚'æK±äù1ÝÌÎ’çún¤–ù¤êæ‚0U!ã{•Hó‰[Ý£ê]ʼL/Wvcª˜î¹³ ùçƒ|¤‡ùÐ 2]žIý²Ðwƒœ±hZ—q¢ÛQò¸Ñ¿ËáµÓý1µŠ2LŠ>å8€Ï2G‘åÃrOLoòI€c“P˜°ä¤¦d />U[‡õQ¹‡nF©D&ûèö`#Eí±Üh,N*<~®\¼¡{d3ot³ÇIÀè‘NÒBÒ=›¸&F+FÇ_‚h’òsD=1©¸Ìë$2jI:X%¢§¤l¬VæDR˜I„]ŸÔR œæŒ=Ô14‚0t*LŠ`’“•B—FÉI'P³,¤kR®Ñ¨Ö€/ÐÈ· :€ÑqS§iƒÀøž8ý'îêDò;‰¤ÉìmL S#¯€ Çÿ­ö¿¨æþmíù’SÑMö”Zpººƒb.'Ñ!ÿ]vkn9ôøSXÍùªv¦Ï½\W…²Ssìv§œq˜Ÿ'tN9«ºD®6sëžuC§\|=ÖR×`Y5FFt ]¡äÝ.¯ÒnÌá{vî W‰¥@es—re Eú¢kÉÜY¿buºÝ¾ ôÑ‘u<Âg=+¬y~µT’=©¨C+E£•éëK#ƒ?Z9ywSžá¹> ÚyB¸*¦l‡È†}HxúSŽ*%4wÌØ'¼,Æ£Fšd³ûОõ|jbujÂätÞ†fî£%· €>æ¼|怃EBÜC%“±Š3³³Ò«Ø4ñ‘äëLƒ1¯tŽ$¿±¹Aˇ«=H­& £žf®ë?–Dš%wÞè‚ϯyHSM}Ù¥k™#r7‰3dD§9yÐaÞ–fâlŒŒ·¥‰£ º°ªPt + ~§É±Qí¢æ'?”ã6÷ñCƉ½)âïÏãû–G–î÷.>’ê"ÿØ-±4î'åÿ7µÚª)ò‰&ÿ—`VèðÜ-+Ù41YáL±¢g”³Ê[cÅ)Òóöˆy¹ÅT šq)¦~QxUÎ3ÈÔÛu>UU,LÜùhG33:‰’|JáRIÁzgÄ¢šK×h ¾Ê˜TšXúÝ?’|Mú®…œt Ñ7cÍDôµ#kýœóõÏŸ) b”`Ú#O‡ÍxŒÉ ªQw§Iöq&MäüxîbS‰ÿLbõ£O«4€\AbÕ‹p-eÀm]OÉu®Xl ¡ xªv`iâ"[êäQiˆ-u“ž ‹ Eè ¼tLôΤ'P*H×¼·íHœìÈiXh8ƒI'p-†>O¡åk¿„üÆd·_(¹Ë/Mrû{ÛÖ—Ûi¨7 µw(²¹:Ø1¿rÈ£t6ð¿gÉ™9öhIÏ-é¹%=¿bû¿—¢Ï­ ÙD( ÍÎÆ5—£ý¹›¼í@M¦wÑjÐktéVÇ¢sñ–¿©Èj•ƈõ@#‰·Ê» Q!Üx§wˆ/qL”q3?ïøç ŠÏ¡XôìîD…Ê“ ’ÐwG\›{¦×…IM–´žßn¬ž{1ÊåG¿bè.¡hòzx3qA(÷ªiŠšSª¨³£$ÓjQæ-ˆ^êW è $ßqÙKTÄkÊ”æ™KÞÐ QÈŸ]ˆ Müj€"'íÀ '®…hÞJ@õ¸ ŠÂª ªÑ飹óÅ,lޏ79VÖËyÀS]«ãödYH.Þâ¤@õ¾ëPä*¨jAQ~]´þRø)6ˆ|ÒŬŒ_²V«ÔEŸ9Ì?=[>qdôÜ’æ {Ñý'ð=éràñŒõdðñmZ‘×ß}ò%&ì{rqÒLš’aÅ^|GOCº$½™V&ÐѺaÅ›»YÄõ.fdîŠÊq ­å†J½òá‡ð}·c•<¿‚GÚüܹЫø.š. ¸hü(_­a\³n>õ@ƒEþYÅõ{ ¢'55 –òî«ôWL|†…P.I%R¬µ2wÖ÷ˆøænæ- mÄ(gîlÞÊÃöìC’kLyå¤Hó tPò,W!b1`žAf¥ý¼±Ð÷/LÞ[Ú{x¡~p¡op¡~syì =^]ÚÿíÊȾ…¾£ÏÎcœšú¾d„ n&óªAGs»OümDˆ´Ã%c?ý‰ã–ÿq›0Iç•©wuttíBï‹þ¦¸ÐÿüæýˆiRP‹S—b‚00Ѷ‡Wk®W~ô=L†W:Á€G„Euøúbâü¾Û%ÈÜ©E, … ä Èè?wâ÷$ucÈ­€·BÔ8®ëgÙ5±¤8®E@à$“Ê¿§è“ð¿ÁÀÜI˜¿Ô÷ã¥)pE÷³¬˜cL+È1Ôqþ3À±2=eTà‹l÷Ó÷[žÆý4éþ¯N±¢cBÖ•%îÉŽA@â <.õÃ!­²ù2bÊ€Óó×cªt¼{J/ÃG£÷í~z7+Ü\3× Ky¾;ß0¨æN•0Èk¬ð"l'!bé1¢?ÂØTe´ú¼hP:º: šõI*!”þ0oâ±þOqDLßT¶Ó†Yi±|ljåL}eàÂÊÿ±÷mÍqÉšïúx›ÝQ;Ïìy³Ç>glïzf7ö¼8Àn° 6hè–È'^u¿Zw‰–D›²IYÔ%‘TÄiñU"ÿ½)ɤbÿÂffU¡ª€B³%ù¢í‰èPU¨Ê¬Ê/3+sÏ®Õ/öãö:|hub‰\õųÓÇáöÚñÙ'ó0ú5{“íÀ%†ÃÛŠ ƒCÃ\5¿ŸPš=ƒPÎÄ‚f@=é\¾úƒGˆF׈Òv<ãlß‚ÓW¶+[ÊnÕí`>°Ñ–Þª£Ö†—1pg*f1†EhXÕ/xõØ9GÔþËkRþÔ2–UmŠâÓ Qi!¾ígÉ nªU³'¢°²ANœœåLò"œOÓC›[c@€d†õfÕ¹ýµ”5­Op³cöm…M[aÓVØ´6m…M[aÓVØ´6m…M[aÓVØ´6m…Íÿã ^·¬½iz|]}Æt€ýuô4Š› K"Ö‚@ D{ʬÃò¨`ûo´J¥…s盨Uš7‡ÑjYµÒâsÓ ›4"8ô¿–Æã¿¶0þ<'][ÝÑVw´Õ?¯ºƒ'ÂQµˆ”„‘Ù°Tø‚c^S l£ëB\íÁ`©RÇT?1Ñ1^·€_î}ôÀ¨I½ÈO–ÐJaÒ‰è ¦I•†J%ÂÇY׊è/vÒ? ™(©Æ ™X¾I cneø1ÒnUòÕç÷’Èìtï‡s§d©ÿà©tÈÆ—³/F®­ÜÑU ¢wv¤kADc]¢¢d(všáæNé „Ý_p]Wã˜÷PGùi:|ž}bðÑ@ûe¾ÚQd!êθÀ@ºsžc‡õZìê¿lû(CÚuÅë¶ׇõ«ZU¨Òîò}úÕÐíuü ò@Ô|Û tÐO©cúK©ª„ýô&ª… R­á1njcf¤”à À&Ùþ;ÝýáÜýÎï¤À{§)4ÂJÀN5³’3tzy8«X}±wvýö ®`#™Æÿï°™ÂDZ]±#Ø9D>Á‰êHF¼AŒxIáB¡`Ïë€lñ ÿÙv‰ÏócþóÀ†ƒ[ø®µtþÌÙî_>È$Làͬ¶S5À<6æa2hLÇ0šæHvÇ!õÁYh3…QuðdáÁÚá{ b>»2þôÊɵ±{YÂôÎg“§VÏí{~öþ³Ño‹!ÆaÐë¤X¾]1© [IàJæV”ð[Ÿ)¥{&´7f{Œÿ¹%‚®U§àv»å˜´]a­dU›: ©:¦lXëÿtÂr¿S+9[)ÇÔ×Y`ç «K°˜ØŽ?óš} »á /¶¶×Bƒ2I ð»ÿYÊEÇ‹¢ãÛóúù¶·¶»qÅÅÑó(“¤€¾M?ºûöULL0üx\¢þ÷î¹GÓ°¥ÃvŽ»ú-‘ˆç0Øï^‡îXðÜŒû?_¨àïô±à%2¸‰î#pcúñPN:ƒŸàÛ2ú’¿8!Ƶ…ÌEä4®ÛE(q°Æ4¶P¡T*Q Ú¡¨Îç5· H³*–T'2%@ø´êÄ‘k£$ S§,²PcŒþ:åÈò‹RŽ ]Ä_c^„ÅbìÚ@Œ€=A|uÜØ¶êvˆë£ZÍ÷]ÌÔ^“yÊ6ü2åIø˜’u±å¿Ú˜*¸¶Ç¢S¿ñm-â‰}É‚%+~dLšàv;½(;aoäúî”{œ~¬¦¢þÆôLÇpŸÉ\ª®Ç”MáÓ8¬U(§[ˆ‚~>üLæŸÏ0¬+7 FÛŒ*rßXº‰š¡ác+ÃI ô ïÊàw›Ww_|69ýlr÷Êàñ•¡ý+ƒçù®3BZ¤ïòôDß’Æg€6˜ƒ,TFZ d%32Q|F•8=ã?œ[A.Oÿp~=9‚û#4ÿo’žAóŽÙEwOÑöwZøÁÜMd÷͹&ûf^‡d÷Ü83µ16·>>f½Ø{wý戵12ñãÍ‘õÃcl—=4òãÌås£ëûv¯ï›Ø–£çzx5´ý2úËDµr-ÓR:ù î½n¥†w-ßYwƒ^Ø…ÝÈ*¸Hðœ SM5Fk½CK}Ÿ hªŽ\äÒZ ëIcûòË}Y_îÕ½Þ”KëîYZQ¢ juÊ2\R‘e™(9Ђ[¶°=Fµé…Ë {;Þ5“7¶Zè¥Cþ8 Ð?0Ètõt—È9g¯PØa S™vâ ÛÎÄ÷Sûá¸ÚCú<îã3AoïdwŽ“Sôþ9Ô4=ÅGvØÿðt±Ÿ¥U°úí*îØN(RH.µÅ¹¾¸\³úiÖðÃaUNï™cñ¬ßWqMI+þVo¶xó•¡×)ÄrévS+7…]ëGmâ×°~WøRaƒÐIq'!–´nQmŽI[¬Å& l§¨$B‡¬Û ƒÄÜËà ŒÍ ²E{ÝšEÑ¢('q@bÛ¹4 … ñ,½ fk‚» T~' ö„ºLRЛŠ0H>IYaÀÚ¨)“‰XBøÚj¡Æ$­¨qÏZÇ‘@¿$Ǫ÷A9—Á(Ïâƽ³0ý( =ŠHzLNK ¯ö•Áî†LZw ˜ÏÃa)8l¿Þ˜ð‹>:7U@>à©ÍDÒ„SuMëIøÂAòj¢èZ4¦¤|YºGR+KñFƒ à2;Ø÷¥ ÷oä¤åx2{ôùÉÉgW@Ô}2{ïÉìÁ¬ðûdw §gF˜]íÎÅÕÑ;Íru<ßõåêµ) ™U²¶g€m`ùµ)Ú\¶ò´âÅ¥«</¿mr„Êfñ`êDÑv¾”’Ù£ª•-Q­Ò­kg“Ä£¢¶_VIû»ýío[UÚ½¢ŠV}Ù¤ m%Û†œÍÕ³8ÌI‚ÕŠ’Væ_EAÚÚXWj^ìV(O[IÚV’¶•¤?«Û“ä6UOúwYªëJÇ@Ò¹<7KòÎ-rõУ¬¾ÆTòª`¶¤!GW¦›"¦º€ †Ç£¨¨.º®(=%e^„È2£#ïƒ|GpR%U2Òßå—dU¤É ½æSbÊ0täSúšT/ùî¢ÜáÁ•áqâÁ¯W†¾R•¥'ðØ%ç)Sýp~?D–æž[Ÿx±ïÚúÕY<qâ–®2}×®•ªõUž´`7€?ºò4=ò‚-Óå’3¯bad¯Ðÿì¤ÂN©>5 G5ΙΚüÞ4ÍwÚ•Š‘ê~•XÓ‡ËdÝñÄú¯9V¥ ƒØ0S3 —F-éêÄ™ÕK_<™?š=tFwžw,í]eâ0³3•ÊjF¥¨Êsf·)eÆ JÉÔ]ÕEÊÄ ¹ Àt+i…^–kÍO*ûšýœ*©–4¥Yš’R:°05f½¼Žt¢”ÍY<« KwŽ»“‘éMºªWà~³Sz0+s ëQ1“™èŒ›R欆$©Èª(LêŸ-2MyZE`XEÌp?EÉ"mãÒb†Èi¢Õ‘nþb“ï?”¬:Í|†ä d€•jŸ6‡–ŠÈž/•GLÁ_Õöòáä[¿M<‹ìŠ«•ÿ@>@òõ?¤~vTÜÌ¿H-üó»2`!(:…¨ÃEÏσgUO#ÖLGŸ]³«â‡çvÕݨf{[Êvw·ƒÇG¡ú¸Nî,n5(Fž]wد(ØRˆt¿ô Ÿ—[¯nÓ˜î[-\•6¹|"8´ýƒâ!¤N²±ÈÁ|ëÏï¦SD¦IƒßW‰B/JHC´À D6×ß§„XÔ²(¿á¼ÁP²jÃô6LoÃôŸ¦o‡Ö ;'Šðè©Õ?&ÔAxÙö Ž×_<­cðrà'^¿Ó˜ ƒÄÏÜ›=ÌÇÔ¦‘7>†Ÿ®o†Þ]ØLÛa¹n‡)ô.¦ù$öN×.`70M1uüµü`,rŸ$ï75¬Í Òç‘.ñx,éH,èRÄ" 9¥ÆTQļRÀ&«¨OV"¹ç:°¹“Ò%\b*Þ4Ø”''•ëÛIÜÀM@èØŒâu|ŒŸrÔ±hÕ.Ù^— ;JÙvuHú?øD”þE?J˜§³a{ˆÜÝ&ØÁ> QõÃw§²á9Õ5dXÐnfàê×äBvhŸRÓC|¤Ó§p€åç·Êëùvˆ¾ÊBÕ+çdتŒãëèežJ‡­’ĘUå3tM3»J¾HÃW3_åBX½¢ ŠÍ2›ÈJ®3cX•ý²06͇f,ËÒ fÓœ™Å±*‹æy®šxµåSÖ/Ë´9ø6ͽf˜«³±í&ülÆ»iÆÎý&ß윭gxÞˆMÌoFÂÙ…À|Pô#óŽvšðovÈGÁêbÑÔ_U]8 ˆØ×NŠÃyxW>‘k7LQM‡&èûG-òàñ¬ Ò© “]gž¨]^͉ƒ îÙRvãBÜéó éwU·oV]/ˆÓ&ã ú¹!€©x‹çv‘Ç"V¢\ó rÝ®ç˜ÊK~Pv]ãªñ7¬`5Ý ª®±¦ªíŸj~—·àºâiwbŒ+ò+Àõß¿ {E´žzßÖÿØBX?)Ÿ¶×ÏH°Òu5!ÛÄ[5!^ùB¶ŠÓ+lò“‘-ÿ©Nh¶D!áü»Œ›Ü¯6y‰:ÿ.û üûHàùw‘Ìóïrboò‘¼á>þ¯¥ƒxêoºÛzˆ¶¢­‡hë!Úzˆ¶¢­‡hë!Úzˆÿ/ôiô•«–hjŠ×ŸÚ<ðþßÒÔÅbàc>xŒ>¦Õ ÖÛ¡*'TEÛ ¬_Ãn¨Ã°[ðcNi†ZÙÚ´HŒlœ7äí(ymh׆vmh÷sA»Ü ö‚Þëîv€¥™dK*®9›3o%]žÊõÖ‹3“?ÞœÓQ¦dþ€ Yk~šGb` ]ú¤ysü4ò4¬¼½öýä4ýž‘HTÐ(-Ê÷v·ãr:È_2€š¦d.”a9q{LEÉ’¢"­'*?S Yuq9aļlY;¾;!žÌÃo2Á£J½ìºÑ!^LPsÎb†Ï¦•$F§–ŒN¯ &0ý2kO.Ì65”ÛM$3îήL9¾ì¦%* ÄkU ×D¤+㢕Þ¦Õ+€ç,c& þšë™}›637­pfnZê̈ܰæåòV¿,H7¬‚Ÿù–C#voe]4cù—[#³8?w±4C~êi@ÿ-,Ÿ¹êm©l¦0>¨¨'µâ™p*O€÷L¾øTu¾#þŸd´,Œ™îöÓaåÈ­T=§£Pˆ*ôû—? ü‡–Àå+‚ûäM¤ÿS ¨hP7òr@E¬e}X-àÞÂØöÙQ®Q3_ýÃ)ø”\¦1¦s ^ÿ÷Æ8†n÷aƒBPÂöwìÈ…­©Ìo„¯ó;É;>ŸH(w°MQ)Øý Úœ1= %áx4óxlà"ùÌUø=¤!÷¼Ê"ùYi;õ]õFÅ¡×à=[òŸ8aM~‘K$¯¶£×ˆ¨#À$¬Ÿ¨×‘€ÿmÏ®bÒ„ÀwüÈ)s¤_Ä:±!*ë];²C©³b]¥)«çï­]^Û;ðlü¨Šÿa^ÜKG)çÈ€H€»‹ w‰|%C?œùáÜY©øqöÚÆ­Ýôg÷©xÇîwý‡'#eæ{E5ð~XóýÌÜ#HÏ}ã;_꾟¼üýÔ.‘Å·ÃIÚþn|?µ²d P‹!©*PÞÂj±½=ØîHµA2Vl¦ßI‹‹ÿ©ûr0ù±N–dë†H×€F©“ËÞ\š]š•Jƒ„!¦Ä°4n&B>ŽJÑkL”J¶Ûiz|HÐ?‚É"°MÌXjoùÄòIM‡L÷ÚØUM‹ ÑAs=Âÿ²?ý3ÏFNÈ2îvÛÕVœ<Ùê°âxlÏ „AOhà õâÙL±å„¥°ñ u7ŠAº’ ãǯÅýNØ‘4Éria ×ËþàüÔ¢š-Åh–£C><š´_nLôÅ Q{®Ç}Ô» ¯ÔIZÛˆeÁ£W)[’ꓯïv¼‘ýÆ8L¬‹?1T:Û=Ô _R‹IÔ"áÒUºØ+†heðŠjSº­g¸>¾2ô-–èçªG)¹ÏAÌòsnT·S!óÔ€0O}EåG‰Ó¥-‹5oqN>ucè2&ÿ9w˜'¶~qðÔÆ—·@š–¸>h7E1U… €¯’¹iŒ}^K¥œþŽq»DölÞ¨ Ǧגø^§‡²„0Å LšÔÐ}†zÈŞ̀û$4ÉŠw—­tú¼MéB¨%s‚ô?Á )id’‡ È%‚G`}—j:ô'Žß™m÷ÌxFESË»@^6¶ÊW‚dÄ1mÈî;O3Å¢‚úågFXz‘g£Oîï#Mcߥô0·ÈO^ãÂèš²ïÑËxl4­O[ÙaÐç›ï± =¬FK,AÌ*,¤xƒåßs|Õ É«õT{0Ï«§†+¤[Ê÷pvU«Pð¼BJðIã˜(ˆˆŠ .Dާ"}9DI5ˆÎid¸õ܇šlø@Øù­Ìr•VFöUª‰öNTø¦LpZñ{?¯9JY8E`JýF^®Eìœ/ÇHÑãô›²¿%«¢kc¿pàÄòÈ:†sá©SÊ7³JR½]Yº¶2<%·‘³/ñevÓåÕ¤ŽxÝu–'c“n蚉\bÎKù–VzàäåjKë9pÕþò”õãÙõs§^›Û¸™5—»¢[¹ ÜPS¡3 ²Ö³ÄglîÐx¦u Ï\vRd3ûŽ¢{Ã#7XŸ[Ú<(qÔnL\ÆV³~¿s;ì,©Õ ·E…bJS–ÚDä–#×¹˜$8ѳĊž%'+YÎeª;_“—•ì(åÿÂh»`ƒ„}e3ÆÎ¾ÚN·‰.Ç”eLn'Õ–vÆjŽá-SŒ”:üë@*ÞÅ|H×Ò¬þFÍON®/©ÑÁì[TÍêÙ…Õù¯Ô¶Yb/­‚Õ±ðêêþ¬¦ôlÐ!8ÿýg]ˆ—ZÑ–ÏSÑM“ÞHk$Wô»ßËÓ,ôFÇçqrÑQ-—øBàÇaàuþC|èT)ag7Ñ)eµªfIV`P-Á`m®ZÂZÐ-%cÌnªC®eþU:uæê›"i'W‘¥Ð'%Â%…’Ü¥þY)9]5¿”蔤ä÷ž_wÃÀÇ쎪bID*â™/<š‚»n<ºüè>)—æ<º®©–šÖ‰¶h ㉠(4#ëô0'Œ`¶ÍràûªŽéýD"T>©hâ ú”âW•󤶉ãár`å°†´UuS"àeœK€tÿæú¥2ŒH¦lH¥Ò‰[\.¹R唕¾ž~qmõ«á”úéŒHy ²Ía%9I®˜$•P/NÛ„?§~¼1/•PÔEÒBa”¿¬+ ˆX8­Hõ“¤”(¥î&”ÂõO&YDˆ3tc=1IÙI0qDª£Ï»Û¡e!ëöûŠ6J˜`€›tÊàpUÞOQáSÓf>“d—÷IM”²ëŠ]ÔVÕP466œÛšö)³¥ò$£·H.˜]Þ³tM×@±-ñàÕdÆ…Š6õƒZÔ­(èzxVUú ¤/ž!þáÙØ­CM[­JPŽ†Ç»k~¹à>7@)+0Âex ïÕû{<Øï" –éÚŽ õH@cÚ¤Jb_á„–[eè~Ü]óŠ1ûX×3LOš¥¿aõvØåô£ˆÅu‚*‚VÔºðEÝñv;„¯|êÅBÌnìP†ð’ÖßsK=Nq+T5ÔáQÔÔã·ÅüÛà=¨¯Û dgþº%Ÿ2K¾ Ú¼G ~aXª:ËœkVu±†…ÅÂ,1–çÀ%¬Vøa4£Ÿ‡ï\—’],½¸1ukõm7NÆÁ߆†$¤\:%€™ºñÌƉ^­;tÐBázÊð¦˜\Çú7þýÑvè€T¿hõÀhah—p€"Ù£»D£áâJj|’õí']§+b#evb4€ªÁvèY̓ñtœd¹èƒB˜Ð9r1"µd¡'5‚h›õAŒIÃỡ'ÊøA7j·Z(A;•jÚaÎwAÌwßVˆï j1rHSSkMã·nwãR &T݇c ë'x—}pF»ÈÉ=‚±…fÚ1Ǹ= Éx©+äiÊèòÓ!ÐÒÖ°¦·Y¦ïµ-ϘR`'€˜ª!ØJ_Ê>KíB\ƒ¯êÃ^a¦וö\?ªágtyŽÖKC*ÔèYdÚ«Øâsë¢=(û`¨¦nƒ8Çv݆˪ •7[N7x¦ xÞÃ¥ >¶-zÕj 4¨nÔ×Wt|A½@†ûÓ÷c{a¨ZÊ×8Õõ*üaMˆzz¡é^YÇ«4&F•«˜¶GÌÉ‘!O¬ ÕšE6<ŵ²‘%H”O ŒŠ'&ðϲ=؇ @öŽa!/þF˜®à-˜Ç€Q,‘lc*¬ak0[§Š·•¾8;x™ïÀXâ4Up¬Æ>¯’gkD³É \ÿÆÙQ…d}Õ&WÓ"¿mñ>ðmø†²1WS~ßâõ­@M¥>Xy#¾˜"Ùj8û{ZcÜó‚ EXí ú·Yo÷cý,[‹×-¡¦¶ãÖ-›¾¶)áÑ¡­@cž ÄÃ3efÊ+;ÅÅ#¼6´íÖa÷b¬›zìZ¶ÂĸÁ7nFî Ø´jé…·oñô¶&Ϥ g£S ÙPDXâxEuÈ–4¶qÚª×`%`Ñduuäòv¨kgÌÃŒ­p^ï‡çàƒJ%V×Ù¦hË.@L‡-Ÿzä)lî¶Âå­=ˆ¬ƒWù® _%uüUa‡wÒõ•áoW†o®>²2xµùÃGè±ãLO—èÉyºÞ½2ôÍÊÐäÊÐWô°Y^üveðôÊÀГù+ƒ#+C#øsðøÊàäÚ‰Ëk'®AÍkSçŸ Ï¯ ® ~¹2xreðÑKŒÂ{feø²r‚ð&Â\è+ï÷h›Y×W†¾x~æìÊ ”œ_<»2´OÄÐ'ìÜ.ÅñÅÚØÖölpuÔ`ˆ`£‡^çî‘ðžøi¼„€ßdg*É”Áì§Äcp=K·.RCTxÛÅÇΊS%{8ˆ.Ôä£_±k²¥œ¤ë"Vqž$1¤°„¦Géçú­CÔ‡c”îô ñ“GG¦'ÏBŸE»£d>±èsn+£Ÿ¼“~Âcsp—®e'87B×§Å8C»óPsꄨ%¾Zïœ#2$^`C9–ôXćO)Ãq˜Úc_r6™uêâĉÇ¿Gè‰Ó4 Éì%ÍŸÁðÉÛ-PAB\§è+O B3ú ¡ÂÓâ•ýL˜cÿÀº÷˜µþÍåõÝ£dÐ:»°+"ØÑýhã=µñ刵16‚q¼v|ýÂE¼Ú8wxc삵±sÿ‹c#/öÎnœÜ8qËzÿŸpÌ+ cÜzöâø©g¯Y{æ¼ya«µ13¶±ï™Ûf¯­ï½¸UíÙ[§7nÜÚ¸0ÆŸØØ}ûõ¯Yë—&×N*†~ì>]ڟ›ÇN_ûñæÌ‹ãSùºDRF R¡'vK ÐÖC·Wƒ ]‰C²P}1“z@ÆVÄä¿8‰œŒøªÌVtAôu)¹å­RJ¨œåhâ2à„¨3°O¡·ì”I/@à‹¡¥*`%’TAE²±åwtPU ]@(1 ‘9k\ì$C"z†M’ª ‚3¤X8NÚ‡óÌLH&DæM6$M»¾ŸºZâ0ôqº˜aÆÆ+ßO &áÊÿ‹ø°ƒÔLKxŸÇ&FÙ[f â+)C¤i“žŸö€:}&ùNèñ×Z}j€:6µÿûÉ[-ªŒu ¿˜Q¯P[“PÊÞÀ?ßQkÇ“AÂWG±Zº›Û£Ü3ë=/ºz’È>â“WdÌ~|²u~‡|ÿðsÙøÂ§}ËüýšŒ)þ`ßÅp²©1©zXO/Îù}ôü¯Ûábñ¬P7T˜(œð €PmQŽà9 `„Z½®]A¡ ¶Y‹ƒGáÒZ²ãíÁâÙ‡»¬ +Zª•Ü­ ‰Ô éâœçâý‚k¹L=Rèëõû¬í}%ïáhÑêWØdT†kLÌÂ'’.iiFê¹È РV1Û äXG"€æV "ß6f‰oq©ò=è _Ð IG±‰ÃÛ_§1¥#‘uã+ß±aå¨9éO‘„OŸê‚N:A<_¡IžÁ&‚g&€6"UA¨ò®lÞ`WwLBw ãä5&”ÂíæãÃ6óІjÓaa5§F÷ `ò|m÷ÖÒÜÒÂò<ÚEêÎ¥K ¨ÿ\º%Šò¢Y§€ÙåQæpmi~y'¹ðQY:Ç1çzþ·–î“'º»¡i~¿µtÃB··´;ªO—f·RK7¨ ˜}Ú^>h-,Ã{Ôè6Åu®Iµ³ÖÒz핲/\Þ‡Þ˜»ý¼rwi08ù.‚Ö †èÖ H0”Ä zä.ö‰õ°OËû´‘Ïį ½¬UoÌ£Ù/¥˜58> GW™jp]íV«ßö´ðAÐ[ä‘ÂHI^ ÝmÖ‡DŒ5h·×{ÅZ¡'ˆ/2 7víD‡{/£Ã…Žún%xxÀoÌ'}·ŠÀë½¾U¯fE*ør…o ƒ0i¦`SGEsâ`£ò¿ŽY0y3ä‡B>·IW¾tSµGå)Ï%%.)qù„B‰_,°–Ž /cä±ÀZ°Ö®úaÎ/B"„7ñ]…ø …ø0ë¾Ëª»E¤3ÏœpôO›MSâÒ“ûw†éãˆÒOj”O©cnrné´ÖN]}2;ðdöÒ³ù«Oîßf¶<Õèðæö¯^~zlòɽƒ¯Þ¹ød~ìéw§áÞ“ÙOæw®îE½:wouâ[(|6åÇž=8µz*½¸:zàÙ­»Ìß`®õ­^Û¹:ºûÙƒ³è³—ƒðÕ]÷ží¹%Ô‹gWž]2+š];z›½yÿéýóðsyzvöéý£«‡wc_¨…µwŸ,<ØÌ+‡¾üù®/W¯HÕÚžg“ÓÏ&wc—ø‡ÝÃŽÁ—ܸÿìþùçßcÖMÕmÒ§íZ½rwíÔQñÁƒO-<¹ÿõêþ¼¶C{W‡ŽÀÇ&>A¬¹§Ó{žÎ†OYÝ}÷ :´vq?yæú“»ûžÌN«ßÅ<…DdÚÎÏÈÁÍwâ-2½’¦S AãVìf7)ÙøåþgA”üý¬×®Ûì8Ï‹ùßÏyÜMˆ ¸ãKÖ¤—P'÷â]ê°Ã2»(l¯À/KÕ¿Š|»õ1ÿ¹Ýö<'®Ø¾]J…Ÿ¡û;ìòà[ÜUcÇßêö‚jµÿÀï† ™‚ܰÛO‰©ÒÙÍTmX¤" djGŽVöˇºéÜÔef_¥wé°Ô™ï«Ô¹©¯Rgk±lh¶e>çZ̼ö[Ì¿V¨Qz‡Ío–Sö.£­H¡­œè"qG¥%ØmŠF~-ßªÍ …qhÛêíaÕö°j{XiVäÐú)©¤g•r„—Kê&+ZT"åÕĵêôý¨îãýÖ£¯x< ü}çÑÜ£ëJí2¦¡oÈâŸrT‹«/?g ^“ŽÙQÔ˜#õ`Êc«ŠGu5 ®ôÖú41g²ŸF7-Ï® ŸtÐ}âÇn•÷,vðRµ¥âöä)ÆO‘ â,Ù  pc`“{?“»±oŒtÜcZ0žNvöVáµÕ!'RÜRܵäÉ[M‘'²>Çkû¸CÊK Î;úÈpÆÓ§3ãv•œzz dÒ®W ÑΈÖpÌ–>]ý˜-SK˜›S}±`bŸŽ0’õÅ»™¬®øb) Öe{iØ42¡q:·±*zQE_ j(îñlæ8å„ýêùÍEЏ¯j—Ëò\]§ñ`«ßaÇäüÆ7¨Ê‹`e‡wjÅÚ«#Ç|ÇÒ!/pÊN,NÜ1Ï·ŽNqæ.qAâÍ¡'>äã1½ˆŸ…©%r?ãîC4ÃCXkÇñ:MÞ=I ô”ï숭ŠÝй]+tEž]˜‹žÆw›œÚÌ÷XN<>øž‰~Ã+C×É×cöéÂDâÄÁ=Ÿ¯®]_;ÏÎ_~!wŸÜÛ½zå ÂÿÅ{ÆÃ?œÛÃMÚÒåÀ¼ûnâ¥`’¸©«ÌÝ€:mòÞP­ÜÌ®¾GÔx”{oh-éÇõ›˜Â®Ûªñ›GóX˜]?yýê,›c49Ã_4S¯ï›Øør¿µ~mìÅ‘1kýÆÈÆ…‘üó¡]lðù„Ë”aûѸ%dÖ ¾ý\¾è ×²ë iá´äF­¯ž<5z¢ËåªÛ¼JaíÖܸd×™±Yi-eT~e÷uiY–âÔ%ªè8ý#%¼sqBÈ]£‰à­²z¢iw|Hg¯‘ ôFbéljàL$4Y=};°D#¦´pÚbJÏéõ^k;pu¯ÊÄši–@ß"ò¹&ËÆ”ˆí!Ö=ÏößÚ8E¾.¦Mw¢E±gÍ? {ñ6ëcS'´Ö›žš•!Xö1“Ä5@‚3ÎÌtö®‚Õ1à6.ïÓÍáåƒîHÑ¿ Ë ‰šzOæÌ;J«„—!Y’$Inê š*ëù~ß®øqëá!Û[wiÇàîú;ió FPKÉÒ´¿‚x›sz:n2ýBØœŠ$n·™°—ùD[Z65ô ufYA‹‡ñï.>v9‹¢Õupó5YPd‘„gñ¸ð šVšŸÖOc öž·œì…í†=…6•}̬òdöþ³oñø0RæÓ=»q›kn›Ðuðf&®^< ÍdÚXØÇÚx¾k³)ä´$¬Ÿÿë–¿ûÝä*‰òÕùoýV!OZP©0ý5fSOô£è‰ "+37t¯ÚãúB«+¯@˜tÒ衈0î ‚rņjxYàƒLaò3 tc¼OLè̆O:R—±ït¿‘V¦¼~m[‡ZÉâñÖ¦ÿCW+vFŠ)[gŽŒ A°ˆjŠàŒ¢AÒ¿‘i´]´;‚iR…È:éþâå)¾1Êx†)–’¥&ÆR;“°—n‘L¦•#«¥>N/l§•óñ…u1"/RÙ±¥ÓõÀšZmÅŠö“±)/Ò˜U<–°iªãE½YöM7:5Ëï×6<µ OmÃSÛðÔ6<µ OmÃÓdxjÁ¨”«Ð{c‘ÁVôš† ô1ê—7gŽ&ÿÄ–vÄ·¹-áUͯ«äÿùTö­«ÞÕsg?>ï¤ÔÍÿDêsÃq¬—ÕUÿD h|tèåЯ¯@~m]ñO®ýíü¹4º¯¯50l¢ð|Mçë¨._Y%™“ö²3¸pSÍ£oð_:Oâ.Ç.yN‡ {Êñ£Û î`ÇؤÂ>‰¶ÙÝ_9s忼`þ‰”]M“WÂX¶¨ðj1q¥:!¼U}Z„î''­áOþJÊŒ憜âÛÙ,ÛÙ,ÛÙ,ÝÁOšÍ’„{Æhš¦à}*ItTÖö¥ÃýU]/¥ ø´ê:ž#ü_kN)ˆtì®tÏU:þÕ©íPqxÈëtK¡“‚æ½q}e5™ãûnPèqMp|eèEÑPøY¢[–ìlÄàÚ‘Ü7öoœIÅÞS†IAÑ'H¼ç)½ìü~Ø—BË J,g·“YqŸÂsjËjï¢þ&i¹:µLx¨m6È®Íήí>”…°Ï÷®í¾¡G°c3o ÇIÀA-¡…l811p)Ę¢c *A4Y¬'©'àBÞ&‘Q‡(ÒÁ¤§,ŠS +£%f‚Z›“Zâ4g 4¡Ž¡³èThŠÇÞ§Šé*rPèÒˆ t5‹ù±f%vj â¸F¾M„iFÇM%fNÓᘭ{é€ÞÉ)+&¨ñ‡òºuj¶y­ªvl°ªWìžÞÀ/‰wèO)Œë¡C¾|â,V­”kºÙwK=±xÜŽƒŠ+Îðuœ†¶=·* ÝFL4¨IJÔ‹9=ê…D•ú‘Ä„6u ‚ª•(tª•{™/ã4«¨½ný7£_ýëaØõ¢e½HP´^ÊèZ-#ê~ƒQ– ûmcµ1Vcý¬KžùWqfœ)1þ}–a/¨’IÂ{=Ômü²zc¾ôòX$zi)ñ#ÿ±·œ¦·V¬»¸J–DœæÿôÁ»ïýçä¼R ɱ1&±ƒ®ÛÝBÙà ȵf±Û‹Nd‡aàyeùAò€7c„€â£0ÆIÙéq㾨µ¨îÅÆ W••@c©R£¡àGYOã^lu;½°EõÇ‹G6 û^t­¨îzµj5ù’XÚ\>¹¾zx÷óûžž¾÷RÑßùÉŠÊxRÄ#ÜO «ð›Q\xL©…@ÌÌ ä5R S6žÄ ›¡uäE1Óì&›XV$¦þw67hq£H 2Kõ5 VÿAB¤E àÁõ¼ºË<Ó3À\]ÆŠ©‡%¹›€;åBb†Bã°8JóéeŒ,wûÇ™t¸¯PtÎR@ë]6§!µ.ZΉÞCOÜáÁ{Èô1œ£@x~vçÚîës«‡ŽäÅ?~ëÿ²÷­ÏQɾßýWô·eãJŽ]û\¯ïùf¯w×{ýÀgñ®ãÞ/­™–Ôš™îq?¤}Òƒd„¼$@¼„@IDœ¯üv #É–ˆýNfVUwUwÍ0àëÇ3±±xTÝ]¬Ê¬üeee ÖXM…ÆÿõÚè–žb]ø«VâÜò¤×Cƒ$™àÅ@}1²9Ȳ5Qdx/^,‡¡ÖÁ¤3`I²Ê÷˳«Ä{ªœòÝPÖ©SæV‚ç‹Äá5 ,Õ©9Æëéãu©%‹ˆXãEæéÅÚ&—·ßH˜\ÌÔE†¶éÿU,bt¿|T’ÿíoœVjÿ&>}“c´ŸÒñVC í­Ñ—:ÄÛo¼ØASÑ ”\ãÛ:RK“¡ åhJâR61?„ndvX¯&ŒnÂè&Œþ‘*™†Œ¢…o†z^)ÒH(G–¼PAºÜW_ò]Vï*| ²{KÜ ¶hÑ îIÎq®â¥ÌÓ›ˆÎ~ Î€jcÆ8÷Oq²è¨~ªˆ³‰Ð£œf>gæ f/åæGy²ç¨ÒˆcÒ Ô<÷¦+ˆ«œ$s ™4ÃàË|r äŒn(ÈR{{@J[Ïj’FZ äÙ‘Š‰[¤yKæ .Â=ã L4»GSš“ÀWäé¯V"-æÚŸDOܱ_LŸ`ÂË@OÜÀ¥v¬&DaMº¡C½_¾èd~¥¿ÝÈÚ6ÈTËhÔ=Y–‹÷8¬ÞµLJZRpz'úÚ1þð)ó£å$ñÖû&¦®‚ݨU£ØIŸ™,=cŸd\˜Ë¸%áÅ Ø‹V7Ç`/ÚÚ<¼±flÚ¸Gykceó ,8¸y£Äl, f¥bàXŠû²³0–ë#»¼L/SÑZþdù³"f¤¼€yè9|£$Ý/IayÞÃáû.Ó(Úù-ñ¹ò¬oy i4‘Uð£\Ø)ͺøÔÃtøg•/i0(uÕ¥žòá9a#“œaÑÿ¥+NidŠ­噼M‹¯¼˜30­[9噜‘ƒí9E–¢òÆÉ¢fHQ² KZÄ‚`¶»Ò~¾L™â¯n?¨«ôVUú·Î\ ?¯WG.m?X8±33†9jú¦³ÓDÞÐõ°o*küY²¦ºeÐvŒò`ŒÐ¿PxÎKîQ®‘z²Rƒ~wÇÇ÷.÷=Z¦Ô—‡¾_\…&¥­8;ŸÄ D_{t½Û²½ÇWa2lÖ &;"y““0/Hˆ‘;Þµ:Å27»cÓ_’9MÀwÚñ{BߨC©àW>JÌö6ËÊgÙ%¯4,W’ -pš¡ó«”€`þUrh„;úùoæoŠágX5Ì<È­5°~?‹ÿo™R»Çòôf»M>1lEú)(ÿ#Ó }+Ñ+âpLó‘dð$ú%-xù:FóOn%L[ö”>æEñµ‡èÙºdÍSËÒß+O–5&„òÙ"&8cÝwæ¥òÔ¥eÒçŽáBE2uÕðlL‘1B‹žE GÇìEi;]Ö/¶&nn_èß¾¼}x¤zb ·×ÁcÕÙ!5Í;“ðxkbùÙÚQ d;d;°Æ˜!¢6×6eH± Ù»Ì¡·~gÄ£Êk›?„K¶0tôà«ç5œƒœYx-gíVv¡Ü­«hq[ˆ› ófäúáþ^ä+î_»y×Ëtº®y‡t˜ °» oûh‰ú™FÅW5šÈ_ë '8rGÙ˜ñDL"o”S: ²O(/Âi•-'lr“NÞlŠÕ‹öÒD«8ÝjóòDÿò 0õ.¾70M#LÓÓ4Â40M#LÓÓ4Â40M#LÓÓ4Â40ÿŸaT¬]Ç"óm.oÄ µX.¯VØÀCPÉ)Q/V-öª7[ýŒéü v‘ß½Rþa¶‘ºÝZ ÛG¼ê®#zl½PIÿsY*¡?O ×4S4ÍM3Åk¦àÑOe+ÅŸEfFBzÈlX*´alkŠFµaØÊ7‚Á¥–®~b¢qLw€_VG ³4%)cFâC~݃$…Ζ¡¾.˜&QêI•ÇcÕš¡~ ØI2QTÆt1[\$p°Z߯Š|•ϵ°÷­`¯ØØ½TA³¥Ô[‰ û8s‰ÈbþD1ŸE5òC»4fQü-Íå/MçÍ"b»&–nbé&–þ‘°4‹%O¼jgd,ý!1_IŸƒ!>$«ñCŽ¢MŒîå ¨î›…¶¶€ÙA(£°ÛÊ—`Þ=_¬¼jñyÞ¸Ú{ÿÆ=ÐãÇ6RØZî(²ugF WûåÕ¼ezÝa`«Ð:g:¨½™Ý’ŸÈ|ÛùzFª4ÛòR»èÙ]–ãúŽ :ý££¡cæ]nSr”ÞŽò|1Üô%¨ˆ·P ñV35€!$ð{Tçã¤U_UÎ?øvú ŘÞ›¤H_R¼yvÇ—•œ¥»¼ƒiì½;¼ü|ty÷n¿Š½%“Èû]6S 80 ¦Ÿ³0_p¢<1#Þ&F¼"q¡@ßì}{§ËˆïÄ’P‘·›n—Xpšßz_‹ò¾Ý7ž¬ÀVaÙŽ=ý‚évÀ›iœŽ¹`Ëk0Ž–˜N³Ã’EB \Oîç AÎZÐþlýáÖñPîv®Ïl_?½5µ’Fï wæÎTÏùî܃áK’KÂÇ€ÍÏí²’1å Çìö01 “$˜}tbÃø­¤ :‹½&4”—»(O±owh,Z»Ý΄ÛÛ¼°Ã(–/ 6µ¢¥ªÍ]Œµ~fy¹^+ì°Z(=Ô×ktÃÒÃÏ¡¾Q,&¶õ÷¼f£Çãm+=¡—µÒÙ‹qÜŸºnÞÏŠŽgÌ|¾D˜ PµÑcWDÏýT¢b.|›Þx@‰…o›ƒ›#ð-¸w¯n,`¶aƒvõ;"Á Ïc<ß^§Ø؀ýŸ *øïQô¬µà!%ÀYD‡ x°°9P#ñÿƒ±¥,ï[†ÉšÂk æÂ·Ê·Ì,”XØ@y[(ÐHÆ ?„v(H‚õyhã…Hµüd´\Õ·MT•aê$! 5èá’ó¼ Úa6Öc<Ûö3«Ë/üƶ ‹P¨«–˜F·éa¤w? êÎçà Ҁr&ü¥K°CóøLüËóÛ̳` ×)_}ž5p¯ |?’ø¾6a€Ýnu¡î„½‰å»•ë´zA³š÷{Ë ÿ¹Às¦sÉV]"(/DnþŒæŸÏ0¬ol è’ËûFe`m2ƒã•Á‹d~y`³ÒkõÐŹ…¹C•þ‰ÊÀX¥_äû"ûÍÕZšËdké£ æ 8"i€1¢0© 6ÃRØš™oϯ‹¨™“ßN¦7‡p_ãQuúáßä%PüIFèéÚþ&…çÈ}ÑDzß\­³oÖÊ_íž{gç÷¦Vwg¦Œç£÷w‡Œ½¡Ùï‡vO±]öØÐ÷K×j&õ¦G7<ÓÉ¡‡‰æBOL;héP䀺ïvÙ…ŸŽõxÆv»`¶}#ëÀÆ…ï‰eª¥HÖ[$êK†ï('pd ri€<)`ŠQ+ îsª¸—÷z]¢`¬»tiÉ|%V«•‹£eYZ† Z°s¶ÇVmRpi¬^Óè2w»Å@¿ò`…þ¡F¯ 'h!»Bî,£ÂT†‘Qã, §¨]f¿™ƒà×a²¤q¯˜Yúú {2An4±¿Ì±ºÙ>6½ÞG“Ù^–Àè5‹¸c8¡ÀE ¹„WKA.4ziÖpà •Ó{Açx|Î)l]Ї?’ôf›K†.+Ä¢ÛNHnŠBÖ‹v¼‚ü.pQaf]ÏŠ„¸-–¤UOnާø¥ë4è²¢)qÝë&Zè{:ÊØšÙXøØ–tX$ žDù#@‰{ÛÁ'ËPÈϺ°ÈaBxºNå÷¢ØGhEd gªÊ yñ¤•Akú¤¤b å«Å@ hZ~yÅx<ƒ”@OËè.azm¦ƒQšÇëø6V(3’Jéf:un>¯–:Áî†LÚme0õ…Å2›NwyÖÉ:èTý€k¤&SI#NUmœ§1/ùQ°)¢)™=—ž¬ÖJtciʈØ.ÓÄ~+¹ðüvÏ–O~wznçú:¨ºÏ–Wž-‘V~Ÿ­á$èVï]¬ß«—㻑¯ª7&4dVÉÖá>¶Õ®M²£2Éó"'¢tÚ fñ_×ñ!z;ö!ò3Å‚œÖ í?ƒÕôíFl¯h3•?ÖZLß~±ÅTöÅöR$j­„žHàŸË”Ù• a>° ”£¦iÎlš3›æÌÕ5(æ6Ù¢ùQ\ªZ5§@'y<·LšÉr‡PL˜¬¾ò|ô©`¶¨!K5d&›"¦º€¦€Ía4)Ý’Ì“1¥>„ÄeZg!Þ‡øÁI…D]ÈHÅ#I3£ºô7 $2´Ö¸%õ5ª>æ»óˆGû+ƒ3ăÿ¬ |-›5O¡K?åÙ3};=FpN5oCíÎ÷=?rs÷Æ2zýŸº£7ß3ÃU¥â£ÓìðÕÌ™¤¼`ËdyÌ™× [°¨×é_æ…06têÈQ jLgMþlæ;énĖ꘼X“§âºË3Ñ ¹â|”\Ć©šQ ÔÚ3«³g«WN<[;™¾PEO¾»:žô@Òq˜ÞáHf5­ùRæ9½k‘4cóaâ©ìF¤cК¦ºd+IÓ[škõNA2ûê} ‰–óVr%%¬U^‚f]¼ŽdŽ”³xÚl•XÜ5\‚´L¯³*½÷ë½|’b@ovÑÈ­ %5Ñ)WžÔ i[FmQ‘6&èȪޛÑMyÌk¤ˆ˜×–(iL¬-z0›\´*&­-ljûØDR§ž_M,4PîSý0¥ò›µß[‰8¥fÁô€Sro ¿™‚-ò´ø™lµt^Û…(~è[­7keüVÛñA›Í[žêŒc¶·[xU¾º_ËyV”©_&˜ŒéöŠ€2YT¾ÕÀíysÄa“'à囪ë L¤š$“M†âà“Ê‹kN­øŒOj\KÐ-~³ þƒYvW§ d›@¶ d\ Û­Aw2–ïãF Ìî'TajÎt2V¾<óxRE©9׉<B}·¼ê¹‘·²&2ž†ë/³ÈM#oì‡?mGNÛ°70½\·é%ðiàÚ˜ÁÁÑi²vLi²‰K, Ôj‡âø€û×äbm¶›¼Õr…GãHÆáà—ÔïÑIà]Êíwœ$¾|î \Û½F×ÉØù®zIš¤ùLó e¢0fšKtI{•N§nƸk• !r “PåÅHDI’Ñ4&Ïãµå”3 _EžŸ³"gkK‹$•É"8‡åeÜ8z¾:|-y* ”–²ò5­G€‰Å­A¼Ñ$L/þšøOª!…ý¡~ ÖÐc¿ˆGÒÈ/Ù‰è#®Ñ¢==û¤^šjÝûªnø‡9«ÆõˆÅôŽóšÆ} -˜„ÜW ¿©l˜Æl1?¦áZ’1µpMåÐA $nÕœWÖg[-JSÖO"z€Äȵ1ãèz€LnAEc.Ò@”Eöªd‘T~QEmˆö»8{ç~Р÷󊼎V¼U‘(úÐÎä@O÷‚‚ý”øê5ªy¿"¶’?Öáªß5²RPü…˜*MmÞpšÿ\§aÂ7#6aOö4aOö4aOö4aOö4aÏ+ÂE›®õb”óÖÛµPŽÒüOüŽ(àVx ¾Ñõ1*°þ`ðxm04^XÌ›ŽCAÚD‡ùõ-JͬßiáUt^–Øà[©K¿H¬õB©%+Оe5à )£ß—Å]x%æ@ýKÌ¢˜VA¢L£-±"’ÅÒºH<’VG≺F~ÁØ0ÊýÝ„†MhØ„†?.4Œ˜MF… Õ›çâú†Š ¥û¯*8|ˆë:t˜0¥Cˆ‰n —PQÖÌZú õ4;kgUˆhC·³ËU öÆj7mO¸Ö¥¸Ó.È·:ÊóYµH‚‰¬¢R\IÌ=—èâßA T…ý‘¢öâ_|Oú}7Šüöø8uã0MLñÛr*Š,šf¾Í†%gÚ*˜ü¿Ø¦ÂÉ÷Õ+iIX¹L±Èk–]‹Á¥z‰+F˜Œ\ aÚšØöÊÃÐü'98=€µÏ/;©WÎ?V×§pÏä÷€$xÉëÍt€]âIƒÌëçãÀC)·Ìákq€!pÆ,¢Ç›2¯èAg’i4¨3æ‹$ðÔóUMð©V”ŸifÓCИëôèSf¿4Mò¡…2†ÔÃÐ$g¦¨Ì¢µü*u¼ÚðmÝ—eÚÈ4ɽz€ª²±§Fü¬GªIÆ®…Xuþ¢ûšðšây-zÕ1¿æþÂáÇ*;Öº"¨C®iQ¿Ê¢®7¥,84XVŠL&ÖE[´|`§Íó®D.Œ‚ñ\ÿ­K dŠÙÍ2•µåC+pÝ óßTKŽw=–tFÍøË.ˆ(gAøáÚçâ¶@(øéÁæoóâ±fâ{m6ø¢—ÅÚUC^“º)‹=ã‰S|%ù”)e|âÔ²Pñ¹ÄIŒþfSù3a—šÏæ‘a6qa6qa6qa6qaþ·À…I~Á°ìù&k‚±&û±ÀXÍpÒb5ü¡½Ý–fº(ñÜÄÓ!Šl™n“"Áé¸P ¹?´[°ç%ÃâªNbF«ßOA;Ö­Ö?°§ h· áDL.£åÅèÓØbýÎ,q†³§ 5 {—Dƒ§V'PÁ’sCa»µÒ&1¯  !è]Œƒ FPq'¥ÃÑÆŒ¬âÂ$#WGïoŸ’¡á8E'^ž ß'ÅoÎæŒÇI%s½ñüìÜ÷‹«*.Œ™ße$K¢ÃµÖƒLеaÈ=š7ËIbE<0(ôäÍoæèï¥;Š5JbBšò\m·l¾j‹ RF–5¤G1ž ¾Í2b©(Z|²ŽL…±ü$ƒÇ°$æ9'–`/M?)*IžÈüL!eárJ‹R™Ùš8-ž”ˆá™*ŠQc^Vn´Š#œ[C€è¯N’Ô¾ ‘¢¾IÙ ƒ¿/#{jc]C)x\W é‘rZ2ÕðãÕ‰¨4tÖʪ~E$­ÐJCeôª™kˆ1jþòL—u‚M™uNœu¢N¡52¯ŒnDø¥aµF jü…‡Z´Ýˆ\ԣ‘id^SXêAºFjjðzâ³&€WDe=¯}Qð€“^ä•L¯ÔvI~;†ŠQˆíÞVªÂ· Å¼ÕšÉøºù“G±ùíoB‰¯Ò£/µÐ¼__¢ê ¹DQþT¥ëÏÁ nÉôkˆb6™O­ŒãæÝ›YkÉ'=BÞÿ·<ƒáت+ÓÉ_Œø»˜ü;°rü#oþ$úÆá3 å¶)Ê} …Ÿ mS>PJÉÙ¥ÍØŠEB‡ð÷€‚ÁkUæÇÃ*/˜‰qYÔ  ŠEŸÁw¦É?±¼0‘Ę\nG­öûÀB„©ËŠ¡û;y³ˆÈ]Çr|+Ç1{ëĆ€TÆ{¦oz1˜gÅÈÚRSªÓ+[S×¶FûvfNÊH~cýã®8LqüûD:Ç*9¾úöü¹à¿|sïÎ!úÏ¡ 1º×ìµG§}iæ»\ äÿÉ '5÷¨Ø'ç¾|Õ‰Qþ7s×¾™‘áqc›£ìö7óG(ò|…ˆA¿Dx£èfýÀìq{¬ØÑŠÍô»±¸"Ÿx“_Nc‰kn‹è¥|˜Š0Uââ“å'Ë1üb^¥¼qªëH•l¾<ÛÑa:¸1&éC*û—€ÛÄ(à‰öžžzzZ±DÓ½5uC±(ë ¾Eàÿ˜>eG£¾å±ü‘ífF>§ÞÀˆêÝ qò>l´°£{no§g‚ˆ‘¾x·ÓÖX^‡W¾˺î·¾k9aÐky­Q“,? Ö#ô¸?8?¡š±BÌâÞÇï#Fíçʳ¥tã¼mA©€4Ç¥:Éüê³ÌRô)e Qày4úv+ß Ú®Sž‰µñOÌ®’ÌÝ õÂH€”&Rm©‹]‚D•þëòyîÀ]5_ëDeà2–¨·C‡)aƘ9ãü°zFô% õ‰£¡¯©ü$qz|ŽÄš®}Ú uoà&Ô8œ§i}þÅ™½¯î€^#ôˆÐvbÅ¥U||ƒŽz¦èêÚÍDÕ«ŒÛcŒÎ(huù%Fº<›^#Fêêzø+K²u½¨I§§V±wk§&­ïþÓ~#™ÒS~ª@ÊFaöO0ë@y™äÑ:r‰àOøQ¨‚x5ÙtÜî ¨¾}xÓÓžRË# ùj[å’ ¢8†â?to{‚™%ü¿qvˆ…ìßé~öàÙ # ëÑs‹l»!çvÍP—ÑŠ>ÆËø¢NˆDÔ­˼.™«0ÓÉj4„ÈpÛ`VAâ–ÓÊrd{~*WÔSìÄÜM¬ž%]¼n)ïJÐÉÙU®BBæÒR‚!Í`ò ZTŒ&(ˆ¬¼ŒÙcEÕ Î&Êð“kj2a€°ó)q•4+– Åò¬{'Â}G—]Ié!Ž÷óÐ’ºÈR+I¨^—N‰ž }öM ‰W㸡ÓêÕeTФ¢mb¿pB<²Žá\äeÛ€.’Þ8@é“®WnVçÅõß«ã¶ÿ ³/¯:Õ³<ÁQ|d~3•«OHáZi”’æ $I­üGI‹Jí¯Î”FûÌóñÕ½×Xs5%ºQ3)ÚT”d=K&ÄöáV…g·Uðl@§E† «‡^¹ÍúÜÐæAÉ€ vm2 &ÍzçvØYÒ ·É¢Ký“ØDâ-'–±p1ñfd1 $‹IL?5¶(]ݵ*µ2ýœ¤œ:xg{6˜~ØW–1 ãò«ít/°Êè2÷ÄÛI±¡±Xã-™§‡Ì3|t °¤9§’ãz²¬@ké‘?'¶Í`Fª¦zn½ºöµ¼ÃÖK–£TP:ŸVÇN±š’°Æîƒàü¿·!^z‘ýGyµ¦è·oƸè‹ÖσèGk1×ÁÿȸNà¹ùÖ ®b/~ |Ájö‹Öýÿ(uXÎO›«QÃÆ ÌFiû€l<Š+ÐX€/¶a ˜"ú³‡òt(E©IQžj§æ—ixÊ›…âßAÿê†m¿žûÇ,(¾kOV(ߘ8Tê: ,›þ½[¢Pm±å‰ýÝ:9¼ä.[žO„በ–Ëv§sxÚCID‡é°‡ MÆÆ8m¬l<ÜXåÉD¯+Ö§5Bg±Û&qt°³®[ŸØ‡ ka}Ûu[¶@™ùn+{ÆdqW2AýÑåM‰zÒJ"¶ßëæ;H‘‹-IЗ^øÄfï{±©2°DzÒñ­ùéÁ5Ù’t†´¢~J yWäjTWH­9,\G¿=¿,fÆ%g=62í MíÞB#ÓîèÅØÈÄIá-2ª)žH¿+žbĥѓLý˜mi™Ô†%¦I\%Mb‚JA¹˜‹MJÄÖºˆ†=Œ¶$xP¾\^‚™; LÇšñãÔļT4ìM˜ðî6K{‘¨u›Ï J®#ÚEͼF¤ªhM¥ F[SG«£3Õɹêh<± >[]ÁÇÑ3n6"QØÅV¾J¸œüÌj3L'k|øÎGŸD,y’ü6à[ i°Ç2çÆv%¨Áí.¯^C/ùRÈÆð¸Õp;èa«òÐâCÞ|«Ü<±­†?Û®lmE~6àù­ûTƒâ2Rsd68³F¼U’?†%ò7Ëj³[.3Ýid_ê´xXä¼Û¥0®¥öeÅU£ mÖ¥¢ëç)¹¡•ïŠíTTyyÞgµç†' U6KXW\»(,éQ›£Ò?Z8Té_dˆÄƒlœjˆéEÉT2Jï6A4’š&Ápîþ÷‹«¬M&$b“Çk¶c›íäò "lO^C¶íLYEA—¥$L§‡€¾S³Å$Æ LKz þæ9H©YšÄæ«$2ŒÏ>ûŒOUl·Š–M’Ä\zDÏ `pù% '¥ZeÁa$‰ôÊ’:ü…#i2éá“XÑ´‡ A¥F¸PÁ!UOŒ±V" £Ÿð•Cœx‘ ‘s«ƒ”1»-47õP·Ñ¾Ì… ™œð’!"‰µ#[rÌC6v&ÅnüÖmóÍNcŸcO¾ÎkZƒÒL§›ýõëÂDo ðâ)WFÞ)š€s[(Ýn[y¦—=+ùAy¾`|T:ð!ÑnU Ün3u™½¥\ þ“s Þâ'ïÒb|R :]§ÅøKØVBé/&f½v 9Bkêb2X˜yC¦ƒbð;[_®|×A“˜E†±Ï¢ñÃßžé ,¨m‰dùc4`Ǩ€CÀ!&„LÕiæa°–…ÙÜ2~`ìëÆzÂñ®eûEÍw6µ×z Ó-þàm°ü:Ã Û \5ŒB­D¡‚BPþhÃN›éä ¤Z #*qa‡p<ù‚©ˆÖØ…:Är³ ZEÍxÁ ›FX„Õ‰\Ɖtš8J§³w ˜3QÄA-´Í1BeˆP30!û¾¼1ÜXŒŸvBu¶“ÁÕâËkÅ”@ªX/FÁtÌ–Ý]¦k’­L›7Ž^ô ?IdúuÈÑb¸25d/­st ;=î÷°ÅøçÆ-vþ{kÆÆRV7Ç6û7n†ï Ú¯AÁ*øs4|u/aákd=]§ïAK¤ "°Àî=4¨ö[ðêy 4³9Lu­F%LS᣸C!"ÅØ%êúÒæÈæ|µ„'ãÆ>[ Æ·@½&sãKèÎüíjï¶pp£žÅ„S4)6ëB^Š!¥‡÷àµ[|ѳo7G6ØÒ{àð7³ú—àÿX;t‹¢ÑâøðõÅ›_@僽ˆpkt#íÕ²ÞÂNKl”tÏk2SÚ1¢ ™a(ívG虈²Ýœ1‹f/až0©Ñè<>txǰ|Ìtng\ ”í”g€RP(ÑÉ5öeÜ‚ õš°ûYNÖÄjFFò”,@g‚™DaØ]^tÄ9>á0LÆíóåX®ç-$QYg;BÄ©ùzRX¡“|šƒ›…ÐãÙ¡FJm1ºÜœia¦J¤˜ölø»Ô]ž-϶…0 ‚°Û4 t‡®…ƒ2؉GUžÍãIϬ±/‡‡%´-å̰X42û£¦¢W¡Ze‰np·¤ñ·qè—ã@_ Ùœ‹ëÉøìæ`ó³¡ÖTJÀg)”Ó§ÝS¥ûì¤ ÔƒÀ#¦˜Ç£}¾jÞà¢ù<´iá CeÕYž‡¶ÃŸ¯Ðg †‡X‚Çè@ wo±xÚ}Z<¬fÝ é}l5û<ê÷VÞdŒàé—èƒ²Ž°õ¼¹‚-$7ZG´Œ\Ç)Ï[b%YX—OìF܆‹Ÿ˜ÐHf`ê­¦P¡¡|ú“,ã6Ð>à¿ùòpo³¬| Ô£ù¢Å‰“ }b+  Ú!újOy¡ÛÀX“fô±}Åò|>[ž AÇé(á ”g@±-÷׆ÔâŒÅæëÆ;†Ò `ï´„ò€p¦Ð‹ÍPe¶ýÖœÕkåixÀÈ~/{­ÛÌCAvåÊ«yPîÚ¡3L®8ß)Y°Ps°VöÕ!Z· ÝF²ýY„jt'±È²~‡4pŸºxêÀ~0ZVúúÅÁññࡹ¾+çã÷€”X9'&~ '=ŠÂÕãW+ý+ý묣Ú#ä>aõ8#Î}á÷2¿FÇ­!«ðˆ›O§û„ÞÁÆ-¨Zc Ž’7ü9~DåÃ5>?B};FÿN¡Ÿ3èÁ]Ñû¸”Ûixñ öiŸð ü:z›™–)aì£^®â8ÉçР4³wE…É¡üšN½ êÂ]ag^ƒŠ¤æO6H+e5Igõ,»-ëò áy‚[´§å?£A¯bèp$ñ A%ÖÞ—D‰“Â#à$ /Η JºÓ¼¿|XÓôMÔÒ²¸Ô +-©6³çpŒl©~{þ-ÕZ>Ì`wèž±7²ú|âK4±}srï«;Æî±É½ ýðëûÅ -ÆîXßóÉqxÖ·;z#ì=˜Û=zgoùÂîÅUcïÂÔ÷‹KÆó‰ ÆÞ¡3ÆÞùC»£ãÄøÌT‡ï|¿tmïîÄó‰3ß/ß4ö¦†¨’ƒcÏLJž.ï›Û;uGò?0ö&†žíÝ?æ‰×3p†k0äéðÕìüí Ì{¡Å`®»—Ö FcïÔ2TYg#ia›ÈÞWCÆócמOÌaß/`ï÷F—jøA´ýûkŸ0§nÜMÐ[¨|B`n±ÈÍ*̶Yhò¬†l4³Ñ´¿nåü×±2j&# Zi>,/ûÆ ")$^`¡}2B°Fá™b½‚—̬PÆñ€Dc²ß̘…¢W¾}ä]xërƒ%Ú€É9¤šp‹½H&6pè¿bΓ}ÛA1ptÓsà«Há³dXÕëšØ%Vkíä,PömV'åuã=›ª&ýÏ·­vºÑ¢±raWåðcË#‚Eæh‚m¾ NÁoÖp=29 ò’KÊ~S¤Çrìè” mÆ-Fcô—Œ‚ûx¶ÿ¬ë&‹Žm>1@™~|þ‹$*ezGÃðÄ?$Ch©ÿÞç_‡ Î[EöÖ”ÛSB¨Ùccƒ¬aU;áØ²Co g{MhVüâ8%@”|õx Zëz4Ù[ÊÙ¸ŽJE蛀$ðÔ£M>l“‰£¸ÚÔ…~¦€NRÞØš(¯¤ñæ×µñ&è`yM¤¼•Œu\Ãqãöø‚ɲ5ÓBÏTØYþ§›@ÙuÂú-=Îr$¬€zu¤ölIÀ…¤÷PCËZñ©‚¦öb$\¡Qâéh`]Tˆ)1›m¸5@{‚xÀ¦Û$$ÊHèdÜ4 UúùÌòeNtnz–A|g)xìJyJM?í#{tqZ…ÿ¡Ïý’ÿÜ"Ç©‡ð/z=­=YÆbîN4HP7ùôS¸:4yr³…9ô SïÓ#耵 Ü…‡Ô¼ýàé ,3׫§c̳ ½°Ï­ƒR¯Q“>]’[<§KküâÂ}jŸ=Ä}TÅCt1Æ”ïxÄú Ý|²H7 2˜Ñ''àÓO¿`ƒz„‰MåLHL,z[Q·—°N 5pÞzÀjbÝÔ} ’j}:ÌgϳŽ=¹}^aWîÒ§7©§KOn·Ð  y ?ë‰ÏGžwÅ9 ™§»<ï‘çî3Ý!Gm& c×+¯m!.²|yåñºýø¢g=êÁQôfÖÍ•g¯åJxHï‹c«yåØÊ”aºƒZ4îäJtråi®þ7ÕÊNÈÖPöOñÓÎh  œX‰ñ”¢ã¬òBtˆå¨çX ×é$ OÍ\y­½\®üó‰Ã,Õ1oúÉiÁ#On+<–Â=ÐpŠì¨-ÿ5ºj³./~æòÇÊ ÅóO^úü9üÄÈ—>^ú¯·Hž÷P̘XþOU¸ùt\=mUäš¼ü¡ø ýÉy_ŒX³ø—£¥£f¦•þÜ*ñIŠÛO–ÅÂÇ·Ži=yHñeO^šòô$}w®¯o¯]lþ»¯&·÷õWGçàGõÄØ³•Ùg+'ª«Çª‡«×ïÿkõPõÒÀöÚ—Ï–G««+§ÿµz˜90¢g$nÇÑ¡/ì¬Ýxöà.øêõÁêôʳ•/ð½ MnMÜÜ:z½ºr’aøíÅÛ¦9A #;Cg·¦®íÜX¸þ¯Õ1è¾c#‡*¿o:E£®ç•¹3·P½~†^½€]92ùÝWS[ÃGG&àGõØ(ŽþÈDuø2ŒÞØ÷lýŽÿîí{7ØømˆGGÙ8ðÓß]‡¶¿ë›¬Ž W_}¶rPzô64¶³8²uj²ºr5ú’88Á.P£ ר^8Ì"…m]ß¹r¨%S€ù”þÅúüß_# …”<Œýyä'xaä&úæob7Q“:ÿ÷2”€ä0`ü­Ö¬›‰~[ÿ0él ¤QiÁÍþ½=V :‹ÿS- áFE rå^+”üÏó¯áÛ­™ T´ØÏ¬[`?@UqºÙOö¦ŠŒŠ;²üqÈ[ÌuDõæí6þË.¾†R¶Ã³¨¥è'ó¾Ä×⢈?uŒ³7u¯|lÊE‘ûu¥jÐxÀ©ë+ÕÑ€¬˜hÙ£UZk¼\Ze‰e­%ž‰§+Æ9×ÓêK<àk—Òúâ¿ãõ(Àª”ÿ¤µ)¤jèÈ*ù •Ëp*ÛEñg¼*S|å¦(´ýÉ}„_´ˆ‹x¨y3½y3½y3ý¿ÁÍtr1ŽRˆèC’Ü]ØÄ»µ^P¾Øù؃øc7 "¥o—/ym¦ä(,×BüziãáfÿÆ=ô~ÙPü~•W}ÞàLÔ ¹çãHÓëE$o g:h²5»ÍØ—¿ÅÓmîŸ o}3{û›‹‡¾™½òÍìô7ÃØ¹WnYÇå÷v”狱ï®ü2Ûï5CÒ°º<™¢-òßüšÎÝf+ƒWeÝ>tÞÇ»§ˆ»&é|áK:¨`Žü“tÀr–Ž7cGÜÝáåç£Ë»wûcÿ[Ö9¯0'=!΂éç„k32—ÜyÆO·éJà)£ð¢UÞ RÓÀùCzÏU¿#&™&¬†€s³ ·„¬ÂLGØOº¼íYŽë#À.ºŽ–óÑÑØ]öÝò¬ž+»Éžƒ`{¨xÅ>[¸u|PÔ(ø×OoM­(±Û wæÎTÏùî܃áK²+¬0 @½Û{¼nñëp"ú €sÃác/é\Iÿ‡Gw æïè­ŒÝnçr0mc3…¦t¶†,/æ§®›'÷4&X½¶•ÏóÛÖPò74;ÙÐé0  dŠÙh«Ò1,'è±39+=¡—µœ”#5 ú˜}̘ù|‰Y¸ :é§Ýþx6ØjÑý?Ù}Ú”W¹ãEl#ß½k‘càA!ÐßËÒ°¡×ð{µ®§œ¬Þ·<Ï,àuQ”ò¶o•o™Yøia…嬱@wIɼë‡Fè»h®5¬ÏC”9â}â ËOú'a¸E+ðm5÷<:GÂ+@c½×få|”‰l˜eaä<ý²¢*%„œr6¹inô;0nLhê@ç`cÅ+ èiƒ÷Ös&üÒy íÇ+´äæS¾Œ^>Åò|Æ6ó̽_S÷ ×Cç ÌÁF‰ÂÔ×9Í|`·[]?fr"Áiå:­^t–ñ{Ë ÿ¹Às ko®|·ú¦uŒ}°Œ‡9p ³$†!ò)À{êÑŒFR×ÖùXÈòWøNŒW/2Ϻµ~uûðýê¡‹;s ;s‡*ý•1tŒ"Ÿ‰«²'ÄË„Œ£ÏÒÉñI¡@MŠSrv=Ýc§³cùN{­{é/·yÔ:}޶cïÁç'çžÝÜ;}Üx>zÿùäøîq¦^w+âÏÓ+µÿpa‡ðܱweÍQ\Yú½~E¾y&¦DØžéŽîyóŒ=1a{›ñ«#«2%¥*+³"—UOZØ„À4 „Y\¶0‚FH,Bâ¡Ð«AÿÀ -ýæ,÷æÍ­$w‡qD6Tݺy—¼Û9ß=ß9x»‰K¯ä…º v9u ™^ÞµeÊq½\ÍfE,ãô*Nܳ'™†ò!²Ë®Ÿý¨$¬££{ÅzŸ¦–'¯cRÚ‘MˆeBbæC*¸À‘è—³?ΞаTr¢OxGs ð1/úM½†‡J%p‡u‡â|‡k+ jM´¤Â^§LŽÁµ¯FÕÊ»£û/Ú³xË¢ËÚ³¬Ô–%Øò|[cVÅòAö¼m^¦åw¹ÝŠWe`ØâÁî5É3ÑïvÃî]FPv…/BÖ'‹Lj_Šù+w(Tó½öi|5µ&… ºÄÈ (.ç]=$ÏøA' àŒ_ka¿:-Û1žå‘«1yÄLîè±ð39Àv`\u³LT8²ïzšîÔ;3ކZ¬ 3:K3ѲHº?<ûdº†W`mº²DßdŸkzAëÓ9/hYÉEðû­.Hô³öé—ggŸµïgÅ¥7Vñó¹K—7.mê¾<|acáxJ¤bˆzsb„÷ØÜ‚~&6úλ µË5Ñ7¬Ãâè P°H@—*G8d~X°­’_-Y®ßWoÞ=|ÃjàW]§À›bYfTÜ›RR _“ :ÿîNØ$© ;Ã’8À7SÃ,<Â`‹É!‰bàÅ7rù¼üœ7ü™ßÄÀ‹ôÄðGÀOñULù@zB¼™¨_U·ìžg€žg€žg€ß’g\µ)ÏéHbu ícsØÏº¸ÓI£l3C‹˜®¹ÙÖC¤ç; Øë®µ—Ⱦ ôai¿{]hš8:AÓðÓž°uì:›·k×'X†?KŒïðú.Éy~˜CBZRìþ*¾ШÉõ<ÓÕ(ÈZpØÈ( ïm,dß„¡ uÚ±v™ý„pHù÷'ƒB:€ªª¦ïë°€L´5Þ²TŸtœ= ’Üs2ºˆ ðÞCЀ·Žµ)°òC*3›k'ÙýÀ`gÎsíºîwnoï…€Þ¡;ôn2® ‹-^4´¼³m“Æ:Žp¶XQŽ\<Ÿ”ö½_è à©¹S´Ÿ ký”7›ÃoÇ"CôZzuêÕ…4«Þš`k)ß{uœÃè´ÀÑáh7µÛ9ž xØi"…~ÚuOc„<,3NÌrÞÔnÐ…Å­˜çº´`]ªmïÄ æ–›AÆ{À kšÑð+¡ßB+Ч0©þç/zÂG,°3§fpÚÁ†6 ]²:ɬµ]]?, `&…eo«d_Ã8n|—T®˜;¦½‡çkCCž 6Ýé<(jð©Ö™s¨Ë pFOÊŒ/„ØFJ¾ÒÖ°Sxô‡ 6¯þûrìÆ³å»§ŽmN/¼<»œïáåø"dzqä0dz1zqϵhïþàòD:Sô 1bxÃá£ãn½Óšd¶Gû¬AÎ×­º6Y ýC;´ª»¶êÐÞâ¨Zê–'ý/TpÎ…;:,pk诀”K½_Œ.íÀ%Š0hêúpÿ©št&Í„h³ÆÉVC›:rKà[uœáÐ —2QüUT€Ó•,òqÔ«nêa p.`›Ð61 zyPx0(jfÌÃèÿUtwÐGéI¼¨Wʇ¸A;1o{´÷ÂÎ%ÓCGH¿$7ŸY ÜË>™hßϹms ±Öž˜ãf Þ©ÖY)™ŒñJA×sHÍÐé2uºLÂ6Lâ0`¹½BöAøÁ–ƒS¤¼ÐBfÓ‘kCý¢ 0Ó°ó iÑ(¹ôQ–îã!£Yˆ÷HŽxÿ"|¿OTùë‚4Oû%º¸Oþ‡?<  Ÿí›;Ú1Rþ8TüV²‚u=>ÿ^‡'8i‰çè`Ió°Öv{ôÊ Æyj!êb’K9áË YêýM2àK‹˜"å¦3Ü#ë‚E¤ï£GÑfõš°×Âvr ºîµï! ™ÇÆ _c&—÷¿{öü›8ÑvÏp7m)q?:·´ƒoˆ¦[¥ ëW2½ÎœÎ%6'ÕãÓ~âqèvF÷ÓåHyOô²’áÑ—0lât‰'úÌN@Uè<.Úà£( ÛžW0òøêïÁøÀyÑ™„}ÐÂÁªE’cÝÂö³è­۶ø&Q×Å”Y/òCAè+‰»æépÒ¸°;V»Ð8$¥{VÀätêBÈÏÁ,*˜+…fHõU÷]ÛÖ_ƒ`ŽÌñhj‘<z áz’y25˜ûDQè+b3£‰‘Pb(E¸·€‘×öX¤EWPXbBpûÑõ§ÍíêFŒ‚-ÝdåÞC"±š/!ïÑsOÇ¿ÃÛÈ óúÙò—Hݽñòëå¹?)õJ‘¸ÄOm¹JטDèÆôñ§cˤ|µå#§±Æ‘QùÔ5ªw? OûH²äÝíõhã6¶tôÍ:ã—L­N郗Èxí¼"ô*ì(ðæê§d­Û“Œs*ƒ''¤E\»›’çH§˜}>G…ÕrÖòò·Ûä¯Li£Fä[û’^Ë9²ÝÓº¼‹Äó™×—`8ïCìJ~þæ9A?·ðÓmmkáië“ç_]!5ýÞb³ ¿ueTÛúþ:RŒ‘\,éÈIµþçóœwÁ/vk5äk:(@¤¢Å¿tÌxêÒíýˆ¯î€zPElx&Ÿ¬>UX^«sù¹jÚi¤=1ÀgLçòëp{ú”TMäâ &:œ£ô~”ÿL[‘”Iô‹!žkÖP1Rl^3­FEs—µZœ§#¦®óËý3ââ-<89ÓViÿxuóà/÷d’@VÒgq÷ߦ‚/á³xÓϦ˜qV´¥/üKä€ò0U´ nù‹Y›NòƒáŸ#Q“ŠªuX-¢Øg·EnÉÖ±áÂNišh;¶ò\!ç׳Èo!a³ÿ"ÎPþÙ¼Î.R͇)¹ÈÍUÁ þ‹ÒÓÿì Ê¹¼ï¹¦îVŠsM”fA}ýµ±p€.wéÍ x»%Jµ$þÍërÓ1‡ÖHàaÚ0ò¡›&­+XsU<¿Ã8/¡Ø*–Šîþ†¡š˜ÜeK¶tíºôÙA|µi¹UÅ-ztçŠaÉVJ} ‘héùªî€†úŽ@ã„~bÄp9íŸPbùg±è,RMª)Œ ótôÖ¯{±JtWs:s¤•¸i­d×íÁr\ã–‡:æ 0&(¿Èï <4òÂIm%9]~§ ˆf'¨ªj–áx.fgÅúÙ, Ž”ô1ø3ECxõÖú4 !ZE±ÑбÔôÃùOSo:2©B&­œM»«ZMJ´4Šò{´'ß_|õÉ]ɺÀ}ªãºZ s“¤=S›ïîÓ«!ô_2”9-ÉðíÒcŽˆm“fSÙ‰™OÑ}>µÚXt•ðìakstž¯"ªíßVޡӅË3I{Ô/þðlå›—#§Äe—väì‹Ö,(L‚ªÚyÖ¾öüìÁÍùS›Þ¨o¬ŒÝÄõUÃ+¹ j`%”‡W|ãA_¢¡Ž1/aÀå71ìÒ˜,6ø" ¦€ø$'‚ø*¦€ø†A6§ƒ,PL ñUM_Ëòk‡ù2ZÏò«gùÕ³üú-Y~9ý¾ÜN¥á¬cÓ¶Aòtäµ.ÉÿE_8h`À5”ÅÖû|÷eMe«;…_´L/»wk©EÉ‘«÷Œ=V×&챪” ¯ßte†õQ&lÍpñ}jVt[·|K—WXUKÏ]!· {¨l¦öñ Œ¥ÅÖ‰ Ê ÛÌØDÕuÏŠ™@^x: ¢Ü4aâ¿Èà‰CN2ˆ}à/—ÎÆB°\l¡Sȱë[“GvL¸âä¸1t(ï/âVJ"‡“xq¼ôþLXÑ%ð1ßé“ÎíµG®»FŽåÑG¡Xý´Ì¾s»Qܘ‰Q‹¼^‰¨Ý̉>q›¶õè8)jÔ~R³ôšmU‰i*;¢ø öô¸åÐ7 ö/eÅþvÂVhãà]Ç|!þ-Ï2(½ òìtRK+Ï,&g‘ Ó—ŒMIÞòÉšqìn]v±&è^Eö?g¹æ± ÕÂÍ#6æ/áìýsj-çݽîjUçÞWÆÖwÎ-^ÞBßþÂëõ—~׋“œ {ÑmGÈ»QHï y`|÷MbÛ¸¯©}#KÍÝAºÁ“©½¤È·ýÆ’Aí´ÅäѽR›M.w«Û¶ÓmHm@ÛéõéýèµUéwSÑHËÏó.…:ŠoGާ8oÉ(‘bÁ†•Lð˾•Ì«bå²JôéÌJ'z]9]B®Îüîö:³*c×ÁLÕ[Õ&G0áæ)6މt5šÉäØ˜&~ÈÔ™ß7Tñާjpöü\½W!÷½$U ©wâjð^OyQ:V9æ QÕÍ’ë~žZü>ÇôÎèÅ"ýç(Æg@ò!Zˆí/…ë†Çãl™Ð”»Õ‘V•Mtþ¸ *eyú1°õPï¢.ïktîÖ:wAgf'¹z¦*…ù#(PGÃ(·Úiù9*³ÁíŽéÌ™ˆõ»TžU xa¤rqYéÆñ€ï ù}Ý+<Vº(ÉÉQOkÊjÔ3ªr~ ÷uf]=OgFoܱhéûDPóî*t&þyw]º{¬ò¬bEtUÜq=¦gãKË])¬k'¢ŠÞQߦ˜à9Êv⇸¦Ô# ;Ú0b„ªóPÕ29=]¡õß^?¡´n~¢s5z×~TLL×NM+úôˆBVÃÍìfR—N?àç¤QšJÄe˜Îˆ‹/ÓTv›tƒ<''·I#øÿný8óðÇ™ùgVe)*sHWšv¦P+ÈÖÎkõ"š¶³Á¬Û}W§§)ZÅònø?#?M.lÍ··¦¦^MßQ¼ŸLqE¦ÛBäžTšdô ÙÄ%rqƒþn±¥0g rÞ€XY"}.JG'Jéhiñ;ŸbO”š¬*è´DªØÍ£ã5XHÈ+AމR–ÓuÐ"ÊÔN’Jò̹k§ž=8T)õ埧bŠqTúR@ÞÌÚWæ ]Ù>:Žn’#ç Șl^¶´f=¬„¥d}Øfti‘ÙHz_rKð©™ï|I-,½ß¯Y-L5 ÜQ8|f]9h*RU.se0w<_F{Jhíê%jŸbðJ,ìS7tŒ¾ <ÑRê3.©)ÿaÙFÉD—?E§Œ Ïêøªàš­7@ÓÀ°£À F‹Vâk¢íõ®Š–ýU0`·gÓg ñt˜æ9n:D!üVˆñ1'É 7ARÀä›?Ü~<? nÀ^™ä$".¦?‰añ‡Uùƒ+4(â0Ê#E ;8A!ÛÃd@Ål„ÂE¦ŸP‹º¹€ú‡½§ Îñ‰Yc¡“¼¦(™ãVÄýG™XsYÆÀóQîq‹¤K–u%4ÉÚ£Œ°t[(Å"3¡Ûé¦AÄATwAlòñcPÔвDÃjèV*zèGnŸ@5­Í?Í? 6ÖuY1öÕwÑt9¬øf®‹¨Ñ Þ,³÷§x‡É3û2Þ¢÷ÌÚú-D°<4“7Ðð‰mòãï6Þu~ê- _P¨­¹¨Nlÿì³Í¡N+ð›Û•"²Wúxx;·™üŠÁÙ0ìYÅô›ÁÚÉq«9?½ñà[>…7OˆjVN何ÿ½ öšÏÝZ€h}9ßñÙïþBëIÔMõFÝøoX¸«»^ÉòsÜ™ xV­ÿ£AU©l˜…2-§ïíÏßy»¯f‡ ¯ø}®kô™ûO/€ØÒjÐ(@S-?Ô ¯°_ê…~d{·Û%¬»tŸ:%vŸ*!ÏÏÙïv0wSZön‘{SigMi‰S‘„£)>Ò˜JS9Y™e§ñ•ψQ_åX˺ áÓ¸K+;ý_ ÙßíÀ…ÕC÷{è~Ýï¡û=t¿‡î÷ÐýºßC÷{è~Ýï¡û=t¿‡î÷ÐýºßC÷{è~Ýï¡û?tŸÐÝ8ÌpoFŽpäß¿-a`ØwÝÂÿàzûäŠr¥Pª™ âbêö^…x~É6ãWáœÿö—ãðª”\,þ÷»ÄâùšeG<BÔÉôŽE$¨¡‘„o”7wÌ`Øõ*ŸëFÕrz|ïß»Ç÷þmð½yÝÊ­ñcþª½‡ËØB‡C*€„®ñ$¿K¾xЃÓ<«IŒ"Y ý<±[…gÊž•4¿3<úZAÚPk¾žS®jÈÐDÅÞϰn#–&ЧË,[*Œ]ýi'Ÿ˜†™ÀÛsòxQZüÊ]«BÆmKec’Ž[ÁÇ e¶v™ü ge uÿ¸3“~cjÒÒAÕƒ< »C¤ ÅÄëÏðîút—þàäóåóñ9"ß½õbINžX¸Šü.ªñzÖ0¢¦ñèÿÙ»¶¦8Ž,ýίÈ7ïF€bÇ;«¹<Ú’#fgÖ&,Ù»±/Žêîì«ÚuÓaÝïè‚ecƒ ¶„dIFèzhxµ¬  BFú{ÎÉ̪¬ê즅'V㈎"èºdfååä9ß9ùË䱦+Û%0¦léEá•èQ%J[‘';“N¸R@˜Àôÿ†~âQI¦rP¢B+u6UÙ.æùŒòez6hÒE`äjUåȶ¸x3•JøKÊÌ6RëþÆÔ*cL…€`úCÐ:>¥2$«¿xð¶’l-ŽÙï¤ù­Ó &FK.!¡¼Z”–•¼![1Äi©(Ié}Xá.f1vѧßF^á™ #àB}.ç• Ç&Áú‰ ÞÇK`Š'Ð.++¡‹ÔäUî„<\=SqyÌìr"ËvΪpŸP6Rž›ŽùÇØ/âºV,§aiCÇ¡œFP—‹ þ"ËGüÇ£ax³’|mä¬XkÉ.ûèóÏ>_Ÿ¿…€í·ßl|y:¾®ˆ»U¶áf‰‚›n œÔ’ÁzP]•e/ ÀwÒ¸Ç4ÅUwAð<>ªå/wÇ^|qP‘3 hÕ“~¨r ãÒp·!Ê–J7‹f[}±B«¦?~6vy4¤®ÚIv¬XŠqûBÉCÂלd,vÅîÆÝ]fŠâWÙäRHæaœWéÝ‹ ï+f.¤V9RÞ›&Ñèn›4˜ÒXd¶K.¥Djól'/p¦4?.ÉÏÑN:`n´å^€AŠÈß}zöžRç‰ñ´uÆ_ÜÉãKàÎæ!%´ó ekeÙƒIú¾\_ʱ~ºk„ñ>”yEŠ_¤ UNè„ìŠæ(ˆLæJý`ÛD¿©hª.8 Twºv[â£iE¢YÆßåËBH­Ÿ=¾yctóúy©b´“è‰./<ïo>ô|búùñë𦮌ˆRvÎKñû8ÒÕ­Zµ®#«T²ºÂ|­Uk]eϺlôe ¬¡õ£_°Â|¹Ë.b ˜k•l0X«a1«úaIp" X.üaó®ìªÕÂZ¡kÀCH*­½´í?ÚÇtvÈWa(ÃÈXñû–P[ª”66cY™i*Æ[åøÅQW«±W«rÔsc1ÉÃ+f€‚íBÈá й1bIœ ŠNRÌ ùKÌ U͘K’f‰ú…sE5T›1¯ ÜÝrÚxÅ"èðèØNtl':¶kŒŽ­ðÁœgùµK¼'D†J@‡µ\"[0µ¥ŠîK0Ä¿z.¬— õ"®ö·ê|/Ž˜Ó`CC:Âs2‰ ÚìYØÐØ2¢•TÉ `ð9ºC¹Pñ8X´`΂QP±©/U™3Ä‘€Ö†5Póú­l»>Û¥‡kÞʉúµ>wõ:žâƒ¿í]ì½\`•#t,y…šçGTßßöôv³·?èÝÇ,¶ï¿ÞRUªœÐƒp™ª6²ÒîÓñUhA$gRPUÀ²k¿>ƒ#V±\|¨TŸ ðÌ<ØðVÞ«Ö"x^¡§B°Ÿ¨gëÝÓ#šGŒ€Ð@%eVy¼Ú#j‚:°ChBp{­ uŽªBª!c‡ò _v,ÀrÛŠ|;_áR®EȘ¼È{K¶r«b=ðÄÛò\˜‘ÐaN®©sû ù@ )dðaâJ}Á…g—<êÖ„C!~¢¬o¼–.rã¸Ï£Ô¿Ð£N}Žf›_à±° Öù «Zƒ,–a>ë ÞÈ 2nøqï¨CÂì|®ŽÂíJÚÕM'óqnˆJD»º*+ÄæQ &¨¤í Ò K> ݸ~ {‰÷.1P2n+w*à°FèK ¿Kbӹ݋$[RìÄ¿ F±ä“Töì§Ô”aøßYBhüýÆ:o‰v“òyBr ¨.ÑrØè qc‚IX}$<|ÚLH8h«Ø¼‡ØÊëbsüéá.öÓŒ$Q8 †; ø9ò»“)‘¢Ní¶×pö a˜šÐ.üFæMs$9ì!« ¨P ³°AŽ ›LTñBúµˆ@öàgÀš…Oð½€ñ#»&È ³•W‘¡ 5ž 2Ð.b’8ŒE=øAPu}Ê…þ–C‹ŒœYý$Áü»YŸç@Å!=a»¬Ïâ¡­ ËGº¶Ù(5@…=øÍm!C¦Ã#5@Žì*œ§dd ñž0Uud‡Þé5Ý볌¼ÈÊ#L º„î†2Ïq¿D{nÀÀ¦EÅZÓ©ÄCGopÇ¡éƒPœ1v/Á0 +Fbz>è"–à^àE‡³jý»j̉ÝÏe7ej)*êOF.áXÎ-1‰ “»C©tSègžïU`ŽWøwVÏ0ÐñŠx<]sw¼&tB©>×}R´\kZsnÀßܤ÷ëSUx¼~ ž®ÁÛnøeÚ’7Ö+-]è£çE¬‡Ùqp¬±y Áá´r°XrM`ƒÈ»â*Z´³x¢2˜bUNW« ÖZý6b«°ÁÅ«–6Œ7ÎOØÌñAdÙÅöÁäQýŒß£,V­ml4A´ sÈú§ckÃ߯ ¬{zÿ¹qn­!/ôøÚè =ópmøØÚÈ¡Jo^Þø>»~êâÚð™õ±™µ‘ãÈ(‚ì"ÃðzFãæ3<¿qêôÓåË’~¤Á;¤óà‡€ý}P|ËÚa¡L¹Êëtœš~tmxygÞ¥qÍ14žVûÁ(XV/ŽkϤ+_ £€."Ñg-ŒFÅ= Nir,M«—W“ü‰ “áS²Aðâç Í£ë—e[‘<å$µø³4×Qlô–À6ᓨä *á ¹Óôø­IÁ‘ý÷É‹tZ+Ús9±ˆÒÌ,ªµ#ÊGÝ1AN±€¡¥Mì˜F†¦DšTF„Ö7‚c/œµÅ+³5rûÅÅÓìÅ—‡·ŽŽ³­cÓ[3‹ìÅýÛ/Ï;>ÝJÌúù4‡Mÿ­‘KrÇM¿ºuî‡_à‡_ý±¹°7ãø‹”Á)ôu4Àò,ÁÞXÃ’FAÁablR² b›@°ˆ˜l‚(mÊ’U{ åJŒ•‹Ïù‘] †²e)Ž49,° |» »¼\`øx¼d¹ø†¾ ²û$ÅŽ04U $0 [N±ÀÉÎ.eikÿ¥(aÕ‰ywp$@ÉB=@ð+À^ê<™Ê˜¡,¬ŽD%›ÁÃû`Ÿ’:˜”èÖƒ­Ø+­Œ–·rˆE Ñ„+5—Hül׬ÂkâS¼*“Œ;dPR™èz¢r+r_@ËQÖðgmùØÚ¾`ö5f´<ËA ´Øýu%‘ØÇˆ©Š)U@%³HyàUØÙxÁ. C<àE¤ò‰¡°„.ç‚ÒÇ¥Ò‡[[¢å¥+à²ÚÌÆÆè&ì…ií¯©[3óM0³j ”¿©›…–#WܤѪôñ{àï}7öœ6­Z~PÆy:ù ÞRä>§kËäÝ»óxî</HG  9_z| qb6Ç×¥×o‘¸¹‰ŽË»+ü ²óø8Cóç{Ýìñ!ŒPe?ßcôèFõ,¡hÀ(¼´H/¡C‘¼Ž£??d‡®s n1Á¿ ;þø$* æ%F°Ð‚)qb­ËPÚmzl*¾IžÞ(}ÛoI£ÏHÿ¤AV,~õŽ6õàz²x2”îš›f25Òº‡¹$/ yý¸Þ=P¸Aõ¾½ºÁ‚_ÁD×FB·òh‘¡•Å‘¼~œcAÍsà’Ëû$3ÛW¿'á$¬^%È–HºA¨}A쉜퉘úü2@‘Ó\²>‰¹¥Áp0îGpêшÒÈã"û}A&¥ 3’IÆHE9¾oÄËäùŒ|Ðè¾ÇyMꤔ8ÒÈæ.ȸIžFù8sʉ°¨5‰ªT«áF2Žp=é…ŠªÅû'¿ âóK“ë‡/¢;Y¹©Ÿ.=\_¾¸~úøÓÅ‚ºj}la}~ts~êÙüÅÏï­Ÿ‚'g6ç>¿8/^tcüúÆñal¨²Ô„õ³ÇiÙgÀK¸¿ÔÜó½xÿÙü”€6×ïÚœ?­z6>»y` ôìg çžÿ [HÌXO¢¿}l”ûç—ïoŽ]Y¿viýÔü.òŽËžº­I%ÕÀ ‚j:óÔ6¹ÖîøÌS>ª©“Nx¡'gå+Ü-âWƒ”ü K9Ï‹žW³'{ÓK°º¤t•kŽ]ëÓ=*Zù0ò¹ßÓÛ»'è ÌKpQÑ`{yÏ-Ú¥®*~W)¬8µ®œñ¡j\-W}ÓùCå5mµï:Þ!×VcFª­Ö¬öz!møí©Û%·•>Ôú59à*½kÊŸ|•_6žòMÅ´•ò:M ½âd:("-šªœ1·¾š êI1Mþ9à @óBþ‘ŠÊëÓêÓêÓêÓ2Óúäw¿SÛÃû$5Ô8i _ÂçÝ&åNºˆÀŸ”x ~$q`6s·>ÅjŽ—/k‰jßéÁhÀv/‘ó2 JNöºažB<4ÕgÈéó½2†A oë¬ÿ;q`ZH„é‹QìMÎ&(õ´c_VT ¥(${%Oµ\þI@Ä[´ÐYÁF!)¦Š¸WžÌŒ<™¾ñdz‘2áÎ0Ì€;sHý>OÉq<™þN;$V°œ>®K:±¿>Õï9˜väˆ ù‘„H(™§‹!ß­~M˜êáFq¢ÇKÃæ/h©û\'Ä ÂZ€ÄåÓ¿ÜœK –$Lâ]Ø€• X€(Z ‹=Lbowc7l˜"š8-—YEìÜ‚/AÁ˜,—0H˜$p¢—Ä‚Þuµù!¦L:x¢>œ‘¢£õl»ß¨õC6Õ±tøò¢_&’„LÀ ²-\AsÆÀã$‚â¾ú´ïÇAÃZ ÅYJ„•Ô|#óû©Ê*-ÅÇæÃϟͲ"Nñ|ø«gß_—7šÑþ×V'„-‹¡ýJÌ¡X⦠†ÒÿPF* ‡)tÂ"¹ðý»L"”mpþãÓÿ•|»XdVTÄÂù¤l‰O5¡ù=éPc–Ô¨Ôº{%bÿŸ–È­ýè8ˆ ›$ˆîW‘KþIêo–g?6ʳ̱–LÿÛ}AÜþÊ{k±ÈÕÏl Y’u¾‚„ì"-É·QàX_ù^ÃsYAT XEŸ0»Õû¡î¼3ÎrM¨êÓ.SY,ÓÑ­$@>_Ÿ Xý+lr.%M.ʽ é(¥¨ 6†øî â¡ò.ÖçØÊÛ!úwÞ]+¤d°Ù?×J¯ ¿qræÙÂgÒ‹¦\n¿’ÍßèçjÓ¹ôj›BÓcRû{ñÕ™_î<0óõöѵ2ï[nŶlæâ&®í ¨hÙÜ.Y¶xÕ 5ÏHŠêÄJþ£ÌQÚÞ¸ílËîïUçÉ('›ƒ5—ã ï`Ô’ùäÓ!:zt¾½]‹)òÿé'³ß˜Éü›MÒÉüÁ_YË:aáÙ$ÚyUî‚U“§ ‘?– Uóy¤Ôlß–Ðßp;­˜ªáБÜWwFfßc”©3Þ”œDäP×íé‚ܘnÏï߯¶ì8UO[üýã ê3(ðBVLoçmS÷kßÍÀìÍŒ°üøb£ p¡ úl|ö齓ÐÔƒ¶(ûШ« ïŒh HúÓ›1\è+EW‡ à ïàTëzÇçüÝÿé íR9ìwó)¸¯Rà2.êß{Ľÿo8ï¯ÑìôŽ©ÓIœ?µ>‰“.¦ TÏOרFDþã¢îÉÑQ”öéqy]øÙvƒ„å •\¯Ú!ªïÀgø¬Ÿ5Àg5!¢zHÒØy E³lÙ2©ŽÞƒ¥Ò’O“Yx0ÈÉY%ŽÁ÷¹ž}‚SúÈœÃíÝÎ៉c¡ïb¤4‘?ª~h CÊb`Æö¦P ‚ù¤%³üÏú´Ó‡Á§¬;—ƒâ,Âl­°‘î(P%h§}ö{ýõ©\ÎŽã@¹‰Ú›¸ÜÕ“YnÌ£¨¿ùsQ3¢ œ8Àm’È%4äjkäÒÖìâ‹o4§5zŸ£©@#b$5Ò®Òb=ÿdî€Pþïª#>WŸÁvDG½ÞF ¬Žpæ¥ÂŽë}9r™Ñ•Kø=ТÚ¤hކ)Èã&·ÿQDVìŒìHNû,·®ßú˜81C}Tí‹*²£¯ Èô‰f*W§Õ)¼ã ØÐª_Ê[ëGæž.MÄþüôQ!ò70!½e9õk+'*ƒÝâØÏë ¼C1ÞÞÓÍ@Íg.§+ðåÚ°®W—ëS…XZm'2Á^½V¥‚Ñqh4Š@»·÷00„˜ ×™-£ñªõEå]óÃ4âTÌŒÁ[PH`»h\é^0”ÙvÁ¢Û—/s ÔŠŠðR‹iÀ½z­|„P Î"àòå ŠÍE!ƒÍˤìËd¸`Ò iÀ¢z­#øÈ€B²dØ?ÂwVã¾¥áq® C^ãq€·÷üÙqêÓÌs8ÖªaçÙ!+ãv?(x“yI !è= ·ì ŠÂй/ˆí³U(ëpc üÿ±w}M’ÛÆýŸâÞ-VévG'éqoW'­}sZköd9/S ‰™ÁòïäÌì>ɲœŠ%vÊQâ$N\®ü)%±+qR•\Yr^ì¼ÛßÀU–üÛß!¿n$8;w>[Ž—XµËén€ 6þäñðÝ?2½Až jS áiÄßÌa*aM*™1`Hú³l ®ßÌV¼Ë}ïÆuC šF¹è o¢­gÜ¡PgÜ&ܳý—µVûUÈ ãûÁÃow›Çò…·íþñ/þ1í§€Ô¿!õïümÎ~ãíŸ|áïò…7yßö›”×ßá æiÜ vü-¶ã_ò^ñó5oKogÁ_w»©ßsû‚»]ÇoãxƒÏ‹“¿ÊYý]ËÿñÅý%þj¶ïÝ3ý¨(úìçïüž·‰Îá/¾øú_¼ýî/ÞäÍÅæí>?ûÊ×xÂyç÷þW¯ßøïÿ|ø³o|ëgÿüðñïüñìÉ^3=üÁ6å)6*$fÃBFwÙY–î·AT‹Ëj(8N¶ž~ ­)èŠòl æÅv§­yný#û¦ïðäõõîí=(ñÇï¾Åq/û‘Ê¿å©î û5ʧì#¯&žõ†2E}üÁg÷­=ïrÎ×QÄþà׿{çòÆU!.’öâ_¢×Ÿ©üùÀ ³ÃyuY)MÛj“òƽ/’B.Ë›«²ŽÅ¾ VÙY©-™WXõÜ}£à½¬¹Û9Z‰¤&ù±AY°xÃ6nP”‘>¦ÄÝ}£´O“¶Mò‹qhAú%Ú:ù£/ÿè-š¤Í´NËVê³mó{îí<ô%LÚ:ùÑý_Ì7àЄûŠ¡ä÷÷ÅÅxò4S'ïxÔßÿ.o”ýþ?$ªí;›ÄëîÉY3”Ý·DQ3žñ:7'fÖ$÷ÆÌšt‰÷u{7ãÎ0Þÿ>uãG_g¿iÙ÷‹Û^h6½þÅÿä©&€f{æ_ýœ¼…ÑmqôÌÃG„ÕÌëh>üú»t_?øÞï~ðð?üÎ_ðÝ?úà½÷>øÞ;?}÷›¾ÿåÎSAîdžÙl1¿íJúÖOÿô}ãÑt%}øw†’±OT•¨ó²æ|A"¢Íš@+zR2gé¢$ǃ!æHbe%s8èôÙhÇh_ÈÆ²™¨hÙm˜E«œpF`_·c˜í2³mL\±¶ï\{–Þ̱4€§A!ä!g7ím R©¼[gC«‚‚l¾Y ·-ßõã}4¥Fe¡ë?MÃÅ&nI{ƒ\æÀÍs·>ˆ5—´q­ÎÙñ~À/ìù¼jzF4˜ö{6S‘Æú»Ôa¤Š [çAÔI&Cz\:ŒËOëè&·¥ÍÊÝg,í‰nó\«åJfÕ—âN ±Ò/4®<¿? ¸–±fOÑ€0Q1ZØfY@U 3U´Û@,øµW:¨¥Ò²^èàb¡m]4ápl]–¤Ô Ý–‰R/«F˦­‚"QzSCse¦yÕÝ• ú&Dïø2è@hºcÑ^¨F·þÙÚd‡ÏOž [zj¸Éó·:®Úô÷ãù›ÏÀƒ+³–B v7`—˜¬£ +ó2.ƒ*Îc%Lk¨?›•*RX¬%.¶Ãwߥ­[zuÕÕì… ×ªnZ‘Eå6,¡‘Ë&=#zÿN ]”4¸Jnàœ¾"X7è¸ÅØÈ«ªJh³ðTl#õbDM«£AQÅŒâØ÷TYÅöŽiÙÇÿ&«_!Tûë‡Ñ¯²7ŠþøO Jy‚ úЦ¸¦ž5qÛY;›â¾=»cYœ& í‹;Û³2îü­±ÂÅq2ØW¯}ÖÇ•çlÛ[ÛY"÷éÚÞí7.·DÃÔ½yö{ÝrYÉ5ûåÀ‰Þй¦\³e6¡·hVÐÙ5Ë;ëfYgã\E¥³ÜvxjoõºZ8ÛçNßoÝ'€¯ÛAw¡]k¸§<{Ë|ËØËzûØ}•x³«I[9Ø?½“vÓ)[Owg{êÝëë–s¯Ô·ª®Ñµ­ýfï=Ö&îØYW}kmš±ÍuC·¼NÆö×uÈ®öå}Føÿ7h–&òpÄÌFÌlÄÌFÌlÄÌFÌlÄÌFÌlÄÌFÌlÄÌFÌlÄÌFÌlÄÌFÌì“‚™9‹b"|°(“~b›1ç¡]Ì[Œi 1ͯ7â¥-³ œýZ€NŸ0^öX¬l‰yÖ^Ê# b£ÿÇ!iüN‰I‘´O<’†!C:–vþãGÔžâ8îGÔú2öâi·žOcã9Âi#œ6Âi#œö„ÓŒ%vºêìñÿ¸öÄFy2‚k#¸6‚k#¸6‚k#¸6‚k#¸6‚k#¸6‚k#¸6‚k#¸6‚k#¸ö ×ƯèÐl`› ¶ÉÀ6ñ¶‰°M†Ûä`ã‹<ž6>™6âi#žö[†§M~xÚäqxÚ=ŸÆ¦hÄÓFeió™C«ÄQb-,™vB¶L^¥%19iuÙ¬ÊÂ2š‰¥ê*ŸG­ÊË71NXÅÕ<)ô\Ë+Š QµŒ¡‚—N0„É7.›ty dÆGN3ïEä£å¹]ÑþGÔD‚‰{ÏÕ˜6'3o‹4ŸWKäþÏ®Î;ëWú[/ðJ|Í0^jÿdÜïåyÄ'ÝüÊÚ‡÷ìÛ1M—ì¾(³ïfeÒ6X2j¹û.Je‹Ûy¹æð‚»oÛôß®¹ûæMÿm›^ì{ûæ°ºWcöoæìRìÚ9x^qÐÎÉn;'};'®»Ï8Û¹ûУÿãîþCÃv^{òZ;'®;H •9½Çú¼™r¥ãNÖWaGÿPãMY§¶›àsÎK­Ý¯1¶¾^U«­ue×2Ç$9w½_þ­ÀkOkî{€³‘ñªP±Èæ›]€~ço Þ¼É5è°ñís·‚-–*¶2Ûjú$"Œ¨?÷´É–Ì—y¤tÀ‘úA+ôj¡,âÌaÜ ¶©µ mPϸ.sœ¹\l£²lB¶˜A%ô&eì «;À1S¾Ò…ø€ V?z’©+Q'šÀðÕe&bë~;\TjâÒRµQ|@Á:Fy%ÕÌ“@Sv$¥Ìw$­Žv$ë|»#AŸô’j+™103 ¡€…Ðhs "¹•qh v“ÏÈ·e[" ´˜¨RyÙSèœz»âÙÆ“«:ö86ËX"–c1&AO¼–E í´×I¢Žq-m+n€ŽN*âíP!,Oú šgoÍwñír%âªMËAOÄ9j¨Ê Ý (U­›õ µPj†~¤vJÝ…øHVæ…ÂJg „”ˇÿˆÇR¹Õ¹703›Z˜gVßr∠ÚC¢tÁÎh‚­Éñ$æÍ–—nU¯æôîÚB-ÃHfKÕæ(Ëø2:Vy—gÙfÔ+Õ #Æ–³6žß1ž¨´‡BiÒ½5æ¨Z{îŽÛÆí@Ÿ¨í@F±‡m>JÊHžŸqä.ÕmÕœ—uM[,â¶ÖÜù)ªw®nƒš•D§gG/–htLÔYOÞ?µôTÈLc­ŸS©E0-¯T–‰Y[DªNvX£q™0ЬM;_µ©ñ³{¢á)÷Œ{6eç¨æ~\W…ù<án"b›r¶<Çêë\¾–‹XŸÃ|Zn¦‚¦5¡Q™léa³’äùŠ(†B‰Há¸+pW0³Ñí‘kÚaP©BîÞ+âŒâ‹âî4~šHžeE%0³7*¹ìÔÔ ë[4‚"W0+—ESᘲ3´cjD›ˆX5—D(ç<‰6W[›’ÇzO9¯KØ€¡BKAÆQÛ¡·•¢rIªBf1ªô<+ƒH'¡Y ˜ÅmS½vlÉ` dØcL£­6fƒ¼ˆœvДÆ~«vQËf¤±£@±ãÒ˜ 3A1f>´ž*Rœø²nu¨…ÎÂ¥Ö˜Xšäш7Å‚ûB,‹¿™¸qì,)=X¤µŒKÚò¢tƒ£²n#k·Uf##LžÜ’Ç„Uw‘˜M0Y£žÁ½ ö2Vkþ]â<Ûñ‹º¼Â´µz4XÀèÎQ«`±ÞäN›ˆ>0dž!XÒµ–1f–²&ugºŒ.âz\*/ÈûFÆnUF¸oËc>±Ë`žR8æIzI†Åmµ$¦2,ñd#êKkÞimk )èrNó&ù”ƱìËzÌüt!RøuÂúp$–ªÜ”ÝÊï‘bíd·¹ì¦%ËÐâº8Š«ëBµdxO‚Ž1ZêËk)Ðó]Í)m••0‹»I«¦©Œkqx-¼¡=¶€¶^¯´…c»r˜Q™íÉ_‘«º+\‹L%¼.!sޜߚ?ÍSÉE’îÙqM qtÜlÓÉ*w fŠ'Ç‹D¢ôˆL¼‡ÁEŽÅœHt¶M¼¹Xvc.H#Q³’¤‘Z,,2çE@™JE†iÂÑ Lnl™H4 fø•ªœ€Ì°·€Cwì#3I±§Ð 1sL/,ÚÀ(²6”Îaò£ÀrÍxÔÓ”§ª(?ÈžM¶l¡vФe˲†–‡'ä@¯±Ã£¶Y—ÐtyM|O6wOŽÎò“Û§~F®n÷ÙkNX›•ªaQ0zcv4»{MÓZÖˆoŸÞ; éÄù™¨5Å›X:; _‘f¥c$Ç''·ç´î0Ü‹§tÁLÅÆÂ¡PuéȺ Œ6¬‰™ ­Ã#övÊÚ—`1žp“°È!¯h˜6à§ꟘxŠ/6S'¥i_þ¹•jäKeW¦‰¿ÈÏBdÙi¡îp¤Ê )pÍîÝJÎï½pg(¹cÓŠ(žÞÎÊÍBé•/;Æx÷ØÙ쮄!gÉÉm܉٫=ÃÆ¡ãΖ==ûì]åúƒø×nt߱Ɩ]˜ã²–3¸M©/œ]æËgÑ ?Õó’(^à×~útvð+Ù6÷9(qÂk ½#½óì³;’³té«%um8‹=Á9­m<ö²’=‹*Qû~Ñiß24\áðèÎÔp/ž¸ßðEòðÇ3ë˜siªgyLí¸Sµ•.{“ê¥ó)†K&Eáñ¸~vZÜ)±ò„`Eã f*‡ÅäQåIÏÅRK?Û¹D¶N¹"ôbUï“úôÜSÐÀ²çgáÉÑ«=7ÃÀáE9KN_g˜Š¥Ç6VûNÏŽÃWZ—‘hÁ•-ø´ E—O‡V3ï–K;,!Èùè$øŸð2€%ÓÓé a¯°ÌÒ=¶Ú3½{r{ê‘PÌÂjÇ”–¶SŠgOa-P'ßHM9jgi†ŽP·…µ@÷>cG'¬kxroæ1^‡zæÓëÉQ’Ô½äÓ"ФÇã?:í³{S¯€™Á£:þœö¥6Oew<;9 ÏTV6޵–m¹_5Ù 1›}^Tv¼žáÀÃÈVå¬L—àØé³dáDº™ñÔluш?ÛŠ¢isztUÖðL” æpÚ+P‚צ¶³§wm¿õœ½|tæÝK"èjÉþ¿½zop½ºá¸¦kÔ ^Ž.(ÈÙñ³˜â –/±²nn¦ÓùsLñ©jœtÛ­œ¿6ó+1“…'8Á:.ŸöªÉÂS {ügD*à1‚bslÙ²Xßœ´µ7ɱ¯ÊÄäÒvâ}r¢`6§¢zn(ñßçà~¿"í­BŸ£S£®ë?»{Þ üNežã6=ßçþü‘+È vŽ µ¶C3•‰kÈŠàg†vØjÝfä#,4\,t“—üÃWEQdŒÕUõ ÂÎT³²ôÕ!:HØp ›w&[ºQI$:BÛTãN)r«†ZÝÄKex‡L,ûKûu·er›ªÌ­g2Vhºˆ¨<Òö1gÍ ÓfB%²L¢ØRäPj+®¤k_µìòêU^ڲɧµ«·¶Ì¥^k™{ÌÊ2 Ð0µI’­¡¶îjWÊvÅ.‡" Kü“ý㈭9Èý{ßÖÅ‘¥û^¿"ßܳyu»Ý—Ã:ó`·/íñt›ÓÐÓœyñʪJU¥*+³:3«tyÒ0ÂŒ¸ËÙ2– ˜‹¸ÄZ§Ì«þŒ„[bÍ_8{ï¸gf °=ÝÓçÔI;®{GÄŽýíP[õˆ«pxÓ¼Nâ'é´Åv­†»ŠZè6‚hH=tbüàÝ%ä0v^_ÀŸøLŒ„«N3+ wÒ'bÏ¥b¾*ŸéôÀÈZ H&¼– Æ“€»xé×D˜l—ø3û”ìY~-Hó ×lÙ–Z/ê•Dè/±x‚qmY@ÜvÌÌ0(Aêvò‚ÔÝóîž÷€žœ9Ô>h)":m\m÷¦NýÿëÚ(blˆaÜÄÐ_ªø¤}z Â_Ûø(wž09 V–¨aÔ(½Æ.P]×ñG>»èªœì“°Ç ÐA* ]ö,_”B4è©T,Ðv€8§R€> =±× ÇUàô„FÌ ƒ…YóJNµãØœþ>((Ââoan-K‚ÜZSA ëÔA’„Grn$ƒ>ì==G Bí(j B¤ª=ž‹ì¼Ý‹–*v5o›.©ÛõQ=*i>;\£%5…:qÆdÁ¼—‹ .Ô¢BvãÕ\äxÔåør y¡Ï,vP ÐØ5TûTÅ‘~ÀìÚ:qÒ3³êîî:;!uÚø¤Ç¦ïæ‰Ùo~,ÙSt<´au²?4ð營%ÿ ’'Þ)]HŸTù•ùmØ‹v#Ù‘ôô–”¹¤ø8õ)zkØxÓÌ4Ãt2Ôîý2°É»;4O‡Úyˆb¸l»9<³-ð4^º_Êêæ›v§ `¾dMÓϼYTÁ6ƒ‰Ø^#X4Ó¨Ô3ƒžÎ°:5(fuŽéªÓ¬®Ó5ƒæ[—ÌÚKu#X6ó–ͼe3±6,h¶ªËlUWÃVÌØJÕ FÐKÍŠª3h¶ÙÏ›Aóõkf3j‰Ø8üðÍ?”ÐlXhöOdvfd¶32ëŠÌfGfwÅf;¥láA3oݬ¨a6£Û,ªÇ,ŠŠIÊž?›”:·ÿoæZ¯Ø(þ ¿z2¦S½ß<ÿ'(à<ê•”ÿ/ q§nIàØsqøðÎU7Ót@‘áH΄IŸm.ÞÅtˆ‘0”ϵ'Ü6³P¦{²ÖÐ#£%ˆ=ŽÙÔcŒÄ#É ™ð4x’¼ê¦ÛÕu¨RŠÎK):‡-¥è¼”¢sSŠÎL:ÙŒŽI€šDr\|‰gp2rêiøúI NJ† àS*Q>I-v’D •Šä€(£­&,ÊìsQ#†´ ‘JPÕ8Ï‚KeE©ièT:BK€Q%É*eR•$«”IxU’¬Rf@­xLà*+JåH€¯$Z# Á㮑EmåP‚²d8Pyt€–òêù˜Vë„Öjk@¶4¢p‹S%|K¸Î$—Ä% \iº^V¤Il î8“/Y[ÞòÜKûü›êÐ/!yS°tDÍVN u0˜-mG¯X¬íèµíè•}Ù¶£WÅ:Y™Ïqò›I§K 3JM€ ïJÀŽS$ÌN„Htvc—IÔQtf k×2"#ûvP¼ì$ Çã –ÇŸ98‡t^šÂz1L]'>>‚öä3A÷䲊øäÈqrE`¾í†”ö Áûd@ü)õKàO%ìOÊù²œA:ãš|®h۔̹E€UÐ57=”Ϙ ë`A)W8dP† 8hHBìq‚ ‡Š ÊYÏõćaàBÐ †’Ä€†r”pCAa CâÖ<¤¥Ð0D}àKN!H¢˜ÀDAMÂ…ð’K< UaX”!¶(¨($ÅdEF)Ò È(æÄPŠ 5Šç´Q àÈI˜£ Ã÷ ò¨…ðQ5ø£ q¤*(¤FyÍxF[>K¨ÖjI‚@IpIvU1êBØ€Ò K¥¢Ö8˜RRR©B¬TÁªö 8ÈR„8ÔRàR]ÁàÏ_Ê)!˜j>õd ùà ö(›ë!hŠg„iÊgvÔ¡ ²)V ¸)(µ™r§"+(§AÓ§„¬S£+p§ Jˆ§$ ÐSRË$}Šg‚vêÏÉÄj2À *^@B%…€¡"„;cí1Yß .ÿZÂF[Äx´eœ„¶HÁ€¤­"ó…Z«(*mÍ¡¥-â¥m‘ï*#D©z!çâYÓ¿3GZÀPï¤j¤# Ëfá`CkJ[Ãmˆs¹!BèxC<§Üo˜ ‡IíÔ†¤rÈ‘ (·‰Ã9G".®d‘…£“Šî:LŠ>t ×Dmµ$Ýx$äÌäý%6Ã̱‡IÓÜ{dGt;y3‚9óÈ ¥Š0Ý~˜q†óÕ#5‘ÙÆÞ†;M§Ü5ˆÒ˜Þt¢™gÐ]’ãñ,·ÈšAѽ‡dTó•[ƒÀ‹$i¡«S]+ÝèaîtÄ rW: ÑÃzgIg$zX¹$1¨úËêîIdá¤$A®Jdå°$ÁÜ–$ˆÌyIŠÈ\˜d‘£d3ÄÈàdîÔD†’®MŒÃÁ‰ŒÑÜœè4éìDó EŽOd€ÜŸˆw‚¢A΋ʆ¦Ý¢ÈÍ’[ºH‘aå(E”»A‰ådhºN‘Ä9PAæF…‡¸32\ª$¨äX%AîUdr²’ éÁp¸"hš«•4…œ¯ºšƒ…#”Y¹Û3d¸fIÄ%¨ÜM‹2g-<Ä]¶ˆpÜ"î\X'.<(]¹ˆ°ÜÊ6”- 9wÏê3ëŽ^8‰ûy1Ü» §‘믣»¤”3Á]Âð`+T¹‡Ϻ!s£?ëfÌmŒèm×\Șé8&›ªghéT¦uéZf›$ÌÁÌ6 ˜õ¶ Jšòn—3Û¤p¥lÞÆýLë脦u,wEÓ:sHÓ:^º¥Ù&‰vâ“í¢¦u$wT³MtWÓ:š9­io¸®iL?ïž›m’1g6Û$Ð]Ú<'Ym›‘«ÜÛ´NÃÜlŸ`›—ihf­ÝÞl“À°‘ÛÆÎ6)*ùm"«U³§5§8’NK2éøk>§;ˤ„9wœ#BÂ}Ž “”®t!íPGÆDEõˆÎudH‡ˆ££ù(ß‚–<üYˆmÝA" ´NH;ãID3— Z^z÷Ik•’AÊpé'ÿ˜atÿcP²m—„¹2S˜C†¹$rÄ-!­ÏÁ~‚8M÷dÐg'hžƒ8…üÉÕ˜cúÊ"†Ä|)‹˜öÍgUT°³ˆ™){3ˆÅ¬ìÒøÂôC”EDoDÙt‰K6=eã bgVÃ:Ý,bV¯–²Z[ªgËYe–³Ê,geOr÷m”AìÊz£®F±’•²RÍ"D/“˜Õ¤j%‹˜õî~>‹˜Õɵ¬Æ×2Sf5‰¼&eÐì— ³¾H”õA£¬7²Ze½~”õ™â¬7MLÂãR±žÕ¤FV㻳*êɪˆü1eÓ÷ü9‹.:¹^{IM¿ùš~¾­ƒ&ãÚöþ™^-Ø;­=NÁpÅãDVѱÈÏ6‹ŒvZÿÞœ„%wÑo^¶èÒw–Å!ó›x‰{ìTxDÈc#óøÜ#ª`‚±,Ž·ÓZútéÚá¥;Kw—.?´–¦–n>Ü¿´°téüÌ.]ð OŽR³ua‘z­æe;ñ^µ>¡CÙ Ÿ]d1îNk—ÖÕÙ1 wõ˜%–!öƒÈ¾cñRKn—ˆ¬ï´ÞðìZ%¨Ö`=âGN…E¸E,+‚®²Þ²#›wŸë_Å*ºZU]Ðékw×Ç/­ì:yŒQ+ÕÖãscÏ<žø”~<>×ÿøÜøãs·ŸÛOÄýÏÝúþÑÇçO ?>w–ç vZ»ºuãý9pž‘=ê£>×ÿöd¤}ù®€÷°Ÿßi½‹¤Ô·÷½ô·o^d_ÿÕ´þÑô¥G3ûMÏÁÓÔ£é㦧M/>š¾þhfôÑôø£™þGÓûMó]󌎷jAGÝA7ïšÞWìK¿);‹$a*^ufŸfùÜÊÀòÂòâòõå…•Ñå›ÖÊàòÍ•"݃ŸÙå¹å9–<ªh 1#º¥9+9"j°^)zÍ©R m×­TÿÔ¡å£ËW—oc+'Rõ­œX9É’’(Ò>÷úø±çωqûç÷ ð-Q4uïG°ðámmwÐã1õ{u)Æï®…ÍɆmE,QÅ wï²+§ÜüÒ/‚ Cø,¸[ ¹–%C3_¾¹tåáÀÒ`îÛÖÒYbf Ì¯ßø1Ϙºu‘ÐØw(v›³>~HÞ`‡ÇâH€½x–£VÙ†HÝ+S2öå.ǫ¸ Òƒå¿ÍãB^j€…Fmþ\Ç‹X4òöŸj¡Ýðºl¿  ì4QýYåÙ‘½w÷AK`'Xqú¯9Ãs"ó‚“mE.^\X:¾:t`uðÂêàôêàçßLnÙÇR0޾õøÜÁ¶ÀÅgÍ'ôà0ÅBÊSD9%¸žç ŠCckß¡gcÃÏÎmÞ:qÃúëþÍ —X<òû.þfÄóß^Ù­DVz²·jówB¾çé Ÿ¼S&£ºÇzêëA”#èŒíçˆÍ/>šžx4}“DÀÈ£é«ñ5ü!©¿¿â9 ¤·Ã¾oGŠ}¶|ð~º1Xå©x7¿p<ì6ú˜3ÿ»ìÜ ®Ã(H_,ß_é–¼x8qÄ‘1bþ¡t˜·€t øu`ù>üÞ/R/ϳÒPBèìÔhÎ~BÙÀ{úLç'’g ¸þ•!hÂU(raåp²ø3Ç2p¹ðtáÊ“{·ôAÃåÂÓ{ß]㹟¾åDÈç¹=ÔÌäÛ ò‘]®Ãx†uº…JP·ìšçVì‚‹I,»‚>rÜ> Ûž<ð2–ßœDÇ/Œ¬ˆ^µ.%Ç«¹QÕ 2$÷¦YÕæœÇåV Aê–³z£Šà'+(!•c~àO×i4/„•¸9×eÅÐb;¶Ê‡4f8 =nèļ^¬ŽÕë@½0K7ï.ÀÎÙ¶àÕËÍ)/¶ì[ ÏAœo¸æTQyŸãz°»BÜ˃àŽ!î·´±·êUë½rhí¦&Xv½FT•:Ëñ¼«¯Ž"¢ik|¨×ª±¥¡Å]‚EÐÅbhË*Ûn ˲-n5oá釅‡VgZÇAh¯ÕÔCÞ)V½fá(‡naóaœ[:úpäáðÃCÖÃá¥ûÈÞûðpeé:@_ƒ×Ã~ø3k/Øw¬¥Ë°öºf-ÍíÚÃ}(«1w?¬Â@–CÆK°.ÕقRüæ@.r@`~é ŠZÀ—î=üSβ$Tò]*yxéüÜdíz8ôðcø^º ¹¯‰–a!Kß«¾Ïû_нÍãžµ²@G¿ ɰúg'tÌ„¨È†fo€—0®L,g[½UvB”º0ºp˜Z^ó²ïØ(¨ m8ñ`F«¢Ð€ý€¿áê Fµ]àLZ D£Ä‡/·§9UmNYœøÂÞ2b;ì lêäA¨´Öœrnܱ´¶ouÙÈ(1BŠiÞªØ^Ý× ³¨-Æ8VÉêwæ~ <›Óž=Z}xºXÿì»ü¥î ãcÑh›B]à– )ëBª>DÉ‹ðþ ™hNW«yÞê‚Xц·¦åÜÛù<”]ÍlNæmŸ J=²`’†ìX¿€ˆ׊sxlUL~ÍÙ¨y9nÎZ¶=Pµû@èC¯9é•mˆ©ðº±Jª&þÜÿBXÊJ¹Oûù™ŒÃ"&YùsÔ†9jé7nö¡È™«Ôlð׬𖶣N`mTÈÌ÷å뎚°IÈ}P\]åZ‡½v·-–²]ö >ò,LŸµ ¯Ûöl«Ol*¾Ý¯­q»`¶Š;¿XÈÖdÇÇr~/†¸Û@qî 4¯Š¹½ùÒåÜ΢:in§©>4Œ»²>³k{hw¶›Ùk±l îkZ5‡·&v²1A²10áV·oŒÑ”tK¨ÔØ>å–/¯ ./® Z+`—r´ lûrsùÄ @ÌaÞ]¾*»}ÑìCÕå‹+'._žã­®‹V³ÝmnýòÔúôäÚüa¶Fx2×ÿdîëµ³‹k Ÿ¯ÝÛ›Þ˜]»{xíÓCkGžÜ›z:yhíö—k#·×?ûrýì XÂlÌÞÛ¸7!×¼\Ql”sßõŸ^ë5ª¹»omüÖqèÄÆ™áõýñšæ3jz²¸ïÉÂýõÁiH‰•ݼ+¥õClµ1ÚË'­z¬2÷Óò°Fï«­ÿ‰ZùŸå:ˆ€W4ýŸ9¹ŸþÑ)ìÌÚü{~þó\ÑùÅ °hD]»8á¿ú™¸¦¯]ú¢K· îøé®¨´“®…ì §¿å/qdÁNUZ^,‘ÖüsUgF!Y·KüâWÛÞ.a”òWL°ŽçÛÔÝ< €ó¢×^¼·?$Àö1Qû˜¨}LôÿÃ1W“uq Bxîb»ÚÉ‹Õa½+õgÝŒhÃôî>øýÛé#¤¼í5/ûqåÁÈ'VBI­±–7ëIäŒ*Ž%5À°&EåžÕ¡¬êl`e×)ç»| æX†ý]ŸS‡—élÎ n}2u~é •á‡--@iKÇ”êsé’µt‚³æf#E')3õ²™Àù>ý˜<ݪÙ©;1ÈëwJEÉ-× ê%ļK\<þªcNŠ}Ååª>Ï`®ˆ›·š·BXš8£Œ”“´z¬½¤„}5WÿÅÖ»8Mxž“utÆ[ŒÕ~@ŽÎ”†/b<­­(î~ÁÖ£$nâë¡zΉú*Í[}P+ËÓQú2Õjv>5´òîæŠ3—;—´eZtæ6ttuhhuð*¡ç؉è&kíÈÑÕ£†V _‘J«ï}4÷—·”êk¡Vj©“j¥8ÒßDôâܿĥÍ+süpªB­Ë¾Ö³Óc[C\½¢ùáW0kÅ ;¬à1ŸõýÇXÂþÃåC‡k‡€Èµüø/É´ºfEk Š|ʳ³A™Ùµ\÷\‰Nk}¦!Ñr²ù€)<ŽÓ¬0ž<6„ÂHñ1MÓÃ7L‘q ¥2„+6Z6Öì :U®â¸ò1ât±ÏµùÀêCÝ´g0^â¸?`ŒûŽÜÿÚ­%ß¶:©¬Ér:µrüoÈÓmN3pwßì Ê\>–Ú…³ wz·ûb¶±ÓêÒÏ:IîW‚.\³Å¾cdmð‘'OB¥è®Ølüô–@nß ™ÀyÎ9)¾p*^ÎÜ׊=,íîç2^FÌ¡‡F¸LøÏù…T`{ÎC'ئÏ8i]ûò¤<‚Ub„m Yjuüú¢sdÆê N‘§ -fÈJ·˜“Ç“/2s¥NŒÉ4ûLï…›“:Ž{©©4qxi.1‘¶œ@;DyìöB3iÆ‘™n„²ÍTšqÐõ"iÆÕ‹Í£Y'I-¦Ñí¦Î¬s¿éšq‘1]šó¤yäà‰aaL˜Út©&Ê‘AV¼ÀŒ™qÔðBfæ1Á M—ÛLi]ûKÍ‘ôŸ"³UÞ/;A¶PWÿWÌúáœ:[˜sÏyž†®çý1&ÆlM¬9)&§ÃVºÕÄÔhLЦB”i …S®1]©¦>Ì£²@hâ¤U¡Öÿügëç?{õµ´’TÆ$u¬Iq¿Ðô¬I6ƒëYñâ]¦*L´’© uí¢P/þú7RË µ [azÀ¿ñU¾/­üQ”¯zQY*Ø_oÁoFY/r×o¢·ÿt¯èû¤­zm«^۪׶êõù*Ã÷ßú¾ŠW™óeÕ®*ãË)]e¾]åªJ~I…«ÊøýÔ­*ZÙ q?š¢ÊêÀP­y«7nNu5§Â.¼ÃÊ«6§¾·þU6þ…µ¯ØŒ²óýt¯²¶í4¯Øgÿ€zWùn-´®øZßSåŠY€ÂU¶ì%Õ­2ß‹)[±•ÿõ:VÕ¨ï¡aÕ2ÿ ýª,ç¿\»*kzYÝªÊøâšU™çG׫ʒùô¸1vsýîmILÿâjUJÞVª¶•ªm¥j[©ÚVª¶•ªm¥êVª¢Îé‡éTS:,ŠÉ²hÕµ­é\)s×Q û›ŸI5,»í“¹EbÎÊþŠØ_¼¤VðÇÑÃj¾•3Ô°¿ùÙK¨a±¨Ц;û磊}ɽ­‡mëaÛzض¶­‡mëaÛzض¶­‡mëaÛzض¶­‡mëaÛzض¶­‡mëad=ìëÿ`¶­¿yíZ©úú¦T}}¥êk/§T}ýÿ!¥*i{póawèÆÈä-tªù,x§¯ìCí¹&±H€]C—2D©…¾]˜7™«Jãº+ Ù@…+¬U BMÙº»º '„Ũ³îWh! i\C+qP“QBãÊéÖ;u¿@×ñj׳è]>¡µ©Xq¡×ä}K—–0óVÈW°T¼‚CÛªx!$asH÷æDè½ t¥‹Ýƒk3Ï®Û5=rƒÀw5쥨ˆ·êú~ ieß x¤Ú«‡Ž]Wz×ßCvsÒó‚*o¥]…6¡Ÿ:nØn¥[]Únãpt×CC'×g&ž-èzÖSÏÝ{|n:Úbè8÷œ61DÁÃFiX7?¾ŠÆ.=:ŠzÖ̓_*=ë[vŽ]¯¸õ@ÁT³&¾zÔ¥¾:nÂÕW‡n p¶Ëž¤åÄ-&hÕðµ…+\N§ˆùGÓÓJÏúVŽ{>X§¸q])X!¢ùUó&û„oTó.¹[‚ç=¡ M/†ºÕHÝœ ™ßÇØHJ›]“I$ ÿYrÀƒÎtP)zU©_©‰¸”á\2S&߯è(­èÚJ K–É)´„À ØM"ÏIlV… –7'¥]Ÿ<ôÝgŸ¯To%ÝWu•Ýg.¥ì!=¬?3é¡”¬< WµÈÆWZT<@oAØIÂy¥+e9qiIaCÇÍ#Ó ýãÛŒ×"ØüÌð‚æH© ©dô[ *Ì3#ì{\¥÷{³3qå?ÛÅHÏÑ{ Á~úÞдÒû½ÅËCQÍYx©¨MêÞ£ñòð G¼Ø.[éñ˜.{ýÄþõ³sOÆ×i¥œ›  Ãtè xìñÄ P­¥ÏCŽÒĦ\£3bÉÉÏ”fKö¬?¡ÛÕýÊK[àQ¬ÖûIW…‹ö¦¿P©]nT ÄÄÑ'¼v#C±Ocƒè›Ñz€óO«ïF<ó9?,H8[„•㯲űÒóÈÑ5)?5~[SÎð"ÕòòzSK儃fvñôèɧ÷¯zöñÖ®\„/§)Qþ­¹Ðº~–Ñ3(νtt7‚0_=…œ Újœ,÷Ëï†è@'ˆÈû%ZxGɳ;¶gØ9 ²’,eB–‡å7êÐ,`Œ?;!;k@OÊoScÚW¯ZÀ†x™%„bÉ€¡ø6›{S’¡Ür@›º—‘<õ²>`Gt?EKQQ ɶjÚC-¯Ó ­^^¨ÃŒXl¨Jb¾zùÀ²3ÝëÊC‚.ÛªÖƒJÅvÑu$ëÀX6¶ËEÿŽ^=¨º‘ãdúÌåÚ(¢9MsêðÂÅW L°³ƒBØœND=ŠñÖºüÉr†û¾k›³n¹¾úÐÑmÔ?8ª2°à- ÙdiÒ &§/Ëã-ª«Ð‹-ëU:yðX¯2G·°™‡°l3#r¹–å®V—p«ƒŸ2!‡NbG¿;sýИٛf”ÛÓßÝ÷\…L+g°Ìê éZ5éVÉ„:&™ ˆVk¯c¸ B:”²ë"^¡à„&¯[ÊâV~Z¹dÞžÚüzdkx=§n;JZÑë¸õ쓹­¯Ž¢SÖÍ«‡!º¢¹(åVÕ~Ñ%ð?g>é¸TŠzòWªx[‘N¶óÒŒ _‡(0ˆ®Hq!6HŠšýráE'áÓ_ÐÂì#x°ð ÌI7¦×IËs‚E*·¥ÊÏ骨ŸyLÍÐÿüA©yŠŠ&ƒêVÚ}н$ƒ!*î@Þù”NˆÞ.W›¼º²¼‡êš !‚\tšB®.„˜SÑ„Jj޲п9“ų X\Ñyn= ÝÒ©ì3ZÒÞ æBôÚ¯NRHùr›â˜çMy†¯OËwÒ3éU\ëf¹ÝÜTƒ°Å¬ë+½Æ$ r²y9"5ž˜&.C¢9™Ž2Oê(W—¯Ó’zžöŸ´ðe®+Ñ9æmú}üŒ²ÝiâýÕ ­Ì¯M8Â=ÀVTjÖÛãÒº…k̵}§ÙÒ…ãäè¡òÌðÚ³ "™jíÓCó'ž.];=ÝZ‡uïîÆÅQ)eQŸuf˜©´X)Oì±útþŠ^ŠæÃ²§êq%Ô/„*íòµŸ)<¯¯Ç‹|1kH”¨½€¡ˆ—©v£(òØÍÒQÙqâHÆô$赈¦ËÝ5Ì~㥜¹NؤFRGD7?ä ̼¹<ˆ¤Jw>.ì vÍÉU¡xy¹àuã=Í‚FÕ¦;?ñoThóQÍscvI´h͇¿O¿L5L6Þ¶ÛÉG0“ç¢zä=;n*=ÒšÊô8Ì?§×Û£®þ~§®ú6/ù6¯òNÞ þCŠÚãì¥Þ6îÏAA¯Åq¯¤z6Þ Î^—WÏ{o£¯¿œšê9zÁ´â†ïX[”¡„¦l«L•ôZAÉTê¶ÚX\ô×’©ñ=™±œÁxH¿\2›¼óS\qªOÞj‹ìÇÄ„¢ny™¯`HD¶¥sÊ@ºÜZ0ª sv¥ëLk¾í‡¿4Ã)NvŽbcÑÆÌ<”ÁÒZ 2¶p ÛÛ##$c'(Ä“ šàÌ™ø3A#.MVÂØþ¿®".)Œžg"‘BЉdÓ$åo®ØÞ^b4·ÖÖe·uÙm]v[—©Ëv£¢/Vÿ[àmgïíâׇqõ$ÉŠ3ðŠsBmHÕå½]JÛý>ea·±A 1ìÆ;aðºJéÍRpýÝgîã…(,õ,ÜhP‡Ñ  ççﱫ¸ïù=]ÐÀ ¯ñ"3¨¥ù¥Ë @nX¢©\lóº( ŽFÐgEA6j²Œx'½<»®¥èjVºf¹väÚ[\S+5<¯etÕCY6 x_ê–æ,nÛYǰºb ÔíüŽ7£J¥q7[ !‘A× ~¾Š·ÐÕðt]Ñ$©o†…€¸E¢äÌãs§O â©ÇÒ||nîñ¹cD?IÂå£ÇˆOmAÉ‚•ÿÄhÐ?YÏnÐ5:7¶NÌ=;8§ ]ß„(»;Jôp¬_ç¸Çöœ élΑb¸ÂG•Òñ›#§ [&r˜2†#ŽQø*VÆÌnÄí2x·‹Rù³Á۫ƵÁA·Ó¥äÈù76»aÃ%L‘X$p4N[ÅfÑÍ÷`>L÷TÌ µ=ŠšßyvdE•°Ïz7G|jXa°®‰*Lû€×ùô*sÏ?6oE±Õ¼Å»ÉìFnÛy„Ìgy³(},R‰àÚà¶|.‹ÌÁ·öÍçëno\¼bœ*@ÄÓëO§B‹?ÀoŒM¯¸…ÉÔƒ.Ud‡7‚º&_Ò‡,“¸Áˆ ÁT'ëtà}Î@}Ù±‡çH™frÞÓî‡cÊ~ù°®Z9ð{Ó‡5 ^\8OاËì&à aF· ÞÊ>jc]ÐâJÁ—mUÊPó ~ï­„ç8LÇû®y™æÉ÷íÐÏdçÕêeÇs}Ïu+XÞm§‹C¼”/Ëôò ½õÁ,t˜àÙ¨ôóš3ød÷&»Ä!ð"`ÆR"d]šö[CˆØ¯ðó„亥ŹÁ~Z¿òÛÎp…‹„M0]ÿ:Tî§Eî(;\P˜ˆä ”¼ ­õÕboðKÄ&÷ Ò(gÍVY ÿ7Ä­`7[p¾‹—’…IÎO*÷ß×yµ,¥?©Rª{}”Æž©û¶Ð®’_à4G³ÎF h8Ú‘ž3³”óï« RÞ~Åj®iÞµäb¬Î'פB­?1Æ ï%ÆŠÈfØŠN×&ÏuÀÛêÓ®xÁ}æ ý~jRn¥ƒ?{~ã£; G×G§×ßF¼˜”ÙÅTÛÝ;µqëúwgÎÂï§·¯0¹$òãl­_:•¾>ŠL65ãÍ,•»2Ðt*nÉ6.~ªlÏËU\»'s Ê}'w»~Åsþ*Ú_>Wáò}µ²*o¦"v{ûLÌüºWê]^ õ«x†Þ•wA±>:.ÖÓ/ýÖö݆íàïˆÒäöÝ“Vô•Cf€%´Tï sÿªëu5çt •‚¥þ©Zròu¿$•T ìò¶ßpÃÀ¯²­…ÔT%`5çÓwOâ”Ú¶L4öÂ;ý@šÒ ­‹ÃÚ#0Y•À÷uÈ;‹Gk°Þj­9Â’«yKi¥x…>™õ° ~§Î ƒ° Ö,:¾Ž~—Ж ˆ;¿×ésb…€ÿWØU ÷lŸw©Òlq팂µ(ÍVêŽÞO¯®}>”@ß¡õí1ް;dŸ8‘Z.*yvúÔ_¯/(ý5‘@ñ8øÏngecEiµÔH `¤4\9Rø>3ÓÁ–rJ ¼Ó”ÝW:¡4]ηÝ6PP©ï*. ÕMæûLŸ9´ËÌT]ïʨÒf½+qY:, ‡ Î¹e(°Ž%à PÍMqËæòu¨ú#¡5€xÂ3l|rE~qì#Ä º g.A÷Zv}è/~Û½¦»Òß•”Üú…ŽW­å/5`<¿¯R¦´W{;à9Ä»JU•Y3Ƀ/ŒÛáÍB9ÿggƦð M¹b-KÔœ§‹w•þio‡[¦#£Oü­TO»ÅUäfÁÈíªàzÛ ¥‘’¡ãÑ‹k¡Š-ÚïÆ-"Ç÷—_à› ¡èYÝè­ë£¶¹Gz\ì'`c1oíUª¦½°Q8°yxxëÌUuû³R.©7d½«ôJüû&>/²yæ‹ÔèEˆãN²›…ûƒ•úˆeMt9rqöWæ,,"aÇÝeûêzø«†ˆ­{݉[Y¼h^Ä#OÃܬAçìóaü+5Ñ;Í[~„Êâ¦é½š†èÓ•d³ÅV{ Ð^kãë“k‡¿`·œŠ Y9»”TÓþȘ.GÞ$ëÃ>ijcE¡¼Cjÿ/£±1’¹ÐˆˆÚT®sÃÄ~;ù (PjÛÚõÖYÖ±)d•ÜYWƬ¤ðŠe¬©m‡5HjG¾iT·;ËÍ ~É-9ØQ/n‡U+ß[*A‘ù0°èê´* ¯ „äžëÇ0Ö‹…’å×c4… ²V ˆ²báØóÁÖ‡Ìv#Þ+¤‡ã‡YU;ªÀÊ$„îèEw*Bÿ¸ÃÊC–<îу’E8k¼ê<¦‹ŸkuHáì°Ô»Ä–ÝÉ>ì9ÙkP>öõœ,Mß[¨1u`^uÊ¡«lX`Zÿb—Ñ ÑÙ áœØIr½“i Ý\„ÜŽë÷a7b'P/Ô};_nN±ÎmО¯/v4€(/£ µ¾ã?ù;¨¨"ì7ËP0l\§íE³‹ðc¢¡!ÖúÛN–«d®¡jÓÏ£ÄÈ FÄ‘³žÞ!öÑXUC9ü¸a‡õ6Î*Y?ÿÆJÙñŠ¡½ìE|ëMÕò|hðÔf§Jeèžrº»`­ÐpÑê7Æå‘ïõÊ‘)ÇNdpjØÝ~Œc¥;+°-Éq7Õü„n±DvÔe½ÏX~ÊAŽ}E»÷øJØ]5Xó ÝÂÈæUp…–b0ÂûÇØMÑMž]cd4æ.«^Ò[ÈmâmdÉõnÒ¿SK÷­¥¯õ°Ÿ”Á— ²‡”¾ÖÒüÃCK ððpøá$¸?°ÀeÄeÑÛ‰k½ïá!R%_ëXºFçà‹K—`)x`n-ÝÀ½óÏ ÄYµMyxÈ‚оJá º¶4är°4KZè~Bn»hƒŠëá¥;¨°¾IšëRhߤf\ajm³‘¨Üf5Yè—€(¸?¢»›tœ/ÜÆ°‚ºö°›Èÿ¡¦»X>9@{¬ûÐD(’úˆû»C›1ñîÓK•Ò*ƒèt‚)[Ž ¨ù|+m`dtþ5½ñ¹VÐ2ûžL9Ž@JÕBÛßf»Öl—:ÙxÛK>ÕgÐYµ ÄÓÛr<«y192™Ø5áü"PfþIìJ®Ð P~ã’ »Á&û®È‚Ý3/Jø:é?áÌfI{\§±ó -ÈršV|JäTk°–ƒ»×m·Ð_Pv [$ëhÞ$hö_ên-HX­ìPÇ&âgèB‘^^&bˆ„Wsa¹L_ eTm?°~«RN%U¹1…êE1éP E÷³p,´Ås%ÆÇ8 j¹G±b;ì lÛ²]?°}9t·X‡ùÒöpWºn­V¯Â4@kw &µ¸fv±þ«Ön|µr1€ aC+¶¦‰wX]AŒ˜þÀmرU `X·-*¼Ôl¯áx.žXÙ;Èmˆ9"˜Ÿ1;ŒR±}ÔùÚ lNUɇ‡•À§DˆÀNîðl7fÙ^…Q ³.$î¡AFû¡…S˜C¦°ÙA&8ç_ùŠYßèÁ2®ú°ñðÁÆA¦ „ßü:m¶'êc¨.hWŸ ïÛœ¬"VkVeDÙ°\‘|›øÁQ²¡¤ið°ê—æ¼—udû'C}Ø[°Ü¶%1,÷EݩɆ=Š^48±¼Wê‰ÙÀ¦ÉÀ¶P¡J[m9³:|@PÅ™’Q´ÂŽöO%ŠÑÉ ]\6ãD˜\ Џª‡D["ØÜĈ«©»;ù„‰…ðqvˆYÓ˜4wÈmk¾.¶¼C—¯ËgN!Ãí,Ntï)Å¡‚zd^o«½Y¸²:¸€ê[<¦†¨éÕA®¶[¸ødñ³µË§VN®|½:0,ϾW‡®Ð9ö•µ+‹k÷ÇéÐ;©Þ¶Ò¯VWGWΣC@ Bù‡Wû6/®OCOæÖ¿¼, xWb.¬Ýyza`uˆP×!„濺1ýÍúíÛkGÈ–¯жÄCúdí§wZtvÅX¸š~³ÕÁ›tÚdu`tuð£´'4–òg3Îû!jèsÌ‹p‘‚‡yO B <àC®¯W‡Î¬]¢ºö‘ç§YìK½½ƒÃ”}^t$~¢ŒóœþnidðâJ;KØ£Bð¬0#8FfãZز( Nüüñ¹…ÇçF¶×þSúOD]û¥?HþrOsuŠpV5@¹ÐêM?²ò™ë]–W:àe‡©m£¢®3¢|hçiˬõ¦˜ØÇ{íßM„ñgìšá‹å=É˙лàÙþköGD\Ó°.{ -2NXXhP–ÓÐãÄólFÆ4 ‘EAI÷þQÕfh Z2›‘ÓôšG©ÍgÄ÷XdÆÊÖ‹Z¾@©§é‹œ¡>zNÑig„‚óôǰ-#Û«ªeÔaêÓ1|àÃä¶t}@ð¦]@þ;"VAc²•UM¦j|ë³~kkß¡gcÃÏÎmÞ:qƒŸmi\´ÃÚÁ¿›·úéÔqëÙø h¼!”]³¶ÎÜØ:5`m]¿±u~|sð”…>6Îz“ÞëðÈæhöù­Ïæ2{F¾F†õRòdÕ¨ù^Cë‹Ü«Dè;Œ“^•5¼u»QvHÑg7”“¢*~/žè[L¹¨m÷å9¹åÊKÞ)†ngŒÇòLÛËÚw9¤Ø&ÀÐöú™Ú^‘„”ĺÞ×ñ©¨õ…Udg¨{YÞ†Úý–\¿ÃS‹ÄRÏsp IèpÇG­-[Ìéz’À·;˶_ LW…º¬°:ó#Tø†‚—éLLG­B­¹ëý'æ\¯ qEÜSØ%Ø,÷Ù¢qláÇr¼ ´7¡y(Öâ_çíPÚ”øyêÜ™iÊ”À/9v¡[%'ÖÝJ v»dL-O9 }вoó´sÞ›¸U…_Å^¿·ªvíݽUXð»NŸí9æ1*P½Û ‹P§àb"y¸Ý[å üªx‰ +ãÁà·#…>ø²K™·_U\wTkÎ>,ô9‘ï”pÑç#÷ÛÓy7£¸ÛÞ‰ÕG¨à›³Ý²úBVÎØh´œ ƒ|%ÀªkwÅ@í}٠ÿÎ/¤+ñƒg}GSȇUÑ«ÔÙp-ôvQ«`¿SCà~\Ï2Âû uˆ'/¾S@¿*¤ž²5Å‘t®»*Â>Ç.Ú†² ˜÷VTÇÍ·ÄÃc¡¤¦†)cU:Û±ê,µ+tP}e å>2õ”[´ñ<¥¡â C×va{ã™[€š e“¯\7å¸ÑRF5¿À$õb`¾„å>ÅIïeZX&~ Sê§©V€9èß ©þ«ÙÅû©•‹gÜ,â1˜Ù.Gë;W£å¢Edî¸ÈÌÏÀÐÊ'O¹€PÕ~´q$òò}DW­ ¢#:Ïr,/v %$‘È”dŠœçÅäÍåë,ûlÒÒ…‘ÅɵÈ$ßceèUkùœ8Ò^”íeÍ'CÍÛd‰†›7øåÉV¢O‰ëÔ„‰Q²Ã+ÈjuDõ™´BÄ ýÙi!òRƒQHÍÍf®ÓïE(»UG¢ÍQ"ŽCƒ;,zFW£TÛ] »EÑÐØ›ÜÅÃ"^’AÕ ±é]ìyü’Ô1£,3º•¸¿rhån€ÊŠHu>´‰ZO.«nR§#fŽY Ó £É¹¥X$Ì$ˆ»ÝȲÕMtQ¥7®ƒÐ~0)μû˜!› ;t#G·ØbÿÁ—A£¹ ¬`®q|È&÷wX0›†®5'»@`6oô„ Šºá€Õ°Š¾ó`Òp¶ä'ÒBªyùUëƒ"×à «àô)4 ÀÌrK€5É€ ðƒˆ ‚o?n^Žío?†döƒEœ£ ¨*änËŒÅù޾»°X”!„õíÇ.S¡n2Ó£ÈöÖ„&Ö³VÆ8K e2­…LJãëO£3WÂí-¢×EÝ0vã0d<²HcWT ¹OP9èÉË·€ àgGxºAÆÞè^7%6˜×]bJ`ùýä>EÔNVÔs‚_îSAŒ7Ç &¨®bCo/ÈÙOñ(¤<:`@8÷­Ê`MaìÙ€¯Ðò}JtŸ B¿m˜ø1ð!ê¥ë,óÄòïñæ,ÊFjŒ„;ª©òkPéÈ„¬“„¿âVä¦Ïúá#OÏ®]y2׿qfxµ`ýüþµýûØóÆè¥‹£Oî~²vgvíðUF|:0¶±p”›ùiEýçü¡§·§×?ùrmáØ“{ŸÌ<™;ódî2Ú™ÞøêcVÈΟ±žÜûŠØ¸7¾>þñÚÁɵÓÓk®2ˆ+Özê‚4l‡à“ÅûëGî®Í~úÍäÆ7'×Çï®}zhý£ÑõCO¿Y\›Úˆ²¦ 3šÉKOîÝÚÎ">a²ÄzâÉÝ}¬3ž-¬MG4‡ÙÛ¬yùéÔþïÎŽ³÷XŸÅwŸÆÄ7Ñããiôn3}zýî ÞadnÏ Ÿ^8½Åê‚>X;|…•¿;?²qö›µÅs,ý“ù»Ø/¢SžÌ\;7Š6û#°ûO CPâì°¿.ï{:}J¦Y;|pý#tÐwƒÃðF¼…'æÑ³Ù——Ycð'/}wqìÉѵ©Yæÿ2ÿÿ0¨‘çÑj± À-+[+ç`«gû§ø!ÝäÔ !tKÜÀÏ­\õôTœÞ|Ò ÝGtº¥œEÕ¢/<:`­¯‘±hd÷¼ÖQª»†7Ÿ_‹®]Êì¼Ók«4ViÕßXuÀ^ÎîVï¹R„<¶Ö˜ýéïƒ>×óìwÜÐé zr˜.ŠÊ°'­ÙQ”‹ÝR9nø|ýׯÕcØ#ú°p Q®'Kä™Äsó{áO¡[3G’Uü^,Á¯W½ PéÉu†ŽS› 0Šyµ¡©GçPÌé2:þÀ…û¨€“!ÅÜo? <ç}—½ÌHÝUhGìž}¹ètÚu/æ¡Ì,Nîüü—°@  Pg6¿ðÉÝÕרïŽR\¡§Ž¸ ëÌ(×]³?„„ü˜¾AO¡lǹRþ»Õ\µÚÈ¡#7 CYD ×éÎõÔjðSìDB1û«tЗûo ‘NgZ"BZØÿs£få´&Ãk÷¯·wÏC¨›ç‚B’¬Ã«3(ÉFÊÇ 126âÅLÂé ²”ð°’ù Y\‚½8Õd2NL°š­p†õ¦ÙNÄd2_22Ü«Jì(Ü q¦ÔêսʤTùçA65ú˜3«A‹Њ6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦6¢©hj#šÚˆ¦pD'ZÁ`/bbâøÕo~&  ÕS¬æKaQƒ.tƒ¤­2ìs°aóê%×ïF¿æJu¼ °ý8W®yxˆ†à‰+¹º_€rñz·D,Ta–ó¢|.êA_êͱoÿ{Ø´…úsÞ$†w~ë4çဌÝu?ïBSÍ`‡vI÷”ë°F õäÉÌ"álÂ鈊•¿¶çW/b±ÿCñ=ªŒ,ŒÏ¯~ó<ŒAëžóI¢SØKadh éˆH^RtÅ!‡'И‘P-†¡¸w&Ê 4 ’<¤¼4…ÏŒ–’›™D}ô™)ô1Ú2"#{Æþ{!Ož?ŽÑô¼%ôÄÞiíq ~à%—íßH´I\Ê¿7'+ž]Äë éJx–PASÞ´i3Vá2…ÇÈ<–tët‘ò)ÝRdá4µtóá~2ábÆOt9´GiUX¤^«yÙN¼—C­€^q(äÓa(»œ°®ÞÈÖnzÖë1KDsô"Ìx/O¤cOÞðìZ%¨ÖðVlºèUàNöPEÐUÖ[vd‡ u¢¾ ž©ªªÐ&}mæÍKëûŸNK`MÄq žÎô‹#%¦j—?ƒ¤‘?«P&¨ã¾q€þ8¯P&oÚ} d¢¾b—‰4©û~êÛ£zòÛ7/P“Kfø ­S4™&xÉuº2oœ®ÏÛ÷hzPaK´Ž‡ÝDv$ÝA·.‘}žô›²³¸ez"^u&žŸ£¥5®SÙæ˜6Ž#D ê,»•UL$C̈niÎJŽ`^sªT²ÑT8Õ?d‹~”¶å‹¸öMÕ—ºýY~îõñ+&ÐDhRcò¦ƒÄ†[“Ñÿ¶wï±þ9üæºN»àD HB±õ‹hOäxxi^9ÐhVBéòa½bÞ¿võðw§€ˆDà\Ênˆì™²ì¥¾æ²õ¹‚5ËŠç‡JØííqXËZߎÌÌŽ>žâfh+ô¹f­Â Àh³ÓòRä›ã[ûAFã¬ÿÌŒi¤°½ä·ZË{IžVó»ùϯ8#kÇÄâx7ûäi¤XÆ}CÃIºyŽVu´ªûZÝœ…0~ñɈ.H†Ò3/H~WÊþßö®î9ŠëÊ¿ë¯è·ìn1©]ìJ²ûæŠíŠ+k›ZX¯ß\­™ž™fzºÇÓ=#fž–Á€‰cÇÂ6`ƒaÄ—,e äaÂ+˜ÿ€-#À ýö|ÜÏîÛ#a'±«ÂhúÞîÛ·ïÇ9çžß„8UŽ Ö"_~#[\{Q'Ìzj![¦Í›ÒLM“MwÏÁË…-œ7ë•°?W«Â‚fÐEóæsö-Wœô#ƒòÖø©JL¼†O’†zI¨…Q¶¬9+\ í9Kªo–9ĈÊÞŒCSŠf1Ž@Zù©F1ª;pZ AÜG\ÞþFºå¨ùw>:_І-Q33уÕÏj]àûü¡76„„q:ZnåuÕ«R×ß=ÊåE [oùë$þ îiÕ‚gð¿g'*T*´F„2‚ZË0UÊÍ< k¢¬;YåRm>³]©6ÁäÍLý¨tZ qQM⬛D•*9ÐàM¦ö2õã RïÂ=è6ý“TRÜþx-`Qa(õó. à3ãs?kP­MU€jìMTž «¨0! îÇœŠŸ¨2+ˆßnæ%ê,P˜Éýú7WÉž»ê óàChð¢ÿ—´vk'µ¦µY|]ïÅ-Ôö™Ú¬\Tfq±‘ò[벎çBèHyåÝúðÖ•[Ë xkMó-Z­’¡³X„ïNMŸ ­ÑâAÄ>¦a’Ä¡©Õ⨠8KB ®qb¨µ^LÄ«d»p€Öš«ßAZ;}Â#¡0›(ÂuüþÙ“ߺnj§>&ùl/úkOãc$”²Ô–¼tµâŠ]%QqõøÐi­¸C‘ÐXTm¥•žÈt·žb<0« ©Hd}Õ*É!+,šœ'Ñd–JAZYÐjªñm»á¶åkýTŒÎŒV`ævZÓ&źº0±t¶´å`±¤SôöPÌ`·§RîEMgà9£)b—3òU%”6`Ò+¼ÚŽÇu&æI¯)Ì8a½vÑË{Ù¯6áÈåýعچ¤ŽÛÇ«z˜uÃÑeö°:õfÃY0tI±E­Ä¦BV_)ï:G«»çñù ’^œÆýgÒí35:ƒ;›T‡N½Ž¯00TÛwýì­Æû5OÏpÀ0WPdð­ëô—î=5(D/_áe+ƒ¤æ Æbc–,QÍáPúr$õb‹"sR DC—+?ªù}Ï$,/¥£ùÃ"ì0Ƨ+òébáplº0ñš£/ÑÇÀmñbZð˜-»ƒŠõI¡n¦v7‡ìtœ4<“ݾý"»N‡`ŒÑª´,&`™-M­7"p…¡³Foñ„­:»[,¯{×ïc(Êg"Fæ­ãòŽ¢¦vpëq ewn‘„²Ç>·ù1Lè® týÑÒ4âM=^X%óWñ4zhUZ&™=§I}#gNì(f+«•‰,þðô¸@@5g÷Ñ=F?Þf0ªEAtÑB°ÀçÁà _ciȆ(1öj8ˆ½)±nЋV}y'3¶Êsb«°'åËr—¼–ß%ñF>G«ƒHTÙ¾"B~š +& ÷È?fšôú”u_KwÞ¡£ÛaÝ zSAëèu]ÆÞáÉI.þ8à½hpœ×^æÊX·—çä“ë yï¨Þèg%Vtçá'Çî>‰+Ÿ,Ü[½ö`qN± <‡î=~ÿ@<à{á‡b††ô1T} †F¤<íÀQ¹87m>²¤›`ô)‚ÙÈï]l&âÓ]ªÒI=#_\Ôˆ"]}ž‘Û¾ĤCU-ÌìuÉì»]üAôEgw ; ÜÙnÄxí× Ê¥:£ÓØj€.ù™W¤„ÉÆµ.¥ë…Õ&B¶¤ˆÜi0t»¥ùŽìD½,†-•ÒžŠ¬¥Fõ€Bó;îe«”¨'¼  ¡Õ£cèu<_îïª èÂ6 »÷ô ‘ Äãi@‹a‘°U{+ñù Ѕ夌m2 0ª'$7@ã™ßE5»”Q¹\öÇïnƒó]Šn¨Î áJF%»Q=¶•sd¯.BÏœJû×L¡BŠ?‡En@%ôÒÑ<[ÁŸ"¥Û!üíìÃqìLjTЇ¦º49ʹ>ÀíJ?BP¢âÿO8òƒØ Q&È0Ø: ¸t4$ÆòDÅõr¬0B¤ø‹aøinA1©KÛWM™Úé)Þ1B $&šÇ7{Ëb°s³×Wõq€ &ÑÅ,…WÃèy“†ÔCQÓÏF—·y£µa÷fh+Èn¾Oìd[h ‚ˆŠZVô=†-_ÑLj^Ї§´ü%¢ë]V½´5*xÙS„+@T+ £\ä:Ó'‹.#¢ðõ¢\–ö°¼óªOPìå{0*—¿Ë„ñoÞú{Kdá•ÒÛÞ3çܟż`·ïƒ‡ ×aòô^àz~¿_ü>þ§‡ŸÅÀc ô>ùí¾½d÷(›ß˜Ÿ>¼°ñéš÷øÂ”lœ’â3F‹Úòôãs ¿ó3KÏìÝøtÆÛ81ƒ‘¨B‹±13¿qj6ßê±ÜÁ† Œ $†t:j§3Ø…†X®„Tu¨¡^d#º6䘉1ý'c\Ñ‹j[“Y “Îú†$l å,uCˆs(ÍlzÔDÄ!|¡`â9ѱÀàf Nˆÿ] ZAŽ“ålU«Òìt’ŽèD±´N„9{wáÏlvZ† ‰Œ‰ŠžøèÁ&«òô1ë>¤ççá ùÆ´þhM]g—¨_@‡l|žû»Ø³sôóÝsFWyÔwñŠ-“èË÷AéçpÍ•7¨ÓÒ¾&¾SÛé®`½ÓÌ&VÞc­'‹â ·yÀá)ʬ8¡ͧèºxørYÜlQN2øX^{¬°Ñ Ž4€ ޶¡ñ`Ã/1ÐÙÝÐ/Ó‘ÑŠükàÊ­†>º'ºSâÚ8=C¨Â¶Š•,íbÎÈw’BM(,Žekt^\áÀ´ùaÅŠ–BŒdaæºó– }A{ßÕ‚‘,‚?u ˆÐþ[**ju4@!&ÇcX¶P€È*ÚÿÐs~_ƨ™Â¡–ã³ô1’ôòk†1[¨èðš+–kÅe[Tk¿±86*=(­%E1â*QÂqŒÄ }Š *"“>†(íjžT Ãj ã”°Ê—tò›”mñ:ºÀKo"ŽW) ½¸] þ£zðQ » kV(îÌh‚ªÿ,"exÏŠ¨ÅçQž£ŠÔ,È0#=zãQ¾fj*0”efÐ.`øÌ‰…õ#³÷VÏ=8x„¡û'®Þ[=ôÝÛG\_TƬÿá™ýJkðàØÌÃë_lÅ‚M]¼·:½þÅçßÿP*†1P>}XiîÝØ/D3ùV þ ¡ÌÔ?à‹¯„Ö\ÙmìÐÒ\5Ïüë¯T®‚ *è0Nô¼–cMì bü‡É(RúÁy]ZˆLU°ÖLYƒ«°B; ꀻkIµÒÌÚ‘º |)”Ɔ­zý¶×…_ ¯³níG°«þr‹v¼M,«[˜4¬æp˜VaVÆ›VU[0®šÓ*Þ¨'W†±ñ 'Ú¸4s…èI—MÓm<#'=WddÄ0’®Èe sX àDzæn² êp>~šãiFŒ§1žfÄ@ëð‹¿~Aº›{ÉHqJ¸í“NÜ™%zV‚wàwÞüÛ2þ"Í1‘~˜z˜Ù1àþŠèEEþë ]¦Ð¥/hZ¿TmÇ~›A&lh\³¡L´`ôUä÷|I1jF> ì¼ÛAY`-ª¡AHw‘!ßUô!ÖvQ¹<•c°~žì ø¼ÃXP3mF)5(:ÖªW½_a:Ì*¢ ògà5¿;éÀµ`<™6y4vׂñ²`ŽºŽüÔ2××M©…4Ujj‘hjaô¥c¹·K:…š·X„aoŠ>¤5ó "%§”3çM»Šb+"„öÁ4oé‹ÑÔƒùUlÔ³¥Ñò©D<…UY1ž“VFdá)è‹iW4j‘Ñi9pÏïø âK“¾@d»ào´ Œ2çÆ¿¼òÒë„^!IÎ Ø4«ð#ÊÑÈŠÔ…óH`æ‹4 f+6ªë2R“°cÑLçoŠ2 cP@Mr_Swzj—ð篓íŒû—±‘ô÷£Ù íi›QLe¦ã¼W¡ žç÷ß~ ghÌCÈy”¾J¬f­o,Áx’S /qiF-g­µ›Jk·ïDÇFB;è2vbÐkXVaä‡)Z…xÕ(Ûa‰-Jt5ã¾Òç©|DÆ6Fñ¢TøÐVo 0ÐÔtc€ÿàøær:º˜¡Ö¹ÝŠª9|ÌZ[rôÕðæû<À9h•Ä Pë£ìw4h8ý<A{¯ÜšvAþb[ßîýb}þÂêî]ä>ä0a×ÏÞ»~‚ 4¯]ÿîÀ{eÌjœ†ÞEø£WmlÕ'àjÒèðµ¶J`ðîAa ßc¢OÜXžôͥКØkÇ<<¿q”À0iˆ èKe›x´4ýøÒÚÆ±/]œv<¤E³~Ђ3J‘:ânD0ö Õr“G˾ w9"ô˜hSøÇ¹Ñ9´EPÞÿ6šŽ]Vjš¸÷;<¹ôX–~üÝxãû²ý±±,Ô‘,ñnwI B÷M…AÔ‚ïö¦m¿jvìƒaìW‡hÅpþZ„46vÂNá@zm½ãT. ÄtUÜ„­ˆ]÷º£QSÙj»¶â›Z½s5Íhå›ËB×}…—é2YFêÁíšÐm¢NšÖœ 3äÄóB„’>‚XÅÐùSm5ಠá5ÏÝd…|O™HaééEïÎ~ÔÝÓ¢ò7Í4Fr’jâ&ƒZIÂ÷Ýÿø VßÞ[ûÈ&/"Õì5 ®ž1ů±xC¢MÖÉ~·aÌï]ÓÍ®,c³k³Øì—ÇL¹­DKQ*åÉ¡°Y³û]ñ§ÒO0¾s×x¥]MµN ž­’!®`½Ç -" :ˆ£(~§Ašb"ì=õ©ö³–®SæRûˆQ Çû6HAǯMÄIbLåÞ­ùAþà f­˜Ø…h–±/ð» ÄõE¯¨› Å’ŠwûNQe·Ûáõ>0Íü¬‡÷2DÐ ä˜hÔÚØ³í¢W•v¯ÛÅÞ‰q¯/’¥mÔ T2¿‘æ*àO{2öCDe§2?mÉÑD¥ >±tÐrŒûB×]|nOÞȃ*¡‡Œ±½¨L’šrપ‚tŒ¿mgeväôç«:½z7x³¤Ši®:L윅ö Qu!¦–w•§-]ꮺ`àþâzŠÎ05WU#ˆÛ‰ó›Ú0AS~Vuö–eìì^»SuÇA%¾³”ÃUAOΚ7{aµGð¸ÚTK׺¡ë×ÂÄUR6°ú´™$™ûÉj“®ó­iÛïf0 [¥7tœk‡YgÙàHzÎñÄ*gGÑÓ¹p¦ü~¹—éTàg%#¶§ÎIκ֤³¸Ýþ1bì6·ü0”-Õ€+Àî—¿oB‚¼¹ýGÐA{eòiŠÉq£Xñ«Ls«˜çË,œG•!©à\6ç‘ÙÖÿ‘¸^%\HT/¿%G’¯’|)ÿ‰‚;Y½T<Ê*%Ne•(~¥JMt1â]òëjmýy>fÏ„ÍÍìºO³«MÎfuÔàS¢\q¹ÜÜö-ã^ÙÓ‚×YÓhᘕó½ò÷s óÀ170'{ñÃò;$WsðÆqµÌ!Ëï@>Y^+¸eù Ì3Ëëçs òÏ1Õjy¥à¥cn@ŽZ^Í|µ¼Þâ®å·-¯¶8í˜Û˜ß޹Á些ÜÖ³r5.¿Gðáñ7ŒùâÉåÕ‚3¹ùsù ’K¹£59¦8öO×xÿFRÖòÔ†ÿÔ†ÿÔ†ÿÔ†¯mø¯Y˜¶'£ˆmHBÐND™…FbÈãBóC%¬úa9^>WŠM²}û³Jô*K~ùÙÊ)¬¿ù{ž~µUbúƒBV;Ž Φ'¢7äoz0r ïŰ6ãFôÄ !Ó¦» zO eÍãv([²È”`À‰hk‡ SDu  "ÒÛà PEf)ù~àq×)Jq™ -·‹å•½#3¢íœšåíR.(n¬‘]Úe3¸¶Jjnö21(-iæ n¥ðF¤ÒVs«‚Ùn‹È#Ú'â>»¦9”eìÊË4 Ì…[_\‚n[+Ò¹‹=î2 ¢ º{‘nÏÜ>ˆð 3ñ.ÐóË¢ žRVâûõ}>¢àçµ z^”P®ALb˜†™/€…ÿ“üT‚Ètý 9|æy—“×oý°Õ ·!6ÇhÞËün?ÌС ¤°6@ФÑ|+…áÜ ¢ˆ/u¸ƒ¥éh> ]>_»’^æU1ûy¼ôàð܆˜%3 cöób`t §GÔAi•G˜ê»åòõr×ü!b„äöØsôjÂ[Òáh­…xAêrëÚÕË`6ˆÇ3e÷@th8Ä8Ëf€·i²î‘å×=(£Ñßîû€2í€ûó2_ú¹ïyÿ>'»–±ê4–þ€NY'ä…K‚òE\¹í«%M;ÏK`4Êü¸`DÌ…’3H°vãÂÈó?œzté­O¿I‡7>{gãÐJ¹ÿÒ, W ¨Å A­F§‘Ú`Ò]\±’DQŒ¸Ã©Þå¿Å¤ ³ÍÂnMjaÃkA]¸j‰6‘—¹´às·ÄØTijpך§Øè+2îY_£ë+ý9»r]ÁV08|–ê±¾Ç:kýO:¤Y+ñªCBN²î0˜ôÑͺ5- κ£Ë»§íÐïrWbè˜%x®Ë7k¦erÔéÕ0Ô¨îq ¥èÊÛ™Y/‘9§·U‰—5÷“êèÜ_;|Y˜ò¨jÚæÝ9À[ººæa†=™÷MD½®r«‰F,„iXwŽh™²IŽ‘\~[È­av¶y9“#86¶É‡É¨ÛIH‚%¾y¿³‘;J2òÄÁHÜ}”Mo™|³ä×]¢D}*©€ŽßÝGÑÒ—(èQ„_T‰1s~^¿µ¢§£ß\*qåbˆÝ7E—± Ã§ïŸ8øÝô©õ¥åûû0V?ýààlààôw'¦ ^Y'¬_h'¬jÒî„Cñ‡ãä+P9›•×Vê=2oK£rÛã‰(œ4Ÿè ²&Üc•‰ÇekiØîDA¥ZMÛ?=õ^#ÚD­WTÆHž|Ô™>l߆F´ žG®;cÖ=®y“é¾ìÙ¥Ž9´´ßbÌçOSŸhÀd?Í­õ4·ÖÓÜZÿ¹µ‹ÝL¨%²;?§€•zk…!Ýc¥&&Á“×ŠÔ ÄïQ6˜&É`%—’‹qJ|é1ÞËeâb ßñv$”èƒ{غS~”Y¡¬Ôãç‘ÿ”‹¹úsN=¸Ù·#‰ÐåU‚®ÁÉY‚üÉÀ2ù)£5T ÂiSŽŸ%Ð0}Ž5šÆ/óµÑî mrå“AIâ}CÒç°«fˆ«lŒçj¡ã tZ0#Àˆ!GLÕá4[Æ€£‹æ1rné`2ZG@‘i¥"(õÄv=žý°í§Z½è\Bh­°sˆñDmç2{Eæ–|Œ ÅØTqðY(H^^6d”M2ª«Î´R•…a—öü½I²VH+ö{ç¾S'ލ0“¾ßÙ›Ë/Fk0Í1¾,xH(!{‹"±¢›Ë·(Ñ*êg á.åq‚4éXõþ [ügG"2ŽÔ0Öœ•ˆŒ.¸ÖØ5¾"Ÿxl¨“üç¹Â`éCCδ«»E¶1`~ä¤Pî”cH؃iBÝ„+§¸¤Î’ë%©&P«Š×y®÷™JKaúÉg…âO™ =å%%'-ºb !©@K“OÚÉ‚Rò7A¦Ïôvr q„ÉD1ƒÈæ’@iEwÐFÓ /µæ"»°ÉC„Im¥¢…ÌPiÒÔ Â@ËzˆÞKÝ4Ù]ÚÊW CÇLö3¿„dã`•@›ÒãA:l¾BW<$Àä©ìær)Yo&ÎÈÓpˆm“”Höȸ£?ó‹´EÇ[JJ–0}<*ó CçÞŪ½û*¨L|6CØðç7ULž!Ytš¸Äïþ÷ä‘ÍÒ“M6ïïÃ|ìÀÖIµyC±ö0;~•‚e’ð»qjïÆ§«†õøôšTOÒ'<~oæÑʇ&’éK@äe@©Ò±‹u¹tŽôx³uÚa ¦!%±9øY177xä"êÊñ$GØ2Ó“*HÁ)OR޳Kc_A¶øIm(˜"21-”ï6÷ýîP’ íÒ¾H„£œn0»Tt#É-ê¼¶ÐÝ‚>A“9!fù”xrþw¦@ñàÃ…ÜÃ[Ñnß®t…æy«ÍÃL¥©êÅYw ®êa7˜B=¾lúÝ‚tVjI¢â {æ›EÝš/~F5¿#~¢Ç¿ü‰3âw\íuÓ µ¯Œlfq€ §-q•ÄÆ¢ô:á*Sù´Deǯ¶H[)/%|~~e2Œk¨o“e­F¾AQîºhhRõbŒ¬–_–ða&1Í8òÔºB :Y2H…n•¯9:IªÛda×ÓºúÌdƒÖ0`ŠWÙë=íÈŠ˜åÒI‹^GÍ[ÉA ÓjbÜ bìpQ+èNÝ$µKq:í’vùbŒa <)û×sÃ~Ìd¹Æ(0IÏU7©‡Q ôÍrpÕFò{Ò^-‘?ýö¤o·ÌE|ЉߨމúÊJµÐIØïe ïõË^ñxQIAªªJÊq©ù™\ÈØ\]Þ\ëNÊ©€m—b(‡_Ø5*8Yõ¢,ìøYSö¹ Â}[XU)}³Ö& £Ý‰t2šx9Hý‰ðÙ¦ºG ô§ƒLÀà?D9ä›}XÍÙD‹ƒCÛI·ìÉúA§1ч§9¬8uId¸¶(¡`³… XQ~ÌÿÃŽ ätÙë»òëî[rW¾ºg€~åaú€ÿáд‘MÀ&~ƒƒkñWÖ ãVÐ¥"ÛR_ßMWÜñ¸Ú1§0ôu‡y«gÊ,[áð8Xÿý÷Ýü÷­êÀ¿oŠÄB.CÇöñY­Œ•›<4ñ 3í‰Ä|¬2É‚¬Â"#²ªÍÍiWS² ˆ–™´Õ¬dSV‰dO®²|ÖGÁ¸¬2›U•×H&fÝ"YY®Ð†#µØš]c07«‚Y\®H3:»B°;«P2=»03] Ð.—lÐ*ÍÑ«J°D»°Û¯s 31I«dOÛþf’¹5¬Ò.1¦U‘c›Åç(w°P{!ÕÍivjgΗÖš+³ln›µ§)²ÇY®]`0^G…œCÏu²_IÏëÍ_;v{![/ØÌB¸R¢1(dKLe$,ȇHX0£à0Ž"ñaÜ-,DÈVûªÿ–@!ÍåR¬0® Â…KÄ0ËÌa qC~}QèÈ-¡¼èñcÙà·"ˆ ~cªþÔÿÔÿÔÿiˆÉ`¾@•H€Iµ1«}Äa»#.þåHk`[¾¶çŒëf“iÇoµÌzÀ«n ìðØÎWÉD$Ùɼ~в ^ží†1ܰ®ù Ü÷;ü7{AÆ;”  °Më¡"uÃj=î ”CLÌŒËJ#&‡ß‘K¦hãÕœÖô,ˆ‚Îèbvóýjš´ý†s³Ó®±‡·jJYUœ–ôùo1»åÌ%£ÈúÏÑ|òÖûèõ½o ÷­æÌëQЖCä¿=G™ÍfŒiúÌüÆ•½G7VŸ¼ðø‹Õœ ½ÂѣȮ02f` ›ü4;XëCÎõTŸYA:Â*À¡è«Ò›ùS e@8GþγTzB[Ñwø­0Èjî»csZ:<ê‰X!bù³‚¾`C7n Í‹ô“°¡1 …ï3 Ù¶ò—â›srÓåM[Ž4ì9yXØD†…œÞÉ~uwÉzë5•ñF¿Û´Œ¯/|ø§·,^¿úÞú»oãtçë§?ºwí+§q\Z½ÍžÜîgâi8Ná¢Ï„eÀe §ní J‚ñ<˜üUºLôd+!æš*„òäŒÍòÞ¸±1]ë•[5†ËÌ«+NBÆaÈ{8¥c…0¨p+VñqݪA\LN“>~O¸ ’>Û¾î4~ÃqN¿m»·N0š ´boW Ãë£{º²»ìÞ»‘M1ú¦é§Ãx4e^Î þ$†îA"è®ýqVnKy±”^›æî¿™}Û¢ò›Ù±s¹ÒuôN™[DÒ|ö{ «Qlæ¦;-³`GrÝýå‹®·B?ôvß<ŸÞ¼¬]´˜Ñôd|W”•¿Í ÃYý¾´;nJŒß2ñ"“$N²Ø›’Öp·ÜŒ£™sÛÁuxMž­Y ÿ VqI•ÜCã6[+bù•óôbk–oMo <±ÛÁKѨ{ç¸ûJÎ)ÍeË.²+dåÄ~Ñù¥‡0Ë7ç0/úY³-±¯¸Î¶hÂ.ãØâ oÜùh‹fkæål¶þp¡Ìæ\°Y‡çè¶\sLË÷1[k\‡õÍiB¶ Æl•¶P´å”òl“æVÐRƒè6{º¬—ÊÊ™õmÓ¯¶O:t¯\4ƨöך5 ²í6‚ì'jÛÒº¥fàÊ·ã´ræÉ7´S×&V(§Éa(2ícÕÝc,e›Ú"¶bœø›Êm9+ƒÒÙ:Œ:yË@±Ñò­PÜ–Æõÿ„^Ö ï libzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/non_oss-11.1-46.1.x86_64.pat.gz000066400000000000000000000073671334444677500273520ustar00rootroot00000000000000‹šÒHnon_oss-11.1-46.1.x86_64.patíY[SÇ~ß_1UyHR±(_N¢*§*vìÄ'7•±sN×" b¥Õ޼»Ã°±Ávc|—°ƒm°Áà Ì­ê^…øèÈ`'àÿpzzfµ+!.I*•—¨e¦§§{.Ýßôô¼GXœ5'j“€jÛÔ4,R]]UíÛ»¿ªºêô'ûOîßK|>òAðCòñîÝŸdýæèw'þM& %‚¶E¾ŒÕ~¥¼GÂÔ ¦jÓa9^Ÿ 54Nª?!ÕûýÕÕþê}äÄñC(DQü@M?ÙWµŠ ×OˆÁŒ“ÌÊ WN„r`8¤ÚUAËÏõÅMÚ™;¦‘&«³U“ † ²ý¾YÞH=½ûMJj¼Ín›j6•6UQÝO²W²Ó‹-Ù¹ÅÖìdöåb7ÉÞÌÎeŸe'Û²Ó‚$™“_ÜRÌ¡8°!—Æd+Œ¤&¡S;"z¦¿Þ¦QÆBZX%ÀmPMUðÕi~òµšˆ«º®YÔ&¬>Bõ˜fÙÌ– °¶ß°°Ô¨n¡SË ÚªfRKpÔ'@U³Z«†Tňªgîj-üDÀb™Á( >Í.°Y2â,z¡íj¡m¿ƒ…d!9PHÎÚ’3…¶+…¶ÎBò>ïŠ>јŸäS-ùÔµ|úgþMÝʧ^äSPžø_KWiS›~Â*ü½"˜Ÿ¬]êXïû‘¬Ÿé~ÛÓþöüÄúÍõÞç¢]‡QÑ̘fÌ_壛ª(Ϙª–ËhÔzŒLF26wË€½ÿ}ÜE,–0ƒ´Ì®â0ÿå‡Ëƒ–F—»°Ü¹<\H#¥š'–f—!ilyðìò@´I â{©˜5ª†F #Íj,jhó×í¦‰²P3^š™g¡…$klŠÉžÞñx†³5qûäÁc6ÏÃb‚äҹѥdn,7ßÙÜÓÜhn~³¹1’›[jÂ3øŽæ¦á'ɳ¹'¹±¥ÖÜ|Ïòž¹‰Ü˜hE…Æ†Ì ¸ I4« &¨œ‰‘æÉ"¬£0&ga5àð铇ŒR’Â_¿®ÃügDç®ÂH^Âx&øùØ¯ŠÆæú“‡¾ó“W—Wo{33òjj¼Øpü_~²2Ú¹Ò9øf*ý룔£A0 &Õ²}j(Ä  Ô$À*¿Õ¬`U‰÷Ô`T s§†ªÚ0 ¡†ð‚Ï™ÀgÌëðWd6÷\Pçøai’¹ ÑC×±…‘f#3èÝaµàxÃó¢M‚“cØZ5-Ï~Ýç›§F£Ô”L€e€žV°^£!@\—“[@R› NÄ®¨¡Å3ˆ^OÊ ,;D²}Ù'P^lÏ>‘½ˆm·Êê©hˆÔ7l5Ä,Âñ3‡ ¬ôÛD‚Xa-Îk Nj54ªê*btˆ@{„DCtМ¦¿8¦2“£|뇛2ƒµÄªyA‹ÅÔ0‹ nŽx 5X#Ó¼G4Áƒ°×z»ÐúøÕT/|7…À¶Ÿ mm…ä“BÛt!)Í¡ˆçÕ:ò©ž|º ‘ï|>̧nbù"ßeÄB ^FâÙ|jÜÁÈòîHïɧf±µ#Ÿ>“OõåSW-O·æSíùôU9p€õÔµK×דCk]Užþ6;±–Z‘ƒåH:ÿ¸uá‘EêS5U¡Êåà@ f[µ¹Ír$E£ N‘ ÂCð <}´<ØŠhyeyàéöø*HWYoI9\ ©v”5¢PÛDšË‘•ÆÊ€û”@”´¸!0nß%øj9|°K ¾–»"­DŽ¥.ÄÖJ°[l²Ô%zsT=ÆšumþB9†P!€p8uÄ¥>J-yÔn„Ô¾¥^U¯T¼Ô#yÉì"\î)0Ý!%ò¦ùt;tAÊ]Ôwéç° 'ÿE¬^Ü0ˆ²ûU”–ºšOõ:ÌÓ0,ËÀá¿}ùtX ¾b-˜_©|íZK^#ë×úßötò–õóýdíöôúíçëíÓPùm´…¬_i_ëêvà ˆ>: îXëê—&Á…£ˆ&”ÀÆ@1»^EœÎÜÃK‚¦óè0D¥OJi\ˆ¦ËC€Ð<!L ½„{/ÚÛÀÒ7ë"B¤Ap¢”E» ü¸q ÁXenûXery`€à°$@é2gCÚö…Tžâñ,R…Œ ì͵öAi+-Ð"….ßëÃ;– 1’ˆÐ‡¬™g&NžXó„ÕF r@6”÷=^ú¾œz¼8uáýèpŒµ2¿°òˆ„sªÅjI"V„ݬ(«€dq»(š‡Q;•Α½¨D"Læ‚{â8-Ì|uµ”¨p Û¬¨ u >Å”Ê—Þ Ñ×. €8 ¸÷3„AK]Øi’ä¦ ":ƒàü œ›”êL4!pÁM´‰”DˆÄŸ–¼'³ßfff‚õîieÐDŒ-Ì.t&"`l~ ™ÚÂ=÷2wi©•+Zä9&\†¯w™²[5a ®ØÈý©´Ý*‰}¸L1#.Ÿ(î"K— Ö+k©‡ç zùzM-õ:Ë¥ž¥‹¤,–œÍ=ËÍÊhr©MjJ8ÓQ¥"îô+?w¿š¸ðjfîuÏÀÊtËjÏìêË_Mýòº¯õÍ㉕K#oFZ_ßhW>‹@.¥8!U¸8̼šèùõvê×Þ.·r1½ò ëõÝéÕ‹«CçA– S}žžÊGÇè)¿rººZñaI9ðƒ÷`ÛLP(o†üdOõÇ»1`ýJز}uz‚!æ‹Å÷(uºjÕûâºÚ£cTÕ¢èCîVد|bµôè¡Cuš·í£Ï¿dv½ä¥o5#XÏx)à.õÄQIVƒ&3©RT¢¿¹aÚJ‹7z*úžO÷îó%‚ ¼¶÷ÓýÅšT ñõtÀª'„ó…LqÓŽ1ƒ6ÅuzZ1Uå”ÎónÏ#ÿ9¢áf„¡øÕŽkðÿkÕóÿ `"aQâœÐÖ¨QX¾0Ê{¿/Uý¿:UíÛóq­fo’°Þ$ ,3M%¤Õ©ºE]#ª#ªIÄýŠàñahGL¸1ÈþŠk@=|Ú.rby”½†(I®9JB¹!JrÑݺ0?·(g”s8f*)ޱ:Õ“•D¯á:$¯ùº4׈Z­·\.h3³–íEã–u4qY.3tIuͽH@£/ÖÐäKk‹UéźpYå.!‹7~§_üåO8'#jƒúîçÝ;λwœwï8Ç;Î?9þ64“üþáy½¹JÇ E&÷}»ÀÒZöÂuÊ »ï1¼ÅÓôHfÂ}Aâ‰X˜Ö&  q[ú²c.O³CÙ)øÍeg<Š$¬T‡”ÃpW2 æíbKþ(µ¢Q¸µº%8†¦Xp #3î>ŠHÙåÒ=ÂêM)ŒEÍÄÂ,5"Ô}!Z2ãp7¡ÍÔvC>Õj”ß\A¹.äõÏ£+wÛ¼ï=˜YxáIgȼˆ§;w{ìþöúµßžÎ¸/ HTã:œpªû´°a¸?#‘Á4hÎ'¾…^:_Â/Ѓ£¢‚—éQ¼8?.º¶ûX°pBÖ¨YQïêÇ+O_ºd…ôÄJ6Æʵ1“†4êfìyÎoÜ“—¿^)äpožX:ŽâÊ“Ž"6áâHq¤Ÿx7Çͳ—»ÈT|¬˜=÷¦apÅE.fÛ„8òЬøÆ<·çTK"sÄÓ×å•PqóÙ¼ïfYç­UlžLÑâ.“ÊåibpI¥òé.Uñ ²s)§¶'¹\SñMÓYW|ØÜ<‹\—TJ W °¯“'Þ:³ëQƒóÿ] [ì\þ蹓|ªèùÇRªÛd*Q²ûª¹M®q£‘—dË£—§7MnU”àUIrqËÌžLì‰ém÷°¹U:”¾on“¢+1‘²(Ïæuå’Ü™°p±!ðt^<+¥½ŽV;,¶}2KLn'OŸ[¦«„˜e£DH#:ˆ”“—{çY§Ý"ëͰãÏêª}ü‚xÊI,©†íã7³˜ªéʆ‚l†¹5^± K€+0Ó5L-Eb–;½7ò7äeöïøþùç“3134»w’¡A!;HÓDŠ™ƒÏÈ쟓ñìœ$mVå»XN“{YNvwÔi‰ó°»%)†ÿ\êÀã&*libzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/packages.DU.gz000066400000000000000000004406731334444677500252760ustar00rootroot00000000000000‹ÛšÒHpackages.DUܽY“k9r&ø^¿‚fó(#ïÁr¶6›-Ý#ënIÖ)ukžÒä‰fp+’7nþúܱ8?d$o•4*UfÁÁ áX_>ÿ¿ÿ÷pú/3¹¨þôý_ó/þߟþïy{ù/³åêsþ¶;ÎËa&«ª«¤¨~•‹f!Û_Û…4_ÚÍ6u×üéoþ~sú/ú6«f¢—öŸÚnžòæî°~ßç12~ïü´jæ­ýEú¹9|ÿÿ¥m~}??&ª…hSTÁ@Õ% &e€!³ ¸ÏÝËÀûó9 ~õq†E脦<ˆÚü#cBW e‚6 ™cÂîN&ÖËßßßq#-Ô¢IXˆbToþ)Ã"&]†Ì.‚ûܽã?=­Ãè»…LG¯m>z%}Ú$£çÈÜèýçîýÛpÚ[7óöÛgm¹_DÕHYÛI’Mý§§ÃáòmÖ×RŠÙ¿.+øŒÃ6Ìx§ÃÓ°XCªùã¶o$ìyó}5О7§Ý÷å x©›Êr¤ÓŽ’k!Ì®««Y;“m>o}Ýhüykò¤X³^5†ia»¬ú?½ŸO°¥{ÌØæù´âHÛÍþýsž|éáé7úÉ{WäÏÃî=l(±Ð‹êxDz$J¹¤ëD.‘&= ™=îs÷²ð± ´u*Q‹Ã¬¤â*Ò¤Ç!³ÇÁ}îΑ›¯ÿ‡ÿù_Í› Ô™ÁVÅ<·- ·Qhói³ÿ6kÜv·àH´þÜ=¤ÓŠÜPÝBÑ ­M>ĺ†A´~F“6™R–ÎÍiøàì–çËpš[¹1_ÖvS =k+fzÜØð»:œ@K@9$È„Ÿ_ ‘ñ¨i}XEò\ì×›ó÷Óòx4¬ÄÓY«ô`Ò^Ö==˜´IÖ‚#sKá?w'‡Ý~c¦í-UÛŒL™`.€TºT¼taȼÖ3Iº˜ØÎÿi¸ÌÿþŸ~1¢±—l!U{VV~35 ~TôtC)m·O7™ýîºè‰ûª×ö«Úrk š\GzvË=ô4 \ úXžâ&¶åzW€»0©eÇŸß7«·ÕrGäG“ê'-³cõ ]Ñ&ݱ ™Ý±îswrð:@²_U¿¨Ô«¤U%Úx«Äfr«”dþVÁÏÝÉÄ÷Í„ž¹¶Aôå[heE“ÚïÖœw‹4‹6¹_„=¬ÌwÏ”ŠâÑþè7×SÙž\Hv6sM¨Fºm7«åesØ›ùQ…hu›½µ{½)·:j štà D' GF[›é»7Â÷ír?ß¿lž—É&œZT§/…š)0dVpÕ“^ /æûWöU¼è­$²B«ÉÞe½@Y*µ°7Vãtêõð¼|ßš OR…ZªÎJ«ŠÿéŒ ˆ®È²¡´UQ4Ágtc°£ÛÔû°Øð©¾Iwk•-¾—€ñvN6…²zÒ”Í×Ãǰ½6qmÕØŸÑºõ\gw~ìD4Ž¡Í~µ}_–zó~Ú-QõFÂˤwy:.ÍTæŸ6³{jøQ‰¬÷eÿþmf•Cu쳈ª…?*»–ç׸Äyße¹}ïý”ææªùÎau€ßùÛ tv°OÓ}üL¥í{_}Œ~ïq¹z»ò³§Ãnô{O‡³_\çó9Uû|‡ys^«ÃÖv7ÌÌŸ†óaû«"ó¾£ÙÄ}OÅ+é:˜^)m·5$ÝçÕyc:9+¡ë‡Šìá°)zÚ´mD6Åájd.B½îZù®Ê&࢘vÂ6¢Û¯ÍþºvÈDÕ€ü««:Ê–”øà;ì¯ä½Ó†½>\r×À9 /Ф/Â’j¿ø[è¸_Ãan«åv¸6ÐÞ¼¸%¬rÓùÁ4w‰u]£a ת ôsÀÍÖ®[4féžl7üy¼ò{g}éºlãu ”+*Àýß)Û+­zq÷<ìÏ«õÕ½ç¡Ã{O™“+ܵ·Ùo.ÖŒD¬ ±Æán?âôìîÛ8½ïK‚ŠËúþå]ÊãyûoKkª©í‹°ŸíËÓꕪԨ7¸Á“ Ÿ¹(ȯSÍΦŒ×Ë£¹ æÞ¶f-I`a­˜1wTsróZì¤JW¥Î†Ì“€Ëaû|Ö ö‹Ö¼`êrô¢å% ªØ$B*'zY[…BúoË£t^³ºwÜÛó’N½u7ØÉoËá·­€¹­Zo]EÛ…m˜›åƒ¡œ¬ÚjJ¢ µ¥=ÎøtñT×åßH˜Ú\Nißò¼y=šKÍÜR 5¸´0“Ñâ$µEßnù²±·%\¦]ÙýnºuúTÚwv™÷¼N/îRyßnó¹Z¢AÛqJªc"ôLèñtxÞlìLšñJFu6š> ‚ÿ.8zV×Öh EÞ·|:›·rNp3Ùà™ücf@/§ån¾z}ß¿\ö±Ëû~ù~u8¢Ùâmßwi‡ç7ùÄÔI|¿l¶q¹5#‰ÑÜG9ةnjDêR«`Oæ'»½óyÒ­ø~9üXž/ÜZ'¸]%Za’"ªLm ¸HÂCããÔþßå/ÿ*Gž±¢@>)(=üìá"J4Ç$0ªtkYN6ûóe¹Ýâu5c-ß/p#ß¾ hDâöý8¿ »ãvyy@D`˜ò¹.ðtcþµpaNHª oy÷læ43M6í 9̺P0íiãbÜü–ÍF2í*¸²³m˜x£òq1ñýz;Ì·Ks”Ñ{4·Æ{–…l '{ÚV£ìIñ¼0d|,ÍñWÓ=Žõò:=ìfÙøñ'íè”/©ÅèÃg8øáÆì+ÈÌŒ£O qör9ûáCcÀœðë³OxEb+I;Î~I-gß惿µ÷+!&³ŸH<[I.g?|èq Ø(dx¾%í8û%µœ}ÿ™þtcöe—žÜ”gŸ!—³>ô8^ßo‰NЂeŒÚNDt–dFtú=Žëc¼º}tŸŠNÚŽÛ§¤–ÛÇæqƒÿí†ÜX„% E¥rxK2sxý‡ÇÀþé:5.xLM£íø`)©ÅèÃg8øí­½–Zº÷)ìý’Ìì}ÿ¡Ç1p¼ÍÆÙ2P9܇ÈÀÃ+êÌŽ1e>!8Ò’\2>ô8N·Ä§Î5OÍkž ¹d@?^ó<ܺÀt¦¼%r•dæÓWÞ~½Á@/ÀZqBˆ 0ä’ð¡0ð²?ì†äíÂów 3ëúpˆ3J´½stø4 )è•¥'ˆ0¨ðí×>ä#ƒômÃ1¨ FTá’Ë(ÄÍÐ#ƒð´•WõoÙCÂeûÀõ£¯Ž=£2ƒA_)œ‘¨Ît[ †G©¯2¥1eã!lä‘>X[¯²¶ŠæïŒDõ˜ŽÀ£y]ÃE_7W÷iÝ`æ¬~ÈSÊqyã$Šýóµ&i)‰pÉuD.¥‹Z»®3ÔÕ Ä÷+}nq\j Iá"†bd"ÅÐ#‹UMÜÜc{Ít7ôEÆ®b#!uE÷ñJËHÄ[ÃuUl àG‹«z·ªažº‡èÝÈ$}µ±‹XiL,ç1£ÄEäèQ¦v t÷×å ´w ”ìÑ7›à¦ nTê`þÎ($,‚¡öT_óÍ-¬ì~«xÁào7îD­1º3ZÊ3J\?Žo Îèë÷E ®ÇG®}rìÉ"bÛpSB´û3äòNzÜø·7Tt! U–”UŽÌ|}}y0Fú‘"òx“=0”õ}äŽs%9ð¦!Xᆶ)ÁSùÈ­w¼!:Œ‚Õ "mé …XÓz`OöÁÊœwÂ`ãNgýÀ ütCö Ù@ˆê‚×''‘Wטìð¹ªêê³TKÐe¹Cé«”¿Ä+‰Ñš‘hÈÓA.ñÂÅ5ƒ^lU8ÈíõMúre·j§pëGF‰[•£G[xùuW•”N`˜Tõ³ø¶N¶5g"@Héw8^ÜëÇY‚ù 5B¥ï%×çï¸ ²K$§•7~âA|Ó÷.Ç·ÔFÔ÷žo)[# ß 5²úÂæ‡|ù|ãçÄÒžá>ò(Ö‡ë¬×xˆ„Q¥ïµ@ì¨V&Ìsäh-Žá–‡°Ä’}÷‘±OŸÉìÊKDM³È5qí¢v«_Òéú‡Þ`ÙÓHáÐ.¨Œ]×}æQ³pãÜKÝ£O5"Ì‚n02¶Vé,pô8 ¤7:§˜P9ÇÔ#7}c³¢Ÿ½ZÑ':œ’Tô•Tj²w}Þ³ÂD´ÒÂP=”ïÓ ¾{Àîè#ß8Ä»Œï’ù}ÑÐÄýœÈœ}ñHÖ鋜e]Aаnë˜ï§²Û®¤’øßçß„]ÉyA+Õµî‘|Ó§:Ç·î[Ô+šëbDŸ.:GŽ\Åΰì5·ì9‘Yöú‘ìÿvã²7ʧNOº†ùÏOzI¥®¡.9éÞ%9ë‘ñ5d>òyýÖŒìø Ptò_R‰~çû¢’Ïé97ÅœÿÈ£XßÞ`½ªàH Â<â®)•³_Òé„Þhræ6~Nd6¾zäoLÄÝÖtazØM•²_R‰GÎ÷…ϼ’Èlü‡Š¼ã ‘×´ˆi¢ƒ–ÛhH9—R'ÌsäÀéô €Îmd%µ|àøÏ©–ÏP#[¡Ï¿}¿ 11;\yj–àÏ}â^ÅmßwA«²}Ï‘És>t¹Çú‚ÈȽ‡zj±`ù¯ñ¶‹OzDëRÙ¡/©Ä"åû¼í¾2ßõ µ4ÙøÏÜËý÷Íúe°åy¡¸d|‰~HŸ)…0ÆÐ};Äã×ÔuYAÒRSƒônãÄjXoV&ÞVÅ[ŒœWA¹ó6yuÔ€_? 9ª@‡_µ ·uïÎñÿÝ?þýümø1¬çχýå<ÿŸÿü–)„™2Yñ!RUNœ')!2ÄGyÚßËëá|A|÷—Gy÷£9çëÿ,×ËÛŒ™;nÕ¨%ª ä¯1&\œ»EÇØÿs›³NÀφKÚ1Â¥¤~-ó‡Õ”åZmvóóêuØYŒcу8`rrš hš+ž“Æñ_ÜRæ“ 8þá9ï¼—›Ír\^^?çëÉbÔz!™¼‘NÆ$Ô¬W£ Xª—ålS4ue9¿;/ãÀn]áE£ÕAö10¥Äg&G'x[¤ÿ^vó÷ýêØT m!hÕ¢ev’î ;(ªý)<÷K²lþ†‰¯iÄý¿Û)e@7¿[ô åËp2œT ñëËæb«øUÂ|?› »>^“¡…iH4) ²ìX§?<9Ÿyuúq¼l>gj^Ý¢eR5ØlãB& …ɉ´®A £…zÈÈçËó^Xéj„«è-ÒGË8’j´K!iFSaAôÛ¨Ë]Öh7ƒõÓù¸Ý\æ—Ãa{ž!¸ ANi¡$í9Q =æ–@œ}*]c•‰ûKø­Ïoov êʈ Ý/,.cü„À¶>¾ä}öd¡…VºäF(Ð/“øU¢dÙLX*Ë¡Gñù£šbÄmB ¦Ü’<Îè'áñ|Zf ¿››\6#ÉÊ]ߤâ7%Ä+!´“œn± ”¼¿îåp~»Žs[v!IhX$¨ ™’ʇª9xcb–¿y‚é(nåÍ‚JP¤³ã1¤#Ÿß®€c(X½ïàX’/¾ãûÓv³úõõ²Û¦?ñ¹~¯ŠÐ¸–b¾æÝÂ{k÷«Þ®‚5GR£JN‹ –ëqKÚ ¼:sg:K§óÍ• ý›Ó°ºN‹¶¡„TšA ó§åêíåt0U ÖtNø“Ìß( ˆ¢ZØP2I½=n>wË£a˜â*ùÓïËíö¸4ßmÇRAª4”£ø+¡‡°{v>|^NKŒˆã‚ÙÁ}·`žÚî[z$íx"Kjœê³û„¹2mãêJ=h2 óû3â¨8¿©Ñžˆ7Ùb¬CMbæJ|ÕrôùDºï:¢Ö³®YÔÌP{ p w¤·vÅ¢Á÷RõÙʤÐ9ºø+´3ô’Qý¢¢fv/¯‡•-yø«šY°FËEÃN‚3¶‰¤´‚ Ø&OTbéÎêšðóËd«Ãô kúé{À†Ñ†c»Û¶B=ׄ‚_‰Ä ØÍŒži»Øyi{gÌ s‚Èõ0 IÁc jªr¸HŽ>2à§L´p_´²œ³F@`¬”Ÿ5øhCg-£à·"qú¬Õ³ŒšÃ©^2ÔF®Ó9«Ó)S5º2ûBqºVb•̃½ïÈÕ˜L”Dð¡û£CÃõüó¼Ÿ/?¶ÃùuäTÃæù+}ŒO#N§LgA¦³`ÿBá_ä0Ú|OÐ4sô`Ϲnœ¤©î6†9æçëó¹ä¾7 °­?Ê@ü@tˆ°É-^œø(ý64g;h%Íœ ‘¢j‚ÔÀ-жô4ü{i:Œš9!âÚÏ‹™êù÷áé¼¹`q8ŒG4Á(S.ü“jÑ]"ÜñÎ=&%Ý­7é+ô£¤‚p&F'ª~&þÐé0~×^_;æð÷øyt$ßN‡9ªÂ*„u}÷Ý\æ„UíÈó_·=Üí1Æ+£Ð‘’ÀÕÀ$™@Ü¢ê [··&Žì».³ëM¡ãd{¥Ð³‰±õ)…Ø0º_–ܸ–毀æ~fŽ›ãërÿc>‚—%{ù²ƒ‘fVš—2’ÿ¨gÐÝÖ—çífOÞEkí÷ölã8ç)D[”doËtŒhŒ@P…æî;Â2’‘¡k~TÈÿì(!D>²×•ÀšG$v• 4ÉûÅ:z|–§åÓfeKìV•®lt©hٳж€4؆Ö”u?†TæYj›$ôjîgGfÌãûyó‚•Î…Qd̓±I,ÉêÊèú«Zö+¸Z°×ÜEÕ–%“í΋O¢Ø7´ò§Ø…¾žr¸­’†{ë§„ò­?Jyy]n@„²^tìÔ¡)Œ8Ð)øÏK²ßðlâv9 `Û½ûŽò|œ~Ì´ÚÐf#ÛUÏúlD“zÑ“6ÑAƼèEáÀÈFSa‰»¹8šeèmIºÔ\ˆa*2RGÖ¥…ǯà ֢鱪·NØ:ÎíhÌ»ÝBh›«YÚ(Á{y; pÿ¢ÀéŒîlë¤k]A2¯Œ/§„o^†ŒºyÄQ¼y%¬‘¸ÿ&3ŒÌ/—gtœÏà®57.[Ÿ²Õ ¨6.XFŠëÃvxEB)æÏàX©û±.ž?¾ïÌÑvƒõﴨβ:„§uc$£ÀæCÜ·.ß~²­à£‚ «Ñ(” {fH¶‚¤Å 7ê¾Ù*mÛ—¢S¢½êN¾_–ÛåËan¿Ñ;xèKóo.|ˆÄmfM_€3%)j“Û*A؉ë×¹||Y7s¹¨˜|z¦o/þr™ø¸ï‘Œ")­Ó…·òÖè¢ó>ŠX¦¾Œ¥Á?æa²øök ¹¯³z”L}—œ4böõ‰%<^Ö»Q…Z-Z®H ÍDwEÒŽ>’J°~“t@{ï·ÖÑ+í þnF†Õ›ÛÛf®V»3ÿànCpqÇË4ýsš„ѽMê y²?ÐŒã:·þ=pû§Ã~³;Ì[>ÏůկrnÎ Tþè¥E\en˜y‘¹[2 +AbÁ85¥‚x`aw6,ˆ› $Š™î‚vƒý ÎÇauž»óµñG³PÒØ-dàHϧå‹sQNÝ,1àl¾úÍÅ(s:µ •íÐÝuäÑPcú“ìZòpÀü²¶nÛ a˜^üE¼_ ¦$Ù10½XQçÞ ÙìŽc"¬ŸÌ3=œû´Eè_“Úö·¿Í&–ß^‡íÑ\WüêŠóË©0RDß„wlA#Ö6¶'h—*xNlD=êã÷C †lžî5žÌ8 tºï"dUFŠKÂvøaÓÞÉ£†rFã£î*ðë6±´fF‰>bŽöLìœ<âçÓõy–ˆ¯¬÷<´Øž0Õ´{òÈ7—ë#7¢ 2f{j–’È¡å:°IïäQïŸnÌ7ÚEµÌ7Ûç›tOùöÖ|’?mB s]ÉL»¾É£=^m¾ê –´É),¨ñ º®É#=½_i]UèV¦uç(%°9º/éœ<âóÇûÆù†Ã]CÚäž)¨á&ñ]÷Žô7pmßóݬ^4x•JÌ`´9îÖ…ƒeå£É›Bëñe¥&Õx1þÑjT/iV†YRÈ={zþ…Ê…@¨’œ¿Ÿ‡P¥PJØDÜèZÒá)'ÅÁ²Ià¯ïáa/õΞâûáv1üjù¾Þ¨0ŕծðæ —”yaÈ#äÙ…‹AÕûvíî·¾æad°8jÑÌ2º:ç ìOB‰6 Žîm>ybÓÕ`6Uf¤Äˆ1 Åh©˜Ezt´ˆûEÂàš/X†0 €™( !ÿb ­ÓmÁƒ•;EJhËpÆUš¡SW൹úwÑÄ]m~ÊÕ—´6sP—O$=@D=<£\yþI ÷Éë/0_ÊàP(ÏåË oziþ«Óøì(˜¤„T„©+Ë´9¡×¦r2$¦‰¤ÑX@tUÓ%6ÞrÄ&<åS†ÍkécØ^_§0HfÄ ‰Ø¨üÁ›4V#Œ–v"ZØlUtRȾ'î¶ŒF`®ÇKLÐ&“ ÛG* Ñ#êfßp=ÕØ\¿ ?Nö†FC» ¶‚ƒ+i'ÛdbËW_M)Þ)pÐ!r·ƒ»XlYY˜XgÅÂ\:Ÿ\d<³ÒøË؈õñ(ÚÉʉ÷áÑL´­®obä[J‰ú"G÷\ŒnMÙÂ…P+þª“˜üJ;qØ(sZ7u÷D¼Ï!sË*46Ò]‹EÏáÛ¶‰!™6IT_KÖѧ®wkñ¤­ Þs鉱`xÚŠë“Ó\âÛÄ|p;¸Óð2|!çÓ&³±%+ix4Ò&³‚ê#b‹¾Îž=1ëíåòƽ-œU´æª"ÏÂӂگ͡/³ÿ¥Þ–89j¡¹DÄoŠ¥“SB|f3d¯™ä.»p¨5¼¾ë ƒãžœgP\õý®°0 ÅY¬i6î릈hÙ¦í¸K*ªï¼¨s—' ûŒ91µ¤ DÛè¯`¯•Õ[‚Øñe=ªá$O17H¸ã[÷ºò@^k>ââ–6¯¾ÓjøØ ߉‡SZg_X:]VÚöÔѨA‹:*„™‡S3ÉÅRɸõ‹,×èÖ×e(Ùã´¯W#½BìnWi¸QÜ UªMCSµZä/¶‹Úµ!'raÄÇöp¢ºseOGW±1×°ü[ñÆËi^ÎÊŒµ¨Œ4SöëæyY½n–V絺¤07!³j1mÐ=%ć2CI° AB ®›¼{O7xhëº÷qAˆ'…!ßâ¡­]4õ†÷Óá FVÇGm“G{Aõ‘ZÙæ ã— LbÇÿÛòxk™Ë²N5ª„Ï2C¾µæo\¤Ö4nm#W?+¯ÅÅ—âbNò8Z£üºwüo;#}Tcb$JS¶5XÒc팂—ô,>Ãë¶1ÎÏíïÙØ/ P<|›®Í¡¼$ãÜï?/gcå•‹ˆ´ VFB[ñ, @Ðà2´AL¤„(ê²?fm¾y‰°ƒØùú~I±>H›ñõ¤E¥ ˜ þò?OYëû÷ï eõ²™»øH·ò¾çõbvGÔfîŽØìÏ—9*FÎb 5§[»G— ‚@òD/¢m*8DIœ'Y?M>u77—í3†×^•¶%m‘§#}Âð, Š š7ò€G™R˜lL$IÛéH¼2²ó[ E]”ÙáÝe»šd]p”ß0&’sÁ!L×½³p\šSÊÜÏlü”êïDº”@ªðºnЮò¬*޾z]ž1>Lu3#¹÷2$¼ÝϿϟ7§Ýwó•fz+Ê8‹¿pIº^x'ÿß"}‚l=æ6cí2t7s…r~ù›óÕŽxžjÄTšI{ïÑ“0™ygÞ‚x·1CzàÝw>ü:ìá•eÕ‚…‘£m%ù"Ç`§Ä¦<­¡$úg³ï)r…ÜL øWóƒ6ˆ­yži°ƒ*#í$í€ù;:¢^¤ñÀЃLî³ èãü12>±¹  ÓCô÷ß4ß·ª×õü’BE½ÝBÊ·Éjô9úÈhÒŒGÞQ§LúV÷’4ªÍ5î.rfWá‹PûQÑf•£Þ?ªß–oËÓeéü«çùÓ°Ü£¢! iĦÜ1S†ë£´¥}A ùÀ³TÃw1%`T˜0Ã9/v¢Wà‹=ËEÕì´kNó›ºÎÇØK¶Ûa…ð4j!gmÃ^7`즅^ûY¨rŸ=K³‚9x:ÌjÏtóÃ2hiwí|ŽÖËÁÆ. x‘YhÎ!á²é<´x,‰þUQÁ£L¥íQŒl^†óe8Ù“g®>­ŠY3 ガ¾Ùfv|tÓJFΫÃÇpúaiË £ãw‰S˜´âzä´ë¹ó8&†-&êEËùòEKI›ä‘2KÙÌ8Ù!ª‰Þ­œ ÷~Ü–k‡Ð*X‡·Ž i+ÚVs‚å~’ícùx½\Ž«íÆH+‹eO¹¬ŠV'¼Ð&1òpSÿ7^‹çn^Wj,œ®CQûY.ÛýEF9‘—×2VÿËÈòíò}¿zPÛÞ<²X<ÕN•CSS¹³'> //ˆÑf¥Ÿlj6šŽ<ëÓV|1ä´ëÚSã1!ÄÆÎ(OÛáÖ2{qn~êEÌÛĵZPýÅZø\$ß79/GkÔ=½‹ÚD–·cN@N Ôì–j¬|,·›õòr8Ű 6tIEÐé¬W£ †ô'–•®´D«Ù3ÓoËÓ~¹õ p` ®’‹ˆ;=kŽ" a&1²% †MñG8¹ˆ]¹Rq á¶“ÅÇrµš!²a!á1G &c³ð.q>’ÔÊK;ÙL½ÎÖÃqد\°PD­\p+—¸kÆ][Ш·¼„ë©*ŰÞ\fJv’½vu­°B\¬ï–RÆ·œù ‚ÒSÜÌ#:· ޤˎmÊ x[Îj2é¾µ“¬*U5¢ŸõõB1Ž‹.fÿÓr2ÊøT˜"xgj!´[$éQî n™ci†j´ú§ðn†ß÷fáÕ¢ƒôί—fK.m¼$z•1wɹÅí'J ‹œ<߈noËøªEm”!ÖpÕ‰]iÒc2gËÌ‘ãC+vNïzym¼²®ÁQ&Ú>ŒXÖÊ`ŠVÖi}*¶ƒèñ¤Û?#A`æ™nÑ{I\Çt¦‡«‹Ô`> ¥ø:„½¬³ªT9r;=³šc¶ zfõØék+ ö¨>0œ<¿ 5ÚCßC|X]ß–.™T‹X3-§ÅmÉuÐçeìž<öaÿëûÛkCªtÓ©XÛ4£Åò¦\Q I÷ô¡_•\º5Æ-ÊP¤Q÷U‹^š´Rßï_Úí•x+±s´Í’è¡\Çd¦Ÿ7טn+0£Öq©2Šg˜#G.bçôñž®žcÙ¹ò±±d¶¡RšMÍKO3Û4ív‹øW*3ÖD·H¾c2Ó¯ïטî;0ku*°œQbÁ’ï±sòxA_¤ !TE_Gy[ÕLÜõ©ðâ;â"Ñî¿î5óÛÕ¦Ç MäuF ‹Äã"ÅÎÉãÝ?]=ùÌ솓ŸRÂÉgÈñäÇÎéãÝ^½eƒ©M¬¥ih\ØèìFd;HÜéöo++yRQAôXš®c2ÓÇëL+ôH ûäóL+Ñc4¼NÅßAž ¤Û‹;0"•Ÿr¢w®c:ÓWŇl*…jtn%Y÷èo«\%ç:ˆîCº½eÓÕ!NM›Ñ—‚r`ú׿ý_×u¾ýwmÝD¾kpˆVˆŒo®ƒðMºýbƒ#óÌ•D¿Ø®c2ß§«w›Ôˆ—,jß_ºÂÁZeL³‘iÚí-ŽlLrAô@®c2Ó竪fÕ"ZMTMwiJ]§;œïˆ"Švûn*Mn¼/ˆ~‡»ŽÉLÿþúëßýÓ5¾/Æ:œëŒj61dbO ò¿þŸ«Oå ¼¸u*£„§2CŽÊIì¼Èz¾Ø_lŒÔH,h0Ò:V•Ë(ñästïÐchJ‚I…¯~ÒôT¥5T7Ep8F×ËkŒEƒDMªßf4râÙŸ]V£²an$¤çñ ê |ªŸrCx†‡«++!Ü\ÅLýŒW–£Ó ÊÐý€!£éåʸU iMª*%DMŸ!û5ˆ}ñauugµX~»o#ºVFŠûŠíæåØ9yÜhw¹2ì¦n°XA,5œR¢åè¡:†íÊšY†¾. P£/+’º‡0{UÆ™—ÚíU­ä9-j|Oðîhˆêiǰ¨0—U&•BÈQÂXxõˆù¼¹Æ³àT‘=£D…€£‡ƒ„À><7ª£•j§\¬ž›ÓÕ ½š²ŽœWï‰5°Fm/¸l@º…êq¢ðõýºô†‹±Ž`ó…Ho†î/*ÔoUÇpÚæ‘M­0írœ–ã²³«Às#dGb02‰Ã`{üÂVh i5Ç®Dœ1¡Ú‘“ 7ÆCVö·«÷[Ó@4y-£w9¥D¹ËÑC!ÔZr„-ä£Íþ骠é?_Ë ™Q¢ áèaí í©b.¯èH¶iƒ~ar{u›ª‚2D¥£ò˜Óˆ‚íñ¡“=Ø’êÄ3ÄOxccšLÓC6éñ*ÃM߃P‰Ö€Œ7)G My¹¬üÉ‹¨&‡±~Ÿ×å‘$è0Š^É‚–ïñ±`ø@jXÍ‘™ÇN«Â‹ô1üZ³ÑÕ‡Pçò'IØ[N#!¶Ç£Ü ˆfÃ.°h0²²â7³îº‡‰¨ÓÕ»ÔŒB »ˆ •“"¿lG¨º_ÍÞ§uDÆ­Ë)FÇêù㪢¤;Þœç|7ì.¨tž¸‡·d[¯²ñRÑès*Õè§ÕÍÊÆk­ü7ÄD•‹‰ŠrA¥b¢zð¿òip;’w¥wHA¦ïßù˜¡ß¾It¿SSJŒI-ÉÄ _?òzº®]ÙÈt‹$„°EJ*ñˆù¾ÇŒ÷¶vß‚šÛa—˜K*±/û¾GŒùüqãêüjöTr õáùãö¬á.hDPå2J8ƒ 9žÁØùˆq£誢‘Y·:θU£¢ñHÓºx®êöø.Žé?´tû‚u{ßuçp·Ë£-ßcARæŒÕZ´˜Õë¿Ah¡PTH9„mnö›‹-5íT-|9@tJ1“Ÿ;ïóeªº"…ªÑˆCˆH™–pÜLßÐã ZÃ)€5ÌmjKŽŽ^²|j@CÂ2& k4ܽ —áPçÇý `.ØlE ðµªyû9ÖåÖsÒ$¯’œŠöß;îá|6cÕÛÍïËÓúüë°ŸU€PÀ+¢B›<ÁKIÔÏt„ðËÊx¡.éóûy°µOAìØÿÞÍÔæi8Ίsa ‹á$БBb(•Þ™€¨ñpðÀ2ÜïÁ0|üù¢£wÌûgmYXÙ±•ÝDßAæSSEØ’HV‰ïŠˆ©¤ûn.VÃþ< p{Õñ 5#I•îÑqb³2JŒçèR#4—ò"Óån>öïŸsçï{–ëá„.?sáH6Š£k dKc8RÊf¿Ú¾¯‡+=Ëón¾ÏzʾÞ-·Ë—åüü~Ømf®¼&#»Ì"Š—¶‰Ù² ú‹Fdk„¿ûÍü‰êg“ °Í,‘üÀ%ÕXm‹ C2†2礨C²ÅV—k [,*#ïÏ|Øð £ƒµ ¨fëh›ã˜šð½k[­«¶!7šÙSÞš.¤Èf\ÒÇàByy÷mºû%Là¸umߘ\5Ka“¬B4hJ"¶'®ƒ”QcŽ›ù´WUw+G‘•ÍÅJ»&#JQ‡ªqÔ‰(¼{JrHVÙ± †©O?wÖyÚj#ìšôœä¯¿°ocÊmFŠ¢žíÃ.öq\uh*íø9n±lR»°üÔl¾&ÆhU}T¿3RÔUØŽÞ‹9 †”DdìªÀ.;ΛO\Ž(ß}/}–‘â^c;|>@!æ÷îoðqWÝmœŽÜœÞ-ÎpgF\`–],yŸHXtI&œÌkÁdÞÓYð†½s_¶ÚÖÑÜ‘RÈmÅГ#Á~pÌ´ún{°ù¢÷çåêò~Nóù—¿7"ÙšBŒpd_ÚMÕꚘ›YÐH Û³z?ž‹î{‡¿y[®^—ÞäÑ/„½m›EÕ¡ÁZ?„’±4iA QyÄè­æoPPßËÐa˜/×ëÍÞ* tpÁÖuÒ(&ÈÓvê¬uMJæ%EYiGyÙ"jõÄ:ÛÀæÓò •®ŒàdK° ×aŒº§í1]ŽsS°:& ŒR‡ãÌ–&è6Z»ªaˆ(sŒ¼žÅç›yÛD[—–$t?Y~€Š°¦ÓÒ-Ôå€ ößB¶Ú+oµYöÛìÂ;m¤ÔD|tW&x¾:œ,!ÈVªí[ˆ1Y*%à¦ÅÐéä÷-zPÊ}Ó4±€RR°X™»«kš }™òCc–׫qª@iàÖ6t“Ø™S¬“¤ƒò?MŠ 'ƒ²óÖa ~ˆ«Ó°¼ ó½Ù}Ã|·<:t|ú‡/Ã~½<ÙM£[ôlÐÎ÷Å^?Â\êŽZ: €çÖÌËå´<ÛZȪ˾92ûÍF5Í¿8_TÌcUÂQ-ª¢¼=a=£»åÊY¸VíMæEcH-Á¤¸·ÿÔÅ/’ ãíSS6ÌïÃé`¿Ï\Cœ7Æ—ƒX«A@Óæè„Þ²t½üo¹=&™¥-Wš"B{z=ç–¤Ÿ%?Üùñt°ÖÔÓ|ù±|Ý\›)k±ª&iúƒ”‘ò‰QÕäE=ÖÓÏ;ÎeEÄÖ¢í±uO‚ä,Ù2‡¢Sæ`Ôùªåæ¯ô$M¬=±;^b¥I¨ ÄP”—0mžœý^ë0Ã^û²tîCw÷SÿæËêHÅÖ>öÈíÑ¿œHlHIFC2í»wœ?ÎÇa»/wÖï²ÜÛWhSY )lDx|}eMõ=Rø>/+é~ÜÜ#Skey6žNËß7Û òÑNš>tƒë`Î¥mXP©¡Qr¼èF÷bfsÙœ_(¸²èQ<+µN–„6£ÞRG^TÛ>ˆ‘õrïV£«”Ñ3yNdM sæíxÕÔ[gÄüI÷ FÞ/¸"ö€Œ­ˆD䃶#%•zxF*LµÎÈóiØû½Õ®ˆmr@’6± Tj¡e9¢~'/Ãiç„–°™È#œT`‹gÚ¦Ñ9ÕsR(£“Jøa?‡JjׯßT*Û9)…˜ýzcaÇ~Âøÿí—[㯒Ž?¡ñ3ô8þºm?þ[ǶoóÁ§²yzÜ<íO<”I»2xUaúC|F‰÷)G÷ƒ·úჇrgW_¡—’ >¡Á3ô8øÊFR>xðPûìê¶i ™ÓŒÈ†·MódÎo7¤½ê0Ø—Ì|J!¯g†fÞtª‡ „]yYWÙÌ'2ó =μÔß6Ç›ƒwÐdð … ž¡ÇÁWòñÛæxsÏ·`ID%¥PQYÒ‰¨4{êñƒŸCá­«ãWÙ¶Ï(dü =Ž_ý„mº%-›®I•„ŒÏ,Gg¶éêÇ+ Pëªz©Uvɦ¢^2ô¨^jùøKö÷×9´º:~•Kû”BÆÏÐãøÕOöfüPÝêêø[H£¦ãO(dü =Ž¿mäCÇÿãø:8‚vðЉ,” R‹Û––âØrðë`iŒ”)gè«êÝq«K¾z×Õõh;¸˜d±¯SJà‰¥ãz˜À(¤ýÌ&?êáîKr]}ƒn2ú”GÏÑãè›Vý„Ñßx-¶mÓd£O)qô=޾ýáÁ£ÿÂs±ÅRe  …0ÀÐÒôÖ?aóÜzo™gRŸ>¡Ñ3t2ýu÷FÿiÃ+¯s ¬6Ú“’t)êØdB+Û_WzÖ˜þ»“d86 øµE¨U¾…RJ\Ž¡¶àÝ^„[¯^#õd.= ‘ž HÏJ<~ô·ž½-ÖW“ñ.Î(qô=޾WxuûÂO·„*„â/C'Ç4‰Ïý­‡oWUxEXJ‰Þ$ŽEgßáèeaö%›þß»·Þíf;ä;'¥SËÐÉ©?açÜz¸›ëå`÷}B!ûž¡“}¯@b¶w§²£¿uj{™Ï}J!2‡¡™SýŒ¹¿ýt7º@®0§ª5Œ*ÌVçÑ?Ak¸õv7ZºJ7OF‰b‡£‡éïd+¿yn=ÞÍ„[5¢±1t"vºŸ0÷_x½›{¾K¥~F!’‡¡“ÍÓ5—ú_x¾›aé‚öÚbé”Ç^[—aw´ødg÷êâ±+T%Åb­ŒMWÆQ¿vøqüKLî¥GGÖ†ýÖZÿ±æNF‰¬qt’s®F9k¦™Ü6ÊÙvù4lÏó¥†|½\¸ )ƬzÚ&¦—‚êÃò軄9Á©Ra Ö¶Ãå2œ®°WÃøbÖdÒŽQ7%ÕgÚ÷×v%†!4²-Eöާá<ì/z·]þ8¼_Îã»TÖOGMJ÷¤¤¸’lÇW6ª¬•«K÷°å|ÎË÷Ó;Ê@4~/ÔL²FÂF%Q­´x+‰ãa$øy°ÿ<œ ê0’åF÷:Šé‹º\<Õ3”g{8Žt/&d²4¸¼(ac©y+®é¥„¸òõe’®*ÅOàêì"Äe5ÆÚw"S´MýI_ Bö,õjR¨Û(GÏ'äHÙÀW–£ºÒQ¦åí(Kj„,Õ•?…¥×w;ÆRÓ$ÁÕ´eCA¤%ËXáðsVhÿäÙÝsuvjö•Ô{®Æhñ‡s„hD°%ÏGÄJs’vw%•ærâNµ?G0˜7ˆ»N´#,umyÝr‘×Ñï¹<ÞñÓÕ?‡Ó;®P%Æ.$)šD*$m"» êXá¿ »µœÂ’ 0=Ÿ·óÕpàß~ѽZœ&HøÌgÚ4ßÀ‘àK¿yòýѱ> vþô¾Ù®çoÃÐH»Z³þ…ŠN4iù(ê”r:îuÊ4¾Ÿ‡ùê°Vçùf¾,·[«:#^Ô,*ÒÌ'7¥-j=‹)óÑ#2’y—ߣ#BÜ× p‹á›_ö‡Ýðç÷ÍêíW[sæ%fe³7!ÄíÏÃþ´Ž`É—Óy²hóæß'‹ì-°T,‡ÓiLw®"fJ‰2Š£{ÜR9‘Ý(W ®î¢\}eNr˜SB܃ 9 Ô@‰Øv ¨üQëdÑÇ–ÛÀOÍó£î@3Rä‰íð\™—€UÕ_ã,î/Ï9óûOJD)|º[’Í[NrZ´ð=>'D!\“};ÆÂÏß_5ûp:X¡E7“zÑ1KvŒp˜H+0QШ¾L- >;i6)#ãðùãeØÏ-Ü•½èwƒ/-Ù;GÖa£t·ZN‹{ï ÐZIÿ£Æ??¯–ÛåÓö:#JID jšhmÌidc±=#ŒôßÉÈqµŠóÍ^“ÝB/ÌC¥æŽjàñéEš±<«rôm[nÂzóð±Õfa~Í–è¨ÕÄ}tNÛÓðlËBWù%µ²Sˆ9îÚŽ·IIõw‰ï¹wœ›õËfÏd¡â0Cñýæpì¡q|?·CŠø3+ )1SÜ͇*²®ýüžÄ.$ð=6ˆ`±Ç ‡¡ äå)òoIÝO8R ¤{YÛYبçU+¡D^1|¸,bŽê¤`ǃ¥Šß˜­!é>—;³ ¿:B±°"؀ é)fº6ñW7á?#{ñx8.NX¤ZHЂXl[.ô.è‘’ˆ6Îu$Ã%bGàÿk0߿ї×å~i$b5CEµeÎ(_6£]  —Q½àJU7é%íáÏ@¢7 ³“m<>`±*LÜn´MÔ·‚~ã[èpöl_»P,Jpõ~$€L5±’LB ×IöR¼ÀëÙ§¨ŸjºN˜|*'æÄ=\¶ðúŸÉžÏÁ† ò.ˆMò*ȉԘN‡m54*hfªLüqy5Î÷Ïÿö¯ÿJ¼ÉEçrÉ£f6²GPk2´hÓä{|!#Úûˆá;A{¾Á‘`nÇAF!Á( Ý»¢bßcÿóöð²Y¥˜yöh0g¸Óu÷'W N”šþÏ¿yj¼Xrùù“.†?_T¬5SæˆwOæiÎaôJ©Ð™Ü«hÉËiŽICG\§^Å«ÏüÛ¼Lই t§Gõœ¨¦ž†—áóhÜÌŒ½‰c"mE=)§aà MÖS‡¼–æÁ¼?Xn¢¯ÂuÈZaS¸ÐH›Xa ª—d`%¬)‹ô™<©Ëis„àQ{ðÛŽuCw(`½ÆÕ5øÛoŽBTî&J^¬>$J$Yû‰ZØ;çs—ŽÇÁŸÂçyùyØÏÌ#°ï9³®£ù>kF¥ â¦rôûwÕyù»Ñªv‡ €=vÈH¶–Cí†4†pg—j4+éþ*…ãqá[„®¼ûŠ9†™OP#ÞbÄèzÑq>Èÿ©Ã5Ÿ´£ˆ*©ÁH«s%ì3è/¯ï6fž‡ÓÇv¸,›Ú>¦涪³/=Îî7£<Ò¤ö¾ŒxUX¡O}‚’eõÇùùmØZ¬«>Û:xåÖG3](8 Cw ”èòçÛR>-–›¹`!7ÿxàiõ7"àøóîè÷r¸ÙÎW¯¶4ÞLÛh4T‡œ°ßíX°°YÕ-¤4šÜB1 ‡% w[‹E 後p[ üG8|îç q¶Ìâ[¥·1¦ u`:cðçW&Ìm­ñ3~oâ¹ð_ôëê÷/Ì®ˆusÒ{-ÙGØ9u¨B{c¨˜ºJ ñÆfT "¹Áf©*Àòßm´ Œ`àì­9¯Ãõ›¶âœç´dαsòPÏ_jÅKÖŒƒ-ˆ_›se†§ò1°ÿùùÀÀ×[|DDó´EÌù-*vNêæòŸa¨ÿkxÙœ1_DÚp¶° Öyej°‚1Ð2@´™—âutá‚;q8mkìˆ0®^Àû!q/{K©‘àè÷ÎÅÇËülôÝÝê@³4l¬"ÂÝ›žäUi´íÛD/©8±mÅÀlyùßJŒ7¢w‹Ó&F—÷MP(E¸_)ú¬ÌUÊ‰àø—¥EÅÛ±!B“pƪS£•,¾ÑhÛQgÁ"WÙo°_ÄŒ›×ùÓüqxÀ—åþå@Êlé'¬ÕÈ™õ¥’qýsZdˆïñÖÜÜhãU–JÜ}þ/«­…7Öÿ#ŠÃÒFÅ6*N<ÔŽS¹Ù)ˆ m9¾DÕâ!*@cIå]3T4HBl’¾¿´ÑeØÌO{Ê09<äEô!È7iÇ´±oÛ±%yž¥Lй¬kw~'ðòyÞÎÏ—Ûáü: —³µ¹,¤]l™]'n£»;£Ä7G÷aË-¾Œ«ºdIj|2Ö˜:í6{›¶sØ_ìSßîÍŽ Ä®á(ƒ±S  Ý[yr÷d°èõ.!£ùÛ¼`u‰·váçvóú¼¹Ak6¬¯m4¯¤­Ön°VÄ`¶Ül¤F³£Ã³µ ½íÌ¿Ø]ON¶Vîô;ÌwÏöCöõ,l­ÌH]lŽëç KïB°RìÂhøzÚeþ4Aúm߇'i+ld}òëŸæÛH€¾Yn/°¬S4„Éþ|£±ì£¬¥è}Ó*¨:®t¨Ž×¢/êuÓ ƒö&"'—ü_fŸð7²-_HŸÁñMË?ƒý2ØO¬¬.ý#$¹}J?ë/}ˆ/²+¨d1ûÞ.™ºÛPí¶®­d`þçåêÖmYŠPB[d¾IwÉ}„Ï?æ2"ÄþÒ 0Cìg•tûY­ztXÑiÍiq^}Ïĉu¨¯LlÛGö²¦Ÿ™4¹.N S8÷¯%+s·UÀsó9Ü’RºU€£S†T !:‰0S±Ð[v3”‚×»cÙë(vzc»ªáÄ&¦$Fº¦ÎÍn{S„+8­u0çbQ»:­”ÎJ*Z²ëþD«‡…>?-Z·¹P)hqR|ϽsòfÔ"£nì;Œ±Ï;#z0Г6ÚÏ:6àK`¦:ó =÷ú´Ü¿ Õ«±x]³h¸V‘$êÐæ_’K÷Î7¼Kë'úÌ,3ç-‚ļ×F»€t^ó†_p!‰–$óØ9ŽFÓÕï—+Å(-ÜË•¢Ù=µÌs†yfw ýq]_Ñÿ@þ³Ìèóæ?É@[þ'èqûŸe —_ÿöýÇë0l7{›" 1­1u+élÐíŸÇKÔ¶lÃfå3FaÃ[î05rŸ„ø|¬‰CÔ7Lk%2ú²ÅßmëÜ9ïŒI xVFú„R¶M¼žs<Ú°Gzˆí/oÃ8TL¸ßpyž/OÇW ¬Œ¦a8®ò(ÒÚ¤\eÒ±º¤õ¤ .Œqþô¶ÜTÕîø…ÁVXn›”~¦â3+É13t>`èçúö+C7[7ɵH äQ\’ãÐCçô¡¿<÷_º…ú¢#OÚ$޲ †q‡¾ ûË›Eײ¡ÃNÚÔ'“Scܱï›>ìw3l›ß»Àªó²³þP¶X°êIÞ@I‰…£É–ŠÝC­¬&"S®vó0ÈØj9IÕôiFEF!ê4C·0p6wÕ0…w³õá²C £]tÌãLö2Jû¼y(©qœ¾ïÎa¾o7»Í“ƒûž m%Æò¼ì»xãOCJ(= Þ’~ïh÷~N«dÝtB™ÝÉf5+  $)…„§1túìbg^‰À÷ï/v*Ùr{N{£| .ûÆ<Šù´Nã!Ózª$‹LÛÓx’5=<ÍÎo—Ãqn=|gDÙÑ-—––!*¤Á9þòf*ÀÛ ÅÈÓÃqÃ$FïßÉÞÇee¹1¿¶f䪪 XË ’QÆ-ÖèdœÃ=Ȫ†ª“‰ …•Hè½{Ѿ«Ý|°|ië³·ø‡<÷=³`5æÏ¨&D¡f”¸½8z@î3é©^ZA"˜Jж¸|‘©¥Ï‘јÐö~=Ìk#ôS ñÅ0ôQ~? à ®š»õðïÃÓÛæââ Œœ±è<5>úU‹-oŠCL¢Ÿ¢ óä³>+”xÌ+(øÏæõ6ûõáûÿ\¾ 'Œ‰:¼‰¬%{>eã‚ÜH¹Ü„å G'¿†Ÿg'Œ…|·MûûaoÑ'^—GˆˆK°hsA.M_z„|–}QúålÉÝ€±¥0Êö«mDº»æ#ˆ»æSByÍO¿ß§õÙ†ö÷¼ðíî?Ÿ³‘„gdÓaþDd9O]oV›˜Ö•W4€‡ôùƒ±÷NÍy½Õ¿Ù[Éî~±P\ Ò”ÔV‘« .·u*€Èçr»ÜϳB«µ°:¢eÓr­W`Fâð“6Ñê ª—@y£~_×SÇ¿?ÌÍûdõzÀ„ﺲZZËÞ%*Á¥MÚä)¨>Ó{6¢rš?©¦hmŸë—9डmî"Ü ÄxÚv!×€ÕÁJ1¬õèX`]»›¸[çÇåêmùâ'*¨^Z%”Ù\m]Á}¨u ƒå´èJâ{âž|à1<Ì­t›síÁ…Dà©)!ž†Ç{ïüieÆ ‡”[‹„Ê…(›·åŒf4Ñv”I%•š–™S-º‰â4p`½Êóåqs¾ÉJÄY32R½zèpOÃù°ý0ŠÃ!×=1iEu.§áx‘|QõÙÒĬ¶œDÄ0×Aì±ûÞ¡Ÿ·›õˆ¾ÒB› ÎUŠ(䀴IôBA%P¬¥CúïGÝþ<g.$†«2 »¤ÈDBˆ¶?@¶%v`¬s#úH ¦àda:Ì`õÈ{ábUW®£úÜÄ\Ù#FbŸ!vçLýXž/r¾\¯çkML#»Ã"m ¼ þ¿Ë_þU†ë‚2Æ÷TÞkZw°Ðä#Xœ¯NÃòr8!« ˜cxgHJ èáéVCµ„À#N¢;,FÂM :tóO>)¹m1x`ƒÖ-£ª›ÔãqyÚùé¬FB4˜¾ê®„yò_b=Ááò:]È5¹,ý"ÙK–¡Åäÿа ˜Ø<…0Š]Ði“ço¾>€áÃø%1f|âô¾_ÏÖ¼"lY¡=‡ÊˆN_ ªÛÄPTP—`çí®ð¨ù=ˆÒðîW òø´\½½[i-@.ål ,¨pÏ$mÿºˆ—I²T~ÉØ¿G¨ ÉMB\=’ ?A·ï~t»ù(*E¸³%9äÝ¿Vè)Žuµ´eu–/ÃÎ>=ÃíÁD‚õ ÃÛŠ…'éA>4äömgŒŠÙ#æcË­Zmí³¸]ò°¿l jÔÄm¼~]çKu ƒž@W¸Ƭ¤í“ªÂ’¥R­\ÝL* x=¹o‹¨¯^.Xí}¢ôZ›7‘v$B¹…ÝE´iR£*§„У`ù}R÷øãWç4¼û«]»99=­ílØÚuÂújõÃýR|5Ò¶²nø-"sÙsDÔ™üÜô·„]Žîãu2ø¡»_8t0ŠÎiHQø'íh,-©ä €Á6w,ºtn¼©lž/O‡‘’CQ¯œ$ «h=qœP“ÆÌÛš6—Ì%Éä^@ðAö”¸¸å|@Ö¥ ^…[œ=@ë|¾”¢–uâÀ½"I`iÇSRãÎA¤”kúߘ2€…w.!§›ýpY#“ˆeÄÕN}…ÔM íøà,©Qfˆ"¦—gr"+P(¾Óq4RMa1…j˜ÈÕð}WšщžÖ‰€økÅ\´#j„hp¨x!‰ÏõöHI«¹;ŽãclìðW}ÂÙQÒÃ4VâÜÆR?˜K.äo†/zœºöHáàô˜úJÙœÖË(l‡Û$ñ¼û=IšQ3)ˆäf"ú‹rÆÅ¸Mcî¼:oæ«í&hñrzÔ UGYCÚDÖÔ¸Œº˜‚/>6aoL}\!§ùv炯;bòÉÛä-¨‘S¬ rMµá¼!÷ÇGzN÷²dm\‚­æÐ’'SÞ&Þˆ‚Y¬ª[ÇÏdñm8= §Ã9Ù¹‚7éÉ ž”qçÒ61ËT²ž7Uå ÔM³e#³Ûõò˜0ÚOžqè“#Z£òŸ‡”ÔÜ&yíˆæÓ!²Æeý«^hx …_Ú¢‚ÙŠ‘%´M-95Ζ¸5Y#»¢Eà³i¼î–›-šÎ:~ß·ÜÓE—?B"Ø–µ/Ù][4\ÜŠ@«1ýè f]PÃàÝžçÔÑæŸ(auî °7¾HXEíÁúš}gDÔH|µ­Àì¸PóãöýÅlÌ« Ö$Y?¤§)§E={¦ Ô‚Qadåüu¹_cQÔŒ7Œ¸‘hV®]\y¶#“¸PóJj”²˜¯=~ž˜˜ü`~Í4¨ÝfGPù¦ÍÊûö²9./¯Qœpi$˜³ti;ÊÞ’·yWÏ®ûÈFÌ1µ|À³NïRÅëF±dã]JÛleÚ(-³ÑÛ¿núÑ«¨'nœ?h¬s‘NÓç‚=â²×\Ô=²±ñǧ"»Vãã`6Ù•dyÉm&/X"I‘H©ÒøXóåkaÿoNV{ìrø×-+÷C)¹ùؤóa_<£Jr<ÒI;S’ù#hØâ‹ó<ˆû˱P9ôx 6óGœ´£+»¤Æ=Úº´®?|C£%rê‚ö¸ÃãI³Í˜ü‚T¨˜@Ûñ0–T²¦°4ÕkŠÙSW5áuþ|²0¯ûõu¦,’;7qN+hø"DDD‚›«‰ÉëÈîq¹CIúhe‚œ´0 /¶xËaYk 2Ï´îL44_fe­dÚ¬§*ZQÀ—K)‰É¡mâÿ)¨Qe¼¥o”Ù~õ~jLÎñtX¿¯.iPNËÛžZ˜÷:&!êO€QŠ‘»V0—m«„µÝÔ £ßñn\ù´¿êøÕ9NÄÖ^XuÁÑÍ\ÓÖ’'œ™SFé«xêòëÔˆ2‰%õþ?þxö×Õj´ŸéèºÍ(äÍÎЉû6ôNãÀâÏ—ÏÄœÆ%­£&Þ“Ì(J 6—’L^–Ôs0Œ“ÍNN78iáJ"œ$b-ÉDµ…íós9yz¹ÉI›sÒòœdÊIûó9Ù_çDâ³=r’â%ĉ٠<Ð?™“s4ÜiV å ÊbZ=<™K2Y‘sùpFVË[¾ËŽIB ¾$³róóÉêL´|.RF©ls%ªè_Ù\ø®ûÉœü¸µ¹º|suüæ*É™Cúçn.Z8¾$BdK"Š-?B&çÎÐÏ]’õm¬qã’d C'¼€Ëèç® µø°R¸­²UIÄ‘T’Éÿûù«2ìýo·î¨ó³’RÈS¡ÇÓÒÉŸ\ ;ÿö˵Q©4NÚd“Ëb)~¾(Î7¸À¨'ÂFBˆ|0äÈV©ûÉœ\®sÒk™0’´ 5†‚ÀÓ÷çrñ¼¼q¡@±0zHq¸•dúùé'äyƒËQˆaŒÐ¦b8¥ ’¡1\¾^ÏËé/}óÒ³«ÂÒ©:üó×ååÆ•Ò¨ôFIÚ†Mìâç_'/ï·ž':»Y’LÖCþ|N^778iºTn¥„È C&W|óóE×+A´à€¡Ä[Oh;°ÁP£bñzéL¼ßЃu_¥Ë‘È}X’É}ØV?}96ëëKÉ:a$iGScI%ÈõÏçârUi”¨?%¢W±J#K'G]ü|¥ñ·åÕ";„+Þ­„9aÈ$cê!ùíƒ()\L…%%!siIŽÚVa{8o·”­ÿ,|ì® -‹zœõ”øàÈÑR©Ÿ/´Þ7ï‹<Þ µC”tjˆ(}8/ÛÃÿ?v×öÆÃJT¹y¾âÍó ™äñýÌó»·ë+¢ ¼2Y‘”/E†L²± =ìñŒÜð˜µ6S%ûÚåÈTýýùJãþéºë­Ó™µ.£P£ÐkèäÏ·ÖíoYët•™µÑK21kw?߬}¼ájªÎöWB R¸$NÔÏß_Çí-ý1;ò…êW½Ñþ©?ÞÄRå>9Åûä2Y•¿€OËÙ^·©4…bߌ(ö ,ŒþùŠýépcaª.{4&„È CŽœTÍÏ׿Nï×38ºâ¹Õ<·8zä¥û <·Î7,+¨WµE°®ø’š)_?uAÎo7˜h2WiJˆl0d öp•žÉíÈùöYhDÏFF0Ô¸¸ˆóéº )e¦Ô§"µ®(õˆñ“OÇeyq°ž•-îÄåC¶K=#Mž™‘b€¦ëxÄ@?nÅÔ´:Ù8)!ž†L\ìˆðS÷Îå–VÕÈÌhˆ©·$SoõóÖ> }Tk_¢µ'¢µ3t¢µ‹Â©øx^nEŸU}ªë¦ò¼-ÉäyÛþ|]÷ýíºñ¤«r]7¥P ã5]·-= çåãÆå­ªT£JÚñ¡^R‰òóÕ©ï7N|“Ýy {ç1Ôèlû ÜyŸ¯·ÏúL“ªK³Ô™žµ?Ÿ“ß_ý»úÿ‹®n˜ù×ÿsƒQ§+“"3 ™„¡¨¿ÀÊÜp芺ÉôÜ„@öXI&{LÿT=÷ãz‚‡¨@pjšË@ä&)ÉQ³xy-¯g$ŸAcÍù‰JÙ§ñ‰È(V? åC’ö.\Ð!ž9›€®â{€Q§eAü¾Ò–SÙœvßÍ—†ŸÄ:¥òÚ2^ªÐô=JÇ_ùæ;  QÆCò{Èwr©ÖëÍòÅ–%ÓÒ–]3„Ï®ùµÑùAÄ…¤‰5”z:v¢ô,Ë$8ø^ÔPÜé2ΫEm´ÓN-úrØðôji%ˆ´&³GÛr˜k×ôïÒYZ•!‘Ò2ú¯•…¿”G[Ð<ì…ìê…®ËyP˜.{‡¨Š¥¡HõåS{R.ªQ ]ÓÍ~µ}_›IÐd’Ì>n´ùh]âdYBƒ mm`Fk'¾7j²-‰É¤.5"Mÿ(VD•Ù`Aú®„ðeûF•Ñ{ÂWº±4ã÷ðrØ¿mž|›õµ-ihþÖ"ñÝ»0Ëå¯O˳‘)gZR.N‹þK·6]gãöífÔ5PV§Ã~±^n¶vX(ô“MìJáyØ<,àåÑ»Hït0›n€ªÛµc:Îoƒ«ŠgçÎÉ.Ìõâ:®÷ép¸ä'²œZ²šxÄ#å?€X… È«.úBºw@ž¼Â[ã xåY´˜ÃôR÷Ë¥™{,lŠW·¨³¨P®„¤xÒ6V6kÈÔ¸ƒ„úWq0•Y2 }‘áBö¸’åŒNÊÞÎçJ>m.7ø"V—Êš°Ïaâ"Ì×€•pc)`Û4±Hm A‘Ë9Å:ô“ë~”†Š¥å äOŠ¢Ÿ¬¤å6WØÿÚzÔ Ô#mâzÔµáK’Œc+¹Ì¿Ïøõ“µŒåÓ ò5Ì=݃F©f”˜#Ü-E× ÞHD¼€ÒXH€©fŒ`gªœÃÝ¿O›ï‡“ÁkŒx×¶n-3ý58­eá“2 TTú³mgïP¤Z²ûݹùÝò#qoJü•ôAÿÔ<£š¶j¬¬í8$—,v²m4EÅ †9GITVwK«øvO¬ŸAÚ¸4ó>ií£Éûž´±òOÍ^F )=‹w±Z– bö–†?¹›Çãf ÈÚy-˜#ƒ(Hš–ñÀ†ýSje¤‰e½ £š„_KÛÖFox(ž¾ƒ]Í "ÔäÙ‡ —Á¥ŒâØŠšGª5ö#“/Ý«˜bÁ,´ï‡\õ«ÏùÛîhíóò݆GUUWIQýj»lµ†qÉ-‹DL¯TѦ™Ù÷-ÏæÈøÍóÓª™·þwég'ròiSà¿Ì(ö‘ Ò¤\0ä„ ó›ôs÷rðvØ/× ‘t1òN…=Ô æè „ýež~î[Ry†! ÆmŒðÕ©(î{Z0šŸÃöv[öéý<q?¦¢qúeº]®–§‹-˜*¬ µa/Å$hxßDЬ¤](>á®s©Ç—×ÃÞ]4¢Ä$„íIlîþp£´ïMúàänQÊZs"ÑpW Ñ'Îá|»Ü¿\ŸH·‰Ö<Ú&É‚¯‡Ðy÷h‡«ã¡?ºaT ©I)Á¼íŠZödCE—îQOüwÁn^»ñ>ºŽT{Iu/øí1áÍhS%÷ö¸Ùá9¡˜°®¢ˆõ‘œ‚ÏG]¨ªq0²c¡Æ&B(] Ž{]¡ÊÔ‹0+Y-·ç%ÈK@ðåW½™-¡û½và+q[šÙ#qƒÊÉÊ~¦P¨º“™¥ç®—äeå0§˜©Ï±œ a¶5χ÷ýÚab8-%&óRb×€ýp',@x¬Ž/nX!"i“« ˜×Áàyºýo”lT(£ƒ¥uþqN—%ÊûpȰåžKå}V:Â[ןý)st8c!ÑbðPyj›p¤­¢Æ½7N6ì.ƒTÍ-ÖþhN»®‘³ðR÷ü1R ìDÔ?¶àÔÍö¡¯ v"c1TÛÎÛa뀟©!4ø~)vz’Ì.s; ý\Ñ9á­Oµ´å˦”ÈvIù4CøCŠo×",qлtDÏO—ñaæØÙý62Vû±³á’QÕÌ­ z¼®¨CI¦“"ð?_™”¶†·W­ˆTÍ|1ð#=@žÉ>V; ŠZÙ‡s‹Xòì亮bv±êžÔœó±t¤dö9”Õµ<;ðypNÕðÜâOÃóáôvM\7À@ðÑfŒ®Ç˜*çÌÿÀ7ÿ‘D¦h)Ã>þ¯Ý9é%ƒ5.ic´&TÃMßý Ë ™+j‡ô»Y9.O»Ãinþu¨…ùŸœiL8Mмû mü·¤‹¿†|XAZ Ltáï„¿0pÚ6{ i€on²ò{ 5 çt6Šó!§Y3O»åËp9Al³\@¦„’ Á½}¥‚7dÝèÄ†É ß³\;gJC;Ìþop½,wp,ä@·Åž©Àð\'!nÉ ‚Ë¥÷dM|jN'Æó0oI!š ãO=Z§ã÷åeùLKÙÔ-ZN»weÖÝìÕáVó{. o‰,êÂ¥m 40î95cFI­C4íÜñ\&åeøB8n2&×'[ž.ÖHY;cLŨ8ë`/ª;˜"Ý%&†Šj˜4[ÆÖVkUÏ”}Í’Z9:÷s4•å1äQz¿a&$øõ®LK†Û­¹GA(gáP5î“^Åq'Ü‚ Dfý}“ë%ž¾–çMTª'á%%Š”Jøe/| vÈCÆ}¬ Ò'ò7à"š%T•”FUaT¸äèFJ)‘Q!*âpã8 Ÿ(–r„UùVíyU¹ê:¾rBßn@#¬xySê~÷Û¬!á¯E O×2¨«%Q5©pÆ8UH#95†ggØÏla´^ŽåÁÙ‹ÕÂB|ú×èÓ•ÄáÅš»½Î$°ôƒUûÑ½íª”’HJ ;»…YÙ}ý¥šWå´œüéçM›å“­”‰pJ ÑøÐ”Q4”1ß_„ÒäfFŒà;Ù¼Ú â¹Ek5è%4!¡Äek\º]¸ð‰béF^QŽ>Ã×wÃaß/¬>Ëßœ=FšÄ›3!Ä›³wÄøÍéú îbèZfX~ÀÍ `ÚòWs±ÔU-GVQ ŒÙ™q)!îÐ BsÚÑêús;¢h$,úŽi<îŸpB€/«th ŠYˆ)…¨mcGYõÀ}à/zgî!XtTÀÔªVÉM 1.¬r>±æ|™ˆ3Æ\ÿîŽÛ ü46ø^Ž\M¥ê°6y;žBô3ŽŸB×Ϲ˜×’'2ЗžÇ®j«‘…lÑ"Âû+%ÛN\åÑ÷—þ]ä蓹ü— \¶U=v[­è2ÒfäžÓ£º«ëþ‹^ñ'wO<·cLݶ]z‰ÏDXºÑsèúÿ‚[ôüaE¨XŒ,™ÒÞ>êÏ„O­ÛkÆ÷ÿ…¢/3µ°WÂ<‹9o Ö÷½x(£®h"äq¹c‚›2ù56d—°Aš” †Ì¥KúÏÝÍÂóåhŸ'Öj«$›õƒ ™Â»?Сί@é:H0Üõùîú&!%fOGpd×7a£›üìú»§ÎKÕ\ŠÐqØY3žó‚Œ ý4ñö<׆’ZÅ¥£mšûQϲKèö7„5 gý1'Ø[FmôSØ;¬®3‡q;ÑR”´³èž„ú‚ßžôÞ=Ðùù¸Áqö6)“ó‹Hë#åÄ‚÷¤±¸øÅß95]Õæí«5S) éO‡ýáé€Gš~— 5K\J•{V§§Í{Q^Êä×ҬߖËúÅ¢Qì^OÛävè>›b§ó†¤Möy É$yÊþŒÛêÉG|ˆÿÌN¶â·º¥KµQ„cJ<ëmÒ3mR fõêœàs<ªÚ¤GAŒnßw÷8iW/ToCß5‚/Õ0Ĥí².¸ÉÂÄl¸:&ùÝã—É÷õrµ¹ü°QÃXÚ€sV`2ŠK‘†VUº´,ï}Sä/e9óÅŸùAY±û6ÝŠy:ÔãA-ª3žb„T×£·Âñ¾Þp„Á4V_(&8ωÔ´Q§~Y‡5 7ë°õ%ó˜ôS™ NDÏ’f„ޱõYÑšô£æ68f®Í°j m^ñÊP 77éÊE™ú‚{?÷‹ÐZ¦Àæ‰Zmó^ä®xµªÆg`ÚÌj[eþø|ü†Ìø@P¤¹üN‚´íÏñ°;ž²&¨¹ßv —š÷3‹BÖÛmºuGÀõÐyU=äm `;ôO,ÁñÎ`+턹»jÔÂP<…—œ9‹_™›ÓhæýÚ¿mbç #§vž ‡­ê ´I yÌÞá?;•këøc¬0ܬIYaÈœÍÃîn6v›O£zv3­j«~2>/8=1ç„¶Qñ¬â‰JE’bg,&Û”^®<К(Ø`#Aùߨû~9Ø«ÔfÚz‚S–*Œ ¾†”€×¹býA¢CÔ&™üIëÆµZ‰½sáVâ”*QÆÏRà¼ûSÃÍÀŒ<©Ö‡Ý4¶X*'¿à‘á‚§mªOíîò.ß§·ÿ¹Ü/_bƒbúì¥oƒk‡5Óû*š°îˆ†U„î`YÃĽ\|‹}©}Y°ù²x¨Ã¯tç‘ðc‘Cã\S¦b_ŒÔ©=¼£$k±‡§ytü”àîê¢/ÿ‚Þýæ7G ƒXûp<ª…IØ¢? ¥ÖóŸ€)xEUÐ߈çæeÄP»ÒïsÈ™ªDíð™OðG÷‡@˜_ß-ßË·.$‹ÆZ£yW6lj(äÛn’®'V“ò‘žÉÃÊÍÏÜâ*©J³dÇé>R›ë^™g›‘%5£•‰6zG“y¬«Ñyœ*nw‡•¶þÁE×Ú¨6ÆÒÑÆ\è´…Ærd¸Â £29`Êí%5á´},_mÐ’¹z•9rŒÓOW`(nBúBûã#ÆþµEÓæ?’ÎÃéc³\"ˆàä(ˆ„vþq6"dLbÒ/IÒJã÷\M+&‰€ÛÏ‚=À¥Fµ¬uIâmĦ°ôš¢B5˜?¦ÂaÙ‰¯;s»ÌwÿO¿ü¯á|<ì×Ã)SŽ.bÑXÒMˆqóA.Òß4[o½?ÿz¶/T&Šò§:`¤¸ä¬ˆY•¼ípUñRš$ ÈÞ³^ÍÒ(‹™³¼NÍ©ù>œŸ?¡Œ…XκEÍš¸`c†,/Ìš€ã·=/sSÃç“’NaA“Xÿp<¢Ÿ”a¢#ˆIôåEœP¹sΞ´š?_½_.ÃiVAbJƇzÚŠV”ÔwYb\ÏlWZs¥”³ ï—§åþü:˜û¬ÊŸ?)UçrþžÓ÷½yâ_a´‰qÑi‹Ä f´dÜͤøé8ðáó2ìÏö|ѵC]#¼)Ù˜RÂè{PgôÈøU=ëk£&Îpábÿ›ÑC>0™u硼"ÁÀVQÑR‰®-Éш{ïðiu€ó˜T}½h¹Gˆ¡mY“þXxQ•߈ÞÑ"Ûi·Æùuf³Ñ„Òœ2ØžG‡IŠMïÙHγ"å€(ŽŒ8& ‚»#¥ŽO–b\ßî "ä ‡ŸÑ1‚6%ÄCÀƒ…ª€vÏǪ/8ö«6)úɹTͬS-0Íz× OIû*²#j6\à}ܼ ‹e ¢×f&!á= ËpߪEg´[î±ä²¯0X6”°ÀXû ¿Á¾8½T”Š øÜº1ÏXWÊ—Æò8-¿Û^è¯I?-©åŸi–þ¹àE"ìãû|Yž.©Ze?×APUOâ0+OªW­4ŠJmÇ›¬j› ßXMI”Q?àL°Àž£ “ÿûò)@Ƀéo ’­Ê5³G•gÁa͇X¨ïÊ6h¢–¶â­Ó"ß®kÚ@­ áùðyc·ÂQÑqÐ6±#ÔÝá÷Ív»Lz§÷å}s}¬¢åEK mtuÌ W¨Ö«gfÚw•Q9™ðO_»àÁo¥ÍÞÞ½  ÂuÏÇ©øÊÏš#‡–D ±›C>+}ƾù&á%›q¬g½yýWÿ"g-›ƒUáœE®±£S¾È¾É±Øbm@BoV 9­G¨qkº/p8­™8¹jÉÑÆ°ú£fžÍÛŦ{õfÅùÒªÂÕrõg7!¸g!sq«[bæÁÁÇ•Hüà>’ ôOÀðì ^YÔÖŽ+¶ÞTÑ‚“6®A))èÕÌ“qR„Œ7mœTÁœ›lž4ð(Ï&=Lÿvsù×Ãé4ì/3í0_9Ã_‹ò·’ñäR.«&7ÅR²dj^ORi’þm b“ñ®-qÎî¾§âTÌWï§óp¾:#X×3êF¡•Vý¼wgl—«·ùÓáª=Øh²…àbŠDR#‹´Q†°: ã¨Q6ü$s@Eå ,í*ߟmß.§åjÀ4re£ä8›¸‹R¨ÐJ‹HDQ *ô ]«0–è®àÌåløâ¤@»'[u¡·5ÉX3fÓ¶¨Ñf2Šc‡ÈÇp+jsNÕ˜ÀË(…ÜêÑSÀ0ÏìŠË “¤;WxÂÔ¼¿›ƒu´ÇªáSµdLoH[Ñt˜Óì’ŽIƒCUfttN—#eÜI›&‘bR{LbábžÄ¯ßBè”±ö¸dïysÚ}7k ÜÉnÑpˆ¥KåH•XŒÇ6ýßóTr"sP ŽFëŽß ´¬x¯ÅùãÓÊ¥éz{ZÍïQ®š -3ãŒà1<3‚g9áZæéVX ±MpcfBZ5:•¿9RR(pvIöxBv©j“ãÉ:xçÈb(L-ŽWmÇÝRR‰úå;' öuµY¿ïŽv¤æ}Ò²cU±šfÖt11I›ør¬²9ö{=„|ÌîÓáÅf«] 8C°xËt·ðèÐw”x*±ü Ä—)* ß+¶*D·‰¯< /SHeL ˆ¿Æ<Œ%zaïžsþ¬S]Û€Ýz¡QÖ9üÓ°š)Áƒ¶ÖÎS±dú_ÑÙK¢vHÞº6xÝwà¾RuL .häΑMÕ`¾v—¾¥á'¿™ç—°Ï. mž2JuIˆT-Ö/è'Ü1È€\ãLélªk@A‹«À÷øÅИAl!u³"éÉi»lþÛr:¢á­-˜ÈmIVÍ–IÇSÃ}Çýþ¬~¬Ð×lkq5ác CGÔU’ûvƒjí) ü+A•XÎÏæ» Ä>.øT >v´ƒ<äÚiAxSæv†ì8^-pµ1UÒm—ˆ(‰¤jgaÃ-"dÒÈ™¿ú4ÏŸNËýz³™[Kö/ÿöË?Ì ÒE½Ì¼7x4šmc`WEð©øµWû.FMsytá#­‰8-ÏÃé`ÎY·AŸPøãEv›Ã*δтÕQ™[]½7 HÞ7TÄD,²NEYäÜ×8æ¢—ÄÆA`ŒhÇ}ØðØJ­áákki‰ÖFÃ×ÌÎÕEèdÐ_U7cõ×ø.Jõ×z’…ãEÝõÚúaDN|)!^T 9”»ë»¢Œ.‰CØüäÕíªÝa€ÒÝnÖ/C¨¥«£1IôΘrކ+²ÙZ&-å^“¥÷V{Æû  ŽËùœfO=mþü~Ø  ±e WBµ®2pô¤W“¥,SÊ¥&v¥ì€ç‡feŽB0’ž{g{¼ìŒÑ£‘E¦ºrÎë9plßoí¬œ¾ ;Lxèb }‹il]ÈÍi€ªË„Y¬ƒ‘„ôFù&ãÍY7ëŒÎ^›w#ðm‘¤pnΫoîµ? PξM÷ŽýÉÞîÌH|]®Þ¾!–Ç^ÓÔÄ»/ÓÕòiø´ž‹ ¨ <À¨SáQKZW  G1³Gؘd9Z-7F[EÁ¢˜`Í¥ˆÐEš!¾‚¿é›ˆŠž=f»io†œÀ¯ð5¥°h]ðÐ&ìpG¸_tã@(ð?ƒF‡Q.„ÄOÀøàg¾…¾TH÷]mc›dõDýè”ͧϤ7Áض—œ½çÚl@½†:†$¢”dO»§Œv·ojgëßiÖb*g4»…4}š/N׌Ôfh&ÕfX-÷û¥yO·GeFܳó+;¬éèk±Ú Ud¶z^-„:§> ˜]™ô-{Ð…»œ¹,Ū@yqRËgiùw:¾iIC7K"L`ÙÜaË3N™ÊõfeÝε­£Ôq‰Xº¾˜ÛYjæh´ÂS€è•(ôT™šÓw¤g sBy}³¸d¹ ÜIÓ $M‘’Ç~ý±]>/?g•¹÷Õ¨ýVdsY˜¸w]¥ÈaÐð+’mš„F;xJŠ!ëu­™ãßõLap»Ù¿Îl¬›-å3â.F`@ì>ƒ êÇcI8Ã錤æ¿ÞòˆŽÌÌýÊ“7çµ#ÿøaBCíÿl?¦ìÑà ïi,|[†Lx<‚Õ¿€¬ÿòϳaýôg7ɘ°ÿ›óûæbíÝ6!NZìæ «µËÜß.y’ ü—¸0Í$Gq9Ù¦Õ‘ß:¢øQ‹Š_ÖX–EAøqU—ËQùº‡d54â|IÌÍÅzdÉ2‰¶"?Þ€½¦Nßî!žMÔ‚{|¡ª{ïú­lág7cá;8½:z°Ó–“ «…™1-âU°0 0nµ~›é]­X\ª% ˜(«_É–]´:ÖÉH}«“"•Vëãò´Ü6K§\ÿã?þãr{|]öF?jêš…>íb¹Î´Ûºó.ŒÉC*ÃgÑëdJ“¶ ½ óoÁ<´M×8⸪b#Ácr{7û§õҾΤ ÏÑÝ¢ål¢#!mÁùña%Š˜0ÐnèéÅ_$/¥›‹qú˜žÂéÛæ27ÿºÛ³ƒØ`†nF ‰þñ/~]ž‡= mÛèÿ…äàÀ1m/ÂÑ6ÎÕ2¼b¤,—HR.ñ×¾N—~å¹m&…>Q¹z”­zÖ(Ö±Nkµ%í8È^˜Ë™U|Ï”a¸g7x.I ñANÆF;{#ʤaxȨ+sˆIRPH;•%™%µþã¨Îu´‚ÜËe ¥äá6¦6Ò‡á„ÚìÏ—åvëÊ=Ûçgrät%=`d¢hjæ%Ò¸-§JSªKÇ bŒø•Ì+‰RBl¬`L¼ÿŽ´S±ÖæB²‘m¢aC&U‚«DZ¥0‰ï“<9#MÚ¸¼ÃypækÉ£87eýÀ@ûÔ³PЂk¡Í¼ƒB{ÀwQ÷å:S½ßËN;Ô‘ã€e¡ëñàÈ2WÄŸQû¬‡Yg{%ƒÞcvQ~ÑE¯tL’N|³¢š(ÅÍx©»ad½D ¼YÛ xíKrð?›×7Z‰ØS¢Á×”8ëÄãÎ,¶ Bêg¼VÜ`.㌴‚FÌmrÄJ­ìnO…ÍXÞmÞwp-ضÊ(‚C & D ooà>q„êž?ùÄÞËÑÍ]zÍüÓ¥Ë×Ðý”Ý¿­ÊW¿¨1³B°GÏ&X8ï¸+,›ç£3`»Mƒ±@‹P0¬Ã”£i®™°_·ï«a?˜×é ÒÕ,¬Œ¹8»ˆ9H¤ŽeAðFѳ¦*…J*ŸÝ¯¼’á“Ï5&j,¤ø|B‰ÅlLM¡°HÖIÏßýøM‹R`sö-2²‰ƒÁþÍ,Ê S÷r (Þž,¢gÿ¢«@4¨>JÞŒäpº–µ¡4èS Fü0žJÐXTÍŪ£ïP2ÖÄ„›ð¶>ìÌ7­çûÃeþlQe--cËæãôjº2>É% ’—Jn»Žh_¹fõËfÒµà—Ï—õêoþŠ´6øÎfñ0ê2˜ÃbŽmƒ´h5'ÕÄ4j7L}>o«¾}Ófþ%ª0¦ƒ#£™B M=8Ñ2‰@ÎÜýí{Æ ±Úx~ØêŽ˜Ò…icQœˆ‡?al›ß¡Œk3«Ù .ó# 6ëˆØ[yö_I×®ž xøÞÄ0P5$Úÿúto]5æà Ï)ºÐ gÊÿ‰ïš:eð<\.›ý‹Q×±\‡›I£—0»RøÚ'i:)¥1ì¼% ÚŒÃ*éêYj‘ÄP§šmi [­Î;T*)19áF ¾ú žu¿÷ &xþünÑmç®Þ™™àÍÞÍnÓ±)ª êG$GôXç/Ž•!Çê;irbÑd(¿æ-ÒÇÛ'Ý—¡¯´RI‚Ó˜í̶µKÕØ?÷‡¸àäa:ïÕcÝ$qi´‰ùì>lbúLʲ¦@wØõ}³_¾û“ŽÊ7WD¶À³ô ‰™°fy.§Ãvn—™§F›ÌlÊ«çím}}Ö$<Œd9±8¨ FêÙ¶ùcÅãð]É´SkŸbKv”YúnÞƒAg2ßúúvi#Ú~Ötò‰Vò¿3‚å°þ»+^)¬Ãy$@ËÙ§Ý1ÇHÛˆ_‘¾r ý<,/çI,3cÊPQG„â¸æ9}yÄ7¶ÏÃêýÕREö– .ËÑ&È{ž2—׋ÈÎ. ¸o %ô/sü ß›¼=Gí¼ˆž<‘²¥nå9tTô‘†Ê~®éLWéL‹¸MQczØ.%•MÇ÷ª¦ú[lÕ˜žž|ÉB'ØD?Õ‚p÷i÷ìuÞú°‘Ò–OñL)”­pYÜ-´öà ÒÕghXK¸h’ɧMÆ­’œÆø2)3Î 0i¬±óÉÁ£©c*ñ'÷\ÅÐ:gË¢,¡.#bÇåŽj ’CCnv‰N¼¦€%ÐöT1–ò>Òt_m‚ïm¿gÕߦî' ]:£3W7`WPA§N $z $G5öÞ;Üãæ0“‹~ÖÖ ÁÞŸ˜€ã€Õ3¯_c¨b‘ÈÒPÓá"”&y’ùw¿ëóxœé… ÒXØ¤à’¡ }'›±G­ìo-Ô¯í°æ@;w*ü´%m÷ˆ¤2ˆÌ¶O/›‹µZ=ħÄßvÓʇ®ŽïϧáÏ( ªÊš¯÷î×Y±k I|L¸L˜"ZLi:»Ûb~q¢½ª¸æ'l¥È·¿è{ÉI†®0ia´Š×“îÊi¹z³>T¹è¬OR7l½ôßF1m{ËDr}ÄLß”AÁ߻筧¦j~à¦Ð÷¯†ûñ€’è'‚q«ýäÐ!?’õfu1ïýí6ŒF±8¶U+’Ý‘ˆœ,ÉdÊ}ï£~Þ-ÉÈÙ …µ5²R9ìhAŒcv}SF|Ø=Û¤õ@¥8ói£Ó·¤¡ïµãN^TýH«Ü?âýLƒãAsîoÙÁìÞ>úb;ìH2¸'œOö¥=D“ÊÞlÂU#%—tvÕøÇhq9¨#ÂpÚ"LOõµÙñœ‡Ëû“{ýåÿÓI7æÖYpÚú$¿û#V:M£ €;c9pWú_/8–ÙÌ: Pïœ,ù½a%Y#ÅéI‚÷x º1ÌåIUÔVçÕá8XPÆMp~MŒ¸u¤‰*˜d˜Ì„(ƒ=˜Éó˜–$anžó+”0mŒšaŸHŒ ì–:z2Š{q°Å)»‹o¶Ô—r36ÆeoZ³Û¦¶™†uÃxÖÀ}3¾î÷ ·Ëòåì³Éj>JDW$o+o»Â¬öÜæ™! Óršîlá]ÔáQ§¢uˆz š&–o3Ÿ‡`®ÒcíOªšLïÓìŽÏÍ~¸¬™›³S.þ¨Î3Ь,„õQ‰¯ÏÁÑ&]¬áô‘¦s•ˆÄø¦eâ]ÝïhÚaÇ#5#´vÍa㜣O§¢ÒÕ_ SËr6·«áº·¡ }»‚|X4†«È®¢‹&:&£Å8®ùµoî·.û×å–»és`ʸRŸö8ÁºÜU/cÐcÚŠ¾‘MC@LÎà g¾òb±“&a+7«íÆBÌ_ q’¶3‚ ”µäTa¨x$¥cz»Ž)¼üÎQVÚŠ’ËÛCuBÇõñ]™…¤÷Ñ “8m>†“Ô|ع” kJ$ÆQÚDsM¦¥yTßž–ç!~¹Ÿè gù´™k¥·× »®k<жó{°jµ IöYT,ÉQÍb'ñòa·¨¸ 5‡ZÕƒÊ,ûÒAs d&ÍÝam+ߎ‘ñ›ç§U3oç! 4~v:'Ÿ€öô%.1pAš” †œpñ9ìéçîåàÉB‹[0ß¾bчÚĬ߿·-ÕÈÝõÒð¨Ì™ðv‹iƒ·Þ7À)S‡ñV¶‚袃 ˆy‡œë™wÚ|! âô¾ŸŸ‡³M¯K…ðÑœÊâ¡Dtg1#Dñ«³àÖ¦g‰~&5ÆÌÐLºÕ`lÁˆê&š3Qº‡'†]M}mºŸõþñõ‚˜ïòvéßHýø+®®ý@ Ô »–.þEþÐ~\:ãþ1kÚÒ§9uB%æÚôæ©ÙÄd(!ÚÄåí‹:iâû7(çO#Ÿ€²1…4#À—?od¯ÔÑ–ÊíÒN´=Î7Ö¦1mË Øe«¶.:†ßQQínš6õkøº )ùg§Ê8n0 ×–;R@pÛ !b›6ÊCÒŽ™•àÑlF!i“þ4”›±£;ú4æþ|Qv¥¤½œ-‡ü˜XeÚÂ*ÓN´½Äq„cre4"Á¾åî·ÔèÛd¥gR²ÎÄC8°ÙTAüsAïI¢?i•¤b¨Y˜í>fŸ\u+½¨-°IÛ²5·oûñ‚iŒ¬‚?¦—WåkÉäžwî¼µ‹|$<ñ0꧘ ܯ»¢ÈcìiÇÁI;ÚžK*AÝò÷t³æFë<'"/­&!Yi­Gä°øYKlò2†rÈ|ؤ? ÂWBq1êmj†vò¤²‚æŸ>±ŠäãB “Ù ff?‡lñž¸Æ„möº:Ú:ñfoI.sºóR¡Dž”Øax±Gê„'îÞÊ=sË+ fs…ÊÅ$ÁnfeµvÚJqv÷åÚ¹¬â ów iŽ/1V˜+4sINCëZb«>Ú âïêº5?û-v©á·E¯Î[‰®ð¢™µ9XÖ›Rq òPŽ@±¦Ê©:ÌféÕäkó¬27f³§„(¹2)ßÇŸN Ѥ±ôG=e³l/ éË–Í ’lcPyÒvÏA¾ÐzC™}ßçZA Kw$¦ù66ÏÏç T™ÓV|piIBi]qka1A†Áxa?Î=cXð†ÓnÑÎzÉW±®À¤ î%oS!§ZLæäŠMÊìVC'ƒJHVÓ¿˜§öîixÙ¼-±N€’qi^J D#ñ”€ìÆÚìÇÄ ÄÑ")\òš†ãù<\UÛ A¶´± *ÍQº‘_GPîeHÙ$0;›Ýòep`ÔWgJUøÐ©z?QÅÏG&é¾øúМeâ_§È§‚£ùùÝ<\7»ãá<\ß²…K§iÃ6H)a0drÈCç<˜¿V—ÿú·Þ­ÎŠÙ$\Kè(Ï-æ6émܩƖÛh̦iÇ~õùin~uî"ªÑ´ ”néÅÿx¡8GSx9 š{#äÝë~Úí_N¨êÙë‰ÓXÁÑ÷JÒv°(Ôáê!‘Rà+÷KcHWËDs~%°bÕ}!E9[äÆŽ‰Â3s¿^¼;-7k˜¬jqZý±×œ%Gb†Q(­À Lô4k˜{[uÈk“ëÂÍÑíü2ð%húk½h÷1èÏÖÚXó™ãX|÷1JucKl<5¶ÇÅixÉ£[“‡ NøMcW*±ÃÀÌ B3‚#ŒA^\¶¨ðo=‚t¦Šr±þ<íèÎò}¿ù´«sÝ:‰Ÿ"-<ölñ½fÑ?Tùó8ÍMs8}^ÜÒŽiä(´¡V1“ÃË•–‚FMÅ#¨]øøV0;_·-†÷‹•:ñ¹op¹>½<—6ãP†ºA8…®¡"\ ÅB¢÷¿º P’>bºÒÿMÚéRi`I˜þ¾C+æ*Œ]wÏöç—aÈ—ö•"=¡Ñ`˜!—^B@KMݲE©.FªƒdQh] “¸žÖIÖIgô‰$_C³Ç[‘Èö´Iò58òXÖ‰ÿìT>lÎÉy¨º„Ò¤<0d.çÄîÞñO‡k×ÖòÕ±^ÏžuŸâËáíP‹3ö6i"‡eb1gH{yHšYGYu™ÚâÞ%RÑÌ*E€Óg†+¥>uêBžÐ• ;0idA;å’OÙ¡ƒ­~( —-[­½ÅA—Çœ §&;I '¿Ô¢‰sãþ±‡©ãàIêbêmÇ(©ñ`†Î{ú?¶/¶R¹Õ¬iv!øz®:îjμßÍ6È— a‡J1‰åÉÝf&°9uöÕÒ›¿Ndu¶AçB°ÏL&ÜëiØX•¿›uæ¸K½·bŽ ›¤”š p`Ú~.þafÔØêAp™ÊX?ˆ¶‹` òàˆ`èH4ܦ?ì}†eUȦ3ùbä¡Î£ß‚# 4|Þí"c>Z3š‰èà?›˜â8ü6¬ëÅî£z!Ù4Søuý'gûL¥5p’%`4¨[2תGñ&ÁæŒÕé^†ß6/KÃp}|ȬX­6†nj,öžÅn–Ô¼éúÈnÁ8BÃ7;Ð ÐÎ\¼ÆjæîîêÜ/ÛŸ¥~Áœs@]oÂèrÚˆ×íÎÜB@Œ›6„IbßÙVFÆÜvÚEhymú«YÇnÑ2¢·®4Æ…7U\ÊæãêØgQ>æ0¤«¡EÝÀ+Ë @ÕH‹¡Å´'Œ*ér°zÚþÊôcŠQÝ1‚V`ð‘{;ÉÐxYîð›“Ü÷z=wÊ,Ï­¶uuªUÓÁë.䫦„x)3dTåBÏÔ±îŸW‡ÚIdŽ'm\lG™:›Àym$¢íªè³).Ĭí(ê9ñêgGÔ¥©ýÑ$µ‡Ý$ûÕë°¥­F4üU‚®X`¶]j^©ä84;š¦í~ÍÌ2_sä«ò0Þð=å5þˆä$÷õñ6>52>°ÓQÖe¬åTuÏ€¤udàÏ R÷¬}6oo‡Ëž¾@ó Ž£Å…™£6½½»o’+¬Á‚R‚æiˆ†{R‹ìÂõ£³÷´˜YYe?E¿òåõp¾øO•W0JÏ2b‹èQ¢(RŸFæÞ;³‡—ë©g²ÂÜ£B.[ñ«$ÆÔ³Vçë€÷5 ¯“+/æJ´Û9 š•Q]íb²ŠäprsR8¶ÙÕÞÉ¿ÍoŠØKËštÇI«¢d‚ÚpŸ2Â1è:™=µÀÑŸ•y¬;YzÒ=^…Þ#+ *ЈZßJ ñjeÈáŠP)"ùê¶*bÊnÂ#{4ún0Ñ&3JŒFàè‘Ͱ Ïg£ °¼»"1ïfõ`ÏQmƒ2ëžGå©C±>æXîrIÆü žvòl«“w[\üZaF£7µX–W$[ýÕ¶7—ŽÑNï.0œ6+[¢7¸rɲAü}©Ûq‹š5 GÍ(ñœ¡í¾ªÅ¯"·r…)ÚhpKë¤0prP|&^¹K)½ÿKìIjd¥;3I¿˜rË\^­;݈ԖäqÁP.êMd;Iç«-@4ÌFÐ÷+æf®«Ã¢‡µì‚G´ˆ“–ê‰1ª‰Ø•˜‚ÁÔE#…:ª»¹íbÔÚ°÷:“»†`ÌÀº³n’ÎýÒ¦&¼;,ØL·DŠR³æâ2 7 ?å ?³ÈÒ˜´žQÌõïø…Q1ú~åÆô…WŽ‘I蚊OJ‰§£ÙÞ¡j$2³îÁÅÜa“ù2ÀIlèÒD¶öÜbiû”`¿‰çoo{Ê1{.%¸e®c|L²Êôw¾¹O¥rÎl.mQ²,–ÇGË×\Ïeîûm–„»By+Û]¡r„"9†;ÿýfž,Êó¬·n-Å,hn•ëf-ð‡.\(ÖqeùšUÌ(N°|ÚF¤K›Jk— º¾Ša–1õV>v/fÑ-,K¢UHEp—ŒBò >Ô«,ÆåÊúD ®à#|í>ñØùHî2~…ÐÚ€k™âíÏiʧï>ü,@‰¹™zD㋘l)VI·E¶²ñÇüš¥Ÿ‹*÷̛܋›ê CÈÔ .t¥í±D˜™9‰¨ù\G´«vˆR©$¿Ž²Ç좎^cÙÅ2™ããf{¸ÜÐ=ú$–6ãyêⓆ¹Êiwb2ÓùÄà€¦ƒö»-¼—h1€ / õ%ó¶×}zw:£C¤uûo]foÊUò±Šˆ/¶°“´hV¢ŸXÙ(NÑ÷áÉì9» n‚žñý9Ð_Óƒçͳ µ3IœUYÝh†’’~·á¨_aY‚öÚFƒ m‹jA¥gØuÞ;ìÏÍ3¼ÌÛ…–P‰³¼4Z‡NoÃl[ 1WeÞ Ô¤AÔöq_‡Ó¶.»"³ ¨^¢ãò¾$Xÿ{ÆA‰®Ôþ«UÐí(æ!§cªãøó`Ž¿EÝBκW– ¢ìçú¥$|>¯†¬’~ b·ÐÛÉKÄ×®2¯+[~]“ £!ÓžnªB»ßt¢?«Vàýèﱈñ4¼wÄx€#Âb*ÆjÎágn#•{÷XçKß|—ŒœÕfp†! \Á,´}¬b´.±«K<ÍÊõy´QžõB[“h áµ=—/ ¸*fŒÐ¶sfÂvèÓ}i¿,¿º.«-·röû†ƒtMvùˆÏiõѧ”ޜꚶ‚J “P väÖ6²q÷Ê=/mxykƒs¥äðì{W›5Ëh]/FXÐf¬#ÉóÅó^JÁ@\7ÙYNL~÷ÏExíúáð¢G5mÁÝ¥&ºUí üãæÊ²4I5Ò {( Ëõp&l²èHZô¤¸´g3ÃÉ‚·ØŠ •®¬ JtÝ¢ãp «´pCÒv¥¥¸Õ6cdlCß6n<ðW®ÅÝœ[Ì:Y³ðj®,ówÉPxà?~Håf.êºzØó¤G î  Q²žáHÂ{='%”©‘µÜçõûq€,¥³Ôt$‡åc_•ÓTÑ_¤‘s™}‰¯› ˜Äàa5îíÛ¶yêY2«ü€ìa‹B蟆a¹}¿ ’¢µfI.Â,ÖtL[ÞÆnæ&ñ×I¥@ìˆW›@ÚixT+s†!Ǽă¢PМý„¯o"e‹3®Õx’-‚–2(A¶X)d1qÜßl\Am¸ÐoÖéuÛy…B1f'ä5bc?Ô sþbwIÕU­#8®hà ©Î±‰—Eßð—Z7Z÷‰ b™t÷;&Ü­YáâŽDš˜$2k©S_ ~0®òâµym ²–ÚÎË/¦ÎÑÿö?¾9ræ©Ú !%gJõ=á÷+K€à~™Ž4Q{UçíÎ!ýW3¤ú÷Yµ°hÜÒüƒÃǃ§Ž QI¤.×þÓâç¹ÜŠÞBŸen¬dOýÓ¿´uKIÞ“›Ö@ „ßánOß3aý.?Žö¢œT¥Œôå\Â(è:ƪ&Io"‘?ÑìÇõ?ý-tg135 ®GïYTE’Y"ñ“´üXm  Z´fžX_H_aúL¸Qi;Tda%£jŠÂP!­ÏõL{Pë¯p Û¨ÚfMÌ‚^ÁÉ£ñZü•ÑÈ­]±8MFÁǙϰéô¬omZ]³›²3z¸5­žµæÅ+lý®?¤Ýƒe0‘¯¥`¼‰ÓM¸ø6O›õÆF`Wæ±.«k6FKE<¸´íŒ§dˆnx«ߌˆ!ßq?'û7ë®1»®Y8\‚™¶b5‚r]ru#-!z÷`¿ûùÓûÓÓv@`È_¦¼‘P0‡{.« eÃ/hN†fY®x;Áö ¤JL;¢Ž«Ð÷¦ä•$ÖÑDh™hv y JŽzÃÈ}9†ÐÇæ~MµYÑAÆŒ½/,±Äì ©ýÔ)®ò>F6:Ãy:i=»=‹©N—àÞ©˜Ÿ£ƒ-4›â¼ê^G¢ZXFAµ~–hõ…ÙÃe•œWF¤îÏËáT|g§®Û#Gi bf€ãÂ<5©‘IAJ¯KLL^b™ëZ™;@q€>XRŽnq7˜Êáþv<âTž^ïü¸xï]­‹\;À ð÷ vŒ)ÁP‘´ÑKë(ŽÐûy€M›³¡¹‹¤Fxü›õ˜<”AvpògãHèwáœÓßo3ìýú¶9ÌlÙ©ÕÇÙˆ…z!ä¢êl&ãºPP>BóÙ*Ì€Mʱå´Ôg^ ƒ`'É fDa0C×R…“ˆê~Yññ}'ÁÓ ¡Ô$ðRs©=ëâ53 |kåÒõhé£öp!dRœ QÁ›"HÿKiGœ»L¨º¡³~p-(<Š §ï0þ%±Í™ÁðsëSÖU Ù@«™Æ˜ºÿJLó¢<ŸSŒ¼) 6¹¼]_4ÑÄÈѬé%yFò“ÕL‚Ž~þÜ–kÉ ­ô¯¬©i5cp8-çÒÈ ªC& 9­ÝÌXÎsÔ°÷óÓdİ…± Ö¦ª å‘“m,H[(X0Ö¼ÜWð|ï`—ÛåËa¾^šëeaìbÖ,¸t,|×–1B94¡aœãóB0¤V›ú'“}s½¥ÅªpºßÂéC/øÝ–¬—å÷7ˆúã3óF^×.Z(ÉOaΚšzá‹Õ+òXQóÓN^–¦;DLKà¡àãà†yF™Qв¨ã¤ËŸH’ÛËrÖ“Ò›«•Ù~’ÛÉN#4X|¥ÄœN žQ0TÞpaKXö/I…ÆG¹y¢(#›LR;׿ ·øu*áÉGç ü4ênmÐnI©µK—<Úl«€Ëk^…àÓœbO³7|ÊQÈ}Q8}@ÐŽ¿(ÇÑ_›j:°i­½åßéÇ¡Á±»[ ¿!¢Wç¹Æ("Z=3JTÎ8z·Ó ÖXf÷’è0öžÁ"˜Ìë*„+3 #ÖþƒÔ>2#Ó*Žm¡ð™ÞCáF¶œÀgF0“”$+G6¿•vÝ?ffïcýKLëÊgèzklBp%é¨Ã'΢j%On?IW\e’ÀI´IŽx\éÕßüÍ—Xî]ÔU°óÑ62\³‘ñ]Ó&yŒ‘ߤ‡"åâ%¸˜Æ®uðŸ–û?°Á…ècèmÞ&ðÕqz1ª›XÕ¤ ¸Åâ+UÉY1æùHºˆldµ&["Ó/›ßJ†YXdoÀ¼ ì"Ø`¡Ýë1pyß1iøPxäK ÖàjDYŸâ\3d§ùž O(óoËå—æ¼GP9”\òi7KR Dè»è$H%í‰zäHf½œdvB~O¿­þˆ0   Y3ž¡‚èOšü¥¡v²%*vAˆ«Áýr„® jŽ»`p9—Âû?šæDÅô#vð_å…Ѹ)óçL¦§ù?«þìþ˜y…JÌÈ“r‰%«ÓFª@ê?n‡"Ï`ðã'Ï`™Öq‡ÌüÌÁ×ò#õ Á¹Âªè\¶¤ÿöw¡FÒÁpµ÷…H4·ø\9W,n™ þËÁ<·ü÷ 8#º|‘nU¬“í¾wÊPçÃzs9Ä mÖv#.<æzDÑ3´sZÌÐάÚìø’­á;ÎýZ±É+ha³ÙÛÉ"·Þ"–À y×tžÚ}£È úq°iš5»B¡>ZÅt¡”BÞx =ØÐë41]ƒ;‰EóœÎëÎLIȰ^tÜuZG”·¬écÊØˆ?pK2±TŽ>iyìẵ™¤B³æ¥äõ®³§;=Þ+÷øq̱†ßq¨™™]&y’¸‰¿âìË éT³ø_gCk.ðýóŶi†Ì®æp ¹ÜååþÊuw³ò4kÝ¢®î6Ô_׊d|%÷|^NS ¶{q4’"­á«g±ŸÁg¸µÅ­m¿R5_ݺŽNÁ´à9 ÖRº<“Âíx~G̓©¸ÙÓ†»OÞïO»P<óêä¡”pêŠ ÐËÐYhÎ"¹èf©š‰»£< ‰7g2“_šñ:â§-˜ñÚgÝ=˜·ùqóùôþ<«ð^ºeÁ‚AF·fJ¯ aü2Å,?ƒ—#W/‘àj&,B#þ5½ý£; "¯ä„ïËáJä¼5ÉH›žgá“<ÒM%r·jðíç$_\5jÚ¾ÚRf„CDㆢíè,©:ÂuÞ=Ð]@g¡ŠEÞ­."y¨íôã[‹´g F£žäXÉ:-ÀƒM}3ߣå÷öµª²ÏýËá|ù‡ªfЮ_0ZŠé< ¡>ãË?”!þ0ì h† mª¥ØÿÙBèxCà*ó¨áWÉ:ž?Ð~€_OÎÏROh±LérÑO5›*_cˆóPPuÄÔò‡Á¦³Kie< Ñý¬|D<¦ì~Œù…pœûòñðl(÷lÍA]§‹½ŠÅ”ƒ¹K+°›^÷`$éƒ|M ÑÃãâorÉJ£ü .º»_‡³¥ëe–ŒBGµŽå³*¬Sš×Y-¨¤ÎjRÙ„.Ô5ѵ¬tÇ)Øòm⎳㞃¹L(ik͵٤ „ÀhÇ‹­– Ÿq#ú„Ÿ³lB ‹5”m`_ë"SîßkðÛ·Ëa™9Fx rŸg$¾Æu„='[áCKÛz;¦êÑdV÷›óa³[¾ ÄØÕŽiIáÖ‚à¥d/•W8<8Ä8«\¨&|Ñý<].Ãçe~zß_6»êQXì$î©.¢ ÚxJ@ÆW^è"¾žÕ¢a0оT¬š£ºB(>ƒç9&¾ÍÚòШ3¸Ó9dx4FMØÉú4^7“ÜZ ›>–6¥müp” ж•Ö:_]×NáË\挄CA|ÍÉøì¡™¦þÙSC‘.õ ûuJNÈv@(˪cí´Â¿åd¢ªÐS)n[(óë•Ý–}ùæÂøÝ±°N‰ACЉ?@˜çûMMÏ—#âÿwÖZ°hùêzu¼[ ‚Åi¹³ÕB¸mRð‹‡¬Ì)\£«–‚Üan#·®?*5Íþ²¿]®OU¢3†{¥„(a2œô½w÷óép¸@mØ‘›°‰ø«i ÚæKÞ‹GÀe¹±ÎŸNËýz³™ŽÃþ—ûå®^`1Z£òÛ¿M_Ø vNİ9·ËóëÕ¾‹ÑÆsú‘‰<¡MçÚ*´ `EOªÓ$”³G,¤ a§zæµ­Š¤ 7(øC 9ýý;ìÅ&a'+ÒL”‹Ž…‰ë^D¡mÎBítÙº û̉l÷kß|_¡±t¬ÔSs h}Í63­g ã¼_\¼ü)jB[@6£;>×fåÛ!y©8›bí|ù}¾Ún†½Ñ”7Og7Äô-|QG>Z~ä£7Çý´<ý¸:vÕHÈ]iu•DR`îB%fÚlÿ ¡'ﱿèl±-1Y5/Þ*úG{Bö8¢Öµo2ñ"{¥<“Á6u G¸Iô¹”ë;ð-¿ç3ö¤ÖXû©áPÛœíþ—¬Ôa·ß\]¦F×`EéAKIåY!Z¶nZfîd’¬i¯Ó”寗K/L^Ü¥ÅL0é|Àt|š-xUV‰Ÿ˜6IBŽTQl]&42GŽÄv6ͧ¸y6ƒA¥˜„ÊÇ银З<bG~Ÿóì%I*ªHQá±­ò§ŸW¯gSž~8cÔ)\ÌÛ¤/½6 "YÒŠ¥ÉK±³¶m1AX%[:̃® ‚Y7A0Û?çH t!‘¨…ª“{ÛSô—^S«Œ—»Ö(SÛR>½Em£§Çýbíêüä*”ytCP?nÏ)c¼Þ-j’Õç$±ç°EØQqSå%Ƽ½ °g~ܾ¿löç9Ö½ºV IˆÚ&èûÕ3ºî° ™¨]Ç£2&r¥|9)©Dvÿ¨æËÓêõÆÐê¤R i¡·–}ÓÃË…Ï.ú‡D.>V‡ÓpƒQIÌ%’áĪø^—æÕ&£qs|q°>-ϯ¿®»ãv°ç<ø9C…àÊ fÝ"4nÏ^§q×bŒÐ£kZ­ºn¹ÑkDhI‚5Ü ]+yGÚÞ—÷ nt8˜yï÷Ä»Yns÷ðJªûkTAæ>Î7VßcFÏm;ÅÑ/¼¤w§åEG½h›fç1Ì P{îÆ¡Œ¬´!²‹C©ò­~Ρ|»%ót¬5¥‡aæJÇpP¬ù³Ã5ñYõðB!v¡Îû[»®JÖ‰6ý‡eýŒÌEœ—¢¸~÷³òÛæ2ØÔbg‹EÏé½­+Brƒ²ðˆœŒ`4Ò ¾ „.‘ˆ=…€+v ðb~^6çË)«ŸÅ©5£P‹u ¹v&\§…$ ±ÙDc“j³e»‘‘Ãc¦³^Ï ë¹]®Ó&È~Q³ÉÔ’dE繨XRå+§ýaS¤ìrT!+žäIn–rÆ0K¶rè¤'ûÓ¶Ðd î™A$’b¤‡‹CØh]c¿—÷E+î\ÁÅgj°zׂΠÝÇÓh¬‘WÅ’éÖ„x­i3‹æß+Ó+[å]„ƒOD”äp5–Òâ±RAw?‹ÃÍ dýä땲_ƒ òÏÒ$ÐaûçÛEä‚–: Ñ|Å}ßÞb‹‘" p1™Œ´&!´é¡Ø]¬'ùœ”Œ^¯äãÝÍÒ d~¸fáÕ[Lécù+Ú¦@êñFKF`¨yé÷E£ ãõm0ꌻޱüåýÜož°¦™­O(XŸ¦»vÔÅH3”IbÕcQç‘áÁ€ Û¯³«Æ•ê‹ÞËYäx:ØZ–“ì“n|P2*µILræ¥sþèŒÍ‚ÒtªÉl† ØqfµD,ªèÏ(¨IÑ¢ÞdÛöÞØmÒñ²9Ìß÷›ÏŸ ê…Xst÷®ì¶N ŽÖ©oþ°N’kãŸQcqª«­@k!ÞYü–,=Ãô—Š:?þøˆÙO&®$环O_á+J‡m”Qâ=ÏÑIŠ.éŸ0â§N=‹SÚF—zÖÜÆ¢aSBÍר‰ƒ"ê’Ë?× øi´;ÇÂ.pãS$†çåûöC¼(ꜮÎu+s˜p—‘^Ä,ú»üW%º*†Oñáp˜9Ä€üv&Eƒ&‰…UÈÞ‡Ùl’ÑDa·¨?a¶¾oN\² ‘ÆNU ”?Ò:ÖïÊHî‰[sB©·˜ªÕZ$³¢;FõXÚb:Ìš±ˆè^‰¬÷eÿ}A´c?\¼­²*» ¼ŒF]оËrû6Þû)ë4ÒžtFÐ —Ñ¿Ý@'>Ó}üL¯´ï}õ1ú½ÇåêíÊÏž»Ñï=Î_Ðcÿ|NŸÚ¾Ã\¶—Ãê°µÝ 3ó§á|Ø~¤f€Ðw\ypþ<&Øt?lQy¬±ÕgÝçÕyã*åSwþ•¹@9ùiïk¬Sœî¦ðpø7k]Т¬“´²Uâ?»zÐ5fñÉxÿ'ª£**œŠ"¡Ü|AíçbÑí׿˜\¢j@"×U¼n2RT¶Øû3yï´q[°¤kcî0‡ Æ´Óv´G–TWÌÚuL_|Ï^i/Ú«5»1£¹7Y'1xGÊ.ÒIÄÓíd¼Š¤NT=#ã>¾‘¾2;¡’TXÿkÊöZŒ õ)úÊ9ª[ˆ‡“S6¥xLIu¬Æži ²Æ¯>Ìt%α§í".“êüÑžhóæ÷¾¹ÎT8ªÎf6i¾…‡žWâùWatøÒÉì` zb<<Ï_Sˆ¥Žh Yõ+óGÍÇ ¤§åy°¹øýßf4Ú6M2ƒØØA¥aAœ$*´,DéJÚ>§†ÁŽ˜ù—4 á:¦ÌþW Ió:Þ ´íS€1º¦´%åX»î§Z“6—ßÑߨ°ºã7¤ƒÇ*©¤ì)åkÖ~f•¦Ÿ†Jc‡ÒÊüÀ’›âà¶IŒ‘÷O»ÓÌP\yÎës£½ÒVrÁº“ÜS?Üf{ÁÂðrV7•½dJ¡¢ƒ&-7<Þ§)bò^ú¸Dú½ÃÝÙ„L(ë¦iÖŸÈ;ÒtðÖÜE•˜“®cÊxQ`\µè{:É´tœd×zQQødÂýrUN¤K%räê—åqã0˜„w¼ß=ÇLâr!ÙXAÏ(m†[jÚ>ßã¸0D0zÄw?izéÖ³YOr,¡š¶ÏY âøÜÕu¬—5¦î§/¡`ŸAÑBô`4禄ÇÈij_¼UŠw-`.ƒ(l]÷r».Xi4G½5W]¤NªœÓ¦¿­›ñ‚µ©8›»ë¸{̇·-ÛÙØ NR³vµ ÞN½K¢¢BzAŒÓxMéB5UˆSÖe#¼BXDÇ!VAˇ`Œ9nÞO:Q"dÝÏÃå|¤n0¡£ŽŒÐë*r´G—IU±¾ÓE×ïû5üJÛH3GkñÆ&²&Za\¼¦O£*]8 xx‚´réPÇå~Ø~ƒ8«<êï»EXYºo#¦LÝ;÷r¢3hž7t¹‹Wå¢ 7“ÈbvºTÏHLèiI(E‚5*³¾Â€¬N O7•ú$&êSácúÒWKÁÚÄ-ý«­a1˜fy]¶ÝamzíáÁد åö¾€]#”øÿ&âJå$šZÁtD›ήêù#j6Ú+fÊп¹?²Ø~Ú¾—ÃáòjSz­›[Ö‹ŽS÷ ¡&B<£÷#=¦-œÑÄWßw‚²ŒP™Aì ü“š¾/T·ììâNoñyVj6M;$ƒÏÐÛØikE'iǰˆ’JNïœ4àÕpº,ß/¯áíic¿X ßàY“Ø×tœÞhgO~§Â…%ôjü™Ö Äagô€õp‹W;ߦPÉ!%U(£Ûp“øjjbÍDº¥ÃïZXë…‰<Ð á¶úqq0Š[…Hm\Yõ‡,m]Ls,mHÙcfÏÁ•©VXƒ¹‰o¦„'‡!GÔ'qÇ‚Ý@ÿ×Ì53͆êXÝ_N‡­ÙÝûËp"Gž1EÊt|Ñ„à,#¥Ó›¦ëÇnšÎ¿Áº ͽp8ÓF=źÃù²<]¾ÍšìÃã ÏǯÝ8ID6·¬¡ôΤHˆß7ûõáûÜl€å‹ÙçárÙì_Î9öÁ5¥¿Fc~Ÿ˜åd¡üOOÃh{hï§ÈœÏÖ¢*›dp–*#ö ¡ åÅݹÜ8Õh–Fäxµ§Bíò;’VÛ—"â6¦-"Ö£¹3•ênµý*£žÍÀV)¨yqÃü˜î‚\J=ü*Hæ)»±™iR,h‹B$„(«2 †½ÓFÿ~<û3fïlkPéYÌ<,Ëdáâ¥EB Â"ÏÚB8rIÁö4ƒËl"›L&Ä'!1h9äa!ˆ ÍÿÒ-æQê%«þÑé‚TÀðJýmáÜæuAÉcm¦J1”¨s®„xG+´ÈÙl‹ë°á·Dú™p ¶®åäq¨ÃP³…ºðÙ¬‚øI Wr); M¹’0 Ćñ{E=‡ùòéðn7¾îÀö¦“,˜ëI+Ó y 6„1ü²÷‘è#³ ÏòXC!¶È®o}ùšüŽ3™Ïý¥·NZǃåTôˆ-ÖÆ3’R¢Páèñ"Çóš dzYž­ûCØ >a(Á`U´ý¦-ïŽ)r‰38!ßéáÉë•bŽ;ùØ´ 9€Ú¼m!}N°æI{¬Nˆ’QzFçÚ Çž‚aÐ2“ÚÉ· 4´|2xßè–y ÃÕ }õæàê”ZÔ\ú˜~Ãn‰­+f©<ÇòVÖ  w1gàt“8~Yî†3ÑÒãWÝ]¥]ì´Y i4ufy‘q–wßI4 J€û®­(ü›ªZ§4¤ÇKâ®u8Ùø†¨ÉWŒßÒ£Õ™‚Y×€mY«q[V{-ûæC MWyäüäˆoÍ|œáñ™?ÙÊšw–©ò¢}Ùožž0‹ŒYdé‹U/g‰FšÙO0E`H8`*=A3)>klÁ8„u˜Ÿ9¿¯oïfת‡zƾÖ<Þ:g/i1yD'=x1:á³ü!5¾k¡éÆçHSOüÛðã´IJ[qv:-]¦›`A;PŠÍ—Ó"8}2ßX²Œ–¶U™÷ŸÉô>ù– Øê ]&’1©žXgÄý¥E‡Ÿ1¯ÃF×’ÛÞY9Ærã“’OnÄü’ºrÀØX Z`pt™º$އ61¢Èh uMç&Ÿ™Ú‡ùö‚ìI’«ÝIfcļùú$Íö[6ä c%(%=ºŒX0‹gð¬r6bÜ_ÑjnˆÙʨ¯ÖF*h½TyÌ"ƒä•¥„H@CI“V®£~Rж˧o¾'÷ül›RäÑ®k,ÒMD*NÚñVRIšïœ6èa½Y† Ä{QVM(±Ö¶ˆ·“ÂÄDÔÒÄ^ûUbL­)ðȲF#8¡Y»³…ÉðçI,‘õ¸Y_–C!¶€È‰„ÏíYj·po?«;ÌOÃêpZ£;/wŠ¿œ/§Á¼ÒNs£’ÍݸÁŠ M‘^UÔz“‡">‹&úLç>‰%-ª‰Çh¸TóF>ñG,ƒ`11îò·üã"Æ¢e”xÑqô…vÒÄLâ°·íÚzîßc¬¨àtvI_Øy;^2%•uy s¯Øë^÷÷g"DŽ’:ÂW4%& ²?£&—oOL`TÃ/Õ§{Yá5¢²±º˜yLÛQæ•TRÇÏwN°‘q6©ã ²¸`Êݨcèp4å´hÊâ‰QS€ÈŽ©€á\Tß/ß/›í;âk%É€_ð=ôÑ…•ìgÍ;ò`F¾¡ã‹ÍžÄûôY÷ºÄÈÔãƒ3&§'m0PPi¼€x€Ú[®ÌWèY_³W_„jOÚúŽ­_¢PPŽ;JF!”ûè—¦ë熋O7™-},őÞ;±ø…“æËbE,_†7È Tc¥Ž¤³B¶1Æmy„AŒ^‘§PÔRÚs«Ðh›.Cd*P2} (QÏr«C0x² Uä]m†”ÔÏnÖ\Éó^Ñé—L‡?c£Ë`ÞP°bŽoBˆÓÅ£wªÎ3L‰/¯9]sþßGpºO.R¶¢,¢m´¡ÜŽt¹UVH9Fó…”i¤`|r×-ŠVîÍíúhh;‚Ù5Ä€Ó€û'ƒmV‰‰&Í%QÌ­ÞÔ¶ÙPi )NÜF .ê$pß(á|dùÛÂ:s 81ypüËÁœŽÿsÒUþȼhLôà-'ƒ$ Ã̃¾eï+LJ$V\Ü1ÙjhŒ©a7ªŽé /âˆ{´ÝºÌ¥‚¡\Ä—½¯Í”ÙB¾Šß-ì “ •8Þ\ge¯ìyU‘ ‰<¸ø~4AÒœ1óàv¹àë#Ë&$ld” .Yz”üXOAðÖñ8úºÜ~`±ª!3cJôh¸Œîéj’–“S2rÐp™”Œ•}¾²‚éu“'(†N>5m6^ûDƒ6ÕÈ{¢•e(è-ãm/„œ¯ƒ, TibTwXYâ[ •³%,»æäÕÄ_+¦µ5¨ñp½ÇÍ®WFƦŵMÚqFJ*1HøÎi£Þl˜‚, òª9x$\P16¸.÷CA‹ºkî´£$ŸÅœ €%)œH{;Üo¾3óü•¸µw5Sƒ|(M¿Ñ¡Ã1Ú°%ÇõæÄËx+|†þž‚èR1+ÜeÌÈ5í“F®ïÑìÖäkÄrîÉk›ƒh 8 mS$*ªYòüÎú›K˜*À­!?òwÿ“Í'øùFJœ‰X!y|"$¤ðÖ&!çGIŽÏ.[Vòú@ù™|\ÓñðÝH5wÄX[î2•päU¼@„l#2J*Iho2HR‰ØƒŠ^$ˆ^^§‚£MÁK˜á»¡ÅV×ïK&]ä¾Bó ”¿ P_|Ô}FÛÕ—ñgÑÕ„®[ûˆ’š}’ç0,ñý 2¹Eê}(foÁ€¦":ü<œ›Õ×´/™t¶„íª=' ;!Q]‰MMCî@üçÃõi9EËõÚh XNÚ¨§§’År9iëJ~œÌs\üÓéÓ‡þÅZŠh>Êšþžqc%¡è)ý¾Xô¾ÊGO>5mB "7MfqWõ`h%b“v`s ”ºÍ-Ü@ÄÊVWÀRx”"ÙýÇ VÿA[˜˜˜Ìt^†a^~$¹¯6S’V…—–›^JÆ¥ª€†C²_iè›Ïªx§wô’Ô¶-•74ÐMÜ$5:¿\[÷ùÌÆâMÝÑÍ;ò „ÀŠ{†3ѥ最£O* Y|¥ *áI—1·¤ø[vFZýÆ*¾-ïd_@Q pÛ’šÈ[¼$ +ôNúp>o æâûK¯»&¨P§ADš—îå¶ÉŸ](êBa&ÏéCÉ ;ÿH|+AžÂï☤›msŽo/y ½:å#*Œ%0dœl ¿Š©ËɦÍþ?ÝÏžG,ü¬o ©ìžâ~eÈd¿†Þ‰ÃvIÛëå° ûVÌ6ÑNbÉuâFFA’ù‘1¾€u$K\ *¬£´Ï’³$„v«Û]ïÇòôm¦éæŒ/°B*î0$ʹÿt!³qçÿ¡W€ÐyÙ½‘+›ÓbämÃít‡rõÈåOµs~Tplceª”@ü’%™zÓ|ï´á¿ÒdI¡¹7)´m†ù°%h©lø_ÏÍ^’E´YÅ”AŸ™6 ÇaXY€+3V/\E1_))hë¤íÜå)QÝ ´‘ ìL¿!1Ø‚Íׯ¬<&†CT¹’êÜZx=`vBTë•9ÒñBJ[Û(Ât¦áJîgdùØ_,hÉŒ`»•ðÚìÌj²Õ¼„tÛ`§"í(k*VS7l¶æä§d³I›Üæ‘ÁnŒ?H ¯%Ø_œ¯lÄ?ìõiïùÜH…Ѭ¯Û.:ƈU”]1–ì‚,ˆñ‚ìi˜ŒåY#y-’Ÿä¶Èa4ö5€Ð¨#fzVI¾£+býÀyý‚aH!.¸ˆA’%ª«ØY1ïŒòF­×2(ŽnF&qm6ün³_Ò¸^¦¨¬YdðXMËh{ !C×G(x~«”É}(å:'ñãéF[θgo§E•%O“)²±à“ü±ÇI‚¡L ‰ó¿”Ç!3+Ò4ˆûM;…ˆ;†7ŸóMÍëE5˜%•ɰ ¿ŒÉó,ú§Ôh¯âó´êPgJ÷^I{ÏõÑ âËR‘"º5dè5©µ¥‹9ÞEHG½þZmµÍËÔ‘¹O&Ù~O?îø¸é4[ýiyxZ>…ûˆI”¨äËz³º ËÆþ †û÷fDK[Ê+ß1YòÎXòŠŽNWîºøÊÚí៻LgÜh§Ë¾#<9êœ ÷¸Î9÷aðÚc•žåé»9µñ€¶´AU!&#‘w ×ޝn{„#æ/ZɱËÃOÆ$Ž?žÏy­Æð籂²¢§·žùb ôô¢zËŸ^èóq‚þ—Ð,d%]»ÃúðhÝ8â«h”bsWéÙïãag?üp_âD½™é¦‹ šT)%CÖX[‚)¦5˪5Ü|»WÍT„u·Ž4r®äo1ô>¼Ú’6Ìš-G«:̳d‹ÿŸ>j?7ºAû";´MÞR³YgéÿùرÒâ ì§p×……îã:ÐMC ¹íq%á!¨8qP'õÊ´‰N:óšR !n[†LP,b÷Ô1ɾ¢ÒW3mzJŸÖN ^À”~/"Õ•š#!qeÚL¶ï»ÆGÈEmÖ°azĉi¼ôm"-½ðmjÄdd¯ëJ-¤ñ¹˜YHóÇ"ÞþDÅR Ê]ÍJ›iÊã7÷¡Ò–…¥áG™£P«]¨Èÿ¬xŒAìûðdCö.[FÉ®ºÔÎ|ÌûÌ× KŸé)>ÒÓYGh â{a°fN±eܳoß,àïMAÇá´ß¬Þ-V‡ Ð]·°ø*LbëÒ~}1£: ïšÍ"ö©»N7ð?ëuà:jYçå´ÜŸ·°~½,5ŠÂBÁØð!îZÕ1îZ5àâÁ mÙ/hâæ D:v÷‘âzÜÄŠKçorE™|›Bܯ1¯âL0sà/ùŸÑù  Ôè“â²3d"$Cï½Ã=šW …{ÕM½ÐŒM¡Kêõ–ñä6«Ê3®Æ<±$´êþÝh´°ç™2§Î^Z€±Æ\¨I@Û®0 ËF3&Y8×Rt>­ 2‰yœÀã –ÞVkØŒS,bü}$öÏ\ /)è2üx÷ZêÌ«Q`äMð€­á£4Ò#Þb`¡Nrü|¡75uÀ¨P¡•™ë頻,îÝ®ßýÓ¹@_oì|öœÿT¦(¥I;ê8%цçÛ͢Ǜ<1"‰W)7Ðä ©hµR³f¶JþzXKÚ×:L1M Dý‘`ÿì~èwÖj³"´–|,Nçªêx7ú˜àDwÎÔ¤­a³ß\l(x–¨7˜f#64©(þfÇ0U"ëbËõ®$º¯´1öi+ ´ Åb×”6)ÊÖfé+ºƒGQ]ýÉ•ò¡H-3@¶±ÿÌAÓJjšã–KUUšZ‰u ”WÅ.˜1÷Ýr³5cUA§šÅç„hçp¨ÀvDôð–wx¯ÝXߌ–¼­SrTÜòhrocˆáËÅ#9*ù“ìï΃cªÍõ´9š lÑÇDm“!Ûóa…Ë%i»ÊÕü»*”¹/Æ¡aFöM9½Ý0ŒÉ\×ȸNÚQƒ+©Á §ä5|ËÆ… Ü͇yCÐô¦´%lµ2æ± k »ÖW]Á‚#Xï¨Uy­ZþÊÎS?ª ¹£Û ª*ôÜÓ+j.H«Åú‰yÁ2çlš<×ÝcF—XêœÝ=â¿v J¥mò¡z²HÆ­8dúÚºkÁû3ª Âx‘Y÷à8惽!æLØŸü–t¥z².ãçfÞ°#˜¤e¢¾/f½)cÞÈsüþÝ|~vÙÍÕ¢`…6bfÆDÚöÎÆX“F6¤ä€¤þX~s^ÅÞïáÜÚ©ò*à W¿Z¹k„•Ñ:ì±{ 8Ä[¶£5½Ïç‚üˆùþoþ¥<‡ƒÅØ¡BÏC¸t/žÈ+cN}Œ™Èš!Æ%‹ª(˜ô´Ïf¹¶@u—æ&m ÓŽ¥³¤–Œìcþ•Œÿù}®¿3øT1˜ÍÏaEf‡9ݺdöoF‰=`ÏbLrâù!±XºÂz¾â¶S¾ŽÛ÷—Íþ<Zž g£îQy Þ¡©Àw'¶«H²ïÈ™õŸáµ0f¦–[eôïÙCÒøìçšñMWGV BȈÅtøO}Z±pLJˆÈ"¤”K±NuñÚ¸e#­5©<˜éµç–mnÇŠµÇ%QQÙ2«iï22iQØâÔqÂâíÂ;Œ6}ÆVF¢SæºîêËÖ¼A±r­_(FÓªu\µ¬é¯OU‚µÙ+⤲ªûÇýzÙm­;üJÝ Ž · !^c9¦€‹^.;@ãÅ/JÕjáÜFÛ_ÑTGٰʼn,» ð*ãˆ"¶m’‹ Ÿ¦æ` ºŒ<ýX4 ̪ŸU‡Ûóéý¦WÖKâ´ñ¹œâ.dÈ$ 7ôN±ú  ¹¢¶ ¬é³àAI ïSJɰMû? FVçÅšübÃÀÉ'U±·ÙBV•®lØ¿MªêXE-좴… Zic˜•±ŠIãý£ÞA66}†‰`qè%1*¶1ªE±Aµºˆœõ÷Sé‰v…È[÷3²ÛÁ# Š%㤯ë,66%x›z;ËØ¶v$ÕwÜ?òãÓÓûårØ[YOã…àBÔØ(1V"iãû®L©°|‚ѪÉvøUœ ÐÆGÂõ#¤[N3eÅb–½°)M°tŒ±V‘ìÀ‚¼õ`Þ©ëBz=€ŒPU€ŽðÓ¹cm¾:ìŽÛá2p6Ãw P¹èµ9‹žu„"ZÌ É(þ4ˆ2,¦ò"à- 1{dÄ‘ysFhÞÆ("Mñ'ÍžQvËðY¾I¡ÚŒÜDϪëxÄ ƒ gt¨ ‡c]Ú¤Xœ]¼·ˆ•…üG…! ¨0?Ž3e„ÔVÁuCx%íxy•Tfz2`gxßG5Q¸žˆ(Édß‡Þ ƒ¶  ˜²©!g3eq—¶ü>`je¬5™ª™HŸ ß?ŸWƒ3„4®¯3Wµi;†Ÿç@­Ä4@úˆ0£¿!Èk àh¨ïgû}e¾q·<^GXÔ\²²cràBmˆŒ+CU„ï‚wŒ$1Ö‰ËÒ#˜ÿ3ŸÍ­¶¡sÇh‚h¼‚ Xl*ŸRç@ô>)ž€g8ï¨/ӡɳŸT¾[8 á=M›TîrÕ¼ÂÏÈü# ‰~ý6’§Ä‡€ˆ¶ÊŒB¤CþqH¼j¤^°BÈ#¦¾_ê»yÝl¯òH6QDEiÏ(hùnùÂ"Ã%ò“€2¾êoæèjãõê&ÉŽ¦¡Aã)ÒÃ|UÀ£¹Ât…~Ri=¥„ ¬guÅX« Sms›È úÛư_cýãªÊ¦®ï-8|óÇì1 9'™{¦¼˜\Ž)šh&–˰/Ô¬v‰×Ü£S¸æmDr¬Õ°z§^0‚¥Ë;"yE’ðã UoA.̳w–¸rð{펉)îj £†W7-¸Ã‡Y4 * ë¦n]álzñw”¹ÐÍ9îÁ’ÖVÉ9O~NµÚ2s‡½Ã(P&Qm¢Öü1S‹ô°†Ùò¨A‰h—§mºÁÑðÄRó“ƒ+A¨Î$g5½ÙÊ7’7e÷¤Kœ+É ygâUðñ QV=À7°x° ¦©Ô¥¢A²Tò0‚ Ä¥¦Û:É}ˆpb}Qcgãl0yIa;V›ÊÌ>ìÁœ"ð‰&À ]²_ h.»Ãñ‚íPÊ,ám=¨j€á°ƒ T¯J4R§é òO茳…s±PI&IÒCPLÜœx˜±«S£É¥‘afRJ˜†LôïÐyï˜ßíε¨UM·\ä‚tHUñ•¨¨ØŸUI}sTÞ‹o$3÷_xK¡î¯2úºÜ‚“Mˆ__6YU]ÕÉnÖ³éK-;ÇÂ]ÿuï¶åÈm¤ ßû)x?‹¬ÇK[òØÚ¶lÙíñöþoze‘YÕTñd&«~ú?CˆÌªf²Uš5#Y@²H âðŘ ­ðR´YãéeHÉ6*Ò7ˆÅÞOìzÎ:m˜¡`®Nd{$x2:TŠÚ†ªm¡¢ý@AÖP³Zƒ5L/T #`ò†RpëOÇAÈ|ùÓÖÝEèÊ…ßÐo–8^Â7˜Ï}ƒú“¾GÎñ–åôº¢MðëÅž’½5_·µ°ê¿ëI“: šä…Õ jL:áW~à”žá©Ýé5ÄVF•¶J¥kÜevʬÈù‡Í©=ï5€9‘*„Õ'l'¯=|6ÞÓ üC« àé©c”»‡ “¿÷›ÇíßKhgŒ•~ŒöDyÜ«›Ï/—Iý¡kÏ—û®Õp­AkÆ¢(<Ê„ãø6uuóC +®Ý¥íÓøÎóZ?Yb„&vwèyב8'&5²7ÛÏÇË0[N¨ p—DßR4³Öœ¯Z-ʼ҃£&Š›»†r5À¤W‡­ž#§9†0 @Ð×O¾÷É“:'JZš‰°t¨F¯µñ¸ø0€‚ý×®À`Vê0T=è2|© "C_‰ UÊA{¶ò•Btsº®‡Í6é>y MoiïB oiI>Ë–1'ubÉŸ—Æ'L‹™ z%ûˆ¡ 1Ðå*sõdÞSã9ŒŒìjëªÙJ"—XzKˆñ(YJ§g‡¢ât2Fy¨d≅ת‡R.5ìÉáyÀåüö2³–NÛŸû©]„H‡´ Mä]m"ªˆå–‡+\ÉH¾Ý"m¶']"»/†]»jÃSÈs™6 v†=ä5}Ðñ‡îL2·:Î>µ bà©Õ|µ;àÃó!ëYéÈ;Kź îË mêÖ1/¯LC¾ !aÌé¥Ïtˆƒ qõ5Kî= 0og¾¼»~jþUP.™´Ðee5’kÇñIûE&‚ñ(ŠF†¬2´mMĪVGÈ~öpÜh±ÖðÉP¥É’79p_víCûy‘¯r˜¸àØù1Š”g.Ú†{¢mçãaµi·»/á¥2B|*3Ø_ME’çÞỆñÜÙÎ(6WeÉò€‘‰2šƒQrXEPW‘XT—YCœQWÜÓýiØ¢cÝ0èrx¤Ñ*»þ<à 1nüÉ÷Ò@Έ+mƒTá"âôót¹Mg M—›)׫—,¡¸³¨qóàÊÕØæ;d”ÑÎMPPò y†*«¯K ‘š"6£=›P;¼o@wô_zëʱµâÛ~ƒ‰†p6ÑÓCwùt<#0Æ{,­v•‡=N»²÷¾y9Èî ­‡íyÿÉJ ïqÝ8šR’/àü&E©41e™0ÙE!r¥Ð.ÉM oÏ^ü4ÕW9°½6LKêòï‚l,â–Æ½páÙïˆD £CVx%™mfâËoä ÑÛT¿ŽÝññ¥ªrµs—ö*‘ _)Zh/yV ÓCA,º*FÏà]IõÂá/¹þàˆ«*½k`Œ„´:¨°üLJ®ycW¯ëº[kn$'ÑuþO/òwòñbý*GUrþ¥»à|÷»çw¿_÷©Ýí¤þkêq„WêíÂéécô†Ç.=ÉuKÄdùçb–½ ¼ÏtÛåŠÑ‹¸V £I!ï𻘶qò‰2*.RZm–û=UÚ}8„À,yˆˆ{Ÿ6É+¸~56ƒN¥ ÔÚGÃ,Azf‚¶IÛ‚Ý”¨ÉI³zcâ{£†ÉÕn´a*Ÿ€¥±fu:wc9ÒÔ[÷î _V¾æÎôPÏ0$ ȸÆÛo_&­Ùk_'|{f%תÌE•<üÜw}"cç,ÔrÓ=´Ï»Ëë¬Ì= !n‚=sG…<ݯ)Á¶<=ÉŒŽf·½0ƒáj žï jê2ÛéÚñlÔ ‚‡ª]Ž¢â Õ”°·6„5±såïƒÐ‰j\;êM¨¦‰ç†û¡^Õ,™Ao6Ì£‹Ës4I~a*'Dt“IŸ£’Œd(¡ã¸þæ¸5 ®¨…d©ËG áŒr¶Ö©ŠËs1k¤×«¯vûßiÛE¬ dÅð¾8ËUW_³‚¶-‡AΦ¼Š‘ý%fm/3jWoÃŽyªñþñ¨ Чé¸þ€Ú±XõÔ:bH×gÐ6øÃ«ÎÔ­¿žºÃïÿõ÷;÷ôŠ4Ãk§¸o»ÛÇíúiQƾ‚ToÑ&%è1Ï>‹»ðÒ@{ª¾Ë ž4g[É «1ÕLð;7pÈù34/rrž9Ê®Ì9Ú ?.X³iºD> ¿Ÿ~ȇèÖ ß°=|׊²½¾dÒ+ª¢ao™B¤ÂòÓK2AØÆ$ÏЛ`´?¹v|ð,i¬§µ;!{_qÚŒ€º„Õ7è0@†‡+gjskÉ œf,¥IöâððåÂEvµ¿ÉÉ›ñé®ó°•лý€©­Ãø¦™¹ìŽí¦;÷Ó/¯ŒØ=iÛ Á´×¯¼{xíhí|­æ©(ònk¤Ï(M“͆…7Tÿ&e>² &5‹XÍ.Nëw%3ò\¶‡§~Ýž4~PUÅuóZ"e_¨Ë˜sMÆÆ¤•ÉÉSA5ÒW‹.…¹9è ÅQ££+‹(ÁpºÈø²¸U8ÚŽ@Ó=w°°—›m;¹Œ3-fäeºè,ñÙ kiªÇ‡«L±HïÆ :üËeºƒäžßpøÃýñ¿g­·ûÓähƒb1r“颣­ç /3ZSww|ˆ"kÀ¹U”^Ðã­6®Ÿ’ù¸ÇWú`ø«ÁVâ+¹©‚ç)|QF¨ÀmN?‡î“öë¨F¥¡·Â÷®N'rc‚Ó|wZ»G&bQ!™‰TA!ƒÒT«ð —æ“GÞj8cn8FÜ)“ [»8LQBÓ® Û£°¦Ð{|Œ>v|Œ>võ{;=_–ì“YV­²R[ºƒ¥²ª¹Ü RÐ"jš¢ VÙ¾z<}ß?‚.Þ|6 Z_i«j¡L´™uc×ßû§&¶Ýñ!ÑQ Ü7°Hîo‘P4ÌüÒîvK}ΈeHÖƒ[ÈÂ;”’»…̽{ ‚oÁ÷k“] :e¡³´i¾ÈÌšIÛÓq—“âØ¼CÿSжï" ¹©ü7ßÙg±Ãä4Œá…3È—óä÷é||¾tšÂ¬Ô’P®'»K¬q-(¼÷´ý¸MT[DûWä@Êéº5SáNyxòð5›—ÄT‹c|Œ—ƒ›‚hW¯Wß­ ËV™gX R>6.ãÃÃPcÜî;·ëãÑìg’Á†\W*!OªÝ‰&0² ï˜!Ò‚ÈĈ‡)•8jù¤P²½1;DUå5°ý‰óó!üÝa—f®©º´÷»ÎùH0¹2ôŠç>-*ìIé-Ýn@°ÕÔøÿŒ?zçž…ïÉÓ„DøÅ‚1Æ%¾5†¬ÐÜWCª†Õ9· µÊô5–+Å¡ ¡–Ví£M´m Oµ š„ö4 ijfB,eÍa&stè* }ŸI¡¯yY,ݳÓ8^õh£'^'†j_¢à 0…É &Ö²û*ê5ʉò•™·ƒý}X>œ»+îdPåw%¸DÔÄ­)DìVÂQ§ h¿×:'I 4ŸÄô'QØf,Y Œì ¸žÌŽ8—á§Ú-æX4ýÊ$¬²ÁÎ(GêP-,ZÇ]PcÞ€+ç…ë$V?f.ŸŠúAM@Ÿæ²½s ¡B­”ž´Xœ/3 ¯¯Ú£²Â¿n‚pm®œD´¥KÈ4çOkBRf3ʼ, ¤$PÞJLb¶†®W·vó ë[C¬ÄlhÛ®TÜgkx`kÏëý¹ýÏv·«aFªÄ£Ê¬ò;‚6*T]p¦±¨™Ñûß¼3©6äÏìßJ‘‡Âóé‡âdd;Ì“ f´Û˶ÿðâˬ¢—Y1/³{™åM^æú?ÝúÃä‹Rf^ò&Ö+cJsªôµH 1dÞKL[J2v®×åqV›ö ×rŠÒ“Åm»$ô¥s’ÈD“)ÂΙbØ?sRÏ—^Už`ÓѶU•,1Óð äæƒ} bîkzØ^|O¢ÎEð¢Â»ýjSñ%Ý~Ó_þ] Öá…—%EæÍÁ¸íÄa¥ø ˜U’›”ŠØ6l‹ýó&õØ÷/Hý}iÞ´í¬dèÈs;°’ʵ`ReL¥k%ø¬ efRžío3µÈWŠÃŠ)QþδǾ.ÙÀcÞ×ð„½œåÍÀrìƒy³Û^Ú—oj©`pÐv3S#Q*v#~C©qxÅ>T8 IA*š‘c>†h¨tžJ£?¸ç3¾Ã—/Xì¼D³Çsÿô‚ФÕ*“ÐZ$vôð±,¼1¼ÍÃLó5ÅxäMË[¼êÓq÷ÒýP*¨QAÛ!•(Ù·:<(¸·:’2w‹—w:ž/ÏÏ™'Þ`%ƒ«[>®†úd­ÎÂ) xY”‚ÆÒBú2Ä®á¨|Õõû‘ÃÇOŽ*”ôc<íq_XàŸÎx9 üxê?o °ýû{-èk>œÖ“ñ¼ÛQ—y¥Ðp*‚?ÜëÚÛK¤½¸Çæo!PÈØ¿»+ç…A!Ÿ`£97[$÷j'—Je%VDöu'÷P*ÃYyºÑ3/’ !Ÿ{r»ùêtÈíáÅ —± .^3ѸÏNrÖmü³eúÓ¹äÀ Ë ñœÊÄ1š†b²HT…§ù^ 0Û“cFϵ³ùеMO©D,•lhC&¢Ùhrî½3¡ð!sE‡ûó±.èbÑȱnN P‡x²áµ±S Ö½Fž»^S%¨';ö‘Ækë׿gØþþËáÔ= ðåkVþ>Ã\‘‚…®ˆ2‰»8ñˆÄ³â ?ŸÚõSûØ-í®®†¥äi…%ªŠd¦*Ïh„K2œí;„[ØUÚ·;®,ÚiæR,ÀA»p@4\®Êìõh¹T¢¨†IL„ØÆòâ\]E° zR'áã,Á:[°¨lQ̺ç-oœ®—­ Î4̪ãv˜é`¾—'KQoÑÕZÞ“º‡læb‘—,לh€×Iæ…-S0tt’ ê°ýè.TN\Æu¤F«VRï/Ér(‘’E’%‹£\…<]m›=µ›~÷©Õ¡£lX£AÁÔ9µ¾4˜˜­Bùe©@ïf°@q¾oÇÙξ¡wPÎä›$}NM[Ìp <µ®¾˜ç ]³9€BV)W¾"èpÕ+Ò^“.EöÍ!Ô'WQ˜¹{å¤é^yÜçFkÓYÌ*–ýÔ>µýJ“æÃ•¥V%w¡!¯—ŸÑ¶Bàˆ  !å¡÷·Á…Îù|³ÄŠÀáq´¶·Àá·/7Ûõå¥0̬nh›F˜â^;é©]¯lÿ¼‡7j˳—EЦ ‰–—;TRB+6<•iìdð5ž˜  £¨™«sßž×ÇM•kõÌyVqT8ý„Q‘ÜM{ ðXŒ]K™)-ÆÏ*#Éöþ ×GìÓõšl€s% ÇR$1O£’g#Ö*œ‹Œ²A:ÍÕ¾(†TSÿ5Þ¿U§erý.Sô¨€Ìì‘w5†-2¾Î·$<¶¡òiÊG¤JN‚4 ;R¤™åºzá·µ_k½{Us¡4ˆ}úRN%R…û0í4EFmŠ3s£Ua- u.•$ŽýÚk—b½ÿxyÒ99ýǃNÌjY ê˯gtpWû Ñ–"¬o•vúK}úÜ„Ä}2¸r}Ž#r1CËÚÜ?"~U—ZeÒØô³H·0Õ^˜U°³fz Ñ©=̤3hºP€é´“>WdÞ´»|Ù>»ÇV“*êÜÚÃlv¾ôyØÞ“¿ˆÙSr¸Ï½?}€<ˆð$c’x*0™‹qK˜ábtå¼F‚ÕX* ¨+éxUl;ZžFßõ¬#¸Àûö|Ôîa½ <µaPþþ‰»L²\ŒQ@HÇ<,·Üƒt‰óLé ± Y`Mxû¸%Œ{‘‘µ šqe#­å×ßãθU.™U 쩯—`¸ÐdsòùÂ|x+ì°†:ÙÅÞwÊt>á›IS…_Ü‘("+n©LÊcºT’L63ÏüùÉ-W_·Br»NA;¥¿³–„X(©!ÕE² ‚5R‡¡%å5æ«·K—p4Ù•“qIM»rqís–msÜ>lvé26á?¹‡F‡cD¥f”“@3“õ“aª[¿ ßNÓ‘l ð° ¹%L- »†€y˜·†ºÌ0ÖW4ËXs*“èE²ð„÷¯ÒÒ’ /޼ª^Ó?g®DªÙ|9FÆ +ЃÄû72Ý…l4I{(®qùK:oïM‚½¤Æ™}ÒÂf-ê4Èm‰‹jØw³Vð©ÝlÎ]ßßOSJ‡U«FAϨ(‚’gBc•Í¥ ôS©*͉¦™ZÌä<½$å ™(91n!æ a˜gÞQ{jwº´â”Z'à@(k ;Œ;"c *ÁÚ:9ö€ŒM¢hàKU_#ªHá'¦²[÷‘í­L‚8»îrd{çFôÍ[öÓÉš©SêHŽ'"‚ö”2RÁ!ÌåÄR&ºˆ ¿·›yn²çM}zÊ÷uã÷[Б:+¬TŽ}#A—žæÿ"=Ìp9ÖSË4r9–+d%cRkÐIÆÜ¼¾™ xÜo×Sk¨0ƒÀ×§¢m¦@¹áƒS*옲ÏùemK(Ão0k5îÛËeP>lOS+"0ÕJÞwÚa*°³ÔM‘x³_­@®ÉØ©®Ö¼%Ùµë§ûãçÉ-‚”/þÚ¤mÂݘºý±/kÅÈr7мÕ8>kŽ)) 9¸Ê©ãA{Rʦtþ¯•²PoU𞆱ÍaªTÌëv·ž²ìr‹{4«´ /’¾J±š'‚m'Mâ‘Íñ3ÞzÛ,°‹æùa¬—S/Ž’«’£j¤J¸åÛÎYû÷N]%ˆ^Nž¨±]C™½}ý÷µcå±™Úùú¸;ž×ŽÇ¾;O9¥×¢Â–ѹåÈã ã•[&]Y|‘8ãS’sÖ¤/ *cãù˜ƒãï§ôSžÖ(äèòn¹á:* áôgâüf1!±ÓÃy).BO¢fF8µ§îÜGÈb^¨Ä¬’N;?l¶‡G€7¾ûŸw¿Îå°b…bm`Ìð)´M}q¯o´Ül<“ó&sèûÍä[aPÚô’ÀCTI`QúÁLbäMG§ê{]s1#íW Ûl/Úß·ç§~Ò¥•gA‰Ú4{‘؇*¨ÿæ¥a¬5Qh ;ÓYÙÇ8Ó‡ía3=A8¼^ìmCÈÇøj2“F^"ˆ…xm3Ñ ^y$©^»Bt[ºp7P®vÇÓéË”:z¶ðˆZÚF¬0¯g⡟Z‰1Ó,æáö÷@œyê¿‹¹.¿§Çv¿o§~xû{¾TÚ6x9n5^Ê6-z¿-#S´ ¼#oì\mºÉÀU¥úm'c+2ãAÛ8:Y«DȇòJ³D‰è-¾0…xf-ÅÏÏûÓðR×Ï÷“ž_UEIF´=(ɯ]q/x‹ãÎ~†Gh֊춇®Ÿ ‘(äŸñ'?è0ÛƒÕ˜„Ä(õAYzŽŒ×nF¾ÊY ²o?ü|<<>N˜‹7ùt˜šJl­5Z·Þ¢ŸØÅ“ò(¯ˆÕÌè×…˜D›\ÍìÛín 7P °'êˆzÐ$¡)o$VUä|-ŠÐmR…%6Œ@%â¥=@­;½<ö,ÙË÷¯—KcÛ1Â<;åÜíùÒyÅZÒ>™'h‚õÔ¿ŽˆÕ)Ù5rX…Œ•´—•R$Ÿ¾ž(Å®ÆçI¥ ’GÔm“nGt‹§+ÙòöHü; ™‹$1Ó¯ô-fw:.‚æÆŽ1§¢Ã~¦Æpè.ŸÚÝÓÔ6kl³ mjj²:C]É—¶ÙÈrÔãX‚:æqÊ"ºüg¯Ç§þ²]?y_ ëµRQ]Ðö&Aî“È–ó*“\”#ÅÀº‰ ¨q4StÖ2L!T(óˆÿ°½wTY¯€l$ärØ0Ì+LÀaxé7_tç.Ö»Dniv«áKʘ¥é0×}u8^ˆxgV·•Ûï± m*C”éÒêä § \ñaÐd'U·qÔúȺŽ`5vM 1sÇw“n ò^^\Ú1Zz¦Èy­W!^ñŠ`qîÖËX!*L뛹F‡?wgŸÁG»j<ȵw…=æJ¥[æËø¬* V¸&ÃlÒ­iìß&Ýœ£ESè+ß ¯ôÆÆI(V©Æ ©¼P(F®Ÿñ/b&˜Í¾à „¢ÿx¨ ¡ &/Œ+ÃWM"ˆ_2ì1f šÔŸApt•¼÷$~) Mb.µbɆ™@Õ—’7vq‹µë/S „n(n“KÉQW¹©jöÕ*s=jîg¡Èx6‡9îºÉC.³’°Î$®Ì}¤47ÃýÜ l²gQ,˜;ó{åWeFYA9¦ð¡SDÎôv—v}™º‡ÊƒŠ¾hGZbÈŠ¼ˆãÙødŽžTc†-1µËÆSÇTäfg=p*¾„üÚÞè}l€Ì)3óž÷"ÎíaûŸn2}7/‘æC:éõ„B¾ Y r£îÆÒFÈé{¨àÒ Ò™s¦Þ‚ˆ}6¯¼ÚGÞQ¨Û‚}G2á!óY g^OšDsÊ›S‘BPqÕý2¥ïÐã‚h”¼ƒ,Ç“»dLâ’KgQbâRœ7ëI±P‚ªàsKƒ6nÚu9(4¡§”Å—®"ze|…»™çs÷±;÷“Q›«r.}ÛVxc—Ó¬®€» ²È:úòÄåìqxù öÆÃýôÞ(0-Ïí Ú6 böœµþŠ<Ø\$„r/_¡ù e}»ŸŽ^Ѩ\Ü6n)°0Ť6;"2êØ8}Eâ¾!ÜŸ·/àS°Ì)ÉF§m£Ø³€[<"×h¦x+Öi«Æœ¶†ü}ÞZ|ØöÝa2j…CóA+Úž&—aÊe;’4- u™ ŒÙ9³j(˜µ8´§þÃñ2 ßPèÊó©N´× Ú©ƒ'‰ãÏÖÇçÂgúÞ@|ö§vÝmž»Ýä…2\y´6m›ÓÂîäzWW¤ó{N^ B^ÄLb•§þßÏÃwNÒ0xMèÖhÛ\)¬ÅÞ¯ QŠ^ïÓ5nqXž7ǧçI)Ö/mǨ2÷Ž8_>ÏOJ£Î]wèÛ/ 'ÑÀJ¾tWÐá¶AÚkñîàËØ;#—&àSúüê)É!·¾]Ôã/Ó/ßædn‰†S6'Ðff•/é¤Pƒ”,±{ƒz^î-a}ÙFц3åB‡-ð±àÙT¤‚GRΉ±Þ·}çÏ*ë(š2G4aæüÜ@ýOýÜaǾ;<÷Z[ƒö-e ^n•ç"xÏü“l Q’*cι€¢X¢iÊRg9 Ín‡a‰M-èãçËæøéøáe…‰@q )¦›ÖËeê½'ä ”»PVX#]Û¦P:—I¡¨°#-eG>óå/ ‰Ìä!ìnZÒ²¯0î—R/ 1ß+}]Xkî”ÐÁ49# Õú*XAÛkq§3Q¡¤‰Ë†×(ç8Mp¼Ýç˹oÙ»­ÚEÛv¼i§‰T£oÂà:[ª6¬Fs'§yH'§& ¸£'(ÂwÅ¥½FüE`¬2^ á‹zÎe޳;ô¦úôn¥ÓH¢¦Ûkq±øFnº›œ•óóAã(–JÞo//Ì¢ÜKé-× Ã_ÛIïðB4ªjÒ–‹F–»Ñ¸§G¬rÜß²L#´§vEÞÀ¿À[5œ×M ¸ÝWÂC4uÓe”/LÐ*æh_¸}»¿A|Hƒ pÐ7ýŒú¼ŒÈê¯O#ØiöøµßéøÂòH¬E Ëbº>›oí}Èdî8ß=;ª%ɵ¬@þ*S¡^ 0+Xý_B`°^ŸfÝaÝ   T®ËyL¿}ee…Éö‘Ø`º,ŠîÌîðWƒ³ kð@ò#kRuP±ãœë të»2 4¥šˆÊƒm\屫§?"Åþdíº†a/Oç#Ôc¢ÏoñîG‰·øÝ€¾H¯aж{}I'úîÇ +š"?s¼dF»öð89‰Lbe6?°ÇM„éöûÂ?œ7ê|2t*ê 9mR߇ۣ¡§žOÁZ™4Æì<7D ³\#Ó¿Å 0x 0m{ç$Ïå]²©PùW1Žs\ÃÚ©¹7}îU¬ÉÕÀ 8!å%mR€:x ô10Ø >/8¡ú’ó9C]ܨÉ_GN.þÚF¡\$ÁU³Í™|T6e Ùt¦R´â8•§~IŠW‘Ó9ü^¸HV+œ$µ–²cÈ\ÑZ|Š:4ÂãÐÐì/Òk!ú‹°pNã®X¥'f+«á,drØ%U€|Ià1 ‡ ÏêRZ¥¬4º7ˆÞÚº§B±@ªª05ŸzgžÓ<顦ÒVƒãÐõO—ãi¹Ùž»õåxÞ‚«"ÃòkáwX(}‰ùLô[ºýñâ7MååZˆC» ,ì-h›Ç*6XÕª¢jq>2ƒ;Yç ÌÞŽV³Åí¨V†_ø°åoü¸o,NLTÞÛ8‡ò¥ö‚B‚Î4%z¥¦T«TâUÃLàšâ<†ýˆÞç(ž^›¥ªk¥P#&Š«•*×…ü¤Ô¸Š9)ŠÇ}ªBaÖûdjr º§¨Þj3ýMË<®E!Q(p*Vd–8]Ó=N5n-jᘫþ’}ð•ÅRrë7µæ7¨ã(X=Ø#ê cÚÂWÅ4bêR¨ºÈßA`#ŸJï(òS):Â…ëßÓxÁ80ÃT嬞5q’Žq›ç¼ÁçÓpºö…2AÒéwa‹¸Ø£¾1ùd%¿‰>ä'à ÙIÔX*®rŠQØá¼º•S 0›EÞÏþôýïï̵°ˆ=õgíIªžÔ?ûÒ?>·ú9*~î¦qgRm£ Š >µPVõ²è»íÖ´+“doŸ^ÚþÉÀÍï A{‚îª,ùh„¦Üîý¹5z¡tQ…Ù¦ Jè…g€%·‹âY‘¾tøQ}¦zL9MÒ68g·”Hüã’^¿ImHìÁþ¹_—ä²âú(‘û,sÍ®Áòçö£wHòÌÍ%²_:ÿVÔã¼þLwHŽš„¥>ÜõðFKÖõ/}«iöëóöt™~ë&ð«œã\ä5z ù¦½á(¼ËNd€ •‚>~·Guÿ"yÌtÙàåb¦Ã-Ñ ‰ì¦§êíºãáÃJ/®GaõáCf:Øýº@«þþåþ¸yÞÝ(Èê–âü|ÿå…}bR&]¤ca¨5é3ŠC˜…,‘.2ô™^=¬àÑŒ¹îž»Ëñxù0úìý}wiëáಘ[Q×&çàM°Íë(è—öb&a–„]À¹=ë*› ò0å¢áDá–^ËY$FXÜE4ÂYªŒ]±a:+9ZʆTrŠÛhUíÞvYt³'dUÑy¡@'>µkæ5Ùmž 4Œ1‡‹ãP2÷aÆ¢––‡G`«B Õiñwh®ÕiïáP¨7´Ô•„äQ¹ó ¼BiØ@£M“tdÌZÈ|*Ó‚¤Î†-êçU¡|.á  §ßr^`}¸Ú¤C:Ò² ¯D®ïD—E–¾?e¹o™HDH£²ñÐqù®Ï±ZGç¾Ι×%®Ø²=¯ÛM7¹pô1¹2w`‚¸ËAr¸~ŸÃT)NPVÚ뢓8pŽI?rÎÎ5“½? ÿ´(hp+zœ`Ñ@”Feu(˜nCýo›h®Y‡K¿ŒN6ò+®²æ\ f}Ö/-O‰ÕÔÜ´"(é4õ - 2ê]̬Òf¦ 1ÜÛõä$†›9©¼ö8E€é¶‚8íØ¹45+šÙ“É'Ó=3EØ"p£¨/ä´˜1¸s{ú°]Sq+8mg¡¼Ô{œÐ`º †¬àR™FH3¨ãe€?&àIˆ™Í’všTެª ¥¢…ôжô$fš6·™ÙL×™c ûi<´Ÿ§'a¸ÿÜû ÚNð%Fìe#wã`âWÕˆtÇ÷YP ?¿í¾}¬žé9æÈm3°N {œÀt/Ö=a¦Z ò¢*ÕðLrè+ 5 h¹Å|MI¾Éé"ÂOxôm{VÜé#Õ ú¸˜fì[Ìä´yxa9ì­=°…vxdKÒ¦¥283,Á;m̲ÜdŠÇþ¹mØ™"î]:W]Ðö7lÜiÐ#Ó,d3ª`ÙÚX·˜d¿nÓÓð?+Ÿat¸›7í5IøI2¢MÓl,º„Þ‚—q*ÄÏñÒ½ EFú½ ;ÜÓ^-Ý«)d·ª©(0ç8?3L/„äæ\"®,•DRyЊºÜäúÁÇ&3 “-šL£À 9jæÈɘ™d™¼ÈA™PY%l¸X›ÚsUCÐ7‚ß…TlYê‹ü×:ëBÏ‹²X”ia–‚yÁ²D@}y¥ J"­/é´ü/#9#H+0wÛ´çK?ý ,"æý+u¸—¹¾¤šC,Îý¦{hŸw—eù²‹Qéüh0þh·?iº­÷Á¶ƒö-$V…¸é¨§_ÒïµSC°(§qŸ£8É º§ð€‘d+q}á¶›?Wš]ÃαB3¢j\à¿p§Ùnº gNw| VÚŒA¸n³;õ&ä~¹ÆóAñ¤|аdÝ$‹ Žæ|DõGZϬÝq=½reŽ>™U ©Ü~—$,”ª1…sBß(Ûÿ¸¸T—ÍÑ´ôTói^ŽJE‘ûY¦Üya½"l‘ÈsðyIýáÈ—±Ÿ ·G¡1ú¥e *œäÃý'”ä!sžÞTò+”#ÀJiã~£Â•VV J%¤öä9ªP€¨š¹@.^W€Ó#f¾ÓåúxžÆVê'™óÄ0°¼)ý…h,Uò §[Õ>—ƒ¾ ~§Ú”O–—@"Œ6âR` ¬mh}îBés>µNEWªsDÇ]ø¦a£_Sr¸0úôúyì‡ëlØ<›mûB.?–\©œ9´4J:ÝÛÎkƒQf4­…Äm¦*F|¶}Ù˜#Ö^:œ½öÚºäZÄçRdÒÉ|÷ýK$3°JÏt8Õ(íÅ—Ñ{&°î5¢(•Csï óÞó9n$:ÍØßÇ‘IHL‰)<™DØãÔ*¦ÛÔœ±â`íáEë«J/›x‘dû/£Óýùù©»?~~i—ªÈª :ü.Mzm}øD÷â)o5Ÿýv³}A|`šˆcжI§íÑá®@OÎYòfŽ;:œáç9< rÍK• Ã½¯´wéT4…Î)žqN o9ŸcÛÐy¾†²&«ã0CÜåæÊõûÊ›ƒ®™œuFÌâñ ø¸ÝtÇ—®2tÿ{ö¤¨Ç_giwÀΙÈ¥QZÚüÐ:(ëÃ- ]Î"PJæ»ü¼=¼Àæ…ž,d¥mçH:mDaP¾5 ÂhzðœË[×úÖä2v’Å |>õø(BÚm¢¡bä„iÿ2qI±•ĪsÞ˜ârxg»çÓäL%ÒV>´õø BÚÛ³NfJ² lTÌâ³pÓùá0XF‡Ë]ßw‡G/!Ù‰‰&‡àZÑ8-2îr‚ƒë‡¹5"àBAJV%Ô†Õ6@ö‡ñày=çVðsÿûwÓï1ÃR žÿ(èpo1íEm¥Ù­ƒZš_{`%Wsìz7Á-ð,Li:;?ÚvÓK:I¤ s)9Åbf¤ËObÛ·Ó»2ÇüacÊzõö°½hêˆÈ]#òƒÎ1îBì≣O™Ð“%éôá_Þ`ú‡îS?=ý,3åÂÜ]N;üMžôÑjYc{FîŒÜ”¸Á5aâ—É9–@ž'ÝF Úî²O:'¯z]šªÒ™¢¬E‹œ·73ëéS¨ÀÑQy×xÐáÎaÚ‹óËÆ˜"´ƒ:"«!·VƒŸã*u3ü´=w»á™œfî0¯¿Ð¶gÄÆc<–KÑTÃa”cP ej†Ïžc¾¦Šá‹5Zb2ûYQ}†{Øáeg™y†Û ¡Ýç ëÙ.ŸNÛÝñ2=é Ý’¹SQ›0ÓGYÙ¬ÿd²å°ßj!%&#ÍÎÙë0Ñýñ~ëCcüD%†>Ü4iÛM2éÄ7ÚŒëðõ XŽ gÎìp¼xÆgvb  h´íÄÒNãˆÌ )gš`Úðœ[¦Ì`˜>¸ïÓÛt°” “Ç!9Ãç„K{MýÆfœx¸(Çî›<äÕÌ™æ“õãòSð+t ºðMÕÈ–0?ÔÍpºj€JI÷ gpYð „üMSµ V¶N3o«8¥ÓËn°)rN|¦øÉL™–×öÚó¦ŸZÓšÖóÛ(³@B§¥`­ ¿(#å`îÓæF5†9¿"âÙÀ‘Ì ÏÍö¸½Þ`è¯LwŠyd»gp…çA‘Ó°ª+W[­Œ®w·¦9Ìòi÷›'6Ê8ó¢„heAR@³IÏêð^cûñÈUàÒ)«ßÅüí^H á“ièÇȵ'« c¬.ƒÐÀ'í´ ‡æÁ¼\ÿ»þØ¿´Ž@Wâá˜a‡_ä׀,» £å#E<÷˜ Ç„ ¦¶—fˆw™Ÿ!íð3LzÑ/LÉÚÛ©–_¶»þ…›±Ì‘aÍ“S= ÚÊzžv›9+9'&†»/TTí‚Ó‹˜³„…¾]¤P1]7ʃÄÕIbþÌÙº¹çG=n0ݦÎIžœ)Ç 1þRC€GòMVáEÙLuמ.ÇÓ ×† É#‚¶I§L5hûêÌmip´Ï*—û±ÛO¸£ÕȆßÇäJ‘]Ôç½6Ücã1}—Ú+ ‘ƒ ]P_&IßBß«˜ãÜ>< gsÕ¬)¢ÔJ àœT¥Èýd œ/žjÚâ~ × §Âä|F¤ghDe¾ìiÌÀÄõ…lMׯ̹¿´—áÌWÃÅ ÄÔuÄ4./×àö•‘T‹; ÅÁHV7 Ë<”NÕéU–ôY7çL6£mßwç ¨EåzP‰‡{‹ˆjTû, ÃÇÄ’^SJݱB2Îs{küôÅ Aõ¼? û½ζ̆›nv¤™.ŒË/Ó0™¹î4–Þ…ìzΚm…²±îd>Ôý“þºóf¤Ó¹zü1 Ä]€»ðþÜH5Ë};Æ‚%±®Zz×!€!•ÁÃCHeÂŽ”ÖÍZ]×¾˜î|èv6í`8uåjP+Î/'D­P­Îýøþxö_“ƒQ›·¼ýq3˜e÷ó:Ñ¢€rSfÃm¢;¶çý'k ƒÿhÚÁÚò¼.—•¯VCäpja>Hx“–q 9„׈¦VÁÑïjt Ƭ¨sÌ#j*Ï”B ÄýyÍuí¶‡çÏËà›÷?ÓOÎzEÇã©×JrçùŽ §™†Yh…Aûú/ý°“hš· /‰£']{ù¸Í#O–:¢ìÍãˆÂýÛŸÏëÎo_Vãφ¢T¹2~MΧ}ÂS™¿ñÔQ‹ŒT{Õð·, œ1ç ûIÿ–À_5Í+¶•ö>Q[±Ä~\«;¨R +#Àø¨®—ãf¹¿ì{¿Ø\ê|V#3Š ¥lØî¥Š’Çá$}ãSw7ÏÝaRâ5²¬¤•R8“ºáôµ¯VEŽõÓ²«äÝ0ÒiYWËà<ƒÐšuø5Ú»2ì)QÊ•^Ê!­v 墮 )g>yý+9ÑÜUš½J•+=ÙTï5Ä»… õDUÀ’ÎI˜…ÒîÛ¢A‘ˆÌÀ˜É£±’_q6×G•ë•E½VXrá…CÏkAªÒ¶3m“NâÝ1®éçn½¼;-/²•ž9O€IfŒ\ŽAR¤|ÆD6üÝ™'Ãg{c¡GÊœÈhB-ZJœðn’ÊÝæõŽ¡ãšGÐß}cÞäEêzÉ•XåœcÇÉ ák¶7³öîöpz¾ÈÅGÍÞ—Õªäê##LÐ3.}I£¸ãóÖ©¦äìV™Éºð9šռ̅‹ž5^²¿@» ¢ÄÓöã#»µÎã¯1`Þ6Þ.Z1¹ R½ÒŽÃlU0š~ƒ&—»Îv¾€5Ԁ߶6xmÄ¿²\_hô^½ Ç÷¦ªd¶Ò;Kåª*™%ãn9Út ÷y*S¸áY?ØbªgüötÜô»öcшӹÓÖëÖQE0̹‰pÎq_Dèà „½qù‘¹÷YwV6KCÑ“ïšæ¬(ÇŠ“–3™;AÍ!+³“P•k†0/”´=ê2$G}{¡X5ÌîXBº ÂvxÉžô¢üjl Æïðb†H9¾ïwÚó–#éGY£0³¾T°)COjÔõòÑAz Ì5Ä!Žš¹Û®ÿÒoÇ©bd†›ÎÒiÛ½®¤ÓŸ7‰ &¢ƒWðõã?m—X¤ œ=Ãà‡˜-W «$8S¨g€È#JK¦w]BÞàã<…ÐQEÎV›„7Ô¸ ^!eúvÓNË‚I½éÅ9¯ÜÙ¶ß>µ—õ‡E6œÓLjýo–É) $­€¡–ÑIúH…N^ûò1…©d]I­z6ã‚ì÷ƒº ³¬~Ÿïÿ>ñ†Ï‹à€4u·O¨ öPmŠy¥Ê–HI¼ÛÞi˜ CP9Š`ž³¤˜×^Î;íÃïýŸ¿ÀJkà’¾ì4mÛwžvÔìÈ1ÑQ_UkV@f;TÈzýÄ>m€[öþ ¡às=uëòp9¡¿~mB3Œ„ÝÃÀ‘½Z?<ί͡'e]œ“2,a¤È(ØIBUœeUäYªÒîø¸†¨Í*ã™Ãô4–JâðÒ@†¯;/í¥£.Z ¶µ(é³1AÈe ýÇýÚ«‰¯+À’ÆÊç¾hL=ÂW­-*¥‘JYµ* =ׇC¨Ð¦ƒíÄ}c„9!Œòú¨×þËþxè¾Xh$ëJ²œ³òɬº ʂļ0\?‚Á³b ž«BËeÞÕT)…±/ñ£3ÀtüíõÇâ°}üpÑoµL&ÞÌ—HÞWz¾b¤(*#èMÚk MLàŽ2ÈKð‘8é hÿ¡¸Ïy#gmŠÃqÓÂŽÐ’«d¬å¢ OAPÇU†õw£ÀÓm<´ ¯Ý r0ªŠºƒQûëªI×%é³¶f3k]ŽÛu§×dX™ª^•Œ]ÕÔX•ÑgTF=ÎûÈt›“²àsÕ*ÍH®yÇum _["H¾¾t‰S40Ùɉ …„¹„ã9ìq2éž&ª4Ö²Ð\ŠE&Çôð«§xè»38ÒE6ìÓZð®ØŸÄ”cè-.—ôF3™¸ÅhzÜÂE}Æ×»yFêsä󌎇ݹ‡ÔDð¥ t#ëaÀ>ŒPçÉ\QL·åÚ˜Ç6f›ÚKj‘D¿þ8Ì~Э›ár–ÃÿpTàˆù tÞXW+Ô·’N.bìàgðx0à Ž(q¥=¸~¿ŸÚóå3h™µ&rà4L¬Yž&,46êqÐX¤¸C¡´P 4_µYý,Ä[(+¬â¿Ht¸¸ë&PÀ“&“.ÌrÕpN$gl\¢‡¨AÅ9¢i¯)”æûøm‚Õ±}‡µÆ¢}÷Ù}’ÏRSNÇOZ4€d¬Vê}ÿñ „fÕ,øtÎ*=)B1½“ác¡k¾ŒÅ‘ƒÉyÇ¥’é⤎ÚXÎZžwûçåÓþäÎÚôÍNçN¼GÛû _¶ÑœHؤ c¦›‡ûÏ^;™s»Ùê˜j¦+bªû÷M8lK-”1Á”ªK¸ Orõ8ï7ÓmˆÞÆJiq›cÝxA©É«ëãççûÂ(¥ƒE±âdDa5B­…“ÌH†?"ìÑæåzh2¼Çí%é„mžÖ€$*C›íµ?/‘mX‡fš\Ä×JŸ N¶k†ÿCg½ÛjéIa*—Ø3OÛö<ÕX¾ ZtÚíe§ðo, šsfdávSR˜çö?üó±KIYøawÐh7¹ÝÓÂ)ctSû^·¼eÔE‚s7XÚWmáH£™Jء˾{¤Ÿ~õH»õñ¬¢º ƒ]qÚ@> Å„-±\›I§1˜g˜ßÙzö:Ué&^àswhÁLDtNÁe‹B<×)û´i)3Þ¿ë'4R3D¡wþÖ¦Áù´¿Þî´y¯ýîƒaÄA\òÊTApæ€"ë ê3àœ$ì Âbì«‹O×g_ÞÌ£õÜ·8ãqtU-k¼Ñ+5ê1_S·H.>»3à~“5÷Ò‹Âè‹ÔJH†ÆC#«¤›ÜÑ U&Ñ3Ý7¦<–jèß‘d£öçŒ2‹ýú´”êb¥IÜX“Bß×—ÚÎ_”tNªÒPþRP²“l5º ±úGy½0è? ·O‘Œ‚Oœ2EküöÀªÉ¶§íuöœ®u%á» %W¤‚ °—Tïbº»‰´ÿ¦k™€mH šuÌúíþ¹äi 9ͪæd‹‚±IO¦œ«{"V=¦—‹ZŒäi#÷ Ï©‡É)ÂÉ ÜljuÁ»¤°ÿêÅù²‡”D§­ÙA´KŠÓe\#A7¶hØ‹$»Hâ”ë;˜!»Ïgd¦Ó÷H±Œ9•K¬„»éD=x²‘>(©"×ÙwÚ?ªB¦M#WÑsÊXèu¸¡bÁçTxŽ6ä9(é‰exËëñ;—s éZƒ\X•Ìýƒ Vñ-‰ºci"ÁaÖëý¸=kØ`™Ç-_5Œ[\fH`+*Ât›!ž¨ÊÈ…Ê>0qo1ÆX\¦Ù÷DWÈÑ\¬JOíVÄÄ|l§½H‹XǺ ÊÇýBg#°H´œ“ ùÚ}+1'º‰¨\Wˆ Bâ 6Å~$6,â~t }ÔY»šÞ¨Ñ0uýaø¸|LUAKìÊå†6Ϧ“&q.qÝcÎ%ûÙ«çp:¬‘$ÓÈNúUèý(½—=ìqÓmD}aE=£Æ Ÿ˜A2`‰¸ Ö¸¥|ä«djT¤&84QíF8õÄ^]s1‡Öô_=åía؃ýºìŸûN !WšI؃0¤¯‰¿‘ª%^©Æ8chÛ9Ïé$}öس–àó~×m¶Ãý­ ¡AY¥fâœß%Bk|‰Û¨Ço€´ÛxCã`µö*‰‰úàÌæêm½»?wíÓñY#æ ÔM$gŒÔXÏÁßCbš1dù8Xü½M—KhKT¡,LŒj”!¼x@—TT7?¦ÓÚ‘õ>¨0wÚ~Þ·'‚ÈJ]æïg"¶vë½N`ÕÔUùJ²["¤ Ú·q¼›gÛZü <ës}.ó{-˜™VòIÃý˜Z²"®ScŒܪä—N¨Œ‹Z¢˜sÛì.š¬L{ûšy1s,mYO Pǧ`½4¿ ï\µ§r¸Q4´´IÜØ¯¦Œºu ~ÅCü[Ôë74~UI~:¶NsÔI8’;ôÄ^»‚4dGä«lUÚ,KŽœ£]Iî%ÒF}{ćcf4,>/Q¥³ÁTÙk'³½o×;­)­†ËgÄÂÁ²6Ì• ð‹Æ5í—»3IPÍÌ7¿Š‡ÉÙ (N”;—xÐ&ÄÄÞ§f;‡Eµ}ÐéÃ䂷· q1#Ë̃k°9ôÚm™¯q•³Ä+ h’@œ ÅÏÃöˆIÅYáSŽzÌžµÆ[$ƒ*·ô"õY g–# Gkö*sÎqÄúÝZÜb‘Ìf}i©±>ÐþÂméžtçÍ$/£#|åòEwi™ éü=7È¡obÕp‹U†H² ¤$«……4¼rîðœš$zÞfD›8DFÄ,LY„"Iÿè}4wü‡v³æÈ¯k¯´DMËi¬¨KÚi1·³5Òf‘;ûaŸÎÇËq}Ü!ÑC»)¬8§Ùýbpd`.*>>ºBÊmRæ|@„ÆÛAÿfôÔ™Ñ4OOëãáaûî9žµ2BygžÍX #€ãk8­¸|ªŠn5Ò²§B¢" 6h¨eÍÒ õМpž ¥Å»¬ƒ6yQ¾J“{OGÌõQ‹8:ø•oHÀkȃ $kP‘9Ö<§m^ã¹JP¯ÛéÔž÷dzЮ¢a=VŠÑ1aÚÞý…EAÍÿU'|Gº "&¤5­÷µ»ããð}çoþDýc®4𒈮{Å·ÕòOgàügË6žH&j:z‚ŠÝb¢rû7ÚF³Ùé¼ÔôR8ð|¬LºðYÕQÓ…€ Üó˜- Ì—kq%¨íîß„â'fúgÌë¼þ°ýØI0DŠáB͹¤'AüqÛÁþÙWR$†¯¹y0gè—÷»Çœ¢àWŠ3¢Ê‡„4í Úp#/GÈIÊYä$dÜÎît£g°Æ³ß„-PU›˜¢v4N"M¬%ÖoË]¨9hO)„Xœ(DÊá/4þ„³ 2„sNß23æeÈ%V!©Áexâ ¤rzzØáTIÁÜð»¾]šØŽŠ%“þ&Õ•Ôɤÿøè´œ‹òêÔ?;‡¼3sdÀU\Ú„áWƒy®‰Bý삹I9W]ž–â}¶ÔA'©€ï†s¨´iwŒº2lã9Í8×qVC"MÃ,XÝ`@—3 ,ù ]%\ÒçI§¤³°$ÍMà„•–G¼Îüf½þ]+–¦¦V‡sÊÐ&‘AB¹]íÔ¥áŒÁy%¯`ÄŒFV•sï„퇭U+ È—Ú)ÎDxʰ¨sŒÐ3=óÖƹTÌYDz”á(op$q@Çýþx˜^BС±bzn7˜W¬N¬N­N~»Õ9wÅäÚÈÐí%C¿lú[¸¾`4Ö$ Ò°Kœ¥íàÔ‚Û%2Jɽ3œô‘ÒA_Órmˆ7ïWîÎTî…€®`hêDý°zúÜ¥zþKø¥âÄjAßi9ÕûFo †oiΛ(¥"RJç²éÉw·<>h¶è.òÄ’áËÄS¸ð6Wøüyë«kD;C~óq¼ÿ¹[_²ÉÙçÁ}'÷A~«ûày;="sE¢›·tëALäË ÙC)Ù2Ê{pÖ}{ù ÞŠ;.n@,F<¤º3í› Çž–©Õ'¾“»¤EÎ ¢ês åÎ<D®«äßÐX£S|ݪ jÕ®º0ZßõCBZbñ¦Bs^³â)+Ò5­üΨÕxßÈ6vÏ4‰è½0r ]‰pͰèt¼]ð—’O|yö4O_.އéyÖÒX'J#Ó‡_+W%y:c¬»§íbá:œU³Ò5>Ü@…ßtžñ® º{I‹†û±¾ý¾*PFôkb;nñoh†8®?.u™ÕÕ°?r( 9>Q—lÐvø‰jþE{¿{ÖÄb—j¡ÉX9§EXµÐÅœ¥½…atãü™Ø?cÔÇÃñþ¨È óÐØê€ä’ Fÿ|Ù®/Û2L`áÃc/ïfÌ#“_K¨ˆâßÙþp€B2ÅöO¬ÙAÖñ<Ü8è­*@L™üNvë#„²ˆ‹áÞ(®e–ÓašÌ;ár;óÀëG›¨•5—®Opèâ”óNf!5¾¯J€CTN>m"¡ @&GñÎdç9_4L.”h~Xð! ©¯"ºÓäkÌ‚`ƒ`~"½æ·›}0ëÎ&.ZM’Xi‡¿®ãK®G𘦳' … >^ž–.Ö>ž;Ëç-ÎQרe7{…d¡m$a‹²çA§Œ Üúþx€>þý¸kROáu&ìØ!¸: DYq!½Öh–ñpÜwvíc¢L­žïϱëK% ¬2ã 7E œÆÝ ¤},Bc¦Éí.Ù,öF:V"9Fw„€”\Ïæ´×ÄXcÈý¼µ@º|iŽßVÇuóµg|t¶ ø”;ãAÛ6ö-EGœÙÓ â#GN¸{:c’—õe‡Œoº[hpÌÐ SscÊôÏ]>=¼"ൠ-«‹Ì,Õe‡álº‰±ÈÌK ¨I÷¼Þu²ãõ˜ÈN8_£ÔϘÞäQr…Æ¡qÕ kŒîØ(UfW|ŠûhUÎ9áL- »Â˜K.pâŒ:R¥{ÞïzÄÞôJ9!MZS(Ýjþ]·kÍ1Û4+Í\%Ô½Žêqw x¸IØa·EZšPÇLÒ‚}0gü' “ G±ì0ömÞ(îªÐ]»bT}»mÐu½Ù+ &Ôu4Xjè@šÑ¦¹¼Á^Fñ~½Ù´ÙÄPTà·QñU{‹ôÇ©=·‡ãöÍÇò¡û´…jŸJ—¡‡²T¹þ¢§ÎEÀ†·‰ÜEôŠ7¿ªqÆHiÍ©§Õ¬J¦znÇýûî|–Ó>0är¶ºyLéÆ0±&}º ƒ°ë{„KÎsÂÛI8Ño¦Â•dõÔš·pÿ›_~;O»ƒ6ѱBÖ†(i8@¯$›`Ôc’LdI•¯Š˜%þo¦ºâ¼”CX«Óö?øË@—Y.J–IWˆKOB(P3¾4læ&&»´Ú44Ùœü z1—·}0sÐËì}¹T/ ]æ(§MëåÉo ÌýxHÀÝŒŠã%™oܺcò÷‰×‹‹H 0퀩*1¦á¨'¦…YŒ§úe ŒõùËéÒw—çS†ÊóûwÿüË9/ÛŒ½‰JªêÝÀ~[?Ÿw¹Ùƒ0Òü ÷Ã2¯ÂÍá MÇü±øQp›±l‚Q¦="7ðëq˜Ý89°`Jº§í¤¬w€,"ô¨¶_ÿè{ç¼Ä †è K¢Š¨âr^R èÀ„€0ŸsÇmÚn\ÉŠ³Ó"6÷Ëü½åÝÍ5ã†v¯,‚Ó´Ñ*3=óÖFDÆÂËå< mûÕ¼ÕhÌéœS.› )&hûÒ€.‘'bsÆ £O梞¯6cŠàòߢ‹*pDfH5AdL’Ø# ¶ ñ·©¬¬ÇþóÇçáÎÝ ilƒ ó‰R†Ñë2¡õt}óVs·×þ‘fÔõ‚MÉ%ç5lÙ‹zæ âÐ]`%û§b+•x1©.í KÏDÿ¾ßLÂ_UàEQ‰EÍ×)p¯@(Où.nâ¹Øœ÷€àÏø|¿P~‰Äº…ô<ïIƒ#É‹`g¬µ¸Á¾FáóFVCáQt‘š íäå  h9ª4åO 1Ïû»JX‘ÇêË7 Fm>æ&S¼jxÚµ,@ˆÒ¦•¡¹rý0ºn·”K‰á0]Ÿ–%Þ …@žJüb Û=˜kEŸð•ä’‘¼ÕÉfÒ´ÎV±Œ]žjŸÌ´“v芋¨§¶Štžjþ™F¢¡•šq=(S€Á †pXhp¡äš%£dq¦y Iç‰&Ïפ»~£·’ÔIPü5Ÿ—áŽN7ôMᶆ §ð…g+£ù ÎU¿q^Љ€WÙ|k­¡Žý3f÷¹ÛŸ¶Êrð°o ëïùÜ\Ò´oM²»Ð»ìƒW‚ÝsƼ}@ï æCWÍJ0eÑlf mçEe Η³üåæÎ?õ¸NÌB„É÷"ξ7H¿†óQ.@¢ƒ¦ÇÙpUÚp´må”é›9œS{°!Å`ŽñìYHTåÝå|—#þ¬ÓÐí³¹p„‰OÜ@'ï>_äC?x”X·ÔÎXŠùùCø³¯ØÓ¥mêÍÄJ(å:yòÀàüüa³lB1¨êoœÞöð°Í5Ä]­”._Vg(ø&¿@Xý¿ÿüÛïþë¿m¯D›3%²<8¤éBêó#kz(õô@T:²ÔsÍ×ôvmÿ¡>ŽçALf:©›=¡A—Úsó͹‡ÝóvÓ9\> þ«,_Ö͈<ýÂTIš¬éš7à×–« îk€‰^:ªùÛâ±ÝäREïQ£K •<#°O±>—¢ÁÏÉIí©™‚+‘[ߨóØîÚÇ#¤GJ L^)Î BŠ‘FMwµóq—1j$9›éq½Î• »D÷G¼G´(ðó¯úáÆA7ÁIsƒW¶þù•wb‘5ÈXE\•Aµø¥sru2‡ZÐ`ú0Kn#X¿¿làÅC]áù3r!¢—çU¡j£jÂ7uMrŽæX¡ªahiý_ÿÅ=vˆ§šty$ý'ççöüª¥Y¦‡ÄóvÿÜ~J©ê8³aÔïïÙ#â}å×ú}²Pù X9ÕŸ—¨~òüe&æÞe€ è#^ˆB¡3ÅE'©Ò­ÿSú4{wŠ;Ü Ì´‡"Ž=„-:¿—þ¶7mFYÁD›$–€+š§åÝ£>·ô ÛŽ&ßëv3}ÍJÓ iGZÞtnrÔã¦]ª÷™©m¦Äªâ˜¥4Œ~õhÈ3tË~¤;Qœ¨þO,Jk1HÜÇ1¨< ¿0IsökƒÇþœ4ÒÔ$>!òW¢ÑŒšJÇÔGê^ÍqÒ™u[ªé•eæéXã¶Ó§”aþxð|MŽ)GÏ ) tË3Gë5 g£W|ÆL©^4ÃÎløkÒzSçOvÿ¥ÿ÷ “­ƒpP„ƒ˜¾p~õÜЙìqs¿žëKѦ/«šm¡™±žŽýåñÜõ/lnRPÉĸæ:Ã!ÛçóÇî¼Æ1ývíáqrù ÿÉ]¾LÐöÂ'í%¹xöá\A¾éú§Ëñ´”ËÊ$6Š‘Ê,eX¬LB_·€ë'ƒ¢º; Ã0…•JD…VÄ *•Pxæ¤9ˆà#MÊ-ý&Œ…£Þ%ŸùU’€ò•Ÿ"\$Ê—f¦mRLz‰&âžÎíÓý«[ÁÁÚ…'„»^ñ=º_’NÁÔàÊð!eþ‚‘4äüíÇâ#DÂÝÞ_u9yt7ù;­`¶ð¾Œnñ±%>òu+i› o)Å{†--”®›j4ú·ËÁ=¾ïÏ4“›“ÒúÚ$êks#õÇȹ‘Üò:QŒèδ烤àuˇݿª8|†‡!R¥Ö=9ü©>-"”bÁ‘U„G%¯ˆM÷*ÊrøBrºÓ̉ñ?«°ôõ-ÖË›ÉUÃR­¤0iôQÀDX²'ÇNR&Ÿüuz3g¸(¦f\ÀKWD!hû›"í¥7…}z‹1›¿Ðęÿj®t…ð:jÚ;¸æ3^Ôˆ±˜úI£ÝL÷4ßG÷âè<¡cšd'*O®ÈîCਗÑ'A]ÅÍØîÄÑùJä¥õõ¥i›XI/Ù‰îéÌQ÷Ï™á3„úŒÃp|ûÚ{f(/Ž/ñ„ªôÔîW›„£4ÖQ ¾#$ôðC%ïôåcBO)öÏ^Bm>±"î’9/>~—áW^L v÷U%Xï ¹’3ñÈz ¶ÞI“±‚c9 ‹Ñ¶õ® ò$ÏãqÂÝá/|Ê›Ì ½–T‚:¿Çtž° N»ê  mÂÞ.kO»ÉÕM”ô°Éèk’À½OŸ¶©’e ÁîZ[ƒDW´Ò›´øÅƒ4´Éø\ êI8Y‚Jì˜öSïŸÏøóe×˸¸ÀgÁáAUˆ4P‰?ÅtÍ\C ¡(PY¢MØÜ¦ãÃ!Le£ƒÉ\”~ç.Ü™Ñ3{o¶C®XŠ¥Ð5)uâSÃQ×eŠ\—·€®Û±¸+ÐŒˆÓ³Â45§©É[¤©õÓ«‚µƒ<ä…¶Q‹ÿGšó5q. W1ò8óñFÕ€ôª» gt®}ÎC´©MÆL×ï6ù€=¦ß–l f8çSó«×ìcÅA›€Œ“^b”»§ó†jY£Æ yÚÇu|Ã@qÒçâÄ%é_Ä^Îò6uûû=’• ¸û9Ú"ï* [.&Ç A_#aôœå_íûÇÝs'Ù¨¡Ÿg~É­|¶»÷ëðpæ‘Q(Ïñ¶¨£Ì¿PçTÀ¯žþBÞ±þ²=\ºóC»îúeö^dPiBdº`KæVæ¡™´­ãÖôÝ|hŽÕÕ@&™`ÐF«é™;¼s×î»sºj‚C‰&ôüÓ¶=Ú¦ï¦ãJ–ŒeyoD08ÚFÕÓôÌÚåÃ0´Ík’„Â*1ßDÒÁ¼&I(D‡Åà°è3—§—=D\5~»T«ŠK-«|éã¨ie3BVÂÕÃJ/b¶…~yÚîÛÇîã¶ûN0s*ŽB-p ¦>Á[¸/Oýñù¼†Ñ¸­¦ y•YÏCóƒ´§’ (–@XVQëèÇM¨Î~nÖ¤–ë¥x’fØš€à"q £ `•ÃX*Rá H‡¦LÐå-ŽÍñôÂ( Êê+xùñlñª‹éŸ¹RI -* ¥`=޶eðs¤<¼ˆ²e8ÏmÍû_Ðóñ¡_÷¦ª[Ó¬€-œ¥Q ŒÕ*±U«˜ªŸºöò¡;‹°yA¨ªIBgÍ BUv$ 2OÈ^¹ÛŒæ…aT˜!uam[¥-0bÒNgÅø nîšRX!5:wl¿½—Ô"…Þ™ «QÉ®¾ì&+œÑ‘uÁÀ»wh‘f _p`'7p|úš¾5ÈÉNr &ç(²R/{ãýA!òL»½3Ä?½~І±>ï€òG%p"ˬ ©6hÛš¬»®ÌlÌhCUL­à†¶DÓÌE_üñ_˪k±æUÔ.¸AµTý{Îc'G´ tèŠÍù:ØvØP¨ZðU•ëÜ9´ig÷_Zs{D‰-æê°Ûõ³ Ù‚ÂÈæ®Ta²rÐv€íš¹~Ïf¬6Ó¤ƒ ƒvØëÞvÎÈF]Z]…\+q¯“Çøhm"!M;œl>ùõv³Ã’_c•$eì*ڴè(ûŽw\y*åÐs…ý³†Lk• žNe:)ê6)Qz$Ö5±„Êgˆ„­)¤ 12È•÷Ã÷v<ø©òÕhEÿàå sâ”a=˜]A>„ÏPÚ°&Š)É%³4¾œè Œ®SÖÑ©uùEÓĉÊGzÿ‚ €ÊÉ€&cÖj¹ËÖŒó&5¡«¤‰}%Í|«OÆEÆÞ‚»ßE‚¶‡?4‹$}Hæ_¦…" 92fL¶[—¢®~ Ø/Ù:ãXã^JoÒÆ­ ‰"áT‹‚› )µîÓ8æFÆÛ®ë„¬sHaáÄAkhü>ó%h§\_5Uœ¤Ö¯^†ïøËåÃñ Weä‹÷±Aø*Å”-•OS Q€î÷úqqHiC\"¾Ø÷‚ºisgxð¤¢³Žæ<—lm{ØžÚsßÁ¿[ 7è¹wý@¼o†Ã©/ßšÿi{º¬7í¥Í ê•y8%<ÐòÄqcÀdreÌ'-ÔxÑ,xç2öÏñ¥;ï±PL–å™Êt–X½ªY"¸ ¿‘–u,±º_L¥¯Øù·åÏíú C”"«UÎÕ© àŸU¿öj>TÃG/'Þ·ÊC×h›¨|Îz9ôÜ™‘¬îW˜'øYìzý%[ôvºÑÜ“9«ÔŸº³V(2ã­«UÁâáÿ%mZ—ƒšïÁıxUkjD²tD´‰`›TÿùùÔ=šÑ”+MÁ]ç#ÅUh ª,Œé˜=2 Å™T!$J¤(qH¬ ­®ñÂÚ”á½WFèsÓq£!½°B²ñ ¥Q3,eUi—rþ}ø4*F}Šç Q&1ýxº$í§M§øNûnÕ ÒØõ 'ÇØ˜PŒ´ƒ ;ì(™^‡íP˜{èx¤çÙçÃÓz³¹Ï9Ð ¾|% Ú¼BMš.öYi ´…†±Ž²]²”K¿Ëœ&Šýø%¦ØÏ Ž>­ûS»¾l¶ýzzºXÕkǤé ,ÁµòÊD¨Þ`ÿŒ±oÖçö“Òj¿¬\\åH…¾j³ËhÓLG4úö•Ì&ƒPÄœè¦~…vÁÙXŸ¨Ú?¤ªwÐcÇYKthI’jlqZ?½¼ÁØ]Q¯ñ d‡Dâ.ïJl¶®­”Žß….±?}ÿ{­T@„mþ7øÀæÐ÷SºHÛ™áÃã^;Åa¿5ѳa*:íŠrUñ³Ýçn£+4Ü.âÇš]^‚ŸSÕñ³Ÿ{“RÆOöÃW¶§]ûEG´Ð&Ž?rè>õ—燩9¸Àæ óœŸóL3Ðb-1‘Ç>öàÿ€Kx1=õÝå²=<ö&3(ùñK÷ù¢g}Ô·¦`íù°½\ºþb °Ç8t§ãþùILüH`È’ñN<+2ý³Yû}<¿p~¥,VK m§ÀELà[ž\ù+Nï €î›yôGØc¼F¬c[ˆºÑõ£ªÅiß-œÅ_rÖÝæÙ¾®’÷c4>ø·­!«¸—5…#Ä#ã÷vf®ÏYszl÷]ï6!G`.d™³¢mœ”ä {Ñ)µ¡µXEoÉMj1Ïâ¾ç´Ýûù°UË´í| `ŽNç;œÏÜqÿÑO „¼©I†¤Ãn2SÙ¦ŽÇŸ—Ñf¢… fî$;þ׈…‘*'8û 'àž†Ø²’áeß>íf«/}]ÃV #‚j+¨K»ÖÃͧ/ˆÐ‡òÔÞk¬:ÜM*¹•ïwÇÇAÁ.9Mà Òÿ°Ø]gsj æ =+É£ÝF?ªáêHoôí¾³·™HîÓam·›îpÙ" ;„’¯>ô|Ùêôxp€$“:wˆì­+3™ÙåÐ=òäºþ¼ßOëõnÛiÞ-!™îÛíN®ê1Ë ®u‹õËAéϳÿrØ=­Ö(x?ƒ~’pPãÕ _õwžN&Û ¹Rþp©üñ°‚b׳î÷îóö£\¢iQi° ªÃ襷²}ÓÙQŸ³±çãDž¶§-øGâSp H…îg3@Ú´Lú\ÏzªËg®[Z¼˜–1 6’[Ë7-¼°øê £ôp ^㣉ÜÌFBr™3Õ’aÚY£LzŸ5PIÓ¨qŸõ•Þ pÄÿvï"cÕØ2@Ó¦Ý,|Æ;Ò!3Ƕž{_õ÷„ .W/ óùÏQÓ™¯Wʉ1ýó†L8®Æž“b QƒÐdГª¤tÞ3ZH9uGaç p3‰io`NÏi9?`Ôe¥À|wê®ýÏ7œÒahœÊùíã­»õ¾Ésv2Ì ‘a MxgŽÃg(ãhXJ®ID»"n@̪Çâ“wǦ @W´IlQªÒ9E乡"RŒ¾Ù3&;h—Pc ù$½K²Fj©‚T|ÚÜyÚ·¹L~4”³ ÆÄ¦ |´¹Ã„Ay“­O'Èb««&Ë`SÊ´æ¦,o°-Ï›ýñùòa)–„—|¦ž*<#!Ê4ã+^ŒÄLÿŒ¡_4 RëŠý"5GÖÄCU|H<&|î@œœ±Ã©Þ‚Þi÷Üï!'YSèò¹‹á7]óÆñŸ}»éÖ™&š’`r°Äß¾þÛî?G b(Ó¥ñX³Ö™2óóÇöq»~ú¯ÿÒ®9M´UòùEX£¸H‹7¨RŒƒùîxî^N…¤•‚w3çj°êkm±HA“–ЉŸø{Kø) G!§å¬2Åø¥ÿ·=l^˜Ä „Â`ÆDû³„û÷­ÆÏ ÒCTÃaSœÄ„§ž†ƒ4Ýöf¡Ár„œVÎ%§ÆÜ>¶Õ¢ÒŒ‚×' _ Vb¾b6 ÄA¦–«õÎX ÚttE“»×¦€}AœE1cëó—“V'Šá×8މ- 9mÚ‘dóù~û´?n DŒí¢$?G¼œ)+´énC6äMè Â;|nÙýáÉG4Wïªàr‰Û>jZ!)3nÌùI>—‚d³»ëíÈsæ(™jnµ«@÷¸³óÞûᑘáã«( L­ôW-i{Ë[XZgë…aÍá´äðüK|z€œa,ZÂ87dXkX¦µ†å j Ã0œÝ2>˜2¤ý*U¸ÙLǼ¡ô'ƒaÕì!Y™52kw§í¢,XyÓ5òH+~K¡S§á…éŸ1þË©¾Ák‚1U¢¦S}Ø [Uq=kIË8oÙpÁI,­;g2Ïýv}n·‡ÿh¬Î-X3RftR´éÔ}Ö= Fædúo2r_Wblø¢DåÑ .Ú¦4ù^¹r ÿ;wæù\— ’0‹bÌX•ÏûÞ—ÅB*Ö-\&EbÇ7¸L¾ôÿÞaPMFä:åZó‹p™JDø^‘|Å|„o0,? Ö”«Cí•¶=ôú«ÒûóKƒÊ£„؜ɈÍo{X?Ÿû®÷o®\èäׯÆdx×Ô™W‡/j®è¸ÉØì¨˜¬ÇscíðRæÑ¸š´JrSÜjdåË«!»jUýË­Z9±ju¬: ~UëŽlHþ°–dèÜÉSïN>_=ÒñoG#±20! :&©ÿ+CĆþÙ;÷h¶',Ô†ºâ­2mŸÌY!~ ßpž±X± 1 ÃfQtœpí \¯ü…õÔöRµO*¤>6e2ÿiV3Fë¹)ŽÈT1ïÔpÔé~$I+ ȇk”M«¡«N¤®:qWÝáç{ÍÈ¢©ÄË•àR:1$½:GÛøVQýjuNÄ(2«¡ÎÍw&S¼0ZP"µ Ä ,¨DÜFò(†.ÚC›Ö%"Y·o–pØù0áÈ &¯ûÓIÛAÕ?}åM$º.»íAgÜ÷¬.X­¾Z|͘Þñ²}ø2ë\(DÁ–V«|5ư…]Öl‡Äþ¹#/ ù(–q·ÝÔh„¢ HZAM·Õ©œ†‰€üVsø¶ÔT‡~­+ïjìB%WŠÂ@ö”½¤¢:í2Æçp}Ö•>³£Çê¼2fÄ\ššù Îîž÷­0¿'xÖá_`~¼|„ÝWµ:¦±jXiÙ4?{ýxÿóú«*ë4Á ÞøM78¢WÕ:¤Jbû¦kÞ€Zà_”âJ¬JFñk§a“DÊšùNÃãÃgC¦ý–Ñšƒ6ˆû‚‡~•¤fvHÿ•ÔþQÀes9<‡/Ê'çƒ>t‚lJaâ¯öñ1­^-ê’¯úƒÓ*7xµÃ <ºÊ …ó€|k¶äa ¤Ïø’@JuMœä¤FH.Æá ùÇlcO"=]P±}µèŠ‚7aŽ­sÜîÐù]ð¼ßü„ µÒ¦u.ä¬âÇì1œyÃãu$7fÔ¬øŽ[."HM~‹Ãvêí.[öÇÄ÷ñ‹g£cIþ­F"^1²-‹”nYÜ€oYg½yÒºâªH†`“œBJ»"ÑÄ Aº±¸]31¢IFˆÛðA˜ñ8u}b4ˆã“þe‘ö8N:§˜ë}OÒ'ÐEÒh´æ¤H p£ÅyÅ iV—wÜ·}7üo_ëŸÏíEÀÇQXLR% º”1à ˃e'vƒ‰¢27`]ÑCé×RãWÅ«†);× mš51]·‰¯l1>€<øñ&,‹é˜?š~—½oÞ× &Öt†g¡ö`‚:§Îÿ%%Hj¤ u‡ÇíAçΡon6f·Œf伸jšpäA ÐbÐr´ŸŒ›Œ‰›ŒÚ‰×‰¥ÎàƒòuÂŽÀ×g£ =fæ§îüã(9¥Ê(Œ¥x¹;Á#ørXë‡Ô Á,—>äJJOzFÛ.ö£€8B-¬ý~0 æ¢Éðž=—Žýóç¶<힇ý±ì>wÏ:ëRšÙ*¹j86Ö 'Š´ÜU˜€½ý4ƒ‡/×ÕÑÜéÍÍçÿ°Ýu8sU²U_Ê`â%3ñ$©'/Ce™ ~âyÌð-'þx8>m·æ¥W5·ÅëzAÒ(IËM½ˆ™þ舋Øgo/Gfê2F!}Ó©»n©){›öì_?³ï‹¤”`”ÌÖæ·ÎzÉ€(´Iý_„‹ç×}ÓE8u“¯dpà}ËO<öw>&Ö}ÿòUŒwý–óÞž÷N°Ü®oNÒr/cD /yrúr+W~ˉ#Oƒº\| ŠÁÒ¦›}ULœyòÐÏÂeÌì½ËãÛÏ~¼íÜyxUœtÚ£šg~'Äv~°êt'È“|˵8ž¶æì‹Œ÷T Ø™~¦¿ö²jb#Ч~ö%¿dñ î„S»3§ W+Á„ YoHÓŸ‚©›¯ân¾‘äpkzßtîÀ8=†Í³S{*Vü‹2Ï‚-@Û~” º.>}ìÕŸ)º£[ê¶ýóá~{Þ˜yÖü5WלoùknJ½SŒz÷«¸æôïw8õf8äœf[Ò]NZ3Tú‘j“›«,Ü`ê¶ù¸ÑÖø«(lˆÇö<ӱߞ$$e#•“d”ª¥Mk5Ö6dæ8Œµ>5D ç¾PmSÉB¢šxð#w¨ñÄ”Dú²ÀK$Ô$¡/À™ÔhÓYäÞÜãsy¯†vfqV VðN˜ ›'[$÷ŠB>‚ ËçBý—3Ù{LЩ‚òu‚ª«ç‡åOëö„aðz‘W,#L”P¢M²åó>Æ*cä3ïÓp'š}MâÒqgB<5­_ÊPÍɶ?®ŸíXÕu°xbÈ<¨äJ›výnPG Gâ™ëLJ×Zîm–enøyÇ?.à¢'7™ñp‰ˆÉÉþl.§Ã£@!!Y—¯Cæ8$©íºÅH|;K,ާÆsg;æŽÆ¡ÆW¦ÈÀïàXi{<¸§ß¥pšàó` îìÓ¹»WÑ[#²€šHs²%ŒÐWtƒu{Å{|Û¸ßéx:íº³‚2iÀaÁH›¢êNmwù{Aõ?—y0{è¤ÌÛÈø‘ë²qn† M‹| }l¨o™_ÑD’•Ö7Ê,ÇŒ>7‹ØY>ÿ=ù–|Á˃*… Tó!v8ÿ¾È©Á„¹i*Á 2 üHòåäÂä!"OÙ2ò`!NÏ»¾C%L€BÈéÐ%i« Ã0tþ6Ì6'Žï<§™l!Í,Ç0 [ÞŸŸ^š[íËö…­´N™ÕÓo´æÈê=5¶2´þÊÔú+o`ýáZíÛíaw<žà¼N/Ù/P,þô|ΰwˆ‘ÃQ"<ᡘo|þíWcÀõrwêλ‚{’G§IUIA.oàRÞáStZD÷w¤}ZdîŇ¿l³³G¨†{­t—GЦ—ìñ2ÔqÜïܹçsÕ™"6d_FVžÞ-Psn´„¦Êöè êÒ¼p×ôWÐãý \?)óé_?è¯[ Ê­,D¤ìˆTÙ)tbÑ0ˆ‘á&& 2öÂ˱€LŒ-“Ťå93ÝlÛÝñ±?î>vg( ¨Ë#­ ޳-÷ŠxÔ´æ­Ò:t”óÿÚwÿè­Ÿ¹•þ½Õ¼Z÷»íå?9oäšÛ“õ‘G„j £Ú (ÕÈxœ~95¨, ´¤M 5¥ï¡¤N^ut|Ýþ— ‚ý8öŒ™÷ëíá²ÝíZÍ)'VÃ5­°¸¢æxî¥WX‚sQȬ ÎÏpJ×oˆ Xž£RðU(Úâ –9ƒE5·@úðE‹\“h×oô†µ¤‚6¼ô’ÎÅ̰È26=XÆ‘{¤›u°.¾@Àødd^Á–•…¯\”ô¡&'Ë,(àBvsc(ŒE’.ýíu8@+p ¨Þ=ŸÁ¾†xlâ2»ü¶ï·ý¥ÕTøP^8ù€&ÿÓXtUÆžñ¿]¾ÿÝsoœ­*Ã÷]¿}ÏO6‰ºˆ‹ýíò×SwøÃŸÍ7ˆ¸šÀß.ïÖç­&[½Y¦¿ÿîß;[¼§HÿÝÇÇ;ĺ¤3ûTâËýíò?Ûèbûã·þ·Ë¿ö;S3ªJCá]J{>è9§ò öRø‡æ+k~ Ъ4÷`š2½Éê M¤Óöó¾=õ¡…Eä…ŽY5ú:¯çÄÜa[Ç×8Fvʪb9)s’èõákš´n(˺Að£ªÓÅKžºŒ£äáâ¥Ù/níæ›kzyéßãqŸH c=ÞõOÛÖ÷/Š|(‘Nb/€¹äSz°ý¿_›!ñažø9L×ìeF²FžÉ]r ¤TLŸY®ú÷ŒäéØ_ÏÝK# ÙÈC2riÒgFÚÜèÅê¶—nòý†D¡)O(ÓgFiúçòù°ýü×ï÷Ýäj¾¬sf¨öÁ¼±~L€É£2èvQjb؃q‚Šqù‹Á ª5 hÒ ‘s3À€CJ:‰É|E5*íÒëÀI»Ôöv’}ż{âtÜda.5£“P„éÓEš>]Ü }úo—ÿÛÝÿiKU]n{•˜L@íwÒá¢_¦ó&#Š•VnX`Rç-EÛ4ÊI­y˜û7§ñÄU•ì}˜êYƒÂóS{¹tgP6` Ev0‡èâDyKôïçíúé²Ýw¦.‰b+ 5h‹yKÛ¨Y 6òHi ]”Âña7ýÙ;xÎ1õH-@£½K§ð7æM¡%çöt9‚Ó#× >üÊeÔ§Mû&åü7Å…Q'Æ#0âYûstÀK£N>·ÇËÛ¤I¢ñP5éôæ¬Cÿïv'Ð%®!?’»& ¶,’ »¼AX‡BòªFÇSÂÞUÎÅ´§BÛ b{ñW£‡×ûÒT2‘Õ+²`NÕ\Ôß¹ý$T“/kÊÖ°’ÍFû¸QÜH\„ÝŽ‡so†à`õMáÛŒÆò‰µ)<ó}Ø"›§HÝ‚þGîÌã_Ô+¨ øî¶‡Î3oꬵœÕô° ÂoÌÚZÉü¶ûUá Þ7iy“LsæïnvíaÐÓô5«w¼ä ù<äBÉ=ÍtÝb(„}l<3ëK¯S" C×ùaË–XϾc²Š(iá“XÌóTnyØv»QÉÜݶïÎ=PphêÈaˆ,1VMV~]ƒ¢Ix ÖË·FÏÚ;|Ž¥KdAˆ‡6.–ÙÁÏÒiÝwëÇ^/¦Ðh ÅÖEÃ2¯Þ$mŠ~ÖÚyfuß=·ë_ëUUßP öu¤Sÿ¿(䊫ŔÃpQÚ´ò`X9T½<-å*sWB…4 ŽÚÒ<˜7'ÇòæfÆñr†\2ä:G¥Æš’yÑYåÙ\ÕCÓFë§Þ€I‚ò•¶'ш>5ŽÞºúweôüjù‡lcŒô³®_ ¾Ýk •Y²1]³¶ÇíÍ™û¡?ž{€”g:Ãd¸™äŒ\¡o y55®á†I‚ª˜±Có•!&X@J,Vûf º<ŠÄ¿ø™;û0"ôhR¸Ð"[Ý)dÆ’/”!öäe„BR:xU¾‹ÒߊÖQÅrÇqt‹è¾ÑÌ)vÓàjÌŒ•ïEߎ;”c  …\­“(èÐ;ó•üY"ÆðÇ9MÁÔÈ@ ðå1৉vq¬ÜW6¥í@Š9n˜áW€ÅªjtR‰ ºåèÖÍI 4ûÛu·;>.ÅûléoO‰äÇI~L1??¦ï>­BÀÕ•q†gî3m£¦GÅÖ]#Õ…ÈôÏó‡ãóE=»ÔVð0lÆù%4íãú¿þKš‘äëúÍ}¦zÔtG˜¿EG*IÙ3†½¿Çò/ÃNÖé+<¥¦ªÊ0G¶í]S•)ÏÞ"Í+³%æÊj7p'­qø\*nÖ. Ú ¿lϼ-`‡ä²ƒG´®e° AÛ×ÇvÁ?²ÎuuÆÛa¨Ûc/ wÃÖ´-Ã;®L½ôå-î9Ér0Ù&#PSööm÷éBÍ.KNgÁ¬ê¹âû°Ž+ÚzJ[Lå!‰až¬£éš·Ž‡ý 8éh3[xKIð°m;Ó7o(ÇÓ¹=±šÛX^cÞøŠrqÛ¨Øw‹Ám##Ê+äëöÞAú`H5ªÝö™ç*üw¨yØ`!˜òšPÞœux>éËI­ÉË$,$ëŒÚ$43#wû`Þ¡¸½xa˜uH^'æ›éš½\8ï63câ¢!*Œ¨ >pg;æÈ¹ÆÆ×lzåña¤IY@5NòXpÚ«<þÈ/·GƒŒZfѯúÞS·¾è²ádGä,¹{˜øæ}ß í{G÷¨Ý›fÕŒù‡D­¨j@›Î>?î…À8µôêS Æ.3 ¢ m² w·é¸ÍpÜ@8¨­î:yIE}ƒ·ÔK½WD³Êþ ê_Ô"‹ˆu´Ò!‰*ní/›Á¸øº*!*pÓ&zÕ œ¿fX¯P„Má ¦ë6+e‘e¯X†4;>Å%ê¡1û|æe@~’yꄦBžñ ´^OæÎØÏwÐ&W’µÝƒê£L«&/fj—óöq«q…v,Èš¿´‚:O´iÍìš¹9ÎǧG2È™š1¨Ú9Cš.\°`¬\û0ËgÌõǃNS&›‘#—Àª½¿9ž.qóiÓ)¶Ïyˆo €-3•¼d³ªÙŒË.”ÖN7¨€CqteãíÆo8ßÂT> ¾ ÜÎL$£˜y‚/ínw\‹IÌ·/‡eFñ oÊ·æä¿´ýAÀoó= ÒæDA"m„OZ³1ò@náWÅù…ÛÃÃñn¡¨÷%tüB¬eŽïæ¸Tã³,ƒãR&§¥œX.›ûÉMW›®H6]qƒM7 áå÷̓-—ÝñÜf cï»K«=(5W•.Ä뫯¯n€×7£q˜G?¦Š+%(‚B›x Å vʇíáéa{xì4¥÷ð–[— ΑK-%-§A1T¿šÀPdœ6*©›»GÙãÄû¹ŸÉŠxh¬ § y)ƒ7o›gÌ]¶Ê£”¼0ýøyŽÅtÌ w…ÔA]TÚ´çÈqµ¯9ær¶4S‹yž\=äÀñÀ,â¼ï^Q„Í íKR7 ÏÐâÁFÉ­fñ”æÁœe9Ÿ¶oÕŒTç*pé!šoϪU” Ìrgî—]Žûc·|¼?íÚÛî ÕÇ*Þ£#bã+E9‰ùêªÉø8 ¾ [þš)C\Ì-Clç°x#C̃b/¤ECÌ ’Ø öîÌóPÒ|ã°Œva n©)SÏ XW÷ íYQ˜¸jxF €93Pú&fª0ãšó¦èìe;QÎÑ d(h5(%ç»Ra8ÖþœXw]¡n$§zã˜ÐJ]•ì´ýN&Ï]0!×Êá‹äˆÑ»\„qçýN‘ÖŸ9ûm†‰¾Sï´¨=î7nã;-†›ZR9SDw¶Ý¡m€n¼){ òªð2ÚvwTEx)(@•ÐV€JD\–ž}2c~ýî¯ÌG2“êU7BÛ¸—ëP¸U/ìõß2ÊfûwoÄN¦§ç"dv’Ü‘­äm¢ÇÍ»3Çbƒc .MyïÌ* {&}ÌL“ Ãt§aAq¡'34Ëñç*\YI ó¢+z ¹×<ŒJmU¯0n;Ca£Š¡ ž›/ë×þ5»A•3mbj°~ƒêÝ0b#xü`¹ ص䒧íY$ ícJ˜þëçö¥ýø>”žË2Ÿ£XMœt´Ãê)eEé=FKÌÈK¨ ØvAòï†hl±™sýÏö¨]£ÃåQ1ÖÂKVÍ žÿÙž´Rçr.9(JFpÔÄ>ÞC*¸\)ñå!ƒu2X# ÑÂafŒãËé´Ðùè˜ÂÁ§a¶uiÑ–Hw¯úoQtIï9>} ô§òp‡u2ÃJRæ«r*íZׯx7@|UÓî—Ê9g á{Jœ ÀI‹Wœ´p. ˜rõ[xèÎ]‹ÅRžšA4ø#Òƒ^qWêÜ;l_¿þÐíÛžœwª2 Ié=$ÁM $²ñj±Å¤Á€ïì£äՈĭ7iB±µpãzÏÞÁ­¾…V«ªR`0ÆÒ·6³ü†Ÿ¦^Pªë¸í¬i¯ßyîáÕcÝRƒ$DÁ–z8Sõ›=J߼煋Q&Úá½ZdléÌÌÃ}‹©aZ qõÁ °ª¼Ó„¶=Ú)‹Q:ðÅwöA2P!UÁ¾÷pΜ–ëv¹ÜÃÔ?5Y¢OœòPe¨1Ý„!o?;û$ž^€º‘Ýf~lÏþx醑ÐaÇw¿ýñ 0¿"ËSwÞM-‹¨kÏ2·Í“>ý¥EðdÖPý²G4ëÔÞ_·rG?h{1ZÆUÌÛ“ezQéÏçd‡'{Ó>¼ÑôüÛ™c)‚—A›æ]Ä]îUس†úÒøT€9iÓŒ/îrã³®ßáiùxn÷ûö ,K:Ü_r°9¥ÂŠa‡©~›*@X0$5'±êzŸEd¤cD NGÅ`fšh‡§^SKžÎÒ:#«ß+#YÝË¢m¼y|Ù`Îqt( fJ¦2“ýðü[ÚѳY "$îô-ô"Í ð0ZQzãÅs|wRáyÎ,—íe¿6ÛðâôùÊÕªàNØ7·‰ÎkÀË(mŽðŒÛ¨å6É*Xi_Ö~Ð}Ï›î£_;×s~Þu½þ,uÃ×c·¢N¼³R—’§Úô£óšÇ„)è¦%Ëé`tò‚ÁXäÈÌ„—ámM‡†á=†ØÜðÂ]èífŸv^tù µª ʬbF¬¼‘NÞ¬ÏÇÃjÓnw_ü2@ª©ýRf}JÆ@¬(«÷ L˜]F×_rÇýq}„;®aÃÀX–DÚ- BQšö8ájå UÔácº/'HB¹Ëî’Üc¬B×kìÌù€eGGj£('õÞB&ž4SúÒãòrXÚbUr`g ’-wö°ìl1û w¦—œ@pž”.¼æOOé=mäãqP’h˰þÍ 'žÎ‡Gäª5ÅøJ1ž‹²ÆÄ¿Ê#©÷½2l;öî·#H¨î¼ßö½Öªl68qQ–5š$¬jÀE‡w·Èš\ó“Ë ­×O{±ù#àrE½h”r´W.d)‘Ã_*’¬Fª/®÷Ã÷÷:áhç.áDÁWêp÷õ÷Ës·ëÚD\¹ðP]ÜÁÅà]Hütæm£þø0X_º""'Çч-‹%h5+sjLOá¨+LqaÌ<ãï×ýVGFŠ—Á]é+dù:qù$t_Ë/¹Tg^>k—s»Ö‰0¹Æ=®g —šÁíE}Á°‰|<³¥Rg±½NˆTÂËÃæä3íqfÜ…Pò“š„séø/gÈ´Í€Ùe$Á(ô­wG àµzl÷p Vùh%.ßK1Wö ZvóC:Âw²âÐ8ËÖ 0¹©íf®åóS·¸œ@`T¢`‰@¥õŽYÒ4Dd,ܶ&脉yã£NÓ •­ –‡ « ºË¶Qd”$˜ŒÉi ÇtwWp^(_ß«g»‡b=R-f냉fX–=Œ§‡ù¸'¦Š5:A^‚Eö¤ÿè¼±rQ†½ýú¼=]zT?¤ù«ä"ÖÑõ$®ǵ¡Ô!JAU—’Œ1Pi¯Åæþ‡K1ž·ó|9|ÖY¼+°@+Žà¶®áÚ(z"§I± (¹ ÇPQ¦ª2gO¡ÂÛsG4=*Fâ>”»‘Ìò‰y—È—ÏàÂ.tçͳÒyÊ)éÃ{¤ª«§d–ȇO‹ðÔ³êì(°öøˆƒj$°Ñ¿|Öœ`š‰°ÒèoÍ:!ÍNŒ ù™ûé?ûVûÜ%Øï¬Ó‹;ø(mn¦2QüxÙ5khî²Ý>´®HA>È1è<4΋ tÏ í’Ãâ+­¤ÇyÔÃÞÁ#mêE¸Š¹ì{{QÀmŒA¼a&´Â8œó’m¢yG8q¶Öñ[©Áö/!ÐôÔzå^í#Úçó‡,AŽE/G:EŸÚ@ÛÆÆÚ@ /–c4ŽÞ Çh“òuÜÂpÚ·›ûãþæV‚« ¤*€¸IåeS؃>-X­J¬Ó„¢_©XBî]§Xª,-)N´ÌTµl»®’±P^9\<+Á²¶ ápÃð ԺݰP© K /¿~YLEDÁ-ŒDd®bEî7V«÷ív7ìK¬/'xç‚ÊÐï$¥TVIÃsªí©]èdèr¶ÕD5(ªÔ¤uÄêf|Þ'„*—õBËþÕwqØèÑ"ˆ,˦DbLáËÝøßð\Ç"†hP0r«@‚¡aˆ¸tïQ;D‡óþM^‡SdXeý¶ÇÝ=™±*Ò®*.eQ"$)`Ͷªžôw0$ølMQÅ1G°³.X÷†˜'1ŸtÌ º¶-gq!0Q:9´ñRà©k…^ÎDöc}ÜPø{Õ¬¬Q §eWêynž÷'SÙSŽ1Ÿ#~Åd@Û¶0ÎË<ºâ>{õżh·pG¡0*Vr¤n™Ì°º‰EVêB6Î£Â‰É ÕeIp ƱBKºÌ=wž®ÃrsgûCïqÆÖt(P[TùäÛýþùÈ™B§ ³¢X7¯¨ÞÊܯÝ·öÔI#ÔÕª¹$‰Õ¨¥‹?áTÁÁ?Ì~Ø—Œsø+|ŸÄÃÑjFzD‡U`ß~=–ë.MeZÁ%… Ïû*f5zÑÉØ`Ãç+Íß^j;öêÔÕÒ5÷b¯ZHºr°¥?ŸÏ_»$5™q£Ê_¬Âõ~àÛ—÷‹ÄºÞóvøQ2ÝÄüwO¯ðf82Wi4.çä€ H© º:¨„ˆXôÚ"ñ<ñ½ÎeÅ•,MôFêÎU,™“^ëÀ\. )wʃ{×D’„©$™‰`ÚwíáÓ[|x/8G.qÉFM‹²ãÂÅH½ùbV¹y7h—ú6>ôUξÚ4É ¼î‡îÜóPæYµxEÑ¡«ç¹Þñ¥.ÿK»lò‘ã¨)Èq<^b¾í…Éy4ˆ¤æÇ_M§õc×·&ÆSiºÁ†/öPD ìQfÃ)öÍ ãskæë›óöÎô㹟3V;JV­©kÐ/¬<졵<Éf»ÿðç;ÛùªÁ"—y^@²Ý78·\ã脞[Œ*œ†älYûdÎ{Ó4±"¢(±Ú¸Œ…=”w^hT×\/‰¦šÞÝ`uE h_K´*Àw‹†#v„´.ås¡‹ëƒþûîÒ®·—/H¥Vë$¹T%”îU/‘çhM„ Gi¯O92ÏH£Â l’øÇJ©Â=æm\¯1›AóøhQ²’»¨°;ÂSÇœ !{V?£liÌ0¿Ëù¸[®»ƒÁÏĈøœ7ÂYK&PÇÝÌhÅ|vÖÑøs¡"»:hf†޾û—k×iÊwú«Æü†ˆ>`/ØÅ·cþp¿íYG§W»“™aØáq¦›dϸ§3†¬Ý#:’ÊÁÉÑ^â!ò´AÛ¨â³gü"Y¬±¹È¬ˆö­Ýžè•»zNÝe-:3[•c„tuƒ%Bœö«î1íµƒoþ¯¾;lÚφžj”Wq VøEªÀÂV|ä ýñ\¬¯ê2uÊ”©7Š:Í®·ì¶ƒ‰¶>nº÷ë °"T‹zäF“¦:.´# Nêf˜Üà+"‰Äõ9—3¿kæ™wºr$îšÁ–íU¦é®xrti&pk0Âv\þΊßCݮڴ Š…Ë¢éè´ bD’ëÎë³™íçñ]± Ê‘©A §ðÕó<Ÿç…vøUµbUvUz·¸Mâ^ѽ^{É ‹ôû]X#u³+ÃM^ïõÒkÛ¯õß»ìa¸êµcEŸ;‘±*žSiÑJA¡ñ¸+<_„>=ݽIŸy=kÿþ|ê± ¸X5«ì¼V#4‘¢Æt‰ŒØ Çna{QÆx.©Ô{]pC0³ªDü:MÕéq ™Òòzk¼% ’|!8¹÷Ñ,¬š{>í(›†œ0vаý>B™oH½7`ø<$HRpò²ˆ wÝ‚ol¿Ûïç¿á dˆïS—:L. P†$bB<*cºãθÞKUÄ!ز¾>Ú¿FÃAî­”æ4¬„FI •s §¹„P%œ‡Õðbë&%.ü›Þ@|Ö¹€8pA …Xê&¶½5ãË`E §‹ÒtÚïp’’U–°×òq2†QCH˜%奱‘DÑ>ôŹÐsµ˜ÅÍ‹Ó\öëík_RPÆ×qú<×gײžÉ&oûüê±Ê9LZ>ƒ<îsûi&Öa¿ÿ¨Õ/q¯Y‚VŤQ‘îU íY>ytõöã ïl-Ö_ï‡U­³ÑМg/­TˆoîŸ{´T“¾þKé¸7D­7áKÉ}N2öÑ!Þ-ÂZ¾øG ‘‰“˜â&‡S!ÐýÚw‰†K}ï,Q'€Ìõšc"*2Ó¿ M´:t°T™¾ôt>ÞæN:‡¯¨È2Ðã%¶>¡súÄD¢¶46‡¶z F>Õ‹ìUûãá8h‰ç‹‚ñøY&AîvÈŠ€‹t8j³L§™&è‚ú ¢"‹ ÝPù#‰ªËÝù9É“9F¤U¨tËJÂí"DIW}†åŠ›¯gÏDWØG®Š|‘˜{Ž:^çD©ð tŒ¶ nAF®E½žÈ®9C°ênÚK;µY¤ ñ°º \<4ø˜éé; Ÿ¸×»o‚­°ó[>lÏÝý4걉–UPÖ6-R"ê²3²ý³Gy<·ëÝäÉ­kºOhÓ®{ÔåV½žUÉÅñtì/ç®ÿ÷nbœyŒ“6]¶9?NÛ?{œÃ·—ɵÞokÒ´ku¹µ4ýóÇøEsPNQ…ï[¥ï[¼ouƒuì&£Øp7¯Dl—pðï°cL84*¨NëõcAøâUàP–Ôu$ÐÝ;+'߬ Æ(ÆÞÙ`üct.÷šYÔeÎ`em(ÊÞ¥w£†þqSä(ø€½Gkp7Y²¬É@°ëû°ÐÚRÁ¯,øñ¥9)›@1‹AöE0ÞY4ðMÝç˹í§ä7x€”3Q‚6*yDIqä0îôŒ¾-€HÏîgô¬LL¯‘AgÚ=fÒCõƒc&gUs£ýò[ òÒ; v¸€jÜiÇêŸÌíáù°Z\© ýŠ3oIÛq¿G{G²H¤²7~ð­kÁ?u÷¬±xméü…HVT_é„î\hŠHé/x¥¿Ê “»ëÞ» Eª,I š™ Ÿ?c´*Gœ§+>ñ1ô«¶ÏË©ÅÔÞó~jcW  vØ)%nJîÉÕ½|Œâ¦Ðó•d|Äbâ|º7m›l|¶ ”Dø$uc—!¢ŸÆóAF“÷ ŽËùœÅ¾·?>÷]·^@X|XY–K©ÊUÁA0ÁÅgÏ€‡†Ä)V 8tÊ÷º[á­ÌzaNíÒ¦k&D«À¯SxÞ4ÚÆsÊÓp=ã>ÛÑÇàzšÙšò[ÉÁr\>u-ðÿÙ*\Ø "„ƸôàW+J:=ª¨¤Ôi°‡½ =¦<Æ>|}÷ƒ¤¸?F<þÎ wÒD´ÀcØ¿$wÈp¦3±To1O˜ºßˆ+d2kß@¢íÌ í…~Úë`M%zù²^ \åçøãñ?Ãámÿ{{m}Àœ… (,K[:„ °hwÅ}~sQ]ø:ÐSJî$%AД ÷‡,J lnëœxoL‘žèÅæ¨¯G¸¿¹¸Å·;Œý!ŸyÊÃW±¼?·‡Íöð¸<žºÃ»ÿy÷{órXZÀÊHË/kÜçÖTh¹¸Þ#{P©ý×}z?U!9í:ìpCçºÝèéã«Ï9L`yèOgãíÌW€uÍVlVªòxÔ¨‰®MeEä D†Âªy0Ò´ÞfìºÍ`\fýÄD†å6=#è˜*%S€éQ„({ý»ø0\åÝ„Àë.ˆièÔ¡ñÕurQÝÒj±«¢7¹Ðš¶,ØÝ¢²ªòÊcÒá *#=o0$WíÕ Œ£ÁÃ(‡¯ùCÛ¸‘MÏmÆd‹âM-–P`®5îvLÖ!Ê@9k²h÷ôêÎ?‹"þôr æs·AÀ©¹—H–!=™PÐs¯EZ'ê—ª ™$=úR²fßKХeD¹ª¸E±,}^DÔåG<˜: [–ô<÷ø#jÊE]CHX±è¶>–ñºÛÞÝÒ3‰”ÃÅ/»‰•óOÉRÂ.ïja¸• ?0oÿøð|Øtg[Ò—uÉWàL+°¥‘cQ—W5L–¨Ê¨wñ¿¥ÝǪLÿ¼nô=¢}¼Ñû-&ßo ‰¸ñû% ¾ãéU’M!IvIÚã·?×,Qð™™"èóóîü|8tgQCAˆTf«’ƒÊä•¡eô“ˆºü,Øî×–ö§  J!eYjˆúNÉUXóãÀñ!Jñ‹»œC7íf'¥Š¬ÑNùÍ'5\U#ÕÚsŨ¦BBƒ2à<žÙ<ãáOÀ¯ŠøöàÐÃHî  ×jZ R¹œáùJ'ìÒ5'§- ¸Ðdã̤暉b²²ÉeðŒ™óioƒ uG/1¢)Dîà‘Ń5ÎG>†¥݇ä1‹9qf…ÁÕ€Õ¹§¹ °M€ÀåHúØålf" ˜Âxz¢,Sæ{Øão\®Ÿùäµ³:=œ]‚Y…ÛÐ×»"MOKF93Ì\*Ö­ÿ2æP°(·˜;.†Ϟ£δ4“6A.sõ`.ËþÒ^ž{€Zk¿ïªbRLtԜ𞤼u±†aßœPì|ÑnH hÐÔ|œ¹ î³|°¢ûóGï:ÕOŸ>¥Æf½No’–yA²N$â°WN’ø!B4ŒPÞÙî46üÃyêvŽ“*vó:Ú6p_å’¬›ªò×ß½ý—ÃZÛg ðg¨’åRjB*:ÚDj6êl’©~L»v“kd6È ÖpÕ´³››ÄcÊa‘ƒŠI©gÄPªr/ªŠiiDI#*–4 %×_s U®Ôb¬ŠPxFi³÷/.ÅàTü‹Ëcòᛤ¾=ï.ÛS{ù`ÜÙJc؇ 1óÉqé]æ8l» h«`M• ÇÊMP÷*xjg¢9JÍ”Q[%iq® ×g—]ðçg?gÙõá_>>kJøª´Võªæ¨NIª`ÔÄL{¶F ž¶Q36 N†©hd¾t¬w ¦€—3€í£«WårAÒÑJ³Ž6ÜÌ!|×XŠùÁX/]flÿÔíB]ÿ…‚lá†ëêšÖ×ð¢%^#Fm‹îmŽ‘Èé,}ãÇ/ýþwß-ŸÛÏú?tÒæ D•g¡$¢§ª+VhpJwÐÆyÑ ³·°DÌòaõÎ>KÔÚ˜Ìæµ»\müÇœõ›7HÆA”ÕkºˆÄQlHBH'L÷Î>’iªºa«#æÈê׌åÍÐ]ˆ÷¿ŒÈ¢@×1CjÊzQë}VkØ·‚¢è±,×»mw¸Ln ÉZæ…HµRElN(؉‚œÇ™JVFaÿ•“8´Û#FcÕðËl6W†)Ož“&«ý|€×îS×=żv\m@üµ;m o]™R$¦÷xÿs·Jÿ|áUKØMp›‡8{$rr]ö›5㫎YSE®bˆäBE²½ì}aŸ½Å5;‹p½" í°ÃµðKè?>†ß­;ìé7žŸáuGüÁYûa9˜“{¢Ì¡¨µ¬ È3~5‘pPEFOë·œ&<´Ï—íîù„Z‰©×¢ðÕ×ʦvˆ€Ô’^‚Rkêpå%8ÃDA+W(LƉB¾V?Bª$U+|Â2ɼƒKPá(*Ê¢—o©|lx$±î\*ë¡Ä"b ’]q­n¥fÖÍY‹ ƒò×+Döwœ3Ͼ_Îýä3áÂ÷Í4NÜHÖ›åýóùÙ=z4:Z"˜íf :8à8fކ[-és­jÂm¦€KQR§`@liöX ‡,Ücþ]™“’¤×TÄUOÍçPñ÷Ù–ñ‹•±týîl³¹å;¡Dh£o\`>Í·h&QJ„6¬¦ûAýk¦’jë¹ß._Áý<刴“àPÎm´éD1M8è¦;†>ÿš)F¾× Ï‚ï}¼<-—y:wY^”­¡¼‚ù„+ËtûÎ?;b °\j²‡í¡Õ^àÊÝ0/Ð+HŠ*D¢dT’D‚$÷áÿ:ã¢ßt‡þ}ްçÊYì¹nU4Üåˆõðlâ·ÌLµ{“s–ã –1%úÔ)÷½åý:É¥FÊ ^D± A‰x1““³Ý<Ž×O΋‘u!&ÂÌðæQME_ˆ'nò="äóÃhÛo§´—&7˜‡³‡¬¿X{ì±d€ä8$Õ‚†>}Ëӂļ2ôíæŒ—”¹qq¥± ’HÍÅŒ˜Ìá~ 5áJh¡_Ô©' ›àÃÕݾlxåçúÖ¦þ0+™J(º“'ŠƒU#)ï<+ÝIøúé©h‘̸M<I¯óý™'×r­ËVª–Uá`Rª9Ý%ì@÷TO}(ƹš‚¾*kh¬Í“åëÓØc«R“™°®Ì `Ò‘©ø¢ãv’rãxþœÓ´ûný|–Ý2ºål:=]! E)/"³¬†]Ów®Ÿñâ·"SøÞ¯mNlípK$¡x¢E4UüбA/ Gì¨÷áÝy‹Ë¼A¶°¡/œ©ß²ï†¾™(£›Ä0“õ\­xø©¾ëÔG±Ò^ŽŽKe„}­þtÀDÞ(mu+(}è½Cštbø_³6ÎŽö~C3”R‹¼L™ûþ&ó²3â ÁÖ«Œ»\Œ¨Ç:ÒšÞ¼.Á£^E©øãw¦>„h¢?ô3Õ`qpŸÖÜ>i÷NE¿Á&‡HU@¡0XãàFu_ Í"FWzˆ%ã´*G‹¤*¬@p=ɺ}#ú¢î'ވȴ‹ q(JÀïãk#±fÓí¨7ÛþÓy0黳¾V·À)¬~äëêß&¡‰21j¤X£š•'HÆ¿|ÚŸ†óðÐ>ï R¬Þër,²z_­F¦•RVëÕ'M$"ëǺñ›—çu¹¬ìoÒÏÞh6Ÿ»Ãëf¢p_;Ài’™pÝÁL†ß£Ÿ»vÝñ AK5Œ–Cû€~[8‘´ý†O{­hŸ\=À˺½`i°z„쫯ùznA;%¤Žt)®˜Ž WÉíP:ÃdN÷{ÍW,ËÕpç‚•9Œ·)ÝÝõ˜<‰ô鉎(KàŒ+¹àªÌÀ#9üq:·äª *2à1ƒtøšeØŸa›Zñ–‘™ ¶LU IýC)9$Æv(~$Gø« lôϦˆ C&›ÊDÔÜ9#ͺ‰pd!¨UU6DlÔŠ¡‹ÎU½Ìëq:ÊèKÊkT•HIݰÇÃNdª£”=Mˆ£·¿~·¨å¢ÈsଌÔçõÆ|I£"Ÿ‹Í3°‰$‡­Õ™G‹ŒãcFÎ~89ÍŽª ]SW+‹åõ·xgù<ŪÔ[ªfÉUÚTŠßØ‘·°þ!Ýø¼¾p“òyJ` jüþÇ$Èœ†»G. ÖÊÇ8…Å‚ 85¦pý•«ò—îòéx~ò̱Õ*[ólX!ÅňD vaíÜè Õð«ôº‡,‹ž Wø©½¬?tçX„xrWä`ég)XÆœ©5MRŽ`J(eÔÔˆ‡‹ceã7ì‹ÿ¬J+AN'„úx\ÃõOJÄHÒû0]ÌxÇütÜm×_þ„fTì·ôËÁ´vu{-HùXÎb&S4Ï-$a8a#_ÞŽ”Y#nS †åzâ5w¥ƒ]ѨÕ~ùˆ º"¨Ë}© ‰Dsl%ÓÛ¬ŠÅË‹‚§/AAš.c],f ÄãÒ¹Iv`ZBð5‰ ‡*ðWÉèÜK'b“sO±wŸ7êNw´Ï—ciÏ—4Î@H%a’/A M aárÉulaº€­©¶â«\c ¨»J‡‰»‹%z·{!Oxç:¯‹áêçݵ¢AKÌ×ÛLÖþuïÖú¨ [08(÷Át#ê‹ü9ôv‡þŹ^ËÇ©-.M¾,™Ê!9¢Í¤K*˜Â)I­¨pµu­¼H~<‚SÊó=aÙ`í%{‘Ò]=ûçO»?Åø{‹Î–xʃuNi©ãÅhx0¢ ˆh.¥qnÝt}C‘3¾Ê‚¸„¢¦•…¥é†îëø äl¢É ©’‡ÅòôèOçaçË}EÌWä„ ªÊ·Y¹áwׯX0@L)5øKoK *ÇÑ#¦÷Å-(°ÚÌÕàAf!_½ÿÄäs˜HÓª¥%½ï˜ßº3Ÿ ÕŽáЪâ…}«Ø¸¡ŠAGQfKŠMÛ¸"FCÝfãz‹Ú†’yº çσ·jË-˜»!N§r¾‰«±úÖ_¸Hò¨øÞ‘BÓua«MMAbbݲ,ya„&tŠ™7qgþ÷'y¸`ù¡ßnöíI»;õ)á8V@º´Ò²×ëGlÜÉ m›ï_XÌñ [ò©;º ãOíL‰!üb¢Œ¹Ý ·I#ÁpC€hlM¡ðIQ1¡íqOÊd{)ºWÂØ+3ÙÓO@ÓR BŠw9WA½ ÚÄy3¹* “ÚÂ&'GÌÕQ›%¿ônÏWš%‡ ©`¾NíˈBÈØ”uUCÜ®fk1¦Ì¿bíBO;ª3'—Å 7g8ÕŽ—®Û@˜»Ö¦¢YU\^™„Ì·JÖV(±(Y™e­Àu›. Þ,ˆÒ–ô‘_®Ýf¯l]a•!«\¿«ÒR£uñ-øa‡Ü>˜Ëw¹i»=Ä…Ô VkfU³*-ÖéIl6Ü‹»n/ÊlBàr@³î˜Ñ!³~N•ÏçS‹Œþ}ðY¯QËH ½XëÉ8õn·øËÏëμ"Ó8ØôR^4n§x-{…A"˜ÙG~ß®ºŸÉ臆h,]=¤¹Ͼ pe/,¯Säb2/¢Uc>ýœ¥ÿX½dÍë¡+í¨cv¼“ÞaËê,|uïÆ`ž7Ç–÷ë ˆÁ&ƒB¸Œ)^j<·Úi$¦7¼bR«·•²jP’öf2ÎÂ=$_NãêyvÏÛƒG@d+0v8vU(÷!<§)mÛ4; èûãxØ`¡ER¯ÇFôýûÝf¸®e9Brƒ<BZ]¿&Ä´Å9!i¯ã£'‰‘ @ózÕLÄÂÎ`:\%f‡ÿ#92×ÿær¿öDÍÆ©FhA œÈÒéÛ‹T(/b(6×g=uå,io†k–È šQÑJ¤BUÂÿž±J Ô(oYa=F®ntn21Œ[•Æ*9U|s{dµßrq1‡˜À!§fÌét>>öàZ4¿ª\)†å¿Faí4Ý m B¶óÍ„É( ø;2kŒl§ón²hÑÚzâz‰qѺ½\å'­Þs´5¹-e`²É¡d9ꙇSìN«s÷˜tSsó _i.†; ³È;œ 4ê<0'Uæ(ŽÃåÏŒ&=«uü^h:| ÿ8c}«Ä——ù¸/ÃÖ‰2º‰/ãrŠ:oผ?¹#¤©éä‰5¢â`gú]Ί{ví`Ÿ÷íú%ÄL —-$¹6MÖ$[Ä}—«ÊY““0‹‡­ :R%s˜ÅTô—AB‚ÂH1 …v’=ì+°U•g¹·ñ¿4øg¸ªd®éL?œ9@§2êˆ{rí»ø|ùØAó̀ɋãÖEð›³Y_®“U¾".bëRx€èµg ÅY0ŽädHƒ¾×k—áxß}6¥Ñ=˜m¢,ù €¯—5ÑùÃò @‚{Àkö’q ”\W[hzJ:Ÿ©õ*v"Êð¦8µ„´òBQ}æv/-ø }#´m2f¥#岯Ö_Žë‡^:8XÙwÜüjŒƒº«ðWƒ KÚfoJK‚Î9  Â0É”¤‡ÿN]ÚpǾY©§ãú už‰#ªUÎÅh*c<™µÚ¨Ö•¬k_ˆÄ™áì'Bˆ¾  ÔHC]·ðû÷‡íýñøç¡¶z)«rΙüE9§M9çºÇÀóö³·˜ŽFο~*y@›t*L7‡ž·Ÿ»v§²÷u*â`}ðzŒj| (é°AT©*Œ)ãLT*fŒ»;´[¨6 ™{*¶Ü&Èy€Ge)z¶†?ß"Rã,?0'6«þ¸ŠY|Ì"49aÿ$9 ½ÑÞÝúÜCiFÄäÜÌâÎB°#; ‹t§‘‹kÊ8‰•£¿ZÓ…!î–ýñ U–d„–Áñ­ 5qD³˜å¾Ñ^kŸD©Ë-ñ•41¤WY¢JˆQ¦ .РÓ5§ýÒ©OôC»‹§è”Èù —PÎX€ lEïtøêÑ e1gÿ:¬àïÿõwmi« äÇÚ±Þ0:lyäE@•Œ^+–$4÷Ü'¡æ…ýó¦âJ#LL¨ª<³PÔDŸã¬š9Kð?µ¸ˆªGA™iXâÆüÒ{á]t¡€¯­Ç+Æíâ³5=Ö~úñ0¥¡jseo Ïø‹ù“!ÓdäN.У"1^…&à ×ÙÝ©;ï î ¬^©K”u±h,÷£YÁ/—ÇÃpG£üCvؘ‚¬7ÉY9áF ¡)¨¥è@ ™†©f:“½ha¶ýºßª5Vqò¿Àõ÷·mín[Ž”¾R£7¤¾Ðµ}h×Qcít¸ÜbÐÓë@CVÆšŒI‹¡/ çD»Núì…4„ÁŸŸ±²?·›Noymà6Å*gö~×w:Àð&ÛºT‘gëz¹¢w᥋”-Œq”ƒ\3ÄÅM7mÿ¸ß9é\1y  ÿh®¥4¬šŽÎH]Rk­:‘+#†à;á£û@€`ªÂ:™aï"Ýi¿Zk†²(tel>Àðÿ<Å(1z‚Û~''\Ë× ‘ŠÜñu€pMî/|Ýç‡lІ¨$+Ì¥@²>V‹„sœ3îfä`¶q,+*ŠŠD‘à(U(NŦçî‹|ô…[Êø”®_[Šà†£ ˆ²$dLäNùL®Ný÷ó³ÜkÓª!¹pI‡Ó$0­'"J¢d§klN&fÜffŽ÷câœ×a†NfèÜÙŽy»i¯KM·5\tY”UÁ¹,e0š í@òò#ÒEP•DÁº‚å°ú¤å @9<Æ.RïçÕa>;^§øŽŽºQtÔ¤Eóϼai{íÜ™‡‘½‘µ®Ãüœ®;¡¦uÝ¿>ôw*fWÉ)ýÅÿÍΚN~Ť¤IÔô¯8ét¯Ø<¹Í`2m}<¿4ä Sþ2‰»Æ_³¶Ü@a*9Y? ”ŽqrõTƒW «Ó}$ÏaZàÄŠŽ 2êñ‹Áõ»µðo8]ÇjòíæÊÐcÖN·Š»Üøùvôémf°o·»}w~|aƒ ¯¢†-/lâ>'hfÅ “á^>¼$/ètŒ#Œ¹Hfô ÏÕ“r25xœ˜l~)yúò|8¾ ÁªÀx¤M'îò6On3Ü¿=o×OÀÿ€8õEY –Z@T¤pÙHEa¼ 4)í4Þ)› ÎäN—°51d$1ã>JI}µ"Z‰ç—îŠÁ€­ç©Î¢r$% ÖKNFGmQüüM Ñå§óV¿çéi–ˆ8!eÃÞq{T ’ÿ°ºsøD¹áø•£ZRb¢èD+„ ¤®^u–­×™ÿBƒSypG.3MØeʹÏÁˆ—”SÁDЀ…)“_&G•sÞF%üQÆÀ0[€Zø8S‰NÌHlÁ/òÉ£«ƒÈsAÌÒÞ!oig=g0»“)s<f'¤Px[à;Šü»†Ÿ–ÜOL°_dl @˜7ƒýóæäÂØvf N¬öDa Ý¡¢3s .s{b„¯ä¼¯VÊBÄb÷­'|*Hà Ê"x/†¼E.I„,ï»ûç¾ûÐíN³UX¬ f䢫œñÏËv¢ÈÓøÃé||Øî\©D²A‡?"·Q†š-Iþ(X?¯ô¬a8Ï<ø…Ãy}ÿaQ¬ÄIÓpp>~™Ãû÷?¢a$–8µû×f€ôîL⋺‡€, ±ŠÙ­ÀÈØÄ7£‰I’NéBy9_[WISÚ)Õ‚ŠØq`/,äõfPW|ã˶:µ}?ùæó õ€´¼} °€ØË%%P•ÀÀÛ}u®ÛåUà$¡ŒÎªÖ»[2º³@okéJÇÀñ«ÌÆÜU§¹™Œ'ݵîÎxš©œbÎ@…(ˆk±ÒÉ” VŒîPd‰Âeí $Í¡Š) /CÈÍÕ>O½HïþçÝï—çn×µ}7L àãÌF0å~ar½rs,ÿ_ûîò·ÆÌMI‡²Ü|ÜL ÇÓAbož×—žÞm7Póæ#ê?µ‡…F!‹’Êa®Ya±•:r¥ìYôúnB´p¯Øvž41çÖ"vÇPU4¾0¦>Þ¯»à[îlwòAÉIm1óîQ(€Yu8´ ŽûßRÂ×M1õqo2.4è|•5«l kžaÅI dnÔûOôpÆÎ)Úªˆ²š¼ŽAD,±U aÉs^ÏÎF ZöÁ-–\‰/-q#/›¨Æð•¼š ¢ý 5Ò&b3É>^òߪŒ»¥cÔ(ÀfѨUÁe)#ENæP€)L3BiÖ9«Yv_6“E!@Ƽu‰Æì%€)oõóÀ½»vÆ-¿í4²læÑœ—Ùž˜<ÂWE[¥Òþ|Ú§"Ý¿b$.d}±ÿáe:Žçö±[äP!¯ÙÊÜÀ¥³"¢㛤¢˜„²ýeó)‘GÞã€e òAîÜ´h…½Ñ“Ò“>Às7N%‹@ôëUA§3Ü­ª¡ç!á!óÜäf¾<…Nó„úJq©X)AùxYÐa|”9À¼L*bªít‰[WûdÎt4 [䘸ÁVvT¤n{ÜN3Ãì\†w7¨* `êß[JÍ稗^3‚Ûœ¹Ô°Ö4Ýíe'ˈ†6•wW&/M»­2:+:'w±Í§ÅO½!ÁÃ]xØWÐaè³…×Ï)3î¬<,ßL&ÄÆ3*m¹¿Äî…:¢ã퀘L4w³»Á]·ÓE› % èQjîœÈÌ3 d”yCW€æ EŸ Ë®<1Jµ<˸QÇ0CÏG7BD‡UAýo3÷e±2øötPÇgÒí¥¿zåhOíºÛ·O¦ËXastT¾²yÐaÕXÿàȯÒ^0~‡‹³Ì€}™œÝ`-ÞwíEÓ’:¸= ª7šãÐ?lì(P“¼Ì…’#y>ôÀ¹e€ïa ” ^íòû©]? wðŸàT£ëš:f§gù’ÀþÂøÑ}Ûx¿>îuˆáPĹÜ_E›®Bícøqè9ëD|úÙ 4¢ø‡‘&\2úÊ%F\My…mÄfØÅ`ÿ¶¦›8é§AÄÞÿÙôìàú36N{,Æ$QccÈd³Èœ¾ªŠÊ$úè™§GZN'ö®S­<^ž–Þ‰ö<_ó^æ QÙ~»' :Âé(iü Çb;è,¬ÙD }DwÐÏ € /s8mU£». Ë8R«€¨“´°ÞGª¢.(÷Xhù-f@Ní°×ŽÇD¡¶Ý*¹ªšˆÚãºÃÚ,O^F[x­¥Zžu÷ÄS¥Ã¼3dú¼löËÛoç'¤PxŠŠÂF½%ÔÉSÔ‹jÙÔqŽ pÔÖÞ=T‹áúšÞT&"¨D#´b›x†ßxèq¢à ¯âr逵h" Óku‰ÜíÂøHæY‚]vüß™š±÷öU#/`{幡™,y¥gšÇΣ¼Â:³Þ{0aа3ưÆô@ç¢MS›€çI©âĈ—2p9DôZ`Œú.IÏÜ ÁUwí+ÉFØÙ¥á, ¾àœªôÃça«TäR¼÷_ÖÅæ¯‡*¹;náRÑS¶lãçŸ&ÏÆmbD¤»í&ÇŸ&±[z#£µ™×ÏìýÓù¾€äÆAâdl=&Þ{-¤+Ù'M"$°`!#›ô¥°8‰I‘ä”Tì…¾   ©ófLÔ·‡%8 ¡š¹pÎ9`–#QÄ8œSI“®œõ:vz“u›é$Ðß$ÍššE¨‚¥iÆ7-ý›F¯sò¢ó*|‰Àª£DøÆÒNK* b‹Éh˜Åþc'hï 3MfC‡,\¤E&83– E†áîÒ¡ûl5|¡,¸í‘ƒk¸Éýš7Ŋ׻ݕŸ#Ñî:r 0½„i‰/³§@[¨Çt5÷ÈìÏmÿ û‡Ø=CŒ?iKvë¹õªÜ ÖËiʽGrHE ­ç*Œü Þ0*Ld=E!i3ÿÝÚ¹P ¬ Ç~ìí’ÛÛåü½ýþòa{xzذޭÆz°àr$d üíÒ°ï3x‹ÔYÅtÝ‚¼0š­{8g¶º}¤E¦2‹{ET(}ÛòF¤D$³s¥mC1Çä«b޹PMïf‹z‰)ÒÂYÌžìãQã[ÎÖ^:Ké ˆ|MTøë;ÓC.,,OJÂ]EC>±³$«9èìO¾3³úÆ8 ë8¡ÕêðjfŸÏÃeu9wV®W\à>å–4-š{=/ø-G…aRI’Œ“-¸{;çåÇç}w1 µÈÕJ{©9ªº´‰wB‰Ãꯄ9©˜¾ùVuOíç…&–jV;Ú4 oýƬÞÔ¡výÙ»¿¾\†uÒ\øõJ´úðe°s2eÉÁß²R\ûéø "¹6F €ÇNà pù‡4ddSû«¤Z‚Ó+%-T`ï·^™t¿Tše±ÍEÂ+ñQ¡°ÜëåÂý^Á Ê”‹:«VwsAámÚDO-ŸcXÅ| NòÙµf£ã8f?žÖ[”Û:‘}$OFc©ób»·¦²´\î!›³\Ÿ5ìF„˜õŠÌ”Ìo'Æ\­ŠT£sì~Wÿê~½mÍ(4hmU0J>\WÒQ2cŒü½/ÛMñ>7)ÄSDt¿ˆÀ€ÞÃö ¹&–âÙ»?ƒú'‹¾ÂtóéÛš%½Ög‹r®ŒÏ€W¾4RÔÄüweë™Ì„ùy¶„ ú%ü:üyŽ| R±Œõ"Ë ý#ÎÀØ)8ý «ÏYetŒN³€ðJNb°¤íˆ*D,Ʊbr$Æe¹ëëÇÿ43›öQ¤º}rõäûõr·½tXk'›Œ‡[W˜Ð¾™ˆŠ›B§Î]»éήЅÒ×  ì:Ã¥'¾ô°à¼1¹Jn7™"Ì¡J“³œ,h1o+™Õtö“]SNÀÖNd„-¹Öö»v(›mÿ¤•žv‘Ƨ©Õx“˜»2\yéBþ Žûì ÃjoïÏÛÃr}Ü_·Áúb0"VgÎX‚Hô‘‘ª2A¿S ³éE6^ yÜèP‹Q÷k( §ƒ79D|dŒ7IæZÏÝy§SáuEàBñgSTH±Ÿ{«3îCá&± ©¼š²DˆÊ³XúZÁÓ³Xþv÷xïˆ[xÏ.xsÿOÈö" !4 ¬'.'Uð7[¼áöëËw¿}÷gáÙ3<b‘Ù=0èKºV£KÅ®7"|Áê k ü –iùÝ—ó³ä ‹5¨ $Â×=ÐÓo‚³·páBÅQ'Ò£¸`Ÿò‹t¯ —¦ •#HÌË«¨Ç”“Î"Þ ~èPÁ ²ð™[¾š_'ìž3×ßuç§n×}ùþw:¤7Èœ‚o• Ýu_ g;¸î Rò!˜T‘Ô‚XňËHöqÏP1ªÞtOü|¿Ô·ØûŸÚ³Iø©3²dm·"ˆŽž9ÄêØ#EõT|LìĹ HœÛ`„ßl¶—å?»õåx^”@fÁÝõBö(=Ir“ypN°FfÜú„àá8°WKi+h|¡®7Y­ãñ²;j£F¬®têwç#ß­”®ú7* Gt;4NûÑ}÷š×5Ë$UÀn`"-FÄ’ÑÆÞlUß}¿ü{ןÏkí 4&ˆxeœãü€î¤bWpT1ªÉyÈé篹{ømEÚwíö¬q£$)åŒ_%‡à­r~HÌBR"e˜ Àì¥à‰¿É@c´r$¡e’LÜüí–é|Zþ¶d¾F5ËlÄ]ú¯ËñTÊJqÎ\UNäûŠIuĺ{ãõùnןÁNâÈ!U2OTÉ°Æ 5ì‰KeÌ=§b›øW¡L~÷ý÷¿{ÿØé¨AL7’¥:®‰iaψ IÍ1 L×Sÿ„Ç.¦‚£¸`½PjqýÆKö‡´ÏÀÆ,Pã/¬^… '*²rÖG>²µfkUÄ÷j¥~dž®ß·ui~7ŒÅTÔI—œ¡‚{ÉS†T¤@§ÝI%ÜãÜ^¢Oþ“¿Î„Ÿî›,Æ®íûåo×ë®ïu#FôOcc9qT†7ØÂÄ™KŸôûÀŠ—ü¯ñ‘ö¶«ô}{i—?>tçí¥½J¿L›° SCç÷‚úC«/½×&é¤ß|A´®(V¶XSId@úKF™˜s”à@õ¬ãýáú ö–7ʼnÞv™~ì.Ž›ýG‚XV+ÉÑÔ¯n|ÉIcäÕMpóKIéuÍÈèø¡·HÀLáL½*G…üWïywÙîa {-¯uø­ž†þá ÎA>‹– "õÞ«G.¶ÂGJUJ7¬×ÿý°½t<¢xÊGo=ŸŠˆíEFˆ_‹NŒé6rש·]§,¿;ƒø†ì(}Õq’ÖGˆd…B²U¢‰tä×Aå+¸JèݹÕÄJóT,7…ƒC3ôd.LµF!¨cïÜ‚Q¬9±Jo¨à*ýpØþ÷VgãKͽ9rÔüd¶¢yrý1[©Š!DVPsJäkÇÃÇÁÒ_þöÝ_„6÷Ç2À»‡ s¨‹‘âx‹,­;óæ¤üU¬Ò?þòûÿÖ¤J;ÙuÊ=É^M{MŽè„ÆJ:ŽÛÒd§_'Ü®ÑÿüÏ01íf+ÆöºÙ|ÁPt³‰@JKB.”ŒWEÿmCP>‘ËÖÃY˜PÒ›-ÖùËé²üÝîøéaÛëT¹Aÿ࡞¹WXÆ’ µÊøuRq\Iz,´2²¡ÞX4Á}÷»ï´+I‹hɸl‹`+„”,L¼šSˆâ @ ƒk+ØÆ,Oó+XžïÿN£pб£æÝüºBÔÈîQ‹t÷Œ€ßb‡î¯Cc„Õy·¿ÿc;œ¯ œ*çÄ':†­ £­p›QGäuœ³ú+:]ïÞý¹k¿h"òjÄ“­©Þç|aÝÀ@5ÄÚ uêÄ [X›6V}×úÍ–JG–?üøÛŸ×K,òF lŽxá”"hÃÏñ#šJn(ò`\$QîÛ¡pEÞýðûþ~9Œ¨}ìúm÷±{ayÝÐŽÒ­rãâH%/¢èƒvÃ<]¼¥ÅÎÇwŽŸþ®GµR‹BH;†±gî¨ %U¹¢‹ÆñªdRàäH©¤8=„¦g½ÝÁÓNÊåwín½Ð%%›’*2 iÉ}Éå REò YÕQ Ä'ô‰ a™Q.´ OÉ¸Ü 6óÚZŠßh±~lÛÓ°ZEލ@ØžÁ¢ögÐÚü…EÚâ›lá€ÑŒÖÔŒÛÞV3øþwß/¿{÷OmìjÒš†ÅM–ÞT&z“,ù%’±ùº0 'ŽeÌñý¶·^Ÿý—þß»E¾Ê HÂ1&B„•˜pÊðRÐ}$Ê{ÓÑ$ÈVE;v¾±P–é¯ßƉÀ ˆ\UOÌ÷7U0‘·f$ÿ„>ð~íX/·ò{ÄDyã Š^¤ŸÁ¼Õüxl‘ê:Ìeªë$—©Î<"tFf14baèÆ9-|ÌNyÛÄ/½DïþögÌãÕeZ[MOdþx@Ó3'P%œÑ“Æ_¿Ó°­·õ½éú×ï4DyØù˜O 9w¤ÏÏꃒ`J(ÛŠÓ-ýFtË8L´0ú}O„¾½èÞûމ_%d~qy·2ˆ>ê6ô€X 8”åÄ¥W€^Z få‚G>Øñ¼œÃTfq Êe@XáíòS¾×ÄËïŽçîÝ¥]?A*¸X5 ¾ÂŸ°5A¾/0IWú¶ËðîË~ó¼?i_S9šTÞ‚]ÏJ ¢Äˆb)½2 P8‡l~ÛEÚ&ðeùÇ«‚Á’‡@7§8µA¸×üågo;^Œ3Rœ@0Cy4âpzc… —èÇï1ÑK°ÖÁ-Œï;лóow’E±HñHä’cöÏ_r¸8ïþø[ap�‰Èƒ"ëíkV¨ÉII’Ä&Í‹:¥$ ÀÛZùŠº¬$ÊrÌ{®9ˆrô@˜f3ÈHòlÎ$X7Ýòíá÷Ÿ/çVë<úÖÉyÌŒ$¾ ìARlεiB·6™)}zÙ ¼`iÞT°˜%û??¼“ÒÀ©éí8Ò •“숰üÐ)=½i¢%OBìúëi&Ðæ³¥ú|ùàû¾;u‡ ÐZf#Xãþ#z`1B?#2^¿­ q«ôßUeÍ{VÝ ø‚‰òCCG,Êo‘ª;#±Ç‘mô¶.4·@C—Ët‡KKqç.ØH2ÝH~D‰ÙH#1ÈWÚÛ*…_4òÍ®[þÏA§DdÃ^’c©ÚÒ‡3%lº"ù«ëåXþñ¸ï†ïÐ¥¢€qQW ²0nõ ú5”-*¦Ò¤ÌWœÇ _Û.Ò?¶[ ¯FDOåa¿ú?ÂõX˜ FÎèŒm=ä†=‰Uö«ΰ@ÿh·À_Ü€I~k$h–8åííÅ,PLó«°$p}¾œ: pðaF’¡½0àò@$ç¡Ãñu4.zßVÑùo({¨/¤ñœl„înåàG¨Ã 6¦Æß™ä,NØ\ADÄ;¼Ù"—åoÿûGŒ^ käñU> Va6U^,}ð¿óÿÃ÷:×LðŒP%wŠJH«R´.‚],t¹2P™à ‘Ͱ0œtN Û5+ÞtWýáû?œÛÓm´BÑyŽN]æ‘·>'Þz«‚eÊeéOüñ‹ qL“1«êWi ˤ4½y©€íA_Uap¬Jbc•T‡°ßÿëÖ ÿðý?:4'4å)˜Z 5pÍxj±ˆP°ùÝa{²ãúÎ4ªAo¶>Ýåxº,Ü~†²'ÙX®É_˜ f¨þ …ç«Ã`W]† €óE£FÇ@Ô^ô….#˜ß>¤ŸøÕ©~•§ ±øºÕ  ñ€3p:§˜ª«Ã˜Ä>s&Þ<ñFcÅ…ûš8háøWA{Ãvy’~©?F•ƒÊXymhè§O¨5RIú=#Ñ.dBo¸”E„qk– D‰·³Wÿøÿ¼ün×AÂzQVÿçFD2J8FAS²¥èõ²áûË?ëXýzìÛ²CŠ öÉî‡ÃÏ{QÕÊ7úPäaez`¦}K(±æ‰û«óÀâ «Ój¶ˆ7sÉžM·Ñ¢­+¹`}ù¤?Ô ˜¨ÇÇ(–ó~Û%2ÜlJ[¸üÉ’ÔV†6ìf´$§3Bs$!zá¸r%„ ÿ>Be³tÞt­Þm÷§]+†ù ¯HI¯,Œzº«G\k‚s­ÅNÆik÷m=G°JÿhûNW—@Îâ†T°@rÎqBüj…Ò?ºaiî ¹ÓÄE†E“Fim­p‘D,Æ¿Ë$Ì#äâm3Ó‚…ZþþóI»û†Æ9âŠÐÄ-÷kn95"N 2¿¢gêÿüð½NÅH¢ZE|Ž Ëöœ†E^™ÌGxðÃ…Š™[((ýí”s\©s§³gÁÒaj†§ïS„{ÏÒÅÈ]F¶0¦[ÐYŸ¤¼¶‘·¯?eo|yýuÙÃâ|tu6¯V¤7´!i(t…p´s íÙáIÉ2{ëM÷ÐåËBchó²æÝ#ž£Á ò”÷™“Ô t$Aø…°Ð7[†Ÿ¾[þýÚú•ð`âÜ‚^‡§˜ŒðŸ#å{d¢ú-Ll—óªIéÏÔÛzÕv›ö¤­ŒŠ·2Lb§W–1³S„êrb¶`dNð„Ø­°ã8ö‚“D0в7]©eßï&VË;™ƒ†ÝI0Àt¹nnSÏSÏa{ßžNíyÔL¨J¡rA²Úó°E!UŒx0ý3Gˆ¥x¶;ä¶£¥&©  "ùõ{ceU£Oþ*PÛÃ\>}ú´Ôÿ½(VµÈG€È5f•d>%| × ¼ÒƒEËÀ„g‚-Á¯…BA‰œãlË= @µ¨7yÛûÏû.¡aæÌ…6ªóÕ)XÀ"*ê*#žè©Õ¹Tˆ–š6`R¾ÈéÏÇÇáÏûS{YkŽ;9ÆjÕ=ù/R;„T›ù‚÷ÐþXªx§&béÞÎý¤jø'‡l܃šÊ]©è#ðõ[jÌà±ßˆWæ SÑ'Ägé^œ'ªLŠ—8W¸Rßî$þØn‡Ý?/ìú¾}ìL(TÒ3=SÍꚌa³¸ë 5!‡ég é÷G2NŸ¤¥»Þn3é¥ùÇñ¸ë]èœËɸ¦wdÂÎ(BŸ C¶œ)yâ]U‰²ÌzVPµÂå³…Zk<Í+µªVÙHM "@~*Vá&!ýÿ+µ…øñ÷K %Q:Ÿ]vPΩR)[ møñ°Ø ¹Ï£ ¯ø¢_˜ºHÕ}NˆCaô¶EI`¥.pàŠa Ñm°#|áqÚaO‚È—d@1V‡µ†À/&ßx½t†Jo˾rÊ0ˆ^¦1t+ÜÉóý¡Ë“+Ÿ0¦i¾­âÇ?ÿ»Muå:çñ¾CX%a9²:ÉJp«@ˆKuõ·`m–ï¾Ö½¬‹²w=Õ S+ôÎŒÔI’q„raÜ\…ÛÈöy[XÁðeËG¬ $ ¶ " œ6T~£1Ƥ|„$gèIFY¬‹m¤7[´¿t—ßn6çå?ïÝXÚ˜›ªt@{ ˜·2„Úc ÆI< A+#ðUΗó¶Ü¯ÃBÙ@y¶ÊÕH¼ª Ô¦&Q›Š‘‚S¤ß¯OŒÂwXò‘ô¶D7z†]4\kÅ ®8'YN§öè.—6»¯¡x#üw#™·æ¸Vs}ôtÈx˜ïn/銃„¬˜4# Œ^º'ˆL{ýðv\o§èû?íý=¤ÆÈ¦ÐX:‚˜-p…ã: ny]3µä`å 8ÆÁ›EÆ•X@Mþí Pz©†öm¯ÉÛšLŒ±ä—|‘rÀ8­%ÓR#_9#ûó÷®;´¾‡õa²ïÔëÌ]|‹,æAh= œ?3xBÐOp¼¸´z •*Xª7Õ–ïþòãOƒ•'Á]Àó»›Ö×Zß·q•Œe+„*pÐMúěȄ|7³&òÛÚ3é\©AY/´w“Ùf•;±UaºyÈ­œ»5#·‚'$ÈL"µÁjÁ5,°«A¿åjý£Û‡?ìŸ1PIM_úÌÝ‚c0sÉÀÌe ¡£F2—ó¶5t†eúüÛŸñ«ÌF–F¾B]Âp#Ò½a¤{>†èñÎÕ|[}½•þõãOZÍäߎŽŸ"´CØ4'¡èï )ÇqSŽÀ4 gŸ5Ù?ý·Ö‰VÅB<üI„à‘ W¤Éêb.1ÿàuÁö·zå?µçvß/ÿÙ2Üëb¤x’@Jc:Ê"9()Ø0¥šj\Ü-¦ýøu°-AÐhù÷ný}ׯ»ƒÎ"o´åŸs–¿ðù—ÌNÑ£©ÂZÁûïú…IçävÏÛRqIþ_{:aJ½R9•“QÅVA*¶‚¢ÃäÔ#)5“A ã÷Òm¤ÞTÒþôýo—?mwG`yÓ6‚›Gl÷yÊvŸ“*H¡-)_ÅßÙ¿J>Ÿ¾ÿ3oWú^5Œ X—H¦ž;ÇíО‹œ¤§€37‚ŸT˜›Rr𙿥2 Ÿs ÀuœrXÀUÕ¼á*ÿ‚¸§E©sU5yªN‘ƒ7Eª¬NîõRŒ„/éù…H%cwÀ®l¹_ÇU¸ûûO:AjZ\ùé*‘<:Ý$ r{ Ãê/þ<Æ„C cýsq¦‘â&áÍè¸Yþñ²ßýÔÿ´yÀ¢ÓªàëP*Ä^yL`æÕ´¼o¼k3T­ã„V½:á„ Ï"ÂP€“ÀÌÆ·[¾þòn}ÞêBz]nó\ÙbÂbA¾Ù"òˆ—^’‡'1–ð‹ñ¨‹7¾ÿöÜ.Ïûå»ç¡y:öÛËöxt $á³é.a.ÒÓdW.á…IU EÕÂS飦Áz½múô ³›íÏšLû-V,Ÿ8äQ¾c¹ÃˆÚXäfÿˆâ>!ºEÂàg=ã#5™JCOÿVK÷n0w}‘x´x9ÕuAÝ&a |ñ5ðß‘#ôo{êµùëýÏÝú‚¡)ü+М÷)0ÁÀT VAM¨Ù(ÙZ\è×QûL¯Ñ»u»kÏh1Û‡#å+ýu´°*C¨Ã{pFª2ÄÑ_‚l ýàüÉ·Mð|÷‡ÿüN.µÝ.T3°hAî ´ò‰)d™ð~óC>Ù'³f‰~þ|¥‹ põ•a+3,‘=–€'”H'Xfp—3™îÉ›½Ö¿þö'„ûe«Jl;—e™î6hÔîÝfhdYôv£¢Q%æŠ1ï7xâ]­¨ä\,-G+š;™á£{³…„\ÕR{ê±\Þ ÈM‘¹a#Ìc„½ËÆÊ$½aÑŸÚ}Û÷Ãÿoš²c•óÕÿd詚ßt?ðZûv»ãºè—ß™§ ÏpU ±æˆäfÃíñÉ<‹áhèÉ%é ‡[bÍÂaˆo·Eÿöçå»K{éöèòÄŒj¶ÀÜtNÊ) b‡©ih@s.súÄë‘âß#¾ôÊo¶Tÿü‹7í4´7Ë´‡8‹A`!+„e¸÷| TþêÕK‘Î,xÚjÔ<0„q…c2ˆþ…/’A¨µ(ˆ‚ Ðh'ôxÉUd õ{^³tà–Rcá!ÛFór¹H´•Ñ'øvÇóÝyÿ÷®Ýü©ÓÙê*­Tµ BPVγÇQÆ)ÓÄ·PØõù³&ùÃáKô‚uï¡#Ì£$Pk%XS-X}à} #µSÅ»¶x[—»&×^~÷¡}×Àõ>è³|,PE¢ + cvpRžSÎGòúG"^o½ô ½ûçû½Ó€VE#ø¡ $D¯ÈFHÈé‚â×h„dû×°¾ïvÛýÌ9Øe;"{gxÄíN©š”­\Œ*Q~é‡õñðQG5)+ç¹#UOH#•/X±MúÃsö¿¥h,ÏŸÚ§¶ßºÄDŽæFé<´”]¡ld…b§øÂäŒqœžäõ×ùǶ[~×®?Cm5œˆ‚ÕËó ð@šÂÔ–ðsRóJùUõ'½@?|þcÛÀ´±¢nx¤Op›Éä6ûšâ…qj A‡ÿꈎþ±Ýwß·XK¾c8?­ä5ଠ¬eðãK&pGx•h,è)¬%óÆ\¢z–ß?Ÿ[†‚›lÄÏ«|dÀŠ—ï3’•‘\íö817ÙH Ë[Ÿ²a…Ì7jÇ^¹Ê.„-E×x ½°4FaôbÁÆ H¿ßK#U|ÆâçˆRxÓ…ú©;o,¢¥†µb%¶Ï…Ó[)¬0k§Íq3ÑÌÑÊè#Çí÷ÒÓ¢ÎòU6ØMR²%HJ H²r7ÚÐÚuE1?õ»ùìÆ’ «0`ð虗映žsªw !.Ÿ4xñ†¹,ÿsØB•ãÛSÜšMÍêOEìü>vŽ¢ðkÉ 50¿\Ôœ^<ò'5q$8(ôÈÕø¶iúv K¢çÚÄZ,^I/EÒ+³°f" äÄõ ÙhÉ1é·^§ÏËw_úÝñ2òôðBÀ¸§‡—å~ÑÜùä©`\P£JDœzý«jÿó÷´Ÿ¸8õt*Ïõ Ár=ˆŒè ž "á¿x‰/ “ÞΓù»öéïËÄ#ip1Šäb#±0ÁÄÂ~•püY¶üþ/:|Ð,TÅrÌHœ$)’“TÂøçàøSøMò¶q…ýøçå÷ý«E*VçXÞØ§ÔO  ×r\à€>!`CÀÂrÔ¬ÍHd2;]S¯ÔŸ·÷&°x6Çé Çdä  DÖŒâvTðˆH/#­ƒÀ¯ƒ-ývìs~Á–ß÷ÈW Ô¢lx ]ÿ¤ƒgæ <ókŠkŒ°…ŒÀ7–Of•Þýù“û*$ )¹PaÔÓ宅ßb‘¥ÄíÓ¸°·Í’Ökô—vßõ§vݽ{>ŽçËd-Î`¨BÙmå=gíÅa¸EZÖ`š›àmµ¢ù’dƒ©[‰óðâÝí«×£zøçòš¤MGL3ä q$¥"\æY¶`33±˜ã›®Õß»ÇßÖʃÑ×Ù'9ÝK"‰¦¼¾ÞÈÿ&ö9½:ï~û/¼XŽ0¤Py/ MT³4w6ãW!O|´@‰ŒR0Py[(æ¿\U;lVx1‘ÄÓ×¹/Â|N˜±¿Â#í2¾Û Ó$ç7Ò³óÁ"]Î]»Ÿ‚ôª,,[£4 d¸@sŠãá¦O<އÄ¡ìŽWÒ¼­¾ôÏÛ p” c 1ƒ¢¤ER”4÷ÁÿPpÇ »gþ7iÿú©½èГP#T)S’ÜF’HÇDœoY879ÚÇà‰—äðŒ—<^XG€aAxÓ¥Óf¶ÊÇH³fç$õc“W¬˜µËÆj–dœï<ÃdìÚ!u Cèû¶¹ÿ÷[Lö"™‚D¤Þ$áo@8¶àÖ- Ô…#O¼M‡Q°ÔX T᷼Ͳí·}YfYV¯<°ÜâõÐÇ BèCËf• héÒ«M¸-Õæ]ùmß“šÈ_!϶»Ýóiy18Ì[,Rß?ïžužTP*¡â ÞMBämsÕºÊÏ.¾’ôž¾\>rU&ÏÉé¬QNùÞötÚmתíÃÀEx¥Æ¼Û5ü¡S ¿cçíÞÞŒºøMË] …Ée„»Ý³GÐ6ñ'½»ãºÝ…¯íe{¹?AÌ Î¥/«€¶‘6ñHˆŠ²z#5Jº#O¯÷C?,ÁöÞÅës>ÝÝPÄ„¹ß©îx§ú,Wçk„ÝÏ×Oæ²?ê ÀVaw Ü6^Àж1@WÏCþÐÀ‹ëšSŽã9¯9¯Åª\ü\*dÍwÂ#hÃ\ ݃ åGAu$¿ÉÀeË•1öíòúÚþ[ës½hòUÃQz+tÕÅoާ ödØ#¡çiÓ©±nƒ‚·÷‰ë÷³ÆtZÂÒ?– νuì¿rî?=þc½Ã[­*fæ%Â~¤ÚÛÃz÷¼éØ«¡PÜ«- òž3ZYQ’ÌAÔ_ï¼ßâÚwû¡„ögíq+OxPª M‹6REù‘‰n.¢ãfgé̆MPÙt¹«gs< ¢17¼„Þk Œ:Âtmî‡{Mø'³F¶¼o×OÝa³|ìÁïÎËì½È&,3Ÿÿ5–É~‚t'(y2´žW g¸é>v»é Áiö — íŽŒî‡ë² úÿôýïÿÿæÞ¬É‘9}Ÿ_Á÷kd€X¯¤¹c2-ç˜õHgîS“ŒÌä$·â’•5¿þîX€ƒYÍ`uËzÔ-Lp_?‡™— h½Rë;²7¼tˆ©$ß^°NÖtr³ÔüAsFÑ &¥œÉ&µëÒ6¾É,?¸}œ{®Ê¬*Îz2iµ¼hÞ°Ê$I06ë¶N#mâ;Ö6Ü: 9!õ´©®_6{¨ZR!”‚#ÔHå’*%½A6Ÿï<¯^ÇÝRKÆv(¨9 õ¤FCÆ 9µr(%AÄx4mÑ㎞NXÞ?”‹ Tˆµ„>Û ïªLqƼš Òð“:…píÍÇny„¿éaÓëŽ~áùpݯa´îÐ4öG过l¾Ýìßn‚‘iq ¬ÂõŒ:ð~‚¹XeRs‡GŒy±[°6p¨*ðFZ‚Ÿ'ü¡Å|¹{Ñûq9}7 ìZn‘ýBrV¦:¶†“f€Ëõ›B)ƒ.Ä«Øó´>{ËÄ¥Ì_.oò“õTñËNš6ÿQsùzùd&MÍ„4q&M5y&PТ՚«ªY/µlœù^jªi-9CœÄ* ¯“¤Ü¥Á}¸ß9à j{—¹"cö½´x{™ã#n´yU€¬}¨3›4íúó™Ïl7½§Ë¬çˬÍ>î.}ŠB¹w‘Z<Þƒ7B˜ÄE½[‹Ë\(IytãÅ]ÖçߺºŠ‰Âr„e èʉ5¡ƒ–g:ÝO.;i”v*9#¾¶Ô6pE!\©¨=n¹¼äýo)šU°ñbHf•ÜìX9ù°{vR ûæÚ:!B OJs?[ǯ²ö'GIJPŒŒ6‰„Ý¡ÃKÑögÄ¢J?b÷[ÿªùççÒö×ÁøÉë eæ:$Æ=ÄÍô¿ì; ~`Ù–PÀJ›)—÷¼[Î/ú–óå÷¥ÖDI`mÚ¥;j#AÖë48?t÷d—ëe% :}ÏA“öxÁ¼1î°Ò˜ö.;H›–šóÔIx†LÖ$V8y}zÜ’0ò|Ø_ÎÞ˜G}ÊVÁ°½£/)”iî¥Øn³Þ€íÏœ|\F¡ ´Ðʾ=u *í ü…„ÍiZßM˜²ª:a‚”0™œkÒVÒu/iÔÚØ‹摳–÷3ÆRKÊOÿHLFÞ½Ä9ìj1 µ0K­LBCß–ÝauíG˜’iw_ÚWT·‘ù§£fÖàO}Þ59„.74hšc'j¤©FèO;§wæ4öœR@¼ÊâxÈia¹ÛÃXøa}ÞŽ×Ë+H¨ª€<(RÐlÒæ¼iÈgf4ÄÂÿÐ;’úÞ¢àBÝõj$·Ü˼^ñ)MÝ4!ƒ2aøþ‰7ñ´ˆóýß6FÇfG»«rx›¦åš†ÿã°Óš0Ißùûù2îèÉ…#½Ì»NSMÞtSoX0ahh HÌ!àâdéTq(*!iMe\q›Ž£K/–ð¦Ûü¸Û¹E»Íy5ùøyÍ•|ò›Éñ‚ˆŸ4av¶ã3ÑÇÖ΃3(xpH¸|Ô.ÓíJ©éHkíóP†•”‚¥ïnÊûÖY¡‘3¿9ƒ+¤k‰~”õyýHPÞ;sX³ê°cò ÛØû¹•?[6NBa0 íµŸ:û«pÚÓºÎï’JÄ¥ÞY`éÇlÂ\¯ô|{'zO•¸e¯íd¢N(\E˜‡I"£YÉhçlûsÒÒº‰u^œß÷½Ön ²·eݪ3bk'-”±YY Õe—×Ëá|Yž.xØõ ÔºŠŠÕ¢_t%Ï=‰^IÛ(ÅÊòÃÜXEÌ!°ÿþy_t±á^SVâOöà©ôu#!dáÊ:ÃUrc&k*N™ƒòBJ5Õ–h~M EÉŽCÒ"z{KÑ^Ó<©‡óæã×Õ ±…*Åj\2hq eK*†‡0å«u`÷ý“5aÄ:¢2qKZfv‚Qb\P˜.¥tt‹¾À&,™´àH"Ñ¢ÀáHLâŒï&ÊiuÙB„ºj •#õV$êm”«=6{öý§ô4nË5¤ˆ^²‹¾¶O¸=¨q ‹ZûÅz¹Ù~“ÛÛÁ¾ôhH…3Ý]íâ×mÐ4ž~/ô$Z¾u ´³ Í̬f@ͱb– ˜?BÚ‡÷nÒnÞßMùf|Õ¸R;]‹!už¶pìLã?ÇË·Ãéí?–ûåËxŠD2¶Þœ‘w<¥ÏƒÛ…†ôm/§ƒAþgœ6ª"¤p;ªmôäT°´`'‡IPƒÕ»VÔõYòEcwïÄaqC&?ºï9±5R-47)–­üÆ:Í4–rX™Â¦†¹ª üf«ä!‰¶m–œ1²7FIæÙh oÀÚLz¿õzŽg( Òó˜ ¸Åâ•ÍŸ¬4ëN"Ü¡7DX¿dú˜¾Í~¼¬é·þØÔÊ…÷4Á´G×!(¸,¡Ôêì6ÜJ¨÷’è¬æ. Á„”kÉ‘ÓYÀ€\I“ÍûDSör‚ª øiâïธOpÞr¶1S› á+AÙÛZÄhӸ׉GÞkQ žh5ä$Á+ÆŽ—"‡x§N ÷Ýïl\p$³Õ'M!?–Þ •ˆN¯1¹ï=Ý%:È”Ô9˜è]t·Þ½¶Ëa\k½G™°MÖz.ñP!Z1êàp+ÁcÒJ-P4†%P)ÞþÞcøw§HõÒxsÑÌÆ…‚§)%áWšJš'¡ 1œñºõ Ò· „†C¡ªZÔÆ ¾H™åªT[5Ã%¦U梒«v†_PКb㺼ôMÃû+Éñþº!?ž¶}<‰[¤·ÆK™Ì`ÍlÞk‹QÙßǸŠb’1Çp–ÕOºù×íy\^×›°?ajαáú yõAkD›70@ó(q+÷®;°é`Übîº5X–Œúu“°k4P ‚óÒûf~~®'Ÿ€ð.¥ c(ÊáYѳÀ¬Ú™:ZîçU~7æ#dsÌW‡–±oîM¸EQ£¬u”|D³)ZG˜9f’ÌŸ¶×ñr8@PRyò*š=i‘<¤/Úp†ÉèÒ ²õ@hÂ͵é$n…ð¨´/>¼Íïµ–íæ´º}ßÉ[e›¬_ʃÓ‡ùÂómCrDÜ Æ¶´/š¯}Ø|ÿ1j=ã³óÒù=nùIg}ѤíèôIû(Íמ½P€¶‘Ó€TÃÇ›2"í¿wîßÖ8g£Ç “‘ÃÙº:Мz§¸µFàPF"‡h¼ñyyÝ^PysŽM§Ð¹7žX¿;»:è²?2bÖ†ƒí󸺞6—ï‰æs?_Kˆ&î>{ò2¦~<ÊûDÛ,êY`·„÷”ƒJß1âú¬0‰îw‰}{‚`Xû‚÷ŽÒäH é”G•ÃtflĨ¼aº_hú¦·œF`a“ú?ÜéT\y¶]ìK]™¤¶>Õ!¾9Ü·¾ŸU)ì‚J =5äþE}_½Ž«7ÈyêÒ3"¢¯_TÔ.còt Û5Åt¤hÛG@§;0þÖ„\Èf4l}t^`2U¦MyµÜœJR@ö‘ O¨˜t%<¹9Ä)2LôÀŽ?Ýnà+óafÅõ´Ã¨A2Ö‚ Ìç«}‡/gm"T»xx¦š]™V‰6ÿð¨ÆùÇ×Ò"ÜÒòsÍú ‰ \eÿ€£Åƒ³)st‹çPðIÞmÍ8ë Ÿ6áõò2éc†ùt<ê‰I?m­„ Ñ—æ®V(fbû'® îÊí½kÕ ‰žY_–4D.š“ú>¹O~án<»Tƒ@M·*½Ég¦‘âyõ²1Ñ Õ¢L©;Q‹ŽÅ•™ýf7bãÓbp²/úPšz þ†S@2êÖEÈ-š¡D‘ÂÑ©L‘=Ü©ìÀÇ_ÖO»Ï¥ç¸q+UJŠçæœ 3AäBš]è§Õ*F!Š;‚¬º:f¼?Ÿçs¤s³O$M¢Í(yp[Él8»;Ô­’¥<š:C·;~×ã¨Û8ûPÏ3 4 `àQƒ&˜go8~¹ý% ^øýÞmœÇøq9-Í“'LR”ÐüE1î¦NÝcÁ„>ðפ+œçG겉'ú@Ø]…@<Š-Ì´ŽÏûWÚ߇2iž†¢uÙ~DÇI´i渻‘¬î;¼¥&(Úì'³›2¸V“f8²Yg|`å´ÈG;ÛºeD É“wò•¶IÈG»çfK†ƒˆW„쟶²ãr§· Ñ/*Ÿ’üÐ[ýH‹<šþÅgÌD˜Ùp$†“ªi€ vAßMÔÔ? _Sˆ1¢õ—Ò6¹7¨æ•ï 'A3Îû§.íe¹õùëAã¤íD²> EÔꃸ0±R–œEò‰p€kÐ8"Ù!þ³èDã cû§æëyµÙ_6Û­±a\φ5µ‹ ´R¢*êC—ŒD¯N¢CjælR‡Ë× þJŠ.îÄB yžjýj¢µErSÏ)¥•Àüî:ðפËb"Ò’1Ag«UÊ b­Ž“gÅ&¤q \ÿ†!ˆÀârªœ¬ ¯•6dá‚#I=tX‰ˆ’q—M¬é2³VÉCÊì=þIG‚C¢"¯ˆ#K›rPKY t’å¼¼œÛwDê…8–·ÈJE™Q;°Í¼7f›n|✵ ¼Ü‚5’õWÉ–È/i›2³ÙM“ '¦YxÙ¹°72qq›£>§1–ýfˆ¢»hÓžO*G-n!mžaùŠB)„O±]%d¡0¤xˆñ Œ¶7¼yÃ`9¨%PÔ& Yo0<„_¾mΗq=ëêbtXæjõ Ær»¤gn–ðaP7ú²Ê–|"+¹lsUÀâAô«Ç`ýn‘D |)ZRŠ3ê Ì“ëwbW{Ì´¿O0mcT«Ydôfª¦÷PÞò•,¿ñ'‚Å…¿[ínÖõ´}9-Ÿžô[ À¢­µ=¶Ú§ªãŸ¨}ÃÀÖ‘”Tîu ãaÁ…•ö!+ß>þò×3˜ÑVªæ«Ö]ïaXpÚG-/˜Ë'êØ×úíc®†ù@ð!U-@ËB%eŸ 1ˆEÀÕ¿v#ÓH…¦¸Œ·Gx¯[BÛeå½1ÃrãÓfûÃqÔZÁxz^®F}œ‹¢ŠCºFã·ç¾Q;¨(6ʼnƋ™Bî%œM2ó›­01Ƶ±"s[Ñ @×yé>éñOJ&Ú«ÂÍ´ä[<ƒñ'ÂZUWv\j}»sÕ_WF½3aƒ,°>V( f?Ò´‘à¢ò ´"¦ÒnbÑ乬œ„.òuÜ]Êóü¾7Ð7UgÊ~-—“Ö B°OÒƒ¡üu… Z ]ž­€‚ ÃJU)'Z¤ZªY‚‰±ĬLÊý’¦¿ x6·³×/kÍÅ×v}•ò‹Úvk³>»·¾ÿþ)Þžœ¨šÊæ9g`@"ÏÓÔŸ‡—º‹NfU+Pó²$#q'“Ünû'ìºüo.º3ØGðWh¾Á¯ÿ ¬éu$¸T*[z>Òz€ôBÀaË>‚{BY\Ù@.Ž35¶6yˆžŒ{Ü)¨‡Ô0§§ !‰á‰dÃ-Ó 5ëwE_\nð„õkq{ݲÜ^P“¸'p&®ß¥²‡±)“ý~þº½=Ý&#-wRãwJ'A™©=DãíùuÎs'Óù%=ŽNBB2óÓÛ\ÆÛs«[­Ò¹%=vnõ¤l#3·ë~óñ¿þåŸþù“ XEQ´07A×}÷ W×ÓûèêÀ5€r>‰Ž`¤mb‹Iƒ¢H¼ô 9l 4(*ýœ½þ?áÅ köØånåÜÚı×ÍíMÒE×ÜL ¼vsEdóf€ ÅÁb^ tgƒ*ºõ,ï$!üSœC¢% ã¨GGR«ì"œyw4i÷OÖ”¿^—//K,Ac’5;N&P-Ä!Ô¾Œ¢òÄIÁÝÔrhfÿ‰ËÄ)d"…jQø"Y#q)W†[5TÕqpR»”å[K e烆Ìò‹ušðBŠ:sÿeºnVo«ånþ¶;Îmº5¨iÕªØBv¿š½è8da%Q&³§ˆ6}R¾¿y~Zµónîs¼Ãgï_ L¾³6—ˉ;POÎz6ù´<¿þjrÖ¶£‘lÌá ¶jóWxoˆýIÐJ ž“Ä7ÉÌ(Í÷‰³!ÊÕ4G„pªŽ»åêìw»Í”FdÒ4~ú7nZzZ¸P\â_¯ú~AÄܬlÞ‹£CølgÉîgñíi)¨Œy`Úôvª¾­ù€¥žrŒ2RE* _M3;)% (}è‘¿[=-×ïk—•Ç%Ú·HUÏš 5§CÄœÐa`óîUÉíh2sz`Ô&f0Îí,ï¦Òñr8ó·Ip—=›ñ‹…YC,mߨgE.ܽN‰äö|R`ÅiyÚh-¦²¶_n)Xé† ´“v¥¯I'K¿"Í5·G.ª]ÿNrß{sïÖ‹ôñÀ·õÀšùeð[ càœ¼ ’ÁzdÒiuž5ú²¢ea0z̃ó1j[äqˆ Ìd€¦ä“™EÌjÚªu÷.e=žßHŠ2.ãÖ®ÁBþ¢6^,U¸YhzaDÃ\zºL7AÔ‹ ø~&2.×ÛÍÞåë5ÂX՜ӠÈÔrÚ¦9{!«Ìõº±¥Ý’„àFDaõåwWLRUÃz«Û«lØ´®WÖédêDát*àßi\ÖFÿog­lÙ*r°x6ŽSDnıɞ/ÁS·ç‚ÊmÔ]•-döXÀ Õp›Â!Ÿd9›óxz6Ö¿v!Œ1¼åCÔ+̵­­5À&ðþ°qI¨TÖçfŒý÷Nys¾œÆË啼Šâ,œ'$l4OÒÆE°U50Ó"Ú¹Ø$™¿4ꀚÿ|ùkxv:vck‹({/5Ž+½¡. n0›&cEbèæ!ðqo£†ÈÇè°Iˆ”ö>\š"+rEp~w)ð¸ƒP:©e&¶úV‘n¢éÿdëë΂6ïgOéHqÍ( ¤êªX§«[RÙÑôL©ÛZ)#Wk2Æ™‘ ­9¢((\ª âGEe› g‘¨grb::žþ¸ ²ëÍmâ~ˆ—¨ƒÂnPqB Òڎļ½ï±bô´%XD©°κ«B&KÒ$É•ig’[‰Ã÷Îôl:õ j»n!.¡dAˆ¡Í 3燲PL»„à= €ñt~‘só…GƒŸ`òk6z>”3Ž[ÎÆ—‚Ýö‡¼û¾tÞÔàI¦†',n“Y¥4u¦$+7AQ‹[€pÆÈ”Ca¿’åxßÜÄ*¢'È«1µ+äLõlB`‡JkíLm­þ?U„odËNð@ý–.jU„0¾²Z,ä )”cº*r]Å,áv/i®Oß!¢[;S݇±‰µ=䬴ë!é±µág¡<‰=у–Íê¾3°sMGƒgÌÏíᢻA"5A`†dÄ¢Mgôøxk#¸ö pî'ÑÇûŸÕ@æUS–×>æXzVu 2Ú*–“,(Û¨_ÿj~÷‹‘5ov–_« hBp'Ed6G†n?üÇ’ˆ¤)i6hu­æ<Ü€´@S‰HωÊð@k«ÌÖÓg;"mLþΕž—OËïÛ¨9JËÁ ßï1»PÂ\ÒŽÃHb._"‚,åC ìåæhÅl¾r+dÎp•ÌìÀ4Í·ËýË'TÈè8cÜA#å²nºÏnôþo•¢ÒBSß°Ḛi“&^^óªY‹HΟÖI:÷y¹{Zfq¡Š¥ÁÅtߨ^z^ÏU~öº1nHøõïø¼=.NãËçO#‰ü¶å ·)± Ú£@qꉬ(ªFå;c¬q gP¦j§+4‹”ƒ‘CõF˜d,¶ºÆ`¹¹I ŠEºhZLÓþ°û‹ ¬I”¥*ªu4áœQ›Ð×vß/Zá|VÛ͸¿Ü:„h±ž™÷†ã³Þð‡Ö£¥‰MRµƒðVwŸõíÌù¥å˜ì^¹‡:¯DÊT„þ=N“Œ{À«>9ÃõÐbb/ê*ÀJ#&±S ŠÕõxæ´;o¥o»¾6* à‰¡fÿÒìM÷ˆvY}t{ºSAÝŸngœŠPòDÅÇ[QVñºi‡Õ[l€žóõI}²5€žÛ¸N½­=×ɵ¦þú·ÍŒm7®M{ kwk‘œ³ÝäÜäÊÓ^zªÑU<Ô8ìŒF‰T Ç®£U_ ii[eùrzÐÛT!ö§ŠŒØ`îf`mˆÄÈ }1ù»øù!²Aõp„´(QKG@J>9õ`íǹ)ï=î×gvôKW+¦L‰‰mª<‚Þ‘I¾šâAmêù¦éz^oÒnó«pâÀ4Üv·ëz|Çß&Oè;™`ø´ ‡º¨S‹ªÇ’–”¶F¿ž³Ñ¤ “¹^3o[>9š ·Z)É8»ÿF0]œÉ†=‘j­ì9$˜cùâÕýP*V(ÁsYfqbæçÌÐpw|Lt~ì‘&§ˆ«k( Þ¥ó_ܧ]éÞº6Ô –±§åyÜú’ðŽÅ„X$Kk¬,ÜM(ø¯ÉŒ²0ß·¯úÕ¼—£‰Ï*Óå¯t'aÊ„ŸO‡ý%ÜâZ¿Ã’ )‡³HÂ1hÕ‘ÇâÍlyYÁI…À„ə›üž_g ø²-ºpÑ(Ü$’T ­ÆtE¹ Ùš&aày˜›òp,@Ô€q@ÿãä](–Wëü%}ÏË93Q>h8³v¥÷:_œø§Vã·]æžÂÍé¨MBAÚ}V`ßÿ–+aFþy p^sLÏ_3ÝA‹»­æ­ÌýJZzÀùüó—ëæ¥zÜDE‚–£çeã+$¢ˆŠÞ­ØEœç®QËÈM›’ÞGxéÉùxÞà­U¦ÆýÐý@—ÍÚh}7(#lLvåKœ½Î‹%! yì%†QVI€7ÛïÆòÃaã¨Cÿñú›ûâ©—kn^·åÇmúT±¹TˆÀ^݆Œ©áé<ާmÃÑ¥õ‘vvÍÒ/‘ha¡Ã|ÙÜ@O–?ýºçæ‹o.¾ª#”䨲Pâ>¿t?2e¦È·o̱à ã!m[lØ®³÷uÆÆªb÷½“~2Qˆ`Ê„fbèž}^FˆÆf` Ã"rX"<ÆÒÏ׳)½¸Ù_?ŒÍH™\ýÍQ:4W8ŒiÅÎúÝÀýÄÙìæçç•©¢¥LH \.ÁÄ×xŽ„¡ë%š3yê_`Ø„!ÕÄÑl='Ѭ(®¥fC9:aH!‡ªÓ¥áö4À"Rq®îv%ëgÎ,ã6<êÀ¿q½÷nÆj³ƒhSGJ,z­QÁeêüN´~' ”|+ô¯`•ôñFNR–‘ô™P¥@qli–L?ËürZC®gBÉÎäP M¸êÓ:fRsîšEAËÙfÑ ÜÕ娰ܫ —r9¶óÕh |Í ÿãqh1ÆÑ3BjðaPùÊY@c•twœPe¹¿¼~‡ª*õ¬ï`­…°“PfÒ03ú¯—Ò=%Ñ#`{çP˜ªd–RKe¨t– àx÷«ÚfºO§ÍúeTj­âµÕ¢amç àG;F~BÇ3­¦.ú*Ûl¸YÝç½r#ÓW un¯º2TûÈ8àž’>r-ûIiªt¦_/ŸLTʨ$m:)F°‰ÈI·‹è’N‹Žè¦,iµÜï2€ŒLî"wAk ™ù¤If)é"“ÛGGù«£ó…€©ôê¥õé=+šNˆ×ñÛfÿ¸õZ Rúß\Tͦ ¯Æ̹×ÏKË_¢’$M<¸4qÖ‰FÌc:³Îzn!“ÀúÍBö#žÊᄇº£”¯S/ý,å<ÿ)ÕÌ„ÿ÷rÿr] ÞîTS6è<._§óhŸ•)¼!ØÈÁ]U¨P‡Dx&øNLI4BMã3೘TÑÜW[ /y› PÄ6!;møAþ‚¼M°F•Ø8&)¿ë§ëyNBP2J ¨×cXµÖÉ“§Ü …‰ÀôǽÔfn,œˆHÊõË5v%ï7¦Úïòùîåm¯%FÕT^žMz‚)ëÙv$Yx±Ì¿«À¨åÊ'dº¥»Ãþmü&Èeàü=µ²rLˆ¨Kºˆ×G!爩Üï×—>$ 𨥩’TÎËL’ñ™¹Ù«pŽüq\_5A…vsŸ¯&dà|W[¦X×…RžIÓS*ï$T Óg½9­nÎU+`ÑsµIÐKÖM×Ožïn¹ÙÞœp7ÇÄD ì¨)¸ÖÊy_õ†o6Iä`ê|û Á/S('A²íV¿ «·ñöIëå@OmBdÑÖ¹áÉ“~÷o¦&ÊíÍ‹<ã´I6.íŒçk‡ïžïÚ{-ƒ RsÅ}€ÉÔ&¡µ‰µ«Ö©¡8ïõ@N¯•šÅ”ãK¬TÀ(•'B¥½{íûõóòvHµæ?ŒÒ'!@zA‘áLc÷2^.ßÿû-(!ÔT`‘çRäVH%º à£%ß©h`¶5ý¢s Ϥšñ¡“*@™‰ ê±Ø½ãå= RcQVôÒƒ{%Ë(bæ[eË„„uV„¾åõòúi-Éï6ç³aA4±#G«ðòeèþåúËŸŸ7§ñÛr»•æ¯ÝÇœYmâ±]?²“ÃR1âŽF½ ôr8%¤SxA«Ã„C8AÕî."ad 5B@P»ä0¨m"Ö 3u÷û_Àxb¬Ôšþ}ÈDfB)?ƒ­ðBHÙ˜~s úçãá°?Œ]ˆK±ûz¯H±÷g-½Zü;aÊMp>¡õ3w[zpÝæSï!z¢;i“ØüO•¸y,ãDÖsF.D½{ý_[ß³®jœ´ç?ÙrÑäž¹ßÉ!ÝL¤Š×W2xH.òóóåð´;B•Z¡•‹EËÄß Áï·0½š¯‘hö•$œM -{Q¿^/›­Io—šùI¶” ²q}Á9÷ ÏÁZ> pŽàaßò¢aŒ] •æºÛï_©ù²õ|·ÙsóЛ8# ®dPH ØIOðÿçE3: MËщ¬r‘,*xMÕ„„™5ó4 úÂä©7QiÆü=hx<êEkÝEËY…À'T‡€[Ú¶ÕYÄŒ)hTƒV¹¼P“·|Áj°y89¡&Íž7Û¤¢¾ýÝu‹†ÓÌ:Çu3ìmó™ë]^†gѧ êóc$(9‹Ñà *+[%µ5±²3ctw¯Ü„qÌW«³qv #JN…ªs$Üž¶ñõ¡·½Œ§A'§D•&¼jœª—›½A Ô]>$CÎˤce¾ôD„ºm­\êkFEšVðb"RÍØ@)‘&tè¯ðp¿6öfGý-DÅ&Ž¢e´V¡úœ1i’úsy·…aµÔwG ²ð©i £æuÆHªWã%Ì£Föö¢ l°‡¬j&:²†Õ2ÜÀBÏ“¬L0jV\Ž.Ž{o¬oŠR;ë ä4‹•ÿ:5¸>玘&~øÅG)qzñ¬¯E…av´ÊÖžv£ž*¬<2±©ôŠq}4ïç»îãú úAÅo»…§ùmŸ-=ë Ü׆ž2W¥þƒVo ø†=6 +j¯z_t/~Që&E•ÌË3´F®2 Ô ¿Ž"WšÃwr58ì"Õ;‚p{~ýbè„«G}ìÎö´‡T˜~!Ž[ =Œ¿D4ç&H$D$Ñß‘€æÂ_Àæ7Ô(Ô° «ú1õ‘‰kÁ!Yˆ·´EÅ+e¯8E—>tÿ›µ[ž.»ÃáDš…êªmŠÙ÷úˆu°ã€²¤ ±ëŒqÅÅ`ú“ÔÚãõΤ¤Vw†Tã$­Hžñ: huçË%5åôBH†»É²9ϧÃûf=žÎ–Ç*A ¬›µ×L•¦<$‡F€tU©.©ØÖ¢ƒö§ZgÒ.‡yáúï^ññäšá×_þû?UAkà¹pÁÍrVCRè kKÓeÉû‘èlNq5Oœ ‹Ì¢@/Ê®\M’•°ó´ôûýßRäòœ'sÇg˜Ä«wGk!Ð|HÍz6. Æ*WÁÙJÛ¶ÎBeœx©hìàr ºäH9f ö™û•¼ýrõf|ǦüDÓòXéÄ|¡ÈTÔaoBßõà)-k6’Qmz°Œ9ª“È@ù¢M¨'•–8ïwÇùnód8¢)B®Xgcƒ1Š!Ù+êÓm~ »w¦úí¸`™A¨zYsi^(›‡²{´w ìiù3¦†ÂIyþž;khp¼{9ÛåéÛaû 8´}¿èØjÍÖÑ@}Ú“dzÄo F$ж¬)ç!á4¿&ŠyXÚ2ër¨U€¾øs¥ާåþ`…?>KáÃbhÛš“” ÊÂü“øk_ÜPv(2 %„ÒßlÌ—RÙÅýê÷óYü‡:?k-§®o å×`”%Í@“*Ëð÷4©øÌ„i‘NK2;\õ²þ~ݬÆï(þYnññð˜¯XÚ9 ØÊ;}À–H]à †šÐTÀÜ©­@PºM¹YÒËnÅ*mªBݰB=¦Ž6 ΄öN½€áÛH Ua/d‹¿§Há¨'ð"®ßÇQÙ uAUPÀq:&Ê‘ãîÕ~è¿^ -ŽMiËiU¢]ÍRuƒÞXc¼m«èn}|~ ¬K_ :ã6$<1ü7*qïÚK}Îú›=¢×<¸½j-¤Aâ»Y?\xêiáPç?fïXG0 r¯#£]7haúƒÊžõ÷œ_¿CªR¯ÞEÏÝ ìC3°âBQ‹´_¢¬â€,¢/Þ íOëBïyuÚ/ç<ɯÃ0ÔHPUQœi(ë—‰H²­KÈlmjUw— öÅ-ÍX>Zëa¾—ö_·›Ë(5ƒê¡"¬ÒlŠ“ÐqæO'i¢eˆÌz5–OK¡‹„ ·uC½ÇxSb N»Âäéè½”¾+A—–\É ÀÅ-Œõaß`™bÿ¹ÅV³Ž¢{pYšóæyc ›dÏEω ³?@˜¸3œWÂZ Ù^TÊŠ²Aÿñ™Ñâ[D• ,XÓö…Û‚ÑØS(pÑ×c¸lž­Rn¬Ò³f`_Ò®£[JZNd±JEZš³y¿2ÆÌݦúº0iùô8nÁQŽ÷>rN(ûÝ *¨zÞNLZ´ÈSˆ•ðEž¸³ñäãvkÚæg ‰—Ór5Zê× ¨BÊ– “î-iâcR9ÕjÒLƒ·"ÄIšx!6 w3¦,ȇ ÎøôÑi¬é´yÙ@ƒÖ«4kâ¢7$5®eøª Tfj×Åž"ñ‹J—?¤új°ë¦0ÀÎãï–}Æí/Ø#~ÿ»ßã¯Õ Ip‘5á¸Ñ6½\b½´ázát…IœjŒÔŸ$ï¥8»NTŸˆÉË*É)*¬“‘& ëÓûx2Ò ¹‰%µ­i0lØ?o(”ªŽÞŸq³Þ]ÓÀlˆÏ QéÒ"-ÂÆe^- ÅJ铃닪çÈœ®§E¬bmÄüƒ ö;ÉŸ~_±ÍÍ­CCyCN™Ð*Âp¯+P+%SŠ&*L`„ ckl±âŠ=#Ôy<½Cva‘T¢ Æ™+Mcy\®^GÉwŠpˆ6Ńe;ýWÛ¡‡,#un¬´!³óžø¨å¼Ø2ö-0Š.ªÆå6úÀÝ‹XÀU=i²b“Ñ‘íFA¥V»'‰Bì8 f0Q\–Eš]²;f:_lw¤ï|±3Ùhâ ÀDCÒU_—Ëõ@”Ö‚ $u>Ù®ˆI—µ‰²ÎQ×5~¶œ&œÇŽS8™náQÙå@`¨ÕPë—§ë&܉ó¨e„óÛåpœ»„ó,')ãoÜŠËÝ?—ã¸7Øû½ Ÿô#ÂVSDaÚœféX5œÑÔ›Áôzo ˜ƒ^sZqXìÃ$’ÌØ0ÕzZ˜ê7¨Nªúu—¬~Vcðw£<ƒJz¬'làMøx ÅÄU÷2õ šÙXs ¸åýq6N2ÉÜ‚\30%ô¾(±‚sU«B¥ø`i¸Y)Þmq„reãÖÇÓáiL…9-Œá¤á ]ÜYG›È&Þ¢š¡RÙïÕ×,ü©/º­7Ô”l\ùï­˜hÍËÀ”Ûpª%t¨D<ïuBK™|jŒ¤a«iÌË™õÐE˜I#ó¹èšûÏ×ó™˜D×{eаõÜá;T=zKàæ'™1¼шÈsèõ!3‡äE ¨<œ-„Ï‚-“«gSÔïg(ãg|Tú1dï_×##ñ¢m;СYÐ:‚색˜\9—ŠTµŒWßM¹¡Á:lì#3eµ‡—9„šºTË"P›ûlkÉÝŸ9è›Nÿ3ÂÏ–©"Ì6cþ^‚¹ÅôzÓ_)’#®þ(åêûùÝðPã oMøx!ylÙòO!åJ9ºbiÊØ¡ãN ×"}Å™^ÿŠ+û ØÖV%ÁòÀ_ȽVl¤|Œæ1fl0èz÷?‹¡×3k0ÞN_L.;½ŠP]h“ļ$üFU=·¼4Î~~ò™¸˜ðæÆ 2ò‚. 5 M«o°Ì±KæúˆTùËòÅÐÛ^EÏ–~¯ãÉÒ¦1&ê¢èS‘ÕŒ $Þºÿ“ÅVH_¨iäqÝÎ7ÒFÆŒA‹EØöÎÛÜLÛƒó×ë:YÇ¢8+I’is î¸þÚ?¦¦ æ‹ëÏ´Yº~¾µþ$=8k-#ä#Zjòúü^}¡[’-»qÿ¬âk¿hŠzk{ÈÓ÷ ç¨ÚÖF^4X¹"±º¦¹®~–Ìumx…UÍTÈNI” —¹TÇ™kQÛŸ9FƩѹ’Ç$Â|98+åBÌÒ’Œî©˜„µ}·Z¼>€1¼. .W˜ÿ#‡R¡$·ŒëŠrÝ6Np¯{Ua!dBâ碾s}ôµŸºxL–ºEW–Úãt$=¾6)Ó\aðþùÚêÆ‚Êʼn8¦H¤1E¢b+ ‰BJdCLÊž½Œ§Ýjy“a¯w°b+µI×j Mj‰‘®wu=ÁÇ™”ío³eþ ¦{cìfTà ߦ²¿ð_&&¾+5ÓX¶Ó”¯ Áa×ÉM§µ÷’ÆÎãÐû¹M—]ƒ™û”º©p úg Ì>€ :Ê«ˆ—Eå`m!6B•Mž¯À» g0ˆ5}ò€ìÉaŒºˆ÷p?’~bâœç¦òË-‹`%lȰãQG¸üL÷ns^°Ùâñ²|:6Ø8~Öè21ŒeÂ…øÛü/×ïÀ“…~!ŸªObÀQ:¬ÈÒYA)6<°^[D/ ‚ýËÿ«þ‰ÀË’;íñžÒTü—õ»‰¾>ÓÝŸnt?àØÖ¦æ—AÕâ\ø-‚¶.é±/Èx}ÆZtÞ6ŒJ7€Ìq‡î좭^ÉùÜÒšÉfòõbʤ¸¥~0ÑvÝ|Ô™ï§åvó>Î59LYr½+Z&æd@„“¨ý}j1/¿&噸Nýý˜ñ†HMCAó$âÿ‡“0Éòæúðmÿ~s‘uœþ‡w´À´+̲ ÀÎ3g",6û?›än¥‹3®·›‹kdï§Í€Dcç˜vùYº?jq»ñ²<Η›ëë !Ö_÷NÝN3íòuÔú»ñeysq¢«"peÝ on–i_˜¨qIJé%¿ÀIµÔè1 òÖe¯èîÉ^¦»—v…YÚ?j÷>ÆÏ®^ב*ØŽ"Ù¾p:ÝȶÀÝö³†)ü^ÔR’ !+¯1äA€sH æ6Ë`­Îú|áÆÄdfüš€¤§h·ýå|˜xòšHd«ö…yÐ¥yÖ5=‡rLgQËÈ·IµŽHÀØ NÉ´‹ü|9jå¬î!à‰Ñ»{DiμcÅTr×sKÜ’­}f5^FUog—ýƒÂ÷.ûÞ›^ÿ£WÒÉF“ˆõr¥ëûó6œ‹’{”÷;Ð’'A~MËZy<žP“€/¯›ýÛxZî6o€Ç" òñÀáüb6}åq~iÛýfá6Ö n0/Í&q“xß—_ç–aI3 ç½´ÿ3=_¾oÇO^«(¤š6@›t}½(Úý¨yþ]kwÚt³MºÜlÅ´·îõº_žÖ8<W´»Å"¦J®½ì]àsë—¼ã¯ð¥±Y¾ÇÆÒ,lŠI™º=½æaQl|뇉ù®-<¯$]¦nsö*D•ˆ7ÍÜÊ”T‹ê$%Á'…ÜCÙà¾Dö VF´—µ ¥~ÌVaÞs„3ùzÝ=í—›íxb¡=µ&žuCÁùò´z5z·Á˜Yëó®¸P0 xq„6CÔ@€¢;ŸüLœ[ÅFè)‹‹ÅìIȦL·}õÌ~7®7Ëùeùrtàwâè„WNƒ>i{JµaÛ3´lš¸#,º°N76môäÆVi‰è 6mÒtæ:9c€‰ƒª z鵯@k¿jÚâÞ[Svw®7uš¹xŒóÌrA‘–?­,ªCyÉ}LKa̬nÊl¬š„°v9ìžì̸5_½Âô;Á£‚9Ç£³g}œ=‹0FÇ@‘_dÃÔ¹Š>ÁO‡ýáéks73ˆ,Ua‘_ à†1õ³4@ÅÝ(Û*1òäÂK9ÃÈa¤ZY0&¤Fè‚ ÇMܲ LÛf h¼µ× VŒ­·,$=$N—é÷èï²1"z@‰ q¢£rýñ>'¬ó`²ÛZ€—ºš¨0ֱɽ2ð×¹|®ÿº"|-ƒº¥Lý_`üŠÊf·XK.}¦Çû_ÀºâI–ŸŒpÑ™*ñr‚3Ç|ÓüåòæÉÆ©j]l³ M¿¶¼Ó¥¤ÇÝÿ&:òš lÙ}“;Ûå%2ôdºRâß=Ã˸Ò ¦„%ëáïà€i ÁqX4`',6ë <62x›oD$•è`9åD$Ô3îÙÅþýÒ€9\Ñ&k‚ð’Ã7&úލÅñÒ„ÓGmÉAñs(d€§…å,Qm*ìØYÛ\…)¡¡æ‹HÒ¦Ö!,B\ÒÌ6\(¤¡@Ù‰ÈLŒÏäÀGp &­ó¸—§³+à2>_UºB~þü‘vHë$ï|8/(F…‰Œ.䌀ýÄWõ›ûÕÔ!‘"iZÛ™Ó݉2aˆ©KvuH×(e6Ö®„ƽk;-÷gêc|‡žÞ¢e\‡=8:¯MDm[B6Ä"Ð^k4Âòœ[ Ÿ€DúýRêyµÝŒû äTf¹‡ÝSÌ0òMºÿL^üjG2·ÈûMî=†5Úy¢«ü© VIàóEÎXF*KÍ´=$¯V€0ËK‘éyØŠ»wdTྂe XoÃÁ‹;ÐvËxwµÜÏ¢4X¦•Köm°clhÓ¼—ïóÕa·;˜R:Zeݰ\ ½ iÛ‚HÇÙÕX14ô~,¿]Þ¿ø‘ “#«?@cW8Sl?‹}aîÀ{2ÁÝeà¯L…§B!0ÂÔÞÚ âEVBÀáoQø/'yÐ-×ã"Äò‡6~ÂäÌš™ÔÆýé»=6PµFF  3›¬˜Š²y§ÓéÒd{Gjt/AŸOËoF3ƒª\’-Œ "¡Š|ÔáÇ(Màäè<-Kdy:G\K„Š—1ö¤¶Ä‘œ d æ/›Ýñ&¡Ú6܆¤ãY§ùZ:rï7;¨ç.L ÊBÔœ\ؠǪbPû¾Æ9T FÝ;Š1AÓ®*õÂíØì¾Ø¾„ïöÊDÊ(´>m£° 5 ›Šªgüàs†°ßQÙ©àëÜÍB*YL|ý’3ó–­)À¢ß˜Î—½NKÎõ~ÿvÝS~¶ç‚jC7iÚŠ4 ù*_ûWPVíùÕ"³Dlýið4fI_/Ÿ-ë†yƒ'm¶:>‰RJº¢fqâÚòåFBZgz2î çŸ@ŒÝå¼Ã’‹ Q‡j0/ '€’@ì¦mLðïr™ ŽC›=ï‘Jƒƒ¯5ÿ%»¼cfjwãݘX—¿k)ÜÔlÐÂ_ËÀSVÜBFÅ;/Úká¶ýwOvµ½^.Zƒíg½ÞÄž §<[‰[12a¬µ'GÑM–—&™®û—Íóy³ÚŽFà Ô¢æÀËÀRàí ´‰dçëº4%,ÝŸ3[Œ…»{1›ótñnчB£ª/#îÀå´"¿æ£èÂ.§(£”×çÔ©‰Â‹–|©7+®¹p·.x ’&rT†!¬:Ù™T j2Ct¹ü†ÑÝ›p7r}8ƒ.UË^~•g$-¼N,kÿ]¯ÓæãýË?ý3…7hÞ<Ô€@4å Ü…X-÷qn þ x­¢`Z*Õ>îme’CêYãx+oùïí1Ö?¾¶ê-ØL$Š !¤áÞaeÀ•Œ:àÁo´4ÚÑ‹,‘,°C@÷nÊ:-O&:±‚b\•BѦ-cËòöTÌpAO³ I3×ýy<í–oÆ=Uÿj2Æ*2"c•YÅâi+ŒeäBY0iêÞÅœŸóº2aBŸB.zI…’qIÓÆ/2o˜ c1ü,´M²[@§¾ˆb#"™rE©+Ï2Ä:Îg À2§2Øä+ñÊÔ•Cú8‹Ë#ì ²¹esbU0hD `rN̾{›íÁ5¿­¡V!'ŸvuíÚb:û'Å–o”×Å¥×!É1Ã]Vá¡ðÜ5QÙsàŽ]¼Y]©¤‚TrPUX˜îÙËx”0ZÍ•Š+X œW0Zäîöëu³žŸ®{lˆk€œz6cŒÈô©ç êäÑz©4ñ¡þDÐáâÐÊ‚Î7þ^oçÆQò‰<ø&âÖ "À~soKv=åå5ËÀ4û›ë@gVoŒ¶‘Uã]È(¨Ë ˜h´Òr¤Y¼wAK[ ÓXiLÉk9,.32Ò4‰F²îX ×ÞŒUÑ w÷B¶/§Í~mR€Lö# H*ûüDmÞˆ{lJ„˜¸š€TÚ£NWS«¦ûY#››X0Ùµ†Ã1¹ê3ºTÈ–Æ1«Iˆ,ïë˜2Ì•nRˆ#šÀ¥ 7bS´Š‚þB›žH°øUe´ô(PÔ&£¦0l6ÆF…o’é»ÝÔ‘“ø~€¥´ä†?ˆKWàž¡£5»O™óõµ¿ÁÈr"ÚM…¥×q{äìÃ0%#€4æá[TÊ`㎜ÁN´ èi¸x#ƒè7¨€Jßâž)±iþDØg¦Ï‡1w…´º z h&MˆÃÄúÙÙ†ºþÌK‰·ŠƒÂnöç¦n—ú{éþûÿÓ+35ÒÛ…1ï6‹“[¬-8ßaÜc0?É6&d]ñšf……¦£ ˜ œÏÿªf˜PfªBI 9Áµû¾y3u]«Å/ÿýŸ§®¯ób²ähÎIÚÆRt,¾ ‚„Ñ'&¶ÎåšçÛÚ¦nÛ8ø»—¶›u`*દôh”¶Åhzo¢¾ÿLj¯ø‹ Ìþ Xéf¡Vàr«U“½¦ÇûxΘâЈäÞæº(U¤Àà8¸Òy·^e‹N ÆzyY–‰¡5šãwºà&Kû‚øÈØÙF£wÏx¿|96dLð_1ÁLà é8æ(ëóAGMol háw‡Åì4¦“. 8 ~A‘n>D.ÛÃE^ǹRpár\‚ùN~ߥ_§’° R´¥¢Mʱ©‰Sn | Õ,ì£ÀØØªwB2Ý>«Y1©àl±F`U&Àý‹<Åq5.NLúFÞ驌J™ Ðï6»;P 'Ñt™‰~q½™:X¥PæŸg_X^V§1ó~CÒWgÐL |3ß’)†ê¶~!:ˆ¨›wgU€º»Ÿï›Óe¾ÃºŒ`åRZšçæ+„PWþœ0§¤xF’"1"O(Zg*çd¤bFFçûKD09nö5*Ÿ—<éÓd,=È#|!¬#(cw)ªÄâ·Ñ³G×Õ×&ÔF¾ÛÞí„7_y]nŸóÃyű-œÅÎFQW^}°ñ¤Tqä·T¼MCOÉÝǨó™11.š´M–çÖö…| “[¼üåôõr¤oQš]_2q*7Œx¢²ImªÎº3õ‘#ždà[Õ°¨T̘8}v@è%Ë—h“°%®»Ä•Ügï]Îáô´9[Ó¿À*Ÿ\t\¸hrÉ?jÛ¸qgX‰µl —ÊÜ‚4f6JÚšUqÊ ιÛ×õ~ܯ@ʳvQsRž´ž ÇÐf ¯øÑÿD)Z3/3EYŸÖWvþ\*ÿ¯Hj rîøB!›H;@†Ÿ®û¼gë¬Ö÷’ëü|9®!§¨›Õì‘Æ´%o¢1zwIMN¸Y§8a²ÓOoÂÇ*H$uðÖÈžG÷Ï*k[P( ¨öŠ üKÑ mùñI!!ï—±íÜ|áÑèT5"MrZzH#Nš–åôq¨ûî°?äÝ y YÎÞg%He`¬ç“&£÷“À¤49«ìÀ+ÊLÅ“LøëMTð˘<å'Ç›T5P%" }ÿâ0m#¥›ïÃ÷Ï« ·¤.ªTϹ§ätñ@ïÂçÜ"¤ )+q‹ø¼¾÷x™ JÊÿ·®~Σ +rx å“þ‡Þ‡áEípvó^ Æ`ïœç7µƒ7GÎ:ýå áG©HF:,“jè»’äðbQ£þ=(â¤Dk蟖S…G'„%dÚ}!Àߣ{©²6ȉ–. ÿc­Å€vµ1í”fQÖâãê²àP œR(¤,ìÞ…¾@å1!³Š Ál@Ü®mm¢úéQxÅ#g4Ë€†³sCwÒU7ùÃÙtˆÙ!ÖS&åŒ|{=lÎúëÉQ·iûNÚ˜("8Jˆ ‘Êî2:mG¸Ìruÿ¥ß¼¼lhŤõ³×¾‰”æ&Ñ™k6r_¤é†$æ±{r÷>ýŸÍ~}øöË7°ŒÒà†´›ß ¨~S7Cp¿ÃrhÎ^ÜC¾ÝÕ6áз˜òTGøuèþ‘ÉÞ¢”¨ÿòŸÿu¾ŒGn̰LÞåZWX )r½ÿŸýÏ¿œ]鿘ÉD³Wí` Ñ­á­‚ƒÄk±L X­™}f¤£Ø£ôû>ÎãùŒZ³³(OßܹQÇGH¾0ÏŸ®¤ØaÕµÁ[ßJÊŒ÷7æiª±1ËÔG«0¡£·WBFXÝsÛ+-\¾ˆO†ˆ ¦ÉŽå )F1ßÞ‰×` i¾5È‚éž}Û=é –×Nã§QëüN-×ï»~98œ&à*‚sPYÂ8ͬʃê’Ä15êÚF-’„™K²hUaH‹àµ…÷ãn»¾!ùº7¨ßR0IÖÀÁg™vÙ8¬NÔ’Wª×²†RZ™—qÿëø¬ ]&tÜ Ê–÷rH™ºŠ$LØA–{ENc˜f߸Ñ5î6}Ó²ö|ÿ¿ ìfd÷’…àx¯=HiË×]²|¹Ï>`1ãþ‡"ºŽ.„6©g鎢’~îÞEÖM/½A¸á0D ÐQúœ;;¾èkiP+a¸þ€M ™¶M£®vXÊ’M³jšÀ{Ò¶}WèòB ˆTÄþä²rž.˜(ŒÁnR°ë·ãò×óyÆþÀmF࢘!UzçEÈÂKº¤ïü]?£™Õ-þÑìáneÌ¡§¢œZ³)³(ÀÉ;<Ì‚„§å!”œ¿\7·¨)š—‘4sn¢ìõíâÒ%Àû6\à Öc­û0‹¸Ç ÄÀöÛôåbS蛥+Î…W4'z“^‘ooFKá5ÔóÒ’×ýJñ»ž« ([8¾N²¤é2D[>ú¡”&5M*{—Þ|vkÚ=Ö ž[Úöµâܤ‰U­ÆôÐÂYÿê?’Ɔ0kGPCŽ­ù‘»×¿Þ,·Æ_y”«;Ž‘KÂ…hÍãñ³ Óq³Ê:ð%Í,ÊÈ‘lJ"&íl§…ÂëÓLUïçËi\îŒÑÂÞ›EÍ–»–Ò«a -ÄqÁ'«DW=Çü9­±ä\f®3fýX™Åë~ƒ!MM´žröîÜ¢_‹(2˜A“rY¢O ™ÜûkZ=mk…c°md„±Ø4™µ3j 6éËÝ þöíðüŒèåk½‹–Ët-õ­±á( mdu:ì߯ñmû=~š)4˜÷›áÍ ¾éØhùüðmŸùØpèzÌÞ|;çBÁ|gÆ1 ÑÒ‹A ­°|›~Ï1§‚Ëc³†ëÈëdõ®à,Bevu=ç£V‹‹ýa-ÑîÝÍ¿üõßôVöú1cëWŠe¢6ïã#«5J#ŒšÐdªN~ wH$"8Ý}Éœ«*,ÎÎÛ“zÄŽºÿ©3«6È~Çåå“Å[ýW¸à¨Ç-Þ÷N¸Y0«—íí¡ï,@ ’¦K3‘.–ûΉ|1ßì×Ëüùú÷Íå|aÒä€(Øj ó!­–ö}N/d`ò4Ïß÷Ëãe³2T¢)¦wˆÈõG›Á}š¹ŸêÔåé&_3'Z!—ûáKTS^í@€oK}˜õâÍ©Q%EyF¢¿Bn³ óLzxbÌ0Ñv“äû mFCƒëhÁ½êi>ð#TÌ„DÖâx‹Phrõ§„6mB-Gáà0¾ˆ}ûÛ¿š_¶ zþv$¤qõh¦.×-Ñøñ+‡,0l:V¼•»%b-=*oã6O†÷»çë9ÉïJæû°• _§•Áˆa”„ÈÈ´m÷›j›§%'¾P€’uÅt (·eËiœªÎ"v¢ê”|(!ÚÑEÁ®:@@ÓÝtþ¦ÖÆÅùgý+jÑp‹büÚtð -[¿M‚&å4Ž`ðo?A3±$8å£6žîªãf,º õÂyŽÒ@ÏxÃsÓ[Œ}ÎŒRPˆ_ŸzwžËÓZk2r¡å¹ž·D,Š:lL éaö¾#yÈ¿‰rH oYËen*ð…ª’‡÷QH´«W+;¶F Œ¤&QJiWÁ<àÓiÒ.ŸN“*× zu‰rÝvLf œÁÅb_c3×lŒ2›YìÄú4ƒâS;gxzºOŒO†µÌ!Á˼q­Á½'–V:Ôy‘ݬI6SÚÒ™hB-P®|MÜõMT+lbæ§ôŸ¸vò`îC€*§D3Þ´â.„ŸêÒý~ß:} Ù›Ñìe‹w7¼ì[/{jjÉúÎZçßn߯ñ8Ætï)XÛËCµ±×.:Î\GíQi-ûb–Ù§„boê´¦ðrìR&2+ Y¹_éY¿ÌwãÞ¨dÒØÌÙP†:à`Ä-\µ ð¾{ »§ý@˜ÈSí”S›cChY/ûDØÍú3¡u½äí«º2õkX@UKÐ9ºAæêʲYÏÂáCgOÄn ëѽaÅgeUÄCd:i5S:Xq?À›ÑEÂ! /*¿šew{ògÔŲèü5¥ À¢kî6´ã—ÍÍÓýÃ{(+H ^‡¸#ÈŒLw˜|½{ê{Ä)úUôj¨~­D!©U=fF=—/¡=åÐïMAœùëe·ý¡9Ôh~ôÁòQ;ðµ¼×iÛ‘‰>®ŸŒfMùâ6V²^wÌÝÈ„ùêKz¶x€Ù”[Aö (Ð6pZ‚Ñ‘$…ç³—<&ÑÖÌõ‡ÛP§sÚv6ú7U´És‘¤ip ³i#¶ùäCkŠoYÉÌeýKSÜ‘[š&Âw~<¯ÆÚ˜>oöëñ@c€î9ô6¨kÑzÉ,j£a m@`å¶üöçå–š„jAþO¤RFœ2lI\Æ€åÖ¸ù“ȸÏo—ÃѱïŠËàQèà^±®+‹Z7gýÂöÙ™v&Ú€¥œõã@†ŽÞ¥.¹KV¹ëÅ,6¡ (ü¢¾¼wLæä§úµÌ¬?~_E¦©EËKõÕS‚0Øi ©‰l(¸WF ×›ËáÄ,µõ.š ÚÄY$Ê{ª±Šž›ùÓi¹_oö/óÃqÜÿò_¿üÙž¤Æ™3F,йƒ}¹Ÿ¤Ç(ë ûíFœ¼’𸏾8ï{Òšw›ÊnËkÓ;sڶŵ©¬Ny•¥«&C?!†bŒ%Gü¡ñÓ,J¿$\2 Ë…&¥¡"]˽ãX¬ñ¥a…*$Q#R=7qO _„Ç*„M¬èžP„d—ÓÑÎL`k’›é¿ƒ^³b¼ˆQZ®h]|6DZ­7°@ta÷¥ARpû‚–ñûánÉÖXßÊüii*º|‡;½ñ ¡˜­HêSÒô§½‰Rd)Y›ô‘„7;¥´§$¸îiÈBʯetbYVãv«%ßqŽM‰0mTj„´YÒúh, §KÓ³ÂÒS üÏ[ùvsÔ¯™óîÌÝçÝÑ&ƒK+¯¶-Æ_‰,[/\ÙG¯þx}>_a׋«¯CBvÜ Ù¶Åµ+fí"E^ Åšg±íóçíúñúrZ_¦Èê·Â¦WÅM¯˜…']?myk­¤nýM6¡Ï~_IË/¯ÑÉòÈH8ÓÅÛœÖèùy ߬.·÷TàÍ#™¤mãÇ9馫K;Ý¥B‡¡céÞÂôF2CÐO¾øëÍùí8žžMõˆ2±Ú¨²5i… P|³‚§3Rϧ{Ê”)ü´32~1b¹|F ³5ˆÀQ;0½âÝWÌ݇$µ–M¦, ­€F[³7sÍïNdèò|~¹.ÁCS—߉õImfÒ¾÷=h Ð~z[0 £@ãÉóàCó2î± ³,Þ•Ø^ÚææR—ËÞ–ôm˜¹è×ø,ðwyLvËÍöÛò²z…¼ÒâÉhÀ„4Û¨”Äò­ܵ©r•œE(Ëæ±ñG£³Ìù$:\÷X ¨.ò¬°`]iûNvŠØü’õÔ#´.KDëþ©š°'Ìqϱ*Þš&¾5¤tŠâ­i˜[#2Ü r,Ê·æÑ c?^¶‡%rÓâCÓ„ qëÞ‘"§Ñ1‹ |?_ì—ñ ˜¤E^Ö `CÛ7„°¬ú¶_DËh—²ð[•nÄf%‘GŸ‘ãv¹RU·d«ƒñ‡¶aŠÇ¤eŽ Z0yk/X*¢ˆ¢ŸvP¾^7«·íòº_½Ž¦€ÍPæžP`,° Ú l"Kðl"-}7³¢¨àå ‘•ýiGà´\o;YÖB“:€³*¤WÅÝWÌî§à«? ü»éoçÕi÷ç×ÃáGâÆÅPS0n²ß ŽI×Ï[£^àáÁöÕbÊo£@gQCH;\ýâ*[f•Ñ(Y5$ "ÛŸ¡½ü<âì–§ËÓáð¶3@&ØÓK÷"øãVœ…Ú/ÈHd¾àŸ„\êç®þhŒ°¢¼n0ÀÙ*_·êJG‚Œ„ƒŸJ‘9ާHÊ*~EŽÁKRE¢t¤’^Ò¼SûRÄ.”-Þö‘|ôaÌx‡ëŽDQžêC!ö¸Ç¢ùªaÌW2ÝùÀ$ªYI­øÝLö†$'$-™ë‰—4AŠzhé¡ÐWeÎ’-~ÚaxOï#(TEÍ@„Þ¤yC°®‹‚uÍÖ?,x>­ýïAoË÷q ®›zw‹^sO¨Ѫx?èP¢d"Óâ?í"|——W¼ eÞ€»@Ú–þâ“Ñ3Oæ•tÇ!ÊÖLb,i¤ÐÝ_ƒ¡ÎÇ3ø뼡_©ÀËÓvàY>¯çLBo“© &R¤w„ä¢<¦—åVâoH«¾doOðò–¥T”¼()m‘¤È`.ž·dHb#JßÛ*[\þnw¶Èø¥·”£lCšáøíá c—ĽÌ['Øgv.ÝXù8–Ku¶¨³!C-Ô°a,qÇòz9œ/Z°Aï}€‹ûÕ,mBÚ,ZAŸ¯ÖEÄký¤k“„ÌÆØu-Á‚&g a–“§$Mô‰"]² žûµ™Ý™çÀd°B1(ú7š«ïö_*p‘ð¡I[~YžßB¯zQýzZaŽ—ùìrœ˜Mš9˜|žêÀR#:ÚjRìA·ÎI‹{?lõÉ»\Ïö hä”`.T$ÄIÚåÂfã#0 ª¥R`éÄ=‰EÍw«³¯Í†WU l2[D]ðÉÐ6nX^Áqxjéûþƒ¡y]7ûÍÖ%¸Ò…È<9 žË“ËK¾h-ZŒ…¯‚“&î â2†„õ·‰Æ·Á¾Ü&/Æê@¬SÅà«RÔzb´èjެ”7 ô¼‰ ±Ù›ã/ÕªÊ Yd4Qwq2xØ´Ï&…l²¿P "¨Y›ú–¥Rþ`7¡vr\Ìsúb?,9üy7®7Kƒ)nŽhc샜¼ÕCøYã“]B"‰‹":ì׿…özȽ§Pâj`ÁlDn^¶_åh •†9Ò‹"VEݤ †Qî^Ô#0Ù”|—Éì•´Fž»·ìxÚì/–«È–e¢‚`©ž¨´Ÿiº†øÁ»4ê´¢ŽáðœÞH( 4y!oð)W·D3žq×M=‘{œ××ÝÑÔõ1¼C°x ­³ìؼ¡¨=\U œj!|eFƒ™Û¸tì>9Žª»žöŠŸ§ÃËÙD_æÕ­* °mþä’Ì]" .¥¯)P¢™Ví#PÖ#nòúcÀÀNõé’iÔIê$°ä@(Æ ÑHßvõÍèy5 ¦${/|¦]ˆ":ÐÌzbß1Gàn Ô©ìwGÈø ëK·I)6F‚ÒâF´Ô³J¯SЄ@ätѳ׭Gµ36­hšN” `˜>§Zû­MéÜñ /’ì=Ä©I®qö¥;»7“/Iy2Ô£ÈáßåaÈv`æœÃ\ÚHšjå^ôaÒ]Ösžtò0hYGVb!¹B5rß`–Nz,{a/»­RIÔ/gË”Å<¬Pžú‚i(¥LN%ò³9ª…¡j=XNBÝÿÖn.ãÉVŒªªº29¥úR,zI¢!æÙ¤i­ÙD¯§¶rdš¥àoùlJŠóvc”{­`˜j,e#Iy]ÔO|\¸‚™af]^è`¡dŽ-áw÷j«·Ýá4Îôîµðâ1©guc3+†\¶-Ô›E˜~1P¬=ò‚«…àAÖ2éFLF<êÒ Û8°æ ¬ã‹ïÏ®iŸâ/Û¯—©˜ìQÉÒ@$Šì~¿WsXͶAÑSÓœKfT="Dµ^åÕ=@@íü²„(TˆoŒ%ÿ*¶EI_¦§ö§Ì·°ˆJÿd}†èÿ>írÔ˜ž6º3æ¤Ó —a(,‡c,Ѩ..m£¸ÏòÑdÕ"œ^æBÌ:(kÀ0Ù~h±Êœ‡¶D4 [vîï`}ðTè{>ÇÖlÓ·}úÐRýÇ÷pèÝtïö/§XÜ1C'k—°V9 ?¡§m24 àð‹jNþîÃà Ïêh·‘·¾Ìœhê»Ï;5Û£VÿHZ  ÃyN«LkÏVßC¹”šVÜÖ2¦N¶ GÙ±ìœ 9yÙCE²6Ž r¶¢–ÄVàTv²µÖ(d^£ÁéhÍ_ÜÀcC™!úΠ¨«;3è_ªÆÈå莄tx÷9t5x šEã9"fAÿ^‚°ù¾ŽòTÎiï¡Å»/ÞÆͤuÀVMzÊ¥"ôóf ¾Ë ­]ö0X‰hž•½MˆÜÜðÇJˈZgD]dž~ñkj&˜ù5¦µd'ch‹ —KñÉŽÝd%¿'q‹Çv'¼Œ±øýåŒÚ!+S”#C¸Eqކˆg\3º>7ð Õ½oÖ㡼º¦·¦¡G×cùWEìfMÛ™’~·F«ÜXÐ@A†æ*•Ã]ýyù&AxÉýªPÄú×ßìOu“ÞŽh&$y<ì_×PŒGüZõÕ Ä¯ÏbÕ®V=O΃&‚ÂÕ…„k–!皸QR8!“NFBXEZŽâ0G*5Ô[ZÛPaWF¡M‰ôPjO+ðÊ“ÛÔy=dR€³ë+-¯kºsÕâT 4ƒ ¦e‰¤2ƒ“Ÿå6uâf(N¤tE²M‹{ʨvº\—Û§ÃÇüp!Ϥ-­‰$›KàÎ:ý´#S§ý|Ø_Ο½{€w@Gm¼A¼kÆoTöú°Z¿€h®(”Û?=ym;˜:üÜgÁƒ¦YôäÍoû•ÅÑëJE¡ ¼wÜ‚C(§âç*ïIWŒ[vwTõðÉ|vŒêP%!n©9X"™9õò”0•ÒoŸ¯¬î_ÿùÏŸíûi ƒˆ÷}xìdÊU4ÚtNšêÁ„ù”s„€¤I6]Ĥd×Ɉ[AA¿Ã¾Ÿ?½íHÒÍ£¼ó®ëAsºqáËD0–Å=„àݲ¶ÆhÌi§m~Ð*~ùˆ´¿‘{=–wýòvœ[¯‰f‘± _mù14¡w‰K"‰ä+Ò¢ Q¤Ûš•¨hÄïÄ@õ ¢ýflëËs†@Ú†=w=›Rù^+¬ô&Ú°õqcE˜«ŸÇý`ÅÑdÞšz0þ.#ÁŠfºªlI»Z-W¯ã Ú6àÖUÁY™ÈÏL—³‚{¡¿ÇºqMüh©[ÏìÚºüèƒVK/ ·w˜@ÐÔ^XMzèeQ$?º.n$h¥M’:ÈÉ•‘ìa`;h$çF c ÎòúÙ‹%"¶*¶*ÈVõdnL#â«YW%yU>;3M8I“–zå%S&aI ?"¡Ä§$òp'û@‡ÕÓgL¸FÛCPIiNˆëyÌÖè)•7¥‘ñd¢¶{Á䃧óÙI‘-d? g7ꈬÿú¿Ð`°õCñ©i†Á,¥®ãERþâWŸ.õO9ËÓ´BõÑ-ZïVÇt &™¸å8§3?j*ŸmTŒnq‹lQÈ‹.4 ߺb^¿“Êñ·ñãòÙ-m"æ}~±íÇͦLâNÒy–#ÚÔØ®”.ŸÝMˆ ¡QÛqfÑþˆÌ]/p{E8å–7»G¬ïyó1ž?’{JqÑÇ;/úÒæó?ä¾#m>Ùý:ôÅ-Zš¿ðtÀ뻿ù˜BO§E@Ð×éíéy³?=#u´5".õúÅu<èÅÄ9Ýô0)ÌfH)-|õêÒè3N.>%”6©¼êò%Ç…ŒøóÞü^ºôî„ü¨TmZ1j±¬x>7ì‘!izºzè\>³G*LXôɨMeƒ.›ÉîÓ!¼!~D/|ÄŸ1€ßÏrö·¡Šî½Ê®½zà­ÿÛ§Ò €H$PuiÛΨ­3ˇPnÅÄø‡,n÷Ù}o#A¬•ñŽ·ÃŽ»—3‚/41VЦ¿ü QSê“ÛÉÿ!Ó©Îý¦;x棫…eào>6)\© þ] ²¾þë²Ù~vr~O^áætƒ7ÿŽÖvB£Ïb¾¼VÜ¢'Fð'&qnKù{I §Ñoúô½ˆ\Ö*qY«º¬í„þ‡<–:Ÿ¼]CwŸ´èî«âîgŠQû»ù\.Ÿ^~½´‰[¯Éœoøúê*:‚uväºF™Ïž {U…JàqÍï"Ìz:xø'œ‰Ÿ¶þíÊf Á›²í™gÄ=‚VïÿƒlïÿCìïŸ1 t oiÞùhÈb±=Ä-&T× L%Åñt¸>•¼{L'Vq%H]!œF¬Šÿåß¡T”è´„ÄKõíl¨:ˆoO!!û#ó Õì`AQ°l sïLí"D3Ùøwcê—$§”Èuä>p=|<%3Ü€ZßöyrW4Ô›!6¶%Éþ²ÂPãÄ=aW—Ñ-æ46}K• gãy¤%™¤é²QT¬ø±0Î7Òù ÏÇËiY¦sÛ „²rúmÛ²ø³Èz‘ù¥ÓCËíôÏë·òäE¡’-Q…£z%â´1ç ƒ‰>ÔÿPtÖMË©¿n’?®©˜Ï1*…ÂZUÜ[‹•í?VÄŒN¹gæþ!½S˜†(kæü²#¥Û§.Üœäý§¦sÙÇþï¨ 6"x\tóã·Æÿ¦!ñþ$L­gëò·w2Ëߎ®Å€áŒƒNNÓ_Ú6«,îŸ×€@b =W ":T˜mç©æNØÈá³f¶œždr&UŠ?Mq bb=a ñ:LZöûfüf–¼€8ªEÍ>¨8ð”4í+ç ÏñëÀ‰£[œ¢ŒÆysy¶µ Rx<ç:L¾îa M‡ëi¿Ü"5ä±+†65Ú'ƒ·Œ¶‘:Ï©â]•A«òÄáleô8Àdñ‹A½ºßüu\?ÏÔB¿»ƒ¾Ýl]5Dþ Ü=êÀ» à'39‘4þàö#â`@zžBiâ‰@Âצ¿A‰)ó²²yÅ‚âVâ:Ôˆ·éÀGÃŒÉcRÆÐ(Ãp¡ˆ’X‚ÙÛ4‘ë³0«G#5ÖÒi&«x,:Õ,LBkzÐÛAø’ìÈÎ-tPùAä«¿¸jí‚``‰¡†ÐຣúÚû,yª¹,hKüä3yTÜ)ÙPº;™ôösVÅèÒw‹ìr…9‘\î,Vƒ—ìNçg*^aeˈÝÌs¾œo#ò¾>ÜV=ü>c:¨ÝQøë$E"ð¢nà ͬ>[†E*>MŠ?â)6Õ 8ERAV¢àJ(‚Ý—D‹Gö!hã 3ŽjÜø´- P =72NÑ,…{@1CvCš¨HüCt.›¸4<‚;‘ÆçkîIƒºhÐ-¬ëЂDr¢D~:fÖ~ÇÈá2]£Hr¿ìä¦ËïoOk#f˜“ʆ%8hQ¯ û~b¢™Š@neüŠâmÊÊÓðj–/M4_ž/Òà'v ;LmÆÝ‰osç¡R0ùÿ¿üå¯2~[ž–ç×_ ÚÊv4«5OãçpZ$ª;ì‰niô Óc(ê'‚ È{2ÂOò¡lŸ¼¤Zá¤8È ´æYäwÉï°9($îÈB&jO°ió§Ãj#jéöÏDósÒ–Äõ É”µõ”â°T†â¤?Üm4±Šˆ5†¿èA¢hÕ ‚¼³ªis»ª%­ø„´y’V«ú9ÝÎWãþ‚äm5e[–9Fé`i€;Óõ™¨úЛ¬dþ²„„…0µDµ8ÉX‰£Îï:˜Ä‚4ºÎ«×q·<çu üMp»qMä¶™«#£³G‹‡“Åà$cè,ç·Ëá8_oNãêr8mà`8sNéŽ?’Î_/·â$Òtè† 2á–cS]Úi´Fßió/&6døš\?]ÏsÁöaQ2ÆÙ£¿luT÷ ñ‡¸XÃШ"ÌÈqã]õþn÷¹,Ù`¦ÑÚI;€¡ä½á-Fì2p5#áx‰înó”±ÎùzyYÞ^¬pøðÑ´T¾—<œvlÒŒŸ7û—ña`óÓžûª&Fîm{½ ¥R’ÃNFÈIì°ž[$èMe½±øÐ£][ÝmCâ¼\Þ5ØsŒ‡ñ›HÛÁ‚Qu©ˆ°’.½±³*¯ßçW5ß¾ZÈŸùz¼èç˃j¬äœv¦¬MÚ=§´í׈Æ-v‰t(¬’ø¢Šñá [Š©û9Ñ›¬×+6" ‡à¤Dœ'µƒ\÷ •BÚ³ç6-ÀæØ–•šÈ†¶ë%Y#[•µŠ–µÉ¦¦0UdSœ*‹À^ä‚!Ûæl׬×E†À²­‡ °àñ‰Ú!À#+î'ÒˆÜAở¿™ƒõÌia6O߯/^±Þ¶‰\´´éB󚇻Ãõ<¢àª™Í°Ø2¶F稤žÅ¼7¼¡Äðo¢·šV§ —¸_]OçñŒïø»'ª˜àQ›<Y/y4šI¡>Ñ\çÇ·œ¯1…rþŸ®Š²ˆiÓO·íÓ8u?[:ô»hûñòíp²/·ILàÌNR Q¤¾¸Ç™s)$§Œá~½w<#¾ ²ìW²ºfÙL4*›ó|µÝh2¼÷\œ?Ä~Ô!±š¶-MâèV¿Ä,}ÔÖ”c2BD{+´qOjŒøÑ‹OÌDNz\®Þ ”¯pªD‹ á +é±”<Dý÷pnjöT „ loIÈ¢P¡×M7ñX²¨uèµÖ#ÎádÕœ±3Š"Ò„¶SºeOOLЬ“Ë$Uâ(£R¯*Ÿ²Ì†&Æ¡€ðÝ™­f²)•dáuUpâ¤í°ò¶/?tìwḠ>ú»¡ø…Yÿ§EŠÚvûA·hó‹AúƒÞ$”Tìj²ê¬?È-CŽä_»êA¿b£Àÿæ%ž¨í÷»»—ìvŸî«!-šŽgͽŒ<ˆõDYýøýòzØ'—A€çlõÇ0H3HëUjs#< UJñÇí%ažpɳJÛ?iÝ_í»;𪉖é„Ò6• ‹rV4nIÒ®Èl²ùõ„ÇŽ÷ åtiì%é Ë YÉÂTê·œ¹¦,+‡ ÅÕµ˜T¯}^-÷{z©9Lc|ÙB.m;Á6@弎„-²z¥„9 †ßt¡1Tc*=¶GÔéŒz)Ø¢Z[Q{ m ¢ÈáZ†Ã!2/*Ê´^V†x>º]ïáº_wæA®"IàQ1Ž{rf®XËý™›!*ŒÒ©Ø{ß_¹¼Z¹*RŒ$üw¢ÅùüõºYã‘rÑ7 TrÖOÍãCÐH¶¯›¨Ëì'‹š˜9L8^(ÇIÞza‹Ö?H!šøÒœ/‡“–;ìË:ôßÞf]4óÞVóŽ\¥½ˆl€…cäô>‡14®úq[NJ°9oßÚ“o"çqÅŽ óçuþÛÝ1¦¹Û;äR’<¡m—gdû¦N dž],‚Ã8Çɱ˜AÈhÛïöPTúFé—Š8N÷:­Ðéå19›.‰^®û10rF&«!Ñ=ˆæQ;°‚¼—<ÍYI°ŒÙ|=ˆ¥&¾Î×ãZŸ]\e¡ÊJ ïk@…‰ÚÄ^Áð&¨ÑŠ:¬ÇRÁû!˜§Y@M)9u±çñt&nWNÌÀ¸‡`Ÿ‰:ìr~¹©„b–Tô(ÆA¢— %W؇¹ƒÈ‹ú.ÅÌÖ¤D½÷Þ~ã;áLó-IÿHš~yg8+ifpº¸Ts‹3‹¾ú—ö±ÛÎÖr6ù8MŠ6‰ŠRt Ñ¡ÀØÒÐeæéÌ_§‰<íûê8¿níº-&µhm†—;ë Ow;Q›º.³j!Aù7!5¹ã!r®“¦Ð°ùX Œ9FØïdGÐr¤Z ¥xŒKQ^dÅè¡8´-ëó±m M& =Q2ZË& ¬npC ÏòM@ܤ·5”¹Ke^CT5-FËW÷#'˜ošo—û—OÚÁHî(íëgºI>†½w¶Gs—ŒšoŽ)sH{«®ÛªÚ€ƒot;ûíô"+jà-È Ílð#8¥<˜ªðÇF"Sß0±Á¨aù±æbmJ¥§Ä,.jîê?d”»æ¦}Tõt\ßWqÅ&'_XËëú~ty3~'m*f3c0T‹ïo“û%Ø7^ñ jÐoÔ|Ì'Ìd=ÈÝk³3¥ÞÓfѰ‰g6$Åæ&ü±³Åì={îX'!œôí‰ÓÛ‚¨±Ç#dú‰UZ;š\¡4oŸ[&ú’Nè^B^×cXÀüÆŠ6MSMÀ.’.,ÜtÕŒ9lBÊ?ÌEMV0&¢¢c>ç¨Oõ‡ ér쾑ëÃgwõýbî?F;㫣@l1W]…êA´ ”êùbÊpd§ÉìÁ”eKm‡Ý³?/TĉÀLmê„Ïî¶ÀýccÄež2îÎ)·$•“hÛÂ5tì!é2§’[<øU¹’(2ß½óáùl™ˆ)óÝÎjµh¸„ÈÕöÖ¿ÐB¡*O¥ƒ]Lø¨W´’÷óèÖÿ0– SÅS=b!+Æ¡€Á`²by?Ñæc~Ñš…ß5´¹^»ßýbÿÿ‰¿Š,Ÿ¬3ähiúxK!'¢W"ðr1cýMʇ¢k9y•?Fá!BâÀÛž@óÃÁHOF|¦ˆŒãi3dóæ¼N$”s÷£ð¢jïί³Z3lS|Qs—ㆦþ“žš‘Û‹N‚4ø¤yæUŸ6ëŸÎ‡ˆ±ËÒFÐÖœÓpñ(Ma³>¹>ɺÌJÒÓòOð­ø0R´*B£ØJþ¹Nœw’ŒÙ×,rhðÈrˆÕ¬¬ý´™ÏÆÞôP»9œ¦¢ía˜þ_³–d¨’ libzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/packages.cs.gz000066400000000000000000014201421334444677500253610ustar00rootroot00000000000000‹ÛšÒHpackages.cs¼[ÛvÛ8²}çW`yOKô-Ž/wwäKÒîØ±'Ê¥ç©"! I0i[™u>è<ŸO˜;» E9¶»ã¤Çk%–H P¨Ë® àß«jOlÆëÑßþÖÿ“?ѳɞÉu–—ýR*±¹¾¾»¾¹±þûfü4ÞÜù}'ÞÑ]¡·wŸF?›|O¼RU¡2qfÒ&Sbl*18ümc}]È"åâPV©~8Rv/z;ÕV”2™É‰‰)j© +¤H+}©*&p¥+•)kÅé൩,kUY1’V¥Ââ­º–6:)l]5¹*j{ËŠÉT—VÕ6Žð3hê©©°v»S7iÍO8Å‘cáH]ªÌ”DkÉ<ê3ã_/ÈzçéïµÒ\7v–%¹u¿$‰B²½~-^”á»áÁBŽWºžŠA«,òô·za¥m–aø"ÿŒ5ªšˆA6RUý`I5cÛJ)¹´lv»OºÂÚØÆ_J+giYQ©O ¶œŠÚˆ)‘âkR›J« ¶–šekÞbn =Ö‰¬5 k¬ñÀÎm­òž¸šêd*YxrõTE$j683VRɬ»Œxl fdØU²H¦Ê®!)UêbŒ®D9[¬š OÔJYÉZÅ⤠`®Àf1¹¾¦Å*%Ó¾)²9é'âoW•®U» 4ͪ,£ß0(ƒvDÚLaütÂp¸q"ÆÙü>Õ6ÅG]q>“u.ªÝT~nff)ñVütI³ñFW±çE_& ™î{]5V ¡ƒ¢ ?αLTë *,ñêìâK·¨Û÷Øu }ɤ­'ÍiH{³bùÑ|–®`[7pÍ3Ë«÷f˜Íí”cÊŠâ$@‰sŠAX/RŔԀ/M‘^e¦ë9©œ°;z)zŠU™(¿™·«FØxXªÇ áQ¨Ã!†Õ.ï ;ðÆC #3#Á\O$ÈÈOÇúzi„\s²ÅK©3ε³=Ça¡ê·†LJçWdJŽÎ2k–c–5yIËÈ•°æ±Ëï–fL å1M¬¯,7ÌâÑŠ$+=¡âIÜIªÆ²Á¢_¨®k Ä„ŸÆ·ËÀä@žÌí”Bƒ(šáÏí¾–3@^z "–BITUPZÜc+4A‡t  ÀGÖxÙ†cÔjH¼»é°d Ϲ"ÉYÍ¢9ƒuxOË8ƒƒ!¾t6@AÃÀ0ñ6i€¾–bM¦¨´Ã„†c_Ëåú#²œBêÚ÷™Áè_RLç‹KMHDKpä„&€¿Z“å0’AÒúôû7UDž¹Ù˜Ùíól¨èv©) ?©$Ž›`$·€‘ãÌ*e¶*“eôèæ ‹ÊÙoå¾¢øR‹Wú’œTˆ}y©Ÿjr ª“ýSúR¼’¹Ä ý9}»eÔDr*ñýì§È2|»1ðPˆ}Ÿ½@H[›»@¿õ.üjT9ÕœuræJo.ζ"©Z¾ Êì1HõÄñáÙ ¿¹õ$à©[‚ÐõÃ~ E™.[]GMi%¯œ&L6C.¤’ç¼cˆ²©àªõú@¡K «5¹•”‘·Ë•)mââ|xò[HK+Þl]Å>:C„Ôóñ˜“ñ*BT+Ü7ÇËíBX%L¡Ú¨|~L1~Á…׺ͷVÜ{ ž¯ ¢N²©¹ž³}žŸû•Ï^D~6§~„uœ=¥©vñ¡ƒ*Ž~»Ã•QefªXáFÎ «·µ®ª  YÁ ´_HÀd]£Ð#•QL‡´fCnøÖ\%Ñn¼Õ îÛñÓ%ë>ysx#þ‹½åÍ9Ê%•Tý‘1uŸ1”èOÄÎú OÓ[»Oáb4V`, ¬ÄT©8Ä”NÉÃIA$]n§í"iïùx—˜R»ÙÄÙÁoŠOCæ?ëqw*Fȧ²‡†ò{ËVØæã‰K©Þöaà.0Ùx")çàVykÌ©/óÑ/<‚¶ñFMBï‡è¿+4F—Î"ÜÀ® ýà.Ií]Á*S:‰üöÖr¿TÙ¿Œœé¤2ÖŒkñúèd(^û‚Ûµ2]˜ÿ@-Àn vhÕ—„—HÙ¨ŽGq„,™“b¼uân©’¶Uf UÒξ­Åubí™6•på| /l‡œÚÁCGDŒ\–3ö›–ã*Ø#.mƒxø‹Ý]2 ØÉ•,XU’ †¹%ßpà²B‹Áš*ÔnéJÄ"|ì9j›¾«:¸8YõŸïm6 7V¼sVì—fü¼b†å*‚™¨”Œ&/4Ì}¶Ü£º¹³l(÷õJI;çž ¾U&Õ™ê{‰·°“˜w§†Îç/ *kørt!ƒqôðfíÝOQqý÷žàÏH _4ÚjÊÀ¬ä:3=Ô—$][ ٯß;Õ#)†ˆ„Èhj-r%®Kò¶¥,žŽ²@R?mÞc‰õ³¾Âc„Ú@½ÈöØpíOÏJéªxÛD¹G¯CóŸÿ³ââ?ÿK@µoËçÆŽâió`=‚›¬wí½õŸRßn©Œ»À€N§Ñƒ"®”5tà"{{ôœ“•?ž‹N“™ ‘Ê ¢nã’Ú—Ï5k¤¸äE4ýS£(«"kñ«Ø¤Òe‹È$tæc¯+—Q­•D¨ c6ZV‘îRŠZ"Ìß#s ÄTÂú^4SÈ<ã×óTç®U%³oŠºŸÌ™w"ïÓå>êÎ2Úžš lC§)ÿ Ù‡2_>´ žsëHÊMF«÷ON[ÃGŠÞ¤,àèS¢ú Cf¤q£dKõøºä–ÉýH]_ËöUMëºÜ[[sÄnÐÚÝbÛ4³™„êKʨÄ~ÍêçJŦɚx¬,öËœÐz ¼âõgñúÖ=ðEéëÍFEè,´»ˆÇCEU1¥çvUøâ›¢S!œH¢¶&”¡øþŒc“àÈ4牒Ïôž‹ÉE„‹\„k ÏÏ¡‡Õ¦¤m|7¤Û r„©k<ÖŠža/«Ä½IžL¬@~>™ D1fóhDýe¹ik¸]‰›S®uêë˜jQ[De®Š°[]‹•Ȧ×*dºnKÔÉÄ/µmþ_ÌÅ‹ÞRÃoYâ–… VJ ¦bˆO!ÔkŸÊ6ý¸¹“Å (ò!ô.î1âzâJñ¢SSú*š±1â’ŒVw¹ ² îš`2ˆÜg)^˜ž4U…]ds§k.üÆÑ-1ÓÓ ì¾k€{Üu#€ÇÞì" †$óºÏ5Ì ‹ 9•7N¯ÆšC«3tÝ,×A{QôwÁÕ^$׎)GŠ£¸]Ë­U⢑'9Q¥–·²]雯…ì¨kÌ\ú„,+‰¨½ôåo£EQns'f,Q›„ÄI2 æaS„NG`.°ùÍã0ädÝyžïÄ3èÌ{ôKžr¸pÌo9à¿"»Bio¹©Y¤¸C2ÉcnY™°—_*ÿ²Ç嬶¬^:«… RoºFÀsõŽC+n!Öz¤¹•Úª8ÿ4 —ÊÔÏžc,-²8üðÿÚ‰Òó¨ÀGk¬ÅŽÅftN'' )ì_N^G®o(€ç¹&;µN E½yn“PqI˜ðMZ^®ïN¤@à»äc­±ÕšER¯ÖR“¬ùÆ ]#Q¯½9ÇÃfxìrø´ÇÀe0¸Y øæ­¬ÛSúyŒ:ÉÈ#,ëï‘oVäï‘.\sÂÕ‹A º¸43åÔÚ‚š‡)é?ñr‹!êG1L«ë WQ+ha“E;6OŶ¶LýbÒÉW6ãÝ¥¨¹¹qÏ…ça\osm3Þ^Ûò‡¿÷_*éyît·ÓOä£x‹ôÙ‘íEîw¼ÝcÃáo[îI,NÆÜf£x*‚xÈ£%æüQrÛÖEßãªO…dÙ£†Žî–EÔ¹îâæs¥èn³ô‚.õÜïëÿŒ8Xª÷2k”?BaG–òœÓ³>)æ›RÑ |)¡{Uñ³u±Á×!ž¶JÖ%Š\1$¯H}{“o›0’l^¾~'CãsµÓzYz±hZºxóâäÕ†eZ¿æƒÐöNgktó2 ±çÎýœÃÐÅì-?‡'M£öU8šq=ÌzÊU‹üƇ´€$‹#.íMÃØƒb¢<ß"ï~J×¼î’ú‰¯-_pã•8_ÈýŒvGXÂNѹ-¶|—Mw¬äŽ(€p©¿€[w®Àm—%™Á}ã6õÆ.±+ïÚéÞ‘C wLí<ýQf™©G÷Bƒ»XÊ‹ÍñU ~á¸÷®{]›(l’ËÓBúAŸÉùcþ¶ÁF¶K;g¸!s†$÷‹8s›GÛÞ‚?·>'ðîl1rmöô[E ¸Û€ðÎYO¨Ù–œñ%»Ñ–i„3ëΩ¤åÀåö‰J²Q.gÎ@×Ýs©Ëë-“vþÆiE¦j—j0SUÍ}A®*t~øóFq‡ÈNÝÛ#VåÌô]VHœ¯´õuǶ¼`–MÊÞmR­ô¼—Â&é]{xM¦C:Dì:äÒc‚!ƒ.B·†f'’oá4ÚúÑ™1³¦t`CYGŠc ë@»d<êfÛÚ^Ÿ {ôß_OÞ˜Ü,mŸûR%]"Ù¦ô3X‡¬’i·+õÞŸC¬gHv£C:²)ä#ËDÄcæíWYÊ‚°Ð_^Z¾\àtÚiZ]þÕ˜š«(¸ë½’ÅGJj®J®$™¶ËÑ^K3Ócägy%ÅþÌzn+‰X,Š#äjX³vÐEûvÝ«p82¯äç&—VŠwµ´S]™h¿ñŸžký1–)SâàI{=ˆË¯)]Cb¦øpÖߦCJx‚¹ïTaÄ~"G#øþóÙLÇÊêx.©Î ±L—wf&_0'ncîÁÆÀ TÒëŠ[6tˆïj®/Ä‹ð~Ü‚»­œˆá`èÎÄãÁÉá³'××ä‰Án™Knæ‡IßÈϦZõ“É>ˆò/ƒ(Ü‹¾GJÇt<€p:Õ¹ØWéïpÉü¹ßÜ7emRecB_jVmììÄ;ÛË‚ùUˆ¿dóÛÙ)á©m[¶ƒc7—ÿÖ®ÂuÇ$µ¬Ç5‹ê´N‘,¹ùyçª&—2•RÞÿø2„ƒþU~Ç%%ßЩ-ÙÜùŠ\çBôÃñ#³²k/tß,fç‹a¤_ÄÈÁépàåó™“ièÜÛíÄñ0tqóPvñN ß~on-s9pz9`½p^C-¤ À’e~ý…}„±È\ø~‹¡ìWóÈ™.ø¦õc3µ¸ÑDa–žíP³ŒKëÓy{9mAÙ]b«C ®LåLN¦ùCá~}”y/j{Zögq I©˜Ë™Œ -®Ÿ2ëЖãÒ{|d#S鉿ãyö2X]—¤T,£cV¶7fÊç·Ü£ 6+ÉŠmÄcd´M;@:íØu¸]5]ÐÆ¸­f§*óWÕú}°?Ô% 1º#Ñ6cSUÒ³"Ñ®´)ÂÕQ6uly1Ú¼Î6ñý?Þ‚¶¶á>t‹…3&>@dÌ}@I”º(ÿé®lꊑÈ1Háî Ñ^Tš;8t|b\¶óá‚"m”hÔ>6E§OêZt9⬮”- 'œìœ¹ƞ謥n×™—P½+|-÷{·®-¸ÓAZXdÉù£ÏŸvŠùÈÀή¦î憻°-ÜíÌ<â6&QÇŠÞS‡‡¯£pBK6J±VŽBý‹•ˆzʼn¨¿×K÷½½ž„N’k›Ò­½Êø»¶s¢÷óÏ?¯Kׯé8릩bØ€Ó* õ1‹Ô7+iB”/+Iø¼¯@ÆH-à&oï.)w,Æ7@àXU{W)Ø6-?Rì¨þJ_&ªš¤HÐZe𢠽cÑç¼} [âËåQ•‹ÿÏ¿œe@uMÜŸñ=ߨ¥êB& ìü¤v"HbîDÈ(]Wæ¯m× He_¨¬Û»ñ79í±‘ñýÑÉýä„Ç»÷'¾­¶ú÷¼]EmÏc 5‚¾%Êöñ/«º±vc9Öž—áî|ËæÃq¾mªüÉ€{{=m<ýÈѯô[ªß¶?&Ó%ðà?³K·*_ð"¿r¯ÑÍsÿ2ßyËvü5;Æèÿ†—Vù¾ûÍÌäÉǯرÿ×ïùæ:ßw×µåŸß3þëw¼¼Ê÷Ýo¥& _±e?á¯ßõ }ï»+B_µu?忱ù/–úNÛ§HˆðOîÍWøÿŸ½/in#ÉÒ_„Ò4˜îì©„Þ©Ó{ïÏBCtÅ‚a2N†Îö‰ ¥‘\ÝÐQˆ NrTäƒØXɹ„âÔ E<…P®NÆ«RÉ êy.IÄ“™öGM…F¦†'˜¶JBÜ´Ûn™íòH@Û‰Í ûxlÐ1‚ ÞúpS "QA3“n'ŽQLÁÖ Ÿ‰¤±ÍYûà³'c‡ $¯ÝíÖ}Ÿð˜TQž|P†²ÈíS+ì»g…øØ3œ°a@,-xS l˜›˜Išõì=2°½ ô{;uÌפ ïå{:4ÐE%Ô:&Ž˜9¶GŒYˆ03Tp²´«Ü†¸Êàõ£ )~:S8Ð,M‚—c¼ð†V!ÂËÍQb4^—q‡(;{û Áغ‡.Ìm"‚ –=Áøb¼«6àgz[9`Nl´çÌ¡r€8ŸŸmR¾ÍãßÇ܉2Ða)£ölžÐoåå]XˆJçq0[$Ïéf¨Oa²D-¨t{`ßé(³üÔ ±©Öȃòù1SÒ¥(-¼ž¶·ÉfÏXFr!eô ‹€C8¦ß¤ˆ<̦óW胻™˜mȪ‹`Yój™#åƒH'~Vá•gã”?DÜAl²§˜{^@•@ ÎNA $ŒQ”}•IfÐ!Ö=œeB{¹Å—Õ5Àj æàô5ü«ïÓ ²7?_aƒåšÊ$%è°W¨¦µêÜõÙ½l‹]^W˜òq)yk–P¥ÐŠ4Gþ*g š £uÙÈ#Ñð ü®Jü‰%“bvš í&ô¦¥œY϶¬(aÐËgN°+?‹âE&†šsß+Ii6 eæirÐ JZò$Þp_ ±6®Ò‰³’…>#Ršª2Áv7:ÉÄÊó_µÊ© ¹ñ@ãkêÐF´¥f±Š N\¨ŽÚ¨¥s¨ëãG’PaÅN6´¢š-®ÝÊ{Œ,LOÍÊÀ!®&íI…²l®ÚLµÍn¾­ú"`|SŽeÃ,¯Ò:;V”• + â<ùë›/Ü­NHïm¯oÝsgÌýìtœE÷|÷¢æ ¾({yÎ#båE—~çxµK&‘saòp_¬‚ÆØ t’˜$ÍÏëûóØVèŰ»×2fÐ/ Œ„"¸ø>}u„ðI ˆ(?1À`ÙòŸ‡±î‹7pŠ=`ôÍþ(†i¼•ž'=ö€Šö.Š=9òMxÆÇâDö'ñÓ—tL 3ÍS°3Ó ÓtlE¬Ð7«Ì_SD<…¡ŒbóÚwÃÏ€¡¤)ãœe˜™¥a‹Ç;0¹ÄÀÌLðF‘϶õñÕ åecvd˜¢ Ê¿¾–<Ó.f,€âòYI/iæ+©À£âC·¥;v%'™˜¡BQ`U¬Ì >©p,nÉó¦fì±¥‚Ü7¨Ãáð :ÜEšw!ÓpX2LNA£Dsš6¾–Ò“â1ߢTÞ(Ÿ_ñ>»B:ÊbÓ#V÷»Y"C†â$ ¤ËôP|5ä†ï¥§ÇR|ÀT†Òã°r*A¸…£¢íØx­J–ðT>¸ZÏ*s.Ý6ø°A«mÔÌm•µ¨õ.¯iC” me@Ë.Ýuä¨%¹Ú œ˜vÈ,‚Ó—“RT+*Ì´C³GIj6õ‚!í…‹fêš%·¯I_ŒÄx[ PQTž“ÎwÈ&,G_'y¸î»‹Ã#ììâý‘Ù›Ÿ1Œ¤ÏX‹˜î%“©S£§Ò61‘U±–³©Åá 4ÑÓSÌ‚þœsVѬ3"Ó. ×s(F{nº-Ñ~µånÔô®½)Þ£gà0‚ÍÌ0õŒT5¿]EÕGÄ kÂ8Ò¡- µÊãía ¥?½CB#Õ•÷4?7 ïØg°Z ZwXë]áÜx™U¨¿¹ôûª+ö­ @‡1Ö›!]ÁÒãˆrsÜ u›T¬îô"ØåŠ‹ÍpaœHÈ#øY ÞîÁž‚2ï{æ~+½ÐF…#¤@)\¶º‹hÆa GÊvgô,LP188Ó†ÁcÁ0š´ˆ\bÅÒ²Yk™ÊÔ"ƒ¬òȼ,˜X¨R| ¯36ÈSÈ8ìdÍ(~q™Ø5ÛØ´AO×ס'ýý`¥·2Î|2YAGË*lõÔ)}tÙ¸‹¿í+°«„ì™ÿŠwÇÂ÷8+ï>­æ†gÃ@©1“…Évòð”Ò¢8Οø¬'께G+‹egpJ¿Ú·¥G|À®2`Ýh\6˜ ‹l|Ú-y\³­`² ‚4hbÆ û.KÒct1[@€Œq6›ÀA‚â¤51¯ÜIp¸‰#{ZÞÅ‚l†|Waá`9Æ“„ìŸçòš("¼Ò¶Û~½µ†fÞZýŠrÿôä/…½ i˜ +âáyð!Ê,:.M,¤B'9I­?§‰¹L^®$&³ÞA4d6®1D²øÖ´I:¢T:—CŠ X@ÛqBµb’)l ƒÜH‡LwŠEég„µ›wf]ÈHœj“øç/œxdkMÄ!ë~ìb&ùšXw×kw víù\?@…—*í¿Ä'›ô$Ó%æRâŠfh$rÚ± °\Ŧ¦¢ 1ºv :¨…ÅWxþÔ“]ø¬‰6ؼ[5 ¥€P ‚ySós?ô30›.ãçYå¨j|—“ää[l“·‘P€-p0VY×"áëC`Y¤•YOÅ…°ü²Ö?hA0@«ÊØ,¬wÝ Dn(Z•Ri\;ˆN\;AÎ(Ybæ0*ÇaªÓ w‚蔫 Õ§Å®Z§Œ‰nD™XA¼Ÿ’ëÞf˜­’€*ÎäU9˜åæÙd5èD§Æƒ‡{ÂEH¶•æ"¤ªÙ¤cÌf¬ ¨Cº—¥®lSQø,y“O«!:ïVÝ’‚Æíí¶ñ""Žì½—9æeÖKGëhO[ù–^±Bdƾÿ,þÞ!ûüZò¯b…ýÞ`ü¡Ž397DŽæsÝ¡±neÒ*§}éž^Šn:7R Þ¹ÂJÕÕ)ɱP"Í£ ï~Û‡ê@á0¾(tB‡*aФY:éVõŸ14 ö†«b ¦É‹kf‡ç´‹öoiZùw•‰½ûõ¦ô!ó"^Šç3–:´×Äæ+w½&‰Nõp”Þ(üo‰ lÜåJ18‹mÑvoWK\‡ÔùAƒí‚éÍËwÅÞXÖµ@/µT–0gP¶E)ic€c& i»¥53ÉyII‚ÓÛ@JÚ”IB^å´G«•ÚMFbz×h®”¸_žÿGIŽ$ ˯,蛞@Ÿ¶åxÐ {™ïŠZáLnÒÛáõ6RÇÊ˾’«9T•V׌q»ýi±9ìå/¡»QQ³^ÆÉ ÐQ0*fǤIÝ"T3JC¼TˆÓŸ‹÷;\úªÄôŠMä)  mfM.›¤Ù`àæ±È`ô8ò„ãèÙL^„—”†am äÅdæW(ËÈ\Ý˾ÿòrl¾Üÿ¹Ú® 9ÑÌAÿpÀ¥f„"KÓ¾/ÊJù£,A¨ÔNiÚ¬ç7)õ«¨À—,V·¬=°Èήo@ypCy"=õÁN!3šD>§?ä)ë\¦ÄË©òãÅqRž†‹~ƾªžÞÚ £©‘Ï!DJ3— £Ò•†WL?¬ÔÍŽXQ>mŸC…^`ª."¼È‡G l˜,½RÁ‰ç¬y|œœÌ§*‹„az³ µÒ–ZlW)Øz1{Ç`eÊÏcÛÝ*Ý„Ñ ×OÅœ¸ùy|u_âa„'6p¯JÌÍqXÎÎÖŒcTa†k8ý’­ÎCg…žTªÉ+7!{ÊRò›$‰¿_kéÀú’[õšÌî‰ñ°Ê¤tžên@Œœª^ƒàñæ×"±Ö$âfL 4ñ¸§S2`ëS±E@*žF†m½¶ [tñø‘<"Ø3®»¡—@ß:~¡£. sóÄ»ÿªF³ò+püNÎŽí´˜Mêlد+9Å c$UܧÒW Gïþà)Ê™ñ£·Ý†½®[Ÿ<^¤.p!C‹M?\œÍ“f+x¤Ö•‹Ñ7¥®PÎ:ýQŒ5(Tx­ÁG¢[`fèmlâ)6‰‰MŒFû°Õ~ånÕ6èÒ$û$?¦8Š£l‚g¼œV™é%yÎJéq/ºSdÖ0 ñ#„-Çvôþüì ŠýÐÉHF]I€{¦„!G¿‚܈¥³¸y<¹\£G×H-×è±5‚!/×è±5Zò£G×h —kôèÅË5zlFÙr[#L›^®Ñü5ºZêG®QØ[®Ñ£kä/×è±5š,×èñ5ZòìG×(^ÊþG×(¹^®Ñckt7Z®Ñƒk4 £@U\luÄê{KD78<üÉ3–hÆã_q&eGØ>õðLŽ–AxÒˆæLè7ôòçUv1Õçu9«l±‰ý–n¾æÌ朢î“ížÙoéæ+άìÎù±OUÙér›/2Þ¢ßÐËWœWÙQòcïPÙñcÏäêoF•]?øLü¿•™Lþvf2çÄ#lS†%NÕ,eû·Mk^_ßv†ñß w.œ?öLÊfá:“±WµÝ6·5o‡Ö¼E³³}öL3»ÉM]Šõz‚ [ ¤wþ^È@ÆÑ?yz¨ÇX½=ÿˆPeøçð£KÔ ~¯÷è9(LÁÏžÂÉõ&þ›/Òkú â˜blÇz¢›ˆK¡a®ø7%Ôq±<ú;(¸?ûº‡Í¿Ö•Òå}Ÿ[¤–[ôoQÙq°Ü¢ïs‹EÏ‘«OÛžåîð8Ëô}nQ¼<@ßïî”lËô]nQÙ{¸Ü¢ïr‹®–ÖÐ÷¾Eeïr‹¾Ï-ò—[ôoÑd¹Eßý- .,õío½;ñRßþÞ·¨|´Ü¢ïr‹Ê]Ë-ú>¶èF{X>¾ånãÆ¸ë÷ÊuÈéL %·åuel ›Rîy‰ƒJ¾è>ÖhŽ L? J`yù¤ƒÞûLœKÆmøQ [!.ÇbÛE`~î‹ám`ø%¢iV¡•+g϶Ék¬ÍŽe@!`TœÃ¯éÐÀ=!zQs"ªŽ7MÄÊ¥¾EÉã°›—¯æð ‹'ÞW‰¥Ç˜NQܽ§úáU¨˜<#Ó#ÍŠ†+…¶½¼£ÍæÕŒ,ì™gñ> ¦´t`hrÆddD‚´š êïÔèË‹‘öõd¢‡8Ið‚xg_õ;Y¨ú¶…>Vv ÚDØ~/ê‰KÕ! {(vRûÑ£žŠÓN §‘«¼ìÙ·} ™"ªÀ«µõuĨs‹7±Âá"è‘jÚ ËÍE&bÂ<<8Þ¿oŸ¯Ì0¸:Ѭç½âùz­Bkur´V"Ü£+ ›AàTÊ`Œ ©Ë}~¿Y22 ¾‰˜[¼¦ ÇzCp‚A4©h‚ Y„!™(œ1þ‚[0]…íì>ƒEbœ‡‡ïâ´¹°#z@$±†E8¶£ €J| )Œ§±+þ‡FG„ªeÍB®¼“ùÀûVÛ1!ÜUI±.a2Ë^óiVƒEycÈR§À#Jbª&(B¾Ó.‡+UÂÖ"ðÉz>ŒõX\ æS“Ûajêôy¹2§åZ[v¨RUŒ" ÒôÅ C˜ÜÙÁÞoâ:z‘¿=ðzC7Té³ÏÄþñAs¬¦Êk¢0Mšgç‡x@Ú­Vk>ÜO(ÀøÐ >àT+Ĺ‘O¥ÌÍÐWgIÔ  aþzA¯wè¾›\ÿ †·*~'ÄÊ®  ¹ÿ¾Ûj®!€=¬öÏ¢µ¾õú5>Ÿ¬âC'RÛg~÷¤gðx%Š_K¼.+*N¥÷§ÒlÒ¥¾1€ko£ptÈÌ‘»)W᳌•Q ÒH ÉŽ~û:ËÃÄv»âô‹SÐu”ØññŸŽÄI-TÌ­¾ÝŸEÌßolglöžÛÃûŒÆ~Ït8c£©ÓV³•olÚ¶Ù5ûÔ^ä{¿›ÿÈVé‘£è)OT^"ã ž²$õ¤çæ‘”]©yäâüäòvzù€«b—õ„ÃòÆ ÓÏÛÚµáØ¬}›´¶õðæ>ùÑÊþZìiRÖò‰°Yâ‹XkµX^¿^+Ú8¨‚®w àa‰¦ƒ|qŠ>Wïӌ󳘾š ¨nÄ1¯Iý¯áÀî3žïq æø õ±²|¶*ºô´!‰GÚ’ÚEJ3ÍG gÛé;¥ZEe\eÄuÊ‹iÁ“ŠÓ4a’0O°õgˆ{ŽåÿSt«õ UѤpȼQÕß=Å'Ÿ,2‰Ž7UCSk€6‹Í…ÒhiV‰é“—¤Z\°OÚ`A9v\S“U6³ADÌ;ÅX˜IMÅ'W\È0º»ÿé€lˆ&YâjÙŸ¸ÞuäÆ ØÊè¸k2;ІÖÜÖŸ†:]Û^k¯µÄÆ«zÕ¯]q#Þcl‘õ(Ù7ÃL±}ê+/žŠm¸Dy™ª Á™yYµ#ƒÒlz½f—¢UH ø¦' =òVàk ·35î;.¤’:@WI*‘0m‘þ@?žÈÌO;Æè' ³D÷`ço˜r<Õ¨Àœ=9‰±èHçÓi8LÒ¿þo_ìŒÍw^ì>$ èéÇS˜ì­Xw ÍqÛ}Uƒ“'ÌÆ}le”ËYïÛGM-#_É0ŽàxÞçK`~ý””»¢Ò=SçÐúˆ@—{·¸š™"—,#“³M-Óâã–•¸|,Æb[ ¾”èÖS …CòxHÅ@6A1æÓJõ\.Ž.‹ÒÅÔêÞYèâÝÁ •þ&€búÜFg̪½Wåw5e'Ô`Ђ[¯±ö«Z~…Ôn÷}KW‘JyG 0ôSÛœœyüÙãôzäsnrY`¬1ߺ§¨Dý=ôZv±%q@jm5qzÇ’ä¿3~LÀÌöi[=i<{¬^2ãbn‚²¼.Z¯ÝÖZm¬Ý“±bJÛ—@;ÁbÀ[BK‡΀j>‰Ã@æÅ¦~º_<=±O›¢TF ×!È;ÇÀµæ»fÔ+XOX]ƒ‡—˜g¯ qŠo¶úr8$ôn‚¿¶ˆ¼9åýîÉî»ã³]q¦Ç:;åX^éN”À¿®BUÅ •{5aGÒe’eÁä.A|d‘;ý»qvb€TðR]n}&9ÒãHt±AçæÏÎ8Ó‰;žB7ÍÌ•}j¿ÈÎ6o®ØS6ø¿=q~â-þroCìò—ê6ÿTÙçŸfo4ó²ÿ?wZÊœ?noÍ(s¿~ÊÄeœ)Ć®(”hÜ˜ß ¿‰¤Ïb %a©6œAÙÓi’‚î Ö*¹+×9N“ª~˜cš³D‰ ‘R²Õ¹þ*—(¢[ß8ܽ;tc=Iëï¦JTE¥ävÌf3@ðƒÛ~ñS,öÐ(¦ÓÀË úõßÿgúw¿oo¯ÿaòëÿ Ňh$v’¸ß¹¥nÿn-JÆi4ib‰ôJ]¼iÕëÒào°5l£Ã™ ëRT`1ÍïQ‡ u ‘‰¢PÏ`v_Ïs³æÔ$«‚s é^føzÛ­]@”ðÏÒ÷'rbê8ˆ|aNaóËsd5kIÕ'‹·’9èøÍìîÜVfÇz X¾Ì Ÿ|S ÝXI¡ù›¢,·¦/}üÜ€OñØAÏFˆÏ£19ÎzXU‡0˜+C뀕 |!÷Ž]óÊ8]¿ƒM°Y?øÔÖÐPé*^dس*[Ç ‹¹`NýîÝT2RžL^ìAƒÉ‹5Õ‚CLE;v$}S”ü}îjà¶µ`ÞÛ[îfmö»÷mÏÒU"*Xfúæú–Š€MRÊ\6×4ˆ6å;9¬ÀˆN¬Ä1u°ü¨tŠg9'ßjÑÍâËç%KÉZKDÕDäµÖ|mç¬æØ1–äÑRÒŸ®ù³3ŠïÜ4k¢¿*ÔéÝB‹õ{pnþ´OKlm´Ý­ÖlöàòÚÜÎeJVZcm*d=ëÆ8€åÄ¢:æg^OžÒí)Rœ­éDE05-¯Ñ{‰,Íemå;ëÝDYH…—^fIü2é£^B×6þãe>ËyWXÎØIŽ5Êv”tdÜÃÊ=·iq‘x‰qb×Ç’Ì;´‰@ß —/Iшˆ|€é% VBø«ÓS@:#«…®í$6ùeÝMù†Ù_mí2–ß^Œõ¡¢²Ë#™8Ý#ØFÜÑÒv&¶òÃèvgÐ ®AIpJ´5± Bá§+dQ”“¾ç¨âÍÚ¿¸Àýz!V.ÕÚµ—†"^ðþÁOH@«Æ9ÉRû$Qtî½7z@y$ø{?KÒ(Ðw¤NPÅNSáÐ×X±aꈯ3òBGzr’r)\ ¢íè&$7 ÷=L%ÆêÔ&Žñ²~Ï&—7‰êFõdþ ´±Üª]¡¡&€ë[ßôÏ è<(liJiÖר d)p¶Ünõ«Ü£ ÇZîzžíôm×f®\>\PƾVñoåÒù½ —V*ö^ØXæ¤ÂÇ˽x5cH+•-ñó 'wfsòʰ™«ß?5±õÙLÝÉ™ºx€©°qåÄ;ÎL¦.~Swf0õÅ›ç1uñí¹ú3 6–ÝZÛ^{5ãárTŠå)Y¶…ǨÊážÐYÒ<ù{*ll*•Ã’õIc°jc óÇÓ<È´¬J:¦òZÎŽpÒjônÀÇ©^»µî×XŒæ`K€áZÄPÑGP?QeD¢ŠÖë×­4ê0Ìë’C ÷!OÉXELúÙùÉ¡X9“1êçÀÒÙI}èé4ŠW|AÁ¤÷¬£_c,ÍÓ‘Ä"ƒX–4}G‹ÒøœÖÚzcmm-xÅ f”070-ÎD Ã“ÞDì6ùÙl1”ÉÌ…Ù¼@ëPú/Êá˦K¾?=|¿{Vx :L–:wLœÇ……Ã,èá©€š5HIý³v°©×BŠ–Bá…uð=ôár L‰\á^¡;Ll­U&mKÉÛA:ôDÞºUmðLÉL RZcf¢TÙžÂ"\«¼…?Ó”wŒ–hÿüìÞLÞ"ð&gìl¹¾"…T˜û5ŒÒ0pÃÜjåÏ“âùbçÊíá§N?I”ÀK(/såóƒºákq$mw{cv :ãqŸ_Òs/Í!¯†ˆä×!¥†ä&…ãkjJ“ïßöæ%N«Ýhm4`ç˜úÚb¢oïwÏ›­µ­-~Á¼zy—Ñ=ˆØ›âÝÃx‘»5Ñ“ÂæUßۯݚ3$ÿÝ>Ôn»™ë­¸§iÞ(ùvhž¶3}Ú(]¸¯Ä+¬¹¸qÏI—b┫‘Ó[ÏŽó«€°Ñö¢c&èl"€-$&Ûé¡í9;ÿp|~²+.£ 2ÛòTGcÙ¹’`áÛ+*lÛe#¥ÅÉùÞî/»Ý·ÇÐ6¡¯šãjãÖÂ^\š%imlºÛµ<Õɤ²{2Ñ}Ø.ùŒ—Ó}tÕÃ*cx!þâ̬„]µÓã3VCL‘÷j5{¼ü‚mi£P˜Õõ BÁÅÈ«þ|* 8_˼vÍñ¿±Öj­‹Ö«{Ç~æçû¦`+P0%Ïìò“å+¾]º$+Ú JíÌ_.¾)¢ªžˆQSEq3/a®CæNF“9”Tz~$§ªšav‹*ÓK±ƒêY§üunùžà>íö¼Ì—wúNìÛÒÇݾ&R5æ'…‘ §¹ˆéÊÌÓâôãur*S¥ðåP“#©Ç¨”á_±œF yê í ZÄz€”˜j3Mœ)&ÈòûçÕæŒ]ËyÐnœV¶í,"×%°†u°Îiï,S¢‡„‘HÄ®8Ã,d¦ô€Ä§c9CA~}>ËUJæ¦ob(Ô´-Ç&—Ü ñßIt£bT¥ú•çö9ZO|ª$£‡!%8=ô&“H÷ž½Ð)ºÁK ß!—7n ` ”†G6í§Ž™ û¥q?‘‚ [X‚ñ"síd0)Ðá{Á‡€ô:=“& ÔÂë=Ýf5‘àP”RÄAþ­ÏQ3èœ?÷ýá¥ØÓä˰G™¾ë™ïòË ó€=‡,IúªXù9ßÙ‹·s=±ÓéÉíöVgr@ÙBï!îb{†§­÷CóßMIi–T¡J[ År=Í»Sé°ÒM’GÃ:GHóE˜÷ÿl™;ô‚Xëî«§x° ‹ç8¯è ,bã|Ù=ÍS%,é  H… !,Œ&W•èF2®S….1°~1°c§á~¯Ñ7 ”ªþØ¥6œ%ô¡Àê:96ª“3Ðæ®#6˜q²¨'ÿ#V–¡kŠ¡ƒxgPyHÛ¤L*‰ú!]Ú!0QУ …³è~“°¹`Rƒ$4YPtm@×qGéø÷eõuž‡:a†1X¡;W>üÓé|7ŽK÷WØí~ŒÑƒ„ªa>u†`X~ ²cO@VÒ&cþÔ¹Õ˜UUй‰tß4IWB͸ܵåEåvÛÁ&Ín¥{“·‹ˆ9uM`áuX‡Ö± g]QùnáÙã’æ$ ’ï~ò¨¥›kfc°À€â¶Ÿ­NͪJÎ †fÿÊä³­·6ÅÆÆ}Lº<·î#]íî¿;©¹eH(Ö4êpÖ#zZyÃäÇš»Yv¦ù{²ûïØ÷85h{ï™ÃÝ/¥¾Òâ ŒÌNŠu¤F˘O~[“dwÙXÃp’‘žB»`ÂßtF:ÆïY$ Ù„¥TÃÿe÷l÷ò$‡®8½V…†²¯#±¦ÇF爴x§›o3½òw¿ßlo¾jÿþmmmlã¿›-øw•ƒ`à‘/ X ; ¦±º6¯mÕªN6ªÛì]’i<íƒ~ÔMå†ƲDŒob­<¿Ð×,C8TÖa€˜.Ÿ(² óÐõ+ì*KRׯõü ÙžôyV]ºLÙwÅžD0Kr`ÈPÃì‡Àɹ zaß+ÜpáìdÖ¦±Œ_>Â(ùÓ(½Så/Ž~ý·4õMOÁP­E© ‡¼ˆÒÏXp8¶Óòc]q ô™û84À)X³+Éõp^ÕsÊm‡¾t·òèî­¼S«åë¹ppai½Ôîö-»d>+=2C²a^oýÿN…¥eôÄ9ú«RiFúë_<СaB x¨Ý_ÿbŠT…«§Ì^ÑÀÒTÛ=ñÔ‡ q‹Ïèë—è§&f´øGÔ^Ö7Ö¶[@@ëë-K@¿Àr FÃí­ ¢´õvÑàK_Ù=ÄAž"ðéŸ3Có(®¡ÿƒ8 Í$ù€ÀÕP¦À'¥½ñÐ7ýGF&Ì#F_ïò¯¥™ìËIüt ºÅÝOâÄdÛj 9tÎä‰Eþ€Tß3cºÅ\â}؆0‚ýx-Ë{“ª1Ž2£ɸˆõ0Ч°Òã °¡5Ä‘ÞÙ­#º,¼¹vJ%÷i˜öZÅØ3üW›í7DôV©DŽ wéb¨Ì´ÛÚÐΞ²[I‡ãm‡™!አoþú¿¦×`Ú‰“ÈÿMžx¨,!¾§ëÓ ¬^´jîuB>Ü‹ú€.)àé•ü¹Z95`ôH Ç­0Š€°ÿ­—˜»¶]3­Paî.¯ ¥í}Šü±Y$3RL;ƒ“³°€ÃúxÉ8“t·uKQ·uKQ·uKQ÷C‹:•<(êºxØŸKY·”uKY·”uKY·”u?´¬Äʺ7 SúKQ·uKQ·uKQ·utÔ\Q§ÓEÝ1Ææ/]˜KY·”uKY·”uKY÷£Ëº°÷ ¬{Å7jˆt¿²E¾á 3ùª7íÍ‘MÔO2Z¬wMrè\ÝõÔØ,¨¯{ ê.£‰æÊÖï¨"â[éƒHÌe—å…1‡ÍAyîÖ¢$å(gm@7¸9ùߟaËdþ¡¤“Èlû‡(IÄ^†ðnL{#9EBH•2¤ò q§#MS8¾ÏÝr˜ælÔÈÖ–hƒ¶s¯(ò@‡Ú¢¢3Tä>ŠÝû€÷„”÷ΰ¶>(¡z\æÙ2à="árÏ ñ툞m…¥´Û cU)Ìm·I‹«%Ð+Ûîm^ùù \´u.RQŸÐ â‹ð¨>Ç}ƒp¤q,Ô…“ib͆ˆçÑF¸ð´ç.ýü¦ –ïMÌL¥K`­¥ñ2}:®UXh¨=X©aÌ/‚Ñ®»¯iijV~¯hjX|c1fs6Â<ÎBލú¥’ÁbóÀÊF@ó¦ÊkSاßAp}D]zÖÚ— ë—ÿÉÞµö¶dÙÏÃ_QÈ36F¢cÙñ#ãÅú‘tâ8‰ÈéôÌ ±(Q%©"ŠÔðaEýë÷ž{«(R’•ÄÎ6ИíK*ëqë¾ëže޽UPEU|W*¾yø© ÊE¯ô,EÜ[/j t¬W'}|:5¤xÅR–(©|NÇÑ©Qÿx4Ü‚,vYØ8çZ¢túö¯.4ΞúHÏ×15j­Á/,¿£‚_ àz·M”ëÒw4öª*Ø÷>Šöœ1.«³^6Æ‚ºÈ`nA³g®Œ¥åj½€Û¢æ"¤‚Ã5é¹°>5‚êu¤D®ò߀äú§•@"óÈl¯,N[ð2CØ!YQ!¼yÂ9j)ü̵»-`H–—ŽIèaृº™u%8wÃŒ´á/“¸3MeDd‰¢¤|^!ÞÃjä)Uòµøœ’Kýqí~ â~)pH7`Ñ›kAJ#²8S¤GpÕ¡@Ž2 žo§Ùn÷Ò/‚cÈÀ80j¹¹+>¦HŠ®ckðÛ‚]så{ØÊ}õd¼'j‹[ðú¹i8ˆæ p^x€+Ë¢Âý‡lôÄ•r¯¦°ÝRO,Jµ¦r+ÛéÔôìß»ü‰@PrAé ÐÐOè,w5õYSn@µ60)—V”‹' /©hR¡Š?Ù[1¬¡:tdmx´¹_VÖOz[²«úX‡ôÊ~жV[ívÓÆªm³;aD¦¾Y`Ñ× CM­‰6"j‘¾S&ê]t¡Aå'9>NN™^W(»IñmÆtûC°¥JÜýéÌ—ϘþŸ3ý'r¦ÿÖdiK6¢¦1/cðJ]RKA†¨qoQ9 *b|jò;(Éc3ÏØÎc†ÝPTåÎRáw:!Rì«K›g"Ú'[´ÑQè¦õ °EÅQýkúڰœ«¬d4Ûׂ_À«[FÍÎ `RïÌ™ùrœtœ’Âê¸wœ—Ñ0+SçŒrÚT4JÿgAb FÖàC‰Z¾„Uò¨•£e(óõÅzwAû÷ëm ,zú6$4U1*Ã,ß@*?K˜ŽíǤøMÜ•ôÏ2´ˆü½æ¹à x»‰¿’[Îpb`,® ¯. ÁdØgÆ&1¸°¦*³2³rÃ|Ï3ðšøåïѧp$ŸhÚÉ×€–+ü¿‚ǹ(Ô[ÓÅ–œ åóJ»nù›N]ÁbËÇPà±ïWü¹IG"§°ÇŸí¼-e;ÊæÓ®ÒÔþnx|¸¼)Õ·©¶ÄA PFË ß;õ¥EB>6 ²@Òfhsq)}lÚNrU‰bKÔRŒ^U0Î1BTí—šTž¹ˆ*4†VD'<a` †{—ù†0و财öÎC.sÅq'!áÄ œ6ÀIPü¥7÷ÚÆÄÇÜjžû)Š÷œ–ç†Øtªº¡zªw¡üVf¤6µÔ•ñ>ø« ÑGK½ìW®Ã·i 'oÑþ)6E4Bþpï÷ÎÍ–8;%¼¡=j©Úè…. !ÎÇû"嫲å}ÒoÁÏJ .0„Öî³ãðx3„Á®p~¿âçá±µ úzsö“èÐMÄ£¾‰bÍh3¨N=]†˜&uÅß2ä/tÆž ½ÄZ jvŽÈS!=¥VÀ“ÜïLÒ6*é=#;íKÔ0®2±«Ó07/èA97ÛbˆîÁ€u¸jæ‹~äÕ9¬M mxbó‰¨|Ž@k C íe³¼hÉ/@ ç9Nô´å ŒèÉõaK#ŽèC†Ä£2¯F¬Û+ Kß_þ¢&–ô ÖäF–Œ^ÎýV] §r>†ô‚Û{蹡»j¢­Àa‹OpªÖÌBGr¤YIv»Å®0Ù-­x:ÁÊd¿on~ó`šD˜NcrÕ Òjÿòç£ý£Îß%ÊáfVÍeàÔª ÖYK™¾-`0þ íQ*æN»å¡`ÅH´yàl#à'ñð˜{Æs“ÞL‘I×Äcëü{†{–¸Ú#Ž{f†æ ô½Ýp_už®@-3¬ÉûŸÎh”C"Ø ùÓ0š«öò´ÌL›{ZÝ5`;jql%¤?ß\w/ÙÞüV¸¹ÊçÔÓ&"3apBÚÜdLÓ)?æ0ßÅX„¨kz6&Ò4ÄEn»…Mmc˜™©Ø‡òNC̰lr¨¤ÞÞËË)О"†¾øF†Ö¢0 †¥Œ—ÁaÓ‰’úp~]Œ×ÅJij%7w.üÙ">$•4­PŒ/œQ#ÕCCÃu¾]×Jš¦9T"½‚÷ )°„a‰ò¬‰ÑÅ}Ÿ|xCAm± ¸ÝˆX´8gGmÝ:è gÉz,;>U´^×™š†ÅqWÍHøÍ2K6¿BÒgím¤…;€¯qBC¢\Y`:2£I§<²h-äP¤¡.ˆ…šOX6›ÁÀ˜»à±ôþy†/²@e^Ú5šûíÕî6 玈j¹Êg> ¤;apnrÖùµšÀöÄæ ÛÇg7—l3WFÂUpv¸´!8c¯SÌ‘­ü³­„'ÓL…A Ó´o¤¤×þMuHYŠÆ¹ò>ø¥æ"ê0f:1)†(Ãm5´(ž ý†М=}É`Ñ·©?’K«ƒîi]ÄDzï’g"Lçüà㎠[Ëçd/Ü?¼ÇB«!&’*§ÝG6¸¨»êû+$çãú.|aŽÌ=R#) ÕP`ê‘fch¤B¿ÊÌ|ñ©;O¢QšXîÎÃÚ= ¶e­Å0­•v.sýÅ@Âå@d`ô6ZFséçi6D*"Zø"ì¹/–Û_™„”±)½Œu†f+Z¼äU매šx”ªã¾8õ<ΖªH‡#`êpïpø¬ïE˜GûÄ.¼dQåÌt¦7†¡õ¢‹ñ˜ZÌÏÐã¶9 ðÎBê³ X’ù̼°é4eèäiæUúbŒŽXÊ;ÜãHQ‡ %:ÞPbÎ¥X‚/9·‰Øý+=Ê.|Ø,Úżäh‡ï7p.o†I†Êid¯“mçd%Bpz¦-/R'ƒj|Xॗ`çHp¶[ÿ›#[ãµðl]Œô”¡ûøx:ÖY™è¦0#‹¥ª ý^ÏH`ÝêyL/;I þã”tEZ»Ç®¬tÖd(jËaübÜå¶?SÛGÃB6zk!b2²¤ˆ±0}±¬r¨"+ݰÒë8•@Ǭ®y7t0 Ý¥Dœ¬Ö[Xt¤Í<Í6¡ØJ¬If’R/Èê4³Nóyžý;ì»ù*„ä7¡>ÞèÒ»Òßè= +Òq9Ô3}ªI˜¤mûu´I2 ôpšÒëév0-$7ßgpó½ÎJmZCÄ ¦cÚä…e;†¼D½|qyqëpíëtáÌúÕÇû‹Çë6_ɺw ½åÔŒÏd†Ù|}Ž:OîláÌyÄš¼a¡Ø A™©’®µl¼ÚÊ >~x+œ´ ¹6 KÂTÎ"iÌ:ývè8ƒ@ÝRƒ‰@<9,· ™»£Wz¾ÌÖ){ÀL›ì/ï¨s ©ý5wÙA^F¤Tç–n¶ÞhRΰP$(ønñb¥¶¿!?¦J;‹II…°¡¿IêöõœF£þ¬’‘oø6× °÷¶xmâ )g ~Þ× c ƒæU†·{›!½ub7 êžÞ_¬NçÈ´½¯©ƒ-ï'äP&#Ìõ¾¦ÿiÒFe2*õ†F$TÕ;C ¾~5z¼l”ç®Ç€žBÀ=E>^ó‘!Oöº(œ¤¢æêøÖÒ©Ï*Zã"åÔ¥hMüËk vªOû¹"÷®³û45EÓòc6&E—hYVÄzcùû4™äehúåƒÉÂ-_oÃòÛáw-a½ýC—ñâ/s°§‰)³t:šçáÌæÑ£§ŠÞ6Lõ%^ft²yÜnžßÖXm]v¯ÕÑѳã6™§üoÇý»× øß}÷ùÙαûëPt9þû¨)B‚«ëË£öîΫëîíîñáÁQx¸ßÞÝÞD’¡ºîk²¢ˆSùãtBº[ŽMë´ø:TWzˆÛÄzÆî¯SjXt‹Fõ¦·z¬I´©¿Õ rþ¸L·ž¸W©ú{ø™äÒ†=ôbë›hµjüàóþÍ‹ûýœA'i©^Û,…^6쌟îuHdzá ò_×›^’âaèׯ{µy˜/ýŠR´Y´»œèI™ÑH¬üA#!EgíHHQàÁ¿§wôDÂÿÞÿ@—¬ (‘7aD´§iDg%´†•Ñûçåÿ)å¡Ïpº@áÅ7¤ÿ¡&Eñèðkló»h±ñÀï&¢åG –ñÝ„4Œ½xtï,;%Ô›Ÿß©sÖe]ØMµeRئƱbÓ]^ýü.|ÿòl’½PÞ¾b7~Ã9HJòV™3[•zìr¡µúÙfEIvÚ;AjÁ ì͉êœÕ>µ1"¡ìLÕ™MIÁãŒó*û¬8¼¹…$2§bü»@™æAŸ³­Ê<Ê79¨¡A¤Ò~.àÂ<ùœÊ ]þ¼q°Š¯.?¬öj1„ùÎn.M¹3ÎhD³E²&«ç°¼8Rµ+Ãb÷¾óÝT¦úA7Ø)ól ³ƒ/wú6sÝ.r¹‹báÌ:=Šq˜­îÊI¶¬÷çÄ6³¹ìÞ¶)ƒâJg±zU‡6ï™ w†üáÔêIH´Ö3a4zÄ)Ë‹¶ŸK=…§#<kD6Vc—› À¼Ýw§yFyA¶—K1ãnýv/v!?vQ•EÚx ÕBm‹¾ƒ•vå´åu¯¡%|pŠ–$/"–QQLŸïì˜$d€œßÎåÊ”9ÐFÆ#Q`L/¢ídâsC0ă9>Ü"LŠx€S}¿l~±âFA^Êmxçæþ:Ã3^ž½x÷R¦eÏ; Šãt†}pýP·ÔM‚€¤!ý¿&ôÙÝu¿æVÓ¯\ïfÍϰ|Ÿ¯±¶ê zMnM#².,?ôÜI\Û‚lµæQÕZùóuúK½EoI-ZÓj:J“çêòælåGl+¾jÅàù²|¨ýÜë𚂳D¸¢FøµÐ'E`Ì—´ ¹zy#;¼D¬ý1„©OjÏ>i>ŸKp#uqb‰C¼µ«Õ :xH|œ"õç¸J'†):œ¡™ÔnÙ¹‚O0ËC)±n6áœtIÎß S=h©°/—¾è/N¹uÝmÏl]˜ƒùçæÚ1Su6Àa?.š¤ %fÔs`í"úÍÞ"î…u[?˜M|ÙEÙäJ­u.ñ±|{:LÊ…úCÚOÌœ&=£éôÓž™¯„ä‹Sõ—?ï=ëüÝ µ óÅéÈ´¶SMº Ãgá³%éÝu™?‹CPs@sòÃHwMEߨúÞ•‹È62Éi‡šV®MÏ9Ñ¥½ÉK˜ŠëÌÉ lëu¿?xqfíÍ&3(\GêŠæ’ïÑÿŠÉá¼ÄêæÃõÎ'‹ÌNRº?½={¯.ö¶‘5W/éÙDtt„íÝ•ÙÕnOw:$ŽÏ_‘6G†Ó…¾™¤ÛòÆo”¯ZîP„$’J! ¤_RJHšðO]c¼X¤yã ËúúŽf8Mÿ{`ûÿµÿp©—§íˆµ£=f=ËHGÝkb2dѼ¥]êvqd7§u³lì^·öŽú9›GK´ªß÷v‚Y_EÊY'U ÿk»CŒ¬·h‚_]¾226 j¬„à  §)_7^ëפ·X2õ¢+¨0Ù¼E6m4–¿Oû¦‡dèGo¿Ìîv×½‹]ÍÞe?d±ß~m±o×-6^×\ðö|Åÿrt8áIŸ[}Jìõ鲓_³|ÊÔKðdvÓÄÿzxü|÷øè róûÖFZçk[?ü4Jì8Wûœß¾Gú@g‰H>Itù¥O_å·ßFñέÏHþ—M¢ÌµËå&)É=ÄÝÚi†/ƒ<¡n»H5rü½4ƒËîÒïv7¤7IÇôã¯ü“û8þ5D夒q®DPëå¸4Š3ÝÎÅ芑@9M¹¬”4åü´”uú€o}´`«÷Ò^úÉ\r[3v_p²žs­ô­ŽSÜ@áU”–P™$Â)R¯ì'êio~RðKÓ¡…yvH¸ø6¾®å-4<û“%-%+twöêÁËsÁï¹.ŸIÌ íŠpyJ´¸BvÃÃð©ê<[ oäWú#WÈÿÿÈÜÈÌkYíyD&yuÁ ¶2õª{þkjÆÎh¹Ð='îLSw7H4çø\¦IÚ·¾À©®ì°f‡²™²ž-âÔ®—¨÷Èž‚ $7, dWwp^\1?ñ&©º#NÖ Ÿ—9½jfðÿ‹âåõyF|ïu÷xeå/×\ì’â)4«´ïocõ|ðÚ„Û§ ùü]ùk¢ˆ‰ì·Ôkó¥U FøE <ü,¤Œ°ùÞn"c®†‚qHþqi-u}v.¡º(- ÕåBxyÝ‚þ¤ãþ( UÀ|m«74‰.J ›,÷ù¸dv‡ÈýEe¶ZA¸W™éI }ïÇOÝÛU²þº—K„û`0W_©ê rmð¤Îúô›;£þi‘ã]ÕN;7Ég=AŽI -'‹òpW:NH”˜»|lý ÉÛ[Ô€ü?°Î˸t#)ˆNgĆ¿Í²J…Þჭ£%ÛÈ.j¬òÒ6²´_VuØ·_{Ù­d§vKNfÅiD±¤*;ŒËíõRhI©¢‰ÖˆõÆ•9Y«ÝZ iktîØ†’¢€ÓÙÕeÌWà–>’\H¼-cöÒ÷W_hTÄÊÈJ=q9Ž..io×ã’¿\"Vš +RQZé)|‘ï7`¼ÌZÔT@åd£¤ ¥ÊèÜʽ¾néîQ¸€SicáBXɱªˆXn{£$-å(…#-6ƒB•¤2"Ŏג×ú¯+\@N­ÜJ’X³¿2R–,nCÏ¢áÒÚâœkª³Iêt•tê8)o†c¦4Øçª-éV:n{m} wZøÞé)÷= 5¼ÍAÐö:EµìáÆjïº*lÕfåjKg™žCáMʉ9šs‰B—ñÜ©žYÌÞáå\„·™2/Ë|R­˜:&mC8õƒåj™°ºËþù\~”mˆâ4§eûQ‡Ú• Øe›¤Ëêuµæ‰~!í¿O¨ËýM˜‚8ÒÈÅÇ*»4*³ ×?±º[Åd»ª&g¡æJ¦tìÒw` w©äâ-nKô•?ÊÜ…èä{3-{1I¥d©»ÔöÙôÙêÂ}6üׯÛNɨlËzÖŸxÐÄéÑ3#’PDhcb; ©ÌIÙÇ{po1°yuk׈ýôdÍQJ¡ÅWR$QÊYHxÏ5³°Å’ü*t+›o‡¶Ô:ÕY­ä¼²ù¾ýêöSI¯q‰ÕÇ\î’ª—ð•R>€Ø`8×ÝQó–Ü„f_ CU^ùúíôÊËGÏöšwëϺ?UÎηˆ9“Ä1¬äJr×òj¸öµÕ«¾{“Y(|'=X…þ\ÓÌMLöÖÊ•~Ååpè‚&þÚ!ÑñÍš¯Áe“¸ß¬°8¯Ì¤Œ ‹ |Ëï¢gy03bíA(U´ÖDŸ”+šR%DIØ´·H†¨F‹ùWš(ýP&»I‹_‘^”,‘ð²¯DGÎ;'ùÏÇpµUX`ãn)5Ž ©ej‹ú†gq»º™ü£hôM\ë쇇K5jnל‹…Í{MIœ%kîõV^”úÂ'ÚËå6O%ÝÒÿeïOšÜX’5QpýüWxñö«Œ¸pÆÄ)o¼ÄD2È22$Oæë'G pà‡;Ò‡@€R«’Þö¶Eª{Ñ}EJäI-jÕ"µxRÝ‹>÷þ¯ÖOÕÌL1ž‰‡'%€ÃÌÜLÍLMM‡Oç’¦ãÚéiÈÞe:ötXø¥50Šwí3öÛxßæYŠÀL–ظ/B¢Ù«ê†#x‘Ÿ¤Ê<Ÿ© ¬`aiO ¬‚ó×îæËç/â^Á(Ò’·«±•¯jÂß,•à*4em–¼Aø|f´„‡_eí„eð¡ÑÊf#Z<Åá×dÔ`¨™…‘Æ{Kÿ´åÁ9]Q‰Ç>Ú´¡ý.Ðæ³m’õ!l=ÛžÃV}-"œ›`YÙQÖ/æ6ŸnÇ¢¹¸8³k<¤#6ï ËÁà`]rçg¥Cro—„ȨklÐ[U¯àh^?Öiô§¬Æ‹H MܯL8K­icsÆ(”ƵcwÑ&v0 L© ïNµŠð+’/”3:Ó Š ñŠÈg'cÝÁcÅêB™¶Ím ®`µ2G®ÑZ0Pc£&š‰@Œ êÚ¥_8¬Ï/`R«¹ 3˜E¨+ÝMâÝlj›Œe ºù˼RÑ,&YV”Ó é2RSδ˜‰AN@E„ $Ç‚ôqkMÅÊ63¾Zl³‘'•$ |sìQ#µR> $Sƒ œ 9~µÏš]ÑÿJ_A&Û}>DªâƒqÚ³Œq¹]ÉO;ÏìÝŸ/æE7RmP¸•†èîÈ€Ë˜èžø++Q 7©æ• P$ Êb¼ïS[±{ø§½+}¦"…âTE1qÄÁPOTÐwÏ¡™> !IÙtF?òÚsÛ pø©ž×˜Š®Bn›àÊôøcWiq[ žÃ ºŸuB7óî°Ú~¡9DR’Dâ, ,T;CýŸào¯éR ø/,.ŽˆÓHSo4¬uªåH1á¾K¼R}SÕݼ¢`ãajT2oµ¨WÏ<Á§Íx'óë2.@Û^à±{Lå…ÈáUuï7ßät6àwZEMt]c0¡6©X»ÿùEʯ§ÝY(RmOp©&’·q¶Û){§0|dAøÛ4,¢ÐNrm¦Ú( bÜ.kŠ ·j‚%k2Xsž¶éHØ¥šÖ‰ê5OÙÙT?Q6A‡yÇq×î@:q* :71EÐO<ß×#Á ÿ‹‰d_s`ºh¸’l„ó07s½Xå…Œ"Pðœä需þŸÇS%}8#nÅñ÷&“‚ɱ«%±àÃ8mÙ¹õqþt»¯>¡‘F&¹ƒÀl2E*ÆyE$ÇÄ]ÞGÄtTž™Í" ¿ƒx`õ—H:¢1O¡& ßÎJ{ &€œžÒýV¸j¿.„Q4™õ4«‰å mÍL' isF¥º´¢—”•tɪØ;´¿ ‚Äføk¬®ÐqÜ=V†ÀŒ$Ëí ì³"äßE:…Ò•èJU×wZ¹fèˆ%‰Ši€n”QÈ+=Óv¥[Œ¨þþR{e…œ§©ñ#³­ßª"²Å iã ¸–Vj¶y˜FŒ? Š-kÎèYµÿÖæÑ0Â+¦X¥Tü`.ʉî…VYT¸ÉbMÓÉþ{Fb½JU”W] ŽTÑtiaY»(nxP1‚3èë®oØB{*§­Òâé¾)MGï—U­n‹ÆdSRŒc¬'6fzÒx!2„°ÂÂm`Û a$½Ž(‡’÷x÷½P‘ðí͆÷ÊÝzî½x10r€°Þf¡Ðâ…\I A HZ¨›eʆuŒ‚ˆÚkZfEkøK8p8ãO’ºTB"K°ÞéôcçÌ Ë ø(…mët”mÔ©5jÄ6ZØò°~Öqþ‘ØFîNT$RK¸PˆA6…Ògx ®¨Ÿ+Òœ(}³Q(Tcׂ¹Rß…Ð0\ÄŠÊkXÐö§‘aw„S®0ÞflÖAÕØëX±‹£eê²K:µoðxÚº¸8£—Á;_4ô¹xi OQpíŽÍ4Cª^Mƒ gô˜|;eÔF¤‚I5Ý•µ6Ñ›M)þñïy̦¹.ß#?1íLz·$õÜ&/vÚf„$U Ä#º¦2Jk”<>¶»ìÌ Îá ýÊ7ÅZÛ¢¤TÒ7pÇ…Γ]j¾Ñ:ô[%UhÜ©6·”8Ò®lÅ`r£ ãl/×xãëkç0qîÌ3/óͬ®²˜çç¦ÇT(ãyj‰¥@Õ=k$„úaÕÊšbád+G~ÛØs,Œ»`Ò`ŒIb†GïŠæ†•df°´×ýxåH‹ÍÅý>+Áñ¹gs?ætScþLŸms©¦Q¹7ZW§Ð}¹k$zjŒkŽgÚôL›½}}ÅbBó;ÆR…p`ßmî†r¤3ˆ1V“Àa#B$‘¸>C}³:28.aæ±ÅÁAÉ­8( ªé` {æÐ^ @u̘ýÛI0›+®»‘õTÈBb|³TRÛ@ÓFb¦× sı¾®‡!óN"Ê0˜9ú¸óÎ[8V›hüßGÚ,QpXÄÙŽBг!NNGgm©Ï)رf8ÊZMÅrI2ŽKÛÊðÃêq9§Dum'ê´z´eÌp"Ôh;aí¸AyjŠÏ¯aû‹µgذ3q4 ¬ÐdœÊs˜•}vÚ©@¹HfÔÝü÷T`ÇaÎÁŒ-‹¢é–EfÎJ‘—RäR¶¤¸ˆ= °‘ª]p˜Ê›¬Àöh#N„ÝVn´Šœ¡èj³Y¬b­Ð½t8uÖÄPÐÕë.zRå6·538EŽ.+Ï*vqÑÙ]ãAÎYÌÿ·—<á(D«5ƒ•|cdQCïæMÜÂð èkB|¤©!®ø2J¤Ò›ôòŸm«Áµ®A,‹ÉAwuÀÇ9k¯O%{Ï&€Óc© JWœ«`v4@NÎÀ'[Å} ãî'˜y#ó‘Ïþ®ìH7ÖCV;Xh6‰|C º}™b‚»gW&ÎÓÔ´¡DÑ$MÐ…Y ]6dº×li{éέԟâ´tŽjg8 Ñì{µUgêÚr5kR'ŽèìÆáb•D*2`…°ä'§ýXÏ8¦;AGXøNm„.ðKˆsë¾òæjóåìjá_³ r¥qÝk¦`?yšµh2j jq¯Ú4:ç4èÒ]‹äs÷c¤›¨¦äá+k枤5ŒOFª2ñö˜`Úƒ¤rk[f Ù6@Õ&Q™4ÁG[ZÕ¨j’#@¨háq‚¯a`%¦PªÓõ~½dÓîPO;DAŸVŠb¿°5NÌ+ŸÓþüÆ@÷•8x&±Âì"dËⰱʒ¿5½QJÞ÷ž{¢¯àбëãAˆü½‚XI7"ï…Öý¸œ\©na8æR AèŠvW0 PÄ‹ ’L“Õ-8(?¬áùÁÁºÅybˆ…,Kûýh±–RZ€jVž½¹*².9N’6¬u©£\v,£WÔDØKG¢ÜSS³wq›Ç‚¶90Æô#ˆU#ˆðr\c¦åšli›PAšj¸B…Jn f¾Åºè’´Ü±b£0 o“ö,hcPIþÄG¥Že æ5C0rªýîÝŠd ¿p§ÉhXHðm NÎ’]Ã¥M|$"0Éo¯€ºåͱ ¢±X³Ü¿H2÷ùNºÖëõÝ¡´@".nùz¡f°œƒoæVá`²ðð–©ISîšÌ ÐBáer"`Oˬ k÷\ûva y±6lB>IàNE¦‹fY3c^—ŒR£ÓtŒ½N’I䩲_ªbQ…Õ’áÔ¸H8fÉÒ]JXUÏèûOÐ#iëo¹[/·æÔÀgÖ1ÝO.¾uÄ`“î—ÒÁ§²û/ñ«IÆj5«o©€&SC&¨•UO!4„tMæ0寍tá†h1ëµöiÍgMª4Rô¦2‚p brwìu3œ&)Ìû¨€Ñÿ‡µ ¼˜ÿÓŽÜ—¶k_ 4uf~(²-Ä“Þ &|Å€@ùÉÉxAäÐqÅ ÕöC&6±ÃÃ+Ú 0@{ö€²,‚˹F)ð2ncå¾Ò­D£çî ü§‹×/]cKùDbÝ1ÐÞÃ9øÆ~ Ÿ–m¿¿Ž §‘Bf'ÀOdy€‰þ%&^†ë<¾|Š Á4ò{lTG~ŒŸÞ2Hd H\X³Œ°”gPLÃ+ µH|¡]æ‹;ë¥ý+ˆS~CX7vî„= õõ7 ¶ôGæ ®¬¿{oPakcc{ãùæ+÷Õ3o{Ô¦ÅÅÙåèdï÷ÛÙý"ŠBëTWŠüÅ%CdÞê4%Àæú¸Â²¿ªS´žÒ 5Rånà…Yb̲ƒEa÷ï§¢ xGµ«§eíWèðd’•ÊÛB€B{e™Ã‹C)W %­Q·ºC³¢ŽŸž½–ÛëÕy#£täYK¾e…5‡†™Ú#›£ èËöÓ´-ÖŠ€½4»{yÙm]"iÊðAa—¬KØö^rÂä9~:²Îéîe²C\ÀI£~1÷)²|8) B7!ɉlHbž0e;ÿÀ}¡†—Í{øûÂüìU¡£c`©3š âê «è@ †^t¦Š©…kÀ„- ²+gâ|"×|>ÿ`°“9¤å×ò~_}½Ý 6_FÍ.¢%žy¯æî¾j"J5¦áûãÂGŠÝæm’A¬?R×ÜLfîÖlW͇\‹ænä/CXc`кn:ˆ³U¡9PÉP÷8;ž»KclÑÿ*]ÒÉWËèO’ô¾„2•¿)Jée”2øÐ÷£”Ŧþ¦(%^”«ÉUµÇ2òLd‹á:J[M•"âú«5îÞ0ÔSÁ~«ÚÙâHšø•F©£ßì/¤Eý^ûô~ýž›ÀêzüŽ/´fZ­oˆ2 ðïjC襇 &ಶvÁf¿îÑ –ëu=€X¶ö·t&õ’¥´‚¡ðÞ¤’Êߥù2J½Í£¾bâû«¬ÿ-Ñ‹¯* éuL×·{S+*ªKĺ\*ëhl÷[[%˜Û7D­¨³ŒZâd¢ûXkûñp¤Tx_bQK iø;•(¢péµ-ÏîÍ÷¥î·´ÖÆKét‡÷—%LåoŠRKþYœdy?¿?«4ðmQìÇýóeDÛOÔ×€º“¯v9šoUhéÌ]$ïJKçפe²T<;ÏÓôþ™­ý-­»ôjémr¢ýÜ&Mío‰V_?|XJ.(¹% ßb^ßré|Cß’°AD¼ø²Tþ Ê­$×ïmÍí4ÃÍ 6=Ìs¬·˜Öºézm÷: ºhë±èõk’ËWËÈeŒk¾zzIcßÁô2‚uóš¯`}nìÛ ˜Ø#nAµß¹Q¢2à¸{›ñÞÅ21oލÍü¯4V1M,êŒ1Á]ãÒ°9~&+ů¹KôÒcËšÖôc\éø›áĽ`É^B±^ð“ƾ ‚%K &&‡µ^òãÆ¾‚ òe+Íkƒüh6°í} dcï×Å™uŒùa-Èh´ö-ìr©|T!Ö.C¿4Í} D‹:ˈV `ø×ÿ#t×¢Î#Po®ÝoAôˆÂ¥W@¶H¬EácÜÑÖ·°êÆKÉ»D ¹cü+Ç7A±¥çèÑ™»ãDÛö¾ ²Á±ônemk\îQnU¦ÉoxÉRÑÍ%Ö’ÇÜií[ Yzµô jlkéÕc\A¥µodbàX¦o6ÚõŠ}b+< çlß‚$"¦ŽÈIƒ°ˆ]LÏ‹/@Ïj£Ýo‚ #•tÂÕëæ¬*2bøFd`½ ôD'¬65„;å$äÅü÷¸l–`NM ̹_C÷ÚGÌÐN }Ý"ïŸ$ûÚ1Ì3q³‡æg$-¢/€R6ë;·HÈmÛÇ‘fÈAµ¶ îίN‰äZB×yÂ?ß‹)ƒÊ†nÏ4ò¢BtÒmIûXln¸›È­‡áÈ6Ö«žpzµ:¾Èeî3h¶?—ªX5ßX¢^àG©íª1!øóZàl]†á¸ VsêÔüåÏ•Lìôâ§Tt»IeŸr3r¼ÿ¢D×I$ÄNMBÝ-ïÕ ³yÏ…–P|]™ð³Ã×eÚzü‡5“Ä}µÎ1úY™¸Û$Ô0)3 ßsLï#|l7%3õ3Áq˜‹y]d¾F¿¹F(J¼ò@:±X†zëâ+ ,¢ûÉdv'º3R@ n ÑPœzÈâ|ÿ)ŒÊ­‹è½MžFú÷Õ"úüqû‘«[@ÇÕ…~É•Y–¯–ËØºo×M¥~½1£ûF§—̘RoØM¥~½­œµß÷àÄ.¼llµ˜µFx»²¿ê8WÎã74ÖåÇ‚µQß0¾‹ýzC[9‡¿÷áõ‚¥C³qy7 íÆb¿ÚÐ’åC£öM#»¡Ô¯7°•Kò÷=¸A¾t`¥eý†±Ý¢à¯5¼ [:<ñ¢X:ºÛĉÖ:_ã·8æ‹/ËÍ,K»=ç×fy¯w§xÎý2†_Õ!Tcê>ç.izŠÇM÷ÙÆ¬^}Â…9§‡{†@sÏÅ•AÚvÇ1RIÃTMã{Dùu‘%GTûÞ@WWR¨v¸ ™römð8ÿ‘´ÏIî‘Ü™¨ij1?Qoœ#äC ç’¿JRˆÏŒÅ€Éš$ŽôK¬›67Rˆ„üVNÜè'H™•ŽéÕ€RžIÒdN}$ÙD«a-!‹ø 0iš,=ÕYÆHÇâ¯ÉT´ =ÔŠ%²ÜÛm5šèÐÝíà Råñw/>`dúz æîæ8ê]ì’­-o‹ʳígsÛc.Hæž³6Õ@a”=QúІh }‘¨îžµWÐåFÞ¨`<©(rwCó©Õõ»lÏEóÁÐËèäVÉ(Í”Ÿy¾–4‚aœº‡‰ÂŸ]¤—M[ÝNè…Zû©§º^>ü&‹gŠÄ>@¼Þ„xk4îjoôwOû¹§òûS_#3mºƒ‹‰Ÿþ¨#wƒÑuŸÍxšœHA³½¸°Ût?qQõ3ŒñXGíOmËÝUY;é¬(tIOœê:vèÿÍ4›ÒªÄG›¢È±óbÛ.sß`Éšt7U”Ü7>A±:ëbsݵ7¯OÖi:õ®]ßd¾0hÏ’r9Îèmk ä3ä8¶3縑¤“Ô]?Gæ*ƒ2Y¦«c¸õ*l³øÅÄÚŸ“ÚO—>g†p;€FffÚÎùŽ&Ýr“8¤¹%§Œt4c I÷ùÛ¤ÄbÀ|ÎÔpÇŒ2ì† ¹ÊùÓÿüôidìED’0lóÓI0 ŒwÊx0~jø#½ôGC@‡§‹ÉW¬üäÁ ƒŽÉì`\86Øj6YåIQL¼9J½9NÔN çÉtÀ v¨³ìØ}²‡$£Oî“‹¨Õô„6ÍäX~r@Ü9 òÒó'«òh§]ÍËð NƱé‘!èd2ñ”ù½K?3A+ž>÷§Ðß³ÒQʺ î ñýKo&mÁ_²ú¦p×öª¨ÿÇeª6÷5ä‡õJB«9¤î,Å9JmR/N¢É ˆ^Yõ6ŽRíœö1‹)Õäy=-<¥ÌZR§ö"i L.Ç©RJWn–#Ûm²jwVI=ILØ<]öÚ V¤ªéýç‚9 Ÿ^/6^nn¸[Þ³W³KU¸P—Þk¼ XP.üY96gB±Ð`Yª}‡á E+TؼŸaüW´©œ²Õ3ÒÁ‘w°MÝ@ŒaÆY­ëG‘6lû¨Wdã$-ét„¼£HtÄYNéod“…’úd2i*šý0ä4Ýxlò‡ØaÉP,HÓªY}—#™uä~ÑAé±w/'­ qêÞ{r‰\Mã$7 n㜀ŸÜÖ ü™eÐÖ8˽•‹‹Õ_• ]ÓzÃäZâgì¨%=&N3ã-)u»œNHÙu BN#÷C“^$5—#ºr(Àù—Y)ÿÙ4‚Y€pÌI­Ì»I‚çcæ©uï<ÇLãý™ü0Ìû®ø6Ïrö''**CžOHô†Nºñ÷#ñ©‹éXø;¡DZ7½»Wä— ½öïŽÛ™:U°—»oÉÿpëˉŽîNjג™+…XnRUF´ÞýrÏU©‰¦Ó8¾CUiÏD{¨¯à›>˜*“Ý&öånKµ¹PªrŠ:ÁTyî“÷´}}Ò—'N?œŽtªØ®u×ÑÉ狪.ß‹I•ž´h¼Ð›óãqw•2[ý(—‹!Š.è»;0[ý‘ Â2)×rH÷9Bß{1ÅýKäm÷6Ÿ!¯õ|þväc7Ù:q+µ|•ëU²eÅr>ÉMÏæèqIÊBÒ?jÙ©2›?Ù@+‰M© ™gÌv´ù"jú0û=c±g6u-ÀU¾ƒÄí—I(P "|–¥  ÿ@S…³Á’4p¦ªqwvŸØº«Dž÷:"É* ©‹|žxúÓBÅr…œ’Ô8Œé¦“èÓ(À5'åO3?¨˜(y¡† 9ÐQ.“Ï3åÚH“»ñˆ¤»›ñßJ™û’[ ‰WÌÍw6^yÏ7fTX’R,ã€3ÔÓ ¢uL§“K8  7ßtpº÷þèðè³IvlÕ’K3È\’ǧeŠP§–"4+hó/¬æwÙ—„µ’Ý0ÙБ!¤8ú%ÓgP]Úë·m‡6ÏŠ)ÿt‡î[N—£¦î.¾zökK…ÄÕ蜑8ÑùözïéU_5Ó<õ²åmÍF6—"¶uo:%ñzÓVÓqr{V¹ˆV›òHv½¿¸­QÙÖd¶­4"N–þKrˆ ©“Ø}ŸÓ.ˆt$[²1e>»M!=Êiv†±-#íœÙð§ÿbŸëà2ÆêÇÒ”Š¢ÜýüÓ Ò²SÒ+ƒ<Ëò¥õæ[?ERãÈý¬“±}~t¦ò0p? ]ómãùŽ’Á˜|Pv̈ðÇ$$ŠëŠR¥ÈKÄ´ ‘bëÞ #jJ Á¶·±MO8ËDïQ0{&X]l®&ÔnëEX‚‘ÀëW§3“ByíäðlÝjÙä`bF*bL+Ú½œÑ)³L™ˆ”øŠéÊfÃdòŽGÔT%òÚÑ® §ëÿ\Ûj8&Ÿ7òî¥åÛ °îîìãd1—¢µ×÷îÀo¸©¿þÏŽ-ò¬!éåÂ.Zc:ô²¸ …«©5ÉFã†ûTgݧc•¦j$꥕Vž7$ThI¿_4$·dd´Ô’ ÎJó ùí»¢$îõHPJ»A@Mp†MÓ̈Mg®|¤öFÒo¹Êò[~ëŠù䔘­"©–¤ó$H‡OÜÝQ6ôˆâDöÕ]ú®‡žùÚê‰ãRøü›¯#”>›fšäÕÝPgÙ´5‚êuªÔhÎGõþþÛþé¿ÑŒ\…ñU:üéÿC1Ÿ[ócKh4m¢fÈx$—š¯­4[H^‹t¹u’øßþ¿î®|÷øû×Ö˜nq\ôÁkÐ×´Ÿ! kgF¨!æ……×<(€…ëÕåg#ºä§ ‹3é­…Ý.äžs&ÚEä‘“jL¹É¼†sj‡¾ITÇÍiã=•'+Œœ×t†$š³_“¨=f:à†yª—TYºðß?º{!IHŸUˆ<‚t±¡o-_õcZ/^2дԭvÞ|ÅR¸ƒäCÑñG"Y‡ää%E=¢Ò4èsaÝÇ&|×ÒVwxQX/6Ôn;Ó9nç}aRùÒê š¢g:ÓîÁ€8\;»;~æîv½T>¶ºÍöóÙ±J•˜n›m ­*UIåC«›z´v›8𭄍#pÔ˜’º»CþÛ¢µ@{jJ¢>×ËrÝ¡ƒOÏWFFç‹]°Ü]?ÃßV§7;”#?‡ql?Œ‰{ìj?h •Ç×Ù‚!ò¿SQJ¢Ú®¾lóQÞêpÁ`Ú©§šÖÑrÄ[H z=Û(¬Øý¢úÌe&ü·Õ#§?[0‘»”^/ï'Ñ1œB±O7áÙFÙltz_<ùÒÊštˆ!™õ‚ò4+>z›å×M:8ÑÙ’D$zû[ZÊĈøKKþ”—([rES<¯ôOÿOtøÒËèsJ_Ôã8Rèò•âvéK«Ù×Ùb?ý÷¤OteAr7¥Û-b49q´NyiÞ™íʉJR÷‡]a¥†—þD='Náií̼ç$ϾãAâí‘üŸ:SyÒ"š)ïb'Þa­ê©â™O¡³[ƒÎ|’ªÏ˜t>Õk&AŒýôÓÿȾÒ+G鯯æZQ¹až’Ÿ÷„eŒø74–W὚Q‡z“‰cÞ=éì9½(<âï­T¾ÓÖX\8ÑéËXO[0Ðø$áÎN„öž‡‘|mr¿IKÍçlγ1UÞ*šcª“oov¶)`qX5&“lÐTŠWââÎâô´¾Çü·U©;țĆÂ9îlj*Ú{Ô,oÐÑ@>¶2’zJøO‡XÚôçêÓÊy3„«Ò·V–ƒQ+ŸÎ¹™ÂˆOiÿÓ<Éñ·E’|j¦dœ0û|ÿÓÿaDòÝæš¾CÛ–zÝÁ¢_ˆeÌgäCKÓ0Ò „Ÿi'Of»õ1€ë!@¦Šù{ ù[=U[¾g æ¯!mbÖÛï¿ÕÏÃ|v™“ÈÅé쓎َã¾ý¼€;KéZx²ÖÇ¡ù¸`•KÙ¦cŸnÑT8j YŸr5ê¥ÏUØs÷ÍcÃ7}kMp`'½fÔ,.M’®ŽÊ[8Îõ–ÚZˆ'Éy³ +jÖóí&>h™¿³EuŸš¥7¥ôš„¿xúB"g4rÝÀhUöæF££Ÿþ«{A¿IH‚Ðn?ѰŽàlÍ–¬ïó8ä¼³$|¼³{ùSKÅŪmktçý[ÍÌ)hZi4µÁì,”EÏiªTNeþкLbšjÚµ‹»CòGO!…-„‘Ý~}[¼"Ó,÷{¸3iŽr„,Ííò6 tÊ\ÄXQ)‰,Ñ"ûE…X"oá,Óß¼¾Uùf²c´`?Øbâv ŸÂôwÓª,8.¿Äanê}÷]ÎAùñeÞj=ž¡Áƒ¥p½|ö žb ¤pÖgœªÝD Z)|ÉôëïÿìÿÕ„ð§$ÖC ŽýwØ™¸\=|A)nóv/¹M¸æ6a =+Vä B„ºÛ…âÃíoG³××¥«„S\%‹îs•Vܪéà¡#…ØNŸv’Ü”A!íãAkœP€FÁØ÷‚ì–Ï¥ÃòóM,¡W[Ë—‘ÞÆ0-¦}áô»%þ»ÓB·ûî´%78ñ.Ç@éqÈ”ö^x ô³‹¼Bi‰XYLgÍr'*» ²ó*—·å†óûZâã8 ®Aûm5oT?ûØ>þá^jÝR{@G‡†HE·{|ttD§šïlÒk½Í¿žî›Æá² ß6\=¡Ê>.}šØi$Ë@³Éq0 ;ÇìŠDI[Ô”ÇÖÄNK#Xo°ªvhc€Ý‡Š¤m¼ÍÄMÆ9NÓ\C¥Z1ú°Ñw³É4»RÕNC>ÂðI¼ÿG¾Æ\ÖhÒIHa¯‚ã¨ËÕz/¼E£wî8zwvôνFïÚÑ;÷½[½sóèoÖß;l{[ ¿ßÛµiÝB6‹'y( Ýζ}æ”PPÞ/Iînx¯^ÂÏhÖ%®Î¤L¼Çb.eƒA~·‡Á/ͦl¨Ã3‘çnrú¯s£‚ñœž^®sé~•—æ:a­îÊßûýxâ¶C[¹¯Eò¾?=rÚÙðLšgg‡´îá9¼µ³=ëvH?9÷ÿ,a·#få¶ËËQ´W›¢Õw¥²ê°àÄéWQY­­Ÿ­“×ì±ËÎâD àÑtz|aË5°à&âfh K{NÅcNÇB/hI ¯·§£ kÚ÷ M3TS¶©ÃöN²w܃µ8‡sráíS{¿Øýý˜ËUÀZèì®ù7=ÇÚüÝ <}q±aŽD¯à&‹Q‚M{…×ï@]iÎ ™fÆ…ÁRUIDÂøQìZâ[·J¼FœöŒ &¹¡Ä*,šÀR4Cß®‚4ȪeI+C¡¢ŽÇ>ÎÓ¹2‡Î f=UÌìv}ù^+÷€Efgz“VÙ«çs8§îë< ›¯%žÌw˜<¼Â0So²á?T¶ë¡i ^¿ö”¶£“u³g[ÂÏ}Á@­¬GGW‰Ï<ƒkô¶uWB;*¯ãp8œJöä!ÑO1|?­H§=PÉØvbªç¶‰mš³ 2b…p5p„[»Í.ÜbÜÏÍçóÛEš{3î~Oà‡Sñ;¨RA¼â2V«Ö1Õ¬ËOÌØ^ê%nи9ܤ‰Å㥋÷ÿP²ÂGX·tÇPðSÒ2åÏsEÞÅé Wî…Ê;š—sf>µh¥Jö„¦ în8Ò²St¥»Ÿ¡eŽiš¥-:¯è,tÏã À¾$ß¡L¦…¾u/»ñMÜḥ2|®lÂüç­Z/³x¹'9Í—!ýiu{¡—T*ìëÈìÆÛŒú!€°b%mφ¯ÔÔ¤Šò©¸ûÙ}ZYDÕ`ֺޢʿY@£» ‡·W~¾Úçµ¶qeš€ð|N_=?ËêAc5ÑÈë’‡AÌÞæÑ£-µ¯:‰—K<ó%s®Ù“€OãâpwÿßÒƒZ$ï ý+%¬é¢Eèý;JÖá=šujgäæu•°.ºwóÕ‡Q°©0ÉhÞ²>„ª8py¤æ‹‘ÇcÏ—ÂgY¹ßzÛ=ÛžwL÷ŸmEÊüD¥Æ8”ÄϽèl'¦Å† {Wjð¶Ú£K’¯žŽ?´Ïu:Ž%¨·q4°Š3ï‘à€„RÝ!BHi…vÌÇG“A-uš†¸ISqÇ¿/“ïˤX&i#€›MD³±‡{"g þƒ†E’H,`ëo>›‡qdEnÇNžU³Cnœº…à8Ó„!(:‚nBùWt%CXTH9"ÚQÈ;š‹ÂX!xœ.‡yCîëŠÙC0fÂqåW-³èŒ'ä¼Ýv¬Ì*‚¥Ä†‹êi÷ è §=úêº}þZ Mº/¹ÇY³$#m³Ô¾5gØ=˜ÃW0iKh¨fÜh¦›…ÀRèÄt¢È…f•ÿ/`"øóè V7fšgŸs"„yEã_‰'¯¿O´ßRÊü.·U®‚&ºôVÕ…ÆÇü^¸ö·ÝºÓué‚‚Ëhóôì‚Îv újœÉáJ‚1[×(žå‡ÔꙀ#ÒöÙÞÚpŸmlnlo4äÃÖ†ã4Ý×p@tX*Ýׯ6^5ðgSþlÙo?ðúà'? ^{¯ÿon<ßÕƒ|y¹|ÅA©aPô[aúÐer½s‰P„°lm{[3â#!Ú|«wí¹Pý¾;ýAbÖˆ/šE x\Q'ˆR ¼rÕÅØ{¥Ö.N9Q5­#¾Ü‰‚œsÚZ¿ÿEkšŽ‰m5Õú ê´n4m/Ü­Mo–ÿØ2‡K»Åq3m£ŠÚ¤(é/,I[ž•+òÍ•tº;”uË:Wc"µ%ÊFWÐ{ˆ™n8Âì¾0[!¦uÚ°jÑâ—Sb.e¢›ÇH授=˜v" œØ÷7ž/ ^™*îFê•Eÿ ä“<âD¼g϶OŠÜ‚tRðA¸.Çð†ÝÞØ^@6 2¹‘hRìA2_°á9–g{sgÍLމfÊý1¨Æ`µ†¹-Zh‚f{3͸Ø‚d=Á|çÍùjáB3¨ð7Í”ûCPÍÄ(a¥mnmn. šIµr#ÕL¹?ÕàLËÞ?;[/IR%yu†v©Àmé—e—аvÿ玸LBº9ªÛåæg¬A•æ¸(~JrÁö™› ÷÷;ƒ"‚9bž-XÃe΄§á¦¢¿µ•¼tà§ÿ:ÒÙÀ=ùé_Ò¯áOÿoÄâAØêO©4B%•7¸? žã²,Âä‹…,Ä:.ßH|[ðÁD"š…a³#¹äÜb>2G¾2ó€I|†¹B|úNl}‘ø¥±ÚèýÙÀÐXäTÚ\Ãï%¶˜i%¸ ²éºÀÑ8”¶À—©RÜôÂ7 ñѱ+ÞiÖ°ÈþV½]@´áòPdãÕ* ©qf«ºO°ëÚ;ø±*v[ƒ wV>C]ÆQì@WÍk¸Ôv Rîá¬1ü!ã¿1+l?ï› pŸ› ŸÚË©Pø˜Ü E{ÓÁ‘LO+éð©ý¸tXÁ­–á4°U~ƥ𸜰—,¿1ŽÞaø¦ÆÏ7ú^ò¨£äËG_Z‡î@€²ÒÏ· ù£Ò È–ÓÀiî@[åç[Aö¨ã¿\! Q¬w @Qçç[—+Dá iˆ½Jî" q…Ÿoö£û‡A/ûxÅØaèƒ75~¾Ñyô+ö~Űs' µ~¾õ?~\0Κûç«$Bë1z?’,¬Gâ83Kd%qh4JŸdÅ)iMXw ‡­òóí’äqOÈôj…Œh *w‘M•ŸoüéÕ£Žÿë yða…²Àà²TrÒÞEs`j§eíŸooðH›6_n¦ÍE¢5J…÷!NV©þ³RçâË£Qg:Ì2-w6Aší™ ý·R¢°YÚ€Ý%š´š‡Ê2!L¢WyLP’ß ÐIŒ¤•&1Ú såcØ(ªnÒªÕfþu¡~_¡V«Oö’2ååd3u…ˆ– P²[eäÌü࣒âJ¶»ÐÂT¹71C ÷vÄx<›Qbݨs» 1L•_Œ»In©‚» Al_Š"ª‘3Š›5Qw¡ˆ­ó‹Qäq¹±qäKX®¡”*©æ¶ÁÈݵšÉbù¡å¸dû6³ò8ј®´= ŠüèìS é6q€À„ÖE*_ø¯¸)UT~:Ð:ÃWú–&rc„4 ‘{€-’[Ò™Ëi‰L<£lå¹µ¨dt¬“'Ÿ`6͹*sNR‰>û>h·Lyii"³iÃMu™ßôÏûœ5z©T/xL렻౟¨É‚Çš¦ ~Dÿ‚Ç€z!ÑÄi#s<6Ã*B¡URPŠ-ƼÊlHUTºEcBìòINüF ã|Ñs¿ ýEåûuÑq>ÄQÓb.V7Ôª¾2RfÊfZî²³¢Ë ßÝKÑ:{Ì]Ö V¨M–·»0[çvLçQGr³"ûN‘*¿ó|<½¶QßF¯}z”µ~)’<žšÛhoVsß… ¶Î/EŽÇÓzò-´Þw¡GQé—"Èã)ÁE¯ÜYNù‹»Pf¾ö/ÏoVñßé*Æ5~©kéãiü ýFÿ]haªüR«þñ FY|+ÀÝRTûňò¸¼ñ>ö€»ÝU4p{Z9‹wÓ­iõˆæ£m¿Ù´ª~)®ó¨¦…L€`'©[ÙGwÖ=Þ¨G/lÁNk¬ Êt¦j¶¢ê 7å}dÑ2ñøPóìṽV§ÏO ¼Î×óÙ·‚(pϸ¦·’CÕs‚î °-Öôq€,a‹ j\ÄÝ÷\Üš ‹¿U‰¢^·»ƒ(v»# þ%ñâÂïU¢Ÿˆ 4çZÒV dÓ [Œ°0 N•ž‡Èž™xºøí:åÈípcþ»°äëDEC*2Ðià×aÏ×I?Q¹^ÜYy3©g ªË¸•i5BÂÍjÑÇ^™4à…+Ó*‘n¹4«Ø·6“ïê¥ùØ UG‡iSí0ˆßŽ·5‹[¶C¼û+’ØS¹û ‹HÑ¿hõàÀ‡8™ŠS vsFŽøÖ»î‘äð³Ñ9±i-¦Ã‰üø0Z˜7܉ŽbXð =ÏE¶$AUÕMô˜Æy–.^ágU¥ø —¼ )£9Îâ?×4îÒ:‰œŸi? tªò$çŒõŒÕôjsÛÝš³i‹Áö–ž È]fÚ6õŠ·Tãs%¤”ޤޖª,¦c;ºù˜ÛL§QMG©ƒõŸè±ê«¶ï™·þ,¶ï’>CõRBãçècæ;ÈË÷ c)äþ6(¤ ä&Tæ(Tw&‘­ùMÐ(5 3[ hdM›w§‘­ù-Ш—¶¥0G#cÀ¸;‰LÅoBƒÜ‚&,¢PiÒ¸;‘ʺߢޥӢÝ6¯¿¾;½æÛ¸+ÝœêY÷¡›¤B}¾¹µµH0šá»ËTüVÖ8“³îåæ‹…*ÔŸ÷¡RQù[ T’ËZÚØ\$7YèÝÉdkþŽh„k|š†Í.ƒ¨lx¯¼—d–™ÁÛ8 Û• ŠÊÕ¢Ý>Yy§HátB•¼/kaU¢Ä ¿ó܃øÚÝÑ—–ép©t8WaÏm{É4'»Cw7Iõ|ÉÃÄCÖxö„}‹tŠP”dújAQdd9¡) 4ÔJÑ‚±,]š.L ¡oóe>QÇŠ"yØ›/ñ6ûôã¹zœž¾Ì:SyèP×ó,C—Çô½^ês¸ø&Ó4‡tßÇ}ûå³Yu(÷8ï„A×íû.Jbþ’ñ¨˜ò4èGìRT‚«dÕâÀš¶ÍÙ„svg 9Yá jçí#§ò6Ai``ƒX×PsìTDÎÓžž…Øf1ÔN‰1ó¾Q¦2IGØ[Œ®ƒÚ¶/žÓ®&ayÓÎÔÌ iýµR«³ÀÞrσîðG_3| e[3 ";÷͇§Gî_PêØÌ]“[~%ó- ?ì˜A¯‡¾ÞFö߉ÁnnJÐçKúüþðhÛý„Tvoò€Æ¸fnÝë7r•››x”‘ÜšúÔÛÒ~Iч÷wÄùê‹Þ>[Þ[“Ù~U/¥±ÅÄo£ãÍOãkE^í½ñx/‘˜Sa¹Ø<- ³â°·ŠñK;âa9‹žh©¸JenËÅ໩+ ¤!d:³gxù=ÀË~–¢v%omÍf¾š£èÜ~’ÖÈeŸºw%´Sÿ©$l &¸W&Zµ3q_&1rz/Ý­ïåÌBD~Q’€ûy¨à{ÌþÎ|–©g.ooHýVÍç{¯ª45.ÍÊRÀ¸ôuÖ4Žå`úÕ’KÆ£Ø=ÓIøŒ!òÑ.èÑ÷Ëûf ‹_Ú¯ý0îÔ˃v’$qZt‡P™VÌAR°,È8Ï6GTž×ì>ÍpEA¨#€25\uÅͽð x‰P#]ñ·‚‘åTeÝÐ ÷&CNóØàAšèÙQ‡¿:eþcNãMµîqD/[ãôãIÐ"κ± •sý8R’/—±(Í´ɆéôD8‘&)ŽH›‚4™šoa×9;ºÓÇ$Éô™ 3.­?¦†.“’ÚæXüÃ6 ¢'?øt¿èc„¦É•)HjY,%Kû‚NÞ_Oû:jÔ Ü/é²C²3Nµ­9ðK.éSI°’œyÙ!F×ÁfÚEÎJ$Bïrr9Ci Ï\~ë a;ûù‚Äw—­ýÿa׆Ù1—½|¼Áÿ>îØÉ$ùú¬2éíx¯Ü­g³lÿìà¸YæE¥Z*X0Ñ ³0<ªä¶…7˜Ñè8¶¢I¨‰?ËÆ7Á/.ÿ„v$Yâà0ïaÏ’ÕWjÚ1øŸ‰Ñe+ïN¼î×ûS…8J¢{$Pll0"äÖsïÙŒú\Ç}V^rzX'ÆÅ?.‡§ƒã†û™¸”¢•±{y%ŸZ)¢rzQxÿÁ~?ˆÀÓÉ ï-U d9ØM¹E+¼ŒH²õXĹè5q4ž{®}o†4€ ºý›p6à#€ò[z‚RZÁËëÙT×vV¨¡¦{f~?.~ÿà¹ø)ÕhØì•p{?w×èê4ÿ4ÜæßÃõR‚8?x{üù¨íõ¿òB-øˆ*ä/:‚;¾C7ìIêžíž5Ì_ê9¿^ïý¥A×vâ tšÌ1n^ú'*UIÚÐêùc âûÒÜ—ê#ˆPTVY-ó€µLñx‚ƒÍÜécP2Ž£õ@ì&ÁPÀt·%Ù-ï²J…ŽthpOý e¶]1KÓܨL¨gcÒRÎUɾz ó3ÚLà5oé‹j,§¢QZª.Ô»ƒþ>œ‚1“&X"‘p‹ïS;³öZº²ƒˆ¥÷]‘qšäÓÆ’³%%Y8ßÓJo¾Ó„ÇLJ3S’áUmVŸ)-’H‘4”³Ï#v‘(7èA,ššà5v© æ¿ ·Ùìf;&3žÚ·@ÔE–ÓnÆí³,sðî=÷ä`š$Ôs¼çÿôe€ýe»@ÂëÒÅ…fºƒÞœð«Ó¹—KVO+Žíùq‡~ÊFЍK—–i€>Ù{«½ñ°“gµ«Ø*• ¿ mòß’Üia®ýû/(î#EÇô†+z†3ÌÚg†ÀîÅFµt¡Ã¼Ÿ—Qizi·KltCP+_I>"‰Å}ŸÐý.R5 r•Nó0_>p÷É¢ên¥úw×<ý±ò´éI/œÚ´ã÷%’IàÌâÌsØÖ(5pЭ•oS QÑÍÊ`—-Ê;[”Öº¯éœa¦¾¬–+ ÙXm¬ý„!¤Î¬x[þUµ/¶î&¦ýQP oË}Ðì—3l¥ 3 Vë™Û~szò´×kq†¹¹?•Á€Å˜ðf³@¿óu½ÿ‰¸-mþ1íÞÔÜu"\M­dË£?¼8t×,®±À³‚„ìA,‡hÜël¨r¥ÂÀw´@‡ âÌl;€Ç‚ë3u­”al~Üùþìf~F¼çúz6„JÍëq̳Eõ_3rr"Â7WŽ_úý€yÍÉQ‚¯ ì0£ÈณÈÿ»õ» W@‡ñû‰Ž"hÄÚ™ê…tòíÒ8ÍZá4…òÞ ƒÜK7ì¡¢Õåžê>¸låñGò¹•Ž“)-IJUº"gƒ@ñ‹SxÎŽºü´hËCHµSzy Q7én·p‘ýéé !™H%¾»;æ¿­ ‰½|DSLl"ôºêþ;”Žÿ,dËœ»õjŸµó°öíöÉÕ¶\ðOÚW›V¤£¶è»Dæ÷ÀÞP½Éáñ‹3öζ³vþú`kkçùz0Or„mv¢ÊüÌ9‡ñ¹N‰™kÃÖ&"OyINÏ*††K+êhlžêÙÁ¢*:ÚÑ]Ň´v:: 4Bö¡»‘ˆ~‹Mžênž@ÑÂ#´«8ö%_Œ58È$;íÖéý™Ê”qÔœ\¿¹xߤ}NâÊK“¬`sFŸ5¹>ãÂdùͦ±¢ÊZqw¨¼o½`,7%?;´UóˆVv‚Ï-’7|úú°c£:viŸÞŠz §:2µFÛœ ÷_uïýyHñ÷ÇëÙ×qÆÌœ ¯íï¥Ìù—Pr•DÛŒâ æþµ¿œìmýðÃn›“•[mñ‚6°Gÿ"9Ïëu°k-¿ÝßsöL¶sÃÛQ™öK‚³Æ"É›}Û!±Pè£{õ·‘¡°àD5¬î;øt~~ôáâÇÏGçíãÚr­C^X#S’UèÒwŸÚ›áÓŠ=-;cdK>jðýäøàè]’M‹Îí[\*fF~¢'îg•þ=×_Ý]Åß½+ùÞ’†¶²í&3Aæ Û$s¼ì¸/w¼“'(§2s·i” Ë÷Av£¦Ì¿uS4ï<áÛ õªœ@ kÏt»¡D¨WnF·›¦x°ñ¾ÎXÎa¼T £ý%+f6h"fi•‚.‰Cxî“ü·×n°ÛššÞ—î‰îëë1„‡èìsú‰êqžÒiZªÄÝ„„v:ôâ^Æ[éuLW0“ìeê¾Cánéâý–n™tí"AÉ ´’ÂMmý½ÄÞ|õê9ÏÉ«·Ò g]>vþÎ=@C±] ‘PdÍ`$錊 ež(͘S_PUE\+Œ:a³ñZ» Rp _wò>ë7ØÓAKÂvMâbÖªÂv{Ÿ¹‰fîÓŒb„IÔts|ÛÙd§1ù˜}í°Â¾aœ¼ŠΥݛ·É2PÏT8åïŠwtËw8Yí¦ïDûÈ}{AwÑsñõ[”…Ëú{I@©qü¾$ ƌƃùÅ˹ø¨^ʉÊ_j]/î÷i ºÞh¼mU-° ÑÝËý€ÊVIÅaÜ‘"ÉL†”Wìâ"÷d÷ôlÛ[¦%eZb-_Ægg¶„±CSG”e¹-Fî¢ Cí"ÙÇEÒî¯à1´ïi®þ’QdÄ}:_ð] :8òÓk’+¯Ýv>ApÞnßè€o:RuM=xî=#ÚoÎÙÜÙO~ï‡ÜÚ'0G#“é”îÆŠï÷Ä+~õ\¾ÐÜÎîðåN”É¥Ýs&É AX8×°ÎçÏŽótJJo*p\rM/. ²l*È<\}cÎCy ‡ ö xÕ¾ÐuÀw¿ÀäúEwV‰^‘ùÈM9ßbQeã??} Sádv›§çO‰ã½zz~tмNì‰o›››ÌoQ…8Р¬ÃKI¹Q>ê°¥ °6µ—‡@–fuÍX[+R›g9J&:RÑÔ´Á¦;2 „­R ¿1¥À¯l9?Q½L.A`Ô4 à0†ˆž‘¸‹ðN(ÓXø‘Éø„Ô>ÞQt"ͦ´e€ŸF»EAågt1œÿå ÍÝ']:cU¶3^(9˜÷8+k y•ø„¡15ðZŒAÁަFüJ6¼2G\Ñx‘Ñ(èá3˜€‰RƒÆ:n§ëêK ãeE±X»[¾QÓ–@;kScÑ ^BÿÙ¥Vt·…)ŽÇ†ÐqÊ8‰¯¨?3Òðž{ 78EØ­™ Õ3qfzïÚ> Ã/Ge‰ÑÊ ¯MJ€ñA3dÚ*G.Ù›  iÇ šê@0骰€ÊÉ%­ò#'@T¥ŸýJDêL¹Ôº÷Ônøtq^e01 è­äîŽC5mÝ$5âŠ^>|_üª"5 šÐ¬¦’âréòôbkVÉaàŽž´M¥'$<æšd¯ãR5w‹‚K‡ú^}ÍÁ0Fܲ|jõü€¶"­MxóÞ‡ŸÜ·A#~|¨¢8o ¾_–xýéüÓû½/{îT¥ù4§b®»û:Oò¡š(ï¯æa«—_×:‰¯AÃËñýi¨‰~ךÕmÄQvtsç™÷r†~ÖSûÊøºœŸYÅ'…ÉfŒPG§Çr°Ü¾ªçÊ/¨ Gä!­j~3Ä'¢Ò)2ÝÈœv’™Tj¸!;k{íƒããu¸‚‚{B_JMÓ“yúñüøãû=÷"Å<©înF[£Íу\ÀWHôUãà ÞÞæKºn¼„½u^-gÊòØÞµÏfUlÖ©"I¥ygl¼fêÎqžt5û«¼%­™mÍhÏt€n:i¡JI]¤j½öL/ïï`ÈjãtH\bƒÖßöËçÞÖŒ’ò­èœEÎ,Ð’E` x:5åøžÊrñÆ1KÈ@û$ªˆåS%bÏ#>ÉM¥ÜÔ nÆúÈý íâ^ÏÝE¥VWÁÑH]à-0ðÄ m®lÛLdöU ÍðG¶Ü­Þ‹"¥#(·?E™ecn:QU‰B#0ô)F¸a¬s@Ó^ݲ”–qé¡+:Ip$ãYžß ’4s…ïÂîަťo†§=oáÂ\< ³Ò˜7YÜà‡$UÓµ“/ŠÔ]:™Ò&6p“†‚/-k?µ’™VZeIJrÎBhpŒãžœpnÓ^Út­P4~:îè}ò¯yD…䢀B¿ 6Ä8ê â²{ ´Áé€ó â²}çaœºíãÏ-iÈ»6è5„ƒ%"/„S$Ôî²>š¦&àƒ³p SBd3 —!š_‘·%Ùs?Š\ç MXo^᯴¢>‘Ö¬…¦äƒÅ«i¡ –˜°6Ûð‰9¨Ý º¢Ç §…í‡Óñ eY‹z…¨/® Îá=Ó„”`W˜y£)d_±›sf˜ª¸‘ñ fÔ½B²ÞxÀúxí§|Óµ@º É1êʰ¯‚Ôèªaöت‹u&9up…1³ˆ@)êH¾Çy"ä²I…^.tÏlÆ=¸¤5±•¸H¦»ƒ(†ZOî—Fž-äÊl:¶½v‚4Í¡ð²"£ò¢Å)Òe«¤d|$V„)fC,PJc$M]å Y«/ëÅÍZ–aàå¡!Ä.¤´H«¤YhR»öQÒº…¯LxE!`w'o*^TYL}k8N´ÕØÙذ \ðhÄÎß0J4¯2ë^…Z›WÕNÔôºDPêm¡ ¡Å×gýuQžŽÅ¿çpÎL5íõ½ÄRê ‚¥c"Ø ›Ù}B 'ªëLÁ½œhŸCåŒèÕM£Bárš]+›TËÂBÎÛô[¢2>»Œ¤tYo¼.Œ¬Ú.ëàöï`*h·šîžzzµŒ?¿ÙÊ82¬{¶½á}–AŸ_zUëp7Òú³b˜û5ÛÑòJëeVlP£©l>Ñt0ª½Ók]A– º¡ñã?ëû{­LG^{Nl6¯Xûƒ@<˜ÊW‹úb¤+qá1¢ 10]ø–Ýt´ ¨5ž¯Qц³%DÁY,ÄÂO ›„U_2Å iÎ^9ޱøƒA¨+ÑÙPͲAžÞD÷BvÍ™bM—?2_wU\I ÏYûZ®7^¢;ûÊqÀkªàýR4å`0Ò·¨~åœ`žG•‹Þ]Ù.öNÜ£oœµOÿ´±¹³·Î{„Ö˜šX/;4 =öŸÎL¿ÒVâ -·>(ÌŒ2ae+ˆ1F–×¢¤‡?SÞ0×>t˜ #­¢Ê¡pªfªA>¾ˆ€`”Ÿ q]MÙ‰”} ¹¾tµŸÊÉ#ä“ÞÛ;âÌ4A/H2ZXèaæ[—û²r¾•*Gl+¼V0ü¡:Äm¾v‘Lød*5”¿99m8ôi< A³¹µínî¼ò67flœ¬Î÷ëPí÷ï4¶ì×åÝ{¿÷îøtÏ= †AìîÒ®TCu´â”þz™¼H³þŠÍ¹i>T£ǺÎÒ:—î×á(k%z”§žŸÕÒ§*U¬™i« ›¯­!É<ÞpJÍ4sOu¤Åaæ²mN×gÞÎ ŠÜ[•ølN=3®Û¹Uêl‰Â¹Û^i½4»a€5,¢¬O?ÿvŠz)”¸6X\¹p•FD8K|ĕ̺×)qRÖ¬Ó’óZûqRÆPÑ^êÄ}’1RórYôÒ†hF€çiÅÓÉw,¤e’{éZz%±Q…}EÙ&¸¢ƒiЬºS-Œ¶Åãêc›[a±h™µÔÐGìÓ©KÒì½g2ï•<{Ul2bëóç+]* ™vQùæ £¢(FñÐ]KµvŒQ)½ŠðÌK´ßì„QðéºñŽ˜÷¯ÇlBZæË­•"»æ+v ¸¿W+´R ÆŽ·õ#£ä½Üf„À #Œ ûÀwpO5¬Ó@–ŠN,ë“¥(LÕKÝÔÎÏNkžôEeÍaõw¢­j™ ì§ðó--ð…7ܳÃ×\þ ñšÒkVL-ÔS¸ûP¯ö‰Œ R†6² ™y6.— µ1üÈ1`0šÒÖM1ñʈü§z÷S:Ýõµ7ŒŸžÀô¥?±~< ¾Â3ke´ )@]Sµ»›ñ/µOJ5b¼6Ýçi§_/²R‰9Œä2jtßegÞ^hzI¸GÛŸ?$[ì5?³ÃÚ¸pâzЍ šø× ê~agœI¸Ëe:“èUkP¨½¤bF–ì=ð%‘¶l@nÆÂØ Ne9$«°øÚ™ÒÝd$·tc¡´–¾8±~ ³½+Ñ‚šsÙgE ãåF±˜jÝËSÖd†ô´N½·çu̺V.I”×Gœ‡šwŠ\WRKFûÊËê$÷'Aßý§)ÐzCþêEüµ¾Ni¢Ü·nCau;¸‰·ñÒÛÚr_nxÛ³«€ˆÅ*ý¦èîÝ5\#nÆdàƒ£ˆä,Z1sÁž}ìÂý%a,씯Ò'A”_Ïø¼‰2(¤ã±áSÞEœC7êÉ•Žä¼æÈµšlè¹pAd4ñik8txÑY8´äz:UW";G a]˜C©];öžá õ~àqèèEžõæpmHDµ2!ÙRoG;MO7þòų‹¢·^˜÷ýØýzÛ•a'o¡Vo^ Ro._&‹‰g}F‹EÌ_ó¶_ŽF‚Èz'Í¢l,#Ò¢4”¿S* *ë¨tkè—E™ã~·tJïL'ºz3¦¬üÒIÐYïtf òêÍdZ”›îwJ%Ah½Ój* Wo&Ô’¤u³´r~´ ²;ÓÊ$©»™R ³ÙýþÖÔ¹î©`ôo¹››¯¼­Is'ÈŒõX<<—Áñ D‚Ä4É^î¦|“à ©±®Dµ0žj éHÝ]óݓ6^õ›t™Ó#…¥±½±É‰ÖŸÏfúüaœr Zt‘>¨.…0uØùöIÛ"Ÿ|¦;"+E™™>!æþùÍ:{Û¶­¥A×íƒy[wcÇmë1-"u¨Ë›Þ-Ûß\ÔþLã4øw¬J¦Lû5StZwšsÇ %ižÏøS–˜#)öý„ãQî©5ÚZW5¶ÓÆc6÷Ȇ) ÒªtþA”xE;Tü uã 7hþ$gnéýV±¥NáöÏA„}¾ ŒoRÎù…å¥ Wu°ü»Ü;5QSóKájE³k;e{uÀ 9eß;;–kcÚ†©ÇŽ\nÙ¾kÁ Ù»Kn˜ýé`¤øª:Ì®?ÐEw˾ykõY»[DÉþ¬ˆ†™ŠúqBiÃ{)À€;3ŽŒ(¹EhöñŠãaÞl€›áîe@œ¨[ƒD ú‘jÕ9@&˜>Ê8»!-(Œ K|{F}Ñ ¡`'ÉYx‹Ž’ªÍ[ìf³îÿh©pòcµ›5uX²#¤ô7°F๶ëÄ-‘ƒ+CëTê¾ÏÇÌ!±u*ýq(Z°¥ž¸2ÒÒ¤Sªp›ÝK.5# sTÄ·YUiŸ]_t — þ´ÔeNÇ` ’Z9¡T4Ë ››¨ä+òa{«^pH›ã}Þ0|ïP>,}…„œìGrŽ“M“J§Õ‚±¤"D£~¼²lAzï!4…}ê•‚~«›zt†Â@ì¹ñT‡œÛ ®£–1¼w+o£9÷Ô‰æ“{·? ùÓª^¼Ó½žû6ît€µDŸ­½.¬]¬ ,[~—w/*'ŸVµû^_D`ES¨6éϰ³ª<-HSg½I¨Ü]b“é€væ‚QžýxsqƒýVžù™§ýÜ"*gPØN‰—«Þ}¦3A¼á)A˜?´Æþ߃ Û ®³ •c°ê뺂§ñáÇãýmáv]ÖoÓŽÑzL\n4PÑŽ¯ÝT-c»Óš>×>”» ÿ]^œ%¼kþ°°dF³Kûð"Q?»æg´2@ú¶È:ðlwŸ·ù³‡Ï­¯túÄe»Wq_ó2–ú¾lUM €‘ø°‰ScgF ½8:ÆÖ‡ÜF‡# 6Þ°K(É>6îµÅ²7€ÜibÙ8š©}R5nðùÊhÙâÐÍÓ,f_P¯I«¯ñ\¸(±2ÁJˆ`i°?L_Ì-›»·ñƒ¦V›Õ¾=óv¼-Ȥ³èk‹î"$Ìèç+¿"`^;cŠUL2kÖB6ޑؤgë¨3Ž#.xÝk–=XòùعdeþÚëëžûWÙbýxH®G¯ ýƒçÙ8‡¼ò)eVÜZÒÁo=ÉÄ7©ƒ‡ë Äâø޾bÁ Á1N¸¶*2PÏ «A†SÁ>ð‘An4A8û_ÎÀdÞÔ½àšÃ©ýl`ü³9À‚ÖµPý7ŒpqhåŸ{W_BšCXXˆý\Ä逤<÷o?,.M[AÚ¼Š¼Îý2}Â; lwkóÙ"°ù}ÜfÍÍbˆþᄪXŒ¡ž¸±0x;t›í(‹ÐlyÞD.…놗9Ç#æÌÇÐÓ².e·^©±Ý6šñ¬ƒÐKF=ô޽Fë0ŠsqK"œ™L$A1ã„ÏvtA\K¯Ü1|Q©SS1'Ï‘ç¾hÖ„»ˆµËZ8ØÈ V×n[ÜùÔåÞ¼$µ‡L<äzèh=x ›Žuj"üé–4ˆaø”-j‚MÅ“TÞR ƒO4]†Œõ¬›LÇŒ††WpÁ„]8ÙS~|‡2z†o±N?8 ™}ò‡ýˆ±¤ Ó`¢ ô)]äÛeƒ =÷³Ì•cb\? ®¬£-‘ûnlÀÍ+< ­¥xJq[ ¦3¾T$pq6Ö¡"´©ZˆÆÅöÛ}$Ó†#¶Jqß­; 0ŽÉÉ.|Z…7ÆÆxi|¯ÎˆZÆãˆéà¹{à¡[ùÁ8€ Ð0á:ˆ'š=FŽˆÎí³UU*¬õÓõúÍ¢¤Ã¡n '¡ÄAdW§òILgd-]©¶ýúgºxmC†(;0}JÏuÇöÄúÞÒ%’%DD`ˆ¸?¥î!xŠJ¬:Zƒ $Ô<•|üBã3SvpHëk_§ Æi:_z¬ ´]Kˆêcø¸k& šŸd— ‡gÁªÚ:¼á9nª‰ŽcýBººîêë ÍŒ©Ó2­‚ÓÄKŒËÜ„ŽbMĉûŽé;3ƒ£9þU06 Ðºð2cŽ7•NЯßïêXÖÕ¼² °0ÃiÑZ¹ëä5õB~“@ ºÿ±W¨õïµ8—+Îár— ¤2 qµÉGRX¿F$6'}%aúìgqƒî0(¯IľO€9V=2ŽR„1ífºUèOÌ À8Pa”Òl]"xàñÖ´o«Ž9*Cë¦ð!óõXY’¯ügé“f ×ù.M´UÃI2 ¢™hÔ›Êo®º ÀfJî"kÞïìfÕÑ[@ï¾UcÞ'ª?R­qPÞ—.襹O³¿>¨´àÃË¥$=›aøâQOóÿ‚íZÜÔ“Ýà«P­lOý¢öÆå=JŽ0â„1ŒK2¹fY£­(v0ï[æ¤ö×àªìÌ;L´p]÷ï¹ ¬±|ºdø$A³,Àç쬂‘³Š4ÓUI kÜÆE§ªa|ìœÅšÃóþ†.<ªç~Ð9¼+ÜÝH>´&yshVH¨ì?ÌoìNm[?p°8·tìÜë@Hc™e%3— ®Çz4}­º™ú¶´å™ƒ҈ĸÌ)xdaqÝ9–iO^pJ^)k'j©F.õ÷ÑiàBÄþóîn(ZcD¨v«Ú“Ñ|?Q´ **¨"{’pÏŠ5bĬÀIô´’Óûü"ì(hÎzxâŠ'-ðF8 -ý̈Ž<'¡iå\±þ”nÕ?ý÷q¯HÔEå}<I¢®<õ†ô¥Õ]—>Jl‹(|€˜‚Û® y~誀B z¯ZŠDFl‘•kÃ*ÀOØ[Í`¯ð+53K.¢Zào¥R³Q Ð ÂLcÆ-% Û…Ï}œ98¨³‘`Ĩ².Ós9(.PIÉYÊ·WkºÏáÔEIäÐÉÔdŒ·alp~¢&Æ£ž*B¸¨1¼*…»(ÖûèW†ïà:QâK˜¸ÃW¸Gî¡ÇJũɔ–C÷s íÙ­º1ý¬‡'® â}}µtY|įØíúÑ”–åS¹ðXe8—ˆ”Ê‘Ìuk&:h›³8"|‘ ÊxkAˆªT,CÅ$ãOi1©&áLFpvé h;´ :¦¸”(3y‘‰Ã.szËZâ5RvÕxçö%ð±X_u™Ã܋ٵ¹‚•"Ôà•Ã`ðÄÅ:¾ºi!œ… À»cþKç„&ñ,à¤ð”‘ÿJÌ.€À‘(âˆÉ»S~Öê…ùuž6¯‚$Ofž1«EГ–­–OE^–¯‚‹˜þi¸‡ºÐœ¨†G,× ÿh}\í%ÙÈjFûŶ⦅Â`#ÊÉ)Mܵ@/ÍT 3·rË$ðäÇmÑå?’$’DÐÊÆl*¢e‹ß{‘ËFLŸnRÇsTV‹E ÊGÛë±Xä\8‹éy»øIËø|.kûÄÑAp,ç6µoÞFHPë*y£|Ô%¢Íáçcñü!€këÒ ô2‹°Åýøƒ»·Sé­}9k”&DŠ©ƒ?ˆs$êWŠ»kj'‹Õ³õZø¥„d”1”Òðˆ&Â,²kr’˜$ >B½ˆsƾ¿Å?ƒË­ÂIÞ#¦rNLÏ=Ìû}¨ÿÁ(ÒqÂGd¡yÊÃû"NôÐ]û±œŠ%…ƒB%SšXÝš»Uç‚$Î!û¯Ënã$Ñ|4é£3gDÉœÐ"À._hFöH!lÅ,ÂUÓtQ¡2 VGi¦ÃÔ6üIÊZÙZrbëòñ9RS›y Q‹LÎhD`$—Æ&nA»Lô8ض\†!Ç[hšÃHñ-Z*ö­ébœ†BŸ>ß0"3~:ž»Wä,¸&öUé-úWL²‚aØVI,y0“Ö£pUÚ¨ X7â”`©ËÀJÖ]a6·^AÅÔΧ‹×Í— ¡ÄQsÓäáûxü²y^c{…K¼…íæ!}dêÙWã¡W 1t¬pTýë<á¢u ¼)wp%—«T’Gê,iò<8$ƒunZÈ .F¥ëÂéyÿ67·`|›IW2˜Ô‹¡ › ®, >]9ð¬¼ÞŒ¡F¦ŽM±¨‰—Ç‘ó%ˆüx’>=UD5Çbˆ\àzÝȶ%Z÷:ì•·Ö,²{aWXÚn8¦2pÜïâXm–V¤r@4òE7|JÝÃØŠŒ<¢×v8ÌJjº2¨G,ðNœ¿gR5JHÐE†8*Ÿn3AȪi\\àÂxôÔ¨a²ÍÀøÉ:.F[Ð2™sÍzuˆf&âŒiH ÖÔïYÞQþ 2m9§íæáǶѼ®qÙÀFŒK \]s,à•)ä¦^õ¶h ðùaœBø,>ß|ån½|î=Ÿ 4öñDɰkʾ=ÖÎNö~p?¼± —Û²f Ò³[Ôd‹#и¤Éʆ–¡S:<?Hz ›l—} íKÝ5n‰åÞõÚ|™îfæ7ü„’p„#%¾Ù>àg24Ç©7Wíò½—N Ð2ÊÂLM'4[í˜8*±žÞÃÖáKv&óì'à  k&Zi"ýg:C$H¸N¯vÌ lbk¾­%W’Øzdâí ÃP‰ÐP9Ò†“Žk¤ ð±öM㵘79ƒ²ôþÈoì&  šÍ|ìCñˆLÐîÎsoÆá¢,é~â’5Ü;U-ÖÀJQiÔ pÈ¡cñeûXp3¡oóƒ„=Z§*ö<{YCgõ!!=Ý•ÿáéÉÁ§GíöÞ›£öSš¿½9ÈèÅt%~™x©+Ì1rÇ#ÁDN:Î L8Òe¿:ŒúI;ãîM)Þ@8Ù?Kãï£8ÎÍU ‘·ž.£@œÖ÷‰»ßĉÂnBu½mGwÝÝ´ÃÄUìY̯—í(I|8ÄìûÿN&Xßy› ¯ï3ü;™á^p×~Dßgøw4×ê®3lA®¿OñïdŠÇá]§ø,¿ïáßÑg?îŸßuŽ©_iÀq ˆÉûù÷-ý›q­YɱÉi‰7½Í™°4äA¡Еü‚Š6Ù™Þý˜g!{I`²%‹'ÝÈ8`À=„c h"Š‹0U=Á[x⯊& ã|MAÍ}óSIÊZ;LQšõš*aäH¤ÞÜÜzæ>ߨžÄ>ˆ_ªËÔ"âÙÜ™º{RûÂò¦PÓ>›ÝP²XËfÖãÜ:'Þá%3n»…'#^í̾Ú@ßJkð‰Nux¥-’°Áè4m©S¥Ùª`cc4n¸Õ‡éˆ†õ‡ý¢$§ƒ«üÐI#”^eßž£áAì5Ü“Œ¶ÞîDwhg#öIž¤Qœ^6y„i/F¸zþ÷Îݳ÷½ ²àÔÝúϯˆ…seCXæš`¶ì …·çÂF5ÛGú½.{ÕÜll5¶;WÍÆævcs§±ùL:#i¾Üp÷ãq<Š{±{T$ždá·j8T ;õj­L±!ÐçûG¤¢0 ‚:Ï0R4¡Aš]gÏäS ã­¥*ÌÖËämv6?^¼æ Kë™J²r|hÑZÅHþg÷íûöAÛ=øÐv77ŸïlÓ(6_nlo”ŠÉ÷1Ý£U{dåÄýúûˆóUÎl¤›7l¤Sq»þ¾“~æ´rÉÚD2ÉbK9õ-åÞoKÍl$õiùrŸ[èÊ$ó„ØÖÖ ïåŒCÜë“àâ³[U..:²ñ°¼ž~0ŽZ@"d*(ŸkiOÿì<#S"áü5˜ëSGMQÔY(N¦x-‘Å ã ›¬:ïßè޾qŒ D]Wa™ïIÆœ®™ˆ›¯^ͺ·uïù¦‰+j¸ˆ•Š%P¹Œ©°Ä1?•³*®<'®ûF%!çúìˇ‡ïÍÈr¸ S¿ÜÜv7_z/f@‡„Ïîfg.þmù@bEwØ·Iüý 1®÷ÓÜ=ƒ¢~w2¤õ2lAãí¥Ã!çL&÷ŸX´Tõ°ãÌ›¯ðw†Ú\¬’¾ŽZ’C¹ ìqMd·ÛDˆ°èEbn`ëGH5Šd¯6¿œðézNŽè”½Uëg ‘¸ú&a~ Jj… ËXmSzf¯aÙ$™ÛÐÏKOÐøJs…˜Ì†fß$ n€–£»¶vÆ6BààmoøP»G¥íÅQ—QJh}¡â „ßZ,›«Ã†&Z ¡ä@9e)yOÉÉ®˜˜póRK¢H¨f3ØS’9ç‰rûqìÛžÐËņÑ8˜½¢wŒÁ¾¸&;½ÒeÊ61fj¦ó1DXÆ12®uS…Í£•§Æ©·…ÈpI =xwVÆýrª]“"bÑ¥EAF‘‡î)“3 )±)›ðUÞyáÍì¨=“«p¹œ&MÜjM¾×Û¶*j¹gâ)j¶V‰d¯áƒ`Ú¹mÇæ2(ÃG*$_â9l;ƒÎÓd<â?JåMåXˆ2ú]‘<÷?þGÀã¬áÊôxÀ0‹´$ÝÝ.:~0¾Êº!4l«}6£ÿø¤9 ‰º¸| ‚KÖÞi³8Õ¬†jZ5TEÆt >Dz§’Õ˜WݧÇ?4lpH’§ª £,Q©ˆ™ðÜ/‚^ëè&Á‘ ®À8Ih$‹.ã\B+Lj'I-Ä Š±3ÖÉ£2a6›ÄÚ¬‚@Ëô[aaà€䯭w·èAÞÆ“íQScv€I·±ñrc“‘é^Í,÷/RN|$T³Š*¹ s(jS$I7o¦ï!-PeTÌ,ž/çÃF ûr´ïvš:ÄÙ±‰²zYûaë›èüÌ)›ÒöìЫb íXkZ=…øý\–­¥T¯Ž4 ú6ÆïË—/•Üt ·Š æì º}îñÅÇ"€E*ÛÖLýlHÇiÒDä!švÌ8W%7j:x{ü×=ÎÚ†¸»òÿSÕŠÔH}ÍÙðÚe5È£&#pß|¼øÈº»ý8‹-:ʧ†DV7S0Œ¹{¡†ª£¦Š[NùY3k©§‚4kF*Q&œÔzK¬nš·ýöø|ï˜ß@U´FZÑŽ›Vºó^Ó§ÝòÙ¿}Å…‡×ÑöFkL}™$9ǵJÙ¿æ9wü‚öÜ(ÈAü9hõãÝD+-éé¥1]´ƒTM¤e•P:=/ãÎb2Þ™Ž(¢Ù(pÿJ‹‡R|*Ÿ[—c]‰§Ë«‰Õ fÁ¶¦å¹[<¯Òüa[´yÍþL;õ‡‡oU»Û¾ïÖï»õ¼[ugd'Ÿ®ž»Ù ºó>¨øÚ@9£Øn>ù™×5&‰!ëï@7LŒ›Q弇#’ü¾k›G‡G Ǹöø•NW È0_[õè™Ýˆvy”¯ÍÕè?û…At1U]™Qt4hüâA†›fÓÙ”“%^ ¶>|3fAñ—˜úe{戯Y~ì¨(GBRÝåz%B €¸Oa[p·žmÍI§ò3w^Ô\mÄŸÖrŠØJ`ŽÕŠÄ‘ø ],Ác<§–‘âÏÎÒ$c“‘´º©J%ýUô§Õ½¾ÝÜkÃŽÁY‹‘RdS1:À,¾TKñbþËǶ»ö—¼ðSkK>Àusѱ‡Ï)®Ö]ôà¤â"·wØ>1d}M ¸dº4Ö$èM%F•öHw Fj'Ãߎ‰ˆWŸDæ+ëʦEØ0_¾ÙW¶(? û=½Å©TrûPv„SãNXVÄ?”N•®`ÌI"mÚ„öú^¹ÚK&C‹JUk ªÆȹ6ÖŒvû­d’Wì@¨9„wÈPO´£Wå‹ÐtYx›wðgW ò–Ÿ¾R^>`Î?uŸ»Ï_ÍMô^T ÉK©2uñêÝ –W´²D×:5JZß Tã©Á×T‰?#$~œ³ÅøFi]Õ?Uñ&8ke×6Eëx†ôM2*$âÈàðgYÚ©>¼Â+ÐÂ燃lØxˆÃšiÌ&[gÄ.©ÛìšÆW©M•/#9He»C|W­~ôÀó+õÃKÜÇÁù6½íí¹ÓËîÜÚA§§œX`³ ñ5!0Wªb渹²­T´²ö¥}x²ón]”a’Ó…Õ ŽYÇÉ2v +TÆB ¡Ò™Zzm‡mÀ¦+æEÎÎÄ m 9c`pl7ËxN¡ã*­„µ¼P%"ëHyI½kŸonnÜ;zûZ…*j^B”xámФ¼ð¶gÒî0É€¨nMdþ¨là¬ëä²ò¥Äg¿tö†xlÆç»n¯”l‘!Êl±|¼Íå"2(çÄË/ìkÍó5tÍZz…åLe 1ëbí|_/|Îí†- ºUFñC€¼“qžBú" ôœV(ös¾ØÌ¢áÝ{–¢¸Idìb6ko<Û€&þųٙ2†ã'?ì}øØ<å ÍOÛ[Of¦Þ·ÝÜ­Íí?£93÷®¾”üûØÚxùüÕ?ÿûØÞ ÿèïÖóÍ­çÿìîâ"⫎›i=‹ü}Iä÷›@:3Vwû¹·³± µ ÷Ë(ÀaáÕ^?­´¢ÆK+¦|Eè³Ì~]³9Œh‘³Þ:V¼°o³„†§ÀÞhFÕ[Jìê»èÔxi—é fðá ï–vûÔÃ/8œv!J·ž?^F’™ÓÞfáÄ ¶¢÷=Ò<5aÀ\=YÇ(Áæžâb·xþ‡~X(Q~Q¯Ö º‰ªM«c§uOj¥ÚT1G"®â®¤þ©êõÄ&+rv*ÏØaqi{­¼xÿ†§ aQ"q:ºt)}¾µH@"±b oµ¤Ðµ„Àê²&Ø^'±çþÀ-nY%f“®5ñÈÞƒ¥É1Ș@k9θ‡´Ê»R­³7"¸i] §Æ Œ`¶  ()4 6<ýÀjNZwæHtÖ~øp¼Þ(ò}dps£KQ‘©£Hƒ$ýábq$ü9òëxóæP0Ĥ9pMHJJò-j•NÍqf°ƒ/fG¶eßcÈ·Jb¦žC›êl¶zvcž³d­‡Ù9¥SíBÙôï†HðË$˜éX%ò‘;o×z{*¨vŽc^²eŒ‘fú£ª,m¬Ê$G®MëÔRÄÖ_R©(b‹7ÙTL¢FSâ€DŒwž®V{dr:9§´¹C÷‡­»íÄ8OlLb[™Œ<{& ¦ xuÿW÷+ ·úÿ›c“Ñ&ª‡à´Åénkc9üxj_ê×;)c{è–HeSi Vì}η™æë8@ôA5ÉÛi¹så‰ËÞÀÝÜ«™üžh?'òƒÅ §¦ŠÖ%!… ïŸRãÅMaDN|Õ&Ç•¶M ‹m ëwl:N›6þ´¥G$÷‰áù¼hé4! A¯*Ñ©2 ·½g ßíýpVŠÓ); ¢TuüeàÛ¾ÎÄ$ßhÄ©L‹û0=2)Öèìáî[ÆÎ#C«ÜC’*Ç jæä~ .HDåa^³t!D§e£žE7V¦…šåh¥xй´"N¹ æÔÓµÌÏ«—Ì#­ÛD§qõÞŠµ{nËÜgýÞg_Þ…¿õ»j“‰wÿ™ìuõN5.[eaQ"Ù­ɩЙ,΀+õì/îNá;tT½o,•Ç â§ÿ=¦±Ÿh÷ TÐh’ÊztE0ßZ¨ãØë%&õ¨Ÿr’É/t-¤¼¡~þôß”»«åy £zöðºe—‚¶µñjcÇ}öü•÷bc‰ä5'Á+]Íùô«{WEç³Ù).âlzÍÙô €B=‘7~F—› wHôßF¤e è:CòàæVõËó†3ÜÜé—i¸ïÕx¬¶¤æe°½e5ŽI>Š/q{ÃòU[‰—5s΢â—x¬Â +µñ¤)¬ ˜:F›hÓc—C%ØAô’½8,®¯S¸~ÑÀŸr¹§£ í–È"s*JäW«¢³,t»ò­!›ðaº%Zû^9QÐ5.Rg#‰òx~ŒdPжád´cmuv >› fØ+/Ê W-®ÖF)£åóÅç¬tKwçÇîÄÄy^Çyâø½'a‹ õ´CÃó›&Ÿ×¦·ínoyÛsJÚLïMÙ2Z­Š–¾àg†¬(èg¨k²BÔ#.šÅÝ8t*hÖD6Û%±‘•0èâ‡ZM× µ‚r+M_æpð {”š4<ÀUÛ0@tàpâÙ§½I¿°Ê.uŒ Á¢h7ŒS,<ˆ±Cñ„ûœ<‰/ƒiÊ_RdD6ÛÁ);œÕr B¼)³]1ù+B¬7­-’Jg$õ»ùXÇPºñµ¼èIî*HnÊ5t|ð!…|HƒŒ¿œ#ÍËÒÜKr›-éM>{î'ŸZŠ< éUþÈ9|¯ié_*wÃ{áno¿ôž/ãíF !à?žUb/)µ”?”/¨ÙÇÝ3ë|} ßQØòÓÐë'ÒVBĶáÀ¨íMïùlªXŠ”.GQÆò­µ¼Ð®zÁG6_ULD•l0ÄmŽß°‚R9ЮEr·"ik/Šôµ{ˆÅø¿·?º/_¾xõçÍW/Ÿÿo÷矩‘øˆ·±Åá`³”Ò¢F[‰ñûõéz}zø’“›ûòu÷ýâþ}åýF.î•E[Ü*9xv{nÕ~¿²ÿF¯ì•9”›ÊrÎ#¿g=ßYÏíYÏ kæ!ëVôëðš€Çÿ¬Ð]sÇ1Ùé WYÛF{‹=¥S@ Bþ\£Ix‚D÷Ù´ir“?Y/pËì¸"›Èž]‘e» 0HÚìÐìy"ZF´I×E㈙jckçùAYäLÜó´ ä®'I›ÌxŠ~Ð%Š>2†ªêG1ÐTª6 ±r«Jj¦ÔA#üš(¨È5ÎHœJŽYa@‘ëŸ,ÚD¸S’Ä®W¥†9SyèæûÐÌÑe¾üG•ýGwdº…ÿèÇôõ!nÊ×´*›×››Ãá…Ç‹bfMx“~-˜yñ•&lô®6 •ƒ`<¶ø#ÜÒýo­¯MV",ì0lR] ¿ueϱåþÄš¿?q§ÿÔÍ“4Nþ$îOEn_ë²óƒÇCèlî;’4„ÿΆ·åm¹;ÞææŒ¢nmÇÆ£†Þ{X†VºVáIh[Ý TW4a1R—ÆŒÄ4˜7œ“ÏÝÍú’œx`ù›‘—îAð×éØ5й3óÓFJÓ“6üÛ˜¹«»×>ó>]TõJí3áöÆñ;-ªš§lbætÚ<‹ ú^J9ÝP±75¦Î&›«´0Ópjâ‰Tjßïyª4Ûj*ßor‚08WίοªöÅ“{TìcärönëR#L¦–‰pÑzE7Ô_•p*H·À)j÷2Åß-™üó!Ñâc7‡ÊJ4><P¹J›&;´Æ‰Ð;xgš®u¬Ä쉣.‰Œ{Ìî Å& ózZQFêÀÜÎÔ¹4yQD!¨#kðã±JFvØ ð¥ìÚüo`l={ãñ×:KbÅ8eq…ü­‹¬d“]||ÝnüŸÐ½ý½öÑùc‡VW޳aó¹÷ ›`cñ$Ч}.¾ÚñÍ2 #7k´f¸>-Ÿ¨Ã›ÛØ*EÕ%€ÊÍWaŸ(_°åÛ¡þª†Ä SþðËqËN¢8²­I¢mĆs@n¨ÑŒ äTÀV᱃’ #£ö#¯ÛnÕt÷°>wU³ÂlŠCðÅâ9>ØKîäöBÍåì¸]8ÒçX?`LýÕe?ñ æ +ŸûjúÀ•ëºã¦< ¾³µxh‡oά€SC9ºQ• ..ÉК¼ºîe÷=èý(­QêÅ‚ ¥>´‘PÔ˜yñï‚NIÇ…¶áµƒ¸E’ht¾¸:ÅNªiÁoÏni}!!·ôqŸú?Ä•B¢•¾Ð½L¹ … 7c™öfàWšJInÃDX`¡dϱ+†ð5X*’Ê~ííÞºÛ óÔ@B.›‰.mõ~%üöa´íÑ­m‚ûBÁ…–,À×¶à"ï™b£B&(†âr±ʵo\1ÄShÜ· °; †º¿‘ÕæO‚¾û \’AÈ?Ì–Yº"€¡SP-Í:q\aÞ[Kèv ³½ íI½xóÊ6uËfEÇɉk÷2ÖøT®/r5cÇZßsÝãÌaÝZZ‚G™ÐÃR âq2=¶pOÞÇÓ£UÌrLë»B—æä¶˜é` h¿JaÑ›¦ÿ“ ,±Ä7(€Ž@'ImRgæ ±YœTà–z¹¤y F´Ÿvi<•hÉ«\iÂ8~sÉ*‰Œ«°ô¤á â‰f7|ÑIêË a8L‚ÑIDd¨ÍÙ‘°_Cd°ÇxlŽ0Ù× Ifëkµ;«À°#étôv#þóX 3›?|g}‹}qVgÿ÷:KæZ±1ƒŽX™Mb×WzĤmBW…¾W)>®:{⯺ç~„J’1/sóñ‘ÎZà™/ôÚdP¿Åôú 3öñ/"jWíåY2Uy ÄŸàþµ|4ÄyW<…zä~üˆ \ñ‡ú9}¦3 ýú‰êWäS½ŒiçD}Uh&Äß_î´¯ñ9™”ÍåÇÒqµ4 …­þµmYŒ҇3E› 3`¤ÕßYO´¬GÇþ[’™j4‘ÓA}Þ‡*OÝ÷4™ãž»;ò‡z‘½‘äíî â4= _ë%~Ma ©rÛÒ~‘pZQ Tî'5þbÎ!HT5~¡f¦Æt ØRÉJ.»¡?ûˆñ†õÜ]›¸UÃ}{A< ·Ü¯Ûeš§j²õßx+ Þ}\$¾*yûö’;ãqÔKT󜎧µãäË=vŽ{Ë’6q–s–6Ó¢´ï°µæÆûÃÏ¥5 Òn4»aPܧ·–+•ƒöAûØ=¿LÍÉMXºx…#ýyà}Z†6»#Ÿ-QÌöEÆšYØn¿ÕeØ×HbÍ¡®ÞœMXÚIŽ£ÍJüUîMÇt™ƒÖ]C»ë‹&§°IV'§Ú:&h¶yg®ùö‡¶ØÆç²ÙD÷E"­Ç¥—4°µqDdŠc/†û°àËÍh 飛`"B0¿Ë¦$)~)dé°³¯bP[¶Žòä¤eC™:H-¨†‡»l7f7Ñ.§Xšu/ÞgʳØÊøãE›’Ôa(D;ÅŒ¶Oרәdj6À Û+,C™‹/,8ÕÎ\·V0‰ó˜!t¾ ‚L´ò¶‡:¡æâ´Æ6—Rh]¾7åW±†/Ý«ÞÆB@Ñžy›…㿘mmuÖÅ™¯*G<}ܘôçå­¡¯Æ5¾dø…$„öûîä[D=QôÏ‘.r>ŽuÄ?=í.ð yßçÜNó!þ,’Æ~6òWÚʼÕ[Ûò“½"1Ë œ•O!ºÞêüª_´_å> Ä+´"†R“,w[! ;C« @EÀiÝSMø 21ô›C^.ßÁ§(t‡[¿½ˆçÂr§Y/¸n¸Ó$OÎÞH]‘_ë¬;`Œ–®)@{w?«d“è¹{%9¯¤IslÌ +iÓü„¨„§oÀËk†SÑñà—Å\z‘F`¶†R`Öx ‹ ç,åM“wÔÄÿìÔÒ™2›¢)œ¸ÞKÖº/agGˆ¾¯m8Ú {âºp~vj³àœ–-§sŒ.+³ÌäE½Ùï%Ø‘û>B€âðˆk0¨u>†Xaw(ŽZŒ£aT|•'þŽ.!ïÀ!„fãa$ÌÃ,+êUÁ¦–çO‹’‹¶cùëñÓ& Ÿµ‡Y¦â Ȭ$Z>Q&¬Õã`:"i0ŠØn¯CB2×`•œ}"Y¾UhÄÇnXiZˆk¾hû ½)Zè䜺Ù8Þ…Œº™Ò¬Àpjbõ’Àg­¤T¦’cäÆ à_çŽ6v¸(( 7:S¹”éäX\‚-rWÇbÓP·Â–Fá$F@æ4ÕÅÔð¥Ò„†±f@žàLëtqŒ¬ÐM¯(‰òŸ5‡¨í"p‘šk©ºìáÄÙb¯<[bÄŸ£n£ô®Mjp[ÕÇ…õz‹èÖàtdFDbs]<î]çÀù½ÌÁ¬2|Õ¬´¯ÞþòÏ$6*ur;÷%·YòÎo›ÜAÜPÁ,QXUúqÅm¸P«¯}8n¯ßg2¨Þb³6ÿb€éø%E’¢ñTóE)7Ð5 ñ_Hû 3ÏÝ[·–(´>\¬¼tÝM…ÆÌ‹¾ÒÚ”¬+BªçËϱk’Ǭýõã§õªïÏ‚Ÿ«ø?eê6øÉðíÉà ª‘êRÝÍN‰R>˜­.½¤½¾_LƒL€óq㊑=ˆÅpSI cÕ•^}u Ÿ?€%G´U¡3æ„bUQÒåt?xzp¸(oé' U(÷è’O›ŸŒû˜„ˆ7Ë-±è¤lÊ©\‰*Žh-7Fm.¥ÜÐå[ÄŠÅÖ¯;?þ¼—óÚêjRaòËì°šS¨r‚›Èl“yè·1ø±É­Œ|sc +?Û;u÷ú3ÖÕ—ÀåYJ3l€à¬ÔœÑÖr§ß®®f< >Ù´0ÆB*^yÏ—(kÎPá&ƒñ2ïu«Kg,c%f÷DZýiÈ-\r¦Ñ…êZn•Q:Ñlù…ðð^kº¿ï‡ôç‘ÌVÆ­¼îÕþb¹‘æ´ôj?°®êôÞh§é\éÓnÞê®Õgà’6DåuÜþØp~8ú`žº:ëzë Ä?‰£–¾$ð¢nŽ.ü@ÛNͼPˆ¨K¬­çÕÂBžŠÛå«™{Hü@Ó™©âú7EÛ´3¤FÂ’ý¤Q|•¡€æJÉÙÛñ©A(ùhÞÞÒܵñ·"Éo`…Ú»VAÓe«Ó¼‹B¡hÝ$ÊNo}%f_=:¯t—ˆ’ÒŸ:M~Þã" ç½@Ÿ-+Ú'gtxÃóðñÖ›˜ çv¯ƒw‰—ãÍ„û[Þ×Ý!÷c907YD_rHp±Ån°KÅ\¹ÝZ=-“ÜÁˆCc»Iƒ^¤‘§=Á¾ÆC¾:{Ý{Eç RH—J$ÆW´›†£âËc­›I¼¹\æ2Ekì^E‰0“œümÂcÖeø¶„£™ÈÌàUÈæ… ü¼ÒHV÷¸6÷ÁeÒÙ¼¥ fQ•[)B ùK©b¾0Ù‘oò¾hŽ‹e ÁZc+§%È™»ŒÓ¤UQ¯"ùÏ©÷dÈ™X¾bÿƒº®Ùò Äj «h¹„ƒå¶Vf~¾>{ûNðç‘.6õ‘6’)î— ¼žöuôMÛ¯©zþóÓ^/ †ŠJ9Ú.*yÊgÂØª?Iø»­ý@}„éor‹þ&tÂuïÖI®ò(=ìôoîá>pŠ$Œ[ÑÉ%…£‹Ñ-º¨£¾ ƒ;QÑÔy2¦¥~wgɉµ§ÑMD\Täº×U7“ð€„¢pu÷l‘¬RäQÈ×M+·Ž%i_uwå^–ß·éÍSûE‡«ùŒxô¾Ùø…Ut;ä¼Å«:·¨ÄctN—ŠŽ%Ò$4«úfJ<:åªJ¯e;âM¢õpeçæ …4,Ê<~¯*çÝã27ÞÔùýl+=J/‡·8•ßè8éßUv°•§—£›÷õûTJwé"×xœþÅ7^dÞlj^MÂE%¡oa|ó Ÿ¨øN”£òB·ð’ëI ru“캬Ô#tr4¼™€§(¼»€]V{rŽn¡L<…¸2¸›aê†ñ•Z©K]Tâ1:Wa㳸÷ÕWëhå®YXä1º—Ü,}´uÒ¹aù-,òÝËTf¬¼ ?¼òZx»epóîVo‹sÆåÔ–’@…† ç~å!PEýY¶]×Dk‡“¦zBªËú©;܉J"v> zü'Õ!2™¨¢1vé¨yž‹o*\8¢4çx!A¶²—E€W=¯n±?&Ú¿IÁ¼¨È#t/»…4q¡FA¸’ÁpG¿eÛðø•> jµ¸‹ß¿c·Å/òdx“ ³¨È#t/Þxcý4Dtá]Þ¢Ö£Pñê§Ûç@gû¿£TSV{”žNn±I¾À>¾=MGéãõàæ>þ0ˆÓ»I \ãQú÷uðãÁ‡Ûˆ3£qôí»dµú`ž/ýè›:~ñåû=QE8Ù-z~cñÇèù- #ËÃüN+J׫›]b/>?‚55Ò5™o LÒ˜$ã¦?Ô‘?}$ÌëÍÍòª±D’š ö]N|Tõ?™œm‹c’à-ÌØz6=‘ Òâ¬e£•Ð6¸¸¼]tñ) /OȦtïþp9_ýÍ-$á ’Ñ(|›r¨Í¸à¿¶?ó=D÷S{ßýr²÷Á…œ8´ËºVr¦Hªˆñþmz¸×¶uÁø¾CØö‘Þ ™§w¶ïœÄèë—Ï|¾c“År¼Ú?ëĆôn/Æßgyxû´XoWµZ·KaÞà II ÞM#Ÿ?=Ø_óÕæ3N…ÉÉ=hÐÏHz{¹í½ª™q÷2ž ÉšRÉ£)•%TÉ@ûÓR¼ê±$óª{á!Í8H ¨†Èåì\¨{¾w ¢¦A‰ÞްþØåŠŒ PÊIå%õ#D x­à„ŒŠ/ÑÛæË¥d¢*.ÕÙl'QÏ™©'¸HÈ}Îñ–¡Êaßÿ¡Á™›t=*h^LjŽçyr™Š{RLÐ|ÍhÐõ92X½B·—;ÏÞ4Ü—Ïž½9¥?Ïñ…J›éÑ+þÿž6œWô;wNy“ øêUwEç\< /u_÷ŽLQ[ãÉìèj°õò™·ó¬¾¾01íµŽÝ äpd8tLü§H5"”&œ:®6‹XŽ£å,@@x?¤‡ª/UOR@©"mãmo:Ç~y¿v“î¤åkØ&Ülk:~nÀëj÷_½®|mÑ¡?¦J‡§ÓL_À9‡¶¼ç$ÝìÐ<ÎΞআ*Cd,u˜ Ÿ%1.½eðm'àç̹GµòÜøØ–·|óÍÅûªÀ|É5Òùôáø×ÖôÜ×,!û ûÅàà«Ð‚œÙ@ÞÈ“,©Ý1I˜hF NØ›O¬ðNœÞŒÙ`Ÿjó{¹ƒÔ±éUËŸ?Âîl5ôíÅ€¶WJ2€nÛ—ñƒ^ëïѵ ËÌözœ]Yg€¦©íõZ4‡S–ãDãçñ ‘4㋊ìÇ·@ªLÝÝNÜYTæ( º°dÒ:C\À¢"íšðŸw„…À]@øàÛléû®´. Œ[ðÜô6_Ì^BL€º¸ÙDÁ8‡"8ãÙÇ6­Š2“«TN‚´@c"ÑCÛœÔÜ|îV›£‹EBôá0f)SiXÔ7ŽÕÕ„hxe-?Ñ4½o’\G%3¬¼~ùµU–Û¸ýæøþD>g·xî¾nUjG׺›#ÅæžÉAgÇÞÁÙ±{t¥Ë¤ðxr({³’›¬êk>¸|áf2•½&š,AL`; ÁèæÏhZsÓÒ béˆù«’[ôÚSlõ§èõS.¸’7œ ˜'˜îg@ê"{ƒ^hºo˜?·$(ټ︴èÛä¶.—!à‡)'Á0‡©,£y;(Ë\Kg¡X^+³ Þ4ÑšgŽQßUü•æ_[`=a¹u.‚íåîP”Ô>н)* ¨ËÀîa8ÒšÛ­~]âêP#©îus87-¸ãÖÆÆË­ÍÁÓ·^ü£àÖìÒyû_XE<Û;øascƒ·>nnR·?]©LV®Ÿ`up:OCìR¨ •¯ÆÈ)Y* /è¶Ÿ:6Or9Dçßx µˆTzj*|l·ÝCéBU»ÐêþNCÎk„‰'åƒH9¤Û€žÅú:ð± "ª7ÃýÏŽO‹4<·ðFRØX¨âž»'oâËžûþðˆ›4(ë«på¡-µ0Xwwèëý_ø}‡N—H@ŽºÞ&,Ë/àèWô©Žr‹LÂŽâ2,˶µ?X°ø{ ¸Cy¢kÂÌhF ›â«Dˆ >¬þf¯‚§ò@•G»S“ˆ®!]°ßåifPÿ/›MǬPEã  @ŠðM‡‚æ´éSón:=W¡õ]$œÃâ‹Ê†˜¿]¤™UÖês6‹‰†TMx¯,§ö‰ñm‘ Db“Ê6åDJ[µäIf’ù:÷î°¾ÂUR\™žÏÈÛLÙkQh†*¿j¹ÔX¨£ý‹‹Ïf·KF¾õ’UÛ¸*ÚðM’B ž¤3í9†­=¥‹éÓ«N°.i !ëâø7úÝÔJüÚ™p!d)`dk· ‰¨CÈ5FÅQ­ô( ƒþ€ªR9 &êÚQû㧇ë+ûqNÇ2P¤33“{×¹= tB'ÏÇ4eËPÌ[$R»^úÀùÍâ8¬œÛ3\ð3qžJWáÖeõ#ö©Ïâ”È68f1+‡í3Ö’4ø³26ø„Œ©ûÁ×K xæô¥5LKy„Î7ëêv“é~Ê,Üë*g’&·Ð±¡Ó™79 „Õßâé1¢7Ù"»É)ŸÍjWTô,TS³ÝßÊ©*Æ*.6.‹A´ãé2Æ¿o&#å¥06`t>ÇI'À-†wáÁ!}Ç~—¤fai–h"¸Ç½ËB™Ž&N8E²ã¶sÈØÞk=WfÊ8$å¡6Ns=Jóår·‹ç-þ·X¸§*ºï¥HÑî¦aõ´5ÑJ¡k÷m<Ñ4è]Žü¹/‡iØ óª}¨Àæ~k¼îЕn—njÃVá‘äœKx_\i®Âå³úY~—Ô n»ræ6Þ[ÂÅ‚¯rs´2ë ʗІ¸DÜ“™’2«tÇ ê–¾UßöÌLU®ÆËgå¯üóGñ1s37'ò¥¾á@z|t¯èÌO \üåmÝ‘ÏÙ‰LQž Gfƒßð‡œ Zº~î´°GlºÛÈuW›Š·$R4ÏtÂ(ÖP59?ñç as$IJ>X´ÇÌp€ÊãJåÒBoSœBËáéÅk™ØpÊiÛº;¤ùÏ4—xU*¯bO‰öXö讜ҲД©pXèU©)ó¿v´Þ>½8k¸'ü/`¢§æƒˆFI'ÃG·±®H_ª^Œ¤œ÷bç4áÚ…DÊø˜’Dà ª5û©9b?Ôuüª¯ƒÑJïü¡ñfd\}úêÌ×Vp™>Hˆ.sŽ*ÜÚö^mrNàÚtŠçÁñá‘ä$âcåàŸþÉN Ô湃ùŸØ]¨«ç~ÅŽ£#š˜8âÏkÔâº4é˜&M ê”fš¦y’R2±1áâ=¿Wú‚O…âWU´u…zÏÌÒsAkÇÈ(VXî¨TrûÀ äÓq=×›#(þ!âQG¹±ä»Â *MçVú%5˥㺕ƒß|øTÛ {œ¬rÔÜœ±ô”¸1ÓZNãP‹C9¢4œ~È™÷ò•ú™ª£Üa>BJŠˆ>·úQ<Ò7€ì§ÿ:(ÇáOÿu”'PfïúZ>¥-˜wØ_Ù˜Ÿ§$íyêñ™ËäÃ’Û¼%B!Ìz{å¾Va4út Zã ´!=ºÙŒ]åî#ïdä#%F,ŒØÞNÅ•$H'j¬Ó±P•eñXùƒ©³?üØÅ:¹Ôº•uS8Òwc/ˆ¸Äx³t,1ÞpÕ;™n¤Æ½»JìÞ};ëóMïÕŒ–ñ½ŠT“þ¹ ŒG=ÇDE}hÂí~EkãD_á‚Ck ;¶ÌŸö¢îôOëĵˆkªð õ—(j”×Ó”nOp3ª¼«[¾Kó»R\Š-ÀwZúéì åõ?u'°­ÔTúÌ"ŒNߢ€9\‘YlfHI§7^m`É[À7Ɖꚴ]oÇcÄ„³)Ab˜}«‡Îc,w3›‘ìXØóca‘ ^œErM±SVeåâ–Le€z9ž8ÏRZƉ˩¾{}•ºcïíÞÅžûל˜ÕØòßÖpÔõ†Ó8‹›¹§ºÞåøþ+ž -[ì õÊóé¹(m1_tÇæmølè²åmØÅ$e¶„²iÞ5v´äÍO›4Jó1¥›•XÐEÓFR¸žÒt‡þ$àXŸ6q.ŽÛ)x=Étö•v›î`Š,äÆô'î} ù–ó@éMÄD䋬F,Cò”LqôÚúœ'Â^MùÄæË“+Ñ"ýèÙñÙÕójôÏâí;·â{q]CWéÑÈÕô£ßáW_â(™}„À†Tg?RÏ´}æ«+ûW³Ùžé8§ô=MCãRNüîrHv¿Õ¬`7&[* Ml|‰×Ðvb|äÏ :¹‰@kÓ.xš§ÉSbá‰~êÇݧ¦±ô©Y7Oî ËÆ~ú|Oã”yÊìÂYö+5–6iý<ÍÇ}ÔF}oÂU[!ŽÅt‡ˆ*ê¨Ë†Ù&Ä©›»¹·ÿñÓÅ{g{o¸Uš˜€Q%gƒak;æ•%!BM¹+@,,ƒ+u´>¥n#øÇas{wÚEœÊUd0èæ™tHF_·:’®Xµ9ÁÁ¢ØŸ/cýI¥ 9•FŠÄûW®Oò/­|º*G¢D\Q¨ù:ÈÁ/ì[¹Ý0N5ö Z ÓΑ&“od¦ ¦LŒe¼Ly´’%¼¹ìÑGwúì9„×ðÐBË`ù•äJ}ã¤Ô˜GW¾§ôCÐÛDÓÙõ<k½}è€u6¦îþëd=><¾=ÝÝÝù¦ñÛ¢}bŘ•§ÅßÜ™‹ªš¦ƒL/Ð>`HaÐAìà*™e•îÏÖÒGxlº;;Þ³9@' ¨@{ ÃÐôëƒÎöÛ‡J¹æÚ^8"VK[:X¯øªI0ÐçÒÚó­÷Í&õú2îX ±ugŸŽ€H7åâȪï°¶7:¢”xK 3lrqÖÆH“ˆ2å;»Sp|#hÚ+–8²ÀÈíTº èÌèâ_¬”¯Àç›(—*T Œ;Uv_ºž[*=XCm*8U+¤P‡ªiÔk¦cÝ…Bצº–“²M7½¡låc§úv…Q±qD_wõXtöBÊ=¹ô›-Ÿ£.jh¸«SºÒ‘2pí.„Çqw{òd\‡nMö®!ïw·ÃOZPt½(4vÄ<"2Ç$OF´¿t”¶ztñ¥Eàñ?Ñ4÷´Ÿ;brIo¦)ü,ÆÆ+µ”åMHZÌrÍmÞ{A¥ ï9‚“·¶ç‘`Åâ)l âç¹Ö¸ ˜Õ+íž4'kœ?—‚2êqh 6Æ[ñ©t¹4Ö¸SuåaÉÍ:LÃ…Ãmhë1¼5£¬þÆ7{†ïJ \%Â~&B° Hèœvž¨Ù=æíJÈ4ïü`Ýü#÷‘u¢-ÀÅÉÜZk#-ì×Né$*¹ÿ¬Z´Qqƒ”Ïú¦Æ‰\Ã<åÀ07*ß–éî bô  ­3`<¥µ,IK´HòIh¦›a´Ê¯ Mq:Çpj˜Rƒ¹O§bñÌ3ÏZ;¼<èÅà¡ÔäD­W¯<(AæéU’·ÎC¥u®qCÁT:ù×ÿô¯ÿ—ôkø¯ÿéßþ“ûþýÁ)ÞÝ4þ†Xý)Uƒ/¶¢EòÐ!s:Ö­éŒ|¶ñlkÑ2‰ŠT«+%¥²ØaéaýŒ:²bn%Ïåá»Aª›/ÿótšcè2Ÿ=“ ï‰‹ËÜzï=¬·ã°—žõekáabRè­¦¯)ô³UrÓÙž¾Üx±±¼û ô³3ÉéVS{a•‡3¾ê~ì¾Flh¿rŽñ Ú$†:¦†‹ïØßXQøŸ«`”³zŠŽÕºÕœšØMÌãމîO±@*>‚»(¨übãÙâwkÚ>*EßÅÔÌ»XÅÐ êÞ÷—— ¸9]̱;6Nú{!`AcØBc6 :éâ’ç9äƒ.“<¸’sEFÖÄœ0½‹E5›Ìoõö²¥~–ý•^Ónz çÛf»A”4¥>ÓFœ"~Ýùé¿ÕÕõlÔ!!¬ågzHG¾¢¤ ­ÎÜmq_›ÏçGh™up3"¡¯+aŒ¹â¼Zõú»Œe…e:4XÁheªA8}kÆS ú[ÏZÉW5Í¡JÂ4É¥VûP]>{TàÒ´'ÝÏzwx$å騮ÝäáWb3tÓœÎÁᶃ~Jlhcù˜î£i§5!¡W÷©ÔCî¢Ù‹ç?æi§†¢ˆ¨õ:ìßÌ¥löítŸm\»{±ïž€€ý)@ÿć9éÐ1íY>=WóEÝóï]áû†Í< ½“øV+hÕËÆ¸ÐÁZ¹½µ`êâõÅ™õÝâ¼0(UÒÈ"|© "K@ò $’ Ž‹g& Âþ$ÌÈybcôž@C+fC•2†Œ‰1â^G0IÑ‘Mb™±{=äJ³†,‚½€o÷´‚I(¡ÔÄ5i²8ñüµ!ié@Ï6·Ÿm4ðakã•ù°½óÂ~x)&EùòʃU„qª½ëuÂ0¿œ¦p U‚µæ°ªÙ@D§«Â/a¿ÂŠîÞ¬qI„õ7„}J`#søEq.6À‡5 Ö¶š¨IdŽõZµÎ´ŠšŠãD÷tçŠ>л×-zÓØÞÇ(#¾©Ìñ¯évZ-lþÛMè‡ç¼÷ºÂÖ6gTžÃ{Š "s`¼:ßñ>ȪÞtï ËÆØç)ƃk[­vrá¹ûS§‚P‘™–Ê ÎPTjâ\ŽyŠÃaP åwxý¥Ýá¬<ÉXÑ#ÕpÈ%|.dW}mF^—Ü«xÂ>-ï-M*¦tðm ßê¿ÈéåæaW ¦4ÜõFò­^îLùpò>vèþ°jEÄò ,}ÿy,üU–Ìæ·öûœ›¸»bŸ•16«ÄaÜeÌ_“-ˆÒáêÉ(ñç*Û vr#VÐïºÍtq_kuÖö›"î'@’-˜ã0&éÒÀ»&ž8¡Ía8O•Ɔ±5JHf¢aCìÂÆyºÙ>â°Ë&ÜNŒSg!†vÃl¸·œ w~6jf6Nd$MëaŠ rºì¨°uŒpT›º§Ý ƒ†AËh¥Ãi¤3/xˆ޹ª2ªE3ö Ǻߑ=HˆÁ1ñKi±$&ž«Þ)&^jÜ»«œßyÇÛ~4’÷ûåiŽlb½L`‹8‡=+#”ø_£jÍ"%ˆ*jº&oZoÚAìCÊR.œéƒ.;Tr¦ª´¶¹^f‹ïDû› ,s,±·¨„™³Liäݪ?(Û~sìŸÿÀ°n”ð³fýßRr‰ÜW]°Dðàø™õT{ÕòÌæt9 úAFn}NwÜNžm’Ya-d¢˜DPiA¼V'ꊙ$#»DŽ=¯XCAò~âK†¤ I‚´€ˆ\ÉÑÊëYÞ…`PG“W‰ÿñòP¹´êŸòeïsÃÝ;~ýšþýÔ y;Ø;m¸§g FAþùò\—ƒNíENQ@£Ë’žWF"ž#p°¦·ßÊÜZרûvžœÕ¹Ÿù綬r÷¹­¼îûÜ.[ =¿ðv`Ùè?!æ´8AÃeÉ“o”ç /àŠŽM\ˆ̈‡uSAJc) k&šS¡zV4'"WZaÆòsšwDʶH6™ŽJ\ë)­I¼ítÜÝ´¿­DÓÑ—=좎wÇÅÔ}Ë*ÀÊÅŽ­ºÅZ´A?hj–¦é…t®5c½•—9‹~ÎßäC@æ*äî‘L«Ä坸µLH—Ò÷pJ—›ÛÒ“[ZœÕ©ÖLyíæ ÀYl%”ú5éS ¹*ͦ‰ýcS©—ºÝ«”Ý`^nÏf•%Æu¼Ðh©z@—¥8ª$6,k(‘&V©ÑaÔ–ßòöi±cl[#º' “ã·W+yç*£M]’Ôï~ªK’ØB”šÝ¹B ªIužVï«(i‰ƒxp ©À3)!$öx€l†É°® ¶È£“§ªC±ºrçæÀë Ú«„šDö•׸kil1 ¼Ö¥ Z7Áç¿_$nq+¶ø±<Í„…°`ÀéÅ`Øc N3Ž$[™Ãßâɾ¦pFèU˜CšÁ"k'+3‚Ž-îÆ«ez« s<ǰ•Ÿßop~1Š-糧³ý šÐÙÀÉÐX‚¶‹Y¾ Xé]D@kìâÍaR jX¬š†c nÔZÈYç[a¹‚×ÂËYv¦xQMÝ+Éa1“ìÈUæü5Î-¦— -. k @p®-ÊÏ® ŒkÅÑ×H˜.£ªG[ãy‘ —•UºÙqÖçDJ0½¨Œ¯þáFC-à mÿ˜QÞ:zf–,¬(;‚DEËÍòb!}ýçÊÐS‡™ÀÜÛLÊuÕŒSî¤ÂtVÃ3ïó= VD ˜I·ºÓ~„ŒêV'ÎjïHòè¾×Ñ×@S9ÿrÔ"ö©Hxȼ+åóN\?PÊbbÔÏ<:<îmÎ:ÞoØo¡8‡9±àóÜo¹t¡Ê¢eÔ¼äš €¶£!çt*ð½pkÉ$׳L{·/¯Ò•;<ž8#ßI&Ôê^ØŒQ<á‘VÀ¢á6ë6ç¢{ª3®eáØaÄ)IÊÍÁý6îŸW9§Ô?.Àš1Ù8ìê4ñµ6¦Fþ-R5¼õïHÚ‹á´;«ÈF:«èeiɾÇɵ›¨+µè#58íÌ;-dšøWlnÙšõÞ^ ·.À‘³*å,ü¸:õô¬ÂýjRF»OÛjŒ/Æ Ü\"è|Ӊɦo>ç- –…ù¥û=ý– §ÂÒI}(Œ‚X àp‚îÆîWŒûHÛ²Lã]y™q¿R¼,S9ëåíœã‡SwJ‚•ÔÕÌ>ù¤¸RaÎËDÐ&‘ó­LÒ ãîP¤D£Iw;BürÒÈ8,DwÄQðU`;tÂnÌösV¢Tœ&u¯Çr¸³¿jŸÒה¾.°5`²è˜DÄg&6~O&Ážä¦Õ®q*1Ž9ï°@gß`¤ ç=[f.ˆÍ²;I(§ŸÚi˜Ì’Lf[ÃÛŸN Ó¿ eéo³}(nÆÎ1Ôâ)¨ËØE:•±BƒÝl¸Ó»ût÷Ó¯*ý÷ÕœkSüЇóª|m¥Á8C£4{ˆŽ°£¢t u“³àq¶£YD{踈í‘åÖºM{ƒs±U¸½N ø21]˜˜ž|sŽI-n’ïeûÒVË@}d©ÃJ?±/ÎÎjËÞyBŠŠÕT^Ý*?!ƒ5U¦MÏeœgAUžBlª„úÖmŸf8ØÝoØ8›Æ¬ío±ÿÌ&HgÍ¿ç~d`PéEú\é©3ˆã¡¨†‹Ü(Æ]€óJÁükóµYþF]2mÍ>£QÎnM²·Lþýí,±¹ë–¬°Oޏÿ€×q†KEå~ÄŠíÒ6-A@eØVcfY}lSãFÃ7q“€,µ°·Eôõªÿ ïøãSNÖWÔ.–‹¹+ +•3øž{£ƒ&-\Ï–LüÃÒ,,ñwVR³Ûé”òSuåB¨äŒ6)‰Ê¦+‹É¦ô°h×ýK®s:Œ `rÐïå#vAOéþÕé„üúÓò¼x¯ T‡;rrösv=(Y\2‡aó‘:AàˆÓºûCE¡Y¾è|—º¾K]7ì@ß»pÏ-Žî-êÞ%À·¬tï'ì3´á½zén¿z潘MYL,¡yŠ"û¦(¯:œúŸjY¶`£µEhÇ4€bØŸQ›Ôö]]Û› °r8Atd“N&¢ê§êÛ…ÇÈý\øUk!äÁÏé–›©~ŸN¬¥˜¸³ƒæ^ƒÿ5Ü£½ÍÍmùû²á·÷?>ˆã¶÷h d¹‰>!A%ÏÆ’ó·tr¢“E\ìŒF(Ùiß9GQWÓ\Àq*?Ic«<À`mŽÝs€Ãß›‘UÃFþæöάæÂØØMŽ‘=¤Þª¥0Ù7 4h*ÒA5‰uήæåS[_ë.‡o›);~ŠÞÁ΋f¡©” ¶I{®+o‹ºqBl–cŠM~»ò0±yÂßlj8ŠØ´%kÃt <'¬Õ àΦJea¶Ä$||tt„É#±‰iÁ­røN]ì®qÉ/tWaâ®cwscƒˆ½*iŸAY_Ç×în§_—Œ´kΜv»ô¹Eb«×$&.÷k€AI–¬ƒ:þÈ ž`2Ž’+ÈbŽg˜ƒ%©¨‚¸9™9§º„0i¿1ÒÉeã¹ûrû¥·órö~ö©æÿë¨âméÙEµóÁì>)TÑ"9±&\% 3àJ´ÎRã ÍNÏÜg-Óf™‹c_Ò)ˆ–Nòæ¸HÀ-7$dà+"0ÐØÁÂôÌž»WnQbWƒJø¨SúøY1¢Ÿa½`Ý/±rø £÷¯7ÃÌ Àu°³ß«Í!,Á¸#Ù²Áx’´Å´ [.=™²A=H¤ájö0³ SAb=Õ…4Ú•&Qß™aGkyšùP‡zÚ‰é·ucõ»…ïE°Ùß=üÈ.8ÝbúësL£†ŠU7Ç‚I‹«uáénüæó(¤‰Â±Q™{šµÁH#OsÊ&>ùí8÷hÔ>R-%H 5m 'ågù-Ò@õíDˆV Gstź¨ ³,Qʉíšfù“褟KÖFÊa×Kö?jlbÄœ5þL§Æ:_៌sâþê•Í,ƈX$‚ð¶ˆàê( Äl”6㲡OÆñ8}ÂIhUѸ×+cÓ´¼È¤ƒ†®)k7fÞ¼*߯€¤¢±»GÓ¡C–2ÇôŽú“ÉYV}Žößö^º[[ÞÖL@¸Õá´YðfÓX]Y¼/ ¯>.$Þb oC¢¤‚ã%Ëè6yJ5µ„MÁqˆÖ]P¨ÛÇq!w&cÇ| R-Ï­¾ÍŽ1f5kipŒõUfŠÅݱ2ÞÉœÆ.Š;YB§Æ•§j^kÓM#˜A„M“eݼ´`¬¬ðƒ'Ï¤Š¸Ë‹Y²†‚),.§vÿ±8SÇùG÷ˆS?òG¤ãå›;€ãy2ÅóãSI:y~ ²i’Ê’Æoçí¶û2/DUþô™Äü˜?ò¥QX}Ý£ ®ta=­02þ¹b>ÆwÏóÄ`@u5ò%ÝjâVÿ(kJ[tÍd×Ó#‚×ä„.U~_—¥£VV<-ÏÞ´^ÃÕðEÛ‘ÊæÚ½ˆ}†–jAw7 íL±´T:'újZ…ôµ5!¶ä#o@G\0.ë`oà‡šèam^ß<½î%óøì¹§:ªì«Ô¸òFò•íLEó%øâ~LÓ|OL’± Ïâ{à·C¸“¨Ñ¸FtŸžÎQæ³&.6ÎqÄ|Vt¥‡º‹:re>Ï•/l^jh‘»#¿ÓJÕ(¶–•¥_'ÚO‚¡ûVû "#¥{ò´E§{¯ŠÓb1bè••n'£p®LºÚô´R²âÁÒØE.(Ãyœr"_3ùAŸ^Ö’?Ýõ®*ƺ7ðÔËÆw=m!Çq m¤㡪Tñ´5)¿œûs"‘»MGbwx]ÐDõ<úk‡^G[(žmÞÏ|&*‹O½+~Ú"&7‰“ЯR%aóˆd5"&"%Q #B⩦§­°xZv Ù¨K‡ Ë qTî+ï™·q¶å¾˜·sŠúÀ<Ï;wíðC{Ý&8Zº¿^œ)ÉW7K4¯RÑ4²¶üáp}u\6—tæ_76yD;^º Eœ}½|bŒ"ÏíIð† «—¼‰C“*àqõp¿ãjèÎ8˜Ù°•:úç^b“Ü 8xœI´b·ܶצÊoi÷az*j¤ ¨Œ8ÓÑÕòy=à".•Þ5‡°ËÍcÛK¥p’èÔ¿1ëBWÌÚXRcౘ~ÏÈd󯆻ݢ7éÙ+™_œd6ŒŒæ9ïr$ZG‡ñÄ}J‡ÑÓ0è<åú¿Áád±”Ô<²š_„!hÝÿ¬¿[m¡ùEºr?-ؾÅ~2«»LäÅvbî ú½ç#|ΖÖóbSª('¡mmïüt•×ËÏEð @gI÷ì%:ôáx^"kšUv£Kº â©qVO{Û©q–LͯC×å+ù;EïNQÄ6® i &õï¹ FæpV"/ líü)¡1ÒÚùøJ»QŠX>.ˆ¹Iü"oYÅ zÏíf§8èÀ¥{vióx˜ W5~qú õ·¼Í—Þ+“µùÕ&Rð<Ÿ÷éÚ7Å-\#ŸíÄÁ‚ÈvÄ Ò†Û§5Õk¸¡ßp£QÃ;—Ýx<å~>7pƒ¦åÞpRv‡dÂñÆ‚WÐÝÐÌÛr£­1øïd £â6=QQæ0þ w§’Œ…8ò@Ý{!ÉH§±ÌÍj„¿­NЇÐ¹»AmšwJsÔ¥º,a«¿·»ƒ‰–0ÿ­—áDVì¦GŸæÐ–íÕg(¶AŒ)–¯óÈ}n½o5Ißaó ‰PnìöóQgÀéð{H± ûÕùgÆ…:tŸü-ŽŸ¸Ë‘»û5Ž—z%„” œ-§é(„Ça’M‡ñƒn Þê$£'†–‡îÇîQÃ0¦B‘|šï^œ÷íµÀ_€ax”ÝÚÕ~WwåÛ\S\ô¯´ùú¾BzMß[*èÔ/Úîkxmíö¢ÞÜ»Þh¸G½×âF·ÛÇ×áÜkpù°wšæ[DS°ø>ÐbG¨Á¸¥®ƒÊ;€Ãwyq—:¶½Ä÷|םЅˆBjJ“êîÒe»õ•®dyå6ï]xÀrʲˬ;7’wj˜wÜw>lC\SéëÜ@ÞÑ[Þæ€È:î~µ?¢ÿGÝ!Z¸´^†zA(sª“‹žÞB_ç i¢é‰š ²ðׄ¸ëÇ4ÀÜ^Ê×ùñ˜b_49¸A§ià/(ŒÜ÷4w>H?” } ÄOmÂç{Ó.y„p+¢uåóüôß“ˆDÁ(Bmp•i¨T2×Ò{Ï=‡.(ñݳàçÈ.­ÊÁ\{ï5µ¦t'§Vwù0_ˆ–¶û6¥µ7¤Os?s²Ÿ£Á*´øùï|™"/^¦‡–›Os]·E/-Y2ù° M¢Àð`4—Mæ | %† À=@•îFô­;÷¶3¸@ÇÙ€éȇ¹†dsûU9ŠuJíÀßÃÓÍ Iƒ¡—åÍQ®šLÙNÁ‘J"h¼ˆÄÝë¾¢5ïétœÔD·ÜʶÂ[øëIàL’ æ:m‹µ^É韒QZg çqÆñù¦âÎÜÎãÇ!£xrüþ˜£÷'I¥L[SÓÌÝ^+ä…ÚMõ<ó¢>°:É®»)þ´`0ÔÕì•g’è¯î®}àɃ+¯pö’¢4¤—Ö“Z¦jžÙ´³iÊè›OsÅ.â¤s‰Ø…7 "íf4yså>…=Vœ ÍýQ…Óq{:ê'^ÚªëaÇ\ÈEϾËEßå¢ïrÑw¹è»\ô].ú.}—‹þXr‘ ›ÞN_T¨—Öö_º~±¬¯ÔÝ V&1“(¡êP÷lÜüÜ–ߣ}®ÌþÄc)Ñ·%\G#÷Tu»k›«ÆW³ÞWĬÓø«AéÛ»Û3Ÿf8Ëjæó**T¡Õæ,ÒwZ1­öƒì"æäcAŒdssªÝU@úk¾Q õñAàÈ%gÖ {º$[ÑZ=!Ráû'PÊ 'rœý‰!î=ÒÀ|SéÔ$Ñuš´?'Q3ƒ“QetQÌÒnHg/'/ÜÁ”˜ü@  «žYà*¡GE>Aêm‘áÒvÚe~2uSÌpë©‚®¥ë`ZÑ.f@§äÀ¡DÅ fN—ÆŠ4Yâbñ'ÀSDþ$ð³KòÝ+<ºèÈaX-Æ> å“‡tÐi$å*†)¸,ù_LÍ‚yÉ+ãÅAäb¿¿LÝM1Ò F1î+àîl³â±Ï8\|c8æ ]E7Þ [•±sšúƒ-tÇS#ºnfÝ8ºÌ<Ò’kv9åæƒVžÛ4I? ¶å§ãïkñûZ¼íZ섪;lvb@±îx/ÜÍos6WàYþõ+ÒÂmÍ8¤»cyÖW£U‘0ïI _FòÃî¾tʰ{wxìx†|…dÆ;[³€†ûÈØÜU.X`^ÙŠ¼8«Ÿf5%±ŠFtQQŽŒŠªðãöu¦húN5ÂHuâ\Ò•B<ü;0C«¨AùØl!›á»ðŠŒƒ²U?Š90S|“¯9¥¢ÀÌJ¾ÃZntŠêŽ€ßT©¸6  ^¤©k{ר®þ´Œ)Ò7¬h;ô@¡„ÁÏ~m Æ•[¡bø[²DÜ}K[–îCÈ-;_ÝmšÜYt³‹nøôb¤XÁ”µÜîäÂ8îh³VŒJƒ÷ å>óìË ¢³Õµ¯ã‘Î’©#Ðö‰±öŽ‚´K6Ì¡kpWPöŽ‘~òm< 5ÈÑçïÞ@¾·ˆ•?*¹þJ'ÆçÅsäôœñ˜ÿtÖ69-ÄUžÊÓ¸‰Õ |ea ¯z¾Š‚·H‚KLÛa(PT3Ë«h¬Il‡.(H™hP1W‘äT%DC"I˜‰þaÄZó ”îÊlÑ€jÕîÞ§‹·ÏÛÖUÓ_äŠþ„Iò¤„N~eEµ¾´œñÒÚø-mÿVU©ÒÖ ÙL‰zj)”Ód½€›0½LÕ‡ªH¸:m½ôžoÌò_3¢µ‹Óu„˜si»Oþè‰× ·ì2­Ç¨§eä@‡µF”¯Æ¼! . ‚`D8ËæAõƒäÉ!§§[ÛÛ `õùÔäN¢ÆøÚ­ÝÏ:!Y ™7£Î[wÿäÓÑëóã‹¿ý;÷S{_0øðìâãÇ‹·8E|ƒOç¾I3PLqûøMÃ=Žº^ƒêï­œâk÷}¢ÒhJ u8Å_[ÏUFTÓÞb)( ‹¼`dK@‘˺w‚E®T{P¯ÝNJèò–»ùb¶ÓoŽÝCú݇º“ òp9 ½£­.D=¿¬ç/¨×-ë• pÅú½›2+šÿ[¬y£  Í!'Sú³¤Üò=!Ö·;ÁÇPë%%mª¥¶J‘k)ÅŸV:òèÆ2¥’ÞåøþK.îÇtÎfœåøÛtÓ›‰z„Ž{tÜ6Ûcõ_siLg)™ê³m© SîE*œ¦Åýò,ßuÒ±äåføjd‹•³”S9çÕj:š!INS¬\œT€²\€ÛÙ`¢i½ê4 +ÇKã»djîDZÿ„O£'EŸèë§u©4Ä’–¯«Èç%Q`2Ð|ûå HÓ/d˜§O¹6ð"A9£ö@Töc,Mݵç¿Üs¸oÔ¬ë ~»_jDƒÈ9~f¹M|žŽ5pdµšÕ2[‰ÐÄ ß ƒûef¢ j]gs  ‡Ó/ßAl+`í=¬JÓb›wuš´²Á4IkY¢}Æþ˜ÛÙUüåÇ_þÿìýËrI¶6 Ž+ž":Û¬“ú ñªKmxS¤ÄMPRVõ Úႈ *.$ÁY[?FÎèØomgzmÝ£:ý^½¾µÜã€DªveÖf•¥<<<Ü—/_×oIÅd:_rÈâh¥ –¹Kƒ šñß^Šé]Ló®*(³û\ckÊKQk[öJäà™žbÅ$ãcošÁÚÍocŽ¢Yâ Nà’LlÒÊ׺ÕAD&ç˜çì©ïÓq'ä¸?éH‘³¹ámm£:úŽ·5/Àðïþ³{f£ªm†_*­u¼HSÓY7Ó7¡ ¤Víp»Ì{3Á±£ŽŽ§ce¬ñ4õuD#[°…ÈïuMtÕ·›O†4óœÄØF)@/øÀ!”ž ¿øOúûJ$C3ûú§fR²[eÏ• 2³Œw¿j=86ý”aQ魠̢TQXlª­xnƒ‘Ñ븄©Š€„;“"¦4 )òˆ2?¼7Ym3"ó­s´‹B럡X…àýšM31î;Á.5—ß Ñ8´¼Ô­Bõ–QÉ[4ÖÐõЧV½·`Õ;öîq8ehk}7Uue¥!m@eð¦ÜÂBª$ë–‹õ¥0g1öTÆ¥`Và˜ÏàÎò›´uÌgwåÃ`OB²=Aæ,”ƒvN?­ÇjPÒGS×b½Ái´Oý§ë['?¼ ¯b§€E»;¿šöÍ´.ÑÇ^šl§¥—U%ækòÇÂÌÏpKµ“S‰zv’ž:9©¿jj@ìÛCžg[˧¨ý&b̪z =í®é<Ø‚ôój1ŠŸdÐ#©xÐQ3ÑØ¹—jhÖòr¿ sWâÍØ¤-fozƒã+ú¹ .#&‚@Œ0¯8lS#†ü+DÔò°S© (Hõb”‚]O‡4í``)áþª ¦Yp˦d`û<ÉQE9¹Â×.dvw§ª N„Ǽ½5žÞfî/îAGÕ×á­Š‰‹ºâß鿘£ý Õ 2±W³gÜ£UÓ¹ú„E-ü™/àîææŽ÷zá%b䇺0êWWkBŸn.¥IìÞ­+þ‘Ÿè¶?Fr¿IC€rÓZJI]bü™®[óKâQ™äåÐÞÔ¡“[àŒc.rªpvÐðôÃÕÑ™{º·µYE.ž\~Ú—J€Ü©5åçN54Ôn[±~&¬æ8L&¤…ð—§q¥¡ä´G¸ˆ ¬à¯¼í‡€¸Lê4¯H•ÏÝ({ÛèlI4Ò\Ê‹“[7ê*âŒ1 Y,чbÏ;•ò€¤ɲ—qðãHbÛxãá§}H©æÀ̯…*ª±MC_ꯠE» qk‡œí=o²oôK’ù¸(¦¿¼|y{{ëÕ?@À|¹bQI2*D…‰2Ñ«ÑÙß$}Ø2Úè_<÷Kˆ‚’»·øóW¿;@]Zƒ.`fúŸúG`²îÆŽ·¹=œšòth³_OÀ&öëeSÌݲ \U™ú!Y¬ÆGàdÆvûµ¦½pÿ€³œÑÁ‘¡ŠüÔ§Y°·¾<ü|ÿ {lzh¬`¦'qP4[ÂsƒcJ:«mí2˜|Vé´Û‚ m(›„O$Hç\ ÛÔVY!¦þ½¬k´±5a žCtdjY ž?jÆå®©œ&X ¡?‰àšw¸’”­þü¥ýiÓŸcj1p Qû'3öÓ‰µ1‹ã–(Û©î±Q{E:âkÒqm–dp’ëäÔ;~aБܩ|VŒEzó\·ìá¦n«)^K(waÖBäÕäêžeg…NƈÚÈÇ:LéAòþ–›O+/ÓœlÇ{ån“V±1§Qlº{2û´·'8$YD=º›F)—îäý*Õq†Cz÷Ê&b{¯¸Œð8­"ëÓÎ}M9+ ´Þ:œQ‰d(H–úíÒÆâúÖßWWLÁ*“z³Ù)Rs×aŽô’¤< ?q-Ën9uµŒØ SZgvo – '°gÒ¡Ãõx3}C¢!Ñ §˜ØùYÁ©þñ?Xïö³üÏ #—²ó ;btÃMÀ¾Ù˜—²û³¡‘×uOѬsÛxjÞ>—À .B—º/Ë<{Éßi”v"þ\øº ýÃ0PE@X¤Rü »v‡v±Îq…vó0ÔÈ«ö‡¹O±x’zvÇ!ý©H©Õ0$9»æÔTÉ(VÔ÷¸DÈlFÃéi)l+4³ôMª6uP¦W%i¨:´¬¤cM§tÃ4£“>GÒ6j+eé …C?W!Âp")üáÑtœ9ö]ŠLOHUT¿xV·Xþ5'ÓmOW-1Š{~Ó©Òžy¤Áîâ†Wc/ ` DIÓÕC-So¤ŸPŽºƒ2 ¾7=búoÅ¡ðvYxg³”ö~921ìJÔ lhøqŸûl ›Þ]ÕAÌ;”žNÛÂvê:‹4¡r kˆ#UÉL[¤’hR'èŠÃqDx·¶2Ñú‚chë\ÕÏ]Û¢ütÀv}†ÉݽÈÇ[©o=?~bÉ+;õ""¬˜ÿÄ{ÿw ÕM5"û.ijn<ËÿŽüÁuwccîpQj{ªÞÀ‰ñŸÓ†lP ¾º4ökjddZh-ãc˜¤ ‚­*kL§$„VqæN1”wÜO( Þ`¶˜®¢ÝìÚVïöH&ÍÜ ¥þ ±ƒ‹|Ë=™»Œ¤+6#;5j3¥ëòª"¹<¨i”ƒhj^ô R•Åܽ!^™–¹Ã9+tü* >ºÙÀ—6WÂÄÑÁùžøæl掳zöW… ¦#À¼žúê^¹»1_X¾P8¤ÏÓH‘&²•Ó2_hsê"VôH…ÈBw7ï­v¥Âûp yšdwsÝ{;'Wï CdÕxJ'ÅqLMÓZÁ5Ë‚bfuáêi£#¿Ñ‘ØVp2b/«fcÝîuÎzÊŸ$}ùj€ÀZ:Y›ØðvÞ>ôêD%G¦éyêLéì8P$‘äÙœ{mÍ;ØÛa³tQ¹R²T¸j'Wk³öк¿2E° ¶ÊŸuû™únÀ=q#Î #Å Ià@šÅÆ[5åx<&à\FÎøÚœ÷IîÊðŽÈ ˜ÌîImß.Ÿ ê«è›%Ž¨Þ˜KùÌ8°Ö6–[oš»ÌE%0õ•û¢óVó5žhŽ{²¦¯ªš(÷$œÅ(©ôd«Á;Ë¢”L›~Ÿ"wëóP»¿™ù·Öe:,»±&áh&¡QÄ× ¹¥®îì¹Õh›†qPk'D±C)t)ÏNM=Sù&UщvPZU1ßVÁ"Mp¤Eg럃” !ßב‰)“_U›u•…áCn5@Tû·øÛ óðIç4Ó€I€©(aý™þ»R‚u5.ç MGã<Þ4ßÿUGãЄ}Ö€FØ€ËÎoñÅroÿª9`â3°àOüú{/FåV÷ýkÞ0Ž9‡á»ñÆÛžmámW"9xèþ(Ü.ÞµJ£ ­f¤r k“‡Ž°xšú0ÊcõøwLåny¯§[ô†oÖ𽢟±ïéÃukŸ•£…[T| ÝH-Xb/|‘«ÜT¹RR{ha_š<—8 tä‘FëÌ%"°ØbBè*PÕÁõÔ\Ç~=é¸h¤Ž‡HNþUMU¢Ù£JüÌŠ‡Ø*ÂÄ=ŠìÊs,ÐiìWÃöP|åê/¹í¦ZÎ*É-àŽJÕÏ%ŸC&臄l¡2>ð—þc®âÒ}ø.iªlxƒ|Ó‹Q?Âb!/> Y/;ŠèüÍ\èg•A"¼îÌP,ÝÙ¤ó þ}Ìq0:±uç0óYd”£¶4§ !7æ°Ä#¶¼Á¦qTÔt„IíÎϨÓìÎmvW"S_Ìg–˜—vЂ¤áàš_Õ{ÙÉ!ÆéÖkw8õˉCÑ 8±¥³ù`ã\Ýé"¨d^ŸÓR™!l¼ÃÌ–C¦;‡Ãð®kb­4>7ZYõå âŠt6¶Ö;ëëë2Œ•á¹JI…qŠ8¿$½¥³¸—æ“-oëVˆÈžL`‚®þ0‹‘5\2õ_µC¦áöx©¡ºs×IÍÜòhV!öÍ×[ ÇèR3ÜœMTEs³y«VjÙ=foØ6 N„8\qY{Îh”@W_ÃLq¼÷[upvy°wqÊFtúÈÒ(‚Õâ†$/åØG|µ^2èP½É»Íá÷ÔMü?(÷± €SÞ[‰á™w‡Úw°â/ÞYåyê‡J, i´:‰#áæzi`E5ÒoHær¸eÛZîÃáu„€¤¢ÅÊÇtl,Ä8ˆT¦þ¨gî±9ûœŽg졲z•CC³Óâ/-§cÂ’qèØñœˆ%æ?q±hla‹Ý¥·œÆ6n‡º;í~°N¦ÕrTŽsìBi–£ð=þ×#¥`À™¸µƒ\…î …åþXßæ“ɘa¯˜nxY9κtvw©?.ã&+#(-tÚFŒ £ü^¬# ¶L`ËAŠüÁ°ÌÝÝê#‰tAÒmX탑‘¿×!’B'ô§íη5ãŸB®9ç㮓8¸ãnnnÁwÒ"Vžå+ÒRjÑ…%%¾M¬²lzÂÞ§á|N¡½¡¢–¥â{ÓPn(÷Y,ô)C™V}6S«[ËÄoD#!¨"Ê@"ñ/f,QšhØAŪ£˜þºuœ™!C¡69׌·–GkU6³;&ߌ權A¦–¥Ó {ÙtJÔÙš‚¹ ¸MmlU+pˆTZ ß½’ÚHV%¿2—ã½ELTkqNquŽ—Ä3_ž‘¿¬.ˆa™ñÑÚØÝ+ó4³$-ÜwaD2nöh2óI~ÕÈSuwLzø,ÁÈl3¨ ŠùËM JÀpM·uפ ¤ì«-£¨ °:Ž’W2…èû;'(df(CA¨¢täVÖfp°“è€îîˆÿö|Ô3+<$)ye‘’äS¤ž¯/dÖ¿kìv§§§üzoI£µ³ãm½Yå00fsš¯r6ÃáŒ?â%%¡~C•®2®Ê~pØ’G÷xÕt"ƒ¦{íçzp?¿à&¹‰|â~€¶tpؽüxÞ@RÊ%Š]É™ÉÒr ª/›Œ!9 §¿åݪ›Žã©pèsäd¦nÝW]ÌUæ^œÛŒ ÖÔWFDAÊ–0ËFˆÝ]8•à:;ðUQvç´x3w÷Ð>.z1ö)æ˜jºWñõó*þaV1 <)›HóÞ~㽞ã±_0#.æŒÏ„Ã0Ÿt÷ŠîG.¿†$>ËY/÷>š8ün ½*º þ²FM^°b%Ò§æ(˜«Yp€ÒÏs틨Žé÷yö=ä4¢Ü˹Œa#²Šot’4©òAdœ®#5múl#ŒŠq.!_b+Ú$¶‹Èò*ƘUwêìñœ&ü‘È¡Âö»‡R"¤ÌAï#š"^5G¢„ˆ%Ê>Çå!ÝÚÔ0Ëtqè+*ßy |Èêò¡¨D¼)î~Šúd“°èÒVáŒtÉ™¬oÜ­y5ðÊ¢ :8Gë–»ëÚÛ«$„άø5½0×s÷峘±†xx<±n÷?hÞ‚0vâI˜§ÃFÀµMÅ9âÚ¤ý‰ë$Ƥê;§¢ü‰‰¨Â@r¶‰E?×ù@2 µBÙˆÿ{¸4 ÿªHTÊ w-b¦Ô±›Ý´ˆ!/$á3(Aœ@¯»kUèB‡ÆUpBK¡GâTyÑ@v<÷OiÛÕw¼hâl*”š=þçž´L^8½a?§Nì/2vè"„¬¥Y8 ‘[açûÅ£é‰$R ¿m¢-b/sT™ƒÏÓl:æÈŠfÂsÛœým;Àìë„4þ[…˜l¦ŽlÀt8 ýY¨vyXæÛxëëAV²!bãíÛ×àJ|P0L„2é&¤ßJNFeæAÊ0y3A‘:!!¬„ÒDs‰­‘‰èjDß‘‰Ù©ŒˆˆÓ» ˰€gžDEÓ„[\Ù`“™³öaï´õš\•$£>0ŠçQ³Ôzñ&S˯ŸÎ÷>TÓÁ†‹†xlcÉ9 êÁ©01ù4MÐ"Ïýȃ7°Ø¨Î÷ ~j¢f*VyÙ5á€ü:œØMo‹âªè;uf5kŠ$1+‡Dè|Rù€½aÓªI f®OÓyh³oëhéXÝ-¥C@d ‰þdE¢—ÄÄhɸiZØ1‡‘1 a±Q°ÁKju ñŠ+ÑD^öœ䇼è&49žò½ë©»ö—ò:Dv^Âú+[”Ø‘*iƒö²ÀKŠ‚O!¶¡ºkïO¯ö>¼;u÷&a¦ž°S5“ë¤dí¸¯¶¼­y|Õ„â ¯Ž‰%jN\f—ƒ=øùv¦M$¶JÍÈa»)d8l*¯´û@CN&¨z!E* cs2šüÃÜ$é‰öu"Ƙ;°¿e%§C™‚H…JÈA€ø Aèâ¤~6‘¹Ï|8Æ.½‰¢ÂÈ&1Z€«³,Í*ƒ Œ\*·(çÍä%’ÛHE†­Ã}Øx·–ç †”ÐÆÇ 4ô®ÔX'OVªÚ±¢RÝ]Xç“¿ÅøÒ›)bFmLu.r_ŽRƒyNŸ¶Ö·z+ðúÒ>èR°=rúÖÍìêIVÀ¨õÍ×M¦¾gêû'RŸ„ŒüKyŸ#`ÙÖ-9Gû&·ÊÛ+zp([¬JK•þ•dÝ!í‰/ÂÁtOx#ˆè’`˜é…÷á€!°Í‹1‰ÄƦ¤˜2Œå|2®‰[l&Œ» JózVv(é0_éÖ©»¦F:…øl‚=ÓU}¥!ð³Fö´ÉPsªÐÚ(/hƒÄ:븠Ϫúä"'rGñX=àn0’O½CM5J¾¨©ûN…E£h }ëåÛÓâÜy ›™1Kny^ŒÜú=I1æŽG5ŽÂ+Þº‹¾£½*„A`ÉcdÖpzÕï¿©>·O‡(¸fúÀö¸ïõ½Ož±L(Rgq<[™¯ÝÍ‹™pâi·öt±âäÒë£áfüp˜wã´L X'Ž1Ÿ4yÎ?Ö¾Óñ_r€¨Í´° k§Ç}[*{õð—?²Ç~—%4˜"§·¤dsR˜Ü¤rLY‹¡30ad< ƒ+,~ÙzH?u ~‘Ÿ\7~ÅŸ-†Àc@zIÊ"¬¾ŠÊ 7Ç©Ç}‘ã¯3YÐYø‹»ñæÍ&Ð pƒ+Ø1t4¢‘-![ ƒªÆÀA;0Ʀ]´ìõÝ÷òÓ Ýåuw‰én.&ÆtçT’òÄ´G2t"BùÀ$£”1ž¢Š“-«ÓNÜs86E‰XÛ@¨ñ¤O¡&\ Ï¡†]J…)¤ÐqP_Dù &xÿÇñ–—EW éí7*T>yœþ&r8bWI}Ì€»W¥¹W‰_ÆÌÙp5¸¦VBh«*äîš* šlÆæÊ7Jëö¤J.ÆÐ#}Wá’Ps‰~c|‡bÌ~ÚÀ ”æ¤lUqC8K]îî U¨êWØuðÝrˆæ†DYŽj2,¼J;nDs½‰®’·Ú;WŸÃþa`ððî!afÞ™Ô†JlµAF5X£‚J "_†ð«ûýŠœß»ïÓëØTS12.õñ4S­ ‹äv>¿7×áM™“88ãf²C‘Ѐ4#Я\·´´ºUíd‡£q·aæï8€cè+F ¡,¹Fò¡«“–Žs„ÑPÏ^sD Œ§Õ‘×]øÉÜm+* ¡úäXDêÊÄÇ‘„dë·Áw‚:~$Q§ÓqµÌǃ™ÜÆñ hù âµí1rAnúÄ_ X]¼ÔAš©éåï“Ö’YãvºLÂÉØ\ ®UãÇwi@°œ ðK¡¬(›úñÊ`ƒ.V¬gêøãRÇc)í0›l?Úx»àg=h¢NÄïS/ß™·ò†—QÎùo¼ñá²0a!Q§‚„Jþh\ e)®D?úåøè&iѦ(O¸îÁÅ»¹€ï~`š$s˺lóö1BkÁó'{2!r”»þ© F«œ„”{¢yÚC×–âsËä>œ:¶Ó\Ƥȵ—êÈp6Ñš“”Zªh<ÁaãŠ|ßpØÄÕó¹]¡-òi!(:ö¡~•ÄBwªç Z¥1ýˆfqy°= Ãâñò ÇnpzIøÄ@vH,}ínl0ýBàæÇ€>ÜÐdå6V¢Šâ©±Ygfr€.eí‹Y©4µ‘󨺕EXÂÆ¬7ÜâÔQ'âÿ}‚œ'ó€ “çÑúÛ×#æÍôgcý킇«¯iɈ¤$Ìb³â¢_Ì}Ï¿ˆ›ÐÈóó8€ý³>=8Š$0‘Hzå¨UŸØ9e^t˜Ju†Xˆîå,:n‹…‹0†g¸F›´rf…Œa-Åsׯah7›/o¶^¬|!wíê¬ïÜl¼¨ª¢˜T ÌbÕ"V4›)[Ñf.×>íÞ­¶€;¶#Ö& 2n‡f Ìe:ÌnÒˆr­­7ÃFþX™Òaí¢Êtì‡Ähv‹ÆüÛyáÝWp©2ØÕVÎ,p?Hñ¹1 ) à½é ËµãØ~šétè_ß¡*¢3èW­f•Å©5`Û#ãÇïyÓ–¹cb|W’Š™ÈÍ6D<3À&ã)goŠHp±ØÈ¯´ê¿ÌмÑb­l΃xÒÂs< Í¢©!^3fnQŒ ‘‰’˜&ÝÆ%£ž|¥®ÐïÂEÚQq¥göT£\¤Š†nßsµsRíPÞ:ËõbËCRû¹Ž.õ;ú þŸ6•ŦÑÎTÉuÚ:YÒ €±bñôm± ŠãVMÊh¸Øâ]X€ ¿;æ/‹.TÁ‰Ø'áCžÒ÷v«Æ¥¾xË«6ŸyÕ3¯zæUϼê_Ï«Â{âL¯½WîÎBE$ÐÌÉíFÆ  …˜LB“M½¿Ê#}‰!Íܹ¤yµãœ“³ßþvôÛÕß ÖûøhùoA¦n« ÏA(y¢H–É,¬è´±Z.£Ê±WMƾÍõX9ð²a?›Få¨Ú‚àf«6!]мó\;„&9ä{JcSý¾Zªù’ÆÆÕ•|ÍzIzóԪݲH‚ Ó*f3ïÚ锵Ûðv -¥!m ihÁhÖúç/Úë&ø¶<1Õ­l3”Æ+^ü?Ë0Au% g­ý_zRµ¢®áÊ PT­ ¶Ø'‘*swö³¾cJnPŠ´Òdu‡\ ¥‹U'ݬËv[™©Wo–(³¸åXʧÔ…{¥‡•ößÒÒ=Mû_j˜wTfÛò‹:­Þ7õFÝ5¶Ѝ:ѳAŠ’V…`„û¶êû‚\hÊ=÷¤ä¢'Zïzü4àÛzZ*U°šüõçÉÿ/›|ëÏyˆò«@ôfŬº3Ñ_mö/~Í»çíý_8õÇÜ7¯"â8Ú½F”«'“ïjF˜:¸nƒÖM,$Â}ŠÙ”Õl5»(çõúzÜ+_5¤ÓZôn4zì.‚ˆnSRKy¢aí÷F¯ÿ—©ÔxÒÛ˜›ƒ:€·}¾†Ò>ãA ˜¤#Ž#іοF6'¢yn3^ÂiÇÃ4ŠȺ,~qœÿ+‹|¯¶ù'œù¸²)¢S’ˆ ŽèCå«I^ .ŸëSƒ|¡TiY8ã·nÜNd(g~!šž>q·Aéjê pV¦š!þd®ø#‰ßa ÛH¿õèÇ$Ñ»a‹í^§¤7Lã„%q£Û‡»§¹ƒœO0€x2 I5ˆ' ½B|ã&ÚI"7IÇåÔ¥kS8‘;öÇwJÝ‘^ajÓÓ¥ýÐwîô6à´~~&©rYŒ'äúï´(jB77·í§W}Úzc¯íllÊ'x«óq9tóqòðKº2‹¨RKÿ ¹t¹ñ,ñBùn¦€! ÉEZ"" ¥¤KÜî*yÊÄL.*ôÐ?³SN¯D˜Î ëÏHñŸŠCw¶ ]m/K°"—é`JÚUü½Ç)êCu×(ªšÒÃÜ‹ˆT.w×Ç—^2»›¯ {î¹§ãDÍKʯ“{Ø“‚븮J‚Ç™Jþñ¿¦´'/y¸»SþÛ^f <Z™ˆBØhä÷^rƒú¯ã©êq¼U¬9‹Ñ õTÁ„Þ•š™º»!ÀüÃ,oF3ÏÜ3=¥îKâò¡çç^Y(kœ÷î{ÚS¤wVßÏõL‚Îv¯Ã¸›oõDüšæz:¦‰Eè*ï |Õ»'cušï3mìÆ*ÔÓ´”˜‚3•e3âÒŸÓ *î声U³}â¾×ˆ_›˜O½éxFþQ^™†tZ(:ïÏu>1A"öR¿?ÝsümÕÄ•Ví¾SÄ„uT_¸ çš˜¶ÇщFD¹«ùo¯ ž“—-ÀxjtY°@ÓqÖKý¡705“ë™Å:ºW:;W†X.ê^ôcT`æïrÆÕw` ‹ó6U­¢€!'&4#ÂyWê€Æv³´;–Ï­‚æٹBªËÍð½G{˜Îðú}. zÐ ©x¬¦=ê }dÙ–“Õã§EáÈ1n\9Gi’ÌÄÛ2fù{OÝ]Z™xÚ›‚˜½Aì×O»J³Áuš%ÈO"øúw =Ò½DÊ›c/×ÖÄšA*8Ìôtʘûò¡5ü§h•¿ôT{ "ßÞù]AùÕMï4LÝMï­ûzÇÛXWݧǔS>Z÷Ü{WÎbëTÂͰt7­aõEeµ ø\x×”léÅÈÑpªˆ€ŸãâgD%jj`I,›íÚsð4SZÇf*¡ÈTæH†=ZhÂÙ"™ tíg#Ï¡¨­ò†’±)N#„x.2¤q¥c„F Œ?ÎJœ1—„OâPq8àÛÄ* ²õµªtad'­”& 7ìÑòêS«Q‚2A<7 u£gn>¥Ø<‡Á›9E'v]~Îx‚E*¶1£ÈÌBI‚…9÷Ü}-†•v*5uǽ™\ÈŸƒ2žþ\Gјß$òÆŒâŠÓLÖç ë‚à ‘­ÀK²ÿë‘Ù´MÇ ›ÝuXèN3S¬= ,Œó_µ›üê­H€aˆ]3noaèÞÖßTºþvcg§Ô>jéØ!¿Ì›È®Ë\b©¦;ÜV}Z“ÑñÛÆ†hBŒÐ´Š‘õõu„o-ÁØaæ‹Âºj×Öëá\|ÂÝ•ľY*‘yfç¾-¸¤xŒ#û\Ô¬1ë‡2ÆíÂ")ë«¶_á, †õ°“ÖØ«(2U%•¶Aòêd);‰Âo*Œ5úÝtù¢ÓŠ w,~7Ãʘø¶j ¬£It±T²Yy¡bgÍtÛeÇDã½àžzaå¨9ÅZ_J'î~–™lUNé páIYÀÉ´V7&‡Íy¬Ãgrøï@0L!kqÓ{ƒ\½íWó‰"Ç%:sðïö.k²Á×3êD2íI¹Îÿ¼5u·cmÐ4|€…?v|Ò°J&䥛"™îì*gFð<÷/ŧfý¸ÔAÍrÑl^tœ¦œíÖX*Î^šd†à5¥‰&© ´¦ e?¸ws›—~<6˜mWÏøöóŒÿ“gOèò³ì¬oy¯0#Ít)a4'üØIwͤ;Ÿu³näW§ÝbAJbÃ?hîrÜ3‰>ÿ,§Y·ûï;¹•ïqóÖŒüxÂNã!*4ï FóBŒ÷Ù_Ï÷*o¾”ªÓbÅ$+š5‹¡ÙT§lµi|œ×ˆÒÛ»ó·W@ô\$EàpèÓœªJW~¥\V¸Æëî}8µ)xU‰½A”ú7ÖÙ1±¦LÂ<îTb±Î§ÚêiÆÖÃQÌn‘Q8R¨HÉ:x„*W2Jg¬X¡Ò‚ÊtP&Pxí4×z•ØAÄ;¹£«†v‚ÃÜm¾Ô&&¹1)ÈNášÀzÂ+1ÕU©,ž .s¹wÎj HB@ ÚϺvHÊž}ÿÖ„¡¶ýC“Ť#BUG2‚ÑŽ$}z¬¦Ó™c«‚Ñ WcGFî_¢0*Ó'” ÊhxÛœý³=Ÿ€ßÙïe+^àJ•[ÉK‡Z¿E£Š,ßX×!d‘{(§á"ðÕðˆðëý„¾ EüDÿä¹k@µý f¿×ü Ðz|m£¾Æp[­ÓŽó‰C;_êÂG¾®‰é‘hº” Èàvoœ–Y4ëÈ—@…Õç[­'ôÅ1iÉ[ô8šy0ì &½Ôk±…",û —ºŒNˆdež ´çhUÁzØO?‡wPâ9àñ&¼{š9Äôì wsÛÛ^À®01†‹7ñAÚ=Jø^ü;„6¦y?½ïÃ<\0‚âê$e¼X³…"ðºzȘâË2­Rc¢˜ÚwF-àMajrº•+I7ª{‘ý«0ü0„#ßD§|ÃËoOa‡â›³ü5_¹½¤"”Ö*/©<Ì‚Î9£º:tjouÅ™91¦¹Ö¼¬"fu/QfA¹»>×[P?$Ψ&¡*’Ci¡á™ž é+„DÚq9•š¾ëþm¿rw^yóáºp?MÝ îÊì³´SÒ>ËRk3¯Î¢ª÷&Z‚’ÐT̤nËF·"DIåœn¬àBqLMC!jØBˆ”;m…MFSÉψR’0k«²ƒL‹XçÖv‹¿L9b‰g ´ÄBËV$X(ÚhV{ u¶! ä˜ÓU“~õ`zµ4-v £”Ä•ð!Àtˆ£ñ%ßE‡è*Rà”—Ü=ÎÊñm(ååRO“ô’MÇaÃ…(ÐÐéÉ1 âÏ®_]éå¸R¹ßhÐÊ|2swsþ;èYÀzæŸÞŸûéT»;¤¾ÝYHa>57ðTÀãûhaäq›ösУ—%Æ?¬oïx˜Z'áÐq‘ åŒÅ5Õz€g`Cgi9Ó“™Æ $,,="2`ÉŒ¬ ÿÐEF#φ´a§ôy¡8zÓé$Ì&Ⱦ˜æ=zÁF=oø¡£Ôý8Qc®»È…U}¾SIÞÝ×YÂþXšM=áüùÀ^êpâe·Å¸«mS×™ú5ÍÇ¥r?Ý#Õ}·¼¥°Ó“Ø igù˜©WÈØ‚sNÝ:t¯8ßâJ'ð§7Á¨T’¤IŸ{`‰Úܶ¶#j+[×jâªÓÑ ÔE‚¨ß(ùÞî#/¥ÉÕß9s» ùâÎ^æD%½²ˆ}ÚÞõôÑóS¨Qn˲í,iÖ?щfÜÏ+eʪ : ¨!~pJÆ+îG³i§ò ÏYc•D…ô£P8á@ö¹[LÌÈR?67€:ÎÁŸÿÜqÂáPG÷8…“ݤ¥ýªn¸¦FøÓÚZ`RÏnèwL1P‰îÉ[±Á¥i?j Ž(¾ÅŒ(ÿæ1; b!ƒ”þìªC4£gêJÿÖ¬»†¯Uú? óéK'†Ï•pLj“Á ß1å»:Xš(5õM8[à1ÑVÖe M u·2¹¬½²¿uÒË÷š¼§F!T…ëÐ<ø©{‘Ò„ÿÇÿ“xMZÔ~ÆÇ’#¢Á6¼-T†XŸ·–^ÕPk,õ\ t‹Ñäš@_iÕÄÂqÊ[qjÛDœ˜ =÷þÿþ¿À¦ÈDÞ3âš@”î÷Ýh ·u4ÍPkìàÓE¿îUšœú¯¼½´ê,xYÌÖësTÅöDË»¸³goÒdw!IT*!°.Þ¾ö666Wó4Ô´ëW=ϯξGVWÍ$PQúø—¢˜™sA‡õ-oc^Ÿùlx÷12=÷ms›äÀtÛÆ6[>œ(Ú ŒA³'Ñ*›N˜…n?CNÕîuŽ¿æ|¼7ǧR÷3äwÀ¾qw‡úúú‡Í‘Tt~pwò86æÌÈÿ[Ò}€b£¨6êÔè NVrX€ŒÐ¿LJ‡ãBÔ× ¬þlh[«~ù*5‹×ÍÕªÇ ýqVÌ`Í5ËØ8œß—µÕ\eYPmÅ^‹o<åä.†™ÚÒA]«Áeæ<ç¨NKˆŒÊ|œW³êŠdèÇ,â4'—}Óvá1M«Êff¨übqï~2ƒâêÓ~U_úHê ëU/c8Ó`&={@JDJèCLô¯$~¬‹1>¯Îïku²È%qï-ľù%Ù«-"Wá”eµCØXÕùtyV©wèI܈",ŒºN9CêÖjŒ(l^7@Z#¨Á1VIUÂØ¾tЀHY{wuuÑqñoŸ”A|>ÆGçŠ?ž\uÜ«£³Gô÷ìpï‚ÃLOÏŽ ÚhÛÌb `Èg7¬Vl°©ì<@nÍx\x’hpµ ˆ„Û•zã÷‘h– PmW.xöBo¬îî8¤û±kyÞ·±É0ÜÛÛÞBAáÄ4}6yRíåàsß–#:îj râ°UÒK×.õMÈÞÊÀ,7¿hÃrln¯&Ñ`Íš´a.κô$.>«Yã]cÅ÷Eã±Ø¯ÜÃi`Þ¯¯ßÏP„nŸË–³±É|êµ “ÂM ¬F“Þ §;79ÉýR3akÞCÚ.Mjl' ë Žf€Y»YÉÍþc.5§J§uÈÄçþ4oǤs ±ºÏŸ¹È_®9‚yY§0C™N¹ä%ª|:Ó¹ô¯¹Y¶Âñj=×`q«@’\Ç —dÉÀ$ÛPøËÌØT!Ûµ ‚`Žt%6>¯™míà®A³Òþg»_Xé®ñôõFEeŠ’kmq—aU=Á² ÷˜Ì§…áp¿ŒaðÆ%)žI“bȺñ<[TŠV!ÂʨË¿–¼N3!î-ÉVEjn¼¿Ý>õ¼?šÌfY™wÃXM"¶-¤6l/ÖsÙKÜÓó½ æ´/Üs¤“õ™¡6Sô% ¿ª­|Ä«óÄÖu«ÃÀ=PY»¥{Nê%Îç„…X(ù»¨,еÀØ=Å»=?~b–)OC®r„'qÝÇ×ë Ópj±¹*¤myåþ^ÿÌÝ»8m ÐF‡h7XÀ~6`TædcäS*'éÀi‚=—Ù( ¤·ã½<>p7éL¸!òm5æÛ3øîª }ú|VqŠÏ³ú#gÕ'F;«æµAÓ‚“S뀗{çç‡;nõÕ)®aéÌT­šq§=ãî÷θó»œq1~¬˜ï¹k“u§¡‡pÞ ”gOÇ3?4Ý_gÏ“þC'=$É£x4_9<=9ê_=s–ïœõQž«iø¸)?é÷1‰ÏóýÝóýuÞò<ë?rÖ§¼Kšî‹³½Óϳý=³0ü 5ãKRfeÎZ/:¯ÙAs¢ø»/¹ì`£*Xcå€j&Óš¨„Êiìǫ ì¸Ø;o•ÀüOa ÙÍÙÆ[wcóõ¢å…½´@cÎÝ›m©±³c“mñÃ"Zq—ÆF÷† úδÎݬ6FþB3 {‚…þßîÈ…ªÀŽ»– ý·›oL:`œs d³‹3¤ÅcË.n5-¡)ƒ•ÛŒ„æÓ y0ƒ-IgIŠ\=uâ콄Íýf·¤¦+.`”£nˆŠÉÌcÛº"¶ñ…a£˜Äƒi/ìz“B {wEw…IÕw!Wšp•/1zVp™!ÙૌàÇDxóoçòÛáÝÔì—6²É˜h˜1Bb¹’÷Bäµ'éÀýɹlõm³Æ’EÝ=ÐèÏn¢o‰»;¡kÍ.öLÀ„„ý§ŒSõhËN 2¶è¼r7×½¹ßÀ«¸$‰é^=áfîÚ!‚ÓB¿0¥t ^o³øG”@# ™‡ðN^q¨O¥ˆx–Ð(Ù‹Ž +„ÅbE\)¾+­ •§aÐc¨ ×ZÎM:ŽŽeÓ1•Lצìl¼~SÔ7Lè/PdžË€+ì¾›6O£ì0ö‘SEBub–mnðZ«’/·zOb§î³A§/¼´ß*4&ÙêáÎøÚAsÈÐ=iÆà84>ñ…öÀ{¼áãÈ•ó´íÁ¥³µ®ø×ùÅ#€pÂâ^2v”47-‡À¡tÅÄton›Ö·18™æÛÄ—Ö©(°àçaQší~Ë0µŽÖuÊÙPØì:AiP^F¾H|ý‹#9P¶l ýtq¸—¿¨kc²-XÒÁ°î\©%Ùêl k¦C‡#Mѹ<ñ–¿ÄŽ…mù8*N¹È_½ÔW16°¡f _€È‡¯§¡ÎË,3?_ÐsÃ)-ö-‚6B6QtC)l ¢ª[÷áwEшxÚ§VO£Áîy$–ã÷È­ßÞcîxôPQ 9%6Æ…}v¶½×s¬_Ë÷Ý3p¦CŒpj ݳ§ÒŒµî¨yª²;Ò¯Jý0,xÆÆùÌ" ÚÃÊíÿç™cCV–‡Tì^ÌŸÌÒÐneöâ8q?/És‹xF ã^±ò«æõN'ÏsúCæt°AóöfÇÝxËŰÛò‹Ázs÷ëMkrÁ­šïnÌßÒ{šŽO)Üikxp~… Ô¨öl;U¦!y®gÁØ2:Aà°ŒZQ)h„DqFƒ¤'=^ð2†¹ãÓ Yö‡Ý}¢ŠsS ŸÛg3ÿÌÓb‹È @Eæ V‹Á½U³…9`¾­¢ $­4©Pº<óLL]„W¤(<‡pËiÜΔFtIb “®AË5m“í?›l§ çB„ûfË[w77æ{YBœÖ=ûÐïÏÄûL¼ÿlâý{±–»én¼Úñ^ÏyPÿójë%¢j$݇<Óî3íþÐn%P?@ÁË%ê¯Òõ÷ÞöLíÏÔþϦvÅ­ü s¡¿mlt%x—3´Y!\BÕ¬ÿUA ea*§ ÃDÿº¿E¶?ж–•à HsÁÁMöy®òYÔ!d€à5q鞦æ–Åúíy§<ï”âNéJ±¡moÇÛ\w_¿ö¶ßÌiHàïYø‹mrŽú€Ø;˘òßG€Ó’˜eÎY2ôføãcçÒÏh…7¼m®95—¡qI?†£±Ýã”kOù)Ū6ôÒ±¢ËÀÜ7åûsŸEáç¸ád‘0…†Ã0yô»&ÁtËCäàkog< Ÿ6ㄆùiÊ•“MÊÄá‡>Ç\×5 «.ú¦ÊØt ÚP`sZk6Í:ðÏí[|Ç‚YÔë¶5ÐGÈ·¥‰-iþØ‘kq¤Ý’ˆÚç^÷¹ÞMð¨~KQ`8¼§Á˜KB@H*¯™Î ® B-ÏCp}8>ñ @ƒ PŠ…8Qˆ’ºC¯QÃýP…QÝ£Ae¥AÐQcŸ‚bD³v?Ó&8_woÃxZ&“åçªkV¯Ø/QÆXŠW ð™ 8?zÓ´ßýdóÕÎ"°á Dby»“LMÇûÿ NË"u¥&nZcT«Ã0ŸFjVõõ¢ªŒ3´Øb'ŸNMà»8÷î$AÕtÛOîž[¹îÿæ TV^d¥/[Ò„-T€ÐœîåŒ0VIɹ{VuF,˜¦½Ý<,HdÈÌðùÇÃOg{ÝÍŽ{üñòêrïCÇÝ;Ü3µ nè¤4 <P°GPWVº#%JåtÞ¢ˆ1éü·NILʽ¢ìò Äû0Í@žÊ=+u1ÑcEûx7âÏ‹7<šhý’s·ÿ¶î­ÜÛÛ™×Ý0ýét†MjxÂϼ€Úœ¾üèeY R3ýŽu4Í%{±1\T"ʹ²í/¨É“I}‡1×"DâCÀSL¿8…¸P|z.¦ÒF|¯Šá¦‰¶8D•_åSÞ™CŽs¯üi Y¦n`àÞÉç'5 "ü ±3€¬žñð5†ßqë©æ"µ+ó}Ilå„dY:ÝÝ‘|$Ù§,‰¾V$¡áÀ§­¹CjÆúœýýØFñ0#º48ªW¨uß/CÎÀIj¬;.JYiÓ×ê„ú6é™ÍnPCŒÏ¢YêÑs‰û’TfÓTÄ+:Aª„a“®Ö†cð*®Hæ¡"Á,åƒ&¤óÈ>f 0Ç0\7Š„+›8cò‹ãlºÜ¤z›ÀÄŃèP 퀈¯Bµ³=ׯÄI“!çÿØòc·Y?×Jô9[=šf{i@! ð!ð¯î¸f-”•²}ãaÒ}U»¨‚Rd¹c€‹Kj úIBW%±¢ƒEn2Næä¤M›ÏÅ5°±Î „Fœ,+¯Žs™ºÀ.0Ç0ž÷ÂeâÌ>”³þp4—&]Ù¾8[dFöìR" Q×(dtj#L2ÁmÝ•*µÑL8ºkø? }IQn&²*gº=+’'äeð@êæ‘sƒè¼Y«Jé0„–¯Ó¨,Ö2À¸$Ñ­ ?«ÉÍml ,%t7âsúnJÓdcåÀøÊ,‘e?]ùÑOÝ.#;uÀ‰Lõg7¥LžÑçsŽ­c&˜ÿ“i'¥¦[›ž‚_œ\v3}sݬL¡ºLnŸÄ™vw³tУC¹ÁãJƒ}4;¢= |¿0 äùtk^nÀ‰¿çûH¬ Âׂ¹4PuƒF9 Z+WpH™Ë3¬œÌHTÒL|F9@};ž•È)BŒœÄî[5e–Ž©<¸øD4@§J±.s%`} ŸKî4LºÓ4d]À” Á!^Ä5$LĦ…XÿZ6꾊aæöéYãŽ{ºŽÌÔ©¤D“žŽTð±ûA&[ÿúø•¡=I–Ûv_o{›sÕ9«jÄ’Œù@Úó¬ºs5Ô|UÊׯïWíû‰CT_œvzJKd, ØÔ{èQ` ¢RMé{MÜË‹óŽ#;mi’t¦Í8$Åè7ˆ:"èÕf2°m‚‹¨`¤lûb#uÅÌL‰daN4ÇRÒöNõŽur4oP–Š+kîYµ+«\zœýãÓnå?@FÈ'•u±Y›[ÞÛÍ%pØÒÎ5íøÔøðñü¨!½Ûz+¦éž´äƒ¾F¡5Š“°ª¾BëF;!² µ.è¹ûÄùgSæß\”!Í…ëË:Ɉ$á9LDœªDGÎR>4+¡¾Ê=7Ѥ9r (>xgS0Û¾Vœ†Š{Ç´þ‘Œ"J>²@¬ í½õšõIï˜(ï:‘ìÉ>¦‹æ¼HMÉÖ;D>X‡DÃü‚ ¼Utò!•\©ÔÝMðÑ+TÚ‹gDðÑ ½«-z—¤á¨ü¿ˆ "(‘wÄëqEG½\.´*M¨Ï÷$Å‘â4•š'A#ßÄ\ë*ŒCO•lê#(É lx½øÇÿïË"däfA9éMºA÷ö‰gI>)Òiðæ8Y÷6P,gc^Æ­k §e$­‡ÒK Øìp±ç(;8X[®øÔ°†•Íg8ØÝ¡©.gGj‹iâDGcâ é­° XŒZØ2?µ^ÐZÚ»]6?yNë×…lÉ*˜ÙU²4ÉhÜ©ý3Qœm½‚„¾É:ý5{ù£ö†ÔuØz—p!ãÃ#1îšµà|üèÐtslMo])ì ä;>è‡(Á6áÃù·ó3Çéºï®ÎÏÜ›P£¢ìÚI1Á÷Íø¥/<ƒ8Á°L|±Ø‰ –;?Km½ŸL£9àHÎ…PAèRËvjX“G4W)4d%\¾eEʰB‘×1ìñü¿Ýû0òÇžŠ{,¡åºÚ´8.Þáp!•6rÙ_A ?¬ Ä–ýÖ6¾ÄáBZï;d¶K¯Ù˜>/4~ÚªVžÝïZÛã'®­÷ðâzß¹ºÞ’åõëÛXÞNc}õüú®Î ÿ/0ãZ,_ß@-äÆïBµ0·<~¨u9IÚ„²¹¤* –î\š5Mָש“Ñ …ÐÂM«7lS’‚Ô’ã¤ÍÁê‚Ѥ§ÐèÝÝÂ|êå ‰¡žÊfëI¨_íT,ècÿÖS1ö§¤ø€^I#]ô,Òñ&uõ>ãÀiÿ€Mõ•al¥îãKRgÁ– ç,>ö‡Ø¾ÄÉî¬ý„átåÛO¶·b­Ši"ß~Z•wE;cOÓnÌxà½a9*ŸV¼Ïöaô•lm-Ö&ä·1N¶V-rs'×g%êhx‚ðrbqY‚“ï§5š¦žã4æªS‘•¶` ÈÖ¼[%Y…0Å¿ÇJ 4?F£j„–Ëü³éô+¼û2¹}’¯òAI*É9)}XôÝ,õbùâ%*~—­þ!Š­J–`ò‘õOš„«.JC[.«EŽæ!ؼ\4Âsóãü$‹ø“»Ö@ôeý„ëXUvÅžar^0röÇ© Õ5—KÃJ\F‡Ž˜±Ž ÷­KÇÁWKtk¬ò‰¬ì KUà£Æšuʈ/ŽËñ"k•-}Œ8å ú®eAt6iuiYɪ²ÐÀZÐ.ÎkÌ6½4< ž…ŸcÕš ¢³Áƒôó"ÉÏÍz˜4Mèûe>“ª§®5c*„ÕÀNª Õ|-öŸµí»›Ý <&›K±Ü)¯E]Ò‘B³¥`‹îÏ#ÒPnÕìgñÉâ“L¿’DFL£B«égÄUkêZdzŒcL1l>e;ªybE3k.E É’ ØÆžñ.7°ÕLý«wDtiäÈÜÉAôp!Œ¬‚ö›S*÷e™g/s’õKúí¥­uô²1:'Ó#’²IòÖ=Òzâ£(PZ<\^½²å[ó9þ{÷À#¡W¼‚Lâ…*èš+Ï¢ªÌÒÝ1„[þ{ÝósOÓ®vÆíŸ¶žbÕÜ …ÜÚôvÞ,ÙMQéê6­ÍæË·ôr'ñ¤q ïä]¸fØÕÏ2÷ö‹ÃGhPÆS;}ü…¹f܈¿1>s&Œ­ÅWå `Àkbå1q_Kˆn`'à˜]•]ÝØ¯ÌëÜ‘¹b]œB#¶jS9nFT+yÈ;Rd þâ6 ×ÅêF×åW ¶'ËÝÕ¸ÐkÜû$w§5ë/¯çS>š‚ &Mö)‘§7¯Ì2ïqœŒ–Q-ÞTå\íf²!%ÕÍ$?«ø3»›WÕ1ó ?ØúwÌôð”õÇa†²sÕqïb„^zá Æf”Â{z8@7¡ùâÓ|‰ì;PI‘qH#±Lù¸`z¯îË¥‹'\š|,z3EbXjû´úk‘—YéàôehØÂ÷sÓ»´k«õ ãpuz9éÕ•Xuf[ ÷¬×bƧ/+ÖãpZõÐq?Ÿ5¾õ÷¯:ζ? EÞ©ÎÙº ‡Çˆ±Û3¿ ‹ ¹‰Kû  ¹›N¡)ÐLfÌÙÈ/ýF£°¥«*MQ9y90u¯úŸOªiáÝ€žàw¥™Ç©¥Jœt܃“s®cGCs¤_3zÜÉ•ë×$hLT mŒûô¤¤Ždc½y•€÷+D`÷NPÇ- ö°{+½@±&쩲6ÑrXtÓN©^4ËÁ½½(,Ÿdó •µ÷<´_°ù„ê»ì=ÔüñCD„" \¯ç%®s”¢|ž2í~zgÚƒÍõÅãß’ÄÌ~pšBÒ‡PWý˜Ç ¸# ºs?&r`‡&þšÒdÅîn¤â7[¯ «øåxâ'ÕR’$KÒNê^–¤.„¤Uòß^8½¹ s¯LèƒÍ1I8`–gŠtR:¡ÝÝ¡\©ý…?žùîƒîÂ5ã/°ó+ï&ű|þÛó#•MÄ3ôè%qD"* ‡íö2oÍŒŽ?Å5«…<úb‰ÿûßmT"ø(2sÂáÐì Ë‘™Ví¬G¹ÒìeÝX`bŒnzŒ0tÓ˜N]1]MYL¾ÖÈ•RO€¢ëä>$®ãv:‚5y÷a”`ðù,žËX¸LáÈtÏýÌÆ0Ôà{ÝæÑë0 '´™‰/z´ßZ¨…€Œ3‰±ç$…JÝÃïéN 8—±[/ŽdŽoj†±`v©S`ä´Cʨ^lfËF* ïµ ˜lt#Ú*Dt+Ñ‚c.=ÙÞÆ®*”8þ[¸_¹”‚õÇYÊE ÍÍ)ˆá¾Òl†8Ú‰|VÒus×e+’pÌPÇÀZ+SžÃç¤N`”©Þ‹¤býøÀæ×ñéÌ”É:ÐpöЖMoˆx¨Ãû×¼{ã\âŠ¦Æ ¿ª˜é%Qÿ8t/ÕuIdÂ_z£Œ6‚W¨Ø+ÃÒREC1<&ðõœ¢Qà ”néž&v/VY˜Ò‘„žºaRCårÿ®Pú+y(%Íò¸{Á5­ÇœpùŸ@£ænRcðƒµ–I—”0eF/–†0íÿÃíÓNʈ`d°Íî¸Z¨ü*ê§tÉwÑèI~Dš¤!›3P_ÙXÝ 6;ü÷c]>Tü‰Kl¦!‘°2¦IóM4Å’F¥©æÏ c™Š…ÆÄ3üTE<ß|ai“C¸ëS³ÊTžQÊ /H>1÷4_ÒP³”[, ft…ŽöiNŸ’ #ŽgiMÍqÅ'hWßE]Æî׿Z?XíÆäÌ•ç øæCîH~C¤‰­wðÝ£Í4MÇÿ4Êï’² 30-Zþ‡vÁ•&æX¥»Bþ9GŽFuï÷·Ú’ÖêÞìÀ”SBL“<à6¹‡Ìy÷mŽé¼lR2ò “À1áƒG¾ñüU¡1¶;>ž}Z5sâªB'îÈ<€‹GDU¶“ߟÄYYKT#8š RWQ¿¨B[ã¶.oòiŠ¥(¥ÃQZ[AͪVÖ2ÆÁØyyÉ+/Õ±‡×—VEQ¬Ó_;Õ 6ƒ¹%Â[Fem˜Câˆ(”"ô%IÕ¤Tù_• Öæº®º±ø# 6‹8cÂ>׫–Úun»ÄQžÞJrq: 9Éæí²NÌÎ7ÑÀm¦Œ‚vHò,ãòùZ©äöRã÷ĸ¦$¥“žœôÃA-aÙ,•wÔqÁIºaoæþ8™2ª4‘>a>hS“ –èt®¯Gs—,NF™Øô .ØsjGW•/ÊÉBFnÀ÷ƒË³Æà…ê{ãæ½Aã^ÊÃPpOI&IM¡ („b =¿à~ÛYÛlœWnÍÞØ|Ôhä|S@7Ô<ö³0™ð‹¶W’4¼±)½‘º\àpKPñ}ˆÉåRoBg¶ŠniâÑ\ÓCŠWUA&_P‚4N×™ÜN MOG5EìS#–Ë/uH'" Ì¥vûÈ<%¤5¦31à5_÷2cÛ}»=Ò°gX[×5T9.—{§‡U¢_£† uš‘0²ˆÀ_&Y’n|iê•Ès™bÙ$„4o= {²C»ž&6ÊÞÕ®vl~ Ž)ÚćûÎÕ!lJ±yIÎ @9%}cZ¬Y¸æbjSØ* U(¶#ÍLrbÆò»†q_…‡þÌÀ„…Ø÷g™ùªU…ͶCD­ÒV íÄ Gc‰”wqµõú·…kÛ;| ùQ{]pù"Kcˆ…Ç*/®25á.ÒViª¬d¬ƒHÏVD7ê0¹§=Q’Ü:†òÑt–ä$àý¡C;îÛyCÆ¢VÛXŸôym³h͉VëT¨’f»øÅçZcU¾3žh_‰¦C=I<†[G .q!‰<ëM«âœ HÈ+[ôþ{ÕâØ4'“¤í6“´ùýØ++ì|ÿãÇ« cçù¬Ø‚•O`嫦pGÏÃ8Mz4p@LèYöê•“GSršo–HxÜò6Üí­×óUwöÀ8eþÃéoRŒ(™–¥¨-¶‹Ú„iCW*˜r!/êAgtô½<;~aíð¦oÇšåé§UÉ1:¹¦ N ¨¸JöP¹0÷Ê"‡Àì©Ç×±Lóa.žÝM¤5ol’ì¼±:¢¼ò£X§êy¿‹—<Þ»âØ1S)‚N–­šÕ‰êZíÄä•‹é2žp #XÐ'Òð#›4—šq“êÈ68>>Ø5Û Ç­äõXpè:AÆ…ûÂN´‘0®¤=ÆjxWìOèKo\ƃ²pæ-FØ‹hËy…óÔùš§êk½(ó½ ôôtyþØZæb†l ôÄÝå/éUb˜¼»©Äß$/ÐIæ§ÿhRæÈÿô|ï‚'ôâãÅ–õû~1ü RUF|µ¯ý2ƒçH±¬Ü¯ás o\í|ýoŸû›ëëoÖ·¶€å·5gaºªp²,¶ÖÚáçýîÕg`×ߘ7mã*͈…6‘¨;—<ç/&ö˜½¶Ã2[ˆ©çÁ ЛÁËË£½Ãó#¯_öVùÂT4“š]Üs(fv=‰{±|£#$oF šeß+ ÚŒùB/Ëlè 3•LŒàÖ0RUÝÆ©¿¼Û÷´–gú¡°—Ø\ðÌ…LStpup›ÂÊYU Gè{¢¨z»×yOT”µêïÒ¢êE"QÁcó•…Æ&àÏÙ­ }M×ÖÎ|¬áAåÅþºj@Úå‚HA«~øçË//ÿ| {GOóý÷=°Æ¤9gio8ó°x1CJ=>¤î&Ü,H>ÝP”»ñfs¡ªú锿u?3ŽÓ^ÿàôtA¿¤7¯®þbuJ°{k5œ®\ Äazú:’÷ì ' RAþâß«âöÕP°`y£ÑC$ üé˜Í± é¥C7k#qJ“»†Oæ•Y‚Z±ã¸Ñª¸ ÀÙ°c"Pã°SDMб——uz6  ”©$XÓç^@ŒßW퀂ÉhXÄÔ=5áí–s4šñè6Å ë«Õ¼)źtRLþÜ®ÃÂ$l ‚]’® ªA«Z![&>(¢ÊÇã‘Òkz}ðå̶6)˜‚òj+@#~Oq`ËA5Ñ®ª¤Pו¶œÃªÿºÂ´0&‡M¹ï¹ŠM€eFöxÒDp(íƒó°<’–îûžHZ4ìO»Â2fà¦uàÉmÌK»ûhpéÓCR-‚ Òóù±ïúÉ53¿8S8›M9²îè µö 8Õ# èdiBÍè½%²,Æc¼}Ç8›óÓ2bW4¤3Bq!NYƒåtDºkÃæ}lYø¢nú¬£¬¶„#. ßx¸•Ì•égŽDy¾‡ O§‡â¨V`ƒsÈ6`¡Þš—›® Ylå•ë³øÆµ‚À@ë}žÏ «R™MßN»ï 멽m°îX>©­iu,Ôf­ì4GÍKüè‰DRìúD¾;ÞæBö²Åœ@|?7f)Ù„ETÎHšdZ}»õ¤¡ ¹DÔ K 1ß¹ #“ƒêv/?žwÄÊ>c jª9:ñ×½¿‚Îþ À[úå…QüxÐãå1T¾c_Æ Ž4Ì û^•MG¿ 7çð¸lÍ %#ö^3bZY¤23¨Øi… pÆMlÜÒQškIMÇ™‰[›ÊŒSaU2ô®2È·Hè—½iZa=v‰'áHѯÊ¿ hÏ=»+ †ýÓ‹—ï¶6·Hˆ ±Š}“Ý95ÉÚeæžÁ%bxYeVåÒß¹Ö°g¼0~b\‰µ|~NOÅž þ,ÉÏËžRCØx®<ŠÍôÕözçaœœxvzáØ 2I¸©|œ'¤Ê Lë'r¶o–.Ìe1g­¬îbØ¡~%‰öZQšx^Z†¦ç!t!úÍù  óÖ+Eq]© 4W»A.Ÿz9¦;|âZ3¬Êæ&B{Þx¯çkR~ød€u2à^´ä\ºD¼»)Û&^n1¢ɯo‘ŸÅõCÉ_’tUŒÔ7„Ÿ¿WYä¾Ó%'´ÞÞÛ¿žh€Á~N5 ÔàF>@ÿ»UùX™ê¬×o ‰?—Z_t23Ù%JÈT» à_êkwgß1ÏÞYN=9Nïd£‡±»FÔÝuÚm2Z†>ͳšÅPwužõŠñ,˹܃Í* K&šx¹|ì…Z?Q¬æu„ìA*:Å"Ê5òU“s´¸™™vn…N“ðÇyÛÆ!#€Ù­æÐÊI4°pQÏVÆØÜ‰i›¯TLŸ ÒÝ Ó»öO¥Ï'‘±¯ó/´âÀrÃÍÂÄ*k0Výf¼Uƺbc×ì¡ÅXsç$’f­Ùc¿*§áÀÍÖ¿•0/tt hNÍÛç,½a‘™H7ÒŠ??Ó׿ÃÃ)öUªûÅÛ &·¯ÐZEB ŸÉçß|hœº êyµ @q¼F8EŒFÕ6FíUÚ¿Ä š4 RBŸªµ˜± ž6ãë9Z+ä 8­Y%Äçü¼ Ó¢2ᬒLÓØ=Sþ8½ ý{w—ÄqE'hoœ\ÁäI¼]¦©6Å.Ÿ¬?˜ië_9“7i8™¤¥;·Kl;he™k&Égí8L’0K8¾yp‡oW«óubuW«ó/'VÉOGv2­6ßzóùª‰u§Ñ ¦y!‰ñkEübÁMwd{«ütr§Ð`ë~¦H®v ¦h—85’‡ Àduˆµmf¬Ðš8ôæó绢L`»ìK{þp•öz®²É¤$&žç¡»ÙSÃt:zbûhƲ<Û*)¾mzw¬ØNt³1GYpnÑøgÓP*2Üér„-“މ€ÛÊŽyæÙÒUQJªHƒ/PšØúÑǘ`5à‚QŽúñ&»t4oÿ&\Qºï»,ãÔü±#œ†Ó1ì.2 wg~„20&ï›»ˆÁyzOÒƒB:` Nú£„8’5UÙþy•Ñ‹ Ôk϶i)³Býø!ÃÂÀË©äİLÝëàÊ+{ÏÊœ|8˜iç2”zèž œ4Ws:_Øð7€N¤SMLêN%ó¿Œ-ŠÏj5’<ä§z¾Õ^ b÷]Ê¥Zw}÷ü›Ü›kõ«VI÷˜–ôÿkJ3s©b­J™8O•Ën†i;@Ç }(’°|¹ÔÚKž÷øÝmVªåÓú&z<‰öŸéáwN©ÿ05Ôu‰Û±¿XM»ÖÿåK¿\¾ ª¡ Cµ/ûL7?ŽntíÏ·ä³(5ÔmÑ_Kˆça@¹:y¯"°úÉ¿H=6÷3 \ƒò³”@•³ó^¼3{‡Ä»i9•ÐT´¢õ‰ÅÔîFw¯RÆ\z$…„Åü:|Û±œi ÀȈ¤™·jMÉeÉÒ= ¹,öó]’Ì’ÛŸúF­×X``«_ã1cü€Sì” Eì¼]¨¼ç~„_ùkD‹]R5‘C–@ÃEl‚I!¨¸mš›ÜKó†\bÑ\ôµŒt—ýœ¦Ë¢êríêªÿ„©9uºN3ýR(YÚF)p“Ÿk»Æˆ¡”Zè­‡›¬œj`¶ÖY$vºÆ`YÆcÀyN¬iÃ6¯8ž–‚–’Ü„YšÄ‰—³÷ª<ˆƒ{¼ û£ôFMz/z-;_\¸þû4^@y¡‹Œ6j¦&ˆ¥¥?=„Cø*÷ü{k…Ï& Yç!ýÙé´ç—IÈ??–`Øö68gk.šæbFÃLÜÓãÊ&U_j&L]ÌþsÕ‹ê"Ò7îG$ÈKLqÀWzA¨»©½ú¤ºš´l  ÷•ûz¡ÀêѲ ÅE{U"” ŽÜD]Q0>˜èýªÖªå$G¦ÓFaãÒ¯Ù(˜0±YEɵ훅UgmEûóѰŒra>:o¢¯ä†Að‹ÄÂxîW5)tdÃIF´t}Ý+#b(ž †VĄ؂•݇h3â½˜Ï ßuà.Ä C WÀ‡^5öØ» Q¬ìA…ÕÈhF‚²«Y¹·•ßeË–øjÊ;Sr…,€e©+='#•xæ«»mÞ‡ì]Kâae†‘x)†Lmf ¨œK2œ  cnI9TĆFp¾Õ©úÒ4Ì_Êt¼\±ò¨ž–±£jãíÛWÝÍõõ-÷$šMÇîÿ…dšQÇ=;;ðš)ï3]ÜÓQ 6þÛ¤þÚÅÍÂUß.pþš&ª@å¶½Ó<D:Ù ÙìIäð8#ßú]'¨Üñ衦QÉË_tk1Øô´å1´|N[»" ѱoÏ ï§éDŠÉV$nbʯ2z@œe¤2>šÒ„ãéÖLad9^~á¤N*¿õ‹²ŒŠ?/ œê˜þ8:P8y£p¨]A¾öÜ}S—Ïœ¡öÉr:wLÒl³^ leŒ™Óò ¯¦ ÀîQß…¦n"8 _Ó´°¯ "–Âûð÷?íe$\§îŠ`¤9Š/ô’Ò'q¿ôÊDÅ^|÷îÚGÚEa¢"‰IB¨‚»è/¤§49Ç$Rì_#‚ïÝ…1IÆ5?üKËDŽ8Øõ#ü}¨ÑUJM¶à¿‹­hK¹W¤Ÿ HmAŸ[­äu3ABà[®JÇ|_¦t(I6nÈ‹óIÐ/tÈ a×a+±wK“rS(×{@Ëqwsà\/tËþµý³»»!z6ŠTœ L™¸kQ8`¸¥Öô~ûB™õ‰$NyzU'‡ yÖc5®ƒ@zX籆iÈg…Juÿ³” .wwh®/Þq™’¬:¢Ò™‚’¿-™WH‘î…‚k÷_–´¹€I\ß[c÷zš-yXI7BëC{2boîÖÛžO&„бy°éš¦Áx<éTŠìgšvènœ ¦Îâ³÷ ´8ŸX+Ä—E²8gVbƪ2pH,âMÌ’Y9SY6³H¹‘ÆßÅFûD¨ÀïsOÊp¬]Úˆ¯-#`(œiÉD‹ðw±Ñ¹* ¶ƒpö\±dÄ+RmÕý}Ññ¦ùʲ•3ÚÕ´&» ˆXH€úþmË­H¤GŽ4fÀZïNñ}I»Câ4_BÁ'bN–4±•MÿZú@ÀÛMÒâ^‹‹ö!╬1,£ÛË"ƒkÍü†o^0J‹o ZɶZ³Ò¨¤tÖùê^œ¹Šß´F"Ž6Žvó¦“0SîÕÞÉÇw´j”ŽH2ʼëéTÓA]CÎBž úâÑÂÞåN<•N&Í”m€Å*oŒ=FÔÊ0L¢±´kÅ)œô @ßräµø9ï–×+o'—ÉÁŒ0÷Š(5D5 •WÈ×ñLâQFõŸŽé=ǤBÅ!â9Ô@E¤¶ä·?h$Ï'4V„YЩ=A)ñèŸ=d¶…^T5fYä⌴q i[1‰NX3eS;Ì“2/Ô Àwý–ù0¤^I ÇLþÔ»§IšúÀd*ýéÝ?þ'`l¡Yøÿøß:îI¥exÛ^î“Èœwu^K•`§ÿøz ûÇÿÝÞq=PÍXgÃÞHféØG*«Ò×^0)¬2±M®éD¡õ ¹Va"&1˜—e™mŒñR_T6)1cêVõà4n@½ý©?%Õ3;U¢ -é\œÊ÷?3y³°ÊŸúe2ê¾›•‰ûLÝåãÞ$ ¦G÷ïIsˆ¦¶÷:§é`fÆ7¶ý\…DÇî^Rüÿ¤|á›JP¦vކiÚPÏþô™Îï "$Âé4½!–…‚äÁÐËl_Ÿ!ï’–sIç`àwoäÒ‚òø§¿”´?ú³,EiŠŒX ¢6<4­“Ô+•Ù†ŸNíFI'9¶U¢7ìðÈ"ÿž£û›yË7‰bß/|Ux{ªòÀØ€¶Ú‘U$¶æšjÙù¥BZÀgKk”X®€¹¢´<ϰÎMuÀ‘”‘ Ùœ‡ä‡¾¬©£øßê•Ûé{ßöÊÍx¦VíeŽàXzG3#UbI,~ TØB_2”c­Ah¬Ê ֡ئ¿¹ŒÜÀ§—&½eùX8 Ç«É*«Ôœö¦åÏvˈ°0Ù–ôô}6…e<ý½æ?·þÐÑqOžŽ9ûÐÖw-í£–óécžB¼þq¶¢Á©H,Eœ÷SÌ;RâçûÛ´9Ïö¡gûг}èÙ>ôlz¶=Û‡žíC–>Û‡žíCÿ½ìC\É]÷6^ :î\YFŽäTåŽæÔn1XÚbUl!âÞ»ƒ@H³:‘?öÕnõâ ©D¢½ÝyÈ ò…›šW’/.ÊœrŽ7kmˆ±°Ì·¿' r QÄ¡º…¤"‹$½Ôí|ÇJa}àE¿fŒ¸m¾þwÚ!̽}“»pÈÑO¯½íM ÁÌG ¢i‚\ŸÅ‘#>œmEP~¡K­ õÅ”°=×Ä8N[p›-óÖ=øª »âY£4ùþ\îÈ€ØY@F˜C q²Æ³mùÜÏnC}Ö•Ç´À„dÚOG(ã—;G¿wÜ”°=½¸:踿_tÜ_ùªN¯NéÃéÁqÐAGÊ/˜º§—û¬O;§‡[‹ÏmtK$²qˆf¬»K!cAB•z}@$±%qTPÅR¿ÓŽ{\^‡¨{Öqß§št G ;€UO£B½|ü%Õ5_;·p‚›?F³xZæ/¦9¾^¨2Xè¿<ÓÔœ.@k¸{¹—«qØAÚq:î d–Ê[õÃQ¬^ÓŽY¹Í€Ië¾SÙ~|¸ê]J\p Ywo¼…"’w±ˆÍ*£Ã\íâÁr˜@¾Ñ½\I« ®kv¥îoCDwÕxÚƒ™“æ]é'’ðõeŒÌ94IÚš/9òËêÛ†ÕÌVüpšã ÄêÜcçë¯ä4š¯®Aàeh “„AîÓB¶î¦ª!w‡ÖgŽC ~ô±dzâ•lU|ª,Æ?gj* › ü¼[Kž,¾ì¢:×/3$Œ+B åÞHÜ=6 z71¿€©a (i h [1±‘©'¯dÒmI)dìeiì 9~þõ®¥ -­õËi9xyG/ùNï>œÊcêjžôcA"Bm_u¢ô¶Ë!+ã¼”tBªÁ½¶ôRErYš->Léö¥üñÆKžÊSÚx®L¶™hódÇ–Tøt1WéÍŒÜ4]9"bNÕ#_Ú‹£Ê•”A¯Æd«·@9ÇVŽ. ’'£š'.ïì%Ãf{eQ´QI×áLV ~4ÖDy¶ôü9ÌÌðç?/™¸Û¡ÓJüàKÍ}g‹º2ô”i!³Ýœ+‡6­Á¼£‘˜NH…=ÔÆûV ¿R„t€c¡ËðY$ ä¹ç t'§»]†þ¯jÉ¢ˆý0ÔËÊsãfS>PŽ%@úi†(©àíù8CØøªhÔ¿€9?Ì^ñ’CdD÷£'è>îšUÁ)ET?~áVU í#=ºwvàlΪ2¿2Xm3«¤4G.ÃJ$?Þ¯ Öç¾rÓ×NÎx‚­ JÍ”\~(ótÎÌYk„ s2.±ùµ¹Z7…CÙ¢HM”®Ùd Ön`xŒèÞx¦ZÜ\t¹ýºD 4y0÷Tïiê=1…7nG]%Sˆ |Fr‘[ƒ‡%-œ#M˜*W•ú•ËOÁ®Àñà~¯æ`OaÿqÞñ¶‘?°Ã8‹o!«!É®M5ÐÞ©Á.D5%X Ü©”ÎÄ­u^:Qu'a£“¦O ãØ"q…ŽMç(qìMžßôE‹Q{™öqNm‘r”‹tåñ#S"(.”åpˆD“›PEUêè…A‚e>®Ùká°Ç«í­pëc¬¾0 3ËzpSÀ›¡Á-;USxeÙQ}¼÷Ÿ¸÷Š·£› !ú® H±E]vCŠ‚|üYÀVVÐÄ‹¼—„yáÒ›§QqS®¤…wìinx*ܽ‹Ó%éœÒåJ'¥x­^Év¦¥ÁÊFg¤0~3^3žsдÊþTùùQ¥”q6€-£ >çÓ#m<¯á2—¬"ë-ƒM‰-Ï`礛¿4cbbžf`\÷4!î®+?jþZ#¼š;íHDPù§/÷PØö5A7éo{…¾|œeÎé„1‡ e¯ÌšÛÚí|L«ú†¸¾þs.¿ñ/£–hŸNjM›ÞaÄØÁ:±”ÄOFGG wàÌ/Z.BSBïcOs[’m0ãÂóì‚ IÈ¡´ËFœIaÙšA{ÍSÈ5¨àÈXÏföÀ3G´"5IYq_ óB$‰Ú IÂjbc8î›â„€[çŸ9SÈçíLêð•èÆŒ?jÄ:\^ð|0qøõ9œÃJƒx)æ Ó3´»=X¨• L2s¶J»È0xT—Ë÷t`Ò“ÄprJó“M=ã§ä> /4g©­Ècn±š‹»Xª&Å%P½©z* &^ÏÆ YJ~õLÉÏ”ü‡¤d ôO^ tþ•¡ï¢n&ÌX+ùcˆÜ1DîZ"‡#q^NQ—*‰¿.‰!GwKÜr*%Í’B5Ø@]±Ê9Çãm®¯o¯o­Ã®õÆ{ój~ÝX)b³á=½æÝÇa)Gqɹù:ôV†Þ“‚ðí» {·nÞÝ(㾆:ÌR·ôþtA"Yo¦H O½p×.‘/{ýw§Ýû²‡::jŒ¨Ã]Æì]Oë–ž7hF°B¿ÙÜñvæRÖ“0íÞ¨M}¼ßצþ^Jj‚è*¶×¬jojoaZúàHÍ©BeœFzVêâÔ ¶ÏGý½æ-ÎO7:WÃÁO+fùD£PÓ§É£Ù8¡»Ë×¼æ5.mSFº¤Ïžò½Á㓦‡A‰êÓÞöº»½éíÌ™VO¹`ÀógY²ÇÚ¥»¤RšìG;½‡Ÿ.ŽúÂ/¬$~c/("X8bß•y£y¬Š÷b|Hƒ†¢øÛfÏWгÄþØI‚>w£€Pøö•ûzÓÛ^¿wl- %´ªùTÍx–8'™q ûË5l€©TY[‰éô¯.=çÀL†ª®Ï\…ª¾“5…tM«UjPƒ¦æÂß±7*À€ÖÏΩ ¡Z3lÓtûç?scn@ØC¬%ÞNS¥Áí Èâõ¯Xè±0H@ö'´Ð·ƒû%ñlcêÈR®uæçEF¿c»Øª»ïq|1œª „Nð}¾á£I¦@šu¹¯¼-ï÷v>ÌëJ´pÝc©$Àn¥)Џ"¬Ê½Ô@µ­´Ϊk&!z¿270ý5lÄ(±PHWúl;ÃÜ›è\XÐÀ`9s–Z<®nÈÈ,Ð\\¼<½`}:wÖ,¯ëŸÑ5Z¿‹  â'‰ëä°EÕC5×RŒVðæðªªµI`«³ç¦ ‡î·j¦ÿ ûI2ŽŸP:qÞÔ +³=#„à Èb‰‰‹,Qžhðé¸,P$ž3Ò×uÇ]»{Áп/GI™³Ž›__­(ÜñAÖæ§“O§ $EĽ—a]&•&¶‹çç‡íŠÍ\Úmõü BêRhÛ<1oà¶ `áP%-Áo¸à)¾ÀaB¶ž¢À\RÞ© ‘ »¾ó§MbÝå‰N3:0Ï=·N©ÇQNæƒpúeB«Úëb¦½‚¿½AÔÌ#Z@ † ^â±[lXÜn¡;N×ß.£> sÜÅ=6å‘9& –qwíðøê…{@£˜ÊMsÈ»ÇÇW_d{À$k5554 ÖpþaÎüäeõÂØ`uªÚ009V¨3‘¾sE`²2à7 ¹1“€|˜ØQom%@±âAÊ£”x$êø¨¦¬1àãk÷ÄCÕÇ„Ãÿùº§¢2öžZ] §ºQ³·½Ímw‹ÎÏ¥Æab9‡ZÄSQSܫٴ+¾Øò6¬ƒ˜ã£V¡Ó—¿kºÖ > ¸€¨'ž?§'Ä=q\ýlüý¶Ì²9"ÑŸmO¢Æjú•¾ÙôqmèJ#&½b~¨ŒZd•B:8­b®¦9õ‹ã¾¼}QY·}ke‰i؀ĭ^i•¬4V@r+ĵÄü·GúÓXÝÖTÀ¾ÒÜýkJÊ6»¹Ðjù„…¯–|c¡°Ìóšÿ›®y—g0k¹Í×sOÜ=’'qbž«DŒèǦ)Ëzñ¶—Òx:”¹#ž¿Ãs jbNpÄ¡Cs8³·ç†²6®‚=‡ ‘ê¦Ø:¬ÿ·>¦«V¦Æ&—Þ2‰r¶»i#tæ4ÞM’¢K‚¼¦l›Šj×¶ iËý ëpØÿP¨Œ[Ô…§jêàžŽó?Ü+•Uoí– Ž“ŒÝ¨îšG=q‘¶ÆEh ŽÓuGÔ»´ðF÷×+F÷/p}P_ðõA}}³úaS~ÙäŸlïæ×¿â7%wE÷©í>â‡ûôFýWzJ5ê5ÄQðå_›/³æ]#GÉÓü/I‰Üäl¬šM¢û1_¾lß™™Ö}†~²%eÚÓÀsÐá7“é­l“}Eœ“J£ÔÝWˆ½Gi;wwŠ+ÞWz´­«€mÒL¸òÔ~„€TgP`Hbê§ ô ÌFOBkìÄy\ÅWßzظÿ{¢›·=aä\ÿW,=ë$×Íös="ÆÕhÿUèÎÊvh»·zÀÓêÉ–g†T[#¹@9Pä.öÞþlü½MÜ#L„Ä­Ç& Ó}|ŒäššÐ#_VãðXâm ; çÑØWðüO·¤xЂpqïòV{#óE.J“»AЏ²'’±$llxëÝZ(”+«è™3E¬x©ë6D5(’·ðmPž"+Œ½òPX=)gcÿ¼K€M26^¸Ç›cÃ(*§°€‘AûdgND­¢Îu6âÐK^¢V¼ªé#FÍó¼i¢£.. 0PA?{Õ7‰ò Á͉֩ÜHÖ¾‡lGÓ¾–p’&´TZ¨ú@0ë¢CFlÈq ÇaaQe›±…½ºë†¤{½d0FãèÆNÇÖcVÙ†Szq"é”sÝ‚© O*ü."Rîn®¯¿†ñ±ï[sër!å °ÜKôw1ÉBˆ½èŸÑñîubòg§1[J›Bk.›ŒJê5Þ(O3G}ó9Ž Å]xŽçN¦øg€F\/óâbÏ]{w!o€À„ 8 Ñ×"š·Â ·[W,¤^o®#µž¨íõÆúA‡¾ãŸÍƒúÙyC?çü³»FŸr" ü½ ¹¼:zØX_¯Ûà 7âÔÊsHUóãÙ£4ïçþucC|Fæ;)¦›ë¯×Ý‹ƒ34ãYv×xhïçH&F©÷QnKaºÑ`úÆðìi¾õ’©[·ù Ÿ@JõžCRRg‘þÂr5&qþÆÍõ­u—ÿ×èÕ,…#|£*àÆ–Â` Ò©›ÌƒÕç 1>Lþ€ÆüÀë÷§]¶8½l>QsNP9iQÛtÛ/äòá·êvMùÜ6>IJsÐÞËq§²‘‰)ªCaØò 5¬œ‹ýÓß@[Þ¦´› _¶.:'Cq/™À<Ö¸dhšeé­™å²àU ¾’MÆX%ÍWAN¿RvêWÀPŠÑ™­úwYɨ3O aú6‡¼÷^å¾NFÞ§OÿQç¼p(B"'RB*‹qªìãB·ç¹_Ò4 ž®oñ·§:Ò„^¹‘.èL¾V³^Ž˜I_{Œ.¯QZ+¹öʼFUEgHÞŠ{Eª‚'ê`†lº,{è©§:ÔÎXF±Ôã®DŽ+âë—CD/¾*`™'Z¿O†0UY…ÂL½;5iW…Sa+Åùò£Ã1ÍJqLתâ%~L¬(Ëóïìà4¬)S° |d2_§¢lZßF 1u³:ˆ_E˜ðþ„7tª¦å4À[ÕžgØäàÇp5›ŸFc…½—h²Ÿ¢ÆON;¦ê‘5Kˆµ«ïÄâyf3³Åê +1[;K¶#\åpš ©*o®†h‡k2œœ ùrúak³&kÇŸíï©£µŸŽÏ®ÞÿÔÁT')½.mÕŸ-P„þä§Æ¿õç?;µ9’¤u‚O±zHîÚ§§¿­e/^t}–ñUÕÏ銹)ÇÇW$“¬wÜ·;ì\}ûFòdÌyn,ùC ¸·bFfK‹ÃÆ[¤öð§ÁoÖé6§CxŠmXÎeTQ&•Œ­ÃÚ@lƒÁ*éCF^ùöB .¤sO¡I5Š5£6Ým/Äk靖Î6zܱÙ14>#,?žŸ“Œ%F!Ú™¯`›—åÎNÉcjݲ»²îF u´<™ÒÞfÊú&—¥+t¨|dáÀ0ÓÈŠºM]ØMIÁR6;—vµ±®7lXò“õžp6Vî¨*>-š7yA¿F>‹[BLb3•éÏ„öah°çqV,CÎSR¡lšh†ª;Aó 彆-ø+xû ¾N{òçiâJµ ·•5G1{^Ó?âšÚ@Ü¥ûôQ8}Þr½«l õµðù:nرµ Žè/<aWË‘ë˜ÙêíËjç´V±¸ @EA&wúFÏeã°Ì«D¹M­¿Á©Š¤åU²g>éü‘wçAò~u?DÜ0óGÛâ™îZ‹ì–·îmº›¯ÞÎûeÄ k€rè\¬X+mJ¢DŸlZÛô(ë/ê2µnnîØn6ÆšSz!¶šÖr¡” `£‡Ÿ‰Øg‰ÆfˆLUO@ —¥Êº&LÀïÐröÑÝf©‹‹Ã¯¹c® d¾Wñ”!¼ àF‘7±ßÛ€L'ʃ_©Y”ceTð§—ç±QO“;Iè@¡#dÖ¿y½¹àÖ¸¤·'ºísmœê@‘{LÑŽ.”fÀá¢aZ½+—ÓTm ?ÉèÞͰÑ™nÅŸú~I«È¹É¤òkÄH€ƒÑm9^ÉT)i ¦RÖPÂ"ÝkÚØ»°9(Ë›qê/,2,l-Ë®´æÞT€8Vn„!$i÷”€va²pâ¾K‡Œ‚Iâñ¤§Çü­¶ ]dj¢Hé¿(“$%ZßÊ…ÞT.<ÉMDsâ‡7È `|¤ÍeÚUxCgܽLØr§«Bf>gRÓ$GEO’ô6qGÈpoÝG¬‰"-.ð~Ķ?ì±ñÁ%ù¨Q@™0Ái•T¡5,ìãð Ç(`pµ"aóDÝ‚˜Ü'ð.€=çÆJºÆi &‡)îìæ ½E'/ è±ß’ äI*möžKb—Ý”h±©jfya®³Î$yT?ÓÍò±ó3®'uÇgÓ7‘?#žL¸LþO«BºÓý‘Ú½¿ÖQ0¸†Gq*aÒ hÞBO©²ÂoCEîž„ô$Ó#:%(ˆt±±,þš"v8v?aÛÇ^—ø4×þ „8ÂV]³þz“ XÎgR ÆÌõI>B$d²sn´µBŸ`Gí0TÛ/³ -ÐOÓ8·¤+£Ò~c¦c- kxÄ‹Zeæ'Þ*”3¸[¸~L ?H¶÷a4‚PQ¤Nê¢-ŒGeÄ1<8'ÑQ"Úq\êiêFÍ-PLGŽô€Ö‰H|ŠÜ"kžg]Ì@²S±f+i3³«†`Àä†HÞ%„‘ó›Téð¢pŒ« o€‹Dò<‚5Ž87óü„‚Øã¤¹5E‚…ø}+æ +Xb¯š帲»B:ö•q$º "—pµNôlÒ| ‚Òu:CùÉ 6‡DÍÃ&læ “==Ÿáj›«Âÿ.10÷‹ç~ŒòûBÉž2蔟bÔVœçþO¥u£ÀֿĶõLñÏÿoDñ¢Þ?Èã›ÅZxZb&´Ö€ësƒéÔZ}VûZÎ_åÆJVò¤­ð[ën5š‡ýV\V[£mÙâšð0«5¶Éæulõ⣆Ï;ÿyç7wþÙ­_;¥ž÷ìóž}Þ³ÿê= ©ïÃoîº÷ÆEúg‰&O¿ï5 <9IâËÑ®eÚ«¹öœTnT£ÊJJ2ÀI~s9¡9ÒÑÌùžKª©‡Bk•½+ºÖ—M·üV¥Ød)²pÊ´hÉ9û™ãš} ¬@™›þúÛÆ †[æ’p»ój£±Ž TQ·œJÆ­…*Ø <Ð0›<£E~#梵“‹³΢ш_æÎÌ@UŠe…¬u¬*:¦%¿wwí­½!_îqù©vÎÉÚð¶<âÒ[[Þ«¹àƒ«¬ÔHwØQBü ¶ä4]€œ±í»roi,¬ð÷Œý´#«¢x¾ÀuUfŒ›íº»ì‘þSxìÊL‡%ûKu»U~út<#ˆ¼X^QvãR'D6µ©í‹ænÏP'Ñ}êõÛ×Û›oze¢ $Ü„Iëê 8æmõ¼å½¦…X–¼×ZˆvÚ,ScµbÂÍë;àÅ£«y>ØúçBÌŽ…beöÔ„.EšÜX,÷‘ ôV†ŒqTa—Å´\EÇ­Ú ðÍ3‹dß½¤›[)³PÞ­|_rÃÜíÞòw/’ïs7Š_ú”„êtúÆäî%$í¸ÿç·âßåü“êê¹g\0 öíí-N tùxi>¿Ì4箼,²·/òF€žpîê»1‰ÇÐ ¢™¼TXG Œ¢z"Éå=—cT]Î7Äîqeq?×^‘ޤš¡9 Å1 fN}JFv‚c ¤Ð3èñÓ0«Už -ø§ý°K3^£‚Z]£ËKá ”ÑJI´ÿ wCT"¹ùÒ<‘MhceàiÊ ö)’Ä·p8”6"~^ÚJ•A™±{Ä"®Úé{Bôfp!‘ `:ò{Ì}²Úˆ_‡õ œ)"] "¶Ñá*ùA@“`ó« «&m'ïiñÓÁ°Ì‘Àa†¹J8³Žû ‹ª+B RÉLÉ´)¸/ÚuË„4ô——G{‡çGU´‡œh ÈŸdººãŸT"â‹V2ÏH]Ë«³ô4ãGrŋ͕^¢o}•‘~**Q–Þë¤;(ÈêƒÛtýo›ëëoÖ_mn!;x·}QÞßÛšû|]¾þ8M —4é*‡ê‡¨øhS* œûR¥Ÿî~:¬ôËŸ” ôÞ×J¾¯UéîŽìUϯ¯ª‚Ï«ÄdÔU˜¿Nˆ ´´ÏFõÛÖ3~?oÞͧ´|ëÞ6*jx¯çS˸üʘ”æ íÛnâný”†V d£Ša˃?óñ1åŽãªcÇzƒø±¦ V*µb hÄ;Àpæ¿6LFL*¸QáœÓ„†”Oáò.+·à’ª„ÍJ@ëðPí¹©½RËßð­5¬ö"}Ç¥ù0VS©.E µ¹ÎÊâÞ=ÿÇÿ‡‘'v#úÖ“ühâ‡ÀnªÃMÖÁ8œææ–ªnÑJp˜Ü¤9´IP™Fe]ò†+Y°£:1ƒDE2y4”ER­aP‚µ_Tuž”h”a«ž—oL7N1 F€œêÕ¥Ú#¿&›“0XpêÂéæCàFÿè‚äºÜûÓ18çˆèŽÓɶs*H¦o 3ÔépØõQ”](½Ã©ˆ2pH†°Uy27.¯ ñÔ­º‚_UUöInL£!˜it$ÑÑ–àq —a‹ë /ÀªCNN¶Üµcu÷9,Hι¯ÎF&Ñ®VÎlîÎȶžƒL¤îL~ŽMàq x×– °Ü‹ýsÛ¤Ljô„ŸmN¯pkNÂ)ŠpGì¡÷F)”¡ºϺ ìa¿µÛyÓÆhŽG¤íÏ*OØW1šOðʇRcwïˆt¿$Ô^\úOñ•T¤FiWêžp ‰ ÷•7_hë„[‘îLk[w @ïjLmÓŸ‰t@Õo“ËEu#FÿS&<ˆQ8¹…`*kðbM9Ð%R%|Ù¼‡ÝýO}æ ŽÈû+æPàJxðŽ˜#]c£Ñ‹ñ„÷û“XóHÝN?šsGÖç`Ÿ\úÝL™ùÆ´48y$8m󇎑”?»—:Ò@‰ÙÆm–{:*ŠQã¦(ÕY’ë¡ZŠaìY©9é† @m ÑmP[$· "é*Ø®âï½|¢‰“6°Áù¹¿*dPÀO```¢Þb¾‡¤ØÚ\ônìYó? ÙæØjã–@|[Ò¡Yø¢Âó­Š“)pÓFŠýMœ@(¬CÄ„XwÆ0§ÚdŽSµ1ؤI¢†w8SMÄW¦«Ò¦¸Ü§T"¤Œ#Í‘x‹b‚ù°}A}\Ûê¸H¬IK¨`¦ḭ±rb‘Ê" ªÿZFÍF+¥-b $Q"] z zZ"BF?) ‹è3àȃB±Ùœ_I±0ÓÒù¦þÍ¢IÛ6òëFÖ¤Q…ŠUb ‹‹oðTS£µ·¯×_H%(”œ€“uŸáQÔàC¹t!#ùv¯„m‚'öƒ)áã~’ØAL¢“jÔó[ÛóÉy*šhbP8Œ¹bíܤ»ŸC}û¢ãâ¾:lþÖý@ÃJ™‡÷y‚†.NI Prýñ|wo 7K6{€.Ò0K ¹5Ìé^ÀB)˜÷ˆ"qU°¤öËœ¡)…}Ñ Yd&JÿPÅ‚VšjrfÖ1'TB˜IƺÊô -ÍUpéòsúYÑÙÈvüöÊŽû«éNräH_çÄaè?œàÁ’¶E) Aôi3¸'a4 mCw_‘ˆrœ…tLE“c}î@QM›Z0Å®9ΨE2´\Ÿ‰y) áÉ8Þ'´¯Wió:8I'ÚWYÔ¬N#QáƒǸ—$…Èý‹‚w㘂Õoצ¢öšžhb31½ìB·òækèÀ;øxn³NâR8È Ó™Yý~:PfE€þ°Ï#B ½ûA ÝÐËž£Z)Ž þ«qq¹§dÔ¯Š¿ +™A¤DíåCo ÐŽÏ™(/ŸÌÅyJòøA.°ò¸ºû{ë›=f¿*°ånm“²¤°±šA9`NÖÀÌ,xeÓ˜£2Ý5CäEénûîÎ+ @”6,݃R$Í^žù]÷œ5úD¼þ—õ`kðêMðzg8 ·ý7[¯¯‡¯¶ü·Ã7þú«W]ºý…ÈÎKùÍûäàÀ-´Š6LßÞªgÐÛÇíÛÅdà+lŒÎ•m}eU«e­¡;ÛÙ€¯Y4~Êë<þ•kð˜ÙÇái,Ê-èÒxY+LñÕSm5,xÈA¡ã0Þ>!ôþvË»öZnT÷Ìè€õ=’ƸÚP£ìB^ì~Ê;°ûH†Qêð%ñ` Ä(ä˵º1¿§ƒkŸÓæ nx"±Sß>ÙÔv¿Xê£Á ¾aLûÁ“Çjfå;7è±ÜõuBáw1 «½©zƒptݸkD÷/~Ìëýû½Ø(¼^|©9Có¯DäîþŒ”/DæÎ—róý¯¶‰;°=4‹Ááù‚ˆÃ¸åŽØÇç–È;¶ó«+µX‡|agøÕT7,è¼[gˆ­¸‰>ÞºW|‚¯Á¼éˆÛQT½¼íÕ|â«óDm=-‘òº.9[øzÍ*ãÝÁA——§k0|Ÿ4RðËoäëÇÁµÁY.=Èçš7ÚwòZW9¤ÉIù ìâ¬`—NU´v0s?ç4ñ=¦Y›'F 3¿Ñ™iíaûMÙ²³öÁOÕ±ú-ã›?|æŽÕR]]À=6 Í’Ì}ÇŠ}3JÓ‰c™žYsDÙ;,&šó BADÀNÍÏÑü(ÿ „׿1þ¤‰ü—¿ˆ9¶¿å%~}èì]þ66Òxí‘üMÛËž<­ƒñ¶´í“†jÐožÛÕÔÑjò¤µOÌoÞרýï‡,é“'ë‡LÓ?s˜i2Ü”‚]›îko{™”ûô¦wçš`v¹óC[  úyrÀUkë8ë6†¥­j`+97«:ö6á{W{§nRß½€¹‘îîxÚŠU~ÒUÉfš–¬åó4 ëÔÃåÔtº‡¢ HÛ¨ þÃq.¾)Á0_åkÿgO"uþÐ>¤1>†ö˜ÒF)“ÖȱÎS«óµþ‹¦® ˜´®ºè‘KÜ#iRÍÜÁÇÇíÍfŸ¦4‡A„—º؃;âg†ŽØ¾‡TÀ‚»óð»YªÒ.vgsEÎFZK®9E-·Ý,®óQÀû´3À¼g»~ã7;3ê¾ÏŸÑ¸ï)ƒc •ë7zoæx3Ô ÓªÀ‘€ŠÝµ‹V Î@’|ó¥Ð:SûB\Á Q² êÑòhC®½-Êú'i¬i”&£]´ÊºFç½”0bHëžZŵ J1BÚåe8558:Dàn¥éÃUã2ËÔÌ=(ã˜Cˆbþî÷Ê\5@„u6JÝ£ ɾò‹2ïÉ/+#}ÿ´à&÷OYA©íyôÌß§!ÁÀ}å½ñvÖ=cÁÚ|Øny¨娎l¶Y¼%÷È€ZÔ€PG BðŽ»¿Çt±]u7=§©Ë¿~]yC[~oŽq³ñ‚+Ó´éùp›ç¨ë¥{þl”ÐV­‚¦Fà‡ùØÝ&Ã…ŸOQÕ‹× jøn¨’…V¿zW¤I¿üuá/¶PÈ:O9\‡øF0æ…Fz8Ìô •¿Îˆ’w#u»Ø&ŒÝ÷´‡ˆ ù°Ðè}I›ì]^R ú´ðó¹”sÏu˜çœ‘›O M/è×}"{n5K ýX•h6ÕyøÀtë.Ã;…“¥è:ÈÞè“,4Óœä·Ð/pÜþXhírüYÒác…L¿Q6»¹Zœý~Q"W?Ï9zod>µš=~»Ä8o¡ßníxóI–¼K¬„sIûŒ¨Šz2÷œI9KTLŸ› JÖæ[‰H™éà ,z5®ô›W¿ÿ1‹Nµb¢Uçãw¨V £@fþ\÷äOc¿ÃÈý #ŽñœÒ—Cd‰w{ûÄxžj®¿J%Ïþc&|Ò†wƒr讋ð¾¹ýÚÛÙž—œZ¥‰Puì"¼·‘÷µ]öK•“g·¥×ÇOÇÜúªÂEUeDb£Sî×a¤}:B?äâê+æo/»¦¾—F‹õ1¦ WzCd%B‰c”¢Œ „|ÌÜË2Ï!·ÐB:3púzÁð¶°¢(LQóNS“r¢Hqz¯»Ö¯¾AœnñÂÁTs“º'aöÿ% ô=Š™k£0S|‰zÅw€ ~N‚è0õ'/ž°èM+Ó’•ÀÊ|_°lðø0Ù 6ƒƒ%b©XÙá$­b.Ï•ù›:#öäð¼iã7¹6Ûµõ® ö?¹z¿)˜¹Ã1.ÁÃf^=›r=Öø3—2ëÌ=Lˆ0Ã1ðɪ:êl‚ä˜<Í@Årµ$»i˜¨FPüáz®KyV檕Yj| ­ýfá‹#Ãß{Â˸ÖJ<™öè¿ú¨Dpû*lšÇ¯}“:—ÀCÔuÆ!Ûœíð–(æÜótc9$÷VЈ®~Þ±±p!“ƒþJ_+óét¬ÜbЀJ¬€†ºè\F@;ÀŸD$ÙxÓ4¢G3rÑS¦ª½œ óõÀrâÎïZP¾áÑãLÂ9uQú¡Æ^žiÕˆ;¶&Kû¢Dy˜ökKFý„”53lqË=0ÔúDª45Õ0•ð°ˆ=¦fðï´L0íYƒ2Y;ƒª‚ºô/nõè G97ðÉêOYÆ¡ £¬  éÛÀ(Ÿåbç~ôLajÍ:jèlozovæiO~_D½+¯—iôMXÉé=#QnÐr! {n v“¿Úè,â@ŒÒ@õBü PÅYwN‰ÁÑ1ÔÄ5úžûž0Õ÷]9Nº$äæehô‡{“±¾kë-ßâ¨OxòŽn3B9ö‡-FÆGüv¦J|2“sÏàõµã4ÂŤC™0 ²ôNOëÐ=AM“ÂW(Ö Ó)›9KÄ"¶9 Ç]—ïµ8aC†ý¿8ÿ‡=®µcŒýbmÇÌW fO˜ôÊ ¶tæ8Çè¾ï:ÇÐþÑcLóB°üº\¨+!go¼W›îqÙ9ÈØS¥\×:©»°ÈøpÑ‚ Ëf;¶cÖmÝ úØ—­\£‡KÁ2[;ÔeÁFzOE¬—-˜±Ï¥ŸÅ)(vW®yk½Ø{yÖÈS!‰tºû1B-@žÁg“îî”ðFæBoœFU•¯R½1[ï`·;’o= ø¯ªã¿ÜÐòíeYZ"êß<ó­ÄÄIÕ¡)ï73Ø[ÕŒdÙ‡Öîq®û¶bIm›¥Ë¾Ê$XÂ0é~ö€òé û¯'½Ñ4ô²'D1,¼`^¾`UîfÕ^µÎÿ6Ù.'ÕÖ$×§Ë/æÖ5|ì§ÃP’ê´¬dPB³Ž8ÄæÅÝ|»×q»››[oßýnPf£ŽsÂ0m³Ï[áokbxˆN>TË/1FXþË’ƒ3–ÌC1EyA“Œ‚ŽÃªß “Ã2pòá“Óèë| 4o°ÍvˆB -Üt®2ØÒ3Æ ³¥ +=ñçÁ2‡Kæ‚Ðóª™f q€s•“îWÕ•·ù”ko\ĦrÇãû3±þ`bMã$|øÆ† %<Ì׸y›pêì‡&ÞWØÞY·s±›8ógwÛàÎ×!n¸¬a/“¢W&pSpB Îî!wj¥-!2·¨¾ƒ™µ°9T8Ð2NÅÓ“B½‰p(ÑzóÛ¤•ÚF]ªÊìcÓXËÁ"%eˆÁß„lÿ‘gZëЪTÄ@¿Ÿ!°‡þôÊÜ q‹Â'îg††ûj˜Õˆ&7 í°_Ü¿ª$)}?$B¾W*i5úÔu·±ñ qµz9$¸¡­Ó!ëÏ$®'RH³èß8.-#Bb€ûe}¡ X¢ S’ã ŸYÊ`)áX}•<.(¸¯WE{~iVÖ=9=vO%ýÄÈö!CÓ2žýõ /.cÁë;®ª×1ÏlYB°®šíŸýT&ÔD ®Ê:Ió1)dï‘è˜Æ´*ѤN³"ënly¥ŸûuÌ;Ÿûž{©f "ü:Ïz9é´¯ϲü©q÷òNvß<Ïà#)±ìý=~Ã\º]#£%òûy¶½t Õ>Ïó˜ç­m”<[nüðIæ²;o³›–ÀSäì­nþÂÄ¥·:ƒšÀ!>\#ÍÃÊ-j]’UÑÌV £ºöFe¢ÉœJö‚ ["sÅTãùƒHôÀe4ÏÚ`È)%°Ñ1‰½â¸èêˆÅHœñ·i¡¾Ç¶N:ëÙìNçsnjJ¢¤Îàöt¸OöТ“J¹b ‰å:S…”ý¹¹õ{Õ “Ô3B²xJãæ”bƒô® .‰D…DGpkdF âe”#1SÓ¨|€r#Õ˜s¸«©fª$ †Œ…,1YRá¨y—ÃúIì·dH8F©·0ÊTØ€à;T>Ê,Ì:\UE„‚¡‰Æ0õ l9Ž ëšZ;ÁÿÆÊ'i Ô"£]VèÆó¸¦ZXè±”ª­2¨›]4$4'+“å–R]ªv¶[YŽ“\GCÏeà)ç+Ý3ƒ(“2GYšˆDí„Ep“KÃ’£¼µ…Ú´Ñ\¾¡ªf]p°x`î‰.àUE‰®bêÙ<„—Órð_^òã_ÂÖ.ö#®ÍLz»7ºçµûú½¬`/ÞŠLÌeÌ SvÖs÷"Æü“JÈȈIÒÛ˜b}¢Ôq"n& È ê‡ÆŒ'úÔLö îØŸ¢ˆCæ¾ã2Ö".Ÿ£ônn¼;e†ÊÒ*™¤r×XÝ&î^LÄX!ƒ#ÔpR»Üó^eQWЯåªm(ÑzZEþW˜j­m¸50¦ý±•È}wùÈ›ƒ[H§@Ä"¡xšØ?’R /˜áÿ¦XßOKš·òΦrꌘÈ~: ªÜÍ0Ô»Ÿ©ö­p%˜™ŒÚÓû™.u&w…¨‡±O›r$¾…|Øý2™Èpúš À 1C0wºbqµ¹t˜û)cž+Ú…6¡Òüì5&d¦T,,4Ïþ2:7²Iyú{Mì‡X•ÄÈµÜø×A8J ZŒg½û(@0¸•ÕYrº%·vÖ º8*͆¦ÿ_5Þ5\ø‡H›E®Ia"ÅQÏD“ ¯Ìpâ ‡a42ƒd}ˆô5<:’I5µ"2ÚËyóчe2P™Iº¡íâΈ›-8€S¤˜QœÖûÒM$¾Bú±.ˆKOøÂg"¹ ä“p:MolêFÈ…©óY16i7SI#Â:¥†þM}tu€xy EÂÍ€™ $>Ÿ†96#<É|Ü'.<¿õIªÇ™á;NRº„ª¬½“ „Lµâ}IžfˆºŽx˜æ&‡À õ1ÔQÐÊPB=³¾ïtB3Ãäkfç3CÓ…47 ÍúÂ_öu¾€ÞQ?oLÑ»´ÚèBmétLõHž÷%†#¸®Þ¥Có.¿¢BK9 EP-âx7 ÌöiJ%l;~ŸÝÏòû‚þ¯jRÒÛÜŒSvuh†tESMßBYÖc",®Sòkªèˆë§ÝWÓ9ò»ýIƒ±½3Œš˜¡"}’hÂ}©²ùÒïÓA¤ò&g8£A*"÷{GÉ8ïËéÚæ­ÞC5wßÏ"¶Üð¥½S¿} ì‘H–:ö}UÏ+]ëYM¿g*T¤‘òWð1™aT $ÖL²3 ˜Žia"‰Þ¡Ú¬3k¶z¦‘y–¢Ÿá;íÔPÇaµèqÒÄrŸ½0À1tièw/`¦pN,;¾"©ïŒ(íï7D"|å4ѰK]Lô žÿ+‰ä4 ÿ¾ÁÀò'º01ïþ9De‘sXò=åø!à Þ_«¬BʬÏ{pcÁ±#ÉÈ%—l7'i`:ÚîÃÑD¾UU"ðiÒš ‡¤jlxCfË:ûè<$Vc¹é;”½ÈKjyÞ—IÚ ªsâ…¡2çÒ^ b÷®Ùó‚˜ÿ}î~P#™ˆ¿”“pL}Ñ•‰2»¦¿ûnV¢HlNãò:¤o™º·[ûùžˆ´,,k1LB.™‹2 š´ºú ÿ ËŠ0l1 CþÒ, ë=øAßBĶlcâ~˜23Óç¬~ü™:–>Ë~÷UsË} ìúI@(þGùù„¹û¥Gß‘ÚdŽLúýBiúq\]pˆ§9¬5ø”n/<ðB¹LÒ^>¸¦#lA2˜ÌÈIK ž ÏÞËŠ¥L"åßÏË•ìIRÐE%¼\ªÕ{8óz.I—D4Yšwå{©!´é°âý$c‘xw^OšgÞe˜×›[(V#¬ªpp‘xØ&Yk¥å0D‰ºLo#³£.Ô€–>ÑHqG"Sý¦€Å€¦báŒ.EÊ¢iÆ+O—âŠíÍÞꃵڃ¾*JJWËÈ´Ì”?““OX\¦Â„$Ò—ä.•¥ ¡¦™†`'}TˆiNCBó§ê=Ó‡uÕÌ&N jhúIU&¥:¶ä]oµY©¿@ íÏh“ñ( ‘Ý{E»,NÍŽ¿Â9§Ì›‘0P´¶‘$ø w¯~+Vu…µÍìI43ˆ8†S!•EJ i?}å~AÕªJ€ÔDúskÝ¿T‚NŠ/z\½o8¢1}›3ZExʱŠ-©@¢Ó©H—+©˜‹Ê‰k¸Qy NóËFµ‰4»S§haoèp»®ôÁ•M%ïÒtþly¶<Û@žm Ï6gȳ äÙÒ’Ëžm Ï6gȳ ÄlŠgȳ äÙòlù/³‘rÇ{åí¸o¼9«Ç1ãöÕ9Ý·Ö-äC§…”‚KŠ,Œ:c«,Ððû»¢,£2Ò‘ ÄKs ¬.Dªô.B7Gc)Bç¶U{gX"›ÝG컄`šòtžÓŽq§L,RÓfußPÈ.öÏ Ôb¾ ©Þ &¤vlì9"ƒB›s˜ð@LPUyÑ5¸¾S N®Þ‹]¥åkÔ+£rW‰Ÿ¤š¦›EYýN¦Ù6ÄÉÖM`íf1Ñ4¡ ÆzÑq>÷%Òæ)6Æ+P å8®oHÈÝÝÂ|ê¥y=-ƒ>,ºxø ²¬šty>—MÎ~nÎJ+¹Ý¯»ÐÞæ œ^Ukfƒbô¤ÙaþP&aê@ ÓÎݽ&4L{~z÷´ sšÕgžA.N;²s÷‡Û³À‡P‚Dëò› ðb‡cTÑS€,’Ú¾2ªýw°T7ùŠ•zˆÀi³~+}Ï7­H›ºž#m÷@Ú ¿uÆr©Ê%lÕLÒQ›ÅÖÉ›‹{ý0!“¯ÌEµc¥æÒgÚža^JÉsýÏSašÜWõyZ=ä’> ݹÃ5ô_mœ]AUH‡Fýi5*gøtX¶°ø9Ÿ3AwWƒ+ B˰'y0üƒ8Y–@EJF±_†E“·"4LËdÞ–Ì”5*ÃßóBwó›äœ¢_ñßÊ0¸cßøÝ‰×!ÈjAâÞÛ¹xü_Õf*í† ƒ˜ñý,½ÍMhxIÚŸí¦‘þø´ä»B‹UGAÝ‘qÐ1õ—pjäâ ᜳ»kj)eW,ífl•Üπ懳“k:ÕýqJ˜G*$Ááâ×™¨ä:l4õH™a=Énf:ÊÓ ŽÍ2Â&ŒrÅÉ5‹U=kŰc ¤oÀ³–S<ý´wéÉ·&¸þ7h§p_‘vŸîš3'|yówUM_\“h§?3•ä÷“ f„½ÖÙÓbÚ#E¾ém Õæ[og݆—Õ½z¿ùgä„frOû[®9hÝš¡-D¢æEi,„D$Ä(§Ê²,VÛ»¨ªí=åå¶Ü-b›‹)ËߤËÿ@”^|¹Ë½C9$]—0Ê× rÿ/@/›µ «‰Ð0 NC©NÙbògîgsó˜9hhHìÄtÚSЬÅ<™CGFØ*Žæþv~f4:2Tïyèdd ˱¼¨ïD²ÞÉéž\Ç/ᮎ ö;y×r÷UŸS4koå·6À…â‡=¼:¬“ ÏÏn–×>VSWIØ1`ÍR Gθ`g%ÿè1æ7û+ù{PRAxîGVûŒkž¦¤®)Íá^¬5^kírÔIUߺV¹ºÐ…ΤÊûG;<§—M3‘{¡"ÿ^ÃwàîÆSùÒ+½[•¥r@ïU(g_ÝêkET­‚H$÷䆀ƒ®1ûcâ7Dê€ vs|ûÛ ÇB$Áz0ÖvôÎIMHÞ-n½jºŸÆq¶,åùV ßø]h)rÇJdˆ—4\Á¢z;_ˆGøŒ©€Æƒnå[e¡Ñ®±³«ê7¶8™y£³ú9Ìc,‚A…‰(˜Båð”ÛV§¶"ŽcÁ¬Vãedá(uÏÓ™Bm$þÖ3@úƒZùŒœXøˆV ÌüaIKëÝ̧a’æÔTçi ’Þ¨¦©§¬A]³ŽN©-wck lIý9Ü÷½5똟<~¤šécÝ}Ebé›%1SgGîU9°á3GwEV²àhH¥õ•¦B U¨R£>]†’ªÞµ½‹Ó¸ÌtA‘ÓÏl:)á—ÃçÇr;XÄl%©k*ìõдZÞît‹¦©QO –Šó×êøÑ{„ýçN 0†Ÿ/‰?Ó«‘®¢ƒg5ñØBÒ|Ì&`…8ÎEF´'¶ÐÇ©NNÎܵ«óns¾h’8µ& „MµaA1onã½–NÀJ‰ŸÎŒÏzJ,•þ_{üï\]•÷a4âôóøzÒ£“?Õ·O8 ~EgÝ}½¾±—íSÁÁVîq™øÂEY*&UU.»¨dLãá|ãU9œÖÛíÒÆ×½5¯ÞûÛJ®´®¨^+?è©»0÷ÆáÔ#âèHÏê³±é‡qwgtÿ\…øº®2be3Œ‹?, £6kú,«£ aDW^Iäî*ó©ý–Í$TaÄ€öxÞ?zÔŸztߣ%Âùa—Í$ïUOÛd˜®Ø1ôc ª¼À—¾>µKeaéÊÆ¿©r‡ÇbŒ¼‡¥õ2¢~%\G¬Â<)ˆhu-Æ©"RÊ>OŽÛ³¡^h.ŸâÀŒªxhÎÎäçC^4È£øÞ£¦Ôœ“¨I]ffÚD•?LTîÙZò2_c%¤w2‡À KyƒÝ5Yì™ ?¿¶¡œœÕ“ÇæŒLÂr.´ÊÓæ®'M˸¿+!àY<ÿã‰ç­Ã|…®öLµÏTûû¡Ú8fWÔkøð½í¹0ü?ÿ¹‹ÅkId¸iC¯ŠI7áæÑ¼voÛhLDm|:­• óÔm÷6SÓÜaÊÞôÜwáhÑEr䳩ÎÕPsõ†’z;î-GÛæ•pQ&÷&T$qМ…*QŠ2#I-™£ÕæDhH°.cÍÛÒFKè 8.²ñˆ"Arü®I•%wst+AéË,C¾{)Îìݘ¿û½2WuüÔˆò"á’üÝÓò½7Šïê¶œáûAGLMð§íw¯ôuC_át–ºe4™ÐëPkd–N{¨  ãÐós¯(‹Ê¢ö-F9¤/Ò`oiÞv/¼3?vúý£·Û0Æ*ö”ï•“ ùwb`ð|%Ÿô‚¥n?è‰ÛWã’ží§Ù4L{AyýÚç´¹RR·3íO$1ù›m|œÊ¨P9Û LwwɧjÁpÄF7KUÐÜýA@‚+ªíþöˆfÓ"/m}†”ö̵ö"þÖ$ƒ¢Âœ§%×8ˆ3» 5Š2ìŽo²º ÖSNÇÄᄃïà Oæ T¢ÛAxóö›…ñ¿w»&D€‡,œrÃ[Ç·æ`›Ä°Žß¸¥b6ÒÚ2)ç"Íh¡^–Ãa«=ŠŠ Þ6ë¨dᇀ¹É'¶Z¼Ñ{œ‘¦Ã žÁ4 ãh*y¿§ zÒ÷iˆ’¥RÙGUH *ÄÈw-@¹R¢…èù2Rè…Uô¨”tðÃ|)V…/9}\›vhÎg+wÿ†l`H†1¦‰}yh¨œ3ȉ R â7Ç´¶â{GÀbxNlMÇÊÌqaÓª8 âHpw³~IÃ{R)¦ãä&Jë'e<&UB†ëqÞ‚³#Ò›)hÜ>ñKºŽ„GRÞµ52§&PˆKóÔT –„znš¹ «MÃÂ!v¶Šß JGÙY R-¶/„H%$ú[ÓèüÉM•)gh)z ¸ }I8mNÄGÔÅÁÃïÒ[’3ÎÈD…aΔ¤ ;=!ìHú ꃣ„àw_eÀax€˜ÄjôŽ}"‡eINä²Ñ”I6›²ÀJA%Ÿ¦æ4“üGg/påVr’dIÓ´ãø¢¯Y/Io‡5Ç0?„QÎg—ÿöí4IÄsTzù“$Ä=lñuËc¶æk,>ó˜góÌcžyÌxŒØ£–cDÎé~•cüŽ™Ì÷ó˜E&3úg1™j{´9SÝ1ÏþÈ|æ›M=Õ1B»ZŒæ)\Æ—é2›q¾›ÍÈ ÀiÜŠÓ8ßÍižØqÆÆófã6˜óûg6,øHÂÙyµ;þƒEƒ®²R_ͦZ‚ iÔ·Ö|îr1ÅT–íPvùrôb¦në®2Lx Í#öAšÆÓÂ´Æ"¦_uІ#å,M¢K³oÀRá+ºá²™ìƒÀ-Ó4šÒ„¿›Ö«€&%…ì©K=†V {OÔ»M³(HtÁµÜ» qÃ7„ÒÑÈ.šSªOϪ•À›:gùä·òt«Si[˜Ü©,·© æm ‹íH7¢=sà³NËl ˜N¶ÃÑ;°,Bö‰ðFw CYUª‘]À“¤© €œáîõõõÈà ‰ùáÛæ‰Í ûƬðßm®¦UÉ56Óx› 8Ÿ_Ìé"uØ–©cë3x0½÷¸¤³L’„rw3GMàî0J¥É4¥Ë«Þø*Í®ì„ÎDàÂN8Ò½{}“{9ñß'q²xZ¿ï²ì«¿÷+¯·|­WtÌ…qTHNË'ëQávNåØpþ8Óú 1=Oè÷M(x#r²_»¯¶½9 ãƒ.˜Ð’4à¥éîóA>)pBÍ ä“ÄÜ^©.1sÛÈYê¸é-]w:[ð°S¸å°(ô<{'f0±1=Z’ùé#<’"1d«P Ô¬fùßn0毽2¦å«=&ãùCIþ†[jš˜/=¢°A74'KU%¶Ÿê  …4†‹Eï¹ùÒ éUž*½`b½x>D``¡ g÷z(_z¹.H#köL%ixg† gú6?l×=ÈHhJ\û†ÚçïóMe2öÓÈ'ý' Bž \óÕ5xElŠ£øJ³°Ì-*²tóµùÞ9]òXgà@Í@†ækÏÏf¨ý4‡e’NÂTðWÞæ+ws{Þ×ñ~VIMBþ |Ñí:¦ƒpf¾ÚϘ§LX¼µõ8•éÙ'™¸ ÎtLš%H¸1wÃW…° ¼Œ¡H.>}GØ—ë–cäi…=HØïÊѰå1{iv‰ëŒ‘¿ZÞùPöj5…±ÅÅGž»Ë<¾ í=ÿÞ’'À¸3–B€êqªx9½&n3yÊ¢‘œ•~[’·¼·ì¯šÏ{<fµomŸ¤0ÄEsiZ$nI¢€@¾Ä¡eâÆ¬ª=PÄ8—ÜoWüƱùÎRâ G_C$mø‹Ÿ!X† ‹.µ€—,™hˆ u“CŠÙÇîàV>õŠIî ÇÝ|0‚KU Çäû’N¹û¾3ãf£*k:q× þÛ—Ɉ˜/‘Á · [ñÏãLëýþ¡¥®v·Âû{Nu˜O=Öôt@ï–Jo2ƒ¹Ê³Ó%Ý—ç©§gº æH͈ëUG»Š$Á]Ÿþ ziX´øNí„}·Á?ô‚v2 šA’ùÏ5£–æSxYÅŒgžlÚ×ôY÷´aU±qªö&ÿš¢|À8åôz`ž¤étÖø]ðåžËáü€‰kx¦Uu_•Q8bƈ¶c|:ìÊþªóɉ«Œ¡]0¬ùIÜ+|f‰/ìï‚_Fƒ ±Ôa>\pÄÛfgªäòëq¤z#àKT£ú@dÊÀòlÀHTÑ£ÿa5QxÃÉIYI3¶›òWÔ@§¯Í|¬Q¨ŸNµ‚ju;Aý¤Kšœ™{Bç賈ãJïv6Sœ5Ouª˜³0…¯*ßÿ £‰—uû|š‚ øO/äðÐTYs¯ø¼¢i§iìÓt0{è|0êÚø[r‘˜bÞ§(f‚?½k5* ÿŽ' *²½`Uš=|ºJëÆ'•ºHƒ¹îmCcsÇ{3§ß ¿Û¯Zö gY¡fQÙwÃ8tÕI‹å¯u÷´ïC‹9[É›.äÓÝ4Ö¦œ¥UËL;5ÈÐÚÜ›ui{ÐØ²€"s?îýæ"¨ Ñ=y}[GîJú®+?W#D¡_³Õ\Âër¨7$&Ô¦—@-•‹rŽâX.Úà"+`nfl› ^‡‘FœÖckÁ V•½Ž¯ÕHd]Ä…S«ÌÊ Þ¥^".{4ÖU¼ôÂÖ)óSZoñ“S%³`EôÔ’rÅ¡vÄá3ñ6à]0úæt¶Ö{xis@†O})$mç=ùÓ Ž¡tJQ€j4` +!Ij䉧ǥ?Fž%ó†øÖ+”O²,kJ|`¿ì§óÄòѬWdzè%‘M‚Ê6-K†>"Eo<¼ñ´% û(‹‘F…œØ1_ Ž/š¼%Äð}Th ÝÓ&,pó÷¦Î Bƒ ͨل.µ•„Q¡4Œ17K4•¯ê "‘àÚÅ7 ÅÑÒDTu*?)pN…p³uw¡ïcAm›ËhâÆ xEUÌøbZ~óaìI0 ¯“CxeŸN3¯­5Ë›}|º³ºJSh8Ψ€n872ȺŸUæÅ ÷’öØVÄ™õÆ(¨€§ÕÔЗH1ÓËšüª³”6Î_oIÖÐtDÒ¿Ô_ìÝåÛ$‰U}‚r@7©{fŠ4Þ{ww$W¼‘¹Ò/ü ŠäË$n£š¦ÏJÕ<Éè˜õõh{§ç·Ãþ¸<à‰ÞDO[ñ˜Pk’h©KˆpÕ‘Ê÷ÿ*·=iäÄå âÉãÊ Ä×s9'G°m ¥xµ‹;4¤×:ñ¦Èûí qÃ^û†Fxn¬QZ.Ìcîå¨raÒÕx éÃ8ÿúý3c]oŒf•ÏìZùéÀE¤5Ø+-ºùØr›=m«›‡àú׋uBã&E]¶"Îçûœòht³Ê€…kUïlHl_ìÀv7[|¾/ƒ é9§Iå1fC+›ík$Ž¢>ækÅuð?bØq÷’¢É8¯nÿ|ßÖVÆÓaD‡áþu™ñ)Gyp½ýöm//J8†½(,«óð"L "„蚆 …_Oqgµ75üc/ÏÕиÙU#þðæÍ‘k¯©lévÕ†®zøþM]ßúÄw`)µ‹’,´Ê5[Ú^æñZÜé¾ã«¹w¦Ú<àACȪ“çd‘8 UþîSñn>Ñ¥øo47s‡×ö÷Ðz³£Ç|ëþ§½T9Í­ú„à nÒo—h‡Ÿ.úîE&¹+†!›±óOSóS“¿”¡6ÂúÐýýÓ¢ Il¸üx€qX£"@¿5s×B¥VÏi…€TM©KƒtŸiγøÌx•U/í‡2ä"3\7Ñ;9 Àu’–£±S˜ª¸m´-ãºa|KÚù¨ØZ@™õ`æXжfnz›8¤þ glÇ¢¡Fz\&@Ê6c8·ÉÖœuܲõrÙ ž´ó’6†`#œ\œuäÇŸs׳óbdzÆø+ʶy[ÀØa\tœªSÉè®Ð°~Îåqu™âÊ ú«#¾%í¦™f¶$Ëì[žKseæŸõ jæ õÖù°„âWùsÛˆn Ï®÷Ãó"­»·•iöcË êÅÙÿÍsaÉ”¬:‚–<û‚½ñ‡Œ¿JDÚÜöÖÝßÜbRÑN§½\Oʬá¿Þ׬"PaÆ:ÑåÐݵ׼êZ/Lh Ua…ûa6â­’Œ&×°+ ø‚™ =Î*­‚¼iql!{Å~ô± |•û½!ÌÑÓñŒ'>rxZ«É”ñŸ‡/¡Æü· ½r õ†¤±'÷Ú“0ɰ˜»ÍÆ´î.Ä´š†i0CbŽTÂ]⑯¦I»]W:§Çkñ‰ñ¨çç#¯¼%šE)iôªÕö³b&C.xöBïv«Y_ë+­¤ëï!Jc›ï¦ö}—z:o6y¿wt¶vúá„–Mzù(lÄ‚ z¡dzÓ¯ô¥§ü¸1‚PˆÔ°qªAÜ»‰róŠò6ÔI3røˆ~¶+¹sÜÕƒÞŸ¼°›wÓz¾¸ÎÔbCd‰«Š\¿År}tyxŠi¡¼ª6å=ùãee¤ïçÂJö‰g–x }ôèE‚Và£I]e)–8Ìâà À¢þŸº¿O-¦ùÊ2Â<º¡^ÎÔmÆÅ»š¾JÒè¼·š‹c rØ|³™f Eøµ–Â}s¼?µë—Ôû~77ŸhžîuÔìîÛ6ÂøTæ/o¤L}O#ú…»8Emw¢kã£iÀòÄMdD?ËW:÷ƒ;ä–å^>.‹"jÜp­€` …Òv°àÓ‡^JRm¢«ÀYýi‡q>>QþÎNJ ˆ†!×ÚÍèµe@‚¤¥ÔŒ†˜§šÊ2§1“Â’p¹Ôˆ¯ÐÑé‘xÚŒñ¬ôIþ÷÷ĨMÔKht%œ Ð×À×'nxËÑI`=øÒS±€¸yØ=CùÁÝØ|êÙÍD¯@~šŸé)tPªkúJÞÈ×Þ $¾¬,FPëšo¾B÷èç˜ÃqóIš%"E.Íé@Ìg¹ïMi)›}"ßîsE<éñMÚ»W#C™Á®3§ÛÐA4fÖë›O=}7%†ëùÔo™¥žKÐ;Qˆ¹y5ΰ€kÊ)-׉{Ãef™'Ær©â,£Ç&ÀHãi6À‚·;1`FzA¡‰Aߎ¹L®n5ÿ¢ÆôZŒ^>4/ŠqH4þ…^¬äqÞ*’ÞU“ ‘{~/ S+Õ$A͵û ´fœß>˜v3—«kÄ<ø,ûC¹:ªh78×z‚7¯Ë%Ûö¯¥Ï:ã=ÿíÝëàÛ1ŽýÖÙqN %µ4©¯êÕbùÂ2VzN&t6«’– ¯³VÁsäïDꆶgÆ•ôì<¥v´9ÆæD>‡À vEkÏ ÎœLõ‚pR'Â.æ'=°(„#÷K0 4KÄÒÞ· õç{ ×Ô?üMº,TCéù€SéX4D~II¬b fJiA§"±QÅ%”ÚäV>õH¾Á↗߮v⇴ø«¦ÓBþöÞa~ZóûY~Ç4¢ $q6ìeIäAm+‹È›šg/-8´ÄªQêö‰IwÄ 5Ò…ŠçÁ=ÖlüõZI´yé¨Õ ešão/ä¨tŠt0ï^Ùf°LÃO¦'x(}ë•þm•?*ˆ8Wš¨”ו¤émRY¦%‰x4Óõ*–N=¦Ä2&\í8í©¿—Ì÷lƒáÎHÞ»}¥$…-¢‘Bòí©.U²a¡ÈJh#Ÿ.I;'Q‹+,ï"˜§­oUžYl÷(%¹dLŸFòSÈöuRœmYF¸ô‡6]¼éÁjë^ÅÁ.S&5©H$ÚÍno_÷4ÒûSToˆ¨Ò2¥½OÂvн¿=? ½ „t9 «ãÓV“îetÓq¿¼.+í§’-’æ ³71zvÀQÓȱDô6m¤Lê*¡ÀjÛýB“‰Òè»Yœo½¥>#$ü¨ÆœsfàAÊfjæË§Þ}š·zÐÈæóS⼇ÂBo8p#h¯‘^~›5’¿¹Ò–4&õ"/=ÌŠôª^Kfèk"’a1/ ¬ ’VÈ)†»•ä÷½ü>Vy…ý–Ü÷´šf!Ç×^ «¥ýÞ¤GÆ2"Êü!Ý’Ì^Ñàs´˜ð×^/’`Wì@bÂ=ùÓ¨'ƒ´*]"‰Þ.§¯s,³¯'xf§y!"±¹ &B6Õyñ¸ðÍDJ8bóõnL$â!ÔÝ„ ÙÖÝKZ(cmÉøãb·UY™øñ‚ 68‹è÷Q/&5´!4S‹2sO‰ß¿›énUfm½íŠøEî~ ÓWý$ Ïeš„|®}.I,§^nð·ç+y°'Z þ!,ø+˜¬=F"3J6í…|êé"I M‡¸ÝœW%‹ôÛ³rB#ñdúÓ:nM“÷ešÓ$2xwH’e1R/ÍìæS‘Ð=Ìô”¥Ÿ@>, ªùÁv!¾7°‚K”œ™•ÿ +–»{ƒ?Ì[IKò²¬ô9LS (;Ī@鸑K½(ÈÓ‹ý¢"¯%1韻¤ô½i¸=okíŽuWú/å$ƒ‡ Å:„Ì@LZÑ(« ä„#°o݃ñ ÄããOoPÎ8¥áI.X0³Ã4óyoìèû"aÏ aVŽ¥úöF6Ž ~B½Ý@͇7C1º ¼‡æhŒàZ¸8¬!Œ£”ØN˜ ¶¢$ÇUZ±ŒÀç@ÏG2¬cüRð‰_Éæš4ÝKØ•£ =`óq”1 Wfÿe·H†<€ý<€E¿“@ÏßIŸm¤•ï#Ÿï‘µäaÒ7o,ßêvO]( ¦|hµVÅRÒÍßG‰›ž8ä0é"©–ÆüÖÛØp7â'£ÀÏ©}«žÜü¼– 8@3L”­Ôã³øRk>óŒ?,@þÆñÌ}Ÿé1[éËäÇåyUsQí?ψCÖLÈjº6}<†ºí­O{ M'Cå£_H|‘Åb?i¹vŽ?/Vz…ãºy ÃÇV©n þÅzŠÅæ’ä8]…Ò뇩¢mT¦/½;’ñTÒ–p愘¬mo¥ñŒ„ÀF²¥ÐgYoœÝó!8Iê¨ö¸~£]þÛý¿,C)fZžÈ§Þ¢ao_EŠ$,…tÚçÄÝE1'ÉØ^'1°ºNz­Ç }¬í\HÔ é<¯üïaå[Iß•,Ç÷?‚ÙñmO9I×âËÆ|0ÒWŽ­6~ŠÕàÆbˆu½=×·‚…^Nj¸ìØv©aáþÔH¿ Dý“ÄVc6Ó™Ôâ¤&<þööÖ›ûñ¥­Š›¿ä3 A8çrÕïÀâO¤f§†ÃpTZ´rN=p¼ 'Åmà/¬ÊHi|7ÓÀa ªRdvk¯ ÿþ–Ä(¶œÓÞƒN‡Û¹'½|2ƒž>5Lœ)¦Ååžéæ™n¾•nZS d³šGÒýÿöÞe¹$Y\Ÿ|Š´šEKÝ@R$%•TF;^$’%Râ/RRuoúd€$òvòB\ü«y‘›ÍÙÌrV³k›÷ÿÜ#òàM§»N7ʺE w÷ï{ŒŒÄmOkyZ%àkyãÞà(mæù)ê"86¿~…DZxˆÓ$¤1.Ü+¾^(-ªÄä+ *|P8‚l¡8ö¯o‚5c‡þÜû·¥Ï@襪ʔ[ïLÒ2‹ªñ˜‘Ê…¢¥þùHš§R¿®}Š·)“W‰c§˜¹ ®mN¼Íh.Ó¥ LÝýi8&u¾ÈÜuº7Q¸›Q{ÒBÖrƒp–*¢&Ç:Wžë.¾”c_Šù˜‰ 9(h¢rX$ü€ÜËòM= "ûÒ>*à¤P’ñ#™g¤ø9Œ. }p)p,­£Â¸ÒäÄ"¥¬kÕ´ ?unÏÈ«’Ū å쨑B,åðð–;ãÎt¬¿hÆ>10¨×?.–§5Øn™æ+×%ϯ‡¯K¾íI­N4•ò.´å½pß.É•ï²B~Uðm8kë‚*):ÕMÍm¬w[ê#@z¡+SMÒTÓö’9¸Ý’á ¼‡’H ë¹áH$?87ÒK¨q4EJC9¢ò+Í|x–¦ý}…h¬ÿ•’’¥é †éyOu šÁš2QÕ6GF/æ¶q6ëLnû@·ížwú´õSíZ4Aå]§Þíu1›‘ÙOÏBº| ë4°ì-¸Ù$Ús¯WY ظE,ÞÒÚXÎX œÛ*ëwE—7§dcF[ËåûH¶ÅIslzÜ.Ä[»}ÕRlªxøzlÝûÄ×H:ŠáÒ ó^¨¸ú%÷ B~.39@Ýî—iߢn[0#8¡Ûœ¯/3Àæ<ÚyÙÞð°'äcšWùÈÊǽr“*ÕÊuº a!VÏ¢PI\z÷ÀmYx„l4Í1K7 tÕ´õ.' ^vFtÌ1YPC¸Ôºg^÷‰§½WpÀ'» @c»"÷ÃTÔìòßnhÚ½}8˜wwƒHøméË`µ ¯­¨Óhž$îû´àÓÍ1¾y#þÖ=A°'¥pÞ&šÏJñÝò÷nÙ{fLœ©€!?ýa/yŒ2¹â¥C¾Ð­õ^|ßùõ9{Çô¿×T½Ïà?(–õ„l >šN9ƒ£á²úsaðl<–.ïm·3Ã÷È«“ y¹Og-/×òr-/×òò_\^.:7ÿ{£1­eáZ®eáZ>J.8Óä)hÈ9 pÛhyÍÄxOøµ›­^]æºÆ\K-¨Ñ×· ¦ž1ÓébJ~g2¾°C5 tœÒ,”N« ÿ$-܈©Å ”ã3íU#Ú™tÀ¨ у©•ÙŠKÚ¿£eünB˜ ”•ë uw‰ìiÞ^QµAXÀïoØ!ÒÄàâܦ]÷*,*6l}iîЙ{t`ñ$ËF6Q#UI¾k [î.N¢»è~ÜpZ·Ümcºr­µ+yÄšëÜþ´× £TÈô6_»ÛÞæË[¡GÎTŸqÉö¼v%¡Ä…¶I°êÈæåðqÇÊy -T‹ÆfÔê'í”ñ¿cŽJ¤'.:çk†e%ŠøÃ3á>ê0Z¸#±wdQU¦^ré·r7îIuô®˜R½Gzž¸Ÿ"ÐÏíh\ien¸Ï"¯Õ8}‚$QçrÞšÁùø¤ äáõD_ÑÖëî\áÒ h.™Êê]šõï>ûr¾g™µLZy¢’(ÚŽzú¬«õöesï¿›âþºÄlßËzd¥LA%|ÛÓšàÐz‡k `¶ð33›y.îsFÖ´Šåö¸M΄Œá¾/‘)Öua@ÄMN‡Åä¶Úh#Ô¦ Õoø%vóh÷„IRe[ìc×´ìòr ‹+8]v ;óÐ9iê¹"˜˜œO¢½ãÔPÎè c&xôH3’C±¤ÕÀ4ì{÷˜ _> 6!-g†Uæ ] •ƒlãiϰIÕt1Í9tÏ5Çÿ=—~¹õ€ç¶ZPŸ±·õtÓ-A ¢gpDBÅB›¶CÛø„õ‡“´ö]„*~ˆ’ܮ狭sûÓÞHàÜûŠ”M wó%iÍ/´/e Fº€u죞Õ(ñt±½þ¾tƒ‡„1ØGfÔ0·/b±äiuþ”èÙO|”ŠZRÃ8\4˜é<Vr2MùS¸Ñ¸Çš¸÷.s‚ËüÃ̉9=4é¢îßZzÆÅÀÉZY’Š›&ÅMHÖÍŽ¬{+K[<¦Ó"‰§Ó2rE•:}i£Ûµ_¹¿z­Ï^òåT(ª®B=Ã…YâOñ·LqðžEÙé´L¸(P³ûnbXá†Užà;‡$Ñtå \.Ü£9¼‚°T'éßþï’T†KÍL?êú}š¿CjgZ¾K>µl:¤n¹;ãKäà釖”ÖYÏ7ÀP–¢¡€[Š”0vœP¡€?-23Þ4Þè‚ ’ ™@%È ¿=éÿö¬ÿãÿïçTZŽR‘0¡o¾à©´\ÁÜʽ,ÿöŸÚø!Eò“kL*LùBH{*ªu?“•›Þñ›oÁ,F­¤b•±Æ|Clú]2”PÈ…§2+#ýžØ@SØæ±Y•ëvÎeYµdHéŽYÓ®Nô¹©¨oŠ‡š—ˆ‰û‚YBØ{T8ÑIÝGàX GªŠÌî)2rbC ŠpÁ„ Æ:¦̇¢«ÿâþ‘]JªAF«PGÎ’…RRA`tÑZ¡»ší O©Ùíe¾@Ñ)hk÷'°Õ–®*š‚4…c¦¦=õ÷…YÐ÷Á|91>¼5´O OkÕòðÍ»}óÓÞŨ³KÝtç¦G¡= ^»ÃZ(€“öqíø3{­Ñ˜æ„—¦QïQTD÷8¸7¾Øge€qôÜß…hç°zâæi^û ^RSÃ#f¹ñ‰í—åÛ7–Õa_/Æœ›‚m§Ë Ò·®°[¨º•ëk®p­$«:ÖK=›ÃË BsÄ»ô©½=bQ+ỤZ„I§Hí–`™º i¿Ù0…Á`4é^MÉ !eàà󲪣ÖÒúGVè8îL1ÿÄÂ7Álò ncôêê jÕè©–“æ0ßPlZEõ‚O‡i7#èNO¤ïº¯„åuc°3NÓ¹j 3 m°…¾¨“ÀCÅĆÿ¸2W‰÷£Î$&U×ðº1iW¯»NMYÝ žö^®˜Í—‹orÓth³^Þ®|/¹ç‰n%P¹ø À¦6ÂLØ|s«6$¥šøÜ&ÆÈümÐvQËI‹Éi-€…’Z³'tª†Ô0ëÞ<'µ ¥21€ã7Û¯L½‰Á3lÃãÝ›dÏ·âÑ„Äh!N°åʽ‰|YÜyžÀ93zŠ?ƒK5®:ž“ûBå߇±X K@ö>Ws]åü˜ºpŒz:1ˆ÷ãØà{iFÝáï L¦VFSˆÚhH‰« X„ݾ'2ùÐeoGeSQèS¡ÐËf¹7£í·¦¦ðM,Ù[Z° »e¨³wVù„\ˆ[âdÚA¼/¼`¡©Ù’i'Ã׉|¤×Úr>6½y(ã‡pÜw?n’Þ ö1œ÷¥9ÀUˆ Þ‰éÏââeô^*Cjàe´ùöÕàZ“î–ã5j ÔòšÜDþÞ°Ü÷pâ>’"f—Ú$@ÿ4/“[ˆ¢3š¨‚ñ|UUL1ÓÉ:"c˜¿Ñ(ô¢šcÅ2ÉÌ«ÕL2 WÔ‡0'«‘SóÉpUɼ¶‰ehz“t$ñ‚ù_oçK€ 9õ¨;2H4—>Ï(Ä<\µÊÞQyOx¤R4´¨.ñEø:b÷AXÌ|x [ ‘ìI0’²Œ½<µ®Ç0“ y?­§÷=0?Ð.?§nQU‚½|:ó.ÝE×þš’¾§†ˆB¿¢þœU—Ù­#Œe-ŒÏ©Á$rŠ”Õ 2ùÓ ˆüÿóNƒûJÍ>üßþ¯{Äß—â!ð¬w£ÆÞF®tÛü¾£Æƒ@ïw}? ÿ{¯†§«þÝ3Çúÿ*Ó…ï¸Ý"·=©åW£bKÚŒcÒ­7÷13¿†y‰HmÄ\ºçb@,2ÜÜ”÷çŒßZWsen…»Ê¢'˜sk¥B6&磉æ;jr»ã²íMå#Úd`Ú€@šÁWغ™„YápÔ™脬ÔÈOö¤œÇ¦Õ¸¢ç]\œõœ÷ôOÃVX,¶àËçã>ÍrˆP¹XÐ@ý°Ã¨ŠyâOò4Iíû èÖr”Ó4=¦*ç¿g˜UæÜ]âM…jÝ‘ó÷‘VxÇ•pµ÷H˜ZTokýövf†{÷Keº'] ñï‡Ed°Àu´Xäö~’cÞ¯óx÷z¨}_A ©"AëÆ²U ¶rµ¨=ôe±§§ù 8Q[æj:àl“-{áV¢‹EôÄ–… f§Ë»äìFÒ•'¡®HjøŠƒ…b¹ÐnÕ“~;‹œ—ÿ«õò_/ÿõòÿWYþ­¤èÛvÿGåVüs¢í÷Yö¿‡­ú®õù§[#©¿|…ìAhO ì˜ÛãnE„£²µ9R­Áô»ÛÓtÿ½‘Ÿbê.þk¶Ç%b¨¶àÆp¡c?`o[o²kòxòˆ00¾—n}@$˜½å‰‡°V¶•¥·å½"±÷z)»}õï‡_»´ wá׺ô¸·¶ÎIî-ÀÐÞ[{+R­cj-PíÒÆ/Ç©unÕZœÚåµÝSë,ƒ©µ© ÷@©u Jm¢Ö [ˆÚ{"ÔðIz¥A³ÝdÑ£Q®ç5 F ´a ‰`O\£3=ìó`¹/d®ß¹öM¿PbVàÐ¥³‘/þ(!7|ÂNµJ„/õçˆäo!}4E°”k­—¶ò*& ÑÜÇG§'-¥˜ZHë¼ÒÜ“¡)žs&áô'™þ1¸!´ '!x]7=àÌm¾yãmn/+ÕlJ-6%g{àÈäùÊ4§ãLÑì8u¤èµ/AèN ˜;Me,ÛBg%­4Æ‚ä¬z2IHù3 u­øˆÎt•@±Ã‹êouí š|L#H+ÑsöæF¯aÉ$‚±cÑ2 ñN b,µIêðTõœÃÖ˨0(Ü(õM“¥i’EJTas‰r­‚–ZãP¦³öxä»Yú£‰­/ Þ¼‹—ÛâÙ† E£~9î¾îU¨l$êÜËÓ¢I°¤çî͈5Å1^Ôôä wX…QÙGŽ3?84iF#¡0Ç=·õÚNÌYÙõÕ$ð#í†ppÏXNBõ}Þs,‚û 9íêÉB[gÇ­n]á/ŽóGîþïîKnÝ+÷ÇïÝ?ž¤%ͺͭm÷ÙlºÙsgÓ-ü³ýÜýã§L'Ÿ AXYvŸ}R´K=wþxFs”jˆv÷Y%Tô ïDUþJ•ež"Оꢾ!ꢾó?Ÿ|pþøÛI΃½mǹ@šijËñÓØ€J5¤.Χv»W*ª4;×NOzîoòSà„~þÞ.é ØtÃqÀè!´«~S• œ§¡ÙO›‘ÃØ’iÍÉUÄIËa,:¾­žK{<ã æîadá{ìSc†#óó9‚˜vKD "+ƦËŽö[}gŒifc±®zblt¤TÞ3)ßi†`¤µóô8O#dW=;9“Ï=@EU#l«¼Õ#E„5Å%Šé§Ù\îxOwL©|ßYÏýtòÎv¼WG Á§U›_…¦W 7ßпqXø´§V£‘wK€hÏ…_‚¶A1®å&ÓoÞ‘wêAü ìÙg5§µ töFœÕò«ÎS*sæÓ⾃¹*š†´_ì†,ußåAˆýØÌ’‰’Ü é!i‰éœgñbÃl8䯞{HSä:-­'q?€=¢¥¶¤Ìç”vÛ㉚R¯±'Nr;]L5 †îŸi°D‡WˆÞê¹\{“;s‹sÜ=T ©‘À0]òôV$W9¬…‰¬1g>4[½{bB÷º~e¾jÜtϽKA{þ)‰ƒ*PZ Çœ~ÁHŠ2"Íœ¯Ý=Ÿü4·ÈIU^#s+Bò9&ó§!«ÁTŽvIöæ›Wo‚\½:ĵïÙráÚs­HÌ ‹’º¨bÿû÷ÏЬ´"‘8õ¨».ôo®þÎ2*7¼A¡Ýzïýó¯¶Ö-;Ú &À¨PQxÍ]h:™6±Èý¦Å­-ÙÍi³JiA'ê–źËA­çž{Žø¸uÀ÷rÄ IP‰t÷0´½v ´à«á¢H:ŸžtŸò5Bp˜»_«i)=¢÷Kn›³§è›Äý†Ùè›­‘Q­¦<XtöÇið?¯<Â*_·*2Ë/¹õaZ—¹çñÍÍùÒÛò¶ÝWˆ«ë´ô½éQ÷ŒJ±y`ð©jÝ—¬;Ù¢#gopâ¶qëáq3[™aÊ£á²ÙÓ*Ö@Ü 1,[ÉçRbŸšT"–«) ~ Ÿ™Ã*Ü–êÕø)ðª b%yVè*Hí4àõôœ‘æàà&ÑŠŒÔ!Mi™œO{žŽÄÒû `†ð3l)÷$Ÿú¦»d–1r“v´e§4ò…Y¼?$=ô¡÷ਟ¶éÅÛ?­JNÕæ×+oóVòŒ/~Ã:牚Ctœš„AÌÛÇIuqr^{¬r^Ç.ØcJñµ·NGðljø™7G N%ʺü»çî×ÙÁeóPSµSŸ×Êy1tþ–»µëkÿÉñ»‹÷d‰ã^KB6¦}rUªçÇpš4BWy:WdJ‘=œ²¨a˜ºïÃaº²¹…q*g×.0sOýœ¸´t¸%°—pÓ¿ZÄ ý´GÚ7…ÙòöhWý§½…TXm²aMòk¬¸#ìÝ)ÿ¡ÕJóq¸å˜¯Ïùp[œ¶„!#ÄqU$^}±âBaàÞw1í.¡¡Ÿ§é€1f(LM‹=*0\ÀPßÑp¸&f $í"c—™nœ™0W¾/fa- Leœý§?q#—Ë÷èáb{Ê}áýÌØs‹[´†Ø‘†CaLL7ц 6ÁO¦ñ~uÖd³ä ±w ÔáÄ«Cx0­öÕ÷Me7‚‡ðÖr?é$Y)îF‹Ç5dšUQ¦!Wë@¸ëæžË}vF›rŸFr'©±„S?ú’ÐpËÉf’É%f¦ÌŦ Yàv§­N¨s=W"Å´l.c" “AK ZÀ.³íLùª nSEõÞ'΋€}ëDX¢lÈÒ5Ì-m+À$]&î«×¯¼—‹‘ð8λÀ Þ§þ$›iô4îEIýH8+Œfj×'"'†;D––#Üp6ÈÕÌxK°•<-á¨uÏöŽwáDÍ ,¦8 ö•ñO“BcG©ï„Á GŒ_øÕ±B4Z,cÄÚk?T,ö'P*H˜¾ß½p7·66_oloõœÏ:,tþþ¼ç~¼À¿Œ{öþïJ- µœªÈ7ô 7h6oXÊÄ îßÏïvZHÞÒé1¶4„C†5GÿüÛŠ©0†¤ OTâOyÜmÚY  ¿z»Ãh‰Á1<t§‘­Ö;tDö\­ŽZ1µëfæç ~®LÈs•ù/€Líü„žQLxEûv^ñ½ììÉ/HŒøé8 m´r§zŽm<Œa#Hp¡0àú;)¸ÑÜÎH†Œ+Aòã3ûÎsVɦÕ{z¥»Sø“„> ŠIEHÌñÃFûéH…˜;C|c´‡ð»‡pŠ)§ÞLÁ:’WI¢zôðE/xën½ò^/8‘IG:;t·',¾Ùº¢ò@]öÿøÜq‡g‡(¶_påü´çгú ¬løµÑùÃô»UÁVtà7ÄLä ™iÝé³)°R²q+AU“•xä¹ßT4"33 B ]Œ7_ðþý´^Š5{Û_£›Þþ¼8ËN‹cµ>òfQ‡°õ*æînsþ.ëôí©"e‡K=£>;}gH¬úÛ§„Õ>Káº`Ù`¤NÉBPá$Oú6îÃkœZ°Ǹ‘×¥ùŒç2µ+>ˆS›´íXÎ6@xKßK—·$‰37É(f”*"õÎÉ5gÖ•ò²&¨GüEΞ¦­×Èqan·GSR¿è”‚[¶ûhí*‡5\eeTŠäGÓ ñ‚˜§‚Ÿmd‡ ïûŒ]Ç>Í*sÅsy¤˜ÿ–D9Ѝ†™"û’ý(ün¢¦Z.$Ó‡1ùP¿Ë àC"¦„ÿyç †$6G¡U™Ñ#ž]-|Fðe·0sµñóE°“" ˜t´•Fžf9µ ‘‡°¦úør†ŒþRô £BFÚ’N† Æ.jq’¬Dž~þÞÝ¡¥Ú¥Drû´3Ðdȼ9f‘ÁÛô^˜õ¶1ÛÞâ$=ÏïÕ?nþâ^’i0Ü '¢ZÜRÑa<<@n ëß„¥÷Ý]Œ!ÜÉ05¨I»1ƒyl½x±i*k‹™[ U#ëÛDë’öb<Ô+:Kš7ÏF†£}ŸCßÜ3c›"IAÆ6|~‹§¦´».£/ê/â\C‰)sÏ8EH‡çS,®ª­²œáó1;êó’.k|͑㰷ÑèZp±Èြ¤qüܸ[Ç Ηó=§(ÓÜ€¬–©ŸF$êÅNæ¸]Æž(VœÙ‰€uñ> tFÔï¶Ý>ÕõRèìöú|ò‹ãLÊ2ûecCÅàì ;ÐnÀ9±AO~ÞÚ°nËl’9`Òæ€ïLÃ×”qû}4¢ož»|‰œûiÉå5³CG +£Aí Éí@\Ôû#7Žè›Åî6÷ßeB¿«`ÈÒrO À ïøòa 8´ kÁ(×&·¼¥g 5B­[ű ñÂÎ8È“4ÒÚoÈHrW@†¶ŒSB¼ÀŤ]Zº½~Ô^:$Û@U3hA ÓaÁ"²”…´¦¿‚ßEfúåË—-¶ Ð莪qêîdø|óqÆ DI;*ŠHݧmHûe"å¾)ìiîž 1»âÃ`ŽGiÚŠ[ßc¿æçžj°aLWe[ÍÃyÇQH‹bg8¡?ô0œž _ÛqÖ€q‘OTtHçm,_MÑód*Éüɳ™j‡ªWø¿âØ ÁêÅå ®è}}O·$óEÅùíª”,/Îè/Ã1pº(liîÎ÷)ÔØN´cR»=ÿÚ´&Fc˜æ°íŠDÇÆôÇd ³ ‘ÄùuZMeÊÅË*¯Ó ­ :OÔHåd×I> Ò"J½1™-ýŒÆ>R^µ–Ñ,@$(œh]ÀqgHWT1–·ÅZzÀºäãªu2ŠRÀé^F‹ª…KpßsXÀ#(cÆÓ˜OƒX‘IÎÌ™*Ûös CPÁÝ¿“Ë…A–ucò½ÓT„wJ÷炵XƒKzúGÏ:©€ŽÉ™/hOÜÀ¹ÉM{ªdո짠 ë¶›ãó²[­ÄÈŽÃÈË—[7à?š›fòiŠ}ð\övàÝþÌB!gU¿5vÈB?¯ù|¬Ï*°+dmRÄôó-&ƒÝÌìæ,Û¬/MáÍÝlÅÌ[1$ÅßwŸ†A‚x_T?wekœmÇ=‰¤¨lûˆü©f!YWNm ˜§¸¾®ÍÎ4'媱Ù‘$&S÷s5 A2–óßA˜]]…ŒY‘]ÕPq„K†9Žš"€÷ì$@(*š+OX“$ÞÞíõðþ“ /2®Âk¤úÀýµím.¸¿QÂ䚣x¡¨]\]6?®ÿžYßlÑJ¬k¥î±Š¯HùfûÛ@fËJÒÀœ†jà·õX —Ÿh(|Žã˜+ü{§Pƒ,€ a}]¦-‹%ì(š? l¿´ø‡càz’fAM{÷€ |Sô l6øe‘Á½b'¦W#³wôtÉ –­÷#-2ÚüYRôC¨ã>x@ÇîWÒ§ÙÕ’‚‡iN¦9mði0©°]Žc6˜¥yp*]YþiÓ$¯˜¿‡Öð?Qà Ùè'Ëž´R›Sl]£@$æ?@W†I<Èý"öh¿òb"YU™ä R^¨S?§Ã!fc}Wž¤QÐu2Ëäû¸dú^‡òŒà2¬H•*½+呜„-Ã’Á ÷tžÏÝÖ;8o½”¥±)¨CH­Ëò½¨÷„Q¬ûÊÛ~±½ ?ñbê„ R#l˜~7ã¡ädÝgôŠw}üX/hSa=~ŠôC2ˆ£ž;¾†çG2ö„»|F : Õ;cÌõ˜Ÿ@v|.dE=¯QV9‡ Ï]äÄ#=—Ï "iîñܳ0cšrÐJpÎB”ÎLx~€ü_{TŸñ×nÝ;…Ï~šed‚íÀ™A⇿=-«73©`ŸØ|FÐ…¸ÊÝÄÝ5Yîîgê:¬‡[RZP‹Mo«ƒÎø<ôyf|”œ-›1ÏçÍ=dz¤¬€…¥À|CåÃÐäÐ'*¶¬Ôk4ÇñM¢åhÿà`+c»ŒÓCÌñ8g [äôlÛÜŽ8ðŠ#®1A?p#4ƒ”tïÊQ``îOQ’CöʧmO ŽY1KdèÖEÇ ü£›™ŽFÌêâms{ÓÛ¾AÿEB¿ë8.÷½D”`¸$®£Ÿ¡è >:œlRó7ÐN21å‰üÑÿ‘ôœrµðØÜ/$ý$t~Ô<µ/uÈ ‹š¤ô'_¢:~ª£O G7¼„MûʤR‡-Ž:ä×0Ș@[!ÃÓß•D‚hžÅià ÉàÎYZ”ç> Hù¬ŒŸÛd9â¢-Ï85HüuË™bÏ=¥ë½Ã­ÆX‡yë]è%tÈ}Ó È¡Ÿ7¨ £óÛææç×|iU<ãï“|œþÛÎå¥?ðññ‰»A5t_ aóÕ‹ETNÑÁp2ØÇ8E[×B\øâ~þbb9cˆ†! ñ?—j(AiãÚ5ÜdÑ”Tâ`g³ƒCT8³nW£q¼wêží÷[³2VÐ @’à o–ñ§Å­9ÔôÌL”È|%¥S\Uy“Sê$d Ú@‹ðØÊ‘}“ØË‡|‘þ6•Ot”a¯Ò9'½9ˆ¤H•ÕÉUHZ…dx˜mµœåì{š„u¹|·½óƒé¨y§;úfÏÛï/$Ñä|c‹³}ý ©5Ò?òˆ ŽÓ#+‡›?²gÿ G¸õrŒu¢}àùœ«èZ'8@ÎE˜ ®”æ7ÊsWÈ×þ||zòîÏ»ÏIuæ«é€&Yêp<¶Q§ß3œ`|‰^ÆŠ¶|ж M¿ö©¥øT‘Z1žjìÌcº4…ãö±“ã¥:àN,p¡û6&!õÞ4u¿’b@³c‹c0¥«^áO^ýìÅÅ´Æÿþ¼sœÕøRÄù›'߀–)uDúx#é(Ä£(ˇMÄ¡MO}úðå×c÷Ï)8þÒœz=V— .QŸÓ‚M Z0ôáé³ÛÙ‘‘ŒFwYÑ–¥†);ÌMU:* ð’‚âö‚Íô~˜/|·Î‰µ²ö;g¹ ~ÑäÞäífø* Ÿœ 9 0*Ê¡ó¸•hªà¨ù¦"4œ§Kë1ر±ÛS;³Œm`±’Ö3ËíÄþ°êNÎÚ‰Òrwg84WÝô-ŒÝ 5Ñ!;3’¥| G6J½¡ET‡,ÓKJ»%qr¹0ý©ÊIˆÔëü/j¢q<=¤žwOq\‚¯ ® b¾¶hž{À9ÑŸ•§‘Sþøöh‰¯·´ãWp]LBR2Zc=¨®ªäçèý„ú?Îe3(ùëš=m7€'­í÷€AÏÞH;ÚÆŠb ZÈ@J´YödÍã D´ò%Wº*„ÁŒJ#û²‰= )­sÎXÖuËMÕR!°y¡©öHëõaÓ|n‡v$—X÷î'R[õó|sóÍ€¬~Z»†G#¦ùÒt|æTw†üÀZCþ0Èù²7 Ë­áióÚ»¾ má%(JAü­"ôÞ)­`4á’¿bþú4PGfšÃÆFrþ¼œkÁ¹œkÁ¹œ«§eà]¦rþ³€y¯%ÊZ¢¬%ÊßE¢¤~Kž,žØÜ¥ˆýr º‘,ЭÖjÚZM[ ÕµPýWª&…×~Kº.¢#Ôrq¹œeüãä.Qê.ˆÒU’”åΤÁ×{€\uD®zwˆJw•¨tî%*%Ñ¿k‰¹–˜¿‰y§°âdJꮣ ±JÒq*ž ¾I‹¶õw!xï–«\J% º-éy©8ÁÆ+Ó·³”vs„Õ\!1-Ÿ*ä¦]y±|lh¬¼°¾á™|¹Ùk‘½Ùk‘½Ù¿W‘½è]kÙk‘½Ùk‘½Ù¿G‘=NÓ@„õÏî›íµ°þ= 뵬^Ë구^Ë궬îs†Ï?Dbÿó®èÎSŽk¾>\KôµD_Kô½Šø$ò-‰ïí77Ó‘ Aßa@rÒî–TQ‚ÖSƒÃ<ên’Ò,~qNt’ì,ÕHÅfhÂeÒê–²î¡yáæÜ/›/ÝÍ·ÞÏ‹)²Ý ‘ïij”ýwàKK]ù“3…´ÝdŽ«¼3Ûª›·89@8œ.EsoÃÑîâ›Jhï±w:%ž)î*‰^qšœç»¨‡#*™f«„ûQ˜§ójºÇS}Ò´ÍÒ0ñU®!_h&î…š‚Ug· ÑäH°®©„w™=~2í±»õáíÍHïÝÄ=fžä¯¡ž2œ=c îÀÃø‚«Š€úŠ<_mbXÏ<½lYËD‘ç2© êÖë!£¸®¨£m~‡‡Ëáñ{j[‹Jñ¼çоËã¡ õš’" }Lå,ýs!Xî´#§c ±3Ö-Š:E Ö;cœ.åu,]% ‡AÚðaÁr]‰ß}¦Ò(¥ÝÀ'YÑ&NÃ+ÞWe˜ÔˆS¿¦E¥hn§šÑ GÈáV þZîȆ¡ª)is œ¦VÄØÕè ô•IGíò'N É‹^6;–$EóJ‹–;ÝÒ)pÑ Ù6_l¿ö^½Y†ªm%Þ~+=½‘`·um’dÑŽºeÊsæ™'ínt­ª"Ç•×;q™:†Ñ.€Ía9 Cy;ÚV€2OÏdâLÒNÏýd¹óšžá€Ý‰öp/ß:ÑÀ!F(.'$æå7àƒ}KÀŸs7Ó) 7‡iŒ¨F‹†kpªAÐkØ[{ö]çµàcÕÇqôÜ =Ÿ{àðâæd÷ 6r1 IkJƒ´å>£[Ï=gOAœYc%·6bÜn†Î®SÑ Úu Yå‚7ÄIåƒM)(.ÏÎð繬?¼ª$£Ã6 ±Œ Îì[$ýi“+Èœ’‹–ÓòN™€—[Ý«A½‘lIb|¸5M¢ü$û ì6RÿŽá’.âÞaPð¦›IÛcN ôŸƒžËuÌÁÝ ¤b)ÈŠ¢¡C™€þ‚:Ó£a¶áÜNw\ð^Ôë=žˆý^XrS9˜Y%®4ƒ"4ø(;™.ãÁwÄø²¤\Γó 1w?„ñkÁ˜'_ZrÉ8€B"®þ2V~°¬þ‰š%î©%HfUT™O „hð9†a/%3‹6êÊçn¹Ðp@†fçär.uK]¤4¥UTãʸ;cú¶øÈÑ Æ×¤³›B—cþÚ-w¢r$»2f¨)Ñ¥n¡ÏêR¹ŸvJ QàNùs·à>Ý ‘p¤ÂòÖ`N1aÞ€Œ5R{릹@â/»…ÎK²Zz‘bjÞt§àKÝb蘒˜"Í0×ß!›P©+hä¦äl·Ð1@@T˜¸MÃBÌûn©†"Q'B•¼URÁºåds=M©CSÛ·UV-tî¯jN%9¾© ß»ÅHf†4;ÏI̦ &Ó¥n±O€Ê%CÜq¦XZò×§£’@`Ò¦öˆ$Þë…·µ¡Ýk3sŸ(wëù=7¶ðî} ‰Þ¬9?ãîù g÷م٬žßºÓ9ÍN׳p#î&ïªØñœ¥;žû€ÏyðŽÕ›Úæóeû éÊ oIÑÝûÎÖÃ6ž‡ì9ÛqþK¶›ûì5«÷™;ö—»w–{ì)÷ÝQîØPîÚHîÚCîÞó»P^£ÔÜ«…uñ¾™#ž´>×t¥ÐªÈ rŧwV˜M„.YºG>·ifö¥–Æ'qÇ‘*й¥éTôi‡`‰ÈI?Â1–¡‘Ñs]Ãgò) ‚œt¬ADYe ò/–)?®gë̲uÿþÐþ- ¼"3õ†BòÎüÎçÈd ¹dÆÝs·š¹¦Cöbmº·…ocëù!­nÌliûËßÛÇ,ÃMÁ°Þ~ëm/œÖnöðÄ}g7ŒjƒþÊéá ý&м¶°^(ÜefUâàƒ›/i›9ËÑijh,Õ¬x2Òþñ„fª^RÛú¢â±Ã6ª%•zú\·Rø¨ÒQ‡îŸUQªiåî$reUTØnŽÜoj’~ fjòâÅ«UÅÇ4PïiÉ!Æ „:îÖKÍ)Ñf†¡§'•§‹§ÈýIG ÛØÚöÞ‚Òuk¹—çèâôÄÒ}É<¢iÜ *ÿlØŸÇ“r¦™y‹¯ÖCÓ«!¯{†ì)dükË”l œÓF¯¬?? ¦oâZ`Ê婇2ÚÎð7;FY^‰ï¾×&q•zÍ$øÏï¨'¾»Ãù/F…ʇ$V¿ihô^Å («€cɘ¶oTåeMFº`˜¹»a>”‰1ýŒ¢¹çûÞHçÞ$·{=cÓþš&Ì\x‰¿ƒiÐá8Ç»}žDèÇêTTˆêÈ|UÃó"V…ú”vób­ç¢• ~FêüõuЍGÍWßÃ8T ‡£â¶Ð'UÝŸò8™1znÞ.¡ñÙ£'eþ·ÿ'Î1]ùëfcY€‚ÕT”s»BŸí+ÐS0ËGPðò4H»®Ù§Ÿ[Å“æÝ;Þ£v"æ^Yþ”ô2Ji¡ûêšT´˜/tïA—LîúÄV gÒÌj:š„eä~f–KRZ¬­@Ä#u•úLúHíâ€ÓI¶ÒØ>¬Ò\$»Z<¨&põ¨•h>¡?’Ü^Fû,¨çëÐNž.— sgîi¦šŒåÒ@Óß "}[A\0[IêÏf³z‡7ÌxîÿeŠYúàõÖYBµa§¿€Â‘x¦N¢U‚‰A²©˜«ÕSÕ¿ßè3l6Ñ€ Ž™bÒW/þþd)eÜKeÕñ Hº.ä]𻆼[‹§µxZ‹§ÿ~âÉ2»,Ѥ–„0ÊÍ b4÷<­ÁÛ›/ ÿ–·GîËEvŽ›€ûæÖ•Bsé]O19BZ1lfoëÅ‹—/¶_©ôæ÷æõâ/î6ð—Ò„º û Jºïb𦹵€lÌz"t›J{“^¸iu ÌëówŽ÷vi†ù`®bºÕ ‡ñÓøSÊi”±±õšþ}ûöFXz9]HßÿrvÞ"ßùM˜Õ ¨Î˜ÍŸývvöœKµ¹NàYæÛ Íü®àq‹Ùz ÛìÜÆÖ¨®TÁV²…dW”J˜”§]Ašµýê 'Y8âaøÅíó›4¼"|ˆÇF,*1¢ÚqúîñÙYûë™Tß/2í‡#ÚÌsðÛ.5²(±õ“ó«¬hÿxPSûd¹æO¾ÝÛ™ÛGùÛv?DšÁ÷Æêì²Yo ×ü2]2P„I¼"†C¸nù²yt‘C$&ÑæÀŽÒ"ÌKºÔìé ›‡7Ÿ·ôÇOª8樯m¦âØZ¤xþÓŸš“ûÆ÷ðŒG­cþö¼±ã¸±Ø×Ñ §‘alp·Î~<Û”Y®²Bìñ-Ï="Û‘­È¢Öº8NHÐÐÔC8<™ñÖr7Î&’ •&àQ¤q÷u¯á§¡Qž ÔU}@c”*>-CòcÒ1µÃG•Æ$Éä´ˆ”7ŠkvÐu„,løæ=W¥`Àq§æî~sŽãNÌßýîÎ} lSdÂÈ€¿{Z¾w£ò™öï£f Ê))FÌA ÂÊw\Ñœ:L‘3%¥ Þojnš àÔÓqèù…WV¥7 —;Òƒ³IQcgPϼ?ö÷ÏÏß½} ÎÁáDÑÖë7l;È2ýP׊¡Öƒ@¡ÿ4é[áÔ°s5©èÙ~šga:Ò he¯†ù4å$SŸ^š¦ÂäÞ:ÏaF‘ªbMÛqÅ wgɧA '&Núyª‚öJ¸ÕoZø; ™ž’ho:ƒÏ•NhÁeøæEüm0L†ò}¤IS'ÙñUE ú$e„¬†ˆz•?_§œfCÒKÈØÞkÎRð6oçhFxÎÙÞž)½¶;,¡ÅÁZ®/r`:2“ø7QqlkKfŽðHçÏúUFËB²IËé¶Ê‰5땲Û@`ÂøVedX‘FYx¬Dr®ØYZK½´„!X¨‚dQÅn¤:­*ûF)ø± m+|ÒüTáVÙ/âÃ(A4|Ć'îóiÍâÍÝ,4ãj†¼i™Bì‹ê»S=¦Øˆh VP/ø¤úfÕu¹ÅºQ¥­~¡î«4¤¾YY燛7ãÞ¸"i†{¤'$ Šè~ÚUÕûL#?¹*Í‡Ì•Ф”œ©Îxð;°4µÅèǼR4êv>8 —¡rô•‰!MÛ"fPšöíIURm‰Œÿ`V÷†Ø7d”ª4ŒóLÙFm¡‰6Ô\‹zÜ0ædìR M[¡®dd ù=¦-cÎ/WDZg·½ZÑ~7< ›@UJþú8•qTªYã‘z d¹ZðcN‘Æw[g5CV“”vN‡·UèK£šíô?:íÖŽIe5S¶„í¾Ss·s¢ŸØûP%pÌÎË·žf…¹jÄo‘ÆšŒ>»gúSvNhfj”âÞ§i˸#´ÒðÐ{إ̴yš™W} †>ÏÝåŠé1yú©t<$3Më4(8>ÌäÒƒ….á,96Ú’¶fX0옄ÔJ°²œ@«:ÌiÀ2•ïc|]æ…¼³ŠÕ«-oÛe«#„½¤vXƒ°Ëx èáæÕŸzî8À‰\)Çr.‡é=Åà2ïÐ5§ÔË_†u6>káX’NÓ¸±Ï®H…• ~—–Æø¿ÙsÉSW˜]9k“Þ”vl2)@äìBd^ÚvÞÂ$)ô–¨<×s›˜F™³¥?Édòó´ƒ*á rºŠÛCdvÖ)¶ÂÎG™¢‘ÝW¥‡õœ]ô?ÇFöÜC ˆ Om>U¡uòWZ‚WŠ63÷ÙWé%ÇŽ¸ÄxŠç£`†PZÉ­ÙUTC{ò÷ü 4àÿ—Ž1ú‚ÿM +g­ £²m¿YO,OøSv¬²pù«ì»ç¼ÒÁ6]˜”·}²îÛ4oÎu•R£}§zøÅ'SWÂ!]c[Ïg8·Vå$ž)Žââ¹ã~âóLÒD³1-‡­¦N¤Û ¥k:û"ÜVUT4YT¥öønAÅjó io¼WîÖ[ïí"Ú‹Xj/lo¾3'yrÚÚ¬pùIݲÙ†6†¿Ûnôfm«›Ú…äבâ=,± úŽÊ$®]¹D-íBŒkñ…©†Æsšrß݉µ.á¡hX…ëh25Y¼ÀÍaöØÍœæ+ö˜ÃŠZEò%ÌÿöD8³ÝË%oæ WºÖ›‰RãqhÓ³c|!›% á8²ÚdªÑîùÒGJ¥ G._|/^’Xð’ÈšFSæÕ9@R`ÂÑ<Õ“ÁPM’I:ªýµRrzÙÂeZU’DšÌ<ÒytùTU3‡h·±oà'¯çÏzþÜcþԱƟYÔý^gJ9)eîE0pùè©Óš;ë©ó_2uX¥¹uâìšnøA̾Þá/òVj3âE¦{»zL¶6âØÂËV%(8¤¥{çzl<¶.äÖÁ]zÔÖÜÿÀó¶ÖOh}¨4’V 1ˆêEY¶…Às*³?k³•×dZùZêW Î]qØ5È‘1Í¿ðf@bG®x±Ÿ`|ùÚ„[R÷¿ôp:ûváxö g:ÔþßFØF¤¬±û4d5ÂUÖ.§o”[ñ¢Ÿ¢&Pî¾§¹Ð;ïŒäÃÍ{šë·Â!}¬ø$wÛ{»y ¼’=iëãDßý’„l®ìÓ}Ê—¤ˆÌN®º6É/1÷åíûüú>”“C?x»iUädª$¿,Ÿü²µf°ä•Å€¹Zîÿcâ~h§¹¹¤Ï–HN{÷ƒ¤f}Ó£Û ³× [7ÐF?~¡­ôË0¤>,Óª`Y‘ƒë±v­á-ê0äöÐÒÿp„óA^Ò8Åî¹:ê àísŸã§kNvø&ÂÞÙ÷¤†ö‘§u>·VH³Ô~%êñ4u‘wf4†¶'l6A„ |_Ûœoš ÙUõ×0v÷hœƒ96ô0FQZ^®ƒþP›`#Q.4܈×Êqº-a2Õ0×s÷W…£m)…¥?ÆÆ?žÈÇ €<üî! (¹¶ge±{BÛ‚‰£Ö!ù(×:ië—U>ÒQPB.ô/Qò¦å¤P4EÞ’*Š .i¡¢P 2…T¹$õè#oœ^5©Cg$]}(1å,Ðÿ½R_ûªƒXš‡4S¾¦Q3ˆM|•®ÕXSåeP²ux ¤_¡ Kþ0ðçã¤*ž¦Â`¹µžØë‰ýO4±iÔð)AP°O šA"Wõf¬ÒRÇñÍ{9€SçÑÜ&8ÜS…¨‡~§Ôóú÷‡^¹ÛÞk62^¿ZT©ÎdÊbçc¥ù,-Ês?³R”«P}%…q„VÃL«c1>ñ0h)Ô'Ójê1•èGòeoî„ØÐ.Ê‚o]±Ž0§.&:äHŒ2ŒYÝ ¿ÐŠ(#Zúg˜¦dGâÏ ³øš&Ôd^„SŽEBžäu;¶øoÿé¾C.oNR†¦7Ù“1>?=ºájÄè¬o½Ÿ9inav}}Ä71|¥èu‡¤ð™1X^`E?íFú»@# VšéRÔ †y õÆÄn§º7³TLÿd¯5ª<ùŸè­HüÌ{ûFd©K_CÓús€˜ÿânTE¾ñÛææç×Ã0Ù@޳ŸfsƒL„£¹Âé™Þ ß7LpÎ}ˆªÿµá™/áȘKÔÖÇíêl ­P”6v¯ö˜Òg*Û3Ç¥$&›ãa´Á¦™ÕœX^f9b´z4ͱ÷ܼÎùè-£Åsþl±cìž„&Y\8¸ÿí‚°LSÏ=æó>‡ÏûRÓ¶XPibÎŽ³§¬¿Iå¤gõu2Ac€¨ <…´Z™Ø†Ýè4M#(•“@©¯Ù‘÷Ø2†ín›â9ÙäȲ.9<+“]üftÔ‡‹Ø|h+ž)ÏðÇÆg`Ë/¦Ò¿$M˱Ñ)Ð9  DñåžQWY«T‚®ÂqJÅ`ʸǙ2…-i¾jÅUùßþ“AÞÿöRŸW´â¨A¸âQta@;_äi‰ä§€›Ž»|y/1ÌÍݲËí=mñuˆpômosË}ýÆÛz}Ã|qÿB%ö9à¶àŒÞ/¥áª°³Uðª|sŠ^'ÛÄ$0> æ8Ñq¦£þ_Â+œ±ó•¿üü³ç|#Sà$dçlCô$ §"ÎÄÉI%iÒD”·r½ñu"tÃTë̾€'!µ’t¶I(\"E”çO#çŒCÇAôâJË…¬“~”V)þaÍÿmÝ8 Ê<zqX>ÉÉ9QçFlnþu–[/^¼yñfëûvѽs Á”¬“­`bÉŽTÌHP“¥ ­º _´kRz'¶ŒP“ØE57±*Œy¢“‘í½+m“”b¬1#`:†’ÛV˜ðx ô ½üDé¹xtɾ´2u*ÆQœ;$‰K‹:(d¼­ú™@ƺÌMúr¾'ødEÊ¥é]“¬*{$æ ˜Ì0Jýé󛵋Ìs „0L™ cñ©SUuçIôªÜË×Ít®S¨§”éyÑ–©<õr’§Õxâô÷¾œópýG¥sf±-Be’–´Õr+¬j¦)LÀœG&ˆ´ë<€£iàHw>#‹Ÿ¬ Ræ“2¯8:~¦æÏ¿ˆE5!¦Êy§k½&B¤q–ÅéŽÈ™ÃÓì‹Þu¸u@FÆÜýPMÕlª8Ö=™{Sù:˜éamY|PsÚe4›~;S5÷ ù2¸ÊGó¾Jª_iš”Ù™QÔXÊB òMÍÑŒ—C_£j¨r/˜>eý5¨7WáËõ*\¯Âõ*ü{¬BkwÞc/4@6Å»'¿ïE·zÍõºàî\o²"ÃÒ¹ÇZ+RNÎÒÁŠU‡ ªÌï4'–µˆyâ~w˯g0š»K}7{ú€á[%ß"N+ÐÁ`֘ǰu 7^ÃßÒP$ô7\vCñ–cÜn¬ÞÅ›©9¾¸{÷‚>yp,Ú=LfBÀÓp†»Ì0µÖîe ºaéfòš#ŒÔý‰.ü„ ç`,hA¹Ÿ©?ìFqœ˜¬@sp£§és³ì„´å'` Î,CRqa!ŽnV-Aʆ…G8¬Š¡ÃÆœ ; kYXÐr]!Ï?è„fçÄ݆*¡5; iÀ/Õ$(òçI£I)ê§7LÓ³h¦v|â‡F¼œÓ_h7îAXLvMÖ37Ú˜Š\~nÅV"çæ´Ì¬²J¤7ÂÔ/£ŽÛWO@Oç¼sÄçÏ÷ÐW9X™‰c>ÒylG×`Hí¡¹úö-wÇ‚¢‡ ò£ºÔy54RŸ7šp<éïJµ¼7¿Šé“¦nq˜¤Ù„}Èu"ÙQE¤1" ƒ:BBc•0}Ÿ­ÙéÔìGÀ WÄѯŒªrÒZù`ÎÖEŠ&ܸ&Ã<>C,çý‚"úñý96¨R!”Íf!’!vª¦mraòõê§p–C<7M°g‹¾*£ÑD/øs²uhe0Ißæ8ÔXž?wLVWk¬í™¬xEšÅiÈ) £fΜ¢x®åÇ缜xþåàlãøìê%ÑTà«‚6yž-}ùŒW¦M_$“žŠþ¯ÇOnVè*Hû ý¶Ò+MóèsŠ|Vã’VI> Ú¿{Åäß-L®g€™N¨ñ;j(Ÿ‰¸zc:¬RR%´ëœÓP ¿P^V­©#’Í´oMðg@“P’´Z€'ügáéšþD¥?ð“}…Ë”Ö=d⼿—#¿9Š‡ÝæœSS~ QÛRw&ª¸ nTõì\s çÆî—‹£OŸÏSh_Hý– “}ù¹=Ûã,M0[ŒÐØ—±c°Çú·&(Õä¢4©“OBÓÔ‘ä•HxGUD aLr›½×H—g»!¤’úSˆ'AaCº c#KL”2KëY’&vRõÔèç7¤Bh‘nx[éó‹O/ŽZôí¼oCƒ3­ì€:ª˜'~ž&)h²Pk·hâñÙ¾¬ö*Žqv¥iöìùz–ÿýfy³,›èŸöß³÷8 q8b&µûÙN9·s…ëù„ø‰¼g!‡½ðeªvüža A>³ÅÎâ\\Ï„ÿê™0* èJ¢ ðC_/Äâ^0Nûl¬ö¼í`eeZLþP‚#'8ÂÅ _B!¬òÿþb‰eÝ’’’Ô ªpAµ­k¯ºiçû&³¦ J‘ƒ;¨O¹V‹„Mµ×ƒ˜•4äš÷kq¢4ËæLLJbIr³)x¾~ÜЖÒ¬¢t¿|<þͱv ©O6g]y À^¡;G‚·#t…T“iìžè"Çkž1 ž¡1™þÕú^xoÈ‚{ýÒ{ûfÑó)*ãÍÀvIÔû[)˜­JÙcOI®_…rŠó´* ·É6©Ã ´VT¡Ï&e_'A7W‚¢iÛC†»9K’þF_;|¬šjŒ¥AýÓÚé â»K↭uÂ9ÑóóÿqÒã ZÖü/ÿé`oßžbÛ¤}U•),ðªÔŒîÐ"G-žà+‡ ‘ü¼ÍÕí4åÍhÂg Žà4;>™,¸Gì̆¸lЛköØg Žô]AW%Ceú×i íÕ¨SR‡Uï®’•‡ï†¡ŽdrÌ¢¬¾È™pYâ€4w€Å%+­:’›TöC’æ9‰²zö ¦¸ úФ µ !öo¼ŸoqOœ‘d:«ÁmÏ­P›ïÕwŒÌy:*¡Ô´&ø‘žEº,û÷ÖžÕØ&ˆÕà]V]{vtvr|ö¼öf9 :ý¦—!-fÔ~k´`¶$ðR]Á,H<Ôy×GgN¼«@Ã9ÂŽ:>cû*R¤£auõä³TãCêÄÍi|k¶-Gò¡uÝ9EÝ9…æ zg¤¾³m’‚–!.€žåð»Öû$ 8Z±gÂôb! øsÚ™úœ„ÝÄÆÕ˜dfYÿznº£‹e¦‹oñÓ$û‰«f.f^,rê†A˜kc$2%4›Z쾫5ó*ÏLì°ðЛ¯ú\Þ„…~çuÎw?¾³£e߃ڨÂô'[i3^N}аEÛ%M]ïR¿/Ä#1o¬µVáÔt“ ¦`Ë—mÀBZCÕ,ö Ÿ¿›wÚŠyšpÀÝäTYDFª¸_=’·ôCB8í\d'¬E‘j1cdÝiôR ]6o`šJMìÏa˜R;M 1ÊÖ¶‘…ív}ëf4Ÿ_ÒÞC$µhÛ[ï×¾«¬²æž¦wleUvûº2•ÔK‹~Xp¶•M -Œ416 òOÏNZˆ~ÉPöèˆY¿:çF…&îLÊ2ûecc’…Éô’äʆã´B¹ Ú¥ –‡ ÿî1*ä '5\Æçà#ÖàGaŸ±W˜ïƒIÖ(šáç´³îü×›ƒ€¾Uݬüê¹ßtD»åNÀ¼¾uJî«* Ç¡ûYI²LT¬ÜsÔö«çK‰Î]»¤1'ðž2þ’IkT9T¥Ó”z±•èøvÄÄD“ïO*2ˆßÁ¬æi:•‹È1:Õaa@ʤ'Ó4›ÛäÊ™¢*²ïG-ÇYS&0G4~l}¬êÐõ#ƒ(dtü™#],ÉÃÿ¨¨•íƒUXÉCAl²'|âãW>ÃVêž!ì?7W£J ŒŽ´ &}’ô¡ëªùþ)"s?”—ÃfU¸»¹¢ÚŸê>)¥#*ÏW>‘l*S)Oï©IOë"ˆÁû”K#€¤ñ´¯“æX¦Ý˜¶‚åžÓZú\qv |!]ÙëÌåJIªŸ{ ÿö®¥¹m$IŸ¿11mï°õò£‡J”dÉ–Ü I¶»çVŠ$$@ã!J:ìÙãö´ç=uìÿÚü2«ð’D{¤ÞuO,B¡P••••/O“Dê9=Æšä«$Â0TÛ“ä>Mœ‹üa© ^X~È«%°^i94ÜNdžîvÃOJއ®Î’eQØòrÜ¿WÂÊIö]äÂaäncl ëi•“˺S6ÒeAÚE¦¦:vZò>¡DS&ìЂ‹ÅnýUª¸å€Î>Ý#¾Ä£ŠZÚ†Xò@¥Z8yu©úOéÏe“Ç=e:DÚRˆ¦™· èxç+ßi¡z6a½99Ùm „¢IÏ…¹ÚµÐg}ø3íM=.rtrO_Di@O1j&:* „×ýɦb÷ &_ûý#ÇÀïZþþâ!uÃÒ%2‘×ð|“F Në{—:|3ûnð;wàÓ‰7ç“?ìtærš»kÞËñ–»±å½í¸>rª ²FøÆˆö©Äû´…ÚŽï+åÛRÍ >'pB&¦nÞZ»äŽdÜWôfkóþißîÂfP’"ªÈyfVùÅbáÁØ+K/×/þõBÅ/Ìgñ þœä‘Ll À5r޼¸È’ˆë\8ø$ÿU#ôª ¢Î‹d¥1¹'Ÿ‡š›ÉCHª„ÏðvØ«À#ØÒ-ÉýFXB½¨±µ†*›DÂ2ƒ¥>ºiJ`‘—Wm»¢Lx«\°bÐÔi0štÐsu(È-¶Çøy6Òॶ9˜¶íˆk‘½=Ó,ÇÊ‹GTtÜù|»ÆFNxoa#åznc;Ý3}¥A]{pmýtzÔ“úD ïU€æõ= «Hûh-}`ÛìÎnRb©5;` l«+Û9‚þ¼4}Ê{*ùAeXµ+вÈ*îW+÷v6U%18j^ÓŸ€e, Ã~þÎü³÷ûPñ‘o€ŒËí/£dŠÍOE7·t«„²ªCì®g%<Vܯ6§á Z”ÑL_ÕucðÃP° ¬¦IJ­£Çëx{‹´Wn >ü£{È—úˆkp*ó:DLL#š9ÔÓèžyÈ¥å_×e{ò!ý„d‹ŒNà~úøô¥åòÔH¿ýû¾G¿ý[~ýöŸ´ óù3U• ú’ÎókÄÀ¥–†Ò>JZ¶Êñ7Ä¢þ_|è‚ý§L^°NxNå.ÚFÙ¶Á– ™ÑÀ ûñœmCKWy¶U>LÎSñãf7‘‚RaÓÛäV¯uŒ;Ÿ{’,ˆÆÊz1ذ¯ªõ‘o§ö6*Êùö’ÀnàHO&–®æCO3/Ÿ†O[ìå;úÏø¡Ïu)Ôô#ä¥ÙôEÞüB¤µŸïÈÖQ•»hb .›†coâí}²ªyüE¼>^ùî@}¿@£åíp^Ú-[Ý`“ö¨$î{§ ó¨?]x‘º¬›n³Ðž(pêûªù¯G»!’©hRV…Oh×àžE$¯±œ“ÒépQ’”5rúa¢BLö4Ɇsq kÇËÐ}ä,Úiã§Âa‘®yY9Ëúè­1LÂóêQà‹ˆ Ÿ2sÂ<ˆIÀX6yhKÂÇê *[¬äoüòÌ4:45²|ÔæUœA„˜n£Wsktª_Àá}ðü2’s–ݾÏÑæ‘…Œ6–D›VKqÐL‡d§X²Aàtn+çÔŽn^Îçb±¢©Õ(ëcÇÌ‚š’ÓC@äjÞõ MêzuH @mHĆ€ˆXH9oÄï¼€g-ûvóËŒÆÙìÐXŽ$E¤(´Øh¸ mCåéqEËœTš3‹þ™É…Áßäu¦6ö·'ËÒÙb'ú©¦ãìOr0Ô%f«2sàH'iB[õóD¼ëÀPø¸*c=žMʾFÖ 8¿E¾’Í®3?4»a.Y²ˆLF4×(v>Jï®j3^16CfSˆP@ùþ²•®Ðé › ÖæOÜÏ$8íÁnÛ÷GIF] ÌŽ3L|ZšÁ=|¨lçí’Gå8Ééo¬.©k#üJß “ìgš¹å©RcØòñSçi{b‡÷ÍÂ¥'\zÛCÍ}ëökeŸªíHì«lþ÷õÛ–Þ£‘wÚÖÿ÷ HÞ#ÉÔ{—š®;öh·¿]a‚¼ã±@ 'QÃm¼©œârÓf¹Z¨ï]ëºÅ²S²p̪\XÐÞtn Tìysµl·x ÃËÄÌð3ô€ù”¹§s_¥ú)–zê•Åœw†PÓ½õÒLß“‘Íà¨ßiÞ˜+÷\å—cU)ìl®¦‡u1Ów`X*è#If<ø“ä†Ó/ˆà‡·[=÷§³ëîä]ÛhžlŠ­ûá,¢£1@²*@ý<†J»ò€7Û¸$·ÑDX°|ýå¸.R)ÖÀýò*‚ž“¤°×Ð,ºÓ! o/ªOÇ¡ùjl{PÃtй(M^9A8 è¼á_is|O`àÕ ߦÔ×4]øÄã“Ìô)cßhCÊÂ'Ñ@Ÿš Õо´´µ"ŠL¢à„ ßHó&Ezpû®TqÕ"‡ qV´6!x´õ¸—\KDN“hàyЉïvGÜm¸Q¨1 Sùþ²ÑvmŒµÃƒ½t¨;ƒ¼ßÞÖ­Àjsjƈïí’Sˆ5ZŸïG|ÓîÐEïK¦Q{°ûý#<úù>zø]˜C—7ÔtqXÜewHéH£ÁŠå¼ KŽPǃ“ù\ĽÓ­a5ŽKÅEî#,GK|½š´ÕÒæ.û.TlDá˜ä+øµ®½Þò6ßt­fND"Ž0Ř²¾fwãjÍ„¥m\­SOLïUG7ÜÊ.5*ß[©SWÊÔ¨…­Šq(AÇÍTŽUõ ΢RUˆ÷¹äþa/|~ß ~ëH@“à2 È~aæ´]a+d+6Q˜Öàį( ¸ñ½ÚÀæ0ŒØD1«èB:f‰ý·µ ‹jî\'TS ¡%-§-‡®à¢ß€£—ÂÆY¼*P÷$ÇN‰¾ùÄe[ ?) Ž©í¹{ Ê)§-,Š!ÑL3ªv»Ûš\Љâãá Ú¥°\f—D?Øõ߸ƒ€ÎêŠK¼“4*§í×߸o¼7/ïE£Ø†«¦—Ù-×NڬȱA󄪲Û8S¯Éà4 Í V¢…5‰û„ËYge»á“íxÛ¦ÊND¶üLŒPâ2Ƕ™F-H'ÑÞÚ©(ámùTš…ÐÿÀEæ_«ç­âA"•IʳÆah§Ü¦\¬"Èá‡Üfj(u¶íÜu‘&Žq?dµXJ¾„xŽtÃÙõ$Ji&YAo¯rÿfVü*¦¤—Œ @Ëȳ ¡Ó§lŠ&ˆI~é­½v·Ö½­Ž%ãT«¨Ž$Œµoþõû" ¨³>A-W;ê ÝVv—¹$­Bf¼$}¶ö¼.2:ù$·ylÀúuÌ,Ç>[dj©{Ùß” j–%«‚I ©f}1“¼b[)MßÐ 3‰—„.ÎRÄŒ‘cÅÞNµ…±€°k5‡HLž¸y”,–Œk‡¿^ºá`1Ô×ý”N“*«¸aNÀìlt¡[ò‘£yÍw Š\C:w“&wGŒå»Íäðè¸fýÏ`¢ÜûùÔæb»[:JLâ‡üS‚Æènìkp ¢‰°v¹7YUbZ(r–nh8ÊÌ]{ÕJÎ$J˜Õô™¸ÑYâ–Ê5Ñ—Ï8ÂFRµÈq |£ÑÎj>›ÖX'1zUµN«žËJb!â F%v!ïÉíóV3—¥eÔÄY3Jw}—©sc—¦¼_•ôÜë ¾¶y½IK6u o¯¨Â_K…4ãb²©€Mc]¿Âºd›×êkW°_õµ¯y•Bè c°}Ø{«Zåäó&-‰b*JhœáÓÆ·lœˆo‡aÔˆþ:Mw'™B?ȦãöÍ]ļ`¡3úiß3Š?‹5ÔÞbGéÙ7æ6û7!°nq¡Ú÷¿$~¨ý™û^eI~Ë%p0,ý<9£«‹…o'÷|ªýس«#7»ƒ3þÆÀ TÏ ‰7gú*Œw  9j7ê=¢ÅNRÏõ"äÁR¶×²pšÐ ;W·!Õ”r4ŒòÐ+óÔg&$0ÓSp“ÀL‰\ƒa4k+½J§3÷]€§Ö pe5ÜàŽ°¢í8÷hÚvM;Öí84-gô{¹ôQ÷ƺä²ð—÷ÚÜ…×zP!åÑ ˜òÁ°Š+ªežòòRó@ Eƹ™óa±YhØ” Js‰„.Åœ¤>öÌíá, ÙÆ˜&EN]Z©`Mîì ; òÉPßè$fÓSÝU¥ßߣ‰‰¡ÊsFwŒJ_gCp ¥¬ËîyFÂC,%H&â_ÎPB“´ØÌª™Xˆœ. •?¯;¤2Ó¨—Ø–ƒa|÷ïÚ5÷3E+‘ü”=›LÜÁä¢:¹C²GeqKm¤Ž}â‚bpÌêeesµ¬¬–•Õ²²ZVVËÊjYyü²b“ž¬v+«eeµ¬¬–•Õ²²ZVž²¬àÙÅ_º¯¼MoX2]y“Š€¡Eª+^.ð´µÂ4«bž%cDwû›ÙXØ_Wµ 0Iì¶ç0¸…ö´f(.MŠƒ0W@9“Ń˜¯ØEÚ!Á#™cnIZŠóÃýýžûþdïMø³Kç'€HíÊËÞî{.ãÔ4>¢çXnxY&ÏBî7±š‹®–7Æ ‹6ZÒ=îXqZ¨3ÖNœ%…Â#(œfp}•d}ôG GAå­'êGKØ€ô?ör”ЗBÒ‘^Úþr‚ñÎlÀjöœg2M4"Ȱ`4ðö” F ù2g#(üœdôàŸ» ƨ¼B™õÜÑ_þ"Ýz²wzÔSãc6‡=¨Ž³YKÏìõÆøü; Ê”ØÖÓÔ½õøQêAª_–÷òX=÷r5Vsáe.„sã×à ¼énl½½Ç´Š e”?2`#ø¨SØÙÜF2lk1°á9Ê8¤F=FçHË,…O•ô}Ô¨*«ªz&7á$ÛVî³Ô†Óç•ÜK/CÛéµP϶t1iي׷oÇ93!Ü nÌØÆÀŽœL/¸s¼‚ކ&ûƒÒ“‹è‚h¥FN¬Âøóf¼ Z°³L¤cŽSíøÄagÂÉ­àú³„HlPÆ ‹[‘EÖ×¶6ß¾Z'©E“Ø’/ ·xêñéQø3×9»rÞntǸÖ{«SrÈSÂø^|§b\Ê:-çwÊY3#,À±*fùÃø1ôûaáÈžÓLqü˜1­šÄ±n#qk¸/%ñILƒÖ¼ë -‡C ˆKÓ&Pœ¾2èÑ7<ù…ÝH”tEQNŵ² xOa<^¶^çá<êAööAD9„ޔɸp˜Ù+OŸëë•ö`éº}ëÑÂôX}åï5€Tÿÿú÷¿6~/ë»´’â_»‡lÞÛmßo´Á"óõñ®ùq'¾ç{ǹÕU`á?Ò›§ãž;ž§=wNzîEª§=7§='çĦŠþPszîu:ÿä ‰†×½uͯ!ãXGÒåûûFR¹gx0J‚ÊYEŠt ·8@ŒÙøÑ`9"µž c ÏÀr8ìS MÉ/²NCÆå@z©„…9Öy¶Í ¸`È•cÑ 3€sC –üÚ uÝãÁ È[åÔé“ ÇÄCaéЈÕg¿ ÌóÖæðòMt+üïÄŽœ¡ùýíŸ~n°ú;, "G‘»`Ù*°™/‰Ô–m‰,5dUѨaŒQÈ8U¼Ÿ‰(áj¾•cP`îÄ ¢UžZZ€H8+I‘;´Ø²lKXR§ÞSܵ8òÙ€{Öm<ÿ„¢NÆÀ²Ôa€s¸ÊoˆÆ;óg 5†; ~ÛÁB;¬ÂÜO®ÝÁx’\×éqE;§2lÝT—sw0¿ñ³dR´ íÑd-ˆ×35íhÏ{$ãõ?èø@¯Áż]h/ Ý¿*òËɨuÞÃÜÓQu´–äù{¬o¬‹š9ƪPÀ$kf¬þ@­wwt–!Åô%´_ùø×Ì=õÜw3u dü }¦^VS XUjª‰š!fYÌ\&æHòæU5ž"†+ @¯Q$\hž·_jo©7¨sóûÁ8w Elá¿Ë Öd|þäÔÅaWaâcCöÒÛr·¶¼õަ]D¡!˜„ñhí¹ÇÔîŸèâs˜€¾QI¤«ùW¿¦ÉîŒS£}¸™è„¶É4†·­²N3¬39BžƒRÀFl]$ø\X)C˜ù¦AÏìÊĹ~rIR`n>·nÊcã Z¡” B^B¿œ\ÿZêØ>|[7‘åÏîªØE˜#Nê=ûùÞé±[ܤâeÈȽìh·Þa«o¡[ál51m=”Q‹§€£¾ˆX]¬ï0+¬±¥Ù;9}ØO÷wuÓ'5AÓQ&¯VR ù¼´ðF¬€nl·—ºÏÍxrŠJ ©Æ†ð….h_Gl"4Ú e¼!ÍW-se\Pç4)RüÔ¼êÑ$ÉIô¾ùÊÝx}'Kè¡-ð™w¨îa-\#”-åmÕÎ(q÷¦*nèç÷ø`εBÔ€£,£À¬K7D†˜ñÔB6ŽÀÐ8ëUãêGÅTzP’˜#5‰üaL}.µ%c J† òH•ðˆý R"\Zqäâ L(:ßXjÌÜɕʌh™ÎÜ#}šÑùŒàäÊIU‘\ɧÎÂ֚wXéˆ&ÊKs½ íÕÚ Iîk¨jü„.ÅÒÇtp®Ž¦å/™pŒÞ0CùKyÎhìék/Uر}Ôå\…™yY‘—Yéþt©ªÁV¦]“Û€>#ó‚s-saAgAaÁDO8aЂ¸˜é¦í€65ç*ScÓ†Q~2–&¨\q Ð/Šœä©s·_eÉÍû˜ÊT¦Õ.ðOælÃÛ³›Ž[¡Üª3óŠU_ªæ¼"+.°â+.ð=¹fOæ{\IŬÒF.×/kÏ÷áZó:Š:Ë›q j(qŠSf%NÉ©%VLcÅ4VLãÂ4&áô©,cŸªx@tÀ­ ‘ ¤¦“ Ķqïùœ6køõ<ïù½B†³â+~±â~1¥IúT†ÁjâÃã“»bFuǰ¨ôu›+䫽NJ-¬ØÂ€-4ûA^pT!j3š|…Ê*Ïšù~bá0,Ö#Ïo£¶¾óÌ£Û‹¬­›Þº»öú¥·Þ…§ÔG]|Ô Ë…`°pÏTtûCÞº ³i*³$AXf‡·áÄd9“|ro¤çsw äéÐÆ:ò¦ewú™-Òg— sÊ\át¨ ß'HðÚH“]P‰L¸ ‚ð(†*¸òaì¥öâÇC¼‡qZ}I¹þòåkïå+„Ь½|é½y}Ç>)¹+ _÷©x66ÒÁ·Kð;jPßfš°‹äY¶/ÝBç6]ˆã+¶Ã‹A†*ŠŠÖ2]Ùrâ*Çc¡/h¤â$¹dì>'ÅŸÿyýÍÆ_i OÔUôÛ\R·ÓUíÏjäÀGwdÀf6š3tc7Ëj+Sûv†”ߺc~ê¤Z=4Uç‹giÃñÁd6‡Å$üvŸz 'Ï]b®Öøk]mîN.f­;xR Q#ߢÝHª¯Fnp›p«6½ø’’ YD2äIÛºÃ`Á'¿ƒ•ƒ¿¾Î†È\ŒÛ©­³2šžý¥í£Ê[•ofqôuRFí¬&™˜S¦$ž|:>‚ïßÏ{i ®háˆ%•Ùc¿1M‚>»¶rVOxãtRµÂ°ˆ™!ì ÀpÅÝN.ž$ÁÿWgR6j62ROÇ3o`ÇcX×ÎËXç»;’(ŒÛ都5’˰¨§ÚÇxnÎiqˆ§NŸ¶Ã2ÊèëP˜GBiR dÏúBë­Ÿ\[Ìã$K‡ü÷iÐS)2œêu"­WX[Ö½ÎB¸\!%K€´w)¸[\Ù}ûØ»¶å¶‘$û¼øŠZGl¸=CÂÔÕv‡b‚ºÚôMQn÷lÏDI˜ ÀÆEý7û¸Ï±?Ð?¶y2« %Rmѱ1ãîŽh‹$PTeee%2ω¦$8¡h®¬@šQÅôdb±1ºq`›¶Õ¡ÁJràs‚ø3ƲŠ%J£û¡{*?{u8†S–(œz÷ê82‡.ñQÝÒÕòÜoÝcHë¹zS~¦jòôZŒù#Ðî'ù¶ê§Ðòÿ Bþ“•yJö1™—Ų̀#÷™Ê§y?æLsÆŠ–ÿŒÒcEç‚n¹¶^’9~w4…Ù ¯ar »4¿mF´»FÍlICK´‰%`Çȶ¿Ç‚Šf™Ü|¹½^Å}ê¦×Äæ§RäÅÙ=ÿaÛ‘«Ðeš×±ž7j±6ÔC Qæ>ºTiG¬åÑîaŽÂ¤TRÁéR7§×[$ksáºÈ”gÀý-<­ 0Ê`PÜ;Ç‹D¿·ˆµºƒquºb¦Çê°#ÄÆ}mG£bPKvãc@¬Þ–ýëÑ3üµ ™|Šˆü’¬é“LÏe,â¤lSã½¼_™s£u¨~’ ®z¸í_ÚƒLkm ž…lêré¿ØºMËÞ¹}ú˜ÖÔ™p™öiDö l[Q”/]2ÚÇ"ŠÎ‰ÀÏÊä˜2$Ÿ &X †1-+c1wKÏP#Vb Ùhn®z0È[ŠõÊl-mÙÞ¦©c„^\˜ú ±?6Cú±Í ê¡IxÛ(} ¨+µCÊŒŒ²Öž¿³¤®Ž/žÒH[6¯m÷â ¥Md*‡Ó˜;§<Q6·°ýlà‰ð|]0{X TYšrj¾ÆZ¡ÌT`ºzóV[ r®*û£Þ o–ð7JúÈ›á$c<Ó‡“ ‹òåõH/ûé,1¨±oßK=+[\3}/ÁðÞ—ÄÝ×Áu@§ ˆD =I?c®6 ?ÊA$Ï[Û[[­jûùž¿ì‘º¸ÞelÇ‹ë};kPLwªñ[1¹9‘P:(4Ç ‚ª•«›2ÚKI¿N©…ýÆ3ÔlØ/Sšç†Á 6_÷°k¶iËôi»ôƒÐÏ6ö¬bÿsµõbÆî½F`6l¾+÷Ðr{Bè$ƒŒóO.Èp[;Š2|¶.sàQpÁ¤†g…m—rêU/lQÚ–jÜt†—‘‰a‘3X·ÌžpT¤ÓªÅŒC¹¦á<®‘ç|8¼¼28¯òïw;—Á¦¥ŸÅåÖÖž÷¢âiÎCâ@ÿÌMY+ ¢fîÍ%âÕÀJ-|r0ãÖ( Àáú»}û¡³´HÃ4v‰;#nÓ§Çʲoz6cìqò¬rU+î ¦?–ާ†¸Â•ºa¶dÍ’¶D_žFY<-Zà3âz8ÑÁlc,9`ƒs ½üx*5q†“´‡ª™1c™ÕH›(D¯šÇýÜ›×™¹ëÝÃSÃ꼂O+l^cN\žž¼;•»ã4› uiu¢ ÚSS&0Œ«Ë“CõêüãÕù%Gé¬HŸêäiç²É÷øÃÏ‚w’ÇõoA÷Š#ÕGì=À$c‘Í÷óÅ9É=ë0|CÌN~›!ÒãÆ,ôåÒZ:Ò¡:¢’E!q~Øãôö¨ð“Ô 8f ÛèŒ6µ!øæð­9vÉÿ–°ð G™#CôÓ+û:ž·‹LØ“e¼hsuç§ÄdÄÆyÚP®÷T™gNw˜I~[%EÌ{€™L¸â¬yÒí¼=øèã#Cê˜W™ÂþQ«ôÎnd³±¢îÿ•+xô„ŒÔöœÔ ü°lúÁΩïÐ {ˆ•ŒŒoŽ­’Ávä¹8φ´n§ÓPGßJO#㣀v±œÎ7~ãb¯ë]µ}Uq{kÄø*š¤ªe 1I¥äm½ÍbþÁ1ÝÄ© œà-F=ÚÚñÉŠ\â-Â’ÁÝÅne€äeãÕÓq: èD訾O§9»eÁ–•-˜–ödøU•/žƒr–Ë5zé9D6ph²§8'Àž¶é&ßí<ß—OèdO‹,)þôÈPoWY¥KiçFãÛÙ¶ö›'cTkª)åSþ‘γ?ùÔþ#Ú ² w]Ø·¿¤[ÔÔú[Å£zê3{ uß3QÍ#²g ÎžxÄ;:5ñ”ûñâM2”|oÙe/Já9¹»ºy…ÕëHÁ˜à} ð„wߟ6”p¸‡ÂÀ$¢ždÁ ÍÃtÅ×zY"—{ ¦ÕÊgymΜ%V´YA˜!ý sæd¯± Þ]r¡V ž:”ÑŸ¤xê†tʳb±ãÉq|ÓÐå1û‚vshÞÚÞk©§êåUóÙv«õ¡¡–¯]¼:¿:_úyŸŠx(²s»Èþ]E¶wŸ›Ÿ¥­³½V«QïÆöÞò {­…v¶ž-Üðb—š>[¨cg÷ÅRÛKuì-ßðl±»[K½Øo-Ö°»ÔÄÏökøaËŒfw¹(]Yª{ñ ½¶—ox¶TÃÎÞâ ÏÐD·˜Çd>ÿ¸»ƒ1­¾î.\ÝÛ[üº_ûzÂ7óÚ…X‹˜ÐrRNæíÑJ ‹¤]2¬ƒçNú±ñ¥Y4*g¾Ñq«˜£ÄJ‰¶w]à1µ L F>ô-t¦-wjÀóºì£°Kà®%¹¤œåÎ’†ö^¸/*æ;WZ^uÞúUwçzP÷­ïþõ î[Þ}ëAÝ·¼ûÖƒú-ëÁ»o=¨ß´¼¥õà[n6$µ¸¯©Yà6G‡?•?S÷M×8=Ìq“ëõ’ÔfÐס.ªMÅl2²É¥³[w{£ƒým_9reeŽTF÷¸¹úŽí]<+§Ð7¼›ê³ºÁV(ê8MÇÁ“…ÜË5ûë‡4-öy9ŽT7È{#qA¯ï6Êt›œó8 º¨œE¹{Oû  ½ м—“À„kå8ãÎcŽu•ö"Ä…€,E~˜z䜚ˆt/²x°íK£OV¯ßÚV{ûËLüŠoæºEšA¼&|"ÑÎæÆ¦5?ê‡0¼¹ÅìÝN÷¸Û1Éð7 µk 5üÆ~æŽßñwð[þÞò;WÕ厑ÈY¥ÀK)>]‚&©aÒU›4£À9d(0ÄJ)ó #¼é†g…½8:Ëð•›„Ï9ƈrÛûØ ŽðÍÚ\V/L³ÌRC3GJ$B‚j&ȦÅr(|ã«äS/÷ÙªôÞ€!**â )aÿfžÕ%0ħV±‹Êâc£ÇN¦ÓdGùh¦RJŽÒÀÊP´Æ̼~Ÿ«©Nñ>P4žC{¬rÍ¡¼ÕᓦŸIðI¨¼F¤gɇ.} #¾‡v/²4¿«§eÃöc@æ÷Q©G™ æy©ÓÁ@½)ušZ®6HƒÓ‘L[†("qþrB±e¹u‰á麸®ª³&¯Þ_À’"6+ò'QQ%Ë/<„¼IuíÔÁÏÔî\…JØÈ7ÃOЄêˆ0&«×‰½Ã,¨~$ù]}‡(qW¸âU9±W¸6ë9öLˆŒíVèùž‡†¬5IÎç¹øÍ È»ImL#N·f?°˜¡­7=ôk‹™~I±® Pc†´>IÃ=ó/îàEbU9 Ñꫵ ûÇR»»³®ØÃÛ<’ g”vÞÏ(¿˜þngÇßZzAyäîø-SšßžÓª‰“j×»5¸ê‹×2àU½1mÜ5æjõ˜/X¯¸m-8IlF¦þ݆1@ü>V%ýÐŽ&Úén:W"æ+ß‘¹áe‹ÑÚs*áËŸY]÷,Âoxñ…Ÿ½jáóÕÎ¥Tý.¸+Žú?Þ­2ùÛä×~xMvްá°þ ²†£¹:À7ß|kS§ccï|$t„?ì3á(è·§ý _¬çMŠ7R n_ç@Û$bW„@Ðùj)8‘ËSùËAuW]$î3pœH¨U"á}H¨/‰—¿þoFJH`Úa2!<~HޤÝ×tðI6ôîËT•ÅšõzÂW:Q\øw0Q¯ÈÀøz$!œmjnãd™&2Ø×.©3sýSe«ÿF•ë;ŽÁ‹©‰†>œðwÿZ¾·G¤aQEž1:UÀïÒ@žù׿»»uÃÙ$½fÕÉåUsùÏ»Ì8¥seæ>´é,ùK3K{iáæý,õ ý0Øt ‡Ö¸j _Êå®Sú]¯4XGÞ$eñYó®Bs5·],嘩Æ‘Žý>Þl’^"“5*“aÉ‘lGíú;Kpï¯Üuã\9Yž°êŽ[SºÎ ùëOt1Roý¯üsüëÿ (?Äíáœîž¦d÷û£ â_äñM¹î¼Ù1×(¶úo'%¦ê®ÒˆÕt˜¶'ÙÐGú„r¨ýhƒ4™­äÕñ^Ï6TÃ5ê•iÆÜÜ&;E\–pnqœ8g'hf¶s€Š¤L£TNGOªÀ[Ê9œæS² P(ó‚?­ò%œ{JŠ/@½M•˜¼!ÙP‰Õ+¹WTŽ>‘yœ¨×ˆµVõÿzŸR%þ'\i'7_A%ÔþxµÀ¤ÙL7Xà‰«`å÷Vø þõÖøe™h¤ò^kF*=Èèû8nƒ…Ë/£” 7›-$߬±•/äòçÊTþšQZdê%ÝéY~¦gêq»ŸoíúÁpÄ,SQú1NûŸ£I¤³Ïˆè4ÞŸ~ìÿg; üéÌØtJ³¢–šÉÂWM«»åÁSëjøö—!(ÎèŸ Eèëa<ÑQŒaŸÚýÈ/'Q2JýéÆ[mVæù:ÃèÒ\à„Ùê¿ÑÅX!«¼Õ=Ý××ê ŸI{Žüp¤'þ$/ý|cë5Ÿ®w×u§ùëlõß¾õÚetüajhKMÚ0Ïð¹= E5ø:7Pä:G¼Ueˆ‰HÙlù„ßê7n8«3Ý_;«æúCgÕÿögõ–ö+ú`‹06\å;þ.þ_ ­>ï1EÀ¹ ½8]€–½ ckòW®ç*åRUÀFóJ ‚Ð∀q3Œ…žuäÞûó+Ì”$ ¸Aè ðvës³ ¨`MÍžš°±ÄÓ à(‰£Ÿqx§pÿùϮѪÁ"õL8ŒÀ‡ƒ(Œûbÿiò¤Ó×CâO†Y:£ãÐ&N YdÖáý,·Ãyú1*\P’Øç^õÑÐ%ZRÔtÈÉ»&k!×Ó‘æRW»åø—I1ƒÿ»ÿdœtÆc­tDÚÈî½dy¢FL2•þLWÝø@qø\Í­Ÿ÷~n5‡á'““ƒƒ(#Æìí sA:^_˜íçs=ÑN!0÷êñëõø##]!èI<ù|ÒþôŘucM …³çÚb •Ì4Xƒ™“¬&ju]´–€´žEÅgªz±:È—6i9R$­§;Ðñ‡Þ?Œu*Ìüÿk(ëþSç> '­øäS¯r¶îµ^Sr½h¥\Jéðsªäõɵ/¨¡î_é@íׇ–+ÙWµt4þÅÊ÷i­Z¤ÎÞªÙ[¨YrÏ+¬©Ì2–ML¡á:ÆAž/¤“b+M<.Uc'EU&áÈ&q@ÕU4Fµ:ôÐEâ«Á®ÉuáâÒ¶XÏb_-Hoa^3ÜfžkáfA²ˆN&û73–¨î!a$“ü^ïV1Îñå­ýöÄ›ET™WöYöWMvgÇÙáÒÏM«¦Om4}¤¼0“‡Äí«LWÔŽèN”©*ö¯'ÎN5¬ê.IÖWbTs§Ðªe¡­ ®)´Z$0º ÄÇ9Sµqj0½.Œ£7iÂûz…’à¤qÙJ»£Ö“)"V2©XkÒ3›³e`q½;VÀú6•ÉQç|aº“¥gçØ_™[ K‘&g9;ÛÆ¼ÃwL÷žåÞ„zZ8”v›ëqL€íê5'+Dêš::Zeõã+ â4.É€»Wgº§z¼ªL‘/Ì[ˆ F#šª06"Nã‘ø`Þ¨]Ï´[i—³(ÓgéÕ\®#´õÒý¦N©o~N¸žAzSÁ6Iæûšm%´‚}||O-¾Ô‡Ë·žôÈ0ÿ^Êä€ê$mŒ.Ò\Ç}ëO‚ëh(ªsÞ ²‡Ïå  ¸-KÈt—MøÎÑ;õú¬kPáæzy=8\¹€ZÍè\xTªë1é²7ÉØ§1»Ãë üòwÔÈáÌS¥NW•.dhïy©äáØ§‡i6M6%0üÖŒÉIŽSYî2YXg@?ƒ®æ[%$çcc¥§(Ñ/'Ófÿ®¸ŒÿOòtÜ¢ý m6MoVS żÉxËãX\å¥r|FhauŽÆ}×1—z‰ã3¡rI®›³/-BÛh(.5ŸšÂ–œç8ôœFr G"Ÿb! ¤Vª`ªõ¸Ùd{² :S)‚Y6 Û´7rõ»´‚´±:VÎAÞ£?tFñ£Þ¤vº‡ø›˜N:t0Þm0ÎoÝu€Ã÷0KúT-ú»pÏC— ücjÛŽ•²ìé 4ù» £ö>•„kudœ {úcçŒXÝWù~úRfI½æF,‡ûÄz@,*¦ÁÏ.,XuŸÎÎHj‘¿X¨À¼š6nODÇ8ö¬Bâ¤ÕÅò‚G$±¹ƒEKK¦Îˆ:œóÜì9&c\ß0Ë,œN’ö aÏ%a7Ƚ³&ÀÉ@•£ù‘œôe_´'QÁœŒË  bF•¡Á¿cn:ð–ž”NÈÂÏÄÈ_Â¥çìkÚ $ô®œô’ mߥgW@×wz—ÇM¢kc‹b„tôxg«ƒÉŒ?´s8‘n6;Q§Zíø{êÅö-a;TWH®>í×0V_ŸŸ’M¡NÎg‰¹öÄätgZ³{Ø=îtÌ:t apÁáÕØ¢ÚÿâX«¤L.Ác=ï¥@/%,‚8Y¨zÓ¬ß-‚ì§bòží«2ë¥êØW]“ù,½uÌÍÆJ&3™g±Í”g%®³ILjáAª¾[´ãH•6Ab/pûE=¼ÑÐÒ'E–Æ–‰™$†&ü‰j|BBÖ·WhG§îŒ¹¬í§tÚÊypYäÁZl$GÛ»­YeŸ*ÓA>_@¾ôG$ºçt`m°Æ†Yuî¾¾[±Dã”´-?ü {Á¼ž6à Cž¥åpà|Teu…q6&/S ¸êù`Ï‹¦p1ÑŸÂØŽµ=ÖåÄSCyÙ#S¸@;MÈ¿›úÿ^ü½øÞs-.«²Lð%›®Þ_þb›´Å°öÀÎâÛ+ zÞ$<{wƒA:XøR ²g¼gBï-;Žu’4 ÷âU•OúOfÌx*3íyá„Ø ‹?Ç@ÒÔ/í ·Ù;ŒcaCi:gKsœ^ɪM "8g˜8jûê°Æ“Ý¡.>B²“En5ÊY0®ûçð¦ntȸέ‰…›×Òl@¦Á€æÎcG) Oèf–ÏIPv@j+ùÕáÑ“i±xjÛnÀÈJ @?m¬2˜Åü#=a¨é›é!{"†—ìÚè²éH½è_Œ<šOÌÖ“ü{²ÜF’µ‹¢ãЧð£k¶“Ü@ìÔåOÛìD1IJ,’2ëÚµ<D!І$ô6çÎÎàŒ®ÙíY½Ø]ßZî褕bfêÿSîÞ._í·ÚÄ1D~+Ë}¹~­×w0R?П»Ô)]gjÿŽÎBÎ0€­½ODâGÃ’6-wûŒÈ(q¸[KTg³˜Çõ´+Ìü\•Ò[tö øúíím˾n!ÿÇ×sã“` žvÕó½y áYI×äæ;¥Ó?;/£ 0Ý·_q(Clˆ±«&¼¶‰Í /ʕʓ—ô6h¤qRpò„Gõ´I½{d®{¾˜hVC˜EÂJ¼ÙK¢D8hi§‰¡tïÒ¡]‹kîëGŠlòæyD´9€hƒ/&‹¤Ͱ" aö„Àòí"dAl`Ðüfh¨¬¶ML¸ô(pÏëÁf ÞZ$dÅ¢ïò'1úÅØáf0¢EC¦¢ ]2tt2ຂµ18@].ÁOmÜ{£8³Z¸Ð ã1"B²;ð £è ž²öHŠ·—8Éž +ú ŠQK}`˜.2!û—iæ±!=À¥E"Øîa8ÖS.-sEm©eþ ¦·ájœ…H¢éùê૦\Z%"€4eÿ*8WCùRe_ªÇú-5@JéõÞÜëE•c°@0Å"Ú,Ù "˜ÍÕÃ!€ À†fB/ìË=œµ¸Ì¾ù\Ñ>9ìe—Ú%‘\ÄBø–2• -¸ÑdÂ$Ó(^äî~4ó,ÖtƒkVÇfu¦ã-0÷´i¦®FôŽ˜\Ø 3x¹’! ¯l`o×ïAöiËË‚.4öÄkXÄq°Ü¬V¡~=þé%äFëÉʆd˶Ê5^ ì]¾ÜŽ×qtêêêRm\^^]¼ë(¡ R†®§«ÓKÏývêè„û~i¨Ó³— äphéîÛ âvßåz¨Þ2ÜùkDlÂK©¦6P"4h“•N åÀåÌ{n Ñ‘?æ‰-I¢›Ã€wꃡAº›Ü(,-Œ1 }uÔ?rÀUXöñÊ&xÚvQ  ¿(J£Rá…uiŸä(TÛŸ|Ìí¥ —*E/ ð›4?}QË?…cu˜l ø‚âA€¤‰ õÅOØ]&?Ÿ˜Ï {Ý•€P#ÕC[ ¤¯ð‹ZþA}Â6îzEñ¯½ŠE›ŠÄXOžmµžÌ¨3ÏéØ_@Y… XOh-‰^ø²š÷‰“ÌdéVÅ!rmƒ}~:/Xõ$R&+›˜„2ät¢šœ¾Žˆ0µ&‘ÚЪ—Ò46¤N»µlLH”MÔùˆ¯Hiéßèr˜鄃lW*•2û~Î: ¬Agöó&¾©“wG¶I€r3M˜l)õ&fëóvA½gI™hêXiŹÛ̵)º,Ñ92Á';á|Ÿ¬j¨H,ü¾QßWe/ fQ7éê{h}gíqÒ#† z@w}ÄduÜióעɌPAi™A#1Ž«A·†Ê#̪uͬ nÂÞèVíRÎ¥T<Ùê…&30âÞpúöäªÉp€Vdpj{É &6Žæü6i"q‰W}Ó¿ ¾å1®'î˜ z'OÕrjç6¼Úð§}à'Ý uôæò«Oçh·‹£I<ýÞÓÖî¬fä]Ì¢´6GǼuŽß«Ã"åMrP^¢æ`žScÌÔRé®)U5—Ö1ûÞ ê}’vCâ .¯v ýa"¬Eƒ_dšhPsLJ„Ž5]+4ŸAWKŠÓë´ ëg?ÇŸÙèì~„ô‚K}imèidLÆ÷ó¾ý|ß(ÈÄèVÎc‹f{«µõTm?{ígmÆM¦Þ¶/‰áúôS8î\IdKTB~Ÿ—(û²2Ð9ð‘{¸f…Ã3¡ØJ"àÈtî æ1á§·UÒÿð±žéÌÆÕѯǻÎá¦A²fŠD—|è—©šŒQÅñÔùq™Y½‰U!çS˜ Ñ3oñë+SGì ±“°ˆ.]c9? Òq*@§¯4ء̴°žÝd#|ÓÉÌ€zåì®ØY|)ê›1mµAí¨Óq÷Õæ×o bý¡ŽFzƒgðK™Ù ?ÓÍC¶¦]%$͵º‚Ö$u{À´!jbV•§’±ž/æg6‚¾¬8dy—NýÛ Ù9Sa™´ §*I!fsÏ ­M>¼¢û(O4KkHÈL½§}‘ÐI–³mlÑÇïpÒVjBþý¿‰÷‰ÕyÒg,&;m|&ïØ؆š3H©KWbnúNçÔÖ¬ÙðÄVi3¤º%BÊ X® LÂôºÊª"¶(©ÁfAgJ¬ïerk€Óec‚¼LØVoB@×Úä­8SLVMpÏÃÌóH/ºÓb‡í»­§³ù$óÍÏ‘0V4gñÇP•|ýö*Lõ@Ç$³œ#¿4¢1¿%ªý1´Çáàü8°Âö8’Çz¢± åD…]yW¯ú.oå»6¶7 PéÒ%4‚VsnfÏ]ðÖéÛË´Æ~3£ Q’PM,ñ¦¥XÃ$z˜/‹»Ì2æ#Ý#;<Ýí¦tÂÝB?ñHÐ[aWÀ£ ŸúÈs áÌ„2§Ü9?WLA®$õsûÈùèà°{Èë= G‰êhhœsbɇɨ°<g™»„B)ðjàÒ‚ÊòÏÂé!úMÕI½qeB£ a º%¨ …7ˆ˜—éh0ßå’[n.@ ô<¬Û#YBžCVÐO†º䬨©ÙU ('½âß[º‚”ܹI· Qù´³a¨ö‡æY;O{­ô¶7i%iëãÄêqƒq;Ð >¬"ݸ4^Ùôó¦ižÆA»âðàð†Ù®nŠ ™ç“ÖhšäI³@æ6´Ò¯ßœ¿;<ã®äY1(è|ÇɨíkHÚykº’XÞT:ÝÕSévÆÏšy›(»&y©ISª«ÍgÚ {Tƒ¦9Û'*õ)i¶s=Övˆì5;-h‹бÙOup£Ûùn+ ǶȽ(L«½‚Ì\3Hx=6ÝÍ´#à«Ê¬—þ¸ôY1æË…3L‰‚$> Ñq>´1ºªôéÊÓÈØçˆ&&¨Ù]n`•N »‘æã5ýÓjÐEEOø~¶±ÁÁ½â^G] ûøÈ+´Å ËÞ Ãrh~çÌšDá"ÚN&›á±Í–f1¢[©qU—±*Ëa&ÀÏï2«g,ª6¦€kÀ¶›N¡/™7wM¼rÍ1熞ocüvçñ §nÍŠ¦G$©[3öëjqÑÙfKÙ@÷mÔílÕÙ´‰SA»óÃ/³¿œš‘·AVHÊé[âœRD¥àjö¨ÃÆhnúµár»‹Ë¢‘éa’Øl¸`œeo’6HEZhpL “IµXu»59;ã,2ºsºóàYâ‰èVD¸G¹",ü0¼:+Ë8é-T.Äx±‹x6p‡×ÎÌUÝØ*°ïÊ1wv7[& j–Õd=’¹-í±½Ò@°Ão)«þh²†¼nxﮎH°s|²ûB~Ö9|ÝÛ„•1V¥ÿKwxDÂ>Ñptû~2ÎÌ—ömн—¸ÞõAMöZÛêEëɬ¾Ò¸k Ï/Ilœ³x^$Z~…¹tïÓé;Q™ÇÓĆ’ùÒÚ½X²`±ü]§V»UOºÍÒÕ?AÎňf8œÆd ¦_$Kš¼Ïb6Wƒ’ͱ+ˆÅ? :ù‚ý`†çêœñ1Á·ÆÚsVn_Ví²Ç]vs‰òѤÿ*•r¶ŸÜ@7HÒª¤wJ›¦£t“Ó 11«A±ÏŒèaš0íë Ûî݆÷ui„Dôž«íÝg­ç3Ê샸J^Y¢a¯H¬ PÑNšt™GŽì¢)’$.Ä*HÀuFjã<ìñHy#qvš¸„yß 9¦VV ü¼ ¢uJ„$Mˆî̧öÈ¿çµÓÿ:ÈGÈ]ŸÝÄ;[[϶žï÷DZ@ô$“÷òfùÝd;!ºñ|{IÓ±ïà¯|ærÖrDÑñ¡ÝÇÔÓÞe~æ¶‚¸Á™ÊFràöJgn¸ØçEˆ´73µmúcξ=IB$òvf¢.s«Ðd’¼&ƵZ<¤>“Gñ'ÅÁµ Þåjß~mák;‡U™Óï¡Jðƒ½¦¥Á€µûÈR$õ3o;õ’h«zË.‡Ž×ÃîâçƒibUH•GIO/¾ÿéáÎuš |êÅm˜Y5SUÃd,Û{©'Š^.6)‹ŒBa9äW{ÉXZ ÔsžU¸³VHÔq“ÄïéÌÆ«±¦‰7z¡"¶×T¤h ¦Öx·€>¤5AÂnöX>‘GÃ4uüe £¡xWï÷ð¼Íÿ:ü¥NGê< ò¬7$Æ'fKºÝ….…î8ÍjQ}×òç6üe¦XíÒˆÛÉLé¤`è ƒn<%n±¸N`Ñz®²á®lë‘Ì‹Wü\œb3Z" a˜ØølÔ0–Cn¨Sâ™à ^†>pv|vu€¡Ù˜C“eó!æ7"ªBö²Ù½˜Û®‡¶ÆŒÌ›þ¢¬ˆª6¿z€H¢”}ËÀRÙ ¿C£ÆÎ‚`¤Ì„±›>µ²‘ê=WJýE4ÀÒ½'¿v!×Uæè°¹ÎF8?ç¦ÐÆOÁ§O´[£ˆ  'a«²UžÓÉcŸ9;œ;LôÉnJH4ͨƒ¸EiÙxã$odoWœ%=$ÀDI\|SZÊI¬"ÑÓÁÔ’¾èL$¥ºÌSú3O{©·Làéô€WöikQ1¸‹–·žXÓ;‹p®«ïb(¢ÃPvwZOŸþ‡«àxJà/½L—J Gì3$¥feÚØ¸ÔÛFؼ`©}Çáî-’`A$ãjİ•LW2zÔª¨Ëê™ >2‚íCŽyH™È08Fç]çDmc žìþ§LAœeþÒuÿg&ˆ$WÚ[z—k0\Ŭ^ñFr'´|ÙJÍ¡)UgÝ+§Ö0ëÖ€Ï"7UlÞ‚ °ï€þû†ÉÙ¢Wk bÁð°à öÒá ý5V7`ÊÚFA‡ÏÏ©b·ñ‘\8™.»U_ʯ/ äFZQƒšŸŽCâiìÈ¿{ïÀ¥—^džšH)É^[¤U÷‰Å'Md£š³PöF÷C“ŒÝÐ+ßð«ÒeDæ8¹#س뚟ƒŠ¨ìÛ"3ó’D>`£‚¥:ùñ)ÿoêªøô‰Ö¡“DÌŸV‘Ó²•š4aàn8¾OjgRû:,;l'q/N\È”jTµŸ§ïÎxèù÷ï~˜üÊæ§ž#ŠÛ‹ˆâÙã7ªAHf¯+k°Z}êH0:{£²ÈÈÖ®\Z»àxÑh»DðóßkÁê÷dVCVè!.–n8ånP®-Vb×` @@LâtÕ§ O´ Aü+ë­ýP¥¨ ¤-ãÉsåÍ—;5œRÝ£cO  "ë›,|’ãéêŒ&¼kJ§a÷tõÇ)É“ÔËT«}¿KZ·A·=`…öýÙšë0K Þj½xz6롱hwœuÞ˜às{\VZyô)w5Mh4 Õét0Uûƒi|ßÖ v$ø=Ëî.sŠšåæ:xž¯9C³èFr’è>e¸š%‚€A@;«€ÑPdü_p[»²ìqƒ‹ÁÜßÕ¨¢†›4‡õS|tÒ£¢ .8îŠï™Åà†~4aÆ#©ë0E¶kw¾ó‚·œšøÖË"@pR­ÈaˆKê[Mé—K[ëIþ­“œ†£pKò‹柂@´øU>DjUN–ø–9-ZØ4QÑë#” dÈm Cí%‚åôƒUÔ©ï¤?cøõŠîr›/h€Å²ª3þIj¡¶Ø9lYH9×øÉ žh4ñ@B‚È÷*JM•ý«ÐóÄm[q“2CÆÈø"óZêp*y,håP¼ì—Ë/°’™¸×ÞšÀH Ò´>•,Ÿ›îêDKå{Ñæ‘ãíxÁ…çŒLžŽÂAL3qc¶í$J‹m"Ì¥r»ñ[ŽLÔ\°ùx%7ÁÓØ‚ €J˃<5‹AâÕ0gµy³tºšGù½æ|¬‡“x0X6í—ö÷ê´»‡aU 2Øýi4+S' «€F”¹Z1Å3óö?‹Ë¹«š ‚ñ$ŸZYGö&±Š‘µ/ñüyÝ©¬G®Í¯¼½dbÃh™õζêŽy9¥ad72WíñÏÆƒç!ú¿ê0^âÇÛ ˜©\µÝQ=” YÎç¶Rg©¹Z%~1ÕZØ|àD~æöýýfán©,ØI êîexWUë°(y8!ýƒBß½÷ÄËßêh´l²¡²v×EZ½Ìi2W5¬~ð+8Մ¯ †øýÆu d®Q©P™S½=~©*Å*Ú ¯s¿”àÖÓý!†…€–%$ã5õ¸î7|þÚ…F‘GKÍ£âPßµ Ü([ê÷”LЉz"å0òÀ¸m¢*ÀÚ–Ät=À`’¨¿‚†â+;@©*Äwñˆž/óƒ1Š—/v:eñPðÌÝØl#uí¿(YKBa/ Ý0]1ó±ÀÕT`êl& ¬½l×ì&~þd{ï)Gl>›™7ì·AÄÈÚ¾Éd•\ICn¦¦¸5ƒ¸e‹¦5 Y¾l‡Ÿêˆ™në;1­]ÃÅl÷i\4/¤Ú¹iQŒc UX™Ç¶ç•ÂÏ tÔ/Ù@ñ î&˜¹©p߸xrb0V:†¿ÒŒ„åI­Hß­ŒýÝf‘£ØVªk†3ÖQyˆ¸ŠÈ†æ7’qÛX ”ó „üúYWÖªâ¥n–97-ˆLïp ýð&ô‘覆ËȬpCï]X™óüM:ÐÀ±JMH§ïÎbB&AéÑ9ÇzœÁ_X÷KÄÄÕYàj•cš’c[²®Àæ3«È$Mò¤ÇØp߬nÖ?·þn}ìxË9QG&ÿ W;R—-cŒ­¸Ú›Õì¸_ x8("]Ï­&ìfFfäºÎÈx‚•̘ø6êt[. 5°Í€Ã‚£¤Ì1¨=Ý‚!÷‘‰RbÀ–]FŠà”‡Ø{ÆF÷5´ÜT‡Ñ°f(ž Ü™è Ã-ª"t@*·…AIó~ªoMFm`”»‚ “·ŽWÍB#s* ÏáÚõ‹±²—!D¤=»N ΩC7ùþð úàŠ}ókSø@\¦æTf Éç] :RAäl–Þ9†Ýv÷Ø­™”àfrEó,ÌÕ3nÑtA<ô$„b€o_…¼`c¸I™IeÏoæz9#€ŽUqš%Ë’iAòSTcÚ¶bÎH—v_̹+Û(H ™Óˆ˜ÌC•›T!E¥1silc#¼h¸Äi0äÚòÌ[ó[NªKtãbL²LŠ˜dD{]Ùm+vÃËŽœÄ¾Ðø}âX²a›ã^[á}½”rtx9ï…ôGI2ª¹s…êÍ06ºjX®h‡ÓáTNúûoqt ãF_ ¨_c×RØŽÏÌ#Åíd2ÚlÂVÈØI·ˆózF9ƒþ²‘]¿>yiü¸M¤½åýË0z6ªJöq%É,W½ÕŒ©Hs§9|:ë2{‘ Ë¢0¾RE è–MZ°¡…hUh¹r5‰mð *ļXryM?¾¬Cíê¸mó·Ã,užZh¾C“‡1'øbIVóS˜f6©s_3~jï¸RÊ¡ðTmx›%±Ù›õeqõ[ZaêËk¿:#ÕüšfÖ‘ieÙ`*E*¹y1·õnY<)~þ¹âüøèýF„PÑ ·¾ÿK¼Ò?p!£­fY8™ª®r¹ÅK¬ÆYÆ7º¼ù¶ám ™^rÐ>˜Ÿ¡ÁÝÌá±ÕUZšu¾°.gƒ‚f%ž jtDžÝŽßô%šÎÂXÄ”2c™ø€,2Hƒ¤RÁÎ#ŒÑ=0Ež«Ï™æ$>p¥°ŽTÅøc 2ÚÞŠMÊû%{/E²wCPmÜ ÈspœdV’¬‚ò¼‚êHöG&îéFš–›NbGè6D‘Šœx$?Å0ñOâ2ÓX ó¥Å¨ó$ñgf¼!a•ƒæ-\vãM¿~ äÜDÛÆ!ÕÈ5ÎHÁV‡¶„2»¥œ çÔťɠp1Ô^)`<79Öiw9ãu Éêc=1PLf .¥"O½Áh´|îwIŽP ,4(ÿu¦Ø=ŘpË:ÿWiy´éÀTYÆßæ·ûÞc¤M’uS³¿…;23#-±‚¡òÍÆIè[ߌÊOû“Ðb"¨‚¼-¤TIã Ùxï1B c »,Uî"4’˜noÏ‚0r¦1îê+Dôà5ì“P—L$póq´9}gAãÏ/õΦö¸É*ÙuY ÇŒtK_ÒêhýGø¤òqffY>9ó$'ëÆf4Fâ ¤n>{wì‘̨GÙ#ÉtË™|/&=:b™Yx¹÷ÔNGOÏòùö2)jµ_&©`ähaÑ ³‘^œˆ›ÍTx~}Ý9þ±² w`äTGJë` ;ªs”wˆà¼ @Îgñ¡É)ÊŒ‹ªF@Öî~wª%`·)Ve»MZÛ;KOÂ%_n²gòˆ.ŽpTÊ–é’wME¸xgJ?Ì0kù¡`­da©xKFOGóKÄʲÑCÈUjACfÓÖ÷9™OДڿcDŸ|A­uGÜ®åÜ&¨iÑçmfúX^¢ö`p.MÆu‹{‰Ï€Ü5ûâ»tþñâQÕyvµœFKî<ç]»i«JzI{+DÖBfjž}V"¦¹$¯f¤x]ˆÿv€=Å’Õ:‰=YZÉçõP“èÜû–Ïã"ŸÂæ›ßàT¸ÁFCÞ8Ĺ•SÎÙþêúò“ Ú(±ûYW OL ”7LN÷@gÈG,y¡ûaÆ;½kÜ>]ÞÍyFy¿ V õ¦S!&IÚ¨Yz#Ü;ÀÐYÄUëõØP£‚öu{256g\#›àYYEv\û­ÔÖ8¼­\HëzZ)Ïl÷ÔÆr1Ù–Äóþ{Õg]ªâ¡ä{îEIï¡huÆv½¥tUeœè¼XN1™+¾`N˜d%9"õl^1À '¬•qk°åÄs ؈ÃÙM>¸Á$Ñþ8ŒwW“V£<@Ñ=eK/¨ÕGؘðë™S¢ ®UiaŒz$Ìc8MäŒ?&Ýl+…h’þÆe|äÁ´9Ý€Æ?ÛUjªt2–ÄyŒ½n§×ßÈ;Ò"f.ÂÜ£ü+£ð¯ü *£>Fó@¢twáN¶~V#/]N¥_3K8 xÖÀäùT‘´B—lÔ,œ×+¯åõóÀùÑMÂÝMÂÏÕYøP'£&ûŠˆ6ÌöÖV}ŒçZ­#¶r 5³³×¬öIÄÎÖjA×W’¸Ù â&Ë&‰I×8=•WvètUp5()ÖœâѾók|D" 8~ÜŒ[mTS¬ X‡U×9½¤·È^•QÐÄUŒ‘ä™=@諯)*]ÏКÍF…µpe>;d˜MÉ.qnrÚr¯F.-íÝôf0Êg³æÜjÉi[©o:¶)fÏrI|”{õJ’ÖÔ„c$œO¿ûµÅ{ iÐb–nñâ“ ö!ÚÔ8œÒÍòKö†«+ä¡α[7æØSÍ6yè ¤3E¢»^:C ‡Ñõõü­¡oºÀ¼»D :>ù}ŽÃ1èÙù‡³× »m½º]ä¿*>¥¶ŒÎ•ìaú¯ÚY°Ÿsñœ?O­ç)ÉgΔŸðC{@ pÂûØËUØŽó:ì÷NMõ»`bwÁ W¨`¢§.#DÔ »ìV&Žø;XR[H?²y9"£)9æK=„…‚ã¢Ã$ÈÛü6w©•© g­OØâ@7ÕŠ=˜àÓ¼W|wŰL5H?{7ýÕ 8eèqfLéKÇÿùjôÄÓY\ÍÕ\J¥l­ˆã`Ûœ‚ƒ==‡ØÀZõ“¾ÑNhœÑÃ:‹)|“ÇAsw§æË§ê­£+Z.¯žIL½Úýòƒi^æ®ÀZ+µS Š༚Œfõ°s³ž•Ú¬dzÜýMÔ[ ²JÌ’Ñ-š— ”åQ6îþøøñ#àט‰mâ;•DϾƒ]T¹ƒ½òPSdèàg)oG ~Ö¿„yÝb¢$k*xiØÄ´I@ÀŒ°€ì›!fü0ãï…lg«.Zxï‰5|ÉèéK]ë‰ÁÁ{HoY·^õ9ˆŠÙy«-Ú§ÐêìßâO;#ÁÄe.»NW«·z«ý}Ìë%N”‹°ýÀ|jÛ¸ãìÀOÀÔé Óÿ/NˆªùI½ýKbæ‹L]a–átl>Õ‹½á”¶ê-(È>ã ׿(üÛp ^YFÜà~ó‡²Ì·Xø¥€tßb+¸&íK,+?ßÖª³¿^þßoù‘óxÙŠ_Ø|ÈÌõخշ‘î¨æU6éVW¼_ï÷–úŽPò†íE·úêÛ¼”6kW7{ö”ˆ^Eà,})‚Zï5£° fu¥ï\©ºéè¥eÖäå³ 0'l‘èNky÷8—ˆkòaFíăeÃ^K{Ÿ…u¿å…îêW/õàOKÁ“àÏMÁ÷œÈ³ÌcÎî5+ù|¡F›½Џ¹LÎypíížãÙeä»­gÿAû^Ó]AK]ÄíË?¸’_¸ö Ô¯3—aM³ûÀ—¡{ý—ã*¯‰à_Œ.ØÎv}<ÌÔÔÂÖÓ'mRyâ'ô¡[ÓŒ¹JÊgÜÏÎÌlg*s;oÚ"³&#‡€ÍÙ¢ÅuÊ€¹8eŽ=`S—x"Ê 09¿U¼:Ù™†ï«TP‰êéw_Éf˜•ø¹Y?4Exrþ!ÞÓèÇ—É1&R=Iç¥9väc´…ʼlô8aTŠº˜©Ê›‡ô!¬Ü„5?’ŒQú´ÌDØ@©Ï\)ñ¼–½ÙùãäñGU›"ÿÑ3Óþ°ãflù^©È]nðèøÜá½4—¢ümð¯‚óš~ít”’Ñ´¡Â |ýùO“q7ð+ÀCº–éEüî¥[µÜ½‚·de 5ÎÚVÜÀÕ8¶JoÙ+Ë›åÅ—R(®—ÙÌ `U…5i—¸ðK3êrÔ@.8'B¼í²Œkr’@uh”wˆIOÕ@­üä!ÏÈ$H£å»åøèÍ@¢e'å@~­$ñ4x\³ÇIU™8p±^âÿ[Ì 5-ºÓåC}‹_ïGIqu˜kªCÉmabZþ‘{³g/þî“Ažpg»µõk7Èõsµýl.¤êÐ[âótÖÞ® ‚øËþ¶æà±7Žm¥¥þ»¹W7›ÌS=µ¡ßtfص”“X$c9o >˜yÏT&ž Ù¡ÄPd=†¦3·4qlœYeØ.ìÛð]ê®|F/!‰µ>ªUÃoð¥n6ñoV‰“•"Ù¢ö*ô@r7pí¤ÜõóI³Éï²iyÜ;m¹ ]J’3rOôÀ8•‰ÃΖŸÙÐäh¨ú æª,Ïr‡ÄÓž&QTtÕ¾?à³BÔð—ŸHþØÏ'üaVÆÉsÑe~ !àПv˜÷¿¿ÄmAr’òœ¸ ÞµnøíÌýàì„cFrM¨]j0Éu7™¶é¾ Òäž0/î½{j«µ³([­Œ‰“.7H?Õã€}/ÍÖßc†TûÈž¢¢„céÊâšcøÌiÜöÊ@96õn%p¿1êdŽÔ<ýšNF؃÷¿CàÅFc Ì•βQ Р²â´áùZ9qõD¥1gU®“_Ùûåq?ðõ$H¯ºŸxYä˜ë5m,ý‚ßHNÇáã½JóÅéNŽË·£ü1.€Ã&@ µÃÆOÆIšõÉ›à„f§Ó?áȈN`²”:˜»’¨ Ÿ&ÈRSÎÜæ rë6ÿüÞÿú]øEÅåFïvb1[ùSEbL— 3n2Ü¥44‹ ‚ȱ¦Àå¼Â¢\Ñc!hƒ ùQø(@}"ÃM(hÊ¿‚xÓæúQ™ zɹ £YiÆf@>þÄ9–èG¥Ã1Où0ˆ&Ò+ÎnEŒÕÊHiª˜Òx¸WØõD.bø¯E“¡î•àO8¾ò*O£F#%ûè5g/éªð›Š;ƒæ9*!'ºü£S:MH`¡«. ‹1ÿœ'Eoø£‹qïÛ~KdýhCCG7I_ð£¢Oº‹ ë©â'ß=‚6ÄÞ²ÀuA2‹ˆÐçÚyÝ®Üa‹y¾ÄWžZÀÀ‚¡Q5ä‰`ðÝ™Ž‚]~¬N9HvÖ”%éˆ*² +Lc`Ó9{‘Î }<¸&%eȯ’ÃÆ€m²2ÁÔOÁºõvÝkÔÅò€ÿ•ß{õ¯Èû SiûºlFJÉى혔m¦…,ŸÌ8{«†yTާ¾ æh©«ddPíVäa†#§jé€$³w’SN-ÜKÙ°åOØÅlîƒgzF xä3XžÏØIFIWÓ2w_›œ!ÛböV£_Îܧ• üµW„Ýòs=üj¬å¬|‹«à¢vðÐ-xþÂÛÒÜ u-QìÏ\)<|Â_7ý ?;‹8‰ N°e C'à£È©êE±)Q–HÄ\˜yfE¨ÅK„^UÆ\ïQ‹÷98–¯§fm‚š}}7÷Lò÷Î=žøýùg q¬Š›û àÌAÍ<Ï€Á1û0æ»ÁµsfÂ8æöO‡ÃÃx/ Ô˜æl>À€ä38¡åVâsͱAÌ€å#<FBÓÂ?ÿ»R 4fÕY)P ¯æÌ¤¡7­D$_+ûL„šFì‡X˜VVÛQ:ì1º™eÙ ¦»§O¬Û\¡šP“W|厩ç¯Í‚E’ØÞ0šÉÂŧc6£¸1B#;šä éü³IzŸeJDÖùÑYFjzhNÙÄ!B«Û´µ¨‚ç‡Àê 6?]y×ô9k”~õ,_¿”Tqï—Ngé¡Â †‹¬B,%³'M>ð-/³ÏŒ¾,÷Å“p:¤J(øù©ð*í?ðŒà®^1I2Ò"Ñu¨ +O®*•’æ’ážqm…I½Â øVçàõIÉEòÜ¥)w­§'5µ+1¥NÙ,Áx ‰ÒÕ„“[Á?(å|N™6ûĹÅ>C‡ôÕ¡ÙW‰Ç÷Áä!°øyéÒI+Ú¥IÎ&ó†‡)þä½–š5ƒz‚‘±Í0C¢ojÅÈ’Œ³á挬&˜>2o‚%òuèÆ›*Õ¶ŒW5,ÆÝÐ×LýÇz8ûxêy6»—±thæHdè ðÍÑ[µñf"Ù·h"I^‚ûRÐK1j¾F‹&Ôõ-5=L3=ìŠÛ°°% •ôR-)ôQxÛê$wY—(0ÔAîËŠíiªð2 ˆbÔ~_>| µm5]~ŽßŸ- çxŒC•§:ã²ržËÄlì- ¼ùŠa/¹×'Mþ÷šúê{ͰúáÁhx›¼9Ö³þg‡þs¨ìÿgž3X?ÔŸ½¼tÛVœ5棭ò¥NääÈæ“z¸AÝcX@œUË8ÙÝ +)Îu®H•—ñµù€S\gmÍóååbæ6˜ŸàRwѾÜçÄ-¹˜˜4l±Â,¦JóÌgÖ„PÝIàÓ ÛŒ@ÍšÔ/U•2j ²pÎçoƒjxi@7‡oá{[¬ÅKmB „GUš_+NÒ¢Çk©óŒövÓ³‹ôP–«ëù±Ýän5 øÉ¼TQ ß'i—Ö‘GÍÂRQÇØj8Æ•V«H§ƒ ’÷í!m™kÎ3:>“r[K4 Ûѵ’_?5¡*~æ=q*!:P½iˆ‘%åqÃÂg䡼’ˆ™æCÔ7œ24KÐÚ,É««+ `y9¦’œ£·Ì¬Ê¿òŽÊóÈ!ÈÔº2 ã£>ë‚*É+Qnb†`¤&ÎmEFÌr‡ðj™:ë¿fÒ}ܹx¨ÝÖ<‹Ùº‰Ð•xP^Ûs“vÄŽD³H=€Á¡ªÌD2sÑPÞ¤%#žgØylÑŸ¹M}vi …ÒU±¼Þ\¨7ÝT› uvô†úIw‰Íõ6ä‚C“§I˜÷k¨Ðeçuƒ(Á *NÓ¤˜|@kCý¢‡IÒ€éU2)&âÝ~ööèá–ãíÑÒÀo³“ZÎ?~íͬ‘eaÚ{°ÁD¥wÎÜ`.^/\f7X”@ojšdÒ&¿F qäÄ¿6cG½ËÆÔ’AÈ4ñògöXîÙÖØ¨"Ì´¥›jt7ŽÒIx¥Ÿ//Þ^5NÞ´ÜÏÍ3z¸l¢í•Ñ1¾FÇU°žv‹VÐ4)¨/“Ç0á0ÙÝ êf¶ *çf¿š‰V¢Ôu§½Ì»·êVðñc^'¼àQ˳ààâ™;¢kŒ]nÞuN~å~+ùH¢$Ù…þEw®Á)Š^ÀýTc6Íw\¬låV1(è¼7<‹«Sj3 ’Û·}¥;ïMîsA’™%<È;<©gîvCs4 ¡©Z¶)x¯ê™ùŽ’ñ¸ˆípŽp÷èÍ%Æê MšòA~áÄh¶_ a\Ü)ké¹&i˸=nÑ©Öù%G©ö¿8OWë¾Ód`D–MÓä×+Æé|ãgß‚XṇúŒQ’1|Ë9í±)²¦1 Cc Ì2+\Vêqµß'*ëBÉhü˜5‹ž±=ä£4öŠAœŒÂPm¼¦?Ú«4ú½•¹<×ÄÔ—Êç¦ú5¸‚\€Âæ™åàZÜjuÏÑÔw¿ÒxˆœS¨$r_E“¿o3+mѵ€°b˜Ù$¯ß{ðe$ùóÕv ħJñ/ód’eœÉ¤âå»Ä›–Þ/)‡€-_YÞ‚ô™\Þåµ"F òF1ir3#åsvèï?Ÿ÷Ù¼:»üzçAë±…FÒg/óGUÿ´­%Ðèöþ;wc^æó°vSËjÆß93¢m›7BܹA˜=cR¯ã|Š’/–”+Y¨äÉãT‹ ¤Gï;ÄêL’ Ú ˜—Œ'¨¦lŠl£Ž1õ]bcƒ€.—Ûf#8õ•¸±¡z1î’ä%?ªw—¬‹G”Ù¬L“þön²å t~X  ÌX­‚{PS˜ÑlOˆŒkâcš9›“ºLë󙿲›ÄÍö+üÊü˜¯¸€µ«¬>yçGšøäA Û°eé T屄9´#ÙH¬zÞ{qÉKÕö…Yºêý˳hËõ£mÐã«9ñVºÈ`ÄM«ô ‰AÄ †C» @qˆÉ=ÌÜÛŒ<+fÿÚº ¾’ír]Iâãö î‘S޶tyÓé”]½±q€ö“Éà)šÐŒqàÕ2¡™‘ãž{›!—“änL/+»~œôÁDÚ$5¬¶¿úe¾÷ßÄ@åKuAàH§èbdÔ‡%h"j2u=}wVÕfe•*\1°·úã(Q‘·Þ0Wû©ŽÚ:ÜðÎ#ÿžq£y2Í*&æÙxÑ×G¼¦2+%qѺEÓŠ?®qeþQpðø…±l>Ln›ÄŒÒ禩ÖįÍÉ6 Éü‹¨™+2òˆ‡Ú‹‚±ÒÃ7©Æ…šaÖôéWjÓÝâ'õzøÓ×ió¬ G êÂMà7ÇÓ&`“¨wÉL £Û@Sõt¾~¯üˆ7ÏÕÔãd¦–nF!HFS2SgãTë•·å€O“©˜¡Ê0éW¼j$~Y뻞‹üFmµž·^¨í§;­g3'ã SÏŠ &üï™–!ö˜ž!Ö@u£´)ªM>t­}ud7­¯"ãS „£qdßÂ2Â^gêçü¦Dé4øO—ͼÃëë÷M?å4Ö|cP4œç!ÂÚ´:úûßùD×cëTî!:%nŠ&»7\q¤/x4F\ò’±#£ï£$³‹£öOƒ~›ynr}­„àâ5·+U/éiþI}â‘Ú¿¥ÛÙíôN2„|ýye+ØLì©wyÈyÌÍz;“-‘Â@ᦈ¥•$Ät6ÒÑßþí|J[Dð…“H€ƒtÔSø €^T~$^_gÙ­ÿ7¶@ƒ ©e± “`!sÑÞ¨Ùÿ[½’˜ŒÙà"y16 Œ¸tŸ˜ÜÉä“Á2°¨¢ƒÉ€[£¿ ¸¶EÜè¹M¼Ü¬¥`Æ;Y›ÇÄûSQK?ÁÖz¦þw>Õ²äsç_¾ð‚U`1µÜ,i KKË?¢K³¢MdaÇ" ^‰#oÿ†Ñ6%Ùd$&Ëœ:è …FÃàŽ}‘¹})ù˜ä™©®çUY¬Ÿ¡R ³©-·äYE×)HÔ9§~!mÓY-سBˆôp%WKpÃÖ ¦tÕAÁö0Ëé ÝV®çÂSj*â,¹®8ßÜes>ˆ.Äz ×Êe¢‚»0#š¨–è6ÍAÆgÎ cPfµP~Ã4„Q¢êÇUòeby#2ÈYß‘8%e[ßyžYJ¹»`~a¿ZFU?™AÝÇÿÙ$gVvumð¥Cý/¤Ó×o.].ƒ˜·˜iׯ´[ ²Û8;>Ù¬íT{Í"ÔÇ«­öÂ÷ãá?rëÙP'w£s!öüZ„ œd6ï8¤R0ÇÒøpM©ð†ƒaDÿ öp±Ú®À“8þT†>ƾù e‡uØ—AˆLVÙÛvuJôö<è1x„tÝS›ûÙP>¶ÓO­"›"¾» ouÔW¯‰ô_Zò¥ ì¥Vz››¢a ÿSÛñšýÇÕþG|kÅü­ õz2ne¦ä•Î84ÕCN6áïí.Ñ‘Ü5w¤Xû`HWOL vñ½=N³pÔMúNbZùöÿ¯8öo¢,KøýøÚîÑÉéÙƒ¼6‡:Í‘´«Ë—MÂÍNÞ×Dß8Uýiƒ í cêD؀ŮMÂ<²ÿ±Ûm‡Ãb@I+þt“öû»Äw¾h½ØQ»»$ªÌ˜£_×\4ð+{„MwÄ:¥3a®¬Ò‘±„æâèœ0å‘ZbB ÃLÅmÂvú!8¾€„ÈE0@Ø€yä”Yæ+8v-d'©¸Ç¨KqÐìN›œ.†ýíu‡§î ƒå;GæÌ^mOz£úº'äš”j”Àœ2hFhh³õ¡ëÂY!‰npµI0¸Ó —Kg-tÒùÙPSPÈ C0Ä¿ûù„8ÿÛ³!}w.j¼Ò™éK t»‹qfnÌaU-?Á?%t’±: »v.kô­=ßÝOÎ Sâ°sp÷Z{ê9o¡:®¬ëí±YÉ)xï<„+”PÈw`cމ9T°ŠåNJQPm`ÚUÞ”m6sÇþ³ ò[L<ðœâêb ýl3PNeͦ8þƒ 2r{ÍÅáúÁ/~°Yˆ$~Ý„S È=mE=+&†}.;›%Eìõ˜ÉR6üøTaF› geÊÓžÚ~BbãÌ齤«gLŒ×¬óõ±©Ê“8®b¶€¤86ãú6jÕ¥ ŽÄ©¸ øúÒšp§|Áe@ôžÐq·7˜|+«O¥ËÎë e!ÆÃ³ØËŒdÔ6tUw¶^Ã|Í"coà ’t²‰}‡€ÃðŠ› õfÄoú}b˜XúãûYŠ„côšæã¨áI`†àJTh¥>ŒhÝCz0%’MÒÇ4€›û*´§ðrn÷Ó{,h1ž-~J,ÏΩ:Öl™,™ :µ* Í5š#>Ž•°³k³´ºÊ9t{Xä0&Žß >&ôZþcyƒU×2‚Hè kqÅÌáÆåØçÂèndaìþg€12-bQ¢§­gêÙ"0£Žóšç:b;A²:óD>@‘Ù DP>¾-[ä€?šiª˜mj\oJ¢­D1Ù>îšD%jo<ù‘Ö|ëysëEsû‰ÚÞúñÉ󷞨¿oÑÓûÍN¿·-„ÿl·vöæ•ØâÑÂæ*; T1X;YÑKT*G·—MâLÙ=X{(›ñ6èf}ç۬͘qL@ùwæ.cñõÄ™Ät ;u4Ž„Ëçs䎹8Aõ!ò¤³¡—…ƒØPcD®6)Q×7aÖ'ð½ÌÞ/ìŠÈ„LÂj®J–›6]-GRŠbtuGTôLU{ÖëR‚ûÿ$–€ÏU‘9hu‡$~ãØ°p_€ÙÌ£é¦4@™Â ¹D³fÞ!8t5õq=ÿϲ/Wgeî 7wüŠ eø[q‚ÿ¹ü ¤‘VžzÞ]ãI;Â4·À‹D÷SÉa6Ž;Ë `·daÍA–ƒdÏgmIS&rŒÐvLmæî€äF°ÚV.´—!¯ðŽüŒ¨¾ùÔN2?)WtÄÃ>.²ôq–öóŒ<>z{r|vÝ‘¨m(Uý€,ÂÛ¾ÛáofSb†Ü\ÎZïÍ NÇ]¢ï­ xcœøÖ ¼iY3£\´ÜêÕE“jà pµ"VÒ´RMÉsw–¹·ÔŠÒÒ3ÛÏž½ Œ)=x‰¨´× úIje_üjö†¸–p2© p±† ÕvsŠ’ë«Þ“Aqdm²å]š¶mZ¶•Á[í ç>J´/ü zÜé’"ÛªœKsެ“·Zà·Tõ½æ¥Þ²—–›ÈpzlßÉšþ(áÄ-^\“4{À¸¡ÍVËÂ‹âØ·kk/OÃ>39‰EŽYJâ)|ˆsª %WˆŽ y5‘{‹ í{·a©Ï`Î,=¹lÓY¬$üþ£ß;"³«¸šŸéw9šþ¤FÑ}”"é[ß„iÎn ÖqŒWǬ¹Ip.;#lÏÆ[jãufëѦHÈ8ï^OÒð†ö-µüþŽ~¯—Ÿ‰"1n«µƒì~»O[Û[3ÓdQÉ îF^ŠA.-Bå·ªäÏçˆä‰Áh\ XJbÞdýOÈ!`û]þ{m(çôÁªQ^”¹˜gp“ºf´NûQs*0^½ÂW÷ô.è5Å·i‡„Ò-µ³7gü¾v^Œ†b6H{ÙPCF‡žCÌHVØ—€E.ï2˜fdkŽLœWÚÐm8¢)dŠ„5Ü9ÛQy¡‘ø@ÍÕ±WÂX3‘¦æ­‡†NsÉtÔ2ÏðBè&IÞ0Q(\Л/¨ûGCdíŒÃÞ*&ä$ {´­?€ÂRí]ùܾ‡ð"”Œ™´¨ Áþ­£Ž?‰ Ì-´’)ßÿØåíl–µÎ‡D|uð)ü¤öGü¥¥éK{8) ½¢Ë}B̦öÕë€nZ½j¨Õ>‚:ÚaÜ »ã²8z:{ÁÎ?ú;Ûíñ‡zÜÒ½V1ºÇq˜²Æ€’L£žm·ö¶f}©½·{›Å4 n`Å#C#§•8³Ã–x1:In¾(ékíºÆV,ì1‘d_½JFOkãåS; |Dmß›6óÎeÓt^í§5I¬¶2ëôŸ1!PÛ€Bo§=ömžó6aày#Z©Q€c¿óS’â&ñ:¸»ÔDÐvçŠe,m¡&Ih#?¥-£PeE ²!Ĭ¯'FBh©6E­áý™É4³bŠŒ±ç0…@‘[cO«+ßÛpAhA!'T0Mˆ ú~Œ™'ß—-û÷4ôxbÎùꉅcGÝì’¨µ÷ôYëé,|Ž?†êŒíÉÿ¼ÄPh'Ø´hÒf[Yq¦Ò<ü±gáÒp˪––•Þ4£„®®³lCO öCó©¥à›['÷™$ ¼ÕzöDíìlµžÌ*;ßuNʈaûZÕ`óYÌ\b­ª#øX›.9.1A[«&Ò›0Fêêñ3û_빯|’p¹Húïÿ…û{_ó“™Ú¢(îü8¤v2þ[/bŒouÁ&Óë%ŽuL§é¼éÛ]²þH>Ý_i&¿v…©Ýja£n?yÚzötf£ž½QÀMò6Ø±Íø1›ù±f7|› á7ª` æ‡+ñ+뎙 K&\ýxåÍ—;–n°Ïˆ“|<¨§á¯`\ÑV«›Dp|&ÝÇ«¨lÐÕ§IBEY&öI·nƒn{ÀÔà~d6ù5œ$¾Lœû&i5쬙æÐúð‡W‰H5¯>Ž¿«5Ö°¾=ìÇZ-˜ÒÔ#”øññ# ' jp žiãâ+Ž~ˆí¶x}¢£?GA+k‚‡çžˆP¾`÷ßYu”ÛVˆH— ô³ÎIz㜪WSÞ§pÒäm¤ÓÖàSÓ¸Âq f€Á›Æ§b•@÷)wá…MCu:…Ñg0¥1i³ÿNK”D}xÜóÖH †&àf·Ôó'­³‡ˆôŒi×UùÕa'i‹ä¦Q($‚cÜûÄvXþe™;–MÁ‘ tˆœàã»òáþ2-ƒÙÂØµ' IgÜ¡`áÌQŽÙ3fB¶dN’…8ãQR;hl£#ˆ$ê"1.h$çI/‰6-KC!«bj{%Tv3 e÷,$Pb˜<ôtž§a·Ä¿}d~Ã)¬Á³ÌôÊ¢àx\†9·¦+Ñuq‹¸g’а’Õö¢övneìÇÙ‚fØ Õƒ¸}üº³¼Áúp–Þ‘Ÿ½ï³)¦•jÄáÉÎlvsÃåTãíˆ4ù¢ZR‚ÙWÖù‹šSSQŽ®äxÉÄCø'=*º¸Å%<Á2¤Ø]ÚÉÂñ(ª)‰Î º(å Ó‘º,$´j^ôõ³9 ›¹8}šJúo–° ò1Æg&¾„³Q"†Ñå7s´A ÑA¥BB{uVÍœf½SÙ‡lØ/ ñ{ ×§a…ÚOå q“$¶r=naÑk~!ŒÒi²é"bGµžùàC‡,¿Qåi€ýÎ[ê š” Ö¬nD»&ıR޾qá£7¯¯ßž¾»~ó¶£dYŠ4@Š:%⪩“Ú>à—ÊÃÙ—^'¾/¦9ØRh¤é»(¶3û4+ÝÉNÓ`w•ódDG6áú1ð’‘{<ûøjÁ80¶ˆ$ûµÌ3ªòQGáŒÒ9å½JºòSvãD™”Í3Ô¾7”ù±Ä"lÑ=·§Îçøw{Vø¼Lbëq¥Ž`¶$QµyȾŒæw,^°Ž! g!C®1®4Á›tar a'Y#œ‹óòJ¨’¨kQ&Ø÷Œßn@o¡ÖË‹¬¥ÞÄÂÒÜphW “Ò áHKb‡ªÒA0¼Y„!vÉÒ¶øUK™éSpÆe“òï/°]ÜõˆµQÖ@b7–-¼ ­oàˆ¨6¨-u:î¾Ú¼Ç¢Ž‰.@«ÿëÖ“_ßÒeþbÑæ ¦uæ((‡mãàÒböäs².7&¢®©â°k,hZ&UJQÀ:æÀÜ‹1ÑlµaM–'ÐãjÇÞèM๲©ºQ 8™ç^ÀV’[;±db†:¨|Ól¯Ü¾ÑÔpˤ²hЋȈºu8ã­“IKŽï0Q§Ø@©¾å», ›z#íDψ8›.ôƤG®RzñŽ„z ö£6.èê¡[®¡Ž›øØ ƒ‚9é%X" ¨­#@6©œ Èʨ*ÙêߤaLl’ 9!eÆÇ>qNäÂð?t®¶·¶ÜHÿ‰&4ΟήûÑ0ƒIwKÎí"|›=·Ò‚vóëñ,ÊlrP3áOFt$ÃI¶ÍëbÁ9“!Í辟j"£ÄÆò8ìzÜ“‡Ïᬠoä¥HÞ¸ Ĺ³Ás ݹà¶ñDHÜoj¤¥À+× ## ˜Y/!J‚*ICÙÜ i‰ÅǻʉÅe%Ô°ì&¬£ iÒðJ$Ÿ†ïX •œtb}žô9À•9J*|;'°¦„EÆëª?8XºÏ¶ôׯìm¨8"o{vAyŠBÛ$"ÿáÌpO5ýì±®Ø\¡ªÙá$ÙHç%wjR¼rò#ë &Þ2g´‹Aò¬[ïmŽ[¸.×m¿ÖMä埃Ulï%ÉÏ2»:!Ýgí˜á^啕 ›4ô^3ÌØË¾b’YòG]뉆µâ¶6 JýÍ2c®@mV'Öê h:ÐŽà¢?Ü4ùùÚi¸úùÄÝw÷ž  ]¿¼¾zÀ© fø7L…Œ á¼úy<Äê‘\ÚDKùðæ~°«L‚i¡Ÿ`í¥u-Às+tÆÊ d¾™ûÏQ‘u¿v»¼ë~“SƒvÖô·ÊÍøîk§á½Dê#¢©ƒo2%†Ìš€×›•» þÚY³Ð7˜Í ÉOÄùÝ­§ÿ=gcr܇¨r]bT‹|k­' ~`Cyð]“ì;h²3€4`Ø2ÖçK†/eKì¢ßLF¥hŠŠŒ™K€ñ*N–³Ü̓MN” |š( Ÿm-Ìîë|“6ñJÉÓIulþCDW1ÿ?”.ò\K@øŽ… (@\/OÜX‚NÒºVç\„ÌYÓÃZ3èYÙ ë·g _ÀYãÞ°Wd2‘Ôep`wP0ÖãÈ!æ pajœ9i+ÃL|`MÜmý:×à$™ÅëUÖ‚cË¡µR‚<Ï •UúŽV:îõJ÷ Ör…¸¾ ˆï À±çm¿—µßz±¢®j&G:†ŽîcÞA{Xä­~hÒOêÉtrDgføÞΨ%X¼5Xÿ–.¾~Ÿl¤ìlØ+v‘¼õ¬õtF—z)ð’‚ Y¢ÀÍÛj‰‡’’Å­ÕW×i80d|>xê%Éø Œv¤KQŠÃ*źƒÍdþË~°:4ÑR­>]‰:€jBG ßZþö-  ã)í×`jMæ¬Ì¥ù2ŒÙ2ƒŒx~9½ä$ÂÉî›Â‚ƒ§Ûp™¬ 6c¯«ãCÃ·Ø Tσiþãì¥ÚøGDöxó³ÀHÖFz¡ âÛþ8–X[Æ\p•ô‘¦7g€Ñ{ãÑã_{Ë쉨ø’dÛ;õ6ñikÁ'µßOíçUÕ8Xøˆæaë^B7S-ëaÕeáPãœqöÉ`~kcgŒèt¥§êÉ“y[çÃ#5@€Çß!GC(Ë^¦tñ4Oè2±úÒŽäq…{\¸Ï…ƒ„çÇàêÊmÔP?ŸzA<‡ÃÖ=]ó7›Uº‰4™BýÐ%:÷mÂý¼Ç_VM3[D¸»’pј2"¹Q¨Þ†Ÿn5,­c­S|ŽÛÃ$çƒøúMçêàò~ç1N|͇ÌÀÓ'³3o¡ùL6*òT[ðýrŽ%£â´ó >PWI–ѧ¯Õ|<^ÅÇñtå¼9>—H&ûÑò ~%âvŽckâ±ïd’Ä¥…ú3Îõ\¤ìÜ+ÓæKº¸ènŸr–¸£ôjׇJk.†©Ù¯VíÍTmÝ­ HÃDt5\ïâPíaÖ/z쇃¥P}©ó|{ÙiÈFDÁöa#ï*¦ôYgÿLb™ö‰ “Èô)!Æ3‘0^7æ|¤oÔ9<*ƒ.Q-@'ŠlUã´“G•pDÀ‰”‰Oõ€£õ¥Ç0K“ÌÆ–[p§£aŠ'âe #ÁØÍx¿‡çmþ·Ž–t­'{r¤oý¨¸« µ¢<jdš`æ²"Ÿu6„Ï÷0 ú ßõï¿ý¿v·öþ+ã¼$Çÿþ_ñÂXÈßí@Z¹ñÀ9Uíë?¨¥v@_‡ôí~Ì;§TÚi½ Ái‡þÌÅl“x™  åFs{òÆ\V± ›‹çÃ/³¿œ¢ªdlš¤ìÅU²ã@¢³ž’CÜš8 )j(6ØO¬3¡¨óF G:½Çsï“zìË+ºlIU*O˜„¥‘ †Zë¯Ô7Íã×·’5Õqûâ ’ì€fylàÙ¢ ˜(N]C 3ò¨!cœ$CÚÈÔÆqÒcXŒK¾Ú;æ®eƒWW§ ™5¬æ±Ü‡ü"Æm†}É¢3‘Sécáwås¨t7Æ“]bƒÇ7°„€ÅÔ7@Ó“;\H<Ý6µ]•Úzum$+ßKLd¤Æâ zr¥ÌŒ…y Ã1=ç`ôžIZÒ ‚!'´™áX'IÁ$ë%bì* X.Á#”œH³Ú¿ÅŸ6Ѻd{!v±ñ_8"¶vþ¶å+sÁÇUC¯öGô§5â/N³ÁÇ,Õ12Œé\bW|h÷‡Ín õUìø ”þg–­|~Êhˆ-Oͧöx ç÷nrÏli÷‰Q@oom·faƒ/Ï®ánÝ Ò${2ÕlÎf ³%Õû'Æž—"u“ß̇aê7!‹L#Ò4€3ïUY^ÉÔd·Z˜ÝðJ¡ÓüZî &½1.1ö%ÿ øn¸0õØS ¯©„Ë»DŸÑ[W‡Í lƒ¢=xJÎØ-CùµÇ$»¦ó¡à­`Œl4ü¡^â:«_ µOĤ(¹Çê9 Œõþy×Ð(¿tÃÚ""ˆÔŸÔsNü×rf)ëØ%è-¬ìùÂ÷fÙ§÷Üð¨¡W7T«õWÚé˶ES™(¢—ÎNû':ß_¶'jök¯>`° Ȩ¿ÚFø¤~½þšÛyv¸ž èΜ*µÃL²ðö3ɉjTÚEI¶éóšÉw‚X,Ñ ·ÁÒ燃÷Þçlþ§€¹Å¯…ÄÀ» º?š ^šÈ‚5òdkv´‡’ûVŠÌùM¼»9WkZ aw¹&×H¡ÔÊŠ»-›1#óÌVûQ5¹8ÅÃS˜x£¹`=mÃëƒ;†¦gõt³—L¦eV«›E-@E`DûÒ*‰³ÂS.rÑ„ŒDŒ¡xk¾4µÏ²œõ5¥’®š×DFNÛ‹4 á°'¹µ D3ú [º2ÔË«]¼äÍ`à½gYpvÈâ|v¼«r=ÈTÓè}-¦‹ËäeWÅç\ɸÍRƒ~h¾X’äN|dé¸Ù ?deÎãÕl…P„Œ—]¯äÁ†/ÒŒÄúhê5(Ž2ç W^¡é<ÕàÀû‰É »ÔÔ„Pñd¹€ ChøÉ83_ŒÂì2f'jÿÛÏæàUÙÇèSW—&j**u @9Uˆ•¼rú6WÏzK´Ì†˜ìÈTþ#Í`‹—ö驪Vax‡ªûeƹ7‘î«‹"¨ý„>¶"úØÎ›ââ{¿Ù*2-Sµ”è@L"u·ä:±þ p¾Êo9#üë7zΓ$˧Q ŽÄµDuŸ†:I#N£d»¶Ê¸þV÷Cõ µªÏWøÚ)Êz“±¢û¢µ§žmÍYà$ik©ë]].ò-cm®jÒDžÔ¦ ÔR—yš˜õŠ›ˆ8‡“$ŠH×yάAâ2·ÔáT…1+Þa#ð:ï._2¬¿(PkoÏn ]óï–é.ÄWË8 yÈC$-gP—)æ³9xN£€cÜÿ‚ˆêÅnƱOfa,â)ª8`T\¢Ëò×–°0hJœ²aÖIšKv¦–¡yì@÷Rn]ûÌDdÕXI†pØìVÁeàuùÞ%÷mߌÚPçA9ØÒy^:lÐƱz™ÜF˜ÆAÖ_Raõ>¡S1¹YPæ«'=ãæ=e(æ­ç³Î—áØ@ç4”5–&má½IÃî  'Pd¦lL> Ó^æŽÁî𛄷¶¡#lŒ¨´¯gÚ¿™iß“|bhÞf¹ÈˆJ9­4xj“ç'ôÔ¤/ÈñÙS=ÓMNÖ?jcb`›_‚nÂ(‚4L)ƒ…‘ûÂ\97¨#V™W6D¿m_´2]s†¹8ƒQwi #ZV^‰{»~eÓ1'HA«m"ÿpýšYP“úà Ša'œ-ãRb»HN€%'­œ³ü:M;ÍÍºäØ°a&½ª856a–œ‚‘Ï1bŒ©˜Â"¯cŽ5ÎD:ñIZ€ ¢|nÇÀÎΞi¬i«ø^³Ežûh2cG£(f®Zx˜y#VÛþ3øC¿ûŠÅ:G›zs ¤›ý‘N²vÒËœä×®±clŠßm§yÒÚ~1 †ùµ)VKnòYªªú{˜Œ™8ï:>‘æþGõßÙ.B¬%ð»™å5 ˆ­ÁûïêÝ„;aOriÁ7*iUçÕ<­¸[8…+WBÛÄA ±u [ Ÿ4] GaS 5X:BTó!è*dÜa±™Ñì%²…»w|…`@\¡+BÁ~Jh‚N‹Ð$9Lékk _¿E,u€qúÕîÓÖÓ&ëŒx&ø°›Ø%¯Qü€ï{‡5ŒG¼ˆ&‘›äé&Èñàƒ2„p¾Å ÂüSá;©”.³ò]|393á1`sÊkaÁG\@¼jÔYX—hĬëšuW®á_*ýö„eü¬ãë«$° _=÷7Dcéèì´žªí§{­3þÔe¢>ø#hpoÌÜÃiuÃmÅ·‚©Žhâ7­ÙÌ‘º<®Áý—É'†ÓàM’I³˜Ð=…Úøx7œ]•=ÿKÑ;:'¯ÕÑ«ƒkõþÍÙÑ {{BŒÛÉæy7Gç÷{ê¿AëdØÈÿrÞ"-’§UOœÆÞãd’?ùÁãlH§ù1ýþøÕõåÅczÂóòâ®…Tp+±@ÊhP{Ü?¨ÛÎzÖúf¬<‡$Ù?dgÍãÛÓðÈ:+Ê™‰³¸/VFƒ¥ÜTÎ/Ûmd‡&3S™Ej“#›!Rﯛ?ó½~pyÜ|orƒ¹Úª„(ÃyhIþÂö=Æ‹‚y ºß€¹& ±LJ,Äг5÷êh.~œ#c‹Ø½Œ}%µÜÆ “-wMzÓQ?Órˆ¦›æ2”àÑió=:5^€¸½¹c§ásHÙ(¦Ë€jd„~I öÔƒžÄ&‰áÓÿš£ÔI¢| £Hÿ¨†y>ùññcû U†±{¼žB˜ÆL¯r“+>i6È>Tìèê +ñ$<ª\¤–Lz•”1•J² aœ`'©¸“xô~åSL M®†Ts ƒq{¢\+ç¤dæÏí¸É4ìæ± ‰sÄ'pgìùmHYI®BÀÿ…ï¯18h:…]4Z†)™>'Ffã–N'`Í øŸUyâßõZ¸×GlÖØ8☇ìkiµy>WɆéškû`Þæš’kÚ…<±žÙÔây7®xnÁ› u‹z%—‹Èc‚…RM+4óY·Éž-Ö9'ôlTÆØasnaÜ™ù\…zÒEy¥¼Rû$²µÿUŒSmb\Döú…8G ÀSíOñmA©cN @ÿàû~’¶"ú6SðëéjÍeìÙ“ª¯Ø¹}7ñÙ‡k&5˜ÝÚ«ÉìÊ8ºbqËeþB(ÔÇc°#|”¼ ŠZÉú¯jÎyC;ƒzÒRsòE:!Ñ:Šåô%¸VÌ«D¡q[ªòœ„Ó¥¾ \B´>—ôÜ¡ã¤5 —oPRè•#°TSßá³ e>0zˆcœà2ûµTaÈšn’™U»–q«yì,m’zÈN¯·]t58Ì—½”Ù•Tu×”Z\Â{d2k=j¨ EâÓìV™[ºên(3Ĺòî5’¯½‡íµ'bœŒ>×£@”†9º, Š©2!Å vÙã¨@ñx¤5ܰWsI}Ìܺ|M7ãMëÏ\f¡‹ÒìRaàY°Is·r&\ÄöžÏ¬}ÐíiÞú 8l×?GÐÙ7Õýn¨ˆ7Ó/½Œ6KìAw–6ãïÏAìÍRÃÊWÐ+=ógÜø¼E\FÕ_™ Nâçyß ÇŒðŒ{£Îù3Pí­ÝêVô³É6Œ5 –XŽ ÒA&EW Ÿ Ëû«×n)˜AA˜‘x=[o?&K¼‡¹ËÕ¾˜Mÿ%ñ(0ú"2‰ÎÜ>‰ Y¾xqo]‘€ïÌœQ倅ȋd ƒ÷ ½È†*qÑÐÀ_`Õe ·©ÈÔ`"U³ÿCK€[`ÆØ³–6aB¨Ìgÿé ²ù*KÊ[Ñô|€± ‰Âöù{Ë~oO†Ó,µòaÓ‡“i®ýû¡ ÈL¤²—¤Mè»w âÿ“ÖöÖ‹y‡m“Ì:µÔéH9LÓúøÕ)5îôö§ª¼‘WÓ„râÊ˼ï^ðe@÷I°4ÕK‡^‘&¸$†•6[tïVZl‘zEbKLÕFŽFE¶ ïÌQ=’-â/a0`W¢t~ß~½·‰ðŽøk‰xßnm·öÔöSú»õ|vC_[½³ËÅÀúODÜÎöØf·R)š`úºêº[m"¨4áɳ¢¹r[dDfQ QÞ²ÕеPØv£S£íìäÜ^•l –å A¡¢¢<‚bGçFV%-ÆT󽨢ümB¡?ýÒZ ïÐØ+Û“"ua(¹Ï²E]¢´#ì´žˆtgÆw¯a$ 4%›Ø!Õ)Ñší~c%°‰ÁSŸZV4 b_6†Uj>± ^yÍnµL%ôûDÛ awÁ>4¥¾£¼›ä9‰¼6â-Òìä@Ò{䛬é´r0ê_¡#o÷.=D Hu]ʪÀúŒ¿$³Í$` Bè*ø^¸4ê‘aoû™ÚÛkíÌœ¢w.›œ5à\„9T.;êDT´6u5?Gc¢ääz{2ÉÃ1[gzI”ÔÂ}DÍ»› ñ/àþ=â7Ñ‹îÅS°1bog¯ Žb†–˯ÁCɲ#È@bÞ¥D:U&é°<7&uùšëVêN¸nV¯ËX©=@ ܲÿQ ÷˜M¢o›ZI"$én%–£!ã°ŠohR ±A“ùú8™ÂXP>›Rš“Ö± æl6ÿŒMhg3ÝaûBÅø¬6=aÜñ•K7R¯‰ñÆ •Žâö ‚ø6I|«Ë»ß*öó‰ÚeÏÀ'­½™Í{ñòú ‘6cqŒM|è5€ÅhboíFi^CäÂ`Q0ƒ•¹Éþ¶µàS”ͱXú5’¦æéÔ3ê=‡¼‘°OYË!¢{]-¤q5/¹éUæ±ÄÄ@b>£©¥îØ!ŽHtˆ]hÉæ ´ÍxsÕœÜ@2(/4ª0 ˜_'J”‹$Á±tËhKú¸£ìU%öØ£g˜ö?&]69¹a–÷âdXL¼1 !§ð1Ö{Qb`ðñ븚ãN–‚qÐÆm(º³8ïšxqQ Ì3X{ =ÆîÕ¢S |=ËOí´¶Ø‹‚‘¼jˆÿ¯®é5“K©¥ÞðÀùÌ&'8»zÿÔ*ì|Çã#/@ÈmeÃÂ_ÚdL&Ãz sN‚†‡ña0¶wS÷·† y¨ŸÔ¿œ%=6\×¹œ*6ò U„L}VŒXàŠõðMÜ P#hSì¬PU#\Š0 EUœ!¨õv1»éeeºªÓ¹`ñ”ÇÀ±éØ‘üáç«rC¯bR£àN<ŽÞ·lˆ„Ë䆨}ÓžjªÉ¡÷÷ºÜ†šÚÞkmµž¿ØC²Ð:‰¸¢í;K†+ŽSW¤F…c“ üóìJm\ӟ͆úç›72^>1‚ô€MÛ%W*=D§)n)’ZÒÈKrI}wŠvQÐB´IÖ70 “"%Ú̺0—åÊNDp¬ÏJrœé´PoF!±u£°}Û´ò ‚m›¾Ú´˜lO>†ê ÕTðcOoíì<}ÚŽÃ~>¥µ¸OîÌ($rAƒÙÚ{¦æ¹”?…c¯–V\*±ÿ¯ÞtÎ~æ€WºóŽ v@óÏbýÊ«I¨™{żþÉ“÷lomí¶¶`ôórª©Óet¾Q™|SÎÿÓ³Ì#Øø•€Ä¯ˆ7iÄ] ¤[ƒòk[§ª‰“®:§g÷[ãQ_®Ã‹õ:<È:H ËÒó°"£õ5ûKÏúû¯Ì$E@{Á-Â7%«'Ð+h{>;¯QdÃUæçûM”gpmÝS»ôÏŒñãÀ:²"7 ]ÚIcÖ¯gÀ¾¦Œ¯ õ€mT!…ˆšÛl2Ä|5mV£jÛ^½mÁßT˜¼£¿ÿ}ÓÅi­˜Ž3zýO´2ì©‚.5á¶Ãi͈èƒiæ4l`”ƒXŸÑžã¿÷H=™ Iš»µÇQé»3çžoæk‰Ó?¨Ì„:{üÆž÷‹™´âƤÓ4áýz¶šÍ®6ñoxøˆñYQmâÆôˆéfû²3£ê¶9¶ GJAã?³£Pמg_bâeìâ8íz>ÛM¼‡‰šmBì¤3í–7[=Óm으ÂV´Ec€mÊ5S 3o0ÐM²"Ùõ\gˆ¨Û­ûmCû«Û`o{½ þã¶\=«¨AåN©D–Õ§oñæXt¹5±à€Ì%Ô˜¹è’yFœ:­QÑ>}Õód}“9û‚´ž¹ÚÌ ü“—óí'­sÜfGNóA h*àÝúœUYé#£¹Œß¡@ 0 ’)b¡ÌîÙkÇ -ëû‚N_Ôõß·ç±öÃ=µ×b8ÐÙ  ¤µëëÈÙblfé™Ù•¼ÙhI_ȻΠmgÒ¶grIW´ärüVOÁþœ±Ž˜‡Üjm©­Y…ï‚ ùì4T êþdóàÂë¿x2lÌ]%ûìÊùñ+ôï=E çx|àg³’…:J“,k^™œ„†<½ßÅœhaA™¸’MdhN¼Ñ ~¡¥XÿëâX¬JÒ;é7Ô›N§¡:IDgÌ8Ÿ½=ûy•ìªiMài"¡ÐÝ">³ËFrDÀ’¶þ”½–Ί2DRˆº,{ž#GoÔ¦U@®õûϬã0–Ìï_E¸ýcNÿd¢Óq’nÃáCmï¶vö¦51ö`29@¥•LˆUâ˜Ø‹ô7âÝñ+ÍæÆÎ¦ Äi”Ž·YÑmC‚øßÄbçêN]WÀ%{Î æÔ=`¸5l¶\-aÕ*MD8ºÃ@ç9gmêʧºSp¨‰ ISÜwíç{‡=VfÎñ ×§ÊB ß·(E¥¹–Yµ¯¨øÇž­÷¶8-ͪ‹'ÐÌ©+‹g!ò7®Þn.PMÀ½õ¯Y]ÝD³¦=1^bl~b] \I]0B…õá0G…!y?ìIëpë@lçZËË(Ö<Á±½8ʸ:êQÖŸò4ãØ™.º× €óNuÝ4¤b¬§Çú`@]ÈG ³Òç°Ïþ±’DÝ`¨o¤HIHèÔgãsé !WͰõ‹åmöýÖ3¶ÁÖ€ðy° ØœÜ1¾ŽšŒð@ó&8¹G2±ÃJû'$bíÍ@¡_U2¡˜ ¡ŽÛTwŒP£}‡syì`š;9ájÈB½dh‰¬Âcšªxßcã³,óËq¹¥W«˜ËÛ)¯óJTè̽ζ*HY5üHâ>XUpÐR>±ÚºKY×…Þ„X\SÛ¹6°Cìm §¬Š}‹’pŸÎ:o^<}º¥ŽŽß¾¹4Èû#ÐÍ|zX—SQØÏ ¿!<\§ۛʺ…‹Û=Ü'¸í&L øá!Áê8vÓÉà,“ÆDÀ$Èv[@tŠEã©në6Vþ¨Åÿûe‡cõ„o…§†””/u‹’`ʳš'šs1èZ8ׇ9Ó±zúQpš[£ŽÞC¯iºÀüž™uÄm‰Ý¿ºGeª~'\.ÅÂyb2gs,l‹§¨o ìz³œid‹øXø°ÑäÌ\XPrâ™ïI/G#³=°oì·³k^no„ z˜—6ÂLƒ±³ØUBÀ|ø«µ>Kz£ o©k4vù8€ÙXêÙOó´ˆcúý-€QÓ u Ó(IÆUàVÞÜì݃´¡—. °c›êNBfÖæ¬Ôë¶R Yµëó™,»‰Á=*°™Ô£‰¾VBXm;yÜ:Ê áˆ>B#R€wQÇzÂ,n΋ž›¸î “0U5@Š88h¦’´.—Ø sfƹµPhAÆó1èÆpfÏÐÂɆÊÊ™ÉËaC&Ѐ›ªq@w†4SI:IL¤å õÜ–¨„¢Êw“( s£Ýwå¨iÌ@˜qž[ëspt!Ä ³ ¿²~¤’ØÏ"RÓvû) Ò¼°CÖ@|{^RC¸ó,XŸ+b:šr ª›Ôà«/Y¯Ê²òVÃý’9ª½h¯‰Ã‘àÓ×ïðÈdü‡Z–6·£˜ÈggB÷ìm TÛ*˜x@\dì ½d¦i9¸ `¬ =69…xQ­Û‘¡ ŽAÕE±tp4›Ò&'#VHÑ2 ‡îE ñ²\Ä[šjÒz Òl QÀËš…ŸãÙk¼&æÏ  0ÈŽ¥E8Â4>ÑŠ¤;²0¯ÂÁ°yÁRqè?:QÚ¬ ¸vÉf‚ ’:D&£¶™Ýd¯”ÄYÀ¯ª˜j–&žfœg¯—[?PÖîb¯p-×JK½¢»…ö¢aË`yysÇ ÍÐêpU¾—DsÀÄR® $-/ÚµéΙQC¨4µaóg"A“ÅáŒð Ì-ÏP%Bž ýV²=xñE[ ª®3ÆP!u \ÀLòNföŸÝ² dá –\ ¶ƒNDËL–»£3×cIìÅí *ìn'i|¤(Cb°…ñÌæJÀöáÛݺ hß'1è¶dÅð¥òbOˆ\ÆvSüv«§L,͵÷“WáéV¢‡cuW†O´ÁöGæg»!þëÞ ¨4ÿ5LX¿ÑbüÖî|JNø¬’`5IböÁ¿{´<ˆÄcŸ@6[^]T`ƒƒRU[ q¬*aàjçØÆÒeÖ»Ù)[=‘ÏXÔÓ8çë€YÆ›QÂdÖå¼<¯ß\ž¨#ßhÛ ÇGµ× j/ÇIêžUÒvÖP=VE:M†ŠˆE0¾ædØÖ½ñ·ZçæÖfÎd½6µ6N/¸äÜ|•â¼õÔœÿ>ÓÈ`®;lÞÚ~Înc‹Æ$RH@cªìʬâpµ!Ô¨Î/:…m{Õ¶WÁìé4‘ô„Ó,ˆ´Ú§Sܵù_šu­G:†êì¾¹yH¾‰’UæÌ-›™›ÍÑ·ž¹ù™ËGÍí_·šˆKÞÙm=YäLßË8!.ñ<Ì+Šéƒëóy_%ª«kµK®(‘^Ô57-•%ÌUž™/L¢Q"Ê4•™“à4Vc=ˆ`SZéˆy¥Ü™L~+æ(m땎ÿéâÛP¾ÑÔÇÕ¼Ÿi¯uYD==œJ~ÍÖX¾ÕË]i?Õá õ¦Kb²SÑD”¥¿Á‚ºÃ`—u6¾t½¬ªeÍSFI$F^Äs0¹‹Þùþ¥ŸÓd¸8\—óèK<Þ©Ò—÷V%–Uj‹Þ"ïïI¤¨»Š§ªš¯ñäÕN=wÜ¥›î¹l¯ëéþ†ÓmÆe»ûÛ{ZÔýÀX¬ê›X‚Ÿ&ѳ^ñÆ2Èo„21füì*õ°eÞ,™ žüêR±Ò„DU!‰É?œ2h¶áN3UZc-T¬¡×«€‘ï¹r7zš 8»j øNˆa‰ˆ?n¾ë8'=,Ñ?ƒ4³Ïúa„5ÖXÜÐä2k OlcÇaÆ Œ§‚*xžx(cu¥4÷Þ#ÞÂ6r˜5&ÒK£$±½—,J繞ËKï€0%Á¥hdä³g­±læ\mlΪÜyA¿ÏÊÐ0.‚, xö¬v¢ ä€Õ#ø\"ðSÝ7FõĀ䘄ÎÌ“86!$ýú‚OsK}Ë7«5â4ÊɆæûñò]纭ëIjp°ð½óêÍ»‹cg8çw¡,ýmvŽÕÛ—GgE@„³\ÀŒbc9…NЬ={ÎXéÅØ­&¯ØÓ&½,G¿:õ1÷q8ôÜñÀ¦2ŠL;ö¾1vxš]ÚÔÅÁkb]v±_"€ù$WWI Öeü)×ÝOi{k’H‚në;rͦȋ(™úˆúDö÷œ5P¾IÛX’É€¤”’â ÿ‰ábŸµóì ½ÎMçîmèÞú€®èú€þ(må$^ß룹>šÌ£¹¾;×t}@ÿ˜4 ž¬oÎõÁ\Ì?ÖÁ´AS‹æ*MÞåg4yÕsz6ëWùE‡e¼¯=¤ªvH½¯>¤ª<¤Þ})g úv‡ÔËò°VO§r§Óû §óqõdªÚÉô¾êd*{2é`z˦ñI0†_ÃYÁ“f6Ê‚[væÂÙõ–œ]˜¶þ#ï€>m—‡wÆêqJ¿ªCIG*‡k‰/ÊoºrOéÔ×rCÈv±>ãë3¾>ã¿ûŸlwÖ'}}Ò×'ý¯wÒgùñÝoǯöúh¯öí¤‹î­¥{­[kÀÖ°9›E¸>–ëc¹>– cÙÛÞ}±×ıĉÜÞÚiíìÍÇ‹™bÍ*ÆYæ†ëýã#NaãÎS%‚LZ˜‡·¶R;• Ê9Ƹ‰ëY²,é…&¶ÔA´¸œ`†s{ü>ôƒÄb˜·¼#‹Ö¨ÐÂdª¨™Xhq>GzHÂöQ.ãÅ©cÇïéDŽi7ùœ" l+A±‚ibüîM)CVð®,ðA7p©ÿ8™«æaµÔ rQˆ»oÔú‰¼jÄÂ#²]ÇÆ'×OÎBã²Õf“ÏjSÈC ŸŠXª­†M’÷ù°cêþ1v¥?Uû¾ŽÛ¾|)7µõŸ¾ {£(Õ¾–­±ÛÍ—e¨j ýÍB‚/Šl-aáVàbã©:âcÓ£Ûc…­°;iõÓÿa±ÐÔá:û!Qûù”ÎT{æ‚,}ÏQ;xøÅC?žÝo.ÃÄ¢QÎLÊËß´ý–D{ð9LzwwOÕN 8»{;êÙvkg$ô0JŽ~þ¹Ù<úûßÕKºKÆ´5ÜN§7o3”zr ÛLh£_k£ª¬IŠã- æ5 ÛHéU1ÎD™_J£o¯…©:ètw÷†A(øçéMHWÔOÚ|?„ì°<¢`*OXÓu©Ól¨@ruä½a16ÀüÄÎ+®‚þÜ„æwš¥ÃäÖb·#›è?‡IÁßN#*{Üš²øJ¥‹ˆy$OŠH½‰‹T`ïÑý§$¤5s^$H§~ Çêe0ŒBó5A:gÚsCó5ÆŽ53ôSêçPÆy´dääNMGäA§…DÞ4Ö46ÊF"Ð’JÔñàâbÓiÌŒ!‘2q× Z°ÛlÚç#z~YÄ»¤öQN/9/ ¸4Orè$1»Aô)H›çQLúŒÝ&¨®tó5ð ¯ô]¿7Q0PçC=õ‹Qr#蜜þ8Ûïa@ DkWÈžÓË e(4–sÀ–>¥­Q¤tFÕ†/æ "¯:Mõ è;ZÔô`Á{G®,ÑÞ;’/mº¼úØ"×殮8È·ÊüoãcÔZ¼ï*s šm´µÞFëmôÛ·‘KẘýeÀúÖ{çwØ;IoùÎ90Öjân®Ì8®^­­ïHcÖ´å!öGÊîxÐ÷ÓÄ+ÃhÉš½ƒ‡IiLœekÉQër lÌ4ˆ8uéd¾å3¯ä&áñÒ%ºÂ¾ˆÉgï¥ûÏGõÒæYy¾ž”°z-Ü*¶;è[L‰¥¬ßý쨥ÛÄ{wÖ|ˆm’÷r¨”·‘îñéÖl2ÐÓ7ì [+¬ #]èj‡f¬„¶f k‹ ¹ bÎnZnfù”›r~[ˆ¥À†(ÓE•/.1öœÝ´L`ýµyâ±±ˆ6!Ýu¼ÝÅo7Ï¢¸a[ÌÍÖë“kÕµñ8$¨j/ hàEgöö&7d϶ìŠûîÄ÷Õq1ü¥Ú|¿]dA¿ˆè(Ü×ߊlo½b²s¶›%ËVUœ[†ŽñÈãr.¤Å³©¡-­eÏL¦-òoÕ[fî>í4%3ï$£}±3Oª»ŸÂÉŽJM®±hfJ–ý¾/šúÍù9e2ãß{œÇRAÑæ=Ýû“¨LüÛVh…iò‹k¬‚ýþÝÝÓ=MçøÅ‹V7Èõönتó¯Î4u”Dð<>詃4o¨<¸ƒýž¨«MvPúRpë¬ÔÖÌŽÂ5¦F Kû~Åÿ@"µ¸:¿ÍOõ-ç1)c!2Ì9ãZŸ~ÆACM’h:€3Î ŠÂI”u¦l¦U›mL²²1‚wðUÁ2¢—&pz_kUÕ«¤Ü|¶ŸéqûSRñ'ø)ÐqótïBiAqG‹8¨\ße½ ¾wvçžž Oß6K×ó˜åúé‰f Xð«`g›4}7٦͑eV¯Vþ!È1£‘:SRÒ„ó²&ã8œ$tÕöJŽb¤pü¯x²”¾4.9]wªR¢Î@ô΂¼}ù:4é0x]˜¾'´†SöWoÍôŸas›WÒÿ2){“ Ån“^H|{¿•–ú`R(‚4¦?Ñyow~äåw‹xÚTnvô#M&^¯ú~Ü8HŽ*½§kÙ²»}n¸–¹5qœñ|æ j9âºS´ôç>,06‚·)[ÖÛá?i;øaò ‰É·Ô“ÖŒeþ踉l”í¿Š›¦ÕÔ“¬€¬—ÙZ6ù È«›ÇŠE?ónµÄ™"¡m†nÞ°‡–‘ßt*ÍtñNÀ­Ç|Ð~á EæÏ¼oÑ2¬ ȯ‚”3’¿×Äô…‰z’hNüÜð&m⢤Ío“Þhªi¢³<"Šm$s½»/¿‡Éÿµçûzk½¸¥â$\¯Âƒ­Â0ÛÅ®p[ê9q˜/fµv9X´Ë‹$âH.zÆ9:.%ÕeõÒ‚[­5ÀÓþ²ZÕv&¶ÉõaRfVݬòùvVñà!±x…FPÛG¸ßµGºßÊ <×qZP;Hð4ÂçÖ‹§í,/Z½, Zq&;ð‹V~+Å)âæµV×rôt»qÖÊéc{œéº’C÷î4Ç´$a¡öÅ ñÛüoùîAØü4„7Ï/ÜÁÛO­)}X؆ÐD6êÔÚ¨w[´¹ƒe¸Ý0¼Ñv¤peÈð =­¸\Ô •¢Q2êèo; ³V" ´6Z²Œ›ù™PâE…ï±É’ñ¯Ašî,õæ;Ùég`:2EÅhùÓÀ¦© ¥¦!M+eÇÐþ’tà‡Ù$ÒÓ/8xæ”gçÁÉæf6vþ“gã«=Ëêf.–ûƒÚYú3ÎÏ$ü„@âôùÝOŸÍªóŽ¸Ð‘šDÅ Œ7z½É¦ÕjúKÅ5Õ$&›)kŽuLS‘Rùl¼i…‰/iÏû‚öVyùqL{ö\Ó.ÿ4©}8*æôO›îÃiDRN%á½ån„Æs ?‰ZÛ/Z{3Vº£Ng†—lNÁya+³5›uÆMÑsbZ²Êi¬kI´Š’Û¦¨I\4}zˆ²vŽšÑÍ©m9ÒžZSÂZšÈý¾bòNa>BYé‚6e–§ôb° É8¨2 ]uøî¬CÜÂmÔ-¬}—í‘ÓŠ£{Ojsë×§ÍÝõÔþnS[v3¼·žào4Á%”ÖïÝÚ%ô²¢B~¨ÉV†ÉžNrè[&[¢´ÿµóþuº÷T=y:{Åw‚\½›(ÜäJêóìžÄü>ÂÍk€è1Ëû¸æ+_#"’–S³E¥Ù.7k„¹±žçå:¹˜Á9ý7Ë~¦¦ùÑåyçf’(I&.oWx7IT ÙyEo}ñî¼c’gç gˤ5šiçTM=—÷½†ÂVÓ9™+ Ü´¸ÓÐ’$÷Ø„h?ázø+¤yï1×ÊuwÅŽ9∿L½L‹ám˜æCâxäQ›ß$¼RîpÈ“  S44tû=÷¤á‰‹Á;Ä®ŽŠŒ¤ØýŒÿvÛVòïe÷¾ç‹4Ú3“ø£$Ǿ˜Ýb½wo/T6Ô``¬œiýÌöì–ZUfuÐ"Â;yÿBò–¤!=Û»×g?SÇÑhÅ„Y<"Ûû¢Ù­+p-ÞÖ[ô¤¡þD0³pNfû ®”†½Ðûï´ oS¾7”N9í4mÇÑÆ¦¼ÆOÌ[,b“´~’ všyÚ,=’ %œZË×,[Øp6Í¢d@McË)•„Þ„º^äP™•÷ï´.U°+:×Ç'oßr»13hÄŽýêìØXÁë¿ÓîBŠûO(ÃÓm¨#vÖIÐÛp"Ž"ËÏî­©¨£ôË„¦lcs¦Ý´ aÚÌŠ®°1Ç ›oÞ]óQ”Ó-뇘º€Cèpó˜h'_eÂó°o[¹øÎcbˆ2;× 1Ý·l»Ña¤izxm(Œ.H,“±KŠb݈]Ky㈢Ø”_”¡‹R‘މŽ~3ÄÖ¿âôSW« o* ´¥6ü„¾Þ/å·¯ÓæžÚií¶žÂâÉl3qÄ-`Do!\§AUóm•&:­‡ÙH¼í ‰ U†iEW†ÏsJtÆiÀ»Ü¼— "à hŠQçèÄÃ[ªˆeÅtºÙ •Á\Ão(A¶iYà.Åòˆu¦éŠÄsÓ< Šݰ¯zdú WtÖ4"–>ε Ø®å3yÆþj8~JfÜ– hA‚;Í{‰wó95J=¢¿'U×ÒM°û\zÞËŒ<ò ÐØj µx”¤]X¨_-63F«¥î±­ºÍ½_Ÿnj¯õ¤µ³¥ž=kíÎFéˆ]Øù oí¤¥÷Ž­xRqµYX¥†äv×eçÃj…%¢Ô¦BG®˜rVNsé"\÷ôáPÄûÎUe–fEÉõ,•;JØ»ås5'bÏxˆ[unùµIŠþ¨ÓYó…¬9£ßo6‹¬¹ÝüW¾Ë@ˆÏ¡ÄxÖz:£þG¾K#.2‡þ¿Èdê4TºÙ‹Ö’‡ÈÖV‹~€v–“"‰?ÇL"Íø_[#ùÚŒïZ:¿9úxS ¿ÁζVÇ΢Ér“_õ¦¬NR¤½`¶œ~=þø¾PMåš­¡d|U «ÈtJóEľ ©‘4#Zô༠¿Õ4keüšòAPZ/FÈó¤Pû}é®*ý ‚¤/‚£‚.ZÐ>Ix~2J–U¹ÇJDcx±½ éì9Ü—fij ÖÓ¸ÊüÁèbr«Ói€NÇX æVA… Vñ‰4š™êÑk0[öŠH§Ñ´Ë‘yÌu¼9zÙÙi0’‘ëŽóBã¦q'ZÖ£UÐ-õSKÀÔ¾Žð·MŒ+õ³D:èÃxÛ1„´¯ñõ¨CÔ åÓ|1:—¾SuÚ¢³–h~÷õ`4_0H·ê*ˆ0@‘¦mFFºàIk´Š‘SÆ|Ô°Y_ꔸýl#÷X>Ï5{˜tô€ÚO'òq®˜€]¼ h6Õ~¯¿‹ËÀYSé"ê“È ‹ZO>Ï•6RêÕ0dÿPÚÜæÓ‚’DÅÔ5‰~¶Í~n>Í|©»a¢.‰W ÕëΗÚïqħ¹²?ihÖ †“ëþlj|š/ìŒÃ 7ñûH_Z]þÒNˆ±%é£R0Ö9ðS"´É-•îʧ¹6ωü\¥AFƒ€9^>Í•º`T«!$v¼;çŠKHÕ¸óa4Ôtìµß¾M"§š£2Á‰=ú.ÄÞ¢VFêU¤ou¨Ž‘Ú–_ÚtïÊÆL¼äQ§Ä±_kŸDBuFtÈ4µŸË§¹W\i:„tø*c²lc¼MØiæ 6å[à#¿¢Ù û9Üf²¬="b‚}Ø*2SlJó|Ù;ÒÄÿï§cÚ‘ÝoE¡7?¼ÒGšL4? @wŒu^LzÐ1ÓÚ™O JBá/P4$êd@M¾•/se?€¶oœGà›1˜+c·ç’z¢O—߸Ûê9q+œ—;,V7HúMsÈÝu Ù Úð̾\o0oïvE¡C¯«HXViøð7 ×®— Py$Û•¦”¸|uo˜È@zÆjSZøneD{à \Ç ÓïænÐédco“qÌEF{IG¢$±"öl ö ý(06õfãì ×Th¿pÒ¿Å¿t\B¾Ëú4s£ü¥üŒ5mµZ›Õ–ÊQ¯x-½!/â80/<ì?f¿[ßð×ùN¦€IL=l’àø=*KÏÚ#<«È¶D”)AE>ÍÇù‚{É›[ø™„[ ñ¥¢?± O­ÉËÀNÄ >&`õÕ+XüŒ¤Éº }?ª( ©Üåh–6Þ†£MõRc’÷ûø3?Sšìæß˜Ñ¬GÚYȳîb®©kSàµÆº;…J‡¾n·»·¢Üwª¬ë!ðC©‹ô ÉXíãâÒ§  à ï7¢k:ž90W‹ÛòÉmÐîiZ«T·îiŠMÇ.¬SHÓÓ5iZ“¦5iZ“¦?i²¸\ ¹&gs±J2c}áÀì ‚‹á½ªÄšT­IÕšT­IÕ·"U7{(°¥ž½h½˜!S 2ÿ(t¦S¤Ë9Jü W!?å/ðÞë-ƒšÛ4QÖ'P~cýÏ{C"ip‚˜~ÁTŠÇ¾sÆÇÂpÂy¬ÌÐC•¦ã—OÄŠã½µ“󙺜œHš¡—a|º½6lÑbÑÚ:jȨþºÕ™g­ `°ºe`‰e}I¨#ñÕ£m’ÕFñ#½ïH=Ý~¾»ÇjÎåÕõ‰ÚÝÞ»}ŠI"”ß&*‡µšÈ}_Ìãž?AÔ7?[j÷ikg愉½x© Š<¨–¡&¦µnµüÒ  ›ð#‡u!-Ç @¨ÀIXÞ'´ÅÙ}Ø(Úfšð䬱_¨Erˆ?#÷‡È’ÁèÁA™åJËøPy%ü¯X ß†Á$¼Þ,/ˆÞÅasH*4®÷¤UX §‹¶+²»µ^‘‡\$ÕÚÞ}²ŒÇ:ObI¸Ã®ÿ ³U•(E@>órehY[-iF¼ ú*uÀ5¾bÂÞEÄ¢Õqp„Ú=¦$F’9¶ßï%Ü~:—˜ï¹{ˆw&`䎆Ao$,Eu{Ì8 J, ”ÿt)aOBKa×Ý,·á)ذ~Îeà1½¬ì"~_Ͼ¯â¹\ ¾äB÷†ÉmØû¤ö{ÄŽ¿=Lòo¡V2´u§µûbá eÃvsÀI³¿*6`ëÚ)ÖCWíß1’jKwb@c.:`Þt$g»”p°Î1Ï?ŽkÕŸaYGhÓ ¤ ¬ë€}08Õa*Y5ëGZ˜½WĆ~BÊ>]ÖDGæ°RºVcu®{ćA@»!Þ1%gh@N¢(LrN Dìj2ÁŽXàM5Œ¹d¦ °  Št§§WAJùHçJ³ ›Ö(<ó§va°'†­Öµz © Ö«!šÄž´Šq\r'–S?Lhé˜OÿØÝ}F¼í¸¥{ŽW~KògÀ¢h@uH<|†²Ýí¢1»¡.[ìôH!¶Zß0Œû~æÛ“¤Õ»M‹²Ðu8.RâÑGÁ4¸!òØkwiFRóë/@ê¯ícÚpVÇaÞY §ÿ ¶½»ÆÌæ¾Þûë½ÿŸ±÷Àº‚=r\Cƒ5×·ÙëË ¬÷Õî¾çVdì©í'Ï;CP«n“WIÆŽ '0é§IL»$~¦t‰<é\^_ÙWÇzŠ—:bé¸öâ7‹®ñÎ#~sS®A ’‰aæÆ$œÄÂñN‰«fÆ£´m\^lR»ÄŒêÌ;¹ ÇL´ÇDM»&ü½†ÃÕÒ§-°õßlJ”2çió,¬(û=Œ‹ ™”6{K¥×Š{Ý-r%~øê`‡5»Þ˜ÀL³ƒ¦Èp˜™Õ"…ÉŠƒ(Y;¹†‹¯ö»øN‚‰|§í)J·{ÆM0´³àL¶Ÿ/M®ª¬5çiF6?Ÿý8®Îf$Eþ}.Œ°¯6­4W½;SÉöƵHICp$‘ÈKj¥—†“œÖ,éõŠ4ãÕë#dU«ƒ“p\ØP#'ZÅô¾†¸ƒq%‡¦Ðßv/„ã5dÀû‚cÑèÆ“pWíÐAƒ¦gö˜ý|yå¶ê¨iøÅ³€+8{óydóW;¿¤ãb7î‹n»o¾•$ôÀOhGKv¶ ùNÚƒ)§áØÀk;Çç’³çŒVù'ÝKº’õRòsž‡7àgâ{ÍJØhöÔî‹Öö,Œí®ŸÏ^ªk=à膊¸gB€EÝy„DCzaØXnÓHƒ¡8C¹Lëê§«“ÓÌÔªîÔ«hRÑô*?¥"ÿ¤.ÿý¿9)À~DßVE@iN}:eÍѦý?|û(Ìn™i=Ç¿Ëßì49í°î”la´ß´¢ÞtøqkDl–w'·%w'²×”·ôhÆ“³f£4(Ôõ–*È&2ó'8h¹^™èæªU ÀuÕCþPš‘î3KÔñm&~ÛêÉnko{–ú]X«k mµ+*çT">Ev˜D€/åòŒ‡Ž3ƒŒÛ/Tä<s‹ªÐs á‘CÍvNQ//èþx W/šÚ;3Êøöª‹$Ë"h  ?LÄ}ð‹rZbäUÕf¯T Úõ¸ÝMUzòu§p¯EŽKÌÅ«hC¥Ø=§ãùï9_4Òæ¦÷€Ñt6´úß­­-õtg–dTÛWñ½^¢fS°¢x»¿™˜:V åNšQs#êJ‚ƒ›ŠÎShÞ#^“ñ¥:‹ß§y¯™(B?›ÆùPÒ›>W»óàkUõäKWá³»aN¸^{Å"3x À€à1HRŸ±rb™È ÏJ-O¶i±r q¬Ï>?ÄŸ sÑ`ûÍX'߆£p•¿ê(J2Õù„=ÂaßÛ™|o ïÅÍ ´_ÀÇ ¨³6Uìl¿4¥§T§‰誂¼kÈa„kÁ™:¸ápÖ_xXiÆ"•ìiÃã]%Q˜ ½Ð´ŒìHA @1÷ÖdüCò‘7ç€j»ÍhRï31aÔäÄà^¶8Rm{o&Œ–½»ŒµµÚÌ lT'‘›+B‹½ÙM⤛áê$æqI‰ä#c?\Ÿ—¼ÞnCŸ3H¬ð3$­hÀ¡_€l å[;+⸶Ë"êéᔃ¤z­±|«—»Ò~ªÃz‡DÿLäA+‘eéo±NðZ¯Ê`U"=@J«'àZhAv¸œJ! rªß:ko~eRÁ˜1M›…Q=à$Õõ‹o$g‰–{ØC|‘ûƄڅÛU«Ù¨En$$‘^*éÉaELÕkX5ÆVd‰’‰¿í]®IžÎ²¹„‘¤z—ìÖM’ÑJO¤ÔpÆ G§9¡)EΉ¯ó{'ÿôz{»N{FŠŸY½#{ý¥³éK€Tjy8à°Hn7J‚ºQ‘±Ñã#Ë`Þ+àˆ»þçëôÇ/Зü¤o´zkº[£N½Þ ÓùPF#q,΄¤{ H£v2ÔÔÇ–g`„Y"ª” }c '^yï;tíÕÃ>“P¿…øÚÈ?¢YûÎ>*¥¦l5e&"ZB=™PÂE˜×fþ¼JHy-LŽ5È&Ç $y¸ÿ¤|$ç‹vÂÌÆU¨Éƒ ùÊiLMÞ ,·û]úMJáA‰0L€½ Ñ1â„~ÿUþµ»ð8Îjõ¨®¥9ý…èº-^Û ¼K¯ e:âÄeó‰¥a¬ÈøÍšdgno—`0옜™ü+Þi\\ª M†ÚšqW™A.Aÿ黵Û[_LÔ·)SKýíT©:OHÀÛGQº“e$úßþfA:#âjˆ9Ëð·­i~¢-‘Œ‚V·×êiW܆"BÀÝ“@4lüõìo{MòGç±€˜Û~¿åCΉ$…Þþûÿ‡ê´˜&`©±t€ÏmŽEóö#·–¿ýí:'ªÓÑ'µO,ŽöõPjz$åïøh7A™Sx½þ£·Bi)ûãm„ÅL„å ¾¢ª]"І~ÞR¹ÞU¿Û®ú#™õÞúî-_7wÝR»-È•»Û­gsÊ¥w’âÑ 'lœlΪ4–×6$`OòŠú‚¸Ç* ‡xe`:r)2¶ܽ•(Ž©A›ˆ£OKý†1.4$8)› aIágmZß8]‚ÕrÒ±<è1„m-ÙKR$Yzbvq¾íS@Íâý¶5?臱˜T5'ª¥Þ½y{xPQ„y·6ÃÀùëJîµ V1ðð$¹¥JE~ŸMzŒõN<ÿ& ß´SI2Y™«s—޲­ÈÙ¬Æ_q¡‹ »Ï"BDüù‚]y|«æ3Á¿ »eDÕC"6}NünO>§Ù¿"‰¯y›øiHRÙe2å| ü­mô™]>… Ä%Pý̵m¾Ê7lœ¤æ•U¤Ø 3¯}Þ÷RGAÚÅ™–³/®·1Ód i°“Ø:_aü °ºò½5äïí;U:Ò¤¤Ù´ V#uš¤C=&"@_Ú­Ù0H+]ÀÌm–z0õ! œA¥w+ŸÚEŠ@>° 6à Ñ5)¥¤êAt£SÈôˆgÉò0е¯{Y»«ÓTOH°NL]ž+¿kªÂT«ëƒÓ7¯¨xÞ.‚&l;ÓJÙÈדM1 “ÌÑ(ú÷ÿ*Ùÿ?1{âÀ433»²RfÐ=>û{ e^²WYd¹LâÄž`KÄŒÍßXyíð>оJn³ÖK¢¯+±‘£àNY]Ñ¡Žˆ2üü¸ˆ{œƒbÄ_B"Dú–¢3 ‘ÿ³žþ¤esèz%mÃób¬ï“-k@WBžêø‹£u­³ûK©§ŽlìL\i%l6ÎÐ8§#—X»ðWë£î—uö6ºÔ³+g{ûÞ£$Š$=ÝžGG›÷ -s³ñGœÏ…ÿîó0ø´£¶€®Šˆ‡=䉙üé?íÑPŒØ&–¤MQ=f¨skWfá7Õ»× Âñ„HXŒ=½CäX´Ùì‘§T¤yÅeœãO·a˜ÿB^ÂÙåÕ Ð¼„³&œ§š*|"ºÚ:*Æ­o€‹7“æÎ¯[MP½íçDøž¶f¸Î2Ñ w÷(‰o‚˜ÖY”<º-+P·‹â¾c×+k[à<@–, ³\¼¦†:?àqŽÑ>F Úd.¹,§u)«>‹•…`‘0c¨¬1q ýÍì(ˆ‚i%5Î ©:Ç]ð¡û™Õé§—þО$ݤ’¼x6ÐòüA×áXý¤c´Eôâc{ÊWU²-M~t¤´ ¢è_7´BÔÈ8j‡£°Õ-fG¿ŒÀýìG]Ñm?è†Äœ¹×¼Ò7IV!Žé8r£ádvD—Hº2T*AÙÒÌÎL 'ë¾ÖÓˆú³Ÿäü¡>šø †¢øFà ‡jÿÖ|j›Õ*F÷M°ìŽŒ6g6Åúà¬ÎúàÔNŸd°õM³>0ëó%&Ò>£k>mí.ÈÍuŠŸÝ™92È$QPòù‚)¶ÓºSÇùé*Ò9”v‹ÎN=ç5²˜W” Åâ×ðJ‡½©sÏÈ!,ÐúI ùäJWvs›ÀøáöœÎ4-xìΈ3ÎcÂÑÅœŠi0Yp>ÄÉÌ4ä–ark„¼ ²n£Lºm€Ò Ú}ÀPóLòYú˜!S¡Çó±ùÇ9u©i¿­†¥ÁƒæÝ8jó]þ-Ž~h¡ÐÝ~A.K4ÄYžqN"ž´}­±g[ú~<>o#Ç­˜Í´µÞLëÍôÕ›Iâl–Q¦¯ ³iýãl¾Ï\Òuõ-hüo<Žƒ%ÇÑä5ý²yzqp|b’\€S2Ç‘Ÿ" ­²Nÿl§rቴ¨^3ÒÿcœÈñ˜dÒ½æ6o$àø¿˜Ü‚µ¢Ìf`ò5Èظ2jÙJW¢KÛ\t+IRÑ`¸°ÁÒÖ—]›éÙhÙ*0—:ðz"žJûÞýîá5xqɦg>Ð ‡OFyÓqN’.ÞÓLÒP’û8<ÎUV¹"Mi—cÖîù{¯]dú¾Íb­—éO°LEØÜn>W»Ûšéa,ör©‘É:G]ŸQÓh-ó–E!Qêà˜¦#‰8sP̰åDM{#õßQÉi ÝŽ/ož—)?$Ò\Ò‘9nB6‡z â›0Mb¾^9ÃWÚ¢‚á fD s×ÀRžÑý,ÏPIŒü é*¬SÜI42l=²–.sºDTü,fÓWØc„l·î°KáþñLڟʾèNÈ`ŒwW¶áñõ±›¤ 2÷Vf™cç°/lXA¹0*˜ærx£C¨“ïMd€ós¿¥Þ0`.EœntñR1kæay‘ºìEÕë3« •ÒÚ-™S?ÐÙhÀ„1ÐÿÕÓ•øºÁ˜N2í‰4L€­K_Ûwábo)ÒÂu " 9ê}bq:ùÒ.Z·:Š8\ ë쀡õm@òý~7 í¯Ê_Û´3mõœíǾýÚm'“€N«5Œ‹@`š¡÷ôßaŽ’1Éò7ݶ›îûΰ»6Z¬UIkUÒל™µÕb}rÖ'ç7œœ1q|tvéÐÐÿœq_¸<#žkÆóžÂ^‹cb‘4:4 ÜÄd´w|¾Œ9#I¹œ¡wYDyhÁ™Ý¤Ûø‰r’HÉþèÀÊœ‰´ÁÒ` :¿¯±¨ýàãÇot¿ˆ‚õ¼¦+kºò•Çf})¯Ïúðü†ÃÃ)®è2Þmqò†½E¾”³æªC¥!â³Y%±oiWpj—Ù†½‰Q¼·Ìo&•²IjÝ£C o^X>4Ü£Õ/I!)0’œ3·°¿b{ßÐ&!„_"Ô@Ú“ä?Q8 TGßöi}ê$Ž^0`ÝNÙzÎzÁ‡K:žžya™ÏImˆÊ<)3f÷óëd'oK¼ìj,ôl]¯Æ÷Yn¾¥¶ZÛÛtìzwÕ™±/¨øL©SúeSÝ1ŸõÂÙÕ•„˜ÒwaE/Ἂ sé¡á–¤ãЦ5–S^Ì`Â$犩:&~˜öïxVî&XìžB„õ2FY t1[LÐ.ô0˜ª}’*èï7¥ñ4ÙNZOù÷˜r¿kmæ­QóóF-“pl@fàåÈAì3\ 5ÊŒ5n𽕆g2×Ù&×ÛZ£¹Æ+d¯ˆ¹þ,h —û"”³ZqH‹q’MÂ8ɨh%>‘’Aé9uï™®¥¿˜Ÿï¿Œ[þŸtuà¸ü08/Aq‰.k›e¸²w²ÈÎ^"Ø@óµî{¹OÒæNó™hø_l«'‹±+øàíþÁÕÙ`Å2Õþì»ê§Ú¥& ˜S°¢¾p²pxXšÛEÈqCPH„+dmƒ $“—šåª£­Ä0 »6@‰*g9T4-ˆA¢ç‘УT%·±G$®Éð)5=¤*à ZË÷Á!4ƒY™ÀëP0=(¹xÒj”6Ù2yø²Ê 1âUúž/0Mžp¥2݈x¤0éö“OåÏ?%ØÛÚ…>mZ9Ú¹tˆ;+õA Í“³ïúmÉ7ÜòUÓoüíõÆ_oü¿îÆ7ªÅVõ?™ÞãÞ³!º…Åsq/Å—ٳÛ“gažQ¿’’y©M›*ÄP±k{Æ®­*vmÉ$þ¬yÛ[nÞþã¶÷íŒÛ£®/kêÉÞ"Áí<˜v ÈÍøcò#û£‹!¯Ì©˜¢&@¦\A²›bqxÄ7WõôýÅFׄMiÇÜ¢ÛîçnÑKª°è…Ü+Kúù-‡åˆ+Zõ~±b´D®yŒ6Oyb.ñóSÝÏÕ£ZG:æ˜qÁGŠMf膹ž@|ôl\ÑíímkæÇÇä1õ³Ç˜‰&Žíò+´ «HOq×QÁ~8(LÀ•\ˆ^ËYíÉ M÷CšS“ü²4 :B_ìVøá÷‹î£KŽÔeï¬EеlÔÎFSÚ0­ðþÞ]²ij ØÎ2Ô¼õÖYoÊÖt=v¦ÝSôϳç«Ò®¬ÂíKÙöÊm«:‚+ê¾RAíç¶ÄG0BC@(oIÒÈ ³íÐñÒ+æûBÐÞkb†bú‹øÉ-ß‚ž|ýr] +_ˆ•&–—5+ûà«Ûº7®˜(êè¢Ð;âÁ7ãRynÜe¹l‰ÿ2ª®ÿØfîû¡OðúÿNë[„²º;XÝç[+Cë¯ænèU nu(µs ¶¶YâØ‹ÍÅ?Xª¨%JLÑý¬æ?v«4xá2®iðŸ‰-þªsÚ\ŸÓ‡\ĬØ"i höOžµ¶·Ú¹³bfq.\íº‰•­R|+ÊŒO‚”ÁDhnèü Ä;]¦zÔØ×=‡b `øIƒ•ÍI ƒh᫃K?²Už§¯’x…4å´tÃV¤Ã6-M%ìãyï©ZÏԗΔ¡û+æ«BÎ m¶¸CÒÂgI¼T*áì- wÀ.ÒÎMó.ÐGàxm/Õe-tÈü< y«£ô4çÉ Í§èüšphðRC¢™$mNÅÀä.k§ é;gñê9¥åþ NR‹ÝkÎ(˽Q¾ÄîÞëWÓ*m-@Ã\¯âŸa+ó…gñ/Àþ)ÇšÏ.Íçìg­/:a8œÍ³ìâì ëüÆ–'‰9ež ¬YzÊf_ñWYÎ"²§4R¤ny²$º÷º†?Xºt§p¶…+2´Æ³$“ŠÇÅõEÇ%mÑá8«ÎìŒ[_ÅÛWÜ›½ˆ_À.½‹rPXî:À¿·ÔQ‘"‘]d¼+奦iÏ©ð3›U +ìü úv+Éœ\¿ü!S¨ <¿åðŒ'¿9­¥K±Ø+Ó)"•èåÕlúFs~Ì‹°×+7¶©"°~Åã¾ÃùýbóŸ‚ [\ÐŽó’ñ‰Ûó-ü[ºEåeÚƒf?¡*4OeK×dšÐÖí²· ‹ÆtLÓÑ |iètÜ}¥öAêÔÀ¼ ×F–$Ð<ÐC_x 1kÛ¦±Àƒ&™%¡Çû·#ôx2¨õYŽ=¯Ð8!&ž›¼'#ãb…ÖdgMvÖdgMv¾ Ù&y²ÃšðÖ6s{3$ç8„9mŽ#=î\Ýp1¸B}¢"$ËòÇÍ:=o’Âkë–Ïwб£¯ô™‘ÿzzB§{"K¼>Ÿ"•êxÀg˸ðСðM‡zÜ¡ÌbzQЭ!v‘ŸM¬çÖ3õçj‹}1îû]çÐCš&“î+OH,Ǒ֟9Âã¤@.-HÃa\ÜM¿kì#ÏI"o(3=ÎýH§TÛWO¶¶ìû¬¦ã”!+²*³caz\.ÚcÓlk2œxÍ/u)-X#äyva›M´ß4o[~L:½$ÏÕË4Ì?Q}ND„'ývõWœ–ꯋ"ÿ¤.ÿý¿¢r?¢oË’‰B¬ Á( #OÒ*ôäC[…A‚¿ SŽ i.±+yÞó—v•b§¸ ÞRtªý´=L’õ{ÙR¾«s"ø¬oüH¿§í õ"Œ'E·<–Çt-uBjˇ‹ L»{ÕaÒUWZ·ÚïNøC»›t3&“§Å(¤sý!E0'¼é[;‹ÃI°··W6v5¸ã«b¨ý >Ï¿Žˆ¢x@Bù»ŸMÐbÒ3èQòVo(å>h\wêP‡@H¼ýØÅ‡v7ô“¤¢e<ĨŽ[ê2 ÛïŽéOû&/’Ä'ÚÒ¯B:ûÝ!ýiC=3eM+¾Ö4‰~ >`l>QÑ.u~<­*PcŠ÷ÉV’ý“¶oouYæJ4ç-õSƒÒíO²íqAãíµ‚ u¾.’1Íó"Éè…˜Œ<¤=™Ïê/#ºÊõ˜÷~Z·‰Ohaâ .i7…EöIýsÓZCHÄ×ö8ü¤Ó*îä—H¦NR¿D9‡•ó“v OÊ}ƒŒæ‰Š6_ÚQÚkùa+˜ô#·Xè㚭銣åJZ·­L¾´Gƒq½Ãï:ìM ÈÍ»h‡±$‹ é(Ž‹8lõ>™Þ$Qø“·A˜eq@lCê6[8™˜OI1’-7^•…ìÄO Õ}Šž¼ò©dQÒ½¤9¡µt+‹*ÇèÊ7Ôß‹ ( QÞïÒ“65Œãm¡Bùä@¶c}ƒkcìó‡¶OüDkB‡ª¢àþÒsZdÐëüÑ¡ùÔk?Ì’¸ÜMt^NÄ[=%’à³r. û©/«roV âØ Á¬Ñš!X3k†`ͬ‚5C°fþÒ Aâ節ÖÓÖ–zöbÖ‚m5‘t›ÁÑ`RÀKXu0Ù¬Ÿ¸ŠôTÇLÌáßV#ÜÒ@û6¥ÅYÍÊú²y7.;êÍÅ úg8iˆFýNÃywe¾Ê„îãÓ$òqQàúÓo<μoæc!ÚÒÄ|¬÷í gÎZ8™@¢ßw“ÞÒüMñ>‰Äÿ»Î¤-\Ÿ·ñ6‡o³5gæf?í\ª­§ˆÈ¼ Iy ·Ü 7dש4<•ãç0 w6©²™Ÿ#»eÊóÃa\êr4¿#“v{®Ý–é›WIqåŒ}‹¿NŠ4™ÆuZ½Lv««·ö‹(j¦à<Í›9Þ¥—ø¬Sš¤gÍ“ëŽÚÝÚR[»OžÀа‰øíÕÉã‹ë+µAý ýÖÏ"¢-ÜõBéÏcƃ͉-‡¢ÊÙþ¸éIã0œnïª]w³Ve~íÐYcÅÙ…hXÛO·¨twcÆ[$ó6ž«Ñ«Oòía`{-µù1Zx²¥^}ÚDàk¢v¨5j*ky/ÅJJâJØ41qåœN8Í»×g?×èZC¦²>ímëx®³O¹³Ô³@§¶Ïòö]Ç”:e*ll?}²åÒ“ìq¶)©ûH2áΘÕÑ ¡s4c`ƒ$ñ v®9m©äÑj’‘4,ÄLvZêFÞqTϤ¡.+ÒN)VYhä•4µ>qФcµ¿ˆØÀ‚Æþmès˜ûج.µ¾&Û ÁE£\Ÿ|ÞjÈ8‡;„„€‘xûyºuߨÞô$›¥)$´”;jÖ›Öz•'i+¤g˜Qáè¨É^½ô#›z;Wo°ù§…ô²~€”³ lbñ™ ûMpæÄëNÂYyz€[LäèƒÍ î$&r Û´±è€Pw‰»Ïj*ûR´ËÚ)?n×Ú§C>*;ñSqº¢ûxÃGþÚó×J)š]êè8„FŽô”ø$ZYñ•µ£tÞ"Ì †´t¤aK»iåc{0¾»·Þ}¡6е’\ÏjÖÖäzM®×äzM®×äúȵÐÑyžz{&±ÑrÚüVbx?Cš›3¤¹±Š6‹*éç/§ÆJ¨±˜M?YîIZ!×T-[ØsvöU¤Û[EºÕ‘îîÔ[Óì5ÍþãÐì?±ýìÅñyjüíçûlM=×ÔsM=×ÔsM=PÏ|Cõ«m 7µ†›úÊc³Æj[žõáù-‡g4¤ÀÙnm«§»­gK |;^]_^¨Žñó¥rz}¾ÓÚª$z0í¹CÜÑYÊ,È4ʃ7Ò.Ä‹›[”àŽæ ‰S§šÑÔ‹šß|þW+}¯˜ù|Ä!i]cØ1“{6£ë¡ãy†Rï©”A5PMãü"Œ}sXº‰ƒö`¬¢pOL¦|$Ü1ºå¸žÝÖîcÈõùßé·-Õá êÄ'¾<‰åËÏå$ç´ýj3ÍÛѰ=ç8cZ¿ãâžo`¹¯é;£9ši\À7²j!6"XWö0œÆ¹¾cÈN Ì3O«Ê> ª0Jæ\»°¾J&D‘4˜¯ÄË:%A’ˆ: Óÿ_‘|RûyÔeÀ“RZ!kz0 "2Á—Ö_ˆl‘x˜´B«† Ò„èÒ?o‰9& Â1¼ÎOÛwÙÝ"eÀO8ðú+s1˜êãp Û]=Œ‡IßI"ð\!= ÚI’%a”øpº>‘Ëòþ©y÷šÛ¿Š²–ˆ˜Ú›„8`Úcöéû×Gªöݡ̙vdëàglLZªJ%l{ôiQ”½Äz¡x4CÉ-û°•9ã±-rÐ4M›‚Ľ$NŠ ®Ðøé0żaèŸ(ð„ŸÊ}¦$™ð‘zVM.°7ðszL–ºÎò‰é9Én 4&B Þn¬ÁÀ2Á¨Jü_÷ã]½L“` ¢Hdi $ÄQ€Eòó&6a¶Æ‰¦!ª—ê m˸.6×bÖ !³=TØÔo©7ƨlÑÊéèøZáX"ø•/ñ¸ÉÇD»Æ+Sd™ÖCMÒß@m˜Ö!’ñ&ý&ËøÄ7E®Mõ'êø¹îéTmøú&hgtÄ[Ãtóžë»^Ù¿êÊÎglÙûÀ8‹?Â|ßô3¥ÂÕñâEë1ÀI¨Møû—'ä‰'4ß4ëfV—X1üƒ(¸ Ù…N3‘¡èQT“Yî1´[â1è´l/O)_‰ùÄ—ÄðW¦^í -b¥}ÜÆQBgnA=9Φ]ánî‡ÆlÇ4—ñü¯2²¿àjôì/5°¡ùËÇE¿u»Œ¡¹•úfD—àܽÕz 9kÆIø•üŒpýÜM®ij^8nJ¦ã_\|) <&zu«ã![B¢çò­*dŠr*‰›Ä°$K¡J¢üýÛˆ£¯~ކ乳»ÀuNï:jNŠÙsVÅšýhÀ¿¿}|¨PYHG ††F>Œ5IAš~/Ô`š0>¦zšmz0ÿë ?)H˜oŠ|Oèá¦Úèä´!è׋³—o6ÕcõþAm¼¤ïÙ&70¡-Ä3$¹³ÿ;t” ;§Í,ŸFæ\‚Äx/­æG¨hjeC¸;Þ²*cÆ[X8·4€u¬O³,ŠËV8 :‹Œ~C§ƒ›MÚê)qs(”Áxg^J¯g>Ø àŒî ¿`׋FûòíË#µ³·÷¤ŸŠÇ}z¶)Ð$XPiT•éDO[êo, 2ä0ÁPg’ ÌAÀYØ‚4ç%$ÓÞ“ÙŒÅÝJ²‚•¾=uXdÝ„6…ÚGPVÛb gyá‡É}ãÃ^á’¸°fvVE ¡6çeÊü»8„÷Q†ÙÇ›fMÏŽÞÕpäŽxôGÿ{EÔ¬+ÇÓ¤[d9½p°Ñ úîe,M-qVƒýŠê¨uÔ—:’œ©'»§ØÇ¦–pYçžMÔ"›€dÝ8·iþOš¾ø|j2r]ýŸ¶[«–q ˜“8°13Õ‡P9–åR÷†ø¶qvx¹Éïzö±¤ûôÒv’ÁÅäÙ »ãû²HÔ¦Ù súˆõ^øOÛ þn®ðí{ÒÚîªíÝ­¹”"gÇ»êšÊ84)è:GR64—~hZ¤ÂD*» Ý“ôõf›7fÙ^‡74jŽ;+¦÷´/ q×Ao'Q2`¢|÷Zjßì¡va ÝÊ x=oI’­Ùɺ€\ÃÖ„úÑ7ü(d E]ušzyï'ÃËá ½y{xàÑàwš‚Pl§20'ã$+¥ÒÖ9¾Ø”}ÝRö•C¿[¸~cÞì‹Á¢RÏÇÓxŠä·A{~ÈÁöôrîÑ̽jë›,˜×-õˆð Ðü(¿i™¾¯»­†óO5kò|½$¾$6ø|Ù1¹ÄÐ=–MaÙ¼¯X¶*È.œTø“­\L‹°ží™KÀ:‹ðÝZ½»8³Üqã§z-À#gǯ-K´á iW¸þÅœ~‡Eºn' uUÄSÜýÂGS[õùÎL¾0VNY1áËúTψlì¿ÖÜ„·ëÔŒÔZ²âå†5žùÒt ˜Hwƒˆ¶ü„ñÀðÿ’¶éu~¶Éx)¬Àß‹±=%G Ýš#ZÄ!pWøË{ŒŽ…yÀ@2)G‡±W=5xK¢»äúã40Ä¥™ßº!°Û²E1Æ,QÍÈç ï¬FÞÀàA” 1»R’© Ü”åÍv[;êõËó#/†~–¦Êd‚ëÉÄÞøÄï iùíZÃU[÷J)‰6Kë<מûU‹à‰ R84 .ìuÎ%‰xX^Ù7ƒÎ·êý|yu¥d)™Êаí¦â·tŽÎΘ½< ù'±Á«Ù88:ÙDžDûNR¾0뇲"ÊOIôÅú“áAû£}po ζˆÏælüÅúl®Ïæúl>ØÙ´hŠ‹îÍû˜ø×t}@×ô¾4è=Ý~þ|—“÷m©íísZ¯¹Suvr¤¸Ò¢ÀeGÑUbe0ÝÕjãèìªÁy^ €}n—îèòjÓÛQÇï›cû}Om\^œî4¯;›ö4Ðã§ÞÆÁåñõÕfK½)r¤nãwž5 á”H‚ÐKÚà²3."¨±842¸ !Юö\'K…9­Ù×nªæb$$c í-Éhuã%4Éñû†‡n7wĉ Šk•À¡K<ÇÎNNNÔöî‹=£És`Ó¬¢]¸tÖ›MÆ!ãï1aXHCÄ7>Jõ-æGÜ ›¸äMÍ«˜]¢ÊÆt´š m—Üù OD‘Ã>$îµH*ã7ê(KhÍŒþO^ž‘ÅÁ˜xìš?~£r«r2.ãEyTÒËBˆ7Ôy€ãäÆŒoéDxÂ…ØÈz#$2ˆjX° 3’Šé8Zb™&½~æºÍ™ý’(¤Aáà÷d=h'2ÝJ“H¹ÉÐÓØäñ+8Ze-ퟤȢ©Gä (DCƒ» Ñ<>‘2f1œ‹"Nƒ(àPW£À3‹¤oz¼þË)Á1U?”¿?½×y‚íç{0Z‰îa6›u=ÂjX/É»”*7+ôíXŽÏR0縿 ØÁør!è‰&ÅJ¸ŒÖ\aÒèJ…U1ìO7Ý©•L“@¸Ìs {§qמÍÞ®X?î1â(fì0®“€÷Ù˜%T•oÇxÅ^j^”Äõ6qez\déc6Ã>ö“Þc«ë~\™êÇoOŽ/O ÓÓáØåÖ©LÜ`8c)Q)s¥ÂÈiU³J?áåêàÊ,r0µê‡v¶G%Q¯ŒÚJ€?=. 1±&¼Ä빤ÖVNµ†ùâÐéH†¡D­äÕ¼Õ|òo'·b/à™"®JœüÍWP-¦Ña¯ˆtÊsÇ C9¦°*åvJRi«õ·*WA?ŵQRÇ8÷¨§ot™0-Nµj£nÏ0yË©µÄl=¶ ðèâ$ox¹ g#KvL/,4£:ë‹•š†ƒal™d¬ª|9hmr 4Â:þ/™Bø#SѬò»4ÈFÙ•9vÖ™!§q â¥WæXGÔØ „ZDµ{”¢Jä/‚é†tKƒ³Ðúýþö·ÏÁa÷¾Ó=[b³4ÎwMlÖÄfMlÖÄækˆMŠã  ­å±ä­•L´øPIG}ß™)Ý/Öó33?“``fçi Ð.Ï÷v[{Ûó“Sú€»™ Êgjƒ(õ$Ó4Öã°·étü† {™C‚|o‚@YÿdfWì¶š01K°bžÞ&]õ*!þEíñ§}ryxÑ|ÅxŒ­ã“ÿQ›ÐK]D>§@ÆÀ·ê Á·ºßlVæq÷ùz¿~W2‰ÿìÞ¬Òù2ÍnM¥*Ê¿[d…/Äû—!ÏÊì¥ÔßþÿgïZ—Û6²ô»êð¨´Zç«u‚Ä»ŸÜ7öw?klÜî8®y•£úauµ÷/zÿ>ã2ä@#ðR¥qÒ‡ló‰øï ¶Îdÿd£}ÆqVó׿‘8©äCp·×TRúÀÚŽžŒç©ØaŒ /{b+r:·¨aÙ鬆GCKè]þ%ÜÔbÅmüÅ"±«Äáe¨»õr°«e`öÞRø%qž½y x¸f‰1Z½)0[f»¯[Y•d“Є”ëAW•ªè>ÆÁQŸåuÇ~_£ÒR°a5Ê“Ôf§ª·<ÇÂ,ãÑ4@±‰B§ê‰ I2us/r‹ ••&ô\™©{BA¤–‹(-vÀJv‡½§ÐÖI¹FÖ0¤~ˆŒvõsF>­.&tN‹É£yæ ~ú²ú‚í¦ûpã‰ò2ÝßÒtGA$Ÿ¶ WÎGFÊî]ôºt,f@òÞÌAkx««Ï~uNÄÿ²Ëzgݲ~Ow2µ±"ÏJþg¬#Œç§bõ”•Í~õgCÆY‰Km[üâîü¸d•{?8i¯`årÙë`¬2ys/›A54yºoÏM9# ÔU ACtzæœ*pJ+Ÿá|·e§=’Œ¦BßÏZ“¸˜O~ BØôé?#9ž^_:¸C \•ãSÞ÷æ&(CýúôÍc9Þ}öró¡{ö…'HÇŒ7ù+ï¤Ð{\ì"ûFìÓè~X~MqÚ<)2¾‘Öçko .ÿeÙ¤yLá qTϪô²…Wµd¨ÁÙ•¥ÄA¦eµWÀ±*5´S=ó=!ûÇbÐë·íK–étŠ~B\w¨,v«R‚;Z|ÙèÛ$œp¹±Ñ”]ó¸F¿7ÚR GQ¶«`IÖMÂ’%ô2Ès")ö]7& ¤;O­U¡ˆ5£ì<"÷Sat•PRÉm|®:þ }Ò©„«V^Ì)t!ìĤ-Î%«K4‚Ä¿#U.cTöríò8Qg2+ÕøD{ÍñFyÁÜ m©ÐiíP|øcÛyÍÌÜûÊ„ ‘ë(Îü6 .Š·$xà`y~É ù=41f2°a›vx°§ÍùT†fìVõ\õNÍzærÝy!ñ‚W©ªTÈ“:O˜U¿–­ƒpjfs˜i‰õæ‰m£«!€”À‚ ÐYúº J*’ I~zk/‹¿›Ô¨è‰¼ Ûù£*½Í˜—0ާXüvWgOnèê¦ç^WŠÒ9Ɉ‚äÌ¢ºÉO;&¶‘ÆÁ­D{Ôè 8#ueS”5‘‚v£œ~sqvÖàd †èÀ?§tݼAçT½ìüâÌ·+ƒhp>:ð8T^¯§š¤W•Ðjœ‚6m=äWüC·Å¢0ùÁ# ”Ä4|Ö\Æ e(¦•î¢Ýïù¾ÊZG<1¼CN•$Ñ8 ÖŠÔ–;÷-n.èU©]P£œ>IDåT“^м¹JX'¹UO¡“O’éA_Là.‘œØÁaŽ{úÝë˦’ª«¦›²Þ¦„ú„6B' 2âíÇ#þÛò‹yo] FÍî-uðe¼l‚ÿ§›€t?±ãîïŠÝ£CR_–L¹}`­Ú‹"] °ê„µ‚ºŽrׂ–òîÔR“oˆ€·S’•HÔIÿœ?Ìð?HÇ°È ~ð2ÚËXÞ›ÁÒO»‰r€©O=ZŸðÑ÷-FeîzyÎà ¸Ñô€Á²Iä  ÛC’I“¨EÿßC}ÚŽÜÞÄ;Gî.¼Ëþ¶ÿlmæg*gHÑ\ÿfÕEOô¤,ñ)‘i,N$²¶ë±ÜøÒe®[&e•bhÏ¢˜vµ8µ¹xrµðÛ¼Ð")›°Z2މ)ý+.™Qº˜Ã½vèþ ¿ä\d=»ó]kÔlÛ€šV]ey·Q•êmaˆɼ±tj6+kµ×\–ÄUzLDºŠniU1f_ÕæÂ é{ù4Òf¶ò¨j4eƒI_½ÕøÝë~÷ÃMC\_¼ûpÚî^6ÄþiwÐçWƒ äŸu¯¿k8öহwø†îëì5Ä/7Ý6ÝxÛþGCÜÜ^] Þ6ÄÉåÕ­úÔ¾î¸âìêçku†ß¶ßw7" Î(²wi²ðâdNŠ#]Ç‘w×BÚbâN¶ +Œ‚‘Bì#Þn×G»îÁ–I/˜õ莇N¯.õ|Ýî’ñ½zvS©‹c”Íe /óÀIwç§ ÍmY´\Ü{µDg£Ó¶x'½¸Ù÷Š›Ásù ½ôf ÜâôjÀ Øeq5(,P?›Ó \ÚŠø]ÕQ†<÷b‡·9ËHôî;Ó“r‰pÈ ‘}Ì"¡n“€‘GôÏ~Ôp"|zˆTûA¾ @DtBÜîŽ88twÖGkaÀ¦ä¸÷áœ_ýŽþž©®®Í0' ‡³Àeí 38UeÎÖÈ$±†Æï˜ØxÖ³’Úž‘JšÝ‘rëÄ÷ù°s†Rzq± ÅtÂ-5î­exbýW†€kC‘^ø$ËHÌõ+p«ª}_BL]:ï·¢æÓÑ!-ÇtËx%ªX"ÌlÌGÄ!Þ‘Fyà.9åzE&ç% Ú©r)Ïü¨J•¨bUó°"Œòf2Mèà‘Ñ|êeAÆùæÁdêü«ðàe1A07óºòÄõà6«ÚÚðÕd‰ÃÛB«}Œ½,½Tõ ˆCº&¢’ÞôÙO<ò£:{õ„8p)ÙÉ„Æ~‡¥™Q]³Î64ÂeHvÅ%£ì‰ï鋽 ¯W]WöÖÝ<¢Q°ïŒ]lõã•+“¸ó2øƒ¢‹þŽiqsˆëßÔÛ‡¯Q)ÔÚ>[I §1ßî°1|ª¬K&œ˜<š+ó¦»ç»ö0è §»1ÌÊB)cµÀD—V*QÐmP©Ù´b™Ì•Ï/ŸØ¡jsª/yÁpæ Ó&HÒ7˜L«´!Š˜í<×t ¶Û†ó1I‡Qû¶§Y¯† P°ÝÉñ¸HçåY££ÉFTD.})Q*y'»òUÁƒ1ïCE|ÝG vÒ%îJ3 ”#ã„FÒŽ¯xÐ48¿º’¶Ù¢ãtõÔ9vk)j½×?»¶¶Ý&m¼Q v^˜0PF“Íļ) íúÌj¨ì#n«"U{K‘LŸ}SyM¦v½|ðHMâä8.ݤôl/ÄS”•²¿¾Ö'€SÛfç½þº7>ö¼:vIñÖ‹ÓD©A,ÚýD‘LíÜ~ÄEô—ÿïÝ¥RßHÚm‘þÿüwˆA´à·œBzø2‘Ý‰ÌæØtx´ov~ÜÛñBâgâÍáŠzcÄÀœD%úë©5êõ‚Qš ÊzÕ÷\ÅÛÓ&º´‘z»†“5øK\ØjɇìÔý»ô4§Ó… µ…²:÷¤¦u˜ì%Û'×éØB˜?ö²Áˆh»25Vb46•_Ë Hv¼@ŠãÙâQ¦­ƒbµÄÁu‘eIž' u8Hgô`"G¤‰b)nˆÁÒÙ¬¿zçIŒâIÕß<`µÍ<çó`CrwWãªÒ}ùÚ»é …D´)Tx)cL•AA8¦°¥‰ýyp¢ ˜=W­. ôºW=®öu£ Šõu|çk¸§‰r;•ét:jòÊ:mɺZ[ SÚa˜%"õ¯0m×ô1mˆe tÉd7%St‘˜þ%í8U­{Z%0LÙØ3ÔvÉÊà“8¦êù-ì†ùÔÍä:|“¸¶]ýd¦:(²GqKÝÎ!Ë( Z¨»@ï ¾ÍÃ2;š^Ò“´ûcm@_´>QGÆ`ë2Þ2Ò8"JŽhNƒø0P»î¡8\²®}cŸjÛYçIE;'ÜŽPÓ¥ m´BA;<®•‰£ÃÏÓˆÕÆJÙ9%UÊ—ÊÆå(´ßå@c³ EIïð«ôúû,H)ÉJ˜õG›ÒOîcb~‰ÔnKÝ&>©%¤Í1›ä,ß‹höãÀ›‰c Ŷ¢Â§3:w%Þœ—§IVt'-Öã‘ä·‡Ö=]eÕèlùH¬@!gÕÒuk$•¥·DLô'±;ãÌÛOn®?s†¼më]1›y¢Ÿ³$„U·â+w^~Õâϼ­jYø¢Kÿ‘ N½•é,‰Ä1]¸÷ê¢E¯€›ˆÏ ÎX¢ü”$øcšc’­[~ì’²K×``4ÿ>÷˜¹¬\ÈÖP†Ä„‰¶•UÜç{š1Ü8lIž–²“ƒ\ÎQ}ìN",¡ãŒ.$FšV%Øôy…´š:ÀÇ÷Œ%¿ßÊò¸{™{d•„h…ëŠóÔ£nú¸lÑz˜ÐåÖjj¹Ã´ñà‰mö­$½lŽ—ÍñìÍñ…SÅÞþJPµÕ¬ðOw¶ÄAó—Þe5 —¦XQ-ùÔ¸Ô9¼^'åÒÍ, Ðß&kæÌÔÞ a‡=Ûµêc¤I€_¨] "´Ó‰tâ$¶V‚jÞTmGN“Ð×¼oí žM>¸—[Á×G‹ì_¡ÊïÚ=ÔúÜ!©oŽÄÁr¥¬Þbð÷KCÿç§‘Õ”:Úv³äµ1TÒú¥;mŒžŽˆ«ž2¦E5´›Y6îÄÜq¿žA«[Tí# ‹ä%êߢÅc/—¿ZÐí„nêõìUïùˆ\’÷è…¼¿5yÿ™¾ø·'0‚R3™•çÂ5uêB¹ÿ@ú®ºw }¥Ðí¬Ã_-Õqu‹ÒLá™Zü’I¿@-fïÄ%MñzUÆ^ëÙ(•r“iôW¹ðEÏ…ÈÑ|‹<qü *þ•îr¥zW\{ ÅIe–Ç[¤Y5ùH§Fu]RöIËkä¿­ ¾ 8m¥d´\üª"‰gÄ¢?–ÁúœþÂÕ_´òf#ÈÉÊ}c§HsR‚¶ŸX3¥?¾Lé72¥o^öê7:±/{õÛ™R™Ä{GÀàùœ–vi;oonú*ôIOÛ—²úõÜ¢í°^¾¿†Ü°0nëN™DìbC§ôÅŽ˜#ê-ƒ‹T×JËpÿõYgïÍî‘F@åà¹`‚À¸Œ—i•îUÃ_šÔózù‡MÚ¬Ÿ&6–®ú·þýÚ–ùÁs¨©¸·sÄ j*³9õS–Ôˆ$ôï ‹ðTU‡-‹¨È‡9ÜÆœÛHê¢JiJy°]-TL©ÉXÈ0pG‰Sañzõ½é?­;Gß©ÒEQ¥'ÉÑW» ѹêÿ£!N»—ݺê½ï\]V-«f*ý_¹† ‹’;ôžL I¸ŒÝIJqS2vÊim]_õûí›ÎÛïñéìâÃéëM‘ÚR\¥0bJd !Žã ›Òñà³­D`Úc6÷e»¾l×—íúçÞ®Œ*æg÷`gªM{ªêôì›`ܾG²B®½…I\†î¢Aµg‘KK*ù°è76§ÓÄeÛu‘ )3G Œ3çÆU¼n{ÈFS/’œ,£ã”ô^ÔÏ õ¼cjU_ã ÓG“«¡nÖåeÐ)åÓºè v~±‘Sǘ‹ª2M%‰Æãj'ìi§5¡‘T Ÿ£r{Ì7&ð\Ǽ•Ôâ¼o1ÇEX«bdRæ_™!æ’=ò¾tÅ@ªpD ‚ÌËô"†œ°·qj.Cù´‚‘í[­´H¢®ã`4 Æc¼ã8 DOÇò¡Ø˜ŒF4F»;Àe(×8Ü])}YzrLbõ™÷Ozâþêuqä‘7 ;;Š(¬Ú"œÓK¥qÄ—m©.˜ (e¦tEzX¿‡Òsd·öåë§ ¸0ß½±Æ¡zÀùKU9Œ? ňÒÜìî-MËR!›:û?ö®m¹ɾ×W zVŽ K¢$[ö†bƒ²dKnK²ÖR÷¸ç¥,¢È2‹Uœºˆ¢¿g^ööúÇ6O&PêÖ3bº{Ñ3"M H‰D"ó3Ho°à­¬oÿûýh‡¨³’Ãt‡¦ƒ{—a:ÏY¼à§w^ör©+°Ðdøþ­Ú!qÓêÑ1?ô¢éñóÕÇ„a»ì% ÇþgtX¡c’U¥jã_elþ^,z*îÙªæ\û¡ý¡ÁßÝ­þBÓñRVüÕ€?µ Ãî.AôË€ÿö'I9ÃIÊn7KrpÓ)ºC‹v˧~aâRîõêú-rÄÆÓHí95ŸÓò†D™Nûc Ò,HuaÛv¥u¢‚ä¨QÁû,ÊSõ6+GS @ìÓøÓ,èì?øIÙhÀù—棟ÐIY>Vû}þyŠÏ-ÉœéàÓ¥úÂÈá atã44TÈ~]É?P—[ÚŸøð2çú*:¬{q•b†µ¹ë2ažjVxùWùÔ߇$»d—±àÙpjÿ¤º>‚¸¦nGÌŒûMOè¿VUg—?7âucb_¤€:_5`†o}=kƒ}AÌ#>¦ÿ#ÛíIKüåz¯×øzÿ‰×8cçxm)Hàðެh,† °ÂÙ¢f£7OÙ"¸û®ë&fz}ƒF¸ñä%ùò[gj4Å™¼ÍÃÚƒÀªì×$#0¤õA6]ØÏËräã'ÙAq A¼ã?/Æ´@¶ü]Àö^ú¯·–w›¢Z[ù’?è¨ûö‡K•´J<B~8–ñ‰žŠ?œŽ23zkßþm„*á°sbtæN9 í!~póô.÷þ û\¹ÿ:žCì×þ¶ÚÛöwîá‘£Å|ÀÁƒV`ŠT€)#ˆùõÝ•ÛX{E’¥e®—ª<¿<<¢}PO 2GTìP``>€†Á°À$мM·p’U2fß žó˜kÀ‚›äR#à\B‰ÿ#J¿ÍS:Ã嘤7<%q¢¨òh¬€w{k¯NÀåT÷¬l{Àýh¯ÕÎ,'v;\jZ¹ÙoRb&%Ð2ä#’aIݰ`5H#ü„÷:öJ5Ê5«@Rî¯ãŽ;  ŸGvÞY]?ÜhÇ É2+o#˜Íûù(‚x’9u]\³^ÛÓª··ç¿YfÀWx@›Ö[BäËßûK;žô27–¦U.>`š„ŽmöJ?”„à 5ôV“ѳd½ ÷y$qéàk°ëÀPµóóöÖÖë­7=N/¾?‰†“ÃÎPŸSi'‡œÅUDïã¾G,‚aö”é/}øÃ¶>ÔHM{ãïmãÕÄê=YÀ÷E.áAFÛaa„ç°½ñrÂÉÑùe•¨þðÃ.M«|‘f*KqÐdðYMÍ"# Ü’'"z7zvI3¨a1v‡E‹ŠÜÄá„ä‡çÌò#%›êž¡êÅÜ œõ½ó4é"Íd¬]u+Ç–j£ëÂÅì¿67çó¹Ï’2J³‡Ò[Þg𸟤ñTí‡øÜç£Ùíxó‹tfèðYÌú‚Wæ—A>¨cÇÿB‹§ù„fm@n×w;À})U@‚BhL¡&÷sùàtá“Ö~xÃ< o–)5Þá-—qÅøgUíD¢©‡2ôÒ*ÐÊS²yrK;¯½‚óPƒC8«®û:¤3ÿ³¢bb~¶D'<öኲŠÔAr}!d7.ÕÉÞHJÊõ‚*ýî*UÓ…š$é<6Ñé8ØÍ1C²¼ð–Í¥¸úÛÔ¹6Ú½áV—m–ùÂÉ´{± PaÚÜ?«þóhè@X-cãÚp*º ß,<# jhFÈl·¥;õB6ƒ ¶5ÚänIÄÇIy¨ó1ã#5_0 Ìu_ó½Ʀâv¬ yr±†¼ºƒÈ ™óõ_©$&Ò0îli¶~÷N˜dØg¿üï(EÍþ€Ž¹}R93Ÿ,†Å´ˆý@?q"ï®gòz&ÿ fòh´Å·ú;мÛËÆÀh¤ÞÒ¶Zd`É»…½E·YC¡³N#ÜÔS‰«€¦–ú`ƒ]Iûºgñ5Ûåx9ŒÄ^ºÛ`¥ú<ï“4O9’Œ\ýìpeìÄ£6^Kªê²i«œÏê1pˆzQÙ1T–þ¤™VWò‹)€‘b/ÎCàR n¢Ù¸æÚøBßRú/+s6üê±_P3åž6Œ5ñ›̽õ`þQ³ö ß½0=ôÄsüÕJ²X›L£÷g´Z–JêÚC$Ï&ñ(œâîr ™÷©=úÀ=§i:Ë+(ŠÛ+q>r`¯ù7ÌHC-¥kkZæÞáÅ5žXõÊ[:Nt¢×¶"ík¼&®TŽk,mY@3Ý$œ/hØ9ûªF’²¿ ì’”Ó~©Q`î.-/…4§]—}`…ÁØk7œö¼a42”’Ã[ˆÁpÒƒþósôîü'(Þ·œ¯q¡%íü(TÍÅñ…:“dÁlü=g3Ø>v…¹»»[¾:*9…ÕàŒ†‘½á¹ JxvÑwÚ̼¢q!œ58ÝÌ6Åf:,º‘)Â.:6ͺYàEt ën½ò‹¼¥B4mßœoÈ¢ "`¹Øj—ºë¤…]÷QOfä1&#«Ü6AÓ¤câ(Aç¯Ó HG0«¼Y%–ÜîF²Ãòž´2Û5¶ àÑr‘ |äÜTM“g °6‡¾';…fZ,#–T±ç_ÎpûmMÌác(¤iwzKàîØôÞÒ¹’MZòAwÃb²´,À*ùPìN4M±ß”ñ7:OÍi×Ò‹~H¢p@ÚïúÜT¯Ì½õ„_Oø?ÿ„¯¢™îžî wŒÍi0€;´ñyÇI±­÷ˆë}ð*MÀpî&°¸Íñ¬·†ýrw¼| YLØ^G¨¹¸«)¿ I?¢^Öò^‘¼‹Ëø®;ÖûáU›Ó`*P®ÙªÃòÔ–81Îvl#Þóá¦]ÇVÜ\(©Y±3¢h]Gn/_›o®Å%7A'¤¶ÊY³t3²w Ó ¬Í(ñ6Ë<Ûdks“~Û´³ ß¹lΣI´É°zþ¸˜Æª+ ÖÖMjsœ°ú¥¬i…¾¹BUÇMÖ”mÝ4kþsÃËì˲¹d’Ÿæ4¸´Fx™Û%[MZ!žU˜7×tlF,Oiþ1Ø`]ߨYXçïfAt¿{`ò}Šu¨>Fâ…ÒI”¹ÐªÿvaWÔˆ\}oÀÛ;k.é¯ýaIÇcÚæhÚëÕLІ*àiº³ž¦ëiú;›¦y°M´×»‹œñöÔh_ÔÙߩέ©Ùý‡Ì 8*,÷¢]ªçgÎWÛ°å8Ÿ)àA 'ã772l|¥.ݵi´}(¼Px »iX¢Œ7PÀʸnùõœwÛQƒ «ãµ1:˜€“’`öš PÛ÷†UŽÅtññðò?z=Þ„v¯íC_M%jíYú xñê}DrzÃ.„«1[°ƒ(v*˨xøÍ/UJÉnˆhš[ž‹å`3ùەGƒå™¡%…B\¢Ý€}?Aœc‰ ‹p©ùÒà 4íz{ózçŃRW§4K{/ P™ˆÃÚ®ÜÄ:%#0µÔJÐ^n6î3Åå7ôø¦‘i\çð’°Tðõðu—Ia*Š+çÙøÀw¦Bò‚:à K];=heW4„î„Áh„Eî¸a¼–* ©}d²èZWˆ=§Q@ÂÈ%êYfG37ÙÚpÌЯ†–Q}/åxϨ—~à{?¥¥½§ ®¾÷ÕI9ÌÁ“{uGS9€_o“ô w0CÞÉy÷³Kœa¿$_xOvQÀ3‡ê HJkž¢éÎŒ ‹ÞXç |'Mÿb=¦ù%ÅžºtH;¸G&}»˜ê¨Ï:Ö°8'uM§¡ý,7·Ke~•6pbpa…Äéí¢à8Õ47Ž ¹£@:Liï2Ìu·? o·Ëü@ «Š”qx»ÄIèÇÏ& Qƒ/· 1ØÁ! ƯšÑ÷v©Õ¨¦Ê"² jÙa¸VPkµVPkõ ªº;ºÇxú§Ho‡Ô5¿ÙtÚ·ói=’|‘€VÝV½—tü_Æk¼°á;<ÊGéöhÀ¹ALfc}Ô%U2ÎÒÄvÞ;DŦ/GùRé‘gGT aó­#ÆsDÐýÎ9޲PTq9êFn²Y¬=ö­K”\Ðv•dx`AÎM¸Dm_tlêTÙU=›>*à|÷vƒz01³BpÃØÜð’·ÜkÍ×5¸35Ÿc‘•¤ ÝQ5\*/Ä ÈÉдÓйžÎæ:ŸPã“´à>$Êüù*•~¸`E #Øá\&AŒC0˜rÄY^‰ì¡´x`’«·ºÄ|Öøâð¥?$­X¡LÆ.Ú%]äRñ˜oÛé¹³í¿Y c{çʨí[sð]úH‚ƒ-']¶X m-%¡¬Õ¬-ÒÆPñŠyÉù)ìî“os±=ŽÔø¯5³w²w^ù{K·¶ØDžI¸²¿ä3P‚n2Ê'\)’tEv2ï½^ÖµÇòóóHúœÞMä†ÏÆib\ÐÁ0Mþ³v»¢–³S‘W2 Ò%¯¾™\ÑÐé$"ç˜Få@íGüaeÞ§æ ¤é(6]§UëU°¤i޹œ:tåžg˜–Z±:¿–:#›æÂd&Ê´:у Pˆ÷ÍX>õ3åzª`…òŸ™ûe~ñî™äŒxµ±I\…—‚Ö¬NÞg¸';ÉÄQΦ-}ëç¤îÂÏï(›VæÝËe•ó!;;|& ·T \Ü– (Þ݇\¦‰œœs˜ë÷^nEï2‚+ƒ~|ùòÅê†äm ü» ÉÈŽåC?^ä8+ùqT2‰0Ê銳x…Ã4!«6šºÚö_.]À}œ=Ó`áí$e€Òt…[0Çæ¸þ;1ÀÚle>¶û%0ú}1]©{TO >ò¨¶¢í›ñp46q­rIMS’©Û\ôc–Æú™Fªz=Ö×ÒNnòÛ{¹º¦mÿÓÀܨ ã|ï³þ–©w6¢uº×Q?¾ÚYåãà™9l.mÍßý€öõ2Éç@ªñõ“Æ—G+Ev‡émÝ…d=—q‹Wo¢à_u‰ŒeèûqcÛÿ¢>:{Ꭸ« ý¾OÓ¢ˆ û åK ýó?‡é¬š%t`dï%µoxʵ¸)ï0/®x³šéØêÀÝ¿×[:ˆ\à×ç+~õÊÇâÞˆ«cUþJ¾ jذ¬|{·Ì®J ¶uð“JêiÎÚBV¾¶œ¸Çmé%9ÿ+ÖÛÛÀsüò2Að†øë[wAÕábS]ÚGžk¹¯A+µ€'¤êÎ .–ö§øÓŸÚV«Rðy‹èßþ_&µ–]ðyÄl_.‹å¬]$Êù>òU•MÑxæ·õ ß}‡Á±DÒV¹¤à„ ân/ åh$äŠÏé8Ê£) ¿ÇÐa»Ë°.í$×4T—.ºÝÏïÕÎö«Þ€ ˆL/Á@dý4Ê‚V Þׄs©RÀK¬.Yë+Y—P+)ºs½h€)¹UfÜXõcŸ˜ÉéÂÞûh&ZDï hØêtb×rw…ù`"Rê0m7³0Àÿð˜M¦»o°€Ãß§C\Îóý©£boÞÖcó;›"äÛP„®.û¯›y'Ž Šç w-ïI;4 Bª’ã[%C”| 3MBŠøZí£ÝŸöö’'ëÙ"khƒ%ä¡ï>…!ßF}6Aš ¿³Äuh¹‹B°±Nå†a—F¶+åÕÆ§«Ï/l¾,«AÙÑ1Ày›LA‡hcKrÙæ¼ôšó0eZ4^:p°‚L“ø® §Uç©"cL™8„;Ä‹z3Ù® Îm¦ÁŸlø‚ÎsD¹XPŽL ¡ñ½§ÜTZ=g‡NøêˆÆD ¼ÔTÇꇒ9É|D²-:êÝ îm ÂcCÛ f=¬4"8©¹É]£^y쨨_£Ã!-ÑA® Bݘ3y{òÁ¬S#ƵÐW'éwš5dÞÉ¥š:6æ´) ^¡"'Žó©šÂˆ´–J¬Šl¶¹dÃGa„¨Z2¥CÜŽR?æd[{¹ 2,Ô‡E#¥×rC»ñûÝü˜˜_G"¦öš±bZÝŽr=¦¾Edï<°Î#š­Z½MÁ+sÍMü@æ8‡ )Sû´ úÁb66Ù¬L&ùÑ gž Öñkµ»wû¼©Î-éÅe¹GNqØZÚ C.™Ë¦çòH•Õ¹ÄF˜xmXxž¸®Ö3ÆEfl2 ß\"³Ès<•ýØ2~¢\‚¤­ÁÉ0"LJ5`Ù,E ±aèžm#¯…K¾×kЬÔ÷†a—öCþÛ§ÙhtŒ}]4ü ˆQ!sËd1p™÷5þ¥ŸGA^9Wbsc"µ?)¿QÇúÓ|Û’Ìן•Ž4:éBÏf)-òôk jÒ<©Ú—¯ý(úJÛSí,<.T$2ÇþhÌúa¬ó1Ž„U©+êZÁaÉ0Æiš?®¾1ªyUÚñYÎ!MšÔà ÇSM:¿(ô\û0uÑLÊô,8Ô$$ Ét4R§tzezXõ£f¡tð4ð¸ýÒdWíúÛ²e,ûQøwuV#UA2©5'èÙ©m Kœ"]º• ^ñg6jº´G£¢Ž'¦C{g‘ð2op[Œºhk,Öjño%]âÞ'"×Ñ9ûï®k)g¡±šàâQÎa žJ Ríd~}ÌLñí)ƒ6ç 2j¶ýµ½¬W.¢8-º§Ø«š ¦éhr#ð@É£êÐhô\'­ÐQ.µ|®j3FðcÇwIÜ–;rV½£÷aÓ‡–ƘVï@'4Ȭà¯z<Ìûòç©'¢f;î)õ•…ÕJæ?‘ŒQ…{4GØxpl^%‹IZðÌ2 qìýš%…e§Æzž=.ãdÔÛîBi’ˆ{÷c:ê…Š¿Ø–+6·È3jãâüøEÃJH*ðZÚS"«­q¦âGj÷ªÚÃFí]·2;Š8Ðp_ùCß$$æ2Ðñ'Î'šO"² XØ ng-¸ÇW!øÞ=Ûšj¬ö¢µœwà’œrÕm¾ú]•aèøª—¡I:u,/ò ’0•–½÷ÞBK©ƒƒm9–Ö­æ±ä>@“ <šFíüؾB\¨Òn¥Ž?¼¿—ñdé¬gÁŸz¤H;Ívh[íï1d{W?z¯>ïÍçÿvÖõ…<+Æy-j‘Änfß¼ŽÌœ ´òPŽH\už¦É ¤ÓtzÇ1¦yDÓQGžr€³Åå ÙÁY“[:~Ú‚—øHTÎ ä {Î?‰÷fU‹[õBooñk÷” heH•5â³Ð8 '<¨’ EíI‡Ž´]FKÅDN³R¨ÄAÊ`¢zØBÜ·ù˜ª¼fwL•åyɇäa”ðhq•ñZ¯07B@A‹§Æv ÌÊB¥%°,çH'B&4Nötº.³„«j]S76/ªå'¼’?lb²ƒ³ËíH²9çÉXæT’Ç;(&ØoZÁòEèx)&;á½»¦“mz37a,Žç˜}ÆÎr\:Ã\ó ƒ )AcÁë»IZTâô,ÃgmuÔ˜f'}w;q´Íok)¬t=LgÿÏÞÕ-·m,é냧˜=K»ÅX?NœZÕ©_+–lItâä*C&ÐøE¿ÉÞï;À¾@jßkûëž”H;R޽ÉâTŽL‚À`¦§gúgº¿ÎmG:ª'²(j‹Ÿ~4ç!Ö3›¤d»2 }\æ"<¬ C}ÙÁ ¦"òв‡pQ2”Rìp·9vR Ìãù³dn^Ú&4À‚I(Æ¢í[˜ØéÐЧ.Û¾”ηI8ž(ë]Ø9ªv/j¤¯µ)aC-¼}sôF¤/ƒ/y€ˆàÎ!zñÞ°¶¹¾ïîø#þ†¨ŸU~²WeÉÑÿùq&Ïi:é’Ž€—éü±!¸†MJkz­Ü©vñè‹ÉI5à‘Ô¬+mXö/’Q¥àYhÏÚ¢@,¼* ¤&¼ ¤ê¨ýIäÝ+‚ÔïA^%‚j2H}¾ *Á1îAªAê,oÑfá4‡ØRXµ°­“E•K†ŸJŦ¼Ä[eå”Ýȼß%§Ô9e*ñyFN-4‹*éêgJ*Û•ŽçHª…®œêw$ÖY¥VdÕⳈsöcÄ”#Á6I,¯iADçƒE–gE–ºGdÝ‘WjU^ý͈+;òÄ•`Æ™áb×èñPÉåÕ$—z˜äòÉ¥.¹¼JrµÕç‹®¿­H.¯”\ê1’Ë«$—úsK®1}þ}“ÚR§ôQ½#p^VSm ¨Æ€j ¨Æ€j ¨Æ€z€úïü^!t•ï62¨‘A jdP#ƒôGÈ ½­ßm ]å{j¤P#…)ÔH¡F =B Q¦%x~›sTêòç0 9%¡Œl§5t‰Gz\„]D·!À¼÷˜€vúcÏtz#þpàs·‡0ÆžçFÅ]ž]Y0!B–Q4òuä {,ŒØ©HtDß#3[S&s¤vvçàQrG4¿'êsçŽ|=#¶zrÜóã룧\Ðd]p©ô¬^ïI ™D¼ž*BxîÈ7ðÁ¹ŽcÀg\&ÑÏÀveÈÀP§´"ßdÙÌT 9:´5H‰p&¹šÐ2Ádô.Ïþš³ü5g„Ô½·v:ú÷qÙ_}Ñ}ÕÂ+Ž%Ö¯“Óó³…ŒŒ ÔGD‰rµ¼™¢æ¥Ø;€_Ý1Ü°ä³ #¯2º<%ã# Æ¡ @ŸM0q‚‘¥ÍÚæŽE‰&ÜÒ›ôÕnïÏJõÊFM\£4hžÅd¹S v•[YmWÀ ½³‹¶ºè¿n{¿ø“$ù—¶úÁ  Â$ñû¤ §~PláO[^ÑŸëÃ6)7ÐtNÓ¤˜/B(\]µ½ó$/2Õ÷gšw[õÏÎéÞ¾ä3@žO–›DR_“ºq<öå„JËô©;æÚ‚¥VbÀýZÀ8"ÒR=ù  ¤Qƪué“-üi©RUò$–4­I2#2ày¡¤Eìp 'É"˜鲂n½"2õâ¼¥Ž’(ŒÍS\©™U£Öá$œÿüâÛ51#ž Ô¿ªwz@o±o8‡´Æi8k‘FåÏÈ¢®šì/ÕJ#Ÿ¤}ÚRçüoýÇ…?øØR¯u”™1È»ä/ªVê±n©7­špùý€–C’}To"ÓÔqŽ~’’·ŒÃà‚3; ˆ·f~zC—i˜:ø¦oç±pë¼OÊ0b2”ù ]`Zhä¾ükÒ]Í«n躔PS¤.šÄµBµâ$‹Ãh–ß&D‚ØŽæµ/ýnNË—nxçGsÉÕK&ô é¦S²Ó%æ’8AËì¼ò·^‚ƒ[ïÉldóFfùoNÈ&·t §¨Mb”ßá4v^RÎÐ!™?œä78 oÆ`ë Òø€‰YXj^'4²\µèß$ß~¶ÝRëB[âëø½x‡‹0²O¼Ò7t¡EËà´XÅrèç‚àL/ þ JÆcyñ4#G´ØI?ßκ¶æ9- G-§7«“h ¬±O÷õ2ÂW'W2ðgê$ ó¶ýe@2ƒ¦­|K_/g´¾+Nï£~ƒ©Ð7Ц‹‰›úw~J{÷$¿Oûí°»¨®8ØÔˈè 1ô|í§0`ÈVrèûV#ØŸãBwBÓv ã¾ʹŸÒò9^Øý T¥êuÿ¸ }2pù¨ä×:ŒhqÇ€ôö ìÆÔ‚VÆE˜MC½‡͆BÆ—º„džF¤>¤›3'a³ÿÛ‘œÓCqž¹i/$©CÏt_qÃò¼:"òE2ëoœûp-]£Œ‚\ U“ŒˆÅL²*ÀEÔEdˆ#ø{w™°XsrTï=CíKi²AiC z\/íZ¿^Ò×ÃŽ:%Š™µwEa‚¬€AˆÉäoÝÁÄ¥öï–ä´ž–6üÒãÜl¦RpàŠ&ÒŸ=ZÈš€Â5¢önN^Ö¦-Ù©¼Ð^Aª71ÒøJ&ƒûÂOVÛm—^Ë´^롽‚]op饞“›Ý`r¥'âl¹ }Pšri‰|Å~¼tqÀÉ­mÄh#F1ÚˆÑFŒ:R Àšk Vú­`<.Oo$ß\¬Js”g}Ñ9ª7E¶îŠœ³¬<ñð¾~ú;ðfÜ×É«œxÒ-ÐÙsAvîËÂw*‡Òö‹õ„Vêe>](‡¶W™Àä ƒ¤”à| äâ®*ÖÈ8L!RøÝM1•¶„÷ûçß¼=ï·ÕÏÏŸ}ßV×ýÀ/{Ûde=ocZŒÂlÒV»GÇ}V ¼Þq™ñ¶ÔˆÒ·Æ‹2XªQ‘²KÆØhs·Ì9‚‰&Zne~1]¿×?·ÝX’—Ä+?%å€èfׄ?…qxûØDøAèÓnÌg,é6ç¦>S/:ÏwVfúˆo#ÕÇÏ„%3RØÝÄO’F•Q~/ð‚3åŸÝÌZr\ûï§ pR=œäj?õ£®QÙ-–å»û¹‰l.X~ígøþ¥>Ð>Öb¬pÏ>ëì©ÝçwÀ>Ïp“:1Ì’ëzutlÈt€&ØéËÙÉLqÓ8„ÅSåq7ÎÞæ:ag”© [Ä9møhk–e˜ÙCá £^ñ«åÍmI¢‚zË2¨o¦!hàó›uà{Ķ&Žãl««ÂÏP’fÁå"R v)ñäÉ펒qCÛ™n“1çó:[ˆLÎèP¼ .¨O׈8*H"qÅß:À¢]v‰eÂIüØÓ-gBËd©‡ÏªkI‚³uŸ ]ª"_qÄÙ0ÄœEþÎÖ°ôvÕöó΋•ŒôÃüCaNÝ?d†©§%_õm#⸾Ê*Fk#/“€6–¸•©êF4©¥IæA{Vk€ñ®˜oÓ¤—9 ðSÞ° ƒÞ9šã„\jÚuAêȺ0(ÆgGÇfãšø8øñ”ëÙ¼È%ÄfBÄì‡ñ(é¦öŽ¡½¶åN1}Ô åvÂÚÞy±Š"^è®s›ÜvÇôayoçÈ”ž¼S¦Û±|Yr:Qk7M®UeF†"J%·Õí,Ûœ]xUq@yJº$iRÉêõá§Nþòq3‹wÙ®ê€A¯J¨DàrŽWî »mAÔlÚ¡Q«p Ó¯¸<™WóIü#RZK­•÷þÏa¸ø¶yл[jÏõKÔ‚b˜ô§?žYÔÐ4k{VÄNà h£oXÍ› þi“±$ÃjBvïLHÍMãø~îð^½Î8Fgt«Ì…'ºÊkXR¿­_ô™ZózÝz¨™e¬™Ù£‘žY+ªÜΔ(\sÜWyAdµ54mw¾0•?ä»ö(ªÙ.~'í²7‹=Õ¿:·Åc+ZT¤Úsd°ïˆ¨,f…+‚»´7æM´ÐN½'˲”8KZJàPeÒ8ÏqRmÍ–5‚Ý]Ì{êbÉ=”þBõì œbsŸœlÓOWù*K}éÁÍ“,“ùñ©^Ê}è¾ «b‡êš;TçoöcÀô näsÏê@W~°Aˆ4Ú=|Õ¼üë±¼Fbz+1ž4ìB°«E 'Ø ÔÃþªü^}ýæèàp3C”w­Riå—',y2.ËSÞh‚HW…Ø—ùíööf¦€æñðM1H}6øa0¶õÔáT;=W!âV¾èhçI€8ž½Î ù»•Âï= W΀œ¸sä+‘¤Yä0ÝXõæ-z™å¦÷ ‡×ã• Zø3¢ZíÏH v².iwPSçиÊßé©¥{k9½Q!6mÕìhh÷iÚ}(Âᔣþ·;ψb»ç¹¯µØhïwiÈFøUÙÆ©õºýÚ«¡Ä¥ÎÓ‹;OÏøis‚<°%O¹z‹Äá±?¢ìñŸQu1øÔŸ“áÀ@í÷°Ì5ß ®NÔ¥Ÿf8:ªaû›ß DÞÝÛ É‚Hœx~^·|À\žDÄGÈž@sn€`ìEvÕ¥!X<~ºé›Ÿ/Îqêýzë­ü²Ñ‡u£Õ€yÖîþûd [%AˆW"j®¡ kp»Ê4{4…zu¬£õáÜb‘`õûüL`ƒÇèÕÿ:Ê>øÑ¶Ä§¢PÆÎÞ*wá†O°MÉi|o ð¾¬û ÂS‹„üPè”ḯµtôޏÒȼ^-^=¡—?u¢Á}ø—Ÿ¾pîßDJÚµŠ¡°#MnV%™ÛzXØË3“í‚ *\’c /Þá#!Š–RñCWKç’øŠ_lOÝп«ó§Üjÿ²w}uîÉ ‘¹áëÍké ^3¹›ß™x!ôC—€u·” OUËÞ‡¡¾îBXlï~¿·õX«@Èÿ¶³ólUÈœ„©^„ˆéµÉ+÷JZEôõÙñññÚ%ÆXÌŸ•ì €’oÔ½ÄD³;€(ÈO?±o~ªÅæ4F}“XrÐ ä‹ÇÄ3Ä#„3½Óá$Sû üÓ ‡y'/¡ŽQVÁ7GçU$ÏÛD‰“ö‡öJ'ç+\ÁÞŽ—_ø>5ÌèŸ.þ˜ò)UÌÂÂH?»ì†ò‰º9@£U/-ÌêA2#sQj‚úYg€¯]T7Np®‘éc‹#—3_BîÚùßiæÿÿÑü[%aÍêw÷J®>c|ð'å©]Õ–[:Š/”Å8ZªE/ÔâLNiËä\>CánÔIVÙMSiIM“biµêcö¾¦¦Cb™* “¢FÛÝö³ï:»ß¯8-ø¦“>+g6ù¹' Ðê&hã‰ê.@óFe0)úF ÊÊöÔß›§á O2ƒ•½Š‚|Tu[< õC.w©z&R51´Q¨Ø‚UffÎLІ¢ÖŸÎÊø®%{éCÝlóçÓëÚê$y›á€6qòÿtÑgU u!zRˆ1,8‡þo«gš ƒƒÒå))y|ÔgC}Z"Ú¶Û¢Ä ÊX¼’G2Cx.ûÃ!k“q¾eW8ò¦âA—+&¼˜+î¶ly´A™Ü¦“¸~2z&ÚÅ&€k4æ(™'ö¹_é? ·=÷Ê1Ûªv‰m¾r-¥=죮?ŠÜ\âŒ_ó"¦»u>|ÚV濺­HÕšùsóE4ð„ÏÔ@+$Œ*·˜à ѯÊïѾºäcRÐ<+ÉPnÖ%PÐ.­04±ÛùV¶‚Ræl¡„‘€<ÓIUâè„*mUù¢7—I¥û§ ãÎ3H” ÏXOvÄO+HÐ ‰¦/ÿÔ0šYj‚úÝs»gýìx:â|Ÿ†ú¦SøßlØ®~)h þ8ú ©×DQ’>Ýb Àù¼Ê$`åzðFÚ@cÒ%äC¥l<~[3Ê´»¹ím7›[³¹5›[³¹ýi7·ùÜ8ƒÒ¶ DÂÝ•è {x{fM ðïi¿O\­úKÜýæõ¡º¾ Ûx䨢‰=ãŸdC_0ánx{&+{ʱ.Aª3u±í 4ñd6×C.InÝïv©)­='±;¿nB—¹¦w©sšð9^Üõ‡³G39‘ÑHo‡˜ß6Ä|01-rÀ:ά{àë0ð2ùìL¡«x3…9ÀÖV+¼e_ùmDUñ\Àu-°:c€ªòKS0ãsÆ+¥M·³ _Á ™¾^ã®Ã$&Áˆ,ߺIûoÊî³XûUê×ßñTÔÌûÛC#CVuÄÑÂ%’³`]D`”d|I½Ù’I¥ü)í£1>5`ð«2ëçðHI7•Ý#I:}ùÑžtì½À¹Çã{¬ƒó¨÷–+ŽkÎvè_ ‚㜗ƒwÒˆËRŽþ¹ñ%bAúÃZÄ¿q_¼ YÄüü<’ìÈÇbDCÛ;ê:wÏMss›Ô¸òªvÖäsV9ðf#ÐN‡œ¢9D¿B4EœÉ]1¹{›Ž ÓpJÜ‹’vê<™'œ´> º3=ö·bÍÍQ8ÛÎæ!I©h›ÝVÛ¨R½²/âW×bàˆxzÊ=¾)ZzmŸ±6‡Yu3ªåY#Ìë ÚÏB®§Êkdà\ú·㇄³Úõcâ×2ͺÚ6§F*¬ø«úÇrºç¦,g‚¯%£¬‚f­:DöÂéñ9Œfçê>¹~jÏÙ8ګ쇲ma¬²ÅJÇ©™s¥Ó5O´;F—%Kv2LïÈ[G²H>p8RÊD˜éJ-Ìe ê¹€¾]ΣW¾æ²­®“H[Ÿ»¼áPÞ yçE”‡ÆËo /v¤aCçD †ÝÈòX—b ‘ 7josªtˆÙhÉ!ê[ MO%Lhõ;}é¤qd’jEºƒªÞ•Ÿ¶j±íNþ€UX*if-nï4‹±YŒÍbü‹±Ôñï—‹îiÖ&mß!Úç¬Lö»l\—ÆÉæ=j]*Z—k9ðs×¥é–÷¨u©Ìºôšu¹q]®j­…ñDÎï°²ÛUþ’W™Ž}¸L ÚçI3/£ÊRöf1mIq0ˆ€ø©øÙØa]®“I²$¨2€ Œçö7œØûY”~ìSð…p´9›U™7ÁA´É9DßÍ&ÇýȰìy›æFÙšµ(»ê°'2)£ô\·Á°bÀ°£°Ý= Çd];s?õƒeì`x]Nh™«ã@Gƒd¥öçt­k¿ÆÎ½¯–¿ýw–‡êâ·ÿŒ¦ÓPñÿö§3ߺÃagRäQ(7Ÿ¤I³. ßûðiãÖ®EÝ È:qd¬8ö-º9m‹"¢À«mÒ*†GvÑQ/Å¡É÷Î&ò¥ËhÏ8Þy´Ñhx¹ G7ýWàè=…S]@èì5œÜpòŸ™“]òónÃÏ ?ÿ)ù™,qÌîryŽ5žÙYU©µk!2+ ݸ„—Ѓ]Bst㇃º±”è2ÄRƺßÜøm½Ym×Oo:å}Z*3àÎÆ—Õ íëgM #2Cqa†¬ÈÁñ ª>æeÍMI,…±9Œ`•—¹ÿCž\ûlf*}WQëbF H“8=)E°•&~ãLÅòôÃíÅ0ÙKë@ +'PÇb$sŠÌ{‹Ø›p&Ã꼑CO™·u“JKfÿ#ÜóÁô²í³šÎܺLŸ¸ Ñí•®Oz‡–Õü‹Pt¡Œ¯>½Fký¹±sæw…‹x£%÷Z«ã/áîL5^üWÅÛÚ4#m4¡¢žü]Z ºŒÎu„¢ml|A̰â÷ïë„BmUEçÝÄW&§¡Sæ×>•‚g1ú~UÑŸåÙøKi©">0‚Ð7lÁ–(—„:i‰Áì y^’ÉŒsX¸cŸÄò¸—2[]ðkiÕç‰Ù¥S/ß2¿D£štÐA1¿É£‡*ñ¤ˆ¥anQßû¶%-³µ>M탫¶Q=P .Áˆ®¢'©¡Þ¾}J¬8® ý¸«ÝÍó g brî¾UR浊^YÊbuYdÊÌK8­úÚä¤úÄa^Å"BEPÔi*°ê’HCÔ°‚ ïm”µÅ."ôíȨ®ƒµR\CÔyIhË‘œŒˆ–ÉÔJf'¢çmbÚŠ¥3GF”‰R@²¦)Ribž¶P‰‚ž’0³¢Â¼ÈuVVµ”ßbg¦7¨hí yþظýT'aÍ}Pd™zpö 3ÜKç¾'«t? 0±Ä1§Nhûtêö9q‚A@Û•4WQ5@¯D—mèÊÿzÃæ&Cåèë‚.†¡8PÚ-ÆPÐ8A§O=OS"ùRºæÚæsWνNÇçgòZ5Tfáßp¨î¼VŽ<ô—#U }ú¡{;ªÁù¡.užƒ¶€ÈR9zâ¡2à“Êbç5 Iªä´‡ÐiñÈ a]-ü@#³lÜ´Iºœìjt³S§â•t•MýDTÓ Ër.Ú†-ù1ªdÑ{0E ,´xìѿ¨Ðá h÷t·dô£³±½Ýjìe˜:‡ýW?ò4¦‰äëõz¢R°F¯!òÒuË‚¿ü_#x± ætøÓ £€sá‰I³¸Ø+–RœÕçu&H”dŸoLóvÙà÷…=_‹3ºõ´—•¨-kÕÒ÷Wuƒ¥(Ò†óµœwcs¦eøÇ TVç±u—x_ÓJÍ{%Jæ?eÙ,ÂL½’5Û ,®¦Qr]'TJlev0Ù‡%³ôL´ iجf ±XÈíœwœÍ&¤mËžðagÕOs5˜àåµÐHbŠÛ½Lß-üdÒ€ÐsdéþÀ6s¹EA*Iµvn Êº0g¸§@Ü#æ¬5„M-±ÿ,Å(çïbQ‘hc÷äèhÍÙ½fýñËî½!¢&dä,¥tŽm«˜ ñå Cg{ÍÙø°æ´¶¸èÍV…‹ý3‹q*ÝB ù­k6GF^TUf1'$/`F!qfRÅÿß(„4m Er7oÎx3xTל>ØÓA%jâsOM©wjÂZw:ûg׈X9iÃÁç9~˜­2Ó §@ð\¢ ÀÂÈY&®,2<³žYñ;D÷˜§‰ È‚ø¡k=4Uü©Ú’. ‡ÖðsdÙDOPÖz<4è#ý¤ ¤ð?àc˜—6vv826¦´ò ¦¼–+$|s‡Sh­¯¯OüŽ©óÔZEò”…ÉC :Íx·˜ÙA2£yŠíG`©Ñ[Ô¢èÿ˜ek~WRwW”:Ó42²[À…I /Œ¬f‹;.ú}ò?!³JfIxz¥¡ÊË.¦ß*¢8hTÞ“Ÿ¯¶¨YK/2 :k%˱8[–NpÛ€yw·} ¡&1Ãð AxÏë7itn¡•FÜ>W ÏUÖgZ`ûI¸ æÓqpÐᢼLVÛ,À^Û0EW) ÔH'ÅpM6Lõå—¥F)Ì’]ÿl*¬Ð9VqÙ\X¡ÛÇÓéD¹rV"G[V„` æøÇK3ÔH§©Ðk¯Ús¨]¾z‡Í2û\!‘ÿLÕCth]‡é¶ø¿‹ÔŠzq6ÝÖæ Ç_œ“›Ânµ\XžÀ7óÝ‹ïKaAAWá·EÖX­Xˉ0 (¥m¬ñf}-‚ú쨙Nqå·Ž Ùý™Œ0?]ƒ}vè$¦ _¬…ÂloWÍ/ƒSçÍ—°kê ê÷¨³ë´a†¿Çùy¿ÜÆái^¨·1++o&/º‚Mf'£B;æZ2Ncà,:Xo«zDõp{ª{‰ K9!9–Ú‡‡>¬=kXçà‚ÊñD…ú&äžÌ­ÄAȰ Êè>?;œð¡šHú“†,«Â>Ïó’õ‘ÁçL´IÝ$èÚ1´¸¦`¢@_sÝDå ”S/Bö'á­ø3õ£ØèFEçÀ{¸Sx7Мî+Ê-oµfÙL˜EÊPV0²™>ñÉ4~ù! ®!; ¢ ‡÷#Íal¦Tÿð… &ÄÝ8¼wŽ1g/&tœ¶‚ Þ=FÕ"DþйЫK0›.ÌÜuõ Ì3:'¾zT˜T/LÜ·Üðo¶~Ûjn¬&Õ$°šþå“@E¤!SÁ´Í¶š VSÁj*øÆ§‚’æi}àñ¿¸¯7- Ûí̬°ö¦…‰‰@èz¬çD +Øk’ÍÀà¤nMßõüÌ?±'<·(¬úÿ¢?Œ A²SµÜugËm=¹“6Ͱ…™5;4a:’´×ÔbP¸PI¨FôŒ“þúz1<ï–I†ÍtÉO Û̃Msiž6š JÉ'K^Ô`Ý0ƒŽirXœý(€&S~T¾7¨,Ö°¼ªÌœ%°€8mŸ®ö}¯†™XªA ïl¸îÎŽ»ó£ÆnJYÞÎC^Î…s„œèxÚ¯”?ÍÈÊæ¬êk4R•eú®K p0Ò¾ L“*®L%F‚€X/¡Y>J°SRªÿ‚öÅP™æ´›sƒAFNû/$pÁã¯0ƒ0ëfZC×WUõv.õ]HœÛÐHHfÝãÀsU!‘8z@äî©u9Ĉ¤Àˆ‡¯Øœ=8éP똻[nŠA4Ôί ¦Räÿj?$éлõ3ÕË«±©‚(q>iT´Ú“zþôSr".ë‹§,²›Í ¿ðBϦÙ[föôy˜tà G;&Š-«‡i?JÃçwÎ_Vncª\$ûù7ܦ¶i’®ÍR'œ¬a‰^ ¹¤jóŸžÅè§ &/±¥ãö.¡P±J%„Vôi›C7+Ò”ó°˜cÅrÜ‚Ø;ë8Â-2Qw—*gMQÒfZáͺQ¿ª»…%Ö… ™œ‰žd¶ê¸OiªJÓ(ÓÌH†™rè‚Ó‚¯1#Vµ®ïqcê\jFÎE\ÏCAi/ ‡÷¨ô¡n¨°¨KºW,áç*#/íÝ4£…Yw\ç÷ª³ÀùF0.³7¸ƒ©zé…Јr(<½±¹ «¡ð­3h5Q#ÜØq×ß¶Ö×·×·7¶¯>å˜ÁøÚd‘ÎÇV™zª¦BÑ“`šÅOâ¦[€.Ö4(Q¬|ή“ƒÌö;›W—»Ÿ;krrÝ9¼Ü½¾úhÏ÷Ï?>Ü¿:9ÿ¼Öà+»—ûå¯G'§‡¿^ÚóƒÇ‡¿Ø“Ï×g{‡—Ž>âK×{§'ûŸ]*2$ü·o·6eíÝr7ÝÍßHÎ;ïgá«A •‚;•SF=@dâ®Ø&<®‡Á<¤*‰|Òì„;oµH%w^g»P:Ö¤ÿFiä´G>yÆe¾Â›ŽU&00U@+FZ}§Ý2Ý0P8L>M£ã‚V%Dö:ÎP<ÈÂÑÑxð}0@&c­­fïOB¯ïûîD^¢½0½…KA_2i4tÚÝ¡~œ)èTƒ‘àü„ƒ'ÏaBlÇ·U4±x[˜»*~6þ[µî+tY›p{ñGý9dÂuÔ4°EOÖ$Ô°fºÄÔäÄ>Dœp4_¥$¨%)`ª\*ÕÖ{ÜÒ"¬èl‚µ=tU²-P¬_oµW˳ý’[—«/‚²ÖaxáJ­íYmß…ø/¯ŸÄb!&’q,¬+A\"ÏÿäD¦'À湋 WÃŽeò$aÂ=Dç#0èsèçº1PIÂŽƒ ^ ¡ÿ/‘?‚Ñxº*‹ŒD˜·Æ˜‰&ˆsÂ{µoµñà\ÑxÁEg•AoþD ,Ê.œ ùdçqƒõ¨ ”Æq„.ŒH/QA¬ºn´œ%öè0äVÝu{JmUŽÜ@1¥O^ÃÐìð=¬EÉñ4Æu¾ù;-±©ô”hæ4¬Ð°Uúº€)œe²ÂHQš,´A*•·q]»õj!wÇ—(&[û޼0ÕÒ¦ò8ýšoIôæ ôèÓÁ¡Ó)º–gš¡þ"Ø!ôÀqÊR=¾>±J.9'«G`ÅÓ&âÔ yÍo‡U ´Â€kg*öT|scóNgq°dJt«&1ŽvL:ÙÚq·7žvVîœéàñqv:­õÚ²YS®^ÈSJnôÍV©^Èù„ž/¼Y†?»‚‰G±ÝTP“wÂl:³Ö˜UëôáÔƒ9ÛëëaÛÌã(Ûí|†…RÀÒ3f çPÃOæû&<>ЃA•½:í¸Îf-K ©¸ øjÿ‚‡ð‚­ù3Å1njççþbíÛ}ºà~• ^·ˆãzê\# åc.|ÞyR|Íí•×j-Ѽ:Ña³Ÿq჋öÎ4IèÕùÙù!ljL9f˜¯(¨a‘ig× ¢>ÿx ¤àOÉÕõñäøzÿã‰s "S » æp{-óÅ:ÆŽì¶>8-øÚÙDÏ8 ັ‡D3¼òñ¸skK õ3@ß3#˜9z§c›Ñî¾eÝëÏ'¿4j|¿ÌpDä³Ð2Šï!¨.Ìϳ`e:ÖY€êŸÊ£þ0„º\ó&pvWÈæœÇÑXÁ=ÿzï»Äº˜ŒÜn&äkØXš1MôÞÎéÀëõ¢¨*ð‡âëܨ¢£^:{ðyÐÚÕ¦ê9¬¿‰rÎóñÙ·5{AØEX|YØ¥&d÷ž0œvÖ¥#$#F7 S¹§»0X@PÈ2ÀB»=>õ8e¡€ô•qó{·0ËöžÒhµ}è‡i ÷ª ­ºÐü.T¤áФ0[¦óýYú ý6¢B‚o?«½¿—’ñ8ɦZÿA<Ã&ôuÉ»): tbÛnÿ€Öå{Æñ Ls: ‘÷â„ïiÿ`Í9»ØdòÁóK"i"NÓw)2gcô¤"UÕE)¾,ÁJâÑAð)d˜\°K€²ýE?¦‘Âúg^Rqdr7Ä7çÕê‰/É.ý€ˆ\¼;dÚµ SÜ„Y1@àÜëFº6ø€t2Äÿ;í[7—c¯ŸÜWeýT ‡Ê¹ÐÑPÇè•Æ[ñ’;ª.ytŒôZp†4ÂEù¢Ãl¨§ 'îŸ`._Ç$_âô)± ÐB1ˆ$À¼Î^*_WUºÄè$è·¡u>„^æXDóAíFŸ ÅðÆ®R³ÔhNòp4¸ÌaŸ… œ„tŒëwmL~ÁRRÀ°ÙßaDWÓ3˜‘cxî"ã3a&ÞÍ!_\ ¶z°QÐ@ï}XÚ|’ö~5ÂV#l5ÂþŒv¥h0 Ó³ZÐ42~F-( …áú© þ*@9aGÏwxòÜY%Åx óµ%Je0ÔЄýÁm9f¶WÑ_Q8ÁåѾ³¹³ý#Ö" b¿¾<™³õZ–\‚ï~O!nmøè.M9ôk¬äá^†\ƒÅH×ùkÕE4"GCû.ì&nÌÁU?}5™Q€¨¢-dùÛž†ÚZm‹èt™žÅ¹¾>9°‚­Â‘êw€ýˆH[²yáøk:ðˆó†žü~à6L0ä% ïÀqEnÔ¹½Ò u€x˜+óCô!7ÚK@ÃY’ϤPzD­¯,d˜ÍëÓAäæµry”ÜßOr<0Ñ£¸¼I­ñÏÚ8Êr ÛÝžñÄî:ûš8ŒrÞׂ…›2l”AŸø|Q2œ:¾©®M¨¦{’㬜Íèm…ú{ÊmL”+iÕn&_]Ï÷† [IwÖaÍ. Ujh«‚Ë¡vËŠÌ–8q„ð¶©Ïõž~ž2˜ùS:#è_ðk\eD-#LaÆ»6 û€Ad‰e9‚¶ÎS rhHÎ:y-£Fl§²d6/OŒš‰˜ÀÑ\ÛGZ‹³³Zòy`ò#•©©vé‚‘†)o‒¤b ˜6Žî ãò¦ÃÔC%IŠq¢žDE=Ë V˜ÝsËÑLdÝ'Eìü/š}ÃG5œø}¹®Ü=@ÕÒU^õèo¢G¨±ƒ<^/øÎº“Ôü5}ã¥3o4Ì€’Æ’¶ÅÞGáx?6MXÆ“‘ñõ(Ä“ Uø'J‰y•.ݪa îð(ÿ¦Rh¼Ç0“Ó~œ‡&—“²Df¥x¨£th"º:ŠÕc¢¾åî(fdäìf_‹ˆcûèÀóK´”›z×Íç}Þ“‚Æõº»=¡·L˜Ø“kþZ”˜³Ê¤¾<ÚsÞ\r%%Œü?ö®e¹m$Ëîñ˜êè)‚„%Jr¹j´ ^¶dK–BTÙšÚT$A„‰JÔz>e6³˜¯¨˜ÿš{îÍL$)‹v]Ý=ÝŠp˜$$‰›™÷y Ôpþd[ۉĮ¹á½°1¬ï€ÐZTßqj>®ëóurG£Ö¸JŠ<×,’ª…UK R<9 S#tL¡Ñ@j—@Á ° g+Ô ”PeË(jT:Á0é ÇLd}tG‘VÆ[&è4ÏÂÔF_õogYhZ– 3¤ž¢b€ä‚,áyS¸ÍFŒÿÇíM kÁ„Ôß.*—Sé³8ºCš`‘§^l:¶)Zûýö6ž@SIo¸NG€)#Σ«.ôN•GI,ªÓíö¶îÄf3 %­6€!Œ¤œ96©6‘‘L£ÎÖÖ÷mú·ýò«<˜ˆ)d¸>sSÔ4’„ùÃ5Õéñ9 ž°H¾Ž±.}Am&·)óÉœR.75nš²õ)*Q#%0EužÆm9°b OUAëÎU\M~ý/†’,¨)ýìÆ“8Ækm„yR§Ñ/ìÊí¼z ™p,05 „Ì»¯ÕÒ×ÄiÒ ̾ø¨œX³¯ùßà–‡ÜŠ;Pì]š©‚F¢ì$ƒ€2P%çýôî¬ÎבÍ$’¿ÍÈ­{:7 >æ Ï©óœ¬z·JŸ¢Þ9ó*z%£•qZÄQÅ£-ø¡m€v‘ÏURÍÛ¨œ,ÚžÖãk;üe¢dè”c^šù¼sžƒ ‹¡Ý¡^ž ­,‚ÅÎmÛ/ñº!Y“þ´|òÊhŸŒYp‰”O™»‘84½Cáýhäo\ŽF´2$(Ôçë’y Aeº Èˉò7Ì·M^¥¹VK¿­B"!AžÓ2„®)À’¥ÕZ9ý+HmÂ[PÙ\387ç­+6rð,Ïbህ‰¢þ=Žþša8¶ýÝ`O„–”®L=÷‹˜†-L*b[c/û8)—äJ|Üû_.î.,œˆ’à: äØK¹Ý||ïëï¿ÎÑ`ËßÞY†À_ZÕæÈÅ¢Oq¡€Ï”W¸ô Úç×\XŸ’Ûäo™yøe*?Zþ,¥Ÿ†y£ÕtŽv¨˜Úq5\¥ubCKúö«‚ÛoórìSN1Î󡞬5}0Z¼*}^¦úì"<ÎÁ¯°ÎÀ†Å| w¶„U—‹‚Žø¯®ôŸeqq¼×ò“ünˆôªÆ·Ó¤Üêv?‹G·å¿6IK04l91yçNq~ã(:éùúR~„ÞéAgï%îmwôÔ-KÈ 4èõÍCF_ÈHKë—È u¶Ÿmå  Ãh7¥ut7ØeVÐWK&Éê²t²‰ß#1g‹[e¤‡pÿ{Δ½¥Æ,ø‹sY©/K›ËÜ™ŽgX1õ™…Ìà×y] Œ]ùÒåë¬Ãð­*Á°wZÇŸÊa=@܃j/Íó Ñô©ƒb—v<©ü‹H¶Ú¾>¤| [gñ}[ÎÕ.㈙5‘zyœ¡Ø~¹\J/ªË‚l²ç®$µZ¨¾N²Y\䙣^ru›Ö{²ÔS“bÈïå5Ý|Åÿm†cTÇ»z4ö~v—ÔÏ:ùþÍÍ;R¥L½$cî)wÎ)<Ö„@ë9{*]~ñˆ³ˆ×ølƒÀW×ýJ* x]Y*¤¸¦ðÎñ©SçTe”%¤>ðTíˆ d]~VR7@tîeuÚ§ëò¡«”þƇ£c^Œ.®NÞt–ôq’5åT=„Ó¡õ›² ä½k ;2/¬ ‰ó!'`ˆÀ:âéƒ:pÏ}³OŠ`uP’IäÖ—½?ÜÁ(âÞõ )•)ú1i7¼¡­TÍ©»áÄ£Ö¨?Œ$E–(TPµHTâiÃR˜†7¦9â(ÈÑ ó³8—§Ü hmŒ\ª¦%Â7ÀéoÏÞŸüé-þ¥‹ÇL#nŽ‹€RñÚ¡[¢ñï³hüš‡/V Ö° bT%mLû#9ÐýÖ¢+ÝölX>-Ä—S{b»g.×ã#ÇVI{2Cnyï\)ÂÍùÌžÁÉ ûu#P.ñBÕ5öépiÒ1i¬§ˆ1º(ÈÓP|Ñ;>ç< EÝ[…ýøÔèþ1ËC{Z'Ô•çñýöã{sM7pð:[[»[;[»ÈÊ^-mJ7ˆÇhˆÅ|Àv¤îôÞcí›H¸]ó~ßÅO›$¤ ø½“wg‡¤ëÄEw®h%Ƀ¸Ÿ®ë̺Ÿ€Ñ3*¶™iäqv‘ÑQXDnýI4ïçˆ|pJXÔ$#~6³X‘è¡ñpîß¾;l›ëž×UÀò½z®Lûi ’ŠkÓÊYýL?=Ïƒá †ŒÿÌü£ø‹ÿzƒŠœ§Nð2Øa¿ñ’Ñzà:Ø.„{¤&½^bLƱðýNÁCfÀ)ô€h–h1MuâSV¦Ð0Ëשׂ4E2¬.ÓíH“c “ÐT¶H8áR"‰’@—òØ…cÍLâl ³Ÿ {óR”Ö ÍC!mTÑè>.Ù~4ÖÒέ*÷RUL꩟çzKK‡ÜÒÝÌ…-RŸÑÇØuÈù/Hæ"3*j1(agç2Ào¯T5ÆGÎÞé'ÍìÒ-Úd¢¿Aru:ÉGÖñn#È­®˜š¦ä-û )JMg±…ñPK©€PJr1‘Þ䜙>8…•‡½â:“úê-S“s,-îñ+é…tU ¹¦®¦yk"s ‹x¾Ež:H¢O@ÜΡ­Dô±ßWḎºòѸŽÆ=¹Bî> }vë.t ʧõ·q˜Ä|û¾þÖåå%T ¼š;È­¢?9Äé”âêgU„×ÁÜ“'’ö4Ò_—PM1íَǪPÔ9ðlÏägw6ŠŠ ¨+„›¿Pðƒ45ñPŸ?Þ!>NÖ‹(š”LÜŸ]ZB3³*Xƒø"&,¡UÄ? ÕƒÂÙ8ÐÍê0‰Â:¨ir齜ü¾Îh죢ˆâ‚NÍÒbØ-²$Pn]%ÁÔ`¿RWükÔkÆðœ¢PS¾uÃ2¨Ó¬é͵J¡ñœ`åÅïn¤"½óšL]ÿ<¢*Ã)ÓqW…iÓ‡`N#ZCP'”ô³û9`è7qZCå¤m<š¡Ö–$¦¢¡Õ¨àƒÿî_ÿ´Óéü{>LèA& }‰&ÝiµöÁ4±'#[-…dUüÙ ç£ÌÀ©¯·[ØT³g<×Þ3ž÷Œç=ãyÏxÞ3ž÷ ½g˜4Ÿ'쌳-¦ËkÅÆì}i³}¸Ç§1-í˜í- Û•üýPÃ*›@*®]Ìšv[{ÉwÊ”úTd9qbScÆMJ[©•òf}µ,è ·%H ©ì>™³BšôT´çI{kÃÓ®7Ï,DŒ™mÛϳíy¶=϶?h¶ä'ö¶ÿgÚñ·Œ/-@ÿ\C¢•÷f4^})@×.™Nk/¦–ÇÀýæ2ÙWð§ £†7K¿˜t÷Òµ7L¿«Ü[ô§~Ný?ޤâìÈB¯8ñK¯K W‰ßWBƒ§tØu©ÑDí*Ï8š•$‘EwÕ›ÁùfÍjé » ùÚ¦ÀïȹzàäàbgkQÞù!ØÛZÒþãàgÕà°8Õ·¤-ïDðOä®Ùî±¾xÖ»4÷2±Rg㤃]Gpû’aö%2ÂcÚoÓ(¦÷,t„L5Ïz0˜¬3RqŽê ²à¿ùTl-tèàQƒywQrã çÒ`_DR¡Zaåd¹,Ș·£‡xŠßtý´ãÉŠÆböúìüļ»UNàQ&Ý×q 4þÌu†gŠš°½o/eb- Š5ß Â’Qµ1G9UT8ú±ûšÖ<ÓZ 7F¨c‚‹«8ò"xè#ÁY-)j6¯ÐãSB’pä ðz} ‹Bã>v l‹‘FµÀëÉëʃh$_Ÿjž¥@–(Щ¹¨ëàêŒ>µóÀÆ‘<£í[C¢-®)økþ²Ù}@%;òs¦ÔÑJ@Ýš'Lù#5µ`T¼¡p] åx O±º2v0¾2„’t0£¿& ÍÜ{cÅ8üàÂãS’ðÒñHü\Bt)ƒ|n" ñÝWR‡=à)]ŠÀ[5ÆÅJ­òEÜ ‰dq9 S¡îx¤J$"uWóÀµ„ÍÊ<Ÿ‡)ZUé9qM¤ßp× ˆ7%~jp„›\ävOa;²B¢N#:ñ&§…zFø˜\0fÿ8 ç4&s)ßV9£Îþ÷?ÉŠB¹Pøëÿ(ÿ¤ºú€)Vþ>Ý2¢Ÿß>±èa>ú{¤2Œó² VT¨}©Â1TÆôª ‘'¢©õ0%ª¿ñª§°‹ô(€a$µez±ß}°¿ÿ©Ä§ü=|°œ°C’wz5³Çî—ø/6rL{ бTØþ6sZ"RÎðuñD^üw*J§C2á/Ka/št‡s±GJ«Å“zŒôDÍ@€å³r2`>¾.>þ9-ã|^/‰ÀÀ“”ü¥9ëw¿tZÓ#…(Jƶ3ëîè5èR®pÄnÐr]ÌÅ®ªß¤eƒgòè2ã-P€¶,=5ÑÈ"€ç[­ø“?¤‹Êź'7TOîL’‚mÍA‘¿îõ^\¿nùGøï ÊÓ–y¤A4.¯.λ›&‘—6è|s–䫙Р#I,› ]äÅ*/×›s¼¦Ç¼åŠ1ÄMsB´cM‰ÏÁ–1¾GÏíisME‘ò¹‹´(<¶ð‡´«¼]#ŸÀüÐMzÜ‹¥ÑEÅ :Ï©+Ö²s²-Ðo{´–A"¿É£ßKÍâÛH Ãܯ~xµ·Õùæë”É?)ŸOTÉ˨þ¦*y¹äw?l’û@Œmï-/œ7–àì<‡xa—>ÌsPeµ™Ogç—~Ÿj¢4Ùí@¸À«BAƳ¢ÁXF"»¹!>ó”Ý»èµ/¥âå²÷¢Ójl˜Ò màïIVH×=÷¦‚Xš ãQ­yاô_DUø]ðw½_å¤6_ 4u¶ˆu‘g m˧Ð2+Ά£Óë+š.£·Î®e·¶…Æãu¥ Dyõ²%0·’ÒJŽ‹Šž‰ê¢]°øI?€ÝM ¬f]â÷p˜*áZÈβÞq·TYPq¸  =²)0gäXàëFÓabÉcÍÐ_Yü»΄^  à%ué"@rz¼Çy=Â…ô£;,SZzÊ…ÅO*‘yPÐêH[N*®Íÿ{oºÜ6’­‹þ.<ŽwÜ(©7 k´loÅ j²-klQ²ÝuãD$IˆX$Ñ?ÎÜ9/p^`ß»ë[+3P]eUwWW«"Ê"ÁDŽ+3×ø­ÞÝ¢^Pü"†sâC{·É,Â=D½ÿ¸ÛÝC°R›…å_ômX}Na‚|%.uZZ»g{_¾h.t^mÃúV©+@#Ö #i‹•¬’ȯtÌ ©C ïÈX2™ÇodÕòSæ¤øÝd”ðÔ¬>>5;ÍpØy3‚Ûƒ¥jÖ8QD·Zà(YŽƒ5ñ¢ËI[À¿ÅSíùD¯9{¢<]Ò­g¢K/^8È•üàHÏñ¦QðýN³³×˜Æì´èÌVÂWza9›ûâÁÆÿ“œ‹®Ö-Þ§ïú®NkôО¼ÿ󷦲ñÊB´QËkþW»ºù“œX§œx÷ü÷š‚šÖ~Ë<Onžw.OjÛXû¹»´C×D0γ:xqU¢­y’…t8ë¼,ß|ËêÕ\<ûîØ=$~wûÖïùõ/µ"è$*ži6D¸s¯ú§‡½b8¢# –OYÎÝexž)V‚°°K‚j¯*~‡(ô<`pÂu¨¯ç@‰.u^[LiêX)¨è¦Ùtx¡3wž­x’sy#5ÒÝÆªÆÃ m3)êD##>ô{.™>!¿æY,z͆Bè«„S¾øHk€t…cZ(õwØ_çnó £ÏRÍ¢±ÄE¢x>‘MΔ «€Â@›šº¹-ËÛZ;­9º¿¢€ 4¬ºˆié Rst'É´k²ñúý ðµ­Ÿ·x)çÁó°L¢ÍÐî­œûå©ýº£ýþGéS`k†Ý\»—˜ã˜<—ÕÔm_¥Ñ~ËàVšaKYŽ(6-µãÁ÷/$ÕŸ•«×½-ðŸëàÿÚ±ÿ’øq ]ž Mʦ¡Ü‹7¬«7¸U°ý6°:-‚$8jæ·•$G#í1Û--ñlähÉqVêÒÆ-æØ6¬¯<®¿*³„Öù7ΡÛHðÓáÝ!¦XÚilì Ð¬Ø©+ÖºQ0ï4±dñmYÚíQŒ” JMðùÚÆø@< ':’ÔFºp® r4 UTD_‰+:…$ÆkõTæ•ø%ú7á°ˆ_g‹Vòh‚h#(!ÕmÙr ±´,áB_À¶ž·÷ œs†¥”yM*2 ™þ.ž…Y’3Foî¡K\æÆàʱ–‹@¸2XN°þBkˆ½Äé"’È"‡éê±VF ®H~IÃ,ïšÈG7WИ­ãª¿Ëõ¸K´^a%rua”‘ü àsFlŽ×š¼ƒ;9f/\@ii¬ÝlƒÒ—“qŠ0Ûœóoð¾ ½>¬À:7‡îÐh³¸âÍAM¾^Yqƒi„nsx[°U€þnè—Œ1aB¿t7WV–…¾Ã¨ðLá}’€Kâš3a¼öò**‘Cî ªïí8sn³ŠØ9}jüæˆKÑæ2âîJí6K²ªdÅ‘MÿBDú7*º^Ší‚’Ô‰Fhs©F:L±Ãö :ä­—±^¨Ÿ¹ö…üí­ÌKª"A%ønÉÃXUÄIrÉXÝEHB­èÿýGþ4¤]]r2òWîêÚ¦÷j}Þ³ªoüÁÏsƒpx–Z*;ž†æ"²Ué ‰q,™Ó˜ìYÒÑžlDCUXÒ¦S‡d…‹§ù’N¿MÝ[z "%±ÖX¤ŒºÏDt<Ù\YÀ¾$-$zRÊ5¿,m./³ ‘J&6µêNi+€>%C`6f ÿ8ê‘v5ÕåÙïkÆ€¯(ñ7¿¹f´%|ñ™òÿhÿ¯iNÝY'V  ×Ö¼õ9 áñùà5tûS:°Ú:*þȼ·¾„iA³IØÑÞ•øÄ :ÅUmm/BÌØ®Ê'*V3T*K@g!78—ÒýL2—rl’L96!£Õ¢8ßpJ¸/Þí­®n½q›x¢ÙšëHT4StÂÈÝ6Bÿ£AæŽÙÚàÐFãòVá_w)͘@¡’3ÞÊ˘qºí¦AGÓjž˜löŹ¡Î—M¤åõFÙø¥R•¢Bõ=O·¢;ÎbLÂ9HZH݆ö §Yù£4C½’Å öT6c!jf’D®ý¿aÇG°ìÇ J@£—,I$Y!¹„X)¾ÞéаsVËëZz)ìôõ?]lÐøõ4 EL-F;*Ž€1foÅT{T4 Ï›¢+çë†Æn[ul«z£š>xó >\(rZ‰¥åwhžJÑ•ëÓG[²i´;%)fé[qtck÷@XA>–hq 8?ßwÛ´V˜Ö`Aâ[¬FÒ)íæÌ²çŠ?ÈZj(DŸ@ÅQ·kæË)ÆÑTì_îÿ'ñ'Rï"'±s¿äkçŒñ ÁwÊŸz>-HþDÞ§ ÿßùØÀ^Põ±&^,§ur :/Q¸ÏRÐCõ,÷w—=ÎHóÝý¦-·á½^¹/.ìY†Ƈ JîÃ{Ø—â¬z6U: Þ¹Ñõ˜[-p:€3µ@`_¶Š"¾Ñ8q0Š8@ÿÔQB#ö ”4§¾öqÍé›8¢íIÍTê"`ˆ’rgî—TkÍxc@…IÔŸ¦€_Ó6í'+€»2»ÚúŽV䯿T«V©i¨QaB’ú©ôÕéáº/¸€·L܉q¥Ô«ÚÀ4¸á'-&éñ*–=A×ï”ø¶Äþ)´¸;4‘¦v zÓ*+%H ßM0EPDpŸ…9ùÍ<±¬Ápû{ýC×pÉZÕ'CiJ”RU1õ0Ì×Å;a‘‘"«Fîû(Ãp$Ÿz4tì?ÍŠØâ°6ÜÕÕ o}nÃ\ò¯²YëLqZ¤Þc |ßî©d:6[DêÅWSMÀâ¡”ø,7³U¥À¥†–ø.’à‡o»@MµîŸ6#s€·¾k£†Àò‹Â)”~ ãh]²Í:`#P¬j˼'ú8ó¦oƒö¸;ÖCÊöK³‘@ÏÚ–¾ØFu”Žžtgf…] }GBíÌ^é:]©;Š Î9=Ó „ ½tDTœßÓœ¬Â”¢`˜qucçÔWSi“@cr4c8rÆ‘‰k4;¬O)²̲$G˹|«A×êpìë!/&Ïq9f{4ž£;܄ٙòÆ_ä/UÁ§G¥„OPpñ4é@8Kçó¢ü3?Óù¿J£¯ºåÁ ¶{‰Éa«‘sè@Ô& =X»¿5{Lçòó<çh[!õ‘è°ä1Š=Ô{PEàO!c›œFô„\„éʵqêQR?ݹ8¼Ü;\”¹Û)¼£‡^]oTÙ»ž>ØÀ,¯¬yëoèï¼|ýédMLËu˜˜SÅð“rGŒ9k¹Ö`r-0Ð%í|ÊâŠfKüKóï­gé²{l,ܺ']/výÁËZÅøÝ}\#“:íÀG¼}\ÓÂZlžs’„ú舛fŽ´†&[ǰ”sôCm¼›a¸ŠRÃè/RÏìÄÚ?jTø*rwR¿4ž•ühFòÝ f¶XF½=ñ#m `Á­»«âì¦~0£éÞ£¾§æa>ñè*¾ÒÍCµ+x†éR¿ ©tcyTÕ8¢ÑeãÐ×^þ±OGû€¸ù>é4cãÎØOêgˆ4ôo2ý Sßå3RÑÄ'ú}ÄW¸áøÎĉÔÏcØèv° }oLOÞhug PKD” KÔö¡ íkæÙG:ÕüÃÏ**ˆÌz÷ð©ßÜÇ;~ û€ÎØEãûÕì¥<ûœáΟép_ºÔ?ƒäPQ+£ùÕÐ,·ŽùëGÉÔTtV4†M÷‹<¢â•"b{ù¿TPU“h@“Xé÷î@þ´ñå]Vª ä žÊÏF½&*J¨~wªçØýŒ”J©¡(óÃÄ=ç¨ê‚´ó^ÑîîÓÅ7ûãÆ3VÖ…ã,Jx¸{ýTéï1<9O#›Åøà—þ¨"Zq/±­ÆBîT4™D4Ki™Å¾~Dïº}tçhê‰Ï­ÿ¸’g³TMhœa¥¶K¼’mOdÕã™ïþäÓØS¨gé°HØ‹ž.Eµ CîQy6R=ÃL4Tî” ¤{ç—cý„(4öoèVžè°W¿sO‚Ý̤B©JSì ®¾=ºÚb™˜“*U¦"IÝþi4BpxFõ[ÕãÚmnßí'QÙxÀ·fX1¦ÁžÏiŠå ÁÑ”e0h|Ÿ"1ucVê_øtÈQÕ1 ~ý( FÊŸIŒlj*¥KÑæÚCÖxMot¶”~@—Ý8ö6Ò91ú´ncšŸópÑŒÇàZå ÝÑ)‘ýó7•Çr!f›š«RÓaz0åb…^šK?ôgÖùlB²Ÿ<üÚÍúXÖø:Ð{ël@fÞ“kìùQÂ!°zl¦7ÊõRp$7NÓ±¯Å«xTaz÷ÿ¦ò»í(ð‰nd…#üFÞûû!^´óñÙ§CÑÝ­à„,M—Œ´'t¨ë-Jh:í+/,#N‰±ý~þðŽc;6‘|z>³©¾æðoýÃÏ{O÷!q!5øEä³:9;à=ÍöY]Õ~ŽÉ@8€4jÓ4ë‹8ha.Å¬Í …ûK%²•”Ú¡ZО,ž³_óŸ9ì°ë×Âô¼Ëì'ãš³ÐYC’3Î0Ý:¬piÇçÑ ‚'ØÒ NnG,&5¼Xfgcî¥fˆQ¡rÁÄèy«6HõÙcÝsφp¶Ì¡ ¯JySì lõ±J.‹´(ܧ,Çð49@'‘ÙJɇž5YL8×bY)šï§¦[üšø©YcG¾yWÚÚ47äD÷Úï-m{íqMm”HòVÉ8l@Çà]ƒ€ûw‚qgÄO—@¦‚ŸNv¸Z¶Î¬¯ü_À9)YÎôµG¬äÚH«›t nq_5Û*¦P{Fâ™ (b  ]41PúÈ…óïßÔ­5楺µÃT0‘v¸ö|¨¸q¶EŸ•thç޼Ȭѽ¢nŒH9PâÜ.H»%'d¯dw!•·*¾áŠ¥Óq–ŽL/¸}é9]O·€Fñ˜Û(ýÑ8ÞãíP5—“'‘;ö Ë_DtÅøù£…Ü{c2F• €veÁ¶`ÖñÜ¿1ò–œ²G‰U©e+ 6zÀ°2ø[¯¬&tÙDOS†™wýx:ö5¦á†·±æ­óÎo½ñ¼yž7Ï?só|'a'«[)ǦHð6õ<{KÅËèmÚû¢^e=Hö,J‡ÍæÞÒ!²ªoZ¿ß{ß.8ŽˆK… û,r<ПÒÌ.1‰&ñ«àÿi^Ýí4*øÓ\ÁS?£E&‘س±Mò>ž+×G´`ÎâËvÉe¾wú7îd‡ÈÚœéÁÈ%_´ºîa‡¿2÷‰}“TŸøAž5@nŸÒ •þ÷ÿ† ™ÀÝÎUªz…|{ X É»ƒŒýš…¶é®Ó(W×¶æÏJ1éQì”~,,’¢èË’ÿa2‡+½+µ‰o«yk'(#:hà?ÂþŦ*]ÍÚ+ø5g$5Óù£UÇÑ•v`ùôÈ'†2µ!…Å4¯v«©ÉÌÖH$ÚU¼“ c®¢v%ÏÓG´²bg{@_{©º6}h<<ŸävBbi\ Œ[ùÊÝ|E“{ï"ú~ö¯šÁÞÁé™E¡6; ˬbÖšvœ5SŸÃ}ìgóðáˆyõîL!C©d‚½UþþÚî®b×U¸WSV‡úbpjåq/t ëCµä³_ í3ºRª‰J9}KB%ð$Ç"Äh@]¿æ1òî=GºKÎbuÅq*r¼±,Ÿ ¨,*šhu>?e»€ pM£c¯ýØ…ìá4SpÞB*2q$ÆUÉ€]‘ˆï´#^êf¢ß¥Êº£O‘ ë)é2 SO dŸv¤Q…$t®±£âÖ=r<9<9èîùS–<Ǥ†=¹# û¼íñ«µùÐs¹PœÞôJëóÌ‘F¯i™µ±-tpfgPYq†k³t‘œ =12þù¡=c›þË­gQHÖ°ó³óu×êäòHu\‡qQSéMDbµvžNõðèØ†©ðåÕå»îk7i¢×ßU9ì"œ¤ËÆÂúèAÀI¢FÖÑ–`Òž³ð½U€xñŽ&éí à}~#AÖû*M‰¹ˆ˜'Ü–¯ž|íMãªÌXæŠdé|ô1fxÌ÷qßÔÌ×h¸ô™G­u1ë7u¢‘o/ ØËCø»ÆÖ$t‘Ũ¼Ïý¦NÔrOaX%S6G¯ÒMøæ¾'ì9´|DT:ˆÅõ˜[oóÀ·¦O1Fpö€„­ày(ƒWÄh­š[÷oã\[.:+"¾e#BP+5ôµ'¡8ÂÅjX5 :*ÁIÙÔ ÄPÓ±aϤ¯*tê{V@U&Úo‘å÷`©¶ÿJ¤…-9‹d¶}Q3ɉLg*¦Éò´M-l”ùÌôb9"É9"-5¡¼d¾£#Ü%±òl8\„‹ñÞCÄÝj´í÷žþØSÊ+ ?óüÀ«tÚšwþ ª|NÔ™»=œÊ§^¨‘Ÿ6ñÆ 0öKå ®oùS«Ø÷Nu@Bò+"v¢ºjW_ÍãùDaÊì„>éí{ÿ!ûS¢ò,m`YoohÍÿ öDS^— ìkŽ&¢Åj ¼Fÿá Û#a… °¨Ì¦2^xç1èDãxK ßY-'5ˆ¸©/Zè±ÕD‡Sž‘QÃ@רRÔdä!ᥠ1vÌïÙ…î”™†¿Ñî™2si5°Ò: ´„º½¬_è®÷p~È<»ƒ9Õ{0O$¼7„4û>²¼ éâÐO³Þ ²zM"uãU¾. sç5 ”´GÒ QîöÀ|ô’bÒ+ÒÈb÷j‡KÏý¤â) ÜmŸŸ•7½ªðk˜ŒÚåáýÁééÁÅÎ%=ÜÌS8VCïù1Ðéb›bT<tŽM`ãƒß®|ŸQ!Ïrp(8ÛsfÍB<í VVW=UQYOúŸ‚ Ø£>I€|ÝdÔ¡þá^Ô6ÜÜc¥†ŒÃºMÌ]‘u@‡©GÓ’êT”óV{w;¢'½Á"Ù8ʺˆ=Su®Íþ¤¸á™Dìëë^Q«FEZX9R”æÇ=ª&Ä©¨1íÀíërŸzSÿºò²*®¼a¤¡™¯¼çÜ's·' ê Æ°—f&Z½¢áâ:Œ…’²Éb2¢‹†;>ûyRñj§·ò±‡ 0LY”ð³$rvKÇÂ¥?Ã}áng%ºϬäXaݦHé‘÷²A… ó¾ú¦TÌ'ñŸ¸ˆ!£¯ @†êW.X%n^ù9篽‘Ê’YTCT ÉG±ŠnÕ3'Ÿz±BzÒ‘]ê ?¤.ìÓ´G´ry"EjN½©JÛö|ÖÕiWûjàk— (¦Ó3‰¨ô­þØ‹rŸx¿ÆÌ‹òmÌq•änj6!ZØô†ë^º¹²¶â}]#’@Äp#½l¿JGÝ3ºzOén¥ô“bÜ‹GQ€‰žäÍü¬‡žMÑz?GkŶàÜlùãO/šD– Ť{‘d M.ŸV{ÁÝ›×ë¯7_wÔ¯t´êeAà{u&Þïf¬p V¼-÷$!úåDðuáL܃›†÷¸~7—"ì4/e.•Ý4¥i ʈ$lnx„s :Æ9Z{› Ëà¾$Q÷/¥IÄv>Ô˜pvÃXk¤òœ3¨”&M´ÂçW’ÜLGúƒ£âÀÙ™é¢ÕÂ? …eK'4ÙÚ]Ð#›Â)ÂJïÿ8t¨$ÄëÅ|òø×Ið[ ¯©ô÷ö1ôÄ“µnôzNjmâŽí5<_Oöió–•aO¸’û19Mçfê±"; MDž·@‡cƒÒã$aÉ€PÂãGò͆‡³¹_›˜õ²€ónÓŸûQ‘TE±8Iéó€N;EIq‹óŽSrïœ+?½‹²`…eÕWóAYI²9|ì9Û*8eº hàapýÕf¡"î(ÅX驨=g+Ò’ úávÛÎቑ]Ÿ–f‚ó¥"R#µìžý¸›#‡6ßx@·(]IA… 2O ¾°e3Í}ßtÅÿ.Ó¥Õÿ¾îÐÏ«ÛN6ý’J1êc­kPAw‰zp2W6´Üb´[ÃÔ8»«ÁÙ1}Èì¾@¹"ô¬q&0ðí¢ÚlŸ¨ÚH& Köc¡Ý 8ì«DUP.‹›ê¶{Oÿ­9…3ãjgÇœšokeùŸ#že3okÒ„w]8£vòb€OàÿÊ1@GŸDŠ'ªðu薷ꮽ™›B¹1Ö»ûÖW£Àó±r~(_È!nÌè¼%Å Àï-É>¹b§]±÷÷Rö?+¡u:mn‡›_µRGJ1Û`V2N—fM::«ûLÈV>µ BÀ¢9}ªœN!€k3åaxKý÷‡ËÖAsy¹öŠƒ/šD£:ºWÈž”Jx?ªÁ€šMø ˜U£¤1°Hˆ»õg¤‡ûEÉA¹šÆ~å_7 sQ$Âé¤[ãý!ô+ ç«oz>`åÖUi6 !AóG ºèt8Ð+tôƒ.˜CÚ¦Y,x(Tß©c–ÀI¼XËñcá\W…0•€j‡??D8ìÇ¡ûÇÔk¼"t‚ŽÏ¯Jk³-JÔN…§l4³Åæ5ÞÏ{ìy=ï±ßgiô‘f|;u‚i“ôÛm$Üå¡·2„>o¨ç õo·¡H~òÈgkÞÚº÷ŠvÓÚ|¦­÷¬,Úì¤}t¬!ç?£—îH(&$^Ù}¤+–¸Ôp+5$ߪÁfä(§€È—|x1Gr¸9­Uß¿’¸ל”a9sXøx%mÛøˆ‹ˆDÏ0XZÆ ³a÷›ê\êêñý®ÔãÞ¿\îq;¬z{|:Q»é·“òͼó„³×Óš·Å™ñÖ66¼¹h ö?b§§Œ,œ7>ÑÎE”³™O™ÝsFÚ³ÊhA-¬#`®LÕb ƒ.m•ËÚý&N¾EFª¤m,ðë¯ðg^”ßáa‡hK¦@Îðúοc´OðlˆŸû*‡™û8JÕCôYV@@hž³-G¹ÓàoA#cŒ‡´€l¸*¡™ùiv`“‹,˜`×Ê­sÕ¿XîXœv‡Ù¼Ý Ÿ‘Ê­ä³3M9ޤÅK(Ä×{¥¬4°¾cÛõ|;âΜ1܃½ÑXÐ6§Ž "Ï´”ü½KŒþòüü|¾wâú°$而fÊxèË2‚2„Ò˨åqÅà»pP(`|I¿½4 ‘/õJ£ßˆòÐßœWƒ¼Ä. ‚Vt?¡Ø§ ê¬TùŸð¯¡þ/òŸQ¬5áiß­m[~¤¼¤ ž¤Å‚<ƒ-äç „ ruË}ý€¬eJ¹WÓ|ÉRP"ÔùüªhÒ©?ׯ‹ /˜Ýg[UÈëÐÍaJuâÔ¦ÍüG•cÐ „4ã'¤JÜÃCÒ Ig¡cn„d—y”pr³_{7HÞáO³g!M€o«p·V¼ÕÍùÉK9á{.lj±£¼D@Áž¸áîY7“ëÙJXÙ~M¶ƒ"¨–ùÀmFœ6/ øF7˜†àCç¡GòJ$¼iQEð(ðã|ü0¶‘³„#A3;¹×œDŒL+b¯ µÈ ì$úêÍDz'‰)ü/áçE/$Ÿ¨¸i¯gÌ‘û8²¨ùí¡‹¢qâÉå¦G!§»Ab¨ÐD!ÁÑæ¦ª 3-DþÖðïÎR»zÙî|ì‘"=E†–xB+“*8êE5C ©&Yþu–rjŸõ²Â£ãÔ+«.|~ç…Œ&háÁºõzý>02¾õ5Ê8»EsyŽ{»<×iïÌQ·ß¼5Þº/ _—ú_ð©$’‹ ¯ 7Á1”$î/¹Nztãx4/Úò»Z]½ç»CâgakÇ¡¾ºr_á߇Ö·zõ0k z9¡FÌ &• üdŒø}-lí/Ê⌃ŽJІ ¥ßž„ªGÿ?ÍiózªFb3]õÞx+y°sÚ¼çæÇóƒ÷t‡*#®kÊWŒÎñn»šhI|×KöÙ¯SÉrçµÍP§&\'üPŽ‚I_’kHã;Ÿ.ÇÖ}àðåY[nNA¬Æœ»'0ÏìO$Ʀº2ÎF§È€örWˆl• `ßµ¯x¡Ëy’­8°ls†7ƒÚd˜M[– û¡-‡Ù.ÖW’A1òE\ÌÀà¦ù)R#@to¾öâY©Ì‹£Ê+”ñƉpŒ ì9ï]Ë÷yŸ¶~ Nµp·å»§¿÷ä³xÙ]Ó¯ø‹)%üÔí/O亻$E\«ï¦:âr£2ykížküÀÓYb$†'bÖ‹xhOÊóœÄF‘iNZ¹yNLí®§ zÌK9«@>8Ѻ‰šp–äõe]V@Ä©¬)`ꨧRø~í£À]bòÜhqh0)‚Ü%Ʀ¶/v÷—µܸˆØ!Øã PÝtrâáÉmCLŒö,é ª(Ä åWÿ™ÃMÓ 1-ú‘„ ÓY ‡,¤Î sÒa†EÖ]ð´÷ zÍ2/DJW¤E=@ÙŒÍ̹ eø%-Œ8:¥nU÷ˆ¡³ç—¸“z?`×7~u̯Aí7ds¥›ÕæŸs$49.r±K’‹¨pü€”„÷õq(gYªX[½‘ö„$êŽàiaN…)¼Q#¼áìP“IV š«c×¼vlz”-/”:vYQ1̼·ü·ÍÞõéN‚sårcŸ¨¶é·Kí*€œÐf9¢c#ŒÝíÁ¤]À$HyŸW‚l…zü¾µ ~Ô£ EÇO0Qì¨æê²îºïsÈͿ̤óœq’\s˜ ‰«¯¼99IB%xS„_¢§†£ütr|ÒŠó›Ï­˜TD%SΤc+‘lÍp>«d´j>dÙpÚ®K@ÿ@‹Ú=‰y…ÃË—_VW­Ê›å¶Lt6âdâXLÿÅ…ÃÂøÌ+ª[IsÖ£ÿ9Ú—ËIHё瞓è"EøQφ ²6}Rd0Ô¦ ÞxëÞÚÊÊÖê*Pr×7æSÏ…ŸkþJ2_f¢®ýbz©S¢ÛQçú5Õ|í¸èaZ¤&‰ãÔò3¢Æ â¾ßºWýŸwú{‡‡÷°öúõæ›ÿgµ»ºú?_×»«¯èûåÞ§ÓÍ­ÕµŽóéP^8:;|ýó…þ{Õq?ö¿¬¬­¬ÚO¯Í'zË|Zï¸ïw×ÖQÏûÝ#z¹¿·ù ï\}Øë¸{§ýÕÕWëÝÓ`™6éñ^mic¹Ùy†",ò[t²‹^v½–n»ã¯uüàj¯ûñ\ÿµÝDUk+kkôUÖqi ëÿ³ãôÇѰü™Šu\ûQ¿÷.ôP>ž}ØÙmÔB?8öËÞ©™†%¼´wºŒïGøgõõÊúŠÔuùÙ̇¯T+â)Ǧi`\VD"z\ö_­­4–©1áW§‡{gûš0€{%rÙshL=µØ‘Fý§1ÂùŽA.âQt@ƒ×‰ÎÎøoØ_\‚”ZtyÝŽ'äTUq}ŽÚ. K6TèËPpÀ¿ä h‚ a Â{¸}¨o­ŠWñ5Õ‚¥ë‚ç†¼š†ø¥þ¦ý¸ê†“8puæNÉ‚ÍSÔ„Žá¬ÿ‘>Ncò£(?îH$÷¡)æýeÞ­vêì܇ÒCd?‚í˜iÏ©+JßÐÜœÂÒ â-¿˜«b²Ì¨ÓH·ãÙÖnæ©ßpSÍž™L›Ç=’ Cw“ ¥çÌYµR뀪 [Œþ-8}Qޝ=ü ?5Ø‹ßjW?z ÀþĬ[FaîQ\{Þ~ÌVðÄn_Iï:Kùþ4Í\–:„HeÍ[qWïA—ì¸ÞéÁ%%e×óƒ^¢¡…;¡J°¯‘E]$ÎÖ}-V‹?”•(RÈëÖ:¯ßõUGð† _hNÜ¡fÕSb¾A žsˆ­?@7ÐNT4²BrMú-MPd„&mYœÍâ5Š¢kª“†šz?›&•z +–YF é@Ó P¥õ¬ÚÀ·£¨ °.B³9öNvĶ£<íÓô¬ÄJ¼Ÿ Ì€£›Å~ž!¾lZ÷ÊìGªLˆ·B(#}Ê÷V¹§–vÇÖäu ò™¼žÉë{É‹•ÞŸ[û:¡§ §¹1ñd ¦gâúû×âÙÿQ_wHÂÈ bÃ3þ«‘á“W?#á$~Œuz^û?òÚÿyŽ iV”Hn÷KüLˆÏ„øO$D¢À¨|> Ÿ‰ðŸJ„3ç3>á?‡Õ Aq |3¯òeºÚ×E¬Õþca¸‘ç„}G³XÐ ¡1®%P[ÑÒÉþî²NIÜAV޵W€C•Úo­Õ‡ &ìäª*˜¶L\ØCp*~Ö=n;€î-؉M̾cœëE‹¥mÊ8Hú_ÍpðBôÓ°r—Æe9}ûòåíí­‡I׳ƒÅ[nçýÕaé>Óú`ib¡3û1ìúUÁ…–¿Þ£$Á1¸ÌŠq6t;þÞ+ôkH÷iä&ÑWvL#Íc¥œóžüw:år–Õ9©sŽsÄ÷M 6µËœáýJçá þ“dŒ¿^ÿˆƒàþ¼ÿIH/zÚ#$wz…ß ‚Ø;x€VLþ•]4+v»Ð冦œø§Óâx§ª´§sÀâïÏípÇnEQa§zœ+ÆQèXÚ[óÖ:®F^t9ŒhST¨“ ¸Ü= á1šþYŸã8‘¾…) TÛ̾·_NjM\éÞ0y208N«X•øù~ÿÌÄä ãqë7$IàÄã„ éLHØÌÀ?XgÁwDÝùTE ¸Î:­a¥;WÃX ê0RưàœÚ=Å“ÅrˆÐ*Ü;<žþFã–#óV ±à÷ý¿wú瘈Ž{¡’¬41ן©š¾Î{þ|’þ}OÒï^˜? ÉÊíñØéù±Ð^ìàÚ©h{ºž)ôïO¡ßX‚?-–7îº÷fÓ]Ýzã­ÍEèq(è†Àö^~j±ÞK'´=‡ËÕðíX–f9Ìí­_c„:l <Èî¼KÊ€ n´ó'X0‘ôÅèJj+ð9BÎd³¹êï:t ~B=Ï[F´xrãS7îüÛòiä8ñ$"p*¤äA´`‡.óýÕ!°­ `Õd ºæ²¾ä~rÞÛˆq’²\åºGi–ÓúMrÿŽHáÉQˆ#PIå2°»}¯¬l¬­­¿ò6×æÝ¼Îë´BœWþœ'œµI«i†$ô†·9</è,U]]âX)²ÞŸ%|©ÿ)\¸~ê¼>ã‰ÀICò¤ ¸¾Â¡:*5AkѰÃ÷‘ɤ+Å䬅îö[7ìÐiÛþCùÿ˜Mm$TC¿ŠùÐ9†$Ñ4»Ô³B¼m_ÚWu¤!è‹sö/w..>9»êœ\-XgAà?ÏT»ÛSüù}Öyꇜlq•^Ï¡ôù\r¿ b31ÌGˆS53Ÿ˜š¬þ]â­ð¶Ý1ÇÊRQ9rML¦ ’9¢ÐuÝúEsqþ#ŽÍ”mrØÜ²Ï±=ŠYOXN>.­ñg³©5üÙ‚É>È£ òä§9Rôu¬¿õF¡«ÏÐK:_K÷¬¨®#w»Ä—^=d =ч—¦¢¼Uþ¤à©7xê_âw›(ˆsˆ3<#‚µîòº2£[±*uy]¢ˆ#®•#'5ÎXh0ƾq,eãØ`ÇÙí0êÈ€“yþ0©ëa4¹š˜G¹ê÷&Wãµï޾øJŒ…ÿ.‚Súçà\uW7îƒ×H9ד Øø¢éj—`ù.Q9ɉ“ðò´qÎÇ™c„#òveëÈö4²¤A!1µ ¤ uKiÕ;M•÷~¬#á¨{¢ð‰ud{ÀŒÎtä©ikà¯/WÇ’x±6ÕX-0g"Ò:‚ŽÒfÒ, •pP]Ÿ³·69€D8±ç‡³Ó(Ú¯=fSe&ÁlòʶŽï%òÛ“6r{é»"4„xtÁ÷éè×İ6Ï­ÛßÍ hѪì!•©ÝÖöýã,›- PPŽÙf- ææsGØhYA,w…Í|›÷róí÷œ˜Ö|tƒ\6KÝËB%rè3d4›ê0ǸuJp`Z‹d{3þO¤#]G7-¦¹v¿ßðB–®ðy½š*‹ÀŸ*NüÄ’’vÆ7šµþùEM)V6Šl„»çJ³´ {ë<8‚C³cõB‚pQ?±Øå(EG wÓ`œg©‡:ŽÄâx`‹•¬Ö;|yÖ‘U¸ADv”™*RHTœZ½¾" Aù×–q–Ú–á“üÊ0W€^a|  „Ö \z©ý1–´±˜kÏ‹ù/¾˜Ú‚ÿÛ—´¥aÃçEþc.2î¨UèÙÖ6:~yV–Ì:/»}TœfrNlŠÞû^î÷—5¤Œ»FÀmŒuNÏÕ$$äW×õwEs¶&l§‰‡UC¹Ô–ÃM[ýþ±{³ÆKt³Þq.û÷üh¯ïþǦù°e>¬®ÚOk·ÿè³÷‹·¹ò†^v02r¼¯Î¯±®Ì„%ÚB%í?nÙõÕÛXüõçÅÿ·Y|9ן¶ó?ãŸÉá_Œ ÀcäÀȆM_OÆ*gE [È× ß—÷PÌ¡˜¡ùöªL¿%ËHbÛ [´n©ÑŠr´ñÏ–ûUÊAw+Þk@qm­>¨ù±x·ð mÌ©§i»²ŠwNS`벚Æe~¬MMÄt…U $ŸesW5u–Íi̯ÃjOè¸mÏhElbç$KXÿ¢‡á˜Lˆ<xÐíð2è;¡D•%¶B‘¤ Vp`†¯Nˆ((¬}¿gÆpÑV>‰‡.?£9a4\žX< .ûø>0ðZß«ßþÃÐV[Éð¡µT µÀ.È·üÔLNÑ{ ]+ÿ=ÈÔý^:u-ׯ#TÇjÙ èÓýMë]/Pˆ!áÁœ$É”Ä ¼Ã l:ÇÀ…{†XætÇͪ’×R“œN­úýÚ^ÁÂvž¨íÕ½´Ãi-þÚÞÆ ·Ïœ+ùð±Ó¨éï¦Ül´ñ`¬îª8¯ÒT嫯‘vôµ·ê­nYzíQ÷çœýšQy^pšÌˆlÙÕ’è-W›íãÐäbÕÔ±xvTá~9ß;;y€gc´¿ÂÍ#ΈÒ<™œ?î/³€ÁÏTMàʓɇžRž*Ç_y¬ì‡Ê ¬Øvç½A•Ž¢§y„ÃÌa[øú+okNS¾w|(×yÛâ¬ý…áÊD?è9Ù“üœ3m˜ö+üžP‹NÊnïÕ™¥ŽÎ¥¨¹º|hËùîm aq4§pc:6]hŸ!ÂAý€Ó¾Íµã¹Ë*:GWôÌå½t̵èëüˆ–-7<«e‹@4vàu L†™Åo€/=b àü´U3æ7Þ*$ñ7óÀß’xFrÀ²W N–ÆtšsÞ6ò9n•r|B›À&kÔÐÌ»CUsr“†sŸà¸Š´JÊøÒëÄÓ2y&Eò)q­Ý4°0Êé< Bü“MgÚB"‘—4Û_öߵ“Ïú/ט¡‚ç¾vÂX$ðìÄ`OŽRÚžîÛüÍão=`å{ÃÜn³(t÷<:zTý°âOôTÀ§­0¾·ÖáA·9‡Vrn\3èÀ >Öl¹ùļs’C˜–ìÚivÒ¾Ðg½Ü—“cióB²¡±,m˜Š(ºøYU¶ôT—n•™8@Nÿ “Ra‡ów9׊dË4Â9´i4Ü£ä)â&ü|¤œ4KmjëU5¯´g±ÎÒ§yL–=JëÞƒ‰øëÕ¿UªünÓâìlw¯[¥Ñ> É, ö¯òÕÕµ-"öõ9"ç2‡-éhÏæV±§æÉ¬ÿ×c6G±I>z¥[0+Åí»V…Á#“.8>m¬Mˆ_¤í5­SÄš$“š—j„ˆÓîË'ŠÎ0Þƒ™@\`7N;á¥t¿…WgÚZc2³ö+éÇâFg?ºŸé–N£Š9$´£‡½dVü?íhB â½Ú‚ƒø½,×y¥93Œ·#å ¡±`´qQò‹Å_ jIkªCSÚäõ|ÓU‡žžA,®Äò|)WÙ<Ž‚æñÓ‚Î ÖîøúΣ²½/ñÈÂeG{›ÍÜ5Pj6Ì¿ Ž´÷šVéŸE¬ßÜ-h˜‹)]„7ÏUQÒÅ«=  â`¥´ƒ Ñ,FHß[(¨NDÚt“£]_ ,rlS%zPz¸^JÛ]ÉýÀG†SEÈ‘MqXFiTçæ 9‡ êH…‡åÙ0 A¼bÈ{•g˜"fDµI„ƒYSâ=[@\,d2 è ÝÕ7t›E,l«†mPr#å ·º±âÔÔÒjZ]鬬¬¸s@I½Ö<¢}s“~æ>à‘ö܄®†!á]‹n ˜ÎÓUzaüÁ 4æ!bqªäćÆ=Ñ‹ÌPMqXp»–úÄÁ´éá Á‘­6Ü‚Ãg s|Ùb '.PL®Í¹6–`F,3õÿó‰lÓ$Çó¡…lAâ%­ZŒ]7“5b7¶tñIËè xsü çzœÖËéÖŸiç¬4«°~¶Ù'3÷€Ž±¿Ò~?ˆãîÒiV:'ëöþzup¼<e)ò6e!Õn!Ò²µ~ÅùfεδZ+±s‡3ØÝñÍÿ½Î½®>;þômÄ…¾éggomyKªþãNœ|3‰l\w×ï‡rÃÞ*EŒ6†î¡Fœ½þÑ8× ð¶C–$R–Ï;cœÇ3a†­½áûq¬óû:Þ›ÍÚ`y9Zšf×-ÄYnŒN‹„ã*v¥kÿ!®žƒvë~?1à[é¼É­¸_ ð±™PÃv,q·Á gý—ÓÃ/‚–@ëº,É¥Y(uuwÄ,)2²ŠÓ «`ÂÃ7ŽÃT:t¹Ñp¦w­Ǥ˜©—ÐTRû 7ˆÎ]öBd®v÷9rªåª¬òôkˆ®Öž%=£%7j¨‘W‡ž â SDí“lJ‹øR»V/…¤ðºó nÆå`öÖåø°F»@¸ªjN˜•½ï;ÚooÎìÅ“!g52]›‰°˜¡£*ðMòžn÷’x÷méFO÷æ)"ˆTѽ½½}tk75U.IÈÀØöÞê1]€¦ÜÖ´ëÄbFù€õÿO0Ê ìˆÕáÌ)\[WçtoßÝ¥2Ø”&ç8wÎ ÂÞ±÷*“ÍT.Œ“& ¾FضYMùg*Àµ§ô½În%ÔºT¦y<Öér숭 ²©Üz _Gvÿl*Cz:c($Û€´G^ bÖ^¾3Ðã‰}ÅåEwµU¾ìí/8¨üXÝÅpb¡ÁCùýк±=¾ŒÝ?é2ârçØ ׳ó˜XZT§½¨îbQ›KùP~ïW®O–òq¯MÚýt –u3¥Ž!6]¬æIõôcè{ÀÀÒöh˜}穆²»+˜>œ¢Þ ×ësý¶“3›{©KÏm³æ¶bUc ôž•ê@åÓ-Ao–ÓÅƆ§9‰C$œþ–˜÷TU$¨äš=ꉣw¨žÈXê9)ˆ¤.¯Šÿó|RáCí ®wßÁMWµ´úž˜Åoz*Ìç¶y€, êUjrç4õp AͲ´’‚$|›š)³!ˆ ¶oì®-ôÄÿÚIÔÚÎå—ȃ gê³?¤§ŠßkªeÛ<2ß‹7®á{öŽyõÉc6 ¼œØKxumuÞ’ò× <,ã·ÊgÑÄöùµwBôØví?Ѫõýdà“ðâì=D Z“'³Ñ)E³k…mŒ{_X£$äröhc¿<Ë H~§Ï·î_h8)‹3e>³ÖM[Y‹3t«4^:Õ+í6Òbët0¬0jÑÝ #.͇L#×''q™Ëž1Î2¸:ppRõP-ÓíX•’e‡/rÜãPœw¡±æfϳY²¶ßE ¢ )À@Cþ3ÕèÑCuªn×׃~i¥=· V×aÈ3ö÷™MµÛ j´ÓÒæŠýëvü8áéª=nI(…s³VÊ`fô‰Éú:A(Z°µûj@B$I·îÿ!áx»0Ï<¥ŸÍ#‹„îž_&4Û*ìü‘~õª‰üþ)û¹Û7Ùu &½2¦º¦ñÿÝRsùi÷©;Æ‹eX?ê󑓘 îhBŸzã¬l÷à$Ê'8¢"ÏÏz1-ÂÄ‹ŒØêç4[GU^~u·}o‚½10:ª´n« ÷½*÷C†¤¦¯wÍAïi0@p´öO]}‰g—.º‰öpÓFSÑÔˆ1âªÔ0X ùj©Ûpò‰š&VŒñM¡ *l4~î€[×ÞYbóæâGkùÜDAº&J˜æs4€1_DâàM•¬žW;&qïàâáXøéVXç¥ëÒÞrÿå™[¥16%¨|J¬Á¬˜œp£n—wÆ>FÚ/ãDz±§i»U1]*« Úv¼Åkó"ƒð¼{îGˆGãŽ#vu›.=\**+r²`X¬-(ç[É 'TQá5ÖE¢ïØkWoÉxÀͽíY„;®Z–XÇ9Ïíß’ÀÀs¨ë/*>€byºUqŒc>«Fc3-eáG!Ϭºþ Ž@9¥{†è)bèÉ¥ÌÚ Áp$ìØÁ°6kìK½éŒÓ.Ë»·ÒÑ—+ ö!šÒ‚HDGRXµ¼…i+Ç9càõ±#ž,’°‘–4ˆép7†xëX†´,nèž¶à±ë‹¹*f w5½®reÞ°þŸÚ“^W«åBäQŠø¤ò±Ši·oùA/TÀÓ[•ÜN 8ï"83Ý>Ù B‘¿¶J‡fâù=1Ï}ÈD'8™¸ÛS|ëUÁ­|5¿W1òx_=óµGÄ¢b5SO=«ºaüƒÎ+«“nk•í Õ<}:-Q—ÝÊÔÿ|=ŸEÿijèßéh†åÔ]÷ÖX–Ùœ—dö2ĦPè»Ëó9×ÕVžM ¥ÖúE³pkžZQ;­àïw1?¦©LuJ—¬íg¦u;÷eUä/Qú’zî¹§ýèhGöµV7vÙAšZÑtè©Ûèò™0Dh'êÑW„ÎÔ'±E$ӄ⪬J¸äÈŒ&»0;wéö)¼åI,©³q™ô+hRtî{Öw¿,ô¡:ÞÇœ?€Xá‘|ê´Wè¼zšQ$˜Ù"â½rW7¶æ½bj9‰¸ÂÈNiÚh´@+s4Òh˜µ2î³8Å× ïRÙÜ÷‹°Ã ©x¡ó9vCôÄõšU5W ¯ ÿ îtpNGwP³Ì s[Ð^†åŠ^H¢Ñ{7ÜT%ï§Ìkm‰Ñ³û`TÌóì~ÇìrLV+h{“f÷õkïõ¼îNà…%R»îØÂW¶Ñªéoj¡é€î"RÿÐÖ_ÃcŠ–Úih©ïˆK8s¬ c~R³Ð=ñ`"í~ðã(q·¿&œfq*º|nßs/üY‚|5ÛªÈ{åx–UÑÈ "^úž»‘9C&üíEéMÄW|7*bQà\AOÝó¡Šà;º­xúA¯„âÜ—÷å~#Ù»Œ¾_sÝ\l³Ìož—ùOºÌŠG–YÌü ŠIy­^§®Ò$Ê4Â…Af¬g|ëЭˆ¶n×U ‚ëøk·rp3l zŒ1áÕV4nzCX#b   EåÒÌŒŠ@€@ŽüìêôÄuıµŒ´r]Ò{ðBæªu®NWdBÁl ¹BÑFI÷±’ÏôvŸÞ¨¸Í%ü“ßõûÜ/³šs;Ý?ì×ÑÊ:€ÄñùxçÔ݃ÚÑ"8%pCBÒVZiü*~÷ð–Ú8"Éè uå­Ž5¬?,ÊNØhƒˆ=Ê“¹<ºÏjê„ó/m·ÍpŠÛesÌ%ÓÀ­dW2¥˒§éGÀ›w3Õ¡q懼D‹hhùØ{ưßà¸÷Âá)\2,° éÅäÎùá² ÌYÄVÐ]î;ê\ÿ§aƒs¼9OÕïg-ê)êN’iפZ‰üL|œ·¶õó–÷L-ÏÔòµÜÑ1öL)Ï”ò¥ yÙŠ·öš)bÎ$u?\^ž›äÀû;ŸŒÆµ¹Ê•ˆKÓ|y­¸0±«b†u÷n¿¦ØuiqaØýÆÝ˜¹ê:¶’i¾êDÑ„…Œ¸t~uÙqß#£ñ‡ƒýŽK<‚· “æqvûh]à~UQJ8›dèÕÞÓ6Òž²}—:ÝÔ8QX3¿ø^¥ ,“žÅµ•-Ž2&¦mJýTõl$ ̨HðV3¹ftÕÝÔgÐZ_>£BRéö0¡-›uZå9âÎØ=^Ð=£yyn:ÀoëÎÁ_‡¿¦ÑTgN}ëžœ}:è¸{gçë¸ûÇ—ôíähïì¸ñ*-—ÏñÏzŠÞr+ÐTBò>m`ï¸DDœPÒI¨SÿH´uqv~¾s¹÷á%>½;<Ý_~|¿~$ü,‡šuû:S=(þ† š%–êïÞ¥%­ $+$~¬{›oæ¢:5é.ñöç&bßœÞ àšS©HC!ò+œ1ZsäF*ôC‘&Y§]H¹ÏÕÖˆÛ mM—{ç …«ýóÚñÇX†Ûp×®tLNùʆâ.,Å Üœ†y%¤{%@€hxçÉ¡™t›l7*êžÃQÅZþt ŠØlÉ.wxJçzK–ºËX½yÇzÇ95šÁÈt<°‡…LŸƒ…2Ö_6Yš‚) g(>ën¢¼÷Ћ`k P.¾ 1kÄ-š4kh¤€T~¶éÉÞºïßuÜó½î¹O òªwÜÃwïÜÃãݺ٤էîÀ1Z":(/é\…çcQuhŸøyäî«Ѧ7ä6£ëØÐ½bìžîán=w¸k%Áo÷¯—¨ÌÖuuy¶·³ïq„àRuŸX½2¯w Dò´¯9 H0ÏäÁ2•æX >­&p˜’qÉso3¶ÌØZé¹glé”,§>ýL?q¤Ø\”Yf^ž…ødân¸P—ü¯_#WþÛöå‡^0ô=¢•SÙHî±»«‚‰Ûúo›ø?ô/úÞa:ô.¯ºû4ÔP¥V]°“Žˆ„÷騡Î7_÷¯ƒ°ˆoiZåvòÔ¯B÷X¹À]×åc…!õŠŒhÔ÷¢4§ ¤ÚN^Ž«\G²œÅ0ÕÈKgÇý³Ójf}Ë÷Ò òÒhì²ym·Ê‘ä9¤K„–2 f·{\Á¡)•ï=$t¾¹óè‚/i@A3X8ˆÝÚͣѨhŽ*ð£^šûY=‡&ĆšHԌ܄åÿàPãf¹£lûÍZÝí ?º§Ú²$"þßÝ÷ˆ#„éDw#,zAàEAsjß+pÒîùaýÓºí©~ÂAGƒÀFÑIFýu?{î{Ä;Ö/Œø‡2¥ŸxÙWÏ×ýà‡ ÝΘž‚¥Æ¼È“^”ûÔß’Ça:ÊÜÏQ#ýŽõ§ß]Ÿ"³fÁçeþ³.³H«Þ«wkõõü&`ÙáwÞD›Ð29„¾Ef^ðÄ)LfsXZX%V""¦¡Ô*Ü×UÒ<ÒÂr÷àßaüÌ--u>%ñd(ΨDüÕ!ð[0ŸïàÉxê¹7tS©áSÛ·~LB@¯Â_º½¤´Žf»*G \À‡Š&iÛÎWQ°¨ >‡Øõ«däçÀg؃WÑ/ÄÙÕª§è æÃwâçq‘WㆵM1H¸ xo—ü·§ F½á8몤ÉlŸÅþÐ=Šr„œg“(ïÀɯßIz%ul2‡Ý¬xùÆ ‘Ãú|l³ÑÄÓÀM43Oþ¢ªšyEÛ‰OmѲ¤™—x̉RShZý€]Òîëcj)ב V@%¾̌âÀ›vQa£UÒšFï²¥3(Ȫ)…)küñÔ'æ\hÀ¿hͺ÷ÃáÐÝÐþ‡½óÎMÚ|vl# Ú´Å„YtœlÀ®¡‡ç@‡`iQë}®V»ü1ëÔy÷"Ï@CB ã·þ/s¸ËcôN :˜‡8¦#ZÜ6Q[hÇP#nçIÜKÙùèIí¹Ñ×ÇB¢ª]IXµ8Š|¶ÚÓmtÅÐ7ܧ¸‡Ï!Ubj÷­C£´[pÚ‘„²F­ä?ðIÅÑà×Îùožg좙ozª×Ž<6\‡ƒGXÆ6+Z›$Ù´ÿUh÷ã¿&œ]I/Êë×÷ƒ™%±5D,F(9m"]4ñRUÃ#GÛcÏÒ·a¶¡ªaÄ»Jàö¬TŸ®üÝ0 yÞóׯ7·VˆÎ8š¿¥æÂC¯ÀüÛb“й±  lLžIo‚¹Õóç4 @ÔVaKÝÅÜnBp9¥‰’Ìý©4G1æ¿3£Àî7Ó´uÎܣ鹎:?m§_ :èك̂mÀy7ßÐD»nªÏÑõ-žNÊP)V mKÑKí÷ßzÚûþy’Ú½§ž¿ynú¹AO Wýëg…kzÚQ&šÝŸ›ª5¼ä×V©ßoÒ¾“¬þí¦.&®‘æÇ[w׿C0Ì”X œˆ·ïú /XÀcÓa¸²ú–ÕÑõˆW>òò7°ö´5È7üï zÔ zÅíÀÊ‚¼ž{\¹Ûãë¸w£Q$ž8]Q£äŠ·ŠšO Nã½Ùp÷‰G“е¶ÿÌa*%ˆ…@™Ar– z1;Îl3e~î×îO ýs¸Ï“4Â)}ñÜÝL'.ÁluФ^WèL¼µža±j@+”5nºi•°×Èáþ"Æ…¦u7GÊõw‘<üö`ÈzÉ«Zç§…YJ_M Þo¢Î#=ÌañÌÑíÞ˜!Àz6mÄŠSV©Žî­XEEkgQ³Å›Â`&›"2µ IBH¿êü|tpqzpü3Õ½ÿóéÕÉîÁ…ç¾£Ö©²Ò—€0nW:ÖiåÎâ2ηÿ)c2äß›îúæ=¯#¸ùéuäî~ï"Þ™“–êaqÆN«&³Ê”üÞM‰›jÃÛÚ¼ï '›B»‹è‡Âs\&‰ Ëj ]4¼ø†©Dk¥aDIE[qH¨Xç 0ûSöšlL¥œ_¼Ðˆ›q`¹:M²6õÜ/¦“~#1Ù0§ã\<Ë r:NCÿ‘6XÅQ0PψÂàg5ïcå<êcE•,R˜Ï2d3Øòß^8žÊúú~[eß»ôY©K‡òk`\m¾ñ¶æÜµú ‘­±kµVðÔn”{r¸ÈKrRÑ—KõÅ}×T6’¡Fð¾é¹>KÛ2eqmÆ3ø²°.ç2 îLÇ: JÁ:ÆM#-›c…Mݤ!s„ág¢fƒ .;¬ú¶@¡Ôh`8æà€|$w5zî±Kš B”`~þ·óÀQ­Œ †ðT¢¯E\ÒÿŸ|ç!ÂÛ×~Ó‰£¬ºÁX%iT~}мØDqîêt$+Þ:±I«k´ôóìió¹e–Üïî^õÛ˜ÐßT¢ÔàxüDB²èˆœR‹=ý÷©$]@Ð ³®Ùç@z¤§|Æ0užS·/!ßbbm_X@a ²WB4¨4ëð±üðk©… ³ÑÒÇÍe÷Ü“ˆŽ~ÖãtzO4ve)Ùõ[^>…çL>: ”3Àsîak³¥+)Ñkî)¿v‘…)Ý8ûþ­‚ž Ô¬¥lå÷~ª8ºë‹Ñ˜>ÐÎÕ¡–=…þg ö7åÄ–$p®nz«s›ºUŽIuï?Œì7—ÉHÁ¯IíÆ6ô{TÕq"*÷7“ñ'™fåBBÚ¢ mçüHèÁjÝGÇ¢rG…¶{˜1%ñ†¸º¦Ù´[M´õrÖ„Ó»žï @täªÅôè¾À—åmÈxXV“R¨…ìÔWS“Ï3’¬»&îEƒ ²;‡™æe’ª(ãÅ#²¶½­¦r3YÎWR8E♀K2„x¤?oSÚ ûŸÃØûmô=ªx?ÿïÿ3ö^œ%Ièy¼º~ü§ãAÈ Æ›䬟‡pM 8,{ŒŠ4jß9§x=´CQrQŽ)˜f1iaî×Ct§‰ª"ÆEôÏŠ…øxçüûáu ÉLRè®x¬AœÏÝ1’¼g<ögZãG/1ÁSånÀ}}Ô=¬·Ø\ÍMÅ0·} ZuJé¹J¥ÓsŽ+ÓùSxg)Nija+q9™ô*@Ó°p1L‹·*Gþ¿Rg4"çÀ»:p§w°‘©Åæ–ãd›ë¯_9¾²¯ðãD;¼Å^Ê$AÄ ÞÏiý!ÉÔ³KÂidV{‹¸žtŠd*kÛEÀ„<“ßõÜ‘8%e4j­N%/pÉö\¿°N)¯“õê…ѳÔî’÷ñíõþV¥‚”wÐà–£7­tí>9/lZ?Ç!É:k¯‹4¯Oé÷™¼iÞ“h·“~Gä#:U.Ù \ÔȦ_<ä:3»DÇÞdùL§€+tô3ʾ$~‰0ï:J ’q„ kˆÀ£¦¿¬,“õ0µbÆÄuDÑq/Î÷è_#çÉn¥+'$Q‡8'µv–°"HvIm1æ°M"ÄÍ€h´^¢8ÇÖ_^pWøÓßââØŽé˸7õÃ'bpê)7@;¼X[Ï‹õG]¬n¦H¾Jgùº·6w˜€Úޝ­ dk@#s"Ê€nSwÿ´ï.ý¤H.%sY"†°vöp×MH¶$}tÕÊWí[±O÷V0v—há—ç|j´f¯ì#‚»Äm-kVHüŒãŸ“×}¾¹ßgné7-"}ô¯ xe}½É€ÝLOyº›¥×D<Ë:ßäp¨Ø M I¶Îc 63móqgøR8-ëÓ¨Í~Øg› KaÆi/=†bÞ¢™;+íHÚ?á>[³cÓ{+߸¹àº<£ÉïäK#kÖ©: Åáå kêkÒlŽ"ÉüôLf¦yzQ;ݺ¬šMÈT;7þ8Ý©UÚÚš¥Ô ¢Mº(ï锽ã8£•cšÓ²õˆ“ø(Ķk`m Æó…9÷'×\Tf ¶˜JS?G©*5ÀävòÕ¿þâ{+ì>ø4[¶½>í¶Û|ÞvÏÛîyÛýݶ] ä?d7XÛZåoæ}A$§—ïúÝõ÷rÏO9­uÈÊÕ°Šc­˜ÕFüèW5ƒ2ä ð×R¶F˜B¹ÐÕØÿu̬ÀÇKK:ãËyÇ~Öè¿k++ëõC„4„

¹ Ãîq”D¢™(Xˆ8ÍZÆ]l+1Œ;œÏVL*‘lxý;Û?¢œHk%ÃIÒÂÌ€œ0¾¿Œ”a ïöPˆãᜀ6þU¶vä³i©ÓV1Âv|ù£2¾Î$̬W‰„˜±™ßa½» óÐ(e$ë+d15*î“D‹Þ¥ „2ðcHÎfSV-Åר¨ß3ñ&8|yÎ2Ë­×4$ô¾¡7]\é Ñ“Çò;ñÌ\7ÈL8Wš [®È CuÓñf–žs?Ò52Ž Óª§RV¥¸·,8M0¸œ‚l@{”U6Y*Œ²†bÁ“Äèy$åƒxš‡Ín3˜eªÎqnü¸ÀMùåÓ7@h»MiŸ#æø%¯v(à¬rH 6¦ûnç’ßÑAâ$F6¶«‘‘jº5΀Q˜hGsØ©6DËÌÚ=h-DT<¡\ |ÔCd›Œ¯‘Ì9:ÈXs.0†T‘ÃU|ñÛýá T– ØÑ(Í$WÄå8¯ÄBS RC´jtç5ìÏX‡zB Z¢1¥5˜³È?‚3Q1±C·ab–lNêx¶ÌnŒ§‚’Ûa N.š¿?e5†n¼#h§¦Wæ™æ:t¯(d=cà[ W4©iæê¸ ]@ìªÃ(Uá²\€cÍH0#ðAŒù˜¥ÝþÞá!- ]®"O%SG·B^r¯.ßu_ãDÉBI£âÔ/.R~õYø0ñZ‚ïG²£éËQ°ë°·ên½òÖWæ¤`oc Å­˜†ê®»&û®\!ÒiIgfw•.šõŠ!ç^¶Ù2•NW—3ïÝ3ßmüý5;åý@pê¡Yß!ë•ÑÐ[‰RG·±r¶G¥AÔÝd‚ ; ×ñ¹W ózÏÁ2ì#smá¾Sù¨bœöô’|Á„é#pÓ¢ZÐÅœ’äëøíôÆ, ½ªðßà›tHĤR‚ã/#ý©WQ½ð1JÜþ(R1ç低’Þµ?ªÙ7zB‚d["wôzpݣÄ(9¡¦Å×ÙÏh÷Ø£7R˜f¯ñ§Çæ]¢´ñ4¸—%x‰:Ž|À˜„úÓ ¢‚³ÿ2ËýhD¢òmÇøÓSÊ‹qÝE B—C8ÎℊéO4î6BÈqV!ƒ²GâÿgïÚ–ÛF’ì;¾á‡Y©›„-Ë÷UÄBW‹–dqDz­— Iˆ ÀÆEõGû¼Ÿ0?¶y2«€IÉnËÝÑÁ‘€ …b]³*Ožƒ99ÒÐM„5HdŽè=øÞ´´¸t‹t: Ø?j¨\Þˆðæ¢ ì7Òî8¨=Øç^–ƒó€ææ1Mþ…cŒFÔˆA4)`bÇ©î.¨1LñáÒÊ׫H.RÏ0•/îhŒnwœ]ßëîI ˜Qï¿HGeŒôôáμ&ALŸìœ‹xš½bŠOw!ÚÑ x§c‡¶AF¤Í[ôònVRíÈ…ƒ‹eê“•±rá˜[-H¨)\»÷“ÝfqÀ.º½iÆAGîo%-ëÎdXÖÉN2/T5£:²÷øÊ‘«oäŠ&Øž?¦‡«1—ï.%æÝŸ)1&Be½±ÂOçòÅ-ú×íÌ#…f£(ÁÒ¾w“çî,ÀÏ·f  îB%Br܈ˆ§+w64i_Î ¹F³~¯€ s©äAàh´[7´ËêÞÈ£ioõèH³ÛPó¦ ö~ïË՗˳}jå¼ÌÊ”–Äw†å_Û¥‰vd‘}Zî"zù->\ú[¿ûK ®6ÞŽQåË•ÃWnvÏ•ÎZãyÅ|óãö =hcì+ÿmƒµNìÑŠšåbØ0Ø^jÁ5êCðµVf¿©É5§]«¶´6O•®:ÕC_Ä{XêHÎò2**Ö3öŠo»€¦1Aczõ/l¾Á+, ¬7g0¾²Kjð•õ¿ì/ kƒÍ ßQÓE>`níÓî”±¡äÈÂ&Øì€ %a çEDí{zùµ/há“ý¿#l4‡aŠŒ±]édŠ;¢UñQÒÆ\Ù˜+sec®lÌ•¹òog®”SÏ/bްÉ祑/ _#!ÈÖŠX]IŠ™¤`äV±aœÛÛ—ˆ´`<&½c¡tf@x|á­¸‘}ãXË›èûmµ|FCœ½ûô–-6w?Ýöj *‹wí»ûj5èA|¿iò<2V¥HG´BèçÌhÁ8* †âК³XÒ„&»'+ìk<,§çÐo+Ê,‘ ‡-quY& ±ÂôØqÊÖá,LáòÍC9ˆÄù¶œü¥ƒ4X°c¼°'I8· ÁÌÚÑcÌGr(½­@t¾Že9ô¿æ¸ˆD|ÀKRy®ûa.ñµ×g ]7DK•¦ea㤼`]Hñìäa#3}†Hm Ý1¼ö*l=¥I…÷1@ êVy‹£dÏág­«;-{·7ÁUÿ¼Ýé´ìã2K?cÿ²å#T˜ZæÍÃw޽»S•˜¹ÿ)g£\4íP^ýÞÿíìÔ9Ñr¼AÞgä‹BHÖoW²–Ÿÿ¶Ô¢¿¶ì‹7fÞ­¤ï—Ù$¤_Ü¿ê·ÍwØ;¼dÛ«mÉ?RœTƒo#Þ§n'éôIô~é ¼kÃ7¬ÃÌ[ôÒ~ùf™+â’ÚGÔ9÷»5ZpÌ]zXaŒYKÈ7‹XcWÓƒ¸ ‹4-ÆV“ª)•î1TÃRyØmý‰‡ÝÖíNGÕ‚K7Ë'M((>tYÉÜxI=`]m@µ‚ˆ¿á’)¼íã;åÞº<8¾Þ®þ#Yɾþ¥¢Õ‰Le܉>Žk‰:Rkx]¸’·€ç±Âˆ1 ÞñÁnÛQF5´ÕÉŽö·[–Õæ†¸Wbo[tÑG«lã_ð¦„8·züùH߬£š¾:ö?JBFô<ÌÚ‡ßÓ¸vi@ÿö´ Ý劂ò•³³Êcr™y~Œí¿Rm®¥;í—dÒ4κuºšOz: ýá'ÙUÿeÇH–Œ¸¬ —Îäô1©:²joB ´‡õU®4›)q†¯¾Ì =|K“óêí2£Øû)Úí˘PƒÒ6ÂGm\IÔ=Ÿ‰5e‡«ÇtôÆáºá#lWëNT#v,ö™þ€G}4[´† 7”A¢æySÂö€,#€MÞ=¸Ðr "áègj3ÊEŸvz—íwï^¿ÇD|ŽFjïl[ØŠR¯¯Ârpr>ãkÓÒp7Èõ`FÂ9 eCàÃn vPK¨!¤¶ä_†(EÒ’Þ€ºDR´&ª4ÀtŽ¨Æ˜qà,¥oûìèX¢Íñ<U¯ü–“;JiîÝóŸîZÓ$PQ2m/_¼x÷âÍË·M®e>5SQJ,K•™b¼L§“°­`ªÓ La²ú¨Ö9íÖ¹<§‹®wÅÌœpÚ}Î0—߬äî—–-ÅdÅ…Ý‹Ð!ie›FqJVŽªRÑãjí§´ÛxvOûª-e²ê@³ 5J=¿E=àFšƒ‡½?öAFL·© `OoY 9…C›ú8µ$îͼ BMè©þ1üJú¯ÿËíî¿þ·à£‹™›ægüãŒ3Ö„ŒÚ¦%ÿ][’ª„5¯wvh··³|V¡vÝ1f³ýA^Í®M¢¦Çµ–ƒaÕÖ¡ÓÿbŸ:»/w©Rh?”&áèÔ*®†hJ_!+Õ“°fÆô Æa&Öø%Ys9ß*CóÝîuD-­³ýò‡Q8<^8ïȶß.oáˆB¥ìwzvOEòö/X•ù@oÈ~Ÿð.ôKf-æ}M·ó8ù¬® z´UÝÒa¡‚šÌò–¥gÛ&kqMZ¥õXÇ+X€üÈ›„µ‡èÔ£18ñ¦3¹U&‘}àÝ̼HO³æÉ…ÿ™>ÔÑè"-ìïÑŸF¢^‘âüBÎ13Vг{Sð‰ÊÙ¢(<@¦ƒ¹³ä4×DÐ@`[uHšÀK…qžÆS}¸†°ã,šT(¬«Åc.‚e¯äŒ˜,3zònSÒíÇá K¢ÛçTÑ÷Æñ{?ŒFØ6JvÂ?ÊÜúûƒqtûüÈûa„7nÜf Êçµ³ûâÕ*K ÷¸sš!†…10éŽØ]ô;i!×»*†[Y:˜÷"ÞÖã¡çí¶šíp¨Î‘ÐΗÕΪðXŸŒV†T–&eÙ *™¤e)MµÃ¶Øl¸nW—0f– Õ¡ÊÒä¡2VxxÔ»z Ð}Bû—´šœ*ó ±¬‘fÍl¿ÅÛ†àÐzJúˆê¡½2è¯V›î°_ÅÐ`yëMqhzȨA¡™6•Ò ‹Œ8ÏM¥l/°Eöâ Ÿ¾rF>2Ê$#Çȃ-WE-€»½CóÍz‚µ,f›ª•õæReÙ¢>ÁR¦¸þ~Î ©–çóh=G?»sÆÅ4¦ (óh«¼Y,n`ê}qÐ€Õæ}šÐ²)÷ÐÍÔ· øb1 y«fBd  oUM)]ëG2e‡”‚ñí r*¬¹·p$PŠ#Fcµ®òâ3oµ16ós¿ýì÷ÐUìºjâ¢Bäö'öFÆ^™Ãoãe2 ©óVº?Ø9ÑîÇ×WÀuÀðf…’N÷KH„ò²b#y7’u–®xÓ> éã$Ny+Ûî2Ÿþ O F¿ÅcÜqÇÑhl‹Ä›F~;“óÓ£«m‘Š«xƒ0¥0ç;uÆ3t’@Îýb*Ôh\Ø£…hD“µfV†Z FŸ"/ÞW7/¿Ð²™ u;pôZä9唉(Ǻ͕O0MÔcyA³]±òkŠ0Ü\ÿÊ Šä N‘ÀÊqQHZš§Ä@±ågª>ÑŠfϧÑlŠHü@Éç©ÇÃä–n·š'ú­ôÏ(KŒ=êÈ3ó•ˆíˆÂùÒƒê®VèÓÁÈKÛ<ÈêšE3˜ÝJÖÑ8ÍpÔsFVË=ÐôáF±!)u•´o…¾…½—ÍAõî1{ ­¼ù_v6 ݵLT›–’@LÖ|æ`”2ÿÿ5½ñ£FÜ'µ{N/À(Ͼ,+ä7Í1$ÖQ—þÇ ž»½º â=ãçF4~ú¨ð$µ÷ÈâàoÍB}bYAl2–Ì®Ò2,t­eÑ(ŠÀ»§}/ ä›ç‘Sæ3gi5¶p¡¨ÀÞ!8ܧ‘¯©W…³±ý1ƒ\Æ7|Ç ñy •)Z f8„¡~ßîhRÝO"†"³"·œ#Ù}ÉäBÂMþp­­TàQ‰ã ÈÝ2¡Ðˆ¿¸z,NórBöãy„ݱwƒk'V×n1§QIÃn`ô¯„!gŸ¥pË!‚ÇÞ«¿;êßîx±z–9Ui A õ,Åìð….hâ+O”¸íüö1ìFjª<½±ø´§taÊðøªÓ; ”+ ¶PÑebþ YO/ñk?<ÙÁ3pÙR Ð ×ó§u…èÕáÌsŠ}ùâ&wI[[QËêò#jôl8´÷†7ÕÅJ—eqÃsTì×Õ¼Ya6+Ìf…Ù¬0›f³ÂüìF´¡~t…Ù¢õ+ÔP¯/¢&³óö_maɲåƒAµ¤H̱š—U l‹Wš$—<+;”f3oæáÍ<¼™‡Â<Üé^tw»ójÕý§“)§—Ãßp8Tš0l:‚º1ÜmMªcsÚ:Ñkæ]s¨à Nò¬íjJH§ÜT ÈÀ¥óâQiÊåJTn¡¸!Õq5gmF²󔣈ùÀ1ÿÀ˜?ö¾÷„dÈAH€nE&µªrj2{„ D¤ú8—Ÿ®aRVœ*‘gxÚ¨$\4V:µO}Ó`†÷8‹9:Fº kM6ýM«…³ð‹Õ#UÕTçÐàVV¿Y2 FäO8À—+ð#—2Fd6ðˆQÂØ(Ü¥Y˜;ªO9l!J<úSùöÈ­L±þd¡BFöü”²ÔO²*.¹ÛQîçwo™Øëõš¡_¸*ÛQï°×aÇŸgw€ŠŒ€1pTšÊi¼4-AÇñäÜpÞLA·ÕÖÎkÕ-{ur¸ûöå ›3W}¾~SÅ‹¢Å,˜@Ç"âA ¬}‹ ¡2_.6þíܧ>š# ³É: ø#˜2ÆúØ=—˜>#ûÚo“K)ÅûÄ$[j´µÔ®4]¾\~Ýb [Ãdô ¨ln¯FCg’²—I® F7è'~©¹ƒ:E"LÄT×IøaÉó:Uʈ–”ëáK·Œ8OÁ^Ëä•鱃*Ú€,À–áÈP#1Ì2êf’Ïé¬Ý‘ ðõ²,lM#¿{KGC–°z?lÛýð®hdõ>÷Zvï¼Û²¯¼ *™ÓWj0&­Ù¤öPL Z@Áê¹ú‚–0å¨à3}ÆÁ ¼à1,R=ŽÜQšŽâPx9±†=ehÞՌŠHÖ÷¯WK«ÖQ¯×;·“ðVì˜ûxq^…·šN¹OÄp$Ø‹S»d…o܆‡í“ÓÒú?i©5oeZ tö¼s|hï¼ØyûþÃÎû÷oê³)Í–~=e ð÷B˜ ‘¯$}z¦B ­êɨ¤úÞþO´J’–ìÿ,ìg´9Èãgí6}ÏÆ ”ŽÝUsšÓÉ¡–ùt[cÕòê÷d}Ò²/:ô§^KçBhmµ7!#‡lÈgI>šÆyë™ãgÌ%³9=ÿA E)žQÇ¢O‹>1[É#Ïò»g¢–Îkí³é=0ž¡óÙ3ûÛrOû·‘}ÝB–ƒ— (Sû|ÌÒ´ ë=ä¢L\ÆÚòWÿE8EÖLå»KËm% ψu;"Ë ±n§ÀHÙÉ7;ŒkÔ+´qøËcë’ÑYpIÆïïÞø¸6ƒc‹1Ç Ñ{ò{/' ™Qc„sÒãlrúüéN¡VG¸ ³0ªB­ªV—6Ã4ó;gÞŒ¯\Ä%m]rªþSΡN§i$)’㟣¸&·©èÔ¯¼1"5s'Ã7Œs>•íí B`²@ùîƒþ‡i€rÞàK¢Ã<äý÷‘æ¶÷Ŭc°ñpƒóFLMKv5»pem à´Lrõ¿x!2eýÃnEÐ^‹ªXÊrmÂF›ÄÅ 'Íê°+Úd6Ž|2…ñJïd=pÅ›ÕÔUÔQ{ ‚çêz~RQÕXZ;±n³5.È¡$ü²ÂtõZ=©^Q=ýU~ºœN=øË+í–}*Ç8'>k•JA—z]µTû…FµÄuþæ1‘, ¸Æ_ªÂ4UøCƒ|SmuµM¡ÄѦç—p^Øo_9¯×àŒì $´¯@e8 ë*4k%ªëA%ÏTrÃÿ#Â{m§Õd¥UåQB#'eü‡ÌÔ{ëE1Þ›!¶BÚNhÑW4Œ€êð‰ õ ÉL7«–ƒX&þÊf3Ïaΰˆ›:lEð“ € `ŠÍØäIàP޵ÁÈÎëÕp £¸µÈØoDi““njÓ=x×j¥É ,7Ô<~ tŒÂ J°K?í÷»–~Ʊu~錚ϘIOØ+vaDYZÊ@hêÒâ f‚HÐÛó/¡ñÂÖž;3uæÞÂæ „]‹mwÁ­ÛC/V{´Rd Èü+ ‹›=òFöµ~G8½ øŒ-*œ$Uv ­enŸ”þ8§ÈWÎW.øŽÃØÉ•)t‚0³ƒ´à¸üBãœ$®Žâöá8¥7MüWï]?ÅÕ ÿÒ£}jå,ŠÇLlQ¸ãYÜÆ'³Í§Eá4 >µÏ ÝpÇê†aN#ÐÀœy¹WL"¶?qÙ¨n’N¢'±©n[ùQÖv^å ཇSè&úiÕ7e6bœ*8g`d 8úÑMËþA-Ë!àt ÿI¯µw¡Îã¼ZŒÛô9´%©Ý+A´¸UÁÔM3Ärp¹L@BØýÝõp„ð­zÐ.!p9CBoA þú9Ȧ3-g§£ôÏý¹jT¿xwù“•‡³xu¾ã¯'êm¾Ö%\·7©LlFÅëS¯`ù·EõkB~¥J¶fx_^_œãK÷èý7/^âó¢gE@ùÏ­™v5=XEƒàÏ­-cŽ_©{Xgl53æZÚgïENI{ ÊšïÞMýIÈÆy×_±²Ñ%%>HÓ ¾^ã@ô'Õ$Oš)ÖpՊĘC¿¯ªª#®*É$|,“Ÿ5dÔòöÝ“DG-‡¿wž0Í 5ÃX€êuËšǪ̀鿆ª,0æÔA+äÃu€pí'6)²øSÇmf:ؘ—órc^þæ%1Qrx!]š´ŽµðûÚc¾*ZmåôÓÈ¢ŸN¶,Ô2¨Y:µv3LÑŠ.8™Ž-Ä€XÊT ˆŸ:ýŒÊh3ûlfŸÍìó‡Ì>U-=<Æ.(‰}ÁiNB›.Yr¼ûYü-l ¸0"Ì…bÐ@úÑ,blПfÁ¡Ç~· BßßmÃæ>~à\eÌÞÀ¢¬úÔŸi±Îe’>üƒ»‹bL“Û—Ï—öAêtø¶Uò6’$¹ª %ÉÍþ}Yúu –cŸöÙâ/REB V•Rø—¦"µÔq4}š´ŒægÎxž2WË©$.®1 Þ$…JY*¦B.…‰âÂòn½–}øë¯Ô»ý#kk¼µ—ðl¿î§üR7zK”ܦ“Ð’ÔyíàÒݠʥZ=ì­ËË D~>®c›Ÿ³¢bIá<**„f¨Tƒý±Š8–¥KÇD˜¢­–-X–Ò§*ƒ‰“6ÖÝçRÝê£-=ƒ™~R'þ{ùŽÐµzûÍ»®¥v4ŸY·ñjb®]ê*À43ç+·ÆòM‚ µzÆêƒ h«²€Žå ^±=…*Q}ìŒÊfßb­`Îç¨Èýñ„Êîö^8:Ì?;wžÊ`Ôi¹Ùûm¬¯õõY_Òßmh|•äê`ëw›LÈÁ™7G>Ï;Ê kYYÈD[­Šæ%ÿ3OаTä>H*!C³6ȤÉa³ÊUFÿ7Èg:ÿÏÞ¿4¹ek¢à8ñ+PªºGîçð—žž^Çè/¹<ä.1DWDdV—E$HB&º;ÕÖ=j³þ wxÍʬíº‡5êQ§Õÿêõ­µöÆI§¢2#Ï)…YÈIbccc?×óû–8˜» H‡ôÖË’?@ÑL½P ¸D*ÉœBÈ0um¦ýXå\p  7{x õ=kÞ±Íÿ+¢ík$9×po-1"^eÅ…GÈ é €ŒØ³¢¾E}̯ÔÀôM\Ç¡m¿9íüǽ=¨LL¸í<ßAÐHcómØF\gŸ˜þómdƒìžEÒ›Gîwã¼ßàóŸ_§\ÿä§N&;àœ 5¥pQSÄÇ'ÿæU(÷s?cK?Àô—‚@ZZã³¼7 •Ïg.ãR‡(¢Ÿ"$ÍXQÑ[VÄÇÛ[e0›«+ ü·À°gšpæ œO!:ÉZbþUΖákÕoï:ž‰ŠÂ€Ò®4ñ°T( ò¬«3Ø2W³l: »1ÃᬘLÌ.É÷è …q7®SZ eè Âä‡Ù(ôÿ”üëÿHþúßý£óüc–„­^/ÍÊ`›p‹²Œý›p¦qŠ`å0*ËÜē̿‰ò¿þ÷Â?*éK@-[æa¥ö @ü¾Û|ßm¾ï6ßw›¿ín“Li‡a§/‚ T*Óúª½"h´£W™¦üØ †Ÿöu'z¸ˆ¤"]žß¼²Kƒézã* “ßsv±Ê‚ >‘&•`¯@ ¹9ÉMÑ=ã{"S1ÉÜ]¤ž'bs©‘f’Mg¥%à ê49huBMVD÷XàT]àÏRÙÛ}#ÖSÒqȯï_úûÏv_p³äËÞ“À÷WG°™*™"4™3ÜL°t½ŽiOø¢ f¨4™êGäÝô1÷4”Ù†^„iTprÍÇpȾ>pä×Öd>0U)I’¿Ô;…ý¥§)E}üLz=ù±••ex礄ŸßÒ#^φä8â¿­$ì>9¨¢%Õ(šù4Ç&ê£ õG‹”ða œ 7³ &9NŠY>C <_i7)´”›-!‹4eÒóï éûBú¾~ûBRÈ„$“ײz)a(¿¯§b-5zNz9 IÂâ&ÏІ0¢9zCjÓüŒÄ?ÊfIߺ2nã… 5n2+Øf¬UþÂË£aÌä’BË•~_V§e5eøî}ÿù^ðäéêåÄùâHm\H²9³ÑÑßv˜³’áÔà.I¨Žu¨¬×B&Ö•,{ñ”âª[±Íd[?[%©Û—”nARa[vÂÁ¨†¾Ä³)Ý~1í-‹óº}Éê@*±OỄf³‚Éûà¼#U¯¸ß¼Ž)"N'Ò$u ¯*ø‚YJZÝYÙDÞ‡^ï$§ÃOC…‹?ÿü³Ý=ßN2ѰY¨+Îæ\£çÛÆPù—Kþ:Ji«ìýÔ$\ÿ~éåß$u<º£§v7M&gí-Ê?Fþ çªÖwÜ*‹‚ó„6Y¶ÅÈìM÷üƒ§‹)¨Oh=àÖ¼efº“wë}4ÉÊH¡=”É8¼:×`ͪ*Ø–9i@q0Ñ“lÈpŒ¸"±ËÌùPQŒèC ‘d97³àÄÉ´/Éëy4MB™ÓëlÑ0°ú¾ÍGCåðâ—¦ZHãÔüõù™³TOÐm:Ê;L€¨¬–ƒÛ¢ï2†‘~1©EÏDZQ÷ðiÜïíù[ \Û̉ì1aNâ<£ Ýœ¶w.Û¾°|ôÂÔcSF—C z`ø[{®ñ‘’˜Fɺ5æ–ÎdÚEÊ)~:ɺþIÔ3³=#³Œ„Ͼ\™cÜf…Éï}"ÍÎPy'ÎfC¿“¥C©á<¡±<êÒìhÉ2³kñtOýN˜|ŠÒn”†ˆ~h݆ Zkæ!è„tÐõ úÓº+³»ÈÝ+¨¯Oh!9Œ•õã´Åu è¸u–5ؼߤL7G'cþÔšfµóùkþBfy3©2ý ôk+ì…t"Îì2~‹ÖRFó°; cÿÍ4è›ë—>|c|Ô' ÎìÚÓq÷cKPÔ Ñu{'ŒÚˆä>úܪ#om#‚þÆÃÛOƒ|6Ê-ÀÅͬOƒp’œüWâ[·õq¤–Y|>°iã•û'­¸Ëa^øÍ6fXŒ§!íJm$Ç>.OG9¬†Ô»`ÿ4Á3Ø(Ì»°bÌV‚5­[Éî% ;ïâ¬]Ü`ü•ÌjIà^­…ëßëûÚü¾6çµ™ø»ÁËàÎøýÝÕ§;'ùÈtcÁÕ®˜o¾£ÞG —©}eÁ4’%!í„o#îЄ Ñ˺t~6 ºÒ4éÑRiÒÒ¨” !JÄE_„h×.c0¬}†/+´ Í—o¡i·û;·Ûk_Èߺ¹êx·{Û«({F¸5E™G餃•Ïi.xmÓêµEÛè{ˆGˆNÒ¿ƒN¢R=ƒtéÛ,!Ñ!B„'«¶&ðïÚtŠ™Ì«ÄŽ¨Á¨jêvÒ¾+N7Á!qea”%¸Ž³(omö¤3øœš¿:ÌšTãŠñ•0èVç* ç•R…îë3.èq€8Í,º¡5ýC@ŠjŸÚÀ¿YÑTæOw±ïèFÖQDýL~'ní&$†‘p|Dêãrɳ<·ØtDÓ™Öˆ p-Ån}ÒÜŒx·^Q ëgþuÉÑ¥oËe>PÃl‘Y2X.ñ:K†LHü£Y.ÄÏ)5}V–h2`‰ë¥6Ø’::çMnàÈÜÛcÛðV¦( ‚4² Ùk±€EU Û“)a¢T±d7ŠÊq[Ýìßöÿí¶ü忦wt^‚tsïÙ2#Üe›ô EÛ¬ì Çb=™ÅIŸQ8þOí·.œagççã· ¨ÆÁˆXN¾jœ¦$̵üÈEÒ6~¤c»æ‘?Åy9 ¯ÍûpD"‚²Èo¡%ÛIÄå|Ê4Áô"'˜à­ŽÜiTNKA¯ú£QWèŸ S­ušs&p^æø8G.gÐ,}7x×<È£]8 ü)£Þœ^¶ÏMü4ñÃ܆Y¶ˆ[„pp&\¤êaYÕ¯k0ÛÈF©'w}4Lg­2  l1!u¦0vÓ>8Â×V15–Ü 7Fn}ß¿˜ÍÐ?àŽaèeÙ4P£,lFÞ„E–6Ï~”L"OašmMâIV8ÆÛNœ•×aÉù¨À·`ÄßZÅœ1zY½JçVS¯ó:› òÞN”,üµÁîË`wm-f…™¬tö‰²T# °€¿U{̶/‘$‘+½­ÀáýéšCN¸ 'ŸÎF gv²sÆSTì[i‚‰¬p2X>ˆÒà}*X¢Šá®ôsÌÔˆÉôe*ÆÛãb±ú’ƒ4#mnî“ì÷“¹×虇 ¥a÷¨ŠÅ[ ’øLö-ÃúW±:ž„&Á¬o+#´'…(¹‡{TúDäY%õ5éa·€"¥éW¿ÔÂ22aÁ6ÞDìN‘GÔGX¯QuñM ˜2í„?›|‹5ÓAw|ã„€p”1Þ&Kné£XÞTvǶNûÅDæ‚阷f9È샱fauà­àJ¼q3ØJDo,ö‚óEšL;'|çCß7y[˜q]M&§q5(%³§{Ý.`¯‡ ¤0”ÀSèýŒõ0ôa1”ˆc<%‘òO;xŸ$Ü `0Ì`Ze/¯Mf¦ý¢>H¨í‚9®“`\L r2Š‘‹­mÓ6Î4Íã¦É}ì/> -m^‡ÿ§+ú‚o9­æ ­‘o²ƒqöë×íb~Ó¿ø`PùéÿÚ%ÙÞ‚ë­Þü¾þ…½ÿ­ugCµmòþ·Ó”AÕ_ú/‚§ Êû+Wk†Ö&r„Ù|$F=ôo>¼Ý¹9n‹ŒAg[Ç â&Z_—H8B {4²¾0@Ùõ„†¶žš0åö€F¨iMB?~— kY,kÐîò*¶š¢üVÞæf$½z-¶mª´#šÏ놤:÷è{ÆIÆ;#OhV8lC*h*ˆ¹ ᮨB*ßu.ý„íûHÌ<ðëBV;¡ý Ÿ\,Ô7ó*“:rçæªã0~[ïAÝs€¡8´ÂNi%ÓÔë;:zî@½FÖ‰>Ëo¸CòÔ~“F·Äf·"‚U%>F›i°M»í+î¯ÅuÏH!Ç9$ï6ˆóè;hÎ;.ÇÈÉógÎ%‹cét*'ve©r4Ô¼Ë2ÉîÎ/‚,Ô ^Ž'³Ëàøà‘ÔÌ?ÐÚ¤1ñ‹»“%!Í wè RôKÌɨ[£¢®¿—#£[QHöùÈ ·¡‡›º9µjmÖ™¸ÿ”¥°á}Œ'­9>nHž@Úþ>)bϞѿ‹Ö9 {æŠ&ð b…ÚaQ ÌJgíËs™p…-XÖ ÒÊ—ð äpƒªÄÔVUO¥zâÄ^õ‹”ii.F½P­Wˆ¿MÑ—H mràXÑì½Õ´¡ß>¾¶‰:ð—˱j±òíÁÍÑ/H„žÂ©ƒK-—ý6ß×¥ 2Æu/kVاVLZN¾ñV8¾ßÇñßî8據ÁXŽ´¥Qd™°ù3$Á¶”ÍéS.W£©µ ‚­Üʶáéò­*m"R}Êš3I¹RŒOpÞxÓTtr–¯\ñ·—ÁŒž³r¥è'§“øm¸oH)–w>¢BÚe¨ GšIŠÌ3 – XÌÍ&GôøölJ2qaF±hÛ*bÒ)øÑùlª %œžPW\„JC~£óœ1¥=›ÃæÛbÅY 0ÕOUˆWÙÃN_oéÉðDÉ`ÛírzƒJ¹B˜D21J9+þH*+•0êoŸ•WÑçbv"Ù‰ñélÒØh&Ôñ2G]1Uë0¹ çòÆy$GµGÝD’#§Ó»˜Ü Wózì35Ùë¬÷lºŠn9”/ûÄÄkEÖ haÏÒÀ¯O§‘žÀÞ×Þ¯Q a<±±—™º3$@ÿ@{VÁA{ÑÇ:}=|¶×ÔÚa6AˆãQ7ëNZƒÞæñt2V6Eëû®ô}Wú¾+}ß•~ç]©Œ§ôö»ÌC»·”Æå·ß^ˆì4 ‡×­Œq•÷|0HüÊ#˜G=½Ñæ–d¶P %Chë(膫ü K2›–è.cÝÑÐ I ”€Ú‹ dœ§|rÝnøàzj¿½þ£sùê•Í8Å””HÛÙtžúŠ>€^AÖƒn¿ÆiÈá½QÔ3\YžkÐßZ~¿‚žäßä³áø xÒèi3 ´õ¨a#óŸO‚}ÿÉ‹à鳿66@.¤X,œ_=¦Y—ÙÔåÈ0A!_]Ú¶Sp©Ã'VQbÀØŽ,S.$¤ÆwGlQ.áû±fóO‘'t ئÌnlB¾ôóÇ´¨ië»ÈÃ4ÎrZd³¢u?<ë”úñ¸$mc–GG•Î ÷ &Aý9Nàà¿kàEòóBaNå|±Ò×Qè\ÿêñái°÷ÜòäYpðrq]¾‹bÛ9¸Nß½?9öé³<ߟÄåjÆÅª¬Å<”€ºmãåÅ9®V¦JóËÒ °Öºl(/¯föºLÚ”óhHGÇ9«W䬨à57((Ó¨’ÁËP¬qqŒâúk¼7‹']剬¼Þ…)›Ä¯¤®à²bËå9®£-óÜGñhÍÇy’Ĥ_E´ÿÙ;]‹az‚CÍÇw‘†¥ÅÓ~ ¸ÙIÞ»ñâÇàÔ½óŠ’HnþQÈ?”·­YV~ІhNEJþÐê͇´ÜXýÞØog *uÔ§/Tb’Ï6SºÑ)`9Û{"œº{ fý‡¦­Pȼ—i…Ðñ…­úüDÞ¢³ ÂäêZŽóÞˆF—I\¶yÒo­,¸Í1èÌxï g¼¿fÆ{ëg¼¾ŒÄ%„N£;‚Qá­öú˜³Ñ2Ø,¯7-‚ÃÏ3Àlb2‚(‰PFˆ>ðu‹_ôžIY¤h±`ýeËsaáîºÉDÏÉË;+M‡½æúÜp™]#: æc4Fn•|mÝ“@b›±:ö¯{WÙlˆPT +ÆsHkñ9ó¼6¬iѬßÈ÷ò}T ÄP>t„\JöµCgÁ¢áuï‡LC AÕaúÛ-™PF"‚×éûRù—ʪ•aZ¾¸Œþ¯˜^H+eÿ x¹¿ ²×éåÎ\%b –ðÍRÀ½–ܰá†x5¬3[=÷â‡Í°pëôx2U$qä«YQHó3j"’¾9ž§7#e”n¶ô “2N«¹\L#œ-¤ÉÆNK{˜Z’èàØðèÒ³©Ó™!황ÆÞIFÐP²ÜX3‹5³Q!>½"ư¿»û¤ásÇ04ÞTb)ûбælÉšÎNÞ$ÛÓÌžE}/J‡&懋#œ?Ò ¦"øÃ%©Ï!¢©Œ©Éщ©âaJoÄ®B340tHŸ­oïù׳¤Ž$±—´VX›~“±ÄQŒ#¿Q™ XJú' …ëoÑBílbù?< ™·kÍJÆ: ÛÊQVI…tàšé¸üW6æ¼IH=Aúôó`EþÓ¶…šÂÖqÄŽ…ðSæ ; DGšÇ"1^F «êÐm·‹s¥ßø-u*+–c·o¾¦Cé5ͼ²K3qÛ,ÄI_vDM·A(Òfšõ£G¦^ ¦ÁÜⵓ–bý7j0C­Ç´¡Ð\•)¬/iO`L.KÙ¡±ëÈæ°\@Ç‚Ñ;Jm¦?ÌüÙg@?»K_4Šzõ4„öÔð¦Õ´+Gâ<³¾Æ?³ γ@Ê~RŽÖ¥ä‰º|B»óˆö–£°+Ÿ6ÀjËÌ|ÃfšƒUÓªÃçk«ç#Í ˆÙè@S šE¦bÇ©cö‡¾@"Œmu†h6íkl­y=E Ì²É”C²£°@ò¹¯9OñD’P/ TÈØH¼¡™2÷¸j~µ‹ï… Gt”‰E/âæ(¹d†~3&;•®ËÑšm„'ÍñÊæíTÆà ¦bÖû>ÖŒ³‰û6ð¹|o!öšÞÚIï£M»M‡/lÓ0¡£oÞ*£Ûie:yƒÂ0=CààÑ8J[´ŠûˆÍµ?dHq^OŸ“ Ë$låa1‰›dx5£w¸F¸]O&ü¡&:ˆ)’ïbƒÑ×ÿÞyŸ–]âeþÐn_öwÉä´MqÄ”v! 3âo-d‡"c¾'/VÞ4.b{{'øëÿ3ü§ÿ¸ÿâù“a*4gŽzá¾ÀÕŸ1DP拵|šO§¶–“lΩc$¸Â9QʧÖhŒUïóóزú>¢“‘ô9h¥Ù-XK7qeÐFd̽`wwÏñâEðâé’3CŠ\„³ÜŽSµùJsHWÖM³Œzèf”ÓxE_M:7%Ñé¶7ʲ‚Ï$¸ŸïÏ÷˜ fIÏúq5ˆC§r‹Ù'ºeõͪ.d3º¸y#$ì›Ä+t>±âc<Š:‘‡,̇n´á_*_Éy¨€—·×Öuî4Žvê´oQƒ: È›yÌô¨¤ŸèÅCÿŸ I[vá‚ÿ€¤³ñŽ9-8hŸ·=KÆ-ÀxðÕñ[„O3ø=ËŠ+ýh ùZÓªjw àP!Û,×'2ˆz0ý_öö°ÅM“‘ÏǺ Ê‘ÛVа HkÀŒ AÿáìžN^컲‰:ù)KfxÙ8b³á\òôÒ5FÜ ´K°¬Pû­G¼S›žÇWQš¢MíŒA²ñG“O½ôS¶vÙ×囜ŽS’¬iò±¸ˆgWåë",[ôQ+׃f1)\ÐU3÷¯ý­v2¹ÃnºÏ÷víü´˜±¥y¨§sZ „}šT8Á`>PU½\ˆ`«âhÕ_éÂ[Mˆo'¥u/MíÅ0¸¯ïT (]»´¿}ïÚ¯îZÚþd/~ìí>{p/¾®‹üK°ûR]ËÛîN_(ƒÆƒê,ðÚù»®Ú¦ÈÞØ]ž`4üؘ{b!ÃT©ͱÓM»Æ©ÌcL˜µr•‰(eq/æ ÙkmÍÞŠš î";,9? Mp½Óµ›<¾i‹N¥`T“£R‰²&)€´#$$û ³¶ …d‚‡8¯k#~Â~'ì$El©àaY£ ³µ°dÈ ›j<Á£'¦ÓvÞuvS¼>5«¹l1ÝxCQãkw„ù—íkµbCxÎõK¬3¬„=çÜÄjy6ÿ·K£Çò|¨EM1-‹“ÀŇ5o*¿Éˆþ:λOýý¼‰»‹#б‘à‡¾‰òn”g‹[½K§áDx[›ÁB·‡CΆ¤á´õ½9;U{6Íj{ŸQ9EÍ´…Møšì$LÂO‰á¤át©RÒŸâ2è’è=š­©©PvªõÃi×.nùß»ö«º6é‡SïÅïài°´²Ð«WgÇí5=›œ½…} 7,ø^É/e;[É6FV?°Þ#ÐÏçB|ŽtÎvVÙq ˆrÀ¨òô$êÇðÊH+÷Nh_n´4eiQÈÛ.ŸTŠöð(µÏ®üŽ1­´©Ú«²ïÑöM*wS5XFÁÈŠ:Kbø÷±ø»ŒEÓ {8–ŸìûûO÷‡L¾êá'ùço¸ò•MÌtÈy™02„êÉ =ˆÜ™uÎk±ð2ãgi|¿ßàÓ;¶K('}eÈ¢†Ýxƒ5AX8‰ÅOž¯Ò»DÀk¾CtwM‡ò?ŒWU «KÏ b<”Yº1•jÄï\Ÿø[pÒ aQ7Y—oo¶!¦¾=mû[@$aÓoΨͷ?Ÿo«Z¡#„ yqGQŨâoñØý2 %X›$—¥ríMýäV_L,>p¼Î§pÔY»Š¬: ¹ 1„»¨«¬Ô$˦]š(^ZÂò™“ºo*¾ 8ã” IÆßl$/µÀÈ,Yr=ƒUî=ñù±“oÅFS`EðO-8À o±JèEO:g4£3žfž¦PsçX í½1®>©‡{[œ[à9—&óehÌ']Ðkm›{m§^ÎX=e2TÆHŘr‹ }·¾ôqM5વíÖÎZNmF˜©±Snˆd.S=´4|\ð½†0äjßZ§Nã^‹û&°Þ´%¡]G™j”enð’5\žÊL3QÙÛ š‹í%ã–ìдŠrY•ªw¡ñ)®¾S¯¾‰È¾H-Z=ÁèP² ýçµHöæ#¬¼†O+LÓ%¨ÏxühFT÷Û…DÓY6•¼Ê 7Mfm˜ÖÙ€-¨)Ř“¡6™˜OLé4Ù8*Õ´zbÃD¤íø´°û|òTMöTŽv97³¤mp#SzÇf0ñf¸ ú}3ü¾~ß ¿o†ÿî7C¤íôRìÇ;€„¿ÿtÙŒ ËTXÛØ¬Ä;Ø î~Åw¯âg^–¯›CÜuŸ-B³ÙZHõ¢ÃH¶È^á`(öWÑ rT¹ö®´4Áa[6AÓD»<¹Þ¹ŠÒì6“¶Ã¾˜·œ :'´æÝŒ)Nøm˜¼ÃèºXùºä&/{E)MÙ#*€Çf,Œ=®d„^~¡€‚·eï`ŸFd¥ŸhÔØßFwÅñ‹mÅpôuÕ;R{Îíb1ÎеpŒÓVË}ph@6ÕÆTð9ö&ÿ<ÒþƒÐ(¸† ŽZ¼OãÉ´ Ò8…9,o¢¡ò­•GÝ(Ap¹Ël Gvˆ¨H*ð‡V,ÚݨӇè‘„t‘¢òƒ\…sxÞ™‹ð4õY€'C9c,“›èÞú ¸v4ÌîU]¹[(›%í“a*'SR23D\Š&€^2ÚʤP7Q™J*KÕ%pñÞÅÍ›a ­‡Gðݦž•üa)¼÷v©»,óßÏg4wù|Ö ûá$‡4RÈôkún‡$Á<üèŸeý~˜2¢P!?µðFI3DÓ†æ$êãŠ0n%Åë÷qü·2ŽÆY·z=o]å¢JÈrè/ùì°¹q|½‘ã5õCÖ¢­Ñ{¯ÑIv·á@%}çßåðd½ï›å¿íQ”Øô‡ÕÁétão‰MGñ¯nâ4žÐ,Û<{8 Ð ìZŠ>q."…«]ŽA‘†z„Ãp².rôAwO³Rí:¥‹ÉÕ_hœml2”cqi(—oº…(Lmh‘aäOsˆ:DRcFguq{¼€(™Ü´õ§‹ªDÈ^FË×2«’„ui>Iœš²J±q2•Œ©ºÎ@Rp.9¢‰6EÛãtZ1êi…˜/À£‘ІÐ("ðËØ6×6lwÅáÖÙ„ßþV' 'âqKÁyeßÓSøÎ@*Ì•ñ7ÊlZ+‰‰ú:ETzrØZöeÒNP‚}LI»zŸˆÿŠ;” Ô…½Ë3A˜¦ò´ 2Í©`©²I¿1¼yƒu¦%šâì=*ïðw9»6ÌÇ™ÿ†SN9g6k%Í2ˆ"—.7,Àçô¶T¦üµzáa¦Š·3Ÿ¬òYpðp\p=|Y@«_‡Œf«HNÀb8s0ÇÖ£I|å¶?+°\–o a¤JÛÐóù~],ÁÁÚ¾@¢Oä€ÇÒ:?€h£amÚCÊ8NÌš€Ôø¬|áR –Á†ÄùuIÖ{qí–Ú^jªÍÿä ØÛ}XÊvs-E¾*cÈU/ ö˜<Q¤ëeë߯sîýRn–eÙwË_D”Ue÷XÄËJ ½7`zRÖ:uŒŠ9ø¾›žjp ¼íé*š*¿+ØÂdL›lDûüÕ£;ÙOžý—/wö÷ü»Ïƒ§ bÎYŽi,Æ›è§ ©Ï±€~>ßÝÝmøÏ÷ñ/:à)ý`2ýþòÓu7ªÿUnóŒ frû1}´"8¤ï$.'!Ír/•ÄW®Ô’ ˜õ¾ì©³(ÑÛ†É ‡å”ÿ¶ºñ¤›ƒƒ8èÝÎèôýôõ½ß‹E $s!Yûô²Ya°i`5ÐJMpè~°¯t)wv§I ªö°©Süå$n&l$°p‘š9{'=Ðï΀@é)ÿ"ŸZÆ¢ ®c!š¶§FHßA˜Á=¼òQç’DµÜ=@á7²ïx ‚14hM‘ç/ä¶ØLp¤B c ÜŸÆQÁ)$6:íÍ96/<™ FqÀxÔ¤†Åýb±¯²»–”¢–Îhz\ádèÎ l;âÖbMÐûà’w'[³ÞÝ·˜0ªášisð}Ú|Ÿ6k§Í„ÎOÕf÷ž ãé‚m÷Cm¾´O›§aÅÍPs(’†…Â}cn«;O±]Ý8ý=:º§ÉlXaa0m©HÕ¤-" z6%9¯"âUݪÑV‚Èì1â_¢ÙòQÕeqL²[Ø@»Å’Cßšú’9céhfå8;£ W›q£ÞÉ0¬APIÆÑâÞ 8è]ŽwG„]P€•ðÊüòš7ׇŽÀ1íáB¯$M䯉Ø3ýÅër¶»b}™cÞ²Iä¨ÿL¥44¸§—ë‹X3ÎòÃ…@¿qì1B«‹,HòYHƒã¿Ž™Ý¹?Âß–Ì•š€õ¿ž‚yJ:ºîVσË{ÕqÍ£ÓŽò¤ÙÓ¤¦<rIM¹D>ŽEª}úþÜÞ.*…PÊUÌd<¹,²•©Ï«êƒÞ ŸP¥Ý;qWá»WZ†÷ 5 «OO*¸©ÞSu3qLÅ º³±V=µEÛ`]‹MÅ4K9¤ÏCeþÓ`w÷éšAUÔÓ×á'@]LG{»ÐÜ |öã£#³™ú}d~ï‘Q§÷÷ñù‡Ÿ¢×L ¬Òа‘d)Ó¥}Úñ;ÌT&‡£$»TòJÇ-Ghç”J”‘ ÖÅЄko½ßö;§rôUØàžFt1@<[|¥A[æ<p«Š:MŒ¼å4ÀKqÖR_ã­“¹ (Š8gH*Ž4S…-ËóÆûó4œ(x D7p·íô#ó±~?à±¼Ë4u¶\’n„TªŒÃîª62Zºkwt³TpܾÄ3pKU×ÑÍî!T‹Œ§FÙ,‘—@¼óÓï/oþdÓáL´qäÝθ-,fO¶ dwL;ß‹c‡%MWdÎÀ7yç9ˆæå§â.¶­8{ùÓùûŽ‘¯…%³§2ÝØµy³èl‡¦øúôÆò™Z”1ÄSÆÎ©ƒÎ>ˆ¸CK2e*2øÑDaL®jâÉv=|—[ÛvsÐ@}ó5ää¶ Ì• Z^nœÂÈi–ÓªFTCO?µXZAŸµm_Íú´zþû ŠF8#‰F~ rý¥…hf‡bG©ß gÔf×O­$ìæ±-Gï˜d´)åaŸþõ¦ü¡5GYV=ý8-ËØ¿ §a§°®‡QÙêõ‚Ѭ ñæ{ˆuYšdI¥û¾“|ßI¾ï$ßw’‡v’~\Œa¡ý'O÷WÅÚH,‚aƒ¡±} [yMÍç‹u<”L@j#|6Å®sVžÃrúÍG`XѶ2n!F`C'c”gqÚ4à8{0ìùû»ôïRPüi5ÜÀ«;ï:¦?ÂÎÃ58Ðvm©Ü^·’Þ•OÄYRê!ôGÅJóJdZ”d_ƒÅË-†)œ[·ñš>}CÌ?AŒ I±cúÒm '÷›ÙÿE|ÞÛ vý§K!¬+ H,dÄŽ›ïlb¶÷Jƹ¾Ò’U+Aõ›PA|Xqs+L¥Ô\½/ÀU°Ù²Ø7Qû1˜Å"æq$,x‘û‹9¢hõí"åφÌhz\hö<ù"þbSŠ{é´ÚÎê ôG’\‹Y·óÈѹ£aq«à7™/U"¯Ôt‡Ë3m¥·i"{rà¼ÔôbÂêdeâ$¥Ç)u!ðÙ±ózU#ÖÓ‹1Ô§ÇTuG“‚?´†ãa=˜ñ׊ÂðÁ4f“  ¹šv…,ÿ{Lµ®ÞF%cæì"¯ñIð|ƒ‘oTäð iFøâÄ–*U®XOæMôÞ¯Sg·1Y2àÕSä²÷ÐÃw`$j'?ÞZIÛ+<¬u®´²Ä->(¨U#È …ˆ4‰½G¤FFd›ˆ£ö¥œ“|Hrû¡lè!Ä¢–8r‡­{ps¹=BU¡¢§Î_ÊŒ û|rÒÞjúµ†õN±1æJ/»§ÉÝñ§©yßl†œ\ ðùŠÐ5)±88èocº³RÅ çpÎU·*¬¤PåË¢µ^ݧÊl±XPå®t#î«é‚¦z—Î1Þ çVÏWmΫ¨SÕRAf¬N ¸;5Ú bk‡^Z†+Küœ •*™#wæ mgæúej ðKïÒš¶¨‹>“7ëŸÌàê“ÿŽúݸɳº½Í‚!Vü ªæ…Qv^ LÁ ;…MÑ +ÚtýÕÐ`c‹ý a[B† Ôrœ{a s5‚ÕN½ÉSHüß-XVv@ï±R뵋 WhþÈ£ éà<ŒísûÄÂÓ%¢`IgYÇðɺ9ÍBÝÎiGaÔøw]|h…½É·Å_…Å,¬ ûx»…Ž3 ǶË1Y‘"žûç“.jÞ^ØËí˜Ë¥_ø ع o®:8@"eÆ8þ 7ˆÊ§f êë›ë«ÃC}ºlŽ´Q$¼G •€ŽLs–6‹•A4 fð dU·û‡Çë‰3}¦À†²ãG½¬ð‡“îhÃ!šž ¦-/D/²­º"8FÀDs¬B°L²¼ë"n˜YƬdZóTAÞ[xÆJnÖzbWM1¤Á5@»…à(#‰;œ;üÊ µ–hØ?-Âe£¬oÒäLóW¿žûZž}­õ9!ÐÐ@05CÇ]‹dà€$æ,æË͆O‚I›ާHç|²ìÔZ,fÍ'õ.—~=lª‰…ùóe»©x1½æ[ÚqÞÀÚö lui¿j¦Ù$ìohABãù4lvŽ;WàMc2’ÅŒU\[„‡„}c.ÃÓ³Y,!Í%.$kháÐ5 £IYSÐdÏ„-ªp¥´g æ /#]ôÚ–hªE’Tµ+t'‚ t0¹ê2Õ­ªóUè0õ‡Xr‚꼘§`,²–Ú-qSlp§»l8oNw¬ÕÝ̉ƒÞg´×ÍoG õ†]úÓšfÝìþ›Ž{ótžÏÚC£OzÀ"(ÀŠÑe;®éËÍm~•¿Õdî1³áðPž)±Òôàf\…[צQÜýèKfÿÐ òfÐ/çnˆiJ›èÝÓÑ« .EX$A¡÷›”ù¹'4E¬ôs›{ LdîL«yš}/@_|Zxö)õª«^ÿ¬*qÜMFÈåÒîÆvÔ&‹¿ß©_lL­^cCkª'ÖTÿ·YSWÃ>pV6Çà‰ê´€÷q60F[0"#ëFª0×ö‰áÞ$€ñ,>Ö%0qpxžüʉ8Ÿ•€9M”ö°‹‚G|ò—¢Õ›†éæzÊÉåÛ³&Ò_Û$þI2Õsÿàé³%ö^ç“•Ç·®á‰¨Yo̞ΰNq^ÎÂÄÝVgÄO®VÌ ZúÅJ¡t+¥ÍRV:X§°kLÕì“X{GCýÔ†½o0“ã²ùƒ<úÏ‚'+Ôˆs³øœ¸å¢ Ɔýd(,M}ÿQjAZ>B¤ÚÈB:±ãòðP$<„v“ñOí©¢8Ë5+¹æ'ÑÓ=yzÁ§t°Ý°Çw?dgGD›Û#n[7Ë’(L=jYŽ˜ù†±®U;xAÛû9¹SRƒIí<‰æ…¢ÛŠÒa”t nJÆãe%ãJ`“¤´‚æäÊ C<Õ ÅS.,ß[,+ …F•Tå¡Le$ãtqŸ"Ma¼Tê]ü³°›ÏÒOþQÖ_®&Îc¿“ƒœåèc¿ü¶Ià>Aç¬ùÞP8‘mOv\üTìðЖs¶y3Ók×Õ»mÂn#,98`­jÙ#’4JOÅ‚ŒÃ_ªpÑ­($û–9çðRÈù:€Ë޺䒿ƙÿ:ŽJ’Ü¢ILÝ7Š[ñ8Þ( ]wÆ90Üv™žçÉb«å(­øÚã[¬_w€ÀÀ_v‹·5*ËéáÎÎÝÝ]ÀEL œ/ë:ä=H®{¯ÂmH{€ew…«V®ò¤b,‚}¥ïpïá¡Þì } fØØ²ÍjÍÛÎ¥³‡|c0ú¼Çé"@OÜ!6ù¨ßJ…ä÷?¥a¡Si—çÔ‚éQ%õó<ּIÅ(&$…ög±"…þ#TùŸëlîioDðh¡êérÕ½ªjïQÏT=1¬-KĆÓô}„ ¦“G¾Ê²þ ,‘)M§3Õ‡ñ-ë ðWv¯aé„0&! KícÅÔLû§eC´ 7{&Z\Ø+ØPÓÉVÆ‚äaíK C•ÓŠ3t…nqE¸gÔz7O›c£'}±7öŒEæYhcÀy¹‘k³^o–W1rú Ň~¤vÙü‘¦4Ar5OJ3Ä"}H³Ò8Yž´fÝÿòÓ3’Œéå‘þ÷ܹæ8?IÇÇež Ž[T3Ä@œa–õL²®Ãrô“&è¿ë¨9нxâ§Ö}Vln 8½¸l:l ÉÛ[œ*“{ê qVÑ ÓÝ]Ôm†ËœƒT9m£Ní ´ð—J`ì¸?…o4¼Ús”®ÍyšÑW)bàJb–~< ·€€ o^3ÜLP1#WÍê3™rÃýECGÜß8*AÀjª£Û,¹…n·ÔÜŒ:`´Ó&‰3$¶ˆÁF%TŽÕrÏ?ÄÐb¦ uö æÂuØ]8÷+w¦ÐÁ¥½,Iý³+7N^tß#‘u‡‹KÚV­Ó}©™iô î"¢hç€ †–òÛçWíSUäN,t1V…A”žÁ&ÿl ŽPcÈž&Êç 5~@Ü gI7œMH0Ã×V$_¿Á:!‚|Qï à{±ìi`+"¯…ŒÂ;ðm…k;“ŠPös!Â'Ø1rQaÙ“NGo>¶ÀÃeóPŠ`Q8ys±ÙËAºnŠ}%cÈó½zì1Péh*çMWò<„R^ƒá ŽVaïÞ™ÌJá)RŠ`5.|A¤ÎÅßNl⮀׵y)‘D¼ñì»HlÛ[wÊ4ç/û|ƒ(,Žž+>mõŠ€ þDýY~“yõóˆ†ûu&ûÿ“„“Ê„ Ý [¸?K ªƒ¼­úC£k]– ›e¥ EØ2K>-u§eð¨7ï®ÞŸiuÿnÀÁ;4xK¯#’…±9¬ g€Dúål}‰S\LïGÁŠmVÈ}t÷Ç‘°®%ÜÊ­)šçxãÈ£Aß5ɲñlJ[N'š€Q/jK‘¢iV/m^9L{÷ºÇµ ˆžé6%èL³ƒø^ìvU‡i÷g½È“d/1¤ÕÛÿûžQlUnž‚C<ì2,9$¯êîÎϼ÷üßÇ’¥¨éó=½Õu½H­‡‡¦Z.ž±Fe9o²ç”ve䎭§ÛÉ6&Bõ@> ¸Í¢œW-ÐZ±ïqh`!Ò/-,¢^Ö6w„êJxïÄg¤aZ‰ ìº2£!|5·ÅêkÇH;B~4ý#Ò•Zñ³¹é[^å2%½ˆÞåå*ó÷ªØÆ Nc³<tíšµOp“p&³ÏñV2{EZQ• å}‡÷e±È}v¼f4Fñ?ÀÂp’Ãà(ïâo+ïñ_ÇÙEëf‚І~ÁN³þÐÄ3ÌÿÚ„:õûs–mÜû$ΔÍãÎÛ=xVÊk™ÃCª:µú =†oU~WÛÝaõÊY®:ö@ö–Úê¨Ü€þÌ}…›·ç¯yöÜß¶IÔÍÉ$›ïp§Êg ­Á…š éœGŒ6‡>õïøCkXFÈ›tô?|Hb¼»OW"ÿÛ((6¦™<ª翤äº0¯žžîM{ÃÖ0Ëß@¼`“±»x0÷‘¥·œrm¯+c ÉæiW1[ĦAJö˜3¼kÖíÌ‹}ƒ·9=9…_;Úþþ 3œN6.LgÎÉ©3@MŽ™Zˆ04®(Ü`<Ÿ~/žÂõÂ癈ÏPN¨îÈߢ:·7\`ü&gçä<]µAHëQbÙ?~œú¿tÔŽ‹“:tksÞéIJ¡ + ç­ Ä“ ûDŠÓö7x³Î¤ûšT1‰Z]>EWŒ“Þ±B'·g‹ƒø”Ys¢u½óö†3>¢Â¢`tçSÈ>Ü'Qú1„cå͌Ĺ£îÇV\t"}íQ:¡sE}K}ðôù ÷ëRÆ}Ï«ŸÛ>ò6Á©†mèÜfïp¡x*ËÝe–Y>Q-ò0c§ à­ó4ÆUO‘)£¾ ç^¢f©%[!s‡½Élóh<éœÎåùOçM ã-bRqÖôÔñR ©¼=×a;l±—œ2ÿÆzˆ}QvwâùApà?ÝÛ_÷¬ n®±@ÄÐ0Ïùól}ÁtÒp2›žZ.k^ÈÆÜTÙþ Û6RǹBt–8 !§Ô}‚ÁlqŽž/„ßFLQj·ÀwkiRštbÅíW÷L7»‡¡^¾0E3ë9â°E–[S³±ô15oØ“ÚíF´[…ã¢U ãÍÅ5î›§aÒóŸO ¨­Šˆ® ÕÖôbŒxÁb§¨"“Ø ëí– ŒI÷ölÙ†¡ £ýVH)`Ù3« ‡Ñôf†=Í ¸¼‹<‚œH=Ee"8·ß ãepªPß]Tp¬M|ÑLQXfýp¾ÝðØÞÑKèüÜf”â¦0\ø[ˆ›¢NÚöÏgy6Bg78¾§õc´¨"èU` ˜Êý¨Æ3¤¦Ð„K±i‹)v{zw´ÝÀél!Ñ3™ ~ &|¹í¬Oq:W¤Ihøa–¸/æmñÚã®aî¶~¦÷Mر¨†N:•$=G§éþ.-½ë ¦Þ«˜·…Æg R,e®s´Ÿ Vˆ¸¦iZP 0„ƒãâ r^MÄÀP#4*àˆ˜‰dÎ8• e (¢ˆ¡ ž¼BÁ‹ìÃ[0˜Lã\iâéHí ÕÙ¶œI¦×Hƒ¸ö;œCˆ?c¯o ®ÿb˜ý~¡q¼»0kOŸHVèà ɵ›Æú^Z÷¤p¡tíQ,aNnZ~:7„X5ϸWK“5™Oš)øï¦RØ%v pð<¬íìjxöü`ú,ñfs &ÌlžøYô…п4ü*eÄ«‘¥JåÖ‹H,¬äžìu¤&®.ëÌ’$¦³…†¶Â¢K¾Q¦ÍÙÉYó´óL‚ -}¹”É{ÃAg‡‡(U…Ì£Ò¾¹CT"ùC˜Ço¿×ß2P^\Aa8F,cI0Á 8½ãúIïw~¼ò‰ûú‘G_HqC:Ÿd&Í>ðCµÜZÎ~b;³çUqýEÖäøà¾·Òœ†²sü7·!©nµ°33|sìÂ>MãnyÚ¢{¨È˜i×M%ã'Ó·sıй.¼,ë(êÃJwô1‹Zq1E° E©°„ÿçYOà$èKëvŠ=*¶1ð›N É¼øKâ? v9éùb0Ò‚õñzŽÑ1x(5]æ© ƒ²þ¶/í©O6}Ûwg'§ˆÝ8Ãþ*ý„ ¹J™™¹VZä Ì‹¬LL3œØêǬ¨ß$[º·ÚÂFÕÿ &i–Æ÷|£(¹zÌòkºÕTù%Ø2Õtú'wqêzŒH÷ø9Jsœ]›vp{È6áà`y2ñú¤ëMwÑò†@ k˜G4EÜþÔ«ú³ºa±Wk‰˜ž Ãj4Åú9pžóþX‚×Q>LêX/À¼,tó¦H/%¸ê´™ïíOwØÒµœžºÉÀغ¨£ÞŸÐÄÚnÕÓF­vo°cˆÍlÉíS_6aê÷‰\TÃ’JŠ“<äE$Oeœ‰*ôXØ 5nŒÏU{» פ¡ƒÇ[@aúYú¸´2’býz¡( ú–ª pBƒì2µ Õ0C·ýÐE3Þ01‰I ¥÷t èþ2“Ȭ$v€(d™$ [JhrÀB4ã3Õ©`˜gI¢mÈïýè÷ž7,¨ÁþòBã€L_jéËý ˜X³·³|=oNYúš¥ç{3sZ«ÐïßFÖø…ƒ“HÚx²Ò±el¡Çö¸•\úWµ‰É…ÊÇ»pÇVþ«ìþŸ·YÂÉù2e@¸Û4èz×Á”þIû÷ôOIÿLð)î ûB¯¿6ýŽvàðSÿSœå¡ö£¤ÌÒÖ €÷½qö¢€ª=cTµEÞ›‡÷$—¬â]‹ÔF»å|²Ø} ø£hÄyrßmì ùÍSš­äB1žû^ðr!ôù5®Ó%”Ì)¿?›L -m¶ úªPð’–=È”¾¸¸p2ÝÀ²BWAÈ ÙÈ:c†:Ú–E<µ5.-þ˜N%¡‚iP‹j€FŸ;8Ž+Ba}z³`ÁB¤[$\sžtè¤9~›†Ç¦3Ÿpí#7tUâeÊYuÞŽÊw³Ägk¬WD[ªÖ´­Ã‘Ä«À¿˜•Ðqüë‡;ZF2—»&=šZa2›@ xîØK×øÛ­øÜ†o1DÝ î.%{~B¬¡Á,Ì”4þèœcÙhóM\ 2,„’' óZ.2 ëé&ÌHáòê¾óÓà9É5 ^b@iWŸÈPjF™qÚ©ØC—ªr™KvÇ¥lõ§í—OwøsðŒ´ 8ŠÆivÇ0µ'oH™8‰‡Oþm¾~Ó9í4üó§ÍÓ· ÿõŸEU¸ì¼k^¾oî=1Økc…ÆsÇÎR›±· !±C”½>žAš¢ãxmCßV+(½FΜ+œ™‚¤vø£8²0.J:f’™:÷ ÜÛ$†Ý9 <ôGðg4ÄÒÏðýFzP¿M€Bå¹,78`Öø3º›”;W@ê×–ù°¹€«“é‡ËÎþ¤qìƒ}aÁÐEÿwoŸÆpòwxʶýó…Ùô@žq5*’´1¿­ö€0»¶Žß{¦ú†t©C’À¸ëìgð=gÃ0FÞK:Ƨ}œæÇé†u_~`ÆÞ3¶rð`wE.øR9G’\ÑKvv8ÉÞ¬Lpú³&dÀ[Td~´´¼*Ú‹åËù4š„Si̱?"ûLë5ØpR¤ ëT/ÂáüœgÞ7Ð Ð|5yØãU /ºföÿÒqDRKLH‘<&K-þ¹ˆnð­e aµIQ½-Ìd“ßß\ýzqõîäøÊ$áÐß2ÂèZqö¿ŸüŠ›E©Âÿ¿îÞïîýßLÊœ…>»±»o›\QÜߪ‡%,ÃRp|Y–d$J%až“hJ+–²Ø¸IPf2›N£ÒÄé‡E6˜GßÀ²agß«çÏixQ!êHØGM®CqNº^3C9D=‚P`X­’8ÓÀ[¬8îûWYc’ç±Ô]ݰ5êÅd„cX¯9JÜ mº¦Ãþ%S/6”’&ûP2OâÜ]XA±K0•&^xœÓò®³£ìe¹«,ü‡ÏÐô\$ᧈÞ$ûGãa—ä“,šNú\¼û)8þðŒ~²pË,§¼x`c©J®ßZb›"ÄXkOÇæäxªð7˜YxÇç Þ`f?rC™¬}UXZ·j³2Þ §aPó©årõp– ÖIY£{ÞkŽi~HáÓÞ¥E³¿ Ix1Ä­ÊH÷«Jô½¬Ýu†:K àÏ)oJkD¬î=<”ð¸õól hXáZ!žºô(Q<<-eØL¬(<À@pâö>£ÇŸ$Ë÷œºfÛIK›ÚÛz÷þL]ÿ–óOœŒî˜f¦‹ìN%+½¿Øêœ_¿7UðÓy–¹ö¿üŠö|žn:E,rßZ=þömÆ¿ù:›Dg1è|!dàÐ9xÿešQ®>c&AÌ$¬…7Ÿ9Þ¸„›ßÞÃCórS8ÁÃÄzãâ¢.ˆ¸ ÜPäÙ­ aeÕ«TêG$PGýG8ò…槈Á ­¶D`<ùQ˜Ú%‰[võ‘GsŒCrÀ–…Ô¨¾n£¤â“¬jÞL¢”gˆ6  XD€‹eÒäT$3™¾3ðs…ö”­oüÛ' –¡÷D:}sà 8"ÁE×@»ÊIT9*ºø»Pæt”SãÞÒûS—õRþ°XOMá\¡¿iÄjôGGß(¼çÙõ5¢wà­}¾â\®a*ÂÌh¦líålÆUЋ«Š=ŒÄžg]PŽÃ²˜ gt ¥Ù˜dš]´—ó…d~Ë›0N€“ú’m勿“I'¡º‡å‘ ÐR )G[ô£‹,$®»:ßlDŽ›£·P³'5×+FÇqÄ%Ë tðE²-ý¦Ymñ-TŽ*cµ0 ’;†Ê*6ƒ£ §Â‰¹Î¿ a)ì¦aþ ºx9³©Ü‡f‚#ÝÎæX²Ú>u#Á|À3ÕhØ[t—am- B®y¾"A“Ô\=‰…Ëësy›•ÂÒ—®Gñ9Ÿm:Ὸ)+I÷;Mò!½%ì{ ©¼„àÓxL)T|>p¸‚Ñ«ß)$¯|^jê.gƒ°´•U´jfœÕ*_»ì¥h%ÓçpAÉsOÙå]GX¿TH):pI­JæÍaÎ}ÖM²­ùXÄcðµÜ+ó ѼU¤SŽKd‚eÑn”»2&‰ ž© Ò«´bÃ3ð³$#@Ó˜CX¶9¼(°þ/×Á·5p¿ƒro,U&Šk~|SØJëh_ˆ%¯ùÚê–°nóx¥Wô~ÍãW×¼³‡4҇ÕŽû½nñ¯# 5Oôvž+tÏá!ž#èQþ;NÃWtF`øQŽ(7¦Àz‰(ôqãÀ„¡É)lrÖE„F-‰E{*dN|ÛD[¬æeL“s:*̼Çëœ* ;ñÅ Ëö–ù£j}¯qE'ôn´6h‘ û É­6d4å]»ÊVãÈ|tëQiž½ÓÔUW*jd+ôCûí…î ¾ÿ³ØBb Q+«:dZEÌFÔ°[ܽеs!§WÔf§á70pâ4NÔ3iƆ˜ƒ–pqùJ}´Úz¡utà¡…gÏOÀôµþ; t,‘¼CÊ?µ]·JX”˜ÐùŸ¸¹ÍÆ_a[n _ÜPÎìǬÆ,}›[>N‡Àj1_§":k;ivýÐ>¿à@ô ä¾ˆ!A°Pí¥Å"V‘h;/Œ w‹`ì½\çP¦5ËT¬À󨄬mø¡záÞRgî*)ÎItEôš‹JlÍð.ôg¹²!Ñä|áA8° —oñ&ŸE7\Ç@3¸ƒ¥>Z–Ó>/0‡®© (wS¸{"(q:”9M¤¸W3㱈W@o$á+g zèâ¬Q?,`±¯8…x=ªµOòÎH¥2GìwSMIɵ֯YŸ47úóoãÒ¿ˆÊlZ6¯c¤+°[.Þ~P”–Lðo²…SM:‰Þ Ü^ÄrX)᮫ÐÜï?ÕP©¢!^ˆn–ŠÚÓôöu([+èqÄýP—ö tcØ{¶û¢5¤Á¼øi®0Kb1ÙÉmAO7ÌÎfQ|ê?†XÌ"?!LiîÝòßÖ5¼ÁÛó› §à’ì½€‘á`qüqq½uÜ-»¥ª Í‹+ºã…ØE^v</Ò°+K÷˜e¤+íönGURZ1Á¸Ôˆ_±ÿUoš‰:Íîh•“>+í:Æ}âß~Y1ã9Æõ\HÕÆÜñÕÙË,N*†Û›¼j㛉±þ"åÐ (K¼y•Ê5ÍR6VFÌPÆZÅ×ð«¨Î•ðCÂE–Ó>x3š§1iøÒÇyVLÔ?dȘ}õ9Ë_ZŸæ©MB9tÚ»;ÉL& °EÒæ$ îâ~6a„LkhàÇÍh‡$ÁŠ RÐ^Îè¹½%9rÌa‹¯ªáÀÇe~‡³Ã]ÔÝ8~ï¢ïW cÁ‰Ä—ÿ²È†±ÜV:®üéîY^Š‚¯FdíÕYu Tñbhî2'¶=¶ ñ Á€ÍAŠù"ˆÝ]çÐzüTö¹^XT:R4YQ’!õ´Á©]9°ø(cö^’‰Kó¡$äñɚ̎ý·žº_:ø_2‘þq—Á&S—QNaE‚è?{Nÿ.xáøj …E(z7§ù¾ éµ£Ù$L Ç‚ìƒxá‰ô²qoJFÀIö¼Ý±]‹3°×†¬KÏM˜é¦JòŒ¨¡Ìð8‘Ÿ6Un£ð 0ƒPKz¿4°ý§a΂¾ðø4|¹È‹ÄÀº¡P;“zœÃ;€SȈ 7ˆ×¡c„ŸTÇ£AÞY×^ŠÄ`XÉ%˜ß$k_’F‘iõ2Àðö?2x3åXÀ2ûùOËŸÿt!¯õcçh˜p®±'žRMKì|ƒøBÝ©¯¥·™Jzœ¦ Yߘ]=ÎöØM9t5( à·›«­tRD‚Yœ±6Kâi.úêØ"¤þ猃€$dž‰)lƒ‰|kÅå,  ô À+Zk—é+jî 7ÍbÞ”ëŠþéêžÏ"ÍÇiÁÈyŒ"¢yÓ<ºe›óy"û‰UOþ© *¥þ䤽phÑOC‹s^b+æ,ûd¿EF²Ø¸VNm忍a¹ª’w%ÂK>‘}&’e¶ •'üÉÄœ"صG:Cº¹Ð,ÃÃëCód­EÍ“NKk'ÒíVS(º NíêXÒ™÷7¯–RÐ{£í÷oMSUS–ödÇ360ª×[ª÷k «_â]ݸ3ušÀó@gòû-§}AÉlÃ$SÂT‘-•qm¬jÝ<#iùîîŽUñ꛿¹øUøýîù² $õ/4XÃgÝ&œhÝR®ÙŽÞ0°@’Ä»<Gi‹¦ólwôþ#ήý6§Ý ½7IÄâ£|²˜øÉy@œKWøŠ¶Šç:qMüΚi‡â¥ŸUÅû‹Å×Aü­¤Ð7aöî«L‹¼éjæï±“·)ö;¾©¦0ñ¶XCo‘vÖ,u­Ùwhd‹ß¬„¥f¥Ct3Û&o0Æ5£¾Ô/„‹'þM C;…“VÉŸ¿‘g^¿y~?E`§ /\¸}Ùv8îÏ­_ÅžI¦¾u–<> ¼³/Ý#X­0ì–öc *|¾çÛBCT2]"‹ØCj_Ñ>b›Ïû+,åžû“˜ôªÌB1ÜWþt@³•ù1Nxi‚ ÷¡üáò#ùtdít6/ÓæMÌ6 ³ÆÚ®/†%ñQ @,qXÕvâÛ4͵á„ôÌVl×o·øÝ: gÜdd-Nw£H°šK²Žo”á†+­ ‹L]`•‘ Êçi­GkYJ.êlqŽx¼Ôoƒ0NÍaüAÈ!5߯XJO;¹žÚÍ¥¬+p@C(›¥Ý™Ð™¶HÎP‚zl¡»•2«G"àµÆ¿ÛérÓnžâJÂÏóPŽº¸ÜK8µ›ü{ò,û“þ ŸZ´ý$߆ys!ô’ƒz:ÈÅ<ö˜]òÉþ“Å•ãB3)iüêgt¬h B6SŸëæÑÑ Î¶Fa‰¡ÆµsQäŸ"»Ä,¼ÛlªUh·Š K ·Œüݹ^{ÿ íVX5ÿ¼Ò×VÔÂ^0oÿsCQ™õ>ä°Ykƒ,ðø.î—£ÇÌÓ>Šâá¨|Œ2œ ÛYää€'µÄÝhƪè0½°7â½Ñ@Ôz5P:èCä3#Ù´aâÒ2 f« ú[Næÿ_w– V‡‹†bÈ…XQÛ@³„®FÇ UíK 'rþí¬ülæ{zé9ŒzïAa–ÌÃy«›ÐÖÍöë–¨õðQ­ƒÿµ̸óoàƒ?º‹ò~¶fÃ^QKDç’6©c3ðñË”“§v9>kïé’ ,U"Ÿ;ùqÖ ¢©t¬>Òi‡3ît¥D“ºdt3Þæ×ÔÕðX­?mø§ÿò/ ÿ‡ð–4‰öœNØ›^"Ç? &Áï>é&s¡_ø*“©‚4q¶ˆÇ«&ð̳Ð0Ž1¶M]Î/á)gÂYú#ñv‰åFŒÂJ¶fžœ00í%¢9lüòíÅŸ¾Ñ"½Ý<ãÜþ“eqîá±<]e„¯éy:6þ)Šó¤ö-”²óøßéÕß CâËK#ls¯ÙáJÇö öñ^aŽ'yÿG8ålUh< L”h0ÈDêcß-ç#˜È­*ðŒýr¦½9dP8‹$—‰7`ñH<2±7µéûËÑ Ž A»ZŽ®Ÿß+XKˆµš ¢-^leFó­ëÛîòÑA¶y­cYöpŸxùöü¦Æêà…&[•iÍu=v•…pÍÄ; i-·Æ4  øÁ Vä-EöýõC’|±5ŒÒÙæhD IÜŽá•D—ïv´T¼à(à>ÑKl!ÀŒ«Êt|ø&é”Û5Ö@ᬄ¨ÿ,¼„²ÛVN³8m2—FÚ}‰‡…ĸo¼N=#Ïž3²Í¹Üáåiššiä?ï­&BP{®‚ßxÓù_ü#ÒÇÿÒúEÃ(Ú\ÃæÉPÎ}ÀT&Ÿ  ^+KYœ>t4éšÏU¹ »R@#XNÜS³ÀR:5\h…±ò|Ž­“E‚éçnÑØzNX¡3Ѭÿ L³t>A ØÖHn`ol/RÝ\ ¦†Lo©j? ÒëÉÓ=oÏÄWjœûnýŸŽ¯>œÿúîí¹ÿŸi†dúýæçwôý?Ù‹;Ôåž^zýþ…oL„kþ¿üG ÍÝüÿ¸ü°À;}wÝ~×9?û•ëú/YýW­j?ËLôcª©À½dƒ;¿x{y—™Û v"îþ5vÚ.‚@IMý! E‹Ì£"ê¶ŠC|Ù\rÍÐOƒ{OV ‚{¾¸® äç,§CñgxŽº8‡tš]9®\©eõ+v†â…YK¥¨ßIh­éúպߢÇo=©jL¿_IJ…Ú´‹ï'‰ôÈ® ÷ ZÖéÃ}ÄAŸY>¶VÎ_¬—y©öÏõ÷ªº>ã|¿{WQÖß;‰vÅ8 ФÌÊ`Vl6õ®²aó,&%«ì“tȘ#áVÕ ZÉ‚Õã>8X ©.V­¯ÛÑìzU ©J»Æò¯Px4l:,?‡‘W;=ÎÒ¡CšcÛ&6—¼2±¾‰nÁ·•q2<ÌK­!>o¾Á^Óìi^“hÕTÐXC´ëî®ÿt¬Ü Ú£ûó,â”Fƒ,éG‚þa#ãPùá!j§kÕ‹%Iàï›ÓŒÆnEë6–*%2Ž-O–Á¢kRááE^ rBÙ<ŒWDK‡š¤ì‰R¤öxmªãRm ³ÌæÑ”Ë(ލ=-ã §áfÿ–ÈHèی֥ u]r ‰1iên¥š$1 ÎrPtp¾âÆßA^¿fÂc° ÏŽ}Zȵ>NÏÉÉþÍÓpÊ1ü•ÞåìÐtM¸2Ç·¤µ/iTG=Îñ™ðÇñaer?åó4…KjvÙ™mö™x mÝ6òD²Š &'?ªé5Á‡´Ó¬ºŽ2l ÉZi¨£Éö­l ‰oÐû—×çMf¸8ùþÁ‹àÉîƒgà…Ä?ñAÔsf™Ý€~£ý[©B,CZXõwC†#¬*ÚŠ½-‰>äuþ¶ëÏ ‚Àp ó[\.üE ôÌ©Ë!Ä €V“±`þnr,„x–Äfx‚±QÅ)`"H¹¢ÝDâ•k¡‘`óó¨‚yÆìÃvˆ:¤+,HŸÒ¬åüúØñxtKÞ[žÒºZÅ(áŠffwe‹­ T1c+:’Áu¬û}÷¿á,í½`›êþ‚8bKøgЦä"T[L¥¢–ŒY{¡†r=šIZØð#²QopHm' à |ð' -\Ïù˜=ªý¡‰O¦S.69aUŒ‚šo‹;`^CöºÐ+ÒÆþ»[0B°a€ªå·ieú›ä¯mÔÅWg'×8²Hl~ñdÉ* Ê;/µ¾‰ QÙiõ˜G"Ò¨s…8Ýô>ªnT–.=„b%š ¦5ñ| Ø Ž6^‚êupÇ8ц4,¼5›ÄÆ£½q6;ó´ÇÇþÁ“eQlÉLجЛå^¥SËp¬ãĦ3Û©y·â[¬Û@ 4;5ªIâ=øÙ6Ùª’d½±j$3îæx!/ârm‘‹íÌRüsMÝùÿå=‰”ÿõŠ~ÛÚÞùʶ,×<››d Õ!’¼4¡ïËÁ7;H^—=ÅAÙµðþI|LëÎÝK:{âZ=þü ¶&æ%ɦw:sik^Ø”/±žjjtéðkBêC¡ fëîµG†c—9ì+@y‹‘b9xcÆ ³!Pµ*[˜%}‘; 0'‡|ÑÏðNÅ!ÄÉ.|ê0\Ò‡ _Io1Œ6ߦÞFå1©ÎÍË6Ó®‚£Ó"Ô“m¿©÷§/Vç–WuÓ¨¬­,!±‚Hdqg%Sƒ N÷­†a*˜ ¶I`lW½(£&Þ9ÂQ!†õš®\hØ¡9ê-,Æ…0nŸ·Bi¤_Ÿ• þà¾FÃ÷•‹N^ô™·È4obùr¤ÂFřڠ喉S« U-;óXÎcT «i b¦.ã{%ÀµêMµ¡0Pó7ÛâH ]ƒ÷·óÀ¿ž¥Ù'~“ß(ƒæ‰eÜ ž¬Æx ¿i.`Æ‹$Ä8à…âBf²¸÷)|™¡"­¢Dœp#lmâO©!ëIj3ëÓªÊÜ…ó/ç õ¿-K&ºŽf‰YOý'Ï‚…n“ð{ܯö"”¢}ûDØ'ڷϪ)²"ñŽûž!K®Q# þ̼å¬Ý›ÒY”ø?¬ºÜŒ9Kºåö ¶Ä7íúÏVÏ)[ÈQ¶»X½ŒÕ4«äW —.µ‹]²ÈØ3ŒÓpÞÊÕZ¸t¦5ÅU•a¡ü sùôòì½^âÃ:)ϺÔzÉ:I©,Q¼“ØàóŸGj Þx¯g¸•9€¯-J¬UW¦‹zà3ÎFð\ Š7I»÷jHZšŠwzqibë³Ü°Û ؽÈrm ¸·y†nK©‡ y‹•ðš;:÷>ªÑ;v£ ÊÜʤ]þ#ç4~Ä“¿H‡‡rË£ÏSÜ 4Ä/ø­B¾}£{{ÝöŸûl]Ì“wF‰å`ÈsRòõe¤ÚÏArŠæQ¾Õ)tm!à€•mä³ó‰ ¤×õKúƒœÙo`Ôy+¢Q8àÒS¸˜VÎ$)²®oœŽr-.„wÓ(]ŸÑ 'ÓÌ‘ÐA;^ÌÉmÓ¬cÒÜôo¢$åLà݃•–~-Ô\»9¿B<*gPq…ãÓoNÛüKMÕ êÆSÞÀu{Ö|³·‡¶1dgžÙb.wÞ‘àΧ4+Œ‚ƒ‚¶i—=†4Y—ƒ ,arj˜5‹_1è> ïÕp´¨"›Ž8#<´S9” pC½\»ÍÂéš·¼ÈÐs;Æ$’y '1}a³4VXEj0‘å}ߨ!Û 'oeÓTéã.2ðv°s°Ä–  ›™"Âì+Œ{]®CCgc˜Éd`û¢ýÈ¡2Ú MA*꺅ü­÷¢ÞIUç­|˜›Ííþ¸-hÏv—'÷;¤™2þ œÀ_~y}Ünпú÷øŸY¸§OŸÉX^&äY¨Ùæi2n“÷ðƒhL=ÉŽ(*åòq^Ä*áÙa„¥gm²êJ)ü#÷Ü7°í¼yE-xê<]ÚP7ä¤ã¿e$ 7aú1V¢†íÓ„ö{*ëàœ?X‰¿ u€ú⼇ç×Sÿèÿ'õ_þgܼõŸÀ¨×øO¼¥oÿÑóø;œUæ N(µÆÓmëD2jÅ›,Í|ÚwèO+Ž‚Y3ŸÏÆó2ú6e¦á¸ÿ¢ùS˜Ä}¨%$ó#®j@ÝñÄkˆõú­Ü…î¡`Çè—H?]L*À> O<<´\vö’èž·«•Ïò>ó,Åt§~‰Ð†°†…Çv S,ç‹n†4ÔeÜwK3VHd×»G æ ïí‚ðW!“9.ÂmV¨a¹ù 5g»á›xöâÁ”ƒKãcfE™IÄ ^j<ï4wÈÏŽg©Â¿,–lÓÙRDÍ÷Q“ü&ú'ÏV¬P§XM®w~gbY6™Cµ°ìôŠÓ&0i è¤(Hköõxý= DRj"Ó9mžM¶²pÄ'IX6ôàsiµ5¶Ä ák«GcЦì=Ü [:ïO$þ ºôÁÁ“/ÙÚªX gb\_½×p¬š‰áðëßú~Ç©è\§†y$‘í§•W;¨èh÷k:òpégÉzb‚‹¾89·؈„ÖrÛŽoplBzP‡ýœq0£fÒÛ…ù„-nj¤_[ƒ>~ÞÜáÔ>;n¶ã$c†C$ ,EB¶Ãd"%\ùë$ _Š¢]¡’°»œªö¸îõaµô–#ÿ˜Ö? ã ÂŽ?†£~Ñ’?›‹¡í³+0¾ ýâ -é5W›\>èn½LñàlñZTå'?Œ'"Ó€{Á¤`d Kdgél;N˜x&%[è|Uà"ÏIÕ|ŒTmgªT¹1uÍøµÀËì œFQš„c•ãè1ÀÚzo›n€ç7‚3|]ð×Ì@n^ÍÆã/ú³ ûÀcú Õav»ù~Cÿ0±Þ؆± %¹8´Ë©5 ï ÷9È*ZQ오¢~J½Põ¸SM4¯rXã2v×*ÐsœK –Ø¿†Âèh*ëðtá¼q›À}5‹KƒÌ 0r+ ÁZ¯ÛˆŽ`ÖÑ1Ðã¿­> -¾AŠb;yßFÖüþîÞKÿ€‘–‡â¼¶¬~Vá]n­gªÉo[rÒ¶OuC7;Ñ’oÒàܰ å@ž°‹erØO Ju/GØJÌäV|dyžÝ¬Î )ôdoë=Ç{s.%Mpªgþk˜ãIŸ"úqOjçâúªƒ5tÇþÁËeqv°U´kV¾o:qL»nè ûçËŽI4Ùâ=ÞX(ø ê´·= ¨ÈŠbœ¯Rr Wø¡$ Î?.”ÃL W§j` SÅ×G[Ë‘q2A•r}­úã#d.²³©?‘Ï­0¾ß fYY†waÐ 7ìn XxìûÁ E„ ¸F[úí©ÿ¿>v” »᮵¤~8=óQòöÀ¦\­ÉT :@®Í?e¥4œð‡VŠHÓD=ÖßÀ¾ÑywÜ–´©Ýàùž&U/²\S͆ZCV\ùm©ê…Ío’°€Þ1táòôRqU·EÍb¶N½-´¥!S é()¦Øjxg´ñ…»¶%¨†pÖü<á+á›b½ç“cgÞ̨@´ò9t¦—fÅ<eÙ7FæzóÛ‹1¼*e UweÖm;Ó“ ™LI5×?Uˆ°`dOI¥ÑгˆlíÎ÷:üOfþÐjÑ@‘ÆÕšÐûçY7Üü,¦ÈU(ï ÉlêÏWèÆ÷ ÿ¥x;î­?‹ yœúïîDƒ÷E;Xk¬´À(®ÁR¸ªº¾ÍÁñ*‹|ÆÌ˵Šã¢òŸX犲Ž>rë|Ô0šüDDÈ*7©ëüxÕì@®žˆB@êVéæE7éJï0KþÇ«*y9µhNB–Àm¿Sävç§·•ÞŒ ÁÝ]¸`s)QÛ\ŠYW}à³gþ¨%T8ªÝ(̇‡ç}ßr’èOæ~ZJ$ ™:L| öËv >SŽ˜'+Ùy*@ l R(…~.üJu€s»‹é%<Å$m:kMƒ`q @ÆM³Â-·Çàhzò, ‘âZ£óyÄJˆò¤MkéGãtVjšÿ&¤ —Œé2Üøhá6Þ,¢<òËÇ1²¬™^bA§x¥éþ;¤ÿ+¦Å‚ïTÓEÚ1•+x$øi ¡¦¢œËøD6lijÎ:0u“¡†wD9³ÙŒ#ªFM9F°~ª™6÷´¥NÄ o„îz ¬ô€üéû[0!"Ü#iÈJ¾%Y«rîB‹Ž{¢ ÍSR{Lag‰T$LžÓi&¤ÏP¬Gä&FIÖ-– f?¢¹XvÓ÷]§AÁü™´Ð$NG÷®5|ó!ÏîMÃU(†+PýdÙ[P¿SAà°~W©Î %qÖ+ßÀtðV­wJŸü§û¸^d «—,è åõ]T;•!¢ß*G3eî`Ü,–¾ÀH-–ÆCú‡Ëm+„‰…´í´ÙÕŪš¢ìÇ©Ã,휒&™×6‚€‰ÛsÎ.ºVÒu+ˆx£Â¬ £…A£¹eµ;üwx¦íÛ­›/ož™;W]¹Hg8Ÿ9d¥Ë¡îÉCz÷ãDÞy­Œôõ¤N“®°Ñàù‡‡¦NX)Uì=Tñ‚¡ îEE@ɧ‰±Xxa©uLñ]q‚¤}k53"8ü†p!²ù2ëZÂEká•_ÇyFjp8‹ ß_ƒ‘|m‰Ÿò[AÁÜ<…0ºì‹®¶™£×—çW\xð…à ˜‘Œ„ÔÍ”¦±Äù[š}Œa;.f|·¹4á¬G¯š÷ƒ´,aí£IËÅß\Þ8}}éã<Ü ñP^¿óÓ¯¿tà‡°¤ƒUX7@?<¤òúþæ«“%4±#â2ΚØu-àGõK6`bѰi83 !FÇi…% ;‡m& ¯Û¤ qqGI_9Ce3V¤K!äsæ‚rÓosV};Q“ûÿ,¢£÷š!·HÅ®ÈopŠ0¢d¦Qü;ãY× ä ÔjŽGÿmÄ|ÅÆUUSsžÖÀȤKô‰^ß>±XxâTž˜Ê×ôè[ÎC§=)FþQÚ¿k¥wøü-veêÎK$!` ÔŽ‹¨Ä|­îŒgŒ“\QhaîÃÛË_üxÅ ÓÏa[Ñ!%~;ÎÊ\OŸÉý´Á) »Å·™4oÂ1‰i•&«¤ÚÜæ7ÇoŽ;—¢ Ž9ì’þ +%†ù²Nî¸èüIâîXž¹¢7Ü«…²Ý‚%WKKY>˜ÄUâȺªí -š#á¡^uâ3¯myCjyƒ®–!¿hF³IH¯ä`ë"ÙB»†Ax?„Ó0e2`K¸)é+“«¶†·aœpŒCXzGœ,ï~šáÚù×u“ýÝ›'—þ ÝDüpF’Hš[ýž•Á0ß8¼ô&Žš§ù‚y繿ÿäéj]\”ŠÓŠòŸ³Y'” œÁ‚H_`ȉ­«÷¶S ç¼P “º3E$ÄÍè‹"ÏÐ$IÂÐæb˧Aéƒãúæòþ5Vïæé‹—K{•Ñ"Ëüå B3êBdM qTG·ºeÒ9”õâóX™ÜjjÂFâqÜk~ ]”ªKNÕÌ:ÝË飿¨XÝpa½X¶bºk3ó ˆÒΠi²Ìº‚ûu)‚ÒøìÆm6¹ÙbÕÙµLü=WSó‘QwE@&'ƒðÛÕ•HVtæU3U®¸Æ€Ã7Y Û õHÕ4¬ëÃû¢–ƒ^gáñ &ÿãã$d_†·•—ªÊE÷½ÈD9ÑšÔ?Å'°Vîªxdv!‰À|1çÃCÞÕÝ]²T¥…wãIÜcÄõiÉfËÉ18æð. öÏÕ¯A9Ì#=ÜBeD\ì"T€€Ò2ó _ Ë»Q=S4}È5K °ž-ÇþV1~b€á`\H^foĘ{_°S{ø?ÍïùÑo¿<ÝÝmž½…Kÿ¥ð| S{50úàý«S’7Ÿ«“Ou¨x Ë5ÒÏN 4ƒàsć­1(šJ%¯WëUÕ®‹µÍº°ŒýeSÿhNg[sw÷ÉÞ³Cè’>·±q¿gï®}öd,‰ 44_ѽ j8Iüwl £ w¼ÅüðèZk³ß7ñæ;èŸÇ˜´N©†ÑLŸe“ÆcµÄH‚SŒw¤i`XeÃöl ¦±Å&È/ÅО$ÀÄ¡Ëè¸ïABGh³Ûeáa! Gªr181|ëÝH‡ð#%Ú—&£A²DŠ…¢ñ°^f½Þ,,, hU#+¹bl˜F¬¶Yꙸ¢æý$aìzÖBâ‚D¥ÿò'eÕ€qºÆÀž ¢ öx&Ž\bX¤xÓTÜJæ9üVŒÔÂñôÐJ‚ÿ*5¦u6¶ nj˜N4”ã €£N_Þ]’ðùbòwšfþY” DCGô­E+§â†8Mç|š±Ëá¨Ç{½ܾQx¥›ëMXWq!¦{Á3˜…!iùe´È²éðA³ê²$ÞÒw×ç¾0ÇìW17µïþè˜J˜ Ø n0é¤D9Ŧ~àêjáö5³sHÔu¿+9DO¹œ´|É,°[^…kxÃ4à^Ý…½™³š¦rÍì÷êÙË%Œ3D‡‡Zvy¨V•²¶ @Š:â˜5yãîÉ£Œ“ã>µ!_.¨ ÎÕÀÅÎÕÏÈþ8­YÛðæQ¹ýmº•nÚ¢Ìgæ­ _ò¹°NÀ†_cô®fn‘”&tÏ`ÄØK¿†î’°§êÞá}µS ë“1bä˜;áŠø47éÐŒ„£-õ·¸Y}BŒ÷^2"¶:”D‰Ço‹õÀ´Y½PYnðŠÌ|·I`ö h_'vCEÙ4Híò]Úë±æ*ÆÇ¸@Ù%E‰Šês7é·!mÜ0ntTGTÆä•Ë`©ðú±7¡ú–®²Gsàsjj“Ä#þêmÍøï¶_K"¦ƒÏå ãÑÃA'ŒÞH៣Q¢dJB2-<Žm ¶d¥jN5Ža ³IWÒTi"°1 b ÇM{Y%‰ýà€—Óó¥¾5È«C§zj'Àx99ÔΞڀ‡ „’ӜŠ^LJw#ÀÛ™ùo>;tïpÏ…öïrKàûKǶgmWt²»•|?Ï(ʼ¯0Ä*xÉŽ€´(Nž½ š’¶ _J$8Kýg'—²P{rNsÁ›M"¡T1vyÆTŠ* ÞÇ¿´ëø=þ–¶¾Ünˆ¯È´7}¤›RÔÝx2ȉ²¯Ù( ÞÖsàÃb¤±;YÁÛr\bÛµI"56×ÞLLJ²Ÿ*½ÉZ‡3 •zWp« ñmò²¸¹Šò¡ÌÂS6a6©WKWè£U@6!†|a‹Ì·3T"¾xQ ¶A­byVAOò–BÄúœ©—e*Ð2¾Û‹hýìhŒ]Ê|˜z—srƒYaHäs„À‹,É ÙlžçОï¹ðG¹ÅðëS£ÂžÉïìmº¡Çþ*ØAÏÀJ´9»5oЕH+X½зóµÙlϱ= Û3„Ó£²'Ÿ¾~&ÐKEú‡-ñÄ­C<Á``‹Â]LZilH;¢Ü…vÕEÕ~ìóÜ誛 Œ†ÓÒ8=*H‹4ait¾äq—†Ø¤ö3ϬõŽˆÕ“¹zS1ÔÎV+dT4-i&gSÙ5 O‰„ +'šH³Xëú²('M”9'æ‡os0þÒK'í¬€·éÿ«¨Å8ݦŠ8WT˜$«UA($е™¹Ä²:1‹~RAí@ËÖ¼›÷;GÜ‚¹AL®D[ 6Þ¯ìäûûèMªø ad†5(ÞôÚŸ…Ž–€Ø!OR} ñËUn1©0ä”ün4ϸjßg:Ó9Œ°ÏÁ*Û*ôë·Y™ü2»Á“UÔÂn`¯8^­/ThNšñÜ!Ñ®k»¹‘(TŒ¢õ°Y‘XAÞLÇÙGþÐ*zq0ž¥AšÈŽu>Ìçœ w–]È€ôË]­Ü&Ýò§cº`Äÿ…(s¾Ö”?Ç1-×¼¨I“Њ­rbŽ|.Å}dÐì;L¸°dêÚX E(p˜M+Xjˆ a&á u*5•ìE’âGT>ó+$K'¯³`›Gײb>r’eäY¿¼Ù\¾½øÓ7‘8&±ª&û»»/‚—²Ñ,B@|èœûWq:»§uÎ6˜;×*AuHlÊÑJV"$Í^?&y¡¬™¾#¤VCꞪAZ-Kˆ×ÉAoìMì…%ûGp´x«/’”G`C~Ä3¤¤YÜß¶©T,"‡Õç¨ìíóB~Ý1®ªŸi¼isB(tÇ_ZX:à{/ æÖYŽÊÉ_ÿ¿I·oU±¯Ï¢˜%3€þìðë>_â”îÖSSG™£:ë~×xý$•^óú?ÑœÆñû!-?ùG·3úÓ¦Ð<6›©Ò®&Ïš×3KKB™æfóŽVê­‚|,âóÒ=_Ý`RÁ»ƒZîûO– {ÚöºìT6– ¿aNÝ€ŒQ™„óŽzPì@}åýØÈ¾5†¢@tsV†?æ-êö3ýÕwtNÓÿ}1Z8 À8¼/>\®™I›Ìýq„èÜãVö‰Ó6š  ¥Àܬq¹OVà*ŽHJŸ s°4<[˜¶œ×gïyg¹¢¿§!éÖa¥1Åm6.ˆ/ן5÷žžžAù1aU÷Þ܆©'˜‰|[#&‡4c„¨šäX&›c¼ë¬u„N!zýÝÝ]Ù¿ØFÉɸ,’±ÎWá2j‹`‡†\«66Bg=qD'qLx]ð•LGXÆ@Æf÷D8èŒa1ÐâãñªD‰ð*crºO]ý‰…ü“ÿ&ïzŸæ´+Çúñ[ó R´0xwXØnÚjBßM©›å²S¼†OêL_è=w#£gšy¡¯nXξd)»™ št¹ (Œ2ÃHè“3óä@u 2¾•[Mnióp—³;‘6S2ôbuuÄM‡"ËÑm`üÎJ½r¶ΠvM§ñä í—†ÒŽäd7‹n0™7:Á¨£9|/x<]Ê_â'õÕ í¸6g¹òÖ™P F ^fô2mmÛ•: É2!:*Pa£æL•Ø8âm˳Y_œ[´÷l{N¿ßr“ÙZIâ8q”g !2î% @Œ9jÉ4î#é2µ¬’ÓmÑûnËô¦ŽsDyƨ‘KJÕn{¥Ž¸EëpÚÔàLI[xy‘o3c,n@;Ë5©Yñl Å‹?|«¹5D> „ÿå“àå‚¡¹SáŸjÚ  ,`y«i0Þ&ãôÚ¼y¿Šzn_8w+äÝú¾ý–K±dÂaJª†’Z‹C@íÅIUx¦ü-‹ÃEmZJ/(\ÛSŒ×ÞþnUs1´¤äÃ6@¯_¡Í¾ˆ+LföãG¡°û¨Ò†_³: Y¸¶u¡ýHf¤ÁŽû´åÜÁ$*ŸZÒçmêíáM/aÇÀAð|aÐpåT(4Lê8¡HóæQçÇ«ÏÂî`0–=ËÄa¢(B‘¡ÿ!+®—xz»1QÂð \šŠõdêð=³}­ü<òñqÚÏ©ïþ4óBþØ:í'Q>Ž’h^áVÿÁ«|Š¤ã£ø¼ºØ i¢tÚe“Püƒ¸žVmmÁtÓ0˜5käEÀ ÂgÖQ¢ŸLÚ do¾‰^îÈ?*‡I«(Š`:Õkü×ÐöJÿ5uôê:·æ­Ñ¬[¹û˜Ãökõ($•àÞßß÷Ÿî-c÷£§ˆ ›ªóŠ Þ±Çצ‚jù©µ€#®épe®‹×±hžÍ htY—n9êãOk çƒÞ§¯ß±FYJûË¥µ[Ë×L¿E*ZI¿dSÚ±²åVIxZXPÓ„/ȶ¬¹NM& À©¨á)žC ǽç[)3œõã jµžks\eÅ€ÅC8.¿÷¸°ßçû0ü~Ã@=qIjïùK ÇÖ*‘L¯I‘„ž27þÍE¦\DߌA<éŽl=þé’…¤gqoŒÄHï(XÞÉûâö»ïÊÛÔ©Û†Aäµøþ;F'Ò›&ì‡hæ)ÑZÓ8éûoÒ ¶ \ï£ds#]܃ŠJûÇþR´LIÒðv_5¾™yŠ»Îk2_ §*&F¬P‹]-¯ÍåUŽ€­(šª@ƒP©†Q‡$)@q˜,>¤D–Ù¤Ž×Ô0®8<¿ ûC±³P|ºJD \›»Å®Ø"ÒP85ÂñOŠÀ—×ÿz!îcø<]e¸¸yó/Íî'^à–m™ZDM;\k}¹R¼0gx)äåKzP‘óY¢·Âq_^7üëÎÛ†ÿ'`{þ‡†º²þI–~Ìfôá"ìÏšø§á_žþØð.ߟ6ü·Ù-²S/òl6½‹Atüã æÊYöÕûVÃï\^QÙN…ƒúçh:šçfèW âa1v‡¨o߃ýMˆ0rç§‘€¿–YÙB[OCiÂ>‡×“˜Ì)0•ùEæ*­BíRõݱÊ37¸ƒ–é"¼ž•D£áà‘ñÐVþ2‹ð1ãBlWèĬ¹ßœ^9é¹èSØ<áÀ­ZYa¸ƒblмLžŸö3Viû9òÿ]šðú¹L{AûŽq–dƒÒ?Uð;:¶RÑ8ò—Ï$🙠‚>FC¤NC¨¯" Îø¡|$I8zìËñÞ±…ñq;ìeMüóØ?!¹¹¤óÏ‘ÿOf8\”²·ŸÏ’Û»q—dèì®?šås“p7ö¿¡.;NËÇ$öâs…hc 4ŽÇ§£xúË‹g© Œ_ßÿ'°ÀÐSÌ. f=&MqòÖI‚ôJ6!‡¶ÝÇyÒN•?&-ëïÂî§ÇþÛ()ôäÙÙSãqGÃè±ÿîñ vEшHâÏŠOþ»D«:/ÑN:AçiüØÅ…y :cüǤ!ÜÒÏ@ÚMé’¶]ÍHc~|աÖÔïǾ~Û®1,ôæ¡\H#ÚîôQ·t~ʨª(*ÁÇÌœfE'th=†:•pä€ä€‡2`ezßLj—œV9óh<édšc,i&Dså5j¾Æl~Œ€¬n1} h–Ê3_EI<¥(F÷›ß<}¢Þ˜žï¿ÊìÒ¦8Gbå˜Ú%z>“ä=>I"|ÀÀÜ™ÞÔÜ£Çô7+÷v÷û×½g‘éü(ýN¨úë81w§ëcÚŽ.fóÇœ<ŒÝ-b¨“$åÁ?ЈœÑ*ŽÆ¤õÆ“Voä”¶¨¢ZôdÿU2×0¤2yÖàkUâ¸OêÝ«<.?™6tæ}Ú%iØìS:Ñ|Bûl5Ó;SDMæœW:Fß´ð!›. o?3AÚˆ¶a8Æé—Ö]õK¥ê¾ž'4N2íÏ·a>O?Ìþ½‰h’ÇLü2Å-:Bã{Nk·¯"!´çœêÈM`B¤}(ðOóðø8î<²sçm'´¸Óôfé”|öã­Œë¸ÃtÙûäD¸´º&Jz“VÙ+î«Wïüõÿ$ £/Üi˜Oµ¾Øog´ñŒšW\±ÜïŸQ÷%2ê'Îܸâÿ÷@Ž–hÕdšbò²3¸«hØOšü½5'±z­jÞE@;7ö5I/…ãI?7k#µNÿ‚zL×Þy’Ä´ãßd݃ÉßZÝQÌúQâXb¢œÖ³¥ oÛOѰ´fp¢ÿÈ1g_/´$YÙLàE~‹\¡ˆÈ/9kž¥&ÈÁ{±OðUü9æ<‰ ­nñ…f&Lãb¾ö¤ú£kÒQC»Ö(òÁSP¢ì/DÏÔùšUÖi_¾Å9Û‹b:Êað<çZÎâö˜b)¸¦+_Ô*™V•HSúR‰0ûÇ'á±;.ŠY˜V¼ÙaaP–«PÅãh8Ÿ"ðF½®ŸOï<‰G -u,JÚâºQ+ã|w:%nƒPg¾!¼Éz£†?$]〓îkÿènܦ³é°Ú•:e4P^‡$Š“|ò†d¼¿þ÷ä¶&$ÆÓz-Ã1mYü8>opêh©f¿*jÏ×Ü|Zs)ˆ¬Ò¥¶H®~‹~­¶· §FsXŽ÷¿Ïïóã¡ùñ—òûìø>;–gÇ CøaðÒ?x²”y5Oï•êOÝUFü&c?ã¸{¶»4ÜÛ¸HWn[çIË?‘ÒM: öÉ]ümõÄtxN7ˆ²›šà°ì¬ >¶î/ên øüC‘Ë-[Õc\&ôê&(RÁºW!g2Z/²ò=yLY'·<ÄøÖÊùT³'M­Êš¬ä-éØ ‡VJvÒ›˜~[ëZ%¤Ò½ŽäMú}rüÔê‡!筇ƻEºÀ¤R©DO>¶èXqäøð6둸žÂ=Äl~£i+ú£pÃŒ¨„Ù1!òmšô¨àåBÔ~[S®«!:vò'—"ú´FIÖÍ£Èæ88cì$!!žAò+y—ñ.'ˆºÌ¨Kíò61I 1Ñù&v®Šc§ò´@dÛ⊗uX‚甤~ÔÄïux¤]c‰QQQ¶˜…-ˆµiÔá*ú òþ#ûìGˆâÄïݬ?7K5‚JVq® nKÄžÄNãUƒÝ—ž¾3ÕJ%wœÖ#}5ôÿ£ßË÷§ŒêF ¬³qÞ läº=\­¯±™êG¹üØr¤ûg<Òðk¬9R1.=‰I§Z.{œÜ†9Hé¨ýt %™öŠVNºýp¶!˜fÕ+ô€ï“ûûäþw8¹94yÍÜ~ 8YîþM±ÉzË×··˜„NœDÍpúO‚½•ñ’tÞ;ºã³V)Æ9û$™ÎÃupNTüÍÙ9[Hü£q?jÑÿ›Å'Y éÁï$Ú/–Þ†i5ÚTŽÍýJ¥"pD˜š3SÀDB™üâ´,hö˜äÖsȈ5Žï¿ñOþCÕø[Fã}ýŒZøw°ëwTƒø‘Òbº«ªŠ)‰:Hà5·÷³­áÇÏíÿo°Ò r¸ûq¡ûXßn"EÕä?úÂB¤‘P,úÑŠìê·kˆ¥ÛÀÿoWÕ“°ÿ\ؤ Åò${£§’¾Á‰ywY³5ZH~’¸Yg7+F.U­¨¢TÅ÷-™i Éégwʼô™Æ¿žåSøyka.ñnѯ$;U“®Ã˜U¤b"¡<$W~¢ÖVÖ¿óþ6«k0‹N²ykJ›jpåvš­r½™ hÃÁþs”vËPؤ–¯è“¸s|쮿GªÊ2°ð©ÎNæ~¹¾<»T÷;¯åã«Î±ñÃsMª²:šo™ÖoYËTqÿ}XöÄ•³†w¡CHìO M82˜7xi‰QÝßÝ}¾··÷ <,{‹é¬§íKÿ,êΆ쬽q"+Ý\£}-Ù”º¶qøçþÉ廎T#ȱ_ïqž4e/Ú ^¾ 4{÷ÙÞ ÿųÅäªK{5+¦" ôýíyÊèÊecc˜MÍ&B\Í ÅÐÚ0–+jöVÔ¬èÑõܶ|\88¡^ñ6"X£ILú›F3b¯p›GÃ]—ÆH‚·²¿²ý(•Ï5Õ©r„ü{ùhú—ʈâÏ=)2ù·Ÿ–JURÅ`ƒV Ñ÷"ÞÐhõ‹ÏgÃÁÁ2zE;ëw¤€MµÇóý˜.0õ9§ ~„×Ç&^µº'-FR'kÔæ$É”ðøõ?v…ª¦äæÈߺ¹Þ–Çál“]?÷ó,1ù€‰˜¥õ ÍutçÜ¢nÔ á×Ï‘¤±®µø×SG½±‚"úIÏiZàÿŒ*%ñ{¡Ù€ÕзƒáDŽ¥ rnQ¨=ޝÐ<¡‘± B àHø…F%¬ ´ ‘q’õÆÜ—GÔcò±•rÅFS¢QKæoâ’Ñœ^.Ni‘ñÏ( ts«ô±åf0ЋlÊ⮀ªZ™A'áÈ/Éž73³Ö=š/`ˆÓlA¥¥Ž%ßÄðlÏ&¿¯[z›v_ó`¿k;q‘]ó{'~a'ö³žvá‚lVƒe”˜y½é{G®èHÖ_Ñ•Ðí»·°ÍÛ¾JËh˜W½Z!àÑÞ?.³ébïjÍN™w+²9 –%’µûP#/ÓF|̽P‹ÉñEnU+oWr§³1˃(JŒá ÖЀþnÒ‹vú•µ!›ÈBœX UhwQÙ”7®¶>~ï—ÿ®_›Ô~ °Åmúbow!Àž-IQf¦¯œÜL`vv¾Ê<á,«+y•3MmßÖóp0ð_ÿÇø¯ÿ/ê‰ó<,:‹ó1锇®|µ Y-oÊâÞ ^Ï—Í1í³Wþ{F~ÃJ7éN®–Ó–jTd’.ìûiÀ÷#3q/éŒ$®1 åYÚåHõ.’ùTà[N³aÿº:U¼ž)©Î ;6м8®2ä]6È’~࿊sð—™g‰žèÁ¹mx…N…F5Û̯ð¬#ò-Ûa*°ëz4¸²>©m.¬cM tè†ÙÁídÖ/„›fSk…ND\³hQU¼ô"òj° ™SÝXHˆgÏ€¦Î#6íè’äÞYžr]•Q†«™ FÖ’®²%fTa“òd$ KÉÞ—Ñäêù”.Â`4‹S*Œý7ÉJ!¡’ î–Žô¬iYÁTI¡,g*¯ûç0vÅ3A­·n„ܨ@6ϳþ Œõ“ŠDŽV61âà,«º] ™wYžX!„‰(ˆ°,3“¼k­»Î.ìgÓÒ4 è‰2y JLj@p ÖPE%TÙ¼4žÂ¬y´v¢^–öQµ ¤å þ Ij‡=éÔelöaôQgêQe…¼ƒpºù0· Â)Þx˜Ò™J¢c¨Ý's ›nÈ€Šu µG}0÷4ö•“”gÅ,e}pÔBà—¦ÄøÛ4^«$y‰¹зC ­Ó+,hùÁê/MàÆÑ]¯³»ˆAÛôe=^t‚—GT/bô?ûÜ˜ÞøÎu&+Áãü‚”±­¨ h8` 1r†¥·15Òà‚½K#‰×VS‘°ŠÇYiXü"KnU”¡m†:¤/ZˆF05œ¤>î. º¦=ðø™FrÂ,ï°¡°a)Ñ}€Ú2ϬÌimÇ´WÔdÓ{È0²µÉÞÙ?«6½ÜÔÁ Ú7ïÎÞy,‹?†š.6ý¾z_w(×÷ë£>¾§­ÀÕ°†7&ûõÿü߇ÂŽ‘Â2j‘l‡EåfP X‡{tN=]RqýS×lÉê6ó᪎]«úxÊþ¦»©gùÎ;Z~À†d`œ¦!²Q2È&Z¹µÍƒ,_~Mh]Ð/àØe r̨Ќ™ *°Š ÇXZ¯0Î& ¡²);¦ôH0P¨ÃœúZ$÷|xû_þ«2D( $§xÏÊLü ƒUäÙžMÝ©½ºy¬}sÍ?Y]Ç0 Ö’˜+»C o¤:Jœèþ¢Ì%…º=æu*BÏÂÊÙw²$XL¨,/¨¯&)l’lòNšÏ’µsú<ÇþMž!ä9º+¿I$uŽJÒ2Mß§é÷iú2M%,bånzZ6Ð׫yxÚÿp“T8ËâïõßÕD-âû_{=¡Nß=X¦~×¹üÅßÛ¥KûÂÒˆ{pÙíaÀÅS å³³µ÷â¥qAÄß謧D£ÿ1ëq,˜éÈOõô©F cÉŒfFïe½ê•7k;=n§©!ðO@ Ù6ì‘>„étèŠH£†½^ƒƒyF²b!™¥N ÄJÌ䬜LÎêYÜ·âȰßUMa!ÕT„úu𱆿ÌI|n!kE¬÷À5Ã|d¬¡k (ÏÚž¾qoy¹žmÁºhIðvz£»(H¿Ü`ö@Qýïîþ>3Î-B¹ÀÇÅ»²Ýƒï)D+´)ôS–ëF!›9pjé)Ê;(¹°`Wc¨²b«·B­Zx>QðS%ÖBË ×&·y=t;hlœCBºÃyˆ8 LÅ-®e›•EƒÌ‚Õ;›r^c `«s¯œ(À— ¾1tX (AûscÒÅS.S༕žÎ?…'KÑ`V;Ð}6 ЧÇÑ´xìoÑÞN À 1°QQŠkwÛ1™E²›K³-7'ç>NáÁK;·š=°ð>“[ÿCVø7ÁgPÇÓ¾¦ÏýàçÛ ú­%QPÎ" F{ /.™Ù`“Æî õ¢¿zAwƒü|zŠ ]üé2ê13ÞT¢L÷“D÷14_DÉU±\Z‘ÁUf–/p€±ñwÆBÚc2o²« ê¨ÓzÐhLÓ2òŠÒhúGwüµ5EÎ?†Ü2¶âA ptl(8NFJÆMÔ‹aÁ˜ßà9aRJþÐ6‰À˜ÿ<@nR&U·:)£Ýö·¸‚f™5ë5mëÂixt;Ýj‡ £·ÙˆFPñÕÄ=§Ì±TÞs¢-„BJV*¤ƒI,9—m¾÷²ý $’RÀ ¾ÐsxSÓRþÀ¹ž"SX`&.{¸'hŒ¶Ê‹*!OÂQ$«¬pšÒ1Å>@ÅW£Š›2+Ù SÑBc€¸Š…‘'Ÿ°šB¨'†‰"ŸÎn‡3ÀÍ$ÑL߃‰ùÞêA˜Î`ÓO‚{ÊN8z{ú‰óŠ »Â‡ÔK†“•¥Ã9l G‰~a"RZÃ<ìÃ\ÌP¬$3õ[Æc ½¼*u‘GCESš“^=éµhÕMb:„ö‚geFÛppúîÚig⿃£YÀ> |ás‹n¿fw€I „›¬hÇ9ìa–¨ä õ=Œ®s†œ€x‰9‰fögBƒJ³TÆœEfÚHò•ÔíqÈ —#‹Š È„i§ÏÓ ¾rµ Zïi³ˆè†':‡•ýª H‰Ï¼ŒKò3,ãüfQ™yÅóVxâŦ'%‘Û"©S3d˜À„.îL#ÓÖLÒÓ0g vüžoQ‹ÿ¥í®Ù¥QŒÓ€§%NŸçÍ·È_ß¡nfÈäCÆìz[íöM{»ŽÁwll# <P{0¨WàkUîµ-R*—@ë°ý¬b:•P<ÅŸÚoa‹ž ö›Ѿ”ÍÎû"â9{fͳŽÈõ×I§T’ÖNwÝnŸJ`3cÆÀ`H:j%pk`2Ú,Àuø^V–þq¦±ìòÉ`9³¹0"YF2‘êøit˜³Cˆn3?!Q?9›Ã%¿n0ˆ"å­×`‡±»Ãd–Ä÷´%àO‹4DÙ‚81óÚ¥)ôœˆôäk òwø'‘#¢žy“„Ÿ8‹cÌZ÷Å0dz âØý8‹ƒsTò×VoßæQ0ȃhæ$z‘¤•ÐÈåò¡E"2ÆéŒÞ%q`®¸7ŠŒÆ•¬—eÜ#÷ j0€úC§RÄÅðCPý°ô>"ÁÑÿ3Í?R¾æŸhdJ-ò RÃh…õ™þâ‰ÿòy°È+–µo²¶ß”™|&'¿JzÔiÕrÁôî°&j:¾SxÇèæEybyµn«*‹@™‰†öøY÷¥‹L.Ey™ÙÂ" '´/ìƒÔã–ZMMóÍGëMÄœµaHB`á¿|ºóòÅÎÛ›:4v¥£cmòÒýùsÂ:I›ïId ç*¬Gwy ~ÌRÿìñ-Øv7#Ρ;*'cœÅ“p÷ªY%ѵW3.’àOkF’˜5I@R¡.¤ÞÒcùk _[ã4»K¢þpÃ<¦¼W&L¡sðôÉ u£#4_d Kô-ô#5°Hë3wéX‡Â0j’ëiGï‘BoSW7Q—€ë@³ÚóYÊрA#A„:ôøSüÉ?ó—_CúÒM7ìDLä´÷b9ú_®‚­&þ[IE¥­­7ßÍ+´üÚ4pð˜lo©™sîÕoB7óo ×õ¢*ï ל𘵉{*È©ÔËrШ%ëˆÊ4Óõ !ŽGù$iÝÇ:#ªŠOš÷Ì87ÁŸ:‘Y§Œ¦MßÌ ,§;Éê%ŒKk篘O›Ã'çñmv?÷‚]Qd÷VhN—Ûi¡ù?ÌÒqwÆ]ßô_ßÐr§Šî®mo¿á¬ ÷B 4äSPZ\Qs9XÓðh„¤™v ôØwø½ ŸÂ6í1z2«·.Ö“n€+" Ö I?) ö×£¾ýÜÒnÜÌIDë–a@ÔüâÅ¢QûLSku-€Œ”ý‹£’ûB2Ýž3 L¬·{È7"Wébà´IË,•âÀ¹ bô#5) ^É\±ÖË ÛÒy©OW²×å9‡,PÃ$p&Ó ·“Ö8û4‰ïƒçÈnƃIïÁο¦~'ý@¸1§!ÐN¤O'0b‡µ7;Æ‘ ¾¨ªfm‚Kúÿ ñ&ZbøXÝÖâÞ2)""J„îèsivV|brÿºyÉ›uÝû@+©±©EÞ%I­[a®=¢ócê_€p 6ö£¡~j'é†ÛzÖ›èjd[ò(jø¤Z#ȽÀlnøÌð‡$‹iÛMÜûvV¯†'æ™;ÄB‹}dZ…3iº;72 §t0íW©R s3n„ÍÜéèËyÄì†ð`Ϧ/QÓŠ oÊÀ JéYj Öc883§r!à³lB‚ªàR8Ö@©{ÅVWp´zèÁÖ›w¾²ÅÎqÕXÓ»à÷DUžÿÎÏÔd9‚©‰' ò…+çI½KrÞì kÔ£ ,Y–ƒÐ‚)!/L¾£rZ¹R: }üîYvyö4$6mIÒZ•¸v}ª· --ÉCþVçòâæüý5Œ ™Ø“QTå¶5¹W÷…7S‚Œˆ äW«$&SLÝ’—gEMʪ’ 5ÚÝ6K#èÇñ_iݪSðâã„ ²Þ6HË&=Ü4¤#Mý÷Q˜œúDv}Ú@~9ÈP4¹ËL0•?c[¦Þqü™S$»‡š¾~M¿´ŽÕ“9í¯LÕ…b´rëRR¶¯Cø)¹$Ç[—î#I=ô`ë›àEîé;.Þ¯½:íÓ3ŽAÓøã¡‘æÜržœë$+Í­Œë ³îU{"تAŵ> ÈQW3Yó_#ifÅ% Ìobõ¡›¹ÿû÷ÔÌÓã³*ϼz<¸]ü=žAû‡t<Ð7œ´ûK¸§\£`ÜÏûCéDÄJÐ触²—ì”cfRݹã—ÑtHÿº}qÅgç¥ö•™$3Ý.ÜM¨yÆÎ~Ñ©.æÏ­Ÿ¯_mÓ¿Æ¿óö†ø¥¢;HFéH¢WÝ~¾îöw}ÆÍÒE³Å?ØËíËSwÀËœ„¾!þÅU<#åAgÀßD¿ì\…ô/Jò‡ýTmØoñÓÚõ±—ÓG€,¢.v²nU¸“0È "7¦3ŽÒ^ÌѰôù°Õ3ÄV1Ž …ø[ ¹zwwRö8¾ûºÂÄWGP4haÌ{} —‚a3/¦ _œ“´#:%¹a?¿ò·ºèDë7aÂò&#£)€%;K¸E§_ÁÊ‹Òh¡JΩn4WŒ,Pƒ‰\·áŽªc‘¿ý‹Q•(ÀÂ4g‡ÆšýÜH-É,ýä™ïoMz£iPÄh-6“Woï¹ÿâÙËàé‹åü9é¯]¾og?_¢V10»K +ë1±6tȵ™©/2lš¾Ÿsò¿`çQ5Ü.r¦SHðÓøp—ÅÃÁh‹ýÂdÛˆ"Êù2@]“¼ùÜO›³©gÊðá‚ÿðÛŠBrü…g ¤´ûòÇ”³O‘»e²L‹?üAK…P™³FRõ·e±E{·Ò¾Lw"!§–/•?Í FOåÌý éwÜF Œ?EàT ÛÝr™“zߌXA3¦Èh–¡•úvŽßv.›§«á&À2î„Êðà öÒnM¦lÚ4<Å×pl{¼xuÂy¥´ ó+ºzâìÞzÄ×åÝòh[ ÃuªÓÇA6¡A#±ÜÔF³Â2AŸÄâ7¤%ø¹T §Üz<ÖR›ñâ’Dœ:4#czËY&ÜdîEÀ}Лl/¤=º7nxªBÇa~”çifi×9Ãdàw:߇QR .,‚nÔŠª63ÙÏ’"]X]ööýƒE¡üØ+±{ ÃÂò¬»úœxú¤¶pÁ…µcm„¥$ý±\ΓÙ·žú¼¡¤ˆ6Â¥ªø ^LL—À¨ˆ±˜sÀLZ4©xy6mÒh+¼J-Dü<ål@0åM$dƒD¤Î»o϶׌ÄU”¦ 8og I\;¦±ŒüwL“¶ù 4#î´&G¶”‰4×—Rq·Š°o£¦cÔôïstNa©÷E…´¼â‰p H•¿ÿx3ýkÔì&³¨Ì2†½]=ä'¶|ãñoiâÛlô¾ýÚèþ/0¬{ÏíÛeæ¼ášÄ)½ÎÜñ÷ú!ÁûÅé»·¯„$8ú_b…ÿc Jç½Çä l߇äï<$÷{{ŽÈ/tíû€üäS”gk÷®?›߇æï54–"aå€8òÁ¢cùû0l> w}é~Ä?íòðåCþ2za¡ãB.‚Ä+^äÙlê÷X‡\í±62ޤSÁÇ-ÜÒÈH†-;E4c&Ì“æïX—ˆ †`w©.²•S VÖë6Ó¦yCnZ¨Mƒ*Ý…ªám<¬:WgÇm›ÿõlwÃ(…)I‹ÑÓ6'IìZ°žë$æ»ôWCP³²IƒýœÒSð uYJïÒ‹lJI9šƒA@¶—Ó|cRÓ?KÃ6µ<"ˆ*G\¢Ï¶«‚‘OÙñoa‹Ô•GÆ8àK Ž»žÎ)ë㦛âqæ•ó²È8×$ ÑŸsLü-dÒ/Ó¶IGK‘DÒa H–œ£P>´Ò^eðáÃi›îæ$#U´v?߯ØE}”àO‹–tjˆPá_uãWqw9w–£Ž÷éÏ’;PPÆwaÛ§zþ—Y| ªÓi>ˆÓº*û1fýLE•¦ ©4h…9¼Í rÞ,42<€waa³À9ȹ~…3SÖÜKÆÑghÞ~ P†—˜—†Ýò<Ór™dËÌJØ ñtÖ[4ü1B$7Â\Œ<ÖhL &0¼ -€ •²ÍQvUKP*iúëƒýƒŠk¯ˆ"Þ 숮À=¢œÛ¹mU‡ûGªrµ"¹l“6¾vZÌ{£iœœÄŽ8èe¼ Ò [Á.ÌÖâüÑÍÔð´æ²Ó 1?ÕZ+ú—/«€‡Å OqqÇzE«Ú gt(1_…®ÆÅØuúó4œÄ=ϰ ÁC>•`µù++Œ$õ_Ìÿllç¶5<Û¾ ó”Áí&á§'£s#\ûˆ-Ôáb:“tp[¸1s7òaœ !“$®My…àÊïbä¤ô­a˜±*´å<§ÖžTúŽé[£^ºXì«§Ê~ð¬{àïí> 3åúeåü²£Îbõ˜™Ëý†AsÉrä(I©uÇ›A’ó0.mòb÷3JŸÅl‚€sú¥%Õl–)!-­jf<ÿ>3¾Ï n Š3©ßÎÃ[5/Nd÷Ùù7Ô§G×½Îþìh°…Üï”îrSûíí¾|^áUaˆ¬4ë¢~?JŠoÑ%weǼެ|ªÎ]Ú/^þ·Ü+8­?Yw$ùî-Å*¬š$kGàŒ VU×T¸ƒbÍ´ú-µ<œŸÎÅ›¯fÏ,ãYʉ¢¥ö˜6 ˆ9ꀖצ6ËdõEG2¥©æ¹õvûTnUYÞÀ¤Fýâ¢xé¾t[yúáÒïá¬3>%i |¬UÛgÿ®Û’y8¬^Ÿ/AûkO¡»Œ“Z¿ÜØýÝ·5©9ͺ¿,à3ƒÌ.¿±%°ÕËÍD@!|{;’‹×î/ ÉlÔáT•NËQÃçÏЉô#ýÜç ta‚L”»( ÊÞög`r9Ë»Lc?8ï‰Ú»C#)qíÒd9‘‹¥û¬ä[jaù0¸¡y$¹,=…vnÈ1†ŠCh[´‹U0|ñiÈ”×6•©g²ÇSšÊ½uj¥QI\8Aaª›q¯^Àü÷,4¸m(ì#Œ£ÇeR•6xC¯ú $+[å'd°mû  f…MþùƒËÖÓmrÇ!RÈPaX6ÊH"’"ƒzQ§ Mÿùs BMÚ•p# ¬Ó@Yº¡ê ÷± 8 <Âýù7Š’©èè ƒN5‰ÕHñÝ8eê“æ1ÝG}T‘ ™êʇ›SçD!£TçÑ¢&ž…P <’‚LÏ›M­ÀŒ™rl…5ÆL;•Þ%E–>.Lv…˜²§ß¹äŸwfX :Æ…(”~‘#âÓÏJ“öö.‡-!»g±p–Ä `;D\Ìh²f‡¿˜ÑZ¾Íü·ˆË›Kî&ÿÒJõ—ͰÌ\ñíÁ]ýR$O ,¸|y͸ؙÆÌâ„kÝÞ®E–tv5½°J¼~\¸Œ64Û@hbŽyª³îÍyL}wûCÓÌm“.Ä––Å`í`ô­¶±”cæx(éh=³3ËÔÄoŽ'° ‚~wáµU„nhã-Ε‘õ«—¤=OZêÜÅèF5i{ÝX³Â­ÏÑÅòxÇdU©SÆoΦ8#L,²Ñö×srÐÆ¢Ú v_€3ò2xþd¥Pà‡Ó‹KSΔBÁt^ï|`ÆiÈÈ‘µnIºLmRÚ³)ðÇSFš Aí0ãÓ(Kú.È*@&–,o§&¯ÂðÇq)&>fÚ¸1Ø·p]Ñ[›‡× '·‡O—Öy3Þg$Iúg³”æŸ[´úôµ2ÊX7ͦRòÓÌö8kqÉ"§îÐÍ)«qŒù"Ë«ÅizÇíKw3ÐK\\+T*kòu’¥]òN1Ôẏ¦”œÂ`¤É/iÈz3|­qTÜ¿AfŦ½ÙüváùâìäúKåfìF\Þ`E ß•½áâí¯.`ØHHƒâÀ޽z¿ç!´®´Oa >ž/z…VèVL¿ju/¥­ð˜yësœÓ*hó<—,:ƒd <©Ä*mJ Ç.&).Ö{{;~î ù"º_@q½:FE`nâ˜lÚ±]&ƒà·˜!ҸȀ4sŽ pS¡>j•É$ÕŒ&¸ Q¡Iq÷M˜Oœµ2ÇãºÂäà²>xùßOÑ\Äå~°Òé=:qÈ>3÷ùsS+Õê~ë:ðæô×,oa!ø¿}!x_¼N¢4ûëÿ§ôÏ¢Ô&››ðÓ«,?-}?L+Ü:#[Ÿ†9éIyFe‡{-$åöðð,˜–ÿú·˜;ÈQ&3™Ä¤2¢}Ÿ¶&@¬ Ó<ë¿tš¡ÄåÿüÄà ÁÙiHE┾ø‚§Fƒ ¢ÀWþõÿ¨©¬ð6¹á‡Ö˜¨c¸AO³álÒ͵wzÕ·¬„ 绨úû˜ë —Û@ШOtÉŒ´Û¼VòÛgx5Y½ :eI ѪÓvû%M=-dÑßâhÔ~³{é×öÞj}Hb<\&Ös蛤 ^Øï[Q0æˆ\Nq£¦Ëñ?|G–côÞ¾Øê¾ÀÌ¢ÔÍ›Ñ#H7•¼qófci£^5m²?€ÛX0 h7”TrI/h Ô-§¢ÞðÝØºkõ¹\B¹¥´ºÂc»-\s|]râ=¹å1Œvi„ü­ ÇqãAª&úê¡|TÎWɺù*¨jõœ%à&šó!'‘rš(û-VÆÆ=JÎ=@Ó÷H{ò|™0~ÅÜ7wU¾_\ß+Ø¿Q Mr»Þ+ݤ%ׄÙ`6‰ý?…Ål0Ï6EÑß~?8`=vízÝ ×˜¤áâ5dU«wøòO¨]BLПºtyôÅTàÝoè3J6êFz~Ì~pïÞ«q=†õѹ±&Vƒ“ Kš©÷̙̒±Ò6³ÄäÙäcYÞ4祲üAƒØCýbü0Ÿ7[^Äù_ÿ¤}²vË`ç!~i '÷•\ҳёÃa PwúLð¥5ÍjcIŒ‰-¾ƒ/pšÁŠ]Ä0¾ŽÇ€Ì|å$A*AÅãhÔꆣt” ‚"rñ9Û0`s€‘F$j¥1è¿…HO›×mŠä‚ƒà¹ÿäKg ¹­î:6ç‰euˆh65z{jæ ¶¤¾rì©ûôOx-!*ê[0”çb‹á‡Ì£ÎÃ[ëÛâ’ N»:ö'×[)Aí8·šHzä´Ò}Ñ–ÑuMR6føV¤…×SàŠf?žHEa"œÏ6ö–îèYðu©kMÇSã§ó¦óÌÈâ‹KxÃB|ÎPVÉß/ý§‰_PiÊ}qU— jôpÄÄͥ•˴A_?4¼Ÿ/®øÓ þ=—©y3þú<ŽêýŠ"ñ•b1-FÛ¨j”•hrNí1AìÎÕ‚$ñšDÜfÂj ¹Uï HîoØ3üÏ>] N-5‰‰6iH­Æ·' ©Ê0î¶0EÖG£‚„ ’  >µK¦06#E—u†Óöåy–7 Ö= Tq„•—ð£¶To.Íé…¬OÞôØûÇíµ‡$=øýÃÛ“âc†O$zoŒùìŒðœåZàlc^°å—£›œ Œ¯ÊHŸF9Ÿ W)½ì=-•2ÍÀŽðv ßwwgjH¶œÑ¼¯¯„×LfÃfl²7”sÚ"Wl’š/Ž8hÅoJK66)%ã0k½¸,¢d  Ǿ½Áôâõ¸% ,î…SžWŒymj…nÎôžWºE¬¯aîz= ×!3,@÷•feTœ`¹¿Éä= gœli…ËYÆ &08²]¶–ãmB3í$œ!B%Ä— ‹/-š¶E/K¿É\Ë%æ{ï ¿¾ü3Ý»÷'q¹&“¯òÇxHOéÛ±Ý{,àåNòlLç#Ï“(PÂÙò»Úo¦$ÍïOIß8X&ó\ñºíãk×ÔµDö"€´«PAˆ@<•sÍD3NAQ3oAðQjsM5± Z/ì|×MÙˆÒˆóÕÌy¨†xkSQÿ.œó|¯ÅkÓÚÑ2xl?ÍqÀOè€ó*ÈCß‹ø/3À» àåI‘!ÞÓÀ O›­U3AêZ†á¿‡Ã‚£0ZS’3ÂàÓ½o¡YMçùDã»÷t8Ñ&->ˆž†v¶Ÿðíjˆ púc‡úÒiíð-̪àã¶R/t{¨¨ÜLÐQíA9,âDB3¸£‘ÅOòª.Ä4}›ûõ Hu™»WàÀ2)b³ $,¾B?ú¦«z±MGèÙ´Ó¼`[óþ#p]™öM䆨 uvήüëgöãp!Ž£-Ïp § ‘Q”PͤªÆ†B“†´h¯³äÏ"#ïÑ¢ÂòbvkäUK"+)/pzÖ|ÿî秇£*FW–9TÆÑ¼›ÄÚ›dÂãÜ÷?fs`¸#܉ʾ¾c=|mÃfYÌ·"ª­@÷gR°à*Ér3ÓKx¦ÛlÆ£‘Âh§&AhL‡Óx-:"è üÎ(& /SúÚ*ôë·XÐ)× è`˜Îè{úP [ÝDÄgÒ¿ü‹ζZÿ”ÓXë³èÇŽ­šgÒ%K¨Ø;ßFqâ¿ÎúCŽlõ«‚¨RÌ¿2CŒ¸VŠ#©”¤ª¾Ë«!oškè®e°ž‚ÕMƒúMã‚o¸‘Œ—k­XïÁµÒ Ó±{H$ªí½­Ü”è™›¢ê騹xï9ÛH^¬v‘ÔÆìÇòK¬z.ë–=‰)ü±¬4‡ßæ÷—ò‰ÿ$!koée©uMs|tëïì[Jp”Šþ–UÂÈMž%IIÊMËk¸ô^%,3N'( 2 P·ƒ5hVé2#k˜xû{ï:;¿hÀ2UÔàÞ» ­cÝÀ´KßïöI%ÑHÞ>ù£ö™”GK¸¥ð•!þÂ<‰CŽá±ï ž+IâÀbߘ¬;1ið†.½»»v‡Æ“FLiú¬"¾úV¯Úê×-¡ gM–E–Ürþöçô‘›ÍÞVƒ{U‹ŸQUÍ5‰S6'£`?¨+oZºT„Á;š$E[íM’ô&Œ&Ó­¤1Øœ^Mû…Ù˜9(ã¡øÙŽìAesûCE(%õ°Î­ÆkЀ9%ôQ˜’¬þ»º³D¤ÉRæ¡ëž>šã+«äIçÌßR{êœ5OFÞý‰ ¥Ê‰Û<é~Š'¼6Ðõ}ÿ‘´ç e&̤YzÅ–_`*4³Iµ‘ëØXÙKwÓžQÆ$õ%ò©r$n8Rñ”ö½çl«Ú[ˆ´ë\¶<`I„6³Ù…]¶¨šÌüi¬ñ›°]­eÕš8õ n gÀsÓÀ ¼_«îÇ’OÔ•ê.ºüÇ’›6ŽKQÙ4]ÂZ@¤ûV&³åñU“Ö²!^þtN*ôÛ7¤J_·?Ü\¾½ð¯.¯/oÎÏ6!ŽÒy xúfÌÒ7HYåÍoÆU$õBö·`}3PÔ„G¸4Ý£¢ J¼›÷žåÞ£û|:ydåš™H×qá/Öÿ»ÆM—wq³æ¬Ëðí,ìÆç·t5û9§,)î{f*K•µ_'îY•ýÂ0Þþ>„§¼½³±leæyÏH>ÌT¾×uä-¦ÁqÜB:Bòæë2Z¡¡‡®ÂÏ\‚HöíÄŽ„Ò³¿ùL¾W}•ä5ö ˜xgÊ„šÂ/Qo]¶ .7$/(ŽZ!ÛUd#EdëUç¤ÙèÍF?©m¼ÛjZvííeñƒT­vàÿá²t®ÚQMó/I9þÙü€åä|MAÂc¿zCMÀ×yÖÑ+óh’•S@>Y•ÈäbÑW¤“»ú~nÂ`yº{£†™Ü„˜Nù×ßoøʯÞÿ®ãÿÂÀ@w÷ÆÌiÏ'ÙàbZ×”Q]ÕŠ”´ƒ}·¸™gÖR5½^x6’[µH˜Í~p`€q(¯˜Ö ¼ I´<~ÿiŒiƒi̪‹jvÉÏQ·J4\ã< ‚&-ÎaÄ ÷ŸîGÎtZg^ù¿ð,OhªuQyÀÛ{û´pŸ-:&FUˆŸTMûªTASk°2ý•v3tÂÅJÚÞð_Ý´=ãaf •æýWF¨Ó5î£h&L]Û—†º¦Êެ,…ú¨.¸6÷^ cyXÓýÆØs p –{Ä<ȧVÂÀþlU>¤÷sÚ´n²I8gþQ^ʧVFÝ$.‚Þý¦JØÝ=-öƒêDZ«S$Ú& ÚçjŸŽ©æ«\•ŽšÝ>ø4u•Vç6/.ÊàÔ¿»ÿYròX©¿pÁuªÍÉM¾fÙ1QÉNÙ;6yˆI¨Œ–Ð*¼ç¸ÖNÙˆlô]–‰]wÑPm±IS®Ð™,ì)Ó܈™ÂœY“¯®•á—ÍãÇ6jaa§ªéÈ1ôÎÈðnÇa$t<Èk¨¬À6Ûo3…¾>I³i%1›XB¬g‡‹&%Ñ=HFÔVçº—à—¤$ê¬ Ý-ec\Úî:(@޳<ÛA ^b'¦þóƒ¢÷íÿJß^q¬UÝHb¸Ä5žšZC gˆèCÏqçW Ø!%7î;Ô´5I ¯hYäñØ¿"c¤p½1ý“Ò ?M*cÄ4rô™öÿˆ$‹b¶h fq¤™I£iÛ¦¤‘á>–çݰ;û›ì®H»œh»›pÖÕ8vå¿ü7´b8Ôö(ËÇV/ÍãÃC/x³Â¢QÂ4"Á5ŸÄÃòã@?¶¨ïFÁÇ-÷h òµïì_þY âÑ ¿Õ~ŹÿîYHÿóO'™¤{‹D™¿þR¾vüK%»þËÁË]þÇ’$Íù´Ì”ߨ?Ÿf 'ëŠäWGð3j5ÕÑ«Õ:u4<‡/³ÔšèQ%‰5FðJŠsíª0ìkи"ew:W;7W†ÿËÓÝ— ÿ}ç¸áw^ï‘>}ö´áŸ$ÙÝ .F ÿàì¼Ã{“w|Þ‘ìÉE1Z¾ì2ˆÒÖ†;Ê–Ð ”:²Y„…{ãΕiìºXO:>éßI @Gù‡V8ÀY|¿‘Ì÷—h2cnýâ6ÝßÝ}±û|÷ZüBLà‡Îý‚öžÓöŸnJŽ„ϯ?TYé : ]VȦ҅rÈ—sŸ/VhÀ˜×ÞB8ñÄ®¢ZÞÁ¡*Ž ÜH £“.z$Wa0•eÓJ´§ƒÚZh×U1°#^QÁçW‡—4™î¤îhøÇïé«ðIW2Då¸>#¼"À‚I—Z£ RO:…ͤq‰­ vlâoÑ·šÙ Ñ.wôfÛ6öGä|Kký-öŠ"ðAÂgŠu¦Î°Hä6'+Œ ­‡Ç³hŤY?ùcßPŸ$ôón¬¿rE‘û¥3ï›¾å¼øKòð{^Ï;?^ùˆ€i^ˆÿ¶¤Šá}äêdWÍÏ\ô¾$´í›/9:ÌJ:×¾õ1Iò\êÁ—?öW¿¾sߺ>ð–cÁþž}@/SüÁ÷§æãú™iäÊ.¸‘ÙkßÄ:±õn}mÎ±å® ü­·™EkÄþKúµQëúB¿WFÑ`M2ò7ï‘éÕïÎNN×͉¦Ì3bÙ6aï¨ ÷nZsZ˜“ô—N6(ïàcæä¢ÝðßuÚ¯øUÞ_¶kB#’ý(O`ý2×z SOx·†_E".G2{xÂí¾<éö ù·{’d¹Ï_5ŸˆÚsû„›À°ÜV3kxp¹Æ½YÂÙ@x#¤mØT'1¾BÀ{•t…C1&R—î‚Ú[ ¨• €îÿ9"eÄP „…ë ™ûohßö²áPÈ9V¤.@ê€ï´¨pCã¸EOßÄt‚¥HÂäVÒÚBqøÕ4'“nB!®µoÍ[j¢4ÖŸZŸø^ |“Q‘pû7á8ì‡þQÉ‹Œk|Gz)•šÓ÷V1èwq? Â~ðqú¯š¼Ý#üäÏq ˜Òðþ¶FYYn°' ‰ºþ[:9¦Ù­4¤o­”ÙFhâÇŠ^w<–—¸Ž?ÍH]'ŸZýÉfàœ¢Ý 'ÍñdJ Í œ%Ø4ŸÏ~ݧ÷ŸÿŠ%ó÷öÎ3ZÊë¿1¥?kè;wÔ5ga…eoTÙ·¸žº9Jí9!™–˜1IºT€eŒH,ÔÄ>¶‘#ŽÇ’(k.,ÉKy´q©°¶õÞ,mšÏ$h FøèÄjI3´%ì(–qÇ8逶üdyhÑËãi ­‹q}J×+ù)ž*zÆÎÿ=O';üéÈ5(%ãY£ÌªŽ>>4Aþ&gÈrD{Z¬†nM‡´C¨â ž™(!úVÛÀXV3‡ƒt#cHÒ®>^Ä´Xò÷#ïï{[s½» xV$´Ü:[Àu˜÷$ê瘹Ùªèö®E‡-Ó"Èî,¤§ @Ÿi£|hp #ý¤,:d_\È•ÞXF·÷é«G7û·}ÃäV[HÔ¿Çg?½%¦gHˆöí3î÷TèÌÈVkî“4(g¤4’z¹Ž›OƒŠêMþà5hƦQ†ø6ÍÁ¸l­…_b“‡S̾½à ˆ™÷_,ÊSïåúû³WÌœFï¥QŒæÍåºyõ¥bü–ï£~"³6,]´¤I{ “€» h|JÃX½X›ÏcŽÜc«â°ªùmóF®¬™„g˜±' Š.Kÿ¨OßZýðcÖÝ,£>çÈ+a´^&Ý|/Wã˜÷]:â4šü=™œ&݃æˆMÛFî~åÝ/ÓË«ü§ìpe´P`ÝÎ]’+*~Ìg‡¦î5þÿì]KwÛÈŽ^7cßk1‰G§G :¶“8‰ä´Ó½¹§D–$Z|hø°,ÿúÁT)ÙQzâ^ôœ«>'m’‹õ …>Ø6ä,ƒ%y¶ø«ÑÑù =¬( j9ÏKŽ (fjéïªÊ«’¡—sÂ*ssÔOµÁ¢pß—ˆ†'0Ý…æî±C6^ùüõ=çêB›ý£8f¥c «"® ë6-\ÜŽÒøðB®¬Kë)lÀˆmàÝSY¨8š!ìðÈUÕÌBd–ò= ëó÷J÷=N¼(B÷VÉ®Eœ‹|ZõŒøhT’SÇ÷l§7‡& D“oŠÝ̺,æò¦T´¸ÓHõ«©Š‹E µz\wG•ÿ‚„êëg/i»z¯³“Ø”]‹WWÏÁñP°C¾C¶oÔ N Vi(yB›ƒ *†çrEJC‰!)¢á ž4Ù`É%c“ü-ÓP¨\)FP{ÆÇã%`ñ.O¼M²NLÆoA7êl'u4ûÞŠ¥}ßBš•¹šo<¸R)–“·´ˆÓ®mI +þ„ mbš™rHìTu:™`©¯ù/‚òªéä;ŠI«~¯² úÑ”ÿ†QÌ›2n:¾óïš%Q•ÉïOše¸RÆâìO‘ŽßOåb½Ÿ16ê ©Œòqø|]‡H°Ï‰!tœ)Áfþ¸rÄ+nGÝ„uWýÏ—þ%<ÁGŠ :ÙŸ‘Án•@À;x~âËB3¡škÅ .ÕôîUswpr±Çy ËXâS±Ã1Áµ¬·ý'WÈ4 ð¾æì+uœ ÎÄ?;>ðŸ~ê¦G,uk«Ý¤Ñˆ”Ì8ÿè“æAŸ]DÀš¼Z<xᯤ´Û P/‚ÿÙáóõÍæcÎH¿ª“k8ìò|÷¼Ò›ò%ÙH>×_ñ`ö6ý(§k›Òñjù¶¸õû£qqNò¦µ+Oi¨L/:¯ë(‹Ñ¢lÇ!®ƒ‹è{Ý»ê;-˜f_ ‚×…q™pöî)q wêá~~8h¬=p±ÕsÀ®ð÷®³´ûzë:nö©ë%üݺŸÏ^ƒ—þ˃—ëÎBä8rÈÒçiÑ".­WphRÖlß*çÓ¹W]´ÉW­TyT’"ñ9ÿ ‘ʾAºfêÂ4ˆÔ#I«Y9ÆøËàÙkÿÖïgëë7h˜ƒÍšlüµ¿“rŹÀ;*ŠiÉX«(JvÆÞn6³•Ø#A;%ÝÝjM÷Uçé—–(šíí›(æŠ1U½]¾ÒÿrÅüü ;tÚ9¤ê? ž‰eg­7Î2jciH¬õëÛ8ÒÝøQ„òcÂMxáœÝë³Æ¥öº¥÷§¥Í# ÂÚ‰æóÁú&øÒÂtxýÁÅ1{e]\Ê)ILçkûCøW€ébPw~ÐT²£Ô׉7¼<¾ð[¤AË:û|zéïÒ¶ø9¶­¶±ZuÎ1kÉÈê‘p²¼Õ)i[Œ#zÏzÔgï¦)¾%€êc>N»qlÂK]pP²ý~»›mƒÕZä®$÷J=!îd£¹íƒ Ð1´¢²`X?Ô ?þÇ<G œ lf•ß±…áøòß_O/üþ<Ê‚tÓZ…¤ í+?=C2Cpñ‹u™ÃÒàâœÔOaôsVÌÝ”¸ÿ‹5p$tm-¢¬Ï[QàŽ[¬ƒ˜g‡a3<5g «Ñgü¡5¸# s,r!+n(˜¦#˜Zˆh7/©ÚÔ«sN-Þr+±íåé$†Uã6R±;I2oŒwŒÇ1\挣M7þ<Å|{ß‘À´JPá8›Q1ö8ÔÒmÁ×*Ò ¯ÚSõdJ9EÇ%íKIýÓ‹ú^ÊAXìüS†R!õ°ŒþŠÔ—Ô½F!üî4úëUÂÚLÌ㕘…np»Íö:6£3²!ƒZ",CU%¬c.éxàá8ÍsS@¾kLR‹;?>»+Eäç&•™IpìÁÄ/›ÕÕº«ÚæÉ¾·äØ¢6‡¬¸œ±÷§øåqbâ?Ë‹M †¾Y­XwbEÖßpæ˜Ðôvêü‰Ü;玱k…P7Au§ìûû ¿›OfŽÍŒ.‚×ÁúAD ;\°óâpëÐCb²›öhe†(ë‘îH‡5Q»µY­Tå ŠæöŸš¬·ÉPM}ÖÀ^¾z¬é)ÇÌ¡b °p(­¯³["˜¨L ZhŒºÍ÷6 ‘Ïjƒ°,‡+gÆ^`¥çÏf*š"Ï,ËÓÇx††SÛÙ¬ùÒ{ãY[a}«£ûõvFBW̱’̓ž¸¬Â-1ÈÐ]º¿Ä6)‰Ìšú»Ãáû½ÎÃbúóªsu39èÁ߉¤Yìù:Úùy‘«H†xkã Ü¼Bo=ª¢=“EðX*/†¿½ó9G_»Û•|ÉÍþÓø=ý[è6†S¨}w·"9Ï¥NAåY3á3¤QP%ÐÓŸâ •ã´LŒ¹Sg¯©(­»çª‹C†­ßtP7 oùŸI˜tª({ܾ‚3QÒžéÀ?üå^±ÁÚþ`p|ñDr¤¯¡…|2•Û¡Xû—mÀµ¿#÷*Eþ·zší—ÎI“dä€%^€t9p„I ¦á\aCÑ’FƒmÀqa ©ƒÞ zDrp°s‹d9µûØÊâˆÕœ+ŸIø!ìób[’ÄFüzêY¬b+œMP!|Ä™F´Á³…%µB#ÛLàÕÞ8)©Z’a_êŒXš £ñms¤#e—#šr‘ÑZ95§òl `”¥J9°¥›-cCÁ¤Aö³ñG>DrV\$²ö̈Ôug'Z0¿ÝzÅ­§ªgxçGçþ ZˆxBËZ_Òq„•ÊF¶Ÿã0¥Džô>îwãµÊ›GÛ>š!È(ð*˜¿:ðï¹ D¾’ÛOÉBÒûbÑ Ù1‚A›Þ`÷P(·ë³ïWŽ¾Í‚Åç8иêjé­§»ëè'rZ>CÆ6ʆwë-ú !½Ö’Ú )5n ¢’ Ú2ÓàØt™î¹#IÉ¿T …L¦½1dKãPb Ù4=Dös“m…,c(É凜þñ™çä?îõ£kÇ.ûñï[†B±ÄcJ8§?utÈHÇß/l÷<¹íaõRÃS]yOŠ}°À/ÓZp@8-Û*68§·‘ž3¯½7¢ðô¬jéßã´¨XÒÑ/ïT9¸;H=<=Yæ*K"ÿ“ ¾5mdó´ '$sY ½åŠ!Áqñ…MqµË¾8ºä)ðõóÙ7§¡ü—òe¸ßH»ì{oô—aë´á÷÷ƺ¸©ºjHº|Úp溦UÎpð«ûYV»½©á$ÎÆØ×ÁÓÀÙˆÆÿÖܰXùjÞÊÎÙ.'ÝâÄ0íÈ]¥Æ6ŠD¢-Í…Rã]dȈeÆÒÓFß ©º/îˆÃ¯ÇÃÞvo¸x¾gÕ@Ʀ„LÕ½¨(p()6$®ˆ³r´é Ûü©É-§³‡ ã‚±#]ÍçÃÝ|R߯µPýÀi‡t)Í (ÔÀ°Š¦4àóǸQ•wg¼!õê©ÿú¶skû¸o½}ÿ÷žÌ®?zçÔiÇ<ˆ r l~ ÜgÇ E®zÉaaÛ¡§X€*ß¿*F+` 3Ýrø9w¶9ÿÙ6U´OZ üÞ25¯ÖÔÛK,n39J@+BI®Œ/V#͉ŸÅ7%wðÆ 9ŒtÑ!qôcã¥û¨ZŠ/¨Á"jJ—T¸ûùn4y¢Sÿ7mm“7æêÞæïC1Íýç8?¾Žùâ¡âÌ?>&Mø0²œeÉFÑ K ㆱ±ë¬YòìöZ^¶aUV…ìF¿¹ì4k¯ü|uÓ‰ÚŸ‡þ//à‡µÊÃO˜ú’§ôNifHÎ4sKÃÁËœ6êàãþSü5-C´ äµwÊ`âoåÜÒ”Áï§’¢„Áu; aüj‹L!ÓŸ õtMEC»ÔmÇ?úBÁø>U7$g Áñ`•øÎºøå˜&Ùìç;—4AÚ†pÐȽ´ÖÃó7OŽÏÞyíܧnNr“þèhd[\ï£PAÇb\A‰^7Tmñk²5yìô/§^pëDTëwÆ6°òmÝH×pž$ƒ´rå8|­>¥¶ðÛ@‘N*-Æ@L ¾CðзsΔ8mÏUÌa¯‘ €(bÿÝ$÷žè:zÂßReXØó±Lp€Ät#ÖJ•Uö܇æpÏ®W#ÅçÚ¦mžMe•y }rÐ&fKgëžœ˜¤XC£óö ¸±2• ˜^< Ó%bd!P-ö{ÀÊÁéèà ²²—¾-Ý7œd[3 ´ ¢,[Ûš‘·Hç!äK²Õ ¼?rˆPPåÿÙ‚¤ÉÄÙÝy#å_’2PÕ¤§þê?ûå—ï N’§>ÿ÷«ðÈ£ØÌ!œ³Ý;ß2Û–Ù¶ÌöW1›ñdûÎÒ&u«¸ÿuÍ5ãïÉR¶E–³<á,j„´G^Ç1ëÿ½¼{ù[öÚ²×*{m^Ò¶L¶e²-“=‚ÉIÎ^TßYÄ®ÌÏ&èŠÊ"} žÝÔ‹[J~<Â@1¤Ïÿ§þØ,uþ­z%×=—â’g¯ýç‡Á«5Éðèó©¿;Œ'8’c©ÏħªZîùö‡Ž3î:80ãWÊLÇ¥Uæ‰M&6ÝÁ“œû;¶+½Ô0Þ1€)|öõÀÛζr“(HRPŒK’À=dEô»Å«^ælßgh÷F§*;ݼ§ÆÝÑk݆Ü+•@®îܶoú»­ýŠz™IA¹·ïÒÏý~ ãa‹Z!5m[™E1S®0ok{r}ØÃ×öÌb´ÚUíá,‹r‰ªšÙŽlx Mgÿ3Z9­8fƒeÃ!л6a šµNB¦Äµ¿ÉCn‡èvp4¤Ìm:d!ï„nJÁb¹$V¨ïFªéM²ÑÔ…áàD’®¯ „ ó]È–Ùõõ–î°ˆOôû#ú¿ ›<éÅ ‚·Ò¸(Ç+e3m‘V@×R#F.®‚¼¨ë@E ¬Ñ%<¾ãDd¤dÌ€1ðôÕ vƒGùUÝÔõ„V«{¥ÛÀ½±Ÿóß@ÉcÎĹN:ÀYcßP%kR;dzælFUžPë[ƒà]ɵMâ:ƒPÁçUY¹Ïe ¿£a2›ÁOa$÷áfCí‰%.àCàŸcÍÄ©ðOBVœ¨·Á(bÿx‰@”Ó5á0…~4’«MC&¯\Ъ=…\ŒærF8!!Éš¬‘֨ΛF‚Ò£_„7%xGÃfHO±ƒ„Ö¼ªÌNÌïúKßþpÄ¡~\á/µŽ”¼uª÷ÍdB#Þ;QìPÔ寞=ã1â!P%ŸeºÎ—΋ ר-?܃Ö)¤¥Ö@«¬P嘩+û€Æ…ëí¦åIÿñXò(=߇•ÎT02c|Š:¡uÓ$Á×?;;£îÀóð.™§ŠØ±mçi/‰9ýwÔ¦1‘Ñí¿bý¯ nÃJZØÞ@ó‡)† –þ²@Ä&džñ~«“¨ð¯ªšºž*ΫÝÁq3Lä\'<‘+\ŽKNi¡maÅ‘¢ù5)°¤æÔ&ºì|¬Ð$¨Œ&ר܆â¢Òý|bÀŠä|Ÿáª©NÇ!éòhJ HB k#2dd·ádCû´–Žqˆ¨þ¥'†tÊ´×üÀñỄzk>‡zQÏôqM[œIëõe[Éw©Îs´¤BÎw!`Š<‰:,ʘ¦Ï9‰Ód2Ó¤øô'>›7J‚,©»‘‰È­zN°ˆ“fŽÕ´ÊE=í) ?䮞ïuš55-Pš¦/ͪþ”3ó D¢¢¨C.àgï4rlÜ™á™È]Û("Ãø0\AÅó~ÊO®‹hvA šJ¦Ô³”V¥aQçÉ €0X‹¢ˆ¤é hÌYNÓa}æw„nŸ1 ꦗ5:_i!¿w•¤,qÈM÷=H{ä6ÏGM9qoÊÑÊ….iÃÑ¿ÆÍ<Ôó(¢®î®$ôxÌD1 ^WãpªoÔŠÿP NþiRñ¸’Ú ô—d+£œP¹yHÿ‚˜u­Ž`ùÐ@<åþ»˜HxkÅWI˜&YP%8 «Úæ7P ü7)f •< ¯G|ÝŽóG’XÁðé/Ë yÎèY2f¹ËfÀtïi–Üù¾NŸžMg!ýkM4ˆY"QBŠò„ËÁ}0æû•µõ£º<¢¡ªÔRAÜÌÔ]8]ÒG‘~ǺNXÚ¥òß6³&f:5nš0k&Á(™¤@8ÈuK¬oîMD¤!(Ž/àüÄHçŽÅÎÿ(Mi€>Šxl–ÔyñüÅ‹õ¡9WyCzÑÍú´Ü|–w“ ›·s IAÛˆäV'@îÈøA½Ièž ÁiMIzÒ ÑæŠ6Ú‘ÂQrC:à6hr¡6xØáÅtY'|%N8j&3ÂÉ©{¹N®s)ùBÌI2~zýYª‘!¬èÕý‡Ìú'ÈB›#K5ãñ³ÍM‘WèKפŒ‘¢‹ˆc*Ð|ÖU4“+çêÖÿ­@ú)Mbe-’;Èê%icú6(í`Ò¼,:jÈ127"uZñUX¡žI+ÏZ{éÓU•ŒË°Nà•š€ÝÛ“ˆí½æØ>•3ÇÌs| gÈÚÒ ñÇ€XZ^ËEvß#€ˆ‰vPè´WÀÄÂ=U±†j©ó$¥RÞ&$q&¢ÛqˆÙÓÖ¡&¥¥««¦lü/3Úð,0éz…\†#­‚iÒ›]öø,RiÐÔ,éDH…Xˆ°¤¹J~IyC7PHÕÓ—»€ïBþ/.àvázÀÐC,•e¦ºHVT|ªQö%mH±üü 2÷›fز’îñ‰  eº £IÁÕË©x–t —9­ hù ©¤IIÊb¢ZQp¡y…nh±¥›^J‚(¿ëT€ ?&e4Ї9;ŸÐÏ:ÏVèñ€f'SÕÖ/p:œ6ù¤\vÜHC,‘" £²À†cÎÏÂyRbÍâ¼¢9JŒâ˜t@LP¤ó)íòš'ÝH.ÂI™è ©=iV]º3®(†Ò ü>5M‡úVE5<·Üø  WùWEJ+bœ|¾Iê+f=7CÅÒÿƒ„QË¥&0—ô¬7½c|«(7)iôH[RÛ‡ìŽ×w~Vùͽ´4C,uKÿ·TUÐ'nª&Ti--×ì°?1€äw^édÓìêó&ç}G…;ZCpw¥5A¨šDOÊ*R­±?½YÝ÷]NÙdX4$é3.U.ëàªYûíKÚ¥CÃÝN#Ô]|s ¼ÚòI;D ½‚Kƒ]…үܩõÂP•Œqí_ª²D8L¿®å*Ô´Õš¤“e—%Ô€6OV¯éAx’ $…êkš–ð&&ú&µ¹©äŠÛL2fDSKÊ”'¤Ã²ÂÒÌâðVçÔ…óˆWREÓÜ-=W ÕmA Öï*[ ÉWaž„ =zŒ³ÝŠÝÌX;Ö³õ³Â­õlk=ÛZ϶Ö3&ÛZ϶ֳ­õlk=ÛZ϶ֳ­õlk=ÛZ϶ֳ­õlk=ÛZ϶ֳGë ÚÅ«uƒ’a8š{¡Yÿµl©u (½¼b3LCsÂØ}؃–]fñðIÙb!~òâeï{µ ˜Æ9øz€!³x‹’´S€Wi:åÇg'%ËáÎ6Ë'=ðVpóе±ýìwа©hÕ »!î@á ]¤Þñ‹ÒÛ™E¼#¶0)›ö#²·«ã¤ÌØ¢ØÌ8OpíXuëŒb[Š8“­}Æi&`Øâ¼Õ ËF«w٘Òœ®ŽÑ|Õ €8lÉ ‡Eî&$¶Vì”lgl=œiyŒŸÄû˜à^Ý“$æ’`¡Z7–rŽØèà@¹úJ&Ñ›0IØ'ã}™$ î]ÓŸÓ£P‡î¼Í3`‹ô ñc¡Ç|ès<\ŒÏ;¤†€}³y‘‡´±Uv,ˆ6÷ì„P~·q­^XH¡NdÔM‘˜¤^䎊›1GL…c©†T´SÎbDŠ–ÔµŸæÂÅš"MÇs~$ŽìO*”Ï$b+'«‘'€˜?çí|—Uw\¢, @´T’±ù¦u`b貘—ˆ¡åÙIü +-s4CŠUÝl‡©ƒÍßæ¤èÎÂŽA4p+Ͳÿ C¾‹Ç¯Jž»lÑú!J`fôÉõ´gŒcÉ/j8¤Ã„!å~·Ê&Œ7aù/ŸôºÕí6žŠ(˜]ÂŽ«ç¿T(ûû ›¡'hqx"Q6b@v$k’¨evæ83³›­ñ)½>Êû–Ðb@þ/{W³ÜFŽ¤Ï®§¨˜ÃÚŽ!k$Ê–íHS–LK”5¦ÚíËXYë¯ëG4õ<ó {Ú[¿Øæ—ªŠ¤HÉVÏȱ±Ñ®‰ ‰Hd~_NÆ5a ;+´R©bU~Vm‡W›ýp ÒálW9٧ߺ´C‘áÃ(œVô¢óÂ=ØëlCöÎß7 Ö§-÷›/"=ÍâC1™š5¨.£3SêÃ+o[÷3~q' ¶&˜¾ærâ0‹ª+-­=rióTÈŠ’!Á_ †.ÿ¶Ó„Ë´Ù'$m¼õú{ùØh‰[^ËqLÓ dGó—7Jk¨5Í! 깃šáÔ³#m--¸µ;•ìNÖ;:Þ…›uÛD^ÆúHeßËn¼mÇßç- š¦æîE2™'4ßÀ!(¨Á™Xâ$…†3›…^þ€ex?›ï‡µ9ܦØ`è¹LýÒÖ“2°§ôrØ;-¸Ý.LiÑ.)K[n8%¾²ýÒö#þÿLð¹¤/pÁý,“ø|VÆ7*m9í.n{N›%º„xˆAíhNzÎט뎘M‚.%Ò—ÛÑ5ý£Ó²âkª&] Pñ?úI ]Ñ…ÄŠÚèÒµ´ð¼·“¾†e@s=Ÿ±LÆ8`!{¢,gP‘‡ V‘òä ïË ï5Í5{ .Ûßd\;¯iBX¶,,´¿tQ–-KÂúl‡£1^ÆWæ5­W³ ¼àhhåûÓ ÷TÈ(¥íç|Î7fËÅ·Ž úŸ—û/×q ªX`)÷«ÁQ2XéíÛ¶Ûal¹®^UW»¿òôNjõ¢™²Øò?¥É4bÔŸÐl÷ä×ÁM§2•Áñ³‰MÔ­‚_;†b¦ÐÐÃô§™:¸³ùÍC16Ü> ür'ÀLq 68ÍVˆA!4^Jl¦=—¡? V=æ3,¹¨ßk•ƒñúÖó9ëJ•Sûø¥àæãÔE€[ƒÐKŒLW¦e03°~ÊÈSÿ’® Õ˜®;úª‰bgñ9¡w÷¸¦òÚdÿ¯u->píÓp7~¥éu¥žüÑ$Ò&Ã>Ü&‹d±Vm^²i/w(ž¿M‹ÂXdL`Ì ày£"ìWP•XWüï—Š^·ÈcM ê6[˜¤Ö6ëc,Zæ–ò¼ÑŒ'<àMïäòò(Ê•†°e.—ãÒ³8Æ!Ym/4 Ó-sü˜}¦¶Ñõ'&áÝG“¹4x]u>4LФӃ¢B²shŒÀG<í]—»àépü•Øö= y*jçSŒöGÇ[Çûå>=ª èh“mq‡3£ F¥û6/oÙ-pò”|nÊÇQ›^7.m‡üõkïÍá:*-¾^Ì{€"k4YÅówÜÚÀ¤MËr®ÜÁ\Þ$´#MÚ¼‘ÉÒUüAãDCÌAêÝËEÅ.]‡Ø³Æ‡HbÌØÀ g†?åpÏ{¹ •zÇ¥¬R4>ÙŽ½Lh“ÆGªîÛl™´'úm§FoC{VÌï× ZQÌ;› ª¿ú™Zö{ñ û{±¥YôÅOÑ(ø™{ðhí¼¡½õÚðës{ ¿{üɇŸHæƒØ£õvßÝ? ×Aám‘•9Ô0q¬Éã^E·JäTÄY ޏq?tOób7/JÏωÃ7hàöTô#iׇ’O¯°–wçb:}í‹P­eÈaÀðµ5ìƒþúÚqŸ’?¾ü P? Åù°ñ°Z}úË ô_ë¡M¡*ý¤œ 2ƒè6Oa,ÏéïòJÀo¹ä8“‹uZ*¸Fç“ïD´2(æ]ƒ眧dfãmÎD€tÚ¸ÐÿÝ.EÁÙû)SKÑr.ÊøŠZÐr?#OŒd6Ö7*è!º “kAï1ZfJP[/E¤BºÈ°œ•-Ú] zþReǾ(YÄ,ê‹PcS)­c˜¥1x}&–«ú üHÔ—i ¨Zâç3LKÅðX&+™ÞK•~é½!Ãuoïpï0ÞÉ"x³¶b`;†j¿Í…~Ì4¿±|ïVàO©Ô©*}L!¶ó9­]÷‘$ÌeQ¦Íf6ª2¹»Üã´÷÷BEhéÚçPC½×k¶ãß‹ÕNLi\©x}¼«ÔÖ¶)²'ô²÷¯]êòùœû“ †—‡›‹Üèôô>“ýŶwb‰h·¹@J.Ý+º<Ü*tœ ZFúƒÎÆF•©4Ã…}IšÃõŒwÉ^Å•ö ¹ÿLkùÙéê³v¶ÔL·˜‘5ûiI´|¢Û…²Òä ·’Ú'q»ÿñ´žö› f reá{^5á=°šG•Ô•Ø!!îk»’7”h'I1Ÿ6áA­t3©5ˆ¦[Ÿ‰Ñk|éÃýËÑ¿žúŸÎY4Õì»pvÌ庂»ç|]îç>7Á]JaÖîûêÄ.}0UÝ­líO/’( ìûûëdÏüí=–{üɽ% 0ƒ¼„·i=œ—ºøb¸³Ø#trRK·ƒ]ð¾ûêåï`­i—~è¾×t[6šïÜd}ë3Ð^“êÔúظj}¾³F¤l…5 qE-^‰nÁiÔC´:¶ºVäÌl•ÛÓf7G@³¥¨,ÖbøØÝðPyÎ&¥ŽñL’¢ëd*Ì:BDäÌ…†k¾P…ÖC hÀ!T$í‘¥ŽVñ %É:šÞ¼1¨vÆ×‚†.B´2QW‰ì–³àA‡ÚÚ‘÷‚II÷;^gƒ£Äpx:ÓýVäjúafËî—Ëý½½¿õÎGƒŠaÎtÈo–¾²ªjid[ Öžc£ 1«Øå¸~'Báô‰©ÒŒ÷Ü›úÌÜôéxÉøáœ˜`œ>¹4aÙ|vŒ9ÅrÔñàTßs9¼;c ±NQ—€‡g3EÄš§˜É†ëªçÈƲòü‚Nd`õí=hòÎDIeWòŒ“j†M—ú4^ð]Ú»O^xky×2ÃÖ£‘°}{( ÿq~\i’0œK‰ >¼xA3Ë«qÛ'³Å6³C˜éê›r«VRÔxªkÔÁËõ³yýì¤ù,+=vrgåba£Ì›ŒÀŸR̹z¥š’Îq5·?û4<~þÜF¨Ù¹_Óub¹­GÓÏ3Zá5¶3¥‰²EKNfX|r ÊI½²Ú8jÓ2ðÂÔãV m$PÍD-uxƒyÄDMäv]§%?j~¤)Ÿ¼ÎSâ¨󀿍½sY:phý‡†,º",£Xy¥øóYRçs¾‡»àXåŠ΃®7M8“LÎ’léžÉ1Xx´ïº~ɸªÇÐ Czc©ážÉè] wPÓBÈ—N’­àþ¬|׳nþ_¾“/{ vé/i·¥{¤= ÀØæa¬þõNÊ$²}ÓpO,ô¶B¢vÇÊü1p·šýÃé4JàÐ}}KàŶ1Ón8ÊÛp–ÇýöÑW™â<dÆëDJöGX/…Þùä°˜ `+ã Ryõ|ÈûnxÑr/.†ôOÿkË=·ÜïOèïó=/ÇÇŽ©ö»¥LÝ–„ì{ IGê©$ýÚÝß;ÜqZžC.vÖH߀l.O >§í†zr¹Þ•@tДe®)ÅÒÝ?lCÏ<#ÇL^iXꮉÉ·ÅQ:*sª âj–&Hu%ËW͇8™ütÔr.U¤&0‰‡ƒ£öhHÂw‡¦«Ô)`”:gÿjÞy±«ø9vÁçŠfDÇú¦!'[Èqg´7¡þƒ_Sª1ŸŠˆ @qCšÕhöc—Ñû¯ WèöN<«bѸµy¸¸v:qš“ãîØxæÇ_8Òn‡}}Œ¹‘›u¹~´€Ÿ&7* EóèÒ!ëɼû'š4àÌ—«ç…´àå¾ ¡×¯‘œ+‹îÔh@¤¾f?Oœ+0Î̬+†Î*ë™:ÖºIÀ(âZ¨Á䜦½ ùBúA¬~/¥ÁïFÄ“Áð¬å޾5öw,ôT B‡l4ãÄBÆo˜$s .8CØèˆd[ÿÖöùÂ6 ak±¯BÒ9+ø¶¯?êFZ¦?L­“‘ÚpPC»:·~¹£O8b7ÏlL®H©¼mJ5¿Âƒ Ò ËÙÕ©~ÀXÇŠm½–š{7qS™¤ ’“°f’ðjU©N¢µ#äúGî™ùõ 2«èŸûÚl®Zis¿ø+Ctü¬l˜^éùj韫¡ÈJ¸§’ QT·®Þ.à3Œ/¡¹ÅÂ_™8êç#Þè“.ïTÃ|0ìa·õéâ@ÚóóË }ö¬K‘/­1P­Œ?—@iH…!ƒyÉí£·çŽP ¹5\î6uº}ß/\þ×þBÃî©! ªšøô[œf1Nrý¹„v-ã9K杻i•0‡'Gr\—«RÈ+úNG¡Ð䢿۔ˊ*þ‚˜¸/HÏõ–‰[À`— €“L¬.i$Vã‹Ç›“”=’›u{¢JQm°pøDß,S“4ÍÇQ:/¿àWBJ°@¾:-:ÆÏ,¥»Ê¸¤‡td9Î U”ü¬õa:‰¯ _{pHõ9ȉ7Bú Jí\¼-?Ñ< ×àÿÞ¦üG—ö½^ìJаÚê,±eÍoC@ÅûK²¾¶hµÕ Ÿ6‹7J¢èä*bPù “ª7WófJ^æ*™º q¢›g¢‰´Ý öPàWg*Q7Éýú ´Êo@^ÎÜ3ÐhAú¨ÐûgTq{¸Gö–; DÊpؤ¶yŽè¡ ¼R@_Wá*ÏÆI™bªÁæg€±Õ}>i|GËC™?Ñçìãn˜«‰¤M^†d:å(tZ3¨Ø,ӷݙх'&2´Sá4NQÖÇóè¸PõW‹©ß (¡†d&¹P© K»dLÆ: lå öS¿&ñ …ðG—„IÆ‚‡õ»IO@"<ÃÖÀ½KpT\Ý"ÅŒëIjáØšö°PÕB*r{ˆü¡J®T$6øMPà”¦’ ¿û\ßÝZÍP.ÙÙDÅ"sKšÜе#¬õóc‚›@¿~7×÷ÝR~Þñ¸'‚º£Unæ^< Ul\5e¸Ü÷èêÅYM"ƒÝx¸ï=͈Á¿€›nž7¤ÈDïÀ¸ðD3 pÀ`4®—K|If/yë\výöþ+5K½E*¦ÔÏS/²ÓÃ)½S€Apˆµ'¾—•³€ÔU3|ŒP‡xBE1ú»a‹oà¬é¤xó)¨ h¦ÐPõxU|ÐU~®<ÚØÏeHvrÍ×}L7±Ñ6sK­“^2S+eç´DS ]¦r:øc?þg1ÆxÍè²1‹(zƒ© 'AUÇìeøöHLù.Ü„é†BÛ'ÎÀrŒûÛ…¾éŽÕl¬h æ ±­=SW\JŸ¹íÒ»%ÙÒ+@hBƒ' ëöžh}ä!W›d2!TN²¡‘“¡—ûåJÑ$X ?x‚…®`ñðhF-ª¾aJ†c²5&zššÛÕe CéÎ  »Ç`‚Ý -IÞ„¶O«˜ÞbýD`É…nÌô]Ú•™¼e6å±»W²|‹&îº3™L<eUÉÏ (šx¢'Â0€û²›ŠX}[Å^ Å ¹9䙕ïºó±71ïø–mHðüK5Eùj«?'©ðÁ£öç,ÄŒ?é.šl8¦ÔÐ?!˪Qh¥*§ <#›)ÒŸpTƽë®Ii˜~§Ó°‚ÍUŠØ‰‚ú9ÃL@:’v ó: AÿL£Ÿ¦Î›õ­efî$%*BŒÌ¬ªµw†H§¹¹¹]×õûTv¶*  Íî ò¼9£.[çiqÒÆ«æ—Šÿ…Œn(²_[!-ÿižæA1À#‚ô¦ÎƒÒ—03L¹8>´º Ü1lFU+,tz2!0¡|š˜OPÏÕì4àÐjiÄÚBýDR÷Ð?—Lû!ôù áÙ$¦ÕvÅÏh@ýù™t'juGµŽ?Wiœúû)IIä¯uäƒmÓº”D1ù[ÒùkãÁÖf««FÒ ë×:’°§nXéÚy? À£œ% Ê©€›Qy¬9Ãqhê‚ÜϾ>mÓÀ·Ó¬° Ò°V!J ¦±ÂT»—›Ú黋ʗ}6*ÙLküY!áÊm^Q‘—èÇØ SáÖCPm Ô]I¤óÛ =ÈWÁÖ³`Çßyíu¦÷Û‡Üy(Vë¯'iw²°{áˆF¸R…œsIØIÓáúU^=åÉ¥±¢zæ /¶’èQ<µ²6å!‚à‰OugÒÂyäB¦^ïsVÏÄqXÓïL½Ëƒó“sÝR©À#7@ùH¹7q©2[¯C4ÁΩ!OÇ´Y£ÝO}% =&(UŒK}1>±ÝðÄ53jþ§=¢¾Ìo ÿ$é.™ 5éú^áúñs!§ú;6<›óö½5ø“þ€Î9ê1(ì<íSÁ¾4µÎþ‰%7§ÓÖäÐ!"C-¥ ¾H#<Í*ïÑzz£SæÑvwÃD;àc]1„µ(6¹‰TÇgŽ6_]P…ƒ¹v&ÐӪథªÅüjíF™gy'J6L/5¥4IF*C ~ƒêc46™B×)ý)H=Š1íë“ÕqHI!€¡P\b!“HXÄôN¿Lt@ /93 §M3 šã­\,ãþɇ¶LL¶g¢çM‚–ç ÿûŸéÇ$îØçÿ™ƒ½I“úçû¸*jòë!, zG 9zŸô/ÒuàŠ†Ó¤ÆÀhÎ…7´ê…·öˆ’tØÿ~­ì»éßÿ‰çþÙßÿ÷x8ŒLc†#…o­nwFÑ?‚=è‚WØѳ(ŠkAu­Õ¥Éâd’£, Á´–FWÊØZHr¤kq+ óýöâÓ‚9°‹[2ã"6G/^­˜&¯ Úy€ëºÜƒ—›Ïƒ…S­¬ZÛ)%Ù"|£`-ZCš­Ž7Ž"ùÆn­õjLHž±iYdW¹ÕãàÙZþlh¶Z¬¥ŒúA‰]rŒFÌ“R Êœ\üÅxsø¸¨žÊlã }Bd6Ú%{!í4<´æ.ó§) NÓ"O[Žñ±Ýßëig4¦m¾ÓgÛÁ‹ÍùìY8£8:ãs¡]deº! ‚]°PEë(&‰6Dfb¬jÇè'g]äã:Œbûð½þå˜f„ƒ û´iåËVªxrGKžøkí££uódêÌv¯w™îÓû4}~†mMéð±XHvþÓŸìò…7’C¨"s¾©Çaeˆ#c;,<ñ†%³££Ì·ð(êÒ Î÷Ϥ*oíÜfcîGÅH×]·‹Æ—¬³g»æ°4Å™’*£Ã¡JÒÕùØÊU[2=öüôcÛB´Z¢äšxFõ°—W³"YY3yŸ ü —#— Ï—…i}ôDìïü ÌÛ/ý­íy|Ö=½8¦ aS4ª—‚<à·Ú'Xßg°g† ­ ½î nÙ$ƒö¾=ScàïU)ƒæŸ6ìÈfÇ„ƒs'yž§ÝˆI=˜›+^ÓA? IÛÉ —K¨ÝÚÑÁù:Ã(akØ+L>›”oïµ×Ý1‡KÞ9/Ô%q?ºÖ>?Y_GBÕÔLÛ>ôõâ7ðö.±"»áFxmGd½µéê7b$ICV^‹“ðcD yˆ…ö ¥ÙÒd sœ»lK¸¾{šsœTZöýã(fÛÁnØ—O†¾9­Ñ>¼EÐ1‚`@ÉÖ—«ãÓ¦¤Ãæ(é& 0Àíµ5Ëåü³“³7ŒÀÏê2÷àO~“µ'¤/Ì8,Ò1NSó<©'´õÐÛA–¡^’›FH< M,úì¶4Ú˜ ³IµÊ嘊iy{ƒ “®$áL3ƒ \K–PÌðvªSöÞìÒÍ››YKwFæ8cXa dõ> ^@y ^<›ØúÈ¥ªÕ|GÐ.©,‹eA½‚ #öà m’òxM@Q‚šŒ…Å;yƒ.MǹÙk9µÑãua(… OkìW˜E72”öÈ·ÿH=^&ü@øÇÌ y¨çªzØY3ÝÕ „L ,Aö›†Ú<\Ú#ƒ\2ótNœ…¾j‚ è5 Q?IQB°SL¢œ³˜û†˜Ëלvƒ(á5Ÿª¤ïëÈ€Mrü[I 7(LÍmrÆæµ£K™Æg¤NN“® jéÆ"Ò„qy€FÞº#S²µ‘vX µ§!Çš§9‚ñ x9‰õ¢šHA+$s>©»HTr>ûSøv‘àŽÄô.ÇÕX4‡ÃZ<Í¥TkÖ“Ó{i…¢„cÛ2gÀib¨Â³ÐÚóÉŒœ¥R &m΂±ÛÔŸï¹zùª Œ1!  ¹xnŸsQtö·wzê½¹Ýml:¦y>{Öâ¹K&§ÒsWkÙù&‡Û…‘/´çºÒãîÉ´ ÏîÒÈí®ü~ ¾6Š¸ÓŠOÙÚ>Õ)Y{p¼ 6ºŠÙÁòr¹¿[Ÿ!vG°Ñ7®r^¿ é”{Lè~ MÁ,FQ,›ÇÉÅAÕNýNZ¸GÞó(Ä ¹Éá,Ñ“uÿm:ÑÌyÇu Ø‚Èí,ÑüDbú<~´k’´µþ“´Œãé \ÃhÌg›4|©\9*ÿ"І€ù =9“-,Nñçõ­«mŽl¼ ÜÎ; ÚÀÏP˜‚rùŠ/À_32×jØæ‡ÈëÏ™°–ùkÉ̸mõÿËh”úíˆ!æ©‘Ež·¢aäôòÓ²“Ž"ØcÃXu©ºÝ\Åél˽Ga²6»ÝéÐ/X„·ïNŠk‹~›  ‰°9 ‘ˆn-3±ŠpnRòQ°k)‚2ÓµÄ/*‚N¢À÷ú,¼d, ÃðûhÈœEk#š7 MOÇ%˜¼‹íç«wGs"ƒis1Òw蓌+úº¾ñêL‘.XE³#b|µ{ûøÉ14<Ïý—Hâz½ØXÎý¬:%jP÷þ|ïK8pÈß'rœÈYðŽøÞœÏzÇäwáºñ,òb÷ º x}k‡°áñíÉÙ‡Ã=Æ£ áíÍÒÖ8 ³¬³*2˜ë¸àvê¸yŒžû{„ï|¸ã¤ØïÖq+wˆƒ7Îæ7M%ºõáþ@¡øÞ0Ø,Ÿ¿ ¶^ÍÛ]ꩇ‡&•ù@X']§Mb9*Khr.lò³¤J[¥šø’Ô}ÕApT°ì€èÿt’Ì«øa¿ÍMv,½– :JÄsAÙŸ^ºœí4A|‚zrŽæ‰ò–!nc0ëtÏf c÷¾ ¶ÆñoÏ­¹÷ˆÃ¾`F!;N/ÞA’¤°ŒdØF=ŽÚb|0 QX ŒˆÑf"ô18¡µ‘ìE‡TA2È-¬Ž ¡èk7Iaº%‘U¹†z*¢o…‡ª¼<%$¤Ç#¤­;èTß^™±\îc´½¥½>Óåùƒº²%ÐÕˆKa»àó`ç{››¯6_Ñ”~Ìõû™¸óäh ΂½à"¸ 0¿‡Ò ‡3æÃöÙÞÅ¥«Ýp®JAã„â™fÊÙ¿j†X¯­ã^óÌ9þ‰ÑÓ<2¹.VC¾DÎL§ý©õ5¯U[÷˜@TìÀ{—{ ±Ò)kª|Ëq“lëò?¬1GèªÑŽ™aSÍ€8²tF<«R¨k8¦ý)Û$Ó[?çUL†“´f=ñ`CÆ¢[ÐÄ­“Ø “¸ñÂx¤EýDgmRxm<!6ƒûg*¥j/Tzd}@@ICäìF…µ†57ôí‚&vZeTÔ€ù4‡‘Ÿä\¹¹¨+…Øåm’>uúÛM›;h|ó¥ç8©Ä[4Ws¨†Ö¦FÚ=t ð¤ >¹¦ŸUajyÂM|BÝ—|ød–3±†Û#ü‰ ½ºaÇ“5¼æv(dªÚ ¡€VY=‘Ëë¯û—ï~‚¨½8†¶3³æš&-¤Ó~ñ§Q”7+z.^vÈÏNší‹–õ'ëÖÁýÿðÛ‰烴¨{f0CÔY]6öЬ´xG¦úÜÿÏVê´xq¤°Ppº0.¹˜Ä]²MûýÉÞÓ\Zî-¶ÕÂþµã)|²«Øë4=àcgþýÕÑé9,GçvÞòÃP• ÃëèJMUGuÊúO¹ñxú Hþ[ûÓû;ô1¦Ø|›~~Ž˜ïQ>Tßù³µã"}¶iɰ‡‘9³œþµŒh+Τ2=j°wQ6ÜÃö©õh<¼G½Î©± Ó+|]Ý›0? ;þ«…ÄìÎåRaöÚõÉá¬pkí³óõ™É<~ØÅUå×,ú™<ñ3Ýû¬À»wQ«64ÌÅTÎ A'æ9ÉIW˜ëmĘat4 >•lHlÆ"ô„Œ%÷Øø‡X;¿¦<ŽÆ€wZû ÃnÜÙ&ÂF‰Áé1p‡ì‘{âô ‰I$žÓ»³óŸ^’¶Õ޽â,(BºaUoÔc'GOÀ6T’Mÿù‹àåü’I‘£Qaê¢ç.»ñÆå{î|J vŒ\—³êÖ½£Éð-¤÷w°¬’ÉJG·Ô‡õzf¯ƒe1^v9[H»Ï{ŸH¶ùHÿIegç;Ô‘ Ê­i8àPÃ5ÔEvªyÔ *€¸æÕèx”7ó%o _ßpøz¿Š´â;¤¦®;ØQ‹`>/ ð˜T¤Ú’“t$è Ž· *¹aÄ6d@nͳÎzå?T[þ™P•«Â¸îíŠsöäÙ12o²d~½ûŸÿ'í«¿ÿXˆ IPÖˆµ99ž`£qsu $? ¶Á‡:'Ÿì[Z „ªÑ®ÚÄ=wù1'0Ëß“~pö‘µJèÖ¸ßÇšäý™4<¯ ÎLfaM2Ö0!sÕAjO2àäs™J=ÀϘ ²N=ä‡ç•ùšmÎS†J-€6 S6d]æqhw¦÷H'^²;*ù%YÉê†ò™vŒ­×¯ŸóÃc%¾8¾G:Æ•+RÏvîyO'' @زÉs¯Öcƒ4¥ÍsÝlÀ@¥–‡cd?Ó}ø%âl`>}oÓÚ/Hèâ,Ï9Æ3„)I ÍY™Pb$èD²$„烃Åèt\©˜•ƒ¯ºÍÁ®ÎáÈz ‰šöm.å¼#þ:ÈLl`®g$áwÊ­Üé oI6± k&‹5øÐ0Îu¦0x½Áî¹îÔíµïO¾4¼“óg$Xœ¿ð›~¦& ÿãáyÿä(@jœ!åy‹½™úÞ¿spY“>ðSa3 µäÁ¦`Ú-è´ä†¬ XÜÕÒ8Nmˆ› »^ƒ› ¡˜‹Ž!ÝÌöÃòHkV/"ÍŽ…\ܼh– ­OêÐ賫x*ÒXe“4îùœ2û*x9PMG3wÆÆ^ÖE”ó1­²šT.…BÞ' W–S «C˜ŒÒg¯|Ø7朾š7<:“†A6í¤.vÝȼcˆï?¢opW-Àu…V‘Ç&’Q¥…¤¬Z+=‰ô^vŸñ >âxšæ&õCAT~›¶®Ê'è´róu5/Q:¦5”ûÞëõÁŸþ´ñ‹PæÕ±®. ¸Ô%¨¹pÞÀr\öûÓFEõr h߈UF1 c´ŒSáýËå³Y„ET`Ì( þ2­,&²@y©A{€qê6*¸T“:mPî9á8Áâo=ië2Öö E;#&”{%ñ·sάÂÆHn»F­Öo,qïþ;…Þæ½§£rØ0a&#Àu]­lhSÐ×–£6#“æF°ñ× ¯óŒ”mM£F@†Yê#•†þ´†áŠžÒ#MOÔÌà¹Jîwž@<¼¹ÜÀè,Þ'¶3ûl%±¼Ü ðÎ#Y²yUÒ´Ë”hgQé=ˆ·Ä<ø ñ[‡´ #¹ÉtÕ±€èÌP„Ðït8Œ…e êmÅ!BŒøwpÈ»á‡~ã:Í:Ѳæ°£ûeV¤œz—ç­¡ùYuÏ>:GC”¡Q&`Ðô4¡²”Vá÷è¡vÓÝttSíþo‚oªß÷è¶ßø[Ïñ,¿ºK-;à'—©5Ïb¨µ?|™7 ¼¥ö$¢¡ÙËFS˜D=Êe¦®ÿ¢ZVÉ8âŠÒœa½¯ÊÜüÈø0•Ø4CP¤&ž‚v‚Ù3iÍy‘¯çtWÚ9˜$¦pJe¥¥Èó$=M:‚÷ùPM›(¦§ÐÔé´ó0# `8ÎÍt\Sáè‰M–]$¦ÎrÎÜ?E=w_õYùßíväé?Ù6ž•Ôë±ß½Iªøã·æ}m*³gËÈaW#‰ÑÊG"w´¹ Iˆ¥QoʲÒný™* ±› ØU#2KÊÑ&¯%fÕj’‡äH ôTå3‹]alüèñV§†YÑL¨!Щ³Z{\¥Aâ(„ìgÌSŒ 9àl“Wâ}·4`üÛÙÇ= `BÞG€í!Á«!?q¥F]G»„Ýãn8å”°C›ÞÆw­#–JËDq4cÅ‚jîjï^¼Ö£~Ïb£Ô åôÿH¹"ÝŒ‘¯ä‰ÅRü˜ŸKس‰½q¤[W#|\íDÇ*L™bã•ÿìuðjk1®Ý$Byk²7Lkä^“¾b·S¡ $žZªAí®9Ò:á -½¾e"êæoPÅØE EwÚm¨&å vŒ¨øÿý?r&¬Cy£Va b§ÃRÒežÜ>³™ùzª/N=AR•ûwš!Ø‹$(Wð V£9O»7o@=­`"Èm°ßOž÷_ý ±ùú·:Km3Mã7X@´æHů(©u8îß§Öm T\ld-ÝÈÊ„•‰¦á2F0”e¬Oz‹2y ܾɬ¶Ã³ë(ýIg¨È0D›bGÛoÚìså" yhà—³SùqlüOØîqØ¥M® ¶@ÉnäÑ­ž-ûªáo½ùxûòÖÈs”ÝC¬ú]«øºÓõúÛ~Â¥õ’ú º~B2-UÙËë…-èç¶Aý¬ýtÊ>’ž¤m|6ª½neL´\ÙþÕ˜$ÿ1Äÿ~Ôk`Žp%Ÿô¤¶‰o-ÝÈ„mr02òyä`Í ë\ÄÌKpÚÞ¯·éÌ"°3¾àLs/ää³Îwc©dlC.‹2_ªÁ–CºßÚ¥&ÓM“ÌB€OCÇÛWŸyÞ‘â¶oÀZ­iº?â2-¸.›’VÀ ¡) Y¬¹{Åß···æEàÓ2b8bý]@rÞ,”ùP¨k’/Û*¾V!°*R¾Ð 5x¾«XÉËhäFWCäDû»EÀÒjõÔ(4Wkùú´ˆ“ÛÔß‘H¿k¾ò}¾–˜aoDél»×r!Pra¾<#M.CŠÑÞLë!4rƒ4 «À«ã”ö9Èk:ºÑ€^:WÑJ+ ÿä–ö…© eôÛåDÅù0â€Ð¼”'’¤kˆ;tïgéD!¦b—´€ L=z5éåWÚºhem#¤ä%ƒúîÌ)doF†¼K¶ÿrê²P ‰£=EþrJõÈ!r0‹âëâÇEî™­Íå¢~øù@ÛfwõöÖÂÀ› ìöƒvû­X"]Ô‘Íä¶Ó¢ýö¨mfÄýÕðIDUñ1~i«²Q´×Ž8ëÅ,´Šq;&;ß’­›¬~ŽA`OŠ1Gz‚„ö“4žæ¹fgÌ7.ÓOYª—8øƒ‚û %-•ƒ„ÿ—̰Tùe !‡?ðó¢%û}“‡•ÖÆ»‚A¨Ûý5úg}É49‹† 'jÓ¬ÐpÒø{+—ïÁ`…üŸB¿áy‘Zþö«y±óí“/ÁVs{ss« 9*ް/_Ò]'3;¤lÔ'È…*3® æ€R³w!+ÅÄv‚hgïÂþjo…Û {¬ÐÃ.¶E¦i©ÞÕìyGæú ›úÑÉÑ xÚ…Q OÊ94@КCC~‘ÉÃ×Ðø9´A4V…Z3ÆíJ剨1ל…ûg,Û0Þì ]Äö²c`T¸R¾™÷’>ã” Ôs(_’öÏs¬z]êÜ>ÄUÞ<߆±>l[ L™îZ²µ¹ýÌßꈋä“ZB.¨!m“{ì—˜'³¤YJYc»®!ðæ‹ëàd¯>=¤§ùÁË¢†$©äo+€[T,c†ù9ÕYy#*2ò¾|lõÒa™ýQ¸R ucQŽ›ð‰ÙÄ#døÏ_/èãd„w+SÙûzeçs{ß]¬±œT(w²©{w6xì6Å{;ò­ºN»þ¹f‘cVãí¤‰®¦ÝÑCþj»qûG7>®ÅžvÏl4Ò©¬âc"‰f GÒs®qlj)ǃTAJ‚ ¸„-6.(í„×t8T>ìÇö “:ô`ììo×¥´Ëj3ŸÏ‘‘¸Ù{@1³°k`\ŒHÂ8Ä|ºˈé?ÎÃTA#Õí ‹Jë·B<­â*¦22ó x@p¥5 'Q×¼`ÀþX…àÚÍòÖ$Íâ0È‹ð;Œr5¾/~Œï¿ÚøFýˆÁ%¶¶ ŽÎŘ]m"klò†ic…s ÙÆðåÚ 2©%RÖøŽn¦&1H ˆ8sH"ä=4-8®A:€7P£‘DwkY^³0V!Ü&Êöî¦,x†´ÄÿÀ 7»W$Ø_#)pp :«bBáw°%CYìз¡|™wèÅ‚p9š(¨ Ý,MZ#ƪD+ØÞ¸GÝiõc þaªìXKïÀZîâç;HÃJj-¥µ¸Ú@F:LƒÓ>ñ>µ­hV=År^™¨ÏÝkÒ¨4ýsç£Ä`¿¾Î0&0-ŠåѤ°‰¯¥~FU‰sŒÑ÷ÍPwG!üUž±)(å:y<Š¡{£&3[ß×y‚ÇÈŒÖ&8—Ö)ÇX­Uç;!g$ ¨js!Ø\ÉZûóɱ Ç”»ÿ{¼±<Ü÷>cظ¬y¢ÉS{‰EÂBíVÌä€]–ïço·O’GxÆ,b.ZëY˜V ð£õiÕsƒ"êggû|‡. ’{zHbÓg»äË8-*ÔeC8×0üYÀÎ)u݈Anÿ«?H Î(F’±å›¯Bx-ó ÷[/!)ñœï€8›ul§'› okG僿™ZÉ5¤±b㘣©ú&ãdã‚)›v¯ágiM3,Gã<OM©ÞTzþ8­Y ð±i ~€¨¸öý& ›ý‹ïÂö`Úî¢mz°&Zà=^Gzâ6}SÚÈN=I.~Z:o6xxþƶæ¨ ŠQüø©¦œùùzŒ@³Í¢”77º[râv 9Ò’I¸-5Lg!`ê¬Æœ«ŠF/«Jˆ1„8‚ªcp Å2! ¢¶ÿ9ëaútݲ=ÀTÎ~}y\ÒÖŽ´A´‹})&aÛæÅí’þK€þ£TœöEÁŒhhül\©Dš´~N«Š³”jcë|×SÚèOÒ5LýÀ·q„±Êó Ø,{luGÂXÝŠ«\|ã†L|1bùïýµ ̽>#G‰Mp¶ÁŽIBÁéä(Žçµ³,Äyg;–™nÖ½XßK’]˜õZ"ö2Ìm¾tG(òôé®r`<ëP2  !Ú¬ìæ+bn•ÔEEyC\?Ï^[óè?ÓÊcÌ©¤n®Ò—t£Ì×¹]ûпªŠÃZN SÜ8’†š0â‹$ùMc-¦bŒ¦MŒ÷¹j‰%ÅMËœìûHÆyGròOß¹n¹°iAõ7ý­çÁÎ|¦ ‹¡+U\FÖm;Ú–C#c ‡ô— Ž."$ Ѷ³„S¤f"KpeìvS„ù®Œ¡Ræˆü¦a~e`¾^o!-k{^0lÓlÿÐ3GÞeŠÁ`©¤cUž¥¡{£=‹ n¨R'Á˜‡a!&iä€aÞð‘ÛÊk3ãÍ™Ís êm!Õ>'PØ5®!.Um¡ˆœAzÂFß*PVUU…?þç)ÒÊIÆÎ®&­!Qc£ÎbsZGþxAkõá7 vžûÛ fP†O~áÏt¤ŽM¢£ ð%¥â6&aÐã(ÉYæ´[Y2 6ÔÞ‚jÿ Á>u |è\ àQó@Pûàƒ²øc³Bp òh!B:ò†Ï\>í~œ’&¦l§hI&e"0{ïÛ'þ§¨†š¶C¼ÌæÈeÞ°€WówX¬‚îN|é©ë”\k=ÛÚÀ¯£- hçÚ!·ÝÐ.óéRJíÔ,NïB·zœó•6›¹I™n"gB©ðš‘32e|C;u½Ù¤«*¨aeæÊv:5à·#Nýr±Þ èŸÍúkX¼ly¦3õö¾V·1Ì.ù t|uÖUÇï·‘»ÁFÖIÞkõø³ Èå–¶ò±³}š‹hå-Nœ³X_ÊÙnJå]ä~Ü%-»,öÂBWY ÚLnT°¤k>Īç¿ä´¿›£l–®yÿ*…îg¨ÿÔqü­uµS8Cp分qCÑXAu®fkâ–óTbÚnðgŽz)ö•xs»`Sl_ë.ÕŸÓŸÙ ‹99Ëú¯é­¿{›ÞÎÞÿIZ™„ˆÂÝ ™{š%¶í‘B·M8çbT¬~zLó^.'ã¶äónÒÑ1Ç|dBð*0®s3ÐpYpwLƒ§ôÉ ¢F…ÙS3Iñv»°üè||HÒ¢0¦yÝÏzè6è’Ø ¸¶)CÙÀ‚*»)lˆŸ’«v&Z{´B Ö*ð $ŽcN°=yÿñ‹!%Cɸ*Y!‚@5Õè'r™ä¼7„ævóðCñÌŸ£$„*u´w)Z‘Å”­'™ Dyoê1Fg“Õ†퀎i…e€t~rú…Nn©+éB$dyš¹Î/Å„AË\fÙtöl-»ƒ±jÝN¿·êȤý&C Àé¸õbÁÞ!48ÍZª¬¹)¬CVñ8=™½å‰UøüµLc%F½uŸûŠéA!aàC“U›l‹±|bf34ð3}5vÙÏNQ0øILþ[KûàTú­ÊÔvQG#x?ÉÆ$rÔbu“±z&$”…ZMK7dËÝFŸ÷œù³Ñþˆ“Ì ¶Õe¦U§á&ü·¥è,ë¤åâÏù@>Ýw´¹ÃW^Zý¤¬j:ÊTò÷ÿOJx ýç˜ÿ¶¢, JpG̵О§¤áìöÇôg¶¾ŸÕÔ?ÒI,XLÚj©¨" q©CeÑáþøCËü­Õüw4€!*ʇźÒ)»]0>»WjؤŽÎ­ 䯰=@^Ýåø‹>ÓiJÚ‹«…íaàã%m'7f³QÔ™}³÷©PwE:„x¸Û3Ÿf q˜Û›~ŸÆ5ÿmšAeR Œ9€?d$5ïfi ì!GjÚÜöaOÇapøÆ`´ÐD{DZè:íÊÌó.i÷º¤- ó à¿ý0]Ϧ+ùä •“4ɹ—‹8{–ö\5;3BsýµË‡|0J¬ÏÙJŒOÊîLt¯ÅzLmž©m™g.†Ìöj06nªFŒcå4|tçtcëû*x~Ý¥Éq>¯å8[lDûöôóµ?»-°^‹CsX𬧅Tö,ñÂi¢Fâ¶ZÈ£n0ï‹Àn1*2W6I3c¦OhhLàT¹]â©jÁiõ(ë†5Ap4\Í[ÎÀ®Ž¬žÉà†’ú`³X?u`T Á©‰å“„ñ”< 3â ÙŸj𚧤zRø@€§‹¬dðy aÒ_@LmLz/ÔcZÚÚ¤‰ R…ˆ${çІœôÀšéÆ7(÷Ý^Åöd./¥S–qg¢ÕKËheÒ\ûäw¦XÀ€|¯~L¾“ïwž|&÷ž)øV2«|‘ 9û‡3ÞKð°TÍ3›U^ȬÔhQ¨ ùØ0Œ¢*'´ãÂkÎf6ö75C¶3";èÀWÃ:pyŠ@¹gl’ʇÒc8Í\®öy( ƒÒ²ØÖz;g)Ÿ™Ï6ÀMŨÈu¼,“ûwk©S°‰Œˆ9MÅ0gœˆåD†ú½.ò.¤ï÷$›ökÁŸÅ•†Ü–†¼-¾uY˜úl„Ý 碼«Ü£ÖPåëcØ“H UcX]šT؈Ú2K'¹–DQïgu­x4ãÜe{ž$ñ7Òqƒ4¿Ì†éˆí`p§ËÔÅ2‘æû»¹ýØ”¼ò–»8aqµ1≞íÃó2ðù1&¯£9¶ÂÌ@BãMÔÔ„['Ѹ?܆],DR Æ<ؒȪ'žIY]cÂN ÄàGàÙ@oq®mªì’£¬êV žýÚÖ‹Íwë†_€7 I9ö|óÊÈ–f¢ ì ñOS=³,æ¿W­AZÌf¤^€rlöô]š€½³ˆÑ±˜¸…¿¦­éO°»\!ªt¥ÅÈ2l\ma™tS¥v—Ýy¾¥&C [«Ýöjn—çÝ᛺R/¬·Z !²æ]0NU¡Hçοir||ÈU1û„™uO’:´uE)'ÉE8œ˜d€þŽJ7A ÁxFêhLé‰l×è’´J_!8tmMœW…™þøZÞ\èîé½»ÙÌßB doy|[¡|"ñd‹T“¥hI+I˜ÛŒ#Q6ñ9´±K)bÈÖ2AT2T2ƒÆeªq‡r¦x$hÉßE’šu­VðfƘ¤“n6Cz®"^ÅÜè†Jqšƒû÷²j{•£L‚°NäÜf :ÜÜ8 ]¹sðxž©d¬ñ2ÛÏ=Ï  »Ñâ_I¦-Æ&k³á×v fZ6"ÝžG_ù¯_‘Xx—Ü”š‹ â®_Žw~üø§¥ïï®æ\úWùr—&…N²mz»í`kk!³AòM ó’\Zp2ÌÚëß×”ªŸMˆ•Qàäë`‡úBEv‘|Á>¦“* ºa)~GÚƒžK«[‰°îò\fyËl¾"}§Oõ-íÔ)$?díÞ<žÎáu){öÛ¦ŠhÁ$:89‡qS rÕCº5.xŠäFlH˜AÓóFCC–Ëâ$Áˆ'Íc°#Û3µ—­ä\3©ie“c7“FýÝådç6'Ȭopɱ,M0„{y7ÕaUú;—ËéGé Ih½ôfV¸> sÝ·*IÊ‘¿;šRSzżÎQÍo¡}S„ö¿QDçm7Žü¿Ò*+òaù³‹n[QØk…$å(®ÏôT¸vGæS+QMXBÓ,‰ƒ~zýß*wľÎh[òw‡ôeö‘ï¯á_þñ@ÝFþnZ]ƒ¬,úØvœ[쾸CÚ"ÆU–ü¢PU.˜æb/Ò©7¨sïSǧùBŒè}Ö=Δ„'âûÊ: m mvèTßÞÜ|éoo=Ÿ7 à$ØÇáivaZ)t0œ"_Ý=ôÄßÁá¸l@‘Z¤ae§ÁZrÓ€/B öpÞÛÒþõæ¶¶þé/ ÿTñTkŒèp£©ÐŸz3Òáͨg\Ët£¿F[L’–œÇ_èî`Ýê†a>z@* _šÐ‘Q‘•w¦´7’ü⸗ÐR#ôr*o“½$ö‰‰s"‚°]™‡Ðò0þ!Àð@†Ñµ[úHI,"`u_¦™úk–[ ßS¥Öë6ÀKž kºäÆeF’g¥Q¼Ã5ø]¦:P²rLm(»MZGõ³M¹p7‡j/#-S\€Å§äs‹ö+ ¯c.øï^&&~±ktÙv9²¸Ûó­wìö3Æ Ø…³¾ ¿QªXzʋݫó|”'¤Èˆ†PÆÙÌ•¤ˆ‡a³ð÷ݤå%ªMú‹öþÉf,A$øS%­<Š¿—ñ²y3Š— Õe­§]ˆ^%Ú›»Í¾ÈÝÊÆ¯¹»$ÕÍÞËG©áNãÐÄäÑ®ÀHN™ÈjÉ•‰)4²N" o߬üí­)/Ïiã @û-¢9Ö¯iâ ¯6ÚôÈcò.fÂ/#ù=ptT÷¢ÚÆj­EûœW„íLð#7‚@^Gb}e¨ ¼«}¶ë‡L€(îr¯}prb]Ä’x°µýÒg{±h|¼Ú½•¸Ž;# cç¨Ì¸è¬!ÙO;Æ•M»¥åÎ&5”´ä]lk¼‡&óÊÒw2YÐsi2Êt€Èj¸ì^Í;÷Û†öÀÁ¿´O>ÿrLÚBÈ8¼ûæå7læ8JlÅ k^ÝÂi²L3blUP+YP ÞÜ/g“µèóðiÑÉ&¼ÀyÕ6'MY¼gÛºÔÝ&ÝÕÌ5<ãM÷ö¢u)Kr‰É ®±¦úïõÄ3sø‰'ÍYÃØbÍ´jK¡ÃMc™‘›Uܪð`$Ë@)ÝaU7N‰1ïi¬ÞðZö„@œ„Ž˜ÎZÆþ™“ 8D¹þ$k‘„оУH:§e׳y< ‹Ì‚>â¬\ƒÄ~mÕev«9eèÖŒ—ÔtZVÁöv¶rÏl/Ç%-ý¶ôVGF-—<•Õ>ÁÚ²ðŸ­îbà‰áqD-6ÈZz­ ‘é$I¼{”˜@úœeìƒÌ„dpX¯ºXyAèµÍÑ'š;ÆÚÑò1‚òFÄ¥ ž#Gè*9,ÑéžÑ`Ýj;N]ãáSv©>9Iˆ2è $‘=úœëc3xöŠauçBb/eﻇ×_»<º<_¯Çt|My1!%±q$fD7\lÒù‰ìóªG>î›QEI@Vœ´o¢Vy"’¤šÌ™ÄDtúm°N‹>z^ÑÿÑ.»BËØë4‘$’­€£² ‰Ž\v­Ñí¶o—ñU4Êë ±Î2Ü>hŸ˜›<±ûk.6h€:tH&gÃo_œ³ca½Â‘×"ƒÒâðÆfÓçnÍ‘O M þ8ÍqN6iA2Ùn£•Ë««Ïøwæe¬uZ¢7ŒÔç ãø¡ ‡ZÑñê7kPטX™Cljy>tþ2ïõ|ç2eåèãÏ'—{ð9¤4=#·W^ѦæB ÌXIl•àjlA„€' ÈÙšY´€)Ô…"2‰òîj&åài°£¡¿€!{{ûeðúùBX0)7¦˜¤‰b¼;|3‚§°ÃÁ:mΑ:8¬µxÎÔ³L¯ËÊQä¿£Þ¹Š0¿ÙjMÕ Mmÿˆúejª3:B2æX8™„•DQúyw„ „š”Ò”ö?dqziw”nnn_µ8o$CZ À¿W»Äy×Ñ Áå?:ú»t´ôÝ7Ïè¿¿c?Ó$K[ñ´›æÿ´]üØý££êè2Q(“bckkŒg&d2ŪÀÓ^W;–ž7UÖ¾ëu®žû=ydU­Nz‰­ìù‹£/L8BØÞá¼CŸ9<$|4‹´‰¸=RÍ…ü«&qÃ(k•X’€éoTÁ>p9 “D" Xö*ØI¢:vaö…™|SÌ›ù8ÖãÅB¨«`Æ,Ô49^ œSHÀj`uÙ‚hž¥‘‰4±• ¬¢à}’\k߆mo¼40ß+ ”·vQÅÝ8êW™ « ‡P4 ÕÏ«±Ûâ¼çù±ûp|¢ql ‘7œ9°Åôd¸I!=qÕƒ~ºZ†8Ÿ?SÃùt$¸[%ÈÜ©§ òû#&KÔëÑ*zÅ)Õ;Á¼(ïhÒ„ô|ABÀû´tyT¢nû&„»Õ,¤ö\žy$^öí2Zÿ¥Fþ)Î å«Q‹„Î,ÈûÑj¦D§^']N¥zí3íá¼Ý[|iÎ&"ÍÐ3UÔ0ªns„B3÷qÏÀ²R!|E…Ç}2 á8Ì+Ÿ=¢)qÒïÿbSH˜˜—óM,+¢%ü5In< B+"†jc”¶!×q¯‹¾ž{²ïÐlŠõ† þ5öWô¡5˜’µæqˆ?ç ã÷0–° Ûùž žaN’}a –IÊî*²½S´@`ïÂîU´h­t»Å¸ä˜Ì"˜±áðþLš<Y˜$×[8Ùa0Ä´ÙšçJ°ké–Õn›[ ö³§XÑ ÿ®u? Ѩ’úô“ÛdB$ Û±f²éJòÕXddþü¢Ú—ÏêFQwi©8‘·^o/ç¶‘¶klOµ2Ag¬œž 0gZ<Ñ™T‡ìÃ\ TžUÌ\=eÄ¿andƇd2D±OÍÜIÓðóÞ'# loŒáä´¡CqB‡ä¦QW{_ ¯r:½Rÿä¶¥ÐO[}Üf9îF†¸ vÀ¹pgoŽõ@ŸKºÅn§ø}:SÒÀ²†Ñ! #–¸B0ß¾–à¯,nkn ü·ÀÁÅt ?ùƒˆŽ.HÛëe¦“"¦½ÒßèÚgZcïhÔ})€*#9ReՌГJg)BÖ~Á¼j2‰¹ÜYÛm1÷”+:=/à0g-™zÔñ²s¦¼ø<ذÈÄê£#Û3½Ó%2ëʲ (Ò³3è}Ò{|‚,Á©Õ>p€¿º†sxåó>jý:~E ‹934E5 Ê¡èU„öœi 0·I{Mb»u üLÏpÄœ˜GcÔ·Ð}¼ ›ˆÍÁå0 Mþ·çb?žTñé¦Å˜ÊÑŒi({ƒ^í"œÑÏfˆf$qÒ4PÜ÷³ 大ì1r0’ÈÈ©’&‘˜ÆýLuýmÙdŽïnÕËߺwèfÁ³³à?ï,˜Cðž› _à=\*¬?À{¸~·ïð»yzþnpÝ8åÅ?2j÷01:—¿õòåšæžÂê’haù× °š êúÉ ¦Ïj*ÙÐmUŠ!^ÅF>06Píê8º©± oqL=ó5[sg4nøý¨G*x7møWcݧ:º8Ù“~ÃGô Iöý Iˆ£‡âÚðo:4æf¼4€¶†÷ÑUA›Ì·* ó­u“?#ÝÂîÙøwå˜ÑHwÕP>µQ­0†€³MúäÎËàåμ>y‰Ÿ7ÎT‘‘`÷Yä• Lšº^䳚hà‰k(Öod<¸™Ü”“üsÙ9®Õm‹²òØä%‚Ö4`¢ø:Šg¤Ýþ‡ÏèÏ ñ‡ª À•QX 6Œ:e æ×6“×ágºIò?îq5‹á†ë.¢‚#ªM«O-\i‚(ᯭaÁ!vzêÿ÷ÿΫÏdN¯ûÿñß]†²Ëo½öºy-ýVÍ8Òàg6q\L¿c4qÓÍóÂÓ"éèjªÀO Õj³ÊÑO$Oó©tÆË¨ß×Q^Ê駬4ꈒ&C¶¨&5‡F1AXP\bh»Cf­Þ~~ÜÀ@ØÁöºI»‰csÝ/ÄÔfZA†À:؇×g:µJ¨ t‹°Od”žð½³ƒ`bž¸4Ú…É `2êøšl EhH†1Ö &ñQá§½X‘V?õ'À•„±¾Ÿâ<ä^¡>ˆ e­ß%‰ÊÓ ³–Ñ ²¿j­å°Ê‚@Iwÿ_Û„X»Þ[»¾ ¶þ´yÅä´qúv ú€¥*o©îh5ƒ[¬Ø¨´ã?ß ^̧‡þBˆ^ýÀè.†1ÒX°ëý~?)Ù]ã²Ñ“;xæP'Ü«ˆ—éÈ;M3ÂîYçdcY¬}ŸÚ ‡̆Ðz>Ñlì-)_F8äÛ Ôh®GäbRð$R>MŠ£zÅ/hÆX «º¨ù¬¯iƒ,`oBø»PÅ‘v¼UÔ5ˆY‘sDçE|''§Z€†Ì$~ÓV.Ç”yèVwót½aÖp®‹ Cß¼L݈½Æ]Œˆ„ÏÜÃà¯v9 ïÔÕ‚ïÞ· à©âªòˆzìuAªœçÁb6â­•MpÅuŽäN±ìÌ#C³«ÉNj'vðóp΀gYäçÛ4]v`š|lÌ`¾faKz«‰01B–_øÏƒy#3mâû@§mÙÌ.°µÛ§ (3é 52ɾ‰ÅëÔêA½ÔI¦ª†d(Ö³&z*ñ·6ÈHM KÊöV˜Ä-+ ÎSAÖîhÌ3zë)ÕÔe–]ÁE‹Ù‰j|š3ÁiÑ„$Ëy1Zœä•oÊøÖ…¾‚…¡[*cíýVª¢@$£Ê«¤•¤×*Œú£Z’/8ýj;óðå«ín0ëLát‚°úl>Óâøý‡³7Œ9AÒÇ¢ì-â^J‚eB#a€ä;æy+ |  µÄ8|)Š$÷ó8i{$@.l›A \t²…ºôê S(ÅC£eWQËÀáö½BÚùµfÒGE_[šI4´¹ÞÕpÔIïüÝN!ŸZýYœeI,¸¤ÅÜÉ è1… }óù’SGÓ¾ÊJ:ÏŠÿëx!Ûô‚S:sF´q²s7Wx[’Ì•ùk `×.鎌?´®H[£EBRMGg4UW"æ €Ä÷M¤{‰ùÎo$–;ßÒT‹/&} ¾þYÁ4™kVy¬* 8º¾Iž‘ð(Óܯ,M²‹îÓBð?ØÙ‡«¨IÒx>ˆ†‘÷†Ë<€(7-éöwpræ%¸øC‹”©ªSy¢(ô^ ը̔¿;Häc ço3E›7º¯Ù/†® œ&Î>¼ñ/ßýižbñ‡ûÏ2Rá²Ôߣ.¢… ð§…ãŽ3üöäøãÁÛ0œæåP3Ãéà›ïñ¶vfßýÊ÷Îl¹ù'·¹éÑM†h;ØÞ ^o-.Â3jƒ6îwrË8KšZ¢8qÏø®{ìfïRÛÌ^„°÷4ón0³Y€t /6Naji ž¦!â†\ \>=@0ŽaðÌQjñl ¹?ÔÓN ¥0-9Y÷Æð׊³{¦Ù+0ËÃŒ·Q+Kµ•ÄW^®©xàÌX˜Ë÷  ª ƒa •Ó¨ÇËg÷±Ó›¾O»š§¢† /DRã3¾r8 UYP3v¯økkÄ_W“ç0¦2•ï ÷ÍåJ›ùÊyŒVjç8nŽÁRž¹Æ.P¿:jÜãÈ÷M™‡qÅsÎ5¸)g#|,ïÄÜsêô¸Ô¨ü «yóu78/„y­‘SAªÎj3bÅ>ä ²{G{ß(&îpß.cYýß¾YܽU$È)ùª­b•%-Åù£—'fE} î¿~¼xu§CÈFíTÞuÜyDwÊì°Ý¹—%yˆ1SkH"îgQî±…ÉÚI´dÛŸ1žç¤–i‡ 7µÑte"“Éz0j¨‘žYƒ±{»Ê·<AdÁR-¹ƒ-n9$æÌæEâ= 'X©ü“Ýjè·#¾/äðR“uåÙ­ãb×<en1zèv¨¯+(Càw10ªÉHäg/IªwšpR¬…F3lÊ,‹õÂŒ¯æ'ØÜ[.ƒj «É”Ãë‡9®¬s•·hMt‡•¬!ÇøG:ë—€ B±žù‚¬§¹{–tƤûÌÑ&5t§•é>BÕuSR#‡AQ6G¥†E¥b}9#Umàï`Äþo7/ÇéU+‡)'( R¢kÀ©müFÿ"„‡Nãë;t7c|Ã@wWüÏ (6±‘ÍI›½-!OŽtùÐY6 ŒY8»cÝ}ßš}Þú’*˜5Æ™§ë(›¶dÄ Äp*%^( ^Z0úúAŽmÉ@4R‡g)”Kû gIC’ls6|ÌÜfòò+ÀwÆŽ–GXäNWïÅá¹yEÃSˆ°“Ýi „ÃÈc¸L@¼§†yyN¶whB±! ݯeÔVј8Cß½ÂR¿ÏˆªýLÛzˆÅy’fcBh¹­˜ëŽ@&9âÙ³ùö›‰?jƒÝ/éVHëvÆ O .–»bV6¨9=þô§ VQÝ{éÁ/ #Åͦ áI’àA7˜ÑSB×*-Œ-åž')ëÚ%±¼å×ÛÆF5Õ5 Ñb ³+ÍX'žìÌK†¡vþ1)1"ýÝ1}úö{ žNæ±sÝ4AØ;ÈKÛzù:Øž37‰·‡ƒªUšêÅ›½Ã³7rŽÒâZ¼ŠjR\ßåEubßkC9m$§€§ PãÔÕæqm/±œAÛgéno ¿Ð åÎzÕNOÚùàÌ?ÖaÒ,O›ºÑq…ãýȾ-qØmm¿ZŒBÚó/ÊX7Eâ;ìþ÷q椿AÈ\”9j|šsš²_¨\BBR—ÜÁ‰DÀ¯²| sÎ\Áh û”g~æY”w ‘ÐB_Õ¦$ä1à÷@Í]-Áæqì Ò‚ƒÃ‘ˆoÀ(Lv4ÉiÌ iXvM(D” ¦ Fá®i&x'©Ÿ•f[Ý õ±‡mð¥ ܤyÁ^IS ¸œZá^#aÅÕö@eΧ#´ÃéF¦C¹±üFÛ$ƒ²¨FLËÁÀáœZeÂ"f“¾—M :ÞAô§Í·$E³¹O×ZC\«Šwô íHsø.} Ì—ÖuÖ›®dK.{™šÀˆ˜HÌ»àq:áBs 7;Š™­âBM¬§¬f(fÞ.Úø?Kȇp肉ҟM J7‰êBâ5'3;Šk jùô}4¤vËìÚ%ðêò†Fqâ+|í\8çdRi›Zc'´¡¹#0°:u:É%#ù1Œü#:‰s|â•]w¥±iöI’½w€h L‚3gõ¤$ ÞñÉÙ¹©G(Ìç¡E¡û¶ój6“ÅÃâ5žd 3\‚#Sëu±PïBÑ>.HòT~–hbÁÂ2 ;< ¶ˆé$7 Åà™áÕƒ¢-œÒaNêÇÁY»!òV…à³Ö¤’LͼhÌ›ûo2¢Ñ6lH4ÏŸ[Ïæ”{e°¢#èA %–¨ÎÏ™f?FÖÔ÷Ð OeŸæÎ¡ÚO…ÂLø>Xa^fG pᙊz1TG°<(3¤H ï'*<~pÇlÂŽÍø²ýbø§§ÐÌdcÄ®ùåäl™ƒôûï÷Ž÷*‹ún1Lú­:a¸„ÊÕ ‚ ’wSüi•EYÞÒDtv‚_J69_ªb=v§üµE§KVv¢Qu'uÄŠ_€}àRò‡VgDÑÕ3P=¸Bï©uû'°|+áÙ&é°*zu]ýlC6Í•·—Mº`dxY}÷Ûfš,+ñ£×ïîõ_‹e}þ—Â.™Ãµý–n6Ýþ@¡%Èï·èît«¬5èÁ­úµîFy°›ûò£"‡PœýçÈÅÚ|½ùzë3Þ5ï6,å:å<»l3{ª *ŠöÔ%T%×Îìü¢½ñæðøÍ:ßù“¯ý½}r柟¼÷ºÆ¿„FLeaÒoŸµÕ^½p Ìœ†ms¹ûþ]¬” DÓ3ø’²DïNGæä•¿¼xÎZ당Œ6ðŽë =c÷r¾Ã€¸ X%4 #–øq_&>$ásþ‡µJ~h ܰ TrP~â |ÞrÂ"þ’É”×À¤{6ýÛ)¶,PÅ?(T̶g¿­9AÊs7J¾Ç ÷\ûýÛh\ƒà.jxsøq…éG=õ¨¯·ˆ½³õ"x6·¬cP$À³ARè‘7…Û&©zà±­·˜ÞmÂÝQ™ê”_3žsf‘YO!õ8éBR% 9  /]Ö *5OR~b]©k $q"* Çe6ìÀ!û¡FRƒûtax9´>’ߨ~ï¬øYî=ÿìë›q,° °1ÚëRبúC¤å–è;Cà‘@IR~ãΨÕògѳ†¤Yg±b‹•ÉÌ&‘þϬL wBÚ;˜Ñ¦ö")ßÈ6l°bŸæÊ†hV_ —«ÉÚP€«ôc/ŽÆc;øYZ˜Öq¬,GŸÕªŒh˜½þ,É‹îuyž<Áô ê+ 04ØèðëYUгÑc.÷mÀÙ0Q`. 33€ÊÖ¥5OÃI3Orö(‘Ú—ºü C7Á ·[[ÒCœ™9;½ÚKq§û_lQ§“™ï&‡Qf‹Žø­Tîå1œÁΠ+JÎ\åòØQx›`ÆbÎ’¸iàdl ä•BN° º /Öpóœá·ñ2C[ e2òB·Gãì¨iÙfo”!Ë9†êl:Í•WˆøZB&J3Kƒä‚³Ù‘¡¡ws0h¬„zT&L ±l¿ ž¿„¾³=oÅ“ÜÊiÒd$¸ÜZÓ‰cIÿ(uˆ7ã¾²Ü ÅãಾO #G0Ð9Ž©‡ ³âl"J-åÈx# ¦íàXNÙ¼—xU2<³ÜÀï[K¥ÛÝ84¥ÖûJ‡.4ŠbKb‡!V ¨„pto¡ú2€|JšØ^ë¨îÀ3/bÍr<Ù–Ã8\!¨×?4¼˜»î˜?µºQ”c$«Žr8ÛWágsÂÂGþñ ²iÁ@cý)WðÔ­~—Nýk‰œz6XÓ6‘J\º«H÷,׬F n°”aÈNItó/ö.,Z T„ªÆ3Ì.P‹ÃÖZÏ›1ƒÉ6LJÁ§°c6—$·€µ#êTíp§$G:0̰g›å"fM­ÑËÎÌ7%‚yHËÎ$‹‘‚¿-ÔÖÑ«¹ñË$× UÐþè!6Ÿo>£ðò弚=›Å÷°ÇhQCÄ}8ÓUÈö`MáÝ᛾öa&Û*7Hæ2!˜ïè/S¥q} —É‹íB¡ñ½+I²Ê é žæ£{å6ûÏC²õlÁÂ63Åä¬,xofı+ÿ¯T‘ ãiSó¤° ÀMŽª :U´@N#oÍ%»=á«xÀ“õÉ„é8C'ž:+RlhÂyž¿û¼wñæiî¿ûëÉùZ1’ÜówßÓ÷97üY»‰cÐeäœ$½´IÅž o½ç´ÆïÊHåÈhÔ8¼“ßCòÊ`2‘ð8yUÅœïISàÍŒ¹Q)¬Læ„"kï"Eä¼pf™ÎZ2!l‹ý]ê«f§ìç&}2,WMòƒ3ÑJy¹ãoÑV5»Ç^hÖšm\‰hí}ã‹Îï ¤¨¥£×ç&tW°äåfk7„ªÕcûƒX# 'bnÝÛ¶3·ÞõºI3ë%ôÅ V¬9bå¡eH³åÔC1þM„ÅÌ’K´+è5ÖŒ½ÃnppÐntÊ|ƒ:¦âK^OΑwþ< $8òUÑ `åˆÿÚ°¹C]ĺçÅ‘îӞד¿T>Îng šD½¶„ïAn‚É¡n•£$âÒºÈmÝe ‡Cÿ³Žò¼¯8¾Ïßð7ÜI[y’(¾A=>Lµ„8ãu3 Í„æÌó›ItM  R±L¤oYŒÆ² ñA’ƒÝ®b«õsTªª±ÒjõθýBB‘jcö4H3ÊÊéšÐ KžŒìkÄ;ð©ð°2J*dQF0ò¤Ëdæ RÛVíD#œU]9otüÑ•weÃ@VÞ« áë à){s¦ñê¬4wV<°qú{ÝNK=ÙLœ…š\05mmˆ0Ê̱h²Myê#{dˆ5­í1uleÕb™æ9,9˜f_eóŽšûUCwx«†­Œ;}59‹Æ¶™Q3a§£N'!×5Döq>"Ž”tz…P¬œp1~íL2|u ošcþ è¾t–J2/}ر¦+¦¸ñfœA'÷0Ë3–l?EAçGœËßÑPo÷ò†7Æi^ü‰õ€2áË>þíÃŽnåšÐQa'N»ÃeÇø…MA’LGÿ¶h‹‚¨3vžîÓagò§)mûÓ"O[«š¯Ÿ¼&éÝ;ù‰ô¶ô™¬¡ƒ™éuYY +Øù1n_1lrF«]«ÎÄ¿ÝÎ[눕¬A’Èg"(Q)Ùë×<ö~´lãø ¢!ÑYywooÕ_Ïm’.€ó7—n*µä”G>3`À]wÿä£AÝÑ€6ÍíŽîÍÿ ö-I”á+Ä-Jf \èLÐt!Í»üdí§lzï”°¤1Lë?ûE­¬OŸÙê?åËkãt¢…ÌS$ãvÖÀ!è*!ÎëªqQfÖERŽV9=Ø LD`…QZ‡køAð;²2„ˆ»x«Üëàù‚¬øˆf ƒ¡åM¥ÆŒa¨À{=³J¬*¥’|‹!H1 ouUãLnXžïαí]¢2øÿÈ¿`ö†œ¾PbZE7ílågK%ó  çx­a*åtã†þYßú»ƒQ+'弫‚8Wé踟v‡£êIpŸÓ;?Ùmv1Õ±Ë[:¤ÙÙïÛuÎtpÁHO»;Ã{ÒHXTƒ§g¢?3Ù8sQ s'hãXÔm@‘h°%Å&hX±‚ªÝ–i‘H©/“*874OoÔ ~UŒçL¹Îêw„Ùô ‡5¼ˆÄ’>m­Æµf7ì›ÄZ ̓ehŠ{ÔÐ iôªÞ–ÚM$Gã £¶Íåª0Õ¼'RÒü^'BOÞcÃ%ß1þ°}uIS·ni /ò¤¨߬¬ò²ƒ2¶°õP# Œ!ª:± L€‡IáƒZ|/•’±€é…˜o¨âERøÌ±ò­”¿Q'òäð›Mtd“¿ü~ah5×çXÃ#4kr´øW¦Ù„ðý„3$2î@ãâ0¦ÎY=ÓݤEfù€úaƒ~ß°MÞ°µnT@«4d>¿Üœ<.dYyœZÜfñ…p $>ÏNªŽÀ—ðlÆ–e°ÌM×ß›IS‚Gƒv K%W9¨ÐPæ %hk"418#䙣¨¸¥WÄ^/„˜—éÈ[ötøóê I™}Ï|³Ý´b窌åDº}¦¤èa„HÜòY=ç3õõàÑ[P˜¡&Øôw€ù½(øÐcI¬¾àCÓyYîøÅ_ûtxa’¾lDyWcŒkíðÓþºs(¼ÎKnÎä³ó7ÇÛæ°ÆºÎéÒí&eÁñ¬¤„Ÿqä_~ZL6¹îHÍ Œö»Ã8ouUȶkkJ yS˜–Sðî˜o¾µHt¹rç1‰‰¬}íïŽûøÛ¢ùÝ$Ìou”¤þq‡ñSLʇKA¿ºDk7KiYܸºISHi¦¨˜N§~[œRu]3Öô>‰ŽÐÝ»r%pWZqZ”3†{ò„¯8†o7k†‚(lô(½U#’‘rî2àçàbkP»Xƒm1(ÇØ²v @J+I»éxZ¥A’Æ0ˆ=˜Ú8ÒHkÞQ¢"¬åK­2zâ,éKΟ[©A:ÒUK÷b¼tŠwÊT–"M’¾’ºÐ¢‚¨p†¤È™‘BúÒ[’{ ½Ô˜3÷w^n-°œ›ß­*ív©nµKÑ&õ ]C/µé ã¹Y¹à”+³eÑ^F5ÒqÚ$ù¶¼´ÀG=î“™‘>á5}ImÃ'Ù¹H)i¶„™k’6‹kÈä÷îUÕ_f¥¾d8\üëo5ü·ûT´=M©£üƒ¸ì4üŸ¾ªä*ZØ$Éï԰쫉ò‘~ Í·–ån^Éåw #ÚK6ƒö§÷ÙËWϞâ±8“$îË1Sˆï'Ÿ¥k³)\&ŒCçÙÖ‹” @ÄÄÜÆ +Žè"u+ó2çç@  -½U˜`ky6À‡V¤Ùýùèuü—ì‰ß™}ÿä Á .´á]«]^·ýsP`Í!iR&*—co$úê5ß rãT(Çi̪ƒdœtÎÝGà(|…@«0˜˜ÝŸþå©«p*‘ä®1Œ]ê°²ý¨XGbj2…¶X%ãWžLtàŸL>¯‡’AcÖEGÔ“†ÇÖUNj5:ëÒlòœQ\kÁÑlj')‡ñô˜|ã“L©ª¼ÓÞÙÉñ^Ã8jíõý¥‰A0Ñh¦»s*F_SÈ­l—í7bê¥e/ij6K50jà ‡ç›³saæ<4*fm8©ézˆ+þ|Ó­Û«Á›T`.©—Ɖîn>À7²µüŒÖ ÄOô½…§®¶àGŒFôc¦ÿ˜év¦Ë„˜™î5B»¼¬y\×t¯gÛÁTDƨÀ}+CJTÀJ€“Ä¥RÓ­ ÏÖ$W%]ÉÜïcÙYˆdE×W•KڜΠâz󨸦~^_¶º?bñó¬³ëÌ®3ž3ëÌÎ쇿£9š¨~¦ °‡ ÎMÓ÷¾ANB¯1h››¯r/kw•!ßÉç6ùQÿÛ²Óà rÁŠ~(˜4zƒHpUžO`'ÃW™ÇÉÃÍ¡žfš}¯)3Mþg¸”i“húWó‘ÚÙt9$·eýû³ŽxG§ÞhîýtD{Ëã[›ÖZ9çu‘1Ä8´ë¬†{µKµ9±N\\ÂW%D‹˜O]%]•%¨¾Æñ“G£Œa9þ'a÷ïõ:éVBÒ Nq;÷ß°®EÌH Ïü?“Ö™p‚§Ê¿ÅOUŸæÁ‡öR‡ñï—Q6œ-‚Ú4‹úìȵ¥÷.ÿã’F³t%NUiøj$àÌs·ã¬BÇÑ]LSX1μÐ*6åÁêÉg}û„æ¬Bß°ÆvÆ0ë‘"ùîðÍÓÜ" yè"Áü§­égšB:±7ÞlmQûƒ®¿ÆÉõN]ÇïTû?þEi­õ¸i“g«-êa˜–¾0ßcíÁ?kš°ŸU?‰‡ 0%ål ÁÙæÀ§)‡YšW„/š'¼§ÂŸòh"5Lóù¹ý•+2ýÆå˜>¾‘YÑ´õõÚñŸ¿žoæ'Ãzf=g!•îùu+ßÑ~9 ]…£(7 dz ¥vW^²—ÒR‰èôÞ‡k\'0Bó§™°!6d R÷C”P:¶wü](e\EïTqëïéß«ïd^¨“Þ41¹àäy±8þ¦ëöÓÚ ÞÁë‰i›íÞÙ2ˆÔÕ#¤ÙZ+—Ð!.y†EØÉ„ç‚"ã,b bð,p¾-êŒs“NÉ WÁû‡É$IHä(ïç|iAòÔ–ãwÜ›èĘC:Y¶ ïøýGÿ¼ìÄQ—ä˜.Cx®ŸŸ.‹dàñýãQç­¿ 'kË\Z)`fšÃѸêž"Aìo€ñòo/™#snì ÈØ™€Z°ìàFêA#· 7GwÝŒaþý»‚6*ØßüÛÁ³9áÕæv°õ«ÿétï½2KõâØì)ØÒ\atOiΆójÉ3¤ !°žXvÿ‰Ze¨%£Ø€äAî«è–§OLCd•º:­¹‡¬ÐW‰f´@çP‚î;™VC^œjÍ;öÁ­FK‰³Ë•‘r’ß}£‚ÀÒ1† °ï Æ©5&©ñvrPIíIk`'µ Y×úËúƒâþ¹.2ÿCœ#3Åñ=õtÝë’6ÅÛú û0"`Ÿo/P¸d]Ö±‹ st’ ³éÙs1\k£ÊÞr§Õ¹ ¿³;©æö®åÙG±‰@ì FÁ5”'¼oqC¤þ¹æ,éÌ#:—†˜ŠCãîáB“[ÜêØË+3_šÖøpÐW‹R?b–8ÛR÷p:«…ÓRщ©ã¤à­<“ìã™À×Ú“8µÞV÷…VÚÜñmÀîlíT4µzUpqG÷™²–+´tÀšÂÉ3ÕQÏ=Üâ­ÜOÁts˜l³|pHË µ6s1¨Ý5T7F žÄðÂütæ›C"7Ó‚)&BŒºðP™4µÊÍáì¢sè s±½@‚Œ«†"úåìµ»Lõ š©lÈ-i6ŸàqPüZ ‰>Z³oq}n zè)íÒTèiS:ʸDÛ¤Y)T`ì7dé©b óYÑ>±XÄUp´ÖT޽_‚>{a¹˜å`f‰qg;æŒØgÐë°¬àøŠç`NÌö÷òùêZ;ÓþÔ'©= ã©×ÑôL-¨©â>nˆò4w«K§5¢V ¹IÒGRÛ <·ÔÅÔÃt[ŽÍ=Â*Î}bd­6ÿ6hÖøêøÕ³=.Þ\¡¤×ìrª˜i¯ˆÄJ¬áÜü›¸ `ϳ„ÝKæ‹ÕsÌ8ê’kzà Ê+4-Ð@*CëF;ÊÈ`W‰] ((cͶƒž7‹£:GD…Án²ÌPÑØZ³¹L; ù­…µªÉñ‹s3Φ(˜ÉYA"²ÿݳ#Î :x¿å< AŒ‡‰D¶¹ ËÚÇâmp$ffEZC®”B,«OfV#°“Ìj;fÌ}×%#ÊG¹å4)Ò®ã m|Œ2´¶q¶i7Í€‰Ã, }ÂIió2.^³¢ù–ƒja‚š÷Ñ;Zšu¢ÜDúÓqެ¡—ÛÁË9×ø‡~ßÿÄEg6­»uΖ¯Xª{òÓ~Ÿ¶@Ð!ïäŒëœƒM×·¶wè:XrÐ4^¦¥!\‰¦h{„5³;Êñ·E:"ì£$E’PÔýw:¡¯^µ;ìJUkªiZ©ç_¢1­&zX™sÃ^·K"ñ¨uC¿¬f…Ó{Ãæ±å¿žÍÃúUVå€<û;›››þ§ó÷+Ii-ØöÖðO>´ý,E8‘ç'_ü ¯½çÿ(¢I`H`Lcã-ø™f"Mî÷º˜ÁHÛãº-»ætánÁÓÜ£ò)Š!÷”ù*i0ÚnYcPFˆWçOþ9Œm„ø†Íw´œÿäÙûxù¶1w½VÃÉ»7þáÛæ1½Ð˜î[ôß6ý÷ܯ ½U9 [ÜOý5*¿qrÞ~s°þ“7 ŸÃ¸U+ùFòˆy«¨—õ×’2Ž×ýµ­PÓá¹ÃF"om¿òðçõ6¾m?AÚHÖƒï(Í8¸­©ËºÓŸHd÷òzû$'ñÈè bUİřlŠÊFÆ3ýÇ÷—{çW‚÷IŽ#YÆEãÙ…u 9sþ.O:}ûÐT}¶à#BoÏ$˾ K4|?æ×N¬BF” u[Æìÿøœ÷ŠqÈä/ýg ¾>8âÚg{tyî* ×jÓÿlB­x»kw3N¾1ê¨Ô(V&Üd-««ùŸÿ÷Ò±ñ=¹ÎŸb¡ì(µgÞ‡’° O”4øéHP.iUhCˆ¡Ñbó¬¤j*G¿î™Ø/³h8GH0ºE†£¨Î[þˆ<’5T¤ž*À´Iƒz¡±b}Ó 'JŽXöÜ P×Õ;Û,xc[ƒë˜±9ñcÞõRž2´\ÔŠ™£ª@ÖEÿßA–0VÕÙg©ÉŸ”M<¦á™ÇáMU …Ÿƒ>®‰ëÈÃð‹ fÀðð@žÌÌIP~®|©ÐQ{ß\3ýx_ZyÈ8ÄW£Ü¼.ôæÖ‹&¬þc·Ÿ›wQµ%©%G•9B·-=¤î¼ãñæ÷ŠþŽ>eÞÖz)V!Á¸¢ÐÂŒ©™¶]Iá@g”¨Òä [ ­Îz0=·1Éqh‘×ybÛêŽÄ!¤Ì$– ;µæëdË=zgßã'*¾Ík[<Úc;Ù± ´í¿¤?¯ç“aj4LsŸ?ö í³iÛçÎ>f¯Lò»Ê;¦nå'åÁø´BDåðl@+hä­ˆÁ1¾Ïý``;×"T–WÉ¥1”ogÎv¦9®q¿›Úh¿Œ×M°$+’2>>-j¯ ½Õï†zt:ŒªöQWp޲ý.X§˜ÓîÑ'=üÒŒ˜nµ)p¬Q-™ .›:º¥££ ;³« á0™|9k·Låq:îRô¹a”¤YD#蹨H[:zž—I0½ ¸ÝW…j–êV´¦ÈÑø9ð÷S=‘ă?³9[5—;§ *…ôœëûÓÒ¨C6úÝ ¡¢yô4F™ÈÏeþCÓ¡Ÿæqh‚Í`…ß7:ã%lêG5ë½ÔÈâ:€3YaI"Ó¢þ‹q¾ G’¬HÄžy™„ÅJÚÏß8ð¨ØÎDOø;òï8ò„IÝxŒ3'ðPg26«gõZzÉc‰Uÿ" äõ7`îåâ P„55+—]yÙ7.‡¶»)ÕzŽ€§Ð÷wÇü¡eiPŽ0ªZÅŽõsÂ?ERBEcþÐêõÕJœÍtÑÈšʾ€`viÍgQ–¥qãòö’>H$‰ÇϨL³×9 2Ms“ïQÕª§*QQ ÖP!ÙœCÆð¡i9öLyÈ4‘ªS©øP©¼Í®Ó+¦x.È.XïèC+íÕ {|ï 0|Ï‚—³+ÍuŸüjTàY|ö jvRpíâèÀýüÙºÕ_3=©«¹¨ˆÎ8SY7õ§'Ô·6c—¦säh“,Mn]ýÞ˜ÝöÛ‡\ââäüÇ_ÛZw¯ é3ûÖ¨´hÔ7ñ¡ðF“À&B¶åuò*Ȉ­‹¿–0¡æ5ËásQ–5¼ÑãàžX V·²ÄrNŠðÚÎRë ºÆ—®ñwGaKã£Ç;‡&Q¿3[¸¿µõüŽƒÛ-X)8ßÿÜL‰Ù!Mz$#9ÂÙÏRŸœæ&{›•g{wEQEBòSþö½Ïê΄¥ö jÆM5|Ûz€›^ùyDöUIja?ÐìmcA…HgëðOzžœ–hçÇ+‹ÐµB°ƒ©Rjxàæ!¨0µ{.êˆ=NÈ%¬ŒQ]OI®O 5ƒD‚7)¡c!¯±±xö¥—ɘ:ЙՉ†ô¹Óêæ:(“|b°N=d×/)â|^C)Ùzñr°w=N3˜yñ*G±¾áuhÙÈwqhºõ›{ö扔³aF0ºR§Šæž°%(›5‹­~ÛÒ¸Ý)Í¿@5îvð9À‚iAÔ¢m)ug³µÙÈ$¥­pÛ»£þÀ~i‘fýôÚ´Ø÷6 ¹‘‚ŠXzøÐæeS•v†·j‚7Û%inBp«¯Ó®P9:ã®É«~Çú0x,†qÔ|ÕÊ‹xèALoä67!5˜™n¨M2|çq+‰ºA/ªeR_1Ò5ì± {4ŸZ7ù3êM$ìrÉ¿FÉ lVQÁ)Ô·ôU¶Û0f‚Ã0‡,Ó`mî^ñ• ´WZ]5¦ e²•!¨ëËkÚÛšR)ší卯Q¤ð½/I¢÷w©OÇóm”4é »]ü [ùp º»ößÿŽ!†>þþ°(¶›ã†,Æt (nŸù•ƒBG@Ÿ÷A–ætbïÞtZaZHàH­crê¸ýÀÿ@âåîUÚëµ"j -æj`@ixcÝê–z¹á þKIN6 3)->0#x¹jYý?§ùÀÇóã a-š×µÊèvÒeðà‹¹­Úh§ö¹V2«UÜUôŒVz«-w™óGœÓ³ËÀì¡~ýb<ì3ð¨tSðœS»ÇÈmFx)ª¼6ŸZŠ«F—v>Å:è»´ÌÔ0Íñps­54ת–’L<" YåÃÈMçc@"’Ⱦ¯ã)•¿öwûtÐ^°ôd¥M§i&ÙÀHPïtåc+Šhm‡1°Œ€€§½ùÆ H0îÄ4gÛ~ߨQï¥ñˆÎ‡‰>A`w§JŸJdôÿ% ÓD¹RÞB‡ËugÞt@:΀BÃH £ò©5N;éMmcBNÉ)Œ<@ÇÁñÐ×öh¨dµãT·ºAãBo’µ`žŽáE˜±ÿ.ãP˜Ým ù+GR‰‘ñ4/¢NGUõ¨ÏÓ43WV:‘&p†P£Œ?qû5°^,†Ù`[Þ?Ý{¿ÄZËb–+[³­…[«±'BxrÅ´‡pÎÖeý~÷ƒ1ºtë:2¤gô2„Ô[Y9ñ«ñ9SA÷ö¦¥¼Í©º¤•™E1DØÝ«¢5ÇÁ`¼’i …9qo›w† {†]Þ—™ê¡¥{$gNkö3WƒÓ®¼äÆÏM¯K÷Ü¥å.& o6¸HD8~8/È(±!p5#N. všXR½”­NCI¹ëÚ‘r‘UbÉõÖ܆'4Rw^Ž_l@¾!ÑÕã9%u%˜mt øÕËÃNfqì­nlÜ:¶ër(´3ŽQ³éÄ›Ž/›2î1œ9çDýQ¦ “ Ô Ó…\œÛpÀåhpÀ);HGš@}þö¿ì]þ¯ .Ä»1G ¥â_Ð0Й…U5BQAÐ àj¬Ò·’mrá¬j’~‚òl_«íKêx ¹‘6›¡F ÚqâÛ4©íäû´×Ñ“¯tö¹NÊõäc1æHJúAnöÙSUr¾å¡æ ûÝX¾Ó†Œï¸qæì8¤1Àn¡_¿\HÙZö‚‰ºá{9ÞæíåÙ©å½Æã0ƒ½Ž`^ÛU1Ñ´$ÀQ¥1£&¼W#G„\ì…VÑ á×Û,°íøÛpÎCi˜1xDϳá‹*·…5Q@±æk©Bh¯¦Ü×^ NzY®|:¢£©;H'Q÷ÖßíÒØÒ°5H kÿþowàÚíÎáÚI™Ï82ÿ’Ä@¤2ü·bþû-þlЮéÏÊÌ`ÔS.þp¥Á˜ ¿i9æ„`­Òóc|¾m|H‘.¿ ÃòOÁùù¹5—êì{¬*Ôx ¦Æ°H²¨ …ëzQŽnõ,žÌH^îIûœÁŸ!2CAcõC­\Ž)Sªx”»anòª9³¨‘â¨|¶aî¬Ñ (à¼*ȤË[xˆ<ƒF¨MËÌ͟᜻Ž$¿øÀjú—.÷®¸ÚGÇ>O® Œ·ÿ,@`öóàÙ\ì‡5:›à–/ì:B ùŸþ䯫flvE㙢’Rm¸69&Í×X‹NÁ¯‘1˜sÜ­&Ñ5?´›€ÎÃÓ\‚í1mš<³æýöÂzøð’Š‚uܾe‰±]Ê09ߥS͆ô£k¿_×N&´oÆ{úÛ/‚s5/Ú-BÔH: ƒsž©‹o¦®7Çø&Ñ}µ.‹VkT,ì*sëîÀ”±»=á-ç2Æû€ê*³¾{Øe"N€Ý¢ÓêЇ ÊÃDJWΤê†qÌïpM]²OZ¡¦.!颼mMÊœF•äâN' OÕÑ5ÈýÏŠ]eç=x—’QÌôŽr1°…£U4SŽNwÏü…~FР¿cçêÅíööóÖ˜~^ì±ÅÍñå;Ú%^ÑÿLoΑM&b“Gšw8ÎÝ$I-ož›P÷z еÜ|æÔ’¼æ^E5=W ;´IŠèrU6j¾¾g{X"¼S;ÔA ê¸lm¼~¾ñúÕ†…wdï,ÆÐ«lœ¥EÔÛ8¥ˆþµŽD Ü&ƒÝ]¾ûÓ\ü)€š¼;!+6Ô*åœÍ‹& ¦3­÷\qZ{)xž5¦d9ÇØÃƒÒ¤òü<`ª82"N40rp~÷}ö×eÜt&v‘ꎋ£ ­Ì\XyF5%âøþ‰…Mö#¹B4ÛΘ§,;¸ÁÛüÃæàXÿQçսĕF0AÿG±aêU§ílóâÆd€ÌZ.Ï®€cÅ…ÀW¢¹ÿöÓªß?¥'qÌØÜM3|σÐa³÷Õ%;¾_Œ”Wf+fT;ÿ ¾¸ÙÚjrvT³W^EE^²pÿ;sšü—àŒ¶ÔeZv’$OˆÙ”ù`ÍVÞqŠÉ/^Q=À¤ràîóf›ãýýKlv…~ÀÒQû`IÿÅQOwÒtØ¢†p^Ëê•OEP”+[Ïïsþ²µeÞ®$WÝÆ¯7VÖrúµ¥ï·¸í{ôŠ‘áæ;ŽÒ¬¥RŒËa&жQš,Ønvœ’w¿ÜÂ)ÅÃËê¡–˱t ±·§Ûâ;WrÂνº q¼¯*[ùœˆTÂ~’Ò¨uï “ÿ\¿å]ô­õ{ õÿýgûŒN(¤Ò½¾¯ÏxÌæÖ“ 4P±¬ü2bY‡¸ÎHy åŸ*2U:-Clïi›áX´„?¬L¸zº$OØ žqªÔNðjÎçòÅ•aüS„þ'†—Àü`7Ùª`ñ44UUÝ1¤â6dÕß­' \¶=ŒECd©`|Ñ»# 6#ý&§ïäÔ%ôq·k>¿Üiõ+ƒò£»i²"Uð¿ób'x>—8´sèïÁ™£|#l,ä Î (Ì¢ó9ŒK¡”ŒjOêkJ}McBsYâHÎd«üPëñ̶"zà51rèÔÒc2âšqv N–õš žGÌHbû5·zkEM~,@ºkjŸ"üU*·ìÉ!ÒüÞ¸|óg>}`f^„3sLí£/6è¾ ia§ Òú÷eé±îøí€(’Y¿âRë¦2îïqd„¦S/òw5‚$]Õ"±çö6Öú¦Ç¿‹¯´ü•TaFKt—$ﬕM&ª¾nBþÛœs(dwPv‡ÍÜ]iÑyŒFÝê.ãeˆLbþ"SõпQ¤ý¿ª È©¹W“Ûb»j¬«RŸy©³RYó—4B€ÛíÓV'ºUY¦ƒ"'Ý@U• Ä!°mjf|«% iÝ^¡™c:¨UϯKáLäCk”4r“'.=¶\0³ŸÛ‡~¦õ9õ?“\€×£}¾lQMy ˆ’§êã3Xï.ÔDDêÑ$ktŠts¤JÛ¦,fgă¤<¡Å“(ïÖjŠqs™)i¬ýh„k­QQëXž¢‰"hˆ¯ãVÒ­sF;"P,ï#…z4”K-­ƒ²Óuaº©Ô~ÌFd1ì–Td¢ šüAÔÕp¶u4LÑå¤,÷ .´Æt5ÛV6)M³âJyßLÈþ_¼ã]~š¡«]“ eÝìLR‘„ƒÌgÅ×o)G,—¨’ Œ¬çèÐüMý*t­æôA7ïspOóœƒÞr†ÜÇu©ÙÁW™}vò R÷°“ß0›ÿ,Ø^úÛ¯Pæ;òÄergÃGÈ0¹=¾Hm|<<©å}Ì”^‡D+®?ä,bñæX[k»‘à µ‘ærŒªooâ‘Êü}R4 Qtøo«n-Êæ¨ÔÉÊ“^G¶¼€{ckΰG îÅI¸·}Ó<0xëS]1X Xðä.)kf²xÇÅðO,– i×1ùñ5w‘Å®]ê4?†ïªž•{&.ÉÀ³Ðd®CoÕÙ—KS½Õ±¾‚ß­¶ùí+É$èÖ¦P¨l¢W·_[›[óNhN 6ƒÅ~F77…uÄá8Íbè¤ÈgÊ|3(µQ0\¹çz£Y1°>¥5»† ’Yà¿eº!$`»÷¡Ýv¤èkÆ aé4lêºÆ6ÄØvÆuÔ˜%Alx’û$À˜9mcÄ~mð4â 0ö¥‘ŒT_~\TC=¦É3ö%:ZxšV4]e€šFšÆ:dûÈ,ʦÀ9{s˜¸¶-¼tß x®*Dæ¢oʽ;‚æbv™ÑÔâ1"¡ »ižŽì$uÔ³ÝWýÇ‚žfâ(¯H‘¾ ¯¾Î;gx!ù^¸¾õ;¡#s…4)øЩ1yP2µÝa`ÙḬ́·2fø®ðœìZ¤\¸/ª`Sà; ú¢D¡4Dg(˜¬Rø·F50W±5=cT6ï\°ÝUs˜ ­Gz‰.Çvš®#a5Ó]ì§¾áÙt­=a‰ QËX¸­q6/­ è…*1€¬6® aŰP˜ÞH¤WrúÔ¿íIèkﯴÑÑô dܰ ¢ny‰ŒEOÔ6Qm£ñÃTËİì3&«¼Àã±Øð >ï×`±®Žó²µ2»Ìº™ WiÃë^a,z–MûÔÓ*§='›R6qk)›†½dhyfQkèÀéëðÏÖ.Ê„ñ®Q&¬œ&úS„U+&ĈFœ³]È4†mä Û÷6Érø$¨ŽŸgà‚“ÔÔem‘ö¶ŽSX’¦õ]©n%!Br¹½xêš³SÂÖ¹zÇ«®›¹Áƒb'x'M…£€;O—ÿÙ—M?…o­Øozk•Áá”$#Zu´åeZÎuí]4†5]7Py_ûk4QÏ"DÖ=}C÷ÙÆ´Ù8È/çl:²™äÆ'Ðî,Ž*9¯Gï!¼vã™!f·9ðaÉÛMlˆIaÊ¢® %Jv»<; Õþç’Ôf:`FR3Òû\z"o,æ‡À?Oi«“ãÀd ƒ]ªÀO÷Á÷Ð7ð´•fìŠã={îóã…ÑÆëÕ`ã}íX̵wCwn ñOŸÿ¹Þ Å'(**¬~D‰·lüqï5üqÔÉ›;Û’fÀ|Èæ3À‘«üsüýYnéÒ¬MvYåI¥—œ§ˆ·ïüÐÞ~ho?´·ÚÛíí‡öö€ööÇøö~õ?ŽúGý£þÇQÿã¨ÿqÔÿ3õb×}ÌY 'µ:;Àÿ*‡wæ +^KIÀ‹KB+Þ(È3’ð¡…Ãà‡8ðCø!ü~ˆ?Äïí·õÙrdÖ[û‡ˆ½®~NAà*Q} ¯æI=] —Fw",ž“ŠÞ$4×Ò¤€…ŠkõÒCÃcN­ ÖqÅ;]ßÌîv™#%Ný]Í—ZxT©¨ï¿ ØàüÃV”Çe%8Ré%›A%}ôêe°3œb{Ã2R~CWUµ×¢¦Ãûê;ªêóêõÝSÎØüHâ¾¢=áûƒrÊŸZr–‰ÌEè×},ßÉý"_¢'æz|ŸÎ§0þ™.3¸Ù;æB0â ­2‰nšªÏ9ÏyD»d•ôlò ÎöNNO÷.9ÓA[½›~nÒb¾ßÀ5;àÙ¡­©‰ÀÞöÇö3”σ­yFÌv¿®zØwwÚº¬ýõ7¬ô*£è¦¾JhV¯SdV;©x>áø+f£ 9®=ìÃßXq}ZšS×R/Èñ”±gáiÕFsµŸƒºO³ .C Pz¥Ö¦ÇGNð[ù1®—ç¸ÕÞ#ÉÃ$àý¥4‡ÓÝ3‹Z~2ÑðU9·ˆï˜1Kޝ\[ìoœQ˜>GÌ¢q¬²nV¹Ü¢ƒ:ݘ]• "íSP}´¦[£)¨ÈfØFžÐiI[A©[WôµEJB“¹F+0æÏ:MÉ€’#£|i[í®¡;D‚{v 8ºÎ³4grÊ‘|oåã)Tܪ%o²hp0²vu¿-ŠPSk,g+lvûtü37òÎè)ö{Àß[ýÑÍJ ÕŒkÊÚiv2%§$½>6î·37•Ϲ\>»È¸ 3€ÚµŠ¡ÌàñüM˜ÉϾq.ª„á3¤Üªëø B=³s&Ó¿èâ<ÁæB·Û ÁÙƒÝ~™vÒõV'èô‚¿µâº½óû»KRâü—E}þ£Çû£1`l :×þþ­û{\ö2ý+Ïïýý»ô7g«Q‡ïüØÂ‡‡íaiœ™¿S‡GÝâÇìþÝ:;Âëo[?:üwèp=Õ–ò£³ûÎîåÌ0Ì€›?„“ß¾¿é©$îÎþ­;°Œèoý½ŸOK¦}<ûÑÛ¿}o»,îüèëß¼¯]€Ë‰Ê‚ÉïÐß)öÇü£·óÞf¯œÉ“û·ïî_KÆì.f›Q¯¿þq\þ½ž©0J™½öÇÿí{Û°ùPË žã?v–ߥ׊1ÈfðúõÑð÷èó‘Ê PN1 Ç&‡@üèõߥ×Çpoýèïߣ¿9Ñé@?ºü·ïr8Õ{)þC ú}ú;chÚ}ý[÷õ5°øÙzõ#æç·ï퉺fޤ–Ùß©¿µâÔŽÍö«ß¥¿ozˆdÖrTþÐ3‡vX ü¡_þ}=å¼sÿØI~“ÎÎA²C½c“^ß•ÙÒ6…LbÑLÊ‚­À$-ä³EgGæÛºø®Ðùd:—¼€ͬÆûi|‹R)_i…ºƒÜ7W4ŽÝ”ZyªAKÁüìïöhv˜/­ 59¤Aëe6Õi— U¬‡ƒÔó©¥G¬™ô&P6\Ÿio.U–E]d™ìuœ¤y­Á+T¡ò¡íUvÄý-ë ÇOoÍNžHÛæ! ¦MGuõ:o@Q(øs8{^ÞU±a`¦.¾Ð=|õ©Î—@ò (Æ?ml˜äýBÔ†ÁY€|—o°4iû[§Šâœ…_`‰àr~2'¢ I|AwdÈ<€AsÕ— ­°GÏNÏìæÙÞÜ|¶¹³I›Ê«WÁ«9†d6í$Ê,ø[ÚN.­uõÍF@ûekËLÚo¹ã~44Ò²üö›w'û{þîU”µ¦Š:; ¢Îh5£VÑJÜ|±µµµé/òAS›ü“„ýÓT±Œ#”Û6évYµé‰µ7Ù¹+ ÏÔÁM7=qh¬ÅtlvX”·f1z*P‘g~¡-'=š”¥iñ° û8S4éýcý^YŽh÷ÚE}%—+°ÎÎÔ¿ Ý·“N¼=ììqÖT¸¤û.IMú¬²!öâ.ÕQK(¶¡á4‰jî‚÷šh?ëønz·dIá6-ÚyÏJä´WÐtæ KîØKÂŒåÊÆ²Ë®™£4_ôHŒàõÊbs_ÌÃ(Wв5ub“ ”²ìôåìÔ·^wúŸ¶MkTÿº —ÑÑ|¦MÃm0’£ÂhTæÜ14ž¨ùtR5|Ò“3`?Ó¦:„mMb×âì΢¡°öħ²gœ“FEÌ:Ž+E‘ÆÒ2¬OàÜcM)„ z ?¯_ îÕjôŸöi³yÚðŸR#ñGM†øSdø&‡§¼>#—úé’Iu ¤ÇÐÎWæ:u‡ÑÔßÁõÑÜN÷ø.RÁTzE%¼"3£ËÊxÆâ`ãõë‘53}"Í2-sÒ XøšƒrTÎÂÖ«< ¶gªº6uXNºóKûÔË‹)•h]@©Û#'O-ðv´‚EއÕ6 ü&ò=JJu7æAcã(I4c ïFÍ5öLÕiHoॱhÞЩö’Ά­`þ>d}ê€L æsöHÌâÏ.#Œç#äÁ*î™R²9 nñ ø7û-ä"}‚û¡¥§ÚC¨÷ÚEÓ&v_R#ÚÝŽz1õ%®¨Õuß+œ¸µƒä‚¶TZBõ+)Ðè$Àò5zb6õ)9Êb8H¯éÔ# æZ~M˾Or¨©à 3Ô¢AKãŽhÛ»ñßýýÿŠXÁ¸trMí8ÎhqE‰óÀ•4©«¯Çº(¦9}§¡cœ£{³¯œ*ôß%i›H$Êl2˜ uþ„ú/.GÕ£IǽÚ]úou–uüÿuHéK­äžó-çw´éÙvµ =?ö×ö.OÖýìùÍÍFöâæ†fq4&Ⱦ˜{@dÏj/ÐðẺ¦®À;ƒ|V[KOû@’öû”~ˆaq÷»qÊØöb¹ õ3†<@ðDì3\¹Ø–g­ÃVµª{¯@uZvýO:(ø$åhé³Âó†rϦ¾^c=†€ñ%¥ýP¶Ø?¿ó¨– ÈRRHH…EÿG* ïÜ`BWüèJž‹¼¦G.üÜ}KÕ§ >àÍÇ•×îË­`{·½S«¢§H&žŠ)µÐÌhZ{]î…¶‹ÀAÁ"h\t0€}‡&Á§“=:»:lI¯¢¼§ :Yöõ·ÞÝ}_æŸaÆ‹7º˜¸©ß{™ì¢“Þ41›¶ñb‘ûØ$í§7µõd|Y)ÄPöÓ`BX=É­½Ú­&n¾IªYÒyQ:ÒF· %è¥-si%ß¼í‚m~ù÷7j¢Fð›ÉÊ«v=}¢“®áÄ–^y~×Ñb šO¿R˜»ë{6y™îòר³n¦WNÞ<<ã¨Ð7`íŽeBøÛ4†Óñ“6zä¢ð{®¡Š“‚A¡ ‹\;Éu<€Ò÷:aÙþOðúÿJ«â¾¿óe+îBƒÁŠ-Y<•â9öãû§^vß?Ôà5˜Y²ï\†?&Æö‰Ñ>›Ù8î<«ÚgßxTU7|³xaÐ#êß·é u|ß°/ßwÝZém¤s^þ蜻æOý˜ù¯zÌÿ³Œ)é3 úÙ]sšü·MÚÚËRüÜ3ûY™¤´Û!øOÄ¥(ÔÈþ”ÆYó6ÊÒiI—ΰ÷¥Ez§T5ï<Á¶LMŽü_T’šK·ô¨,òßÓ^ ¬/è7 ÝTRsŠ´uGåE¤ìäQ¢Ui.GW‘ÿ®œÐE³GGÔ ’ž7R¡ºÏqr©†Šžî•WÑÄ6á³½°YfC§1^¦YýÝöÑmv» ™ÜK–0bjaâã‚€obÙLÞ—mn³&çïôõcáù¿à±ðcIü~KB•”¨Ð·n{ÕËVÇl~Ÿ×ù—y‘ùeþÛôÜM·ó°˜F…¾q"ÔîX¶k© ±6y®§²×¨‘žÒ‚WÙX¾§ùÀ¿Ì"d²|%ÍZ2áÿ•Þ󻯇°åð‡ôë—pÔ/Ý2¹À7nšõ{–-þ»‚ÇOY؆ʹù f’ïöÞÿ9vØ?°“õMñ*3rá¾q‚ÕnYöêw5$ÝQ}ÙU¤M8b`Â^sݰj–ÒÀ¿L“´¯¢ÊŽz ²kSÿõû:Ék]¿r¢ÿMG©‘>gu¯çÊÒtä¾f´Þh„õï4½¦‰¢q„É$ëhãQ±¦7 d\c³yÜa{t–&þa¦Ìë’<9…„jûçyéôQ¯Šøz°Å|¼ŒŒuigÔMLË÷K´2V¥Î¾Ï¾„^¶-ý˜4?&ÍûÍŠ=ýÇý§£½èFç_q*r¹oÝâfnú}Vyô²-ûŸòþsì'ß_ vÐè¯ÐÄ¥à·j©³w}—Ø*[ç2uú­±ÿJ³ó{,ÙÑ×X3Gßl•ßuðPß’ €ˆþ+…˜}Å‘ýÍv’¯2’|ÿƒm¹ÁçŸæ-þ•6¿ßµãF_±IŽGß< F_gòK"´6i "_ìUûûeü}ZÔŒe{ë?ñ{ý+mÉdG"GÐ(_³ lÙož4ó7~§SÈU»tŽÿ£¶ú_iŽÉä—}…d!¿u8gïúúCWêÁ¶ßïU—.¶•—üÏ(—ü½Y|ÅýÍN€âûnmK£»ÿøÖýØpg;äú+öÚëo´ëï;h×K'üÞº¥ÝmÕgi‘~Ÿù'ÁaYt<±§h6ºàA<ž;2w¦£”Z~˜éI65~˜Ä¯'g¨ÝM‹Â?ëgºo¼6 I;ì®IÃÐÞ·êðæàÝ™eûnÜ6—øÚô.¼ú¬“f5õM‘©»·çoý/R:÷×¾„£›†ÿEÓŒþ&:/èÏu¯³¾|²}[]ßíõòpøpÏûíÃwË÷ùî—;Vmc9¯Ì|¯uÿÛm†_µðWí—ÆìûWì™û·Ä{¾çÃÎç3šæÁiîLƒº#-òg8éèÏé ÉíþyWÆ&jÄ ýpF1núY³•ü˵”XX¦ŸÞØ%·uo‘Þ(¯î3°(´¥“4šWdÇ®ÑVÙnòYGH¼š§1ô?$M÷zåÀ®ž“»öìwne(eÜ¿üD’ÒP‡^°[íÏCú²$ú“qùü Рù» ßZQ?Q×e¾þcš3’/½'ÒÖóÁ³» ôL+Ô¡CW #,0P7dÊòÐ2¥yO+€sàÐ ®c¦¼Ì:Êûß6‚/î “äð…¨.íÁùdžŸOÔ¸áô(Ò§!äb^›¬y, ?ê’Ö%}¦.Á> ©6 EÑ쪕 ]¡ŒK¡sÎ0R)0Æûþn&Z£0èåq¤J ïÓ£{ž $˜€q›!…w‘ïk{O&÷jHÝH½B¯b’¾@žµË$3Ô¦»•ÍÒ¡¯šÎùÕõ/ÔíÍÖÍã”®<í੯¿ÿ蟟®WÅ©ecYL(/˜*°»JAa§ÓÆq|'K™ác¡Y‹Ôcp.<Ñl9m~ò‚)“JHe*6ØÝ ±ÉKš¡Š *.öƒc¹gL²NèÁ{e–¢ñŠÿ¶h% Ú¸ÿxˆÝqØów‚Ímÿ5m– [ç‡GÂaô‰–éWJ¸ ˜­Q.`¹(ŽáB]kçiVðj´¸¼ºuÝd¬Q{€k£¥ÔOm—éâx•3´n¯u£(m4`?ðß§iÒ)±|B\JZ=j›êä«ÁCS5ñ’ù½ýv€Ì¬®_sÃ’„ÈœûægàgTgsù¾õ¶?¬Æ,>mï<v椨ƒçí…SÓ1)¸m»âV°3Šo´|a¡¢Ý6 ü_Ò’±—uÚÏ^³èãñü274Hîk£eƒlÔ–28£€N‹Õ›&t(˜n4¸7ÛÔ&mB¾,|jØ»Ã7Ëз ÿNÆcáÛ%Ñ;†ö{«?ºYípÌÀ ¢‹çþÖ΢Û6©æ>c‹»c¥MÝÅGÜÃoL·÷Þ¿±[pÕ†)$ÎÔÑZP‡Mý¼Ë‡UE®ã^àKY¦åb4>ªÅI@ÒWñ+ÔÝ'¬’™Ãñ“¹ŠÛÀfÄ•Õ73—u1h±ÁègWãÆPsÂ{f©kY骑ÎT^×9fÛ…0ÙžoÛàáÕgÚÁM—²g׫™—3Ý•ö5µ Ð$³¦Ýt9;Xhþd-\§€‡-bA²›fà8ÒaÆ<¾ö×ehëäž Ï–§Y@å MHË$“C$ÁíaÊw[YH›¶¹Ç0a‡w'ÿQÛ“qƒ§$Ó\âC“¿6ék0(F15ØÚ|t¢Y4àušÜÂ$ ðý=Iá¬Ü•ok¹ûWXV,ú kÁóp—óè=CmàçŽP!þjB…zõN.U€Å™"·õ´“ª,¬A)°¯uÀ§…Â&ƒ‰¦³( ™W-pyp¯Y ~ISy”Ò. cxQ`uJG¼å$[€£‡é—§W^Ì™pàЪ—çÓól«<–qÁeYÀ˜•Ž™"˜]:'1?&Èèe=lŠ %LšLïàIëu> +´h3If{©Ò™sȘʃt*&~˪=²O}ò ê"'Æ“†QÀbÈ”µÔŽTL<‡=oá¤VT3BÌtdm#-”êräÖA¯±G·}q#Ìw «˜@×°„ÖFf(°Åyõêt(õ©çc4•Þžé yC2ÕÓPM²¨(t‚7¤@±ZR§yB`~$%ƒ»[Š8ËB$ÔŠÉ:ÓõÒmž0Vuy—í™ÎÖ<Á\sôÀ‘ôgc¶©{ø›g™?,‘¡Lu9„;i:l9>šyí7óŽbaóG*ˆ½jbf ˜>{ôÜ%3íÐdN¯ 2É4(q,É…£7}£Ê"åoîyeXÓ*§ŽÌ„R3¨~¢ÈØy5¦_ª}Õ0cf6!+¯ãhÙnÒB]çiv羞ºÙ=é™V¥!õ1vî«2/œìãÕdÁ%{çÏjiÿ¯jÂÌ þîÕä¶Eÿ­¸eY:„,òÂýœ’9Öj:‡Ìž@8ø£¸3úIä4»/–êÇÔÄä 8¿šKn´½4¿ézmCUÉ»ÓX«L¹åû³ä´‰¦F¨dÑ á¯ÌS²õ5œ"Ék»n²ÁJJ±Þ° º5"{ æ”#áTæÄá¶E— ÖÊbÿ3pˆýÝî[4‹ Ê#áQ{ì€1 Õöo-"9S;irñ Ë!eºúAƒµ¹‘ÍÖó7/“”I •úÆ?Œè7Ê^HCÛ.ã]Š*Cã[R†#šòÚ\Ò7ŠÃ(ÎÓA:5 ÕÕOþi9¬  ½gbŒæÊe4¶ɽ”AïÒkEGÃPp5öiþ’‚íÄ~Ï’Îgv 3¥“[ ö¡ÿ}ÊzÆÀð+À÷t¦¦‰õ"ígXÕŸI°ºM“©¶×Fþi_:Qê܃AcõÂ~DôܵÏ:ÊélíØ¼ªAI›Ù~l‹©±1vÞÏ$•W.°Y°*þ~¦Â4Ó3@‹¢o‘v¤MØ_h8ûµ ¿èÔZ$`’hw‰&Á;«©¤ÐW$Ù ±›—ÃT礳hÝ»Óàü†î.5Ø•"EÊM?¹\‚—’F.1ydGª“ÑŠ¦ÑŠcÛõw؛ͥ’¶Ñ0ÂGeí²ýv¬tLXÒþŽ•Í—t ŽSÉÏjjè@xúüw1Ï@û¢|­íÌãoý3~® »©î­ÊÒ8ôß’x§þ$ž*Ú·‡¶¯mWü¬rš¬ŸhíF*¯2Ø>’ Òë™ï ÃDƒ·'3ÞÆŸi(FS¿Tf÷,¥i~QF}Ú‚Í%7.Ù4OMNÙÏ©ÆélÐJ.5õ@?©ñŸ~=ºâ¼#àN¼E3óÌ×kj°ÁL‹¦éPÝ–´˜ \ŽdÎ]DÚ"­jMª‚…V½¨ñ³ê÷S»àJ™ûïʽɠ Áu»B3ž¾D"3„úÓNw{± $øÚU:ßhjFffð÷·éxeCs!ñÛÔYï"Ù=Þó>˜ôßNK¹ã½Ž1êûZwä=ÞG]ZÚ¹™‘â¨Ve PžQÕæR fÔ´ºÒ¾UÚ×Oé•YOüõ3mg CæÊ5¿# ¦Jžûû°@ƒ©FׯÒþÓéTNó6DÃÌúÌéJ»4.ÐMŒɇ±ÀK…òvÊiýÂ:íw꧃² õsb®Ðl=W ‹´46è9(r—ØßÖe(uÚ ¬$îcÊnømLìˆ^*ªkiU„ÌRw_QB?ò\9Wÿøœó>é,„]M›Á¹¤ã+Žh©—ù¦ža ˆFtæ™Ó€ƒNAhÚÍÎh0L^âÀÄB£c’ÚKé ŽïÊNjÆð’–Sºë×k:$ì$´^þé45 ±¿RFÅøó_Óçªr%áÄeLséoí<^lÎ+Ð5 ×°¬Æûœ!m皬YÊÖJC:äßÙ›»ÖÖݨuEfªB'̦£z‰еØUleƆWØJyü¸í3ô€úªGÿÎv胇ê÷èÒ&¿æƒýzˆR<",ʦ³L7›>œ+5;vEÚ×,‘ó¶É œµ©”žÏ{ç'^åtv#gº|ý´#{•?Ò$ ÏÉ›÷õ&uçQuíÿ÷Ê!|êÈÛ[âéÚL$µµöl_•pè6 ®Úiñ&C)ù¸§¿mgõ‹aÕ;ÏïžkÇT¦ŠCù‡á Ëêk5ž ûíÙ+NE[†TžkÅáàŽŠFåR9¾|ÇN—;ÔÌ%ýrA­ÉH±9ÈÊÛÅ3wµ^U ªiÓ8L©‘²"MyÏôÖÜãº{æ{éþãÈ>ЯX?xþ“œ*ð¥§!:Î3•̯6.;¼Y¥·ºçÄ ¤û\•æãwZXq¨j¯òòî9sz¸wîïõç’¯TßPÛò&Ü™:{¹ÍxE*QE¼}£&±Ô ÖYNKQeeËó‹TX^Vä×$ýD9œTcÔãHòˆÖ¬5 1ß“›¢?h{B/Úœ(îÌç‹lĶ3Á6Ëm6)wmàçÖ^%îÎ…ý›^{¾BgáÙ3Â3rJ‰p«mж§%¶l?Z§üýN‹‡ö‹i9Iy!ôÉvÓìþí¿IúQ2³AEuÍzv'÷5—v,Ò—(­:y‘‰³\lµU<üüa@:GgŠDe€H•£`® ·–tKÎóu‰ò™H:%ô¹ïI!ÌÁÒ^ì–p&f4ºkúÓúLšM0»#Æ„F—öXi˜êº÷ÓžýÖûŸÄk±G'Íëàõ«{LŽ\î®ù½g~»KD6×]t©­E¦¶¨’ËÈ÷çü ä3Tÿß{l)Ë¿Sß™¹"óÿåý[nŠ-¶wŠ3÷ÔΦm欛£s³×ûþvó¤æxØ—·D È|”ö}¯i Ô4 ›x9ˆ¸ŠÛ¾û…ïÙž¹Ý-<ÏÞ<’¬øª&óJŒï/ï7¾W)Z« í#¿ÖbÈÒf /a³˜þ|§#/‰ò¦øH*™óž­Ü¾}-}ŠO-Ž“^{Ònø¿œ¯ßÓ9wwÝ4×|‰ýE¹T]O“™jøô8xÙ¦y¨àJÍu<ýFkùo%W˜ia-ÓKf˜]8§_ ` KbWÁž,S ©4ÑÆðG›*à»LÂX¤½‡„ý¯å¿Î²TiX­{u7;tD³ÉÇMãg÷¨NçTÜß7Åg$ácN}=êè¾2.Y7ÓÑ™&µp¾‰¾÷×è?I*°ÕÁºô’tü±c ”|‘¨ç2oÖB+™Àå#ù5õhŸÃÁÉÙNhŸ¼­Í¯f\A|øšÕ±ÚÈ ûó³ýðä·§Æ^éÎ˳¢Ùñîçcˆ‹’‚{¬"2LX-÷ŸÊtúÕ®¸Õ†Ê¤LÉ(í,%SpõCÐ>òÁ¿–}>oñ÷»½}ÊhÃf¢Ôì/÷¸Ïå†û{ÁHÁV¯FŠKœ±¶ ca§üÁù™¿fâfí öa²0Y³nf£\ò~ R¯IÚ…šo^‹c\¨Hæç’6+°s¶í.T]‡Îx-±úˬa¿ñq9¥g&sÇö¢}Îå|WÎ9M`7µé¶AMq%¹×üš}57êŠÍpæSû—'!9 yj°qС q¥lSÉ0iç&7‡Ÿ²¬Kc ѯFÀ{}¿Iã·´ºþ¥p‰2_otýãm„¿•ôòþ€‚=·ÐsF2­vÒ{º®mÊ=xœ8Í4µË}Á¬ö±½ï?^û }R}­å¦Ò‹Ÿc' ®™"•UR>Mö¥ÍºƒÕÖÖ¢@¼ÊHìÓ à(F÷IÌÙŽ­H’7Ì­0*“zÇ´_rë];ð4û€*]•Ÿ¤\õ #“ÓiÌš¹Ga+2ižîÈ ­Ûª€£¼áë›®K'r˃ýÐÜFXûTB]íÉE³ÏBÜ=Jˆá§½9‚5¥1×Ú«¥rrò'î½gtÚù>—Gj^ÓÌï ß×>FæO–n­¼[îŸéè†WÃU>¢ßk¦Çc±¢Á ºµ}ÖÑ>5¶w~»ýŒNíÙp{Y“úüé”é~Äž¹Õ¹yH©ÞÀ«à°CÁ­Úã¹íyLS¤#ÏÃê@Cl]4V¶¶¥vdÚIÞƒ«•äÜ„ÿ~¯®Ki멹`îé:.µº¼)Oƒï«EN˜Ît~«²tE'_Nš_(ó„_u>jÁ£Ä7Üçn’—5Û…‹ù»a¿“½-BÙë%£f ~Û¸UáRÛþÅ\a¶<¬…0ʇnºÃ)"° Ûë’-ìûø€Œy0—Oßk)HwÁ±òȾýj£‘Õ‚­ÃÏôtj;½kw}ï_£wµ­gã·ØÝ{ÏF-›4#s5íÒÞ|ž1^Cœ;ÿ‡ÜTÝr}ï-?ùG—ç ÿí%þå$úþ‡lºE™èjϽGpñ—%Ä Gí·.Ì`n·]©õå8P·ÿÙýíÿÈÅL³?rF\z®}ÓbåÌ|SkMG~ت¶Š½s6 x1B{µ.ÊqöWA]÷u‘µ3ÿÀ7àÇOx|G JL‚49œI1CbÉÃQmÕ.“+–95¸ƒ8—Îcï‚ 7-ò`&“ýöIÈج±ûºþÛì+ÈõH¶*D Ü혵™8g§}b¶â¡²BæôÜ„ŸrùzjÎHªZ2dñ×Gå8!"ìJ»£~?}¿pä›Q\íæ/îñ¿~9;‹x±[~a3ͱO»ãfÍY¸^Ükÿþ]f®í‡,*øÐaHIJ˜ g“ðX£çψ®áJd}P ñÉ´vDcåOqÙZU‚1³­ÿv®‹š~Æòøq+ÕØß ¶Ù¹µ9—gp)Ø&Œ»¢Ê0Jaœºµ(wG5…Ì$ÆÜ×µjqŠí"ÓÀ¥ZÖI“)H¦ƒrþ°ú$Õ¬Ònï¯ï Æ»J†ÄvpãÓ†E:ößâžYµöÉ/tí‰&°z¨Ã õ0‡Mž€!¡áÁtÐ0À;]À8»€o7WyÑ&fíýokÃeÝÙÅ„烼XÆŒ-Ân:ã€âòmäû,h˜zs=èâ¿7<ËNn4ÉTg¡ñ.ç/±•à’Ât=ûy’µe¥ÙX™˜Úó'·¾¬*Q½§gqw–ëY;þ»rXÒ)5ÄŸÕ—Å/ˆÍšT³g›óCñË9íÔˆƒXoΠ¦8¿‹—‚z~ >ä_lУÜéÕè=~r ¼ä6µôyð|.¬cI8mïçëvZ <*îÎrÉkù¦Èâ/uÇbŽ’M½BÓ XÿøÆ”ö^xF^³õn^Œø˜DÝ4Ô6¨©dêvt¾wôÒ²« ÉøÑ$\CEà ‰å\sö¬\öÊÇ*«ÌoG‰ŠüÝ~Ž¿­ï•ä§[ sš·¼ŸžÏI˜²-˜ä÷SR‡‘ŠÓ¾ÿ‘gƒµ1üUjânWÐDëýo‘D¹´,̆ÁjpÆ×8æz^‘q(0C#ò"AÉúéˆÐFûò«§Ñ0õŸÍqÊ^9­rN/ÍÜ–f“ö}˜žPe ÿcñI) ÿM–¥t©¶TÜ`¤Z¯mSÏo(Påût(å ÿ/%Í^þ…ëªÝ-çÔg•aÓªZAMÖœYÄös³J¢ä+"8ŽãiR¥ø÷ñ-èñ7šúÉjÓ Â!¿ƒCe~o`¨^(Ëxß„–öÈ3õ"xqöRË:À ÊÖ1µ€Ç(M½—#׿ûëÉùZ1Z§fl>ëûk†5£¸õéI¢:k7?´N¾¬£0MºÍߥ÷jvÊ~ÞŠL†åJX·Qžör³•nÀ.{¶<ŸÛüY ¯ö=¹ÉuWUCÃN»Â•It²àbæ)bü·Ö´†uïÃùÇ¡Uà8•ýâŦLÅ«ï°;pÚØ±¡Úžùò Ÿ²‡9t¦M*¬ÙœC èK^HÐ’ ›«=’©í{»Œ=iªuÙH¦;BÒk‚ çÔè´zã\›žê×ÚmbxnJÙ­Äô¯mÃýÓâm``föØcvcÕºÒ>¾ÚÒ•–2XÐ6ŸÛ›sÎM΄;¨-ŽYÓl}_a°ÚEÇð}7²^ÿm½~¾´­¬ñSdk€ÿ´…Ÿ¼µP÷b¬Ì¯Ò{\`[îícu›_YÈË+wë`1T®gÃfnÊ9æÌ´”þ Ê’i.7ÆHé°n ©·ô½‰Hù‹ãzo6UÚñߦÀ;ßàOëÍÙþió-ÀbÀÓ‡oæ2›U‡¿Q¾?ùâðÉêAêk9*[·k%×#Ž'ÁD|—f¤tàgom˜Ö­d.¸îü$Ít7VP—vi1ĵNðøðÑþ=;SœcÚÓdÍMæ†CLãö2/ÒQt+韹×Ñu¡ ¤ÍÝÓN‡q¡!öÆÌ?hrëýµ.µÞøšzZÇ¢R m.Äqîf @'&îó×l ÖÿMZóTºd=°‹±ö‡I:Ða`®×àjƒ²dðl=¢ã¹Pfµ¿ŽAG±I{tp(ØŒ‚>=ÏæÑ¼hióF=Îõ-÷,‡†!f ÏÝÕg=@‡¤Þ tFu›Ÿ9ïï†#Õ½ÆÇǤüÿÖ"4ulibzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/packages.en.gz000066400000000000000000014201001334444677500253500ustar00rootroot00000000000000‹ÛšÒHpackages.en¼[ÛvÛ8²}çW`yOKô-Ž/wwäKÒîØ±'Ê¥ç©"! I0i[™u>è<ŸO˜;» E9¶»ã¤Çk%–H P¨Ë® àß«jOlÆëÑßþÖÿ“?ѳɞÉu–—ýR*±¹¾¾»¾¹±þûfü4ÞÜù}'ÞÑ]¡·wŸF?›|O¼RU¡2qfÒ&Sbl*18ümc}]È"åâPV©~8Rv/z;ÕV”2™É‰‰)j© +¤H+}©*&p¥+•)kÅé൩,kUY1’V¥Ââ­º–6:)l]5¹*j{ËŠÉT—VÕ6Žð3hê©©°v»S7iÍO8Å‘cáH]ªÌ”DkÉ<ê3ã_/ÈzçéïµÒ\7v–%¹u¿$‰B²½~-^”á»áÁBŽWºžŠA«,òô·za¥m–aø"ÿŒ5ªšˆA6RUý`I5cÛJ)¹´lv»OºÂÚØÆ_J+giYQ©O ¶œŠÚˆ)‘âkR›J« ¶–šekÞbn =Ö‰¬5 k¬ñÀÎm­òž¸šêd*YxrõTE$j683VRɬ»Œxl fdØU²H¦Ê®!)UêbŒ®D9[¬š OÔJYÉZÅ⤠`®Àf1¹¾¦Å*%Ó¾)²9é'âoW•®U» 4ͪ,£ß0(ƒvDÚLaütÂp¸q"ÆÙü>Õ6ÅG]q>“u.ªÝT~nff)ñVütI³ñFW±çE_& ™î{]5V ¡ƒ¢ ?αLTë *,ñêìâK·¨Û÷Øu }ɤ­'ÍiH{³bùÑ|–®`[7pÍ3Ë«÷f˜Íí”cÊŠâ$@‰sŠAX/RŔԀ/M‘^e¦ë9©œ°;z)zŠU™(¿™·«FØxXªÇ áQ¨Ã!†Õ.ï ;ðÆC #3#Á\O$ÈÈOÇúzi„\s²ÅK©3ε³=Ça¡ê·†LJçWdJŽÎ2k–c–5yIËÈ•°æ±Ëï–fL å1M¬¯,7ÌâÑŠ$+=¡âIÜIªÆ²Á¢_¨®k Ä„ŸÆ·ËÀä@žÌí”Bƒ(šáÏí¾–3@^z "–BITUPZÜc+4A‡t  ÀGÖxÙ†cÔjH¼»é°d Ϲ"ÉYÍ¢9ƒuxOË8ƒƒ!¾t6@AÃÀ0ñ6i€¾–bM¦¨´Ã„†c_Ëåú#²œBêÚ÷™Áè_RLç‹KMHDKpä„&€¿Z“å0’AÒúôû7UDž¹Ù˜Ùíól¨èv©) ?©$Ž›`$·€‘ãÌ*e¶*“eôèæ ‹ÊÙoå¾¢øR‹Wú’œTˆ}y©Ÿjr ª“ýSúR¼’¹Ä ý9}»eÔDr*ñýì§È2|»1ðPˆ}Ÿ½@H[›»@¿õ.üjT9ÕœuræJo.ζ"©Z¾ Êì1HõÄñáÙ ¿¹õ$à©[‚ÐõÃ~ E™.[]GMi%¯œ&L6C.¤’ç¼cˆ²©àªõú@¡K «5¹•”‘·Ë•)mââ|xò[HK+Þl]Å>:C„Ôóñ˜“ñ*BT+Ü7ÇËíBX%L¡Ú¨|~L1~Á…׺ͷVÜ{ ž¯ ¢N²©¹ž³}žŸû•Ï^D~6§~„uœ=¥©vñ¡ƒ*Ž~»Ã•QefªXáFÎ «·µ®ª  YÁ ´_HÀd]£Ð#•QL‡´fCnøÖ\%Ñn¼Õ îÛñÓ%ë>ysx#þ‹½åÍ9Ê%•Tý‘1uŸ1”èOÄÎú OÓ[»Oáb4V`, ¬ÄT©8Ä”NÉÃIA$]n§í"iïùx—˜R»ÙÄÙÁoŠOCæ?ëqw*Fȧ²‡†ò{ËVØæã‰K©Þöaà.0Ùx")çàVykÌ©/óÑ/<‚¶ñFMBï‡è¿+4F—Î"ÜÀ® ýà.Ií]Á*S:‰üöÖr¿TÙ¿Œœé¤2ÖŒkñúèd(^û‚Ûµ2]˜ÿ@-Àn vhÕ—„—HÙ¨ŽGq„,™“b¼uân©’¶Uf UÒξ­Åubí™6•på| /l‡œÚÁCGDŒ\–3ö›–ã*Ø#.mƒxø‹Ý]2 ØÉ•,XU’ †¹%ßpà²B‹Áš*ÔnéJÄ"|ì9j›¾«:¸8YõŸïm6 7V¼sVì—fü¼b†å*‚™¨”Œ&/4Ì}¶Ü£º¹³l(÷õJI;çž ¾U&Õ™ê{‰·°“˜w§†Îç/ *kørt!ƒqôðfíÝOQqý÷žàÏH _4ÚjÊÀ¬ä:3=Ô—$][ ٯß;Õ#)†ˆ„Èhj-r%®Kò¶¥,žŽ²@R?mÞc‰õ³¾Âc„Ú@½ÈöØpíOÏJéªxÛD¹G¯CóŸÿ³ââ?ÿK@µoËçÆŽâió`=‚›¬wí½õŸRßn©Œ»À€N§Ñƒ"®”5tà"{{ôœ“•?ž‹N“™ ‘Ê ¢nã’Ú—Ï5k¤¸äE4ýS£(«"kñ«Ø¤Òe‹È$tæc¯+—Q­•D¨ c6ZV‘îRŠZ"Ìß#s ÄTÂú^4SÈ<ã×óTç®U%³oŠºŸÌ™w"ïÓå>êÎ2Úžš lC§)ÿ Ù‡2_>´ žsëHÊMF«÷ON[ÃGŠÞ¤,àèS¢ú Cf¤q£dKõøºä–ÉýH]_ËöUMëºÜ[[sÄnÐÚÝbÛ4³™„êKʨÄ~ÍêçJŦɚx¬,öËœÐz ¼âõgñúÖ=ðEéëÍFEè,´»ˆÇCEU1¥çvUøâ›¢S!œH¢¶&”¡øþŒc“àÈ4牒Ïôž‹ÉE„‹\„k ÏÏ¡‡Õ¦¤m|7¤Û r„©k<ÖŠža/«Ä½IžL¬@~>™ D1fóhDýe¹ik¸]‰›S®uêë˜jQ[De®Š°[]‹•Ȧ×*dºnKÔÉÄ/µmþ_ÌÅ‹ÞRÃoYâ–… VJ ¦bˆO!ÔkŸÊ6ý¸¹“Å (ò!ô.î1âzâJñ¢SSú*š±1â’ŒVw¹ ² îš`2ˆÜg)^˜ž4U…]ds§k.üÆÑ-1ÓÓ ì¾k€{Üu#€ÇÞì" †$óºÏ5Ì ‹ 9•7N¯ÆšC«3tÝ,×A{QôwÁÕ^$׎)GŠ£¸]Ë­U⢑'9Q¥–·²]雯…ì¨kÌ\ú„,+‰¨½ôåo£EQns'f,Q›„ÄI2 æaS„NG`.°ùÍã0ädÝyžïÄ3èÌ{ôKžr¸pÌo9à¿"»Bio¹©Y¤¸C2ÉcnY™°—_*ÿ²Ç嬶¬^:«… RoºFÀsõŽC+n!Öz¤¹•Úª8ÿ4 —ÊÔÏžc,-²8üðÿÚ‰Òó¨ÀGk¬ÅŽÅftN'' )ì_N^G®o(€ç¹&;µN E½yn“PqI˜ðMZ^®ïN¤@à»äc­±ÕšER¯ÖR“¬ùÆ ]#Q¯½9ÇÃfxìrø´ÇÀe0¸Y øæ­¬ÛSúyŒ:ÉÈ#,ëï‘oVäï‘.\sÂÕ‹A º¸43åÔÚ‚š‡)é?ñr‹!êG1L«ë WQ+ha“E;6OŶ¶LýbÒÉW6ãÝ¥¨¹¹qÏ…ça\osm3Þ^Ûò‡¿÷_*éyît·ÓOä£x‹ôÙ‘íEîw¼ÝcÃáo[îI,NÆÜf£x*‚xÈ£%æüQrÛÖEßãªO…dÙ£†Žî–EÔ¹îâæs¥èn³ô‚.õÜïëÿŒ8Xª÷2k”?BaG–òœÓ³>)æ›RÑ |)¡{Uñ³u±Á×!ž¶JÖ%Š\1$¯H}{“o›0’l^¾~'CãsµÓzYz±hZºxóâäÕ†eZ¿æƒÐöNgktó2 ±çÎýœÃÐÅì-?‡'M£öU8šq=ÌzÊU‹üƇ´€$‹#.íMÃØƒb¢<ß"ï~J×¼î’ú‰¯-_pã•8_ÈýŒvGXÂNѹ-¶|—Mw¬äŽ(€p©¿€[w®Àm—%™Á}ã6õÆ.±+ïÚéÞ‘C wLí<ýQf™©G÷Bƒ»XÊ‹ÍñU ~á¸÷®{]›(l’ËÓBúAŸÉùcþ¶ÁF¶K;g¸!s†$÷‹8s›GÛÞ‚?·>'ðîl1rmöô[E ¸Û€ðÎYO¨Ù–œñ%»Ñ–i„3ëΩ¤åÀåö‰J²Q.gÎ@×Ýs©Ëë-“vþÆiE¦j—j0SUÍ}A®*t~øóFq‡ÈNÝÛ#VåÌô]VHœ¯´õuǶ¼`–MÊÞmR­ô¼—Â&é]{xM¦C:Dì:äÒc‚!ƒ.B·†f'’oá4ÚúÑ™1³¦t`CYGŠc ë@»d<êfÛÚ^Ÿ {ôß_OÞ˜Ü,mŸûR%]"Ù¦ô3X‡¬’i·+õÞŸC¬gHv£C:²)ä#ËDÄcæíWYÊ‚°Ð_^Z¾\àtÚiZ]þÕ˜š«(¸ë½’ÅGJj®J®$™¶ËÑ^K3Ócägy%ÅþÌzn+‰X,Š#äjX³vÐEûvÝ«p82¯äç&—VŠwµ´S]™h¿ñŸžký1–)SâàI{=ˆË¯)]Cb¦øpÖߦCJx‚¹ïTaÄ~"G#øþóÙLÇÊêx.©Î ±L—wf&_0'ncîÁÆÀ TÒëŠ[6tˆïj®/Ä‹ð~Ü‚»­œˆá`èÎÄãÁÉá³'××ä‰Án™Knæ‡IßÈϦZõ“É>ˆò/ƒ(Ü‹¾GJÇt<€p:Õ¹ØWéïpÉü¹ßÜ7emRecB_jVmììÄ;ÛË‚ùUˆ¿dóÛÙ)á©m[¶ƒc7—ÿÖ®ÂuÇ$µ¬Ç5‹ê´N‘,¹ùyçª&—2•RÞÿø2„ƒþU~Ç%%ßЩ-ÙÜùŠ\çBôÃñ#³²k/tß,fç‹a¤_ÄÈÁépàåó™“ièÜÛíÄñ0tqóPvñN ß~on-s9pz9`½p^C-¤ À’e~ý…}„±È\ø~‹¡ìWóÈ™.ø¦õc3µ¸ÑDa–žíP³ŒKëÓy{9mAÙ]b«C ®LåLN¦ùCá~}”y/j{Zögq I©˜Ë™Œ -®Ÿ2ëЖãÒ{|d#S鉿ãyö2X]—¤T,£cV¶7fÊç·Ü£ 6+ÉŠmÄcd´M;@:íØu¸]5]ÐÆ¸­f§*óWÕú}°?Ô% 1º#Ñ6cSUÒ³"Ñ®´)ÂÕQ6uly1Ú¼Î6ñý?Þ‚¶¶á>t‹…3&>@dÌ}@I”º(ÿé®lꊑÈ1Háî Ñ^Tš;8t|b\¶óá‚"m”hÔ>6E§OêZt9⬮”- 'œìœ¹ƞ謥n×™—P½+|-÷{·®-¸ÓAZXdÉù£ÏŸvŠùÈÀή¦î憻°-ÜíÌ<â6&QÇŠÞS‡‡¯£pBK6J±VŽBý‹•ˆzʼn¨¿×K÷½½ž„N’k›Ò­½Êø»¶s¢÷óÏ?¯Kׯé8릩bØ€Ó* õ1‹Ô7+iB”/+Iø¼¯@ÆH-à&oï.)w,Æ7@àXU{W)Ø6-?Rì¨þJ_&ªš¤HÐZe𢠽cÑç¼} [âËåQ•‹ÿÏ¿œe@uMÜŸñ=ߨ¥êB& ìü¤v"HbîDÈ(]Wæ¯m× He_¨¬Û»ñ79í±‘ñýÑÉýä„Ç»÷'¾­¶ú÷¼]EmÏc 5‚¾%Êöñ/«º±vc9Öž—áî|ËæÃq¾mªüÉ€{{=m<ýÈѯô[ªß¶?&Ó%ðà?³K·*_ð"¿r¯ÑÍsÿ2ßyËvü5;Æèÿ†—Vù¾ûÍÌäÉǯرÿ×ïùæ:ßw×µåŸß3þëw¼¼Ê÷Ýo¥& _±e?á¯ßõ }ï»+B_µu?忱ù/–úNÛ§HˆðOîÍWøÿŸ½/incIÒBê‘jPfõ‘‘±xøîŸ?aúæaùŽÓøUßhúW0./êϱ†ß™ßr~¨]Ø7ß÷véR?I.çm¿ã^ÎxÇ·š)ÛÁOš¨iú=çyïßjšÁ“4lö=§|ã* uú¤ÉQÃï8½w«/ø6Õ»íbT%FËl×ÜmÆ„F‹œod8Ìpt˜T0 )†ßNòýå釯ÓiPg ðûbÿ²KY.Òñm[r§Õsz1XxÞÄaIÆ2Dæsßw*Nti†rœ˜ÛmŒ«¢`VMaµ|‰ƒ‰¢tsAž5³äØáþ?ý“/!›]šp­ësB? Öìö–b( l¿}³¯ì/NV"=û°8ãßšÿE·ßè…pžä)§è;žŸoΘt’yþê"ƒÊ6þ–S+%hå7e“i:Â`ÒÒëø%ÎÂÓ½y¢Æ ¿ãNÖ_ðö8Åí“hÛ}OB­öÿ-f7A'Èš»…\¾µY¿T¹Àx#ô¸²ŸÔ¢!üù¡ü€óÇç'» ‚h¤Ç‘;Aëh,;WR'©¹C5·¥i’Zü&ƒHŽ¥ ÔÕ@RÛ‰ïFñÛ]ÊÞëXb ì8¾ßWw””'ç{»¿ívßC»„¾jŽ«XÃæ­¢% ¥\ß\s·ï]PÍ_Ë‹ÃSŽ&â­}ñPûó0î/p ;AëUX,Ùϵ´ /Hš`q$„EÔ"¢êÒN&»ØHTÌsŒæÇKÎ0d¸³úa416ìýO2ŒÇÍcíI! vÍ¢ÃÙsºYï ÂÐþ9;æ÷eÐS¾ß £k¼³ …×U!êWFÀvøÃ•ôG©Ýâk ß ²Y–¶ýÀºæ Ù1[\†â¶ÈöYM@3K—²ynÑ-qBBñ*G¨y¼ž2ÉòN‹^ê‚nA0iÞÀŒpªCj¼!GŽtÁû&›Þ(½4:Ð )ņñ°ò( ÒAÒ8£j!îÞ¸'ªŸÅ::×™ª]ϤXüçÐK™¼ü÷ßS2…aT¾¼ºŠ`Áæß.J1˜PRÃÈå#æLœR¼æÇ<å£Éq€ß÷ñ‚åtþÄ…!ŽYgµ+%:}–ø´ëü³ÌRÔ%|VÞW¬æÃß-G›Êë ™`ì>_„Ò4˜îì©„Þ©Ó{ïÏBCtÅ‚a2N†Îö‰ ¥‘\ÝÐQˆ NrTäƒØXɹ„âÔ E<…P®NÆ«RÉ êy.IÄ“™öGM…F¦†'˜¶JBÜ´Ûn™íòH@Û‰Í ûxlÐ1‚ ÞúpS "QA3“n'ŽQLÁÖ Ÿ‰¤±ÍYûà³'c‡ $¯ÝíÖ}Ÿð˜TQž|P†²ÈíS+ì»g…øØ3œ°a@,-xS l˜›˜Išõì=2°½ ô{;uÌפ ïå{:4ÐE%Ô:&Ž˜9¶GŒYˆ03Tp²´«Ü†¸Êàõ£ )~:S8Ð,M‚—c¼ð†V!ÂËÍQb4^—q‡(;{û Áغ‡.Ìm"‚ –=Áøb¼«6àgz[9`Nl´çÌ¡r€8ŸŸmR¾ÍãßÇ܉2Ða)£ölžÐoåå]XˆJçq0[$Ïéf¨Oa²D-¨t{`ßé(³üÔ ±©Öȃòù1SÒ¥(-¼ž¶·ÉfÏXFr!eô ‹€C8¦ß¤ˆ<̦óW胻™˜mȪ‹`Yój™#åƒH'~Vá•gã”?DÜAl²§˜{^@•@ ÎNA $ŒQ”}•IfÐ!Ö=œeB{¹Å—Õ5Àj æàô5ü«ïÓ ²7?_aƒåšÊ$%è°W¨¦µêÜõ7Ù½l‹]^W˜òq)yk–P¥ÐŠ4Gþ*g š £uÙÈ#Ñð ü®Jü‰%“bvš í&ô¦¥œY϶¬(aÐËgN°+¿ŠâE&†šsß+Ii6 eæirÐ JZò$Þp_ ±6®Ò‰³’…>#Ršª2Áv7:ÉÄÊó_µÊ© ¹ñ@ãkêÐF´¥f±Š N\¨ŽÚ¨¥s¨ëãG’PaÅN6´¢š-®ÝÊ{Œ,LOÍÊÀ!®&íI…²l®ÚLµÍn¾­ú"`|SŽeÃ,¯Ò:;V”• + â<ùë»/Ü­NHïm¯oÝsgÌýìtœE÷|÷¢æ ¾({yÎ#båE—~çxµK&‘saòp_¬‚ÆØ t’˜$ÍÏëûóØVèŰ»×2fÐ/ Œ„"¸ø>}u„ðI ˆ(?1À`ÙòŸ‡±î‹7pŠ=`ôÍþ(†i¼•ž'=ö€Šö.Š=9òMxÆÇâDö'ñÓ—tL 3ÍS°3Ó ÓtlE¬Ð7«Ì_SD<…¡ŒbóÚwÃÏ€¡¤)ãœe˜™¥a‹Ç;0¹ÄÀÌLðF‘϶õñÕ åecvd˜¢ Ê¿¾–<Ó.f,€âòYI/iæ+©À£âC·¥;v%'™˜¡BQ`U¬Ì >©p,nÉó¦fì±¥‚Ü7¨Ãáð :ÜEšw!ÓpX2LNA£Dsš6¾–Ò“â1ߢTÞ(Ÿ_ñ>»B:ÊbÓ#V÷»Y"C†â$ ¤ËôP|5ä†ï¥§ÇR|ÀT†Òã°r*A¸…£¢íØx­J–ðT>¸ZÏ*s.Ý6ø°A«mÔÌm•µ¨õ.¯iC” me@Ë.Ýuä¨%¹Ú œ˜vÈ,‚Ó—“RT+*Ì´C³GIj6õ‚!í…‹fêš%·¯I_ŒÄx[ PQTž“ÎwÈ&,G_'y¸î»‹Ã#ììâý‘Ù›_1Œ¤ÏX‹˜î%“©S£§Ò61‘U±–³©Åá 4ÑÓSÌ‚þœsVѬ3"Ó. ×s(F{nº-Ñ~µånÔô®½)Þ£gà0‚ÍÌ0õŒT5¿]EÕGÄ kÂ8Ò¡- µÊãía ¥?½CB#Õ•÷4?7 ïØg°Z ZwXë]áÜx™U¨¿¹ôûª+ö­ @‡1Ö›!]ÁÒãˆrsÜ u›T¬îô"ØåŠ‹ÍpaœHÈ#øU ÞîÁž‚2ï{æ~+½ÐF…#¤@)\¶º‹hÆa GÊvgô,LP188Ó†ÁcÁ0š´ˆ\bÅÒ²Yk™ÊÔ"ƒ¬òȼ,˜X¨R| ¯36ÈSÈ8ìdÍ(~q™Ø5ÛØ´AO×ס'ýý`¥·2Î|2YAGË*lõÔ)}tÙ¸‹¿í+°«„ì™ÿŠwÇÂ÷8+ï>­æ†gÃ@©1“…Évòð”Ò¢8Οø¬'께G+‹egpJ¿Ú·¥G|À®2`Ýh\6˜ ‹l|Ú-y\³­`² ‚4hbÆ û.KÒct1[@€Œq6›ÀA‚â¤51¯ÜIp¸‰#{ZÞÅ‚l†|Waá`9Æ“„ìŸçòš("¼Ò¶Û~½µ†fÞZýŠrÿôä/…½ i˜ +âáyð!Ê,:.M,¤B'9I­?§‰¹L^®$&³ÞA4d6®1D²øÖ´I:¢T:—CŠ X@ÛqBµb’)l ƒÜH‡LwŠEég„µ›wf]ÈHœj“øç/œxdkMÄ!ë~ìb&ùšXw×kw víù\?@…—*í¿Ä'›ô$Ó%æRâŠfh$rÚ± °\Ŧ¦¢ 1ºv :¨…ÅWxþÔ“]ø¬‰6ؼ[5 ¥€P ‚ySós?ô30›.ãçYå¨j|—“ää[l“·‘P€-p0VY×"áëC`Y¤•YOÅ…°ü²Ö?hA0@«ÊØ,¬wÝ Dn(Z•Ri\;ˆN\;AÎ(Ybæ0*ÇaªÓ w‚蔫 Õ§Å®Z§Œ‰nD™XA¼Ÿ’ëÞf˜­’€*ÎäU9˜åæÙd5èD§Æƒ‡{ÂEH¶•æ"¤ªÙ¤cÌf¬ ¨Cº—¥®lSQø,y“O«!:ïVÝ’‚Æíí¶ñ""Žì½—9æeÖKGëhO[ù–^±Bdƾÿ*þÑ!ûüZò¯b…ýÞ`ü¡Ž397DŽæsÝ¡±neÒ*§}éž^Šn:7R Þ¹ÂJÕÕ)ɱP"Í£ ï~Û‡ê@á0¾(tB‡*aФY:éVõŸ14 ö†«b ¦É‹kf‡ç´‹öoiZùw•‰½ûõ¦ô!ó"^Šç3–:´×Äæ+w½&‰Nõp”Þ(üo‰ lÜåJ18‹mÑvoWK\‡ÔùAƒí‚éÍËwÅÞXÖµ@/µT–0gP¶E)ic€c& i»¥53ÉyII‚ÓÛ@JÚ”IB^å´G«•ÚMFbz×h®”¸_žÿGIŽ$ ˯,蛞@Ÿ¶åxÐ {™ïŠZáLnÒÛáõ6RÇÊ˾’«9T•V׌q»ýi±9ìå/¡»QQ³^ÆÉ ÐQ0*fǤIÝ"T3JC¼TˆÓ_‹÷;\úªÄôŠMä)  mfM.›¤Ù`àæ±È`ô8ò„ãèÙL^„—”†am äÅdæW(ËÈ\Ý˾ÿòrl¾ÜÿµÚ® 9ÑÌAÿpÀ¥f„"KÓ¾/ÊJù£,A¨ÔNiÚ¬ç7)õ«¨À—,V·¬=°Èήo@ypCy"=õÁN!3šD>§?å)ë\¦ÄË©òãÅqRž†‹~ƾªžÞÚ £©‘Ï!DJ3— £Ò•†WL?¬ÔÍŽXQ>mŸC…^`ª."¼È‡G l˜,½RÁ‰ç¬y|œœÌ§*‹„az³ µÒ–ZlW)Øz1{Ç`eÊÏcÛÝ*Ý„Ñ ×OÅœ¸ùy|u_âa„'6p¯JÌÍqXÎÎÖŒcTa†k8ý’­ÎCg…žTªÉ+7!{ÊRò›$‰¿_kéÀú’[õšÌî‰ñ°Ê¤tžên@Œœª^ƒàñæ×"±Ö$âfL 4ñ¸§S2`ëS±E@*žF†m½¶ [tñø‘<"Ø3®»¡—@ß:~¡£. sóÄ»ÿªF³ò+püNÎŽí´˜MêlØo+9Å c$UܧÒW Gïþà)Ê™ñ£·Ý†½®[Ÿ<^¤.p!C‹M?\œÍ“f+x¤Ö•‹Ñ7¥®PÎ:ýQŒ5(Tx­ÁG¢[`fèmlâ)6‰‰MŒFû°Õ~ånÕ6èÒ$û$?¦8Š£l‚g¼œV™é%yÎJéq/ºSdÖ0 ñ#„-Çvôþüì ŠýÐÉHF]I€{¦„!G¿‚܈¥³¸y<¹\£G×H-×è±5‚!/×è±5Zò£G×h —kôèÅË5zlFÙr[#L›^®Ñü5ºZêG®QØ[®Ñ£kä/×è±5š,×èñ5ZòìG×(^ÊþG×(¹^®Ñckt7Z®Ñƒk4 £@U\luÄê{KD78<üÉ3–hÆãßp&eGØO>õðLŽ–AxÒˆæLèwôò çUv1Õçu9«l±‰ýžn¾åÌæœ¢î“ížÙïéæάìÎù¹OUÙér›/2Þ¢ßÑË7œWÙQòsïPÙñsÏäêïF•]?ùLü¿—™Lþ~f2çÄ#lS†%NÕ,eû÷Mk^_ßw†ñß w.œ?÷LÊfáÏ:“±WµÝ6·5o‡Ö¼E³³}öL3»ÉM]Šõz‚ [ ¤wþQÈ@ÆÑ?yz¨ÇX½=ÿˆPeøçð£KÔ ~¯÷è9(LÁÏžÂÉõ&þ›/Òkú â˜blÇz¢›ˆK¡a®ø7%Ôq±<ú;(¸?ûº‡Í¿Õ•Òåý˜[¤–[ôƒoQÙq°Ü¢s‹EÏ‘«OÛžåîð8ËôcnQ¼<@?îî”lËôCnQÙ{¸Ü¢r‹®–ÖоEeïr‹~Ì-ò—[ôƒoÑd¹E?ü- .,õíï½;ñRßþÑ·¨|´Ü¢r‹Ê]Ë-ú1¶èF{X>¾ånãÆ¸ë÷ÊuÈéL %·åuel ›Rîy‰ƒJ¾è>ÖhŽ L? J`yù¤ƒÞûLœKÆmøQ [!.ÇbÛE`~î‹ám`ø%¢iV¡•+g϶Ék¬ÍŽe@!`TœÃ¯éÐÀ=!zQs"ªŽ7MÄÊ¥¾EÉã°›—¯æð ‹'ÞW‰¥Ç˜NQܽ§úáU¨˜<#Ó#ÍŠ†+…¶½¼£ÍæÕŒ,ì™gñ> ¦´t`hrÆddD‚´š êïÔèË‹‘öõd¢‡8Ið‚xg_õ;Y¨ú¶…>Vv ÚDØ~/ê‰KÕ! {(vRûÑ£žŠÓN §‘«¼ìÙ·} ™"ªÀ«µõuĨs‹7±Âá"è‘jÚ ËÍE&bÂ<<8Þ¿oŸ¯Ì0¸:Ѭç½âùz­Bkur´V"Ü£+ ›AàTÊ`Œ ©Ë}~¿Y22 ¾‰˜[¼¦ ÇzCp‚A4©h‚ Y„!™(œ1þ‚[0]…íì>ƒEbœ‡‡ïâ´¹°#z@$±†E8¶£ €J| )Œ§±+þ‡FG„ªeÍB®¼“ùÀûVÛ1!ÜUI±.a2Ë^óiVƒEycÈR§À#Jbª&(B¾Ó.‡+UÂÖ"ðÉz>ŒõX\ æS“Ûajêôy¹2§åZ[v¨RUŒ" ÒôÅ C˜ÜÙÁÞoâ:z‘¿=ðzC7Té³ÏÄþñAs¬¦Êk¢0Mšgç‡x@Ú­Vk>ÜO(ÀøÐ >àT+Ĺ‘O¥ÌÍÐWgIÔ  aþzA¯wè¾›\ÿ †·*þ ÄÊ®  ¹ÿ¾Ûj®!€=¬ö¯¢µ¾õú5>Ÿ¬âC'RÛgþð¤gðx%Š_K¼.+*N¥÷§ÒlÒ¥¾1€ko£ptÈÌ‘»)W᳌•Q ÒH ÉŽ~û:ËÃÄv»âô‹SÐu”ØññŸŽÄI-TÌ­¾ÝŸEÌßolglöžÛÃûŒÆ~Ït8c£©ÓV³•olÚ¶Ù5ûÔ^ä{˜ÿÈVé‘£è)OT^"ã ž²$õ¤çæ‘”]©yäâüäòvzù€«b—õ„ÃòÆ ÓÏÛÚµáØ¬}›´¶õðæ>ùÑÊþZìiRÖò‰°Yâ‹XkµX^¿^+Ú8¨‚®w àa‰¦ƒ|qŠ>Wïӌ󳘾š ¨nÄ1¯Iý¯áÀî3žïq æø õ±²|¶*ºô´!‰GÚ’ÚEJ3ÍG gÛé;¥ZEe\eÄuÊ‹iÁ“ŠÓ4a’0O°õgˆ{ŽåÿSt«õ UѤpȼQÕß=Å'Ÿ,2‰Ž7UCSk€6‹Í…ÒhiV‰é“—¤Z\°OÚ`A9v\S“U6³ADÌ;ÅX˜IMÅ'W\È0º»ÿé€lˆ&YâjÙŸ¸ÞuäÆ ØÊè¸k2;ІÖÜÖ_†:]Û^k¯µÄÆ«zÕ¯]q#Þcl‘õ(Ù7ÃL±}ê+/žŠm¸Dy™ª Á™yYµ#ƒÒlz½f—¢UH ø¦' =òVàk ·35î;.¤’:@WI*‘0m‘þ@?žÈÌO;Æè' ³D÷`ço˜r<Õ¨Àœ=9‰±èHçÓi8LÒ¯ÿÛ;có]§û†ÉBzúñ&{+Ö]BsÜv_Õàä ³q[E@årÖûöQSËÈW2Œ#8ž÷ù˜_¿$宨tÏÔ9´>"ÐåÞí®æ@¦È%ËÈälSË´ø¸e%.Å‹±ØVCÆ…/%ºõ(Dá<ÒF1M`PŒù´R=—‹£ Ä¢tE15‚z…÷cºxwpB¥¿  ˜>·ÑÙ³j/ÀUù]M™À‰5´àÖk¬…ýª–_aµÛ}ßÇU¤RÞ ýÔ¶'gö8½ùœ›\kÌ·î)êQ½–]lIZ[MœžÄ±$ùï …0³}ÚVDOÏ«—ŒÇ¸˜› ,¯‹ÖÆk·µVk÷äD¬˜Òv'À%ÄN°„ð–ÐÒ¡3 šOâ0y±©‡ŸîOOìÓ¦(•QÃuòÎ1p­yÇ®õÊÖV× Áá%æÙëBœâ›-†¾ ½›à¯m"oGy¿{²ûîølWœé±ŽÄN C9–Wº%ð¯«PUqCå^MØ‘t™dcD0¹KY$ÄNÿn¤X ¼T—[ŸÉDŽô8]`lйù³3Ît⎧ÐM3seŸÚ/²³Í[…+ö” þ/OÜ£_x‹¿ÜÛãßÑÁ#»ü¥ºÍ¿Töù—ÙͼìÿÏV 2gÀÛ[3 ÅÀ¯Ÿ2qg ±¡+ %7æ÷Âo"é³È@cIXª gPEötš¤ û¨µJîÊuŽÓ¤ªæ˜æ,QâB¤”lu®¿Ê%Š(ÄÖÆ7€ÀwïN'ÅXOÒú»©RUQ)y ³Ù üàv£_ü‹=4Šé4ð2ˆ~ý?ÿ5ý‡?¶·×ÿ4ùúßCñ!‰$îw`n©Û¿[`‹’qMšX"½R—ïAZõº4ølM›Åhàp&èºXLó{ÔaC]ÀBd¢(Ô3˜Ý×óÅܬ95ɪàHº†¾Þvk%ü³ôý‰œ˜:"_˜SØüòYÍÄZRõÉâ­d:~3»;„·•Ù±(–/$sÂ'ŸÅÄTACwV@hþ¦èÅË­éK?7àSµ54TºŠÙöìJÀÖÇ1Èb.˜S¿{7•Œ”g“×{Ð`òbMµ…àSÑŽIß%Ÿ»¸m-˜÷ö–»Y›ýî}Û³t•ˆ –™þ¹¾¥â#`“ÔŸ2@ Í5 ¢MùN+0¢+qL,?êâ™@ÎÉ·Zts‡øòyÉR²–ÁQ5y­u'_Û9«ù6dŒ%yG´”ô§kþìŒâ;7Íšè¯ uz·ÐâFýœ›¿¬ƒÅÓ[mw«5[‡=¸<€6·s™’•ÖX› YϺ1`9±¨Žù™×S£g@§t{Šgk:QLMËkô^"KsY[ùÎz÷QRᥗY¿L@ú¨—Ðð¥ÿx™ÏrÞÕ#–3vA’c²å÷°rÏmZ\$^bœ‡Øõ±$óm"ÐwÃå BR4""`z ˆ•þêôÎHÇj¡kD;‰ ±‡aîFYwÓF¾aöW[»Œå·—c}hÅ…¨ìòH&N÷¶w´´‰­ü0ž¿Óêz7ð?/ÆoÍÊnŠMr¥ol<`Æ‘‡lsXâ†øpxºûE¼?j`‰oókÍvõ7KÇEå‡ß+_IV¤d~ßâ! *ß®0K½h.ŸJ~D \1äí¨u–[Ãø{¦Ì=¼ƒ¥ûtZ~ +i‰2?e=ÊP AÏ!\34¾yöµ)çp€ºòC®®b & !l«þša5—Ò+~Á›Xý7ñçªëÈÏÌ¡þ™ f³y›øÍ¤TT¬å¾Ú jÕüÀ_º§•êcH&vù7 "I)ç¨ÜáÉì'\qD%3}¬ DEwŠvÅÙ¸*…¿Ùù‹…wŒ B¯mjîÙJÃÀ ˆ)b•_œÚÚª\ΧÔÞ² ޹[ù²úöòì´>Æ Eæ90‡æ›s¾—¼8x³jorPm¬”viº,Ÿmy.8U¥qT*V²ûi‚\9bŒ\Áª,‹±d«s¿Î'¼ èP«ŒƒÅ’Mð7¼sž 9—–È -Á’ébIw0*ðŸÎmàc€!û%mV7•Ó4 ¤À¦—$÷Iðµhx¨9ºÝ4ˆkP†mM¬‚Pøé Yå¤ï9ª8D³¶Ã/.p¿^ˆ•Kõ…víÃ¥¡ˆ¼ðÐ*†qN²Ô>I{ïP þÞÏ’4 ô©T±ÓT8ô5ÖEl˜:bÆëŒ¼Ð‘žœ¤\A W‚h;º ÉÅ Ã}S‰±:µ‰c| ¬ß³ÉeÁG¢ºQ½™?(m,·jWh¨ àúÖ7ý³úà [Ú†ƒÒCšõ5*Y \„-·[ýÅê÷¨Â±–»žg;}ßµY„+—OÄ×”±¯Uü{¹t¾F/Èe†•нöG–9©ðñr/^DAÍÒJeGKü¼ÂÉÙœ¼2læê÷OÍCl}6Swr¦.`ê,A\9ñŽ3“©‹ßÅÔL}FñæyL]|®þL‚̓e·Ö¶×^͸@¸•byJ–má1*€r¸çt–4Oþž ›Jå°d}ÂlÚèüñ42-«’Ž©¼–s`q/œ´½pÁqª×n­»À5£yØ`¸Ö†1TôÔOT‘h§¢õúu« †: óz…¤»båÐÂ}ÈS2ÖG“~v~r(VÎdŒzç9°tvRz:âU'_P0é=ëhÄ×KÇEót$±È Öƒ%EßÑb…4>§µ¶ÞX[[Ë#^ñ‚%Ì L‹3èð¤7»M~5[` e2sa6/Ð:”þ‹rø²é’ïOßïžÕ$^à‚“¥Îçqaá0 zxê f RRÿ¬lêõP£¢¥Ð„Cxa|}¸S"d@¸Wè[k•IÛRòv=‘·nU›Ããåt]õ° Ç^†¿83+aWíôøŒÕSä½ZÍ/¿ G[DÚ(f5AýÀ‚ÐEðF1òª?Ÿ (ÎWƲ¯]sAüo¬µZë¢õêޱ߅ùù¾)Ø LÉ3»üdùŠo—.ÉŠvƒR;sç—‹oЍ*…'â@ÔTQÜÌK˜+ǹ“Ñd%•žÉ©‡ªf˜Ý¢ÊôRì zÖ)[¾'¸O»=/óå¾û¶ôq·¯Éc„TùIaäGÃi.bº2ó´8ýxDœÊT©|9”ðäHê1*eøWg,§QBžúB{ƒ± %¼Ñ “ÿ€"Ü„ 9ëø%s8˜<5þAÿÀQ¡?:¦9eIñÝo<3ñ$…Ðf ÿtd?(ælâ=;åu^Œt ÇRéV ~íM¼®…ÿb¢ç7y´ž½ô0E¢IYŸ‘œù¬gV>&U¿® R'T­µ¨ ,thÌ%²¯µ˜Fiš­ŸÐÐ=}#ÎVù­?¨+ü†jW¦v¿Éîe›Š£;è¾ ÝÂVꮌÊÓ˜„fWÞ7ÞQs„¸É'pŠésMÙ3¬ØþŽšÄýЇ…/½x´À§4éx‘,r{k>{¸Äöp9+ ú+³…\yÎ20‡€òͱŒ3Oæj”ó^ýŒ´£ËÏY8rpÚ(f¸)}õIÇ S‹n‡¾ŠS_×”—ýø›¤,­·pRà`É ÅÌR0O¤¸” KÊ <ËÞß‘šLt*Ç vÄQ‚íNeˆÛ£t€÷aŒ Í47-¼ñèCÍ1Ômýõ½p_<}h’Úª—}ÿ&i6g…/)€‚Òò”UÊs`²ø[_1gñßò5æt‡ôQ@::ZÈÅ2ˆ&@¯7qj’šó5SvröáÙcœlR4²_‘õj…óù…X1bósSñÝ<öN/æâGÛ~P47âöJ¬º|µHGüWp(úh”RÀx½ Äùª“¢Üäúòh˜²±ÌÅåÙ@rú(̳Ep£êˆÜ–ŽqüŠÎ±2‰u€*‡ñic&rC\ìŸÂº ÑýtÔ UYÓ'Ž ¦t`k\͆Øý|Ùeï ëç—_.Ÿ¯ƒÀkÈ ýc{m£ÆÜú–âr|ÜïŠó,%{Uç04Ë •¦ÅÊ9èÏHü«l5î¾&_­˜™/­ý‚¯Z1‚šò c&»IÑÁw–sEàL‚aÌ%¦ÿJ[¦YDþ2UˆògP:ñ¯lÄ9¬¡Æý"»0ÿ’ÄÄðú$£ñ¼„Uؘ ºã4TSª'ô…;1_tz:è;7¸ðª¦å&úù‡¦ÚLÓgŠ ²|Àþyµ9c×r´§•m;‹Èu ¬a¬sÚ;Ë”è!a¤±+Î0 ™)= ñÀéXÆP8 ³„=ïI/‚6DˆŸb2Ã:„SôÃcššø~«\¾ã/‚ÔúÑdJ:Ê3ž"ªzuq*'J8ã*L½Íñ¢Ð²àO1^F&)ë”ÒDà}Ä)߯: TWû%ÝÆË”ó2`f°^ Q}I£ßñè›ý“Q¡¤î€ŒK¢N¤ä$í±šÿþANAïE…^‰èŽ>uFQJq‹ qôë› ‰Û«0ŠùûÉkfÈ›OŸÏr•’¹é›X 5mËDZÉ%wCüwݨU©~å¹}ŽÖŸj ÉèaHA N}€ Æ$Ò½ƒg/tŠnðèÈåÛX¥¡Á…Mû©cfÃ~iÜO¤``ÃÖ–`¼È\;L tøEð! ½NÁ¤‰µðzA·FM$8¥qІkÁsGÔ :çÂ}x)ö4ù2ìQ¦ïzæ»üòÂ<`Ï!K’¾*V~ÎÄ÷G6Åâ­Äœ@OìôGzr»½Õ†P¶Ã{ˆ»ØžáÆicDëýÂüw“ARš%B¨ÒVB±\OóîT:¬t“äѰÎÒ|æÅý?[æ½àAÖºûê),èâ9Î+º‹Ø8_¶@Oó”G ËpA*((RaB £ÉU%º‘ŒëT¡K ¬_ ìØéG`¸ßkôÝ%‡ª?6G© g }(ðŸºNŽªÇä ôƒ¹ëˆ fœ,êI…CÄÿÈ£•eèÇšbè ^ÇTÒ6)“J¢~H—vLôèBá,ºƒß$l.˜Ô M]ÐuÜQ:þcY}硎F˜a VèΕÿtúßãÒý•v»cô ¡j˜O!…Ÿ‚ìØ•´IÁ˜?un5fU•bn"Ï{l\ì¤=úÐAúEÔÍ‘Š|ôÂaH:|I¯b/”eÉv%Å4ú4ÈíH·‘ùxŽþ,ûb/ºññ0ìÜ Áÿ{üwѨÄÂèÚ § 3_¹#þª3,Ø8Y˜þæ5¦ UÒ‘)~.¡æ€éq&³ïô¡²,ϦÞ8 A[l^ÉA³õ—µ¿´›r¢)£êuÛmµêdÌ­Å»öá!ȼ/Yøs9Úʆ¼9÷îï±~Ý7MÒ•P3.÷cmyQ¹Ýv°I³[éÞdÀí"bN]Xx‚Ö¡õs¬ÂYWT¾[xö8¤9‰‚䇟ݽ•wjµ|=÷.,­—Úݾe—Ìg¥GfH6Ìëí×ÿåß©°´Œž8GU*ÍH¿þÍ&ô·€‡Úýú7°S¤*\=eöz Œ¦Úî茧>Lˆ[|F_¿ D8Õ01« Å?£ö „´¾±¶ÝZ_ßhYú –K 06hom¥­·‹_úÊîè!òOÿšª ˜Gq ýÄYh&Éþ«†²0>Éx(í Œ‡¾é?ë42a1úz”-Íd$XNâ—cÐ-î~'&ÛÞPkÈ¡s&O,ò¤ÊøžÓ-æïÃ6„ÑìÇkYÞ£˜Tq”y HÆE¬‡Q<…•gÀ€ ¨!ˆôÎnåÑE`á͵S*¸O£À´¿Ð*Æžá¿Úl¿!¢·J%rl¸KC¥`¦Ýþ(Іvö”ÝJ:o£8Ì W„}óõ¿M¯Á´'‘ÿõ$OEþØ,’)¦ÁÉYXÀa}¼‡dœIº[Šº¥¨[Šº¥¨[Šº¥¨û©EJuÝ ¼ ìÏ¥¬[ʺ¥¬[ʺ¥¬[ʺŸZÖ âeÝ)ý¥¨[Šº¥¨[Šº¥¨[Š::ê?¯¨Ó郢îcó—.Ì¥¬[ʺ¥¬[ʺ¥¬ûÙe]Ø{PÖ½â5Dºß‹ÆHž¥Ð[ ½¥Ð[ ½¥Ð[ ½Ÿ[èù ½ƒ,]º2—’n)é–’n)é–’îg—t“‡%ÝEä/T–¢n)ê–¢n)ê–¢î§uqö ¨û%ÉòÖn)ë–²n)ë–²n)ë~zY—\?œxp£¼¥]·”uKY·”uKY·”u?«¬»ò¢>AUn‹MwëUUÈ!:þ«‰/ûD5 `݇³“L$P 9lx0«! ±Ÿ€rt§"ìKÂ4Íéû†ÙÞfÑJÊ_ŸYŒ"ßp‹™‡|Õ›öÇæÈ&jŠÇ' -Ö;&9t®îzjlÔ×=u—ÑDseëwTñ­ôA$沉ËòÂÆ˜Ã惠<÷á€KQ’r”³6 ¿Üœüïϰe2ÿÆPÒId¶ýC”$b/Cx7¦½‘œ"!¤JRù„¸ÓÀ‘¦)ßçn9Ls6jdkK´AÛ¹Wy CmQÑ*ò€Åî}À{ Ê{gX[ ”P=.ólð‘p¹gøvDÏǶÂRÚmŒ±ªf¶Û¤ÅÕè•m÷6¯ü|P.Ú:©¨ÏGè„ñExÔFŸã¾A8Ò8êÂÉ4±fCÄóh#\x Ús—~~S ËwŠ&f¦Ò%°ÖÒø™>ת,4Ô¬Ô0æÁh×Ý×4âY+¿W45,¾±³9áGg!GTHýRÉ`±y`e# ySå‚€µ)ìÓï ¸>¢.=kíË„uáËÿËÞµö¶dÙÏÃ_QÈ36F¢cÙñ#ãÅú‘tâ8‰ÈéôÌ ±(Q%©"ŠÔðaEýë÷ž{«(R’•ÄÎ6ИíK*ëqë¾ëže޽UPEU|W*¾yø© ÊE¯ô,EÜ[/j t¬W'}|:5¤xÅR–(©|NÇÑ©Qÿx4Ü‚,vYØ8çZ¢túö¯.4ΞúHÏ×15j­Á/,¿£‚_ àz·M”ëÒw4öª*Ø÷>Šöœ1.«³^6Æ‚ºÈ`nA³g®Œ¥åj½€Û¢æ"¤‚Ã5é¹°>5‚êu¤D®ò߀äú§•@"óÈl¯,N[ð2CØ!YQ!¼yÂ9j)ü̵»-`H–—ŽIèaृº™u%8wÃŒ´á/“¸3MeDd‰¢¤|^!ÞÃjä)Uòµøœ’Kýqí~ â~)pH7`Ñ›kAJ#²8S¤GpÕ¡@Ž2 žo§Ùn÷Ò/‚cÈÀ80j¹¹+>¦HŠ®ckðÛ‚]så{ØÊ}õd¼'j‹[ðú¹i8ˆæ p^x€+Ë¢Âý‡lôÄ•r¯¦°ÝRO,Jµ¦r+ÛéÔôìß»ü‰@PrAé ÐÐOè,w5õYSn@µ60)—V”‹' /©hR¡Š?Ù[1¬¡:tdmx´¹_VÖOz[²«úX‡ôÊ~жV[ívÓÆªm³;aD¦¾Y`Ñ× CM­‰6"j‘¾S&ê]t¡Aå'9>NN™^W(»IñmÆtûC°¥JÜýéÌ—ϘþŸ3ý'r¦ÿÖdiK6¢¦1/cðJ]RKA†¨qoQ9 *b|jò;(Éc3ÏØÎc†ÝPTåÎRáw:!Rì«K›g"Ú'[´ÑQè¦õ °EÅQýkúڰœ«¬d4Ûׂ_À«[FÍÎ `RïÌ™ùrœtœ’Âê¸wœ—Ñ0+SçŒrÚT4JÿgAb FÖàC‰Z¾„Uò¨•£e(óõÅzwAû÷ëm ,zú6$4U1*Ã,ß@*?K˜ŽíǤøMÜ•ôÏ2´ˆü½æ¹à x»‰¿’[Îpb`,® ¯. ÁdØgÆ&1¸°¦*³2³rÃ|Ï3ðšøåïѧp$ŸhÚÉ×€–+ü¿‚ǹ(Ô[ÓÅ–œ åóJ»nù›N]ÁbËÇPà±ïWü¹IG"§°ÇŸí¼-e;ÊæÓ®ÒÔþnx|¸¼)Õ·©¶ÄA PFË ß;õ¥EB>6 ²@Òfhsq)}lÚNrU‰bKÔRŒ^U0Î1BTí—šTž¹ˆ*4†VD'<a` †{—ù†0و财öÎC.sÅq'!áÄ œ6ÀIPü¥7÷ÚÆÄÇÜjžû)Š÷œ–ç†Øtªº¡zªw¡üVf¤6µÔ•ñ>ø« ÑGK½ìW®Ã·i 'oÑþ)6E4Bþpï÷ÎÍ–8;%¼¡=j©Úè…. !ÎÇû"嫲å}ÒoÁÏJ .0„Öî³ãðx3„Á®p~¿âçá±µ úzsö“èÐMÄ£¾‰bÍh3¨N=]†˜&uÅß2ä/tÆž ½ÄZ jvŽÈS!=¥VÀ“ÜïLÒ6*é=#;íKÔ0®2±«Ó07/èA97ÛbˆîÁ€u¸jæ‹~äÕ9¬M mxbó‰¨|Ž@k C íe³¼hÉ/@ ç9Nô´å ŒèÉõaK#ŽèC†Ä£2¯F¬Û+ Kß_þ¢&–ô ÖäF–Œ^ÎýV] §r>†ô‚Û{蹡»j¢­Àa‹OpªÖÌBGr¤YIv»Å®0Ù-­x:ÁÊd¿on~ó`šD˜NcrÕ Òjÿòç£ý£Îß%ÊáfVÍeàÔª ÖYK™¾-`0þ íQ*æN»å¡`ÅH´yàl#à'ñð˜{Æs“ÞL‘I×Äcëü{†{–¸Ú#Ž{f†æ ô½Ýp_už®@-3¬ÉûŸÎh”C"Ø ùÓ0š«öò´ÌL›{ZÝ5`;jql%¤?ß\w/ÙÞüV¸¹ÊçÔÓ&"3apBÚÜdLÓ)?æ0ßÅX„¨kz6&Ò4ÄEn»…Mmc˜™©Ø‡òNC̰lr¨¤ÞÞËË)О"†¾øF†Ö¢0 †¥Œ—ÁaÓ‰’úp~]Œ×ÅJij%7w.üÙ">$•4­PŒ/œQ#ÕCCÃu¾]×Jš¦9T"½‚÷ )°„a‰ò¬‰ÑÅ}Ÿ|xCAm± ¸ÝˆX´8gGmÝ:è gÉz,;>U´^×™š†ÅqWÍHøÍ2K6¿BÒgím¤…;€¯qBC¢\Y`:2£I§<²h-äP¤¡.ˆ…šOX6›ÁÀ˜»à±ôþy†/²@e^Ú5šûíÕî6 玈j¹Êg> ¤;apnrÖùµšÀöÄæ ÛÇg7—l3WFÂUpv¸´!8c¯SÌ‘­ü³­„'ÓL…A Ó´o¤¤×þMuHYŠÆ¹ò>ø¥æ"ê0f:1)†(Ãm5´(ž ý†М=}É`Ñ·©?’K«ƒîi]ÄDzï’g"Lçüà㎠[Ëçd/Ü?¼ÇB«!&’*§ÝG6¸¨»êû+$çãú.|aŽÌ=R#) ÕP`ê‘fch¤B¿ÊÌ|ñ©;O¢QšXîÎÃÚ= ¶e­Å0­•v.sýÅ@Âå@d`ô6ZFséçi6D*"Zø"ì¹/–Û_™„”±)½Œu†f+Z¼äU매šx”ªã¾8õ<ΖªH‡#`êpïpø¬ïE˜GûÄ.¼dQåÌt¦7†¡õ¢‹ñ˜ZÌÏÐã¶9 ðÎBê³ X’ù̼°é4eèäiæUúbŒŽXÊ;ÜãHQ‡ %:ÞPbÎ¥X‚/9·‰Øý+=Ê.|Ø,Úżäh‡ï7p.o†I†Êid¯“mçd%Bpz¦-/R'ƒj|Xॗ`çHp¶[ÿ›#[ãµðl]Œô”¡ûøx:ÖY™è¦0#‹¥ª ý^ÏH`ÝêyL/;I þã”tEZ»Ç®¬tÖd(jËaübÜå¶?SÛGÃB6zk!b2²¤ˆ±0}±¬r¨"+ݰÒë8•@Ǭ®y7t0 Ý¥Dœ¬Ö[Xt¤Í<Í6¡ØJ¬If’R/Èê4³Nóyžý;ì»ù*„ä7¡>ÞèÒ»Òßè= +Òq9Ô3}ªI˜¤mûu´I2 ôpšÒëév0-$7ßgpó½ÎJmZCÄ ¦cÚä…e;†¼D½|qyqëpíëtáÌúÕÇû‹Çë6_ɺw ½åÔŒÏd†Ù|}Ž:OîláÌyÄš¼a¡Ø A™©’®µl¼ÚÊ >~x+œ´ ¹6 KÂTÎ"iÌ:ývè8ƒ@ÝRƒ‰@<9,· ™»£Wz¾ÌÖ){ÀL›ì/ï¨s ©ý5wÙA^F¤Tç–n¶ÞhRΰP$(ønñb¥¶¿!?¦J;‹II…°¡¿IêöõœF£þ¬’‘oø6× °÷¶xmâ )g ~Þ× c ƒæU†·{›!½ub7 êžÞ_¬NçÈ´½¯©ƒ-ï'äP&#Ìõ¾¦ÿiÒFe2*õ†F$TÕ;C ¾~5z¼l”ç®Ç€žBÀ=E>^ó‘!Oöº(œ¤¢æêøÖÒ©Ï*Zã"åÔ¥hMüËk vªOû¹"÷®³û45EÓòc6&E—hYVÄzcùû4™äehúåƒÉÂ-_oÃòÛáw-a½ýC—ñâ/s°§‰)³t:šçáÌæÑ£§ŠÞ6Lõ%^ft²yÜnžßÖXm]v¯ÕÑѳã6™§üoÇý»× øß}÷ùÙαûëPt9þû¨)B‚«ëË£öîΫëîíîñáÁQx¸ßÞÝÞD’¡ºîk²¢ˆSùãtBº[ŽMë´ø:TWzˆÛÄzÆî¯SjXt‹Fõ¦·z¬I´©¿Õ rþ¸L·ž¸W©ú{ø™äÒ†=ôbë›hµjüàóþÍ‹ûýœA'i©^Û,…^6쌟îuHdzá ò_×›^’âaèׯ{µy˜/ýŠR´Y´»œèI™ÑH¬üA#!EgíHHQàÁ¿§wôDÂÿÞÿ@—¬ (‘7aD´§iDg%´†•Ñûçåÿ)å¡Ïpº@áÅ7¤ÿ¡&Eñèðkló»h±ñÀï&¢åG –ñÝ„4Œ½xtï,;%Ô›Ÿß©sÖe]ØMµeRئƱbÓ]^ýü.|ÿòl’½PÞ¾b7~Ã9HJòV™3[•zìr¡µúÙfEIvÚ;AjÁ ì͉êœÕ>µ1"¡ìLÕ™MIÁãŒó*û¬8¼¹…$2§bü»@™æAŸ³­Ê<Ê79¨¡A¤Ò~.àÂ<ùœÊ ]þ¼q°Š¯.?¬öj1„ùÎn.M¹3ÎhD³E²&«ç°¼8Rµ+Ãb÷¾óÝT¦úA7Ø)ól ³ƒ/wú6sÝ.r¹‹báÌ:=Šq˜­îÊI¶¬÷çÄ6³¹ìÞ¶)ƒâJg±zU‡6ï™ w†üáÔêIH´Ö3a4zÄ)Ë‹¶ŸK=…§#<kD6Vc—› À¼Ýw§yFyA¶—K1ãnýv/v!?vQ•EÚx ÕBm‹¾ƒ•vå´åu¯¡%|pŠ–$/"–QQLŸïì˜$d€œßÎåÊ”9ÐFÆ#Q`L/¢ídâsC0ă9>Ü"LŠx€S}¿l~±âFA^Êmxçæþ:Ã3^ž½x÷R¦eÏ; Šãt†}pýP·ÔM‚€¤!ý¿&ôÙÝu¿æVÓ¯\ïfÍϰ|Ÿ¯±¶ê zMnM#².,?ôÜI\Û‚lµæQÕZùóuúK½EoI-ZÓj:J“çêòælåGl+¾jÅàù²|¨ýÜë𚂳D¸¢FøµÐ'E`Ì—´ ¹zy#;¼D¬ý1„©OjÏ>i>ŸKp#uqb‰C¼µ«Õ :xH|œ"õç¸J'†):œ¡™ÔnÙ¹‚O0ËC)±n6áœtIÎß S=h©°/—¾è/N¹uÝmÏl]˜ƒùçæÚ1Su6Àa?.š¤ %fÔs`í"úÍÞ"î…u[?˜M|ÙEÙäJ­u.ñ±|{:LÊ…úCÚOÌœ&=£éôÓž™¯„ä‹Sõ—?ï=ëüÝ µ óÅéÈ´¶SMº Ãgá³%éÝu™?‹CPs@sòÃHwMEߨúÞ•‹È62Éi‡šV®MÏ9Ñ¥½ÉK˜ŠëÌÉ lëu¿?xqfíÍ&3(\GêŠæ’ïÑÿŠÉá¼ÄêæÃõÎ'‹ÌNRº?½={¯.ö¶‘5W/éÙDtt„íÝ•ÙÕnOw:$ŽÏ_‘6G†Ó…¾™¤ÛòÆo”¯ZîP„$’J! ¤_RJHšðO]c¼X¤yã ËúúŽf8Mÿ{`ûÿµÿp©—§íˆµ£=f=ËHGÝkb2dѼ¥]êvqd7§u³lì^·öŽú9›GK´ªß÷v‚Y_EÊY'U ÿk»CŒ¬·h‚_]¾226 j¬„à  §)_7^ëפ·X2õ¢+¨0Ù¼E6m4–¿Oû¦‡dèGo¿Ìîv×½‹]ÍÞe?d±ß~m±o×-6^×\ðö|Åÿrt8áIŸ[}Jìõ鲓_³|ÊÔKðdvÓÄÿzxü|÷øè róûÖFZçk[?ü4Jì8Wûœß¾Gú@g‰H>Itù¥O_å·ßFñέÏHþ—M¢ÌµËå&)É=ÄÝÚi†/ƒ<¡n»H5rü½4ƒËîÒïv7¤7IÇôã¯ü“û8þ5D夒q®DPëå¸4Š3ÝÎÅ芑@9M¹¬”4åü´”uú€o}´`«÷Ò^úÉ\r[3v_p²žs­ô­ŽSÜ@áU”–P™$Â)R¯ì'êio~RðKÓ¡…yvH¸ø6¾®å-4<û“%-%+twöêÁËsÁï¹.ŸIÌ íŠpyJ´¸BvÃÃð©ê<[ oäWú#WÈÿÿÈÜÈÌkYíyD&yuÁ ¶2õª{þkjÆÎh¹Ð='îLSw7H4çø\¦IÚ·¾À©®ì°f‡²™²ž-âÔ®—¨÷Èž‚ $7, dWwp^\1?ñ&©º#NÖ Ÿ—9½jfðÿ‹âåõyF|ïu÷xeå/×\ì’â)4«´ïocõ|ðÚ„Û§ ùü]ùk¢ˆ‰ì·Ôkó¥U FøE <ü,¤Œ°ùÞn"c®†‚qHþqi-u}v.¡º(- ÕåBxyÝ‚þ¤ãþ( UÀ|m«74‰.J ›,÷ù¸dv‡ÈýEe¶ZA¸W™éI }ïÇOÝÛU²þº—K„û`0W_©ê rmð¤Îúô›;£þi‘ã]ÕN;7Ég=AŽI -'‹òpW:NH”˜»|lý ÉÛ[Ô€ü?°Î˸t#)ˆNgĆ¿Í²J…Þჭ£%ÛÈ.j¬òÒ6²´_VuØ·_{Ù­d§vKNfÅiD±¤*;ŒËíõRhI©¢‰ÖˆõÆ•9Y«ÝZ iktîØ†’¢€ÓÙÕeÌWà–>’\H¼-cöÒ÷W_hTÄÊÈJ=q9Ž..io×ã’¿\"Vš +RQZé)|‘ï7`¼ÌZÔT@åd£¤ ¥ÊèÜʽ¾néîQ¸€SicáBXɱªˆXn{£$-å(…#-6ƒB•¤2"Ŏג×ú¯+\@N­ÜJ’X³¿2R–,nCÏ¢áÒÚâœkª³Iêt•tê8)o†c¦4Øçª-éV:n{m} wZøÞé)÷= 5¼ÍAÐö:EµìáÆjïº*lÕfåjKg™žCáMʉ9šs‰B—ñÜ©žYÌÞáå\„·™2/Ë|R­˜:&mC8õƒåj™°ºËþù\~”mˆâ4§eûQ‡Ú• Øe›¤Ëêuµæ‰~!í¿O¨ËýM˜‚8ÒÈÅÇ*»4*³ ×?±º[Åd»ª&g¡æJ¦tìÒw` w©äâ-nKô•?ÊÜ…èä{3-{1I¥d©»ÔöÙôÙêÂ}6üׯÛNɨlËzÖŸxÐÄéÑ3#’PDhcb; ©ÌIÙÇ{po1°yuk׈ýôdÍQJ¡ÅWR$QÊYHxÏ5³°Å’ü*t+›o‡¶Ô:ÕY­ä¼²ù¾ýêöSI¯q‰ÕÇ\î’ª—ð•R>€Ø`8×ÝQó–Ü„f_ CU^ùúíôÊËGÏöšwëϺ?UÎηˆ9“Ä1¬äJr×òj¸öµÕ«¾{“Y(|'=X…þ\ÓÌMLöÖÊ•~Ååpè‚&þÚ!ÑñÍš¯Áe“¸ß¬°8¯Ì¤Œ ‹ |Ëï¢gy03bíA(U´ÖDŸ”+šR%DIØ´·H†¨F‹ùWš(ýP&»I‹_‘^”,‘ð²¯DGÎ;'ùÏÇpµUX`ãn)5Ž ©ej‹ú†gq»º™ü£hôM\ë쇇K5jnל‹…Í{MIœ%kîõV^”úÂ'ÚËå6O%ÝÒÿeïÏšÜX’5Að¹üWxñNWFÜ 8cã–]‚ØHAF‚äÉìi9b€8Ü‘¾”zëÿÐó2rEj¤çŠL=µHIÍHÍ<Ôùc£Ÿª™/Øb=OJ2‡™¹™š™šš.Ÿ&Î%MǵÒÓ½Ëtìé°ð#Jk`ïÚgì·ñ8¾Í³™,‡1q_„D³WÕ G ð"?I•y>SXÁ$ÂÒžXç¯ÜÍ—Ï_4Ľ‚Q¤$o-Vc+^Õ„¿Y*ÁUhÊÚ,yƒðùÌh ¿ÊÚ Ëà3B£•ÍF´xŠÃ¯É©Á8P33 #÷–þi˃sº¢}´iCû] ÍgÛ$ëC6Øz¶=‡­úZD87Á²²£¬_Ìm,>ÝŽEsqqf×xHGlÞ–ƒÁÁºäÎÏJ‡äÞ. ‘Qר 3¶":«^ÁѼ~¬ÓèOY‘,š¸_™p–ZÓÆæŒQ(kÇî¢Mì`˜RÞj=áW$_( ft¦â‘ÏN>ƺƒÇŠÕ…2m›5Ú\Áj9dŽ\£µ` ÆFM4Ô ´K¿pXŸ_À¤Vs-*f0‹PWº›ÄºÙÔ6Ë@tó—y¥¢YL²¬(§Òe¤¦8œi#0ƒœ €ŠAIŽéãÖšŠ•mf|µØf+"O*IøæØ£Fj¥|@I¦8rüjŸ5»¢ÿ•¾‚L¶û|ˆTÅã´gãr»’Ÿ0vžÙ»?_ÌŠn¤Ú p* ÑÝ‘—1Ñ=ñWV¢„AnR%Ì+A H@”Åxß§¶b÷ðO{W*úME Ä©Šb∃¡ž¨ ïžC3}@B’²éŒ~äµç¶àðS=¯ÿ0]…Ü6 Á•éñ!Ç®Òâ¶@<‡A2t?ë„næÝaµýBÿr8 ˆ¤$‰ÄYX¨v†ú?#6Àß^Ó¥ ñ_X\§‘¦ÞhXëT?Ê‘bÂ}—x¥ú¦ª»yE;ÀÆÃÔ¨dÞjQ¯žy‚…O›ñNæ× d\€¶½À!b÷˜†KÝ 237 ‘à ªë(Þo¾Éél2À!ï´ŠšèºÆ`BmR °vÿ=ò‹”_O»²P*¤*Ú(žàRM$/nãl·SöNaøÈ‚ð÷iXD¡äÚLµQ@ĸ]ÖAoÕKÖd"°æŠ}mÓ‘°K5­Õ jž²+*²%¨~¢l‚óŽ3â®Ýtâ4T>tnbŠ Ÿx¾¯G‚Aÿ!ɾæÀtÑp%Ùçanæz±Ê E à9É;Ò9ý?§JúpFÜŠãïM&“1bWKbÁ‡q44Ú²s=ê=âüév_-|B#LrØd ‹TŒóŠH:މ»¼ˆé¨<3›E~ñÀê/‘tDcžBM¾•ö@M9=¥û­<pÕ~\£h2ëhVËÚš™NÒæŒJuiE/)+é/’U±wh%~‰Í$ð·X]¡ã ¹7zþ¬ I–Û @ÙgE>È¿‹t ¥+Ñ•ª:¯#î´rÍÐKÓÝ(£5Vz¦í,J·*Qýý¥öÊ 8OSãGf[¿UEd ŠÒÆAp-­Ô:m!ó0$[֜ѳjÿ­Í£a„!VL±J©øÁ\”Ý ­²¨p“Åš¦“1(ü÷ ŒÄz•ª(¯º@©¢éÒ²vQÜð c)fÐ×]-Þ°…öTN[#*¤Å-Ò|SšŽÞ/«ZÿÜɦ¤ÇX NlÌô,¤ñBd(a…„ÛÀ¶AÂH,zQ$ïñî{¡"áÚ› ï•»õÜ{ñb6`äa½ÍB¡Å ¹’‚´P7Ë” ë0;µ×´ÌŠÖñ–pàpÆ!ž($u©„D–`½ÓéÇΙA–ð9P ÛÖ è(Û¨SkÔˆm´°äaý¬ãü3±Ü¨H¤8–p¡ƒl ¥Îð  :]Q?W¤9Qúf£P¨Æ® s¥,¿1 ? a ¸ˆ•×° íO#5Âî§\a¼-ÌØ¬ƒª±×±bGËÔe—tjßàñ"´uq pF/ƒw¾hèsñÒ@Ÿ¢àÚ›i†T½š8AÏè1ùvʨH“jº*km¢7›Rüã?ò˜…ÿ Ms]¾G~bÚ™ôþnIê¹M^ì´Í,IªˆGtMe”Ö(-x|lwÙ™œÃú•o:е¶DI©¤oàŽ !œ'»Ô|£uè·JªÐ¸Smn)q¥]ÙŠÁäFÆÙ^®ñÆ××ÎaâÝ™g^æ›Y]e1ÏÏM'Ž3¨PÆóÔKª{ÖHõê•!)4ÅÂÉVŽ?ü¶=°çXwÁ¤Á“Ä ŽÞÍ +ÉÌ`i¯ûñÊ‘>›‹û} V‚âsÏæ2~Ìè¦Æü™>ÛæR5L£ro´®Fœ»­Üh9CÑÕf%.²XÅZ¡{épꬉ¡ «×]ô¤Êmnk$gpŠ]VžUì⢳)ºÆƒœ³˜þn/yÂQˆVk!+*5øÆÈ¢†"ÞÍ›¸…áAÐ×…øHSC\!ð!d”H¥7éå?Û*Vƒk]ƒX1’ƒîê€sÖ^ŸJöžM§ÇR”®8WÁìh€œœO¶ŠûÆÝO!1óF(æ#Ÿý]Ù‘n¬3†¬v°:Ðl!ù†<tû2ÅwÏ2®Lœ§©iCˆ¢Iš  ³<*ºlÈt¯ÙÒ<:öÒZ©>ÅiéÕÎp¢9Ø÷ j«ÎÔµåjÖ¤NÑÙÃÅ +‰T*dÀ aÉONû±žqL)v‚ްðÚ]á–çÖ}å1ÌÕæËÙÕ¿2fäJ㺠<ÖLÁ~ò4jÑdÔ.Ôâ^µ+htÎiÐ¥»ÉçîÇH7?PMÉ3ÂWÖÌ=;HkŸŒTeâí1Á´HåÖ¶Ì@²1@Õ&Q™4ÁG[ZÕ¨j’#@¨háq‚¯a`%¦PªÓõ~½dÓîPO;DAŸVŠb¿°5NÌ+ŸÓþüÆ@÷•8x&±Âì"dËⰱʒ¿5½QJÞ÷ž{¢¯àбëãAˆü½‚XI7"ï…Öý¸œ\©na8æR AèŠvW0 PÄ‹ ’L“Õ-8(?¬áùÁÁºÅybˆ…,Kûýh±–RZ€jVž½¹*².9N’6¬u©£\v,£WÔDØKG¢ÜSS³wq›Ç‚¶90Æô#ˆU#ˆðr\c¦åšli›PAšj¸B…Jn f¾Åºè’´Ü±b£0 o“ö,hcPIþÄG¥Že æ5C0rªýîÝŠd ¿p§ÉhXHðm NÎ’]Ã¥M|$"0Éo¯€ºåͱ ¢±X³Ü¿J2÷ùNºÖëõÝ¡´@".nùz¡f°œƒoæVá`²ðð–©ISîšÌ ÐBáer"`Oˬ k÷\ûva y±6lB>IàNE¦‹fY3c^—ŒR£ÓtŒ½N’I䩲_ªbQ…Õ’áÔ¸H8fÉÒ]JXUÏèûOÐ#iëo¹[/·æÔÀgÖ1ÝO.¾uÄ`“î—ÒÁ§²û/ñ«IÆj5«o©€&SC&¨•UO!4„tMæ0寍tá†h1ëµöiÍgMª4Rô¦2‚p brwìu3œ&)Ìû¨€Ñÿ‡µ ¼˜ÿÓŽÜ—¶k_ 4uf~(²-Ä“Þ &|Å€@ùÉÉxAäÐqÅ ÕöC&6±ÃÃ+Ú 0@{ö€²,‚˹F)ð2ncå¾Ò­D£çî ü§‹×/]cKùDbÝ1ÐÞÃ9øÆ~ Ÿ–m¿¿Ž §‘Bf'ÀOdy€‰þ%&^†ë<¾|Š Á4ò{lTG~ŒŸÞ2Hd H\X³Œ°”gPLÃ+ µH|¡]æ‹;ë¥ý+ˆS~CX7vî„= õõ7 ¶ôGæ ®¬¿{oPakcc{ãùæ+÷Õ3o{Ô¦ÅÅÙåèdï÷ÛÙý"ŠBëTWŠüÅ%CdÞê4%Àæú¸Â²¿ªS´žÒ 5Rånà…Yb̲ƒEa÷ï§¢ xGµ«§eíWèðd’•ÊÛB€B{e™Ã‹C)W %­Q·ºC³¢ŽŸž½–ÛëÕy#£täYK¾e…5‡†™Ú#›£ èËöÓ´-ÖŠ€½4»{yÙm]"iÊðAa—¬KØö^rÂä9~:²Îéîe²C\ÀI£~1÷)²|8) B7!ɉlHbž0e;ÿÀ}¡†—Í{øûÂüìU¡£c`©3š âê «è@ †^t¦Š©…kÀ„- ²+gâ|"×|>ÿ`°“9¤å×ò~_}½Ý 6_FÍ.¢%žy¯æî¾j"J5¦áûãÂGŠÝæm’A¬?R×ÜLfîÖlW͇\‹ænä/CXc`кn:ˆ³U¡9PÉP÷8;ž»KclÑÿ*]ÒÉWËèO’ô¾„2•¿)Jée”2øÐ÷£”Ŧþ¦(%^”«ÉUµÇ2òLd‹á:J[M•"âú«5îÞ0ÔSÁ~«ÚÙâHšø•F©£ßì/¤Eý^ûô~ýž›ÀêzüŽ/´fZ­oˆ2 ðïjC襇 &ಶvÁf¿îÑ –ëu=€X¶ö·t&õ’¥´‚¡ðÞ¤’Êߥù2J½Í£¾bâû«¬ÿ-Ñ‹¯* éuL×·{S+*ªKĺ\*ëhl÷[[%˜Û7D­¨³ŒZâd¢ûXkûñp¤Tx_bQK iø;•(¢péµ-ÏîÍ÷¥î·´ÖÆKét‡÷—%LåoŠRKþYœdy?¿?«4ðmQìÇýóeDÛOÔ×€º“¯v9šoUhéÌ]$ïJKçפe²T<;ÏÓôþ™­ý-­»ôjémr¢ýÜ&Mío‰V_?|XJ.(¹% ßb^ßré|Cß’°AD¼ø²Tþ Ê­$×ïmÍí4ÃÍ 6=Ìs¬·˜Öºézm÷: ºhë±èõk’ËWËÈeŒk¾zzIcßÁô2‚uóš¯`}nìÛ ˜Ø#nAµß¹Q¢2à¸{›ñÞÅ21oލÍü¯4V1M,êŒ1Á]ãÒ°9~&+ů¹KôÒcËšÖôc\éø›áĽ`É^B±^ð“ƾ ‚%K &&‡µ^òãÆ¾‚ òe+Íkƒüh6°í} dcï×Å™uŒùa-Èh´ö-ìr©|T!Ö.C¿4Í} D‹:ˈV `øéÿºkQç¨7×î· zDáÒ+ [$Ö¢ð1n€hë[Xuã¥ä‚]"†Ü1~ ‚‰•ã› ØÒó@ôèÌÝÆq"Œm{ßÙ`áXz·²¶ˆ5.÷(·*Óä·@¼d©èfkÉcn‰´ö-,½Zz5¶‰µôê1® ÒÚ·@21p,Ó7ízÅ>±Æƒ†s6oASÇ ä¤AXÄ.¦çÅ—G gµÑî7AБJ:áŒêusV1|#2°^z¢V›Âròb~{\¶K0§¦æÜ¯¡{í#fh§‰¾î‘÷O’}í晸ÙCó3’Ñ@)›uƒˆ[$ä¶íãÈ 3ä ZÛwçW§Dr-¡Àë<áŸïE”AeC·gù Q! :鶤},‚67ÜMäÖÃð ä?ëUO8½Z_ä2÷4ÛŸKU ¬o,Q¯ ð£ÎÔvU€˜üy-p¶.ÃpÜ«9uêþòçJ&vzñS*ºÝ¤²O¹9ÞQ¢ë$b§&¡îΖ÷j†Ù¼çBK( ¾®LøÙáë2m½ ‡ þÚI â¾Zçý¬LÜmj˜Î”Ðï9¦÷ƒ‘N>¶›’™ú™à8̀ż.2_£ß\£ %^y FØ,C½uñÑÀ}‹d2»Ý) ·†h(N=dq¾ÿÆ@åÖEôÞ&O#ýûj‘ }þ¸ýÈÕ- ãêB¿äʬËWK‡elÝ7Œë¦R¿ÞÀ˜Ñ}£ƒÓKfL©7 ì¦R¿ÞÀVÎÚï{pb^6¶ZÌÚ #¼]Ù_uœ+çñëòcÁÚ¨oßÅ~½¡­œÃßûðzÁÒ¡Ù¸¼†vc±_mhÉò¡‰Qû¦‘ÝPêרÊ%ùûÜ _:°Ò²~ÃØnQð×^-žµ€ß0¸‹ýzC[¹,ïû\~G( ñ+”«ËüZƒŠ:Kµ(R»S•_mÈáòëµoº ­.ôë kõMïw<´ñò3ñ~7Œë¦R¿ÚÀ–•à´wsÉ_o€°S/£X•ï0Ô;TøUG¼r'~›£^9äoc1'Ë%Së8pÃèn,öë måüýÞ‡—^-¿¿ÿ…›îï7ûõ†¶Z=ñ;žxQ,ÝmâDë¯ñ[óÅ—åf–¥ÝžókH³¼×»SáœÓý@aC ¹çâÊ m»ã ©¤aª¦ñ= ¢üºÈ’#HªŒ}o «+)T;H\L9û6 xœÿHÚç$÷ÆHîLÔ4µ˜Ÿ¨7N‚ò!ÐsÉ_%)ÄgÆbÀdMGú%ÖM›)DB~+'nô¤ÌJÇôj@)Ï$é 2§>’l¢Õ°–Eü˜4M –žê,c¤cñWŽd*ZjÅÙGîí¶Mtèîvð©òø»— °N2}½swsõƒ.vÉÖÆÆ–·E åÙö³9‹í1 $sÏÙ›j 0Êž¨ ýhà ´оHTwÏÚ+èòN#oT0T¹»¡ùÔêú]¶ç¢ù`èetr«d”fÊÏ<_Kš‚Á0NÝÃDáÏ.Ò˦­n'ôB­ýÔS]/þG“Å3Eb ^ïB¼5wµ7ú‡§ýÜSùý©¯‘™6ÝAŠÅÄOÔ‘»ÁèºÏfgj¸cFvC\eŽƒüé~ú´@2ö""I¶ùé$Æ;e<?5ü‘^ú£! ÃÓÅä+Vþò`…AÇdv0.ì5›¬ò¤(&Þ¥Þ§ê §…sŠd:à;TƒYvì>ÙC’Ñ' ÷ÉEÔêzBŽfò ,?9 îyéù“Uy´Ó®æex'ãØôÈt2™xÊüÞ¥Ÿ™ OŸûSèÙNé(e]wøþ¥7“¶à¯Y}S¸k{UÔÿã2U›ûòÃz%¡ÕœRw–â¥6©'ÑäD¯¬úG©vNû˜Å”jò<žžRf-©S{‘4P&—ãÔ©¥+7Ë‘í‚6Yµ;«¤ž$& ìž.{í+RÕôþsÁ†O¯/77Ü-ï٫٥*\¨Kï5^P ,( þ¬ƒÇ3¡Xh°,Õ¾ÃpТ*lÞÏ0þ+ÚTNÙj™ iàÈ;ئn Æ0ã¬VŒõ£H¶}Ô+²‡q’–t:BÞQ$:â,§ˆô7²ŒÉBI}2™4Í~r‚n<6ùCì°d(¤iÕ¬¾Ë‘Ì:r¿è ôØ»—“VŠ„‡8uï=¹D®¦q’P·qNÀOnëþÌÎ2hkœåÞJáEŽˆÅê¯Ê…®i½ar-ñ3öNÔ’§™q„–”º]N'¤ì:P!§‚û¡I/’šK„]9àüˬ”1` sR+ón’à9Á˜ygj]Å;Ï1Óx&? ó¾+¾Í³œýɉІÊç’½¡“nüÄýH|êb:þÎDhÑ@…ÖMïîyÅ%H/‚ý»ãv¦Îßìåî[Eò?Üúr¢£ûñâµdæJ!–›T•­w Üs•Ej¢é4N§ïPUÚ3Qàê+ø¦¦Êd·‰}¹ÛRm.”‡€ªœ"‡N0Užûä=m__…ôå‰Ó§ã*¶ƒkÝutòù¢ªË·Åb’@`¥'-š/4ÂæüxÜ]¥ÌÃV?Êåbˆ¢ zàîÌÃV¤‚°Lʵ€’Ä}ŽÐ÷^LqçyÛ½ÍgÈk=Ÿ¿ùØM¶NÜJ-_åz•lY±œOrÓ³9z\’²ô@vªÌæA6ÐJbES*Cæ™$³m¾ˆš>Ì~ÏXì™M] p¤ï ±Dûe TƒHŸeiƒ„„Â?ÐTál0$ œ©jÜÝ'¶î*‘罎H² hê"Ÿ'žþ´P±\!§$5cºé¤ú4 pÍIùÓLÁ*&J^¨¡Bt”ËäóL¹6RÁäîE<¢éîfü·Ræ¾äVC¢ÅsóWÞó–¤Ë8à õ´‚hÓé$Â(ÈÍ7œî½?:<úl’[5€äÒ 2—äñi™"Ô©¥ÍŠÚ|Á «yÅdgö%a­$„D7L6td)Ž~ÉôTW†öúmۡͳbÊ?Ý¡û–Ó娩»‹¯žýÚR!q5:gG$Ntc¾½Þ{:BÕWÍ4GG½ly[³‘ÍåˆmgÝ›NI¼Ä´G§Õt\§ÜžU.¢Õ¦<’]ï/nkT¶5™mkˆ“%ûî§ÿœ\"hê$vßçt£ "ÉÖlEL™ÏnSHršalËH;gA6üé?Ûgç:¸Œ±úq§4¥¢(w?ÿôŸƒ´,†Ä”ôÊ Ï²|i½ùÖO‘Ô8r?ëdDlŸ©< ÜÏAB×|Ûx>¤£äC0$&”3"ü1I‰âº¢T)ò1mC¤Øº÷ˆšH°ím,@Ó“ÎÀ2QçûEÌžIV›+ µ›Æz–`$ðúÕé̤P^;9<[÷DZ69˜˜‘ŠÓŠv/g@tÊ,S&"%¾bº²Ù0™¼ãµUI€¼v´kÃéú_Šb[ ÇäóFÞ½´üa»ÖÝ}¼ƒ,†àRÔ öú^Ãø 7õ×ÿâØ"Ï’.P.ì¢5¦C/‹»P¸šZ“l4n¸OuÖ}:Vi:¡F¢^ZiåyCB…–ôûECrKFFK- ê¬4ßp_Ѿ+Jâ^¥´ÔgØ4ͼlØtæÊGjo$ý–«,¿ÕؙᷮON‰Ù*’jI:O‚tøÄÝeC(Î×êÇq?Ô¥ØòÐEŠ8Œ oó…GòÚËÍMH¹; Ó)-X°ËÏ©b ÄÆ7܇hOë!qŸNÑyÉéÞÑ"AëÚ£ˆmyݯrºžé,q÷ßþ•ĿݱÎZ$0÷ó ò®Òî ,vJL+rßÇcõÓÿ“XÁîhŸmmo´Òtsccã;Ǩ×óºyuÞ‘ÿÓÃa÷Y]%ùÿø£"½iÂ[¸Ô;ñ>¦^üôßÜ]|óè›JZW)­ñ¢ØIîÿôÿºûI>DöÕ]ú®‡žùÚê‰ãRøü»¯#”>›fšäÕÝPgÙ´5‚êuªÔhÎGõþþôß~ú/4#Wa|•úÿAÌçÖüØM›¨‡2žIà¥æk+Í„×"]îF$þÿ?wW¾{üýkkL·8.úà5èkZƒÏе3#ÔóÂÂkž ÀÂõêò³]òS…Å™ôÖÂnòFÏ9í"r ‹ÈI5¦Üd^Ã9µCß$ªãæ´ñž‡Ê“FÎk:CÍÙ¯IÔ‚3p Ã<ÕKª,Ý øïŸÝ½$¤Ï*DAºØÐ·–¯ú1­/hZêV;oŠG>‰b)ÜAò¡èø‰#‘¬Crò’¢‡Ñ@iô¹0¶h5×^’’µ¢uŸîc¾kéN«; ¼(¬j·é·ó>Œ0©|iõÍ Ñ3i÷`@.ƒ¿ÝŒ?sw»^*[ÝfûùìX¥JL·Í¶†V•ª¤ò¡ÕM=Z»ÍNÍVBÔ8jLIÝÝ!ÿmÑZ =5%QŸëe¹îÐÁ§ç+#£óÅ€.Xáo«Ó›Ê‘ŸÃ8¶ÆÄ=vµ´†Êã‹ëlÁyß©(%QmW_¶Æù(ïu¸`°G íÔSMëˆh9â¿-¤½žmVì~Q}æ2þÛꑈӟ-‡È]J¯—÷“èN¡Ø§›ðl£l6:Ƚ‹/ž|ieM:ÄÌzAyš½Íòë¦ œèÎlI"½ý--ebDü¥%ÊK”-9ˆ¢) žWú§ÿ;:|éeô9¥Î/êq)tùJq»ô¥Õ ƒìël±ŸþkÒ'º² ¹›Ò팖±@šÀœ8Z'Œ¼4ïÌvåD%©ûÎÃ.‹°RÃË¢ž§ðÆ´vfÞs’g_‰ñ ñö€ÎH þO©ÉÕgL:Ÿê5“ Æ~úé¿g_é•£tccs­¨Ü0OIÈÏ{Â2FüÀšË«ð^ͨC½I‹Ä±ïžtvŽœ^ñ÷V*ßik,.œ‡èôe¬§-h|’pg' H{ ÏÃH¾¶F¹ß¤¥æs6çÙΘ*oÍ1ÕÉ·7;Ûƒ”N°8¬š@“I6h*Å+qq gqzZßcþÛªÔäMbCáw65í=j–7èh [ I=%ü§C, músõi弯ÂUé[+ËÁ¨•OçÜLá ħ´ÿižˆäøÛ"I>‡5S2N˜}¾ÿé¿° "ùî sMß¡mK½î`Q/Ĉ2æ3ò¡¥iéÂσ´“'³Ýú˜ ÀõÎÀ SÅü½…ü­žª-ß3ó×61ëíw‡‰ßêça>»ÌIäâtöIÇlÇqß~^À¥ô -ãTí&ÑJáK~¤ÿXÿg·ø¯&„?%±RpœèÀÎÄåâèáÃ2¨Hq›˜·{ÉmÂ5· íY±"W"lôÐÝ.n“8š½¸.]%œâ*ÑXt—˜«´âVM)$À†tú´ƒä¦ iZã4€4 ƾd°|.•–Ÿob ½ÚZ¾„ˆô6†i1í‹§ß-ñß ¸Ýw§-¹ ĉw9~JC¦´÷Â¥Ÿ-XäJKÄÊb:›h–;QÙ•‡P¹¼-7œß×Çip Úo«y£úÙÇöñ÷Rë–Ú::4üC*ºÝ㣣#:Õ|g“^ëm6øõtß4—mø¶áê UöqéÓÄN#‘XšMŽ›€QØù8fW$:HÚ¢¦<¶&vZ*ÁzƒUŰCì>T$mãm&n2Îqšæ*ÕŠÑ÷€¾›Mؕªvò†Oâø¿8ò5Žà²F“NB {G]Ö¨Ö{á-½sÇÑ»³£wî5z׎޹ÿèÝÊè›G³þÞaÛÛýýÆØ®Më²Y<ɳ€Daèv¶í3§„‚zð~IrwÃ{õ~F³.qu&eâ=s) ò»= ~i6eCž‰¤´ªGºâ4ÍDµP.â8ëc•-¨¿J¯,PTÔëGmk 7j¸Ÿ"’”ÍÙhÏkïÃÑE­é1! ŽÁ:èÞ¤•%n©ð÷ç_€ÊèódùzÆS§‹“¦mN^4ïÖmÎ#w„¡ËFÜ xÆÁ¥/³2#¦›‡Ê¬©ÃÉóôÖâ2ÌÇÿÁé/•Ôˆ ÁWKà”O„à+÷U?×! Ã=°SóƒÖu0àw¡@;SÔ1š.ºIÄ´xòqžÎ•9 t5ë©bf·ëË÷Z¹,2;Ó›´Ê^=ŸÃ9u_çaØ|-ñd¾{|xÄäᆙz“ ÿ©²]Mkðú°§„´mœ¬›=Û~î jeí8:º H|æ\£·­»ÚQy‡ÃáT²'‰~ŠáûiE:íJƶS=·MlÓœ•s(„û¨#ÜzÜmvÑàã~n>Ÿß¶(ÒÜ›‘p÷“x?œŠïØA•²â—±ZµŽ©f]žxbÆöR/qƒÆ…Ìá&M,‡,]¼ÿ§’>Âr>¤;†‚ŸÚ–)ž+ò.N¹r/TÞѼœ3ó©E#(U²'4epwëÄ‘–2 +ÍØý -sLÓ,mÑyEg¡{Ùö%ùe2=(ô­{áØ½ˆ‡lâÇ-•áseà?oÕÐz™ÅƒÈ=É¡h¾ éO«Û ½¤Ra_Gf7ÞfÔ9$€+i{6|õ ¦v UìOÅÝÏîÓÊ"ª³ÖõUþÍÝe8¼Õ¸òóÕ>¯µ+Ó„çsúûêùYVŠ«‰F^—< böŽ0m©}ÕIŒ¸\â™/™síÌž|‡»ûwø–Ô"y?Hè_)aM-BïïöU²ïѬS;ƒ 0¯«„uѽ›¯>Œ‚M…IÆ@ó–õ!TÅË#5_Œ<›x¾>ËÊ­øÖÛî™Øö¼c‚¼ÿŒ¸h(jtPæ'*5Æ¡$~îEg;1-6TØ»Rƒ€·Õ~]’|õttø¡}®Óq,A¥¸£Uœy$”êBJ+´c>>š j©Ó4ÄMšŠ;þ}™|_&Å2IãÜl"š=Ü9ñ4,’Db[óéØ<Œ#+ºp;vò¬šrãÔ-Ç™& ù@ÑtÊ¿¢+ ¤BÊÑŽBÞÐ\D€pÆ Áãt9̳r_WDÈ‚1Ž+¿ hœEgæ÷µ¿}ìžÐ®K\F›§gt¶#ÑWãLWŒ!غFñ,?¤V϶ÏöÖ†ûlû`sc{£!¶6§é¾†¢{ÀRAè¾>xµñª?›ògË~û×?ùõÚ{müsãùލäËËå+æJ ƒ² GøÛ Ó‡.“ëK„* „ekÛÛšÙÑæ[½{lïÌ…ê÷Ýé³F|Ñ, TÀãŠ:A”å•»¨.ÆÞ+µvqʉªiñåîH4àœkÔÖúý/ZÓtLl«©FÐQ u£i{ánmz³üÇ–9 XÚ-Ž›imTÔ&EIaIÚò¬\‘o®ô ;ÐÝ¡¬[Ö¹¨%(AP6º‚ÞCœ(ÈtÃf÷5€ÙØ 1­Ó†U‹¿œ£pá(»ÅØá§Wqà³É‹ÍL2[ú:ï˜NÀÔ©»&~¤“D0è`8€ÿ+"o¨éª›Äp™®w«få×Ö£RœÏÆÙ’.Æ›bUÎrj­,“ Ñ墦‡Eרuèf¥Ù§ñÐÛw pf—˜)W\­ù[Å^Ê[ÿufè–6S=¼}ýûŽKgÝ^ßÝÜô6l¸µ5 ãeœfL¨%ÒÕ¯$Q0³ ~º‹ì¢Ö\Yá?ÂÄ ÆÁØV¸²¥:µHWKX;?#FÏpZr”˜8šŠ³?ñ2û r#¢Ã¢õn…ë=õK;£<ÍàšY"˜Æ5ÛÝû¯£ëQȹX¬ÛÂé‹Þæ¬5È×G#ÕMá Þü(³Íá`´’8=)|%íÂùSÑðŸÌ‘A-ŒÔ%{sú‚Dvi”ƒ-ÊÖ hgɬP07[dªÐ8EðòzFy`>;¥ þª™Â®É‡–m„–F½®ø]žìýà~xãàôûoO‰\cVc„¤™Ä@Šå ¬×5 )× š°.Õ¡“†l{î\Êa'hÄuØù£ã+œ® ieð´ƒP%€ºì¶.»øü Ûs)ÂüH"L“hðÍL|~cVØ*~Þ7xâêòÐ"…ŽÛ8ØH#j#ó‚•S¬î½¾gF ðV@¯ÁîN f^*£Õ[`¼žÄ$£÷òå• ®® Þ°aŠj_R¼8ìŽ=S¾nnDÔÙG»¯–ÝØžî0xSã罯wôzùèù£75~ÆÑ?îº×QóÍþrX#÷(`«ü|$à>?6>µ—S¡ð1¹Š:÷¦ƒ#™žVÒáSûqé°‚ Z-Ãh`«üŒKáq9a/Y>~c½ÃðMŸoô½äQG?È—¾´Ýe¥Ÿo òG¥A-§5ÒܶÊÏ·‚ìQǹB(¢Xï@€¢ÎÏ·.WˆÂÒ{•ÜEâ ?ßìG÷ƒ^4öñбÃÐojü|£?òèWìýŠaçN(jý|ëü¸`œ5÷ÏWI„Öcô~$YXÿŽÄqf–ÈJâÐh•>ÉŠSÒš°î@[åçÛ%ÉãžéÕ ÑTî"#š*?ßøÓ«Gÿ×Aóàà eÁe©ä¤½‹æÀÔNËÚ?ßÞà‘<6m.¾ÜL›‹D j” ïCœ¬Rýg¥ÎÅ—G£Ît ˜e6Zîl‚4Û3Aûo¥Da³´»K4i5”eB˜D¯ò6˜ $¿4 “I+Mb´æÊDZQTݤU«ÍüëBý¾B­VŸì%5dÊËÉfê * -A¡d·ÊÈ™ù7ÁG%Å-”lw¡…©rob8†îíˆñx:7£ÄºQçvb˜*¿1w“ÜRw‚Ø:¿EU#g;7k¢îB[ç£ÈãrbãÈ—°\C)(URÍmƒ‘»k4“ÅòCËqÉömfåq¢0…]i{ùÑÙ§@Òmâ ­‹T¾ð_qSª¨üt u†¯ô--LäÆi2"÷0[$·¤3—Ó™x*FÙ*ÊsÿfQÉèX3&O>ÁlšsU朤}ö}Ðn™òÒ(ÒDfÓ†›ê2¿éŸö9kôR©^ð˜ÖAwÁc?Q“4MüˆþõB¢‰ÓF&æxl†U„B«¤ [Œy-”Ùª¨t‹Æ„Øå’œ.ø6@Æù¢ç~ú‹Ê÷#ê¢ã|ˆ£¦Å\¬n¨U}e¤Ì”Í´ÜegE—¾»—,¢uö˜»¬¬Pÿš,owa:¶Îí˜Î£ŽäfEö"U~)æùxzm£"¾^û.ô(kýR$y<5·Ñß¬æ¾ Al_Чõ6*ä[h½ïB¢Ò/EÇS‚‹^¹³œ ó!w¡Ì|í_ž;Þ¬â¿ÓUŒküR×ÒÇÓøúÿ»ÐÂTù¥Vý㌲øV€»¤¨ö‹åqyã}ìw»«.hàö´rï¦[ÓêÍFÛ~³yà.ä±u~©ÕóxÖ£|¿ÙZp§{¼©óK‘ãñŒ¥ÊýNƃ;)Hç­÷¡“sô¨¶„Rÿ~7[Â}hU5&üR\çQM ™ÁNR·²î¬{¼Q^Ø‚+œÖX”éLÕlEÕnÊûÈ¢eâñ¡æÙ혭NŸŸx®ç²oQ: *àžqMo%5>†ªçÝA'`[¬éãYÂ>Ô¸ˆ»ï¸¸?4«E½nwPìvG@ýKâÅ…ß«$D?hε:¤­ȦA·aa@œ*=‘=3 :ñtñÛu8Ê‘Û/àÆ&üwaÉ׉ІT0d Ó>À¯Ãž¯“~¢r½¸³òfR Î8T—q+Ój„„›Õ¢½2iÀ W¦U"ÝriV±om&ßÕK󱪎ӦÚa¿ok·l‡x÷W$±§r÷5¢~ÑêÁq2§@íæŒñ¬wÝ#Éág£rbÓ"ZL‡ùña´0o¸=Űàz<ž‹lI‚ªª›è1ó,]¼ÂϪJñ.yR,FsœÅ®iÜ¥u9?Ó~èTåIÎë«éÕæ¶»5gÓƒí…-=»Ì´mêo©ÆçJH)I-!TYLÇv6»±¯»iÓ’=n’QíxÏfò­Ô3´pE;]¥?½]‡¥¢f¶õ;‚¥G4ü`¤ý@•ž|<7< ±Íb¨ bæ}£ Me’0ް·]µm_<§]MÂò¦%©˜;ÿ@Óúk¥V)f½åþ‘Ýá¾fø:˶fDv8î›OÜ¿¢8Ô±™»&·üJ"æ[~Ø1ƒ^}½ì¿?ƒÝÜ” Ï—ôùýáѶû ©ìÞäqÍܺ×oä*77ñ(#¹5õ©·¥ý’¢ïïˆóÕ½}¶¼·&³ýª^Jc‹‰ßFÇ›ŸÆ :׊¼Ú{ãñ^2"1§Âr±yZfÅaoã—vÅÃr=ÑRq•ÊÜ–‹ÁwS=V@ICÈtfÏðò{€—ý,EíJÞÚšÍ|5Gѹü($­‘Ë>uïJh§þSIØLp¯L´jgâ¾4Lbä0ô^º[;ÞË™…ˆü¢$÷óPÁ÷˜ýù,SÏ\0ÞÞú­šÏ? ö^7Tij\š• ¤:€qéë¬iËÁô«%–:ŒG±{¦“ð64Bä£]Тï—÷Í0¿:µ_ûaÜ©—í$Iâ´è ¡2­˜ƒ¤`Yqžm>ލ0<¯Ù}šáŠ‚PGej¸:늛{àð¡Fºâ;o "˩ʺ AîM†œæ±Áƒ4ѳ ¢uÊüǜƛj7Üãˆ^¶ÆéÇ“8 /Dœuc*3æúq¤$_.cQši)’ Óé‰p"MR‘6i25ß Â®svt§I’é2f\ZL 3\&%µÍ±ø‡mD9N~:ðé~Ñ ÆM“+SÔ²XJ–ö¼ÿ:¾žöuÔ ¨¸_Òe‡dgœj[sà—\Ò=¦’ `%9ó²CŒ®ƒÍ´‹œ•H„Þåär†Òž¹üÖÂv öó‰/î.Z-úÿî ³c.{ùxƒÿ-|Ü °“IòõYeþÒÛñ^¹[ÏfÙþÙÁq³Ì‹Jµl o0/¢ÑqlE“P–o‚_\þ 9ìH²ÄÁaÞÞ%«¯Ô´cð>£ËVÞxݯ÷§ q”D÷H ØØ`DÈ­çÞ³õ¸Žû¬<¼äô°NŒ‹\OÇ ÷3q)E+c÷òJ>µRDå$:ô¢ðþƒ ü~-€§“Þ[&ªÈr°›r‹Vx‘d뱈sÑkâh<÷\ûÞ itû%6álÀ=Få·ô¥´‚—׳©®í¬PCM÷Ìü~\üþÁsñSªÑ°Ø+/àö~î®ÑÔiþ#h¸Í„ë¥q~ðöøóQÛëå…Z ñUÉ^tw|‡nØ“Ô=?Ú;<=j˜¿Ôr~½Þûkƒ®íÄè4 ˜cܼôOTª’´; ÕòÇÄ9ö¥¹/ÕG10 ¨¬²Zæk™âñ›¹ÓÇ dGëØM‚1 €énK²[Þe• é$ÐàžúAÊlº4b–¦¹Q™PÏÆ¤¥œ«’}õæg´™ÀkÞ ÒÔXNE£´:U]:¨w#ü}8c !'M°D"áß§v6fíµteKï»"ã4ɦ%gKJ²p*¾=¦•Þ|+¦ g¦$ëÚ:¬>SZ$‘"i(gŸGì"QnЃX45ÁkìRAÍ0n³Ù7,þÌvLf<µoþ¨‹,§ÝŒÛgYæàÝ{îÉÁ4I¨ç xÏ÷e€ýe»@ÂëÒÅ…fºƒÞœð«Ó¹—KVO+Žíùq‡~ÊFЍK—–i€>Ù{«½ñ°“gµ«Ø*• ¿ mòß’Üia®ýû/(î#EÇô†+z†3ÌÚg†ÀîÅFµt¡Ã¼Ÿ—Qizi·KltCP+_I>"‰Å}ŸÐý.R5 r•Nó0_>p÷É¢ên¥úw×<ý±ò´éI/œÚ´ã÷%’IàÌâÌsØÖ(5pЭ•oS QÑÍÊ`—-Ê;[”Öº¯éœa¦¾¬–+ ÙXm¬ý„!¤Î¬x[þMµ/¶î&¦ýQP oË}Ðì—3l¥ 3 Vë™Û~szò´×kq†¹¹?•Á€Å˜ðf³@¿óu½GÜ–6ÿ˜vojî:®¦V²åÑ^ºk×XàÙABö –C4îõ@6T¹Raà;Z Ã qf¶ÀcÁÀõ™ºVJ„‡06?î|v3?#Þs}= B¥æõ8æÙ¢ú¯99ဃ›+Ç/ý~Àμæä(A‰×v˜QäpÜIdŠÿýú]P‡+ ÃøýDG4bíLõB:ùvéNœf­pšByï…Aî¥ÆöPÑêrOuŸN\¶òø#ùÜJÇÉ”bÙ*]‘³A øÅ)¢)&6z]uÿJDzeÎÝz5‡ƒÏÚŒyXûvûäj[.ø'í«M+ÒQ[ô]"ó{`o¨ÞäðøÅ{gÛY;}°µµó|½˜'9Â6;Qe~fŒœÃø\§Ä̉µak‘§¼¤ §gCÃ¥‹Nu46Oõì`Qíè®âCZ;!ûÐÝHD¿Å&Ou7O háZƒUû‚’/Æd’ÀvëôþLeJ‹8jN®ß\¼oÒ>'qå¥IV°9£Ïš\Ÿqá²üfÓXQe­¸;TÞ·^0–›ŸÇÚ*‡yD+;ÁçÉ>}}رQ»‰´OoE=Š…S™Z£‚mΆû¯º÷þ<¤øGˆŒãõìë8cfNÐ×ö÷Ræük(¹ÊƒN¢mFñsÿÚ_Oö¶~øá·ÍÉÊ­¶xAØ£•œçõ:ØÀµ–ßîï9{&Û¹áí¨Lû%ÁYc‘ä;ÇíX(ôѽú[‰ÈPXp¢V÷|:??úpñãç£óöñÇm¹Ö!/¬‘)É*ti‰»OíÍðé Åž–1²%5ø~r|pô.ɦEçö-.3#?Ñ÷³Jÿ‘ë¯î®âïÞ•|oIC[Ùv“™ ó„m’9^vÜ—;ÞŒI”S™¹Û´GJ…åû »QSæßº)šwžðm €zUN еgºÝP"Ô+7£ÛMS<Øx_g,ç°‰ ^*Ñþš³4³´JA—Ä!<÷IþÛk7ØmMMïK÷D÷õõBž»µ=slË=xµQá\ÚàÃcscãâ“MŽØsSñ¨¨XLŸCtö9ýDuƒ8Oé4-UâÆnBB;zq/ã­ô:¦+˜Iö2uß¡ð@7‡tñ~K·Lºv‘ ‹ä„ZIᦶ~‡^ bo¾zõœç‡äUˆ[i†³.;ÿ`ˆ ¡Ø.H(²f0’tFE†„2Ï ”fÌ©/(ƒª"®F°ÇY‹x­])¸„¯;yŸõìé %á »&q1kUa;ȽÏÜD3÷iF1Â$jº9¾áÍl²Ó˜Æ|Ì>ŠvXaß0NÞNEçÒîÍ[d¨g*œr„wÅ;ºå;œ¬öÓw¢}ä¾½ »è¹øú-ÊBƒeý½$ T‹8~_’cFãÀÁüâå\üT¯FåD å€/µ®÷û´]o4Þ¶ªØ„h‰îå~@嫤âF„0îH ‘d&CÊ+vq‘{²{z¶m-Ó’2-±–/ã3‹Š3[ÂØ¡©#ʲÜ#wQ¡v‘l‹ã"i÷WðÚ÷4W̓(2â>¯F ø.†ùé5É•×n;Ÿ 8o·‡ot À·©º¦<÷ží7çlîì'¿÷ÃÇîí“ ˜£ŒÉtJwcE‡÷{â‹¿z._hnçwør'ÊäÒî9“ä  @,œkXçógÇùg:%¥78.¹¦—Ù6d®À¾1g€¡‚¼…Ä û¼‰G„j_è:à»_`rý¢;H«D¯È‚|䦜o±¨?ȲñŸŸ>…©p² »ÍÓ‹ó§Äñ^==?:h^§aÖÄ·ÍÍMæ·¨BhPÖᥤÜ(uØÒˆX›ÚËC K³Œºf¬­©Í3Šœ?%©hjÚ`Ó ÂV©áߘRàW6œŸ¨^&— ° jpCDÏHÜEx'‹i,üÈd|BjŸ ï(:‘fSÚ2ÀO£Ý¢ ò3ŽNºÎÿü„æî‰Ç“.±*Û/”Ìû•5…¼J|ÂИx-Æ àGÓ #~%^™#®h¼Èhôð LÀD©Ac7‡Óuõ¥†ñ²¢X¬ÝŠ-ߨŽiK µ©±hP/¡ÿìR+ºÛÂÇãNCè8åœÄWÔŸixO‡½„ œ"ìÖLê™83½wmŸŽáÀ¿÷TÙ£²ÄheÐ×&%Àø 2m•#—ìMP´ãMu ˜tUX@åä’ˆVù‘ ªÒOƒ~%"u¦Ü êÝ{j7|º8¯2˜ôÖrwGƒ¡š¶‚nH’qE/>€/~U‘MhVSIñŠ ¹tyz±5«ä0pGOÚ¦ÒsÍ ²×q©š»EÁ¥C}¯¾æƒ`#nY>µz~@[‘Ö&¼yïÃÇOîÛ ‰?>TQœ·†ß/K¼þtþéýÞ—=wªÒ|šS1×Ý}'ùPM”÷7ó°ÕË/ƒkÄ× áåøþ4ÔD¿kÍê6â(;Hº¹óÌ{9C?ë)‚}e|]NO,‡â“Âä 3F¨£Óc9Xn_ÕsåT#òV5¿âÇQé™î dN;ÉL*5܈µ½öÁññ:\AÁ=¡/¥¿&éŠÉ<ýx~üñýž{bžTw7£­Ñæ‹èA.à+$úªqð ooó%]7^ÂÞ:¯–3eylïÚg³*6ëƒT‘¤Ò¼36^3ugˆ8OºšýU‹ Þ’Ö̶æ´g:@7´P¥¤.Rµ^{¦—÷w0dµq:$.±AëoûåsokFIùVtÎ"g–Š hÉ"°<šr|Oe9xã˜%d }UÄò©±çŸä¦Rnj7c}ä~vq¯çî"ƒR««àh¤ .ðøaÂ?Ð6×¶m¦2ûª„fx€#[îÖ ïÅ ‘Ò”ÛŸ¢À̲17(ˆªÆÄG¡úH#Ü0V9 i¯îYÊ˸ôÐ$8’ñ,ÏïIš¹ÂwawïGÈaSŒâÒ‰7C ŽÓž·pa.ÐYiÌ›,nðÆC’ªéÚÉEê.Li¸I CÁ—–µŸ‹€ZÉL+­²$%9g!48ÆqON8·i/í ºV(?wô>ù×<¢BrQ@¡_†bõ qÙ=ÚàtÀyPqÙ>Œó0NÝöñ‰ç–4ä]ôÂÁ‘Â)jwYMÓðˆÁY8‚)!²†ŽËŠͯÈے칋E®ó†&¬7¯ðWHZQŸHkÖBSòÁâÕNŽ´ÐKLX›møÄÔn]Ñ‹ã„ÓÂöÃéx²¬E½BTÈWçðžiBJ°+̼ъ²¯ØÍ‚93LUÜÈx3 êÆ€^!Yo<`}¼öS¾éZ ݆äueØWAjtUŽ0{ìÕÅ:“‰œŽ:¸Â˜YD u$‡߈ã<rÙ¤B/ºg6ã\ÒšØJ\$ÓÝAC­'÷K#Ïre6Û^;AšæPxY‘QyÑâé²UÒ 2>+³!( ¥1º `7•ƒu´‚9õ–§ÂÞÇ%Ž&³UJßY¶5"ìnD"j‹8ËÃŽ³zJÞàL›;É™¾¯øï++ÞpZ¹DO«ÇÔE@¢ÜSþ—óýòÄÈM˜’£tÄâ •@"Pq,t_ÂuI§XVBhn]<¶ùÄs&<-t„¦®rЬU—õâf-KÈ0ðòÐbRZ¤UÒ,4©]û(iÝBŠW&¼¢°» Ž“‹7/ª,¦¾5'ÚjìllØ.x4bço˜ %šW™u¯B­ÍÆ«j'jz]"(õ¶P…Ðâë³þº(OÇâ?r8g¦Îšöú^ƒ‡Nb)u ÁÒ1lÍì>¡…Õu¦à^NH´Ï!„rFôê¦Q¡p9M‡®•Mªƒea¡Àçmú-QŸ]FR º¬¿7^FVm—upûw0• ´[MwO=½‚ZÆŸßleÖ=ÛÆÞð>Ë Ï/=‰ªu¸iýY1L‡}ˆ¿šíhy¥õ2+6¨Ñ‰T6Ÿh:ÕÞ鈵® KPÝÐøñ_ŠŠõý½V¦#¯='6‡W¬ýA Ìå«E}1Ò¸ðQ…ŒÇ.|Ën:ÚÔÏ×(ˆhÃÙ¢à,bᧆMª/™ÆâÐ4g¯ÇXüÁ Ô•èŠl¨fÙ Oo¢{!»æL±¦Ë™¯;‰*®¤…ç¬}-W‡/Ñ}å8àƒ5Uð~)šr0é[ T¿rN0Ï‹£ÊEl{'îч7ÎÚ§ÙØÜÙ[ç=BëLM¬—š„ûOg¦_é@ +q–[fF™°²Ę@#ËkQÒÀC€©aO˜ë?:L†‘VQåÐ@8U3Õ ßD@0Êφ¸®¦ìÄ J¾…\ _ºÚOåäòIïíqfš $-, ô0ó­Ë}Y9ßJ•#¶^H+þPb‰6_»H&|2•Êßœœ6ú4† ÙÜÚv7w^y›36NVçûu¨‚öû÷F[öëòî½ß{w|ºçžà vwiWª¡º ZqJ=Ì^¤YÅæÜ4ªQŒc]giK÷ëp”µ=ÊSÏÏ‚jéS•*ÖÌ´U†ÆÍ×Ödo8¥fš¹§ºÒŽâ0sÙ6H§ë3ogEî­J|6§ž×íŠÜ*u¶DáÜm¯ˆ´^šÝ0ÀaQÖ§ƒ;E½J\,®\¸J#"œ%>âJfÝë”8) kÖiÉy­ý8)c¨h/uâ>É©y¹,ziC4#ÀŽˆó´âéä€;Ò2ɽt-½’بÂǾ¢l\ÑÁ4ÅV Ý©FÛâqõ±Í­°X´ÌZjè#öéÔ%iöÞ3™wŒJž½*6±õùó•.…L»¨|sÐQQ”£x讥Z;ƨ”^Exæ%ÚovˆÂ(øtÝxGÌû×c6!­ óåÖJƒ]ó;Üß«Z)PcÇÛú‘Qò^n3BàŒ…Ɔ}à;¸§Öi ËE'–õÉÆR¦ê¥njçg§5Oú"Ȳf°ú;ÑÖ µLö‡Søù––aØÂîÙák.ÿ…xMé5+¦ê)Ü}¨WûDF‡)CYÐLŽ<—ˆ¿Ú~ä0 Mi릘xeDþÓ ½û)îúÚÆOO`úŒÒ‰X?ž_ᙵ2ڌ΄ ®‰‚©ÚÝÍø‰—Ú'¥±^›G‰îÀó´Ó¯Y©ŠDƒFrH™5ºï2‚3o/H4½$Ü‚£ÀíÏ’-öšŸÙam\8q=ETMükPu?‰°3Î$\å2Iôª5(Ô^R1#Köø’H[6 7cal§²Ž’UX|íLén2’[º±PZK_œX?ÐY‰Þ•hA͹쳢„ñr£XLµîå© k2CzZ §Þ[ÈÆó:f]+—$Êk‰#ÎCÍ;E®+©%£}åŠeu’û“ ï~ÈÓh½!õ"þZ_ §4Qî[·?„¡°ºÜÄÛxémm¹/7¼íÙU@Äb•~St÷î®7c2ðÁQDr­ €¹`Ï>váþ’0vÊWé“ Ê¯g|ÞDÒñØpŠ©ï‰"Ρ›õäJGr^säZM6ô\¸ 2šƒø´5:¼è‹,Zr=ª+‘#Ð0‹Ç.̡Ԯ {Ïpz?ð8tô"Ïzs¸6$¢Z™Àl©·£¦§ÆùâÙEч[/Ìû~ì~½íʰ“·ÆP«7/©7—/“Åij>£Å"拯yÛ/G#Ad½fQ6–iQÊß)••õNTº5ôË¢Ìq¿[:¥w¦“]½™N SVþNé$è¬w:³yõf2-ÊM÷;¥’ ´Þi5Ы7jIÒºYZ9¿ZÙie’ÔÝL©…Ùì~kê\÷ƒT0ú·ÜÍÍWÞÖ ‰¤€¹dÆz,žËàx"Abšƒd/wS¾Ið…ÔØ W¢ZOµ…t¤î®ùîÉ÷Ç^K¯úMºÌé‘ÂÒØÞØäDëÏg³}~ƒ0N¹-ºHT—B ˆ:ì|û¤m‘O>Ó‘•¢ÌLŸsÿüf½mÛÖÒ ‹áËöÁ¼Ç­»±ã¶õ˜Œ:ÔåMï–ío.j¦qü;V%S¦Æ}‰š):­;Mˆ¹c„’4Ïgü©NKÌ¿‘Îû~Âñ‚(÷Ôm­«Ûiã1›{dÃiÕ? :ÿ$J¼¢*þ„ºñ„4’3·ô~«X€R§pûç ˆ>_Æ7)çüÂòÒ†«:Xþ]©ù¥pµ¢Ùµ2½:`…œ²ï˵1 mÃÔcG.·lßµà…ìÝ%7Ì~€t0R|Uf×袃»eß¼ˆ¿µú¬Ý-¢dVDÃLEý¸ ¡´á½`ÀGÆ ”\€"4ûxEŒñ0ï6ÀÍp÷2 NÔ­A"ýHµj„ LeœÝÆ…%¾=£¾è†P°ˆ“ä‰,¼EGIÕæ-v³Y÷´T8ù±ÚÍš:,Y‰RúX#ð\[Žuâ–ÈÁ•¡u*ußçcæØ:•þ8”-؉RO\iiÒ)U¸Íî%—š‰†9*âÛˆ¿¬ª´ÏÆ®/:ËZê2§c0I­œP*šeÐÍMTò•Ž@ù0ŒÇ½U/8¤Íñ>ï¾w(–¾BBÎ?Hö#9ǃI‹¦I¥ÓjÁXR¢Q¿?^Ù¶ ½÷šÂ>õˆJÁ¿ÕM=:Ca váÜxªCÎmׯQËÞ»•·¿Ñœ{êDóɽ۟„üiU/Þé^Ï}w:ÀZ¢ÏƒÖ^Ö.Ö–-¿‹Ë»•“O«Ú}¯¯"°Ž¢)T›ôgØYUžÆ¤©‚³Þ$Tî.±Ét@;sÁ(Oƒ~¼¹¸‡AŽ‚~+ÏüÌÓ~n•3(l§ÄKwÇÀÇUï>Ó™ Þð” ÌZcÿA…mWÙ„Ê1Xõu]AwLÛÓx€ðãñˆþ¶p».ë·iÇh=&.7¨hHÇ×n*±ÝiMŸkJÝ„ÿ./Î’ Þ5XX2£Ù¥}x‘( €Ÿ]óÀ3Z }[dx¶»ÏˆÛüÙÃçÖW:}â²Ý«¸¯y™Ë}_¶ªƒ&ÀH|ØÄ©±3#†^cëCn£ÃoØ%”d÷‰ÚbÙ@î4±lÍÔ>©7ø|e´lqèæi³/¨ƒ×¤Õ×x.\”X™Œ`%D°4ئ/æ„ÍÝÛøƒAS«Íjßžy;ÞdÒYôµEƒ@wfôó•_0 ¯Ž¿1Å*&™5k!ïHlÒ³uTÇ ¼î5Ë,ù|ì\²2íõÇuÏý›‰l±~<$×#‡×…þÁólœC^ù”²+n-éà·ždâ›ÔÁÃõ†bq| G_±à„à§\[¨‰g€ÎÕ Ã©`x ´âœ6G|myì½' ŸÈ ·š œý/g`² oê^pÍáÔ~60þÙ`AëÚ¨‰þF¸8´òϽ«/!Í!,,Ä~.ât@Ržû÷Æ—¦­ m^E^çþÎ ™¾á„ ¶»µùlØü>n³æf 1DÿpBU,ÆPOÜX<‹ºM‹v”Eh¶ùŠÃ~ÄXÒ†i0QPú”.rˆí²Á†žûYæÊ1± ®ŸWÖÑ–Èý@76àæ…Ö‡R <¥¸-PÓ™F_*¸¸ ëPÚT-Dãbûí¾N’iÃ[¥¸ïÖGää@>­Âcc¼4¾WgD-ãqÄtðÜ=ðЭü`Àh˜p ÄÍ#Ç DçöÙª*ÖúézýfQÒáP·„“Pâ ²«Óù$¦3²–®TÛ~}ˆ3]¼¶! C”˜¾ ¥çºc{b}oéÎÉ""0DÜŸRwŽ~¡€ñ™);8¤õµ¯Sã4/=ÖÚ®%ÄŠõ1|Ü5PM‹O²KÐC€³`UíÞð7ÕDDZ~¡ ]]wõufÆÔi™V Áib‰% ÆenBG±&bŽÄ}Çô‰™ÁÑÿ*PèF]x™1GŠ›J'è×ïwu¬ëj^YX˜á´h­Üuò‡z!¿I ÝÿØ+Ôú÷ZœËçp¹KR™„¸Úä£N)¬_#›“¾’0ý ö³8‡Aw”×$⌠ß'À«G)˜v3Ý*ô§æ`¨0Ji¶.<ðxkZ€·UÇ•¡uSøùz¬ Œ,ÉW~Œ³ôI³…ë|—& ÚªŒá$™ÑL4êMe‚7W]`3%w‘5ï÷Œ v³êè- wß*€1ïŽÕ©Ö8(ïKôÒܧÙ_HTZðáåR’žÍ0|ñ¨§ùÁv-î@êÉnðU¨V¶§~Ñ{ã‹ò¥ G˜GqÂÆ%™\³¬Q‚V;˜÷-sÒ ûkpUvæ¦FZ¸®û\…ÖŒX>]2|’ YàsvVÁÈYEšé*¤…5nH&vr5ã"‹SÕ0>vÎbÍáŠyCÕs?èÞîn$Z“¼9 4+$Töç7v§¶­¸Xœ[ºöˆ îu ¤±Ì²‡™K×c=š¾VÝÌ}[ÚòÌAŽiDb\æ<²°¸îË´'/8%¯”µµŽŽT£—úûè4 p!bÿyw7”­1"T»Um‹Éh¾Ÿ(ZPÔ‘=HI¸gÅ1bVà$zZÉé} ~v4g=<ñFÅ“x#œ…¿–~fDGžÇ“дr®XJ·êŸþë¸W$ê¢ò>Œ$QWžzCúÒê®K%¶E>@LÁmׄÎÔÙH 0bTÙΗ鹨¤ä,åÛ«5]‹çpê"Œ$rèäFj2ÆÛ068?QãQO!Ü Ô^•Â]ëýô+Ãwp(ñ%Ì ÜŠá+Ü#÷Ðc¥âÔdJK‚¡û9ÐöìVݘ~ÖÉ‚áWñ¾¾Zº,>âWìv}hJËò©\x¬²ƒœKDJåH溵 “ ´ÍY¾He¼µ DU*–¡bŽñ§´˜T “Žp»tP´ZS\J”™¼ÈÄa—9½e-ñ)»j¼sûøX¬¯ºÌaîÅìÚ\ÁJjðÊa0xâb_Ý´ÎBHàÝ1ÿ¥sB“x–NpRxÊÈ€#f@àHqÄŽäÝ)?kõÂü:O›WA’§3ϘÕ"èIËV˧"¯Ká‡WÁELÿ4ÜC]è NÔÃ#–ë„´>®ö’ld5£ýb Û@qÓBa°åä”&îZ æ@ªÎ†™ÛN¹e xòã¶ÀŽèòII"hec6Ñ2‰Åï½Èå#¦O7©Nˆcƒ‹9ª«Eƒ¢Fáå£muƒX,ò.œÅô¼Ýü¤e|>—µ}âè 8–s›Ú7ïF#$¨u•¼Q>êÑæðó±xþƒÀ5€uiz™EØâ~üÁÝÛ©ôÖ¾œ5J"ÅÔÁÄ9õ+ÅÝ5µ“ÅêÙz-üRB2ÊJixD“áÙ59ILP¡^Ä9cßßâŸÁeŠVá$ïSH9'¦çæý>Ôÿ`i‹¸@á#²Ð<åá}'zè®}ŠXNÅ’ÂA¡’)M¬¿nÍ]ȪsAçý×å·qž¤Y^ÉÞ'°Ñe+Qܳ’|L}È»MÚC?ŽúI‹–œO›·ëùCk@IH(cGuFYVò¹E¼Jyë >pã^ëUbáv®bó4:Çå¹ê._Ó)ÉÇÂSon¤|ýotÇÔ`†j#YUG’h>šôÑ™³ ¢dÎ?h`—/4£F{¤¶b–Fáªiº¨P†«£4Óaj~È$e­áL- 9±uùø©©Í¼ …¨E&g4"0’Kc· ]&zl[.Ãã­4M‰á $‹ø-ûÖt±@Nà ¡O€o‘?ÏÝ+r\ûªôý+&YA‡0l «Š$–<˜IëQ¸ª@mTˆ¬ˆqJ°Ôe`%ëÎ.€0›[/Š bjçÓÅëæË†ƒP⨹iòð}<~Ù<¯±½Â%ÞÂvó>2õì«‹ñP‰«€…:V8ªþužpѺÞ;¸’ËU*É#u–4yHœ „Á:7-ä£ÇÒõ át‚¼››[0¾Í¤+HLêÅPP ‹Í× –ŽŸ®xV^oÆP#SG‹¦XÔÄËãÈùD~¥îalEFÑk;f%5ÝÔ#x'Îß3©%$è"C•O·™ dÕ4..pHa<úaÊ ÔÀ0Ùf`üä?£-€h™Ì¹f½:D3qÆ4¤kêw‰,ï(á™¶œÓvóðcÛh^׊¸ì@`#HFŒ%P®Ç®Ž9ðÊrS¯z[´øü0Î ¡F|Ÿo¾r·^>÷žÏ ûø¢dØ5eßkçG'{?¸ÞØ…ËmY3PéÆÙ-j²Åh\ÒdåCËÐ)‹$=…M¶Ë>ö¥î·Ärïzí¾Lw3ó~BI¸F‘ß¿lð3šãÔ¿›«vù^ƒK'hea¦¦š­‹vL•XOïaëð%;“ˆyöpP5 ­4‘þ…ÎÉR ®Ó«ó›ØšokÉ•$¶™xûÂ0T"4TN´á¤cã)È|,€}Óx-$$æMΠ,½?ò» ¨f3ûP<"´»óÜ›ñ@¸(KºŸ¸d ÷ÎDU‹5°RT5rèØDc|YÁ>ÜLèÛü aÖi£Š=Ï^ÖÐF}HHOwåÁ|zrðãéQ»½÷æ¨ý”æooòzq C‰_&^ê sŒÜ1ÄHð‘“€Ž3ŽtÙ¯£€¾EÒθ{Sʆ7ކCöÏÒøû(·ssÕhä­§Kà(§õ}âî7qâ0… ›P]AoÛÑ]w7íðq{@Æóëße;J1û>Á¿“ ÖwÞÀ&èëû ÿNf¸Üu†_Ñ÷þÍð¥ºë [ëïSü;™âqx×)>‹Ãï{øw4ÁÙûçwcêWp(¢Aò~þ}Kÿfg\kVrlrZâMos&, yPht%¿ ¢Mv¦w?æYÈ^˜lÉâI7òpá(šˆâ"LUOðžø«¢ÉÂ8_SAóFßüT’²ÁÏRø}b¶Bçý´@Fi!³F(‹ÆÄ9Oaz‚ï†Õ(›õ½isf¤ìåèè…qèûÈŠÅΓ*ÒdK|I>qp˜®7àâÀD,t&øÍ¹Ì9Ž’]áî©D]¨^l¥”M…A—ûš&Ç&¼¿°YAŒŽEºMi²ü"§Q,ÊöÇBæ¶&€°¨˜æ:Am3¢9¹)v°`›záì¤D75eLtK&>‚©a°ÁgZ•YE!ž,'Ó#(V¡6; ó~Ži¦†õöFp¬LjK@ÇpLz%¼Ó‘¡yÖMìh™$EˆÅa8bOËÁ†ŠãÌúdUW¹T+¾‡&W£à_…³é_iY dfjs‘ý5s°ª‡Aá[S¤b5Iw³2“ûaœ÷Ý}h]w}ú¸¹±Ùêз¯S”f½¦J9i£77·ž¹Ï7¶ç±â—ê2µˆx6w¦îžÔ¾°†¼)ÔôÆŸÏf7”,Ų™õ8·Î‰wxÉŒÛnáɈW;³¯6зÒ|¢S^i‹$l0:M@ê”Div†*ØØnõa:¢‡aýa¿(Ééà*?tÒ¥WÙ·çhx{ ÷$£­·;ÑÚÙˆ½C’'ig€—MaÚ‹®žÿ½s÷ìÄ}¯‚,8u÷ƒþ³Å+bá\Ù–¹&˜í#»Báí¹°QgÍöÑ£~¯ O”¤ƒUcÇ<ÍÞCVs§HDpáeeNxSõL²çžÈÒù­Î—Y|·™¯SbAY°uò «7rû93ýü>g% ¸ÍœµsûÄ}³ß «´pËÙr× &…Ùrî3[îül9¿ÓÙº;G¼ÿd• Ü~®ªÜð>W9ÑÂÝðèš²±ñ|ãÕÖK ©ÌÀL¼{_OåA4—hÆêå“á,$˜EeêÆâÃŒTRÒÝ1yNÒžˆ*˜ jì& K¥½XnÍ1.­“ú&ÖÙ¥hD¤[!¢[!‚ ,ôãNL•™eC:}³¿µMw8xͦ ‡y*:Oⱦù4×’$3ŽÍšÖ½{J£¶mòÏÎqûãË—Ï^57[íÆNãEãUcs£±¹ÝØÜil>“ÎHGš/7Üýxâ^ì‰'ÙCø­UÇND½Z+ÓElôðéþ©(Ì‚ Î3ŒMhfA×Ù3ùÈxk© ³õ2y›Í¯9È’Æz¦’¬ÇZ´V1’ÿÙ}û¾}Ðv>´ÝÍÍç;Û4ŠÍ—Û¥bò}L÷ÆhÕY9q¿þ>â|•3éÅæ éTÜ®¿ï¤Ÿy'­ÜG²6‘L²ØRN}K¹÷ÛR3I=ÆFZ¾…Üßçº2É<!¶µõÂ{9ã÷ºÀ$¸øìV•‹ Žl<,¯§Œ£–™ ÊÁÅçZÚÓ?»ÏÈ”H8 fÄúTÆQS5EІ“iÄ^KdqÃ8è&«Îû7:£oœ#(Q×UXæ{’1g„k&âæ«Ws€îmÁ{¾i⊛–¤TK×+ŽË¬ùyª³îSx™ÈàÀ¤éé _]ÀÉXôµîæ™IŒbPÛÀVÍTÇs÷R“E@Þd‚•ŒÕŒõr “9DU—vŸcˆ)ŸÕ}c]$žë¼QãÙxp+ñg!ƒ@#n*™Xî‘Å×ÈÑ[:±è´IGHÄgbÞ¦æM,"gEÌ•Éi •ºÍ7e›‘/Z Sû*(â8´S²ÅØ1|T¡ç„ºLв«"F \cQ¶›¨Iè®e‰J’ÀD%[ÖðºÛ±ÙXè,H»9«ÈØ}“ænö…é&˜<@s肳\2( ÉØ•{SgH(~)Ï#,\.Å8K¦ë&¿„ !Õ†= é ‰èÜ5!eêisC¨Zq“LÙŸ—= ø2ûS„‡.b¥bÉT.c*,qÌOeÁ¬Š+ωë¾QIȹ>ûòáá{3²nÃã”Å/7·ÝÍ—Þ‹Ð!áß3‡»Ù™‹[>XÑöm@ÒÿBŒëý4wÏ ¨ß i½ [Ðx{épÈ9S†ÉýÇ'-U=ì8³ðæ+üaE§6«¤¯£Ã†–äAn{c\Ùí¶@#",z‘˜ØzÀR"Ù«Í/'|ºž“„#:eoÕ:ÁÙƒB$®¾ÉDcX‡ß£’ÀZ¡Â2V›Ä”žÙkEX6Iæ6ô³ÄÒ4¾ÒÇA!&³¡Ù÷ ƒÛ ¥Çè®…-…±Í†8xÛ>”ÄîQAé@{qÔe”G_¨8ˆá·KÅæê°¡‰VÆB(¹PN™@JÞÓ@rr„+&&ܼÔÒ£(ªÙŒ6Ä”äDÎy¢Ü~û¶'ôrc±a4æ…A¯è£F°/®ÉNï#t™²MŒ™š‡é|Œ–qŒL€kÝTaóhå©qê­A!r œE’BÞ•q¿œjgפXtiQ`Qä¡{Êä hJlÊ&|•w^x3;jÏäj\.§I·ÚC“oà5Ƕ­ŠZî™xŠš­U"Ùkø ˜vnÛ±¹ Ê𑊄ɗxێàó48ÁRùGSùG¢ƒŒ~—p$ÏýOÿ p'$Ç8+@¸2=0Ì"-Iw·K£ŽÌ£¯²nÍÛjŸÍè?>iH¢®E#.ˆàÒƒµwÚ,Nµ«¡šV U‘1]ƒÏ‘Þ©d5æU÷éÃñ \ ’ä©êÂ(KT*b&<÷‹ ×:ºIpdÄ£+0NÉ¢Ë8—Ð “ÚIR q‚bìcÆŒuò¨L؆Í&±6« Ð2=ÁVØC8 ùk+ÂÝ-z·ñd{ÔÔ˜„`Òml¼ÜØddºW3Ëý‹”_ Õ,¢J®ÂŠÚIEÒÍ›é{H T3‹çËù0‡¾í»„¦qvl¢,‚^Ö~Xçú&:?sŠÄ¦´†=;ôj‡ØB;ÖÚŸVO!~?—ek)Õ«# ¨¾ñûòåK%7]íâ‚9{Àn{|ñ±`‘ʶƒ5S?Òqš4yˆ¦3ÎUÉÚŸÞÿm³¶aîn†üÁTµ"5R_s6¼6dY ò¨IãÜ7/>r în?ÎâA‹Žò)€!‘ÕÍ” cî^¨¡ê¨©â–S~ÖÌZAê© Íš‘J”É'µÞ«›æÃÀm¿=>ß;æ7PÕD­‘V´ã¦•î¼×´Ãi·|@öo_qááu´½ÑS_&IÎq­Röoyο }7ÊÀrZýx@7ÑJËDzziLí UiY%Ô‡NÏKǸ³˜Œw¦#Šh6 Ü¿Á⡟ÊçÖåØDWâ©Æòjbµ…Y°­iyîÏ«4Øm^s£?ÓNýáá[Õî¶ï»õûný#ïVÝ™Áɧ«'Àng6¨î¼*¾6BNã(¶›O~æõFI"dÈúÀ;Ð ãfT9ïáˆ$¿ïÚæÑáQÃ1®=~%†“Ä(òÌ×V=zf7¢]Þ#åks5úÂ~¡@]LUcWf” ¿x¡Ã¦Ùt6åd‰×Cƒ­ߌYPü%¦~Ùž9âk–»*Ê‘TwùÃc„^‰ ÁDîSØÜ­g[sÒé…üÌu'W[ ñ§µœ"¶˜cµ"q$þBKðÏ©e¤ø³³4ÉØd$­®@ªRI?@ýiuE¯ïE÷÷šÄ°cpÖb¤ÙTŒ0K /ÕR¼˜ÿú±í®ý5/üÔÚ’pÝ\tìásŠ«u=8©¸Èí¶OÌY_Sƒ.™.5 zS‰Q¥=҂чÚÉÇð·cE"âÕ'‘ùʺ²i6Ì—oö•-Êè~Ooq*•Ü>”áÔ¸V‡ñ¥S¥+s’H›6¡½¾W®ö’ÉТRÕZƒª1rg®5£Ý~+™ä;já2ÔíèUù"4]ÞæüÙUƒ¼å§¯”…˜óÄOÝçîóWs½hòRªL]¼z7¨å­l ѵNE’ÖwÕxªFð5Uâωçl1~‡QZWõOU¼ ÎZÇõMÑ:$^„!}“Ì ‰828üÃY–vª¯ð t‡ðÅùá 6^câpfG³ÉÖ±Kê6»¦ñUjSFåßËHNRÙîßU«=ðüJýpç÷qp¾Mo{{îô²;7…¶CÐé©'ØìB6O¹BóÓöÖ“‡©wÇm÷wcksûÏhÎL罫/å#ÿ៶6^>õ—ÿðOÛôýÝz¾¹õü/î.."¾jḙֳÈß—D~¿ ¤3c•q·Ÿ{;ËPÛp¿Œ¬^íõÓ*A+j¼´ÂaÊWT€>Ëì×u1›Ã˜9ëm¡cÅ û6Kxa8°q ìfT½¥4̪n±‹N—v™þ§Às´}¹¥‹´P†a\à+ŒŠîýÙýg~œøln$Vd}àŠÌØoÀ*I±N¦¬ .)a³R ‡ ’êÞŽ‘QP8í«h˜»9Oo~!+6SN¥lpÃï­DGùú_Àw0Z–*š-FáNØCî]\û¸Û–«Í:å„!6Ù5$Ô åOgúl Kì=ƶÃ&‘ ÓÜ«ïÏä’YHAœ~gë…»¹ñÂ{6ÃÍEãžYÏ~ãy9“ñ‰ÄÎ@¬)¸ÇŽK ‹™¬èb8‹í Ñ£Á x>N@ü*´é)Ç„”%m <­¹ÀDm+³³Bx9äÝ!!¼Ð½‹,ìcòn‰`·O=ü‚Ãi¢tëùóçe$™9ímFN¬`+zß#ÍSÌÕ“uŒlî).v‹çoq臅åõjÍС›¨Ú´:vZ÷¤VªMs$â*îJ꟪^Ol²"÷h§òŒv—–±×ÙÊ‹÷oxÊ%ò§£{A—Òç[‹$+ÆðVK ]K¬.k‚íåpû÷îÜâ–UbF0éZì=XšƒŒ ä°†ñ‘ãŒpH«¼+µÑ:{c ‚›Öxj Âf«Ar‘‰BBÃ`ÓÉÓ¬æ¤ugŽDgí‡Çë"ßG77º™:Š4HÒ.GŸ#¿Ž7oE3LHšׄ¤¤$ߢVéÔg;øbvd[ö=†|«$fê9´©ŽÁfûרgG0æ9KÖz˜S:Õ.!”Mÿnˆ$¿L‚™ŽU"¹óv} ·§‚jç8æ%[Æi¦?ªÊÒÁªLräÚ±N-Elý%•Š’!¶x“MÅ$j4%HÄxçéjµG&§“sJ›;tOpغÛîAŒÃñÄÆ$¶•ÉȳgÒ`Ú€W÷ñq¿r«ÿ¿:6Ía¢zN[œî¶6–çö¥Îq½“2¶‡ny€T6Õ˜¦`ÅÞç|›iÞ±ŽDT“¼–;Wž¸ì ÜÍ °šÉïYös"?X¬pjªh]R¸ðþ)5ÞYÜDFáÔÁWm2p\iÛ´°xÐÖ°~Ǧ3° á´iãO yQzDrŸž‘Ï‹–N¢ôª*“ÐpÛ{òøÝÞg¥8²³ JUÇ_.±í»áLLò‰FœÊ´¸Ó#“bÎî¾eì<2´Ê=$™¡‚qÌ f¾Aî·à‚DÄQöáE1K@tŠQ6êyP¤yceZ YŽVꀧ˜;A+┫`N=]Ëü¼zÉ<ÒºMt‡Pï­X»ç¶Ì}Öï}ðEá]øûX¿«f1¹‘x÷ŸÉ^WïTSá²UÖÙõ(’Ý‘œª˜Éâ ¸RÏþâî¾CGÕûÆRy "~ú?bû‰vBM€&©¬GWó­51޽^bRú)'™üB×BêÁêçOÿE¹»Zž·0ªi¯{QvÉ!h[¯6vÜgÏ_y/6–h@^s¼ÒÕœO¿º÷xUt>›â¢!Φ×\MÏ(Ôyã÷at¹¹Ñp‡DŸ‘ñmDZ¦€®3$nnU¿q™†û^ÇjKj^Û[Vã˜ä£ø2·7L!_µ•xY3ç,úÐ!~‰Ç* ºROšòÀÊ€©c´‰6=v9ÔX‚D/Ù‹óÈâú:…ë ü)—{: Òn‰,2§¢D~µ*0ËB·ë ßÒ¸)¦[¢µï™]ã"Åq6’(çÇHõ=`NF;ÖVg·à³™`†½ò¢\±ÀqÕâjm”2jaQ>Q|ÎJ·tw~ éNLœçuœ'>€ß{òá¶ØPO;4<¿iòymzÛîö–·=g ¤ÍôÞ”-£Õªhé ~vaÈŠ2~6€º&K D=â¢YÜC§‚fMd³]Y ƒ.~¨ÕyÝP+(W°Òô5lÊß°G©IÃS\µ Ó DN'þ˜}Ú›ô «ìRÇÈ,ŠvÃ8Ń;Oø¸ÏÉ“øâ0˜¦ü%EFd³œ²óÇY-Ç Ä›2K@Ñ“¿±’!ÄzÓÚ"©tFR¿Û‘u ¥_Ë‹Žä®‚ä¦\CÇWRȇ€4ÈøË9Ò¼,ͽ$·IÑ’>Ñä³ç~ò‰¡¥Èš^åœÃ÷š–þ¥r7¼îööKïù2Þn”‚^ðãY%ö’RK ñCù‚š}Ü=³>Á×—ñ…-? ½~ò mõ(DlnQŒÚÞØôžÏ¦* å Hére,ßZË ýXàª|dóUÅDTÉ“AÜæø +(‘íZ$w+’¶ö¢H_»‡XŒÿËqû£ûòå‹WÞ|õòùÿzþY‘‰x[6AY -j´•¿_Ÿþ¨×§‡/9¹¹/_wß/îßWÞoäâ^Y´Å­’ƒg·çVí÷+ûoôÊ^™C¹©,ç<òûwÖóõÜžõܰf²nE¿¯ xüÏ Ý5w“¾0q•µm´·ØS:Ô äÏ5š„'HtŸM›&7ù“õ·±Ìž+Ra€°‰ìÙEY¶ ƒ¤ÍÍî'‚¡å`D›$p]4Ž˜©6¶vžß”EÉÄ=O‹Ñ@îz’´ÉŒ§è]¢è#c¨ª~M¥j“+·ª¤fJD1Â/¡‰R€Š\ãŒÄ©äH‘¹þÉ’¡M„;%IìzUj˜3•‡îa¾Í]ÖèËRÙr‡A¦;ðQøO~L_â¦|M«²y½¹i0^x¼(fÖ„÷1éׂ™/\iÂFïjR9Æc‹?Â-ÝñÖúÚd%ÂÂÃ&UÑò[Wö[îO¬ùûwúOÝno¿Ó¢ªyÊ&fN§Í³Èñ¢ïõ¨”Ó {Scêl2±‰±J 3 §&žH¥öý÷ž×©J³­¦òý&'ƒsåüêü›j_lÑ9¹GÅ>F.gï¶.5Âdj™­W4qCýU §‚$pÛ œ¢v/Sü-Ñ’ÙÉ?->vƒp¨\ DãÕ«´i²Ckœ°ƒwШéZÇJÌž8êb‘ȸÇìÎPlb0_¡©e¤ÌíLH“wE‚:òñ±?«dd‡½±_Ê® ÀÿÆÖ³7ïq­³$fPŒSÖW8ÀßкÈJ6É“uʰª¢QQ¢ÄŽo)ZêI‰§ÔümØŠC‡Q´›WÀ15õ¾ÁCŒóÿyïÓÅÇ×íÆÿÝÛßk=?vhuå86Ÿ{ϰ 6O‚}Úçâ«ß,£0r³Fk†ëÓò‰ú8¼Ù¹­RT]¨Ü|&ñ‰ò[¾ê¯jH¬0å¿·ì$Š#Ûš$ÚF a8ä†͸@Nl;(Yð:2j?òê°íVMwësW5+̦8_,žãƒ½´á@nï!$Ð\ÎÎÛ…#}ŽÕñÆÔ_]Qö¯`¾°ò¹¯¦\¹þ ;nÁ£àá;[‹‡vøöàÌ 85”£EQi¡àâ’L­É«ë^v¿ÑƒÞÒ¥^,H¡PPêCû E™ÿ.è”t|Ph^;‰[$ Fçû‡ ©Sì¤üöì–ÖØrK÷©ÿC\)$Zé ÝËđ۰P¸p3Ö™ia~¥©”ä6L„*Aö«±b_ƒ¥"©ì×Þî­»Ý0O $ä²™èÒVïWÂoFÛÝÚ&¸/\hÉ|m ."ðž)6*d‚"`(.×ë \ûÆC<Æ}Ë໣`¨KðYmþ$è» À%4ŒøÃl™¥+ò:ÕÒ¬Çæ½µ„nÇ0۫Оԋ7¯lS·lVqœÜ™¸v/cOåú"W3v¬õ=×=ÎÖ­¥%x”ÉÍ0,µ 'Óc ÷Äá}<=Z¥Á,Ç´¾+tiHn‹™z€ö«$½iúïL`‰Ý ¾At:Iºh“:0ÀhðˆÍ⤷ÔË%ÍK0¢Õàø´Kã©D»H^åJÆñ›KVId\…¥' gO4ë¼á‹NR_fÃÙ`ŒnL¢ "CmÎŽ„ý"ƒ=Æcs¬€É¾IÊ0[_«ÝY†)øK§ƒ ·ñŸÇZ˜Ùüá;ëãXì苳:û¿×Y2׊t$ÀÚ0Èl»¾Ò#F hº*ô½JñqÕÙÕ=÷Ó TŒy™›t¾ÐÏ|¡×&ƒú-¦×±Q»j/Ï’©Ê%þïÄð¯å£!ÎC¸â)üÓ#÷sàG\àŠ?ÔÏé3é×OT‡¸âx ŸêeL;'ê«B3!þþr§}Ïɤl.?–Ž«¥-lõ¯mËf”>œ)Úd˜#­þÎz¢Õ¸`=:öß’ÌTyê¾§É÷ÜÝá?Ô‹ì%ˆ$ow§éQøZ/ñk [ H•ƒÜ–ö‹„ÓŠJ r?©ñsA¢ªñ 535¦KP°À–âHVr)ÀØ ø¡ØG$ˆ7¬ç–èÚÄ­îÛ âY¸å~xÝ.Ó½µ\©´ÚÇî~øejNnÂÒÅ+éÏïÓ2´Ùùl‰ª`¶/2Ö ÈÂvû­.óÀ¾Fkuõæ,hÂÒNrÄmVâ¯roú 8¦Ë´îÚ]_49…M²:9ÕÖ1A³Í;sÍ·?´-À6>—Í&º/i=.½” Ù€­#"kT{ù3܇_nFKHÝ‚ù]6} IñûH! K‡}ƒÚ²u”''-2ÈÔAjA5<Üe»1#¸‰v9uÀÒ,¨{ñ>SžÅVÆ/Ú”¤~ C!Ú)f´}ºFÀ†œÎ$S³öhØ^aÊ\¤xaÁ©v溵‚IœÇ ¡óedz •ÿ°Õ8Ô 5§5¾°¹ÄBëò½)¿Š5|)è^½ð6jŠöÌûÓØ,§øÅlk«³.nÌ|åP9âé³àÆ$ ?/o }5®‘ð%»À/$!´ßw'ß"ꉢŽt‘óq¬#þéqhwgÈÓø>ætšñg‘4ö³‘7¸ÒVæ­ÞÚ–Ÿì©ˆáXNà¬| ÑõVçWåø¢ý*÷i ^¡1”šd¹Ø IØZe*Nëžj‘‰¡ïØòrù>E¡»ˆ8Üêüíu@<–³8ÍzÁuÃ=˜&yÚpöFê*ŽüZgÝc´¬pMÚ»ûY%ØDÏÝ+ùðÈy%Mšcc]I›æ'D%<}^^3œŠŽ‡ˆ¿,æÒ‹4³5„”³Æ[XôH8g,oš¼£&þg§–ΔÙM™àÄÝð^²Ö} ;;Bô}mÃÑNØ×…ó³S›ç´l9ctY™e&/ÂèÍ~/Á&ˆÜ÷§€„G\ƒA­3ð1Ä »CqÔb5€¤â«<öut y!4#afÁXQ¯ 6µÄ8Z”\´Ë_Ÿ~4ý¬=Ìâ0¥O@¶€d%Ñò‰Ú0a­ûÐq9HƒQÄöp{º¹«ôàì“Éò­BÓˆ >vÃJÓB\óEÛ_èMÑB'çÔÍÆñ.dÔÍ”f†S«—>k%¥2•Œ€#7&hÿ6w´±ÃEAI¸Ñ™Ê¥L'Çâ*pl‘“àa³õê¢Ñöò{.Ê÷¹:›†ð¸¶4 '12§©.¦†/•&4Œ5òg’X§ãˆ³`d…nz•@yH”ÿ¬9DmÑ€‹Ô\KÕe'®¸È{åÙ#þu¥wmRƒÛª>.¬×[Ü@·Þ§#3"û»˜»èâ9pï:Îïef•á«æ`¥}õö—&±qP©“Û¹/¹Í’w~Ûäêä† f‰ ÀªÒ+nÃ…Z}íÃq{ý>“Aõ›µùLÇ/)’Ô§š/òH¹®‰ÿBÚ_€˜ÙxîÞºµD¡õábå¥ënê,4f^ü{ð Ö¦d]R=_~Ž}”X“õÙž(‡\ÍÜCâšÎL׿)Ú¦!5–ìç â«t4|TJÎÞŽ—H BÉGóö–æî¨¿I~+ÔÞµ š.[¶à] Eë&Qvzë+1ûêÑx¥»D””þÔiòói8ïúl¡XÑ>9£Ãž‡·ÞÄT8·{¼K¼o&Üßó¾î>¹˹É"ú’C‚‹-vƒ]²(æ*ÈíÖ èi™äF»Ø}Lô"<í ö5.ðòÕÙëÞ+º8‘BºT"Ñ0¾¢Ý4_kíØLâ•Ìå2—)Z;`÷*J„™ääÿl³Î (÷%ÍDfF/¨B6?(Tàç•F²ºÇµ¹.“Î.à-ý5³ˆªÜJÉ_Jó…Ɉ|“÷Es\, ÖÒ3X9-AÎÜeœ&­ŠzÉN½'Ã@ÎÄò­û/ÔuÍ–_è$VcXEË%,·µ2óðõÙÛw‚?t±©´yLq¿üøãõ´¯£ozÀØ~MÕ«¨ð—˜ŸözI0TTºÈÑvQÉS>ÆVýIÂßmíê#L“[ô7¡®{·Nr•Géa§s÷S” aÜŠN.)ô]ŒnÑEõU܉ЦÎã1-õ»;KN¬ý8n"â¢"н®º™„$…«»g‹d•"B¾nZ¹u,ñH;øª»+÷²xü¾MožÚ/:\Íg¤À£÷ÍÆ/¬¢Û!ç-^Õ¹E%£sºTt,9Þh$¡YÕ7SâÑ)WUz-Ûo­‡+;7_à1ºýøf¿œ×%¤3ù<ïuÈÍÔ}‚F?~jßâ´³)Oïu8ÏT~œŽ§7÷º=¾q-*ò8ýËnîßQšÅ7-sÔ´•¥—=u3—<ÿêN.*ò8ý „ŠÏ–ï¨×AtÓ$Û"ÎŽzÉÍÝC&ªÕ½[PâúÖ¿ «DŠ…æ¶(óèÔëç·èa~©  ¸Ó±•¥—ƒàæ^¾Enù;u‘kNôj.*ñ} ã›gøDÅw¢•º…·\O‚l«›d×e¥¡“£áÍ<@áÝì²Ú£st eâ)Ä•ÁÝ$SçQúun€‰“‰žc8îZù|?Ž” ×g:~‡Š1’[H½‡y¶Z"_Pàº6¾…6ï,.UgáB˜[¦ì£,€qx£dqßùâ/U§ƒ·`Jgq’åýü®GwYí‘zúãþù×ÂýD} X»g¯5ð(ýOâ›)}ndþs=¶•§—ù>èçyz“°¾°È#ô.½Å±Dª;‘ÐÔy ¦Ã[ô1Œ¯ÔJ]ê¢ѹ ŸÅ½¯¾ZG+wÍÂ"ѽäf飭“Î Ëoa‘Çè^¦2` àeøá•×ÂÛ-ƒ›w·z[œ3.§¶”*4\8÷s(ß*êçȲíº&ú[;œ4EÐR]ÖO݉¸àNT±óiÐã?©‘ÉD±KGÍó\|SáÂ¥9Ç ²•½,¼ê1ˆxu‹ý1ÑþM æEE¡{Ù-¤‰ 5 • † <ú-ۆǯôiP«Å]üþø»…,~‘'ÛEE¡{ùðÆë§!¢ ïzôµ…ŠW·8Ý>:Øÿ¥š²Ú£ôtr‹MòðñÝèiêÜFœàhß=à «Õó|éGßìÔñ‹/·Øï‰*ÂÉnÑó‹?FÏoaù{æwZ¨ðPº^Ýì{ñù¨©‘®É||»øk`’Æ$‘7ý¡Žüé#ùc^on–W%’ÔL°ïr ˜à£ªÿé,Èäl[“oaÆÖ³é‰Lgå(­$€¶ÁÅ%(àí¢‹OixyŠ@6¥{÷‡Ëùêon! WŒ&@áÛ”CmÆÿµý™è!ª¸ŸÚûî—“½.äÄ¡]Öµ’3EÊPEŒ÷ïÓý¶m¬;Æ÷¶ônÈ<½³…|ç$F_¿|þãó›,–ƒìàÕþY'6¤w{1þ>ËÃۇܠÅz»ªÕº}X #ðIJRðnùüéÁþš¯6Ÿq*LNîAƒ~FÒÛËmïU}̼ˆÓ¸—ñ\HÖ”JM©,¡JÚŸ–âU'ˆ%ñ˜WÝ iÆAZ@Å0D.gçBÝó½S5 Jôv„õÇ.Wd=€RN*/q¨!RÀk'´`$P|‰æØ6÷X.%%Pq©Îf;‰zÎL=ÁEBîsŽ· Uûþ (àÈܤë1PACð dH£•¤fOLn@÷yŸTè¤LQ“&&ø›˜8fµ|Ñ z} mÏœ¡»;á/õ¨•óŸþ» ¢å#M0"Ä’¸^`?Oº ÐHk3ˆ: C~Æì"p¢Üó˜øC5`ƒ5tT~ïŒ!J…Ag‰@;[/½gÛ3GBdVË^’Ñ\t•LmLÐ^uƒh;—Ûï]5¹œçš"eb I)IL8Qj`Öˆ1ÑܨnÖ(1ᢸtçÙ8ÏŠäbEÓ‰fÄÛÔ‰C¿Ù(w̹O¥øHÓLù†MQmšäž!!Å[¢‘+i5þ%ÃÃwè\¦]0­0©ko¬’Ü몴ˆ|/ú è…Ý]„ÚG-jQu½Ly—Ýü!²ÏTs{«dßçëw3_>yù|Usœþ&¦{T»iíÛ—J,5[‘Ãæ%L¥êïŠ>7®ê?0•:]v_'¹õß×vžÏÊìûšóOºG²a”1› nÔºÑ8‰ioŽuƧþ«(TÃô5íà®ßôƒ´ø 7ð·ÒšÓSWtôdÚýØï#¦õôlÛÕòwÍ€]qlÜïÓóuYu;À#aüt¢÷Á¡câ?Eª¡4á,ÐqµYÄús-gÂû!=T}©"x’Jio{ Ôñ8ö»Èûµ›t'-_Ã6„ä&`[Óñ t^W»—øêuåk‹ý1­P><>`úÎ9´å='éf‡æqvö75T"c©ÃTø,‰qé-ƒo;?gÎ=ª•çÆÇ¶¼å›o.ÞÿKæK®‘ΧÇ?¸¶¦ç¾f ØWØ/_…äÌò@ždÈHíŽIÂD3bpÂÞ|øxzd…wâôfÌûT›ßËŤŽM¯ZþüvÈ`«¡o/´½R’‰tƒØ¾ŒôZÿˆ®PXf¶×ãìÊ:$0Mm¯×¢¹8œ²'?‰¤_Td?î¸íReêîvâ΢2GIÐ…%“ÖâiÔ„„ÿ¸#,îÂßfKßw¥ua`Ü‚ষùböbÔÅÍ& Æ9iÄÏ>¶iU”™DX¥r¤qˆÚæ¤ææs·Ú],¢‡1K™Jâ¾q¬®&DÃ+shù‰¦é}“ä:ê(™aåõ˯­°¼ØÆí7Ç÷'Ú8ð9»Ås÷%p«jT;ºÖÝ)6÷LŽ:;öÎŽÝ£+]&…Ç“CÙ›•Üd½P_CðÁå 7“©ì5Ñd bÛ F7'xFÓš›ænKGÌ_•ܢמb«?E¯ŸrÁu¼áLÀ<Át¯8RiÜôBÓ}Ãü¹%AÉæ}Ç¥Eß&·u¹ ¹?L9 †9L dÍÛAXàZ: ÀòZ™õ¦‰žÐ˜6%M}mŸEÉߎs°XÅ™îbvJOÚ{Õ 7Ö“T#svpÜp©¡³èÌåñÂèšr]˜æç0´kç!wÜ\k2€õ b³dæf ŠdU]øšºs!¶6 ƒ ƶxh:@"LÆJeT3àÕûiªC$y¥é¹nñ¿…êB ¡Ou'* I9 ?¶¡¢o…sñ$GÝ0÷µ+ú7ÐUÔ΀(Ç-ÐÀSIQ_Ê=«e5¾zà⨨f`Úïí‡EûrAq8ç·íÒî d¤ÉéguØì¯ù›¥qœJ–ÅÍâ\ß'´øš ¿$4>½õ´¶Z'RÎ*öåb.·;YG­95ZIÚ#^æ{gÇ¿e:ÚbK­ÙÓá;µ,µl"±bï>›Õp(ÆÉÚǕ\`<®ºñh9õ4·75ƒÙ6¬ai…èú3½ºXþ˜çaª—à ¿ªÜbK…UD—¥Y6À‚{”P`9v“¿2] O×lfwbZü¢|”óR˜úiÐ¥÷2# §Ö0ˆŒŽZ€¾UäX®ôñB®1*Žªh¥GQôT•ʉ€`0Q׎Ú?}8\_yÜãp:–"™™Ü»ÎíY :y>¦)[†bþÛ" ÚõÒÎoÇaåÌØžá‚Ÿé„ŒóTº ·.«±?H}§D¶Á1‹Y9lŸ±¤ÁŸ•±¡À'dLݾ^Å3§/­aŠXâ¡òÒàaôɳ ¬p¾YW·›DH÷Sfá^W1€<“4¹…ŽÕöxh̼ÉY ¬þO½yÈÙMN ølV»‚¤¢g¡ššíþþ°P®HU1Vq±qY ¢Ý0€O—1þÕx3)/…1°àó9N:n1¼ éã8ö»$5 ÃH³DÁ=î…XÊt4qÂ)’o´CÆöÆXëA¸2SÆÁ A(µqšëA8Pš/—»]+ãŸ?ЇŒ™›¹9‘/õ Òã£{EÏ`~Jàâ/oëŽ|ÎNdŠòl82ü†?ädÐÒõ›p§…=bÓÝF®»ÚT¼%‘¢y¦F±†zä¨Éù‰? {˜#‰HRòÁ¢=f†TW*—z›âZ¨O/öXËĆSNÛ6ÐÝ!Ȧ¹Ä«Ry{J´Çj´Gw唿…¦L…ÃB¯JM9˜ÿµ£õöéÅYÃ=á=5×D4J:>¸ ˆuEúRíôb$Õàĸ{48§ ×.$RÆÇ”$VP­ÙOÍû¡®ãW}ŒVzç7#ãêÓWod¾¶‚ËôAr@t™sTáÖ¶÷j“sצS<Ž$'+ÿò/v¥6ÏÌÿÄîB]8÷+vÑÄÄ^£×¥IÇ4iRP§4Ó4Í“$È’‰ ïù½Ò|*¿ª¢­+Ô{f–F˜ Z;FF±ÂrG¥’Û^ ŸŽë¹ÞAñj<Ê%ß^Pi:·Ò(©Y~,×­üæÃ§jÜÝ3àd•ã .àæŒ¥§Ä™Ör‡Z‚Ì©õ áôCμ—¯ÔÏ|PåóRRDô¹Õâ‘®¸d?ýÛx h‡?ýÛ(O ÌÞõµ|J[0ï°¿²1?OI:ÛóÔã3—ɇ%·yK„B˜?ôöÊ}­Âhôé@µÆ>hCzt²1ºÊÝGÞÉÈGJŒX±½Š+INÔX§b¡*Ëâ±òSfø±‹tr©u+ë¦p¤ïÆ^=pˆñfé6Xb¼áªw2ÝH{w•ؽû vÖç›Þ«-ã{©&ýszމ8ŠúЄÛýŠÖƉ¾Â‡Övm™?íEÝéŸÖ‰k×T àê/QÔ(¯§)/ÜžáfTyW·|—æw¥$¸[€ï´ôÓÙAÊëêN`[©©ô™E¾Es¸"³ØÌ’NoÜ 6_½Ú0&À’·€oŒÕ5i» ގLj gS‚2Ä0ûV5œÇXî"f6#Ù°°çÇÂ"¼>8‹äšb§¬"ÊÊÄ#,™6Êõrmâ\·Sðz’éì+ÿì6ÝÁYÈéOÜûò-çÒ›ˆ‰È!1YX†ä)™âèµõ9O„½šò‰Í—'W¢E úѳ㳫çÕ2èŸ ÄÛ;;vœÅ÷⺆®Ò£‘«éG¿Ã¯,¾ÄQ2û ©Î~¤žiûÌWWö#®f?²=ÓqNé{š†Æ¥œø)Üåì~«YÁnL¶TšØþø¯¡íÄøÈŸtrÖ¦]ð4O“§ÄÂýÔ»OMcéS³nž6ÜA–ÿüô)þøž<Æ)ó”Ù…³ìWj,mÒúyšû¨úÞ …«¶B‹éUÔQ— ³MˆS7wsoÿã§‹÷ÎöÞ=p«41£8JÎÃÖvÌyŽ‚3ïÃÑ…{Ƨma` ¥Y…Gm˜íS4)j“©æ˜B"ImUnuÅ`ÉÙÛŠ¨PûæqíÍl½£MŽÛ1jDF6ÎÜ›!¤ÇNÉ‹Äì– ÿa÷‰ÚÒtÑÕ'6{Ïýmz’8Ì Ýš¹F‘Tçcµž¡«à¸j¨D<åWÜâZÝI8wU“p34/n/§ûàAbät¬¨^ë ëz`æàíE™~Æ‘ØN;Šûú¥E(–넽ÂM]ËÄå;„ÅŽ_ì â XkÊ—žz¢Qµ%lØ"­ýUø&å}«C¶%6´Š‡iy‘­6g‡3ÖôK6eS?ÆÎ›ù˜idàž×!œvü˜£\`E,†kM>üÙÚz!ÅÚ…GNŸØ²E—ÒõÚÁ›ãu¯l„ºÑMLB4xVmsÜ9"”C Ä+ºš¶zg´FOa#5u¬“Óð–¶O‘ÍÌ ièŸRšw’æ7‰{»M‚U6 7¤v£:6Etͧ@ŽÎnéOGèíU,’LZ~ŠÆgÙéSÇ“ºU§nwª›w™c5Œ Ú×+ÛbÖL«ì©iî)ü»TÆLÚMqúnŸ}GÂa™¤˜˜jªSðÅ‹+mÂá—fñ%aÓÍžÛ63ÎÙ9‰´Aä<)šÀþ„EÖ"Õ˜HŠŸÎOÒrÕ3‡äa=]ÇÍý >:Ý~pÛžRY¨ÂuV—Òê£õZ?šË˜½®qáN=å /hlꨫRx•”«ŠD¢šÓa-R—©Å"!J„·…ˆ¼mi±& LíÒÎ|/2ª3·½k+E1£º‚IŒ´3R×Á(a¢Eè£yì*¬G´1L•&–9N€ÈÉ Œþp0¸rÌ7šÈu™dF[T½N“íž›Z¥=ÿ͈3bø¹i^óóNaîyp×µ9rË*• ƒ=†åb$JMç/\Q”OG­$nŽ6tLŠëÏC_GˆQþmÓ’„íQœ4ÇÛ@Û\`E÷PŒ=Ó$žÔT0v±šDcÊžI – +õ¬" ‰&¦=3g1Mû;ýO sÀÍÙ@‡â0^ä4®Šã£ÄÑ•ÁF|ƒe[¨ ´¦fÀ6ùN;ïÞ”löò ¤S]$Èæ§i‡nw´¤j³8š^Oî;= [g ãZlyŒ«³½åmΚ>’<ôæÄ}C@QªÄÒíuŽÜ‹¤Àó86î}*KB„›rW8€X XW8êh} JÝ(FðÃæöî´‹8•« É`ÑÍ3錾nu$1\±js‚ƒE±?-^Æú“Jr*‰÷¯6\Ÿä_ZùtUŽD!‰¸¢Póuƒ_Ø·6r»aœjìA´.:¦#M &ß ÈLL™!Ë"x™òh%Kxr/Ø£6î,õÙs¯á¡…—Áò+É•úÆI©1®*|O釠·‰¦³ëy.ÖzûÐë lLÝý×ÉxÂÊZŠÇæKïÅl¢-ò^ëq Wòî¤8¤GZ¼œÏÜ=ßOpLœIvõ"úÉVrõlYueª›äì&Â)¦v ×ºÂ¾…Cå4¥g\'Ñâ»ÙÕ ,í¤ Û²šì×¾ÂD•¨ ïžhhVv-ZZ{a'ôúñÕýµKèÒ¦÷ÌXê6f¬â`9´ÅÚVçÓžF‚¯• Ü‘)T(†Ò²° 9¹•hºÍÀ[ŒàÆäÝp kù(ð»JXåšd læ+@59äùàãùþŒ.Å`(`‹ºéÈ °)ëù¢¾ØÓ$4#‘µÒ1¶q6é>Èï€è[ø›.¡ò½N½G¥áY|z|x|{º»5ºóMã·Eû&ÄŠ1+OŠ¿¹3U5M™^ }À ƒØÁU>2Ë*ÝŸ­¥ŽðØtwv¼gs€N$Pö@‡¡é×í·ÿ”r͵½pD¬–¶t°^ñU“` Î¥µç[ï›Mêõeܱ@cëÎ>‘nÊÅ‘U!)ÞamotD)ñ–@gØ ä⬑&eÊwv§àøFдW,q$d‘Û5¨4t;ЙÑÅ¿X)_?Î7Q.U¨wªì¿u=·Tz°†ÚTpªVH¡.)TÓ¨×LǺ …¯Mu-'e›nzCÙ6:ËÇNõí £b㈾îê±èì…”7zré7 Z>G]ÔÐpW§t¥#eàÚ \ãîöäÉ ¸Ýš†1l]CÞ?în‡Ÿ´4 ,èzQhìˆyDdŽIžŒhé(mõèâK‹Àã¢iîi?7vÄä’ÞLSøYŒW:k)ÿÊ›´˜åšÛ¼÷ƒJÞs'omÏ#ÀŠÅ+R<ØÄÏs­q0«VÚ=iNÖ84.eÔ âÐlŒ·âSési¬q§êÊÃ’›u˜†3 ‡ÛÐ×cxkFYý-Œoö ß•¸J„ýL„ ` Ñ8 ì<1P³9zÌ Ú)”iÞ‡yÁºùGî%"ëD[€‹“¹µÖFZدÒITrÿYµh£â)ŸõM¹†#xÊanT¾-ÓÝAÄè7:@[gÀ, xJk X’ –x^ð-Îw„;h‰µºYÓ;C2€emV+¡¦ÕqjXÅt±*ÁL¼½åCÆr!ºÇQ÷þ˜´² Ít³C"ŒVùuá±)NçñN Sj0÷éT,žyæY b‡—G½<”Zƒœ¨õê•%È<½¢JòÖr¨´Î5n(¸‚J'?ýoÿã_Ó¯!ýù?Ýôï¿Á)ÞÝ4þ†Xý)Uƒ/¶¢EòÐ!s:Ö­éŒ|¶ñlkÑ2‰ŠT«+%¥²ØaéaýŒ:²bn%Ïåá»Aª›/ÿótšcè2Ÿ=“ ï‰‹ËÜzï=¬·ã°—žõekáabRè­¦¯)ô³UrÓÙž¾Üx±±¼û ô³3ÉéVS{a•‡3¾ê~ì¾Flh¿rŽñ Ú$†:¦†‹ïØßXQøŸ«`”³zŠŽÕºÕœšØMÌãމîO±@*>‚»(¨übãÙâwkÚ>*EßÅÔÌ»XÅÐ êÞ÷—— ¸9]̱;6Nú{!`AcØBc6 :éâ’ç9äƒ.“<¸’sEFÖÄœ0½‹E5›Ìoõö²¥~–ý•^Ónz çÛf»A”4¥>ÓFœ"~Ýùé?ÕÕõlÔ!!¬ågzHG¾¢¤ ­ÎÜmq_›ÏçGh™up3"¡¯+aŒ¹â¼Zõú»Œe…e:4XÁheªA8}kÆS ú[ÏZÉW5Í¡JÂ4É¥VûP]>{TàÒ´'ÝÏzwx$å鬮ÝäáWb3tÓœÎÁᶃ~Jlhcù˜î£i§5!¡W÷©ÔCî¢Ù‹ç?æi§†¢ˆ¨õ:ìßÌ¥löítŸm\»{±ïž€€ý)@ÿć9éÐ1íY>=WóEÝóï]áû†Í< ½“øV+hÕËÆ¸ÐÁZ¹½µ`êâõÅ™õÝâ¼0(UÒÈ"|© "K@ò $’ Ž‹g& Âþ$ÌÈybcôž@C+fC•2†Œ‰1â^G0IÑ‘Mb™±{=äJ³†,‚½€o÷´‚I(¡ÔÄ5i²8ñüµ!ié@Ï6·Ÿm4ðakã•ù°½óÂ~x)&EùòʃU„qª½ëuÂ0¿œ¦p U‚µæ°ªÙ@D§«Â/a¿ÂŠîÞ¬qI„õ7„}J`#søEq.6À‡5 Ö¶š¨IdŽõZµÎ´ŠšŠãD÷tçŠ>л×-zÓØÞÇ(#¾©Ìñ¯évZ-lþÛMè‡ç¼÷ºÂÖ6gTžÃ{Š "s`¼:ßñ>ȪÞtï ËÆØç)ƃk[­vrá¹ûS§‚P‘™–Ê ÎPTjâ\ŽyŠÃaP åwxý¥Ýá¬<ÉXÑ#ÕpÈ%|.dW}mF^—Ü«xÂ>-ï-M*¦tðm ßê¿ÈéåæaW ¦4ÜõFò­^îLùpò>vèþ°jEÄò ,}ÿy,üU–Ìæ·öûœ›¸»bŸ•16«ÄaÜeÌ_“-ˆÒáêÉ(ñç*Û vr#VÐïºÍtq_kuÖö›"î'@’-˜ã0&éÒÀ»&ž8¡Ía8O•Ɔ±5JHf¢aCìÂÆyºÙ>â°Ë&ÜNŒSg!†vÃl¸·œ w~6jf6Nd$MëaŠ rºì¨°uŒpT›º§Ý ƒ†AËh¥Ãi¤3/xˆ޹ª2ªE3ö Ǻߑ=HˆÁ1ñKi±$&ž«Þ)&^jÜ»«œßyÇÛ~4’÷ûåiŽlb½L`‹8‡=+#”ø_£jÍ"%ˆ*jº&oZoÚAìCÊR.œéƒ.;Tr¦ª´¶¹^f‹ïDû› ,s,±·¨„™³Liäݪ?(Û~sìŸÿÀ°n”ð³fýßRr‰ÜW]°Dðàø™õT{ÕòÌæt9 úAFn}NwÜNžm’Ya-d¢˜DPiA¼V'ꊙ$#»DŽ=¯XCAò~âK†¤ I‚´€ˆ\ÉÑÊëYÞ…`PG“W‰ÿñòP¹´êŸòeïsÃÝ;~ýšþýÔ y;Ø;m¸§g FAþùò\—ƒNíENQ@£Ë’žWF"ž#p°¦·ßÊÜZרûvžœÕ¹Ÿù綬r÷¹­¼îûÜ.[ =¿ðv`Ùè?!æ´8AÃeÉ“o”ç /àŠŽM\ˆ̈‡uSAJc) k&šS¡zV4'"WZaÆòsšwDʶH6™ŽJ\ë)­I¼ítÜÝ´¿­DÓÑ—=좎wÇÅÔ}Ë*ÀÊÅŽ­ºÅZ´A?hj–¦é…t®5c½•—9‹~ÎßäC@æ*äî‘L«Ä坸µLH—Ò÷pJ—›ÛÒ“[ZœÕ©ÖLyíæ ÀYl%”ú5éS ¹*ͦ‰ýcS©—ºÝ«”Ý`^nÏf•%Æu¼Ðh©z@—¥8ª$6,k(‘&V©ÑaÔ–ßòöi±cl[#º' “ã·W+yç*£M]’Ôï~ªK’ØB”šÝ¹B ªIužVï«(i‰ƒxp ©À3)!$öx€l†É°® ¶È£“§ªC±ºrçæÀë Ú«„šDö•׸kil1 ¼Ö¥ Z7Áç¿_$nq+¶ø±<Í„…°`ÀéÅ`Øc N3Ž$[™Ãßâɾ¦pFèU˜CšÁ"k'+3‚Ž-îÆ«ez« s<ǰ•Ÿßop~1Š-糧³ý šÐÙÀÉÐX‚¶‹Y¾ Xé]D@kìâÍaR jX¬š†c nÔZÈYç[a¹‚×ÂËYv¦xQMÝ+Éa1“ìÈUæü-Î-¦— -. k @p®-ÊÏ® ŒkÅÑ×H˜.£ªG[ãy‘ —•UºÙqÖçDJ0½¨Œ¯þáFC-à mÿ˜QÞ:zf–,¬(;‚DEËÍòb!}ýKeè©ÃL`îm¦NåºjÆ)wRa:«á™÷‰ù…+¢F̤[Ýi?BFu«‹gµw$ytßëèk ©œ9jûT$HFA¬p8Awc÷+Æ}¤mY¦ñ®¼Ì¸_)^–©œõòvÎñé;%ÁJêjfŸ|R\©0çe"h“‰ÈùV&é„qw(R "ÑŠ¤»!~¹idœ¢;Hâ(ø*0ž@Hv ]fþ+½|’œ†ô>NèÔÒŸ‡Ç½ñÜ%c(pA¼­9çÝ3;esç›r^é”l¶³)‘æÔ|Mâ•5Â犯¡ªÖbe¥<©4ôÄh-XáVþ FæZõ§"nji>žàÅOà—ÄÄdzÈHÉ7Ñ5^d ˲q·«RöHaHÁ˜A´.œ¤T<9 :¶E$3Hÿ¶¸¸Jš”™K kÌìOÌ V_c.häzJœ?ãs‡Ä^¨¯Ùæ~ ƒ+5óìXgÖ<ɳ¯î®òÃÇY7qw~øÞˈ‘µ±cÔå产ŠåR€§Í”K‚}3#3¼ã¯@b隥P_7Yl±K<:ÛÑN°˜d’.¬r•ϲA?r"Ø×{“çJ /I÷¨mâ«3‡ÍýOíÂ¥cü»NDÒ€µG—$Ù]ÃM­Ò~(; Ò. $ã©uuPÆâÒLí½lñE eF_’^Bu5FÙۚ͹" „«Zv]49×ç¬q~#Ÿ :a7fû9+Q*N“º×c 9Ü€Ù_µÏGi€kJá_ØšG0YƒtL"b‡3¿'“`OrÓjWˆ8H„ÇœwØ@ ³o0Ò†óž-³ÄfÙ$”ÓOí‹´@Læ É@&³­áíÇO'‡…éß…²ô·Ù>7cçjñÔeì"ÊX #q3÷,²ZèbÈÅšãK€Z,¡Ð^Z  €åðnœàžlÇÞ39L0B㫞ê>cY¬ ¾Š" ?žÅŒßyÙ}¥óêkÒÚÇìSVX˜/ ž¹'a<õqÙÃvÊZ3YⓈ&ù0 óŸH9È<ó´yöÙØ1ÿ€ª RœÛUP†ú/ܪµ²¼KÀàÅκ>²c×Ò-ýtf;ó4×›íÖš­$}C¯‘-¡ÂŽë,à–ûeœûî·¶ÿ{ïÿ :©óýÏ~Š·ÿ-bMÁªß-6¾s‡ÿ´ºéÝÚ¦wîµé gY¸-ßórò àôA$•¬I)þÑaªåĹD—°ø{þñø'\(8ÀŒà |ûU>®$xÞw:Ék7Ä"ö`äO¶½[Ùõνþ?ì¾wWl{gѶo,Ù÷Ë|ç6¾{ÓïÜaï/;ðÛøîìÀŸè´w\oS¹/½g3ê`Î&‹òŠmK¾½ïî}9ÚÞzú|‡'óh”on 7ÝCŽóK«D_ŽÚ¯(õ‘6vl.±­Ñ 3´ðÆðËUo/LR¹héËÅU´{ÃÅñçHgÛÙÙnö&ÝœAÛ66l=›/¹P©3 g—7O/HF¬dåëz¤‘Ye?‰•ß…W!– _£gí5U : ÖI³3mš\×õÆÐ‹â5îhgûúºˆb†P4Âé@J¾Â!Ç‚Þæ€Î¢,Ð=­rúÉ w¶CÝWÝ©yóÍ‘×ðŠgþÊ.ô:±XUšwÏ~®SêÇî¨Ãx!ŠÁn6ÜéÝ}:ÈûéW•~ Œûêε)~èÃyU¾¶Ò`œÆ¡Qš=DGØQQ:кÉYð8ÛÑ,¢=t\Ä‹vŽÈrkݦ½Á¹Ø*ÜÞ§|™˜ƒ‚.LLO¾9Ç$‹7É÷²}é«e ¾ ²Ôa¥ŸX8{O/¯†·Hì$Œ1I¢˜kQ_)Ö/Úkžçˆ•‚MPø UìùåØixX1áJÚÅôOE?Nˆwy½‘SÉ5ôZ³chžÀËKˆ ‹SÅéLÎ8%!ïò‚¿°Ñà!wZÝD’T#]kÃZ„ÀD¤«’°¶LJ¹Ê_ï~?î¹»ªCg³@¾€/?êàn_¾yúVåÆÌûq–‰®šªCâ`çÔH=ë.–Z³ÃJ0¿)Y÷š}‘¦!,YƒoÚ¶€ÉÓ—V21›´Rcš]À¦ æC©­ß`=𙑗¯äp\™•Û8³üî'elÂ.šÜç¥SÂÙYmÙ;OHQ±šÊ«¢[Eã‡"d°¦Ê´é¹Œó,¨ÊSˆM•PߺíÓ »ûÍgÓ˜µ=âm#öŸÙé¬ù÷Ü *½(@Ÿ+=uq<Õp‘Ÿ p^)˜m¾6ËߨK&£m¢Ùçq4*ÂÙ­Iö–É¿¿%–#wÝ’öéÃñ÷_`ð:Îp©¨Ü¸Q±]Ú¦%¨ ÛjÌ,«³mªsüÑèoø&n¥ö¶ˆ¾±^Uâ_á|ÊÉúŠÚÅr1wt¥rÃsÏat0¤…ëÙ’‰?‚`Xš…%þÎJjv;2C>cª®\•œÑ&%QÙte1Ù’íºÍuNÇ‚L®ú½|Ä.è)Ý¿:ÀAZžïuê0cGRÎ~ή%+€«Qæ0l>R'qZw¨ˆ 4"ËïR×w©ë†hâ{î¹ÅѽEÝ»ø–•îÝã„}†6¼W/ÝíWϼ³)‹‰%4OQdßåU‡SÿS-Ël´¶í¸‘P û3j“úÁ¾«k€c³öQ'ˆŽlÒÉD”#PýT}»ð¹Ÿ ß¡j-„<ø9Ýr3Õï³Ã‰µÓwvÐÜk🣆{´÷¡¹¹-_6Üãöþ‡ÂÑaÜöma,7Ñ'$¨äÙXrþ–NNt²è€‹Ñ%Û"í;ç(êªqš 8Nå'ilÕ‚ø¬Í±{ŽàÂpøû`c3²j¸ÀÈßÜÞ™5Ð\»É1²‡Ô[µ&û&ME:¨æ ±ÎÙÕ¢|jëkÝåðmS"eÇOÑ;Øy1À,4•Ä6iÏuåmQ7NˆÍrL±ÉoW&6Oøû8GÑ›¶dm˜„礃õ¢±¤ÜÙT©,Ì–˜„ŽŽ0y$61-¸Uß©kƒÝ5.ù…î*ìÃAÜuìnnl±WE"í3(ëëøÚÝíôâër‚ñãÁ€v͹‚³Ân—>·Hlõº“ÄÄå>` 0(É’uPÇÄlàOÆQråY ÀÀñ s°$U7'3çT—&í7F: ¹lÕüÝB¼-=»¨¶q>˜Ý'…*Z$'Ö„«¤d\‰ÖYjœ¡Ùé™à¬eÚì1³bqìK:ÑÒIÞ  å†Ä |E;X˜žÙs÷Ê-JìjP uJ?+FÔâ3¬¬ûe V¿aôþõf˜¸öbö{µ"„%w$"[60O’¶˜v¡aË¥'S6¨‰4\Ífd*H¬§º&B»Ò$ê;3ìh-Oó"êPO;1ý¶nl ~·ð½³6û»‡Ù§[L}ŽiÔP±êæX0iqµ.<Ýß|…4Q86*sO³6iä rNÙÁ‡"¿½GâÚGª¥ ¤¦ ô¤à,¿E¨¢¾qÀ*"ãhŽ®X•¡q¶‘e#J9Ñ¢]Ó,rص‘ôsÉúÁH9ìzÉþG@MŒ˜³ÆŸéÔXç+ü“qN<ÂB½²™¥Ñ‹DÞ\¥˜Òf\6âÉ8§O8 ­*:÷zeclš–™‚tÐÐõ"eíÆÌ›WåÛT4v÷h:tÈR昞ÀQ2y ÒªÏÑþÛÞKwkËÛš ·:œ6 Þl«+‹÷¥ãÕÇ…Ä[ŒámH”Tp¼dÝ&O©æ –°)8Ñz£ Õbû8î#äÎÄb ã˜OAªå¹Õ²À1Ƭf- ޱ¾ÊL±¸;VÆ;™ÓØEq'KèÔ¸ÒáÔAÍkmºÉaÄ3ˆ°i²¬›—Œ•µ~Ðã$à™Twy1KÖÐC0…ÅåôÏî?Gbê8ÿìqêGþˆt¼|ÓÁ`p“˜ó§S¾4 k£¯{4CÁ•.¬§FÆ?WÌÇøîyž ˆ£®F¾¤£[MÜêeMéa‹®™ áZbzDðšœÐ¥Êïë²tÔÊŠ§åÙûÒk¸þ£h;RÙ\»±ïÃÐR-èîfÒ¢)––ªQçD_MË¢£¾¶&ÄÖ‚|ä èˆ Æe ò üP=¬ Òë›§³wýaŸ=÷T'C•}•WÞH¾²©h¾ÿOÜIbšïâ)I26áY|üvw’5׈îÓÓ9Ê|ÖÄÅÆ9Ž˜ÏŠ®ôPwQG®Ìç¹ò…ÍKM£-rwäwZ©¥CØÖ²²ôëDûI0tßjŸAd¤tOž¶ètïUqZ,F ½²ÒídÎõ‚)BWÛžVJvC<˜C»Èe8SNäk&?èÓËZòÇ£»ÞUÅX÷žúaÙø®¢§-ä8Ž‚¡G©Ì¦Oä;¡Çi•ÞŠž¶"݃>n/Õ :ɇԣ“`p¤[§ÃßZC_?ì>ÍÇLS_Óðòsù¨(ræý Äf´¶9‹«¾<ÒúÏnCºªÙr‘“~÷¸bNÕ4 }\yÒ,:;pnÌ­´ïÇïúàðò´eþ¦÷9Bî&˜|?p~¥çaü²$tå¿^Î-_›¿^9g/]wJ]—íTdG÷i~gšß™æw¦yK¦Ùσå ó @'YÆ(cÇ5hê*ëœ× Æô›aðêèÃa|aÿÎ2¿³Ìï,ó;˼‘eÑËçÈZÄù¥Ÿ½šÃ-ߋܗTd/Mõˆˆ•°ù¨Lo‹¨Z‘‹¬J+*K}%(3ñu‡>´Æq'¾Ö•µ*GW i³:¾n%ytíÅ_=e Š¡,O‰%W*ô:X>-³xë½óh–ÝÝÁ%­uÚb×éðÜGå¾òžyg[î‹y1§¨ÿÌsñ¼s×?´×m‚£5¡ûëÅ™’ yuó±Dó*M#kûÇ×WÇesIgþuc“I´ã¥ ZÄÙÙÙË'È(òœÑžoXºzÉ›84©Wï÷Û1®†îŒƒ™ [©£Ïqî%6IÁÝ€ƒÇ™D+VÐqûÀm[phªüVv¦§¢Fš€Êˆ3]-Ÿ×.âRà]s¸»ìÑ 1¶½äQ '‰Ný³.TqŬ%5‹é' ðŒL6ÿj¸Û-z3‘ž½’ùÅIfÃÈhžó.G¢utOܧt= ƒÎS®ÿ+NKIÍ#«ùE‚Öý/Ìú»Õš_¤+÷Ó‚í[ì'³ºËD^l'æž ß{>‰àli=/6Õ©ŠrÚÖöÎOWy½ü\¯t–tŸÁ^¢CŽç%²¦Ye7ú°¤ *.œgõÔ¸·gÉÔü:t]¾’¿SôîElã ’Ö`Rÿ‘Û`dgE òÊÖΟz#­ˆ¯´¥¸åã"Œ˜›Ä/ò–UÜÁ ÷ÜnvŠƒ\ºÇa—6‡é°puPã§¿PËÛ|é½2Y›_m"ÏóyŸ®}SÜÂ5òÙ@,ˆügA *m¸}ZS½†ú 75ܸsÙÇSþàç£q7hZî 'e‡qH&o,xÕ Ý ]Á¼-'P1ÚƒÿN:*nÓeã¿pw*ÉXˆ#ßÔ½’ŒtûÈܬFøÛê}í» Ô&¬y§4G]ªË2¶ú{»;˜(` óßzNduÀnzôim Ù^}†bĘbù:ÜçáÖûV“ô6¿xåÆn?uæœß¹‡$Kº_ Ù˜f\¨C÷Éßãø‰û÷|¹»_ãxX WBH°ÀÙršŽBx&Ùt_Q!<è¶à­N2zbhyè~ì~ 5 c*ɧùîÅyß^ ü†GIЭ]íwuW¾Í5ÅEÿF›¯ï+¤wÑô½¥‚Ný¢í¾†×Ön/êͽë†{Ô{-nt»}|ν—{÷¨ya¾¥A4‹ïm!v„Œ[ê:¨¼8|‡w©“akÐK|ϧÑxýøªXˆ(t¡¦4©î.]¶[_éJ–WnóÞ…ìÑ!§,»Ìºs#y§†yÇ}§áÃ6Ä5•¾Î ä½åmÞ ˆAQ‘¬ãîWû#úÔÒ©…Këe¨4€2§:I°èé-ôu¾&šž¨ "ü' Mˆ»~LÌí¥|)öe@“ƒtšþ‚bÁÈ}OsçƒôCù°°Ð—@üÔ&üw¾W1í’7A·"ZQ>ßÈOÿ5‰HŒ"äÐW™†J%s-½÷Üsè‚ß= ®qŽìÒª̵÷^SkJwrju7‘ó…hi»oSZ{Cú4÷3'û9 ¬B‹ŸÿΗ)òâiqh¹ù4×u[ô"Ð’(“ Ú$ |FsÙd®ÀZbÈÜTénDߺso;ƒ tœ ¸‘Ž|˜kH6±_•£ØX§Ôü=<ÝÌô0zYÞå¨ÉQÁ”í©$‚Æ‹H<Ñ­±î+ZóžNÇI@MtË­l+¼…¿žÎ$Ù`®Ó¶Xᕜþ)¥u¦pw€aO‘o*îÌ é<q2Š'Çï9z’TÊ´55ÍÜíµB^¨ÝTÏ3/êû§“캛âO C]-À®!Py&‰þêîÚž¡R¡BZmÎ)}§Ój?È.bN>æîxÄH6ç0§Ú]¤¿æÅPŽ\rf]À²§K²­Õ"¾¥Ìp"ÇÙŸâ.Ñ# Ì7•NM]§Iûs…1038UF%Á,í†töròòÈL‰‰ÁÔ œ°ê™ :qTä¤ÞØ. `§]æ'S7ÀÜ8×±ž*èáZº íb9tJŠ0@T¬`æti¬H“%.yHFR®b˜‚Ë’ñÅÔ,˜—¼Â1^D.öÛùÀÔÝ# jÃá¾îÎ6+ûŒÃÅ7Ö‰cÞÐUtã ²U;÷¡©?ˆÐBw<5¢ëfÖ£Ë<ÑÉ#-¹f—Sn>hå¹M“ôÓ`[~:þ¾¿¯ÅÛ®ÅN¨ºÃf'ëŽ÷ÂÝÜñ6gsžå_¿"= ÜÖŒCº;–g}5Z óžD@ ðe$?ìéK§ ¹w‡‡ÀŽgˆÀWHf¼³5 h¸Œ}À]傿•­È›³ú`VS«hDéȨ¨ ?n_gŠÖ¡ïT#ŒT'Î%])ÄÃ3´Š”Ͳ¾ ¯È8(ÛQõ£˜3Å7ùšS* ̬ä;¬åæ@§¨îøM¡A•Šk âUÑIšº¶wÝêJáO˘"}¡ÁжCQôJ<ñì×Ö`\¹*†¿ KÄ-Ñ·´õ`é>„ܲóÕݦÉE7»è†O/†@ŠLYËíN.Œã~6kaŨ4xß0€Pî3ÏÁ¾œ : Y]û:é,™:mŸkï(H»4`ú7peßèé'߯“Pƒ}þî ä{‹Xù©’ë¯tbŒq^½>?¾øû¿w?µ÷ƒÏ.>~¼x‹SÄ' 1øðtî›4Å·ß4Üã¨ë5¨þÞÊ)¾vß'*¦ÄP‡SLñõ°õ\…`D5}á-–ƒ¦ÛæØqœ´v`¢f‘Yb¬ûÙé^Pâëûჲ°È F¶¹¬{'XäJµõzРऄ.o¹›/f;ýöàØ=¤ßÍp¨;¹ —³p Ü›1ÚŠàBÔóËzþ‚zݲ^ÉW¬ß»±)³â¡ù¿Åš7Ê*ñ·q2¥?KÊ}á ßb}»| µ^RÒ¦Zj«¹–Rüi¥#n,S*é]Žï¿äâ~LçlÆYN€¿M7½™X ×Hè¸GÇm³=&Qÿ5—Æp–’©N0ÛÆñ— :å^¤ÂiØYÜ/_ÁòmQ'K^n†¯F汈Q9K9•sX­¦£Räà4ÅÊÅI(˸ V! fÑ«î@ºx¼4 ±K¦æ~ûOø4zÒQô‰®±~ZW‘JC,iù°Š|^&Í·_Š4ýB†yð”k/”3hDUa?fÀÒÔ]+qþkÁ=‡ûFͺÞà·û¥F4ˆœég–ÛÄçéXGX«Y-³•M úÍ@0¸_f&!:ÐÀ¡Ö¥q†1 r8ýòĶÖÞê4!¶yW§I+L“´–%Úgüá±]Å_~ŒñE2&ÓÁ(ø’½ÿ?{ÿ²ÜF’­‚㊧ˆ“mv’ú ñªKmxS¤ÄMPRVõ Úႈ *.$ÁY?ʱû­ûôð ÚzÔõb½¾µÜã€DªveÖf•¥<<<Ü—/_×o±8Ú@iƒeîÒ ‚fü·—bzÓ¼« Êì>רšrÁãRÔÚ–½9x¦§ØG1‰ÀøØ›fðŸvóÛÆ˜£h–¸ÇD‚¸$›ô†òµnu‘„É9æ9{êÃû´GÜ 9îO:Rälnx[Û¨Ž¾ãmÍ 0üûÁŸÿìžÙh‡j›á—J+D/ÒÔtÖÍôM¨ˆ©ƒU;Ü.ó^ÇLp쨣ãéXkpH¥çÂ/þ“¾Ã~„ÉÐ̾þ©™”ìV™Çs%(Ì,càÝÁ¯ZŽM?eXTz+(³(UT›j+žÛ‡À`dôº.aª" áΤˆ) HŠ<¢ÌïMVÛŒÈß|뜭âÐúg(ÖD!x¿fÇLŒ{ÅNDp£KÍå7h‡E´Ã-/u«P½eTòut½â©Uï-Xõ޽{NÚZßMU]Ù‡CiHP¼)·p§*ɺåâC})ÌY̰m#•q)˜8æ3¸³ü&móÙ]Gù0Ø“lG`O9 åÄ ÓFë±”ôÑÔµXopíSÿéúVãÉïÂÃÆ«Ø)`ÑÃîί¦}3-‡Kô±—&$ÛiéeU‰ùšü±0ó3ÜÒDíäT¢ž¤§NNꯚšûöçÙÖò)j¿‰³ª…^B`O{£k:¶ ý¼ZŒâ'ôH*ÞtÔL4v.Â¥šµ¼Ü¯èÜ•x36i‹Ù›ÞàøŠ~®‚ˈ‰ #Ì«ÎÛÔˆ!ÿ ѵ<ìT@jà R}¥`×Ó!M;BÊG¸¿*ˆi\²)Ø>GrTQN®pŵ Ù€ÝÀÝ©j‚á1oog„w£™û‹{PÇQõux«¢@⢮øwúß/æh¿B5ƒLìÇÕìÙ÷hUÇt®>aQ æ ¸»¹¹ã½^8D‰¹Å¡.L…úÕ՚Ч›Ki»w+ÁŠä':í‘ÜoÒ Ü´–RR—¦ëÖ|Æ’xT&y9´7uèä8㘋œ*œƒ4<ýputæžîmmV‘‹'—Ÿö¥ wjMù¹S µÛV¬Ÿ «9“ i!üåéE\i(9í.¢+ø+ocû! .“:Í+Rås7ÊÞ6:[`4òâäÖ„ºŠ8c HKô¡ÇóN¥< )F²ìeü8…Ø6ÞxxÇiRª90ók¡ŠjlÓЗú+¨FÑ.hÜZÇ!g{Ï›ìý’d>.Šé//_ÞÞÞzõ0_®XT’̇ Ñca"Lôjtö·Iß#¶Œ6úÏý¢ äî-þüÀÕïP—€Ö  ˜™þ§þ˜¬»±ãmnϧ¦<Úì×p…‰ýzÙs·,WU¦~H«ñÑ0(™q‡Ý~­i/Ü?à,gtpd¨"ÿõiìí‡/?Â?ÈÅ›š+˜éIÍ–ðÜà˜’ÎjÛp« &ŸUÄp*í¶àBÊÆ&á Ò9—@Â6µUVˆé…/ëmìCMX‚gÅ™ZV‚çšq¹k*§ CèO"¸&OÅa¤d^Uð䮎”20Ÿí¬œö?ÖFh‡M¹²7MºÒLâ²pçW+YLI8HK–Ä&píÒŒönU¢‚4åÀ·§-¸˜Xõ ƒrçwÍ-+ÜW½ƒM˜[Þæ›‡°;0Öà ­ùC aaa€â³Ï®de«?iÚôç˜Z hÔþÉŒ}ÁtbmŒðÃâ¸%Êvª{lÔ^‘Žøšt\›%Ü£ä:9uÅŽ_t$w*Ÿc`‘Þ<×-ûF¸©ÛjŠ×Ê]‡µy5¹ºg`D„ÁY¡“1¢¶ò±Sz¼¿åæÇÓÊßË4'Ûñ^¹Û¤UlÌi[‡îžÌã>íí IQî¦QÊ¥;y¿JuÜ£áÞ½²‰ØÞ+.#Âlhäu]Ä“F4ëÜ6žš·Ï%pƒ‹Ð¥îË2Ï^ò÷_¥ˆ?~ÇîB¿Å0 TQ ©Ô?èÀ®Ý¡]¬s\¡Ý< 5òªýaî“@,ž¤ÅÁ€žÝqH*Rj5 IÎÃn‡9µCU2Šõ=.2‡äpzZ Û Í,}“ªM”éUIª-+éXÓ)Ý0Íè¤Ï‘´ÚJY:HáÐÏUˆ0œ„H x4§@DŽ}—"ÓRUÆ/ÞÕ-–ÍÉt[ÆÓUKŒâžÅtꣴgi°»¸áÕØKX£†ÃQÒôGõPËÔé§Å”£î  ¨ïM˜þ[q(¼]ÞÙ,¥½_ŽŒA »u~Üç>ÛȦwWuó¥§Ó¶°ÝÀp‡ªÎ"M¨\ÇâHU2Ó©$š€Ô ºâpÞ­­L´¾†àÚ:WõsWŶ(?°]Ÿarw¯ò±ÇVê[ÏŸXòÊN½ˆ+æÿ1ÁÞÿ]‚BuÓcGM§Èð® ñ¬Ïò¿#pÝÝØ˜Ç£;¤\”Úžª7°Fbüç´!Ô‚¯.ýš™ÚGËø&$)H…`«ÊßÓ) ¡U\„¹S å÷Š‚7˜-æ«h7»¶Õ»=’Is7h©?hìà"ßrOæ.#éŠÍˆÅNM§ÚÌA麼ªH.jZå šš½E‚Te1woˆW¦eîpÎ £Ê‚φn6pçå€ÍÇ•0qtp¾'>¤9›¹ã¬žýU¡$„é0¯§¾ºWînÌÀ€/éó4R¤‰ìFå´ÌÚ†ºˆ=R!²ÐÝ ä{«Ýc©ð>œBž&ÄÝ\÷ÞÎÉÕ{ (ÇY5žÒ ÂAqSÓ´VpGͲ‡ ˜Y]¸zÚèÈot$6Ü£ŒØËªÙX·{ó‡žòã'I_¾ °–@Ö&6¼·½:QÉ‘iz‚:S:;ÉA$y6çÁ^[óöö_Ø,]T®”,®ÚÉÕÚ¬=´î¯ÌE¬Â€­ògÝ~¦¾pO܈óÂH§G1ÈcR8P‡f±ñVM9 8—‘3¾6ç}’»2¼#ò&³{RÛ·Ë'ˆú*$ú&A‰#ª7æRD>3¬µåÖ›&ÂîóƒCQ L}å¾è¼Õ¼‡F'šãž¬é«ª&Ê= g1ÊE*=Ùjðβ(%Ó¦€ß§ÈÝú<Ôîofþ­u™Ën¬I8šIhñ5ˆÆFn©«;{n5Ú¦á@ÔÚ QìP ]ʳSSÏT¾IUt¢”VUÌ·Up£Hi‘ÇÙúç %CˆÆ÷udb ÄäWÕf]%G!BøÐƒ[ Õþ-þöÂ<|Ò9Í4``*JX¦„ÿ®”`]ËyBÓÑ87Í÷ÕÑ84aŸ5 ‚6 Á²ó[|±ÜÛ¿jØ£øÀ ,ø¿þÞ‹Q¹Õ}ÿš7ŒcÎaxãn¼ñ¶çD[8EÛ•HzÁ†? w…‹w­’ÅhC«i‡\ÂÚä¡#,ž¦‡>ŒòX=þ“D¹[Þëé½áÛ…5|¯ègì{úpÂÚgåháßB7R –Ø ßEä*7U®T…ÔZØ—&Ï%Ny¤Ñ:s‰,¶˜Ðº Tup=5×±_Fz.©ã!’“US•hö¨¿³â!6¤Š0qb»ò tûÕ°=_¹úKn»©–³JEr ¸£R@õsÉç úá![¨ŒüÁ¥ÿ˜«¸tßÁ¾KZ€êÞ ßôbÔðŸAÈ‹OAÖËŽ":3úY¥Co†;3Kw6é<¨sŒN,B]À9Ì|%Ǩ-Í)hÈ9,ñˆ-og°i5aR»ó3ê4»s›Ý•ÈÔóÃÅ™%楴‡ i8¸æWõÞCvrˆqºõÚNýrâP´Elél>Ø8WwFº*™×ç´Tfï0³åéÎá0¼ëšX+ÏVÖpm9¨¸"­õÎúúº ce@x®R’AFaœ"Î/Ioé,î¥ùdËÛºÕ"²'˜ «?ÌbdGÍ—Ì_ýWíi¸=žEj¨îÜuR3·<šUˆ}óõVä1ºÔ ·0gUÑÜlÞªÕŸZvÙ¶Mƒ!W\Öž3%ÐÕ×0SïýVœ†]ì]œ²Q>²4Š`µ¸!ÉK9ö_­× :Toònsø=u?ÅÊ}EìÂà”÷VbxæÝ¡ö¬ø‹wVyžú¡ H­ŽGâH¸¹^XQô’¹nÙ¶Ö€ûpø@!`©h±ò1 ±"•©?ê™{lÎ>§ã{¨¬^åÐÐìt‡øKË阰d:vü'b‰ùOÜ_,[AØb7dé-磱ۡîNû‡¬“iµ•ã»Pšå(¼AÿõH)p&ní W¡{‚Ba¹?Ö·ù$D2fØ+¦^V޳.ÝÝAê˸†ÉÊH€J ¶cÂ(¿ëˆÃ‚m#Ør"0,sw·úH"]tV»Æ`däïuˆ¤Ð ýi»ómÍø§kÎù¸ë$›[𴈕gùŠ´”ZtaI‰o«,›ž°÷i8ŸSho¨(„e©øÞ4”ÄÊ} }ÊP¦UŸÍÔêÅÖÃ2ñшFªˆ2Hü‹K”&vP±ê(¦¿ngfÈP¨MÎ5ã­åÑZ• ÁìŽÉäw#ña«bi§eé4Ã^6u¶¦`A.(nS[Õ "•VÂwA¯¤6…UɯÌåxoÕZœS\ã%ñÌ—†gä/ëE† bXf|´6v÷Ê<Í,I ÷]‘Œ›=šÌ|’_5òTÝ“ÞE >@#K0rÛ *ˆb¾Ær“‚ƒ’0\“ðmÝ5i)û*^"ìÕÞKoY­g÷¨î3§éGe#0`yc }-ØŠÍú¸éChÎYŽ4ŽahiÌ ŒYu:ÄŽ%Ú(#6IPœQN­‘å“}®òc_Œ{ÅADÿ`ân{,¤lo-, Å—eR„q]xÒÀ$4Õý÷aeÏ9|/+#iÁD…Eå>`Q.0ã‘@1xß5Ø æ Â:Õ¹³¹áJœ»lô:×87¡ñUí©_€Ì€(9 ÌãBUØ0´á±ºÈ¢á+`¼`æ ¬4Ó±²¿OË(êl€Ž£¤Ä•L!:ÇþÎ ™JÇPGª(¹ƒ•5€ì$: »;â¿=õÌ IJ^Y¤$ù©ç«Ç õï»Ýéé)¿Þ[Òè_íìx[oV9 ŒÙœæ«ƒœÍp8ãxÉcI¨ßãP¥«Œ«†2…¶ä‘ƒÃÃ=^5݄Ƞé^û¹ÜÏ/¸In"Ÿ¸ -v/?ž7”r ‡bWrf²€´\ƒêË&#DHNÃ)Çoy·ê¦ãx*ú9™©[wãU3@•¹ç6#@B 5õ•Q²%̲bwN%¸Î|U”Ý9-ÞÌÝÅ=´‹^Œ…}Š9¦š®ÅU|ý¼Š˜UÌOÊ&Ò¼·ßx¯çxì̈‹9ã3á0Ì'ݽ¢û‘˯!‰ÏrÖËý&Î0¯Ûh¯Š.ƒ¿¬Q“¬X‰tÁ©9 æj ôó\û"ªcú}ž}9è÷r.c؆¬â$MªüEÙ§ëHM›>ÛH'£bœKÈ—ØŠ6‰í"²¼Š1fÕ:»G<§ $r¨°=Àîá„”i#óEÐûˆ¦HLJWÍ‘¨!b‰„²ÏqyH·6u Ì2$@úÊJÄw^Ÿ²º|è*ÑoŠ»Ÿ¢þÙ$,ºô‡U8#]r&ëwk^ ¼²(C ÎÑ:¤åîºöö* ¡„3«~M/ÌõÜ}ù,f¬!O¬Ûýš· Œxæé0Ç…pmSqŽøA 6iâ:‰ñ©úΩ(b"ª0‡œ-EbÑÏu>ÌB­P6âÿ®‚Á¿*•²Â]‹˜)uìfwmbÈ Iø J'ÐkÆîZºÐ¡qœÐRè‘8U^4ÏýSÚöDAõ/š8› Ä€0¥fÿ¹'m“NïcØÏ©û‹ŒúŸ!kiŽBäVØù~ñhz"‰TÄo›hg‹ØËUæàó4›Ž9²¢™ðÜ6g[ã0û:!…ÿV!&¤©#0C?Dª]–ù6ÞºÇz•lˆØxûö5¸ ¡Lº é÷£’S Q™y2LÞLP¤NH+¡4Ñ\bk¤C"ºÚÑ÷Cdbv*#ââô.È2,à™'QÑ4áW6Ødæ¬}Ø;í_½°&W%ɨ̇âù@Ô,µAü†É”Æòë§ó½Õt°á¢!ÛXr΂z0G*LL>M´Ès?2Åà ,¶ªóýB‡Ÿš¨™ŠUG^vM8 ¿'vÓ›ÃbÄ…x‡*úNYÍš"IÌÊ!:ŸTþ`oØôŸj¨™ëSçtÚìÛúGZ:V7@Ké™B¢?™E‘è%11Z2n…vÌadLCXllð’Z…@C¼â †A4‘—½0'ù!/º Mާ|ïzê®ý¥¼‘„—°þÊ%v¤JÚ ½,ð’¢àSˆm¨îÚûÓ«½OïNݽI˜©'ìTMçä:)Y;î«-ok_5!†xè«cb‰š—Ùå`~¾i‰­R3rØnÊYÛ„†Êëí>ÐÓ ª^H‘ŠÂØœŒ&?Å07I:F¢}‚ˆ1æìoYÉéÅP¦ R¡r >Hº8©_†Mdî3ߎq‡Kog"†¨0²IGŒàê,K³Ê`ƒ#×£Ê-Êy39„A‰$Ç6R‘!Fëp6Þ­åù‚!%´ñq½+5ÖÉÓ㕪vF¬ƒè†GwÖùäo1¾ôfŠ˜QS‹Ü—£Ô`žÓ§­õ­Þ ü€>¤´ºlœ¾õÄE3»z’Ä0j`E}óuÓŸ©ï™úþ‰Ô'!#ÿRÞçÏò£U+D¯@D¾ÍD¾U3k¡ªÒs˜üÜï&?·¦?§"?÷{ÉÏ­èÏ¥jý±úý-èÈÿ{P ñK¡´‹·áÂ;Àöò]Óì'ר22íl © /?åœëÁ¿ßò²’˜2Ñzj4aD‹VQL¢/`¤R‡l8Ë‹@DhŸØ—C²¶9\´=0Yê†eÞ±YÝuò¡r³i\ÉL¢§QÐ ®ªÝtF硳\UÃhá’©mÍ0᎖Øy HljܑG°=î{}ï“g,ŠÔYÜÏVæ«@wób&œxÚ­=],†8¹ôúh¸?æÝ8-“ÖI€cÌ'Mžóµïô@ü— j3-,hÆÚÁéqß–Jã^=<Àåìq§ße ¦È©Á-)Ùœ&7©SÖbè LÂà ‹_¶ÒOÝ‚_ä'×M§_ñg‹!ð^cD†ò«¯ârÀÍqêq_äø+äLtþân¼y³ tÜà v ÏÙãç>óË\b…êC“¿¾IgÒ<Åž{!Ûˆ«{ gîæ«õu¦%÷§îG®ÿÔÈý‘d/“é…œmA°tv‹PùœXhwˆÊñ÷žÇ9Ã<ÐÌCŸ‰ÒÛ$¯S U˜ t½@ÑgŒàÎÆ!d£òµi:u³ô6G¤Î€Ö7e c»ƒ´E2øaWá¹#—ì=1ô e•¤Ì\¢o4 ¾÷Ø… éTT÷ -ÂæÆ†ûvÇÛ™„Ý#(@dKÈV ª1pÐŒ±©A-{ýA÷½<ÆÆ4HwyÝ]bº›‹‰1Ý9•$…¼1í‘ ‡ˆB>0É(eL§p §¨âdËê´÷ŽMQ"Ö6*D<©ÇS`¨ —ÈsA¨a—Ra )tÔQ>ˆ ÞÿÆñc¼åe‘ÆUBzû •OåG*V7àÂÛËÀ± ˜Ñv¸s;ùtÿø™4Ø"UcyÎѧ§¿‰ŽØUR3àîUiîUâ—1s6\ ®©•Úª ¹»¦Š‚&›±¹rÄÒº½0©’‹1ôÃHßU¸$Ô\¢ßß¡³Ÿ6p¥9)[UÜÎR—;‡»BBªúv|·œb„¹!Q–£š ¯ÒŽä\/A¢«ä­öÎÕç°Ø<¼{H˜†w&5†¡DmQ Ö¨à€ÒˆÈ—!üjÅ~¿¢ç÷îûô:6ÕÔFŒŒKc}<Í”@+è"¹ÏïÍuxSæÃ$θ™ìP$4 Íô+×--­nU;ÆáhÜm˜ù;àºÆŠH(K®‘|èêd„e„ãáC´Ô³×ãiuäuàD~2wÛŠ C¨>y ‘ºòñq$!ÙúmðÀ ŽIÔétÜ@-óñ`&7†q<Z~A‚xíC;BŒ\›¾ñßWV/u&Ajzcùû$‚µdÖ¸®“p26—‚kÕøñ]0,güR(+ Ǧ~¼2Ø ‹†ë™:þ¸ÔñXJ`;Ì&Û6Þ.øYZ‡h‡ñ»ÆÔËwæ­¼!Æe”sþo|¸,LXHÔ© áŸÒ?HYÊ+QÆ~c9>ºIZt‡)Ê®{pñn.໘ƒæ ÇÇܲ.¼}ŒÐÄZðüÉžLˆå®j‚Qã*'¡åžhž¶Äе¥øÜ2¹§ŽíÁ4—ñ)2Dí¥:2œM´æ$倖*Opظ¢ß76qõ|nWh‹|ZŠŽ}¨_%±Ðãêy‚ViL?"‚Ùc\lϰx¼|ñœ^R>1K_» d¿¸ù1 74Y¹•¨¢xjlÖY§™`€KYûbV*MmäÆ<ªne‘E„°1ë ·øuÔ‰øŸ çÉ<`Ãäy´þöõˆy3ýÙX»àáêkZ2b') 󅨬¸èsß3Æ/â&4²Æü|`ÿ¬…ÏAŽ" L@$’B9jÕ'vN™¦R!¢;B9‹ŽÛbá"Œá®Ñ&­œY!cXKñÜðeÀkÚÍæË›­+_È]»:ë;7/ªª(&U†G³BµˆͦEÊV´™ËµO»·D«-à‡-ˆµ $¨ŒÛ¡Ys™³›4"…\këͰ‘?V¦tX»¨2;À!1šÆ¢1ÿv^x÷\ª vu§•3 ÜR|nLBJxo:èrí8¶Ÿf:ú×w¨J„è úU«YeqªC ØöÈøñ{žÃÅ´e®Ã…ß•¤b&2Eóƒ Ḭ̈ÉxÊÙ›"\,6ò+­ºÄ/s 4o´X+›³À ž´ðBs†hjˆ×Œ™[TãBd¢$¦I·qɨ'_©+4Á»p‘vT\é™=Õ(©¢¡Û÷Ü£„DíœT;”·Îr½ØòÔ~®£KDýŽ~ƒÿ'‡Me±)d´3UröN–4H`¬˜@¼}[lƒâ¸U“2.¶x—F# ˆÁïŽùËb£ UFp"öI¸Á§ô½Ýê‡q©†/ÞòªÍg^õÌ«žyÕ3¯ú×óªðž8Ókï•»³P 4srF»‘1$h!¦“ÐdSï¯rãH_bH3w.i^í8çäì·¿ývõ7¨µÄ>þZþ[©Û*ÃsJž(’e2 +:íF¬–˨rìUÓƒ±os=V¼lØÏ¦Q9ꆶ ¸ÙªMHôï<סIŽù^ÒØT¿¯–j¾¤±quå_³^’Þ<µj·,’àÅ´ŠÙÌ»v:eí6¼hKiHHZ`0Z£µƒƒþù‹öº ¾-OLu+Û ¥ñŠÿÏ2LP] ÈYkÇ—Þ€T­¨k¸2(ÔU«‚-öÂI¤ÊÜ]£ý¬ï˜’”"íŸ4YÝ!×BébÕI7ë²ÝVfêÕ›%Ê,n9–ò)õA!Æ^éae„ý·t€tOÓþ—æORWß§Äů§•5GnŠz¶Ã”4Þk„¸C°VA/@¢¦b*ÆeîÇ£lŠhÆ”d"Ä#úPùj’—‚ËçúÔ ŸF(UZNÀø-·Ê™ŸFˆ¦§OÜmPºšºœ•©fˆ?™+þˆp"ÅwÃ6À/B=ú1IônXÅb»×)é Ä8aIÜ(Áöáîinã`‡çÄ ž CR âIB¯߸ €v’ÈMÒq9uéÚN`¤ÀŽýñÄRw¤W˜Úô4F)B?t§Å;½ 8­ŸŸIª\ã ¹þ;-ŠÚÀ„ÐßÍÍmûiçÆAŸ¶ÞØk;›ò Þê|\ÝÞ5%[z1r4œ*"àç¸øQ‰…šX‹Äf»öÜ<ֱ͔™J(2•9’a‡šp¶Hf(]ûÙÄÈs(j«¼¡dlJ§Ó!ž … ©EÜdé¡Qã³gLÇ%á“8Tø6±Ê‚‡l}A­*]Ø™ÀI+¥ È {t€¼:Á”Äj” LÏ CÝ(Á™›O)6ÏaðfNщ]—Ÿ3ž`‘ŠmÌ(2³P’`aÎ=w_K†!F¥ GÍ@Ýqo&òç Œ§?×Q4æ7‰¼1c¸â4“õ9hÇz„à0Cd«ð’ìÿzd6mÓ1ÃfwºÓÌkKãüWí&¿z+ÏÚöÙeÏ-b,]D¾ˉ¼Qzóx¦1ºÛ¤lm{›ë[‹Ñ9FóÁV» Veñéš!:Ë[¬ŠRÆÁ`âÇG×L§Û[º·õ7•®¿ÝØYÄ)µZ:vÈ/ó&²ë2—Xªiã·UŸÖdtü¶±a#ÚŸ#4-‡€bd=d}á[K0v˜ù¢°.‚Úµõz¸Ÿpwå±o–JdžÙù†o .éãÈ>5kÌú¡ ¤q»°HÊúªmÆW8 ˆa}ì¤5ö*ŠLUI¥m¼:YÊN¢ð› cg~7]¾è´bËßͰ†2&¾­šëh],•lV^¨ØY3ÝvÙ1Ñx/¸§^XG9jNñƒVÆ—ÒÃÉ»Ÿ¥pæ[•Ó_z\xRpc2­ÕÉasëð™þ; SÈZÜôÞ WoûÕ|¢ÈqI§Îü»½ËšlðõŒ:‘L{R®sÁ?oMÝíX4 `áŸ4¬’ yé¦H¦‡;»Ê™ü#Ïý‹@gñ©Y?.uP³\4[§)g»5Æ–Š³—&Ù€!xMi¢I*­iBÙîÝœÃæ¥σMfÛÕ3¾ý<ãÿäǺü,;ë[Þ«ÌHóÝAJÍÅ ?vÒ]3éÎãgÝŬùÕi·XУ’Øðš»÷ÃL¢Ï?ËiÖíþûNîCå{ܼ5#?ž°Óxˆ Í;¨Ñ¼ã}ö×ó½Ê›/¥ê´X1IãŠfÄbh6Õ)[-Eç5¢tãöîüí=I8ú4§ª’Ç•ŸF)W®ñº{Nm ^Ubo¥þÄu6BLG¬i“0;•X¬ó©6€zš±õp³[dŽ*R²¡Ê•ŒÒ+V裴àŸ2”I”^;͵^%vñNî(EÁª¡à0w›oÁ#µ‰InL ²“G¸&°žðJLuU*‹gƒ Ä\î³’H ö³®’²gß¿5a¨í@ÿÐd1éˆPÕ‘Œ`ôÁ…#IŸ«étæØª`4èÕØ‘‘û—(ŒÊô %ƒ2Þ6gÿlÏçÀà·Cö{ÙŠ¸RåVòÒ¡ÖoѨ¢Ë7ÖuÅYäÊi¸H |5<"üz?¡¯B?Ñ?yîPm‚ÙoÇ5?´_Û¨¯1ÜV+äô…ã|âÐΗºð‘¯kbz$š.å2¸Ý§eÍ:ò%PaõùVë }qLÚpâÁ=Žf {‚I/õZl¡Ë>ˆÂ¥n£"Y™gCí9ZU°öÓÏá”xx¼ ïžfÎC±ý»ÂÝÜö¶°+ŒAŒáâM|v¾—ÿáC‡éã@ÞOïû0Œ ¸:I/Öl¡¼®2¦‡8Á²‡L«‡Ô˜(¦öQ øÀAS˜š†nåJÒÍŸê^dÿêŒ? áÈ7Qç©ßpÄ2ÆÛSØ¡xàæ,Í—Dn/©¥µÊÁËC*³àŸsΨ®Úß[]±GfNŒi®5/«H‡YÝK”YPî®ÏõÔ‰3ªI¨ŠäBZ@hx&¤gBú !‘v\N¥¦ïßúŸ?dÛ¯ÜWÞ|¸†.ÜOS7ˆ»òû,íÔ„´Ï²„ÔÚÌ«³¨ê½‰† $43©Û²Ñ­QR9§+¸PSDÓPH„¶"åN[a“ÑÀT`ò3¢”$ÌÚªì Ó"Ö¹µÝâ/SŽXâ(-±Ð² Š6šÕÞCm9fÅ4AÕ¤_=˜^-M ‡]è%q%|0âh|ÉwÑ!ºŠ8å%w³r|JùE¹ÔÓ$½dÓqØp! 4t:ErŒ‚ø³ëWWz9®Tî7$ô£2ŸÌÜÝœÿz°ž„ù'…÷ç~:ÕîÆé€owR˜OMÀ ¼ðø>Zyܦý4Àè¥C‰ñëÛ;¦ÖI8t\¤C9cqÍCµàØÐYZŽÆô¤D¦q B K@ˆ X2#‡«Âð/t‘Ñȳ!mØ)}^…A(ŽÞt: ³ ²/¦y^°QÏ~è(u?NÔ˜ë®raUŸïT’w÷u–°?–fSO8?D>°—:œxÙm1î*dÛÔu¦~Móq©ÜO÷Huß-ïC)ìô$6CÚY>¦Cêr¶àÁœd·Ý+η¸Ò üéM0*•$iÒçXG¢¶·-¤íˆÚÊÖµÚ„øƒêt´u‘ ê7J¾·ûÈ @irõwÎÜ®B¾¸ó‡—9QI¯,bŸö‡w=}ôüj”Û²l;KÀcšµÅOt¢÷óJ™²ê‚ÃjˆÜ„’1ÇŠû‘ÀlÚ©¼ÂsÖX%Q!ý(ÔNx}î3²Ô†ÍM †Žsðç?wÜ£p8ÔQÇ=Nád7ii¿ª®©Ñþ´‚¶˜Ô³:ÄS T¢ûp¢EÆVl°AiÚ†#Šo1#Ê¿yÌÎ…BÂB‡XÈ ¥?{êÐÍè㙺ҿuë®ák•þÏÂ|úÒÀ‰ás‡Ae“ÚdpÃwLù®–&JM}ÎÖ8DL´•uH“D…BÝ­L.k¯…ìoôÆò½fï©‘DUá:4~ê^¤4aÅ?þ_ÄkÒ¢ö3>– ¶ám¡2Äú¼µôª†Zc©ç¡[Œ&ךøJ«&¶ŽSÞŠSÛ&âÄL葸÷ÿ÷ÿ6E&òž×¢t¿èFS¸­£i†ZcŸ.úuרÒäÔ§xåí¥…hTgÁËb¶^#˜ jì,°'ZÞÅ={û“&» I¢R uñöµ·±±¹B˜§¡¦]¿’èy~uö=²ºjö ŠÒÇ¿DÅ,xÌœ :l¬oyóúÌgû‘é¹o›Û$¦Û6¶Ùò‰àDÑe š=ˆVÙtÂ,tûrªv¯sü5çã½9>õºŸ!¿3ö»;Ô××?lޤ¢óƒ»“wÀ´1gFþGØ’îEµQ§Fq²’Ã:d„þeR:¢¾^`õ¿`CÛZõËW©Y¼îh®V=^è³bk®YnÄÆáüþ¸¬­æ*˲€j{Ø(öZ|ã)÷ w1ÌÔ–î êX .3ç9GuZš@dTæã´°¸šUW$ûC?f§9¹ì›¶ iZU63C刻x÷“WŸ~ˆð«úÒ@R_Xç¨zÙ3éØR"RBª`¢%ñc]Œ±ðyu~_«“E.‰{o!öÍ/É^m¹2§,«ÂÀªÎ§Ë³J½COâF À`aÔuÊR·V“`Ü@aóºÒz9@ ޱJªzÆö¥ƒDÊÚ»««‹Ž‹û¤ âó1>:Wüùðôàªã^}8¢¿g‡{fz|zvdÐFØf£@®8»¡`µbƒMeçrkÆãšÀ“Dƒ«M@$ܮԳ¿D³d€Êh»rÁ³zcuwÇ!Ý]Ëð¾M†áÞÞö '6 é³É“j(Ÿû¶ ÑqWK‡­’^ºv©oBöV˜f¹ùE3–cs+x5‰k–Ф sqpÖ¥'qñYÍï+¾/Å~å6Nó~xý~†"tû\¶œMæS¯•™Öhe5šôy>íØ¹ÉIî—š [óÒviRc;]_p4ÌÚÍJnðëp©9U:­C&>÷§y;&kˆÕ}þÌEþrÍÌË:…ÊtÊ%/ÙPåәΥÍͲ†ŒWËè!¸‹ãX%’ä:n\¸ K&Ù†ÂwXfƦ Ù®ms¤+±ñyÍlkp š•ö?ÛÍøÂJw— ¯7**+P”\k‹»4«ê –Uh¾íÀd>- ‡ûe ƒ7.IñLšCÖçÙ" R´:~PF…Xþµäuš qoHþ³*Røsãýíö©çýÑd6ËʼÆj±m!µa{±žË^âžžï]0§½øxáž#¬Ï µy˜¢/iøUmå#^'¶®XîÊØ-ÝsR/q>',ÄBÉßEe®Æî)®Øíùñ³Lyr•#<‰ë>n¼^_˜†S‹ÍU!mË+÷÷úgîÞÅiS€6:D»Áö³£2' ŸR9INì¹DÈFa ½¥ïåñ»IÿcÂå‘o«1ßžÁÿpWMèÓ糊S|žÕ9«>1ê8ØY5¯ šœœZ¼Ü;??Üq«à¨¯Nq Kg¦jÕŒ;íw¿wÆß匋ñcÅ|ÏÍX›¬; =„ó¥ 8{:ž ü¡éþ:óxžô:é!IÅ£ùÊáéÉQÿ꙳|ç¬ò\MÃÇMùI¿I|žïïžï¯ó–çYÿ‘³>à]zÔt_œí~xžíï™müƒá­_’2+sÖzÑyÍš» …Àßý{ÉeUÁ+P3™Ö´ˆ@%TN`cFM`ÇÅÞy«æ¿x •ÐÈ6hÎ6Þº›¯-/ì¥sîÞlKëœl‹ÑŠ»40º7\Ðw uîfµ1òšIØ,ôÿvG.Tµvܵlèo¼Ý|cÒ㜻X {˜]œ!-Xtq«i M¬Üf$ 4ǘV(ȃlI:KRà*è©gï%ìlî‡4»%5]q£u“@ PLfÛÖ ±/ Å$L{a×›JhØ»+º+L‚¨¾ ¹Ò„Ó¨|‰Ñû°‚Ë É_e?&›;—ßï¦f¿´‘MÆDÌ˕¼"¯=IÿîOÎý`«o›ý0–,êîFvû}NÜÝ ]kv±g&$ì?eœªG[v•±Eç•»¹îíÌíü^Å%I|H÷êi¬7s×l,˜ú…)¥cðz›ÅÏ8Ú ‘XÈ<„ÿpòŠC}ª(Eİ„&@)È^tY!,+ârHñ]Áhe¨< ƒCM¸ÖrnÒqlt,›æˆ©dºÆ°0e`ãmô똢¾aBx"3ð\\p`ßðÝ´ye‡±œ*š¨³lsƒ×Z•|¹Õ{ê;pŸ :}á­ ýV¡1ÉV wÆ×šC†î9H3Ç¡ñ‰/´Þã @¨ž¥m.­EpÅ¿¦È/¼€Ö÷ ”±£¤ ¹i9¥+&¦{sÛ´¾ÁÉ4ß&¾´NíD?‹Òl÷[΀±¨u´®SΆÂd× Jƒò²0òEâë_ɲeS觋ýüE]“mÁ’†uçJ-qÈVgSX3:iŠÎ剷lü%v„(lËÇQqÊ•@>ðøê¥¾Š±€ 5k\øD>|=…u^f™ùù‚žNi±oé´²‰¢¢HùcéTUݺ'¿+ŠFÄÓ>µz5vσ$±¿GnýðsÇ£‡ŠZÈ)±1.ì³³í½žó`ýZ¾ïž3Ú`„S[èž=•f¬uGÍS•Ý‘&xUê‡aÁ36ÎgaÐVnÿ?Ïò°²<| b÷ `þd–æi³2ü£§â¾œ¤ÝI<íz¨àzà#âo¨Äµùúo¯¹$í\„ÞǤkÀ¤šcßVtß C5W W€yÐûó‹ÎwþqÛµ†´5ƒôVË`ÒT,p6ƒÖs÷v+³ljû‘xIž[Ä3Z÷Ž•'X5¯w:yžÓ2§ƒ š·7;îÆ[.†Ý–_ Ö›{¸_oZ“ n½Ð|wcþ–ÞÓt|JáN[Ãó+l FµgÛ©2 És¥8›h,Æ–Ñ ‡eÔŠJA $òˆ3$=éñ‚߀”1̘^Ȳ?ìîUœ›qøÜ>›ùgž[Dn*2±2X î­š-ÌómM i¥I…Òå™gbê"¼ò Eùã9„[Nãv¦t¨ 0¢Kc˜t Z®iã¹{$’ €KspÐZʘûtŠZ¦Œrº[¤]ŒÇÞƒ 6l¶!-º†òc¾š|}0sAÊÞ1wÛek\[2Û]³Ré(• Ù’wÓ£ƒ1ʬý…7!ãND¥»›Ò…¿ýM­Jˆ1À>@ü¶;ô}W„²Â ÜCšr§j”3¼ â ¾êq¥€:±ê=ƒÐ¼#qcIHGÉÆ h…{‘¾ޤé¾E mj€HMš˜U˜zw$K©FÜD_)|ý >§oóƒz§nRß½ÐòŒ9žöŽ„›Ð½@!ùoo4º±bÐ%=‹A@ãk”ËP=:¦ý±—ø¹ïÅ¡A·ü+êd_¸áîÞÓçvW¿¦¨/¯nÝÝëT÷ˆ–*KæALICع»{+Ú8i"×ýU³9Ä€Ð÷†%uä“Çï¼ó«x8³ÿçÃtŸ÷ÿóþÞÿÿÆû߆é?pþ/ØçúÌžYÀ3 øw`# f­{¯_q}é9³Ì )J]Á$°¦KANäìF  6UM‹”UÃ<ŠfÕcinÛY+©sÂYc6ÕªA^ØpgvUÀ \ƒçMñ¼)þ+6E…,#[ãÍóÎxÞÏ;ƒw†-à´üÐX!6¾d:6õDŸwÈóù7Ü!$¸§€z!ŠTª7s›ã¿î› ° Oñ¯ƒ…_ŸÉö™lÿÙd;e8"Ü7[Þº»¹1/ðÜËâ´îÙ‡~&Þgâýgïß‹-°ÜMwãÕŽ÷z΃úŸW[/Uó é>Üà™vŸi÷¿€v+ú ^.Q•®¿÷¶gj¦ö6µ£(nåo˜ Õømc£+Á»œ¡Í áªfý¯ š`( S9q&ú×ý-°ý¶µ¬tg@š vh²Ïs ”Ï¢!¯‰K7ðÐ05·¤(ÖoÏ;åy§üwJWŠ m{;Þæºûúµ·ýfHCÏêÀ_l“sÔÄÞYÀ”ÿ>œ–Ä,s~Ì’¡7Ã;—~F+¼ámsÍ©¹ Kúé0…ˆí¾§\{ÊOq(Vµ¡—Ž]æ¾)ߘû, ?Ç '«p¨ˆt€)4†É£ß-0 ¦["_{; à9ù´'4ÌOS®œ|hR&?ô9溮]uÖ5EPƦkІ›ÓZ³i®Ðçxnßâã8œÈ¢¦X·­>B¾-MlIóÇŽ\‹#í–<@Ô>GðºÏõl‚Gõ[ŠÃá= Æ\BR |Ítnpjyþ‚ë£Àñ‰Wd€R,ĉB”äÐzÂî‡*Œê *+ ‚Žû#šåQ:2qâºLwH/_MÜÂéÏô~zaGdpP i›€ÉNÕr¿hëP [P‚Fì—8‹B´T‚JS½¨C72o2™UeN³èì”yTù GŠ«5v®CÔ@„¦ösî~8=جŠª]Áá~”YÄdÆšsF€I`œÍ9ËÁÍM SyM~;|wpÑq/..øõ¸xÇÊÚñ±û™†0Áùº{ÆÓ2™,?W]s°¢xÅ~‰2ÆR¼b€Ï\ÀùÑ›. ýÆè'›¯v %êËÛdj:æØÿOpZ©{xx(5ÙpÓ£Z†ù4R³ª¯Ueœ¡Å;ùtjßÀ¹w' ª¦Û~r÷„Ø:Èåpÿ7O ²ò"+}Ù’&l¡„æt/g„±JúHÎ5ذâ¨3bÁ4ííæa@"»€D®`†Ï?~:ÛënvÜã—W—{:îÞáž©MpC'¥å©€‚¨8‚º²*Ð)Q*§óEŒéH翽pJbRîewW Þ‡iòTîY©‹‰+ÚÇ»^¼áѤ@è—œ¸ý·uoàÞÞμî†é?H§3lRÃ.xæÔæôåG÷(Ëjê ø›éw¬£i.Ù“ˆá¢QΕmAMžLê;Œ¹!žbúÅ)Ä…âÓs‘0•Þ0â{U 7M´Å!ªü*Ÿ’ðÎrœ{åO;HÈ2u÷H>?©áOˆdõŒ‡¯1üŽ[eIôµ" >mÍR3ÖçìïÇ6ЇÑ¥ÁQ½B­û~rNRcÝqQÊJ›¾V'Ô·IÏlvƒb|ÍRžKÜ—¤ 2›¦"^Ñ R% ›tµ6äƒWqE2 f)4!Göé4K€9¶€á*¸Q$\ÙÄ3_gCÐå†$ÕÛ&.D‡iD|ªí¹~%Nš 9ÿÇ–»ÍBøá¸VÚРÏÙêÑü0ÛK Q€ÕpÇ5k ¬”í“î«ÚE”"îÌ\\*PÕOº*‰Ä(r;q¢0''mÚ|.®uf 4âàdY™xuœËÔv9†ñ¼.»gö¡œõ‡£¹4éÊöÅq¯­Ü"3²g—IˆºF!£S‰`’ në®T©fÂÑ]ÃÿièKŠr3‘U9Ó-èY‘Ÿsl3ÁüžL;)5ÝÚôüâä²›é{œëèfe Õe:pû$δ»›¥ƒªÈ Wì£Ùíåû…Qè$Ïø£[órNü=ßGÚ`]¾Ì¥ª4Êy¨ÕZ¹‚CÊ\žaåd&@¢’fâ3Êyê›Ø¹ð¬DNbä$vߪ)³tLåÁÅ'¢:Uʈu™+ëKø\r§aÒ¦!ë¦Ü ™ð"®!a"6-ÄúײQ÷U43·OÏwÜÓýsd¦N%%šôt¤‚Ýj„4Ùú×ǯ íèiL²Ü¶ûzÛÛœ«ÎYU#>4`ÌÒžgÕ«¡æ«R¾~}¿jßO¢úâ´Ó³PZ"cÁ¦ÞC§ˆSÀ•êlJ?Økâ^^œwÙiK“¤3mÆ!)F·¸AÔA¯6“hŒXD@Ë eÛÁ¨+ffJ$ s‚ 9F€”z”¶wªw¬“£yƒ²T\YãpϪ]YåÒûãìÿ'à˜vã(ÿ2B>¨¬‹åÐÈjÜÜòÞn.Öv®iǧƇçG éÝÖ[1M÷¤%ô52­Qœ„UõZ7Ú ‘Í­uAÏÝ'Î?›200ÿæ¢ i.\_ÖIF$ Ïa"2àT%:rp–ò¡Y õUî¹éŒ~ Í‘k@ñÁ;›‚Ùöµâ4TÜ;¦õä8`ùPò‘biï­×¬OzÇDy×y€Œ¼`GÐHö1]4çEjJ¶†èØ!òÁ:$æå­¢“ረäJ¥în‚^¡Ò^<#‚é]mÑ»$ GýãÿIA‰¼#^+:êår¡U‘hB}¾')ާ©Ô< rù&æZ/PazªdSŸAIn`ÃëÅ?þψx_!#7 ÊIoÒ º·OÃÁîMu9;R[L'z8Io…]ÀbÔÂ(À–ù©õ‚ÖÒÞíâ°ùÉsZ¿Þ¨(dKVÁÌ®’¥IFãN%èŸ ˆâlë$ôMÖé¯Ù˽°7| ®ÃÖ»„ ‰qïЬçÛàG‡¦›ckzëJao oÜñA?D ¶ οŸ9N×}wu~æÞ„e×NŠ ¾o¾À/}áÄ †eâ‹ÅNl°ÜùYjëýdÍGÂp.Ä€ B—Z¶S˜< ¹J¡!+áò-+R†мŽaçÿíÞ‡‘?öTÜc -×Õ¦Åqñ‡ ©´‘Ëþ Røa] ¶Äè·¶ñ%Òzß!³]zÍÆôy¡ñÓVµòì~×Ú?qm½‡×ûÎÕõ–,¯×X߯òvë«ç×wuNøx×bùú>j!7~ª…¹åñC­ËI¢¸Ð&´Í%UY°tçÒ¬iú°Æ¿NŒn(„nZ½a³˜’¤–'mFàÈVŒ&}8Í€FïîæS/gH õT6[OB•øj§bAû·žŠ±?%ÅôJé¢g‘Ž7©«÷ÉNûlª¯ c+u_º: ¶=gñ±?Äö%Nvgí' §+ß~²½½k•xTLùöÓª¬¸+zØ{švcÆï ËQù´âx¶£?¨dkk±6!¿q²µj‘›;¹>+QGÄ—‹Ëœ|?ͨÑ4åð§1WЬ´‹`@¶†àÝ*É*„)þ=V¡ù1P#Ä8 °\ưàŸM§_áÝ—éÌí“|•JRIÎIéâïfé¬Ë/Qñ¸l½ðQlEP²s¬Òì$\uQÚrY-r4Áæå¢ž œç'Yğܵ¢/ë'\Àª²(ö “ó‚‘ûÛ°?N]¨®¹l\VâŠ0:ltÄŒu\¸÷h]:¾Z [c•OdeYª5Ö¬SF|q\ŽY«lécÄ)Õw- ¢³yL«KË*HV•…Ö‚vq^c¶iÔè¥ùàIð,ü«ž€Ôl ¤ŸÇI~nÖäiBß/óA˜T=uÅÐè¬S!¬vR­ækɰÿ¬mßÍØìöá1Ù\Šån´Hy-ê’Žš-[t‘†r«f?‹O÷˜„`ú•$2b’XM?#®ZS×"«ÐccŠaó)ÛQÍ+šéXs)rhH–LÀ†@80ö Œw9x¼­fê_ݸ‹ ¢K#GæN¢‡ ad´ßœR™¸/Ë<{™“¨_Òo/m­£—Ñ9™‘œ(x”M’·î‘ÖEÒâáòê•-ߚωðß“˜¸ ½âíd/T±@×\yUe¾îŽ!Üòß랟{šþpµ3nÿ´õ«æ-äÖ¦·ófÉvhŠJW·im&è4_î(¸¥—;Ɉ'Kx· ïÂ5îFx–¹·_>Bƒ2žÚéËà?(Ì5ãÖ@üñ™3`¤˜h-¾*‡hþXû+‰ûZBtp;Çìâ¨ìêÆ~½`^çŽÜpÈëâ´±U£¸˜rÈq3¢ZÉCÞ‘"ñð·Q¸.V7º¸.¿R°=Yî®Æ…^ãÞ'ñ¸8­Yy=ŸòÑl0i²Oùˆ<½¸ye–yãdô°Œjñ¦*çj7“ )©n&ùY àÀ˜Ùݼz¨Ž™˜ùÁÖ¿c ‡§¬?3„«Ž{#ôÒ 16£ÌhÞÓú ÍŸæ›HdßJŠŒC‰eÊÇ«Ð{u_¦(]<áÒäcùЛ)ÃRÛ§Õ_‹¼ÌJ÷§/CÃþ¸Ç˜›Þ  ][­lçtè®?=ß§7óˆÏW¡•æ±D@þº÷ö±è7o½7oÄÛP±Q‚=!XK£YÛݾèXŒK:ÉÂÕÈ”ß×VŽúù3Jy?›ÃÐi`$ˆ¯’aå)¸Ò£D6!ò«Ó«ÈI¨®Äª3ÛJ¸`½3>}Y±‡Óª‡Žûéü¬ñ­¿wxÕq†´ýa8(òNuÎÖm8M,zÕw<üfwG(qwñá¤ãœœs;š#ýšÑãN®|X߸&Ac¢bhcܧ'%u$ëÍ«¼_!»ït‚:n±‡Ýk\éŠ5aO•µ‰–â›vÚHõ¢YîíEaù$›O¨¬½ç¡ýò€Í'Tßeï¡æ""Yàz=/që¤åó”Áh÷Ó;3Ðþl®/ÿ–$fök„Ó’>„ʸêÇ žá§*âøæ K›røÀ]Ÿ˜U¦òŒR¾hxAò‰¹§Ñø’†z˜¥Ü:`I0£+t´Osú”iqA»ú.ê2vG¸6×úÁjï0ž g®Œ8gÀ7‚´pGò"Ml½ƒèm¦i:þ§Q~—”iÑò?´ ®41Ç*ÝÅòÏ9r4ª{/¸¿Õ–´V7 ðf¦œbšä°É=dÎ{¼osLç%`“’‘Wà˜Ž ”8òç¯ ±Ýññ„èÓ ¨™W:qGæ\<"ª²¤øƒøþ$ÎÊZ¢ÁÑ\ºŠúEõÚ·u¡x“OÓP,E‰(}ŽÒÚ jVµ²–1ÆÎkÌK^y©Ž=l¼¾Œ°*ŠbþÚ©^°Ì-Þ2*kÃGD¡¡/I¨&¥Êÿª\(°6×uÕÅi°YÄö¹^µ´Ð®sÛ%ŽòôV’ˆÓéÉI6o—ubv¾‰n3`´C’g—Ï×J¥ ·—¿'Æ5%ù+ôä¤j Ëf©¼£Ž NÒ {Ã0÷ÇΔQ¥‰ô‘óA#˜šµD§s}=š»dq2ÊĦ5pÁžsP;ºª|QN2r¾\ž5¶w(äPß7ï ÷úP†‚{J2Ij E!¼kèùwðÛÎúÛfã¼ÊpköÆæ£F#盺¡æ‘8°Ÿ…É„'X´½’¤áuHéÔå‡[‚r(ˆïCœH.—z:³Ut¨HæšR¼ª 2ù‚D¤qº&Èäviz:ª)bŸ±\~©C:Ñh`.õ°Ûo$@æ)!­1‰¯ùº—ùÛîÛíù†=ÃÚº&¨¡Êq¹Ü;=¬ý5Løø¨Ó ˆ„‘Eþ‚¤0É’ tãKS¯DžËË&!¤yëaØ“Úõ4i´Qö®öpµcóSpLÑ&>üØw¦¨aSŠÍKrÊ)éÐbÍÂí0S›ÂVQ¨B±if’3–¿Ø5Œû*< ôg&,ľ?ËÌW­*l¶"j%¶bh¿p V8K¤ü»‹«­×¿-\ÛÞákÈŒÚë‚ËYC,׫òyôDûJ4êIâñ0Ü:!p‰ Iä‰XolZçl@’@^Ù¢÷ß«Ǧ9™$m·™¤ÍïÇ^Yaçû?^]8ÏgˆÀ¬|+_5…+8zÆiÒ£bBÏr°W¯œ<š’Ó|³DÂã–·áno½ž¯º³þÃ)óN“êdDÉ´,Em¹°]ÔÆ LÚ¸RÁ” yqP:££ïåÙñ k‡7};Ö,O?­JŽÑÉ5MpAÅ P²‡Ê…¹W9fO=¾Žešsñìn"­yc“dçÕå•õÀ:UÏû]¼äñÞÇŽ™J,p²lÕ¬NT?Ðj'&¯\L—ñ„[Á‚>ù“†Ù¤¹ÔŒ›TG¶ÁññÁ®ÙÆX8n%¯Ç‚C× 2.܇v¢íˆ„¹p%í1Vû2`B@_zã2”å€3ßÀh1òÀ^D[È+œ§Î×S¥VăôÎÂÍF$‡›n(yaæpÑÓ"¬J~úÒ­&ç ¥÷R.È$q¾’üñ;¦T©kªV1]a$^[k`•Ež˜)É0¤À]äy/œ„Þ0|EÝ͈(‘ÿÎYðsz÷žÄ%—4`´¢néÍ )—Vé˜%‚v|QŠAE¶St(]ŸžÙ£Û©Šî!+áÀF?Rtî 2:]O„‚ðx‰:E«á›eÚ¸W‚–gêJÿöÂFk'­ÔOqLË É.¦h©êÊU6žÜŽt«êÕºÆ.ґͦ$ÖqHî- ë2“*æCž¯aDÔ厡$±9ßÑ&’ôjLà1¸ow^~¸ªR}›xdŽ(y™…î ¸—Ö¤è¿Ã×z´5ü‰—D'«l´j¾ñ6Ûõò¶çOîC„ꄯ‘Â%þú¸OâÒĨ@–´¨sCW{²úžßÓ0‰Ä!5Ðü“Q% ºB#°³´`c-Ý’L@)´P*·MuàÕ­2¹ 8 3(y<[uÁ2S9%Â-‘Y¶ê¸4±)ÔͧÑîT.x™\@ÄÉ lø<á+wTÁha»¤ö’Pa¿·š?uQóðy ÿ˜kx3àjçë;øÜß\_³¾µ,¿­9 ÓU…“e±µÖ?ï¿p¯>».øÆ¼iTiF,´‰Ì@ݹŒèä91±Çìµ–ÙBL}˜8Þ ^^ížyý²´Ê¦¢é˜ÔìâžC1³ëIÜ‹å!y3ºÕ,ûþXIÐfÌzy\fCo˜©db·†‘ªê6Nýåݾ§µ„8Óõ€½Äæ‚g.ô`š¢Ó€«ƒÛVΪJ8’@ß@ÕÛ½Î{¢¢Œp¨Ux—FU¿(‰ ˘¯,4~4éÎnMøèkÒ¸¶væc *Ÿ(ö×UÒ.D ZõÃ?_~yùçKØ;ªxšï¿ï5&Í9K{هŋRêñ!u7áfAò逢Ü7› UÕ÷H§ü­{ø™qœöú§§ ú%ý¸yuõ«S‚­Ø{X«á´påZ Ó‹èœÐב¼ï`o08a òÿ^¶Õ¨†‚Ë"I€àOÇlŽmH/ºY‰SžÜ5|2¯ÌÔŠÇVÅΆG€mœ"2hRŒ½¼¬Ó³iø¥L%Áš>÷bü¾òh¤HFÃâ)b‡Þæ|B¬ó6B©ÞÌ[SÛ 1{ÑH5 ttW Ì}ÐÔ‚Í‚Ö÷ £Ý jx©`Ô8Z¡MÁʺ+¶Z¬ÓtV¸§ŒÍB™VÑå™þžÜ¢È:n”Ëßx‚·ê8ñ$"ñðÏô„ ¬ IÅe~eD¼<¼—Kœb¢>ÂV¢§èxƬ.À,èÅ*½p0­¼~$§A 8¥üç”ÔY‘§=’Ÿäé«Ö¨*b·|¥Ë8žµQrdšì6{èw^Yx²`aä¬6ÖÛ8Xë÷7rPÝ7o^{¯æÐúÀtF =âxˆ†IÆê°Æò`$0Ö$pâk˜l·´ñB»Ä8{$Åêú= :GÓ’ÖÐsò!†|¤î© o·œ£ÑŒG·)^X_­æM)Ö¥“bòçvõF&aì’teP ZÕ Ù2ñAÁU>”^ËÐëƒ/g¶µIÁ”W[ñ{Š‹Xª‰v¥P …º®´…äVýצ…19ŒhÊ}ÏUll,3²Ç“&‚Ciœ‡å‘´tß÷DÒ¢ùcGxzØèh–17­Onc^ÚÝG „KŸ’j‘žÏ½xÐߨ¨H®™ùÅ™ÂÙlÊ‘EpGשµOÀ©A'KjFï-‘í`1ãè;ÆÙìp¨˜Ÿ–»Ê © Š qÊ",§#Ò]6ïcËÂ=pó°Ð/`eµ%qIøÆÃ­<`†¨ÜH8sÌ Êó= Tðxê8=DµœC¶ õÖ¼äØtUXÈb{,¯\ŸÅǨ0æ¨Zïó|VX•ÊlúvÚ}WXOímƒuÇ‚ðIÝhM«c¡6ke§9j^âGO$’"`×'òÝØØñ6²—-æâû¹1KÉ&,¢rFÒ$ÓêÛ­' MÈ%r nXùÎ5`™T÷à°{ùñ¼#Vö{|HèPSÍщ¿îýtöWÞÒ//Œâǃ/¡òû2q¤Ù`fØ÷ªl:úU¸9‡¿Àeki(±÷šÓÊ"•™1@ÅN+…»0nbã–ŽÒ\›Hjê”8ÎLÜÚÔPž`œ «r¡w•A¾EB¿|èMÓ £è±K< GŠ–xVü%h@{î  Ø]5ìŸ^¼|·µ¹EŠ@‰Uì›ìΩIÖ.3÷ .ÃË"(³*—þε†=ã…1ðãJ¬åósz*ölðgI~^ö”ÂÆsåQl¦¯¶×;ãäÄ³Ó ÇfIÂMåƒä°2¶ÀæNLÛ|¥búLîî`˜Þµ|*}>‰ôˆ…|¡–n&VYƒ±ê7ã­2Ö»f-Æš;'‘t0ChÍûU9 n¶þ­„yy¤£A«pjÞæ8gé ‹ÌDº‘Vüù™¾þ N±¯RÝ/†Ü5¹}…Ö*ùL>ÿ~ä“@sàÔMPÏ«Šã0Â)b4ªp¨¶1j¯Òþ%Ѥ‘BúP­ÅŒñ´_ÏÁÐZ!WÀhÍ*!>ççU˜• g•dšÆî™òÇémèß»»$Ž+:A{ã´à &Oâí2Mµ)vùdýÁL[ÿÊ™¼IÃÉ$},ݹ]b ÜA+#È\3I>kÇa’„ùXÂñ̓;x»ŠX¯«»’X9±J~:²ƒiµùÖÛ˜ÏWM¬;f0Í IŒ_+â nº#Û[å§“;…[÷3Erµ1EÛ¸¤À©‘l”8|8`&ë°¨C„¬m3c…ÖÄ¡7Ÿ?ØÅeÛe_Ú󇫴×s•M&%1ñ<ÝݸȞ¦ÓÑÃÛG3–åÙÐPIñmÓ»³`Åv¢›9Ê‚s‹†À?›†R‘AàN—#l™tLÜVv|Ì3ÿÈ®ŠRRE|Á€Ò4ÀÖ>žÀ¤«ŒzpÔ7Ù¥£yËø7áŠÒ}ße§æá4œŽaw‘n¸;ó#”Ù€1y߄ص@ ÎÓ{’ÒqÒ%Ä‘¬©âÈöÏ«Œ^l ^{¶íLK™êÇ~^N%'†eêžXW^Ù{VæäÃÁL;—¡ÔC÷ᤡ¸šÓù†¿t"jbRw*™ÿõ`lQ|.P«‘ä!<Õó­ö»ïR.Õº«è˸çßäÞ\«_µJºÇ´¤ÿøßSš™KkU’ÈÄù{ª\v 0„HÛ:í‹@‘„åË¥ÞÐ^òü»Çïn³R-ŸÖ7ÑÃàIô°ÿL¿szHý‡©¡®KÜŽýÅjÚµþ/_úåòeP 5Xª}Ùgºùqt£k¾%ŸE©¡nÓˆþZB<ÊÕÉ{ÕOþEê±¹ŸY˜à”Ÿ¥„ªœ§ðâ蜑Ø;$ÞMË©„¦ ­¯H,¦v7º{•2æÒ#)$,æ×áÛøÛˆåLkFF$Íü¸UkJ.K–îÉe±Ÿï’d–ÜþÔ7j½Æ[ýûãœb§ì-bçíBà=÷#ürÈ_#Zì’²¨‰ú³.bL AÅmÓÜä^š7ä@ˆæ¢¯e¤»ìç4]U—kWWý&LÍ©Óušé—’@ÉÒ6jÔH›þ\ûØ5F4¥Ôê@¿h=ÜdåT³µÎ ±Ó5Ë2ÎëtbM.°yÅñ´´”ä&ÌÒ$¶H¼œ½WåAÜãmØç¥7jâÐ{ÑkÙùâ•ðß§ñjÊ ]d´Q35A,-ýé!ÂW¹çß[+|6QÈ:éÏîH§=¿LBþù±´{À¶·Á 8[sÑ43fâžU6©úR3aêböŸ«^ìP‘¾q?"A^bŠ¾Ò BÝMíÕ'ÕÕ¤e]¸¯Ü× Vî).Ú«¡lpä&ºèŠ‚ñÁDïWµV-'926 —xÍFÁ„‰Íj,Jþ¨mß,¬: hë(ÒØŸ†el„” óÑy}%¯0 *€_$Æ xt¿ªI9 #N2¢¥ëë^Cñ5´"&Äœ¨ì>D›èÅìxžhø®w!Nb¸ª>ô*¨±Ç®ØMˆbe*¬FF3”=XÍÂȽ­ü.[¶ÄWSÞ™’+ `,K]é9 ©üÃ3_Ýmóî8dïâðX+3ŒÄK1dj3S@ à\’áthyXsKÊ¡"64Š˜€ÓÀð­NÕ—¦aþR¦ã劕Gõ´ŒUoß¾ên®¯o¹'Ñl:vÿW’iF÷ììÀk¦¼ÏtqOGy $Øøo“úko7 W}»Àùkš¨•WØöNóédƒf³'‘ÃãŒ|ëw rÇ£‡šF%/=ЭÅ`ÓÓ ”ÇÐò9mí\ˆ(Dcľ=ƒ~¼Ÿ¦)&[‘¸}ˆ)¿Êèq”‘ÊøhJާ[3…‘åxù…“:I¨tüÖs,Ê2*þ¼0pªcøã<è@áä¡vùÚs÷M]>s†Ú'ËéÜ1I³Íz°•1fNcpÈ7h¼ ˜&w¸G}𠏉à€J|MÓ¾*ˆX^ïÃßÿ´—‘pºG(‚‘æt<*¾ÐKJŸÄýÒ+{ñݸki…‰Š$& ¡rî¢g¼ž>Ðä“H°¾wÆ$×üðO,-9"à`×ð÷¡FW)M4qØ‚ÿ.¶¢-å^‘~:0 µ}nµ’×Í o¹*ó}™Ò¡$Ù¸!C@.vÎ'A¿Ð!'„]‡q¬üÅÞ-MÊM} \ï-ÇÝÍs½Ð-û×öKÌ~ìîB†èÙ@(Rq‚0eVà®Eá€á–ZÓûí eÖ'’8=äéU*äYŒÕ¸téaaœÇ¦!Ÿ*ÕýÏR‚ºÜÝ¡¹¾xÇeJ²êˆnHg ~Hþ¶d^!Eº ¬Ýk|YÒæ&q}lÝëi¶äa%Ý]¬íɈ½¹[o{>m˜x*vÄ6æÁ¦{hšãñh¤S)°ŸiÚ¡»q&˜:‹ÏÞS$Ðâ|b­_ÉâœY‰«ÈÀ!± ˆ 41KfåLeÙÌ"åFí¡¿Ï=)ñNt9dh#¾¶Œ€ p¦%-ÂßÅFçª(ØÂÙsÅ’}pT¯HµU÷÷iDÇ›æ+ËVv8ÌhWÓšì& b!êû·-·"‘9rИk½;Å÷%í‰Ó| kœˆ9YÒÄV6ýkéo7I‹{,.Ú‡ˆW²Æ°Œl/‹ ®5_ð¾yQ<Â(-¾h%Û hÍvH£’FÐYç«{pz\xä*~Ó‰8Ú8ÚÍ›NÂL¹W{'ßÑR¨Q:6"É(ó®§ÿQMuM 9 y*è‹G7z#”;ñT8™ôüQ+Ã0Uˆ^ÄÒ®§pÒ/}Ë‘×âçü½X^¯¼Qœ\&0ÂÜ+¢ÔÕ€4V^!_{Ä3‰GUÕ:¦÷“ ‡ˆçP‘bØ’ßþt¢‘<ŸÐXfA§öA¤Ä öÙzQÕ˜e‘‹3ÒÆ¤mÅ$:aÍ”Mí0OʼP7ßõCZæÃz%13½; nøSïž&hê“©ô§wÿøŸ€±…fáÿãÿP8HèX¸'•–ám{¹O"sÞÕy-U‚þãÿè5<îÿw{Çõ@5c {#™¥`©¬J_{Á¤°ÊÄ6¹¦…ÖƒäZ…‰˜Äüa^–e¶1ÆK}Q٤Č©[ÕƒÓ¸õö§þ”TÌìTˆ‚´¤sq*ßÿÌäÍÂ*ê—ɨûnV&îL0u—{“(˜6Ý¿'Í!B˜ÚÞêlœ¦ƒ™ߨös»{IñÿR¾ðM%(S;GÃ4m¨gúLç÷átšÞËBAò`èe¶¯ÏwI˹¤s0 ðλ7riAyüÓ_JÚýY–¢4EF,PQ‰ÖIê•ÊlÃO§v£$ H‹“Û*Q‹ö xd‘ÏÑýͼå›D±ï¾*¼=Uy`l@[íÈ*[ó Mµì|ˆR!-à³¥¿5J,WÀ\QÚžgXç¦:àHJ„H€ƒlÎCòC_ÖÔQüoõÊíô½o{åf›Â²žþ^s‰Ÿ[èè¸'OÇœ}hë»–öQËùô1O!^ÿ8[Ñà¿ÆT$–"Î{Š©æ)ñó€}ÈmÚ‡œgûг}èÙ>ôlz¶=Û‡žíCÏö!ËNŸíCÏö¡ÿ^ö!.ä®{¯w®,# GHr ªòGsj·,m±*¶ñï‰ÝA ¤YÈÇûj·zq…T¢ Q‰Þîð¢_3FÜ6_ÿ;íæÞǾÉ]8äè§×Þö&Ð`æ£QŽ‚4Á®O‡âÈζ"(¿Ð¥V úbJØžkb§-¸Í–yëˆ|U…]q¬Qš|.wd@ì,  £Ì¡„8YãÙ¶|nŒg·¡>ëÊcZ`B2í§#”ñË£ßN;î JØž^\tÜßÎ/:î¯Ç|U§W§Çôáôà€8è #å ‰LÝÓË}Ö§ÓíÅç6º% Ù¸ D3ÖÝ¥± ¡J½> ’Ø’¸*¨â©ßiÇ=.¯CÔ=ë¸ïÓ@M:£†Àª§Q¡^¾þ’ꚯçC8ÁÍ£Y<-ó—GÓ_/T,ô_žijN 5ܽÜËÕ8ì í8wP2Kå­úá(V/iǬÜfÀ¤uß©ìF?>\õ.%.¸…¬»7ÞÆÆBÉ;„XD ‰f •Ña‚ ®vñÇ`¹L ßè^®¤U…×5»R÷·!¢»j<íÁÌIó®ôIøú2Fæš$mÍ¿—ùåõmÃjf+~8ÍqbunޱóõWrÍW× p€ƒ2ƒ4ÐIB‡ ÷i![wSUˆ»Cë3Ç!P?ú‚X2=ñJ¶ª >Uã€35•†M~ÞŒŒ­%O _vQ‰ë—F‰¡†Šro$î½›˜_ÀÔ0”´4­˜ØÈÔ“W2i€¶¤2ö²4v†¿Gÿz×R…–Öúå´¼¼‹£—|§wNå1u5Oú± ¡¶¯:QzÛå‚q^J:!ÕàÞ [z©¢F¹,M&ŽtûRþxã%Oå)m#¹È­AŠÃ’Α&L•«JýÊå§`Wàxp¿Ws°§°„8ïxÛÈØaœÅ·‹Õä@צšhïÔ`¢‚š¬…?îTJgâÖ:/¨º“°ÑIÓ'Ðql‘¸BG‰¦s”8v‡¦?Ïoú"ˆÅ¨½Lû¸§¶H9ÊEºòxˆŽ‘)” Ê‹r8D¢ÉM¨¢ªaUô Á2×ìµpØãÕöV¸u1V_…™e=¸)àƒÍŠÐà–ª)¼²ì¨>ÞûOÜ{ÅÛQŽM}aW¤Ø¢.»!EA>þ,`++hâEÞK¼ðFéÍÓ¨À¸)WÒÂ;ö47<•îÞÅé’tNér¥“R¼Ö ¯d;ÓÒ`e£3R ?‚¯Ï9hZeªüü¨RÊ8ÀŠÑ…?ŸóiŠ‘6ž×p™KV‘u„–‰Á¦Ä–g°sÒÍ_š111O3°®û šwו5­^Ív$"¨üÓ—{¨lûÈ ›ô·½Â _¾‡ β çt˜€C…²WfMmív>¦U}C\ßÿ9—ßø‚ ƒQK´O'µ¦Mï0bl„`XJâ'£££†»ð æ­ ¡)¡÷±§¹-É6˜qáyvAÐ$äPÚåN#Τ°lÍ ½æ)äTpd,g3{à™#Z‘𤬏¯……y!’Dmˆ†¤ a5±±?÷MqBÀ­ó‰Ïœ)äóv&uøJtcÆ5b ./x¾@˜8|ˆúÎa¥A¼s…éÚÝ,ÔÊ&™9[¥]d<ªKŒå{:0éIâ89¥ùɦžñSrš³ÔVä1·¿XÍÅ݃ ,U“â¨ÞT=¯gc,%¿z¦ägJþCR² z€'¯ :ÿJ€ÐwQ7f¬•ü1Dî"w-‘‡ÃÇ‘8/§¨K•Ä_—Ä£»%n9•’fI¡ì Ç®ØåœcwÝÛñ6××·×·Öa×zã½y5¿n¬H±Ùðž^óŠîã°”£¸d‡Ü|z+CïIAøöÝ…½[7ïn”q_ Cf©Û?zº¿‡ ‘¬7S$…§^8ˆk—È—½þ»Ó¿î}ÙC5FÔá.c ö®§uËGÏ4#X¡ßlîx;s)ëI˜ƒvoÔ¦>ÞïkaS/%µ?AtÛkVµ7µ·0-}p¤æT¡2N£=«uqjPÛç£þ^óç§«áà§³|¢Q¨éÓŒäÑlœŒÐÝåk^ó—¶)#]ÒgOùÞàñIÓàDõé o{ÝÝÞôvæL«§\0`Èù³,ÙFŒcíÒ]R)Mö£ÞÃOG}áÖŒ ¿±‘ ,±ïʼÑ< VÅ{1>¤ACQüm³ç+èYâ ì$AŸ»Q@(|ûÊ}½ém/‰ß;¶ÐZÕ|ªfßðÑ$S Í:ŒÜWÞ–÷Æ{»Næu%Z¸î±Tà ·RE\Vå^j Z€VÚgÕ5“½_™Œ@˜þ6b”X(¤Æ+}¶aîMt.,hà °‰9K-W7ädh®.^ž^°>;k–×õÏè­ßÅPñ“D€urآꡚÇk)F+ xsxUÕÚ$°ÕÙsS„„C÷[5Ó†ý$ ÇO(8oꆕٞÂðd±ÄÄE –¨b_4øt\(Ïéëºã®Ý½`èß—£¤ÌYÇÍ€¯¯Vø kóÓɧÓ’"âÞ˰.“JÛÅóóŽÃvÅf.í¶zþ!u)´mžÀ˜·p[°p¨’–à7\ð_à0![ÏQ`.©ïT†È†]_ùS&±îòD§˜çžÛ§Ôã(§?óA8ý2¡Uíu1Óˆ^ÁßÞ jæ- C/ñØ-6,n·PˆH§ëoŠQ†¹îâ›òÈ˸»vx|õÂ= QLå¦9äÝãã«/²½`’µšÎšk8ÿ0gþaaÒ²úal0‡:Um˜+Ô™Hß9È"0YðܘI@>L쨷¶ ŠXqŠ åQJ<u|TSV‡ ðñµ{â¡êcÂá‚€|ÝSQ{O­.†SݨÙÛÞæ¶»EççRã0±œC-⩨)îÕlZ‰_lyÖAÌñQ«Ðé€Ëß5]ëP\@ÔÏŸS‹âž8®~6þ~[fÙœ@‘è϶'‡Qc5 ýJßlúˆ¸6t¥“^1?TF-²J!œV1WÓœúÅñßÞ¾¨¬Û¾Àµ²Ä4l@âV¯´JV+ ¹âZbþÛ#ýi¬në *`_iîþ5%e›Ý\hµ|ÂÂWK¾±PXæyÍÿM×¼Ë3˜5€Üæë¹'îÉ“81ÏU¢FFôcÓ”e½xÛKéG<ÊÜÏßṋ51'8âС9œÙÛóÃYWÁžCÐHõÓ@lÖÿ[ÓU+Sc“Ko™D9[„Ý´:so&IÑ%A^HS¶MEµk[дå~P€õN8ì(TÆ­‚ êÂS5upOÇùî•ʪ·vËÇIÆnTwÍ£ž¸H[ã"´Çéº#ê]Zx£ûŽë£û¸>¨¯øú ¾¾Yý°)¿lòO¶wóë_ñ›’»¢ûÔöFñÃ}ú£þ+=¥õâ(øò¯Í—Yó®‘£äiþ—¤Dnr6VÍ&Ñý˜/_¶ïÌLë>C?Ù’2íià9èð›É¿ôV¶I‡‡¾"ÎI¥Qêî+ÄÞ£´»;Åo€+=ÚÖUÀ6i&\yj?B@* ‰3(0$1u‰ÓzPf£§¡5vâ<®â«o =lÜÿ=Q‡ÍÛž0r®ÿ+–žu’ëæƒûƹãj´ÿ*tge;´Ý[½àé@õdË3Cª€­‘\ Î(r{o6þÞ&î¦BâÖcé>>FrMMè‘/«qx,ñ‡6óhì+xþ§[R#óÓÍõ×ëîÅÁšñ,»k< ´÷s$£Ôû(·¥0Ýh0}cxö4ßz ÉÔ­Û|È áO ¥zÏ!)©³Ha¹“8ãæúÖºËÿkôj–‘ ¾QpcKa°éƒÔ‡MæÁêó†&@c~àõûÓ.[œŠ^6 Ÿ¨9'¨œ´¨m:‰íÎrùð‰[u»Ç¦|nbÙ9hïáŸSÙÈÄÕ¡0lyVÎÅÇþéo -oSÚÍ„/[—“¡¸—L` k\24ͲôÖÆÌrYðª_É&c¬æ« §_);õ+`(ÅèÌÖ‹ý»¬dÔ™'†0}›CÞŠ{¯r_'#ïÓ§ƒ‹ÿ¨s^¸Ž@!‘ˆ)!•ÅÀ8Uöq¡ÛóÜ/iPO×·øÛSHiB¯ÎÜ‹Ht&_«Y/G̤¯=F—×(­•\{e^£ª¢3$oŽ"UÁu0C6]–=ôƒÔSjg,£Xêq×@"ÇñõË!¢_°Ì­ß§ C˜ª¬Ba¦Þš´«Â©°•â|ù‹Ñá˜Ff¥8&€kUñˆ?&V”ÀåùwvpÖ”)X>2™¯ÓQ6­ï@£…˜ºYį"LxÂ:UÓrà­jÏ3lrðc¸šÍÏ £±ÂÞK4 ÙO Qã'§SõÈš%ÄZÈÕwž)þÇRbñ<³™Ùbõ…•˜­%Û®r¸M†Tˆ7WC´Ã5N΄|9ý°µÙ“µáÈÏö÷ÔÑÚOÇgWïê`ª“”^—¶êOˆ(BòÓ ãßúóŸÚÉNÒ:Á§X=$wíÓ‡ÓßÖ²/:Ž Ž>ËøªêçtÅÜ”ãã‡+’IÖ;îÛv®¾}#y2æ<7–ü¡Ü[1#³¥Åaã-R{øÓà·ët›Ó!<Å6,gŒ2ª(“ÊÆÖam ¶Á`•ô!#¯|{¡Ò¹§Ð¤ÅšQ›î¶‚bƒµwTNg=îØìŸ–ÏÏIÆ£íÌW0‰ÍËrg §ä1µn‡?Ù]Yw#…:ZžLio3e}“ÎËÒ:T>²p`˜idEݦ.즤`)›K»ÚX×6,ùÉzO8+wTŸÍ›¼ _#‰Å-!&±ŽÊôgBû04Øó8+–!ç)©ÐF6M4ÃÕ ù †ò^Ã|•¼ý_§=ùó4q¥Z†ŠÛʚΣ˜=¯éqMm îÒ}ú(œ>o¹ÞU6úZø|·ìØZGô—FžŠ°«åÈŽuÌlõvŽeµŽsZ«X\ ¢ “;}£ç²qXæU ¢Ü¦ÖßàTEÒò*Ù³NŸtþ‹È»ó y?Žº"n˜ù‡£mñLw­EvË[÷6ÝÍWoçý2b†5À9t.Ö ¬•¶?%Q¢ŽO6­mz”õŽu™Z77wHl7cM‚)½[Më¹PÊH°ÑÃÏD슃³Dc3D¦ª' ŽËRe]&àwh¹ ûèn³ŽÔÅÅá×Ü1W2ß«xÊ^Pp£È›Øïm@¦“ åÁ¯Ô,J±2*øSËóØ(€§É$t Ð2ëß¼Þ\pk\ÒÛÝö¹6Nu È=¦hGJ3àpÑ0-‚Þ•Ëiª6ŸdtïfØhŽL·âO}¿¤UäÜdRù5 b$ÀÁ€èжœ/Œdª”4S)k(a‘î5ml‡]Ø”ŠåÍ8u„6‡–eWZso*@+· Â’4 =»$¸«¨,X²_GÚæÜ ^µ0Þ˜ÕUóDš<ˆž{g4è½³OWU…IëTz|+Þƒ¾Ü}Ùͯø°ÑSaÆõ±+úì#ôüºµB˜ùŸ{J@»°ƒGY8qߥCFÁ$ñxÒÓcþVÛ†.25Q¤ô_”I’­ïNåBo*žä&¢9ñÃä0>Òæ2í*¼¡3î^&ì¹ÓU!3Ÿ3©i’£¢'Iz›¸#d¸·î#ÖÄ ‘x?bÛöˆØøà’|T‰( L˜à´Jª‚ÐHöqx†c08ŽZ‘°y¢nALnŽ€ƒxÀƒóc%]c„4P“ÀwvsÞ¢“ô€X‰oÉò‚$•6{Ï%±ËnJ´ŽØT5 ³¼0×Yg’<ªŸéfùØùדº‰ã³i›ÈÇŸO &\&ÿ˪nÄt¤vï¯u ®áQÜ…J˜ôš·ÐSª¬ðÛ@‘»g!=ÉôˆN $JD"]l,‹¿¦ˆŽÝOØöÄq§×%>͵!ްU×߬¿Þä–óÙ„Ô‚1s}’É™ìœm­Ð'ØÁQ; ÕöË,@ÂB ôÓ4Î-éʨ´ŸÄ˜éXËÂñ¢V™ù‰· åÌî®Ã’‡ƒí} T©S§ºh ãQq ÎIFt”Ȇv—:@š:†Qs Ó‘‡#=` u"Ÿ"·È‚çY3ì”C¬ÙJÚÌìª!09‚!Òw aäü&U:¼(cÁªÂà"‘<`#ÎÍ<¿0¡ ö8inM‘`!~ߊ9à –Ø«æE9®ì®Ž}e‰.ˆÈ%\­=¤4Ÿ‚ tÎP~r‚Í!Qó° ›9ÈdOÁg¸Úæªð¿ E Ìýâ¹£ü¾P²§ :å§µç¹ÿSiÝ(°5Å/±m=Sü3ÅÿQ¼¨÷òøf±††^…–˜ ­5àúÜ`:µVŸÕ¾ÖÇ€óW¹±’•ψ"/ÖW”Ý¸Ô ‘Mmjû¢¹Û3ÇÉFtŸzýöõÆöæ›^™èÉ#7¡FÒºzÎy[`=oy¯i!–%ïµ¢6ËÔX-†˜póúx1äèjž¶þ¹³c¡X™=5¡K‘&7˽Dd½•acUØÆe1-WÑqk…v|óÌ"Ùw¯éæVÊ,”w+ß—Ü0·D»·üÝ‹äûÜ O]¢Êü¼P¿ó…²Náª)ÎãqX±K6ekyæì&ß-w6Åâ[†žø­uÝêA:K ©´˜'71¾%›àÅ [?°jÞúïL$á BTxX÷Þº›ëÞ|– û0NNðýð0t÷¢Í\1Ž—mêêÔÙEÙ¶@½hâן>%!‚:¾q ¹{ I;îÿå­¸Ç÷C9ÿ$¤ºznÇ ˆ}{{‹]`>^šÏ/3͹+/‹ìíËŸ<€ 'œ»únLâ1t‚hæ/£¨žHr¹AÏåU—3À1€{\D™FÁϵW¤ã©fhNCq ¨YA‡SŸƒ’‘à˜)ô zü4Ìj•§B þi?ìҌר V×èòR8èe´RíÂÝ•Hn¾€4OdÚXxš2ˆ}Ê€$ñ-¥ˆŸ—¶RePf챈«öAzãž=P÷f7Hozì~ò½[ÞÓ»2FT=…JIýÜôèÿîÎŽ÷jŽõ Î]¿Ð[–ƒÙ\H䂘ÎüsŸ¬6â×a}gŠH—‚ˆmt¸J~dФÆüjªIÛ‰Ã{Züt0,s¤p˜a®άãþ¢êŠƒT2S2mJDî‹vÝÃ2! ýååÑÞáùQí!'(ò'™®îø'G •ˆø¢U†Ì3R×rÅê,= Áø‘\ñbs¥—è[_åE¤ŸŠJ”¥÷:éʲúà6]ÿÛæúú›õW›[Èžóa_”÷÷¶æÆ>ßc—¯?NÓÂ%ÍDºÊ¡:Ç!*>Ú” §Æ¾Té§»Ÿ+ýò'%(½„÷5…’ïkUº»#{Õó뫪à3‡Åê1uæïŸb-í³Qý¶õŒßÏ›wó)-ߺ·ŠÞÆëùÔ2.ÿ…2&¥y`Cû¶›¸ÛG?¥¡UgÙ¨"@ØòÃàÏ||L¹ã¸êØ±Þ ~¬)ƒA‡…•J­ØB'±Ä0œù¯ “S… nG8çôc¡!åS¸¼ËÊ-¸¤*a³Ç:ŒÕTê£KÑBm®³²¸wÏÿñÿeä‰Ýˆ¾õ$?Z„ø!°›ê0VÑ+÷+E¯KmÅf ã4oˆÀ[‹BŽˆ¸b42)*Ú¥‹‡m[¶Ú╹ïß[h„Yq“MeÞöœ¼È¹NùÁû ¤ÒÂd°”ãOý#ä—uK›³çsõÉí4¸ç_Œ³´ èø¯‘V3TeT¸kgYså*0ß#htam͸¯DSÚ­"ðcLü“µ9;ÖæœÂÞÉx(æøý…áEÊ,ÓaŽx—µÑ¯.,„Ü‹Z³Ä¯¡cARèZ6ãDUiƒ‰ I%1}ÐÇøÉuâ`(Uh»—Ï ©ož¦AuóE4~ÉãýEgî Kos-éô9Ñáhõ?h"¯4º»‰ùT?à±Dqsorºß&‚'çSgO­±îs]ëøó—s›fð»ì±Œ_˜n¬€‡ÑÖ3oT ¼kI*âýMM RNã²–¢˜Žx6ò§Ë~«­Ü »ÐØ0Õ^Á]tÌ û»YŸÐ wÑ#ÂÊ÷&7 ¨Ó ^2°2>Æz¤{÷üËùªàoœV4£n#«aº`õô­‡/O_°î¨˜ ÁÔ™#~›Åœ•ÈÙ ŸúûîñoÂ)Û„©uËäÛÝl±:„í6:itpô×.º´À,*wš(­—¿O“u0§¹¹¥ª[4‡&7éDmT¦QY—¼áJì¨NÌ Q‘L eQ£T«AG”`íU'%eت§Ãe#„ÅÓM…SLƒ §zu©öÈ¯Éæä œºpºyÀ8€Ñ?º ¹.÷þtÌÎ9"ºã4@²íœ Ò„é[ ÃL u:v}eJïpj¢ ’!lUžÌKÆ+Cl_P×¶:.kRƪ˜i3l¬œX¤²¨ê¿–Q³ÑJi‹˜ID‡H߃ž–ˆÑOJÃ"ú 8²Ã`§Pl6çWR,Ì´t¾©³hÒ¶üº‘5iT¡bÕ£èââ<ÕÔhmãíëõR %'àdÝgxgõ0èPî]ÈH¾Ý+a›à‰ý`Jø¸Ÿ$v“è¤õüÖö|DržŠ&šc®X;7iãîçP߾踸¯›¿u?аRFæá}ž… ¡K…SÅ”\G<ßÝÈÍ’Í ƒ‹4ÌÒBn sº°P æ=¢H\,©ý2ghJác_´B™‰Ò?Tq† U†¦Ú‡œ™uÌI@Ć•fF’±®2}CKóE\ºüœ~VtG6²¿ƒ½²ãþª‡C:†“ùÒ×9qúÏ'x°$‡íEQŠB}Ú îI hÛÐÝW$¢g!SQÇäXŸûPTÓ¦L±kŽ3jÑ‚ -×gb^ Hx2Ž÷Ä íëUÚ|‡NÒ‰öUV5«ÓHTø Æ1î%I!rÿ¢àݸD¦`õÛµ©¨½¦'šØLL/»Ð­¼ùÚ#:ð>žƬ“„¸ÔòÂtfV¿Ÿ”YÑ ÿcìóˆPEï~F#CG7ô²ç¨VŠcƒÿjœC\î)õ«âïÂJf@P)Q{ùÐ(´ãs&ÊË'sqž<~ ,‡<®îþÀãú¦GÙ¯Ê#l¹[Û$„,),d¬fA˜S„503 ^Ù4æè…LwÍÐyQú‡Û¾»ó ¥K÷ I³…—g¾G×=g>¯ÿe=ؼz¼ÞÃmçÍÖëÁëá«-ÿíð¿þêU—n!²óÒA~Eó>98p ­âG‡ Óã··êô¶Äqûvcg1øJà£såFc[_GÕjY+BèÎvvàkŸò:O „夰aT :üÁGI`|Ø1 ùr­nÌïéàÚgç´ù‚žHìÔ÷O6µ]Æ/–úhpƒogÓ~ð䱚YùÎ z,w}Pø]ŒÂjoªÞ ]F7îÑý‹ózÿ~/6 ¯_jÎÐü+¹»?#å ‘y§ó¥Ü|ÿ«‡mâlÍbpx¾ â0n¹ƒ#öñ¹%òN€íüêJ-Ö!_Ø~5Õ Ë:ïÖb+n¢7‚îÀŸ`ÇëF0o:âvU/o{5Ÿøê<Ñ_[OK¤¼®Kξ^ó‡ÊxwpÐååé ß'üò¹Æúqpmp`–ËEò¹æö¼ÖUirR¾»¸+ØÃ¥S­ÌÜ€Æ9M|iÖæ‰Ñ£ÂÌÁot&OÝ}S¶E¤/!ù¼N³fFˆ•qñÉsù<‹OšE{Ø~“@¶ì¬}°Å“Fµp¬~ËøæŸ¹£Fµ”‡@×@p C³d sßq§bߌÒtâX¦gÖÅQö †Éæ<èŸP°Sós4?ÊÿáµyŒ?i"ÿå/bŽíoy‰_:{—¿ÍƒÍŸ4^{$Óö²'Oë`|`£-mû¤¡Ú#ô›çv5u´š½éݹ‡&X£]îüÐ(h…~žpÕÚ:κai«ØJÎM@ÆêŽ} Mø^ÁÕÞ©›Ôw/`ndc »;ž¶b•Ÿ4AUò£™¦%kùí 0ïÙ®ßøÍÎŒºƒïóg4î{ÊàãCåúÞ›9Þ 5è´*0ÀA$ bwí¢U'ˆ3$ß|)´ÎÔ¾W0h”,¨z´B YÜA]Ú¼ãŒÇd®–QN¹Ôu„7ñV¥ÿüRâÞ¦ŠØ¡ßÄ!O`Ûá0BQ%¢”›%!5Ç+txü¦nÈ>b'…ŽV®écÓ?Ä™7J ¿ûÝÅö×C:öéi¢8=ó÷igH0p_yo¼uÏX°6¶[êA9ª#›m–oÉÃ}2 5 ”Å‘‚P<¤ãîÁ¯Ã1@lWÝMÏiêò¯_WÀÐÖ€…ß›cÜl¼àÊ4mz>Üæ9êzéž?%´U« )„¸Ça>vw‡ÉpáçSTõâÄuƒ¾ªd¡Õ¯Þ•icÁ/]ø‹-²ÎS×!¾‘Œy¡‘3=Cå¯3¢äÝHÝ.¶ c÷=í¡bÃD>,4z_Ò&{——Ô‚>-ü|.eÇÜsæ9gäÅæÓBÓ úuŸÈž[ äÃ’FB?V%šMuÞ>0ƺËðNád)º²7ú$ Í4'ù-ô \·?ÖZ»–´@øÆÁX!Ó/B”Ín®g¿_”ÈÕÏsŽÞ™O­fß.1Î[è·[;ÞÆ|’%ï+á\Òþ#ª¢žLÆ=gRÎÓç&¨’µùV"Rf:x‹ÄF«ýæÕïÌ¢S­˜èGÕùøªUÂ(™†…?×=ùÓØoã0r?èˆc<§ô¥ÇÐYâÝÞ>1ž§šë¯RÉó„ÿ˜ Ÿt§áÝ ºë"¼on¿öv¶ç%§Vi"T»ïÀÁmä}m—ýRåäÙmiãõÅñÓq·¾ƒªpQU‘Øè”»ÄÆuiŸN£Ð¹¸úŠùÛË®©oÄ¥Ñb}FŒ©Â•ÞP'Y‰Pâ¥(#!Ÿ3÷²ÌsÈ-t Î œ¾^0¼­ì£( SÔ¼ÓÔ$O§à2îÈ¡o$ÑuÞ18NuÓ‰FÚõ<@Åì0›¨ÞÎ}ýó‚^Ίù4¤w͓ܧck_g&¨½Iß—=ìW5Qtâûtúq³‰òbþÖ›Ða äžntíå¡­„—(ŽŒÙ'å3 e\þu6X„h &T° £0žÖy Ñy€€Dy ß|\l†8Â}UF!ú’xÂêgvÓa—«¢4Z¡á¸ŒgÓvÉâp¢†XËz’»u™Ó¤ô#í—ôê*öâ»vã¿–Àm Ö÷ü¡w¯ƒû4Ñ^ûèÙS&¬ñã-ÑXUÂ%5%\æ‡ "É•¦Îe™¦ªhWl½T×ʽ¤5ÏBÌ<ÖÚ|D@e7")mäð;€í ”ÚÒGig=ÚxºxZ"P`Œ…oYsŸ;‹¡3ƒƒrÐqÍa+¦YIÎñH«1=öþʈãÌ%ŸqæyP¥[üN#1bëý]Ö:bèry'a=*¹. µ¹:ù‚d<O]μЈ³„ ·ZoÄ»ïÒ`”3Å'ôuŒv¹\€(RœÞë®õ«ï_§[¼0@0$ÕܤîI˜ýã‹}â@æÚ(Ì_¢ÞFñ`¨Ÿ“ :LýÉ‹',zÓÊ´då°2ß,<>L6ˆÍà`‰XªVv8I«˜ËsåCþ¦Îˆ=9*ܾ ›æñkߤÎ%ðuÆßGñ£GÈ6g;¼¥Šy#÷<ÝXÉ=…4b‡«Ÿwl,\Èä ¿Ò×Ê|:+÷€Øcô « !.:W£Ðð§GI6Þ4èÑŒ\ô”©j/çÂ|=°œ¸ó»”oxô8“0OÙ¸ÆI±oÜ­Åd¢fž˳œvÈÂŒ‰S­jÝ™IÓÝ–<ެ/À ¸4kÀ£yûêÕºSc °a¯PÞöy¢¦ù8e›91»*”bš-µÓèÓúòe0¾9b9¼ÏaýÜöŠÃƒ3@'Öp†Æî ¢£ÇXWPÞ‰}î_Ò2ĸT˜ßSá !ðz6'$I»ª7‚Låa„‹«4ïgú^M ³ãoÏ{¶Ê¡p¹G°ô þÛ+H4ÍËd^(U!#],«ôÝôþž4DìK¯{èÞ—¤°`ÊŸziê1=˜(P?)o 8ÞwE7+.Ž·4¶­7 n“:ûƒ éWAí6‚xíÃYu‚BœQ¥Ž5òÜYT"äP¤a UWÕ;Yúb$Q\ Ý“ŽFÇ’ØœÛN9@9(¿p¤l Éøn„î™X¾ú2ªG±òsÎÎvצi<½pIŸ™æ#öK”^?Õ]C†1Ý|ñÑ¢Ú2×0úÆóòÂÄIš@ƒix´¹ò#×ô4QCUNØÿ?Võ ‹Ô1»§zå‡éýSÄø‡™ž2"L ¬û´ì) þ,)=Ó·ž‘„ð4×M›¦l CYó¾gÊz¦¬ï¥,YÓ6¯ú¿¤~þçÐÛ¦hWX‹Ô"©[”€Ua@ªªûCëëTÅiý±)kXLÙg»ñÆÝx³á½ž£©søG‹1Píà%»º°u?0y¿mlXa ¿°”/Üà·n¨äA <)&ÌhHãxТãÿ‚".Ô©JtZÖÀ0´~ô#[‰ÎXçÊÊ)²V·ŒWoÈÈ5­ïîßK]bí+̺…©³ºÔ 9˜ïfÖ÷رÊ`-ëù c2êÀ?̵·¶0MÌ×…‘P%0ËA–Në~c)¹IÈ$Ÿ$&cÅjÅìf·ó**ÚgÄ€s•'zq À/¾U7OD©¡©°ºÃƒdò€ö@·~—ò€öæC m{Þõæ¤ÒÏ÷Ñê,¥²rùi¿ãžž}”´°¿ôÏN?|úÍòHáwiލ%ìO2øB^çñÎ-xw€’ÏDN]”~è„ñW±oZµ⎭ÉÒ¾(Q¦ýÚ’Q?!eÍ [Ür µ>‘*MM5L%<,b©ü;-L{Ö LÖΠ*€ .½ÄKÁ…ƒ[=:èQÎ |²úG–q(È(+(Ã@ú60Êg¹Ø¹=@‚Z³Ž:Û›Þ›yÚ“ßQ/ÄŠÀëe}VòãGzÏH”´\Èž‡›‚]ãä¯6:‹8Є£4P½?TqÖSbpt 5q¾ç¾'Lõ}WŽ“.I'¹yýáÞd¬ïÁzË€À÷E„8jÆž¼£ÛŒPŽýa‹‘ñQ¿©ŸÌäÜ3x}í8Ͱ`1)äP&Œˆ,ýƒÓÓ:tOPÓ¤ðŠuÃtÊfNƱˆmŽÂq×å{-NØaÿoÎÿakíc¿XÛ1óUƒÙ&½2ƒ-ùÎ1ºï»Î1´ôÓ¼,¿.—êJÈÙïÕ¦»E\v2öãÔD)×µƒNê.,2>\@´`òَí˜u[÷‚>öåc+×èáR°ÌÖuY°‘†‡ÞSëe fì3@égq ŠÝ•k^ãZ/öÇ^ž„5òTH"î~ŒP` gðÙd»;弑¹Ð§QUåë„ToÌÖ;ØíŽä[Oþ«êø/7´|{Y––ˆ:Â7Ï|ë1ñ†ARuhÊûÍŒöãV5#Yö¡5…{œë¾­XRÛf鲯2 –0LºŸ= ¼‡AzÃþëIo4 ½ì Q /˜Áƒ/X•»Yõ†W­ó¿M¶ËIµ5Éõéò‹¹u ûé°”d‡z -+”Ь#q£yq7ßîuÜÃîææÖÛ·@¿”Ù¨ãœ0LÛìÅóVøÁ[Áš¢“ÕòKŒ–ÿ²äàŒ¥óPLQ^Ð$£ ã°êÆ7èä° œ|øä4ºÃ:CÍl³¢h w#« 6‡´ÇŒqÂliÃJOüÅy°Ìá’¹àô|€j¦Cà\åcƤûUµCåm>åÚ±©ÜÀ1ÅøþL¬?˜XÓ8 >†ñã…¡„CC ó5nÞ&œ:û¡‰wÄ•¶wÖmã\ì&ÎüÙ]ç6¸óuˆ.kØË¤è• ÜœPƒ³;GÈZiKˆÌ-ªï`f-lŽ´ ‚S±Ä´ÆÅ¤Po"J´Þü6i¥¶Q—ª2ûØ4ÖràG0¤HIbð7!Ûä™Ö:´*•1PÄÃïgì¡?½2÷ÂAÜ¢ð‰û™¡á¾„f5"¤ÉÍB;ì÷¯*IJ߉ï•JZ~uÝml5“½‚;ö§(â¹ïÃx  „µˆËç(½›ïN™¡²´J&©Ü5V·‰»1VÈà5܃Ô.÷¼WYÔôk¹jJ´žV‘€ÿU¦Z«Dn Œil%rßÝG>²ðæà–Òi#±H(ž&ö¤è fø¿)Ä÷Ó’æ­¼³©œ:#&²ŸÎ‚*w3Ì#uãîgj ýF+\ f&ã†öô~¦KÉ]!êaìÓ¦‰/@!v¿L&2œ¾æ°ÄBÌÌ®X\m.æ~ʘçŠvg¡M¨4?û@‰™)Õ Í³¿„ŒÎlÒDžþ^û¡V%1r-7þuލVã™Aï> neu–œ.dÉ­5ƒ.ŽJ³¡éÿW` ¤w þ!Òf‘kR˜HqÔ3Ñ$È+3œøÂaÌ Y"} ŽdRM­ˆŒörÞ|ôa™ Tf’nh»¸‡3"äf à”)f§õľtÓ‰ï€~¬ âÒ¾ð™Hnù$œNÓ›ºraê|VŒMÚÍTÒˆ°N©¡ÿ_S_ ÝC F^C‘0A3`æ‰Ï'¤aŽÍO2÷I… Ïo}’êqfGøN‡“”.¡*kEï$(!Sí„x_’§¢®#¦¹ dÅ!pB} u´2”PŬï;ÐÌ0ùšÙùLãÐt¡ÍMB³¾ð—½CF…¯ w@ÔÏSô.­6ºP[:ÓE=’ç}I£á®«wéм˯¨ÐRhT‹8ÞÍ3¤}šÒ_‰ÛŽßg÷³ü¾ †ÿ«š”ƒô67ã”]Gš!]ÑTÓ·P–õ˜‹ë”üš*:âúi·ÄÕtŽünÒ`lïÃÌc‡&f¨HŸ$špßGªl¾ôût©¼ÉÎhŠÈý^ÆQ2ÎÁû2Eº¶y«÷PÍÝ÷³ˆ-7|écDïÔo_{$’¥Ž}_ÕóJ—ÆzVÓi¤ü|LfÕ‰5“ìŒB¦cÚD˜H"¤w(„6ëŒÅš­židž%†ègøN;5ÔqXíºFœ4±ÜgD/ p ]úÝ ˜)œ…ËŽ¯Hê;#Jûû ‘_9MF4ìR=HdžçÿJ"9Â?„o0°ü‰.LÌ»QYä\–|O9~Èpƒ÷×*+¤Ð€2ëóÜÅXpìHrrÉ%ÛÍIš˜€Ž¶ûp4цoU•|š´&Ã!©ÞÙ²„ÎÆ>:‰ÕXnúe/ò’Zž‡÷e’6¨êœxa¨Ì¹´¨Ø=¤kö¼ 査ÔH&â/å$S_te¢Ìn éï¾›•(›Ó¸¼é[¦îíÖ>F¾'"- ËZ “Kæ¢ èƒ&­®>Ã?è²" [ÌÂÿ‡4ËÂz~з±-Û˜¸f£ÌÌô9«¦Î£¥Ï²ß}ÕÜr»~cŠÿQ~>aî~éÑw¤6™#“~¿PÚ°nWâikMç0.%†Û ¼PE.“´—®é[ &3rÅÀˆ'ȳ÷²¢D)“Hù÷³Är%{R€tQ /—ª@õ^#Î|†žKÀ%M„æ]yç^jm:¬x?ÉX$Þ]†×“æ™wæõæJ£Õ«*\$¶IÖZi9 Qb.ÓÛÈì¨ 5 ƒ¥O4RÜ‘ÈT¿)`1 ©˜@8£K‘2‡hšñÊÓ¥¸b{c³·ú`­ö ¯Š’ÒÕ22-3åÏää—©p!‰ô%¹Ke)ChÀ…i¦!ØIbšÓПÐü©zÏôa]5³‰Ó¤Z†þAR•I©Žm#y×[mVê/hû3Ú¤F< Cd÷^Ñ.‹S³ã¯pÎ)$óf$ ­m$ ¾ÂÝë„ߊU]am3{Í "ŽáTHe‘RãBGšÄO_¹_Pµª’ 5‘þÜZ÷/•à‡“â‹WïŽhL_@ÆæŒVžòD¬bK*èÇt*ÒåJj'æ¢râî_T^‚Ó<ŲÑE­G"Íî”Ä)ZØÇ:Ü®+}peSÉ»4?Û@žm Ï6gȳ äÙòly¶´ä²gȳ äÙòl1›âÙòly¶<Û@þËl @¤Üñ^y;îocÎêq̸=@5DNwÇ­uK ùÐi!¥à’"K#£ÎØÄ*‹4üþ.$D‡(˨ŒtDdñÇ« Q§*ýŸ‹ÐÃÑXŠÐ¹mÕÞ–Èf÷û.!˜¦<ç´cÜi#“‹Ô´YÝ7²Ë£½Ãó#(µ˜/hª·‚ ©{ŽÈ`£Ðæ&<ÓÔDUcgc^t ®ïÔÆ‚“«÷b×AiùõʨÜUâ'©¦iÆf‘FV¿“i¶ q²uXûFL4M¨Âß±^tœƒÏ}‰4†yŠ„ñ È@9Žërw·0ŸziDOË ‹.¾‚,«&]žÏe“³‡Ÿ›³ÒÊ@n·Åë.´·9h'§Wäš™DÇ =iv˜?”I˜ºPè´sw¯I# ÓžŸÞ=-ܦÇGõÙ‡g‹ÓŽìÜýáö,ð!” Ѻü¦B<†˜ÄáUFô ‹¤¶¯Œjÿ,ÕM¾b¥"pÚ¬ßJßóM+Ò¦®çHÛý¶0Èo±\ªr [5“tÔf±uòæâ^ÿLÈä+sQíX`©¹ô™¶g˜W ’@rà\Æ3ÅT˜&÷U}žV¹¤pBwî0@ ýWgWPÒ¡QZFÊ>Ý–-,~ÎçÀLÐÝÕÄàŠ‚…Ð2ìI ÿ N–%P‘’‘F¬À—aÑä-¤ Ó2™·%3eÊð÷¼ÐÝü&y§èWGü·2ŒîXÁ7~÷Gâu²ÚDøÆ†÷v.ÿW5…™J»‡!ƒÅ f|?KosSš^’„ög»i¤?>-ùÇ®ÐbÕQPwdtLý%œ¹8H8çìîšZJÙKûƒ[%÷3 ùáìäšNuœæ‘ Écp¸€‡øu&*¹M=RcfØ@O²›™Žòt‚c³L£° £\`qrÍbÕDÏZ1ì˜éð¬åO?­Å]zò­ ®ÿÚ)ÜW¤Ý§»fÅÌ _Þ|Á]U“ÄWð¤ÚéÏL%ùý$ä‚ao uö´˜öHÑ„oz¨DµùÖÛ™G·áßeu¯Þoþ9¡Y£ÜÓ>À–kZ·fh ‘¨yÑ@ ! 1Ê©2€,‹Õö.ªj{Oy¹-w‹ÅæbJÄò7©Çò?¥_îrïP @×%ŒòÅu‚Üÿèe³d5¦Áiè1Õ)[LþÌýLÂbn3 ‰˜N{J‘µ˜‡#sèÈ[ÅÑÜßÎÏ €FG† ã=ŒLa9–õH–Â;9Ý“Ëáø%ÜÕQ8bÁ~@b'ïZ¢`àsŠfí­àÖ¸Pü°‡W‡u²áù™cÀÍòÚÇjê*É;¬Y ô¨Âì¬ä=Æüf%ïJ*(ÏýÈjŸqÍÓ”Ô5¥9<ÀÁkXµÆkc­]Ž:©ê[×Ê"WºÐ™Ty¿àh‡§âô²i&r/TäßkøÜÝx*_z¥w«ò±T¨ó] ªåì«[}­ˆ# ¡UЉ䞼ÃpÐ5¦sLü†H½0ÁnŽoôX(€$XÆÚŽ>Ã9©³ éÑ»ÅÍ WM÷Ó8Ζ€¥<°3ÀJá¿ -Eîxâ@‰ ñÒÁ€†+XToç ñŸ1ÐxЭ|«,4Ú5vvUýÆ'3otV?‡yŒE0¨0ÅS¨|žrÛêÔVÄq,˜Õ b¼Lƒ,¥îy:S¨ÄßzHP Ÿ‘ _ÑÊ@!ƒ™?,ii½›ù4LÒœšê< TÒÕ4õ”5¨kÖÑ)µånl̓-©?‡û¾·fó“ÇT3}¬»¯H,}³$fêìȽ*6|æè®ÈJ ©4C£¾ÒT¤ UjÔ§±ëÏPRõÁ»¶wqú—™.h"rÚâ¹€M'%ürø|àXn‹˜-°$5cM…½¢š¶CËÛ½“nÑ4• ê©ÁRqáZ#z°ÿÜi!bÆðó%ñgz5’ÀUÔað¬&[Hš€Ù¬ǹȈVâÄú8ÕÉÉ™»vuþÂmÎM§¶Ó¤a€°i¢ö",(æÍm¼×Ò X)ñÓ™ñYO‰¥’Àákÿ««ò>ŒFœ~_Oztò¡zâö įh㬻¯×7–â²}*8ØÊ=._¸(K@ŤªÊe’Œi<œo¼*‡Óz»]:BÂøº7¢æÕ{[É•¶ÃÕkbå=uæÞ8œzD¼éY}66ý0îîŒîŸ«P_×UF¬l†qñ‡dÔfMŸeu$ŒèÊ«"‰Ü]e>µß²€„ "ŒÐOÃûGšâSò›§i{´vÌ8߀1y E3-Caë ®ŒZ×FUÅ&CµDQY1uU+êèTSļ†u8d€ƒÊhóŠ«V̳%¸Y:#<q_Eˆp/}{wþp MÌÅŠ‘$h>Gt†æèz%´×Y‡ðß3B݈?Ìך¯ôpù zs-Ù[bWÖºjEWo}ƒ¥¥æ1àìäô®7áóFxÞÿäP•f­t†í%寞u†s¼ð JÂà²`µ/µë²kmS˜ô°Š;¾h6š?´‹â”vŸ8Þ‰¹}L-_A> _¢U1®_Ýþ‹$‹Ø{,ùuÚ×cb Nõ“5¸_|ìŸþæJa‰ŠÙ¢.‡„sKMÒZ¶Q‘6N©ÎQ ð ¦#šp³ñÌ´o,Þ?Ïû?iÞ­À¿œÜWU¢þNÖU{œì…¨ñªºtU~@²K)~Ó˜T§žþž_£²Ÿ× 7Þ$ [ÿÐÊVvø>åTú9JQ¸úç¯V2â®ë·cϦ$ìq1Ÿg‘”.û–&vKèÙ†•XÀQk]ÄfÅ+XÌüÞ;äa;Ԫ₦fÞ©Çg´D8¿"ì²™ä½êà©s› Ó;†~¬A•øÒ×§v©,,}X±Âø7UîðXŒ‘÷°Ô¢^FÔ¯„ëˆU˜'±­®…Ã8UDªÑCÙçÉq{`6Ô ÍåSü˜1CÍÙ™ü|È‹yßÃ{Ô”šs5©ËÌL›¨ò‡‰êÀý1[K^æk¬äôNæXa)o°»&‹ƒ=³ágàñ×6”“³Ú`òX#М‘IXŽÃ…ƒVrÚÜõ¤i¹÷w%<‹ç<ñ¼u˜¯ÐÕž©ö™j?TÇìŠz ¾·=†ÿç?7b±x-‰ 7mèU1‰ã&Ü<š×îm‰¨­“O§µ2ažºíÞfjš;LÙ›žû.#ú¯¨BŽÜb6Õ¹j®Þ0@RoǽåhÛœã¢.ÊäÞ„Š$š³°@%JQf$©%Óc´ºÑá Öe¬y[ÚHb ÇE6Q$HŽÃ5 ¡¡än.‚n%(}™eÈw/Å™½ów¿W檎ÿ±‘Q^$\’¿{Z¾÷Fñ]Ý–3|?舩i¢þÔ£ýî•~ nˆàk#œÎR÷¢Œ&zjÌÒi5tz~îeQYÔ¾Å(‡ôEì-ÍÛî…wæñÇîA¿ôv&ÀÁXÅžò½rR!ÿN Lž¯ä“^°Ôí‡=qûj\Ò³ý4›†i/Hƒ ¯_ûœ6WJêv¦ý‰$&³S*Gb›éîŽ"ùÔC-ŽØèf© š»?HpE5°Ý"ÀßÑlZ¤ó¥­ÏÒž™¢Ö^ÄßzƒdPT˜óï´ä:'qf—¡FQ†ÝñMVWÁzÊ©ó˜8œpðÝa8áà)Â\Jt;oÞ~³p žà÷n×D€ðÐ…BnxëØãÖl“Ø Öñ·TÌFZ[&å\¤-ÔËÃr8lµGQQÁÛf}•,ü07ùÄV‹7z3ÒtÀ3˜faM%oâ÷DOú> Q²´@*û¨ ‰A…ùî±(×@ê@´=_F ½°Š•’~˜ƒ/Ūð%§kÓÍùlåîß éÁ0Æ4±/ •s91AŠAüæ˜ÖV|ïX ÏI‚M¢¢éX™Ùà` .lZ§a@ înÖ/ixO*ÅÀtœÜ¤Qiý¤ŒÇ$°JÈp!Î[pvDÚ`3Û'~IבðH à»¶fBæÔ qIb~€šªÄ’PÏM3—aµiX˜"ÄÎVñ[À#Aé(;‹AªÅö…©„Dbëcz?¹©2å í1Eo¡w¡/ §Í‰øˆº8xø]zKÒ`Æ™¨0Ì™’ô¢@a§‡ „I¿A"bp”üî« Ø!¬“XÞ±Oä°,©Ã‰\6š2Éf³CX)¨äÓÔœ¦ q’ÿè¬ â….¢ÜŠCN’ì/©cšv_ô5ë%é à°ææ‡0Êùìòß¾&‰xŽJ/’ƒ„¸‡-¾nyÌÖ|ÅgóÌcžyÌ3y{ÔÃrŒÈ9ݯrŒß1“ù~³ÈdFÿ,&Sm6§qª;æÙÁ™Ï|£©§:FhW‹Ñ<…˸à2]f3Îw³8[qç»9ÍÂ;ΘÃxÃlܳq~ÿ̦€I8;¯ÖaǰhÐUVê«ÙTK°“a"ºãÖšÏ].&°˜ÊÒÀ¡Ê._Ž^ÌÔmݵàC† /¡yDÃ>HÓxZØ}““ÖXÄô«Úp¤œ¥Iticö X*|E7\6“}¸ešF³QšðwÓzÐ$ ¤=u©ÇЪaï‰z·i‰.¸–ÛcW!cø†P:ÙEsJõéùQµxSç,ŸœãVžncu*m “;•å6U¡Â¼a±éF´§s|Öi™MÓÉv8z'–EÈ>Þè®a(«JÕ"² x’4U3ÜÝ¡¾¾þ9c˜!1?|Û<±Yaߘþ»ÍÕ´*¹Æfoóçó‹9]¤Û2ul}¦÷—t–I’Pî®qæ¨ ÜF©4™¦tyÕ_¥™À•Й¼SØ Gºw¯or/'þû$NOë÷]–}õï÷¾såõ–¯õª€Ž¹0Ž Éiùd=*¼ÃΩÎgZ$¦ç ý¾ oDNök÷Õ¶·±3'a|ÐZ’¼4Ý}>Èç"N¨¹aà‚|’˜Û+ÕE"fn9K7 ¥ à@g ¾v ·œ…žgïÄ &6¦GK2?}„GR$†lJƒšÕŒ# ÿÛ ÆüµWÆ´|µÇÄ`<!Éß`KMó¥G6è†æd©ªÄöS´Âp±è=7_z"½ÊS¥L¬χ là"”áì^åK/×eiÄ`Íž©$ ḭ̈áLßæ‡ÍຠM‰kßPûü}¾©LÆ~ù¤ÿDAÈ“kÞ º¯ˆMq_i–¹EE–îc¾6ß;§Kë,¨ÈÐ|íùÙ 5£Ÿæ°LÒI’ þÊÛ|ånnÏû:>ÐÏJ ©IÈ¿/º]çÑtÎÁÌWûÙó” ‹·¶§2=û$³wÁ™ŽI³)7æÎbxЀâãªðV—1©ÃÅ ïárÝÂrŒ< ° û]9¶ëÞ€6¬*"6NÕÞä_S”§œ>CÌ“4ο ¾<Às9Ü‚¿#±Àb Ï´ ªî«2 GÌÑv ’O‡]Ù_u>9q•1´‹&ƒ5?‰{…Ï,ñ…ý]pâËh!‚:̇ ŽxÛìL•\~=ŽTo|‰jTˆLXž ‰*zô_#¬& o89)+iÆvSþŠèôµ™ïã5*#õÓ©VÐ@­a'¨ŸtI“3sOè<Q˜tp\éÝNÃfŠ æi£NUSc¦ðõOåûŸa4ñã²nŸOSÿé…þšª#kîŸW4í4ýqšf/‚F]K.SÌû4ÅLð§w­F¥¡áÃñTåA¶÷¬J³‡ïBWiÝø¤ñ¢R)`0×½ `hlîxoæô{áwûU˾á,+#Ô,*àn8§#Nƒâ ú¡#i±üµîžö}h1g+yÁE€|º›FÀÚ”³´j™i§Z›{³.m[öPdîÇý£ß\U!º'¯oëÈ]é@ßuågàj„(tãk¶šKx]õâ†Ä„zÀô¨¥rqÀCÎQœËÅ@\dŒÂ ÂŒ`3Áë0ÒˆÓz,`-Ôª²×ñµI£‘¬ ‚ø pj•¹S™Á»ÔKÄeÆºŠ‚—^غ"å`~êãBë-~rªd¬ˆ¾€ZR®8ÔŽ8|&À¼«F?¢ÃœÎÖzï#mÈð©¯3…dB¢í¼'šÁQ#”N) ð @la¥3$I|CC"ñô¸ôÇȳäoÞßz…òI–eM‰ì—ý´`ž8 C>šõŠL½$²I@Ù¦eÉÀ‡C¤è§‘7ž¶¤ae1Ò¨;æ ÄñåB“·$‚¾ ´»qÚdƒnþÞÔYAhPA¢5›Ð¥6£’0*”†1æf‰¦òUD$\»ø¤8ºBšˆªNå§1Ωn¶î.Ô!ã},¨msM¼ÑX¯²Š_LËo>Œ= ¦3áur¯ìÓi¦àÏáµÕ fy³€rbB×`VWi Ç5ÐMçFY÷³Ê¼xá^һъƒ8³Þð´šò)fzY“_u–ÒÆùë-ÉšŽHú—ºã‹½»|›$±Š¢OPè&uOÂL‘Æ{ïîŽäŠ72WÚá…Ô@‘|c€ÄmTÓôY©š'½¡¾mïôüvØ—g<Ãûƒèi+þjMÍ#u ®:Rùþï?På¶'œ¸\Aåh#®·ß¾íåE ǰ…eu^„iA„]ÓP¡ðë).à¬ö¦†ìå¹Ú7»jÄÞ¼ù rí5•-ýÀ®ÚÐUß¿©ë[Ÿø,¥vQ’…V¹fKÛË<Bk‚;}Àw|5÷ÎÂT›] Û‡nÇåJA qÂi1Ñ«úÞ¥¨,r8ÜÆðc½jðSpÛxžGl­…ý¹P›þýA­å+~” \üÔ£å½Y_´'¦#3¨9çx…õ#·U>ñ§½?M<ê VÇÚÈŠ<í½iv¡òü X[ün7²6 â0F>•'ZOñVÒ‰ð(.4èäÚÏ}   ¨Ä`\&pâsqš@i”c2~üœä†9ÏÃ8D¡"uò|Ü¥£,MÕq[4"lD 9ˆ]%­jŠ7$`°Ôû0-ÖOÏTfD0ºý8mÔ,I…ó¼0¿³…iËÆÏ ó»Y˜)ÍÚó²ü—å™™ýÞ‡T6” Ýö–$…Ôö,תýWMY;Ò¤Y9S¹ºƒ´H›SçÞ’:™ÞZÓ‡Õ™ŽDJEbŸÓW·Ã0“Α0æ eQòÔ×_Îe Û}Õf@w-×ÚEÆŠO«Ô½I˜)ÀÞ”(¾«ºcúX„=sz¹zãtR*„oõzú]aV¯r¿7„9z:žñdÂGOk5™2þóðï%´Ã˜ÿö‚¡W”§ÌHH NF·iê^þå“»ëßf³²§hм‰"¥„2©Z¢šû™ë5Œðw>Zû+‘Ÿó¦Áfs 3i÷¾$P¡yË%ijèh×ɧÞ4öä^{&s·Ù˜ÖÝ…˜VÓ0 f@Ì‘J¸Kü  òÕ4i· àJçôx->Ñ õü|ä•·ÄB³(%^µÚ~Ö@ ÂdÈÏ^èÝn5ëk}%°•tý=D@ilóÝ4PÃ^¢ïROçÍ&ï÷ŽÎöÏN?œÐÀ²I/…XT/”Loú•¾ô”7Fê‘6N5ˆ{7QŽa^QÞ†:iF‘ÂÏv"wbŽ»zÐà“vónZÏ·Ó™Zlˆ,qU‘ë·X®.O1í#”×CÕ¦¼'¼¬Œôý\XÉ>ñ̤/ƒ½HÐ ¼b4©«,ŇY|XøQÔÿS÷÷)¢Å4_YF˜G7ÔË™ºÍ8£xWÓWI‚÷Vsq,Ç©{®«ü?)räú²®q‰æŽ†ŽfjJ_{Ó4{e·Š+å†Äsü0§Þ÷’ƒzÊ”.Žàt|GJÛú"L˜<§ü·G'¿WÆ0-jUÄŒÖ „8ôî0ÐöÏjúüŠSá$Ó#˜ØÏý3ÄÄíŽè{Ü£Ÿ9ÞzµOakýGÓäãFÍ­wi¦|j÷«Gÿ)ðpd·‡e,‘l™m~ËV 5‹4Úâ[o¬µS’`ãËÚ Q¬ ðÔ Hš1K§*‘|n4)¦óAumÙ7¡-»é²4.KM”{žúk|M_¼˜¿ô&tœ2Ó®½<üöH=i‡sžVÞþôn‰&Ê8h”„Ä\z‡.f~z×Ót^ŽäØi_‰È-¾¡į:GtI†²½ˆMD”]ÔB»0&"õÑQ÷è¿)}iº¬ˆoŸ¤Q@„1ÂÃÌG›o6ÓŒ¡¿Öò@¸oŽ÷§vý’bßïææÍÓ½ŽšÝ}[ÀæBŸÊ|â唩ïI `D¿£r§¨íNtm|4 Xžø¢‰ŒègùJç~p‡Ü²ÜËÇeQD®pã ¤PÚ|úÐKIªMt8K¢?íð#ÎÇ'ÊÂß9ÐIiÑ0äš@»½ö  Hô£”º‚ÑóT“"CYæ4fRX.—ñš#:=O›1ž•¾"Éÿþžxµ‰z Í€®D€sbúøúÄ o9: ¬_z*"7[€ g(?¸›O=û¡™¨ñÈOÓà3=…JuM_©Ãùڻė•Åj]3ãÍ·Sˆ@àý“`8 #n>iCB³D¤È¥9ˆù,÷½)-e³OäÛ}N£ˆ'=¾I{÷j¤b(SÀ!Øuæt»:ˆÆÌz}ó©§ï¦Äp=Ÿú-³ Ôs z' 1÷!¯&ÀpM9¥å:qo¸Ì,óÄX.UœeôØiü!ÍØCðv'ÌH/(41âÛ1—ÉÕ­æ_Ô8‚C‹Ñ˃æïE1‰Æ¿Ð‹•<Î[EÒ»j²4rÏàÂÁïEaj¥š$¨¹v_BÖŒóÛÓnæ²sbu˜ÿe(WGíçZOðòu¹`ÛþµôYg¼ç¿½{Üc;Ʊß:;ÎI¡¤Ö&õUÝ£Z,_XÆJÏÃÉ„ÎfUÒ áuÖ*¸sŽüHÝÐöáÌXb¢òž§ÔŽ6ÇØœÈçXÁ®h홡љ“©^NêDØÅü¤åƒpä~ ”ƒf‰XÚûÖ ¡¾óÜcô:€ú‡?¢I—…j(=p*ë‚æ‘È/)‰U Ô A) èT$"ª¸„R›Üʧ‰À7XÜ0ãòÛÕNüÕtZÈßÞ;ÌïAk~? Ëï˜&B´$Ά½,‰<¨meySó쥇€XÕ JÝ>1©âޤFºPñ<¸Çš¿^+é‚6/µš¡Lsüí¥ƒ•N‘æÝ+Û –iøÉô¥o½Ò¿­òGçJ•òº’4½M*Ë´$fº^ÒÒ©‡Ã”XÆ„«§=õ÷’ùžm0¡ÓùÉ{7£¯t‚¤°E4RH¾½ Õ¥ŠC6,Y m$ãïóÀ%iç$jq…å]ó´õ­Ê3‹í¥$—ŒéÓ(Cb Ù¾Nг-˨€—þЦ‹7=X aÝ«8ØeʤF"‰D»Ùí`ãíëžFzŠªâ UZ¦´÷IØN±÷ñ·çG¡„.§au|ÚjÒý¢Œîaº î—×e¥ýTò£EÒdö&FÏ8j9–ˆÞ¦£”I]%Xm»_h!Q}7‹ó­·Ôg„„Õ˜sÎ êŤ†6„fjQfî)ñ{âw3}íʬ­·]¿ÈÝ#4púªßƒäbá¹L“ϵÏ%‰åÔË þö|Å öDk€Á?„“²ÇHdFɦݢO=]$i¡é·›óªäq‘~{VNHc$žLZÇ­iò¾LsšDïI²,æAê¥ÙƒÝ|Š º‡™ž²ôȇ…ÁC5Ÿ Ø.¤Ó÷ÖRp‰’3³òŸaÅrwoð‡y+écI^–Õƒ>‡ bŠe‡X(7r©yÚ`±_TÄáµ$† ýs—”ž¢7 ·çm͠ݱãjCÿ¥œ„cðð¤X‡èI+e•ü¯ƒpDö­{0žx|üé ʧ4<É¥«fvf>ï}?C$ì¹¢! ÃʱTßÞÈÆ1ÁO¨· ¨ùð&p(FWAÂw¢ãÐ\ ƒ5"„q”Û sÁV”ä¸ C+–˜àèùH†uŒ_ >#ñ+Ù\“¦{‰»r”¡l>"Ž FáÊ쟣ìɰŸ°¨ñwèù;é³´ò}äó½#²–!©@CÕ×o´Ë»ÿ—Å`(ÅìBËùÔ[4ìí«H‘„¥¢Nûœ¸»(æ$Ûë$V×Io õø¤µ ‰ú¯!ç•ÿ=¬|+)â»’åøþG0;¾í‰#'éºB|Ù˜FúÊ±ÕÆ¯BQ¢ܸQ ±®·ÇáºâV°°Ñ ¡ÂI —ÝÛ25,ÜŸZé7¨’Øj Ãf:“úAœÔ„ÇßÞÞzs?¾´Uqó—|f!çá\®úXü‰Ô áâÔpŽJ‹VΩŽWᤸ ü’U)ïïf8ŒAUŠÌníUáßß’Å–sÚ{Ãéð`;÷¤—OfÐ熉3Å´¸Ü3Ý<ÓÍ·ÒM `jlVóHºÿ1<·=mäéÿŸ½oYn#I¶\ßüŠ´šEKÝ@R$%•TF»>$’%Q∔T]›ž@fH"_7„ÀÅüËŒÍænÆl6³š]ýØøqÈH€/ÝîºÕ(ëDddd<<Ü=ÜÏ©ðµ¼r¯q”6óü„ u›_¿ÀãØ@<ÄiÒî%_¯G”Ubò•>(A¶Pû×7A‚š±ÇCîýËÒg ôRUeÊ­w&i™EÕxÌHåBÑRÿˆ|$ÍÓ ©_—Œ>Å[‹”ɫıSÌÜ×6'Þf4—éR¦îþ4“º_dî:Ý„(Üͨ=i!ëN¹A8KQ“c+Ïu_ʱ/Å|ÌÄ  4Q9,~@n€eù¦Š‘}ipR(Éø‘̳Rü¿F—…>¸8–ÖQa\ir b‘RÖ5ƒjÚ„Ÿ:·g äÕÉbU†röˆÔH!–rxxËqk:Ö¯š±O êÕ÷‹€åi` ¶¦ùÊuÉóëþë’o{T«M¥¼ myÏÜ×Kr廬_|Û…ÆÚ:§JŠN`õSsëÆ–úH#^èÒT“4Õ´½dn·$B8ï¡$Èzn8ÉÎ4dÆjM‘ÒÐAލüJ3ßDž¦i_!ë¿§¤dgi:¨†a:DÞßcˆf°¦LTµÍ‘Ñ‹9¤mGœÍã:•ÛÞÑm»§Ç>mýT»MPyשws]ÌfdöSij.ßÂ: ,{ n6‰öÜëU6.D‹7†´6–3(ç¶Êú]ÑåÍ)Ù˜ÑÖrù>’mñ]Ò›· ñÆn_µ›*î¿[÷>ò5’Žb¸tü*n'¤~É}ˆŸË EP·ûeÚ·¨ÛÌNè6ç«„ÅË 0‚¹v^¶7<ì ùXæÃU>²òq¯Ü¤Jµr®FCXˆÕ³(T—Þ=p[!MsÌÒ ÝÁA5m½Ë ƒ—sL”À.µî™×]âiïp«ÆÉnÐØ®Èý0µ{†ü·švgÂæÝÝ ~[ú2B-Àk+ê4š'‰û6-øtsŒoÞˆ¿uOìI)œ·‰æ³R|÷†ü½[öާ*`HãÚËC£L®xé/tk½S'ßu~ÝgÎÞ2ýï4Uï2ø÷Še}O6M§œÎÁÑpYý¹‹0ø6K—·ˆ¶Û™áûwƒd‰ÕɃ¼\Ч³–—ky¹–—kyùO./›ÿ¹Ñ˜Ö²p- ײp- $ œé÷ò4 作¸í;´¼fb¼#üÚõV¯.ó]c®¥ÔèËPSO™éd1%¿³ _Ø¡:N‡@iJ'ŽU†’nÄÔb†Êñ™ ‚öªíL:`T€†èÁÔÊlÅÇ%í_ÈÑ2~7!LÊJ€õ„º»Dö4Ho/©Ú ,à÷7ìibpñ nÓ®{›¶¾4wèÌ=:°xŒÀe#›¨‘ªÇ$ß5…-w'Ñmô ßo8­[î¦1]¹ÖÚ•<`ÍunÜë„Q*dz›/ÝmoóùÐ#§*ŠO¹ä{^»’PâBÛ$Xud óò xˆ¸c弄ªEc3jõ“vÊø_1G%Ò—?žñ5C²Eüþ™pt-Ü‘Ø;²¨*S/¹ð[¹w¤:zSL©Þ#=OÜèçv4®´27Ü'È×jœ>A’¨s9oÌàü‚|Ròðj¢/iëuw.qiP4—Lå õ.ÍúwŸ|>Û³ÌZ¦ ­ 6!-§†Uæ3] •ƒlãiϰIÕt1Í9tÏ5Çÿ=—~¹õ€ç¶ZPŸ±·õtÓ A ¢gpDBÅB›¶CÛø­„õ‡“´ö]„*¾’ܮ狭sûãÞHàÜûŠ”M wó9iÍÏ´Ïe Fº€u샞Õ(ñt±½þ>wƒ‡„1ØGfÔ0·/b±äiuþèÙ|”ŠZRÃ8\4˜é<Vr2MùwS¸Ñ¸‡š¸÷6s‚ËüÃ̉9=4é¢îßZzÊÅÀÉZY’Šë&ÅuHÖÍŽ¬{+K[<¦Ó"‰§Ó2rE•:}i£Ûµ_¹¿z­Ï^òåT(ª.C=Ã…YâOñ·LqðžEÙé´L¸(P³ûnbXá†Užà;‡$Ñtå \.Ü£9¼‚°T'éoÿ»$•áB3ÓϹºz›æoÚD£–¯À’Oí#›©[îÎø9xºð¡%¥uÖó50”¥h(à–"%Œ'T(àO‹ŒÅŒ÷7º„`ƒdF&P 2ÈoNú¿9ëÿø·ÿé´ ¥"aBß |ÁSi¹‚)¸•{YþöïÚø.Eò“kL*LùBH{*ªu?“•›Þñ›oÁ,F­¤b•±Æ|ClúM2”PÈ…Ç2+#ýžØ@SØæ±Y•ëvÆeYµdHéŽYÓ®Nô¹©¨oŠ‡š—ˆ‰û‚YBØ{T8ÑIÝGàX GªŠÌî)2rbC ŠpÁ„ Æ:¦̇¢«ÿäþ™]JªAF«PGÎ’…RRA`tÑZ¡»ší O©Ùíe>CÑ)hk÷'°Õ–®*š‚4…c¦¦=ñ÷…YÐ÷Á|11>¼ï5´ OkÕrÿÍ»}óãÞŨ³KÝtg¦G¡Ý^»ÃZ(€“öqíø3{­Ñ˜æ„—¦QïATDw8¸3¾Ø'e€qôÜ_…hç°zäæi^û^RSÃf¹ñ‘í—åÛ7–Õa_.Æœ™‚m§Ë5Ò·®°[¨º•ëk®p­$«:ÖK=›ÃË Bsijô©½=bQ+ỤZ„I§Hí–`™º i¿Ù0…Á`4é^MÉ !eàà󲪣ÖÒúGVè8îL1ÿÄ%Â7Álò nbôêê jÕè©–“æ0ßPlZEõ‚O‡i7#èN¤ïº«„åuc°3NÒ¹j 3 m°…¾¨“ÀCÅĆÿ¸2—‰÷½Î$&U×ðº6iW¯»NMYÝ ÷^®˜Íç‹orÝth³^Þ¬|/¹ç‘n%P¹ø À¦6ÂLØ|u£6$¥šøÜ&ÆÈümÐvQËI‹Éi-€…’ZÏ(Ä<\¶ÊÞQyGx¤{R4´¨.ðEø:b÷^XÌ|x [ ‘ìI0’²Œ½<µ®Ç0“ y?­§÷0ßÑ.?§nQU‚½|:ó.ÝE×þ’’¾§†ˆB¿¤þœUÙ­#Œe-ŒÏ¨Á$rŠ”Õ 2ùÓ ˆüÿóVƒ»JÍ>üoÿëñw%¤¸<ëí¨±7‘+Ý4¿ïÀ¨q/Pã»ã]ß èÿΫáñª÷Ìñšþ¿Êtáûïo·Èmjù卨’6ã˜tëÕ]ÌÌ/a^"R1— w7åíã·ÖÕ\š[á®²è æÜ…Fi…Í…Éù`¢9䎚Üî¸l{Sùˆ†6˜6 fð¶n&aV8ufÁ:!+5ò“=)ç±i5®è¹Gçç§=ç-ýÓ°‹-øüé¸O³\âT.4P?lÅðªbžø“ºµå4M©‡ÊyÆïf•9w—xS¡Zwäü}¤Þq%\í¦ÕÛZ¿½™™áNÆÇÝR™îHW#hüûa,p-9¤½Ÿ¤Æ˜wÄ«üÞ½jßWPCªHкq…lÕ…‚­\-j}Y,Àéiþ;(NÔ–¹šNøÛdË^¸‘èb=ñ€ea‚Ùéò.9»V„tåI¨+’¾â`¡X.´[õè…ßÎ"çåÿb½ü×˽üÿY–+)ú¦ÝÿA¹¿Ãœhûß]Ö„ýï~k£¾k½Fþpk$õ—¯Ý  â‰s;pÜ­ˆpTö½6Gª•#˜~w»#bšî¾7òSLÝÅÌö¸D 5Ã\.t,ðìmëMv-@.@Æ÷Ò­÷ˆ³·<òÖÀʶ²ô¶¼$ö^.e·ï£þýðk—6á6üZW€WãÖÖ9ɽÚÛqkoDªu R­ª]Úøå8µÎ5 Z‹S»¼¶`je0µ65á(µŽA©íBÔÚ€a Q{G„Zã~Ÿ^jЬE×YGôh”ë9@M‚‘mØB"Ø#×èLû¦¤•è9{s£×°dÁÀرhÐx§1–ÇÚ$uxªzÎaëeTn”Îú¦ÉÒ4ÉŠ"%ª°¹D¹VAK­q¨ÓYûFwZ.˜&“$W.¶ÖHÅ´ÉôŽÒt*òIZ€¬<<6©]'”¨G4Tš·ºã%‚£—¿¤þQƒÈhÏSЏo¾ù:ržˆïE-øKS:Ÿg,'¡ú>í¹ Áý‚œvõd¡Î­³‡ãV ·®ð'Çù3wÿ7÷9·î…ûçƒã·îŸß§%ͺͭm÷ÉlºÙsgÓ-ü³ýÔýóÇL'!AXYvŸ|T´K=uþ|Js”jˆv÷I%TôïDUþ×J•ež"Оꢾ!ꢾ³¿¾çüù—=’œ{ÛŽs€4ÓÔ& —ã§±•jH]œ)Nív/UTiv®¼ï¹¿ÈL÷ôó·žpHoèÀ¦“ŽF¡]Åð›ªDPà < Í~ÚŒÆÞLkN®"NZcÑñmõ\Úƒp(àÿS0wÓ( oÜcŸ3™ŸÏÄ´["ZY16µXv´_úè;cL3‹uýÐóc£#¥òžI‘øF3„#­˜§ÇY!»êÉûSùøÔ3TT5¶ÚÁ[=RDPS\¢X~šÍ厷tǔʇðõÜïߨŽ÷ê$ø´jó«Ðô*áæ+ú7 ŸöÔj4òní¹ðKÐ6(ƵÜdúÍ;òN<ˆ_€=ù¤æ´„ÎÞˆ³ºC~ÖyJeÂ|Zܳ3Âw0WEÓö‹Ò¥î›<±›Y2Q@2°ƒ;!=$-1ó,^l˜ ‡üÙsiŠ\¥³¥õ$î;ТG´Ô–”ù”Òn{­JNÕæ× oóFòŒÏ~Ã:ç{5‡è8,4 ƒ˜·;’êüýYíu°Êy»`)Å×Þ:À'âdÞY08•(ëðïž»_g—ÍCMÕN}^+çÅÐùSXîÖ®¯ý'ÇoÎß’%Ž{- Ù˜öÉU©žÂiZÐ]æé\‘)EöpZÈ>¢†aê¾ S„éÊæÆ©œ^5ºÀÌ=ñpâåÃmqJ؆ŒÇU‘xõÅŠ …{ßEÄ´[¸„†~žV¤Ƙ 0I4YT<.ö¨ÀX@dp@}CÃᚘN´‹Œ]bdºqþ9dÂ\ù¾˜…µ€2•qnô_þÂxX.߃‡‹í)÷™÷#cÏ-"lÑbG…11mÜD*Ø?šþÅûÕY“Í’+ÄÞP‡¯àÁ´ÚWß7•] Â[Ëý¤“d¥¸-×iVE™†\­!à®›{.÷Ù)mÊ} @ʽO% ø˜úéüÓ焆[N6ƒ”L.13e.6`ȯµ;muBë¹)¦es)˜ ºXJÐvA˜m§ÊWUp“*²¨÷>rXì'ÂeCî¼—®anyh[Ù&é2q_¼|á=_Œ„ÇqÞ9Vð>õ'Ù4H£§q/JêGÒÀYq8g4S#p¸>91Ü!r Ȱ´ᆳA®fÆ[‚­¤ài G­{ºïp¼ 'ja1Åa°¯ŒšŠ;J}'¼¨(P8b ÈøÂ¯Ž ¤‰Ðb› Ö^û¡bѰ?¡€RAÂôíî¹»¹µ±ùrc{«ç|Òa¡ó·g=÷Ã9þe,ØÓ·g xWh©ålTE¾ ½A³yÃR&npÿn|z³{ÐBò–NÙ°¥!24¨9úçßVLõx8€i4$mx¢/xÄÈë|änÓÎ]øÅëE@K„Žá9À ;lµÞ¡#²çjuÔŠ©]73?Oðs­`BžC¨Ìdjç'ôŒbÂ+Ú·óŠèeç`O~AbÄOÇIhƒ¤•;Õslã` A‚ …ÿÐßHÁæpF2d\ ’ŸÙwž³ŠH6­ÆØÓã0(ÝŸ$ôaP„H*BbŽ6zœØOG*ÄlÜâ£=„ß<Øh„SL9õf Ö‘¼šHÕƒ‡o,zÁkwë…÷rÁ‰L:Òé¡»Õ8añ͆Ô•o4ê²øÇàŽ;<=ìD±ý„+g'=‡žÕg`eïΦ߬ ¶¢¿"f"gÈLëNŸM•’[ ªš¬Ä#Ïýª¢™™JèÒ`¼ùŒ÷ïÇõR¬ÙÛþÝôúÇÅYntZ«Õð‘‡0‹:„­oT1ww›ótY§oO);\ê õÙÉ@bÕß68%Ô¨öY ×ËÆ#u"H‚ 'áxÒø°q^ãÔ‚ý8Æl¼.Íg<—©]ñAœÚ¤m/ÀòÐp¶Â[úvX 0¸¼%ÉHœ¹ÙHFÑ0£ T©wN®9³®”—5A=â/rö4m½FŽ s»=š’úE§ìܲÝGkW9¬™à*ƒ,s RÌ ?ª˜öÐPˆÄ<ül#;\xßgì:žðiV™3(žË#Åü·$ÊPD5ÌÙ—´èGá75Õr!™Æ8ŒÉ‡ú]VXÙ0%þÍ;o0$±9 ­ÊŒñìjá3‚Ï»…iœ«Ÿ/‚}œaÀÀ쬠£­42ð4Ë©‰<„5ÕÇ—3dô—¢Oõ2²Ð–tB0L0pP‹“d%òôÛ³·î-Õ.%’Û§&;@æÍ1‹ Þ¦÷̬·Ùö'éy~¯þqó'÷‚Lƒá=ÕÐâ–Šãár]/ø&,½ïîb áN†©A}L¢ØÌcëÙ³MSY[ÌÜ `¨Yß&Z—´ã¡~°XáÐ)XÒ¼y^Ã0:0íûú¶àžsØI 2¶ùãÓ<5¥Ýu}QÏxçJH™{Æ)B:<ŸbqpUm•å ŸÙQŸ—tYãkއ½FׂsˆEä%ãçÚÝr8nðp>Ÿí9E™ædµLý4"ÙP/v2Çí2æðD±â$ÈNĬ‹·¡¥3¢~·íö©&¨o”B'`·×§÷?9Τ,³Ÿ66dP<ÎÁ°Cíœ4ñäç­ ë¶Ì&™ã&møÎ„1|M·ßG#úæ¹Ë—È™Ÿ– QQ^1 9tº2Ð’¼ÑÄEýÛÿ‹8Ü8¢oºÛÜ• ý¦‚!KË=-3¼ãˇâЂ¬£\›Üjò–žÔµn;Ä.Ä ;ã LÒtJk¿A@ðÜ]Ržq°@hî\Ðïù #É]nØ 0NuñR“viéöúQ{élUÍ eüa0L‡‹ÈPBÒšþjb||I˜éçÏŸ·Ø&@£;ªÆ©»“áóõÇi'|%Iì¨("uŸ¶! ì—‰”ûª°§¹{*fÄìbˆƒa8¥i+n}ýšž{¢iÀv†1ý\–m5çG!-Šá„þÐÃppz6|mÇY PÆE>QÑ!5>ž·±|4EÏ“©$ó'Ìfªª^EpàÿŒc7«ƒ¸¢÷õ=Ý’Ìçç·¿«R²¼8£¿ ÇÀèò¼}$õt— "zXi¥¤ xU˜zIچør'Œ~#_qx¥ò=ðÚoò`¤£’!6øÊ@Ë•@«ˆgœD°ÐñÊ|D¹ï¤Gg£¨,´ñ+õ‰R´½Ñp¥ÞÌ+äË`z¡ãnƒ¿hÀ ½SØÒÜoSþ0¨±h)Ƥv{þ•iMÆ0ÍaÛ‰éÉf"‰ó«´šÊ”‹—-T^§AZAt¾W#•“] L$ù4H‹(õÆd¶ô3ûHyEÔZF{°‘ ð^ë Ž;Cº2 Š±¼-ÖÒ=Ö%W¨ËQ”þ0H—ð2ZT-\‚».˜ÃªA3žîÄ|ÄŠLrf6ÈTÙ†°Ÿ“H‚ îþ\. ‚´,¨“o¦"¼ëDº?¬Åª\ÐÓG8zÖIt¤HÎ|Ž@{â~ÎMnÚS%«Æe?=\‡°ÝüŸ—Ýò`5 FvFž?ߺÿÉÐÜ4“ORìƒg²ï´÷èö' 9«rø­±CúiÍçc}&P]!k“" Ÿo0ìff7gÙf}i oîf+fÞŠ!)þ¾ûä$ Äû¢‚èü©+[ãl;îI$=€DeÛGä7H5 ɺrjÅ<Åõ tm¦p¦Ñ8)W…ŒEÈŽ$1™ºŸªa’±œÿÂìò2d̊첆òø€#\2ÌqÔ¼g'BQÑ\yìÀš$ñöðn¯‡÷2¼ÈX¸ ¯ê÷×¶·¹àþ:D kŽâ…r vquÙü8¸Bü{~d}³E+±®•ºÇ*¾"å›í7n ™-+IsªßÖc%\~¢ý ð9ŽcVx¬HðîA:œB! ²28„õu™¶`d,6–°£hþ0°ýÒâŽëuHB˜5íÝ2ðLу²Ùà—Ez÷jˆ˜^Ìn|ÜÑÓ%7X¶Þ´hÈhKðgIÑw¡Žûà»_Hœf—K ¦9™æ´Á§Á¤Âv9ŽýÙ`–æQÀ©teù]¦M“@¾bò„˜_-c;)Ú¢[ßiãðcü©heÒ&KM#i¹ˆÄÁl'x“YÞ9~ß¾5³f=þóh´&ÑâÉ®B§†qÏóC½ªíïqpÓ„7àÒuŽœ(ê#ÃölqLˆØzRüC'’×îw[ÿíà¼MpôZP–Ʀ< !¶.È÷ Þ#F`°î oûÙö6üÄ‹©‚J°aúÍŒ‡’“uŸÑ+Þôñc½ M…õø)ÒÉ Žzîø ž ÉØîò1èx€TïŒ90×c~Ùñ¹õL¼FYå2ûi–‘ ¶g‰þö¸¬Þ<ÌH¤‚}bóAâ*ww×d¹»Ÿ¨ë°nHiA-6½­:ãó<Òç™ñQr¶lÆ<Ÿ7÷鑲–?òq 9”C“CŸ¨Ø²VP¯ÑÇ7Iˆ–C ýƒƒ=®Œí2N1Çãœ`l‘“ÓmsW8âÀ+ޏÄýÀÐ PÒ½+G¹?F!HÙ[(Ÿ´})\Ýð6íCf(J¶8ê_à cm… OSAf¢y§ +$ƒO8§iQžù4 å“2~j“ 䈋¶<ãÔ ñ×-g"ˆ=÷„®7ö·cæ­w¡—Ð!÷M+ ‡~Þ 6HŒÎ/››Ÿ^ò¥UñdŒ_¼Oòqú/;þÀÇÇGîÕÐ}†„ÍÏAR9EÃÉ`{àAl] qá³{øé³‰åŒ!†(ÄÿD\R¨¡¥qŒgh×p“ESR‰ƒ=ÎJ udPá̺] ÆñÞ‰{ºßoÍÊXA70I3¼YÆŸ·æPÓ3C2Q"ó•”NqUåMN©“=‚h-Âc+GöMb/òEú[ØT>ÑQ†½Jçœôæ ’"UV'—!i’áa^´Õr–³oin|ÐåòÝöÎ ¦ ævìèWš=¯¿m|8—D“³-Îöõ'¤ÖHÿÈ#&L8N¬nþÈžý/áÖ?>È1ÖQˆöçs¦¢+à8a6¸T˜ß(ÏA\!_ûÓñÉû7uß|ÙýpFª3_M4ÉR/€ã±:ý&˜áãHô2V´åÓ€¶mhúµOÝ(Å'ŠÔŠñTcgÓ¥Á(·…˜÷(Õ pb Ý·y7 ©÷¦©û…š;Xƒ)]õ òâG/.¦5þ÷;àã¬ÆŸ"Îß<ù6´L©#ÒÇ»IGé$®EY> h"¦Õhzêã»Ï?»MÁñ—æÔëé´ºXètˆú”lÑ‚¡çy*F†€û™÷Š#C7ÕB9Úkc#áøº-%ß–ŸWS¦á€D‰4üà€àœ=w'žMżÈÿÍ ¦x¥’ÔXçýgÛ|†`R2]·¹HÞÊå¨Ùý!ÏP²ßiîÓP³ž™ M i}㵓æ?ˆ¸QiÛ$Õ 'Žp‹‰wš#KåfQŸ:Ñ]–,,,ê€-8уÔ!%¸d«ˆ…)µ"꣙nP:«õ™ÝÎn|ŒŒd4º‹Š¶,5LÙanªÒQa€—,‡°l¦÷ÃÄxáÛ¸uN¬•µß9Ëñ‹&÷&o7ÃW™dxüläTÈI€QùP•˜Ç­DSGÍW¡á<]ÒXÁŽÝžÚ™•`h‹•´ö˜Yn'žð‡U‡trÖL|–»;áù¸ê¦¯aìž«yŒÙ™‘Ä(åË9²Qê -¢:d˜^RÚ-Aˆ“Ë…èOUNB¤^翪‰ÆñôzÞ=ÁqM¾.\T¸6ˆùÚ¢yzì¹ïõΑˆþ¬<ä˜ò7À·GK||½¡?ƒ è|j’ÑëA•pU%Ç8·@ï'|Ôÿa.›AÉ_Ðìi»ÿ‰ýÇ;\!ÐÇÖ}}*¸–èk‰¾–è×$zñIäkßÛ¯®§6"‚¾ €ä¤SÜ-©¢"­§‡yÐÝ$¥Yýä¼×I|°ÓT#›¡ —I«Ê>¸‡æ „›_p¿l>w7_{?.¦Èt€F¾¥©Qö߀/-LtåONÒv“Q8®òvÎl«nÞâäápºͽ [D»‹o*¡½ÇÞé”xB¦ ¸«$zÅiBržï¢ލdš­îGažÎ«ièOõUJÓ6KÃÄW¹„|¡™¸çj VÝ‚D“»Þ"=Àº¦ÞEöðyÈ´ÇîÔ‡××#½w÷˜y’¿„zfÈpöŒI0¸[ãs®*ê+ò|´‰a=ðô°e,EZœË¤:0h¨cX@®‡Œâº: Ž¶ù:.‡Ço©ma,*ÅÓžCû.‡6ÔkHŠ4ô1•³ôÏ…`¹ÓŽœŽÄÎX¶(èQ0Xï Œqº”×±t•€iÀ‡Ëu%~÷©J£”vŸdiD›8 7®xC\”aR#Nýœ•¢¹jF'!‡[E$øk¹#†ª¦¤ÍpšZcW£+ÐW$µ7Ê91$/zÙìX’ÍwÞ+-ZîxpK§ÀEƒdÛ|¶ýÒ{ñjª¶•xû­ôôF~€ÝÖ=¶I’E;ê–)Ï™gž´º5ÒµªŠW^ïÄeêF»6‡å`4 åíh[Ê8<>9•‰S0Ikd8<÷£aäÌkz†vG $ÚwÀ½|ëD‡I ¸œ˜—߀ö.,=ÎÝL§$ܦ1¢-®Á©5B¯aoíÙwׂUÇAÒs7lXô|îÃów›’Ý/ØÈÅ,$­A( Ò–û„Jl=õœ=]qf•ÜÚˆq»:»NE7h×d• Þ'• 6¥ ¸<9ÅŸ§²þ𪒌Û(Ä2(8³{l‘<ö§M>®` sJ.ZNË;e^nu¯õF°%‰aðánÔ4‰ð#샀°ÛHý;†Kºˆ{‡AÁ›n&m9)Ð xR,×1w3Š¥ +Іeú êL†Ù†s;ÝqÁ{Q¯÷Xx"ö{aÉMå`f•¸Òx8 ŠÐà£ìdºŒßüãË’r9oLÎ2LÄÜ}ÆC¬`ž|iÉ $ã6b‰¸ú‹XùÁ²ú'j–¸ç¤– }˜UQe>5¢Á熽”Ì,بw(Ÿ»å@Úœ“˸Ô-užÒ”:TQ+ãîŒéÛâ#G#€_‘În ]Œùk·Ü{•#Ù•1CM¹ˆ.u }RÊý°S’%ˆ wÊŸ»÷éVˆ„#–W°sŠ ³ðd¬‘Ú[7Ío|Ñ-tV’ՒЋSó¦;_ê{Cý4ÝÀìi†¹¶øÙ„J]B#7å g»…Ž¢ÂÄmbÞwK5‰:ªä ¨’ Ö-'›ëIJšÚ¾­²j¡sVs*É©ðõHeøÞ-F23¤ÙyFbÆ0E5™.u‹}T.ÂàŽ3ÅÒ’¿>•“6µç@$ñ^.l¼­ íN›™ûÄ@y¸[O︱…·ïkHôfÍù ïpO¶8=»OÎÍfõôÆÎivºž…q7yW½ÇŽç,ÝñÜ{ìxνw<¨ØÔ6Ÿ.Û÷XHÿ!7¼%iD·ï;[÷Ûxî³çÜoÇùÙnî²×¬ÞgnÙ_nßYî°§ÜuG¹eC¹m#¹m¹}óXµmܾ[Üa§¸m“¸}{¸ugø®{‚‰€¬w†EÖØõΰÞÖ;ÃzgXï ÿt;ƒÅ¿Ùfh%”·aÊ! ƒãðóqÍdüÀ¬ó^“rÞsü¶ó½••ÞF"°zÉN_;cšìõdÚõkØÓb-ο㇭¡ÐÈ…e«­$ì@«kÙ]uœvM91t˜$ØHÏ 4 Ø|#‹éªk¯€CüÀ' Û>ïé0ì’ô9ל‡÷Ù0ÝCÚiœÇn˜ì{ô¤¢Ìû¿1pŽéÊ߆4ˬ¦ œÛúÔh_ž‚Y>‚‚—§AÚ}pÍ>ýÔ*ž4ïÞðµ1ðÊò'¤ÿ“QJ åØWW¤¢Å|¡{ºÄ(`r×G¶j 8ófVÓÑ$,#÷3°\(²Ðbm"©ËÔgÒGjœN²ÅÆöf­æ: ÙÕâA5«G¨Dó ýäö2ÚgA=_‡vòt¹H˜;sO3Õd,—šþNéÛ â‚ÙJR6›Õ;¼aÆsÿ(SÌÒÿ¯·ÎªÕ;ýþˆÄ3u­ôH ’MÅ\­žªþõZŸa³‰dpÌ“¾zñ·GK)ãvX*«ŽW@Òu!ï‚ß5äÝZ<­ÅÓZ<ýçO–Ùe‰&µ$„Qn¾_£¹çq ÞÞ|nù·¼-8rŸ/²s\Ü7·®šKïzŒÉÒ’ˆa3{[Ïž=¶ýŒL¥W¯¼W/·0xq·¿”&Ô9ÝUÒ}ƒ‡4Í­dcÖ¡«èÜTÚ›ôÂM«¨S`^Ÿ½yw¼·K30ÌsÓ­^8ŒÇŸRN£Œ­—ôïë××ÂÒËéB@úþçÓ³ùÎ/¬AuªÀlþä—ÓÓ§\ªÍuÏ2ß^hæw^ÌÐÐÈÖݾ`ç6¶Fu©Â¶’-$»¢T¤<í Ò¬íWW8ðÈÂÃOnŸß¤ááC<6bQ‰ÕŽÓwOOÛ_O¥ú~‘i?ÑÎ`žƒßv©‘E‰­ŸD˜_eEûǃšÚ'Ë5òíÞÎÜ>ʟض£ø!Ò ¾5Vg—Èz[¸æ_é"DHâ1ÂuË—Í£ót"1‰6v”a^Ò¥fOÙ<¼ù¼¥?|RÅ1G}m3ÇÖ"Åó_þÒœÜ7¾‡'ª4&I&§E¤¼ùS\C°ƒ®#daÃ7ï¹*Ž;5w÷«˜swbþîwwî•`›z%FüÝÓò½•Ï´4SPîLI1bJ0V>¸ãŠæÔÄ`Šü›))Mð~SsÓl§žŽCÏ/¼²*½Q¸Ü‘¾¨œNˆ;ƒrxê½÷øcÿììÍëçàNm½~öƒ,3Ñu­j=ôúO“¾I ;S“Šží§y¦ƒ ‚VöÚI˜OSN2õé¥i*Lî¬óVa©*Ö´W¼pwÆ‘|”pbâT Ÿ§*h {PMñ¦e€¿’é)‰ö¦3ø\é=í"² ß¼ˆ¿ †É°Q¾4iê$;¾¨DŸ¤ŒÕQC/óÇóë”ÓlH:b ûÌ{ÉY ÞæÍÍÏ9ÝÛ3¥÷‘Àv‹%t­øOXËõELGfÿ&*ŽmM`éÑÌéüY¿ÊhùAH"i9ÝV9±f½Rv CߪŒ +Ò( •HÎÕû Kk©—–°3 U’,ªØT§Urß( –¡m…Oš€*Ü*û R|˜C%ˆ†ØðÄ}>­Y¼ y£ë…f\Í7-Sˆ}Q}wªçÃMÁ êŸT_¯º.·X7ª´Õ/Ô}™F˜Ô×+ëüpýfÜW$Ípô„¤ BÝO»ªšbcŸiä'W¥yà¹R‘”’3Õ~§–¦¶ý˜WBŠFÝÎô2T޾21¤i[„ÃlJÓ¾=©Jª-‘ñâìÃêÞÀû†ŒR•†qž)Û¨-4цš«qQÆœŒ]j¡i+Ô¥ ’¬!¿Ç´eÌùåŠHëì¦W+Úa¨JÉ_§’ ŽJ5k f¥•Üš]E5´'O¿Ã@þé£?Q ¸†ñßÔ°rÖš0*ÛöëõÄò„ï1eÇ* —¿Ê¾{Æ+lÓ…IyÛ'ë.°Mó–á\W)5Úwª‡_|2u%Ò5¶õð¼q†skõXNâ™â(.ž;îáG>Ï4P M4SÑrØjêÔAj°­Pº¦³/ ÂmUEE“E5QjïF„P¬6_‘ùÊ{án½ö^/¢½ˆ¥öÌöæs’'§­Í —Ÿ‘Ô-+‘mhcxñ‹°íHoÖ¶º©]H~)ÞÃ;§ï¨LBàÚ•KÔrÑ.ĸV_˜jh\1§)÷ÍXëІU¸Žv S“Å Ü&`ÝÌi¾b9¬¨õ—$_Âü·ÿáÌvg,—¼q˜+\éZo&ZHÇ¡MÏŽñ…l–(„ãÈfh“©F»ç¯¤”:KA!Ž\2¾:øV<'±à%‘5¦Ìªs€¤À.„£yª'ƒ¡š$“tTûk¤äô²…Ë´ª$‰4™y¤óèò±«fÑ(nc^ÃO^ÏŸõü¹Ãü©cÿ>³¨5ú½Î”r:SÊÜ‹`àòÁS§!4wÖSç?dê°JsãÄÙ5Üðƒ˜}½Ã_ä­ÔfÄ‹L÷võ˜:l;l"ı…—­JþTpHK÷ÎõØÞ{l \ȃ»ô¨­¹ÿžçm­Ñú Pi$­bÕ‹²l çTf×f+yκÜ[ Öîö“³¯iô‹rnòN”ÿñìs¡#uÒ‘‡7†¦êŒnãÄÕ_F¾¹ŸpWß'ûj*§6Í­n…“"±¬ðZE5 ­}®É´òµ0Ô¯@»ä°k6#cš/~áÍ€<ÄŽ\ñb?Â.ø6òµ ·¤îîátöõÂñì)Ît¨ý¿Œ°HYc-öiÈj„«¬]N_+·âE?F!M Ü}Ks) wÞɇš÷8×o…CúXñIî¶÷zóx%{ÒÖlj¾û9 Ù\Ù§û”/I™\um’_bîËÛ÷ùõ}('‡~ð62vÓªÈÉTI~Y>úekÍ`É+?ˆsµÜÿÇÄ}×N3rsIŸ-‘œöî{IÍú¦·f¯1@·®¡~øL[éçaH}X¦UÁ²2"!×cíZÃ[ÔaÈí¡¥ÿá,烼¤qŠÝsu<ÔAÀ'Úg>ÇO×:œìðM„½³ïI í#Oë|n¬f©ýJÔãiê4"ïÌh mOØl‚ø¾8<¶9ß4²«$êÏaìîÑ8slèa<Œ¢´(¼\ý¡6ÁF¢\h¸;¯•ãt[Âdªa®çîÏ GÛR :J~Œ<‘yøÍCPreÏÊb÷=m &ŒZ‡ä£\뤭G\TùHGA 5"¸Ðÿ½DÊ›–“v@ÑyKª(B€º¤…ŠB5ÈRå’Ô£Œ¼qzÙ¤’tõ¡Ä”³l@ÿ÷J}å«biÒLù’FQÌ 6ñe:¸RcL•—!@ÉÔá=Α~….,ùÃÀŸ“ªxœ ƒ cäÖzb¯'öhbÓ8 ¨á R‚ `-ž4%‚?>ºárÄ謯½9inav}y{措Ä71|¥èu‡¤ð™1X^`E?íFú›@# VšéRÔ †yÄ õÆÄn§?Ü›Y*¦?Øk*Oþ½É‚Y`o_‹,5béKhZóŸÜªÈ7~ÙÜüôrc&¨ÂqöÓlniƒp4—B8=Óôû† nà¹Qõß7<ó%s‰úÀ:ã¸]M€¡ŠÒÆîÕSúLe{渔ÄdsÊÉ9QçFlnþm–[Ïž½zöjë•ûzѽs Á”¬“­`bÉŽTÌHP“¥ ­º _´kRz'¶ŒP“ØE57±*Œy¢“‘í½Km“”b¬1#`:†’ÛV˜ðx ô ½üDé¹xtɾ´2u*ÆQœ;$‰K‹:(d¼­ú‰@ƺÌMú|¶'ødEÊ¥é]“¬*{$æ ˜Ì0JýéÓ뵋Ìs „0L™ cñ©SUuçIôªÜË×Ít®S¨§”éyÑ–©<õr’§Õxâô÷>Ÿñpý[¥sf±-Be’–´Õr+¬j¦)LÀœG&ˆ´ë<€£iàHw>!‹Ÿ¬ Ræ“2¯8:~¦æO¿ˆE5!¦Êy§k½&B¤q–ÅéŽÈ™ÁÓì‹Þv¸u@FÆÜ}WMÕlª8Ö=™{Sù:˜éamY¼SsÚe4›~;S5÷ ù2¸ÌGó¾Jª_iš”Ù™QÔXÊB ò«¦æhÆË¡¯ƒQ5T¹L³þTë«ðùz®Wázþ=V¡µ;ï° ˆF›bŒ‹Ý÷¿ïE·zÍõî»àn]o²"ÃÒ¹ÃZ+RNÎÒÁŠU‡ ªÌï4'–µˆyâ~w˯g0š»K}7{ú€á[%ß"N+ÐÁ`֘ǰu 7^ÃßÒP$ô7\vCñ–cÜ®­ÞŽÅ›©9¾¸{Í·‚>y{p,Ú=LfBÀÓpŠ»Ì0µÖî­e ºaéfòš#ŒÔý.ü€ ç`,hA¹Ÿ¨?ìFqœ˜¬@sp£§és³ì„´å'` Î,CRqa!Ž®W-Aʆ…G8¬Š¡ÃÆœ ; kYXÐr]!Ïßé„fçÄ݆*¡5; iÀ/Ô$(òçQ£I)ê§WLÓ³h¦v|â‡F¼œÑ_h7îAXLvMÖ37Ú˜Š\~nÅV"çæ´Ì¬²J¤7ÂÔ/£ŽÛW߃žÎ=>xãˆÏŸï¡¯r°2Ç0|¤óÐŽ®ÁÚCsõõkîŽEAäGu©³jh¤>o4áxÒß•jyo~Ó'MÝâ0I³ ûëD²£ŠHcDu„„Æ*aú>[³Ó©Ù*€-®ˆ)6¢_T夵òÁœ­‹M¸qM†y|ŠX6Îû)EôÃÛ3lP¥B(›Í8B$C(2ì2TMÛä8ÂäëÕOá,=†xnš`Ï} TF£#ˆ^ðyØ`"wH›„fQ¯cz¥¦¯ZÙŠæ•i»Š‡ÆŠç-»G3ˆê·øS´ñÑ~Ámn˜…×»UÀkÛ^[zꦷµ±é=3øT[}ædë ÑÊ`’¾Íq¨ °<®ÖXÛ3YñŠ49ŠÓS@FÍœ+8EñLÊÏy9ñüóÁéÆñéås0¢©ÀWmò<[úò¯L›¾H&=ý^ܬÐUöúm¥WšæÑ§ù¬Æ%­’|@µóŠÉ¿Z8˜\Ï2PãwÔP> qõÆtX¥þ¤Jh×!95¦¡$~¡¼*¬ZRG$›ißšàÏ€&¡$iµO*øÏ~åéŠþD¥?ð“}…Ë”Ö=d⼿—#¿9Š‡ÝæœQS~QÛRw&ª¸®UõäLs çÆîçó£ŸÎœSh_Hý– “}ù¹=Ûã,M0[ŒÐØ—±c°Çú·&(Õä¢4©“OBÓÔ‘ä•HxGUD aLr›½×H—g»!¤’úSˆ'AaCº c#KL”2KëI’&vRõÔè§×¤Bh‘nxSé³óŽÏZôí¼oCƒ3­ì€:ª˜'~ž&)h²Pk·hâñ龬ö*Žqv¥iöäéz–ÿýfy³,›è÷ß²÷8 q8b&µûÉN9·s…ëù„ø‰¼g!‡½ðeªvüžb A>³ÅÎâ\\Ï„ÿè™0* èJ¢ ðC_.Äâž3Nûgl¬ö¼í`eeZLþT‚#'8ÂÅ _B!¬òÿö b‰eÝ’’’Ô ªpAµ­k¯ºiçû*³¦ J‘ƒ;¨O¹V‹„Mµ×ƒ˜•4äš÷kq¢4ËæLLJbIr³)x¶vÜЖÒ¬¢t?8þűv ©O5g]y À^¡;G‚·#t…T“iì¾×EŽ×<b@*<&Bc2ý›õ3<ó^‘÷ò¹÷úÕ¢çSTÆëí’†)÷·R0[•²Æžþ’\¿ äçiU2@n“;lR‡-h­¨BŸMʾN‚n0®EÒ¶‡ ws–$ý¾vøX5ÕKƒú;§µÓAÄw—Ä [ë„s¢çgÿõ}ƒ|hYóg¼üǃ½}{Šm“öUU¦p°À«R3ºC‹µx‚G¬*Dòó6W·Ó”7g  Ÿ:v‚Óìøh²Xà±3â²9@o:¬ÙcŸ08Ò7]• •éߦ¶cT£vLIVu¾7ºJV ¾†:’É1‹²nø"gÂEŠÒÜ—¬´êHnRÙwIšç$ÊêÙ3˜â $è#@“&Ô*„Ø¿ò~¼Á=qJ’é´·=´Bmf¼Uß02g騄RÓšàGzé²ìsÜCX{6Vc› VƒwYuíÉÑéûãÓ§µ7ËQÐéG0½ i1;˜ ö[£³%—êæ`Aâ¡Î»>:u:à]ÎvÔñƒÜW‘"íè««&}œ¥ T'nNã[³mé<’­ëÎ)êÎ)4gÐ;#õ}l“´èqô,‡GØµÆØ'YÀÑŽ <¦¿ IÀŸÓÎÔç$ì&6®Æ$3Ëòèôøç3Ó],3åX|‹&Ù\5s1ó¢`‘S¿ø0 Â\#‘)¡ÙÔb÷]­˜Wybbÿƒ…‡^Õ§ò&,ô;¯s¶ûá-ûÔF¦?ØJ›ñrêS„=(Ú.iÂèz—ú}!‰yc­µ §¦›T0[¾lÒêªf±oøüݼ#ÐVÌÓЄî&§Ê"2RÅýꑼµ Âiç";a-rˆÔP‹Ó ëN£—b`è²yÓTjbxÔÚiQ¶¶ (l·ë[7£ùü’öæ"©EÛÞz¿ö]e•5÷,0½c+«²›×•©¤^Z¼ð³­lZha¤‰±izú¾…èç ÕIaŽ˜õ«snThàΤ,³Ÿ66&Y˜L/H@.à l8N+”  QÚ`y¸ðo£B®pRÃe|>b ~ö{…ù>˜d¢ù×þçpN;ëNÁ½9è[E ËÊÏžûUG´[î|Á›á[§ä¾ª¢pºŸÔ˜$ËDÅÊ=ó@ýa¿z¾”èܵKsï)ã/™´F•CU:I©[‰Ž_iGLL4ùþ¤"ƒø ÌŠaž¦S¹ˆ£¤Lzâ0Mƒ±¹M®œ**¡"û~Ôrœ5esDãÇ6Їª]?R1ˆBöHÇŸ‘9bÐÅ’<ü·ŠZéÑ>Q…•<Ä&{’Á'>~åS1l¥î)Âþss8ª¤ÀèHÛ `Ò'Iºªšï#2÷Cy9lV…»›+ª­ñ©î“R:²¡ò|å#ɦ2µ‘òôžš´ñ´.‚¼¹4HjpO ù: iŽeÚý€i+¨Qî­¥OgÊ÷Ò•½ÞÁ\®”¤ú¹úSšJ=ÿŸ½kiŽIÎgãW Ö;’·_zÌö¡É&)R"5 ’’föV TwƒD<Ø$þ/>ú`_ü<ÌùeVáE²¥%ÇÖl¸ 6…B¡*+++_ž  ãMòÕaªíIò@Ÿ&ÎEþ°TP/,?äÕX¯´n'2Ow»‹á'%ÇÇà Wgɲ(ly9îß+aå$û.r‹aÁ0r·16Ðõ´ÊÉeÝ)é² í"SS;-yŸP"‡)vhÁÅb·þ* UÜr@gŸî_âQE-maC,y  R-œ¼ºTý'Šôç²Éãž2"m)DÓÌ[t¼ó•Žï´P½N›°Þœœì6BѤçÂ\íZè³>ü™ö¦9:9§/¢4 §5•Âë~dS±{“¯ýþ‘cà‰w-ñˆºaé™Èkx¾I£§õ½K¾™}7ø;ðéÄ›óɉÇ?vºs9ÍÝ5ïåxËÝØòÞv\9Õ Y#|cDûTâ}Ú mÇ÷•òm©fŸ8!S7o­ÝrG2nŠŒ«z³µŒyÿ´owa3(IUä<3«üb±ðŠ`ì•¥—ëÿz¡âæ³xNòÀ¿H&¶à9G^\dIÄõ .|’ÿ*ŠúUQgáE2„ҘܓŒÏCÍÍä!$Õ@Âgx;ìUàlé–ä~#,¡^ÔØÚ C•M"a™ÁRÝ4 %°ÈË«¶]Ñ&¼U.X1hê4M:è¹:äÛcü<iðRÛLÛvĵÈÞži–cåÅ£F*:î|¾]c#'¼·°‘r=·±î™¾ƒÒ ®½ ¸¶~:=êI}"÷*À@óúž…U¤}´–>°mvg7)±Ôš0† ¶Õ•‡íA^š>å=•ü 2,ÈÀZ‡EYd ÷«•{;›ª’˜Fœ µ¯éÇOÀ2€a¿F gþÙû}(ŠøÈ7@ Æå‚ö—Q2 Åæ§¢›[ºÕNBYÕ!v׿³+îW›SŒp…-Êh¦¯êº1øa( XVÓ$¥€ÖÑãu¼½ŽÅÚ«?·þÑ=äK}Ä58Šy"&¦Íj‰itÏ<äÒò¯ë²=ù~B²EF'p?}ü úÒryj¤ßþ}߃£ßþ-¿~û/Zùü™*ž»í ŸJ}Içù5bàRKC iŸ%-ÛFåøbQÿ/>tÁþS&/X'<§rm#ƒlÛà K…ÌhàŒ†ýxNŒ¶¡¥«<Û*&ç©øq³›HA©°émr«×:ÆÏ@ƒ=IDce½lØWÕúÈ·S{å|{É@`7p¤'KW󡎧™—Oç-öò}ƒgüÐ爺ÎjúòÒlú"o~¡ ÒŽÚOŠwžºju­£ÑîáÄá@ÒfˆË›¯«‹²þ&6!J6„›ÈÁÆÕ®­úmš;Ž8ì±ø}"܌х'§÷Ö[{uO⟳Ý"ns§ŠŠ«tr” ãd{‚ÙÛàQ+²ØM‚pJ®¹Òqî}••ý…MºQ¼­ jl¸Ä 6Orº8uiÖq¹ à/…´N§ÐðUÄ]§Y3«€êÁeK÷>É—·î^4ùg0Ñ|0lB™0™Z?è0r——ôÓ¶Ú ü­îîÀœy8ãЛ!2¸(5íSBodë¨ÊÝH41P—ˆMñ7ñö>YÕ< ~Š"^¯ˆ|w ¾_ Ñƒòv8/í–­n°É {T÷½€S†yÔŸ.¼H]ÖM·YhO8õ€}U‡ü×£ÝÉT4)«Â'´kpÏ"’×XÎIét¸(IJ9ý°ÀQ!Œ&{šdÃ¹Ž¸…µãeè¾rmƒ´ñÆSá°H×¼¬œe}ôÖ&áyõˆ(ðEDÐO™9aÄ$`,›<´%a‚cu•­ Vò7~yfšY>jó*Î BL·Ñ«¹5:Õ/àð>x~ɉ9ËnßçhóÈBFK¢M«¥¸Nh¦‰C²S,Ù p:·•sjG7/çs±XÑÔj”õ±cfAÍFÉiƒ! r5ïz„&õ½:¤P 6$bC@Ä ,¤œ7âw^À³–}»ùŽe Fãlvh,G’"RZl4ÜÇ„¶!‹òô8Œ¢eN*Í™EÿÌäÂàoò:SûÛ“eél±ýTÓÀqö'9ê³U™9p¤“4¡­úy¢ ÞõG`(|\•±Ï&e_#뜃ß"_Éf×™šÝ0—,YD&#šk;¥÷ Wµ/›!³)ÄN( Š|ÙJWèt†MP kóÀ§ÎNîg’Ç œ‹ö`·íû£$£®fÇ&>-Íà>T¶óvÉ£rœäô7V—Ôµ~¥€oIö3ÍÜòT©1lùø©ó´=±ÃûfáÒƒ.½íˆ¡Çæ¾uûµ²OÕÇv$öU6ÿûú¿mKo‚ÑÈ;íFëÿû@$ï‘dê½KM×{´Ûß.ƒ0AÞñX Г¨a€6^‡TNq¹i³\-T‰÷®uÝbÙ)Y8f U.,ho:·*ö¼¹Z¶[<Ðáeâføú À|ÊÜÓ¹¯RýK=õÊbÎ;C¨éÞzi¦ïÉÈfpTŽï4oÌ•{®ò˱ªv6×@Óú˜é;0,ô‘¤ 3üIr ÃéDðÃÛ­žûÓÙ‹u÷ ò®m4O6ÅÖ}ŒpÑј Y ~C¥]yÀ›m\’Ûh",X¾þr\©kà~y AÏIRØkh]‰é †·ŒUȧãÐ|56Ž=(‹a:ÅŠ\”Æ&¯œ œ†tÞð¯´9¾'°ðê ÷WÜïSêkš.|âñI fú”±ï´Î!eá“h OMjh_ÚÚZÅ?&QpÂ…o$‰y“" =¸}Wª¸j‘C‡†8+Z›<ÚzÜK®%¢§I4ð<èÄw»#î¶Gܨ Ô˜†Î©Æ|Ùh»6ÆÚáÁ^:ÔAÞïokáV`µ95cÄŠ÷vÉ) Ä€-ŒÏ÷#Œ¾iw袃÷%Ó¨=Øýþý|=ü.Ì¡Ëjº8,î2ƒ;¤áT¤Ñ`År^Ð¥G¨ãÁÉ|.â^ƒéVаÇ¥â"÷–#„%¾^MÚêis—}* 6¢pLòüZ×^oy›oº‚V3'"G˜bLY_³»qµfÂÒ6®Ö©'¦÷ª£ne—Ž•Îï­Ô©+åjÔÂVÅ8” ãf*ǪúÀ†@çNQ©*Äû\rÿ°>¿ï¿‡õ$ IpPd¿0sÚ®° ²›(LkpbWÜø^m`s Fl¢˜Ut!³ŒÄþÛÚ„E5w®‚ª©ŠÐ’–ÓƒCWpÑoÀшKaãŠ,^¨{ ’c§Dß|â²-†Ÿ ÇÔöÜ=På”ÓÅh¦U;‹ÝíÀM.èDññpíRØ ® ³K¢ìúoÜA@guE%ÞI•Ó€öÎëoÜ7Þ›—÷¢QlÃUSˆËì–k'mVäŒØ yBUÙmœ©×dpšÎŠ…fP+ÑšÄ}Â嬳²ÝðÉv¼mSe§"[~&F(q ™cÛL£$Œ“hoíÔ”p޶|*ÍBèà¢ó¯ÕóVñ ‘J‹$åYã0´SnS®V‘@äðCn³N5”º Ûvnƒ:‰HǸ²Z¬ %_B[{^|’Û<6`ý:f–cŸ-25áÔ½ìoÊP5Ë’UÁ$T ³¾˜¿I^±­”&Œoh‡™ÄKBg)bÆÈ±bo§ÚÂX@صƚC$¦?OÜì½U­ò?òy“–D1%4Îðéã[6NÄ·Ã0jD&»“L¡dÓqûæ.bްЂý´ïŠÅŸÅjo±£tŠìÀs›ý›X·¸Píû_’ ?ÔþÌ}¯²$¿å8–~HÈœÑÕÅ·“{>Õ~ìYˆU‰‘›ÝÁÿcàªÆç†Ä›Î3}Ɖ;Ð…µõÑb'ˆF©çzrˆ`© ÛkY8Mh…«ÛjÊ9Fyè•yê3˜é)¸Ià¦D®Á0š‡µ•‰^¥Ó™û.‰ÀSkH¸2ŒnpG Xшv œ{´Gm»¦ëv„–³ú½\z¨{c]rYøË{íNîÂk=¨òhLù`XÅÕ2Oyy©ˆy …¢FãÜ‹Ìù°X„,4l JP%‰¹D‰ B—bN R{æöp–†lcL“"§.­T°&wö‡„ùd¨ot³é©îªÒïïÑÄÄPå9£;F¥¯³!¸ƒRÖe÷<#á!–$ñ/g(¡IZlæFÕL ,ÄN†ÊŸ×R™iÔŒKlËÁ0¾Žûwíšû™¢•ˆH~JƒžM&î`rQÜ!Ù£²¸¥6RÇ>qA18fõ²²¹ZVVËÊjYY-+«eeµ¬<~Y±IOV»•Õ²²ZVVËÊjYY-+OYVðáÌâ/ÝWÞ¦·,™®¼IEÀÐ"Uˆ/xÚZašU1Ï’1¢»}ƒÍl, 쯫ZPˆ‰$vÛsÜÂ{Z3 —&ÅA‹+ œÉâAÌWì" íà‘Ì1·$-Åùáþ~Ï}²÷ަÇGüÙ¥ó@$Œvåeï÷=—qjÑs¬G7¼¬ “g!wƒ›XÍE×Ëc…„E-é‹w¬8-Ôk'Î’BáƒN3¸‡¾J²¾@ú#…†£‚ rŒÖ“ õ#wWÕ%l@ú{9JèK!éH/m9Aˆxg6`5{Î3™&dX0x{JÐ#†|™³~N2zðÏÝbCT^¡ÌŽzîè/‘n=Ù;=ê‹¿©ñ1›ÃTÇÙ, Ž‚¥gözã|þeJlëiêÞz|(õ Õ/Ë{y¬È{¹š «¹ð2Â9ŒñkpÞt7¶ÞÞc?ZEÐ2ʰ|Ô)ìln#¶µØðeR££s¤e–§Jú>jT•UU=“›p‡m+÷YjÃéóJ¡íô‚Z¨g[º˜´lÅë[Ž·ãœ™n7flc`GN¦Ü9Þ AƒGC“ýAéɉE tA´R£H'Vaüy3^-Ø‹Y&Ò1Ç©v|â°3áäVpýYB$6(ã@…Å­È"ëk[›o_­“Ô¢IlÉ[<õøô(ü™ëœ]9o7ºáCÜ ë=Õ)9ä)a|/¾S±F.e–ó;嬙`ƒX³üaüúý°pdÏi¦8 ~̘VMâX·‘¸5Ü—Š’xФ¦AkÞu…–Ã!Ä¥i“(N_ôèžüÂn$Jº¢(§âÚÀ Y¼'0/[¯ópõ  {û ¢œB GÊd|8Ìì•§ÏõõJ{°tݾõhaz¬¾ò÷@ªÿ}‰ƒû_¿Æ—õ]Ú Iñƒ¯ŽÝà 6ïí¶ï7Ú`ƒ‘ùúx×ü¸Æ_ó½ãÜê*°ðéÍÓqÏÏÓž; '=÷"ÕÓž›ÆÓž“Æsâ SE¨9=÷:rDÃëÞ:€æ×q¬#éòý}#)ŽÜ3 <%Aå¬"E:Ð[ Ɖìüh°‘ZÏF±„g`9ö©†&ƒäY§!ãr ½TÂÂkÈ<Ûæ\0äʱh€À¹!PË~m…ºîñà†ä­rêôIcâ¡°thÄꈳßæùGksxù&ºHþwbGÎÐüþv„O?7Xý‘£ÈݰlØÌ—Dj˶ÄF–2ªèÔ0F‡(dœ*ÞÏD”pµFßÊ1(H0wbÑ*O--@$œ•¤ÈZlY¶%,©Sï© îZùlÀ=kŒ6žÇBQ'càŽ?Yê0À9\å7Dãù³…ÿí`¡Vaî'×î`rêâ0‹«0ñ±!{ém¹[[ÞzÇÓÎ.¢ÐLÂx´öÜ HŠcê÷Otñ9Ì @ߎ¨Æ$ÒÕü«_ÓdwÆ©Ñ>ÜLtBÛƒdÃÛÖNY§V€™!ÏA)`# ¶.|.¬”! Lƒ|Ó gveâ\?¹$)07Ÿ[7å±q­PJ!/¡_N®-uì ¾­›ÈògwUì"Ì'õžý|ïôØ-nRñ2dä^ö@´[ï°Õ·ÀЭp¶š˜¶€ʨÅS@ˆQ_Ĭ.Öw˜ÖØÒìœ>ì§û»ºÇ铚 iŒ(“W+©…|^Zx#V@7 ¶[KÝçf<9E¥„TcCøB´¯#6í…2Þæ«–¹2.¨sš)~j^õh’¿ä$zß|ån¼¾“%ôÐøÌ;T÷0»ñ©5±¤]›¢&âœË‡Íòi'öT‚MLžoÊ«<аmŠk¥ÅN·R(K‰óï„YÒd»;Ä Üçkħsâèº4@Š;eD¤¼s£ äLÏ•;Ò°[%ö4¾#MtGX\úÛ8¤™H"æÈ# íIDâ—ðMM$5²¸’†¡²$‡®Ê–ò¶jg”¸{S7ôóû|0çÚ@!jÀQ–Q`Ö¥"ÃL€xj!G`èœõªqõ£b*=(IÌ‘šÄþ0&Ž>—Ú’1P%C Py¤JxÄ~P).­8rñ&o,5fî‡äJeF´Lg Íè|Fpr太H®äSçaAkÍ;¬tD她^…öjmÐ$÷5T5~B—béc:8WGÓò—ÆL8Fo˜¡ü¥¼ g4öôµ—*ìØÎ>êr®Â̼¬ÈˬtºTÕ`+ Ó®Éí @Ÿ‘yÁ9‰–À¹€° ³ °`¢'œ0hA\ÌtÓv@›šs•©±é C‰¿(?KT®8èENòÔ¹Û¯²äæ}Ì?e*ÓŽjø's¶áíÙŠÍ Ç­PnÕ™yŪ/Us^‘Xqøž\€³'ó=®¤bVi#—ë—µç¿{Šp­yÅåÍ8 5”¸ Å)³§äÔ+¦±b+¦ña“púT–±OU< :àÖ„ÈÒ?ÓI…âFÛ¸÷|N›5üzž÷ü^!ÃYñ‹¿Xñ‹? ¿˜Ò$}*Ã`5ñáñÉ]1£ºcXTHúºÍòÕÞcÅVláÀšý /8ªµM¾Be•gÍ|?±pë‘ç·Q[ßyæÑíEÖÖMoÝ]{ýÒ[ïÂÆÀSê£.>ê…åB0X¸g*ºý!o݆Ù4•Y’ ,³ÃÛŠpⲜ‡I>¹Ç‹7Òó¹;PrŠthcyÓ²Æ;ýÌé³K…9å®p:T…ï$xm¤ÇÉ.¨D&\PAøC\y‹0öŠR{ñã!ÞÃ8-‹¾$ˆ\ùòµ÷òBEÖ^¾ôÞ¼¾cŸ”\€ЯáÛT<éàÛ%ø5¨o3MØErƒ,Û—n¡s›.ÄñÛáÅ CEEë™®l9q•c±Ð4Rq’\2vŸ“‹âÏÿ¼þfã¯4†'ê*úí?.©Ûéªög5rà£;2`3ͺ±›eµ•©};CÊoÝ1?uR­š*‰sų´áø`2›ÃÆb~»ÏÆ=“ç.1Wküµ.ˆ6w'³Ö<)Ш‘oÑn$ÕW#7¸Í¸U›^|IHI†,"ò¤íÝa°à“ßÁÊÁ_ßÇGgCd®wÁÄFÆíTŠÖYMÏþÒöQ厭Ê7³8zHŠ:)£vÖ“LÌ)SO>Á÷ïç½4PW´pÄ’Êì±ß˜&AŸ][9«'¼q:)ŽŽZaXÄÌö` ¸ân§— O’à¿ÿ³3)5©§Îã™70Œã1¬kçe¬óÝÉÆíwTÓIŒƒeXÔSíc<7ç´8ÄS'‡ÏNÛaeôu(LÈ#¡¿4)²g}¡õÖO®‰-æq’¥Cþû4è©Nõ:‘Ö+¬-ëÞFg!Ü®’%@€Ú»\Š-®ì¾¦D8þÿ°wmËm#IöyñµŽØp{†„©«íÅuµé›4¢ÜîÙž‰,’0A€‹(úoöqŸ7b lódV@J¤Ú¢ccÆÝÑI .¨ÊÊÊJdž#š++fT1=™BìGŒnØ&„muh°’øœ þŒ±¬b‰Òè~èžÊÏ^N‡á”% §Þ½:ŽŒÀ¡K|T·tµ<÷[÷Òz®Þ”Ÿ©š<½Vcþ´ûI¾­ú)´|ƃÿd¥ƒDž’}Læ%G6sêÈ}¦òiÞ¹ÄFAÓ\‡†±¢å?ã…´ÄXѹ [—€dŽ_ÁMaG6Cç«E˜ÜEÂ.Ío›íÄ®Q3[ÒÐícbÉØ1²íï±`€¢YÆ_&7_n¯WFqŸºé5±€ù)yqöFÏØvä*t™æu¬çZ¬ õPB”¹.U`šÆkyt {˜£0)•TpºTçÍéõÉÚ\¸n2åp OkÂŒ2·ÆÎñ"ÑÅï-bm†îà@\®˜é±:,Ʊƒ1D_ÛѨÔ’Ýø«·eÿ:Bô mƒCæÆŸ""¿$kú$ÓóA™‹8)ÛÔx/ïWæÜßhª‚d¨«n»Æ—ö ÓÚdˆg!›:‡\ú/¶nÓ²w.@Ÿ>¦5u&\f‡}Z#‘=[#ÁVåKD—ŒöDZˆ¢s"ð³„29¦ Égç‚ ¨„aLËÊØAÌÝÒ3Ôˆ•XC6𛫠ò–b½2[K[A¶·iê¡W¦>HìÍ~l3ˆzhÞ6ŠDŸêJí2#£¬µçï,)«ã‹§4Ò‚ÍÀkÛÁ½¸Bi™Êá4&ÆÎ)ODÔÁ„Í-l?¸ÃGgD"<_ÌVãU–¦œš¯±V(3˜®Þ¼€ÕV‚œ«Êþ¨7È…%ü’>òf8ÉÏôáä¢|y=ÒKã~:K jìÛÃ÷RÏÊ×LßK0¼÷%q÷upÐ)("hOÒϘ«ÂO§rÉóÖöÖVë…Ú~¾ç/{¤.®wÛñâzßÎÓjüVLnE$T€ Íñ‚ jåêfF§ŒöRÒ¯Sja¿ñ 5[öË”æ¹ap‚Í×ýìšmÚ2}Ú.ý ô³ „=ë‚Øÿ\m½ØÇŸ…±{¯˜ ›ïÊ=ô‡Üž:É ãü“ 2ÜÖŽ¢ Ÿ­Ëœx\0©áYaÛ¥œzÁ [”¶¥7áedbGä Ö-†A3…'é´j1ãP®i`8kä9/¯ Î+¤ü»ÇÝÎåc°ié'Bq¹µµ§Æ½¨xšsÆ8Ð sSÖ ¨¨™{s‰x50†R ŸÌø5Jp8€~ãnß~è,-Ò0]âÎãÛô鱲웞Í{œ…<«\ÕãŠ;ˆé¥ã©!®0D¥n˜-Y³¤-Ñ—§QO‹øŒ¸Nôc0ÛËÀ@ØÀà܆B/?žJMœá$í¡jfÌXf5Ò& Ñ«æÀq?÷æufîz÷ðÔ°:¯àÓ ›×˜—§‡'ïNåî8 Á&H]ZhEƒöÔ” ãjçòäP½:ÿxu~GÉQ:+Ò§:yÚ¹lò=þð3Ôm5$+žHsK™ ýSçCÔ¹ü+?ˆc4#ËÎSºhmÝlž{ßñ³ż»õDññ“Æ9+éT¾#ƒšàäqý[нâHõ{0ÉØ_d3Çãý|qNrÏ: ßг“ßfˆô8„1 }¹´–Žt¨Ž¨dGHœö8½=*ü$5(¤È6:£M-GH#¾ù|kcŽ]ò¿%,<ÃQæÈýôʾŽçí"Óöd/Ú\RP÷„»/Ú!³BĨü`íøK/ˆq¬BTðY¤!÷–QQä8F'í¾»@8÷ˆÌ1ºª¦–ÔªrZ-áÈøŽ/>˜-õЄ‘–bU8-[’ÚÓ¬s_•Š›×mì¼¶®@¹¿ˆ­äClâÍvß,Ï#q:l«Ö-ÀÒC2ŽúÈn¨.¸@MÎñGÄvŸXêÅÎå1^`Ôœ¹ÖHhD¸8ßc"œyzßùÑ Ö:ðâè0s¦ÅÁÊjZ¶J¥{Þj¾hý‡=mq†ˆÉ6bÚMö8(™Œ!ÎCõø¡ƒÐj¬-:»ˆ+¨Ïù)1q‡qž6”ë=Uæ™Óf’ŸÁV‰D#Dó^…`æ®8kžt;o>úøÈ:æU¦°¿@Ô*½³ÛÙl¬¨;Çå ^=!#µ='u ,›~0‡s*Å;´Âb%cã›c«d°y.γ!­Ûé4ÔÄ÷džÒÓÈø( ],§³Ä߸ØëzFWm_GUÜÞ1¾Š&©êFhLd)y›Eo³˜pL7q*'x‹Q¶v|²"—x‹p‡dpw±[ yÙxõtœÎ::ªïÓiÎnY°ee ¦¥=Ù#~UeÅ‹çà…œåÄr^zу šì)Î °§„mºÉ·F;Ï÷åÓ#:ÙÓ"KŠ?=2ÔÛUVéRÚ¹Ñøv¶­ýæÉÕšjJE¹Á”¤óÁìO>µÿˆ6ˆlÂ]öí/iÀ5µþÖG£Eñ¨žúÌÞBÝ÷ ÁFTóÀˆì™¨³'ñŽNM<å~<‚x'E“ %ß[vÙÀ‹R¸DANî®n^aõ:Rp#&x<áÝÃ÷§ %î¡00 OYV&ÑÚêxþÒ¤‰p) ¹Ðš/¤i5@î=Â&™‰nJ»¨ƒ'Y0Cóð]qçµ^–Èå^B†iµò™G^›3g‰mVfHÜ9Ùk,È…w—\¨Õ‚§eô')žº!òl§Xìxrß4tyŒÇ¾ ]Àš·¶÷Zê©zyÕ|¶Ýj}h¨åk¯Î¯Î—~Þ§"ŠìÜ.²W‘íÝçægiël¯ÕjÔ»±½·|Ã^k¡†­g 7¼Ø¥¦ÏêØÙ}±TÇöR{Ë7<[ìÅîÖR/ö[‹5ì.5ñã³½Å~Ø2£Ù].JW–ê^|Bï‡íåž-Õ°³·xÃ34Ñ-æ1™Ç?îî`L«¯» W÷ö¿î×¾žðͼv!Ö"&´œ”“y{´’ÅÂ"i— ë๓~l|i …Ê™otÜ*æ(±R¢íFxL-ˆSC‘…=A iËð¼.û(ì¸kI.)gy³¤¡½…ùÎU§–W·~ÕݹÔ}ëÁ»=¨ûÖƒwßzP÷­ï¾õ ~Ëzðî[ê7­oi=øV§› I-îkj¸ÍÑáODEåÅÔ=dÓ5NsÜäz½$µôu¨‹jS1›ŒlréìÖFçÝÞè`ÛWŽ\Y™#•Ñ=n®¾c{ÏÊ)ô ï¦ú¬n°Š:NÓqðd!÷rÍþºÆ!M‹}^Ž#Õ òÀÄÞH\ÐkÀ»2]Ä&ç<ˆ.*gQn£ÇÞÓ>ÈCï‚"/Çå$0áZ9θóØ„c]¥½q! K‘€¦9§&"ÝK ,lûÒè“Õë·¶ÕÞþ2S'¿"Æ›¹n‘fPïƒ ŸHt†³¹±i͆ú!Lï@n1‡ûF·Ó=îvLr'üÍBídC ¿ñƒŸ¹ãwü<Å–¿·üÎUuù†c$rV)ðRŠO— Ij˜tÕ&Í(p ±RÊ<ÈoºáYa/ŽÎ2š©”’£4°2­qÆ#3¯ßçjªS¼ÏçЫ\cs(¯@uø¤iÆg|*o‡éYò¡Kèˆ/Á¡ÝÀ‹,ÍïêiÙÀ°ýù}TêQæ‚y^êt0PoJ€&„–« ÒàtäÓ–!ŠHœ¿œPlÙcîE]âAxº.®«ê¬‰Å«÷°¤ˆÍŠüITTÉò !ïFR]{u0Ä3µ;W!‚6òÍð4¡:"ŒÉêubï0 ªÉ;çl~—GßÅaJÜ®xUNì®ÍzŽ="c»Õ:G>‚ç¡!kMÒ£óy.¾E3ònRÓˆÓ­Ù,$fFhëMÏýÚƒÁb¦_R¬kBÔ˜a­OÒpÏü‹;x‘XUNB´új­Âþ±Ôîî¬+@'vàð6O†dÃ¥÷sÊ/¦¿ÛÙßñ·–^P¹;~Ë”æ·ç´jbŤšÁõn ®úâÁµ xUoLw¹Z=æ Ö+n[ ŽD›‘©ÿA÷€aL#¿ÕAI?´£‰v`º›Î•ˆùÊÅwdnxàDÙâ_´öœJøòÅgV×=‹ð^|ágÀF¯ZxÇ|õs)U£ þ7E«Lþ¶ùµ^“c#l8¬ÿ‚l‡áh®ðÍ7ßÚÔ)ÀØØ;_ áû F8 úíi?Èëy“âÍÔŸÛ×9Å6‰Ø!t¾Z NäòÅÀTþÅrPÝU‰û 'j•Hx_ êKDâå¯ÿ›‘˜v˜LÒ#i÷5|’ ½û2Ue±f½žðÕ‡NþLÔEDGÁ+2ðã¾Ic§E›šÛ8™@¦‰ öµKêÌ\àTÙê¿QåúŽcFðbj¢¡'üÝ¿–ïíiØAT‘'DŒNð»4'DþµùînÝp6Ig¯YugryÕ\þó.3ÎGéœF™†¹‡m:KþÒÌÒ^Zø£y?Ký_B? 6á€5®×rùëÁ”þF—Ã+ Ö‘7IY|Ö¼«Ð\ÆmK9fª‡q¤c¿7›¤—ÈdÊddr$ÛQ»þÎÜû+wÝ8WN–'¬ºãÖ”®sCþúß]ŒÔÛ_ÿ+ÿÿú?ŠÅq{8§»§)ÙýþhƒøyŽÛ`áòË(åÈÍf É7klå ¹üÀ¹2•£¦ÁE”™zIwGz…ŸéÀ„zÜîç[»~01‹ÁÔD”~ŒÓþçhéì3":Mw‡Ç§;ÇÿÙŽ:s6Ò¬(‡¥f²ðUÓênyðÔº¾ýeŠ3ú'HúzOtÔcاv?òËI”ŒRºñV›•y¾Î0º4×8a¶úot1VÈ*ouO÷õµ:ÈgAÒž„#?é‰?ÉK?ߨzͧëÝuÝéFþ:[ý·o½v˜ÂR“6Ì3|nhQM'¾Î ¹Îodb"R6[>á·úÎêL÷×Ϊ¹þÐY5Å¿ýY½å†ýŠ>Ø"Œ WùŽ¿‹ÿ—B«Ï{LpnC/N e¯ÂØÁZ„üë¹J¹T°Qã¼Rƒ ´8"`Ü c¡g¹÷þü 3%In:¼ÝúÜì*XS³g£&l,ñ4(8JFâègžÄ)\Çþ³k´j°H=#ðáÀ ã¾Øš<é´Áõø“a–Îè84OÖà èL…(äÜòƒ1©B,€þ©'– $ ñzŽ©4$©×W?Ef$ÿáÙç'm"¶¢pù,°@ÉÜŽŒ²CãÕ;m‡FÍÖ@tµdnq  FêQ”› ?¦ÞªX|1×==B¼ÆŒýõz%õÔ±µÇiƒÝ…ð­NäMäGÆüK›´N-ë dÖy‰ÐŽå>øD?ø©û¡­“!í;ò¢ì©ßyþ‡Ôÿ!õ¿©7D`wËþ+Áªx/ÕáEG,pÍp\ñUÖÁªÌ ƒi4pýXd»©ð9$AØûÉvââ|V!Ÿ»•×…ñ®µ›M89êó2RþUçwÌ»õÇ^þ‡Vûýhµkx¤[þ>ÈL·vÀÆu+Ñõ¥–{Å1¶’ øêð­:E¯M<7±Á±œ&‚²H™iŒ#ZM pÂâá€Y²2!óžLhÆè19þ&j˜„s@H„º†¾…a™)HËla“ý&)ÉQÄçgÿƒ‰SB™u¸AG?Ëípž~ ‡ ”$öǹG}4tG‰€–5rò®ÉÚGÈ5ät¤¹TàÕn9>ÁeRÌàÿî?Y#'ñX«ÑŸ6²{oYž¨“L¥?ÓßU7>P>×Asë罟[ÍaøÉääà ʈ1{ûÃ\Ž×fû¹Ä\O´S̽züz=þÈHWzO>Ÿô€¿}1fݘGCáì¹¶h%3 Ö`æ$«‰Z]­% ­gQñ™ªž@¬ò¥MZŽÉFëéÎtü¡÷c 3ÿÿÊz£ÿ”ùOÃI+>ùÔÇ«œíŸ{­À”\F/Z)‚RD:üœ*y}òFí *D¨ûW:Pûõ¡åJöU-±ò}Z«©³·jöj–Üó +F*³ŒeSh¸N‡qç 館JKÕØÀIQ•I8²IPuQ­}t‘…øj°kr]¸¸´-Ö³ØWËÒ[˜× ·™çZ¸Y„,¢“ÉþÍŒ%ª{HÉ$¿×»UŒs|yk¿=ñfUFæ•}–ýU“ƒÝÙqv¸ôsÓªé“GM)/Ìä!qû*Óµ#ºejŠý뉳S ë…ºK’õ„ÕÜ)´jYhkƒk ­ Œ.ñqÎTmœL`¯ #ÇèMšð¾^¡$8i\¶Òîè„õdŠˆ•ŒE*ÖšôÌælX\¾MerÔ9_E˜îdéÙÄ9öWæÃR¤ÉYÎζ1ïðÓ½'Dy§7¡ž¥]Ææ:@`»zÍÉÊ@‘º¦ŽNG€VYFýøŠ‚8K2àî•ę0¯*SäKó"¨Ñˆ¦*ŒÈ†Óx$>˜7j×3íVÚå,ÊôYzc5—ëm½t¿©Sê[£Ÿ®gÞT°M’9À¾f[I­`_çS‹/õáò­ç=2Ì¿—2¹ :I£‹t ×qßúÁ“à:Š*Çœ÷‚ìás9È(nËß2Ýe¾sôN½>ëT¸¹…^^W. V3:•êzLú…ìM2öiLàîðº¿ü5òD¸‡óÃÄT©ÓU¥ Úß{^ªy8öéašM“M L¿5c†G``²@Ò…ãT–»LÖÐÏ «ùV ‰ÃùØXé)JôËÉ´ÙÄ¿+n#ãÿ“<7À…h?H›MÓ›UÅÔB1o2äò8Wy©ŸZXÝ„£qßuÌ¥^âxÅL¨\’ƇëæìK‹ÐÃ6ŠKgͧ¦°e…ç9=§‘\E@ȑȧXH©•*˜j=n6Ùžl‚ÎTŠ`– È6íÀ„\ý.­ m¬Ž€•s÷èQü¨7©nÁ!þ&¦“Ì€w ‡ó[wàð=Ì’>UD „þ.ÜóÐåÿ˜ÚöŸc¥,{z€Mþ®ÂƒÅ¨½O%áZ]gÞþØ9ãVD÷d¾Ÿ¾ÇŸYR¯¹Ëá>±‹Šið³ Vݧ³s’Zä/*0¯¦ÛÑ1Ž=«8iu±¼àIFlî`ÑÒ’©s¢gÁ<7{ŽÉ×7Ì2 §“¤=CØsIØ rï¬ °A2ÐFeÁh~$'}Ù×íIT0'ã2肘QehðïÀ˜›¼¥'哲ð312Å—ðAé9ûšv ½+'½$€ÂcÛwéÙÐõÞåq‡èÚØÅ¢!ý#ÞÙÇê`2ãíN¤›ÍNÔ©V;þžz±}KØÕ’«Oû5ŒÕ×秤FS¨“óYb®=19Ý™ÖlÁv;³hFðDx5öc†h„ö¿8À*)“KðÃXÏ{)ÐKID‹ Nj ^ÅÇ4ëw‹ û©˜üƒgûªÌz©:öU×d>Kos³±Ò€ÉLæYl3åY‰ëlSc£Zxªïí8R¥MØ Ü~Qo4´ôI‘¥±eb&‰¡ ¢š€ŸõíÚÑ©;#A.kû)¶r\yG°ÉÑön«EDÙ§ÊtÏïý‰†î9X¬±aVÝF§»ïïdc,Ñ8%mËÃ^0¯§ ¸0Ãgi98UY]aœM€ÉËD®z>ØóbA€)\Lô§0¶cmu9ñÔP^öÈ.ÁNòï¦þ¿/¾7Çd‹‹Áj€,|ɦ«÷—¿Ø&m±¬=°³øö ¨ž7 ÏÞÝ`ξƒìï™Ð{ËŽcgä ȽxÕ@å“>Ä“3žÊL{ÞG8á0&ÈâÏ1B€´õK;ÈmöãXØPšÎÙÒ§W²j“p‚NÆ&¤Ú¾:¬ñd7dè… €ìd‘[rŒ+Gàþ9¼©2n€skbáæÁµ4Ði0 ¹óØQJº™ås”ZÁJ~uxô¤AZ,žÚ¶0²RC#ÐO«ƒ f1ÿHOjcúfzÈžH£áå»6ºl:R¯ú#æ³õ$m²âþÿ±÷'Ëm$Y»(:®x ?ºf;É]ÄN]þ´½ÁN“¤Ä()³®]Ëã@€¨hHBosîì ÎèšíÑžÕ‹Ýõ­åîNJQ)ff¡þ?E àîáíòÕ~«•å¾\¿Öë;©èÏÝê”®3µGg¡gÀÖÞ'"ñ£aI›–»}Fd”8Ü­%ª³YÌãzÚf~®Jéƒ-:û|ýöö¶e_·Çÿãë¹ñI0PO»êùÞ¼…ð¬¤króÒ韀ƗŽQP˜îÛ¯8”!6ÄØU^ÛÄæ…åJåI‹Kz4Ò8)8y£zÚ¤Þ=2׉=_L4«!Ì"a¥‰ Þì%Q"H´´ÓŒÄÐ@º‡wéÐŒ®ÅµF÷õ#E6yó<"ÚÀ´Á“ER„æFX†0{B`ùv² 60h~34TV[ˆ&&\z¸çuŽ`³o-²bÑ÷y‹“ýbìp3Ñ¢!SÑ„Œ.::p]ÁÚ .—`ƒ§6‹aνQœY-\hÐñ˜¡ YŠø„QtOY{$ÅÛKœdφýŨ¥>0L ™ýˉ4óØàR"l÷0 k‹)—–¹¢¶‰Ô2Ó[€p5ÎB$Ñô|uðUS.­@š²œ«¡|©²/Õcý‰– ¥ôzoîõ¢Ê1X  ˜b‘ mˆlÌæêá‹@Ð`C3¡öå‡ÎÚ\æß|®hŸö²Kí’H. b! |K™Ê‡Ç„– Üh2a’i/rw?šyëFºÁ5+Hã@³:Óñ˜{Ú´HSW#zGL.센\É…W6°·ë÷  û´ŠåeA{â5,â8XnV«P¿ÿôr£õdeC²e[eޝö._nÇë8:uuu©6®/¯.Þu”P)C×ÓÕé¥ç~;utÂýN¿4ÔéÙËr¸ ´t÷íq»ïr=Toîǃü5"6á¥TS(´ÉJ'…ràÇræ=·…èÈóÄ–$ÑM‰aÀ»õÁÐ ÝMn–Fˆ†¾:ê9à*,ûxefƒvÈÒ…K€¢ øMš‡Ÿ¾¨åŸÂ±:L 6|Añ‹ @ÒD€ú‚â§lŠ.“ŠOÌg†½îJ@¨‘ê¡­ÒWøE-ÿ >áGw½¢ø×^Å¢MEb¬'϶ZOfÔ™çtì/ ¬Â¬'´–D/Ž|YÍûÄÉf²áT«âŠ9ȶÁ¾??¿¬áZ)“•MLBr:QMN_ƒ GD˜Z“HmhÕKi›@R§ÝZ6&¤‹NÊ&ê|ÄW¤´áÔot9LŠtÂÁ¶+•J™}?‰@gÖ 3 ûyßÔÉ»#Û¤@¹™&L¶”z³õùÆF» Þ³¤L4u¬´âÜmæÚ]–è™àƒp¾OV‚ 5T$~ߨï«2ˆ—³ ‰Ç¨›tu‡=´¾³ö8éCÐ= »>b²: î´ùŽkÑdF¨ ¿4ˆÌ ‘ÇÕ [CåfÕºfÖ†· aot«v)çÒŽ*žlõB ˆ‰G“˜?qo8}{rÕd8@«G28µ½dGs~›4‘¸Ä«¾é_ßò˜×÷FL½“§j9µs^íGøÓ>ð“nÐ:zsùÕ§s´ÛÅÑ$ž~ïikwV3ò.fQZ›£cÞ:ÇïÕa‘ò&9(/Qs0Ï©1fj©t×”ªšKë˜}oõ>I»!qP—W»Š„þ0Ö¢Á/2M4¨¹ãÃF BÇš®šÏ «%ÅéuZÐõ³ŸãÏltv? BzÁÀ¥¾´6ô4 2&ãûyß~¾oäˆNbt«ç±E³½ÕÚzª¶Ÿ=‡ö³6ã&ÓoÛ—Äp}ú?ŽÀ)w.ˆ$²Æ%*!¿ÏËF ”}YèøÈ=\3ÈBŽá™Pl%pd:wó˜ðÓÇÛ*éøXÏtfãêèŒ×ã]çpÓ Y3E¢K>ôËTMƨbŒxêü¸Ì‡¬ÞÄ*Èó)̆虷øõ•©#vØIX D—®±ƒœéŠ8 ÓWìPfZXÏn²¾‡édf@½rvWì,¾õ͘¶‚Ú vÔé¸ûjóë7±þPG#½Á3ø¥Ì솟éÇæ![Ó.‰’€æ‡Z]Ak’º=`Ú51«ÆJSIƒXÏó3A_V²¼K§þmÐ윩°LZÐS•¤³¹gÐÖ&^Ñ}”'𥵠$d¦ÞÓ¾Hè$ËÙ6¶èã÷‡ 8i+5!ÿþßÄûÄê<é3“6>“÷aLlC͉™¤Ô¥+17ýF§sjkÖlxb«´RÝ!å,WP&az]eÕ‡[”Ô`³ ³À %Ö÷²ƒ¹5Àé²±A^&ì@«7! kmòVœ)&«&¸çaæy¤‰Ýi±Ãö‹ÝÖÓÙü’yæçH+š³øc¨ŽJ¾ƒ~{¦z c’YΑ_š?јßÕþÚãpp~Xa{œ?Éc=у؄r¢Â®¼«W}—·ò]Û›¨t éA«97³ç.xëôm„eZc¿™Ñ…(I¨&–xÓҬǂa=Ì—Å]fó‘Œî‘žîvS:án¡x$è­°+àÑ„O}ä9pfB™S«G¦ W’ú޹}ä|tpØ=äõ†£Du44Î9±äÃdTX³Ì]B¡x5piAeùgáôý¦ê¤Þ¸2¡Ñ†°‹ÝTÐÂÄ LËt4˜‡‡ïrÉ-7 zÖí‘,!Ï!+è'CÝ rVìTƒìª‚”wEÜ“‰^q€Œï-]Á? J îܤ[¨|ÚÙ0TûC󬧽VzÛ›´’´õqbõ¸Á¸‹èV‘n\¯lúyÓ4Oã ]qxpxÃlW·GE†ÌóIk4Mò¤Y sÚFé×oÎßžqWò¬t¾ãdÔö5$í¼5H]I,o*îê©t;ãgͼM”]“¼Ô¤)ÕÕæ‰3m†=*ŠAÓœí•ú”4Û¹k;Döš´ÅèØì§:¸Ñí|·•†c[ä^¦‰Õ^Af®$¼›îfÚðUeÖKÿ\ú¬óåÂF‰ ¦DAŸÐèƒ8ÚÝUútåÆé€ dìsDÔlˆ.7°J'…ÝHóñšþŽi5h‰¢"€'|¿ ÛX‚`‹à^q¯£.}|äÚb†eo†a94¿sfM¢pm'“ÍpØfK³Ñ­T¸ªK„X•å0àçw™Õ3USÀ5`ÛM§Ð „Ì›»¦ Þ ¹æ˜óCÏ·1~»óø†S·fEÓ#’Ô­ÇûõGµ¸èl³¥ì@ û6êv6êlÚÄ© Ýùá—ÎÙ‡_NÍÈŒÛ + $åô-qN)¢Rp5{Ôac47ýÚp¹ŠÝÅåQÈÈô0Il6\° β7I¤"-48¦…IŒ¤Z¬ºÝšœqÝ9Ýyð,qáDt+"Ü£\~^Ž•eœô*b<‰ØE<¸ÃkgæªnlØwåˆ;»Œ-“5Ëj²ÉÜ–vØ^i Øá·”U4YÃN^7¼wWG$Ø¿9>Ù}!?ë¾nˆmÂÊ«Òÿ%È;<"aŸh8º}?gæKû6èÞK\ïú &{­mõ¢õdV_iÜ5Ðç—$6ÎYB’YP\78!%KÎ×çWY>‚ªè¼ šqü(·›(¬¦Ë0hfÖš·s9k9¢èøÐn‡cjƒiï2?s[A\àLe#9p{¥37\ìó"DÚ›™Ú6ý1gßž$!y;³Ñ —¹Uh2I^ãZ-RŸÉ£ø‚âàZÐ ïrµo¿¶ðµÃ*€Ìé÷P%øÁ^SÒ`ÀÚ}d©G’ú·ŽzI´U½e—CÇëawñóƒÁÀ4±*¤JŽ£¤‚§ßÿôpçÇ:M>õb‹6̬š©ªa2 –í½ÔE/›”Å@ÆG¡°ò«½d,­…Šê9Ï*ÜY+$ê¸Iâ÷tfãÕXÓD„½PÛÆŒk*R´Sk¼[@Òš a7û,ŸÈ£aŠ:þ²†ÑP¼«÷{xÞæþR§#užyÖã3„%ÝîB—Bwœf5‚‹¨¾k ùsþ2Ó¬viÄíä&Žô R0ô†A7ž7¤Àjí&w÷ÉknV³² gî‚7q³#>G©x+ºƒ~"¬2ñ—“ÔêÅ¿ÿ†¤·#˜euèm4mœyòÓŒýUs ]¿ðʼvÎèOÜ´²Ò’ÿû ÏO¢ ,–fˆHÁ:7F¸ŒÃÚLÌFº2£b–ç͖©ÚûþããÓ'2Äç³V"’§0û,L¼Ã aVšj\%‡?ðý8¸EñNfwfW°#’Š$»}Ïq\3´óÔ6Q•lÄ{ï¦VžEYçZ¬áÍ‹ š¹qɉý‚MÆw"kÆÕ¨@°×r%°(éËg¿ÜaH-†Uúƒƒ"ý÷ÿ”Æêôßÿß<Ð1®Ô!ÀÌvužÓ‡ádÙì–%ª³ŠÇòÔ1@|ŸX\' °h=WÙpW¶õHæÅ«N~.N±-‘„0Ll|6jË!7T‰)ñLð/C8;>»:ÀÐl ̡ɲùóU!{Ùì^Ìm×C[cFæMQVDU›_=@$ÑʾŠe`©l߇¡QcgA0RfÂØMŸÚÙÈNõ‚+¥þ"`éÞ“_»ë*sô ؈\g#œŸsShã§àÓ'Ú­QÄГ°UÙ*Ïéä±ÀϜΦúd·?%$šfÔÁÜ¢´l¼q’‡7²·+Î’`¢$.¾)-å$V‘èéÀ`jI_t&’Ò ]æ)}€™§½Ô[&ðtzÀ« û´5¨ÜEË[O¬éE8W‚Õ÷1ÑÆa(»;­§OÿÃUp<%p‡—^¦K%†#ö™?’R³2ml\êm# l^°Ô¾ãp÷I° ’q5bØJ¦+=jUT‰eõÌÁö!GŒ<¤Ld£ó®s¢¶1OvÿS¦ Î2éºÿ3HD’«Ž í­ ½Ë5®bV¯ø#‡ ¹Z¾l¥ŽæÐ”ª³î•Sk˜ukÀg‘›*6oÁØw@ÿýÃälÑ«5P±`xXp{éð†þ«› 0å@m£  ÃççT±¿ÛøH.œL—ݪ/å×—r#­¨AÍOÇ!ñ4väß½÷@àÒK/‹cCM¤”d¯-ÒªûÄâ“&²QÍY( {£Šû¡IÆnè•Çox€Õƒ é2"sœÜÆìÙuÍÏAETöm‘‚ùI"°QÁRüø”ÿ7uU|úDëÐI"æŽO+‚ÈiÙJMš0p7ß'µ3©ý –¶“¸—N'.dÊ 5ªÚÏÓwg¼Nôüûw?L~eóSÏÅíEDñìñÕ‰ $³×•5X­>u$½QYddkW.­]p¼h´Ý@"øùïµ`õ{2«¡?«ô —FK7œòG7(ׂ+±k0 &ñ¿ ºêÓ†'Z… þ•õÖ~¨RÔÒ–ñä9ˆòæËHN©îѱ'PP‘õM>ÉÆñtuFÞ5¥Ó°Šûºúã”äIêeªÕ¾ß¥?­Û Û°Bûþì?Íu˜%Poµ^¼=›õÐX´;Î:oLð¹=.« -<ú”Œ»š&4š†êt:˜ªýÁ´@¾o‹ë;üžew—9EÍrs <Ïל¡Yt£9ItŸ2\ÍAÀ  U@‹h(2þ/¸­]Yö¸ÁÅ`îïjTÑ ÃMšÃú)>º?éQÑ wÅÇ÷ÌâGpC?š0ã‘ÎÔu" Û5;ßyA‡[NMH|ëe 8©Vä0Ä%õ­¦ôË¥­õ$ÿÖINÃQ¸Œ%ùEóOA Zü*"µ* 'K|Ëœ–F-lš¨èõÊÆ2䶃H„¡öA‡rúÁ*êÔ÷?Ò‹1ü‹zEw¹M Œ4ÀâYÕÿ$µP[ì¶,ƒ ¤ˆküdPO4šx ¡@Aä{¥¦ÊþUh‡yâ¶­¸IŒ!ã dü‘y-u8•¼ ´r(^öËåXÉLÜkoM`¤ŒiZ€ŽJ€ÏMwu¢¥Æò½hóÈñv¼àÂsF&OGá ¦™¸1Ûv¥Å6‘ æR¹Ýø-G&j. Ø| ¼‹›àilÁÀ¥åAžšÅ ñj˜³‚Ú¼ ˆY:]Í£ü^s>ÖÃI<,›öKû{uÚÝC0Œ*Pìþ4Šš•ƒ©ÐUÀ #ÊÜ -ˆ˜â™yûŸÅåÜUMPÁx’O­¬#{“XÅÈÚ—xþ¼îTV‚#׿×ÞÞ2±a´Ìúg[ulj¼œÒ0²™«öøgãÁóý_u/ñãmL‚T.ˆÚî¨J†,çs[©³ÔÜ ­¿‹j-l>p"?sûþ~³p·Tì$u÷2¼«ªŽ€uX”@€<œþA¡ïÞ{âåou4Z¶ŠFÙPY»ë"­Þæ4™«V?øÎjBáWCü~ãº2רT¨Ì)ˆÞ¿T•bí„×¹_JpëéþÃB@Ë’ñšz\÷>íB£HŠ£¥æQq¨ïƒZn”-õ{J&ÅD½F‘ry`Ü6Q`mKbº`0IÔ_ACñ• T•â»xDÏ—yÈÁÅË;2‹x(xænl¶‘ºö_”¬¥G¡°—‚…nƒ®˜ù‹Xàj*0õ6Ö^¶kv?²½÷”#6ŸÍÌŒöÛ bdí߇d²J®¤!7SSÜšA܃²EÓ‡‡š†,_¶ÃOuÄL·õ˜Ö®Šáb¶û4.šRíÜ´(Æ1*¬ÌcÛóJág@:ê—l øŒwÌÜT¸o\<91˜@+ÃßFiFÂò¤V¤ïVÆ¿þn³ÈQl«Õ5Ãë¨v¼å‚‰œ¨£“«©Ë–1ÆV\íÍjvÜ/¼?Š ‘.‹çVv3# 3rÝ gd <ÁJfL|u!‘Ý(h¨—i@\wDGà—‚Ž^jÁ´3NXs /ñÔd}ç… ÄëªÛkæJVÂ_1"?èb+¥~o9¿N<KðŽЖyT®8|Éïøøþõ‘ …_U3Ër³5ëwfÀ×á²ÍõÖü<¯6´¿Üû¹*-ç·‰ °ËœÔÌŠ=l+ŽnîmF«©ˆs3ŽÒÈOctjÑö`3N@žK¹/‡@h÷mÅXJ<Ääö»ËÌæé Y›f¦•öGsn_°Ã ’ÒW±ßb<¬¢ZæHo\V{ öJÇðHÎr.ªKñ%¶ Ã=³jÝäüÈ,Ûy+CË‚†NÙ‡YÉ™pÒ€“ÐcÐ4³.±Iò${×øl…Yþèx~Ž1åÓïßY:iA¼taù×fg˜8ýꜭRfã_†A¼Yñü¨$á°mÈ] In­’µÂKu5c+°„ætÖl˜'V«êêä. ËœvU!¿`REåK-DAÿ!Õ,Ö“l˜äK Ï6ðUOX(7™®œZHrƒp ÕT<â4ÄÙ—ü"ˆ–n"NϤӞöëú׎«)ôa¶œ‡ò"iqÔò ÐfƒØHGÆ”¥ËofU€-u‚¸#Ò™rüB -ÌÁïG’Ћµ¥¼oЏ¥> Ùå#a;kB.º‹-ÐØfÀaÁQÒ@æÔžnÁûÈD)1`Ë.#EpÊCì=c£ûZnªŠÃhX3ÏîLô„áaU: •[ˆÂ ‰¤y?Õ·&£¶0Ê]Á†É[Ç«f¡‘9g‡p m„úÅØ ÙË "Òž]§çÔŽ „¡›|x}pžy€µ)| .Ss*³„äÀó.P© r6KïÃn»{ìÖLJð 3¹"yæÆj‹·hº zÂ1À·¯B^€ °‡1ܤ̤²ç7s½œ@Gª8Í’eɃ´ ù)ªÆ1m[1g¤K»/æÜ•?Šm¤…ÌiDLæ¡ÊŠMª¢Ò˜¹4¶±^4\âˆ4˜r myæ­ù-'Õ‹%ºŽÎq1&Y&EL2¢=Š®ì¶»áe GNb_ hü>q,Ù°Íq¯­ð¾^J9:¼œ÷BúÇ£$ÕÜ‚¹Bõf]5,W´Ãé€p*'ýý·8º†„q£/Ô¯1Œk)lG‡gæ‘âv2m6a+dì¤[Äy=£œÇAÙÈ®_Ÿ¼4~Ü&ÒÞòþe=U% û¸’d–«ŠÞêÆT¤¹Ó>u™½H‰eQ_©¢tË&-ØPƒB´*´Æ\¹šÄ6xPb^, ¹¼¦Ÿ _Ö!‰vu\Œ¶ùÛ€a–:O-´ߡɨЉü±$«ù)L3›Ô¹¯?µw\)åPxª¶<ŒÍ’ØìÍú²¸úÆ-­0õåµ_‘j~M3ëÈ´²l0•"•ܼ˜Ûz·,ž?ÿ\q~üÆ ô~#B¨h[ßÿ%^é¸ÑV3‚À,œLUW¹Üâ%Vã,ã]ÞüÛð6ÐÌ/9hÌÏЀànæðØê*-Í:_X—³AA³O5:"ÏnÇï?úMga,âJ™±L|@–?¤AR©`çˆÆh‡˜‚"ÏÕçŒLs¸RXGªbHü±moÅ&åý’=Œ—"Ù»!(‹6nä98N2 +IVA y^Au¤û#÷ô#ÍFËͧ±#t¢HEN¼’ŸbŒø'q™Ài,…ùÒbaÔy’ø33ÞÀΰÊAó.»ñ¦ß?…@rn¢mãjäg¤`«Ã[B‚ÝRNÐsêâRŒdP¸ j¯0€›ë´»œñ:Ždõ±ž(&³—R‘§Þ`4ÚŽŠ>÷»ƒ$G(–Æ”ÿ:SìžbL¸eÿ«´<Úô`ª,ãoóÛ}ï1Ò&ÉÆº©Ùß™™‘–XÁPùfã$ô­oF姉ýIè@1TAÞ–Rª¤ƒq пl¼÷¡„±„]–*w‘ IL··gA9Ówõ"zðöI¨K&¸ùÎ8Úœ¾³ ñç—zgÓ{Üd•캬†cFº¥Î/iu´þ#|Rù8³F3‚,Ÿœy’“uc³ #ñR7 „½;öHfÔ£ì‘dºåL ¾Ç—“±Ì,¼Ü{j§£§gù|{™µÚ/“T0r ´°hˆÙH/NÄÍf*<¿¾îÿXY;0rª#¥Žu0†Õ9Ê;DpÞ Gç³xÐäeÆEUŠ # kw¿;Õ’°Û«²Ý&­í¥'á’/7Ù3yDG8*eËÀtÉ»¦"\¼3¥fˆ ˜µ|„‹P°V²°T<ˆ%£'Š£ùF%båNÙh‹!ä*µ !³ië{ŒœÌ'hJíß1¢O>Ž Öº£?n×rnÔ´èó6³ },/Q{08—&ãºÅ½Äg@}qŒ]:ÿxñ¨ê<»Ú N£%wžó®Ý´U%½$ƒ½Š•N"k!35Ï>+Ó\’W3Ò¼.Äÿ;ÀžbÉjÄž,­äóz¨Itî}Ëçq‘OaóÍop*Ü`£!oHâÜÊ)çlu}yáÉm”Øý¬«„'&Ê&§{ 3ä#–¼Pý0ãÞ5nŸ.ïæ¼£¼_+zÓ©“$mT€,½î`è,âªõzl¨QAûƒº=™šG›3®‘Íð¬¬";®ýVjkÞV.¤u=­”g¶{jc¹˜lKâyÿ½ê³.UñPò=÷¢¤÷P´:c»ÞÒ ºªŒ2Nt^¬F§˜Ì_0'L2ˆ‚’‘z6¯`Г ÖÊ8È5Ørâ9lÄálŽ&܃`’hÆ»«I«Q hÈž²¥Ôê#lLøõÌ)ÑŒFPת´°?F=æ1œ&rÆÆ“n6ƒ‚B4Iã2>ò`Úœn@ãŸí*5U:Kâ<Æ^·¿Óëoäi3aîQþ•QøWþ•QŸG£‡ùÎ Qº»p'a[?«‘—®G§Rˆ¯™%œÆs­ÖÛι†šÙÙkVû$bçÎ kµ ë+IÜìq“e“Ä¤ë œžÊ+;ô@º*¸”kNñhßy„5>"P?nÆ­6ª)֬êëœ^Ò[ä¯ÎÊ(hâ*ÆHòÌ ôÕÀŽ×•®ghÍf£ÂZ¸2ˆ2ÌΦd—879m¹ŒW#—–önz3å³Ysnµä´-ŒTŽ7Û³g¹$>ʽz%I kj Â1Έ§ßýÚâ=Ð4h1K·‚xñƒIûmjNéfù%{ÃÕ•ƒaRˆÐ çØ-sì©f›<ôÒ‡™"Ñ]/!ŒÃèŒúúGþÖP‡À7]`Þ]"PŸü>LJá˜ôìüÃÙë†Ý¶^Ý.ò_ŸR[FgÈJö0ýWí, ØÏ¹€xΟ§Ö‚ó”ä3gÊOø¡= P8á}ìå*lÇyöû §¦ú‚]0±»à„+T0Ñ?„S —‘"j†‚]v+Gü,©-¤ŒÙ¼‘Ñ”ó¥ÂBÁqÑa’äm~›»ÔÊT…³Ö'lq ›jÅLðiÞ+¾»bX¦¤Ÿ½›þjœ2ô83¦ô¥ã|5zb‰é,®æj.¥R¶ÖÄq°mNÁÁž‚žCl`-‚úIßè§@4ÎèážÉã ¹»Ó óåSõVŠÑ-—WÏ$ ¦^í~ùÁ4/sW`­•Ú©…âp^MF³zعYÏJmV2=îþ&ê-ŽY%fÉè‚ÍŠK†Êò(w|üø‘ ðkÌÄ6ñJ¢€gßÁ.ªÜAŽ^y¨)2tð³”·#?ë_¼n1Q’5¼4lbÚ$ `FX @öÍÆ3~˜ñw ‡B¶3‡Õ-¼÷Äš¾dôˆ‹ô¥®õÄàà=¤·¬[/„úDE ì<ˆÕ‡íShuöoñ§‘`â2—]'ˆ«ŽÕ[=ŒÕ~Ž>æõ' ÊE Ø~`>µíG\Šqvà§@`êô†é¿ÿ'DÕü¤Þþ%1óE¦.ƒ0Ë€pº?6ŸêÅÞpJ[õdŸñ…ë¿_þm8P¯‹,#np?ŠùCYæ[,üR@ºo±\“ö%–•ŸokÕÙ_/ÿï·üÈy¼lÅ/l>dæzì ×ê[HwTó*›t«‹+Þ¯÷{K}Ç@(ùFÃö¢[}õm^J›µ«›={Jį"p–¾A­÷šQسºÒw®Ô ]„tôÒ2kòòY˜¶Ht§µ¼{œKÄ5ù0£vâÁ²a¯¥ƒ½ÏBŠºß¿òBwõ«—zð§¥àIðç¦à{NäYæ1g÷š•|¾P£ÍÞ EÜ\&ç<¸övÏñì2òÝÖ³ÿ Ž}¯é® ¥.âöå\É/\ûêי˰¦Ù}àËнþËq•×Dð/Fìç »>fjjaë逓‰6©¿<ñúЭiÆ\%å³îggf¶‚3•Š9ƒ7m‘Y“‘CÀælÑâ:e@€\œ2ǰ©K<e‹œß*^ìLÃ÷U*¨Dõô»¯‚d3ÌJüܬš"<9ÿïiôãË䩞¤óÒ;ò1ÚBå ^6 zœˆ0*E]ÌTåÍCƒ@úVnšIÆ(}Zf"l €Ôg®”x^Ë^‹ìüqòxŽ£ªM‡áßè™iØñ 3¶|¯Tä.7xtü îð^šKQþ6øWÁyM¿v:JÉhÚPa¾þü§Îɸøà!]Ëô"~÷Ò-ŽZ î‚^Á[²2gí@+nàŠj[¥·ì•åÍòâÆK)×ËlfP°ªÂšŠ´K\ ø¥õ9j œ!ÞvYÆ59I º4Ž@Ê€€;Ĥ§j V~ògd¤ÑòÝr|ôæ  Ѳ“r ¿V’x<®Ù㤪L¸X/ñ¿ÿ-憚Ýéò¡¾Å¯÷£¤¸:Ì5U‰¡ä¶°1-ÿȽÙ3ƒ÷I‰Š O¸³ÝÚúµäú¹Ú~6RuèŠ-ñù:koH×@PAüe[sðØǶÒRÿ]Ü«›M橞ÚÐo:3ìZÊI,’±œ7P̼g*OÐlŠPb(²CÓ™[š86Î,‚²aLömø‰.uW>£—ÄZŸ Õªá7øR7›ø7«ÄIJ‘lQ{z ¹¸vÒ îúù¤ÙäwÙ´‡< î¶\†.%ɹ'ú` œÊD‡ŒagËOŠlhr4TýsU–g¹CâiO“(*ºjßð‡Y!j øËO$ìçþ0+ãä9è2H?…pèO;Ì{ È‚ß_â¶ 9IyNÜïZ7üvæ~p vÂ1#¹&Ô.5˜äº›LÛtßirO˜÷Þ=µÕÚY”έVÆÄI—¤ŸêqÀ¾—fëï1Cª}dOQQ±teqÍ1|æŽ4îN{e Š›z·¸ßu2Gêž‹~M'#ìÁûß! ðb£1PæJgÙ(hPYqÚð|­ ‚¸z¢Ò€˜³*W‹É¯ìýò¸øz’ ¤WÝO¼,rÌõš6–~Áo$§ãðñ^¥ùât'ÇåÛÎQþ‚ÎÀa …Úaã'㤠ÍúdˆMp³ŽÎÓéŸpdD'0YJÌ]I ÔŽOd©)gns¹u›~ïý. ü¢âò?£w;±˜-‹ü)ˆ"1¦Ë†7îRšEAäXSàÀr^aQ®è±´Aü(| >‘á&H4å_A¼isý¨Ì½äÜ„ŠÑ,ˆ4c3 âŠKô£Òᘧ|Dég7Šˆ"Æêe¤4ULi<\Ž+H ìz"1ü×¢ÉPwƒJð'_y•§Q£Œ‡‘’}tŒš3È—tUøMHÅÁó•]þÑ)&$°ÐU—†Å˜Γ¢7üÑŸ÷m¿%²~´¡¡À£›¤Ç/øQÑ'ÝEÐõTñ“ïÁ@boYຠ™EDèsí¼nWî°Å¼ _âŽ+O­ ``ÁШƒòD0øîL GÁ.?V§$;kÊ’tDY† ¦1°éœ½Hg…>\H“’2ä‰WÉacÀ6Y™`ê§`]ˆz»î5 êbù@ÀÿÊï½úWä}©´}]6£%€äìÄvLÊ6ÓB–O - %aHAØaF´¡÷âSi`e¯9+{Ý{׈TÂ~ˆ!ଈŠá|3´ à]$Šïžs¦¶zËfˆõ_ÜÑž°Ãò û·©C:mH©Œô.1SDÚ†á¤áP\%aOPfœ½UÃ<*ÇSßó?´ÔU22¨ö +ò0ÑSµt@’YŽ;É)§î¥lØò'ìb6÷Á3=#<ò,ÏgwFYì$£¤«i™;Œ¯ŒMÎí1 {«Ñ/gîŒÓÊþÚ+Ânù‡¹ ~5ÖrV¾ÅUpQ» xè<áminº–(ög®¾ᯛ~Eœ¿Ä'Ø2¡ðQHäTõ¢Ø‚(K$b.Ì<³"Ôâ%B¯*c®÷ΨÅûË×S³6A;¾›{&ù{çOüþü³„¸NVÅÍý„pæ fžgÀà˜}˜óÝà@ЇÚ93asû§ÃažŸÛ2e©eAºÀ1%Df„ˆžBx³àÜh’•ª%9¸Y¢1ð׫”œhæÑ…UÚZÓŽ–'¬§ tV¤’0ñ.ˆ¾wìFmó-Ÿa¼jLs6`@òœÐ€r«Nñ¹æƒØ æÀòž#¡iáŒÿÝ)š³ê¬¨„WsfÒ‰ÆÐ›V"’¯•}&B M#öC,L+«m(ö ÝÌ2‡lÓŠÝÓ'Öm®ÐM¨É+¾rÇÔó×fÁÀ"ÉloÍdáâÓ1›QÜ!‘M rP„tþÙ$½Oƒ2%"ëüè,#5=4§l∡ÕmÚZTÁóC`uP›ÆŸ®¼@‰kz€„5J¿z–¯Ž_Jª¸÷˧³ôPáÃEV!–’Ù“‹&øÀ–—ÙgF_–ûâI8R%üüTx•öxFpW¯˜‹$i‘è:T•'WJÉ?sI‡pÏ8¶Â¤^a|«sðú¤ä"ynÒ”»ÖÓ“šÚ•˜R §l–`¼DéjHÂÉ­à”r>§ÎL›}âÜbŸÎ¡CújÈÐì«Äcƒû`òXü¼tiƒ¤íÒ$g“yCÔˆ  ò^KÍšA=AŒÈØf˜!Ñ7µbäNIÆÙpsFVL™7ÁŠù:ôãM•j[Æ«ãn èk¦þc=œ} <õ<›ÝËX:4s$2tøæè­Úx3‘ìÛG4‘$/Á})è%ƒ˜Gµ _ £¿Eêú–šž¦™öÅmXØ’†Jz©–”ˆú(¼í u’»¬Kê ÷eÅö?4Ux™D±j¿/¾…Ú¶Æš.?ÇïÏЀs<Æ¡ÎÊSqY9ÏåG½åþ™þ_?³¬x¡éÓ÷>ù@¶Û‰–Ü›…"t1p_f5Í~“€ucgµÎ¦u¹ËF¬;“Ë\P¹îfITä¤]#ÿRô<á•©^€0²žêo¹·5hÚÊù®F½¯œínÕ‰Væ@G³Ê8¥1Hßžñi{Q¤Ã&+g?w¾¯g ¹Òg½¼š‡#\ÀH.j`£¡~ôïxwãÄyFöûqÇœìÇëÛmö˜§åÛä?z†ª'Ë V‰qò›ÐM .)é…QøWLJ2$Þ6pÞä.Á±¼ªøbfÊ(&1wÙwW¼šùJzËgËb1×’¡þ‚oøÃ ætÄ8™ÁxµB\³¥V<\b6ö–Þ|Ű—Ük‹“&ÿÆ{M}õ½fØFýð`4<áMÞëYÿγŽCÿ9Töÿ€3ϬÇêÏ€^^º‚¿m+ÎóÑVùR'ròNdóI=Ü n‡1H¬ Ϊeœìî…•çº W¤ÊËøŽÚ|À)®³¶‹æùòr1sÌOp)ƒ»h_nªM³³¨5ç!÷Ã>:^½¹ ?L –!ôWo+ÙÏ%|™ØÉ6ÀÊþr$(Ǫ©Êô‰”ÖxŽ£8ž‡¹ur`K˜Êíèà`hRCdò2äJã-=ÿÇÇüŠQ˜üʘ8 ¡†U­Ü©v£ ]ˆs–@ˆ0kÛm œÍÝC)Xo-²Æ3Ù•>:>>,ñòM>GÖ*~ØÅ<“éQõêßxƒ7jÃ3jírÂr·Ìšõ–#:s<,ÛM?ç9å2¤ÌEшV À©âGÏÃ!B.Ÿsâ–\LLšN¶XaS%yæ3kB¨Î‰î$ðé„mF fMê—ªJ5Y8çó·A5¼4 ›Ã·ð½-Öâ¥6!£* ͯ'iÑãµÔyF{»éÙEz¨ ËÕõüXŒ‚nr·šüd a^ª(Ðï“´KëÈΣfa©¨ãGl5ãJ«U¤ÓAPÉ{Šö¶Ì5çŸI¹­%…íh‚ZɯŸšP ¿óž8•¨Þ4 DÈ’ò¸aá3òP^IÄLó!êNš%ž¸qº&UõòQlÜ€1»j$ìåæ™%"ìYî]ÒyïÂ×ñÓCÛq臟á!ÎŽ*¶– |áA¥—¡PjžLê–þú–ZÃbàY¢h²ÃȱÂi~ÐÙ¸û\Šé'¼'ÉQ#ŽVIþpÜ4CXV"¾iêUìu㜕 WÈŽP’œºÏÖ—S7çäcX¢‡¸Òòð2ãnYáИ[ÁÂŒ`3BF*Œ5+ó;ÓTXUOh"]7ˆ€5@¾êe¤{«üãïµ³¬^›÷\dù ¯1øÒž¹_›|ò×äðe6ž^5)¶ ï°³¼!ñ}ô8ØrôÞ¦A0¹ L/T àA7ïpô–cº‡qPuyx]OÍPÊuq–^[‰r ŒÁ½·Ó²³Èƒ÷µšCDÂÚÓé"wœZDœÀíûš=¨"«h":óÕG]ÛÕïÈW\kù?j%ÀýOh í–ÎäÕÕP0‰¼SIÎÑ[fVå_yÇ€ åyädj]™†q QŸuA•䕨@71C0Rç¶¢ #f¹CxµLuŽ_3é>î\<ÔnkžÅlÝ¿DèJ<(¯í¹I;bG¢Ù ¤ÀàPUf"™¹h(oRˆ’Ï3ì<¶èO‚ܦ‰>»4„BéªX^o.ÔÆ›ŒnªÍ†:;úGCý¤»ÄæzrÁ¡ÉÓ$ÌûµŽFTè²óºA”à§iRL> ȵ¡~ÑÃ$iÀô*™ñn?{{ôpËñöhé à·ÙI-ç¿öfÖH²0í=Ø`¢Ò;gn0¯ ®³,J 75M2é “_#„…‰ƒ8rHâ_›±£^‰åcjÉ dšxù‹³Îa[,÷lklÔFfÚÒÎM5ºGé¤G¼ÒÏ—o¯Žš'oZîçæ=\6ÑöÊè_£ã*Ø Ï»Å+hšÔ‰Éƒc˜p˜ìnPu3Û•Às³_MƒD+Qꀺӊ^æÝÛ õ+øø1¯^ð¨åYppñÌÑ5Æ.7ï:'¿r?‰•|$Q’ìBÿ¢;×àE/à‰~ª1›æ‚;.V¶r«¶ì¡;P£ýRâùÃŽ‡²¹E|Àl指ÓÕ/Þåk›¹|h34ÙÞv•Ì]’³ ÚT^òµ9Ü•zÉX@Bä#øp¼ËЫ¤ ¬ÒpEœ„ãÝ›f@–ßf²ÖõÛQ&Ð=dÎO*ì™LÆæN²Lÿà›âlW{d=h%ûóc5…%:Ì ~Š¡вí̃ÍÛMÜ[:k'w¸Œ ðïû×GL,²¸{úøíñ•…êû…6&ÁV+2Xå‰'xÛïŠÊ ›lÜt‰`Âç¶W¤œÂZæÔ(õY“hÛó,(A(ª§YTŒÁ`Šn¥sq¥8Q¡E9‡G¥d®0àB´j©?!âå*¶LwMj©:HúÈ7ko•¸Ó=›®óÛ¹™[ø[º#Ìî²Õÿ` p,ÝåL–ŠVšóáËДkX~Z¦G´¸Ê½ê‡ïn 5Cßk²nm¨9æd€ØZüZ5 ÷vó<™õÚº2ù]ˆÀ•Š^³7T'éçÐf~¼¯IG)z<+t4åBš•O<›V¦¦_È q܃4Øl®(Ì¡'ç—4ïMž}s!ðÓ7ÆM9m6‰ IB–Þ0ð‹¨âEÎÅ_“àØlVîL~ÉDÃöÃÀ>tÞžÆÅÕ)µÉí[޾Ò÷&÷¹ ÉÌžäžTƒ3÷»¡9š„ÐT-Û¼ÀWõÌ|GÉx\Äv¸NG¸{ôæ’ŠFcu…&Íù ?‡pb4[ˆ/†‹0.î”5Žô\“4Èe\‹·èTëü’£Tû_œ§«ußi20"˦éòëcŒt¾Àñ³oÁF¬ðÜC}Æ(ɾåœöØYÓ¡±f™.+õ¸Úï“•u¡d4~ ÌÅÏØòQ {Å NFa¨6^ÓíUýÞÊ\žkbêË åsSý\A.@aóÌò p-nµ:çhê»_iEÉKÊ•,Ô?òäqªEÒ£÷bu&IíŒÌKÆTS6E¶Qǘú.±±A@—Ëm³œúJÜØP½wIrˆ’Õ»Ë ÖÅ#ÊìV¦I{7Ùò:?,‡f¬VÁ=¨)Ìh¶'ÄF5ñ± ÍœÍI]¦u‹‡ùLóÙŒMâfû~e~ÌW\ÀÚUVŸ¼ó#M|ò …mزôªòˆXÂÚ‘l$V=n¸d‰¥jûÂ,]õþåY´åúÑ6èqƒÕœ‹x+]d0…Uú„Ä âÃ!Ý 8ÄdfîmFž³mÝ_Év¹®$ñq{PwƒHŽ)G[º¼étÊ®ÞØ8@ûÉdðMhF‡8ðj™ÐÌ€ÈqÏ€½ÍËIr7¦—•]?Nz‡`"m’V Û_ý²ß{‚ob Žò¥º p¤St 12êÃ45™ºž¾;«ê ³²J•®Ø[ýq”¨ƒˆÈ[o˜«ýTGmn xç‘ϸÑ<™fól¼èk€#^S™•’¸hÝ¢iÅ׸2ÿ(8x üÂX6&·MbFésÓTkâ׿dH…äþEÔÌyÄCíEÁXi‡a›‰TãBÍ0kút€+µénñ“z=üéë´yÖ„£uá&ð›ãi°IÔ»d¦…Ñm ©z:ß¿W~Ä›çjêq2SK7£$£)™Š©³qªõÊÛrÀ'„ÉÔ ÌPe˜ô+^5H¿¬õ]ÏE~£¶ZÏ[/ÔöÓÖ³™“qP‹©gÅþ÷LHËûaLÏŒë  ºQÚÕ&º‹Ö¾:2€›ÖW‘ñ©ÂѸ²oaa¯3õs~S¢tü'‹ËfŒFÞáõõû¦Ÿrš k¾1(ÎóamZýýï|¢k‚±u*÷ 7E“Ý®8Ò—<#.yÉØ‘Ñ÷Q’ÙÅQû§A¿ÍŽ<7¹>ˆV BpñšÛ•ª—ô4ÿ¤>ñHíßÒ¿íìvz'B¾~‰‹<Œ²l&öÔ»<ä<æf½É–È@a ð SÄÒƒJb:éèoƒv>¥-"øÂI$ÀA:ê)ü„@/H*?¯¯³ìÖÿÛ A†ÆÔ²ŠØ€I0‰¹hïGÔìÿ­^ILÆlp‘¼ ›F\ºOLîdŠ òÉ`XTÑÁdÀ­Ñ_\ÛŠ"nt ŒƒÜ&^nÖR0ã¬M€¿câ‡ý©(ƒ¥Ÿ`k=Sÿ;ŸjYò9ó/_xAª °˜Znˆ4†¥¥åÑ‚¥Yу&H²°c¯D‚Œ·Ãh›’l2“eNtB£apǾÈ\Œ¾”¿|LòÌT×óª,ÖÏP)ÐÙÔƒ[ò¬¢Çë$êœS¿Ç¶é¬ìY!Ä z¸’+„%¸‚aëSºê `{˜åŒôn+×sá)5q–ÜWœonŒ²9ŸNDb=ë@å2QÁ]˜ÍTKt›æ ã³Fç†1(³Z(¿aÂ(Qõã* ù2±¼ä¬ïHœ’Œƒ²­ï<Ï, ¥Ü]0¿°ß-£*‰ŸÌ îc‡ÿl’3«»º6øÒ¡þŠÒéë7—.—AÌ[Ì´ëWÚ­ÙmœŸlÖvª½fêãÕV{áûñð¹u€l(‹“‰»Ñ¹{~-BPN2›÷ œ R)˜ci|¸¦TøN ÃÁ0¢ÿƒF{¸XmWà‰I*Ccß|Œ²Ã:ìË D&«lŒ¿m»:%z{ô‰¼ Bºî©Íýl(Ûé§V‡Í  _]…·:ê«×Dz€ /-ùÒöR+½Í‡M Ѱˆÿ)‰‰íxÍþãjÿ#¾µbþÖ†z=·2SòJgšê!' ›ð÷v—èHîš; R¬}0¤«'¦»øÞž §Y8j ‹&}'1­|û¿ÿW û7Q–%ü~|m÷èäôˆìÆA^›ˆCæHÚÕå¿Ë&áƒf'ïk¢oœªŒþ´Á†ö†1u¢?lŽ Àb×&aH‡ÙÿØí¶Ãa1 ޤºÇI ûý]â;_´^ì¨Ý]UfÌÑ/‰k.Hx‹•=¦;bRˆ™0WVéÈÆXBsqtN˜òH- 1¡…a¦â6a;ýœ_@BäŒ" lÀ»µ‰F^éÌô¥ºÝÅ837æ°ª–ŸàŸ:IáX„Ý;—¿µúÖŒïî'ç†)qØ9 ¸{­=õœ·PWÖõöجä¼wÂJ(ä;°1ÇĪXÅr'¥(¨60m‹*oÊ6›¹c ÿYù-&xNqu1~¶(§²fSÿA¹‹½æâðNýà?Ø,D¿n©䞃¶¢€žaÃ>—ÍÈ"ö‡zÌd)~|ª0£M³2åiOm?!±qæô^ÒÕ3&ÆkÖùúØTåIW 1[@R›q}µêRGb‚TÜ|}iM¸S¾à2 zOè¸ÛL¾•Õ§Òeçõ…²ãa‚Yl‹eF2jºª;[¯a¾fޱ·áI:ÙľˆCÀaxÅ͆z3 â7ý>1L,ýñý,EÂ1úFÍ óqÔð$°GCp%*´RF4ƒî!=˜É&écÀM}ÚSx9·ûé=´Oˆ?%–gg‹ŽTk¶L–ÌZ •„æÍÇJØÙµYZ] åº=,rÇo zŒ-ÿ±¼Á*kA$tе¸bæpãrìóat7²0vÿ3À™±‡(ÑÓÖÎ3õl˜QÇyÍs± Y y" È‰ì"( ß–-rÀÍ4UÌ65®7%ÑV¢˜ìwM¢µ7žüHk¾õ¼¹õ¢¹ýDmoýøäù[OÔß·èéýf'ßÛ¶[;{óJlñhas•ª¬¬èŽ%*•£ÛË&q¦ì¬=”Íxt3„¾ófÌmÖ8& |ƒ;s—±øzâLb:Ð: Ç Âå‡ó9rÇ\œ‡ úyÒÙÐËÂAl(Š1"W›÷QÓ¨k‰›0ëø^fïvEdB&a5W%ËM›®–#)E1ºº?ˆ#*z¦ª=ëõ ©ÁýKÀçªÈœ 4€ºC¿qlX¸/ÀlæÑtSš  LaG\¢Y3ﺚú¸žÿgÙ—ƒ«³2w›;~E2ü-‰8Áÿ\~†ÒH«Ï@½ï®ñ¤aš[àE¢û)Èä0Çå°[²°æ ËA²ç³¶¤)9Fh;¦6sw@r#Xm+ÚËWøFG~FTß|j'™‰”+ºFâaYú8K{yF½=9>»îHÔ6”ª~@ ámßíð7³)1Cn.g­÷f§ã.Ñ÷Ö¼1N|kÞ´,ƒ™Q.ZnõꎢIµá¸Z+iZ©ƒ¦ä9„;Ë\Œ[jEié™íŒgÏÞ Æ”ž‰G¼Ä?TÚëý$µ²/~5{C\K8™T¸XC†j;‡9EÉõUïI È8²À6Ùò.MÛ6-ÛŠÊà-ö†s%Ú~= îtI‘mUÎ%ÈÇ9GÖÉÛÀ -ð[ªú^óRoÙKË÷ÑÉMdƒ8=¶ïdM”pâ/®€Iš=`ÜÐf«eáEqìÛµ5‚—§áŒ Ÿ„œDŒ"Ç,%ñ>Ä9Õ…’+ Dlj„¼šÈнE†vнÛ0ŠÔg0g–ž\¶Žé,V~ÿQï‘ÙU\ÍÏô»Í R£è>J‘ô­oÂ4g7ë8Æ«c ÖÜ$8—¶‰ç ã-µñˆ:³õhS$dœw¯ˆ'ixC{–Z~G¿W€Ë¿ÏD‘·ÕÚAv¿Ý§­í­™i²¨dw#/Å —¡ò[UòçsDòÄÀ`4®,%1o2„þ'ä°ý.ÿ½¿6„sú`Õ(/Ê\̉3¸I]3Z§ý¨9 ¯^á«{zôšâÛ´CBé–ÚÙ›3~_;¯FFC1›¤‚ˆ½l¨!#áCÏ!f$+ìKÀ"—w™ L3²5G&Î+mè6Ñ”2EÂîœí¨¼ÐÈ| æêØ+a¬™HSóÖCC§¹ „d:j™gx!t“$o˜(.èÍÔ}È£!²vÆaor’†=ÚV@a©öƒ®|nßCxJÆLZÔ…`ÿŠÖQÇŸDæZI€”ïìò‡v6ËZçC¢ ¾:ø~Rû#þÒÒô¥=œ”…^Ñå>!fSûêu@7-ˆ^5ÔjAí0n…ÝqYœ=½`€çýívøC=né^«Ýã8LÙc@HI¦Q϶[{[³‡¾ÔÞÛ½ÍbP7°â‘¡‘ÓJœ‚ÙaK¼ ‚$7_”ôǵŽv]c+ö˜H²¯^%£§µñ‡ò©>¢¶ïÇM›y‚ç²i:¯öÓš$Vž$» o‚CEªÍ¥U¨zb„sAÿ¦ÂÛ ™õ@úϘ¨m@¡·Óû6Ïy›0ð¼­Ô‰(À±ßù)IñN“xÜ]j"h;ŒsÅ2¶P“$´‘ŸÒ–Q¨²"PÙbÖ×#!´T›¢ŒÖðþÌdšY1EÆØs˜B È­±§Õ•ïm¸ ´ *˜&Ä}?ÆÌ“ï˃–}€{z<1ç|õÄ‚±£nvIÔÚ{ú¬õt¾FÇCuÆvŽŽä^b(´lZ4i3‰­¬8SiþسðÇ?i8€eUKËJošQBW×Y6„¡'Pû¡ùÔÎRðÍ­“ûL’ Þj={¢vv¶ZOf•ï:'e݉}­j°ù,f.±VÕ|¬M——˜ ­ÕéM#uuŒø™}¯õÜ×>I¸\$ý÷ÿÂý½¯ùÉL mQwH~R;ÿ­1F·º`“iŠ¿õÇ:¦Ót^Œôíˆ.Y$Ÿî¯4 “_»ÂÔnµ°Q·Ÿ ÔÓðW°®h+ÕM¢ 8>“îãUT6èêÓ$¡¢Æ,û¤[·A·=`jp?2›üN_¦ Î}“4€vÖLsh}øÃ«D¤ŽšWÇßÕkXßöáC­LiêJüøø‘„“58PÏ‚´qñG?D‚ö[¼ˆ>Ñч£ •µAŒÃsÏGD (_°ûï¬:Êm+D¤KúYç$½qNÕ+ ‰)ïS8iò6Òikð©i\á83ÀàŒMãS±J û”Œ»ðB¦¡:Âè3˜Ò˜´Ù§%J¢>¼îyk$Cp³[êù“Ö‹ÙÈDzÆ4€ëªüê°“´ErÓ(Á1î}b» ¬ÿ²ÌË¦àƒŽHP:DÎðñ]ùp™–ÁlaìÚ“„¤3îP°pæ(Çì™@3![2' ÉBœñ(©4¶ÑDu‘4‡ó¤—D›Ž¥¡U15½ª»™…2{(± Lz:ÏÓ°[Hâ ƒß>2¿áÖàYfzeQp<. Ü[Sˆ•‚è:‰¸EÜ3IEXÉj{Q{;·2öãlA3l†êAÜ>~ÝYÞ`}8KïÈÏÞ€÷ÙÓ ŠJµ âðdg6»¹árªñvDš|Q­N)Ál‚+ëüEÍ©©(GWr¼dâ!ü“]Üâ’Î`wN[Rì‚.íŒdáxÕ”Dç]”r…éH]Z5¯GúúÙœ„M‹\Hœ>M%ý7KXy‡ã3_ÂÙ(Ãèò›9ZÈ †è Ò !¡‰½:«fN³Þ©ìCˆ6ì†ø½…ëSˆ0Bí§ò…¸‹I’ [¹·Š°èµ¿Fé4Œ@ÙŽt±£ZÏ|ð¡C–ߨòŒ4Àþç-uMJkV7¢]âX)G߸ðÑ›××oÏß]¿yÛQ²¬E EqÕÔImðKåáìK¯߇S€l)4Òô]Û™}š•îd§i0€»Êy2¢#›pý˜GxÉÈ=ž}|µ`[D’ŽýŽZæUù¨£ðNFéœò^%]ù)»q¢LJ‡æjßÊüXb¶èžÛ‚Sçsü»=+|^&±õ¸RG0[’¨ÚOHúàÊ%•¾XSÂ"c‰u Õ,Ýg[úëWö6T‘·=» <Å@¡m‘ÿpf¸§šþöXWl®PUìp’áL¤ó’;5)^9ù‘õo™3Úʼn ùÖƒ­÷6Ç-\—ë¶_ëŠ&òòÏÁ*¶÷’äg™]€î³vÌp¯÷Ԏ܆Mz¯f ìe_1É,ù£®õDÃZq[P¥þf™1W 6«ku4hGpÑnˆü|í4\ý|âî»{OЄ®_^_=àT3ü¦BÆ„Šp^ý<bõH.m¢¥Nˆ|xs?HØU&Á´ÐO°öÒº– à¹:ce2ßÌýç¨Èº_»]Þu¿É©A; kú€[åf|÷µÓð^H"õÑÔÁ7™CfMÀëƒÍÊ]í¬ÀYèÌŒæ†ä'âüîV„Óÿž³1¹ îCT¹.1ªE¾µÖ“?°¡<ø®ŒIö4Ù@0 ì™ëŽó%ײ%vÑo&£Ò4EEÆÌ¥Àx'ËYîæÁ&'J>M Ð϶f÷u¾I›x¥ä餺6ÿ!¢+˜ÿJy®% üÇ„@ ®—'n,A'i]«s®Bæ¬éa- Žô¬ì…õÛ³†/à¬qoØ+2™Hê28°;(ëqäó¸05Μ´•a&¾°&î¶~ kp’Ìbõ*kÁ1‰åÐZ©AžgPŠÊª }G+÷z¥{k9‰B\ßÄwàØó¶ßËZo=„XQW 5“#CG÷1 o‚ =,òV?4 é'u€d:9¢33|ogÔ,Þ¬K_¿O6Rv6컈HÞzÖz:£K½xIA,Qàæm5‚ÄÃFIÉâÖê¿«ë4 ² ><õ’d üF;Ò¥(Åa•bÝÁf2 ÿÎe?Xšh©VŸ®D@5¡£…o­ûÐñ”ök0µÀ&sVæƒRŒ|ÆÀl™AF<¿œ^r ád ÷MaÁÁÓÎm¸LÖ›±×Õñˆƒ¡á[lªçÁ4ÿqöRmü£"{¼ùY`$k#=ÐñmœK¬‚-c.¸JúHÓ›3À‹èˆ½ñèñ¯½eöDT|I²íz›ø´5Šà“Úï§öóªj,|Dó0Èu/¡›)–õ°ê²p¨‹ñÎ8ûáD° ¿µ±3Ft:ŽÒSõäɼ­ó€á‘ Àã€ï£!”e/Sºxš't™XH}iGrȸÂ=.ÜçÂA ÂŒóc puå6j¨ŸO½ €Ãaëž®yŒˆ›Í*ÝDšL¡~èû‰6á~Þã/«¦™-"Ü]I¸hÌ ‘܃(ToÃO·–Ö±Ö)>Çía’óA|ý¦supy¿ó'¾æÃfàé“Ù™·Ðü &yª-ø~9Ç’QqÚùǨ«$ˉèÓ×j>¯bŠãøNºrÞ)*×I”°‚ŒËa§ðå„ pû¿ÁÈ1Y£Œ ÅËò*Jî1ç^„–>gwöÌ{æø›1u5:³4‘z[øIÔ§û'å(stýà¦,yû)ÑUbÔrº1÷õ˜?|»Uj¦E ©å«õÖ€ÌtôHˆRå’̃cÚü¦Ö„Si~a]ƒ_Ê»á?l9bf€à;²EdæùöVMÍ!QbR÷LÒ•_ úT n€ó"ŸK$“ýhù¿Œq; DZ5ñØ÷F2IbÈÒBýçz.Röî•ió%]\t·O9KÜQ‰@ zµëˆC¥5ÃÔìW«öfª¶îV¤a¢º®wq¨öƒ0ë½aÖÎÄÁR¨¾Ôy>„½ì4d#¢`ûƒ0ƒ‘wSz€¬³ÿ &±LûDÐIdú”㙌H¯Às>Ò7ê•A—¨ “FE¶ªqÚÉ#ÈJ8"àŒDÊħúŽ¿ ÀŒÑúÒÆc˜¥IfcË-¸ÓÑ0 Åñ²†‰`ìf¼ßÃó6ÿ[GKºÖ“Œ=¹?Ò·~TÜU…ZQ52M0sY‘ÀÏ:Âç{˜ý‰†ïú÷ßþ_»[{ÿ•q^’ãÿ¯x a,äïv ­ÜxàœÀªöŠõÔR; ¯Cúv?æS*í´^à´Cæb6ŽŽI¼ÌЄ‚r£¹=yc.«XˆÍÅóá—ÎÙ‡_NQU26MRöâ*Ùq ÑYHOÉ!nMÐ5”ì'Ö™PÔy £ ž GgaUù©þç~¹Ä’ü¬Á¼lBHð‚cçü ŽŽÙ¢YB8Ó©Q†•Ý$BOûå ½ûŽÚÝêMÄ ™çi2™¨}?µûaÖ‚g ÷"2¸vîXƒô‰fµG¬ÉÈør %¬\„€g²¿Ss,aF~Íû‰u‘Ò´A¢r‹¥¹0åTÜìë^`%~g™*Ñ ”01ý@ís&2™P'ÞÓ)¢‹ÌF~Öº‘ge ÎWÏ]¤Xíö´õbNh­ã:Ä©Î0ÌÓc[A®UÀìЗ²Àj½ZÆ´eíü6iúÄ8Ä+V+ \ íÑÔA!ЄDðÎs&ÁqÁƆU,ýU³¢ ®¯J"ž‘3}#Âât jø5ËBF®*MýÜ%y*«^¸1k7ª±>ÍÍ•¼‘é8‚‹ã0ºS_‘¼Sö?p§±VsU|®œ? g“CsLlÜ„y59ËHÇÔæUõ±›6qk°*mãN¶ ä„¢ðöj«Q¦0³hŠgqƒM_ Ü1s}ÖÝ‹[†~øz#ºÂrøœ*°vü© ø?:a·HïIBW;“`’g­Ý_³›xwûé®Ú}²(= +q¬~æ1v§V/Ì ÑN‘Mè÷†:ºzG¥ƒ $¦Qq\áeÕt&õ¬HçW®3Ή¥k^2®¼m÷„Ľ©õXä •Éë3˜0$Dù•Ži’H¼DiAÃäñû‚eêÕÁ…Ú'ÆGð(ÊÙ»Éf=Dèàê’]1°ˆEÊâp‘<`kZ2XIã²d• ;5‘ cyœ)u®ÓZÑ0a æ”ÓÖB.»hñ Eä{V=Ä!ÅsSê.`Ì#²g_gR‘z¹Î>“>5¾oVjÀC2§ÝîüøŠY›ÔþL6Ä¥mÌÆ¥5hº©@Ë>&y…«~í¦ÿW0.š£ñÄ¡|Áf·E3¸ý« cüúŒÕ™ xÿ8¹|§z=âQ$FR*Wç’ @*1Ð×´OáS×—âÀŒ'*~uD«éQç$B"Ï$rAd‡‘• U'sÔ“F3€«Ø£©gR#ÍÙá…q„Ó0¤}©ø65£@À MÜsêÀ2ôhþûE$ý«fæ¥î8 „7Îüj¬ÜœâNãJò$˜4۔ш“Ù烄^ên Öâî ú_½Ò©öCD‡muƒ\ïvÝÙÚzºõbgKmoÓôb&]›Ãá$ÞcOTÏôwG½åVf ©+ùRÀ¤é)‘·/Hý=Ÿ#Þã¹÷I=öå]¶¤*•§LÂÒHC­õWê›æñë[Éšj¸}ñÆIŽ v@³<6ðlQL§®¡…‹yÔ1N’!mdjã8é1,Æ%_ísײÁ««Ó†ÌVóXîC~㶠þdÑ™H€©ô±Çð»ƒò9TºãÉ.1ƒÁãXBÀbê›  éÉ.$žn›Ú®Jm½º6’•ï%&2RcqÐN=¹RfÆÂ¼…a˜žs0zÏ$-HiŠÁZÈÌp¬“¤`’õ1v¬G—àJN¤YíßâO›h]²½»Øø/[»NÛòÇ•9à㪡ÎWû#úÓñ§Ùàc–êƇt®?±‡+>´ûÃf7…ú*vüJÿ3KˆV¾ ?e4 Ä–§æS{<…ó{7¹g6ƒ´ûÄ( ··¶[³°Á—g×p·îi’=™ Œj6g³…Ù’êýcÏK‘ºÉoæÃ0õ›E¦Î¿iÀ™÷ªŽ¬ ¯dê ²[-Ìîx¥Ði~ -w“Þ—û’|7\˜zì©×TÂå]"Ïè­«Ãf¶AÑ<%gì–¡|ÈÚc’‹]Óy€Pð€V0F6þP/qŒÕ/…Ú'bR”¿ÜcõÆz ÿ¼kh‰_ºˆam‘ DêOê9'þÀk9³”uìÀôVvƒ|á{3ƒlˆÓûî‹ xÔЫªÕú+í ŽôeÛ¢©ÎLÑKg§ýï/Û5ûµW0Ø… dÔ_m#üFR¿ÞÍíÀ<; \OtgN•Úa&Yxû™äÄF5*m€À¢$ÛôyÍä; A,–h†Û`éóÃÁ{ïs6ÿÓÀÜâ×Bbà]ÝM€/ÍFdÁy²5;ÚCÉ}+Åæü¦ÞÝœ+€5-°»\“k¤PjeÅݖ͘‘yf«ý¨š\Hœâá)ÌŽ¼Ñ\°ž¶áõÁCÓ³zºÙK&Ó2«ÕÍ¢ "0¢}éŒNaƒÄYá©G¹h BF"ÆP¼5_šÚgYÎúšRIWÍk"#§íEpØ“ÜZP¢ý†-]êåÕ.^òf0ðÞ³,8;dñ?>;ÞU¹dªiô¾ÓÅeò²«âsH®dÜæ©A?4 _,ÉÀò ' >2tÜl…²2ç€ñj¶B(BÆË®WòŽ`ÃiFb}4õšFG™sPŠ+¯Ðtžjp`‹ýÄdÐ]jjB¨xH²\@!4üdœ™/Fav?³ µ ÿígsð*‡ìãô©«K5 •: œ*ÄJ^9ý ›«g½Ž¥ZfCLvd*ÿ‘f°E‡KûŒôTU«0¼CÕý2ãÜ›H÷ÕE Ô~B[}lçMqñ½ßl™–©Z Jt &‘º[òXÿ 8_å·œþõ=çI’åÓ(GâZ¢ºÏ@ÈÃ@¤§Q²][e\«û¡ú…ÚÕç+|íe½ÉXÑ}ÑÚS϶æ,p’´µTŽuŽ®.ù–1Œ6 W5i¢ OjÓ„j©Ë14o³\dD¥œV<µÉóújÒäøì©žéÎ&'ë µ11°ÍÀ/ A7aA ¦”ÁÂȈ}a®œÔ«Ì«N¢ß¶/Z™®9Ã\‡Á(ˆ»4-+¯Ä½]¿²é˜¤ ‰Õ6‘¸~Í,¨I}ðÅ0„Ζq)±]$'À’“VÎY ~¦æ‰f]rl؈0“^Uœ›0KNÁH ç1ÆTLa‘×1Çg"ø$- ÀÑ >·c`ggÏ4Ö´U|¯Ù"Ïý@4™±#‚Q3W-<̼«mÿü¡ß‡‰}Åb#ŒM½¹ÒÍþH'Y;éeÎòk׉Ø16Åï¶ÀÓ…Q¤TÃ<Ÿüøø±}Ð*ÃØ=^O!LHc¦W¹ÉŸ4ä Ÿ*vtõÎ…•xU.RK&½JʘJ%YÐ0N °“TÜIJ^E­dýW5缡A=i©9ù"h Årú\+æU¢Ð¸-UyÎÂéÒß .!ZŸKzîÐqÒš†Ë7()ôÊXª©oˆðYÐ2˜G=Ä1Np„ýZª0dM7É̪]Ë8Õ< v–6É =ä§×Û.ºæË^JìÊ?ªºkJ-.á=2™µ5TÐ"ñiv«Ì-]u7”â\y÷ÉׯÞÃöÚ1NFŸëQ JÃ]–ÅT™â»ìqT x<ÒnØ«¹¤>fn]¾¦›ñ¦õg®³ÐEév©0ð,ؤ¹[9 .b{ÏgV‹¾ èvƒ4o}œ ¶ëŸ#èì›ê~7TÄ›é—^F›%ö ;K›ñ÷ç öf©á å«@蕞ù3n|^".#ˆê¯L'qó¼o†cFxƽQçü¨öV‹nu+úÙdÆPË ,Çé “"ƒ«…Ï„åýÕk·Ì  ÌH¼ž­·“%ÞÃÜåj_̦ÿ’x}™DgnŸD, _¼¸·®HÀ‹wfΨrÀBäE2ƒÁ{Ž„^dC•¸hh`„/°ê2PŽ[€Tdê0‘ªÙÿ¡¥À-0cìYK›‰ˆ0!Tæ3ƒÿtÙ|•%å­Žhz>ÀØ„Daûü½e¿·'ÃiŽZù°éÃÉ4×þýPHd&RÙKÒ&ôÝ;ñÿÉNk{ëżöIfZêt¤œ ¦i}üê”wzûSUÞÈ«iB¹ qåe Þw/ø2 û$Xšê¥C¯H\ÃJ›-ºw+-6áH½"±% ¦j# G£"Û„wæ¨ Éñ—0H°+Q:¿o¿ÞÛDxGüµD¼o·¶[{jû)ýÝz>»¡¯­ÞÙåb`ý'"n g{l³À[©M0}]uÝ­6Tšp‰äYÑ\¹-2"3‚(Ð(oÙj èZ(l»Ñ©€Ñvvò@n¯J¶Ëò„ PQQA±£s#«‹cªù^ÔÑ þ¶¡ÐŸþGi­„÷Ghì•íIº0”ÜgÙ¢.QÚvZOD º3cŒ;‚×0’š’Íìê”h‹ Ív¿±ØÄà©ÈO -+P±¯ Ã*5ŸØ¯¼f ·Z¦’ú}¢í†°»`šRß‹QÞMòœD^ñivr é=òMÖtZ9õ€¯ƒÐ‚‘ƒ7‚{—"ƒ¤º.eU`}Æ_’Ùf°¡ˆFt|/ÜÇ@õÆÈ°·ýLííµvfNÑ;—MÎp.ªG—u"*Z›ºšŸ£1Qrr½‰=™äᘭ3½$Jjá>¢æ]M‡øð ÿñ›èE÷â)ر·³×G1CËá‚Å×à¡dÙd 1ïÒ@"*“tØ žŠº|Íu+u'\7«×e ¬ˆÔ nÙÿ¨†{ÌÆ&Ñ·M­$’t·ËÑqXÅŠ74©…Ø É|}œ‡La,(ŸM)ÍIëØs6›Æ&´³™î°}¡¿bü Ö›ž0îøÊ¥©×ÄøGc…JGq{A|›$¾ÕåÝoûùDí²gà“ÖÞÌæ½xy}…H›±¸Æ&>ôÀ‚Àb4±·v£4¯!ra°(˜ÁÊÜdÛZð)JŠæX,ýISótêõžCÞH؇ƒ§¬åѽ®Ò¸š€—Üô*óXâb 1ŸÑÔRwìÇ$:NÄ.´dsÚf¼¹jNn ” UÌ/Š%ÊE’àXºŒe´%}ÜQöª{l‹Ñ3Lû“.›œ\„0Ë{q2,&Þ†…Sx‚˜ ë½(10øøu\Íq'KÁ8 hã6ÝYœwM¼¸À(æ¬NÈ=c÷jÑ)¾žå§vZ[ìEÁH^5ÄÿW×ôš‰É¥ÔRoxàÎ|f“œ]½jö ¾ãqÈ‘ 䈶2€¿aá/m2&“a½Š†9 'AÃÃø0Ûƒ»©{ƒ[C…<ÔOê_Î’®ë\N•Hy…* ¦>+Æ ¬ pÅŠ€zø&)vV¨ª.E˜„¢*ÎÔz»˜Ýô²2] Õé\°xÊcàØtìHþðóU¹¡W1©Qp'Gï[H6DÂerCl‰¾iO5ÕäÐû{]nCMmïµ¶ZÏ_ì!YhD\Ñö¥CƒÇ©+R£Â±Éþyv¥6®ÎéÏfCýóÍ/ŸAzÀ¦í‰+•¢Ó·É-iä%9Ф¾;E»(h!Ú$똄I‘mf]˜ËòaE'"8Ög%9ÎtZ¨7£ØºQؾíZyÁ¶M_mZL6‚'Cuj*ø±§·vvž>mÇa?ŸÒZÜ'wf9Š Álí=SóŽÜʟ‹±WËF+.•ØÿWo:g?sÀ+ÝyG†?» ùg±~åÕ$Ô̽b^ÿäÉ{¶·¶v[Û0úy9ÕÔé2:ß(‚L¾)çÿéYælüÊ@âWÄ›´â®Ò­Aùµ­SÕÄIWÓ³û­€ñ¨/×áÅzd$ÐeéyXÈ€Ñúšý¥gýýWf’‹¢  ‡½àኒÕè´=Ÿ×Æ( ²á*óóý&Ê3¸¶î©]úgÆøq`Y‘.í$Ž1ë×3`_HSÆWÐzÀ6ªBDÍm6b¾š6«Qµm¯Þ¶àoª LÞÑßÿ¾éâ´VLǽþ'ZöTA—špÛá´fDôÁ4s60ÊA,‰ÏhÏñß{¤žÇL†‰$ÍÝÚã¨ôÝ™sÏ7HóµÄéTfB=~cÏûÅLZqcÒišð~=[ÍfWø7<|Äø,¨?6qczÄt³ }Ù™QuÛ[#¥ ñ„ÙQ(ƒkϳ/1ñ2vqœv=Ÿí&ÞÃDÍ6!vÒ™vËΛ­ž‰éƶvN^a +Ú¢1À6åš©†™7è&Y‘ìz®³eCÔíÖý6€¡ýÕm°·½ÞÿqÛ@®žUÔ r§T"ËêÓ·xs,º‚Ü ŽXp@æjÌÜ?ô É<#NÖ¨hŸ¾jy²Ç¾Éœ}ÁZÏ\mæFþI‡Ëùö“Ö‹9n³#§ù Š4 ðn}Ϊƒ¬ô‘Ñ\ Š ÆïΊP PɱPf÷ìµcЖõ}A§‚/êúïÛóXûážÚk1èÎlPÒÚuˆuäl16³ôL„ìJÞl´¤¯ä] 熊¶3iÛ3¹¤¿+Zr9~«§`ÎXGÌCnµ¶ÔÎÖ¬ÂwÁ„|v*Pu²ypáõ_<6æ®’}våüøú÷Çž¢„ó <>ð³YÉB¥I–5¯LNBCžÞˆ‚ïbN´° L\É&24'Þh ¿ÐR¬ÿuq,V%étŽêM§ÓP$¢3fÏÞžý¼JvÕ´&ð´Î?‘PèÀnŸÙe#9"`I[ʃ^KgE¢ )D]–=ϑΣ7jÓ* ×úýgÖqKæ÷¯"Üþ1§2Ñé8I·áð¡¶w[» {Óš{0™ ÒJ&Ä*qÌ lEúñîø•fscgÓâ4JÇÛ¬è6!Aüob±su§®+à’=gsê0Ü6[®–°j•&"Ýa óœ³6uåSÝ)8ÔƤ© î»öó½Ã+3çx‹…ëSe!…ï[”€¢Ò\ˬÚWTücÏVŠ{[œ–fÕÅhæÔ•ÅÀ³ùWo7¨&àÞú׬®n¢ÀYÓž/16?±®®¤.¡Âzƒp˜£Â¼ö¤u¸u ¶‡s­åe” kž`‰ØÀ^e\õ(k‰OyŽql‰ŽLÝkÀy§ºnR‡ 1ÖSc}0 .䌣„ÈYésØgÿXI"‰n0Ô7aR¤$¤tê³ñ¹ô„+fØúÅrŽ6û~ëÛ`kÀÆ ø<ØlN î_GMFx yœ\¨€²ˆÍÂÑÂT]SççNî½0ˆ{¡˜áœ¥P<ôiÁÙ_àôº B'A H‘´'³;r¢Ovkpb<`!à^2”°ýØð6³¿Ø:öùlLI"A",½e8»4eÍ&ÂðÔã"K+@6…ÌcÍoØy|pøæÝõ¯WG¯NîwÖšÝ rà`-Ûžå‰~É;£WŠ#ªU”PÉÆªã÷GŸ#™Øa¥ý±öf Ð¯*™PÌ„PÇmª»F¨Ñ¾Ã¹ÝRGÇoß\ä}‰èf>=¬Ë©(ìgÐß®ÓíMeÝÂÅíž îÜv&üð`u»édp–Ic"`d»- :Å¢ÎñT·u« Ôâÿý2 ‚Ãαz·ÂSCJÊ—ºEI0åYÍ͹Ht-œëÜéŽÇX=ý(¸ Í­QGï¡×4]`~ÏÌ:â¶Äî_Ý£² U¿.—‚bá<1™39¶ÇÅSÔ7Hö ½G ‚YÎ4²E|,|Øhrf.,(9q‹Ì÷¤—£‘ÙØ7öƒÛÙ5/·7†=LKa&ÈÁØYì*!`>üU€ZŸ%½Q·ÔƵ»|Àl,õì§yZÄ1ýþÀ¨éк…i”$ã*p+onöîAÚÐK—رMõ'!3 ksVj‹u[)ЬÚõùL–ÝÄàØÌGêÑDß +!¬¶¼Gnå…pD¡)À»¨c=a7çˆEÏM\w‰‚I˜‹ª E ´FSIZ—Kl93c„ÜZ(´ ãy‹˜Æ@tc8³gh á dCeåÌäå°!hÀMÕ8 ;C š©$$&Òò†únË TB Ñ@e ‚»I”„¹Ñî»rÔ4f Ì8Ï­u‰98ºb†Y…_Y?ÒIìg©i»ý”é^Ø!k ¾=/©!ÜŒy¬Ï1M9PÕMjðÕ—¬WeYy«á~ÉÕ^´×ÄaHðéëwxd2þC-ËN›ÛQLä³ ƒ3¡{ö6ªmL<  .2ö„^2SŠ´\0VЛœB¼¨ÖíÈPHÇ ê¢X:8šMi““+¤h…C÷¢…xY. â-M5i½i¶„(àeÍÂOñì5^“NógPdÇÒ"aŸ‹hE ÒY˜Wá`ؼ`©8ô(mV\»d3AI"€Ñ ÛÌn²WJâ,àWUL5KO3γ×Ë­(kw±W¸–k¥¥^ÑÝB{Ѱe°¼¼¹c†fhu¸*ßK¢9`b)ׂ’–—mˆÚtç̨!TšÚ°ù3‘ Éb„pÆ øæ–g¨Œ!O†~+Ù¼ø¢€­…‡ Õ×c¨º.`&y'3ûÏnY²pK.ÛA'¢e&ËÝQ™ë±$öâö Pv·“4>R”!1ØÂxfs%`ûðín]´ï“t[²bøRy±'D.c»)~»ÕS&–æÚ{ŒÉ«ðt+тñ:‡+Ã'Ú`û#ó‰³ÝÿuoTšÿ &¬ßh1~kw>%'|VI°š$1ûà_„=ZDâ±O ›­N¯.ª °ÁA©ª­†8V•0pµslcé2ëÝì”­žÈg,êiƒŒs€uÀ,ãÍ(a2ër^ž×o.OÔ‘Žo´mÐã#‚Ú‹kµ—ã$uÏ*i;k¨«"&CEÄ" _s2lëÞø[­Šssk3ç ²^›‡Z§\rn¾JqÞújΟid0×6om?g·±Åc)$ ±UveVq¸ÚjTçƒÆÂ¶½jÛ«`ötšHzÂiDZíÓ© îÚü¯ ͺÖ# Cuv ßÜ<¤?ßDÉ*s怖ÍÌÍæè[ÏÜüÌ壿ö¯[MÄ%ïì¶ž,r¦o‡eœ—xæÅôÁõù¼¯’ÕÕµÚ%W”H¯êš›–Ê f*ÏÌ&Ѩå šJ‡ÌIp«±Ĉ °)­tļRnƒ‰L&¿ sH”¶õJLJÿtñm(ßhêãjÞϴ׺,¢žN%¿fk,ßêå®´ŸêpÐzÓ%±Ù)'æA"ÊÒß`AÝa°Ë:_º^Ö?Õ²æ)£$£/â9˜ÜEï|ÿ‰ÒÏi2\®Ëyô%ïTiË{«‚Ë*µEo‘÷÷$RÔ]ÅSUÍ×øGòj§ž;îÒM÷\¶×õtÃé¶ ã²Ýýí=-ê~` ,VõM,ÁÏ “èY¯xcd7B™3~vŒú@X2ï –ÌÏ~u©XiaB¢ªDŽdŠŠN4Ûp§™ È*­±*ÖÐëUÀÈ÷\¹= Mœ]µ|'İÎDÄ7ßuœ“–èŸAšÀY‚gý0‰?Âk,nhr™µ„' ¶±ã0ãÆSA•ˆ  ÌšOÖ7çú`®æë`Ú ©Ås•&ïò3š¼ê9=›õ«ü¢CŠ2Þ×RU;¤ÞWRURï>‡”³}»CjŽeyX«§S¹Óéý†Óù¸z2Uídz_u2•=™t0½åSŒøŒ$Ã/Œá¬àÉF3eÁ-;sáìzKÎ.L[ÿ‘‡w@Ÿ¶ËÃ;cõ8¥_Õ¡¤#•ƒÃµÄå7]¹§têk‰¹!d»XŸñõ_ŸñßýŒÏ ¶;듾>éë“þ×;é³üøî·ãÇ×G{}´×GûŽvÒE÷ÖÒƒ½Ö€­5`k ؃œÍ"\Ëõ±\Ë?бìmï¾ØkâXâDnoí´vöæãÅL±f㬠sËõþñ§°qç©A&-ÌÃ[„ [©JŽåcÜÄuЬ@Y–ôB“?[ê Z\N0ù=~úAb1Ì[Þ‘EkÔha2UT€L,´8Ÿ#= $áû(—ñâÔ±ã÷t"Ç´›|NP ¶• XÁ41~÷&€”!+xWø ¸ÔœÌUó°Z깨 ÄÝ7jýD^5báÙ®cã“ëŽ'g¡qÙÆj³Égµ‚)ä!OE, ÕVÃ&Éû|ØÀ1uÿ»ÒŸª}_Çm_¾”›ÚúO_†½Q„j_˃ÖX´Ã›qêî¼ü„4 ˜QÄÿïÄ·6Æ‘s¨ˆs`û#gR¤ÎšŸLíø/u¥êøÞ¡gö 8õ;.OÖÇe}\ÖÇeáq±*–ewKt¿­nSt­Œ=0•“B»Ùþð[W=4ê«gÍ¢#“­ÏÌŠ3óÙkf}rÖ'g}räät=ˆ‚mÆíÒÚV{³º…C. ŽJ&¬dµìÎÊu4²;]4ÈŽEîÚ.­U²2¬îcyîæ°¶Wî-‰Ï›=R&îØ3c43ð Æ7™Òî‹?;À+)öµ+!o¹Ww£QèsÒ!@è?ŸíæË2Tµ„þ‰f!ÁE¶–°p+p1‚ñTñ±éÑ¿í±ÎÂVØ´úéÿ°Xè‰êpý¨ý|Jgª=sA–¾ç¨<üâ¡Ïî7—abÑ(g&ååoÚ~K¢ƒ½?ø&½»»§j§ݽõl»µ3z%G?ÿÜlýýïê%Ý¥cÚ n§Ó›·J=¹†m¦@´Ñ¯µQÕ Vȃ$Åñóš†m¤ôªg¢Ì¯¥Ñ·×ÂTtº»{à üóƒô&¤+ê'm¾BöXQ0•'¬éºÔi6Ô ˆG¹:òÞ°›H`~âçW½@?Ò½Iê0£ûòl˜Òü¼JºÝÌ]m¯Ì|AnBó;ÍÒark±Û‘MôŸÃ¤ào§•½nMY|¥ÒED‹<’'E¤ÞÄE*°w‚èþS Òš¹/¤S?…cõ2F¡ùš 3í¹¡ùcÇšú©ˆõs(ã<Z2rr§¦#ò ÓB"oke#‘NhI¥‰ êxpq1é4fÆH™8‚ë„-Øm6 íó=¿,â]Rû(§—œP\š'9t’˜Ý ú¤Íó¨&ý@ÆnTWºùxÐWúήߛ(¨ó¡žúÅ(¹ôNNŽí÷0 ¢5ž¦¦Ò[ÝG³ôòÿ?xwÆÿþ¿ˆ]úä~°D½O…,Ih<¯ækÒEÚ¨£aÇø©:!í›D½$rô´<fÿQTjÛÛëÄ÷¥™yò (Ó?³œÿÉGlÈWfïh— ô^¤ò„šÙ¥ëñ)Hfi‡ù}.gKù‹Íù®š6¤ Õ_¬¹‡ÅK¢œŽ‚¤k¦í¡yPr‚å(Œ¼|ðîúÕ›·«Ž·!ú5KË#ŒêÓ#ËÜëjN⤛yÙmZÛ3¬‡RÆÁ—©ŽÜKöªä¯ÖÑXÖ¬+›åÃN¥4ZLHi%[ÔŠEoa=º®Ø' ôÙ$ÄË_íX•û}@S!qOÒjcÌÚwá¬1õpSÎr9ÓBû€f¡ÿmÄ:Ÿ+dÏéeŒ2˃¹‚Ça@KŸÒÖ(R:£j×s‘ÆW¦úô-jz°à½£€W–Çh ïÉ—6]^}ì ‘ëwÓÒFä[eþ·ñ1 j-Þw•9PÍ6ÚZo£õ6úíÛÈ¥p]Lþ2`}ë½ó;줷|çk5q7Wf W¯ÖÖw¤1kÚòû£ew< èŠûé â•a´dÍÞÁä4&Î2еä¨u9P6fDœºt2ßò™Wr“ðxé]a_Ää³÷Òýç£zió¬<_OJX½‚n•?Ûô-¦ÄRÖï~vÔÒmâ½;k>Ä6É{9TÊÛH÷øtk6èév…­ˆ•GÖ„‘.tµC3VB[³…µEÐŒÜ1gH7-7³|ʉM9¿-ÄR`C”é¢Ê—{ÎîZ&°þÚ<ñØXD›î:Þn€â·›ˆgQܰ-æfëõɵêÚxœ Tµ—´@ð¢3{{“2Šg[vÅ}wâûê¸þRí¾ß.² _DtîëoÅ ¶·^±?ÙŠ9ÛÍ’e«*Î-CÇxä¿q9ÒâÙÔЖֲg&Óy‹·ê-3wŸvš’™÷ ’Ѿؙ'ÕÝOádG¥&×X43%Ë~_ŽMýæüœÆ2™ñ‡o=Îc© hóˆžîýÉGT¦ þm+´Â4ùÅ5VÁ~ÿnƒî鞦süâE«äz{· lÕy‡Wgš:J"xtŽÎÎÔAš7TÜÁ~OÔÕ&;(})¸uVjkfGaˆšÎS#†¥}¿â ‘Z\ßæ§ú–sŽ˜”1Èæœq­Ï ?ã ¡&I4À‡™gEá$ ÊŠ:S6ÓªÍ6&YÙ˜?Á;øª`ÑK8½¯ÎµªÇêUÒ nH>ÛÏô¸ý)©øüè¸ù ºw¡Ç4Š ¸£EœFT.Šï²^ß;»sOO§o›¥ëyÌrýôD3,øÕ°³Mš¾›lÓæÈ2«W+ÿä˜ÑH)) iÂyY“qNºj{¥G1 R8þW7„F\ËÜš8Îx>sµqÝ)ZúsÁ‰ŽÛ‹”-ëíðŸ´ü0y†Ää[êIkÆ2tÜD6Jö_ÅMÓjêIV@ÖËl-›|äÕÍcÅ¢Ÿy·ZâL‘Ћ6C7 oØCËH€o:‡fºx'àÖc¾ h¿ð„"s€gÞ·hVäWAÊÉßkbúÂD½ I4'~nx“¶qQÒæ·Io4U‡4ÑY‘?Ń6’¹ÞÝ—ßÃäÿÚó}½µ^\ˆRq®WáÁVa€íbW¸-õœ8̳Z»,Ú€åEq$=ã—’ê²ziÁ­Öš àéY­j;ÛŽäú0)3«nVù|;«xðX¼B#¨í#ÜïÚ#Ýïåžë8-¨$xásëÅÓv–­^­¸G“øE+¿•â¿qóZ«ë 9zºÝ8kåô±=Ît ]É¡{w šcZ’‹°Pûƒbømþ·|÷‡ l~›çîàí§Ö”>,l Ch"õjmÔ»-ÚÜÁ2ÜnÞh;R¸2dxЄVÜ. j…JQ‹(õFô·†Y+ Z-YÆÍüL¨ñ¢Â÷ØdÉø× Mw–zóìô30™¢b´üi`ÓÎÔ…RÓ‰¦•²chI:ðÃléé¼sʳóàds3;ÿɳñUŽžeu3ËýAí,ýçg~B qúüŒîƧÏfÕyG\èH M¢bƽÞdÓj5}‹¥âšjŒÍ”5Ç:¦©H©|6Þ´ÂÄ—´ç}A{«¼üƒ8¦={®i—šŽÔ>sú§M÷á4")'’ðÞr7Bã9†ŸD­í­½+ÝQ§³ÃK6§à¼°•ÙšÍ:ã¦èŒ¹1-Yå4Öµ$ZEÉmSÔ$.š> =DY;GMŽèæÔ¶iO­)a-Mä~_1y§0H ¡¬ˆtA›2ËSz1X†dT™†®:|wÖ!ná6êaÖ¾ËöH€iÅѽ'µ¹õëÓæîzj·©­»™ Þ[Oð7šàJë‹÷nízYQ!?Ôd«?ÃdO'9ô-“-QÚÿÚyÿ:Ý{ªž<½â;A®ÞM”?nr%uÈyvObþFŸáæŽ5@ô˜å}\󀯊I˩٢Òl—›5ÂÜXOH„ór‚\Ìàœþ›e?SÓüèò¼s3I”$—·+ ¼›$*ì¼¢·¾xwÞ1ɳs†3 ŒeÒÍ´sªŠ¦žËû^Ca«éœÌ‹NnZÜ‹ihI’{lÂ@´Ÿp=|ƒƒRƒ¼÷˜k庻bÇqÄ_¦^¦Åð6Ló!q<ò¨M‚o’NH^)÷ 8äÉÐ)ºýž{ÒÎðÄÅàbWGEFRì~Æ»m+ù÷²{ßóEíŠIüÑ ’c_Ìn±Þ»·*j00Vδ~f{vK­*³:há‚<ˆ‰!yK´ìƒöPßݵ²{%xå1–£ÛûëÎÐåeC<àĦVÇg}bçq"Žu®9´WÑø,q8¢öŒ'"gÏ ¦“ìbÄ9Ȉ ¨ËŠmhz\ªS?‡òI$bpKµ9*¼kL„C¦6^]__5þí4ÔK|>}sõêämÃ;>;ºn¨ë“‹×'ô÷âø€~£7¾<»8Ùº×t)Dlb!gJu+ páš8àR÷lºUôi„'ê˜ûé&ÌWÉ3ßcA/ J½íµó¼µ7gö óÛÿª#·¯á„u¢³@Ì Ò‰íÝ볟©ãh´bÂ,‘í}Q‹ìÖ¸oë-zÒ€P"˜Y8'³Æý×JÊ^èýwÚ„·)ßJ§œvš¶ãhcS^ã'æ-±IZ?I;ÍÀÃa)wQGK«H–êU›îQN&MØW=2}†«:kKçZl×ò™jج/uJÜ~6‚‘{,Ÿçš=Lºz@í§ù8WLÀ.^4›j¿×ÇßÅe଩ŽtõIä„E­'ŸçJ)õj²(mnóiAI¢bêšD¿Ûf?7Ÿæ ¾ÔÝ0Q—Ä«†êuHçKí÷‰8âÓ\ÙŸ44kÐÃÉuÿãD>Í—vÆaÐø}¤/­.i'ÄØ’ôQ)ëø‡)Úä–JwåÓ\›çD~®Ò £AÀ/ŸæJ]0ªÕ;Þ ‡sE€¥@¤êÜù0jºöÇÚoß&‘SÍQ™`„ˆÄýFboQ+#õ*Ò·:TÇHíË/m:wec&^ò(‰SâØ¯µO"¡º#:dšÚÏåÓÜ+®4B:|•1Y¶1Þ&ì4ó›ò-ð‘ßÑl†ýn3YÖ1Á>l™)6¥y¾ìiâÿ÷Ó1íÈî‚·¢Ð›^iŒ#MH&š ;F‰:/&=è˜ií̧%¡ð(u2 &ßÊ—¹²@ÛÀ7Î#ðÍÌ•±ÛsÉF½ѧKƒoÜmõœ¸ŒÎË«$ý¦9äî:†ìmø f_ ®7˜‹·Æw»¢Ð¡×U $,«‡´ |øŒ›†k×K¨<’íJSJ\¾À:‡7Ld =c5Ž)-| ·2¢½á®cŒéws7èt²±·É8æ"£½¤#Q’X{¶û†~HŽz³qv…k*´_8éßâ_:.!ße}š¹QþR~Æš¶Z­ÍjKå¨W¼–Þq˜v޳ß-ž6Ô»8„—fëúÝëÇ×WÆÂïIõ-ªƒ“ Drl,£: xá8ÌØí~9ËS ˆuÂVõ‹mÄA{œÄ£`z_¿g¿fþÒ„”GëpáŒr οÓZÓràþÇ3 ý æ^o¶Wk6ÒSp÷ë„9ë„9ë„9¿?ú¿€Ïdr_“5X“¿4HLj‚lÁ§äYýð0!›€C*YOœ‡sáæŽß^ÚsW QÝ墻+\[K”hŽÍß4N§Œ­)I_ëêé{ûF³Â¾&ÄÒþ S:<$½ó_¿-eB³ '$"‘˜ <øøÛ~IëA\^¹/‰K#9ª¥Nt‘|П6µÇsï”F§$ôåCõª iŸïøë|§NSÀ$¦‰6Iðü•¥gížUd["Ê” "‡æã|‹?Á½äÍ-üÌ?­„øÒџ؆§Öäe`'b0ž4ŽÊ’"$8ìD*•öåãŠFÏèd v±§ÎþßW–‡ró¤e1(FHçÇu„}uDEŽ|ùDB•ÖQ·Hãrò½2¸U?£LÇp„VùIëc+ã'mlºÊ@!VcËé þYÌßÛ¾|/[~ö’H‡´Á0&Jµ?!ZA¤âWVĺbW$YS/ ¦`|ë }/²v¦Ç]]q ƒ,Ÿúê,~FÒÆd݆¾UTn„r4KoÃѦz©1Éû}ü™Ÿ©MvóˆïŠ ÌhÖ£í,äYw1 ×Ôµ)ðZcÝB¥C_·ÛÝ@[Qî;UÖõø¡ÔÅz…d¬öqñ éSÐΆá„÷‹Ñ5Ϙ«Åmùä6h÷4­Uª[÷4ŦcÖ)¤ééš4­IÓš4­IÓ4Y\®…\“³¹X%™±¾p`vÁÅð^U bMªÖ¤jMªÖ¤ê[‘ª›=ØRÏ^´^Ì)™:Ó)Òå%~ЫŸòxïõ€–AÍmš¨ ë(¿±þ罂‰!‘48AL¿`*Åcß9c‰ca8á]Œ^¶h±hm5dTÿFÝêÌ3„V0XÝ2°Ä2¾$Ô‘øêÑ6Éj£ø‘Þw¤žn?ßÝcµGçòêúDínï]Š>Å$Êo•‰ÃZMdȾ/æqž¹²6¥Ž!×OÏ*7"©#õAGÐjd J´qºÝË‚V2% åŽè$Àæ‡Ã¢7ú>#[Éøï·L ‚¨¹ÓÜÄÅ;ó˜õØ+'úQ“;ÚèJùr™æ£¿»xªX¡#dÎÔÄÑ‘µéeo„ך~&òpÏŸ êŸ-µû´µ3sBˆÄ^¼TÅ TËPÓÚ·Z ~鄆Mø‘úŒc Tà$,ï Úâì>lm3MxrÖØ/Ô"¹ÄŸ‘ûCdÉ`ôà Ìr¥e|¨¼þW,ÐoÃ`^o–Dïâ°9¤ ×{Ò*¬…ÓEÛÙÝZ¯ÈC®’jmï>YÆãN'1ˆ$Üá×ÿ…ÙªJ”" Ÿ‰y¹Š2´¬­–4#^†}•º à_1aï"bQ‡ê8 8BíS#ÉÛï÷ˆn?KÌwŠÜ=Dƒ;0rGà7–¢º=f%ʺ”°'¡¥0‰ën–ÛðlX?ç2ð˜^Vv¿¯gßWqŒ\._r¡{Ãä6ì}Rû=âljß&ù·P+™ÚºÓÚ}±À¿ð€Î‚2Œa;‰9à$ˆÙ_›@°uí”aË¡«öÎáÏIµ%‰;1 10 o:’³] J¸Xç˜çǵêϰ¬# ´éÒPVuÀ> ˜ œê0•άšõ#-ÌÞ+bC?!eŸ.k¢#óNX)]«±:×=âà  Ý34 'Q&9§"v5™`G,ð¦Æ\2SX†ŒE:€ÓÓ« ¥|¤s¥Ù…MkùS;‰0ØŠÃVëZ½…TëÕ ÍGbOZÅ8.¹Ë©&´ţìî>#ÞvÜÒ=Ç+¿%ù3`Q4 ‚:$ž >CÙî‹vјÝP—-vz$‡[­oÆ}?ó‡íIÒêݦEYè:)ñè£`Üyìµ»4#©ùõ õˆ×ö1m8«ã0o‡,†€ÓÿÛÞ]cfó?_ïýõÞÿÏØû ` Ý?Á9®¡ÁšëÛìõåÖûê?w_ó +2öÔö“g€!¨U·É«$cÇ…˜ôÓ$¦Ž]?SºDžt.¯¯lˆ«c=ÅK±t\{ñ›E×x翹©× ÉÄ0scÎ bˆ€áx§ÄU³ã€QÚ6.¯6©]bFuæÜ…c&Úc¢¦]~ Œ^Ãáji„ÓØúï6%J™ó´yV”ýÆE†ÌJ›€=Œ¥ÒkŽî¹?|u°Ãš]oL`¦ÙAÓ?d 8ÌÌj‘¿dÅA”,Ž\ÃÅWû]|'ÁD¾Óö¥Û=ã&ÚƒYpH&ÛÏ‹&WUÖšó4#›ŸÏ~œWg3’"ÿ>ÆØW›Všƒ+ƒ^©d{ãZ¤¤!8’Hä%µÒKÃINk–ôzEšñêõ²ªÕ€ÁI8.l¨‘¿“N­¿bz_CÜÁ¸’ŒCSèo»Âñ2à}Á±htãI¸«vè AÓ3{Ì~¾¼ra[uÔ4übYÀœ½ù<²ù«‚Î_Òq ±÷‡E·Ý7ßJzà'´£%;[†|' íÁ”ÓplàµãsÉÙsF«ü“î%]Éz)ù9ÏÃð3ñ½f%ì ´ {j÷Ek{Fv×Ïg/ÕµptCEÜ3!À¢î²æƒhÓ~ ¾}f·ŠÌ´žãßeŽovšœvXwHJ¶0ÚoZQo :ü8È5"6Ë»“Û’»Ù‰kÊ[z4ãÉY³QêzË d™ù´\¯LôaSÕ¿*àºê!(ÍH÷™%êø6¿mõd·µ·=Ký.,„Õµ„¶ZŽs* Ÿ";L"À—r yÆC Ç™AÆí*r¹EUè9ÐpH€¡Šf ;­À‡$5('R|€_Èdh "ã® î¶ò“Û8J4̘o¯ŸO~|ü˜þm}ìE:K{<)ºïÆÑc®ÙúNŒÿ*cH —ý˜'£Š6Õsq"u´ÙdÄ}AÝ6IdÜv(‹Á…aÄ Oš},ZÃo•C[¾W&ÛL´½m˜q¡Æ»Eñ-ŒTKF9kzî€ÃVôÈ£³¯|l?Ì÷ʘ~*šeƒ„aP wfóž›<=ÆPµ¨±Çè¹ßꚥº@P÷˜“À¶Á<‹“ -¿³Bò…/˜¸Û¾W ¢æGU{Uƒ˜¨G ‹éâf»:WžN%iF¸˜ quÞ$©a=¤`¤ÒÄü˜ömË#RžLx£6}tÔnOÃAÿ£^R½@S*• ®1Þ &FvàeOfÌ5—&»‚¦Î=ø[„éã~Ã0½}›-ňÂÙ°à¬!™kÓî˜ò•-’1šw¶ã=©ò`ÃNýŸà 6¸ìíðŸføE9-1òªê³WªízÜî¦*=ùºS¸×"Ç%æâU´¡RìžÓñü÷œŒ/šisÓ{À‰èG:ZýïÖÖ–zº3K2*‰í«ø^/Q³)XÑ ¼ÝßLL«†r'Mˆ‰¨€¹u%ÁÁMEç) 4ï¯ÉøRÎÅo‰Ó¼×L¡ŸMã|(éMŸ«Ýyðµªzò¥«ðÙÝ0'\¯½b‘¼`žª}piåkÅÉY  ë„:†ÿ@èÌ™¤s÷™âà)úŒ­³Iì|Kõò]ç„y71mI<;ó‰ž_’ç¾~g6ÀvvŽÍÔ!yiAK¶Ô·,6¸HZ°÷Œ ÆÄcçÃ4)ŒVåI¬]€}]| ©ôLø~C­º°ÆI y,ü¬1Œf9]§»ƒ†b2Ì•½JåL  W²ãÉú‡•èf"ð½Œé8)H¢ÃðgÝ0~Ìß[ø‰ºX™ºÚ›¤Ÿ .jøé¥"ð ð“1pùžÉ¼WEæåNœ· ¡2"¹˜™ ~70˜• 8g› ” 6¿ò© ÿÙ©ƒuã2èp˜%¶ úØ ¾Ñdјjì÷…±L6É«ˆ³²ò$ñ]å«Ä¯ü’»ö-‚´ê¦t‹lµ@/10Œ»I:L_ê&Ã$OÊqÉ÷f Bm´ýRÚ¬®-üúúeÇ!ÅÃc±ÉÞŠR–HÕ]Ù.mö®KË,Ð0¦Í,VŠ!TžÈO·~­A÷øà½†l“ö&‰^ä!¼ Àð$©O€X9±LdÐg¥–'Û´X¹…Œ8ÖgŸâO†¹è °ýf¬oÃQ¸Ê_u%™ê| ᰊïíL¾·†÷âæÚ/àcÔÆY ›* v¶_šÒSªÓÄ?tÕ@AÞ5ä0µàLÜp8ë/<¬4c‘Ê ö´áñ®’(̆^hZFv¤  ˜{ë 2þ!ùˆÈ›s@µÝf4©÷™˜0jrb p/[©¶½7FËÞ]ƇÚZmf6ª“ÈÍ¡ÅÞì&qÒMŠpuó¸¤Dò‘±®ÏK83D^o·¡Ï$Vø’V4àÐ/À?¶†ò­ñ \ÛeõôpÊAR½ÖX¾ÕË]i?Õá@½Ã¢&ò •ȃ²ô·X'x­Wå°*‘ ¥Õp-´ » \N¥9Õoµ7¿2©`̘¦M‹Â¨ð ’jŒúÅ7’³DË=ì!>‰È}cÂm‚ÂíªÕlÔ‚¢ 7’H/•ôä°"¦ê5¬c+²DÉÄßö®Ž ×$Og Ù\ÂHR=ˆËŠvë&Éh¥‹§@Rj8ãÇ Ð#‰ÓœÐ”"çÄ×ù½“z½½]§=#ÅϬޑ½þÒÙŒô%@*µÇ<pX$·›?%AݨȈØèñ‘e0ïpÄ]ÿóuúãèK~Ò7Z½5Ý­Q§^o‰?†é|( £‘8gBÒ½¤Q; jêcË30¬UJ…¾±†¯¼÷€ºöêaŸI¨ßB|mäѬ}g•RS¶š2-¡žL(á"Ìk3^%¤¼&Çd“cP’<ÜR>ƒóE;af㪠ÔäA|å4¦&ï–Ûý.ý&‚ ¥ð D¦À^…èqB¿ÿ*ÿÚ]xg5zT×Ò5Ïê¾.­RX-níPâÚ™óÁ‡?H’lê bä•7öiÔ=1\¹Á›Wru=À>Äe?3™7¯.O`žÅCO¦‚gÛãíEBnàrà„¼‹kª±ÔÑÔ„áœe0Þhb\ïK;ʃ¤v÷ˆåÙ¿_ˆíN¼?«T®l™/)|ŸþBtÝ–¯íޥ׆2qâ²ùDÒ€0ÖdüfM²3·7„K0vLÎLþï4.®NÕ†Ž&Cm͸«Ì —ˆ ÿ‚ôǿݎڃí-Ž/¦ ê‰Û”©¥þö*ŽT'$àí£(ÝɃ2ýo³ q5ÄœeøÛÖ´G?Ñ–HFA«Ûkõ´+nC!àîI ¶aÞ ‡zö·¿½&y£áÓX@Lއm¿ßŠò!çD’BoÿýCuZL0„ÔX:Àç6Ç¢ù û‘[ËÀßþvŽÕé ‹è“Ú'Gûz (5=’ò÷ |´› Ì)¼Þ ÿÑ[¡´”ýñ6Âb&Âò…Î_QÕ.hC?o©\ïªßmWý‘‰Ìzoý ÷–¯›»¿n©ÝäÊÝíÖ³9åÒ;Iñh6N6gU ˈk°Ž'yE}AÜc…ÃFH¼20¹ÛîÞJÇÔ MÄѧ¥~Ü”M°¤áг6­oœ.Áj9éXô¶–lˆ%)’,=1»8ßö) fñ~ÛšôÃXLªšÕRoÞ¼=<¨(Â<çC›a`‚üu%÷Ú«xx’ÜR¥"¿Ï&=Æz'ž“†oÚ©$™¬Ì‹Õ¹KGÙVälVã/„¸ÐE†Ýg!"þŽ|AÈ®Æ<¾Uó™à߆Ý2¢ê!›>'~·'ŸÆÓì_‘Ä×¼Mü4$©ì2™r¾þÖ6úÌ.ŸB âÆ¨~æÚ6_e6NRóJ„ª R솙׾oƒ{©£ íâLˇÙ×Û˜éÆ¿Š24ØÉƒ l¯‚0þX]ùÞò÷öŽ*@iRRŽlZ«‘:MÒ¡ /íˆÖl¤•.`æ6K=˜úΠһ•Oí"E ŸXPð…èš”RRõ ºÑ)dzijdyE‰Ú×½¬ÝÕiª'$X'¦.Ï•ß5ÕFaªÕõÁé›WT„™v0€÷—’åŽü¾&Ék’¼&Ék’¼&É¿+I^»¬iïšö®iïšö~wÚN¢"Û ¤ÚžË~¸eâÏFQŸŸý½†2/Ù«,²?Š\&qbO°%bÆæï ¬<ƒvxh_%·Yë%ÑוØÈQp§¬®èPGD™~~\Ä=ÎA1â¯?!"}Ë Ñ†ÈÿYOÒ²9ô ½’¶áy1Ö÷É–5 +!OuüÅѺÖÙý¥ÔSG6 v&®´ 6ghœÓ‘K¬ˆ]ø«õQ÷ˈ:û]êÙ•ƒ³½}ïQE’žnÏ££Í{…–¹Ùø#΃çBŽ÷y|ÚQ[@WEÄÃòÄÌþôŸöh(FìKÒ¦¨3T¹µ+³ð›êÝkáxB$,ÆžÞ!ò@,ÚlöÈS*Ò¼â2Îñ§ŒÛ0Ž@Ì¡¯áìòjh^ÂYÎSM>ÝŽFmãÖ7ÀÅ„Isç×­&¨Þös"|O[3\g™h…»{”Ä7AÌ ë,JÝ–¨ÛEqߎ±ë•µ-pž K…Y.^SC ‰ð8ÇŠ‹h#m2—\–Ó‰º”UŸÅÊB°H˜1TÖ˜8†~‹fvDÁ´’g†T‡ã.øÐýL,)Î@k—ºw 43â>ŽuÏ_ÖôPßÆêº¥ÆHš…S›Oml®2¬…“XŸêôSŒËhO’nRI^<›@hyþ ëp¬~Ò1Ú"zñ±=ÈGå«*Ù–&?ºNRÚQô¯Z!jdµÃQØê‡³#‰À_Fà~ö£‚®è¶tCbÎÜk^雤G«Çt9‰Ñp2;¢K$]ª• áLifg¦…“u_ëiDýÙOrþPMüCQ|£aCµk>µ‰Íj£û&XvGÆF›ƒ3›¿b}pÖg}pê§O2Øú¦Y˜õù’iŸÑ5Ÿ¶väæ:ÅÏîÌd’((ù|ÁÛiÝ©cƒütéJ»Eg§žóÙÌ+JÐbñkx¥ÃÞÔ¹gähý$|r¥+»Î¹M`üp{ ÎGgš<ö@gÄç€1áèbNÅ4˜,8ŠâdærË0¹5B^Y·Q&Ý6@éí>`¨y&y‹,}Ì‹©Ðc‹‚ùØÎü㜺Դ߂V?ÃÒàAónµ€ùÇ.ÿG?´Pèn¿ —¥@š¿ â,O¸F'OÚ¾ÖØ³-}?Ÿ·‘ãVÌfÚZo¦õfúêÍ$q6Ë(ÓW…Ù´þ€q6ßg.éºú4þ7ÇÁ’ãhòš~Ù<½88>1I.À)™ãÈO‘Š…VY§¶S¹ðDZT¯™éÿ1NäxL2é^s›7pü_Ì@nÁZQf30ùd l\ µl¥+Ñ¥m.:Ž•$©h0\Ø`iëËŠ®Íôl4ŒlKx=O¥ý ï~÷ð¼¸dÓ3 è†Ã'£¼é8'Iïi&i(É}ç*«\‘¦´KŠ1ë÷Çü½×.2}ߌƒf±ÖËô'X¦"ln7Ÿ«]‰mÍ€ô0{¹T‡ÈÎd£®Ï¨ˆi´–yË¢(upLÓ‘Dœ9(fØr¢¦½‘úoЍ䴆nG ƒ—7ÏË”i.éÈ7!›Ã½ñM˜&1_¯œÇ‰á¿+mQÁp3"¹k`)Ïè~–gH¨$Fþ†tÖ)î$H¶YK—9]"*~³é+ì1B¶[wØ¥pÿx&íOå_t'd0Æ»+ÛðøúØMÒ™{+³L±sØ6¬ \Ls9¼Ñ!ÔÉ÷&2Àù¹ßRo0—‡"Î7:Œx©˜5ó0Œ¼H]ö¢êõ™UÐJim‚–Ì©èl4`Âèÿj ƒéJ|Ý`L'™öD&ÀÖ¥¯í»p ±·iá:‘„õ>1Œ8ˆ‰|i­[ E.…õvÀP‡ú6 ù~¿†öWå¯íÚ™¶zÎöã ß~í¶“I@§ÕÆEŒ 0ÍÐ{úï0HGɘdù›nÛM÷ýgØ]-Öª¤µ*ékÎÌÚj±>9ë“óNΘ8>:»thèÿÀ θ/\žÏ5ãˆy Ï a¯Å1±Ènb2Ú;¾_Æœ‘$È\ÎÐÀ»,¢<´àŽÌnÒm üÄ9I¤dÿ t`eÎDÚ`i0…ß×XÔ~ðñã7ºŽÇ‰_DÁúF^Ó•5]ùÊc³¾”ׇg}x~ÃááWtï¶8yÃÞ"_ÊYsա΂ÒñÙ¬Œ’Ø·´+8µËlÃÞÄ(Þ[æ7“JÙ$µîÑ¡…7/,îÑê—¤IΙ[Ø_1Œ=Žoè “ Â/j íIòŸ(ª£oû´> uGH/°n§l=g½àÃ%aOϼ°Ìç¤6Dež”™³ûùu²“·%^v5z¶®Wãû¬F7ßR[­ímºGvž´ž¿˜!‹]~ÂŽd?\mzãiÂQ½Hgt]œÊ«ŽÜ ™r‡³éùv F˜³©Ówg’3}!Ó³˜:]É4ðJ]Û†l0—O±i&q“èw¬ÞžülÝUkH-¤e4¡ &KJô‚𻇕uîÀ›PWæƒu¿:â.gú†“´c\«¼!† <~H-Á†)Is5zµ×RuÑí:«?3&®³¼zƒb#¿ÖŠŒ²“˜ºÖ¤Và-Ù:-ò:·ÂRÃ0ÁÎyÔÁƒÚ(yý4Èwî‘0^•‚ðÄ÷Õq1Fú6µø¬ìQ÷Ê›áDhÿë„nb«Ž¸‰¬-Já±¨Ã”îøˆÈ¾¯]¾ ü'榢.q.½!¸þÖêã[;×½<ˆÆúKð5‡I.©å ?ˆ¦í< ú­8²W4ýrMË’âz¡Ö>æíá$j 'õÄsA„8´Kî¹ j̓ʅŸ˜”¸‡Í/S°iwî&>·ÙÎÞ†A~€ãÑ£ú%x€˜­ŒÃu2á2øAPE忯iPN©±Ö?U°å¼ïBæéB©ºox ×S!WGÞ—‘†¿UHƒš! Þ Ò°‚6(G-óu¨fTû2ÑjµÖ”bM)JJÑÓñ 1K;ÈQŠŒhD)žÎP :]¾ß|Ï0`3ÖÐY¾î¢þÉ\’êɹ ‘g²™¬nÑsœßªh¸™™\6•—:ê%ÑX]#qŒˆPOÅ3D޳ W¤›UTù¨{IWAœÄÃÜÓ÷š î›Ì}ÉJ»x¶µ^ï¹Ö³mùø«€Héb}~æ¿bI¿Ñb±ëÜ råû!f† ã2éÇUg±•«’LLÕš™U¤±{„6íCn¨æ$ý!ãÌKõšÑsÓ¤K>'e¹0žÍø4À]… ~ÃÁ…iRl¾bˆ«ž2¬Ü9ªT8¨W¨¸ÑNBc5æVNn’¨°ëQyK ð‚Î…±¬Tz³ŠœÍÍùØŽ©½(ú6d§˜d4q;4uO¶`~€½»êÌØ—Ô@|¦ÔÆ)ý²©n‰˜OŒzáìêJBLé»°Æ¢—p^ņ¹ôÐpKÒqEÓË)/æF0a’€sÅT?Lûw<+w,vO!Âz£¬º˜-&è zLÕ>Iô÷›Òxšl' ­§ü{L¹ß5ˆ6óÎŽÖ¨ùƒù£–I86 3ðrä ö.†eÆ7øÞ €JÃ3™ël“ëm­Q‹\ã• ²WÄ\4…Ë}ʉY­8¤Å8É&aœdT4ÈŸHÉ ôœº÷L×Ò_ÌÏ÷_Æ-ÿOº:p\~œ— ¸ÈD—µÍ2\Ù»Ydg/l ùZ÷½Ü'is§ùL4ü/¶Õ“ÅØ|pvÿàêl°b™jö]õSíŠR“Ì) XQß 8Y8<,M í‡"ä8„!($²€¶A’ɃË?ˆÍrÕÑVb] ‡D•³*šÄ ÑóHèQª’ÛØ#’ ×äø”šR•aŠ­åûàšÁ¬€Làu(˜”\VÒA»©»I‘[SÃËÀ7S™`5J›ì™¼Î|Y倆ñ*}Ϙ&O¸‰R™nD Ià’LìKŠ*ÌÔÿô¼Ã §‹Ìd«aÇKþÉ<øµìJ¼Kef8QBH8ãü´¼9á¢\èká`@Ýb}&·y3î—§S›„ƒ»Å:ö 6òòt‹ê‡w4´JĀѲ‹tÆó‰Ö H«†Ž¥Ðï(Z3$ªŒ ÄDÈòL¡øsL0ôËw™é\%g‹D2ûJ f1’OyJ¬¦‡xäB ŤåVÄ`4QLf©‹1zÓF]qh_v^ªýA\Ô±T“è·àâµÂC’ÅÛnmý¨ø >¾ÝÝiÂ[¶Õk¸·Tc:&éh†N¾4t:î¾Rû uj`^†k#Ë ’hhŽÇ¡¯@<†Š˜µmÓØàA“Ì’ÐãýÛz<Ôú,ÇžWhœÏMÞ“‘q±Bk²³&;k²³&;ß…ì “<ÙaMøNk›¹½’sœ6Ç‘w®n¸\¡>Q’eùãf ¿‰7IáµuËç; èØÑWúÌÈ==¡ÓŽ=Ž%^ŸO‘Ju<à³e\xèPø¦C=îPf1½(èÖ»ÈO‰&Ösë™úsµÅ¾˜÷ý®sè!M“I÷•'$–ãHëÏáqR —¤á‹0.î ˆ¦ˆß5öÈç$‘7”™ç~¤Sªí«'[[öý VÓqÊY•Ù€±Ç0 =.í±i¶5N<æ—º”¬ò<»°Í&Úoš·-?&^’çêe柨>'"“~;ƒú+NKõ×E‘R—ÿþß Q¹Ñ·eÉD!V`Б'izò¡­‰Â Á_…)G †4—Ø•ˆÆAFóÄE›/í(íµü°Lú‘[,ôñ͉ÖtÅÑr%­ÛV&_Ú£Á¸Þá÷ö¦äæÝˆ?´ÃX’Å…tÇE¶zŸLo’¨?üÉÛ Ì²8 ¶!u›-œLÌÀ§¤É–¯ÊBvâ'‡Àê¾NEO^ùÔN²(i ‚^ÒœÐÚGº•E•ctåêïEÐ(ïwéI›Æñ¶P¡¿á\r Û±¾Áµ±?öùCÛ'~¢5¡CUQpé9-2èõ þèÐ|jµfIÜ î&:/'â­žIðY¹ýT´ý$Ïh㚊—2ý©ÓC|¤·÷éê"æ‚Õ㢲':ó.Jó: ˆ)2ý)âUër” ˜^ô/,ÌŸ—U¹7+Pql†`ÖÇhͬ‚5C°fÖ Áš!X3i† ñwÕVëikK={1kÁ¶šHºÍàh0)à%¬:˜lÖO\Ez*(É{ÌVd^%~Å&O¯¨«ÇñÖ]Z4 GH§{D]AÔ‡Öï,÷JUcÌ:Ïfž4¡ƒ~Ê–"0ÞÈs Ϋ)m¤‡³ýkÐî‡}ö7\Îí‚6ÑÌ¡ðªü€´ ⨇ð±—Ñÿ¯\Y޹ɄZ~ R¢ ¢sAÑÿFi®›’zyÙš^ó¯ÎŽ÷­V *IÏ…Wˆwæø¯| ÍúÍíæöö#Yµ^Ì+ÏÄ›½“§EªlŸc&æðo«ni }›ÀÒâ¬fe}Ù¼—õæâ„ ý3œ4D£~§á¼»2_eB÷ñiù¸¨@pýé7ž gÞ7ó±mé?b>Ö{‚ö„3g-œ‰¿L Ñï;‡Ioé þ¦xŸ‡Dâÿ]gHÒ®ÏÛx›Ã‡·Ùš3s³Ÿv.ÕÖSDd^¤<…[nвëTžÊñsÐ;›TÙÌÏ‘Ý2åùa‡À0.u9šß‘I»=×nËôÍ«¤¸rƾň_'EšL€ ã:-Œ^&»ÕÕÆ[ûE5SpžæÍïÒK|Ö)MÒ³æÉuGínm©­Ý§ O`hØDüöêäñÅõ•Ú ~†~ëgÑ–îz¡ôç1ãÁæÄ–CQå‡lÜô¤qN·wÕˆ®»ÇY«2¿v謱âìB4¬í§[Tº‰»1ã-’yÏÕèÕ'ùŠö0ˆ °½–Úü-<ÙR¯>m"ð5Q;Ô5•µ¼—b%%q%ì š˜¸rN'œ€æÝ볟kt­¡SYŸv¶u<×Ù§ÜYêY SÛgyû.cJ26¶Ÿ>ÙòéIö8Û”Ô}$™pgÌ‚êhÐ9Ž1°A’ø;ל6‰Tòh5I€H– b&;-u#︪gÒ‡P—é §«,4òJšZŸ8è Ò±Ú€_Dl`Acÿ6ô9Ì}lV—‡Z_“m†à"ŒQ®Ï¾ o5dœÃBBÀH¼ý„c1/û·á¸•Ë‹Ó5ªÏ·ˆº§Kè0)"Ž^JåA;×)ý‘•Êøêa{—@]ÒÆ@^ËOüPãY{ÌϪIGhù]¹ÁZö#úóY%‘:¡f8„¬‡¯ úñS@c"’EW¾Úét´‹˜›ÊÙ¿ ï²±âõTXüœ¿¶A èèqS›`ó SzŠ ¶™—ć`ÙÏuÄÀàš51»½KuPdíH*Mû¨b=‘½g:Ï!V#p=Ó´csM®eÏœÒbưMÁ<›Ìßø4_4]¯Šœ„LœÛw~¬«¹H±ÔÉ(ú´Y;“ÏUWüTB½!NDí‡ñ³éööóö¤èÒYoqØê1m»S›¿•ÐÀCÚ9©FÚåí”·ˆkíÓ!•ø©ˆ8] Ñ}¼á#mùk¥Í.utB£NGzJ| ­¬‡øÊÚQ:HoæCZ:Ò°¥Ý´Æò±=ßÝ[ï¾€PÅZI®g5kkr½&×kr½&×krýäZèè„¡zÕ¶†›ZÃM}å±Ycµ­Ïúðü–Ã3Ò àÀl·¶ÕÓÝÖ³¥G¾¯®//TÇøùÒ 9½>ßimU=˜öÜ! îè,edåÁi—GâÅÍ-JðGs…Ä©SÍhêŽEÍo>ÿ«•¾WÌ|>â4„®1ì‡É=›ÑõÐñîÝr\Ïnkw1äúüïôÛ–êpuâ‹ßžÄrŽåçr’sÚ~µ™æíè Øžsœ1­ßqqOŠ7°Ü×ôÑÍ4.àYµ¬+{Nã\ß1d §æ™§UeÕ %s®]X_%¢HÌWâe’ IDH†é¿ÿ¯È>©ýS’LøH=«&Ø› ø9½N&K]gùÄôƒœd7¡o7Ö`à ™`T%þ/ŽûñŽ®Þ ¦I0Q$²4’Fâ(ÀŒŽ"ùy›0[ãDÓÕKõ…ˆ¶e\‰k1k…Ùž*lê·ÔãT6ˆhåôFôG|­p,|‰Ê—xÜäc¢ÝGã•)²Lë¡&éo 6L ëÉx“~“åa\â›"צúuü\÷tª6|}´3:â­aºyÏõ]¯ì_ueç3¶ì}ƒ@‹?`œÅa¾oú™ÀRáêxñ¢õŒ˜?à$Ô&üýËŽòÄšošu3«Ë ¬þA܉†ìB§™ÈPô(ªÉ,÷Ú-ñtZ¶—§”¯Ä|âŠKbø‡+S¯v†–±Ò>Hnã(¡3· žgÓ®p7÷Cc¶cšËxþWÙ_pH5zö—X„Ðüåã¢_ :]ÆÐÜJ}3ž++ÿqDd)©„$/ªöõ=¢KpîÞj=…œ5ã$üJ~F¸~î&× âY/7¥Óñ/.¾” “@½ºÕñÇ-! ÑsùV2E9•ÄMbX„Æ¥P%ÑþþmÄÑW?oCòÜÙ]à: §w5'EŠì9«bÍ~4àßß>>T(È,¤£CC#HÆš¤  M¿j0MŸNS=Í6=˜€ÿ‚õ†Ÿ$Ì7E¾§GôpSmtrÚôëÅÙË7›ê±úÿ 6^Ò÷l“˜Ð−ÜÙÿ:Ê„áÓf–O# s .Ab¼—Vó#T4µ²¡FÜŒoY•1ã-¬œÛÀ:Vƒ§YÅe+EF¿¡ÓÁÍ&mõ”¸9Ê`¼3/%¥˜©”XØY:>>ô¸w‰p€ X!ã†Ï‰“4ŒŒ˜pæ SÄ®£ábs É(–ÑE—?Ý=êò Œx1ă  ’ÃÇ€¿¨ÿ·Îÿ?Šru?uö¨‹ÈÞY¤(YïÔõNý#ìT¨´ÀPï=Ûh,¨4ªÊt¢§-õ·Gr˜`¨ˆ3IPæ à,lAšs€’iŒaÏÉlÆân%YÁJ_Œž:,²nB›Bí#(«m1…³¼ðÃä¾ñÇa¯pI\X3;+ƒ"ÐP›ˆó2eþ]Âû€(ÃlŽãM³¦gGïj8rG<ú£¿ÿ½"jÖ•ãiÒ-²œ^8HØhP}÷2 –¦‹¸F«Á~EuÔ:êKIÎÔ“ŽÝSìcSK¸¬sÏ&j‘M@²nœÛ´ÿ'Mßü>5¹.ÈþOÛ­UK‹8PLIؘ™êC¨Ër©{C|Û8;¼Üäw½{ˆXÒ}zi;Éà€bòl†Ýñ}Y$jÓì…9}Äz/ü§í7×øö=imwÕöîÖ\J‘³ã]uMešHt#)šK ¿´-Ra"•Ý„îIúz³Í›³l¯Ãµ G‰ÓûÚ¸ë 7Œ“(0Q>‹{-µoöP»0…î?e¼ž·$ÉÖìd]@®akB}Žè~”2†¢®:M=‹¼Î÷“áåp†Þ¼=<ðhð;MA¨¶S™˜“ñˆ•Rië_lʾn)ûJ¡ß-\¿1oöÅ`Q ©çãi< E òÛ ˆ=?ä`{z9÷hæÆ^µõMÌë–zDxh~”ß´‹Lß×ÝŠVÃù§š5y¾^’_|¾ì˜Übè˦°lÞW,[ä N*üÉV.¦ÅXÏöÌ%`Eøn­Þ]œYî8ñS½à‘³ã×–%Úð…´+\ÿbN¿Ã¢]·“†º*â)î~ᣩ­ƒú|g&_+§¬˜ðe}ªgD6ö_knÂÛujFj-YñrÃÏ|i:L¤»ADÛ~Âx`øÿ IÛô:?Ûd<ƒÖàïÅØž’£„nÍ-â¸+|Èå=F ÇB„<` ™”£ÃØ«ž¼%Ñ]rýqâRŒÌoÝØmÙ¢c–¨fä „Šó†wV#o`ð Ê…˜])ÉÔnÊòf»­õúåù‘C?KSe2ÁŒõdbo|âw†´üv­áª­{¥”Dƒ¥užkÏý*ŽEðD† )vŽ:g€D<,¯ì›ÎAç‚[õ~¾¼ºR²”LehØvSñ[:GggÌÞž‡„ü“ØàÕll"O¢‡}')_ ˜õŠCÙ ‘ å§$ úbýÉð ýÑ>¸·çÇN[Ägs6þb}6×gs}6ìlZ4ÅE÷æ}Lüëº> ëzßôžn?¾ËÉû¶Ôöö‹9­×Ü©:;9R\iQàÀ²£è*±2˜îjµqtvÕà€·KwtyµiŠí¨ã÷Íαý¾§6.¯NNwš×M{èñSoãàòøúj³¥Þ9R·ñ;ÏŽ P€pJ$Aè%íˆpÙÔXÜ„GhW{®“¥ÂœÖÆìk7Us1’1ö–ä ´ºñšäø}ÃC·›;âDŵJàÐ%žcg'''j{÷ÅžÑä9°iVÑ.\:kÍ&ãñ÷˜Î0,$Ž!â¥ú–Nó#î„M\r‹¦ˆæUÌ.Qe c:ZM¶Ëî|Ð'¢Èaw‰Z$•ñu”%´fFÿ'/χÈâ`Lù‰7Š“[±ðLW%Nþæ+¨Óè°WD:å¹ã„¡œSX•r» %©´Õú[•« ŸâÚ(©cœ{ÔÓ7:ŒL‰§ZµQ·g˜¼åÔZb¶[xtq’7¼\‚³‘%;¦šQõÅJMÃÁ0¶L2VU¾469Pš aÿ—L!ü‘©hVù]d#ŽìÊ;ëÌÓ8ñÒ+s¬#jìƒB-¢ÆÚ=JQ%òÁtCº%Ž‹Á‰Yh}‹~ûÛçà°{ßéž-±Yç»&6kb³&6kbó5Ä&ʼnñž©çOfá*®·bö *b¸¨øÞØV8;ã’ ©Û/‹—qGÂ쯘 ×$ÊF:c¢EÁÛ}ù "ÓO$"À‡o3ø2*œ§àÉÎLò„”-Î#å½Yöêúéã4Ë2_`­7-ÎÛëÍŒ48x‘?˜4K|gá5 µã­neÖkjÆßá ðêÞ5r‡—wn¯£¤ˆ{a¤6ð¦M\‘I…;A±N¸õdÅl´¾d¤42¦« œ …AöJ~“–|õ¬fjx‚ao/ÔI2êÊ9!+Q-ⶪò*.-ƺ6™.›¦$°šWÜ_ží¯kØM¯õ{aùΉκîÙXpnˆiÃCµ†ˆ¸&¾Ö-nåŸHL·¦èêmà4rp³Šï=¯ @·©#—@؇‹%ÍžÁIBúšªq¥¤˜Ë„ÖTíû½q[÷Æe¼üE1Òêm8p¤[)>ïp7¥ëƒ´>HëƒtƒÄéW¶ZOZ;[[{[»[{jûùóÖó¹TR³ö€kªb람±­Ë7sAA`㘠¬ž‡yCn Lƒ-uEÞ4)¬¤XÍ?WÎ •å:"yÓ–@0lgÿ µ£ä % ]#ÚR9wžµöfs~ÂðX}{TêωíZ°L ý1+±\&ïàOGçjca˵¼*+Ó¤ë/f§ï9erŒeQ1ǹqb¢ögç æT Iƒ$|Ž&Ð c}ªHç·k K0ô*G LÌ·œÚÍ)L˜[ÈòüYëÉÌAþ‰•û[[[ŽP¯š×d£rÕP50K®MOpMªywªÇÛRVÖòXòÖJ&Z|¨¤£¾ïÌ”îëù™™ŸI00³ó´h—ç{»­½íùÉ)}ÀÝÌå3µÁ ”z’iëqØÛt: ~ C†½Ì¡ A¾7A ¬2³+ö [ÍF˜˜%X1Oo“®z•ÿ¢ö‡øÓ>¹<¼h¾ €b<ÆÖñÉÿ¨Mè¥."ŸS Gcà[õÆ…à[Ýo6+ó¸û|=_¿+™ÄvoVé|™f·¦Råß-²Ââ}€ËgeöR êoWsÉuQyøÿgïZ—Û6²ôÌtª“b"•~Ee¥g,-Í\Û+sÖl“4]ÝÓ+õ…ª_HÕÙÈ wÅÉÓ­q°ŒzÔ©$¾uB¸,ë\5¤š,7RÏhL ‡ dÑÛoçýU:¡±>ÂýMä¶^sdÂ}÷õ÷›ÈnÿÎtŠö6IO+6`²7ÇÀÆö÷ÜtE«–¦çÙ4¡CÀJqþóE-ÃR%Ó¹1Û$’šÎöL(4,¥÷§]RB¼HÍ|Ù¦ÿ·e˜º—™ûkΜï÷ž ÐDFN¬ÍÞ×9==ùLQZ®eoSRu™:´\ƒ¼øÚ#ƒOq”ûA6úÜWZ”‹<u¨lDÍyèq”Gç´Ù½…L×ç\èä-ÇÞÖüùâëO«?"m}Ú»/v݃%æ4¨'•Û” ñÇ—NÕœ"öÔúûUÑÝ…á#62åD}é\ߊy êi›QÍhT/õŒwY/ê‡2oSü‡ãµêîNcn›sÌTA'j&Ò‰ñžzbÁ 3¾AL“,w »Û07À9ÑDŸ+¤ƒàh¤¯áϘ¨ï<úkWÁL%I1·Äzï‰;Eê÷ÜëïøÁþj»uZ.v}¯À=aex?!¨Ÿ½k5÷!§¯dzqv¾7ð¤¢ßi«t¤‹¼þp)gÔ“Qs½Ê}ƒqZïf{˜%aÁØ‚uaE Zf'>CÍ<÷ówÚ[r_KaϧúOâ¤B¿J¼ß Å oÿƒ 4JÒÏ,Ê ¶Ï_”h°2èÍ‹òK×ÖŸ…`ÏXUu²}ÍU'q³¶ ÿh’‘‚l–Ø›§<á˜c¼»ë:¢Z峫Jû¨Õq¾úP'H °ûÉýqó`Ïq÷³ÆÆíþãšQ9ªVW{ÿ¢÷Ÿ3.C4ò/U'}È6ŸˆÿÉ`ëLöO6Úggµ1mù‡“J>w»M%¥¬íðÉxžŠÆÈÐðñ²'¶"§s‹–Îjx4´„Þå_ÂM-VÜÆ_,»J^†º[/»Zf`ï-…_çÙ›Ç €k–£Õ›³e¶ûº•UIö0 MhA¹tU©Šîc õYÞXwì÷u1*-ëV£}óXŽ[Ï>Bn>tϾðä)ð˜ñ&åz‹²oÄááwѧ͓"Óé™a}¾öêò_–MšÇ¾Geð¬J/[xUK†œ]YJ̱d*QV{Ì«RcA;Õ3ß“²¿q!¦ÑY½~{|‰À2NÑOˆë.•ÅnUêApG‹o#}›„.76š²kWÀè÷F[J¡á(ÊZ –dÝ$,YB/ƒ<'’bßuc’Jºó÷ÔZÚ‰X3JÁÎó âp?FW %•ÜÆçªàßÀCµÉqÒùMô¢mÃéxè68H`­ó ÀàëÀ&ŒÞ_­ÈÅïDEßC™Ÿýæ.09‘H¸»bÔ»šËøòô¸/:#ø’}RE–äùÌamŸë+ÐJq¤Ñ+Û€îEŸ·>½í¸mjýþÿÑæó+ð»«6Àªÿ=¹ÛûŒW"­ªý¤ÂoöyõQ'äï½v*ÀtƒÒå…cñÖËtæEsÒ»¦øÜΈùmË.’ÂG¥Ýi³ÕDBJ|­(³ï¼!µk³½XWÓóÒ´f¤ÁÉ4¿—ø×òìfž4Á³;õô ]¿ÜV¡u#âR½Ö`c”"o0‰mÞ­Pä"C½gPÁeá27Õá¼¥ÛBúÑè~RV _ó2ÁÇ6-KS¨ i³tn¢w0šÉ6`½í)”J†$d1ïÒy¾·Z*O¨§º¬û*š&SWKÆÃE=ÜÙFyá=ÃÉè: UÛ›Šå%©O«·çåÁd&é¸Gú¢rEAWÅxè@¿ ƒ;îIð·í¸¶ôˆV³;Lkå­o¼²·8ÊùC{<*UÁÏ1¦®øˆTPÅñ&wwm ~•ÒÝWÄŒ"`½ß“ðõJÉÑ넦<'‰œÆ¨È—ùS;¥ŽÑèh–Mž$Cq†“JÆSoŠF‡cuÙVR©Kk ô27p‹lû™·rŒ™ÿÃUuáeú¿Åé/¼ƒ¶H=D¸ÌJ-ŠK¡Ýh(}ŸãQ,<*›¥ õQ/Î/R:•\0Ó¬ŠB'µUÎ[š*QmöŒå|+®ï¹\ã´!†…¹CjSÉölÞñ¬³¬šÑp8H¾é…I,í;i…¡ODæ!g—io^ö_ü|E¿H^£#¼ïe#/|­F«¬0•¡§¤ýä^H^*¶0Ûd„@ÿa€ø©²q!Ó"ó ÊFÓ…2Ç öjD“ß‘H W⭌ӀVž`…fRHÒüd›½÷y¾íˆ}wo—ý`­åêS¿öŽu™ ºÓ›ëTj赪`ƒûŸ&À™´œïÂ䎯?Â$.Þ'°+ÈX až¢“„!‚ò9è“N%\µóbæyq°µäû˜ì²®³³'0è%ƒß5-Ïæ 8Ì)vX§’ö²Är~½ZN¤ƒ7DΙÊW­à :§êeçg®¸… XDƒóÑŸÀ¡òz=Õ$½ª„Vã´ië!¿âº-…éÌi $¦y0à³æ2n(C1­t¿èí~Ï÷UÖ:’à‰árª$‰ÆQ°V¤¶Ü¹oqsA¯Jí‚åôI"*'( šô‚æÍUÂ:È­z"|’„Húbšw‰äÄsÜÓï^_6•T]5Ý”õ6%Ô'´:io?ñß¶_Ì“xëZ0jvo©ƒ/›àeü?ݤû‰w¯%Z‡¤¾,™rû$À&0ZµEº`Õ kuå®-åÝ©¥&ßo§$+‘¨“þ8˜á5~Ža‘üàe´—±¼7‚¥Ÿvå<SŸz´:?á£ï-ÚŒËÜõòœÁp£éƒe“ÈA=¶‡$“&Q›þ¿‡ú´¹½‰w(ݼËþ¶ÿlmæg*gHÑ\ÿfÕEOô¤,ñ)‘i,N$²¶ë±ÜøÒe®[&e•bhÏ¢˜vµ8µ¹xrµðÛ¼Ð")›°Z2މ)ý+.™Qº˜Ã½vàþ ¿ä\d=»ó]kÔlÛ€šV]ey·Q•êmaˆɼ±tj6+kµ×\–ÄUzLDºŠniU1f_ÕæÂ é{ù4Òf¶ò¨j4eƒI_½ÕøÝë~÷ÃMC\_¼ûpzܽlˆ½Óî !ί7@É?ë^×p:ǃ›æîÁº¯³Û¿ÜtéÆÛã4ÄÍíÕÙÅàmCœ\^ݪOÇ×Wœ]ý|­ÎðÛã÷݈‚³Šì]š,¼8™“âH×GqäݵQ£¶˜¸“­Â £`F¤{ˆ·kyâ°åî/a™ô‚YîpèôêRPÏ×í.ß«g§p0•º8FÙ\Öð2œqwŽáp ÒÜ–EËŽWKt6Š0m‹wÒ‹›}¯ѹ<—¯ÐKo¦À-N¯Ü€]WƒÂõ³9ÍÀåàX¿«:Êç^ìð6g‰Þ}gzR.4²Y$Ôm0òˆþÙ‹N„O‘j?È·ˆˆNˆƒkíˆý÷`g}´lJþ{ÎùÕïèï™êêÚ s’p8 \Öž0ƒSUælLkhüމg8+I¡í©¤Ù)·I|Ÿ;'a(¥ RL'|ÑVãÞZ‰'Öe¸¿6é…€O°ŒÄ\¿·ªÚ÷%ÄÔ¥ó~+j>¢ÑrL·ŒW¢Š%òÇÌÆ|DLñâi”ûîÁ’S®Wdr^ª*÷€‘ò̪T‰*ÆQ5+Â(o !Ó„ͧ^dœoL¦Î¿ ^s£1¯+O\PŽ`³ª­½_M–8¼-´ÚÇØËÒK…QŸ€8¤k"*éMŸýÄ#?ª³WOˆ—’LaìwøWšÕ5ëlC#\†¤%.}`W|O_ìVx½êº²·¶~üñFÁ¾3vv±ÕW®TLâÎËàc "ˆ.ú;¦Å=Ìq ®Po¾F¥Pkûl%5œÆ|¸ÃÆð©².9˜pV`ò`h®Ì›6îjœïÚà3œ^8ìRÄ0+ ¥ŒÕ] X©TDA·A¥fÓ"ˆe2W>¿|Z`‡"¨Í©¾@äÙƒL˜ IßLtb2­Ò†(b¶ ð\Óz|Üi8“tµo{šõjÛŒ‹t^ž50ê‘lDEäÒ—¥’Gp²+_<3ñ>”QÄ×}”`']â¡4³@i12Nh$ÇQà:çWwBÀ6[tœ¶POc·–¢Ö{ý³kkÛmÒÆjç… e4ÙLÌ›²Ð®Ï¬†JQÁ>â¶*Rµ·ÉôÙ×8•×dj×ËÔ$NŽãÒMJßÁö‚Aèu¯z\íëFëëøÎ×p/Nå&v*ÓétÔä•uÚ ’uµ¶¦´Ã0KDê_aÚ®écÚ/Ê@è’ÉnJ¦è"1ýKÛQª.Ú÷´J`˜²±g¨í’!&”Á'qD;ÕóÛþØ ó©›Éÿvø&;pm»úÉLuPdâ–º=B0–Q´QwÞA}›‡ev4½¤'i÷Ç:Ú€¾h¢ŽŒÁÖe¼e¤qD”Ñœñ#` Zî8X²®}cŸ:¶³Î“ŠvN¸¡§KAÛþh…‚vx\+G‡Ÿ§«•²sJª”/”ËQh¿ËÆ2fŠ’ÞáWéõ÷XR’•0ë6¥ŸÜÇÄ(ü©Ý–ºL|RKH›c6ÉY¾Ñì=Æ7G@ŠmG…OgtîJ¼9/O’¬èNZ¬G#Èoí{ºÊª7ÐÙò‘X,BΪ¥ëö0H*K n‰˜èObwÆ™·ŸÜ\æ yÛÖ»b6óD? fI«.nÅWî¼üªÍŸy[Õ²ðE—þ#Az+ÓY‰#ºpïÕE›^7žœ9°Ä1òSfàhŽI¶nû±7JÊ.]ƒÑüûDÜ#æ²r!ÛC&ÚVnTqŸïiÆpã°-yZÊNr9G5ô±;‰°„Ž2ºüiZ•`Ó[äÒjêC^Ý3–ü^;Ë àîeî}U¢Fü­+ÎSºéã²MëaB—[«©åÓÆƒ'¶Ù·’ô²9^6dz7ÇCBN9»{+AÕVG°Â?ÝmØJÍ_z—Õ,@\šbEµäSãRçðz”K7³4@›¬™3OP{ƒ„ölת‘&~¡vŠÐN'Ò‰“ØZ ªySµ9MB_󾵃z4ùà^n_-²…*¿«u õ¹RÞŠýåJY½Åàï—†þÏO#«)u ´ífÉkc¨¤õKwÚ=W=eL)Šjh7³l܉¹ã~=ƒV·¨ÚGÉKÔ¿E›Ç^.µ º©×³W½ç7"rIÞÃòþÖäýgúBàßžÀJÍdVžo ÖÔ© åþé»êÞ5ô•B·³µTÇÕ-JC2…gjñK&ýµ˜U¼—`4ÅëU{­d£TÊM¦Ñ_åÂ="Gó-òÄÑc4Dh¨øwT¸Ë•ê]qí-'•YJo‘fÕä#ÕuIÙ'-¬‘ÿ¶ƒø.à´•fÑrñ«"ˆ$ž‹þXcèsú WÑΛIŒ '+Gô=HŒ"ÍI Ú~bÍ”þø2¥ßÈ”¾yÙ«ßèľìÕogJeïƒçpZڥDZx{sÓW¡Orxzüq)«_Ï-šÑëåûkÈ ã¶î”IÄ.Æs&½¼€òò“ø›xL¦M.ÞZI5¦ù\nZCáùWýŸoâ¼Kÿ¼íŸ6ÍœûÚqþ[é“mqj–W ,$Úr\-ç„öcZ×HzY.Ð6ùÈg蔾ØsD½eðc‘êZiî¿>ëì¾ijTž &èŒËx™Vé^•1Üø¥I=o ‘Ф½‘ñÀúiò`céªpë߯m™<׈šŠ»;‡¬ ¦2›S?eIHBÿ²OUuزˆŠ|˜Ãm̹¤.ª”¦”ÛÐBÅ”šŒ…Lgq”8¯Wß›ðÓºsô*]U y’}õ±Û«þ?â´{Ù½¡«ÞûÎÕeåѲj¦"ÑOð•k˜°(¹ã@ï9ÀÄ„ËØM\!7%c§ü‘ÖÖõU¿|Óyû=>]|8}½)R[Š«FŒ£O‰l#ÄqdS:Üb¶•L{Ìâ¾l×—íú²]ÿÜÛ•QÅ\ ã´öw–¡ŽiOUž}ŒÛ÷HVȵ·0‰ËÐ]4¨ö,Ò`iéOe8ýÆætš¸l».$eæHqæÜ¸Š×­`ÙHàqêE’“etœ’Þ‹úy¡žwL- êk\aúhr5Ôͺ¼ :¥|Z}ÁÎ/6rêïsQU¦©$Ñx\í„=í´&4Ò€ ôsTnùƞ똷’Zœ÷M"æ¸kUŒ AÊü+3Ä\²GÞ—®HŽTy™^Äö6NÍå`(ŸV0²}«•ƒ6IÔuŒ¦ÁxŒwEèéX>[“шæÃ¨µ\V€r틃ÖJéËÒ“c«?ȼÒ¯ðW¯‹“ ¼ùkØÙQDa%Ðáœ^*#¾lKuÁT@)3­  (ÒÃú=”Θ#»µ/_?eÀ…ùî5ÕÎ_ªÊaüi(v9@”榵»4-H…@lêL“‡ÿcïÚ–ÛÈ‘ì{}¢÷aå²$J²eo(6(K¶ä¶$k-u{^:À"Š,³XÅ©‹(ú{æe` lódu¡n=#ö¨»‡=#ÒD¡€H$2ÏÁ‚·²¾ýï÷£e< 6ÎJÓšî]†éÜyÙËu¦®ÀB“áû·j‡ÄM«GÇüЋ¦ÇÏW†í²—0ûŸÑa…ŽIV•ªC~•±ù{±è=ª¸g«šs ï„ö‡w·ú MCÄKAZñWþÔ2 _¸{¸Ñ/þÛŸ$å g$)»Ý,ÉÁM§è-ÚýY,Ÿú…‰K¹×«ëG´ÈO#µçÔ|NËe:íu6H³ Õ…mÛ”ÖQ4Š  Fï³(OÕÛ¬M±OãO³ ?°ÿà'e£ç_š~^h@'eùXígôùç)>·$s¦ƒO—ê  ‡ƒ†ÑÓÐPU ûu!$ÿ@]nuhâkÀËœë«è°îÅUŠÖzär¬Ë„yªYáå_åS|’î’]Æ‚géý“ 8@êúâ6šºq13î7=¡ÿZU]þ܈׉}‘è|]Ô€¾õõ¬ öY0ø˜þl·'-ñ—ë5¾^ãë5þ'^㌠൥ Ã;²¢±&À g‹šÞ,ÜçÄ¥ƒ¯Á®wBÕÎÏÛ[[¯·Þô8½øþ$N;ÿA}bL¤r>TW M¼û±†ÙS¦¿ôáÛúP#5í¿´Ww;¨÷d5ß¹„m‡…žÃöÆË 'Gç—U¢úû\4­òE^˜©,iÄA“Àg55‹Œ€pKžˆèÝT@êÙ%Í †ÅØA|Xy,*r‡w’ž3Ë”nª{†ªs3pZÔ÷ÎÓ¤‹46“±vÕ­[ªMŒ® o\³ÿÚÜœÏç>w`HÊ(ÍJoyŸÁã~’ÆSµâsŸŒf·ãÍ/Ò™¡Ãg1ë ^™_ù Žÿ -rœæOšAv ´}¸]ßí÷¥T ¡1…šÜÏåƒÓ…OZûá O<ð,¼Y¦Ôxÿ…·\ÆãK<žUµ‰¦ÊÐK«@+OÉæÉ-í¼ö ÎC ᬺîëÎüÏŠŠ‰ùÙðØ#„?*Ê*RÉõ…ݸT'{ )u*× ªô»«TMj’¤óØ G¦ã`7ÇH ÉòÂsd`X6—âêoPWäÚh÷†[]¶Yæ 'ÐîÅ&@…Ajsÿ¬úÏ£¡aµŒ!Œkà ¨è"€~³ðŒ,¨¡!³Ý–îÔ hØ *ØÖh“»ý%'å¡ÎÇŒ_ŒÔ|Á40×i|Í÷›ŠÛ±‚æÉyÄðê"7dÎ×#|¥’˜Hø³¥ÙúÝ8a’aœýò¿£i4û:æöIåÌ|²Ó"öýĉ¼»žÉë™ü'˜É£Ñßêï(:ðn/£‘zKÛj‘%ïö=Üf= … Ì:pSO%®šZêƒ vA<$íëžÅ×l—ãå0{énƒ5–êó¼OÒ>åH2rõ³Ã•±Úx-©ªxȦ­r>«ÇÀ!êEeÇPYú“fZm\É_,¦TFˆ½8CK%¸‰fãškã }K鿬ÌÙðC¨Ç~AÍl”{Ú0ÖÄov0÷ÖƒùGÌÚƒ|÷ÂüõÐWÏ}ðW+Ébm2ÞŸÑjY*©k<›Ä£XppŠ»ÈfÞ§ ôèsôœ¦é,o¬ (n¯ ÄùȽæß0 µ”®I¬i™{‡?ÔxbÕC(oéd8щ^ÛŠ´¯ñš¸R9®±´eÍlt“p¾ açì«IÊþ2°KRNø¥FY¸»´¼Òœv]ö€c¯ÝpÚó†ÑÈPB>Joñ´¥[Èn/wNŒ5n“¼uû:pwÂÉÃûq%–7Íó.U1ôIÐQgg_:êòòÐdBšKÜMFÒhOÞö¬×1ZàN«èxp6Íó˜q"Å~rFÑ4W"KÍ›äiÌÀ«Ó <—<`ÅÐl—­ÅfÃX¬ -Jl¨É<Ë Ki5ÈR†Ë`b±Õóë|erK~ŒccBµ?Ìû¹|^Áj³{Uµæn3»­×ÜzÍ­×ÜêÖKt¼Õe)pêíl\íçßÁ©º¤Bv‰ÙiB7º•VUmÌ"Hg¢BÖ¬IŽO»Ý©ÆàÞÄ 3Ä_b¸˜&€ñ €Xx‰) ðžÙ@ý 6\`²¦-Ü<•a/ÖÍu-ŒyJ°íXº–H½Τ¤ #ôÖ¾…¾•3žxI§ ¥4·ÁF5M»ÚÇnáv£e“>ãO±·Ä?ú ÃI>øWÌÏÑ»JðŸ xßr¾Æ…–´ó£P5ÇêL’l³ð÷œÍ`ûØä~ìînùê¨äVƒ3Fö†ç&(iàÙqDßi3óŠÆ}„pÔàt3Ûo˜é°èF¦»èØl4ëfa€Ѭ»õÊ/nò–Ñ´q|s¾y ‹2Pˆ€åb_¨]ꮓvÝG=™‘ǘŒ¬rÛHM“bŒ‰£¿N' Á¬òf•Xr»ÉË{ÐÊlרZH€‚GËE‚ò‘sS5Mvœ)ÀÚúžì4F˜qh±dŒXRuÄž9SÀí<¶51‡¡"¤Ýè-»o`ÓwxKçjH6QhÉÝ ‹MTÈÒ²«äC±;Ñ4Å~SÆßè<5§]K/ú!‰vÂiO¼ësS½2÷Ö~=áÿü¾Šfº{º7Ü16g¤ÁîÐÆçQW$ŶÞ[ ®÷Á«4Ãe¸›Àâ67ƳÞöËÝñòd1a{¡æâ®¦ü.$ýˆzYË{Eò.z,ã»NìXï‡WmNƒ©@¹fCP¨kÈS[VàÄ8Û±xÏC„›vOXqsE ¤fÅΈ¢uM¸¾|9l¾¹” ÜuþjØ*;dÍÒAÎÈÞ1Lƒ²66£ÄÛ,ól“­ÍMúmÓ΂|Sä²9&Ñ&Ãêùãb«®(X[7©ÍrÂê—²¦úæ U7YS¶uÓ¬ùÏu/³/Ëæ’I~šÓàÒqtàen—`l5i…xVTaÞ\Ó±±h|<¥ùÇ`ƒu]|£fa¿›yÐýîÉ÷)Ö¡úeˆJ'QæB«þÛ…]Q#rõ½oïh¬¸¤¿ö‡%i›£i¯W3Aª€§éÎzš®§éïlšæÁ6MÐ^ï.rÆÛS£}Qgo¤:·¦fd÷2ƒâ¨°Ü‹6v©žŸ9_mÖã|¦€CœŒßdtÜȰñ•ºtצÑö¡ðBà5ìf¤a‰2Þ@i+ãºå×sÞQlG *¬Ž×Æè8`NJ‚Ùh2@mßV9ÓÅÇÃËÿèõß…ŒK{åÓ?! !ÿˆȃ;t¯rV2˜ïÞé¡÷R„UÖ6 2å,y‰ÅøÏ†îÔÒ‘oŸ.=G—&¦ºA|‰$?©ò{ËÁÕѬARyK#Ac &½Â—büœOÏÔº4–¬¥Œ¨@ „ÓëÝ <Ä™W޵ú)ûúËÿÅ¿ü]í]d_ÓX÷ƒÀ—…FNeE¤®ôL'‚s«M±\† ³+“ýòwR'}ñIx:ïÓ@TeîWLOÖ5Õ–¸Ö8k³Ö8kókœ<ÞúùÍϯ9>òõX½ô·—r¹.±Vº´¹‡*f§àåÏDYR„–s#4žWÄå)œ„îbO3÷´¤™\˜0´!|U Š%©îxu,wwðŽÂdûd†– q‰töýqŽM$&,Â¥æKƒ7дëíÍëvHm\Ò,í½€Be"k»rk딌ÀÔR+A{¹Ù¸Ï—ßÐã›F¦qÃHÂRÁ×Ã×i\&…©(®œgãß™É ê ',uíô •]Ѻ£¹ã†ñZª€¦ö‘É¢k]!öœFM#—<¨g™ÍÜdkÃ1C¿ZFõ½”ã=£^r@úïý”–öFœ&¸úÞW'å0OîÕMå~½uLÒƒÞÁ yS$çElÜÏ.q†ý’|á=5ÚE Ϫ3D )M¬PxЦ;3*,zc+ð4iü‹õ˜>ä—d{êÒ!í à™ôíbªc >ë8X#ÀâœÔ5†ö³ÜÜ.y”ùUÚÀ‰Á…H¤·‹‚àTÓÜd8‚äŽé0¥½Ë0×Ýþ€¾Ý.ó5¬*RÆáí'i<¢?›(D ¾Ü.Ä`‡h(¿jFßÛ¥V£š*‹È*¨e‡áZA­ÔZA­Ôs(¨êîèãéŸ"½ýR×üfÓißΧõtJòEZu[õ^Òñ¯ñ†ïð(E¤Û£ç1˜õQ—TÉ8KwØyï›þ¼HåK¥küEžQ4$ „Í·6"ŒÏA{ô;Gä8ÊBQÅ娹Éf±öØ·.Q~pAÛýU’á97àY´}ѱ©SeT ôlú¨€óÝÛ êÁÄÌ Áa csÃHÞvr¯A4_×àÎÔ|ŽEV’.tGÕp©¼ƒ"'@ÓNCçz:›ë|BOÒ‚û +òç«Túá‚-Œ`‡s™1 Á`Êgy%²‡ÒâI®ÞêóYã‹?À—þ´B`A†V0»hK”t‘KÅc¾m§çζÿf)Œí+£¶oÍÁ téC" vþµtœtÙb)´µ”„²V³¶HCÅ;(æ%ç§4Z@²;¸O¾ÍÅö8Rã¿ZÔÌÞÉBÞyåï-ÝÚby&áÊþ’Ì@ ºÉ(Ÿüq¥§‰qAÃ4ùÏÚíŠZÎN}D^É€H—¼úfrECs¤“ˆ œc:•µ?ñ‡•yŸšƒ’¦£ØtV­WÁ’¦9ærêЕ{žaZjÅêþnXêŒlš “™(ÓêD&@!Þ7cùÔÏt”ë©€Êfî—ùÅ»g’3âÕÆ$q^ Z³:yŸáNœì$G9›¶ô­Ÿ“º W<¿£lZ™w/—U·ììð™$ÜR5pp[* xwr™&rrÎa®Ü{¹u¼Ë® úñåË«’·)ðï‚4&#;–ýx‘ã¬äÇQÉ$Â(§+ÎâÓ„¬ÚhêjÛ¹t÷ñèºøpöLƒ…·“”A>HÓnÁt›ãúïÄk°•ùØ~ì—Àè÷Åt¥îQ=5øÈ£ÚжoÆÃÑØÄýA¶Ê%5MI6v¤ns5ÒYëg©êõX_K;¹Éoïåêš¶ýOs£6Œ?ò½Ïú[¦~ÜÙˆ^tÔé^Gýøjg•kŒƒgæ°¹d´5ôÚ×Ë$Ÿ©Æ×OB_­tÙ¦·u’Qô\Æ-^½‰‚Õ%2–¡WìÇmÿ‹úüéì…;¢®n€öû>M‹"*î7”/5ôÏÿ¦³j–Б½—tÔ¼á)Ô⦼oÀ¼¸âÍj¦c«wwü^oé r_Ÿg¬øÕ+‹{ ®ŽUùw*ù.¨P`ò:ðíÝ2»*ØrLÔÁO*©§8k YùÚrâ·¥—äü¯4ZooÏqðËËÁVà¯o Ü}T‡‹Muiy®]ä¾­Ôžª;3¸XÚŸâOjh X­JÁçi,¢Cú™ÔZvÁç³}¹,–?°v‘(çû|ÈWU6Eã™ßÖ/|÷ÇI[å’‚.,ˆ»½4”£‘+>§ã(f¤(üC‡í.ú´“\ÓP]~¸èv?¿?T;Û¯zw‚ 2½‘õÓ( Z5x_NÌ¥J/±ºd­¯d]B­¤èÎõ¢6¦äV™qcÕŽ}b&§ {C죙h½/ a«Ó‰]ËÝæ€‰H©Ã´ÝÌÂÿÃc6™î¾ÁŸq9Ï÷§ŽŠ½y[ÍïllŠoCººì¿næqœ8v0(ž+ܵ¼'íЀ ©JŽo• QòÎ|4 I(âwhµ tÚÛKž¬g‹¬¡ –‡¾û†|õÙi6üÎסå. ÁÆ8•†]Ù®”WŸ®>¿°ù²¬eGCÄçm2¢!Œ,Ée›óÒkÎÃ@”iÑxéÀÁ 2Mâ»*œV§ŠŒ1eâ\î/êqÌd»€:´™²á :ÏåbA92A4„Æ÷"œrSiõœ:á«#=@4ðBRS«Jæ@$óɶè¨w+¸· Œ m'˜õ°Òˆà¤æ& tzå±£¢~ „l´D¹2@uc ÌäíÉW³NÔB_¤sÜivÔy'—jêØ˜Ó¦(x…Šœ8Χj #ÒZ*±*²Ùfä’ …¢jÉ”q;Jý˜“míå&ÈL°PBYŒ”^ËA íÆïwócb|‰˜ÚkÆŠiu;Ê9ô˜ú‘½óÀB:h¶jõ6¯Ì57ñM˜ã4‚¦LíÓ‚è‹ÙØd³2™äOD7œz&XǯÕîÞíð¦V8·¤— ç9Åakiƒ ¹d.›vœË#UVçaâµaáyràºZÏ™±eÈ$\|s‰Ì ÏñpTöcËø‰r ’¶O$È0)Õ€e³Ɔ¡{¶<¼.ù^¯)²R߆]ÚùoŸf£ÑY0öuÑð+ vDý…Ì-“ÅÀeÞ×ø—~yå\=ˆÍ‰Ôþ¤üFëOóm?J2_~V:Òè¤ =›¥´ÈÓ¯%¨Hó¤j_¾ö£è+mOµ³ð¸\P‘ Èû£1臱ÎÇ8V¥®¨k‡}$Ã<§!hJü¸úƨæUiÇd9‡84iP_€ƒO5éü¢ÐsíÃÔD3)Ó³àP“.$ÓÑHÒé•éaÕš „ÒÁÓÀCàöK“]µëoË–±ìGáßÕY`Ty Ȥ֜ g§¶-,qŠtéV6xÅŸÙ¨éÒŠ:ž˜í\DÃÊX¼Àm1ê¢eL¬±Xs¨Å¿•Lt‰{Gœˆ\;DçHì¿»®A¤œ…Æj‚‹G9‡‰È*`a+¸µà\…à{÷lkª±Ú‹Ör6ÞKrÊU·ùBêwU†¡ã«^†&éÔ±¼È7HÂhTZrô:Üwx -¥¶qädXZ·šÄ’ûM*ðhµócû q¡J»i”V8þ<ðvü^Æÿ‘¥³žêY"í4Û¡mýµ¿Çtí]ýè½ú ¿6ŸÿÛY×ò¬ç!´¨E»™ C~ò:2s*ÐÊC9"qMÔyš&ƒ’NÓièÇt˜æ=LGuzzÈΗƒdgMné øEh ^â#Q9/'ì9ÿ$Þ›U-nqÔ ½½Åc¬ÝS* ”!UÖˆÏBã,œð J6µ'j8^Ðv-9ÍfH¡)K€‰êa qßæcªòšÝ1U"x”ç%’‡QÀ£Å9T@Äk½ÂÜ-ž"Û%0+ •–À²œ#™Ð8ÙÓéºÌ®ªuMÜØ¼¨–ŸðrHþ4j°‰ÉÎ.·#Éæœ'c™WPuHï ˜`¿iË¡ã¥4šDì„÷îšN¶QèÍÜ„±8žcö :ËEpé KpÍ/ 2¤¯ïb$AjQ‰Ó³ GœµÕQcšYœôÝQìÄYÐ6¿­¥°Òõ0®!¾úö®­»m#I?~EÏ<,í3c]œ8guöPw+–lItâä)$š$L qEÿž}Ù?°gßóǶ¾ªn A‰´#fìMs22 îêê®KW}u ²(j‹Ÿ~4ç!Ö3›¤d»2 }\æ"<¬ C}ÙÁ ¦"òв‡pQ2Rìp·9vR Ìãù³dn^Ú&4À‚I(Æ¢í[˜ØéÐÀ§.Û¾”ηq8+ë]Ø9®v/j¤§µ)aC-¼}süF¤/ƒ/y€ˆàÎ!zñÞ°¶¹¾ïîø#þ†¨ŸU~²WeÉÑßþg”‰Çs’Ž»¤#àe:ß4×°IiM¯”;Õ.}1¹#i¢<’šu¥ Ëþy2L¢ ÏÈ©¹fQ%]ýLIe»ÒñI5וSýžÄZ!«Ô’¬šC|Q`Î~Œ˜r$Ø:‰å• -ˆè|´Èò¬ÈRˆ¬{òJ-Ë«¿qåaG~„¸Ì83\¬ã=+¹¼šäR“\ž#¹Ôã%—WI®¶ú|Ñõ·%Éå•’Km"¹¼Jr©?·äÑçßg1©-uFÕ;2ge5ÕÆ€j ¨Æ€j ¨Æ€j ¨Gˆ¡ùÎïB×ùn#ƒÔÈ F52¨‘A„ ÚÛúݦÐu¾×H¡F 5R¨‘Bj¤ÐR¨ˆ2-ÁóÛœ£R—?GQÈ) ed;­¡+GqWpÁaìpnTÜåÙ•s"dE#ßIQGºÇˆM‘ZDGô=2°5i2Cj§awn±%'qDó y¨wîØ×Sb«''½7?¾>~ÊMV—JÏêõžÔ€IÄë©"„çŽ| \è8|ÆU¢ý lW† uJ+òM–MýÉÑ¡­~J„[3ÉÕ„–¹ü&ãàêü¯9Ë_sFH=Ñ{+§£÷—ýÕÝW] \±"¡àXbõ:9»8?TÈȸD}D”(WsÑÁ›)úWNQ ½ÓøÕ=É K>¿4ò*£Ë2>Â` ô)Ùc'YÚ¬mîX”hÂ-½I_íönñ¬¤Q¯lÔÄ5JƒæYL6;µ€`W¹•Øv zp~ÙV—½×mïœ$o«ü~*Üa¿O úpæÅþ´ÕùÑ5ý¹9j“òp Mç,MŠÙÈc—˜¹/?ÄštWóª[ú.%Ô©‹&q­P­8Éâ0š&DÇ· ‘ ¶£yíË„A¿›Ñò¥ÞùÑLrõ’1ýBºé„¬Àt¹$NÐ2;¯ü­—ààÖ{2úÙ¬E„Ñ…YþƛѲñ]GÂ)j“åw0‰€—”3tDæ'ùMNÃÛ‡†1Ø:Œ4>`bæ–š7 ,W-ú7É·Ÿm·ÔåàºÐ–ø:~ïÞá2Œì¯ô-]hÑ28+D±ú¹ 8“ÁKƒ?Œ’ÑH^üÍÈ1-vÒÏ÷߇Ón„­yF ÈQËéÍê4ZkäÓ=d½ ñÕÉ• ü©:MÃü£íCoÌ i+ßÒÓ‹)­ïŠÓ{¨ßÇ`*ô ´éâCâÀ¦þŸÒÞ=N`ÇïÓ~;èΫ+6õ"":L =_ûi ²•ú¾ÕÈÄög¸ÐÓ´ÝÁ¸¯†rá§´|NævcÿAÕc¡:ÈœÓ>¸|TòÎkF´¸c@zûvcâaA+ã2Ì&¡ž‡ƒfC!ãK]ÁcC£RŸFÒÍ™“°Ùûí¿ÈFÎi‰¡8ÏÌ´’Ô¡g²Š¯¸ay^ù"™õC‡7.|¸–nPFA.ЪI†Äb&Yà"ê²²Äü½»HX¬99ªÀ÷ž"‡ö¥¿0Ù ´!=nv­ß,èëQGÅÌÚ;‰¢0AV@?Ädò·nìwŠ@GÀRûKrZÏ Kþ?éQn6S)8pMéO7²& p…¨½Ÿ“—µiKv*/´—ê dŒ4¾”Éà¾ð“ÕvÛ¥×2­×zh/a×\z©çäf7˜@é‰8[îC”¦\Z"_±/EDprk#F1ÚˆÑFŒ6b´£ŽT°æJƒ•~+Ï…ËÓÉ7«ÒåY_tŽêM‘­»"ç,KO<¾¯þ¼uò:'žt t¸ ;eá;•CiûÅzB+õ2Ÿ.”CÛ«Là r…ARJp>PHrq Wkä¦)üJ[B{½‹oÞ^ôÚêççϾo«›ÞÀ/¶ÉÊ>~ÞÆ5†Ù¸­vOz¬@x'=dÆÛR#Jß/J¡†EÊ.[`£ÍÝ2ç&šh¹•ùYÄxt½ƒÞ…íìÚ:¼$^ù))D7»&üá0ŒÃ»Má?¡O»1Ÿ±¤Ûœ›úL½è<ßYšéc¾T?–ÌHu`w?IUVDùƒÀ Δv3+Éq㿟$ÀHõ`œ«ýÔº~DMd[|´X–ïîåz(²¹`ùµŸáSøG”ø@[øH÷‰±>Â=û¬³§vŸßû<ÇMêdÈ0K®ÿéÕñ‰!Ó!š`§_,g'SÅMãO•ÇÝ8{›é„Q¦.lç´á£­=Z–af…ƒŽzů–7·%‰6 ê-Ë ¾™† ÏofÔa`€ïØš8ް­® ?CIš9—‹èK5Ø…tÆ“'·;JÆ5 qlgº LÆœÏël!29£Cñ2¸ >]#⸠MˆÄë‹vÑ%– ?&ñ¦§[΄–ÉRŸU×’gë>ºTE4¾âˆ³Aˆ9‹ü­`éíªíçKéGÿü§: œºÄ SOK¾îÙFÄq}3TŒ(ÖF^&m,q+SÕhRK“̃ö ­Öã]1ߦ!I/?rà§¼'a9%¼w4Ç%¹Ô´ê‚Ô‘uaPŒÏOÖÌÆ ñqÚ÷ã )ÖÓY‘KˆÍ4„ˆÙãaÒMí{mËb²Ñ åvÂÚÞy±Œ"^è® ›ÜvÇôQyoçÈ”ž¼W¦Û±|Yr:Q+7M®UeF†"J%µÕÝ4Ûœ]xUq@yJº$iRƒ±:èÁOÎýÅf3‹wÙ®ë€A¯J¨DàrŽWî »mAÔlÚ¡Q«p Ó¯¹<™WóIüƒ#RZK­¥÷þƒÏa¸ø¶yл_jÏõKÔ‚b˜ôg?ž[ÔÐ4k{VÄNà h£oXÍÂë þe“±$ƒjBvïMHÍMãø~îñ^½Î8Fgt«Ì…'ºÎkXR¿­WôN™Z³zÝz¨™e¬™Ù£‘žY+ªÜΔ(\sÜWyAdµ54mw¾0•?ä»ö(ªÙ.~'í²k7‹=Õ»¾°Åc+ZT¤Úsd°ïˆ¨,f…+‚»´7æM´ÐN½'˲”8KZJàPeÒ8ÏqRmM5‚Ý_Ì{êrÁ=”þBØA98Åæ>9Ù¦Ÿ®óe–úÒƒ›%Y>"óãS#¼’ûÐ}VÅÕ5w¨Î2ÞìÿÆ€éÿ@]Ëÿæžå.ý`ƒh´{øªyù×cyÄô–bUW~šá訆ío~7y÷o3$ "qâùyÝòsy!{ ̸"€±ÙU—†l`ñøé¦o~¾¼À©÷ë­·òËZÖ­V‡æ9|X·ºøï“¾Þ´J‚¯DÔ\AA×àv•iöh õêXG«Ã¹Å"7Àêù˜ÀÑ«7þu”}ð£m‰OE¡Œ½eî Ÿ`›’ÓøÞà}Y÷A!…§ ù¡Ð)Ãqßh)èès¥‘Y½Z¼zB/êD7‚ûð/?|áÜ¿3ˆ”´kaGš ܬJ2·õ °—§&ÛT¸$Ç^¼ÃG6C-¤â‡®–Î1$ñ5¿Øžº¡×O¹ÕÞÕÁÍõ…'7D憯7¯¥ƒzÅä®c|gâ…Ð]ÖÝR‚’õÜlâ)¸Ô,E¼ÜS‰©ñ³Ÿ!ƒá’ay#Þi3¢½ò¨fŒØQ2´tæÃ>Éu%8¢ì4¹£Ù&wÝQ\TGc2£n84XAç]š»Î`žGöLBIþç ù¿$ùÙüyÆ~ hŽ;K–eé¡­q-Ã|gå«qííšqÄŠ²±‹Ô»Èš^Æ~¯Ù^ËÆ<òз"sõºbPÅŸ¬`¶Œ¥‚$r'ý÷$ ÎÀÁÕ9nÛêÏ~*óhÓ×®téYó Ðß‘9ø M¿Á­X2 À,Î[Óñuá°ÄüŘ,A%~(\*@Û$'ö3h§ê¹Jž¯·Lìn°j¿Š"£/Õ”‡n•Ewßÿ`¨Ù1 túI«ÍP³÷5í4Ë QY˜5Úî¶Ÿ}×Ùý~ÉiÁ7öX9³ÉÏ¢-o‚6ž¨î4/aT“¢o(Р¬LaOý½YNñ4 3XÙ«(ÈGUá@·ÅR?är—ªg"EQC…Š(XefæÌ­é jý鬌?àZ²W>ÔÍ6>»ùñ°­~ñûI’·ùh'ïÉO—=VµP 'å€Âsèÿ¶z¦Ù08(]ž’˜PÁG}6Ô§%¢Ýj»-JÌ ŒÅ+y8!S„ç²ß9°6ç[q…#o*t¹bÌ‹¹`ánË–G”ɽa:‰ëÇ!£g’¡]l" ¸FcŽ’ybŸû•þC pÛs¯ P³­j—HÐæK×RÚÃ>êú£ÈÍ%Îø5/bº[烧me®ñ«ÛŠT­©?3_DOøL ´2ñ@¨r‹ ýªüí« >&ͳ’ åf]íÒ C»oe+(e¾ÁJ È3äP%ŽN¨Ò–Q•/!zs™Tº¢0îÌ1ƒDÙðŒ5ðdGü´‚m°hÚøò÷O £™e¡Æ¨ß=3±{&ÐÏŽ§#Î÷I¨o;…ÿÍšíê—‚ÖàS ŸzM%éÓ-&œÏ«LV®ço¤ 4&]B>TÊÆæÛšQ¦ÝÍmo»ÙܚͭÙÜšÍíO»¹Í´àF”¶m î.EOØÃÛskb€Ïz=âjÕ³Xzàî7¯ÔÍÕ‘»¿•–«}V|BôtÃ7Õ€Ï ³©ÛO'Ês÷Mĉc<x´²$vHš¹Ýy}Ú[[˜©ï:ê(‰üÎy1Ø—ïa7Y¯ˆ úŠc)!ý´dÈ•Jøåù[j6¥õŸdµú›ÌNv‹Ì²úO=ßéìî­?Z·À‹½ŸÎø4líyc‹&öŒ|’ |Á„»å5î™t®ì)Ǻt©ÎÔeĶ××Ä“ÙL¸$¹uO¼Û=¢¦´öœÿùîüº]æ†Þ¥.hvÀçxq×L7fr"£‘Þ1¿mˆùhbZä€UœY÷À×aàeòÙ™B;Vñz s€­­Vx?ʾòÛˆªâ¹:€ëZ`uÆTå—¦`ÆæŒWJ›ng¾‚{A3=.¼Á]GIL‚Y¾u%’öß”Ýg}°ö«þį¿ã©¨™·‡F†¬ê0ˆ£…K$fκˆÀ )Éø’z/²%“J)øS8ÚGc|jÀàWeÖÏѱ’n(+5ºG’tòò£=éØ{/rÇ÷XçñÁ[®8®9Û¡ws$Ž3^J ÞI#.SH9úçÖ—ˆékÿÎ}ñ‚dóKðsH²C‹ mïp¨ëÌý=7ÌÍmRãÊ«ÚU\X“ÏYXåÀ›@G8rFLˆæý Ñqz$wÅäî­;*cm³ê¦þD˳F˜×A;´Ÿ…:]M•×ÈÀ¹òï,(Æ gµëMâ×2ͺÚ6§F*,ù«z'rºç¦,g‚¯%£¬‚f­:DöÂéñ9Œfçê>¹yjÏÙ8ګ쇲ma¬²ÅJÇ©™s¥Ó5O´;F—%Kv2LïÐ[E²H>p8RÊD˜éJ-Ìe 虀¾]Ì€£W¾æ²­n’H[Ÿ»¼áHÞ yç—E”‡ÆËo /v¤aCçD †ÝÈòX—b ‘ 7josªtˆÙhÉ!ê; MO%}Lhõ;}á¤qd’jEºƒªÞ—Ÿ¶j±íNþ€UX*if-nï4‹±YŒÍbü‹±Ôñ–‹îiÖ:mß!Úç¬Lö»¬]—ÆÉæm´.­Ë•ø¹ëÒtËÛh]*³.½f]®]—«ƒZk!F¼‘ó;¨,Âv•¿äU&¤c.’‚öyÒÌË(€²”½Y ›­§8#evºõ³Î·Šþì~W_L/ý4à÷ÒX"âäiZá~%ߪ9"ï‡ß>ïesXÚ’œ$¥±ißs&Þ™Ùj%c˜O[RÜ " þE*~6vX—ëdœÌ% ª ãYý 'ö~_G¥û|!mÎfUæqmrÑw³ÉqÄ2({Þ¦¹Q¶f-Ên úì‰ÌAÊ(=×­1¬0ì¸l·@÷éqÀ†YWÇ£ÎÌOý`;^WcÚ_fê$ÐQ?…Y©ý]ëÆšÆ¯ƒ‘sï«Åoÿ塺üí?£É$Tü¿ýÉÔÇ·î`ÐygÊͧiÀ¬KÂ÷>|Ú¸uˆkQ7²NY+Ž}‹nANÛ☈(ðj[ô ¤á‘]vÔKqhò½Ó±|é2Ú3Žw66 /—¡á膣ÿ ½§pª ½†“Nþ3s²1¢K~Þmø¹áç?%?“Å!ŽÙ].ϱÂ3Û'«*µ¶s-Df‰¡—Pãz´Kh†n<àbðC—çèÝuÎôlïmÑ{È5ëÁİíή‘Ï&19}jý›aä§žAp"£û‹*v˜¢Ä~5”Q[;¡Sœ1{åVÇ0crì,EãÚ2 uUePdy2 ?rz¯ø§úÔl™ÎÁÙfÖ1V¹ãø•µþ¿ì][WãÆ²~>þZû%“=X†™@–Ä}ÈÀ@00ÉyÉjK²-,©=jÉ\~ý©[K² ‰IN2ñJÖ ÉR«U}«ªþê««±¾뫱þ Žõš_ùÉeý8–Ÿš&óOÔßüt®¿)Ÿ!½Œ=‹‰¨ù .v“[*Îô‰¥D—!–2ÖýæÆoëÍj»~ xÓ)ï#ÐR™w6¾¬Vh_?ƒhb©@Š 3dE†ˆQõ1/knJb)ŒÍa«¼ÌýòäÚg0S黊Z3 H@š<ÀéI)‚­ìÄ0Ùð{gŠ(–§vh/&€É^Z‡ìYÉ8:#™SdÞ[ÄÞ„„ã0‰VçzŠÈ¼Ý¨›TZº0ûឦ—m§˜ÕtæÖeúÄý!ˆ6h¯t}ÊÐ;´¬æ_„¢ e||õéí4ZƒèÏ0¿+\Ä-¹×Z wgªñÒà¿*ÞÖ¦i£1õäïÒRÀÐet®#mcãb„¿_'j«*:Gè&¾29 2¿ö©<‹Ñ÷«ˆþ,ÈÆ_JKñ„¾a ¶D‘¸$ÔIK fOÈkô’LfœÃ"Àû$–ǽ|”ÉØêª€_CH«>OÌÖ(zéü–ù% ФƒŠù-Hí?“ת¡2ƒÿ†Cu§àµrä¡wȸ©íÓÝÛQ ÎÍp©ó´D–ÊÑ•AŸT;‡¨QHR%§=„N‹G^ëjáj™eã¦MÒådWë ›µœ:å﨤«lªè'¢šfX–sÑ6lÉ/ˆQ%sˆÞƒ)Z`¡ÅcþF…‡A»‡ »%£ííVc/ÃÔ9ì¿ú‘¿ 1M$_¯×•úƒ5z ‘—®[üû•àÿÁ‹e0§ÃŸNœ OL˜ÅÅ^±Ôâ$¨>¯3A¢¼ Ûø| dš·Ë¿×(ì à@øZœÑ­§½¬DmY«–¾¿ª,Õ@‘6œ·¨å츛3-÷8f ²:­»Äûš˜VjÞ+Q2ÿ)CÈþcîdꕬØeq5’ë:¡Rb+³ƒÉ>,ј¥ç`¢MCÀf5kˆõÀ2@nïä¼ãäh6!mƒXö„;«~š‹¨Á//ø¨…FSÜîeún™à'“„ž#K÷&°™Ë- RùHªµsUÖ…q8Ã=â1`­!¤hj‰ýg)F9·‹ŠD»'GGkÎî5ë_voì ¹5!#gÙ(Õ sll[Ådˆï,_:ÛkÎÆ‡5§µÅEo¶š¸(\ìŸYŒSéjÈo½X³92Òð¢ª2ˆ9!y3‰3“*þÿF!¤Éh)r»ysÆ›Á£ºæôÁž*QŸ{jJ½S.кËÐÙ?»FÄ ÌI>ÏñÃl•™9úèè€çPFÎ2qe‘á™õÌŠß!ºÇÓÛOÂí\¨À0ŸŽƒƒåeê°ÚföÚ†)ºèLY F:)†k²y`ª/¿,5Ja–¤èúgSa…Î±ŠƒÈæÂ Ý>žN'Êí„”³9Ú²"1Ç?Þ0Xš¡F:M…^{ÕžCíúóÕ;l–Ùç ‰ügª¢ @ë:L°Åÿ]¤VŒÐ‹³éî´ž09þâœÜv«åÂò¾éœï^|_ âhD¸ ¿-z´ÆjÅZN„i@)mc7ëkÔg@íÌtŠ+¿u\ÈîÏd„¹øéì³C'1ùb}0(f{»j~éœ:o¾„]ëTU¿G]§ Ë0ü=ÎÏûå6OóB½Y¡Xy3yÑl2;ÍÚ1×’qß`ÑÁz[Õ#ª‡ÛSíØKdXÈ É±ôÐ><ôaíáXÃ:TŽ'*ÔÈ0!ðdn%B†…UFçøóùÙá<€ÕDÒŸ4dYöyž—¬ >g¢Mzè&A×Ö˜ˆ¡Å5ë}úšë& ,¿HÈ œz²? oÅŸ©ÅF7*:ÞCÀ»æt_Qny¨5ËfÂ,R†²‚‘ÍDð‰O¦ñËo Ip ÙQe8¼i»ˆp?¨de3¥ú‡/\0!îÆá½sŒ9{19 ã´\ðîA0ª–ù ò‡Î…¦X]‚Ùpa殳¨_`žÁÐ9ñգ¤xaâ¾å†³õÛVsc5 ¬&Õ$ð/Ÿ*" ™ ¦m¶ÕT°š VSÁ7>”0OëˆÿÅ}½iÙngf…µ?0-LLB×c=']Á^³l'ukú®ç·`þ‰=á¹EaÕþýa ’…˜²¨å®;[nëÉ´i†-̬١ Ó9¤½¦ƒÂ…JB5¢gœô×׋áy·L2l¦žH|ÒHØflšK ð´ Ô„dPJn=Pê!!QÉ2kX5oŠ”`¬7:ëFvÿ’½—¦ãPqß;†ðAF@P6gU_ë ‘ª,Ów]RЄƒ‘6pðµ``š Pqeª(1Äz ÍðQ‚’ÊPý´/†Ê4Ï Ýœ 2rÚ·x! î/x…„Y7Ózº¾²¨¨·s©ïBâ܆Þ@‚@2Ãèž« ‰ÄÑ"wO}¨Ë!F$F<|}ÄæìiÜÀI‡ZÇÜÝrS ¢¡v~U0•"ÿWû!I‡Þ­Ÿ©^^ýKD‰óI£¢Õ˜Ôó Ÿ’qY_¿sþ²rSå"±ØÏ§¸á6µ H“th–:ád KôjÈ%U›ÿô,F?U€0y‰-·w …ŠU*!´¢OÛºY‘¦œ‡Å„+–ãÄÞYÇn‘‰º#¸T9“hŠ’6Ó‚ÐoÖúUÝ-,±.ÉäLô$³UÇ}JSmTšF™fF2Ì”F4˜|ḭªu}SçR3r.âz J{‰h8¼G¥uC…E]Ò½b ?Wyiï¦-̺{à:—¸WÎÇh4‚q™ ¼ÁLÕK/„v@”CáéÍÕPX …o}(˜A«‰áÆŽ»þ¶µ¾¾½¾½±Exõi,Ç Æ×&‹ìt>¶ÊÔS5ÍŠžÓ,~7ÝtÙ°¦A‰â`åsp4d¶ßùؼºÜýÜY““ëÎáåîõÕG{¾þùóáþÕÉùçµ_Ù½Ü/=:9=üåèðÒž|<>üÅž|¾>Û;¼ìpô_º¸Þ;=ÙÿtøëR‘!yà¿}»µ)kï–»énþFrÞÙx?»_ j¨Ü©œ˜2ê"wÅ6áq= æ!UIä“f'Üñx«E*¹ó:Û…Ò±&ý7J#§=òùÈ30(óÞt¬º0©Z1Òê;í~yè†Âaòiì°*!²×q†jäAŽFˆ>øÀƒïƒ2km5+xz}ßw'òí…é-|\ ú’I£¡ÓîõãLA§Œç'—˜Ê[¤³Y•S] QAæå´{|Ðóª%uô>‡Š”ä ¡Љ˜%@Õ {4Ù´o•ñ@ãOÑË:n¨Qš›«fù›5KÐ}nÚ º/Ÿ)àÞÎ4Ÿþ¢Ùò›À Ô™â”ÖÝ0W1µ=å,¡Û›(5oÜVö=<*ôWx˘ná­Ú2Jêæb“ƒIžÚ\°>Ê.ƒgѹ:F˜Ò¡¼¬¾PIFCûZÌ”ƒJn¶bj¢€–7Ï?6ÑUœOÒUÔû½°Y¼[^¼ÒÅêBþag%äWr”{°j€j‰” nëý´Û n9â[‚,sž*V­;ð³NpV¥´|aŒèИ}L¦‰‡‡ögJ2—zâõ;ŠmÌ+«R”/ˆs²wöî4LõXsÕ/T°HÐHUá|Ôaa΀*ß÷«H¶JUKòÝYÉ÷5äõz›åú³Ûº›3«8®¯àÆÒœ}CþÄŸ.iÛ\Ybß~ÿü"…V¡íΕæ}ÕÊ FˆT©ã!ÐÐgåXÖ[¤!lÆ·£‘MÍø‘ÍGö«3hWò"`)åpüh×øF 1.·]ç5¬”ÎiØëÅD‘¥d¼Í\Ó_z/‘Z &û™yc%û?UöXϹC NàwE>œ.&©*HD6q¿Hiû}?ˆ®ÆÒ7zâå5ž¾«“£#›„“’RKѲ٨װT_Có{òJ„ψ0ù„)pwf€+Ü› ÇáIZQ‹_^ì?A‚8ÿ^«‡½¹:i¹dÑÌBЪ„ÒT·F¹OØ)Òú“0vûpì‹Ä2>ź5O.Æpv >JŸŽvó¤ûR Å䌔ÇtO8ºr[w‚Ú¤ÎõÁ™ÀWûì8„lÍŸ)ŽqSÃ8?ðkßîÓ÷«\ðºE×sPça(GsáóΓâkn¯¼V{h‰æÕ‰›ý|ˆ\´w¦IB¯ÎÏÎ9NdÊù0ûÃ|EA ‹L;»f…ð1øÇ%÷xJ®®'Ç×ûOœ™bHØÍh0‡Ûk™/Ö1vd·õÁiÁ×Î&zÆY×=$˜áÅÇ[[š`˜¨¿˜úžÁÌÑ;ÈÛŒv÷-ë~è\>ù¥Qãûe†#"7˜…–Q|AuaÞxž+Ó±ÎTÿTþõ‡!¬ Ðåàš7»@°»B~4ç<ŽÆ îÑø× |ß%ÖÅdäv3!_ÃÆ2ÐŒiŠ ÷vN^¯EUÇ8o\çF}%ðÒñ؃σ֮6UÏaýM”sžˆÏ¾­éÜ Â.ÂâËÂ.5!»÷t8€¡à´³.y 1ºY˜ªÈ=Ý…Á‚BÎÚíñ©Ç) ݤ¯Œ›ß»…Y¶÷”F«íC?L½W]hÕ…æw¡" GP$íüƒÑØú0ïÏêÔWè—¸°|#øù3Xíý½ ”ŒÇI6Õúâ6¡¯KÞM Ô ¤Ûvû´.ß3Ž_`šÓ¼'|OûkÎÙÅ&“§ž_Iqš¾K‘9£'q¨ª.‚Lñe V’€O!Ãä‚]²”í/ú1ÔÖ8ó’"ˆ#“»!¾9¯VOx|ÑHvéDäâÝi$Ó®Ýâ&Ì’°ˆ ç^7Ò5°Æ¤Ð “!þßiߺ¹{ýä¾*ë§b8TÎ…Ž†:F¯4ÞŠ—ÜQuÉ£cô ×‚ƒ0¤áþC(ÊfC8m8qïøs‘ø:Ö ù§GH‰]øƒŠA$æuö‚TùºªÒ%F'A@¸í ­ûð!ôº0§À"šj7òðø-†7v½š¥Fs’‡£ÀeûÌ(là$¤c\¿kcò î"†-Èþ#ºú›žÁŒ,ÃsŸ 3ñnÑøâb°ÕƒÒ€þzïÃÒæ“ °÷«¶a«ögŒ°»(Eƒž-Ђ¦‘±ð3jAy- ÇÐOñWʱ;z¾Ã“ïäÎ*)Æk˜¯(Q*ƒ¡†&ìnËù0³½ŠþúˆÂ .öÍí±aûõåÉœ­×²ä|÷{ pkÃÏ@wiÂèÌÑ _#`%÷2Äàô(FºÎç‹n#…Xèþ½£ óY«.¢9Úwa7ApcæºHTË¢M Óež|$ˆoÍtëÎÞŒ|ÊOMDЖŒXädŽÐ¨Ê Ë@ÐB`è•LãfA/ŒsÄ…ò/ä+•tD=í¨Hüyø×‹z¡ÂÿùàÑõ2»ÁÈ'Þ=˜  ¶ÁÀëe¬úN“0½ÝˆÂ˜—‚ò‚\Êý…J¦[+™.)Sö ®úé«É´ˆDm!Ëßö4ÔÖj[D§Ëô,ÎõõÉlŽT¿ìGDÚ’Í Ç_‹ÐGœ7ôä÷‹·aò€!/…xˆ+r£îÈí•–h¨ÄÃ\™ï4¢¹Ñ^Î’|î$…Ò; ²hý{e!Ãl^·8˜z 7¯•£È£äþ~’ã‰Åå½Hj†ÔÆQ–[ØîöŒ'v×Ù§ÐÄa”ó¾,Ü”a£ úÄç‹’áÔñÕHumB5Ý“gålFo“(ÔßSnc¢\I«v3ùêz¾7ÝJº³kvI¨RC[\µ[V¤`¶Äy„Œ#„·M}®÷ôó”ÁÌ/˜Ò¹@ÿ‚_ã*#ja23ÞµÝ "K,Ë¡´užRCCrÖÉk5b;•%3°yybÔ´@HÄŽæÚ>ÒZ4˜Õ’/È“©LMµKŒ4Ly”$KÀ´qp—7¦*IRŒõ$*êYX°ÂìžÃXŽf"ë>(bçÑì>ªáÄïËuåæèª–®zôªG=Ú@å©3¯;ЛßOgÎ$(Í Ýf¿qrô´,å -ÒÏ ‡X%Q€ìúäèqæwH—^_÷UB¦O¼“(Zž¸þ’àô0…q:°–nùª‘‡Ôóóu)fš«<ìôuQ¹È •#oòˆe×¹‰r“—¯ÈŒCCÒ•®‡öêææfÕ˜ŽHµÓuüºØžÊºQ˜Á{ú¦+ÇÞƒhÂúÒVòí[Ú[«Vþ–[ÙZ€óZ™óPˆdÍœèË×kebLœhM3§•MÕÊÜÈ“9Ûª4¨*Q™þÄ$—÷”ddÕ#õ‘¨ô‰äñzñÀw.pФæ¯é/x£a”4–´-ö> Çû±ÑhÂ2žŒŒ¯G!ž©Â?QJÌ«téV u‡Gñø7•Bã=†™œöã<4¹œ”…$*0£(ÅC¥CÑÕQ¬õ-wG1##g7ûZDÛGžX¢¥Ü¬Ð»n>ïóžt×4®×Ýí©¸eÂÄž\£ð×:è ÄœU&õåÑžóæ’C()a$ª×ÃüÉÿÇÞµ-·$Ùw|¶'fWŠ a‰’Üî^=P7[²%K!ªmm¿tA„‰ JÔ÷ìË>ìÃ~CÿØæÉ¬*)‹v7Ý3½3Šp˜$T(T%²ªòzÒæv"°knê^XÖw@h-ªï84÷õù> ¹£Qk \%Ežë*’RU »–¤Äx(æ(•!cJ „v ¬ z6CÝ@ U¶Œ’¡F¥C!.:Ã>Ù]*ÒÎxË:ÍX¸t£‘WýÛYšž% ¡§È ¾ Cê<¢SxÌFŒÿÇíM kÁ¤†)¿T.Mé³8ºC˜`‘§^lº¶)Rûýö6F KIo¸FG€)gêj‡ ½SåÑd‹êt»½­'±Ù¤¤Ý 0„’”sMš‡ d$Õ¨³µõ}›þm¿ü* f€Â”ð 2\Ÿ¹4Ù½gn$Óûá›:.HVOþt±ÈÊ8CîbYÆëš^à:»}O&9ðõ·>“Ô4’„ë‡k8ªÓ9üs@=a–|c_û‚Ú,&îSÖ“iR.w5nº²ù)*Q#%0EužÆm¹°‚Чª }ç*®&¿þ;C‰Ô”~vãI ãµÂ<©Óè6åv^=†L8˜šÂFÖ‚=WLÕÒ×…Ó¤C?˜sñQhX³­ñߨ-¾s è»´R,Œ@ÙIe JŽyw—JY£¶ÞpÎ2wºJT?Ò¹‹01®’ß©¹ß‹Rúûô#Ð?º³b8_×G6Oþ6#·î=vèÜ4ø˜o4<§Žp¢êÝd(Ý86…zç\W Ð+íŒÓ"Ž*¦¶à‡¶‰í"Ÿ«¤š·‘;%8Y ´=­ Æ×vê—‰¡CŽykæ œðÎq¸Œ] íñBð\hg,vFhÛ~‰× Κô§å‹w†D#ød\Õ·Hú”y±C3;$ÞFþÆåhD;ãA‚D}¾/™·àT¦мœ(Ã|Ûä]šsµ4ðÛ*$bä9mCøèš,Ùz­•Ó¿‚Ä&¼•Íuç¦Ýº a=ÏlñÌ[/Êlñõ]DCµß‚Þesfl&M“ÊÐÄ—ŠùÎcìGFú翯Dænæøg¤þšÛþn°'BKÂg¦žÎûEL$ÏË2Á9öxEJELMåjv…<Ѹ\,Ø uð4¤ss¯æv‹Óâ%ú9-L"b[c/û¸¼ßûô"E>ÞLÂ3M:2ÇK-šð¥·ÏØh-•Ôã¾Ì%Ógàý$÷Ö‚‰ÊæÊ^é‹ï€Ÿ#ýŒî§€£½œËÌVÞÃ0EvF` Ì9\<\?Íšɬñå"¿*=EçZÃ2ê þ-ù+Œ»åŸdØB—î–^âxÁ|ÑÛø£^2m ‡bp¢‹›6ᔋ©Êõ"Âfáâ¿QË–çÈš™î£šbϪӕ˜qfdÔ©ú9˜D”N÷·¿þ7+ þ¾áˆ®Ò“ýG86E4ëÑ`>©üw¤÷$Ñ]9‰•.‰‹§ÑDÌLò ºÊ…‚49Ut¥jÒ-b5R2Vu—$ŸŠ¹µ·¼¨?‰«öö/[ím VÙ ^=]Ì¥©ÂBw2?D€Yå¿°S\TöÉÉ Z¬EÃÄc¡® m’úÈ}Ež$ÇýƒÞÎÁË!®Øïó Ê×h \íÑ~0ÉKÝ%‡”˜ri¸Ó߇¼Ù-¥ÕºùÂwé+½ výN°½õDx#HÿSej/Z^š©øs„ê@÷"ª‹EgHf/ÝS«ÉïÖ´%[÷¸5§¾‹ð,Š™¿ oÐÔk|·Ð`×á: &Í#à–à*›[.;]iØÊ»zO d‹–EŒqr%ÀòþøàHå [·ßëîL—šy«èä_6“? »(g£°‹ òµ«CÑk²î§_Vo ‡ õªÀ²ÃëøLêÝÉë_xÜï@ðá ¡6Ùô¬?1ѹ”ÔJ¢KGq6ËlŸÆßðe᤽Ýîtž®Ÿ§éñžÔš{kè”UQ³çãLݰ^áöMg5|ùîÇÒ¦[–¤Ê=®râWªœøH¿+a ñÁÈkG×ïÔ|ôe|íS5ËCÿ*b' òÇöÇÓog©ù¨&áÎ3M× é3s~+æ\®ú-je~sƒùÓFrT¿Œ%Ü·\µ¥þÑdLqú$7\=C}¯¦–M²vÊØTëå[ÖítÐÞúåUûÁ¯‚m:‚ƒ—OëRg)”œ…óbp0êúUºù¹ò˜Ô¹,S4ÑøÄ’õL±©˜¾Úÿá‘öX³r¥mÏnh¶-­Åçn[%9iº5ËÒó%Æs£mÌâDÈ_&J– ‡Ùp‚ÿZÐéÉØ,/6=‰[‰³¶¾Æ6 zêÁ>m'¤§ôÖµ•šk6Е ÑWºå¢ Ktå :í¹ÀP¯*úÖ¿ƒ¿»ý¤ŽîâŒSÝÖa–1˶”ÌB*s° ädká½JYL˜T|¢ït ¤Æ8[x¡oÌõ¡ëö‘‡éÌ„¦Зú½zão8{¦scY'eïnZ:“ï °Í“Åv¡04p%‘n©OÊ%¾÷ãù—‹§ 3'¼€Ä¸N9·o7?ßûúç¯C!"à°üíeøü¡Umö\,ÚøLz…[^AÛüšûëSrŸü-ð/3¿LæGËŸ¥ôÓT^go5µÑ“;NTÃMQZ'Öµ¤¿Ê¹ý6/ÇþTÊ)Æy>Ô‹µ¢®ïÆC›W¥ÛeŠ¡Ï.ÂãõÖ!lX̧0g‹[u9)èˆÿêrßñ iÇ{-ÿ0Éjl;MÈ­î÷³èqôXþk´Eæq!&ïÜIÎo E'=_ßÊCètö^òçÞvG/ݲJ‡^ß 2ÊøFFZZ—\Ö Dël?m%цa´›Ò>ºìrUÐWK*Éò²t°‰ß#6g[e$‡ðü{Î’½¥Î,ø‹s[©oK›ÛÜ•Ž1¬Xz€ÌBdðë¼. Ê®|éò}Ö`øV•¨°wZÇŸÊn=@Ü£Ô^šç¼éSÅ &íxRù‘µ}}!HùB·Îâû¶œ«]Æ 2k"õ2!XB¿\N¥Ñe7Ùò@w’X-¥¾N²Y\ä™#^rv›–{²ÔF%¦&ÄßËkzø ÿ}È1ªã]M½‚Ý%ñóƒ¾sóŽD©á^â1·ÉÓ„iýG0Ô¸žó·§Âå× GœE¼Ç¨6ø|Epݯ$‚÷•¥DŠ[à`JÝ9n:uš*#,!ô˜§jG\@Ö­ÏJâ {Yöé¾|è ¥¿ñáè˜7£‹«“7%¹CŒdM:UîtHý&mqïZÃÉÌkSDë!&`Ç&âé‹ÚqÏs³#…³Š&(Á$òèË^wp„qïz”Ê$ý˜°8ÞÐWªæ4Ýpâ‡QmÔF"K D-RD#•xZ±”JÃÓ~D‰è ó³8—Qn´7Fn©.K„o€Óßž½?ùË9züB+¸1.JÅ#´¤[*9â- ßgÑø?i¾XNXC[(ˆQ•t0íäB÷[³®tÛ³aù4_Nuì‰bœ¹µÙØ·JÒk”™â–÷ÎÂÜÏìœÜñ°_7Ü á/T]#`Ÿ.—&“h=…¹ÐIAž¾€ä‹Þñ9Ç)šÞ*ìǧ¨ûÇlíiÐTžéûíé{sN7pð:[[»[;[»ˆÊ^-J7 ‰E}Àq¤îôÙcõH¸_ó~ßÍO«$$ ø½“wg‡$ëÄEw®h'Ƀ¸Ÿ®k̺Ÿ ¢gTls¥‘ÇÑEFFa¹õ'ѼŸÃóÁ!aQŒøY_ÌbF£†ÆÃ¹ûî°mîwê¼®–èÕsfÚO•Tœ›VÎê?`ùir<Ã!†Œÿ IþQìÅ;¢"橼 vØn¼¤´¸¶‹á¡I¯—*&ãZø~§`!3àš ºJ´¨¦Úñ) +“h˜åwÖTš"Öz—éñ ¤É> “Ð¥lp©Dâ%,å± ÇÝLâl £ŸLõæ%/­Aš‡@Úˆ¢Ñ}\²þh<¬¥][U˜ÔS?1Æõ–æë¹¥§™[><¤>£±éã_ÌEjTÔbPÂÎΤ€ß^©jŒœ­Ó-šÙ¥ šµIEƒà6št’Ä­ãÝ:W[+µbBêšÈ[ö+fR¤šÉ bÿ4 ã¡æR¡.”Ä 3b"½É9WúàV&{Å1t&ôÕ[.M:̱µ0ÙܾKIµ¡wa¢â”AHÜñ ‹ ?¯o®t&(àüônu€r³›¹¡C×ô’îß¿ lwŽø•ôBzŠ*¥ ¹$¦®.#òÖD.æBþ|‹ƒ>»u º…å&¤}ãm&ñÃ?¾¯¿uy{‰J^ÍäVvÑŸFð⌇=‚®tJqö³ª Âë`î¿É“qûˆô×%TS,{6A†ã±*Mu¶gò³;EEPÔ\ŒÍÀ/lÁ(šš ðPŸ?›ºCÜF"ëEMJ.ÜŸ]ÚB3³+X…ø"&,¡]Ä? ÕƒBk\èfu˜DaÔ´¸‚ô^¿¯3¢}TQ\PÓ,-†Ý"KåÖUL ö+MÅ¿F¾f Ë)5å[7,ƒ:ÍšÙ\«Ï ö˜QÐYüîFê!rÐ;¯IÕõÏ#:¡24™Ž»*L›9ôûsÑž¢tBI?»‘†~§5DN:Æ£rm‰c*"­þ+@üwÿú—NçßóðaB™$ô%št§ çÚÓÄ6F´Z Ϊø³ÎG™S_ï´°¡æÌx®ÿ|f<ŸÏgÆó™ñ|f<ŸúÌ0a>Oèÿ(j[8 Ì”×òY’}é°}&ÜcÂiLKK³½%f»’¿jXeãHŽ‹QÓnoémr§0±ApÁ¡Š§.\¨Ÿ«å“”Ã¥µ`¬™hÆGøÎ|>$±Y›Ä£®;ñ é¢|õYAE[zlÓ&ÈD79 UÎÉìéP©¦çü<€‰1`ÎIáä”&Rª`Ðñͱ=æs¶ Ô¾€$±.®a·c[–ä]ߣ‹²åéøhP™#pª8E²®Y“È…'N8Öñ`Mn3:þm•¾Ð5È•ŽçöS^d$%­Ÿ«À«LÖaÏþ]ŸÝ4e i0žH«³ÍãgšÈ„ä¢Ðßé7‡\Ãq{ˆ ëa]Tëº<ˤbã}g×g<õ…ÕpÛ;—Ê?è3Ù‰GOØ +sgÃN‚S$±/ö¢·A•ôŸŠäÁ& }ÓÁ³²qìÈò¡_sºqE•W-ŽÏÂ’ÚÄ#×x ¹uÃxÞ:d2™ƒ+À¸«AÒ¨Xˆ6쯵 ßYÂS”2ñlN qÙ0º£²N§²àéÒ4/EÃ4 :¸KC%iŸÈrð¾w潸ºìÝŠ3Y’…Åå_lî?ÄÝ&©ËÆòúpSðQ˜v²–}Óe¥¥'q‡ ¹ÒÈ`l‚°x†,ÛuÉ9ÌîúÇK9‘—! dZƒB¦‰õóÓ¤n„O÷‰¿SN ÔMåÄIˆMŽw)yn¥Ê›ýÕF°`6nKR9}2g‡4á©èÏ“þÖ†§]oYˆ³Ú¶ŸWÛój{^mÐj3È;OœmÿϤãoAŒ/m@ÿ\$ÑÂ{CW_§ нKª€ÓÛŸEÀöã¨xÞ\ûâþ”B`ÄðfëU€ž^ºú†™w•{‹öÔωÿÇ1Tœ;²Ñ+üÒ{ÇÒÃYâ÷•”ÁÓ:ôˆºÔh¢v—gÍJ‚È"§jÉ&Np~X³[:d’¯­ ü~†œ«Þ#v¶ñ炽­%Yà?~6µÜ'ûV£ƒ´åþéß5Ç=ÎÂïÏz—æY#Vòlœp°ëf_R̾TŒð˜ÎÛ4Šé=K9B.5Ëz0˜¬C©‡8Gviðß¿|Ê·€AK9HLð¨Á¼»+¹~†sé°/"®P­°|²œdÔÛÑC<ÅoºÚñdGc6{}v~â ÞÝ*#ðǨ@%Ý×q 4öÌuÈ3ENª½o/Eb-2ŠUß Â’µ2ïc~‚G9YT¸ú¶ûšÞ<Ó[ F¨c‚“«Øó"xÃÈ#A«–$5›Wèq“81(¼Ÿ@žÂÍ"иäÚb¤Q-ðzòºò Î×MÍX D‰š“º®Î¸Â§6X?’‡¬É•þ8Ò!bÈæÐ‘wGñ`;ªJ½KT]‚ö«ÉB›5x`Ö·8}€CË!̇gt|kH´Å=bÉ_»ÈdG|îaÂ%5G´дfÀ SþHM-ŸGH\—D9ÞÃS쮌Œ¯ ®$Ì诉DC7÷Þh1?¸ðøà”`#¼t É€Ÿ‹‹Î e0€ÏM4¾ûJòð!ç¼#¥Sø¨],×Ú%_äÀÝO§s13êŽ)U" ¡»º\KªY™¡q;„HÑ®JãÄšp¿©]ƒ$B>”xÔ¨nb‘sè=…È Ž:Œ¨áMN 4Fؘ\0fãÿ8 ç4&s)ßV£Î~ý_Ò¢.þú?Ê?©î£>`Š•¿OŒèç·,z˜O§þÉŸ ã¼l‚ªE_ªpÌÀš^Dy’!š\“¢úïz »HSñuÑáFR‹^¦·qû=”ö÷?•ø”¿‡¶&ìøÞ@ÍÕc÷K|‹;9¦³ÉX*l@5sÚ"RÎðu±!oþ;¥Ó¡¿?™ð—%·­jÃîœp¬Á‘Òj±Q¯‚’ž¨ dù¬œÌ˜¯‹Ã?§mœÛõ’èx’’¿4­~÷K§==RðR elûqe=”;zr)× 8bh¹/ædWÕïÒ²Á3yt›±(@[–žŠhdÀóŒµVüÉÒMåbޓ몧ƒ O&NAC›sÐxä¯{½×ǯ[þþ;¨ò´å_iË«‹scî¦Eä¥ z#?\£%ùj¦âÈHâËfÅF'y±È˹Ħ×̘\Q†¸kˆv´)±9Ø4†À×tô¬Óž×DPy#Ÿ»H‹RÇöv•·kĘºKg±D]d¼`òбb/;'Ýóð±G`$òk±xô{ÉY|éå0÷«^ímu¾ù~Ĥ‘4ù'ùó‰,y¡êoÊ’—[~÷`“Üïbl{oyã¼±ÎÎs°NéÃó”Ý»èµ/%ãå²÷¢Ójl¸¤úÀß-’¬]÷܇ bi6ŒGµ®Ã.ˆ8¥ÿ"ªÂ˜z€¿ëãü*'±ùêH ©³E¬‹Yì;ftîJ1'á4«Rýñ§DêÃúñ‘Þ²ÜáûþÍܽ$)›¨GÍrud³öˆUEâå-.½áÎù²4E_6Í$­bªäœ(‡N{¸,óƒ>ôۧ~Nká%£‘Tiô4U É…ì¹æ¾ê½º—\uc½»K8°XE#„Q.Þ¼îRɆMXN¹„CdÚ¢DU`pG©ˆ£/å}íK¤csä© *U#‚£Î¯ëV ÑM0«ÑIt,ÃñSÇ6"g‘-ÊîúD<‘Ö룃$Æ¡m¢Ž/pXÃIC˜‚ Â’fÃÝ"Ë/ˆi˜Ý(¶MŠZ\ÿâL"’¼ò`²ìÂÝ¡ÛÊ=Š¡Qß6:·'ño4£]¿Lº$¾Ð&Å-ûjÃÛ|žÜ =ï\žÔ¶±öswe‡®‰`’g)tðâªD[ó$ épÖy!Y¾ù–Õ«!¸yöݱ{Hüîö­ß÷ë_jEÐIT<Ólˆp?æ^ôOûÅhLG@-Ÿ²œ»Ë*ðÑñdseû’x´èI)×ü²²¹ºÊ‚D*™hØÔª;¥­ú” Ù<œ7üã¨?DÚÕL—g¿¯9¾¢ÄßüÁåºÑ–ðÅgÊÿ³ý¿f9ugƒX $€^_÷6,„ÇçT€×ÐÌèÀjë¨øW óÞú¦Y\Ì&aG{Wâ€êWu´µ½1c»*ŸªXÍQ©,…ÜàBNH÷3É\ʱI2娄ŒV‹â|Ã)Aâ¾x·×ëm½u›x¢ÙZèHT4StÂÈÝ6Bÿ£AæŽÙÚàÐÆ“òVá_w%͘@¡’3ÞÊ«˜qºífAGÓjž˜löÅÿtC/›H1Êë ³ñK¥*E…ê{žnEw’Ř„ÿé i!uÚ+œfaäÓ A ôJS0Ø3ÙŒ…¨=šI¹öÿé;>†e?fP½déL"É É%ÄJñõ~H‡P„³Z^×ÒKa§oðéâ_ORÄÔb´£âcöVLµGEò¼I ºr¾nhì¶UǶª7ª‰áƒG1ŸàcÁu€"§…‘XÚX~‡æ©]¹>}´%›F»S2b–þ$Žnlí +ÈÇ-ççûn›Ö Ó,H|‹ÕX:¥ÝœY¶ó\ñAK eƒè¨ 8êvÍ|9Å$šIƒƒ«Ã}âÿ$þDê]æ$vî—œbíœ1ž!øÎøSß§ÉŸÈûCäÿ{ »Ø ª>ÖÄëƒå´NTç%j÷Y z¨ž•ãÁÇi¾»ß´å^yoÖî‹ ;F–¡…ñacƒ’ûðö¥8«žÍ”Nƒwnt=æÖC œNãàL-Ø—­¢ˆo4NŒ"Ð?u”И}%Í©¯}\3dú&Ž…h{Z3•ºH¢¤ÜYø%ÕZ3ÞPaõÁ§)à×´M»ÃÉ à®Ì®¶¾£9Âë¯ÔªUjjT˜¤~*}uzø…îË„….à­wbA@\©õêİ&0 nFøI‹Izü…ŠeOÐõ;#¾m ±Š0-îMä©Ýªþ¬ÊÃJ ÒÂwLÜgaN~»Hìk0ÜÁÞàÐ5\²VõÉPš¥TUGL=L#‹uñNXf¤Èª±û>ŠÅÁ0˧>ÍûOs…"¶8@¬Wn¯÷ÊÛXØ0—ü«lÖ:Sœ©÷ß·{Ꙏ͑zEñÕT°xh%>ËÍlU)p©¡%¾‹$øÄáÛ.P3­û§Áäà­ïZã¨!°ü¢pÊ¥ßÈ8Z—l³Ø«Ú2ï‰>μéÛ =îŽõ²ýÒ,F$Ð3†¶¥/¶Q¥£çÁÝ™Yaè@ß‘P;³WºNWjàŽ¢‚sNϵp¡B/ç÷4'«0¥(f\ÝÁ9õÕTÚ$ÐÆ˜ÍΜqdêÍëSЬ³,IÄÑòT._Çjе:ûzÅ‹És\NØçè7ácvf¼ñ—ùKUðéQD)á\,·i¤jwçï]åjª’Q9cÞv«·¹È®háÑÏöXÌ0ºFóf$3¯š%uä íˆSUîö—ùrS=Vyêns­}ѰŸæýyƒ¼à=wcÍÛ\û¶Ž*Z[¦Xh`*byÁ¥O¨naò€B®`{:¬•…ûâ˜6ë CË7úœ¶õ%Íú˜9½áú<¤ýõaðeÝö I˜Ù´ÐNž8_VzPS¶ÜSnT³W`•ù4cžy¦Êš7 ¥ý 3ùgƒbµu–A²% ãL“MDÍÇ ‘½S;&8NJ±ñ1‘+ÉÞœOu3ÂÇHH˜ñìö\]•q©öE¥Ö2sÓÏÝ}\Ýœåã4úª[Îa»—˜Ö¸9‡DmÒÐЃµû[³Çt.Ï0Ï Ž¶R‰NK£ØC}`°Uþ 2±Éi`DOÈE˜®\§%õÓ‹Ã˸ÃE™»Â;zäEÑõ« !{׳'{˜åµuoã-ý]”¯?¬‹i¹3sª~RÎá(ƒ1g­1 ×L®º¤OY\Ñl‰iþý¢õ<½C¶s…[÷¤ëå®?xY«£»kdR§øˆ·kšBX‹ÍsN’"Pq³ÓÌ‘ÖÐ$`ë–²`Žb(°m€—`3 WQjýeê™RâG _EîNê—Æ³’ÍI¾æÑÜ˨·'~¤­l#¸uwUœÝÔæ4Ý{Ô÷Ô<̧~UÅWºy¨vÏ0ýCêW!õƒ®³`"Ê¢šD4º£lúÚË?öéh·#ßÁ'flÜ™øIý ‘†þM¦¤ê»|Fê1šøD¿ø ÷#ù8‘úy Ý6p¡“¡ïMè©BÀ­î¼j‰ˆò¢`‰Ú>T¡}Í<ûH§¢Z|øYE‘ùPOà>õ›ûxDzaaÐÙûñ°h|ÿ š½”gŸ3ÜùsîK—úg0‚*jeô#¿™åÖ1ƒ(™™ŠŠæ#ðé~‘GT¼RDlï#ÿ— ªJc h+ýÞÈŸö1¾¼ËJ•@‚œÁSùÀÁ¨×ÁT¥@ ÕáCõ»Ÿ‘R)5e~˜ºçÕA]vÞ+ºÂÝ}ºø¦ÒxÆÊºp’ÅB ï£w¯Ÿ*ý=†'çi¤b³üÒWD+î%¶ÕDÈýƒŠ¦Óˆf)-³Ø×è]w@¢‘îM=ñ™§*6“ö!‚øpÌ.˜îÇÜ<ËæU5 õŸTòlžª)3¬±Ôv‰w@²í©¬Úa<÷Ý¿û46ÄêY:,ö¢'KQ­Â»GT EžTÏ0 U§;%©ÄÞùåD?! ýº•§úìÕïÜ“`73)•ŸvÿvCï»Zн¤FØÓ{î‡,ÆúYÊ6ÀÄ¿"“g°Æú{ζedç4‰ÿ8ÙYá~ _üpê×.§»†zùˆº¨¿,>øàßÒa`f·qd¾ëü‚œš ÕmW1¶ß^+³ hcÇîÍõ­ó&žuùsSšg™®£(q÷Õ'Ÿ¸“´ ûƒÕA„q¦aa UH”ò)kÔxð¹ýˆä÷À¿ÑËx¬h~C8}MuwŽÌWžSŸ~¨ÌáA_‰ªŽªa¤wæ‰_ ØÉ}W]7Íý¢"ZšDSÿ¶ñ4J{Á¤3ò(÷õN¶2B6¤)»i=ûŒ1·PªÒ{‚«o®¶X&æ¤JU€†©HR·žQ=ÆV@µÆÅ¤v›ÛwIT6ðm…–GŒi°çsšbyBBp4£EßgH Gݘ—ºÇ>rTu ¨ß@?JC„‘òg@#›šJ鯒G´¹ö5^ÓÛ݆­eÐeD7޽tNŒ­Û„æçÆ<œD4ã1¸VyBwtJ$GÿüM屜CˆÙ¦æªÔt˜̸X¡—æÒýy†u>›’ì'Ï¿v³>–õƒ¾ôÞº™÷$Ä{~”p¬›†ér½ÉÓtâëCñ*U˜Àý¿©ün; |¢Yá¿‘÷>Å~ˆí||öéPtw+8!ËDÓ¥#í êz‹ÒÚ§NûÊ Ëˆ„Sbl¿Ÿ?¼ãØŽM$Ÿ^Ìãì_ª/†9üÛàðóßÞÓ}H\HÍ~ù¬NÇÎxO³ý_z=íç˜ ÁH“‘6M³¾ˆƒRÌÚ˜PQ¸¿T"KPI©ªíÉâ9û5ÿ™Ã[°.@p-LÏ»Ì~2®9 5$ù$ã ÓÙ­Ãú—v| +x‚­¼àävÄbRóÁ‹Uv6æIQj†*'LŒžç°jƒdQŸ=Ö=÷lgËÚðª”7žÀV«ä²ØIËÂ}ÊrO“t™­”|è[“Å”s-–•¢ù~jºÅ¯‰šuvä[t¥­Ms#Nt¯ýÞÒ¶××ÑÔF‰$o•Œ£t Þ5¸qwÀ!wFütYd*øûÉWËÖ™µÿ 8'%Ë™¾öˆ•\»ÀI£·ù`!Aâ÷U³­bµgù!ž›°€"ÆÚHC¥\8/qðþ@ÝŠPc^ª[;Lci‡k¿Á‡Šg[”ñYI‡vîÍ‹ÌÝ+êÆˆ”C%Èí‚´ YrBöJv·ARy«â®X:géØô‚Û—žÓõt hO€ °Òã=ÞUs9y¹cŸ°üEDWŒŸ? Pȱ7&cQ ™hW–l fÏý#oÉ){”‘X•Z¶¢`£7ÜhP+ƒ¿õËjJ—Mô4e‘y×g_c¾ò^­{ü„ó[¿zÞ<Ï›ç_¹y¾“°“ÞVʱ)¼MD½ÇÞRñ2z›ö¾h€WY’=‹Òa³¹·tˆ¬ê›ÕïÇ÷Þ7€KŽƒ#âR!È~‹ô§4³KL£iFü*øšWw; þ´PðÔÏh‘I$ö',Dl“¼ÏŸÊ -X3„ø²]òßF™ïþWwÒÃ!²¾` BzðÄrÉ­®{Øá¯Ì}bß$Õ'$~g ÛǧôB¥ÿõ¿!ÇB&p·s•ª~!ßžHòî0c¿f@¡mº4ÊÞúÖâY)&0=ŠÒÏ…ERô`Yò?Læpb¥w¥6ñm5oíeDB üGØ¿ØT¥«Y ¿æŒ¤f:Ÿ`´ê8ºÒŒ£"ŸùÄP¦6¤°˜åU Ân53ù‘Ù‰D»ŠwraÌUÔβäÙ`úˆVCVìlék?U·À¦‡ç“üÁNH,- „q+_»›¯irï]DÀÏþU3Ø;8=³(ÔfGd™UÌZóÁ޳fæs¸‚½àlc^ 1¯Þé@#d(•L°·ÊŸÁ_ÛÝUìº wãjÆêP_¬ CN­<Éâ¥t¨–|ö ¤}FWJ5U)§o B¨žäX„ ¨ë×=FÞ½çHwÉY¬®8NEŽ·Â –å •åCE­Îç§l°®©ctìµ{¢=œf Î[ˆâ@E&ŽÄ¸*°+ñvÄKÝLôÛ TYwô)R˜a=%]tê ”ìÓŽ4ª„ÎuvTܺGŽ'‡'Ý=ÆÒááƒç˜Ô°'× ña„aŸ·=~• 6z.ŠÓƒ^i}ž9Òè -³66°…®Óì *«"Îp-c–î#’Ó¤'æBæÀ??´glÓâõ, Év~v¾¡óZ\ž£©Žë0.j*½‰H¬ÖÎÓ©Û0¾¼º|×}ã2Môú»*‡]„“tÙ˜BX"8IÔÈ:ÚÃLÚs¾· /ÞÑ$ýôxŸßHõ¾JSâE."æ ·å«'_û³¸*3–CG¹"Y:?E …™óÄ}Ü75óµG.}æQk] ÂúMhä[ÆÄ (öòþ®±5 ]d1ªïs¿©‡µÜFVÉŒÍÑ=º ßÞ÷„=‡–ˆJ¢¸sëmÞøÖtã)&Ò°µ<eðŠø­Usëâþm\‚kË%BçE¤Ñ·lDêa¥†¾ö$G¸X «¦AG%8)‚:jz 6ì¹4ðU…R}Ã!ÃʨÊDû-³üìÁ"0Ó6âï_‰”£°Å!g™Ì¶/j&9‘éLÅ4Yž¶) …í‚2Ÿ™^Œ G$9G¤¥&´‚—Ìwt䀻"âqžFËp1Þ{ˆ¸A¶ýÞÓûJy"áçžx•N[óÎæ@•ωšƒ s·G3ùÔÕ0òÓ&ÞæÏ~É¡|Áõ-jûÞ©HH~MÄN”BWmïõ"žßI¦ÌNè“Þ^±÷²?%*ÏÒÆSæ; Ž~NsÉÚç…ÆkçwíЙäJ… ëhÜEŸañ½×+lU¼ä5SY'Ž@y ]3÷B4b䄼’÷ƳÄè {¦ûnâ4څزâ8ÞÉ@ñ±wò˪È_’èôRŠ2ùÆkÄœ*•Jh% /Ÿ%Î ;ðŒÁ!“ÁéÊe× ©…\.„ÀÍÕFÔ ~`Uj×/D›i˜ÝM>BQ.ñé4K#ö TLò?mtƒ;2¿¢Ö…ƒ 2˜¤4Ôin&Ö®oIÉ‚z!±=³pD× ùe®óúÍ £‰×Ž‘·YíÙOÛ–N]•£qáíö—åðö†ÖüŸ`O4åu©À¾æhÒ)Z¬2Ákô¾°=V¸kÊl&ã…wsNÄ1Ž·ÄðÕrRƒˆ›:ñ¢…Ž¡á ;PMt8å•1 tz EMF^šcÇü®‘]èN™kˆñíž)3טV+­JK¨ÛËú÷¥îzç‡Ì³;˜S½óDÂ{CHsà#Ë ’.Žü4ëß «×4R7^åë¢0w^“@I{$ånÍG/)¦ý",v¯vø¸ôÜO*ŽÂÀÝöùYyÓ¯ ¿†É¨]Þœž\ì\ÒÃíÀ<õˆcå0ô¾.¶)FÅ£AçØ1>øíÊ÷ò,‡‚³=gÖ,ÄÓþp­×óTEe=Uè[@| 2`ú$òu“QwFú‡{QÛpCp•1ë61w!DÖ!¦MKªSQ.ZíÝ툞ô‹d“(ë"öLÕ¹6?úÓjè~„g±¯¯ûEE¬iaåHQš÷¨š§¢&´·¯Ë)êÏüëÊ˪¸òF‘†f¾ð@œsŸÌÝž&ü©/Ã^š™hõІ‹ë0JʦËɈ.ìøìçIÅ«ÞÊÇ>‚À0eQÀwÎ’ÈÙ- —þ÷…»•üé~X<³’…u›!¥GÞφE‚4‚Ìûê›bP1Ÿ Äê"†Œ¾.ª_¹`•¸yå眿öÇ* HfQ Q1$Å*ºUcÌœ|êÇ éIÇv©/üº°OÓÑÊåYˆ©9uö¦*mÛ‹YW—¤]¨¡¯]‚¢˜NÏ$¢Ò·úc?Ê}âaü3[,ÊG´1'UJü‘»]¨ù”haÓ½Úx奛këkÞ×u" D 7Ò˪tÜý0§«÷”îVZ@?)&ýx˜èiÞÌÏzèÙ­÷s´Vl þèÁ͘O1þô£idÉPLºH¦ Ñäò©×îÞ¾Ùx³ù¦;¤~¥ãž—ïÕ™x¿›±RÀXó¶Ü„è—Á×…7Z0unÞãúÝ\Rˆ°Ó¼”e¸bÖËλMîGERÅà$¥ÏC:í]$Å-Î;NÉý½s®üôv"Ê‚5–U_/Af%Éæð±çl«à”é6 K„Á=ôW›…Џ{ xA¦§¢Böœ­HCH6è‡Ûql;‡'Fvy|Zš ÎWŠHÕª{öãnŽÚt~ãÝ¢t%2È<)øÂN”Í4÷}Óÿ»L—FTÿOøºCÿ½¨n;ØôK*ŨgŒµ®AÝ$êÁÉ\ÙÐr‹Ñn S àì®gÇô!³ ûåŠdгÄ™ÀÀ·‹j³} j#™0,Ù…v_n@€à°¯UA¹,nªÛzì}ý·æÎ Œ«sjþT+ËÿüñÌ(›ø©&Mx×…sj'/†øþ¯œtôI¤x¢ _‡€ny=wýíbÜ ȱÑÝ·†¸ží”óCiDøBqcFç-)NxlIöÉ;튽¿¸—²ÿY ­Óis;¬Øüª•:RÚˆÙŽ€³rqº4kÒÑYõØgB¶‚ô©ÍPåt ÔX›)ÓÀ[¼?\µ¾"˜Ë˵W|Ñ$ÕѽBö¤´PÂûQ ÔlÊoÀ¬%E @Ø­? =Ü/JÒÈÕ,ö(ÿºh˜‹‚$N'%Øï¡°XQ8_}Ó“ð+·®J³l š¯8ÕE§Ãy¬€^¡£·tÁÒ6ÍbÁC¡úVÐH³NâÅ*XŽ çº*ô€©T;üù!Âa?Ý?¦.Xã ¤St|q¥°PZ›½4hQ¢6p*{Ls ì4 äÛ©L›¤ßn#á.½•!ôyC=o¨» Eò“@>[÷Ö7¼×´›Ö3mí¸ï`eÑf'í£cý9ÿ½tGr@1%ñÊî#]±Ä5 †[©!ùV 6#×P94@¾äË9ÃÍi­þíˆÄE¸æ¤ Ë™ÃÂÇ+iÛªÀG\D$z†±ÀÒ2^˜ ‹¸ßüSçRPÏèw¥÷þÛå·óÁª·Ç§ãµ›~û7)ßÌ;Oè1{=­{[œoýÕ+o!ZƒýØéé# ç ‚O´s‘ålæSf÷ÜD…‘ö¬2ZP‹ë˜k#SµXàK›Fåªv¿‰“ï_‘±*i[ üÆküYåwxØ!Ú’)3¼¾óïíS<[AbàçÊaæ>ŽRõ}–Ú€çlKÆ‘pgî4ø[ÐÈãá- ®Jhfþ>¿°ÉEL±kåÖ¹\¬v,N»ÃlÞn…Ï ‡HåVòÙ™¦GÒâ%âë=RVšØGß±m€z¾qgÎîÆA€^h ,h›SGБgVJþÞÆ y~~¾ ߇;q}Xt@F³Ne<ôU™AB ieÔò¸bð]8(°¾¤ß^ÐÈ—z¥ÑoDyèoÁ«A^b—A+ºŸPìÓuVªüOø×Pÿ—ùÏ(Öšð´oÖ6†-?R^ROÒâGAžÁòsPBÙÛrß< k™RîÕ,ä_²”u>¿*štjÀϵñ¢Â f÷ÙÖ@ò:ts˜Røµi3¿ÆQå4!Íø‰ð©÷ðЀ4(FÒYê˜!Áe%œÜ¬À×þ ’wøÅÓìYd“`ÍÛ*Ü­5¯·¹8y)ç"|Ïå81v”—(Ø7œÂ=Kãfr=[i+Ûo¢ÉvP•Â2¸íˆóÃæ¥ßè†Ó|è<ôH^‰„7-ªH~œÆ6rVp$hæÏ`'÷š“ˆ‘YEìU¡–¹D¿@½yƒHï$#ñ!…ÿ%Ü#ð¼è‡DàS7íõïâŒ9²cG5¿=’'í Åÿ8dÌ1ÑÝ\îúÖ"^;ðIÄÏi!¥ÁŽu€²sÔP9\ª8º[)é8ZñÛ±R Z2™C—$!\nr€‰Ë’dJ…¹PÜ’˜‰×GcQ4N<¹Üô(ät7H@ š(Ä#8ÚÜTUb²¥¨ÓßZÀþÝYjWï#Ûý R¤§ÈÐOieRG½(°fht #Õ4Ë¿ÎSÎAíÓ£~VxtœzeÕ…Ïoø´Ñ$b-Ý8Í‹ö‡üîAWïùîˆøYØÚq¨÷ÖîK"üûȺÓùðO¯C fA/'Ôˆ9Á¤„ŸL¿¯…Í£ýeYœqÐQ Ú´ôÛÓPõéÿ§9m^ÏÔXl¦=ï­·–0§-zn~iÅù-æVL*¢’gÒ±•H6ˆf8ŸU2Z5²l8m×%  ÅNížÄ¼ÂáåË/½žUy³Ü–‰ÎFœL‹é¿<£pX?ãcE`+iÎúô?Gûr9 ):òÜs]¤?êû£AÖfOŠ †ÚrÁ[oÃ[_[Ûêõ€’»ñj1ñBø¹æ¯$óe&êÚ/æ —:%J°u®_SÍ׈[€¦…@jò8N-?#j¬ îû'÷jðóÎ`ïð°ãÎÞ¼Ù|ûÿôº½Þÿj|Ýèö^Ó÷˽O§›[½õŽóéP^8:;|óó…þ{Õq?¾¬­¯õì§7æ½e>mtÜ÷»ë¨çýî½<ØÛ|w®>ìuܽÓA¯÷úÕF÷´X¦Mz¼7X_yµÚìž}ØÙmÔB?8öËÞ©™†¼´wºŠïGø§÷fmcMêºülfáÃWªñ”ŽcÓ4°F.+"=.¯××ËÔ˜ð«Óý³ýMÀ‡½‹¹ì94¦žZìH£þÓá|Ç — ñ(: ÎÁëDgg|7ì/.AJ-º¼n'Š rªª¿¸>G툅„*ôe$8à_r†G4A°á=Ü>Ô7‰VÅ«xÈšjÁÒuÁsC^MCüRÓ~\uC‡I ¹Î:ó §dÁæ)êÎIBGž³n$ÆÈ•*e:µºÄ©6÷Aˆæzmíf­×ÛèG3uÒÞtž–\èà]å´éAôkŽ"ô ‚¿óÛuðŸü¢±H…q¡¢tV•6a¼„¸Ðê3«/5,s,þ§ÍAõ«¦`‡˜X*ø[&åÿðsÜ@ËØº[o·¼Í­®öIvc„÷s⩈YtK¿ÐxÓ\É‹¿xÁ ÷Åô¼ÀËâp™ŽpQ7-l"úÓŠpÝKçÕ“à õ71¦Ï5¯÷3-雵·7ßÛþnU4ÀdxEYÁʼn(a8ÐJ™o•ó\kóBÒ*È”€}öiÛ;+³ã6Wů›ýmñ¤Ýè˜+8Û.À´U%–äƒ“Ž³·²³Lzé'CU7ξ›XJéBèŠÐ¾AèДðr‡™’s !IK˜u.Ç#æâMFV[žmôZ*m§‡õŒ½5ä»äÇ(-è—;î±|p~Ìý„;ù„³þGú8CŒÉ¢ü¸o ‘܇¦˜÷—E·Ú™°sJ‘ýd¶c¦=§N¬(A|#ss K+ˆÿµübR¬ŠMÈ2£N#ÝŽgZ»u˜¤~ÃM5{f2mr;ôH‚ ÝiL‚”Zœ3#dAÖJ­K ª‚n1ú·àôE9¾öñ/ü`Ô`/~«]ýè1hû³nu>‡¹_Dqíyû1C@ZÁ»}$ýë,MäûÓ4sY è"•uoÍí݃.Ùq½ÓƒKKÊ®ç5¼DC wB•`ÿ^#‹ºH.œÿ*¬ úZ¬(**Q¤×­u^¿)꫎à A¿Ðœ¸CͪgÄ|ƒ<ç[ˆn ¨hd…äšô[š:¡ÈMÚ²8›;ÄkE×T' 5õ~6M*ô@·öuBONscâÉ@MÏÄõ%®å³ÿ'¢¾îˆ„‘aÄ6†g2üïF†O^ýŒ„“ø1ÖéyíÿÈkÿç9‚fYQ"¹Ý/ñ3!>⿉£òù4|&Â)ÎyœÏDøL„ÿ"TÃj Å9(ðí¢Ê—éj_±VûŽ…áFžöÍbAƒl„Ƹ–@mE+'û»«:=$=r‡Y9Ñ^BUj¿µV>ü5˜°“«ª`Ú2qaÁ©øaX÷¸ídº·`'6½‹¦2ûŽqZ¬C-–¶)ã é#|5Ãá ÑOcÀ:@È]™”åì§—/ooo=Lºž,Þjs8ﯛH÷™ÖKKØaׯâ.´üõ% ŽÁeVL²) Ûñ÷^¡_CºO#7‰¾zè´ci+å‚÷ä¿Ó)÷³¬ÎIsÔ˜#¾ob°©]æÌïWê8OðŸä cüõâÒ:ÀfBÿ]IêŸvq¶gûOB_ׂ@û}w™ø"z“Q{̾õ¶ÙåªÃ/ö“ƒ'µhÇIøÙˆao¾W•šê‰€O ¤J†qô§Y—8 üXýší/%݆öù øg÷çýOBz)ÐÓ!¹Ó+üfÄÞÁË´bò8ð¯ì¢Y±Û….72åÄ?Ç;U¥=˜ïxîh‡;v+úˆ ;-Ðã\1ŽBÇÒÞº·Þq 42ð¢Ë‰`D›¢BTÀåîIÑôÏ2øljô-La Úfö ¸ýrRkâJ÷þƒÉ“Á™€pZŪÄÏÈ÷ üg&&§ˆ[¿!I''IçBÂf~øÁ: v¸#êÎçИ *JÀuÖi ë,ݹÅQ‡‘2†ç”Ðî)ž,–3D„VáÞñà!8ðô7ÿ³™·j¸Œ¿ïÿ½38ÇDtÜ •d¥‰¹þLÕ tÞóç“ô{’~÷ÂüYHVnÇ.xLÏ…öb/×NEÛÓõL¡ÿx ýÆüh±¼q7¼·›noë­·¾¡Ç¡ ¯¶÷òS‹õ^9¡í9Z5øÓ¨†oIJ4ËanoýpcÔa3Hh4àavçýpXšPu£Í˜Ô8Á‚‰¤/FwXR[Ïr&›ÍÕ`סK ðzèyÞ*ê¤Å“Ÿºqçß–7H#lj'S!í$¢;ìèt™ï¯mP«&ÁÐ5¯íð%÷“óÞDŒ³”åò(ÏÐ=J³œÖošûwD OˆBJ*—Øí{míÕúúÆkos}ÑÍë¼N+ÄyõàÏyÂYK´šfHBox›ÃÓ1Ðù‚ÎRÕÕ%N€•"ëýY—jñ¯Âõˆë§Îá3žœ4$OÊë+ª“¡R´ê0|™LºRLÞÁZènÿäæ:m[À(ÿá³™ „jäW1z!GØ$šf—Úb^ˆ·íKûªŽ4}qîÑÁåÎÅåÏ'gWƒƒƒ“«%ë,üç™Jbw{†?¿Ï:Ïü“-öpáÍ É€Ï%÷Ë( 6Ã|Ä8U3ó÷‰©I@Áêß%Þ oÛs¬ü•#×Äd "™#z]×­_4wç?âØLÙÑ&‡Í-ûÛ£˜õÔQ€EáäãÒ6›Zß-™ìƒ<š"?Aqš#E_'ú[Œºú ½¤óµtÏŠê:r·K|éáÈC¦!ÐÐ}xi*Ê[åO žzû€§þ%~·‰‚8‡8Ãã0"Xë.¯+3º«R—×%Š8ÒYàZ9â€pR㌅cìÇR6‰ ¶qœÝŽ¢~€ 8™ç?“ºF‘롉y«~ÿ7ar5^ûî苯ÄXøï"8¥ßqΞÛ{u¼Fʹ¦ ˜TÀÆ5HW»Ëw‰ÊINœ¦€—§s>É#‘ï´+[G¶§‘% ‰©m(mH¨[J«Þi‚¨¼÷c… GÝ…O¬#Ûft¦#OµH[}¹:–Ä‹µ©Æjé„9‘Öt”6“fQ¨„ƒêúœ½µÉ4 ˆ½8œFÑA…ì1K˜*3¡f“W¶uü{?‘ßž´‘ÛKß¡!Ä£ –x@G¿&†õEnÝþnÞ`@‹Ve©Lí¶¶ïgÙTh‚rÌ6kY27Ÿ³x4ÆF»È b¹+læÛ¼Ÿ›o¿çÄ´và£ä²YêþX–*‘ @Ÿ!£ÙL‡9Æ­S‚ÓZ$ëÜ›ñ!é:ºi1˵ûý+!dé _Ô«©²ü™âÄO,)ig|£Yœ_Ô”be£ÈF¸ëp®4K»°·.‚#84;V/$õ‹ÝXN€òPtôz7 &y–jq¨ãH,Ž€¶XÉj½Ã—gY…DdG‰‘Ù¡"…DÅ©Õ;à+¢À”mg©m>YÀ¯ŒrèƇª@hÍàÀ¥GÚcI‹¹þ¼˜ÿÍS[ðû’¶T `ø¼ÈÌEÆÕƒžm}ó¡ã—geŬóª;PAÅi&tÁ¦è½ßéåÁ`UsAŠÁ¸kܦAÀØQô\MBB~u]W4g¡ÁikÂvšxX5$K]a9Ü´5»7ë¼D7çòxÐqÏöîlš[æC¯g?­wÜÁK ÏvÜ/ÞæÚ[zÙAÂÈhÄñ¾:O¼Æº2b”hK•´ÿ¼e×Wocñ7žÿßfñå\ÚÎüŒ&‡ÿfä`€#F6lúz2V¡8+ZØB¾ù¾¼‡bÅ Í·×På`ú-\6@ÛfØ¢uKV”³¤µ„<¨Rº[óÞŠk«÷ jäÇàÝÂS4H´1C¦ž¦íÊ*>ÜM­Ëj>;`œù±65ÓV’|–Í]ÕÔMX6§1¿«=¡ã¶=_¢±‰“,aý‹†c2!òXàAk´#ÀCÈ ï„U–ØE’‚zTÁ €¾:!¢t `°rôýv’ÃE[ù$ºüŒæ„Ñpybñ(¸ìãûÀÀk}¯~ûC[m%Ã#„ÖR1Ô» ßòS39Eï)t¬ü÷ S÷{éÔY¶\¿ŽPC¨ec0 O÷7Q¬ó ÅÊý[“l³ût½@!†„ ’$S/ð/°éîbYÐ7«^Jv\KMr:µê÷k{ Ûy¢¶W÷Ò§Y´øch{3Ü>s–¬äÃÇN£¦˜r³ÑÆ€±º«â¼JS•÷Þ íè¯çõ^YzíQ÷çœýšQy^pšÌˆlÙÕ’è-W›íãÐäbÕ̱xvTá~9ß;;y€gc´¿ÂÍ#ΈÒ<™œ?îmBË.ò®VãÛ¯¹›kÞÖbíÀ9˜d·F–È;$ÝÞÚÆgœ@î™°ÍÖIvµI¹419 û>ûPMæ°­%N/ógÞ‚…ã—%rHüùBk+Ô}ö×íÐ…€•é`@7Ê‚U>B¤+Kã½Ë é£rrëÂd;ñ‡}:CºCÕt„¾È†*§œFC?æ(å×~˜WãÙÉ9ƒÉ÷Ÿy µÞk¢ãWÞÆ’;£ç§û£óªÉ ÚÀàh"êßMTT>ríZ£k©ß@Ê*Ÿ]ÅfËÃËl`ð3UFS¸òdò¡¯”§ÊÉW+û†Ã¡ò+¶ÆyX¥ãèiá0$ó@ؾñÚÛZДïÊuÞ¶8ka¸2ÑzNö$¿0çL[À¦ý ¿'Ô¢ƒ“²Û{uf©£s)jî….Úr¾ûE[BX#AMÄ)ܘŽMÁgˆpGA?à´o íxîß²ŠƒÎÑ}sùF/s-ú:?¢€eË ÏÁjÙ2xÓ€afñÅâKŸ(ø?mÕŒyã­×ƒ$þvø[ÏHXö ÔÉÒø‘N“`ÎÛF>§Â­RŽocKOhØdšyw¨jN®c²ÓpîW‘VI_zxZ&Ï¢H>%®ÕᣛF9'Aˆ²Ù\[H$ò’fûËþ»VxòÙàå:3TðÜ×NËžìÉQJÛÓýa›¿yü­¬|o”Ûm…îžGGJ¢¶Sü ƒ¾Ê8ð´•Æ÷Ö<è6ÐJÎk8âÃÇš-÷#Ÿ˜wNrÓ’];ÍNšƒ'¬‹Ééļd– yK=Ô$j=}_<ÞÀ¼5g¢ƒL²ò4¨ò‚® »ÛámÒNl$w%c„Û 8 3¾ÈæM×”Šcg¥Tq ;jî\$ ç¦!$MÜæ,Õ©°i‹ÛjSÓÕþ Nô"ƒ'4ü)Gîö…wàñÇþnT~¦ã‚¸d¤ðûÞÕf6Æ/'ڹ棟–þõCÖHÚf¯1ìé=Úƒû:*Ææ‘0™nBlÿ¿èhÊoª3cÝ%Ú€›!нI¼¨› ´ÕHý’ã–¬¶€ëÈ$b@ NHìøÉqºuñŸÜ‚Í}È‘ÁXô÷ûÐqud?‘- ý”ÈÞ¯tžÕ{úù¬gE«½ð'…3ø•3ø–üvJ¤‚¢.Œ7©F*Ö…)ä§”›(àûIâ5ɾØ~‚D ôÝØMûSè¾ï~’q÷ùögi‚PˆÍO… ’à÷NcrñËØþÿ8Ñ2‰á4)Ÿü<û¥"ö(°Ï¼yÖ‡ÃjO¡_\†Ý1µ°æ½í!|që÷fÁµŽm¿–IxoÏBß–ä×:ñ&Ã`v1m¹¨œûœƒ»À9pèÄÆÁyqp=ãà<Â8¸¿†qàSÖ²È@ÕÈaÅ!ñ& ±1õ:üÅâ’˜@’iœ¡r³!J6• ®q뱉{¨JŸ¿Xv þc9—ª„ºtù•_­{o»`ÖZÌ"‹´Øî ¡cØœ+‹ &4 Úôeà Wü$3©cÝ»Žói«Î$BvÑ1ò¯Ž¥uô8Îõ „_l™ì)éJ£…é8$JÁ˜³44˜ø*vâ)–|;Qý ð&I )B˜×Ÿd -ÊEFÓÉ) sý©d Ý4+»êŽvòÓôw 4›îúÆbøÂ€õr_NŽI¤Í ɆƲ´a*¢4êâgQTÙÒ3]ºVfâ9ýƒNH…ÎgtrÜå\+’-ÓdçpЦeÐp’§ˆ›ðó±rÒ,µ©I¬WÕ¢Òj’Å:KŸæ1Yö(­{&âW¬×àV©ò»M‹ó³ýݽn•Fwø€$³$Ø¿Î{½õ-"ö"ç2‡-éhÏæV±§æÉ|ð×c6G±I>z¥[0+Åí»V…Á#“.8>m¬Mˆ_¤í5«SÄš$“š—j„ˆÓî˧ŠÎ0Þù@\`7N;á¥t¿…WgÚZc2³ö+éÇâFç?ºŸé–N£Š9$´£‡ýd^ü?íhB æ½Þ‚ƒø½,×y¥93Œ·#å ¡±`´qQò‹Å_ jIkªCSÚäõ|ÓU‡žžA,®Äò|)WÙ"Ž‚æñÓ‚Î ÖîøúΣ²½¯ðÈÂUG{›ÍÝ5Pj6Ì¿ Ž´÷šVéŸE¬ßÜ-h˜‹]„7φUQÒÅ«=  â`¥´ƒ Ñ,ÆHß[(¨NDÚt“£]_ ,rlS%zPz¸^JÛ]ÉýÀG†SEÈ‘MqXÆiTçæŒ8‡ êH…‡åÙ0 A¼bÈ{•g˜"fDµI„ƒYSâ=[@\,d2 è ÝÞ[ºÍ"¶UÃ6(¹Ç‘ò…[}µæÔÔÒjê­uÖÖÖ\Ž9 ‰¤^kѾ¹I?sðÈáG[nB×?Ãð®E7PÌçi^Gc8yˆXœê9ñ¡Ä€qOô"óT3Ü®¥>q0mz¸BpdF« ·àð™ÀÂ_¶XçDȉ “ksn„M§%˜ËLýÿ¬Ñ.®j…šfAeïûŽöÛ[0{ñdÈYL×f",fè㨠|“¼§Û½$Þ}[ºÑ×½yŠ"UtoooÝZçMMÕ‡K20¶½÷‡zLF )·5-ϛùÚykR3‰¹E“ÖL¼aº¬…G >€æ´ÐýÌN–]رs6 +ŸwàO"'¸¾ÍSGÛ*ÅëZ)»eAk=[NWÎ2ºBJGë)Þ‘·[nvô̲×-/C/ùÇí³4ƒ1“„ý{ÀbçQ¹ú²ÇÞ»¼\ £•;½’šR¿Ä|Òåý4ðcx¯øH ÌÄ"9Ü\hævÂñ¨°Î0¯& 'GD M“%³&¨ß;q¬Ætv—¾Vsú}bäç2m5gpìßæo{ATJûö,˦þϹ‚¢¨_Ði<žãœ69ó0rOà~C7Ãö5¾ö à%Ä’guAÎy‘³y1…Z‚b§¢ÁúE­Û“µ;ˆT2¤Ápñëb£O3™«[/HªfÙ€fkŠq¥ô…¸úÒ/æÉŒ( ßýæðvU:T´‰0?CùÒOür‚÷RÇOJC›úÄÕÇÕ2L‹4³îݹûÚŒ-Š:}íRÎðT7Ðѱ7XÿP¶r¢Óßš)09ÍfjÔ¹'ŽÏ:±˜Q>`ýÿŒ2»Cbu83F ×ÖÞ‚îí»»T›òÀäçΙAØ;ö^¥¢s²™Ê…qÒÄ×Û6 «)¿àL¸ö”¾×Ù­„Z—Ê4Ç:]ޱ5D6•[¯áëÈîŸM"cHÏæ …döèà ´BÌÚËbzx4±OB ¸¼è®¶j×½ý%•«»N,4xH#¿ßZ7¶Ç—±û']F\îôàzv^ËC‹ê´ÕýC,js)ÊïÝàêÏõÉòÀB>îµ)C»ŸNÁ²n&°Ô10ÄF²‹Õ<©ž~ }XÚí¯B³ï<µÃPvw3ЇSÔ[ôzc¡ßv²`fs/ué…mÖÜV¬jlÞ³R¨|º%èÍrº˜ØÃã4'qˆ„Óß2“ àžªŠ•\³G}qôÕK='q€Ôåžø?/&>Ôžàªq÷ÜdqUK«ï‰Yü¦§Âbn›ÈÒ€¡! ^¥¡&wNS·ÔØ,K(!)H·©™2 `‚È`ûÆþÐèÚRïñA<ñ¯ýD­í\x‰<èÓpf>ûCzªø½¦Z¶Í#ó½|Óè¾gï˜WŸ<`ÃÀˉ½„{ë½EKÊ_+ð° ŒÜ*ŸE;à×Þ Ñc?صÿD«6ð“¡oL ˆ³÷ mt‚HhMžÌnD§ÍJ¬¶1î}a’ËÙ£üò,ƒ"ù><rÿBÃIYœ)ó¹µnÚÊrXœ¡[¥ñÒ©^i·)[§£€a…Q‹îNùpi>d¹>9 ŒÛÈBöŒI–ÁÕë„“Š¨‡h™n'ª”,;|‘ã‡â¼ 57{žÕÈ’µý.j¸ Íþò‡˜©Fª£Pu»¾„ôK+íÙ¸]°ºCž³¿Ï|¦ÝQ£¾6WìÏY·ãÇ OWíqKB)œ›µR3£OLÖ× BÑ’­=PC"Iºuø ÇÛ…yæ)ýlYô t÷ü2¡)ØVa?àô«WMå÷OÙÇààÈݾɮ5í—1Õ5‹ÿï–šûÈO#踧øK Ü1^,ÃúQŸü˜Ä\pGSúÔŸde»'Q>ÅÁÄàx&xÖi¦^dÄV?§Ù:ªòò«»í{S|èO€ÑQ¥µp{\P¸ïU¹2$5}½kú{Oƒ!‚£µjï$ž]ºè¦ÚÃMMES#ƈ«RÃ`-å{¨¥nÃÉ'jš`X1Æ7…>&¨°Ñø¹Cn]{g‰Í›ˆ­å[pSéš( cZÌÑÆ|‰ƒ4U°nx^í˜Ä½ƒ‹‡cá§[]`—®K{ËýO·ÈÜ*±)Aå3:` ®`Åä„u»¼3fØ ð1Ò~?–=MÛ­ŠéjTYUжã-^›„€çÝs¯€‹ŠÕ\=õ¬ê†YðO:¯¬Nº­U¶'Tótrôé´B]\u+SÿóYô|ý Ï¢§£!•3wÃ[gYfsQ’ÙË›"@¡ï.Ï\W[qx6T”ZëͬyBhEíHÔ3†Aß1îb~LS™ê”.YÛÏMëv:î˪È_£ô%õÜsOúÑÑŽ2ìkÿ¬n6것4µ¢-èÐS·Ñå3aˆÐNÔ£¯©Ob‹H¦ ÅUY•pÉ‘!MvavïÒìSxË“XRgã2éWФ<èÜ÷là~Yê=Bu¼9±ÂcùÔh¯Ðyõ4£H0±EÄ{íö^m-zÅÔ(rq…‘Ò´ÑhVæ:h¤Ñ0keÜg9pНÞ¥²¹‡o!a‡RñBçsì†è‰ë5«j®^þAÜéᜎî f™—æ¶ ½ ˽D£?öo/¸©JÞ…O™×Ú£g÷Á¨˜çÙýŽÙ嘬VÐö&Íî›7Þ›EÝÀ K¤ vݱ…¯l£94TÓßÔBÓ…Ý+D¤þ‘­¿†Ç-µÓÐRß2—pæX—Æ,ü]ÍC÷㉴ûÁ£ÄÝþš qšÅ}b¨èhHðy¸Ͻðç òÕl«"ï—“y^TE#ƒˆxéxî~D"äy˜ð·¥7_ñݨˆiD ƒri¸¤o'G{gÇWi¹|ŽÖSôGѱM%$ïã@ÐöŽKt@Ä %„Ú9õD[gçç;—{^âÓ»ÃÓýÕÇ÷ëGbÀÏr¨Y·¯3Õ‡âoÄ Yb©þî]ZÒ Â@²Fâdž·ùvQ!ªS“îon"öÍéÝ®9•Š4"¿Â£5Gn¤B?i’uÚ…Ä‘ûŒQm¸ ÚÖq¹wR¸Ú?¯Œe¸ wíú@Ç䔯l(îÂRÜÀÍi˜WBºW„Qˆ†wžš)ÀSähÅЊ8Cíšä…¯A8€‘®]ðº^´ã±)($–öng¹qÌ⎘¤$„A‡ïÇ-v@9S`ã•7÷Ѓ![9JÒ¯a©ù<‚·1?Dû|Qæ²x; ©(›ÙÕâ%ýöÒ„½JyyA§àÉÁ’{e’ ‡QÙ÷o´à ”9&n®×Þ«Wîfï¼ÒNM‘‚¤tž!Ñþ– ùa tv-äC·‰Áv£2ñgî9U¬åO¢€Í–là2q‡§t®×±d`) K± ‰Õ›w¬wœS£ŒMÇÛqXÈô9X(cýe“U¡)Ø‘Âp†â³î&ÊKqŸ½¶–å⻳FÜ¢IC°†F ¨1Aåg›žì'÷ýỎ{¾×=÷©¢a^“Ž{øî{x¼{B7"›´Ô8æBKDå%«ðüb,ªí?Ü}5&Úôf‘Üfôa£ºWLÜóÃ=Ü­ç·s­$ø­ãþõâ•Ùº®.ÏövöÝ"Ž\ª«WæU⮀€Hžö5 æ™;ÔùæëþuöÃñ-M«ÜNžúUè+÷¸ëº|¬0¤~‘ú^”æô¯TÛÉËI•ëH–³¦yéìxpvºCÍllù^D^M¼qv#¯íV9’<‡t‰ÐRÄìv+84¥ò½„Î7w]ð% (h §±[»y4ÍQ…C~ÔOs?«çЄØP‰šÓ‚›âðüjÜ,w” c¿Y«»=åG÷ÔBûQ–DÄÿ»ûQ`„0¨àn„E?¼(hNí{NÚ=Ÿ ¬V7°=ÓO8èhØÈ :ɨ¿îgÏ}xÇú…1ÿЧS¦ô/ûêùz ü0¡ÛÓSСԘyÒrŸúã[ò8LÇ™û9ЧªEî6~ðä‡~”Ê‘M½*ºðÃK‡U>¶µ|¤û&ÁÏs˜GN‚=ŸÄ•9à;‚€?ö“ ¡'û˜MR÷2’h»Ñ’ŸõÇ~œE…—£ÀKý¯)†ßüìÇÓÅ7§*¾‰Ò>m¼ n¢u[G~ÊÒÛ9àaç7Š›?êŸç0Ì7åì_é—h6þFÇÿâÛ˜  GaÒÁQSØñÙ$Y{Þ~#ÎñðåœøÄq"&þz èçºü­~ÒÝF^uã3ByÃÝÍHFk};¡úçÄ!â^ðöÎNä…3ov/s5+Uó…ŒðJþ¡†±M‰ïVÁ(X¸×Z'¥ÞÍÛ©þÖ¿%ŽÁƒ£¡Ûê?øŠÎ±8j¶5£À ÒùíÎÔ¾±K‡Uìßþðƒ.GìÏ׉WUuàÁ”æ»§¡I-ÛÅìkâý4¦c!™E£¼;$žˆ>ÖT9(‰ ¢]_çÍÃŽ ýq©êÞ|馸5o½–´à~H'3­;ÿml7Ú8ë>°™.Ô¹§_› ûê¦$á¦Ñ†Éê<(Iø ñ‡G´}K_úãjÆ›‹Å¡ñ„|íDkÝ"Mfî¦÷Ê[wïcDžœÓf|ÌCf <›¢‡jN®8•þw¹‰€¶›‰®ì”1˜ÖWh"ÆQ?Hì0}Ó^¡Ü¶£èÔ\AƈŽÈ¦EÍTÃû%3Ηðíè8\0¸Fã# ß´ˆôV(.GARÉ<@ù„ò™ØÚÞÛ·›bÇòK®„ßöÉ–+3ÇÎ#¼ÌIšK†¸[[[[æ%Cçà‰ÏH¿ýéw×§HǬYðy™ÿ¬Ë,ÒAÏ{½ænõÞ,.ña–þpçM´ -“Cè[fæOœÂd¶€U¡…Ub%"bJ-¡Â} `Q%Í#-,wþÆ_ÀÜÒRç3OFâŒJÁßY_±%óùžŒ§ž{C7õ‘J>µ}ëÇ$ô+ü¥[ÐKª1ø@ëh¶«r™À|¤h’¶í|õé‹Úàs¸]¿JÆ~|†í0xýBœMQõ¦–r ºaõT"ìËÌ(þ¼i76Z%­iÔø.[:ƒ‚¬šáP˜Á±ÆO}bîÀ…ü‹Ö¬{?ŽÑ íØ;ï<ФÍgÇ6’Á M[L˜EÇɆìzxt–µîÐçjµË³NÇq/ò4$¤0~à/ð2‡»KÛ2eqmÆ3ørp°!ç2 îLÇ: JÁ:ÆM#-›c…Mݤ!s„ágªæÃ .;¬ú¶@¡Ôh`8à€|$w5zî±Kš B”`~þ·óÀQ­Œ †ðT¢¯e\ÒýŸ| ç!ÂÛ×~Ó‰£¬ºÁD%iT~}мØDqîêt$kÞ±I½uZúEö´‰ùÜ2Kîww¯mLèo*Qjp¼~"!YtDΨžþûT^Z÷n(=¾Í5 Þ;Ôp§²vïÇâÁÉ1¬Þ—[ ͬ&ç‡dò‡ÀËâ§ uhͬÁß×O‡#ÕÖ&r°\¢t´¿žXqdl–‹ ‡v ÷šÎªcó±5‡gûÐJ馾’˜Àªð -ÝnŸ. è…ÎY×ls =ÒS>g˜:ϩۗï!1±¶/, 0PYˆ+!VšuxŒX~øµÔÂ…ÙÇhåãæª{îÇIDÇ¿ ?ëI:»'»²”ìú-/ŸÂsfÊà9÷±ŽµÙÒ•”Îè5÷”_»È”nœ}ÿVA φjÞR¶ò{?ŒTÝõ'ÅxBhçêÇËPËžBÿsû›qbK8{›^ïÕ¦n•cRÝû#û-d2’dAðkR»± ýUuœÈ†ÊýÍd|ÄI¦™E¹¶€hBÛ9?$z°Z·ÆÑ±¨ÀQ¡ífŒAI¼!®®Y6ëV3'm½œ5áÆô®ç»¹j1=º/ðÇey2^–Õ¤Ôj!;uçÕÌäóŒ$뮉{Ñ ƒÃìÎa¦„y™¤*JÁxñˆ¬mo«™ÜL–ó•NQx&à’Œ éÇÛŒöBÆþç0ö~}*ÞÏÿëÿŒ½gIFzï„®ÿ©ÀøE2ƒñv 9ë!\pË£"ÛwÎ)^íPÔ†\”†c f…YL@˜ûõÄÆÁi¢ªˆñBýóŸb!>Þß9ÿ~xÝB2“ÔºkkswgŒ$¯Áý¹Öø‘ÄKLðL¹¯à¾>îÖ[l¡f‰¦b˜Û„À­:¥ôB¥ÎÊé9Ç•éü)¼³§4µ°•¸œLz iX¸¦Å[•#ÿ_©3šŒsà]¸ÓÎ;ØÈÔbsËq²Í7¯H_ÙWøq¢Þb/e’ b‰ïç´þäêÙÎ%á42«ý„¸žt†d*ÿɶ‹€ y&¿ë¹#qJÊhÔZJ^à’í¹þ pÀ:¥¼NÖ« FÏR»?HZÜÇ·×û[•fRP>ÜA €[Ž‡Þ¬Òµûä¼°iQü‡$묿,Ò¢>e0`ò¦yGL¢ÝNú‘èT ¸d3pQ#›~ñëÌì{“ås®ÐÑ;Ì(û’ø%JÀ¼ë(-HÆ2¬!˜þ²>²@ OÖÃÔŠ#ÔmDǽ8ߣœ'»•®œDMâœÔÚYÁŠ Ù%µÅ˜Ã6eˆ7¢Ñzˆâ[uÉyx\MáO‹‹c;¦/“þÌŸˆÁ©§Üíðbm=/Öu±ºI˜"IxÎò o}á0ÿµ_[È*$Ö€FæD”ݦîþéÀ]ù»"¹”DÌU‰ÂÚÙÃ]7!Ù’ôÑU#(_µoÅÝ[ÁÄ]¡…_]ð©ÑšA¼²gŒî ·µªY!ñ?0ŽN^÷ùæ~Ÿý)¸¥ß´ˆôMп.à•õõ&v3=uäén–^ñ¬ê|“£‘b44&Ù:4ÚεÍÇAœáKá´¬O£6?øaw’n‚.…§½ôŠx‹f#iÿ„ûlÍŽMï­|ãæ‚ë ðŒ&¿“/H¬iX§ê,‡—c(¬I¨W¬lH³9Žt&Kð#Ð3™™æéEítë²j6I SíÜø“Ht§Vujkh–RƒŠ@F4é¢|¼g¤SöŽãŒVŽiNËvÖ#Nâ£Û®µSTÌæÜŸ\sUP™-Ùb*MýQ¤ªÔ“ÛÉW4úú‹?꯱ûàÓlÙfôút´ÛnóyÛ=o»çm÷Ûv%ÿÝ`}«Ç Þ.ú6‚HN/ß ºï垟qZë‘•ªQÇZ1«4†yѯjeÄà‡/¥l0…r5 «±ÿë˜Y—– tÆ—óŽý¬Ñ××Ö6ê‡ hyà|"rA†Ýã(‰D3Q°qšµŒ»ØV bv8Ÿ­*˜T"Ùðúw¶D9‘:ÖJ†9–¤…™9a|)ÃÞí¡5Æ3Â9mü«lí4Èç³R§­b „3ì:øòGd|I˜Y¯ 1b2¿Ãzwæ¡QÊHÖWÈbjTÜ'‰½KeèÇœ1̦ -¬ZН±Q¿gâMpøò œe–[¯hHè}Coº¸Ò¢'åw6♹n™p®<4¶\‘A‡ê¦ãÍ,=ç~¤kd ¦UO¥¬JqoYpš`p9Ù€ö(«l²Te! Å4‚'‰ÑóHÊñ4›Ýf0ËT!1œãÜøq%€5šò˧o€Ðv›Ò>›DÌñK^íPÀYålL÷ÝÎ%¿£ƒÄIŒllW##9Ôtkœ£0ÐŽæ°Smˆ–™µ{ÐZ6ˆ¨xB¹„Aù¨‡È6_#™st °æ2]` ©"‡«øâ·ûÃ"¨,°£qšI®ˆËI^‰…¦¤†,hÕèÎkØŸ±õ„:´DcJk0g‘g¢bb‡nÃÄ,ÙœÔñ|•Ý8†O%·Ãœ\47~Êj ÝxGÐNM¯ Ì3+Ìuè_QÈzÇÀ·@¯hRÓÌÕqº€ØUGQªÂU¹'š‘` Fà;‚0ó1K»;ƒ½ÃCZ4º\E0žJ¦Žn…¼ä^]¾ë¾Á‰’…’FÅ©_\¦üê³8(ðaê´ßdGÓ–£`×a¯çn½ö6Ö¤`oc Å­˜†ê®»&û®\!ÒiEgfw•.šõŠç^µÙ2‡•NW—³èݳØmüýµ;åý@pê¡Yß!ë•ÑÐ[‰RG·±r¶G¥AÔÝdŠ ;ª4jÔL/g9º<òП7G¨y/d£Ë¬¬Í*ÒeQ.-CG’xÁò(8~ê÷‹yè…Iáä™ Ñþåþµ»ë#'ÏÍþô‘ý†hµçÛmØ×öèˆ Eùô6ËBw{ª?õae¤kw”,¾säç1i×m#x°ŸÝÆÞ‡¿z´ÑýQ#Ø=Â^ÚÍ9èu›¿yò­Pmm\| [ß‹£QénøÓOâ…QíùH»¸ºÂ·‘:`Þ dx_5zÄ%MB÷«[ån‡ôo?J’ð•·ç r$$kD1²tÇ£SdE;¤û€^Çç~XÌëY¼Ë°Ìµ…ûNåãŠqÚC~ÐOòa¦ÀM‹jAsJ’w¬#à·ÇxП°(ôªÂ|ƒoÒ!“rH Ž¿Œô§~D5öÂÇ(q?úãHÅœ“÷:Jú×þ¸fwÞø ’myˆÜÑëáuŸ¢ä„šS\#d_<£ÝcÞHaš½ÆŸ>›w‰Ò&³à^–à}$ê8òcNéO?ˆ ÎþkÈ,÷£1‰bÈC¶ãO_)/Æu5P]á$‹*¦?ѸÛ!ÇY… Êmœ™¨‘ž¨ÿŸ½k[nI²ïø „f¥n¶,ßW ]-Z’Åéµv^&@$!‚QÔíó~ÂüØæÉ¬ $%»-wGO_D‚* uͪÙ9)ð4{ÅŸî0B´£ð OÇmƒŒH'š·èáݬ¤Ú‘ ËÔ'+cå(Â1·ZPS¸vï'»Íâ,€]t{ÓŒƒŽÜßJZÖɰ¬“d^¨jFudïñ•#Wß,ÈM°= LWc.ß]JÌ»?SbL„Êzc…ŸÎå‹[ ô=®Û™G ÍFQ‚¥}ï&ÏÝY8€ŸoÍ@Ý…J„ä4¸OWîlhÒ¾œArfý^ æRɃÀÑh3¶nh—Õ/¼‘GÓ6žêÑ/ ÍnCÍ›z4Øû½/W_.Ïö©•ó2+SZß–|m—&Ú‘ Göi=¸‹èá·øpéoýì/1¸Úx;F•/W_¹Ù=W:kçóÍÛ,Hô ±¯ü´ Ö:±G+jB”‹acÀD`{M¨רÁ×Z™ý¤&×dœv­Ú~ÐÚ<ýUJ¸êT}Ïa©#9GÈ˨¨XÏØ+jÂZq#û,Ʊþ–7Ñ1öÛjùŒ†8{÷'è-[þlî*~ºí'ÔTï8Úw÷ÕjЃø~Óäy:d¬J‘Žh…Ð÷™Ñ‚qT Å¡5g±¤ MvOVØ× xXNÏ¡ßV”Y"A[âê²Lb…é±ã”­ÃY˜Â囇r‰óm9ùKi°`ÆxaO’pnA‚™µ£Ç˜äPz[è8| ËrèÍq‰ø€—¤ò\÷Ã\âk¯Ïºnˆ–*MËÂÆIyÁºâÙÉÃFfú ‘nÚºcxí+TxÚÃy´Ðœ—‰7¡åƉñÅ"›ŠF•ZR› öe>§uÝ>(ƒfÐfك諭åGůYið…½ó~™ÆKhÖEñŒGÈõÎŽvw^×Îq «˜½NÈÑʃ¤2x¤*>§J!ÔÞ›ÏçN¢/Ÿmº+nÃÙˆ±¸ôr¯œ×+¼T”" çöq÷#­ìè5âÕ;èdŸÌ½ B–¬ –‡œò {η Uòl·Žƒû7%CÞîÿ·¥%G%™º’¼„AÑ °î»Ù,UG¯H ·A4¢}LlQaÎÀé lÜïTlq¼h‹|›œÍA*…åž/Q*Z¥‰ƒô*”‚3ÕÁ›ÞMMÀ†Í–õ1„wtѲ÷KXõ^‹]_ÕcF¹çµ•ÝIÚ=ÐjÖ9Â>l=¥I…÷1@ êVy‹£dÏág­«;-{·7ÁUÿ¼Ýé´ìã2K?cÿ²å#T˜ZæÍÃw޽»S•˜¹ÿ)g£\4íP^ýÞÿíìÔ9ÑrÒ7먦¯ŽýÒŸ=³€öá÷4®]п=­‡Bw¹¢ |åì¬ò˜\fžcû¯T›kéNû%™ƒ4³n®æÃ“žŽBøNvÕ?DYÆ1’%#îkÂ¥39=@LªŽ…,†Ú›ía}„Á@•+ÍfJœáÇ«/ó@ßÒdã¼z»Ì(öžDŠvûrÆ&Ô ´ðQWuÏgbMÙáê6½qx…nøHÛÕºÕˆ‹=C¦?àQ_ÍÖF#­!È e¨y^ç”p‡=`…‹Å`“w.´ÜƒH8ú™ÚŒrѧ†ÞeûÝ»×ï1Ÿ£‘Ú;Û¶¢Ôë«°ÜœœÏøÚ´t'Ü rD=˜Ñ…pNCGÙø°›‚ÔÒ#j©-ù—!ŠÁF‘´¤' .ÑŸ­‰* 0#ª1f8Ki§ÆÃÛ>;:–hsÜ[Õ#¿åäŽRÚ†{÷ü燻Ö4‰T”†LÛË/Þ½xóòmS€k™OÍT” äRe¦/Óé$l+؃êtS˜¬ÞªuFN»u.Ïé¢ëÝF13'œvŸ3Ìå7+¹û¥%AK1Y1Ba`÷"tHZÙ¦Qœ’•リ”Cô¸Zû)íöžÝÓ¾jK™¬:GÅ,hRÏoQO¸‘æà¡GÏ}ÓÏÔ… °§·,М¡M}œZ¿Í¼ BMè©þ1üJú¯ÿËíî¿þ·à£‹™›ægüãŒ3Ö„ŒÚ¦%ÿ][’ª„5¯wvh··³|V¡vÝ1f³ýA^Í®M¢¦Çµ–ƒaÕÖ¡ÓÿbŸ:»/w©Rh?”&áèÔ*®†hJ_!+Õ°fÆt£Æa&Öø%Ys9ß*CóÝîuD-­³ýò‡Q8<^8ïȶß.oáˆB¥ìwzvOEòö/X•ù@oÈ~Ÿð.ôKf-æ}M·ó8ù¬® ºµUý¤ÃB5™å-K϶MÖâš82´J!걎W°ù‘7 kÑ©GcpâMgòS™Döw3ó"u>Íš'þgúPG£‹´°¿G‰zEŠó 9ÇÌX)ÎîMÁ'*g‹¢ð™æÎ’Ó\oAElÕ!i/IÆAzOõáÀ޳hR¡°®B¹ –½’3b²Ì@êuÊ»MI·‡7,‰nŸSEßÇïý0aÛ(Ù ÿ(spëGìÆÑ ìó#ï‡^ܸq›%(wœ×Îî‹W«,5ÜãÎi†ÆÀ¤_Äî¢÷¤…\Cîªneé`Þ‹x[›>ž·Ûj¶Ã¡f8CFB;_V;«Âce|2ZXRIX˜”Ud7¨d’–¥4ÕÛb³IàºQ\]˜YJx(T‡*K“‡ÊXááQïê)@÷ í?ÒjrªÌ+IJFš5³ýo6‚Cë) è#ª‡öÊp ¿ZmºÃ~Cƒå­7Å¡é!£…fÚhTJ+,2â<7q”²½ÀÙ‹'|úÊùÈ(“Œ#¶\µ~íšOÖ¬e1ÛT¨¬7—*Ëõ –2Åõ÷sIµ<ŸG“è9úÙ3.¦1m@™G[åÍbqSnì ¬6GèÓ„–M¹Ç€n¦þÙ`€/³·ja&DÊðV¥Ñ”Òµ~$SvH)øß¢!w Âš{ G¥8b4Vûç*/>óVóg3?÷ÛÏ~ ]Å®«&.*Dnboôhì•9ü6nP&£:o¥ðƒí~|}\üoV(ét¿„D(/+6’w#‰PgéŠ7íš>Nâ”·²í.óéŸð¤`ô[ÜÆwÆv°H¼iä·39ÿ8=ºÚ©¸Š7S s¾SGafSDâJ>OÝ&·ôs«yr ŸJÿŒ²4ÁØ£Ž<3‰ØŽ(œ/ݨ~Õ }š y©`›yXU³hF³[É:§ŽzÎÈj¹zƒ>Ü(6$¥®Ò€ö­Ð·°÷²Ñ ùÏ#¨Þ"Fb/ ¡•7ÿËÎF¸c¡»–‰jÓR’(Éš ÂŒRæÿ¿¦7~ÒˆûäÑ¢vÏ)ðåÙ—`…ü¦9†Ä:ŠàÒÿ˜Ás·×ãO7Aü£g¼nDã§ OR{,þÖ,Ô'–Ä&céÀì*-ÃB×ZR ¼{ZÑ÷²@¾¹q9e>s™Vc GŠ ì½‚ÃÝxÉñšzT8ÛÓ8ÈÅa|ÿ¸±á/>O¡2EkÁ ‡0Ôï»ÑMªûI$ÃÒPdVä–‚s$»/™\H¸É®µ• <*q¼¹[&ñWeÃi^NÈ~†ÝHM•ç¡W"Ÿö”.L_uÚc„rEÁ*ºLÌŸ!ëé%~í‡';x.[*`!°úÁõüi]!zu8óÆœb_¾¸É]ÒÖVÔ2‚ºüˆ=í½áMu±ÒeYÜðûĵEE5oV˜Í ³Ya6+Ìf…Ù¬0?{…m¨]a¶h}Á 5Ôë‹(‚Éì¼ýW[`X²lù`P-)s¬æeÛâã•&É%ÏÊ¥ÙÌÛyx3oæáŸ0wºÆÝî¼ZuÿéÆdÊéåð7•& ›Ž .E w[“êØœ¶Fgôš„y×*8ˆ“pÌ?0æ½/Â=!r’ [‘I­ªœšÌ!)†>Îå»k˜”…§Jäž6* •N`íSß4˜á½NÁbÎÆ…Ž‘®DšD“MÓjá,¼±º¥ªšêÜÊê%ÚiDþ4Јìn˜y¹?r)cDf%Œ2Á]š…ù±£ú”âdÁ3¡?•o‰ÜÊëO*ddÏOi!Kýô'«ââ»å~ñÐx÷–‰½^¯¡ú…«²õ{vŒðyv¨ÈG¥© ‘¶ÁKÓtOÎ çÍt[mí¼±VݲW'‡»o_¾°9sÕçë'U¼(ZÌ‚ t )"Ê:Ñ?Q!TæËņÿûÔAsd6Y'aSÆX»çÓgd_ûmr)¥xŸ˜ÄcK¶–úÏ•¦Ë—˯ »QlaËc˜Œ¾€CÀàƒÍíõÏhèLRö2ÉuáÏèzÅ/5wPc @§H„‰8€ê: ?,y^§JÑ’r!|é–Qç)Øk™¼2!vPEØ2j$†YF}ÂLò9µ;’¾^–…­)`ä½·t4d «÷öÝïŠFQïs¯e÷λ-ûÊ ¢’i0}Õ¨c’ÑšMjÅ´ Õ¬ž«/h SŽª>CÐgœÀ Ã"ÕãÈ¥é(…—kØS†æ YÍX¬€d}ÿÚyµ´jõz½sû8oÅŽ¹çUx«é”ûäA G‚M±8µKVøÆÏð°}bršCZÿ'-µæ­Œ@KΞwŽí;oߨyÿþM}Ö#¥ÙÒ'£lþá^³!ò•¤OÏT¨¡U=•TßÛÿ‰VIÒ’ýŸ…ýŒ6yü¬Ý¦ïÙxÒ±»jNs:™ Ô"Ÿnk¬Z^½?@Ö'-û¢Cúáµt.„ÖV{2rȆ|–ä£iœ·ž)1ÞxÆ ðP2›Ó3üZ”âu,ú´è³•Üò,¿{&h鼦qÑ>ëžSáÚ1Ÿ=³¿-÷´ÙgÑ-d9xÉ€ò1µÏÇ,M ºÞóG.ÊÄe¬-/qõ_„£Q$aÁT¾»´¬ÑV¢ðŒX·#²¬ëv Œ™ücǃqz…6yl]2: .Éø½ñÝ×fpl1æX!zN~ïÅáD!3ŠbŒpNºMNŸ?Ý)´Ñê·aFU¨UµÓêÒf˜&c~æÌ›ñ•Kƒ¸¤­KNÕ?pÊ9Ôéã4­‚$Erüs×ä6ú•7F¤fîdøâ†qŽãÀ§²ý£½ALC(ß`ÐÀà0 °@Î|I´s˜‡¼ÿ>ÒÁö¾’u 6nnpÞˆ©iÉŽ f®¬-œ–I®þ/D¦¬Ø­ÚkQKY®MØh“¸¸ô¤Y]vE›ÌÆ‘¯B¦0^éBƒ¬îc x³šºŠ:jOAð\]ÏOŠ#ªKk'Öm¶ÁÂ9”„_V˜®2P«;Õ#*¢§¿Ê«ËéÔƒo^)h·ìS9Æ9©ðY«T ºÔ몥Ú/4ª%®ó7‰d¹hÀ5þR¦©Âä›j««m %Ž6•8‡¼„óÂ~ûÊy½gd_ ¡}*ÃiXW¡Y+Q]*y¦’þÞkló8­&+­*9)ã?d¦Þ[/ŠÙð6Ø °ÒÞpB‹¾¢édüP‡OL¨OHfºYµÄ2ñWî4›ys†EØÔa+‚ïTdSlÆ&O‡r¬ @v^¯†Åí¬EÆ~#2H›œô£F1Ý£w­Vš¼ÀrCÍãgÑ@Ç( ¢»ôÓ~¿ké{[ç—Ψ¡™ñŒ™ô„ ¹ÒiF”¥¥ „Æ¡.-Î`&€½=¿ ¶öÔØ™©3÷6!ìZl›¸ nÝz±Ú£ À"[Dþã_YðXÜì‘7²¨õ‹8ÂéÝhÀglQá$©²ShÅ(sû¤ôÇ9 @¾r†¸rÁwÆN®L¡„™¤Çåà¤pè$qu·°Ç)=iâ¿zïú)¶¨Fý§níS+gQ™m>- §i\ð©%xVèw¬~0ìÏi˜3/÷ŠIÄö'~p&ê7I'уØT·­ü(k;¯òðÞC)t}·ê›2 1Nœ302 }ë¦eÿ –å?pº†ÿ¤ÇÚ»Pçq^­FÆíúÚ’Ôî• Zܪ`ꦌb9¸\& !l+9DùoÝ=88Kˆà!€¡RÆ8ä3χaÑâxqð¨é°>,Y#Ø §äCGkeáfP( Üx9¼iºà¢GÌ‘ûEjJ[©“,¡£¨ì,ü­dá­%Zw0‡j˜çD@6ë—1Îk~¦¹Î_ósyó5?G€½æ?ØÅ­ù™Éœ3Ëê8›ÎÔk©À8Ñ 5Åè8R®z l(5£uïÄ”N!íP×üOBòÖu¬KÏZó åNÚÇÉ(Žò±ðþF÷ZïÁ²@¢b9¸ÈÖ#E^ûìa¶®®‹Ÿ3²¸‰^ub8‡è†É¥¢‰šAùêT %ÐÌ"í‹8òÅ}ØðqT¡£!c´1e ­õ(ÓíR1Ô`ZøÃ&Ïš>ýÝõp„ð­zÐ.!p9CBOA þú9Ȧ3-g§£ôÏ}]5ª7Þ]~c²òpÏ¢ÎwüõDÝ¢Í׺„ëö&•‰Í¨x}ê,¿[T?&äÇXªdk†÷åõÅ9¾tNðÑóâ%>/zöW”ÿÜšiWóуUd0þÜÚ2æø•ú±‡uÆV3c®¥}ö^ä´‘´· ¬ÉñîÝÔŸ„lœ‡±qý+]Râƒ4àë5DRMò¤ùð˜b W­HŒ9ôûªª:B᪒LÂÇ2ùYCF-oß=ItÔrø{ç ÓœPQ£1Œ¨^·¬)ÍŒšŽñk8 jÁógN´B>\×~b“"‹?¥AqìÐf¦ƒy¹1/7æåa^ò%÷‡Ò¥IëX ¿¯=æ«¢ÕVN?,jñ ádËB-ƒš¥Sk7Á- ÈÁñá‚“éØB ˆ¥LÕ€ø©ÓϨŒ6³ÏföÙÌ>ÈìSÕÒÃcì‚’Øœæ¤!ø¸éò˜%ǻߘÅßr‘Á¶€ S!Â,Q( ¤Í"Æýizìw›± ôýÝ6lîã•çàÚ(cöð`Õ§þL‹u¶(“ôáî.Š1Mn_>_ÚY¨ÓáÚ>TÉÛH>äª.”$7ûg4öeéí@-Ç>í/²Å_¤Š „¬*¥ð/+„MEj©ãh.0&ú4hÍÏœ ðÏ;Ê kYYÈD[­Šæ%ÿ3OаTä>H*!C³6ȤÉa³ÊUFÿ7Èg:+‹æ®&Ò¡}ëÿ³÷oÍmcY›0x]øhwmé-:ù¨R¿A,+-ÙLSÎ̪žŽlI˜ À@IôÄÌíüŽ/¢#&¾‹™ˆ¹éø.æjêÍzÖZ{cƒ¤h§éª¬÷mgDZ$±±±±ëø<—%'~€¢™z¡@q‰T’9…aêÚLû±Ê¹à@Aoöðê{Ö¼c›ÿWD=Ú×Hr®áÞZbD¼ÊŠ Ò±g=D}‹ú ˜'^©é›¸ŽCÛ~sÚù{{P™˜pÛy¿ƒ ‘Æ æÛ°¸Î>1ýç+ÚÈÙ=‹¤7#ŽÜïÆy¿Áç?¿N¹þÉOLvÀ9jJᢦ <ˆOþÍ«Pîç~Æ–~€é!.ÿ´´Ægyo*ŸÏ\Æ¥QD?EHšÿ6°¢¢·¬ˆ¶·Ê`6WVøoaÏ4áÌ8ŸBt’µÄü«œ-Ã×4ª!ßÞu<…¥]i âa© PäYWg°e,®fÙ2tvc†5Â#Y!1'˜˜]’ïÑ ãn <8\§´@ÊЄ5"ȳQèÿ9ÿø·ÿ™üíøGçùÇ, [½^0š•Á 6áeû7á4LãÁÊaT.–¹‰'™åû…TÒ—€:/,Z4¶ÌÃJí3€ø}·ù¾Û|ßm¾ï6ßÝ&™ÒÄO_/4¨T¦õU{EÐhG3®2Mù± ?íëNôpIEº<¿ye—Ó/ôÆU@)&¿çìb•A|"M*;Á"^rs’›8¢{Æ÷D¦b’¹»H=OÄæR#Í$›ÎJK†ÔirÐê2„š¬ˆî± À©º$ÀŸ¥²·û.F¬§¤ã_ß¿:õ÷Ÿí¾àfÉ—½'﯎4`3U2Eh2g¸™`é*zÓžðEÌPÿh2ÕÈ»écîi(³ /¼Ó¨àäšá|}à*ȯ­É|8`«R’$©w ûKOSŠúø1˜ôzòc++ËðÎI ?¿¥G¼ž 9ÈqÄ[IØ}rPE/JªQ4óiŽM0ÔGê)áÃ<(8A þ4of Lrœ³|†x¾ÒoRh(7[BiÊ,¤çßÒ÷…ô}!ýö…¤ I&¯eõRÂP~_OÅZjôœôr@“„ÅMž¡ aDsô†Ô¦ù‰”Í’¾ueÜÆ!: jÜdV°ÍX9ª,ü…—GØÈ%…–+ý¾¬þAËjÊðÝûþó½àÉÓÕˉóÅ/Úþ¸dsf££¿í0g%Ã%¨Á]’PëP/X¯…L¬+Yöâ)ÅU·b›É¶~¶JR·/)Ý‚¤Â¶ì„ƒQ }‰gSºýbÚ[çuû’Õ-€þTbÿž”™-Ìf“÷ÁyGª^q¿xSDœN¤;Iê^Uð³”&´º³²‰¼½Þ/HN‡ž† þùg»{,¾d¢a³PWœÍ¹FÏ·¡òŸ.—üu”ÒVØû©I¸þýÒË¿IêxtGOínšLÎÚ[”ŒüÎU­ï¸Uç m²l‹‘ÿ4Ø›îùOSP;0žÐzÁ­yËÌt';îÖûh’•‘B{(3’qxu:¯ÁšUU°-sÒ€â`¢'ÙàqEb—™ó¡¢*ч"?È0$rnfÁ‰“i_’×óhš …2§×Ù¢a0`#ô}›†ÊáÅ/M ´Æ©ù'êó3g©ž Ûtþ”w˜"Q!Y-·Eße "'übR‹ž‰´¢îáÓ¸ßÛó·¸ ·˜ÙcœÄyFº9mï\¶}aù腩ǦŒ.‡ô Àð·ö\ã'"%1’uk8Ì3,É´‹”Süt’uý“¨gf{>Ff Ÿ}¹ 2 Æ¸Í “ß úDš¡òNœÍ†~'K‡R(*ÂyBcyÔ¥ÙÑ’ef×âé(žú0ù¥Ý( ýк  9´ÖÌCÐ é ?êô§uWfw‘»WP_ŸÐBr=*ëÇi‹ëÐqë,k°y¿I3˜nŽ>NÆü©5Íjç1ò×ü „Ìò4fReú%è×VØ éDœÙeü­¥ŒæawÆþ<šiÐ7?,Ö/}øÆø¨OœØ?´¦ãîÇ– ¨¢ëö(NµÉ}ô¹TGÞÚFý Œ‡-¶Ÿùl”[€‹›YŸá$+8ù¯Ä·nëã$H-³ø|"`ÓÆ+÷?NZq—üð›m ͰOCÚ•ÚHŽ}\žŽrX ©wÁþi‚g°Q˜waŘ­kZ·’/ÜKv ÞÄY»¸Áø+7˜Õ’À'¼Z ׿×÷µù}mþÎk3ñwƒ—Á œñû»«OwNò‘鯂«]1ß|G½'Ž@.SûÊ‚=h$KBÚ 34ÞFÜ¡ A£–uéül@t¥iÒ£¥Ò¤¥ P)AB”ˆ‹¾Ñ®]Æ`"Xû -^Vhš/ ÞBÓn÷wn¶×¾¿usÕñn÷¶VQöŒpkŠ2Ò!H+ŸÓ\ðÚ¦Õk‹¶Ñ÷ޤD¥zéÒ·YB¢C„OVmMàß%´é!3™W‰QƒQÕÔí¤}W:n:ƒCâÊÂ((KpgQßÚìIÿ*fð95u˜5©Æ!!ã+aЭÎUÎ*¥ Ý×g\ÐãpšYtCkú‡€Õ> ´³¢©ÌŸîbßÑÞ1m­£ˆúyžXhtΛÜÀ‘¹·Ç4¶+à­LQ@ /hd²×b‹ª ¶'SÂD©bÉn•㶺ٿíÿÛmùË;M/îè¼éæÞ³eF¸Ë6éA‹¶YÙAŽÅ2z2‹“>£p üŸÚo]8ÃÎÎÏÇo Pƒ±œ|Õ8 LI˜kù‘‹¤müH5ÆvÍ#Šór&^›÷áˆDe‘ßBK¶’ˆËù”i‚éDN0Á[¹Ó¨œ–‚^õG£ ®Ð?¦Z ê4çLà¼ÌñqŽ"\ΠYúnð®yG»pøRF½9½lŸ›øi†1b‡¹ 3²l·áàL¸HÕà ²ª_×`¶ÿRÿ"N8îúh˜ÎZe:@ÙbBêLaì¦}p„¯­bj,¹>nŒÜú¾1›# 8,ÀÃÐ˲i FY:ÙŒ¼ ‹,mžý(™D,žÂ4ۚē¬pŒ·8+¯Ã’óQoÁˆ¿µŠ9bô²z•έ¦^çu6Aå½(Y8økƒÝ—Áî ÚZÌ 3Yéìe©Fþ`«ö˜m_"I"Wz[ÃûÓ5‡œpN>Îìd猧¨Ø·ÒYád*°|¥#ÀûT°DÂ]é瘩!’éËTŒ·ÇÅbõ%)iFÚÜÜ'Ù/î's¯Ñ3#J!ÂîQ‹·$ñ™0ì[†õ¯bu< M‚1XßVFh)N Q&r÷¨ô‰>ȳJêkÒÃnEJÓ¯4~©…ed‚m¼‰Ø"%¨°^3¢êâ›0eÚ 6ùk¦ƒîø$Æ á(c2 ¼M–ÜÒG±¼©ì Žmö‹‰ÌÓ0oÍr"ØcÍÂêÀ[Á•,xãf°•ˆÞXìç‹4™vNøÎ‡4¾oò&¶0ã,ºšLNãjPJfO-ö&º]À^AI`(§ÐûëaèÃb(ÇxJ"åŸvð>I¸À`:˜Á,´Ê^^›ÌMûE}PÛs !]&Á¸˜åd#[Û¦mœišÇM“ûØ_ }A[Ú¼ÿOWôßrZ-ÌZ#ßdãìׯÛÅü¦ñÁ òÓ'þµK²½×[½ù}ý {ÿ[?êΆj;Úäýo§)ƒª¿ô_O”÷W®Ö ­Mä³ùHŒzèß|x»ssÜ9ƒÎ¶ŽÄM´¾.‘p„öhe}a0€²ë 7 m=5/2`Ê9ìPÓš„~6ü".#Ö&þ²XÖ ÝåUl5Eù­¼ÍÍHzõZlÛTiG4Ÿ× Iuî1Ð÷ Œ“ŒwFžÐ4¬06p؆TÐTsÂ]Q…T¾ë\ú Û ö‘˜yà×…¬ vBû>¹X¨oæU &uäÎÍUÇaü¶<Þƒ$ºçCqh/„ÒJ¦©×wtôÜ z¬'|–ßp‡ä©ý&n‰ÍnE«J|Œ6 Ò48`›vÛWÜ_‹ëž‘BŽsHÞmçÑvМw\Ž1“ç:ΜKÇÒéTNìÊRåh¨y—e’Ý_7X¨¼O:g –ÁñÁ#©™ µIcâ+w'KBšîФ藘“Q·FD]/GG·¢ìó‘nC7usjÕÚ¬3q+þ9KaÃûOZs|Ü<´ý}RÄž=£­söÌMàÄ µÃ¢@2˜•ÎÚ—ç2á [°¬¤•/áÈáU‰©­ªž6Jõĉ½ê)ÓÓ\Œz¡Z¯›¢/‘ )ÛäÀ±¢Ù{«hC¿}|muà/—cÕbåÛƒ›£_ =…S—Z.‡{m¾¯Kd"Œë^Ö­°O­˜´œ|ã¬p|¿ã¿ÝqÌ3&5ƒ±)hK£È2aógH‚m)›;Ò§\®FSk[¹•mÃÓå[UÚD¤ú”5g’r¥Ÿà¼ñ¦©x¬ú¨p8Ý€ÚLÁy˜šy ÉFòâíd#LxPg³¨ÉÒÊÔ£ "1& œÕˆ9]éH„æÂŒ6Éåe³j­HïœC ‡ ý &ì’s¤±s›V'\ÓPã#OÛ|èä,_¹âo/ƒ=gå(JÑON'ñÛpÿÞ"R,ï|E…´ÊP!Ž4“™g -°˜›MŽèñí#Ø”dâÂŒbÿжU:ŤSð£óÙTJ8=¡®¸•†üFç9cJ{ 7†Í·ÅŠ5²`ªŸª¯²‡¾ÞÒ“á%ˆ’Á¶Ûåô•r…0‰d:b”þrVü‰TV*aÔÞ>+*)®¢ÏÅìD²ãÓÙ¤±ÑL¨ãeŽºb «ÖarÎåóHŽjº‰$GN§w1¹®æõ8Øgj²×YïÙ4tÝr(_ö‰‰×ЬÐ$ ž ¤_/žN#ÿ<½®½_£Âxbc/3tgH€þö¬‚ƒö¢uúzøl¯©µÃl‚Ç£nÖ´½Íãéd¬lŠÖ÷]éû®ô}Wú¾+ýλROéíw™‡vo)Ëo¿½+Øi&@ ¯[ã*ï=ø`ø•G0zz ¢Í-Él¡J†ÐÖQÐ VùA –d6-Ñ]Æ»£¡A’(µ…È8)N3øäºÝð/ÀõÔ~{ý'ÿæòÕ+›qŠ))‘¶³é6<õ}½‚¬Ý ~)ŒÓà z£¨g¸²<× ¿µü~=É¿Ég%Â)ð@ð¤ÑÓ8f@hÿêQÃFæ? žûþ“ÁÓg ~?l,l€\H!°X8¿ zL³0.³©Ë‘a‚B¾º:&´m'þ¦àR‡O¬¢Ä€±Y¦ \HHïŽØ¢\Â÷cÍæŸ"Oè°L™ÝØ„|?èçiQÓÖw‘‡ÿhœå´ÈfEë~ xÖ)õãqIÚÆ,$Ž*/:ïL‚úsœÀÁ"ÖÀ?Šäç…œÊù&„c¤¯£Ð¹þÕã+"ÂÓ`ï¹ÿäɳààåâº| Ŷsp¾{rìÓ?fy¾?‰ËÕŒ‹UY‹y('8uÛÆË‹s\­L•æ— ¤2`­uÙP^"^76Ì$ì0t™´)çÑŽ0ŽsV¯†IY±?À?jnPP¦;P%ƒ—¡Xãâ-Äõ×xoOºÊ!Xy½ S6‰3^I]ÁeÅ–;Ês\G[æ¹xŒ„}âÑ:šó$‰I¿Šhÿ/²)vºÂô‡4š :î" K‹§ýp³“$¼wãÅÁ©{çÿ%1Üü£(o[³"¬ü 7474 ÑœŠ”ü¡Õ›i9¸±ú½±ßÎTê¨O_¨Ä$Ÿm¦t£SÀr¶÷D8u÷ÌúM[¡y/Ó ¡‡c [õù‰¼Eg„ÉÕµç½.“¸ló¤ßZYp›cИñÞÎxÍŒ÷ÖÏx}‰KFw(£Â[íõ1g£e°Y^oZ‡Ÿg€ÙÄdQ+ Œ}àë¿è=“²HÑbÁúË–çÂ:ÃÝu3’‰ž“—wVš{Íõ¹á2»Ft@ÌÇhŒÜ*ùÚº'€Ä67buì_÷®²Ù¡¨2VŒçÖâ ræymXÓ¢Y!/¾/ï äû©ˆ¡|è¹”ìk‡:Ï‚EÃëÞ™†‚ªÃþô÷[*2¡ŒD¯Ó÷¥ò;/•U+ô|qý_1½VÊþAðrd¯ÓË1œ¹JÄ4,ᛥ€{-¹aà ñjXg¶zîÅ7›aáÖéñdªHâÈW7²¢:‘ægÔD$}s°áÑ¥gS-¦3CÚ2S½“6Œ ¡d¹±fkf£B|zEŒ`w÷IÃçŽai¼©ÄRöc)ÌÙ’5 œ¼I¶§™=‹ú^”MÌG8¤ALEð‡KRŸCDSS“£SÅÔވ]…fh`è>[ÞÞó¯gI/Ib/i­°6ý&c‰/¢þG~;¢3°”ôO@ ×ß ¢…ÚÙÄòx2o1Öš•Œu¶-”?¢¬’ éÀ5Óqù¯l$Ìy“z‚ôéçÁŠ&"ü§m !4…­ã,ˆ á§Ì:vˆ 4Eb¼ŒVÕ¡ÛnÿçJ¿ñ[êTV,Çnß|M‡Òkšye—fâ¶Yˆ“8¾ìˆšnƒP¥Í4ëGL½Lƒ¹Åk'-ÅúoÔ` ‡Z;iC¡¹*SX_ÒžÀ˜\–²Cc×5Ía¹€Ž£w”Ú0L˜ù³)΀~v—6<¾hõêií©áM«iWŽÄyf}fœg€”ý¤­KÉuù„vçí-GaW>m €Õ–™ù†Í4«¦U‡Ï×VÏGšA³Ñ¦@5‹LÅŽSÇì}DÛê ÐlÚרZóv*]!–£5ÛOšã•ÍÛ©ŒÁALŬ7ö!|¬g÷mà5rùÞBì5½µ“ÞG›v›_Ø<¦aBGß¼UF·ÓÊtò„az†ÀÁ£q”¶h÷›k ~È⼞>'–IØÊÃb'6ÉðjFïpp ºžLøCMtS$ÿÞ?Ä„£¯ÿ½ò>-»Ä?Ê&ü¡ܾìï’Éi›âˆ)í(BfÄßZÈEÆ|O^¬þ¼i\ÄööNð·ÿGøŸÿãþ‹çJB„©Ðœ9ê…Cú TÆXA™/Öòi>ÚZN²9§Ž‘à çD)ŸZC 1V½ÏÏcËêûˆNnDÒçü¡•f·`-ÝÄ•A=’1÷‚ÝÝ=ÿÅ‹Á‹§KÎ )rNÌr;NUÔæ+Í!]Y7Í2ê¡›QNã}5éÜ”D§ÛÞ(Ë >“à~¾<ß_`&˜%Et<ëÇÔ Ê-fŸxè:L”Õ4«ºÍèâæ@’°o¯dÐuøÄŠ{Œñ(êD²0ºÑ†¨|%ç¡^Þ\[×¹Ó8Ú©Ó¾E êh€"oæ1Ó ’~f ý$$mA~Ø…Gþ’ÎÆ;æ´à }Þö,·oàÁWÇo>Íà÷|\p,+®ô£€äkM«ªÝ1€C…l³\ŸÈ êÁôÙÛÃ7MBF>7ë~$(GnkXAÃ6 ­3‚ý‡³{:y±ïÊ&ê4æ§,™MàeãˆÍ†sÉÓK×@q/Ð.Á²Bí·vñ~Lmzx_EiŠ6µ3ÉÆ{M>õÒOiØÚe_K”or:NI²¦uÈÇâ"ž]•¯‹°lÑG­x\šÅ¤pAWÍÜ?¾ö·ÚÉl8ä_¸éZ<ßÛµóÓbƖ桞Îi-öiRáƒù@Uõr!‚­Š£U¥7 o5!B¼p”Ö½4µÃ྾S-X tíÒþö½k¿ºkiû“½øI°·ûìÁ½øº.ò/]ÀîKu-o»8}¡ ª³Àk{äïºj›"{#`wy‚Ñðcc S¥4ÇN7í§2CŒ1aÖÈU&¢”Ž˜C0d¯µ5{+j6¸‹ì°äü(4ÁõN×nòø¦,:•‚QMbŒJ%Êš¤ÒŽlî/ÌÚ‚’ â¼®ø ûý°ÿ‘±¤:€„e*ÌÖÂ’!ƒlªñŒž˜NØy×ÙMñúÔ¬æ²Åtã AD¯Ýæ_¶H¬ÕŠ á|8×K,±Î°öœs«åÙüß.wRÈó¡5Å´,NÖ¼©ü&#úë8ï>õ÷ð&ì.Ž(ÆFF€ú&Ê»Qž-nõ.†ámm Ý9’†ÓÖ÷æìTíÙ4«í}Få5Ó6!àk6²“0 ?$†“†Ó¥JIŠË K¢÷h¶¦¦Bmة֧]»¸åïÚ¯êÚ¤Ný½Oü½ƒ§ÁRÐÊB¯^·×ôhlrô>ô%ܰà{%¿”íl%ÛYýÀz@?ŸWñ9Ò9ÛYeÿÅ) Ê7¢Ê[Г¨#À+#­Ü;U }¹ÑÒ”¥E!o»|Ri(ÚãÔ>>»ò;Æ´Ò¦j¯Ê¾DÛ7©ÜýMÕ`#+êX,‰áßÇâ2Ms,ìáX~²ïï?]Ük2ùª‡ÿ䜿áÊW61Ó!çeÂȪ'7ô rgÖ9¯ÅÂËŒŸ¥ñý~ƒ?NïØJ,¡œô}”!‹vã VÔaá$?y¾JïZ\¯ùÑÝ5ÊÿP0^UQ,¬.=70ˆñRféÆTª¿s}âouÂI7„EÝd]¾½Ù†˜úö´ío‘„M¿9c 6ßþ|¾­j…Ž2äÅEu£Š¿Åc÷Ë4”`m>’\þ•ʵ7Uô“[}1±øÀñ:ŸÂQPgí*²ê0ä.Äb@좮²R“,›vi¢xh ËgN꾩ø.àH<ŒS6$³‘¼Ô#³dÉõ V¸÷ÄçÇN¾ MÁ?µàƒ$¼Å*¡=éœÑŒÎûš=xšBÍc ´oPôƸú8¤îmqnçD<\šÌ—¡1[œtA¯µmîµfx9cõ”ÉP#cbÈ-&ôÝúÒÇQ4Õ€K ¨Ö¶WZ;kQ8}´a¦ÆN¹!’¹LõÐ~ÐðipÁ÷«}k: z-î›ÀzÓ–„veªQB–¹ÁKÖlpy*3ÍDeog€|Lhn,¶—Œ[²CÓ*ÊeUªÞ…Æk¤¸úN½ú&"û"µhõ£CÉ.ôGœ×"Ù›°ò>­0M— >ãñ£QÝo>=LgÙTò*ƒÜ4™µaZg¶ f¤cN†Ødb>1¥Ódã¨TÓê‰ ‘¶gàÓÂbìOðÉS5ÙWP9ØåÜÌ’¶ÁLé›ÁÄ›á,è÷Íðûfø}3ü¾þ»ß ‘¶?ÐK±ïþþÓe3‚.Samc³ï`7¸ûß½ŠŸyuZ¾nq×}¶Ífk Õ‹#Ù"{…ƒ¡Ø_E[(ÈQå6Ú»ÒÒ‡m ØMíòäzç*J³ÛLZØûbÞr.|èœÐBšw3¦8á·aðf £ëbåë’#˜¼ìu¥4e¨>l›±06ö¸’zù}„þ FÞ–½ƒ}‘•~z Qc|ÝÄ/¶ÃÑ× TïHí8·‹Å8;@×Â1N[-ôÁE ÙT7SÁçØ›üópHûR@£à‚L8jñV<'Ó*Hãtæ°¼‰r„VÈ·Vu£mXÀå.³)Ù!¢"©tÂZQXp°hw£Nf GjÐE^ˆÊrÎáyg,NÀÓÔgž åxŒ±Ln¢{ë'àÚy@ Ð0C¸Wuån] l–´O†©œLAHÉÌqý)šzÉh+“BÝDyd*8¨,Uk”ÀÅ{7oþÈ@[à»;L=+ùÃRxï)ìRwY濟Ïh0îòù¬öÃI0i¤é;ÖôÝI‚yøÑ?Ëúý0eD¡B~já’$fˆ¦ ÍIÔÇaÜJŠ×ïãøoe³nõz4ÞºÊE•<åÐ_òÙ=`sãøz#ÆkꇬE[£ ö^£!“ìnÃJúοËáÉzß7ËÛ£(±é «ƒÓéÆß›Žâ_ÝÄi <¡Y¶ÿy’¸3³5É´†él# é!+òi?½øÞOKýT’‚½ æ`ÿé~pp°ª‹¨ŒÃzc³]c H$ðÌÙÒTؼHcdå­L<Öj4󷆲Þ+0 Üj,[ÛæÌ°5HhÚšM,ÌI&ø9T)fï8’Ú^nÔCˆ»+8aÑ}{K`?§ŠÄ%é’7dë:LchÇl|msŸ½rbýÚUÝ•´ia½4÷ÒV6q+“àî8P)t\׬ÀH¾Ðe{aß÷n ùœëõD¿c\ TK| |d•bãd*Su¤à\rDmжÇé´b$ÔÓ 1_6€G# ¡QEà—±m®mØîŠÃ­³ ¿ý­NN$Äã–ƒ)òʾ;¦§ðT˜+ão”Ù´VõuЍô,ä°µìˤ û˜ ’võ>þw(¨ {—g‚0Måhdš3RÁRe“~cxóëLK4ÅØ{TÞáïrvm˜3ÿ §œrÎlÖJšeE.]nX€Ï+.èm©Lù)jõ ÂL7og>Yå³ààá¸àzøþ²€V¿ÍVÿœ&"€Åpæ`Ž­G“ø>ÊmV`¸,ßÂH• ·¡çóýºY‚ƒµ}>DŸÈ¥u~/ÐFÃÚ´‡”qœ˜5©ðYùÂ¥@-‚ ‰óë’¬ÿþâÚ-µ½ÔT›ÿÉA°·û°”íæZ<8Š|UÆ«^Aí1y0¢H×ËÖ¿_çÜû¤Ü,˲ï:—¿ˆ(«Ê—•@{oÀô¤¬uê9s,ð}7=Õà xÛÓ-T4U$~/V°…ɘ6Ùxšþiûòp”¿ÿzÏM·ËXEŸfÄ‹`/ÄI¸»€ÂyV¡S²ê¡zÊ8š³”ƒÄ d3NËljÁ“©·&nM„•ËJ¢åjõ²Rªà0âZ½ø$ËÆ 1ã£8°{øX±vTš×Dç…m­f)ù݃)Cô×—1=Ÿ•ª= ûÓíRh2+¹:+áE o_8ÿ·Ÿ©o÷cÖõBè1S¦/ú%;¶é‹<¦öb“æïC|}ˆöù«Gw²Ÿ<û/_îìïù/vŸOÄœ³ÓXŒ7Ñ=NRŸcý|¾»»ÛðŸïã_tÀSúÁd úýå§ënTÿ«ÜæÍäö búhEpHßI\NBšå ^*‰¯\©%0ë}ÙSfQ¢· “Ë)ÿmuãI7 qлÑéûéë{¿‹Hæ*B²öée³Â`ÓÀj •šàÐý`_éRîìN“TíaR§8øËIÜLØH`á"5söNz ßÒSþE>µŒEA]ÇB4m1N¾ƒ0ƒzxå?¢Î%‰j¹=z€Âod)Þñ@chÐ$š"Ï_Èm±)˜àH…@Ǹ >9¢‚SHlþtÚ›3rl^x 2Aâ€ñ¨I ‹ûÅb_ew),)E-Ñô¸ÂÉÐA ØvÄ ¬Åš ÷Á$ïN>¶f½»o1aTÃ5Óæàû´ù>mÖN› ŸªÍî=AþÆÓÛî‡Ú|iŸ6OÊ›¡æ Q0$  …ûÆÜ Vwžb»ºqú{ttO“Ù°ÂÂ`ÚR‘ªI[D@õlJr^EÄ«ºU‡#­‘Ùc&ľD³å£ªËâ˜d·°5€v‹%‡¾5õ%sÆÒÑ& Ì,ÊqvF®6ã*¡J»wâ®Â v¯´ ï5j"VŸžTpS½§êf☊Atgc­zj‹¶Áº›Ši–rHŸ‡Êü§ÁîîÓ5ƒª¨§¯ÃO€º˜Žöv¡¹øì ÆGGf)2õûÈüÞ#£NïïãóO9>E¯™@Y¥¡a#ÉR¦Kû´ãw˜©LGI v©ä•Ž[ŽÐÎ)•(#2¬‹¡ ×Þz¿íwNåè«°Á=èb€x¶øJƒ¶Ìy(àVuš:%xËi€–⬥¾Æ['sPqÎTi¦ [–/æ÷çi8QðˆnànÛéGæcý~Àcy9–iêl¹$Ý©T‡ÝUmd´t;×îè(f©à¸}‰9fà–ª®£›-ÜC¨4#N²Y"/#€xç§Þ_Þü٦ÙhãÈ»%p[X805ÌžlÈî˜v*¾ÇKš®ÈœoòÎsÍËOÅ]l[qöþò§ó÷#)^ KfOe,º±kófÑÙMñõéå3µ(cˆ§Œ!S}q‡–dÊ.Tdð£‰Â˜\ÕÄ“ízø$.·¶íæ úækÈÉ…1l ™/*´¼Ü:9…Ó,§U¨†ž~j±´‚>kÛ¾šõi=ôü÷pFüäúK ÑÌ?Ä$ŽR¿Ψ Ì:¯ŸZIØÍc[ŽÞ1ÉhSÊÃ>ý9êMùCk޲¬zúqZ–±NÃ4Na]£²Õë£Y âÍ÷ë²4;É’J÷}'ù¾“|ßI¾ï$í$ý¸ÃBúOžî¯Šµ‘XÃ%Bcû¶òššÏë.x(™€ÔF4ølŠ]ç¬<‡åô'šÀ°<¢meÜBŒÀ†NÆ(Îâ´iÀqö`Øó÷wéߥ øÓj¸1VwÞuL„‡kp íÚR¹½$0|ïc[ð¿KÁ~—€ LY…fËg«3!·:ªï÷¼ØAf§`Úa°Î‹Ò›¥^…e‚2xߨ³é÷³ÞL¸­l«ÊlQjñÁÜhs6ïØZ*)¯ðŸ/dx4T}|¥%«V‚ê6¡‚ø°âæV˜J©¹z_€«`³e±o¢öc0#Š%DÌãHXð"÷!sDÑê!ÚEÊŸ ™Ñô¸ÐìyòEüŦ÷ÒiµÕè$¹³næ£sGÃ2â WÁo2_ªD^©é—gÚJoÒD ö(äÀx©éÅ„ÕÉÊÄIJSêBà³cçõªF¬§c¨ÿN©êŽ&h ÇÃ:z0㯅áƒi*Ì&AAr5í Yþ-ö˜j]½JÆÌÙE^ã“àù5"ߨÈá!ÒŒðÅ9ˆ-Uª\±žÌšè½_§Înc8²dÀ«§Èe î$ÀHÔN~¼3´’¶WxXë\ie‰[|PP«$FA8 '+h{HŒÉ6)GíK9'ùäöCÙÐCˆ5&D-qä[÷àær{„ªBE N¿”öù䤽Նuk ëbcÌ•^vO“)ºãO-Ró¾Ù 9;¹àó¡kRbqpÐß<Ætg¥ŠÎᜫnUXI¡Ê—Ej½ºO•Ù0b± Ê]éFÜWÓ!Lõ.c¼έž¯ÚœWQ§.«¥‚ÌX4pwj´AÅÖ!¼´ W–8ø9A*U2GîÌÚþÎÌõËÔ@á—Þ¥5/lQ}&oÖ?™ÁÕ'ÿõ»q“gu+.z›;;C¬ø8T1Ì £ì¼.˜‚v +š¢V´éú/ª¡ÁÆû¶„ ¨å 8/÷Âæj«8z“§4ø¿[°¬ì€Þc¥Ök®Ðü‘GÒÁ 4xÛçö‰…9¦KDÁ’βŽ;à’usš…ºÓŽÂ¨ñïºøÐ {“o=Š¿ ‹YXöñv5 gŽm—c²"E<÷Ï']Ô¼½°—Û'0—K¿ð.°sÞ\%tp€DÊŒqün•%N ÌÔ×7×W‡‡útÙi3.¢Hx$*™æ-m+ƒhÌà5È:«n÷×gúL€ eÇzYá'ÝцC4=L Z^ˆ^d[uEpŒ€‰æX…`+˜dy!×DÜ0²ŒYÉ´æ©‚¼·ðŒ•ܬõÄ®šbHƒk€v ÁQFw8wø•Ak-ѰZ„:ËFYߤəæ¯~=÷µ<ûZësB ¡`j†Ž»ÉÀIÌY*Ì—› Ÿ“6ÿO‘ÎùdÙ©µXÌšOê].üzØT9  ó—ËvSñbzÍ·´ã¼µíØêÒ~ÕL³IØßЂ„ÆóiØìw®À›Æd$‹«¸¶!?úÆ\†§g³ XJiÏ@Í^Fºèµ-ÑT‹$©j1Vè.NAé`sÕeª[Uç«Ðaê±äÕy/0O-ÀXd-µ[â¦ØàNwÙp,ÞœîX«»˜½Ïh!®›ßŽ@ê »ô§5ͺÙý7÷æé<Ÿ!µ‡FŸô€EP€£ÿÊv\Ó—›Ûü*¯É ÝcfÃá¡+sš(í`øä¯E«7 ÓÍõ”“Ë·gM¤¿¶Iü“dªçþÁÓgK†m½Î'+n]ÃQ³Þ˜=a⼜…‰/:º­ÎˆŸ\­˜,´ô‹•BéVJ›;¤¬t°Naטª Ø'±öކú©5 {ß`&Çeó'yôŸOV¨çf/ð8qËE&Œ ûÉPXšúþ£.Ô‚´|„Hµ‘=„tbÇåá¡>Hxí&ãŸÚSEq–kVrÍO¢§{òô‚Oè4`»aï~ÈÎŽˆ6·Gܶn–%Q˜zÔ²1ó c]«vð‚¶÷5rr§¤“ÚyÍ1 E·¥Ã()èÜ” ŒÇ!ËJÆ•À&IiÍÉ•†xªЧ\6X¾·XV *©ÊC™ÊHÆéâ>yæZ=(‰îC ¾øïŠRØ 3þP#G3]Dû czT,_ÿ!ã„:dc}DšÂx©Ô»$øga7Ÿ¥Ÿü£¬¿\MœÇ~'9ËÑÇøm“À}‚ÎYó½¡p"Û<žì.¸ø©Øá¡-çlóf¦×®«wÛ„ÝFXrpÀZ4Ô²G&$i”žŠ‡¿Tá¢[Q0 Hö-sÎ à¥ót—½u;É$3ÿu•$¹E“˜ºo·âq¼Q@ºî4Œs`¸í2=Ï“Å×Ù ÜÓÞˆàÑBÕÓåª{UÕÞ£ž©zbX Z–ˆ §éû/L'|•eýX"SšN!gªã[Öà ®ì^ ÂÒ… aLB@–ÚÇŠ©™öOʆhnöL´¸°W°¡:§“­† ÉÃÚ–.:‡*§)gè Ý⊠=pϨõn,ž6ÇFOúboì‹Ì³Ð<Æ€ór"×f½Þ,¯bäôAŠýHí²ù#Mi‚äjž”fˆ5Dúf¥q²¼}×A7þ U O}Ìq~’ŽÊ<·¨f2ˆ8Ã,ë™d]‡å:é!'MÐ×Ps#zñ(ÄO­û¬ØÜpzqÙtØA’··,8U&%öÔâ¬<¢#¦»»¨Û —9©rÚFÚhá;.•ÀØ p)2:~ Þhxµç(]›ó4£!¯R6ÄÀ-”Ä,7üx@o Þ¼f¸˜,= bF®šÕg2å†û‹†Ž¸¿qT‚€ÕT?F·Yr Ýn©3¸uÀ$4h=¦MgHl!ƒ"J¨«åžˆ¡6ÄLêìÌ… ê°»pîWîL¡ƒK{Y’úgVnœ>.¼è¾G"!ë—´­Z§ûR3?Ò2èAÜED3ÐÎ & -å-¶Ï¯Ú§ªÈXèb¬ ƒ:)=ƒM þ Ù¡Æ2=M8•ÏAjü€¸:Î’n8›`†¯­H¾~ƒu2Bù>¢ÞAÀ÷bÙÓÀVD^ …wàÛ ×v&¡ìçB„O°cä¢Â²'ŽÞ|l‡Ëæ Á¢pòæb³—ƒtÝûJÆç{+ôØc Ò;ÑTΛ®äy¥¼Ã­ÂÞ½3™•ÂS¤Áj\ø‚H‹¿ŸØÄ]¯kóR"‰xãÙ v‘ض·2î”i0Î_÷ùQX/ f™ØêÅA16n¡_Í×8v‹,AX©©Ê3UIÆÒ½P §‚<2ÈdXƒ4..†Ú£?>jøšøçHÌGÿúHwâL‚¥Ø„™J¼ñÔV6”¹5»÷·:ŸhŠ5À`ø·ÿýS±íõ“Ù}kNgÌ]¸ù_ó!Íaû,Àû{+úðÐ)ºbD œÕ…bµd]`cÒ©øÑLÜa7ü„Ø:I|ÜÁfé¢\’ØÀ³5=4HfƒÁâ3‰vt¾Ñ¬ÿ2K07¤I{°…=9x¶”j!qƪÑt ”Sí^̅άKM‰`†w´°Õ¯)6† ¾¿Õîn6«j'‹ÕUµYU­g«]s:NâÙ)$£>mõŠ€ þDýY~“yõóˆ†ûu&ûÿ“„“Ê„ Ý [¸?K ªƒ¼­úC£k]– ›e¥ EØ2K>-u§eð¨7ï®ÞŸiuÿnÀÁ;4xK¯#’…±9¬ g€Dúål}‰S\LïGÁŠmVÈ}t÷Ç‘°®%ÜÊ­)šçxãÈ£Aß5ɲñlJ[N'š€Q/jK‘¢iV/m^9L{÷ºÇµ ˆžé6%èL³ƒø^ìvU‡i÷g½È“d/1¤ÕÛÿûžQlUnž‚C<ì2,9$¯êîÎϼ÷üßÇ’¥¨éó=½Õu½H­‡‡¦Z.ž±Fe9o²ç”ve䎭§ÛÉ6&Bõ@> ¸Í¢œW-ÐZ±ïqh`!Ò/-,¢^Ö6w„êJxïÄg¤aZ‰ ìº2£!|5·ÅêkÇH;B~4ý#Ò•Zñ³¹é[^å2%½ˆÞåå*ó÷ªØÆ Nc³<tíšµOp“p&³ÏñV2{EZQ• å}‡÷e±È}v¼f4Fñ?ÀÂp’Ãà(ïâo+ïñ_ÇÙEëf‚І~ÁN³þÐÄ3ÌÿÚ„:õûs–mÜû$ΔÍãÎÛ=xVÊk™ÃCª:µú =†oU~WÛÝaõÊY®:ö@ö–Úê¨Ü€þÌ}…›·ç¯yöÜß¶IÔÍÉ$›ïp§Êg ­Á…š éœGŒ6‡>õïøCkXFÈ›tô?|Hb¼»OW"ÿÛ((6¦™<ª翤äº0¯žžîM{ÃÖ0Ëß@¼`“±»x0÷‘¥·œrm¯+c ÉæiW1[ĦAJö˜3¼kÖíÌ‹}ƒ·9=9…_;Úþþ 3œN6.LgÎÉ©3@MŽ™Zˆ04®(Ü`<Ÿ~/žÂõÂ癈ÏPN¨îÈߢ:·7\`ü&gçä<]µAHëQbÙ?~œú¿tÔŽ‹“:tksÞéIJ¡ + ç­ Ä“ ûDŠÓö7x³Î¤ûšT1‰Z]>EWŒ“Þ±B'·g‹ƒø”Ys¢u½óö†3>¢Â¢`tçSÈ>Ü'Qú1„cå͌Ĺ£îÇV\t"}íQ:¡sE}K}ðôù ÷ëRÆ}Ï«ŸÛ>ò6Á©†mèÜfïp¡x*ËÝe–Y>Q-ò0¤Œú‚`œ#x‰š¥–l…Ìô&³Í£ñ¤s:—ç?7%Œ·ˆIÅYÓSÇK¦òö\‡í°Å^rÊüë!ömtFÙÝ ‹æÁÿto9ܳ.¸¹ÆCÃ<çF̳õÓIÃÉlzj¹¬y!sSeû3lÛHç ÑYât€†œR÷ °Å9z¾~1E©Ýjß­5¦IiÒ‰·_Ý3Ýì†zùÂͬçˆÃYnM}ÌzÄÒcÄÔ¼aOj·ÑnuŽ‹V1Œ7×`¸ož†IÏ< ¶*"º*T[Ó‹1âS|ˆ¢ŠLb/¬;´[20&ÝÛ³e†‚Žö[!¥€eg̬2DFÓ›ö4'à>ò.òr"õ•‰àÜ|+Œ—Á©B}wQÁ±6=ðE3Ea™õÃùvÃc{Gw.¡ós›QŠ›ò(‰nCEpRc²zÐiÐ/;ïvÞ{û»{O›{/Ÿï5ü³Ë·þÞÁÓ§(Ø`Gbæ9]²l ¸ÿâÙîz‚-,âú¦I³Ôlœ(à„È-ĺìÌvŠîŽAUÞ±ã³CÆsw< +˜JmÀØD6tÈ4î‘(€o)´{moëy©ƒ•‘e–8¸ðçˆm9Ú‰‡ewwWF¹ cŽò·Ð‰¹õèÏ(Šë`µyôçý7¤sc˜\·a¬{Ìä²zÕlxÝóT«IœöÕæëØF¹ h87ÃÀ¼ˆ“Pù[$W «2Up°ÿüÙóm‹F…IÉÃL¯ývŽNgöù/7ïÛﮎoHðE[VÌ´“ãÓ7>PÕF’àÙóƒ³/ ƒ’H â׊ .ËšBØÏ@ §ÄÞÓû8Àpáo!nŠ:iÛ?ŸåÙ4 ÜàøžnÔÐ¢Š Wb*÷£lxÏšB,Ŧ-þ¥ØíéÝÑv§³…DÏd.ø%˜ðå¶³n <ÅéL\‘&¡á‡Y⾘·Åk»†=ºÛú™Þ7aÇ¢:éT’ô¦û»´ôz4®3˜z¯bÞKœ:H±–¹ÎÑ~&X!⚦iA=‚ÀŽ‹'Èy5CШ€?!B`&’9ãT*”¢ˆ"z„6x^<ò /²oÁ`2s¥‰§#µ/TgÛr&i˜^ uh âÚïp!þŒ½¼-¸þ‹aöû…Æñî¬]tF<}"Y¡ '4&×në{=jݓ…ҵG±„9¹iùéÜbÕ<ã^-MÖd>i¦\à¿›jTHac”ØÀÁó°¶³O¨áÙóƒé³Ä›Í˜t8L0³yþágÐBoüÒ𫔯F–*•[,"±°’{²×‘š¸¸¬3K’˜Î>Ø ‹.ýùF™6g'gÍÓÎO0 ‚´ôåR&ï g¢Tb0JûæQ‰ä9`¿ý^Ë@axq…᱌%ÁƒàôŽë'½ßùñÊ$îëG}!Å è|’™L4øÀÕvpk9û‰!ìlÌžWÅõY“ãƒû>ÞJs~ÊÎñß܆¤ºÔÂÎÌðͱ#û4»åi‹î¡"c¦]w4•ŒŸLßÎ ÇBçºð²¬7b ¨+ÝÑÇ,jÅÅÁ‚¥Àþ_f=“ /­Û)ö¨ØÆÀo:&ó⯉ÿ$Øåp¤ç‹ÁH ÖÇë9FÇà¡Ôt™§. ÊúÛ¾´Kü¥>Ùômßœ"và û«ô*ä*efæZi‘+0/²21Ípb«³¢~“l=êÞjUÿ+˜¤Yßó¢tæê1GȯéVSå—`ËTÓéCžÜÅ©ë1"Ýãç(ÍqvmÚÁí!Û„ƒƒåÉÄë“®7ÝEË-¬aÑqûS ¬êÏê†Å^­%bz. «ÑtgèçÀyÎû` ^Gù0©c½ó²ÐÍ›v ½”àªÓf¾·<Ý}`K×rzê&c뢎zvB{k»UOµÚ½MÀŽ!6[°%·O}Ù„©sÜ'rQ KZ()Nò‘<•qZ$ªÐca'Ô¸1>Wíí6\“†o…égéãÒÊHŠõë…¢,è[ª&À ²ËÔ&TC ÝöO@wyÌxÃÄ$&–ÞÓ% ûëL"³’LØ¢=dN4l)¡É IÐŒ{ÌT§‚až% ˆ¶!¿÷£{Ü{vrܰ nûË IŒ2}©¥/÷+`bÍÞÎòõ¼9eéwh–FœïÍÌi­B¿YãN"iãÉJÇ–±…ÛãVnpé_Õ&&*ïÂ[}üiø¯²ûÙvf 'ç{È”ánwРè]Sú'íßÓ?%ý3Á§¸/ì ½þýÚô;ÚÃOýOq–‡þQØ’2K[ƒ8Þ÷ÆÙ‹ªöŒQÕAzoÞ“\²Šv-Rí–óEÈbGô1àn çÉ}c´±3Dä7Oi¶v Åxî{ÁË…Ðoä׸N—P2§üþl25´´=Øþ1è«BÁKZö SúâJàÂaÈtÈ ]!+dC ëŒêh[ñLÔÖ¸´øc^8•„ ~¤A-ª}6îà8®…õéÍz€5 ‘~l‘pÍyÒ¡“æøm›Î|Â=´ÜÐUAˆ—)gÕx;*ßÍŸ­±:\m©ZÓðTÝÿJðAÊ™åÎAúAí…œ¯½%Ûøûα«f˜ä'^aËqól¯ Ú@UŒ»gÉ.Ó^àÖ®ÍñlíkƒH!ìôNÃàMèë¤E‡(mìjÖ~¡ñÝÓÐ÷¥£^WKjωªƒ\KWJj5[¸@J(4¯1 ¾½ìÜhEfÆ÷æâ’e%~™UÁ’SaC[ÉV¸DBBkÉ’\œNg¥qè"¸÷ì=Ûm^cƒ OÜTÕ2ô¤Q¦ÕZCÈBú´;D¯ÿbVBÇmð¯îheÈ\î"˜ôh6j…Él$Là¹c/]ãï·às¾IÄu'¸»”ìù!±†³0SÒø"l sŽe£Í7ep)ȰJž,Ìk¹È@&4®§#˜0# „CÈ«ûÎOƒç$×0xaˆ¥]}j CA¨ýuÆi§b]ªÊ d.ÙS”²ÕŸ¶_>ÝmàÏÁ3Ò*à(§ÙÃÔ^œ¼!eâ$>mxø·ùúMç´ÓðÏ?œ6Oß6ü×Uá²ó®yù¾¹÷ Ä`¯Ïq;KmÄÞ2„ÄQöúxiŠŽ ൠ|[­ ô9s®pf ’Úáâȸ(é ˜IfêÜ3po“hvç$ðüÉÁŸÑK?Ã÷éAýv6 •ç²Üà€Y{àÏènRîH\z¨_[æÃæ®N¦.;ûoƱNô…Cý_üÝý½}ÃqÈßá)ÛöÏfÓyÆÕ¨HÒBÆü6¶ÚÀìÚ:~sì™êÒ¥Iã ¬³oœÁ÷œ Ãy/éŸZôpš§vÔ}ù{ÏØ ÈÁƒÝ¹àKåIrE/ÙÙá${³2ÁéÏš_lQ‘ùÑÒòªh/–/çÓhNm¤1Çþˆì3­×``ÃI‘.L¬S½‡ósžyß@+,@óÕäaW5¼èšÙÿKÇH-1!Eò˜,µøç"ºÁ·–†Õ&Dõ¶h0“L~suöëÅÕ»“ã+„CËs kUÄmØü~ò+nþ¥ ÿÿº{¿»÷3)?púHìÆî¾mrEzLp«–° KÁñpdY’‘(•„yN¢)­XRÈbã&A™Él:J§Ù`}ˆ}¯ž?7¦áE…¨#a5¹Å9ézÍ åõBaµJâtLo±â¸ï_e9ŒIžÄRwuÃÖX¨“Ža½BæD(q'´éšJ û—L½ØPJšìCÉ<‰s_taYÄ.Á TšxáqN˻Ύ²—宲ð>CÓs‘„Ÿ"z“lì‡]’O²h: èOpñî§àøÃ70úÉÂ-³œzðâ¥*¹~k‰mŠcE<¬=›’à©Âßd`fáŸ7 {‚™ýÈ e²öUaiݪÍÊþxƒ<œJL„@ͧ–ËÕÃY.X'eý ìy¯9Z¤ù!…O{—Íþ*$áÅ·*#ݯ*Ñ÷²v×ê,5T€s<§l¼)­±º÷ðPZÀãÖϳ) a…k]ü…xêÒ£Dñð8´”a3±¢ðÁ‰ÛûŒo|’,ßsêšm'-5njoëÝû3uý[Î?q2ºO`šA˜.²;•¬ôþb«sz|uüÞTÁOçyXæÚ üò+ÚóyJ¸é±È}|kõøÛ·ÿæëlÅ@v ó…W@çàýk”iF¹úŒ™1“°Þ|æxãn~gxÍ\ÈMáë‹‹¸ âR0pC‘g·6„•U¬R©‘@õáÈšŸ"'´Ú!ðäGaj—$n ØÕGj<Í1È[R£úº’ŠO²ªy3‰Rž!jØ€"€b.–H“S‘ÌdúÎÀÏÚS¶¾uòo?œ€Z†ÞéôÍ 7àˆ]í*'Qå¨èâïB™ÓQN{KïO]~ÔKùÃb=e4…s…þ¦;¨Ñi}£ðžg×׈޷öùŠs¹†©K0£™²µ—³WA/®*ö0{6žuAY8Ëb6œÑ–fcivÑ^:Ì7’ù-oÂ8NêK¶•/š[L&„"è–G&@Kt¦mÑwŒ.²¸îê|³9nŽÞBÍžÔ\¯Ç—,+ÐÁ9@lȶô›fµÅ·P9>¨ŒYÔÂ(Hî*«Ø@ Žb,œ 'æ:ÿVü1„¥°›†ù7èràepäÌr¤r6š Žt;G4:˜cÉjûÔ\óÏT£aoÑ]†µµ4< ¹æùŠMRsõ$.¯ÏåilV KC\ºÅ7æ|¶é„ÿ⦬$Ý7û6ɇô–°oì1¤ò‚OGà1¥PñùÀá F¯~§¼òy©©»œ ÂÒVVѪit˜qV«|etì²—¢•HLŸÃ%Ï9<…çèo­Ðã -¸ÅÂaÇÜ“_™iÆÍbVäz¾Þ?Ey7G€X?†o[·žAúMü†gM>”Â&p]ÈP¥K•Ò`•™ZèQN¤8;<4u:]s°^:!gBÍØd^íf³“²·Ü6!”Öü,O+PA«[7Ö"G>€ѪÁCl~"^œÝDbäÿ9›.ø|˜ÖD,S±Ïc²¶á „ê…wxK¹«¤8'ÑÑk.*±5ûÐSœåʆD“ó…áÀ*\¾Å›|ÝpÍà6–VøhYNû¼Àº¦* ÜMáÄéPæ46‘â^ÍŒÇR \½‘„¯œý-è¡‹³Fý°€Å¾ââõ¨Ö>É;#•ÊA°ßM5%%×Z¿f}ÒÜèÏ¿Kÿ"*³iÙ¼Ž‘®¸ì®Ân¹xûAQZ2ÁkP |¼ÉN5é$zƒr{Ëa¥„»®Bs¿ÿTC¥Š†x!ºX*jOÓÛ×  l­ WÄ÷C@]Ú/ÐaïÙî‹Ö|ó⤹Â,‰Ådÿ%´=Ý0;›Eñ©ÿüb0‹ü„0¥¹tË[×ðoÏo6œ‚K²÷F†ƒÅñÇÅõÖq;´ì–ª‚6/®èVŒ>`wyÙñ@x\D¼hHî,Üc–‘®´?Ù»UIiÅãR#~ÅþW!¼i&ê4»£UNú¬´ë÷‰cøeÅŒç×sM UwsÇWg/³8©noòªo&Æú‹”S@+ ,5òæUv*×4KÙX1Ck_gÀg¬¢:WÂC YNûàÍhžÆ¤ àKkçyX1Qÿ!cö}Ôç,|i}š§6 åÐiïî$3™$ÀI›“0¸‹ûÙ„2­¡7£9’C*2HA{Q8£çöZp”äÈA2‡-¾¨†—ùjÌwQwãø½‹r¼_-Œ'_\^üË"Æ~pXé¸Bò§»ÿ³0¼ ^ÈÚ«³ê¨âÅÐÜeNl{lâ?@ƒ›ƒóE»»Î': õø©ìs½°¨t¤h9²¢$C2êiƒS»r`!ñQÆ4ì½$7–æ;BIÈã!’5™ûï=u¿tð¿d"ýó.ƒM¦.£ œÂŠÐöœþ]ðÂñÕ ‹9P ônNó/}ÒkG³I˜ŽÙ1ñ4Â-éeãÞ”Œ€“ìy»c»g4`¯ Y—ž›0ÒM•äQC™áq4"?mªÜFá.`¡–ô~i`'úOÜ}áñiør‘‰1tC¡*w&õ68‡w-¦n¯CÇ?¨Ž#Fƒ¼³®!¼‰Á°’K0!#¾IÖ¾$"Ó:êe€ àíeðfʱ€eöóŸ;—?ÿùB^;êÇÏ-Ð0á\cO<¥š4–Øù #ð…ºS_Ko3•ô8M²¾1»zœí/°›rèjP@Áo7W[餈³8cm–ÄÓ]ôÕ=±EHýÏIÈ<SØùÖŠËY@è,€W´Ö.ÓW ÕÜnšÅ¼)×-üÓÕ=ŸEšÓ‚‘óEDó ¦ytË699æóDö«žüSTJýÉI{áТŸ†ç¼"ÄV:<ÌYö'È~‹Œd± p­œÚÊÍQà rU%ïJ„—|"ú,L$ Êl:*?Nø“‰9E°kt†ts¡Y†‡×)†æÉ ,Z'Šš'–ÖN¤Ú ¬¦PtœÚÕ±¤3ïo^-¥ ÷FÛ3îßš¦ª¦,íÉŽgl`T¯·Tï×V¿Ä»ºqgê49€/æÎä÷[N'ú‚’Ù†I¦„©þ"[*ãÚXÕºyFÒòÝݪâÕ7sñ«ðû Üóe5HêyÔìfØþ¹©üJù ë’¬:·RcX²‹tu] Ïa‘r×®¤-j8]/›MÅ·Gl@kÅ! /H¶iÔ×>Gô¨E «X6qIìÔ üÜ0@ìQä‚lû­C‚°ÿª*]UȦl#‰SÞ°Ž€Ëö¯¬›9ø…# ïbLcTŽpà,öœÏ‹x¿R™xë‚„,ÊI—FüáÖ¿Ë}© ™[wVÃ8»¸î§³°)ˆý©Ó¨€¬¨Ç¡y¤ÇuoÕÝeÒýÃdg“1S”~e;Я\wœÖž L¨pÀÍG$jç0ϣ¿ðë~Ö.ËÒmGXžrÕˉ"´éN¬” ê‚=}O™e ^b­4™=#E)}mkžB0KçRæR_V$Á¦=e,3“ˆgîC“#ϺiK¹ ![¢wW£gÝËôî'®Ûƒå-K†»¢a<1 "š O„ïŠ_} ^h°†ÏºM>8Ѻ¥þ\³½a`$‰vy4ŽÒMçÙ$(îèýGœ]ûmN»zo’ˆÄGùd1ñ“ó€8—®ð?lÎtâšø5ÓÅK)>«Š÷‹¯ƒ ù{I7 oÂìÝV™yÓÕÌßc'oSì'v }SMaâm±†Þ"í:¬YëZ³îÐÈ¿Y KÍJ†èf¶MÞ`ŒkF}©_Nü›<†v '­’?#-μ~óü~ŠÀ:N^ ¸pû²ípÜŸ[¿Š=“L}ë,y|µhû H*¾ óþæBè%õt‹yì1»ä“ý'‹+Ç…(f>RÒ6øÕÏèXÑ@ „l¦>ׇM££œmÂCk/æ¢È?Ev‰Yx·ÙT«Ñn–<nù»s¼öþÚ­°jþe+¤¯­¨„½`6Þþ—†¢22 ê}Èa³Ö(Yàñ]Ü/G™§}ÅÃQùe8A·³ÈÉOj‰»ÑŒUÑazaoÄ{£¨õj tЇÈgF4²i)ÂÄ¥e@ÌVô·$œÌ3þ¿î,A­  Å ±¢¶f ]ŽªÚ—,N(äüÛYùÙ Ì÷ôÒsõÞƒÂ,ÿ˜‡óV7¡­›í/Ö-Qëá£Zÿk˜qçßÀtåý4l͆½¢–ˆÎ%mRÇfàã—)'Oír|ÖÞÓ%@XªD>wòã¬ADSé&X}¤ÓgÜéJ‰&u'Èèf¼Í¯©«á±ZÚðOÿøÇ†ÿCxKšD{Nƒ@'ìM/‘ã“àwŸt“¹Ð/ |•ÉTA š8[D„cŒU xæYhÇ[Ц.ç—ð”3áŠ,ý‘x»Är#Æa%[3ON˜öQŠ6~ùöâÏßè ‘ÞnžŠqnÿɲ8÷ðXž®2Â×ô<ÿÅyRûJÙyüïôêï„!qŠå¥6‹9á×ìp¥c û{ƒx¯0Ç“¼ÿ#œr¶ªG´ &J4d"õ±ï–óÌFäVxÆ~9ÓÞ2(œE’Ëİx$™X Ž›ÚôýåhG… ]-G×Ïï,‹%ÄZ͆ Ñ/¶2£ùÖõíFwyŽè Û¼Ö±,{¸O¼|{~Scu𠓭ʴ溻ʸfâ…´–[c†Œü`+ò–"ûþú!I¾ØFéls4"Œ…¤î ÇðJ ¢Ëw;Z*^ppŸè%¶àÆUe:>|“tÊík pVBT‚^BÙm+§Yœ6K#í¾ÄÃBbÜ7 ^§ž‘gÏÙfwEß\îðò4MÍ4òŸ÷V!(=WÁo¼i ‰Îü¯þéãm}Š¢am®aód(ç>`*ž<{±‚²m‘«¢£Ù·7œ˜qÏJPµ RΗa¿8XYï/Íý•¶¶ÎzÌÊO «¸oÂnü "$.Û§Í÷3Øõ^,mËÞ·î턦aŽ0X×zªØ´ã)ëùï£~œ«]ª}ógÛíÓÃC<Â9°pB‹¯–^~4±­ô­‘Q-×pO#Ã+SD³~Ö¤>Æ 8APd¡ÍÔ˜Ê e’u!è;¤\Vø’¬K‚ÀÏÀ¿¢ùøÿû‘èMBl•Åß½ã„T®[i/ù¡×V $ÃvÅ‘ßI¹Âuù—¢UÐOÈaàA|ø\þ²û7™I?œÂˆð|Ùˆp*¶ƒ*“øêì¸ 4ÍÛjÖ›’ñrI5¬;Õ¬Â^ô·гͲðrÍ¢HxAœ†5ó°½é›¼Ù ì¶oDeKd8¥Ýc’„ûÜ‹Áy š,dï²6áà3Aí µR‹—š_Yù+âtzÌ•&ÙÐSœx t¿¾ÿ6"40l“O†¿Î¯•¥¬N:štÍçªÜ†]) ,'î©Y`).´ÂXy>ÇÖÉ"Áôs·hl='¬Ð™hV€¦Y:Ÿ ˆlk$7°7¶©n.SC¦·T5Žéõä釞·gâ+5Î}·þOÇWÎ}÷öÜÿ/4C2ý~óó;úþŸìÅêrO/½~ŽÂ7&ÂÆµ ÿ_þ£¿…ænþ\~Xྻn¿ëœŸýÊuý×,þ›V5€ÇŸe&ú1ÕTà^2aÁ_¼½¼ËÌí;‘?wÿ;mA ¤¦þТEæQu[ÅÇ!¾l®¹fè§Á‹½'+AŒ=_\Wòs–Ó¡ø3<È?G]œC:Í®œ W®Ô²ú;Cñ¬¥R Tƒï$´ÖtýjÝoÑã·žTµ ¦ß¯â @ÙÂ@mÚÅ÷“DzdW…û-ëôá>â Ï,[+ç/Ö˼Tûçú{U]Ÿq¾_‡½«(ë‹ïD»bœEÒ fe0+6›zWÙ°y“’UöÀIº¿dÌ‘p+€j­dÁêq,ÐT«Öׯíhv½*…T¥]cùW(¼6–ž³§°+¢ ?j‚hÖ ûýœÅ¿†J~b<OÊa$ñP5ëÑ]"ÿ}–ã9#Ü!\¤5Cl-bó®¤ÿŸð,@L-äZ§€çädÿæi8åþJïrvh:‰&\™ã[ÒÚ—4ª£çøLøãø°2¹Ÿr€yšÂ%5»ìÌ6ûL¼†¶ny"YÅ““Õô‹šàCÚiÖG]G¶Ž„d­4ÔÑLjdûV6†Ä7èýËëó&3\‚|ÿàEðd÷Á3ðBâŸø êŒ9³Ìn@¿Ñþ­T!–!-¬ú»¡ ‰ ÃVmÅÞ–Dò:ÿÛõçA`8…ù-. þŠ"zæÔåâ@«ÉØ 079Â@ø….‡ç|ÌÕþÐÄ'Ó©F›œ°ª FAÍ·Å€0¯!{]èicÿÝ-!Ø0@ÕòÛ´2ýMò×6ê⫳“kY$6¿x²då—ZßÄ„‰¨ì´¿ÎzÌ‹#iÔ¹BœnzU7ªK—B±MPÓšÇx>ìŒG/Áõ:¸ãœhÃ?aÞšMbãÑÞ¸›yÚcˆcÿàɲ(¶d&lVèÍrŽ@¯Ò©e8ÖqŒbÓ™íÔ¼[ñ-V‹m PšÕ¤ñ|ˆl›lUI²ÞØFµ ’ws¼ƒ ˆq9‡¶ÈÅvf)þˆ¹&îüÿúžDÊÿvE¿mmï|Hå[–ëƒ žMM²„êÉ ^šÐ÷åà› $¯Ë‹žâ ‡ìZxÿY|LëÎÝK:{âZ=þü ¶&æ%ɦw:sik^Ø”/±žjjtéðkBêC¡ fëîµG†c—9ì+@y‹‘b9xcÆ ³!Pµ*[˜%}‘; 0'‡|ÑÏðNÅ!ÄÉ.|ê0\Ò‡ _Io1Œ6ߦÞFå1©ÎÍË6Ó®‚£Ó"Ô“m¿©÷§/Vç–WuÓ¨¬­,!±‚Hdqg%Sƒ N÷­†a*˜ ¶I`lW½(£&Þ9ÂQ!†õš®\hØ¡9ê-,Æ…0nŸ·Bi¤_Ÿ• þà¾FÃ÷•‹N^ô™·È4obùr¤ÂFřڠ喉S« U-;óXÎcT «i b¦.ã{%ÀµêMµ¡0Pó7ÛâH ]ƒ÷·óÀ¿ž¥Ù'~“ß(ƒæ‰eÜ ž¬Æx ¿i.`Æ‹$Ä8à…âBf²¸÷)|™¡"­¢Dœp#lmâO©!ëIj3ëÓªÊÜ…ó/ç õ¿-K&ºŽf‰YOý'Ï‚…n“ð{ܯö"”¢}ûDØ'ڷϪ)²"ñŽûž!K®Q# þ̼å¬Ý›ÒY”ø?¬ºÜŒ9Kºåö ¶Ä7íúÏVÏ)[ÈQ¶»X½ŒÕ4«äW —.µ‹]²ÈØ3ŒÓpÞÊÕZ¸t¦5ÅU•a¡ü sùôòì½^âÃ:)ϺÔzÉ:I©,Q¼“ØàóŸGj Þx¯g¸•9€¯-J¬UW¦‹zà3ÎFð\ Š7I»÷jHZšŠwzqibë³Ü°Û ؽÈrm ¸·y†nK©‡ y‹•ðš;:÷>ªÑ;v£ ÊÜʤ]þ#ç4~Ä“¿H‡‡rË£ÏSÜ 4Ä/ø­B¾}£{{ÝöŸûl]Ì“wF‰å`ÈsRòõe¤ÚÏArŠæQ¾Õ)tm!à€•mä³ó‰ ¤×õKúƒœÙo`Ôy+¢Q8àÒS¸˜VÎ$)²®oœŽr-.„wÓ(]ŸÑ 'ÓÌ‘ÐA;^ÌÉmÓ¬cÒÜôo¢$åLà݃•–~-Ô\»9¿B<*gPq…ãÓoNÛüKMÕ êÆSÞÀu{Ö|³·‡¶1dgžÙb.wÞ‘àΧ4+Œ‚ƒ‚¶i—=†4Y—ƒ ,arj˜5‹_1è> ïÕp´¨"›Ž8#<´S9” pC½\»ÍÂéš·¼ÈÐs;Æ$’y '1}a³4VXEj0‘å}ߨ!Û 'oeÓTéã.2ðv°s°Ä–  ›™"Âì+Œ{]®CCgc˜Éd`û¢ýÈ¡2Ú MA*꺅ü­÷¢ÞIUç­|˜›Ííþ¸-hÏv—'÷;¤™2þ œÀ_~y}Ünпú÷øŸY¸§OŸÉX^&äY¨Ùæi2n“÷ðƒhL=ÉŽ(*åòq^Ä*áÙa„¥gm²êJ)ü#÷Ü7°í¼yE-xê<]ÚP7ä¤ã¿e$ 7aú1V¢†íÓ„ö{*ëàœ?X‰¿ u€ú⼇ç×Sÿäÿ'õ_þܼõŸÀ¨×øO¼¥oÿÉóø;œUæ N(µÆÓmëD2jÅ›,Í|ÚwèO+Ž‚Y3ŸÏÆó2ú6e¦á¸ÿ¢ùS˜Ä}¨%$ó#®j@ÝñÄkˆõú­Ü…î¡`Çè—H?]L*À> O<<´\vö’èž·«•Ïò>ó,Åt§~‰Ð†°†…Çv S,ç‹n†4ÔeÜwK3VHd×»G æ ïí‚ðW!“9.ÂmV¨a¹ù 5g»á›xöâÁ”ƒKãcfE™IÄ ^j<ï4wÈÏŽg©Â¿,–lÓÙRDÍ÷Q“ü&ú'ÏV¬P§XM®w~gbY6™Cµ°ìôŠÓ&0i è¤(Hköõxý= DRj"Ó9mžM¶²pÄ'IX6ôàsiµ5¶Ä ák«GcЦì=Ü [:ïÏ$þ ºôÁÁ“/ÙÚªX gb\_½×p¬š‰áðëßú3~Ç©è\§†y$‘í§•W;¨èh÷k:òpégÉzb‚‹¾89·؈„ÖrÛŽoplBzP‡ýœq0£fÒÛ…ù„-nj¤_[ƒ>~ÞÜáÔ>;n¶ã$c†C$ ,EB¶Ãd"%\ùë$ _Š¢]¡’°»œªö¸îõaµô–#ÿ˜Ö? ã ÂŽ?†£~Ñ’?›‹¡í³+0¾ ýâ -é5W›\>èn½LñàlñZTå'?Œ'"Ó€{Á¤`d Kdgél;N˜x&%[è|Uà"ÏIÕ|ŒTmgªT¹1uÍøµÀËì œFQš„c•ãè1ÀÚzo›n€ç7‚3|]ð×Ì@n^ÍÆã/ú³ ûÀcú Õav»ù~Cÿ0±Þ؆± %¹8´Ë©5 ï ÷9È*ZQ오¢~J½Põ¸SM4¯rXã2v×*ÐsœK –Ø¿†Âèh*ëðtá¼q›À}5‹KƒÌ 0r+ ÁZ¯ÛˆŽ`ÖÑ1Ðã¿­> -¾AŠb;yßFÖüþîÞKÿ€‘–‡â¼¶¬~Vá]n­gªÉo[rÒ¶OuC7;Ñ’oÒàܰ å@ž°‹erØO Ju/GØJÌäV|dyžÝ¬Î )ôdoë=Ç{s.%Mpªgþk˜ãIŸ"úqOjçâúªƒ5tÇþÁËeqv°U´kV¾o:qL»nè ûçËŽI4Ùâ=ÞX(ø ê´·= ¨ÈŠbœ¯Rr Wø¡$ Î?.”ÃL W§j` SÅ×G[Ë‘q2A•r}­úã#d.²³©?‘Ï­0¾ß fYY†waÐ 7ìn XxìûÁ E„ ¸F[úí©ÿ¿>v” »᮵¤~8=óQòöÀ¦\­ÉT :@®Í?e¥4œð‡VŠHÓD=ÖßÀ¾ÑywÜ–´©Ýàùž&U/²\S͆ZCV\ùm©ê…Ío’°€Þ1táòôRqU·EÍb¶N½-´¥!S é()¦Øjxg´ñ…»¶%¨†pÖü<á+á›b½ç“cgÞ̨@´ò9t¦—fÅ<eÙ7FæzóÛ‹1¼*e UweÖm;Ó“ ™LI5×?Uˆ°`dOI¥ÑгˆlíÎ÷:üOfþÐjÑ@‘ÆÕšÐûçY7Üü,¦ÈU(ï ÉlêÏWèÆ÷ ÿ¥x;î­?‹ yœúïîDƒ÷E;Xk¬´À(®ÁR¸ªº¾ÍÁñ*‹|ÆÌ˵Šã¢òŸX犲Ž>rë|Ô0šüDDÈ*7©ëüxÕì@®žˆB@êVéæE7éJï0KþÇ«*y9µhNB–Àm¿Sävç§·•ÞŒ ÁÝ]¸`s)QÛ\ŠYW}à³gþ¨%T8ªÝ(̇‡ç}ßr’èOæ~ZJ$ ™:L| öËv >SŽ˜'+Ùy*@ l R(…~.üJu€s»‹é%<Å$m:kMƒ`q @ÆM³Â-·Çàhzò, ‘âZ£óyÄJˆò¤MkéGãtVjšÿ&¤ —Œé2Üøhá6Þ,¢<òËÇ1²¬™^bA§x¥éþ;¤ÿ+¦Å‚ïTÓEÚ1•+x$øi ¡¦¢œËøD6lijÎ:0u“¡†wD9³ÙŒ#ªFM9F°~ª™6÷´¥NÄ o„îz ¬ô€üéû[0!"Ü#iÈJ¾%Y«rîB‹Ž{¢ ÍSR{Lag‰T$LžÓi&¤ÏP¬Gä&FIÖ-– f?¢¹XvÓ÷]§AÁü™´Ð$NG÷®5|ó!ÏîMÃU(†+PýdÙ[P¿SAà°~W©Î %qÖ+ßÀtðV­wJŸü§û¸^d «—,è åõ]T;•!¢ß*G3eî`Ü,–¾ÀH-–ÆCú‡Ëm+„‰…´í´ÙÕŪš¢ìÇ©Ã,휒&™×6‚€‰ÛsÎ.ºVÒu+ˆx£Â¬ £…A£¹eµ;üwx¦íÛ­›/ÿož™;W]¹Hg8Ÿ9d¥Ë¡îÉCz÷ãDÞy­Œôõ¤N“®°Ñàù‡‡¦NX)Uì=Tñ‚¡ îEE@ɧ‰±Xxa©uLñ]q‚¤}k53"8ü†p!²ù2ëZÂEká•_ÇyFjp8‹ ß_ƒ‘|m‰Ÿò[AÁÜ<…0ºì‹®¶™£×—çW\xð…à ˜‘Œ„ÔÍ”¦±Äù[ž}Œa;.f|·¹4á¬G¯š÷ƒ´,aí£IËÅß\Þ8}}éã<Ü ñP^¿óÓ¯¿tà‡°¤ƒUX7@?<¤òúþæ«“%4±#â2ΚØu-àGõK6`bѰi83 !FÇi…% ;‡m& ¯Û¤ qqGI_9Ce3V¤K!äsæ‚rÓosV};Q“ûÿ,¢£÷š!·HÅ®ÈopŠ0¢d¦Qü;ãY× ä ÔjŽGÿmÄ|ÅÆUUSsžÖÀȤKô‰^ß>±XxâTž˜Ê×ôè[ÎC§=)FþQÚ¿k¥wøü-veêÎK$!` ÔŽ‹¨Ä|­îŒgŒ“\QhaîÃÛË_üxÅ ÓÏa[Ñ!%~;ÎÊ\OŸÉý´Á) »Å·™4oÂ1‰i•&«¤ÚÜæ7ÇoŽ;—¢ Ž9ì’þ +%†ù²Nî¸èüIâîXž¹¢7Ü«…²Ý‚%WKKY>˜ÄUâȺªí -š#á¡^uâ3¯myCjyƒ®–!¿hF³IH¯ä`ë"ÙB»†Ax?„Ó0e2`K¸)é+“«¶†·aœpŒCXzGœ,ï~šáÚù×u“ýÝ›'—þ ÝDüpF’Hš[ýž•Á0ß8¼ô&Žš§ù‚y繿ÿäéj]\”ŠÓŠòŸ³Y'” œÁ‚H_`ȉ­«÷¶S ç¼P “º3E$ÄÍè‹"ÏÐ$IÂÐæb˧Aéƒãúæòþ5Vïæé‹—K{•Ñ"Ëüå B3êBdM qTG·ºeÒ9”õâóX™ÜjjÂFâqÜk~ ]”ªKNÕÌ:ÝË飿¨XÝpa½X¶bºk3ó ˆÒΠi²Ìº‚ûu)‚ÒøìÆm6¹ÙbÕÙµLü=WSó‘QwE@&'ƒðÛÕ•HVtæU3U®¸Æ€Ã7Y Û õHÕ4¬ëÃû¢–ƒ^gáñ &ÿãã$d_†·•—ªÊE÷½ÈD9ÑšÔ?Å'°Vîªxdv!‰À|1çÃCÞÕÝ]²T¥…wãIÜcÄõiÉfËÉ18æð. öÏÕ¯A9Ì#=ÜBeD\ì"T€€Ò2ó _ Ë»Q=S4}È5K °ž-ÇþV1~b€á`\H^foĘ{_°S{ø?ÍïùÑo¿<ÝÝmž½…Kÿ¥ð| S{50úàý«S’7Ÿ«“Ou¨x Ë5ÒÏN 4ƒàsć­1(šJ%¯WëUÕ®‹µÍº°ŒýeSÿhNg[sw÷ÉÞ³Cè’>·±q¿gï®}öd,‰ 44_ѽ j8Iüwl £ w¼ÅüðèZk³ß7ñæ;èŸÇ˜´N©†ÑLŸe“ÆcµÄH‚SŒw¤i`XeÃöl ¦±Å&È/ÅО$ÀÄ¡Ëè¸ïABGh³Ûeáa! Gªr181|ëÝH‡ð#%Ú—&£A²DŠ…¢ñ°^f½Þ,,, hU#+¹bl˜F¬¶Yꙸ¢æý$aìzÖBâ‚D¥ÿúgeÕ€qºÆÀž ¢ öx&Ž\bX¤xÓTÜJæ9üVŒÔÂñôÐJ‚ÿ&5¦u6¶ nj˜N4”ã €£N_Þ]’ðùbòwšfþY” DCGô­E+§â†8Mç|š±Ëá¨Ç{½ܾQx¥›ëMXWq!¦{Á3˜…!iùe´È²éðA³ê²$ÞÒw×ç¾0ÇìW17µïþè˜J˜ Ø n0é¤D9Ŧ~àêjáö5³sHÔu¿+9DO¹œ´|É,°[^…kxÃ4à^Ý…½™³š¦rÍì÷êÙË%Œ3D‡‡Zvy¨V•²¶ @Š:â˜5yãîÉ£Œ“ã>µ!_.¨ ÎÕÀÅÎÕÏÈþ8­YÛðæQ¹ýmº•nÚ¢Ìgæ­ _ò¹°NÀ†_cô®fn‘”&tÏ`ÄØK¿†î’°§êÞá}µS ë“1bä˜;áŠø47éÐŒ„£-õ·¸Y}BŒ÷^2"¶:”D‰Ço‹õÀ´Y½PYnðŠÌ|·I`ö h_'vCEÙ4Híò]Úë±æ*ÆÇ¸@Ù%E‰Šês7é·!mÜ0ntTGTÆä•Ë`©ðú±7¡ú–®²Gsàsjj“Ä#þêmÍøï¶_K"¦ƒÏå ãÑÃA'ŒÞH៣Q¢dJB2-<Žm ¶d¥jN5Ža ³IWÒTi"°1 b ÇM{Y%‰ýà€—Óó¥¾5È«C§zj'Àx99ÔΞڀ‡ „’ӜŠ^LJw#ÀÛ™ùo>;tïpÏ…öïrKàûKǶgmWt²»•|?Ï(ʼ¯0Ä*xÉŽ€´(Nž½ š’¶ _J$8Kýg'—²P{rNsÁ›M"¡T1vyÆTŠ* ÞÇ¿´ëø=þ–¶¾Ünˆ¯È´7}¤›RÔÝx2ȉ²¯Ù( ÞÖsàÃb¤±;YÁÛr\bÛµI"56×ÞLLJ²Ÿ*½ÉZ‡3 •zWp« ñmò²¸¹Šò¡ÌÂS6a6©WKWè£U@6!†|a‹Ì·3T"¾xQ ¶A­byVAOò–BÄúœ©—e*Ð2¾Û‹hýìhŒ]Ê|˜z—srƒYaHäs„À‹,É ÙlžçОï¹ðG¹ÅðëS£ÂžÉïìmº¡Çþ*ØAÏÀJ´9»5oЕH+X½зóµÙlϱ= Û3„Ó£²'Ÿ¾~&ÐKEú‡-ñÄ­C<Á``‹Â]LZilH;¢Ü…vÕEÕ~ìóÜ誛 Œ†ÓÒ8=*H‹4ait¾äq—†Ø¤ö3ϬõŽˆÕ“¹zS1ÔÎV+dT4-i&gSÙ5 O‰„ +'šH³Xëú²('M”9'æ‡os0þÒK'í¬€·éÿ«¨Å8ݦŠ8WT˜$«UA($е™¹Ä²:1‹~RAí@ËÖ¼›÷;GÜ‚¹AL®D[ 6Þ¯ìäûûèMªø ad†5(ÞôÚŸ…Ž–€Ø!OR} ñËUn1©0ä”ün4ϸjßg:Ó9Œ°ÏÁ*Û*ôë·Y™ü2»Á“UÔÂn`¯8^­/ThNšñÜ!Ñ®k»¹‘(TŒ¢õ°Y‘XAÞLÇÙGþÐ*zq0ž¥AšÈŽu>Ìçœ w–]È€ôË]­Ü&Ýòçcº`Äÿ…(s¾Ö”?Ç1-×¼¨I“Њ­rbŽ|.Å}dÐì;L¸°dêÚX E(p˜M+Xjˆ a&á u*5•ìE’âGT>ó+$K'¯³`›Gײb>r’eäY¿¼Ù\¾½øó7‘8&±ª&û»»/‚—²Ñ,B@|èœûWq:»§uÎ6˜;×*AuHlÊÑJV"$Í^?&y¡¬™¾#¤VCꞪAZ-Kˆ×ÉAoìMì…%ûGp´x«/’”G`C~Ä3¤¤YÜß¶©T,"‡Õç¨ìíóB~Ý1®ªŸi¼isB(tÇ_ZX:à{/ æÖYŽÊÉßþ¿I·oU±¯Ï¢˜%3€þìðë>_â”îÖSSG™£:ë~×xý$•^óú?ÑœÆñû!-?ùG·3úÓ¦Ð<6›©Ò®&Ïš×3KKB™æfóŽVê­‚|,âóÒ=_Ý`RÁ»ƒZîûO– {ÚöºìT6– ¿aNÝ€ŒQ™„óŽzPì@}åýØÈ¾5†¢@tsV†?æ-êö3ýÕwtNÓÿ}1Z8 À8¼/>\®™I›Ìýq„èÜãVö‰Ó6š  ¥Àܬq¹OVà*ŽHJŸ s°4<[˜¶œ×gïyg¹¢¿§!éÖa¥1Åm6.ˆ/ן5÷žžžAù1aU÷Þ܆©'˜‰|[#&‡4c„¨šäX&›c¼ë¬u„N!zýÝÝ]Ù¿ØFÉɸ,’±ÎWá2j‹`‡†\«66Bg=qD'qLx]ð•LGXÆ@Æf÷D8èŒa1ÐâãñªD‰ð*crºO]ý‰…ü“ÿ&ïzŸæ´+Çúñ[ó R´0xwXØnÚjBßM©›å²S¼†OêL_è=w#£gšy¡¯nXξd)»™ št¹ (Œ2ÃHè“3óä@u 2¾•[Mnióp—³;‘6S2ôbuuÄM‡"ËÑm`üÎJ½r¶ΠvM§ñä í—†ÒŽäd7‹n0™7:Á¨£9|/x<]Ê_â'õÕ í¸6g¹òÖ™P F ^fô2mmÛ•: É2!:*Pa£æL•Ø8âm˳Y_œ[´÷l{N¿ßr“ÙZIâ8q”g !2î% @Œ9jÉ4î#é2µ¬’ÓmÑûnËô¦ŽsDyƨ‘KJÕn{¥Ž¸EëpÚÔàLI[xy‘o3c,n@;Ë5©Yñl Å‹?|«¹5D> „ÿå“àå‚¡¹SáŸjÚ  ,`y«i0Þ&ãôÚ¼y¿Šzn_8w+äÝú¾ý–K±dÂaJª†’Z‹C@íÅIUx¦ü-‹ÃEmZJ/(\ÛSŒ×ÞþnUs1´¤äÃ6@¯_¡Í¾ˆ+LföãG¡°û¨Ò†_³: Y¸¶u¡ýHf¤ÁŽû´åÜÁ$*ŸZÒçmêíáM/aÇÀAð|aÐpåT(4Lê8¡HóæQçÇ«ÏÂî`0–=ËÄa¢(B‘¡ÿ!+®—xz»1QÂð \šŠõdêð=³}­ü<òñqÚÏ©ïþ<óBþØ:í'Q>Ž’h^áVÿÁ«|Š¤ã£ø¼ºØ i¢tÚe“Püƒ¸žVmmÁtÓ0˜5käEÀ ÂgÖQ¢ŸLÚ do¾‰^îÈ?*‡I«(Š`:Õkü×ÐöJÿ5uôê:·æ­Ñ¬[¹û˜Ãökõ($•àÞßß÷Ÿî-c÷£§ˆ ›ªóŠ Þ±Çצ‚jù©µ€#®épe®‹×±hžÍ htY—n9êãOk çƒÞ§¯ß±FYJûË¥µ[Ë×L¿E*ZI¿dSÚ±²åVIxZXPÓ„/ȶ¬¹NM& À©¨á)žC ǽç[)3œõã jµžks\eÅ€ÅC8.¿÷¸°ßçû0ü~Ã@=qIjïùK ÇÖ*‘L¯I‘„ž27þÍE¦\DߌA<éŽl=þé’…¤gqoŒÄHï(XÞÉûâö»ïÊÛÔ©Û†Aäµøþ;F'Ò›&ì‡hæ)ÑZÓ8éûoÒ ¶ \ï£ds#]܃ŠJûÇþR´LIÒðv_5¾™yŠ»Îk2_ §*&F¬P‹]-¯ÍåUŽ€­(šª@ƒP©†Q‡$)@q˜,>¤D–Ù¤Ž×Ô0®8<¿ ûC±³P|ºJD \›»Å®Ø"ÒP85ÂñOŠÀ—×ÿz!îcø<]e¸¸yóÇæ ÷/pË¿¶L -¢¦ ®µ¾Ü )^˜Î3 ¼rŽr„%=¨Èù,Ñ[Ḏ/¯þuçmÃÿ3°=ÿCC]Ù ÿ$K?f3úpögMüÓð/Olx—ïOþÛìÙ©y6›ÞÅ :þñÇ så¬ûj„}«áw.¯¨l§ÂAýK4Íó@3ô«ñ°»CÔ·ïÁþ&D¹óS‚HÀ_ˬl¡­§!‰4aŸÃëILæ˜ ŒÊü"s•V¡v©úîXå™ÜAKŠt^ÏJ¢ÑpðÈøh+Eø˜q!¶+tbÖÜoN¯œô\tÈ)lžpàV­¬0ÜÁ16è ^&HÏOû+„´ý yŽÿ.Mxý\¦½ á]Ç8K²AéŸ*ø [)ƒŠhùËgøÏ‡ÌA£!R§!ÔWg„NüÇP>’$=öåƒxïØÂø¸ö²&þyìŸÜ\ÒùçÈÿ'3.JÙÛÏg ÉíݸK2tv×Íò¹I¸ûßP—§åc{ñƹB4‚±ÇãÓQ<ýåųÇTƯïÿg°ÀÐSÌ. f=&MqòÖI‚ôJ6!‡¶ÝÇyÒN•?&-ëïÂî§ÇþÛ()ôäÙÙSãqGÃè±ÿîñ vEшHâÏŠOþ»D«:/ÑN:AçiüØÅ…y :cüǤ!ÜÒÏ@ÚMé’¶]ÍHc~|աÖÔïǾ~Û®1,ôæ¡\H#ÚîôQ·t~ʨª(*ÁÇÌœfE'th=†:•pä€ä€‡2`ezßLj—œV9óh<édšc,i&Dså5j¾Æl~Œ€¬n1} h–Ê3_EI<¥(F÷›ß<}¢Þ˜žï¿ÊìÒ¦8Gbå˜Ú%z>“ä=>I"|ÀÀÜ™ÞÔÜ£Çô7+÷v÷û×½g‘éü(ýN¨úë81w§ëcÚŽ.fóÇœ<ŒÝ-b¨“$åÁ?ЈœÑ*ŽÆ¤õÆ“Voä”¶¨¢ZôdÿU2×0¤2yÖàkUâ¸OêÝ«<.?™6tæ}Ú%iØìS:Ñ|Bûl5Ó;SDMæœW:Fß´ð!›. o?3AÚˆ¶a8Æé—Ö]õK¥ê¾ž'4N2íÏ·a>O?Ìþ½‰h’ÇLü2Å-:Bã{Nk·¯"!´çœêÈM`B¤}(ðOóðø8î<²sçm'´¸Óôfé”|öã­Œë¸ÃtÙûäD¸´º&Jz“VÙ+î«Wïüíÿ £/Üi˜Oµ¾Øog´ñŒšW\±ÜïŸQ÷%2ê'Îܸâÿ÷@Ž–hÕdšbò²3¸«hØOšü½5'±z­jÞE@;7ö5I/…ãI?7k#µNÿ‚zL×Þy’Ä´ãßd݃ÉßZÝQÌúQâXb¢œÖ³¥ oÛOѰ´fp¢ÿÈ1g_/´$YÙLàE~‹\¡ˆÈ/9kž¥&ÈÁ{±OðUü9æ<‰ ­nñ…f&Lãb¾ö¤ú;£kÒQC»Ö(òÁSP¢ì/DÏÔùšUÖi_¾Å9Û‹b:Êað<çZÎâö˜b)¸¦+_Ô*™V•HSúR‰0ûÇ'á±;.ŠY˜V¼ÙaaP–«PÅãh8Ÿ"ðF½®ŸOï<‰G -u,JÚâºQ+ã|w:%nƒPg¾!¼Éz£†?$]〓îkÿènܦ³é°Ú•:e4P^‡$Š“|ò†d¼¿ýä¶&$ÆÓz-Ã1mYü8>opêh©f¿*jÏ×Ü|Zs)ˆ¬Ò¥¶H®~‹~­¶· §FsXŽ÷¿Ïïóã¡ùñ×òûìø>;–gÇ CøaðÒ?x²”y5Oï•êOÝUFü&c?ã¸{¶»4ÜÛ¸HWn[çIË?‘ÒM: öÉ]ümõÄtxN7ˆ²›šà°ì¬ >¶î/ên øüC‘Ë-[Õc\&ôê&(RÁºW!g2Z/²ò=yLY'·<ÄøÖÊùT³'M­Êš¬ä-éØ ‡VJvÒ›˜~[ëZ%¤Ò½ŽäMú}rüÔê‡!筇ƻEºÀ¤R©DO>¶èXqäøð6둸žÂ=Äl~£i+ú£pÃŒ¨„Ù1!òmšô¨àåBÔ~[S®«!:vò'—"ú´FIÖÍ£Èæ88cì$!!žAò+y—ñ.'ˆºÌ¨Kíò61I 1Ñù&v®Šc§ò´@dÛ⊗uX‚甤~ÔÄïux¤]c‰QQQ¶˜…-ˆµiÔá*ú òþ#ûìGˆâÄïݬ?7K5‚JVq® nKÄžÄNãUƒÝ—ž¾3ÕJ%wœÖ#}5ôÿ£ßË÷§ŒêF ¬³qÞ läº=\­¯±™êG¹üØr¤ûg<Òðk¬9R1.=‰I§Z.{œÜ†9Hé¨ýt %™öŠVNºýp¶!˜fÕ+ô€ï“ûûäþw8¹94yÍÜ~ 8YîþM±ÉzË×··˜„NœDÍpúO‚½•ñ’tÞ;ºã³V)Æ9û$™ÎÃupNTüÍÙ9[Hü£q?jÑÿ›Å'Y éÁï$Ú/–Þ†i5ÚTŽÍýJ¥"pD˜š3SÀDB™üâ´,hö˜äÖsȈ5Žï¿óOþGÕø[Fã}ýŒZøw°ëwTƒø‘Òbº«ªŠ)‰:Hà5·÷³­áÇÏíÿï°Ò r¸ûq¡ûXßn"EÕä?ùÂB¤‘P,úÑŠìê·kˆ¥ÛÀÿïWÕ“°ÿ\ؤ Åò${£§’¾Á‰ywY³5ZH~’¸Yg7+F.U­¨¢TÅ÷-™i Éégwʼô™Æ¿žåSøyka.ñnѯ$;U“®Ã˜U¤b"¡<$W~¢ÖVÖ¿óþ6«k0‹N²ykJ›jpåvš­r½™ hÃÁþs”vËPؤ–¯è“¸s|쮿GªÊ2°ð©ÎNæ~¹¾<»T÷;¯åã«Î±ñÃsMª²:šo™ÖoYËTqÿ}XöÄ•³†w¡CHìO M82˜7xi‰QÝßÝ}¾··÷ <,{‹é¬§íKÿ,êΆ쬽q"+Ý\£}-Ù”º¶qøçþÉ廎T#ȱ_ïqž4e/Ú ^¾ 4{÷ÙÞ ÿųÅäªK{5+¦" ôýíyÊèÊecc˜MÍ&B\Í ÅÐÚ0–+jöVÔ¬èÑõܶ|\88¡^ñ6"X£ILú›F3b¯p›GÃ]—ÆH‚·²¿²ý(•Ï5Õ©r„ü{ùhú—ʈâ/=)2ù·Ÿ–JURÅ`ƒV Ñ÷"ÞÐhõ‹ÏgÃÁÁ2zE;ëw¤€MµÇóý˜.0õ9§ ~„×Ç&^µº'-FR'kÔæ$É”ðøõ?v…ª¦äæÈߺ¹Þ–Çál“]?÷ó,1ù€‰˜¥õ ÍutçÜ¢nÔ á×Ï‘¤±®µø×SG½±‚"úIÏiZàÿŒ*%ñ{¡Ù€ÕзƒáDŽ¥ rnQ¨=ޝÐ<¡‘± B àHø…F%¬ ´ ‘q’õÆÜ—GÔcò±•rÅFS¢QKæoâ’Ñœ^.Ni‘ñÏ( ts«ô±åf0ЋlÊ⮀ªZ™A'áÈ/Éž73³Ö=š/`ˆÓlA¥¥Ž%ßÄðlÏ&¿¯[z›v_ó`¿k;q‘]ó{'~a'ö³žvá‚lVƒe”˜y½é{G®èHÖ_Ñ•Ðí»·°ÍÛ¾JËh˜W½Z!àÑÞ?.³ébïjÍN™w+²9 –%’µûP#/ÓF|̽P‹ÉñEnU+oWr§³1˃(JŒá ÖЂþnÒ‹vú•µ!›ÈBœX UhwQÙ–7®¶>~ï—ÿ®_›Ô~ °Åmúbow!Àž-IQf¦¯œÜL`vv¾Ê<á,«+y•3MmßÖóp0ðßþçøoÿOê‰ó<,:‹ó1锇®|µ Y-oÊâÞ ^Ï—Í1í³Wþ{F~ÃJ7éN®–Ó–jTd’.ìûiÀ÷#3q/éŒ$®1 åYÚåHõ.’ùTà[N³aÿº:U¼ž)©Î ;6м8®2ä]6È’~࿊sð—™g‰žèÁ¹mx…N…F5Û̯ð¬#ò-Ûa*°ëz4¸²>©m.¬cM tè†ÙÁídÖ/„›fSk…ND\³hQU¼ô"òj° ™SÝXHˆgÏ€¦Î#6íè’äÞYžr]•Q†«™ FÖ’®²%fTa“òd$ KÉÞ—Ñäêù”.Â`4‹S*Œý7ÉJ!¡’ î–Žô¬iYÁTI¡,g*¯ûç0vÅ3A­·n„ܨ@6ϳþ Œõ“ŠDŽV61âà,«º] ™wYžX!„‰(ˆ°,3“¼k­»Î.ìgÓÒ4 è‰2y JLj@p ÖPE%TÙ¼4žÂ¬y´v¢^–öQµ ¤å þ Ij‡=éÔelöaôQgêQe…¼ƒpºù0· Â)Þx˜Ò™J¢c¨Ý's ›nÈ€Šu µG}0÷4ö•“”gÅ,e}pÔBà—¦ÄøÛ4^«$y‰¹зC ­Ó+,hùÁê/MàÆÑ]¯³»ˆAÛôe=^t‚—GT/bô?ûÜ˜ÞøÎu&+Áãü‚”±­¨ h8` 1r†¥·15Òà‚½K#‰×VS‘°ŠÇYiXü"KnU”¡m†:¤/ZˆF05œ¤>î. º¦=ðø™FrÂ,ï°¡°a)Ñ}€Ú2ϬÌimÇ´WÔdÓ{È0²µÉÞÙ?«6½ÜÔÁ Ú7ïÎÞy,‹?†š.6ý¾z_w(×÷ë£>¾§­ÀÕ°†7&ûõßþÏa°c¤°ŒZ$[àaQ¹ÔÖáSO—T\ÿÔµ[@²ºÍž²¿énêY¾óŽ–°a§ƒ„iˆl”Ì0¢‰Vnmó Ë—_Zô‹8vY†œ3*4cf‚ ¬âÂ1–Ö+̇³‰Bh„lʤ)= ê0§¾É=Þþ×ÿ¦ JÉ)Þ³2S# Ey¶gSwj¯nkß\óOVÂ1 ¨µ$æÊnãЩŽ'º¿(sI¡nyŠÐ³°rö, *Ë ê«IŠ›$›¼“æ³díœ>Ï㱓gyŽîÊoIA£’´LÓE#Â÷iú}šþ“LS ‹X¹›žÖ ôõjžö?Ý$βøûDýw5Q‹øþ×^O¨Ów–ißu.ñ÷véÒ¾°4âã\v{˜ÆpñTBùìlí½xi\Ðñ7:ëiѨÁÌzc f:òS=}ªèX2£™Ñ{Y¯zåÍÚNÛijüÐDB¶ {¤a:ݺ"RĨa¯×à`^‡‘¬X@Hf©ÓF±39+'“³z÷íƒ82ì÷cUSXH5¡~f¬¡9s’Ÿ[ÈZë=pÍ0kèZʳ¶§oœGÀ[D^®g[°.Z¼Þè.ŠÒ/7˜=PÔ@ÿ»»¿ÏŒs‹P.ðqñ.…l7Æãà{ Ñ m ýÔåºQÈfŽA$œZzвÃJ.,ØÕêlØê­P«žÔuhíê-cåc´OüT‰µÐ²ÀµÉm^ÝÚçîp"ŽSq‹kÙfeÑ ³‡`õΦœWÆÆØتÀÜÅ+' ð%ˆoLJоÄܘtñ”Ë”;­'8o¥§óOáÉR4˜ÕtDŸMôéq4-û[´·‡Ó°B lT”âÚÝö@Lf‘ìæÒl ÅÍɹSxð’Çέf,¼ÏäÖÿþMðCÀTçñÇ´¯és?øù6¨~kEI”³È‚Ñ^ËKgæE6Ĥ±ûGCý„è¯^ÐÝ ?ŸÞ¤"Hº †zÌŒ7„(Óý$Ñ} ÍQrU,—Vdp•™å `ì€Gü1‡ö˜Ì›ì*¨:Gê´^4Ó´ŒüŸ¢4š„þÑmMÏ\‡Í¢©̨øk⚤_«¼Ü±ßUÖæ÷f¬ƒ1iþ|áô^æ°²¨!t€Í#íB#¸P‹#ØDÆÑœÇ»E‚EKÇópÈ”-l² {<`ƽé“![²B3ÖfQ(€bÍìiÚ[aÜ`ˆWs·‡žÊlvYîpÎù–ýÅ ak¤=cÚ{í.Fbc ÃúˆóSÆ $ßëˆq'›Úk¤Î½Šá¿žªI™¯²YžÆâA}Xê§°Oü“A ´­ÞúG·øåIÖš#³¾², `M‡4}€ÀúY²qÔÓþ¦ü©õ窶o³Žì zþ}}_AßWЭ R§½¸Bñ¶¬w @û” ˆž Š˜cUÖ5Ä¥è.³tLµ.‘ÕÕAµ16»}‚aÏ‚5ÙÖH+ VgøyªZ{–¥e©)l†Ôs pàù¸Åêݶ%è¥*'>‚¥ái‰ !JMYI‚ 7޲;ñÞð ·†ãß3o…³’Áý@:øíg¸”ó¡w€Œí…øEG› N§S€‘’1dõbX0æ7xN˜”’?´M"0æ?›”IÕ­NÊh·ý-® YfÍzMÛºpÝG·Ú!èhÅm6¢QçT|5qÏ)s,•÷œh ¡’• é`KNÅe›ï½lÿ‰¤°‚/ôÞÔ´”?p®§ÈÖ˜‰Ë®Ä‰£­ò"†JÈ“pTÉ*+œ¦tL±PqÆÕ¨â¦ÌJ6ÈT´Ð ®baäÉ'죦êI£aF¢È瀳Ûá °Æ@3ÉCD4Ó÷`b¾·zE¦3dØôS£àž2„ŽÞž~â|„"ÈÇ!õ’áä_eép›ÂQ¢Ÿ@˜ˆ”Vç0û03+ÉLýÖ€ñ˜‚A/¯J]äÑPÑ”æ¤WOz-Zu“˜¡½àÇY™Ñ6œ¾»vÚ™øïàh°_øÜ¢ÛïƒÙàcá&kÚq{˜%*yÆA}£ëœ!' ^bN¢™ý™Ð …Ò,•1g‘™6’|%u{²ÂåÄÈÆ¢"2aÚéót‚¯\í‚Ä{Ú,":…á‰ÎÁae¿êRâ³0/cÀGç’ü Ë8¿YTæE^ñ¼žx±éIIä¶HêÔ &0¡‹;ÓÆ´5“ô4Ì™¨¿…ç[Ôâi»kviãt#àÃi‰Óç¹Dó-2Ç×w¨›²ù1»ÞV»}ÓÞ®cð›ÛˆÔ êøÚC•{m‹T‡Ê%Æ:l?«˜N%Oñ§ö[Ø¢g‚ýæE´/es†3ľˆxΞB€Yó¬#r=BãuÒ)•¤µÓ]·Ûç†ØÌ˜10’€ŽZ À˜L§6 pÝ@~§—•¥œ†i,{‡|2XÎl.ŒH–‘L¤:~æì¢ÛÌOH”ÄOÎ&ÁpI௠¢EùCë5Øaìî0™%ñ=m øÓ" Qv£ NŒÆÀ¼¶@éD ='â=ùÚ‚üþÕI䈨gÞ$á'Îâó‡Ö}ṉ̃Æ,¨8v?ÎbÄà•üµÕ›Å·y ò š9‰^$i%4²G¹|hQ…ˆ‡Œƒq:£wI˜+îÍŸ"£qeàëe÷ȽAƒ  þЩq1üT?,½ÏŸIpôÿBó”¯ù'™RD‹|ƒÔ0Za}¦¿xâ¿|,òŠe훬í7e&ŸÉɯ’uZµ\0½;¬‰ZŽïÞ1ºyQžX^­ÛªÊ"Pgf¢¡=~Ç}é"“‡KQ^f6‡°ˆÂ í‹û õ¸¥VSÓIZ÷ñ„Έj‡âæ=3ÎMð§NdÖ)£)DÓ73KàéN²z #ÅÒÚùÄ+æÓæðÉy|›ÝÏýƒ`WÙ½šÓ%ävZhþ³tÜq×7ý×7´Üi‡¢»kÛÛo¸«Èã½P ¹À”WÔ\Ö4<!i¦]ý#öþEo`ç°M{ŒžÌê­‹õ¤àŠHƒµ@BÒOŠˆýõ¨o?·´7sѺeX#5¿x±hÔ>ÓÔZ] ` #eÿ"ä¨ä¾Pc€L·ç Ã#Sç#ëíò …ÈUº8mÒrK%†8p®†‚ýHGMJ‚W2W¬õ²Böt^êÓ•ìÅuyÎ! Ô0 \‡IÁ4èÅí¤5Î>Mâû Ç9²›ñ`Ò{°óŸÁI¿nÌ)BÈt…éÓ ŒØaíÍŽq$B‚/ªªY›à’~Ä?H¼‰Ö…~V·µ¸·LŠˆ†¡;ú\šŸ˜Ü¿n^ò¦A]÷>PãJêŸplj‘wIRëÅV˜kèü˜ú ƒýh¨ŸZÆIºá¶žõ¦ºÙO§ï´p ÐÛ‹sU+XaiTŸ‰NÖªÞTðl$²“ Û–*mìж<Š>©Ör/0›>3ü!ÉbÚðfS÷¾€Õ«á߉yæ±Ðb™VáLšîÎLÃ)$ÌEûUª(ÆÜŒaD3w:úr1»!<س)ÂKÔAÄ´b›2ð¨’Az–ZƒõNÎÌ©\ø,› *¸Ž5Pjã^±Õ­z°õÅ&ǯl±3F\5Öôî#ø=$Q•ç¿ó3ž·Ðpîy[¡x¦I ¼¥ÐÝŸ%òÚ$ÈôãU§Q©ù¤¯z˜·,%s4N7MË0Ó…ïiõÚÈ–ªö4µ¨W¦ÄÊnöLš‡LØMa.r%Qˆ³‹Ö¥¡”âp6I#*Ê43ï¥j \n]Q)塵Ñ\¦9£!ñ 84 Ô¬4ýq·jžšùR9ꕘqd–¾J2¯Z£‰=’û"Üúú¬ŠŠéÇ$î¸ €£.¸°¬¨å6‘0Š031™L¯(ã^¡Lòv”Z‘bCîÉ.X•üËwð††S*:m@˜Y|»žYö8aí4dÎ#ÿ(äïÆO0¨4 ¦¯ãƒn²ýÕ;dqÐ4: XÙž,оèÃ,ZmtF¼í¨£º0ìx(ùÃx3¡4aÍå¯e›Ãp5³ÂÃýÙdÚtHMñÛ ‹7¿æe¯I®Ó †Q6 ]e$:ý 1‰³s _ß;1b¤8O4Þ/Ô¦óö;¸ ÛËwoý§[׿l³‚à¿v>Àb¢/4ÃkQ\#*œD Mƾ(Vˆù¾§l9—=·}v\£CðtÇ›„²K*Þ‡™ìh¡°ßHÜYa˜L!àªíÉäòäÀ«Nº‚5ÅCÊQ„Ä Cÿ_2ËeAhK1"¹ ïÍŸ<ï_ÌÉŠù¥±Y9 óXËåÂò&MmE•`d”uOnÕ-, Ë#Rë<еÜt›ôÁ¨¦Ð»«0^®³ð¸‡„‰Â RêK¬™t¯ò¬Ÿ‘~•ÅCÆ)à‡¤ÕïVÈQÖ7@ú³š¦[´/ašÃìÖµ“ñŸÝÝÝÖG*`ûwaÚ¼šõhFM À}Lúü©E&L†ˆŸ³d0HYçSõ¨Â;ú!nñ¿ÌUFC1Œ"¶bü<ŠÂ2bÒ螺¬Õƒ¯›zÅ@ú°á-„ÝíŒje@VD-öÜÑŒ¬Q$¦±óß„w!ðј¾†Á˜¿µ&Ó¿nÌïXLâ¢çïïÏü§û‹Ö¯5YŽƒ`jâÉ‚|áÊyRï’œ7ûÂõèFK–å ´`EJÈ “靖V®”ŽB¿{–]ž= ‰MÛ_’´–D%®]Ÿê-HKKò¿Õ¹¼¸9 cd&ödU¹mMîÕ‡Å}áÍ” c"èùÕ*‰ÉS·äåYQ“²ªdBv·Í’Åúq|àWZ·ê¼ø8¡Å‚¬· Ò²IÏ7 éOVpÑ:qÆlL<{¥ûyY1]™„_³,VÝdí>²[×áÐ<ÃVd6§wn6ITMdÉ¿ÙÜcŸi¬¡‡ØËa<8ôoè_?Ⱥ-G,ËhøÕœCÿú_üƒmÜ‘O“Cÿ}&g†>‘]Ÿ6_2Mî2 GåÏØ–é†wæÉã¯_Sã/­cõdNû+Su¡Ø­Üz…””íë~J.ÉñÖ¥ûHÒFýÄú&x‘{úŽ‹÷k¯NûôŒcÐ4>Æxh¤†9·œgç:ÉÊCóA+ã:è¬{•Àž€¶jPq­²CÔããÕLÖ|Á×HšYqÉßó›X}èfîÿþ=5óôø¬Ê3¯ngÐþ!ô '$íþ.Â)×(÷óðîP:±ôúÁ©©ì%;嘙TwnÆøe4ÒÀ¿n_\ñÙy©}å_&É dwä£ wjž±³_Gtª‹ùsëçëWÛô¯±Àßï¼½á~©è’Q:’(ÅU·Ÿ¯»ý]ggŸq³tÑlñörûòÔð2'¡ogˆqOÁH¹EÅÇð7Ñ/;W!ý‹’üa?Uö[üô†v}ìåô ‹¨‹¬[î$ 2ˆÈ錣´s´Æ,}>lõ ±UŒ#h!þ–B®ÞÝÝ…”†=Žï¾®ðñÕ Zó^_Ã¥`ÇÌ‹éÂç$íˆNInØÏ¯ü­.:ÑúM˜°¼ÉȨ@ `ÉÎnÑéW°ò¢4Z¨’sª$Í#‹Ô`"×mgB¸#‡êXäoÿbT% °„0ÍÙ¡±f?7RËE2K?ùGæ{Àß[“Þh1Z‹Í¤ÅÕÛ{î¿xö2xúb9?ENúk—ïÛÙÏ—¨U ÌîÃÃÊzL¬ rmfê‹ ›€¦ïçœü/ØÆyT ·‹œéü4>Üe@ñp0Úb¿0Ù6¢ˆr¾ P×$o>÷Óælê™2|¸àÆ?üÁ¶¢„á()íþƒü1åìSän™,ÓâPÇR!Tæ¬Q TýmYlÑÞÀ­´/ÓHÈ©¥ÁKåOGó‚ÑS9ó†C¿Bú·QãOÑ8Ãv·\æ¤Ï‹¦Å xŸ·;¯ª,M'"å&í ?ð½çÙâAÌ6þ÷çÇgŒääïÌŠ|‡ƒ•wèi;&ŠtGçÜŽo˜C‹Ì3fÿªVkŒ]<Áx/Ì #9Æ´š!ªÊ‚Å£ÊC4€Íjd\ÇzL'}áÿ ¢àl6dú9œþE‹Þ%AôÂÆ¸ž´õî»°Àîî/Z`®×œÏ7#VÐŒiÁ@#2Z†eh儾ã·Ëæ©Æj¸ °Œ;a2¼ø¨½´E“)›6Oñ5Û/^p^)íÂüŠî£ž8»·ñu¹F·<ÚÆÈpêôqMhÐH,7õ†ÑÀ¬°LÐ'±€ø iÉ0n.ÕÂ)·µÔÄf¼¸$§ÍȘÞrV 7™{pôÄ&Û i¤Ð1D˜åyšÙDÚuÅ0ø€Î÷a”ˆ K€ µ¢ê‡ÍLö³¤ˆ„CV—½}ÿ`Q(?ößJìè°°<ë®>§ž>©-\paíXa)I,—óäAö­§>o()¢p©*~B…Ó%0*b,æ0“M*^žM›4Ú ¯R ?O9Ly Ù ©óîÃÛ³í5#q¥)ÎÛYFGC׎i,#ÿÓ¤m>͈;­É‘-åƒC"Íõ¥TÜ­"ìÛ¨é5ýû‡SXê}Q!-¯x"Råï?ÞLÿ5»É,*³ŒaoWù‰-ßx<Á[šø6½oG¿6ºÿ LëÞs»Äv™9o¸&qJ¯3wüc‡~GðƒÃ~qúîí+! Žþ—Xáÿƒ’ÄyïÁ1¹Ç÷!ùÉýÞÞƒ#ò ]û> ÿàùåÙÚ½ë/¦À÷¡ùG ¥HX9 Ž|°èXþ> ›Ã]_ºñO{ <|ù¿Œ^X踋 ñŠy6›úÇ=Ö!W{¬Œ#éTðñ@ ·42’aËN͘‰ó¤ù;Ö%"h£!Ø]ª‹l僕õºÍ´iÞ›jÓ Jw!‡jx›Ï«ÎÕÙqÛfÆ=ÛÇÝ0JaÆ@JÒbô´ÍI»¬ç:‰ù.ýÄÔ¬lÒ`G?§ô¼B]–Ò»ô"›RRŽfÀ`íå4߆ÔôÆÒ°G-¢ Ç—è³íª`äSvü[Ø"5Bå‘Ä„ñøÒ‚ã®§sÊú¸é¦xœùGå¼,2Î5 Hôç ™ôÆË´mÒÑR$‘tØÒ…%ç(”­´—…E|øpÚ¦{§9ÉÁH­ÝÂ÷+vQ%øÓ¢%"TøÇWÝøÕcœÄ]Îå¨ã}ú³äT#”ñ]Xà6Ä©žÿuß‚ê´Gšâ´®Ê~`ŒY?SQ¥i@*M‡Zaos‚œ7 à]XØ,pòA®_á…ÃLà”5÷’qôšwC”á%æ¥a·<Ï´\&Ù2³¶B<õ ã@ŒÉ0#5ƒ‚ Ì/HË# h¥ls”]ÕÒ”Jšþú`ÿ âÚ+¢È‡w;¢+p(çv®ƒ@[Õáþ‘ª\­H.Û¤¯óÞ(B''±#z/¨4ÈV° ³µxÆ0ot35<­¹ìtBÌOµÖŠþåË*à!B±ÂS\\DZ^ѪöÂJŒÆW¡«qD1vþ< 'qÏ3lECðO%X퀱²Â¨ARoñÅüÏÆvn[Ãã°í»0OÜnÎqz2:7µÿ„ØBA.¦3I·…‹c1w#oƹ 2IâÚ4·QŽ¡ü.FÎAJßZðˆ«B[Îsjíi@¥ï˜¾5ꥋžzJð ìϺþÞî“`1ÓQ®_VÎ/;ê|!V™¹Üo4—,GŽ’„‘Zw¼$9㣅, uÓPõozHpŒrú·Ó9_¾Jxi ÿ¬â´¨²êaw2-RzŸzdödÇ@¶6ΛïÊw‚ÄÛz}s}µÍÜ×öÇ&У·Úg¯¶-¤Æ2§Á‚”^’„æ*œDD©³Óà]Å37šç1ºæçÓ&/fq?ã ô÷YQÌ&8§_ZRÍf™ÒAѪfÆóï3ãûÌà–0 8“ú=á<¼UóâDv‘OqC}ztÝë\áoáÁ~€[ÈýNéàN g1µßÞîËçNPY†ÈJ#±.ê÷£¤ø]b¡qWvÌë!ÁʧêÜ¥ýòàå˽‚Óú“¥qG’ïÞR¬Âª aA²vîÀ¨`UuM…;(ÖL«ßRËÃùé\¼ùjÆñ,À2ž¥œ(ZZaiŠ˜£hymÚi³AV_t$sPšjž[o·OåV•å ì@jÔ/ Š—îK·õ‘§.ððÎ:àS’ÆÁÀÇZµ}öïº !™‡Ãê…øù´¿öʱË8©õËÝß}[“šÓ¬ûË>3È\áò[Ò[½ÜHÂ×±·#¹ˆqínñ’ÌFNµQé´5|þ H?ÒÏýpÞ@&ÈD¹‹¢±Qpñ¨ìmö&—³¼Ë4öƒóž¨½;4’×.M–¹Xª±ÏJ¾¡–ƒšG’ËÒShç†c¨8„¶E»X߆LymS™z&{L1¥©ÜûW§P•Ä…¦º÷êÌqÏBƒÛ†Â>Â8zX&U9aƒ7ôªŸ@²²U~BÛ¶ÏjVÐäŸO0¸l=ݶ!w"… †%a£Œ$"9!2¨uÊÐ4ü›¿Ô Ô¤-\ 72ÑÀ: ”¥ªrÛÐÓÀ#ÜÏ‘£(™ŠŽ¾0èT“XßS¦>iÓ}ÔGÙ`€‘©®|¸9u¾A2Ju ‘!jâIP5 `Ác!)Èô¼ÙÐ <Á˜)ÇVXcÌ´Sé]RdéãÂdWˆ)kqúKþyg†µ cý¡4ioïrز{ gI̶CÄÅŒ&kvø‹­åÛÌ‹¸¼¹änò/­TÙ ËÌßÜÕ/EòÔÀRË7@‘׌‹i\ÐÉ,NX±ÖííZdIgWÓ «ÄëÇ…ÈhC³ „&昧ê1ëÞœÇÔw·?4ÍÜ6éBL`iY ÖFßj`»K9fއ’ŽÖ3;³ÌAMüæxË èw^[Eè†6Þâ\Y¿zIÚó¤¥ÎÝXŒnT“¶×5+Üú],wLV•:e,ðælŠ3ÂDÀ"mÿw='½a ªÝ`÷e8ó'/ƒçOV ~8½¸Ô9åL)ÔLçõÎ7fœ6ŒYë–¤ËÔ&¥=›²¤ï‚  dbÉòvjò*L—bâc¦-Œƒ} ×½µyx zr 1ápqøti7ã}F’¤6KI`Îñ¹EË¡O_+£ŒuÓl*%9Íl³—,rÚáÝœ²×Ș/² °Zœ¦wܾt7½Äŵ2A¥²&_'YÚ%ïCÇ|hJÉ)ìFšü’†¬7Ã×GÅýdVlÚ›ÝÉož/ÎN®¿TnÆnÄåÍVò]Ù.Þ~ðꆄ4(ìØ«Wñ{îBëJû¦àóàù¢Wh…nÅô«V÷RØ ™·>Ç9­‚6Ï#qéÀÒ¡3HÆÀ“J¬Ò¦Ôpìb’âb½·÷°ãçš/¢û×«ãŽØAkTæ&ŽÉ¦ËÑe2~‹â!û‡ H3gá 7êó§V‘LRm Àh" šwß„ùÄQ+s<0®+L.!냗ÿýtÍU@\î{ Þ£óñ`‡ì3sŸ?7µR­î·®oaNÍBð‚ÿÛ‚÷Å á$J³¿ý¿Kÿ,úHm¢±¹ ?½ÊòsÐÒ÷“Á´Â­3²õi˜“ž”gTvø±×BRnÏ‚iù¯¹ƒeÒ1“IL*#ŠÑ÷ikÄÊ0Í³ÞøK§J\þíÿ3g§!‰SúVà ž 2ˆ>_ù·ÿC ¦²ÀcØä†Zcþ¡Œá=͆³I7×ÞéUß°6œï¢êïc®ƒ^nÿA£>Ñ%3ÒnóZÉoŸáÕdõ.è”%-D«þMÛí—L 4õ´E‹£QûÍî¥_Û{«õ!‰ñp9˜XÏY o’6xa¿oEÁ˜#r9Åš:,ÇÿôYŽÑ{ûb«û0‹R7oþ¨Go¶¼ˆó¿ýïI?údí–Á0ÎCüÒNî+¹¤f ¢#‡Ã îô%˜àKkš%ÔÆ 6’-"[þr_à4ƒÿºˆa|™ù:ÊI‚,T‚ŠÇÑ¨Õ Gé(Eäâs¶aÀ. ç"HÔJcÐ; ‘ž6¯ÛÉÁsÿÉ—Î@s[Ý;tlÎËêÑljþôöÔÌA6lI#6|äØS;öéžð*ZBTÔ·`(ÏÅÙG#œ‡·Ö·Å%xÜšY•—Ü ³ôog1I´%hÐÛŠJà<-^¯!g#ògyœA‚ˆ@à »œºF7âq?:@ðõ3è³ôwwõׂÞœ]í­Zu&Þ¼œÝ°C:±µ*ùQt$ªè3æ,*Á&,ÿˆÚ¢ÿ¿Å;'ýpÊ»êSaCYõÂlu<³ëÜ_Ùø´°ÎÝ8y "SLcêˆ'ï_î½Ø?¸rcÌÀ=AKøOÒŸ$ö q>ç'žºVþ¥X Ó_‚§»»¾Geí·EõwQR#_)œk‹4;k˜éÐ:ÊRF»â¯~mõŠ( fµÐÖŽàý$áÄqD…<]Ê–ÎŒ{fÚºgÝ)ü´ø\$eåÒA溡€ªé~A5Žqá²ô™ ^s€œz7w ~11zFVð7*g fIÊЛ4Y8z^œ’æ™À‚ „¨€D5sNs-*/ñ¢sÝFz¦‘ÆclÖCd Zhÿ—vŸøû(¡³ùíEÃÿåúJBÆ÷KçêFüI½½'ézŒ×A\×°ÿš ÅL}ëhPëH,¡é¹ ò2þoIÈÀºM‰p¦î¦“D‚öcæ}«×÷m]élÂñ}œvtì,N®·R‚Úqn5%ôÈi¥û¢-£ëš¤lÌ(ð­H" ¯§ÀÍ~<‘ŠÂD8Ÿmì-ÝѳàëR×šŽ§ÆOçM晑Å—ð†=„øœ¡¬>’¿_úO¿ Ò ”ûâª.Ô:èሉ›K…+—iƒ¾~hx?_\ñ§ü{.SófüõyÕûEâ3*ÅbZŒ¶QÕ(+ÑäœÚc‚Ø;«Iâ5‰¸Í„Õ@s«Þ.,.Üß°gø_|ºœZjmÒZoO2R•aÜma2Ь7Ž4F $A|j—LalFŠ.ë §í'Êó,o¬z@©â +1.áGm;©Þ\š#Ò /YŸ¼é±9öOÛk)Izð;ÿö?‡90¶'ÅÇ ŸHôÞóÙá9˵ÀÙÆþ¼`Ë/G79_•?>r:+>®:RzÙ{Z*ešáí¾ï<îÎÔl9£y__ ¯™Ì†ÍØdo(ç´E ®Ø$5_q6Њߔ–ll"RJÆaÖzqYDÉ@AŽ| zƒ1èÅëqKXÜ §<¯óÚÔ Ýœé=5®(tŠX_ÃÜõz®C fX€î+Íʨ08Ás“É{Î8ÙÒ —³ŒL`pd»l-ÇÛ„fÚI8C„Jˆ/A_Z4m‹^–~“¹–KÌ÷Þ&~}ùfºwïOârM&_äñžÒ·c»öXÀËäÙ˜ÎGž'Q0  „³'äwµßLIšß ž’¾q°Læ¹âuÛÇ×®©k‰ìE5hW¡‚x*ç š+ˆfœ‚¢(fÞ‚à£Ôæšjb-´^Øù®›²¥ç1ª™óP ñÖ¦¢þ]8çù^Š×<(¦µ£e>ðØ~šã€ŸÐæU‡¾ñ_g€w&ÀË“:"C¼§Až6Z3ªf‚Ôµ& ÇGa´¦$g„ À§{ßB³šÎò‰Æwïé*p£MZ|= íl?áÛÕ=àôÇ'ô¥ÓÚá[˜#TÁÇm¥^éöPQ¹™ £*Ú‚rXĉ„fpG#3ŠŸäU \ˆiú 6÷ëê 2w¯ÀeR Åf&HX|'„~ôLWõb›ŽÐ³i§yÁ¶æýFàº2í›È ±êìœ]ù×3ÎìÇáBG[žáN"£(¡šIU …& iÑ^gÉŸE>FÞ£E…å!ÄìÖȪ–DW<R.^àô¬ùþÝ5ÎNGUŒ0®,r¨Œ£y7‰µ7ɄǹïÌæÀpG¸• |}ÇzøÚ†Í²˜oET[îϤ`ÁU’å&ºõwö-%8JÅË*aä&Ï’¤$処å5\z¯–§P™¨[ÈÁ4«t™‡5L¼á]‡½w_4`Œ€*jp ï]†Ö±n`Ú¥ïwû¤‰h$oŸüÉ ûLÊ£¥ÜRøÊažÄÀ!ÇðØ÷χ•ˆ$q`±oLÖ˜4xC‚ÞƒÝ]»‡CãI#¦4}Ö_}«Wmõë–І³¦Ë"Kn9{sú¿ÈÍfo«Á½ªÅOލªæšÄ)›“Q°Ô•7­]*ÂàM’¢Î­ö& IzF“é€VÒ˜?lN¯¦ýÂlÌ”ñPülGŠö 2„¹ý¡¢@”’zXçVã¿5hÀœú(LIV]݃Y"Òd)óPƒuOÍ‚ñ•Uò¤sæo©=uΚ'£ï~ŠÄ…RåÄmžt?ÈFÅ^ èú¾ÿHÚóˆˆ2fÒ,=ƒbË/0šYˆ¤ÚÈul¬ì¥»ŠiÏ(c’úùT97©xJûÞs¶Uí-DÚu.Û°$B›ÙlÈÂ.ÛÔ€ Mfþ4ÖøMخֲjMœzŠP·„3`„9ˆi`ŒÞ¯U÷cÉ'êJu]þcÉMÇ¥¨lš.a- R}+“ÙrŠˆøªIkÙ/:'úíR¥¯Ûn.ß^øW—×—7çgŽGé<<}3f餬òæ7ã*’z!ûÛ °¾(j£?\šîQQ%^€Í{ ÏrïÑ}><²rÍL¤ë¸ðëÿ]ã¦Ë»¸ÀYóÖeøvvãó[:‹šýœS–÷‰=3•¥ÊÚ/÷¬Ê~aoÿFÂSÞÞÙX62ó¼g$Ÿ fªßë:òÓà8n!¡yóu ­ÐÐCWág.A$ûöâGGBéÙß|&ß«¾Jò{L¼3eBMá—¨·.Û…—’G­í*²‘"²õ*ž!¿7+h³¬Þ£ ’@.`ÙÓzËD_ÚùŒví8@Á‰¦D4ïE5{ÓÌ[8AgUS\‚:Û žÿJB’r”Š›?kî¡§Æ4@w©E;b(F˜1 ¶ümœ(ÖÁ¯Á[ ™^MJ']¬á1ÖŽšpõ"ÎCð¯ah¢zíÛ0¤œ©¤‹Ù´¨¢%iÁ:Ñ F"{$ìß‚çgqè› šMëçcÓ¬åÞ:î"[§g§æTéšEF£KiÁ¢!v É>1/ß™TºQÙý ÷eqÈg}I5ô8zËYCÀ“høçWq1m8Pl^f»! êƒY’4»ô¶ie GŠ£5•ÌÆC ¶ÈaÎHçNj¨»®eCj°6›ÝÜ{õ¹Ê¹g, Ë35dXn\À`Òvn!1ÊÎM´Â:ªr·4fŽa¹å¥9 i®î\ôdjñR“ó6®^ÐÍ9tó`­' š4É=Á‹ªX-'¬HƒB <R¾:XffPÐæƒE}¦ È@¬Å ´âãj¹+awÃv¸U)Œ¿¢bŒÍq‰·éÀ*7ßl&ˆ¢z/ÅÁbÄ{µ¤ ö154äŒW ß½L…1Ä?…Z¾ÅœnÝŸÁÜ%™X@ü—iuì°Œufظj'-ÃÄÀ®a-k¿[ëq˜‰Ý=æqïÎ]Û#ÝžFwõ­¨V±!m~à~å, «¬)Àv9Y}hÕ- 8_fÖ‡ØÍ˜Ñ=L=—7ÍÈR´…^€ÑÀM¦¦sòÙW7˜ÎŠuҞݚºÑÒ¯4ÅsÐãnÀ´W €ó xPgŸsÒlôf£ŸÔ6 Þm5-»öö²øAªV;ðÿpYºWí¨¦ù—¤ÿl~Àrr¾¦ á±_½¡&àë¼ëè•y4ÉJƒ) Ÿ¬Jdò±è+ÒÉ]}?·a°¼NݽQÃLnHBL§üëï7|å×aÏ×ña` »{cæ´ç“lp1­kʨ.ˆjEJÚÁ¾[ÜÌ3k©‡^/<É­Ú$Ìf?80 À8”WÌ kP^†$Zž¿ÿ4Æ´Á4æ ÕEµ@»äç¨[¥N®qáA“ç0â†ûO÷#g:­3¯ü_x–'4ÕºÀ¨<àˆí½}Z¸Ï£*D‚Oª¦}Uª ©5X™þ‹J»™ :áb%moø¯nÚžñ03ЃJóþ+#Ôé÷ÇQ4 ¦®íÎKC]ÓeGV–B}T\‚{¯†1„<¬é~cì9 8Ë=bäS+a `6Ž*Òû9mZ7Ù$œ3ÿ(/åS+ £nAï~S%ìî‰ûÁ u"-ŒÕ) mÐíóFµOÇTóU®JGÍn|šºJ«s›‰—epêßÝÿ,9y¬Ô_¸à:Õæä&_³ì€˜¨d§ì<Ä$TFKh Þs\k§lD6ú.ËÄ®;ˆh¨¶Ø¤)WèLö”inÄLaάÉW×ÊðËæñcµ°°SÕŽtä¿úgdx·ã0:ä5TV`›íƒ·™B_Ÿ¤¿Ù´’˜Í,!Ö3‰ˆÃEŽ’è$#j«s]KðKRõÖŠn‡–²1.í÷  ÇYžmŽ P/±ž³i4Ù'žªp*Çó—ÁÁêÀ—­AýhÀAÜ**™­ÍXïloÉð›ŒB^I¢Îý-3Ͷµ‹k¦BRzgéÕn|¤Ëè+ïHt«×0äœEu¿¶ŽÔئQm–æ6€$0w‡J†¥ªyî›JL8Ä,s01­Ö¾í Ìä—1Ö:Ìm?Ç»Éh’QŽÃ° }3›jñX:!0pAõÊŽÝ ¨Þ_è2 ç×Ϭ€Æ>ñ÷^.­L^aœ[4gUh4;(TkyM"y–äJA{±y`•r»3×u½Â©6Ñ%¤±#.Ä®©,+M%ƒÉPÍTkÙê³gË;{w-731&®K´dêdD®©wi‘~ÚоÛ÷e†Ój½³GŒ7†O½Œ÷U–úá„tæ@¤f8SÄ£iÌðÛ¡OM[®Pà ~F%O8FZü8¯²’¦Ëµr ô¢ Ĺ÷çÌ+ù“¾¤¡bs½gÖ'†‚gK€šF4p@Ò%¬¿ÆX… ziMëÝðSæÍ¢œÓ-]é(³ ™ê÷œ ·ƒM –·hÐŒðÞ@2àTí"‰ZffB(bÆ ¦m÷ˆú¹YÄC×ø'³!@ñ5!†‘!m1j•d ½BL2 ŸGSÿùÁ¦÷íÿJß^q¬UÝHb¸Ä5žšZC gˆèCÏqçW Ø!%7î;Ô´5I ¯hYäñØ¿"c¤p½1ý“Ò ?M*cÄ4rô™öÿˆ$‹b¶h fq¤™I£iÛ¦¤‘á>–çݰ;û›ì®H»œh»›pÖÕ8vå¿ü7´b8Ôö(ËÇV/ÍãÃC/x³Â¢QÂ4"Á5ŸÄÃòã@?¶¨ïFÁÇ-÷h òµïì_þY âÑ ¿Õ~ŹÿîYHû?ÓIæéÞ"Qæoÿ“†¯ÝÿÚC`É®ÿòEðrA—ÿ±$Is>-3å7öÁ§YFÂɺ"ùÕüŒZMuôju„N Ïáˬõ„&zTIb¼’â\»* û4®HÙÎÕÎÍU§áÿòt÷eÃß9nø×Ç{¤OŸ=mø'Iv7ˆ‹QÃ?8;ïðÞäŸw${r@Œ–ï» ¢„4¤µ!ÄŽ²%4d¥ŽlaÁ@á^ç¸se».Ö“ŽOzÇ7@’@ÐÑGþ¡pßo$óý5šÌ˜Ûc¿¸M÷ww_ì>ß=€¿ø!…s¿ ½ç´ýÁ§›‡#áÇóëUV:¨hׇ²©t¡òåÜçÄ‹0æõFࣷŽE<1¤«¨–„wp¨Š£A7RÃ(Á¤‹‰ÁULeÙt§íé ¶ÚuU ,ÁˆWTðùÕá%M¦;©;þñ{:ÛÙn Ìz§}üþïVÀFØfõ"„iæótè¯Â.-„È?¡8-k ?]ù¡5@>v†¯èò@­!ܾèú/ž,âô×äZ=¦–2y[.sqÜ,ɺ&DGÏÁ¯­Ø«*Ö\*gÆ‚?û•¯@bb}Íò±4ô£M­«n fG_EBK+;¦©-ÍRñ Bð¦5ÐS1€i9PÊÒÏÜ€íCõÍCűfùTXæÕ3VÃZu§b¥ Àª¤pÕ2(6ö½m]‘³ÓýXZå—˜‹öUhÔÚ¸=ðàôŒd ©‚–qT´J#Åãž×‰¢)piö¸„zÈ iÌ]å_S¥®¿êõÿ°&Ô Íðo¨þ1m² çÌòïóûûüþ÷<¿¦äÁY¾OuRÃSu.tZÛñ(k±µuXe"©GéG,µ€qôÔ#–i¾Ø¼*7Êã Rn$\àP污þÄ`pÚEÅÒmL¼&ÍèëçMÀ»ßâ©gçì0+gÎ?vh›b ¨xA஑ *®º¬E-—û·HÄŽ‡)û¯ dªÑðAîM‡3ú²íØ)LAÏ*|Ò• Q9®ÏH ¯°`Òe…Ö(¨Ô“Na3i\b«Â‡›†ø[ô­fvB´Ë½Ù¶ ‡ý9ßÒZ‹½¢|ð™b„©3,¹ÍãÉÊßcCkçá1ÁìZ1i–ÃÏ@þ˜Ä7Ô' ý¼ë¯\‘Fä~éÌû¦o9/þš<üž×óÎW>"`š—"ÂÄ¿-©bx¹Á†:ÙÄGó3½/ mûæK޳’µo}L’<—zðåýÕ¯ïÜ·®¼åX°dÐËãðý©ù¸~f¹² ndöÚ7±Nl½[_›sl¹«ëmfѱÿ’~mÔº¾Ð/Æ•Q4X“ŒüÍ{dFzõ»³“Óusâƒ)óÀŒX¶MØ;*……Áý§›$äÜF€&ÏÓ—œ±±áñcyŠR¾X0„kßÝþb³÷;ûµ&«2Ö9¢ïPÇùø±NÿU“—£{„Ÿü%NS~ÂßÖ(++À ö$Q×K'Ç4»õ†ô­•2ÛMüXÑëŽÇò×ñ§Éã1°ëäS«?Ù ¼ƒS´{á¤9žLI¡„³›æ³àÙ¯ûôïþó_±dž ÉWÙVÚ‘ÿ¡sB£Fuœ†ÿ âú’:+Ãê’’>Ì]õӓʸNj'®ˆ}Àûkvô•!šÌ(§÷Ù<Sëùý4G;&üYtÚKžñfIe¿ëf6Cšñm–9¥äÊVÙ,™ƒx“ÎçÞ~ÂyFKyý7†¢ôg }玺æ,¬°ì*û×S7G©=g"$Ó³#Æ# R— °Œ‰ƒ:‚ØÇ6rcÄñXeÍ…%y)06.ÖÖ£~Û¥Mó™¤À ÄX-i¦“¶„Å2î'ж‘Ÿ,-zy<-¡u1®Oéz%?ÅSEÏØù¿‡ãéd‡gÈŽ¾ÚÎ:`<‹~‘Ï"Zm½c• ñmãd¿¿Î²2dð?ÿÉÞbÂY\ŒiR¢„Ðÿ:â¸Üà"õ›Èx†ÖÒ‡?¹¥d¼#k”YÕÑÇ#À‡&Èßä Yލ`O‹ÕЭé6``U<Á3e DßjËjæpnd IÃÕÇ‹˜Kþ~Äáý}o«ó¡s®w‚ÏŠ„–[g ¸óž¤Bý37;CÝ޵谣eZÙ…ôèó1 `” t¤ßƒÔ€E‡ì‹ ¹ÒËèö>}õèæaÿ¶o˜Üêc )‚ú÷øì'𯒣Äô Ѿ}¦Ãýž ÙjÍ}’匔æOR/×qóiPQ½É? ¼ÍØ4ÊßÀ¦9—­µð«ClòpŠÙ·<1óþ‹Eyê½\öŠ™Óè½4ŠÑ¼¹\7¯¾TŒßò}ÔOdÖ†¥ë€–4iOBapw¡Oi«kóyÌ‘{lõ¢BÖC5¿mÞÈ•5“ð 3öTÑeéõé[«~̺›eÔçy%ŒÖˤ›ïåj\óž KGœƒF“¿'³‚Ó¤{бiÛÈݯ¼;ðezy•ÿ”®Œv ¬Û¹KrEÅùìÐÔ½†y'EÎRœ(áÙúÿ³w-Ým#;z=ü<ÞŒ}¯Å$v-èØNâ$N<’ÓN÷æžY’hñ¡áòüëPU¤dGé‰{Ñs®úœ´I ,Ö ( øÀ_刎ÎíaEiPËy^r\@1SKWUÞX• å¸ä˜V™ó˜£~ª …ø¾D4< €é.4w²¹ðúËç¯ï9WÐÚìÅ1+]©8p]X·iáâv”æÀ€re]ZOaFlïžÊBÅÐ a‡„G®ªf"³”ï]Ÿ¿Wºïqâ Dº·Jv-â\äÓ¨gÄG£¢œz8¾g;½94I š|SìfÎÐe 4—7¥¢ÅFª_MU\,ÂX¨Õãº;ªü$T_?{IÛÕ{˜Ä¦ìZ¼ºzއ‚ò²}£uµJCÉÚTP1<—+’PJ I õ´ ÉžK.›äo™†BåJ1‚Ú3>v/‹wyâm’ub2~ ºQg;ù«; Ù÷V,íûöÒĨÌÕ|sàÁ•J±œ¼¥EœvmKRXñ'LhÓÌ”C:`§ªÓÉK}ͤWM'wØQLZõ{•eЦü7Œª`Þ”qÓñ×,‰ªDH~Ò,Õ2>gÒˆtlü~*ë…ü쌱QWHeŒÃçë:ô@‚}N ¡ãL æ0óÇ•#^1p;²°è&„¨s¸ê¾ô/á Æ8VÕÉþŒ v«ØÁó_š Õ\+fp©¦w¯š»ƒ“‹=Î[XÆŸŠŽ ®e½í?¹B¦÷5g_©ãq&þÙñ€ÿlôS7=b©[[í&…ŒÖ@¤dÆùGŸ4úì"îpÐäÕâ±ÀÃ%¥Ýf€zøÏŸ¯o6sFúýS\Ãa—Ïà»ç•~Ø”/1Èž @ò¹þŠ—³·éG9]Û”ŽˆWË·Å­ß‹Ûp’7­]áxJ‹À@ez Ðy]‡@YŒeó8q\DßëÞU¿Øi±À4ûj¼.ŒË„³wL‰k¸S÷óÃAcí‹­žví„¿w¥Ý×[×q³O]/áïÖý|öz¼ô_¼\ïø#p"Ç‘C–>O‹qi½ €C“²–`{üV9ŸîȽ è¢M¾j¥Ê£‰@ˆÏùoˆTö Ò5S¦A¤ÑHZÍÊ1ÎÀ_Ï^ûϰ~?[_¿AÃlÖdã¯ý”+ÎÞQ T¤HKÆZEQ²3öv³™­Ä Ú)éîVk2¸¯:H¿´DÑloßD1WŒ©êíò•þ—+æç7HØ¡ÓΡ UÿiðL,;k½q–Q{HCb­_߯‘îÆÚ ”n çì^G˜5.µ×-½ÿ8-mÐN4ŸÖ7Á—î ‹Àë.ŽÙ³(ëâRLIb:_Û§êÀ¿Lƒºóƒö ’¥¾žH¼áåñ…ß"-ZÖÙçÓK—¶ÅÏi´mµÕªsŽYKFV„“å­NI+ØbÑ{Ö£Ö˜8{7Mñ}(TóqÚc^ꂃ’í÷ÛÝl¬Ö"w%¹Wê q'Íml€Ž¡ •Úø¡NøAð?æA8jàd`3«ü†ˆ- Ç—ÿþzzyä÷oäAP¤›Ö*$!h_ùé’1h‚‹_¬Ë<–ç¤~ £Ÿ³bî¦Äý_¬©€#¡kke}ÞŠwÜbÄ<³8 ›á©9Y>ã­ÁY˜c‘ Yqó@Á4Á„ÔBD»yIÕ¦^sjñ–[‰m/O'1¬·‘ŠÝI’yc¼c<Žá2gmºñÿà)àÛûŽ|¦U‚ ÇÙŒŠ±Ç¡–n ¾V‘nxxÕžúÓ¨ÿ SÊ)Â8.i_JêŸ^Ô÷RÂbçŸ2” ©‡eôW¤¾¤î5 áw§Ñ_¯Öfb¯Ä,tó€Ûm¶×±‰‘ œÐaª*ñ`sIÇÇiž›ò];`’ZÜùðÙ])"?7©ÌL‚c&~Ù¨®Ö]Õ6Oö½%ǵ9dÅ匽?Å/ÃýY^,h1ôÍjź»+²þ†3Ç„¦·SçOäÞ9w숽X+„º ª;eßßOøÝ|2slþ`téì¼ Ö"-Øáj„%˜‡+X‡“Ý´G+3Ü@YtG:¬ùˆÚ­Íj¥*OP|0·ÿÔdý»M†jê³öòÕ«à`MO96`@…CixÝÁDeZÐBcÔÅh¾·Qˆ¬xV„e9\183®ð+=6SÑyfùXž>Æ3¤0œÚþÈöp8`Í—Fè˜ØÏÒØ ë[ݯ·3º*`Ž•lôÄýcn!ˆA†îÒø%¶IIdÖÔßßïu¦ÓŸW«›ÉAþÞH$u€ÌbÏ×ÑÎÏ‹¼XE2Ä[åþ+àzëQí™,‚ÀRyqpÏô4üíÏ9úÚÝ®äKhöŸÆïéŸØB·1t˜Bí»»Éy6(Ýp *Ïš ÷˜!‚*žþ­§ebÌ:{uxLEiÝ=W]2lý¦ƒº}Ëÿ„LŠÀ4 ›PEÙãöœ‰âöLþá/÷ˆ Ööƒã‹'’#Ex -ä“q¨ÜmÄÚ÷¸lΨý¹W)ò¿ÕÓlÇ8¸tNš$#,ñ¤Ë€#œHb0 ç ’ˆ–4lŽ ‹IŒð^Ð#ƒƒmœ[$Ë©ÝÇVG¬æ4XùLÂaŸÛ’Ì 6â×SÏb[1àl‚ á#Î4¢ F˜-”(©Ùfÿ¨öÆIIÕ’4ûRgÄ‚ÐdÈÏh›#)»Ñ”‹ŒÖÊÙ¨9•gc£,Uʨ€-Ýl« &í€ ²Ÿ˜8òá ’³â"‘ͰgF¤®;;Ñê€ùíÖ+n=U=Ã;?:÷_ÐBÀZÖú’Ž#¬T6êøø°mü‡)%ò¤÷q¸{¯UÞ<ÚöÙÐ AFWÁüÕÏUÀ ò•4¸Ø~J’Þ›ˆnÈŽ Úlô»‡B¹-XŸ}¿rôm,8ÇŽÀUWKo=Ý]G?‘ÓBðÒ0¶Q6¼[oÑ éµ–ÔNH©qc•TÐö™Ç~ È ËtÏIJvø} Z(d2íá [‡cȦé ²Ÿ›l+Ä`CI.?ä|¨xðÏ<'ÿq¯];vÙß2<Š%&SÂ9ý¡¨# CF:þ~a»çÉm«ïžêºÈ{Rìƒ~á˜Ö‚ÂiÙV±Áñ8½ôœyí½É…§gµPKÿ§EÅ’Ž~y§ÊÆõØAêáéÉ2WYùŸ¤`ð­Éh#›§]à8!™ËJè-W ¶ˆ‹/lŠ«]ö-ÀÑ%O¯ŸÏ¾9 å¿ü“/Ãý@šØeß{£¿ [  ¸¿7ÖÅMÕUCÒµàÓ†»0×5­rp†ƒ_ÝϲÚíM 'q6ƾž¾xÎ~@4þ·öà†ÅÊWóÎPvÎv9é' †iGîr(5¶Q$mi.”ï"CF,«0–œ6úIÕ}q×@~=ö°{ÃÅó=«26%dªîEE €CI±!qEœ•£MgØæOMn9͘=Œé2àh>îæ“ú6®…êN;¤ LiN@ †U4¥Ÿ?ƪ¼«8ã ©WOýׇ´[ÛÇ}ëíû¿÷dvýÑ;§NË8æALc`ó[à>;n(rÕK Û=…ÀTùŽøU1Z[˜é–ÃϹ³mÌù϶©¢}ÒRà÷©é xµ¦Þ^`q›ÉQZJjt `|±iNü,Ö¸)¹ƒ7^øÈaü ó˜ˆÙ˜ˆ£/ÝGÐR|A QSº¤ÂÝÏot£Éú¿ik›¼1W÷6ŠiîŸè<ÇùñuÌígþyô ¸0i‡‘å,ûK6ŠfXzX7Œ]gÍ’g·×ò² «²*d7úÍe§Y{åç«›HÔþ48ôy?¬UÆ~ÂÔ—Ì8íü wJ3Cr¦™[Æ^®à´QÿóŸâ¨i¢%¯½SÆ+ç–¦ ~?•% ®Û ÛàW[d ™ø\¨ k*Ú5 n;þÑ †À÷©º!É8SÈŽ«ÄwÖÕÀ/Ç4Éf?ß¹¤ Ò6䀃Fž¿yr|övÈkç>us’›ôGG« Ûâàz… :#à Jôº© j‹·X“­)Èc§9õ‚['¢ X¿3¶uoëFº†ó$ù¤•+Çákõ)µ…ߊ4pRi¡0~bJð‚‡¾s¦Äi{®b{Dûï&¹÷D×Ñþþ“*ÞÅÐ`‚$¦±VÚ¨¬²×à>4‡{v½)>×6mólz,«Ì铃61[:û[Gððà Ä$ŰoÀ•©døÀôâa˜® (# j±ïØVNEO•½ôm¹èî¸á$£Øša eÙÚÖŒ¼Ez<!_2­fàý‘C„‚Š(ø?È$åH¾ îÈîÈ)ÿ’”ª&=õWÿÙ/¿xop’<õù¿_…GÅfáD˜íÞéø–Ù¶Ì¶e¶¿ŠÙŒ'Ûw–6©£XÅý¯k®O–²-ú³œå gQ#¤=ò:ŽYÿìåuØËß²×–½VÙkó’¶e²-“m™ìL¶Hrö¢úÎ"ve~6AWìVéñ즠^ÜRòãŠ!}þ?õÇf©óoÕ+¹î¹‡°<{í?? ^­™H†GŸOýÝa¤81À‘K}&>8UÕrÏ·?œpœq× Äy„¿Rf:.­2ïHl2±éž$pàÜß±]éí †ñŽLᳯÞv¶•›DA’‚b\’î!+¢ß=(^ð2gû>{D»7:UÙéæ=5îŽ^ë6ä^©ruç¶}ÓßmíWÔËL ʽ}ÿÛžxî÷[[Ô ©iÛÊ|,Š™r…y³XÛ“ëþ¶g£Õ®jgY”KT…Ðô ÈvdëÄi:Óø¯˜ÑÊiÅ1,Þµ ›8PЬu2%®ýMÎr;D·ƒ£!e†hÓ!ãy'tS ÎpË%±B}7RMo’¦. '’|t}] ™ïB¶Ì®Ç¨·ôp‡E|¢ßÑÿUØäI/n¼•ÆE9^)›i‹´º–1rqäE]*b`.áñ'"#%cŒ§¯^°<ʯꦮ'´ZÝ+ØîýœÿJs&ÎuÒÎû†"@(Y ”Ú9ží€4g3ªò„ZßßèH®mׄ >¯*ÈšÈ}–(kø “Ù ~ #¹ï0jH,qÿk&N…Gx²âDõ¸ FûÇKœ¢œÞ¨ ‡)ô£‘\m2yå‚Ví)äb4—«0 IÖd´FuÞ4”ø"¼á(Á;6Cz¢ˆ$|°.àUe®pb† x×_Bø6ð‡3 õã ©u¤ä­S½o&ñÞ‰b‡¢þ(õì*ù,Óu†¼t^Tˆ¸FmùAà´N!-õ°Ze…*ÇL]Ù4.\o7-O’þÇ’G™èù>¬t¦‚‘ãSÔ ­»˜&é¾þÙÙuž‡wÉjʉ{SŽV.tIŽþ5n桞Guuw%ù ÇcF Š9`ðº‡S}£Vø‡uòO“Šp€ÜÀ•ÔæA›ÄY¨sÅx@¤&Þþ'ÚQW_Ïb¨bëýò¡¿$[å„ÊÍCúĬkuˇâ)÷ßèÄDÂ[+¾JÂ|4É‚*ÁIXÕ6¿jà¿I1c¨äQx=âëvœ?’ìÀ †OYNøÈsFÏŠ1Ë]6¦{O³äÎÿðuúôl: é_Ûh¢ẢR”'\îƒ1߯¬­Õà U¥– âf¦îÂé’>Šô;ÖuÂÒ.•ÿ¶™51Ó©qÓ„Y3 FÉ$ÂA®[b}“po"" Aq|ç'F:w,vøGiJô¹PÄc³¤Î‹ç/^¬͹ÊÒ‹.h.Чå.à»°¼›Ù¼kp(H ÚF$·:rGÆêMB÷\ N“hJÒ“fˆ6W,@°ÑŽŽ’Ò¹·A“ µÁƒÀ>/¦ËŠ8á+qÂQ3©˜NNÝËur3HÉbN’yðÓëÏRŒaE?¨î·8dÖ?AÚqXªŸmnмB_º&eŒ]ô@SáYRv{´&U¡òOiqAw&÷æû°®Ò iœ\9W·þoÒOi+óh‘ÜAV/IÓ·Ai“æeÑQCŽ‘¹©Ó¢ˆ¯Â õLZ!xÐÚKŸ®ªd\†u¯ÔìžØÖ˜Dlï5Çô©œ9fF˜“àk8@Ö–fˆ?ìÀÒòZ.²ûDL´ƒB§Å¸&5ôP»H')•ò6!‰›0ÝŽCÌ–˜¶u0)-]]5eã™Ñ†gI×+ä2iL“Þ´è²Çg‘Jƒ¦fI'B*ÄB„%ÍUòKʺBªž¾Ü|òÿ{q· ׆b©,3ÐEê´¢âûP²(iCŠå§à•¹ß4Ã.…tOP)ÓeMŠ®^Nų¤½ÌiU¨@ËOH%MJRÕŠ‚ ÍÈ(ŒèpC‹-ÝôRDù]§Lø1)£é„>ÌÙù„~Öy¶B4;‘˜ª®°~‘€Óá´É'å²ã.@b‰™ðX•6s~ΓkFçÍQbǤb‚"OiÇ×<éFrNÊDOHíI³êºÐq@1^à÷©i:Ô·*ªá¹åÆg½Ê¿*RZûƒà4àËðMR_1ë¹:(–þ$DˆªX†,5¹¤g½éã[E¹II£GŠØ’Ú>dw¼¾{ðƒ°Êob©[ú¿¥ª‚>qS5¡JkÉ€h¹~˜`‡ýˆ$¿óJ'›fPŸ79ï;*ÜÑ‚»û+­ BÕ$zRV‘jýéÍê¾ïrÊΠâ!IŸq©rY‡WÍÚo_Ò.îvp¡îâ˜càÕ–OÚ!í\z@,è*”~åN­†ªdŒkÿR•%Âaúu-W¡¦…¬Ö$¬(»,i¤´y²ªxMÀÛd é(T_Ó´„7ù0™Ð7©ÍM%WÜf’1ã šZR¦;(Yw¶Y>é·‚›§€~¬íg¿S„M@s¨nØ q í"õŽ_”ÞΤ(â±…IÙ´½…\'eÆÅfŽÀyê„+hǪ[gÛš°PÀ™lí3N3Ãç­f8X6Zý¸ËÆ–$àtuĈ櫖HÄ‘`Kn8,r7 t ±µb§d;cëáLËcü$æØÇ| ÷êž$1— Õº±”sÄæ@ÊÐW2‰Þ„±HÂ>ïË$ipïšþœ6…Â8tçmž[¤¿`ˆ =Æà‹@Ÿãáb|öØ!…,0ì›Í‹<¤­²Ã`A´¹g'„ò»ÅˆkõÂB u"£nŠÄ$èô"wTÄèÜŒ9b*K5¤¢p#R´ì„ ®ý 0.Öi:žó#qdRq/U¤|&[9^<Ä|ü9o绬ºãÕ`Y¢¥’|ĈÍ7­ËC—żD -ÏNâ_Xi™£R¬èf;Lhþ6'Ewv ¢[áhn”øoò]<~U ðÜe‹ÖQ3ûû£Oþ«§=Ó `K~QÃ$& )'ð»U6aD¸ Ëù¤×­n·ñTDÁìèp\=ÿ¥BÙß_Ø„=A›ˆÀ‰²²#Y“D-³3·À™™ÝlïLéõQÞ·„² 'ã„0¤;û_ö®f¹IŸ]OQ1‡µCÖH”-Û>¦,™–(kLµÛ;— °² Ö_×hêyæö´·~±Í/TI‘’­ž‘cc;¢]% ‘Èü¾B+•*Våg`ÕvxµÙ§ m¾±Áv•“}ú­K;>ŒÂiõ@A/:/܃½Î1dïü}£`}:Ñr¿ù"ÒÓ,>“©Yƒê2:3¥>ì°ò¶õq?ãwÂ`k‚ék.'޳¨ºÒ’ÑÚ#—6O…¬(ü5ÐÀ`xáòo;M¸L›}BÒÆ[¯¿—–¸åµÇ4Í@v4y£´†ZÓ¢ž;¨N=;ÒÖÒ‚[»SÉîôg½£ã]¸Y·@äe¬Tö½ìÆÛvñ}Þâ¡ ijî^$“yB3ñ ‚‚œ‰%NRh8³Yè¥áX†÷³ù~X›óÀ=`ˆ ˆžËÔ/m=)ÃkpZ@/W€½Ó‚Ûí”@í’²´å¶S2á+Û/m?âOñÏŸKúÜÏ2‰Ïge|£Ò–Óžáâ¶ç´Y¢KˆÇÔŽæ¤ç|¹îˆÙ$èR"}¹]Ó?:-+¾¦jÒ eÿ£ŸÚ]H¬ø7¡.]K[Ï{;ékHQ4×óËdŒRà±'Êryj)Oò¾Ìð^Ó\³ê²ýMÆUp±óš&´eûÁÂBûKUaÙ²$¬ßñÈv8ãiœqEa^Óz5ËÀ n€†V¾? ÉqO…ŒRÚ~Îç|ó`f°\|븠ÿy¹ÿrסЅ–r¿%ƒ•Þ¾m{°Æ–ëêUuµû+OïÄñ¡V š)‹-ÿSšL#Fý ÍvO~ÜÙt*S?›ØDÝ*ñµc(f =l@š©ƒ;›ßL1cÃíÓÀ/·qÌ·`ƒÓl…’Aƒá¥ÄfÚsú¨`Õc>Ã’‹ú½VÉ1¯o=Ÿ³® T9µ_ n>N]¸5½dÁÈtejP3ë©Ü<õ/éªP麣¯š(vŸzwŸk*o MöÿúW×â7Ð> wãWš^WêÉM"m2ìÃmb±øHkÕæ%›ör‡âùÛ´¸!ŒEÆ$–ÁÌž7*Â~ÕX‰UpÅÿ~©è5p‹<ÖtÁ n³…Ijm³¾1Ær en)ÏÍxÂÞôN._! \i[ær9Nà ý7‹c’ÕöB³0Ý2ÇÙgj]bÞ}I0™Kƒ×UçCÃM@:=(*$;‡Æ|ÔØÉÓÞu¹ žÇ_‰mßš§¢v>õÇhxt¼u¼_îÃã$)ضsûƒ¡û.£ÝO…K³µ€û ?×¢ÀÇ& ƒÞ`g1úÒÑh‘šº ¥>\^^` 0Ô%ŒÌ’q™FÖ 5ØâàvØ¢t–¼ 1ËÖbëý8CèýŒÆr21®³•z€Í ²A2dí 0ÒÒÁRª0ÍȆçÐŒW1Ãz¥qûIÄîpžéĈKË9Ä T„?ÏúËÁó²ä¾Š˜¶ò•»¿·ï½~³Ñ}˜®¹#ÿf^kÀ#n¨A-ß¶íNt÷˜AOgˆS†QÕ,fqηIéëÕ¨¹`ë.xíÓ£Ú€Ž6Ùw88š`Tºoóò&Ý'ÿAÉç¦|ÜñµéuàÒvHÁ_¿öÞ®£ÒâëÁ¼(²F“…P¬1wÁ­ ü@Ú´,çÊÌåMB;Ò4¡Í™,]Å4N4Ĥ޽¸Çð»GÁŸ|øùd>ˆ=Zo÷ÝýúwÞY™C Çš<îUt«DNEœ•àˆ‹÷C÷4/vó¢ôü\‘8|ƒnOE?’v}(ùðô kyw.¦Ó‡Ñn±HÕZ†, _[Ã>è¯ï¡÷)ùãË õRœ _«Õ§¿¼@ÿµÚªÒOÊ™ 3ˆnóÆÂs÷muÿ¯g¬íTh3Ò®CÒ®½5‹Ž®ŒeªÕÐÊÞà¥ògù2×Ãß÷Ìã¬ðÑþ+ðPãxà Íœ{kæúpÿÕù}tèîrÎÈš›ªyHüŸã}°¿Ô8áøc2&ë§_1MâMøzCslý¿,£@dÊo¹½ŒLI¾’%¥DLw9sÙBÊL„ªem=ºÉp­–s„`K2O3úú(P×2 ›c‘åt9‘ ”¦þEìóœþ.¯ìð–ûAŽ3¹hQ§¥‚ktN1ùND !ƒbÐ5ˆpÎyJf6ÞæL$H§ ýÑíRÄœ½Ÿ2µ-碌¯¨-÷3ÂQðÄHfc}£â€¢›0¹ô£e¦µõRD*¤‹ ËY٢ݵ ç/ÕXxì‹’EÌ ^ÁQ±56•ò×:†ùQ*ƒ×gb¹ªÏÀD}™‚ªu ~>ôT e²’é½TPé—Þ2\÷ö÷^ã,‚7k+¶a¨fðÛ\èÇLóKÁ÷nþ”JªÒÇb;ŸÓÚuIrÁ\eÚlf£*#œ»Ë=N{/T„–¾¡}5Ô{½f;þ½XíĔƕŠ×'Á»JmmÛ™"{B/{ÿÚ¥.ŸÏ¹?É`xy¸¹ÈNOï3ÙßYl{'–ˆv› ¤DáÒ½¢ËÃM¡Bǹ e´¡?èllT™ @3\Ø—¤9\Ïx—ìU\iÏûÏ´–Ÿ®>kgKÍ„q‹ùX³Ÿ–D»Á'º](+Mžp+©}q·ûOëi¿Éa– W¾çUÞ«yTI]‰â¾¶+yC‰v’óiÔÊA7“Zƒh:°õ™½Æ—>Ü¿ ñëù ÿéü‘ESÍþ· gÇ\®+¸{Î×å~¾ásÜ¥fí¾¯NìÒSÕÝêÀ&ñ×þàñô"‰¸ÀÙ±¿¿NöÌßÞcù¸GÁŸÜQòÀ3ÈKx›ÖÃy©‹ï!†;‹=B''E±t;Øﻯ^¾ñÖšvé‡î{M·e£ùÎMÖ÷°>í5©N­«Öç;kDÊ6PXWÄ#–XÎÉU!Ûö<¢Ê2oœ¹VjvÅ@Í‚vçyËÏsç{¸ ŽU®¡Hà<èJqÓ„Ó8Éä,ɖ…—Aø®ë—ŒË‚«·ªðLä7aâž&×ÂÏÝ·!ÿéÍùOD‘?,‹€d]Gšr‘ýΦëT“Éê³ÒyÞýŒÓJW©š/CK@»nÙi?rõä¨ÿëp()Kn?“Zí55†Ž¨£L ÌKÏœ¶YKÃ<ÑÄÃo€Õ#Àb3Lâ¹\:ƒJ(˜é^i[¦ZœÊ…Ãu·êX.Ë_GL§ÏpHn™ÌŠ;!Ì¡X::’’_R§—H}¬²KØ L«Â°8hŠ\þI•W©r68ª>ázqœ$ö3ÎW«à£z ½0¤¡7–^áÙñŒÞr5-Äs÷,I"çYçåaÛOBúþQýãúKZÌØæÕ²ulŸ}9é5 ;«_w~!Õî¥?š“˜®%˜&1r¼Ð& G0^óX0ã µžž,¨½Ï Ë_ƒ°~[ºr­¬S•Ñjúœ»¿­6Ëþ›„&¼Lf¼'×"ç™\%™b×;!—•ðooÕÄûY™ PºBX;Åê4Å:¥FÊélóú©c¼ý%©MQP»QÇÑà¤Jw2š)4ÿ ò¶…û)nŸaI†µ¡Ì¬¢|feÒDÎgsûˆ—~ ?åV<å´[_=m˜±ÛÚåäZÑr†1YæüÙÚà@‘?ˆ(úѹittÆIûîËWÞáz8®^{ŽØ ÒîDÜ—°%t(í-DÙöÌ_lü-/Ÿθ¬p¼½©vX¢œ¨¤UÅ]¶\ŽÅÔ† OÔ[£q ËÚ1Tï•hÏ}v Š|†qÏí€Â¤ì âa'áƒ|é$Ù îÏÊw=ëæÿåû0ù²×`—þ’vQºGÚÈmÆ*à_ï¤L)Û7 ÷ÄBo+$jw¬ÌSw«Ùÿq1ü—N£„Ý×·^l3íöˆ£¼ÝW`yÜo}•)ÞÈ#@f¼N¤d„õRèO‹ Ò¶‚0¾ •WÏW¼ï†-÷âbHÿô¿¶Ü“ÁqËýxñþ„þ>?ÑÃñrp|ì˜j¿[ÊÔmIÈ>±Ù±t¤¾‘ê@Ò¯Ýý½Ãͧå9äbgô ÈÁæ¢ñâsÚn¨'!—ë] DMYæšR,ÝýÃ6ôÈ32qÌ䕆¥îš˜,|[¥£2G  *®6`i‚TW²|Õ|ˆ“ÉOG-çREj“x88ha†$|wxq`ºJ=Àáa¿‘½bÛ¹n«ngðNäÈwž–ÛU„t\?×L aüNý9:{° qøf²tKHŽo³dÙõÝÂ×›¼¼ÂéŠ\0 ØÀŽŠvk! ‡® <Çâ€=@¾ðqð4—ôbC)›Qïº,òñkÔŸ™¶ß‚ƒå¥>G …Òììï›×øQvÀ:¦,Í »E|Þ;í ýÜsOɤ ÒxÎÂ)ûÿz#Öâ$,%mñ‹¼m(Ê ^7½!,¬ (·s›Ž4Øž{’È€ìQÌ”]šÈñ.žÌ‹bJíÙóÞpdjg=ªbëp¹ÌJY,S¹}°ˆÕé»Aü“ݤB¡šKT3MàÏ Í*¼„#G1±ÔåRàç$‰§sà½A êš¦³ŽvôNžS;8²<.S›<²UèÜþ˜¶Â·穘!Efé,’–ŠÞ ¶ì<3õ“14xM@dLwbÊ} €T“Ü=š0&)z•Óeç“RðF©sö¯æ»ŠŸc|®höA¤q¬oº2p²…7pF{ê?ø5¥󩈘7¤Yf?v=°ÿÚp…nïij*FÝQ[›‡ëk`§3ç¡9I0îŽg~ü…#ívØ×ǘ¹Y—ëG øùar£ÂP4.ݲžÌ»¢IÎìp¹z^H ^î zýÊɹ²èNDêköó´Á¹Óé ÀÌ:¡±b謲ž©c­›´Œ"®… LÎiÚÈ/¤Äê÷RœñþhÔAÃø¢š[,ü•‰£~¾1â>éòN5ÌÃv[Ÿ.ô =?¿¼Ðw`ϺùÒÕÊøs ”†T2˜—Ü>z{îÅ[ÃånS§Û÷ýÂåpí/4잢ª‰O/°Åiã$ןKh×2žã°ô~Šø‘V sxr$Ç%p¹*…¼¢ït M.ú»M¹¬¨âO!ˆ‰ûÂ…ñë—Þ‹ƒ ])hÆÚŸàŸFzòy·¹gË '´-zÏñ)•)9áƒô\o™8ð°üv ò8É„Áê’Fb50¾x¼9IYÐ#¹Y·'ú¨uÑ ‡OôÍ25IÓ|¥óò ~%¤ ä«Ób¡cüLÀR*°«Œkà@zHI–ã¼PEÉÏZ¦“øÚ0ðµ‡TŸƒœx#¤ªÔÎÅ›ÑòÍ£p þïmÊtißë•À®¤«-1¡Î[Öü÷6T¼¿$ë»a‹V[­¡ði³x£$ŠN®"•¯0©zs5O`¦äe¨‚‘© G!ºy&šHÛ=b~p¦bu“ܯB{¡üäåÌ=“”¡º½H·WP{do¹£@¤ ‡Mj›çˆ Ê+ôu®òlœ”y!¦l~ÛXÍó’;( oªV 3€ð˜£’躊"„¤£ÌýM‚Íþ­`˜`äyó"¨Ð¥ß‘µß#ñÉœ[õ„t»©šNÁϼ2ŸåÞ,¹®JÏ Æß–ŒO˜DÖ± cÀ£×Bñó  Y’©G{û‘g?ꦺ—a –üî*!]ýìéó›ÙðÄ4{*·T HˆÝS$ÐoèËûLÞ¸ÿ“dN…äÍá'a›pÈ||Þ Cêß'˜nâ _ÛïÓç“FÁw´<”ù}Î>šxAÚäeH¦SŽB§5ƒŠÍ2}Û‘]xb"CA;Nãe}<~ûU/pe°X‘ú ŠjHf’ • ²´KÆ$`¬3ÑÀVþ`?õkÏPtI˜d,xX¿›ô$Â3l ÜK±¤GÅÕ-Rüȸž¤Ž­i UÝ(¤"·‡ÈªäJEbƒßNi*™ð»ÏõÝ­Õ å’MT,2·¤Ém ÈQ;ÂZ??&¹ ô‹áws}ß-Eàç{"¨;XåféųPÅÆU(Q†Ë}®^œÕ$2اûÞÓŒü ¸éæyCŠLðŒ O4“ Fãúw¹Ä—d&ñ’׸Îe×oï¿R³Ô[¤bJý<õ";=œÒ;'¸QP!\»qâ{YY0 H]5#ÀÇuˆ'T£¿¦±øΚNzP7Ÿ‚š€f UWÅ]åçÊ£ý\†d'×lpÝǤqsm3·Ô:é%3µRvNK0¥Ðe*§¡ƒ?V!ð`àcŒ×Œ.³ˆ¢7˜Êp²TuÌŽQ†oÄ”ÿèÂM˜n(´}â L0!Ǹ¿]è›îXÍÆŠ¦ 0lªÐÛÚ3u%Á¥ù™Û.½[’-½„&4x°nï9€ÖGrµI&sBå$9Iz¹_®MBÕ0ñƒ'Xé fÔ¢ê¦d8&[c¢ç ©¹]]Ö0ô‘î¼@À°{ &ØÐ’äMhû´Šém ÖO–\èÆLߥ]™É[ÖaS»{%Ë'¼hâ®;“ÉÄ“QV•üœ€¢‰'zR! #¸/»©ˆÕ·Uìõ§P š›CžYù®;{óŽŸÑa؆Ï¿TS”¯¶ús‘ AB=W7²Ó€C«¥uwj õIÝCÿ<@^2í‡Ð 䃄g“˜VÛ?£õçCdÒü©ÕÕ:þ\¥qêï§$A&‘¿Ö‘¶MëRfÅ4æoHç¯[›­®I'¬?^ëHžºa¥kçþ,r–€(§nvDåm°æ Ç¡© r?{øú´5NßFL³Â.HÃZ…(1˜Æ wPí^nj§ï.*_BôÙ¨d3­aðg…„+·yFE^¢cƒ8L…[Aµ-Pw%‘vÌo+ô [@^[Ï‚ç´×™>Üorç¡X­¿ž|¤ÝÉFÀî…#qàJrÎ%a'M‡O|èWyõ”'—ÆŠê \ü ›F,t¼ØbH¢CDñÔFÈtØ”‡ ‚'>uÔœI[ç‘ M˜z½ÏY=Ça O¾3õ.Î7NÎý5vK¥ŒÜå#åÞÄ¥JÈl½Ñ?~<8§†<Ófv?uô•0ô˜ T1.õÅ8øÄvÃcǪ̂ù#œöˆú2¿5ü“¤»d&Ô¤ë{…ëÇÏ…œèïHØ|ðlÎÛ÷ÖàOú:ç¨ÇhH °ó´OMûÒÔ: ø'–ÜœN[“C‡ˆtµ”&ø"ð4«¼GèéN™oDÛÝ ?reì€MtÅÖ¢Øä&RŸ9bØ|uAæÚ™ @OSP¨€Ã–¨ó¨µežmä(Ù0½Ô”Ò$© ú ªÑØdv]§ô§d õH(Æ´¯OVÇ! %…@†Bq9ˆ…L"a{Ð8ý^T0Ñ5¼äÌ€œ6Í€hŽ·r±Œû'Ú21Ùž‰ž7 Zž+üïKLH|¦¸cŸÿgöB$MêŸ[ì㪨ɯ‡t²4è5äè}Ò¿H× €+N“£9ÞЪÞØ7 JÒbÿûµ²ï¦ÿOÏý³¿ÿïñp™Æ G ßZÝ{Я°!¢gQׂêZ«K“ÅÉ$GY‚i-®”±µäH×âVæ5ú?ìŧs`!6;2¶dÆElŽ^¼Z1M^´ó×u¹/7Ÿ §ZY ´¶SJ²EøFÁZ´†4[o:EòÝZëÕ˜Aø.G.ž/ Óúè‰Øßù(˜!¶_ú[Ûóø¬{4zqL¦hT/yÀo´O°¾Ï`Ï A[zÝ3Ü4²7Hí}5z¦ÆÀß«RÍ5>m͎ؑ1;çNò8–Ëùg'gožÕeîÁŸü&kOH_ ™qX¤cœ¦æyROhë¡·ƒ,C½$7xšX:ô!8Ømi†51f“j?”;Ë1Óò:ö;&]I ˜f¸–,= ˜áíT§ì½Ù¥›77³–î"ŒÌqưÂÈê}¼€ò¼x6±õ‘KU«ùŽ ÿ\RYË‚zFì‡Ú$åñš€¢5 ‹wò\šŽs³×rj£ÇëÂP AžÖد20‹nd(í‘oÿ‘z¼Løð'˜òPÏ=Tõ°³fº«™X‚ì7 µy¸$´G¹dæéœ8 |ÕÐk@¢~’¢„a§˜D9g1÷ 1—¯9íQÂk.>UIßבšä<ø·’nP˜šÛäŒÍkG—2ÏHœ&]ÔÒ3ŒE¤ ãò¼uG¦dk#í°@jOCŽ5OsãðrëE55‚VH>æx ŸËÅ]†Mr2ÀV@’ið|>|Rw‘¨ä|ö§ðí"Á‰é]Ž«±h‡µxšK©Ö ¬'§öÒ E=Ƕe΀ÓÄP…g¡µç“9K¥LÚœc·©?ßsõòUcB@rñÜ>ç¢èìoïôÔ{s#ºÛÜOÙtLó|ö"¬Ås—LN¥ç®Ö²óM· #_hÿ Îu¥ÇÝ“ižÝ¥‘Û]7øý|lq§Ÿ²%´}ªR$²öàxlt7³ƒåår·>CìŽ`£o\å¼~AÓ)÷˜Ðý@š‚Y¢X6“‹ƒ† *ú´p¼çQˆ0r“ÃY¢;'ëþÛt¢™óŽë°‘ÛY¢ù‰6,Äôyüh×$ik=ü')hÇÓ¸†Ñ˜Ï6iøR¹r8TþE óAzr&[XœâÏë[WÛÙx¸w$´Ÿ% 0åò_€¿fd®Õ<&°Í‘ן3a-ó×*’9˜qÛêÿ—Ñ(õÛCÌS#‹l½š·»ÔSM*ó°Nº0N›ÄrT–"0Ðä\ØägI•¶0J5ñ%!©úª‚à¨`ÙÑÿé$™1VñÃ~››ìXz-t”ˆç‚³! ?½t9Ûi‚øõäÍå-5BÜÆ`Ö%þèžÍÆî}lã-(Þž[sï‡}ÁŒBv:^¼7‚$IaɰzµÅø`¢°£%ÌDècp:Ck#Ù‹©‚d[XBÑ+Ön’Ât/J"«r õTDß Uyy: JHHGH[wЩ<¾½2c¹Ü=Æh{K{}¦Ëó1ueK6 «—ÂvÁçÁÎ+8ö67_m¾¢)ý2˜ë÷3qçÉÑœ{ÁEp`~¥gÌ‡í³½‹KW»á\•‚Æ1Å3Í”³Õ ±^[ǽæ™s 6ü=£§ydr].4¬†(|‰œ™4NûSëk^«·î1¨Ø÷.÷b¥SÖTù–ã&Ù†WåXcŽÐU£13æ>šqdéŒxV¥0,„Q×pLû=R¶I¦·>~Î;ª˜ 'iÍzâ; À†ŒE· ‰['±&qã…ñH#Šú‰4Î:Û¤ðÚxBl÷ÏTJÕ^¨ôÈ:ú€€’†&ÈÙ k7 knèÛLì´:˨ ¨ói;"?ɹrsQW ±ËÛ$}êô ¶›6wÐøæKÏqR‰·h®æP ­M´z62èàHA|rM?#ªÂÔò„›ø„º.ùðÉ,gb ·Gøz%tÃŽ2&kxÍíPÈTµB­²z"–×^÷/ßý Q{q mgfÍ5MZH+¦ýâ;O£(oVô\"¼ì,ž4Û5/,ëOÖ­ƒ úÿá·5ÎiQ÷ Ì>`†¨³ºlì¡YiñŽLõ¹ÿž­ÔiñâHa;¡àta\r1‰»d›öû“½§¹´Ü[l«…'ü:kÇSødW±×izÀ=ÆÎüû‡+£ÓsXŽÎí(¼å‡¡*.†×Ñ•šªŽê”õŸ=rãñ8ôAü·ö§÷;wècL±ø6ÿüü1ߣ}¨¾ógkÇEúlÓ’a#s :f9ýkÑVœHezÔ`ï¢l¸‡íSëÑx ÿxzSc¦)Vøºº7a46~(vüW ‰Ù7Ê¥Âìµë“ÃYáÖÚgçë3“yü°‹«Ê¯Yô3yâgº÷Yvï¢Vmh˜‹©œ>‚NÌs’ ’®0×Ûˆ1 8Âèh|*ÙÙŒEé Kî±ñ±0:w~Myï´ö†Ý2¸³M:„ƒÓcàÙ#%öÄè“H<§wgç?½$m«!{ÅYP„têިÇNŽž€m¨$›þóÁËù%“"G£ÂÔEÏ]vãË!÷Üù”ì ¹.gÕ­{G!“7à[H3î'î`Y$“•*Žn9¨ êõÌ^Ëb¼ìr¶vŸ÷>‘ló‘þ;9:’ÊÎÎw¨#>”[ÓpÀ¡†k¨‹ìTó¨T9pÍ«Ññ(oæKÞ¾¾áðõ~iÅwHM]5v°£Á|^à1©Hµ%'éHÐoTrÉmÈ€0ÜšgõÊ ¨¶ü)2¡*W…qÝÛçìɳcdÞdÉüz÷÷ÿƒNŠöÕßÿ3–"¤h”5âcmNΣ'ØhÜEÉÏ‚mð¡Î‰Æ'û–V¡j´«6qÏ]~Ì Ìò÷d œ}d­º5î÷±&y& ÏëDƒ3“YX“Œ5LÈÜEuÚ“ 8ù\¦Rð3¦‚,¤Sùáye¾f›ó”¡E D  M” YW£y\ÚiÄ=Ò —ìŽJ~IV²º¡|¦cëõëçüðX‰/Žï‘ŽqåŠÔ³„{ÞÓÉ (¶lòÜ«õØ Ció\70P©åáÙÏt~‰8˜OßÛ4€B§ö º8ËsŽqàŒaJhsV&” :‘, áùà Gq:W*fåà«ns°+¤sx²C¢¦}›K9ïˆÿ†2˜ëÙIø2@+wzÃGcR‡M¬Âš‰Æb ä>4Œs]†© ^o°{®;$u{íãû“/ ïäü ç/ü¦Ÿ©IÃÿxxÞð/9Š$gHyÞbo¦þÁ‡÷ïß\Ö¤üTØLC-y°)˜v :-¹!ëÖwµ4ŽÓFâf®×à¦BèÇæ¢cH7³ý°<ÒšÕÁ‹H³ãDÆE!7/šeBë“:4úì*žŠ4VÙ${>§Ì¾ ^ÎTÓṈ̃±—uå|L«¬&Õ€K¡÷‰È•¥À(ÆjĦ£ôÙ+Ÿö ¤9§¯æ φÁ¤aM;©‹]g72ïâûèÜB pF¡U䱉$@Tic!)«€ÖJO"½—Ýgü€‚8ž¦‡¹IýP•ߦ­+²Á :­Ü|]ÍK”Ži ¥Æ¾·Àz}ð§?müÅ"Tyu¬«‹Ã#Ç.u j.œ7°—ý>Ç´QQG½\Ú7$b•QLÂ-ã”Cxÿrùla3Jƒ¿ŒAk‹‰,Pc^jÐ`œº .Õ¤N”{N8N°¸Á[OÚºŒ5‚€ýBÑΈ å^Iüí€3+„°1’Û®Q«õKÜ»G§¿ÁN¡·y¯Çé¨6L˜É°E]W+Úôµå¨ÍÈd£ù‡ìcü5èãë<#e[Ó¨a–úH¥¡?­a¸"…§ôHÓÀ53x.’û'ï_.70:‹÷‰íÌ>[I,/7è¼óH–l^•4í2%ÚYTzbÀ-1>HüÖÁ!mÂHn2]u, :3!ô;caYƒz[qˆ#þònø¡ß߸N³N´l§¹ìè~™)§Þåy«Ã_h~VݳÎÑeèE” 4=Mèƒ,¥Uø=z¨†ÝtG7ÝÝT»ÿ›à›ê÷=ºí7þÖ³@<˯îRË$ø ‡ðej ijjí_æ‚o©=‰hhö²ÑÔ&QòD™©ë¿¨–U2ޏâ€4AgXï«27¿2>L%6 Çi ‰§ `öLZs^dàë9Ý•vFŽ&‰)œRYi)òTÓfŠé)4u:í¼̈Žs3×T8zb“e‰©³œ3÷OуAFÏÝW}Vþw»ùDúO6…g%õz¬FÀ7@o’êþø­yß@›ÊìÙ2rØÕHb4‡ò‘È…Àm.hbiÔ›òƒ¬´[¦ CìfvÕˆLç„rt§Ék‰Yušä!ù(=UùÌbWÿz¼Õ©aÖ@4*Dtê¬ÖWi8 !ûócB8Ûä•xß- ÿvöqÏ_˜÷à_{HðjÈO\©D×Ñ.a÷8¤N9%ìЦ·ñ]눥Ò2QÍX± š;…Ú»W'¯õè†ß³Ø(uC9ý?R®H7cä+yb±?æçöÀlboéÖÕW;ƱÊS¦Øxå?{¼ÚZŒk7 PÞšì Æ¹×¤¯ØíÃÔÇGh‰§–jP»kŽt£N¸BKï#‡o™ˆºùd'T1vHÑÝvªI9ƒ#*þÿ܆ ëP`Þ¨UƒØé°ÔŸt™'·Ïlf¾žjÄ „SOTåÅþfö"$ Ê<ƒƒÕhÎÓîÍPO+˜rì÷“çýwÿBl¾þ­ÎRÛLÓø ­9R±Ã+JjŽû÷©u™FK7²2ae¢ixŒ eë“Þ¢ƒL·o2+ÇFípÀì:JÒY*2 ѦØÑöÆ›öû\¹ÈÁB^'øåìT~ÿ¶{vi“ë‚°-P²yt«g˾jø[/D>Þ~Ƽ5òe÷$ë€~×*$¾ît½þ¶ŸðDi½$‚þ‚®ŸLKUöòza ú¹mP?k?²¤'éA$Ÿj¯[-W¶5&É ñ¿õX£#\É'=©mâ[K@72a›ŒŒ|9XóÂ:qóœ¶÷ëm:³ìŒ/8ÓÜ 9ù¬óÝX*Ûˢ̗ªG°åîÁ·¶G© ÄtÓd³àÓÐñöÕgžw¤¸í°Vk¤nÁ¸L n‡Ë¦¤ðhhJCkàFî^ñ÷íí­yø´Œ˜„ŽXœ7 e>êšäË¶Š¯U¬Š”/´B žï*Vò2ù‡ÑÕ9Ñþ.B°´Z=5 ÍÕZ¾>-âä6õ÷Fc$Òïšï|Ÿo%fØÑB:Ûîµ\”\˜/ψG‡‹À"E4¤7ÓzH§Ü MÃ*ðê8¥}òšŽn4 —ÎUt£Ò ÈÄ?¹¥}EgajCýv9Qq>Œ8 4oå‰$éZ#âÆûY:Qˆ©Ø%­`SE^Mzù•¶.ZYÛ)yÉ ¾;s Ù›QG‡!ï’í¿œº,CâhO‘¿œR=rˆÌ¢øºøq‘{fks¹(ÏX8h“ÕCÒ̰f/±µC>áxcºî¹¬à`“ÑiËe"0E 4Òg öÏÚöÔ€áÚWYÃJs4&c‰}R¨_µ]2Ý¿ªHöLR&»ÈÙ`3®*Ë&WÂkÃuo&‹3ù°j·Iìãf"›ŠŸÍÃ:'Á  ´ä8ã*™zõ ~­K5ü¥¨ { I—Ù‡žò–´J k Z’Ýk:  3:}?0¿'ìH¦ý »ê„U?¦k}º®61 õÉé¹Òôüóû©IÒùãfgóÁÙi8tÿq§gѽwr‚^·0D2r·ü LÊ{Àt!¦†ž‹>¨Ç »èTRý̓M#]nì1–%é²=ÀÍl3­ÐBv;b€›`d ÿä~~ÓëE]^”HIÉ„ût)ê0ú8[Ïk¹íN‰‘ Hz®a¼³ÌE5€L=&µ«ìV0¢’0 oÂË }¹·úö·­ù°{.óùógã5•½¤æ$ ÖÖjÐ`ªÛÎù¶¶lAž÷6üäŠbüÓÆÆd2 ¸%Í.bŸ ,™¥¢=ä³gP@þЊ2¹w%;Ú°Ã DÒ¯],òZŸÌ»î,¼ ]î\̯ \¯ôž](ŸuÇnsøñí%Àºño»áànv4öÉe:,oHšL8‰B¶=€Ÿ ¾:WQW GÎ?]oøÔ#7}­5.2E=G}(ÖeD0YóuÃcߥAf:Çw<4ð±Þb]Ñ'eè UÛT 6y>ªlZžL‘D˜lûÆ”ÖKZŽ…ÜÛ“W:×÷k¯Èy4üëS$1P£qµz¯Bî?ÿûÿûû*.n‘üt]÷½EÓ,ÐÔC1M‚Ôg9Þ†þ[º}µëA+‰F 4é㇟´mvWoo- ¼ Ê^`?h·ßŠ%ÒEÙLn;-ÚoÚfFÜ_ ŸDTã—¶*ExíˆsѱîPÌòA«ç±c²ó-ÙºÉêçö¤s¤'Hh?ùQ@ãižkvÆÜxã2ý”¥z ‰ƒ?(ø·RÒR9HøÉ K•_Æ`rø?O!Z²ß7yXiýa¼Û!„ºÝ_£Ö—L“³hz¢6Í 'ýˆ¿·rù VÈÿ)øž÷©åo¿š‡;ÿÐ>ùl5·77·š£âûò%Ýu2³CÚÁF}‚\¨2ãÚ`(5{²RLl'ˆvö.ì¯öV¸Ý°7À =Làb[dš–ê]ÍžwdN Ÿ°©}ÀÀ§]Õð¤œC-¬i14ä™<|]ŸCkDcU¨5ãaüЮTžˆsÍY¸ɲ ãÍÎÐ@l/;F…+å›y¿!é3NÙ@=‡ò%iÿ<ǪץÎíC\åÍ“ñmëöeÀÀ”9àþ¨%[›ÛÏü} Ž¸H>©%äòˆÒ6¹Ç~‰Iq2Kš¥”5°ëo¾¸øNöêÓCzšï¼,jH’Jþð¶¸EÅ2f˜ŸSõ‘71¢"#ïËÇV/–yÐ…+¥P7å¸ Ÿ˜M·÷ÝõÀËI…²q'›ºwgƒÇnS¼·#ߪë´ëŸkÖ9fe0nÑ^Ašèj Ùí1䯶·tããºQìi÷ÌF#àÀ*>&’h–Pq$=ç×ɦ–rì0H¤$˜ ŒKØbã²Ò>@øw=A‡Cå³Á~lß0©CÆÎþv]J»¬6sñYðÙˆ›½S0 »ÆÅˆ$ŒÇ‹±Œ˜þã< y@4RÝÎà°¨´~+ÄÓ*®Â“¤Cø¡gf²åpƒÕÖŒiZŠ9ŒPV 䨪 &䥈/×: ýÅó¿rÒ…À!#v)ÒHûïhÖI§¤-˜QfîèiÒzÊÌ›îS‘aŠ ³!3Ÿ€WZzBu]Á ìU^¡Ý,oMÒ,ƒ¼¿Ã(WãûâÇøþ«oÔ\bk âè\ŒÙ)ÐÕ&‚±Æ&oè6V8×m _® "“ Y"e=€ïèfjs€´€ˆ3‡ñˆ$BÞCÓ‚à¤x5It—±–å5 cÂm¢lïnÊR¹aˆ@Küœp³{E‚ý5ò—g¢³*&!~[2”Å}Ê—y‡þQÌ!£I€‚ÊÐÍÒ¤5Ra¬:A´‚í{ÔV?êv Ê޵ôn¬å.~¾ƒ41¬¤ÖRZ‹€«¡d¤Ã408íÿàSÛŠfÕS˜!畉úܽ&ýJÓ?w>J öëë cÓ¢XM ›øZêàgT•8Ç}ß uwÂ_囀R®“Ç£º7j2³õ}'xŒÌhm‚sÙX`rŒÕZu°rF²€ª6‚Í•¬µ?Ÿ»2qL¹û¿ÇÛËÃ}ï3†Ëš'j<µ—Xô(,ÔnÅLØeù~þvû$y„gÌ"梵žUiµ?ZŸÆQ=7(¢~q¶Ïwè"*¹§‡$6}¶K`±ŒÓ¢B]6€s½Ã?ìü˜R×äö¿ûƒ´àŒ`$[¾ù*D×2¯p¿õ’Ïù³YÇvz²IÁð¶vT>ø›‰¡•\óA:+v0Ž9jªo2N6.øA²i÷~–Ö4Ãr4΃ñÔ”ÊáM¥çÓšeЛ¶à爊kßoò¸°Ù¿ø.l¦í.JѦ{`¢Þãu¤'nÓ7¥ìÔ“ôèâ§¥ófƒ‡çolkŽ:Á ÅŸJaÊ™Ÿ¯Ç4Û\ Jys£»%'n×#-™„ÛRÃt¦Îj̹ªØiô²ª„Cˆ#¨:÷ÀP¬!Ò jûO‘³¦O×-ÛLåì×—‡À%m éHD»Ø—b¶m^<Ð.á¿è?JÅi_̈†ÖÈÏÆ•*1@¤Iëç´ªØa0K©6¶ÞÁw=¥>ñ$]ÃÔ|gA«<Ÿ€Í²ÇVw$ŒÅÑ­¸ÊÀG0nxÑxÀÄ#–ÿÞ_›ÀÜë3r”x€Ðgì˜$œNŽâxîQ;ËBœw†±c™éögÝëõ½$Ù…Yßñ¡…!b/Ã<ÑæÛHw„"o@Ÿî*Á³îõá ¢ÍÊn¾"æVI]T”7$ÐÁõóìE°5®ñ3­ñ§<ÆœJêæ*ÝxI7Ê|‘[Ðõ·ý«ª8¬å´0Å#i¨ #^°xA’ß4Öb*ÆhÚÄxŸ«–XRÜ´Ìɾdœw$×!ÿôñ}릑 ›TÓßzìÌgº°ú±R5Áedݱ£m942¦pH™àè"Bm;K8U@j!²WÆn7E˜ïÊ*eŽÈoæWæëõÒ²¶çÃ6Íö=sä]¦ –JÚ1VåYº7Ú³Øà†Z uŒyb’Hæ ¹­¼63ÞœÙ(ë?6+× 6"Ô¨#oøÌÕáÓîÇ)ib*ÁvŠ6dR&#°÷¾}âpŠj¨iK0ÄËlÞˆ\æ x5‡Å*8àŽáÄ—žºN9ÁµÖ³­ ü:Ú²€¶q®rÛ í2Ÿ.¥ÔNÍâô.t«Ç9_i³™›”à&r&” ¯9c!SÆ7´ƒQ×›MºªÒˆVf®l§S~;âÔ/«áÍ€þÙ¬¿†ÅË–g:SoïkuÃìÒ‘BÇWg]5qü~¹ldä½V? ‚\ni+;Û§¹ˆæQÞâtÀ9‹õ¥œí¦TÞEîÇ]Ò²Ëb/,t•µ ÍäöHKºæC¬zþ;@Nû»é0Êféš÷¯Røè~†úOÇßZW;U3Wžh(7T÷Ñèj¶&!n9Oõ(¦í戡—b_‰7· 6ÅöµîRý9ý™Ý°8‘“³¬ÿšÞú»·éíìýŸ‘¤•ùGˆ(Üð—¹СYbÛ)tÛ„s.FÅê§Ç4ïår2nK>ï&sÌG&¯ã:7½—WqÇ4xJŸ "Š`TX=5“o· ËÎLJ$­! cš×ñì nƒ.‰Ý€k›2” ,¨²›"0À†øÙ(¹jg¡µG+Ô`­ßÑ@â8æË3çY©Ô;X”–[“”Ó U©\eÌ‘$²‡™7]¬–d™˜&•ª)m/Åf#Å¿´¢$ˆ:£ºT‰t~Cáv sùØ*óÙ’g©H#.6|™©ìñS†)ÏŠKråÂ.ìAÿ4å¬Þy‚Àö/íÓ“÷¿R2”Œ«’b  TQ3\‰~"—INÁ{Chn7?´Ïü9JB¨RG{—¢Y¼AÐz’¹@”÷¦ct6Ym˜ÑèøVXHç'§_èé–º’.DÒA–§™ëüRL´Ìe˜Mg/ÁÖ²;«Öíñ{«ŽLÚo2”œŽ[/ìBƒÓ¬¥Êš›Â:ä`UÓ“Ù[žX…Ï_Ëô8VbÔ[÷¹¯˜>4Y°É¶ Á'f6C?ÓWc—ýìó€ŸÄä ࿵´?N¥ßªLmu4‚÷Ó˜lL’!G-V7«gBÒ @Y¨Õ´tC6°ÜmôyÏ™?í8ɬ`+P]ÖaºQÅcç oÌ[\µ%t¿ìßFÈH¤M 6Œü§Ž¹TIFža–dïšÒ¸M%3Êf¦M]6°¡½Œ–P@g)A¼cGÅÔì—Ý0Ðdº ê› wׯ½LÅÿßæ8 uÆìOR·yÔ²5J‹œ«}ÚYO.ýÓ‚vÖ]ÓgJ=~–_Ã$€Ü¿þÖ«‚4:®>5Û¬‚¢œÝzd#ùäçî— /ÿ³è×’¶Uù‘³š·š%ýBÌ"MXß6`5”Eˆp&‹0‹rjµ¦zl­Éa·ÕyC£4Ñóìh8·ìd3úX døˆÔ c7œ“lnöK[?ðNæv F£‡™†˜–ûu”1™(½`ž2ßQ1ÝjÒ?/ÿÂVñÜÞxŽj—7ùõs; 2û€#RÔ~¤cÐZ2!n"‘ÎΠC ²ÁDhxÈ7—+ Hk~QùDóó†l Œ‡h¸7l¸QͦÐ1í]XKãñîþÝ_Ï[a_O¤ç0=ŠÁ‹“ø§Ê¿ñŠ¿Û“+ß Û=r [$XøÏ‰ˆÎáy¦Ð0íh¹çþQ Ò˜áûÚ, Ë%WÅû|],³Û½B#ÜÍè·ðêÑÅ~<±Ï›yœäº ’$ áh1ð8¸–ƒ=­‹š«ùüœ܊š™i. LÓD q³²fÁ¾ø³7Œ}*Ì:~Yï+xÊ™gÔêœçåž«ÍãÄf¤ÉÄ»b©+þœ7™¦“[üÝ•ïùÞJt™¥nƒ¬dMPèvhÖ”£•æ9Ÿ/€%77. î?Ç: ¶ŠY…³³e¸ÊZÌÅ@Çcñ"ZAIÖ¿©ÛáÀÔöudW¤¡—O Èç~=¶Á&Òq8hÁ8Ý\D ŒÒiO’› ¢)? a1Ùm¬’L¾‰^‚Ö<©o£šØ’žäefeº M7\9°`ß׃Á¯£‘±XœÓ¦,Q"K(£Å­ØsªdÒºM¦7•ôÍ”ÝmÚ0Õt„xÉ]g­b0Íhñ¯$æÑ¬Æ‚B(ÔÖ«àåþl4–¨‚:âœC^ÍïTFJ¢ÎÌd Ú¨ÎJmWþ,™Ô Ѷ%vµÀ”kbʪ—{Çùº¤,žÓ¡ó¡ß÷?1 —EÀ}sìâdﵑvÓ¢ð?´fÙb"VÆ#“˜èíMQ»¢ä1†tÃÚZ±Ž`â5•­KXòú]ËGN^Лΰ®Õ…žd£âIcž­°,4FР3”cã9rCokðûÆÛÅKå)ÕûÔB¦à=ã™OqZ?u­3zÕS8ôÜUj vÉ0yJ ˆÔX[ï®Õ«ÑÒeÁ†›@’¾d+ ý†ì©µ7°6KžÇ[6º¿Zj»Hø4kíJëm÷F}=£™ä|ÿÃÓ÷šÄ. Pôv³¼W]eƒŸÊ¶|î¸ÝÿmuéVx_’¼Ââ8TTàsš±nÂ[ŠÎò°NZ.þœŸäÓ}G›;|5áÕ¨ÕOʪ¦£L%ÿÿ¦Ô‰ç‘ÐŽùo+ÊÒ GpÄ\ -ðèyJÎnLfëûYMý#Ăń ­–Š*’ç:TQ î?´ÌßZMÑÈG¢¢¡|X¬+²Ûã³{¥†­AÚéèÜZ¡@n ÛäÕÝQŽ¿èó8¦¤½¸ZØ>^Òvrc6EÙ7{ŸªuW¤Cˆ‡»=ói¶‡¹½é÷`\óßV1¡T&ÕÀ˜øCFRón–¶Àr¤†é Í}`öt‡o F M´w‹®cЮÌ<ï’v¯KÚÂ0 þ ÑÓñüaº’O®P9I“ì‘{¹ˆó·gi?ÀõQ³3#4×_»üpøÁ£Äúœ­Äø¤ìÎD÷P¬ÇÔæ™Ú–yæÒiÈl c㦊aÄ8VXNÃGwN76±¾¯‚çw¡Ñ]šçóZ޳ÅF´oO?¯1Qûñ³Ûëµ84gQ€ÏzZHeÏ/œ&j$n«…<êó¾ì£"se˜43fú„†ÆN•Û)žªœV²nXGÃÕ¼å ì éÈê™ n( ©6k€eñSFœšX>IOÙÉ#œ0#Þý©¯yŠAª'…xºÈJŸ&mñÄÔ†Á¤÷B=¦¥­Mš¨Ð(U€HÒ¹qmÈI¬™h|ƒBpßíUlOæòR:ew&Z½$±ŒV&ͰO~gŠ ØÉ÷êÇäû1ù~çÉgBpo)³Ê9š³8ã½4 KÕ<¹Yå…Ì:@…š Ã(z 2pB‹0.ì°ælfc¯qS3d;#²ƒ\p5¬—§”‹qÆ6ð(© qx =†Ó¬Á¥ájŸ‡Â0(-‹m­·s–ò™yñlÜTŒŠ\ÇË2¹×€°f:›Èˆ˜ÓT sÆ9€XNd¨ßë"ïBú~O²i¿lðY\iè1Ámiø°‘ÁÛâ[—…©ÏFØ­±p.Ê»Ê=j U¾^aÐ8†=É”P5†Õ¥I…H -³t’kIõ~V׊‡@3Îí‘Q¶çH#0HóËl˜ŽØØ6wºL],i¾¿›ÛMÉ+o¹ W#ž¸áÙþ1<ÿ(ÃS†cfDCÑÎܸ|<<÷ÛBV±Àt×>)q¹èÜé2Ï©¯¢ØÀs›{·<ÏYÅWgTÑÏì¸F–¢AlLÕohNÅo~oŸ~‰TZ¨Ôÿ\ú»7òy¬ æ´NTÓ€Ðx9H§EÎøŒüÎÌ(Ô÷7t`=ówvhE,¢2}ñ›Òë¡yCéðú%£­ 6Ðø9öýÌÜÎ àüÔ^G!.±‚²…‘Bå¬FI-°TÚˆVð„°XÀÈÛkŠý”kŠChÄMÈ?i\9ÐĪפ¾'ìçc–b:ëf ÛZÏEƒ„g™º4 ™f#ØT¢–8Ö–ã™=…Ä$v†;ðvP×ÜªŽØ~’8cÞ.ÔÇ0ˆÁ¶\0?miOáaC¹eÔK*‹ýS=ÐIG•Æö¦²¡é!â Ä¡÷^§í´·Z¢gч>xÛ_mo;ó¾ ßú'é„—0;~‘ƒs_|ÖwÅžÔö%ÃÈðcZƒœ¸õè- =&K†ÊÜY‚ R8­zt¡i½bÜð 'à²Éöî,4xtHt–*6ª(çlÎ {á2B£ˆöYíÒ‰F|ñ„¿¶&·×Á$J‚¢Ôì€Z¡«”y_‡/ËKvPcÔûv4âYwÒ½Ž»>Xš¯I Ö, £K^öhEL}— +)Ñ¢%ÜÓ”G|¢wÊјNø×|’<[˜‹ˆ|¢Ý¥0¼ÌÌ;›™…IõÖò'-OÆAŒ]¡+¸kpÓO9±íZŒ¶žÆ,±´u0?öztH(t¾`;•lXÁ o›üÁÖó`sÓñ<Øž—gÀ]æ·ßÒé4Ü|`y#ôX‹ÜÎàÌÖRݘ‡%Û×ÙPÇzêÁ/HU›˜Sªtmk݆êÔXrˆ^S ñÇzyõ-šW¢ÙßyƒžaYp•štÛÔC[c½{js†\ÊjâüLNH˜É¯kF²°,³ƒ&I?#Ó<ÊI£½J;Ö¶oŽÿÀÇйyˆ¢Hsÿ¯iÓkïvÍ…µ{ &5*v¼#yåÖßâOk”®¸3‡$\’TÅìxÏì•_ÎN7?œm|!Ic°ñ¥}zy$DuêTØ‚.-´Ü”s Õ‰S©FóÁ‘‚¼C;´3žðYîžgðìŸc"ñ:šc+Ì 4 4ÞDMM¸uK0€ðÃmØÅB$µ`\Áƒ-‰¬zâ™”Õ5&ì”@ ~ž ôçÚ¦zÁ.9ÁªnjàÙ¯m½Ø|·nøx“”ógÏ7ß¡Œu’L[7½®žõ{wáö>%©1&Q×DÄ!]ˆ¿´&´«‡iô²NÔtwÌÓ^õ^¡!åÎ9/Žž«±œ²¥Ì‘©½ŠàAŽ Áu9|gS© ÊÍË®H›vù> ží·ír¾S“/šRÝ•Q!ÐÌGT]ÖšR%&a¨1‘,?¨kÖÜËmðT<µó¥Ù°q,› Ð†ƒå<ût¹µ¹)ibÐ?H.ž oíŸ$™¹'7›€žæ¯‘X¹ngQÉÌs ª‰Q…9®gon .ùƒÁ"Gb‰É5þ›À?ŒºŒòßV”\GlâiF9Ð9W³—Í´ýûOc±Š}Å®úm¥)ìÛ)ì=~ ;Âã¦ð?ÇÀ_ê/ÍãrÊbÜ–ÿúeðrÎXzøéDløFÓ=­ÙKªÔ+ƃ‹ÀT6µÚs æ@ ­Žcû°;ÌaBôܬsGãÉ5Ûí(kô}^·ú´˜U S´ÅñáwÖ\<¯hÞü 4ÿÝèúN/CøÉM?¼Žž4ü'ùXMn¶¶ž°‘¿õŸÀñA>„¤`é®2›V ºYÒôÇÀ_ûÀ¸ê.š¼\¶Ù¸?9@™üš4 Ö—È1I¡yÙ/ýwjXöÕDùi‚¡ùÖ‚¥ ÏÞJq‹àð¥eý,Ø|ÉÖæ¼†3´ß»¸×Iy›ó ÃEtijj³áßMÍUNfÝ>Æ„Ìb«¾ˆ(Jú±¶’B¯B:©=ÌqÉ”™=À ~èÓn@BòóGÖîÍãù@á^—²go°mªˆL¢ƒ“s7*W=ô¡;Pã‚§HnTÀ†„4Ý9o44d)°,NŒxÒ<;²=S{Ù IÎ5“šV69v3iÔß]Nvns‚Ìú—|°ËÒC¸7w3Q†Q¥¿s±œŽp”Þ„ÖKof…ë:waÐ}«’¤ù»£)5¥WÌKàÕüÚw1E¸aÿEtÞvãÈÿ+­²"F‘0»è¶倽VHRŽâ* ñLO%kwd>µÕ„%4Í’8è§×ÿ£rGì댶%wH_fùðþEàÔmäïöñ§ÕUÑ8ÈÊ¢mǹÅî‹;¤-b\ÕhÉ/ÚUå‚Ùh.Vð"í ,‘zƒ:øî1u|Ú™/ĈÞgÝãLIx"¾¯¬ÓÐÆBÑf‡NõíÍÍ—þöÖóyÓN‚}žf¦•BÃ)òÕ ÐCOüŽË©ÕAV¶y¬%7 øBp Ä`÷è½-í_on aëŸþÒðOÿAµÁˆ07š ý©7#ÞŒzƵL7úk´Å$iÉyü…îÖ1 næ£4 ²ñ¸ð¥ YygJ{#É!Žûw -51@/7 ò6ÙKbŸh‘8'"Û•y-ïÃCg¤DC‘;\A¬Ó1É´Ò”‘¦UÒ ç®¨` b}cžâúZ°WGÌ.Á™0JÀAˆGxUX¾DîÌeÕØ”Fþ¥éBÁ¶7‘’£cöm‰ÓH’' 9<ÌO2Vž9º%H=“c’ºÿËÖ–/‡*;oêáïFÚŒfÄLÌ#´¥Ã3_¹}k…轪µßðÄW$‚â,œÀñBÓ™ó% EcÚpÙA+†wN½Õ§÷C@ò6B²ýÚö…YFaܰ]F$•‰Ãˆú0Ò÷ÂZ?_¯¿—ã‚m°Èv›èŒ¸ÆB3ºO쇉վ€P.ízŸÚ=¶!ƒ­Ø<|µž^hŽƒlƒOä!cÆ¢Nàt­§¹¿Ðž˜£ÆÓŒAi ¢4Ê\°HÄ1È1%fÈi~íëÜÂ=äU@£ž‘3ùí Iz7b2—É'†;º¨óu¶‡ìG^ðlÙ‹àÝá(Â9¯Àº$™X»i¹î¯œ:ÌvË» +š ftm„"ÚÑ<’9aΕ¨µ9ÇQm’Yç h¿jöê´7‹!’»@mBp0vE]Z­:y )¾7WÃ2²0ï…s@H‘‡örBÊ ‘Q§:÷ÀMzFgŽJl¤;=å"’²ÉánvF†»àÍqF?Ê7´[èV-— ilY#ÓÉ!mMËšÑ..Ô ¸ýG\“Æ'¾º÷ ;ŸÛŸv€v–ìg¸Z×Òì…¾3{Ç©Fõ›í!å* ”ÃûlWq”­±Û Ѭ36ý¥¤Q‰¬nÂñ4ã…_[­ ¾•@……ÚäMÂÿµ4 ÍL>ßwkÃK–¼%Ë:1rºH ­-i:ñÇ A’cŸ•‰IÇF·&@{h(ûl2-Ab!>drñ½ «ÜXÜ<[ÖNÕ:b·‡e øTç1ÉÓ§Ši–üÝX>´ÆŠVV·²WüœrXhgšT5¹ü€º>Ê…A‚ú‚ Rƒ2=uÚ¡†Û¸ƒ¤s}é òÌ•–3,F·n-³û™v‰Ilj1¹6¤‡üý?Ç= N3¤Åò.@¯à/Á¾´ú£› ÁAÀ™ËÆåܱy»ßcf„¥Æì6Y29ÄIKeéü°…l| ‹lÖ}e=ÅFØc Ϋ¼Å¹¦Ì‚5Ó´­ ‹Óêw¶¶±ZlüPΗb¤Æ&©-kÄ}õüž¢ÇF*«v˜êœèÍT] L™Ô0mq/[tSƒËÇ—HY² ýÕyä×~šiTø¶O»q!ÿ#É"Ë„ênl@‘îÏH¾`40Â<£?wb!\ÌSŽEŠ€+”¶6¶þaÂÈ3¸p‘Ò?òtÿ“À‰Ø”µmbÓ"‚µáß“g£ܺJž(uâ²·aÑŒNêx˜L.d69§ŠUrxòÞß{Vk­}8D&ÔSÒ„kÅý5õ¬HÕóuÃŽ$ú˜qm8Ä©xD”APµkõ` \hì inóÏØ‰eˆ–ÿìÑÆ³ñ)ð†Ÿ2Œ®µØÒG‚Hb«ƒü2ÍôÐ_û˜°Üj0èüžÂ(µ^·^ðYÓ…|€ 7.3’<+⦨Áï2Õš•cjCÙmÒ:úÛ¨ŸµhÊ…´€»A8´P{ h™à,>%Ÿ[´_©`xsÁï°xoô21ñ‹]£Ë¶{Ì‘ÅÝžo½c·Ÿ1fÀ.œõeøRÅêÔS^ì^Çà£<Á E†@4„2Îf®$E< ›…¿ï&-/QmÒ_´´÷O6c "ÁŸ*iåQü½Œ—Í›Q¼l¨.k=íBô*ÑÞÜmöEîV6~ÍÝ%©nö^>J w‡ö &vFrÊDVK®LL¡‘unxûfå7€loMyyN¯²Øoͱ~MgxµÑ¦÷@@Ãw1ø{É죣ºÝÐ6Vk-Úç¼"lg‚Á¸ò:ë+Cmà]í³=X?œx`D@q—û{탓ë"–ă­í—>#Ø‹EããåQóUÃCôXÒÜ’î݇“WÍ‹™íÏÖ"4"–_IœpöÑî}¨Äu$ØaÈ;GeÆEg ɦxÚ1®lÚ--w6©¡¤%èb“Xã=4™ïP–¾“É‚žK Q¦DVÃe÷jÞ¹ß6´·þ¥}òù—cÒ¦BÆáÝ—0/¿áøc3ÇPb+®XXóê¶HÛešc«‚ZÉ‚jðÞà~9›¤¨EŸ‡O‹N6áΫ¶9iBÈâ=ÛÖ5 î6é®f®áoºï´­ÛHY’KLNp5Õ¯'ž±ø›ÃOP…#Y²H髺qJŒyOcõ†×²'â$tÄtÖ2öÏœÅ!Êõ'Y‹Œ „ö…EÒ¹8-»žÍãYXdôgå$ök;¨.³[Í(C?°nd¼¤¦Ó² n´·³•{f{9.iéo´ ·:2j¹ä©¬~ô Ö–…/¶ÀmuO #j±AÖÒkM@ˆL'ÉHâÝ£ÄjÔç,cÇd&$ƒÃzÐÅÊ B¨ÍhŽ>ÑÜ1ÖŽ– ”4".ÕXð9BWÉa‰N÷ŒëVƒØqꟲKõÈIB ”A%‰ìÑç\¯û›Á³W «;{){ß=ô¸þÚåÑåùz=¦ãkÊ‹ Á(‰¥ˆ#1#º9àB`“ÆÈOdŸW=òApߌ*J²â¤}µÊ‘$ÕdÎ$þ ¢ÓoƒuZôÙÐóŠþvÙZÆ^§‰$‘l•íHt䲃ln·}»¬ˆ¯¢Q^u–áöAûÄÜ䉨_‹p±AÔ¡óð@29~û✠ëެ¸”‡76›>wkŽ|rHh€lðÇiŽs²¡H ’ÉÖp­\öX] |Æ¿3/c­Ó½d¤ž8oÇ9ÔŠ&ˆ·P¿\ƒ ¼ÆÄÊbSËó¡ó—x¯ç;—)+G>¹ÜƒÏ!¥éù»½òŠ6½ 0Z`ÆJ d«Wc "<AÎÖÌ¢L¡.‘I”wW3)çHƒ ý ÙÛÛ/ƒ×Ï‚I¹1Å$MkäÝ᛹<…ÖisŽÔÁa­Ås¦žez]VŽ"ÿõÎU„@È€ùÍVkªijûGÔ/S£PÑú“1Ç’ÀÉ$¬$ŠÒÏ»#\¨ Ԥ̦´ÿ!‹ÓkH»£tssûªÅy#ÒJ–ø½ºØ%λŽ^.ÿÑÑߥ£¥ï¾yFÿ¥øûy˜&YÚŠ§Ý4ÿ§íâÇÎèýPG—‰Ê@™Ì[[s`¤@83 ä “)VžöºÚ±ô¼©²ö]¯sõÜïÉ#« l-pÒ3HleÏ·X}aÂÂöçú Ìá!á£Y¤MÄí‘j.ä_5‰F™X«ÄBL‡x£ öƒÈQ˜$Q Àâ°WÁN Õ± C°/Ìä›bÞÌÇ©°–/B]ã™[ @|~œ!îX¾^¯PP.YãÉó÷rˆ/ˆÄ¸¬ŒW~nÙ¶‹1u> ဌIã.VÍ<3ïfîï^uÙ«™ÏÔÞÇË·.Ú’ÎÈÀ÷`‘ž¸y0«ÍÜ&gL^krÂGÏh›Ø™ ö>—ŸIþƒÞ'ýwcî•°9®®žaugýfáÏ.9_†ˆõ„3™Ô6nŠøö1†d¡¦Éñ:`àü›BV¨ËDó(ìL¤‰­L`Ýï“䲘àXû6l{ã¥ù Xi ¼µ‹*îÆQw¸Ê\Xmà8„¢Y¨~^Ýç=Ï݇ããJÏû†j±ÆÇŒÖÉáΞ„^ûT3\2ÒrfÞTz­·?®ûèϨ“„ŽÍ`çΞ»¬Z躽 Zx¦¶g ë´ÆÚÍÇ`Ϙ†ž»©Fá$)¢Øab5Úª±à®”ò¶Zo]§R,3ìÕV°5JlfÅ'`ú¸yQ7Üõ»…f˜9ªÍ±ú1gç˜ô]^Y®êP¡Ìw2J¯y•³6)»9Ïì9‚¨7÷rõ(ÈâWͼ â5ÈÞþgà3Ù\2šÌ}bbócù‹¼áÌå(¦'ÃH é錫¤ðÓÕ2Äùü‘˜Î su%yÀØò(@æ6H=Uß1Y¢^VÑ+N©Þ æEyÇ@{&¤ç ÞÇ ¥óÈ£ uÛ7!´Ø­f!µçòäèÈ#ñ²o—Ñ2ø/5òOétf(ï\Z$tfAÞV3ý :õ:ér*ÕkŸiçmì–ØâKs6i†î˜Aب¢†~Tu›#š¹{–• á+*<îóa°h Ça^ùäèM‰“|ÿ›BÂļœobY-á¯IrãZ1T£´ ¹®ˆ{]ôõ,Ø“}‡fS¬7l𯱿¢…¨Á”¬5Cü9o¿o„©°„mØÎ÷Lð s’ì K°LRvWí¢š«xv¯¢Ek¥Û-Æ%Ç|dÁŒ ‡ÿ¿™4y<²0I®·p²Ã`ˆi³5Ï•` ÖÒ-«Ý6·ì fO±¢þ]ë~¢Q%õé/&·É„H@¶cÌ8dÓ•ä!«±ÈÈüùEµ/ŸÕ¢î ÒRq"o½Þ ^Îm#mרž&je‚ ÎX99—t‹ÝNðût¦¤e £B@F,q=„`¾}-Á)^XÜÖ Üøoƒ‹5è~ò]¶ÖË:M'EL{¥¿Ñµ δÆÞѨûRUFr¤Êª¡'•:ÎR:„¬ý‚yÕds¹³¶Ûbî)1Vt2z^ÀaÎZ2õ¨âeçLyñy°a‘‰ÕGG¶gz§!KdÖ•eP¤ggÐû¤÷ø>Y‚S«}à=~u çðÊç}.Ôú#tüŠsfh(Šj”CѪí9Ó@an“<ö šÄ&vëø™žáˆ%81ŽÆ¨o ûx!&6›‚Ëa.šüoÏÅ<©âÓM‹%0•£ÓP<ö½ÚE,68£;ŸÍÍHâ¤i ¸ïgÊIO%Øcä`$‘‘S%M"1û™êúÚ>²É;ßܪ—¿tïÐÍ‚g?fÁÝY0‡à=7¾Á{¸TX€÷pünßáwóôüÝàºqÊ‹dÔîa4bt.ëåË4Í3<ÿ„Õ%ÑÂò¯`5'Ôõ-’'@MŸÕT²¡'ÚªC¼Š|`l ÚÕqt3RcÞâ˜zæk¶æÎhÜðûQTðnÚð¯ÆºOutq²'ý†7è’ìû ’&Gŵáßt hÌÍxi6m ‚6˜oU$æ[ë&Fº…#ܳ9ðïÊ1£‘|j ¢Za %g›ôÉ—ÁËy}ò?oœ©"#Áî³È+˜4u½Èg5 ÐÀ×P 8¬ßÈx$p3¹)'ù æ$²1r\«Ûeå±ÉK­5h À:EñuÏH»ýŸÑŸ8â9,? TA€+£°l uÊÌ72®m&¯ÃÏt“äÜãjà ×]DGT›V#žZ¸ÒQÂ_[ÂCìôÔÿŸÿ“WŸÉœ^÷ÿ㺠 e—5ÞþzíuóZú/¬šq¤ÁÏl⸘~Ç$h⦛ æ…§EÒ!ÑÕTžªÿÔf•£Ÿ2Hžæ Ré6Œ—Q¿¯£¼”ÓO+XiÔ%M.† "lQMjb‚° ¸ÄÐv‡ ÌZ½ýü¸°ƒíu ’vÇæº_ˆ©Í´‚: u°¯Ïtj•P?èaŸÈ(=á{gÁĵ ˜ ¡õ|¢ÙØ[R¾ŒpÈ·¨Ñ\?ŽÈŤàI¤0|šGõŠ_ÐŒ±VuQó;X1^ÓYÀÞ„ðw¡Š#íxª¨k³"çˆÎ‹øNNNµ ™I:ý¦­\Žÿ(óЭîæézìá\†¾y™º{»; ž¹‡Á_í2rÞ©«ß½!nAÀS5ÄUåõØë‚T9σÅlÄ[+›à&Š3êÉbÙ™G†fW“œÔNìàçáœϲ2ÈÏ·iºìÀ4ùؘ'À|Í–õVab„,¿ðŸ;óFfÚÄ÷NÛ²™]`j·OP gÒjd’}‹×©Õƒz©“LU ÉP;­gMôTâom‘š@:–”í­0‰[V 0œ§‚¬Ýј?gôÖSª©Ë,»‚‹:³Õø4g‚Ó¢ I–+ò,b´8É+ß”ñ­ 3|  B·TÆÚû­TEHF•VI+I¯UõGµ$_púÕv8æáËWÛÝ`Ö™ÂéaõÙ|¦Åñûgos‚¤ŽEÙ[Ľ”*-Ê„F$ÂÉwÌóV:ø@k‰ pùRIîçq ÒöH€*\Ø6ƒ¸èd uéÕA¦P,ЇFË®¢–Ãíz…´ókÍ¤Š¾¶:4-’hhs½«á¨“Þù»B>µú³8Ë’XpI‹¹“AÐc Aúæó%/¦ ަ}•”tž-þ×ñB¶é§tæŒhãdçn®ð¶$™+ó5Ö2À®]Òh]‘¶F‹„¤šŽÎhª®D8Ì@‰ï›H÷ óßH,w<¾¥)¨_Lú:|ý³‚i2׬òXUpt}“<#áQ¦¹_Yšdݧ…à °³WQ“¤ñ| #ï —yQnZÒíïàäÌKpñ‡)…SU§òDQ<轪Q™)wÈÇÎß&fþŠ6ot_³_ ].8M>œ}xã_¾ûÓ<Äâ÷Ÿe¤Âe©¿G]D AáO Çg.øíÉñǃ·'`8ÍË¡f†ÓÁ46ßãmí̾û•ïÙró7NnsÓ£› Ñv°½¼ÞZ\„gÔmÜ7îä–-þp–04µD1$pâžñ]÷ØÍÞ¥8·™½aïiæÝ`f³é^lœÂÔÒ0@ÍCµŸ …™ð}°8¼̎àÂ3õb¨Ž`yPfH‘@ÞOTx"üàŽÙ„›ñe#úÅðOO¡™Éƈ]óËÉÙ2é‡wßïïUõÝb˜ô[7tÂ8p •«A$3î¦øÓ*‹²¼¥‰èì¿”lr¾TÄzìNùk‹N—¬ìD£ êNꈿ(û$À¥ä­Î8ˆ¢«g zp…ÞSëöO`ùV³;LÒa+TôêºúÙ*†lš)0*o/›.6tÁÈð² úî·Í4YVâG¯ßÝë¿Ëúü/…]2‡kû-ÝlºýBKßoÑÝè,VYkÐ-‚[õkÝò`7=öåGE¡9ûÏ‘‹µùzóõÖ3f½kÞmXÊuÊÿxvÙföT+Tí©K¨J®1œÙùE{ãÍáñ›u¾ó'_3ú{ûäÌ??yïu! ˜Ê¤ß>k;ª½z3$à@˜9 Ûær÷ý»X)Aˆ:¦gð%e‰Þ>ŽÌÉ+;xñœµÖsmàÖzÆîå|‡q°Jh@F, ðã¿:L|HÂçük•8üиa¨ä ü$ÄAø¼å„Eü%“) ®Iÿölú·SlY Š~P¨˜lÏ~[s&‚”çn”|3Ž@î¹öû·Ñ¸Á]ÔxBì® 7Y2X–£§„=K;Wô¡%o›áJ††ÝT`æ½ò_ÑÌ5í}!ú‘Ä,Ä,I‚FÏÄò:͇bnLM•5x`–&—ÜêÀÜHäAÄÇqúAòãr4òŠ$0,Ð ÅBÿ#Q_¸Ë(e8¸=f@ø`Dg9„kÀ?,‹i¡ås†?ÈîÛF­®&‡Ù>ëÁ»í"»ðâæò¡urÐ> ,5|ðæðã Òz$êQ_o!{gëEðln!X3:Ç H€gƒ¤Ð#+n ·M4Rõ$Àc[o1!½Ú„»£2Õ)¿f<çÌ"³ž:CêqÒ…¤J6r>@_º¬ATjž¤üÄ ºR×HâD<¢g I³ÎbÅ+“™M"ýŸY™þî„´w0£MíER¾‘mØ`Å>Í•5 Ñ<­¾.W“µ1 W-èÇ^Çvð³´0­ãXYŽ>«U%Ñ0{ýY’Ýëòß|F+àåËy5{6?Šïa-ŽÑ¢†6ˆûp¦«íÁšÂ»Ã7 :}íÃL¶UnÌ%dB0ßÑ_¦Jãú.“Û…Cã{W’d”Ò*<ÍG÷Êm4öŸ†dëÙ‚…mf:Š9ÈYYðÞ̈cWþ_©"ÆÓ¦æIa€›UtªhœFÞšKv{ÂWñ€'ë’+Óp†N¾§ïsnø³vÇ ËÈ9Izi“Š=ÞzÏiŒß•‘ʑѨqx'¿‡ä•Ád"áqòªŠ9ß“¦<À›s£RX™Ì EÖÞEŠ*ÈyáÌ2µdBØû»ÔWÍNÙÏM&údX®&šäg¢•òrÇߢ­jw½Ð¬5Û¸ÑÚûÆßHQKG¯Ï 0Lè®`ÉËÍÖn*ÿT«Çö±FNÄܺ·mgn½ëu“fÖKè‹ @­XsÄÊCËfË©‡bü›‹™%-–hWÐk¬{‡Ýà6à Ýè”ùuLÅ—¼ žœ#ïü=xHpä?ª¢ÀÊÿµas‡ºˆuÏ?Š#ݧ=¯'©|œÝÎ4‰zm !ß-‚Ü“CÝ*GIÄ¥u1ۺˇþgåy_q|Ÿ¿;áo¸“¶ò$Q|ƒz|˜j qÇëf@› Í™ç 6“èš ¤b™Hß²eâƒ$»]ÅV;ë/æ¨T1Tc¥Õêqû1„„"%ÔÆìif”•Ó5¡–<Ù׈1vàSá+`e”TÈ¢Œ`äI—ÉÌ:¤¶­Ú‰F8«ºrÞèø£+îÊ(†¬¼VÂ×ÀSöæLâÕ7Xiî¬x`ãô÷º–z²)˜8 5¹`jÚÚa”™cÑd5šòÔGöÈkZ-ÚcêØÊªÅ2ÌsXr0Í4¾Êæ5'öÿª†þîðV [wújrm3£fÂNGNB®ÿj>ˆìã|D)éô ¡X9á*büÚ™døêÞ4=ÆüÐ}é,•d^ú°cMWLqãÍ8ƒNîa–g, Ø~Š‚Î8—¿£¡Þîå o4ŒÓ¼øë!4e—}üÛ6†ÝÊ%4¡£ÂNœv‡ËŽñ =š‚<*$™ŽþmÑQgì<$ܧ!ÃÎäOSÚö§Ež¶V5^?xMÒ»?vòémé3YC3Óë²²V°ó98bܾbØä*ŒVÿºV‰3º·Ö)+Y‚$‘ÏDP"¢R:³×)®yìýhÙÆñDC¢³$òîÞÞª¿žÛ$7\*ço.ÝTjÉ)Ž|fÀ€»îþÉGƒº¢mšÛÝ›ÿì[’(ÃVˆ[”̸.Й éBšwùÉÚOÙôÞ)aIc™4Öö‹ZYŸ>³ÕÊ—×ÆéD =˜§HÆí¬7€CÐUBœ×Uã¢Ì¬‹¤#<¬rz°˜ˆÀ £´3ÖðƒàweewñV¹×Áó!X ðÍ@CË› JÃP÷zf•XUJ%ù BbÞê<ªÆ"˜Ü°<ß'bÛ»Deðÿ‘Áì 9}  Ä´ŠnÚÙ Ê!Ï–*Jæ @ÎðZÃTÊé Ç ý³(¾õw£VNÊyW#0p®ÒÑq?ìGÕ“à>§w~²Ú ìbªc—·tH³³ß·3êœèà‚‘žvw‡ö¤‘!±¨OÏþDf²qæ¢çNÐÆ±¨Û€"Ñ`KŠ!MаbUº-Ó"‘R_&UpnhžÞ¨AüªÏ™rÕï³éAkx‰%}Ú>ZkÍnØ7‰µšËÐ÷¨¡Òè T½!-µ›HŽ8ÆFm›ËUaªyO¤¤ù½O„ž¼Ç*†K¾cüaûê’¦nÝÒ^äIQ¾YYåeelaë¡FC6Tub˜“Â!µø^*!%cÓ 1%ÞPÅ‹8¤ð™cå'Z)£NäÉá7›èÈ&ùýÂÐj®α*†GhÖ:ähñ'®L³ áû gHdÜÆÅaL³0z¦»I‹Ì6òõÃý¾a›¼akݨ€ViÈ|~¹9y\Ȳò8µ¸Íâ áH|žT!/áÙŒ-Ë`™›®¿7“¦í–J®rþP¡!¡Ì9JÐ6ÖD:hbpF2È3GQqK¯ˆ½^1/Ó‘ÿ¶ìèð3æÕA“2ûžùf»i!ÅÎUˉtûLIÑÑ %¸å³zÎgêëÁ£· 0BM°éïó{Qð¡Ç’X}Á‡¦ó²Üñ‹¿öéðÂ$}Ùˆò®Æ;×Úá§ýu1æPx—ÜœÉgçoŽ·ÍauÓ ¤ÚMÊ‚ãY9H ?ãÈ¿ü´<˜ lrÝšíw‡qÞêªm×Ö”@ò¦0-§àÝ1ß|k‘è0råÎcÿX%úÚß÷ñ·Eó»I"˜;8Þê(Iýã45⧘”—‚~u‰Ön–Ò²¸qu“¦ÒLQ1Nýþ¶8¥6êº2f¬é}¡»wåJà®´â´(g ÷ä 5^q ß>n5:!× QØèQ.z«F$#åÜeÀÏÁÅÖ v±Ûb Qޱe퀔V’vÓñ´Jƒ$a)z0µq¤‘Ö¼;¢&DEXË—(Zeô8ÄYÒ—œ?·0Rƒt¤«–îÅxé,Eš$}%u¡E7Qá I‘3#…ô¥%¶$÷@ z¨1gx„ô­våkõŽoI@iНäBQ ¶ªº˜k­Ïl£;“æ!¸Ò‘ hl7sÄÛ’öP„¤Ñß \™=Ûüã¬d“Ëpª_ͽ½,¡ùƒÍ™Û;‘­Hi@8Ò\ °×Ç’Ƶ©ðóßÿ/ÒÎi#ãdÖÝ«ô*mY¹­š†ÎÏy¡Á˜……¿›™¤Œ8˜šýTˆ,ké®oµ0¿Mã"¯&è`ÐÔ¯¬¤MÓ>erña}îï¼ÜZ`'87¿[UÚíRÝj—¢MêAº†^jÓÆs5²rÁ)WfË¢½Œj¤ã´Iò;myizÜ'!3#}Âkú’Ú†O²s‘RÒ4l 3×$m×Éïy *ö7tÑÝ ­]ÔÇ ìÖœ`w·i¦ËC#Ú ßb° áPñ×L{…›þCÌþÍ7 ©¢$œ­I£×^%˜4ÿþÿŠý5ÍS8$aT¥¶Ë.»æ^~Ýà-ÑP T‚”“&Õš{çõÇΆO´¸;;$6¿ýÑ–E“;Öœù8—ˆÊwÇ ~½+ÿ´BÄ÷  ô«r}éüÖl¿ˆVã(ä@’Êþ‘‘þlŽ/~qÏdã—äJFõ€—5±EdI¤¤5Ç™^Ù³g^`†™¸š³½´ªí§Š²ù§ãÍè]Ã?>jPsÞåÑ™ÿaDs­ÿ.®‰Ýn“4ØŸŽªDOSÄ?? ö„|Ü«ª¿ÌJ}Ép¸ø×ßjøo÷©h{šRGùqÙiø?7|=TÉU´°I’ Þ©aÙWå#ý>šo-Ëݼ’Ëï:F´—líOï³—¯ž=‡Ecq&I4Ü;—c¦ß+N>K×fS¸L0‡Î³­!(€‰‰¹;VÑEêVæeÎÏ@[z«0ÁÖòl€­H³ûóÑ ê:ù/Ù¿3ÿúþÉ‚\hÃ'*ºV»¼nû!æ ÀšCÒ:¤LT.ÇÞH& õÔk¾A 審PÞ9SÒ˜U)È8霻ÀQø V`01»?ýËSWàT"É'\c»ÔaeûQ±ŽÄÔd m±JƯ<™ èÀ?™|.^%-‚Ƭ)ŠŽ¨' ­«œÔjtÖ¥Ùä9£¸Ö‚£ÙÔNRãé1ùÆ'™R3T3x§½³“㽆qÔ6ÚëûKƒ`¢ÑLwçUŒ¾¦‘[Ù.ÛoÄÔKË^ÒÔl– k`Ô† Ï;7g!æÂÌyhTÌÚpRÒõWüù$¦[·Wƒ7©À:]R/ÝÝ|€odjù­%:3ˆŸè{ O]mÁèÇLÿ1ÓíL— 13Ýk„vyXó¸:¯é^϶ƒ©ˆŒQûV†”¨€• '‰K¥¦[ž­I®Jº’¹ßDz³6ÉŠ®¯*—´9AÅõæQqMý¼¾luÄ:ãçÿXg?Ö™]g̓í/ +¤âß=.£l8[!µiõÙ‘kKï]þÇ%fèJœªÒðÔHÀ™çnÇY…Ž£»˜¦°b(œ-x¡UlÊ ‚Õ“Ïúö ÍY…¾`íŒaÖ#EòÝá›§¹E„A2òÐE‚ùO[ÓÏ4…tbo¼ÙÚ¢ö]“꺎;Þ©,öü‹ÒZëqÓ&=ÎV[Ô;Ã0-}a¾ÇÚƒÖ4a?«~`JÊ7Ø@‚³Í-€OS³4¯0^4OxO…?åÑDj˜æó+rû+WdúË1}|#³¢iëêµã?=ßÌO†?ôÌ0zÎB*Ýóë V¾£ýrº GQo&ŽgJí®¼d/¥¥Ñé½× ¸N`„æO3aClÈ@¤î‡(¡tlï:ø»PʸŠÞ©âÖßÒ¿Wß#þȼP'½ibrÁÉóbqüM×í§7´¼1‚×Ó6Û½³e©«GH³µV.¡C\ò 9а“ ÏEÆYÄ:ÅàYà|[Ôç& ’®‚÷?’I’È1PÞÏ'øÒ‚å¨-Æï¸7%Љ1‡t6²lAÞñûþyÙ‰£.É1]†ð\;>?]É%ÀãúÇ£Î[NÖ–¹´RÀÌ 5‡£q3Ô=E"‚ Øß8ãåß^2GæÜر3µ`ÙÁÔƒFn nŽîºÃüûwmT°¿ù/¶ƒgs:ëÍí`ëWÿÓéÞ{ÿd–êű!ØS:±¥¹ÂèžÒœ çÕ’gH;@B4`=±ì6þ7/´Ê6PK0(F±ɃÜWÑ#,Ož˜†È*uuZsY¡¯%Ìh €Î¡Ýw2­†¼48Õšwìƒ[(—g—7*#å$¿ûF¥c A`ߌRkLR'âì"ä ’Ú“ÖÀ Nj²†/õ—õÅýs]dþ‡8G,fŠ?â{êé8 º×%mŠ·+ôöaDÀ>ß^ .pɺ¬c3„æè$fÓ³çbþ¸ÖF•½åN«s~gwRÍí]=ʳbØŒ‚k(Oxßâ†HýsÍYÒ™Gt. 1‡ÆÝÃ…&·¸Õ±—Wf¾5­ñà ¯¥~Ä,q¶¥îátV §9¤¢SÇIÁ[y&ÙÇ3¯µ'qj½­î ­´¹ãÛ€Ý+ØÚ©hj+ôªàâŽî3e-Whé€94…“fª£ž{¸Å[¹ ž‚ èæ0Ùfùà–AkmæbP»k6¨nŒ<ˆá…ùéÌ7‡Dn§SL„uá¡2=h k•›ÃÙEçÐæc{€W EôËÙ)jw™ê5SÙ.[>Òl>Áã 8øµÿ| ´fßâ0úÜôÐSÚ¥©ÐÓ¦t”q‰x¦¼%ÅlÔ?¹8B×OËøÑI;Àç®ïïv»òé{àâ^ jÌœÝàC6_›;³øÜ±Æ"Ëübà?3ãï/à¯}¶I³R¨ÀØoÈÒSÅ@æ-²¢}:c±ˆ«àh­©8-,z¿}öÂr1ËÁ"8ÌãÎ4v̱Ϡ×!aX7ÀñÏÁœ˜íïåóÕ3´v§ý©OR{ÆS¯£é™ZPSÅ}ÜåiîV—NkDÿ¬r“¤¤¶xn©‹©‡é¶›{„UœûÄ<ÈZmÿm:ѬñÕñ«g{\¼¹BI¯ Øå8T1Ó^‰•X9¹ù7qÀžg »—Ì«;"æ˜:p .Ô%×ôÀA”WhZ T†Öv”‘Á6®»PPÆšm=oGuŽˆ ƒÝd™¡¢±µfs™vò[ kU“ãçfœMQ0“³‚Ddÿ»g!Gœuð~Ëy‚‰.&ls– ´ÄÛàHÌÌ6Š´†\)!„YVŸÌ¬F`'™$Ôv̘û®JF”rËiR¤]Ç1@Û$øehmãlÓm€ CÞ'È×9›®omïÐu&°0ä i¼LK;C¸MÑökfw”ão‹tDØGIŠ$¡2¨ûïtB_6¼jwØ•8ªÖT Ò´RÏ¿DcZMô°2熽n—DâQë†~YÍ =¦÷†ÍcË<›‡õ«¬Êyöw677ýOçï!W’ÒZ°í­áŸ|hûYŠp:"ÏO¾øþ^{Ïÿ+PD’ÀÀ˜ÆÆ[ð3ÍDšÜïu1ƒ‘¶ÇuÍéÂ0Ü‚§¹ÿFåSCî)óUÒ`´Ý²Æ Œ¯ÎŸüs:Ûñ ›ïh9ÿÉÿ²÷ñòmcîz­†“woü÷Ícz¡1ݶè¿múï¹_z«r¶¸ŸúkT~ãä¼ýæ`ý'o>‡p«VòäóVQ/ë¯%e¯ûk[¡¦Ãs‡D:ßÚ~åáÏëm|Û~þ‚´‘¬?ÞQšqp[S—u§?‘È4îåõöIN.â‘ÑĪˆa‹3Ù•Œg,úï7.÷Î-®ï“G²4Œ‹Æ³ ëræü]ž{µ€@;)¸vqtà¿~þlÝꯙžÔUŒ\T Dgœ©¬›záÓê[›±KÓ9r´I–&·®þ o ÌnûíC.qqrþÆã‡¯m­;‹W…ôΙ}kTZ4ê›øPx£I`! Ûò:ydÄÖÅ_K˜Psƒšåð9 Œ(ËÞhÈñaPO,«[Yb9'Exmg©õ]ãK×ø»£°%‰ñÑãC“¨ß™-ÜßÚz~ÇÁí ¬œïnH¦Äì&=’‘áìg©ONs“½Íʳ½»¢¨"!ù){ŠÞgõ gÂR{5㦾m=À‡M¯ü¼ "{ª$µ°hö¶± B¤³uø'=ONK4óã•ÅNèÆZ!ØÁT)5H<pó T˜Ú=uÄ'äÖƨ®§À$×§†šA"Á›”бÆ×ØX<ûÒËdLÅÌj‹DCúÜius”I>1X§ž ²ëƒ—q>¯¡”l½x¹Ø»Gƒ§̼x•£Xßð:4‡Ælä»8´€NÝúÍ={óDÊÙ0#]©SEsOØž—lIYæÛƒs8ƒŸY·¿AÊ5ÚõØ©°…œ‘´Lš‰{tp¦þ»À—^1Åÿ¶æêø½Üš˜p7ýWÛ‹ä3½·'…MǶ!Ÿ ”ÍŒš‚ÅV¿miÜî”æß w;ø`Á´ jѶ”º³ÙÚld’ÒV ¸íÝQ`¿´H3‰ƒ~zm Zl‰{ÐÜHAE¬=|h 󲯩J;Ã[5Á›í’47! ¸Õ×iW¨q×äU¿c}<Ã8j¾jåE <ô ¦7 r›‡›ÌL7HÔ&¾ó¸•DÝ Õ2©¯éöXÐ=šO­›üõ&v¹ä_£ä6«¨àê[ú*Ûm3ÁaŠC–i°6w¯øJÚ+­®Ó†2ÙÊÔõå5mƒ€mM©ÍörTã(RøÞ—$Ñû»Ô§ãù6Jšt ŠÝ.þ„­|8… ÝŽ]ûïÿgÇCŸFÿ?YÛÍqCc:·ÏüÊA¡# ƒÏû Ks:±wo:­0-$p¤Ö19uÜ~à ñr÷*íõZ5…s5 0 4¼±nuËN=Üðÿ¥Œ$'›†™‰˜¼\µ¬þŸÓ|à¿ãùq…0ŽÍ¿ëZet; é2xðÅÜVm´Sû\+™Õ*î*zF+½Õ–»Ìù#ÎéÙeàöP¿~1ö™xTº)xΩÝcä6#¼U^›O-ÅU£K;Ÿbô]Zfj˜æx¸¹ÖškUKI&‘¬òaä¦ó1 Idß×ñ”Ê_û»}:h/Xz ²Ò¦ŽÓ4“l`$¨wºò±E´6€ÃX F@ÀÓ^Š|c$wbšÇ³m¿oÔΨ÷ÒxDçÃDŸ ¶:Y9PER<ì†FUôƒH‡ˆHôuÜWÀW°Wr¬]ÀÄ­„2Zç•fˆ(èóhœ&`’VRÞ4K°;S¥O%2úÿ’†i¢Ü )o¡Ã¿åº3ïN: g @¡a$†QùÔ§ô¦¶1!§äF ãàxèk{4T²Úqª‹[Ý q¡7ÉZ0OÇð"ÌÎÀØ—q(Ì¶†ü•#©ÄÈxšQ§#ªzÔçiš™++H8C¨QÆŸ¸ýX/C„l0‹-ïŸî½_b­e1Ë•-„ÙÖÂ­ÕØ!<¹bZÈC8gë²~¿ûÁ]ºuÒ3zÂê­¬œøUŒøœ© û {ÓRÞf€T]ÒÊÌ¢"ìîUÑŒã`0^É´‡†Âœ¸·Í;C=Ã.ïËLõÐÒ=’3§5û™«ÁiW^rãç¦×¥{nÒr†7\$"?œd”X€¸š‘'—;M,©^ÊV§¡¤ÜuíH¹È*±ä‰zkné;/G€/6 ßèêñœ’ºÀÌ6:üêåa'³8 öV7 6 nÛu9ÚǨÙŽt€âÍÇ—M÷Μs¢€þ( SIê†éB.Îm8àr48à”¤£M >û_ö.ÿWbƒˆÝŽ#†Rñ/hèÌBŒª¡¨ èp5Vé[É6¹pV5I?Ay¶¯Õö%u¼…ÜH›ÍP£í8ñmšÔvò}ÚëèÉWº û\'åzò1€s¤G%ý 7ûì©*9ßòPsÐýn,ßiCÆwÜ8svÒžªžlÅñys»‰“[ŽKÞ‚á Úí—SûÞá K+œ•Ÿ£û3ŽÚüf‚’a¼09ÚÃàç””/Ú’Ýæj„¿(§ã8íÕðpfçLuIP¹Õ´ÏÂívE …£fÞL«.:ŒB?“`KóeW¾òUšÛº’{ñŸË¤I³.Ê@+•^•€óé#ÍiW¾ò#øS5VîPl¬Y$£¿(Iû£ªƒ ýœt¨³QZDyuÅsòP×e2’Å~VôÂýAªjR-jðA™ YôŽ›¤^e]AZ_È70º"µ5¼¡½|ý÷´»’…Bá¿T‘ µ’8¸ü·‚—CêÁ.H21i4µ3ög„T²kƒºéJñl¢†’Â3óæðCë©b…|—¿ö;¿`„à!ê°B« cÆÚ 8{zÓÝTÑ®=%¡Ë™ƒ††CIú5ZærS´Ý“6Mñá¢ýè³6¥fÒŸ‰]Ü ¶ƒW3a‹Û Þ ™Ì9·Ïi-¶7¶ƒç;†}y@%´;wößlê9íÍRmÓ¿Áó†A;¤o;p^Žq¶pp´˜¶m@"1”aÓÞLã 誳ëEIÓ¶™h Äe©1DµªUâ=]…Šá£%6€á ¹!Zvõ¾ËlŽVÔŸ@úcŒá¹É§`e¢‰áYíì¯ïN~Œí¿Òئ!³Wo¯üùÔ gVE  ºêàðÂyŒøF›´]!â²$ œ¤˜”nR;úÐtèY)›Ô;ütèt))F_]¹¥yÈ8)iãCøX‹5XÒ ”]‹Å\_ ^Z³¤,tƒ[!ûõ%Þ Mp—œuiŽMIô«îX¯a±µÕ¨Ô1¶þzÙ›µ:Ê@pè¯Ù_¤íH·•„5g“í†Ò‡Æß™¤oxlù¯_.0}1Ê>¨Œ{£Æv³ø£?¡K9(ÝF$t$+áþà"lìµ³'ÅÓÜqo3M à³ÐHçapÜ´Ù&Ù<·áÍ6 Å“¸«﯑µ)xkµqõÊ%±_†M´¡¦F†¾¢NYFF.Jë;’“ -Í„!kßZŠDå¨&cõ7ºèµMÚ5áç›Bþ|¾ç×JÍ€Û7[“Ñ0‚ó±a¡ºvUÔEÚ7¼(ÐAÃ8@µ”à *lߎx¢\ð»?Ô¦è§4³ùyf8ð¼ZÔf*á¯ØæÌÞ»tW(“öX `fñÇV· Ê‚ÍQße›ý2úʬ†í „;îàÝr¦8ãîÈËX6ôL¿]3ú÷¶¿õòeð|Îo`àôxªT–›“‘Ëô9Æ).%ˆ,p·så}šuãñ„î²Ç fÿªÉsu½²'l 0T~k`·Ð¯_® ¤l-{ÁDÝð½oóöòìÔò^ãq˜Á^G0¯íª˜èŽ‹ Zà¨Ò˜QÞ«‘‚#B.öB«Œƒh…ð‚ëmØvüm¸Nç¡4Ì<¢çÙðE•ۀš( ‰XóµT¡´× Sîk¯'½,W>ÑÑÔ¤“¨{ëïviìFiؤ…µÿ;pívçpí¤ÌgœF™Ib R þ[1‰ý–Nÿ6h×ôgef0ê)¸Ò`ÌŽ…ß´sB°V éù1>ß6>$ƒÆH—ß„ay§àüüÜG‰ŽKu ö=Vj¼ScX$YTÐÂu޽(ÇÎ@·zχ f$/÷¤}ÎàOˆ™¡ 1€ú¡V.Ç”)U< ÊÝ07yÕœ‡YÔHqT>Û0wÖèp^dÒåˆ-LéØßU£N«¯C[lÎ]Íó*•9ƒuw`ÊØÝžðÇ–ó€ ã}@u•Yß=ì2Ž¿'ÀnÑiuèCåa"¥+gRuÃÇ8æw¸¦.Ù'­PS—tQÞ¶&eN£Jrq§Ч‰êèäþgÅ®²ó¼KÉ(fzG¹Ø‹B€Ñ*š)G§»gþB?#hÐß1ˆsõâv{ûykÌ@? /öØâæøòí¯èÿ@¦7çȦ ±É#Í;çn’¤–7ÏM¨{=ÅZn>sjI^s¯¢šž«†Ú$Et¹*5_ß³=,Þ©ê uÜ ¶6^?ßxýjÃÂ;²w– cèU6ÎÒ"êmœÒD‡ZÇ@¢n“Áî.ßýi.þ@MÞŽj•rÎæE“Ó™Ö‹{®8­=‡<ÏS²œcìáAiRy~0U'98¿û>ûë2n: »HuÇEŠÑ…Vf.¬<£šq|ÿÄÂ&û\!šmg̉S–Üàmþaó p¬ÿ¨óê^âJ#˜ ÿ£Ø0uƒªÓv¶yqc2@ f-—‹gW@±ÎâŠBà+ÑÜûiÕïŸR€“8flî¦ ¾çAè°Ùûê’ß/FJŒ+³3*ŽŠP_Ülm59;ªÙ+¯¢"/Ù¸ÿ9MþKðF[ê2-»I’'‰ D‡lÊ|°‹f«áGÏ8Ŏ䯨`R9p÷y³Íñþþ%6»Â??`é¨}°¤ÿ⨧;i:lQC8¯eõÎʧ‰"¨ Ê•­çw9ÙÚ2oW’«nã×+k9ýÚÒ÷[Ü€vŠ„=zÅÈpóGiÖR)ÆežG&„´B£ÅíðþûÒ€ìÿý?óÄ\y«“lÊ Cź¢H!‚¤OÛ© {ÉŠIÔ÷tÜ7·!°RGŸ‘ Gëvê i¤#[ý¤Ø·ôB…«œ¹N£¨o‚ JÒÛß©xX30(E85áý”m=$0so¦0ÒDŒkZÿ"{;.“Є‚äˆ3ùK©‡¦ÉˆÀˆ2H‹°Éä©ôÜá(*¨.Ó,ÒëÕ'ÌDÑ6J“ÛÍ΂SòÎá—[8²xxY=TÃR`9öƒ4ö€ãt[|çJNعW7!Ž÷u@e+Ÿ³‘JØORµîdòŸëï·¼‹¾µ~o¡þ? ÿlŸÑ …Tº×÷õO€ÙÜÁz²‚*–•_F¬"Kø0×)¤âSE¦ŠB§eˆíà=m3‹–ð‡• Wo@—Äá ›Á3N•Ú ^Íù\¾¸2ŒŠÐÿÄð˜ì&[,žæ‚¦ªª;&ƒT܆¬úÛ¢õ¤¡“˶§‘±è`ˆì/Œ#zw¤Ó&c¤ßäôœº„>îvÍç—;­~eP~t7MvB¤ ¾ñw^ìÏç‡vý=8s”o„…|Á…Yt>‡q)ƒ’QíI}M©¯iLh.KÉ™l•j=ž¹ÑVDü¢&FZzLF\3ÎnÁɲ^sÁóˆiCl¿æVo­¨ÉÏ‚HwMíS„¿Jå–=9Dšßû—o~¢ó̧ÌÌ‹pfŽ)£}ôâÅÝ·!- òTZÿ¾Œ =Ö¿ÐEò1ë×C\jÝTÆý=ŽŒÐtêEþ®FÄ «Z$öÜÞÆ:@ßôàøwñ•–¿’*Ìh‰î’äµ²ÉDÕÂ×MÈ›Bb…ìÊî°™»+-:ƒÑ¨[Ýe¼ 1‚I Á_„bªú7Š´ÿW595÷jrÛBŒbWuUJà3/u6P*kþ’&Cp»½bÚêD·*ËtPdã¤豪”8¶MÍŒoµDÁ"£[Â+4“"pLµêùïu)Ü€‰|hÒFnò$¢Ã¥Ç– fösûÐÏ´>§þg’ ðz´Ï—-ª)QÒàT}|ëÝ…šˆH=šd­‘ŽR±ƒnŽTiÛ€¥Ó쌘`”'´xåÝZM"n.3E"µp­5*jËóC4Qä ñuÜJºµ`ÎÃrGŠå}$¢P†r©¥uPvº.L÷#•ÚÙ€,†Ý’ŠLTA“?ˆ:£Î¶Ž†)ºœ”áą֘΂ fÛÊ&Å ©`V\)ï› Ùâ‹`¼ËO3tµk²¡¬›I*’pù¬øúm"åˆåU²±Âƒõš?£©ßA…î¯ÕÜ‚>èæ}îix–óapÂ[nàÂû¸.5;ø*³ÏNTê~vòæaóŸÛÁKûÕêÏ|Gž¸Lálø&·‡Ã©‡ã'µ¼™ÒËâhåÀõ‡œE,Þ<kkm7¤6RÀ\ŽQõíM´ÛŽT}ÍX!,‚†M]ר†ÛθŽ³$ˆ OrŸ3§ml˜Ð¯ žFƾ4’‘jã˃‹j¨Ç4yÆÀž¢DG O“#Ðꑦ« PÓHÓX‡l™EÙ8go×B£…w€ò[ÏU…È\ôM¹wGÐ\Ì.3šZ;Sÿ¿Õ7 xIèô¥?ICηZ²þû'ÿz!GáBÐ)ûy][ã²û&Ëû}ÚÕu(Ú$ò–ü©²–þm?Cäô¹˜gá˜?-TWYŸkQ¸»ƒ1ÃkT Å¿á¨|d[ÈtB»˜ï-zPaZI¨ÿfˆY385vÃo' ‹'ÇÃÁõr\=­`¯ÞÊ÷éÒøß|€|ÂCøKC  äƒ`¤º!ÿ.ÝÝoÒkÂ_²MÝýbBäËá±FêÈ ‚'Ryèf‘[–›06„ØBV™(]Ä‹‡øa´·Šk¯4DÙw?{øe™ÿ)VÐB3ÿ½ ¯éˆ†ÀW4EkYyä&uú¤h éõVðrNü®(}à\÷³´¬Å›ë»ç.g5ðËáY=1cYÔŸÄhEÉümu•LÓœËýí-àÚ½ À~°ùŒ„àg;ÁÖœrüå ŠÎYæ8}Ab¶ëŸR¶Á#ÍÞÕaX":„OK$šüsà‰Faí¡¶%¯DM¦"Ú¾;uY’Æj”*@:âéјä5i=ò¤Ô?'K[>VFôg†‘ÄË-íT=²Å:T“yÞ)í¸HÆÉRݯG²°‡ È=X|=j¸¼; q_Ì;ØÎ„&’:5OY-Í rR:îÖöႚzÒŽ¥p¾ewÈY7ciöt |aˆ’¨4–"ñli¤MÃà„”ûÖ‹/dº#ëu€qµù[YúU“ð-³8'·¥X`,èž»+à01z“Ü"½Š]Ùãt Qñí‹2èW´¿‘]»Æ‘4U£"ç)³úP,‰ßl ' ÿÛÖ«×›ÛÜZdúRqX©ý'ÿítL*Jô­55Tþ§³39Î]8­Í ·ó=Ç$B–€˜Ç†8ÇÁªot·4Ù6ž¥`½|B¬LHuêjÈe´l˜±›‰7Ïr|5V-©ý±Ý—ø0éª÷ 8EÃóÎd»©BE±!TZX€ ä„5›Ì“¦¤žÑ(%ñ¾ð:Ã(cya[œ#`ñ×>åë¦âÙÄZàIʤР#™°ôîJ¬õ£M¼­¢Pv¯Â‹áSI³ÂBÀÚ¾>$Žw{&‘³®7€_ëDH²£,/`¸Xx©8WiÊXdÇ”¹¦xºÿd QŒ H¯1.f’g¦K*¯A²€¼àNëõ vã ô:Þ[jw»±W7P©³zâ"]• 7n"ʌʂ£R½’–$;óû‚½Ö:êÁ0vÖ‹*[ ÖÑuF*¯¢,_œçx«.ë÷¡Ê!µ“¦_ ™7F+£þz3!Mx¿,46£ÙN N`ï‹1–]~%ož§‡´xX;c8±:“¡þŸy&]AÆT¼žÛ2.3χ6:š^ƒŒöDÔí"/‘±HàiƒÚ¦3ªm4~˜j™–}Æd•×x<»žÁçý,cÃÕqþQ¶Vf—Y7Sá*í`¸bÝ+ŒEϲé`ŸzZå´Gàd`SÊ&n-eÓ°— m#Ï,j 8}þÙÚE™0Þ5Ê„•ÓDаjÅ„шs¶ ™Æ°|aûžÂ&YŽÿƒÕñó \p’šº¬-Ò>âÏÖq KÒ´¾+Õ­` $DH.·O]svJØ:0WïxÕu37xPì朗ppcçéâò?û²é§ð­ûíCo­28œ’dD«Ž¶¼£LkÀ¹®½‹ÆÐ¢¦ë*ïkí‚&êY„¨âÁº§oè~à Û˜6ùåœMG6“ÜøäÚÅQ%‡âõè=„wÂn<3Äì6>,y»‰ 1),BYÔµ¡„'L$Ù÷:g.1=2Å`ãúÄé ‰‘þš  s”P»‘ñK»SÓNÊ2±ËKÖ´.æ+Ç„›]™ à*ÔmÝ|ŒœÍ3°lUSšQªG¥Åd˜(¦Ïpnpzïÿ¥&#AB¦B-É =ÿdÿì½_^:‰¦HáïÒ ÆøØêzTGñyz°£LAÐßÅ—@¾ÜQta:ù»îR`.Ýq{c?Ã3®F‚rI‚‰»pÇ-o&H1ÕqLォéK‹úLŽJ” ‚G'¾`´ÛdŠÓGÉn—g§³¡Úÿ\’ÚLÌHjFzŸ COäÅüøç)mur˜Œa°ë@øé>øzâž¶±ÒŒ]q¼ÇaïQÃ}~xô¯0Úxý¯l¼¯ë¹önèÎ!þéó?×´øEE…5Â(ñ–?îý£†?Ž:ysg»CRà˜Ù¼c8r•®‘¿_#«Â-]šµÉ.«<©ô’óñöý‚ÚÛíí‡ööC{û¡½ýÐÞÐÞþ¸ÿQÂÞ£þÇQÿã¨ÿqÔÿ8êõ?Žú†£^ìº9ë⤖@gø_åðïμaÅë`) xqIheÃE2`F>´pü~ˆ?ÄâÀqà‡8ð½ý¶³>[ެ¢£Âzkÿñ¢×ÕÏÀ)\%ê  äÕ<©§+áòÃèN„ÅsRÑ›„æZšÔ°Pq­^ÚchxÌ©5Á:®x§ë›Ùý}`Pã/Ò.s¤Ä©¿«ùR ªââ2õýw›œØŠò¸ì¯G*½d3¨¤^½ væ€SloXFÊo說öZÔtx_}GU}^½¾ûcÊ›IÜW´Ç#|PNùSKÎ2‘¹èý£å;9¢CäKôäÃ\ïÓùFÃÂ?Óe7{Ç\F|¡U&ÑMSõ9ç9h—¬’žM^ÁÙÞÉééÞÅ!g:èa«wÓÏMZÌ÷¸f<;´55ØÛþØ~c†òy°5ï"ÈÙî×UûîN[—•£¿þ†•^eÝÔWéÍêuŠÌj'Ï'Ål´!ǵç}ø+®OKsêº@ê9¾“2¶âì#¼1­Úh®ösP÷Ix¶Áeˆ!J¯ÔÚôøÈ ~ë1?Æõò·Ú{$y˜¼¿”æðaº{fQËO&¾*çñ3fÉ1ð•ëñq‹ýM˜3 ÓçˆY4ŽUÖÀÃ*—[tP£³à£«D¤Ýa ª¯‚Ötk4Ù ÛáÏÈ:-i+è"u늾¶HIh2×hÁüY§)€#Pr¤Âa”/m«Ý5r§€HpÏ®!B×y–æLN9’ï­|<…Š[µäM FBÖ®.ð·EbC1jjål…ÍnŸŽææBÞ=Å~ø{«?ºY)a£šqMY;ÍŽB¦ä”¤×çÁ&Àývæ¦ò9—ËgWa¦ñðQ»V1”<ž¿ 3ùÙ7ÎåC•"|†”[u_A¨gvÎdú·]œ'Ø\èv{!8{°Û/Ó@ºÞê^ð·@\·w¾swIê@œ?ನÏôøoßãq4Œ­AçúÑß¿uË^¦åùý£¿—þæl5êð[øïÐá°½1,í3ówêð¨[ü˜Ý¿[gçC`ýí`ëG‡ÿ®§ZØR~töoßÙ½œ†pó‡pòÛ÷7= B€ÄýÑÙ¿ugöƒñý­²÷ïÓãiɡσg?zû·ïíq—ÅÀ}ý›÷u¢ p9ñAùC0ùú;rØà˜ôöoÞÛŒã•ó1ùcrÿöÝýkɘÝ%Ðl3êõ×?ŽËß¡×3F)³×þ˜ã¿}o6jyÁsüÇÎò»ô:@2¦Ù ^¿þ!þ}>RYÊ)FáØäˆ½þ»ôúnã­ýý{ô7":èG—ÿö]§`¯1ÅhA¿Og Mû£¯ë¾¾?[¯~Äüüö½=Q×Ì‘ôÃ2û;õ·VœÚ±ùÃ~õ»ô÷M‘ÌZŽÊzæïÐáË?ôËß¡¯G£œwî;ÉoÒÙ9Hv¨wlòÂë»2[Ú¦I,šIY°˜¤…|¶èìÈ|[ß:ŸLç’ã ™Õx?oQ*å+­Pwûæ ‚Æ±›R+O5hI"˜ŸýÝÍó¥5¡&‡4h½Ì¦ í2¡Šõp‚Z£c>µô(B‚5“Þʆë3íͥʲ¨‹,“Ý¡Ž“4¯5x¥‘*T>´½Êޏ¿e]á㘧‰Ý³,c—µ[¾2çÎ{è•Sô#´Ú{\§1(*ÊÜœWÏ·ƒ­í¹ôACÛWdjê£3¹õ‰hÌ®9õÒ2r†x^§Æk>ó?¹gtSƒ\Ï×]ä@«<Ч?ñ¾Çq±TÖpœTÈàd6¯TÇ”b°(Q±Oop9(eùH–Íüù™Ô¹*¶wZÝé ± û¯0ÍQ7oÚ±•…¿ózDç YýHÙO°i:æ¯ú|šË_š©—ûzôp<)~ƒ¦+¾Ò¥i¦”ñ’½ø+SrVíq{îÜ—3[?Ì–wþ|ŸÛše~kNqž?åî ÏÖø{ À£;1ê#pŒæ×ÛÁ³¹©z¤ºB ‡—=1`^t øÇUÖuÉØÐûÅ)ƼÞI%þ“ù«“²ÉÐ #†Ì쨀 ah±‡™šX”˜ …öÒ¶Ü¡‹Q-LèrÓ«Ù|†F 6b°@;u n²!ª&Y( ã,bTz­ó4/ÚB”$W3p÷e–/‰óɽ:¦„É»8ÛÜ_Œ 0•_noOÕ¥þâ€p…Ç3”±Èê?¬Cäþäß‹r‹žüt  ç½‘*òå·lP/Ø’÷Ï̽„®’v¨‡à{Ú ùokïଖkÌ;é§Ào€W°Û¹Îñ¡w⊫ùçhDòò¿ù»W!¾´º''Òh"£¯›:8î‹4Ïm""Êøc«Èºy™ìtx*/+–MBD¨.ßI“V\è@7-c(ìÎY –Ÿ÷Fˆ “õ5¶˜çð„½¼[8h0ÿj³H›ÀÛÆ±šROvT.“ 3ü@0:¡½D»å!¥e·ylecy0ù#8w{4¡€ ‚üXº‘l,è)á¿6„h²h#¨çªGÕ9ÞcÐDMpb>¾?yQ™-{ûÅÂ!yÎ?ÓëÆ©4Ø,ÂûI©°–µ?ž¯BÝYI¥©xwIoß$Eÿ¦§]–£±¿ð6½<ŸNC‡¢¼À¶L;ôÇ;w¤ëêX›y™f÷dL[÷BB¸ù¡€ÜH3ƒÙ¤ü¤uè­í¾ç•3ÏS¦1:ÃÓ1Ã,Ä ÂÍ#±õ1Öö¦ªkE$Š G? a4ˆíÝàl£/åXšÖMǬ¤Ž5 [±O‡fWX|Ñð 5ÖØÑ=Ù·ñrxw¬±²Î²Loš{»tk¦ùÀ‘×ì(ºR€”ŒÆx4ÿÊÒi ÍZîè\ V¡éå…é M+P8 aŠ–“¿Ïè˜Ê4#618Œí;äð?¡›°窧Ÿ+ÈP‘C]ÃÌd=Úœ ÑÃX¢æ:0$Oet•öN9]›í­''_êø\Õ¬°hBrxG ƒBJØ™L£¥cÑF{§ò¡ÇtÃdÕ:ŽÊ·ËN®-â@Gi¦ 7qÇv ¿¯N0xg4»b:®]ý¨ŽF+Ö5’6Ó4›zyÙ)2 ¤,Ra:Ú6Ñeq54èŒ^U5`‰ºÑ>>Ya¹ƒ×8G‚¢Ì·‚¹ãfv}»íÜ.ôZV ¨°€¶¢÷v%wÜÒ0üèq4ìå5CGm9œQ0puE²k‚Óþ̬—›fµM‰`Å …:F&I* þMÇ Äš˜X®.@þ×a`g9‡¼Xeýú Vßí&CGçâ’’-BôN¯§Ý!µ·4 w:î)Ìá*åP›Ë Mæ£NÜç‰â­ÙÉiûÀÂ<DÁ´é¨®^ç ( _cgÏË»*6 ÌÔź'‚¯ >ÕùH@Åø§ “‚¼AˆÚ08 ïò –&mbëTQœ³ð ,\®Ñ/@&àD4!‰/"h⎠™‡§ÎyÔþ­fúdôì«1>f)G¥ÔÅSt®àü+2-uCþl7üw‡æß¡}ì-%»ÿ Õí±A;kÒ¢ß ¶žù[Û¯ƒyü§ÄÊežÊ{¼¹+žãGf¯U˜H¶;¤¶‚§0&”̳H¶}ù‘7ùñXcC°Z*özõê~ò¼¦¿'hgÉWÎ3} ’u™ OC`[ÄÎEŸbÝÑ™£ì·€HÁÓ¶?ÄZe†(½4CÅ|ÿœóŽ—4Ø—yD; Ü¥ÞHsP5.2X_¤R[TIãÕéào+Ÿ&Ô>ÁYaÀšeäs\Üs{s+ØžÌDb6R;š1!X±?†ruGIUãHe*÷¦NÂ9 P%›ŸWId¼ :E4 tÐð?6ü³ó7ÇÛëÆìˆV4£„ñFÒ³WX²° ôýΩÊcRŒ›4 €—¦ötêåÌž+øÐnóÛ;€ŸA®íʲH¢µý…5œ»1 ‰ß%€w={Xéè®2[o¬ûÔÖŒD‚H„zÇqŠÓV93ÝF´t¯§YŽñÌö9™L™™—VëÆ—“÷oþÛ)ªýÛ#µäÀå>^äí—Içy°\?™.éñ+«¢þ¼ÏàW’ø—0ÑC¨¡!ÛÐ h®úr¡µ¶óèÙ á™Ý<Û››Ï6w6iSyõ*x5Ç̦D™KÛÉ¥µ®¾Áèbh¿lm™Iû-w܆FZ–ß~óîdÏ߽вÖTQg§AÔ­fÔŠ#Z‰›/¶¶¶6ýE>hj“2‚°š*–qD˜rÛ&Ý.ë±6=£á&;wEá™ú £é¦'µ˜ŽÍ‹òÖ,FOe*òÌ/´ å¤G“²4-6agŠ&½Œ§îÊ|n`Kö›˜ ¯=R™ÊéÙªú»mleš4’™V;¤ 5°>hZ½`átÿ¬ÍaÚ~[]¾ðSº£®oßidU”%2Û·ø’î9Þõ‡1TqÉ ¿‡{9?µ¤í †Ê¯ò|’f! w˜´´g-ó>ÒL[m¤-˾µ]ívøsØêDýSeô>W¢ú?þ{Uö˜ç󩥓~—ÉŠ³9íó€p÷—þÖæ+êóy ¼óòö–6ýc5rÖ¤SsOå±üÞ§ß+Ëí^{£¨¯ärÖÙ™ú´ûvÒ‰·‡Ý Κ —tß%©IŸU6Ä^œÀ¥:j Å64ƒ œ&QÍ]ð^Óíg`ßM@ï–,)ܦeC;ïYIƒœö šÎ|aÉ{I˜Ñ¢m6OþSj$þ¨ÉŠ ÿÂäð”·Ã§cäR?]2©Î¢á€ôÚùÊ|@§î0šú»#¸>ºƒûÀé?ÀE*˜J¯è „Wdfty@ÏX¼lÜ¢~=²f¦O¤Y¦eNš _sPŽÊYØz•'ÁÖáLUצ+ÀIw~iŸzy1¥2­ (u{bää©Þ΂V°Èñ°ÚæqßD¾GI©àÆ åüŽ6=Û®v¡Ç@€'I&ÔÒŸÑL*v” WƒM>Ù'¢å˜,;·e1ÂæAvj%YÿPŽÈy”Ö… Œé „ÞhRuk•{ìØ:ôà锺ù9õi,ÚžQw0õóûL2e²ˆcˆ)èCFÚ™p‰šYHb¯™É,“òPM´ÌˆC’†t„›ù„Øž! ½ˆìsSèç2ŽÊüœ½i'íÞ꡹œôi³ú홉‹sí4°¡Æ|ÉË[5ŒÌìɺ4 %¬HÛKCj3ÍDÓ†÷©ÐZ,ÅÝóéBÅ=ÿ­bÏ€ÜÒ”ò´=:>h™ÊÅ’ZÍQF¿FæR©ˆd Æ .VŸ{ŒOÚ"6Z™‚;wm†RÀ é/\w”_y›¶Í Ä’fJ¯oæLùïÛL¤Þê4„`V ¶þ¶ùjóõÖÖßz[ÝÝî«Å8ä{y-ïúÇçÇþÚÞåɺŸ=¿¹ÙÈ^ÜÜÐ,ŽÆ$Ùsˆì™Cíà>\W×ÔxgÂjë`éIbHÒ~ŸÒ1,î~7NÛ^,´~Æèžˆ}†+ Ûò¬uتVÕcï¨NË®ÿIgŸ¤-}VxÞÐCîÙÔ÷Âk¬Ç0¾¤´JÀVûçwÕÔYJ ©ð¯èÿHå¡áLèŠ]És1‚×ôÈ…ß‚»o©úļ9ã¸òÚÂ}c¹lï¶wjUôÉÄS1¥šmBk¯Ë½Ðv8(Ø@‹°ïÐ$øt²G'bw@‡-éUÔ€÷ô A'‹Â¾þ¶Ñ»»/ðËü3ÌxñF·S7õ{"“]tÒ›&f3À6^,r‚¤ýô¦¶žŒ/+…Ê~L«'¹µW»Õ#ÀMÃ7I5K:/JBGڨ󤽴e.­ä›·]УÍ/ÿ>âFMÔ~3YãA9cÕ¡‡£OtÒ5œØÒ+Ïï:ZLAÓàéWjsw}Ï&/Ó]þáûcÖÍôÊÉÁ›‡gúƬݱL›Æp:~ÒF\~Ï5TqR#(ta‘k'¹ŽPú¾S',›Ãÿ^ÿ_iUüÃ÷w¾lÅ]h0X±%‹§R<Ç~|ÿÔËî»ó‡üÏ£3KöËðÇÄø¯>1Úg3ÇgUûìªê†o¶/ zDýû6$¡ŽïöÅáû®[+½tÎËs×ü©ó/ÿUù–ñ %}fA?»kÎB“ÿ¶I[»cYŠß‚{f?+“”v;ÿ‰¸…zÑŸÒ8kÞFY:-éÒö¾´Hæ'Ø–©É‘ÿ‹JRsé–•Eþ{Ú‹£õÝáf¡›ÊAjN‘¶î¨¼ˆt‚ºÍnW!“{ÉFL-L|\ÐâðMì/›)Ûã²ÍmÖäüÞ¡~,<ÿ<~,‰ßoI¨òaƒúÖm¯ºcÙê˜íÑïó:ÿ2/ò/¿Ì›ž»évÓ¨Ð7N„ÚËv-•!Ö&ÏõTö5ÒSZð*Ë÷4ø—Y„L–ï¢d¢YK&ü¿Ò{~÷õð¶þ~ýŽºã¥[&øÆM³~ϲÅWðØâ) ÛP™#7?ÄLòÝÞû¿Æûv²¾)¾BeF.Ü7N°Ú-Ë^ýŽ Æ€¤;ª/»Š´ G LØk®öBÍRø—i’öUTÙQTvmªã~_'y­³ëWNT⿉ã(5ÒçLà¢îõüOYšŽÜ׌ÖûM‚°£³þ¦×4Q4Ž0™dm<#*Öô¦Œkl6;l¯‘ÎÒÄ?Ì”y½S’'§Pmÿœ#/Þ"ê•C_/6 ˜—‘±Î"팺©“iù~‰VƪÔÙ÷Ù—0Â˶¥“æÇ¤¹s¿ù/±§ÿ˜£ÿ´s´Ýèü+NE.÷­[ÜÌM¿¯Â*^¶eÿS¾ÑýäûkáÃýš¸üV-uö®ï[eë\¦Nÿ£5ö_iv~%;úkæè›€£ò»ê[ðÑÀ¥³ïÑ#ã¯8²¿ÙNòUF’ï°-7øüÓ¼Å¿Òæ÷»vÜè+6Éñè›§ÁèëL~IDƒÖ&MAäëc€½j¿Œ¿C‹š±loý'~¯¥-ùìHäˆåkV-ûÍ“fþÆït ¹j—ÎñÔVÿ+ÍàïÑ1€ü²¯,¤à·çì]_ÈàJ=Øöû½êÒÅö¯ò’ÿå’ߢ7‹¯Ø ¿Ù P|ß­mit÷ߺîl‡\Å^{ý­ƒvý}ízé„ÿÃ[÷¯´»­Ú!ã,-ÒïÓ!ÿ$8,‹Ž'öÍF<ˆÇsGæÎt”RË3=ɦÆ“øïõÄâ µ»iQøgÝãL÷×f!i‡Ý5iÚûVÞ¼›"³lßÒæ_›žÂ…WŸuÒ¬¦¾)2uwãöâ­ÿEJçþÚ—ptÓð¿èñ`šÑßDçý¹îuÖ—O¶o«ë»½^îy¿}ønùþ1ßýrǪm,ç•™ïµî»Íð«þªýrØ}ÿŠ=sÿ–xOØ÷|Øù|FÓ<8ÍiPw¤Eþ g8ý9$¹Ý?ïÊØ¤B̓X¡Îè!ÆM? c¶ò€¹6€ ËôÓû»ä–ã£î-ÒåÕ}…¶ôb’fC“âŠìØ5zÂ*ÛM2ëɃWó4†þ‡¤ià^£ØÕsrמýέ ¥ €û—ŸHRjàÐ v«ý`H_–D2.Ÿ¡4Wá[+ê'êºÌWÃLsFò¥÷¤QÚzþ"xv7€ƒi…:tèŠca„ê†LYþZ†£4/âipzÁuÌ´€W‚YGyÿÛFðÅ]aÒƒ|¾Õå±=8ÿØðó‰7ü‘¥@ú4„\Ìk“•ã"o€¤áG=°BÒº¤ÏÔ%Ø4Õ´(Zƒ]CµR¡‹#”q)tÎFê"ÆxßßÍäCk½<’T)á}ztÏ30n3¤ðÎ"ò}mïáÉàžB ©©Wèõ@LÒÈÓ¡Öc™d†šÂt·ò¢Y:ôUó#À9¿ºþ…º½ÙºyÜ"ƒÒ•§½b<õµã÷ýãóÓõ ²8µl,k‚ å…àïSvW)(ì4 sÚ8N€ïd)3Üc,4k‘z Î…'šm"§ÍO^0eR ©LÅ»46yI3TQAÅåÀ~p,÷,ƒIÖ =x¯ÌR4^ñß­„A@2÷±;{þN°¹í¿¦ÍrbëüðH8Œ>Ñ2ý @i·³5Ê,å±Â1\¨kí<Í ^—×@·®›Œ5êcpm´”ú £í2]¯r†Öíõ¢nô¥-ƒìþû4M:%–OˆKI«GmS|5xhê±&^2¿·ß™Õâ«qnX’°™sßœà üŒêl.ß·Þö‡õÀ˜Å§íçÁΜuðñ¼½pj:&·mWÜ vFñ–/,T´Û&ÿKZ2ö² NàÙk}<ž_æ†É]`m´lÚRgÐi±zÓ„ÓF÷f›Ú¤MÈ—…O {wøfú60áß©ÑxÌ!|»$zÇÁÐ~oõG7«Ž9¸AtñÜßÚY@tÛÃ&ÕÜglñcw¬´©»¢ãˆ{øéáöÞû7v n£Ú0…Ä™:Z ê°©ŸwùP¢³ªÈuÜ |)Ë´\ŒÆGµ8iHú*b…ºû„U2s8~2WqØŒ¸²úâfæ².F-6ýÌÃáj\Ãj®SxÏ,u- 2]5Ò™Ê+ð:Çl»Ð&Ûóm<¼úL;¸éã2Cöìz5ór¦»¾£6šdÖ´›Ž§ OˆÂ÷¬ndÖ±Ü>ˆy¬ÐsÇ'gç ÍŸ ¡…ëðp E,HvÓ G@:̘Ç×þÚ¡ mÜóCáÙò€" ¨ ‚¡ i™drˆ$¸=Lùn+ iÓ6÷&ìðîä?ªq[b2nð”dšK|hò×&} Å(f¢[û€N4‹¼NÓ[˜ä¾ ')œ•»ò-ào-wÿ ËŠE_a-xîrÞ½g¨ üÜ*Ä_M¨P¯ÞÉ¥*°8S$àö¡žvR•…5(Åöµø¢PØd0Ñt¥!óªE#.î5ËÀ`Á/i*RÚ%aì/ ¬N鈷¼‚d cô0ýòãÊ‹9Zõò|zžm•Ç2.ø±, ³Ò1SS£KçD#æÇyµ¬‡-PQ¡„I“éAýOäÄxÒ0*X ™²–Ú‘€ €‰ç°çá-œÔŠjFèƒ™Ž¬íc¤¥‚R]ŽÜZ#è5öè¶/n„ùtè–ÐÃÈ …¶8¯^]ƒ¥>õ|Œ¦ÒÛ3]!oH¦zªI…Nð†ô(VKê4OÈ̤dpwKgYˆ„ZQ Ygº^ºÍƪ.ï²=ÓyØ’'˜kŽ8’þlÌö!uó,ó‡%2”©.‡p'M‡M#Ç@3¯ýfÞQ lþH±WMÌlÓg^‚»d¦ýšÌéµ!A&™¦%Ž%¹pô&²oTY¤üÍ=Ï  k:BåÔ‘¹“BjæÕB;¯FÂôKµ¯fLÀ̦£1då5p¼m8ÓMZ¨ë<ÍîÜÀS2»'=Óêâ£4¤>ÆÎ}Uæ…“}¼š,¸dïüY"íÿUM˜¹Áß½šÜ¶è¿·Ì"K‡E^ø¯Ÿ“@2ÇZMçÙèwF?‰œf÷ÅRý˜š˜œçWsɶ—æ7]¯m¨*yw a•© ·|–¼“6ÑÔ•,4ü5£‚yJ¶¾†S$yí`×M6XI)Ö¶A·FrÁœr$œÊœ¸3Á¶è’Á:PY챿Ûào‹fcDy$ÍÀ_R°ØïY2ÀùÌî£a¦trkÁ> ô¿OYÏ~øžÎÔ4±^¤ý «ú3 V·i2ÕöÚÈ?#íK'J݃r0È`,¢^Øè€ž»öYG9­›W5(i3ÛmbÑ!56ÆÎû™¤òÊ6 VÅßÏT˜fzæhQô-ÒŽ´éû g¿váZ‹Líî Ñ$xg5µ“úŠ„#›!–`ór‚êœt­{wœßÐÝ¥»R¤H9 é'—KðRÒÈ%&ìHu2ZÑ4Zql»þ{³¹TÒ6zFø¨¬]¶ßޕީKÚß±²ù’NÁq*ùYíBcOŸÿ.æh_”¯µyü­FÂÏU‚a7Õ½UY‡þ[’ï4ßÄSEûöÒöµíŠŸUN“õ­ÃHåUÛGRAz=ó=áq˜hðödÆÛø3 Åhêï—ƒÊ장4Í/ʨO[°¹DâÆå ›æ©É)û9Õ8 ZéÏ¥¦Hà'5þÓ¯GWœw܉·hfžùzM£C 6˜iÑ4ªÛ’³Ë‘̹‹H[¤µS­IU°Ðª÷5~Vý~j·\)sÿ]9°7$¸ŽcWhÆÁ—h@d†PÚén/¶_»JçMÍÈÌ þþ6£lh.$~›:ë]$»Ç{Þ“þÛi)w¼×1F}_뎼Çû¨KK;73RÕªŒÊ3ª:Ð\JÁŒšVWÚ·ªSûú)½2뉿~¦í,"aÈ\¹æw$ÁÁTÉsh0ÕèúUÚ:ÊiÞ†h˜YŸ9½Ci—ƺ)ƒ‘""ù06x©P¾ÑN9­_xC'¢ýNýtP¤~NÌš­ç t‘–Æ='Eî{ãÛz¢ ¥N”•¤Ñ}Ì¡BÙ ¿‰ÑKåCu-  ŠYêî+Jèñ§Qž+ç꿟rÞ'…°«i38—t|Å-õ2ÒÔ3¬шÎ%y}¬ñ/ƒíçÔñsÒö/ª}¹í7}æ¤9‘z©”M/D²ª1X¨B™°±â–í7âÁ²º¨%馣•Ÿ´Ì(‡ Ĺ¿;R-æã ~§Ú}%²ænG>Ì–±u¼eŠïÝl³híA†/“dã åƒÙ"$7áVz4îù»Ã!˜{Œ’3ùíw‡òa¶”Ñ).Rß õåÌÏ{Ä –OÁܪðõÎÆR‘’žÝŸ¢¹j,# XªÃeèïbE=š„ŸYÏìé8De íIÅü‹á°¦µòk®ùƒ”éÞJ™Ÿ£,òÛ¦ËîUŽ¿³¿“¾CÍù@«h¨üÝ8å³EHV%Ù_e&™ÐXE©bô»òôÊ´Ù@6éŶî}1*æâú|ㆄ{™´ŸL Þ¼Ë3V‚2øtFÚ«‡\ñ†spnNr¼©5Ö‹õŸvv³ î·zððúnÇèGöŠƒBÝC½"ãroy5,R°mõƒµSÓe '±Jç“¥oi>ÙyhïÌǺõ¢®ÈLUè„ÙÔaT/C±»Š­ÌØð [)·ýacæ‘P_õèßÙ}ðPý]Úä×|°_QJ‚G„EÙt–éfÓ‡s¥fÇ®Hûš%rÞ6y³6Õƒ’ÃóyïüÄ«œÎnäL—¯ÿƒvd/‚£’ãGš$á9ùcó¾Þ¤î<ªî¡ýÿ^9„Oy{K<]›‰¤¶Öží«݆ÁU[#-Þd(%¿÷ô·í¬~1¬zçùÝsí˜ÊTq(á0ÙnšÝ¿ý7I?Jf6¨¨®YÏî便Ò.‚Eú¥U'/2q–‹­¶Š‡Ÿ? HçhàL‘¨ì©rÌôÖ’nIÂy¾ÎÁ"Q>iC§„#÷=)„9XÚ‹ÝÎÄŒFwíàOZŸI³ f·`ĘÐèÒ‹ S]÷~Ú³ßzÿ“x-Öáè¤y¼~uÉ‘ËÝ5¿÷Ìow‰È&âºË.U£µ ÈÔUòaù>ãÜ’Ÿ|¦“êïÿ{-eùwê;3Wdþ¿¼Ë­B±%ÀöNqæþƒÚÙ´ÍœustnözßßÎbžÔûò–ˆ™Ò¾ï5š a/WqÛw¿ðý/Û3·»…çÙ›Gò€_Õd^‰ñýåýÆ÷*EkU£¡}ä×Z YÚŒá%ìbÓŸïtä%QÞI%sÞ³•Û·¯¥Oñ©ÅqÒkïOÚ ÿ—óõ{:çîn ›æº€/±¿(—ªëi2S Ÿ‡/Û4\©¹Ž§ßh-ÿ­ä 3-¬ezÉ ³ çô+!ŒaiCìJ"#Ø“e*!•&ÚþhS|—I‹´÷°ÿ¢ü×9@–* «u¯Îâf‡Žh6ù¸iüìÕ霊ûû¦øŒ$rÌ©¯GÂWÆ%ëf::Ó¤Á7Ñ÷þý'I¶!X—^’Ž?v „’/õ\æÍ:BhEøQ"¸|$¢¦ís889Û màã’·µùÕ ƒ+ˆ_³:V™a~`¶žüöÔØë"ÝyyV4;Þý| qQÒ@pUDæ «åþS™N¿Ú·ÚP™”)¥%£d ®~ÚG~ã!ø×²Ï§à-þ~··OmØL”šýåâ¹Üp/)ØêÕAq‰3VÃva,ì”?8?ó×L¼Ã¬}Á>L2kÖm‚Âl”K^À/Aê5I»PóÍkqŒ Éü\²ÓfvÎ6¢Ý…ªëЯ%V™5ì7>.§ôÌdnãØ^²Ï¹œïÊ9§ ì¦6Ý6¨‰ ®$÷š_³¯æF]±ùÎ|jâò$$'!Oí6ÎÚ"t!®”m*y&íÜäæðS–uéol!úÕx¯ï7iü–V׿.Qæë®¼ð×¢R€^ÞPð£çzÎH¦ÕNzO×µM¹g²™¦v¹/˜Õ>¶÷]âgÃk´Oª¯µÜTzñsì$Â5S¤²Jʧɾ´ù¯@w°ÚÚZè€W¹‰}Z8Åè>‰9À±Iò†¹F¥sRoã˜öKn½kžfP¥«ò“”«ÞRxadr: ƒY3÷(lE&ÍÓ9¡u»Qp”7|}ÓÕcéDÎcy°_šÛkŸJˆ£K !¹höYˆ»GÉ1ü´÷!G°¦4æZ{µTNNþ¤Ñ½¢ãŒN;ßçòHÍkšùà=áû:ÀÇHÂüÉÒ­u€wËý3Ýðj¸ÊGôñ{Íôx,V4˜A·¶ïÑ:Ú§ÆöÎo·ŸÑ©=Nc"kRŸ?2Ý8Ð3·:7)Õxr(#¸U{<· =iŠtäyXhˆ­‹ÆÊÖ¶ÔŽL;É{pµ’œ›ðßïÕu)m=5Ì=]Ç¥V—7åiðã}µÈ S™ÎoU–®èäËIó ežð«Î§S-x”ø†ûÜMòã²f»p17ìáïw’# b¢·E({½dÔLÁo·*|@êaÛ¿˜+Ì–‡µFùÐm@w8E¶c{]²¥‘}1¯æòé{-é.8VÙ·_m4²Z°uø™žNm£wí®ïýkô.£¶õl¼ã»{ïÙ¨e“fd.£¦]Ú›Ï3Ækˆsçÿ›ª[®ï½å'ÿèò¼á¿½Ä¿DßÿM·(]í¹÷è.¾à²„ô¨ýÖ…Ìí¶+µ¾‡Êàö?»¿ý¹˜iöGÎÈ€KϵÏ`ZL¢|€™oj­éÈ[ÕV±wÎF/Fh¯ÖE9Îþ*¨ë¾.²cæøüøã ïHA‰I&‡3)fH,y8ªí£ÚerÅ2§w§ñÒy`ì]ô¦³EÌ$p²ß> ¹›5v_×{€ýoe¹ÉV…„»³6ç Áã´¢OÌV<#TÖCÈœ€ž›ðS._OÍIUK†ìá þú¨ D„]iwÔïñ§ïŽ|3Š«ÝüÅ=þ×/g§s/v«Â/l¦ù#¶àiwÜ,£9 ׋ûcâ`íß¿Ë̵ýp€Ee:ì‰XXsálËbôüÑ5\‰¬j!>™ÖŽh¬ã).[«Êà@0f¶õßÎuQ³ÀÏXB?n¥û›Á6"·6çò .Û„qWTF)ìS·å™Ä˜ûºvC-N±]d¸TË: b’"ÉtPÎVŸ¤šUÚíàõAÁxWÉØn|z°HÇþ[Ü3«Ö>ù…®=±Ód€Vµsx¡ã°É0$4<˜x§ gð-àæ*/ÚĬ½ÿmm²¬;»˜pã|˘±EØMgP\þ±cŸ€ Sonâ±]ü÷ƒgÙÉ&™ê,4Þåü%¶’ç¨Ø3É“¬$ü¨0Å¡/2ùãdL$¿àW: fP @qÔ\R˜N gÿ"O²6£¬#+S{þäÖ·‘U%ª÷ô,îÎr]#ËaÇWK:¥†ø³ú²ã±Y“jöls~(~9§qëÍÔôç÷añRCÏćü‹ z”;㡽ÇOܦ–>žÏ…u, ç íý|ÝN+ GÅÝY.y-ßyXÔÁ½2öå±³îX ÃQ2¢©Whš áÀ˜ÒÞ ÏÈk¶ÞÍ‹“¨›†ZÂ5•LÝŽÎ÷ñŽ^šBvµ!#?šä‘k¨\ ±œkΞ•Ë^ùXåc•ùí(Q‘¿ÛÏñ·Áã½’üt«dNó–·ÃâÓó9 S¶å“ü~ŠCê0RqÚ÷?òl°6†¿JMÜ ã zƒ¨`} ò-’(—–…Ù#X ®ÓøÇ\Ï+2fhD^$(Y?ÚÂh_~õ4zF þ³9NÙ+§UÎéà%£™›ÂÒlÒ¾Óª¬á_b,Þ )¥á¿É²”.ÕÖ€ŠŒTëµmêYà Eª|Ÿ¥¼áÿ¥¤ÙË¿p]µ»åœú¬2lZU+¨Éš3‹Ø~nVI”|EÇq¾=þFS?YmD8äwp¨Ìï Õ eï[ƒÐ²Ãa¦^/Î^jYTÙ:¦ð¥©—à²`äºów=9_+FëÔŒÍg}Ͱf·>ý ITgíæá‡¶ÑÉ—u¡I·ù»ô^ÍNÙÏ[1@ƒÉ°\ ë6ÊÓ^n¶Ò­ØeÏv‚çs›?‹áÕ¾'7¹îªjh`ØiW¸2‰N\ÌáSÖã0‡Î´ÉC…5›s(}É Zts²G²3µ}o—±'Mµn8Ét§QHú£b-@ãœzVo<ƒkÓSýZ»MìÏM)»•˜þµm¸Z¼ ÌÌ^{Ìî`¬Z·SÚÇW[:°Ò’@ Úæ³`{sιəpµÅ1kší±ï+ÌV»èø¾ïFÖëâ¿­×Ï7ƒ‚¶•5~Šl-㟶ð“·ê^ ƒ•ùUz l˽}¬nó+ yyåNcÌã †ÊõlcØÌM9Çœ™–Ò¿AYr#-ÀåÆ)¶Â 4uã–¾7)cq\ïͦJ;þÛxç»üi½9Û?m¾X xúàðÍ\f³*ãã7ŠG­ntG+.jj¯aʪ†qk{çÇ0þó £p±,Y"íúc8»¬ªÚJ ÒÕ÷he ê©‡§ýþ¢þJS(z›þë­­xªŠ8X‰Di*"vd³ž§z4¦ŽÿktM=ÑOI@Œÿ4ˆb{Êy$èl좾‚ÄÃ.¢Jò1Q„¶w+JDJRï® .¯W—É€^Á¢ø­Hl ¡CHĸ¸Ìù]óUq rÇ€â3ï‹“#XO§"îiKd1’A ËÅј>úßnÔ·ºjD‚ÎÝ zàïg IÉhlTîª3á­N^6iƒ ?²A 8ͽMGô|êT›•EŸJÿ{·?ø÷1ýêì‚ö'•S£P âгºùwe~’ҘѱJm!±PYÜiåÃi¬³`¤®Ã`&z:YÕj}›üg¤o½ðIíz6·Eµð±,(ý (:€†áò&aç¯ù@&ÚÇ÷'_>Y=H}-Geëv­äzÄñ$˜ˆïÒŒ”üì­ óÁº•Ìן¤™îÆ êRÀ.-†¸ÖÉ>0À¿§sgjƒsL{𬹉ÂÜpˆiœÃ^æE:Šn%ý3÷:z ®#”b”£¹ûqÚé0.´3Ò~À˜ùMn½¿Ö¥Ö_SOëØC”@j¡Í…8ÎÝ èĤ Ñ}þš Ôú¿IkžJ—¬¶s1Öþ0I': Ìõ:\mP–,ž­Gt<êѬö·Ó1è(6iî›QÐg£çÙ<ú‘-mÞ¨ÇY£¾åž%ðÐ0Čṻâï¬èÔ„Ψnó2çýÝp¤º×øø˜ôƒÿ?¿çZlibzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/packages.gz000066400000000000000000022707641334444677500247730ustar00rootroot00000000000000‹ÛšÒHpackagesì[ÙnG–}çWÐ/¶ Ò±/ìу(ÊÝÆ¨ÝÂhfÆb%³YKve‘¢üõs"²¸TU”d L7Ü2HSÅ{b¹qï¹çF¦^ÿwZOØ9ùÃN埓×n®Î'.ÜŸÞÌûÓÞ¥ #ÄFÉ”©3¦§úŒaP3é¤Q'¯ßÞ ç“~C'Î{-²r"G¹ÈÖh¡Œ&Fp|âC ÌóèØÉwÿ‘þ~~²êç³Îƒ5Ýr‘âeêÓ"¦EèÒðíäß^Oø9ã§ôä&­iV–r–«t»îfÃÉÕ*õ»ýÞw‹ï‡ë½ÿofúà>Ï–.þÐÍÒðgw—>¬RîîëTâŒ`¢ÝÛå¼_¥aHÕô'7¶ñ¸žo°žó;·¿5ÒFd´ÂPOÄs³¸êî°Íéíà§eÍÅžh¥´6R:êfg•?ï™»ÍâÄü§Õmß}X½Äyÿ?.úú^ê.°—»ó“M¬Á'H;y‰M‹SÄb#}÷W?œŸ|š¹Åää´~ôÝÇÛþüd¾Œnֹᛧˆ:ïCw~Gð‡ñ6–Œ ?ú¿ÃÝ«!¾òáÕ^u¯¾ý•`K”ú5HDBÒ^‘·2¾ŠáU„yì_u`ÿE¤Ôo{©=©Ø1H}aú Fß¼ùöò]'é#qÜ´çõ@OëÙ~÷nq}þœ*Në¯ÿ´êAOŸ‡ušÿïõ·'¯ßwá|ò§ï'wl²\MfnVœüå¯ÿóãû÷o&þëâýo'øz÷ÓÇw“oþòáý÷?}xÿíÉë«P™ñ1 + «pòú?»ùù„2F¥LḴ„-}Σ§b÷¬ðè2t¿œO4ÄL¨UÔˆ#ˆ{­Uá™Çœ!gTo37ßcîäyV&N£†º@QÄ&"YŽ„»ä\ÚøßŽ¹ÿEÕûÞú‡äægáT<±L'{Ѷg‚çì|„G–àï.zA {9¿¤Väg.¤:È_ƒÓ×ÇÀ =¡ôíË‘Âþ^äGìX¼‘½%_äÅ/€/.zb©=¢xÕ“7G•r‰­JrR^öoPZ@^^ö?üÀX­R=Èü¤¡¥Ô]´ozÄÂqGZÁ†SÕuÝêÁ0"ÙË«:ÑoÞ'ýLÍ[-`d+?RÀI†¿é¹<&î…Ô~&숭^ð‹ž*z?ŒŠë˜_Ê·%Ý~¦Ç,øÒ¼ë5-!|„“//Hú9ê[ôDúr$ûásá'ÊuIô#ªÕYÊÍË=\ÁR‹#¶ª”)EòåÍUNã$K%(‚¿|µ£ðgGä*Z äad¬=ùœ¿M§ñÐGl¤SLU•ï5R’§FbGi6tÖn'!çlB Z zD'q›‡G]î†Ú¾*ž7TâÛn7a¥‹Ô"t2QGé$„ŽÓh/rľ¨ 1dÔïäè÷{¯³ 8¥>'[!vÈê´ÙV Ñ»pã®’[Äç9ü0ØKò´:¤þ8|9Y1öóå¿—°B°§„}¶·Ó/ìl7i)ãÌʉ ’3óò¬î—Û›åÓÝ-XAmeìÝoÿ£•‚€&’@¦J*xòH[c}┘¨²'‰Òß0aú˜’OÑQîRwbãäfø<ÿf•b·ÊÃÔ…uw‡˜æn†D(Žó&øß6 «TÌÜz½êüíºÞ˜­¸Æl[ÆÔT@ߊÌÅ®é,m™e)„âdgîñ÷Ó›¥ÿ[ ëbǤUÜÅÍ\¥u±M ¸¯XÑœ…–†ì[õn}]÷š|ލTm‹i·ÈËb&#³‰±Ô6êHÚfŒß6éoŸæÒA”&Ú¶¨ƒH‰³³ýUºê†â€gîÔšqBvíæË»#Š\¤LkZ>ΫµÞ‡ý Øß²O+·F T;A(M6ð}»‡M*"Ý”–õv–N»E·>]/—øä;;½X.×åxá¦ùMùå*þâ³,úíúYú=Ðéb¹¸êg›Oj½+uªOn¦Ã¼z°õÝþþœÉÜ*\OŸUáauÁ(ÉiÒ»/˜OC[¾ò*ý½ª-“H’Aqíy2Ž·¡wóZúYtq,Ê‘þ¹mX}î×U(y¯y–Ü:%£„ÜÙ·šºáó"Lו3äOÚÇ”µb9·ѹÐwUÉH™h¢ú( iSÓvíª:äÑ*©G[#X mÓº-Ç¢W!df•p(yMÓÛûØ ýÌ}®²‚«äŒp”ÉÂÏ–á¦!’±ÙFÆyÎü°1Ôª‹£ª¦)3¦2Sƒ\º&ÄÕ²®õZEæM9­«¾n_»*¸R<%òn±ÙNÝU_U¡dR‚¿ í»~^ÈÆiŽyï9UÍ#ª€u?:?)-½"篚¦ýS¸ÚÀÕÞ‹R`\ÓÚµ#¦åoƒˆžsïŒ1{‹jo >Í—‹Ú“¸°ÚFE4—Mv¬îQ'¸›xU‡»fpÁtêfWËQæ#Ô•¥´ÌÀ·‡þœWpwu‹öÚ&.ù!D¸îú ˆÖ2Í Úz“R3Æ6qn£ 9{›J”ß<Î.¥D¹Uº§#\o³ŒÉf8¢aC­ðÐ%õ•4HFµ®<mÃІ=÷èSæÎhýAãéªA¿\U”‚›ì%V%ÁÃVVPëåm¸ÐK§zØŒðˆ ƒʃiò_7ÄÅ4¸‘ÔXÅ®K´}äpÕ]9ôeÕo‚jtHJharƒÌŒŸÜ äHùhD¸@ÊÉĤө½­-`êÂÅÆóÒWpÌ«EÒÍ|Ú†ÎüxùS¥?ôá9‘ r$¹IÞ#´\­"&ÑlL„S’Ô¨Óμ€Cx&áVûÇ5I,H‘,œ$,À--Ä,Åš¬hF€y²7ÍšW^à!’,W–£>¸æNçè by¾¡뜉h±™Ï!9Õäûç˜éúvÏj.»è(äA•+CÐxç§žV¥³AŒFLõš6ƒàjmîï7/Ó ´@Ò©¯ÀÊ×ãk8Σ3cŠ$"ôÄב`Ú±íÊÊ¢è·©ç ˜WËÅêq+‹ÓÂ&©69¶éÿ º^÷aÌFÔ“<@^P¿2ãz]Þ6Ši¬OA*'˜Ž•A|iÆ;ÐåÃ%TŠH)²°15ùòäé,ÐïfãAT''Y³¤<†{jê„ÌbNà^(Ká ó€cÜ9&j4ŽP_ž}Á3PS§´È{WJ Tf ú ‡?âÒœm6ér #+*îiÙçÈ«¡U,zæŽB¢l´ñ«ÀÁ9My­H$0n¡!¾dTíZ=OóaÝAà=Ä· IB¯sÃŒŽÌØâ0 ½žæÛÒèT‡úÒ¾ò l.Ïš…øÕ±/a¥¨‚;¢#o_5 ‚2ûÀ ¤U“ßæÝP#×r°‚N5mšC€ÙǨô`‚Bäm>¯öÿè ‚ >GÉÀXü ýõr¨å-âÜ3êS>ÖÚþ\×¥ôå ª=‰ÌŒ=0ô:>©™Œâˆõ [[Öö:1ÝuaTL¨)B/-SТí¢Y s7Ná¡®E,¬1À]»\À~MSís– îGwcÁY‡¶;Eü‘дÞ±¤Ô&}pI·¾U9T0‹(N(úÜ6õÂb”r™Aö$b j“Å`:E3¹Aœ‹Âc´´”î¯<¯«QVj“hAÅk†f\»ùÊÅ®F~òp%„¨1*&)š!Z0Ý*ŽÀ+ݪ .⛪ªØÏg÷5ï:P_ZWÇ¡.Õ!MûëÏyÈ(‚-KÔ”4i¢˜¯—7i±êW5 w– E•Á´Å}mŠЉ¥A—{\P`h†E1ÿä*„$©õHGëªóaón•f •š=Z³”œ–.¡Jªfö<ÇÔ uýä"D@³&óØæ—-h÷iö©ËÝØoè×€›A ¢©‘·°³Î§ÕÚ ãã–‡U$ÄÔ–X[à^ÖF7 AfHN¾<i&þnµf÷„ŒÁd¡:{gypªyphö{´ú‘”å”eJÍò¹g®ûÙm С®j4ZÍxêà š»õj¹¹þ^8Šº¬ˆ€Ú>Œº ñ˜}ô‰'‡ÀhFÆÀón¶‰ ‰ƒ§¼t Œ6lµcЦàuVHS´LÓkŸèxÛ›)‹h¤!²MÍãûD§ÃÌÝâÈ$¨ÁhEeX›Ë?¹u¸ŽËÊthë$ R•}Òlkáyô2…Sâ¹,ém±RÞZX.rw5šRž¢N ¢€NÜ®iœÕ‰ ÿ¡^¡š²òow¬Ò}!îq@,Îqt9¸Ý©–·ܨx—è¼™¦ÐÖÖ±+,Ž,! ˆZ®’ˆ!ì˜ýÍW²Ü&£Y‰‰$½š£ULÑòäɳ¬ËMb;fåÂyÔæ :,x!÷‘ÚÝ,ª®ŒÏ–”¤I ºo\Ç´è½U‚62^3™vç^†Í†!2³ 2P&Œiwîj7 ³Ûaóº€Õ]Îg‚æÞ‰mñþh¿9DÎÑ'¥!Û9AÝÛ±½ßÄNïDÄ­¶Æítb(=õð3jŠþ(”ûÞ“éì—‘h$ºxšÂÁ:·M4Ål•RœËÙrãÊLCåf^Bº©]û_Ê·˜ry8:>s ¹“@d–1±5~‘!†T—2(FÏ´‰8̼“çÅÌöã¡Æ@‰h •´»V®ïgiífõF$Y¢3±V—kcªöŒÇÂÝ™ˆ·(ÎÆ"4åžÙ=«÷ÉâÈ¡9c¾dô®ŸÝ¦õr9¾K"­€÷^’PÜbÏxÕÅ«êÆ4NÇ s‘ivûA“eQlO¯Ÿ8CY&è7Q¶â.&ŒJYCc ’€éÄö̪ýx; &²2«tfÛUþÁnB«@­ì‰SP*‘ì((bßåî»üKB:Šo‘˜à$TðÉžq'ƛʄJíF"a[<Ø•oc{‹èÏIX4b*ñíööÑxÛiÐXÖ¡CO „ªËe6OÁiK³}ý÷`·=2Wº<»Aít>&î÷›^ ãšòªº`†Z»Åß mí#:Ø’:ÑÄÉÞ‚g®ß£åšÜJY {Ç7wáñ,‘Ü ñÜyæVl·öE“T8ŠhT‘ëloàU¾éfUÚà$8r2D´,.Ç=¬îW}ø?öžmIjÉ÷þŠ~„3Q,Ù–Íî<4ÝÍ%8 3l²$W{)—íêËùúÍ”\¶|©jÎìì2ÂY™’uÉLeJ©´Ýv’à¤â¡Ñ* &Ü^o7-eFHx Ž-øóÉd‚-åRl››åÊzy•<‘°ø¡Ð*˜¨p «bÛvNi< Œ)pÀ(›;î#… f˜)ÖÔŸ¨ˆûÔÅŰ8kÆ­RFS5˜àºØÚ- Ib¤”­WKCÔ™°Z'è  qœÄó”Ë¢õqe†`!¤è0Ãíu‡ºn$ ,×>È=å"GcJÝm¯”[Ÿx­*5)p£R$äûËåšYç9ðc “ëþ‘ƒ%ìInáÄùSÆÉPY KÜ;”¦q˜MbÍõgzÝž81LtÌ™Oa½“r¦b< õÝÊ4èe°Œ¸þh²ÒòZ,ño7œ ð*¨Z…6{ÍÌÒËÚ§Ì´[1&•â`¦éûÉ<½®½Ðî.ƒñ†,ñÂÄ“d´7×Ó¯¶ÖºC¯°”ƒjí<3QHl]<àÅ8¨º0„šÃ™Ž¶üŵÁÛê@C³xfÑ×2æÖt$ RFR0˜ãpf3›†ûk½§$ (˜:‚¥s’½Û#4']I’øÑM¾}_¼‹Iµ1:gôä‰n䓼PeU$úLá'mDSeâë]ÜÜE±yzR?ÔimbŸNÿݤlcKTyQ- 0†.×>DÏ<!*p 9;Ù*} `‹¬osj+;£BžÕÅYøèñ#Xp²æñɼÒfËèûÒEÍÆµoYw’•w ¼@ó,TÁògží^—}Lë» ü5lo¥q> Ðfäx¯åîåEQÖ&¿'0p³~hƒYpï6Å(:0à(£»è@§»ýÄ#)8y žâSO+ÀG„~vì"'½3ÿŒ”•ö†w1¦©8øâ ã®X©ÁùxdÜ÷A›’%òwL¢óGÔí?)ìoÇ h ΰÇɃæ‰Þ(½Â|üm_Õß„Û7¸k‰aáI ;‹X/on'ûº0‰užç§ÞÑ GˆÞmÞ †ÉO¦·ŸX[‰Ö0e1‚`Ü¥ÒÓ +‚i¢Áþ (˜?mò“!‰³|ÖV0¹÷´ÄxVsc%×°º>˜Ë5íþ(Þ4ÚÛLÀÏ(ËlS7ÕV6-‘¾ï‰H¸DEµ0Oì)3I$i4"¹«2¨®­Ö7ĸY’´·iÒû%†9[ûÝOÀ{o›¼J7˦XÞÜ ;±0›üæ Ja·Ad©ˆëdˆLMÃ=_‰Ù™A\V/uUA«vEµÃ1âþm û‚ƒ(bqåZ‹ Lem7þa±JX"Ø,A÷’Ðc>Øön5åÖ\£Ê6 €ªmÙXŸ]ƒÆõìFÔC2*RÂy¤¦dȬÙfµl²¼Ý¶P"İ ‡Ô^g÷?³çEI v¹p(˜÷ÉZ/eöwÀ%YУwüï´‡G`A‚1|c’±¶§#)úOÊ›¡x(u%…Ý à‡2™R•v>ô’TJ1ó" &Ü «0À‰uÆ Rì‘Nuµ ÑÆ+xüò0™PµýޤöS—Ðáï-—RNð¤0ì1+³{˜Ée"jËo–ʉ¬Œ7Ú?Ò¡&#d½TÉrݵ/ÂØÏcCª6(SB¥§†¸¼®œ]ë ¦äuÔ„–¯c_È(u&ÝžR.S±]7Ëbr…¼8&Q¨œwí¤|Ü0Iq1xOq¹±QÑqêшK:ÁØt™U_í¦ÌžC:ä;ilU€¢q¨´+FžßÔNÛª•XíÓØ÷yOcX½\»Qj<¨&c’4×é&[Ý èfU»;Gx )ÓâXî&\k†I0G³›r%½TÅc Pý6:Ä©÷Œ P_7¥i eõtè¶$¯ïl—=?û~X,Z”–[#Å~Há¯3‹y¾5tv Š >Ä–& 9Âô’êØ†¹4¦xÚÔè{«ÂiÂ2@‡du;\˲±b ¬ÏaÉ”,õ—ŽL\¸˜’3‡+'xÛNŒs%ã!ñèŠÆ°öûì¤ù>I˜£“Lp³;f `Ä“‰’´H¥‚Rw†ìëVoAÇÜK]îÍXK<ý&{‰–62.M# ïÉ̲Ú-2©O™25‡_›[U+LFA.  žÜÛÿçêÍsðÄÉ) z2ÝSÒ,H=kOÄM¸¨2Òœýc|Ðÿ7~ÝdHÿluau·ÃlH3[-𡱠Çã8ì8i\pÑ·bš—Χ§˜ßâÇh£²ú®e ¯ê#e6 ’™¦¦1ÑODœÒ$"Jñ(bqŒ¡g\¤ SO2j®¢ Ã?ê·ý‘‘xFºFüf„kÀmcŠ.òf@Âð=IïFuýÎùÃÚMûŒ LV<ÚÞÉôLß3=Ëw„q|JÀ³YSä› ´È—á×äBʇ2>M˜‡×sy¹”Qø"ŽS w×WTF¡"æþϺg󯳱â²ÈéŸçädÂE³dÀ½ß“(ܭ컄òe›Šèɯ¿~P*wuwÍ3¼=5Úh!7îÛbOÏÆrÉ(ñýSÀpÄÒkR)¾ÕÍâòí5˜—!æ€ÆÆQ¼(í…Ú´OƒâTŠù`¼@«À7Q‘NÒ]4ª©ô2[éºY¼|s~qÒ½åÕ;óŒG\hBÃ}[@ì9WðOøùÙoYI»zƒÿòÛ}ûŽV:b‡ó±T›ú8:làG0WOŸÂƼ®þúôéK‰7Íþ& MÓuuÛDјàÈ£ç˜AþÏ ÛãÝ0&côû÷{ʽÿôé¹9<õÃYü±v¾èóëËg¦j6éâ/®Þ8Püâíù›«Å/wø=å¯^]À¾|õöù¯¶öxÿêÝõÕÅ\ý§! üY’6SÙž7¼þõâöÍ¡‘yóâ²où<þý!ä§È·çï>˜ÂAÄfñ¯Þî”åî}µ_Ÿ¿;Töãë×п¾³¼϶¬m÷ž7¿;Ôé÷ï!?@^ÿz~ûYÞ¹~ÿ×}}ýò¹m¼-cî«ׯ^Bú`ß=Ûî›/›âns ü'{¯x«ëb½SRÞ´ã-úéÓgmÜBï­ÀÃê.k•Öt:²÷Zn+[]{ûé>¾}õÉÆ@NûÝý-Û0jGgÒ²xˆdßãñ~ÆeÞªô…ßGX˜«8ÝB`oæX›çRßêuQbüFNüä¶öÏyÕd˜¿ì ½™É•ßZDó††kÊIŒáÕ;‹È-²Ø5yrG'ˆ‚˜žàGG\ÏùºÍä)rç 9æÄç3˜½6ð•¯cßÓÍ*Uª#3â&Œx –Ÿ×)™Ù8"áßV5Òç² •Íaêý ‹Ni|´qà.¼,Iô?qzÌ‘£)}Ì“-ùü39ðiÖomï LÙ ‘#²_‹Çýç˜ÇCº˜б¦ãù§ÔðóN?¬hnstÛg$>#ì[ ñh.—ˆ³ÄcJ‡œD,bœò8Фúã3j?ù¦eÏ@í®Ç„}l\Ç_ß\¼ºXU"_^˜[,/mNŽáN„3t—àsUÅCK¨ñ~¸Vl†ðZ[’TÆ^’„Ä!©—¯‹âËÖ\ ÁTù‰ÏW]Ýbèõ6©e•%6T°8<}ÜÔ.YÊÀðò“žêÎeùð¼*ò¿`”¸ ¦ÖÝí¤"cÀr¢¸ùFȈêCÑUÄd*Ò4ØGbªIID“93¸w"«–çëuaSåyB³ÔOçˆ.u#l4°ç‡JJOöT€Ätx/¬,R.uDý þ½ o¯ix!õœ©XBé {ÕÀº•) Û©ûšV&ŒÁšúÂÇK8#µ‡ÍÜí5sY»¡ZÜæíÇ9ìîýËP)3Xð£´Áù¥ÂÂ?Sÿ¿H}ûK­~Iä/¸üÐg6¯Ú+t`˜^|;Þ×YEúKäƒ>8ýžß·.êÖ’á -öÙäÌSàŸ2 þ_å_Üâ1{–7^5ˆäšË(J„ˆS¦Sqê ŒµïE4Äì[~LÙî;3OjÔpkeÓ¡ÁNO­/Ö¸ úù˵nêΛQg·vì”oÊ^”|ñº x}ñúc÷üêâªÛÑ»~Ó=~ò¼þ$¢„É Î__Ÿ/ÉYüxâŒTÒ?ˆÿnQÎô‚Ÿgi÷„IÏÓ¶ÑÓÓÍÏéÜü¨Öݶ£^޵Ý\•7ESЮl /ñ þHðÇu¢«¼½£Z˼é^+Q.‡ø>ž;Ÿð|nÀËæ£5»—ºð¨ü,jZËh:æQí´TÆï:à€£wÏalý¨ ºAé€G{õöjéµ¥ïóu?Ö÷õºé üfŸ~Ȱú¿¨/~죴r ks¦ÖÈœ'惔ZÕ|_V÷¬nE™1êÀx¨Ô9˜OZä\–wÙog²´P³î°v‹Ò©ç6K³u'UqWëm¶ƒ¥€ÕM–%=9¦PïÚ,ÓU¾ª$fq<Ó÷ÚÛ w¸\u˜"—¢@Ó €Õz5€ËºqfFU¬»Ê*­dÕàS=”S‚P÷’»}GØ©»L6Zõ bÊ#9ϱóœåP¹À½[ä>^R#8Á|닇0##ØÁt³I[p>z?[ª©«’yÝ~Íj÷á÷Eÿx¯Hþ6L…â8[£é2ñkÓRýÜwf“îÒïÇÖ|ÚTmZ¢õذ½Wtªm'ŸÉ¥_ê~YAçruëçžWRÕ¬ú‰Êtp©ž  0e-:]£ñÕjî%û§ u&«Bf“e¥ª¥>ðq-w^Ã+Uò¯ë¥_ùƒ7 ú¨ÍË<µ’öE‹/`_$¹÷lóݳMY"OðŒqà¡«ê²ðßÏ¿úC˜£ïîŽ!qGÄÙzf"ñô5Þñ|âR ãË ÛÁ‘`EG(  Á,AŽâ)Gü2N&>6K«Xð9?¬Qç‹´xϼFoÊ­²FÉE²FÔ|]%)9­rI­çó*A f°žÖ²há«Rn~ù¥Fˆã*a*?×û<Ý0-\5Š9#ÌcôUSrÇÓM/rzÇY%¯”‰ðyéѦ~çqÓwV WM[½êw4•k$ B°sv2SíXºá =΀脈h‡§ña¾¨ÝW0»ñÐ1¯8 ¦@Ä)!RêGˆâƒ0Ò/EBrÉp–ŠL?¨“'tuzÑî/Ãé¸+xìf–ªÌ–_DÏÍ‹:Ùzš»*fL„YÂ+ÉKe<^8IÊ#?Y‰±2F·_éôþ!-žñŒ£˜”á±*ùù´ª6âÅ~†ågýæoš{I†`=}ñ8UûÑ‘\•÷÷"¤qþtªËø%}\RãÉ —jYÛp®$†³l|=Pªg¹IyRFQõbxxyPœr‰¢"àœN™­€ñ…ÒÓ”xië™M…CŠ$;ªk‚Íé Œ.¨x‡šBE‰2vû¾ØoñÔÆÍ BýÝ7m[±¶%I›hyì~‹’â­*‰ÛÄ99™Ñ&4y ÛÅK!Qóù¶Uz2Gþ…p‹Ð”õæúM¡ÃK²nW³Q‹’wç8lƒ:W¬Ô‚éùiκm†WP6WrÖ‚u…!L[„…'ød)ø ¢SzÒÕ|ß?iQòÍnO¨wÚÏC•„-:|Ê[Î D¤«Æ‰þSMIà᪠RÊç€Þ¶d‹ÐI¦$…àp•  •rÀ‡—DJ¶ç˜¿@ D©Â¸EÄÔhIÿp'hqoÎa‹6CÐCšWHp:‡êŸƒK µÏ!G['=Íwìÿîœ]üßàãÇnçòÓÉÇA¯£þëŸûŸÎ.?¾9¿üøs¹ÊÍ–ÜX)v+žyˆ:/ïš4[9A c¤)$¾ËºÑ^RÕαõ·´´öÎ’™Ú8¥ ÓÏi¥©”,¡,ÊÊj¾ÒV%èhv3_ÚAhbI‹Õ$ùéÝù§ÑûîðýÏߤ9À6Íq¨JÉZwêšJb3p²¸ÿœÎ>j/ 瓱A¬±ÚfzÑd¦7oµ×Ž>ðÖnÆ3'Õ%¼¡wl‚oÑš^ä©Hk>LínqZVëÿwQÒ‡¹N‡Mįޱ&"o"ŠÝ+G‘`¡œ8Nf–±,ÒTÚ¦ùHž¤=3]%«³”K¨`lj¼N-gf“Nè ëêO¬Åÿvò5‰O´PNL§ë¥¼I ɲõ¼ìÉÎeÞ)¶ë¿vÑ”«Šà‘¶ ~ŽM’͖̪–E‰o©Õ&×ð¶¶J-ÃÅfºMÕ:T*öH[jösl’l¶Ù¸ÚãßR«M®á~ãÉY«ÓÒ¶×ë²4ÐrÛ+.ž#-˜ô;{pwâ®/,ö|±%‘nOÄ»ªÅ»ª-uPcâÖ¤m&õO5ü{Ú¼øïØÃµÔ*š'»ÅcQ[9àÏMTÔH-Ç·No¦² Õ†œë(‰lǪ” £fK2Ú¼;±9yƒb2éË@ÛW‹Ô&ÝÑ}äç£üÌâ×âÔ"Чù“Åj+‘¨Éz0ŸdEžŒ—«<-ISù¥rÂë]GŽM Wšk*›A•3oâx¤Å<Þø°¨¼Ž¿Q{"¹òñU^Ð#¤3/ÃX%?8t’$DÿdÏoÄxC§u\ýÆ=»-›hšó;m¨êi×ñÊEšÞ åo8×öE–æÇ_ÙòDGóç­;^°)ÎÐ6§êá_÷^ð0Ù/Žõi–ÿf Ñ1[P‡@"Þ"vpÞB>;OÍpŒ`¢Ÿ•§!৘`€"˜ 0e‚&$‡žšå~=Óš ™Í^u9¸5ÁΖßåûÖHú÷öõ/]Ÿà´«bd^Ç,jÀŸód"ßOŒ¼Ae­øXÓåt(Íß.ÓOŸLW { ÃDU·(¥”ærøRçrèc^‹¯ò¾å]Ûˆ©×‘³¤Óûå—çÐ fÌvkUJ„*ÁD´ÕcÈgúE” ‚)Hb@ãPPÎ dOB§H&œÁB%ýàÅk#Zeø¿ó6T+*û±‹‰0Âú=MáTð°íL âݤ½ò"‘Ê)f‰PLQPJœ0B@ŒHÂÊסÌÂþìW[½Œmòš÷í|vz¯µR3¯V~CdÝv|¦ú°‹Ç8!bÎ!­ÕTn3îd±(Ibýê«” e)ÈRØZÄ) cJ$"eÖd$å‹ÕŒ’çù¬^åéå‘aôî¤ËÁ•2ú ô·ÁÐAq~ö è©ük§j_n$‚îùp0úCôHu¯Î†½Á àž]Œ>¼ Ë¿ïÕ°š?¹Òÿõ.¡£S€…„B`!h!d!l!b!W–ZˆYˆçɱ"¿ÀyµÃ󦂼ê?úÏi¿œåîŸôN½ {œöƒnâá½nðöÊÃO?畆âáýa%Y¡Ã ê!oÁ°Ú¼¡ø¸ßö`¨ðÁЯapí!—>òéƒäezgÝ ÷ß«ÁÇ#ýOêž—/2¿ Ά)¡W%tý‡†Þ(m…A–ÜñîäÝɇÈÿô/®Þ ºçA·×=íŸý·B»4­¼»^ `”̰Á»«~ÿCÐë ®¯-Ê‚‹§ÓÐûËÀ ¼@®.κçDÈõûî L¸þtõa0|oÐÁÉÈÉ@%Mñ2q Gå#‚€Es.ÏAjAâ̂‚J:,ˆ<;8PXºbØî âòè@WŒ¸bĵFBRzõrºž…®²ÐUºÊBWYè* ]eÔõ—ºþR×_êš ® êꥶ^ÄÜc—3[1æ¶e,€í/¢ÜÎ?²}G [Ȧ²ÐBÌBeíˆ A ٲܖµ@–MŸËÄ2±sMBhAnÀö‡‡ ¬3ÄvR9(«ç!°´²Ph!j![‹An'Ûùãvú¸Nm}vtÞýÝ"ÜBåáÌ6c·³Áílp;ò\”ùp²v° ±Ph!ÛIË~ dk´‚,\5ØÑl+ØVhgPàò× +•‚’Öï. òvÎÕ2À-ä«sM0‡ƒ«A€q!éË„”¦ú^×HTi|\#TÐ\õktpÀ‚Ks ¬6¼ …Ò^pŠ¢Ó%*X5 W0RÁ ViùH¥ŽJ•*0á>"*H¿ÀFPŸó'Z‚ÒxÜþÒ¸ìÇ($jâܰÜƒËæFT±‚ý)Óðoï»ÆÔýpQ˜b àÁ•ƒ>YðÚB†ö±{=8ÏWƼgA£g]µö÷ϯ¯ºûŸ®..û%1ç! »gƒþTœ__ ßd`hçÝëapÚÍm ƒ ûoM¹Ëëb%¸ú VAÓ}]eðÇÐüÐáûÁÛë‘ou ûýú8W×½ßÏC¥Èóp­Øæ ñZÛ¦øôÞpþ§óAï"·Û>]¿-DC¹ôiÈŒçà“l'*®ƒÏ0¾ó±XÞ­]ÛM!@t„ú£v‹ùfË8Ù¹Óä‰Z'‰H”î„$úu´0b“‹„ 1ôž·úa/òÕí§;ùóQe|5#¬î~KçÐQ|†º\Ü'kns¼úúærMÆËÛñìæÍå°|QdöU?ý1/—ã‡òÓ-sYã.¦ßK³Üå— lïŽóù÷¯©Ô^Ptm¿•‰œ¯Ò8ÈÆ Zõ ë@þ40Z–)ÈX¥H*î’0Eˆ%T$YH9J©Ä2“?úë·cú«U4?saƒŠ Â<¨8ÅwgG‡eï–ýíAÙña}LJõÖw¼Ñwÿ¡ŽÆWµ 뀊é"ËI)ÃÛE¥þ—•±r\+XfØ”e¨€Änñ¢L'Ù"MLÌwÈØ1 dX†™d¡aLI¦þ'#!ÆÒ42á’ð +IÙ.ÃÅXjÑUif4« ¿É¹ýë† ªr%„cè8'ϸ.lr !g -6b:v–ÏÐàê·>ÕÿÌŒ”ˆe˜„„);`É€ÌRœ"ÅR˜ †‘ˆtΩ é¯Å jyg¹!»NÒ½Y¬µ›v²Iy¢`½|D_ó c†ZaÁtÝ>Ï&îÔJ±Àû% š ê7ÅH‡éGÄ`Kd¶Ò?+Ã[Y97p`áHrˆÃŒ'äXD,‰¢ 1€Âa“””ºëQ©ïtÜ¡ÎôƒÃÝÉÇùh.j5O•q÷8Z׫íA çãe…°(«;º+á LÜ]¡2Æ~\ŸkÏØ@MÙ‘ž¶_ó‰ ò‰Ë9YÑ=ßXy¬²tu]ÞjþUhI¾Z϶§8[AJÃ+‹(‹¨ S •%#e¥ŒD"ÌMbÈÕŽ¢WÄ,ÇÁ1Ì)/@ñ>+'š!Ú®HË,¯Vƒ–?`Ÿê ±; µV‰Y4÷ZÏD*ó9! Ó,•LY8NADNÔv”s35^é-üØ [Œò~-FéÕ²kÞÿ=ÜŠÔ> ¨=ç-ï¥î¦{/¤’Dêµ ‡IL°€<ÎpFPˆKhÃ(† £øŸ÷A•E§»n¡TêëeÍéÞ{'‚ðC iË•ëÙxµ/qeJ†€"’¡8bT(#IË$’Î@”ŠT4›úlî4#¼ƒ?ͽZÕ½ßÇ£«;aÈÛD«niDãtIxãÏ@" ¡>;ÀR™ÉXÎh*#íQމÐáÊs„Š?âÑzžÈUÈÉ*]Ìäjü.½ï¢SŸû“1Á_aï«"2YúEÓåj!çG¥+™™oó&¯x>N5Ô˜›UÇÆZ•»O˜w¸ÿþ»c>QŠ;§ÿÏÞµ5¹m+éwÿ =Ú©PÆá-?Ø;•:I6k'UÙJm¹@ÔðŒDÒ$5—óë·êBR”)'ñ¤æT.¶ˆ¯A°ÑÀ׸5 ðgóog*clãù¯Ùo¿üñû_ö­g`¢‡;Ó9ê6(`ç Û …n‡3RB.ÜR°RùZ-§fÀÖL¤RFJQ¢qi,¥2ÒN¼’§¾/}¯ÐÇ6‰Ðkb ’v5Ûh+—YT^€«\Oy 0ÒâĤ(ÒÈÎ`‰œ‰H‡4f!M¨aQªGŸ°um”{ÜQh[O¡-þÔ’5`*3F#0ØËŒ´Nª¬lê©~/áTQ{¹1G)"R&|†$2š X+L5á|Ü+íGêÝÿzh®‹üIÛðV÷Ã# »XºðÂ¥iÜ¡ƒ YéÞ%íÕ:·†>öèáë÷²›O›šª%”FàðÊ‹Ž“Ù×Üy¬š©X`žØˆ×”ãˆÇIÌpš€‹«¥Ö) Ñ@›¢}ÒÖywzË¥ÿmûWWúÉÙ1Ê ]Jp§ï'' "’˜¦)“+ÒˆI•†ÂÄ”§ö~CŽSÁB2º~p_~†wäuZT«ö€ÙS6Ø{µT9y¶ÓüqÓµÉ|gÎæ}dGŽý¦©IYÎ#9ã”ÒK"„”ö¬ šs;dÃc§½iH¢˜ð|…Á~m¤à˜j– b§ §F¥I¸1e³RIÝþÿsY‹J}…H÷Å|Ëö¼ ¨7pê=ä½Îš¢ª_¾wêÛ Ä·Ö3¨¥!Q‡“½Ù”öxÉî‡#¨Œ ®½h£¾ÍþÞUp[$¢y4æ]‚™rp!IBL¨´ŠPâØ·…ÀzdÃlAögmÝ·?ecÙêuc3­fÏ6š±ÃÛG*íÀ¸ }Cj…‚NyFç6‘Ý"$¿$x¸*KU­Š*ÐÏFÀÂÖÎG,J $Ò‚"Êx*¸†./$Ž †!“ˆð-Xuºí‹l|«¯iN_åý“ª×±v“vN³Ïúz~Ýj:؇ l9p ÔãÁ£‘êÝßgëÆM–¨åì¿K“*ÖUr@„G*{h‰P ]¡`WîKŒ`ÀÎ(!_²/uûžÍU&®€3ã`2¶RIa¤A‹Ò$!FÒ1eIŒbQI•„!3xsëäí2w¡¾þtÇR¿zYF­v[ ÏëÅYoàjfãn ý_Û ûß/Ul'ÄkÂõÉÄ—¿NV5ôË Œ»1¶“ÛVcŸÆÚøw“ˆëÓˆþWX¥žDéx=H‹¼™‚TÆhSß4E9/ªÅið"/V·È×åD.7z"SŦ*êd™¹ÛÒNaWzÊDVõ— Èmk0Õm–L”,Ï&^–ßf:S§1Eg 9igìN"®ËpÑÎóÄTëøá4¢®—ŸSMÙQ}›•)‹Úº;Ù”é®AÛ@w¹ík< n›™,/ÕÂëå½ku\9aPáf¢û¸3q`/š@e¹½Êp´ž,øýˆF!ãyiÇÂÄÍð/H®×ùÍ¡ÞúÉ/íµ‚@.›­Çh»Ž;¿Y‹Ã¸¤ú¡†Ä`¤äCÙf«x¬7Ü&¼\,‹XÈ.ýz¬ÛÚ¥æMyü¥VÉA꺮æ®ÌêV]gP¹fL;˜HÞ¾c—n;±Éû訣©cÅߥº»Ûªb=4ã—;âüÒØkß&R_~|ÿæêÇ÷ WHÓÔj&8Oª"Ÿkhïs°†ª©cE?"VÛèŸqΓ„¶ugoÑ›rŠÕ×côt[«pi/1]©Ò ÎÜjQyåZ• (3¹ñÛºš[ûé·¹«Ý{/]X ×h@å6¨²/ çñD›Ûb¹¶=!ŒA0òJÕÊ j‡š÷Æ/Tæ öòE.W«qƒ¹©¶Ñ±.»WÅvEnL°Z·>넘í6Mí[i­Le’ÌÜž÷EµRæ”À:> ¿Îý% pÛ”'¶Tu}ç[t«ÍCè(¼¾y(}ÕX—j•øbosë&ûf}—ÙÆ¢ªOü}êc/0J÷®ÈÓ9™/lì9O±F-^ªSaý§Z–ðÃS6.ò".6ÖÙºu£ÁÀi¤òÌeß;¹%[Ùñ§m a¿lSÐtZÜoÿ @›—Iú5ó®àªøW¶\ªà¾¨17ØL Ë tìÙóY:W0Ðòi ]ïþ²+ä–¤ÖS„<”ÒY¨InJ™ªNŽLʤ˵w•me–«æÜrÕÏ”Y©ºñn[¡ü 85gÊÈ”Yrsvµ–™W·Ú©Šû‡in(vÁ}Y}&eÀJ“ës?©¾.+s¾ÉY‘³¿§Twçv%Ͳ>_ÙM•Ýfj .ËÈÁ¤4ôîYêK<;¡¬jÖ¾³K8ÒùÿɺFƒíÈÆ|Ý@p 8¼œ‚vð ­ÇûÖCÏò…ñê{w~†¶…çZN¥öeQ’³ÐÔ½ÌN§¾x7êÎW±7¶›â8‡¯,½¨aƒ†ñ¨ üŽ€†Aã9x¿>zÿ²6kŸfßÎlÁ ÅÓ}ïá·mÿl¹³_xFUÛƒ?øË:ó××ÞX;=«ôYpm¼õq[ŸÓ'Üg¹iô‘ÚÝ<[w•¶·Eà“IÖ@"»ÚRŒ-{ƒ»s&GÖe·‚ÁnUnd[³ Ͱ`ü¢[f¶¯j£§oŽÙX®”")e‰‰F˜Æ8Ò"¥ø&*"¦s™Q_h®ìl ûuõöûí_®‚OÿóC¶M°Ë›Á/ÖøÝÏ…i¨°öÇÇŸß¿ýøÃ&?S­`D¨ÿaÚÀ›ÛOøÓî“ëmɾhý÷q¬û¶ÒìW<ÿ~µZçÙý«WÖáÈ/O?;©Y=v‹EÔOÆúGÍáóuÜžozñl`iû}¬ßf-xY,l+èF¬ß&Õ›—ÎuÜ9”¦T`—‡›á£Æžè?t[ÆU–÷Ÿš\;èì=¼m¹²ûlar[´þÃMyûíÜìºî?ƒ­Õ}nz¹n¾íó¡Äð›>häk?å°Ì‡î”l¼l éÂÎñÄ­˜G;£aoIY÷6®žÔn ÙÒIAÖ^É""D.9Ô\µk ±ûrÐ?ÒÞ)Ží½1„ùØ~–ȆΕØHžJlàí& Q’HÅ%ŠÂ§~ nD¹¯÷ê œzoÚûÉ4w0B±¾]ej‘ƒ–% üðéã·›½T›]SÏëßÎjcf›Ãº[ô¨àáŽ*¢ÎÞâà ‚Á'Œ…£•œ°e6<ùVY¯ì•'àZ`9Æö÷űFË„u+‘Ê#ÅDÄ•FX!D…ˆŠ5~êŠ|ݪ2pª<ûZ©­ jäàÀ®”«¤êUÐyçˆyÈ|¼‰ìóhVfÙ»mÆÈø-‚BRžpnÒ$Q¢‰6Z"J™g£ÂTÄ$ýI=Õ𳾪Õôõën X»¹gk úœÞí/õo\×ñ«[Dß¿-Á±&ú|£kø¯ü&K¾ÉìÝxe÷.½=\pô;e!ÿ¿³d0Èo‘¨D¿ó„3ù¡„.Å÷#Ø›°”ýްoyØÛ·%’XzÂCÄKôaoø?D¾ððª|ƒ7üêªüðú†ó·%tÞðCÙñ[_¸|SBE¡z'ao®õƒ áŠï[S-œ_ø›7Ö”©/ümT¾õ¯©ˆ¾)ièm6g¶éþŽˆ¯.ßÒ·%æØ·¼»zuë]ž«ðµËß±wy®¢÷¥ÀÖ|Utõ•Ð[yÂ1b¬Œ gð„“W»ïc*¬íûö¸í=õã$BÁ|‹Ïyd;çÐ.q¶O=s—”ø3AX–vï¾<k.щÜ'/i}·» uö\-—³æ¡4Öáþî§_gß™ÜT°‰~²ñÇgÏaLøbë>óX†Ã@Üö¤‚ Œ".gÐy„Ñ%G©aäý êö¾ELÜ­¡‡Þá0Ú³WrºÓ à`c-µÒ”ðóm@âˆ%©m¬Š6Kw"æsÊÛ tºùëýji/¨¿¯—ͳ]!‚,·3íK·±Áͪ¸2mDêäÚ¬Tûc—á:oª‡- )*;þéÞ]ŸfËåºì„X]T¦|¦³4m>¾y¶GPú³|ÆV÷ÐìÖK㦦l%îêÇÎÈ ŸBÞûG{ ÜÕ·½‰v3=¶A©eÿJÆ?øÎîlϧ‡º1«—ÿ«>ýrz|´¥ô[± þØ·â]w>ì° sbÇRKÎçŽ7ŸÓ Z£4×I(`F¦41ÁÄÈ$¤!¸Œ†!­5§´mÅæ=Ú4W…½Ÿ¸ýûfš¢´ÚöWãNµïÛ¨\ÿöÖ9Úlñ¸¬£›‘–s¤ÛÜ7£,Ï\¤þÀHSdý—7îœn-À‰Í0C’£KZË}V»yXBù‘ ZB¤ŠBš‚—¡YbÀ•¡"M5¦F˜Ôp#±‹µ«Ž\ÜûO•„â·[³Š[-ãXþás»ÄÞîj£»Èч ·÷WÝÕz¹¿¸ìéÍzÙʵºgA[½Çg½T¾XÛ³:ÝY/ ëg8ì˜7€ƒ}YÆœ7ÈÌžª&ò‚ù0{”/Ø r}>BÜ´ž‰hNÆâ?ê(åI„B Ã4TB…‰Iä‰N(3‰Â"&,Ý^娾ò¡Ó¯iLCå¾Þ©7pêmûV‹ú¼G>´·>,Ú¬Ž¥/²Æ`]™c ëű”ÖWª%¯óJU½Æ²éö?]›åòtà€ #t€ö»²A_Ç-Ɔ“3"CzÉB1ðË®2ÃÀ0£áÎŒ úC£$aiH¥dĵ‰„S|À#‚A "ÃËߟ¹˜0î/ÛGÖ;jïz·½vË ìÉ»2m¸=A[ ûÁRlCæ¸-à»Àfnoö/Sõ×ËL»´ÿôË:[,–¦ÿðvQ–½'M“xjŸ]û®Råu–Ô/ß9µ ¡áÍVvÁ'²Óìµ1âTF, ñŒ‰("â‚}1îNåp£xÁçll4CûDRB"€’X"#…‰…c穎Ó0Flëòôï¡{zÄÐÞQ  Zž·¶æaAƒ ;ºa¾7 {Uô¾,#›ª8âÍBFá⢘¡9tÇs·uêÇ–ÛTÌ’8ŠÁ Ra§ðt¥ ˆ0†X1Ê4Þ†‰ük‚IL_vñ¼¥ºnä„ì?ÝÇów0²µit¤ý¶Zˆ­À¿¯àíÝ„GhãÜ+µ&Ú„ûô·E1·ŽõN¶  Lm®ŠC]w«Š]G¼¿o ©Ø£æÇ1ßçÀ …æTF?»ÑÓñô_k“®{õk›ÂëNc°#Tä1ÄèÎ'÷b5®AkÇBDûØ  02£„±„a8S¡¸$ÚtZ¹ ]6DϯŸÞ“ÍÛKIc…ŠÄ)q˜¦XE ŽˆJ•G,Ž$ŠžøŽŒC¥¾vj ¬Z[¿üÓúÓûÀáÆ\ñ×~ø‰Z8á\†¨ã‚ ƒ]¹F¼ÆÀ±áì‚ â:uûàÐŒÀx˜Ý©…„ E,â±â\&a¶‹S¡5o$•éS²nÙî9ESåyHë|l­fP)Cgœ}¸7׎ÍhÈöL\<=®¯íô!8+bNÇÜ CL"´”`$Iª)f"àw0¤OS­ û‰½¿b;-÷tÍæº]eAÓogà)ý_ºHÎ3*»Ú&<[½»º…ÎÆNÏžÿÐY'ÔüÐ ™ì=µØ`÷#SÄ,DDÎ( _h„A²Tu½0ùIkÄ$±ÑXUÂQ‰ˆiSS¦h(0!Ç”(™n™OÕO7Îi_©]#|ÔV¶-ñ)s£˜ ÖE—ŒÍ픇õÔ¢9ü‹íq9¶ëUkÎX‡4 S…´ŽÂ(QFI¡*#ÖnF×+¨î$Êßk_£;Èá2¿èüýÕ«+÷ü#»ËúO>–«ÏÚZzÝ©'ð¼å`âjÿs[ë8+ÿ—nÌ:†ªHt§“¬DÐ/çÈÁ®S€+ǹ¸ ¼o¼ÎõÒKßl©3Ö:›˜ˆ9ë*e”„„{ o,iDBG*–†DÊØP˜2–±Óîð#¼÷ùow9usãjÊM¹ î‹¥`žC«¤~ñ¬ !¶ 9·3²[ˆMr Ý”-Û}9Ø.±…–Y±Eh$[c´×%Fv~`‹îÆäÊåz‘åu`CxzeÒ“8•ã¢(t/G1‘¡h3lnºµÀ:Z‚”šÚg.å\Ì÷ʇ4‚*Û„®éª|‡Û%÷Áë¬àël+à*-Qù­ª;2ð±½—tP}ÁuÙùâÈ 'q´`.µ-Áòšž)³!ÞA…ºßbdTl ƒz½oïh_]ûäz ay€ïä^^MѱèlúÊmoûƒ`™åëûžõìàût§”ÍIK*cS"ßýúýË\½ŸZ;ȲGQGŸ0íŒsÇŠt 3ↈ"¯à ]4çvøJ­&H•+™è(I±6Z„DR¢i€ûchd =¢DÂ@ü?¤ú’ªV¤jAž¤ê 'HÕ¦{ªƒM‘ªMª{)/Ruð“¤êêˆÜ$Õ9^Fª.ÃÓ¤ê S¤jAÞ¤ÚûêFà|Rí z‘jWb‚T»PoR=ò%Õ®à4©vÑ>¤ºÅû’ªÅŸAª>N)‰Tµ:MªD2ñ™d„òKöûŒ¼ÑLp*5’ñPs.y¨˜)'q­”Q©½ÝH+ÒH¢ÿpê_ʩƇS?§š N5~œj|8Õ\Ä©æ²oñ¥h“{P´yR´ƒž h›îAÑ6EÑt6E良(ÚÁOR´C\@Ñ#r¢OäxE» OS´ƒLQ´yStìCÑó)º'èEÑ]‰ ŠîB½)ú@È—¢»‚ÓÝEûPôïKÑE[ø8A=&Š6ùiŠÆ4<šI,DxÁ¡þ±7N­ÏÚø ñÿ³w¾M®âÖºߟÂU÷ÍIMÜ„1ɾUIfòçÞ™ÌÔLNûn—Ñínll÷ì=ŸþJŒ°i´$ƒ·“ô©SÙÓð< ÒZ⇀Q?%arJG¹—È·DiÈcF ¦ï—½×­©û³~–îÏrØýY¹?ËîÏr»û³Üx–;ÞŸð]ZS§¾?ËÍ÷g9äþ,·¹?ËmïÏr×û³Üúþ,‡ßŸå.÷gÏLàšju–[ÞŸå–÷g¹ÝýY>|–ßÖýYnº?‹cQ¾Ä&¼Ø§Ó\öæ+CQ%ˆ^FS±E?Œiæ)a±ÏóX”Å,ã<‰ðñëæ·[¯þ­Šj¾U)U%)ªr= ¨*™©¨*‘uQí\ ¢ªä£EU)Šê€ï¢:Ñ­¨ª€ãEUILEUŠÀEµ'†ÕÆ`_T{FPQÕ†¢ªKÁEõÌ-ªºÑ\Tu5¤¨¶zhQ•z‹¢*åÃ%å–Šj¾2ÝŸ¥âZuGDT·ijješHûi¥âZ4!ašg<ÁqFPNÒ˜¤‰ç¥"eô½¦^µ¦VšZÁkje¨©¬¦VšZ9ÕÔÊ®¦VÆšZ9ÖÔsߥ5õ툎5µ2×Ô RS+›šZÙÖÔʵ¦VÖ5µ‚×ÔÊ¥¦žšÀ5µ²ª©•eM­,kjeWS«ášZÝVM­ ªQàDZ1ry'Øù&Ÿ†¢Êc$&–æÐÄωçEžçq”d±øA ‰Òཨ^³¨>EUŠ€EUIGŠª\(ªJf*ªJd]T;¨¨*ùhQU ‡¢:à»°¨ŽDt+ª*àxQUSQ•"pQí‰!Eµ1ØÕžTTu‡¡¨êRpQ=3A‹ªn4U] )ª­ZT¥Þ¢¨JùpI¹¥¢út0=„Á¼ÇoØäjo(ªIÄ^^žç'ñ< ‘(ë!§Y–d§,F~¾ÕkÕÕPT¥XT•t¤¨Êõ€¢ªd¦¢ªDÖEµsŠª’U¥p(ª¾ ‹êHD·¢ªŽU%1U)ÕžRTƒ}QíAEUwŠª.Õ3´¨êFsQÕÕ¢Úê¡EUê-Šª”—”[*ª«½þÒ(ô¢…¸Nu{yõùŸMO¼â”pNc,_N'A’ú˜¤~Qê{Iœ§aÆ‚Þ/T¯ZSŸ!O¼>ßx}6<ñú {âõòÄë³Ó¯ÏvO¼>Ÿx}v|âuÀwaM‰èVSŸÍO¼>Cžx}¶yâõÙö‰×g×'^Ÿ­Ÿx}†?ñúìòÄë™ ZSŸ­žx}¶|âõÙò‰×g»'^Ÿ‡Ÿx}¾­'^ŸO¼F4 äù("Nï;Ûä&1U–øiD‰ã±(L¨"žÅU«˜&(ÉRö>MéªEu“Šª‹ª’ŽU¹PT•ÌTT•Ⱥ¨v.PQUòÑ¢ªEuÀwaQ‰èVTUÀñ¢ª$¦¢*Eà¢ÚCŠjc°/ª=#¨¨êCQÕ¥à¢zf‚UÝh.ªºRT[=´¨J½EQ•òá’rKEu“ž§¡ÄChÄ>vz!ìÀ CMM’„rŠZžùQ”óЬõßµÉeX …:]3ôÒ1Ã[›;•mÛqtaÜt#«7m‡hÁê¿k—qh¢ùê¿•>ZéüúÂ~Ð(f Ða¥…rßôBö×ô£Â?áêå½`¦qÑy”ÓðáÒy¬vÅy@ðPê ç'0Ð:¥–ö€F`çúûšõ—ª@6c¶.No©Š3<”¹©ÁœazœËo}/Pè‘Oó¯Êô ËÓ $Ä 2r1 i–ò$Mý8 ˜‡ÓУÿ>˜»æ`®‚<ÈUÁäª rU°¹*ȃ\•Óƒ\•݃\•ñA®ÊñA®ß…£‘ˆnc˜Êü Wy«²y«²}«r}«²~«‚?ÈU¹<Èuf‚–õÊêA®ÊòA®ÊòA®ÊîA®jøA®ê¶äªLrÑRHDM:ß½š^ãEIü{iFÂxN|Žý‘<ðÃÇqœEŠjÄýÜ rßóB”f^Ì0Kâ( Ó(˨Ïb?Æ,à|»ðÆ>£ðŸøIˆ_Ÿ%ZŠ€%ZIGJ´\(ÑJf*ÑJd]¢;¨D+ùh‰V ‡=à»°DDt+Ñ*àx‰VS‰–"p‰î‰!%º1Ø—èžT¢u‡¡DëRp‰>3AK´n4—h] )Ñ­Z¢¥Þ¢DKùpº¥ýë“á«M(Fž(ÑârÓ'¾À¤n`©öI Tè hŠršY€ü3š‡I0ŒÒÄÏ8Mc„‰¨áïúö~K¯B/wåªW¤Ã®HËuõ¸Ùf÷ÄùiÊ®?×ÖZÎ ­†ø÷ô(T«jUqà¿.{ÙLä¾NÙ­®å•¨2Õ¶“RmóõºæSáËäeŸO ²¦nJŸŠýÞñ7ªw½Ré8/Þ‰5µbûÖ @¬©¯«MúÖ¶ê•n[ˆ¥¾€ºgKñÛ^E‰ìgÊ{Í8 >‰3œeë•:iYm‹ât[Ç-iŠÚ!šÇvßÒ•–z•R=Šé~»=¿àdˆÔ®oÔb¶äÙj¿Õwk¥_SÔ–lýÆ€.[×)~k€&×ÕªÕºÔËK7J+jEÁ2íô!¬mJ®ªEªE³²,D7ãÀ÷4šK6zq$öOÚp  "Í(É^œ˜eÊ7û“ÓöÝ}¥BBÖlû¢ïú'vM¥™3¾{ÙoË·Ž±®Ñ\2u"¥Ðkö¨š@;þíêžxµY®ùæÐYbq<¿ª¥§¾F©»EÃ`£?H)zŽÍa7vì•@7l­ûD'j¹VSoø^ïE'B—h¦’¥/â\½¬öz>>ù!¨çÜœ¦<ïܸὭ=‰rxÞˆ‚S›.ÓíÛ_„íÄ>xè{J-Â.­8ßìØy¾ìû5îEõílÙÓô\û½¸¸Û‰ôË×§ntêîiõ(%/ŠãðVžOÚh-Ðj*šÉæ$Wl¶'Õbˆ°^mØ[¥­/Ò|½«qu¥sÖ6êkòÎ"kÍú¬q¨Vô}eb÷yÃÊý*Ýõúò±Ütëkùþåi¿î§r&›Õ­¶7¦ÑU­`·=T©(Ðü—n¿õ^¤+Žy¾ô+wmo›µµô>±jÍÞLžíz¥–מût_hY°™¥Ö¶ÒGV°ÇíRû‰¢3ö¯ÊŽŠ¦Çgú£6cÝ!F}aÆŽ*yV_’¬÷Ï®&…àh8+%½]n‹ˆüï_8Û?½Uñ4Ak(UYh5¼4êµ­v·;¬ôãiJ¹®Õý²I_Þܹ²æ¼â¬kkâz”vBµR ×|ÏÒÕ¾?€EäØzÚõµx»Ùm»¤#‹âQW¯jd‘zıxy«Þj åØ0ÙE=K31Z®6o&Ôsaß?îêk·â:ê,'iÌkXر—b{­ý"­­ˆNŒ¢›i—"ÑMJj×v¿ÊW)kÆÝzâ—öØTtÊ¿­RöÆ¡‘«”F\ãÕCDíÇt#ìãZ¥MŒË_¸¸ÕGoZÒÑʲ߮“íg-¶ÖëuL–}WI§«”H\»ôÙÚ±Ê5µd¯cEíèŠJðIä9m”N»n¤Ö(Íg^”ÃiD®Q’_ùæ´óh©º^Û\)0 ú è-èó—¿ÿð½û¨˜=ˆÒ£>^è{„ SŸvw–ÚΜCŸ@>F J¢(ö.|Ȳ£3õ!>f<ô#L³ˆÐŒ³ºD}4€útj êÓ™l©î„RÍãB}4»#õé"¸PÍmA}t—;õÑ¢©æp¦>] ;êÓùÀÔ§³8SN}2§>ömêÓ¬¨OëP%SŸŒ©O#µ¢>}Ï8õiµãÔ§U©Ok0SŸV ¦>D}­‘ú4:3õ©…ê#…`ê£ÄfêSËl¨t\B}z~õéi©O/† õé¡ÔG¹. >Òo¢>R¥>RkI}¤@}j™úH‘ú(Éõ‘õ‘õ‘õÉØõÉz¯€þâÔ'cãÔGñB,¿Y„#ÿÂ÷U¶ctõ‰Âˆ)KÃÅÄãÈOqÑÜ’úp õáFêÃÔ‡©Ÿˆúp+êí©QnE}¸=õá&êÃAÔ‡©‡PîD}Ž.[ês4ºSŸ.„õ9š­¨ÏѦ>G„úhbêÓ¹¡ÔGsÀ¨Og€PŸ£Ú†úMÖÔGs‚©Oçq¢>Ý•ú#8QŸÎmC}4×Ô§‹¥>ÃúcXRŸ£N}ŽwêÃí¨· >ÜD}¸õápêí¨‡Sî@}¸õá êÃm©SnK}¸õá@êáԇC©·¡>F}¸5õáRnA}øÔ‡»RîD}ø…Ô‡¨· >ÜžúpõáêÃÍÔ‡›¨Pn¦>J}ø õá·E}ø8õ cõÉ/± ŸS`¾1`/‰Icò Æ4EÜ ©ü&5ãM’$^˜ó GïØçö~‹öá8öQZ#öQ*8öQröQ: ì#õì#uãØG)F±R°O­»ûô㘰TÛaå0b©‚cŸZm…}”e û(û(Õ(öQ öQ"kìÓ¹,±OgtÆ>Z{ìÓ™m°Oç‚bŸÎÀ>ºØûhn öÑ ì£اS[`ŸÎd‹}t'ûhì£Ù±OÁûhn 죻ܱˆ}4‡3öébØaŸÎÆ>Åû¨pì£ä@ìÓh߯>À û´öQR0ö‘j öi¤VاïÇ>­vû´*0öi fìÓ*Áا1€°O£5bŸFgÆ>µ€}¤Œ}”ØŒ}j™ ö‘ŽK°OÏoÀ>=­#öéŰÁ>}#û(רGúMØGj ØGj-±´°O-3`)2`%Ã>R`Â>RcÀ>RÂ>õ•âó¸%ì#šø(ö‰qûò-ñF> h ìcz³õ/Ê1‹¼8HÄ?¡i§4à¹G9 £0fŒ»¿ÐöÆPÉ0ö±x³½Ù‡Û½Ù‡ßìÃ-ßìÃoöáÆ7ûpã›}8ðÍ>|¢7ûôã±õ›}8èÍ>ÜêÍ>ÜþÍ>Üôfz³7¾Ù‡CÞìÃÞìÓ¹l±ÏåoöÑB8`§7ût.0ö±y³.vÀ>ÖoöÑ0ìcõfŸNmƒ}œßì£;ÁØç²7ûhvWìsÑ›}4· ö™äÍ>Z(ö™àÍ>] KìcÿfŸÎâŽ}ìÞìÃ-ÞìÃMoöáoöi=ìcõf³wx³OßcÀ> 7û´*8ö¿Ù§U±ś}8ðÍ>úf}³·y³‡½Ù‡[¿Ù‡_øfŸžß„}&x³O/†öqz³¿ðÍ>ðfnñfnÿf{³‡¼Ù‡›ßìÃMoöá€7ûpó›}8ôÍ>|ðÍ>ÜáÍ>ùñ»Å+^l«EÁDƒœÿÞðƒ¼È±O("Aà~ѨÞh¾2=íEcß‹ý(F!¦Q³$Nã8 R?ÿ%ŸùÊ0g¢ý½ÐèêÄ&_Á‰Ò‰RÁ‰’ˆÒY©‡©'6J1Jl”@ljÝåĦÇDl¤ÚŽØ(‡‘ØHœØÔj+b£,cÄF ŒÄF©F‰R˜ˆY›ÎeIl:£3±ÑBØ›ÎlCl:”Øt±ÑÅöÄFs‰îÍ 6Ú‚Øt&[b£;¡ÄFó¸ÍîHlº.ÄFs[ÝåNl´(@b£9œ‰MÃŽØt>0±é,ÎÄF…€%›Fû6±iVĦõˆ’‚‰T‰M#µ"6}Ï8±iµãĦU‰Mk0›V &6Dl­‘Ø4:3±©…b#…`b£ÄfbSËlˆt\Blz~±éi‰M/† ±é¡ÄF¹. 6Òo"6R%6RkIl¤@lj™ØH‘Ø(ɱ‘±‘±‘±©¯(Å-MÔÉWR¢@>ŸE|/Œ? §© œ&Àx>BPÄY–ø(KÆA³,{%,÷³÷y:·÷[,©OeA}*õ©ì¨O¤>•%õ©€Ô§2RŸÊH}* õ©&¢>•õ©¬©O¢>•õ©ì©Oe¢>ˆúTFêSA¨OåD}Ž.[ês4ºSŸ.„õ9š­¨ÏѦ>G„úhbêÓ¹¡ÔGsÀ¨Og€PŸ£Ú†úMÖÔGs‚©Oçq¢>Ý•ú#8QŸÎmC}4×Ô§‹¥>ÃúcXRŸ£N}ŽwêSÙQŸÊ‚úT&êS9PŸ N}*+êSÁ©Oå@}* êS¨OeK}*0õ©l©OeA}* õ© Ô§‚RŸÊ†úT0êSYSŸêBêSYPŸjêS¹RŸÊ‰úTRŸ @}* êSÙSŸ F}*õ©ÌÔ§2QŸ @}*3õ© Ô§¤>ŒútŸ]¿Â,¼2ÍÒ‰Ib´@¡O‡SП§ƒ‰þpÆ8ò˜Ÿ Ï3?yHb‚â$b™ü"XèG$¡ï³t®Ïkžp^£´F^£Tp^£ä^£t¼Fê!¼FêÆyRŒò¥ðšZw9¯éÇ1ñ©¶ã5Êaä5Rç5µÚŠ×(˯Q#¯QªQ^£&^£DÖ¼¦sYòšÎèÌk´ö¼¦3ÛðšÎå5Àkt±=¯ÑÜ@^£;@¼F3xM§¶à5É–×èN(¯Ñ<.¼F³;òš.‚ ¯ÑܼFw¹ó- ×hg^ÓŰã5Ìk:‹3¯Q!à¼Fɼ¦Ñ¾Ík¯i=^£¤`^#Õ@^ÓH­xMß3ÎkZí8¯iU`^Ó̼¦U‚yMcñšFkä5ÎÌkj!€×H!˜×(±™×Ô2^#—ðšžßÀkzZG^Ó‹aÃkúF(¯Q® xô›xÔ@yÔZòiðšZfà5Rdà5J2Æk¤ÀÄk¤ÆÀk¤Äkê+ÅJqK³tžRã‡qÅ âÑ0ðœfµ7pš„ø Ó$J"š% Âùa„R žú<‹3§IüÎi®ÏiV{8§QZ#§Q*8§Qr§Q: N#õN#uãœF)F9R8M­»œÓôã˜8TÛqå0r©‚sšZmÅi”eŒÓ(‘Ó(Õ(§Q §Q"kNÓ¹,9Mgtæ4Z{NÓ™m8Mç‚ršÎà4ºØžÓhn §Ñ N£œ¦S[pšÎdËit'”ÓhN£Ù9MÁ…Óhn N£»Ü9Èi4‡3§ébØqšÎæ4řӨpN£ä@NÓhßæ4ÀŠÓ´§QR0§‘j §i¤Vœ¦ïç4­vœÓ´*0§i fNÓ*Áœ¦1€8M£5ršFgæ4µÀi¤Ìi”ØÌij™ §‘ŽK8MÏoà4=­#§éŰá4}#”Ó(לFúMœFj œFj-9´8M-3p)2p%ã4R`â4Rcà4Râ4õ•⥸%N#Æl£œÆ§žˆ@Á¾çÓ)8Í33q„}ê“8O‚Ø‹RF1Í<E$@â(ÊÄRžr¼?Mu{¿ÅŽú<38õQZ#õQ*8õQrõQ: ê#õê#uãÔG)F©R¨O­»œúô㘨TÛQå0R©‚SŸZmE}”eŒú(‘ú(Õ(õQ õQ"kêÓ¹,©Ogt¦>Z{êÓ™m¨Oç‚RŸÎ >ºØžúhn õÑ ê£Ô§S[PŸÎdK}t'”úhê£Ù©OÁ…úhn ꣻܩH}4‡3õébØQŸÎ¦>Å™ú¨pê£ä@êÓhߦ>ÀŠú´õQR0õ‘j õi¤VÔ§ï§>­vœú´*0õi fêÓ*ÁÔ§1€¨O£5RŸFg¦>µ@}¤L}”ØL}j™ õ‘ŽK¨OÏo >=­#õéŰ¡>}#”ú(×ÔGúMÔGj ÔGj-©´¨O-3P)2P%£>R`¢>Rc >R¢>õ•âó¸%êóÌ ³spS/¡Q¡)¨Ï&1PŸ…>‹Jh”óÌçq€’3yœQ‚s–ÌÏâô}vÎõ9Í&s¥5r¥‚s%p¥³à4Rá4R7Îi”b”Ó(€ÓÔºË9M?މÓHµ§Q#§‘*8§©ÕVœFYÆ89Rr¥0q%²æ4Ë’ÓtFgN£…°ç4Ù†Ót.(§éN£‹í9ærÝâ4šÀi:µ§éL¶œFwB9æqá4šÝ‘Ót\8æ¶à4ºËÓhQ€œFs8sš.†§é|`NÓYœ9 ç4Jä4ömNÓ¬8Mëp%s©ršFjÅiúžqNÓjÇ9M«sšÖ`æ4­ÌiˆÓ4Z#§itfNS œF ÁœF‰Íœ¦–Ùp鸄ÓôüNÓÓ:rš^ NÓ7B9r]Ài¤ßÄi¤Êi¤Ö’ÓH €ÓÔ2§‘"§Q’1N#&N#5N#% NS_)PŠ[â4›dœÓPŸD8Xà( hL‚i ¦!^NPæy(ŽXdI¤Q†I{ Žcæa£ØsŸœóŽiÜ1Mai ¦)ì0MÄ4…%¦)€˜¦0bšÂˆi ¦)&Â4…¦)¬1MÂ4…¦)ì1MaÂ4ÓFLS@0Má„iŽ.[Ls4ºcš.„¦9š­0ÍÑÆ4GÓhbLÓ¹¡˜FsÀ0Mg€`š£ÚÓMÖ˜Fs‚1MçqÂ4ÝÓ#8ašÎmƒi4ט¦‹Å4ÃÓcXbš£ŽiŽwLSØašÂÓ&LS8`šŽi +LSÀ1Má€i LS€0Ma‹i 0¦)l1Mai ¦) ˜¦€bšÂÓ0LSXcšâBLSX`šbLS¸bšÂ Óbš€i LSØcš†i ¦)̘¦0aš€i 3¦) ˜¦Ä4ÅmašÂ8†z$XøÆaOÁiJ§‰bÏG,g!JSÆqÎcŸsçyJh„hž°ˆ‡~ÿtøà4¥§)Aœ¦´ã4%Ó”–œ¦ršÒÈiJ#§)œ¦œˆÓôã˜8MiÍiJ§)­8MiÏiJ§)Aœ¦4ršÂiJ'NÓ¹,9Mgtæ4Z{NÓ™m8Mç‚ršÎà4ºØžÓhn §Ñ N£œ¦S[pšÎdËit'”ÓhN£Ù9MÁ…Óhn N£»Ü9Èi4‡3§ébØqšÎæ4řӔvœ¦´à4¥‰Ó”œ¦õ8MiÅiJ8§)8Mß3ÎiZí8§iU`NÓÌœ¦U‚9MiÁiJ §)¡œ¦„ršÒ†Ó”0NSZsšòBNÓó8MOëÈiz1l8Mßå4å…œ¦pšÒ‚Ó”öœ¦„qšÂiJ3§)Mœ¦pšÒÌiJ(§)9My[œ¦4q/~äù!d>Miz)qàF^àG!爡0ȃ”‹3?#%1Êò8N“wNó8|¥ÚÉ’üÉÞtô…u 3ÔÑÜí’ÚjAz´½Åu Ò"Õn2¤EѪ8 bÔùK”Ù€‘:[ýgíKšGýY{ ¨Is¶KóüI>,8Ù–‘Q Dl£X²«.RqËLµ4»DY-PWB_ØD±C`z¨Þò:Ú(Ó¼êÏÚbæeš¯YP;Çšæªÿ®MF¬¦ùšµÑµi‘NVhm1ÜiP}•ÖÒnàl½¾Žw¿¿V‹núNÃv+´ˆ`x­]¬Å‚àÁÓ0õÂ^lxµ[¥Ç†BųxÍâ^,n<U/ÖCA@äYœf±ÇQž†ëVh­ñåiÔÞº^`0Ý<¹á§»éÄ=ÏŸ¬Ö7àJF϶q²ZÛ†;=ß_©G·a«gQ+z/à®ç[8è[‚²Ù³¨ír=˜;¶= º^ÛŒ%Ù= ­­Ñ‚±ïi¼v±ÌŸ?[_oÅ‚kõ¥u(LÖ‚tËÚ#Œ¹çÓ,vÔ¹¥·âB¤ûašeu8¨Ö‚h U(ÀîBhËÚv\»ª·â$žyÄÑcXxß1Ý äý(Ýâc(:ïÇÐdv@½¦[܆‚¡ö^”ãÂ6†Á÷üÍ¢Ö ó={³¨±Cp½no);âw!´eu Û×ÜÇEÙŠøëqôÅ*ÖE÷ºÈƒkû0Ý,8vÂõÂÀ~ž*ú²ºÑ0ý¸ê$,ø6ÄPÌfMò’{ZðÁÕj Æ»]”æoeߨèìúBÃö†Gêd¹Š¹ÒE8.i¼¦$º³^ Œ¦›&­ù»vÞGÑ<ûcC0ÞYé\íå3ÝmélÍßÊ»ÓyKJ;pOÂú®Ì_~ünñŠÛjQ0Ñg¹;cüA{/bâSOòRºê`¸;ã{^ˆBš{YîñÄ#a˜Eyê#Ï ²8b1‰"ž3콊àö~‹Ý½žê¿­£´ÆÛ7J¿S£ä€û1JgqçEê!wX¤nüfŠRŒÞ:Q À’Zwù=‘~Óý©¶»¯¡Æ»R¿QQ«­nH(ËØ]%0ÞcPªÑû Jaºy DÖ7 :—åÍ€ÎèŒûµö,¿3Û úÎÅñÝu±=\×Ü@|®;@\3Px§¶ÞÉjëN(µÖ<.lZ³;’ç.‚ WÖÜÜXw¹³a- ûjg¸ÛŰ#· g;‹3‚U!à|UɵѾÍKm=ª¤`Ô)Õ@¤ÙH­Øeß3Î'[í8‡lU`äØÌ`±U‚bcÂFk‚ÎŒþj!òI!ç)±™ÛÕ2B'—p¸žß€ÙzZGžÖ‹aƒÊúF( S® x—ô›h–Ô@Ñ•ÔZ"*ip¨Zf@NRdÀKJ2Æ’¤ÀDޤÆ@‰¤„„ê+ÅæqKsr«Ã8õ‰HE1] ß Â˜FS`ŸÝ«iRn˜‡Œã “û±T>5&>ɉç%S”2Ÿ1ÌÞ±Ïíý;ì³{…c¥5b¥‚c%`¥³À>RÁ>R7Ž}”bû(ûԺ˱O?Ž ûHµöQ#ö‘*8ö©ÕVØGYư±Rb¥0a%²Æ>ËûtFg죅°Ç>Ùût.(öéì£‹í±æbÝÂ>š€}:µöéL¶ØGwB±æqÁ>šÝût\°æ¶À>ºËûhQ€ØGs8cŸ.†öé|`ìÓYœ± Ç>JÄ>ömìÓ¬°Oë`%c©bŸFj…}úžqìÓjDZO«cŸÖ`Æ>­Œ}û4Z#öitfìS ØG ÁØG‰Íا–Ù`é¸ûôüìÓÓ:bŸ^ ìÓ7B±r]€}¤ß„}¤Š}¤ÖûH ûÔ2ö‘"öQ’1ì#&ì#5ì#% ìS_)0[Â>»WãØÄ—Ü'D!¦á$Ó}~}2pŽ3±Û!âIz^޼œbNó<ä)ÉH‚0ÂYôÎ}nï·ØqŸ_ŸàÜGiÜG©àÜGÉÜGé,¸ÔC¸Ôs¥å>Jà>µîrîÓcâ>RmÇ}”ÃÈ}¤ Î}jµ÷Q–1î£Fî£T£ÜG)LÜG‰¬¹Oç²ä>Ñ™ûh!ì¹Og¶á> Ê}:€ûèb{ÜGw€¸fpŸNmÁ}:“-÷ÑPî£y\¸fwä>]-¸îrç>Z ÷ÑÎܧ‹aÇ}:˜ûtgî£BÀ¹’¹O£}›û4+îÓzÜGIÁÜGªÜ§‘ZqŸ¾gœû´ÚqîÓªÀܧ5˜¹O«sŸÆâ>ÖÈ}™ûÔB÷‘B0÷Qb3÷©e6ÜG:.á>=¿ûô´ŽÜ§ÆûôPî£\pé7q©r©µä>Òà>µÌÀ}¤ÈÀ}”dŒûH‰ûHûH ˆûÔWŠÌ㖸ϯOãÜÇÄ)^Ä1ŽB|álŸqe“îºÝ èó¡YÇ4¦^¢$I|ÊÓfYD É(É2ÎYš¡û\Ÿ ˜ó%(ÍšUÛ—^í8æ‹zÝ×éî7wÙêqõÂÖËl›6C$r\¦›Ž¸Y§¼/~¢>X,¯×³<ç«Ö‰i—æÚ•µ2ã Ûq¢²ôÏÿýó·Ç¸…9­§×Àbo>&¢æQÝz¼n\ûW}¿bMº­5«rµ,‹Ããj³Óói÷;5AíØnÄåÁŽéEÿÚêZ¯.Jä5…^Dü»×Âãut'«]b@^ñî2°7ŽjW*¥h-r=}ïõ‘†Z©”ýZËk}+¯ýßoÌYMÄë%‰^NCQ@Áƒ9­Þ‘¥¶ç-ôbB‘ˆ‰ï…—'´ŒZˆ9¦I#Žåe^L1 QÄI#’Ѐd8ßÚõZÆÜšôŽ%4µ”ДÒ-¡µV»„Ö¸FšÒX%4å°HhJoД ”Ф–Фr _ßFB׿£ -ƒ¼Ð_`B¨ˆ5ABㆄæ(Â4ôn`|Ìø¸;ããNŒ·f|Ü’ñq'ÆÇÁŒƒ`|Üšñ™_SwYn3°>Œcê{YàùØ÷.üÔ³Üd¾2ä¶Ôãq šÒ,½\ä¹(âQäù1E÷±‡=‰ßsÛõs[¾rÏmÒ;–ÛÔzPnSJ·ÜÖZír[ãÍmJc•Û”Ã"·)½unS.Pn“JXn“Ê~}ãµ|e¸A‚ˆ`ɧ1Æ$´ÊÐH˜<ð£û‘ü1XóprpŠ8‹PêGÞûý‹/‘Ъ ZeHh8¡Uî ­rJh ¡UÖ ­²Lh•SB«À ­'´j ¡U76XË+ÓYdbbâ]žØž†Ä†9 y&Fe£Ièûy˜&9'â?ü<%9HÀó½Ï4ù‰íéàžØ¤w,±©õ Ä¦”n‰­µÚ%¶Æ5𨔯*±)‡EbSzëĦ\ Äöt€&¶§Ãyb{:ÜÈHíé`¸1‹B£"ñƒ nÌ®ö†„–{)a¾'ÆjQðÌ‹“0ÌŽ‘Ïó$ ¢œy<"¾û‡÷„æœÐV{÷„&½c M­%4¥tKh­Õ.¡5®Ñ„¦4V M9,šÒ['4å%4©„%4©è×·‘ÐV{N£Q„ã`Ab¡x‚Œölš;Ç0)ÎÃ$E>ÍS„ÌCÏ1É}‘Ö‚ÜK?æè=£]?£=_0wîÙ0wî¯ö¼ÎŒÍñýp<ÂKôFú¢›‡?=‰J"ŒjCyµ]/»êA½núAÔ¶‡æ »‡:róÏÇŠ³lÍï÷Ÿö_7­mðÌž¶7ŸÒðØÞjDz·§c/ìû‰‹É(Œ‡‘ןþöÍò…æÙ2ßnö»å÷?|+w#„ˆøè>ô†¾1å‰Ae8õ ÅI”à„Ñ”q=Ër?0‹ƒ(N¼¤i€OÛÝ~—V«r¿LŸÿsÓXÓ }úøÿùÍÝСÿp<øËúà÷ÚæÕ6;¤ûÕëjÿùáÇCR¬v¢…>>üøsÓDÿ$1ÑÌØaÿ´­~»øA¾b!VñÍŽÿ×î7¿]ì8_4¶i™pÒPC{ñ±¡XžüŠ¡·LˆVŠÐØ£xì;|ít»ÿÃ2h»(ò#ÑBý˜bBÌ}’F(¹3LI˜æ‰|ñ,yOž²­Ê™Êƒúß¡¥ÊbnªˆÄ^Çâú6ôp$.u§iª´Õ'i@RšE¢}Î}§±4@, >Çmx½úѶú×›ÆúWsk¨FDdA}â9MÏOWëå.}âk&?¥«±q8ôŠ šg”c"FÉòѦ$÷™ø8e‰á§3Šó(Ngj›Éj#Æaÿ:mT;¬š»”—Íj@)ŒŒ±Þæ÷âG—UëfÉÀõ{õ&yÅÓ´Ò?l>/Jùé•ÝnõÚ6Ãá³y:ðŒe½;<–e·Ÿ3rW!‹À§Èfä¤ÛíJ¶ú$?óVH¢q/ßrwãÁªí)˸—‰¯ïQâ'(Åx“D¡(Ù!Ã<"$iŸI·Wºº{fùâ+vs÷œrñç+[îØ®¨òNåC™±=_²bÏ« y€ï kÁ¨®m¦§ÿ~ÉLÝ›/r¾d'”g_56Ù ä×g7‡eo¡wwÚ.?Ô-s©ZfÓ¿ú!Ù}Ý7ÿ¾v/Õš(Á6u¥ø„ctjÅXÇèwÜ„(ŒºŽÛ7.µý"\8DxA b‡×WžnK {Ç{±—3g,BYв<óÒÄ—‹$É8–e„R/H¬|Кô—nm.@ÿ†v ³Ï퇅÷uÝmÞ:ûC}å6úB³‡ã}B\”ì/H‘˜8\‘¦ëåa³J·_Èîâò± ó4„g ¡€æXTPù‰ðÄóhˆEY%QæÑ¦ˆª^Ü1Æ>Ê_¾hMüÆöìüš :ü.yü/~s§œõéYªÓ34¶’wþ,GÝMãüîÇ¿k[äð9>QÅ>ò»Oˆuž¥¶áöçS"®éDô‘绌©Ä\ýÚ~¡s¡¾þùñqµ÷¨‡=1dÄþ܇àò}©ú Eæ±<ðP*V¾ÇbšÅX$í0 XÞ´Æ|U‡RKZ/ï²Už×Ö;q~Ó®~Ñ ‚þ¹úpz¶–òlu—}ù[ö¿ÅÏZíE}Ϫ€frz‰€<ÚÝ éXíùÀ•©¸º] /p™ó”VŸËýê“ü`¬¸„ 轸ÂøÈŠè7ÈKy"â{iJÃ4M°ÇcŸb_\7x)ÂŒÓê Œ ¾LËkæ‡úp.ÕáÜNÓªµ¼ŸÖðÛdòïe±z9^uœ®ÓrMÄh¯kPµa©íÐÐUTK² >&Äl4Û`» ’(‰ÿ‹Eν¢¡¶Äƒ<Ó4J9%¡ä8WœA(_âL,KC9Vm/8ëàÿémª>¸އw©¯uÛê7£Á3vÚœDÏ›“4.ûû2ÀwÃØ'á""ârÏ6Kv¥È¹Kù÷È¥¡$,C0×KĵVèç$“_zÊHÈå]Zߣ<òQH31$ôÓô8¯\­–ÿïûï–ßüð}÷ÇOüñÛOåäŵ­2j<÷/Óèú‡^VÐP²*¯û=YÂû­Ré ×¼zä üÍ6ýãvûÒ•Ó¦i¾qÖO«&A´#º=ϲÝÙa` ª—¸ÈÁÄ¡RfÙîåEv1Š×2ˆÄ÷ÈlŽŒ¥iHD†#iœó0ÇØ‹x..;rŽCñoÑ8öÛ)t|ÍÒÝ+yq'6­ÒÿØT×\Y¨R¿ÐIòǃ¾lúÛ ìÛlµßV»‡oÕAª½q:O²ŸL»v&=ËÓ½9ogzò¶VLc8|ä©ÞÎ'u -ŽbB½4ˆpŽpî‡Ç‘Ÿ{(a±¨¯I’ –µ ðS×äš¼·<Õò>4½öÜZ ¬w Љ'ß)µ@4òÄU§CCäÏìõ ¿).Ó0j{q?¤ŒyqÆ Åîbkyž3Lƒ8ñYžÅ9fïÄŽóÝË~[.3¶gËŸ?ûµª¸â²ô§ðA„Q¨ê^æÃ¾:ðýç’?Èù¶?³ÍnùÓV\LÞï÷yÛȵùÝúåwÕáw¯òõ9V_Ž—…{pSß©=lÒJ\‹¸‹ä$ßí¡Jy{ýÒ6óÓ6tRÊiLõR®ÔËã¾ qã"FA,{¢C£Ög;7YÍ\–tèò…i’22QÖ#q¡âyò ù4 ’”òT>BŸsß³¥ëÍ­H#MyZ¥Ûb[-Å?›¥8ðk~÷){\öÉö äîé~ñ­u»ó>ØÌ·¾ûÓO_ä'aU @ÑQ,®Á6Ùª›?Üòê• “»¾O^2®ý—øŸuÿ¯‡„¥/Õö°ÉDWR«Êj+)¿Ïômܧ2ƒ¬oWï^x!Gäyñ¸ZöpŸ­*žŠÒöY[]Êñ|úñi¿.†—žÙD»}»“?X)†ð©šk¿[ªËˆlLr/ >³Ý~¹ãû½8æ­âˆùXQˆ²ýe' pwÅÒ‚‰TöÔ» ¹;ìø/ëþ9ûûwß,~_Ÿ÷óñûÁñûºI”_ßµMåØ,î–jùÙ ~•xÇdžüvJÔ‰|{P—ÌËc`G‘çE>^D₌ÆS¥ã%ÿ´¯ØR5uTÅÎÇô~p²¿ŸÑ0ŠÒ ÅiFƒ“XæjÌÃ( q HÝúOŸÊe>Ìš½”ºí ªŽx›fúÕ·›§¯ïE}Êñr -«Õgmù/ÿáûoïÞ|à­pr,áÕÍád°ŒÕ,0þä¥öƒf€G¢=‹9 ã\´Ý¾ØÞfWÔy«~²†D÷ÁÐóĹ|Ê’Ì÷D¿òM™G|/ÆÔ“ñäËÇXÂÞ›òùqm’Gö­‡ŸÌ©³™Ón@–LýŒ=V NÎYkÓ÷jyܧk³ ô¢0Xˆër1\®ÎäЉý¢á}0Ôž‚Œ‹ì—’$¡„"ľÏSDý(Ã1Jŵaàg$‰[µO ù,ÔjWrQ+7¼—íŸâ”U¢ønnâöãm}Í€î>Xªã® &Äš·ÁÀy.®‹¾Y¥²i01 -âýs{Z³‘‡»ZTr<îÏÀSè1&‹8 ±Óô‹l›&ÛíËG_>»¸Wø÷!œ¸e<ÀÌciL/M“<Êy€’ Í1YásÜb¨ÕnûQN²l£“îHî×Ųâ+Ñw«¥ò±bûØ­þ´.ŽË¾ôuºÖ*ÿw¿ýŸÄØYŽq-[ÿ‹Ž§Ç_fû¬û«~uY7†ÞÀ¹  Ï؃ÝxëæçoOžVl§X‰i×EŽ?¢Ûé¡÷{Ž"B¸÷"ޝè¹Ã½$ ̸üj…è qÆÓ$âHŒ/|æyÎU?d±ÒKd£‘OljÿTÍK^iɆÅrìÒòº ¢õÔ—ßì——/ß /ëO·ú«ôn&»‡HvMciÿíõ.²^‘Ðeߪ/rŵôq-ºÿÔ^pËåùöxP–GͲõ+íYÿ;0ÿÔúÁYïôqtÖ;µ>¿Î |êÅ‹(–µÌå2³ÙF°Ô\}2úäC?yÊ›tqJõ² NÉr”pÎdo%1óÓÄ©oþ 4Ó¡Î÷/°Û'½«>Íä‰^Ê}Þƒ‚e»®ß“ŽëëÅÝ}m²'WÍÿº/ ‡ûÛúÕíïÞè-ZË<í-X~\÷´·h?âüâ"F˜ ?ôýØå¹ºfÁòÓNœñýgq Ÿ8ß‹‹!9Hî%š~Ë1ó“£\\«ÊùaØ‹½( H\Jû¾%$äÓ¶¶iýæø£T‹:y’â²1ÕLÍR…M˜þTß¼žÌøèþú¼Úž^<Í?ž¼•.ù"ÚÑÝ›êCÓ¬$b Ïzã™~Y«Eð-£ÚL×Ãë—h|è,›_X±{ jç/I“ö[ùÇ!ļÌÝÊï«K‰ËûôBûÃOßþá›ï¿½4ŠüK¾á¡P™@.ºü—µAes–HfÒ¸»5+ ñ¿Û¾ç»ýta›€ÓîìD±>±uYc»8Îþg»øù7ìóîþÂNÕ=Q»lñµÚÓüSYl3yƒj¦À˜x(X>Ý?í×ómäûoÿñ‡åßþþçù·ðʽW^]˜v Û“›£‰ûm™Ï·‘ÕZ>b5w|ñÏ#òîŸËÇ«lɿږÈÕ¶]mKôZ[ÂWÛºÚ–®÷›‚«m)¼Ú–âkmÉ¿Z2ò¯–Œü«%#ÿjÉÈ¿Z2"WËäj9‚\-G«årµqµƒ\-WKFÁÕ’Qpµd\-]­7…WËzáÕ²^xµŽ^ï<]-ëEWKFÑÕ’Qtµd]-EWKFôj9‚^-GЫåzµA¯–#hÌ®µ©™ÓzµVÍ·…ý6½ß¤Ÿ.Ý€š½9I‡t+?0e¬‡ôµú˜îîW“ʳ°Eõ8E8‹;ÏÞ~š0lv(yöX±òi%Ží¨¹ÛFœ6ÚÃ#ì{ÓýøcÜì¾,Óí}¹™¨ ô#«›^÷ɺœ/8/§>ÖZð™x¼Ìæ >Ë !ìn/rû\q±ç}B˜Îá\áÉ|á_—ž‡–¹h*ò Áù61]f]³ÍçéóõvÛ ƬÖ÷j²ÅD¿_þÏÇ'^”¼šà¦¼œ, <gÍ6ÎCpïMëm6Û½z(fªØ ¿fû§ò©b;>KøÝJ~˪š%öž%…ØkO™WëŒç“ïµ|öfU?†;yìj¿J‹éÏbÏן).™)n0SÜKgÖÄU_˜¾9´a§m É*)V[U{>O¾Ï'ÁgÝóióIði[ôIði›u¼XíöÓŸÎb›¾¬6ùvÖÈ·ùŸ‡í~ú=åØê4èÄ¡:q©ƒNÜ5ê w‰:è´i¾ Í”Ntž^[ÉÏ >q–MZ¾ûd{ØÏ’Æú±§íiýØÓv¸ô‰må ~ú1¬]б÷Œq'>Ìò•þ»Ï›m¹[Íp4ÖÙ•bO|Tz±'n|Ó§ùüº£"¿Ž9YØl5};nŒKâOºbùô9Ž'›‹©n/˜|—zjP\Bóyö÷lÓöŽÁMLÛI71íipÓ—71íà‰¯S<ìÕ–OlŽ|ÍË•ºP›>ð?óÀE-ðĨ zè‰Ï zÚs˜¯Õô§ðvÚc| ;íñ=†éØN[@òUµÛK”?ýYÛn÷›9XŽxâÑž¸Il«5+JV±†zêá…žø€6él—mÅv·cÕôˆ\ ŒïÕng‹>SàiÏâT—ÎN7wé<ô„Ó—Þ>Ù ¦ÑøLb?ßÁŸl*Óxü¹Îï<‘'›ÓôFè §5la¢©GolaÂÉM[˜a~Ó›[™4 «¹ÙÅ*™¼Þ©ÀÛä™§ûâj“ñO³E¶„¶Q§­Ÿ*ê,co=ò G¢‰<ßјöÒI<íÕ“¼U'ÉÍ,«ÉÏb?úÔg²}ê³Ù>õíGŸ÷¬NËSO£O{Wú4ú´·§O£O;«ð$:òf>k_E³öU4k_E³öU4k_½øÍ{ãÑgí«hê¾Z¬6s¥&ìÄ-|Ï׫_y6Ë,’“à³îùÄ]³|âžÙ>qÇ쟶_ü‘›í~•NßÀeóžñy~ú™ˆ…8Ú•¸peŸ·‡é»ÏiôiûÏiôi;P±þxÈÇA&w¬íÖåz]Ì´ëÍ?ÓGçÙŠÕÀ`æØÓ6A-ö  ã4úÔû¾ÚÎ7n–;xÛY’à¶Êx5Ó¢{Ú3Ø=mú+Y5ýÁ(yµÛn6l=}Ë(«mʳ9&è‘§=zä‰Ï^ó]ÍŽÅcÅֲŭ6ó‡Ÿüx÷ÃO~Ðûá§tŸ…ŸvØ}~Úw?ü År`“·žý6ÝN?øKw›Ã:™æ-Ôǰÿd›ŒÍ1W <íÖOÛ3µÀÓöI-ð´½±â9ßìg˜Š¢žöäi§=yZàiOžx¶“7mÕO µÀÓ²D-ð´È¿ <1í—+¾™é‘§î{kVM]t ;õÞ¾>‰*½!»íÒŠóéÑÛN\£Ù¢N{teÔ9ðcw®ý¶ltq§­]Üi‹ÆŽ?®EF› CœFŸúö£O}&g8ëbϧ9ÓÛxv+ù|Ë<ÍB…^ïëZ:}èÝD·žò8WÔ‰»Fuâ.ÑD8µ5Q'NlMÔi‡ÂmÔiÇÁmÔiÁmÔiGÀMÔ‰‡¿mÔYúÖÄ“[Ú¨S÷-^²bÏ« Û¯^ùôwFv‡d¿ÚÏ@gw ØÓjUÎs_§›Ô,bMŸg_›¸Óþîy&hÎ31sž ™óLÄœgæ</ç™p9ÏDËy&XÎ3±rž •óL¤œgå<'ç™09ÏDÉy&HÎ31rÏ?ígš¤Ò =qËe¬!?†0uÌÃ,³;Ú¨ÓÕWV­d#›å²ü$ø¬{>mB; >m^ûe[e»Õ¯Ó7faÞ•läÿ©šá=ÇMÐi[EtÚÖжȠÊ4Áý´+.y'™´?l“ü°KÙžß‹?íƒí·Ûb§¢5Ú¥³<”™ˆx·ü±zýúîÃ_ªòëÅÍËš^WûÏ?ÑÅžV›Ç‡o¶é…íîÃw«T¨äŠtñÍvÍV›ß.þ\qþ‹Ø™»?Wbm³‰@m£Û§Ý¢Þñ »*½ûðÕúë ƒ@Dß ?z3Â²Ž°”î7[V¥O÷U¹Û]ýúõ"FaŒcIŒ¼˜xwÿë-ÿw÷áÇ—Çãž/³Ýî|×ã…¨ô!^ÔÛ½ûð§—Ý׋Ÿÿú´ð0ñQ`g9NÎ#„‚˜!”°$ñ2Šq0£»¯~âÿüº>{ªÉ=®‹eÅEãÕRœ]Vlïšøèÿ‹ÜÕò§ã¿âG«ä¿~dŸ‹-Ëþ,_ÒÿWöÊ­võé7‹ßX¨ÃÔêþ´]—ßí¸’þ­ùN‰ü{ïžt²&ÜßvßýºfMr…`©vü«+óîñ]U;ù•jÓò¾d¢Ã¼}b?¨S»T§VïWòÇ;Ö™M6ÄXýÂ?©Wi~·}t1§Û¢=°~~·,&qšîüÕÉN;Kõ§MÏÄi­VÉAr»øaÿÄ«…XÃ7;þ_»ßüv±ã|!êÙ {<éøãÝç¼ãÇÑiÇ?°ìÎÒyÇBìc¼ !Š¢ºw{‘K—¿ðd·Úó¾Uª"ñ@‡ÇÈ‹hba%<=Ü÷ÃÇÇ>9 ©†¸íðzÎÕ~ÓØ^*Oöf¯uuÕ«v/¼0v´vµ sºŒg«½ú=íÑ¡î+^Þ±_^æî£*lÂÎ_˜Xnö÷Zç¤ÓÆö¡nnKÙÜîø>Ue=ßürÀµìŠè…zl„qÞm‰Çò„’œ3#â¥)õD±ŽXyQLiîyûM·¡{¾Õ«ýŠeU&/#¿¤m„íkÂîÙuŸÍk÷GÉ+íוŸ÷OÛ]Oþ78Hn}zhpÑX»Žý†¼ÝÖW£I`dTls©rv©‘%û­üÃ=‚8f™[µÍg¡/å.s?üôí¾ùþÛ ƒÈ¿>Vœ*wÈEÿ¬6æ£l»ò-™S†U¯¦ÿ»}áòBx²¨M¼IwušPÍgX' óð‡ïÕ×\È¿aŸw÷—õ¤~äiÚã[_+î& –O÷OûõlÛøþÛüaù·¿ÿyö ˆk­Íž­6–PØnNnEŒ9î·%üt¶Û¨?˜¤…ùއƒàÓt>ÀÔ úevifé÷_yöýök]l¿öØÅökŽ]l¯Ö859gez A[ZWÇÒë@bÚÖÎGå·léÝj¶Á½šÍ6¸W»™fÞ…ážÀð¶vþ«õÐp6›Óñæ—wp£SyâK„Ž‚öʽ´ÿÌÅ6¸çž—×Ù`eiC,ºeC¸½,×&&TèB{U^Ú«Ã[ÈÜ»$ÜÛ7³ù\μsb‘gÊè–úÛÀ^U×ö«¸—ezc¼¯h˸LKÿùÕbé²ã*Oþ}ì·ªb åݯÞLX¯7=H©ä %’ƒ”FR9H)ä %ƒ”>Rò8H©ã %Žƒ”6RÒ8H)ã %Œƒ”.R²8H©â %Š¥ùZS@ÒAöËØ!B ·ï¿gÈåµ+P¯½‘yêØ5ÄD{ {È~{ua[Ø^=ÙŸY®‹ô»wÛk‹…ôŸ¬ÿšûßê·ÁôʇÓ+L¯úw˜Õ5÷ê×bz»ÜÕçYœ, %K3¶Æ*³lZT`Í©Õkë— mGá§üæbtù._\Ÿš­nÒòÛù§el ë:OÎßdꕽltù!Uö,w@o²™Lç??çÆüiû2º¼ÊíÑv›AÝû Ò ÈÕèòïéì"€AÂ" žÙËá.€°ÀxžÉ\]óÅ̶š~¿8#È2 @G@P6úË_Â;þ3ºüôerª2° pÀl?)êfF—¯¿ÁÕ/?Áh‰׆&‰ TóAkÈ”4†'4VqCJøè‡¿™^Œl§iüâ“ü6ͤþÙm!ÿ‹¼1Ÿ,¹Ò¯gÁ¿_Õ-­Î{Íîmò¦:õ£œ™¢: Á8ÚœÖÀ½/>|ŸÉ%#{BXµúçü!Ú®Zý¡¢Ó4Srj^|–g£Z®—kɆN²Ö]}+J3;ùüü¯r!ç¦0 Õ~+¯MØ?ͼ0/гƒÂ˜ÀúÏ/r²"\Ÿâ¶FâlM°ê‚°ÓŸÛ„‚P@QD`È}nPåÁÔFùÊ,…P‚ kYÈN„p}›·[–@|¼‘$Ót梔hÌÆÇö¹kšhxd07‚ 1 I Lè8ÖD"Z¹k3“ª¨þÑyŽäÂLƒ <³+!_6bk1ïŽDßê´Ìòâüm%Æ}|ëQÞ»0…dÃ.w~ØéEO$@xÙÀ@ˆ9=Pá×Jù«®ÁˆŒyŸ«eÐzÔk¨µ²=ÀD9H$åsL†W5êÿk­$»&S-[_dêWÜ6§¢Ë©ú²°Ó§j ·®Ð†|?Z.> e.c™€±›9–õG™JØÞ&1³¿Z^½­OWWv@6Áíߌ²2*‘6³¬p‚Slh‡·ßCÍ[éÎÅ– Õ†Ýûê L#H…E!œ0«›*¯eZM1± žíøÂûlGGJFŒµƵJˆ±QBTLm¼š(¢€Œ4zvõ÷Mr•×+Ï^)ær¥š°RÍýœzª·ý9 ¶‘.ÝUa§·‰H0„XŒˆ3vJTÛ´”Ëf.cg#$;ãcÖGFM‰!@j@—+”Ä1\1A RZˆø™Œžâ;µì~‘/·¾ˆ'+þÆ“—fú2_nX¼Ö© ªQXiõ.<~÷ñ÷à™»]+Vé²&u¼°N÷l‹Ú=ÔÙ^6¹EîÕuáºs=ô¦ã(p‰*AO¢÷ÂÚ ®oýµ&$ 1 j¢D’È'ÄØSÃc!lý97COg¶fEzY Õ)n""{àN«PÿøõCC´¿_›à§…Tö×U–”.»bÚšcmýmg˜ì¿°E«E¸îUÏ ؈™N#Á8',$¹©½upÎFmõñ iÊìü̆¼Ê0;mD ŠLQkE12v·#¹zö”CyÊks¬ë¼6Ö{¾¼I­])ú²¥êЩúNî³?.ÝEž[; ø†ÔÍUáV?úÒ[6 åÐE¦ÓÙ–eR Ç9s ÇŒô-sQ™Pj"Ì€6aɈ"XccRh´6ä™Þ§»Ù®:ÜÂZ!w!áOyé¶XÜ?ÞyTßIƒ[+#Q‡¨›ËÂMgo3•FœSÈ\ËÞÎñT½ùsfcl͉Õå}‰2cGqňHáÚ9R KŠ”Lbîj £ÖIÓ†§ÝÉýúÓìK’&ÙȵŠê”óŠ:îq¥58í°ÿ¦Õ[꼬Ze\[¡Åæ ;CŸí:P¥zU[xýÇff¾”‹EÿÁ<ËÊþ#õC;Ž•2ßqèk®ã>~÷ûûóªLbÿ(ÒÏü­Àa†7uíÖ7Âí©½!b j£è„db×Iº‚&´×9dã¾…7n¬¡@ƒ€ óí0b8E"ƒ•4Ð"Üeó,t‰³‘eUÝÎhbÿ¬C¶ ìúõbÓ‘³ja"{ÔÇf…íµ=~V;ð1Àû¿·ÆÝV~¨Í™V¦L\ƒ YµN[ÉÄ ¤Ã­ wË»¿ýú¶1–µµŒá¶½ìæäöÚ¬M¦s7íÎܶšØKíX#~B"}âœêYVG6Þ ÷!Ô f¨0¢<6TkðT*˜™æ‚¸ [È1)¿ ÚQ¬û1Ò¦øRÚ™•{§ÏVm|øxé+y #Þ–ÚëzkóÌʾ°­¸-2ïv´­”ú´]”ª‡ŽT£sSªóêÌú§«ŒßXeùù¿Uß„¥èª‚ÙuñÉ䢟¡ùZæ2¬úçêN&=¥*·ºsQ÷óìÀIí{îµìp¯®Þ8|=•ËuáF¶=€B;m¼ÁŽëõ<{¦cŒ!@ø)#©ží¬´ÁcÖ—p† 8Se¢ ;cµ )…z.îòmÊ-]­M°W«‚.§Á•Qýµa£Ð­—Âê›»˜žl‡èÕ¶ÈuåÆú®7·ÖWƒ‹!ÀEˆž2Û›õ¥‹‘ÃÝŠ¸ýÑ·>a4¥‚(d„+ƒ`HET(Ê1ÉH8VI2hU÷ÝÆYÈÊòKÿ!¨¢ZE¢õ§úy®æ‹ƒa¦E<2eßÓéT†_—Ó|9Ÿ›òGQ1t¬±²Î wœ,ÛŸQèéž±–çæËZ¢M”ÚfâeÅŰâbלn³6úڌ߸Ø9[¸]nÎ?¤ÖÐr+€ÎÌðv°û2øõ·ÿyÿáÃOÁ§ß_}xÿ:°ÿ¿ýhmúůŸ>œÜ$wv™ÒÖð Ë’Á·û¿¹çžÄãÜ"Bkì',ŠOLžÍÓY~–‰3‹?P(©ë` ìÍö®Þ`M£HëD&‘A6–%ÄØa!¥ë˜ðäè@xÕ÷,Q.²YS˜V=i2Ôß„íÝŠ™ŸVììñÆrжkÜ!íà][ßíhÇ>å|²t‰¥ó¿ÊyçE­.½Z ß^ßâ˜Ñ–öõ3\÷²ïQÊD`퀃û˜ã¬°ÍÁƒÆHí¼ÓÎD$’¸úV3ˆLS{RJ‘ŒBúlŒÏÆØ5Æ•BG½œ»mˆõ0kÏÙ=p>Œanz½×,¥4ÀX SF=Ö°Ï*…T±ˆ%4& 5&FšB)­½Bbìo T«Ü'~nfaõÑ-tÀ1ãß?8£Z&ô„p|.‡3³½™Ÿ'¹¬öE,z¿<ï"=²álswûŒ j‡2`1×YQÖ‹5¡úüÅÕ„€! ¢hLxŸÉÄ(‘M %n9B Šedh Q”FZiÌñjm¢?­öoŽO| ɦœõñ- >‚ŠËÉ]|–/¿d/¿_Ÿ¶õv¹Ö\Xing±ñÖ…­‘PªÜz©C•ꪪ¢½dX£5¾BxûàðVýr5½þU.Ÿt›ð½³Ë´üÖþ®z,µ¿ùO×!ØþæÝ«ÎÇׯà-ØùvZ}ºjå€Vkýr®Ýg+ð/kÞo![ëþ Ñ2ã-™tuÔ3ø1À1‡¤€ˆ“êT&él±+}e¸è{!"ÄXN0!Ʊ·"°Gm‡GC±ˆ#Ÿ“£¾‡°¶®ªDJ4Ú¡¿&;ê4¸ëqמ$¨ÅÚó¨ë»ÕËÆ_¥åL.‚æ™±=™ÑCÜÚ^5ä‚lеú¯×÷ÕW”ȧLÐ\k×fºpRueåcÜWªÅX0‹ce¸ªÐÖ<±â*B±QbÎÖ£™CEí%ê¼Låô™k·Ò•)‹gzèð@Ï,>².n€SRˆ6׆àjú­Êº©ÃÖéÍJÀÛùuK+aõñhª»Ú/·ÓAð&SKëU/áÛÔ†5^¤ªà~ñîç7Ü_gm£Ø&ÚvÆâöÁæ6Ö÷ÙW±ˆ€€ÛË­1ÝÃBmö›–@'’3ªŽIŒ˜TJD¢j(ìIˆÛfÐÖÕã úÆj+\hs6êȽ‡Í©!ý^Qî¡ù¨Í^JÒˆòˆ£ÀÒÑ:ExÊlcÝ”)8戣c­!g*a1çqÂP,ŽŽ‘4F’¯ŸìzfäNFZ°QGîO‰‘¦ØËHÄ8¢ L@tÒ0›–’|?!•b˜)*„€6@Â!‹)C‘{ œ» "áÄ|dãñÓ nÑ;ÉÛô¶Z|JôNò½ô¶Ã¹çqÄm0p~§å~~ @¥ÒQ!5R"Ž¡ˆ™¹ ‘´=Ä\lô3¿ÿµüNË6¿ÓòIñ;-÷ò;ÂÖmcTí:ƒ»¿çñ~~`ŒIâÄ$„ ¢‘‰0!Üp££ØH‰—nŸöÌï-¿çq›ßV‹O‰ßóxÀL ˆxUT9‡§TwmššðߘR d‚mŽ’„ØþBà˜ƒ$&DZû‚€ç€ù #§FNŸ#§{‰£(rÛ‡‘ûÅ‹|$\a•HFD"‰â*¥¸Û«Ã펀€`ê9¥p‹O‹‹ý|A0Î ;ag°M3ùòÀìÍÎΉ†Z‚­kĸ§C¢Z€X0hQõÌÆClt[htäþ”ؘ/÷³x ÊÀý² ÅÍô2FiŽ‘p{ËR¨€õ“P+ì§‚Æ1M˜6ô™‡øXÜ´ùhåþ”øXÜì­mЈdgÿÿËÞ•þ¶qdùïþ+úc&HÓuq4@#ƒLƳÙÄ»™EuJ´(R`S>v0ÿû¾ên’}u´¬½¶ØVW×Ñõ~õŽªWïQ2¯ýÊÕ÷`UÁgBæŽ~‰GÂê•Å8£PÑPii Ò€µï=˜Gž¡­‹°Ynë‡òÖøh ØÌks[•if÷ž&uÙa¢ÇzÇ…è–‘FÔìA -»W4ÓÛå~„Ûc!iÁçlŠ"ó•¿4†EAÒùc&B–ŽxFYÔpt¡úSÿ’H8û©!a/¦eFmi2æÔ-Qº›o)Âó‹_öVÓAŒ G”ÖS¯n¹Vf3ƒ)É "ä¤3ºº³c·Ê߬Éä‚7+•œh, ” Cá3´T‚¦+wQ¥¬¥N¿stŸKš<š˜è“¬•Ù²a\ÐÄŸYs¬òΟ>­_ÞZº——‹¹«w–«Y*¾_Ã&$äË«°Ù@—máíOhöÞ|NsK –žFCQv ‘r7y¹IË AOå:F«¹· W KK5æÎ3iŽÇÍ{ôkƒ8?9@Ô]¨NZçµÍy’Ÿéßµ»ƒQÍg­¡Ý2¸Æº oC½’aÜ1ƒ²µËÝgåøªÖ)0Õ” c<¶ã¤3–Ó0 ¡*:j˜ÑÊ{cy”1 Ë@í”°8¬µ*Ïî¼Û]$,OçK˜Ù:ø±#ÿO÷¿/ÂÆ¸ùæý Í‚Ê1®ÝZKP¹UÐþìrMq†›uÖÆóIÄߎ¦ÔçnFÝõÈ.A®5ê/Á~Ýrÿ©™Ȉ²]Xá)GvÝÕb…¤2Ÿ9EAÓåN­#b[éUà`Z2Dä&0ö"B»[u½eô©é7I­Ï3ËfZ·@Ýcí@¬G·‘G2b"­úd½TÎINã”ÜW*¤§¸Ž€ÔK7@«ªeNNQ6Œpƒ%tkc8wH)pt©@‰±÷ŒÝ••§%óÚø°=b±«Õyù®Z”Õæ= à,ë«Ë«Åf[þŠíÞôU5x÷Á]Qz ïá˜rôªTs}%ãÉ%ͯI»èäl^-ÝYp磧>\VÎ,GÏá ÞÁwŒž_œ{›yx¶¹Xd_dZ¾8ß\\Ž_^‡&;éàqvpéaJ’-È<Ÿÿo苵úé­Â‹þú—]"烼c°@‡)DżË6jï‡r»ŒPA\ ƧÄØœW««µ oæám' I‹s&’ŽÂD-Ið2¦Øö @š€¦ç„:áÀ„b½ýð6'aóËåz¾Ü4íL³÷ÙXÝ.ÛŒ?˜QæÚD4Ãn_Q³{äª9yü¡ÓÒŒX§ŠÙNаp¬LruÛd4$Ï&Ãåœíèng.ïëVÓ(Á¢’=pT·Ü}Bn˜IÐê”ïw_÷g ’?w›¢N¢ÍêÔÛ4·à‰àNrìE „SÉ £Ì¤l:–3´üÄ7Ö¶w”_Ï7aùuŠÖ½Ÿâ“Ý$'ÿœ¬ýX-Ÿ~–ìàÐB¬†[qµtëùfÿ‘Œ’"ƒpó‡ˆ9òf&boíì*•½Áeœ™5©”¼‡!“âÍŸÍÝj±Zw=P€ ¥ }¹m8­´ò„)Áð¡Îo´‘Ħ¼éȃa¢>qÈe¦µfz¨¬'öPNôÿÚÌ€¨ÝVVž•]O³‘±CÔ^kW-÷£Êx§¥Ô’„Màcó¸Ü¸³¹I>>ÉÝ£™Êª-ž0SŠsÌxä)j’7ÔKE9ó Që”"t—Ч¶ Œ1¯5ó±S`twd#sÀw«õiJPóÀyN• Aó‡UJØÑÀÒÏ«Ízn¯6Æ.ÂW-7lùÞÕŸ¾*ªŠv3·Å,¨X è°êƒa¨acÙ9nݰì/s!)ç)a#ÇjR’š¶{NyŒ$i0hÕÊsB¤÷˜„dDÍ)2”Kì,ýŒÓ‡À©=vœÚp*)3ŒRR¬¦ÄVLý„«õê&œ: ?Ĥ;nÌj´2ï5¢Ê9ÏeLªè>ãôƒáÔUÏ¢jM¡c†jà P%H BSi@}m.oü#‰-ã2ðh{ä@[¡„«EZ‚v74 %P_›¥5yŽ¥i€7 ƒæõŽÿiöýÂTU³+ûþл¿\-7ó‹)Nh<ðØx^m®l¿¨^,iqâý9RøÞo®ÿkjñ ÇÝËÕjÑßlÎ8å–ë`{M÷>w©BÙ𘋨äSDDAVÉÅwYú¹+SÂÀ*mFÊ®÷‹ðLä²Ð%¯‚C’Ià,Ñ2X ÒÁ¹(…„Y±Ýè{taÒY`>–Î:ª@®%!TÏ{¹1ƒv9xpz5xp6<¸¶q±ÞŠÏyf—ÏN¯žÍŸ]¬Ÿ]&!Ú!úI‡ìe"ûöðå—à@9Xm΀ƒÂ+(ͦ»AÄæ·&¯ÃØP–"°.ök`_±Œ2cŸ´û" ÁczÊRˆ+’Žº“ó›‰ÜMYªc æ"c8¦L2`o-eÖ%Q® &lyþ@!d>Ît©0·ijŸì績ÍQ6³üäiµ~óôíÛ·OÝ鼬™îö½kŠš‡Ùrg6½3Äm÷·ñ xÞ¥&n@t*(«Þiá®F¹ÿìœ;AFÐ {YmÊæH² ÛŠf2‰štµ/YVsÌ´#Î0 âÊEPXIŒúè¡@s†Pþ·»ÎÔxëäì& >nÿŸM齩6dl –|ÒñËÏ/þ3qñ!½OöO.(ûiríà^U ‘lÌiÕ)Zö+?_·Y­ßÏR¿£â Ï««‹qµÖ\zåCåÖ£Òu¸\½Š«5¼¶œw ×¾QœmøêÒ×åõçejÖ-î^œ¿r ¨NA);í=…U]_¶í@¦rEÂÕÂÌ.=F1œøoö3Ÿ Ó÷?æ×—7ð‰›–dŸiH° ;‘ÔFÕË}3GsˆCËZœÂ?rÆnƦD^"küÄI^ˆÆ„ë{Â’Eâ…4¿•|<;+aªk½i7éG»ŸÑV¹é ƒ0Yh©&x¤Rœ-0°Þ¤æL!±4ÑPkT`^Ka5öžSPì)j=årJá4l6áݦ•(_þãÅßʟͺúwDLû¨”³w •̱ZÖÑÎHÖô8i)’îŽ=Ü—0½kã6™’‹°> ™ç£@k»’†Ý †¾ƒ¡ò›ä‡øózC'œ”-¾·êïg&Ñ’s ZDMˆu0¿4`õ€Ø0 ÉSúúŒæÆ‘ "xÇž ?Î+m¢\sJ¥`Ä@»j…ö1Yïã  Ëq›Y=i浬絹yzC–kwÐËë¯æÒtܼ¾ûõù-™í˜#/ Ö[õûeg€'B O `÷iAÜe?To¾¬ü—·zR¯´?†uº÷¡Ó-ÖÄ_žþ6óV„}»|_¤°Èaíæf±WÁ0X˜èŽyÚ©Q¶Ì+ï.*TŠy“r[NXÕªt+*à±ô@Ð'†„WLÇ€´2˜EoÀ†ñš*&9ÑÖhnd”ÔâÈû©L ÐÛ†c:&vLšñ‘–î(8Û×˶óÌ(MãBÀÂ|´´A¯ÁŒt28‚1ÕŠheÕFS¸²Ü8$%ɰܩÐý¹ûŒ¡]äÕGERaø ž¨ÄМš²V­^)™6ìÒì,9i"ÐÍsÊ2·‚Z<Èø¸UÑpM]º.‰ñÚ¥ ®ˆa½=ÝZ¹Õ)˜³ëp:‡ÉZ—ÎlL½}ùØ'•ÝSÓ#ê˜@°í¿Í‰-O:t,:öðz‹ ¢_‹6f˜ ¢ö))bJpQÌ—[Óï«mx±ç« 3_~Ug,Lòqó¨JZéâ=U+G‘;`Ò) ;÷§aSÕ¡.pAš‘ï$ˆ ] Zfƒe9ÄA‘HRí aFì–wnÎìôíücJ¨±›à&š.›)¾E4»—n‘¢›'ÙM`µwô¶¶JÙBæ…À‚ЂPJ¨š"Šß.¨f¼¼JœºÀ<æMlyq9’ÞHÓu‰¨°aE<ŽÄ9IœfÈÁôç ‡{Á¯K’“=QFiÕn0;ˆü@FÇ5axJÊeï;2»fŒ"­+9%¬'tÅ´ØŽ‘@G\ÎH{„—S‚ ˜cº[¯”*Ý¿U`‹D$“Z §ÂÜ òÊ÷ƒr‡*']ºÔáî€f}'››¢…üëP5º°©;1m{uËá—gç4e¢ Š¤\wÆÿksnÖÓ&RªJ̲9ÌÆ39CÈŽ¬’à£f”R‡°eÑ)ƒxŠ~†µÀÙ±3Æqmðv yØ[-ÁÕa¶‹?Ÿèk2C£—@ =MÑæêðÈéöÓ1ËFÄMÕžl' áÊšp½ãµq+wŠQú-hÁg[U÷v°˜y\²7ó6Qv> ³‰ ((ŸCŒN9ÑW§øÀ:tnL$*]­3Vº "aA/SʇcÄ‘€Ø§r¡7¡™õž¦9aly}™M݇Ê!q‡xäÓƒx¬+—»gTh˜(h‚þ|C¤3RH‘<É3I'¬Ã6F’+J(“¢±§ÎK œZkÅ]½úÜjZÖÒZ»­OÓŸ†B>ôm‚)þñçf×Ü<©)RÖð¹Vêvß«Ê/`Ô˧qmNÓj«²Ÿ^Óâ½ïñ›âŸoÂü«í÷N+ýåYhW{ñë*n꓌~ä•Û­©P\\ÃvM”»ùʰÌÀ(ÆO0B†½zR.L\ýÀ}²1¶ƒy‚ÇžI$h€ÖGBà·@RyL"Ó£$П¨\jæt´$Ú©nîvᲞì,’ÛúN8eˆ<ŠÓ­°<Íÿcï\šÜØu¼÷¯Ð6 ù’ H·âEN’JR©$U‰«Nv§ø<yf¢™qÝä×l½ZêV­ñDrF^Øe=šø5  `õýyoÞ#ñB1–xæ-’=4ðæ÷ÒÄMÎ@6ÆÑHq»£tÔ¨L­ÑTª2ô¹%V€˜RÉSåc~ÁÎŽ\ýþê'ª:¿q‹`Dª«†.\¿ºI¸·\‡Ú­>nv–Å|;¡½×ò(ŧÕÖâ u©«"Ò§û&¸®iH—¿=ßNhD¹k¯ÍŸ'LùRjBmûÎXA)€ZR©‰Ñ’Q˜M`.V'Gµ›CNLÛÇô#Á8û*pý\hub^!‚î“ÕÞêýÿsëÊÙûïã²”ïó{Gê*®óð|”ÂuíÃóÍ\G¢vÖ‹;ÏxJ¦ÐçÜbðsë3 ïGue’ "—dTÂRmH&‰Š³ÕZŒº2¾õ¸ÉZ–VÒœ7i¾œ–á 1½„Õçç»)Œ)*D7#Pò ½ä›GùýÐ"Åãb"ȶ‡:kT^þrV®Úƒ’mC¨•˦ÑD(‹º,ù]xøò.>|‚î¯yj5Ø/·ï~¿}jiÜå/÷ÿ7íçá­­Ä|ùIxzznËy÷ÒêNÃÁ|µH=%Ö}¢oнÌÑÒÃ/ïÞ-¿¥ZÝ–á9å¾²ëf²›õØá8„8CCFÈ?Þæ_€RF9Í3¶ïÍXÑøRB Ii]“Gëmô:i`ß,Oñ•DãqÞgãíj³½û¼Šo„;ï„ÛïæàáØ±ÿ¹­_0¦GÖïÐlC€Þ³‰ÞŸÓØIwB§Z=v '=xºÌèZ8R·Zû"hLå³j%6”KX‹·9bKo~ íùa%Ê® ôwíŸÿôË¿lªYDxh¸…öªvžo§0¢…[’ïí 'þÈŬJ‚¦–Âaßó‘Zt eíÅeôɉٯÐÇbÅì t¶Ê¹hm~ë5¢Džqn:HÈKòýóçôðWïöäýa%ñ©ò?ÿüwÏÿÙ^²·~}¦)EÜóûs˜og0VÛQ Ê÷•u/‚+‡I¸¼¨o½s5kcE3ùh<'Kñ‚V•ÿµò@p…k#Î\9ôáÊáüpå0—Ö–dUÅ[´Í"炽¡Ê$^KhÙûÖA”éæìZw_ #/ù®P¢ÃpÅk#Î!^e¯rx•)¼„)D£g$ÿždFí ”Ãã´c¡@Ön¨OOÓ°²N²3Û™D¢Š8—Öä#sˆ ØüÖ³Þ·x}zàõé©—Èûìx}zšý6ºìŒfp/² »gÇáÊ T„v"TËbÆLhJådMÐUasÕ„¯êÍãÕ›Ç>ªë'`gEµ{v\:hI¶(̶v|B‰ÖÝPŸ§Ã|VQG6x0íðˆls­!˜¤ n.TººÊe#Î^Ÿ÷žS|¾€hßçÉ@+Ë¢ ­„Eúnã3{Ê%%&±BÅÙ¨Ö¡òu¡èx!Q]Ÿ°nຸnc.‘÷ÙáºÓ‡a¥ÍÌ‹I¥Oé×Óh1zÑN\Y%ÞOê†vë3‚¬¼ºOm[Æ W¦1­C„Voʈr|Ù¹Ìåtp®ŠVl½jp­aªØrÐÊ&“!йÇ1`Pê îk€»†ú–{¡¾å„ú–“¡>/¹¶“"û2V¾>Ãj®Îµ„uFbG±¤*® k(­¥è  ú…ð“²úðuÀêÃ×>«²zggõá뤿ìœâÖ±ÁøSz4î†úŸO¿ýí¿Nò1†-9ç9B!m´â7»ì|tµj°*i¼FdJO¢ȺWûœ­vÔºiL?c#lf–‰_¤e¬¿N²†±P%Ïl•®lAk,:b¨!¹*Š7 uãfíã¯c¬}üõ€5ü%°öñ×IÍÖé‰ÅØ<t'”䕱p¾ÐªK,iûN«#0–¸Ï¥&WóÊ•àSÐÚöX¢';Šž ¶\AÛˆó€2Ü$òìä½Úé[-÷2¾V—ì­ß>_ ½µºÏ×vóí Æªßjg Í™Àž¶i®Êa.x‚²‘?]eŠ.ÝZJ’›‰yÅæ”‚{uÉ*S„åÑ1ßT•]VYÎkÁgÀCÉA¶[ÐoÝxŽªMVÐùÑ겂&øb1à ÌŒu-ÿì¥xÝ¥Iº”ag³Xo‚™AÁ,%α)6(Mh 2½uCîyºîÒeÀu—&uW+åÅ]S.ëüiÇ“×í’S¦èŠÕÖªt6½+‘sRš²ÍŠz]QW+¼ùœ³íî8–„½¬ =ÁŸ·UVДËHVì0g¼2'æÏnÆzÎ…ä-o¢X` #ДL˜ªÉ²‡Úd¯.Ãë`;ônËžw[.À»-“Þ­n©9ž[]vVFŸXI`=T½™„UsÑ™Câ¦ú\ö”¼±è”’]½"ÖlkŽ×cTe#Î^뤠¼ÏŽW½yfßgÔΰ°/ƒk9½å2RÈ‘ S-¤ ÔœY,IBÌ:Ú*J9_Qmà:LãÁMÏNÞç‡k9­»@,)²3¸N.T±êÓÓ$^ ‚26A¬N¬ÎÛÌÞ«ˆÙeLY‡æ°üüÛÅkƃ›4ž¼ÏŽ×§§I¼my ìOÌ–]Ô•Nœ°âl¨Ñs®I‰ØH©°üÞ;£’ì‹8Ð]f"ý¤VÜ 7i<»Õ;;ª]9Í㡱ÿ5ZñnÉËeNËâYôy:,‡>0Z0%Ö ¸²- ‹&1åŒ-Þ^¸ ]ƒ,Üdñìä}vº>Oæ48ef®U×ÄÓ寺ӊР]©Å™k,ÉTH3ÚyUÁWvo=æ»…kŃ›,ž¼Ï×mœÜeQ+O,zEƒ91El3Ðb:䛑¢0Fâ#8— ŠW â2(r±È«o=仃ë0Í7Y<;yŸ®ÅôQ£¬˜pÚÈNÅø"ºî§éò,{o­ 3mYµÑL*f0j.Å# Êó¼UºI<¸IâÙÉûìtÝOÒ%›¢GïgŽUëáñ"¸¦„äŠI‚Q¬U¡(Þ§²)gÝêè¤$ÿ’³yø<á¬ïŸÔA$á&!h·zçGuÒA‹ ÊÁ²8³/:²J$™4ã䮈ÎQ®:+£ŠÉJ GQŠÚRÎDlÄIàz=ŽYzal“Á³'ø ­eðLÀFN‹ªgÚúVñE»îr:,×¢TÅ~#'æ›ç­µ9ùD¹+ åå…¢®ÞhÙˆs€Ùr/,·¼€°Ür2,gœ‘?bÓ)¥B'´ÝôðuúqÅ$ú Jö&°!ï*›,h©­uRqE]éÚÐ5H’ÁM’ÌNÞg§ëáëtÐ=j† cË/;æ¶ÊÕ˜Ô_>¥(Û¡ŽÙå Š­²#aŠY´¨J9Eu x”žDí’dövÔVI2S´±‹ÌÍ<*mÔ‹"k«\)Ö$´&;gbç…}—ÿ*d@–-Úá]}­DWzcm$³'øK`íã¯ÓÇw³™UÚZòç_Â2.NIÒìÈxÏ1&å¼…µÊîíKÎ>kñd!\ ÀÈtÇÑ~Ǥ¿ùòôPZ¿¤‡?},!uýµžïÚ&—/ù ç«õé-ØTÆYÄ}¨z“ÚR5ÒAIœ9ð¬ÄTkÜ)+e´ß›qžÂ2ç’þx˜çRÃÓ¢ÅDÚdõx/Ke[W‚’ÀR‘íš#bÅØâÈ8& óõŒåqñ~X XV–^¦´Gè-Üaƒ.F‚>iÇ&7ßNm¼D„s8C¹¤2§yƒqïÚÝ4I\enºÐd_µØ†h4Ù*ž®Î\½+Ù+ŽÖÄ}ƒä¯Tà"™ì¦6E¤¥ñ@qJ2O;‰Ô #ˆ|-‹mW-ªµuÝÉL)ˆÿËÅbàBI@TâF2d ûˆd´ü.ÜÑØ]ÿÝ=öÆx­vö'5“~¥¹|/˜‡Ëða½ó¶ûm ïÒSÛ“ÃãÍÝíŸþñã¶ßåÑÝxj‰¨lû©ïSyðÝyoVc*’|;×Zl²kq¸,ËÛÕX3“ÒÌÞ󘵗P…Bíù˜ÂEQИ­kE®ÉÕÀ*™è­ïÅ=~X‰tÞ‰t‚ªÿeïÊz9’ô»~E=Ú°KÊû@C xÜãÙ™±× Ø3;oFžÕÉ)R}ø×oDñªKE‰¯iP0Üj«:“‘_Å•‘_üàf[PýÏ?Š¿¤YªÜ´Ó³ø÷åe¬Z ^ÄrÎuã°ýþ¡²1¯OC¹‚ÈUI®ùé‘¿ßÞ§êÇŸÊ<g¶ëæébˆð†"ƒÊ9EH 4É ˜çÌ­‰'pó‹Û³ ‹TM/œs¿x·L;]ò»é”äNlf @.!¶uèæãb”ïïwÑîý—íuºÆ•ÂÎõbÈ*ÿ‹Ò«ïð¾¶]î*ÀG–¾Óö×XBí™­gÊí$ÒÂxY [BÐcÂyÎð6íÚ‹ÒúÕ?‡ÚJk͘öQ°RR‘yšƒE&.SòYˆ@¬þìÓv™v© Ö—×L±_¯) {Øÿ{ªJl Ò\Øn¿i.eC%¶gVîç5Dv£´¡¨)vÔÞjs¨èƱ‡„:  'ÑhE|6`r ‹"Ó ' .S^±·Ç^ƒÛaƒ½šÚ¡#öÅ^t£ØãØnœbä¡9?&…Ü ÝÒQÂ(œÓš¿+#uŽÑ1f|`Y²D’ F€"<û<ò³¸‰6N„sŒQñ !Ó ÓK˜X`‘DRI'(Kš)¥R¤A nƒŽ"XOhʳ/1i0õ@˜º L' À4®±ØR”²ËcJñ:cÔ‚^ÔGuŒ HAꤳášeMPR€? ’gßuýÙrÖj½°@¾n—4±Wõ°Wu±W,öªq# ŽŸ5Ø¥ŠRúÒd ŒuÐ#…¶ Ç%Q9€]HLd—x"9xåŒ1¼Ö'<€§l„׳¢°xÖƒJ€åSÇTm5¼}GaÖT{p@™Å ’hœ$ÜSfƒËXm™ö’ÊWW°‰ÂÔ…5TGì'ŠÀÛ‡qlž °Ò`Û¦—ao²:€½¬œÕF¸¨‚I†k¸'Ü0GõŠ;£#aéì«¥›ØkCm°WóBuÄ~¢Ø›¬ÄÁ†h]PbŒ<Š/ª3ÖAÌ”ö))vPV˜T* O’TðU„‰Îø<€§l‚׳ƒ)3’2P†ÔØ£ §›Þ(ž1àýAÈ+mò‰*i¥Ï†X/“²Þ3ê³5Á Þõj w'[3‡Qq´‰™ n*ïÊ©'3XÙêÃ,ïEžL§‹‹0¯ÒÃj2]^ÜTiq'9¯ír´ý–,™Þ=:ÀxŸà7zÖ+Ò_îëzÁK\ð‹«´ W“Ùdu¯w®¯]‰®VåråªÕ£ŸÍýÂ|–/ãcׯ\°º\Ì?¦j ºÄ«ßû°š—·Ÿª™[¸Lnªšî±„uL%\ZUóéç¹Jÿ¿).î—(ŠYôŸÇXújrs»šÁúŽß[˶–b¹¨æ7•»?ðÀ*U÷“™›–~êfï'³›ñÛ?Nª@\–“ÅǵȟzÿÇéèý¿?vÇ}éÂcàÙ~8„ø dË÷ØàðÇ̲ÿÁl>:êþc÷aY]-ñå]ßòËúØ_ÝO£}uùy9ߔ˴51`Sþ„Ü”cìµcʹC]K¨{Ò{°Ü½äC'rÈ^«Ž¡Âù~b·«{€Áìfë°D\v‰Ñ’Ëa¢Ñ`bL¢J§9²G:£1¿EC"ŠãiYç ö|?sfÊnwR½’ôõNÖåZÖœ}õ£_v/ëKk¾«àūɇÉêóUíÀ,ëö?§]ýŒ×d5IËah¾)¾wp[ÏíùþÝÞïÙÏ´…lñ4mÀ¶÷ ËÎ÷¢]&ÚZÓ 5 "¦“_]—¿¤YA.¼erˆŒžJk¥1I°è£K$soŒ F É­§Æƒ#ÎT<÷Íü¡^£XKëír«·8ØßU)µoÙ¢íëâŸàगÿâ/ß½ÝCodE»n7îrî±×{°ÜÎysDkŠn7¥œ€Ç{é]•Rsó’š)_ëÁ¦h"I—¸ŽIxbœ´’yB´ãÑÂS Z†¶]NŒüøA˼ ýÍ›4}S=¼ñ7_^ô–aŒÝ´~ #óƒÄÇÐÁ«e‚›=^;•Û© x.,=ê10Ô¿W¢Aƒ¿iE$`¢Ì@P;@? ñ&™ìdÔD©%s)èH31ù,1‹—¶@ëŠõÒtWîŒ4ç  7R)QÔÏë…0›~~³þ…׿ì7¾ž#uë² ¼þÓå~ŠÛøL ª…ÄU@¦R—õ›Sû–ȇO v)+>•ÒÑgH4gH6’¸¬ü#;šsšÚs“çõN¢%JtH±½sá½»Ù9„¨ç~øëÏ;0 .L×ÖjÃ~Þæ™²5ô@nK(¤ àØÈø¨äÖdöð©Ü4Z¸M.‚×P7h` é--¼"šc™äOXÂÓb,h–0åo˜ a[²ÏýœL²§¯Çg÷»fi[Ëq1¸F×›UÂÆm•‡Zg¾@­wõýÄW®‚@åêÛÂÍbñíW_õõߥãHè•qÓˆ¦.÷ìãV&Ö-Y*Ž9_1}?}¸)ÖãB/£IqØWí¬±ZŠLrtÆ{ä¨çÖ¤ L÷åè8t Pl÷âX–pþê5@ÿÇ=¾öòözqH®öØÃ{Ëí$šÃK4-;ê ÷t~#î`_cK6äËÌ.‰`yò,1Å­ôJjª$„Á‘q½ð…žN¼[¬ GYÿZüW½Çrñ ¢û0¿¿ÇàÞ-&p›û´øeáªeª~™Ü/¦ÿ¯[ÏÝ8Aߊbp=¯7+ZÖ+ºÎIâ䭛̖îãþ ÜŸ]XÍ+ù-û7÷Ám€þóm*¾Õ…?Íó꣫Òé[Œ÷‘Õñ*èÍðï/›ójCÎ}… T“©¼§zVF<0.ëK µxD+.L*`Ã&—ò޳¨)ÞÜ_îÇ¢eVÜÈchéïÁ;¹qåòa~?©3ì’ -ŒyIs"Bzâ˜TäÄC°Rª„S̳IþÜóÒ-q¢Â¢% ´ÖÆÈÏéÓêê§EšNGw醗©ÛZÒšFGó‘r;‘>z¬VàÍ“ÍÇ4¹ºw³r‘; Ì¢.J˜˜dh 9xg„ã>š”²5)Kt½º@k‘Nëùr`¦µ‚ÔR«± _Zqœ£9ŸÍKãd†;E¼®¬¡bˆ) +îMÆ$Ñ‚QÙÿ½gmnÛÆö»…>6Ý¡‚7ˆîõIœ4›Yç1q³½Ó/mÖ’¨Š’ãô×_€‰åxãiÝNÚˆ8$qÞÀ9+„b—®´ŠÓ*PÚØýažÒBýÊXï^[W*©âÚv÷a?¼=»°ÇòÌUÎÿö[²­Ð¶ÈˆÝ†ÏÚMA /1Cì½3t\ÆÛ½Çš¡DY6…Þ5=H0GA #bâHëëñPêÜ< pÈ ÕäaëÄTWû´H!´`ÚV.¯VÒ%‘ÔO Â÷€_“…N¿dÓŸÓÕ<xLÎ÷°RÕ5††´R}¬ºé¯ª‘µJ³4^Oÿ“d9{鏨}7oÍI/`XŸÕÛh¡ Íáþ¥“špä³8ñØ©wÇ8ÅÐݱ[×-1l—°@´ôC~CP!æY‰€ë.Q£vXÚ—è⛣M›úÂ$äF"c‘Û ®‰f1’®bFd£?mƒ‚EX-„ÝeËÚÌž,o®Š‚3'y>Sódn‚d§ÿ%Ïø@½Ò¨Šd}äΣæ~ºÈ¥‘ËS•Ž3ûM_âL&«´£$ò¡7fýaéÒ]ýÒtÁ<ªg¼æ<«× êU¯r-{ÇL–\õß9¬v?ml¨<7ÓOfž®‡Ô³‰†ìD¯nmhÒ«ÖÚ9—×ýETs™]W©ÍQ~í"µ‚´t)„HØéÃ)¼³^€~ÇÙeùjÁmb¾ì€`>!¨4UN»¤jwýHóöí¼ñG«€ÆÇ3ü^™óôÊê·‹BqÀÝt½JâxgìjMô•Yw†Þ8^øh-VlÙ¾3úöüE6i£æ7µt”Q…¦lNCx{túNG^ß¾´ªÞ—cÓÙò½íÈfæÅž:“Q‡:«}F@x4d…¾{,×XnX¬³ÁO>KWf/@eWz,ËÍÒ¯Îc9lš/Ðìvjܬ.6Ëeº¦Ê«TÝ ?¬ž]„´ÆÎí÷†YßTóÖ‹Ò[=<¯ï²Â¼Xot’‚¾ÿ¼H†¿¿\Ú&u´—šŸÌ•¹ûÅrØMõZÈýÅZîk¬ÓÕà#ÿóÒ VK¶m(Êl°×…-ÙYQ,pð»› Ó‹Mt[\¼ËèO&6+·ê·•cì4«×wk³È*×§ï‰u¸ËÅÆG­÷öù!Я¡_ÍL9½hÝüΘÕ×ÖX'ª¤rùê¶O_§Y—…çzµé2ŽïT•üìÊ€‰æP¼²&çKººiWN}þÀÀ¹õµ„‡v*ªö{_\´ø×/æ@M5>Õ³ÙØé\GÁú܃žÙÕ·ûŸßÖ­#ï8Ú©ÅQÐ;yømVÑ\×AGÜuÔÓ20<èFsgœ™µÃá÷!²SÃ_ZÈ÷0®¹°R!6* ÑsN/õû­‘F¢¼#¨ôˆo#ºŽæ0ŽY.…Àiº<=âìo!Z¸FHSlŠ" ‰”LÉPACQô° }tQ¥Ï·ƒ#È7Šë ƒ§´/šîKq¶êqë9O)Ð=QžŠÒG±.÷Í´F÷†S!-nóhfV•!£æÒㆤ]¿ežjϵž¾¸îyåvö ey‰ÓþÑl&³k‚ ›ÊYòg×»µ—µÕuí­V)Ò»N¯Ô¡íÄÕ/–sV¿´}qЧñ+¨׺lî\”¸ö̳»îÃ6K÷A­‹ÕwÖ/W×긥ºåß9‚t.„ð\®(ÐØ¯_1dc»~͹°$kV1í·Cmß.ö†¸™ ¯n *Bz¶ä ˆ…áÎkÐ# O¹÷”•¦bØÛ fTˈ`-"ÆŠj¡)rݽ‘TÜ5ˆYc¢[ŧ»5B]käÏçCVñ¿\¥_²Jt Ç·µBûVä¾q^w„¡Ú ¹ÄÉ9ÔcÆFÝ4R¡5tî™L>*œ¬Þc'šûíÇ19àn<ܪv4†ú2ÇùàÝ$ëv{¤?ñ½E||öøc¡Yº}rOìñ7ö²\ÍÍôçf†Áòɵ˜¾”úãÊFHV÷ž¥ µY¹Ï×ý Nåý!öö¬-µ ^ß)Óã=· ß.¬Ér $¹‚ð{Q}' '‹Á-¹} ­õѬ\B^.öÏêGëIøî cçÿ ¸UâÜÿz_xnf³½³ú9éB¬o'pã.ñӷ°3G±@ÿNÖÑ΢50T+cý—`açáÖs¹ìÜy%³…[ «R–p§«‹Ïï*êr ø’\ï>±–¬¤í˨{}“¸ª‚K¹[3È·A!H ’Ìò&/2ë¦@ç®G J}ÓÒ fyA¼¯·„uàk#—A¶Ëì:];7wf•öªsèÜã&±p۲ǹ€xZÛÄÕ¡Ðn¨"MíJ9õÝ+%1jùt·×’©µyß]ÜÍtÇ·®]¨Ïjûrm.zS?cüí–SÛ.Eˆ9`Í'E×”rž=Ý1!L`ÈÆÇlwï°áTê\ —ÉÃ_§ ¤†HÄB.b!¥Ð&Œ‘à!U‚$ EBÇÕFÚÆƒ]_šÛÄMï÷ßX2äÿ}?¼ûíl–”‹‘ù>—iXWò¿•”;`¸»]íF,ÝGƒ&·¹<¸$5yüSåß{ƒ¨‡Û;=ŒM1Ürò3Oþ•A'Œs~ä°®¼òV^'ƒr 8‚ƒ­@h˜ CWClMdQ1T6÷ÉåIþøïƵ¸ýœ8ÅîKfþµåÛ£z»Sê–€ò±lúÂ1«—›¬3ͽLY—Òï+“MĆD”2Øbè1ím´’¦®‘O^ÊÂÛöÁ µˆ„R‰(6$¤šPI(4Jɺ8º@úÄÒ=» t´Éj \¦à¤|o0³³Yøµô»g±ò}™û¸È–WlýCÓ7ç»ôÃÁ)ª{n€Ø›øm·Þû4L…Ç]ºº î t~¿• ¿¨Þ*¸é½,C#Ñ4¿¸,Ä»ÏÇ HôÑêà‰À¬d¶ó´¶]ŽZ‰Tyƒ;ß+!‚ì/ÈúÞ¬]*Æuª«»ýÅÖÒs(„óºJË…|‹ÏÁ˜‰ Šðg¹âd5Ïˤ»•gä/,‡CŠ(Å,’˜H-¬ûÀaÅœ3‰Ð*ƒ)ÙÖ[ʾfåâøßöÄq}b‹­>(/ÿìúyn§çùuuÚøú‹Š¯‚Ûe¢€uÖF“1Àt0ÌÆ‡#€:˜!8xÔ“GÌC#fƒ¡³ÁÆ›‘1Hª5ÿ¸Ø,Ör–È쇥J~ºµ ÀÁiÿƒAvûc¦ŒÔ™ú1ùñÙp4Üq8>™p8NÆ!CFÍ»%é(2ÑqT¥¯Ç"“U(ãÀ_ŒïP5ȹ¾U ¢Ýýó€>:~»Úé0‹ÞYûÚ-Ae/<ñ ¤®§Gû;ò{nÍ\‘F‰(º4?ÝR}¬T<¸l‘ (zj€ CNç÷…dd×Yê¶*ö ‚$€0ƒ#&!q =<$±Ó ÍáBÄ#þ$#¡Á/‡‰7/„ßo'r 6ùO· ðe"G1h è3 6ÔçJ;*J)ߦþ4êº0›à^/)„8Ò–å¥F“˜`iMADÖ‘¤Ð ñXaö$ & *»<ûm@\ aQÈ»5È~º%üX)èÙhóD Ç.hàæéö‚)âb‚Ã0v‹ å¢4!°ÞV¯gäj¼0¤XŒ²‘;#0f2ä1§1*Ò˜Qj8}-/_ý{@´Ü'¢E÷Ó-å— è ä|y*L‰UÛ”‡œÞG6ë 8'¬× j¨cMcŠ Fk"ŒâGFs‰Ÿ¢ƒ‡“Åìòýù€ ,fûdÀA4ɾ F›w†rƒzž¤‘M]5h kŽ‚ØíÈ/!Ño bH]m`Ä­ãÛUÿŒPF°˜ 7ORð`R¯. ˜ãÕ>)p-ºŸn)ÿ¸,A^Ð@ÎÓݱ$´ÏócŽ —o»2î´E®\ÐÝëE±Û) Tĸ&µ¹h…ÄŒB†k…I ü$‡ A“÷s”Ìå«×CŽ’Ùë(™g-„J+áx¢.ÿ8K?µqOgú$È…)±j ï CêŠ80ÈѽÈÍAÞ)XGi‚˜Bÿ®Eë9QL”@ ÇLW„@+i£mhÄæ\ÇOQÅ7#N·$  põ޶ ÒímUïËÒ¹?haïaj„lœ<Ðú,ü˜óàå;¯7‹++…ap í3 !ŽÝés‰ PQ¢CEˆŒ©b…H "b4{âèƒ9گï7ût¸ƒèÒoïÒÇåål1 øyJþºÓpl…+¸{%âd-«%1j C¯§£ˆižþG¡æˆb$¸RXڸת xM¤øÓJÀùûÉúòí/þŒkî:, yû×áO·¤\’Pâ4°ó¨vƈ1uO9Zé*» ¢ôf.å¬r‹ä—Nb.YH¹ŽÃ8 1V±bsµÂ³4_F23* xŒèÕÕA’ÓŠ(#JQþå_.~yÿâÝëâW^ÃUp?´‰åf¶Öé\&‹â’q\Y­0Êñz¹É¶CyG¥¼näögm$›ÊÙ,ýR¿`%õký·ùc“ÜÖ/Ì–ºøi?åj•n–Û_®¾Vùðå*]§*•?³²¿@#)\ç/‰†|<·L€Ãxå7õösÌ&\°ð˜=¯ W“bžê|ýØHL8ŸBoÉŽH`Sn Ž¡TPpÀåBa…yåA¦eX ˜™K•]Ú¼ZÉù÷g^O°ý(iK€Ó- ‚‚ýanÑÒ1{þÚMñ¸‚1ýo¡¢Î‹ÕmA IÏ® ¨Û DŽ)GÛ̸Òy_ÊÀUð¸ø|ñÚͳµ$þã9Œ!Ã!¢`¬:ˆPbãEÔò;½p ‡hEE–¾ÑIs°ÀµQl)Õ¼2ú‡Î=?5Ú,©Ô–èùÅ&YWº^좌ÃÙ®­´ÃPЭ ì{LP}¨g Z‰™ÁCpD…ØÖ‹¯Íl¨¬,¨KzÒD5ŠÈ¨H+¤©´Í æÀ*s#m¬00V^ZÈlòÚ„%*ß_ý#\}Ñ÷”Àþ3Ñ-ÔU™Åu\h=wœò\e•s6UYÖ¾¥b¦íדa¹Øµn˜A°°7Œ’É"U‹'éböÕ/“C7%‘CëŽ>I,¿!¨}G™àxòÿìY“9rÇßçSðÕ¦„ÈX÷ÃJ;ö:b<«ÐrìKŽD7%ŠMófæÓ ©n(‚d×j‹v=hF*«P…üU&®2“â©,]Þ ‡ÁÖ84Ñ)F'_åu´ÊŒ.uòƒãÌJ-¬× ½é9¼Ró¶ë½ª{‡ÁžÉa wºÆa°U…Òò¢’pIBÙâm±Â!Fé,EˆNCbŠóâ^£˹d^;±çðZ9ÄCñBñ\±{b…Cʵ`š xêÓ £[ŠKq2üWi@¦M`Ô%ÿ!õ*YäÁ¢÷ÒqÀÔÁSŽXz¯Å.Õ^íW¦qk«:ÉÕo:‡åªVÇÉ„ä‰Jª’»@ó¡áÆÞUÀ †±,õÀ€Z·Dr«¸õ\AÔ,f,ž=ÆÒƒÙ0?¼Ûób$“=ä‡w]Dòû ’š Í’ùÿl»)Þ¸6†£ ÃD¤aÒx%­ˆŒ€ç$ګư<:T=×Êãá^8†ƒçŽá`÷Æp°6†“®#ób»•.è–8Œ³š_´ÅÎ9Bâ4ÿÝðžÌë%óýÇ™ï?^Lf²ª³É|ÿ±‹d¾ÿX]ÁpÉgr`.HÛ³çß§÷¸ÉF%h®9g%}`Á*b<Äåt…ÞŠhCü–> n©ô}?Ð$À]Óêç.ÈÁ¦.UÎìÃ3äù^i£üQ›pðˆœ¼<•Yµ[OÀ ÅM°4RÞn°ø$©×%'÷z¶î'hÑlÔâ^¦š¬’ü¼œS†øù‹tàð·[Ïß`…Åàr¥”yx±{¼ØZK3™žE÷`2á½_-îqn—³å|¥u³:¿­ 4?ÁÑ ”R¢šÈß<~%"Á„†ÎÛwåóWÁm´F*ä ƒÖ{&ÍYÁ u–höéc`´tTôíàôäw^ý¦L~°%ò·poN'?{œü°ÊuÑ9¼«:©—©¹hͳâ{Kx×t“)(qœØ@1¹vå‘s1r'X~*TôBV×: t‚€NÊXDk(7¨ìQÆ Ê›4æ^<+ôt óšBC$WjÚUzRE©nUÞSªAç W> ":4FÉE0½>ϵ’~²>O™÷Õ‰%ä÷dzšeyN}úqö]N!ÚA?~‚Ö#4õàybœS&Ûb¼ÖGŽ£ÆQAM Ä£ ÁH„ѩƒî,UB÷€_-àu]‘´‹ýq¬õÇ›ÄGŠD×úã›t;»×#¯*—¤ž8H–9—Ü´Åùo‹™­±N%Q(0ÑEQÚ¼2ß Ú91uÖ#íê@ï×väæÃÜ›í??tNkÇLJ€žПgɽ.žÂÿ´#²þ§FÏ·=%yøn’›Ù؃š@ÎsêÕ5Žƒ­àB¥(Ù†ç+¡¬5aFµ±6/´·Ú{²$ŠDn>0i4S‚;™ÓÒvwºõcmÿd•¢Ñ¡JÑè¯G%¯žŒì¸Wß>¡æÕÓ¹û^½;Þ9ŽjÞ™‚¢z ¥VJ?—ÜFש°3€ uNê,“ ™âZAêyƒÐ˜3Ûj Žõ[sºïv/VkàuVäuVãµAz¬È묅ÇYjˆ#Ax–-ëX^•-3À8ÉmÕn)¯Š–¹è0¢|rÈ\êài¢œ3”¡¢² Ò?|/ª{­˜Ÿ ZVÆü~YÂ|[¸¬A¨ìtÌÓ¹Ç1¿_Nîìld'£¹*~–\¶t`%T´4 V•>S OSÔÜ´MýfÌé¸Q(Ç1Ra‰ÔLI{𝕿¤ÏÊ4%š·åÏäÎN§9{œæÑ"'åìËU5ÈÒ°c-ȧm¬jh!¤ZûÀ ˜“¢£–9;—èœdJ·Êò<ucƇÉ"‹lõpÿ8¸OÐS+Ãý©¸ZåSmµJ“èZ îO‡«UºpUy ¤äD%gÌZзX+_¹Zh-½å©» ŒpAãZK•œ¯’Q@„È•U:yéÞ_)¯yõû^Õ'î^'®ÄëÄUxÝ>¡Æk:÷¸3ž<ÌæŸ‡îáókÇÍé‰ëœ»ž¸ê4Fh-4QÏß#¼Ñ¹«†Þ¥°ÌŽRø½ŽB­•â–P+aʸ~¼ìji¯«,6Ð>.Ò>®ÑÞ W¤}\[Kº\øî-A©*5æLÞVCbm¤šÚ(åUHε7\±ˆ1‹mm]zœ¨ÒQ/9‹AyH¯~s­$Ÿ ÓX&yZ$yZ#¹I̱Dò´Fòôa|tùI‚ìæU!HÄp–6hIHK˜WÓ«MŠËuô./ •‘Xj„á! ŠJP"Lp=æ×Šy]²óâXÙ´6VÖ¤Yļ6V6}˜-–wKœãÔÝC½:”–¨5Ð`ˆ2- ¥¤4)¢’”JªÔÁ©'Y¦@{kìuOûõÒ~¢ÒdóéÄ2ö;‚“Í“çÀŸO¯­·Œ:9Z~Šn¥1B ™÷†€l!åF7°Ö1:Ê[öÌÿ@æO±,Ó>+ÎmÏjsÛMZ—%Ègµ¹íäÁç]ä»*† Æm†K£TKƒéU)LO‰£QC>K¥SÎtÓÑRÔ68¥B¿¿óZY>A ³Ìòük‰åm9ÌùËÓYNçV6…|ÃÐÅ=^UAM£%g¹ç-“Çn©ç}Šœ¦pNk˜eHÁ2b,!ŒÄ kC õÉ™òFb»:,»¾z­µØ#þã?Yb³ úêÄë{J›ÍÊš§¿>½»3Þ§Hrƒäªóm ,&ÈIœ¥¤±F[+¢·9零*­AÍ¢®Ýyï¶ßìÙþ±lŸ&ÒÙÈöû loku6ksžÅv:½ÓlWE= y­¸T>?-Ä¿Lóf·ùFh%U\–2˜qÉSÀ`0çJ‚È’wL2bNw-ÀJbéÙ™u¯Ìî1W”DyjË|1ó‚Œo·õª>ÉÆäqy“ËžMÞ)÷cî°,ƒT´É}Be84Á´}áæ1 š –“eÊ<µÈÓ]qr¥à¢‘yGtð„H—<¥O\ç]g™ßKBöÏ$¤C†“ÃßyíûVýcÌt«½÷Í” s‚™â䈙•œ°Aúþfž¿‘÷é®)lÂñ|h³·"©”r9Ë]dÔ/ƒgÈœu^FIDHWÆ8úÿÜ\OxÉ7ù5ók>¢9~–ÐøÞ÷š™®«òÔØ{¶ššQ˺­>>ÐðûãÚ,€=H¥ôù݃[q‘žö˜Ñ:Ÿ‚ŸUf©3$HT4:Lxï4çQMÈPê¡ØÜ! Êž³è”pÂ8&h¤: /à…¹Oíš\@¡3RäÓçÞ ŠLÚÿ;Dº9*0`Â#m séNЙ:m±Û7›FæFøé%.üËTørUøòçÿYŽ¢ým8{xXÐSü²Â¾~3|5³óѸTúïÞ¿Ê·ÍeªXfÆÅ»¥ã¬áøâ[Ó/ßÊ¿™ÝáÄ6–Ü•JÒáâ]Òñâ=ÒqÞp\4—¥ã‹{ûm¯Ý‘²i©ìë|t7)ÖxUR¬Ûªd>/}ÃñxïVe_´_qñíaöy4¹{ùýr–Ž5/ hþ,²%[sv~6Ü2àR–;mòè6ã¬þÎ÷y÷áÝÏC·Ãð3þ¾Z f¤(ï{„ epQf´@Ç-QÜ‚@—ÊQ1ñ}9×Ýôî§ùýpú%ÿ#&¸×ÿúò9¯õéÄ'¬£5Üú =6ÎO…öZ/l\µØ÷õ`¯&é±’>öÓpupmÎï~Ÿ§g{ùÆúÏöçGÃÒ£²·9(õ޹ܱáÝ_kZœfLÀ@ç´Q—ùÜü¸þ! ŸG“ùÂŽÇyy-y‘¨I/UòÒ0Dêné ‚‘Ü2BÑH¤Ö ©]ôžzÒIAå÷ôm¿…»¥$êÇm[ÄÊМ=0µ/[l~ï7›7?Ìo¾ùSú_ËñbôÃȾü[ ÒfKÜÍ@vZëîN¹&{ŸÓÒ%†[Õ,¬7ÒM¥Ï°É»ÉÃLa†ÿ|p@3<ì+-–åÿËÞÕ>·m3ùïþ+ô1é”2^hë›i7Í=IŸ<—ôîæ: €6kITIÉvž¿þà‹H’-åÍ7™Dàî‹]`wUŒba%rG€›D Á™u‰Ô‰J)†·²†á4}äβÁâéUpW°+¼³Ó’Ÿy¢GŽè$>+ôzÞú˜ž:IÕÉ·x?ÑÅ|nK«Ù6 wñsÀ8ÁcZG]ÇÓ:ÇB 0DJè1©ÆºG^Ká³|g®»Ø…uòP N¸u™CI¢6•D*M3m=U–2˜é·Ìz¬ðsTi½A s2 ÒÜã»HX~?ü=ÿå×ÉO¥µÃíY_Oš`Oà#™B©Lø¥½¶Q×ùÀùŒÔEÔŠ‰pnþì׊þï%"…I"b¬KwÂW̦YÂyªá6¦šÿÑ£¢qXJöiþ‘ed˜c ISt¯í>ùˆ¥±¤ZÎÕí°7W‹µšu]e;§™Ø„::I•0 «”ËÄ#Ñ6å<£Ê$qòÈ‘ç(:ËëÛH™9˜ÈëÜX m¯ÜÉ•@qÇ…¼ÆVW«bµRQkK ìqš\¹rí†s¬_ýÒ ›°³ Øë¸ñÐ÷ƒºÖBÿÄ“Aã£T‰Ñx8v-£ŽhÁ:2»i‚AW–’~ˆºÒ<°µ™Æ¡„jI((ËæÉAüƒù¨¥â’cê'Ø õØuå ¤í"éAqÇ…ýÃÑ)=ãFÕ¸,+Çeùj\ö‡—ùܨãbŸ)Xüö‚^f<Ëô {Êù¨¸Q‡NÔr©ÊyQÖÔÛ ·Qùvï–0‡±ã±Sûó Í$ Mª@,w ÍV{v-C©;¡ É ¥R0 GÍ²Õ MÅ„ÄSR[XœœI•g1qq†(¨.4ÍâÔ&,E(&XšG.'!ÏjRFž”C-Ø^ÛY±t@:}™§¥*s[þ§ºV­6¼Tú²[òßbÊ6dœ'ø2¥ß¤mð^—1ÜCH†ŽÈUZܾ¿æºX¸Mй¸µW0IpyŸXP 6€ Š2Š„¢J ¡%N2›e.ƒF–K¸ï Æææö-ÑHGT®À~øY•ÄÊÕ»ªZN˜øÐS+=°wéá0T®bÏ«:‚\ìNÆ9«!9ˆ æ®­[|×Ý£ŸQtt¿¨Íl7H.Úl@<ÿõÅé?žßå°Å#Ìb±]£îl^.7H’DÀh‹) B³û¿óý÷<*¹²˜Áÿ8#&%Ä*8É4#Â*exj9OÒÖfô˜¿>XÅÀÛ a÷ì×¹×PÜ4Ø“_z°uY-÷:Š0N8wjÁ”&GÄ¥,uî÷å¢Üx7!ŒpžÍAËQ*Ë5£–Æ™¢’fÌ=U¤Z[NŒµ:£Bĵ©¸½;•Ûš[Úrv¢‹²ÙþDû›]ÀáƒóJû¼}>h@ xuÖq+rÜÚt|V .Ô —NÝIQ=ÍþçèÖßH oiïËöš¢½ÌgývÑ ã¡X«3ê7 鈅qÇ8àÆ„MA?÷£OYÈ…ŒðtCéNƒ2º›¬¥Ò(fÖbaÊrû9\¿oéyÖR4ª)º[ÍW`;çˆÓ×n ÕpòÐj­È'ÕÓ¯'ؘËÚ¢W˜sÛÀJ@¹Þ«n ûZf„¸í‚“#¬en.ò…;›eaòÅE·ŠÓ˜·ÓЦ  :Êd ñŒÓ˜¹S½‘ÐBsŽ”Xk!°Ø^g{€éHÿj9S·˜å­S¶]ºaa»â4åµSÛr].Aéî}?…¾eÕôvÞÊÍ:mTƒ^¸ß“úæßŒnþtw2©ž/Ü çS±XM^9 ,.:pŠ»ˆ#ç8†zrxGó¨%A@É$™¡Ò/óÅà œÄQð0C j ã,UReÒ$=#K±,0ÚN+üQ†¿’ӣ癧hä)ÚÓVòžÍÇõ`yï¹]ØRÍ&¯×é,×­Pž<)ÿi³çF‰ÈxÏAêF›>‚„r»â˜Ëy´, çYXBpò@æ˜Tp¡©%HØ,ãˆIÊl¦X™@D)Þyƒç `Hy}\¹¿DÛvÓþôZì1ð|ȯvÖ‹è7<Í#³)A'}4øR/¶jI/òÕÔœöª4|OÁì­lTzjoÕ¤þ»¦àÎ §î6ùEo4¶}¯‹*WVê~Oú&éæM¿Û¼jÀ }¥0Û¸Q½¥¢o2҇˖åé“+mï¦EÔ4çÇ(ˆ‰ñ[Ë¥»»Ûý‚NïÒ‡f *·²(ÃÌê1¦1ÒR›"©¸ÂŠ'TÅhû õǧ÷ zV“4r$Ì hº5÷žó 0| E+QTãf¶­Jœôt‰^£hӋЙRÂ4hä 1r„—ò²X]úÁpD“Ú+ iÜFk‚µLÒ kÖ#BÌÒ$¥B›%.N¾sôSÆ<Ñ;'œû¼óoKxyÎù'¸Au æbõ…Œ{k½QÛ¡S¨[›šÄR |Œ"R×¹9íƒ÷¦ &‰ë[P«UR±,É@t#, æ:ÍœýÇ,H5ç-/ •ô±Ë±Ž¤g=¢Fލáå©W…±óÑ´“m£ó$8é©´m³h«c¡à_„ã ¦û»¬.æ3è’ ƒù‹ÃŽqþsÒûÊaA2,(È9Ë)Ñ4á&Z0e“V¬Ù¹ÒÕ»æ´P³âËK—†ú:ÔÇ¡çÁYÍ…¨æÂs“¯Š²:=wT¾'¿nKŸs•/¾öÒ-JÇ(ØRÚ(ȼžÒæêGýþ†²˜)˜ÌwvÌÆÀº´«™»ëʃ+¨ÖŠ4KcE6[^ ºSgC¿ “µ+¨º|¿\å·íg¤ªÅƒXÍú2¨kèëcl#OáÃ'~xó¬…ψUÛ›MÌ×Ú¡§®uÏ hlÎæßIqŒT{¿º,ÑÍíó·ÿˆL¡A™Sãà‘8Èf`¼Ç)ñ&%)2.”qÊSÆçÊÁÌŠ6˜¬{¿¸çoþ©¹ùÿó%éj°Ï ¥ÀÃûXÚ¦wG§ÝÇ!絿ÃÞ­ŸÜìC ¹8FD7žéÛ‹úÝ À.Aœ$„M8 ‹Å1Öfÿ‰^Ý…?dŒ‘4F ì”&[_FÇL§©IR›2kµHÁöÜ¿¦x±žÛ2×íO·ÂzñÑ#ÿªàì8ò Úöî˜A™Ëÿ•$˜òc’Aþ9+.rey9wZ€ vóxȘ<ÅÎ~l–X“¸­J«1ai°È`þå2ý(›m’Ö¡Ýž¨ƒ=›yaÔ,WÕ“¥Î¿¹“aäŽ&õ_0¯®¿ªÌW©þªÒ_å_=Ý_ý7"~G‡´ ‡=€üöò&ôwtP m~'‡´ˆƒ‡Ò,¤Cº#rÈÝyø úûnA‡ûìH﨣˜oÂ/§´3ë"É…;ùjà á׎ƒGNaŠEªu‡cš¤)X˜™¢.Ÿ6I-vAdáß~9ߡׇý;w„:×^“_¯Ð§ÿuþòüû7çï~ùçÛó7S»˜^®æ0ßôÙÛfFIÐɶŸ5Œ¼ Eïð>ßmnô‘C¢p…Ÿvæ.„n ÂeŒz(Ô<Ú¼g`å/‰Ý"·D,>FçË|üuæS"‚'bì}Ý‘YÌ(–peSÇ:ƒÁ/71²Ö¥Âl–ýÌR•jQäêäº(Ó¼ŠVE1«¼c¡ÿ/úñÙ³Þ]ØUý uss|w?ܹ¢Ý¡·‹ë¿X÷,9«™9¦Ô. ¾¼÷uä‡PW¸O ¡Ÿ>/Uš’÷šØ#tŒ¼~q/Ú׎6Ý8 &±3¨é1É«*u ÎÙIÁ >LmL20˜9Ë’XYèÎT±–†¹„l)ãi·÷‡º]¾¸ºÊ|¾œõ8ÖK„ˆÔ ¨± pm«/¿ñ@w=W0諬(ç5%kfÕìr’kÏÝ~»¤ºt¾‘ÿÛéÁ¯þù/^¾ü~¤ï¾zýòô—Î;Å–|užéÅ׎6} Ç ›Ä%‚ƒÑ«…šç~3ÝoCƈéÌÈ$¤hjµÕ,³‚a ™4,hl¤ˆcaa"U¼ gòRR)õÎͬ_=<>°žíôoøCµþ ¨§'[ì:ëy†ÝÇÑÁyí¶ÛjaÜo˜Ó®ì]»€û‘²%hav§¼‡â~ÓhØç@ò!F‰dh‚X~ü˜ìC•…‡Ýúf§ìÄS>Á1›Š ¾­Œ$Xn™ÁTCljP:¦ sc#ˆfq&Àzäí—õ]‚6ýeÀÙ£ìYCÛ¨¦í›ÒÁ |7ã;Î=1¹i úØÄáî„ÉI")?&ÒÂy¯ÎìJ-sæA¦X€¡)œ+rèD˜ DáLkËd†u* PH-RTJ’¨ŒâÑþžË¤gHûÉÚ/$>éóê¬áVTsëc¯;ì†ÅhýÚÃm×,ô/”E•qç0Ó£Î|ô.Õ•MŒ)*ø”„ó–³,†©Ü ŒdR3LŒ@ˆ§1 ¤©u©%ÚEX`Óí|Fj ¨›«úËüºþÔ—óÂ|téÃÐ?cOƒqÇçqÁ£šCMk¸¶ùvªÕJÍŠ‹ºä¶½t¸rZgF­K}|ÐÆÂ‘AIÔµi¯4Tï¼0íG²¶×ÌÊ Ê½­ù— 5óJ{‘ƒ¦RŽŸè.è$\5ƒ2rëJ¿y>Z®ÞšwBÃcÛxXö†nÛ"Ú°+ä2@˜ô1JG8 T9Pí¤QåÞ]ÊÐdš„†-³Dg‰8}…aJ9U*Æ0á`°^5Œf—Ëý­•=@%ü:ÿ¶\›^€*¾áÎYßÈóç>Jx½»·^è2_åpc®Å›b]êÑ̲Û 7•zήQÔïYH’XˆdÂ1üAÇÌ+¹Û…YÏŠº{8Þ‰Q—Ź“²3æÜŽ¥¢Jrn²ØR%˜f)ƒ+iú7F?2Fîœ5üùT `äOâd€ÑºQÔïY(ºŘ¹³„h#F¯® ˜µþUL(¨Pr X‰Q‰YÆE.)³ÊÄš2-0£:1È$„¤X)D»8½‡à*ü}—@V:ŸÃ\yõ_¨ÙqÖ1$jÂä , ‰/ÕÂ:´í™Á™<Þþ#WÓº+ÑvGB§‰d ÃD.Q,p©ªæÅl5ñ»"SÀÙ4–¡4Ý)á"&‰YB±‚(®¤µ0t°ÉÒ’ÐŒv+&]ƒµÕ.b­Ûºœ]Ô+åf«VŸ1$´Sûê>®™†î¦–{¾µœ‹çjõZ—ÅbjN}…Aˆg¯dûk³2]¾ï®×¹émŠè¦U§ìºŸÏ,˜‰ðÊMÄçàÚóu¾UòÆ.L[÷ÈL*Ànk ïÃàëG}2ýgY‚'0–¤8"%bµN¯ë­Lï.‚§± • ÚI•rèœ`ÇD+ãI[KÐr2bÀ¤51·0¤¹?ÆAÊcFÔ$šP~Ń ~xOM¨ìts»)Ü®^ÞµÌòÖm±ž¶;Ó?‚ÖQ³û¯¶ì@ÂöVJ,ziȇ¢ö];*ÎÅO0aÌÂ)°ºçO¶Ô¹ú²`hN³,!ÖH¥„LM„M¬R¦âÄÆ ¦‘HÓ:{T×Q„™«“b¹Ê—‹‹{›gnú[‹qŸ|qUiµ´'/æê¾R¹¾:ùÃ-jy³¿˜Ï]†1S1ºœ@Ó¢¸Š mT­Þ/­]0+­uËö'Y±œü‡¡'õÞY~á èÔ¥/1¹j®ò{›÷µe_—}î¬ÃDZ6q=¸×=H ,Šk7Xµà=À7rðÝ,+eE÷zQÓ|T{:X™·pÝÕª#hÝ™haoüœ¹ñÉi®Ô|ØÂìØ­kÀ«é«´XíºŸ&ϲ=Ïðƒ=½¸ðCa©V—{ê^ÀL½Xå«÷ `ÌžzùÂØ[@ʼÚ]#_9QºûÍrŠåª*Ê•ªö<ÊUØô—«æ®š¼(ƒð TÃÎŽxq£Ë éóÖ„cø’ëFÓɰÜD"øåöêùÅuð/P^_4ïûElw‰‰Ä¡ØïÝAÒ·Ò !nI£Y}ºxk>£¼žJˆ4f‚[¢ØR ¸”#óÈÙíîÿv$ÿy×=S=¸kìb»_Õž›âÛ‹´3zäl›WwuçKà3Tôˆry˜†ânõn ²î(x:ª…ÖB¡’ÐX%±±1§ 0žÅø ž}ðìB2†IL;àÎŽ"4ßúÊH´îa‰  “`tŸâzq[”[ƒEdŒ„z†  âZ‚‰vÉ` øÜò1Hãa€ø§ÈAW%ƒÔCXUXEW`€Ô¶¡’Æ}¬ÑöŽÂ^ªš]1:wQ·V=*‹#à(xÐʈSÖ„·%ùÍQ‹IFãHxƒ^ù Š1äK €Î;Åå£ß$pô›q8Îì£jf¿9° „ø¤SwmI×·Ç zë)wRø0y‘IEÞ`¨5ǘ€%>¡ñ4^ß&h pîêÿóþ»,ÂßÿºzLL^ߣ° ¥ABø) {Ve,ÛÇȪ€)ʨaÔñH1õ!CJ É&Áä¬L0Y9 “·åê1á8+€#“‚M>%.z,èusZ¤ò´¡¼D}@$ÂS $„Zn!A2Z‹–A6)‘S4ˆÌÖ£Åmë¹â÷_N_Uîvéß6³²Mÿúúïñøáts»Œ¾’%ñݶìõûj/(ààÃÃz}ÿ„ç?÷æìé«ù¼i:ÿ¦Š—þü—ׯ6³;Uy¡O¨I'×øßvy\}ï«:½ÙiK²›àéˆxÛž-ªÉ¡–Ù)_å•eøjÔç?À¹çPá|è´Mw×sÄǰÁاDÝÙ‚‹C;F™¬ÎÿõEÞqÆ 8érŠio‚5a¤–NP¢”dÞHX´7¶K£í¥®ÝÍÆw Þ±‹'ª­¦íÄ3¹8ðÿø+SýpcK›œ¢¬•P… ¸— û¬íø§w~Ä-rÁP­"Lc³Õ+ÅMU··بõõÌÙPrÝÐŽÙ¡qÑ´'Á]¿nß 2‘BRŒOØ×(ÕUè­iÜZWÔqå—õ]ž‡ŒA! "BǹIOE¼“ƒ$Æ.è< ¬þ¢g¸Ç·j«åê›EP•›Àÿmiì¹û~ö¹7šã§¦]˜~î`f(ê"ë÷-9¢ìÀEüm˜ÎëÇb#«s&H„v ÒǦiµú¶ôpBÇì„ @eøœU{\ŠÊÁ$½ÎP)Zy/…•؇ÎP)øµÔî8õ„¶=$Åj$Ö~Øð?Ý$d¯¡_ÔM]ùÙ=ª"Ö_-W —²þkÄ&¬¢l÷‡´ÿá§Ÿl'Ç_<Ø÷Ý j±Ÿù“ÓäSz–k # Ä­”`^zÂmÞÒÌCKÇšÅуû.©Œ­ÆZ@ç-´*” F’Ðèð›cN4ùBwkN:¹ù¨p¬[´ºAEK°–·–“-×ó0K½%\%©ð¨]™¢ÜÌÖG¸+yc払Р˺ׯû3áîsÍ=ÝÖ¸Ç@œb¦ÓH`NOp;VºÙt³Š†Ê%Œ#ôoÖik-PØF±:HC­¥Ji¨¢&L‚©ÿœÊJ-æåz³2Õ5•«‹/â©q{ íƒÄ¶É+!…IV\bÎG:¼ëŸ8öôì^È_Äw×À[þé¶R=k~r9!HÐSbnÄ:·šâ…ÆK­ãÞÐëAÆ!Ä<å1T`Ë} Ñ-MÀž`F‘'òûƒ} û¢iÚxï¨Ô7ËO¿Nj‰ö0°êî2šwÕì'šß¼L¢©uô¢;O“OéYà €s8áÑ“í)×YãUœÙò¶¨œâÅ«&Q4 Ü·qÌ„—’sK½$„:B„:È]g}Ðô e¡èÉsƧ:*hÜfä]S]…‹š0ŸcI¾z¹Åcw—Ÿ!¡)“‡¦Û’{&$8LÆ@ÀI.ÁJw?ŸÝÕG¸ÂÜžö†®Ž~YUž( C£ŸUK}ÔÈ}ã~¿øþn¶..^ÍLL´°®÷—¦°S— j6¨/6œMí8^R\ÚgãY—×ðæ.|¥:É7ÅõPV›WšŸ]ÚXûMs3'°,|òóY̵~ÑCÚúÓÊgh’÷—Æ÷²Ê/öåyu.µº‰Ææ×;Ãã2¡ –ñ~ÁÛb°¶[–Ñ—XWܼså(ÛÝlãì—[«åÓL/î®F[j*EÆ™üêv3ÊukÆXz´Ú‹ñ:/f›Íj³ÞÌ–£í¹*ÑË0[ŽŽ («5´1¶rÌV=ú·ËñïÖ)˼˜¾NÓeŽëð÷™ZƒÔgµQ5˜¯×eøÎY—ë*ÚÚ33@îÖû¹ÏæÍzm°åk)Ú¶çþ÷,zI½ß×ÒãÊ IÏëÖs5[ö¾,ÍK¾ËùƇ͡"šÜø#P»’ô½ÓÈìžùEumøÒ,ý~æâ¦zQ_Võ»?ëvmjÝ-ÿ>³›~öû÷‘X]×j|»Ä+»«Uck°(´ó¸$íh=ÏÓ¥_$„ùÜäIg²äÒ9›š|-ìÛ´Ö«$eЦù·–£»[ª«t ÙÄÀ²wÈ–ir†¼ºÏfÕºHhU+%éZ%w÷]J^Ê:m¤˜^y:OnÒ°qÖ¼NÝ¡u¼»Kk$: ”M¹ õI(Y{6hÛ#L‹‡¤NqBý¼î(W® ê·õS fäï¹òå*kÏHXßdéì[¯¢‡›¬õ®ŠÎ#7ëÂ)c‚Q™Ó¢¿ˆœ²qª2bsj¼-—S*Ÿ:åýux¸Kš™Îûï×j™tÜ"â"mô…OO—«÷i—-Rð,nVf%SôUâ ôX‡2/6JVb$¤-X²aº˜g Myå’<™ùªp9e³Zç„îà ´|qätÒõö„Ð} ¼¾]$xS¦œÅk´ö*!\?d5½~øð!å¿Az‘&ü%M–«+Ÿ¥3|®çåªLót:réði¿I‘ig¬ ’ ×b¶è¶B7Ñ ®³%MÛ‰ô~N6,Ù®L7]Þd”ëìæu¥ –7ùKŠYšŽã4GUÇeŸV–©vµžê¦óºÞ–^d ¹ åÜ%Ý¥­·™I‘÷™ô‰©é½zíe¶þéÂdºAQ}‰µV’1»Y*9—)Æ!–*æhµã0Gª0¸257̳ÓZÃ<›‘¢RÝ4Ä’i¤¦L-æÙÁcˆ/S^L½úì8ÞÑ äJl€)WY˜vÚéS¢°p% k€+Q?Ãþ0Œs%uˆi«·1-#'Ón‡xÊ‘jg*m˜'ÑGCL©ŠâÙ©!ŽD ³ìTË {3ÀÕÑ;c\™*eQ©Â:ÈRB¦Ö†yM7Ä”)·¦T½dýþ­ŽÈß©¹ µ†kNÅ|·ZÆ]½·Õü!þ¯‹eÁ´ÊªÏ.úºZ+2Ƽ˜]V‰ÔQC3SŒî63w C;oÜïÏþ¦†ü<ÿeò§“5û[Ýp•’˜l®Ô5Ú­ ÷¹Ä§C‰ès,1§~m PŽRæð "ÀÎ0ˆ§“­‚B Æ)eDZ°`#Œ­joâµð¶ŒØ:‰)´¿™°MmnõÙ¬ñok‘VûãÎ,ŸÅw|Ô^Åw?ÿ0üæ" ¦ðã¡çÍÍóçQç¿-7íÕˆš·‹Y‘&ƒÎo’ÁÞYÏo«mÊdû;»Å¨†g€<°–çVÉiè¯î"[½¾Ô0׋Om¯šò¾Ž¦ºëç{Õ¡Ìo»”…ºq‹tfÍÅœeïÅQ]u(ÝUͼûP¼÷’SÂ7„ù<¨ò›¾(Î2Úþ{ò5•rÑ­ß}˜aï(B:oÁ!s:kÔ¦¼‡¬¢´é‡x²Þb:¦ÞyŸ Z+ãS…¼g‡˜²ÎÖô»þæÙAb˜'CÉ0ÛQuåðÒø-âr…ߣáãh>Ê—ê×SÚ€9¬¼!§14!‚ N‰º´µZîfów‡·CL]m„uHi6„*é ÚSj ÐÀm€¿r·ã^¿}«ÊÏá”ì~í÷lYÚ ¹fkågÈ»^gÉPé<‰ºù¤›žwllõãz=>zꪜ×ð©êtxðp éD"yÂeÖÌ9R$'ž8¨°§BeCˆÂ/¡ÓÚ’žQS›ºÕ–v蜇øÉ#.ù²óø¢­/Urò¦ÁÀ!ktÝÌYú¨Ã›²»ÌÎns;€õLgS¡:-s´èL–:Éhý$++ÒM—0ãæœ,`1\ìªYRð”{<4(NœÂH½çÞ ì­Uq†˜í‘±mCë CÒéëDê8YÀn?ë ÀGÉÍC¥^%m½ëÝ‹g‘Û3å*%Ôs·TTÕ¼K–«<•ÍŽ—î½YzoäuÁçeÿ´M{p r,Ã+DŒ¶,1ÀŸ°ò·Z¸+uxçu†[/ˆÄŽs Sži¯1V Šñ®oVo¡cÇ óÀþ7$P¶E¿ݼ¨9F%Q]ùó’DUŠ!¦b<†ú% Nð‘Ò–U-÷Œl?h¥™„Z©±6”sk Z ƒ¥¶<üà¬G Õ‹I­Z¹ûü/i"˜O™l5 eg$y"¸ª˜x¶BqÀvÝ–sU¯ºÈû³ß:P¤\)š®3Ÿ°ùÉ«PHŒ•‚ð1*?·X¸¹3eÇîȎд•ÜÙñU×7©œ±ÈݹåÁ1~À ’½yH6´…¥.Wö¼DCÕ½‡EçŒObìÍO˜DÜ»ÑU¥-AFc$©u` ¬&Œ;Ï ‹f ÓŒA`T¸o¶…ûŒ“ÎbîW„GÄù<³ŒúÓÏå£>JýîâÎï®^Ë©v_}ÿoÏŸ¿v·…û¶r£$êf<þkN»½ÈYýòé~ÿœô}WDÕ 8¤ÖÏe˜Vµ<<ãGˆ!Œ«fþ'x«ÜVÄ­Æq#˜€Ri%÷Rht¶ÓÂÅx¦Ôc¦}£µ>çû(³ýÓÇYs8ù±«—ŽŸÅ<œ¦f¯TQ„ÊVC©þ™J¿¦Kû‡I"÷³×M:Ug )yùyi²º~‡Çfq>¡rÒú› F&(†ÿ…(^óßÚBJâa )€„)5ÐÑe£HAýØ2¾»š¶ßÏþP®Bªv~B£UË&ÇbÞ^»û£év\×5tçV²âžî*Ó»¾ Ã[´ S¼ÑD?1µÏ<å vÉú¢5+* ¡Â;èit<ƒ½Ä kHQÖpÃŒ¶¾ÞmÜÅ»xü6›OUû¾Ø¶ð´náT•£žs?Ó«Þ~ìzØB¢¶â#ÓNÅöF#Nx<‰wÊ™‚/{^ù-žÞ®mµ²—xBØeŸÿ¤0SBIÝ¡3Â0$ŠF€E\xM…>ú¥þ³ûŸÙoÕU»Nc»öùêV} ‚;jÏi–À4Rþät[•^E芀·Ï¦©)Ê) ¸WÀqlHøOÄUîP}¡Ú‡¦=¢[óp¯€?-ÆÇ0û-RÅëŒ¯œ}¨žúz`4Åa<̃µöYðh 8«=T€13hƒò„x ¬äÐi£P?áñx<ÆÀ`ý=q–x´#òøñèËG 5Æz rÐ ‚êåž° ˆ¥¶H"à ÇãÑõËGw¦òÑÉG>#ýì • zš×N6á–8ÉÃTCop\Û±Oúú#ðèg½x =q–xô³¯)ß©ƒx”„j&º9I¹€(Ì¡£Èi =tyA¥Bè ÇãñêÅã;5†Ç¿C±|öj­–îkÎfÞ©1@’ÏÈõü ™óžx‚ãA©œ†q ×\/ÕFƒŸy< ×ó^@†ž8K¹žMhäçÄcùöo¯B2hgK…ÖbޤÀJ!ìˆîY‰ªÂ3§µ7OüHÆVïGeÕç ÌXµlòO0&›Ï–.eªb\À¾ø\p£ ŠKqÚ% ŠZ8†qVЭËà‡ò:|À?KÒþŒk¾Ð²õn£«*êƒÓmÓ¿¨?zÈGé"v} ì–÷3㎈¾Õ×É]¯Á‚’À°~`º«XÏáVˆa²K8¦§@¯ôSµ‰a‰â;€aÒíNÈ 5v€Û>7íÔ¬ïR&AlPÇNÙ:Ù¤oÔ €ÅúôQ+A–[¦¬Q–úxÃLIPLjœÇnkn yü#Ǹ8xŒàiA•*=wµ_ò×Ó7¿µŠûÃõÛ7¿ý%üý÷|{Ñ×_çŒÞ¶’ã0¦ŒK(EPß ÈO9”›[,B±óc°l)„K¸WЇI¸W›‰¡DR/añp¡â Ë_Ëm5–›JŽc™Pt2ïcSvÊ=—]±WºX‹e®X c±QXhÇ€ÂQе3Á,5&¦Àî Ë'cù»Ÿ,÷SÄò/?dXÞö×9c¹­äæ…Ä2L©&J„ᧉå«ãM +¥¦NJÏ$ ÒB‰3 0ïp ‹™\‡‰Þÿ±weMn#Gú½W»îc¼½sٞݕí°fbfŸu¡E5/¤ºå_¿Y8(²ÙœéiÊR„Bë •_fefee}òsBùSP1nOV1ˆb¢ù„ J©8'"²{ëÞ:AS0ã‰c5NEêF?Óa‹ƒ2$±Ïsê•T‚žL­áÊúœ2’¶Ô^?ŸÄõB)…cTö—ÿIrÀ¨ìÍŸÇe¯ÿ–P`þØãšø÷ë¿íñN›=ˆÄ»OõéœsÒå—"rèØ éÅîÙh´)s“hz¼²}Ö9™Þ[³åípÔ2ƒoÖž¨èÜPZ ›kÂ@¿±Œ`Ä15¹w2!¿ðÑ¿U1’ÄÏÇH09^ú.ÂAÿ!+ÉdÞŠxþ“Š ÁX r–¿úC5¹etbÆ{C§*¦Ïó<lœQ(CQ<…Êq°ÊKø øÅ ÞúÂ;¿Â›Ø¢º‹6«Iq Dãï×?üØÂ0AÏÑ…vTö„4²î­ Ň!¤áyñŽí3Ôží|¶˜mª!a­§<¼ïB¹§‹4ÍEž3@–¤4w-„ Be ±æµînµÁj—¶‹cv ijÐÕÄ©óÌ–³&KÅ#‘Ú_›Y¹éîm€8¦ù†`—ÉîRãºyÖ"•üCrд8ãÉvÙrŠB•!…é«©L]lìsŒB¼ÐXdsã$#œãríˆô*ÿ"í~#MánÕ.ëw«WW-­nö¨•UÔzÚ ŸG¨>”‰H*ÕqÙŠÄáûk0§ŠP!&”0N”8ãÀ@³1mæ›P,Ífö!Tâ›M±Žÿ¦¤¥r&p#™°^!t Z*IIÔ`ƒ6 ic½r­£îØñéÏ'!5Ï7íLGÑÓˆ¾~ƒ&‘Aœ»D÷_›¥¹ ñ¸ÝÑ=äG‰>—‰¡ãÞYÿC8e± ‘Ÿqí.(¼¼Û¬ÖY¼/F ì1aršÂ'>'Hh›3l ØZco8s’í ^Ö„ÖiÑ>¸®Q‘ÞpUÝÚ6¨Îg|xr’ €õ>qêÉË"yž­2š\³Í}<yZ`|>”Ñ!V÷úf»Ñ% æ9XLÄêÓ‘úaãæÑoQ…eð”?Í{ œ¤‰“.ç–*=–J’ƒAæ­ƒÕewùMÝüjs÷\ûd@VÍëM=³ñÆuÝqK¬zÒ‰ãnRkt¼fݪgÝ»fJ VŠ&‚3”Ä{ºÈBO5)„«»éuÒ^!¹QÈYêŒå†æIν°”ICAº DZAy{+DXW^™u˜_å ê^½Þ‚òóÓ·o®à¥/¯™]èŽCC›I²H’Ãa\ ›ûUq#ÿìõ7Åê¾ EyT¾!ýð|²Á´ÃdÝ/KŒ/y¨”ƒM;áˆrNŽÑæe–N„)`ÐÇ3{ŒYh öµ…",g¢ ýq [ÓÀ´~vÑæ=WeXÌÚÿ/"j·®lGðn—·³¼œ¹ùXã–p—çz §¡ÖjÊ(È^‰µ:cÁ¾ö ÿ˜*lsMÈŒ¹H+ϼǂ[“ã•D>mÓ À8mWm Mó`üÈõû¥xZ¬–«ÿ¸…¶õ¾ª²v`µ¨©ÛܪZ”nU@×W%ÌŠu 2üÆ©­ª¯íã ýâø¹{ø¨²\e0M'è¯á©IiqC¶ÐˆuQäýY3‚„“”"Í@º“s²Iý<[úÕýksŠlóÌÇ2n L'i-Öp/cè®6Dk°ôCÆSƒs™ç>7X2Á)Ó­ª÷øÏÖü¿_Ô{•˜ëj{(«g{/Ó®S?}Scéÿù§†Áâ ÄŽSshÙ+¥»Õq׬Z*$cŽÔ„­:ô¿_m0z£ãÁTY¤’˜ã .s&9% çb#µÇ`泜$æÄ1mÎÁÙºXm7œìÿÝs—?‹7ÿ¢>q+W—ÉjòvNþ©¿î7ë9¼ w â¾.™:ûÏDé»=I›©¹hÄ;94Ó]úWâ „§”¦üµDJ¨Ê1WBh†²ž»€r»† í@Ño÷Þ›‡õÛµ)Ày;[¬çPðÁ|¾ŠE=Ã7õgÕVPg¶0Àèú¿ãœÕXúá›×-žöwQÄhªœKÜÃRÕ>ë $€¥IÌ–ÁRúéxz0s³ÌÞGµYN JN©JyTðÄ1ꕲÄê#m%˱ÕÄæ4€Æ*AêøÆË‹K™¾«á²GÚCj5ÉÕ&K¾*õ<ïèySS4«)ú4ÿø.L¾^ǜݓ7«|áÉiØ Í.Édçðm»dýq¥ö ç\L@•Ÿõ`–«l1[ºw«IµÝËQ܃“)š”˜ GqØy‚f,7 =•Dç„)°º,7_"¡~«Ø€÷¦ ˆ9ú¤ºÙ+†ÇñSBbRÊ–³ôñw6ŸÝu=„Q¸€¢‡Ó]·loH sMÇ «QôÓ³C<øÛz´j˜P1Yž°Õb¶6% È]eV ï(gÁ‰<·\ ‹8Ï“X÷×™Z/‰¾n‚›ø“¬šâ~šôÛÝ^f¼!]¢r»_@OœïÅŠ'ݯZ̃’Õ: ÞU:Ð9—%ÌL1¨Ø¦˜aè®Ø÷Š¥5T\9&]èà®KÖ›¨Ä¶œÆ:ªñú¤3_û¢›Sõ])ˆ9nÊSŠ‡ÐŠxJ™6 _€‚AÁ2ƒ D‘Wšàg„þðæôO4² žû¯zwyÔ%×¢ÔQ3`.…‡ëróq®Í¢4Åfæn´gÔî|¶¿‡¾Ù‘8«I¼ç{ìi³¬ïg›UQ^_5;¶yòâ†: ¨,=žØïœ ¾%u««Ð)1‘Œ3,ÎZïŒ×”žÀ'1§°"wÀ#Ta-tnro)ñ8·!’sj¼ÏÃ'ŸT“z'Äf +Lãÿ§·ÿ"¼¦Ï!˜_tã0Ç/áRHj=(4òœ ½,~em¨-,ñ‹TÖ„¥Á*ÞB¬w8wÈ:ëIr-¬Éãm߯qÜö 16_¾¼¾Û÷Esh<ö-ôŽr75í²†v¿¹íx"83ÊwÎM§lol©¸ H܇¿$9KEißô°˜gf=+‡2·* ÌF ¬Ec ÀX‚Z¢$¥1; Ôç·aï¦l4´ÿª\M‡séÀ¾@Gj¹Õb±Z–Õ®„¼ld·Ã|âœ*D'XsŒÏqùí½0,s°997ØbJ¸ÍÙE‰ÕQ“ï1\ÐVŒ¾€üwyK¹«½|°·C} ð\I¢'tŽ?0wÕÆyµ_ÏkŒ¦JmùIá@I&ÆræˆlœfÃØç1}>àÇdþsW£‡“ºkÓzÈ]ñËŸ¾ýþ¸Â{„T£`bÞ Jv̺Á$ħˆ—³ÑI[Þ½ ›²¥u‚Œé…¾°'G}X·ÙÆUÚè†Ú7;zg5½OñPßU>€£Ñ_Bz»(UŸl0–Ô¶ '”ÇrŒàÎÚHÉï¬ xj9‘§”SðOcâgÀp„ñé\Pj8X˜µ»ókŸ¯ÐìMh'0yò`ø‰3M¢¡° …zê:eÝ RGt ÑzÄ”LŸ‘µìá.|´ðPŸÕ06 O›¦B<¢ 4ã蘌0«$ÍÜ:ne !´¢¤õ´ºoZ‹—Rɱô±ÖŠ°Ê›åÒý.?.l<%¶-¯~‰ÂH‰ƒõ#âEžf‘|‡$ß0¦ftáåÿÖ% ,veƒ}‹ƒíÙÁZÚAzÐ-k‡šJÆ'pHܺÓçÛxX˜å{3AS9¡TMEjÝw»óïòïÀSRä” ããõ°Lk¨TŸ¹<ËéÊüD]­ÍæÁe£¸Ú:x Ê ¿xhBœsnÊû\§&£i4S+,ñ$+œgœy/ 9˹Õ jƒŸèPÔðhOçÅr¡g’“”irÏEÚÔCŒë¿ÞmŒ‹®¿­U‰:éM1]«u(*‹®¯Pu;{¥åeE0þY%ÃÞf˜ÝöÃnšÆº‚d‰ÅYÁ½—Ý¿›¹wIK°”Œèœjí‘ Ü‰œ†œqƒZBÁ¡ÎÓÇ¥ÿ¥åײQM°Á´î»jqyë@5¬ÇÍãrÌûy¬ã󢘈 éQº:Ëï<`¸z¬=Žp-så8D#á{®´ýÍݯbk?~:’n¢«è嘴A = ÖÕÓõsÃòöèȨÚ›ak`9­€·aü»*‘YàxŽß¨ú»©Ð½àÎÁøëOeúÅœBÁz•ñšŒs Ø1?áÛ„oç3°Wy©º–_•qlÕ’&ÃSWõ&€ âìÛo°×½–A©~]M¢ÃôÛJ^o‹jsðP£øå‡½«Nuý9 Ów%jt„¯->€¥WyÂ/‹ùãµ{Ï?UlT·×i¹‰bra!fo©ëëTe ~ž#Y7 B¤A(^5÷‡ì£qWM^5R­#@MºŽQЇ^›õ?‚ñ¡x ‚bÔâÇPnÊé/oþ¾ù½&¦\gåÆlˆZ»2ªr+l#ÎßéíÚ܆·xõÛ2l¶ëD‹¨±¸-FÏÝÕŒ_6aéSŽž—›rãngYü‘•»™&´¿c±òG2¨?`c,¨n›b5 ²«"ãº"„³p?®ø¸>”nT«ÃèåP¶7¢¸‚T¿¢›QtvúŽ®‰¢Þ.þމ¢^³ÄÄ­ìuLçÁŠ^ø¦½MpeüuAWUXcêçóm{`>ÒªÃß‘F‘OjD޵j0q¬IƒŽªÉ©‰?kQóÈù¿¾î1Ô­5b}=hµKXXj¬&RÇ0ú§«@=$3Þg«eÌ®(§ô€õg±£3o@×(ðœ!Á™G–;c„öyÓãÕÚÙnVõÃgK€ý¼NUE5‰©ï ¹:Ôlˆ-ðcó«ñxMW1e²©)A÷„š]ÅËFI¿¤Ö>žÊþ)Øÿ3o~$×®ZæÊë°ú‚ùÑ­ŸÔ­J¯[ƒœ›;} (l_íh &éÖ4g-Eïn3ఘϾ¬ëä”\eU¯=k5Žà(+Âð>WŸ*Ý……õ;eÝà1…D#1ÁTvÆ.ÑÞk\  µc´ªSñÖñ´¡Ê5%6waäŒb B­c1º0H"FæÄ¼tÕž-+ÝùÉNÍM÷’ ¿ šÖ‡¬¿ƒU xu•$hÿèïHÆ{' ¼œüã xNafh5Sø'ë¦sÖnŒo¥‰â€;ç@móºõÚ‹v”èÐ½ŽŠŒã½Ôš¹#06DH‹5 <æ†ò˜seÛ8ðº‘|mø®R§.È—Ôf%ÜZ_F©ûÃb¶àÃW_ýuµ™åwÐmiÕ€Õ7,Ö‰Ašºý_×À™«Œœè2=TU€ºelo3®ª¸ ˸ÕwÚÇz0 HkN"ûSø³ ±IÓ/ëÍDÂ_‰¡F•çkX åe³N0›êTžÜPá]М!̘t ޱגH§„VP#wzA>Wu§ù×Õ¼î°]Ïr£]Âã<Ÿ(“¸JPm+ÒK Ýï–õ‘ :GU7MÐ3ÉÔ/²°6m×µÞË#êS{õÈIÅ&ÎQ¸E2'DC½ÒF)»9Õ.ì¢(îö_3°»å:¼ŒÎò2®äímês‚S\Ųl>[n ÖO]ÂÌÔêä¾ÿ›‹ô.±Ù§™Ò©ž°ÓcÞ¤šÒMY•r¿¨ABcñ(ÉPgÒÖJ|=!ÿÏÞµ5·qcéwý >nj‹6î×ìCVÎl¼ëɸ¬¤6»/.\mV(RER3Ñ¿_ ¯h¤ä¦Û+=ID7ºÑÀwÎ98—x߇ˆ‘Õ?Üà[P½)òô—÷®AôÈÞ«PÈ@'Õ§üÿÞÏj·…IÓwÑÛí!N[ ÑI­ÖÝ÷¾Ý¸îß°‡x´¿lzÏ!ü aåÚ„ ÒxF÷m¯e²µeŠY0ÓÁϦû0SQqj2Í]ýrõC¿ñÅ£• ðJI)‰š0^-‡L yê90žóÀpº­t±Öý –j“ûÖº¤ðá©Ë¢ÒÏôÄø’5«‘ˆà5Õö.ìÝ·«â8W ?z{ÅÏþè®á§€w,|7…wßmË+ ŠÇ &€D3J‘¯K÷ÿcœ…imˆ`Òi<ÓXc/,ÓA…çF)G´•”CÈªÊ ë—y¿¾yâ›i2ßÉæ8Q!Æ[zG½˜M~tU•kmMÿíš“µÑCo¶€XH¡ ˜ŸŒÇ-²‚b& £ Ä b³V;«Fñ׎  áØiKµUÒ*n¤ÒBBÎ5Ôa HD}vË¡g5Ñ30?Fù•®IÜðØg™¼¾Â§2'Sp÷’½Ù¯ºS™.‚áHô 6Æìh@¨g0ü/biZAŒ‘8¨–atWTS^­â‰#*ëYèX†ƒ‡ëÈú•žûz¥]—ã`jR<QŠbN†Žôe9'­=6L{K©< ù(²|yJ©3Æ1àbU6®œyfUý á›8·íà_o7æÐ„¿^Tæ=Ùr«Œ? såZÿÅUÌåûb¥v1‚‘E4½ÌÉÙ¿lÓ˜A'°Z7žbb¤ƒ ½™ ÃQ«b[jœ7˜2ƒ‘´þl ÛôåŠc<Ä縧KTì‹—|kÓî^_19 ÍöïûÍí´Ûm÷Þ D¼AO<2–&Ö1*DÀ-ô@)H¬†æ$Øs§&î©7êºS¢§ÝTe îñ¡,Ÿþ„ust|bUK™¾ð1Íz ¬fúBœ†Ë€„ÙÚiâ1Ó9Æ4'*Æ_£bµi!V:!´c!$¤Š5¢òs".‡gؾ¦Þêqp¹­,ÃôW‘*ë›9^묽q^?LܤZ[oٞ£÷œŠšB%Xí3ž=ߊ|®¹) š[}’žËñ;*nۚ¦ä™Ö«¸ÞÌ”ûTõfÍ &Aé1+ˆ¨F8/’ÚxðÊXk0¨Û}¦tS´ÎÙvg@úc¾±½![ÁÇÒÑO£¯œK%ÓÞ÷è휸.-Û^«ÕºE“8"“Ä$±ð2K5†xä]ºoJ£*¦!5CɪÏÙÿŒÔÎ<úEÿä¿ÿ®_Û‡'ûzÜ>/ýió÷—޽ÊÂâúükµù°Ÿ–dÉè:÷Wê­KLOv–þR×'¦=k—ÚŽµ+Í;R]6^jTàË»Ýí>¸4ø½+ìßÂý­^üöõ÷ï†ÆXŠçò¯“;[ŸØñþï’7¯jdÏÆäcŒ´O~½Ü›OîZU_î¥4ëLÓé½a׫}—6èeò•÷\~q£Â\mWvr*ÕW¸\üeÁ)¶ù‹ù—«™_K–3¿”®çxm¾’3Åâ›"}3„qy«nÆÇ¢ÙgØÍ[nÖ·Ãqšk‹è{ê‘EÜÚ oPf8'@+Ŭá­©óD‹4’eÊmŸœPÐð/qz×Ìp¤â”~‡‰ŸÐñ|9a.ʺaœF›à"V€lvdíµ;¨¾ºÂ'µ±Q–/Dã_ÓôšÊ Úª€;…-4ñ€QEöŽ;Œ%ÐLm•(Ä¿½]þúN>ÕMÿ 3ðUω$c› \èö«tyøš\ÚëݯÖ+ ÿoíÒ7ZáË}ôß/ß\¾}ÓÿØÄ¬‘æ·7­ÜzôÂ/ÇÚwëÛ7CO'[ú ’SWù€åðÙµã ÊÙ,À|†~»>¬nØG5¡–.UÕ:ˆô±¸„³Êq ¤ r9Žz„€I4µ >Y>žÏl¢×ÁsàU[ªB¡Ã…™yè7êrµ<4`rA±Dh¶Gý˜Odtr®Œ9¶TqŠ Î@â-ç’"¹Åñ˜ÌA!§qH©E9y[S‹ås„ÿÆ0×kF~_4T¤àò¶û5ªÐ§³¯%:U²î‰C==n¾ûŒ¦ÉG’|5óºê ­¦ä¶½±ãè‰_9ðƒ &»9…ø|9{ÄöHì´–Q+(ÈAéµF! )S@c¼SÚ税N2)µâÓ;½,oXV, O5jµXŠ„‘Sp'§{²ºÉ]iÆÁ,“¡T½±Ð#2#ÿÉ!Öx9Æ[aöÐyO ÑXZ⸶V™yR‹Ž‚£oñÈË¿eì%ܱ£×#íuæYïô0&ßf¦L¾ Zè ÎåÏö|ûÉy–GÃÔ Æd7ý|—_M‡=žjÎŒm·í™ ,_AÍ#.€Z:J5aÞLœv³CÎøªô¼,5€?m9½å*kǼ9Y³ÄóMœ ‚{|Ϋ*Ï)Iî¾4væ*þ'A¹‹ÎKŒñùgÿ›ÃMᤀj~™BgµŽ{%ÃÖ¡ƒ~ ²€óxb‰„sRyV0±ÄSMÓ$ŒÆÌjjyãcH¡f”!¢ ÕN[Ŭ€Io°‚Åå1ïè×÷¾yÙ`©ªè«èK'˘y6û-¥øhüaú¥¸t»Cï3ÁBb„G5bÊ´ÎÙ›×1–þ,8O³vÍéÕD˜B¶@S>;<,¨ZíN{hÜ·LHêiØh‰ÖÌ+ðÒÚ Q¬¥ÃvrZuññFí;· [°OË­´ï-¢žƒ’å¨8ÌCa¾¸³EIÁ¶ÓÉÓzÄ1eáB²3‚º*'ƒ!ë5¥‚(="QP $†€Bh—Œ%$`ä{Q©÷î þ4‰–bÆ¥TlOÀ÷¬u¦àkdÔ)ã’ÔØdw燛èEÿ!‚«ßžW™ Š†$öíú-Ó!×µH­Ìv½Ý-ßM;°ò{wX©õjg׫ÍoWÑÐa¤²ü_ÉÿܯýÛrJéŸÌºÖè—ÍêàìÛÕæö÷‹°–js7¹pu{õÃñÛï Î>õŒt(ó÷‰ö[âRÁdQF5ûäS‡¹AÛàˆ±FÈù‰³7^îî¢#Úi*¦€r¼€"”ÀioáB, ã"çuL=“Šk#ûê±~“ü9Ä}”ˆ à=’ Å#_7¢“DȘ .’ˆ<ÒºüûïwÝæ4"Ö¤ó†X-CS-§TA.½£˜1M,Ïøÿùƒ—;ÜÕöÍÄžQ'’3L@©íÈOªdDH¾óùNw­B©|ZË–Ös# õJ8ˆ rV`óPySYIT§ q>9Ýi½5jíþ¥™ÚWÊw‘MrÆ{N’êªå \47Þöý’ÞJnB¨Œ¦2P fû(uïÚ݃, ‘ˆ¹«¸2X; ´AЊ¥ÌÆK®¹Ð?#+AÖ.CÖµ;‰¬˜’ Ž¬Ý=ÈbX±€œ2:?ç]û.ýñd)Lº¸¤žÁB"­”&Ð ŒF¡Q:µôgdÈÒ§ÈÒYÙªåÈ¢Pæõäû~÷ sј÷$âLž¥7÷ñ,æœæÂÂç–*Äœ`ØCG41M.Æ\:ýŒ¬Y› Y›ÇFÖæônÝëÈÚœFý?ö®¶·q#I÷¯ÐÇdîìé—ê®îrÀ8“Ù;`qw¸l‚à_mŽeKdÏd~ýUKöˆ"iQ6à!‚`l¹›¤ºV=õÚ4S3!ׯ¯¨¼×z_¦ ]žk/³Ž¹ãäJ29‡PrL£$^•“TœYe“½ð>« U{T}jøÚ?¹qÉÕážµÉÕ3éðŸÜQr…Ì($cxŽš[úé¡ èjÜ ŽƒÏ<S&À%† ƒ±ŠÛŒÞ8à!N°ªÃê¡«‡ƒ΃Û:w­# °;¡áÓC-„ÓuTº\)e}}ŸŒínz#ƒ€Y;ÃSAšD!tt>1i¢/I’MÉ 5XÝ4¤ÕÍØ‘Á›ã‘ADÝm ÞôE™Ò|¦L‰ž ƒÕm-HFg,}Se 2+ð,ÅD3‰²­çJN¶`V· XÝŽl 6v­U»#Û­CçõØ‚–£b3àŒI9мYÏ„×Zg”Ò˜r,SÊ‘eÙ{™€oóelæ@ZrŠ9×µhk1n&üážµ” ’ÏH«ÅñLxàŠ›R_¡…軚/zÔ p È€ñÄMÙ‚I*C2=—VǨ£1:L®ö¬æ‹ÃLøyfóÅÈj±±‹íÚCÝmÎ}j¬%¶%q i8ïKðËhHƒ°²¶AEM–a@‡Ä¼¸‹dP会H|f Ã|ì¿ùñ?ªÛE:ïIð#ßôâŒ3 äñ·7=LŸ\ Ñ… ƒw@©JSΦOÁ0úkö“‹´†¬Û›CdÑ"+°»ÖÒŒö™Æ!·7ÇZ‰l&Œ>0붯‰Ve9Tà Œ/]yÉn–Ë”‰eiÐÚ‰È×qÕÞŽÝDëöx-mà\õ4ÑRBÚrØ®0C%Ö?Þ”ÓXæ,'ËÐEíý$“æ1y®yÊY*¥=I1˜œï5`ÝùC`ÑÕ¶cÏÚö¡éNm¸óG»I*©¹d%'K3|}“þÝ­zÓü¸3Â"¡‹)™UNj«Ê dF‹÷…hMD¾«FšßÝØi~wÇÓütûÀÛ§y}Å9u)ÎaÊ8þa{¯e_££ìHêÀ”fÜd«c&™èù3+ iÈ~¤S£Ò²– OérìFGËãŽTéÙ…¬eO£#E"CãLHEÊt ÇZÎ{*£Qñ ‘h¢È™o³I°h¢E&­a0UF«!²–óqÃЇ{ÖΚy&`¸œCÓ.2(aèÂÝ¢ªÏ×`1811È62EH:Çh$*¢sLƒô“§´«†¯a9¶¯ayÜ×@&{· kÙãk(í³ s'þ®p`^òróñòŽ×èøÒŸ”!/µ9g J!y¥8óh”w“.<À-k^e¥G­Ôim^Ë¥ì3*±Ìì©×Q(‰n äR ÌÍZ-zÄ—BB6š3ÉD"Û%Ï¥Y8 Ä«µ†ÉñPƒØªá_-F_]kyÄբG|•ò5+"…«âkõ˜ñªŸ£[`„ˆ‹:Xn€%Ë´€(µŽa`Rym'½XV#Myõ-MY"µ÷¬]SÝéÕc’²î–WÈvw&È À¡æáº¯X‡KIÖ‚çÁ+#Rð‚È<:áAdá3º¨”ŠS"M VëF±ÎzìbuO±ÇnÇú§XGpÉd9{R L¤Yßôµë|™!ŒG²Hµ”„•1AÄ(¢™¤UV¸ÎúflXÝô°xì¦X뛞&F¦ô’Üö*b`,z]ó¹ñ®+鼉9™ ´‰> EF¡KFÛ˜ÑSG£:²6ÈáfìÈá¦/rÈ»³–7}‘C¢Ô%mYÍ4Pfm®çРRž‘)h¬“Êð1”’U.³%=+)—BšºÝ뺬ëqsh÷¬å}g¦[n®Ÿ_Ž q5#J?Ò¨êÏùK ™O@öŸÐ¤ ЬRR:3•ÉLD—%Óñ(uX5ûf윿Íñœ?2¢º#‡›žœ?)h>]”i͇¶ö»¿9^¼£bfIæm,-2–gàÀˆ ‰ƒ™ ¦°a X÷ gÖý͸Å;‡{ÖRƒ¥½T¬îoŽïX´V—Òh”z`iôCŸë=A@´†{pž‰`µTR;¯]Ž2ä$„ÎQ;9¹Þk°zh¸ÞÆv½?w½#{¦»íCë½NF¦.', ÃÕç>ÞCÊXŸ0™È£‘dW©á!‰›­ÑNÙé8§®>7xûç±yû瞣 á™–‘Ÿ{x;·V€žiiÔP‚õåºï”ŠŒ¤mMó2G>›I*%ÄÀ Z8«¬/ Þþåzd`5v­ ¬g\ _®ûN&7ÆèY‘yfè(_¯?þøŸ}Þ†¤]0:%etI0%Ó18+J¶¹Vê‰dÕÀµ]×C|í–z\ˆµ·¯]ÃÊ»;†l§ö$ÑH¡ÀÌ3LíB·ûû¯}¡éh“.']òaEˆÒ@0¸È1–:jíH?¦©‚çhÿµ4ZêÑÖØ¾öÀÐú°Ú4nåŒ.ƒƒËľöµWvÜ9"Y–{¡„°‘5÷$Á˜.½q‘ØÁ}Ò•u”5Òµ¾ŽÝ^ùëñöÊJ=SØúµ§½2”Þ4Œt¥âJ¿>ð1h@ºÀ.?„ZH›„d Ÿ÷*%.¼”–´¦OŒÐõˆ©ÝUÃb•fÿö…åv÷é·@?[/îï⟆OKu—«+Ú‡ÇߣßÿL×:¿v«øÙ­Ò¡ÇìiÄæ[‰ž’6ð­ÿò_~=ôçÛk¼ ÷‡˜:D¼–ħZˆ Aí¾Dg3&Ɖ2´J¼ºä çûÔÉιCg3–®ôZ1¾±Y¡ ¦‘]d µÏ:j­ëX?[»/Û…¤Ï—i5So}u÷v}}öö~½ÚþÜq“”Ó<~à®ÒÝæ¼¢E;û]¸_²Ñ¬îÖ›Ýp±ù¸ÿ¥1÷<¦‡4?++òÝ?þV}+ù-;]Kºå»Å£‡ÞBXl—ñ~ ¹Û;ïž®kЗÛêjEÃ.–óç_­?è[½þlýðD@‰Mÿ7ÍØ§wäX†RÍŒf^að\Ð rµº-’¦¤Ñªè¢0dÙ«Ì0 ¯q¦˜pa#&3sÒ{æÄŸ(7Wô‡²¦Å½,ž`úóýò/g·‹èæ•[w¿öy(eÞK%obx×ôÿòMÞTôSµ|ó}s8 _r!õ‰Ã{¿D¦~«¸V ^+»iÌ:ÍŽt@‹3RȯÉ`—1VîjÆ.ÄLnS ¿ý±ô;­éS›B. .$¹5<'Ò¬Â:a’M¥Í6Ë"‹ožÈæÄail¸X/.ôwß§Á—éûþú·ÿ¸üñ£¸êÈ_åÔÿzËŸ¹Ú_ðE:üú¾/ÒåûøÃn'Ï·;¹gûò}ùkó÷sºûý|ÓüøbÇ[Ÿ®ªÖgÕÕéÑ·þp÷PÑ¿¯æ_ZZÝßmªÛTû¿_žW Ýh¾>»Z¥åY¬rÞýúÏõª¾è­ü° /zƒªâì?ìr^rö6mÂÛê®Ú\Ä·~±Ø\Ð[‘¾ZÐ÷X—/r0÷Àâ<¼ÇÎ6lüe¨ ÉgÌ0£cùð¥ÖoÖñoŠ*¬+Îöp¡4{Áp©ÌK† …/þ«Û Ç—= ¾{Ñpû²«Û^ýe_•lsx=Êápþöz¥ªM•Öù¿ïý¼ ³÷‹[WÝýëìÃ*¥­«p'˜ÿ½gmŽÇö»Eœ[S´yˆWvs«Û3“;ñÆ™‰ëÞºÕ%$ÑfL´cϯ¿çè Úv'NœÝý§9G!·Ž“rp`á¦î6Ñ ×ËØ2‡FH{+ÀkŸ­`j0«åÀwN\t¶„ïø±MÖ3œ˜ ̹-¨0­Ð‹ 'ÁÏFôŒ#Iå–°\Õu «åø …”r鬖WyUW¬LŠÚˆó¬Æ3ü Ñ¡]˜ïiÅz?Šø%„üÃmµvÎWq«ñWÓC|¤¦yú©”*A²5`òÇ쥤`£¥àF}ÈUR‹9‹—[PsÕ­.B¶W å Æ›Wb™ÞW•J¼·YÝ»To‘/óì:‰ïê“wQ­hÆAS+J(7¬Åmbó›„ȱ©†ày™ó5«“›¤¾;”"§ºJ²åáùÅN»pÌáÃ4ÔFîÈyS§s,pÀ(tÍ`æžïîsRºˆÀœY®½=#À¹Ã¹E"ËãÖôtbæ¹,äXÈÃÂ-vä1?$Lt‡\P¬TRHƒÝSÕe5²³©@ãYNïêð…º~™²æu±V–â––Ëê`s,êú®éŸæK :V$ù,%øÍŠ ¯Š>Î¥}FËö-%) Q´±×5 ¤äAu ü’-åÿK"È­øû`ö/;Æ5qÙzüæýâèÝé»÷Í5RËÿ€¬‘VæÙœÓ$½;¬Ö•܈(»^FÉæÝÎÒ= ‹:âØ•`×дÑw7Ý dAfÔ¸jS-dÈ܇¶ ¼SÞ.! /¯ÖÕ•¼¬z^Ëû“WÇg'#GfìÙÈñ¬ "g×cpR¨s¥b®achʧÚ#m€9¼bÓ!áýã)D&4oR”9CKøWº7©`Á¸ü‰ög㊦ý§ù'Qưf=h j5_õAýñ”b´Èv´EU’gZàªÜ£¦Qwª£{àô†öHü‚”uïµJVb^ßݼÃÄ5±rÏ”~Ê\ Ý!"Å QN¡Æ8¼‚˜Gš;"MWz𺎃!<¥ÙR÷t ƒW0ªœ\Dkm·~Œî~izv¿Æý M¼Ï-_"»I€ñW"«uO6éZ€ìâsu¥P)Uðx}Ý.uu%Ò´û 4u8+Êz€!Ù„Òj•‹õÅIÇÍÀ®®{×`§,®E™‰tq#Ê # >B2Þ TÂþ\'ìzÑp—Ü•£Éª;Ö©…YÞ$¬سe½ ­‰Ô©Å£+ qqŠ(»®ú®_•ü¥(ÐÕ5:<)#:U42*39ªÎ­h,Œr5ônFõ?€¶Ù  1Á&dµà.fF»(mÕ Z  Ú\—L5 ´5 ¨$<þXÄt*£hw®Ù‚rþ)C ^mTm·z/Ø‹ÔG Û˼ÆY0$°’øéªÚíhííaô!ô”’t] UÓkBÄvýüYæG²(ȸw‹ææŒØÁÜut^€/ó˜Ë\ÏviÇî;[sÏ"36cß7kþJQ)H¡õ%LÑÈö½¤ë1R¹ £3’¿u\§ˆ´{ãX«ñxdlÆÖe%*lãöºÝ²È¸…ÿc1ƒßÁЉ¥¿Y ?¼l8Âh8B VÐ8)Eï:M õº¿ËDioˆñ3VƒT®+–$7‰ø¤€ä¥fê4‰JZn£žSÂfÄÓIË·IƒÙ•êkÄŒEZgXØÛ#¯ªy„cÃß'lðìe m'òßµýˆ…ž-BÏ!¡ëúŽËLjOtÒE‘& ÑlyWÃŦ޵--d…V€LH­ÈPå–÷5RÀ1ÿ÷“5ÖŸúŽMT2ðèr‹ëJ¢2†{x†xq@ã»Þ>©ˆÍsä6ù},ÈãBØÂ7-ÛñA3ã‘GnñÐrbϳMæÅÝiŠ–$ÚäÍ%Yûû6/e’¨Ñ°J×:(_±¢…÷$èPêSm|7Ĭ®ä´fÁ6­+Ñ7HÑ6ý,÷c¼W^ ´¥òãXų£ÔÓûßfoóY nCv(]–B`ÿYŒGfI6+(»'â³”ˆ|ÉûT‰ey¦3s,' {ZUô …¨ILnƒÒðˆÍ…#|G ËÚ7 ð"„r7;…¢Y-ÜùUÖAGÛèö¡ÿWM³)rF”?ÐRöƒÄ¾ïá øÃ"{¡ãb†ú? eV<ñt4D‘{Ä ,"‡FQìD CyË'AL ÷»:úŸ–¢>`¼ à7ç =¸ÉË(©Úø“ïT|ËoÉ!Œ<ëž4‹úr³¬HA^»#Š(}W”” ŽÍ}Ž‚å›Þž<[§˜ÇzxŒ0J™˜0‡4ô7Ì!ÅmÉ-{`£÷fšýJ;@žÁ@Ù'H%¨Qys<;׉y›òÈÏ“[À $ °zB,áÅ‘ˆ+tm>ªÇWÖ M1Ñãd¢®:ªÐ,øç3ÇpÓîÍÑɘ5Þ½à§aFnùÅ™&ÎñààÇe\C —¥È¸(Ǿ1ÆÓe‘.ìq'Z_• 0ʳ<ÊuCo1É“â¦06!š&ëDÛý/û "7sûésBMÊ|<…ºpÈØÍêñ‹b¡Q–¨;ŒPç".“(áÉx2—Œ-ªñðÏGG  Ù>Ð, t+ïŠfЃûñëö¸–†R¹(’ÛhOà“|‘R)o´¨$šÄÔiÞ¸Ù}›è“å+¡£E‰`4»¡Õ$º(“ Xx7I}²…ž$ê&žx0î K²êÂ2þ¬žxÍbiˆ²ÌK ªŠ «YX2B4Ó£G×W¥ |âyõªø£’Ľ>c h6–%]­h9&À4_óU¾®¯šÑôïøøhi•Ž ¥ Ù2׋<‰’L¾×öìm\O`“ÛÍt¯UdKKC øüíÏ–½è±p‘7|:èSÉäÀñ<Í2jz¨ˆ‰iÔ¶\™]y3–ƒeu³44j§ÔˆÆªæìÇǃWáG——¯^¿YXýP½¾ÅÜšj#_âòr1Ð Mæ¡ÚèÓ*6̹|%ÿ‡D“˜@"‚>âK-Œ'ú>70ç\×7¶ Œ{ènW©f‰†Bv?cý«Úd L¾Š’WE‘&·ðª½wÄë³s”F"ÜáŽRpq«yy]é°yšÒHƒ8ÎÙë<¿Ö`NÎN5PLˆþ€'»ÓÎø¶ø™'¬ÖÁ“U¡çù÷ýLj˜b~yÿAÜêñ ÍX¾Ò Þ\½y£ÿãüäg øW˜F®ŸÒâR?{ó“zñ±Ä¤Õ1æ-îÊkàïεsþ®¬ÓºIWТå“ts…ÈKí]Ïuƒ>§é ž¥Åéƒç_ƒ†Ô¡+=9¼¿ø]7ÅÇuP™(þ -Š; öƒgÚðoïOõ$÷ñL÷еÓñ1¹N ôru8 ‡sQÆBû”Ë_>hïxyqúÓ»!üDÃë$ãI¶ñ)ž –xÌXßú²ñ\ ô\U/?QÓŽòìE×ÃXgUM£T¬qïßÅqÂÄ!¾""¸¼¼Ç³yÑÃ4ä °”„v,Û±ýzL\} ëà™ÄÙ+áÇpÀŸò±„¯sì]× m ŸÆàäûÜœ…–O"î/`~ž;OTh½]¦±7ÀWG§`7ôì,Zׇú9ä|7±3$‹—-a`¡_‰}]RÉuÜT-@³#øÓ&?ýž Ø€(G03Ü‚Ɔ2Ð1“x¾íÛ3+t÷ª~EY‘ðºÞ,°æºh°S×u<Óò=üÎ%©)|b;í[ŒG®i†NìºögœÝüšé<ߣ<à }$³!‰½lˆÌ@"kcÓßþ:7 åª É^Dëz“³«bë+°á ÚÏ3–Olsqs^”y$æ£ëM×E3™¼×öÜ(Q‰Q¯i žõr›NpLÅ*ÏîJà»P‘ÐÚØÎ¤Ng‚îšùûæ§ìÖ¸^á^»ÌlœÙx|Ò¶ÌjiÛ_à'*l­pB‚ŸB iÈLBãÀuIÒÀd¡•w‘Ôܾý½IbüXè7f,Q(ÍBj²]» pù•¨¿Óí˜^Ü`ìîórÆ=â8±é† •½aS^&˜·»XWÑÇŽ}ÌÀ§¾'hä»gsº—½"¿ÍT=RPHêCÍ<¦»ƒ!mj[¡9ÙKpø”ÒLí¦?1Þ§²›³Ã–IŽäÙa Þÿ5­ÿ› ñ~6Ò8ôöü0˜g%ôa<ªÀ7c,]m›n RŽ”fZao»C‹ÑØ‹s˜çóa?öH‹ôH1»„<.ÍÞ^ßù!Â{î'Ø·=+Ôû=#з=+Ì·=+È7=÷âr៕‡=FxÛ¶á(ŸZLô:Ï(OŒ¶4•t(`¤æ\óŠ<ËòÀV  $®ÃfºˆíØsAœ ×o^©Kf¦þ³&X¶Ùz¸Â`U3.ð¹êœå 7aÖ3šVVëšíÝêÏÔXÝÁ߃æoã\mO·ö/¿|îŸõÍñöï?ëã×ëJ+êOyy­C]ü™êÀ—+ x3C˜¹"4¡À‰|‚àÃSRöÊñÐl–On™WݦêÓhܯJ®S´ ý¨ü¶“䆒¤íg ,iã/M‹ÞÅ¡äZc™æM‡ ‡M0‚²ºÌÓ‚ÕcF¼DÙÏUo_äïXìDWúçßÞþz|ÒŠúÓFÖÏ­QÄeZT¤ºMW9šÑïgl§E…q±3Ü¿ìº-žRFËZÌ̹…ߨóý¹­«jé0Ì<´8±‰°xäøš‘-˜Š öNay]Ô¥»«¹Š»ú*ÏšL›•ÈÖU j’oº‹ÛUúp6hú4_8𺫿ã÷½¿yJ¤ ŽêiÀ³{óÇ ‰ŽÞ^¶g Å)\ÙâuQNd»Ÿß¾;»ŸñtD=Ü$4CgûU„ Á*ƒÒù0mßsfÄ ½`Ÿœx•+îa8bŽÇLÎÈ8& ý˜ò\n'vÌ( \îZ‘3`¸Í´>œž¾:5ìCôÏdå²4M·“Ü_Ñ>I«eáÛ“4ã?D댧í½òúJ”/º›h‹žb•”ä/¹)ÿ„d/‡³“ö,›:³,Û ÷‰÷§âO8g‚u‰ïnìòÐòâ0˜”Šiy‚ƒž‰ƒرÌÀò³Ïn·{¢Ý'uòËäµ}&DzÙ$¤ê À . Y$§’õ¶T½²©Kþá÷Ý[gCê~S*t¢0>l;Pî‚÷=³ Fvöá¥"ÉК”¢ó»}ß ¬ØŒAIøžÇÝÀâœY·€µ|EÄwMï›"y>ÜÅòÕB”å8 T §Ìy8H^Õº¨*Z$‹ë2r€T {qöæƒÚºkæü ‡Ê^ΰW ü¤:?=å´Ðc&ëjt¥Ëôn0‘ç¯Î†9CO‘lÝ÷º›¼öÁzü«åç"‡Ë?ä e÷—’áq}U®É†ƒkÅ#ÆraŸWÜ“^‡²àkµˆeYààzÞp3 Õ î%ðµÁ),z‚O;'³ÓŠJ_Ý ä÷'Æâ5ô u½XØQ,(üõ¼8&LË7=¼rµØç5š]’g˜b3>èúï•4„«ý²]o<öÙOðlóÑDúGÆyÒ•"”¥97¿K¬ƒØe©Cbx¿yÙTJÜ2mºÈòZT‹\­ï[‰zÑnÌ.nòtÝ+0&I ‹ôÌ»ª*8©ûiCÛ—P ›—h™]V“7(Òµ,C)/òªÒU ;}XQ’+ SŽÀrRRŽðqÛuÐU\,††_xµöäìM)’üÍÂ(ä¦oR"Æ¡KÁx²MÛ¡žç‡¦MÝÈä [þVK`ÐSε½!ªçàa3ÖBÞÓžvÅ”Uèñ]/Ûv}|µÞñci±«2M‘^ØîÌq@Gí“ÛòW3*™£«û¤‰ˆ¸ÆÌ¢®åSÁãØæ ž{d ;ŽüЦÙQãWÝ Pj#àÛÔð6cÓ¯aˆ±á©Â_^¼Z˜ýÓf:üÜ,yH£àmXí:C­s³Wu¯ ý(Ñð|w’vSÓºa¤VžÈ öPѰR‰ Õ•Š/Øíó݈•‡Æ#½Ð[;eÄš¨ Ck¸á^)÷ý·ÜM{<ÅŠ3ä¶Z–ç¸Ü£ÜýûÈ¥.±0ߎ}ÇÕørÇSÔpö¤´Ø-&vˇ-·jøV_ O_ãΞZY¡ŠtØ …!ËOŠó; äiWzs1Á˜ÍÑ™ýkã¹säfº&ñȘ;»JI›QhN'ðÈÌõ¼}>”­Ü[ëD÷íÏ -ÏõXøñCÇ Häú$†KΙ#( lÇäOWPr_5þ”ïwÅr>MM«ÓEÚIïlõ°Fëb5>ð­iVE‹ªA3:ÍuêcU=%|æ[!'ÄdÜm;² ~>Ë5…øáà ôIDœðk‚Šù‹(×GêÑFßÅß»ÙúÜ|/?€w4$ûM× ‰iºzÆU4øûÚ¡E™ïfð™Ü[¬ÓJÜýµ„ˆmX°“¹ÜŒ-›‰Ä¶g„Ä‘Ã].þÕ¸œFû»Ÿÿvzq¢lmÇlŸpèÞl‡Eñð€fÈÌãf"íñk“`)ɾMZ¥Ê»«àÇ[áOª—åÈv²7¨DÇÚÞ;F' ŒnGç?|Ç&õc; RÇ´±ú.\Ó浉Ëûn>sþß›D|+7à¾úžÏ· _Fhh÷ã÷ÉOs˼~X ¶ÏÚí~&™çÏi3îÿÙ{²å¸q$ßõzœy Äûp¬7–ݶg­±C’czç¥Á*ZU$›‡ý&’EU*ÞÝŽîj13‰‹ÈD"ÈÔþˆ G&gì ¯ék£èu)œö^%5sm“Qbê([ 6É–·Jà‚üe™Ì:»¹ÏycG>»8ãì;jŒJ&¼·°¶víP:¢ÞÖ7öí¸…Ì›¬·töY%@Œ ð(tÕ‚o"˜-×´'‚™½cŒ>’*ϰøÑ¡ç¸ ÷”ÉÌ£¼]2,•ãy¡gE^„XžC¢»VâzŠ‘¹ÔFÏöQ'’a„hâ»gÜ[ý”±AžÔ%òŠò¾I®§“žÇKòÒT]~t„d¬¸$²œ`ád`G7xðœd£ˆ.×èvò8y£"¸§6ü%+¢|œ›8#XÈU »KtI*c›Sh8ϰ½â³5÷ þºAª¤$R¦Z(=} ;öÊVû´dY¡˜‡V9n¸ÏiÏ ªŠKçß2i«T›Ê˜DNŠ‚Œ¶‰ r©ƒ]ÛÃ~j$&iv’î2a‰ ªw: 2Ã*Ç«Y|Icýçۮƒªo;dȽÃ<µŠÚO ’_Q®þpòƤœÜiüôUÖîxke¹ðJÄâLtç²HG>ÊbŠ £€h38¯ëD–ËU£ºz™ `N®ë¦eQ"§Åù_u–U| &“Ü[Èošsr¾6ÿ?¦Ð_ÓۿƦ‘˜NqÖ‰Iê¿hH[G®ëéw=‰¨4HA½isRò(§ãQûm7£™¶hsâ­æÞ‰å;©– TlIHM8ª~}±$9©2¼eœºÙÕuÝZcž°Ù¥}yZÏ,³C1õ&ž/æªÈƒ¯‹ÇÂUÓ”–´Iã+U¿@ÐåÐ;8.Êæ$•Ói”D d‰_Æ=ªb5IY7·:,*K%ë5(FY‘Ã^ t¤J8 ¹Êê­‡Sã3  XÈË÷D«ð<áX_jGC¨0hÙ®/F¡eG{]úíÖó¾ïwhìšPG¡oZ„ØfYnê™±• ”ÇÄ®çGQütžçó_û@á"ß#iÙ<…Ò¼Š{Úl"Ïh¿‡=ë%,SY¾:Ž3ùm”ý÷ÿ>¹)ÃÝ-$ñcouö“HÛÏ6+›¬ piX;ÜÇ—Æ«ºE-*ïIÄt­ØB>I]Ó·S'±½Ôqd¢é…‘G6N]Œ{s»¸6°*^ìúñcnR’¸­yf Q«eð¿š.³Én;Š§Ð®_‰•û÷¸i.l‡ɺÕÌØ´QÍeÌXé) ïu[0j#£aÚAKª^‡òÃ{y‡ äY¿—˜Q–°ÉeQä­Cö~ !šÄ =+ްƒ‚ÂĶcBH†‰†8‹iØÜþȯ¬<ˆáÇ>X¯ÐA›£ê'üV¨:øUõ UܲL³¦ýÌ1þ ß·å þ6ÆèË7£nª,_ÞòçÓ/§»„‡üeë‹íã» ¯`§d\@ ð#ÏnŒóÛšY¶Çu\üóãâ;ÿ†Ö3À?Icœó°8ì¹.ÝÉÀ¿YNïx~OªK²&·ÞÌs0«*”tÌUQ79¢—ø…¦Œ»@›+áö˜îvØSú@ûÛSã\v¯ÄN¤NàôLW~Ãïy¿ûµð­ÿö’,/H òŠIÎA&ð<–A¥Bw ‚cGç"úû ÁATªÒ[ÖâÓqWdƒ”ÀãQ­G=ÝÖÒÝ•=›lÝN®b %É<‡ð­^?£z|ѰÂ]3„ÛYy ó¾U÷<}¬a¥7‚ò°Ëeâs‚Û `w-0*I>µÛ;‘Œ™þcûA"Û3£CDZßß'#Hþ³mÍ¿àEõž*V˜$µq šl„|bßGØÂžãÁº–Z±¦GMù(éÕØ¶)à“²ÿoÐ%a°IIí4ê’4 luG—ì¨3»`bžWd]~¨§KœNß·û£ x“娼Jk{t½±K¨¹…t91'Ïm¶…°d‡£2x¹âc—‰PŽ ¹Îñåö‰æíꞘ:S÷ ¢9›ESÅMŠä) °¡®[:F] ÜÝÜæŸ³÷t_u”¾ƒŽ"ý†=ºÿ|—”Dáó†,“N=0¯+Cœ5T,ü™_1ô¨¨3UôÊ?©£¸P˜lþL€ã—ª7Ô&!J ÙÀUYg3E ›WP¥¢ÂûZ›º9‡´T]„ãØ²*XVÌëì’Ó†q"ÅËe¥ÊÇ`:s•¨¹Dººã º»ƒLR ®Ð*30‹"!†[l6<õ® »ìÌGâ`>YNßW¢/jô⤑»³Mu+ƒuánbÃ=ò¦ÓkÖúÀ<–ܤnRM2e:áZ¡ï’›=Z†áe%…½#v{§ª.Pðu–Àj[+ÑÚ$ÃÊ%œ(“‚GYl#ÿ0¢®e^Üd8Ö¯&5ñ‰…góW¨\)>ØÞ9€—WX.nŸøL ëþK$÷}žÄ¿êÔ¾±Kj³óª²ð*ƒKQÄU¾àK’ª3[·±rE䊪iuÛfŠ3W\ó‰ Ó‹¹{øòitoêµb”„ð÷oûk«ÚÅm¶N Ю2lгû©5ËWvÕ(W8ÿwQ6ñUm¨t ‰Û¥L*·”v aë¿Û¥š½£ª<Îê¼Æ2‘2÷˜LJ¤ÚcèÒ§Ã5ERhpt[ØÒc¸,Ÿ †êèØo rƒp¥«fTM˿ʨ©HI –R3o7 tÀt5÷{ˆ ¶W•nlz¢ùï²Ëv„F6§„°æÊŒ9E6¥œ—¹GâŠö5.äKÇA•v,@R_q7ŽàvƒX‰«âºÖö³·‘èÐzV•™‹Íåí°ªÔ±áUQiè§ê›t¨ÁXAãs3$ ²>ž6³sÚ™×Ç’áNb™Çï|EÁaw¾Ó3MWËîígÀîïõ“bç7¶ÃQiŸ>/zÎ\I˜5js(D<ÖÔõ ,Øðàq»ßž¨ñ‹?÷¶ºî©7ƒMÕò1hôòÈÂ6…tTcã8¤óbÒ*h,¾²Uubíu=!^$ÿ0#PY°,Ï ýÈŠlgŸóT#Û༽cBìıâÚ‰‚ÔOR'ŽcÆQмGqøÑÖ}ÂÂ{¸±_™žó —ü+ëËØs¿]„øþ‹)íÆLï ž±kxøGåÖŠYæ±Û,ûf­šûܰ͛Õíad™æ¡oEªxŒ®…‹øA¹‘夈0FA l9vjÛ¦…|+IÓûEÀ{î`׬£*ÍÀI†5˜,/[Å–ø•ïwÔÿ)ÂÓ½^™°¦¼IþVãlc°Oùæ'0qmïF+Èé»1ì\!#ÀcN'ÎoŒ;¯7…“K 6ò+oP)S{§ðMQ•«b],3èŒZßþÔAš}±Âüø¨D9¡á¡ïK`*H¦n`/ FgXÛ¶]–%›-0CÛ1]Ç3÷¹»Å_ÛTêE‡ê¤÷–¥NDL/$Äq}/¶Ãˆ±ßBì ¸¿ºÕiœ~?íòŒgrDÍÚõ€ã–ðªhhʃ5óëX]”á‘æ 2ÙyþõÂ6Ó#ýq)°ó6¦sIUÞš®à5=á”×»/ì/qâgÞßy·Ø+ÄŽÆk£ò²¨*d°.q¥ èò »îc[Eöy|ñ’«½ò“°ßE‚ÈÔM>^‹Í&_ئéY°‰: §JÔ¸· †*Íœˆ¦`] ~ G˜Œ Ns³ÊÐ:SÛfµ`& 5*É–¤n”¸\WÇåkЕĉ³ÑaxÜv ¶ó{+P¿”«”¸_Úê~ÍV÷kË@[jëüµ §ú4¨â:Ÿ•¶¸vjëPEsúFÂÄ-¾$ Q¼ƒé Q@a&¥ì¨Ûn‘Éß “*_lÈÄ\Æ0+TѸú묑kLЕ ¶HåICÁ “]ÊÅd¯³žÆËñºMäZ•ÜŠÎbðù˨„s®’T#•‡nC6š.3MK\@7åçdYÀ椙š)®()­iN?ÌÔè>%QØå’UA¯ ÜQ#Ò”ÄoV*¡ ôSsŽ‰Ñšz’äiÀÑ]H 6mtÅÒEFBUäºRq-°3Ìö,•%-¡<'jЉ[y†Öm\7,ôŠ*ZrCäïÛæÙ_-Yd2ÇSѨân o*¤*‡ƒSá¬X¹úÅ[¾· yƺ=GÇØ£Ç—¯&à›>WIëV£»Œ;Š×ª*€ÇeÓðuÛ»\`Œ3m÷3"|¼º]Uàò#-4¨‘´PÐÜU~7‡ÔÈþëë±|Èx>âF3+W5rOGv1*àñ)º$ì°{öñ݇ÓG'g_UøF <6qj¹IÀR‰÷’ÐñMbéð¡bÏ l~®ÉͶÉj<¦-jHÕw€xvâZ‰©k@?ÿuï×9´°€]!Ô•Ôh7Âj'ÂÝŠÓ—UWJà0jçgj|ßeÕû—äV ì ý¯ÿ­Æw…jߟŽãN„ÕN„»§-«¬6J`ßåïg§jü´KÚ‚„–ÊT·u'ª&"š’%[,ê)må´æ†lJª’ÎNˆúû.ãåe°0MC»ÏÛó)¨×h½¶ŒÎ… “z_zÚüqø½å‚Ï®N"Ûã;-6(Ó y/§0ˆäÉ'D¼ö!Œ_Ý&º‚uU†u3~yÕ0}¯ ÊÅ›5ÝWkx®¼ÿ š#;âúG½fƺðÈòwº;ó/ó |÷HÃ'Ù*å$§æèM÷=õC•åÔ3àÐo¹ûxU»*Ø¢\ä5WBÃT)’/ í[^[(°Ûõ|ÛF(¶ÜØô-â…b„Š» 17uÉ­›½Æ¥´z<¾¯è9ƒ-?k½×}{˜jì›Ã´ŽÐÔg2œÛ7 öñPÊ(„2gøóÔŒ-³ÑÄ=bšnJüÝ¿et½S:€CÿгÃxHX5ÔOwäBólÕ}lÌæÙÈN7²b‹Øòb/ žã„$ŠPìšÈ·bSô•(Y–Uööƾæf÷™?_œ~5¾ÓRwïù"#Æ—›ÏÔaÀïRŸ}áÀ„º¾¾6˜Óài¦ë6âÿw]LašV?±g†ÚȧH‚lÏú>^A$œûJö;Dñ»ïg°¾Ã ŠF÷¨&¾+‚ªl9=ÁûžYž wëuð ~Ih >Ù$ 6bí0,”'³xM-9[ð~_@M¬ï¦¶â Óµ@„~¤Fò‡l’å ³‰ñêž8vùÄ cÐ碸?û×שÛV5ñùÇ—"`Úá~±€,¢0íßaU…%ÕŒLÓ€oÞp^Õ!9×ê°Œ)g‘Œ“g)(Ok jp”5(Æ€ã0 ®g" úÛ¹Á¹D‡~Ñ úé9ƒÖ6†OY-’N^ ’MLn;Eg)ødÕÀ´Õa`ëP0•5¨?Ï¿²»ýLf:£ð`¿yá¿seŸþãNÞÓCô] – wÂìÓrûf¦än¹™¥èW™ˆú±ÐÖÍ´ÃR4ó"_sî$á:CÓ­>3°ìÌ`ašÃ²%i†€í΋¶Âý¶õÀ åÓ¡¢ìzÞÅíkš!±m7¥fæt ÂLƒ‡¥ðnšù-“³Tõ08ÖQ0œ~M)aXa魯£)°%_³MÖ‹0oŠg e⨞~£­xså¯Ã‘oÞô¾9éåa¡žkݰlÏu¢L‡ï¿Rnœ†Ê@Sç/ÚcpÇë(oê œêûÐù—OSûJ ÿX7 Ö‘cÉvæ]›é¾Ü?$§áÒU†Ÿ°›¹ZÄ0,„ñ½¨•ÅÊB|Œ8Ñb@@Zä÷Ïßõ8Ú†ª)ŸurIÃÏ0UN'§£®ïô½ xªž:›´*Ý”HÎ L«ú¥ åi/L5žÎ, mŒ–àüüëÉ;EÝê©M›âR5\Óñsõ`]¥@UhX3RflË0ôž9AAsá@Ùóç¶¶ºô’K9ÒsÞç‹‹ïÃBÁ“…`e¥Ýï”aÚˆào%_'¸¶Œ²ÞW$“‘¡FÌ8†“lþÑælµ=EåÅwÀ²œ侜¢âï5ˆ½>EãD(±(Ù+‚/‡Ûö‘Ä d[²ˆ¶˜T£[¶«(má™]w@%ªëëdªËuÖëbIÏÒ çãb[”˜7 ŒSËK<€i+c(? 8á?B¾¼¦ñè̦ë&`œ>i_¬Ah5šêlf±)Z¼ÒI±·»•îöÄÙ¿þŠ’ºõhªmÉã1v“¸I•DQ_ëã£jU¬·E·¤¸œÛÂÇðå‹™¹Z,×›™­ÀÙ‡‹„¦çss×ðã¨rí)¿ï¬QþZqÚïñí¨Æ,‘ 39Eç7kð4yEÔQD$Í­´,Ë…ÀØc”Ø ƒ±t@²ž[S«{Ñ ¸óùu5š(ç©Ùn†2Ú $®ù jà+Æ"ÍAq>_þ5—3‰Š?˜F¦U~úþÃé%ê::²É¼:áØÊÄT&®ö|0oÇí¡‡²_ü_È¢WzS& %ñ<Úy¿µË"r(½¼Ì"/¯®"ý3€ÇÒHˆýø®O2G;îù²è>–L $¤ÙÖ"éªr¿°û°¯ª¶ÚÚ훑I'žDp_Ò¿¸q>|š[é°²6%ô‹ŠKéußqk*.ב¨²“ 7Ô^­çYU9vâ·þÝ|Ë^¾íUG„°2 ,¶¥iF,<ú÷ÿø¯o¿ÿŸÈr 4z•Å%¿þ<ÝhkF-“¶Z٬ƅ ‰VHO™ü]_‡]ÐfÆŽy,¸¶XAËŒB8“9‚q—Q”SÂ8ɱ¶™L²<#ϳEíÙçž{ à P§GN¬®¯«m#G.,•`œTÐHKhTÎÉnþ8Q¿f6¦+‚ÿ»nM‹Ö»†³pá7<éf7EÚƒ`o‘\âF) •­FÅ–¼9Å<ÑŒP2%êUˆ[:Oб€ÿ'„FӞ昧³#­—ÐN+wNgN döÛCagíçš ÝßÀY¾Pé=ñ/µ=aúmÀ;=ƒµ³¸~]Rj>Ú}œ6§3Jå?8ÆmE x9*ªÿP­¨è¤V¡4¨P+%IuÛÞï:ña ¼ÀªM÷÷Ýâß³¢SùŸMYHsøûlsöŸúûr¶È­7aËOÙsB^¿{EÄ«„nu;ý¢ÎŸö͇»«]鬾¾,‹÷_üýæÛå5•AΡ²o}zÖPh†ZKEUZ]‰ˆá,aH*F¦0öê”Àçmµ,æ; ì3™e8ËÀ*Kˆöy–³L‰Lä”3ÿFRâgsÚXmŒRÄ<¡˜ÍÂÑBÐý˜m2‰Q[Ø2x1Û‡¢÷ acì"fõ-ÓSvȆýyü•Èçn[¤£nÛæèÀfè'hjß™çŒk±§©ekZúsç—Œ…]ÉBMrèËÙuÕ6tLbH`Ä#¶kÏQ«B*ÄŒPŠ¸ÕØÈœ$MîrÆ3£U¬oÕ^¹/žœ—ó_çß|óLD°ZG9HYØ/ Î Ä Lîd°ûE"ŽQ¢A¥b8÷!¡wØcbpf3 ô`dIfqÎqÆ7Ê1ójg‡í¬_|ÝÌ;4¡¿Ó²¿GXןî²ùÌ&åy¦¿%ïVÞ‡CœK~¹ž­¿²¾NÂ|HæC(´Kx‡Ä•¡ç$ùjy›|8ÿñŸï“¯îŠd³L楪þu×VwÑ7ÐàÚ«_¤»WЬ÷¢5S a<å~ý”°©›‚tÈ”ƒ¨"ÞœQ„)努,+<œ¡¹|ê 6ôÇW[/ôËqü:ݵ'b ©‚Á¿×|úПÏBÔ¬ˆyD¬“ù\[†„4À‹° šÑc’òj @,Ÿí }]Æ({)ËgiÝš}x MÁµƒÁVjM¦D@ª±ªE¦x¦4ÇØéÜx†œö™¥–2'ÔÎÌÐÆÇÆ_V#lÕ l•œÔþb@¶J›Er¥3¢#AZÒénÝõ´LëÐ[Xã43ÈfØ Í™QVÚÜs¯4sÂ,ÏQ$ð«5ÆÚõÝkÐá'».)h»¾KÛMŠ8gŠQJP"1aˆN^fOg›°¦L ƒ82os¢3®€#s`Ï‚j%9ñ™r3 N"#Hå¿BnrÍÒlZ.‡´»ý¥Àn¶IûÍŠ,g Š( …”ŽÔdä-²ªu €Nê´àÜGóœé13DS¦|ž+l´Bý:¦ƒn‘í@·X5=²íûòêü{»«·Á><.²´ÕÎØV#a`Ÿ MÙ•Z?h^FdD±\ú,3Þ…59夒ˆ„Ø„)kÂÕeX½®ÑÂâ¼Áâ¼Ã<šD<0_÷4´… ÐhJ?åKpõ$ctºá+æ» {qŒñ1šÑÀ&¤Ìˆ2ìˆÖ, ÷ŽçÄâ8³9Òiô ºaÐ èŠyk©¤îù—2ðó4Ò²ÈÂ0 F"°$ŠOßœPl.Ï~Þu†B Y>àœ[ŽžÉrdrë´6Fó 3–#ž9-9—úÕòaèí‡eߟt{ÿ™Á²}é^뢉/1:Q@@¸š>¹üé—]wHÄ]B̤±F{J²ÌÁßžäÒåŽ掵¡ þGðëâñA0¶‘ÒíúcCãÒ½¦E`¨)Q:d[ÆrJ Žêq«zÞ%—ƒ+2Ï\8‹!-O˜"„Êr+È$[™!yE_¾U3ñ²ÚM¼„> »ò\r·°«ÙfH~,ü¢ÊÑút(®êÙ˜m;cã2x„˜$\# äx2 ×CÛÀ €`Ž7ÄI„Ç|«iæ¬æNA»­Å^¡Lk_9q ÁõÇ$MÇŸÔ]?D‰áâÇSâç ×Ó¦¥±pd’hÉÂ9&É,n ›ñq¹+,4æ2^8Æ ²YÎu,ÓL)o £œR˜Ár4½‰ït·ö+ã\«äjµ¼+BÑC¡°Úa³†ÂýuB’™ÛHÜ–m!HütúÃ%îÆ“„êËÛY,ÆÚ—ÇΞLäÏþ‰GÙæoKI+©nŽ_üÑ „¶ Ç>NýswôfÓþû·öÕmó+ëR۸ίÕÝ¢A ê#/Œ¿ ¡^ºm=Íï[#°j¬Ñ&m÷AdiŸ+N“+b 7ØHqy·ÎÒ›Û"­cR‚¡ÄTAy)ËÅØØÖ'í‰ñŽ€U²6ÇÆg.£LÅb™“Ha–þÁeë‚yøÈó_-ü|Û˜>Œ?P«F|U7âíÇÛRuÑj'õ^Q`娙è_êV³X>têeh{™«II#…7™~Ť1ýáž{™Jܬû;Ð:Šâoï²úyë+|¸+ÊÜQf>3믺`y wzûÑïÎ †qoœ}ãÖðOñff߀Q~3+Þ|ýi)Я”qñ¿O¹·SoñãóiÒL¿+¢{€òB#ô+ÂÏÎΊ9uš4G¢@§O•¾(ÂÂÚDi~Qœ"4Uúâ¢x÷ŽNl¹gØÿ©Ò Ã{㳉Òú´¼Lÿäå ™Øx)ËWŸ˜JšÈ‰Ò§§¡ã~Åj⫇€¶Ó‰Ògª8›Œ8EO ʧêŠ,Ê_™øêgô¬ÀO´3çßAÏOmü?ªú+žÚø õ]!q€üÄο8C 3Ó¤1b¬P`¤§I“wðì‰}‡© ÆbâYK‡ámZÏ—7à’M|uðtÃÍ'JkXåÔŽÓ˜ƒ©¡ÓZN Ó J&ê:AXƒôD¸)PöxvZ:Vß|·¸~ÛwÁÓ²°Csþ»¼â–S¹v¥3Wrˆ^ cV›çì{‚iÄŒ D±H0#RNY.n?÷Þ/É~ å6Æ!é Ï vð|¥òþeBä,ÖÙ4äË2h@›õ p‡ â9PÅhû²(ã!\QC±5¹ÈÀʽ2ž(ã¹÷‹ l'tú4¦Ó•Írúâ#NK|$»i$Ç2›–äxVÓÉhɱl¦-9ŽÉ´$G²˜–äHÓHŽe/-ɑ̥%9žµô„G0–Fr,[éK>ž©´$dz”®ð†Ò’ÉNɱ̤%9ž•4ÂcI#9–4’˜HKx< i d ;ÉÑ죑Ë<ɱ¬£/9Šqt…ǰFr,ÓhIŽdäX†±“Í.Z’#™ÅNr «®íçgðÔDz „T‚)b“ nòMNí…ȧ”³Øf3 Á:ˆ²\SÉɱ³$¬dØ¡Üï¢*¾¸DFŸr¥öñ«±‹u$\þÓ2DÃ@qü~ÐÄ¿¾wÏ‘± ^ÜGIbŽO*$—9ÙXoÁê;‹¬ð»³^ÚÔ—³Åq¿(¬¡–E5×9_.Þ•÷IË?'¬«ö•o/Ä*E­«áò´õ†‘s­…ˆ)LñIɧ67 >&ô˜‡øà±˜ÃÔYö2i0¹ Ç–6³Ì9e2包ÿú&|Äæ&›ÅU¹­?Ü· …ø¥ÝG¡Ÿ·=¢ªëØÂüûmp’·õ¾ZCLIÞÂÐMÚzptu^âsÄÄ”}ä››]‰C8BÄfáW¦:ÂÑÌ+&ÍMŽÝÓÜæ‚ç\ÑG „Ú™#þÂjåˆã(é¦(ýÓAj›'à°(—R†lXO9—²´ÀJcÃ3ZåÀ¬÷„™Àìs#HæxNU Vi(AÏ~Aƒ?Œ) )•“°“®‹YÕ$MÂcá6…ô>ÃR¸Ü9OR’(etØdeFîNU•÷ì nšÔùÐçn›Ê£ûs÷YV›™™ÿݬ‚/wóÁoÖÛOùzŸ"ún4 ã?Ÿ•çz÷Ѳâ|¹†[ÍW±+ž˜¿Ñœù}Çx {ãPŠÅmÖ‘Ë«á-’é&[.–Ù2ö2u {vMØ|.a_*"»5³Õr8(û'H„ènÒ{Œ’¹›ËbvŸÝåõ³å@Å|09Ñ|¶é磛?”³¨Ê„6!¡ÑÕæÀÛEbÔ ¿Ë8bʪòs¨Ï7d vvk)ŽÔŒL»ͰTÌö/Œg" ©+*ó–ï‹5Äë>WÞÁ—h;G ¤§Ö­fÙ ÿÇåûåÕlñw?/üê²Â:tNÓ5Ý‹#ÔÆ,[ÍÜÕ^`y]>2²™{O¢w£W‚G:Ï´ƒûÙ§XXoí"ãk«i‘Ó5Šb„))Ô¤ å3Z|eÐ;ð–Ëa¤Á‰T@®©Ïcœ¹ÌJÑ!Æ6Á¸{]Ûgêà–[Ÿù,Ö+™i}‡ ÇÍ%F\³pø1<“¥_y’{lòñ† –Q¤rÞöIL("TjŒ‘C|ôž…ËØÈ}ü†o–šy Âq–Ðvµ]¢0öÆ\y³p_ew ^Qy«e8Ëø¶ºÅva¢KÈÂùµÙ¿K§õsi@Ù²ÃVYs&Ž%žíl³Y%af“ê„âc†cAWˆ´ŠPesЍá9ãþô.3^P˜—È1…³çKfÜw~šÒÓ_~ù¹Êj¯¶“û%û ›U(+ $-QÒž×߬š_W~“wKÖÛ’öþ}¾vw·EòI•…12_¾bùçCSú}ï…‡&T·´j³JÛo !ˆÀÓH0ˆMYß»sÆ‚‹ ^ÍÇDS / òÊÒ0}OøUŠ9*(ã™È¬vÌkoBϦRïÞŸžÇr~…òPªºªV&¥ÞgÄíòÓ÷N/Q7W{¬þ­lLA¾ôQÎ^|ž´m­âïÏÏ/i×h`õ‡ú>stc®öËCèGQöÃiå–W‘{?iÍ5z íÚïk:PˆñømÙÀ£×涘û˜—ŸëÕíu¿åzáòÙ<2ïÖ©èýîÝâÙó _ÒUà*ø~gTåàîëEUµ}#Ú]4¿¿›àï©jÿ¦ûµÿü×?:)D[].üæðmºWºÕýí|ðV.Þ]÷qÌñ‡ÕÞ͸UØ0ê’C»Þ<ørÝKÝì7óÀ­V3{½ñ÷Ã_¦ºì~e#Wüy¢íRò!_·n¹Duõp•îæ›Ù­w3óí‡0B~û›m–«u•c¹øèWáçaÇ'âhô³(+Ö^ø©Ҧͱœk”I 'š0pû§œ–¸s³eÐþuáû1U±*†1ç˜ö…³9±L8b¼æ$¯pøÐvEú‘³•ŸŽslßcÆŸqubÜpüÓ¿_F½Ê®?ô˜T@K+ µˆGn+Ej•x:1e¶Ïj‡”XÁõãJÐ_— ÊÖVÏJ&m¿Ï¾†*¦Nˆ DGý¯ßÖ†³ái:ÛË ªŽèÀ6=hÓºX¬ÁuÆõ4¢^?k›®ìàpedˆç¥±öÆÂ¸DsŽqF…£ÿÏÞ³-·#ûî¯ÐãÎTIÆ™srªr™Ê¦vœgw¦öÅ Ì$jHÊvæë$ÅH[r+³“ª$b7H‚@w£»ÑÝ A,=i¬Ãˆ‘}éõ¾|zªÛo†ûã=&·›vSÆNB2×§ŠMÉgC'Ï(Gœ:cÞUeŽ/”ríC3‰#E¹'#JbÔºxšXû‚îÇ2Þ+Nö‰s0ø¬ºj å‚È) ·¢Æm¯‡ª—ØmE–?…NöôN¤®ca=­Ãä¿+0ÝrP‡Ô˪`žoÛ¿«ÿÔM±]í–fÊ =ñÕn“ÜMÜxžÎWé²×¢hý\d;3,-À$¸ßÉ ¹·ðJ“¯¾­uUÈbÕ¾lpfRSГ«Ë\‹ *U—EfV¼³}D~uk#®W"/̧¶Aæã¥X­\¢û"Ý€©›l–÷Y·]9Ø—ÐØÃ¤#¡‹y3ãŽ]bÎ|ÍϽcŽ'°/¨&„sèëX#.B&}(#Á<êqk. Ó,Ò”¼G8ŸÀðó1o+0a? ÷Ç%<üDÑ#H«ŽC˜ 0Ì}bì²ÐØeÇìÃ6„0I_Ìc4b¡ã8Dj£Akdh+2¿t@¹Ï)5Ö™ÿŒ^Dz}š«sðGsœª7I»¨ìf×™¯+É¡K“ÜæcŸ œ†å=ŠÙ*;xß;W!—XÒÄ#ŒŠ¸öU:0³ˆq89U#ùtáû9}Zq³Þ¡¾“—};ËÏ`°Û|s6 ›ÓÐ/Ç!ƒ3ƒ™|îâÒIÒôÁá" .r¤‹$Îgò&·ÇO˜†sFÆqyȨö|?Òa(ãHÈ(?:T:â$Œ¸ï³«§á£s¿²´óð²=s˜‰½†'dÑhì+yÞnö—[ˆÜ®®â\~ZÀóªëuºÛmÀnÙ$él…?8JÇIIýä|L<Ú¢ó8Ÿ÷?Ù‘åFŒb?cPãè8ï–m½¯]ák„îuDˆJp­°Y"eô/$ »Å$6lÀ¢/[àøäë?MÀéó|öÁ|ZõrÒÙ€àÆZ– >´Ú+ßW?ôÐ}Oͼí:}_é:ñž{7gfxLÉòúåP<í0ކb!3A…0£ñ¡%DhE O±‡.Yî(ÚwÒ5üþääû9¹¬Ðw<ÃLrðH9œ¯Á½Pç@Îõ`wÚ'~åf['w3c3Ìõ ¢×áa>gQ¤¨¯ãP∠¡#ß„…8d<ò9Å$x¢ÈÙÓ;d#wÆ@±!zÞ7J3ÁåÁ¼œó¶ÙàšËõ®ÐÍÕ]‰}xˆÕEr§ï ©ê‘ß ”Üg­êQÐzÞtܱ!gÎG>ÊKQ¤à{1ò)$ö»¶¥e̵@*ô …€ª<+•‘H¤ ›`£z[zÍà*l&ã3 óu¤î…Zë Þ꬟¡wïÎÕ }ÏA\ßú—Wf¾×¬Ð/^¼aòZ7€^‹YÞê8Ã9Ö+¹Ëô•$|â?a!`ÞéÎÄj7£½Óy1€_™á¼ïʳ»7öÅ‹Ÿ}õþòÕàî_¡#ß• [g{²i  Tt¢Jlr­…ÒYîB2=¼3—bÓ…ì¶J´ïLâ PÁèÄÏiºÊÏ_ï’•ºßÑ3à辄áŒû- S¶ŸïÂá õ|Ÿ¡A‡üH)cÈvæû ì*Hy^,}ÅWTÁû¯´ò"Î7¦ÃÜÓÖµ ôKœ/õ w$Z/xò%Ü•pvÄDîɧ,ò†Á÷ ~]Ñ«‹÷?w²Ù#]¦F ^·RbëÆ8âSEøöÀ‡„0<[ˆÎÓÕÍð#s‘¯È|·vAU’áç0ÿyš~Úm¯ª€ÃÖ¸4ðÜ…¸Nó‰Êƒ;oXƒÚçBlg{Þ®vNÔ6K—™=Êo€‚³õ®Óµó#?w;lÝ©W"Î]P+{ˆÈ:t`iVù¥­5ÑÇ軂¸ÁÔ^ÂêžHfã쎲ØnŠ\å»MZ-%/ËÅdn“r/ñƒ.nÓìÓ…ØÛ7sÁÎ!ZØ3Ÿ§împ^¾ª‡)ÒÅZäEýää²u¹ÑEë*_GÍUœ[r‚Ù¸vÕ”oj W‚nÃÒ-TY6«LýZ¾8Û€ÿz•x\S®r¸6÷ô…€ó°«/˜—¶†ßá/Gˆ8Á‡G[%†~L§B›uB\ç’bD8 4”G1e~¨˜"ƒ\×Èh±”!u´/`ûôŠûéY‚Ùç­#}ñ˜<Ôõv¨ ,wuÂ!ï.ôEù´nkÇ"Ÿn­¼^nQÜG-ãO°ž~E‹ðÁÌvìëñC÷ŽjÍo/KŽƒ~×`1Ø.SOï2]íÖ›¼“ª¯tÜÀø‹åvuÉ­žŒœ`†¼#·Lûyó…ŽlÂBdŒ&úæïqrk->i0»Ð›Ù!Ì%ºFBR&ã@S%0÷%7†'e£€û1Ò‘¦¨-ºövÝÿY›“ÜsÓ:ßËi~ö‘.CD£Î˜6ÎH7*â1.ŒáÖÒäéÆÝ8ù6Éÿ³ôð­N/Å8¼<þÞ((N ùÜŠâ8¿éï[w>îVÚ t=}Ô±ÔÂ:Kÿ/‘¹jÀ‰ˆ½¨hfÿ%Ûp൲⥞Á¹0•–)WP9èJ%Ù*ÉÛ§M—ˆ|=¨çÎ2Bʆ_È55}ïTàû^GjïûP°CpSŸc(p ŠŽŠÑ}[²Ô øŒÐ…«HÃDx„PiÏc„+ª%A$ޏ‘ãŠÅÔ«ä¶aüß ë fаÿ(Þ3–óGÖ6=ª’ˆCg;²šÄ7´•TÊËŠTæ@*=ž1øÃØåWŒÏ/ÞÿÜf“>1ööR ír‰¹cÞê“«²"öÙŒSSþF\'¦Gþ‚P£syÎm"%E ÑXâ åiâ3Žt(|1M}†)ë÷·ªt8ÙG×åÔÊ7œmò|¾VF•<\¿øúid¶ÿ2]¯Ë2Ã]æÆfŽó=NÄHTÖM04T´ËËb·ô±¢¾Ûо­yÓï©åT â 1²~ûáò£Î·)Tè…åñ…W2žŒ¥âUK;À[?ËçÀõÉV- Èuºâ«imåtµ‘›®»­£´ wp"µvžÃñ%y~½¨ îF}|IZçel xÀÊN¨Ã;Öú¢ú’YaV=¿Ü]þ'™¾+có«¦3Õp6ζöhàõ{ûàý[Û:÷{D}O»8D—þ·¦G©ˆ®7o<õ¨/©ûa8„y­Û³†â\á6,ôÉŒ†!óŽ9~¦–ŽFÌ;»Ï‰ŸXS¨&Ripb¬c r/€*½A¨¾¥`U‘áF㪆zŸþm—P›ü*W èH îÏJ©Ó¬ɫkDÚÔìw¤Ý(_TÜñØL½#Øeü{&9‰b¢8;&iß¾Ù€´é¬ËF1†7¶HH4GLrª¢ÐQ ú˜Ö(¢ÔX+Hò:XÊúå×"Û’–²b7(. ÿ´µ'j— Ê ââ¹1ý¯|S¯Ë;ƒqÿË…ùgñSš'w¥EŽBPZÔbK)í”±£\£÷8[q"ˆÖàê¹¢Öf%1v~Ô{Ý ØQ_Ø%vïÖsÔ Q…nqLKÊàñ4_cìÄÒ˜èÉ?ö‹£…ˆÓžð€[1᪠‹ÌBŸ傾Õy|ެ³`á9ú*‰B‚ÁÆÔ\ÛÍ d^+tb"b?y|ë±5_OÄp:´œëÁ…Oßë:Ið@JI°/+’ÉV6Ä*ûêö÷9 ½ñYà¡ÒDŒÎã[¹+L'gc8L—»ŠI‰¥ÔDIcŽÄB£ú+x1öWˆ{ŠëÔO¹l,ÔÎþ­t{$׌ÞÝí§ò¬3¯/afácÞPw»AçtÖ¼0ÆúUõÀ+c½¯oE¦;vÁàm¥-Pf¾ìˆÞÊäÅ ‚ƒÔÙLÁF¿Ïo¾ÏÕ÷‘üÎ…þ¾{úl»ÎIâš^_¾Ñù›T«ù{Ū«Š¥Ü<è7$»çªö-ózdF7ÜÆ¢ø ›üZë9¶e[l·¸ÎÆ£JQîmƒ"?òˆöC®% ƒH„*f*8`$ðšxÛ*èl ^ bÕ/ëØ<[æ…YÖ:CÍ«òDóešª²PÊJ€ž¢ÑyËÍltfôÄü“uÿ”­¼ĪãõÍûOkŽß0_ØGB~2jç\oL'ô|ß³‰¦[#%ã4[Ï¡ÜÒ¾Ýs™ÞMñW”5«Ñ3êw²Üj´Ôüñ'ŵòàu7êmc¥Rbk€,]­€9ÇÚ(Qˆm–B8Æj¼U²1 ©óñ6ÛÈú´Ç”´;Ž¿I”‰©#õ×Dq¦Þ!‡à9´ œwCMöŒé6‘X€5_—¬½øi%>ÿc§wÕÆ9mŒÅ÷o.Aì¼I•^Ø_ÿN¶?–V4Y¬ihMýWVn•&%uâïvÉ$þR»­»Å±òͨ‡zk(lqùÛ*)ôë­p7Û»":¨oä\¼}½Ë¶rƒZ¼û±q8\d¶½Ãý¢£1Ô¯ëÕReÌé±J#í-éô£¤ê‘»Ú U}'=ÔÉ2\6¿ ŸnµJîWÃk½Jîæ}¨y^ZôÎ24²Iÿ¶ƒƒ¬¡ä-F…à…ÖÈËj¿f´ÁÏ׉üÔð‡³Í/pÐb1úŒ!\géúWó!èg½µbÐE^Äkç %j¾H–鬖ߵKÜŸu±Ëù:Éæ÷îƒÎt¢ÚàF¬`}ÓÒÞktW//¡]J©•sš>¡y-7éº!«¦¡±‚õØ$o³(µÃݧ-cXš¬Ün¬…KUøð¼°ñá5}ÛŒ³|:eþŒ0D!Lãx~\ÒìµVL{˜Å8 )ÅQQE$RA,ö&Gû@ŒÁt?›gø 7ëM,—SKŠkÝ8³ü)\ìõÀ¾»¬(Ì)î5¯¬¤x¸Óê‰Xs¬—SÑÓ';6½Ÿ^óp1ÿ!½‘l–O£&¼ZLW#Æ“ÕúÛ a[|¬à½ñ0cç·hé±ÙÞY±2BYï`@Z #œ¦W;·žzZk]·S+õgÆä˜=›{Öš©…NšQŒÃ8fÂ$ŒI…œH!‘D‘ÑQ#Ž=DþÔK“4j²_ÎÉñMHŒÎ<‹~tÿ¹©|î•mõêDÅtqR`°™ÐcNöž´Ô§DSÚb*b„e#ß—*ð¼Àc a¬"p,%óñ¨(ئ*_é]ñ|Å—j·ôºØ'ãÖJÓ„1-à+Íçe~wË¡qWÖƒ=æ#.¬ §×¸wkÊñ>á6qŠËX‹ú·Îlb-`ím‹à!^³ƒÅóŸ^ôÎs—fKk‹”Öá}Áy{–oÔ(Gν”Y²çyÓâÓZdŸÆ%Ç›ôFg¯²ñG¼b;Ü.Þ±:ÙàBäùe‘fb9.ál»bòE£8˜Ÿ’âÝxu»÷°»ºÑÅGa†u´ÕˆLªÑÉ&¹0‚m¼Á~Ñþ›þ<>îÒ"‰“2CùU¦‡"èsv|ïrß"URÀþòð!‰™¾’Óæõ¾$‚ó¾ûت7]qÀŸ†º3ìß”®Ã¡>žû„‘&Ü‹>™Rp¸Qh"2@qKAbícŒ—œh-¢üPH/b÷Ù:'¸Mø­å§tgm.V+‡ç´NÔ"íAAåÈóJ—OJ‹k½Ø?£PVŸ" ©öÉïV6|iâ·˜ wq!8nÛóø9¿‘Ȥ‡ÌL'ÜYÌD…œÄ„xRÅ=d2&Zr/Œ…Äü„yÞ“×»’zss*‘á' Ê<”3Ê ¶ÉìÁ¼œâöF¯E·F1D§Û‰sçßebkL˜üüïÀ“!É.ëÓ>HØ¢}{üÕ]gþ§3Œ}QBïÌh’¦Ì™’™çÆGØ‹ÍÿÒI`¨IδG8ò8Ršý·ïá:GŽ‘)~äF¿ü_êBB-©Ãù<æ ApOdV@ÎI¤º%äžx†OgIzÒ¥âô˜E–H^RKK²Ëæ·’ã*Û¥o3ø0 £×ӜҥÌA ¦-uMÎ[ýrd¹ 0¤` ˜?G”–ˆ´X®´õ3bh 97D>'Â÷pÄœ0é…Z«(ÄF`3ižTf»ÏFZfén+T»Â”d¶»J®› ˜òÀ Ç#z%ôVGåȘç6–ûìöæ¬q†’vîýrÔ›ýeN 1&è2ZøgVª¹mkÉ’dŠtk_Òª¬¨â"µ‡å5µ•Ì@=û¡Î*ùïßü0—Ž˜!g Qî¨]v"²È¥O„ýL'ÅÄe¡&ŒY/àg" ä?[mãœüû³”a£d˜D²‡þë‡W¸´Ybr@*ÈCj÷ºÒEJÆ¢ÃÞ®cc%Ú.ð>nAÞ@eØe¥ŒÅ5–bÒÊôø£åx]õ¢…UÜS —Çý:ük8´*<·€=8ŽÊ.ËÕ®tw•Øf¼Q\–¤šDV48Šÿ©L¶‰ïÍÞ PM!ÛØhü?Ü™Æ"wë­ûiÕ=æ¡EµåÞA›É0ÊϰöaÕ«­¾ì½Y›ÀòŒwþ±ÓÙçô£Ÿ¨!ë¾éòzW¨ôv8ü—`ôH÷3¡HoXéP•r0·ZTån°˜öïó ǺU¢­B”1³s›ì4Š8/§ýR‹L^/ŒHoY’ÆtËPö#aˆ¦Û¾KS{]ÆÆäÓm«#! 0pÐ.·«yU ¯~‹ívUíÞ×Tµ Õ{Úê;-w|ï}O]‹ÍjÙÜ×ÌЄé@§ì©e±‚ñÒ‡aXäüNv¿ÁØ›m·±’ø¦þŸ½'mrÛVò»…>æ%K îû~U‰¸R•ä¥ÖñV¾M8£]¥ÃÇüú€‡@”FòŒ¬yIU2'ÁF£»Ñ‡šL?W³r¨Ê .ÔùdnÊÌXµÚTÕLÖ@Æ_I2UO€óØ ã¶Þú½ÒªÄ7ö;¼W>ñ»«ä§ûE  Ý0,Fº®¶h¿ lÑ¡V®p»î‚£p!Õ>ŒÎ ªeî‰fùBýBãHàPÙ,§áRŸø$3vj7~ͦß°ªµªÉUÕM¬4ôH1ì²ßüqkGß/•vÿ¼[“aä ìÜÇ`è\õå¿ÎíÅ\D±ÊyF”.)’B"ÈIÈ0=ŤBº‹éÖïèâ©PÆBi!4š…˱µNˆkK¥rÀaY‡kkºCùø±¥4=Ì#¤Ø€/á€÷³±)~´{ò`g=}9i1ª'[ïïábÿú%sU¯o}ööyh«´¹AuÕyÉÅEöJb#†<Åá³ʇ«-Ÿ feÁU^˜ÂhİæRÈÂ*\HcZS«Ý\jÖ¯‹ûÉtª~*û¾s‘¯£%m/ñE¢Z5¹ýˆ& ”p„"à”û¬r¤›íä–Q €’Ë*¤ %¬Ìl‘aBRn±P× ¡D/"ëS4¤ñüªêÇRé˜Ô%>¢á~á߈çó@\­?Üd Þ ú°«Ú+ª>k´—ã9d¡~fmÞƒÙ ýlÎS˜™ïun¬û‘¼÷©_ÀöT*½íd¿Ro\ªbúê«Ù/‹›ÿ›Ø ÕÖ;»ñ¦Ç}}ØûIZµŽšŽz©+eϦ‹›a¼¾,¦˜—Ó¸”“Û½ä¹Òñ‡ŽBLžrÕ9™ æfÙò•c’t°,ä–ÂäR¡±…` ($ÖA* ˥ꚦ5uÚ¥kˆù5É=‡ XðªÆƒ,àA©VDÖ›S?Ígñ“;¡½6(­'÷Ö=Žý³Î²vízîrʆYë­±fár1Æü¿åÉ܌䘎ÁïhÄ“V\‚ìCabc! ¶:Øs˜¨¹°ž .ܾªMö]Y™“&üÔ·«ÅbãÍɰõRÆöU« ÂÕ•ÒìÎL"¸±¶„ë[Ç…Õ?ƒ’1ÔþPT¤étÌêÅ€¢ˆÐajxÅÕ‚4ß?íR;‹¤?ñÜ:JOÈ#síd$RŒw¸Ï€·¼A÷y»çXš3ÒÎÆ4Y‡ éBµN¬‡‡7‰‚éÇUi1Õ'¬æëi_8¹´´¼oÂ˰NóywªŒH~™Eø+Ã_w’U9ãM®«åR¹wj´ïžýkýký*šV&¨~F7”»çñd®§[S]b­æFïlm,=]ŽWö¦±©®ý ÿóÁÙ¥|ƒèf:s5)”cøzr3¿w¬TR½KûÙ.Vß•o•*IõÒÔ¸Ø)[ér„Vð¾èËĹuZõîbôêÍo﮼#ûΣ¯+»ÃSwÏÞn‚yÀ(ˆ™“Ex‘Õ…™; G 3&NQ¶¶NëLQª@+@¶ÂZ®¥ÖÈPލÛ‚ç éÑæƒbúý<&Üæã¯×&!ƒÒà9q·™Ü~,–BÀdàT öÆïûqWC|@ ¦"«„†¹•nÚɯÌô¾d;¦÷¹ÉOisõ«º³ÞJÆ¥'µ/ÿë=ž±xùÈÓ›‰ìÝ’P@  'åÁS²ä†a¼^9Ãȱ¬ÑüHbÒ‚w”Q#!À\Zwš (ņY¨pG ¶ ˜XàŒ:oPàÉ44 ©¤D˜:Ù)%n¥¥¬ñ*)WÅUBŽŠÄ§”¿!Hz!¶„Õ¬:òTWŒÚII±pÔ}E!0,%Áá"\-d#9í¦çCywrW‰Òµ Öµ#Õ÷?™ßM6ÍZ—þ:§ªÄZxì'âá­çèéqÒ­W:>UåTt©E Ð6ÕÛM;"~$q¯Ì!x„E³/ }¸’œ+kTRE¹Á˜¡KCEÁK¤sa5PÖQKNtjjÓ¿öãê¦/Ia´ßÕúIõIgÑ ’ƧÕ-'¾û« hë}‡ô£8°£­ xCde5µ=›ŠrGv†EÁG§»á6ÝÝ/" ð%p‡Ìi7œ5‡”Üæ²L2E™$k­¤’@ÛÓåÒäbZG[|JÝ}×ñï/¬·Úcëó“4÷tO^—½»ñó¿Ji| XîÇ„fÛ}ïH-ížB¦Âž¦º¥Æ6AM)­Ý+DUK;Ÿµl?]­õ­©$Ð+œ½"x\×Ù]BDÎ 7vþæÍoï‚Z¼†Ý.âĤnÞn¢‹åõt±¸Û.cÈvi÷„ rÞÎ]»XíÞªó|;¼Ž¼ËM÷–ù¡ jo2Ù8Jÿ4ô½dò÷ë Œ‘èD5_‰MNc Æx]3D#8NEâ‚p 5É µD Ci‰PY¦8·Je)ç CSú»!·_$s/2:—qH¿Œï)hèbé•të½áÑÁ‹ ?qħ}ð"5˜ÿª‡û¾ndòbÌ ùˆ(º¦U‘•þî;ïÐEŒ›åÖ¬—ÛˆüùØH±Ml?Ó²žÑ‹åçÀ›ÓDOÍÝëFÏîÀ´Ó¨kom=mVÁ˜­¨º+·y¶vD˱”óí§ÖK”®÷•Ö¯•.­_4]¿XºF9õ!îûÅbº¾ ¾½Þ‹®²"úíýè§•µmMpm¡÷_£Ê>2„FüæíOo~ñ¿þñßG´CM;äÛµ­–*Ž¿”UÆ ƒ=N@í!ÜÝüÀ>íO|´”Krôã 0‡¾'Æ$>Å! °Ôl%fœ’(ÒB)e ‹‘;jX1‚ä¹Î²\ J~š«¥a’Cybýõ)ÊêîYò•µ‡}yU:¨–¤íÂûߤ£Ç•b쓎RÙ›ü WŠ9ñÑ7 çô4µo9ªñßꡬªECn$$éPªsÌ(µŠ  k MÙZîåîö•øËÞb×KT†Í«L®ÜŽß¾è|£E<^cÖÛ }DÄ1Lþç¢Ïp ¡qN ·Î9­k7 ÃG>T6†2Ê87J@IVVr„”†ä ®¹á Pð¼BåÙ·Y[™îó|8‹øõhÉäGèZê‰/m+àkñûëŸ¯Ý <šÄÔ¬ø%IM1~½*1, Vjo¹ÿ¢ —¾v¶›c"í„ÀRФP0rJ–­0B-Ÿ•³‚)®Ê@ (ÉWk-5’bkD. …2‡0Ç>ê%“O$•=#Vi·ž;ì‚q~:`ÁÁDÞA ši¯'“@#Èð!r“þÃdóÇbµrïRú±9®+™ËЂKÄœT%ƒŒq®ã9çXB.©ÆÒø *¸@‡ýW—Ÿ7·nEBdSV?ý{àN€Ç 0ÈIHyIïsbGŸ¹qXlgtѨ|O·>²7.›ªí\ßÎÔ<Iµ™©;»){Á+«æó…k`Ûж‹K¾Yß.>ÎìFuBim|L®»lû…É|(ÍØß¾¼IcwÇm,E³çvM²Ý:%˜'34â€QtÂ}4J‘zÿî£ BZ`…&Ì`4"€¬—bˆµ…¶ŽcÕî+Ñ®ê9ñí/qk}åmñ2±zëW«C[¨j˜Ü@UÙ w9“½X.p‹“ºO w6uÛ8Ë>ó/ó$cˆRÈ]äîè" U†,@,Ôjâäx£ 19%\ñ¢ç›þhãwo~©ƒû¶ \ÁõdæÃß Ï&Ÿì*]|ÆëÊĵcÚJãÙìÌö¼*ñ'+ñ'uXÕhí¥ïgÛµõ¬Ùúê­ŸÁÕ µ2W¿oïï§‘À[³ciíf¢DÊÔºMÏ+å‹&#Œa§8 LïüAR IÇ/B‚’éä¬cìYrk$J(j­”\ÃP*µà 1XR~°«Iñ¹ÍaêÅÊ´!Ë©jÕ‰Õ²ƒëf.ûo—R±-"…Yr³vÉ4RTM²xyT!.ñ IÉ)Ùb¦^1@îGØuŸLCÜ…¢¹¦špŒµ¡`¤!¢P+Bs+9È1bOœ¤ÏMôã$ß°ÑÓ’®üðˈtíEÐÛ÷ ’‘Û.Aá6M[€>ÔèÒ-‡w¥mè]ølÄq_6Ÿ– rŸ•˜ÜœoÂ#"{0« ò€{­?ô4a#Øìúöæêèr¤Ïêíw¯Ãi柸˜’B,FLá•@'ìõ­½w\ýÒ “,\P'î¤üõaÐr„Ž7 ¦HÀ\ ¦9й1&‡õ”¿ÚwÝn‹Í-r{ “zˆþõÏ™h“o×e®”ö‚>›áEø€^Zi¡¾hå#Ÿ]ýî$ÍMdB‘Vaúî ëžq ˆÈ¶9«ÆM =Æ”g'ù9„Ê»ëaœ§¹B”X$…µ¹pèoM¤”(×IÍ S†žçŸîÔÆ)ä‰éæ»Åv¥í ŽÇ¢Oy¹?ˆ?N¼>§+’'¹e‡!ŠÉjBÿù)!1f©°·XQTXBTTÀ*G¨s!°‚ÈñHšÆJøW¿Bi¯¨—ÞQÖ´m¿ªù¿ÅÇÊn¿Ì¨=[˜àþðÍv¿ü(½D^ô­ÑßšµûùíD;q¿&ËoÿÑ­þ=uÕÆCÕã<Ü Ùûu‘OvÊßÞÞÚ¹]©éè÷m>èÚökôÃèÄhœBœî9à-ÝAÜ*k–&e¾I%#מž”«8 Â¥zÕÆ(­;HÉ¢àƒ ʈqŽ0gRåscˆ%܈¢¾Œ:ÝeE'%øÅÊšW±Ü#Ãiï¼áHé4CQÄ­Ca©žèŽyzÆ Î{]Ç’ž‡øLì7:1*tˆê‹úΠÿ!á¢ç‹“í®kOFzP ôežm_¶‹¾þ1P @&² ýñLáe*ç³õUÃjU™fV•Ú:™¨©ìÓ(ÙT: ]¹š~¾oî´N•ä«ÅǵM•,W‹¥]¯±DéÚ‘½Í"Uòqrïš” ÖÛ÷?_½ýí_¿þx˜aêòÛD$î2%™®>e  #‚}Rú/:_Ê£`øÁ£¼`9gÊB­¢€êBN™E˜B[0˜CIú‡Lu¾<øîýX® œdzS†¯–©é4>Ä{g{Ø´Û8§*–“š›oòíÜTd³…׎¾ŒúhsZ¾;üt¼Ú}™ÎìÉP>Lhï%€0qXŠíoçVO¼S—ŸAžÄzÈP™ç>Ý ´zÛ0#‰“uÓˆ+% 'r Y4FˆQÌÑ !ýó9*[Îo˜¸[¶¯¿±j¼[ÇUácçB[ªõ¼‰ë@z½ê‚ª>ÜF¼±ùöæf§pß6êcko+aŽ:[©j”5/’ö‘t„½þæó€…c§BÁ2?¶·]H…BS¤P9n# L(ÄŒS… Q@L¸àn7)w¾ažð~³™¢_ú¬ÊŒô/RY™‡'ð| ;©R¨{#R%šl Ç:ržÍ‹kÚVéMûä:À&vÞõÕ†Mí§.h³ý‰=d»¼Y)ÓúÀ±ðùq¦&Ó^8‚È>!¹Iº÷ „Òè(lšd»EKèå„:zàÎ&v ¸p,¹›&co:Æ)•5¤(,Ñ@cÖ˜Ai܈ÆrL­Ü'¡À|¥€^á®Cn×À d³Mwou«¤ËÝ4i8›Á^ZµzUîÉÅÏIZw“7Z_'b6Eà·¯_wr&z;b>N¤ÑÛm*PÍqôkŸ°ýXÁ’ùä7F÷]ª1üõŸ~ÿÃÏ×°ÍÅ5€þyÝù2UÚ3ª$ãJžôô'ÿÓ,l-Tæzãójm¾¦Æ¡~2pçÀòv°u(MM܇’³õ`ã¦Fºx¹º¹öùŸ¯g‹ùd³X öÓ­8Tkáf;»^,C’ê=½µê T*M‘ûÅ鲕½±Ÿ[†Ò§#Çe•ÉÍ\M‡W *O–tf°íÖ}ëõˆåÑzŽà˜ºéŠÝÎìÅ”/Yɼª‚,0_h¯azŒF—ÿ‘"¾bñõ³x ÑÅ =\²‘à cyʽs¤¼=Àiƒ³2–[D "¹,ÕXs¥tA4LRš×Ž3í…ܑó¦žJË:§Iœ3+úˆ—ƒ¹åu÷~ü%˜sňHD)E'Ißa¬…>„¾A ¹È1t<¼å ¸%Ê á–Ø\å\R£ogM/ž%º†ÿƒ¬ }U…COÉc‚)£§˜h„‘þ_Íܲ9y– ÄbE.¹TH#+ç¸(b! &$ÉÝ?*7Í5ÃãK“ÏNyúõ‘ÙÔWÕg ~vZWÔ~ÊÊj; ¯qTD !¬ïâV×§[2N;x¿›O:vŽô!kFP:ì;%ÆÁb±ÑŸu™lt„óe†Ø'ò ¸ΕR„YI rxáÍ9_Alm¼qLÖ³›Õ6?W<„£Pö˜—¸¨Ûðæ‹†|·Yø¦­}4fR0‡gð$×ÿz9Uë[·bÞ!‚a2Ó‰ö ˆ Å…tôY*\R(ì=l}ü„µNÜ“B†Áè.çŒb}FÞ°¹ÏѶٮ0rùXäî­Óm¸O/Au?ÑÃ8Ÿ´K—ù,ºp,üÇÞ¹IU°Íjp©•°ê<6ãŒV£2âü_«_F+“9tá,”OÖúT¤s ‰ýªvCï>IÂlîS3ø)Wú/˜ù¸ÚïÞ¿ûÑó#HÇ(Eïä…ÀÖ‘5@½u(Єà[--‘qÊsEsùÐS;æÑ*ý³BÄ¡óõ¼RÕƒf ›:…¯,lØÌ'öLÕÜ}øÀËfáÓÿ›½+knÜÆÖïúzLjŠ2öeæú!é,Õwº3©dR75/] ÚŠ%Q#J¶»ý@QIP¶¨¶-wÒ•îˆX8øpp–£@ “|Q¿ò¡ü‹úPþQÅ‚ ˆÜ3&Y>¸:gbhuHѩՅ]Ы#îÝœRÿ„Þ»êbøÐûêô¤ÎK6¸uÌØ)ßN€z:¸yBlͼ¯Nh_œöùÔ>F§õŸÙÑ'bhmKó†ïwãA|Ü‹ÛËǶ¶Õk`;¡º¶ÕwÀvBýz_Û)ÕéIwÀ6°z l«ï€mhý-° ¬¾¶Sê£Ú§}þ؆ÕßÛ°ú5° «]ÛµgÅU1±¢×1åo©PZ¶x±‡aÕ#WD]u †U„Àºêø ëìñØkT=òªGÂ]]uÔÕU‡ÀÜ®îñWWoºGBîîX«ë´mÝAp¶­;ʶ5CkëFEáÐj·# Çì?Ž8î9xªÒ1±E˜ÅÎ:ïHvây䬂™3Œ¥CN¼Wª4«b &b‚z<”e)ÍÍ4Ë%¢L’R†òŒ *Fð|ú³U9y£94ºªÁÌ @ÐxH–³ÍÕtáLpKÓŸ“ÓY<÷ª(ôhû µÿ”Ç›6—¹¢-óöÍ÷Ý“ïýò­w§ÛÑõoŠÒ¾ÊMÌáßûî뢇~W›H¢SM/ÊhˆÔß3F¯×ÎÐÊ-ÑH†¹_GÚ°CUwlZöü>”:+÷¹Š¼Û-œUW!ø÷•›øH/Õjýavµœ}ˆÄvTe±©âζÒû,±ÕFO »‰dݪëi’ͦ­º¹Í-æs¯Íu¦ÈÝþ§F]Í"ƒœ‹"-b¤°ÍQN©¿V‡kÖõE6ÓXõsPèæ5ÃÜÅ­Ô†8bÁÓ<7eD»{ ©»šÎvJÑÍîžülºnß®Í2Ž÷ÆŽÒò™Zܪ²7;N”>˹qˆå´Å/×Ó…ÝÆs•™2/³L«p-½ª]©/«P{¼7€kQ‰?úN4 ÷É LïçjQ­—VÎâ F&hY,×XDk*áoo»«3jQNÖ…Sª_μ“Åjëh¾-n±°ÙLu7õ>K“jJêj §@<ï~ ÿœH[Ÿ?Rq—Ÿ{jÞê%/Õ<œ¤êÆð ›TFW[3Ó+­ŠŽ¢ù>×{óìÍ¿6ÙM¹™'[>á`¡¾|}«Õf}±ƒØÈÊ®zÿ>wu—«¹êêËo‹\™Å´,¦[.^dUÜÙ2yo33g5Ÿx§ø}Eæ7ß°p}œM?õöÁ!AÖ;Ö.·èÄu‘¡lÓûjÛïEé‚ÿõ¸Í´ŸÞI¸-Ò¾¬»ÂÖmÚ!l…°­ì⽕ŜŽTÅö®Fvš†UFCú èøjBî4ý~3sVFzª.Þ|wñKå’ö ÌÛ;æÙìý·×Ÿ¾û¼ˆÊ-&L€1Ø9 d+!ð4›¦DIŒP\AdPj¸Ö@hÒ\ri ÆÀÔºá͹9c—¯Î¯G0c[ŸÕÇäùÀƒßc|zTo8ÑŸÇ0÷Ý8@èJˆ™¥tÉ CŒ˜WS}eªxí•£ýþø®Ë`ÿøî·nâÁX‚m¸ìõºG$? %ÜAÖô­\g‡ÔÈ?Þv¾GzÜ'ÿüÓ}h´r’ù"†ó ›ø“d¶¹jy_V <©øá€'ø»h°‚¢E€£÷D@𝒄]‰lÊÎæÅùâŒb1„ý,urå¾Ä¹ýâcãÖ/Š* æÆà,¥vo¶Œ&à)·2$DCs‰pm—¸4«ù´t,\WV~"ÖÏ;Ÿé”÷À‘í T:þ쬊5åÊÐ^xp8 b4ô¢èPj¿NFûããwóÄ­™æn]4”[;ÈÂFÌX.²0[,W±u…d׫–¥ˆ"ŽàÅæ*I7Z´Ý²<–¬Ü$Åâq3-À<µœ¼ä€1 pš¹XITs!)#Ð…JÊD-¯Ö/®Å§ÝûGW:=“¹Ù_·œAú_·œo9Ïõ6ó1Þ±ŸçÞ1-Š›ZÀÍ,­ÖîXâv/ÀæðšYÞó]â÷ï~øíßoßýj÷±Æ^ú\W=Ûü{šØmÓá—¸|qyµ.–uèöò¯ûÉ]zì~²Ø¸¡$‘œ¾›Ëá¼éŸèJóH.è…½ÅUW9–°n–ªyßµç">Ï’·Œ^Õ…#HuÖ ß{Úv\_ÁÂPñ;fµÑû¿Íõ™”‚ ñ|ÕdŠb¹19 ç *¡0Å K P0%Z¹=šˆÖf¹ÜöùÞÁ¼º‹¢Æìm¯ŠöÝ/ñø•ðøK£ú='^¶|‡X ˆ0Ä  B†¬<8`9|\›ü>q¼a2ÿXþwf» ¬L;‰Ù~³L*ÉRÅh*tFs Ra÷8£ ɰÈ15˜H•Õîp-_$JýDX’p~ú}¢k.L|’z˜”]g¾zûÆ…(_¾qwüþצËwÓôëê¾ÑŸX?X5 ¾·ÿL~¶2äý×þjL(=¹Ž;ÚeU«´Ï‰T˜|gdz¿Ö.;ZÕ8'‡*ï D«¯ÔÃÕß—ˆ½àÿ¦ ]Ü•“ŠÕ¼<ðšN¹ÆË楥³Y5í„yu¥38A?h@Fÿ©ßÚÕüÃï»ùî•=úóШ ÁºìõÌf‘iã /1o1ð]‚ãZ0¸Ç¶´]³ ‚›Çv—’ºC]B„;·dH8ŒOÓ%ªfŒ,Sá§–×Ð"c"MsÆ„0Òöš§6B£01–E AðÅOèé\ZΞÊÕös_¾?Õ@ÇOXUT°ŽÄÓAÈ/\vð)SëÆã< ßôIïâaTÏÞeHðÜz™}tš‚· OýŸì„<ù§¹]=áóÂÜ5ÏÇÝwôêt}³Ê®í¯ÅÕE=x{Î%vNÞYmr àÀ—+žƒñ÷É8‚c À¢d*5÷N}pí5oà„Æuç¥!dr“ ª„„j(5H%WRBAu*Çø|5\ž{¾äº æ´ °éfuOàûì˜ú¦X”Å>Þå.ØDŒPÚ”+$ÛûÝWHê>DhI&ÇÊ!6uþxʽ°{žåáq,> 2‡„c8ÚR-EÜù?4:OÉ@®³VüúG(\?s0Šø KßUÄ9¬–áçÔñÃÞãuYŽ>ƒ<¨årêI\÷‹>‡âÉ™Qê±'nÕUŠÓ°²ˆ]ðT ý²Zê.p nìÏ‘…»uÜë±]Q½¬õ?ÆïÿõŸ·ïÞ}3þù·oß½}3¶¿ÿé×ïÇ_½ÿùÝÅOû8¿j³ÞL buœ^DLÝOŽÇÐ X¸í®ZÀÈŽÚ¾WÑpÕ\Q“g”Ì)Î9D4#Ò,2c$3‚ÙͦâÉ6ôÐÚ8¶Ç”º€äÀh¢Å°ìÅÑ®æ¢ø¶ž5alUÐ1$ƒ]kT\õáTžBTÚƒÑëáqH1 é>€‰Çx? èxG§”PÚÂßÛ=D”å$ˆò1Ð âCÁ Cq€IdÚ. ”™Å\a{œ+Aj¤*7,ç¼>yl ñ¨&|Tµ4Ú¯mÂ}±ºò—˜ÕcE¹Û¿HÚåöˆËÙ½(LuÄ]¥žïAûk» Ø#PEB»½5¤«‡÷äví3Þ™ëàýû3RûBˆ¡äîǶíøÀ$Åi–rnÛQBr„3I5ã<Ãå&Tg@]g@Ø/$õÖc!Êó¤7£ŸÚ ´“Œ!ã`@ßÊ|îlR&b Å„D}[©=Ç"¹69Dä9B ¤0•Ð+%œr¢ñ …a|í±Ï¥æüšô•ÏZ.ÜRn­\[¢à|^uMDâ©ú1Ú½(±UÒ¹AámöÍwn×ÈÁ—ÂP¤G‘©ÅBÙÑãK»ü…Œï$‡Œ MXÆ´˜æ$3ZSˆp)¹:¯ö¾Ú7¥Y)½u ¿šå}ß÷LO³çö×t†vn$"go.²nFÜÊáxuª“§ð™gï´?ÌW¨¯+JóNÓí*HªUP©[]府øüFL„mJ}ÎmÇç®Xé2<ù^̦岑°PÞD+­\‡×P6i³™‡Ïk¿vÏ×77 óB7‹,›++7ý7|¾oåß»è™ABé¾:x^wû'mf­Oµo £Xë¥ý·Ñ‚^Zk¥4û«l¹l<—Å*èÃMó›feãqnVW.¥’nÚ½˜ß´Ûšß6WÍÜriÈfåÇEÖ(s·.²`åTÓë5µá+*â‰l$o¡X\ü¯Zª…)Mÿ½^²Û»»ˆ-Ÿ„Äaqñ·­ØA vP¡µ•½$Uv‹0²‘Á8Í0C0Ó@R(m»:ãTch8Ãp-o$/MâŒzÕJ¶pYMAâ¦à±T^¾uç±çÝþiR—­ì[Å6F.Jä_  ;Þô!^%“¹‚²Læ@Â\Ks0ÒP !É·éð• Ï~½|¾Ü»§‰¿ûÕh+]4¥ê¨ù—¾érG61Æ4ÅdäØbžÖ]Àv` ­„Ñ a9%×g*W÷c`%;[À>Ç ^®i °Ò0Ò\ Œ‘œç(ÃXê<:E€Ö÷àÛ÷ŽÖNÝæªü`¿gTÎ×ËZ™y±)´,ëB[S´Qy]¹³ð~̺÷äJ»øÝH± Õ—¢ÍM)ò/~’ã‰óuÔàè¬õÝGÁáë§½#16Xû—»Õ﯑`%m¯'m7ßüüvRªùr(¹eÈæ¬LvÛJ*Í"üx›bGÃ~¾™O\£²>èi“}va’ïÔÊ\ü`ä"ÿ!$kûœàRòk÷“æ Äî¨]ï\ƒ›ïñâ²BŒ¤BŒ-›Zç¶/Ô¢¼3«éâêÃ\e×Þ'Ž£m—ÚýŠç®ŠÅEͳÀ¦Û’­¦³¥eÁ’V·v÷ »Ôp;ðI»£l$·Ž˜ëÔ#÷Š€QŽ@o{_ŠÆ¾àë$áàGÙcb÷ƒ1!ör‘¹‹DZŽi܈„0Φ6iJPÊAFÒܠ솀Jf·¦_´I7O¼>=-×Y0¶~îG[ðbKB›6'U‰‡MߌÕBßüíoÝ3ðµý«b8 ® 'uG"šÖÒ1AÂ]¯  u}cÇÅ'vn”!¤¹°ÂŸ€Bh’:nçYù/Íœ±w}àýgï>“sÀW+ºáÑÎUèRÉÑÓå–¢OQ±ëwµÆZpZm˜…•Ü¢±Ï–O¾Ù\·‰´½`²í쌾IÂÄä ˜•0’xˆ2š^ª•ZSµÕÓ~ûö­š-¯•œˆ1£t‚c®µ3ʃÊ@h2“\çJ”‚ÌÊ?¹æ47”eùï¶E`Li­>ìäì”ó·¯fOèÿŸ\O~•Ú!†Ë’Šút7Ã(ü¸RiêN9òN»c„×Z„Ü¥¶:›t»Ñÿ‚X±`@ 1l<ÐÙ˜¨”Jê,MÁ9¥Hª D±<„Úy»Uüõl6GpS]¢ûª“ß ¾ƒf…¯vc©iæÔ1 h/²(yÀÒí 6ÿwýxd”“WoÇÍ,G¢Øêí~MÄå BŽíòp]Ø"wZ7AcDÄ„ÇxC$• Vò19…`Ë)fÐò«”@ŽdÆ Ê•™ÐO¶©©˜ÍóàÅüòïAu”t[¬ÒiY;‡zKò²Xå—ÉeµP’j¡„ÈⲃçA;%>—à£JéÐËò6ÎÔcY†GD^Š-åN\̵p_! ?)¢õ!¥ÈVΣõ €¹±ˆýŸs¦X:G¿Kål}¡…C½ŽDDy‘Ó" ƒ$ψƀBŲ4ƒ +¨êè4>jÖ(M6²"†V÷^»¢m°¹‘Û5Ѻmªz&㲚ŽOPHÓÛÊ!•Wï ´_«÷îµ]}äµÖöÚ×›ÏtÌ“@@Smz–‚XHö‘AHvCÐ]K8rÂx­J³ðwâhŒí:‹Q{ƸÒJZB‡†»Ë*€€ÊˆýOS$XŽ0ͨYáé²2fxNuº34e8°éV£þ—ÍÔyk]öMÔvÍTš$(ñ«&4Sp¹íçdû='(MvWj›G·0(òTí}Œ @Ð1‡œÀ!§3òpêÓ:fx‚£ RéíΖ”Û­ÑþÐc­D’g¦_œýj…^OöƇ>mȰ~²/«éNüt?¸}õÐo1Ø¡¥¶#,ÉC•`W< ú!n»ˆÓÃxˆJ†o :HÛõŠD-=@®RË)%Œ%t+'ë\RžsN,›È!¡‚@ ³s9Ný,g¬¯†ÓlPó(œÕ€” |BR&³Â‘-R®NAƒEMK˜óïMè]KßJå7â0bKÃ˜Ì £p­L–“,ͱ F#@8çgcR»màÂËÙ™‚j8üç…¡•ƒŽÃHjåjîîªbÐäš™.ʵó}{ß±3߈yÐ"ÚA0M‘È)ÖXæqC-áŒs,´Bôi3<‰©BƒY8VYìÕ ìvzïÔ:»n<4tq”pYÑBâia«1ä[¤%NKbÏ[7š 4…‚:Aò\ݘ¥ºé]qÿv²öÅ·›éL?ž¶—¦;,9&­·­•_zÀ% cÂ)ă¤zÛ?pãÆMX4F-æ)Ujđ΅œjN˜Ê9ÀVª‡©4—à‰bÔîu=Íjöy÷W³n‚‰ò?U¡ðXçDzêªJ‰È’ïÕB]ùƒ]UŸM´É• ÿŸ½c[nÛÆ¾ç+ôØÎ”.@lëq“6“i’fëd§;ûàAÐâZU’²“|ý¼ˆ в|Oó$8@èÜœÓE×ò o;5Wv†øLk&E›+eÎd—)#L\—‚M%H«=Ð÷1`¥,Öz ¤< ° 182arU«è>»ù4,ûüz¹ʉõ-Ãà¶þ[†Á'™aðZgëŸjþÁ{Ê$øÕ¦ ¼ç´€y±=À‘k“ºa2¥9s6Ö~pjÁ¹p\Vø–Up±#«`~Y ³;É6ø-gà¨öóh÷dj…q«×™=QW¾À n˜,°ª?ŸiC ãÃü+[}wB‘¦XÇ2ІD…T2áÓ˜Ä1b‘"˜¡Ž"méÐõ?õCì>µ8ÀÖÖI ˆÜÖK‰å{笺¸Y"ÀñÜJ8‚ìs`îÞ(:h_Æ,ó ïæÈ5‘q%ˆìG€ù@Ä`E1¥Ô'2"¨'³åèߎ¤}²Îs³"óå`?²D„ã¼}ïw¼z÷qVÕ}ž½RÆŠ\ÌÞoÂE"·×>.ʬoÆçn%ßwû6"qû†[ðÌ& ím'èŠ}  ñÕC~ÈÁØy–.“ͲôøCM¤k’ƒ®+8  AH á" E±€‘ 0ä&BqLšÓ±k•-“2çÖçÖ0¯Þ u Wo>+O_¾i ±.ê»=N7ƒÐVÖƒ».#ô~n„§Z ‡êzPêž)üÞÒáyøcÀ7R²]Tó°JFÍŽká5¢Ã)O–›¼tçÏ_™ŸŸH£ÉŠDÏ[&¹e‡#¨¯+†m¿rõ–×›•ëz×âÚ‰ƒ”û‡l„$qî-Óͪ0‡.° &ïÒxD9” ÁI ±R C €*ÉCÈ}ÜÆÐîCÞgº%]·m׈A§-]ž©Ìá-{C–wH8<7¡².²88k¿Ñª8Cgo_°¡/Hës첦nKS:ÃÔçÒ¤~Y·å·_þóñÃë7§g û5í¾­-ç=uª¬q~t¿‰µ»e•K‡Ÿ£­Õ‹ýîôÅKÍiAÀá3ÙVŽÅ"qúŒFÝ>VýH‡f5•É‘ßr¶nwp oLê°ÅÔŽ+¶f2^Ô^š²þÈ€Ô»¦Ý"×Å£ÍZšr‡Ú\~PùعC†ûfb.–¡°XkïB µý½··µƒçc@Êg>¢>8è:G’ÉM^…ð2.O“ú iM¹u„q¬Ù>–(ŽÃ8$ö¹*„à@ÆDTug‡÷FuZÝpVÞo^&ŸÚ­‰[VhoGlÜ“±ú°ÔØ¢[•‘Y#vp–ß±…ÚKùúY¯ÎEºqlãc÷@é €M|Û÷¼î$]jÖªŸAfra¢v]U¸˜z ጓ#ârHâ˜Ò0P‘PÀ—<Д¯° ŠI®ãúÉÇðo½¦{WÄ­(YÕcSݱ}zKCn&ÄG7f´|1¡{>ŽP!ÿ³†Ž2ðJ2¨v+ò µx~d 2ëfý¦3’Õ[vÂs’]ÏEàÀ¾iV½âu¦è:zLÎðÌgøü¤ ±—ÆN4©¼ˆë½"$P™«d>ŠM$CA¡¤S`®uC?öeD›Í £…|Bób¹ðÖ«óD£{o׫géf= N<®x›åê¢Ö›Àp…Èn5_Ì]š–vœEó%úÅð r°˜GÂKÔr»þÅ›“·'ÿ>{ÿÇëŸ|øe ªÌ:×Ú¬2‘¹G±šº}|÷ÇÉN𳤠1ÒŸ 0>ýóåzhÞÈ÷æ„Ñúø-1õ«¬bÜ݉ÝSZîGOÖ½‹r?¤Ôu‹wLp!Ûš»$N'øH}»oUIÂÒ'k’T’úœ»®Ž¬è™±þßç¦ÒªkBf–=xËda ñ~KÔ©Ùvc™"ÕëÍÙ»ºÊ®‰r)Vݪnc€<97'LloCwÆz›"39Yµta{CW4½Ž´b°ý–Î-ÿªë(œý¤×>ŽðøõþS¥õ]ý°{¼§Óôí/­hY¯ªÑ›?Ý¡b!N(¥3ÄA@2º­ *Ï0§Ò!€¹'ì CÅP¤µ:k½ hS @Km“)Žcµôoœ:hq_Ûrw·ëõÝïp»§Xt0þ¸Æy¯Äù®Õ}˜«ÙɺŒ‡zšÆ…1ºúöÕ(… â¦2l“~ûšgOÒAƸî„ä €öPíeÏœ ðc°˜øadâ§ØÜŠ)ç8¢"#$c@‰ln/;—ü1œ÷zßßp¹Ÿ¶·>Ç‘ú hâ*q 9Ÿb.Ü™œæºw‡–စA˜ˆ2çHšd‰1©”Bitô!T˜ Þ Ÿéñë•7;Ý€›¬ô–uo°]ª>­…ßx[²nÔQøÄÄ݆û0<ª¤Â㊽’íâ%Eµå^Ñœ3µó㪼¸ÞõYW ›[è)Î0 ÜòPpÏš½ëµQ\uo"ø° ‹t¹ÔlØ[¥…›K_š¯Â#03;$Îó"DkÍAÄ%"Jr )|1¨y˜@6»†u2=a¯~Ì¥ÙÛ¹³ µÛñžŠVÿ¸ZϬeÏšó0g5à™<+«¶/î¦-Úö»wíx¿¯NT7ÛÝBøüíëÍ6·ù»l”DoC¶ íçµ3D^ ¸ÖÂ0=ä,tnËÂfD¯¾ Ô|—°e‚DB¨8 C€„!0²6BÃ܈ ¨¢»Ý¶‡ßíAÌÃý÷cà CÔ)¡«×“½Ó"yЊǪG^ê¬Ûr»Ò7Šéü81éºFhEd¤_|êW%«dXepós¿z©A—É—Á0ËôrP·^T'Ôú”Ö¯ÊÔ¹LIÿmŽa2çòçR,•™ÒjÇ<--WI!çjð]&‘Jû•WÆ[1¨\jRƒÕú’¦]ÈZ1©uϨ&ÎC•2Ñ¢[kh´ÂÀI°)§á4 ïV¢ó$X…áÓ`jOW¸> ¶ÏÀeå>p%ÓÝìÓP%ÍíU“á$äEp²¥áiÐ’¬'ÁjJŸ†[í3¿šì—ï÷Ù¾TT3’=àZÞ2 |¹ÏG·Li´æS“p5뚆[îT3¸IÀŠçƒ_EŽØiå»ýrkMEUûÝD¥r{˜t³ÿ±·ù:´{»¯Ä‡>혳zV-ïvä‘”bc¹úè°T²å){¹* m¦çÞ²Œ½œÕ…GÄi•ŒfBa,…O¢Ð¸˜8 |ÄÌ)=¹Ók´õÏžWS§ËR§±›öÞŽ«ú˜ý³<=Ò”~Òö¨Î.L­Ò#üÞëžØožb0Î>Ù“/û¤:ÒC÷”¼Ì·óñ5AÚü¨W5)öÙ6Ú‹JúäLQôÈy¤¯ýrWr+†8™a“Qò ¼µr²1H£¥çæÞ‚NBWˆ9 6e65þ€}§Mw±T‹ä“°«½ÆÝ’´7`³ùlÌ4p²—‡Á&«ià†Ò¦!+⛆+éq¬G¢“/TT; Öò´¯aKÛ{¸ö¢–ìás°˜B ]/ÒUc¼h+2Ñ)xç&ÔI S›N6RBÝÜ™ÒãûFA€ô} Ž.¼–½ -2ÎÀÌgˆt¸Ræ»Ø½On®íJA0aT 1.ÂPBbE€1Ô¡&q^•”#RùE‘®Ÿá(JÄù3“›ä|±)ž­eb›ÛMò¥*4×(>Wö1$š£Wi´(2­¶He²k¸p Oݲ·ðüíåŠN3•]‚3Àã"ù7œþnÉ2)˜d‚„àA¥‰’ËÁ|È|ˆÔ’Ótè]è%|D2Ô)-ÿU¼pr/.Äê_mWõŸKGôš',‹ïVì>Ñúxåg_Rb#)I¿¡ÂÍnµKR.D^ýÝo¼®uÛªw)&¿ Ä D›ßŠ>ÿ6dß]{,ç·K 2ßÇÁ jËŽ¡ë ÄšäÒ…ú­¼8«go67Ž vHDD%€ "‚Aêc¥¤ ‚q ÍÈ2 ð†AØÍ²¼¾Šªý‡Ezž¬öG©µXÖQmÍ0®ÚùVwï+¾úýòpya¾{¥d‘:^ÿã{_Šì󑩪à*âz^åÊÒ@í{ޏÝUÛ…™Ùö`î…7Orý‰Ÿ;u ±YÉy3Ùn“o:½tSzîU312ŒS|´}ª5]ÛÕÄ==s/jŲ̀‰ÌÝ~—C¾,_ؽE?&Vú©K|ŸµÏÂo \"4CŒ"v@Ó>Ù3.S®bî«XpK¥Å­€ àTR¹×92Ã0Âàl,dÄÎè}‚îI›uqùiöþ´E –ÄÁÚœºË×ÀíRèSAqU5Q Ú™¸¢Ö>™!ìãηXc5±ªwê”4„TëŽ!ÒÚ$e*öcB€)E> ÒÇÉפ5.(*¤¬ýÛ¯¬~o‘¦CWï¸ØuKŒ½ S½“½SŠg’Øé„SèǤ Bb¬‡S!¦ R…¸ K"ÃX @DB:‰~·Ïó÷÷š=t¦óQ»â:^ЧHcÁvPØ=jKæPÊn’‚ 04óù±”W—*+fZ…˜îJ;Q2£$…¡@! b, sפ+NyDqÌdÕ´T\Üمëd` =b„j×dÅ^µ¼í·¼¨ZÇÃJJ“Ù’yþ~þ9Odƒi¿žþñìäçM²ïòï˜åJÍÖUdä­[jðïöðŽrªq»õK•ð^;Ý!º!LœAÊf‡à[}±fF -@ºaCC˜‡‘Ò¨ ƒ>ÇÈç>W¡ˆâˆE>ðñu#›ïíÍm¶­LÀ=3{ô4 éð«l+O^¼é»EDQ¸öú·µ'>ü¡ß·*7nÉÕÕmc·àJ:[&¹t¾hµÔo¿}}ú¢ß…Ë”íHÍz7þô“‡'Ö]T®¬|îÕ…(ž™ûUqy¡%žu1®¦òêD&ëO E®Vz:UIŠÚ—%ççÙºy,3ùUéÕª~¬[MN°ú©ŠâêWièê)‹¼ºH‹êiQwÔ¤ö[^DIÖ<®šë©ž/«ßõUݘ-›ßí«ùB©«Õ¥Uø´vÌ]¶ºŽ…1µ­òÒšDœ.¬ËÌ‘ÖæJX­‰ý¼Òø¼°Öôib­Ò"YY©3éy÷K–é¬Úò"N 7å•–ÂVÉf•Î7ë¶h'°\‹¼Pv±˜Ë¹5‹µž“åh´—h%«¢³¤e•p]|j ÆKÞýÂl³ê`I®þ² s;Ÿ«+òU„ö«p0€"õª2ÙÅ5ëŠÀ¶¥.2– ©-ÙBÚ…Äú ¥ìBnuQê¶h-pÑIIíMa³êãïf•üe—ºk½Y‰L&“©…³—ºº²>äjžv b™´åÏ*ï„‚Ø›ƒ›ÍiU¥¤ÿÉ(¦i[õµ_ëŸÇ3n×–qÖ«ÔÚ[Yå¸ôõ³01O+ÓèÝÇÙ¯™VO_¦rcüåy€FyýaVKL3›Ùw¯~}ùÆ<}ÿãp'¶¬ÀÃKc}¥ÒÖre˜ÁXZn£Öl¨ärF3ÌÇü Ë`-s\×¥$ІSË€1Ab Ra6}‘j€í)Þ®ø}Ä[øOïœý—yZX4kì4ŒâSÓßéfýgµá¥ùÂwáf-TÕMj¬´l{øþ™WBwû§R,’/%MÒÙÛ†ÒOi¡GîdÔ{s¨ÐÝí°Ûb-w±oV2E¬g¿‰ôÇœIDÝ~?¬ÓÐ\àŒZ“ß»e¹[ªƒêÀÿ1“£40%漪H6`JŽ@NÁ¤@ÐÃ=jŒkçFb¾-ˆ„Á’Zf8§Ì(¬#Lš í¥E·¶e’Þöv‘[ðžÂ5?¿®…ïȨw=r¹”\—öÉ v[JÃÚm‰@"+!Μ‚žÃžß»_­Ž“Äss–4&S€h.„V8‚GV«,¥ŠIŒPš0cÑ ÕM|5tÕÖÃQ]´|/ sDç7ùÇ…4÷ž‘ÏÑ¡û Ý ŒÁåÚoZ×yŸC¤#”0€j"äz<7 &Q<Ò”9QÍ—1L! SÌÿÃgBx£JKÈ3§*Å¡6 Ã3…(ËR§XB0¢©2ÿ$Üᆯ¹+»Œ¤'ƒ+Ðã¡ìiÙ(›!§x1…·k[úZÎQ¼ µN§•YÃn¦ÀÉ)YÊ™RŠÍ„0¦ä ÛJŸçþ¹kNJ˜ÀGG=Ô¡?X¿e¿9¶…^ÞK§Ûü—º7êðŸÇQåø.å§ú0*ƒŒVÒ>eıÌÅÌïõ°I‹÷vã^1œAAæ±jJ[«(s+r*pJ fpãdNžYšboI´ÂЃY®wù¢ `ÍM±^6A´OUh´û[ÚŸÃÍ;“Á nÇTs]ëÆýë9vžkÓ/Œ"›js&õ×®¼¾u®Íæ±=Üɬe^x/Lß°]«ã7eñP¥çב¦ú²¾RXà/ìÛt¸ê[¦¡~¸oh éw£Ü÷Ø–;÷¦ü7R'㜾Ý<Îï¡ì:Üßn”¡‹6Éñ]EògrNØÌiÏhÒž·/÷ÞdWsìÁ9‰F™`ƒA X„±(•&cÀrA3‘fÊB£Ó¦‡AOˆIEôwÕJ³s[qÈv¿Ù5‰À™CuÒu~×”i¯;}­ùA懗Hv#ˆS½¦*g·vþdRªñhØä5ÎâE„®‘Aé‹€Nœîßq.Ë^‰—€<•á¤b‚ ;›¬H»¦mEY¯)â$À‚ã)Éq¢1˜Ê÷ï–øH8¦…¨g³c‘R¢œÉ} ±6©C‰™Ò+y(Ž%%òX÷Mâ–µG­¾Q³ñ„\]N|À×!›Ž±l‡W_£ý¹Ï™wClÙ2jƒžÄjó³/ªH£¬vÈÑL!åIslÇéÔ%¸Z g>=]¼ûû¯…[Ò)›Ç¼“\PT3 ´N‘‘Ø`i‘t6€’LÛKã=ƒ%ûÌVYø¼“ n¸¸jó°–yÞdÀœƒÞâ]Zuõ4AÇßýþ¿ý±ðûUáü>1EK‡¯C×>ªŽ|{^êá—‰_¸A2»¸¤” QøM¨£dÛín^C| úV&“–·ÏÛ€±=j:Õa_ï ¯9ÒžY¬ïɤ¹ë†÷Žqäj»ëÄ@µ ŸÔ×ðÏé?T<Ÿô゚á仕ܗ¦ ¢Ø¬!üŽ!\ßà Á]®ÎLï/V6©’a©R9Ä)Rsw :G1×H&­È¬äÔIVPJˆ¹ÔHÂ@)¨&U/´ówCÊJ·¯ª¾ñù‰ëÄÂôê ¼­!©!Œøõ£.Ãl·«òͯòayïs§–~9pÄ€Øúlà„÷@©†'í”b9Øoä`§¤ó)9åÚa„Ž˜/]}ÐRÌ*©‘À6CR±Ls•QN3K¤°ÖèLZë¸ÀHãæÿb ðãÏÃë‚Îßÿ\9WÖH×±XúìÙãÝëå'SÄ»ã)ŠâY·cÙµ×±à‘“Gk–}ùÒbŸ1Gög¯6¹ŽôuËd½\½«çì˽hÒïWkmjàôm ¨I¨áBâû; É·k·<øe¤|ó£¿ùüýY袸Ý˦)ÁHU‘t&Ñh™CzAgÂ)“)”¼/ý.Ÿ‹¹„‰zëÌ‚ KŒ­ÄÊ­`Ô­ "¦Œ°ÀØL -}!‡”‘§^QWŸôíñ£úýÑ€¤}o¥¤{x¿Ù×.”F¨~H\}ù‰Ò0ÊÊOÂyG(æd'<#C6Å~Ÿûýe<ç3 ¢¾³Úú Eˆw¼¥Èd4ã0S*SB™ ‰2yˆÆnSQD’U„ªñSjtk±®ÀH­ïüdÁu²µ9¯[ÔʧP;¶Ý¿ß–»RË|·›Çð8ñë}™8¿³Û­¯o®’º$y’Ú+Úî¶yyWýï>tu½¯¿]žP·Ôv½0E¤KkI6ì3y"ˆ\ȵ.•eÎ,(Ù°Ò›rQFJxÜ—¥Ì—‹EF#»\ýΠa¿üôG8úmŸ®;¡æ±b†áí—Æ#­ÕpÿN+-}=W2œñ±n‚«Á³<©Æªœ­"`e]Ø`H+ 1{>K`{IÄûÌXsٺꗎt¿x4¦@×\ýÑA¾ý^ã¼Itú\W…•Ê”Aãz¹6þ„‡A£WÌÂÆ<×ÁQ¹Yçý»;’ˆ¨àcX Ê98_?-7f§›¦d•‡.®Å§ŸÒ¥6æáÈ|»Z-\Ke‰­›Ý›g¤yS÷ËÄ’z½ÜÌÝÑèµ’¥7[óÞ895àÛìôêTdE0¨<<™£ÒrõÕnÕkѽãzÕí:«ø7:%ç«ün•>œûos߸$ÿë»ý½÷dÉó•)’j]öþu÷ñì¿d¡?z?ýßü¬—2YOê)!NäÁAÿÅ[‚¹×AŠ8ž¥”#‚¦´üä~·=nû9 ‰ta̲ ÊÁ2KEf}­;}ž`‰2%šBŸ¢8=½WûïUB°®Ë{¹jR°¿2m…<-\²Ú›SÜz±=§/ß!¥½­i-©i­Î`L’çídN¬§HzÀnÁ.»µg&ácqÄ)3ŒR2űÕß*ó¡’íñxËôF}G€ÃG†3®@ª4B(I€i%5Ó€Ò”0*uÀt•Örà0Ïl×VŽëŠ)VŸÙ´:Æ_CŽy]¼q¤†j4iè¡Cþ—/5qës¬Ç‡Ó’`*±ÚT¢ÓÒºôI‹r\*¡(ÃÊ ¨å@¥)7Tä˜A ¤¥8fjí¯k‰¹ÔòÊëµÃPFõ¡×kªZ~%ä(wË2A’ØUþVá—Ããm¾kkyÕMÞËë£[þ ŠÎÁ:x‹Fk‘rœ®òòËY‚¼½Éõ(v¡‹‡»Îw</ K¯àcÿ8ñ¶Æ<Œ)\#âÇ…ÞlÇ»„¾kOî)Ÿµ8Ñõ·V…À¨Çõ9Éññ"þùÌñ/ ¸O™=UĬ@ó$ ř̚K Eœ éÓT¤)°†hŽ1)4_"•ßíý}Ùm–¨åz{#ÿÈMåšÃº¹Þ–Éå#%çÛæß~ý¢ÅgØùêwKk‡Oú'ìºhp ¹ 6/*™4ØpëTý oÞíßý`—…ù(W+äK¸˜âa©LÙl„&ÿ$cu¦4+F?YÎñOzRÌ!NgÔI;°2¾Mõ&êå$´c¨hJ(\"œfÒrÄÕÌÉÙNîÑBde8c/ã:3ï~ÞL¼UÖûxÞ…ñzwX#Àê Ÿ‰Ì]H ñ€;¸ÛbkeA zaZG€¶¤£À:ÚûjÔö¶¬-ž¾¬O ]|¼ë³ñШâ:«RTí / v”¦,Ì!Ôÿi“BšB(fa„&‰±ÅÊé[Pø}Œ(Ì)+$ÊhC*…L (΄L… £ÜXœ¥¯ÒCœ/aŽŠ’EÅXäy¢äRo*„/$Ž»ËŒ‰d—VüJM³…·òÔ ’ˆŽMÖu—ðøÕì>n‹¾†Çÿ˜ìÍ»oµÜµéƺ\ÿ á·$¡¢Ë’ƒxtÀÕb•´Ó‹m%RÊá q ù§Ê[Ð¥ùóXf ›"­m&)WÌrK€ –0M: ‚&eP“Ú5ˆêª†­;öûºªË ‰I×ßU|wÝ:¢ØžäÃMÙàŸÀÏÏbÛ—øš—ñîC­UÄ›TÄÛxA[ïÞæÝžʹ§¼Hó¡µu‘zµ¢ÞA¶¿ï¯¶*¬^¨J´ÚÞ?áy}¨‘õÝv³+¶«ËEŒ«ö=²A Sكץ‚—É)(`„`Š#ÂCé„?SÈp4ÅVšÚLU°(§DKšQBeŠÜ¬!d‚¥¼JÙâx½ëcõ‰« å¤úÈ.ÈŸ 68‹ä[òîPSÏ\ +ÀùÁÉqV‘@eæë%B„…M ìÇb_&NãÈõÌhgDøÊt·6žrL4G s§©ª„Ð • ‰˜R<ƒˆZzØñËSò]uùŸ~ùö·ðøÝO?üý‡d-7¾$ÎÒtöB}ÎÊɶÓâ«_äµ[-–‡XùñCý£ÕìC‡¥m—a /-L±´íHëC\¿¯R–«;‡¦Ê`YîœJu_žï\ì–rå2_µôÙ•Pï D,¼AâÓùXÊ«,!s¯Iœ¯ÄœPW&ùøûÖrŸçÛ"’T#*ä<Ë8Ó !5`;ÚŽ$ëz¶Gÿe–íâÁ ãÁe‹c°J¼mÖ‰¤Z'Â|‹r¹z|Sú|ÂÚ$Á)Íߺôû®ˆ‹¿úøûqáq¾í6ëǹ;á¬.îõ«ý££·ÀWh¹îÖ®^­wy·e½Ïµ[Þ»›M˜›8ˇ^ÃàÚ¾¸}Ûâ}Õtk2.c³KvûÔû‹àÁzŽ6Q,‚µ·7`·ªÏÖÙX·6«67ï°{m?­–ñy«‡ÝÉ«? ù‚±^ó)ww¬×¿2¯£Ä»õþ ¬w»NFߥÝëXóR¯L¼£¦½HG¾/î£å).zŠïpºÞ§ÇhïZ~0‹µ¦£}¾Ú|¼³ÜÅßÄ:3ŸäÚé‘ñÎ\îÞG{j‰uy6‰Î~³Ý9ÈvyFíã=î·;ë(Œ‡ã{%äŠT´g=ö™Ë?÷r7òz=å.êÎÑn‡éf¼×]üڻ庚ntR»U¹È‹}ü»ºæOù~so:Š,«í¾Xš¢ÔC PÒÖ û¸uúw'†üì&ùq³¿«3ßYnÇ ?¬ÝZòæ]õ0§2ߌ)/}C#¦ Ø€mÏJÂ¥,æ[C)ãt†y 1”šû(̪bAhSW¯“©‚f5ÌB­ÓTiÆ-°L®°&Bqyi.¾‹Ä¤¿hý͸y2®7Dã‘›¶K}E"¢öˤǻY"˜ †Vo­¶Ôø„Zît¹Ùn×Û}ÄßÄ ËÍùJŽkÖYß5¥åáÃM“š‹±Ó_«#?îË…otÖ¹³BDa»¬u`kŠn8f¾Ú»§yXšæzÖ^ÚòªQ‰z]µ“<êz8oòߎ¯2twƒæ0Œ‡dƒäàõ!¥a^òãYIçÇ+ ¦ìµw:Ô¨; Ë\ ’"n Ôi¦5 h+©’b« ƒ¼JPÌo»JÝ•ÊÑu=[ŽøØscé£!ˆb$øv¼[ñrºHÓ˜®Ü (°*çìÄ^‰ ©ã&ãÂC¼“¼èëËâ¤Àýx'ªB®¢ò´ˆ”Qá$$Í- ·šdPJF¬ÒXÄ QNX:Dƒ´¶™¯Vt‰Š¯†‘‚eè› ÍAÕð¦Â›Š0ˆiâËó‘ŽNqÔyñ,/±²5³{Š«ÜÒæÃE1˜¾SÝ®ŽëyŠ¥0DKŒ˜pK›S”4PØdL `J0À0Ÿ9íR­#"4u¢¯n äê釸Ö8†h5ïqð‘ãô>ôšÑqyïËñEóõWƱ˜A†0æÏg‹3e?­…¡!À¹¶F(#DÅpæx#n…EL Ö›_¬»æß|aòî|‘/ŠÜ^:A¡gÉD„p:cìyò^Þ›rwŽDd°E<õð€dCQ…d)̰öå0!àR}Ü“ÿ+HD§v‚¿niéH6•,8‘˜ZJ»M™é8¿§øQÎðÌu:¥jJ{ÃÚ+àI¾sR“M¡Ô,‚Ρ†\£˜à€‘” C¨“­¦‹M_1ƒŽùp|žì£þ£þWC×#q6lY릇¾ÕtÈ;çJ£Íð[Gëi=©¥¹Õ•Ï0$àyâhs·óäQ„(á’J™Ñ™˜‚T!€2¥UF1ÞP ÍK— 9Ûy5³c/ÀîqrÃȸ0®¯ÙBÙá×!›ÞŠÀMNðàY7¤H8A™9mìYœ˜¯äróôv°H(J‰SD!·(!6˜'{[èTÅTkÅ_MàŽDd|Õ²vE-œ}ø=²,Ö„u›òu5·'9 ºóg ø<ÙÚÿ‘ûÝ{Ý™l¬.¡$Ra¿Í†Me•[êLã†sn‰´0ÃYzØt»Üôó$ˆ¿­Œ$S²Žœ ª:¥iߎwõ*3E<^t<’tJõçãÝ ’ñDÌü¦ëðÿì=Ys㸙ïþzœäSõý"wûÛ×>™Èj»^ ç…{i„aGÙ<йÉl3ñ@Ñ 9|Saú´”Ž•€ªyBZE¥Ö”é`w0…óÊÝ‘ÒúÓýi.,·Æ³|ƒ.ì[X÷¿PËåa¿2JVƒ2®úq¿ºª¹óª‚Ý¿Ñ^¶ö\=>¨ 6öß×ø](*¹îaŒqµ\üåØs MœÅIÌ€ÿ†BŽ,1¡,‰U;u·¨¶w30ç3HÉœçòSrW–r ai´FZa~2¥’–^Ù%×m–¹_vø&<9侩ƒG¯îª²\Wxík£.Ð)¡Ã ï¬ ä(˜úŽý"Ó¼¨2k1™Ðà_vÅ}FÝ:ÇG¦ªCýI^Ôðxuí·k¿ò¸á`Í q“ùw ìm¯ÿuÛ‡lMèã'f"585wÇY‘“I‰œA‚¨GÏ)¸ùÛþ®*îî×ES!¹6‰y`esÄoø‡Ú­9tÕ†ê²$È8@)¥“Š3«Ú'ðèÌ¥xª—ð۬ܲMÿø•ÌSõ$¾i&ñûÏ÷ñ˜íwd,#Ø9K@%∉^âøVZ[o%WwÛ¯÷ßlœ]lÊíMc{q7uU¨°pÚK>¥A½Æ«?~X8 Ú€ #KĹ 5U;#­Ë<”0ˆH‰IèÒu†•”†AïÝuÿÍ]­ÙÆÇá7×Éî¸[· cÝÊ/_å¬( %x8*äªßW U*—qrî†a¬¤Žh@òöqÕ¸0HxQ±3d½?¾‹Âã0?">„Rí´½ oÜí"äBJÖI2e¨Ô¶?0”ôëí‘GmŠD~äáÅœ ¢µé­ÃÖ`µv›(ÓÔ_éI Lǵ_é´™qYwÄ~•ùƒ½Ì€°¹Êж!Ü¡2õˆ Ö%E¿?>/+©ý%ŽÎf|vàúͱD ¼ýr+ˆt%ú_Xä¾/[X+èB’³g2/nõX†a¸£FHÒÔ!‡-ÖO¥’a§<ég~4Ãð3y[fá'2 P"`! µj¹žZü?£xiFáÕnKðŒZà4£Àl@9Î(”Çh/8Ù…àRaëbE¥Bê‡ÃЖP—a—„§Ç…ÜÊÁ:<šQz6‰Iì¿há'øXæ@ëptáwxsÐ^™ 깋§P9Eß"]ZÎ$^Øà¥gíX… cÎ1ãpÉJNà!ëP?e×Ù¦/ÄOn«+i;†&M³E¿ê’>ÙîIžtÿ<:Êyhüᱨá1M} oBÂÔPp%Mþ3yÌþ;¢ꔦnMrmà ¹ô\K˜„ôXÆ.’f\K‚éËÓH.¦8½Æ£á@*‚dÆæ4§ËJ­Ö!Úˆ[бæ¤t€Á’**FA…¸gd‡ì÷÷‹íöX°|[ç›®öëa6ëØ¯ZðÔÍYWÕn¾ 6ÎòádÒç gèd "ÐMHþ2?Ú9”?{jõPÍ‹¸Ï9 {+øysº–ÙÉ=?ÔZ½jÈÓ>«÷2Æ~]^·Û&=Vyj•4ø«Å®Ú$-[·²Ée8U½õJR\>OÕ¶ÕÒýe±ë__oö+kÜž¹=Ýìå½S˜‡r:á†ú«Ò¿¯Û›ŽIÑ{¶ÛimftÝn;Pú°Ù˜Ø9ü.®Úˆ©ö¿f1âa¶_™Íb·ð05ûÉk]«ýƸ™¿Ã­ß§ªý*> bšø0¼8îq&Éa’±™ @LÉ8×¼¡-ˆÚL+W) ¼rj¹ÿŶ^ ÷³’y]•rÍ7¥'úå¥Zgó5OÇê£æã¯ñHáÔÑhíwsÆÑ%6WØH( yUVÓôð†ú(Ò–Òl§˜=D ÌâdJ¹æ=u«“R‘Î9í”Ú”Š2(%pŠ:’(Å1á¥5°Í?ԥ䗖iø]TÖîìM‡%>QœF«›Ž×9³NQsÌáT…¤SNÌë×M$œ2ìyO“Rˆ Ž&H (1—‚bCð>u*¸£ÐÑ? ¥ËR¨ÇdÞ”§Ü‡>ƒï:NlÔ§7›x¸ÍŠ8OÄžgÓüàöqJpŒû8¿è8çŒYJ2Èf™^‘¼¥f„íüD.”Ž™4„YÂ(ªtÈX/,•DJɈ¥ )….-MÊôûè’Ã’9ÞŸt“àÀÕp{ ÞþÅ@î äžãÌH ²=:AÈ œ®#ÄWÕ<ö$s€ `Ì(êE5D8Äšjk¼<„µÂH <Å\:=Û•P«hzCçI¢û"&gmNÆcŒXtÞ†é]€˜Ài‡›%\?ÎÿaCDX¬©u^1q:_«ÆSÜMP¯†Ï°`˜M‰®ßå·ÊÏyQÖ£˜È!µT—šhEò| s¤JX†|˜ÁiÕb°áo(1>úì»±2% }Và›û­©6þ*žÔú±pt¬¾$¡ï©I@œøõµíï“Ú¬£œu•‚HlöO@rn¤eÿÄ:аÂME2É\±DÀŒ3*Éd|YÝ}ªV~rÂ/÷ Á¬,ˆÖ)JåJmÄ 3ç´xc„ƒÂ£PyptÌb̲)i^xUÿ*|Óã¡™ëÂé4k¯Â)¿@Vù|f8…ëÇÃæõþI¸~mï ÷ àÇu¨»Â æû»Ðÿ¡ÿ"Àÿ#ˆÁÏ5 O¤”ÐÞ9Mn+’™ærˆDáŒaàùðdšðËj…fÑ9Ï9²i¬‘‘$ä‚ÖâÒZ–ŒÉS" Â@衬Ä]²áõÏ‘‹ƒ wß ñú̱î/fjÊGO xÎG5ç2œŒÄ”Žé¾zÇòTlæÂ+ŸHyAæ¸ÍHóh¶PõË®,x5hÐâ@u¢TæßéÎ#ñ_¾û~*î¹ †L¦‘b‡{Šd‚™L(ü£¸'¿Óísá%­iâ FVaˆJÆ9ÅÒë+RIéÕG,)•-!sÑã!æDÛÄqW.!Šòm!'ªø…Ci«mŸ€U&1ñúÀSÜßë7}ɹQÎÏQR‡PÖK”Jæ'-qH)èmæ´ÁÊi ÎfD>ƒp)¾‘îü|ÎôÞ2@`B¶dÏ2¶T×>¢èß«jùLÕ¾‡=s˜„>~†L ÇgÔz@ñ?ƒS03¦†ØÎBéNfœÏIN¥WZqŽ0å)+$*U¨*¤Ki ÑÜA‘*—î»Ã#/P×~1wã\Aèéî„ï™ i÷¸ˆ`sD&í6wné¾zµúfûÙ¤Xv£6æÓ¢“©NߘOÎÜ­«EZÙ7[¿\Ë*xÈ¥ûûu§áSµÓÊÜí»­á3: ëü²ºí4nœ©>w2éù ïTwûõíFÙîŒýM'Óƒc#Ñ÷{nàè†v1°ïþÌ1 a¨×¿HWH8¡˜Ï`œMñú1õ«§U^3÷?syôB£Hšpø«VŒ-´€YG5G®4êŒ B/„ôúxÚ÷¯µ‹ª/ëå7÷SpO¤vz?ä"BÒ‡–<+ã &™µÚlSÔ c—åþ_‹Ý~³G´6jýia¶Áã6TH¯6-²ýqõuÖúM>°áT÷d"abI ƒ‹Ã´3ö3,%3Ä™œäaaë$~YC(ŸÓ¬÷©B!b 1ŸV1$)Ø1l5+sJÃàoq 5ˆº@^»¾ÁaãÂ,žg¤¸cE»Aê-*Â5ÎÕMWâoݺV7=‰{u¦ic‡0¹Ûz÷Š?ÿT|ŒîëÅÇÿâânJAýݯÿáY‚—BÝi520×?”Å’'‡²Í Åqrpˆ²ÉULB­õÓÁs/#¯}æB‡ò2'µÆKÔL k2 cAY‰ý­¶=Rºµú*„‚¾b]sXÕ¯"´vsÐ=ÅtÙéµå޴εåîO™zÕ÷exðÙ Ó§ÓmŽˆOÏãÎêd¸ô1Fð ÈUøæ–ï× Oä(62“@ìŠHìÙÇÚÎżÚÜ>`‹øÎéýí­ÛŒŒGE÷inO˜ÂDã°¶H'Q6¤—…ABõ?¦p¿Êfë$›à‚µiΖ .©Ñæ0g^nŠl=7(KN°t^H*Ë6©·6g¤û— „¼UÀÞÔ›|uØíÉ~a¿›¼ÃÈÃå'·\çâo¾UA›>)óŒ@V_ðáD$ÒsWÑ›_α@0O{÷/u»ÚÄc¡<9/4í(” Bê´@Ϋ¦”RRR­%¢X;€ ”m‰áY^¹/kgvçý÷sͨ—¸¨—¸‘âë¾ÎÅuLiïïHŒ7ûU(õ1þv¿XבüÇìÎé—³Ÿ÷z¹0­Ixö‡ÓßµÀ™Ûÿ¾ù‡z,ÕÜQ¤Ÿ“IßÊy¨I‹OÉJá–ê«2fרúê~š8W,Æ”FI …±Îb¸6LEÊP¯Oj. Ô}îÉW‘5Wï×M¸·§š]-®&ù–Ý.ŽÌÿµŽšN༡¹«å×HƒÎ À‡‰+c÷Æ"™]ÆøÂ™ÇL™Ý;åŸåב̸_)–jÓÆÓueCNUÄ). 1-˜ˆ a΃;ƒçê®-ey¶ÊG/¢cùo*H¬øM¯9ž’ä:Õ £Ìßþ¶X£Ã¢Ð׍ÌË»¨TPè&E¡ã–©õzù5Yl«\sãC³©îý/7ì°þjûu• ”uÛy佺sÃZÃã2HüséT>–!‚ ÌDiÙv|qXŒ•QT ““D¥íV›",£ iWžK¤ºœŽàßœ sÍaé¹!œ2©¼š`¹Ú¯DÀyëâÓdxÑ®ZwÝ>_Äÿõ¹µ„^5Ù÷a²nõyÔÄ5Z(gû:YBg¬TÎÅÖ­yLešÑd4ºªîâ¹¾ï’Ý®È8ämq›v|‘:2¯]×eÔ}z•–5ë|8པq9_–3ÔSÉÕM©ö‡jɽÏv¾sUíåÂD¼ÌÕƒ9CÅ7 ÐoC™Ÿ÷p²BÙŦóà>W¡®T¤šIó­½?ÔKš~9|ãæk·ùÎ} ñH i®¶q¹:=öý¡eàÁÀ’-–Ò(š2½HʸøÐ3~(i’²s_‘Ì:”(œˆçSŽ„ò’¢6Ú˜C&™5 Y#JL„-Q‰°æ–`&¥.5¢VI\J-,‚iíåÍ}ûÛÃÄ•Rê&xªD^03ð¼`θ—æ¼#Œæé§ÏÝ…¹ˆã‚!8|ˆQD€¨±¦­Ãнº.×Õ†0op}¿¸wáen”ÇÀ&ùM@Ô¹½þ¸ÿø}#ˆ §šè1ißbå9Är9ÒûY-^þI\Böëp}`üm“'xiŽ“ƒqTë‡0º¡{kqÜ”Œ)ËË)(@SÒQºÏÁòí'‡Àˆ®ƒ-¹CŠH KGމVBX…÷W ‚6ïÒ}õÛb¹TÅ—ýr³_­ÜJpÕ¼¦­ÊÞöh^x:9êXº¤W嘧4•'œÈ*/—p<ôtíätÌR22Ý„’ô¯xÿ[ØòÕ*MfkI®¶ëÍÀÀ÷&—f8¥ÝŸ58YG:§Ư+s×`gßþT}á9—Àkž$â ¨-篹ñ¸šGeŠJÖ/ (õ«ˆèœáÔÓN9spC1Æhƨÿ7Å[°yAô8* ÑÔ"N8×Äku†"Qe•¥œ›’H,”9”~ï¬öU\ä6µRKÍ“ë˜âp±±¾ò4µí¨6~Û‹œÔužÌMïè<2ÝÊÌßdÛ(ÈQÀ ç3$€œtâ˜È×'  /°+¯²S£„±9Ç,bœ¤–1ˆ¥<ýéAí£-`r8É l&ÕKã gô¤dSº´~À3k—Nð8‹qø"äÊ#H:%È×}•DïÕzí6!‹ ‡þ(ëÎM•`PjDÈ=b•rðR•ÐŽBŠ™“®ò6½ßÙ+¯s/÷ë~á*»(ËW) }žÒ/£äù¨W¿ð„lU ¤~úÊ[=摽Á¹î™ÞÙ ,ŒŒéJÔÙ" ±c]=ˡ炀s‚àùx€éÆÈ¸ñ®ËÁˆ\c*Y'´êCK­ÂÖ°XFgp£aÔ¾¹¿[UîZ½ÃÞÇ´‡Ë­ÛíŸè³zÊg{”Âªå ”ú &·ɧæ2Ń3J1!SBuÞÔVVh§™ó$ bÃпÙ{ÖæÆm$¿ûWèc’;yð9{ó!™Ùä¶v³;•L¥öêêJâ!3–D IÉv~ý|È|’Íå$ó!±Ð ºÝ@?„âÐȈ*a¿ÀÀ¢DÆThÂñ¹¤ ö6j(ø%}@Ä{e»—²0DGåbPN‚#¢x$9ûóåa!tRÄM”m“–îaBìÂÇf]†Ÿ\âŒü8I„ Hœ¶@ÅaxÏ0af¥Ñ”Põ+¹µtáÔ`tésäŒc#µ`±” H¬]`ºá aˆëPB±VÌ Ð»%-³l庼ºœ3¡ógÐ!eúEgéqö›%й»(|}8ËÖ…5ƒV¨òÛ´ã|Œë-¿¸+êáW·š&Íõ5ûÕœzgé¹xU=³ö̺=µ1ÿ•—_Ì«ßÇ£w¿³ZÆ«Ÿ«ÇóÈìSùБšÅ]tï?|Ÿ'ñXñˆÍ" `<åJÒ>^ºø1' 0öÖ‚!’qˆb.!‘äĸ $ÄD€Ië„(H{'¹Ñe•ú pgÂt˃¶í“S?œ“ÍágÑ„½7Dô¦&£¹#£Vo® Ýøùªa>ŠÁ9ÊPo«×œˆ†ò¸î$§=¶’.²°¯N8ä`#Oñþql{ˆÏïgJ3ÆH$ÂI¬(4¤ J ·»bXãÈþ©åˆ·Ü î%×UfçóÑæ«téq*'ó냛Œ}êïMŸöLàËLê§ðê=ÓÎ;I1z;h‹ÕäÄhY·I}Ñû9/džnËá¦Ù$ÄxèžÙgñϱgr]„·N„BVc9šÃàÞ’»8§£‘J8r9”b e„\æC“¢sfmeaÙÞÏ់ü¾pö˜?2§Ÿeú'*ZuþhéwÄÿmœ··›ryh¦ñùçjÇd@lÿAW©¢)¥î­ˆ£2 ŠJbc-k©±â„ÅTS b™€XA)]ÙS1µO%Ƶ…¤úÅn\îãén®Ça’ç B,¿Û–•˸Œ)|V‰ÎÛà‰Ab8%¶~HQ»^ ö<²ê¹IâñR¬1ÚÝ߯ûv…ªrn}õ“^¦E™ß}}ÑeÏ#"n«Z×i½q«ÖÿÕxçx«Þ—-Â`0ƒß—I1l»­}´K3yy`…Ncyð£®íV€¡î½¶Ø?ÎÌúüâ· };" §Ä3Èa„éÄÃZVΠ¶Á—ôÄ@¹Û‡D-2qB‘šXÕ k !NHœhŸoRƒ/­ =7Ÿ7‹êÃÙ¼ZÖŽ;œ#ô~òXÛâò<˜Ö‡)ö,µwˆ|DQ£³„˜ñ>©W=æ‡Áz¬ "6c8ÆS<åì+ö¬*èåËzk5Aª"a8Ž"©-}+¬¬ÖA„Ær¦Ak uŸÆO»îüÝ0°¨ç+íñŸ¶ß™­öã¿Ûþ¹À>ûÂ=š¥YS’Ž\4äü¦!è¹%èùÖÉN&Ϊ¡ð¤ætíù¸©ÞljÆïu@ƒ}S3WÙÍÆ¾ƒy=Ä#¨»m±·å{uXÔe«߃òaC1Úï{8MS1ºÀ`nYꩈ1Vß3zô€c÷‹# 5T #¤'3÷l~¿þ>çbh·íAœÑ)_S1³*6³C¬¢í“˜G\GÈy±)$Qd5ƒ@-4e<æ\Slp[ÌjéNYëÓ®¹‹u)æE©ÚzvËòºýs³[ë<•V÷¾…n O W<.‘Cx›öQ®lèS=<¦H–qVeÝÉÆp-%ÖbéëHšÞÖ¹3ûNO\\ëh¾‹"Ûm”§=J&v*Í\È¡´Wéü¶=øÈš­×u† ÔE$Ƕ©7ž6,î˜í>-d.uÔô©¡rºð8QNŒŸéª‚ý<Ÿ4!SBáŽf9‘¤*1GçŸ<äñ¹ƒ}q{Ï¢ˆ¼»o~ÿÏ ZôÂ6Ÿ"£IHåöEñyÞ,àÀ?ÖÀ»ÃY‘Ÿ7jï¶Xy¾þsäcy.—?!ÔjQs`?I½9©¥«B¨¨a·ÛrÛÄÁ–ëä*·»ž}ð:øÜ]QfA¨o£¸5—é<ô³Ênä•Ó>BE²¬¤`àöÃŒÔÁ§^m—«@ÏÔ¥ õûUÈë"Û„À×" w­Ka•ÇЀ×i!C]ë+Þ.Có^ïs!`QZ5þº+m±]í–éf,„ Îmq%¶:ðP;·%rì»_zîÖAÙ«Û@§›mèq·V ¬xñœÅÕš:óÊæêÐ¥â•_8´êFÑR {2g-°îx< Ÿ1ˆHÙÎqD0rØZy'ŒÍD’&DH«´&0‹5œq3¤5VøàE×Ì3³{q±€Íjâ«ùYê ù><0Ÿøhºn"7BÏÅN* žŠU¶¬¢÷Þl›ˆR£T¢cJ°Š¥Á.C€:[v$ɧŽúx~ó³ëeÔZäfÐïÅ(l ÙTõæŽpzû€«Üwºtnw+:èstMCbÒe‹[Àù•A²$sïlT¥µ”3¯(§“½wYïºô~u*´wU5„®­¼LÒ±|Ô=d8¢¨ÇpmƒÃgù‚p‡¨Š¹lÒÖ±L¯ÅÚi€—®š%öi¹Ä„ÄJ+"×1çÀ H”ûs«ŽµªVêÍÝ:§žæ5× ³‡_%r4r3=e JÛóÝÛ½f{¯§¾`1…ff=¿“2Ûm¯²2óê5€Å6Ë=g¨¿Šbë»¶ ”¬»õ'õ‘¯«2©ã ‘k¥wáxê-ÀÜz›«£'/d—zšõmºGž_•ë•=Í|Ût®šÛXàiÇÀ³×,­Ì|ÈùÇ|I¡öÈMµ)©»¯Ï‹®à†– ’X%»uÿȯuž%A`¡] ÷´Ë`Ïòj·N6¢ºÝœzû„a»¿5ûŽ+Ä/îS×j@…âoµ¶àZ+]¤Ë‹×¡Ø¡ºl€e®õZ\e7ÆÊÍF˜Þÿjç7¨nŽ*IõM°ZãAámëƒc«nt«T7{ôý$U Æ)„[•aŽð¤CÑ×W<4Œ0Q„ bE¹ÁI¨†DÈ(cuC-~×Fë‰3ž plïôn…¾½íñûÏSl%O¶3¼ !ë,„úuW”r—ïr6ˆ»rç]§q7NâXyW–éfy ;YíòJ;Ž•åÃò,y%6½Z§·ÂÍe&V'ñ²Uö€6œrG¥EiU`»µŸ~ž^'YqrªMºZ/s1¸Äó!Úý%ÏJ1ª´áÁµÊúÖÎàé…¶}.r­NãmíB V ë¼,kï¹£˜+½)îçóö&KíƒuµžÆÎÒU5àSxÖl)\uÓtréÝ©<ÛžÄÓî“´Lŕ՜ïþIÄhê¼OÓÍüî4!ß\Y <Vñ§p‹¾æÔè2?ié×e:cu¢S>›&ÓÕ1­†2!˜A(‰ø”8 ãÓp\Á¡ƒØh Œ ÒÝ\Ie ‹¡‰ÒPþDÕ!_ðîןcžÝu†x”!¤ñ8žAl ž’õã]š[Iöýw3X¥!Þ+S@# 1H L)ЉTÄ’é "µ”F¡¨MaõGo¡c5¿Kö‹ÐÏÝÊ´Eø¥.*˜IÐ …0‚κfWÔ5Ô¿iÀò.Ñ9½Â]2C½‚õ6¾ K…„¦G€8 ü5»+ÊT†íJÜe"WA„*?¦Sµwåœ\k!¯Ø¨LI\æYxbÖ»* _¾Ñ™ÝÙÒðë7ÅØ>õù¤¶à­Þ¬³Ý&üÝÛY„úÛEÈ…ÒÙÈò.ľó €í&-VÇßP ˆ08-0¤ap¶¹«îüàR™ðÊXAã‚×á±í×7"ƒoÖ1¿½]øü„ŒÛjÃõÂn֖ߌح‚«c1jY8D8¶ã¤moyzÃiYŸÎA1åh…µb–g–u¾PæØÃú¸ö½ÄômÔí&Œé0²c¯?²[Ù–*â›ZIt!ãËp+ûívRo{?—½_µ?@¯ÁÊ®AKe_gy¯u%ît¿e-ŠrÐÔÊ„^c!­z³é^à7ûM»SŽE¶Ëe§àúºZú^ò×Й\gwjÞ¬«òäÅýGëA‚ÃDÆRW$JBNÀ˜Å CZFQb¬®ÃL{ zŠNº ñ†yî¾p‚Ãó<Ÿ•Ïc†Ǩ›b¡„^g›‹–"ßT49Ûê@M»'ÁP hòü¬¶—–o/Õàç¡»ýõðÒuŸyÁû±6Ý@‡AvS5mQkÞýóçAÖ¿€¤òóHÆÚIý׌µi>E1c³ʦx0e²&ö­ËE8#˜[=Ë“sÕ€Bk,‰™elj1ˆFT(G”Ó3Nù÷» §i—­ÊÅ9¯®£•7ÐΡ€uËñ›·ÙÆp™Í\9¦ wÊ4øóÃ@}Ñ•”“±ööÿ¬0EeY ÒŽÁ¾"¢Š@( ˆ5GTk…©¤ÖzˆŒ¶¼#D¢„«·#8_2~b£þÅ¿Ý/Ý¢_Tÿ•×xSÁ¼&‚V1lÐê_îÏËua» {#ÚtüíÓÛ_¦è¡W z×Ö?$»Ù×þ¯uà³ËSUT*éWîÞ8çï8'6?Ùâ6i×@>ô™wfÉãCâ.ÒgSM)ê›íµÌª"w—:»Ý·©1£@ À™”8ˆÇ(BXdšˆF0‰cÒpãöF•§©&ÏK×YÑ ËÖ {ÒºÝÖ…šC_x,Øã éeQˆmº¸Îê9k; ´øñoz‡…ô~lƒ¨}ˆniÝÇŸr°èóJ¸+>®î×AzÚo\À¾KÏ—úÐh'÷ý·?.`?tjûÑAéð¬óóç– Ï„L}’'ÂK"u`p!ä*< ÅJüv·Ð·ÛÝf©X,>î²R„Àp‘ºÂ®'pÊ\W0 Y+—a„µHW‹U¶ cüfÿ€Æöë]‘ê½÷#Û=éM³+¹ÓaÔØ­5¨÷£ýÿ¼b[}+ÖÛ•îæÒ Y2>屌»¯v,Ùiº·LC-Û›¾µÚà5Z‰Õå__Æ·ÛâÊ«æã¦ì_ÝBIaïK]û—a4¾GžÝG¸§šÔ#í,ÇN°†ˆ]!ƒIåØ³Û»¥ÞØñÐK—$ú¼ %Œ¡‰€ˆXYÄ0ÔH, †”H"çk'<\Özö¤I¾pº\´$÷¦&:GÙ]/…Úo(E8­Ë§½¿z—ÉÙÚeäíë!;aDòC{ð˜u±ÂŸßÖsèDh„11k´OàÃï3# €†2NµH"ŠCCX¤(Ó1SRM½³ýc•Š>®²O„ÇUyŸH3r6µ­zC¥&¤Ð#‡ð/L¾“Åè;vE2·“ëG&ž‰œm=:vã ×Vc_äá8–3fzõ ý}Ò)иç‚…ûÄk}Wt¿‰Ž¿²ìýRi‚óQÊN>'U”‹ª4Ý}Ë>Q‡wMÃF÷ )6½†2Ƥò¾ÍTWý‡ŸËÍ®Üw\Š{ý‹Þ@ËÒÒäBiéb‡»ï-{h‡íé…¡î²Î”X¥¢øj+Ó×{àüå †ÊýÁ!aEÓ¾-ª6÷/‘ßò›ô›¯Ø¿E‡Îÿklï·ý¿É ûÎÝ-î¿E®\Hë¿ßàÂ[ˆ'g'VsïB”|TèIÓL†Ñ BB8›r„²Wÿ‘ß4eÝø%´ôÖPJ2cÁ™5[°ÂWqN°XGÄHc‡%´S”OÙþ\Rß^EÈ£ñÚ¾|z_€±À±ÔO‚Xå‹l·œ¯ µÞ9ô:Š@HDRS’CÉ…â 2•†‘  ­/(Db”ÔÎZ–20!O›tÑè¿Êº–3Ó*‹¥'¥†Ø4w˜þÏæ\’þ‡š­ë± ‹´TN„;TÎÈsš8V^`,væ™+ÒÅñ.8i¨á;ꛟ‹?²<ÿ›éwwß%êóÿ[­Ìßtcþ®ró÷‹Ðß\µH>XYä¹²é߇~®$ôÖï«Ìÿª“‰ÎBodé2·`mV÷Î1»À1;g+nÁ oÍScQ¶cjú`ó™ÚœëÖÀ%è&¼³Ût”w#[Éçîï)ˆƒ}‘áöâ·§À#.…<Âx1䘟J¿ÉQH3Jãb¢ƒç¦ÔÍpABE -#Q–ð˜G‘n CJI¡€ ä2¦Ôû‹F·bö'çó¤w>sùÖ9‚òZlÖo ÄT÷sPŒîàjÑ¥¼ ’xWšV`¦¤ÕÕÅðÕµÈÝO:÷Û›šsýK†Áª,«Sð?Ù¤Z‰¿3ÉÍ%kÙ¯½tv(Tß=M–Ocaº§»p'—Ý?‹Üú,Û DÕŒÿ¬ÿÌÿV”™ugFmÐ/ôÏ?ü°+ß4— ùšpG#ƒ'.’fåmÜ=Yù!0‹GaÛÑg.KYlr7¼Î8ÖZ^+p¢ŠSã(U48£°È”‚‡1Œ“+\gñZ«Í2+­¹÷%u“-„åÇÐ&é¾³-Ú!Q!L’ 8NµP‘haCã7ƒÆ÷–hEé>Þ¡:„nù›|³åzg®Í¾ – û½CöŸÔÁ¢•ä§÷‡$õ׿ÿ™µÈóð¾(õ#3k™ôøôá/þÄäŸ~¾Ç_DìÀ[òä7=—¶à[O‹ý-óôÍÌYÖRxž½«ÄãûóÛÆì²žQê¥ÿœ/ÖùgO`Q_ O»–MŒ\4˜e±K²Â ­t+®³`Ÿ®û çƒiÉ£Êém9.|¸PA„9Q¬+wõª º.»Ìwû¥ØOD¶)<Ö©,2Fw€ÃiltŠ ¯æþÔ3Ê8 ×ôÄ» DlEis#Ôzé¬Uéqï6éüÈ1\Éñ7æ Æ04{Ï=MHú%nU»+nDõ;­#újàçuvïÒxVŒÌ¤ŽA¶ýT-¦yY$»\Üc¨<(iR¬nE9 ö#³ݦþÛŠ¸Ú}cqþøcÀ‰É<:(Ì›Y¼X ‡˜=ÔtªŽ— Y%› xºE#Ðìn)VŽBFSA-}>–ZÐ,«^Íü’$±1¿ú‰¼yÞìxûV›‡wòð½'Ö…úl"ó¿ºS²B–^²ŸdóëûOU“¹†nª† ó0ƒ¢U²ê•¿/V»ÀöhT Uñ¦øR¶âÖlçªâF+M­Soz¡ò¢U9hcbL}ÙªË!ªÑ×_cúyUÜÙˬ¬F­á~,4 8ü¥£¬¦öjüh?t’Ãô©yPOˆð±ïßO¬Çv‡`!Â3 eœr\ß°ƒi.ê7Eʘ1JÌTÈÍ }¢DšŠTŠB˜<¡ï ÷ªÍ³r­¥R÷#пv"w™F~·.”™ˆÌßîR[ñíwûìgBm3ÖIüÆŽôÿOÅnMú¶ÐÄ q$Q¥ú] Ê8¤\E@ (ÒP(– eÁsR]ÅÛ.×6ý0»äñjŸ±Ÿ9Ã=CàîŠÎÏJ­!iVݯ³‹øaWøÇ¡,ýêé#„b>csžro_sá4aÅ(J8±ŠeQHUš°RýrD#BÀ ŠÖS¤ûñZ­°0ÁVéíªècVá­Ç˜»ôÙ¨×Ë¡¹kÔìû›ç]£æÞVûÿüåÓ Œœ>Ùá £6ã á[#vÖ –çYSÝòÓã¤qÚè71ü‡**îçûjÚ{ò2æ[W¶§ÿm\ò›‰.lÏû®»ÅÕšV¿y¿;LìýíR#h¿I?¡–o?®®¿»º+6 ‹ÄÆ@yض'ß[-M ­CåËB”Ÿ²¹®Œ²kL›T€0ô;U$!œbÉ£)2')±âa„""!%ïç‹}@áT”k•;û/}Xî_M•ï°è7äùîõne§ÂJía¢¯ÉŽZk÷¹Á£o<+û9›„.¿Á5ù¼sXj±4y©ù@©Oæm‡ Gûèw—Ñ>¡g=‚Öx=É@H¨~šÉO}2OÙ'˜à,2Ž• QÊd/ŠI$YÂC'-$"" Vµßlo¾;ÁyWô<{ggº»˜x|2€‡Ç´&À8¾1Ìð rÂN‰n®^s[d77ÅtS¡LQˆCFô1DI MHK@*BA›Œ °²Œï:§m nšÎ‘ / f¤š”ïҬá›o0è;Æ©ã©ù¯Ð6qhÒ)Ÿ”ckUÊM¶6# çD„ÏaäK²)•Š`…Ô"ž’aDRƒ8"àIˆ JkÑÎ) í, ™)HÓÊxªùjq]”[÷þÀhÀe …‰'±‹]ü/ö8° ‹ÈqÊðË>œXÔ˜zµª~]5¸ûÎaoà°·Š\ª€s™¶ÎçLžåõº-hU´ÌÍYÜþ¼oØqy#Òå²d·¸U­\RežIµÞdm¹®ÜjžPÞ+wßß>M«‰^ºdìc¨UÝ´'˧,2È´TÇ0!øÿ€¢?î« J0‹S¢BÓ$ä*‚$…ܤóM—Y†SplçÐfM°½VKu¥‡ÒÏ+rÀ'fýu{]¬\ÀRX_}¯/¢§*"0f÷=Ç[ùÕ)ùÕ)y`ê}T§äâxìóVwji³Ü÷ž®îœÁö[®…Gì~ä'v56…Ïî…˜(Õm±v¢a‡—â¦ÇËyÜ—Yo»u°*¶YšIá‚”‡£ýò8¾õƒIYÏj1+U65˜k÷.ϵ ­Ô êF™çõ[¸¿+µ˜˜!]ƒCÑMнËÅÂã¯\,º)ªÌ(¿o†9ê8õãF¬¯3Y¾ý¿L}Qce }ÕFk•£'Ø÷íÁV^Ÿ¢ÒÇSôœy8C bž’«ª–í§u S~0­_°”¤*Ôâ†!OR€¢8U14ÀXí]‘ÛËrBù…¹ÌŸ•Òê¾¥K˜ÞÌWuÏÖý3_‹3_=$Õô²ayHB†˜ÍŒ"Oñ°]gëk±úZ LS‰—v$M`eÈ Ô£P*I2†e‚¨¢„É(&i“¬Ä¥¹Ûå›ÝJ+iA—8„™%rU¿¶»H°Úìi{ýÓhWYYhµHK€;~Tlt>vqß`—^ž£¾RÿØy»^uûWÝþ^º}sÚȨ‚ÿªú?¤êÿtaÓ.¯šþKÖô5P-c•èí°¯­×ëgü^öŸâUöWåzCú=ŸÃËá0ò¤6þš 5<úeÙ!îÖzSìãÄ]™{¦]Ë“ýŽgY1Δ/(3¦ÞÚÓ4¢É:ß-²®a¢‘óY; #–†Zž¶Çð{£ÃDOS`()¾¬îÕÙ²“ûôôØ;*Èø©é/jû¥ØÜ˜SÓÿWñÛl瘣VË|*PO7#œa´×ÍêoiM¥G7£HßÎ"†#ÊN9>­_ÓÎd?¦¡!NR EL!‘‚4ÒDA"°ˆÒ†JbšÔYÌZéêóN ú 0L¡ÒîS¦OSs'ô$¿ÚãÑpŠÒÖšìEvÉÇPsÍäec(×>ŠlzQxCtòjim]6tÙÐgEªr–ãðݶp'p“]J¹1é¦7£¤ÚT œŒÚlŠÍ­=CïÓp­&‹…Úì²Ñ¾ Unw›‰þ.n…Æ­§ªÑ>kýã²9ÞaW^üþR™dÜåö«Fˆk¥¶ã³DÅbâAK&«Ÿþÿfü˶"^lŠÝz²‡ó™ô÷ðí-ûMväTÕ.hF×hCÕ>–ºcUwˆ´×HZgE§ïàS‡GöÎÞO æt¸Á·ö½ÖÔøŠ-ýÃaxΩÒ`ŸÞí•D ÒZL Éz(N(ƒ‚DŒ)Æ£0N=ÙÒ»ä/ÿ”óßõÄv7:'¸ð¢Ú‘'ºÃç= ïCiëx„R1Æ …&‡4ײù¤Ú¡O¿îÇdD™H´‚Gq ÄR,Ò()O!M"À´^ˆUÔ§ÏW¢¼Ìoñå%öÈžB~gÖ;]µíP’ß„‚iD#¤I B‘“h©(myÍ(ŸoY1§ V8Ž™V¦9K%g’(K=zýZHQcMÉO—ª¬•ý µÇ‡*Å5}lv!ÁìCeQõ]…¬EV' g«l;OÞx»ˆr÷²z—ÒM®¥té]ŸéÉ÷ÅêVkVÅAVŸ¥kEHêîAûS<†+¦ÉÍF Cz’…t“I=‘p®·Ú9ö•ÂÆGŠI!¢P"“ÿP`FÍ"¤Ò$Ÿâ:›TåÞôÏ-1ŽQf‰pÓVÊlµ5†,ç35»e~µ[ý‘­ï¿ùL8Ø>yœMôé¾ã8:2xñÎaF`0£E3Ô½"½Ë@¬³~“qÃÒêô°Ùœ1î†Æ8h+ú/”Í:Óo5 Œý¢qÊ®Vw·Zð7Êú‹›¯~ønìönÔBÝ­ûÍÃoÛnÄàÙÛ^<ÿ˜wÙ8Hsµ­*·µÀòw%4æø ­Û><çù‡)oöö§Nxz<¢'˜èÝ·ÊÃèÎÁm< …š™I>`2(ŸÀ³¶×Æl8 g_õk,"À5—‚Ò”>Ò 2MD,XÊ0ˆ‡˜“(Äò‚r͸Ÿjï5(¶i Š}™ ¯Õ¾!5 5©¼!öÀ´8«¥áV‘Ü^§' ©±_«R•0îOF>UýWï 5$êAŠÕV/¶;áð<´‚çY9Þçpmá}6UŸîìi˜ë­LS–çÖ¹ñKVª‘eQ¦òÛ—,Y¨mé¹},¥¯?mYy]¥¾ï·—Ëlé¡Qµ±v­Û§¯Y?å# iA§ðpÔÈâ7{“€ðë$ÝMþ¹Û§Ý÷ÿ/“Û®ý~yy…gÈÞ„íMÄÞDíMN«IK}§{G\.Oâà¶ëc¨ëŸ—Aw@ŸW‰Mkv÷ªt íHgnª«æi76n·%ÿJ¦÷µk%X‹-$]®)®úõ¼Ê"|˜Q$QÃMµëÙßWøêüìcƒÆ¢:~’$|]Ý®}ÚeœNcíÂjsûø°É-­Ä¶ÉXêM†ðFuUÿÕíIÑáγò«iÿ;Òz @ËÓ‹xLrßBÇwZ4QiJÛ㟶êUcCzœ´±e¹ì®W¦ J¾:“œ6$Êý0­%g‹îãÆû,º)¿Ù´üZo7/þ5(lCW'Òºº¯ýï@ö5›×ùú²Àø<¿Õ¼ÎY'Èb@e­‰qªfËÕ¬CTј¸kÍ–…íã;™;dº ú¡;e÷$Í0¼ZüRzó05›á~{?s 4,KÔÑz­“†Â{zo#¸Áð@+SŒÔ¸ ¬S`‡ ‡9>Ä̧Nè«ÿž' …zGˆp!çÈ;Z5€ú:B{ Äíø»ÂÂT LP/*×Î×Í(Ýϸ¼ È &­Ï’µQw ÷Bâ6š“®é(]‹ 2k«Â±)\í Ô68íj«1!P ðlãÍ.Ìì K¨lcI3„4¡CîÛ š@  ûu _ÓY^ÃY]Éu\¤Õ±Y H™˜ ‚™°W tu±–b‘U PÕqT>µ;F‚=«Yµ Ua5Ÿ’c¬Ö1#*3”²a(3xê ¦6XªÁj€œ Û<Ÿª.#4|¢´‘I´qH~˜PGlìcºˆÂ $úðƒ6˜Ñ‚$˜Í”Ø‘€Øüþwßìå[ûT£ãÞgj­nú>6µÏáüú9u®W ´wvÀ/‡B &ƒ.vÝCùåõ“}l~¹ë;Aˆ=仞Bäz”¨¡Aö=äpH}ì—»±‡±‘žÌÕõ4­__”êèòWî\—¿‹(ý3ûûo™˜ÏŠ×j<Ë+±ÔR]#M©âwí$¢Ô­+(BÔx_î25®é:ý|»¹É/æV%ÿ¥Ý‘ê­¹×üv“µÄZ~}AÝ :×B² *Ázúð-%.£ª‘Y#ìýbê#Oø‚ ¸ÈuP0àbßAžçòºz`71QwàYGx2|o,‚0œ\Q“j"žøÐ G«F£XA ':™£qUþÊ7lž¹Ž\NƒÀ“@â ô0¦Ž€:„"¸RN)m S+®G‹”eŠŸ:Íh슟ʩjÇú•l‹–Ѫ_Ú*XóO?c¯˜ŽbdÚLÑœ½vZãÖzi³:(¡œœþôÓñ²ÍšöȘs™‹)¸˜gÌ‘iÍzýR#˜äÔg¡„’…ć!|—"_`W8Ê*®Ã‘C¥]jž¹›o¶tO¬†«SÀ0V2PcªUÉÇ$OÁ„a¤+º{cJâL7 eÈs¡Œ(È…ý0p+'àLÁ/‚…Âb"¤Ð0EO±Llo [æÓ-¼rÔtÈQI‹G)w’§Ÿ_e¹¬WÕ^ÈuäABÀ#땘7(~OQdJ¯*¥£>Æã@NöøÚ |@áÝïë‡_/0£þ‡X“ƒ×ã`Ïç0GƒÁã´G6ÆÅU{ê¡§as]jÓ©ÖÙýe ²[ÊÂVs÷AJ功|X_óeôEØN$ýyòA¯ŽO¶Ë`m"Ý›Êá¸L zÉŠqŒ&§ma³¤}˜ԿÜîà@'.жõÁ–±Œ1õ™GŠ%ö\DBÄ% Á ÈñIîQG¡D0è¦#µçò g<߇ÚDVA"Ø ý”L²Fd6dO3úêÒUœzDÌ„Á ¢®ËÈ»Re;a3‚42UÁÂR( ò’søIäH}ày>ä´HÒg%¨‰£Ù‰Çá»àUãè†'°Ä·¯ˆÈ”þ¬ô _¾üCÉ@¼xª9teYû™>éáåË·j’õ±ºQϳ±ñåË×ïN/òû±äìÝ»œÚH.ÞR\@”Ó86šËw½Ÿòòå/çEg‰"ºþXõب¶Ñ<üȯ‹ãÛí*#f¶ï?åËx™-X_›Òœ¦Å”²§!Û@¤”𻌌x}dýñf`ÈN¹â¯ü¶þ¿9;ýp>ðœ7¿¿Ï)\ ÅÛOoUÿ• “C-$ï~{}:À(ï¢ûbF¬£ýnΓ›]h.´ìö~ø»x_fKËŸ÷nûßHÉ^>¿Ð6NïÏ æ³ Âû‹Ëy/â‘”]ÿ÷ÅÀPþûãùoCÏØ,æo¶‹Õ@‡ÎNO¯”§ªw äŸoö³78§°iœ³‹9 ÛÖÉøõâíû]ñë_C¬öëJ\#À@‡ÿ‡ü6§±õø?Ÿã@¬y)×ÖŽÿ&¸èÖùY.iÈöóJÃÙ„þ¼hëC.†ù¼dÿœó[±þ=ÞˆÜYíÌy´ŒçžSÙ†1§ª†ÑÆf¿G·…Àz¶‡¥4§|¥ËZŒÖ‡ùçÅj›µÇÅ›|Ô¡m8.ÎN?¼ê¢˜hcÜ‹‹ó¯¿àKžÄË(Èè°µÃ:j–k@צ°.n” <:;¢x •#RÚä&Îõ¶ ýEœl.•û¼Ú pòÅ:ZnΆ¾÷¶Qp«üçBùØŒæ¥\X…Y±Ö—x=ð™>ÏI¬Ï‰‚øf@8.ùòsnœ¡íU—7ñzl7ÉÀ@]F× >`XRšaÙ¹Œ—Ÿ²åYõçòvßå‚m,ÿ—Þ|Sx©6­÷©pí<ÛÿïÙE9o%„Éœ[—jÞÑh_hy¿æ«›(HNR¨—ãÀ×ëM¤Ï¨¯0ž%¾ÐO-|<‡Ôð]N>-:jˆ&8ØuÕ;¹ˆ3j‡È}<:ÛlÝ„ÄtZ=4à¾Õ  ¤€D8/eà)ˆÇÂR„éëÇ>d¯x|û°½ãñ~´sÜÕàOõàwSÎTÃôÆÆ‘ËôOj5þ8ËãzÈòÝŸÝ¡1fBoAý!Çîe È"H¬õ?K‚ªª´‰¢ÈO$¦ëmDº-[’BkîWJ€š‰FJ ²ÛkNùj5Ï‹<'ºÄù&Z^w (í/œZ™¾ÊÔé4S§Ùêþ}x}’NHëçɘ¯t•gej6(žY‰íæÅP$·›x56b‘æû5›…–¨æ¥…®áÞ¼¤÷î4¯˜‡¥I³]fª›ÅÚÒu[¸CUi [¦§½× ¯–6•OG1²][H`N )óF™Â×ùó`¦ã3bZÜ  @.…Iì»Üs$ÀŒrà²Ðó=)dH‚x¹)åðqï³ô›Ÿk‚c6a¯²)›¦SV±íýb~'wØüÛÞXÕZïðDkG>ÃÄ­mHÔäÓZ ‡7cLØR¨e*)ŸÐ!ʤªÊ7îžòPlêŠ`rI\ a’"ø‡à@º‡Q p†=Œgf¬šœf1–mý¿÷qw›`îvc9§«¼jzس‘ÀþAÌ™õUɮӌ]+!åÛMœQU×ÒNa´®®„Âp-Jt±˜MÃF6$7«éZÖ,ëm¤ºõ¥ú=_m—ê!·Õ•Åv¾‰î•‰ZÔðO’…ú¯º²VO®ýšÇú|à.¬®é£­Âô‘εmÍünn—â.ñ#)«kÛ¥ò•A®®äåUjª­ý!÷«dÃ7ve§<Õ­r““ÁñCI… BްGÒƒÏF£ÚØa3úœ•íOä/èâN#hD‰ä eíÙ è~̘©2†‡(‘’ùÔz{ECÏ“ŽÀžïì!HSæ -eüéOÄʶÚÜÆÒ_à|\%]óX»üþôôJ}è€eN6aðÓOý×O?}zýËÙl~l"í÷§OÛ{‰ðcÌö¾º;îšÉ_el>MÙ¼f3uï²:Z¡ í½áb¡Ñá¾X¯-Wm/ÄJyWÄÓZï H;ŒM\ǃ#rXôÓ‹ ²E‡SYŸCJD¸vÆ•žGx€‘zp—è$j?`G†z±2—}Q·µ3‹ÐUÒÖ•Ùêªçck‚ó¢â˜ºÔ8Ç“§-„9ÈmÈGQå­ìÁRÏL”t“’¢¶MŸ9ÄÆ\ <ßóCŸI†|ɰ2+׊SÊ)f.Ê¥D¯µ"m)Ÿä¿kjé뇩1x™*ãhÌ·¡8ÑLx󢚦ÞÞyãpº(Ó£§‘òâ°òô2b9N*W@lªD€^)tg®I[{9bÎ1òh€ÐWŽšç Šœ€IÇ•Ž> ŒÉÏW4ŸtX¦ëÉQI?¿²òöJhÃíbe’ÙSå|ÅsQ+ð^,ÅšÏ[R;ùAÙÁ Ó×–‹Ží ‰UÔÓê ðD9lŽºÕct > ·+‘è\70!Š1M)êù:õ‚sá â(ï JßUÿÀÁˆ¸&>gîs Cí±¦ÀžŸmÊg4Í_ÓtN3IÐ,Süq²àÁ:Nfq׳ßÖ„¤×ëàFýµ¼>)ú\íOiƲºŒÕæs€qÍÇKɧUŸM{™]êM¦tÌR›HôVÙ¹NÜr&Lͺiý6”(}‡{Lp ÓAV ê(âpz¡6JNÎéƒÚRkªT¶JÃò0¬]I늧—,»˜+£©™§b»,á³C­ÝõGÕ–Áv¤G„Ïè#-ùÙIfÞ8íóÙr?Wsš‡éLSqÎÞ4K‚EÓ(Ø¼Ëø+WY&”¡!¯ãakÐe‡6ë¸öȄ֡¸ZNÜoЩڠ+—£è‹Uó~T÷i‡C½e—;n¹|3ÁÓÓ9ß–ØÀ¤éº.¨r]ЦÕXv•/ƒŒRŒ•ú„1µ$¤šŒ]câ(]àÎ< þ0-ò@"<¦œ©<O/ùX>ˆÐ÷ˆCPŒ@«»0ûCŸÚq¦Ëg Ì)¦ß¤ÁÝÇUÁGW¸‡Š³ôžTmX…è;ÀÚ¤Úw€oÏ1¼âs:õÝîŽ;j×z«éä æšÏ4=f+™þiªòB+¼*õÂÔÑA¢L›ç­:e±¡ÌóëÙÕR‚›M¥n-¯Tj»¸´{IŸ?ÕF›H<¬ØA¼Ú¢#[êÛc.£5õß3­ŸAƒ#ä*/!æ6âtD)7wXM2œ¡ Þ šNr`”nHD HxÈ%Cb N$ Q¡ƒ%ñžY¼zw]¹·ÇiNÝ~þq`Í-]­š^–­ëg½Êxkšñ–]0/í›E2 NÎù榷Ėg»®[s…4ý´ÞSâ¯r„¨Î©ôƒDÕøæ>5rd‚•Ûe 1xœòQ d¸>p=$ ¤¡O™}ÂåAPHüêá=¢Ä‡:´½TcÌ ©â Ïg G+ ~e¥j_ÔæUÊ2SÍ2vјl[ÖjãTÈŒ¾½âÌ–¼PÀj5Aª®MËŽ$xN\ìâ1¡ázw 0åH1úȸç î‡Üç‚0Ÿ†ùÐ¥ú2X¾ûØ5AŸÈšŠuaÓ$4uëU2â7ï<Ùò’–N™°>2¿3%m¦3=ŽX*9hÛ1·éµ\V½5Õ¾ò´3H2ÆÔ/XÇóyy€’ÂíÆÄ&Îð%’!¡õ1õ$#)‘à^@©ãÑМUKªÅƒ›'rÀÛ嚯տ_¢Õ‹ký¯þ]$ò{ÑÈG?dâ@ŠÌ¼ëõ™”“ü¦2½•vÿuz®¥{›LÅýF)Éœ—k·í~å+wÙƒk*qùõ Y>1LYNº6™˜ÕwÕRi6Ô:¦ª—5â²àeÃ’ç¶]¨ÃÇxÚld»ÊS¶»i¹sûWûƒG =TWáÂQ«9m;ÛoÅ…!ÄDcRK×e®ô‘†.¦H¸AÉ”'¨kÅküÿÙ{¶åÆmdßýzLj‹6î—lù!™$SçÔL*ç8gwj_\ ÊŒu;"å±çëàEIP’åñŒ=ÙJ#6@ºݾ<>ÙÜ +*öHëãB§DÜ#’U´utÞËà9O+“öd J¥P—#+&Ø#Î8>Å­Æ/àrKTùú€ Ñô•R Dájv rf¡d˜dNee’ D±aÐ`ÛËvòµÔ㸗…3ÞåÔ#ù—°ƒvp²ŠcO×­3ò®ß¢>^_äYgf¢vó4lv3w—Ÿ™¤CQÓs¿¹Þlôj›Ch—LȧQ(J'Ï6 Ü=Óø¡TfÜGÂÔ-­†u§›íá×›ý5rÆ8p?‚[ ÙÛª›’#D&œ”‡&§m ³ÍªÊ#êàö¬Ø ”À:¶dÆ%D#m¨Vkži‚S—Ä2ürݦ¿t$Â×ÞP¼òC+ÖxŸšf댱I½Òga‡ˆÄó“*ì§wxÜG˜¾Cvý“൱ÔŒÈ 愜ã6vÇ&îFª¼˜1,¦¡”)´†©É2h€ “ê4SJZᤀÛ|ŒÓÇj.r­_Iý ÂsÆ8¾â8p,÷…\žm¹ª»ÀÏhÐŒöÁçèË(p§qm¡©¨õrK¯IE¯˜´˜£ÕJõ6Áå¿ ì^%ÿ@=€?ÇǘUi`# zþp;zWÕ8¸Sy‹·Ûå¯Ý¨ðŸaÔ•±¥Õe·‡-täJšÍ!Á'ÎVEùxùÍ>¹í_™?7¡ÂZ³år®Êðì¶ß:®Ûårý¹L‹¸´E¹rºnß)_@tÿ1`>éÍÀÁ ›Å «y¹œ‡©œÜƒ«yeªê:§<ÚzG‹*Su¾˜«bÜXI’pKò÷$] nKØod¼ª<(NI¹”å‹Ú_µ¢àå½X-%¬…)1šB*‘!Nª‚Ta 5O•–ÈŒñLÙWæiøü»Ê£7ˆØÙT ópö1•›û§U½8§F—g;ä¬;¯YÐж(÷^­§E‡l«ön»ˆ__mëK£¶¾4R~„ºú¢(á¡Od{G²ûàÕ#áÃDBŽ!{Ñ'už½ý´Ï2ÌS¢4GÜÊ2C9UVk!u ·R£4KSqd˜ž·Þ¼úXgPÇŽ ÿÚTYæ‡Ýn\gj T—b»–¾Ê tnl²Y×פgýÇíR&¶=çéõùɱØ^ª¤S1qzÚN<µëªÆ<$ž¢°L¥H©¼šheêMÝ; YŽfÒ¢S6tö­zY¾[G³°Ui”¤^ÚÎ6í¹=ŒÆ„™¸c‘ˆü„€ )BÌžVÕ‚Û1ELBr6ÁŒ²SÐy¦´ßÏáÄ=Å2@аC®€†eÂI•œ»ýfÌ50·­(%žÏéÞóè%b˜üMI•Ëé´gYx=äãé²F¥¤B¥€z\[ ÚRUQjzïsÏ­ÉÕÅÕr³0‡ÂÌZÒêãò`Ï (PÝ\ï$n$8ŒQBñ„ÄIæÄ™½Ÿ¸>Çt"^‹ëå’j(4E¤D¨5"㌓T±ÔýßreSÒJmsòEt€& =š”^¹Råñæ²Áœ¤Âœ–ì}÷êo ä2×x8u?#]l›ànÿt ˜æ]÷$pÄ7S!„™g'Eˆù7´ICÛaX-hWœP)af 6M©¥LÁLa ¥RN©z¦ýê1ì턆¸ij ¤tÂ"ÐE 6£æn,é¯ËNñ?›•·Þ¨W™öpL‡ )ÅÝð,U„8%ZBÄÌiÆ‘‚Œbî6…¯5õÂ!ü`ïËQýµÙv,³A ˆ_¥ÊF6~‚ÿ\ÙJfb(¶9/z­SñíÀ¿ÿö¢ëιғNƒžÕUïÛ EÿΖëy1Ú:6å¾`áðΊe\ÖL#©jfÎ÷êÝ©ezíq¢~. CãÆ¬ŠjjG13rÉ%ó±Üà´twÛ(!_þÙû寰°X%87™Ì2c‰‘¥N`ÅŠYƒQØ0Çú¤ùµÅ•ÏÚbu›f§†\}£äúÁÛèû¡Î[âýÑê¿ç¦4{'+@ÉË)î7ÊÀ¯­~då]¥î¶™OúÐ ïŸu“/Êæ*uúpñÇf½˜ø@~³_.0¹Û•„vØ®Êöób†'½C/Ú3ïDxжé^2õ»€#Ÿ Æú )¼· ÓRBM}¼‚N.1ˆ¤C,È¥D}1åí»!3zûîÿ†ÀGx†}È#°ûL°»H}Úo¼HÄK ÜÍÊãh½Ô’îJRÓZ’ª‘ØË)AÝéì~jÕºè@j׿mä¥Yç$ ¾Ü¾6’ˆ¦/“õ L1¢êÑ:@œ€­û;’à †ä.$ft‚‰—´N'õƪ¼[Ìš:ÕÚ‹Wœa‰–@Z¬ÅZ#„Ê%1WϦw7ÒuHÎ*ˆ·O³'œhœP[b¾}Ã<ö†¾¢]6$¹³…ôFÑ\RÉÀ K)FdH%õ‰AðöHJN̹S­!“âD}¤zSm}Þ¿9r,Œß}aŠÒ »MÝ¥°œqʘÁ™e-­Œð«ûåzZÉ¡ïßiÎ ¶°¿öñAˉ›iè-Nwc¼¹/äã‡T?C¯Ï ö²u_±‡Á CÀ €OÅÕ£¸»È¸PeI«±Ìä:$N7꾓 áÆö&|Œüeñ4ºã\òÉ8e—t `š3œ€A>Á ïù~û0çÜŸ6¸?1+Ž7ÖK®õÑP»?À‰’ )·Üá ËÀ-êýöáÌ[ '‚Úû•Ó᫘pU~Á`Í{¿¬ÌÿØðWC#®çâ~mM¾î©' ö\Öø“TøÓ¤ ½oµôðêb±4ý¬Ã‹{¥gƒ#·Å½¾±úÖ.Ö¶YÉÔ–>]7¶¸-—«kŸì3´¸–\Í–Órk¦vBüËZ¯óÔ¹¸gå{Wª(>šÄû…€jC@ߎÑB’áð [nV!à.·íºýЈçÑUõ8Çž~u$MöÚ9"| Ç§„tJÄ–OÕý“`Ý#{$@±Š5ä‚ÕØ)½_ʹãÃs ‘ÄÌP4æƒ2ÅŽSIVeXO™N r*BgAå‚&»ÉŽçˆ– ŠUŠ@^²õ¢,³ï{lš¯±$e‚ïÜâèe¥Iƒ¥q²„f3_uv½^®;Y‡W8@íÆÜ¹©èö)\—Å´Z-æ}PY.; ŸŽ û~ÏN:€OËåüõðÕÍâäÜ7§"ÆyGò÷$É;{:Í:1IœŽÝúM<™øÌvñ:„PÇ9Ô@§ f;)œ¦RâTáÌ•1Š³Ã¯µáñâ ñ?Û¡Èe$I…$ÏC#]<¤Ô‘ HÄí»QENzÄBN$ž’ücû–Öz™(æKsËܦ¬ˆÆTi%’)Q™4îŸÓe!ì¥øCŸ`=|>Ë¿ëþŠ~m¬&ŒÁêÖÑxn#‚9à" !'Ú ç߸MRGGR!› Žef ¶Š¦Èa5ÑŠIl¨È 20ÃtØÆÙ'·ÏcŒŸû¼`¤ìÏ|;绕Ðl÷%?Û=™Û¶>Å{ð’ Aœ I¨CïS3Os“;¥Ì=]N8¦oϘä)´<ÍTf|>'’¤N4á (l±¤©1Æ¡è·/”4ö¤3Ô—+šø4ûZÿýÆîùÚi.´I*´ ‰©j?Êim„j"X9(Ö´ÒõI8 µ0"érÆèIL<_ÜúRqçhBé9‹²nÀ¥ã×Ü;ŸA“ÆtÄA¬$Cs®˜0Yú¿ä—±9ø½¬×4©Ö´ƒÅ‹Û#R;ý¡gC·ãª X>f2ÄÞÅmŒ""\Kì´O‰êw æ.?ÙE’nÒtf+?#pÀ鑾æaÌû˜¯gR‹™"ÖZ¨}2æT_ƒ H3œJÍ­„4 q3éË®ƒ3ïñX|tÞœÔ¶ÇÆ5k7„gÂÃU5å<öºpþîýð†?¼;¿dIÄÙç÷‚ü¬ŽŽ'»*¾Žòˆ­G±žôZ_å&óæ¾ÝdxDüîןÞýÒüÜuû¾ŽžØ‚¶ü>¼¸6y¡—w¾*j ­ïk/‹‡yñ}— ”è˘†Á¤açpbM^.Gc3j—ȵO­pñãZ+clý‡XÕ R Ë“†C‹|\,0q§Þ*Gø©üµårDZYj Âq•A_‰@b ˈwÜäQ¨„âpýz‚<Žçe#üêÕ:$µÙ5$”JÌÒ$<¦«ÔµÞA_"e5§ˆG˜{òõÊ|ùÔh+)VËÒ©nƽsC4'0™¥‚[d€– ”âÂý—êgØŽ5U­ÔmôZ}<›/ËÄW%8ÛV„ׯ}ßzá¦Ì¤îz« QW7Ër‰ÎŠÿŸå¥EÇo õàÛz×Õ7<¿‡Â—:ì}^XÁ^tˆÿp»ìgçn[|Êr­Ãæ‘ô”3=ä²|œtâ=èΦ‹åÜ&wYΦå-j?a^r °cNÛ+×&ïˆKÛ¶;üÏZÙµùaà վû¯7W7j½zãݪ_ÿÊWNþ¾âÂ×uÇ÷îÏùR·^ÓϪTçW*¾©‚âÝ~_ŸzM¿ýl‹ÛóŸÚ@k:Û ¬Ó^«ð-˜iAêñ޵ýÓ¦cMæ³AS• ñ›Wu æÍ‡MM3ÇÇÝJµUØ2ö•F;”ã#*ooÊùl׌½à¶yîd¹õl·ál‡mÙ©Eïá ·î¢³êØ¿sÝø?N¶~¬0ü…÷ášën½=Ûõžm|Ë~F¸Ò£ùU5íoæ-p)~½òoyãv—‘¦ÿ^¦WúÆz­l=Òå6vý0Òæóû½õŸ¹™Veû­³\ß®³ ¿¨2ùSÈEÀ3Þ.—ÓY3dØç oÇù4xê•7Dìuà<ßLßo¦ÍÛ:wü¡–çþ çílOÓù/÷¥]x${缞#ŸWÃa× ëÛÙfÐ\ãÀ÷íòoÉ.¤óꚘoíƒwxûó°cö»¾CQÍ% îu±n§8Uýë$Ÿ¯–ë!¸–6’Íjºö²Ýhñ‡·kµºÉuqñÊaë€iu Nõ¥>)epHVe÷1,ÁlB%sbm,z"ËBðŸ%„q:Ò˜™Îw—74Ô"é0—™EJê­‡ °Ž!E4SX‡¡–{¤ò8¥÷a¸g#ädX.ï¨\,æëDLT]Ù¼ŽódèÝS$W÷GŠîºmÂå {ŸÉôé˜/«n§>dØ÷Lÿ¨JLw†’蹡~ûöjö2~UºœÝßí†þ€Œ?kXhÏÈm=‘pͺÂ*U5vŒ¤ S~TZ B ònh ¢X„9˜xÏ›äB'6£)Ädx¨áítÖ¢ 9hPެR†a ²Ld7_þo—_.ÞËÆòMËå«•å)rý_·Y¹:þÇÍ:DÝ #$M¨áø«ioH =‹€Q×sŽ#B@„@Æ`ò0 ´Z‘ 3¦%“gH(á”)9£_±ç=×kú²ZÕ°‹Ý8«4Çh­—Íï­òTsìßf¿ÿ‚æø„ÍøW¥]]ܰ¿œ»Ýîc‹âºòÂxSõ:ÓÆË$˜@‰'L1"™y®j^L­rËb5^MÀ ›ÉÔ–§Ž£!a¯ s…bRzêÌR ’œ'™ªwšKôÚ/j÷xÀI:†‰ö°®Å§Xƒ[±£'²³Hi/KZ Î(GºJ5?Õ:®õ¥Ý•·¿®ã×Aeø‡wÜÏCªb¾»éÈo—z§}1# }9=¼L°†ž@ æct`›ð³Ð7Nú`àLi‰Qކ2î¼¶ó©‰ÆPî¨Äæ3°f/üòHõž¶:ž6;FÒŠ¿õJµ‡¾ö7¯„òÅÇn[;ÓìÐf7×Ýæ&xal ÿ-vÒ­³u÷ùË¢Xu›6Ëm§i»Ùv›Þ/ ÓÚ}hŒg×z]ß…â Š“_²Ìëøó_6sµÊÿjdºžh t™ºçrbÖ0´ÃK4V)•gF¤À[Û{I3Nʘ]Q,&t†ðL†8N {Ñ¢8á!°ëœ¦JQ5aiÈ2l¬w;QµÃYf2çÞšîÞº¥;Û?§>ˆT=®¹6ÞêŠW ³0Rå}š¤*Í/¿ý3"ðôÌáÓsn·ŸhyQþF2x\žxÒõ·çª€O8 sÛÚ>á@B"®}‡’?Õñ­tç}ÖZmý‘?\‘ üÃR­JŠÌh¥ìú£ ¹à%“Mƒ|èÿèpAºï‰ä– Ô'å»!ÞNØ}n¡T {YÐAJ÷9ÿ|k¼hWÛóý¥³ª¥­pcW£)ª†Ð~åïΩý–®ýÝ„“…¹W¸ç?©ÝÛã¶{Ru÷!$¡ ¥]K•Ôx¿„Š¥K231Þ·£øŽkY-,¶ˆ„T3ƒ¸Dk(€„  qÊPk®Q×k4"e³ËÕ"”q]ä«Ëßã©­’²DóYóŸî»¤ø)ÒÁÔ›ºE²Ž"Ç5Ó®×Ê\ª¹S+ûL_­¬×0ñnEØ {±¿K2ûǬ•ÿ¥ÂYý‡c¥8œ£ü$½ÉÊЄﻲIsc*,G2Ãìg¤â 1€²Rh 0š˜¡ÆJ ‘H#‹ŒÌö¬d.ï>OÂ">(Пîç8Îôœå€¨NC$ ÜX¼nœ…(¤U ezHŸ¨&‚a5Õë†4Ã%’„„t Ô§¢BxÚ Q„…gÚ!ƜԚ;%Ä.›tUÎbãÞ±"`´p ¬þÁkü¿(X§¦YI£j)?Á4¼_Ùä´¤fœ f¿Ä âéÒ5àˆ7éºÞ´?¸ôW̼#N–pL¤¿Ít‰=eÀ1áQ0w&ÉœöS+̸†$“˜Ôièf½.çø‹¥0saüíü}6•Q‹ÊC!OÓ´†[_ŠëVÚ`tË+›-Ôz¸ÔKÚ£2–02bà> º€÷ç0 àÙ ((©7…•Ñd@L¡ö®1bu”ÉOcé85$` Ë$î ²v ûî?Á}ÙauØä’@‡mN‰-{Kx^‹÷Z/?–À±Áòn©~’÷4ÒÅJËL)"¥þ/ÖØ†cé:ã^ðC(Ö˜1ušÐß“î4þ¾¿¦‡„~M®§IþOÅ<' ~†„h€J©ŽÏœçïú£M^âÖ(¬$¶Ð2mAF¼ÈGDz¥“iB%”\"­ÛC«x§âL2އœÇ0EjCÖOÉEËÒ¿È4„qc—ìv%óDcbr¦!µÇ÷÷Þ†!%I¡‘ζ^/Ü®¬mÙquòw†wª{‰oÙæóUï§ïÔµzÛi»tcX¾ÝºR»üÚ!µ5yÞé*6Úvš6˼ëù¦ÄU7Ï·»ÍÇNÏÖmrµ¸î7<$žP:V¨£'‡JÚL‰¢Þ9$ 1’QTÍxg±i¶œ° ¼½ÒQXìà­ž¦¸±’s§”6AM©ÆÄ: gZdHX€3䨧Lº}ê)oû¸¯`ðÏÆò°“o s®;kuÖ×Mª]ËH‡Ï^ÿíáÓó{Pžá%N389b’ dB 46r7 rå4ÍIp!3XB †Bcœ9ï/ç õvg€ES57Ïj†.< µzÌÖ¼•ÊÝ7¿~õêÂèN Ù¼»(GÖÍGJ¿‰„¡¾=ü…©ïHí7èo3U+µøø—ëÆ)»ÊÛ7XPÀæ]GQ¿3Ù4`5vZ¯÷ЧÙíÿòƒHe&ç$mIˆ„à‰dÓ1å‚Êçú¹Õæ¬TÚÌ2®h&€’Z ‘ÓZ"&tP9G5;Éß G_Ã4ƒœÒXœ‘*µ‚q¯Næa|'iKO±RL ¦pLÃÃ#O Lj¼.ÄVB “ÚaŒ‹¬Íœ…B8‚N§Ô¯Q™GƘ+NŠ»@I!gABMåqa—z{j8éÀÛ§ÊHÁÇÄ!Ï{Æ3…ôBZYŽŒÐr¹k¥Ó„»~MÒ:ó³ÐJ@8ìýô“ü„57€îyóçV)Õ†Ïpš‚|dšAwçH~ Ä‹_lˆçJ9¶V"g(µpo-xŒ3/œ[„׺ÿYã‰_8)öçþ–yƒ‰€ósYz;4G2[›=ØÜ9"æ„Rh+…²Hb¢-åA!½qlŒBaSi©RÔöUÔõ9­'áê ŽÏLkG©Ì–c[µy1L`Â2.¤ÙÌûmÒr¥,Й$:ËŒ„Ø Ñ¾2Å>öùE“Ô>Tß''?3·w·ïLFU0z˜„MBuðy˜†p©ŒK/«Hf¹ÉŒÿ›q¨¬„VHäú¶JŒ‘Þ/™ˆ1å;¤Éß1–|+"«ãÇÇ,01ZÖÑâ#d…—F 2äU¢“¦!š‰54uÞçSh‘Y¸mmÄ…¿êƳý¤H²}°²L)ÛÊ~p2˜¬s2s¦#SÙO,?ëøä iS€åXÚFÉ£§Ry™ -„Ca¡TœáfI ðJÚ[}FfJ´èûpó³úY_éºb<]ÂÞŒ¯{[Új‡œD¢x´ð¬ã‡Ç ¬|ҢШˆU™ãÊ7`í”WÕ@W¶G\_%e‡±>;-÷øX´XeñÄ&ž¡ Ÿ‘ Iéu,@ˆà+ØŒ¤Jâ4“Br©áÞ¶†gŽyióMõñºü»YÖ÷]‹Uù×¼]ö¬K}¤µÒ'-0K/ž*´ÇWøŽ[ÂwÆšrGY;tèPébe§ÅÂú¹œ5ëFu/éöWê«ÖSjE¤;‹Í|V¢À¿•:fߺL]-vÛ»óRÒÄ+i— óuÀi´ÄÿgaD¶ºYº7ÔÃPe͉T÷%ÙÇŸî»öRlú+ÞaßîÔb1ÝWã,e“_Äó¥2›b;+§±73]ºÍÜMw^`§h§¯òEi;ÿþù—Ÿ¾»um¿¾ÒËçX4 ¦hF("6Ì!§d"$p´ÑT9ûa¥ÌoMfN Õ‚p Y’I 2¨33Ä m¸iÊÌ‚„RVL6ÎpÒ:2J’ÖHÇÞH™]ÁÑSÚ)¥œÒÅ)ÜU.ƒÊ4uLKÜ?G&5‘IÁ; oÏZß¶É4ìûcô¾g„8ê1zécÆ”B=”L †DŒKkÏ)ÈG=%Á•”ž¿¥ÁŒBǵf&à~P졌 ³,£{o»¥½ÎŠ“êAñŒzýy]¬wÕÇ’iJ>)[¾\÷¼±,- `ÐE¯|RET­SGPbÆ'Tppê,ÌqÚôÔbÔj¢°²Ä榊ÒLqe±´™ Í/Ê 3LcŸÉÂñc:JVŒRÄ'Ü9£Þ£Æp6÷¦k92/BÓ0tD*$Çha„ÉÒr€8!ŠhI]F96ÀÃ[Ñ Ó†æ-à]?) Ûb JØ`ü(v¼*¶þVùjžºâôcɨSÈï*¶ùÎõÝÔᲨV-Õ<õ‹z©ù‡ߺ%JÕ6;RFuã½¢MßmŽ›UeÒ.¾¶òžÎÊ&Ú‡bmG*«…CqùÔ,”dÿ%«ÞbÊ> ôΩÊeºXºH-yÕ£ŒeÜÇí»Éå%Wyêç·¦£fóq½‹í`&gâa"ƒÉBp#Ã…*_Ô±ØîÓŽ$F¼Ó¡"vF­®Õv°;M"±ë:KÿìkಎM®5‡2¹m±¸îSx*¹-ß¼ÏW{úm·^åöïÒ eü˜ZÒÞ‚=>\Â=>ôŽ0-›fdÊdë±rб&ks¬ñ (VJ¡¿!Ç€ŽuTZfßq«’3ïC3ˆ¨…`¢ôv$¦L3Á¬02ëN-Veଖôébÿmñ;ÔPA×ëvÄI¸-ÊñáFw:¾3{Åqå1н³&žäf£`Þüã–Ë0.¯˜'p&Rqi©üHµÖe˜ÐÌRh2FcG0ñ®›F0³ÖUeÍ…­ët·¿>‚#c#K™‰Ç :½\†’䉇³¤öÐ6Ÿ›ôÅ%\^âöWoÞüÏ?¸€íãqÍ+âT½ysÇ–Àü¤«>* —‚u–¢æ€—Lœ¢T‡g:<Õ=ýL!€mžƒÛ •³ƒ™@J±…ˆwûVmÖ1pDÂÀHR‘BG!Ð $5VAÇmÆ´BÔ8ÆBî!0¸=ÌB þêÆÿ“Áƒ%ݬÊjƒ°Ú¢ô~wñ¬\¿Ù›åây¬‘ f0eoY—%¾ÀóH00Ù¾³~¹D_ô¼aR÷ÞÛøÝrëíXßÎ`Aˆó–Â)lWNÄð³t蜮K·¸ª¼¨´„çnõ¤Ò#šýg§2nÔù=uì½Y?&Ü¡^ýH9Z-m|Ÿ­ãÝQ¤hi|¹U£èv³'QÁÛ }göÇ‹æiD´R¢°1ãò¡ÓèâŽìþ-«U=ÿé0Fxò`„ßü½Í½uD<éØãMÎ !#ži˜;>ÛÁ¸yÀ›JFST¡Jl­i]@YàÒш¹5yÒZ ŒQà¡Ê£6%Œ`?d~À´÷,t4_c³uA FNlóè*¼ykœ¯õ‹bµçåjŽ^ÚÖA¶1§i#ç{Ô«âôv^ëÛÎß ³ùw*—†ça1—0¢4¦¥‚Räkbþ0Î!5»ÌžæHjNY!OÙǯ…±DuÛ¾Z3×áÇ#¦ ï*ëTEFF?.²k‡èá:*ÆšÕþ]ü€t†”¶ÊöRØ^"°‚!fL ©Œd y臊3† `,dÀ8¥’ú§D •|#§ö³Ûos&Á´¹?ãç]e…úÈ¢ÛpóB«>mÎÊYØn^ Ÿ6 šÏÒSœ Îý "£Ò ‘C”áP§ P,5 ©fæÀó™¬am}¶¤àn5?’Ö&¿‡6^!‘ÏÊP/QŸ‘A†‹œ‚“óÂjæwû â2+¦[rxÂgÜœêܧô1ôl ¹AÅ 0¸*«ÎÁ×£PjD·)£ÃdñF¤jgDhõ‡^ì±\s4ÚäÖy®V¥š»2ëèë³j'³( Û¼÷Ó]-oæÈÌ×ñâ’žê–GUmÃ6¯´êý\äS»ëWQØ[ɸ·¾Dˆn³¤ê·½õ{žöÖ—HÑ ð(ú;xLêõê÷¢¤ó‚þ54¢Åj ЉvñÏT¶¡¥†ˆ“Ê9pl5¯Í•2Ï0R×´+¦ÒÝ)Èï¼]¼HRŸ3BmB3&W˜*‰BŸ á{‚y˜„§è"jS7åñ>Áy0ÎBßeßkzÞeb~óöÞ7¤Am\–º=×öЬ1ö—ou}=kê‘ÆÑ® W “p#gw›â½š•–ÀžH¡åçÇèbv›÷§s¤N§›JnT3¨Ò±èÑqjyžI¦Øi|ÿÉ¡ ‡X,F4ó‚PùFÀ Àpˆ°ù=ðl{>9*‡ÆDë–[7Öý<Ýmã[ÏqPW°sˆÍ­ÚŒ5µ}:WŒj»pڣ̪¸½Àg“¡m9"käº)fØæ|õ=‰i@c@qŸ e$_Éq@}3rƒÙàxSœ«ÅÒ"Z|H¸R•¢Cª÷íÝ%Ú¥6ÿÙYûáèU³,Qî6öæÿ1Þ¯òCľÍ0ÀF8Þs³èÛ¹°nyÑn•?Ô0ÀîcˆkæÕvU®Ä¿hoLµ•É`ÍÆW'Ígî¤y[¯®ŸÛõsŠ òÕ+ô\ÔáºuI(e¡Áì×ß½Z‚º7‡`ôf^¤Ju}Ò-yš^ ‘W MW†0»Âèu…×'½ º7ÆýUo¢ÝáÑQñ1übßíyÒþ†Oê-û ŽÇT³bÃßFåAYŸ§kyØ~"¦ò©a:>‹¨³…öŸ3Gk¨pG 4`ÍÀ€gG^çÑÖ³ Í ¥÷~j{úåþ—]”ÕŸîËȃçÒ×qšý¯¢£È ýÆÌ‰• \…Ž{Ýnp*kÃÿ™6¡ít4¿Ñþ,Í„•§÷y¶,™VçY8=Îù!‹7Åwæ˜2T÷oo~,_’7:ÛÖæ©4Ó½K×qV+7ú1*™ê8¶>>™Ížf†?m”¦<Ô]UYœ4þƒBžfs»wæé»(“ëòıXWx{¹îºo7Ä̦àË®¸˜©í¼‚ÇGRðfЃÃI†]Ûª"§Kò%ŠH2‚"dê?”¦"%<¢ÃžÍ*ð†u$ÏO‘³m+r CŒÏ‰ÞEÎö‰>Ócqº¢Ìé@l†(ÆÞŒxL@lë—v”ÛòŸ†Ô"µÄœ@@­´¯”êÃ@CA$§@~9w^XÏ•N,é(óºÓCÁWÃÓsöPùµØj8†wÇBÃ&Üåãm*c>ÙIýI#LVåë(îµ­=X2¾àÃrãÑ”ž"\ö»á8Põ‹Œ˜t-ÿ‚ÃØ#–'_-ÀkPx"Yºh¨ÖJKžZ"T§r±´ÖÐÍb+£‹}ü.Í—»VÙyÍš¥†RXÍ…n™¥ÜŠ­ÒxßzEšèM+¢}Æ mJ[°Y´­¿³`TêîHóY²_7?}^;¦| Ú€ÊW‹K#ý˜ÕƒR•‚P± )$Í«šr}f·úyD¨0€Ð |­5VAhŒ¨D’¨Ð39“Öáѹ¾±šÏ?˜Ó—˜ê´þMYÊÁ‡ç{r¸4eßðDyjʆ©ÉTî]ì75,œȤ éz¥qdï.í°l†œÁh4U¾ÈlÊä>ôà”@,„ç‡(ð•¼ÀZA'ÄØ>Ìoå¶®^Wó¬6óÉöÈ?Ãñ™vÝ}^4GÕx/† ¨ç”TÑ>M6µCëüŽja¦7æ42'ҹЀ)ë\/©½Þ¾)w©ª¼ ß×òW~0ea:·WZK_Y; _6öhW¿ùýŠ÷ªw¿‹U´­l¢V,p¯næüÑóÓ´¹|”õ‚  ðåÜÀþ°³3óÀŸ!æŽ.G!ÐPI/¡Ô'!ð‚ ár­´dHȰ¾Ç/ŸÅ‚ sþ\z‹Û¤µÈ Ó‚å`Åm»öM浬6¨ê¬v…¿» wÏùFÒÙ|rÇàç:®4ÙG»,t¨-¦/y“\ÝÍs‚q&©z÷6=˜å¬QkÛ®U°H+ù…·é*ÜV`vÇVu¥øÐZ•UÚÑ)Z‚ r8ðym^¬“&6=Kò+õvóóÔ´é¶0ft éÞwèF_…—ãq¤Î az èh}/ô‚PRÁ…0`œ+#[IÀ<%èXêýÙú…c’YuÑd'1vRá:í ºî½w&£ ØC4û¨å—x V"ûÑ•×Iâºg·MКt¬öæy¾\D§ûÇ‹OO{ÚñµÅvҞ•øü9Ž{dû ØÐ8Åxºì1ç’ûùF"4 ‚…q¼€`°úÔDQB<šò“FÅuÈÜÉ·iqXW Þ„†ôy1‘Âw=…\Ź#k+èò±ôç½zÝ´ ï•<ùÚb|°Žg†ž“(ñQw¤Äey;¸ÍÝÁÐèƒX›‘,¨‡›´†E‰‘ÖÛlcôAרFžeûHÔŠ$ÏêÏU%€}Ž·ÛFÁîm­@ïêZÖyÕh“m“Ê¢Õ^×{‰vQ}yîÕZÉaWczó’èÿÏ{-c÷x?7çDTÓc{\.Ðh&¹;¨Åyâ|{9bèyýÌfqp …Y’¥lXøÎù¾9z$ CF‘’†õ†R†#F9¥PÀ0D„{þÉ?ͼ󬶯¾âép=«„ëë-'x L¬û‰Í n$;|WhËOl/ð4Ûò®@›# ÆŸ¯6Ü’¨#%™Dªr¸™ÚúSnGV/©P|‡Núw½‹÷ÑnuÿS–Ü¿Ì=©.D«h“ͦ1ðiŘώ¢ö®”Pš';¡dŠlq"»—è9` <êÙœ'X|Pœaä AÐaÒó•d²BÏ[¤ü…ßg'¡ìt·šOpûø<"ýð»UóŠ'^­NAðòjµË1ò+ͳüzþ”«ÕðQÄqf&ÔFÃu# ÁxH0aĆDC ¤BZp,%„A…Ô¼Äï³uL¢ønû`f*¹Ë/E·ÜLÛ~n{œ[ŽòNÅi˜w\Ûâ? 7ÿç¯~›$5xÕ[ÚgDµ‹uzQ¬Ô9dráRPÔÖ.˲Â;Û&[Áµkă¿·Íú1·‰ -ŸyZÍNSöz¥ƒÉÆ”’5˜;‰Á.Þt&ŸÇ†½ùŸ7?öb°².ú<„Ê°Ýæ4Š"RÌ$ÄÊ6u»¨@ÞXµóqròÙ½uz =VØÞ.òßu#Mm;Yƒ6 —&›Ü÷¿þ|_†9pß_y©>¯*‚ƒ½çá"×`?²Xl ùØéÈjlJl 7cìëM2²ÅÈ.ÆN“ÎF6£± Æ"Ójì¼®#¬Ç~Ãzì7¬Ç)RcŒ]¸¿Ænˆ‡xdƒÍØ!™ò47ŠÑdìJìÄØcÑ/;±ÉèÆNl’-¿ÿï‘möc—{?ÇÓ‡± ÆNT:;Ò·#dc;;¤ÃØYz7vHë‘ >¬—/ßæÿÛfFIµ·Ã î}tî²ðÃX¥vÐʰ‚ˇÅ_Éj(ø ~ª„ÍçoÆy•°jĘ¥Zò1àƒ8•v/WÂbã Øa\ ;Œy;g›‡ÀƒG1bÖ†±vì0®®„÷¥ô´áP¼Æý•°{®Àœ³ðp üpzt¿æÉûôê…]2°ÉˆIÆ–°#†=Œï,aG Ô0n³€Æh–°ûXgz¡øPŠ>Œ)-`‡1—ì0¾²„ÓøÉ#¬ˆæû‡NFÂwÑvÄÈáG‘õdäI—¬í­Ûø1S9bésÌø0f¹„±‡±È%숩Æ—°ƒxâv;\ÂZ{éá+mÍ4ö£po«]Àã² Øa v «7ÒFH>êaÜx;˜?ãÁKðQ«7[-¥§ë"ëûø:×­Îû.$òƒô¡tJöÕ²×Âð¨ïBPæÀ§˜S ¸ÀÚ<Ä‚ E”/A@”%¡§ÈBõÛ—ë_RÐ6 ?ªN‡‰Ës»;™öÜÙ˜­‰éÑQc€Êâ5ßëcyaÿ§”Šö]µk½I`öØÙzm7ð…¬ àA¿ßòDšò´$㢫6Ûs©—Ò|îÆag¯·—g)³ Ö¤&I|üüe×›»šì¹ˆä¢cV:TIâ1 ’¸kÞ;ì·Ë–Ùʤ¬[O#ˆE’­¾ÛQæAàõ‰è”Ò2r 5´ Œ¸òb2Mq ‘\I†¬9¾¯B*°Ï¬‰"öÕu\¥Ç™'ç„pï⿽2ÿ,^Ç©í³°æ0Šªâ [ü¹Ý´ªŠ°AK’¢âJ¥z¨VX©ÊUtµËºÛev㟫ÑÐsõ6•ñÞ|~uœ7@qÇ÷\ ÍÅL”¸øMn]]|ê ?sƒëy¡³²Ú•®b`¨CÇhîÍ€‘J^ø²Áü<sàù3ü€L±³Y}Èg˜­oæ ® ã€a|DB 1S JÍâŠ)¥Ã—{ÒZp®>Àrjí‹oÁ¦àóðfvÏÓ0·ó[ßﶇT[2ŸÞÿl{ê‹Ó—U±µˆ »s{¬ŠWæµ19Œ fˆS¼æÍÛ‹(õsk½ZÌœD.rO! µDÌg(Aˆ!î!Øã6›$4øEýù¾Ï4þc°·ÃMÉõc™À¸áõ³úж!7…Ö¬ÍVÍŠmœ›ã‰üóm'$õÝM”‘;¹-&Ûµ%rïÈŒå]W t\µÅšÎŽÐ m=JƒÉl†Š «Äþ° äy°®4‰hfôMŠ5tbP{Ù^ŠA2ÔL@#‰ûFª  Ó†K¢U`Ra{Ïïíz¹=;W¼ãjÃœÚ nK#SšöOôÃÓÇø¦ˆí†<8>c>š¢\Çi–Ê}”7Qiñ±3¶ p†Àú<Çf°Bp B#ÄÉðVF¨ú€8!dWUß?½`º´SßuMò‹|šçù4×cX[v¢~}›(][7ç×o. ݹóM~Íô¾ºº A\ÁAçÀçça;0Òâ™Í`àI´¶Ùçþöã£2}rjvU$¤FQÔj¯©oÃq,¤#?ä×½Nz6ø¸¿ÛX‚¥ÿæÀŒo÷‡¿‹Õ7Œµ‹p _÷·‡¯fؽØJi`^3c‚)©¤Z¦™êGVÍ A,Äž!‘ bÍ‘ÔXCH=¤0æ€>Vâ䝿*s ÎùRðTßN"º rßüXÛ›!u º]ÂK¨žÞª›a÷¢:¢1”p†ò™’^ª¸mT‡…˜iC„¹áƒµ‡„¢Ò³ ´aQN¡†\Ÿônƒ®nøt¥Dñv©÷¥j®„kËÅ}º9yH\mitT_ÖË]š7QCm“\áäЀu«Ìzucù—6”}iÊ“hù°¤ý]Ñ_ŽÓ%:ÿZ‡} çi®«9ôûœV¶_uìµ?>â_‡jè\üú÷Ÿ\Ös ?)»‘ -àUS§Z©+šv…a{–ž¦Ö¹ÙËÐ i4'=„LÛ»$Íâ}Ô¤ °ä»÷5Zš'Áí@ô6.»¨|í4Ì5A–ÜŸû·YRß³òTÆÚ,¸·ïq—ÞÿôÝë_d¤Â-Oú ʵé°d¥çCj'uíëå£9âóÚã"T˜ÅIECfó1¬kQÕÛ(Qa%~x’B]mbPl›¾Û«J‰+¬Äc\UUp©ø«ú¤Oīް¦›Zõ¦‚+ÝUº4Èr"¿•#RnPœd•îͧ@•ÊzARˆ“ê+BÈÃmõY˜ y¥$YWÛÛÔ[¤§2Šj%fëµ9.žl• V n–¼Û×KÒÆcå¥ïÂâSJ&òe¼«s:ÛhÝÍóâ‡i7wk g^§RoÍ :$õ2èν9¬¾½['›(™¯³ŒVµjª±Ž6¨Ÿ„g-Ûör¬†KRùúÄ÷È$S…ú<õó«íY cO(€G^@)©ÖŠFÖ—0ä~µüœ+˜üË ûÏW¿«óþ À#¸ÏÁNËÑ1µsðL ÜÇÕRvtƒ,‚+ßR}ü{Ùôý>'KËþºžçXˆ ö¼žúßÌ þ÷Býº¿â @r €^ð/üÞ ½ }àþY ýµÈ3?;‹* æ‡,)!¯ú/Œ”R‡0U­ïÿߌÕüüðg/Tpa¯¡×‡W¯~ziÏ[bÃ#- ¹k#÷¿z¹ôóÿúA/õ¼æ¬é¯‡¸·ž]hoê—/ãMìÐT¡ þí"À€÷F Mpi4Á Ñ`çܾä»x·üþWsÒ9צR.UÿÚ[ï"5µêþ椿‡D]«þå—>|áëM}oÿ\haz0¼ÐÞÔ/_¯ãÌabVƒêï]èyøßì][sܶ’~ϯÐcü@™ x]»[%[²lG¶•Œ“£Úx“Í-äŒ,í¯ßÈ™!Á&@¥HNT'ÇötÁFßpñj|ˇãè¬Y„©C™AhìðõUñ°ÖáëŸ÷ ÏûúçõO{¶ViqßÛåkßîëŸ÷ :×6ž¯÷Àþð-À1°Ô¢ÍÕðG({`B`0|fdøZaŽþiƒ?`Z ‹´Ÿi=–àj”#r fot.Y"&zÕUÀÀÔˆ5z«ÿð·ú/«5;ÉÖò53q1‡r²¬€ç¸Ñ²˜CŠä‹\À€b¶Ž))QÐÑ94ãp•MMl,™Ý²=T”;6ªÞ[6*膛ˆ¥Lg¼‚Ô‰ˆdøäüLÿ¶ö¨ú 84¸!8oSTñüͨ*öxÿ^Âñ$¨†¿½Ð `ÃtÜÛµøš;>ûUæ¨QD};J—Åð›IuU‘¢ †_%ø"z 8÷H|OÄ  ODÓl5@ÓL€çæ àBj¨†­Ñó·ú‡%{Ø@›`A¸Åf:¶£Ú1<Í|$ÄlÙL[q¦}3Ó¾8æžfó¬,’ÈeÂ=šP'“7ÎùPt.÷†t~‡±Hg¼*1ÄÛÑè³äbi]‹=,ö†EŸÂAÛÜbŒf.‘ÃáA²‡¹akK×h§`k?Ôѿ۱µM 3 ÉÖ?­q£’­­9ÚGls‡Æ¶M\®¾ržV»ô5÷´Bóô­íkÖ8“škRj6V§™V¥5n ¸¡©Zã¾Ð¶ýň¶¿Ð¶½6 ®¦íµþüãð=Þ†ÿ»à ð lbäëØnüáèL_|h`ëÞ.š%оF§¿½ýòÛ‘ü9žè½ËDï]&ZCš¬î¦ëJ›l º*ÔMÎÕ 4ºÞ 4ºÜ ÌõÐhü1,î‚uó;­Y¶1Õ†Lè{ëAnqã€f¹78lLÁiÒk÷ë8àØu0²¼`dyf¥kp#Ë G–‡ × 0d½ƒ“Ãr‘®ã¤‡Ã¢ ÇEk03ï æœ#3rtäË5A^Áyǃn½‹ûæ™ ìâ°Mî*"º@f¬Рßû"²H™ ñß7J&G6>d«9Õ9‡E¯>΋°‰â>ïÀpïÝ"ð1§5¦6eè ŒoqŒo¡F„†ú}AV¨(ù‡g’>w×A êÜåÀ £úh*å¬ï Ä+u0“Bþÿã­÷”…,7è`bBœËDé£ü[ÅGĘr bôÎÁú Rò@Bž”Rý×bYdHúÔydȦ·ÿLüwº˜"'±tpç‘oª >RÚAµ–¡#mÄ›)¯ª"у޿?6°¯ÌEˆ ²Zª 1–q>B¿ÌˆI&‰¢ÙÀjeÂ<ìØK®ß¿þEF£óE¹âñ4¯RÌW˜jJ¨Ñ;Y5Ws™j¹úgÑs 2Ùp=(YRÕp}í{Ũ7‰NæÈòµ-JW» :Óp™öý¡¶îaôË`à îE–› îûy¾‹¶#B=qô(:?:=™˜ Cõi#’Ö)˜on#lc)t@®;f]–ü Ds¯õÆ$"2ð®.‡Ã––ý21Ϋî Cs¡€0̨nš"†&¼u̳ÿ,ÑñyD}j¿3`HÀŒOŒoÄó2:=;:!݃9hÖƒyÁìÝñǷѧϟN¢·oqŸOÖ39³?$€ònùÞÀ·}È–b á‡óè5µ¨³aŠ g§Ñ)Ä1à18 °_çÅmtþþÍÑdò‰%*BùU|9´ý ™}|ý9:ç—™Œoˆ¥÷AˆqmA­ºwø—upL›üþéTŒPBå‘l´…™œ½Ž(±ýS=JÌ~‘à²nHE9d ŠR3ʵ1£b0+0ï?ŽNn³¤î­΀¬Tœãþ€ìÒ ì_æÝ"ÉJ½ Œ±*¬üíǵÎmþa@z$êºHCµüÍ[ÑQ?i( ]# LE˜¾H ÿ6#=Ù’ºÍ—Qt|TAê«E7mCMmC7ò¤&yR£<©IžÔ(Oj’'mäIò܈Ó$Mo#+|9Q‰OÒ´ø:(Üàë/€¾’è_›ßø tR©… õU‘Þî¨ù[‹Ÿ‡äã-k Ò×\µ œc*6@ªov9¸rÔü­Ã5õ3ToÚ°Ï&rÏGðùºéCä‹ÿá'Á_T‘ëxÈhÀމȘ)_ñèãHÖ¾¬Ëlk£B$éð©–öλüµ XÈïòÇ”âbÓâmf©m>6øßå©Fhø˜pÔǘRÄ?vÞk@_‚k’':ïÙáë%áäíé$ùù O¬v|]YÝåãÖ·CÄP3À 0ìã=çs^-æÐµúåz)ÄAT¥‡A:í} 2p¨‚0‡¦b0;S1XÛ*D¥}o›¬ëbÛ,Dg„ ‚vÖgîaÌu!gg„ éˆï¢#¾‹¢ï’ƒgoDÊ gëÖÈíãE×ÓU‰Ó5†a˜ÛÙòÜÑ¥¸"»0ÖIÂÌ~’+ÆÞq]û7 Í™7\èª#ê°ã:º¢¡o>T´øãO1Pÿ!"îPãµ@.À\¼–µÐr‡¾@re[¥Ü@½1Ðß@äÃ5úm`ÙŽäþïѸ꜡.¿Ÿ¿þü8»)$ ‡ ôN¢@N˜Ûï09Ý]"÷tX‡¨°ö¤Ȉ=HÒÀq{!¸•ï;©ã–ýA¡—ˆ–YâÆ9‹ã˜d~æ á‹Ý$´N˜eqï Å¿çÈôVñW{à÷n ´¿ëè=|"fÕçaUhU‡,~× €[©ÐBìÈÞ >7—¼ó;^¬®Ô}Ä˞Љ‘â‚=»¡ï‘b3ê±=l¹È¡ru@¦òŠJÿ€bvÇ. ýÈ¿¶ÿî¨D}U®oRtÎVUJkÛËÀUÐP/?¾ÿ²±ù’–Æ)fA×5ðvöЪ’µ­v÷"¡þõ\ºÏiÖÝ*a·P;OsØIœ$, ÊIJ\'µÅÐG'dyByø·ã}w0{’!êéžó¸±€®%uÄ×'6:¶³*†ZÕwÛ“zaÇ|ÏT{ÚV¹]˜P¡*€è²wP©¯06‡@P/¶¹kSš¤‹ƒ ¢¡ï&iše!sãÌ ÓÍYn­Ò7’DÖ¿÷ôø¾üû~ü[n¶þvßí«ºÖªŒÎƒÓÀvö¹£­:ž²8´êd4 iì$ unš:¹²4µÓض}ê¾ÓQ¶gBl®å½îM—Æù­ÝÝèÞ+ðlû€¸n°Ïu¹Ålyñ ôšàwäæð taY’Ú‰íùÌuIg©—e©†yÎYÐM…Íñˆ7ïn½ Ô”X\ÀŽƒÿ‘ä§‘U ^œù½}çvYærÖ®X/›#÷Wîue‹~t69Šìî ƒ×UþãïŽìòº‡Úã÷JÞßÝ‘·u:Eºä=Ϧ +"Á^9â‚an"vÒèØâ‡ù3¾ºÒpu‡êuµž Ú l©“¼¯Ez™­ªû»3sÿË1­ëì®O9À6Üù¤n¾\ͦد8roãÀ}Ód†ÞûÍwÌæˆa=Üõ™{Ý„°X.§Y¹½Ï·ëh¾ñ‚Í1·'”ÕMs'tWäØ%œøå_g¹eÊ"•1-VÎ|€“‡Gg'O·'¾ñºõ?ÖóJîHÙ&Q"4¥Eµœò»H:ÙxZÈàÞ¦È%ŸÉk°qîUqy•ˆû³xµ5–‡3—åb‘÷¸¢^U6’ÙÝõ sU`<ò.lð•×[p.Tw1‰àÃ×·Q1_®û•ß¡fEZ¨ìçÈÖ¹sUôý²D/¡¹_È»½*Ùùõr'dèåtYâ}âêºGƒîÕºG\VJ¯ÀÆÀ¬{ôU6[ÊÉ •±ž«²}U…ü¤ö/KöA:ø¬j1Íp*‚/³Ùb¥Âk¢Dw.ñêØôI™ÛÝ b9]_óÊZÞ­®ónJÜÈYAðŸCˆ¨q»ŽÒEœ½óæ¼”Íw/\èLþœ–|yU$ÕKèûÌøòà$-V`xúi ¥;©ÌûPæÚêßÖòm´ ¹/ „¸ìÀ¡ŒÙž½ÏÍ`ˆ´´½]ßKRÆý, H¸¾Ÿæžïº”ºvhs’p?IR/ »Ñ¹iüT—o?Úu´»{Zæ7Ú®Û÷ö°ºý$¼/´g_åÙ%ùaº“ä?\=xs<’œþ=©ãc'‡¯¤€g|·2ÁZà_.ïšHu¸¼Ûz®Hà ¢*‰\T«f‡&H=BÒsÔ¥JïQ‚WX´ï¼–Á¸}«õ#D§n]µÁŠxnÀœŸxÌÙçÂÖbu Êõ¡^ì`±)ö7Ëý0á™›Ø.áaBb‡ }'M‚$ üHÛØ´²ÄšpS°$U7s…’ÜT …—É•BÊf¼˜vi×­ŸÿÞ©‚ÕN –h¸ÁI‚/‹Å´zÙøƒ7urlÐWE'…õßn-£VjWQQ›Úô@hú^úY«…AImŸ0Bâ æͽÌMƒ4÷¬ºi˜ÛNJã<´óœfÃJºšòK‹ä­©?’r)¦XkX«+QÀU-ÊÕ£jž¨†Aýœ€¹äòéÐÛOÿ¤¢ôÏYb{ù$ô¨7„W¯|ÓŒÏÓ-ŽœÅ˪øè|-³ˆ×n“]áKž\eNç‡ ÊSŒ&œØ×,µæ5lï*JâäÔ¡„¶~+N0M{Ë’ˆÔµW¸3å÷|¾Ÿ§P—ËéâlÕÒ⢂.“B›‚6(¤’Ï“+…¶ž§S—ð•%†fêU–\[|µ*1:(¨•/Jèƒ"ÜÅz€ J³Û¯,ï0šµ,’k…97D’.mšñ¹JíWH fj#Ö4kUf=p=ߥ­ç+«î­V]Vš‰ÅıRHZäyŸbÕƒ`}:"Iï×.ç¤Ç·2÷Mhî2@˯’eõÅY3ÀbÑC½A¹Q¥Êg+k–•—™5«©ŽXXŸP˜´^Ô¯ZÕ{7PpÑ_&Êï Ú“—›¦-+½,³¥BY]Â8ƒæ] cµZb’, 7hUÙ\y•lODŽÅ\UCA±ÒX%‚ÿ7Õ¥N—*¡¢\«oŸV˜¢µ?8,É}-ݯbž/úÔj9U?A¶>BªÓ„Þ÷75±‚š±HV‹åºBYóáòë}¦Ì èW=ϺaŠ›ÙQVµZ/U¥j8ë¢d Ðû¶7»^ñË©ÿôM÷÷\?TZ¡ ÕÃFrÊ,­áóÊË{”U†*4àž¡-³ì‡—kÕ5K’|q¦–²žNUŠ–­¿Öà˜0§'GûÂ+³¾NÖ4MüuÉ€ˆ˜3ˆªg”e&’=•Ö—8#¤¼å?eö×r"D&e&þ§Òª¬'kZTU6nœõª$1Âç!÷ ï^/Uj¦Ö»º‚6ë ¨_û4îHâ1$½pÀŸªº#RLÕ§T«²XVðYŠDÀ¾ëql…|7‹Ó"鿯gÊ".õõq=—&×w` µàõ2…ìûö†Ó«MC÷§Cï;öõRôð|³áõ›ú†+É!”]äw²fôd΂¶]|Uðë•ð+|~©ú„¯¥X¿!åø˜Ã¢7b~ ¡Mã,ˆ3'M‡µ ²Ñ›ZL­Zˆ—ú7»ÀÎÌ3æoæêùàý¦¸K׋ù\ê‹£ƒ¾=¾êfê8á¡Gd4\RÏ ! ånp9ô“89…¬4ÂÔÉœ˜lûEÒo·ô‹¢ŸsÌçó9Ç| åuÏùç}çŸÏIæs’ùœd~w’ù¨" qê¿¶iˆ%3œVrW÷4»[o둳èNÿòôÓç'ú¯ŸQ©9 Ö)MowW?ä´S'|z@¨+ÆýöÌò(Òƒ:á'„å9·sçv¸Œ‘Ü¡®ç3–%ÍÒÔŽ—‡iÈh;Ç£›$OüH‹«¿9üÎDo¯4é‡;9iL†%Oë\"ÝÈM¶¹’j<Çþ1±ÿ‡ óX¨þ§DÙÇØÓ2úÔXisRyÕCV$gÕ=¦‰XMh‘‡.*Q›æ!Z¼^Sh5Ãn`58ªáÚ¦í†kjm«…æIB°B(eþ>Óƒ­Ðª‹ØvF²4É|Çñæ©3îñÀvƒ8sÇvãÐÏ;[ Öß°'鉩×wmÉbߢæ­uë[|:ݶ’pµR–ÛãÅúN~™ñyús½¡¨.f±ºÊÊWu/:;é7‡,‹Öâÿdšqÿ¦"ë ±?=°‡Ù¡M¾Ã^šØ˜ÆP?"ëRl‘GÊxj»yÀ³$Írq¦yžSîä,u=âØ!!`L~g0“>^n{'·Üïé,Ü¢uµ¨Ê¨þšñžN6gLÛÒxó.ÆŒ Ò”wQ,·9̣怈^lÛ€oW%×—w)²€ü“cyΈ õ‘ܧíÐþ»vi–piݳQjï„øôqƒ¸ÓìW8®ßóêm3ÙÔ [lO\çÀ œ½‡-¬êŠ—K§Qc ‡ØgÜ ü<å^@‚<óÜ&bª*cvî³ÄevJm¹sQËèä);ô¿})‡gû/­÷ŠáøÆù²Ùb¾øYÈ[jö‹Íè¤}øÿäÙsÛFÒÀßýWðqSûQžûØT$Y¶¹¶ŽåÄû¤Â1Ъ"Éú$*ñæ¯ß@p®x˜´”MùÁB÷ æèþÍÑh®ªË£O7ëýÙícñåÁþô‡fq%Úkb £—@l·|ðAWyšr¸ºyj K\¾®ï˜òK8V’%ЉjtA'6–}eÛìjÝöP(½®f„]er¶•$8bÏí¯Æ^Î §–"1‚³MÎ º1ÍðR‡ßÛ /Ë‘Ì)ÊÊUÁ˜gZ•EVf¨02ϵÔ6óÏbhí®y½ó¦×[¹óbO$nÚ¥‰Ìþ«æLâæë›¯ÕúQ”Ÿý»ÿŒîÍÃíõc³¼s>ÃZÕl$óVÎØQÃ{(0¥b½<ÌG’QD6r:¯sÛËÖÝÊH"¼G5u¥âÆ\êR1¦i¡ ²¾.U&kM²\›LãŽÐì~]ö Y±Mt²žŒÌ%@ø[ftÁ4tlØ4_Òª¹¡2ëì*X9w(SeSéšWûq[íWiÎýcVÚŠ¢H8’+N¼V=£ÅãqDÛߨào²UÈ>¢AUÝÑì hª”—¥¢™`23:“%’—”K¦%Åš«Š0Âhá¦Jí½åpöÆÉJKSΓuaovU‡6Úµäöyiý‰º²ÛÔ.è¼o²Þ+_ÿñÇÍ2&²WÔͱOYëšás~Õôiz4÷œša@Õf.ï·ê‘4çq“úœó6†ê:q ›BPïâ†@µÀACh,¶y@æ°l¶(Ù:¹a+˜¾l Úšçç:7Y !rF혗颢’VBªå,óÛ‚k÷¿^u‡jÔš¢}¢ó /ѹԾC˜jj4•vp,ÕtÞc¨ÙQs[Ì]Õçq‡[÷¶0,³d¤\ßa¾/â5™/Às\£CX„ió»7eh åÊÜÝfÖÛ¹I³™ù:»þÃDŠÛ_›Ã=é¼ÿÿɇ£ÍÌcÝ”cAslÌÀœýýDßüËúD6n¨«PaDFvÐb orŽ@ûœ/ÅpW‘Kà ]Õ³/9*s¥ó:·.žVB”e^)ÂEnà®â¥2Ý?vvŸ*h'ÏZ?¿õS"ªØHcÂåF§\Ü,"¤z–&ƒ ²È%#(ã´D™b\ V‚›¼¤U)8"e) ÝY´ï5Cy[?ÃÁ¼ûœ6p@ñ\2È;C Ï†SW-v²z.4ìýy#¨b r³^y5ð± 7ö±XÌ9ˆ«ÐÇj#Ö™&îy=ooÍLŽ7 —\W»†’j4ªqeÚ•5# CyYRV)ÊhixNh^æ,ÏsÅ´±CI™±uCŽ6›ÁšblGìÇnÀ/.ï¿<Î.Ÿî¯²Òìš+–ã&2ÕØ¾øØl„D -h%¤«$;;Ÿü¼q´Íå£Ã ˆ jû dt”î[X—ý¨7'w—ó]†q†"Uï-¶²€Gônaðä+ì~è’èáqv³ªëe4絉»Ùý¬1Á꽑wW÷3Ï{i¶KÎnÊ¿½;ùtù~ú¾§ñ>GWøškô(PRHèW§ƒ‡/ÖýjÖ¦[$SmOµMBBÿSsõ6{ºI‚fw@DZö<~¡÷þÞfOKöÄwåôÿ¡wz9 S:Ý«ëöºëò.ýüNÚÓEÿ"HQoÕîíÄ}uÁ¥®¾q„ŒÕQ]HÕàìÎÒ1Ûý¹ùÔiªe€nñW 3·OíökØض}à:‚îïØH¨7‘g3Ø€ðuƒFˆŸ0ũ˻ƒe¡|Ø"Ut½eË(J—Hâ´ÿ6Öfö¥ÇºÁú SQœúîºçýŠÁ‡-RE×@ºû›§þG9å²Ç¹”€,DÃÝäIÔR¶?õK§gûÓÐÒ°¥i–¥XfÄG×;´Ä£RÙ‚±% /ƒTÀØõ0ñ:`Ú¾ùƒ>DzǣìuÂ<¿r1P`Bƒy˜$*§ó<5-—¥ñßk: Lhàh™¥ Ë}c=ê·%ìƒaÃàO4³BSE}MuÝ6ÜN— 6î@\Áˆjp¡u¸V´|$Õƒ¯h?·‚»©ÃÃK wR/£çï¼^?GàyÒÚ]ÙE¯¸db6Aj€̘„„ êá®:e°c[Áôk˜ˆ5ªà ¯â*Õ¾VGàykˆzÁrÈÌ\µøvÑr"d… Ž…Aô/O¸ø+f\[@»œ Ž«ïê†WH¢žQz Øê’u*¾î¹k/ÁÚÐ8XŠªºDKD=w^¤ºd=Н{îÚ Ÿ¼ 4Éúï;L™cÇÃK;¶®ð°²×ø°ËÜÑ ´z•tè¶tè¶]Ô­V°!1ÕLú-èÍ ’jÔnðˆA†ÁT/p‚ä°Tö±¥Zr›T’5½¨iP=¬„Õ‰$äBÁEôÑ{àÑ+ß™_°£Ú_e ÓVFÃâNZk1v‰“—C` =F‚ãa”)²ÑáÊ‹5íà *Jó"«OTfTVyVðʨSBJ’)‘ç±/Àôº õp±¼Wí´û¯æáÎÜŒÿm¿}DÒ.V¾ç™ndÛËÞÁIÉU§9w³¥+ðçt~Íý—›%âù¢ÂÂ[\âXn÷5Š: ã£¹ò¸èíì!ˆ³¹¡Ë§[/~èÃ}qe¼ßu*wùµ½‹>Û¬µ9óçjkŽ¿'ñìVÍ÷sO¦”(ÆXa´ÑñîI«àÏÌfSc­D™Óœç¹”¦*V\!F)e&gH)½ôñ§ûç—±hþ™VÇ ÈúŽUÁêÃXGWÇ찢Ɉ1"0Ýp }1¾Æê®ÌfÙ’5»š³Â˜Y‘ç:#Œ‰ eX–’ˆ²ÒñUUáÄòg©z‹" ºæo]í½n_×åb°»£„*¢ñ¨6‰$ÝtË|Ñ„8®AÄveˆ™2Ï Zç»”"'L–(ÂpÃç5¨™üÜ;¯½jõ22”Öµºà{ëÙ›/ÅSÝ·5g¾>­O \ºÓgízfs0XÇUZŠ‘²cÒ›V°vÞv¸ŠÙ® gRbard½‚Ê ©¼´·&¸5ĉ•æÆßŠVÃå÷> ððdº-ÁywK&ÓÓÉ9<–ÿs’üØŠ>#‚i,ÿ0=ŒEëÙêÿkÛæöO¦“ËÏtcÌþùñôp2«P:=>½dLƒÉ;žÞÛ’¿ÊÁùÛàúð Û_Æ2Lx,"¥"œŠH*¢©ˆ¥"à‰"%Y%\E"IãDRÆ7×4Êçôä’ÚÑEyýe\¿9:GEztpøfr8Þ¿¿9ï÷ª Åáþøí9¤xóa|r ߬QAŠ£)ü+3|JßNÆÓž×hT |‡ÉÔ*&Sð)“ HzJ?}¥Ñ}÷LJÿ:Ÿ|ü8 ;—£O¶œOØ75гññ&¢ç‰èâ—@ôîÀ4E²¤¥¾;xwð!’D×G§çï&û'ãýÃý7GÇÿ‚•ga¶ßN/.±ðÔX†ÍíÝùÑчñááäâ"•ËñéÇ7€8½?7RKÏO÷O`©Ž¥ï÷'IÒ‹Oç&Ó÷¡|rpŒ¢F݈’T¶3c€ J§.í¸œÊ£Ž¯•‰TÆ Y’EŒt*ؤ2É( KßÊhún˜Ï À3ҢƘ÷cÏ`À3ð,-{ ”3ʳôc” ò¼p /È ò¼ üP~(?äYy@þDš?" HR™fªôå¨N_Žê´ð…J[g<È×"™¼/‘éeò…ˆL^–È$»D%¹%*yQ¢Ò'ªô‰é›“´Å KÛ6K›6K["ã8•©´°™F€,ý %yã4m` %ùU<ù¥âÉýOêšJÛ–JkJ[–J‘JÛJ›J[Jë»i¾Ò&eE'û?§Ò¤ž)‘|%ÓH?‰J+»J+»J«±Òɽ4DIùèôëêØpidIÆ4J2¦QZh'Å£Iš³tÔ@.ÒaL§£˜¦iÆÒÖ¤iòt:Zi.G‡—gDŽ£78±&¯JE YZkBÁtr>S ÓÓ1A„Xv|ôù¢OË­-Kû4°<2jkùä|Œã>­“¸‹™žŠx¼žž*Åu\RÁâžÔÉ»´b‹9,†ó—z#…?~ü´¤4©¥I·Ò£X|i}W!ǧŸSµpTú . ŠÛrf+6PÓ$L²})lKKK´Âž¾ßùÒ‡ÓvX‰Ÿ¢O©ì"…©>î_LNZÏ%*OÈ÷­÷xtrq¾ÿñèÓùéÙQ¢šq-šîOá§äÆ““‹ÓéûP: Sì_LÇoö#‡¿‘NÞ†9»ˆ ÙóÖ' ‹³ÎÚø—iøq¦ï'o/.Axc½‹½hĽ8üù„[‹2*Ð Ûñ‰ÈaV ùô>ì?LO#VòéâmÜjkQ4 Ô¢°výuÔÔƒ¥Ž‘.Ðè«î¿„Fü3Áží !§c›Ò Hf0}náJG)œô˜¤‡"#éG7z˜Ñ£‹TôX¢‡=rèCzxУ‚ ô ‡þ<âç>ïyXÏ£yÄó؇ì…p‚„wŽt¬_%úU]àa×0^\ÜáEֆà ¤…aÆÐ†©fŒlUÜ£šfƒö|QÊ"¯„)ªU6“ºÊˆL3"óœ(ƒÁéç =üîc:2|nˆÜAll!mé¸÷¦ÌÓ,¯}ª÷æg ¯Õã¼\S¢+ËñÕÍWÐ8Hй­î?µ~ÜVøÜ¡ÏÍ‚ƒºÑÛ¿^O.Ü`·žÈûÑT«DÙÜú‡¢RJÁGD-7êíZ÷Ðå‹BÅ 2… ¦T‚ÑJJsVTH—’¹@B¨¬`eIÔÎV'ÌÛ­ß\7Xo°­P^®º¸–´ÁôT¥¡˜^ÀоaSŠŠÄ¯W~ó¡j‹Í‡ÆË9·ƒ ŠšOË ü,ƒb=? kºÙq»ö9-‘Z24šªÄ3y†sŠ­‘nL–1-2•骨J $H‰½m²®ÿyõõËÃÕø+Æã¶Ìî_x¿ÿ¢ÔŸ¹‡nÕp?m]1"ëƒÐF!´gõâ1¾GF\ zèŸëã Hž™åE"—8WØvʈ\ª²4¦¬´¢ÏduMRƒezœÊ@Sì³uÕé5 »}„À¿ÙºÛƒÀÓÎðÒÿ’7›EflÓB~jÛȸm#kuûeˆ^ì…Q̤×ÌjàòÀÉ4I%Ô&ÇŸÝ^ßšö@{2Â{Ða.#¥ÆEQâÌ4IÍ˪”­—<7DTYÞ|ÖpS{Ó†HÐ.Zy¼y=©Ý´ïÚªè–ðñê@J0öÑ7…y‚ƒÄŽËŸgojtWíÆ¶N{“©ÍÇzz*Mñ¥4©ÜÜ5r¿™Ÿ=ØXÌ®»žýçõ‰™ýþåá×뻫×G·ÙõÍëO³k;^QÙGgOùÍu1zóÅþâîÿFoŒù={0?ƆBÜý~ki½1æ™ ój×½#0q%•#¢lkÝ䜖æþ þî ‰ 7öYŽ9fXñL²Úy,2Ó‚I®h¦9YÒ;8Bå3±gƒK!à_†¤¶%ájÃóoÖÐK¯’ nù8éŸ^ôM“ßÁ¦Ã¬eÍGXk-6Y­p{?÷SÙ^ƒZ÷ìÍ€5 ‚kÃó¼(Y• Šó¬*MNTžKAËLa–ëºU/&ùêÇùoÀ>Fm‰Ûv÷Í âÏH°j‡ÌÙ—ÐjW·T½B°m` {å*ÝOmµ«×5ð•½Ñd&†ëí½_¡#'–Ú'ér3vyVi¢”õ`9ßh›Ÿ!ˆ/æª2™1ÖLU9¥B-3^T• öOD‰¶ª‚‹¬ó_w»Bl떌ٖVÌëÝÒe/ÄÛ|AËýúJÏ5_Ïë¼½÷[°ÚY NH§ ó »\@+T5ÇõÁºëMfýìíý…dƒ#eEPeÎf(3Ìh‘—%¯JD(Q™)KƒLn»Ÿ9âìîÝdÚ9þugTE`µewWOÙ°*o{cjž¿>op!ÖFÓ#.±’›œvº¨)ƒãˆ½y©-PÅ%ÊMa]›,ÏT…©”†PÃYŽXVjWÿõì;.=Þ†Ýÿ<‹¦·ì±ÔG×ÿíÝñYë© ´üãÇ÷ÕÁåÙ»²&Çm$ý^¿BŒƒ ˆ^{#|Ä8&v|„íÙð>Uࢊ£ƒ‘ª>~ýà! u´ªJê®·K‚2óËD"óßퟛ?7{ýMŸ›ôÙòÒÊ\º •1^@ˆ@2Ï9Zkk²3:1ýBâ;+åX„BÈ#\ë2ò"C=* ˆ9àgµŽ5 >³o(Yq׺wÓ@ÊìEÏ„º-úm±I§Å&= 9ýòÏIQöaò“óá\V–S¯×™ž<Îl¯Ž–­…â+Kµo*RíF×–oH¯áz^½¢Ï÷"È‘ˆgjºH’ ˜…3½Êïa T Åö–%yëJDÃ0R8Š1á•Vdøá*É,ÎîÄr§?övÄÓѰÿàn³ê`fShG–§iþÐGÙW¢tõ²ü ×E-&âÖ´ÿY‰äKŸ™\&¹¾0kÙeb f°3ï'ñ‘æ>º:žâ™â’–¾-©ij©©Ì—íj ¡ï\I÷·jd˜^•EöÂVƒ-Ù@ÚÖ¬ùõÏ©0Ÿ2ͽOÜ]nÖÀÑ®ý´1|Ÿë&15,œÇpVzÊ7›¥Î3k†Å3æ\L}(šKÆB$Ž1Pa0 Dȉ–:’@SF¢4 lïÙîîÏrt·Nó$6»Þ¿Ÿ*®Wéúnó!0¿\ÃÖ©sÄÏîŠeÒÙ"O7eáJ«„ßµ¾`º4è­°dÛ9Ÿ/˜üóù­~}c~ÐÆ¦°'݆G-§èN¦[mr5H¡s:Þå±§åÏ޽þ½~tÀøõ÷ïÝíÖŸq?¤™é7YÏ}-Ž÷Ýà> ›g2ͼÌï/¹ÛféÖS¡øªH½Ù­ð»‡˜y+RD¶™±×m$±xbÅ=}o šØöÚ_[»»<£4Ë|¿œo–÷¨ÿÏÒÝZyÊóÅú€'ß©¤J娭zäÉÔ£Éô?²¬MW†ò†j-î_¤ëT¤¾%/k¸=`u”íí®É.ñ=~-²'Û´¿.å­+36‹ZuÊÈTw•¾3®Ü©°ß¡/šÎ<2=N×yÁ*ú‹oµÎ?ltêæ¿Êcõ-kvPçêü[ÝU=Æþ—ú’d¹#y àüÕö²îpm²6$æRgÃm €\éíPý˜lÏý‡÷O1÷À3û;ùÀ·+¾ñT½ÓÜ.÷wÂ÷¨Ü'_zp8äC¿#¿BÏmúÆ^øVÎÔÏS?ŸvU޳ŒÔÇ9¨MÞ¯øº`"šõúF’nºpÏf0eFŠmüW,³b^û,ÔìëmnžjCÏïÓ ¶Jw‰ê—¾[ËEÉyÛc~/Å´ÏÓª?0ÐÀ_÷¾”Œ½šþ Þ/D%Ÿ»Kþ˜”[»3¾ÕÒ.áÄõ’è÷Pïiç+MuÝͳwI.’ܱ•ÝÒ|´é£ÉZ gC—ª•{÷®Ô;í4|ɽâÙ×àå† )¾6–Gn¹m³ÙDðïòÅc-Õ6y4Z×n=Új®?X„<ÜÀ ÿErGMóe*,_>öñ–ï4¨–`¬‘yrñÁp•îw8¤ýµ~4èx?ÿ÷ÕÄÙÊe’嬭åÔfzi¤sºÝ×$ëGåS»>yûøÐþñÜÿ„ë ƒj{Ç¢ ÄpÓ¢ÐЕûÓ“%.‚ÄtIÌ?è,ª¾Z>n]Ú3)“PÄX2Bœj‚)$ AFªH·ÄvƉԕñ¢sø÷µ~Ë_uûaÊ—ËÆÂÙq -©ìÝæí݆˅Ñú ?ùJXªÕE©…o[=½¹›º'Ú§6ŽWòÑŽ—¡=7ÜQ´–4Cˆ±õÑ8ǽʽ±6¬O ¸7Hs‚È,òùÇ€p°PHÁE:Ô$ÖŽbxÙkÚ´M€FŸAm#^ç­ÕJ/?N Ù—Ÿ;ä«…ìÕBvœ…løüêÉŒg"—ù²ÿÈé6µWë×giý{À1V¯KÛ¯Î6yL;^#MjpQ*´'‚ÃÍšgN2½ Xü§¾'ZTžÕpry#ȉˆãf ô×UàjêW¥wOX 1ªìö±©b7N¼ÛM.¿h ‹vOÁ)4ŸÑÆÍ{<ÙüV?iFš~)¦ç\ª/^¶K–ªDö`g>—fˆ9E:“!Cª˜3ÐüP-©„[hÙuÜÖmÀ‹\«>"ú_µ1¬;åéH؇sG!Þ”ûBOÏD@"öá®'B?j鶸Øí¾ÊË"¦ó¡Ñ­  §Ã/OpZä&O!Я’_žì²6@ª¦˜¯f4j¶tµ(Ú^Í»DÍ­M©Û]áÿýßÞ¾ýnå&¢YT:Ë–E?ó…./Bƒ}ÉÛ·¿òzÓ-xûöÿø6kÿÉ·fošbn/áÌÀHh¸/œnLº]Z|aYsz°ÿ6Òè‰ð^ŽÐ.Èpâ¹1j¾H‘IrÖ­©. @!Àâp€cL¢Ð¦ŸS’0¦‚HÂb‰0`Z÷AF_œ¹…¯ÝÔýrÀ»^½–Œ`øT¿õòCk·Õ“]¯bg·`þ×ÙmíAM«!ùÔ;HˆÙtÑy÷Í‹—UÑ.é5ÿú® ¢¢XÂA#PH¡ °¢Rsñ @ÑX!ÒÞiõ¡xIÿî ¯§¯§×~zqµZö«oS?'ìƒ\yÆöì"Ïwêq+ªý±‡7{„qqÓa?ÒM¿²ü¢ÎSnà€ÄrýÇÌÃM×Ût¹ôM¬‡Mváb ç ÁDÍS¥•šŠe*ݳ”úÁáh„ö['»NÂ1]·];ø1зƒ¯k\ZÇá.˜@LAgŸt ð(ÄFšÀlBbŽ¡bÈâH’ƈù!v]_¡éà6íí,mÅTi9Ž,N´qÔ=]ÂÎñÉ´á†7B £Ð^¶Å! ¢è|k‡…† ¥×ÞËif|™å"›C ŽtLb‚¡‚ˆ3©i$A£@ĦBܦ‘ļbj¦y¥ïÖܲ—]u6Óynt»¬º~[]¤]×-Ú£ëžU6~”xšÏßuùVoÕª[å¹GI~ZUû¯Ì£½êß7yÊý<º¹^N=ÛâÕñðéTðƒ×nÈé¯IQ÷.Y«ô]-«<#»™›»—4Œ_j]éœK£SL7[Ë(<¼kÀ¸°ò™ ÊBóªß¾ûÙ(Í ]ýz%¶o°Èç>6s¢!ãòb¿À{¯/RoÀ,b…›Ó¬j`þÇ¥QÚx¿Èa‰PÅû8v\±žYÿ2lG×iˆÞ»¬­öíË›–+©Ò¶²áYöNåïÕük£å¤ŽxÊzž›ñº0«bÕm¶S´“rfu-7†µinp©4/Ú¦f79ëL·Q>]Ù˜OæÃ=U£Ï=&ÙŽ/ûö¢æ·wk•Žùn™;¶[r†lä-*É6Kþa¤ÅB0?”ÕIÆ¥f/4Y¥»llžÖEÆ ÓBÇÚðÙoR­f»Ô`-;8ƒ¥“ÖÕÛÖ®ì¾×9ƒÉ#Fên›·s"oj(îìÕZÖ­n`™<Í5ºc©´t]3ÃAÏ`ÑÒÐå †p‚lN¢_ÆbQz°[ÄJQrJT Œx…q(¥†\K Ã*B°êØöüÜâ®ÐÊävÈ¢êï|QýÙ€pe] ‰6Ëh•fß‘…ÑŽp/~à¦ø»–CÖ­Ä{Whæ»5[d‡(kw•’2G6f[È4©ßßg—ܯƒ¬ O˜QâF$€Mé}‚µ¾oí'l‚Ã0ˆ¹ŽÝˆPÆ6`LÂ(ÆIÄ@…ô8¾ޭxkô2¸ž^'ÅQ+o“nŽ·ä7;¼Œ9ÿ‚ÔÔqdôeƒ`‚œïBî6ÙÔè¨f¶¶ÖΆgÈwÙž‡Ö”k x,B‚H¨ˆ Ö‚ È:ÚvÏ®ßÝþ¢=ÆOŸõÕþêböjâ>ÎÄ®îõÖ³ÐÎöÝŸ¦1“¸%wÍû‹pbû"ÍèFýÞ>9P}Àî„CIý>û¹©65ÜàâQ,3¾Iî[A<†ÿ³ å ²§˜öþ7“çLwýÏ«Æp0Ö—ççmƒgè(¸ÏÔ½{QÒλóí[ÌàP›W—¿ÛÌ 2ƾ<@¼Å6S(6»'®kö¶ãŽ¥Ö6åªg±¬»ðV”£iØ)•E˜ÀJëræE[~Š¥±wǯ‹x‚-t/µÔŠzêú:F…Á†Qd#\@gÚßÔœ˜D’XE Æ ¤1„sLC¨†@q(dÛÑßm9é1-6%ðæÆZhZKœ[ÿ®ycÛxø¥^Lëoƒ&Ýžä)ˆ¡¾Ÿ6D”àpbèáìT%Ë)ípBf^"€`¤Y ¦y@"@…’ –8 ˆT˜¦ÛDP™Â[֨܏¥ÓÆ”6ªŸ*E4ðÖviµ<õüLÍõŽøŒªê‹ kO“22ÿòO—/{òc*wö¦ÓŠ«„Vÿ5)-‘f ÃÉW?ýíÇØ¿Þü÷Éáx|{­KÀfmSÄÞ¹§ž79¢“(0LúœÄŽýÛ$¥ SFZ‹DˆÚ+ÁTIA…°†²jI4¶ûo#àZxý5^™ywáÚÄrÚ=ã§ÝÂÍS– Y€ÈG,8á´ïÁ]Ìda‡Œt€C…B›`žImþæÒ~N|`_ï‘Åmž«4W°u Gekc¿}’RötôÊmÈŠÆÌa˱mª^RøÉ¤–ÙÀù6*32[câÏ£HŒ¶ ¢±ÐŠÒ˜’˜a)iÈ#À@!ℲX%­½Td!+‘ö–Ç{0^ÈÖ2ÀÕ­*»š+Xä+k1u³Sd×…ÖªVUÙ7 Õ僭2lÌ£e¡ÀÖ]Ⱥpئb"ìÄ·¶Y1#¸ñnÃoË8 ê8棰A‹]­~xƒ÷NEIPcñðt?(_bn¡&熪Ôå:4³2‰¼Á¸ cšb ›PQS¬4f±AlP¼0Vf/KòÄóÈÁÓ¼¡“¹Koöðœy–s ƽðOs´¿ÿsÚ»Sî˜ÝO–gÿ[Á*þ^3þŸÍ?³ï”JÖÙ›ÂXã­›ý¡’äoñƒË2Ï{§ê·4³dÝ©úåGÃÃf?~¿ËzÃÙWÍ~úÇ^Õõ³íõXœ-69yШ+¤}=Þ÷óýY0…–Û Ö­0RÄ3„gù«M¯ ùg¹Á¦«0\T3˜ïªí@>Ë¼ØÆ½èÇ×¼ªuùeBȼÆÂ}^ÇøS‘îõ؈Y3_:ôßTZ•!ð…‘áI¶ÔÛ$ÍÛdÚÄÒhÿ2ÿ5*ß?ÞÄ`ÊñköÇØ‡:1€+ÏÐ6+o“C¬¯4É·f‰ßj”-’Ñ&9_Ž6H¸ée¬ÁŠ?ü+]Ïçcm2n·†;©l·2£éˆ3õª7h¨Üc»¢M+€Y¿æÏbµZf·6]ÃA¶Sé¢^È®O»È¼­UPÌ}»ÈÌt£ÀÎëþ§›ÅýÏjÎö%ûj”¥Ë¶‹r9 ͘7ebwëô:_ÖiÞóÅ|i±3¢àô2ó˜#:–’!@:–’ÂjÐd ÷2%¥Áù3Ê !µœQI<®0€SK ×ÉdH‚„‘ÀAC&ZnœÕ]“Žþ‰¼þDÖ±c·AÃuyË<ª9àƒs)ÝðL5pPmÛë¹]5°QñÓ¿ÿÿo”غüy'2£ŠÒú“næS½Ý¦¾ÌŸr¦2Íòtëµey\nðò¥3†æ<[{h¦Qlúúó»?~÷à¾E¿/¯bÑmí^,0¼Ò¿#߻ҭ'Ô|BË'«|§ËN¬óÖ[{\ÁÏ Z<àη#Û àEH”„÷.¼´F9N¨aÄ‚h`ç;äµî§ S…‰Ð ¶y,˜á‡‚ER E€à<à‚ù”’†>2Œó î’]ÁÎî^yìnÏãS«>“0ißô‹” ²êxRzvÚ›šòùêÀ>¥@+@ɤ±€:Œ¦Ó3‰ ¨ˆ`$"t`ŸšÅ=ýŽÇÓëÉW¢²žøÿ$rü¤¹IZ63p_m¥o¬K˜E®Ðí²û½Œ¦n{ûˆ¿0²y»?=ììS³3Ìq†€(Ð}·¿ù®c@¦ÂšÃ"­ŒE`D¥˜âXc©C  åç2+š¢ÏÛ‘“>2êSÏ•á»î5‹ÞH ClägÀ¹„b&8³aogÈÆ¬ñÉËXD8 KŠt((Çœa ø¸ˆ"(gq’yY; °)ÓóÇF™Ù…S±Mße͑ڽ™=˜åÛ­õ»iaTì…šÜäªïoG's»×£‡ÔŠ3AV»tTˆ"†:øÊ>1­÷¡çÎ`€Ù{ˆ „ç‚*³‹ím 2³‰T!„PÈf©Ž cÂã &ƒXEBhÐŽ°gz݇á·˲žÕk€ žà˜Æ¼ý/äÔ²À'ù¹_ú*ç¶ò;¼DÐŽºþÞŠöËå¾Fi¶ˆGr>Í•Çe:OÖ;¼Öz²#ù¡v¯_ð&ñHýg]×ëBêŒ÷?óù:‰½½/6¡ÿ@º¿ýöâ¢âéf•HÓÙ®ì÷ĸN>iÙJ½;‚¬çùfÎ~T¾(N2 Àäì£àZª L†‘ŠæPÄ8b0í4Q*ÄJ„Qðö®¥Çu;ïëWx™Y¸.ß 3@0²È  ›Ù(ŠªrʯXv×½ùõ!iÉ&EÊoWÙuº»DŠ’ÅsÈï;<m*Ì“ s»WÞn>ÀûLZØÎ[“°°ùÊ=HÅKõ‘© í ‡¦)¼ŠäûÚ%þŒQ‰ €Ï@Š£©¯8pÁ.Ca>› Á@”â XùøXSqÎ%‚TUÉ Æ|ÝÁ°ŽàÓ›?-ýVT{ú-Œ•Ÿz輂ê§Î‹m'Ò½ßç.V¼ÝãQzU~4V}´n‘ò# õp ÿ™ù\Ž'ß*õ·,å´Mšn;$öºÉº(mÑð^rȼ® HâñžÐ£ÿ1â àœ{ô¤Ç­w:yi—‰NCΡzZÏ¤Ë ¦u3×Üó’ëë ®:·ÉîK_á±=ÖÉOšË:½x‘Ð׋„µŽUfÆjgUM¾xlNO6Sæ›ýFÁ«Ÿ…oç”ÆËÆjä¡2}æ=×…ý-°:àŸ6µJߊTc ß®èÙuHÏ ÙèÛwÿ£}ù3‹UçiM—x žä™ÜÒŽà³d,Â{¡sû/z²wëöYm]¨ ŒH T‰ D\PE b#Å…Q°cèÎó¾ ¤xH¹x³)+ÀÞrôã­?mXjþL_jɈå VÉ3KC]@Ú²P;ôAÉÀJ(;ÃþÝÊ@ H )@%+™VZPT¬âVŠ)]”’}Êp»ö®{5Ê…“¸1Í­ž]vPÖ°Ð5c]¢"û¥±ØíÚ7¶J2  xrå‰)GjãÙçJÆgv‹²¬”)(Ö€ 1`º”´4Dhd·zŠ5g¤µWÇåÑÓ&߀`8¯^GS˶g³Ò[ð‚×è†s߈yî¶OœV¼‡ïë­x[Ü÷´Å­×寭îéõééÛ¼®õeo«—VyMëÈíJ•Ò¦îïs¥üpŒo¤ÐßË4u»¾,Áú…"©Ë\Eßd¡;v1 áô6"Çêþ” ëel;ÞžleCI¬,ÚY+wÎÖýÿœWWK×ãñ¾Ìñ[¸ÿ™;­&é?¾Û?,hݬ¦ÁÈiÁßüDý±©0ÙV°B¿œÂ­û'¤ÚŠ™[‡Ö&`×wý¾ÁœgŒˆQ(-ŸžRký 8‚½‡³‘ªR‚# Ä•ŽcPÂTMµÀ àÒH5béã×ÝÁTcys²¶)þ›;ö½Ö”—µÞ€ä«—¦$Þ-Wá;C¬ã ÷¬pC@0@ˆÎ´CÄeó‚­™VTkn טjRpÍ©@),¦+µâƶf`§`o»±î,‹Þý–Íè- œ³zs¸ÅÏskßéÊûÍë„0ÀxŽ~MWmºHa’MÅH0Ã’H G°À.Ñ Á²BŠ*€$C…±{XÁ;ªåŽd¢Ù@QSáÌ2.uÔ (É— µ›€Í'²“Ý$ãúY¾þð­ûŸTÃ:—$'<i7ßÁL¥YpaeqŽÉÉé‚CÀ=] ]B +ÀªÊ¾³’ %F…™¥d¥KêC:áÞþ (çñ#uOúícYþ‚†H 9`ôô|Á’¹[~íìŠK—À.Ênà"¦P†pPA^U%5”bÝñÑBsÃ'~wz,¹™½ ûa  G ;ÎÁèäö5+@:}Šì?l@“òtœ3[M—ð,üoÍÔ\µPLqE1—D*«B«\F Ä ¢„=UQt=_Ü Û3fqy«Û#çt®õç•þ§Fý9i¯VxóI¢•S=;ûæçÒ.ŽÍÙhÇÅù>ktæÎH‡G,¿7.üN³uÝ®FC@L\ósšRo½ëmoè=hÈŸ˜ÿéïØÜѽ¸Z_=×0Ú«»6Ιè" ÿuš™D!E'çÞ ¶ú~aŒ¨ŠÊ€]¶=n´$œÛG+b´ &–(Çâ‡&?Bm"7Aуݼ~‹Åݱž&ñ/`Ø3îRÎZ@‹N·©LÍÒ­ŽÚÛ­w ¼Ï€g HpÉFºª/JWž¥pÆAΫB@PHÉ}3t@‰ì¾Î»î>ð$ß!H¾ ¾¿Â'9\ú=èퟥµ {»ðÝÒž¤V[w:Ïå6‘®}HbÔ­ÐnÁ æŽÁÅl@0ìä]®ÙêßGnÆ>ÓZÞA-íFGJ¦5„ ¨$Ä>šV¬Ä°Ô„‰ËØìä è>l‹>ì3¶£‡íè±-~ζxœ§UW×Fot+ÏÆnAq"˜ÊYÓè—ŸÞ[_jÚÍlºiÍ\¿tѲÚüü•>¦þ_+I>p½Ü3NøV–*Wã´^Õf¸š—¬Îïoä™'»_»ñí6L…ê—X§æïà è;n(ìö“ë¥Z®:7¦öêx<´÷©ñì5ß8v~èœ_óí>•¯[¢óÍÍ‹ûô´==³?GvmM‘¼“¤ªóf>‹¯¬?»Ù†?Gæ£ß3e4Svf€|V%.PDv„´‘ùQ"(ÁÄ€žýZã^?þ³PëRÂ2n˜%fHaµÀˆ#"lXÙÉOÖø6 Ý§•¯3‡SŸûÖ;1÷)6¿íP—0ü]@E#`¯ž ˆì®j³üäÈyŸœ'8áÏé@\pŠ@ÉE…¬†ò("AÅ4V¶ #eì'è©‘Ëûî]ê§àq]ïÁ¥]qÿÏÊâÕ©Rï®úù}„ü¿wÈïñ„ús‹ÙlS$ΉfÐkZâ¤kÆ)pµ,4j:tê}=ìlúÄ?áˆ|–Yà‘ðõÃ(‡@Ò/w±Àá›K¼w+fŽOŒd>&ÉßlåDždZzSú]!}ßÇT¿7ëoüÎëÌAøònN‹Ö+Ät\þjÑ8tõGÓåXgúÝ=òµýŸÍ:òÜMúвJÒÓoßZäE.skÈRBÿêÆ´´†?jOҞ˳Åëóz¡ø›{é[ø£ßÔtTO|5¦œQÊÿÄ]Öë÷w@ÙþÔbd7¼_û»—¦R«ñrX«¡ÏúzA½Ý_ýãý㾎gÅ!ýÖÛÖþ~v£;´]=?FÓrö1tU£vv›-ÞkËbͰþ-õ[·Þ)Õìð–vL†¦%Ngë ð›‹Í«šzÙÈI.¬Üéh"Û>ª¼#ܬ¥;Š23rmF ³[n¾Ç§>e܉]ÀûÄ.0âTréÁ ”°‘ |†áÌ=),;ë^2çDK C‰ T€(PI¨¢%Ôº@LsTD®Vv¶eÑ]ò0â‡ü7à »Ô/¡_ý¬+C¶¶”)Cžòeq³óeqQž’Å\¬C³rì*%P oê¥Ký,)ÃúÓ¥69FÓCdºü%¥- [ɱ‘. éãÊ‘g)ÁÈðŠȱˆyH8ÖdÈÑØ·§| ‡dÑÃg¡{±w€z„ϻ軃¨ àç=è¸ t#̹…š÷±™"µ=m‡(Äpì)ÝB,†.Pà©»+v=‰¨ä@æwŰִÌÞˆ ‘Ò•»aìäjÓ-¦ûs¯ÁUΛȮŽ$ è¶D»9+%!Ä`Ÿ¹B -xXÅÕ¸VÙœ+¦.OÏÁ|»Ç?÷zFÕ ÌF06<*•™˜¾¤Øµ;Ô¶p^{=ÐÙ ‘Î@O9BLáéqÁÁÐnÝ*¨ˆ–‚bJŠf%’E‰Ñ\j- ©B…Þ©[wŸCå[çƒÙÊB6â:w†xÚ‰¯çBUÚÎЯN tŽÙ!F$Ž!çî_õ›ZÌÝ›ÚYä¤ ]2Ì,‹ÔX`Œ¨VT• £²*˜¤¨“FÃ֨úJ´_ÖC ÂøE}w$^¥¾îg$ì½OÕ3ªæöô|òQÛø†Yºwø¡Ñ×êYó(s¼Ñ5ÞO¬ˆÿ‹¿jüeÐ`9ȺÉÍ|_›ŸÞ Ñ-h›ÆeZÏvÜ¿¬íÛÏƧ}Ë;î½Ëò޶îìt·Žèc§KÛ8<°üH°¯NÇ¿¢=µ5ÃøQ¸eu÷VIËî­þÖáörÅx³™R NNÒ9³“6œ¨©Å‹xf '•¡®Ü/†`®´‘UYjÍAµlPhÉŒ„…jý }~VÿÕš œO™çmýÞ,0¸™’‡Óæúÿi§“]v¬œ.ßÒÛ®žŠ¥^ŽÓ[~ ¨ý~OSwTšÙ»ÞNAË)ÞNï£Q:¹»Aj‘\_^¯V Á6Ös3Î8’õì"f…ù™¶Ü’wÓeª…^ÆahUnSûª(¤ÐêŽâ±<þ›¼.rp°A‚»ëDwô¹gD"kõæù¡YÚ™?ÔÂüøÇ¬pqO„Häas’$EÂny €Ûß›;õá v ì"è¾%ê…ø•D0 ¨â€AVJVY@p…0(4”±u:3ƒ7|r§5ÉjÞ{þþÑ1n»´5Ù*v¼†Ûgôµ]cqaÙç…x»ÄC¸³á®_/ã÷Ðz¢ÞÝéY]Ìe˜oÄ·¶9Nº¹MüÛob%ÖëNÚ^Ûùqn¨ ÛckUøÛlÃ{ïÑù4ô×OÏR’rLAön™¦õ „ß1“yð@R%>‹"m¼Iw%ȪŠY–DŒ‚pÍDaÿÖ¼Ò¸(dÉ…"TÚŸ“¥-GÚ,ÍZ}‡ ‚ÉéhUx¦ýï®Ãlî püø»Ý/”‹ï:«nß9BÛ:jî]D9@޹8Ý"¶¥à{W¨B Y2Ì ‚„‰TœHQ¡ì ]Ub—àÞ®‰éNí`›ÙÛ8WúïÜk^‰äþpë—è"V¯34¢q­Ü©˜`5QzN¶©Ù‡År­i®­ H³Þ•FkM\y2 ª4/ Ô ,+F4cÜJl¥ø¯Ùx¤ý§Ý-!h*´6“UkË$§µ•ŸÅSæQ*3±7ón2Šg{Œ|*„kŸþ0™=Lf÷o2»ŒYìaݺ_ëÖŽ‚JßÉÉãPCÖž 7GÖhzd¾ùúÌ7ײŸ}×ü4§:¡Ü®!-·E¼éÎ ÁáM½6+ß©X½º´¹NÞÞò=ô¤ìmk}\².C¯±£Mϳ]âQ½éÃê9ïb:½$"-/Že—ðD(?øÀ)å‘pWw2@äé›)­ØÃ{ Á•+“%L© !…P¨LK‚‘Q p*HÇ5&/9÷ôø½8Ùˆ9áÌÔ¯ ÇÚÂñ.b{¸œFQž=j )£ñÕIÄézi¥Ëø­ÊÒÇ7Á$Ä"ºœ·…`ª’V)À(Z&PE¡‘6†”V'Q¯–ÁçÒ$j6y1‹ ½ÝåAÐàôjžAd9Š´ƒ2xojÁb‡:ìÆãµš^ÞMùN·¯“ë|— ³kúTš÷¢Ý“º ce!}ŽÆÝQ]¨¯? amœ…Üe i¯N{¯wNpK\Èir™vÚÙ8¬'V޵rg®ÛÏòõ‡[h3«Ÿ}mžÎñ[ô Þ&b,šÛÕ%ô÷9ó ¯Ñt °Ë铯ð‚éÈP/$á`€$ÀTÐ ¯Ð•§a$„`¢(0•Š1¨4£XVq͵˺ƒ5¨ŒÒ²BvÑ3÷ÞÓÉÈñì%»^ét» F»„ÓÍ…Ô&p¸éÑD€vlŒ0a'‡þ41­{ª´TÔ¸zp‰J(®±"&DEiU¢KfXëió6Ò³ñl1´ÿ™®+i?EOŽ•ZfÞ¹Ü)¬]¬^‡Åª,݈iÂk¹ëÛ#”çÊóì ×·5<Œ wlT¸©0ŸKúbon†µ?bk¾‡™àvBm¾Ø783S9ËÏ×Ý{âf¼îÝsÙ9ŒÌÍb9Jc`ÚswÛ>&}zê»q}ݳ¶Y`|/KF^-³31ôÿw )ß›t#á»'¤#ØeÍoßY» 1„H"1;9ãFïw xQ©ÂÅ(aUɤéBB$â„ÚHƒ`LÍ»²uÃŒ÷Niy0ƒÙ¢fywJY³f¤©øµ•eµ3D!áb!¥’ž¡2Ë¥Å\u“ c¼Ã²¥¬ Z(Î¥ÆÀŦiÅ APÉJì_ÊHÄJËŽÖD86µ†wK—k€üù‰„üAÃ?×? ßàÁÐoûÄÿÁÂï;Ú?ùøþò‰8¼êöåᨗv-0ý­>¬RÚÔý}®”éãMÆ~Æþ©ç÷…Z_œwVAøËY ‹™Z¸IŒ÷H ÿ_ ˆ÷§ñhž½¥\M&¿ºÝžÒ½ö6[ÕæÝ˜y×Çz죊í×qNu®)÷Üu¨‰mMu/γŸÉkFN¦ÜG°[¡C£VÕ{·íg‹Ó:WË"¹ÖûçÔa»K+¶ù ,±ÈYcÔ|^¯½ä_Ú{_Ö÷¾D5t¡8x„^'ŒƒGh¿JÿÍͶÙÜïçe½Fx1é¿/û½vݰ®ÇôÒBØÏ¹ƒ¨ÕræÅž›×Œ,NV-›LÄa¥¢S<9vÉî±4C€&Ü7&ŠÈä FR`“ó“k’f¹én,‰ªJeœ0ŽA©)àTê‚A¦+jçvqÚÄhïч6ÎÜ«)ÑlV•Ýf ¿NmQŠF¼ˆ“Çe5*Ê®’U+(9GV­¬H3trƒ8â’¬"Y= ªÊ>H\TŒ V‰—ˆšq*´.Jè';°HoøùŽÁÐyÆ'È;tÔ›ßKœ÷3è5A>”/7 3®A£$û kÓ¸í½c"n%¼6G»éZéG¼¸‰é÷‘Ÿd/‹óÑÿÖ×ñj­R‰ 6”èGÍ&i‰Ûj.šÙ¿’”%0IY²¾k¼J.›Å ²ØñtÔ:7F¿ €û¦.PŠÌöÊ$/-””v[¥S¥€H¨‹Bºã.Ûí5(õº1,g+ýöT™Úí0ã=öˇgžqªrÖ®ù‰VôsÒ_¬¥ c¥=Ù¯é<{^w)>jÁê¿O•º£Ö/¿ ¼ü·Ÿ†—õtum$ýiò¿6ºìNzÅö´š7¬M-ϨGÈ/FQð†+xÔŒr‰u/]XþŸ½«ímGÒßûWøûÀi¾¿ànØé‹Û›[ìÌÞÍ}2(‘J¼±-¯d§“þõGJ²MR”;qb÷;‹ŽHZ¢Ä"ë)²ê©hÝÀÞ™uó«±÷ ‰l©RH1BHvr* î9m|ÎþÅOB¡öqˆ “ÊvŸ ƒ5ãÒH”‡U¢ÁðV‹\?Ñ×ö¯Mè³Wü ½À¬˜œ.}³jàš~ÃRr§‹‚ä#e*cPÈLgFs‰u®AÎ 3*CZÁXîì7Í>ȼÎ`¿î×ÒiëÖbܻηõƒx뙦ïåûh_²ùz¾¸ÝwQÝ,wr¿“ŸfÅ7¾K ³XÙµ§‘Ú·[ÇÍš\ø÷ö.ŽÎ7ë¢x¡?ˆïë"·ˆ{]ík! E¶ºˆKq:jôëØÚÆÓUy(‡Î Bá„gZ f±/8Ê%4„j¨×Y ŽúÁtÁ#_;5ÖùÍÅ#Üéc½ÇV÷ó¹­býß\€3–+nº—`Õ~5o¬S5a>IyÅ?ù2±ÃûêS»1L’ê kÖi9ø›aÍjÿ¿çWÇ{rîq°—ÇÑ<Þµî54ôkè Æ”·õrµÍ¤I¼ÿñŽSoF 9½ÍÓÃY¯tþÃýî—ùý÷?ýô— c4ýMÿ}­JMn¤ßè#;Ñe‡L…â™y‡Â_ % [½˜*düÄ Dbˆâ˜ýYF¸¤Œ–ò[ à´°Á<ã0W@Ã2 (˘bɘ#Ìx! ÛÐø]Æœï:ûOB:ÒŽ*ûà÷)ùÂ¾Š›ÊkÎËg¥ˆŠnöOöR±o1Ÿ.ÔlÛ_xÃsR”g¹äT™³,Sdºœͬõdr¦1Ë‹þAZ³ln"×6O»Xûé#²iWžZÿ`¹Ò˜¦óšØñNçpÉzå ¦kÙ—>Þ4v+a»„…Fö;ØÌûêŠÕG$Rk ‰ôÐ*¿0[Ì•[Ç}xtuöò7îP¸EŽÃ–ò¦ý¼©ßOàs‹£>ÿÖý¬>‘¡ #¸Ž¤ì9•o¬÷ò‰¼\ˆ HF¦3ÉNÎv‚æý8=WÖNα8Ìbrì `Ɔ94…‘¡íÜËë·4¿k«9ˆ¤½<`h5sôHKys«s‘„¼x ¶rrBH%hÄ8.kô‰±Y‹·<£(¹y•C 45†R ¨’JÌÏÏL¡ Â$rJ‡NW <é?6Ž“œh5XÑohEÌ×i0_±Ql ÷4–§ùÖÖ‰nwA>^Çr16ø±™ 6Ù,ówJgøaÛßWnj¿#½?Öoú‰ö­ª>8Ý‘ó£ô¹u¦ÊLe{ÉŠY¹\>ækpݱ¦ªg´íØ'îÊÕsx T•ßÝXík<+oÛDŽñ†BûŠÞÈ·/ï8ìº×´ Ñ®Ë9@R5»®8Ø^'¶8ºA~!õDß>‰'82£ZË“šDÜ –󲦋ÄâEÖS˜1$mBe„ThŒ%¡¨0„3E¡6a­( 57E¸‡‰ÿõýßõÆN’9GRÖn³ ¹uÑÜç5Îö_0³‚Ü"ÉéE0\ HPqú³µ}tIPP*4 #uÎLF”Bå9#ÒÍ.rÁ1\ÆtSkgQؾΧݣ‚ñ¹Ô͈m¯–¦šíÝ…Pym ÿôå¯úáªÕ*e‘ŸËRþ†ú…—r,\Î'¦Jì[¼‰ \¤Ò›¦ÃæàA»ï4†ÆZ-§“û*£ý®÷*½‚ šü×_~{¶9wç"dWe•ܳJm÷t7<áÜ›§fÒ&~Óõ4lÿl*dzH^ùs£²©4Ïv“4ò2¯̦méÀãìª[§ Ü3«ªeŽÉ¾M—!F»Ö,׫>ÇŸ^ÔãºGò×íf†e«e\´wvÛ^ÄíïVý{,ÌêkYõ¨‹~Ó:Ñ+q‘5æã"×Gí~Ók´ÿFþßÇÐ粋­g«‰Ûmé6 ö †Ì~ëj6¹SsU{ÕÑôÙ±™¸±9ØÐ}ש_²qóÅ‚V[BôŠ>· |ªõ¦ês÷]ÆÝõMV·§½íD×öpÓzÝ64ïÌl9þ寎ÊÝmì¥JËžQëŠu|gW8]e¢xŸÃ»Âù½žÆ©1›òÎ=Qó(¬R)=¼þ¢`ѧŠ=0Ÿ(:ÌöÕz¨Õ9ŒðvAŒðä4€ÍsšŒ%^S¹3! Öþs„„„! ŒFöRf„Á$Àü<ìpþMbá'±oò&®pw`3;A ‹Âdá Jã$LNcçdÛtáP1I£ç6'Ðr’SØØƒÄ>Žp÷¦ànB¦Àm ¶>ʦ0lˆöðg;wh3†ƒ0 #L¸|ÆØrjú³,c<Æ4z!<Ü¡Âë‰w÷À[„Ù¨æ!´0’Æyè+]Öò ÖYíU„£>õÖdDÑ Zëìj*Î\K¥2޲ßuÕSV©œµœ.Fœ qzøVó°–ïfÿÖ¢@s´ ÄPÄdŽ17 ]¤t~0Œ ‚]Û´6bãs ¹5 mþnü$»‹n~tWßÜÒ¶­(—fá V[àÌâmÕNë|…CÚ o*òÏGf-ÅÑ^|Fcx„¼LâËü€¼Ã\ aÌ41R!( Æxn9–E¦„Ô’Û÷Èû‡ø5ßù:„¯Ì÷‹¤+SÀ_"|Ï#ކHg¹$<Ǽ0Š h Œ( R\LµÎU†¶â7Û¸¢Ñ4„ªÀ¢©w£“Þ~×ó4± ì¯Ì{P·'!G3¾¿ï$ Ø]÷ÓÀrŠ9^Br2 ìC9[Ûæj¡nMt‹n¨•&s†r9δV(ÇF—Bi§ÄH1ž‰onàEÓ’ÇJ=Õ;³ö.ì$~g¥øìü$¼çÍ^ƒ/é“ûGdÌ;épëƒM“GlÍ ò”8»꽓(gïzv5°j^!rR/m”ƒ#I“©3Ü*¥ñºš»c•Ã^rá'AŠÚor m¿»Òz¼^Ü/ʯ.‡w“0>¡ènáeøî6ø“ɹÛdÜ';³íÑì=ßÈz{$¡†ö¾~ ¹n­F)¸'çþj²ñò®\•#Ðv3娆´&ƒŒ*“‰Œ@µµ4`Ê™çBæyùm:›©ñãzV­ SÁÓc~¾¦Á3y×\Š#Í;†’lÊ^øú ߃ám¡Ç?—¦h*(£üöÏ^ŠÅ¤«Î¢^V$nyA»â¿ýò3D“@€†©†_'ÈâŒT‚i£÷Áx\Úe5–«˜â¢?iàNé»\ ¾H¶ÕÝzž-Ô4Àu!´ÚÞ)YáàXªb{ã—r öÑKŒ±0G(ÂXÛ»wOe¼`\Œ ·‹ž„¬,Ð\LóuíÒ!Ü ââTÐ@4±Óš\Y$Å0 %”ÁLQ¡Ç„klÇ7Ÿ¼ÇìòÀ›£I9ÞÊ¥y»wóGٳɪ^¹€ßz9íwöc'U1W·ýøœ žÁOµûsoúo—|åkßùIмÕVzû/[W³òkª8œ^Wdóîà/ØMzh1|¶üm¨|]ÝéÏq§­“a¨Õ¬GšœÜéÚÜt_³ÊÌKGî9o•:ôÜýÂÏ«JYë§ÑH“•Ê|ßàí>ks£Pöìæf1ùǯÇý¢>ªyQÕ¼~h›{˜ró“d¡[ÀÇ›M×M½&GÍõ²ÌW¯`ræzoèÉZ"ºŽ‰ÄIH(>ƒkû¨ÖYæ¥Ò( <' B’МiÄyÎ `¦Ú®¼ƒ¢ñÌù¤\>»éÆõiuï9>5ªÛ¿îˆ'üËõ4é(å¨<6n´r"±ÙÙ/%êx%{gQo= <Bȇˆ¼Ìäjm¡CÂ.aQPœ ®E¦X^ä bQdŠ9…ÊȰß#ìWÞüý†j²Ð…j·ƒ6d4GSåy¡Ú›;=7Tûœs¬éÙ)Æ™óYJ…à'­ç¦šæ¶Òõñ†$ƒ?pV€3ɉÕ…™”±Ìp¤)ÃÚå´ÞŽF{ÏÝhÈ3la¼©´ö‚·?xå¶å¼rïÂ+wÑaøÛTzÕÇæH1ñ&&w5Æ­œâ¸¢þ×l¨îr¶áÞš^g›oBú•¯½WÅ47cp#{~•ZÞ%úQ­èAدhß<]}:=ÞCÞïÆ¥§t3Uï´îµˆïjÇWûÐÿ·cÄ[ºÛÕwv7À'~Óc9>¨ð.i±´}jx )°oš© ÄŽSLè¡§EpmgŽZaÑcnÂédµGô³nñ ÊîVóÞ,< ¼åjvo¾ ¯íK[Cªt4|^i93eX`-Ñvu ŠÝº0qß6âÔXÚwžØÊ®ÕQÅúvº‹¶ €Wö´º+©;ÿkY…=«ê• ŸQ«ùrf&Z­Ú¬¢.×yxù4 i7-F5ÑPtWg¹Ä–é çΈÒVÄËÛ½»ÎÛ¶·Æáî½\…Û¶íÇ«Snm‹~É8²äêÚ}kS­ü¢ÛÊ,ýë©]„#þ…ÍÜh‰Z§MǪ6ÂÁ!°úÓí]Y¯ê¼š.Wmɸ^éFH‡Î¿Um8 =]=}þïFª>ÿº“ãt [+½gþöÜ pàÒé‰&)i?­4ÄÖ:.±4‚PâÐû,sª ‘)\˜,3Phƒ#¦`ˆZ 3Yd" "Ë|k”_ý&Ñw»áåIÀv·K6»]‰Í•f9b›«½ÅKéOœ:ݶÖàüaD*™#ùÄ’“¸MÖK«¬F.Ö ¨#JLå'á(å²9ãHEdîü¡¥†é"w9>áfê´´5g÷eØóùÚØ !^ئ™§ö‡ 7I.e!¬ãÏØ_xKÏàĶӛ;¿ ù›d=;Ÿ9+)!_hã)§Lÿ-Îêeûõqâ âÚ…èw¼_û¿¿ÿÃö]¤M YýžÛL¬)7ØÂí®'J?jÑì³ìká ¹£š¤_ªméÌ”7û—:ÐÀj»•]-4{¬òt‹Ùºo¡8ŽÅvü±Õc&ðikƒóåbÿì¶¾¦yýù¦õz Úâ0üôëŸGxüe¦ÖµÙ¡…X%÷ÎÁõÏÁšöã]@ÛeCx$p'á„UC¦LnšìÈ)vi2… IÅ9ÌQ^p$£†(Å £jr6â³ QÇ·»}úXOz?ùûÿýí·‰£< ö`ÝwnìHõú?ÿòßþúëNÂç.oǦªÊÄ>Ö‹¦å;ÏÀUGo%Ï%ÕöŒêÜÚÓ1k¿kîΦRecm²õm¯¦6•G…¸t!–ålxVÿÒÒWM·Ÿ5VŸÛ2ýãç15ÄÓ)¢â@Ÿ¢¡éèî$H(áÐ?Û_óS 2sœàºPŠóÛ¢~¡” ÃŒâÂ^’\+ûTTXka !Áößýü„™1¼žiæFÿÇnüÇnü½Ybë ~~³S¥vîT£ŸÖÓ™6ÕM¤XÊb±§ÄX±­Ç^ŸR9©dd-R«ÖNúflnøKa˜¢ó¤š`ˆ­¥K˜]>Ô† %™UkLh"2Cr³åìéκ=‡æÎ½ø³¾ÏÎ`’v¨HÛÖ'9)\=±È>#}€t$EŽÿÒ¯xcN‘½GÚƒg×o—?ýÚcR.àdõ-壴±]$ó2MŸöÌ!,0à`dÎ:e-íÛNÁ»eô†¤è[‰Ð RH€Ê*,ögPq•[Td,—\RGæjŸþ[ ÇRÁ\ÚÁŒ[1ð QW™Ò!M›?XŸ=‹ÍOÄ‘'ù®ùØëJBè%ܪxR~zç¨Ó|'w&LSä—LkmjEšC€qa•)¦EÁ8Q4£ÀäæmO^ßÐj:éÄñh0}¾s«+?ÿh$´ý±3¨ôg£­&~¶Úbm•ZýùËÈ*¶Ñ—~ØMÍítŒä?ž èÍFÛz¼ëIb3ÙÙBG„xšºm÷¦äÑ–Lr 69êY%Uy^`À · h¨s)VLm¹h›ñ\NöƒTOŸô´š/n«Oî9;öYû¸çC¡ËðîôØgß!²â |&N`Z{Ñ™Ïð¹Í}Ýx¿Fî,»Òÿüõ§?M¬ùµ3­–ÍQAï†òû5-cÒ­¡3þ¤ô[×™S§ýª—Ÿ_Ù:j^˜¯Ë[·l4>lÄ.îÈw·|4 Ww1n–® £€måýi—ìf0Nd¶¼ .ÆvÙ˜«– ‰ÀÂí•%ª¾M—A ®zº7O¨vßß+³8«6sLjå—ÖóèÒùìº#¿›èçõr6 ;õ^y]ºÏã¼çu›w$áÛ’¯j•ßußΕÕÑjStWÎ_¼\ΞšŠ.]¸ïîFîß7Cç'P;æX1f#uYq€Rà9 8¥ãIHJ{N·–pŠðIúsnš^æz$yBªŒ „rLY!ì C-~HVX»dÍ–92ÈW ­L½7*ºl˜æ¾|ËÍÆÍ·>¾~®pEcIdS_ºšx­íãS'u@p9Â2yŠŸwKtçÔZSè Ñ\XpF¬ˆ ¥¹BRgˆóL3iˆä"/2kG‘ïþ|:×÷}›Œé|l‚_n`äœÙ|ëÄv{W1Y–Uâˆ`€Ñt¶j}0û𩞓¯^‘l!Ïa€”F9W´Óqc¢¶ÒÎ5_›6¬.3}U•ùüÅ>¸RÖ•xÇë °ÿyëJÃT¹ëI2ƒ€rä<èÉ)˹K)dÇkdטÚu, ­a!ì²’¹´#ÔV‘™œAbŒ 0‡t£´Z`´ÕuãZäþ.¦³Ùzéî5±?zZíeR§œ“‹²µß.eÅÚcŒÙê-¯´|w^xéãzÔ4¯ÍÌúôv“âÇnZŒÛiÑ™vÚmþø\•åÊÏŸl‹ê©Eâæ>.}ZD%«¯SÝ$LØOÓÕnŸ°Ymô´vÄg㥪WÆ_„æc÷ð]ÉÝÌå…Ü]ÏgÌËumÆ»uwïªÊÝubgùK¹°V­9°¦ÅKHœ’c ½5m>>mbMØ..#" < +Í»¤˜~·R}@Nt‘ãŒ0‚ -¬csáqT[<.±bÅ™Sb 8&gð1 Iz-Ú- ñbq=ŠÛ›ÊŸv"ÎcüZBÞóÜÃJy›ì4xzBÔ%fxD>)õ£s¤˜~syFÜ&2¾©C¬ Q’ŽPa4+ UVÆsª‘àC¥Da'À¾þ®æí¿M÷7SÇI¿½ºç½8 ®•©ÐšHFÉ 0}\ ÆH2ê ô9m--U‘é-#é¨TRÄ&·mÔúdaÔªœÌÔS¹^õ•ómöƒÝ9J‚~÷NJqÖð²&áÞú0ÅȾl/óZ{ãÕéX4¸ 3ýNt‡Áû¾­Öåjpå h»Î´(S«µUù¬ÿm²©Ý·´Ë}£7‹Æ#Bü~úîÃì×mª¿ðL_«õ>Ð_FbU„Á@ÒÏm°Î\™ŠÅ1fÁ,L(C1;^¬ÚWŸ®xšI"B%2Ž£D¥2 ) H¨XE‰,Ä=„pöJSäXt9Œkѧ:ÞŸª]Csú¾éÔA*es‚í¯ô˜oBºúŒ”-«ïǼýwO ln›‰=\Ø{ìßqŽå¾+"ï_ôq$¦hM£c¢ß›~?=2K™J•¥<Ô€‡ée®÷XŠ(ã&Êdw•2Œ¨¢þõ.÷gø=wßìc“Åg©êŸLAFý•õŸßn{k4æXüð’ìO”ÊÁŒˆ‡É©Ç‰_—øéVôbOûÂ#W¤‚fãá'»?ÈúL[Ö´XD%IL˜Ë"rÀECˆQDg$ŒÂ§œˆ­¬0Í!0&iÌi„BEDD–„JÄL¡DfHH„dT$ÈË!.zù´_[ùª— |%Q€¯?Ôïìe/%VŠÃ;2â9ÕNÃ~3Lh ô˜ 6Ÿm‚Þk‹À#×£~êvûxâàÅA°YÌ"tLŸ*õ´"=«Äxºáù*Á(– g<£45yèˆb$ˆƒ ËP !©Œ¯,Bâ'Ëëöi3Y¸þs¯J2Võf1¼o—ÃÜ,‡v¢ªM£Úh®öÿ´s«*û2³/›+ïûMÝ×o¯i[ãÝi+Ùh¹Ž†éÎóýÃ@"kÄáŒÑ(ÁGYÇTiœjgÑ06î6P^T¬2%P¢2N®BA”P‘b(aÌ%â,ÊvY]Œe®Iý]?w{eþõ¯ó²½üimü¢Ú0Å«>¤Åýüƒ^|¡~5®¾›Ù7î°A€šnú£FW(¸ NnZ³j‘¼"L÷åÞwßÎø>‘Âx]¬¿¬ò?Õµé¥ß®½”WãÚÂ>?ãLOwiÿòûìÇ6;òèܘýM/ûokÝY^£ÏHEÖ‚7¿˜ ¨>ŒÂ˜Ì hpŒïƒ:ôK×âÚ é»£Êg*•ÀYš!$„B¡¢Q„©d´¢€Äˆ&$âê‹ôÜ›4¯æF…hü{ò²ÞiÆyq€õUWÌɀ䕕Ñy™2:— Ôøá²’_çkt™)Ƴ7ô’ëÕPä OÑÑ‹| ø¼¶Ò:ƒKÑÚ€¹ AÒYœ‚ð1 6Ût˜`™@ º¹Š°ž^€y‡1ÁŒ„‘É×…&¼$"X¤\í°ŽU7s¸^å¹C[âñ¡e!¬ÅòœWàA5Få³ôg~ŠŠzÁ¼o–̼Y2ÖŠ›Ûa¼¥î:ºœçëªÖ2¦§ùj»®¶¥I5лvﻬd4ovcB¥êy—‰eD*ÖBAÁoß™@Òi¡ÓÞN’22,Ô`&±4 N“±>$I2vŒ¸Yeóê†oÊ™IûkRx"вG%R 1³!³ŒeY’$!W4‘ÌÄʧ”ÆÂ°Œ>[ÙªXs#=¼1Úªf€Ö;»ÿ÷y–ÚàéisBÏ8©Äóeö†M÷¹îÛ¼¼¿í_Ö7™1‚–¶ªô«Õôoá&¸Š‚À5x¾ˆjäÔúXOš*[,·vvèöõ+÷›†m˜ÿâ7ûåü¾]ÐófA?ÂõÜÊýH«%¸wÆ(2 Рcÿ“ù`vPþ[–Ð" ÉZÕeòg̃k˜¥ÁU˜éAç0ÇŠgH  $#INI¤Â4$q‚S•RL°ìõ.ÖÍ÷Ɉ›1Ú‡£;Æ?ºÏyÑ<˜3÷,«Úø®Ì›×QûÓ§¬§OÂïrµ3ë½^BJé_y 7Ö~¹îšmí2g Z*ÃlìšÝ{rS©Y?µEíáÝm Ç@vYçá”Þ¹S ú]º§y±È@ïü£gëø¡¿ôÔ§§ÓRþ g´÷Uv&AÀ4¼ "Ğ̻\û¹B¹åT@&ašr+™ŒG)Œ2šðˆ)…£;ýד‡'™DÈ­9Ü bbïY–‡SA jÌ~¼ì(˜àTCeñ¥K{Ƭæãó¸OÔ±ßQéûN¶ÝÇ)ý¢ˆ’8öíö6™Ç`†@ž¡„„Çk¼6ñ1(有8I±`úÿ,¥©P ËHœN©ŒÃ,‰å.›¤?7 gQjV_weÌËÝ?Å£PÑ <÷^óá¼ @uÎà Ê`µ<òÀízÃGëãb\Ï~¸¶¯ÓG,BQHñ,¢ABŸ~ÂÊB ¦ ©'±žsÂÓHÄ_ƒª¸0‹é×jýµ6Š^ànô´ïÒp'’‰¨»>Ã6tÖöîã(½;±ƒ}à~ÄâˆÒظé£{nØãÌD6˜5TM*K´¼›QÆBÂ8Éït?À±îçÑó;;þÝa;ÞîÞ‚¨6Ã]¡Ùfer_›Í!ªÞ±B£¤6]ë³k¿Ë?÷1ŠÇ‘ÓÄ=”yqÎEtè 5Mï+%Œ$a“oØwO‰Òë¤=ICnÊÒa’D„‡©KeP£2Aˆ(hÜćbµóEŸðÑYhh‚FÆ y¦±Î ØQwèàŒzFšÆq ÍÑ<Þ¨cÖ ;ϤLYlH2D&ÈîðÁ)ëÓ\@˜†>ãÕ>íû Zm+hµõØa \¤„±øï…‡ØÌòÿƒpÀ#ñß•ú-a/ãí6 €Ñµ_½|m‹Õ°4 ÑÙ™!I!¹Ø/[R°+ü2¯%êŽ$\G°˳®kI¯c¡uBVET@2…RX‹Ÿc©6AsR‰êZ|'´äÀ/ß½µæ/!¯99?$^»–û,ÓÊuÂôý¢Š¢á1å&†›˜! ;N9a4ˆç¦<"3 ¥"«PHB)‹U‚•A;Ú=ø¶>Ë}¹\òëaå€EùÁ,%0>n??Ý}Allµ`X¬ß@8Ã&P嘣ðà‹¢íÄ3†ÁLÄLo\De–"a*Ä2Dy’ $Æ{7H²šÊöæ­ØkøS¬G²lmñ0%¿†&Ñ<Dû=S‘1Ýç~þö{#ûÙžh_;M¾ ‰t;ÏšÐU@f|ykò¦5ö´~ÿ÷ŸþqmEµŠ­Øi|ùhÀô2ÇÕŸ9µµí²-jYV?ͶVuº5ç2¥mêrŠXMP+9A<‰î†‰M<ˆ/5tLA¡“çÎZ¡HwÄϼ©Áâ^Ò0wàQuqb#PìÞ¡hhSzÀÏ?_Aæµò´¯™öCÄõZ#vÈÒÂKÕ.KfàO¶>;ßÖz˜Z3_ˆx—­æPóXWú“ÍeÁ9ؼ­kÐ )Uº…žPezA¡4sõDùÔdC‡iD‡Û/9dˆÊ–÷RA„_­ ÏÛ,ù‰ð½‚V@³fŽ?ÊÅ©V .—ØGêx«c¼4b:оâúH¬n¡‡Zmá5¾2J†NÞizBKl­×Ø¢IøbT/@‡¢ªšu 4KZ?Õ¾· I°µ‚š«R/¨ÍúBz÷-›ÄXc´”R·!§šuÀ+»!‹Má½s¶Ì½´•Ž¡…¯ÏŠV› ºC¤À<¤ÓÌ·S­ç›sÒºjÀf·¼­ÄZñêíX j›{(ý}±öBi¹Ó‰‘7ó¦ãòn&ó®gâÉô‡õk mO…á®vÖu8Œ‚Þ T¼XtS……g&¹Ñ©a÷\ó |Š‘\ˆˆÄAŒâP2äL²$‚Pà#)6­E³Þ4ú“½Þ „À¯ê¤¬)ï\\v¤SåEU 9'F| ˆ{¡M`¥ã3‚*aRë~ˆ‡»9ëÑx|öÏ'*þ¹ßB¶ziS¬à½°›®~§­ ч{#Z_RºHèÓ1u/jë2è(ÙoAÙg ˜ºéˆÿ ¯ùÍ®‹#aë¢E I'ͽçV%è­Ö/XP+lÒÃ'¢-ë$ÁàÇI0Ý@c¬Ÿ½"¡¦yÀiцE˜„³0ÁñQåeFƒo—)$Ñ“Æì ÎyšH’ LIÅ$‘aœD±J%1Ç!Â,¦ó,–:í4ÿ±¼¤ˆsRåeNþs¤Ù0ëc²ù×ßþøƒ­cü+ïF°ÛZïÛÍÕùî½ùÙêðGóvGNØU›Þïº!††Ô.Õ׿ÿd¥ ê[ðcsÙÂØDJ õ³4óóùð€t”`f’ƒEš5Áƾ¬yYç¢jf‰È %W1ļâD¦i*c€ 3ƒ»"‘FQSàK©D`’0û~F@Í×å¶žïGh¹“þàoöÃî-•fôç„\‡3ªW]l‘K³<‚(gƒ_[JùýÎé÷ǼÙÈ‚¾ Ô¦7`^C™ ÇìÌ“¾ÐÃFLKP8Ønôá”ÿ¬%Ñ ±‘c"Ÿë›í*5‰òL±48«O§™Â,“2ˆP‚P¤’€rÊâ˜`ÃÃ43£,è8ÖMÞXVæú¯õ\ ±+“ÍЌҳ¨v°';SA<ÃK;&¨q MJa˜2&‘L#J“4‹ÂF‚áL¨XŠ8$‚rd‚ï”^ö‹~ý’¾ÖlOûïßUûé>$3ò>¦ÚOs‡'Öû9jÃ4“˜Ú5(  ‰ÃA‰Ñv³mnõlÌú^˜^E JGJPÀ‚Lê‰MNh"C–$iBI Bx*¢(à8=Øã\wk2´w§È3¸} € ­"~{Ó@›÷èDAâaBÔ™<-/É•²¾]›?þc¿*;X¿Û"˜½Õÿ|Þí®î®owÿ0ÿoÄÿÓm¹ÚÖ7§ÊiY¸-×ßýx•WcQ©¢Da„ÀV·oå´|q[À‰ªÚm;.¸Ûv¼qýFy:^ÿô³ç‰ZÚ*›¢Ò²¼§ÓÆiÙ:-΋¸_D÷öˆàÌ«#„žvß¾ûÄžödÜþ‡ó‰þ€?Ñ­ÓñÖ×ñúÇ®ªØ,r¾æBCë•óBíN¥³o ·mé¬Å%¼—wn Øq•»-pGg«—ËqËÆy޳Ü6[ðö›íõÿþîýΕ3xå ^•NË'§ÅÙõÛNpëLa{ w\çF ä4]¿ü»üúÿ~¹ªÅݦÜå•È›íi9œò‹óƒ/ðèÂoäÏ›ëïû°ñ*ÍÕ~î)< oæÌŒ óî,ÛŸY@è#c„âYˆ)Ž£cöÖ·¡‘…‰)yE‘3dq Q@Ò `<Á sA…þ#Szä( %‰ã^W¾/€VlE'BlVýß2ß¼i´:­Å/¹ aåúm8€ äÂ®Ž’½)Ö´”­NóŒ¥Á`I–oF¡ïZTy E&š²^¤%?M,#$Dÿ37nV¸÷Fã°+Ûzuù'4©"¨ŸJ‹î ¦,V×j¼†¦Z˜ûšææ>n o±-+÷F'Ì]Êó宨·=ô³{à.óz¬Ü|P ?ížSñ2¿¾Ý¤·¦TÙ𪄖«G‘}í?¡½}nÕ—F³êÞªŸ•Ýÿ‚TâùýНÛP^o4£§ùäAŽª*–wî7ô¾‡íÏY“þ4Zzï™x¡ÇÛaH7™EµÄ¢Ïì7ùjÎWse‡aéF¡d¾\r§ùËF7çbnù•æãùz{[çõÖ%”ÎÍÚ 1ó`cJ}Ãs§-ŸTú]£3Ô]þÉéxŸ;a]™>,”Æs7>î\ÜzG¿¾÷óçIOœæ×æ«ëÝÅ×Nì¦EOWNÔ˜E_䎣µEÏ…›$tÔÁ‰Ù³è;þ>Ñ[´:”ÂqÔ¶én„àˆî,‹¾áÓÏX/œI›Þò@‡Ï}†ûtz†÷%D_q÷®›|]§\Üj5ï$(’Óê°,Ç5IzÉ_ŸXtÆÌZµ.ÞšmÒ>„†EísT£õ­&å«Vìmfa˜¨¿¨·žÕÀl·wþi«6_æÝØs:,­Gi©»áͨNŸm)5LlàâFÙþ¨†¯¾Û1Öa2Ö(¥FHÏ׋7‹»¬ê²°N¢S¿ïý Ž #(L¢Óp¾ÿF@éh„"Ä3!Lâcª7™ÚÜd»IAYP#"© X¬¤"qF² IR‚’Ñ Æ©HU¦!`„zðÑ{>#È1@qŒǰÐBƒ#8À~ä!½1Àãº=ŠðÔ³fS="ɪÝ`ßíÙ Àv¤ 9À9¸Í sßsÜ1™Ål/oA0 ’F ÊÆR„r“˜ö €GùR=9Qm„#Ùxǃ~ÆèÆ‹v‚1Èc Òø `Ü2„+{”ò$pòÒìð È16¶ðAŠ1’Ø7 àÂ% ÁÁì¡€…‚ÿÓ·»G¨÷íO@„÷HîÝ'§{Äó±÷d½m#i¾ûWèq *u;2îéFéÆô7£.ÚêèZN2¿~«xH<Š´LK²”ä!±]E‹Åï>»¥ò.a¼Cï½;$îA»C¾î«»¤é!ºCv®‰Ì]’r—€Ü!ßTÄ ŠPLž–EŸD[bæ¾lMØ<†4Ù*éJ…à°.Mæµ[÷¯‰²áRR&F!AJÎ ÏÉëcöz=,!Ü9µ6Z)É$L)§B3+1ÈaHõ®ºDUe¹ ÒRÑß3cFûb¬&R˜5çcùû ‘‹©/ŸgC*·ž58lenþX•f¿;BNây±;ãˆÎ†«÷(ô™À®Øv5–ñ 'm϶ïŠ6ü³Ânê­ï6ëÅve\këíd>cQì¿>iÝlÑæáEõç(Wöûø¦¡¼nsŸˆ€¡iG†d(‡Ç¸ù½§Ú^t_yÑ)$TSìwï1ÅÂg)$Py~Μ’þ¤Ð©92ÖøÊA=|öH9¾žâL¯’>|µ‰Âgå˜1nZØ›˜ó¶À$àNW>ʇŸoŸJGéÇÉf†0ÇDÖéFý椲©X·rȰQArßz^Ùv«Œ®¡dÀ A†‚ ·L;"Hš Œ€z¢z2²'¢7Ç–†ÓšÝó så1“‡š#c¦™þ^Ðcèõ‘8†»•Ö/çÆ`ÊðƒËŽ,=xŒ¡€tă¿èEX¼" “¥ Q°HcRŽ•³P 9‡D3cüŒ%)b´ªÔÿ­ÈTzÕÊIßņoVl¸ðrLÜ«ê94,åyFm¾Ñ›;Ó¦N­¦‹ÅÇVYm?÷5§qœš6>‚Ž‘ý`X.O"ÀýmÜËmÈ¡áê3Øí1Ú •X¡e&UŒ{ÒžrÈ´rØJåňp&¡%令ö]R;ޤV£imRV¥` ÂÕ¢W2Õ¤Nu¢ÔG*mF Z¾`qj°óé{‰(qD ¢xCâ„î§îó&K­#ˆåǪ hÕa‚Vš€T+Sÿt† ÔR¡"*ËÔéF`íiãlý5¿¼oK^¿¼ÿw{ð…-±f1?LÄoòUŠœ6•l…èË]ŽPzAÞ‡0ûùîYQì¹tüXÙô^±£Kyâ¹ßjF™^”>!tM¹ ª”8ßbu13ˆŽ(X²Aøa3›"Ö% ŒYͤ:•)@(M±§õ6åÌ­åœX!‰ÕPñÒj–KÎ륛NÑMùˆR‡(žtv*ý¼ŠyÙÄíbí—šdåCZWN·¿5ÿy_•¿õb;·‘ñÎÝ Õ£z˜$f:qóHmÿbv1›åuc³EÿžÆþ¿ú‚ƒ©’=©]­$³ñ¢ZJkÁX°‚››5$^F›R?òj‰”¸¤ˆƒ»œœ"ÁÁ€@F§l‘à‡ˆØ5_G:L^N¬Ç3kvå^F;žtåcî0£>ºØöè9cQNQañ¢…ÔûNjÛISAJ¬˜TnNBK½šì%é1)ô5IͲlˆH^•ls°²÷H„‰WöA$ACz”•OÉMÛýò-Æ*H„u)£…ˆPÀ™"Ìb¥dœíìÞ»Ô8ÿ5]«"ò³àqe¸h·2^t]s3Y/¼tbKÛûŽäfaÄž$×G[Ùe•±ÀiÊ¥/ âky4ªŸ¼Žÿy˜U/ ‚I å0‹{EóêÇÀl0§)†¶Œ;£‘ÇD4ÔX Q®.×éu…ž¹ýw+êp–§Ü¡MW@ü Zœù"«qž²ýõ"¦TŠÐ¯€ !‡™›Ã£0$ÉúA­–#¯p… Hâß#Ö׉A© vÊYJ,€µŠ(±©#X[ƒU¨ò–cÄžggkßO·¹@~"H: .hq°Ï·}Ä,×^º¿£~—:ú½”þëë‘åäHÀIËK©e`g°ˆZþW²Œöü%÷ †£ÅT‡®¹Mçm³µY¬ü­É á`LØÍå‡Ö¾ñ¤Åçr÷ƒ•µeïšh~—úvgåÁegÕbHo –”d$O{~+|x>ýRòà ‰½fñq³Xæ £*«k²cIk²ãÝ–’ý†":EЫhœr0L·]{h̰ΙêBù·Åfî6‘M4çP÷éžbÝStF÷¹ïü ÷ä¾óƒ´Ã@ß$ê™$=s¬gN”¾ø’oOòø…sÃ?+>.Æ›ÆDáe€Z/Áüž¤²¯H?A$Æ#$)Æx˜M±|NHN›º{B„P@-qˆ1ÿÊ&Bjku* Ü8 )*ƒF³x¥è!ï©tk¦ë»T¶k¦{ò^-'Ù ˆ@}-)¹õ…/ØË-öC=“ކ•žª‚O? ;¨-•)rŠkA‘sJ1Ë ÂR&,s eø‰ŠO^#|µQò’@ËﮪòↀzÚö"ðÊP?|Q,g0%ÂjÃ¥#JkŠ1Á)Ä(àÕ¾–n5M>üö>y?ÑáÇm–åÚÞÿýÇ»¯&¡îºÝ•ZxØUMxÿ0›Æ÷áüáÈby.!y Iü¦¶™P’É@;á)L-ÕjíVѹ»FtïæÕÉ~þ··ˆø9”÷7‡³Ý4ó}<36ñ¨¸›G?òDBžç Œ Êë9?NÜ'(<ô‰1õrÕXÒîr£1QÔp®­ 5iˆ Š)ª™N Ñ©ƒHrlK!(…×Ù‰µBžÀ>=$jÿ{8ãafæ}$ý–äØžœÄlï±8^䥆åos¶«&éû- Ë•OPœÆ‹K¾E¿j³r7äˆÇá.Ùí"–~G$A¿f]¨<¦lãÓ w<5Òj-GŽcdqš ä‘WCÊdêüO 0Ú'¤¶O³¤yíìë:ýþæÓ¦[_æRÀ±ìDÑ ”0ȉ#Bˆx),ÌÝÉ FŽ*  š(Å¥@Zq„u„Zî‰#á©DßC½`Ê´þNP¢Hz–”m8¬!A“Ãõ“žij%±‚s¥cJ¥Êë+ Q…¡ÀÄ m/y»Ülö+L¹o|½"ï>?ènñ¥Ô‡%Þïט}<|È6ÖƒHR½M± h J„€£ å„…ÆDP;‡X*!•`îÀKë¼Àé…Û@©'° *„U÷Ÿ!,~eúÔeU~QÚòåiÃ/«-uyÊn@ŠˆŽ›a`‰&!hĘðûC똶1ºi¸¼ÞU$ÇÖÊócý悞õ‚½æ“Ï©qEÝêÌ ÈX…œ@Ê3WI¼6ë˜W(˜TÀP߯ÿæ¢ ˆj‘¼ãç5”ïtãâèÆ+Ó‰€'ãF+ŒòäáÍå‹úuad+ÿÐZ±ê}É~+‘Ú‚Aj<¤öÀÖ³ÚÕLe5€ð8Ø5ƱÊó9K48¨R#¢óC^ãDÐ`I6¬tüî–Ý 'Ùê/JÀÇÍbá âY¬\– ùDD“לNÄé, tÉYÈ5Î=VÛ+) tÆ6¼ƒ‹ò”¸¦øSqø—^ÉõE‘ù_6‹9*ÒŠ) t-ÙÁG%{¯j¨ëAP¼g0;&àÁ‰ß¼q“ŸÆ›µyp3µ~SY"Ù[1Q9Ǭ¶OVÆóÛ¤>Y.täX›(¯lIý Všìø`åÝã=@Å#B‰pH²Ãî9¥C¡™¥±\Jƒ•²”ƒaZHRBŠ3¯ðñz5× tûºJ¸^€1îuq¨âcØ#ÆÉê³¾zK÷C/ KFF 4¤ v]^ì_N¬T#/ 3k!ÓP**³ÌX „bŒcM,ëßçÛb/¬gû×Ú¾;ÓsAs:”Š Úbz.W9AÑ×— Xa„îÃ0@°l„(å\ 1mý*1¼ì ðÀ8ìRȨÑÖA.Se,eÂr ç éR­d%ˆ+aÖIþËdž.Î¥©µb*³7¼™ÚÄCöösâß/a¤©¼Äfû5¬Á*Ù±r”{ =åÃÛ‰in÷³e[ÿË.[ª®L7ùO(êÏž‡N>y zÞLÞpÁ4oNX}ô³c»^ÊŸmß2Y¯ÒIþLÜñÉ«—yA»ôÀËð×Eíº€-/?˜¿òæE9ÛE¨yxhâ~ýϤT¡ê£ë¹Z¥ÍÁ ••éÐyãÛµßÓèÇV´hv‘Ê<ÕÞz^³~óGÐYÜ“1¿MÜèBɤÂÂÆö/Ûæ ‚@Ð#$x…'ärh/cˆ9êE,¤têŠZ†”h9·ˆdˆÛÕů~¨OrJ™¿üºùŸ]øæ‚ýG¨Áv§.p¨ËEþ>Øóò§Ì`Ð!¹!Û›g‘g#êÏ-XÆcI! nœ’S«,ö'±š ÿ+EaˆiYòþa±Þ¬Íj²Ü$ÓLiú2úÛÛšÕ¦ „Šdèf¹Þ,VjÎi¹Z˜åúäòJ-÷ã”¶àk¯HF'e¿§­ÑåXÇá|õþ¿ÁE+÷(ؾqòg¤ÆÚŸK—"«_{Òâ—¯U{æ `n&iÚ>¤£ÏCëžÅº'v5yt«u²Þ,oÌbv­”U<ë%~0àîç¶Ô8©<ÐÙ¨yÖj£9îÖf‰"ãS÷y¦V#3‹é—Ùr»ŽÌ,Í46»t¥>ÕÑ{Æø6g¡HNn3Gõ&´óTs;„«j&Ç žëm*²px­€„ûÛ•ôȧֻUîýÜÒvÏä´s~»´~ Ù|µZ[ëCW˶=¯iu)ÏÐñXdòC«ª¿Ä¨"Ú”ïœìŽ5R@€A'A 'xH@õ£Ç–E"²˜4íEfbdC4æÖbÁŽqh5r,%°ì#œi›¹æÎÓó3xÁ_ئ]}Â1¬´Ž½ÑžîËYÛSkô~!ÒÒóX׳hvÔÞðª:ËcÖÀƒe1³¬ª†?ÖtèûõÝÚ­ÃÏÇ{UÓ£_yy'4>šl¾¼Éêç¯<Ò¿ùýþ šn54éu‘Š&Ìå# ’ÊtîAò4”>“rÌ=ÝAQݱ ã‘]h…-t2E"¥Üp‘: סR–ïÂìBƒ Âº]®œq4?ž·pÕ™™SQ‡cMWHJw¬È)X/§z¾pÔ°ÝW;¶ѱ"ýl¯Æ’Ô샷ä¼Ébåf‹KÓ­ÿNþ4‹N°­³T—£†îñ%dËçB”³¢¤öM†qZ­Ê2+Y¶ªK!\`Ô¦9²X~i å4º6äqÝjÌ>Úɪ9–¿dÒ=“ÖùÔvÞÜælñؼl±¬•8C+7÷°98k ¬Uk-/ ·Îjãê’üË™‚¨ie>º¹]ß§—êÈ~O·k Ñô{½oG^àÝþðCÃØÚü¡I–›"!c Òk%ì¡ !>ACbD½$‰á0>±{ÿ§J‹–‘L9B4sb\ ÉêPbÊB*r…aœ#L{B!•‰D¢©•yðy['S›M,òQ=L3¸\ñÙÍšß^Wÿ§©÷]Ž”hìdÑ’*F*b ¬OÝþôë?ïnúéÝh]µT+¯ÙNº©Og ýþî_ïþ矿6;Z˜¨û<Ḛ́=êq¾}ñ~ôçÿñnìúäåÃb³ˆù¼ò‰»åb)hwl%þkSÐ÷à݃ÖEåÏ»JX;+GÁä°‹§YJʲ˜˜!A “ÙˆgÁ±^bZ⃦šŽ…0kᄆX‡¿ ‡¶DóçöóO fˆpÀþá7¹û$QSXsµñ*UМ'³»\’ÊJZf¾¡P&úò]›}\},ßݾ¿ƒõþ]W+ñ=\!¢$Eš·!MwÀéÉ¢6jùnöÏÏKmŸòÈjˆ˜ö²1Çç>tZÞ9²:Ø“ÿs\È`Mˆ®¿B®©4Ä÷m‚ t,ϘbÙ¾g1ÈBl¦G>S¢é YmøÆCÅxÕ΂¥œWm^ÆQíïïÏzðMKs¸þÌîÕ¨ É]¶á=LÜg’*ôŸu?è3Û”LEGÃ뜻4Êõ­Gÿ|N¹NU.³ƒ4èº×2ŽBDCv]’óGœ5týÀQªìsò¥:†0h;ð|.B|ë’ó«·Xl²9+o6qð¹Æò±¤ö¹–ƒÑz؈ë6äy¾v¸¼ 9{DŒŸV8.©¶ÝÊxÕRªLÊm2ŽVÓÙäG‰pAuž~oš¨ß73UMwk}»·rH'V3þ¶xýãûÖÂ;bQ ³`×ék ‰Fšgº¡š,²Åâô°í vÏÅ»,ÄYÌÜRÓ G„Âxq-dó¶».p™í"@|†‘ø®gðiŽ9 ó˜l ¡l&Œ£u20=£B•LšîùvâB ‚Wûª~:L[ãA(çˆáñŽãB;Ð8B6Ë̆# <Ë ÐÇ»”+º°Ã™Ä†Ì&$´ß'0ÂØ"w„î%¹ÔAޱÀ²Z®8ªÏZW¦iÑÃᤙ[£.rN\‡Ü~£ý¥˜­ýU[BAWἪK?è“s:(Rn¥ÎßVýRê¢ —œ§4|ÄgãAÏ .dŽ'©ÐâTsܤoûnÚ¡úÄùFt¢úØr1 ~øCO<Ù¡¯Ú.Eêõ‰öœìì2‡Eœä¢´Nv«Ù(rÏQŽ­íš´ìdØXñ\áÂKŽqÜR ˆ¦,„#zÀ&"7rlâ;„”…ƒ( p|‚‹Ê½»ÅI²+”rÍr™O,¶‹Pˆ5ç1λt=ú«wíYì$–û¾ký9Í®ÚÙöJÌ7QAœé9î2¦Œ¦¸sÉÔ‡ùTU¯³‡÷hÒ¸ªâ».fÈÃ_„ 7Jâe×ú1'º¶ˆ„‡ÐBè‚,‹-Ãe2\s¹²E&»Ÿ¸â>¡üẼ(Äaä2Ë÷!À6è"áOmeýWñxyòXv„J¬t‚¦ì–ðgåið¼kØ[Q#å¬Ù8±‚ÓDdլ˾ÕVtâ¢îô8Êí¹j¢6q„2‚¶(¶†r÷/:YrJäL¬ÍN¯§n•$´ Óå c¸ wûÓpÜ Þ†6~ù»Z$…oLjgKz{r.z‰¥VC‚+=€¦á¤þš”d`CH:5Ib‹ž˜¶)þwÎÝ€íñé¨A)Õc‹&£UÜÈqÐÀÍ”Úb¨j6xY½Ï³œ2½ÃnÔ¦=‹7[ô9‘IÜÊòìA…èB¼Y"픪øµþõ‡×o?ü°ê²ð-Á¶‡K>tp¹ÆÕíÍA] ‘Ûð¦Æ·,Ù‘T\p-óiÇ¿#ôP1DW5®wÚ›Ú·ëm;ׯw”Ë'ö:–‘â-KðƒÕ'â˜ñïÞ|œ@|ä,Wá)$·;ŽÝ{çNcßÿëÃâúú!#ͪÐõd¢¨÷õ›ëwfô'¿åfÜ/o~4#~Å1…fÔ5Ëèër¢-×"«ö××ïÞšÑÿûúzgób7ñÔßãŒÕ3˜l™GÉñÚÖ¹89%ÚeÄ<+×1@ˆ<ö°Yq? «-KåaݶEÇÌ 4ɹ¼©Eq8 Õ­°÷CU»Dpi÷™k™é`µ‘V,åL[Šª1°âM²_EdÅ?^ŸíúMÛaàºe{ÊRãÁ0íå˜!±!ËáZŽçÙ—ø¿Cãø¨åmQÄv¨Y,°d3 õq‘íFlŸ0ÏÍa{N W @Ðëê,_±Röîã‡wc›«ÃyßO£¡Öƒ(ÿY5ÙɦÁžøyvvR¦àìŠÌP%âO»ûÑ‘³/Ñ~î…–`iéé®|Û¿cÌw’Åù›\{­rá_'IÚY9Mp˜M'HÚ™5M¥LŠ¿^Ⴄ²À¸fÝrh•ƒïCüP3²Õý‡’à¡EMKL, Âîe2n¯oXÆÕœîÚ¬A9#nS0.Ò8Áz…Üiqgdù/Ä´%Ê^Ïàq#¬¼ÚÃrÚôëÀ¨ù$`_òÆc%jxÛâšÜÀ-â‹d|ô+8E3‘2A² 4sÏXKçk®í<÷Ÿ¥Øn4þøËlÎáH*bnš£]ÆÓ„ãåÄïñÖ/¦ÿ‘ÛEdšß£È«zÃ{âI3ÑI ËH¡¨ŒWÒXJ¥q¥,&õ4þ¼½ÁDd|Ú±òá8!ÿþƒU0EÃîÅŠ©îæmë4™CwŠ,Ng½µ]Θô*Þâ‹IR­“‰”Z¡Á‘å`ÖÏC7 §·÷,•á1¸¶cy–·Y Ž{Ižl‘ÄâÀhåM„¾Ú˜’›.‘Í|ˆn«¸Ž0…Çøq˜Û….öMH…ÌI–¾½š0#u®ä»—Û"þwãÍñ6ÈXÑF†,Å`Ϳ𩶻¨ñ^èðîA›´ˆægž}ñ-¡CÁ¬ìîô¾ÐKqvÎ>q*™•eaFEº3¨øŒûAYs4|æc™+œòôÌi™giÍ3fÿKܣݥè 1zC`Û‡œyqSgJ=ãŽpGwxCE8ùèɉ,ÅÐsþŒFBDÌ ¹ävÛ¢ÏZ…õy7;.³Ú>^Š> jS DS?Þ Ú7‰·Ü™T¯_Víþ‡Tà=>>xÕp' Ô}Ò«Ä=<­)§z-]EЮDÀüŠ¿->üòïÞ¿½øøÏ¿¿÷fÁÿþðóõ‹¿|øø~ý³"MÆŒ;Ì'5za¢~»ü°ˆJ"`ヺŽÎŸBä´y!á«*}}BYg8yø¬¬pmš—ÅVc~­`éV»JwQˆwY8¯jÈ‹ ²“މd{Zxù—l¡ìÅ"Ú:+{âÔ&n_ “»¾( mÔóÈr(³(p¸X@Œz¡Óm¡¨Å@-[×ù麗Ëèô†³2_¿ÒÁ/dÅdrÏÂT¯rK‡ ±^ì(mfPsç´,ðJ2AsæLŸfÍêê¡ê×™›ñýÞÞÄͶ{j^zóR5‚ÛX•bbçuÀ™Ÿ [õI$ñ²ûCÇFÐZÀ@à¿Ä]~Hp„ïeߊö@S¶ga™ÐÀÖ‚(ð °£(r]¸oâ¹sPwÀ[-*FoªÞMWUZ7m…F,\¾ö…í×WÕ¶-[,oo~]–8ÈŠ× i>cOëùK¿(t4ûM¬èŽ%‘žŠ9Ã÷Í1ºÃ:ŽhÃ…m6ùöIWIÅ|‹ð'8`ìÇ,g©>³:I39;q× .•}ál>[Ù3Õ@«°¢± —ñ½ žˆ‚D}ØQí@{\wN„ÉÞáÇ•d<Ö%#wây*/Õx3Z!” òVÅCª‡‚ @÷+Ûó7Üa.¸— š,ùðG|ÿ6®Š¦õc4–$0*tí%ËÿÄÞßš(Úä/‘Z'êŒï§±Äaj7ÆòÿKrG'Pb«Ü„JoISOdŒÊrÞ“ÆW5˜¥-6SŽ`Ñ4vª ’ 9æjµ1ö( =õùE%o¤…ùÎêØcd,Žäc?'FULÅ©ï‘8þQ&ÜžQQKº5zßäW>m¬ÃR^ Ì^>3[£w°A46/‡!†túƒw:밗Άº³íþy¢PÚ%®±f·|)ƒ b[žëchV„D‘1Ïö"@¨¸ÝRü3„ô}ë¶ãŸà#ÎKxA{äC9à.ÝÐ:Äró%©ÕÀ%i¼Ü )7Ç4@™j—BQö€Q0–ô1VRÃ2×Ëû¾šxk:稔CÜ£÷À`»ÎI˜±4göŠ:Å«`]±BiʰFˆxû{n#Ab®7\Ï0°m Xˆª"NœÕû §üŽ®2§´*&ü‹§‚îeç#nÇ{Ãñ/¿7q¤CÚtg&X:²IÌGÄ¿¹éºÀ±±é­ÙñþkA°! §ªó£ ²ø|Áûågý×”ß\@\„Ä«^Lˆ- ÍåK -àð«( A¼]Ò|?u¥Ú æ¾qÓR=T‡ªU®c’©Wü>å² Ü%µâä ‚4ÏF%æ^€dŽOâM“”-îá¶qÆ©¶ .ëî¸Â6:¸.xÇE™G*Q’çÅàE%‘ÍQ7Í…½iÜ2wýöç£;æ®ì(ØÜ ú*'Ý=KÍ®5Åó:–ç¸ 8^rz·xQ3 ›“®6†žø°È mè„ FÔgBÄ"äØõè“3{!^äyy6ßLŸß)ìÒLŽ+u¢˜Ý-ÍÏZ7';ÆTIú”p)«¦`«®¢ô¼Š3#†² ðÔ àd7žº!K&À“7äà© óŠÉ7ì²ÛìàÏp|ÀþŸ½'ÛqGò=¿ÂÓhÈÅK$Õ@=L¨m`º§gk¶wÞ<š´%Á’ó¨¯_R’m”2Ó•‡³f ¨*+‚’(2"AƱlÍØee6£§z¼?O-;ð­Ïå=˜¤¬?IGpo*ŽàÞÈÁ½ñë€ó ¸×ë²ð&ïhù‘éz°B5_Ö…l{a«5ÄtOt{n«¾øx0®îób‹BÛ‘×À°{À“„ƒä”ýWeÔÖ_ÂͽeI°¤¡Ò–š„­%°†ÇT$n1§ÊZBI bAlÒÝ|­Dg—\~I ôà^T×KdÎ äP}d¥T¤¾ÿþM¶k‡+Îg½z­Ö'ÇŸ¾ƒ4QOZ½Ÿž_™ŽŸ¦.ì%ÅÇFVD^Vôw`Û™ÝÃm#oªØtkn|Úd7Z®mYß F›³Íýó£R]í $'zÜZx€7ûâ^PŒ¡*\›®|ÛÃÚá{Ø]9Úwm‹ÃW€ÇþM…Ô!„~Ü¥k}Œv}|ÖÕ<:úÃýCwœÔÀ2Ã!K’GîÎê„Þáí¿Êõ.}ÊF·°…<þ!Á’JD)汄$aÒ"(4¸··%P0n_¬ªô?*üyWø,VãîT?åu²òüÓ. oÌÿ1ê%‹7Y®µQíØôÁ¢›¯Ì³øUI ^Ô³â™×•só^­c££†[{âÏoÒ|H¬p¨É$‰K®öÆèØÏ€ÃÄéØ ÌÈIL‹;ï:±ä>‹m@lI¨„-aCŽI¬âXK…”fŠXiŠ˜aó‚»&3•uÎG;}æôÐoÃ"ºvήÉÁ'(îÄ j-ЦÀcÈ23·h¾Zõ8JwÝ‚ÒÌ:⩼ÃFѱk×iY]ŠNóËj+Ôu'¯T‘VêªXwS8y±¸Ù­»îGJd—¥*ÓÖ y2·Áoî6Ÿè)~úùç­Òo̱òm®ÓM‡IìëlYJ»ìë¾7:Œa€gãÀÙ¶ ô„˜!÷‚ÛMïè“$$KGhʹˆrÆ1—±HÄ+¿ã íÝ'‘ûÀãúɑ͋;½ŠœÀÛ]´ùÈ"-*q¶Qï+½úmšéüv#2áK¦4³ùq0ŸmIïüüpmîËîu=Mkw»5[“ H6à:g™ØvA®#{ÿ@ôOÿók/œnN5Óãp3"œtÙÄÑÚø«®xq‚€{"ˆ1>qsoÒÆ Çùã›X°Dj”†@bÝxÄ´`ÚÆNE—€bbÇŦË7/ °=å~õwuØÇ;Ð…]ål5Ö¦}uǭ؈ñÛþµ™ÞîØúìRÛ€kÚ×.Ò_ˆŸ7ßzjÇ&Îãýž‹l ÞÀúÝÖy9.J}F‹ÌŽÖqeÖEÐU[±Ú»ŒJS; Àr5\õRUÖ :Ádן¹y Ï¶Ýsi~MÙÚÔ£d¬Óë9¥ H9‚ñ©:I´Êòy¤f[k&@¬(Æqc1Ó k«”¥‚hcØÓLÚ/z-Iû÷ÿþ1õERGì{æ²Öé>—ëU±¾ äÿÕµ·'ÇßT«ÞÞ½vŒ’y–Ë<4-Æ'¿^“ËʦÉ. ÝþŠ‹‚é6‡)Û.Ï\°Ã=©ùøþÀ¬ôuta¸€˜C^éÜÙ |šO ÖS5ÉV›ÜïÐN =熦¨Aì­€º7p¶×('ïÏ~º±áÛš¬ím¶Å¦3ÃZ¡E¶ÊÃ,Q£j™ÁÛ M`ó"TÛmj¯/\ÍÕ±ò®ˆê˜ÉTÕÖ¤+yEuâ+Íšô ²Pæ»LõoZ5@SÒ§ßÿþÛ//¹Š7 ø(; ag&Å€ðÓŽ2Z}eÜÏ8”$‘³XsF™L,Ž )×:r`ci€L(ŽÝŸ·°^yyÆý§ØG¯ëùÎ¥ÑÑŒ©Y- –â—3YÆöÉ^¡þjeRrŒjáN<æñÖ±€‹ŽÀ‚1Nq»ér³çëí@/I¨ WFR›H1d’m¹¶’"Æ%„ òÛ>"‰¡~óו Ïå-s¾àœO\KG’‘§ÇþnMK¨RR ) d\æÑéÒ$Øñž¨oˆºc¸•?^PÎ9:eÏÀúÀ;½KÄ|ÉA€­I 1N׈#€­Tª,CV"¬}4ñ’‡gå²ý 2¶³þ±ž÷ÈÏ{{&Ñ zûÿ—M™¹0®ñ†mœ•öÏè\5!,Óç­#‹Ïu>ȸgž5Š:eÚÚæÑáóÆŒC þ@ržœÂ7Îw½l;¢ åM±$ñl¡0#ʬ¥œ1îôsB•ÀpÀˆbìÅ\΄]ž^Iäiï/[^äñ´§È5MF5Mv=òQì÷s*œµ[V©šw¬ÒÿЊ¦”uV2ß::ö,°÷PHŽ;à ñG¿®7?z7x¿äK-Qh·Û ‰Bb U̸ ÆÜ`›¸ƱP'oTRàWs7ɯgá×ñµþq–;뤿ÿ%Öv<ŒA:ròÏÃÌ ²Eu5ïêcÃRQÍRH0þÓBdzñÓ÷ß é´‚#Ä«ƒ¥œòVÚ¢NOùÐ(ÆÉ‚Pà,Æ“åG„‘ûúNÏB«:D3ÍU¢-SH€X8"q"¢„ « AÎX}¡øÅÎüeA@*€¨ðÜÔ¢á(¢Œ}’ñÇM}r댘cýyž?«w—‡³ÜgÞ>Ï^ôi·Ë°ä¥v¸Ø;û“ƒxİu:lJcˆœù꞉:}Ù´ÿ´Â,£”#05DSâlmaä–Zâ4‚X`gÁÙ²í@©¬yÙyx×½™ö‡ü9—‡Qµ¯]/ê.ίîFÆ’$>…üŽ5ÎÔ^Ò‰2‰¡Rs NâalVˆpI JбA"‰Ã5ãUÝ'×9ÍîS`÷¿nVǸ'$“ %ˆ Ÿ `ò z“œç1}CÑ13§;y[>ó1~nkµyÜIжvÈÏ9©ÞO$ùÜ¥ù¿S2º[7^’`ˆ7ž3¥óu8N½´p»¥mDZ4Gy%s­»±äÊõ¤W ÚrŸN» Êþ½ë·É|ú“#@§eß?ÕN>×é¥M‘woÙä«m¯Ï–Ò+Ù\VÇ(Ä: KUôSžì¿»›÷¤·ùði+Š«TõËý5»_ì³ÞT‘ ‰;:Áãã ~禨3Ú-„ã’rš<§§YY!ç×È™¢À!L ¤1à)! …VB·2@«}0brú"öž_[¥•$Ç+/@Ú«½HBíõ]¾]Õþ;‡ÆE¶¿³ ¶÷\¼Y£Î³Eé‹p»_·;T’Þ¤¸È·&@ÆÄ5!=Ú6Ý:G°'’ ”_ÆG¨.ðé ÞËpq£ÙÍò2…î L1=¥pXê§Å—1óÉŒqœ„©¡tú4š%:NÆš"”ø,¥´rîÞ¯Ù+åEŸRß‚jXP¹:cÉ»i‹zÍ4‹ ¨=3ÃOj=3ƒÈ窑>‰Ðÿñû'ˆ.ÁÃJ×·t?M33¹58’µ¾@4s@´À¸9˜@Ô®e!D†·óÀÜ ÕÈ™­¤‰IÓž¯n. ±6Ue¢r#Ö륻aª4»!º0'T¿Êi! ‡éÝ!Éñ¨gÓ°Xç‹N (&îA$±å³wm"> Ň6|˜† ŠcªŒIˆPjC$ca£cD°ŒbÑ[öÔŸ0&쯵ÏXˆ?bÚ.~²˜}MÓó¬Oˆ‚TÖrÏdž¼þÔõ®‘—r·)6¢ÁU¾Î·e!”  ²›pµr,òõýX^å·#à±6Tx“šÛ½‰ùy·ú¡ý È‰"jàœšú¯ÚÉjb¿{,\Û<éÖ²m_~Ë@}JÄ)Æ 1„ì_“æûmî¡‘@RPb]Ô>¯MÌ”–Ü%…‚ZuèêQÂ…WŽTØZˆ_¼X‡ge˽É.Ogªæ8ìñ6Õ ë~k|šdÂØ1FO¨ÉÞgÇy‚‰•Y¦”¦ÔÆc4 IK ¤*ÆÑ—;MX‡ÏyWy®àÔSB¥ÏÅ9†mˆõÒÔäFcÛ•€êj¿}›ˆÄËÌÈQÙèu›a›M1€83bøþ•¸ðÝêYCë¨!éãõÐHÛF²o® M$××ÞµëEÿzh íŸ/Ž6TM¢£'@ßDR¶=™••Є-  8Å;ó›ð /: ðémBb’É4aÄ—žND,¢˜Z‚(ÁD0‚$И xzÝÔ1=ÿ ˆg‡O4¯1.O“>Íäl§ßç+êj 5všðE¶Ú‰U`Ûµ6æñÈ”SÚð =!´“­nuºJÌ9I»›O‰òUà‰ï‰{<Q>pö:$ز L¨ÅN™…Ôi€$’BŠ9†–YÕR~¤¬´~QJ_ƒ ÎYS˜ô¤®×Íh t'ñÖküùÌÑÙÇšÒ¢šÒöÁ YY‰õ::~n“£ ®®M×`íÞ4éRýÇN®ÓòÊ»TÿÓ4•¥çü©«¦M—†ÌÉ@Ò‰Ús£ã÷8“"ŒéqL=…3Óê&Í•R.À2^Äñ…bƒx,ÜÒÄ$¢Ha‚c“H&%ŠBC«'Œñ—SàŸÓÞÎÚ™ïïGõì\´Ôy@IÖÑÙ¦.ðL2ö“k›¯Í¼¿†ákƒN¦ùã-Ñ¡“€RâDø"¦ñidz]*Q×'B˜- Y™ ã€"¨„˜ ˆ8Ë– 4‰Pk™„ˆì·EVWyY5u"§]Fe¥/Šûê*Ï¢Uu½ÿ™í6f›ª‹¢¬r_Tõbõ%íl™­|Žî¦{ÑÚ­Õõ\ú¶gÍ:m6õ5~6…‚ÏTÚiˆ£‰üó£|ŸÍQlãuò {º¿Xxç;˜`2çÎd^êzãóÜѳ]©'RãÔàºë Ðõ™:¢AϳçM©3Q2ÂÒéðžæ÷¿HÂíÉÀ|è´x*—OšOÞ³žLóãþNÞõ`  ×Mdzª&å™| _.»ÇÖÜèüI»[E^k³VÍÎÄ`—«ÅOI3ô,‰ë‰tEéJ…'z²0ð;¨œáÝ>œ7Pvú¶XùÐÂñPxDãžÆ{¶±”¼+×a}¿î©¯øOR>Ë\§…ûëk;¯ÿò¹øüç§ïš@tPwZM'ªõ±®áÔ {îi^í!zxAã0êT2õÃ^ãZ»)ó#«æIÿtbÒ鯿hŸ¹}˜U:[ß÷J\¸ëƒŽ;V&».äŒÒu²LïÕ»ã׎õ[ŽxBãxACBNÚ"l_cî*“ÕÕ´#Šy×|%@lb£¹NbY#‹1×Rp ctØ2ìMÝ…{þÿæµcÒ²»ò5¹ö°ǹøàÆj™fwSóÔã†ÃÁuá¨Z¨k±2NþËá]î†ïü¶CÿKvuìÅET_žÝ÷?t– ˜3µ|¡„SrG^ç~nàáúŒKÜ;cgî%’óDjê³Ió8¶ÒêÄjh§8 +rŠ{ÿïýÎy/Ä=së›c3wËâ>È#Í\>‰K:“ó.¹¥þäy~I_RžX‘5ðNg÷Í3 Æ e ÈpS .C3'a£˜R,ž`÷EYùNOßìºáÆê2ÍŠ]5¹zø){_ìçà]2…ë÷ ®„>òŸcP¢¬ÕLaA'øÁ¿àÙyá›^%üˆ]Þ);Éõœ=‰!üï’|Çg¹!‰cîã\N:vínKÏò€³$˜Ké”(k¢œMÁ˜ÀJ!ŒLb€`‚N´Aß$ þ ;à¡zÎ"±^ï‡8tÆ0Ïr—éuû ÜÇ\þ°ÆžSú±¹ëôKøúx îÖá;䀒„2€NZ²…ßðD ÈÀ…R+{ÕC'ð%ÕŠ áÝn¼Ç '±ÅJ!Äá¡Nd},ò”Š­û¨¸ú˜î¬#èMâ)ûG@Çøßw‘™qZ2qˆÒžD„»Hkö¼ñzYÇjWcd0íý&´©Ý]oþøëo—°2âG9ˆ.:}£ùIròE‰üDà:±qY\¯.²¬*.µ¨kTÖ» á!ßVNϾóíj—®ú µ€éW2ÎÚš™¹-?,‹U1¸üPìä6ÍV#Ô¶® Ò U•÷™Z*» @ÓU÷Erg­wéº3ûl”»¬¶ùz©ªuºõ±þrYŠMÑ{«ºWþaç贬¶©\:ê/Çà]Sãì7wEº5ƒw¦™cÿéƒg»1 €¬Ëa.ˆ[Q©«Á7¹6[Qëw]`¥}IÅ.Ìÿƒ6"uÃd`ß^Ól[èe]A±­ŠÒ)ƒä7ZûšßøâÓævi7U\ˆ²¼usê@·B§»røÏ÷N¡‚KQ®G0שh·SEÿËJ7(NcµÞÉÆ7â8ŸåºXnÍj©—õ´¹_Ý ÿzP$—Ž [:õ 0Tµ1Û}š‰!Ê÷4F‡P[uåИ]u5n‡{[ÿ¾,7òfêúQOkærª‘“dùúfûAçŽH³Õ™?m¤ç_à|Œq¯®DèÁ*³å•#·†P‚hŸÿ7„jÏ4æƒëº®KØ—‡J¥Á†é•[æ›8@ý¤ùVÛÍ#y–Ù<ð:ߦ¼ Û¾Ñn—‰‡vÓ'³êÉ›FOÍ^žÝèC¶™Êl«²ÈÃsT¹%: ‘´º©¦:£óΔðͲ0‰ð’q¹ÝPV¸õ'ˆpkéĘ8T|Oƒøðëï¿ûÍìI|óß²R¡aëµñƒÏj¨Ýƒï¼lÖž¹Ö-.…RN/zLC'6Ýl¦m¥ùAiÍŒÊÊT¾JqS¬q²õqN'¸JýЦQø5<„šX¡\k:ž@9Ix#BÝŸ`ÉN¯Ç$Œ›ìtæ•0¦ÑŽÂ¸ 1í0»båÖ¦_îõª0ênJxÜ& ½Íw½ÈƒS¼×FË/˜é vJ^S/ôþÇR»—†î×Ì=<œ:ïö;‡¡~Cµ³›EÝÍ‹PÍŽA Fø‰!âþÔ³´Ò”bK@}^WÀ’³Pêþ˜PÈ“s«1M¤€‰’ ²”²„+\÷µäåJi|þùoáÌPg²ñùŠüßÍ©ã¿ó{_Æâú¢Km;ô5ôÖ9T½é'ù?ö®í»mé¿ç¯ÐãîÜ/ÍÉC긻Þm’~¶{Î~û¢âb+–(•¤§ý$%ñIŽ'ö©Û¦1$? f0ƒ¯ñºà@Zí²ù'·ÈÛPœ+lç©^Ø’P½*K¥[›è=Ÿžµ/«gÚ~›æ·g†}ÑÏÁ|ú¯5uÿ¼ß7Íúñö¨À¸Å6&ƒ‹Ød$çÖ€€Çâ©öŒ«3©c0‚b‹¼!”BZ¨ÀqE´uîXj’c'4·ésª§2C•R“Tö§ÍiÌÊt°†ÃëIÄz ½"uÒM5OE¶…8à&Èxƒ3m¢sì²z i5,H–2HFŒòcrÙlO—NËÜ¿êpb;æÞèƒÐú —ò”1¬©!n,Ó %PCA…š‰‡™¡®É¥Ó•Ÿy8‘Þ¨æ7ÍMõ=1üÛzÉzv áuvç*fq1‚áhmÕû]Lx±‡ð6«l·1iZ‘š(#Q~@ å1ŒréÙà?<—DÈÆÄ% „†DaHX@%¸´ÜbuÊ@ËœÔh}hÞ¿´˜Ù°îÉEL{/‘¡ª"T……ZÿþQGBÃþvvrZqâ•§qõë¿Óå¯ÓôMTgÈêßùÿ[¡I¶¤÷omq3~ûóªhN-lI5XOÔÅãÿÌgR8ŒVuLM¨EÚtZ„Vî|l^øÞŸ­¿©®ê°óo|†¤úÔ-–7ÍçAªù{å¾ÒêàÖ=«éš ‡Ô6©5G^׳$pë;„¹[ñØ ìKR°–:µý†Mk"Þ\^~a#„“ÇœYæ‹Ui‘Ç ú—#¢¾^YR” … L±ƒ\S@JShœ †Ì£æÔ¨ÆÀÔ²ù?YÊÓLš1íû\áòû¦Y«-}½F>^rG_‹Ñ/6È~Ý`; ØnB4Vðõ=Ý«—v¶&UË!/'¦pS;3C‚ÿY.Ša¹ïîÙÖç®HV¸á扤…ŽwE^ˆ÷ò=“”£cö«–…ÕI¹XÌBô ^±}SQb¥Ö"– §-aÌ3[DS©W[‘Åjã-»õ•:äWµÓ_ê/¢ÞŠm1ŸØ<ÄK8ÖÉïkc)\…ZN'7yJï@lLÐäÝÙeû¼ë2xc¿Tƒ?ü õ«ñ½ý Ã:âU§*ðC7FTté•ïèÍÐêa£·¥÷ÞW|D3ç«–µ\é…ç´m~òºæ(!dzÇM°¹µ*þ~¹ôjLy[vÊê¿Z[MyaK¥ñÖ?§âÛË™šfy¡¿â´™}SW¯ rZkY1·Õ•Üi)¸°z•û²=Ñ£ w`¶ ¸½lI6=Ùœ!H‚j”÷ó#–‚zi¯#IŽehYl·Òçÿ£ˆšÔQnˆ¤”¥L;›¦ÌÖiÀa ÕSŒu/6þ ää'#´ú;§KVNþùk_[¨Šýðhùùé¿NO.£$u-6E-·«)#QŠËÕ0¿E \§ñ*®^æUñTÏ—,NY~bוÓi”þò2ÇròûޝWÆäM$¨!-2ˆu:‹¨ÄÊw y£dÅ ÚfQ8øU'V\–ø–“U¦gV Z{`õæââì—ÿ‘>¼ÿîÍù¿w.NOvPß^œ Ðpà½ûý/‘©Ê=!P>\ž¿9‰½ëüÍåééÅ ·;»Z{yòÛ»‹‹8áÃo——‘9¨¢Ïø†Åšì÷yd$+J–¥_J;HªÓÐfÓùt×ss•ßì UNøšÑzÎP\D‹m+½VÅõ®f]ÛÙrÈ o›ÌUv5˜]ž2³ÙU9˜`°£Ž¹ÒÑÒhgÌW³rZ‹ÒŸ³h[—×_ c?Å(7eŒGxÊ«E©"å¹WóípÙº [(e¬w‹ReFå&N*cu‡òi0‹GiÕ‘š!¡ŒŽ¸/1,–Óy¬êr»y…Q¬Ôtk܈”¯7BeiÖò hnHB’ÖÖ_%›m¦aYÒòëQ*(D)^*kïë­Ø¸í6EŠ"Uï¬yOÅízÐ*ví0ÅÄ÷¾Í—À¶}oÝ’öàD BˆŽ@Ãc’Z-=¯r•à ¼zBÇ8¶ÃdK ¥Ò áÒRF™Æ` …áÎ)N³©{ «ïãQ+šÈÖŸ‡ÛK•ÙY¿üɨ ê§}%ºÓÂÓÛšø§pxÄÜi†¼ª«lä¡92@b†p&Û&®ð@ÒnrÌEHð±Àë¾GåIXÖ~LE„@Ž ã˜‘KSIÂZ0‘CÌ(Áá*ÕNA‡B¦ÚÈõxæÊÓ¶e7Ó2}±þ×$Ö– «úÇ2X6¿Ø‹É¥*¯ .Áã8ì®3ÎfŬZÜ¢qn¦…n.ƒiƒwsÿšu¼õêVîÌqÝš„í,×í¯W;gcøý é)´5!kϽn_Å‚Laä—,„9f+,7!›C1‚’…¿bÓÑÀ ×N¤VC¨ „XiLÒL+I­sT1ú L"ÓÈŽÀÃßmý1ì¤Wà{ÝÀ/©á×=fïo¨ V^‡Ùþz™¯|;×g•Û%/)JÂSãêº%~ç7©i_.ƒ3 m-Âf‘]Íì¤íä[ó’Ÿg² DÐvfˆú¶q†f{ÂÏ?Âܑߨßõ,ïîHž…™Ö)¹´·åïg¢Þe°`ä:ø§Ývm'U¢êµ¬l•üô“¯:V\×£lKk~ÐøÐ¢¤â ï¬Ú¿u'¨tÞE¹ÞÚ«¨¿¥s̱*IŠL-‹ëEy§Žgç'Xé€cõÙ¨¤´•‘¨jBû{bb¤œŽ”J| p“N%¸vWNÉ#ˆÇ^ ‹%&2Já%¦ÌY‡D*¤¦2åáp¤Ã` qÃM·Ëî&¨A³Òú5¹P™MR¥oBØ‘¿®¨s„¿½­“æÂ“]zœ.""¤±¦ôxáÔZ ‘¨2’tݳv¤á•uû†‹{@gážá²´*Òuæ r$Þ ÙG%-nçíëÍÌMê™Û„µ }dÚ¿_ÚåÍ⳪9a‡×…—uXÜFY»ð”l—ºöjÏÁƒÝ|exü@´²xnžKz_9¡„ƒOÕ(dqªmÑÜ\+‘þ§2óÖ•n«˜þº·Ã=¨UƼ%ûo׉–äïNZßËê+ ##ìÕ:"áK;›BÒ·ài9¦ÑœŒ˜#df +JœG^*Œg†Ia¤/C”@–â.'AjXyÑ„‘ UMlv’­NÌT‡œ*ÿ²¦´Jþ2"оÃLq}ï˜ ¿ŠÇ0›«Ñn½²žì%{k³Ÿ·~ž†yÛä@¬oni0«éÌ\«v¨ã0U9ßú–b£sÿw;‰ÕÇÅ:Þb=¯»¯¯2}½ YVõÕÛßeþ¥WÃ*óôæÜ ¹½¼¨ªØòÿÃf…­Ò€ûëd6½Ùò†Ádx;ŠZÜ!ÜŸ´:0—„׸°”Gó‡DUÙSUv€Q`ª¬±J8ÓP-‰Í¡5qg•Ó‚ù@ŽÔ`3â®òëÝ9á´éú³ÚÝþ­¾ã'b÷Ʀ;•ÚÏÍKv=¿T×mÝYÁ¥ÿw„¥À€“3¡®,ÍÕŸÓÙÔ÷Œ¯Æ¯^’޹é àl€ ¡Q܃Vpev‚4%ÎãÊ aÍJÔç›'‡àN»ð\–“ŸÏ7ÝDðš£I=ÛO÷LþãêjµÇulÏø&ShOÑíáN=¤}LnZ—lÛq )=X @œã2¶®lZú9€¦<¿†…ÌgšJGSÍAJ)ÄÒ(IfˆA¨žùèÝùhÓó>:ùÇÏ- Ö£³‡“®_ó£9iÓŽCŒTP@#Zý§Õ×û™(œ)S‰ò(D ÒÐR†1 šÛÅYûŒØ>.«Îí¡R¯Š› *ëîï°Î$ë7| {ZéQŒ³ªw/ÓD^ÖCúwI 8&ýK]•QY˜—{!˜"Ï&10Š+†µäˆqK,1ƯäȤ0lÖµIó Á ëÞíaШ ›ÞßÀæw‡à7\¾ëº÷ÂHÈU®â˜¤¦MM«òôìN¤TÈ”ª¸JaÄŒÐ^jÐX¢ÓÊWàg 0:·Ál¶…`Õ÷{X=~w¾_Œfë5ù*·6œt¹ÅʯÏÓlÔ$àº,Cƒö¢R‰üŠO ãþ5G£ÒM³Ã¼iG„vœJ#†©NJ)²H[£¼\É¢êŠÇø„qÙ¤›n¹îö$¿3lZ²k"Ù á9ÔQIj›ºr›âV¹„VpËu€*ʨ_~a §@Ž¡HŸ~ÂX›Ö½ÛÇ\þ*Í'¿lµéf b¼°1h¶nK®V¥ÍR›_5&Ά_6Uý»iÙ^m›Ñꀤ@â£Ì›UMW6ŸÚþ¡Ì¯ËT1fÖ b¿PSâ+vr‡= zéYç3\ûp­{·/6ÚWÆNÞžnàÚŒÁyÍ÷×_êŠ÷âÐËmHá%H(?~ÿüz•]©¼ÞŠÄ¾1Ž)0@à DÌKšH‰@(•Ôæõ!¼’BLž‘¸w‘¾^m°·íö?œ„Ž¿÷"½{Hû6T‚>è6%ëÅB qÆðaŽ ¹Ç¾Í´T‡·¿UŠ J‡}$”s†¡Kêü‚ÍRB5x¶Ù ø_Ó½=øU§Ä»ý¿›÷­_ñCÖá¦ò 1DxÕYÏFbv—•X… îXH-B > …4 ®pHxaøÕ™ KØS¥N}ʸÌî¶0g±•yÓ ¹oÃUÑEkv¯¥zסɣ°›ÝañæÈ«Øþ­yà/Df‹¼¸9€\/)RfrÐ ‘ÆkÖš9”–"b DŠ„úù¾Qh=5:%Ð…›[<ƒ¬¥J‚¿¼ ú¶3Jªª÷aEDGvŒ¨WÞTm;–Và ¥Z:Æ1#œçe<Ç "¥)V:C×ÞŽ¡ÁÀÊ|îdf?ôxç“ñOõéæë÷`®²ð'{é0ÎÆWÖÜñfÈoÔÃ{¯Þm¤õ`/±D­óåM²©2¶I!ŠÃŠÿõˆÿ,b`ÌÆ04†Œ½²>c˜¥ „¨R\"È•`ÊiäN­Î°IomÒU‘Àdù¥¼ix¾WðƒMEËfÝ€ï¸üiÜ`uÇ C&TåUà,¸;B̃l-ÒV—;ˆut…8ñZEòbÅÂr‘ûî—2vlµššaéí| zs¯(])îC=_72i&d7àC¸¥)éý|yöi~RS)ÖŸŠÉ¡‡äã;‰þÿfºÿy¯V/m^NmsËzÂyÍ«¬–Œ—_ZFɺáËd¦ÂaônЉê¾ccÆX[/M8t·œ¶jG·ï#A¸Æ`½”Ž`¸Õ'•À €äJ¬Ì¶ª › U@sÊÆ$v>ÒB ¨0DÛàµn RŽjŽœH… †w ¼XbôÚSîJëäjúñÅji|‡$jæ{%Såô“-Z±PdŽ'÷ýøöì=i“Û6²ßõ+ô1©,5àyë­ÊÚYW²Ùë—÷üM †#‰dHjF³¿~¼A‚ÔsÄã²c§„n\$Ñ'èv¿®'žÅnÒbãgS,˜ÒýUä²/ÖJƒU¹âÊŸ)¯+–`eK@´µ€¬n˜Oµ,güœ¯nŒnPç§ÙÖØÇPe[XïíD‹ ÚÍt•½\·.Lºè¢wÕcq½uùè˜õ«þÅèCîðÀH"ChœÉ€ôØkâN B2ùqô­µ5:l`E$ËDþöö[˜v““J+53鿞öÄ}œu`M*š`rm@/’Ž=3¿„êµ­«›ÛãUçc‰ – ›rÔ+x‡E¢Ê‚f{~/.J\Ð^Êwa–§÷’gøÒËþk‘S÷^u íº“ÕJþâA§DÑC˜þà&a·¦¯²MúÌ SXÇ:Z‹Â'S•ÝIX9¶oQO["ešn"Ƕ02©î[ˆ2¿¹hxše Æ^p¤¿ îh>œ…?Œ6v7,¦«SôŸp˜'úÏtñ|ŽrL|ŒíU¬‡l‹êZ=6ZôW¬ÍPúˆMk¿UÙ¸%w ^ȵá =öÑo„N”|øA ­àËIràùmÈïêäßnzC´ÈÂ]´`¤Y,¾nB´t:¿ÕõÌ6ó…O%xæNnLVõe-…¦á§+¡JJ¼ § ÓÁúÚÂØ^p(¸׆qÁ$n˜ˆ\6¶>òÖº«¾¦Ì#&v bÛ5 Ï1ÌÀB"–i9ºÇLÝ7q [MžO+¾©Lkåõ7¤îÌ‘N£ŒŒjr Ya´ÿÀó¬æÊ †ûxg2ÓÊL“ð’´âr^ɱ¢Â*ýÅJôGP»ÐPË3EM’‰ÓéCgOþÝO¾Û}\ÂoPJ%'¹Üöø¼tã’GïBh‘$·ºÕ²7IжÙÐSÖ¿ûv Ÿ|kN`A–÷Z—9©-i@A‰ýwZÃ>üþóÿ'ix „´Lªr­JÐT#u¶jໃ¾JÐD_³“Y‹§†MŒ o®@S”¾Öh§ Ok þõç÷º±•¾Ùófå¯#-¬²Ê–ùÇê¡F&rËÓ0ÜÏÜB'^壜Ä*!ðʘý|e]ߨ›F¬V¾š¤Pp Q«¢¶¨1…+Z1ÍPªFÌ®µðÑÞkŸ•]y^Ú=çMV»o: ÚÓÕ.œ T;qªbV…WE*•Z÷SygfÒö)¬’º° Ï”øjÔÊcœ)I®à•ý£ô„ÀG¾"Gj¨`…0¼Üÿ[^ý5 £¶R·pA¸²|›Åt?dbbT©^¯,ÉÉ8Ê$Ýlpit51X¯æ"íš%ùU&¨j4¿d\Ã.+àd§UÎoéò‡VËIuŹŒ™B®ØHrר ¯¨n€S¢½®Óù-ãš .Ñn¡“]וº…^=Í m¶ß}Ÿ ©&e¥ˆdÛSžÇ´¥¹TU¥ýÙÇniz·eü«z—†‘ê*`rý!¸¹¬&ÕUÚŸ–Ý nD¯aSVUÚŸWA5 —¿ê©ê‚•hµ_µ?%l;­mèÔ`M¥naXƒ²á¢”0©+öVÝ«ͯ.î@þSÃ&º¬«´?e5_ˆ •1Sæ†T±x;ãØÐqH@B܆Gqе„™@ªØ<Þäid|4îQ8`ahªÃ°fWå/ — g˜\œaÒÌ0éÏ4È~‡h¢ÃªFó«‹Ëˆò¼k¡ݶ•º©Fr ÙuFSΣÁ=ÜÔ@½ªCP·ö)Þ³þp-tb ¶R·ðDb[©[LÈp |*ДÝÖ¢§üÕà®Ë¾]£ö)wl0­ªÿM×KÍî² §æS-ã´¾¸xV3ñÍ „–´<œvaô€}•ÉNâCH—>2P÷’GîîÌo-nÿáéÂç‘ð#ˆ+’æ·-éS|«Ñ8Y`x$ ÕÑáþÖÚú.̯×ù5_ÿÃüøîŸëïÀæ>ú‡ûõ÷gʧVdUÞÿüûúm³­ßàå=Žñ­‚Þ‡ØðúÖšD«Š} õ<ìèk»ž¡£‡²ƒÖ{ðÓ{˜–縦ELĘk&Ñ9±˜ïºÄ77rXبÆ>”qyÏã {;OºC°`àOðô/2åj~\,ï«X¤ôÄvCÊ ¥S¶WA…o#»]ËÚ¨†NÝr‡w¤£¶EÛ•‚™-×z(1Þ4ŸÙ‚ŸszÍé~f³nf6â˜h1Ä1Þn–Êx)ˆcªÍxÇT«± Ž©6É‚6³à¢£,®£)Þl4œr´EñÜ6Çù/!™ýÒSF^8›n2¸ÚÍчËv9™M~¢Ñü B›¹³›o ‰V¥|2HFÃpfÓ™FÔ2êÑÆÓbÃéBpÕD“¹oe™Uè „ï+šÛާ!9ÜÎ~‘‹ì¹¥¶œlÇÍkw—Í)wYx ¯f6;ßÐÏÕȬCè&MMÇ@YúÚÔMÏ³í§±4K’¿hj$ðL&&¶™eùÔ ˆÍ¹c"Ž sB,¹>ÆŸ©)v¿Å2T¥œo)’0Ç ÂF¢Ø©®.‘XŠóƒÈ`œu}ä0)Ûo“ð쟂| £‡W1;øSŸlÝå¡<ᚤVßîMH´‹ÕŸ»@ŸpäÆö@‡ƒX6>õÛ,gô›o†Ïß…¿ýøñ»¿ÿ°Õe¿Á9¡ñ`Ãî|: Üã_¬ùKÖ|ÉfKLÅrÆwSØ;zsÇý,½õqNÞ糟©Ä,Ÿö’ÈÔ±iX 0‘· ¥ÌM•‘ßâ@¡.n±T¦MÐ}ß1}Ì\f˜–‹£Œ;A‘çÝ (s<Q—;n?§ÌËÉCÊ#ÿËRŠ|Âq•ˆ–x—­šô¦ZCb½ZÕ}ðAF÷¨Qá×¶0–%ˆ¨Ô+â]%v:&Èq/õŸÄUñEQ`Š¥s“õdË&ß|8%ß®ñ¾ŠSø_þë•V@¥ÓùÿhªLŸÐWRÑ (¶-µW-´Î;ShögYÐãYx‘.| Âtml\1%e" Ät˜B”Üt}‹Ya:Ì÷l¤ëHÜáÀƒÀäuRææL­ëÉS}¾4%ÉuH³«_@¦=üzò!]¿‹$Œþ²þèåw$­/w꯿>I`ÝhóO•µf^CjÀºkºkþ,ÉÆ{sxcxíjJ°íc3Ð}S3f:E¶6Çu-æ´|?Ðíçºô)Öýs­maGÐSšñ®Âr° 0±¡:ÞB_7­Ä¼ˆwÇZ±hÊ2l~\Ñk’‰p6÷!W{Ù»8j10XÀMH¡¼IOБÐLªËM’Æ ËIÚÀB“KWŒo’¸ Ò!,=I°´7vvåäÜ/_Y»Ãæ& pˆžÕð»½NÕÐØÕã —‘]À3%œ…º£ N…èSâ®I¶çõÌ®ó£Q;+â (1‡0KÔˆ“º«£¥“P=§#Ébõ#Æ”Œ‡Q„ÆÂ”S ãû~•’ÂÔ“8 el¢Á/’Þk…=ÞÁÁ“Fc¸” /ªèV8F:!´¼ ¨˜A‡U‘ôŒ™„K°[R<‰Ø[”ÁʺwÙ|{”†©óN=}Ï8h×À5X·!ãõä«ÜƒUt9YkÇÛ©¸rwœo ì3³“µXn¦µk^a©aÝFkÃp±Äk‘ðÝÚöÅý+#®×´|±`©ùºMLßõ°\Ýñm¤}º¦ÚÓ˜q=œ£8‚%%x=†—Xo` håèP¾@uÈ].6^©–Æ Æxc ¹K+ÈeGÇÛ8*ÒlŠ˜¤ÅÚ§ Cd=m)ˆï´æ¡Ty·ñÚðé1¾ÝŒ“OÁ:vÛÇ Aò‘•,bÂîQD»t½r¯‹Åq1ÝÅ+øøqÛ#•œ("³nãÔ³á×pÑá(Qõ˜ õÕOÉA°³-ɯ} ‹­°ïb â~xÑ©Šñ)Oàï0@¦ªrba|ä9¡õ)ök:]ìLFÁt­8Ê#L¼t€ zÄ ; ÔDé¶]±ãuJ*A5—kæUÆ'™Åçqä,UïBe¨¤³&”†ÕUœäWÀÍ2lÞôÇ5§Bf³\½}wõïRC˜ruöô“^ø­Îí}Bwh§¥ºM¨þ&4…ÿ%1f“ºqGõc[D‘µ¼SÔÖš¹¨x&p0`™Žn-ÙòI*\k±Î…¦n©Lcæ:ˆú†mˆØ{x4":ÁXd4öîr ¸vÅ4«>Wäæ–‘œˆØ—m•f ¤)%Ì‹ù‡_н»'%Zï[¿£fq’†EúõÇÌ7 nœÐTá^~]ŽÌWÃJªðjõËæwMfoJBGelæåá2 ºîoD&nãöêZ;?Ån4Æž½yyK¶ï}&˜žµÑ×Þ«î™'¶u‚`ßÖm=@žÐþ‘Ï«Û.bHGîÖ>8xá‡SÒ½­WÄ@ŠÃeQ:¯òÅ#šOè5Î#8Ÿ•é+`Ai° VÕé”Û¼üÅ89€|oЧc²ç÷YY vMòLQÜñp‚*Å]­\Â*Œ«#?óü.N÷a´»ú^H/øiŒŠ{„ÓWL,°0:t,ζsT'@®‰EÐ ´\@Çô¸k jOv9È5œµ6žÊäaÓ5QÀlŽÀõˆKh {–OtŠÔÖ®É3ÅYB½#ž…ã Q¬Äj€° d¾Z$ozËD+–I-á@†}»ž#`:<Ú{ï¬ô½ö0l%ßÿþÃÕ?ß}?-§–kŸ’„:±l©©ž@±ÇfUªoXÞ’=6æïÀö§†ô««üû–í`†N ÇE¾ïSõ=L8BÇ œr§¢£ó?Zú" ç9?ëDCÅ"S.sM,ó¾üüè±ïÿgǮމ´z»‹ûé=jꓹ-’H6d•µvN yéš–e­] 5}‰Þ˸¥‘}Êw$‡yZ"ž˜–*Æ”ù˜1ƒ8¥®%\ˆÇ1% 7 û&¥Ñk¯|aáÑZ¿)û­OÎYõÉ9~:‚ùkeZì™ì㈰ВªCÇbÑv€Uµnç¤ÚM¿¥Is`R‹¦øôÌ釷ß©ò·ÜüpJDŠò!wø-«ä0¿åïþ~Ê”p^ÞØ¡Â½Wq¥ßòJëS¡>ÜîTàªøÍÿ>›:„—œ@‘Øì¿ì]YãF’~Ÿ_¡Ç] TÎûØ^ï¬XÏ`ïÌúMÈSEK"Õ:ª»üë7“ÔI&©£¤êªjv£ÑUŒ ™$3㋈Œ£X4%Ëovfæ þtpø2Uu4\;¾jî’ý6Ÿ5Ÿâ·E,ù›G2Äx·jöñWÍkî˜6ÝšúÔ¼ãK¡ìHl{5Kl‰]µã—ù椪øÍk@hT*þ7ÙeÛB8ÀÚFªdX×\cßf·µ„$׸³°¤‹/Ï­X^cÿ=ññ'±Q|âð,ˆ§Äá¼Xeþy¿y[#ùJ™U×dÛ‡ÙÕg³Ìœ*í¹4½t¦H«Ô+®X/ÒƒXÅÜ´²”T‚Ør›©v‹sk^aš’Ú·MòË—é±È‹<¡šåcˆn¼×ßÙô©ùKµœ¢Äábš%’ŒïªàUñz*WÓç?RÔ=„¾|ÎmfT,ÄÝrZm|Y1÷×Dï‹ÔÈÀUƒ)û¤r㎳M›\ó¹‹)"Æà[˜Çìé“^Ÿ—µ¤ÉÓØUAM»™Š|¬ÛðuM ßlB–á5Þî ·ðí/ÔÉ× u­¤ÞhÏ‘L–½×TáZÕîƒ0Á-ù,GÚßÝçe›-¨Ù » Ò–÷:xÍ2 T¯>îp7Ø„s¬ƒ¢e}¦k„™Z±š¾ÁzIHÆÁ(¤9D ¤“‚ gæšs 4EÄí“Ð.¶^[kÿù—¦àúù—6¶¨÷—ªð—«é±cB5ʆ_vR»@µÿ?§ÿ'KžÐ+ý;R®‚ÑJÅ0µæI¹ƒ™ÏTslêºÞ²à^Â}ªŸ‰#Úây¾*UåX2Fu½H̨kÝ×¶yõæBmÆT¬‘²¦‚ ðh³eÊÖê0œ’’Í—Ë„Êy©át¶y”|\­½G˜2WYÅÚΊõ걪t2üóDñ›U)žŽ't,ŒÙ:!¡ß§IÒb{ó˜Åœ ,§éu~gkåŒXÖ«Mšdeê~vA«HÌ¿/³”!÷Q MTгPí÷l4ªz~ŽÔT¯gË3M\»çð­ÈW«…2“3Ø ¯üÌ=…SÎÅôy‘™sËܺªlÏ9ì›˱hÐÜeÝ¢3ø>g“l’â!¼£jÓ²ýå1Uoö[õFOrµ¾ÈC®Ík9ÅÖùœ›kŒTÈÇäµ¶,¿‡…Ûä›Ý²´?Ý–c¦Æ¹Š=¢9Üy»Ù—|]R~l|X\»¢ìßÇÒ¨mÖO«esOƒäƒjú{‰¶÷‰ËC¡_s‡ÿ8[/]4–ßýoñ|V‚‹u«ÀIDf]–ã ë²üÀíŠ$Ř19 $ö–¹VŽ/&»1%S\l¸…Lcë©JŠËŒ1nÎ ¤w¥Ü{1Þ‹ñëÅø~ï¯vñ·ì!¾ÄA{±ÃÒ-üÚû¤s²Åg™tN¶ø/Á›{xÛÞäN·¬Ž€ñP6ÿ °¸}#] /ߎm Cõ~RÄ…jTEx”,ÒÕ²v¶nzÜ‹I»Uöc9½}ie“õn/ýïä1Å´†â‹ÉÄS‰]‚BŽ” |Mkõò¶˜Î³|;,ðŠ`š#Á5…RcN…âL9, a@ë”ò’rÍ=ª#ù´ŒÌútãJ†“ØïªGûí¿ºÑ¶™û­Ñ§w…çK08¬¡!sû\dÊfjìô4[%šUÜlgìM‚ø5T·“½Dff£ ­Žœëã=vðã ùYEmÇÑøXƒu-¬@KT8ª:€jºÁp?ºT˜¤‰‚“«J½Å;• ËܶÍE²a“Ž:h0á\Cˆ½³Þ©F„ @ ¶–Sù/·ˆ†³ÿéæQNæ&;˜ ¸1¾JQ¸78ȺŸÆ/c›ª2XÆ«,Ÿr 2’•µE¾$ÝÔá$3“²¤hÅtD*C6Žé- }íÅ)¾ªYŠnÊ-/[ØÃµ2“±Š V+ºÓ¶ÆÅrµì!/â&UÛŒ‰J­Ž+óùø¡yuÒ%•"„ƒîK…R',ÜØ}™'iëg+LDì^Rkþy«ü|×ï»?l7yû,ߟú´§.³û¶'·…ÿøë~ßúy¿O~ß¶A$?ð÷­_øûÖO\§}ã:q–M‹Í:àhs0hÁ!§…™ìH¤TpâÙÃö/ËiL¬WÇ>­U¾RÛCAE1×eï]½Üž/Àv ExjWõú«Óæa|«úÑ¥3ó Ù˜ç{sä$ñ ÛcÅ"¯ÁÐ|>r:Mº+:ºíÇcÃÛ#ˆÜŸ6Ü-»T+rá$¯õ?»¼œ§GIK“{G˜D B-ˆÒ0 :T(*d,Y.œ6ÀyÞûŒ{+ò­X‘]^÷%{JpÞ00w³ª¦Y"¶-^öž¦j6O]á|Sµ;¼´w1Pëtü”rݶÏîcHÙ™ŸèÐüÜ’Ï(3ø¯²{íI t¼á'‡ Ö°B–Ç»Èp?ÊT•® A1€’°XŠõ:”í2~]ûÍÙTÁi6†y/…âDnW±O±ôT;ŠƒqêV¢/XÐ,èu[è~2ß&/&YÖ|'ãùxè‹"#4sþóðQ“á rYý‚ptT–†m©ÿèE´b“¤Îäý±Öê®ïË'ÄÃ.U1¹¥¨B_5á}WMøT.ߦøè«)| :s)õd…âL-&£/_6Rî@OÞðµ°QMËdÔ¥[Q0^¦Y–O]—·YŒ°¯?Ö2X®òq’Í­m±P]Ͼt’KìâÈbµý¶ Òu<µ™ï¢s×=ü¹Ò]äŒs©¤‰-WY¹õžâ§l½É#S»|%ünêç4)ë媘ùÌMí2EB3uö¦ÅÑÍU(‹-¾z\Ït®²ãÒwÖ š–Q²~Å!ÇËkÁÞ¦†Åá˜N”±áß#€)¹vs¢¦j1ë´À;„ÔBn8¤šb)© ØŽåñ¾·›…ó·-H‘ioEöVäí“I.ŠXj±á¢uiãoÏ̺Оº¬òÜ›°€îkäD[-T¾L¾V“æâ£`|c&F) ÊÖa5esO°Ù"E[¸Y±:Ží>-_Õ%-Òê¿«u°_Êæ­zÛa¢ÕU´8‚.åŒ ÄýwL¯*1^Þf>_¹Ù<·3{–:¦±×£…ÜKÀ!È2‹u‡CÐÄd#X»ßB¤ðÜ5Ð:¥Ü$[ö=¡ÖGŧ†dLfár¤zZžÕº¥teáRLYö÷íÊÆeaÁ®­S?9… Ê# ”#f¬„(,Bb%J8þ¸pKºÇŒ7Š·3ƒW®Ó½x­aûÅ‘ÑD%tàÄY]S0mv^³¹–ÂÏ–z=W¿1kpåâdY„÷TÆO'<ý‘'ÎãM™íŽ-0Ö7œ"5·Y^&·œ?©Z(¶P£;£ëìØªò1ÌÉÖá}Zgfb ³. u|ÎV汕wù<Óa—d-,+¥µZÄ7—Ç ™6®ÀF½J^æÃN‹hÑ¡V {ÿZ 3Ë™\¡GuëOȘ0_¿ù±*f™éÔ¡Jm‰{еBc¤´b !éS[¦¡`˜ÿþu¨^Oêõ¤³UqœXç[äm¥”/Utz+þƒè‡â· |"±­’ÖÏñþßýG¡ö»¬ÿøãTsåÍŒí!B$h€PCAN8BL1&WûyµZ­ÂÛÌæPD°Ò`Ëkï¨eÒi  PL"è4Òa¹ЉÚCÑæ™Û1¨G§Þ©ç÷F4ÿ±»R“4+ZÎÉ]Ê7p 8»tçõýåAݳLý‡ÆËœHcæžáÜ<Ër»6÷Ãè‚N ‰Ä1£ rp]æò^Se&ºøÒ‰œÀræ@°â’h. c‰ÃÇ Çžjdaœ=röÈÙÛn½ív‹¶r·‰6ä¯k¿mGÑiÁ 8`LÅ ,¸b›îÍØ€7üñ^8È¥÷A$¢Sê¨ VVúƒz ê1èõ0èDù‰›ÂöÈõV«’Õ-¸U»QëÇ2‘ëŽæS9†Îè!l&0C†®Å,£¦û­¯T5¸B‚;( 7@#f„`„cmMXÙži§ ·÷[_=<½xj+®0›7åŒHž¸DÎ åy#…ú~.£B÷?•ɪñ%©=JâW“Å„!Ÿ™ïþ¦Vw¨_ ³f<% ²a(œ~5XÌFãUì-=0–‚ Hµ¡€Ä0uÎ ,—€He8EVS+” {¯-úÛ¥|RšßJô\¼~‰—ä~«ýƒ,íÍ´M4ÜNè˜+ ‡å”~A˜xj4bœ8Gõ•[ž3Ü ¹v)¢‚ œ]í›0Å´X˜Ç¢Xº]¾t)NÊ&Øhì5¢š( 6¼6DF{Œ‚ÎÇe¯ðõ ßQø>PŸ½—ì—~PÕ,!ÀÒ…xΨþxží~]íÇ£±t€DLr1`€Š«õ2»«ÝA’"ÝK“ yc½bZaMµtÁŠ÷NAí-7sÃë"=еå<èk×IùøM–÷®®/FðØ!èûÄ onÔªÏL†aÞæeÓñ¦¤·z½Â櫲Ó曺Ði~]òÑÛÉ/šª?ž›–‚ÑÔ{Ù ßä?þ-X.Gå¯_V=ï–=ŽÞ¤çþÙI¯"Ì/¶ëô%Ì:{PD‚•†vy Ʊh vvô‹YM_`Ö€ó—ëJäXÔ”»«'AÒ-‹C”pôüCr½º0Ô s­ÆÃ˜õë?ýëÆqRœÔ ÕØ(ɰ!À ·4%ž8k pÞ€ÖõÝ‹î¢ú|¯èªØwTL~ÈŠc?å¶cNPþò§0'±=Jnÿm{ö_gÿûŸ†%óõS?1¡Ž'>ÇDÈz¢WêI†»çHd~ABÑ@b|½G¤ÜMîÖ›¥§ÈE‘rÜ /­ÕR#æ1J‰×JzWH¯¿-ø®%U. Àèý>Œ÷ÅŽÊÿY•ùÐÇúVVŒÂk*â@SŠX)ct±s ¬V¸s oòêÒ¥c1ꎙrLj‘„£HÑÕq±²Â¶@ór;Ât—eIœJÌ!´Jr¤!{ÌWØx[/k Þ?Êô~˜nãçØlÔ­²‡;”[¹¨sÚòÍá7UåÌ阅tóäÉ–aæãw{ÂÑÙ/uQBÒé~ÊÇ÷în«Œ ¦˜Ð«kšÅJ0Ý ‰6€ Õˆkn„BÌs<Ž2ŒQD|„Š=hö ùF6z4ìÑð$FÙÝìC²ë-°iíÆaÛ`]ë¸qS„‹÷ï6 W»Þý´˜ÏŸ;î9 gS©™·P+ã=C€¸ÔHf¼½9Ø#[l·B¶Ãz ;ÚsÛêt´E| vM„uÓ®!‘À(¹àW‡’Õl¦º„™óÅ`©¹7–yÀ¤SÀ†56#ƒT¨MÖTP7¨ß¾xÁžfMö7WAñ£¡Z_nêÛ…ÇuU¢DÂÀ«Ð#kI7~üµƒ³ËqtFe3Y¸žÒ«±Ô­ºãK€6ÖYá a‡?NIHÏ%´ÎCA°5ïI_-?%`±ÑW²ò^§uáÁáŸú)Hð£ àqæ›o#™ôÝÖÝþR, ¼¥ã}[ø³Û¼çÅ*óϻλç†bw5u¸89=wób¶N¬¶Û5Gokq¦é&q£K•”b¾Pyñ^ìöª‚„u7 fyu+¯brÆó±:YÂrk¥ÍÜJM³|ÒÎ-ÅbéÔÂ<¶3­§«léÆmwŠb`9ê± iÑQëØP?qCvù8Ë]“¼×:ÒÑï‘tVüÕYº×•áWa 'bÜŠª’B@¯Ö½Š© ÊP¾ÏvN7v BS„]е$½":ÕÆRhàÒQÚ×cë]ïUûúxÕÚúzl Íëò:]“mÏpV]¶FÙ»”ݤ«8ÂŒB)BÎÈõ.„ù¸s³pŠ-GÄ! ¶Â"é,´‚[K´•Biã”úý{z_ü·d/hîX]ªák¿¡#>‰cS«æ˜ëmíЧí-§:žðjšŸ1Þ;M¹É†µZNQ oAçã–íê@é¨Mç‚À ?ÜcË:ܸ³&ˆ#½ì‚«ƒ…³b¤Ö6+Ì.d¦« xæÎyhŒDA (F=“ -×zc˜p/ÀʸnMø´Ê¬l¶4dûA*‚µzäU§Ón.¸ü)Žå¿~ùñ§¸ÄÑòè‘÷="¯ ’Ûæµ7k¢j*šø÷Gì0áÕh׺´)ŽKz€F•™j’/ü¸¸ z°ï­¼æÆ|0z2£*Ë%LŠñ¸ùÞ¾M“9½3ÿT,t–எ»Ü4Ÿº"m?ññÊþ¨Z…™mqõ¡žò›:¾9£ð ‹ ÁF~ª•“ë<Ó0ÊS<»ÖÉõY=µ°¤e`C{ØiO°–§|Yp_¹)0s6SäP!i¸ ªWÁØe¸IJo¢†k({Ö¤OÝ Ì0r'”&…%$š¢ !i ÒÎ@$•”KI¸çá0¥z¾½gû­ª%Õäjr¿~Tù8ü v1HœPèßY¥‰7q|s¡â wâò¡¹ãº¥?TÂt…i»É}Ööj›ˆ®Á‘áoFªó†ûÑ4Q„K ð,èK@$[ø Àƒ”qX¤vY=ÀªˆÊã¥÷z@<@^Z@4c¨x[ ÒÛ½o`ÞQàÚûµ4?PxÝ}Ήž¹(êØ ûa)ì_Ö.!  €£¼^&³:ox4’D7ımÇÜ$¼Ñʼn”(AâÐh̽$Væ„‘Þúv&€¤ˆ=ë·a{PìAq{xþX¬ŠÄžâ†0Úγ†]Öci¥ïKc¦T uÿiêp oŽ’¨Qö¿ÕÂ~V ÷ÝO%ã½R¤v#éL“ `˜AÄKŒÈåó2Ë}Ñ]„c¤A€V$%Ø#C  @[ ŽÞI*-—ü T÷èÚ©ÊÇ‹‡S• ^Ñ·áŸi®–ÞåÙƒï À7•,u«¼¨g?Ý(½évyJæ#}°~,m#v#õêy7›ã-ª ¨YFÿµkâ`WG%|Ì ¦3 ¾ÄÊ­£äy!PLqJ©š!«ÿŸ½+knÜÆÖïùzŸrûr«æ!“L¥nU2™šÌÜûèÂF‹±$ªIÊn÷¯€Ô.–hÉZÌT%ÆAÏ÷œ)˜ ©060ù‚a¸Î“"ÚéÎ[¿ôÞ'G¬F¹œ$Úž¬íûAˆq!ý Îaúiž>¥­‰f*š0OT](ÇæŒH) Iäd0@TŸhÖsÓËå¦7˜JÖS¸+ÜYYSºñl±JÖž(ö·LåvÏ23ÒĪ´eˆŸ· žB1Î:×ýs6žz¤33íZá‡@î° DY)™C,¸ÎbU„2 äq᧘`>;À´—Xéáç2wv”kfÖzì6ÿœ}ÿ>:IRòÚDZ1 †ØsDXçÝ‚Q:qE+Ú„haH5"ˆŠŒZµFoãp ˜‘–ÞØé±¨Ç¢‹.‹.ݪUr£*ÙyÑ©šB.Q,9Þ$"˜ÎÀ4VÃ?³Éãc+69Ǩ€P$HØê€=Ž,Î8P ­걩Ǧ›ÞƒM‹ÏÑÿä’~›î汩}léì8x-ÄçůÅ,ZM+!¤@h€X(zØùÜØ±JGËɉ~Q@¦‰”Xk`˜ôæÓ )c9ä˜%FYÆYìäÕó4¯*Ot,l¡ž²‰²é&úÃÂ^kœw[úÅ6zŸ«%U 7«a,ÿ2uù¨:øü³+Òlj‹±ô{±{%®§w.Ô¥Œ7}»¿üån )·£ª}‡u1Ü«f–Q‘eÔ9Ûk€è‡Äf7E—£¥·R¯²o‘íƒ x\¤ès¥¬§yúì&&MDZæ7*{g“R™rY5åè¸éc´öX:N­Ëê伸¼¡ÔX<°½µhY‘ºçØC—‰7Ìm…_kcÁSî]s¡bÎ+>¾Sô€íìûpƒ¥¡ "gD2!Ù@`î\õnü¦ÆH¨”•€D(#Ü0(1&`¦iÂá€Xhû³žv_0í¾†®~/ëöxMé6lUßÏ2~ËÏBãX `œÂîÈó­½ÐªqÀkãÇHXgc{,¢Òxì£ cè œ`Ý£ÌÙQ¦±üéZû¿þñãØ<íñ –· W:IKò>»J¾.4e>ŠtØ¿vyÓ¶Bƒ‘~Œs9®/ñý”çˆÞ(t¾o¯0g£<ç:î~Ûü[¢ÙümYóþ !îó +/NWÔÓϨµš'BHB6`IÑÙmãR£§V{P ª*¤©’h-F”hlÈ›‡ÒâDôö`Ô½=x"{ðíÿÃö>e]ïEÊM]73çÒóšóI´™šÂÃDá8GŒ¸ìŽkþKJÍÓêÇøIÚŠ#G „ùáAM0C’„8 ©Ã’!ÎV–¾ç$íÑ-„@ôÙäžù®×Mç:ß4*¯;w¿íNùF!këÄ╾ŽqkÊ|ã€â}üvÿð×n¹íŽ}2ñjz­#H¸¤,½w“Ì®v£a~ £RIÌ“LI  ÀXʘcrÀ˜nAæw¦â¥} ßbãYª§]}\ÝAtÑzn QuráIÇãŒ^y|\[»SGõǻ]^­¼ˆdû|±jáÛݤ~¡¥9Þ¬’ÆãÍÕÀ…Ї›QWVyÜ`°0“¶`0)I#˜ù‹»ïþgåZ,XŒN ¢DŠJ –Z2Á+9‘ÜqÎ\Õ†ËX°žNöt²§“F'¯†"'™¢ö½‡Ù}$‡ëfïyÒ»xR×£¬þ¾£¤Èwˆ°¢u´ob>åVbãÉsÇ&:åZèa,ìH†é€#IçÐÃl”´‡¼­¡Ð¡ú Çÿ@Êë9"#iÆluè4¹É‡þhžžrìO9ºÒˆ#ÅMrîN[8…×͘ï>f½õ§¸òЋSF2~*z´ŸçÇÅæ^…o kù:u»’aZøþºÓ^±[mõ·¹Û8ÿè·³<õ÷-wS—W•&fËAe­†{}ðo$<ívðR¸ÏSY6¶%ã/|P:›•SõèvE¹g¥s“…ivåÅÐFfÜ8ô\ý4 üús:ËžÆ**Ú»Ù´ú³½Sô—YéÁ‡è á‹ÓÍðŒx·Þb£K.6R‰‚Þ]¬ÙµæÅÄ×iû|¤Å9Iÿræ¶nrWOµ¨›m6šÓIø Í[^ÉÿwúþoyöRì‘—T±Úuv½Ãü¢ÛÌ1ÃÕKˆÔ³#„sND.`g×äöÛ¨¦ZG;Œ“ð–ÇÉÎ;š™e£ØM F\'˜+Ù³òßUøõb®æRgc=Ù©Õ§AÝ$Bw­hBýÒ÷ a;„,îÉǶ)$ÅhÛÝ»=ÌÝîÓDªÏHæIÝr9íœ:Qݺ([ýÀ K¬\â©¢3‰æØC '‰F   h|“~àž)ÞS¼òT÷þšÏ@m6•rƒ“³–þ“ÿÏI¼õÚ<ž˜pNÁÀ£„ï@'¿(]»»pÎÊ“ÄB˜8¢H æ ÀQ,&,ÒW³»ñ¦W³‡¤¤ñ\îáp¬¿³{ãzgoboðP_ ­ß8DíÃÓKž–ÎFÖtûš¯›wS¬Öñ¨ÁáQKw¦yvñ6ðú×¢tã{¯'ïÿíroJ«Ñ‰œa­® B  DKoÈuGêlÝš5å0¦B©‚‚$NN¬„ $“&–y«òÈIøbFöÙM=Ö_J²¼o­‚ LtáyS¾¸Ò­EÊÚðyzsÏå%b Þ«×Ø]Lÿù\u—æŸåj’zâðàÿ ¨XPÔE$…1±ÿòüP—”‘vJŽÚZðésX35 Êb6«X\W¨>Ñ(¬Õ@S{Óe…m’”™Í¢²y‚]1u&Uþ#kH³[t«‡hpmµé® †ÏÔ«…çHÕ«ïÜ–«'(£ ‘Œ“î[aSW.wÂâe¹%4‘FÀ¹b:œPø58ç4‘FB¬K>}ÙÆ“+?ð°Êüük„.õ´}]PDxòGîÛµÉÞ»§§ìì¡þø#¶À&Bj+TÝ:¦2ÍÓ¢qøÃ¬Š«{jàÜÝKL¯Þ]¬ýa\LŠ¡Ê]ÌXwÉ %âsi™¯ c]ž=/Ϭ{NMã<¼]¦ŒÉ¼*~I¿«¼q,3T¾ÇÄf/oÜtn ¼6É+ 7â¢T嬻É,Òã° ´c›O¯j˜e»ÓúS4'E„ä.ÈVs™ïÞñ¢SQ¾šHÛ¯y6›¾¤ÅÎVì×t¬¥å÷ÝùÉZªß7ø"¿ˆ4£Žº‹ÿm{âoE•µñy ¦¹6œë¹¥¾Þ6‚êNÖ6dy¬õ¥ªY8:•‡ì—7nT"NGj;Mf­Ës­»ÛÒn¨žÓ,oïµÒßíý†éãpäÿY‰ó Eµ8XMßš„“ìeä/w“UŸZyEEÓ4–â´VÖcûí°'*®±§}ˆ 8’ÄEÍèºG¨ý8ReÖø³|4M_ã!ø°©Ó‹Óá+p;iTo­Ó¹<G›w—îËq{ùD¥µ©[Õ¦‰É]Ø•h¾<0Ùh{Tÿ·/Ô–EZ‹Ró5Öü§Òz;­qE/\¬¹y‘7,ðÆÅݲhkÑ×è£ãè8au§¡ðvT˜—Þrо±äÛ—û›K}¯eþ2µ.ˆØþöP«5Ó3õ£3õ<5ÃÇŽÆ´7péFÛ@×÷¿6*ݯmÿáößëoÚk­g—ožsí_Ü4›Î¦wéÄ?ßhúåj÷=ûÃ@“rð[`4!ÔþDUõ«k-¨ï¯°¤¡Öˆ`÷΢VŸ>ÔB†vBY‚ÁBi ¹ÅP¯n5ÑB÷•P›³?p÷±¸ÂÈ›¬}Úâr?iYÔÖêgቇn4} {9àóGOÀ¬‡ÔIYóÂN.øU'÷ìÁ»Î'kí÷Ö¬ênŠªÜP%Ø£Õ—»$|ºïæÐâ#ز4jßôŸ~Qú·Øâ½^ûŠš;OyTìõBpOf;F›— _kÛf“o_L*h“]©7¸²¤:¯Dw…¥7½ ÄMdßãÕ©<>òü)ctþ yÚo›ìFà R?]ôìÿ³nbøKÌÖß«!VmþׇM‘IK\B’xcðþ÷Åŧ97a9·¶0H „ ‡DðÎvÃTµ'“J%¥ÕŠAm$e@".¡ H¤ ……¼O&íÄÉŸºÉ/¿ölýllýü9=}‚ê%P¬[%SK%ONõ’s&¦úÛ·%¥"ɱd&BÉ‚®—[Ó‡§œÕF ’hJ‘æ†c‡5SHP§ýý=ÞAÆ-d×’‘zN<ëQëâö˜šë^ãu”bö­ÁY'ݸ&0zž˜eµÈÏ„SAU7¸Œ¼h£Üdn]ñTfÓ½jJþ«ªC:øy~Éi|=~†­ž,ãxÀd¤;˜y#;/Òöú?z«Œ+Å™IÔPiH‰aÊ 5H€ÂTRw›çÀôw#wE¦×ãã÷åH»¢qÖp×3§±ãnoçú=n­Í¥ûXl';9e>‡V³INЀ0ˆ»ëš'úô)n­Æ– ' óÿZ©9‡ äÔl¨£Ò'¥ëͶ+Á45®‹È÷`wÀ.äyŒ¾£€Î)ÑÅ[P…ËŸcÀrÛøáµf“•è½bã>ÆXJt«±DB‰RoÊ0Ì!é !…£íÎ-4$B+eXC&ÒPíQ„"”œqo=õ–Òõ¢ÊíƒÇ…YCŸbÙo övO¥ªãFOÕâ h5w'’0"€vÇ*c³‚QsÇã3 sBí8…\r$ÀRKvšI$ßW-âÉøßV™Ò¦…Y}Wom­Zn>ôºG»££*²ÙÄîŽý&ÔA–z§Ö>ˆô#ê)D¡õ°üûQœ©Ñ¹J'‘|îÏ ÁŸ+w‰KK\†¥­¥ay­è_)ª¾é¨ÙÒüm6 ¨cSuÿÓÏ÷ÿ©×=Îî//"ë(¹Þ±mð6ön5ûˆW0NéÀC)´3xÓÂMZMMT7ÇØ`4’€ZD0åÈ0.™rУ·îMÍ|{Só=¦æX ÿÌ&þÿcÆfÙÛ›KÝ`qVÂóÚœÕÚ¬Nˆ8fh€¥Ý£ÿ‹‰šÃl™€¢¦§Å‰ÁQŬ6\‚)—bh@•‚ôž¶¨n ¨ö>P£ø)xXèÅ%@  ÓG+óª_Lì¢ç:|,šm _r5¦¦Ø?æ½Éº–ÞÁ†·}l‹yÜ­!–FF1bN_ê|šD1UÆÙ™µš@ÂJ•àZ ‰2G´5 ñ$ÆÐ9Ö›@=²Ü>²ôi_=ŠÅ–j¹ÁÎYÈÛMM¨ñÿcn”u'1vóhõ²a (Œ ÂêëLù—ÜÂ…dRyã&¡ÊYÎ u\r"P±~š+DS=L].Lõáóñ°G¼ëE¼¹~oÀ»Zzn´«gцuÒ_rdg¨›ÙìiÖî“RT2@$³K=¦ák @IHŒ… q€éæ?ëÿ…,‚lâìÏnôãĤk¿?¾ûàß§®Ã±©þ~ùõ?»}µUûj!ÍÆþ ß£¡ñejÒÃ`{S^ì¯þaº@¼.rÁ×ÅÎ wUc«ßïßG§A÷j*màÎCÂÇ ¢¤ó–kéT«møj‹I«°ò(ÎËj‰ÅÞœM,%–KJ1aš'½ß®7[/`?Üo×gôfãR™Æg.m2ÿ½n:òþ‘ F©q“ Ôcîªnƒ$8 éd0UæI=ºÊ”þú6Á|'¨q>£ÖðH`A³ÎI á&eî'üFYy‡Ó&ÁÔ`ÁˆV… ÃÌy¤aÂBî$"´/+ßAcXxæ³,»Û˜‡Tž÷­‹Rày•étÎòô'­A¿G%ùOPýæþ%•n?å.ÀçÊ+Qùx§\yUô}nÄÎ{[”v×Gª¶ï0–øÑãþêun·êŽÓÈ×nßVë A¡ðÃ@Fdç,•râ’V'‰vŠaæéœbœ#1¶R$Š:ª¨¡ŽqúžŠ:=gë÷(>ÕÅGðóîÒÃøP Ù9™ ÊêÃ9N¸ÌÍ“ÆéAÕg˜ìU,éïáÕûÿøWXQüÓ?¥6vÀ€|€ ´s"P9ËËÑ›À¾ÐXø¶cÊ ›(&ÖŒ+¬±ÔJc-5JˆÓ‰ášØ{z¤¾¤þ‡ü{2„n"òúbÝãBµÎ]à׺ë8T }N™aÀŸßT8µJ…¤ßòf;;#k ~x(‡xxª9Ü-§«ž@¸ðãI,»—>*gßZÝØ‰\ ‰Iç K8AÖ±$Ro¦R-ßSùèB€§7?( c “;7)Ô¼Èé ÒQO‰7®Ù¿5ù’gßZýȬ~ÔâãÜɳo­®dJ‚0°«’ŸMÉšj:¹r¼Ãüì`ԙ̜õVEÈÕÌxžF$¶B#Ç!°SÞØN´P÷ë#ßÕÃW-@Ãz8¬/ýÝáÁ€k‹Êýôq³A©f~Ú…Ç»zäžÏzÍúÃvóï\ÇÆc÷¢ ¡o­§ˆÿk­Çï‚ÿáÞ•æþ›}¼W³2+J•—÷›šyÙþeqrÓ ×;ÖÍÕ›þþ:úé§Ýh´ò{ôç_þãµ(ÿËÞµ59nëè÷þ~ÝOë~Iòrvr6›Êµj’Êî“‹¢([cYòHr·_I–%”/íîéî¸j’DQ$ð±ºÿöéc^ÕˆiX^Ë·Mo`y{=tèM"ºoX®3qm×s/Þì[Ê8,ã#æØ ¹ëØN€5#a9žëXš–š!÷"Ÿ ƒ ¾÷¾~¯oûS\Þܦ›Í|×6ó½ÙïcÈ(øÞ#Κêƒð¡Òi=ãÔõ¸ÝÞè©£«fWÔï‡ÖQõžgT·4ÜK5ý#ØKQâŠë¼ºKíêhxS ÒM{NäøÌçÂêî–mœqSÓ¬(ôÝÛâÚÍJ¼+qæ®Î[HÙýVMÒ- á$û‡µº&¬[_–»;E=ÊÔýðç÷?}ÿïc–® ­±:ÆB M°M{`ßzÏnש"Ãó-}☮f_|æñQànW>ºYä\¡¯ûAàG¾¦qËŠ|ašk¸Ì&ó´  ífÏnöìÙ³yLDÌ© ^fûâ4.­Ù~*梹ÃSL䢬Í)§5?Ÿuú‚Œ:,a|ˆ0.3â4Ôù1¼î§Áj*ÇŽ)â-ÁRMçºAˆß,ý{²ôÍ´ù0<úÐбdeÌ1ŸŽN»¾…¤7{WËôæé¯èœkÓ°±ÍIÏsMÍœè®nhžv1²ˆÛêt±aK³,; <ð‚зCË4X˜> f¨ëëBOIÞrÐäV)§AÎÒ0Nçð=õ—¯º…7/rõ-*OÒ?£@g‚Â/©úů¿â1Œ²œ~!›gdX ùö´—Y-`˜9Ž"'à©Ái¶!s–o`:Ϙ%Ùœ|Uİ¥"Š/©fúÃ+,À4\{½—Íì~:}¥$N­Y=ÄfÁ&Nʸšp}4…R{… Ö“ä&¬‚]íQ“¼l½Ÿç2¯š¦}PÍY`D˜·$Yäl/ NÂÖR£*Æ*E;êÑÙv7)Åø;KA_'¬(ÉçcæÊòo‚‘‹p•Uµ‡œGHÔ#_Õ]`̨#ÀÈÂ^S3ë¾SòÛŽRJÔÝ¥fc§)¹M×)ùuRìSŒÈUlÅÅ*ú€”æÕÿ5[ÆI"òÙB$€¼n#k4À±î—Ø9³zãlÖJ7¿C±MRÖŸ|ÎçìqVˆÕAñ„5Ò@ïú Cw Ý™8-z¯ë¾©þÄr<ǹ¼¨Óc8tß4®èqæê¦.‹ˆÌ(ÂÜæ¶å°iÜ ¬Ð–®;FøöWIß——q[ }òy­½žÌkgí$ }b>s}ñ}¯ð½S,zd(uõpk,µ¾±D¦úˆñ¿«tb¨Jw¾”§Ô3¤;|þôÐ4" ¹aøÞÄ3qqÔ¢ké4G CºË„æ:­[–^ÈÀ8 árÛ4BÍcZpˆøÖè|Ã3baHSÂÒ2!4Ì×^…QíMÈ?|üêE;I_¿XûW?"û~%5P‡ÚܯXgÆv•~ë$.uÖ¡<²u÷7ˆ¿|À/Â娅mÚƒ=ŠÃKŒ¡rl ÷5]wK•i±då¸õ и0¡™v„¶nh‘kØa¤™†£ ͦçºW®çpú7 ÿþ›¯”ps^¯]ëhdÒvU¬S*ˆ„ÿ=C‚êùcÉ4MÝ÷± g\œRpÅòàHÖ nZ"ôCÓ1=Ÿ†tLTÄ£0dÜâ^è8Lè¡÷´ó}S¦!+Y›TúŸc™x¯ÉMö›Íz›5î/}…¢jû¤Z·:ÛnÕ3î1çT!¾Ûæì;µ|x3Vÿ¢åàYõ¾~aëOœ%BÅÅó+{ˆç¬Ìòßå$¾µÄo‰&ak‚û©dy¡¼ö¯j<ìvÄΤäÃヹkéÈ\Ms‘¡Ù)EÑ ª«/8ü.¡ç9Œxï£INÍ7|vF§ÆHŽ$tÒ=Ý64mbZŽï_\>[nÖÆéä”i{ÌÕ,Û |M³ &l]h!7YÀ,Ïi3æšÎíàÙÍk}û`lÅ”/t~~ØT†°zç~ÛH8åB”»µÛ}Óç’'‡ô.Øšé—› ލâÛÎÆHµ"Ü÷]ÿ<ûÑ çÓ/¥%Ϧ†I0ž‚Û¾ÄÐ$q$4hæ¹ n-xIõÛëD{uï<Š}:¶þË”qÉ}ýN"LóÙªˆË~Xרl¨?ˆTäf A¼w¹$’­bdÙrT Õè¸ÀC<ÊÆ[1_dE‰PuTj¯æ•êS‹dÙ8l°HĸL;§Õ2Í@T l×Á—ëut`^»ftw¸kæHQ(й8mƒ{ž³õ"æ‡50ƒÚävL¿wë&L­#ð®f:žnLàÿ®¥_º†a+6ea˜¥E»NG¡^Ã`º††ðl×ä`_7 4n1ËÕ4ßõ,SwLÍÙŸ#99SÕ†Ç_ ÿ%‚Ÿb•ßÀñK‚ã+ÔÓxm•3F*[¼L9®J!É7ªéu>š6>x'+ždÔ!†‰Æwgq(TèöŸXJ£Ø¥aÌ÷§ Mþ§§,…–ƒw¹DnÐ>xäÉÇJ$‹Ã¢‘ªJƒ·Dk­}·³ØCê±:Øà(Á ° Eý{ˆKϘG~-5kWA׳|·ŸI*)Î8¥vD•Bøà> »r„ÅQ)DZ—=•KÄ_¬äÃ3Ê©œ­FïÙÍŽ½÷2K@G®c ×ÅÒ/ÐãØ²b\ T…8A2Ù¤l„fåèåiö„Ýð\Q_¨Xd!+îñ“#Žõ¥ÊǸ,éNªÆ|}´*å~`ªç,b‘„Ç%³—ZŽË­'ܬH³l½;.·)Då1h¶äéí’>[¤ó¸:«£˜: Ÿê]Õ¶ùõ^&RI­}wš^ûŽVlßµšHHzb›Ú!‘ÎÜ{æ ÚPïÊ6€€ðœÓÒ}bé†kk—Õ~`RXW9*†OŒ à®Þxk,Œá;‰ÁèË€; h6GÂE>&Y²k3/²¬Ü®@EieùjLòs¬æäêòìøÑÁÝ}¶.ïqѧ>K…cpHÊK–Y–Œr1$€çË!_„ A{û™èñé5VäÁ¿¹Ûû;$8Ûùe(n `œa›¦Þ…qýK§®“qœá¹¶gÀ ÇváF—!¹ .šÓ*Rµmêr÷£HDÌ4Žâ¿LÃŒ,‡¹–)X`讯;ç._™±2aiY9C€Ts–µÕÆ*…c`ädÈ¡²¶Ï¶†öt]©¼= [¾|©f«ú¦™Þ% –ãKqR÷hËþxJÚ€ç3!ØÐq béšPÓômÛ3/K*Ð>¬Ú78bE\ß¶4&¼025Ë›â<0lƒé󸢡¯_ߊЋ€/¸Tv‹ò²)ünvèyìP±ÝtÏÀÄÜ׳ì¾^ÓŸ@´ÊÒ¶„›ÚHuö>ÕëB@µPóL¥ÀŠ• 5[qo8Ïõ#$µr¢ºmbŽðÌÆ¯€¥î?&1žäxqÅ[5z\õê®gæÄÕ«›åu^¹i”¥å]•Z£› Q¶ëåH¬ÂÕïÖ"‡kpƒºØ?Öl‘šrÏHZwÑl/Òñx‰D½ñô4Ø÷c²úqÉô§)xǬ¨‹01Œd1 ·%çÁ¬gשV÷ÉYæS­‚@24Þú¿mä98<Ÿu]ig0sÃQߢŸSV< 6ÅT—»´¢)kVÿåê(ƒ¤©ªI¼­U¬|;uÍŒK¦E™åä&9¢EÎ/ѯ• ²igÆ F[’ŒÁíMÊÉýÑ RäpnyLjY'¡Q³5Ó»<^ÚaÏŠzhŸÑ«C±Žñ1ÍR†:MÒåãÅX…`ÅÀ¸(¥¢¯N*"Yƒ-¦¡ì‰dåRìÔÏó¨v¹Ÿ³ >f¡”H0ÊDÍx±í©} ûˆR%»Úài@±ªcÙ”Äo–cLå¬Íï«Ìã‘q¹]*˜ùÍ:dô¬×u4¦¡âÌjÕ¹ ¡bC’É5Û¶ºí@K zŒÓÚÆ Ú× ¸Yx¨kUA8WŒ<î¼,ŠêÓ,³QåF‡†Æ„w;–ÆäêçGwR—Å<§:ªÀ¤ª‹r!V䫎ævT„LØß;™ú:¶r‹jT`êOï%× ŽÅ€PÉŠ%i‘Ñ*}榦àŠÈß{˃é6¡òG¾hýRÒ(ÎðI^—çqÖbúÜÙcó‰îZµup³Zû¤JÅwX&»Sa›ñ,µAŸ}ÃúB Üx«»¶ˆ©'"¶Š»Ž,|qú¢*%É©Î*Îî ­Æ¬c —°Ó¥î„äa¤<Æ—ó¼É<`‰$‘ˆ|Ë4)½|EÍ’,—Xyˆ)Ò&w¥,€!‹™L&Þ(ŒQŸï$:–PšËä* 8ò:¶WfÈâ‹=ùxPU–ŽÓH~8]oäÇÅY‘À<&¯øœíŠR:§²C!¼e¸"h ôÅNNŽß0ä·!Ño—1“†Š+ƒâš,¿è2ÍÊ8’{·2Q>^3$[Ñ`À­èû3ànòOQË TŠ­H²³õÞ=”y–8 ÃP™œaY_‰\Å“KÔto¿¢5gå'‚…Â4± Wa%âàÕ\î`<0.®ý¢KŸÚGmåWTŒ5¨¢*Ï×°ÖCÅÅ{‰z}:@‚&rPš¸b.ñ¶‡e¥ƒåJ_˜t€•^/NèÙ"Ã/šSsÙô4¬80#vðUÚr¹˜ÂØ»²&ÉmýÞ¿¢wc#«tÞ˜±'<Ûã±£¼;Þ§ J¢²Ô™)¥SÊ®ªþõKÔE‚Ruµ§"úHÐM @|ÈäÌ*Ó|¡c¿ãòË)0öžn«fêŠk:7 Pæ}‹"¡¾/¡ ,ð: 0…ðGŽè51íb³tfqT»ÚótÓ=àõ3RœNñǺöëÙltäðÃÄßS¸æ8a7+%àuOC¼o]`AI3ƒE¡‘ŽB’êÐìDÌPa‘ÖúDrΦ@:Hrޏ[Z¦U¦i 90éÅW@’€½±4 uUŒ}Aðÿ´ê¡p!ÝÕÔ¸¡n™÷j->±‘‡E”ð0’4ÏÍÉA5´‚µ§Ù¶RïA°˜ê-3Í“áö93L‹ëeH¨ñ* ¸ËÄAˆè…qŽ<ÂacWÓmœàšû²VU çÁ 5èá~?°—üa O†s´WQ¸Ä1=Œö.ü™‡ÙߘQBÞž‘/nÒÈ6F‘°¡+äŽÕ„b¹0]Њ´0ã{\_—yë¿T\ÿ[ŽÛ‹0<Š>NÎ`£ÏŒYuLLwž0!Z=Ip¹ÛèåÉzËÚ¾«Ø·*&¨È#œ‰|³‹õ}mØ™qÅÍà|>%Í*xÆ ( ˆWç‚+öxÍ4Òèw_íê ÊÊ´‹²io6TÁ¯4’VwÍ£‘φùûZl"Ø®£1Z¸ãld¾2ù*Žãã— <¾Ég_S¸¯bÁQ¿šÞ‚æ´Io²Õ ¼“šƒßʦ®õbK÷+š!Ëîý.!¦~ rê^ A7ö=óŽIf½¨ÍB O ŒÛNô¶_åì›zÁí­Âh}1i'—dS¬Jv|UŒƒ  uìH¨UÂШìE×Ð#ØhrɆ”¤C«µZƒÎßv4ê±úmJϧ¶þŠÆnˆ 6W+KN+í(lˆV2£¡±ègšêGôý†l6kôI2«Fêú^km$­]NtŽ{ÆÉ\#¼ƒ~ô.FžÆlèZU!³ÀM:dz¢Ì)ô»t™U)œ>cÿN{YŒ×L°„}¹œ}H,ÔÙÌʘ÷îÜF#SY*F"¸‘éü(¤â¢p6TFhoxBX„€Ëu¨^¾¹CÄ1«¸õLUzIÒ4$ÕºxUÛ4çR©m^P£ƒ¯£"ša·ÕjBÙ”¿Bk.y žÆÈ­œSºÆzý'xM8µ.¶;ý²1Þ­rEèpéVooVh_9· Za)M Já^¨S÷`X—ø‹V|¾½V˶VgïÆ¨à ðpØÖ€Ì<½Àãº8_Š–ÃÏKÒŽØ¡E^÷{ ö™~"ÌKï9yÙðŠý]8ì4zMV•€[‚3ׯe©—- {/!6– l÷þõYP;¾•Éæ¸1áÞàž”èÝ©•n»de 3“ÿÖžù£Øáß?,¸ÄK*qæiâÛ¡]EVìž×öNœ)cöa3£ì0|ˆŽÈîçç?ýi¸Q/­ç(0)Š(Ù"ÙhSUÍÜæèÐûG¹Åá‘äïR4·•[m‚MlÁzÚ²ßðÕö·èi%·š/ò”`-øeœÛTã‡ZsÁ(Šôð&°ÝÔ‰lZ¡ëÙÑ•ø‘wxÃ(ôÇ¿Y˜M<ãÔÎü8ðÓ0Kœ $i¸~jß ² 'IH'tH>N¯ý/{õL•Ðì ý)i™ƒ`ûô}4ŒaÄWíÿM¬‘ñwuÞbz4l=7²G!•‘†6_áÒ/¬×ñbú#v¢ßn cBqà»}Ô.äbT‡ 4‹v1SºÆŽã Н× KÖSöé‡)åb…IâÇ4"7·0v£˜ÚNææ{©Ÿeë:4S³)ÃpÙÅßö§/oÁžÙÌ’øº è& 3»Ìåcî?ŽŽƒ~Ÿùb|îƒ_ØÄ÷àAEWväÅž{¾ém;òÚ™—çÌŠFv¦Ô÷fUãÀΛ„nB¼Ð²C7ȲTíæ;(çÇ×9ßqF`?§W=>Sê`cè•ûKó=joi~øói1ÿKó#f‡i~ž"ƺý²ÂÈ¿a}ý.íÑkìËŸօ[ÊýÛn‹¤VÝwÑÊûä«óIÔ[½lHlü,-)Þ¯B¹H…(W *Ô.C9~&§w dJ‘]>²¨ÒX_mDGGÏè >y*R83„Mοbm‰Á»hAõé 7`#½¨R\[Äh –yx§zC“ÖHu=\Ö%¼O9%…0ŸK€ ǧþ®;·œ^ó©+ò-¬'ßȪÍî®(;N‡l›URüæP²âgzÈ6ÆØ´ÝUtÁ­Íôù¶ÇmawÅæ›õ²‰÷ȼªÖß‹_µþÞ¢ºÑg6?d‹­ÐŠÎ7ùí½O›þ ·ü,w›ML2+ÌÂ8³²ÔMý0as}?NÓ˜†©åHÓ/é·CèÕjŒÞÍõ»¹~Rs-º«J¾2ãØÌï&öM[NS’¡;–ªG«ù‚C^Ťá#˯|€;¿ì¡7£Ó–#õ-/Ïœ =—ذ5KHFB??=Û·³,ðè©‘YÕKyp—wcòŒ rºg40/ °sŠ5; Œç‚iéñЋ*uÞmá·tí•~ ¯ur\’¶¿ Þ:xcè’‘ñìª:ÆàC*uŒ;4ž„.÷»îz/+H<Ã(wXDSV9 ã0¼rb7 /™Î)éR5Ê„Æ^æØ©“¸„Íà<;OÛÎl7÷ã IÎ,5uH[¡4·r»Ÿm3VïHJO·ã}ÞgXò…ïfý-˜õ·1G\¹~ÕŸw”¿¨Àˆ›zœ•mè2¿Ÿ‘1f²Ékhªñ/ñ†ç v*®ÚÒ¨»ª.–i†k(Ž9uâût…1ÿ2^ÜJþ¶¼Š>S.P¡°’ݵ‰]W)õÛêe舊®òëz®ì)\/Ãýˆ¶-¿B¥©„ˆ»’ÈÖp]Ö[5ãc_#t½(t_CY>á¢ÐVÇÓê„Þ%€6}+"õ5"âºì!%©m§.¾Ú©M¢Ä!IJƒ ‚8‹Ïj‘ª‡Ç-†>m¼¥J¬€4O¤’áóz)¡¬^'AÜ•®©½|þJ6¹®PÏãoô!n¶ÛbGØlí”­ÂÚ’æslÜÛÃÖÜb¾Ç»ÓóêNicŒÊ±‡ô?}ºýÓÒºŽßR¼#ÝRZ"ŽÅIþWOþñûÕÕžä‘CVT…‚¨BܦŒºµéS˜rî`¦ëA ôúŽn6šÒK̶g2‡b²ç¶·,™W¶=¬Rüí84+ëñøv„|±ÃÊ×¾C%E{NÀŪø½äÓ£~Î!´J{aõq ¸ìó—Ρ†]ØÜULM¡mëAAâ»ñâ&]ºÕÆ ›ª•MzWÁØÖ`ÉK2N…\&B”6@! …«Ñy`ª‘{e7¦wZjD®wÌNr`º¢\©“:u;k™ó+*t,‚l¹ës“(Ø0)ù ³^'P ³bÝ/pE†e3ž$ôN,¾è؇Τ¼9þ|ø“(¨$†‰¡B>ªc¢ÑNAj„âÓ½áÈK1m\vÃ@`T–ª±DçK„y¬ù–¼AöVÁ3RélÂïIÁ.×Vé>—þã=aŠ cŠ`LQ•6ƭʦÚT+®êñƒËB8œæR–ýŽÄx‘„0w)–ÒƒHHº¦Ê‚ŽúË ›àEF­éÒXN Ûù­n8NÄ™d±¥ûÍŽq-0šì ds ‚ên\¾öýV€Å…ºÏWHtQ²vg‹t7ÞÞ~o‹ªÚaN ÇÏžÖaÕV̨õP†Ôð8ƒÏ±jÚIÄP¶àj&ÝC¢t6$¨DnwT“ÆaxÈßEÃ^Ë€2DD툲¹{¿Í³dC¦ÞØÉ´k‘ÍÛ»íV HC¤Õ> :T(™}ì %<0q‹;²Ïî9Ð7xÿraÏ—B2§-§L[¤´mº.c¥<ÖYp+ÿ–uº/vÍÅP$¸¨f[-ÇÓ*fºý'ˆ¬µ=Çv7Š|Ç¿ ÚŠët¯C,êY‰{YbÇÄ'n’äQ1o#‹í8p€ËM²8R+gº|jÞ|õa¯›+èá Å fOüÒevÈ;T{@8±çêC­…|쮵Gþ•ÙvpÁ ë‚ü<¼óCê[‰oÙ”ýñ|JC‹8 hîù¡•†yùi–%ÁZú%™Ê]‡"ëú±^˜ÆÉÞX`þÇOúTÚ° àuãæÿ`FV\¬Qçúåà±öÒä¿ t‡g‰Âô¶.¤3ôkDèx›†Ø=Ú{ä0Ƙ~Dµñ@ÿoyl‹éòÚ±|lí"ÆŸjŒ’CÝ:ó®ôË>/ø¿1-x\m«ì°¡f•|¦ic`Š`¨qåyùœ¬Åx4eHÊ\2m‰Üp. ?æøKîlvf9ÙKÛ,°)`©´™Ž;ÎÍÌ>”SG¨·3ÚÎ2˜%Ö‰‘ÙÕ7ªìSÒ"†ôǰ½ƒ5Õ[~·/¾;0š@y±lóÏ)óÒ‰Œ+—Q¯öX†È%Yw&^ç^«zNç SZÄT÷ÊéLÙé°ßݾ‚¯G\‘Ll˜\Öà€Gl’MÑ|Õ|êšj KðÃin‘³Œs–ç‰iH½H£HbQ¼Å{Ú~gcî¡N° Xg Ùv€¥XØXXoÈ—Bz#ãWþMú€ú5ä]ªr™$é™®FcÐòKªÄ½\VDéy‘n—ˆæäCSq»«qºAòøûdà¹'ÏæÇŸåIOxÌç9­gúŸ—»}“îÙciAH ëÈtÁ²…ª¾¶1PIBš†î'$t;;拪BÁb5{0H/M°…Ñš<‹7žØ5í?æ×Å–ýÄ©z¸ã !x“õ_KÉø"ãCË3ËŒ‰êžƒYž©_AÅäa’¢ tå"ÆA1¡öúŠ=•dC,€÷ÀŸª”bªÒåv‚_V÷àì© bÆBlK5vŠ@uÿÿì]Ùoã8šÏ_‘ÇÞ‡TñÔÑX,P;‹éE/¦1ÓXì›ÁKŽÊ²å²åTÒýð,‰¤åÄÎá¤ë!ø‘:,‘?~÷§6}±ƒ‰‘vA»e01êàDèúËåÔéí¢h³íi±j'šÝæÈ<é6íáDù¶íÝÁð£ã쯟™”½DèFa·Oç{ ¥bW¼e•û‘¾–õk¤ã!V¼l˜e©|ÎÏ·ùìÝ HçNàVugÆ7iÉ÷VbÇO zu=ØéØ&~Þ÷ðŠ­Ì&¶2Yâ‡nÆUË|‚rd¹vœF@èX¡-¿niŽ3Ò»×#vlØ7[ï€â¸“¡ñ¾eG†&ù}Ê{¸1ø7¤I>lÙÉ6´Ú/Û»SêäûÒ¥ð{Ä^HÇòŒIæÅrHÔŒÏÀ|eç½ßv @ݯµx9|z×»^Ì=R]ÊÖi²÷ `…êR}û}Æk¯£Kpí‘=p «ô (£ù<é’ÐÍÎaÒ}Áþð&åMÇâß4µóGyDB³.«ë’•«+uß·$¶¹i?Æ0Ex›HlMDvf±¸1Ø÷€)ŽøFôÙQB›uqF2|ÒĤ¶='=´?.B=Ã!*f©48æ@@D JÅSšJ%röèí·w•=°ç ™|auõ#$ýr£³žÇ2ûLÊž’Œå Qà%Uô—â|A…Ÿè6s8U<î8AçnÙ ëêõíAm;è—c;Øí•b;>.¬¥68gX- G €EÆ”Z‚.Љƒ*V‘^¿TlȰ²ÓþQU§È˜†hj”å' J4…½ÎÕùp¿Û÷8Ó1×)?p ¤À`Ö>]3Âá'ÖÒd„Hf I4ŤÉ)Wd˜Büñpç üÄ{@¥çžo™2ƒpœ×Jùóž‘ITóÖb/yŠËáúí±ëSîÕ-5ýúz~}ëšUlrÿe„§zmÌß-ù†m4ûùôÙO¼NF r #±¢ gμéFDÁa€eLæ¶NÕrŒîçüSŽð]dD€D2sÄT–B HQ0¨¸ÌŠ4K+Ô›áßž×V«»ËeÂε¯1;Ý×­Zr›^è±h·÷IòÌrO’:+lè¸î"ÀýRc*vÛ¦^º˜Òx:7âÛÔc +5sﵡ]Å}¼³Ç g+\A½ø‰‡çì·ÖIø@†t¹Ö1ÈÛ»|Ýú¶óKïú©—ò™øÞCàê³Àˆâüðnà.p„Ö\t¢¯NAzrñ½ýMM*‚#›æ8uûÊ$EL‹á¦&"ˆCÄó"¡2KÇz¼g^#ÇUNÏ· œ!~p{ˆÁÞ$>yª^þ:µ¯~à«'ÖO†úozÁ‚Oö”Ÿþ»Å§}O8#K¦q¦í7“Qãå¥TólG'¡4¹Ök$?wenvüáÈÊÌôÂ#D‘åÆ ›SRdˆà"£c‚Rˆ R/³2_‡{Jèq_ö8îí üØS8óù,õSªež °¹fèMµöõf·’;?Dÿ[Ó½æ!Ñ}p€“°ëjЇX˜ÎÙ|Dw7‹tløÂ6lUýc7á©ØºŒ‘ wéQ¿5±±ßšÈÐ])£#[Íw&êáó?ôs¿:š×3Ž(9Ö×…„$ < ;?p-kƒW Óâq ãø(qBQ©~j¢¥4‰3¤¾¹J©JÉx–HIºŒT6Bãªæê¾hÖWÆSÇ_ oº¯ÕÝû5SHùµ£â€;Œ%ñ€ê5“øðÝö†`éGaD|=ùÁ²‚g ß1Tï>tøD牻Ý5Ácö7NVqVj† Žm„fÍÊŸw¹¬gñè*ÓÓ~¢1q+Ã@扩ûÎ#œ ÅE*¿1CMPfŒ¾4ÕdBr ãu4æQºäžã>›€á{ù‡õñºjsš ¤m&k“t~þ»‰«;j†>̾š:÷è꽨p!Y’ãäAœ¬íîF´ðœOg¬HaÊ2 d±yÞeižÀBŠDÐT(ÊS.PžÈ`븑¬a7mWÄ:ÿ®dF_ÝåG\G8þ#ÅuLoÖ/Z¬þ@³ÇÖ°®ZõÓI>^¾Ëö²êqÖ¨yõxÅÿvýQâ o˜ãC†›Ú !زÅÑ-‹Üt?-–}š]!Ÿ´W)¹ë…±hrgžaÉLôLA‚™à)Y^¤Ð"Ë#𜱷ózœ–È®¢J‘ ñôúÒaŸÞC$‹e˜}œÙpÓ$» Ñõ­ûÖUѹ>ÜØïy}O²±µžÁl\ZË“ïjÑlX¹êÞ×[š>£cð'tù‚áÙ[ÔYPsU_-ÌbW VýQî–W–u™Éî ‚–¾ðkM­öXöQc5UôsÅÉñ¥µ4wŽž0±Hºígàh“z¢#[/ë] k²u=Wj¶t˜¼*W å˳BU&1K½š¯}mQ•Bøòª&~¿UªòÈF Ù%ÎË·í—ö©š¯Ø°€Ì7;ÖnÊĈ|WV2¼¥žMúâëۿ㖭暥 Dðy@i‚eió¬Ù™2$ªF³œÅÛΟ¸VSÜDóY~Ñ ×hêÈ+jv›¦ Î×_ƒ×ÁºIçÓµü(¿íÊ?~@íÉœ¯CŸ}y{SkÖ3>ÏÎp^5ÜLCò¦.eÞ\HÿE½«Ô|Œž×ZJmÓžz!ZU¨ ÊM£•Åv©ßm³)ƒkoWlª1Œå]î‘{‹&ƒ«Me‡ ·£/ËÝÖ&Ý~þ«y_Ÿ¿S(àóûÖ^l{rer—Òb+$™Þ>rÍjŸèÑÞÍfDžÞ¤˜J¸à¢ˆç8G9¦T³?ÉD"1(H’§‚¼Ú&ÅšŠii;RÇ®íYôtâý1ïÝ÷º1=qóùÁ²ÿÙ÷‘%»ýZ¯æóÁF 4øÃªR,Tó`ýãºuãï./°}hš²E´×¶&&ú1?:Ö4úÜ–ëÐÃNŸÄëû@忪+ÆK@÷r½Zß½\ݙ؛`“º-·¡rÿ{¹"1š ››Þ þÓ¼±Ç¹î¼=Ù¯2-C¥©Þ è5Õ{…§ÎÙÄÑÍ f¥ŠAıP€) 0/²4çe,‚IÀ/s9ÛÆó(n>8࿟ؗCØmT&Þò˜âÞ×õ"หí‚ù̵¥=_þb|¯^ ^ÄQtIò„f× ÎSz¶4L³ób]r™N°„«\%IJ¥Ì ÀõógT% J).ÈGG—çÑ? ‹ù4ž [M½ &þ¤ÔßÔËÀ$¾øº[®µ,´´òCý®)ÓÁª€=³©°·¡|ožÒ§Õ‹š³Õ4*ý³Ùhð™?¼0ãã^Û$6A€¦úª™†Šì´œUönQ.žª SsÁ‘ŠcÉ&ª€‚²œXAÀPšÉóó­×í³tÃ/ÌZü^ìØã·h“ -ÙZô¨Å¢µ÷ê6gÕ®ïêÎìë–dkÄî嘖Љ/mÓ)ç:‹·b¦ú[W$¦dZ2’m«¨w›re–ogï5u­õ{S.ÊÎäm—ykðˆ‘¦9èê¾k _wT•&A×l 5š³î¨“–ZÛy‹^æÐÉKm£Ütwè•}m{'ëÅnocï”{®½ã-¼¹†ã…œ%ýÛŽkþéÆô`åúætB´4äKgP'ƒ¢$#×IF’•|Æ»¡C¼ƒÑÐ'˜`É3RD$BYI’ aRš Pº/²änµiͪùºšÙÐãÊ^ƒQ›rL—_ïv¾’FÝ—w(|S¦ Ú¾¬÷K‹MÉKéÇÔW'æIùºVö òÙă ç ú¢Gl-wUSš˜áO>œbËŸGWb¹þÓåêÚ”¨ÜÜ|‹„Ÿ½/™ûQJV=È8ö#½DÂm›Ò…Œùãø¨ïô~´½­¿_ ûƺ£ß¸$Yzc5 M6ájéùÜ~ôjH°bk=¨¹2€­ç­–ëæa¿,‚îù¶¹Ý-ùŠ•az÷¬ŸBßz¾\G¨RncÔ»2BU÷~=rC—E„ZŠ˜ F>y-îcT»ðz½Âj£Æ~Û†}Qç‚#fuÿ<ƒ7sMó$Ï®3 ašžæ¾ÝßÊÖ¼<»r‘¥š7E’i!d&ÉrÌi’*I‡ŒCœ¿šyú"S>!·Õƒë颾7s'áHÔU½·u½ ½blŸ«6ì'ªªúÚh]‰ËÅ ûŽ Ì1J®qJs|¢B»‚ÝA IY"¨F Î2 ©À %yŠhÆr¢ÕPaÑ$kÑÂì³—åvy!‚æ3 oú£Ù´¯OúþtIí} Lÿ|yCã+ó/*jœÁÚžÄSsd ½íoЇúŽ a Q®)0 óÎDCóBMÁiDÄ$ãyŠEZ0ÂXiƨ$(e<‘gJÊ‚ª7öAÿÅœjV^#ÏåÀœ7nÇïs½`¦f¤ó©ÞäfÙ¸}?‰Q }b‰Œf£}/˜ÙË‹F§b¾°`+“/¼SÚzZ3Â3³jjH+jN iõ‡F§v8Ÿ-ef«2w—‹ô«¢P¢‰¦ƒ·ýæm«U3q…­~1«hÿùëqzyõ_%8±‘~×ú¶nj^×cwÊ(tOnx¥0ɼCA˻͚•aJÀý”Šh@ÞPѾœ#i–Q€É54ÍOŒ#hiô2?ª‰È”0?{‘¾€;0Žànèë6‹®5@±á àÖ.¦1¶E³þÅŽ|i ^ %ÙTh±æO_~ýç—Ð2ëXëEc/Im»i7î?}ùý÷ìoו êá=ô †þ0Jü„âdÝ|¢{Ρ(ºEµ–¸[o÷¯Ì¥z¿Í§º'WÛY›ÅÂnqm¹£ˆv8Ø ¡Z·ö!L>yôHóí–­ËÙbÃéþá}ÚO Íþ÷—ßí©¥tl¢½ïW3-úyÐÇJÙ ’¹·»ÆL–›1¡«ÃÔS*ÉÖíVÜ¿QzÁ„[5]Œï~ï‹>mËÆÍ·²±´ºgH×´µËèu,˜”–uPWªÇï·9ô·¢ÌïK»·d}ûÙnÝÖaðºêE©¾²à)¤ n\Ö³Û¦YÏ·j&*¥å¢à<=hWÆXÅv+}f@_ÕZÜyè©Ëåð÷lÔ0s…Ž–jÜ·Ý [-Ÿe[û(·!³e¿öóx±T²d&0¡uX°ÄUS ž¨g»lÓÔÜÚmÚy[QÆè$ú3,tõPä—a±´Þ˜a›Î†ar1©•ôÉÓFÏÝEø<cþÜê_¹êsÛ†5»~F¯E[ÕÂ6VsˆúÖ@跽ƕ†«iZƒre^Ó»b¬ù¬æoz¸«}‡8Ö‰¾v_Ú ê¦a>âþ³ìveÿåî„[ÈîåÝ ~£…'>$ì‡Þ/«~{¼ßVý‡vA{ïÇÄ3‚¾1ÞÝ–ó[ë¦ß7VÍæ_ì]Yã8’~Ï_‘ \¥ƒºf0ìT³ t¦§fýfP$åTÙ–T–œ•Ù¿~IQ|dÚ骭eE0u’ãÄm³¿;EVß©búÎÐíqVYr<ŒwÏ’ÈOSh®Ó?òÊãçmäý´yu)ß©²Ô ºÔìE¥øwi³–½È¢*…?ìsµ+ŸžGb…ëú+ß‘¤ÖõFùC)F‚¹Ž%µ=qMÊ}Ó‘¤Èì`ÃHp<ÞTt_äOm§ïL‚ðž/YMªnö Îל®X#/& d[üN&Ôá=ÍK>Ǻx±»õŠ åC9݆u{£»u¾]uiŽò7«”ßO»á÷ËôEùûså ¿e¦b÷»¦Ão™>(ˤÁî·\Þòà‰(¿‡ûç o˜ŸâwSõ?W|þ Úï¦Ñ~ÛUp¶¬Áy‘•ý±ªVןñ#Æ"͹Âäî4«hU©€–„î ¹Bhž7l©.Äå€{.W‹u“¯Uƨɖ´$¢ï‚èèÎo*/ s@^ðÛo†W¥rj†wäÁ$¯EgX1»$ã+ûöF:  mœø=¬­0Û5@5ëk¢À£Ì€BÂR €D¼–ð'¾N4yËmI÷å©k\ª|XŽÕœ)ŽÔÙo{¡ßÝ·DùšO¤ÁRYNb8PÀ$ˆX·9U¤ q¼ ­s๗±¢Æòãu·Â^…} æßYä £^€‹aŒÛNüáV-l¶zèUâF±!V8Žr·]øû§÷þâŸÇ5û‹iIûËýÏ’òάkíU5›•nY ÂÄAZ_å>Ê]Ñ%›Äž{ï…q(ZtŸoYSîÏlj$Ä¢ Xà¦) ½7u³€IšDÄCü!ñt›Úo¢l‘ˆÉþÈ*aW*H®€OŸcË/MW4ǧw%ÅÁÑø©„dåS}Ñ* *[|¹qÞ‹Vy܉ÊF_éOo†±ÀNŒÁà§§ë@ǧŠó\ªø+´úΨ6E3 úDoðÁÄ{»£Ê›)A¤§èƒARãvIý›$L,• ÷2}Í/5Ø#µ»ìíŽmâÖ£¤“ 5c?/ˆõ¬"L–mr–i.•уýR;‡bÈÔéÕŸzPkQtks˜k³T¼kpA¤{|Xð€uŒ±°08@Åp>€Žá:L†ÇŒxy‚¯ç©1#‚†GH( ó¦0õäh\Ãc” à¶ÉÞ‹qÖß "qsP‡°ò•¿¼d™šuîLkí)˜¤cg3hiÀËcDÊ:c¶÷|8¼ ™/.o£n=¢”@ÝÅG[ótøé$ã´°Õ–¡¼-m»Lžâ °YªSÀäÞ“ݹ Lòè/08¦˜6ØšAãi®€#·ct.€Lë¡4wÀ1ýÚÑ¡O„B\ WóM(tÓI¡°Fo…AdæýQ:2 ¢UqtmD«ãèì0ˆVÑÄÑýa­’‰£CÄ$Ú¯qt‘Ħ²h½ÓD§ÂÄøû(Ùp¬è 3C®… Âh;›^‹“Cœ¿Œ5ÌrÐ(#xjà‘šËfbÈà»ùªG¡zs4(0ì úwÞvOl팎Ù++î!s§sÆ&úÇnùÿënyÚeŽ_ÍEeº_‰ÓÚ}O¹:û ¶áRtâöø¦‚rL ôƒgˆK91~kJž-G©KºËÅZ§i‹JçGð=0`ܼ›EãÅ#.áù¯ñ†in¤Fù‹Ü‹×°¼Éœª?ý›‘?ßÉ]ÛWÌ­–Ir­àßj¿æ:(‚CFÅdÇãD‘{ßw¼ø¼Â©òBÕIœ,É"¦$ÉR'<' Ý4 ƒ‚$c4v×q#8N˜ç7¦™ùF #„èz…ãáÑ©ØË×6P4ØBׄ ü8Dï-é }›QT@B_:¢¸¦´8Òb G”gô#ïEÑóü’ls@>„Ô‹ÝÌq(‹2?‰(ö¨À‰ãó­ }?Àœëôå°¿4Ýi[Ãg¹Kóº;¶ì›wxß”­™Qü[î>.g<ƒˆÝú¸é‘"ÂRó/hIúð£ŽÕEèwG{áLl/'mjœ\¯›²Z Q-þ”î¶ÝXšî녻ОJ„N+G¤?/~ÄùB˜â0_ÿÿùé߬®J!¶ÆÑéžy»-PÍpE—6ŽÏiÑŸ]ÀFùó™)V$Â3ÀŠG;àŠõަwšà–rÚ'pÛù-%°øªÿõßµ¦â×O\–u?×xó\5ûúÃÓÓÊ|—üÓÇŸ{_cüoþ·É7 å_xW³%QHr„!pÇ ýùòÙ–Å’ Ç`¢ç›q˜ê‘ òApNa"·|—¸ÉmK£hOYVöø~bm˾«ºÙcR8ÜY“WõêþÞ锸!jK¤‡Î‹´JIè?bâ")òC’E,΋˜0?iš…8$ž×WF¯WÛÍ¢^a”I-kÇVü[r1Kpƒ7åjdóÁMxœ1ŒæëènÅ?àþº¾¾½LnÍ¥dê[Õ=:`÷4Øû­Î™—êúA“ÄUUsÇŸ½í2àQ»/i‹ÏüÙßgåð¶°EkŠæ-Ë‹jÇÏ“B±$ó"1ù¶ñ²‡çüý8âÊåwîŠÛ·…¡ëÐȉ=$˜¸ˆ%qšxŽG½Ðw1!^GJb¯ØíšD‹'×Þ1\¹¬vù*wÍÏäÞÕeµÃE)(Âæöß-Äò¿ÿ«¼«N" á¸-t!4äBÄ&vgä0±n½n´wíé‡×Ê^=%O•=ĉäUNÿÏ`š3XÛ®µNþµñ?í«¾A2x@ûkóñï{ ‚ŽÓY¯ ( æ×æSå׿ŸÒ±> 18Gvú6É¿CÑS—Jè¥[Rã_!Ï·m‘n¶8™2ýÞÔÀ'óhßZoÏæ½–Û%Û9ËPê++D(°I“[ÏKSÍ3ûC¼bîê©YªÙñ­LiO#¡©ê©U¬ ¥Àd ¡°Gxþ‘ŸŠÞÁ±šè˜TԘΜâ”St0~Á©Źk<1{žŠ·ëcš'r&óHôi?CáÆŸk¶MÛ [“Ó9NUk7éÍ3@í¦ 1Qve]OàfÁýÞz㌱Âdõ/Ô [Œ/´SP@îDb$§Veݦ͘¬‡²hc÷ÍoÈ¥|IÒd¹É—ÖÁ$€!_Žó.y_oïsTf%{ ‹ëÍóPܰäAªpòåÕ$¯ !OÚ6±mÙˆ-uÙ·Ä4ßo5h  “ì*§fScÄÓ¶2R† d8KCd Mó|ÐåjS¦xÃ7ÌJE;'îMçß™móYlBòcŠùï쇺l*ÛÕÔn1 Î3›O'JMª_ƒ(ó;Dî,ÀübNˆC¹f#UX—ʃsÀ¾sØ&ÞÈDNÎdvÌt†I÷‘‡&ͪÒ,J!¨õwí—ns  ÞϽ‘¤3@,„™äœÜ4 Ƽ†ž¢}W…<D•(>œvؾa›¢D¹[¬!fyà|®µ²¥Ê±x­ÊaZ­^p@ ¼îëyqåf@sO/8¨Ûî׋Y1å1l†Œ±“V&ÅÈt0ÀîáN3Žv;¡$4ívh1N eCèñÿнç„Aü"£´’ÍZîbÇA^â’…Œd>õ1åÿD §I&™GÌsâu–;1G¥¹}QÒ|7šàÄõF3ÜëûN·I͘@{Ñ5,$æˆé­:´ƒ6J§ïz¦¶1S[”‹n^£nÉÛø+¾ûÒæ@cµ¢ÄbqŠàE}JÓAgÄ’¸ÍYÉä¢(ˆ‚{äz‘ëú/KÂC3+–RD .¤ALg±ƒ³Œ „2?ðœÀ BÏò®^ÎCöúÒ ´øŸ.âÎ0­ÿ0  ЀþÖvòS¬Øs^ÐØ )!mr²r˜0N¡3& IgÚˆ®g úVÄÍ9xÔyÒU½5€ñÎ+ŽÞDS ·÷œ¢ ½È‹½ûÀ×qÎRTJŽÒ› J8‰Y̨$ Ë\äÅI’ÒÔÍÒ4ñ}”,ôÂØ¢ !ô¦õöÿm"½V—G¼.eÒ’÷ª‚íèĺ‰êGçÛ•«Õ öVûm7¨±Û<°r‡í‡PéÚ¡QíX†)Û/é½ëܸo,Œ¶Ûe?u ;í²ñ1¨Ù€¼õ¡Sl+¤‚g[“,g«I­s P‡ïj2¾âGsO¡J&µ£å D“}(§¤!Žýy‰*ŽÕlEåNl‰ìùÈw¢ûÅ¿T ë©Ñ°TöhB¢Èe8aÅQà0ßãÅ æ„„†NÄ¢>'èšnSô¹Ópšê9ÿµ¤úm$L3‰Ñ7ëkÔ×#”ù$æÞ µ{!¾3\+æ8õCKþ–Ä– Ê<¡Ð ï݈#@ôr¡÷áã‘—Q×K\Ð8öbââØI]–x õ=/¢Ž‹h’%xhrÝ`H5gZþñwJì¥~~? ›ÿÎÙ ޵®^B¥[Ø_ßJËJñr¨†h¿£–_a’8rÍù@]é×)ƒ1<õúpã¿óÞÒÏ£oVcî~ïZ@kÿ^M¹kã=º•¦ãY"§¦BÌKpð¸Z…Ï«Œ ê1þ”‡Æ _pv”‰Æг»®Øæ^¤V‡IçL5§ÿe¸Öûßÿc‡Ó”í¶¦ ùáã é$Ià8÷ž:~è½XE²§f‡hIÇsG)%ö’8v ù'"$KYDXŒ‰“¤>ÊFsþDc\ÿ›èÏùXB¶a¹tJ» ²(ˆ\n”0âS÷«}Þ3íÓ æÚBxs;”¶BNNgÎ)ãAj–eŒ4€ì½(h¸f®Ûéš[ÑÝ1K2ž¤Õçöjj¾NUd 'ýÂ[Å›Â7X”ëâ@å-ãù€eÀ+^°DèDÓŽm0 ;`GlÃ!ÍB`â´,é.|>·|9= mu.Ç)†±Ò“s CQ$§Sv5Ùö±Lòή*Þ¤‘fÉ…½(Ôi… {‹ ¯‚ÕFÛóOœOb‰½ÿW+œ®sÚ×yéxn!tï{È‹ýóRÓÕK~Þ¯YZ>À:>!Æ”Ås™ã:Šƒ8D$ŽX‚þ_êÑÆ:­¨ºÛç¥-œs*ø¬ü±×ÙZÏL_Gm~gÖ äaûf¼]|]›Ë°_êsâZü™º3lØ^]Tv3/,à ˆ½àÞ C?òÏ‹U¯)TËAÓ)£—“! <ljøÒu‚”ÆQˆ#ó]"—ž”&Ìy#oÑM”Ö8IlÁM¸(€ZÞMín»âÑ7s-Ë¿Âü×à ; XR³F+q•ãÁÚ/ü|×?â¾8ª/á¨ö¼àDÏÛ=„pXæÒ$d~ì¦^â 'HMhQ°¥Ô¿-Oõ™Ö•«ÅÉMÔÖè‘gðH³ƒò¨ 9÷Í…ÎÂý¥¹©çù 84GÈ8ΜO‚°¬pÁ62 ÑbN̰óf'(\Há'€$N|›;éö‘æ4ßAG ‡.ßNÇî‹%tû­HèÐÃáHÔCe$Í’4ð#8 ßc#‡’4ŽßHB4úŸ;t¾Mÿ(Ó½¬“x¦uS?²¶Ñ+Ùÿ…O­˜t Mu >W)gNíAµŸÏ ƺaÛ­yé=Â3ÎðîôKm9³*ŠŸqCBdZºœ/z^ ”®!±Z-wºP5×tHÜÍ(õöF™ÇC¾óA\«‹¦Iè¼ÜBõš9eåµ^H]a—HŒ³ˆf¡GcFÂQÇMBB¤Ù[©uxãgÈâÿ.x™wÿ% îFŒf¹EùE‰›}a Æ[s w Ò¡ ^Éé'äÔ_6xð¾?wÄQõ°¾æE½Î‹G#í{Dw²6Ë<‘SÄmÃ&'‡Äßüš»îŸøØÀ­IRÛu<ï-&{"l³aF¢Ž)êãȨˆ›ÙNÔÊ…xkœo1x7köüHÿ\fFa¢Ž³Å»/{ðiÛÂNÒag³Ê¢äßµŸº`àÕÕ&o¡«¨x®›~†Xû¢>–9:Œ[ÜîS¬:õžæ 8¤ÌpºUp ¬ûMœìš°®½ûÆtäGžŸÜ‡QDèåñò’OyÁ@»(ñý >Mb”8„ù 9‰!옗¸q’¦Œºoåσ (L"»·è–ù*èçÖ- /É'xSH!–€qÉï)ô‡þ •Ú®þæa¿M œÏZÆ9qúþø©¸Ûyi¹‘ëßÈóüóìÞ]ãåáN½w ;I¸ØL³#?£$ˆˆ„IL¼4CÔw‚ÄEÄ£ž®g`5‘Ø59ÞüÞÑM^¬?±¦î'0?®½u¾ AI€q¤í–u[ãÓ¹}aêc¶ŽQÙ€m Pè‰ãxÓÙzê6ª_Ë .Le•ݵÈ¢ý…¨z[ÕT´š³ëU’írhqøÿ5Þ¦X(SÈÒe;ñ¾âÆ*äÙ2(w;s'ÒNÊåzeºGórùÛ•öuªlÚ§ZeâÁÿF¬æÒsS®Ì{¤Ü ú¹œ3puÆMwå×Ú o·9­&º¢Zy±z/3ŽéHäš­]BÏ‹TÝ0|âñö!‹©#ʱÝ#7Šâäeú`!^侚W ~˜"DùÅ‚ ‰º”©‡Bš¥I˜…ièØCnàvj¡ªª7ZQýzžÔ߀ïhû_÷ k¾‡Þ6ÐoËÿv^”î7!®-QÍ—°u‘%ŠDòï+&¨~(OœÕ&q)ªcߊT“:+ÜB'qrïÆ¢nÖy•†ËýTðÅQ4¿ˆZ¬Æh‹©R—‡ÑÌa^à ½{üoüƒäeÁèGV‰BƒÉ•yã«Í ÞlL¶¤‚%X òR!_¡òcœ€ïªvx‹ îpAvCÓ¥"kÀ’‹ ì1k{ü."„¢óî¬5¯¤®Ê¢`DÔ$UWCìBdw:5¥,³²h¤­Á~ÙŽ±æ¹µùod* ‡ÿÏňc_&§Ò¢\ƒ%,_Íñi¶ž½é\½?^ÙŸ²‘û Õ(Ø×ºÙgÀâø¹¼²’¾ÜÖÅRvгßh7¤¬ –NÇmí”=æP’ÉÜ`QVt¿# z–©îL²l<Ùä êvº…‘áâëCäbxsଓKo_ ±Ðˆ¹ 7YÄõM:Á=}öû0q<ò©¼ '’.ž6P>çØg¹Z…Øo !œmŽ ¸1An+îú”ÁņZ¸LÚ¤Á„”{EEŠn¥iY®·˜/ËÉ1›O3«Š‰‚I„¸Ð¾á* Ú˜îWuÈ£”wó'JÙÿ±weÍ‘ã8úÝ¿ÂïY¥ûˆ˜—ÝªŽŽ‰Ý™éšÝ˜· ФÒêÔU’ÒGýúu¥D‚ÊÙi»§\eãƒ.àyLŠj™«Ó°›Š”/:ž‡dóÂz¨ÒÈPÃKk¯ 7`ú/¿‰°úŸu ¨ ýœ‡õ„–£xû³<_ài½iƒ{´¢î~Jº³éPŽ'‰áÓM=¥è÷¶Kj**thxõx’¡duÄE}¯ÃüyJrV<¡èh˜ãimÄ 68®WÎ3’¤úWضCéU±+Ÿ’ý*Í8]£ýø¤ßQrE1rד‚Œà~ôNT½ ÊC{yXÒÃp®›HŠ´80Ò—GùÞÃ%F}!Å|п¹YX%ôa8æ Ë>Ô¯çܼ½êÁˆÝЀ9óÈÅÃäºI^å®\%âqâÜ/-GÝd9…Ó¶æô„­õþÁ«^¹­¦øÑç ±ÿQ*œ5çÝ¡ÛÚWÖü³Úb-÷ýŸî ±ozXyK¦€>û|âlêïr¿¿Í5ýNò;/z Ü0ô=3¸7CÏ1lÇ¥ê·/Ën'ƒ‡®ËfsÏ-bs—†œD^èPê»<òˆP<:×y•®þü×Õ·‚ny³úöí/oíX’J7ô±_¼:G—€WËÊæDÏüûöžÌU†R úèà*¤cÒt§¦¯åÉ» cX{ì™3qz–|üíËu%âo_–Ýð¦ç{â º00¼ór2¦ÛÕË"Ð´Ø sÏöÅÖ¢G8‹Ðö ;f>à˜öa'©¹=þ²j7­Åxº+ïÄän½F݉*,‰ãîÏ7My'ñ&G˱µ…¨g97…ï}¨Ó$),ŒaöÊ‚8%ʱ¦³é;‚ïd3ÞkQ„ž÷–ë¼:FwdY‚yVè0‹ÆAlE–åØn›,î2S„û¶˜ŽÙæPÈãÐÀ‚•‡ˆ/m…’ƒÊ »xèÄÛpˆûþUg‰ÝT*¼AçI&F¶y L£Oì³@;‚øM1u:xF‚—ì¨bQPï™Æ?+ÚzûèK‘OßgÕa-õíÅ ¼Ë¢|qÜÀ·îM'´Âóªí—Õü©> _Œ(°'¬128$bfrË£–‹TϤ>1Ç|Õ+ËŠãbnVðçµ ³ ÛÞg«µw&9ä•V^0¾€C w[µwÝætB·¼ÒFz¶{Ø ÌTW:³Êj§)SjÉ=¸ºÙE²_W¡ ÑžP~”ô¿ðŒÏ_ÚÌ&x•¬³(«,Û·<ïÞ4àÞ+­¡ï;^½¥rIHMfÄÌ€X†ã¹~Ä8˜D‡"z!u ›³Pª«gܸK¨:®/óqËàý÷!ß©Ð|§vsKYnڢγ%Ö>_+ˆ¾’†÷ÈmDPû¶Ë2ì%'¼÷À^rÎ;˜u|ØcN—‰Ì€†Ì!žEum×£½ŒnºjŠ"­÷›Åø9®ö§QzÙõ”ÄI¨ß 2ñ·bfC^+ÉÆ‰¶$Φšík΀#ö4oà´'ù¢¬ mÏ2î]Þq^a’þyÎjH¥…σ~2?™÷&ü‡«Ð´ Tܶ™Í‰g¸ðcx‘iÚ¶MÌ0 vú>÷æ[œÎªÚå¢X€È°oï¯"jϸy%4Eèïým_†É‘°/¨ú{óõ¿ºÈz™þ+&˜þÞôc ƒ¾=n0ò?±ÕõµÒ™XFË£Íõ“²œÊ Yh“–Е@ôúÀ*MíÑlæIRëÆÄD+¹¸V’ÈC!RTYI¼££Dv 4/G©6­òÒ¦Pi—·0¿õ•÷¼á…N_~`Y[Ž$®à™¯²úßom™+G@B/²WB% šó—ü¡•îΊiùäw«–tAÍéL5‘¤9]Ï7BDsÎ^|µm¤»c™¾{oú&ØßçÅF–I6jw÷zP«ãîÌa¡–áDÔñ€…6‹Í0ôœØu#b¦¯CSïj¾~ài¹ùÏ]”j+4Ѩ=¯ ”¤Öu•r…èÈ5TK‘mÅ7"V¼¬’GÒ(çß²öÁádRÞ%ÀD{J~ti]sü™>|£AÏ üÜ”›¯ªy€2Þ Zhïhjé¿þí×ÿù$·ü0…Áœ1 Éš/|ª Rª/¤ÉUêzPÔ>ŒµGXká>‘Ãs˜B}h8ê´@R[è9K«RóÎÛ"%Ø9DÕ0%±ôIÀ’äž(‰‰Y„11íDr1ÜTUÛ‚ºÔD#¬i"/7‘à²\cNš]›„qV­Gäiqi[@]‹¤mñ%/,ÙrÌÄÒ§H'ˆz1uuNŒÒCuä•G¼ïQ ~†yÁÆn'¤yñü‚Ü u"§¼(IS!Y¹[‘k¥ÑÛ,Ƀ0—ºÅÆû¾T¶-ƒ ¯õá…u¢µC¢#BèWlå1ç)SáA¸°ÛvùkØ5Õf Fp;:ºì*„ƒäÉü=l ßË$²ÌÄyÞtö§Ë^/7%F…žÔË@û<Ìb墈[Ê—¯þˆM¸hrŽª[eÝC#¥ ’£]&uA[ù=wb¾Î8êäùµºc¼;Á#í¸Ëïæ >¸EËk7/=þ]íM]‚BÜÞõ«ŽÕ8×ïFkù®MŽ«Á;ÙTš,ñd+I‚!*‘çF޲U¦w3U¢ŽB|º(›-¢¾®€z#R¦ª¡Z68š( 3v$&¬&¦DE[ k¿E“ÊÈ®nŠ,NxÊZ$J)uWOT¸„dJ ÚZﲌ`¹÷y§%ê¨öPúV.¦¸‡´Ï™jCÒ]V3iË:&´F¨%I3„üH%×HRèÆ! IFJG¡f‘Üû@ĆР÷ÚnBíl„?eIÜVÁëOWÐëlëˆuXº®?Ñl±-',±åÚW»V=oE™äŒëÖnÿfëÆh» ?¬ŸÕ“&lb KQ‹·jÞ«U9@bäª<‡%uSµ¾Ú"WŽ5˜ðñƒázàf‰Èy_xiÐ’Ö[ˆIt€E”h=ô&%‰pŒ6.O;O’ޱ)Η¾ªóKOÓ{ &(6Ïú ù ðÕ>¨¨¦Aø¯·¨?°‡YÏ^DÇE•‘¤„¨”&”ˆ‘·.hÛnEšËE=‹é¢óø‹†"WÇ_ñ,rÐ+ÐA»ä8àM€Åîøp3´ÀzTÜš+׿ÃüÊIŠÛÓLl,s¶}±ÌÒ¶ú2Ëhô-óíS–ùê’Ó„¤¢.H}€³³—™š‚ËO ÙôoUmÖâ]ò]¦*R¢«“|àQ…è ©œïs´ãiýÂI•¾hïpÇÔ¾û±Éy{÷Ôi.(­Hç®9Ã×2(Æ¡±ñõl¿39ÆB¹Ÿä3™öNƒ9]6èexfÏKàò¥’M/¡‰Ø¶…‘ÊtaÒCs¬×Ì<¢ ¬d+Û5rvÓTn)PJªL~ü¨V•ƒÆ…Ï¡­Añ'I¥–Tê`š’L¨våÿ‘zMXk¯£Ê‡¶Ùjri(„4ji—B…‰¨„þî]N Ë$áUÂïÄ ›|WÊÝØÍ²D¾Ït†ÈÐ8AŽ©Uå+{åô£hÝ bmm“m]´`ñL_ª]½~Õ­H–1wJk>oB`Ɇ×àªK,5kEÑÞë?¾í6íK5ÅKmß­Ú?»ÐŠ.„âó¯ÿ÷çÏÿýõ—C¡rˆ‚FᘾeOÃ(ÚoÞ‹ ,>Ú Ûrî ~õÃó"¤ÛÇ€ôM‹f9€Â&‘M\Ç0;Š£Øæ.÷`õ Èå¸@±¦ÛæFX+ À#%ˆË}˜9ø²¨E5‹ lÎIvÁÜ ÷7t€Bn{#~%ÐÆóÓÿíëöúè/Búd^J%u_ÖLžÚVxœYí°}VVD0†–õ’CîÓ˜6£$fŽeØžÆ4–̵lNy‡91|“Û$Aü':³(æ—ÎÓ„ÒüAë{}œäœnBÈÙâ$g/S¿t7N0Ç´4£–Q{S„¶îëWÜZàt¯¼,plÓ°}0„mÃ:¯pNû¤VÍ-KbÇ®e¹œú¡˜žEHH"Ë £˜q#öbÇ´xHmwF,î|»C)±(ÞËÖ¨8Ùj½Pxjç¾ÆM¬ ¾º´üS¬iÅZÛA:éÖƒ]#‘$Š' ÷EÏ…Á’ ìÞo*oàhº( -×tCÿ>´|ß=¯Ìjû aP¯ºXû Äþ±èØc¾çù,òL‹‰Ó£ÀqhÈ7æaärB¸ÝØÃSï°Ò\oï(Ї‘܃}#᫉,ÖËÕk¨jäîDzEõ,çV•|k•uS ÊÐ¥q»³ÊP¡, ¥E;Vì/(D•Täu‘òm¿sky.}Ñ¢d#tý{Û°ÀrÎíc2ß§‘ä§&qLÛQ *A ÙEŽœofD†Ú†Ã>JV¹’þvƒó¯¼N6y·±züóïHòÈÏ´ô)€¦¥˜Ù„%«Aß:8Úë] ÊŽÁA¢°ØY,h‘¶Z-'˜‚ºLâüuÊg’ŽÿÚÉÕD![*ÃÆr&%Ï#Uç%â…Ó2Jø* ´_¥ªà,¤O…Ç%¬ ‘U*´’°¨;ç^&£3A HDàÁ6ÓßWq¸À¹·v&M3Ï#Up©™§‰*¤mËs+Qô†¹Æü>®B…ܨÃñ®Ò¥‡i¦Ä$[ñ˜B" áMùRjcçaÚÌIg,1nºÆBøæ‰º…Ëg놈s¨¢I¼?Q† LËèKl°†UVW*>.“Ž©]2_pIXMxw 6 <%lÃÑwã¸d:>Ÿ‡TB‰¬ûè:­<ìºuŸf8‡ÓˆW+ЀªãGNOM„AÉÄ*@{..F&áls çe‘í£±|(r¬.”ë8×ÁÚÊ5º¼F|ì¼M¡›#Ï®†#Ò,6É÷†E»z?ð$ž—œõ1áê·wòÄaùƒŒ¼ØÎSM-þT3„úMÕì ðuÍ«²ˆví£ø­­ùs½¶¸^{íši’vÔÒæz‹ ͪ]ÜÊ`_°Àõ֯μսôÑ&Îàï«æ} öþàA„'ÓAŒÀ àî í$_€—ïßn_GÃ/0öíw€£3…ųiÏš‘yò¼)nÑ™¬ë˜s&² d¸Ë{Õ^N»­…ZðeOœäŠLIÃé8# –˜œPö¹!#iÌÆ)mÒÅþ¯|¶¹³vùfò×4#bO„µ†á\‚I:½ôYhÃzJÈ0¾Y2Åž(Æ´8½}Hzò œU—«ÑþºÏpèiMGR#à×á ¤ö×>ž~ïJú?Æä‰þQ0é„eÛQÄ4YuIÃåÝöÙè¬r§>ˆüšî;É5$Ãp¤­1g5NZ¤d¤o8¾Ü;†a»¶ž½6|ôâžXÌ,QPÙ‰¹o…Ìr„Ô‹ Û¶Èõ Ãt}+ Œ²'–~Ä]°ŸÛ]#ðNª0ë¬è…Ý“±=¢ßy?fì[n;\f'àæNx­?ý¦žs|ip!·ôéEÇ5®ÛŸµÈß©ËS¶fКR> €I®øÞ°ž$2Ï-^…ºÏ>[ui²o%SÒôl/ôïÇqΩq|9 =®Ãd,4܈ÛÜ¢.õ\+´‡^Äœ˜ùÄ€0Cæû½9ŠëîÖ ²#Œ6å>šê§­øNmÅÛ-X“m}@Mè3nÄÝäÜMüÄëm£ ærÊuM‘[ݯڠþÖÌ57œÿ½L!XRqÚr•ÑIщ*k7% —ÎÔÄn×K.Q+œÂ’É<ɧ{Šˆ“!µ»…ò´˜ Ú¢¦½ì˜ÑJ§Âé«Ë¢´"RüTP3ùzÕ2Y ³gvîä%«°œo2*–™l7¦áIvc{ÍjÿYˆÿ1ðÿ7Ïíó?¯Ùþ@:Sü£šŒV`1‘ÀnÇqÀýЀPƒ‡ŽÕhš&7ÍØ,ý™5ô±ÞŸ ÓÿCg"2yÀ9ÇÏ\4G¾ºæÕcB±’axöÕé§·ÇmSñ˜:™oòOñGÆ ·¥‚sŽý»*Þm–V½[pã –‡¼{(pø˜r…4”.k¿9\´ƒo»Hе©1;^YÿÿI_xÙþkÚ Ïf±<שܰ§)óëJ‚“Ô÷0sîvniZÜ¡sI34³f¢´a2J‹]Þ`µÆiY"T5ª¥%7Êä^Ëa[>·‡gvÇ‘“G0$ñò« Õå 6¹“®–$z‰~æÃÌÂK§‹}R:Âtæ˜ó'´¦\M‘1Æ£\×.Ú%)[•U±éjÉEýÆÁ(‘8i2²•«øÑ"-ªúQ®‘GA¾4\tM²ÉA›à°¸ŸVËhÃðPüÞõЦœ(¯ôX[¢Þ·JîÇ— D„n…Š )Ly•Üö”J†yøD*†ß*%uÓ×þC±´»€ lÓª°Šõ“Aà’:)”vy~û߉\nI¨¶œ­YF@"!`EhCšF)ÖÙ!•|Eœä,K„»¡¯JUM³íŒ¦éŽ)}à.ÁCÏŸTF¶¤,ÁD.…,CŒ¯Úy Ò‘²SŒo“4…VP4ßZý‘òŸJ¥R ¼–èÖüS‰\ ÇNÞÈÔA¨(ô^žèèëVt5žu< ‹²‚U»<×óƒ¥0ÆòšcC^ÌÜ"ú]¢æE.†´:€Ö@€æŸ8$¢0õ£<Ê|ceùFm྆Cç7/°ú”GÆ÷FíeјÔ:&5€ ò•î*Ð ·©‚½cºü#—z;©:Èé«Vt¨;Ÿ[7þ¬tIf›L±Ûüº3v‡y±dónáÑ®s}º¿ú$]Z”¢¨ÄçEZþÿN¾Ý)ò¦*ÒëȋÀ¶L®gùç•-nŸ}<©©‘.c.ˆ ›Û‘o2Ç7©Ab&‹‚Ø0<âù1%îP›èQÄë€ÝÖyÑŒOÆÕöPßÊ=¶$6Žv ½ ÇÌO"DX£íˆ½“çÅ’Ô`‚Éù“ '€>M ?:xúLÉæÙÒ}‹R‡”óËfá'O›Z?ª€û«8òã:b­oÒrÍö}ǹ†É™åØÛ‡µ;AâµH6Ê©za„ÄgÄsBæå†Ã¨®Å=Û°CwØ–4¬T¯í¼š»Pe ¦‹V4¹äÀ:«ìÉ6"Oµ'µ(K辚ôë·$N¨†oÿc p=˹åÔÞ“÷¼>kB)Oë„ßÜxìÑj£Å(Ø€Ð×:˜ßµ9éÚë{Y‘JÃ3†$Ó1¤<ß4ºû§I¾Ù%õÂýò¢%)Ó=¦_ER-ºËiÓ5…Ž¥âxIZó&Þýøñ¢ÃŸQ†Ö­:Žç4‰c}3´°¾ ž3Ý· Ù³fQÍIê5Äu\eAvÏIš(QS‘Ås–ì2O“=똺`ça¯•¡eo-¨ZvÉN¢¤!i±é*ôý‹½kéqGÒ÷üyœ98›O‰lf1À`°³ÓÌîboŸNµmYeÉÎÌþõ¤d§-‘JWÖ£«zûP¨*âÈx|Aƒ“Â8‚dcVböù섯áÏŽÀJ·¤šMÕ‘f¼ÅÔ>©fÒ_æùyÔ>#Â4|BMÃ÷¡¥óÔÎã%\”€•è=„ƒ…â}€éXÃÀPL ¦©Ê´%ÌKŠ¢ ^QmI(3L[¡ÂZ(,Î×Ö|‰äðYL”ÌŸ½='5™NªšýOÝ44‡ šéóf_„;™¦x& ­lb[ ŒJüÀûPØ ŠŠRÃçÄGÖO‡RO˸îµîËõ¨¿JÁ¡,bË ±}b í0BŽNãÈ“<ÖÃ)™ÔðA?Góm޲WYŠkvY¶ö “zhO&Cù0Nïù~6@q–½U©vË5´&´ Z' ƒ ÿ±·â0M4ùÝ0Ùxúˆýy÷=¯<ʸˆ/DöøÊßëÅyäÉÓ%ˆ–òžJ†%zßÝñ湓&8uº!*•)Œ°\–cQb¦¨•\I¹V&Ÿ*økí |„cûšEÚß™¸.ž –"‘ ó>À´fï\ݦk‚}ÓitßÈní·Ç»×.U»M¸|”‚î+ßÁRgé!q|·\{2In»ÛÍüè[ü–˜”ìžžòÏ>Ùºs@¬Ý8Åk;¹+w½³ãxhÝÁ0ªIºÒº;Œc¤ëWÉÓéEë§Ý~cÍfgÖŸbMÍû8Æb¨—>'r,.¦(q ˆà*È= Iù¾Ðª;Þ£ñ Á‰‘‡2\™‚¹’q¤öÊ–\òBpð6”®ð®pØYXvú´Æ6ñâ׸ÐÇÅFÕ+XêøŒ_ÍýüõïSkù.é!Òµû)VÏÈ;NÛT»;Ô‰ê×—íþû¿þ¼D×øñ‡]â•bó±²}M¬IìíáUüžòßîñËQÓ_¿[¿µ~ªêîØëñRmÚIò4ëjSÕn\…0’BÚ¸€öP«9äýn«BbЏÛìûê”­•êÑOHPÝÆ­T=u<Çå €•}Ɉ߫mj¸=ù1AyT¿¤úÙ›ã -AçìØ¹ÂÌêPÕ*AÝVC¹ý1¡Þ7ycó®M bfØ¨Ô ‡d¶¦_#;ЪmrU:˜øçTûnÛnãîq‚#ÝJÍÏêivVCqºê1Ñø  ”¼›b{§ñK´ÞÝÎpÑ;ÜiÈ *7F Q¯>—M_ÊÏ·4þ×ÿ¼ FF>EH¸ôð Š—Cž.!äž"‚zßud1¦y묜-˜…XÛ–iá‚@kØdÀä¡…¡«ëÉ·k»k}û{8ü–û_Eí¼íöÙwFÎã¢Ë¤j¿®L–’è¦×ü}ÑÃs¹=_°}§w¿-5ò]âÛk×µu¿VøºÔÀ÷—¾_`´jVwcQNÈïThã qÚ'Ú­Ÿ¶õ¢sݸ4ÍaÚh«v=m‡Kb°:¥M㯹ÇC2Sìè-vû6A¨Gþ=„7ûuò¸Ø—1iÝ|u/³ÇÊöãÓý¦yq›ÄIšvrÞ ÖsÜâ7»fzš&HÓØãÇeÏ|~ªÖa¥¯Aø‘K8ðÏýÎLW«îå‡ ó÷a bù³·àAÂO>£ëÂ=Ë‚eÁ$æ÷/y‰È' „E<ŠõÖ¹ze%\!éŒóÄ dF^f<ÑDQ)¦ýi³ü›‚ßHÌ?»2È>Ê!§7ÅÝsø¡×ìN_ížÚîñNîÍ8í>§Ïz{}د¹Þ¼t»š<q ·}»ýݧ¾PöFa| iXkð¡ĶàÍBöRnC:)Éú¥sm ôeÓ³n(É«^koO©u7ÇÛ4¡T†ÔWùOÛîe“ª¬yT€Àù†‚¦3£=_Ø–$~_½Qm››‘³æ$‰ó^È3¯Ý«ü\‡Pª‰$)½Â˜¶?«è&ŠzÑ)¿,³ÕRÖ˜]­&©¯î6AëMBNæ'•!Ïím—å¹ÔÅt‡hR¤a‹ïq·kÓ~ ~¾¯$˜úÍ@~$§/PC¹²­ß)œà='­@ËHƒ9  óâæ›¹÷‡Í¦Ï–OQW³Â²¸”ñÏê8gɆÀpN·k sx8G8]?UÝcŠ$Ñ=7<’mT¸¡eF½ú3ïV%­}Á»Ï±®ª™ùnçÌÊ-QD–ÏüÈ›aƇŽÍ-Ú‡n–z¨Ì:,NЏ×sÆg8AîÒº/ßMÏxØ›˜yá>2©êUž8# 3AW[WM“üðql?ÌÉ çTÚæ@=$H HW5;oÕK’–eÚï6sòk–7±§BPIši‡/ð)jÞ¯ß}~jhxRÑ<$~#à{]¤ÌO¼îíõ;_4ùõ(¢¯†ªáÏ7A ¿i^õùýŃ_?ï[¡†äåmÓƒŠ{ûÖtSu´ç[ ÌÈåžoϱx]¨Ä^/-0XÞ3,.ä»®Á„Dïу|äžÒŒËÄ~¯3Æ Y2QX„±õ¾†a°u†rªE©ta ùÅ*8~µOO™ì®Ñ_H´f6¢~ãGünÚØùnOGI“"eàJöã f‹^Í&æ.tzß‘èü÷ý_Ã×0µ¹ÿçAo*sÿ÷¾àñýÀ"ýñl†º>þôDK~i†ÇâjØ©ON³ƒDðw•®öàoºûP>Ý‹8¾©*³Ú «%wÜ…ÛÈEÉ´q kæ„:J-Ã_¨$Èø+Î7’Ñõ{åÇï̆œ¥ýÇ^ÞQÞ§Ö vº²7$€Þl ¦ 7>2Ž~\Z‚ȱ¸râôjQ2Fîã’¾ëÌH¶‰ºXÆ¡0÷˜“‡2G¨÷à"Ž0í(‘Æ"¦,(wL!V ¯šð ”Ï^çs@—­M\™óÙ ËïFaX´íO?ý”ø¦r"Uý“äDä™ÔšªÊý¬v0ò}»x(ýÃÀ¶Í“´ð±6÷Ãõ!zÙ©Lj3ÿ¢Oö¶ÍìðÚn|:q0"?fdÑ›‘©Ýòö'ïÁtÞTœ6i¶ÆöP¿´§‘gq5Æ©E{ŠÃZ$ß­Û _a'¹LeÕ«)©àE©„qBi§yYbA¥+ØÚÂÆÔþ„ ³p<"lÍ…'Ä‹qª:nòßFÜAÃæÐÜ[“—îÂÆì]€“ýÃÕ U··'-€­³q¡Ð «Mu¡N߭ݳ3CÞÏø;ì—JÜ ?¯Èûºp/LñÔ6»ŸB17Üñ8º ö]¾åcn ¿‚€$®+þõs>ébÕ/+ä_I°?¯‚‚/ú[yÚÄ‚¸^ªãŸ~pù!¼êƒý!öîyb_0<‹`xî.;¹ïúž±ù`Ýñ‡ýÞ ˆ%ZDÒClNüîÍÐ=DamoÀáÿáùmÛØx¾°~8Gu5þ;½@âB–ÿpûÚ½UgldOÇñs‰ä%j~„Dì,°düžÜæòæ=ŽxaW‡M€óÅ)ïˇTøìˆ*׀ޱ¶Va_¸¢(gscTi­…`ŸÂçW©VOë»-8Æ[„õ»È½\ü;,d!˜ŸïXØ/ÔûÿÑ[_ªø•-ê]½j6Ck SƒX-Ê»õºl:ø»>lüÕ‚J†?üþóÃoý)T)^a\· —sª½ÆÊ à ¡fÜ?V!Ý…žÆqQâ’…ùιtÏ¥j_j³ìžãî$B…t{YL~Üî«ð‰d©LS…þ9]úB Á ²Hgûw*t'ˆ]p, Þôùîý«–*dGsF‘Õ‚ÎLw QD¼6A´ÃÌ”³ !@qàã‚zDJ"X€Š9>c÷»82ƒ1—œKáÌfNÅþÁL`… ¤P³ý—U³“ëI¡)ácL”óùQ¦®‰ãF*SŠ’áK%&k~æi~ï>Ä5ô¦0˜aJ¤©–9kârXg/„SÄK!žëî¬2¡¿Å\!CY)©²šª\ÿUsXÚ}| Q ç¥a\‘’SŸÑceC÷`ú3²,9³ÌÍu_Z=p¡V9‚ vģ츟¶»ºqá(“e¸l¢'c¨H|oDük«·^k’U%è¾T›Õ®ƒ²¸PpÍ âÙW LúÆ+rYoÍ}Á„Þ 6Çe«¦g’’@ÌÂP)µpÆrL½Š@t£ ª”Ñe5½rÎa*YœÅåš)©­ö3¨=8­j» î#Ê>-ˆÇ tô†9|ëãhŽêã“mQ f —ÄaòóX7‡®7dÜ#¬…£j‹©U½bX®À[„OýQ,ˆ‘‚:-­))²úÐsv»ƒyìss¢]F[0Z¤ 7¼‘¼Lµ¶^Õ]ä„„Œ‚âr7Ï´ªVªuq¤i­ c@*?ÒÀ÷8œÉYªÞíhd°…Ó Ì’üZ^1oÿö¯¿ü#¾¨ %Y‡ ó`?òëÙ«VEwd /¬°,f8Ý—õ‘«b›8;`b-x$´H1Ësˆ6R%XZVØÂˬ«Ù8µG„9sÞc,´,²k°¶̘µÎÀü U`•µä[g+µì¸¾ÒYNJ‡-u`ÔEV*/ù–Ý¡†¶À®cÎ:OË-³“Þ³Û£^‚"ñÁg ‚øjÁ Õö ÎN<Ç5+¸Æƒ„R»Bd×ì•5ü9é=,3šy. /1Ê:Êkn°êQ•Ò{G9 ‡ªnx´ß‡ë@ê~M¹¥‚"b<ö{–•Wö®kLTIªŒc-Æ¥‘ú&V4 Áè+ DÜbGKá)Wtž=ÒŠ:É<–…’—R2õ†xD¶‹ub¼ FEAòYyÉlž±èmžä`W‰´à>!·ñ 01JÄ„"ºS”‡×ì">š0 `FTX$UÞ2UK·%ÃK{ ˱u¬­.³žò’{Õ6=òQ´Àš€JÖ[‡ßÐâž¹U`Uhô†ÂFƒ±àJóìÛ¶«Ÿžt ŸñóVyf¥Ú6\ ë!‚ŠöÓ ÂD¬-ÁÛ'ΊìzcHJ öF,«Ÿ_­›àÒ3€ÂEI¶ ¼4TmŒ í/}(ŸZ‘_è¿lWÕrµ?Ä¥×Ö9ÀEx?@oYtæ{n¢k7JBÈd„(`Øü¼oãêAk!=*<@P€TÞþža™ÈÀIc¬vTªüð€çq×öàÁZÉ%“ÆÇÃòKÛÙ!~¢*ì+@¯Êú6èþ ôˆâ„ Ê®ˆ`|–ɺbÙÀMÁœ ƒÉ6jf•€m«úGaK‚õ#N+iÞ+O ˜-ORîÃdÚ¢Û¼éž]íNl´ ¼Dْѹ™[t4ÒØ‡‹O |&„Q_dÝaÝÃ%Ï™pw•ÇPê¬XC÷%éˆpˆ¾Œ/¸ËÃÁÀežWšF…ÃÂOÀ8Cüm³â˜Õv¯lµë—–z<5ç°¼ùù|ÕÞF+† Ç8w OaÏñl7ÏÑti0#°cÁ!Œ… tާy|écwÄ ¯c!ÎÐyXºÝÚÕûª^E•ð®+d•Ÿ}§Áïƒ1 ¶$Ý0<;}OÕÞmÀÜõðŠâXP<Y͸䋪«¢a))cÊ#ÀMç uŽRF±¿iØ¡BªÛwª,„:Bm ˆBýùe9ÿ@Ã{o¤$/°^ÍñÛ¿ïÈ3Bð`i–^iI?d§®QûS ä£!½Á iKɲ£H“ÏyEAr›²ð4ƒÛrâu}oy è–¦°”ˆÏJMc¶¦Šz •OË%`\Y=ØwÑi)ðŸbX@ä ‘íÞš6.®Ûp(ò°J™ ¡ÿ`vAµk»qqÈX÷íHQ°ÉãàȾÛô >÷<Å€ÞÉlï_+@ŒeÂÎYva"ÓÖ­Ô^õ[(T”JÂj  BÑ´Ãf!³–"à0 ¾%Û½×j‰, ,”65Æž/¡¾nó¸«£Ù‘Š ü0•Aòïr ¨•‘+Å<²Ùg¬>lJ áÿØ»’9’äzçWð8:Û÷¥¡Ñe‚0й`¾±KÌZP Éî¯×³ˆÈ̈t*6ÓÝ#ˆ«2³Ì#=Ümyæn/¼…R%ëÕîMs“4À@yW)y‹ˆZ^ms„|° ¾"åì=:¸«ÑÜæˆ¬±GæÒz)åþÝ£ÍS}¼¡Ãé{ýF¨¨÷× OyGNˆmªrö°v¡Á’qPþt¸ùøÓóü]H–CSÕ:Åݰ=7-7Oš&V¹„ çKhÔi?žÞÒóãý„ø‘FV]”¢"µÛ÷s \¿y:® ªk M‹X¾kFs#¼¼½9,@ÎjÜvp‘a?‰ü|óø<ë DF_Ú&p¬¾×⋜¦8óD‘¥:î/T|‘×Oúõq¾p‚W´oÑxÓ¯@¼Ñó‚>³©)B—³ ¹SH¢³ÓúF…G¥’MDÙ/…AôÒ OCÎ5 }@Ö›á,©–õµb„·pTK¿yQÞw(ó ˆH€B†ënáãRö!Ùàá<¤ :wZ27˜®mµPˆ–A·\›ï½Dïó2èlIªjLœ€5wžé({/OÏslŠdœ6€ÝT·Ûm³Lx<)Ö]Hb$ÿu‰âÈ4·,Ek9‰®çtóúAàEõZ½‡ê³&ˆ]~™SYKÔ€¡€Ýô±(?Åþúéþp¿ u“è‚©€dÍÆq›_ø>à­íi>‹ ~”0uDzÑ#è Ô¼ðÓjyyª9õË·,æ•cåÈ!2|n0§ÌcªZ£Ã´ÿe4ÔÃi§0ñÔzW25˜Ã›L…Á¤äÆ¢_• <Ò™j½æõ¦Úay–M‡>Éu^~OÔoD$Ÿ=’†aÇÓ#“ÅæpB1H¨5ˆÕ¥³…³4£Ñ™6;g%Ò% ²:Fí2MS]¶2³sí»ë:‹fL£ÞBˆ)'‰n!ÔÈáeYö:ç›2òyÅ@òš4™•î7,¦¬Ö %“#¯Ðo‹|Ô8áõ‘pjððyëª5öT¥“~8ž,Ë?ž–%ZÒÀŸªží6Ø ¨‡ÞÀ—ùêáøabiå&S­XÎzàÄIëžìöÒUÂäÜ’uã±=&ª¹™Qj@ÜÁ¤Î ²øÁnr2˜cŽÅÕÄÄ*94­=¤Ùb­Z˜°„ø;´Ø[Àéã|å£àç ’0H‡F°¹W)mÂ!&$[TÎÁcãÃ>fî’¨‘‡šÖñØ?~}|˜qÒ•àà“3=bcá§—»£tƒâ „\ôBdÛÁµ³ô5½<ÿtýqÎŽO¸8Šl²Œ5ûBw÷/Ë $„ºÅ*¸Ü±¤¡KY§ßÀ‚¼nŽpLtq8_Û¼% |Ž×`¢2ÒÙ™×t`Ð4M¦‘Î!5/z1<sd$N"f«„ØùnRÏÒ|VÈ ËM-Þ$ÅKJu³ºjñ4ï¯7¢,^Y²9Ù~ùvnqZ¯zx1bR8.@»!WÌqoÃÛv÷‡i))$$YNÃ5ÀÚ~ï|Ûêó\õQ“ÇÔU!ƒ1"vV9·Yöµ« âȵ…̱™N›NÂ×÷\ø;¯)c½åÚ®Lȵvš<Ñõœù!dH¡22­•îâ,¿LÒ=¨DGp¿±[E™…yQrôÓTáà(à µÆ¼Ò¢Þ¾Hñiš •E²Ý3>ˆ>^ž!“—^N¡¾ð¹ÕÃ×yÄ8ÛÁÌs£™9;/“È£ˆ1‘±OªÏmž¹|ånNµ)MûRD„Kn;½{úùnŽÏ à ù€²®>ù˜Äy ¾Îk=×¼´ê2?™pØfY‘Ó¢&WÈ$r)üùöps7_·8£+ƒUa£òêèæO%yçê©j.v¼½/÷©~(—ïXêÍë×s«ÿr÷ã»§ŸŸÚÓT™öþŸqIñŽøy0·÷W Gz*mTäêÓ3&qýŽK,ñRÊðîðùVÍÁô»«éúK­ä¦ó§B°o(ûZ¯>ñë‡/:;½¦r‚¦×óúÛü²=}¹A¶6½yùœ§Ttz³fdÏ׿¿xÚ0°_+×¼;ü|,ÕÜNĪ6òî~[µi#,5ž«6·ƒpž¿áIC ƒq¸ŒÂÇð=¬§ÓM¾¤z/?¨Q™~A7y•Ê*¤žóTY9D-• `É+8¬ÚR¾¹®Sþ-Ëåÿ Åò%½,>ëþóx1ÿqËgš>‡Y\”»w}ø·ÔsÒ¶?OúvÅú6{¢yÐ~XN)?œe?ðŸ6%Ü+Óœ>^ÉNGE® µW’§óÚ¶ûGƒ“m_ØÌE)¶vV« £æW§»سˆ!¼×!ùÝÅØˆ$¹žýÍðÎTÉ ¢™vÁ¤Öu‰| ´Gί oW‹Íjõ«KO òø|C~\1Â×§¿Öç§£² ôè÷ª»þ?u‡†û­Ž¬J«_‘Ä<Õå·RÇf· ¸Î–‡^ü€LïñþéÃFtC‚˜¿ýðõêcyæ_?QþÄ¿—ïDò¯®åñ¹Trù„_,Ÿèã'úøÉñƒå½[Þ»å}\ÞÇé=’×ÇG8|ýSå ú§Wî|MÑX? á¯Óý]zÓEþÞ/Â~6—anuŽú£³ñ¼±\k÷ž¡»F²ò=çô.ßöóíÓ¹‡£â¦eÊ\Ù"»VŠ–2‘Tó†W«C5E{½¸Š7Ôì÷´ñß?ìÍý2!¹û¼oÕ±‹ù»–ÁkßiÚœõkptDê/†$š}¿n}­w¯3‚´I `Rú”›óÌ^’AV$—!9ÞÑ)I𤓸[AÜ‘ùó{üºš&ïZj©Ão Þ&¿ Qèï®{3â™Ü„þ„OÖÔ£]ò¦”ìŒjU÷RÚNHÙ7+áT½h¾ÒZü’²#bò¼9$€Ž\”y(;Óu„·¾d™[-ŠâÆ¢óÛšˆ ÿHêF¢'šŽ ™÷@œ­0CiWxEÑ)†„ҮȊàí°/'zŽu¼VS’2ºJ^œÞ©9¼ÛTI+A)ËóÂý¥ì5}|˜ïÉûÑá\dÜÉi=ìÇ%G&ÀÒCÚQSCmÞáÇpõB©5¶jšR^ï7]sc”OJad+ûš(‡Ó1àŨyÚDE.:3œ“1'Æq•š00/e¦¡Ñ ù0äáÐ$Y…ü'un‡ #EÚHªÚ×7†æÄƒi-‘°ˆus¨e¨;‡™*š’É!”WîòT‡V½-ôð˜ ó—_¹¿ îKpÒ2kTèšå¡åÿÞË~»3ç%JalU¦\1´o7ù.ÉÉB•È`©WÔæ’ë*À#L)«\‡ÑaÈs‰Á:¡x«[UIzèw8.]‚¸À> ¤q`ïù-!{äK¢&ÌF.CdÒs[d% ]m³6Xµ£j^‹ÉÄ›œ”s”ÓØUÌœY‚VDÖóö´(ãa_ª.áf"ã.L°V cš\âãŸP´3N=îùŠXR(DãTbø£t"ö5©$˜]å¨2§dìogB )g̸آ»¾&“8²ðy…Dk¥e1Â-‘¡¿)QáÔy×8ŽmE"É%Vàö`J+Т±ú­$NèT º¥=ÔaÇqlÉ#ÆŠ*jSVáúa œVÄ‘Œä@Ù†4^FÈaú‡t‘k¶ þÕhóPo.#Y¶ë.La¯Å‰,’!T}"5LÙ ï÷’(R —¨b­ÉP¾a`]×ÞX³GþµŠÈ¹†v¼&ˆHŸÈf.ÌÂK5 +rˆ¢ ‘vyL@B’±{ b! úÖ,Õ0åF{–àWJ‰ï1PaUòu)¾®HipÏY”h-Es»·1 ƒ ì)@h•dµ;#"ˆÕ€ÕZBï¡Ö |—‚¸ 5î/ÁÆ ¦Ck@ŒMIJÒhc~³Ý™ü‘}©Be<°¶ÌC{X?(ðòª‘Àïo(¾%} žSÅ\H^ÐHa¨g*G¦fÏŽÔIè2‚…Æá€2fçsÌðéÉ{~œÀ0ÜHDÁÈCrô×CWÑ6rÕ‚üÝe¡„'—d $•‰¹^®‰È ûm¢†rÈ(3£3«4^ðù$u³™n‘œM2"É0 3i†#¶¡Z~Æ‘F"ƒ´”sýaƒo Y¬åñš]1ÏÉ4JR… øk§g€ŒÏÒdÊé&5©6Kö±Ó »Åmð?½L7sÉ€S¼\ˆü:nTw©Ög“¡âŠSÊ’[‰ ;§V&§É†t!ºRcà$:Ú&./¸f…Xf8h£-†ÁÙ.DFˆŠ±H«5²=®—_{dƒ¤–M`*±OÍGÝ.Ä&tXø"ÑGfSÇ”Z’î‚ yw)µ!vb€&9Ä~Û_/û¶eâ\OÔ¨êåEßb~,b'ÖGL1ÁÖàø l¼½Žñ‘¼#¯àܳümv(¿L¢ÄØíO©c.ïkaz¤ˆH©˜0X¡·ºóËcy‹áqûVvÇQþ[™,¿bu´jáæ½çÒ[fÌ_нÎè8JmØÐìrÖ:iüvÅhÅä®d‚•fC²Û˜±fq(/úâ\CGCw#r‹á÷EáUð‰½A©„`KÚmWy÷˜ÞF’†(òC}Í6Œ®XZ#³M ©»íz|dln9ÀY5ˆj~$·ek„lƒüs°c·¶Ü15ŒoÕÇ$DÕQ9ÕÍÑ¥£÷Ù\§èÆlÃÐpHg$€%2¦¤í4¡ggðÊ¡±ÑB+Þ–´˜˜ÊŠDdzŠ{ŒMä¶WÎU5 !&P¹NƒŽY!àptÄ{ ¡å´Ml  MdÎ)ìU+b7ËG&FlN$F§Ð_¨f¹”[³0`8šáDÀÝiÓñæ¾ ³Æ¥7—Ây×éÅ™}á,àC³šŠv"»NNÌ x?dÅ@™ZÔ¼z ÚQð̺›ÆiDuPñîËŒ‹Äöbꔩèrë|ȆmÑËU¥¢&O¥u“±Îk¡gÈM"¹ðžR'{dY`l³QMN©W¥<1,ªy£¬U!—Ê­:¡ålÒ1àR‘²±[í™Ùz‘|ó"#“6vçº'VE6¹aj‘Ÿ9 ñtϨ&³È³ åbäêñ$}›#›ÂòÓ^›·pr”õvÓtĤh-()«~;•ÅÇbD( *<4èþ†AEK^ª2ì ·4—ì gxw_a*á¹³È.^“k¸h#¥¶h»gMOTù™„Y6Z=lj+½bL4ø5~8š6%T-cqÁ–à‡iz‡Xx~¶®783%(zrÖÆË¯pcùKBZ hÎÆe£ÔzÐàM†Ä…è‰Qj 21î“ðì½ü²,•#Á%YÞ{žr›A_±"DSXSØ<…ÓÃ2¦’¤HFÄ×sÅË–éðu[ïÕ±3Ð/‹ÑøÆ^e8â¡íû¨ï}Ááñçé©ÛЬû ÅðñÔ Q,ÉÖ€…½qÙ © ƒµz¤.ÈüÌãññÔ©ÒÇCå²2ñAcòŒæäù³é‹¯øäÅ÷óS¿Õß‘òð¯ùÏÿêysŸú§àÿ†‰Vÿå>ñ ›ã?~¢ùªÝIÅ»çÏpÛõ4æƒÃ5ÿÆÓóþÿä˜Ý’¼|{}Ò²Õ1(;ó°3I³.VrµXéå‘),3"küÛÿûÿñÖ˜'П='äÚ?Áx7ý<>?"DzïœaŸgšÄ[î)ç¢i (¯Ù˜t¨H}¶ÖF¯ƒò§ZÙÍx~o1æïRžýìä¶u™±+:NÜ{ú“/á¯/?¾{ ü‰>Vº+J/¼1_i©?N×ø§wW“äF¿¡‘t¸ùe:þï¡äS'ÞÐô ¬ï9yD"øŠ~:­ƒQ·ÿeïɺ۶Ñ}÷¯Ðcç2Ýã‡6éd2“̤u{oî“‚2kITIÊKýàã"q)K¶»×ç$¶ €H~;¾Mˆ;Ŷp£ôsPú8ÇÚÈø>U„»”F2ÓˆBžú λnÎû”G9Zõž§/Ýø4œùh…h^VâÏK`t `섚Q'J/õße{#¸f ¶øÐXÂ.âÚñ£‹¼Ì÷iy779ç°p)(F(&Ä🂼÷Åg,ëQC¬ã„ã©‹lµ¼Ïö.°‹)b˜A6)¼Ú 1øy‘ Úü<%R_ÌÔ~£P)Ž8Å;Ý~¾Ÿ|*[¦¸Så"ÖQÈ8r©h€SsSÎfK}xr]MÀöúXx”"NÂ7ˆÀž‹h„X@9„OyàiŸ3êi._HÉïW{ †WÁ¢^µzþõÓÿýöëÇO—¨ÍqFáN©ÐÖ¨nCCòoBÄ CØÓ&`ÏÜ:¡Œ&×\…ó:6´m*B‰áð‹F>WØ#ˆ…’G\2éù,ˆügÆ " v€ÂûzÑb6ì@ƒÀÿ‰íóoÁŸ>'ø÷"‘]f;ø;Û -™Í"@(" ² N6Û6¸§ÌÓ‘‚à%¢5'æ7•Rû® Áã *s@œRÛj˳T®®b•Q'×w'áM\Š¡æb߀ÒÍÏ]ŸÝn;fÕvó˜P99^Pˆ¤* Øv­l#ö´èîáÅœ¡ïC l¿ÛÏ@‰çkó¥rÆy’î(úV þɤSóΡ°nJN ü<ß`¨ÚµÊAéÝV½Ëíí͆Ùr½š'ùÉ]ÏZg ­¢ÇEÑøì*^ÎNÕ_Oÿ^ÕŒkO}*ÒSœ\Ö°z˜ñNë™,2®@vm‚1÷±ÏIÇR„Ù‘É 5Ùe|Êlv=Á ¡Pï' !^DÕQÉÀå”QÃÏÔ ÏÅÔ?¾û©íŸûm_1¶4Ê[­¢ÝjÖ2v±¶4®lm‹>Ùøj™ñ…ØQ”\.%f–Sˆ5m~ݪØ%õwwI:sî0>û]©¦‚úóîîKÓŠ Ó»xQŸ²n.O—ý–¢ o9—S¼_Û¼r»\vT]ÍöI[ÓÕ ½žÈ"}ÄbyúO¹’KéŠFý°¼Ÿ¬À]6ËŒ°ñýfÿüñ× ­êS…±2ªf bUn©ñ:myà0&x‘ðÈa¤*Ñ2Ÿ )÷&„ ©gËçûJœ„ùàÀ⻌¹Q 1ÆBrŠJ°-½"VÙbµZ…•ål–­ÝË¿¼Öé=JPÈHhêwˆèî£Îú«=ê¸óVÎç æ±^ZH•™ý6I¯³\æk‹øø,Ø|u̪í{QÛ£‚ò~BÛ0Œ@ËóÏ ÜwJÜïÉxÕ¨¶ W·:Yr•´²eµdº—02Ý—/_vHr6BÔ¡.d lÒÇjýÛüH8BFMeb( IuÊ]øv)ÓcSÎ,4’Bpå{\a…EùH„.Ïväsª®]lµUR ^#têM1zkÉÓËv:ùXéÐ&ñ©uš•ê~ˆÔh¨Ô\i§=ï«‹_cËñR§r!- ¦r¦–YR8x¶ìPª¹¥1Í/ç³ÕܸÞL2Ï-Ó<—SN‹í„óþv"¹è“êȨX%ëï(JµÎïWº¿±™R—=¾ÑüáÝ;Ch[&á]âpYLùpW ÓE¶~¸Eãf¹è¿¦Õr†É|s€'ÜMæ7ýú|lÑ £Yÿ!×ë8ì·Þ©À¹3¿ûOdzúÃuòümÙlÉ®;\tÃJ’?´t†Süø|ìà…v–ÓᆄrÃ3¶Ü°¾ÉiîÃb´ÅT¸ê„w7ŒWIXÄí™Ý‰©y×s GäEG* Ê3º:T2€Ø)¢¸ŽÂ*h sÄ£Š]OMˆã:t*úH=LÀl´ÇB\£{zÙüÜ|õþŒoÒùÈÆaz¤c‹Jçdr™†ÉÇçõ<‹,2§àú›!Öq÷2†öiÊâvé qmÑ•ÍNk“_1WøFx7Rº8äX–ʳ)ߪgÍJ‹#­HhIÄxHÆ0²g ¨}Csô3ž…ZãŸówV„þ9ÿc©>wÛ?ØdŸóJe²u]ÜÌlÍ_mç/Ï%¨‡ e3Û>ünµü‰ã_ó̲`ð'yzÑz{UÈ—,À³K¥ž3x»8ãhÿ °™ÌKÑÏ=ñ/†˜í.äRÎïÿÔ–#À²ßb™zÕ¦!}&aHâyE ÝÅ;§ë <›ôµk`ñcmÒŸ%Îvi‹uÅž?aHä'Ù5¸1š½ ‰ð¦¾Í®B$‡A¡ˆtÀ¥P­)_DXhî{!ÕÒ§ŠFÏFñ¿¹!yLá}° ûvì=‚xš!§Äž!´3Ô0N­5E>26ÓݽFÐÿ6ù Á:5ŸßjbÚõ2Ó“ï òþm+´õð£+¬aA›çÛõn6ÏÑGY(nˆ]s;w =Ð"šÍWFˆt *âÛT?#‡E’ÈÇ3M¸ ˆÁWß ªdÊÓŸ»,Qý^€r·Ÿžö O5¾5»+ßM›Ýh—ÀœgDj/”ˆ¶e ­§ª=ec·ÅñÌxg»º}ˆ‡ÉD ~PÜ,pŸÅËȨ9À€=rô‰ ‘KF%'\c]ˆ|6Øî¥ VA!>6Ιiê\¬/~r°nÇED¬q4Žøá“ER·)GdC帮¤ÅÂyUÚ7{ù~Ìw¸ç·7^=H5š~¶åÅÙ•Lõ)Ä%AúÔÓë ÉàýNC LquÒ@¾i÷¬´9¾G‘*„-ÑÉ”=Xon¿Az±zD¤E•Ê=8›ØŒ/Ø£ÃÒ >Ȳ»ŠH#/‹ÒffSæ¿Mw9V!÷¥R`ÜÕŒ'§< ]*Y©'T.dí ²ñËø}¥g¹!M'Í¥¶¡“fµ#;ŒlÂôö¡]CG‡G¤iú.›ç¶4<ËÁÜlu•ä‰åܳ긄Œs¶ÛJ#r›¬`ÛñVÒr’yªTÞîcS<\¥qy˜÷0º®ïâbYxzo ¿ÿV µBKçôÞ'’; Î+·Í_þý“Ëô¼.?l3$£¨¿äÝbnå˵%½äC‰à.¥úc§:^5ëp¾Í òn®ÒÄpÖl|$¸….C™ö›>ueÄ÷ålhHáut‘ÈèË×i™ÕrhÌ °#½ß1h•A1¨¡n@ìñ à`d|жy’eQlh̵ù𩼮1Ù:f¡sÊ\BDÄà³–^ª¤4™[‡¬b%3y«ƒñ]”ñ6þS¦áÐC„ $ßè4^-Ó»>¥§Õ\ßÄúvd–yl$¸«ävhœ‡Éð÷u6ø<ã %]ÉUgÀ(anIK•ô‼Ô1•OO«Yí@WÄ?§³m‹‘go‚™ðé!)Ûâ̰º Tz¹DÞå/x‚ý©ÍÀì33&tƒùaàó(ð†JúZ˜ )07û©(ÀíLç'ujϪRæ °0?"¹Ú!ÚÞÞZÁ<ÊCü¶U _æ–fCúTã õO*¸>o@¶]Æ!ÉÕåB.×QyUêtÍ–òý¶á2L“¥î7’^¶m™ ½{}Y.Ôk.fíµ‚m­“æfÈÿ>–³eŪvø$Yq½G‰ ÃZƒ™{œÎ[´P!†=LÍ„ zHêÈœiè§Qª©‰g-e,”gÂ:qñÃõ WQˆW"4 …ÄÈÛZêWñ‚¾nÇÆ öšaÑü Ë4O`Vß~¼‡T’ÕЉÑcŒü«û= ßô²¥ l›(Ä·ºû[n;{–û‘ÏÓDîú¼Ùñ¦½´“Ûaíð§æ›ÁOÿ¨Jž~yÿÃþ¹:ÊY›Ô¦«™aNšŽ™›Ý9ÛG°xè¸>¢dâ#ÎøAÙmÝéó§òÚ|¸ÛÛ[§ã,«Ô6òËuîpÞ¥>¶Í?|=-W"^eÆ;1oJ]^³'™ÌÁËM§m)ðèÙ'G²y“¾€sS[p‘¾[I‹ ú Õz.ûä~Ž«E8@}:#µ<ƳڣŸÂYñ…çM5ÈHª|èîÉ…üµõÎÌʺn­f@„ïþõñ?þª«Îå§8kŽ€ Ëw[§ºÑöŒpëOɬqU:g¥Í–x–B›mË ¹€ò\Û–/2‡àÓfK) ¿—¹l´þüµqñK{¯2¿((Q³ αÃÏzÑlKÔµnÞø«Îº—¿èl=o6þö˧ƕ!Õ•ÓÏÎþ)ƒ@§ggï  ê1ßfû×ÙÙûßÞ]ÉåÌ|ûf£yºØ<¸Ì“´Ùþ/}ÿ?r¾ÖͶÏrÕ¼üy­Ûý¿è¹ayí–UÒ½¾Ö÷­¦õ¼5 ¼@ôÛtk{—_ ©ß6¨êÏ-ôõÎÎþ!瘖ZAòÝ^¿ú[ÙEŠN!IV37¨ééL7‘ ™'[¹åäÏûÕ t«~þ¾ëà€*ÕäÒ-¹qÄ…hzõîXoÚbÇå1L(¦„£ƒ\œÌü¡Î”g äG“JA­eÏGJ]É‹"/ôBjŸc(yR#·l2|m_9Ta(ª>œ,ŒN˜D‡0ò4å„63Ñõ…γšZÈÜSò{k2Ü''öG}ºýyBFjÜèCOÃz(eŸ£)’?/5—Ã)‚0â¹îA^òõJPËpBQ&æ‘A‰00„ ªM,à~àãHq„ì+ß‚P/ÂÞðdž?5Hôñ§îÙ?Ý9ŽŒ?Õò£øƒ=O8#ì ƒÅz¥D/vሤ§BW ±çi³ißÄp"7ò]M=O‚²«¤þЋõÉÂ3:tu°vù†Tß©j8é#Uݳ©ºsìƒTK‡ Tµô8C¢„N˜Ï{ B­³`B¹4ð°ô%'„yHù‘aKÌ“>—®æžtU`® ~cH/ëéÅ$ú¸S÷ìÆîGfHÕòcøƒ!†jB…Çrµ®WºYÜíÂa2h…”ð$Œ{F9"DøB…æGÒ }cHa¤ªá¤TuÏn¤êÎqd¤ª–E*wâAÅ” û¤BPÐ4,ŠçRŠ„çæås­ƒÀ\2É”ölRÞ ‡°7ü±áO }ü©{vãOwŽ#ãOµü8SâL€€äð`VZÝé]¨cfgÔ…âÉW /?÷%V<]¸àv%êL°µ•îåV¼Ê•ͧjtÝØ´Jƒ_P•8YfE®c›yº7ãñ¼Zy ¶],\2a.%‡¡ÛJZB¡ùÔp 5ãQ¤q‘bTböá¶OñÑaå¸çÀ:gµŽ¡Sòÿð´¿¶nKÑ5O€m—ÅÑÍ«»o8ij?·WY^LWz>·`r{­ãáq]‘n‹)Ì0ßE‡Hxódš@(?GîÔV1&2šQÀ cÆ¢€kÉ‘(*H†ÌX‡G.C¯à½J6ŠVɱOÌŽÒ$7oì(%%ËHÕc!ÿ^ˆøZkBñ¤«BN1¿ÏªÜ¢­¸óäœäZP e:¿/olµ7›6Òho,QþªªËâêÿ^ê…aÛ£xZm¾…:OP?²‘'†;粤¹àÜà½çczª.’À|œ’A2 jv„Ÿ2[@¹Z³!â.|K¢ð[‰ý“ÝÝÖ´^\³¤“~’|Q/"íè3§˜³™ú9ŸÚ&:ž×é”ÙuzmŒ}³ÿòPK†ÿFðaãF§½kÛ™†G1›¸Ä?Ìáqo謾/r£úÕFªPÞ(žÇ£(`ÌЩHpª$ǾÏFĘ„n-_<3«{ Äé /ÏŠöœ™v‹Ëê [ÜÈMgãÚïÛ› &¶lÏJÞ¶#ÕU¿ |A¢|Tó-âE/Ðý`pØÐˆ2[³Yûô³3ÐL†iê¢(VúôïñR.•ÞAQûĪ—ØŒâF°@uƒ³ÝwŸ‚2ÌbȨiÈü;¨`ø2ž]å@äÙÄóòy*êz4òž ™¯0b$ôgZGRxÒÐ7Bž[ÑPue â2êÚ¨ö¯Û˜2Fà–ÜÁû稱‘¾×%—bÿù6ô¥‚u Ì)¡½‹ôåÊÿ°Xg…å%;ý8ý1‘ixú |çû¸Õ¯uÙŒÙ.Ç;ÛÝYbƒ (÷'Ff‡Uu_&¡,¨؈˜-•¡ð‰ŒlFr•‹•ÏŠBᇌéºQh6b©&2ᯮ/Õ\fUu'± é‚°éxØäãiÂõ"Œ-Ø@häë¢ kæÖ¬O¯VØÙNeg„:‹gKÚ¢%Ë1Q’.†{gi÷.Œ43×ÃýckÞw§ä¸áþ¢@úé úTŠk`”f^D›¶6'͇E5ƒ<ŽÙiA3@¹Ç¢=»„³õŽ]Þˆz/v´}›öKóùÄÔ3ÄüJžâ'lÆl‰‹)³eÝ…F. "Ì!Øê…ˆ ô‡B_(­\w¤¢Ï7R‰ßêÙ5;ž¨žÝ1R_`U»òt{7òS–Õ;“â”Ï"”ݹå:]Û$ˆaAaŸzxÀÖs9/k¼=D¸XêÛ,_—™;o¡¤2õ› ¶ÎrÝ®¼Â©nûí"êÆ`ÒL¨p²N•¶UdI“,“+›X= Yš:]ÙÊ|KÙ™ë,·?cqf?žÎóºzÌödO–äóä»ç-\ø¬&¯ù~oT™&±_þpŸÂˆÎA:¤ÏÄK[ ¸¦æWëE°”q›Ê]ÃáÖ¥ âÛ¤›†²è™-× ÆÊÒUQKO’t ì$a¢ŠÌßi²ÊVrÖ¹©œ(Srikظ…dÓé¤m‹•™1žwsi> ˆ<ï,?Ëޅ̯¬‰N›ÝfTóÞ–³Á[GøF”d7C7&êJÚ21ΦSYT˜¶Ó£8—oÔªò§ñG¾‡ÙÄ÷wò>¬V1“Êú•æQa" T(ƒ( ƒªJý*«wzÍk¬xûkPe^k}õ§Ñ.þ2Cvµ|rÖ‘0Ê>;BûGQ2fmÁèY&«‘zûvî–Œ1*¶mvÕ뀷×r&/[îã6YmÄÿë9dµâ Ç%6Ê|B8„±ÿ²wmÍÇú}íJ@ÍýâÊž*Ûë串IÅ–}Êç‰5À $X$Á¤vå_Ÿ€\¼I\i7Ú­µ‰é0¦»¿îéé&üœ‡ùlf‚ªßäbô‚†AÎp«-FØßÎÅZã°–1Ñi, rH&,ÅšH±kÛËF‡š— ïå|Úä¯O\º}CaWÛ2{ã€RB§TÎ ¶[¨£‘e…Ÿcµòó­XlÝ[wO»’xf‹¨~Å»i¿Kµø©µ;ãüÚjëÑ´ø¶$!5á ©²áÉÆÐÀÕ5æí°e” q– Øáý¢Å1Ì "H1$r1ÇŽ–ÄXšT¸Ô)§båýï‰3}!bçÅF3|1ïSh‡>;–M]² Ò  ­ëã<àZ?Á~Æ0b‚Œ° ‘sR–äó*ÿ¨„<`SŽíDÔRC¹@±¥ˆÄÆ`G=ãblR…œM=(J°Öìbuy>7‰ô_9.6SîízÒEÕ¤ëùšë^Ã.åo7箾3ÉÝjqbÅpâ÷аkÑÖYŸ5‡ °d(æŒG˜£ºsKÞ»¢4!=í(’År –Êâ:M…@ÎXM 34¡ÎaLŒæ©Š1q\)'9²Ó¼Ó¦^ëêJ÷S—l 7¿ï[5/³×mmy•'ÊŠ/T“3 ÜЗÛ^Gmmûñçï÷+n»Âµ¢²›¼´'PË ÊȈ(®8;K8ø»ŒÈXňøÿA{å%òRÀa‹cšj šj+¢ÄÑD0mgqì>q ½çß»váØë§®fðeš$Ï+Nî+wEÅ?QÅ?Q’Ø(x‘z­6Ž2Û;{ëfUࣼ¶Òn¥L——»ÆCˆ¦„ µMCÜœSDGL)u–1k«¼j„Ù2(QZlNsMUª¥³±b‚[£‰J-æÔˆM†µ:©~43Uü‹‹§3O#‚:4Ù¤ù—R¿ŠÆ¨íÆìS¿3¥û ™­žMõ¶t…ùT§ÎXù'Üýº*V~TcÛo¹’(ª/2®ZÖ;ïM`0¯¬'v6™fsgŠMæª/d¬‡x~µÝµñ.!;ýµp.ƒê–áí$äl²Q'g‡ 5@ªaG»·„ªP$¹7,¸<ÇE¹˜Žªùb¬¡}\Ú%lŒTH¢£E"RƱ7(¸Œ·í'\]¨äîý?,o=|»|8cs{Hvˆž@ì_+5†„Ošø«µƒ*Ó»ÎÒêbZyiTqFW¹/¦Ãª}[Çûÿ²re¦Ù쯛ûj¾ÅÝí@ˆ7‹r/¦Ñv@€gA+½1¢d(Â{Ž$È?¥òzÈ1”÷óPÒmD¹—T@JH!ÒK³Cb¦SGLÈ”ov<ÕØŠ46¬•¿g‘Ù<}ó1/n¢¿ÙÝsãahÝú5ҭǽÏéö[ HÃß–%0ì÷%ïB»¡¸?ºç‰²kä ×F·eÇq? æÑñpûÄ ûøKÙ·òaÿµ‘_û¦ä¾IÛPg­…ÖSè›ÞÇ/ç5êuìUm¥.=LǤ¡Ô·°?Hhù@ð˜Óë\ÎÎÉܪDw³Eä%ñ6I•=ùï…=¯ˆ1‘YíM†\‡È[’°X%‰ÖÈH’ºÄkx”HÿÓÛ-)qÚ[÷É©©rï\1wÓ͈º)$»³ñB³²ÄWëA|s?«Xí'Œ:§hŠxØö,.”¬ö=çiÜ·™.ë|˜Ý‰ò¦?ŸàŽ^ÒM”áõjñÍ›…IîÌóHä«öçÿfwIÿïë7QսŎ¯NØï£ß|;šjRw6b”7x±û0ÑУ•ç¹Ð¡ð<Õüœê‰…±YîGˆb·44ž’I4ÂÈþª@2UÂ<çñ„à„'mƒF¾AQž&ˆó‹ùñM™¯æ@töoß_;Amÿ0D£"Û§€û|qO²€7ÍŠd²ƒ=M4wsói Q9·pžÑ¡sÜöˆ\=ÝçEœ•®.ó~n6—gy2ÓÒD~hÛy#£™›¯º4WyMó›.!Ì´n[^–ðþ½Ê’»¸Þ^‰¢^càëÔ%T—®z*—^º›ÂF6+SóЧû©9®›¼Ù´,òÞÆ×@*o³Ø2{Ϧý¡¯ë[@´Fµhí.æÔ»£ð™Ý²ìíf —kAÄP%8|¯~®H{•Ò!)ß]á «²;íT >°à#x¨X5R\kŒÏYò)b¾ŽÕÇ1´w18©b¬dk3JcÉb™0â5QJýXÄ*vé&fuvç5ø¢ì–ù*¹m`> §øpñKå]êPúË,©-ŸM¼`èëco¹û¯88íõï üãÇ_y:6mO~Smkž„©Ó?·Gl4LH÷îžX,’¾Bm¶×¿'¬{îOЇÅ2ï?w›²9ê?û­ÙUü›Ö𠸯{ÊõÑ¢üý‡ÿÿõ—ß_{ôÓš›WÓó¶µzSý±úÖrµXïêFÅv‰† ê^jÈÒløôP—3SÊ~bâ$më²™5ÓÈŸq,WþïïÞýðÏ“y¶Ñ§}x>›öGr2'·{m§r>8¦ƒr¡Ù§}xŽôèáhéÒê×mhõ4vÆ“im<´sIvHÀhÚ¶‡ÞO»g¯¥×·,î´¥ ŒgKß ŒfÛ¯ÛpŠ”ÆpH‚oé̓Ž@e}¦Ùµ÷ÜÒ¯>ìè̓Sôxσ:c7û6çkxÇ+ž^o ­ë=2Ýlx­±i"R=HXsY—@+òÊ6µkBP@»onnmÊêÁ°ˆÑk—¬ ß¶FÿíÈ>ˆî|(Œx£H‹ï5Ÿ ð51 ñ\Rðsb>Â-(ñ/ò¸G4fŒ[J¹d\IkUŒb›PAX*ÓDÅ SB±¾ðÆû"c°Ñ3ØLAÃ÷Üv©w!zGSïUî Ô pÂr *Þ#UwGSîU®=mvP ¶¤ì Hîaæ º%Ó $iŽ”Uˆ;Š÷`áÏÇ9Õµ¨80a×Òÿð<F§GÏׯ½ŽŸË‡ñçIß¾ë0/ìA˜G°Jã.‡yh?†ìúaÌxX< %öÀÛ *<À{Ió.ƒÒFz-@"»AH·ËíOí«Ë,­-Î:÷8BÔ…ÇÞ4°DŽ ªµ4¹<¬âXrÕ†UÕ­€+&UþÊT0FÔ™àª^í9„®RFæ;¥ÌTJœÑ%:F˜ùÐ.æNH}©ØÚ—² pOrl€~…'ðm¥ï3‡‡LÎA³òe:Ën‚–ÏÕ•ò6GU,kƒñ»–éf=á.D,5§Y¹>ô#¸še˺ÙÏ÷e‘?”Ýù­æë,LY~°Á•°kÝÏóvk½}"hÝ09!šŸÑÙ",«3 MÐÏbh×ßë€JÐDP5ò`ú¬ØëîÝô>ˆ­åÌHG5VLjb­AÄH&R‹ •IlyŠœ–'ÇW5œ% 9[êÍFè¬/¤e.3Õz²#ÖorÓ¶~Í»iI‡.{F›z¢}¦ ÔÒ¿hQ ³8†&‹½ -ù"Ô¤ºzVý‹,6™¹}ÿ§?=‡Uw>À`Ê£->¢X©ó‚§¶·9Ê©%´f4ö˜ó? G"‘ ›8¦ØZMµCÊ£Çx³bÝÿpè}Iló<‘‚Ý04ÉC€ên½ùÞ ­¸È f†¦è1Æ&Z’ÙýΘ¦U MÈvô¢1‡öÛI‡¬u© ˆ%VÅD8ňá±”¥JÇJZÑ"ó¸Â;Zà=*3`ŸË ‰Ü;¯@í³TÐ~ݧ7,Tj–©r{„}íiz!YUŸáíxÿ;ogÎfæê:«]ýêÑN¶ô¢ä@°VŸ]{9>$ij»ê„¨1T Ø*ç°Æ˜“¢´psSeÔ!íȘ#hÍFsËL,”F‚èÄkºT 'Bã˜ Í ÷ÿ‰µ;EZd7Û&OûŸðÑBF å/A  ˆ'pgÞOËïA¶ýiù4F¯ýo;ÿ´\›éúþjþ ªE}©‚v–,ŽÎ'm \ÌúO1¼ÜúÿDzbmî²;œÏ…ÜCÂ¼Óø;0} ­jI}'Ôk]äeö ElºLòi½/Œ jƒ§ÕÓM„®™›éÃH›[Ó$¼Kìx|ŠÄ0‡ÅÔ3gÆeÑFH¿­Åô›ÎqÄvÃTSÛ¸›—ùËæ:Mãm½¦zºêçA]ÖÕUÆ´µMUúG»CÙdãjÄC>»sv›û+Å«l2ãqÈQ9Ö ODÆDYj“à—1æ)ç†$<áÅ8å„j…¹Ü6———Eû Lõ!ÒÝ´ ¨”DÕÄíaÒm¯Aƒö—ॹú.ôÊæ7kö}ßH 2HRÞÌ»;%Ú Ú ¤¡Ljϼçpîª4õ¨t-N ü“$AÎK¤Â"I¥"3«Sÿ×*®5œ ní&”Ÿè“¬Ì×Y"¦vãýj~28I¯wK]Ä÷ 5ÿ+ æ>1~ ½ÉÒþóþ¾pÕ'¤«h94óNƳ›MyËÜ.ëyt.úÝXè¶×‹:­í² t•œ³oóy>tèRK|ÈÎIñ¸tŸR¦Ÿ¦Í½Ö¹+LgÓäVÁ½]«¸àÒi"öš<ìq #­Žô2õ•iš+Ñ„æõ Ñnh@)Œ(æd¤™P‚žãh*“Ål„Æ|ÌFÁ™á˜Ž¦Ô ›ÄaýDXc±6Ò$R+Å\œáѺ]køpÅ7¦\’h|…ùyã_E¹š¥/9ºåÑ©eÏ÷:WNÖïk’Üæy «z^Û!©U:þDâí³1Žü„}Z«hEÅŠokfŒ*fìXóÔJÒ†ó'«ÒQa§“þòŸ¿Vé,Gïòdl–:ãõ:_þŸGk_L%³¾úÛ_ß½¿¾~Ú´™}AÔ˦#dúGWsP.ôˆ"ÂÄ9ùsÊ[…r„‘s(GÁ "!rOÈXg-F†J•3,f6aÔŠTï²âUºp^ÿ¿˜Õ›SBÒÚqøÔzóc±rŸ ž)èµËÆ>Uäà H™uÆæe;ÀÏÉ(uS²ûq ¸^Ĭ89¡8…௼jèÍ–{˜.ª™®~Ô»ðÌþ Á®ü=‡šÊÛé³Ýšå%ŠÖѺ+ #¯Ã 60ο°™—yÚ!;QˆF_}ÿ¯÷!ÊV‚µ$F7`Fxt×_·ÑîAÏÿ£i^i|N¨L™ÍV!ù0 éŒF˜ê±CdC$±H[Š=ºC I­’š:¤Lª¤ÒL d¼}©^×'*èói{§ËZæ<²ðíkÀ>”UMë(Îó©3ó>®©Ö,M½D@èºKêo·Ìæ7‹¼þìM!T1ÎÛ ëD5ëtý¾U¯aÃð: ѦYš%W?L]²,òy–0AŽí•`¼‘(¦~˜öHÁX&A1Ê%!g “‡Yž/ÊQ¨=2‡¢&4!\[¡˜bÂRËc¥½ÕhtЉµš;* !Ù¥èßdÆáŠ•'‚+mZ+Ëg[>#„€|S©Ó:Lu=;Þl§ÉÛõD‰ê‰ÒÔÊë®û×JÞ¹xusã5í†ge7É>R’58¦>'j °Ï2’s©B4¦ç-z.ó¢ûhØ•<âc eösT:gUá4„Ö(çïHrŠc¤õvºÃñvéd}ÑMíêÚgEëänÜ<Ê’|-oÝÌpݽ®Î¼®Î@«3Ë ž’/jÕf_¸èI+:{½yàzÏÍlÑÿŸõ"Ð<÷8æa—ÜüqkD›gö=kGwËÕb¼Õ»íº/y­é߉é3ïëÔ9 P/i=j(“[gWÓFä†â“4¯‹Ãä…ç÷åÀ¹Óüæ>s¨U„tHÓ9@/ãï=µCdgŠä&-Ͳ)ƒAÂ翉ŽÔ$è°GÉ Ë@\lñØ5E‘5péšÜl WYºryT%É0%¢ë[Sì"|@+ »… ’TÕз7`áQ-¸ðaL s–—…yð¶'Q1P˜Ušrãÿr$±Æyy“NóàYe’YèšCUÀ:Rfe³|c¡'•çOdxVùD³x›t$TGPà&Ô60öËW§:`ûñÏÒ·±gy@»ÄÚ‚‰pé«ßMr×ï{FA¬G—»ª5gñ¾õRsZ×xêµ'×ÎÚoÛÎ’|Ñ¿ \Z½,ü/ 0W¼†F-øµ—åf©Sæ«.jуCÅ.¶¤k¿½ç¨öÜk÷™‰óÕ²;gC{˜ [OSl-|Ú43åðY÷aÁ $·ÀeÝòX*P'$ˆ†t;Êà4e±0iÇÍQ±L™$HmbÈv‘7E¾Zxë?Ï,Tã»`Äëõ»÷a§d½ìâvŸÀ,mÓZ*'[óàì¨Ýí¥ÅG `Ú®š°XMK•^«A.€>õ_¿¾¿þa‚zÎ< ²N6mC»Ç:äNlô€±m¸êã}Ÿ%_ÈRç­—;‘Ú:4zeÝýU±òƒÛ+"ßc\îVnêÒž÷3ȵڪ'ÚÙ±«õ{䯆Îþ…„ìÈk–fòzÕODIĈ.9Ñç¬âÔbt[¡Uòf©_Xx;“ª„Ç:u)Ö""–ÂQª˜0VsíLp’ZöZê÷‹)õ[Ï’Š³Z~ˇÙW“‰'{ ³œÌÜ,/&$ûG ¯,„‘*+YÝÑsYàƒI6÷hsU™Õ¡S’¤&•˜6;åÅ$ÈïI¹´¡‹³ŒÆ(Å. 8'ëËV M-Nðú†éÇIØ`TbE¨F5á&O–ùäöÞTWgi‚ÒD¶h sãêGð_; €£IL«‘s"t*ÈzXY9©ŠonOµF™Ó%×'3#“Ø ]SÃ+L¦,NnVÞ`¯®®xʘÁ`‡íMþÃÞ“ö¶‘cùÝ¿Bw1(‡÷ј, vƒúBÀì'g¬Ž,©%y’þ÷óȪ’ê`ɶâ+Ù §§eò‹E¾“|(K!b:P››9ãó|I¾½ÙäÁR:…ÙìÊìú`BS¨ðc°„­ ŒÎ“Wà6]t˜XË; °e°K³Y¸¼æFzlü7#¦–Hâî’¦ÎëÝvîr|K^vDGÃ94˜­™q*²cØÒ>>sÔùz¤m×ëü¹Ö+⮳Á-Á’€y*"ÔíI§óÕõ"õGËbDNŒú{ˆ:_lÿÌ_ÌœåÀ‰ºÃµôØp¼ ¸¾îA€ ¼Hûö¾þ2é„#TÒ#LFöfw3Êj‡cT A"X˜ódÒ&â]l3 ÁN[Œ¦µlw;bŠŠ%fË}°`Åa7ÉEjkœõ±ÑŒÇÞoòDÀÓÞ˜Ù/¯wóà\%c÷‹A\4<(nn2ÿD axÅæúú&ÃÕ Ô2®˜í÷&öU#Dý–@‚d¢“?`žŠý†O5¶¿¡t0Ò®Y¬yr½©qJ3ŒJ`é@ìæ‘)Þå--Øj½Ê~WûΘTJïtøàÖûŒtésÀ¬ÎÓ Î*"ig577ûþ’ ˜cHnz JNSD-þ¼ 7Àb>¹°i¥&ì˜`²Ë(@óZ|E¸õá–åêAÈÀ¨GÌ—úç d¯kVn$ ![kE‘r‚£SØXikÒò$é•§®´Ç)?çaÿʨOEļRø0&[Bmì0€…ÈöÀr]‚šÏ§‹f±¼Ù†ZJ“¼—ºÐÙù. flqŒ¡ó»!¶"ƺÜ)£òezĈhIå°“Ö|Ï„º_w²zÓ-áÆ†Í|@jL±¬ß9ÒÉœc)cð¬ÇÞ÷Á©®ê‘`ú»#¢•ÊI?€57ÎeÅ3%$ ªÇP‡ ØêAö‰Nw{w•Ç@Vñ`:ëÝðöÕ´©õ®‘,¥®ê0¡%ÕÅص,’ަ2èoÅ“2ò®•{oVm¿„Õ…%é<^+Ÿ} °Æ8oU‡Õ&ëi½ÙÕ:Ã4êfg3ÝøÍ~[KdÅ-Á¸Þ§Ø–£È OX&[Eü`® òlõ6Ù½Ù|w±1îÌ äïô­«ïš‘þó¢Ê€/Ñæí|h5úÌ‚G#âÀVfŒsIωXû×fåfùHn†/e)øFqͰö Y´H["`ÖÖ»¶Ü…`® ¢±jOåÐø¤9L.)CNÇ»·¿üßÏ¿Íñ JéCä7¼ÅÙá›âgÚù‰^×TP%*]ZÀ.-jVr˽ŀâF‘«Tt²ñ'èê8³RîB¤5 àYuNíÓDÎ,Ÿ¯¦¤K¥xU½íÀùkâ#è3éSM.@ÂpÍ1gž~íÑïw¦ØoÁé“ÔV£ÛëáRÒ®QÌx†(Kÿ°^¥ Î^ì@KV#,¥¦O•t•Á«ã ‰é•¦rF0äœÚ«*cRµ‚Å3Ð8¨ ¨$eA ‹F`.‰¥ÌG-Á2×AI{˜èa˜‹`â Êê[Ó‰i]¦sßÕ¿ð[=‰ç ÆÅŠÎýý×ÿ!}?h¯›ç©r¿®Ñ»ªÑûlgý“43¼Ý§¢«9­ºó)Õ/“LÍ(S #1?]/kW‹”ßë’ †ÿ"U k0ú£ Ì)-CÔr‡¢1ŠjCŒÌ+¯´¶¶-`öÔáä£Z?e2™)¿á—Mò/7à2-é½ÓÚX{÷_ר_5Ø?”âÀiÍ9çŒÚ]%ÍùŸ?|š7LÑ܈-HÒIürxªê͵t¥Ì…”3ÀZŠ3–v̇õÍT^,’RŽPn'ž°©Eð\(gÃT;Æc QĨ`¡ ðÙ„íõb—.OwOînÒù:æ×‹Ouõq÷à¾sÿ`÷ þcóÏ?¾Ãdàó9î;Ÿå™RB”gå#zx]SD•)¢Ç Þ\ƒ¨NG~»WïÒÛ^½É×ã¯þ»yt¤ä—‰lx¤$| >Ð(ÝÖ~:šÙN–j+ù<6D:$‡!…b¤Å‰êéTÉ(TbNg3qαJýJàë;Ó*9`Xÿ&¬P.pk§˜2:Ï… Úaüxy7A~Gb(*Ñ .6ñ•èµL¦ôY$Ì/H|I£HjE›$®‹–ui«è ñP´5ôˆàLr†´•'Õ¡°’!×’Ì(:«üWóŸjÜ")A AÅSK 2 §Á_6U¿`,Jê™À … xUKõ«ž}^êû¢·ò%Ž^ÙèÛukIòÕÛ™YùÙÛ¿ýíIØ~žÕiæ/•âDçìœ;yx_íR Qä’ãºaôœƒƒk‘&ÄDÊæNªêM%±Vzï¸î§VãžÊCö‘â¿_´~H”ÍÖþUP×2¢e *£ÚðÚ*’¯­hï&Z2Kƒ±yTÂ…3Ò£²4©ê0¥Â¥’ŠÏ4=ïÎ ^°XçBL=†Ø%-iV2XC)Á{ª¹ÂR+­FÐh%A›ˆ±gæ9쟯Ȉ¨½ãXÙ6¿ùÇOs4°FݬØÝù=èoêÁÞWõþßEã™”"eŒùRÒ–/ÖU%;ŸqÁg#z£ßu'ÇJ àƒb}ô>D…hEµB%Àˆð$jg¬ôê‘b%¾E¦ƒSS˜:…¢“¸yÑÛ©>j2üШɆéÄA§Z Q³ÖÀûS)pbŽÔŒiu>zÖŠà­Ü^!,ŠÎ†(÷Ñ0c÷Øs­Ѓ©"4t´ð.™ÿ?Ç׃º}‚ëÝM·~&X+Ô·±BÁd:è?+‡}ïEwä‡Q2'bô1Hä\ÐÊÐh8pÀ BŒ F¼áÌ÷n¸Î”ý q’Ý=ÌRft2Ø_êû#ˆ‡‰L^× a´µÌIT¤Z[„ÀÔÀŸé0þ¿ó6ɲ~2îüecG‡—’ñ9œ8ʹî þŸåÄî|±˜¢Ý¤d‹Ûúê}XlÐ7nêß ¼Úýµ{u Ç«‹ñ®Qû%àíáâpy¥€ñ$! Ÿ‰¼ÛtÒY'Ã.u0/Ô<¬r*‚'Y1RŠy„m 6J÷L–Úã““½åÈùR4Æîa =½_ÒWd°mRÎÒÑÊeúx]SHίu;sè&’Ë¿g7+·]ìÎ,g?mÂê×õÍÖ…„UªóÛU˜½Ù¤R<³_×qŸ2´]6Ò#Ô‘›/Õýï³.%ÄۋΈÖgFm,]«Õ³JipÉÜãJkŠ” VPfáµ8„ˆ°pÜE ±ÏÅ?&¶ý%ä-˜f æ‰éx[±K>tß*±”ðic ¯XÚ°¹3Êû=ÞlÊ=ŸÅ~¾VÖ6ÏK†GÎt›m¢Ÿ ®ÓÐVÍzRR<Ž„¡¯Ãu.â…î m?cóa’!E$°§ú¡êøy…ìû`®§ÊXë3}¢r™@rÈ1Oû# , ™È¬FšŒ2žpÏü¦œjbÇF;zû³Fß;ëljZÅ÷æ¸àWì¦QãgᨸEÜ:^ŸW uÏ0Lºåé’µ;¿7Û.Eôˆ !8éŸì5“©ŽS)øÔ2-RÔ„&ìÌüHÛý|ù~“ èK’Î/i1K’6<•FõÁzE©}‚{«yЊ†HP:Gv’G{÷KPýE›ñ 6ÌI‰8LyÝàJ•qeÊ{áÝ?ýp'ïÞ"mIx?ž®yªêN¥ ( 4w¡$>ÓPoßÓæ(:̱äuî"´@„ÆÊ e¹µQKágD+³Ú¬ÆœA¯€ÏåD÷Í t@ü  ]à/,ëPý/ÆÐÃýÉJJŸƒû…¼Ar Åõ¦Ô¥€‚;“˜Š $9óâ§}Ùá˜õ”” ŒE¤˜^YŒƒòÒËh·T‰”=8l@Ìu\tF\¥wõø-ìb¸æ{Lê˜!I)öâé™òáüôkŠJ@…óó03{}웃UN»RP[ðàTxÝáô?ꤑ©ˆF–qî Þk¡žíäL—b"œ*rÆAêý‹=GDèöÄÐWb#¥pÈ ÀÞ)ëþn[@êV z+¿BNAôÿ<@íê*\ÆiÙ;wjÚ¯¼)5ïRIõÑ9UÃÞ^7 .å‰ú,×¥´©]f9äæéȸÇÍë TÇ×üJ0ÑXƒxÀìì Íkjýê0?Z*u.’ÒEa¢ ð>?©^›Ï}ÔÊï@(=žzÝÙòI8C ¿‡nþy@KŒ»ÃKŒÙ7¾‹EÐe³“lw :xÉ$³îpä"sþ‚ Ìu3Ü×&øìi{š³ž`©'xé &z ÷°Í>·2Éo<ØdEû>áÇ­é/¸¦y½Ûµ]¹ñ!x*™nŠ Îôº?rVZò0@• ¡sëþC…ç¨Juì ½äS™•™Ž ì4‹´:» P–Sú§©ÂÔrÖÚl0lЦ¨Ç|ùŽÉšÌ!à#ñýõÚß,ÃDçÚþܾÐù•¨x-‚”>þˆ9í>ß9[ò4¥Útñpt“®$ïQJ;‡ª3ƒ‚¢…–3L™ gTï½§U@Ú9–<É‚b8˜øoö®­·mc[¿ûWè}CÉÜ/@²4=è Ðîn´}ð›1WGˆ"ùHrêôןR¤†ä±(É–/èCc’šY®o]gÖÈY¯$`–)h¹6L:ŽÄ‚CÃ,Ù»m†bg%D]xåP•Ós<Ͼ^뻵6ô#s7÷vîÆ{Wx²´÷„_§3…Â<ü*UUÓ™!E2Œ ƒcA¸‰©±¢’^,…›+¡”¢DZQÀ˜5ÆPAÝÛá#'QðÔcý=^Á„ç¤`öψwîÂÁ»(7ý£ýDB¬VT]†e[©»âñ¢¯Ôq{t8»…<&nºÝ±ˆ~J`f8àMR92¦§¨Z5i9›sl…ƒ\gã\IŒ-&’2d#å#jÌéºn<°'ÝãK“'äE¦¬ß·œõlYMfj ŸH]_‹W©¤*E¶#+³ßIHá ¼êìØ  cÌZA¥²FkA• rÉ:Ûbi¦ ÅÚZCåIv,•W/öè]ÒW¤¹Þ-IÞ4 êßœ´±Æ8ù^%Ȇ¤<©cë³±õV¿©Ï³©)zâ x 7¡Á̈yÉ!Q¬hµ!R'Fx¦˜ƒJ;ÆuÒÓÇ*O¶}“åׯËE<ø¸Ûåö8½­o×åÆQœÍkÝ7×õŒL¼„ɺëÒdÁ÷[&œÒèÌKˆÃ¦Ý>؃‚2h`.¥cº£"çʵàr¤2hÌT•àÞšKPsŒ1qTbÅ=Ãã¡UBH#, Ö•ðÂr/ÝérmpÖìLK$ø›x2J-žf’Úá[ž=0ØDN' H9BNU'¼¢%ƒŸ 9a˜ŒÝn”pã”–ÔÞc¯™ô±—.Æ(ÎÁÌ+L1ÇÂÕýÊÊWÿwµ”O.@p¤-¯UB~dO4YðÑ•VIǰÒB  E£3E™î¡´’D d90T;!†Üa4U Ê- NM»çƒGp>~°¿Ê;BzüFÓ †lê¾^[%ǽ…¹u “‘ßÕCY¿‡J•ý¸¾‡J² Abl|b;ßÊÑa…ê¬Î’˜ëÕ Ô¨¦:Z Û€(圢BnFÏŒ;Dy´-ºœaL cËQ•s•<Á0›áYì*Œ:†¥¤è¨I°£žrç=!ŠìãÆ†S™ƒ1ã¼áqÌ-ë/aWzÊQ™½éM†ë…ÞV©ü¬\ø`÷ ?ŒFÚ–˜AœA.žÉ!@‹’}cX@{Ë™à*ILá{¬\Ð%Ä+¸ *†øXë=rp.à;à0´š­2åçýr±)׳K_9·ù~ãºD^Ûò4n]ý2½ƒ°G8Ø/W7³;}ë{îÏ–=7úå͸#2ñæf€Òµ¸^æù ¸U¬äÀ}¿Aù»Ï¸dÕþ}ÈIM¾>Yøë^ÁرÒ0P2(@L(pl<Ö@,É4 ÂHù$%Q„erØ¥¡V(¤4›¸qŠ+Í„è±Ì³­_5lòw\ãøŒxžh2Õûµº..¿æoì¸î}ÉwÓ’ïŽ]µºœ¦ÉÚí£rãî¶´MSÊr­n)a“ðãÑ{sªyªXQMd.b szÄa…°3–ˆ‚«¹¢ÅÆÄ÷øÑ¢G¯š•â톘ÞÙEŒh•½ßA±À‹ Ó5à×L«t¦yWÍsä–]¶3,Á•­¾šÍ÷H¡šÉ³ÀàÓ †ã»ålUðiPQ)â‚b¡!Î:Ž‚ÿÀ¦øØ41©•M‹vµ¥aÂÄ/<ŽÔYüóÕUphHg (žfÄcó}é\÷ÒÂÛXÇ(§­sŠ^CxGÃLBf RÒeÇÆ‚Wæl~¬L}hiÉûYô^3Øl‚äØ:‡Ú©ë¹‹Iiæ ÞC6¼â¥ L$ãÌiäð¡ðˆ3¯-1Á±ž{Vú1ÑÌpóîë¼]ƒö¥%¹k®Üý«Bªøö}ŹSÒÊi×MÞUÏÜà J3q—¾ýíÓ_;LoÇK±Ò  ØØa²¥sšP™Û^B$ 2‚b6®\o9Kmö AÙÿk ÀÞ+äÒy„¡Ž0à¸"L¶S3¥näÐv³ß|ß|^.’Ç^°ºi|><ÖvÏ#qàDBÂÆu@hrÂ0#â¢e=Ö‚j‹‰íìip´ ~²°”«\rM\›» öca·%èßñà,«þzþà'P2}"ë‘Jeœá"í…¦z93ò¿#sa%5?€e˜O¢|\XÏ¿Ìlì~B` Nd¡¥ÖÆ ë#¨€,xSÉ È@"0Õ 9ütšÇ&»½ÙƒR%çÕµ `…ŒiTrÈû-LE>-R[ü³§*ÅùõÍjy½Ny®SD•ñF¥’†éŽ‚Ìù4¡Òqç;Š)¶v 1m žÕ”j‰ÆJ¨‚š‰~>FdT¢hš+X±Îkˆ']ó^þUkâ`fÛš7CGGr"Ù ZÏ—æî.xÛob4áð Êõx„2‡€F;AY°±eÔÁ ½Ó\hÊ¡æ=y¸§å~­éŠ]±²ªhP4¢âúµ1Wë®äL.ÿòñãn–èÚ¿L»)Ï 8Þë$rß3­U^¯çù…Zo¬ù׿ºo‘^ÿxyùá§OW°©rÓ'ŠY//¯Z_¯ç‘¤8úK‹c”â¢(Ö³•ÓB^\Ô¢¤û)*ÓýQÚØŽün÷ЈTO®YW9n[¾µÛë‘VŽgKô´Er®Êc±æ ¬[ªç·n³\n>ã°æ,ÖvÌevx0È‹ @Ht½e€HŠ SÚZä¸fX$Ÿêˆ×3›;ŒÝº.R¾èîKX&ÂbQϜ Ó(Ã0ú_µ²± åÛß–:P:h·CÔÙr14SQ4ÝÒÓÅ å’¨Få#‘²\,õ2vÞÃo¢¿³}â,$Ž[Chܸ€Ã¥ð°€q¯Å¨îÜU;«ÅuÙ.0Œþ° R÷þ¹q«"þøû?Åî:µ¸ñq¹cÌ×¹'¶oÓG™Íì›ÚÌÊ ˜äì*pÅëEªöA§ßôX%ù›«i±Î´=n;ßy6“2¶[%;ÜzñSqåªü¨èÙ!lÿu¹˜}q««`ñ ã2¿¯%C¬œŒËR³]ó—»W¶Í½Þ„/ºz»Ø>½»Õ`u»˜þß­[}ï<´ž«ä¢3Ÿ—Ûᦨ¼¼Î¸þ¾NªænõHç ÷Ë7Ý¿üb^¼·ì4)Eó$XýÕë/“«º0¢1­L8DñÔ…v+ú@î´3–BE$GÌ)å½ Þ9„ƈ ð 0iç•hŠ¥ª£WctÓ”ÛêöØk—¯½3´o\úŒLoKâ^É Rüt‚[mq¹ç7oËÄ‹6RöÌP&@·2Ä"#ªšÁ5™¹ýyˆ6¡”J12†VÎUÕ ²M5´ÂIÄ ôQ¨ ÕÎ.‚aÊ-ñTPE4ª{v•O#O½\…·«þ¸YÞl^x4·«Òvùüô55ù º»wÝáGPzUåáÕ'lÂ0†dä.ŒíTKóΪNH,Ãt9G­† IA˜ÐŬ jXôsvý©W›™šGOu>[|ùÓmÖÛd8âØ ó ûZîõº7×eœyP>8TÐ,ÍE.{ ™ðëó1KóÛšÇ~ÔÈ(ŽÕîÇ‹˜ÛYI_l>“7¬¥ „¬‰–T *0Cœ{L<=Æ*JP[ÂÜΑú{>}üŸ.¶3þÖîÂÌEu›¹hÅËõl“ÙÀsinWëe¦µË¥U_Õuîîn“™#,•[wƒ9—³Ì³³…[…Ñ3c¯Ô®ºŽËUL”äÐ4»¼gº®f®÷\¾µ³¥ŸÍ3 ®Si>HÔìùùã–Lo+ôçÖõ3ò˜¶šÍo7³2Œ×$÷:ŽV®ró œê·²}ʺ_ÇÏg›v ð‡ª±üêrÜSÜ0jñM­{oóù{£Í‰Ásæ÷¹žêrœ—еÙSÙ%ÓÂðéDsõjù÷:Xsõõ[o¦ÛàÌé£.m»¬½m”aNº†cñÊ»—ÊuÄ ð¢'.WE¥ž( ÊDæš}*kˆAÊ;Õá áP@î9äNM¼¤PËØÉ‚²•E˜ Ðn­»Ô¨ËØ6mÓeÏh^‹Gu¿ÝÙ eÝÑÑmý›S»=Ú¶­d»ºõþáäDSædN÷åT^NÓuW¾Êª©†²ië˜D…4ñNþ>ð^*f{Xº%RÑ*XVv³2Fx&F]›ÌL_VH ÁlB†b\Ãz¶$NÝïl+€˜PE¥‰U°ƒà4Јàok먶 k¼í:Û;?{ÞŒT6ÃÕ[fL*['wRx5/¾ðw÷;¶¬‡óµ’hu¿U@9‡uÀz ž$„Bˆ)Ì8„\hƒ@PCn(pB;ˤ” ²økèè5tô:z =X¿×(Ïk”çEyÎÆÖÚ%ôž€¥U%ízí,H`"‰à|dÒnc6±,CLXø¶‹ŽØ¸2Ôj Œp„z@ÖA Xܧdb`ÅQ«l]9ø‹6õ‹E®Vb—9wêµ]m?¿?ûÑ:»úy+ \|dþ\µÌáÉÑ'ãä¬ó¾œi¤ÇÒ0ÄEã écw&‰ÒÈiÉQ‹•v\ôÐçaÎnœÁžå ¢ÄÝŸ?Û}åsd¬â’÷\"Ëóïã aŠÙ„rF‚ LWuu†PÇ!•ÂBi„ö @'¸Xx¬UÁghèZ¨Û­`#®SIÚ†‚¶öÎI¿F?ãím`.ô«Ò:œ(CH!¹·ðŸ°“h‡Ó fn¶O‘óŽko¬'4%‰-аž ¯,°žà$æØë±Çg –ÿA™8GÁ%ïK>™|Ò€ÆWÁ÷¡ŽÙæûÛ+ó9ükqý¶¢-Yé?üÏì58°³Í‚›5Ó„–LI(›ˆ`Œ«³YNQ&0jÒX®Ú«°HHʨ5ÔÏ‘—ÁÈF*0+cõ½K2œ '6>øüÈžœOs`ÿQ÷¢F®ó]äXºhqT$Öì§œô®)Ý•zD¤±Ni[—u‘V¦Æ’s-Ó±†ÀÈv,q¢ªäÎ*²Œ‚²TËØ –x‚~"„Çâ¡B!‚Kžº³©èzÑFN½ÄýroPå·ÛùföÕÙ™jxºýd·S»ˆ!’‚6©œV4fê±!ƒ¹û7ŽËÝÆ ®Œµ !†YbÏFɰfÔrnñÆkã qÆ $ïO5†¿‡‰·7+îW õYŠgeµæ­bÍ>þüó‡+0ðTçJöYÐ…ô£€¶$f¹PFGC6²dM1ÉZ©År6 ^Ì´€†I5á 8²˜Ï bCY¬˜UB=ðŽÒãYñ™A²â™žµhÞ.Öã¿þøðŸß?åàÙ|:{µ÷7gÕš A¸ráTí8¸~vÏ×Eÿ0A«È TcáK0PTÅwÜM´BÖ@',Gs µ{´ÐÌ9ÈÏ%Kd¶—my¥ì¦·ä|ÊOP,Þ~ü<[¸µëndêB#Ã.D6zÿm3M(ÉD-‰„à‰dˆ°QY~½r«îšáEŠX.8eÎg˜³b†ãÙ:í‰A@ Î÷nc|ê‚2v:Ÿ-nï¦á¦Œ´#h¹»C˜yC·üÝ`ß¾ N侞Wñ€íj5š³ô®àz ¡VìŸi`²óI·³¹}NéCôÏ©ˆî Ãã“ðã‘…ZëIªý3[òr }†§[…4„k¬¤ÐYä°³V¨ zïÈӉ࿠¦e£¨'‰ÒdVMðœƒ6È>Ç}9™…ÙB÷¢Ë§ nQnÓ9…8.~;;'(„Œfñ[íÉ©ΠR{ž yŠïÓ Ka Àƒ Ùµ$N †FN*ȃhl”MêNv„å±Ù$¯UÎ<-ÑXñ†© Ïü?{WÖܸ‘¤ßõ+ø8û¹îc§5¶×ãuDÛãð±»/Š:eº)‘CRšöüúÉ@G¢ ªEª'ÂŽh¡€ª‘_fVV)»ºä·®Ý­_½n³¬ñûÕ‹VM¤ r¤ß$ýÿ¬vɹ ›D!ó+ˆr &-X—"McHIå„“Ô%‹È¨Bޏ­§³ÙýâÂÍ—!åé­.n–aqá§1VV Ÿ¨ƒþD6wý1Õ1’¶ß®ï¾xn“êÇ>ài~¹'‰ çV`{Ørg)k;Ã¥ÓÌ®-ºçgžÞM÷=°™»H¨ªš)4‡ûW¾¨š:sCç» ¡M™:¤þ fºÞª{…P߉Ûá¼Ó§ù\±{¯Lȸ §L 4²1Ž[Î]r\‰TßëK–+‚¥˜ŠA /ƒEÑFÊÁˆHi0˜€ €¼j$Ñ•ÓèZô$dFE¼eÏëñ´¾0™S•·—¼\ñÄUÅEÅ e¾ZÁ>b~ÍCž”¿œáÆT0•¼–»û´RsÊ•m<”Ðã’–ìüV¸SÜD¢BTÌm¬•”1Ìa;h•ØH¢³þ|Ú #kô¹JòÔü.Ãò¤É*Zu`FjàÚ aBŽ=zh,Uí@”æÚ=£Úo´eÂÆÈ• ©È`9Üí@ÞøöëŸþïÇ_®q»½÷Íâ¦ËåuŽå8D<#Š9O¥a<8oP„]3þŒƒ÷:2æðb³9ßpWÔììË¡æ‘ÆFµæhÉ¥öHS@µG6’ªuµ%²FWíI³öç,6úF›‹7%Y';|Y0Û ÖfÎöþÎÏÂ'c=wƒ’Y1¶£7'ÀQrbLŽ ÈH¯]íf÷J±è¥UAG¬™•Qfà—l ^sï0Qî…Öï]ú\ÛðÉÕäsü g Ó«ÏX©b^ j\oqþÎUQ²}樵1azPt’Ýób µÃb/$ÖB€N×xdEoÂíü.åÎ`2!ê’åª%ûkÁÀp ;[‰ˆ¹º•æ Ç54züæ“[à¿x¡PàSVQUu!ÉîBß°aÆê΢dÇ®»¼žì]=ÛŽò}ÎÄz¶÷÷ê-Ñ*èUÓXì(Ìi*­Ø„¤†®#A¹,àyà7‘êAñl§ê¨B°ËGÛf¶ðÚ²H´6ÑI$ƒ„PurY㊛dk*>ΟÂYùT“~  Óîò·_}MÛ?O&d°xk`ÈŽ>J§Ý—xèž\­§á[.õ±ÃZ^O¦Ë²Ì­´¢AX&Ÿxv‚9…ÿÆ%Ry[°k^»kØ%¿$h"å%Í¥ËB!ó3¥ÖÑ“ªx(¯ˆÄÔY¢1îÅ*ל¼K´Û‰/+AаpÁ{äÎðMƒçtXš˜î2y>.ºxUó`QòàøÊ8Õ¤m†î ÕL¶òš„M22ñ›ÀíM0V)‡ñÀkP˜=¾ÇÞIÎmÚ ›mĘaÎ)pTi.GØ.ç¶Ÿ8Žùñ,U?ˆ½ÏuÃâí¯-T·5lÅçM`Sw °{A \H*TØM2¬Eòý+ŒÇ9Íêu*÷È#À”ë@@v&†0E•N á¬X ìæO} .³·ç*óvëk³ôö‹îaá§»½ŽÂÑ•Ûk?_cÄ™]ŨҩªÚ8ÆNÝûŠ¿¯iQÖŽIñDòRäÒ ¢TÊ"F#Ös¥äþ-¸Ôëè"S˜G._éX+Ûmó¹-3‡Úbt¿\÷·²/ÜúòÉÚw°]cf>²ùb~óžÛž4âRå_·™ŠÎ/Wpy¶¯ßÚé½Ý“·üÈx2›²åª’.E)]Ž–cºO‚u"…À´-iw â2Q½ŠÐäU>r+þûÃý,ò ¿4Èô²®g®“±°Ü0ÁµâÁ $(v’c¥÷T1A@òÆ3 …|B²Ê¯ßï‹PJ'A“6{Ší½øþáE¥Ô9En‘QjŸö‡o¢æªÆM*mÛnØÙ:«ÿvi¿MÝê€aÛÙ[ˆìvæÄª]'¬ASÑ (ãÀSBØt°ðØÈMÇì6p×ú©T 8—šŽ¥7‘xŽR”tTÄJ+±Yå<àH…³çjt–ûÿÓVس۾¡¯gã®Õëå<[ê鶪õ^ògª;= ˯g÷+@^ ¡ùï/9‘œÝ¶¿J‰¸ ­~¹‰–¢AIf¯¤åNÆ–íówa]ŠÚH|jÑW@ì€BÇM(QZŒt¯?°²úšH}©sŒ#-A8Zð‹ 6yòRc7ŽƒáoU ¯ÖÐù2yfŸo_+ÿ :`uýT”\õľèçÜ-^í¶æ¨]£è(TdŽ´ X©‚„ãDoHè,Òù¡©Y;ÎÖåIuÀ‘˜è•:òȼKYÚ(5؆x¹)é “Nþrµ™ó4BˆþöÓW¥ë¹¶-ÊG …ô˜åúzv³˜]gŠ˜šõ‡ò»öˆ±ó»¹çȬGL:‹1ëiµÛg™[î§¹Ç?¥1ÓåühQHf:K¹ùå3팣›4[õ®íßáÆ(>bœ/˜ ƒ×‹éG{Ƨó™ñahh¨<çÍíÜßφ»›ß†ÜǪ|X}XÏÕ ²ƒ3wf5ø|žÊ¡‡˜lnn=@låÆÜó‹/ÌÝÍ<ÏîåPÉ/{Æãš ŒÎ«"V†r‚œ«Ó°Z”ïÅÝ|=SW‚¯ ½{´ëì-ÇŒ•ª£ÿ²•ÿð[‘C¬Íöå®`§œº*Á^¶©2ë勯â™cd.9Å&!ãÒZÃ,ÖajhBÅ%ÉÙ •©ÃλˆÁ¾5œ˜TÌJkd¨ã1 æ%ìfØ¿SÍ?ß3$`£MH%ªÿî –’×6w%·u‹Ó<ï¶=3‘¼ÏÛ½Zrœ´2!ÓE“¾Lý8¦ Æ#n{ ³¡æ‚/]°özÈÉx° ¶¹õˆ`Œƒ–"8 4(ÎÉëé¼ðAÍÛ;b©ø yØÑEÎE›Uš°¡(›Þ\ÇíÆ"&êƒgs²£5!Ä…˜(„ØháT‚ò .z/¤c\‚nŠJú¨4Å„3O¤Æ ·`Ÿ­£ä3;©!»Ê¤ºøÍû¿þúËwïî–§ÈÝ€½áñ[Èc7ÐÇn`ÙÿîŒãªø å‡ú;Ý6ÁÎÀéjÃt¦Ò4.¶ ç:*j”pLÇâøÎýfîÊ8Føî“Tâ);åõÔR¢…kƒ|TSºLQpä LSÂ7ÅêY“㦜÷ìà}`ÇŒá-ùB~õ-3èß°Ný‘‹’yÁÆ ÎÛðM“{›4JÚ©É(Däzt+N'ŒJ9îl4¬|RÅ øõPžN8(g":° ¥äÞ3ÏLà†3)ˆÂ^ÍoFÃj~狺ÒÒ_®êÙ?}8aIGƯظþåûŸ¿¼Fí*3¹ñK´t-è˜{?GXú¼ˆÇñ0v*ÞpWÇUÉÇ^ëgÎ<XÔlÉ-`t5šÄ²Õ?#QP4ÖÏc&Ñ„ î^^Ü㣻U¦ïÕ±zA†ÛÅ”N’/4…Wdím03*ï1ÕùH±1”(Ƭ¡œaä¤Âö•ŠSø¢lFWÙ…è}êÜè>Áð)ÂãÂÇ…ÉH€cÕÊ~Ñ*Z—²~CFO‰ô®ítì f®*Ô$lޱK2R¢š¹ Æ^&-¡mQÑRì(É%g®øD2Fè¸> áã4VMJFõ%ζËâšK-qJ ›LìT& G¡m¤HÃç½mù\£ì•b¬£‰k]m™«(™ëYÇQüÚk…Ai#i‹6¹ê3”5Q’c>ÒOË4š¶ïT³Ý¡@•×.4‰¨‘eL§!Ed$‡ >ä½Ñžæ>\ÐyåôíppÑf‡WGTËýÑ÷@A ôkÆF&®ÂZ¤`)¬6ÍBó¾b+L0ÔƒjñAá ±âÚ`h‚ a¸Šâla'c7î/«øÊVåìMÇÑ'$¤·c]ÕX䪆HQBäh%WËéÛèë•„ˆvÄC¢¨hÒ“+Ó.µûU2¥ôXÙ¬ŽKCO8°B®f¢%^¤v ©E8"E¹"Þh$‚5Òz#¬ÄgSbõmTSõ'­6M¸(?ê^þþoÿÿÝû÷_N~üõ«÷ß}=ÿ¿ùáço&úþÇ÷_üðãûÿØ27¬Ö⟮ýGY»IaE_Ñ .§ó´—ê«JT/²©×°¡.×MYì¢ò*PŠÐÀ×X0â‚€³uˆÃ…S1þò&ÝÈô×9èL§ú6m>¾è~¹&·›Q5çxúæHæî5ªb‚b’aîM‡-í™r·ZP•ÚU¡Ñ¢{Mâ*¹/AÀÆ—9ææ$"fI1;Öp+,Bø<ä¸r`Ü ¬©tg#º?Eï½lŸí³Öd‘qÍ—ü3tTN{à¬Bm{Úêõ`¶År~³jrjWIðt^×ÂQID±#!ÛÍ 9!XÊ‘•ªªUꉽ8¢QJRMp°!ó„kyd‘*ŽÚSEs»Š(ÝŸ±ÁY/s6â¿ûÃ2Ú³Œîñ\W‡§ìe=ªb©Y "Æ)¨–)^„R¥Õò´*w*”X  9bŒqÎc'`o®½@.d ÄÒÓëÙú4aÿBI©'$ŠoŠ,Íâ?ËPxꋊÊ éEÍeg¥&SµìHƒÛ‹Æ£íú%_e'édä•«½;lµ‚(óg±7î÷<›wó0mç¹–ïQô‰Ë0¥„N(Æ#sþúþK&"¥¼]€y’uGFSؤ±+ öTÄÄ:ÁƒÐ[‡4b"¸m4ôËc+‘>¿ÊÁëH™='PzÎFYÅwý_eÃWG%GŽlgƵ»—PÇH«/@½xÑX:wΩaŸ‘ #;•§UÔ#€ÃA‹£÷XjQ SK,gÊ:ïžSùÓK:œ˜Ö{±mÌ“=Ïó››NPæÛ×ÈIÓ$ŒÔ`¬Ëæ0¹S¨i¢w›™Æ©ÌQ€UûáŠ){4$¡#U$Pµúmu¿XÌ—ë Bh"Hv—¤ƒÀ.0Ÿœš"aÄ©‰R:Â5ž"/ìJ{ ôžÛ¼¸Ÿ­2ÙzËÿbïÚšÛ6’õ»~³UKyîg}ª;öÉÖÆvÅq•Ï“j®2ê²"åØùõg ˆÛ$AQ"eW*‰ˆ ¿¯{zzºß¾ÿÏ»_Î*1´<»›Rô›•L´Šòò,JÌ$JLJ‰½Ë7¼È·y›’i!¬ãBÊà•”úY“r ]ŒIE† dãÊÕùÙíÔο^.>Â<¦Yd¸§Ö-¡ÄR@L¼Q8èQá ³a¥”.üm ¹7;r¯\ïQŽØ‰ðI™?»XÞZo^Æ¢§.·ˆi“ö]!/v˜M/]÷ÖÈçc¶”+tu'#uä;ÄoZV»7ª£ºjÎí 8LJ›d³̤6””Jæ”Ê LÇú7Æ\¢<`$2™Å‚,Tˆ"©ƒ½,,2Ôê!’JfÕ€qàüñøþ÷ÊûGë>w#do {¨•˜tuôåû`$¡æûé´’ÁV:ØÊ[yºµþ£Ý£H³Èóà_"G-ˆ 숊w¨£¹mö ëŒùˆ&Õxë‹Ðp1Ì0·„~®ìmÜóË'+†iI8RÈkA='Ly ,’Ðaª‰B–xÀ<à¿[ÀØ0Ñã ŠÒpÚ‰ÐÏeäY!%AwKoÓ•¹NÚ{€Hc÷Éêæ P(q tÜ.â˜y’'ò“rgã‡$U÷ÃymÔzÏ€ÖŒ2Bvä‚8-QxŽäÞ¦¾»§â~\i´÷˜(û¾³aï!åõe´v³‰º¾ž¹¤JÆëd6ëbOS³ã1»|*6l;|j<ùlÉ”“œ)Ké»Ûë§'×a¾­Îº´?ä}ÑäÝí»_žÆ“ÿq2É»44Ç«÷¿>yõúÍo¿45GRo¤yº½Ê(¨l)ò¼I}Ô©%ÎEÆÄãDµ•Ñ&ƒêDzeÃh=ªÐBÎQ0å˜V\iÃ!…JrªV!·éOpY»ˆ5 CË?ë¼ûÍ¢t¾KR|N*ËP”!ÙĘ X´o¤`ÎÔùU‚ùf á68µ1ÙJè©@£m¬Ý©ŒÕ2m5t–À”"UU’â¢Ëä}'«»Lfró({“^ž¿ÁêÛyQo iææÇs= »FÄ€~îÕ‰Ç<µ/¾ej.KÒòóN YÚ}BÐÏöV] jÂ'¶ú08ˆ !@>9ƼŒS@¤%3‘Æ1b[#¡Òܘ@êVìXbÀAs¨+Ú ül¡¾Ç<釆cVñë&´ì×w!° ’?Qãç2§ùk‘“<Œ{/w”vHÏáe)ÈV‰å³Ò ¨¯!5Ô†lÕ¿ÊÆ“ï±µB_}˜DÜ[ûà téû0‰5ÿŸU\켸Mrù3¤¤µpÔØBZ{ønœ\‚ñ0 ÿdp1ÒØ7ÐD‚ƒ•D®™Q:ô¥cíÙa'ƒÀ¿þP™î{Äj“Íyl˜ÁViyó€Â‹ ¶6“Ó'8m°µéøO´_0àP;ZÓÞÿìMököIGü¦èoø†)¯ú’Ð\g:´#ÍmBp@‰2‰·¤Ú«œØ3h¼ã {äÅ*̘è¸E>ÌÆ„²”ÊÀu[çFÞ7ÁÝQ§¤¯yóêŽê6q°§ä£º´íX³RóÄez½×w»F”v2XŠë—~hvMðÛ§Ø*ÖM>›.Ún×Ù:ïù~ÜÙ¡ñÚår»[ÈÑþÜÞÓ/*Ysñúò¦ð‡5šoo§¶{Ò£'mLÊ2§ §CºíKø²¥{¯»ðò?¸¶ØÞPü${·/O‡ͧÉâêj6ß K‚O’$3MLÃï“ú«ÂúéóEûPal²µ*}[«ò7ÑÛX½‰d—Âô V…yºÒ䓺éVÞo›BLÃI{Gïæ*ƹÉn.ÉHŒSÏh¾àG.Ûç·+úÙs\`®â&JÀƒ&ô 3XÍ9@L[н‡ ±Úb9+w&­îÒ~ý+)øŸ>ÓÁæê0ôm›+:åÚ}¹ÜÍ‘åßGŸ¿Tüê¯?ÇùÚfQ¯“ÀòVK±G½êš Jò­ôŠ_.!«D»ÊÚtr>VDỬÿ­>« ˆb½k3¢ÀŒ ·£í@a‘pheB‰´7È« `€I ÁŽZHÂ$@ì'ÄçÈDvP-m]p¯2ƹ‘ÄA„?¤TŒ]6ŠpÞÔÑ`fB{‚tLS„€A%ŒpÊ%«Áˆ.Q=‚vQ–š¦ÖäI‚Ž_Ô¿ú†æc~Ã#±¸ð{ ï Hùãm†#„%ÍÆ.B|ªìº ‡ïÒéZbM]¡œ°Êa +À9’ ÔŒ§já3•ú9P< ¬×MŠIñ†÷e/D‡tí;¶]ÁíÚRVË¡%²"Íø¸ºZçù~PXÔ{…}@ò†#ƒQàfN”Š¡Y^8n„ðØîBþÃÆÄÇ×|}>q77WmGË7â&‰2¶¬‰«#¹ikZëç¿ÿßÛ?Úå]Z¿»ý`Y޵8:Š'Ú¿–CÛ>¯Þ–Ú&¿[ jÔ‘´Ö‚Ї˜Tª)‚•”Qw×îÄË@€A.@ Sl¬à *#œö9f ÞX ’Ï´Ùš <ˆg‹ÈžísŒ7 ౚQŠVÑ)I´|-ºOº¢ºÜU}ÌÃÀ8áaŸÄxÙ2„ô`ɉXF‘¸/h<Ò«€ý8ˆ&’h${$ÕHxƒˆ§a.&Ã$ ´šˆ%·!÷ ?ÝôÒ_í[W•—½ S`ì6·ûxΑX­å#,A´r¢ÙÛ‹ë¹ûr]©ÎkÔÞÜ K¯ßg/oœË^\™ÛØ7ß(•…6w9wÿÌ–$—ÏÁ~xõòÅâ_ÿøq þ˜}€ðÉo¿þ±»Â­"öBQpAdà,ùX_\íN›è]abât‚-ЈJäˆs9î™ôÞ@½÷X‚›ß¸ŸB÷…¼ãš v¾I¡ß­æ.ü^tz¤àˆš ÷‚c½¶bŒñ 3>r‘U|·ŒASžòÔ¶!ÄcFgê1UAI1§¬ÈaKEá€âpn©¡Âª¸•_¶›ÅTÍþWÝÄì"¾s‹y)l 9º Û´wŸªú¬>N'f6 Ÿ¿»å`ÙzuqQì.MµFÛõÍÝg޶¡SzBN›5]g#·¡¤×ÓúvªöÎ8£˜!¸Ý0ÿﬧm6~‡ê¨í¤=îƒÙšÐœÓùâêæklhfË™iwNIÔ¯œYunIÄìô&J-Ý)rf óϵP{“•2­š‹YbkøÝ¬­Þ+ãl­*ú:!ápÔñÈÕKZäl}òÄ-Ì“ bíßOÊ´­Ãsöláæ‹S«+ã36«ÛÅÇ8•˜ øð Åeë=Škæ%ÝF;U‚óÄiÓËùuDßÀ•gKååÓ±øm€ÕÕu·}É$̓ñã/ÃZÏ;Ô†·7Kb2éâë“j¡¢Õ¬†\7Œ[®O PAlNM‹ï:©}ÕĤ”…³h†PÌÕ8r‰°¼Ïm¯@Ðð†Aä —œ+‚5¬˜‚ÊY­‚EBBcU±«&™+ßIYŽOѽ°&Öx„°WúX )¿=~LÚú°32]WTÛTÖw¢2VÕ +*)2è‚¥éxYÞ©ð‹ +î©—Pg}Ð7Bxƒ£þáZJ‹¨A–8­A…S½ßÜåY \ŒäwF«ßQjk¿æ³EÂUZäFø ÄÂ÷.\¹~o[ñޏTpŒëÑd\:ÏêPéÈP IÕ*Äê*ù>•û_ƒ‰½¥cg  2Ì»çly¯‹¯A„× Ï(Ǹ Îyd%£V#E˜v ~À¦VY@Ýú|ýqKlefü°©)5š«O9Ü·5²¥É‘ FeCº¦µyð ÒñöËV6Èþ|GAŒ~“Ę7õ¸’ç%³èÖfÌNV­êÂO›rÄ ‘`ëpæÒù ‡IS!D&¢ãª”·º²Ú¬¡X„c–CxÕaìT–Z´ æ•×PJ% ÷öÑPìø®ãfÚ( ;Ra‚ñ-½åÐI²ÛòE&É-qV‚Ûò^ÛPÛíåôË›???TJ‹´ÎGH(,xm'F»¾š/Î÷^ÃjD"„‰Šð•F¥"Á`¤À†)›ƒFH ˜¥P?V;rnºþowUç;3õ0Ó Iv*[ûªçìK­znÃTåIÁ‰¶ó¡V9ÌaÒ"ŒÉ˜ƒK°›§©pÖ¬›ìROÐ2„("”* ¢ÒĤӯ!ÿß9ë@8ë;?¥ùi)ìIv*Úú¸)yf‚™–ý¶œ–Sp¨¤T p˜’¸$<]…²=²D!TÊè<€Ê[ W˜dPH³XA‡ Ü$¡e–Û‚ƒª'jÓÒ·µªú=ê±,k×’åë€vP=æ%Ê~Œ{9Ä@—Á l° Í8g^Ïnç C1-z¸K*á‚Ôi­°š2¤@i¼ðF#‡Âyï€z C[$·ëKWw Ñ))Út_¦>ð”L)®E6dÌO×.¿<[r¹&MZOβêðÛׯ jVkÝ)žc1õ¾«î3{ØÇh䨯ø—j&ÔYI±[\ ‹®ÜsÝõKËo#Uæ¤ÚÝÐa©v HZ™–gLÊ¡&Ö38¡ˆÇt"ã‘iüÕÍâF]n—€žM=ÕÀ+e ³N2˰‡ÚZ‚…Ò1ªF\ÖÒ}î]EiZ­¸%Á2 E=0ÉGßÊžö¥<&c¯õË)²sà‡—èù,¿7Z^½|óû¿ÿôz]ós){º´4ºl—E¾õ°É¬É½Ä&‡·aF>ò²¸Êž’÷l£ÊË@gG‘ù3V·ÝŒ‘¤¡19¼ æcš=$™¨‹®´²U ÉCÇ][nÛ6ߣlÆ%Mƒ!I*½ܲ¾WI1½=;L“è¹iÆöÕ[¸;’Ù43ÏÎij å €uÈ2!§#)çüo” e0nÜ ÷L•Âv„‡y®R˜ PÂÇš J„Ÿ±8'’pÅ5/ëWÿ·H”Wý&K×ΆdëwŒŸE=¢ÙÎùß wd”×J¶"JšÕ¤º¸»ãù“WqÊ2Ü„E{³?¢ Ý0²Ic\ ¼2ÉdÆ•#Ñ:½¸¾¾™^Æ Ó)Ä&åú¡B ‡Ä2¦&˜Ú`%8xÂ`)%UŒkméo¯~tùá»îŽJ&žR1É¥bLÆ€té‘WóÅÜÜL¯q>œû5§ -…¯•Û"šÎÐrx“Úà¡à‚!3(¢Jéµ ÎÀ$º 8;M­Já7„Ä  Àzf1Ö†[+â”S‚K-=òAŸ–Ê,\¹(^¯y|P¹#]Öël_"&½¸¼ýòx½u½µ6V‚ZŠÕ$ˆêÀök¯\hk0èdª‘ 6QºÒ¤Pr† yP‡œá±Û¥V÷)&ÿ«!’TÅG#¹D3o¤õCE<Ñbm¬È€,„Û[Qø;ñ›%]dÛ¸Óú2ÄõA:‰åˆSØMA¶ÔãZ?¬Að$!~5ü‘=â´ñfQ¤ñWø›ªa¥Â_‘€…p|©®p7¯.ÖéIF™fÎÄ…ÿ ƒ¾DÎ# Jç¼"Zj÷”¯ýT_C…Çí!â$C÷«»»)Jüð¸(^HçuD±Hh¥d8T)³OÃIÍ8¨‡P_aƒÊ #t$llÏ™².ŽŠâ˜á*å…&Öø¦Œsl4VÖ éáÄU&cS­²«B(û÷³î­t[ÓrL—n¹Ø}ßõÍv(d60Ò½ÕÛGb‚s^G¤õ}Æ„Ï ÆTqh½ýêõ›ß~Ù¤\zâíÙ-–˜5ˆ'?cR&‘Û‘*3ÄG»ÏÊ`^Ž ¤öß)A<åÒco +! L$$ÃÄšpJK÷g0×éf„¶iI‹cÔÒa”‘ôðGÒNk)·)¡Ë=Ä}îÊËÔh€ù¤-Ï5$ƒ="$V^¤L ¹4¿Ë1¥öÓÀ3‰ìç"‹Ã 5Á0 Rë(Qaê+¢HH䜌Z  À‚YÄjñÓ z,ŧ–¤ü;uy´*„vÇ’² Õ¼þºøxuy|R‹V9jÚ¦‘¿8—íÀCŸÝÍâôP‘scHAÎÁbdmÀå®Ì°ì‡Ã,I‹™c(Ô€&€1ÜÛ+»÷.‡'|Wæà 0¦AñB’‰0 b’²Øñ"ÌäΛËÈÂeªJ‘RHbƒŒ(W@P«4¶ 8 ¼Ä8뤅-»¸ˆ‹Óù•ïÝ›ß; á¡aTg¦´ýL-=Ëç7‰éØ=–ÌÞi~gã{Zf”m¯ƒõ»Û{Ïši ÄÖ½ÜÏdò|Ñû؉à§ý•·Ž­¹%2Ÿž›ž…ž¼ØkwœõãÏ?|øéç_Ï`sÁªÞ#—öÎZ«Vß\ž¾’ {åyÅžK–›DþL¥ä{õþ×í4ÆÅE‘ÛUí(”¢£2ÊÁLª¡¤<Ú’Œ€F®*u—Ⱦ§ÅEÑH*A¹ÖæÉÆ`MpÐhý½þhù:E~†$'¾e3¸ƒoåväS„×EOQZª^ŽE1,ÖÌ ‚ÚiÇ(ÞÙ¦“aRæVAᲸØÊš' ¦,ø»ïw¯¾ßM¢ãÞ-“îf‰¿jdŸPtë’'–xÝDï”ì««Ù<döóítfÝMÏÆÓÕ‚W䋵¹`Š;ÜXŒg²MŠ)À,£”ÃÑÎçˆõQUÌZ ØX!ãÞ‡™¾•Â%!gÀ¯tì{TU›h€Öܸ]V˜iC“«ƒ ŽZipI ¹ÌÀ£÷ÿT7Ú < P©T `–Lû`¿bÎáÁ¤åŽb \ÈIíÌ㨶˜êà³ÌG˜u§X"hÆF¥×ÃÚ’šˆ¤*¶áÔ/ù¯Õ5·ÏY½S¬êóú`+ĉ”$ãK9Ò£y1½pùýpõ Š>µËÆHä4r„ ­€óÀ8c¹7\àÜ™N½q\{´ LŽ×-\™ñ¢ßª½wã~U,¶÷#¶² <$“Õ RÊuœøß‰öÿ1{{«gS“½¸ºPÓËæÅÿR7®]ͰV ªuB’KIsm¤ö¤tÂÇÆ(#@ 2Ò/Ez½Aî%^9ô°^ˆ<âz17€¢`œÃÐ,Å‘äcJõ¤™â1!kˆð¢s8¶u}Xkâ7ó B„“‘NâÆ6°¯i0§Ríš°ž"®(5Ü e Ñ eÀao?Àuh¤P’؉GåÃNl%$à!wà~ ¬7L1"•"ÆnüŽ™ó¢–çqk:L!@1 =×#0’2± ÓM¡eb9ñÈÔVØóÒBËŽÅÅk)Û"MæÅщ¹ºq1‹Ý¼ >mQk+&õájëý?{×Ö㸑ßý+ø¸¢™º_'@²›8¼ŽÙü&ÔµGiµ¤ˆ’íñ¯O)R¼©Õê–fúazºYE²Hž{óbàÏë<œµX=$q"óõ~eû Iííb@&N¹´¤^¯ÖzZäaDEh¼¢tœBR*wºIÿRý^»Òå ‹|Ðr¢'Q| òµšÜ¤=’u 1ð’{w]y¡Ø¹-ËnˆÆ‚|X<ºíÜý¾ÛªyœÐ'ÁZÇœ-RvÈ-ÞÉÇÜ|vO*ÿh]þ¸[oæÅô¹2&,}¡ËÅîËüÑ}Ñkµ ”QN>÷ü|§¶»ýæŒÓ7›à¥*Ÿ«Ýüi]^iú~]ä{µœx¾Þ®Ë#øä¤³×Þ/Œ›xr°&‚Æ™¼òß+»þmþ¤VêáœÐÊ<>lKöÜs¢’ ïÙý–?ÿœÅ*< W缞åÚ<†gZ=ÿŒÛ.6ŸÝV-ó ¤Ü<ûi½ÏÏXj~Þ Ü}Þ?é•Z,çF… NtÛ3ÞýîË&Ø2óØý±}V±îƯƒqs{G>…R8{V§æìgå¯í‰µl.®±Þ¸Õ™Ù­çøölÝÎþ*¢P´sOÏV‹ÍD]C‚² !Ì%†ÓmðÚ­V—J§ö ¸sh¼ Ű@{)½`z¬ƒ].Œ¹š/Ú´Žû¦mÏò68_ر}ÖÆÏØOe#vMÃô¶GÊ«l›y)ë.eÔm¹–µÖµÅm3Ð4½îË5o3iæ8ëè¤WœxnüE‚¢Ø{•öEå®×‹Lõ \`&íÇ;éÈÀ?€ Ñ"µ„¹â” D HI!ô:÷… –Ʊؙ¡ ü —{LäÝç[+^ÿÕCÀÿýçÿè»6ƒNù§¿ö'Cs¾|Ø,ç Wb0®~ò¾¿y‘/]NÙ/’§ïÌnùî÷‹æÞ ·Ð¹NRÞ”Ôû鎸Q«_UÚÃéuþÒÏ ¼'Ö"w€.¢,®¤å¬ÆÏI’>‚°#™[r¿› È¡=½V8k®/‘Þ9ƒŽ$SÞæP(yB3)Ï%Ô†YÁÓ ‰ ùRx¥ÔpeŒÕÔBqJ3¥>@«ºµ± @û¿7¶á„¡ö7ª f{_ª3Òâ—C¢PòRßÇ3ž—1ôv\v¨»g5Ip°ÿ(çøŠ¥‹j¸Wx–p+–â´Ü„L*9Èl„Ô j‚,dÂ!@›ƒŽÐ$¬±k.|Ö^v¢O*£€dP:µusã–îÏ ÎXh—Ì ŸJ© ó’ I$œJŒ ŠÍ³R\ÓxkH‹ ñ'0gü§$ø>RPüÝ\ èž8¢ÿ ïP™Vð@ã*5\…àŒS:"¨yÇ'è­s…µ§Ð3Œ Á1Ñ‚B&‘Bs§=ÒDy ÙIZ§Ïú¥ß#uØBã´I,#JtÉ–«qÛÚï>ÇÍ”XvËS€û ? ´òLWÚXâ½3Ä!’LA¨ ¿½îZƒ»&·”˜l6=ÕYÝï–âbÃ?üô÷¿ýøiçä Ov´h³%]ol•çxèØOŸ>Íq»ÏOŠvrï”ÍÒô.½YÚ¼ðœø} Uz÷Êóþý«cÝ%_'‚yK~v[@K|Ü]ªŽí>Kqâ,Š–‰¢wµüÒ QÖKªEVG¸‚à|¢þÞt½¤Yµ „M"f]° `ö›<,.0zFAì“h$†¨D ƒßlÂJ­…áš™ØL5ÈU޵"]M®\E%‹Ü[‡ÂÑÈãúiî¶Û¾0Çm“fµ_8B ‘AŽ.ɳ:¼OX@ %!ñÖ”{©cãbI´³ÀA(T Öà‚3E€BÞu¼­®”qqõ+xmw µü/µµËÅêñ“Ûå1%èäªÎÓ/ö5Ï/jŸ8túf/v®/=1ûm¾Þ&¬zR©3Üï»Ä=Â󹼯Y$æ.Vn®ž¸öV­lÂöøe-õÄ*'íÔ^«ØíF (†wí.áDÖ½ÍÈÚuÅ^¬îå÷²3/è|û`Õ 'Á!¬Êÿo94v;»êËÅ®k žŽ_œÞ Äqxt’,³§Ç§»í?¯Òn^zâ\ÕrñG±zE(4ÆŠP&£0¿dÏûPì{^V8Ê º?¤Š¥óF1á­ h3`Ž\ìDBà© >/F­:Ã倔ñêwXA˜ñ ÄH¦•^«¦ð†³á_»°ð½zð&«H0³Õz·ð”’”ÏûMVÅs|Nž ͦü®eì,6yŽòÓß ¼Óì/k³–^ñö³0æV¹ûÇì` Äš÷ìO?üç_~Œ¿ýÃ?Ÿ]GUi¦‚éõ2€ôÓ7k<\"A2ȼ$Y¡u¿G±f˜BàðhËDTp¢˜vŽS!<ÎÞ„Ø{ÀÛ£­Wj°«ýJ¯©ë:*.¡Ùº ­§Ç†ÕWBkuOB SœÄú ý•P[=mÕUR)Ý4 ’ºš¨§€Rz§«nÒZ¦¯\:%¥JR$¥8úúb@M$µCK)tuACœü-”ó_¡CÓ;-` ‡ô@RüwOr&JiÛ·úþx¯f)íÍé Ø+àÀq}Ñ€_)ßF_k0N(Ï`„]½ †ãX½1‚šª±ã §©7+€‘’z-Õh8¥’™n<ì˜ZÈ¢*¨µÞ†gKµp>ÊÜÃX±À ꊎÀǹ.·Uïç ºé½Â#e†Õµ5bâ "“Õ•ÃødüėÔEV#äN\Ì`¢a¥J:± ÒÀB…ŒvÒ{X@’ar§¹ª^ã¦)®¬Î¦7J„DB° ¶µ-Ãh4EožPaZ“`çAb5E>ÜœöÖ8L‚€í‚R‡ ·p©ŸŸ¶tâÿ·Žc†§~~¤ë=™é86„é=˜ätg`ß× &¾@òԛჿbšÔWµ45bÄqÿV#ûÅÀØÍÄYï0eèÌîõ’„öû…í}ÕÔ¡G] êîÀRýº8¨Šöƒ¿aºÑë“l×il¼Ê ›E3oŽ÷<|ÇDzO´ô+ãLëíì’43Ýí.îcž2R»´`¸áŽËj헻ŦÜèšSì”ø¡)[·Þ–q­á¿7v›í:èȱ ¹[f™ðÇzìEDØÀèrc‡kÅ2+t×Õw7겋CèC%¶±ÔDiˆÒ,x¡ˆKUz¨Uì`µÂ’fT°Ÿƒ¹Î1Óžrd$V0èüð³»ÁÞ~õM¥›N&‰R)ú­fšê®è¸ ÞŒS3æÁìEÿëbZ.2EF)™Ï€Q†"#ÊqÎTÁXLbD¡âÔ ‰¯ãþÝ+é²Cî‡ðŠL‘1²#B™Q ’Ý~Q®ÅuŠX»šXEˆ=Ènid.ÞRçŒÀó@z¨‹9W¾ƒ"pA3G7¢þük /t<šï¿ë,«åR¡÷g»47WtbG{²£ôÞ-ãÊ"4f Œ¶ E*NräuDlWxõÐ’™èC××ÔXn¢pšR*xF¡d삪Ñêf CuXÒBi©öœx@zæ˜ç^s/•œ1­¨$¤$mã $M¯„ nVùW»-¾¾mÛ¡þpwGÜ ãuÄ%Žâ’^jºÆûUÆë0u3ï‰`#€£œ2Î}°ôZo¨À YÉý»ñÚ{³÷G~• ;H|(V”ZÔtòË÷ ‹êÄÆpA¼¥ C©„8&(²œ:¯ŒÜ2%±vŽ1o°ÄB¥;R5ßG™Y\ü5ŒÏk˜/”Iš°<¿«ô³òémÍtàWgkæû3rùg>?#¯gHÊo‹Ž^Zý˰–Yk%)ÀFXðѸÀ9ï­.…¶C!òÒ"Ÿ°žH!©gZ{lW‹4qÂ¥[e mÜöi‘Ç]ß¼ñf+7»t®›oý½Fcù^£Ñx¯Ñ¸¾f}/ݸ‚ðÚõƒÊìK0’¶Îá` ÷Ÿÿí¯ó -^Åz/Û莽-âkÓ¨xKò÷ÆB0ºÖbQiÖ~¬ìžhê´IÃ%š ñ’Ï@z¸’•yÊÈ îs¬NÇ\ânSÆ·N™š :b„ÐLM„p.nøx‰0#$f“»`ƒ†ã]`Çã—hC”ë¾õ(OýÆü›Ó1žkaF«c@ÂzüF6?¤²Gˆè°Yâ”2µûãów;ºª§«9aý.TÅ™È ‹­˜Q!a_`¢…5 ƒŠ5&÷މã^I-1ÄÚ3¯c§`*ŒÄÔ a1לhÅøÕ*ƒ& &Þ1L"®€»J©­J¨§{º*'¥iLW¯ôÕIO‹¤”GWg¤UEZCôy:¡Rj %ýSB¿/ëD|R²·zW\ŠoДÚ-a}”Ñ÷çk„e|­ZдÄïõ7›Ûâ·»ÏL“¼û^-¶)„SI<2¸ £RqÁ^L#gÔEA ˆ| #X(g½sÌ3'…Äê©´Bk»M*›*ïÈz#-9šÂ.…ÐÍSob 4@ [,~<û7î¡5£‰ø­»ë­„ ;°Qƒ– e\Š )ø°uÐ(‡0GÂ]bö a ! ‡”%Ì+ç¼Ô(â{X‡-y§Á&àáÍS`{8HHŽA†( ³‰¸ß-sÄÂɇ7U<,SDPI‘ÂYËÃ?E½5Þî ^kïd•^yß-ÒÏ ž´ÇD;rA'ÊáÖ…_—›‰¯°;q¤æÀ?ýýo?~šÃ9œÒù»?/ø¿”$1šÛ8?oƒM¢ÅîËÇŸÜî·õö1¨õŸœÙoñSX7åš Ô1Ä8°cˆ•kšW”`n‡§ÐËx»vƒG8¼Ï1ï†`ýa…†‚šØN—D¹qÀ̉Œë$5Èá`:Û0íµâWÙvKd½}ø;É!8<|õŽ6ÿ¨‡jFL®¯éɵùûg<òØœú‘y¥ÿ®r׌Îâž3†à”èèÚh¦'žõ—°’q¼4bpjifqÃçI9 ´^Ãh@¸ÅX¨‰BJ †„ f²Uó[•r׉޲K=h'Ò“z®qÙoFÒ˸Ò­-‡ÚöOÀ%GO¢¡Á–ÔëÌœù\±7.ðNˆº–Kx?«­Z.Ýò¤}w¡è{–Уñ S$&z4U´4n±@vˆ¦¼8ÅP@)¹`Ò3bˆŠ M´\xá&RrïâîÛÕ'/²÷Ù‰=¯Óg‘Dz\W_òûâ’§y¨ë$·µ[ß®¦Ù.KIBÛÝìêǘU‘гq)ƒ×Äÿ³we½m[úÝ¿‚¹¸ ]ûrÇà^'pŒ±3œÆ¼µJŒ¸…¤%¿~ªšì­ºº%µ(‰²ذYEVWwŸå;§ÎÂîËMXuØÏù’½rL­b"BŒ\3å4w1CÅ;b© §ï,=Â0zF:Æ©`x–}^ä¡âÞË;uÇÞ§`!ž² j ö°Ð”—w”É­¡„L fcû T¤ÌóêÕL\“Ð{ ¬c¡ƒ”zn‚^2Â8Í0qÍМD =ÔyÊ1°vâ~î‘ÒÏÊç–¼Ú†N©ÓËïd†ÆÜÜ‚=þkòÂWßÿrUSå¡õé @„8k¿>_8clSØ]¸„ÌjF³±U*.²K0\™GÄ* 5Õ6X²2RÙ~£X´x1‘;N ¢ÝÍ"=RMyÖ©àF1MÄmÜÏ´±›ÌI Ê Ž=ú+ÞJ‰G†Ä­R\ ¬0A+æHc¡ æ@@/-Ð · Ió‘fôd+lä©ðò¨H‘gî›/·ýÒá¹7IøJ ”‚©¿}]®yoP?.©É§ €vçŽíF¹¾XíV¨ˆƒ‰Ø fCLÁÌÊ/0óPrļ‘Xh¹öL8‹D®Hµ_·Nz/–ÿvàIo ¥\•¤ë™/wŠXŠG˜ƒ2ÅÄÙzµÉä_¨ š‰é6ÅnÛ+Íwûýܳ[ÏÕVOÁËânÉWn­¬a±‰Q}+êÜ«33G =ººn}Öj£gí\d£–IO£‚`=ûýK{p>3—Û…Úì0l_ÃÎÎgçÑÛ©d(‰û’޹¤+nœÙ­6&£ÛËÖ€[ÎÎ âÖ ¿úmÖ8ßo:¹ÄÅ:Z­‘Yq‡­¡ßÔ¨v+›ßl‘·ÛÐö­^®¬º<³&o£G°gœäÇ1¹ ÷Ww|93é^âÐÙï HÛ߫͹Jš Ÿ…§õ2ÍTÁäá‘·›ü,®¶;×~ºkµTÛ¸»3³ZÍ·a­žéð Ar£­I*ú&ç‚Êö” /4¥…b¥ƒ«ð€V3{¶.žï#ýs<]s·Fé@Ò´j33«‹îÈÙy›Ê·j±½*ò‘cn3+kchŸJ†Ö³ë3=Ÿ-/Qfâ§“áEºfx²×éÈŸgvk<ÌSšŒ_-í—Ù6meµ]EA²ôï$¿Þ}Œ“îXBÛkŒÁ_­¡Ýjígnn“ÁíÅL«ðº6‹„µƒÎèá….La¬ø£ÚØ?ÔÆ½z«¢l»Mkå ¾IÀ€Ë6øÚc—Æ.ºÀ‹QÂ;Á±5‰שsNö;Ìå4z£´·^!*iØ.æH÷–B¨'X9Œ,;•ÈĉÁ ll ®6¨JÅlVº6‘S0µpR…2¨ä ì ¤çã.P ÿ`Ov*ÓÄ6HÓ@25€ià–6\i¡”œ41I EZ¤5Þ¨aF‰. "Á „HC œPÃÔ` Æ·£Éƒ¢¯õ{^­ç´yN‰wuwSe75uFAgôrF—Z¸R¾•ÎmªÚ††­k­OS5ÚÖž¥Ò¬te[E&š1Qˆ =X©¿†Ök(»ZÇ5U[W£Ù‹ŽAb92<,\  ë ÄaC…y t p0v” ˜iÀ4d“`JÓ ñ]T)¬G›MJ¤ÛW u^•¢ÞÖÍÖèÅ_‘Ùþ.•Z½ÂƵUW/)ÇjX0®Àèx\Ku2µ+Å xÖpá0¶†S#%!{! äzù['³¢êéÙÊ ’ã“I€_RŒô-VBlÈ}ü¹[6̾J¨?éCÃíâÐï)TÄg¤µ4"9•ߊgéÝBa™×å2½ÅX?^Íw³…³3õêSŒKxõƒíV›íþdµüâ6ñã ÿóéû ž¾««X´§æ·E‹²Ó‚{Ñö1HØû´±ó\%$Єb!ðHf۞ϯœ€þR¬EôA‘ðÐ2ê°Ñ$PaqTA%”–ßöáÎçRŽÝ?©ð´Ù° ¡ë5&~|ÿý÷?üÔ;½ÿ¬Ö³³·ïy†nøbõ9ó=Xœ–i }»_yáÌÅËøÌFäÐ5:—¼¼¿tÍF)k³èîh±ö~¯SÐ_‹0À'ÐÑÖeq‰ƒ¥=Àà+ÂP03pØ9Eu°2%÷^A­€ÀÁAË;ל鼒S0FŸÁYB$ÖÃë¼ÆiwÔXñ»×Å7àˆ¸"ñƒ#¥ŸÎ!ä‚Eg ‹½ÝÍ–×zeÜv Î`,š b¿'K-åjYPy0rdVy"A z µÊHt)uRJ&dÏ®쟅ÛìW_ϯÎgËíTÇŠ|§ ¥Ž oSùF;uØÝ©+;[M‹w•›Ž¸¶ùÒû¾S¾¶¾ù:ï›2ˆïœf÷ÝA¿I à&2ÖªþYïw÷£¯¥Ûé+ï‡Hl­ wÆÎ¼˜Ý­‡&·³[;09@ùÛÝ—™uµ+nß”7˜+íše5îÅæ4,± ö(zvËœ~H¢9oïÐÒ-u¸90e2±ºº78mÜ^¶C æ ÜØêϹkîÏÿë­ç¢]HPXŽR¡9æÚ€Ҳ*­ 2XmØ«;•ä¢|Œ é*™»Ä™tÅ@V ðuºÈñJN9Ô £ r‹îÛlôyÆô¼¤¶ˆÎIæ›_\F÷‰ß¬ÔÍ Û¬ŒÍ‰Ö^*éÒ>ùYÕb†Ü&ÔýØÂ±ù#!øFá¸jì=×iKŠðFLŽ‘Í;hB|sNb ‹XFj¡BÌLI°n©Tš ŒpÞ’ÅøÏ­«4×…+rïWçÖÃY Àþ´1ûPÉì#@úSGêÃÖ\AyÓ«ån³šÏ‡¶U;µÞ¬v+³šBöñöb[5å5„÷ÊMj¯Ý–miÒ;â$2¹µ¯isW]QŒ¥d kxYܪ¹j]ÆiªFÒÄÀlF””EDÁ±ÁÆK³)¼ÔO˜}ò óµ˜nHâœP÷ÖYH|wø{ßî+(Á™+÷†Æ§í®^€À8dï$’u@ ÊÑœø6›r"¢)2yÞQPßÞëúþná)¸»líTb¦ŒðÔ¹‹†€ÍÔuÔ Š&B2ºTÉ`7·ŠÇŒVÒPÊ!õQ¢ hQæ³8,徎‚·tJ?DGtx÷¹!ŒÝ¦ÛÓi\ØÜÖ`ãBL° (äØzê­+Ý¢m¡¢8ÆUz¯´!†(ÀWVB§…³ÐS‹•@šƒgé¿{Жk·AÏÊ?–U9rzʉ¬Ÿ«n1¡‘·F7zß]^ì±ot°jà„á—<ÇQLñ •VÞÑÀÇÜi Â)Ç ‚"–»‘^ù' Wú\”žItàgu•ÜD ºé*µ»,¢Â:â÷1Hj¶Yõ;…šc> ÍýãìÞŠß8·ûsíº?W³yôÜ¿í){9½†°GÝTVbDÜ|¶KóÑ2FÔüX»¸»ŸJ-ÏWy‚(¦ŠW50ïw¨gvv½PË}xs2³<‡™Ðók£§{¢–¯®ï ù¹ëðov¦ûô"mð´qW!ý²ÿÁøæ §…h|ÐÀñœ(N c ÚGÕÔ›ÌE´BIá$6ކ#ëYí.÷¥éfî¢×ZQu‹çΰfF+©e"¶UH¡`³yÂo­Öè'ÒGôyq=R4?¶ü}Aû`ró«BkeŸvƒñÞìY/úHà=p*È‹Ÿ<‡wjóLTÿpZï/#†¸dlÂfk^nWWS\ªòãà—¸'ŽÃH%ÖÜX!™ã ñqâµSAJiä•¥§¹üä¿ßì×îO‘Úìfj‹ÆÂŒŸÜn[ÒJ† NLr 8€þ–j(Õ³Ó£’ë!Ødíž7Ôáþö…v¼ûõý+ôß×¥SP-ísÛÝдÚN&ZC0*ÄDHBðÈ ì@£_–f Ïö¡ì…ç™mðí4ôN"'¤ô[謖»¢ê ƒ¡ÖÊ ña°wºBä݇_»ƒïßþÐ*Ÿ>fìú¬`‘óìºcgünàÆOT&ÛËó¹»Þ+dÙÑ¥öòj·¯#‰XÿÄ»Ÿ~ýåç3xFŽ#ñÃä ÷ùp‚8{ý ¢à½lë{Uµà{³}S’”®Ícà º^ÚåüÏ¡¸¾ýå6UÉä0¤±Áiµ½Lii€0™u»F–×Ü­Ö…®áAS!üRñ,ÙS/xP9†k¥„!h+n"(ˆ0 J'¹ÅŒ5›T…µ÷¸·Xøñݸ9í‰ñõH¯¯‰#aío'ÜW‘\EEµ‚ûyÚ¦g »5§³ -æ^miÚÜPæ|@*&Lˆ±AY­e¢4â[¼¥ { T*0ϽqØPD µN´m¿ýðɸåÖm«áªCÜžO »ó))òÄ(nÖ „@L c‹°ÅKì3Ro 8--Tk*˜BM¬½& „;',$Šq£Ñ^SU³æÚ¹Õ‹Ã¯W›óñì?ÆšÖOJ€O³Œ\,ó„Oˆ÷ÀÃ@çÉc ŒQùÅoÍj±X-£¹)åKÀRL™œ)ȬVa-4ÑÚ$Ú2c$³1 CJ£‘敌+G¨Q®ú삦ŽÐûò‘ý[!F¹È«êœø«;agžTƒèk'lÇô¸ Ðâ©4…’1Ðæúz_Óæ®rA!”à Ç|lÀÕNí.ÜÄêi¦t;N•ñHb5#ÖRlj‡ y, 0 ‰¦…qX¹¶2Ðs>Í1ÒiÓ[ìîoû°7¥/ju»ºZm þŽ‚80e÷IÔ‚ b×N÷®û ŸR4ÅLêjÁ˜µÅ`¹§icG¹„LÁD 6Öð«.SœKB༢„q%¢ŽQ.0ÔDjÎÑáe.؃qÚjµhÊ©»D Vé2•$˰ŽÜJÅUNJõ§T&uDQNåONÞtÅLtÉ •T–tDHKrÔãyYÜMIð"ÃO%h :€y1PÉ lä gHŽ,ø›ÛaF (dbItå EŠk‡^I6”R£žû.j{}Pì[Üõ)Mø;nùD !ô\ÙŠUŽQRöH:ñ.€8:&\bÁ8½+´U} áâjãlì$Â(ð’[jS0¡¶)'qÆ@¨‰~o>O =pðXÅ7Q¹¯š®¬´a@ÐÞ…¼n5 8ÁäÄg—AYÈ~§K„ÏSÒ·7Uóy^ç'p ÉEɵ2—êÜ©¥ýN_-mÃÅz«øÛ5ÖùG«çd™âàî|öWQ†ÿaÙ¡ØÔ070˜@€ã|Ôá"W±+xÉbØV®4¥²À"Ñ¡JHˆ€ãF!€æ@d$f€i Ÿkµå[ú¢¿—E$`÷ÝÖÌÓýÛÿ×媸óý§®¯ç@#oöTÃóh.\ð=ËWÿ°©Zޔؗ%¼4e–cвYö¿˜Ö›ÈU½£HP2 \%wŽøãgî)Ô*TÔIÁT€ ©ój&±‡E?EP‚ˆçÊ G:µùfkÿø¹°ÿÛ‡UQ½)ȪQŽò޵#ʘ+œa§?×4›2’€€6)nfZn%ÃDH`4!áWãÎ?ŠåË®¨¨/»€"`±£ŒÙˆª„bÀZl©×T[_:,rŒÑSÉ2¿ƒãïHun¬¡“ŽÂç•]^2Ê‹6ÍT\r«rƒc¹¤&@8ŰÃ%e/QÔ•Ž `rT 8 º8 #ÉZ!Ècây¬šë¦0Oæ‡ãÑYöνƒ¿E½ô0FÑIk£H`rC¼üØxqt»ÍƒÃ¯§‘>ÓÿÅê¯Ëß½¼ÿÇÿý¿÷>ü{òó¯ÿùðþí$üýá§O?L¾ûøó‡W?ýüá5ãªÙ$ ñá±wƒw‹O«mçü‡ugdd»™¹:¬ðþbÚK¶ °PDbb±R1À!+…0€qN¨ãšö u܈qi†Æþ¤Ëœmëó’êÓwïÞ¾=Ãe­¸ÆpkÿáÄÂ`Å98 ̂Ҙ»ÖÇ+S|àúÈÛ5ÿüguÆÇïÞ~þüïÿgïʖܸ‘í»¾‚1·ÚØ—ðèFŒ-B1Þ5÷†ÞXÛ%®&‹Züõ°Ö²ÙÕ»Õ~±U, P'3O‰ÌïÞ¼¯'·}i÷ŒwïÞï&ó1Ùó“¾F¾<öqfŸ;ÛƒŸn/~å[¡“6Ôú èÍw?M~ÝêYn&?–‘Ä•Ê oäºO¥¸«lª¡dÕ@†ê†ý%Ÿ@¹b,W¨Ç”âÓb¢ ’@cÈ´6hå•r"­ ·Ê!úºÝÒcÇÄZjæ@s­”:&²úžñl¡¿¥Æ}¿½†ø Ó¯Ü$×\[jo©¯w´µØÓóñׂŸÚ"TÿƒUÿÀµ†Âõ%Ln€•ZežŠ¡Z‰öÛkmz梲©5+Ò¾k¿~T’ñãŒ`Š'(êGÇ ¯¨«7J©hB`ÌAÌ1–r¬Š¶¸P—1'½€:°Ì@ASkˆZCCRKè”qÒXQh$ÄKLÃ…Gª¬;*÷éFþ•_;á6•(xYã +q0¢zBËJ"«xÄP§ÞYù«¬;ŽDh’PN €”Å}ôÎDÌ / HÑ“jk ¬ÞZã´Ãw‹8Õ951ü‘"þù˜äi"óæÕ©ta?/+ÅÃ8àF‰ë€ì ¢klÜXjºŠˆ¤ˆ² b\Ó±"Ò¤¤¯Æ%R1?ÁQ@8Ø#5bÞkÈAk*0Jzhòô _>Ñ%ƒnðêcò…÷8Ñùö-‹[ŸæF%€÷!^§ ¯‡0Ä9ƒ‘@‚ÀØ,S±›º¼ë1ƒÀ-.ŒOÕrÌdL‚ê–^"C ‚œiç¡ÝG×´•D'nmwÎñŽC!Ó=åæ™Åhî¿OWá6‘¦zK{‘É·ãÕe ë¿Äp•;RÊu¥Ö#ª2ÌéC!Ç…ÀävÆ#ã˜R\ÝhÁ5E‚ê RÖ9©1@S-Fj¢)\û>¾ùm–ÓII˜Ÿ…ËáÏS ïT!!n?ʈ4º‰Ð~2yÇW¥Gé#®/ÇùnË!¥6ëIðW'\ÄÇÅ»Äç×»õ»!¥ åF™“Z! $W#Gˆ2#A\3Š!wôîNèÜ-yl«ì5r_t¾][~WHT&!SÔGj½a^Ž%±Ì"8ã“€ŒGî»…NJûuDg+f^¢0Ø$•I˜´ ´BÄZ¸M.*Ñß1 ÓsÿÓ‡ìç¹¥oÌX¯©÷JëXûÁ€‡&Ñ)c#áä øˆ!!ðL ”éšR"„Á#ziÃ’zì´1ÎXk€7wÁ®ÇêI:êkõ)ôÄS\Ÿ8üæ P^–PÉvPÙs„X¾Ô³nÃÚ­–ëbßV¸M‘ÍWî¥Déßn½J窕ÀbûÂÄ`7Ëpý£¬5öÔ8›ÇàYå‘ãðV;ámÛ0zY)FàñŽ‹Zßò>ŠÔ¨ºÄï üæ§7ÿi V¼ýH#ÁIO°Êe­&ì%³IðS9k§ª~ê5Äzˆ©lŒ0 ±FFØ:hhÌnåwÅn‚ò–º¤;› NwºˆØÙã¡`Ù¾Ëmyaw&ƒêf”ÊÞ¾SgX-ÙHÕ7c2æ} Œt`ùJ­7n½+KÈ'‚&«ZŒsB˜V+* 5$xÄh¢Â‰Ýc¥pÏ'œÚ<®ÆD‚ÈíᲫNó˜S„e(õ£ZÀëg^¢›ëvß}ÖtžØn Äh—ò|\ú•V'MÁ¿Ýø’š¼Ppb„b‡ €z‰ÁÊË¢ÚàÇxãšÖâчÂ_¤>úÞ'yî'À{àµN:ï¦ü^9„!È%"FbÝiZ&†Å´ÁÂÄC)×Ýr.“VD• ÞzðÞ¹¶Þ#f´AV#à/[kAÕƒw®^xòcp@îDß‘+Ñú, •Þ ¡úbñ°ÎÈãC-ø×0hÁ«ïg'¶K|ê‘dûq$ÜÉ8Ñe'S#K™q$áçqy¦4pÐm¥×Nä 64ÿÖó&Ÿ ¿9 ¢G¥ù{ê©û~³*\~HèE>¢Á5A#“<ça˜óàŠÐ Ì–$.DŠðøĘ–˜£¬³Pk!ÓBSÃ-%Ô3ÁÄW~PÛ¯ãR{>TªÛšU1`ÐOÈGˆXÆû—{ÙYV‚ì±:©üù0vû5âH/%Èî—Yb@©äµLÊ BŒ«TùA™i< ‚øIïhc(Ñœ¥Pjh —Ð dE0.Ö+é¹ÄU é>³S'òÜïyƒµÈÛÛ6‰ ÕƒÚäO2CÄsýÿáü–hYã=Ûá½Úa÷ˆö‘…ëÔø€žHõŒ©±³¬¼XÖV2QµàÎÇ®ÄNšX½ã¯°%€CǨóa*BV)}zU°£ZÙr¢v/ÝÌì‹Õôò¡q&Ìm7ÛjkóeŒ­[83HeÓ&Ûþk¼è~›cðlýèú‡jn°M°ÞQÔJFžpÊùȲ ÔfåÖ1„®&‚_Ðä&ˆ·6¸>Æ ª°š+ …p"(´–QH„¶_Ý&㇕ÛYa71Zy¡ÄÏÐ V¸zY#+Û!«Ãù~]/í6îǼøòÍëµZý‘› WËÅG·.–ëÚTüïÕr®òÅÿLþµvî“Z»FºøíQ@ ã]ùŠ?Ê:CK¥5½œàÀGî3Vý4GEŒ"€€&Aˆ¤õsi¼¦Èiì¶ÁÃò+í©}ú+ǹÚËNBŠÀãZlh Ë‹><ÎAR( ˆ&$¥ D<*/ˆË`Œäbd¶¸øÕ«é`±P‰ %©?"žè$s£ $Š+oµÄ3ó‘þlNö<åÍ“®¬¶¾áËò+fåW<Åßÿîí« Î¾Ÿ©mãéÇçM˜®¡0Ø2a¼³p¶ï>kwž8›³ Ƹòk ¦8uh [Ï-Ñ@ym‰UÞ 3Öˆ]þ)ñhóH|u[áøÞ m¸ã“¤]w<8‡ÆDd÷v·  ×@N`ŒbôÊ9Q7梜Ç"@zœ&0¨he ÒpãgÌ´J1í{¨'1­I¾Zw7õŽh×Ó<ÖQÊVÐ×ÓU*—KÓö r•[áä*ÅKˆGŒj€ZªsÔÂE€#¥Æ@ <ëaðg)YL)´[AØ©ú­DØq-'‘ÁWHŽÌº05j†Â¬Ñx˜’^ ÔáEÈŒÖH|J±âXAƒ(“Ô"¢0ZfZ5UâCïݪ¿úþ—_£")ÃþÐ &SU^î®L­‹uX†£¶y¢¹JãÓmœçs7Ü@˜†éZnׯ%ÒQM‹…óÃæm!üYdób†ýœ êjÝ3­jö>àN2_V²™ÙLq«×ÿ÷替:^T# i•Ïq[Ê{KE$X§Îná®ólßuªº›„1á ‚¡qÁW±“ãªG1é¡näQË "9Š·Aw p¼«zÐ9ø >ê!‰?oñyH‰ù~Wp søcßlóuÿXÈ´ÌXû`¢sTr Àã ‡ూc­&a¶àEðåa²´¢Î €œcOsZH£;¨¤^‡¿ˆ<þæû†¨þ­Ào·«xÜm( ¿ß'ç·âÕwÛMªýuÊ„þVüìŠOËõ4uéíÇËTó»ùlØüö§áøßA˜hTÛD£Ù®7ËÄÂ;;7«Äýîs‘h ³_ÚwÜk/†ªçÝj>|‹wë˜:5Žb“èPÿ…†·Þc¤„Wó!;9ss'$Ij…7‡@ÖRÏ4MÈzÍ>Ÿ¥è[ÉÓz÷®ÔºHuº*¾ [S[iÛMn‚Ï‘/þÞ#î©âìã2¡5·Ã¾îÎ(ín ë…š}ù+uô¢¼žH4ž¨–>{²™§fþ¾Â÷I / ÆËÒddÑdÜÀ"η³"ø6WÔ3Œ”@ĺ†1"Û!aa`“|l*ecMc˜fe ›oÌR(lÖc”qÌ…v’X%a0‘À;΄Tçe!Ÿ­àƒ[Aë…>»ÝþÏßþó=¸W]¿kÓÑÊÄ^×\¦ìbÂÒ­þX.–‹[6r'Å8>CøDM^O¹§Œ\[õ?´­kå¨É£ 6 #÷©¦Ö¬Õ'cí.È$€>µ1 <S‹ƒ?ˆ0š“–Iï)Ôh9|([w&«´Ç2ûؽîîÌÌŠôÚÑÞç½\tÞJd'/ù«åèe)IY”¤6®Ò!i íp²›f¾úI¶J2g%e êÁ± °Ö5Z %9²³ 'Æ ‹Ã€Q§™gZ"g‡žH‡üyqä^E2ë|•ìû™Y?¡õ¥ã5].s?œ«mÈí¯:}H.9]g)jº^n6Œ\pÈQQBíê%¬£ßmeÊ>zÜÞÄ h›üsâÒ!?aq â[Í¿þü¢÷/v¯+hËÕZ-›¹Õ3˃•bä-]öyyîdšq|y³=]Þíb³I èø£( Jßù/¸üœðÓLJZ¥>lÜ\»Ôw¾Ój¦¾¸„Š˜.ܧM±õ¥®-‹Ü)¿fêr1Kœƒªíˆ‹—’áÇ´Ût»È‹˜8.u)`=5†Oj6s…VfꉹZ=7ß&8Å-Rê¥O. :5ÀHî/â<Ìž‡Ñ!‹ý}PNd×ýgûÞž/ LŠàû N%¡ãbçw½”q[G‰,Iˆ¼FCÅwÀ!e±Â"&‰gLQË ©‰lóÂÕ6 ™]š¦±7Ë-[NšX²æÊŸÙÍû¼™û¿TQ¬«¿âÁƒÙl)ˆ€¯þІ°úg`áZý“ÙFUÿ4ÛÕ¦ný¨þȳÝ2Dð_ýüöw·Y-#klÂÌâ_M²ÜЉµF;ŸÕmW6à"ü±™ËU5ÐæEPúùe^Ý8Tõ/·0¨Eýž¿¬Üâ‡w¿×/³3ÝÏ)’[ø}hY-ã I,Œ" Ÿ08åãÒ»Ör\\ã9 ­Â(‰5Nj¡ SØSfÂÁõÂÈò;¯ïFñ“îßC{B×]ñO­âß ¡~pœ&²ûÖ/ô¤™îA÷Õ«i¹€Ð…H:šµjxXMXÚïczC*©œ ,$æ#ã®»<á¨2TÄzqÁÞCãcFŠy¯…Gš1ZQ½™ÜÓ—ØÜ´šyød{žCQÎôýŸ\5 í—Æ.Ív^-â÷>•ÉݤCv6¥6¯,sùÄÈ•žyêG¬PqÏ|Æ_dM× ³ ))ÅŒK z¹ŒsßXö ™"¼œ"`¹Ä.F¦Xæ‚ßOŒ‚Ú;k”ÑTb$uS{¢yhfÔÚM3‹`^mgECu//ÿÊÊ]•,~‚gÃùl8Ïd¥å¶.w"pº=´§e¾ÛÑs·£‡€×\º1H»Óø®²Î‚ø»3i#²ŒE‰’íîéÎ¬Þ ‚”ô#Àêñ4ãMÂ¥ &B„\ÄŒµÈ«|¾Y*z”c!t3å©Ç3-¸GRQO!à±ðš…Þ?á(°Wn“_.RÛ¬Ï6ùÑØäû·×WĈ­.3·^/– ÎÑpW „Œ>Ñä>ùƒkÅœ]/¨dfÕ*qïÌ-WªX«’¡×Ž%¿zÓRçº85ž-Ÿç6<1/ò¤ ×Åj…k'Õ8-êc¦Ý: JJœŒô•{ÛMS›zäÜè+ ,K îÉBÔ½ñ²÷Ä}ËE¡L‘/‘ñ*ùŠ<ìIU2Üé4©GEú$I@z$)þ¢¡H‰(y‚ªE €‡7 H³þ†D2S’ŠÛ( §XaƱ2ˆD˜Â­ ¥^í7êT˜deóýFÝ™p§çu‰gt„¥*VÜ / —æîïÏZF oˆ—wO‡G¯½þõõO?SÕï |ˆ!^Ÿø"v#(Üôó|¶^™}Tþ0¼Å&Ác* ¢wž ¼Ë£›/ ›kg ßëéÇ–î< 7¯T¬å7émí¦õGh}}Æ÷‚îõl™ŠêO«|žv¯§+Æ;ƒÇtFKñZ*c®òY`à‹MZ•þ¹×Ú§#·MSo/‚.Å|û´@ÐÅ©v<žQ P ÑØ¢öí¾Nˆ¥Ã˜0(²À`<ó’@+œ¤2ÖðöÎzH±æt¿µØŸÓjªë`~óe½ÝdQwV Ë•[D`Öóz¹Ü´cýKÆ¿Z/‹¥ ª5zWA…möw¤úüº#ä{ø|À}u¨˜`1œQ<ÖýtŸó(+ÏóàSž*§ÇV!­¡gKN­ó, 1°G hM™×§TÑéîÈn‚† q”óq0¡Ãýn[žy‚‡óªÆ4mÐKéPKN™ÓgQvn)§CB(ûI¡ª2õo²ý`ëUÁ¢ fjl>˜|•ïªo^°8¬dV Zèž 9@c¥õ g%ÒM6˜êsü¿[oñpö•[Å•Œ…É[ß —R¿ë=›©Åe5éìü“ÉÜJîóØ“?áY{0\ ¬ª¿‡êµ€ê¶(e5IhªqFAô±Ÿ¸èMš'ÿ£ü =¡ â^C´“ýÛ×ß&ØÇ·“w~óÓ›ÿ´”I_d{š$V ;šd'eûL˜‘ â“‘TBô*.Mv¹¸Æ1ó[!4çG©½áI-`GyнsËCĪªˆG=X°ì[z<5C ƒ8Ïbc3ÔÇ5¸+êÊ8 ñØ8Í‘µJÀ %På1pR®(’6'!9 mHÁؼ}ËÅŸ 7In†¨ ÿËÞ•5¹m;ùw =fë_ã>ví­ÊfS©Ôæp­³Ç› Ä1VEÒhG’=“O¿HŠiFœQ¬92@l’ýkt7Ý’KJ5óPˆ@èǛ’ p (âXïU‰{U➌÷ª­J[;Oyqô âåh³Ç.íz <åíVÑ»…8Ó»íTCÂq N<è=”í;Úœ@©W1Wõ¤|Óà €ŒÜc[ÕjÃõaéÄž«'²„ ”QP MŒ²Ä`j$¬Å€CŸ¨.÷HaSû›ž‘Næ9%<œHñ³íýÿ¶S!»úá?þïïÿøñÓ?~üãcyܰ‘ˆå£ìñœ:¢xg&.yü3ä5<À<Á¥_õ¤”ô@†Œ;„|¤nÑì‰D'$HIµÒGk ¬ “Öa)•áÚ4ˆK¾ÉÇæ©ò¦Ñ™oBû÷ñÏ1ÓÉt¡gcßFüü&ý ïõ‰Q€Ÿ#táÌfëú "0˜D™œ1ÄÆÀ;¼–mC1IÍj¥kQû¥C!« ÖLkK¥%OÕ pLؽÛPOo¿é¼©rùÛ–[¿•ã Þý ã€ ñDz³}Ü–ÎLýu Þ×ûùK=¥\A¤5`Ž[¤d\_9äŽ#%ymȹ{ µ¦Þ¬*˜íÚKâÆ*êZ»(j˜,ª"›å¦Rœ¤Ù{½ÇFk¾îæ*ð÷Î:ˆ˜B.ޝ¶„ 'DHOŒÆ-¡ÖK8Çù„2ଇ“”Bk ˜° ưs í0gšûµWÂÌÑ‘þÖQüéïq–Óãâµ^"š=€ŽIfûJ5LÜŒª"ï:Îó®¨àùØ¢¹Åp¦ÀV€$[(½&P‚Ú@PÕ“S€-¦LBbìBo‘=e¥ K¢‘RÒÔ€0‰SµRÖºFÔjÉ|ƒ h€…ï©@YÀ ( ;=2‹p݃Ó"@{ J(…§çÀ¯å±ßdl8 /°öH(ÌcCÞJÎwQoÚc±Î(üŠF'&ÇùãÃu>Ž+©Q5Ro>:†¹„BYáŒT. Â„#Éå IîP²½¹ ÌúšŽ~ð¶ "ÿEíáB~ë¢Ø/éM”Åã‚e›zŸH…&á˜ô&P9—kíoá ç„ i˜ ÷Õ€JF!­ýÿ#ãÍ#,”~ªnŠÇѹôõír¡´mêÞJò›•uöï™~ß¡Èæ¬fö”ÏÇE2æHk¸òéà¯"ÎÞ·H«PžßòÃõ•ÙèõôËt}û¶ÝšŸ..ßþòïßxûCUs$ å”­¼fÆ E´vIÀe]+n´5@hû²Å˨€EÆÌ$ ÿÏK2P ]lÖM‚Äö_øé·ÿúã—Ÿà§{_ÍödÞk4>##°gøÝw–¢á}ƒ‡*?³O-ú=dV¾sK¯»Ål»Ž#’:ކdU[¢ 5¼€àÅ’s0®ÐlmfUˆ¸¡žç&^@\2Ù„`R:äd0Ôˆ´˜P‡$·µÆ)GY(ç¥jøÜUŸfžëú^÷õØzÆìþÝ jÙö}˸Uø;[ ~T³™àÙ§ß›8a}u5Ë@“ï5pÒ½†Hr•\0egb‚!™H¨½K·ë×ÈKAkLrl¥’Ôl…Ô΢ˆ±ØhȹAkÿ P>?Ì#9\Zœ– Š@~¶[‘Õ¶ûzÕÀ¾ÉÙqˆVŽJ`îÿÅùNYž³Q,AZ¼`H|5$½[ ¢k‘þ‡¢Ÿà„z6%AO(¥åTqî€%YK%!†é(Ä›j'¨VP3ôºŸd .{ ^cqz‰°QUðjx˜6n࿉Çhn´7ÜÞ $A¿M…A7Ó»nªã6j¦<„ŽÉ4ZCOµ¥¦`vC½–,1».ûWg¬þÕaS-A\Úÿ¸v Õ®¶Z£4ØXê8Úãøè­‘§ò ¨å•h6ì2è-ذku£C°ÞY^·“¾ë&½ªö[µ~º„—sŒù?©s«¥²ÐX:­XHÙ@Á¸³D³¿®PŒ‚8xãŠN|âf©(r C! ˆ É ·NC†¸dÞŽ•õ+ž-ÂþºŠûeW[h]¢#Z^ M ågy/=@I]Ìn·xºê¹67%%K>5”U]…3Ä[ˆùXýª.§úÏü#TÝô€½Jë•c@!ލ·…“šj¤!¬…ˆm)µ‚èÎ/ôó\]Úfnÿ^Û©Ï”§f{Ò64äw©`áÚÿø½{íéÊéΰd±ªÂµµëۥݥb\iÿév³§hs9 üï̓zÒÜ ë©s»²ÍfZ`Â]W7þßÝÇðWv‡¿ôì yUu"1 .ÜØ7]ß>IèVÎUÑ’,!ÅÙßuÓ¿ª|¿¸,íõ|ºZM¿ØvaŠÜ¡,Ï“3BJ“è±íTòK F’O(àRäé]‹ °ˆ+H„±®VŒPCüê@H9ˆåH*@ :§L‡V‹§½"|37ÌŤ¸.ô½?ýþë‡Ê2Û«…‹'^R—”¾ûÃo?Aô)!éAëÐ —Š›y)Âø™&Slù‡ëMŃö—iÖ^%í:òÝ }­¦³Y:§V˶JÆ oš·Óyô,ï˜ßþ™vlRJž§m“Rj" Ú‹Ë´}•Í·Ì~¿¼IÚv™Žw*½î¦ët‚Ë©KÛ×Ê´I’ÎÛ¤ãótµ¾ò½éÃ}^ÇÜg}ÇTg/xºpWiÇ2ýE+Œ®j›9$ùçñB2¼) 3l¯óö:匹]«´£ö ãj‘>Æ|©³vö i{•>Ô|ý%mI¿ØÌÒ\­SÆYªÙ<ëX‡Â!iŸ6Y{–µSnYšì&&}Ë©^gÙ3µš§/s™qør‘Ñ}m¿Lí×´o•5QÖÆY;{̯) \«túëËô1¯g*k§ ²Ò×Y;} +—οºLÅÕjm/UÆA«Mú©V¬/SšÖŸ7óz¡¦é\眺žf´¯§éë^¯³ܤϲÉî°¹ÎÚ·_RÑðeªÕuÖc²vFä×\^]¦Ÿ2ÕM>ÂΚéì7ËlxÆM7_Sònu}ßÛM ÎL³.Z!7—©âUÊk5ðÌTqD!ê§6couû#‡‚¡ÀMüïÃô6HðÛÜeƒ@F¬á qÌ” [‡TœÃL;k%ñ· Š|µANï±zjΧsõ¯z‡'w(-JrõÊËHÔay‰(ç!! `\Ž<ï7W³ ¸À0¼¹ðò·$'‘©k ‘ÀJ3 ´òÒ™ ¬0XW#Æq Ë yß>Y"c–ÓÕUTÝ/äX¦?ZSó¦@e ñðYßÇ[µvĉù_?üÒÇ\í0JÎŦ;[þÕ€BRÆðóqIÆE<û[¨KÅ'ü†cÅ4 ÊÖÖëŒvZ)fžRmkˆ,¶’q‹©ÿûdÁq¼a¶ïà £¡Îzehø'<)ÏÑùê}ä¬ æ 'öDX”ã›É<šWeÃà 8áîÕöÞä!AˆTät´Øo³jÜ!ü‘âÐif¹SÄßIÿ–¸µHp €~á@@÷YLzÑó’ó–ô/ø Äp“·ä°0^•`B$xKÅÓS/).Ä„x¹TÎZ¢•qZ“âÙÚ›_¦&ž·„‘iL)Ç–Ë'+AR?#ñº=O—U6h8å}Ã+Uä•òµT‘h”]vÌãÚ`(€;„JüI5 ªàGé¥"ŒŒËÁ8Ÿþ9¿2þ ý²/+%rL T{_„”°ªÖÒ:ª³ál:ƒ–@ëÀÓ©ž{"”Ê~.ª{ä…]EË#ï;.©"—Ü"Qâ¼Üs[‚‰ø£*!¤tf‚P¯Þˆ1¹z,.cÆp&v”NM`èu Dj&0\ÕÂÕTx˜JA öàq­Ÿ $Æ>­×éaÞ3CMÜÑÉßH¬ïÛpP9hÔŠ}:“ÍB_O×Síu­àãÕæZÛ.5ÀP9Ïfº@L‹ËjHbH‚A&”KÄFjöþÝ‘ÁŽ4R2Œ1’’(ǨƒTÖÎëcΈQH‘®Peç¾ÝIÀòù>’'ÁL‹BÀOË´hùÿMòµ‡ÌOƘ«b~²“ƒHv˜¿;×Z:6‹=ÿy²‘aháN}’+ uÂ[DI Q86€‘B˜9.„L¼•b­¤è ŒÖ&ålnÔñ[ÛùWð±¼ø¤ý8 ’G9½„î ‘ì—ÓžC%'^ï¡„‘‘‚z©Õ4ø„.¼á}AK'E¥Ñ¼F– …šå„ä³§ V`©kÐ/­þÁë˜Ø"E¤¡v¡‹=á¥Uã:Žk‡Vçò³eílïºéö¦”ûu3[OçÖLÕ[¾…yûa¦ný›,dYà±™}Àò¹ýá Þ¤$BKsÕS\#¤€„ ‘:çKwímúÑ“VªWΙ"O†&P#é” Å…‚²€0kÔqx|ñÒÛ(¦šM››Ê?QÅv±•®2׿µíÙìÖŸ¾äÉÙ;7£§ 7ù>C»`ýDn†…=™À:Îñ®ã+œÄy{Øä £i"ÈHdµ%±t#.&H±G³›[t‰k÷ãY(Qm“À •Òë~@J& ©SÎ Ë9‘íÓ/".m“™<ÐD*&­=>YJ‡¾§¥‰vpy“qÇ!¬4Cþ>¤`ÁJHé²¥À‹_|è1ÿûqç«¥Ò‚˜K1”D5[~VFË~iΕu9µœz”†ÍuCpïXpÀRg_ÆûU!=æ"SMÞïrUµƒÐ²bágUdÆMµ¹Í»Ò}î‘á¸Í¤æ^û`’+±”£tc©y¶jÏ“}Céuc ‰;_/EØ&¾€{R'hd(ƒ\`aíàÅÕ–ÞRÄå8VõH­»üT"R;f9 ¶5­kîÕnˆÖÖ/ÔX{K– %±Dâ^}ÏÙ¯Û»ï—?«ìƒY±Ý–8À!Å»·/©Àp\æÊùÍ|koRâbÞJK ©‘“–HÃ9×*`k))Ž© "´ ¢s›„ùš(¯¹ô=#òf^ÈGß°Kü¾U`˜{ æ^YÖ#Ûl¹p§f2i€R ¢êh( Å…plÍäùíêÿfMÙH[çõï‘qÿ¶ŠꔎƒPpâP[ ©Ó y›‘X¤ „SË!{õƒ®mAÿÝN÷žG›{ÅÂ)åÚ˜³×œh‘ß«ÕgumÍV:”¥Lò î'®ŽøÅ§½Ã!Š­4ogBþ¿Æa÷Ø´9©XÛñs#‘ìký“š‚à $‘µð†¯øú.‘fU²Ö’CŒ vÀKd'°×ðMm™ßÚ"Pão–á%Hª“>(<_ —cà°4Û^¿¯tÚ÷ƒëƒ"0B± Õž†Ô Ôß!·%ÀË-Œ·/½Ð›ë•]õö›QôŠ h0¢$ä"P!M1ÕRKO„fÜ š(xtð35ËNà1¦Nÿ­b¸á ýµé8Jõ-EJû|›*~Twu=ß¾ƒÐøºmy(o’Æ×üeíyyA¨«EÌG7hõ×Sÿrhë±*€&Q™Râß5Ô]’£¥ÇeÐÂLZR⪎´’·FHF'<¤ç¯énÕW ÿ2p ÖÀI =ÉD;ÂTÚP`c;†%k…Æ:ˆÔ…»ªjµ²gª÷?†‚t¢šÉ‘ëB|W¸ð5»òÒì´o»Â&Mtµ•:©‚Ó‰ŸÞÂàc?E"¢v» Ã;¡UšörK–äV*±<:u/Ò6ëé¬{EU¼2^¢í³„iQ¢uädaÜ«W³±¾çö&ìn5) Im¼ìD„ÓéZ@b(j9t€{­ÌàW5èoPƒXŽö Õ ]ö ùÓÀP:±D(±¡,b‰bw¿À¡œa©xa©ÂŠteªÐ#k:¬ ØÝš&€M‘Ç»[Òt#L!‹¶Z‹4«¹ÀSK¸ RM혯šÎ߮鰽Ë+{ÕtveIYÓaEMg··0øØO‘H =š+i:ÅÙÙ®¦ó7¨+ì ºB†!ª‰ŽUWìÕñ )ËBò’¢bù ™¨!0im•ª½TÌ0Cjnu “Îô SÆ@Õ0åK•3‡üÎ{‚+_ Ÿ7°J”½i.¿–);ªà½B»JîÖ4J%ræÿ³w%½m$Éúî_Áã»”:÷°ûðzsx@OcææŒ\e¶(RCR^æ×¿ÈZX[’¢J¤%Ò XÌZ2ª*¾X2"#:¬>\AE\ôXÒQ´TdjKIJù 3…&nçIsìÊú¡ÓÌ!BÀ(á (¦„Q°Ó(h°ÔQÑNQ¿Á[|—jIº~áw7WóÛ3¯Á¶î|ÇòËwýÛcæ_7ëòU”'ÔXìùÎí…ï«»M ’¾œÿw…÷c@’0 ¨ÖS•Pª|“¶‹§Ð)ºÉU!TÀÛA)c Âqd,ÑðÏ[Åœ¢&¨ÂáUª6\ýFÔÏ5é‡í8®š¸åCÃ/EÉ/- ªã}H4ÒòEÆ9Ìi¤l`­…T$§CSn¡Ä· (IÔTm±}°÷Í0RÜ06ãø†çR9²Â€)9ŠNâÈÑñlŒÄ‡ƒ4tÇ[+ð6 4>& ;FK8«­,­Ñ$+¶lÏ/JÆî©oû¾½íK¶‹Ôw`aT/hPª¿!¶è“š±í0Öà*±œˆÖ?팔uS`Lr0%:ZÏ1 奖pêqÄ$zA¢dÎSxÏZóöqë“)kYÁý‡ÑÚ+ <Ý8èp‚­Ÿ¯,`Š[[tÌÁ?S%²E„‰FƒÛõ`èñþ!˜¯ãÁ´÷³?šî· }y|H}ÜgÞ†íxr\}Y†õhtH =nÌíàòOfé7ŸÌÝ`øa1üm¾GóÍv@úè˜È4:¤g“%|Sâ46~m[s;¼ãvmÜÝæ™Îèc(r !­úù?S+€–mr[ЙN·ŒN\žò”ÄB0"öX3ïs±óÎ2•§ • Ï Ð6X̓<8JtœÔ²¬mºsiH8‹]­¦gä^²2yÅ˪'x“¥™|š}zíeE¢·Qo™jjVäJ+fT2¦ôD8íj¾îUDVa§±…C=eÄX$•FV?#ŒeeGÝô^ܼWz¹èTt}m>j*´îã&à%Bf¼51ÑvYmçñÛ ^Õ K•GnT®|0˜.$&ÀX‘9E¥"ÞkÉ´7;+°%L™&–•n:w&%jÞ„ûÕ²öÁН¸”ªÕ´çȺyFÈuZSÈÔ4Û»²(îh íÔV‘™¯W™Àzù¦Ò8—­­ðþh|?v¼ÜV’züŒZEú»ô•òý³ààLJùWû÷Ÿ¯öXìkÉG¶ÃX]¾_ùÇEØsÍÊþÜvÏÁíÈèÊŠ3ª$»oÅ,oWyî(•ßôÀñ¸%{ŽÎ¿Þ›eõiG–·˜Œ‡S×ËŠƒË„ÀC'ä}¯–™¯-Ï+ ÷¡’qE%ã:þiy¸t„OÞ™''\‡ëlõwù×ôt‰Íˆ}(KUjZÕ´Zü>%ö2T›ˆ}dÒiªPäÎxæ4ñÒÉà%ÆÎè]ô¨}â_ë·ýÖ½O(¬O(Ž/DôžGÆžMF^So—½Z§†æ@^½Ñ„ŸM˜)FgÌÙ‰aíJ6ÉÒ`}*Æœ'3AÀNûZŒAB‰"ž"¥ãH@5ò)aƒÔÙÀÓÍŸµ±ÚûQÂ臯$Õû:ÏçÑ3iË&Ûâ_ l©%ÂÓ¸rãü,I;2“`Èç2ñ´‚Dk꣔Ö2šºF;á±s)rl£!üB²®2S¾jÎðoFáÑÿçoùˆûµÛº?†g”ë»À0EÉ0ÏDÇrñ­ƒŒ!óJŒÞ«(“.(:“çúØ! Rš²‰õçËšòó5a,ÛV—*(qŠÆ@…ÓF;&SwD˜öÚÁŸ;òö›o]””nxr?;àãwýïÛac†OÇÆlØÑ—3ÿFl܇ߑۇõŒƒn˜ÆÊ÷×táÔ»:'ÚCàÖYfuŒ fÒÌ©<±ZJC½± ¤@^E´_Që“+Ò,ÀTͲíþ8x€õÉÈð¼mbèýË×àm=šÛ§›‘5™Cpk·]t±2ÒD Á.„5EKK®¤âl–º MÔDŸ·ŸK£Qš–òFçòÀ± BEB@ç M –Fb}PTpe©S"m‰z%Ûì_kxýëñ2ÂÞ%êïY"(¿,ò²µŠ3,IdVv§.D\‘plæ÷‹ÉNÀùPC§¨ sD¤ë_¿¼ca Ú³CO&O­+HàŠ¢GkF”P¢ÔŒH2qW °—c´6{€„~$)¤qÙ¼0·B*Á ä FZ#ðOQT+G”cX{šŽz-Ð[Í>Ú,~†­¼g#zµi½-zßÿµ+ÿc$ 'N#;ûºÏj©`s«Oj~—røÝU³wäwg|ÌŒ¶ÎСÁß—Ñ’†»8‘$=¶ûxŘØ\MT…¹1ÍŠ¨&<ôD€õÀ‰´ÞGµÜ9A ‚…Wž*†â›ý¹lüžúü¦?ðŸ€|ì½·WséÑxé'Ù÷RŒ…n¥8HЉ>þ*šÔûMßЙÄ7"·UŽ;äÂðHµT\xN•×^2ã¬ô6"Ì¢‘òÚë÷Œÿ·_è8öyImÚ3úŽôÏ®7cáMéLêŸc¯¡DR}RQbi$yà.ï›ÛLéO÷¬Æçi¶.°Gõ=ë%<'ú‹õcaCeª®®™jJį%E(uÀÌ%grÄiDÊ%/!"ä°Á”Q†ƒcQ"tp;ÕF-á–'ÏÉü¾«{$FF&À³¦A¶òÓEAæûO¹Ñ™ï”دBJÍTY›êGÈ¿ç±7¶>¤JĘñ‡½ý}òpzÑ’™é:%(#3†So‘©@d‡‘‰o„·š[Œ6*FXHr1µªÜ…ÐCb•Ýw½ƒý >[k¯6e£E~±}k>ANâ•ÌÛÃñ«¡”„©D¡!HNÜ´º½EeÙ ¿!9ÛyÁ‰ÿAÛ R–…öÈå'LQf<‘„ÿ|ûMÛæ?¢z{[W© õÏŒšø¥>©(9fdÂ]Þ7·9ÂÍï¥Kwé²å(ÔÅqo‡|¢«èP•ÛûC™L•ŸñÄõé4Cµ„×–kpÁ=Ò{í¨r++ò–˜‰Ò–ke óÁ8~qERÓâòy`ñúŒ¿[̱ÿ»þ·ïò¾Ìð~[óü¤õN`‚ 5B@µfÛ¡0×áXK=ÃRMLMϸÛw@mPp£˜äiaI5ŠÚ "ãÂx!¡\p;D»²%WúëGLùlßvNè>§mèÉäl»/n¿° 6#a>­¥Ðj¾¨ºz§åÌœ”Õè+÷B(­5PI¹ AÀ•žI˹‰R_hÂç‰v.?{Ùo©òØŒ]÷†fา1üØä™/š&öi…\“…÷¼U´>¯«È^0¾!´¢&#àAâ =ãщ£Ó •Û‘•íÓë)1Â0Å­fœIl¥~)ÒE䤋^ˆ·]úüÒímÕñûÜ´ƒAÜÅPN¶ÄÕÁÉ»³t@ÂÎ ’Ñöm.UCTÆPKS¦ $XÍæèÅfŠÍ*&·€ßPÄÒÿ¹R)5¨ˆÂàxì¬Rˆµô”s†¹èbJmTþ¢MaoZìo  º_üCóÍ‹Ôó¾vʦ ÕiåYÇ´ i²¶ÑpͨsŸ ”C­Ïÿ2‹‘™ð.£$Õ›¸~T΃€,5c1Ø”["üéu4G *‹:&£“ìRðfªý?ÛÈ›Þÿññ3øÆ—o|¾G¿§VJS9‡S‡¸É]ÌeyËÈÕ­B‘i%0Ü!ϽÂD뜒R8Þ|œçÜÕ[)L´ë;Œuüí·üßÿ;Ü“pûp[„õz•©Dñ:S¿±ˆOÅÏ¥¹ üünð;-l¨Îyå+Ûí‘¿ÿñ×ßûËÿ|ûOdÎĨOÀpe±&ò}MôóS;:'ݨƒåášxrx(kJ ‹–¾|( ÏÀ_¥/•3;ßó€´¡Bz$|p1§ +ÂR*}r8S{¦4 `R_Ü"ûY=בˆŠC"e,KZr¥qŠ#;î­¨¾ḋ$¢à]†õmœáì#ÖoÓ< ÷ XŠh2ÃL 5­HZó¼MMŠBA‰¤æ‚x‰¼“1ò´.Å„U$8BÁ»^9ÔÍí ßMaŠE‡è úÏâ\…)^ÒwäµÓV¨Øqq›÷TŸ“éwp\ ãÔzmWÀb?3Â9Øå‚Q<­ldª#ô› Zƒ”Õa¬½áÔY+utÄ84óR› âˆ•ûïþ€pùɯùÏ2æZ8ñ—Ô©þ¯[Z¿.#'yLö3òÓ2êªÜ)¢>Íø ÉÕ_A@ w(Á ü)G•²Fz*”Lu/¥7Ò8!ëñgm‚’}"ò~M5‘S®¶siÓq¿Cx mÍb1:Ñ}*ëàÿ×±¯Ûm¾ÌãvxÅíýhºåãºl¹Ý×Èû:o×á‹Y‡ávÜp°‡¶5ÞŠ„·Q°N+\Xo7½pÿë•tÛùçùöÛ/¿‡í—Õún¾¼ýåŸÁ=®alîu}ÏƇ –:•˜ ¢šÜ¢Cl.^›DÓÊË‹%ÑNï×´f—,µñÁ å žyNh*á ¨S1R4"Ò‚†ŠÿgH.’;l6 …ÊŠ*Ü‘Pמk%V+¨zò©#–ö¼ÕjeOWä %Í@ÀtåÊPœtÌ–§ƒP^#T:q¼tb/wBñ’YFƃ~Ðcò‹ñ™Ðž B‘–€tô"!³ î²w¢)b"÷`ÛxÑð ˆp¯&˜I/±åä¹òeŸ8clïúàØÿõ+ …z7úÈY5ÛCDuÞûÎMž.•tÄn§hÜ]ˆð€ÊÕœq­f ¤Ùô(áæÛ29'©±W#·j´ŽšxÓ6l,b´L}E£@Q ¤\`a|©¡•ó{9Kÿ¯© àèÈ£±ÏÎ,rƒk?Í£~•w¯’<ûPJ´¢”h½Å›žslÇœ˜.“j0 F‚<}€–\xDJ)fL#>qç\3ÍÃâ¾[û HM,%7:·9‚C¼Šóèd´:R¡˜$Äiï8±†f¨C¦ê»û‰!‹MXN=ÿ³¨ÿû?þ»ì0b[»Z®ìêÀ“¾¹©ysP|åÙ $XãîÀ$*ËŽf vµºkéþ!`ùæˆì)_k÷J’9Þ¹\ŒW¥9a”· ¥zAý§?y'±åê>ä¾ÄtÍu@­ªÄÑ#ÕSVõ¬`Z6>’Ñ=W¢hÍäcýFójc,N‘Z ”ÓÉÔ'×@ÌÒaGóý·):äæz*R!Á¡lú>Ìî¼IW„Sq#s J˜D¸¡@‘¥Dbã XÐ ñ`„tX2ÍÁ·T¯ÓUd‚Ü/öÃõz•¾ÿQˆ*¥ÆRÉ*Ï‚Ò@râ°äÖ|”Ì1¼¾hÉË@‡pÂgøuz¾RwBPwóyz©².h`8r0‰Z"iZìõT80^˜ô–Hk¸ ¾ÉN­oùk1C/MÕ³Üd/¦Xø×‹ÁÝ›jŸ¬: ˜5Ï4j.1âqÐ<™cFj7‰ñhÓåøEKa&"L´À3Å’§Açju ,O0xͺ•,9§B ï­Á!DE+1AÈÁ°OÝ3¬çÞ6-„¾m?Gñi»}€™ üæü¾ ¶Û%–ŸO²˜ôŒ"¹O*ПÐÞA»á¿'Q<`׎¦=Òh=Îû‘1Ô¹ˆëƒ:wp«Výæ,WDNU¥ñ‰þƒá*­5Â9!-ñcj`z/d3:™RE/Åp='b(L>gñ&;' ûü;2w¹§/ö/? 7 >çL(­§o^éÎ7_ßïÖyÖÖ¥Á¸Èv3¤Tªgè#âTÛ(Sy쀂CؘW›]<†íjµý46Iß W6|¯çœ)žq½O¼zÄK¦Þ­¹ó“[ÎCÐ íf!÷,¾w®/Zêr] ˜b3¥ }AZAgÂ;æ÷ ÉÀ0¹Äeǵ?ÖZlôÖ+̽B1hJ®ÄÂ;b³"TÝó|Ù UéïLuÕ`´Š –ÂOÇ<_û+‘Ï}„ z" >F4ÔHØ ‡„…K‡ Ø‚J:ÖÕ-Š9ÁaDå'÷«íª¡šÝˆŒ„ð:x‰pZD,‚4 LjÎK‰œ1Fá”oÙ۔ݣv±«€Mãp{xŸÛù¢ùýð-)õÿœÕ·¾¸Ãµã`–¶Œ5–5´81KYchÕ„ä!~N×-½¹Šˆ™Öâeøº®æµŽÑž–kØdRÉd)¤‘Arj‘œ(E4§2FŠ±Ç¡YíRBÞ¹Çõ¢±²š„­²F¹8Ex¢½yéŒÃ¸ÏK1: ÷å¹ÿP™8‰{š- ¥ïJ 4²u:¦J4Œ6òxÉáOºAÑ¡/Û€QŠâey…;-dµ~fôãlxTY"¢ÖR¹ðÿì][sÜ6–~÷¯èÇ™‡¶q¿d­ÚMR™ÙI²NyRë7ˆ‹Ì˜Ý¤šlÇò¯_€dwóRê–dµlUå"lÏùÎ9À¹X¢…ƒF€uV˜| ¾³z‹4Ë«e–®?|Í0p i™ëcß“¯×L ÔÕcËÐp+f­é²eÖ†2ïû4vDù£#¯OÎqk`Ù™`D”KBˆÆéýø2ôtÆvoÇ÷†‘”8"€c‰ä 0 ¹„Ø(ä“Iȇ…TÿÀg÷ÀÛ{š7? ºÈk_íÕkÁŸûß4œ<8&G'ô} ­´`”Œ·­_®nÖ¹Üq@XOó¢aܱ¯Çå» z~ë ú#0p OÆ{õh”öor åa‘„S8ø‰, ãXÞ%R¨óðr»NÒiç/&ÎʰI´DI`óèè4‘–Z¬(³^I$ gO6Tâž’ OÑÚ6ºˆßRÛùzµš–Þn¥ÇìhsÇÅâ¸8Bÿ£cn.f-vˆåa’‘ó6I°\pDO­6|¦ÿ{•5³–Þ܉掳(£ÿP…½ý¤·=Á‰–‰1ôZ Em¶fTðÔø¤ ‚úÕ¿)N¬ßø¢!¨Y±¡·–kŠ»gé1QÌ o0ϲb=Âò0É'R$ä‚A*ï¸ÝöGËùÃsL<€H¢—’P*L¹EF2¨ ÚYE¥r¼ÑÝ®ôùóÚ¹ÇF0  vW%ÿ±ãÿÎåp¡a‹^¤Ú!gq¸Ãÿ¡6׃ƺ„{¿©aéAcY…I+[VW¿õlPb”1kHœ¨”iá5?t(4MbjºãVîgÊ„*ê?gZY€¡£ù1Ê=™ÒX#äA3½=TZ—±’4~ µ)í œ|¾‰¾£’± Óô«ï)ëû†¶B2×%»“<ãÖ|5$ÜSQ"pÿÔ/ü`y˜M$-&, ìÔ¤<õ#š ³,…Ê@rƒaìd‚ H"V[â›”u匎ï®æsùÝY~W£vºÖÙÖØWuSýß—ï_ >ɹÑb›|†"‰‡ué­< Ù‰áC•«3j„TzÑ@;¯@œ(!(".ñzp"QJm[@o_>JÙ·]ê5ï?øi óo·½ƒ0Ò¨¶±Æ¿Dhíܾ³ŸªÈ½«Ø‘¿àžQLEvk«ëÂF×ÊõÅí65cöI'ËOYíÄ4Ô/u2¾ý+=ÔžZ³ÀQMî›e’“ƒÒØtî tÉÊ ÔÐÊe©W-» Už×kù˜Ú¿b™4ÿ ÅúÕÿ¨B­mÈsÓ¾TŸÿ u„¤°oøúù^-"!‡x¼åINô„©6 ŒU÷š¬J 41‰pØ$X A@{—(c ™3;ºPÝ“SKoðýåçæ èÌÙ}³W°šË1ÀÖôÛÑ#våÆõŸü íÀ ‰±fµ ?t‡u†É±âýØ ?Õƒr©DŽÃqÏBPŒO; /´*@“¯káÇíT9FeB)žŸ‰°^³¥Ê«Žûg+È¡L˜Ò€îÉ1ó}ƒÜ¨o—­nwÙb«i´½m¨tȰõ8¯ÛqnQ¦-’ºn7J‡F1Xökëy-³Š$¬óÂÙ«þDJOcÏ÷ù:_¿~¨Œ˜úÏ…´H®L’n—·Ž ¼`´A8ewæ‘öv~¯~Èë\žÿÍß«ÿ{[ÆÚÞ¦ãæã Ä/Ž/å\ƒñ„&·„Ÿc,nÁùS‹Z·ÛO…ݤA̪ˆãïŽ)¾oØ"HÆþ‰S\LÿëÇŸn*ÝŒÜå¶@ÒÛåmç²<Ì$‚Q¾À„ñë36Ž2$Ô÷¢f¢bÚX¤ 6 PÚrdƒ[+uX1lÃaGJî¶£Þ«¬ö´ûª¢)Þ‘ãNç@Ñ{[×Û2 õTÿ1þ„³îŽÆ¿o©|‰1•ÿP’B¿z¨6êB>Sòéà=Ýå¢wSÔ+fÖNjy˜R„»@ÄËxNÉ]¸{ŸŸy†Åé™kÆü\ׄi%5BÔ9häRj¡u¯áªÞ^o<ƒé3œd×õpOQ¬Ëõ¿i„¤Íu4Äëý]%öñ(Ÿ”yšü)âГ?BìÄô;þI×k ç)ŸaÁH0bÜ«µ‰Wi9òŒ@Œež!¼º«Ã9&x29¢(øU|ë_‡ _ësù0©Y*‡#±€‚x„S¬/!ZÒ?Nt%‚J ©§d‰vÜBJ­P@P† ¾µˆÃ¯~£åöªÚÑÆÜ}øÑœÙŠÍœëKÏ€ %ÖåbwôQjÍo~û¢ 0ÑÛ»ݳýwoü„^·ý·Ù½ E#^µ¿ó vÝÛÄsÚ`“•IÌz¹íO–‡ƪý@á€!!OÜhmÒÔ"ÙÏ.–%H'L¸e= ƒj.©ƒ[ªHPÂ7T=¹*?'ÔîYퟰŠ=ák®½ã)f_á¦eŽ›M0è,g¾Qb‡1q„1µsŠ?Gʼn×ñ@Œ?›z9‡éFÊåH&èR\×OäÒVŸ•ÔÜR¯Bd8üPÜ¥ä w”g5ÂB:†w¥×;UnºN?x|(ï‹§ätø=¡Ñ=¢· è÷«Ùvܼ!8<·{¹ÒPs’2 9[P ÐéÊåÎ éfábÒÆ!E§’aD½,ÑÆ&Bz3Ê@Ì׿=„Ñ÷˜F‘gúŽÂÖäè,Q¥õÿ/››¦{öÎ/GëŒfýüžƒ—žEioူcpâ~A^™Ý`o≗ÜO.¶_€‘œäí‰[M* u˜'H*«°˜({´ õ›R._WÍ{Œíöi—´‰C¶NóÏ?üpûFÁŸ…­ÂnLs6oÌ=ÜA[öqgFfÇíz6ÜWïàxö{q`ÈñqΞSÛ›= ö?ÛÁ^ïFk”˦"lÛYWßiòÚ£àÓ© ;¡~îö‹ÖÙõn_¨}Î1{B‰Á±^;õå~â1“ÓP–‘Pbà.X¶ßûŸ´$ášs ¼ª™¦ÀÿOHÒʰPÊ0ŒØuÄö`õ_h•nòƒê˜ðpÕ0Dßý -¤§fÆõ?ð˜iúS Ò=8°É1âþyb&0É0øŠ…ü,€zš‹éîYÁ\š—ô@2@¥’BZe½„·;®A+¬ü%O˜v Æÿ¹[ÏóÄå/+þktˆ8£9­àÒ|X~‚p"ÆÓ|¸(ÒOÉÖÝo鮹¸Òã=…Ôú2÷<«îj8Þ?%DTÇyÖf0CçÐ>©×´àtv×cG¡ûýep¶u2^×ÓœÃk†9öÆž€ß ­¯*4‹Õ’k¯*i 8"J IüµWm\bâi)0ÒßVAh Ù3à<&à\U1¸¹ªÆ¸Ë[7AÍUõ¨@ã§831„ÁZ:ñmÿ²œ× d Âꫜ7”$â˜[¯$ Â<ŒÙç¤zZ8¢œö±ŽúRÿ^ýÛ–U¬ýÝ*âp{ûM½Ý”MRž&"2ýØr AïÒȽéÚnÔJEÆÞx['æón>Xd2÷šÞ?Áù¨È~ƒŽ:qÒ?¹‰sTeÙgÙñ%d‰ 2­ª6˜y³ü ,@ü,gw°@D,ÅèÄìÅ6+mðë Ö¨›m‚xp©L&’ šp @`I¨ÆÊ)…‰ç~xp·xû3qÆ&‘2 Èáî…í˽§÷v59F&ph~óÇ/oêû]Åw×öåòÅž1P†ÕS[“æË YÚÈAXÒîWwY¦«"›Zû^oäŒoŠ5ÞùKwz{W£{@ÿ%_ÙJ¿ª;:¾ÒYj×ÕËð…úð?X¯×íP'ˆ€9çÜýSºè;tÎ%€öc,ë·[Þ-æ@Á£ >õH¹þpÉ&ÿëFÙ@¤Ã©D@‡±”h‚ÔPi¼˜@Ð) Èþæ<¹éβ!š‹E}TïÓeKd#tn{óÕª û;ËÈ/“lË%OïNBè\ÄLKàSˆ×퇢‡“TÙ}¤³ùÆÅÝò³ÝäaZrïîTл)Ö8õ‹¡”Ú¹îªéŸ“J‡×šOoóíÚ,~TÖ£ÌQ»7œ•THÌ‚ÀSã€Ã“t¾±ä!åpb©”J‰mET‰ÓÌa„pHÊã ˜}µóäÌ„Hží§¥¿%#CŽõÎIƒ-si'ï)äø”ºQÙ”UÍÏîh6åi8ýd®=A÷¤Ô°v³T°6ZÆsö›úZ®Kƒb°ÙÖí\†(¬ýdÊâYPî$JÑãP·›é|LEÍ2ŽÛXî6!ÍÏ>KIV¿È¬C (LRNKX܈̕J×Yžõ õ v—DÌ(I‘äzñEj±±„i猢ŽjÁ”BÖœ·H;CçÖÍQ%”¾ ð #g­‹×ÕH'ì‹WO™‘›&­È½3}7üÜ ¢;/y–=x§Y´Æœqº`Bžš!p»ñÊÉ“ÿK8qÞîmŒJ$g. RþŽcÆ€’YÌ '뽡¯7ÛrYª2[šôÒ–ÕÊÐnc‘ù·{±ô2SuÄr=ƒÍM[ëQXæŒÜF-õÊAgwÛ!kzwd~¿Ú÷•7iŸ¨´o«Lmª…öZ¼Ài§'Š”ÙFÔdâÔIÉ5ïºÎWvùÁ^oÒõe¬{[eõyAH5SF ÑÜUù‡õx¬2›l‹E¥3á‘yðƒêC¤ñ)Ì:6¾äMêMM}½…QÛ*WZÛÄÍÉÖ˜ëu^õo®AÓ~R«á(©4ü™§ëBmªáGPéjØ”äë?óífØ|y9lIõÕ¨i3ªÕ7 V娖Øêº,”Uî\çm6‡)(™gèb·âƒö«Ñ«Ö+Æß§î­wMÎÅh/àZ½Ïóaãg[¼¿,o~y Êö›×ö¯¬©?uhË m«²ÿ9FZ”×ú}Úÿžo—{ÁÔoö˜=lë_W^Wõô—ºë^»ç÷Ñ<þÖõßkåÀòïÔ¶Úåè°ßßýb;juo¼Z]›KÏ…ÑÆ¥ª+,»¶›lù^­={lnU/äŸkÿæëjñkÀ†õå åê‹Ô\¦ëŽv<Ôß%„ýlSͬö«srâÌ«Ò  ĉ=ò›§4qcsª;S!tŠcj C\0gAÂ,'‰Dbâzq…½û¢]¹_ÕZ]î‚ÆA«3_ ]Œ®ŽuB ò¡½*>ìáÏ7Ðï©E#^zìßG6Ÿ¯nÚ’Oöô²ëÒQ——»†sgØ:O Å"ã†bÒÃŒúË…M(ã/râÙb!Bú5|N¬mØ9F"ÁH cd"¡¶ZA¬(&A‚+èD¢°²ñIF<_ |jlÒÿjK•ÅX¢»)Ñ刷Ûâ»^§ùà‘ÏK¿%Û zš‘òPŠê»ý±¬ïî;XåZeégUùõyš¯g2Còˆ ò¤â´Àö+­PÍíSän¹,ÁÚÄ2¤<…$%r ÷âI+301»ýüËâ5¥é€œKûã÷]ÂVEÞòÉAѪèŽÇ}{ÝÅ`öß2bÇlÝfçaüjçp¾[îÍÂå½™a¡#êëS_ªfņsº@u_mœ>tõ€Š.…Û—û¹DbQ‘/åá±Ç¤Ê›Wa»Æn`Ä,ÄKŠb‰Ü¨ ˆ3ã4` UÂY e TR2è  Bv"Å>_E@"ŸMU¯CmTñþcúùp {Rä›h(×Qa÷U]㞣•zß2‚8 ,·¼”={¿YÌþ–t ‘ÐJá©Å¸Î—ŠktU]„—¼h>ÌEó•"Ø3ÿùœÚ$JËÀ«±ªyo­j>úh†*â÷Щ÷Ëåa:‘ì?œR¶@„BvZ$ÒUºò/“diõ9¸óùO±Àô%Uš5ÊâÄp ƒZ Ì€öøä­r‰ !Z¤½Ú¤Î¾œÞCcÒ|}½{ªt—ª?w®ésžŸöXi‰¾Þ,|Y~\s๨ÎCÝaŠ1=ô8¦ù1YÖ<3L\ÛÞózø„ã'Å+…MòîHý°¯þt~¸ì¼@ÄWX2‚z®?ÍǪó¨}~±Y±ÞÜ#–:(,BH&ÜM” 2“«¸¤GgŸŸøpu{E¦þõãé?Ç_³Ä~&EĞʆM—Îçq¥wÓ?ö‡õ-•-«(¤t±+®ìó³Í€‹7y€WŒÁò´]Í«R§ë*Ͳ`Í…²ÄªèKK8¬àÔ ÐÀ+,Ö¨ÕÁ! N¨F®Ï]y¹¼ω4Nõ-:¿4S‰4&ѾZ®"^_Ïi4¾°°8@Wmpòº^WÏ"Vlìš-k¸ë ‰ÎÀ¯Û‘OOÔ96j§·'€„Ã^õ„Þ—‡¹G»#„Ð> vâæ[EêU‡ $¢¥AÚDN¸€Alµ4 `E!2H$?wqp|UÛhj¥3qÝ<&ðù¦Ø³/“Æè¡# N {†í‡„íjo1Ö´ºhn-/þ²ÕveÇcÙ´uBˆu•4­IÓTcá2`áÁƸ oÐ×{ݾÜ8ÖÙõ4¸›çyŒÉ[r{Ù˜Â4ÓŽåÛ ¸ †LÏ§Š‰Ö–š”H’9;¨sˆ@Á±2†s“X$¥–9͵×Ùñìt¡=ý¥Áí«øpÙRðN-D§£Uשè^T©síÕ§|sY''n.µ¥jÿl㚋ܳUð­ÛÑ!‚G3¥§m—SN¦ØæG[¦—ëÆJ˜ê 3õo¾®n_õ}–ßêMZDgÿö*‘ÏÙ ïÛ(;BkxŠ9ï¢c|¥vÝcª-ÔzCzçO^2ü¢sÝÍý}Ý;r5JÃU…ËþþJÍ¥­úÞÐ=ã¦Eµn ²õå6-«NËÆfV•/æl[Õuk^å]ŸeY•çÙ@[ÐE>­†­Á_Ö÷tZWêCghÿŠUÞ™ñFwµMû}cö×úf#ø]í¨ö`ÊL³!:§Ò0À¡@b0áÃ\ö2¹>Ì1¶'*‘7}±KC)*Ñ„²ÎaHSŽkéT'zW‘>«)‘3è-¯²ðoZÙà­ÒÓ@îQ±øù—1ÊýüËãÆ4ÿ*Ë´vþaÙ1RRîOíŸÐ>þa³âH­ä=t6ërg}åíÇËcìÿ³É¿ÒÛ[(uóUUv³Ž¬É³^ô¬§=Iç‘v3ð^Äê÷y‘m/ÓQ„\±..<m”K3Ϩ#-¥ M+«ëÌÆè‹¥Ž*ƒâ_í 6Òt¡LWÃÐy–Y¼Ó/màÍ*ï(@Wï=\zjþh7•¶Ç]僭ÎÊôT‡\oÿŸ½'ëmãHóÝ¿‚³È¶\÷1kIv3ÁN’œöM¨S戶5¿~«ú>Š-±EZ”,$°Íª>¾îþî3ê yfüÛ¿ýþË߬3Tœ±ïrèµdˆbÄÒêC”³Í«K¨‚# Âey¸„“½çY£—ŽûF8(+@%¬ \#¨­ÔŒ ²;5s0­CœIôôhù«ã~‚WoÀT©wæAØW»þ¹æ>ßpºû˜ÁÛX $’²'@¡Ælöíî=)ÓºûSyÙÆî 6Òá3Œ‡ç”&á¸H!Áîê¥ TX.rH9‹”±Œ(Í‘XÒó)G«Êz’Ê«W>r4>ðzDÎW˜?Æ âÚ³‡‹Ó.Ãò¥Væ:ÈÖË‹Äß}Ø]ý¹uõÒÕ :¯&Of=c‰q))D3D$àÓú T7¹¹ë0•”¯‹ '‡÷è5…kJ’š¢•œ@"¸=_Wû‹=eàl¿šÄµi¡ ­í‰êDóÏY´å¸,”Izï~ovž/ÙŒê0žøüŠJŸE0e„Å ± íü¸ðwþ#¥m5\ ãZ2Øòzš]½ŸCæw( ›JÁpŠ[æÀøXBÀg‚®ù(–¹Zn¶Wá3ÞÇ7P¥+Xø‹`Õ{ˆ‡V8®GqÑñ˜ñ-òÍ“ªl±1Ô}‰jÜ áL Uìi5ÂZw‹j]øLùTá(³" 1“|r}G7‚8j5:)°^ I”aÂPFœr†:ì¬À^d°¶„¿2ª'µ-ó/™˜ÚðÊ­NÌ­JÓ°äTóí `Øî1TkSó4 jŠ©Y@4jq"ÁšÑôäŠx«ÝíüËo?þõ‡qÝ ;‡…”Â(…xL¬ÎH5À@¢,glßo‘%<àHìji‹[?Æ|åU§åUyUܪüfIvU“â}ZU}Ñ3Õ©*øÆ5*)8ŒõøN2ïöÂq]J G 0ÄXI±cÖf¬ ¬Ë"gµ00ð2<ü)³¿Ž˜Ú5–šþ’Î÷$q½FŸŸ,çêž ¶¯Òþ×Êå7a]ŽtßÜ&`Ýþn–ÿñëOõf®<«àx,Ñ~ó—ê ¤àHŽ=YEξœØI‰¯)æø‡¹5KëÌ0¼5÷ƒµ¹4\ÿc~³ùœÝìÛù`ë_«=×.i±»x½ÞstAqݵͧäZ0‘•×d4ìÍe(»·¸ÉßedwýÏ{€-U‘rÄOs÷¹“±WrÀ¾>ðL,ÏXŽ7šÔ/¤"\J(£µ¶ÕÒÆÙt€\¤²ù¢CjAØŒ-3œiPÁ U΄ÿ%’ç^ÒžV4’úÄ“µ‹ÜÓEã¹uK:_!Sá|Þ )nG¤¯W‡jAI £÷ŽYø%rägçêm>;íí?·óÅ|;L³ºzZ g‹4û\ƒØËæ°f ¤©á Pb>£K2mHs•lLÆ]TÄ2i!”ßwRCz¸^£v©ÅÏ"®Š‡h:ût‘ÿKüixœÚD¥|¨0´×¿ÿû‡ï/A· ~jÿ¬MG¢©íuS³MÏDSêí‰Îžš¯—û©Ó+Wö:ww¤ÇÚëËÕü‹Þù=ûóåžÅÞ¹UOâž27:7w|¸íÈË ¾R·WË4Žå[ùWÙ÷[´gwþåFÝÑ…½¾ô¯äb¯¹çðôÝnn‡íÓr­ç‰ñ¯Åº»5C.¶ü¼›Ù5›¾|&Ûã}xÝæ€ôÞ—Ej,|Ø‚þB•àú’ ¤ì¾Œ~Õ?¶—ùˆøÜ±Ûõ놭›¡Ï:¬®ú®é°¶Þ&ý4·nϵk¼ùSýò>¨Ñ™Åw»NsÈeõêëÍpÙm0¤7ñŽåÕBݵÏh$\·NÜ|ÜÝ^w–v7íÂôíüÖ/Û¿×ÃS6aQÝÌÿÝé‘s·ûD¶Ëðg××ÝûH÷;½‹ÓÝ21)¥ÿô'“Pλï꤬yë Õ @‚n&ÃŸÓ {Öjµ]æCS‚(ö™œIg¸ŒBäâ 8”°kcl09œ`ŠÌéfç¢QìÖ‰ÿÁb-15;®n ŸÄ å˜5bŸ¸BØ÷%Ê>Øš’èÍ~ÿèf߯” }êÀgµv³p°»­›ô·ëGt!”¶I·„0kÁ—ð;¸˜ 1˜æw.nSZ~ãä«”# ì¬ ö•V(ÀµP; ¬°Æ±§ ÿ–ói¾¦ÞQ¼“zï©rár~¾ùø÷:ß¶~ÏýÞ%¦ë[qL"žÛ9û]uÙÃû_™”JÅ8=Î1ùzTÒi {kµùC-à,³Å1b©Œ=‹´NǃZ2çƒa 0´Ê.9ÄÌÓo[®Ì:a°$yúKYR"«@¬÷%jÅ9sä”"+Þ®ƒÆý@)F}:Ë!ÌZð%ŠÈ!dÎ øý«‡SQ™BÖ¢¥%˜PHâ¸Ngò´O‘„0ì°3‰Õ}Énù—‚]Ês’BO‹©­ÉH Z¶ÄH~LGŒ$„„º½ÚÅ!G‘·ƒ4‚Áq¶1$ðÄ6ækõbI2 ï~Ù){IåNKB…qVK… Î ’ #=¶ ý,„ÄKbÐùçú×›ïú¾ø²YþeS<úÝú6èÀ÷›ýå5;˜ÒEeÊ!C°‹Ê%Y Š„²ƒ(œ˜I1Õt¨nƒQx-S3“­àN&Œ™‚HIÍs@g´µÈÎ’auhºÛ©ð:Î …ã1Hÿm‡Ö÷-¾n‰Ò}x“@„6ö£Žé0¸ê»ê²‰fZ ‘þÌ^JE8M#9 -JILí — ÁÖ@`²‘]ܬ²²Ç˜>„" •ñ‡ ñ8n±B‹‹˜*•‚¶u–ÛéšÙç_ZnìÜ4O~ü8ûÇpéÊ,ãÔ”q6 hA'*NÅÌGKª£h1IÖ’YâcGPî91Aõðœ¢p(qz¤#V!Ðèyò锥ºÇDMÚ¦qñ6&©ô2þ Wj^%>öÇù&XAwÅc·pj°@Ûgf9šuÝGݼ+îp@3Å.õiµùž´Bèßg’t¨® eVذT‘”|†0‚»'Ö÷ª .9AYSn47˜q" 6k s.…µ$:Z¹åñ¹×œ‰Ï¨MžÝCçùŠ¢âHŽaUFÞˆµú•&î®IÓ>1¹C[„N“„Þ%ñ¢UbÍŠîâùv¾ñXÐzLQ1æ5Ø)G0bÑ8’B°‰:Ÿ³‹ @€<\-}”Š©h$GÐÈæH i7„KÅ00NAϵw= ÿd4mu¿R/©`l/í@M÷²yA~ ëÎò ‹Ä‹è@§ t·k#}ßñFz9 „Yߢ|†(dS3Š»Ô&ØMZ±^9 ¬@¦ã’6+Ç “1áœjY`½—vpq2úÖfÜ~†€K(gA›MÅâùÆ­ý&`S|û4^óËÔœ*”âÌKG`® ã€sâ„…Žx„=Ê™jÎC‘õܤËä4]Þ‘.*:ü%¾þë;”èÒÙB©ñÝ<¼“£\V Ü!•CwÉ4î«n °Ý.­µ`m`I52„Ñ1¤Ó ¸ë;FjN’*;0 x‡™’ÈQj¥Úpƒb®›3[hŽt¸§s†à!A{HÄÖGÀg%®:€§æÍ_ºÔBàñ©…ô“?ƒ~„(NRKáéèB”ª<ã”GÃ’‰^Æ•Ù8sµ‰€B}¡©¶€Z¢ðLií1ÔPc„@XV)Šb«w¨‘üÆ3_’õ6›«ÅÎ% ,ÚÅoµš_þðóï?_¢—hèTˆ6¬3hpð}Ž…Ñ¯.&¨ýðã g?,Ô®Ö ÷`x_f*ê”ÈÕçd5é1È!_L°ÃL1¿=<¯Ïê.ÅØRü¬ÏÆRÜkÈ´öðª$‹êr¦ vøPÃ~ž•…Ó{œ‚“tH}Xeß´¨”Ms'ïgl TqÂñ€QfMD — gˆ`Ê&5ñN…§ò>õ PǵĈÅ âA—SÆŒ±cÄp&ŒÃR:Òr·ñ›‹¤šúêŸúߨü©¤þ÷ö5ÇD2¨¨õörqµ*=ÐoVËÕ¶ÊŠ;÷Ý]yoWwÛËÛgG­WÙúì=IÙ¸¨Ã!I¹Y^ez¿ÃcIÒÂ%=.OÃÙ’Î$‡ÜI¯¼Ñ&ºÀÑižrQ „ F†—>ˆ™ R9RÔã`…(¯µðÔi/9æÏÅì?¬óåØÞÍ÷êéý½áÒaG|$/„XN,ø¨ïRù™Jø`ª2JaêDA!æ9ÕÖÆ$öˆè“Át¤üDn¦’Kó¿ý+™$ÿHïS2š|HäyOùð<þI·è6E IØpšè?Š}3DÔ¹Bôè µ°ì‹Ý„Y ¾ÝRdУžª>7«>#—[ŠpÌÕ×±o¿5– c9äTxhƒ*°c\˜V'î4SÌ7VËV¦`ÜÄè[.Üê~†½2dÂ‰Š”Úݲ_®@ˆD¼À„M ^l‚*»\opTYÁ ¸~y2‡•lE '*¨²\AF1½òG#Oê}­¶NèýŠ)wÌÚÜmü¦§Ê=JW;Èa‰2ÃàvKïKlÊrlzóÖmÍÛê¬ø,s™$1vP¤!HëgemÈ­° ž•hZ§ìú>Ç¥*¥’(í˜qD+ë™×À%4`"L/ŠhóüÞ;~“cYbþ¦9|ç½÷0°ôªÿ°¼mL*Çz¾~Çú#‘³âøc(ʘ€xF!$ãÕÕÓçïÅî3)ÔDÆ8{Û`Fµ¢èwX`&ÐH¨”nú^Ÿ<¥çl9ýa,ý¼²@Z¼œ¤xylÉŸ£IlsÖåäø‘¬¼¼L }×0Á :!YR"õ £èóöíÄ6$Í]r¦†/UÚ‚Um@°1 ‘Iá´qH¹ §ƒÚXžÄ_[~ѽLâ`&­ƒó`-OĶõ§¹ w•ÁËð¦ëÈ~2USx€²AåÂ#=ðœÅ.;Òa…õ”MýsU?ŽSýÒûe´Pf‘SÃ]oµLï«-=DkRWêÆ ’V]»…¾}o¨ÇÒ»Õ‰)ÉlO)áŒéºÌ—»<ó æÑ;²±±å±¾“z¬æHáE.¨™Çž„§T¾ gÏ7Ë,vyÖef‡P\ºíÅWš=IAÙ *ÄÎÎ#øånø„9¾/)5Ë)õšÀO¿þöËWZÀ¯ÿœ;w³Ÿ\œo¼¨‚§eBÝìÓETrí!Öuü)r¶ÿh3³>¯ ÚÆ´çWÿr—µaNeæP3d#õ„ËÝ6úûc.= Š/©*uŠ(%T:”&°0ÅWÔ*[qó`—IþC¯©±bzË««éžzüòfå\"9mûÑ-×jxÛözç'ì&¢'Gã}kù¿)å1¥ƒ4.$âÌÉ•f%ÑõKgŠ«½«.÷ÈÚÓâj]* K‹ÓÎÚì'‡3ë@™ò¢¨BI@§5Ý̯Ìwß¡6’£–4#B‰ÀŒ(‹1ui’g:…Ä~6m5æýtÃÓ_Y,­fU¨WQbD¾#7ÂN`÷ šdx‡ìŠS²¦Tbg$ˆ}Ä&vÀÞÜh³˜‡ç±Sh^¸“Œ¢c¥1Öo¡†an ¶$ÎcBØbî¨öÛÇŠýó¾ŸÄ½0vÇîääåÍ¥[¯‡Š­Yß­ 'ŒT.›ä\¯5ž;Øl-\¢Ë_~þ½}ô5ÍÁZE_w§úu‰WpwyJÐðÉ*ðžÕ¢ÁõÚ­sÀàÉV­Ò;·“˜ܬ†×øë‡~¼ìiC·›Dl§^Üóòö.Ÿ†0´×÷œºU‹ÅÒ$´:›ü¹¤ú'QÖÎÌP¬8`¨Fy"ïl$FÃ5Û'õ5·ê¨‡´ñ ¤­n´jqæ~f ýö®¬¹q#I¿ëWàqÖP×}ÌØa·½Žžð9Ý;ó¤¨SÍEÒ<úð¯ß*$q ”Ô”º;Â…£€Êü2³*ëK ÎûŽå»n¥ÒmÃPdXPAáÈx±ö¤*¿¤ìdŠÊb+%ôF+€'VR/´T Î*‹´)9ðÂ>—õ»ž¼‡Ú¢Aû÷mÔ FÓNÔLAÊ*ôîêHX-Cøï´ÐÀø^Àï }àÞçuÈNÂ7h£s/X·1ºÍD~Zkl œlÂc-¨D#zðºîXØá³§‚£^,¬²{ª>$)ˆ2Ã,fùŒLðÙ>¯Zoò§ X`£  +K"§½} B4BÈØàQ³ÚÊnÇä\D‰ÿR̨ýÙ»ùèEÞû3ÃÕï-¦EaÞLÆŒ†ÇMæ+T,A£L^ÂÔÔ‰ÄÆâEÚîƒz­·Ô3•âN/ÒÏ~æöð(íüggúO¹”Ÿõl¡UÊÚI¬UºSšGíI8ò᜸¾ŠÏá”bh׫ÿYÍÔµ‹“àKý[;…äoGð3ì_ª¦åí)$9káP|¹|ÿj)ˆÈŒ1 N‚Ÿ<Œÿ0Ì PØ© Œ{ª´Ò–Ë,Æ‚3fŒ#ða¢€m¸ùD!¤O|ïZög´¨‚>ü|ZÜ(D¹¹Yp*U¨ULŽ[ÙÜ¿-çvcÖ“w“õÇ¿¸up,o&³ëEd› ‚ÿ ዟ_½©`;t*¨Áb °ƒÏ#š³kEò]RÓ¹î†céæ‹¥šÍIÌἌ™š©’˜¶a÷ÔxîdÊcupÕ  †5ûTû5_¿œ/ ›ÜÜÿûúûï6‰Ýò¿¯«ì6ÝoÁ‘鯏Y‚)÷¾Âå^«Fµû~_2¨ð{?^Ù°_‚©æÉ̦ÒN«Ö³ºDÕÚ~Sjb¬tŸÉYÕýkjÞšÝ'òæ¦ñªGù®?‰¢aœanGä$Ú3ðô¢ÖHiɨÿ€Pg€ô‘âJfXðq´Æ°ßþ¨Û¯°ýÎùcMöÜkQ"àE¥·y¬Ó¬àŠÊúEåá[|½èg½HÕËs“ä=_OŸ8s ɰDÁÜæÍ"&?âK‰úÖD€SŠe\9¯Q¤Vrà12Šr®…'¾.Å›EŽ®H^îx-nþyKYøÈ»/qà h}sË`pÝÁö"(ŒÅ ÂGgß—…`fˆAåh©ª`X¶  Á ’x®¼¦4xhHE´´V ‚‰å°)[%éd)VŸi}½•Û.Y­áÇ—ÿüÏoo®`s›É½ï£›mÖebý ?þò¯7?½¾‚WÍ÷܃·¸ÎÝr9_&šJG²g{ÞI±rÂQJlË{NÞãf—€Õvñº8~èû4Œa0ü£ CBŽ­¤T{Ò®úZÕÍÔ!’Y)‚A æQi'5ÅÊÈòJ¡(Ê…àÓ‚ZEÝÁE8NÎ¥<>²ŽBC¨Ô†£ ¥À§ -CP“˜.´¤¥½øê°Ñ@‹'ç¤ì`à"%ÿu èT`,Î.Î; ÔHtèLAÕnñ†µú\Èät¤Xdˆ@2vé >oWmmȉ† î…J .)ÂLYoÁÆiBœŽæ|ƒ}»á46ª¨íä½ö»P°Úï­|ïE±üñÕFì¼lÚ®øY¿MÀJœqÆÐȵíýs±hØiœpCÀ5ÕÔB*˜×LRËš†c®¨8Ñ üZwJ¾ˆbm8RûX0Ú'‡À(A‚e#t,óÒÁ \Fn†ðRèéf;Å\¬$F‹@LQÆ4'ÐH ûØá?“˜ppeµÙÖØ¼x½jeŠ<£Ø¦¯Dh³•»oJÉË£äÝ+ùXù€º\·éD¡Í§ªOù¾G‰íü„°†&Gnç‘ßäRÊKÙ[ãÇQ­CÄÂ@Dx-BÊ:J€» \‡àf—•þä4î<ȺÏ\u’«Bñ°]-zZŠl¢J¶.ÊS_‡ÞΙ§Ä´[·R –¹yóù©ÙM iEp£FΙ—XeĬ´RXÂ4%Ô )•y2U¢pLÉý̸?#ƒ™¤mˆÒ^ã ïNÓ§.'ÅLôèÓ¶W)MâŒÀŒJ$Çrp®Þ†{ÇÝYòü7@IA±—b´aœ:ÐÜkŤCA£¸ 1$dŒ Kƒr?ûí÷¤ÎžD+yžþh ²YòNÖesÛ’ðqKYî\QÐ?v¦ÄãÍ¿îÜüxCšð··OjU;Q(Š_¼Ežz‡D½4?2XŽ® ]äá\9$ˆ/¾*ZøáI·9X~¦™ šÎ„À#¨6T C6¦qbƒ¡G×½yh"«Ç­M{ráÔÊâlþÚåt&ãÔar‰ç7^íñ‹óœ±Q¡;¼©…3¾;‰t©fÕkGPûÈî£÷äÍö7UÂ×ÓˆSmÚ·m´‚ÁæÁÇ&^§Þ:Ü-:ØÊ[ù`«l•ÖæÏZóJ“bÑ6Buiûú i>k@ÚFÓi° 8eÚoqÉ7>HÞíw¡ešI*øØÄꡇ™2Áf…X”c1ÇMZ ƒ)ã\Q¥÷ôx~Ç1eyx£œuè÷R­C®ëýøÁ£¶!$,WkiÀgú÷\†zœ»ËtÝi´êÒÆ¾‡¥Lhد#vŒ Z³CN‡œuH—ÚérXÏé!'±CN⇜$9IöÔ²‰³>Â(Þeï4„ ]ñtãwÙ£’Sž$…#§D·Ï+3<²~>ÄoÌK„<‡qQ{æ­ç‚s@,WÎ2á¥P²–CR}ü¿'2¦A™/YL­¡ùÄ<ƒš]o ^óO—Ï2“ä)…ÂH&$ âží…4Ãá&+ÿ((W<®hS)!ñ"F‘žZ °ÇÂ0¡¸n çö•¾H`]þòò;/­>^mñb 5‹UëA¾~‚’%\/'×Kë ‘ÌîJ 1ÐP­µÇÀ* ¨sÒÚȃâ\¶¦ö‰l7Ö&¦>1åb ;úCoP>dëÈÊ©¥yÛKNýiÙKavêVÍÔôãŸ.±©¦loWŠ™>LYª³^¸c G~ÆLÞ®o§×›I_ók«7«gxôM…HyD¤~â‡:ÛC‡ä°Ãjñæµs×dø×ã¢_y­W T0ÀD&a\T ÇóWö,Œ®H®É #´Ö  •1Ö;¬¸…Š` "³:‡šB§éŒÏ¯¶E—ŽS¬s›,ˆ#–ä8’•çq,ôj+`ihù ÜrIãùþ™ !óŒpÀGÒ¼›ý±&U=Ì4/@T ®£6x‚ ¬$Á9ÆqL¤9ÓÀ+ò©²F^½ü¡+±¯îû7„‰ƒîú{T-–9ìJA8IäSMÇû=¥Vtp#ý´QîÃB%n0ʵSÐäwäu~›(]–Ú¼ÚŸ—ò É»ÙUŵÜØj'Þ÷µùU_ËRõ¶¸Å¼÷²ÕF'0¶½7–gäÊD8êºøJmk1^¼™Ï§«Õ,uör> : än¬ ÷¯A`‡ïBHØ€å¢7ù®/©‚ÛK˜ÀÐØ„¾3s;‘\øR’—"EëIY@d œX©±æÐ{‰tÌcÇ5GÂ?âèô£i¬$QìÀåV¾­[}Qîä+%"Xñ×v÷ÞÅ<Üo©³=õÁ¥ÄnôtãÖóùúmv>ql8À[0DÀÛíçî¢è½s lVº¨ÛQÍ÷»pëÁƒ°g’ÄUhváJ†3òBµ÷ǘ_!Aó‚öAqRcV¿7²ú©PtÚe=™ MÞÓòš¼Ö¹Ä&PL–Äpìd~ñ”|ÁýLä3m¨•R)E©§)'T@•P8¦eu’–æ~Ò`ôl§OΈ>-‚TÊЄ…‚½¥Ësޮ׋¼*—l+ùò:mq·×4]ó R¾á0² JËãr°”µ´à`™%+€R­‡€䡌lO„2Âo` ,úvžßŒÍ„œJœ×\No)ËjÈûJ<õqѾŽå›â~r…§ª+C•¨±¢bÜÏîw–W i½¥–Í¥V[ÈGRjÀ #‘BW`ð)båS‚øv‰¿Æ öÕÁ»7ÁMVÅÃIÁ½«$ À,2 àÈzîkµšÁ¢Ké-mD{LL\wqEÓC¤Öj¦Ã/Ë…’¯o»cu2ó󇯩‡+T|Œ® Y;®{óíë_à¸Âã0ý1¾ÐñÚ… ÎþÐb3ÚÎ[‰Ç_Îmòæ±ïIýM-Wu_g{ç¼²_é’3›e8–NX¥êÈr;a@'£©b±kÕ+'B*ð:ƒ\†?ÆkVŽt (‰˜°ØrŠM€ P$ŒÃ„£p0QÚ;È™ÝGRåþ½©ÏrÛ󙉉5ÍS¿:ç並ӧ+ßiІûU c$@b”‘Ük«‡ •EJc˜í(ŒúÅ$‘HË`Ö¨¶”‰ç`<˜öœ™ÉªŠ27•' Â9„¡C1“˜ŠŒÒ±[NÊûßp@Ø“8ˆ<Ä€!îBˆm‰¥CéWr­õó©çÞÏAú¤B“Z¹ñÚ@š „tÅú®ˆ„ (YFÁXúõ[7_*P¬j·V±ÚŒH%“+. C˜ιå:&!î-4)ÂyÅ(ЪOŸÙêÆûU »0¿¾>eaûxLÐßÏE‰’ü ñúñLJŸ¸yI^(LÇ‹Þßúëí½ Pøvö1[¸åídµš¼ë”,Ž7mhi—P–46­Õº›×:›®[Œ#+C#I0‹GÕ:—r–»©½!È1¢8€1 î>Z†È–H÷9OoU"/¹og'wåfðüLz÷Ì!Ûywšø%!¼ \IÈúKûóUØÕ9ŽðESðõpÀÕ ẍL×¾ƒ©úwDa#íÑÕ(O3ìô²0–fŠK"<´†B€ VžCe%ò@1FX-·a÷€ö`µlÈç̳Ñ…”]=†L¶)ŠG˜NÞ–ÀF… Aû‰# Õ„dØz"k±4V`5$€`±d € —ÂKèE5å×E/š†ŠÙåÏðs_:­N5ò…‚¨-˜I¬¼o‘< ·"9ˆŒ”87exììçd¹0£ù¥ìY‰÷À!è¤T@Cn¥ÇÞ#¯ƒEõ02>RÙù’6ÁÏþÝÿsŸˆí‡Íî3OêX©„\s]ÿ»ÞÍ—zœ¨çØË€tÆ8‡DI/½“Ên-%\Ž«öÑ1rGëš'µŸ"—å¼~w–\ ‹ÅΡÊý à f~¬n×—Ž^eiKl+Â7$$2PP°bGTâá"»É<Ù’–ÚÃ0 檓@-$ÎB% ’D(€”x»7™ Î>9¨5ó6&þiÂß/6w¥ExOš®ZÌÕ¥ƒzO#Jý:%ïŠR¿Ò $!P1‚sDƒ< ¨2Në¡s… ±Ü i£ÞH&µ‡ú E\0£ T¸ÂÙ¥³póÖ1qm¨nzñâ¬Ã£fžÁË ¹‡p\0u/€Æwë±5£HXf$’P0c"öÙcÀ#˜,°—B#á æ(ģʑgR½Î±åñ³6g¦ÆIX1;½ª*×ÉNƒ±ÅÿîÏ=tÈç‹åü6o2h×h¡¬m¿$d[RÍÅ)#(ÁÀôÛr…Úñ]–,…C¶Î2§‚€¨  –•ÑŠHh§ªôTÉB!íOɼ¿ƒU¤cô¦ã”©‹ÚEj¸ê°Dƒû“Êÿ#¸¿·sP™ìsí®¯ÉHÉftCð‡¹°â:Õ&ºwóð{.%38¦ Eš €(\[ =‘{‰7›GB¾äXÆ;Þ‰¨‡ =1¼VºÉ>Œ%S9"BR>ˆ¿îÆËU];_¤£r¹4h»‡¼DsböZÃEÖGÒ˜l‚Šœ²ÝÕ̬—yPÜôrlo][›åWãÅJéðû^™OËužå*Ÿ\Mî¦èj¡–+g¯ì,ŸªüÏ«_擱ùô æ…‡•]ås£V½Íùô5–Õz?ζ(ÛéqÕè|:Ïú£?»BOs²µ7Ñ hÁY¢k2¡hÏT\g»^¿ýí_oÞÝÀòÀAYù›‡ÅE?¤g1Ÿ|Ø©ëÓQö¯×¼×w†_{>¹ëß0Ñ¿#w›M¼­xEyéû[>ºY¾ªº ãghûÎ*y¯`ð„¦Pðe)•†‚3wW{nT’|7_Ïì7¿÷ÿ­V³Žîó¾C0º½Þ¼-¶›/T“œ® ËɈ€ØÓë2»ñî•\m0PTzD<¦„£ÃÆÉlø—hG(ÑA˜-¤gã <âœëÈÂç[±MI0HÊ5츓¥µ¦©¯pDE¼ä¼¬ƒ¹Ž(_u¹ôœå˜R†(HÈqí„Ü'Í"ü#ãx%̵r¯0#Á10¹»¹¬\¾JíúFSeóE‘8Й©|õÉûÔóæãÙ‡|Ü~Üx¶X¯nÔ$W‰ËÓÅD}꼟é|¹xnX¼n ™M ú‰Êß'®ç“±u‰ë+7[)3iõ·µzÿ/6¶§Ýþ»[}r+íîøX$wüêÖ¬Al«Ì9t$àC’…ÞŒõïoxWôæÅmޏ©Þq”ÄÒ\Áˆ$Ä6ü=Ì^ÀRç(§€|ŽÔˆ§ì„ú4çF;Ê©~†ª[‘¡f¦l¿þÔ˜~ΙáKo}µã¥ï£% ¯JyÈ yغzÞDo`˜ÕŠ\Ü<0¿˜>Aþ½²S2»=÷°`bƒÍ»²ý‰ƒ(b@:¡Èaµ¼îæãæÁ.-jú¤ªýij(´˜® bTBŽ1öPAnƒÕà­²ÄNëžÉS5Q·*Ë×óéøüS«Jjãþ"ŧøunïêWnÐkÂwT£ƒÍÓ6,ÔM eR´=#åâYµt23 ±‘`p`Û­»ùd=u7E„n¬t—Œ°2–AM°ñZ…(e0€WšJ™#9¦9¼Ô$Ág³=o9¨8"% fyÙ%°d2øö0iX[w·aºnL·¡^:«NEªÇÆÝX¡g“Eq”@N”Nº#ÙH#ƈ˜(颃¤ƒøAÌ<§Ú{JðLË/X†œ<$Kí$«Ø¼$IÛW¤ÇÍLÿ lgýž-û¾*8£‡¦3¥³yÂЕQDkËh¼%k,ŸÔÂ#9ÄhXf{µL¿OX1gÎk(°Öyh7Ø1ï”6êjBŦs›ìöKrŸCø€_oÓG²Í™—åõhÐݤ„ü\uÙéÙ„‡BaBxê°ú}"DÃQ] *ØÀ6âÕbupý>R$ØM ;M='^pT@‡¡vØpŠb9}­öµIÓ,Š_2ÕöC ¾hï\óýïæ¹ÇTcŽßuäý>„ÁŠ!<Ôív¯îÊ|€áýPp wXÓÀzkY`7Jt°¨Z:/˜Ù¨ÊR(q€|ÉfÇѪÖËÑž*ê[)æzU±×¡F{Bªg5ù´×~ãV4E½|¶]<O d ÀÔCëûÝëò¬„÷‡b=®ëÔ¶ñ;¬Òè`7q.U˜)% J°â@ï —׸/d¥&“y·ÙÁ£$åŒ| fé›[6zU2R`W¾ÛCô¶LÏn¿y§¦Z5í{ܵïó8£ÁžÝsÜ µ§¦%ÛP’hÈ„#L‘vÞÕX¤êeU’—Ú Gh§ 3Z2•RÐc,)Ä2L â(”—h=LØ“ŸŽà\”þÕˆ«[l¥žDzÛAÛ! U_­Šž”L„F µî‹D­ ^tóî÷·1¯2)ŠÅ”ií43cĦÖ8`YTã©¢;â!¯5ý´Q’Ï9¯ºÐ7y\xd,2 vrlÖV­ w7錡˜¥GÖ&qý©Z Ÿ.•ˆSÔuèÓ´ûþ›I¬•L ÿ˜Oïè¯~ÏúœþÇxõºlèUì¦W=¶düÎYQsÿ­î x ºžOþ®~t³}ÄqI³`4ŸM>ý=Qiz{~[RÖÐ º¡"á¯V¨Hó«d›/’ð’S 9‘#) s•ßO}P«âóÉ+$ËzáUž0{‰qo 65S 9¥‡Rp‚-ž|‰FÈäáºÅ™É~çfþdÛÍ윑EÎÈ[abå@ñôà“à⋠׿¿ûvl^Ûj^ùÕ4¿Ÿ/íÝ}bhðkbüªä¬äVœg|lÔ(§jqÕ\¹EÞ¾PìÍ ·¶ý9¿ëLøxa÷ö·Ñk7sK5ý²Ö“±Ù´~ý* ç×+f”w}Ú5ó‹`ÓÔ¾Š¸ûujû`ÖX' B[l«×½}m‰3~à£x¶ȰUq™:Uò°•D.¬„Öz„¬ R!G0¬q”Ç>>j›,ÙúñkºÍ§®w¹F•­/7°]õáã|y[¨Ñ'é„~qÅ_ïïÊQŠi¸¯£kUK°M µ~ë%òà˜ë^‘¶ó•¦:Ýs¿LÈ”#$cŒõ`Õ¥âòeJaM ä(/ˆ$Pj¬ñ^ ƒàÊ)¨½òÄ€#Ômòݦ÷`{ÀÖs1Ò<žgQ@;éU  ¬Eõ²·´âK=(„ ËXš ³½Ÿ™ÁDA(PŽðµD±6d²ø¢7–¡ ~Z@9°ŠR ˆP:¤!ÆR!$]8ã“ËzLÅsŸýp3mWüê'kgqùWãõô9Ù)ŽØ^°G§ç‚ÚŒ´ôHÆ‚®è-¯ßþ÷?< ÒX!ðMé‚…¸e¹!)k”hH‡)a#D¡ê×Ù¬Sú“·4&ók¨‚x "4™)VŒ"ë„B •­9Ö¹s:„k[϶¸“@ cZ¢ ˆRØ@ZÉz–­pÕE©8¥0)E)êϼIÂÌ]Ntæ{øR‡eÔ[{wZpÓÜHSÚè6úÝö©éD¦^‚ƒ€ˆ42•ñ Úe˜X°ƒF††|t3JB*È+hñŒJÌ tXXˆ•±'‡å¢­~uð>\.ôÕ|3> ìÛÿ¬JXÚì>&üÆ;Ì/¥LÎå{z+„s>¾ÔúÓszŸÂ{ø97ˆŽŠ¹=hc‹å|ñٕνú¦ˆU2Gˆ3Â&TÄ%ÊÓÃŒjÎ85$. k.ŒGR¥ âŽSÝ1ª·€EUg½AæÐiŽ}/ý6'·Ãíœ%†ñ[yžº—ë A‹  ,̺ÝÏ÷óeZ@‹DÎ`‰‰ £Àh˜Z <˜YÔ1´“çÎWS½Tu:þj™šLu[Ak0ò¼[/¾½Š¹-êÖ©™ýJ¯g6ìÕųæ±ö·Õ3¾¾Êйícа¥vjI==Ê´ìez(hq| )ár ò¼°¸™kq Iø)pª~)ÄÀ-ŒAA— 5 º´@€1É6[tî1›çÞ‡x–¹WcÌ}©vAHÒ÷Jœ4 -ëð†v2—j–òÕÒ©éîñRX_UâšEqí,ìè»jBë`@3Îø¬&2t#·­¼Û ‰YƒÀrIŽ8qÈÉФÁÅmXf°èмâÔ~íŒF’ce‘„Qg”“ŠPÌQ*¬„{÷Òqë$Ò?#’ì˜Ò¨ üEËmݺ6À²c¼¦²Å/΢8õqå¶À•âò±°rÛ”Û.ªHÒI§¬é˶Ô%,O"x°<ÃßC½¹‹¼)(¼æ$¦ ÀT ¨Â ‰UN!GÅ2˜CÉ”Ü$Ž'o+¦œ5Ò;ï‰ù.$È@м…(#I¤È+¤@Gм)=ýCt"Çkú²-u‰\7ˆD°›åÓL?ÆÛc…`œ¥9GF†1ð °§’Kh ”JCk©Ø (éKGˆ“T<Ï·u¬ÆŽëÛš9a'Õ×ó•ZM /Ž‘Óyjñs7§”ÔÒñ#‰õ’ ÕPÁÀˆN:ô>šå§Åªx³1‘4ÙWÐakB(þ1ž•Ei1ÁÎQ†‰:hüL\jòö5…=²ÚË ä)y¨ÿí›×·a;&üñïÿûË¿öÍhìϺIl¡í‘j_Þüöúç·ább©zj÷Bb&R;׫‡Y°žÛ»’˜Kw®H_v×£»–K`käåXw9¶c¹QÉ1 ¯}Uæïu¸ëΧj<ûÛè§¥s÷jÙDßàu!˜w\Ë;²-m©jÊ”‹€Æ,^¯QÕ–)iC0UÜLéè ÆòàÄ „°BÜ!b1%œKq™'“%c†4¥»$o`ÚvcçÐ|-{w:‹} ;¿f‚w]œ¶m;¥Q ¨ Ÿ Ðht˧­ªTS˜€5ˆ8 °eªyãÈÔä%ÏâD*Š5Và &Õ †p˜±úŽ{Leôº9ÇŠR+7oñÜÚƒöIѲï²ê‘<§gl2ÈɵyÅqˆ <¿9o­µbÎl[Ò ÷_Aœ0U3u[ÆJ¥gŒ6‹O úëß~þæŸ~8$J(%3–X¶c@7”n©H³„X…3<¬~öVêjÒX2¡Ôa§æRs‰¬¤2vÃv@[H°8V øöžm9nÙw…OÕ)ʸ_\ë‡Ø»'ëŠí¸ìd“7€Ò¬8à 9#KþúsáàŒ©‹%ÇqU$¡›t7ºnå‹7¶ÿ>ü› øH0ð…RÛsÛÜg­¿¡FH.gEu™üµ¶åÍAS¿úP“c9°Oç}#ÁÑ5° (Ù7tŽt‚GhZzßÍùzF6C£ò”„"H2-U@SI…c5Š•æ8•J2älg.€,ÎLØ– óñx}?±]õÇݸÛW?±»q#äû½6·a©Y ‡í³µx¸}d q1u³¾4ô%­qâHöÙ¬¥’L‡³…­½8§ÐgÅF‘fÀr£)ˆYh5J©¤ânÌ0EÆ©&$U˜HóØÏ‡þïíO¯{‡©®õç·CòNÏôå뢴1ØjÈP¾¾Ö2ó·ËçèŸW¡¶w¯ÿ6ßkêûÍÀ„F¡ßä<áÐNòàùî*Ô|Ø4ƒ9qƒÅ î½hh§C@Ž·‹üj¸ ¡¤…Û¶X¨×<š•½ZZ{=|¡Ó{‹R ÑÛí?{ŽüX½)U¨ºP ½…@ó0àú*Ø8lpRfØúwOXèg%qèÍa´Ûù¿ómç &ÕÍBgQèõÕ\Ç`æ*òXoÆ}“/º|¦Š³"T̺°)œGX‹q„¢ªÂpcuaì™k\æ*ö’ Ò^ Ž¢Íæê|üEùRÏGæá7‚±Ô£p'Ròq„ót¾ck=Ÿ÷âpVÇÙ Ž8ÊN„ÄQnÖWøüúL­Í¬_ÍâÀ,Žôzî5že1:òÀ"rà¹Z•Eu›5±ˆ.ª‘a7Û`¸¼éó¯ØB;X©>›‘NGèÕA«ÜIÇð(•9GgY_Ž,Wvš-–gÚ˜ÈG{¨“zc@ÆÅš‡^¬VË8ta#ŸëËED¼ÔÀ«2,Çú,WÕÔ)#À•™-Üg.ô8W$BË¢Z5,ì§Ì™—‘U¬ñ΋"òñ5x^Tj¦#£¨1ªÏ³•¾AX]­fóÈÂÕW³j½»s땉¬ÂÕfË‹LæÕ¡ oƒP8½ä<2ŸÇ‘£ðFEqjW£¦¢\Gø~‹qðžw*É8Âuagúwµ•ÝííŠTùìͰ0»SžþÑy²nv¨T=@_«Š@k­*óZUÔ„éþïG«_ìÑü&¨«¦§‚j]Ù 4™-*_;Ç–^©ÕÁê2ïÖ¹'o3SÏÿ33¶xþ!W7ŽåÂ×…0ïæ«ídé¹0“²s… ù Öw|?Fü_‚ž–,©é¦É=w•Uü@+}Ù ¥ (ƒ6˰8"‰RŒT†9oÝ`ï’Øã?…:÷ÆI‚†ŽÁ©Ö½ŸY7±I ùÄôê wžä?` <™ÀŸÎþYÏ÷™›ð ¬kzWêEnYïÐÑ‹í+º÷«o!5n/v£; &è 15¥îl¹Î+{@J#…„§–gc„2ã”S¦¡p<¢åFBÝÚ„6¯õî½ß-ƒŒk±£T—éÆOs¸È÷Æ[º¨?»w-gO‰5Í J÷†Ã§þ„0fBŽÆl tKõ}¦DPv£“wÃK6ƒ ¥ó¾BÄSËùFÈc)¹²23NïóI+6Ú‡L¡ŒILΈb>Å.òâvbCZ©oMšÄ↣ì„B@§e7ØõÐ\;S™­UH2¡q¦×€²LZD)ägÔë>$Íd@â74ÖΫ·jÛ,{^ž>H±•§H˜» Á˜<›\|Q"…N=p* Dx"‘ú"·è”â:SZè¶SÆ:jLFDIl”ÅÒ‰Cc·ú¬d)g€Ã§ªžj&wä3!çbV­ŠòÆãÐÛÏ,ôº¬šÆÝ7yW[¾1àé!½(ÿ®*ÃÅ2=s¼Ü°‡O [Ç ó\«•Ê‹óN››ÎÕ1¦Œ“#Ïß½ù­%!úŒ8¸’JºEÞk)ßZ 놔R8Cˆ œ,ve¶c ÞøÐXK§Œ¥’‰4uSHœý’1ޱA ‘Šê]½Æo~%5Øø5•bâ""'‚¢%B!z§uÇñÞ-N}Z›ò–Ÿué®ÍGÕH:ÄZƒ‹„#‰¬µM¥¿ë;TÂA&Üì8lb ¬½®v`¦„D™ë ìÕBÆŒ ¹!Èa–Y"1&í£«¶ôzöÅ[ÎÍo#ö:âÓÀ“«À×]‘¸èGÓëèÝ‘äßæh‘ÿŒì¯1„¥¼-y· ÇÊßùcÄ)µ@Y¯5R#tʵЊ­µ¦K¤½ÙŽðÿÚ ,GW8îjC¦ª²îgÕ`=Ñe*Ží1’Õ‘<ÀNuAÁiiíë—7«‹b±( 8œ3a½»U‘!ˆÀ¦©µhA8ÔˆIƾ:gé¦óº¨Ûþõ÷ŠçGhoÝëç4pø±Ëòûé@[€Ÿ›„&°ëÔ8_ž'¶,‹@˜¯ö4DÌè͘ïð Ç£v&D)< 5“¼Ü°‰?”o•lö°eYèiVOŸûúj¥p¶KG2¸’Ö8B"`HO°¤“ï®û>Õe?´Ðžl0•’#7X¡áÀ0N°ûŸM%å(Õ„x§ç#ñ'LHqÕæÍ1^2逮5½¥¼'êØ3ÔàkZÕf¢£R-b™ÁfJíæÉÞ÷ÞbœÐ^ 9%àIÊÈDCÌ÷ÔØIã;ª„0Ë€0ÀpœfP…IÆ,W aûEÍU{GmK žM¶ßhwº?gÚåGBP%Ü/Ùˆ|Ÿn“ž7Mþy6º`'t¡£dH˜ óî»:f'°ÄPL°Âñ_Jœ9è3>`m 1šbæë|Û¬³=œøˆ¨øA¦åèÊÑQŸÂCÑoPÃý#a’Ÿ`&øÄúeuók?N _bSh!µ2Åîoç0 ˆe™0šùŒòûð.ì¥÷£7„Ž×™ÿvž7!ÏB‹Û+nïYˆvß³à >`Ág¡5žÀ"8gµN³"nÔ—fáüÈ0PB*„Ã¥J­ S£m–QŽRZB1þ.cŽO=âõ¹:S•ÏžÒM*3Ók£Vu*ú‹0d­í¡º·¹T5‰?†ƒþ\ªe@ˆ|…W‘–oÄWEðs]ã™[Ê0 ²åU(¦çÉ8õ|À P+¡Ïê=Öá'­AN(À„ûªEÎã“ÄÏ—Yák´ùÍ!tAûã¶4åÚéÈD’ÒÔ€3,)e&Ó&#\àlwa£3†uÇG!m&_R¸ßOûZbÿ2+†ÂÁ/f]Ý/ñËyŒÛ Zl·C½ÝÒiz¢£°:ädÛëJ%‚õ•78-´ùËlékjI¿q+9;âWk˜–Júæ«¢6>¤™ÂŒÒ&}ªÛãäì[üï!ö}òžh<+H¯·S‚úù= Æ>_HÖ½ñØÉv ¡ l$¥÷@O¼/þå*7G$Øgu Þ¥“L9ÛÌ;hÆ%”"K)UdØÔ zªÌq/Œ#è{ãçFÓµÁïˆ'e&úBÍ4kn5Ëzröù†¿¦ÂèoaþumÖ豪>ȭͪ¾ûdßy€[¡Û÷À‰/¸¦%ÿr³\žPïÄuÁ¬À2@¨4õ<›r«2­”NGša¨âÀý·9Z¯g&)× ãöÙùò=«ÔÊ'æ³e²*мj íÚ÷u¿úËöµ7-ê¬5³ó…Ê«dÞM ôh™ž+Æ M½.¹{Mº®š Û]3cRÙË •'>˜¾ÉÆÕ{ôB²H> s8Ž^ê,¹½Eš¹ß¤Ò/Ç`u’´nÓ2wçvßúUQ}ml#|+…`ª–öˆ,”U­P²I"°©7ýÊ­h|¹Žu’£çv¥ŸûæýoÏ—M¦êÔ´K»,º-U½W¼¾°ú²ÕZwí·Çý™Õf|Û‚Q@R­;I—‚_¨Uú¡Á8llõ6†~¡RNìlV?ÙÏUàL€#î,®0bRª‘Ì:V÷ᾤ˜/¡pLZ*µ†$D” á*B0PDÎõ.+#½[œbðl^|™å¹J®×¹Û¶„<»˜é"/ÊÄýX$« ëöµÍP’\-Îkï°Ñ~©ê$A~³KÐ3]”Ösd5à…O”«™Êÿ­J<~ùÉ®ª-Chý.7Ç`E€_?¾ªƒH÷èRªu ±ôçåPÖÜ_aؚà b{lÝ^ß´‡‡&¤¤žVø`ÊNOu›¹{*Á L,éVÍrÏVð@ ¯õ*¯§ ±8àç÷¿ÿööÓ<ëæ[˜œâk´D¾®èmµ®Å<ÙjÝó3?‰@±še7à æ_TËr •-ª Úü8í÷VõÂQœÛCþìAr=ò27Õ°qqâóÎS³Usgi f¦úËQrÝÜÏ_^ §ñ^õ]oGís”7[A„ÂöaØuüÂ)Î,jöë€o³ñ­ß$Ÿ]¬æùuŸfÜP=«·Y¾¯tÙÈ¡v{£ÂmU&†Ô¨ÃõŒ=¯´S¯Tõ|ƒwºù{?±À !QÆ$™¿ù4€¸ß;^›Nj°v½ª˜*<Ð:ûgdt\¬M·ûªÂœqÅ ”H¢iGô-õsT¶k¢ŒäZª”!Ìt¦ Œ[9äD1#ì.¸«»>ÇÇw<‚lpNÚ¯Y¢ò|?ÇAc¢æŒHò»t½0N©ßTx~±yE7ÞÖ=évÁmžå{¡ôzcä%—‚ŸˆŸtÓ%/N:u CƒJ(‰Hmc 4S4µ0ÕLšŒ¦b 3•²Þð}T©òò}g²Û2ßÛ+âÖwço]ø™?¡|’5!¼¬I!ñ¤°9`P^˜;:Þž78¬Í¯óK×·^ÛVQÃK{³Riâ‘N—yσ’ÅêÙîu­g—!Ê+5r סÖ í»Æ¹3^¶Ÿ £¤@Ê$&“ŽãæÊ‡³ÓÚ…ŠˆÔîøZ¦ÚÌ¢Ô11j •5œJ&0°PŠ4/ôõuÔâŸìèåpž`ùl§oâ&–UÓG䈭µÃùæXtüž`_6$ëKìÆÏÈÝž³önÌÁyloë²B?=&¤=â“Ý BI¡¤„À‡:I8)Fß¿_«d~>¯Ç#ìiR@†h:•B»}M[(ÃÌq®¥)ƒ–#B7ìY'²¯ò'̦w[ò¡Mbú™#.uÈîü¸Î˜:§G·3u¡<Ù°TX¬lù­‘.p\ºD#pF¤Ë¡<1Á=!Ó<“ì†H2Â(äq§äÂIñ”­~¼B:*qœA ¡Ô3-2'Üd(Ê3àá)‚càÎ^ô/¯ÕÜúÕõi8ß±ÈЇ“Dqÿ*Iuà¤=(Çüò<œ÷c~¯‚ñ.ê~÷Z½;ïò+ò?oß¼ûéí‹54ÐôâÅOëÕEQÎV7oYñ“Sªê_ס§{¨å¼vøvVxë/öæqÒu–Ílyp 쟭¯„»²±§^©j¦_‹jUªÙbýÂW³•9%)öe¯Š4¿®×ÂÀoÿ©V* sSÖAÅâC16:‡¼ùP‡:öÊVU±°¥Ÿ2í&+þ†=ΛªZ…ø¡ÈgÞ{õæ8¬(Õüóý¯õÁXX¯¡±ÆÑÈï•3bƒÚ­µ£Ĩ¿¿üÉ—K[¸i¿ª¹4öºCݽõ™îUþ•¯Ã½µ¢_^»ëÞÕñ^ ⼯üý^污¼¯^«f† }´W®?Opãˆná~»YF?Ýas?Ü8ÂGGÚŸU>ÚÍ‘£ùTåŸê[2c«õq”„vÐè:8¹¿¶Õ*Êø»ÿª-Ve˜3z8ïÔ2ˆöɉ’ÅùOe©â¬ÓàŒË¹ÇõR¿*Œ²®ççHÞØ`%ã¯ÜÊ«™sÉýÄ?á}…$t]Tãûõ9„»—MÇcÖòãú†P"Xºkž$5úkl”^ý¾WóÄjÌFÁÔ=Íêó,'´ñ-²*in¿ú,•6ˆI€•!ŠR %”óL*Ë’BŽ %6{ò>ËÎÎ[8Cöìqˆ´ø-ærÝœxìÕ‘#äLU‚ˆèû[÷Ϻ^!§ )œCÚëj牉@ ¶0À ãjf¸BøŠAR¥QØj~xD¾‰Gd”ÊxE¾s¯Èû¬ú´]ü°gd‡iöVâ²(W¯óÙÀÚŠ U‡°Sè–×ó}|Êa¬›8¿.‡žšÒ¡îâð7f®–Æ»A Œ¸ÁùäL…±!ÿâ~?4 sÄ ~9L‡0ôpÃl«éf×ÜiéÑSK&0œ&ð~œ/”´z®õû†*†b.¡/™Ÿª°¸¬NÐ)tëƒÁ‰`áüO8å\@î£Ú¡‘‚Ø aÐÔ’é S uÆÌ½¥®ÞvL¿ €!ü8øpÔŸ•þšÜì÷ ,K#Ѐ6“­ý™Cÿ¿K[_Pdè–*KäbÕ¾ùÃûŸ!:w§ÓĬò'k8¶éYZŸ«ú ¼g»—;ÆKjÆk_¤qð¸ÜyoWŸ‹òÒ)Ïÿ°éóWÍ[Ý/pz_Q‰pGUIwˆ¡›a†N0FœÐI%ùëëºÔp⌜Ò`£4ÓH:+FC­2jLŠ‘A,%X“2•Œ¤¡´/€ôš×<Ó(û1_lkÚë´ i–ºCòÚk`$dæÿbË…=¤é¨ªŸ/œ8C¹Mì?Ù-ÁîÿÙ{ÖÞÈm$¿÷¯èIpj‹¤(JIæ€yî.Üå] @p0(’j+n="©mÏüú+RR7¥fÛ–ÆÎx— ±Šd±ù¨*ÉbU€@möcÙB»¿óx›{0`À†ZȆºöó “$V,%8 *²§BDA‚Eˆ•H•O¢T(}=ÞŸfM…V–»›ÓÐNÿ|‡Z/ëb (æDDZ)éUGKž¡¥Ç¸ÊÒ**|¨¢QÆÐ`¨èZýÇúoÿõ¯uww¿[ÿ² Z ~Lö­ÍYú÷GTÏaoÊ}!OùÌNýÓ¯¯/ýñ…®+ã×ÂÅà_Z–¸4iM>—Â\8œ*­û&ñü :Ýi.ôuþþcŸÙÏks(ù/"♢°Ç0-÷͈€Wо‘H÷Ö=+²v#/tn— ¿dïJÃ÷_õ:7x“²S.(ò4îÆÀGm’xkƒêN ®Ú6»¼²–vJ£Š|kwÐ󢵕£Z@Ž y)•†Å‚›ANàÜN¨…œÃûçm?æ×y¥Ÿ8o‡GÑvâáݳÖ7oy­õ¸,£O<2FÌ~­ ?vœKWìÆ"Ðò¤í –­º7@Z)ßïÚ®e—]ˆ‰Kféô6ˆÔ÷y’Ò@0F1Ø‚P£X*D’'aì‡ÉÜ×F³Z3e׿ˆ1»F|Ó7âû›Ü¬ßß[ÉR‘T?’c8œ•uv}¼ay©Û®q|}*ž0…Xòs8¦8'’c*SFñL~ ^¬Œbä—E†«ëæcþ plV_ê³=Ri ´;ï¶ÎZ3êÀ1A¸Ï4òr«ÚËJ@0ÈŒó(å×j›ÊX_V»ý6+t©„0Гf•ÚŽr* ‹UÒ•kà‡Ú»KqÅ ˜èFÀ±ˆ€âÕ ÃöX=ùaYÆwo¾sÇ÷@eßßøäý›Ê÷},¿“â;ÙÀÕw™ø.ƒ¯¬úîÛ±ßW˜úhvà¿©BŠ—b“÷Uùd!6}ýß}ökÿ3°q,Äf¨òCÿwLÞ¾ûßϨ"Bt!öû¨úð,ì^¯Ÿb>^§?bÎÕçǘstù#æ\=ÞÂü<þXÑ\ýý€9[w·0gêíG̹:ûs®¾na.ÐÕØsõt s¾Ž~D^¤Ÿ[è3uó#æ\½Üœ©“0_ >m{¬.ëH´(¥áGn%¨ M‘pƒËNØ,¬iœHP´UŠ‘â‰8‹¢'I*CËvœ˜ =™µßËÌqøB.>ï‹iTñÜa­7$Æ/¯¾Dãw}™á9­œûçüúvTÅWc¿×QÞ+C{ž¦½n‹`’»{B=RrH8ÜÔñ¦…$ë¦-åÙN§8Œ5´‡)ñ &†ÅN˜Z`D8´lùuaïÐt‡lP¶ÆQÄKÞø–ÛºlA”@{؆é.78åœ)ŽU(UD¤b œÉE$9NŠC))lRi|a†·Î»¿ùÍJÇYÄ+Q—Å_`vñ5psY9ÄP£Ì¦ý9m ¦ó"¶Ò }ÕѨ~ÓÒ±­¦˜¦üxq(Õ  e(pL“·m^ÙwêìûYûÌêëà¡)O“¸ÓâéÁ;tÈqAqRä/¹/óR”Ɔ2FÐ$Ç=8ìD…ÀLŠ(ð#«.òXsÂôþ_(†$p¶?D*´m¤žÍøÛá>À‚nàE6‡_”ArÑî¾?.[\õÐYìjpľכšÄt©ÃéÍÛ²èÖÐV‰«K^U;Õv?ºòLÞä|§ßŇïôöçýCò¨ô‡9¥žUúݬҳڃYu¿™U7Sš 9¥ƒ9¥©?¯ôœÙ¡>™UzÎxSÎR?œU:šQšÍ6³—ç(v©µ×d™.hôNkAÓ…½AÖ8Œƒ#¦£’À_r‹SIP\ i°· BíèºL„1Ã4HuHC!i‚¹ŒdŠNUÈxš†’ù Æ‘öWÖˆT'ÅÅUykiÿ-¨ö³B£'q­ýª­’|¥_h­Úš~W¹%ƒBU¦éªª³¢½”\å Òn¯Ê¦mDUí%/>>c(§äœå‚WƒÝ¯gãx ¼W†ô¼ŽôzurÈœ€ÿÅS ôZ¯¨ãy“UÍÁŽõ\y[:3wºŽQØ/×Ð+£#‹ó\îˆ÷v«Dyß”¸*su¶ÀÆ÷\f–žËÙUu£Ú}u6_»~=›«oÊŠû2+qî&ÉîÁ¿Í Ù´òž"û:p.·-wåíùAßÕ;{»1 …­a‰=ˆ£N¡šë_´4ÉŠíýòÚ)$§G€„„–ÔP<‹¸] Q¬O*ˆO ïºØûEéFlˆ+*VÇ ö1ÌD‚M%a- %R‚êC^tÛ6ïíi›+¯û¨@e¾L>^ök?~x"¹}[wB{i$ëg›Ÿ/¹Œu ër'WÕ®Zuþª§q¯£ññã…JD¸} ît¿NXý78PëÙŒMÅAó(³¾^Ó4XrŽ ‹à…P–³«ìoaÚ@=rjÚáDÓéKJ\55£z{hòHà©¼óº— Ã>Ò„êGÖŽ%uNºœ68ÄÍTuõƒÈŠÆ­¼ÑܹbKE˜1¶#FÃx‰³”&FéG­.“£€ÔKU ‚$Öç2DúX0_úa¬d©T¤ŠÕ‡»âw+QeeÇIÛO°jêø²ÂËPTh«ã¬qk>íW.üöú€ò¨ >,ø]J+¬Ðl‰èUd» q•ƒæ¼­«á6'N}Z\ÙÁÞÄu³·ˆKä6é–;ÈûãHa©Ë¢å‰•ÐT»Ìnܾí°dßiEײdžêqçå¾CQЃþËz®£Š ¸«¸ýöàºCIù®±êì¶GÈFJ5¹w_ûÆb¿UÅhÄA3넇•Ъ;›)aû±¯¸”Ó$©vÓ$3QÇýM©Õ|:S×&½yínAf¿}*@Hì¬éË*a ­ù£Ìz ºÎl$ ™ZŒ±od´»w5…¥J:[{ü·|,û™ÚY-Êë›_+Êvw6h5+—ÔP³ù¾z²²®Ó,-‡¬bàÃáko¿Ë›mš·Çó÷!½P·†Çp&¬ÆÖàåÕÞ*hOrÅ›æv ·ÊGLà•¸ºîU™,-Ê³× ³øôSPõKweÿN­ºæšï|ø;§ºùXôB¦Q6õê·u¹ÙŠš@—|µo¥‘/Ú©ƒeY[Ã9‘ ý£ûÔ¯úÌ×Þ*0LcלñY@÷e5ºUÊë—Ú,ï;Ü–{{TÛžêÚzo#›}hÛ¾'ó=¦å}1>û"ûÓ9-KÆ’@§ŒNÉ[«×w¼Þ67ü+ë­ ²®¯ªV?«†¯Rҽߩñ9³þO} Ír…5€7ÑŠ·×]:òW&ÐøڶׇR¶D‚Š»¡æUm¾ëó ö6O/d:Âj­ªíUYte@›{.þyŒZ¿è±GÓy'ðõ—§w¯(y-®Î¦‚jsL͸q2*Ù§Êñ\†Á´à8”ÜÂNä*Íi NsNp&-™¦Ÿ”Ÿ¶è$£Çè¾tß^‘otøõÒ…Ó„á)ò(éBªæº-+OWc*¨P×IW©C#¡Õçë•zDe÷6lTj¨ì°°6Éå0vÄX]Eß#ó]ƒdÓR²SôA³ÆmÆŸm YVÓ¥¯YGLnc?\=à-ÉÒ´§Š?ük~@úYt)ü! Ö(ˆ=MnÊ:ùg¬)Œ}ÆüEœ*•Ä(õy ;€0!O£ã  "`ÏfçôBN‡ŸÀ áËŠI˜æWf¢;“„#€ªäòq\Y[Öîýëks'³Þ¢ÎÚ ÛõÃÚðk¹¯…ܹhÜ&°“í-C–?B(ê Mt`?ÃuÐeð›F4ÙÚß`%%vì ’1*Šâ â$J’”úLÈ0MÅÌE’3ƒOZÿjHZϦeI`fwÕOò+3Í@FñjZ¦õ9WŒê9¹bŒ¨eg {CWŒ”0²¦‘%®ìÚš›Á­ 6Ä%¶IBƒ˜(H©â$U«”2á[£¢h‰àî~€`˜¿c«\vb§¨B1œ*L)Èo‚däsNC–2`¹”ág¦zQú.JEÎD }'?œa'ؤÿµQ|?Ñݳ)™ü,„~b80“)¡›æÉÝa@B@u'k–ÜA¶uÖhS– Âæd»Ä;S)&±ð'• ¥(LXÄ™.•,¦Xh&íáï¹­zz&øõÝOn?Áq™gw&”#û…,“<ö€Kc·ÿáY<çšž/̇YÓ™cz†G ÷:‡M€f·æâoú§.~*·™xˆ×¦d}âW•¬ñì8Ü’³SXWü€¶ä=ÁþZåi[™ CÔ¹) *&‘Ÿ ’3О|D‡0 ”a,™J(†°'{ýÔYyü]³±®“ŸŸù^b_7ÊÄ9¡ ¹â‹Žä,~)®³69nE€¢VÒ2¡5pÕ=w̧4~âDÕ÷­“¦¾¼wh¶+ÞÂ,ZãV¸%ñ†n`),bþ†º8NˆcµS¬GXÇáó¹ˆüXEB„¢,¥š”Ð:MFÝQ¥õq¡¯^A‹?&$\\kûŸ†ÿl‹SHÉUË;#ÁîM{Ãe>D »Ñžž¶ê–ÅÒ–) Â¥=fˬ©vüãµÀ¸ÂîÁcµù¤Þ0¯¡¨){m8@Ð(aCõ¨è!ÊóòÆ;+™ØdŸŽ`sü:þv5î4€×ÇO»¿Õ¤¿ÕõÓÕ¸%Õø§«ÃOWöOßlEºf온­1’ìöx}üÍÀv{o¶ãöÞl• kÖtÝl³|”›«ÚúQc¼¦š<š Z× 5 7Û#Ú¨óuÖÈF`•?žËÒòÇ©¸<$ØÖÃ>ãþaýS—²A'G,S%ñĤ °¥°æØ³¸Øq¼B0ì¹Ö(ð‰–ÜS},î´9ÔÆ¸Ž`®k*Ä‚0ìé˜Ô±Øi2Ÿ¦±/ƒ„‡ËP$,fÂŽA#ªÕÝ.{‰û¹':¼'¦[¯…ÝžêKîHfó߇Ãè~Qhº2c¦éèUGIž¡¤~€ô ˆ Ú5öËpHCž(we=æâþm&üü(hSÊŸ†ˆ²¶ŽºeVï.‘ {¶¦1  –°â‰ÇJ¡UØù ŽF1âQ”4ÁLjL ŠU¬=E8œ'i:ì[,x£<Ýé»Õ?r¾U?ómÒ>­•òÚ6õ´=eóä<§e{g<©¹À¦æÚ·°BM<'˜ô¿í³ÓäÏ‹jó›æÐN½oB~ƒÌQ†¡ÛU‘qzæ(›é‹œ;ê®y!ëÓ=ÝoµÞz8ÃNÔ¤S—Àû+δî»gqF <èžöGS~hzÚúEQ¸Ÿ,rågí;àç‹Á}¾ÈSÚ}ÅÑ5µí‚eSOKR{y­5wýc1Ëäþë2gÏ)Í1ds¥×™ªß.>èWCÀ½ÃBs^ë‹öé¥ ©uƒýñÎ;6ÞñzÖYÀÈšáF =×BÎàhi‚&Êi$„’PA 9S*EK–~ B†éÉñþWöºõIäà"é¥ç@*‡«<‡X{r,±AO$tâ¯P8hÚÕS¿¾³&–Dø4z ýŠp÷iüÌo÷IM.8>¥Ó„)¼S#ÝÚ2†¤(L'd…~ìe¥˜müñŽ©â¬¸zms´´Æ0ì^¥x*NîS0²L(¡´g å©°¢"Á²%›S]?ßUW¼ßŸÃŒÛš¨t»îXT€d’ÅVDIš(íò“qN¢4Mâ”Dá󈮯ŠFcûÊ]ÏŒî\oöÙNžu#ñC—@u*òðDO1d(ðÇ„há{']qì×¥(^ â&`9b…~™fÖu´†Ÿ£.?!S’$JÀZ-P)Dpâ˜I…#Š$2H_S«L†cEÙ?v›€Ï·Ü~nÑÛH§F“íSëØõä®}Ù¹­ÐoŽ]/Ú«§ë§I–™ce}!ªÄÿ‘wuÏqãFþ]Åú3–ä¢$vrF‰,£x0KªÜ;¾½>ðkUÏã«ðTM›2â<Ó»“°·$‘Û˜À¬@Ä@Ï2ÊÈ 8ÚZʪ2³ødšVX¿¢PÄ 4ûåœ(’1™sªu1.ÏXÆT"”qÀ`ž=ûfÆQ§ûÂlпŒOþãçÒÂ^Ç£]î¹­Üñx5¦ÕÈ™oZÞŒ:Þtá^º*Ç]öÖ–|µ5v<—êin‘KÓcæÐŸ89<†›"¯Ý¡ØHˆW8¡€ÐÖ´÷\|ƪ´]œ¬âD¿(hÎK ’8Éã,£)ÖK›”ŠæL[T”')™n†6÷³ó‹¢Ùªæ\çë“OV¾þlþ*"¯:‚§l§ÀÅ8Ú%Q;¼#ð¾²{¾$.>ÜTUó4i±0gº/„ã¦ËpOä¶:p`AÒ„&+”•ô¿jƒÖTòíÊ„]Õ#èY-Kxœ (Í âi‚•Œ ¹J"˜BSŠY/&ÚÓh›!¤.›]ÂxË 'óÃì£ÍuÐnb7Izáãwy8y(§kÕ˜ã¨j§‡§Þ< ^ô›ùjîpÿ[ɶ§í¼šq|YyÔγ7ÝLሴa-nò.®Œ±ßcù´«îIŽŸhçxÚÌÓ§x¡‹ñ™×EtÝÔN Íß¶´Em›óáðá—nûlx´+Ý5Ãì˜J¹.•Qê… .Ñ´$#Y™b=Lá­Ïåzw¿T¬ÄíZfÇJ;h×`…âÛ忉MµUÝ·-Ô°ý³Þ=è\ ‚ñ ½Ü}ü\¹WE-ø^.ÊÝÒÇ·N¦‹/ŠÞk°1~º²õa¿Y|ÁX¾ð†kµµéÔÂàÛ)±Ð­¦Ã×\–Åváf[Áüw¬ü(×ÚÕýv±B÷Ûä_ ——uÑ(ö¸Pn1&ûo(^è¾­º_f;Y/>º/]xòïûƒ]ïî³ã¶õ@>ÞµZöšÄÉ÷‹ t*,´q_.|}Sݯ7P¯ ï7¨’Ç[hóIXñ.?lë›0tV¸wj§ewmìL¸ð¾hnŸeÄw+kË"p³W}+¯z$Ø`…Îs}©Üì.‡¦[ã¦)“¢¯a>q<¡Õ¨vM»î/UØí‹»£í\⡼ª›‹÷åõ!3©B2ç=ª‰§¿£íEO[t-p%ÕS)ô¨&zÊiŽÐö2Ô?Šeœéå“qEóŒ¥P¯ÑZ2¦9æ<å¹ns†œ“—"Úp›ql|Ï ž,Óúnʪr­öÀMõР¼دúŸ Ú8Þ–ÚÓkZ¸pWÎ¥Wmfþ ‡üáÝÏ¿½E§ ·³;F–×û„t•QÌQ‘¸õM€êòP)ÜßORQÚ”Hãµu+m%ÇA/EW™¼…¤Iô_ª°P¾xcø†‡ˆúEÞtôê0K ‹±€è˜žéCæ ê/šöPïB‰6Ú ô=ÉâÚŒº^KýŒË˜†°s1É,bcN1Å ‹VÚvç Îr¦$Ècšàü]ö¬p:1ôzÌŒvdß[™±uTˆ›ê°×:D[%pÜч¼#<&ï…æþã}Öš™Öž¡a+G}[œ' 6¹Æ“¢×úeõ‹·6à…É[”Ô µÈs˜ƒ”åC ޳% SÕǬMääãáÌÎ Øí éñ¯³ˆo6~‡t¤n}êÜ´>v&“¦¸å×Zƒ–?d‡­Ü¨öq•q­þ©¸ˆl5›ßDÍâo>œyŠ4·¯ÿ¼H'Œjz…Vaz¯K.K›:-Õ î„ëåB&fT›Ô)ÔKÌIœ%°˜¦€¤?Îïż¡ž}yøç4_%<â ‡ëiß2p›ý/ ÏóJé;3™[zW#{ᡶŮ瞲1ûÆOƒë§ÿtŽÍ Ãˆ;÷Míhüœ€7Ä&USŒéIÑ¥–r÷7í¶°†rŠfZ$1È L‰ 9Ç (ÏôššÓ˜%Rɘ›ÆßÍÑ˲•ø4`›§£‡ÉŒ3ŸÕ³ÐÄðY«Ío`vV´¶ÂTd{¾×jÄÕŸìåŸ~üÑ9iK?.ËÜ]8>{Ÿ üá{Nbñy@êœwöwDc»ç3RdÐÿ’Tÿý‚‰×ÅÊ~O$,¦”ˆ4A„@m>e™ñ•6;Rf •½f9íù6³jû¦sP_fq˜ôøëåÊáoBÀ(Õ« ŸâG£J“¸˜&?š0î=ÁSyÈòX(A,A)묄 5“j M/) P ¨oß?¯ù 8ö4Ú“Ê›ê'«î\uCy©[u1 ëê?lÎZg˜-̰ñËŠ™±2ÜòïmžÛÎ3ªÒbyibð =FïF2ÅšåV0a” ~M"ê.ýUª§&bÁŒ4Y®-œLæq.¹B©€9Îc®õž4%”S”#*s$å³e9{ûÎ.ªæç¯[Yì•hRßaKnBODzÑ^ŒØ‡öò!§É]9Ô}¾\jhI¿ *V†Øh8?'­™RÛæÈ}9Üg2 7ÃÇQr 1s£jPÒÀ,>n1^LƒÝŽDÇ ‹{=+ê?ÿ¼WŠ&Ñ8™Ætï­`0^˽Á¶Ð¿“á·Ïßoßýã¯ÿõƒy¢¹L/J.nÒ?f~#†ßØùÍ¥ª¶ýU}¿çuÓ_52è¶…¸ÙW¥ê Žœxc$Ed$…'!Ù ¹9èðôa,̽£lšhÆ©a´Ç×D}ê*b(%ÐDð%±î²Ódfߢ «ȨÖI"3–%<‹3­¢UWI”Ú€„9½sí7…}™Í³É&œöt$GÎ~ ê¬#‚_*¬ø £^ÌNŽP{yûx°ÿbšÏÿÈ“d® »Ë‘è^†fT/ã=©ïl,¸âßñׇ8.‡ˆî1’½µb$;‹ÆHœ®c‰Ã·‚øüE ÅÜË…²S¥Z1_$ˆaŠSƒu$'¤¶oh ìcKãœBJ3LRɱ¶tq*2&ôE¡À¹J„¶,QŸVu쿱·¾ïÝ _ÇhûÂéûGñZwÛós\»aq„ïb–¤ 3§a„áS¼«TÃEÑ|4ÈÌø2Ñ2.s¶C€b‘≌1U’˜ÈH4Óm—,¨÷¯2ËÕVÏç‹þùýñaÿÇëÜHks,¡Pî̉„Ÿž<·êó…ˆB¿¡2ᣵg…ÿ+)J_Š¿¹µ›f3Uá[Bñób_ÍÛ|*â¾¾%²®¿~b…kyk'yØEMÞ®wÅCvÈÊ‹j¡`sšK\•™Èé…ÂæHKŸ¬ Ó´ È h…zþVa.°Ev|Ž”ç —Ö ß7‡]´­š"/„õˆà¼Þ—e~™´9½òóc5HôQØšàÑöìÖ~þ•‰ˆ.y}ÕW½ìŽS`W2§Dºù5¿V’F?DYJµß[YÝë%­¬B^MoÿñëÕÛßþúþ—ã§ÀÁõjæ‚‘ã Ü7ÀíŽNd²†qBÉ)> ýkZ=â3ëiŒeœ!,3’@a¡mÿ,ODá,‹I¦××D¯°ÃÁÔlP/ìXögSZô?«½æƒþ"8»¾op2P“iò"œÙªyÇùÑ4e«1xŠ3ž§†}†7 >d•ÄÆç)äAŠÅkCf š‘#¼y¾Þn¯Î%ϹÎ1oèæ%íÚáäÇ8æuOùB÷¼/àÛ˜ãìO4â™éI.zú]&[·J›SÚbB„\†r¿"ãœÎ”"Íó%šãµ\HÈT,A1ÌDYoØ[%âyÝíÄYfŒþšIß_hrY¦xÓ±EÔ²…ÇuEÕZqjB­m²Ïî¡™U»V‰ÏhswºøÆÐÓ‘4­©¦×ÑÊö}hF¯JMÀ4ÅoGé'])‹ReŸŠ ÅAÄéI׳J^Ј¾ÞŠJ*Ÿäß3«²ã¸‰æ­Þ‹»Ÿw»ú`SœúûBÜ4º#'”JÛŸ#É Ùþ÷I&ùê~Ë7>u[my-ŠÂ§îÚhÅ ±ÍÁM/Soe°•6ͪÿAõaÙ6Em±KŸéËqŒé ô¨›ŽõˆÈ§RíŠGQ[K9õb‚–“ý*kÙæ€Î›I¡ ‚¡xE0$à” +=©ô"ÍÁybþ„Üp.´”V¢ C–¤1¢œq XŽ´#%àúí1Á.ê…Å™²kÞÅ5ž˜…ÏèP}Vâü˜£ô3úeNûÿœ<‚:~{Óqœ reè[« ¶¿4b9ç!Ú•V©6&Oõ6¨#µ„*¶Çjè¯Ð^«±U÷ë¥FÞU…Pˆå¸ð5ÕîÎ!hEËMŸ¦›=¡è×Ô›Ê]rt1wS^èkqh¼ëŒÔ!ä¹_Á—µ-¡q—UM*‹ïz[µÓ^,7ŸVÛ a§”ô(zU:L¶/&´M±PöåôAwÕô®{î Ëêü/Õ„IÿÖyŽ®­å®t~WÓñÑOw(-ThÇnüYÇÒá®%tfÅß”øÉÁ Žìu»ò€{ÖùgÍYíòòóö㪷½S\2!æ²}f?ÄÐ `³õ#gf±ÑL¤)IÀ)…ØWF­Y‹Æ8ÃtEŽæIxžÆÅŽãDД¥<Õ+Q‚Iœ ÄòtXu^&„ç+­8Ï»yöa23Ø5!,;ø¡1}µK *jeë@’&Éb;ÃܧyºÛ0ƒfIIæsf‰?§.Ñ$!é8sÜ»¢ñ3ðJÌLó –’Svž´ÎÙÍjp™Ö«\ÂP|á eÈ8>¥8擜§ Kb•ÂD¥„€8Cª?³à~Sãµï*u,a6•pd˜ÂQ ÍnDô»›?muG¿;l fíÎÑvúJÁUâ½äåç&Ï¥Ó|¢Œ¸°•mí¨o~à0ÄÐU S”œÃUì÷º…-¥8#Ãp&€žÏ9£"$T¨8ÏUY$Vú‡ŒÕàèd`stÇf_}úxà<¯ˆm7>dQÛÑã§Èj}ذ.÷Ø×Þ0½ŽJ^{vUé0ëîöº^7Õº4€ÖÙú_•ÍvŸ¬šÓGýPÿáßVµR«îÐb`á)ÏÌxCäð°múøå¡X/Hh¼Â)¡à$ͦ&½c]mTdüP ä†Ñ¼4†ŽÕ€2jT Àâœ1H8„+¥Í³!GËœŒ½ÓN»õM×±‘騥ÚÿúÏãdz·R™”ؤi4•Ö5]š4$rš04qŒõÓè ¼ô¯º¶±ñZ½a—`/° l ¥(¬K´ ©ÂX¦D@XEC@¦©@)#)b¿ ­£],¦[ȘJƒvs{ªÓÚ™è9ÁX»€çÙ)Nÿ†kì»ýçoø]Êæ¡ Ím‹…» ÿ¸X¸W"\öt3ӻ;ðÀÝF= pÙn{ ,æÿû··­½¾ú¢x‡`|‰QÇã£ß…¸mŠ2à`÷|!ºÊƒÈ¢ýwþZ]2çº/òµ;;àëš§2¸³¼V®îd´åÛMu'¤‡úgîCÎÖ±nâw…WËмýeC˜ÞÅ¥œÖ3}tÿ ²ë' ûÆ»nÄ´%6?‹G¹+¤òN›Fe-ã/ó{ m>v]¥\ߨÍÎÓNMÇ:—‡MSž°».›ê#qUÙí¤ûvÛY•Ý”ò{3!˜lïÃí7uã¿^ߣÙÇ=ÑQmª}Æ÷µG•jrj¡i7CV”ŽPlµ®£èW+tŸ{„ú¦Èýë7‡áÓ³SÒðLëéŸ&ä¦Òý2¥ì¦”ß› ÁëYM1©wøÞ9úè3”®6.j)õ¨{Qí÷Cv)Ÿ¶n[ÿyR…zÉЧ|¸Ëwµw]l¹1füJÚ Q¢òH¥’ßÎzó0™šP ¾™Ôù(êYK>Þµ ¶h[½7 n_{õ?fò\ý" <`ÝÂn´yÉôeh`ñfI%ÄÄh XïŠ<©@ P[\+Hc@á ¡Rå­Ù{Üp²Ba´~ ©5ãLÅÆD)S˜Cgœ‘ IÄiÌ2–æ3ôrã‘o˜ÿ#m Z4/ë!cN&Ä®¨.RÝ Û öðÚnA\ȱòY5ígÆ ~–”g  \cöCH„`rf³ÿ¡±¯ê˾òE›Uª»²ŸQìú€“›@©e“«fV²?l#Ë,ífx±Õòu³¹m“täÃ[½Ëu­ƒ½ÞmÄÈÿ±÷t]nÚÚ¾çWø±}Àƒ$$ ½yhÓ´'ç$mW¦·íº/YB3dlãž™æ× -!AlÏ8ãôæeÆlI Äþ”öÇ»ÍúJ^öDZ’οiqrö?3’gA 8p‡Ý!«áîz¥½w݃~5=ÑiÒ…ÒÔ–æè1®>‹åò}[5à óÈ—*7“”g(MÄYćI–ÃåB`˜vÚêöO…䟩ËC«Ê?)¹¶_ÿy÷ýƒöûZj ²r³2e¹†.,ÝHÖTŠ~îBoD°\ع³Û–uU2Q×C°Ô+ qëãZÆp“"á¤ïûÖž¤.IÅpÁ$ÆGù¾é‡Õ¬Ø[!b‚F2!&¢PÂdy*` 1å1æy’Á,Âgëggy>æPK-W/K캹v‹|àå‹WoÞcøgcÝtÌU½‘±k<ŒJcÓ·z:‚j?Í~Tã8Œf €É1U õã6ûSŒ‡ð0¥9Š"ŠIADÓ4'8‚1Š ¦§KEú¨µ)†uÿ>7”ߌbüÆð›sÄ÷ÍÞè@ªb¡aJŽ)µ¼Uþ® ›Åi<Ç>ïÒLD9Ä2FQ‚P¢AŽAHÉcÀrÈ)g<[üþå8­>èsýIýIͳNs‰™¡µ ³6äòöÀêh{¹× 1Íñ®#ЈXÞæKx¸|DâTªN8<&aªrh}CWrzÕ,œƒw’È’0m=JŸÖãIf#å*w JŽ’˜ š ”sÐÙÒ€í2”mjm0ÛVQ ow!À~Û*§È;uM=6¸»Íì7Ì?2Uææ2X/6WÅ*¸®KÇÝ5nèä¬4±÷¹…¿*ÔFÛSú#_èˆ×9¿Vö\muqQß4åznÞÄÂì€Ä2XêÆ½ö“µpìØÁk}ü#)ip4Mv±¢8Þ¹Œ›Cƒá{†ÂÉ ,ùÃRQ#¯:~ ô1µ”3”̉Ï_’Ð0‹y(ì!Á qÎ’,E1¤œ÷n·íQïî4¸2V}h²ø„¼g"aݶ#Ke=ñ&­[D3|\ÌSwŽ…{zÆ‹ZöéH\¬åïŽx @×,®«2F 4oæAÃp,¿P‡JëuY5‚ý|5›Ðë.®ÚJ+íÏ¢w=õ‰ô­ÎŠÔoHíò—öë¯ÚÛu—ÕRu´ a ×Г5õ?ú|òpzœæSê04r Çý÷ò¨ê¤ÍpAÉCŽ`K«2P˜Ý¯@ÎÏ“ø-‹C,òœB©²ó<‰qLiÊ?,dT²ÕPš¦<.ýrÒ d{âÚG&¯ÈÕ(!¾Ö)¶t"'[?ÁaØ)ãÕÞ´ò#%= ¯éÊ“$¿‡F×ë&çKÖ+’¤ šÇi„…Ь§\ùJDHäS„s£ìDÿuÛšqö•a—îLC‘xH¡HoMÈCêGö¥"ÓyÄf1–G¬d¯y쵋 ã×gO•«´ŒbŸ-ì3wf®Çà }V0plÓQ[Õ-t9q—Á÷1¢Ñ´õnë›Ƈ¿hÝk?z“]7ëV?·o9ÿ¡­ùkN×¾›vôáèØŠ šÇ†¶.Eóò¾«ºßìðšäª·×@í;ôóí·a¦¦åëë›ãË-ªìqWgßmSiTL¹ow§þkÑFÇ-aÍ”MÓqkæt#goÇa»yD÷‰Í õ‚SæPáÜÒºHcB¢£|ú‡äòu³¢ w•q)œI1"Î)$qÊQœ"`ÈR@()G`JÆy¿ÛS1˽$ÖG)z|klDÂü3ÉW?v(tù×B3§ _?ž“nwg ‰tɽI­ŸÓÍA@"˜ÎH’H‹ú!WV”-&OÇSÒ˜g„b’A‘Kº#R§LBÇQ.âe)„üŸEo'¬-´¾hŽŽ"òK‹Íã ÙT_8”é=mœgÐ3š”ÅiŠ•(ŽÂø!F¦Úm®äýk1ÅH–§B„IND'¢„ƒ˜ç ’)˜s¤Ù™DŸox"ãóÖò…hÛh}%1Õk5m[\ú6püŒh|7«):‡qŠñ,R•ÆIã²}š|LÑLÊRIÖ%$h(Ô¶’Ô´‘b?ŽC@Q,pŠcñyÑøÉ¤ü¤ ù…\û"—-úMïìúŒìÁèûlà {º<¡£‡3âzF“2?N˜!œ ò0^ð·JÇ<Å N„‘CÁÌqÌ2!ÍñS“”Âr"m„ÏÌxàfàSâÈ—ZRØ‹¥ zzXŠ&«sb)íŒ&XJ§$™¡!|¬Ó=ÙæJ-©É¥Þ0 (A„f„ŒiN@3šçiœQE0§(Ïcð¡~÷¶óió¹dÛ6XÏ¢nì £õºtY…wÀzÍœÞpXiŽá÷5wcsÄê¾v ×M³f¹"£ŠÅ—î$‹­]Òïb?¼!A]Û­>²š–”©ÜF.íÒ¡^Ûm¸É6+¾îÒuð"ÏÇ[U:k}­d8+G.Ý|¿\x—CýQ¥5k·Býqï¦j«ßâÎyµuõª÷v$k_·Y»Û%Mlc³lx×ÙšO]\­Tyi§÷}¦¨ÅÝ»jõiŸ_]˜¿ya„i$·ƒ—vå.5ZÛ‰ÏF¨’BäÁ%\ì0|hqxp ׯø›ÀZÌ5e H‡«.¸ 8ˆ¨êQÙ¶Ë;Y`0Þ=—"W±lU©öµUâ¯MQ9m["À;ê°¡¼ ¿ªèúÚiÒ±aƒ›¯/µ6^f-øf¹6¯5qŽªvM4Ãk0OéèÉX7è)hѤó¤û¹êqSŽb$‚(3F¡£*û¨Çˆû¦¢õä11f Îò8N"Xþa §”`æ$Ëq¦ŸGèÁ1ZøÑç@jvôê£ôï/g@-N*×ìÙ‡:åïu{7‘AwH<_èPKi´¿ïóëoËi—7»“÷6r½éÕ4"Z}|7élá_u©–‰;¹mdl…îãEÈA»¥¹tÌʧº˜ãüPè÷Ö×(ñ„NøzSn…(ž©ü}G³ù÷ºÈýä.*§8!L"˜f"Ã$‹3U-;KqñKæO³øüùücPöÜþ ¬ê¿/[d›^z£“µüË÷Ž»Å^/`ŸRMë¦6¥¨EQ’„³4B(FG’¯Nç½²ÊÇ‹iŽDÂÒ‘¦"i˜E!æ<Á<…±s$âöó”´é åm×fþâßÿ[·¾ÍZ»¶áMÁ_Ò‰œWF»;¸Ít=:tÛê|K+¯ì·-Áoãÿy8ÜXsš DLà †HÝèH°Ú¬ŠIé £<¤”'qž¥qÄ£8ŽYRgœCÌBÀ£”‰<;G·¤÷±ÆÖéÚ†öCÌÙ6Ïü'3–öe%š¬êra½ïÄRM¹½íï´/KÖoöÃyb·í¶?wÃ:*ðiÖLGÀ'Ë%±·Ð3™PòÃ(ŒãDar´gÞÈ&YÉ1È9ˆ!#œ¢DÐXFS©Pi\&urö,âD‡ÅõI?Ó´I ÔÖçÉö¯NÍf'ÉŸ ?W "ÈÕáî²Ûé •PÕ»”i§ÿÕ4Þ¬V£K+WvvèífÕK1Û=lâ[úºNÝRbNA޽¦¶Ci#±ªž_–þ܇Ž÷îÒ /^Ù­#çv"uB8Léöôeä°{Ľßmcw߃Œ‡ÝìóîB›{«.4ìàµ\ôzÃÝﻚ»ç¸žóòV"šê‚•ãñ‘ÓÍ¢ùCÞLå¹úI'í/«9­×÷ƒ<ŽßWå$•z|¡ˆš6óL_zò 9c7“d{[F×óbUà¥Ó±ƒtù%ç÷KãÈ«]{3#ä e¿Ú;ˆZfû Ø—Æ ›uº+/<»­ûsŸ'ÜU³šØËˆ“x–À¢øØü wê@W®Ã”²ÆR©•åq”œdÀ<ÏŠ˜EÒ¦ Y O£0Ÿ Î|Òœï˜Úÿ/2å©ã*D­Œø”gq'פ|Öw¬ù¢ « µ§¦Krqv¸:{ µüRTÐÒÈ“8Ë’Ë>LÙG+ßã6NÇ“1ïXš³7g sÁŸ’Çw“bôÅQˆg ˆ#µk×ÜJÜLñ Äéb_þ‚4b a˜¥¡²ÆILTJG#2Á’Èõ1··Ñ"hË5·ò¿òªV¿TÑèúÙº žo·È~zí:|¿zñÒõv¿|ãÂþÀÔÕÇмq=ùÿ,”–´¤îþlë£lã¹ïÚó®èŠWž9ìŠÖ¦à{‹[O¿ûÕbÝN1F "C¢H.lLÇ#KÂ(Žñ, òߨÔB,7Ê6Ƴ¶rF"2ÇÐ#VäàHàe  ¡üãœg˜¤($9äi÷ۼŪVVØ3U0/‹Y0°­¨œXõå¶ÖÒ ë1>R„õ)jŸÑR¨ívÔî¯à`€Czÿ@í›ó‹¾¯UÕUl ô”ÿžªÒß-‰}W5Eݬ/ˆ¼UÛ¦pzXc€ÄÔàôÐÀ÷*>ç)‰Tç"xÔ©Š|Öšò6* ŒçIè+ % ‡q– "éKÀ4$,D‹[ DŸª2ƒµ2êSžÆtÚܨrÔ®ûT4«ÚT¡qUâáúÿ î‰å7ïÖÅ}¶ÉGÚ‹r*Èt¤¥ñHïãKG_5/àÑtÖÒì*ýßµmjW|¢=oàHkq¿¤+]E;ÜGKò”²–Ð{–#Å`Ýa»þ¶{ùßÛâyVÎDÔ?%rš®6Eä¶ ¿Þg£em™ÜóŽÍ-›3Õ*Ýa¼øõK^4eU_´>?©,ë㨠â8!6×CsvžÌ6(Œ’’Ì6>*Ñ€|Hs'èÚ•…RŸÓu¸=§èH0)m¤\Ê‹Ó,#”á ñD„ÊS6ˆC»Sô탅$íÒ îoD;)þ¤¢oh(C ÂÑ$¤h¥ ¥ÕªœKÑÔ=¢xpàdBæ—·ß·~ eí/}”UúŒl9Qm]¡ñ]{Ìo¹ïWëÅ;è±ÇDVV®Ê¬ôM¿kQùþnõi CñºË¦ð zYÈêõÐðS2ÛÔš#ÞŠ'ðh"T Ñkc¯Û©d+åc‚r\ìNÊ×U¹¾Û60ººmýþüÍ~´h›nsÿ°iq>‘bRÖKé,]¯ÂK§§üåÚ³Éò虡¼h~¿\xØÀƒDôÜúi¸ôá‚¿“y[©$¿%Ðaûž5»KZ_çÌ×m]Ê'`tÝl*ÑáÝnÄö0úNÕÄ`‹‚Ýt}ú†~”ê½±Ïúüé_]üôó/oþËÞµö¸m+íïû+ü±Aá /"%ÆM“4§lƒ$E‹÷Ë‚”(¯Ïúv,{³É¯?¤$K$Ei×woß-Ò…9CQ/Ù‡Ãá;SÁ½ÙtüÝTB<‹½£†àˆBÇî,r£­|1Lz8D Øí1õ…nm$&$Ž(EqBÎÒ( b‚„ –H™¢©2BALqS1‘Í÷ØÎlPo4í\¿Å?Aó±Ðçã±Ñmíªe>‰Ëí·/«ù« }Ð%Ÿ&?‡Õ‹òfZ_e”ó⢟ç·&Ôíè^úDnNåêœXA1¦=P ·s>Î~ŒÆc®o Ig÷yÀ 4åÑò%M'¦,>A$†œ§'¡L ¥ú@´>G£§ëÀRÞ/í!èB_$“þd¤tŠüü"³ÛålÞ×Ïö‹G&Eû÷«ñb5Êd ÷«Þ’eº¶}^’ û;úBï]Tïÿš²m­ŠãA»‡ÃŽŽ-dëjÇ×™ :6"u4èišÍP9’Z:Ž›/'Y“¸‹¦š-“øçŸ›ßjÒßþý÷¿Þ¼¿†öÀ5sä…ÿý÷µ3zïçñlâVWÉ —´“¾»'‘¶£8:åòûMŠëµCgZH[GøöŠ’•`ÖˈO.Ÿk*Àë[1µ+µ0ηJ²¿üKŠÚµ%¢gÓCfÐûøÇÿ½ÿðá_½O¾ùðþmOýÿîêË»ÞO?}xyõéËréîXÝÕ;À(ªVog!2Z¢¹vG,"QØÃ8@`›Cì-‹^¦´»/ª*j¼¾”iŠD9@˜¢s€‰ F,HžlŽúié¹'˜AmªJ9mÚøu¯®çªÝÉ\}Ö.ãU£ [¥=‹)Ö9|Ý)GFÛ¦\£œ~Õ\¾Û$H{¶ÅýQ΋—ú.”qndhÒ˜rÊ¡a,c€yJ(ÍïŠOãX(ëUFiºéäóKb¯ mU÷iÌÚ–¯;åd.Î;»ó§¾9ˆù Î $r Ç9½þýÍ@f×ÿú¬ÿ¾û2«A:¤‹AúýúêÃ`ȯ߿ W×ï¯7rp³Œ’Áh9øܪ³Áíj0^&·ƒÉt0×W ¦ãÁtª̹~j>Ì—×o>뿟¾³Áb5ÈFƒìvÙÙbÝ]y7X.«ÛÁ›ë·Wúï׿^¸¢ÇÐöªþÏY¡Íì^®!d„1ÚSwDÁVçŠi¨uûòŽ÷@_ÑÙCàùÖh Ö6P¨? €a’¨J„Š)$Á‰ÀÁ\( “ÐcŸÅ½ÄKä'c¯1ë·a[ŒW¯ÕjØ >sxTh]®AÓjà€vÛv˜Eí,í»øtvÉÝ&+¬HÓx¼ðŒù×Ũïç£ÞV©5|¡¤ÿ¤†Ykö9þUEad`rîWôoðì»G‘Žnilåa季ϯ‘Æ) CB)0ˆ0Â4N DL…¤1ãPDÄ+G }>0×x–¨9¨Sóa´«ó½0eÝÊ–ä@íÿ(0ËšdvÁæêÝ¿8yŒ“:§[M·Ð€áÐ/¶ŒÚû"mPÈXOɼÒ5›"”r·ÜŠŽ ÀPÉ  AB SÉCëKö(i‚ª-ºfg 2«¯§Ñí1ZG|Ñ9ʉÜîe=z»ÖN=†‹ø¿#Y€U!Q¸Õ^óú}Úˆ‡ú"~õ\¨1K£4æ0 Ã@ŠДÆD[òê?Š6¿ÑÍh¨_×ÃýŸµ$ï麇b1W#·Ñ®¾|¹V£tð`ï²›‹:¸¼î`uU&hgÑvVØÎŠÚY¬ƒÕø½eâ랊®üóëû&;ÒžW: ;Fƒ;¹±¹^—áZÒ‚¶Ÿ ÚõF°hv«AV½:_h/TÙ˜cF.+µÇ9 :gæ¡f<ìšOŠÛ1o¶”¨«¶%dßR&ìªÈ¶"¨£Ášòi=ËŸ7¾ÍO¢ºãpM.;¯…k¥œ<‰˜øøš¬ þíÍGßÀXç°Rû’¹f;iÉL½yÞ(¿¦ú&¨ËEL»I]6îbÌî‚i3ìdvPÔÅd̶¯5VŽYºœÝN›ÝcÐ}-e°í¤•+kŽ«5­sA'7j碖Óq³ã…¡ŸYÿôà ™»à5ðµ&þâæ9ÞàXA®­2â³ÕôVJ]{@J¢DŸL¢ï8d%ªlÔû€Ò4%M$NB. ÅR¢8ˆp‚$dD¦1‘BYm<:ï­ÿNH›…ÕbZym*¯1eXL>ãé±[)åÒçÕ±¼êS‹ÞÔ¢0yµŸšãSaüº‹Oiñ©$>]ħgø ¿ò଒ «aŘƋkš´š* a¡<ðËÒì° :‚-(ðº=Œ[è?¹j¿Ã(GÞ:ì6öÉó!ô¾åñ³Ä÷ÌùCã¶µæ »Sµ¶UãUºS‡Þtjw(Ë–ªÖ¢ûµâ6uدûà6ÍׯòúuÝ6%ׯÝúÕÚ6}¶C‘uTÑ6ÅõÕPõZ4ÔÕÔ§“ú•QŸêW?[ô΋¦Šd©”øt;ï™­¬9*%uÐÝù S±ÄŸÚaDTÉQP´›bYì©<° !äBrÐH@‘€IÆD{Ð& §c1Š<;YÅ º,ƒç-.·7œ2¶¸²sÚáÚÖj*6¸ºm'¤ìô PÀvrCËúúìÁÃû\„`*xÌQ¶“ )Æ1Ä„AhL(jû}®¬8¨etló4ÄSÛáÚÉéäØQ{ßL:&È{÷Ü÷™™nŠÚ¨§w?ÌPaî=¿;ô¦Ü „ÜÖ‹m±.´-¶úBpûêèx’9„ÅØ&è““a~ ‘sÿôh8µïÛÖ”;ó"mÕ{K>÷©®õ•¯g¹°ç úÀÂiˆõíÕÑ¢-â+—®í_VS1ZèpR‘*ó2ôÅHHx "Å‘!Ç"fTœà„Ç" ÃT¤ë‹MÇë3˜G O>À8F}¨hLÞXÌ›ÄAþ‡bÚâs®‡Ê£éÿq ¦–ÔGV¢ö?YS;;€Ýé¿ñ¤ÕèsЕOà %JyMþtõ;D×Ö9VT¯GéøÒâ7rmxP—´¶~üšxWWµðÒåìU✕«M7åb><“ºýòØå½ûûÓŸ¿¾û­+O“dæM†£8×~~j!ûÞa°­”µ0e‰[jIò•X²ª_ÎÒ”/¬nq&ÝW¦É·“.|ߤHø];Õ÷ºšk&4]îç£i¶äãFt‹á«¦•ÁI;ù²åJXå;æQ~1j?7 ³`¶pþ#MG±|ùÇbȧ£=ÚÜ´ã܃Í@ÀÎÁæò©~õqMC“¢ ",è!ˆ#C¶«¥iŸï2;A q‚QÄaˆ„Är‚G€²-X]û¤‚œ¸æ­! Êz½²"8 eÜ®ÀˆUP*¨¢¸‘ Vë˜n4w¢ºqêYûô'©} cÆÂ”@½éÕŒÝÂc®|ñ×›•F-ò*—•AÚƒ—¾3zIR)pœ¤!ãiÈS„dÈ’@‘À€I†a ¾DÔrF¡ ˆ5^(‰.§ËÅ÷~¢ôœÙðÌb~?£MÏhÓ3ÚôB›Æ ŸÐÐÏŸ1¨g êÉcP ÿà~Ʀž±©=bS硚mŠUÉéh¨‡ŠÛ`&݇A˜|;ùÔ°©–•ïøˆÕä{6—M8È {_X³­Ôc$`ž7¾‘ñm®Uwò|ïvó4IÿDìÌ4_W¤ZïŒh#Ë:OŸtøÊS„ƒ²ŸçêŽ)ønÂGã—oóËjhÔ·ZÉ®miD4?Ðl!Ï)8DHHpc#B·AÚÖ¦™øˆ«pQÂR*uàXû˜‰0`É A<[ÂqþÑò¤p¹sù„V€Î¨à+!b¸AÐQ¶k`v]‘Eø/”hëÀt„Çcâ‰>µ¹oa{Ý‚ %†˜¢œºë¿TµŽ.•±¨4òMíæã$‡$ˆc‚´O7ÃIMpÆiDAÒ@øä½Z².rsçâ~¶æ&·f_ÔØÈÅ AÊ(G|y{¡Ñt±š'ªcú|¬zgªÚçNfŸ—~Ñpµ;ÁíÏ@à3ø >} ðò{†üž>ä÷ í=EhoÏ7=ëj[ÛWCßΔúœ+I«åÛ/kšbYóêŸwVé n™§¥d#‡K°ô›ÙìvÔ€jª×í®âš KŸQ {7’ßÜrMº¯d“o'ÕZN„LÔØp_p@•ßñ|2Ç«N°óH èôv­ us|¯µs¸+çj<žWÃQ£Içr1ezN7*à°|5p²4(VÞÑ\Ìf ÐÓ {ßP³­”“GÉOÁ%µ¥Ü’k&œóÛF ¾šÚRjÉ5ÖZ1šèûzeÖh›ã…Ÿ­.ÁÊ™Ÿë+ù˜6^c³¼ï±³4(fÞðHgªÓG÷î«\žï]nž&É̽šªÅh‘ñq|Él´¡ï{«/ŸŸì èLŽéî!Ù…>Âú×ÙýþÑþùGRáNîW|Ø ÷g5%¶ ~ïOÎ:rúëeö)ö‹ gº…?ŠXˆXØC`Þ“ð_¯ŸÉÿ4C©(‹ƒÄ)Q¤CB.#´qÌÀÇ( û—Ò­Çw:v·³?Œ o=Ò¶%šÔyølïGÈ< ÊŽkÇfv¼‡qŽ»‚œb¹8ÈÌÛÔ7á°îÿGðôï¹kÚ“µ`*!нša¨Ç¡{Úu³<°˜Iñ4HIš„a*)L¸`ˆ`"„@A)¬‚jî];ççö ͘¾¾âé€/Bnx#ý~}õ¡ ¿1\éè72ÑXtoWe@ŽÉôq19fyXŽÑ:2ÇÙ¢_w¢Ã;–Ç|:4Úüáñî•$-~òÕ ~©^à»×^·õèG^þ=V¨”iФL_Ÿ¸ š§k`#¿ç]WÞ#i"C(ˆD@Â) 3*•Ê,ƒsˆ"™²¸Þì×Ã<2‹*õb8™—”ަéìô'4 ‰r2ñãu[½Ê£`©_–íyÉ/Œþ*ÛV‘GØ‘o{|šôÞþüs9 šƒ~=¤ÕŒ±àø¬PJ˜á³RÕ¦_ÕÅ3JA¨Œ½^@¶±÷ê—®>]U$$&8V«2£ Å‚#)å"ŽC&Êà£X å5¾×hÎjìV~Eù ½Ó`nëŸdØáˆ²À7ì ©ŽÁ•” p ²ÝÎóe?[òåJ+cúª>.CßÀ‹“$%LF¹d„<ŒôÀO($¢ å“Ã:¢Õþ„FnÕu¯‹Îëçg\#Yå°F²Æ¿ñ…ì2XªQëÎè"Bcô®ŸéµòˆMÆBÔS+;ÙfÜ.–C5 Uó)¸Ä¾x})c– )Æ H C†B(a %CA9bçr¡…$¹„ ÞàØsÇ>¬Ö×7~ªêœÑŽÄ0iYûµnÙiïÿTµÑTÕùÓ›wŸ_ä3‚ðûû|~SP!°©¯^½»“Óñ÷/s5L“òI7Ë_£åÍG>oáª9Î_4ˆ÷2ÓÞ †à‹¬AŒgãÙjÑ åP5K“<šÊf9u>M—MÞdt/›åÌGÍêµûf”ÔŸ¿þ~­zåE¾ˆC¤çJ.¯¿\}üt­³—­u Ë~È_d~è¡ì dpêGLò¬1ˆ(v¨…-œ]kyõ"¿„gvgÐÀE.Ð^—"­¯Ešq?p:œð[ójß‘“÷M—`§´©¥/wég«IÍY(ù¾š?*Šäo#>œÎ²å(î^%\aì:‚cbÜê’×ÌøÎæÊ¡ÚCbHÉô͇ìû4Ö—«¦E¨‡éeø<¼C€‰¾Ý‰’D,!‚ªBBªÅ‚a¥Y!ÌÔòT}3% tÙz'\}ñ2Ó-:NJÏ"'ùt• ¶­‹-·"ö¹«°îƒfæY&§C%k6Ø5Ø:ÌW›[Þýdì ¹Ó wÔ1¶™º/Gº/úñxtQϺbrôóygH±Ùô.Vª§MÑNN†ÔZ—accÖ{¶ ±T>Áà Xà€ÔÂjýD¿þ$Liõ¢‘-®‡›÷Çk×O¨OÔ0_ôYÈ(ÁaJPˆb„8–8+“_k²,¢ нáLôQ‡çøRÏO£|äŒ*ÆÂër4h“¿Œ¬Rp o»jºðÉêß³ÅDGÄ¿©©ãÆ„âËåb$ ‚à‰PZÉmfÐbnÎÁ81:D¿™sí¢É3iUXÉùw#™È±Z.¤ùt22µ˜de$Òüë BfVÉÛ ŸŽR[„Œ¹°^81?g2[M—VúάÊ\{ÝäXº¡H™Ï/¤ÉÊnfßR«~y/¹iGÆiíÛHÞ/¹ùý?FFS.‡F_®~XJ[¹ÐügçûêÏÞïrª:iÜû´ãQÜSôÿ±÷tÍmÛZ¾ûWèñÎt) ñÁÞÉC›¦ÝÌnz;7Ý™¾i@”y-‰ IÙñ¿_$%eK¶¹IÚ‹ 8ßçh®©fÿø­gÛÓqÖnºÏÚÝôz;Óg°bÏ0Ž8%1w]jÊLÃŒæ˜ø’pÇ1B*’GæL¡B‰‚L&i"YBÆeº×é»ÃÌç6_i<þèŽØ–•²!)xS¡ª|u7gúpß3"·¾5úº$¸´ ÕZ¾Ù… þU æ–/ª6 w»+‡ƒB{ä+ƒý˜¦f “Þ¥ãŠ+îÈ´K]+Ã8îçÚdCÛÏ‘G0E1¡iÉ4‚žbëÑ|y¦)Ö iâã‹0Õ™B ˆ‚ïÇCõi%,µ¶ô ˆ'º/ÊÃÛµ|àØ[mÔ5ÙLûš5†¬#KºÏ§:X×㙜F.7Ô×$›-1â¦Y§f/˜_aÐR”‘%³iþøHû¢ôvpÉÖ›á áê‘îæQÙ²Aî74ÂзÅW·|©øFþ£{çvWÕ /Mg`ûyD§_xÍ®%äë?­{üÆð8Av…¨ˆ„{!ʹ=M‹G¨¢ Š¢‹´¢{J™†Ö»†P“<Çç4“C‰D"ѯáq¬%8«‚0…IBTDÇ0š‰mè… J7îy"·&CÊdYæÛ€l„Äc.о;cÊ]ñÅül¯Rã>ÀøZŽ51Ô#Yã#yV'8çñÅy_’GzYÚÙ]Þ8ͯÂÃŒ:þÎçY>ÿ¨œb‰jGûMV‡ž.ÓÜ@V¹žZ3!xý0&XÎZªÆH|ýqûñ]š•ꞯVHßЦ¬º;÷ö›Üº ±ó뇅M¿·*åÛUÝõzÈ*¾^¤µÜ‚á,XÜܺ =jdXl¦´Ð½PŸkµi#dÆ­z@w™9±Ð\Ö:î†}ŒÄ¨?v!·¥R˜UÚ܉{³]¶ÅRï6å€õgø¸u!ra­Í#hÅS÷‰fÒªU~ß;¦`Mgj¡Ç&nÃImÛºH¹jÿ°æ-´”=p)š•ž4¾ï¥•zo¨ÒµðlVëò}÷\Å´wªÓòôývöœ{ˆB­õj…Å 3@O”D:¹á @J" –@Œ*€ã„%˜¦z€&!¦ÂËÕ`Ϫ¥^&_ ³ñ2܉°—S¸â«Uʼrôž—Øf.4ùw#«nÐt”ëÌ%nxtGËP¶.ò²v€&zø)dÈoh~j¦ä 5‚‚,œ2pJZMw³¼jÎKÎB¨Õ<ŸV´ò¦¨J2E)OS@%,å1…<¥¡d!èü„¥™”!þŽl€Ænÿù«(<—|x‚=VúT“§à~£Ñú\ÓÇ9”…ð4òõìMwÉBv‹¤Ý±fƒ¦ ee¾™ß+u»z¸®´Ê1—*h:¤ð>hüûZ,³¹H—Xógnb*ìZäk-ÇÉÉ›ÌA2-%ÖÓì1Ü›¼ª'{X±^•“íÕ}V‹›ÉæZ­ cÚB­•ÞêY~à;î³ÌïÇíFÞÝ–B5 ;Q¶ñ‡ÖC æQÙB›¨[ U¦PÝ/<7—¢½½ŸãÛlvó÷÷÷Nò„~Žï60ðC®7Ln=±‡ü¥c¦á%Ö cߎ`¿y}Y&CpE˜ÀøÛÞþ#³2͵"˜@E!MF‘@i„ •‰ÂA‡„w‡‰‡ˆwµ”W\k7 õˆË‚´dÅ!Ku–üþöì¬ëuXæ Ì—©â¥ŠÜœ#Å%®û <ÄbȘ´_gHUºã­¬Ý#p7uÁ«ê^Îu«òEŸ•€è±&"ÁÑŠ1„'Q‘Mn2$Ìñ z£.äL ")P”“ˆˆ@a b©†¨Þ$|þ¤n—ƒîñU¯; žÝošMÀ~œ…iéÙºì多øN´ðäQǨ1؃nÀ éáÅÆÄB·Có†B‚¾3„`§ÚpCá¶• ç±É‰æcª\„ M%$˜I­2($L+´ˆEiÄ@ADb(wLµyj—˜³}øÕÒiòaKUÝÖyÑ^™r0ž¸uÏiópÛÿ}šü˜>|ÿöÝ '£Û†·y¥¥I¥¯ÇÇãÇùk$ò­hŽzçUV«±Žø—AÓÜW?Qò5_úîPŸ=¥ÿÒSÕX¹†šå_™§ofÎ9¯¹çÙæè'$v²Ê#/ëÅjY¬žÀL®åïG°˜<Á·2ËMÝjOÓ¿É‚½Õ/ôµj§I]ïk5‡ÆãO_®<“ü¬\ùM—mv–b)Ï®fyЙúR•.•Íþ9Wó„ú¬õÀlüRõ9KíÊ8Ï0åÊÆ+vâÙžu•„çеfOÕ¸ ó2«¬véÕ³jtľé@ÇßÜqÓìßõç)ŸpðXÏñ'ú;F¸óŽ'Öï¤?[ÕÇìóš{Ë NèTG–xR"§©tÕÝÒ‡áG<­ŠâC‡Ðm&ÇÐÏ" nt·‰þ¶Ï-£µxÞu†ÓZÏ©¾®pÞ z6í¤ÙÈì`ûíוV‚×¼ÒêpQ-ºî =ÞTéõFÚizôµ€¦×è¿y¹Ý•Æ7s@ÖÓE¿uc(Qe]ØžF6 ï¸ ÞŠ2/TYgjx,b?“#ÌtÏL¯ÌÞ}X;÷ˆýããja_iÇÛ›X«*戚ÖÏ!Š09]Ùeàî†çK,KiÇ*•Zà”¥ (ÖÿBI›t±LÉùR!÷¥Î½ää‘¡LèÒP|òˆ#©Â'LÈ®0bñ>îã”>8fH|ÈË~öäëõ¸«§‰Í•³Cû”M[ž‡›n"O!Ñ7»$å»y pFúß3°SÈ Ù–ZãkijQ@ŸáSJ…õ€ç1KP&ÐX@† €)„c8¸²”<7”fTòJÞÉÊû&_ÀØfК”bã1­àÉìðàçïö†ïö†K±7|·+|1»Âw‹À‹X^‹ÂÃ=:âéVÃÆ+ýÝHp”‘àcÀw%ÿ4©æRdoƒ0´ð#ޝ<¢êN4º«×*0¾iÚ°ï3-õ0Q÷k%3~ýö—ë7¢ì“‹Ã9úÀ”Ðíªí …l¬ì¥áþ$x4xbfZ=€à„T3ž÷uEßê qÅ*R«˜!¢ ¨’1ˆL‘Vë`ô¬î•ad¨­§©{÷³‘Ú MØÛ__|«_ˆŠ;¹Rš¼®ÍÝÕˆ;¸Å!Á 1rZZûÎþ¶žr›#$"LÄ i¢R@Ì&qŽôûAš¤ã)rvußcîßËßú¦íæÁY¡Ù×k>moìQý©3~ûý_ÞˈÚߦ¦T ‹g(b glSkûxd—Ò˜rž$D‘Þ—;0¤(e’LL@`J:½KËÓŠ5]hEßKØàvݾêí驨šþ^w$ÛÔš}Xn“~ì2Ìðä"¶Ïßúv,‡4Šõ­³8Ž‘¦œÏØü& cP›¼ænJÄfœ¡`†$b’ñH°P`˜PH"Bgqj ×%„DBWþ¼¡[ý¢S}n_ÛŒè3´MÙÁ.È(õ¢yM¿´¹æ´¬¦ßF8ÆS '糑œÁäá3m<1œáK\Šu`@|Æ `Is`yÀAõßypkðÃÿöï'ùшsRêñî yÍîK|Å_0•ˆ£SN®ï^Wié¨Î›&Û/XžE‚k•F@Á¨Ôb$åÅTÆ…ú'©$Á®wÏyGÇ7í«.‡sN2É#¼f“>§³ðÍ—â/çZIòüÖ:¢uSW®—Sç[#RE߬gᤃ†·Œ|UðU5*Nbà«­Ò_穪£yý]n<¸DU™\f¾†êaUÜ(%=MõÍÖ,w’•ÃÖnô~i¦eÉ-§49ô¼bŒIL9é¶hžñ¢‘JcQÁhbŒ£±@ÓrÿÝÇxŒ`Gp†´PqJ:@¯˜qHž‰I O± T<‘D¡P3L`+Æ•k®Ë[š^­9¬·‚­U¬™êC’¤Å£ cí“^Æ>öL̰Ã;„0¤`cƒçÄÚÚ¼¡¦ÞÜòÏ@–("„P%¡"¨0Ä â<&±þ hˆy¨X‹£½Š¯nªä˜}€ ôb_ G°7Ÿé|·„Á6l}JÖDlÔ·õ÷wzM5Ÿ ~é÷bÄYC"'ÄBK¿[ÂX þ¤ò¨ M~"±ˆ±ÍŠ`#³„½70OD:"š‰1É)<,‘3ÔN†>™N‚†aS„qCD„‹4f QXÆ )‘žÔf_Üèô’Ê^&½ò5<9qןÒãÄM½›Þ´ûÉW‡9¶¹;ÆeS¦L^_kÕ¤Pu ]Âiª)“b!—\ ÉI$ gš ãFÌÚ_ýKP; Ø™¢ÁS¸É6ÈáMÄ ŠØŒ¢Ð¬âñ»H¤u¡§ Y¦†}yO`(!ˆ“(VZùÃD iˆ©æ"Ž2ž$î Ã²Îøê¿yiò¾Þ~TuÕ­šgAþFù¼1Û§mý/:ƒÇaˆÝ5oš}cŠ„õ(¶ir.µb(nØRÕdU9€bëv©Š<_Š6îáâ¯uád«ýIOhUgb¦¯´d¯:”tP`„’úÏ%Mç`÷Ý>Ç#F Ï ` „§îˆ"µ1Es2ƒõæË†k¬ƒÒXæ@¨%éÿ`‚XI C‰RujªÚ/ å½Âd~ze,Z;Á‚¯}Z^ Ôú㧃‚“çÍøzaâäļéùYhøBëHCWC³ýß4X Yñ¹9ãÚ&5¿çú&÷:íj†oî×U¯€¾!ÖÒXésÛO^`À6 kÊ…¼á«Å¦OÂLK™oë¾ð*òâ¡Y¬òe?k·†¬y1¼n>®Ùº ›¶wm ¥½Ë{3§ýë$¥âƒiØ€Úêk“sÁ•ëÁu±«ôÑ<Ï-Ü›ª×€;¾ÚªÁ›dV.=]ÒJÔåji²èõ!&¿Y–|0S÷+Mÿ+¾ºãËA¿&ßãòŸõÝàúÓòdØ–Ãg”ê.¿B²åM=ø Ï««4®^]n«Z)õa&7¥ùš>ì._ ç¤ø4ìR|ê¯NñÉdÝí]»ŠVµ¿ÛE¥6ïŸÂÏïÔjuX:1?—Ç0ê™XL÷ G*|Þ3ßM"ýëDv¼ÏÄÑŽËW†‘ðX(ž N£8æ„0&£%šU£$M Jvæ".|¬ z]Ž—¹NpU/;Ò|‡üþö_?éÉxt¨ËW­Ìßúþ÷?ßýû÷Ÿþ×Ûºhï\xŠ#¿•ô+NéüÃïõœ=aº½­pºÉÝ*½¦Ñg ®FòÃUMûÂ9erëþa (%eÚå"éFã;kˆ†³P+'e#i²Ñ¶‡išïÇzpŒÍ™·ž²Àq‹$, $‘ 1ˆ Ä"„2N„ ˆ2¼³õŸnSª“fY,ïæ{';8Ѩw&óð«Á\ß Ù Ì5ÜT?ÍT!Túo»iZá¯çÎhúx_rDßûc|¿{òã—ßÎøFÎÞþðC‹QAxýáýŸ;L²ÜoS‘BAÚC¤ÑôÝäùŒe}jóLtêFûrú` d\®Uq¬K• r®NL~H9ˆ´_øÞáSR¬U}LºdçÊË(Ü“e¤êL8À׆ò?Ú%Î6bµ•ªÃ£ùª:[Bð¢Î‡¢¼¹ýRNPçb¨>zèÅ$q˜¦^´ßï×ì)U×¢±KH„B}7ôéÇ[¸(o¡7 á¹DÊž“†Žïx¸j?—êu[GkÕwuø $ ‹Ô7uØœŸÉ5ü˼ªK×§šÃÍ=\ã0G'5»…=ãO®O©Q›{gòïÿžßüˆ§ß²_v¹žsixJ½´lêû ×±mÿóvÈîÞ;™Ÿ(˜ÀœÙ‘û‘ãÅaH$ ™p]J¶z×õiäXÁ…2:rUëú3^ûVìXÀ¦-Â\2®f\÷ðº#6g±¶@}[÷¬{5'/Yój,NYïjª}©µ÷>u[žï.\‹j_°Îe‘/¬•tëÙd…]ë×&a,üسlNcȰ…ë{¾'\n…~?öøõÐJõ"ß ¯†*8Áì0vÀ›¸†F§¨¶èØ*/}0…RSÉ©U¬*Ä—L—†3Åm ”9²¢&{CDæE>üãß&^è8óHp"9u}â»ô™fÌSèC_¥^ÓÍ›np–ýàŒ,d]éÙn¡ •šJEeeQ*XtE{‡´ïêùaQK¹$ìa¾N¦ÖøCÛù¨uõ—£^,å †[ ›Ø‰¡L6e”¤\9ÞÊu©é›8‹I`G‘.µ]êrÇ–vD© ½DœÇ,/a<Ó7ñÃ^|Úý´L;tð‘Õ¥)hÆSeíG°kÿ´ Gø÷ß~±µ¥›ûâ.¥ùkœ9‚7Sv1Zúiþæ0Ñ—ÝD?N(×¶›¢,GN5,¿$#5OÀ6c¬QÁ§¢%EŪÝ@õÈø†QÕÖ7¨1žµw„ˆÚ ÂdÍKc÷í-ºEœÀ3¨'qÒÔªQÿ7÷¢GÆm’#E› Ô…ååcI‰o¨Û¢;&i”¡Æ’lƒ‘îcŠÖºZhÎÖ¢Þ¦’Ũµ4©Ë õ,c¼D=ËÃȦÂHc¤Áà !%Kñk†Ç†4v „ß°\o +Æ_™0¶UÃo!;ÈTó‹Tx2ÔÞÝi ½hW Ë”² USé$t Mô~ÆmÎ5`ÃÚºÖ´(¶­~UÆê­: Zž†‰þZ@ƒ@V{»Þ²(C ¨9C=­åŸúou;Íïsæu¸NñK­»ÏÅ:"+Yl*–!¸’š×ý[nÐÃÖm–M^èo )ÄÇÛ¶B×ÝÒÄX“¥M„¯ï—Ë8ÃHŽ‘fÃÒjÃeêãK®!iK ÈØõVJÍ7Sx0£¬’Àðt¨‘»fŒ}iTØÖ!®ëPu{Æš-B¢(6ëD>¦ã¥PYÖø9ÆÔÞ€° Á€Ä÷Ü"â~v%¨”~Ä@náû¥“תäꂽ+*à,Åe‚adSa¤Š’Û_§I÷IpwK%šàŒ²¶ÿæ˜â”|‡‘8C%¼i;Ë&‹@UO彆ñªÓËÇÚ!Èa›â:v£û5o²ÞÀ¤AY’o‹»z›èhQ•70ûn54/’Z"¤ÒŸGß6ÜR°°Þt‚@;U °"®Ðñ„i{~l&ˆvU2§„àv>â*˜†ÍÇ8ÏXšŒÃ()Q‰<ãš'y®vxÚ&—cn¡€üVÛfª T§Õ[²D÷žò…ó…ó…èì¢&•¶W÷~Š$r‡˜Ä¸Ò­¬ôŽÃ[ÓN(è*C=ÏSè»~%ÌEv‡}ŒJ&ÐïºÑÛ-ë¼Ò€?[ít •ÄÏZ Cíà=q@TÞ2½ õæ¡L…Ó¡2MôNÔM¢ó–!¨ÚDA5HQÜ– wŒ ]ýQÈ]’#N­ÐݤÓÑ a€õZw7RëV`SU‰AV z Jâ¡J°­¡vzD» Þ†R‰ª£dƒZÙ‰+%F&†¦ºä¤hpÓe‹*†Š‘ ŸeƒVÓ۱ƸëzãZÃh¢&w&†»ϵÝdöín3uvwõâ~Òø~b K§öÁO2©‡áŸýòKÅÊ›„ׯß3R{Ãp*?¿_”*¢w]'·ò§É)ýŸ{ÿó‚,ߦ¬U¿&‰•~o#`Þ‹ŸA2$ù‹TRªDä?a¯Iã7 œTØ¢4HK–ºõ×”ñ›„¾c-<Ëõ-ï’P.²YÖÀÐT£dåš\'#;à>©í2â…±K\+vcÏ&‘+<Û‰-'bÛ§Vß:–À{ýoþÿµ+-6›ëŠÞÿöëï« BxÖ)óÎYßlg²ïÿ©9Ñ'gú™äZ¾ð¨Ü­†Þ=”ÒÕB܇Z6jÆtmSS ¨}Š]sñL•Is¾B–D”6°œ…¡X Ê …ú}Ž,e¶t»0Óß!XD3Ia,0±–ï‘© ¯‹ÊœY¹™Lä³>}+ò¬OjjÒ¼j¹èþ?È»Aþ,aIiQT¡è‘ƒØRÑdžëúý¯þš•zG!s^¹ÞÊ{¬ÇÀ—U1¢ïI/³B¬Êq”á~“30 ŒÚt«±Ùƒw,Ýê(¿‘CZ?»¾Ë´aBU&· ×¬Ï T³ÆŒQajÙj‡ýXãæT•¶Ö±ÎOA²F‚8ÈëT³ì¥„Ž´5êØ-ãÑ_Ÿj”ØÚ‡q" 3䀘~wBJK§ÍÂqþ»S<7t2!xÇ^E*jÖ˜Yô3ë0ÿ ^ç4pC‹c…áeNý=ö§ç¹EèF#PáÅap7m‡4yLTXc)hàÓ}’F% ¡a›Ä”R¨L-u=Ê0:üÕðR E*yžœŽÝ ŠØ„5|5Žh5q¹"بŽ~.ÛR¨Õxþ9½g™äûƒ{³Sݶ-—:áÂõ| ­\6×UV†za¯¹¾LE=‹t›4K5˜Óë ø“g®Ì’LNhñkÛD<»ì•­ì³¶{ƒ"ªD•;Ì:ÐQØXêe™¶›$_ÂÎo–5°ÓÉ”™V½_ùh5¡ZY‚ ÒWъРÉZòµßÜõZ&ìµHêR…¼•ÕJý¤QÜÆîbâõ¿ûš=áñöXo[P%Îð÷¨òѱéÌò£ßåf)«ª¨žÇ8ñÕ¨aÆé0ŽçÎ{öUÒÛ]+„P­ÛqCû³µ†~ò=¾P(§ ]GZž¸°Z#ϳG?`‘«„EBÚÑ>¦Ã‹îØWb£xR~>OÃ/fÚó|ø †Ûa¿½¿†i2_Dž–Ÿ“Jj†¾оƒîssÛ륬—iF}Áú¶ÌQ᣻މ‚öñtìO(h»åõ¨œ Ÿ¸ by¶}ƒ¾¥Ê ·ït¸Š©™"2«¯”1›‘˜ Äv|ùw¬Ð—1!¡@RÌ„äßt¾ºõÞjóäAMÓ/”hýJ$ýsg`ÿ–D]+ì²4‚j\êò”{⹩Ô±B=¡\U…Ê)úÞd‘z3ÕHö~2˜Ë ÿ¨Á¬—»³—vÙ¾Vc[úÕ§¨¿"qø˜aܵߌöm¢bÞüT–©›“vbóZY£ê†Uͨ†µ:Ƥقú" :ÚÆ–R$MQi¥™ú”²TIPdÕ%}7D üåÞM­Ì\ó«À¦Ö,¿êäµþÒLi°C—ø åÂJ ýl†µ]Ÿ«À ¨J¯=“\Ðv(¹GHèHߊqc)U¢z7`Žë€>K= ×<@°žÛK êüüö¿~Ÿnã/þ©iùgC¦âÞ´rì›öo«Ú'Íz›÷¯-l¶H–Aµ61\°û:>•F6ˬ™­ºüû璘iŒ¿ýðáßÿönmë\p\£{#>¬/tMnŒfA÷ø=:’†õ÷f´G™X±¨Ä­ö³(›×Ðé^ª2'ÛþùóY’Í$#4Áf… oN°ÁõKô„[¶ï‡]8*n°~¶\S^iÀ5…׬<:Vp&ÛÜ’~Ʊ ¸ /PQŠ-H…_dÛÐ0Ç^Æè *O×ÃJæ7cÞuó.S5¾ð—ï«âÕ_+…Ý Ýüvà«èóëÿþþÛÞ}¬¤€òèO¸\õnc3¼WîäùI©ìÏý 9+ 'ôԵȜßw½&C|y7´€ †^h]Usæ®»~@š[¡ïû‚3îr_F$`aÀ}1æz4p}n^$iDLõÉ`$ûƒ™ð…}- Î»·ŸŠûYËbW𶨡)˜>¦ï5XO·GªpE4r*S>¨¤…ÁVùA° ^¥¡@îÃ=TØÉœ‰¡n’Ë Z7´]±\TÓÍfÞ¢Z5ëtS¦kƒÏê¢Í…Ÿ³Â²V$Åà§‚‹:ŒÁ±bòCi¡ÂHÌ•î÷/½ÿQ‘Qaò¡„)ù”²<Õ"ú*mbºüJèÆŒEùÁswOÅPdmØ{/4A³$Ý3[ïî_Û:m˜Y™­U1gù-«g¯6OÙ®è66_öbÆð—à _Â*=gl~ú#¡².ÒÛér42ÚþíL…Àa±ýõÍÅ×ûQý1º_-{øh²EïòAÆ8er×ϰ5Cð<Ïv)±ì…MmÛú|ß?¸/?^3+uX7 N ‹•F„ÄŽC+ Tôg{®JµŠÇGa§šI´½à›_Þh¨žD]í†â$]U«ùŒŠªqN×3û¥ëèãKÇTÛc_rÞÖtËSõÓ˜Ãò „o©C¿,\•TÔ h(CéÒÈe¶ô"3³~:3ô&åôÅuÒ«ö_ùæ£rÍZÀø¨<@ËûÞkßsžWe@þ }R®Ê”ýó¿(—Á„ÿ¤åÖ×:U'mÑ/¥< “9Uð-•ÒÕ¥.¹$3Q\¦GÕÉY8+ß@]|Q'Š@ëˆ<ÇãÔ¢2— aÛ$V§ #WˆƒÈÉË¢êBï>ýh)iG®;ÿ6é9ã“õ±Fžð8ó‘—"[ËÊ`à6Ú/oaÄa>¹Ó¢M]³2Yo«ˆ 7ik°ÜkÇVÞ¾ûãÝZ;÷°¥G­N§€ ̸®ìûBfPõך¬}÷Ǹ<¬`xD˜ô‰ÈLἌ»ò¬Õ©äµäð¤Ó¾™ö%C±ç9ýûÔ‹éK5,8ùã8r˜:L;\ozÑcíÆÔàŽO³Ž®ëc‰íÃ&¼~ß¾ÿ{œTòŽ¥°‹×ƒž[¿>¶?l¡YÑæÍªkBÿí@‹k´ã*‡“©0_Ö<Í›u £§V,*²nªâ~Í+)êñ‰Ö¸>F÷dåñ¸ÌÇ´ Ô¿ ª¦&dÔnÆÑµnŠ»î ÆX¶ì¬Ç˜rÕ\ö ŽÏت7ØgRÿ×n€¬“ŽÙþö÷‡9´zܯp€"Ÿz£E‡\¦‰!8‘K=j-hã÷$ŠÊ8¨¶{ßh@ƒšQ×li;vºÂ!–ã; !Üq¼8°‡Môœeüüþ•W²ËÍõ³é½Ø³¢™w®Ãôë2i*¢èŸÆm«mì¸Ô𤞄ƒ3^i]ý塆>ÄñTÍй¬IfÕuYbç9kÜŽ0–1•‘åK‘(ˆ©Ç˜íX~vhG~tvVõéÎs}áºP7J·&}÷JVöYüõ«!©—Ð øæUrËkä“Gú°_»S¡2å“úØ×8‹Djmh“Ü)©¡8>º…F×:†9TžÐº[Þ1À‡½-òþ‘‡F—puôL{E±´Ð¼Pù‰;Î%$m/”M˜.5§`æ¡°]f9\ˆ€¹q h çÚ~ž{l83ÿÜníÜ`â¾Ì×½14ÿ’'nM.,›JÎKý..ØÑ}ë·‘nøÀùßx÷ì]Ysܶ²~ׯ˜G§Rc_œèT9¶ãã:²ãŠ|r}ï‹ @iŽf»š[ɯ¿¸ p6kù¦²hØh’ ‰þºènDÉó›QžÐiY¬¢äÝ„çîkGê?ø=-ÆÎ±©¾µÄl=‘•ý=#zR—ûüä»Ñ‡kŽ!¼s阖 Éß78yXƒ‡ˆ*xPÀß{ò4> +yš+É$W’­ôê’«ßNx¿/GÇ£žŸ{Ä|þ~dF›í„¨rnÙ ˆADÖöBqJRïjdšUNp)ç‡Ù £l¤CvPb”Ì||3vÞ¼ëÔPDÓï¤XÈ”gQ Œ&Y¦d&3&1ÂYÒ(VKÜ!«ée˜ÃÆ~ê¥4ÏBœ/üš ÚÄÓÍ.ŸLÙ®¿ƒïŸíÏý|¡¯ìD-žGÎm±i¹×c±MnÖ8m½H¨u½ØÑ&õ‡ˆÄÍINœƒN½»{'ú1¹Í´-ºLÁPƪ+.Q†SI°@I¡TiÁ ZsâK+ Á½Mà݇/üÿV·=}ö]i©¸F:‚ o‡ d¢½9þúhTŒ£ì(é4]®F$Òò}ÕŒ@îNZí¢Ú`b‹Þ˼T~ÂksÄuþÖž"[Ÿ}µ¹ÊÖNꣽmµ „nTxþ I­÷¥¸§ó*á硉ßs͹O=€!‰¹ƒšJ a™œ!”jD qºQ$ a8cØ©@!ûÝÁ{mÛƒ*¾ h hE(ÿ@p}=ûðÚ.®‡¯Y¹kùàÿi7 ßžÒN»W$á¥þæ ª5ù~ôµ-{O›,œm:Îo…Š[ oõ{!BxÔú ü!H/ Û¬9)†ëžûX´vÈì—‚Nއd°)±ÅyI£;‘edŽ¥»çTQš.´ 3J¸?Ñ’žR`M4J¥â\#£%uSE¤fPŒ ±BTÙµv¿KÎhcëÝ,H7ÛĆ6ÙÛöñ÷w¼üôf«5Vû––¿%Û.ÊÓz‡=<¯›N(i=·Žï×¾¤{hš‡z]ÛóÔËqOþƒo b~ZzâwGê°‚ÿUÛZk}éFÜ™'luÜÏrcfÛæLèzsš%BsÖK ÝÍ’u¿»èÇ„hà€ÓªNù¶o>&rb„Á0¤àÅ6 †>ž+Ã*ŽÎ0µDÊŒ¦¹1ÞJ…³}ƒ„'K‡½ßy_®Û#kÔºjÝŽ¸ F„Q¢“üý!{ï5à>Ǿ¤5;Þ¦Â(µÕÇõºoó¨ZŽ’qt¦ ãçoqü[N|lú9æÏ·ñxú›ànjã~ ·[x“ä SÚøIØ`°Í3‚59¼îžÝ.®ü´KpÞçz~OçÅIM÷µrk­Ö&W3=+Ò¥B€ÿ˦Ïÿ½G¡„þF/·‰Û¾­/hTSÍ®­-!p¾2œóƒ”ÅâÂÇèsg ¶–aQ Á”jа†Ž”)),ÑJÈ%Îl¹®éÍ‹ÚÂ@µnàãäïɵӬóõ~Ú[½Ý•}—ÙÍÆáµ“„{²6R7ê¢Yò9öJ®Ñû,^µèLßí¦Ç5÷Ö(3ö¢ë-o>üí÷Oo^÷sÔŽjðYˆý©|-r§øÏ³×/?>fq·ÚÄdéäÎAQ‹-¸“¢;] @r1€ ò 8—`”ú€“ЧXÖ¦)‚Se2m GÐ*"2š"à ÏçÌagg¾çó{1:ãèÖk=x²6‚µ,Ó6$íS |êÀRê Ô˜^Èi!Í1̆€a3"œ´$£~߀ÐÉ‹¢ˆÔ„Э")Q˜û-pFÐA¨LÌt1Cè 37ìc>2Þ-Ö¤‰ŒH@fÒ * ¹sÒE–Qç¨ Z3€‚’ Å©0Në¡B÷ÖÂk•{dSN…dø!׳ë–ççï_8¿ý,mBŒ3j85š6ÞˆtîDúou1MG1 {X6ߺÉÛÛ;—õwípkÖ¹%ë¿Õö§f{<5ë}j¶õ©·÷dŽôö#Þ ÙN¶%ÛvËñùpÞqo7az@[°Î$À¸ëá„dÝ«Ø~å`w5Àø%J«[ä ­êY,¡gB1ãlJ¥‘äRY¤5qB™3­ûW.Å´öúµ§fäT€º •w€ã.n„ßp·!wÂÙƒ¶ u'$íǼó Èì…·] òlýc—š®úåËN=\Ó±¼½+ôlÌÙ»07ØÆ£iÈè¡ß–ñòÇពܼŒÝ¿u¿qøÎÀÀ3 ª#‡A¬´¸œçÇãÙåÍlé°®Nt?j%ãùðÆ^Më0°¹_»×è+¯¿æ-vR>Ê’ÕÜñRlàZè›Ñ|¹¨¸j@?÷Û›\Úi‹øU–M’iºGoQt󸛇¥Z”¥m3ƳѹEóp9r®»ùOcÀïIúV/ÿ®»Ä Õ#êcÕf[:£½\Τ¨•AXúªIÕ(Š$º0 !t†0Aà üN?’gz‹alj3§·”ÁJ¤¥")Xù ‡)‡ÎÇÇûj±—áCí‘Æ}0 Ë¿ás#ò¤u\`MÓÙ‹_¡Ô!ýz¦W>?$d'mJ Ùw »;nÇ"‰¸p`Hòòj¢ôr²€‚KK†ÂïÍ ÏRehf…Í€4Øp.‰£êT;#͇p¯ë^Þ¹½s¤ÖM, v+ĵ¦°Y8(ÆðàóD#­ÅÌsѤE-³rb'W³ËÚñèòÆé¿¹º´‹u1·ÖÔü¶üªM‚qÆG“6Mˆ¸Yù^;^ª[^ÖtüçO}.WW˜ÚȚó'ëÇŽmå)}uuääû=µšŒgúú6l1„I¼¸)¦8M1 YšeXm‘¤Z[‹ ”9Éç÷¶ÊÏGˆ—Ê[.z“î&´ãɈå÷•FyR{‰¿³rXû~R}ü0‰’„Ïßü¡56øÿ[Šk°îxj+1él}„þ¤ê@$rQ >€ ‚’?|vïù¨q9ŒÅ&€\§$µ”àTIã·ª5ׄ©.‡örtyµü2Õ'7Æ.®—³ùÃΜÕÓu´ã óÚÍáïÉ…`DZf‹Ñ2RØ>´-®òuˆÖiFMÎEÎé«I9*¯¹FÒ[eò~¤u÷ˆóæ î¸âãæ6¬O0›‚Ø}V¢¯(âšüñÃ[ˆšÑ1\úwüÝîUx°„F¤ÐaØiŽb‰G±Bß:ÉœÖç´oç7³Û?cˆíaú<È_<ÿü«ÃAÒ»6þÓ x(ƒÕTߌœc¯Æƒßœw>[Ýh[–B/w.làkê±ë¹ãŸ“õCDKù@xè¦Ìíò‹_†4R×2¤1W…‹ŒRgÁ(¨-ŠCÆ”SPYˆR¬-#eY‰‡Ï¿l‰I¤`Ò‘x61èܵî{ñ|©ÇbèCàW_^·‰ûáÎ1Í™Ã>Oåvwñ¿9-šsÔa¢F(g÷ Z:|!Ö¯êÆ>ÿôÇæ•¤ˆäµôœeU¯ZžŸÔzÉâF~Ig€ "€àÚÌR{›µTå¾,¾²  ß\;?†Zµvî …š¥ëúLn‘EÚBhº_ó;ó€ÒñÊ:[~yÕUY1û‚i»ç%7ýì±ÿ„ß§}МyÙ(”øá¹–Ô6[\<ßÏR×£"ºIÚUg˜¨UiŸ˜¬»ÙYŠÇœ.?ÀWó·Ê–a»84À<.¦¨¤L5ÊC ñ SƒR†1€‚SME<¸˜f‘¢nÇ!»_^ZG$ÊËZþæwBײZ¤>ú±åê}'ÒÙ÷%÷‡å˜+¢Äê¦tgËy‡`vJ4¨/#ô }S :¢Î©hˆºcOªžFHD#H¨ÿ6ÓÙåSR¿w4 ³D2c,åZÊ H ”‘"5#£@PD¬´Ñ×ËàS»Ì/âkZ’EEÄJ1¾ôÕu1À¼^Bƒx»ÉW¿Ùk}ý¡c8÷¹zu=l÷Q§ÿöñ͇—ïÎ/^ýëã§‹_†º›¼ï—±KTäò ïÏ߯.þ…º#ÿHü‘ƒkhõ•ÐóÈ»ªˆÕ»þøö6§tôͤˆ,‹¼,×6›„zÇ»”*Ø2eÆîjÓåÍ,Vå ×îšúÝgò¹;ÚtºÆ«IÚ½Ò79i=Ñ2a~h攫Èu{j®vë‘\ÀëH$|?›±Ÿ§9€úió†¯7C:müIöe }=¬Bœdƒ‚›;k4“‹°t–ú¦‹«:éFç)j'/WS»¾kå†ÝÃ#ôùùç:%Ü®öf8דëo ƒŒ+¥¦¢t*GÔj§ÖNIªÏY™#„í&‡ì½5Ó7ÊøÌ>€|HbÕ,¡X¤LŠÌ(‰,'<õy@+™M…ÖF) Øñnè×ÄðƒfÐ#“N»…Ï“Y!ÌGXÈãâIc5[Ô·õ¢ooÔüj¤»˜¡íqÜ^óÆñšp9îdÝ£Xv„D8ƒ–byȼÐdê¬õÙur=™'ÆfÊõ€ðޤ’lèþð¡óc£ÅOYJ8Ð6…Ü» ©–HÆ9FÂH¿9¹ÖÚÙÇî³Ulb[t¨­™HåxVtâÅ—I¨šéËâF°µg€º¯…Øf; ½[0~šµ;TN¢c*Êšø=£‹@²vÒcs¼¨_´LúñÍôêE{¬$ØšÚA.‹ëWÝ #¾=q 8\/×Çž3éyÊH^:bþû—³w¯î¿7Îß ž½ÿxöüÃdzJPì MgN›€Úò•cOê]‰å*:;»1‰ ; FÞ¯’¨‘/"!œfðh¤¡P)µÀRd­A¥Db˜u`h•çÌ ,-ËÀ®ç;V ë<"Ó™¿n³Þ~{1|[tÊ–ÉÔûEÙOο›¯¿/¤œ«—“,¶DQ‘ˉ÷—ï¯qTœ£¾5“Ã×RÖ¼ÍÃ×x½QI®îsö¾ç6%gã¨ÉóæKôi*ry“7ô?– i¬¬g*Rbr&ÍRk†ÈY×2!á”4âèar”Ï?Õ8ë¢Ì»< ¶EOÞMbÌãɧJó·š&*¾Û4§{ ,¹Çl¦§ž‹yDèØ7Kñ;Í0 ¸†?{{c§_&jÞ ]¹W¯èHum]o¿Œì×Ýé–z• Guï^-—ÍÜø¦Á¯g¯~ü1 sñU¤´Q3¹.!_œÔ^AçGÌÙƒ…m†º¢Öóf¸“)Gˆs‹4ˈƒdkSi•Õ*Õ ÅîíC`îoË  Þê¨Ö­&V­'‚=ñêóñBó¤…D=¸´FŸ8uwXì…"Љ À³ q6CÍcžNˆ\JNšãº‰#%ß”RÉHG¾ó å¥Üïå€KBée:Ë;ÿ°[„œjIÄif“”j¥€!JIf5©1¤t×ZH}ò—ûù}NÜçøE-lqôàcãHÆeóÝÇ@ìQ4¡‹[Ô ãL8u#±sëÈý÷·z÷ñý»PY ’ž00“,UšX«P1 ¥ñ›ÒÉÔ÷À“"bª)ƒlöMI÷´º¶-¦_>¹«©ïf×ò,ßL‹žwöe?ƒO$éoõ5en74÷™Ä%ÃRûW£®Í^µùwÞ=õH¦C6…ô\š\U7§E6äI·öjþ¶XœÞ쟩].¦yÉØÊ šåK›w½sèÆ‘z{ΗPïú£ùdäd5üubþ^¬FaâÇÿ¾t¿k¿~EQêߨQ?ÕŽ|V2´_¼P7—êæFýÙiõ·ø¯ãZí«múJM§v|¡´v#d—¹½<ùw¸pšvºÜÆÔלÏÛ]ŒÌ6Žžf3›¨ÑtÃùCO«ëùhùç†Ó †¾ÖMžÝ¬.¦3c7µ÷4¹Wv‘ÇØlà˜ÿ{WÒß6®äïý)t|}PÌ}y=}plg™vÚžÈIgNþ(+¦D6IyyŸ~R"±¨Åk2}IŒª? U…B•s{ŽÍó-hº¡YŽ0²Œ#QÑE•—£¼˜¸ìõwk…0¾fÆ-ïðªºd•V5ô¥á_;¡·Jj{Mø¶èûæ•wçÛÂZZKQ‰ÀÅ«DàrW"ˆšØZKO‰RY#ŠO—s\\³…¢‡Ó¼ç`âQ~j6ç»ë›n·‚´bEc·-/$?0îJ)ìºAèŒ|;ô={Ïݽñ¬ÂÕ¬éX67o›ì8pœÄIÝ”©ì.‰cä„_ýQ7âÉHC’º(]ÇLnZÊÅeÿ%Žð?­júŠëNªÔ+î];‹å];æäïëYÉ/vó%!’äyý¦‡j›kYùó`–"L+Òþ÷†Þ¡y‘Q‰Ïÿ%b”Hh·á8e<åM³nÌ 4§w¦R. û/¿¡å½HEd.É/âæÝê—‰xâðíš¿ßpàÅ Ô¨ ËqciÓ®}h,¾7@n–û\lÅþ>§±Y;ß¡\ŠòÌI±ÿƃœ ‰cB)¦vPœ8 Ó¹ˆøV8ØBGN”¬o¦áÕV†C5gã’Ng<‚jŒQ²|ú]~ýl{që«ìåЃiÉæ½n3äU¡ÛÃŒh„×÷@º-¼Ý£Ç_l2í$ƒùÕüsIªlÃÚået_ëïí÷:n¿×~hš†%­¬¡ˆ®ë–Qº/“Œir\ºMÞ:3bÃrCi‡’HãŒÅ®ë-n®éyžEá{t¼~Æ‹uŠ'±°y68(ÒÊO,êx^:)%iHÜ懤±Ù~ÂŒW~I Ó•DËÖ'Ç.½±Ó¬¦¼òÝï/’?t6 –EGj)ϭѳÅ_9#sw¤.²©³CG“±§çVÁ^šx`øt£$ëŸÞ=¹ãĬÐ;i<•x["5—ÜÓ%;zõŸÛnz=—i¿tÒmÌDÔõ˜ÿ©Òæ­%Ý“;iÅó[ʱsÍó]äœ^:¨ð#xðùäðøÓ ÌÃy–Q¾ °%l  öò´ Aßdì­°‡Ÿ¯xš®¡ÀPd‰šó ƒ˜ûE3©A¬!öf¦-«|1Ð'7Tãwt3<~üo~ÕýdÎìŒAÀ‘ῘU¿†s‡ž^—ªè CõEžÍðý ¦L±ãZa²¡K÷ˆßà2TˆÆ+Àx³Î`Ö7óqiªU¶ÅÅ|ýw*E¨®Nµ»c^ew#ìÊÔUð‚p¦R$ÙP–õ•B’knº¿P³¡w ­@Uu«V_ÓªÖŽ4]oÖÛAàmc®Ÿž¯o £Öuó´ß‚®«k”ê­¾gY’®ÛöP¼@€€k3571=ÙuÝ}’ wíàlFµÐCÈóHu,ßuQLˆKÝ0ö­4 Q€ÓÄMÝJ¢%~úz«=½Þ¸CŠ}’L ʰ£É0UjA¢A»Ò$Žc@xµO 2 r@:‘ë‡#ßµÏyˆkc¾†˜›²F—ò´ViâňÆNZµÂ8¢.v=[>‰†v|_.«1ÿâVáv»²+ý ¾S_…ü­‚³¶0qÒî™7´æ>`ö¶zƒ“׉#ϱG¶»¡½G¬¨ÚX@;ìxB®O±›:qà†ihy(p0±¶&#‹Mc&ÀÂ(°$W:ôVäÉ݅ÿÌañ…ÈðCIw›®š¦è;žN vxXk´C‹ ÛQdGž»O¾zÖâ<¯gé˜ë#®8Y£Ð{ãC“ÕÂI@-/ Ï ‘OÓ(â·ÈD‘Ù®Å`Ú©›)>è姸«oòIîrg ¤"ùÝ Ýmõ­h%?— äRÿöìwn­7§ù¢nߥÞm󂆻÷ºÚï'½X¯û&ÅKMÙãwÐÍ3×8·¿Ì2h"*4å»ÿ½ýòÇÍ—¿]*³‹ïú fWu]üûààöö¶‰h_y9=èÚ9X8ÿU’ C’9ŠtŒ­8ö$éØ÷y,ôRDг­‘ZϹ—`ä·…4E¶_Õã9ÄN¬˜"7Æaja‹g`MÛ\ì'vâ†.’ |¶S¬Ï¸Åý·ã¼&ºñ& n&4û¬ãf.l¡6 Ä‚l8έL;=ùŸ#k ÍýU]×€¼§®ãÙ£ˆ}{:•Ú ²V' Ì_C๞„1ÆÈr(rì$ñCf™%)fªâ߇åQB]¶×_øRÿYÙ«éõ&Œü£Í¾‡Î´õY'ã|sB+ôG±¹{Ä ñøÌ³4e‹Å%[?š‘ccg¸E‰Ø1›Õqß&Il…!J¨â”Ð0H°Eä“”báÄ]_÷xYÒÑïëTf³Äð ¥ ér6€°­Å˜©%ªÐöY9^ââí§ÉSôzµ-ð•-Æ_&Æ×Ú3Ú»iº›¼H„2Ÿ3õ©à^Koõ¸<ÏÝ6ÿØM;zìãCsÌýú¯¾cÆ]ŽöɃÉrV¯oM<,ëYUÏðúzã߆D²E ]Ðo£&¨{hô¯ÓóóÓ_¡lMsGù"»ÿmc¶Ûß”(¢/_¹ªÆ¶-%¢[(áÕ@®:±ë3­0rƒ}"$•¶0ÊðEYoÓÄþínìYQèa×O=s—…œØñ|SXDARèE¤â›9%3”Ý©Ñ0 ªè4½Ó»k£W¨¬›K‡€Ê8§£XìG\Ѭð¦»Z¬Nb¨p¯Íi®W4³£Å¬ÊùÁ#êçó(ˆ—|ˆúZˆÑÎÁ U¢÷¬Â zSU^ĽaˆCn2 W7PWo€U_4 Æ%Nøì¡%8–‹üÅRÒ’9_Žÿ¸T~"p7.-ÙDZ†´=\uÐÐc¬°B@ЙÄ0ü…¯ý…nàGÃ|­ëÐÛ»Á1¯\èeÞ©ŸïOâ2âây²ûj:™39º´åa•ùàÈË• ‰éÕ)ÊŒ–9®ÀFA¤®=7Ï &†Ê;úpøùBdîÒI°²¦X Qõ—ÙóÀ^÷l± ¯ZHˆ©Á޶×q…¿7®Px9¢NþúòQïÅškèÆš-ä-ÃÀt铳ӯ'Ÿµ¦ܸ‹’ÈJPž|gd&5q¦ðÎÎÎØ‚jAÀž¨ Ô¡!M×h÷p®ù=À-Pý×UkÅ9z¡b<¼Áà¡V~8rø}êÎ>G<•&I‰n7˜1¶QÈvNŠCê¥vD‰#äE±åxi‚ÙK#4tÿÁk0ü_Åþoaò— ÎÜæÅgnó„x–üô꺫ǚԳv†l[>-Ӽ潞ןJ#f ‡áw\)Í¥3~B»ï® Nk§ØN’ Á©gYq¸$HRßB3z$¤AB_«…û¸ì%šÞkù^Vè&‹ó™³z"È¢üÌÌm‡no‹¾€ÙùSÁS…·¿t7âu)‘Šj½•¹ñ:vȈÌ~ÚP.µšE í‹­‰4• ¾" ÐDüÕm¡6´"Õ¯xÝ_’Ø«x ,`tI °Z ñ×ù;ÍL”JYÄå9 ’¶C°‘u~üîÝÇÓ ÝðPpàP0EÂfS~q'Ð%™7%c4Š$Ë1ý|•wÁÊ?«¿^…}RA:I6%II-ÐMâ±ÈEÅ X}G7Ußä¢,ÅR`5ê©`Õ=šá=W,Hˆ’é¿¥éUê\¸ì/ /"*Ò;¶+2Ø/•T à&ÈÆª‰Tµî¹«ø™à)P9c˜ZåÁ­+ d²þ׆@oF¹JÂÃm#ÈØPm~fòmþÕóc¡‡@(ŒåǾìÈw#ÏzøàºÕ¼¨g9¿·fØV"IE˜xŽãúžg§(%ŽëÆIJ(ièE1BØV’0Æ®ÊåI½ÍÜö;2ó׆ë“9!†¬°$½„¶Ý9‡¾oF‡öÂ8®Ôâ:ÜHÿ{\KñìYâå²ùžl~Ïî.§*ØÓ›Ñ)Â÷—L™]}%z7 X{^£öušª¯yóóÑ­Px7õÕ¬¯n—sÀÐ ] )mç¾6§qÖÇbUWÌL9àêÐÉ13Ù®Žsü–ý± ßzSÕ·« -çàÂÐÑß}þ4QX¾x ·[ ç³iÉ:jÒ÷X/ñÕ0}rôø•Ûô+;€\ÔP†ÆM;‘ÓܲÜ0Ø. Ø äÉ1ÔîÖ/𥒊'Õš<ùµ»a>UÒtªÀÙôHZQl_ äÉ_P÷o7tÿVêþ-Ô}žE¨0ÌwH‚%<'ôÓ:Ü ETš¡ øjò»ÓÉöÙ|Ø…Öó¥Òê[¬‘#«$S“RX“¯ïaï–‚ƒwÖeŒFQÖ>fÅä%è#‘XG‰„½%D£l°®{2³Ÿawò±,ðõï6ÅÃÐ÷¬09qà;^¸çMƒBóÓE>§¶à#ä»>¢˜X®„Và„–—Z$vÍ~&!N©íDé3oÁ3ÌÙç·ÍQ_ÍXyÕ–%÷ß·–ÏNÉõøŽŸYïú ×—Åì.Y¦~f¼%$O¾S\›®h³`†n>¶!Ö‹u Yö£nÿi!G[.?Œ)Á †Î~àÖ›VñAQæLûžs½ÉQÂ? E~Øa+£²³¢¦EuÙü¥E€i}¤5ˆJèÍ7›P[kEe訥,¾án þSO¾ž¾UО N¥ž-L«j»È?æó5ÞÍ.çl6/´Yó2àf;alZj›^ GÙNà9ÑÈwC­]\¡È% #J­”âØý8LRJB7q=F1µŸlÁMâÈ"¯4H8ìòþT_ ߟ~щ`Úˆç8*ƒ7¨2E©Lê·¿ {ù™}¹ÐÑ(ÊùŠYúùŽÆ¼&-æ©}Â{ú|’¨¢³÷§%ZTš ¢2”²79•¨|ٖټͬ—é锋’¶2/ôWÚÏÏ/N¾Ÿ}V‚Ö\áoY®A‚tÇ74ÏSǃ=,D8¿A€ó`kàùŽzß ÃÇ7ˆx|ƒ¨Ç7ªlFhu•ßjJãL>È~H  ·¯AT‚IÕ6ÍÕàóà‘)d¾z~cœy`ÇÁȶÂÀ÷¹šAiõšlòÝ ”¦&®›Ú)I=â¢Ð¡ÔÅL¥dʲ…:.ëʳûn^³‹æµ}‘Ÿa£½YŠãæz–ëÄ)_×ãy­¯¹/®Aýãuù±¼.š½Îæ°f­s÷|°ÿµµ€Ñ ·‡LÖGSæK%å;#å -ÿÐ|_*™Vœk²“ÇÃ4‚¯ÍÛÁú´Á×aG¶m|Çuâ=·nÕaàÒ Ës¢(Æ©K|ÛJ0åÑ{ìÿÔÂ$N#+Â|WÁ:ø$gz)gÇ‹ù0d®œ—rÐ…±,$‡†»zLË)¡E–ßó¼YüÎ €$y_Ó ?ˆN§uÉÞ®÷ßÈ1Ÿ²7ìCçÄÒ[@§ÞÏ_óD{3Ü%y“VÐÖð¾ à?šVõlÁ#»ùí‘-½uôîý§÷Ÿ/ÅÔì:艆Ñ(¶×Ô§ëW픯7:´7a2ðÔ`'·ëáv݃úu¬º®órè,¨S*F£ôØljøv4Žúíh '*D%tÈ´˜ákàÓQèP$‹ªº\)fP´ŽÌ‚ÃudŒF‘lq‚h¿^¤¾=œ\*W$ˆx3KÈE Õ:¦ü"D¥ &7FøŠÍ!&µ~ ']ëùRIÆd€5ßSOv³¡“=[,HhË ìx ç+Ó•AÙÊ7r—EO>f“áD Î×ó¥’Œ)ò<Ó ,|üöüììTKL× mw|©$cöôåÐy’'ß!jF!.Ó¦nO5G¯™§nÏ 2¢FµöõTCµk¶XÜÉ„0VëÈ@:9kJ鱿K%ž„l½žúîôðB·=×t8¢¹ï bk—Zz ˜n~Íþ–ù€RÞ UfB•z®‡ô8,Ô UÎ…*õ“@C±«êïŒèáœNÌÒó¥’ˆùN¬UÜÿû˜ûc÷Õš ;·Ö\áo‰9鮯}Mƒ·m÷l„ õ‡½_÷lh´A詟þwò?§ê0ôlø´tÇ ""‡F¾#žñ‘×jÍÇ>Æ>ÆÞècŠúÀˆt¸E EÓëçÙZ0'íßUÊúr 9—JŠÙ²ÂeÙ0çóÉÑ»§'|®È}”aàÏ!*ADÂY¾ËYQ§%3z5ôŽ;â„¿c-gè W®€7ü O§!yªQ f$ì6-²Ëåê¢È€û!"”²‚«®Z¬V¯²¬ËJ“O=u¢g0î™p‹[,HÐ÷JïxÞåÕ}Ìô41æäÛÅñ[M 6¡ádN°™%=}s•Ú(öÔ‹¯Nõ$SîQÇ "b‰õ•eMûr¤­, ôâneYý)s Ì×p 9a¨X@|=ù¬]—JYÁ¤Aäãï@åk®©wk¾TR0\XB-wt&¦;¶©í UT üšüîB›Zרt-Žøª¤`®f´„Zîè>ê!¦"ßÔx‹ ª¸Ö“ äó?Þm¯¹¦¦×|©$a¶òšov¸+e#ô¿CÿrЪ_ Vý°ê Y8€ŒtNô•÷¹èÖË|µFžÁŒŽÒ8@ƒ*D%tÈ6AÐy®{–!¦Þ„h¾ªËÙbZÒ*_–˜^I@µ‰M8 ^Ø€4Ðûçî«ù´Ô_£WWÃT "[,töeñ¨”Ñ[ÔYz&Œ=ˆÑ("vz“V`g$Øa ”²ˆ«IŽÁNH °Â@(åw“ zôÿ ˜­O¨Dï-ÒIzó9=9²½—;…µÿX—“=BLcWÆÈFßöì0°G~ìÆ¾ç=çÝØå}Q7NÖ›XI´µGìàpX^öø)v¹ªŠÒS5‘EUikÚŸ“‰"³\3Ë3³3+TXüÚ5­{E†µŸQd¤Ò‰:t:ŸÍ©ÖvOGeÊÁU•þK Áó¬¢Êò¦Gld?sêrc8®ñֽƀ´=˜ÕˆŽÙŒFî©»Ýq•–eôc;4&êØÚ—-¸®ç²…2vÝp›®MñùÇÂÄ#©ãÄ)Æ Cߎ=ä:Aä Ø'>q­^”Xû^A¬Î™;$ÀÞ½¾`L>é4p]þÆ~@-™)Pêì[Éo.õoí[]Õ ¶Ì©}øfCÃ}¦3 hVæú¯{’Ô ûœV0J()­ï ªÄ«:n°ó‘‚vÍÞCQÚæ~×’NÙpîzûë /9û~–€q2 Óá³p æÇ:}ð<çZÇA5º¤ mÍV™@ÔÂîiEÌiÁŠ ‘Uw>9ÿüñOmëåIN€áþuõ³xáþ/ͯ‡Ó›¡þÖЗ>#°é €öK~è3àpl÷^¶ùÇY‘-§—SºØþ@ÀOj 6jX«7éñì:ïèðOI¦ œ]é$Í©)Âu^Þ}¸z¯Ô/»'R¦šVHw=+t ¦YÈÅU1Í·DS nZåM¨•Ð!¯Pýì=Û’Û¸rïózÜuJ¼€Ü*§jcû8[oœÍ9ÎÓ €îH"CR3òùú¼ ÔŒ4š‹+®²-t7 @߀šÞÜg–ßÛºÙNbVl§µb†g¥…'ƒYŒfµcŠQY£«x\RsŸÈDÁÕè4äD¯jÚãY­bÑq×Ò¶;ˆ¬>ƒ©S°'qÄ2Z_ÿe|ˆ>AÁÂÁÑ{¼V2hþyVÜ‚m·X{Å-^+i4µ¼kK¸ý@gè(¸ Æ€h.ëØt€Ÿû›õR­åÔÆü€U~kø5><¿|š¸Ëk*Ü~À*¿5|Dû À¯ÿöÅZmOWÛc•ß:ˆQ€_?OT»œ¬v©T»ª….L+† Ó&ª¼0­P.L+Ì Óx0ñüôõÊ^íT°Ú€U~ëxÀÛ€_û`ŸSÅT,ü€U~køðà¿Ú?·œJš7`•ß¾†·þ9Á¸õ$ãÖ ãÖãî 9µ›œ/=öÛÄŒÛ)sjgΩ£2n°Š\Â7¿~øøÛø3°#¬ò[Çbb~øüÅ^픘°Êo Ïc~üö7kµl*¾wÀ*¿5<¤2EX«T™¢2@È$#;Ð2Ò1€j× àÚ5’1@£„TQ¦¨"ëçOª¢LQE Š²šÚ=ðë•}j“S»P¦vLmH'dŠN°W;¥2E'd€NÈ ©:Á^ï”NÈ:!+ –ê_?|³W;ÉR…ÂRÀR*ÊUd­vReŠ*ÊU”ÕÜê~þÕZm=)·jEnՀ܂4`¦h@{µS0S4`hÀ“×Ô °³ÑWSͪЬêAͪ€fUÍÚ–ùTÃ:ô¦uT×ÑPË3y}ÃË©¾ÛL7rOw¨™{J \}nM7u·ø“ ]Sô¢FU§í.1pÈF—Ð`*¸I&UŸ9z©š2O¬ò[Å×R=|ÿèá;3Ý‘›k¹(p Ì@ƒfòÐÏ@À4út ´õiv‘žhõ½GB­ê‘· 07{duÌ,pQ¿ˆ«ê>/å*|g€U¬æhXImˆý“m\“po²ªncõ͆Øi€¦Ø‰í¨áihy{ri[AKÚU¶.VܲÁ!Ç‚¢P°=ý]s‚Ù"T¤èÅJLFË'˜ñ÷@€ú˜d (^«ªÜƒûãFÙÕF!v‹}2b'^p Ýq\Dp0ó¼‘Ð÷Oް“WO­y¹<˜´/Mb¹¾\ê3ßs\7ui`†’DFü1äpˆ]ñ]L˜ó]ÿ>z(¾×7ùæ­Þ§m$Dîó™ ƒ´(¾»v?€à¥ÓçÏX¹:ùÆð Ó“_L=ñnäûø f}}s`Â{Q Іb7HÓØÇ^B QHÇŽûÌ™”`ЧÍxpT\á£c½ž;»Ó“¹é5%:85”èøˆãÐì›–ôm)‹š™¶†Òøô@3󸀂o—X+9ƒÖ@Î àî"{–óÉçJ~óqrsHìZ3ñ4ñljë¾Ôå¤ÎòPäÚuV}s ; ±‹„ɆŠNOþØšPÓ:‹y.áˆÓˆ‰:=»„†‡. }‡ãÄñ ¡‡œƒxzŽ9À÷DZÌ@ÜX˜x4o3À"ØYÙÛÕ!ÑoZÊö|?Oà9ÓN1Y´T ¥€ €)ôãz¦¸G»ó‡åñvÚð q›0nZ7-I@Ü`†]ŸàÓ³Üÿ×6£·ÍueBƒ!0 BÁº$‘]—¥L¸Í ÇÈ…p"P*|D<‚SáÔ„A{ÿú^¼=z ¢øÀ)l«á¦ÎŸ¤;üà4gMkIÜ7*ˆô +'•3o§ìÅe^Ô—¢ÏÝÎËÿ÷q©Gëp0oÛøeÄãÂbò¬—úŽùþÀÛÂÏ|ŸDøôØkµ‡ÍUãdz/Œq»z¿¿§hšã)‚»Œß[ñÍÞã¶XT7VÑS¸¦}?ð!ˆSB8¶‡.á÷òHŠWyAàFÑÉ;»@ ¿Á]šÐˆ‘˜:ÌMÎyB€E.siD<ߥ¡ãF–›…Wf’†Ûÿµæ~ÂkxŸ<¾üØ;<&îzon…3Bšß ¸Ê øÌï§lBž_Ý¿Š@ùç¿9ô#éywgÞ´{Äa\Ëm—§ô¿ÞM¿† xþxõ#Æþ~2žÿ^‰ç¿âùî«î¡ôh{èÕ?Ì”è{¬¥Jú´¡`³;kø¿ç‰VlÈŸ8®ôÄ8ÿöñÓâ:؉WáÐÃGÊÌE¥9 „h£ ˜"©‡bDÒû÷Iä{1(Ç,D±O“( 1!¡°²:SDŒOûV,ú¿}ñEA+*ŒÑ{¯0¤t ÷ðpÓN“M´ª Åe¯R ø­ímó-Å-­Ÿm²ÀÙb°$t•mšÕ|_g_*Å›ùª“î ~IQ™ox‘mæm÷Í›ÞÒ³YÄTÙrÓ$ªPâyU|B°³{qÉkzÙ žìÚ½D¢qÉòjžmÒ\6“(]ñÝ\Þ¥ºGðŒñÍݾ¼áõ-ÿ>"êZ,ï«nAi tê"»CÚï€þ¼i™•ÏêÏ—Û:¿å›j•¾Wœn…0ü®I^Õ›ìä¯)ËFòÖñÚ§šé>|? |õüH¼*Bžp•®s‹90-c#¹(M˜“ z”R±ÈÁÄI#‡b‚qz‘‡Œ=—™I7…(…¤/,t-Ò³€ UD§&1Gƒcñ7’m{‘öæ%™!À ¹¥‹« m¾j²êìÌéû$ðÃ1s6-™dQDž7Ñã:GdGlªY¢=b¢Ï.B€9q ¥N¥qÈ`Fì&ŒEžã8œÇ¡zœ¦Þpº±_ûèÿÿqMž ³XÃ=m/í’®iUˆQ9Å®8ó<Ú%3¾¦ŸyïÛ¹7oæ^kHâÖèKU‘핦úòê{Uóõåǘ¯óMÕñâä’­Ê–#1¦°øCOgÌU1WZ èÍ0 …Çã†Ä9âüq_E+†ö-#àe~ˆpâ…”Ä â”®±” ³ˆ{AÄa„Ó7¨7ŸDE®‡æõÜ7bº·£ä6ºÐ§ˆÊCä\|A ……ˆ‡ ¾h5–Ò`CÁuB<r sÈ]ÒæLÛ”âò]†¨ãQŸ¥Ìg܉X&<FR¤q€£¡ëuÜ‘f«Õ¶¸ûr»ºX–¼¸`Yš¶ÅlSÉj/ÄxöL‚ölçÈžKéJªûP•ø(6}…ù8{VŸä€Žl¬y&u!k«|Yæµà`Õ߫ђ/µÂ‚µZµY½-i÷˜k+MñQæT=Û~ôºÅ>qo9‰ŽH}ÚT%›æ/ðŒ …ç¢$²ƒÔán„)†/a¢ÐMbÄç¹Az>îmàÁZY®Wóö:Fñ4®c1RoÁD~¸Dxª«?@aW…¹wZjêÝî{œÿ¢³èQ"«*®å׋ÿ›½ˆ«¯ðàu¼ö¾å¶yÃm­L*Ê\ˆíA| @~ˆéAšÅ>Ù5•²œgdïÖ«h“—kTÄzQt²Væ­¼Sïô‘Òk3+ÓëUÕÖÔÝÆôŸI¥uí¼ËMäIu“m–—WŸ¿üG'ˆõ @ÎE0ŽðȤ“žÎ0RÀòƒx˜Ã^£W«›™¿@š¹þÂdoÀy8n`„Ü„!‡¤Ž‹£Ô#ÈsB*Dp"Ê,U×6¼®ê¾_Ý%ô㶈™ªÎ„~*%DµÙÍÛ×·,+/ºµêú¢àå:«ªLª@›=ñ|†b¼eíRŸ‰ÿ·uœMóõ5/”ØG_{ðاeUÅEv}[&þ à_ NS©oý}åúFVÿ´yŸ;~¬m{_ñÐŽ=P^¿þë—qœ¾m)J…Ût*_e›íÎl_Õ6Úì|ÉL&ùj©è^žŽ5>ì´Ô¯MB¼¨õ÷2ù}+•çR*ë^GuÓyrF©eűЊ’Dq?zÍ.~\®…[eû²ø{݇•(0¦¿Wmñòj{õ)ÍJ~¯VXVÔEOw´*-”BZ«%aJõá«MY5/Da>̈°ÔŒ ÎÓ÷y6¢»åßåEý\Þœc`Ä; XEãî~ Qud½ûõ/òÍ/Ñ %ç²ÉóÐY ²l3~çõ}^Þ6¦ÂÕ¿ƒkB€Ý ëèÑÆ"r|äëvƒø ýì1톇¡ã »Á%^H޶æqu+ïߟ¶¨hdè3Jü0M1v±ƒâcæHœxË%T?!ý0šÿgpÎ~ûðÉTÆW_LØ·fÛj ¬­šüE•û›YIíX½%°“2ý|ºÏ/MZ7ŸµºfM²˜ë{;ó‰Žæ¯Õ¬Qܲ}ºd/d®GLÚàï¤A.‰Oáqž8ÌO=÷L»ƒÞb,x¹z-Ìp„íiµ•Þl„‘ø¢‹~&½ïæÒ\Î¥^µ¯†—T¨ÉjT¼üãÓ¯¿|Zü‘çõÏø:‡`ÂæšËÒ¢àkÏ*AO¢‹ |1ñ~¾+„=Â,àK)ûi©|x×A :ìx `QfwqÍ•è§ë’ßÄêlïž{˜4Ò£l ´#†7hQ8E«¹2ªÀVO¡ÈŸ!äxÈ9riö꿯>ÍK¾âqÅÅ›h†@-ïDZ‹a¬…„GKPÂCN¨‡™ÏiÌ‘ëèÂèï¼”V9gy!³Ymh¦ÌxWLè.¥ÎuºŠïòò§¾I?ËE,Ñš¹£x/f› øÃ^A³ÕÛšâøú®m³ð¥ªºl¼Á|ÓýE%&k_˜çNnú_Ì §Â»±ûiÈ™ Ÿ1É”4 )}Œ¡ äâ«?±òóR&*óÕ¢Yùk\¥ªÚråçbÃ붸Îk݈¯D7u‹ÞAޱHŽÖ¤šüj÷=Õ/½›Z øH¬ù ÝŽÎßnìæÀl©‹ âìGšÈP›÷Ý åÛq#Ý@ŽjÒêawlJr€0yY<ÃIEaÌÓ4¥#<”Ðâ2ä&žçº•oB ¼$ÏDëÏµàØŽ¶{MÕ¯CìË—Ãóâ¹…„CÛ™Ï2ùE&‡ž3C$8"åTS45ÿyD˜3ø>ö‰“P–†„ `Ô6½á8(Mþþ¿ÎùËÑ‹s@4ÍždcãZïãÍLæ‹@2ÞÚÓ™ïL8бç1–º‡¾¢¡ëàû)¸—ö{–ëâQëÀ;šoOTâw™okŽŸ{OèÕ:È:N;2$:{´Eò(ö?j¬^ã‚|±ÚÖùÅíJÌ£v.]üýëïÍ¢¯˜ßÃDßMu¹]«-Ö·µùS ­mËL+ÏYñÄ *W#H‘¯2)^aè¥L™|kÁQ!Ê)Ü+þ–¼®”Å÷®#•Õù¢nÕãò ÕwÝ)ŸÄI²Ñ¡ý­ûåâù~>Ûö¡|î û®ã’#ÒrÈJæwëV®Í°ã„ 'Z8®åtIÃ4FiˆÊ<' <œ Ÿ° ;!g,Àýü#wØX»[ßÇÂIº•–¼Øîûk‘­Ï˜(€ ßv2þëáaaV뎌neÆu‰Ý#!0òú Þ<ñ¨ÜSdž•=Jg;í_£Ú’C¹åU-þu§.:Þ+Âc(´S]?7/ê×N˜°¡Þ 7­Ômh•¼Sj¨5¿ ˆP÷¼ÌÓT¶‡ñ4Þ®j+ÕfšHôÜvͧiª­ îbÓDÍ¿’nôÌ:ßnêÅÝúf™*amÝ3ô†ÓÛ»µ—Ät•iûÔJ†4Ì«mÆæ2˜¢P·¦;Š]*¬¡|YiÊNŒ¡wºšDPŒU¼Êâê§‚f¿Ü9âòýÈÞUwï*ö.¡ï*ú.{÷³–]°ó>>­·BæeuùõÃä¡…æò$åÌÝþ2‚I 5Þcó°§+Ðáɹ>='%L6…‚ðÈî}m2‘õAmê'aÀ"ù Ba:1r £Èñ)OÎR'ʼnC¤lg5¼¾Íìx ùØãþ–mx¯cS§|+ã ÂÆ¾•Òç/*@3}«+ Ö¸¾•Y^o<]œ•ùFÌúTði¾©Û(' áú{sóø¨Î`,Ùí|‡°xaÈë"Û%Ûôþz'Š¢,· 쬲z¼qÛøµ2Þ‰[žÉ“¿8­-Èzâ+ÏmÅ›e³Aƒj&á>­±›íÖÂWAf³Dxüõ÷Ïë·äœå`€pÒŠ¸¬ 9²jÔ„îh2o%ϼht,0ngšM-ƬëÍÆ˜Š¶wlyoë¼¹RµaŒW·u^æ‹|c’ï@ÃG³PŠ˜ÞÆK.tÇOZk~ÙÉ ˆ¯½vãDôÚ ”ˆÎ,òBÏ=Ò>¹+äòƒ³ˆf‘»ð¡@ ’øQ”xÈ (ò|Ä!c¾ÏBL]†‰Ç÷±K¼#üçôà“X©àì*ObÏftÀ™_ý3çƒZÙâÉO’¶`´ÓÙæ×è$÷¼õ¾å®yÃ]šÜQì¯Jj ƒóeBÚSœvDXy«íÔm&c©0^•t‘ð‡T¹%˜+ D,ÊE‚Yˆ!õŽU-òfA þ…Ä”‡hJMaÄ„»!M|&Ü·4p±ryÀˆúœyg¾-áå}†có Ê›±7„»–3dø±Ðï'ËxÇ޼==Ëe\ÆåïKrC=](@i]0¢ÅöK€~“Y÷V0:… A2Ä÷~ôêj«”ëb¾³uð|[‘mËAç£Q`èDÆÎ¤3ÓwɃˆà™:á±LÝ]s1ÉÚ¡‰ëúùQ€ÝDZ0<œ0òhàâÿcïZ›Û¶Ñõwÿ }l»G6q'zNv&M3ifs›&™“ý¤ÐæZµ¤ä&ýõE‘AÙ¢-GîžN;µA¼/ž÷®„:⯟åÉQä¹Ë¼µûÌ*<êN&‹Qw'WéKöígsP`0†d”ᬠfv~¶6)jp3«„ËDÂ(M!é¤:‚©P’¥‘ŠqЍ& Mc@ÛÉn‹`;¾åëŠ@ó‘Ë<¤À kÓ@ªÏ/ÙQU‰§r¤wûââÿNÊ»€>)_¹ºþ:ï?<õòÝ'?NuH3”¯QÏ÷’Qþ½ž.uç&ƒÄ`Eêàs~7½Óc©Ž¾'Ï9Ôù¯›Å:›Õ¬·¿:÷Ú1Þï¼Ü²ý* Ʀ³¶³vb¹tÙ{:m…¼Ên:M[7óvÓ¥½u»Á&ï`ÆÅ*/Ú¹+VÿÊ,éß´›Œ°ì 2w9›×hÞ¢ë1ø«¾1àuµ0/}ñÉ™0߯¯ì¼÷`üˆq„Ú逪 ¦ÍòÒîA ¸5Æ1B)ŠGù nS§¬ÝsHk‚)ŽS¢ §s1‘£$@ªb˜ÄŸ â•|Ï?€Z'O'{i«aMOʆ™ÌÁ¯½——œy›³ÃJŽO„Ã>AÖ)j‡É’Ř04ˆcG‰€ëÌœùfjÔ¹‡2ý!âDÀ8ŧQb€s"ð$"L’X¤†V9{šQ¶¯'l ª¾ï³ê ›]´Mrgîr±²ÈËóí˜öYT5 ˆÏÝéiµœõdmhTEšÉ]T ZëÚÑ¿×z)’â¨mŽq绉‡²]â8žpHc:bë†T‹6Áñ9¡­´Ð*F)Œ¦ Êj@eŒ8g(†aÊI*ÁñR§Cî’¶Žçqo‹”²îåÏpê® ' =!çƒû“ßßWàk*5^ÈrZyö[7À¬™¤fr}õq¯ër“á~Ï“=“Ì+‰¹YuQœ9< ÔE­˜s}½cÏ­óÉvvbZ·ŒØZz_\Šeö§.Êý ­w:ø¾1iûØáÓÖlCa·qLb2A椋ЈRyQÉMä° ÆôñŽÚ3J`ÆÀÐ@4((I@é ÆÊ–tz´‚¯_¿ÿÐ'¢÷¿ÿJ¤çš_äå;Way ?LÌ'¢,tGM©{Oæ|˜Æè„,ïî¹ÿëÞz ñ(;¢¢–g[z™VôÒð,/¦JË\µt@KóâSß³;Ÿ«©ë¨3>7\È gF\®ú²BùMí;BCßdI! 絟7õ¥©©o¸S%G¶V"Ê3 8†cB£íCàžlþµ5éBÖRÇ„(© KSDYŠ€’8kFRÀP @¢UÍž³âvÏH×m²PÇ)10\¼Ðt¸+Üy/´VøêàÃxÝÉÖÇt»ž½4ÄýmmóϪÅ?÷ŠU#Û}²[˜aoÄ–ŸÕDh+;¢†ͳ¥t!šËÍjZæòÚaÞ »*HÞ×lÅœÑ.#‚Óöô@‰¡ˆó ÅàcÌÀÕ3j¿†zj!Í–­­DA”¦œÆ ÄÒ¸¤°Ò ‘ÿxâýŽÝøûâÈJè0/:T/Ýa;!nb2!ÞâsŽANía2mÞòt¤¡·m†od g"hóƒøa ¾§Ã#4À§÷Úóc7‰Ñ#Ža<Áp4J™ç¤¬zþ6ÂŒ#±‘¹)K¤aX 8aDr‰Ž0L hª•„>o=³›ûDû25ßþ°ÆòíŸGt9] òè`äpãûaï.¶«³ß‡ÎûFƙžlb¶«ß§5¦ª›­Õ~MµY¬í`;îqñb"–jòâo;ppï{|À1°â ä•QHafÑ9‡®²v ju¤@ªJ ·ÀFž‚4KIü$âDZõ+Ûr2±LŠé\8SÌöæ¤I4D¾œüÝ%"©ýùÁš-T¬31ÿM¶ÂòõGƒìêíØiÑñ¬åÞrÎq²WܪÄ.’b>ÜæÞí@¯t½é«µª¿kùóÙå2·ÚŠ•ÖòÊ.¡ô`ëϯ/^½{ÿöåíäî‘”ï#Ð2[RiÍ0¤J…„˜[Ådœí¯¦Æý„GÂ)R¨ˆ'ªÓ˜àÀ¤‰"ŠRÈP¼ ï¬îˆT˜õÎhŒÑPˆ”aÌ€X0IÓ0RX'y'2¸“S]k5T²) Cø`Ó€~3÷~ÁúŽÌî;);N/eõúÜϵo]Qî‹Æ¤Žáùh*àåbÀëo¹˜Ùù:BU —åªÀ¾wY–(ÐfŸ×kßJŒ×•s‹‡Èæ²wïÕ\•ýÆ|nn0µŸ5pV—æ\ ÄhV½ö5áÛw‘-tïõËϳµköS–ýµ:jô_ØIôÏo«ª2øž ÅSä{‡bÁ½ýz–˜n³.3µY,¾õöwÓoÏýÙv£ïc±Îmc–ùê¶!åJü±¼uÐFJ­ÕmÃv”34j»ÛšîÖÙü¬:+xic4š>ÿwëÏVÎq{FÍ º^͵E·6ùöõ´õ». Z¶ÐçZÛä®yqyn=æ·I¿Îƒ7ß(}sQásuAÀ´ùÚÓ4+\°s×ÝÒ4C’ÍeÙ)0¾º–ù²ýóR/íEí¦.Hmn,­ð«Ð ›¶wŸ÷\ ù vâ¨e|j®˜î¾P¥QM ,‚#tÒæÕbifcpÖ$Žãó8TW)Œˆ+¾•"ja’bmÉmxLS-8æäh.+Á@“Ç4=P˜üñŽš'cQÞî¸gÕž›V{®C¾ ÑMvõ|±)µ5ú–¯ì³/žKËYl@˜Pº&»wŸ'oœMøÛä•¶É æ“›Äˆ u@ØäæÜ¦·rÖb+Eý`ªªG¾m0 Ú2TjÒ¼D(µˆáÄVáEš†ùÉ«¾ô²üºA ‘-ç¹ùbaAypÐÐ n1xQXõoxÐf5u!“Žk„â Ãý'-×9{ê¼îôiŸÔ͘á¨í·›ùÚHè*óÍR]|^gF6¿-Údððë•ʱ°³9”›«¦­INf<‰SK{%)8ÏBDZ’„Å0Š$0‚‚3,“TE¶Œ6Æ\ %F‚ „› …U=¾þ±Ò:Š ÅHˆ2r´5¸0Vèžâsâ Ó#Òîèõ¶ƒ‘Ñ#Œ¥^÷Ë/Ÿ^¾ûøúý»Û¾}ÿëçO¯ßÜ}XÇq Ôfn¾öß±Öµ¼ú׉ܳжÚ‡üQu€ÐžŠ¢ëÉlݰÖß^ÿl‘•2ø>­žú)¯?¾̤5ÐoðF†ÔyHè›{7¶R겫0´ÍޱTà¤Û¡t²¹ ´.¿õµ9ÄúË›~ÛW[ÚÎk´:J¥ç¢ß4›Wr¯y½êµ¹,p½Öªôµßz­¿¹üÖ~û\”ëyÞçy¶ÈÖý•›gåz›kÉë°žl›20s—d·R±w;¾žÖ5^_å‹ôïckx÷mÜli¥ýžÜ=¸×îªxõס¸ÊËÀûy¾Î¯{ͥ̈́ª×ëþçkx®ß>ðàòJÏçý—ë"´s·úæY–öºÖb>ïÏÇ"»~ãúÛ¬† ÝžÍB”ý×Ý,³þÙ­ú$ô‡(ú‹þÇ•ÖýoýUlz>‹Jí䔩¬Ò0¢2bÒrá¯w¥ÇÚUÈ*Ï‘©¡öÊÅ¡ßchvÉžó"t¯r›¼¨Õã|9«†Ý÷oýÌü_[îÓèÊw=å:¶dèivúÞNKä^g͘×íve ÏíœVM´ÝÛþ¶›b&¯®W6]vÓR9¼t²p˜+§¶NG¨æý/Ä,\Ö×<ÚàÞpAÔÖ.¦»íÈ~O#ÅæB#kŒ©Ôao_ÅÒÕó ÖxÍ>àé¾nOúËdðªãäÀ¼\®É£Vß´½n&r/ßËÓ0ѕ٥ €£:qþå¬{•Ne!s,¾mÖóýoÆžçŸ)=CÁ´}̉å´5¿þ!G£ AŒ‰N°çhÅkmfèh@¶N¹M¶N™&4¢ !¦"ɸ¢6.[›ãOÛÂA‡†–Úÿïný¹CO*m0§ú#ädžn·Jü³GÃKAŒÐ$fñÈÝ8».2±LPÜ:‘85§ŒL0'h–"Á‚Zƒð4ê`Üã¤È3]ê¸ ”>UºÄЪP}GÊ€'Ç5iJ.wG_ëo®ÚpÿþÝž¼ü§Õ}œEÝ÷5ßž·kµÍàìíëO^`æM«ýk†ü«V#lèíüÆ›áSb5–‚êÿw½vväõ¬"°©%°抴$ó|O¹‘;WUnxKœýB«sÖæ0î‚i3½P±Uc›B%FÑ8RõŒ:1évj!•Ž”¶T²d,aD`¨"Â1OµŠŠ€±LD*`zâWïmaåi±¦.Gò‘gÍé°O¹…ÉtøÈ SéðA&rW»B‹[<9&Avªö†Zœ“øÂ.!ÐUŸÔKë9 âaÌ©½Æ#’;〫‰KUˆÈy¨”ƒa54NŠh¡€ gT°T±DPFIÄ#9ãò„ o=BÙôŠ˜'º¨5€^YópOÐIô?ó ·‹Ô;ÀëÆ—_>¼ÿýÓË_ƒ­¿{ýV‰Í|ìf¿‰¿ùõù‡‹.EÒ­‰‰ôäŸø$™ÂŸî¦¢ðs1ãcªQïž°õÙÎ+$XØ”n„!c¡£\Qba| ¹Ò©P$Ö'^íòã~ÿ!Þ9´ ãkÑ£÷™·©û/¾n©/L²ƒ´zæíÖ†TÙñIµÎ ¤öIukl­'ˆ$Ò † (_ÒVþ«hÀpbÀbžkÀb%t¢)ॠk ©6'1R@©$Mc™$µ.ÚÙ×b¯üurEÒáxÿ ÈŽÁ»Ä^|yñû??||Úß›oY_y¥eß)Ù¦Çê5®þ¶Ž%p¸Õ~‘Ïï^Ö} ‡Ç´´Gì¸Ã³š?L-hùÄÂÚMöáœQÂ,ɇ6QÄ:ÊŒúªi{¢¡4Ê”30Á„2.ön¶°F‰y°ÛrJ“›…Lâ$NÍ?G(&œjA%…Bˆ˜ÔªŒy™§gVО:ú8“y¡Üm7í|úåí›éÿ±Ïúggãv2›ÿöÅ( qÓïÎ`w k›oå¤c¸^YqÒþŽ`…ô/}0‹r{½Ïž ¶\‰Ñ«%?ZŽAÜ#Q’}‡R0ž·+!<\z’ê"óu×_~¼^ÿ Xí6ÒäÉj°–eËîí®w5³ÂíeþúÖ=6?Å‹©·¸zM•(y^`®ì7|­’!¦ÿ®îiyàYâªöõSÅ8ˆ( F4$a°•n„nOŠ*M’:åIwÛm_vYÂBS™HJäÇnÌÔ°ÇŒ: ˆ'_sïýÔ?‡Ü{ƒ÷n)D•EÎÒ¯û^3öm¶†ùš+ïaÌ—ÖÉ:[84•Vn‡–þæYlAÿò+#@UÂi·Ó2çî5à·ÚF›W7×â]ß¶¿,ˆ/$>±K Æç0FX¢ÀMd„d&<ö=ß{¾¹À½ ÖΫ8«C Q›¥s[Èði9A×âÜ%·¶ø¢{œ<¦v„;M•¶+ ¢ÿÉÅÑVÌYJmç ÞaÍnÁ¹pcD„. XâØ‹’Ä^°XDÑÕšN“ÙKØ‚ý@Ž“‰»óUj‚eÕÕ=C#äõ„Íçõ|ü."?À~`…4öñE^ÈÊ•êÜì^ µ£†pæ11e³t*û¥r™2¯T¤¥±ƒ§c 9ŸÙn4Ó)Ö·¶jOÁ[›OYôk-[ï´t9JºŒl‘ ÛT;ºï¬H¬&°+Ï]ÍB=·]cÙvÝÀ¾zñ<7@ñž‘­&ª*šõ·º]¡EÏĘD® ŒP©³G>•‚"™Éx .…‘­=—Ö,|=ÔÙ¬®Béj«ŠX£7¬ÞlSž 1~9†»/¨o ÎlIiøö·c{¡×Àf¥£imš„bŽ<„£íî'(ùå,"hp6w]Û8U9ë\OÆŒ¡OY€˜pÃPäŠDÐwCäKñêŠ> ŽÖCúNª£µív8Â:“7壪ëtmŠŠ\Z, ôN»U–ý¡nª yþVN+ÔPS§vU¢dl3(!Tò?án eà”¸ó¸Çìá Iû8ü¼JP°tX–ƒ#óì•ß·áw=êïô¸« (\õ*ŸMàR¤I² yYN2$eRÌM€¾¨ »á×E–¥’¹ì@ÒiïUYç5¹¬’”wæs1Ϻí^L¿çLW7(êªëG‹»‹zO°ºÒNB·#íUg5&–›B—‚úð\²õº^ðÙ´ÌgY3¹³ëÚ>y yYà3"QzÓÀ£ ¦žE‚1‰¥$ñ¯Óü÷æ°°ßhÂþõŠÒ²ÁJË/—@Ï·Ú%Å‹‡éÌdø¬¦ߎqùƲŒ³j¬e…‚½ä"´•¯{½˜È²:àíº#ÏÝÅȶÂÆ`ôv9õ(‚ÀÍ‹¤ˆˆGcNh Pˆâá£ÇËAüjúþ9¦ïÅš°¿óÖ û¯°Q+Š]¼¡{ÑK+gm¯\G«gÓbUØ«ßÓbq× YVãÐ7[ÆvúŒÓn±eYÑ÷±;ÂÈ£ž·Ùº.õà?ë¢7u%½ÈWj‰\Ÿ@xHÄ&DRÆ)•. ¥ä¯3σÍoFª¨ç¸Eï›a¶~ŸóKø5½xûñ«Å|•Nuɼ-éÏ(~‹eoœ¦vËÞê0 "5—èn•G0Že9›d(ÜÅLÍy dáY""/Ø ±”!¹Š±D‰Œ)Ç.#øY1 Âåìx:…Þϯßj‘¯³bù˜)QuBTV(UÒwwÚð÷_ÇïÏ‘™.á9ÈEf?¾[5èÊlî<ðTáͤ#K J‹´ÿ¥[ýý6£MâtVô;â…'Õøc3m·ÒïjàT:AšªîœoWTõYªåó.Ÿ&5lö]eÅ]þ|{zðþãáA"¯å´lRº ·l>‡/c¥ ‹$[¨.ë£.…NùÚBÍ'¼pÔ{À:Ù^Üû¾j²0€ÏÓyYìÚoO?w½¦ÿºèÏ\X>t…äóbÿ²#-ý°Bfl^Îæ³€Ë<ðò9Ÿð”ÙqÅ•Ì$ôOËÆ1ŸãyÙƒË)ý…ºY4/‹Ö¾œ·(-+Ï™œ¨ðÆ¡“ž'8`ƺI÷\ø»²«ËBN›Ïm‹ÏaH£‘ç!Ÿl3‡OHF¯FQ6BDw}ëOø~ârš¸((ñEèüÃB ìKu<;oöþ©¦#^Œç—É› ˯(BH§yo†ò]=˜ŽÌ6×W#®/#}{’§Ó\Âþ^H+‡tBßmO¿é"ŽÑ ëúû#7@4Øfቧz9Lõ8w§Ö•C®’qRB’.‹îI„1K|©®Mš™·æN*Š:yx&-l>>žøLü¼u»'·ñ·¬Wzuàx/ŸæI‡qã}OÛ8® ºõ{‰_J…nÖYJô7€¬ƒñ]=,æÌ•ÅöVíp¬N©­Ÿïè‹cWG`áV:¢µe3-[Qˆ@øè¡ð> ¢ÞEִ˺»*f£FXbµ»Ña v.(N‚„zT¢Nß{ìK-b÷L·7Ò®èJrK€_m]IÖ@Jâ›ß­Ñ}0Ùêmóò€W]‹lU{—õ[Ž.S £­2V>x½'{êjPßvn9ò™ç%”²$ˆ¡*eOŒß eà:RuöS„4y™W}ÝÝ¢·EÒ3ØH$žÝS:kóÁ;Å NÅ upÖÔªßoŽÏ @½Ž7›—u®¬…׫_šÁW51lò6@Ž~Çn®S¤,-®UïÞçd—ÙòY!êò+'ÎgWrêð´0±ÅŒ_ÉÒ)J Õ-ú$÷q\,?Û©:9ÜAôö®?×?â瘣 àˆ¦u2·o$ý61ëWB[³²«"Îr+Ò iqä;Å“=“{§kä*-¦X<Ëv€$Í2p÷W_Uâ®NqèÇ¡UÑÇß6ð„ªˆ…Î=nNLnq¹ô%³]㨆т¹Ï¢üýO°?[>ØÜZ{x%@ïZ]·Ú¬žMj«—yuéj°Û§Â³L8ëKõ_jôQ䨜WÏWiOëмjZ{y¶Q¦XÁZ zv»]í]ovj+Í¥>´© Î®>„¼ö©¦ˆÓêrÛB.¢ù.q£m6K-kiŽó7ͳÅå 4§Ìw)A$eÅ”{Q(£„`´ 1âEÏ%.ß$X_—·2Zw²ª3ÜÓ>ƒÚhýýi/Æíèj7]Îj«÷¡eÉ’|Ø÷E–šcù˖ؼ ðzý`›Ém‘WjÃy>±o•E,ö}pá#Bß\N#âwDü$‘® C³àñn/~&qóàRñ‹az=ÚÕž2æèñn¦ƒÆæa«$5okwºvœ*vþgTH9ª~6ÌÞã§ÞÙݨ½<ªÈVs,á ÜhD£ÐßföVN/éTíîš°©JŠìb<"hWíɰÞ¾À!Š\—xcÆ8Å!æ Q–zÆ?öoÿÏøãW•„·ïâ<@G£'ê”™ý„^õæ»Z·v†_ŽÜuØð]͈ŽfÄvZƒÐÈ÷°)*¡xñöÕœ·ï¹:žñv|9›•ë—VÖJA÷¬†º­5V³¨c´Û2»‹öÀÀ‘Gþ6î̳‘¶n‹hÏ©AÁÚ„8>¦È眨ÕÏ @<õB|)ƒ(H:‰tïp‡3Ô­®VPQƒnÂjó2e™ZÌÊÒéÕX–EÃ0^¸4ü´I:ÈYÇüvn¹±h¬ˆ"…öDÛáBkšÎ¥œ=×»{ûÈ'TVC4°Ýa™¯ïÀ‡8¼ö‚ÄcCÍ ­öÒ?>U9Uœq:™gRƒ¾àðÈùʦgì¢Ð Ã/‡Žò{@ïT€q9ËYÜ”8ƒàÛx…Êdô›r)jº#ösz*ëWBƒ§²Ô¿›ïsþhtʾ·À_ŽW˜ÊëAW´ú°“tÎX^…> ûa‘fu£ª,ëÒ9dW²TMnCM}’-..VŸz2ÎAÁÙ¼ùh»Öl³lت=7å·ja¸£Žß|0$\w¯ º­B±`ÿÈ|dÕ-·+ÀÇçŠCLg‰9ø°ÿñ˾ šòjÓ} ô‰%TÀM`*3ñ™—ô—ûWƒmBfE9î5€¿ž¿ŠU‚Ixd­ïh–OÔMzl¥=ž÷¾÷äädV©•HÊ+Jn–[__•æyȘÀÛI<Ë: â÷. ›™×ßýa<~›¦½Ïù¦/ƒ\#V–¹9>RqAÚ¹jOii`_–›uã—òð¤Sæ!o—ý_í¼0‰îݙکl» tZh^=¿ÓC€Žcå¢0×,37\ÎUù½½S5]Vë-ýŒÛ!Ò[6ÉΧ³òtŸ÷öÀçܧyQ*í;iÉRKÁ~µiëÄ/Jî˜dvÿ¿ûí;¨ìD³Ž‡Ã6êëШo…Ìß_@ˆg”:LÕ'I `v–6ÚèhV‰ ñ0nƒÁ*Nææ[ÿw!Òö)Ú_ʉQ`|)3s\Ayü;×ïpÛ˜o§_ ÊÚ½¬ùk…9ùúm¬5Eè™PøXƯ€EvàÀK¿÷põÙÁ‹\càûÔI½âr+P5¤QsP(ç«& Ö¬Ôt±þ…‡‡m3%ò=äAG4ô‹J8eY1ÔõK‚;4ÌF«ä|þÅÊ4Æm É'YòËuuek(Æ’åëß¡·¬£¨ÜÙTŠ{VíÑöäµ ¶h|Z™£«áwì«Ý¾ÅbÒohC±¶ø8½˜‚>·ÊXf‰^cì£:Š¡…e¬(R^s‚:°Bl‘•CiRBƒ@ì¼Q”³ÉÀè –:•“ÙЗØè׿ÿ\iõR&ÀŸé“¥Ó¥¥©7 fß÷ö”—Z©OpúÂ.…ùñƒéèÔŽ#p é¾­à{{¼~¡)‹mŠÊ–ÃxpÑ\2Œž.²l»(“°‹m9»! ((ijӃƒ/GŸŽw:ˆÏïÇŸmðÓƒý£ã6BmÎAT‘  ú2ÊüD¯Wè6¹^E;ÕYÜAApT÷½‰Pr1.q,ó>͵ÓвÅdþÑ¢7¦÷ãí”}©µûºÉ¿œþ_û7¸ïÇg d9dd—¸mè µC_£¨‰Q¶FtŠìÿú›¡ç᥂£0 Ë_åuP+W©‹Ò¹õ…úÿ¹Æa â5ôMä/ãCäºa-/Ü¢fÿ^uòÞ1Á¿žX{éWðÐ>“¿¬oR¸_¿Œ©µào§Ö2¿îíDÈù^ÍCAÕŽëG· àcÆÇçÕëtóq·šZͧլg¢upnmÈÙVð·³OçõXv:B·¶¹ÆU¥©•=*Ñ€.² ©– %ݵ(¸>ÏÙíNžçá¸Ö3RÀ›•ÓÕ(M‚‡ðmoÕIÆÊd–Oª¯»Ù„^µN““»ÿ‘NÅì{±I uø”ýýÁްøeÓ‡ãßïV‚mÖIüöâ{:ݤ„`ù¦%$?ŸÉ&Ef$׫eµœ¹èÊ’`×ë¾1mCÐÞˆB¼a*0†7·ãEܸþ0©ös “m#ûslúÿaïÚš·‘õ{~…ãªÕ„xõÖn•oñè”-9–œ8yqñÚ,K¢–¢fÆùõw HÉŽ“x¦ò‰Õ_‰nÝh4ZžóeŠø»ƒÐÇ̘g°×i1‡±T%õª#Lcé `Å;_ö²LÄ`ëùªÆCo™÷ñô÷ÉÕÕýñøn]= 'h:€O¥”÷0œ ¿J²A|ò‹?€Ng`ýi2ôÖ·¿Œ'C0{`>ö¡ƒï„G8ÔnŒÇýoýk/‚-$ò_½“A]æì`¼ç[%™VxR¼>ÛìQ×§å†ÏŠvÆUY  w«ú¾*W%!u[ò”VU³Áöøº·î§Íó’¨Po3ÉòZ¨ MCùv_áE&L"[¹ÝÓÖþc‚µ^÷ûþ(¬kbP'(ÇCI¦æÛ¬âV%Ð1òHâA£Q[v•Ÿ0UÄoÀÝ€†“ž·œìµŽ^GÖÑÒ‰c‘o#éÙy$´ ¡úІAbW’›*¾ #Æjƒ²ÆVuËsÉ;ÄV ÙoÒGòñ”¹™zœ'kú¹°U,Zª˜¤=Ìã­š’yÉ{¹ÅÔ5ÈÀ¦Kæ;ìeܧmÂW9Ä`8¼zy±ù¾Ï3ÛñÈßö"q¼Œ—ºÖ,|·«ìEfç_õ½½Æ¾zÞ›±ý¹ƒ·GlT–‹íÊÞÛ*Ó~-Ã=½ãmÏ#…§`Æ×§x(݈Ý0 SŽÈžÊ¡Bœ¡e²~¬jd) 1K±çÍÏú¨É":RšèvÕÔÏvl[×tÓÆ’ádË}+P„è~%]×ç¥ÔÜ$]uÄó‹àšÑäyFóð¿Â(}BbÑ«"êDßÇ!7Jm ²›¢jsÅžYê,D‚y£„ä0ä§mÕ œ¦23`±=p%\GWIƒç¡“òáÇE•ˆ%Alð™_'™ñ $ËXlÓFQ¡“(wñú ?_nuãCg¼çÏP oa,iÛ å{É0T¡y] -«òwÃcljtŒR·À78ο¬ËÚ˜Ë PYB˜õ3†9su§úÉŽÇÏvá<(À¹ï_Ù¬‘À4Pó‡ô±œÒP»L­6í`:˿ü"+Ö';J­r˜00ös,W>½M˜T|E>Às}}%­…!6é88^–ÉÞÜÚÆÈü­wu/ö«ëóònnaeîÅ}Sn^®8Ïv3·ž³=x_ÐÝŶ›?yA›5GÖnvÍ‹µ›½õGõòV95¿v‰ª²[ï|°* ®_¯.ù˜ïè §x9"L ý_%ó7äA¡jŸ—$°#á6ØÅÖ±®UN$6à]“¡Žl zУ£)½7Dç"&,º'Û¢ƒÌÄ0ùd39¿›ó×i)x8ß‹0 •„u~<›'§s+x;™ŸO4ÈÊ/ˆÖ'Y*a$“‘Ù{™³®11Œ*Çp¼œsà¬"—ˆðŽ@¶ö u*~(¯'2s½÷Z`¬/$[ಯDŽg’¬Zq¹Öš<™ˆ¦‰ø:F¦ABLŠÕç\O¯¡å‹\ËÝ)òìJTÕgÊP# FÉÕ¦A2(N-°B  Y×USÙ!rÒ»SÛTgœÚå–É=ÄUU|Ѐü;°˜R½÷ùÖjoÐ|’å†)pÝæuÿ‹vy*ïOóOëÈ%PŽ©¯,ö©Lô•µt–ÑmŒ'ydÝ¡IÐVòŒL^Flþ Exä´ñR!&¾"ÕÈÛ=Ò#Ѝ•}l–ÂM©ägòw¹zR›4^­· ë>^tLX‹hàdlØ—U=CÿÛâO®a—ÉñU‚¯>þ²Ž¢¿¯®÷®ú)I¿?ÔØL=Ô‰!Ìrž¾*.ÑC¼"¾ñå8Ó%=“)Q´|…šÇ*hèu]=ç˜kÆõv±h¡¯Ét¾Êç$+¤­=-׌¤†ÜƒôÅ>l”¥¿y7óPÇÇú³1ÐÿÓ¡£¿–bC`<ƒ‰É¶«DùtÛüøÑö¾ó:Ymè9bùL‡ž øfˤnl5aÑÆM˜55J––ŠÄ{B}ΘS?Ùiµ¨„œÀ:% ê¦.Ÿ¤×³Ã2Gõ2KÖ–*n…3­,fƃö³¤k ÞpÖÃ$¬UnjHdQpߟ¶ê`á‡ÜVá$ÅÑÑî2Í>—\‘[£döŒ×#⤎Q/ØqÝ!/Ž—E“ÙX~ÃvÊÀÓdm%‹À|¶Xp4P†j“¿ŽÎ6=´Cä7ypú¤·c¾œŠt*þxN¯êgÉ-öò€ßR¸(æŠX ï:ÄB~Êȹx€Eì Ë\Ü` “z%÷øi>ÂýH²!Çc ¼ä«“¦ª÷bÂ5ÞÜÿjk‡Ê$Ç ƒãºj—£®•ãm°ù¹䙑M\áĬ,Êž¥VÇßg0»LuT·õ¸³ó_ú,:§çŸôY“ÑÔ£r\¶ÕÚ¦•H„xéÚAè­Ç3 ²¾ŒWÈQ«(¥tÞ“Z¼®F—qÜò7 ¢Ë±ªÑHiÍt LšY­íí>0 »19±å”.´&Ϥ‰Óm hr5îMÐøËèD^‰JܦxˆW6¦eÕKò¦ä@#âÐuUˆn§è;è‰Acà£^ùT«|s¨Ò–M¹4G;Š,Hý ¨UÕ,õÖÞ¯öv2þùüfv|©[\2âPÙjo÷)$*TêmãOϸ>ñqÖÁoQwÌk¬?w,r¶-;]äbëØ ‹}FF¦'õÆ$Û¦ÚnŒ94-ä!¦(L[m—Z˜|íÞ$ïìì̵ú¼LVxš,3¸\z‘•èÄ££Ï¸6üÇF÷¹傦Õß®,t+~ÑF­sŽe]é_´Z£•ÞÐjm¬7僈hiebÃã¼ÛfÃcãÚºù NF BxtÄŽ|òoÁkmãräKˆÃò#šÎ¢Íí%½jÖÊ/êX»'î*•X#W£PÖÉJÿòÃÚø9¢÷ᆵô|ѵˆ{|Ù´¿‹r•½Ì£ÖàG×[VùFa`Çß³âAÏmm;€MVP~R“ÐbM\}R~/Àz©ü¬rðØ,:…(Ô´T¿!c²%+X”1[U£m¨U¬êê“ZŠÞ/Øþjê­Æ +ýÉ»ØR6ª„`qÛl•—ݯÃÓ0(DbÀ·¿¿`¡^IýÑ?iþÖ4ü:…”ñÎÀ2/ ’™#ù~è“jM2þü "+6?\=dÉ~Žë¦$#²HÉõïÞô?fR#'WO¹“´J´,7AàùNt๜ð5I–ig-ªºl—£3,ùd iv¼Àvùm7ƒIîEæÂ7ÚsÒÀ, ÄÝ"Nâ<Œ¢öz•vðý“RìNšò2T½E#„*ßËŽ#vzÁOß»±<:º'šrh§ 1…ò -†Hü‡ É;åhÙ°vjÖ…uTDш!éëÜíP×½ðHieW[’ ·$vÃØ!×iøpÚ:;Ó¸âô ,‡²´¬ã‰¦^ù^Š@ì$ŒAêÜ‹@šºûiÜ?Êôg)îEUÄOMc0Q"àpt”ó- U`3Iy è”bÕ¶Íb6ÖÛ©›.¿¦šE:V5ÃÅFò,3[xY=?~µÅ4Cô¶D2ÿ’6ÚT,‚%ÈÉò(u±Å”gn”‰[¤^‚U a%O#˜»Å^“š˜¸FBþQº?mã}«+ '2ŠB+HTë¾mÞájY|¯¥MÆÖWËZ‘-²ùqæó-Ö=x«üvUþo‹Æ¹îèÝQ†ìØÕ‰ˆ!ë-D¼ëe¹«íXuŸÔïàô}Æxõ<ûér¯*'[y´p˜Ñ<à3Ü€ÙsšÈM§‡uŸVNñ7Ü)×Õ¦!';Øf¨.éö‰zpe?~u·~Ïû|…ÿö¶M˜2ô„†ž£jçª>Á’Œû(gV8á0çžb˹Վî“κWs^£Ûw4YëÞš»½fÎ`l<#~”¿dÝ™8͹º^lÛyÉ‘h®å¢l²†ñÇŒßd~¿£ÛU¤±6³ÆI†<×Á†+Êa»Q€R'L¢Èͼ"ô1BrçŽÍ?ºÇ<ÿ~'ͯ{f¿³j˾;i¢F¦Ã.l™íƒÙ ÚMdÌ }8½ëŒc G‡ïxÉj¼5|q}Ù¯¸ªFt–å~à©îÝH¶Ò¢¼Øx0ð^uG{ØšuW²º²-Ë @à4"éø0ÀF¯ŸyIš¹E–¡4ó²nRX•Vìå¡ÑÇj‰ÎÊú‹ÿצ£\Öê!— 0È$$éAøäîÃÚÕ€¼@MµnzáY#FØÐg½EŠ$²— ÷²ý¾à—O¥]A7÷O|Ç5÷OD©‘lRW #ÇwàÄ.þô¯TC¾ü[¹&!ŒÞý*M'ŠTàÙ±‹PnŠu/.@æøØ4¢wµ¹¨ßò­ê ÈTÎSi¸Ý è4‰ÿ5ÄÂë±wPS3Ú¹ñxŠ2{…–2¹£•T¸›k_Ž7ÙË…Àý^a‚>ï×´YS—«‡Ý|"®¾Çÿô&úm* =@/Ñ=ìÈ —QVÙ§†o6 †ÚFa˜;}fé‘l§e?=†>8‚Ðq_©¼ôúµ×#&X1#ä v|â0 ÇɲÄ÷Âó£ ã!™W˜þw¸ý5ªû¾o?|ù=‡ïþ†Õ÷)J/¿7ð¬Ä£I£þ=Â+¢ïN?ëW}±LSúÍqÙªÑ/»XTú…dã©öW¬_¾6ïô›Ñ>×®eOH¿Â­s šr«öà¬ÿ!àkªý$½£kÔ"ÃW%}zòç2»Ì ¯Õë äEZò réÉH̪éP8}FOB0(°Aô$ç=)ÎAíZîè:ÿÒàÁ\¤ËP®™ùÌ¿½rB\‘4‰L ÆW€‚‡v0ÿ$¾JS|è0ÐÜ'ì›zF‰îþ¤@ŠÎEoÊÝÚW<¯ëU¥…Gþ…Üt#;èTz¬ñ“8 HeP?ÅoØÀmÇÁ‡PÃhJaæ{â Ž‘ÌnbÚud*^®Ÿõ}F?«6Dôõ7f»×‡ÍížÈô(bÕÀèJEI¿JÖk™ºBÎuÒðSߎö˜Ùe¦¤´Yœˆt]}çëj°-¡KÓU2XOÍÝ‹¤i}8Ï“ÖËÚ]rSïH¥Ó4£îl½Qí®óc“°™)ì",3¹ÕëÐò„:4k¸€!¹ƒÄe($ÉÏYYëÒBˆ­ã]È¡j¾´°¥_—kÁ u*¹Däi¡´ja¤€&ÔBOmhƒÐb†´U\µÕ:&©“ó9GÝ.z;a ê•A2Áò^xÂtêO”@tt¨Ó/iÖ|%Üœ;,è,¥ J"ÇÅ޵l'’|#æ%v"ÙV-û83¼*=(r2(_'âïÒ^\Òö4;˜~œ¦5ú¤×ÀqLíÐFäצ‘½=0»³LÉF@p*¨¿Tu.´]kËRPŽjôP*é+lwd›Ç~ ‡þ«sˆs[æ”ëÖx˳€ä…vt]€08€^@øÚ=óT?aÍ>;!kFïÀõí&®SAÇGA S¼À Qš…yâú½ØNè}|{'TžŽ¼ºÕðíù™Z™è6-ÆÍ ϤãQ»iÓÈ©ôÓ³‹§´aì °­7rÔWr'U—ªŒÅ*™¥?éÒoP¶ª,t’šÇFþbk"¦¶×«ÀíêiU}¶¹oJ¤åé€í‹¨:Ê>ùˆjéÛyÐ타éAw;ô¶Ü¨m–e¤ a»~ä{¯>y2žœ‘ ¦âž-Niæ™èö“Ëqb”æAgy‘8ÈIÃ() ëe‰çç©—ÂÌ{_ÁßÞHÂDw ž»WS!óÄAÝžeàˆõíË„|Ú<â ¸„¿9ü×Á¡ƒ5Ë‘ªIü8™‚ïà‚o)-¶ê‚Q|à»xíÖõIÙŒ~¦¡䊞¾È67E˜‡î0ˆ|¤AÄY¤!ô¡“y˜D¶·Ò诹¿ê)ûžš™X¦å²!9Ä3ž1-<*t–`P,çí,(EÅUÑ£Ô7e³Iv'@ ŒC•m©‘h’Eí×à }¬x¯^WU³ &1å?„NO4Ì!p ˆ ?É¢œDDè¸xqìǾ—ŽŸ'q èžnµ|‡@±Y×ÕÃæ­%‘š8øYï/zí%³ˆì–ìþÐNÆëÂËñå´½¸¹=éK^WŸQ=ÈñÛøúÒ2x¶ ÔKÚ%Ï«JÜz®Ê߸² ® éGv;ø(•L"ø»Íuó€škIMs3{Æ&ôòRw»gÛc¹öh€iÂÆngŽ”åFm»-‹C„¶ba섯VÒÙ~½ M¯Müp1 P÷œØ^A†§E/ÊóÜÈœÄnäøN–¢`bGxÍø®V†/žßn¿ñÌ'ú×2÷ÍÎh†N–]ybcáÒDC@#*o8‰õÊ_w)á jÙ‘Ú<[0ƒï»ç¯ f8Mʺ¢~5¢Åž-‘M‚2ÆE¦±ã%Q”¦®‹m¦¸ˆ¦yæý‹H™‹uüÆ âÖ°íįG›J¾\7l ¨V ËØ D(j„šç5ê>êwƒùÛÓÖSþ¹ U¥dáÚušr 1}£ÃïyåìD-^®|Éæµ®ufëhƒyž)Œ€q†‚µÍ±¹ec¬çžëAÏ{µšb3Œ%I¦7Qôäg󜎋ˆg&ʘû =ˆ`æ'!^ç7è¦ÿD*ÿ^Ògzfk Õ¼7}Gjµ—N?vqéL=xò0…Y–ÉfÙæ9!<a á‘gâVÀ6žCuÍzšÖà ‡E×ñ”E™ bïÿÙ»¶î6n$ý®_ÁWŸ3­à~áÙyˆ-%Ñl”8¡ãñ>ùàjs—"5””‘óë@_Ø4eQ”‡–õ`YB tW}…Kª´ö–b¹³Ê£‚¸[ù,Í_Jš#ËÊÀÆoæå‹ÞIQEŽÚ>L¤·Ùϲ"4pÒ_\5­ŠfŒ™e¦XNãxg}}ròò}ØhÅ¿|"Ñ1Éƪ^)ïXôºÂ,q:ýAÕ‰è·VqÝçô…¥$íÙP;*˶ÀtšÍà2 RÊhØ(!v5•}Å;'ÅÙò£[ÏSf§ä­šî6äMBZ Kê Ì€€&Ð!ƒ¸÷Øqƒâ>¯Lweše]å]¢µã‰<Æü²J‘Ø¿o@l“´á.Mô“³Ï(6ÃÍÂ`aËÆÄÎ& ºËh©‚ÇrÌ»ü†Õ©ÊiÆM˜O“#¥¨d\Hn!°yKÐWeÛ»dúô0ùž1Ë4èª/Ë¥J1>lù§ZÌmŽô»[¼8ê ^ÕEQŠÞcžŽûе•÷÷ŒMË¢=Ö\¦„–òùý!,ÓÇIët£oñ1Ê“[«¨#@3J% ýƒ9õž‰XT{@ûuãòéa¯ÅàQ¶êtovéUÜk×9]~¨òÛnÖ¯—×§·ãƒ™NßÂtu[ÕògÏÑ?n|ósä«V¶Ì &Ê7(*ö=‹`o¼*L¾95Ñj^l9Ôrxò†”=l‰{~“ÒuÆŽ¯âÎLfÇ4·¾Bg1XʼnñÔH ØK$#Viâ‘>(…ñôðßü÷Ê)—ƒ£1î–ä¢äïÞELŽ窜‹¬ð·P´š.cBÀ°Ü5:sÙå??ίÝO«rµMƼ#–†sC„£‚q%1Xb@äk€õ ùò·=m±o× H6àjIÛ·—Ĩèô%P™Ý§5m‹fx9ÅŠÙÎeˆÖWëxè«£7a:gÉZÔ÷Èjy<±„kÌ¢ožã @© ˆ›4*ò÷=Wv¾N¯—|«ÜPa–XÆh‹Í É1^“Œ9®GÉé0¿‰Ý0¨°¹49$ýÙ<¸/„å»Ä3»ôþ¶u³6&ù™û }kw§iÑŒvO HŒL 9Dhî}#là8NžKä=@QË!ʈ¸RBc ´:‹Â0(ÃÏýr­øVGÁYbéÈ:[EWA#ÕΖAˆ/WQ–ëªâ('%egQ(ùãCh(šaØwì4-šÑf „8Œ‚ˆ¡‡Aèl9O*Ç–q) ‹8# †C*µSž/^1 ,àäC‹¡÷&ðl9ï¡æ`…&™§N§ï¯Ú6pÈŽ²bP>£½î«rÍÕ}ï-ËܸŽ1훳ºm‹fÌù›*ð®÷ÞÛ)L£sošs›|i‰¶Þ!=àÞkÂ-68 †B =cÒkÇ<>¬Óú' uµÜ¬û"ó¦ÓȽÊ)Ð=q¯^¾Šweâ~ån¸kï=ÀF#(fV fÂ)Ì€˜‚°…¢†ÆBÙÎ[´ËNNg‚ǧ ¡%«Õ=,yÔcvYO}÷˜Í*'KC‡>Þ?E«[Ͳq¸˜PŠä®)öÑ‹ŽtlÉç 7c‚ŒK„&}m­°¢¨°ò3F?‡:90±|,­:g¦=-T•¶×a{ƒAWÒG÷êVE3¤Üö‡1Á’²‡éûÙ…ŽÁ2Ë$2#† 0§ñ”Ø1ÖVѰýa :(ȰʓĠ¶ÏÜ&ý9h<=IoKvÅÆê`e8\¥$º¿ek\È¿õ‰ÕPý˾GL»eÑ 6#û„2>A”Їí.f³Ÿúyó±° aca•â”SèÇšZKÒš$0vÈx¢ëåÎ*ðõêjq "¿€{fJQ~À±<>Ã7Éž$K‰Jr<žgHa¥öæ]®MòNXæ)§ëužp®æËèÔàn³ã˜NßQ ëD3u`¿_\Y¡œ(9¦þ‚VdôF’ý”f0L5Yµ‘ÍÀ2ZË+O0vö^H)ÓÎο^ÑוȸËÜ+Dˆ*É1˜°³CÒå( ó%„Ôéã–óœÞ¡L2aäù,†ßæ‰2™Ñ;eºÂHì&§h¦ÓïíEy‡y„~rsqñ)fy^DoøL…³óÙ¶çÏ>ºÅ¢Coé¥û)”—³“ ކ721éÉó ui»ík”_O“4ƒ*ÚCʸ)2ÈÄ!€w÷ƒJ}ÍÎNßžjÓcÌÃÛÞ¥V„’šú°÷R*d!0Ç 1Ç*ì$8PÌCŽÍa"Ê4!ŸÕË׫^Z":ªe’0O§­ª•£2<Ú*ò=К—A S¥Vº™øçUÔ(Ãp½1ñDÔS1pCñãò¦·÷?¢Lo{·fál%ß=žVº;û¸ú÷›t¥ã …(囹–†a¨%F".£žò°Ó—ˆyí¼±P*I¿„:9¸`YŸ})´õ¹«ÅtºiÝVÖøcb¸(YÓï@/¯nßk"ìmÂÇe`èËÈz‚Ûm[l™qfĜʴ“ï챟.‰¾R sRF³Hî25‡špO!Á*ÞKÎ2H%HJ„¡P“°¾n@m¢ÜÈ,øwãžG¸z¥¤4ÈYsÿÎDÕUë@+Ž’~ñtú«þß*áªÖ[HÓéëõÊ×.›£•þÇuŸÒòTMx¢kí¯Þj¿Æþ ¶ñF0Cø—Šz¤ C‚Ñ aÞƒ»ÞÄL«åü2 ’”Ú6‡}‰¬ÔAŸY[{„µC<ì©1óT ®0ÕÑ>[ü¾„R¸/>͹ĬD—¼û{â^©üÅQŸÉeÅhÃFÙo=ï¿ÊçíÍ-+f™4ƒÔ¬h†KÎÅiØ R6„»š#O^ž¯fo£×(Šsé1$¹¸Š1'hØïA0`ƒìÀWÒh`¹Å1ˆö¤cƒyyVþ2ûíçbvÞ(~Âz©|{»}ÿîÙÿ¨N,æêÏ/obÊÞé4ð;L³·•­À:Ew§¡ni ñV2ðEŸÒZd¶J­­EuL’F Ë΋R‡“T|ûÎRcnr’ßG&§ýìžU«¢5ÌÌ %(†—RîzË&vsñéê_‹(I)*QÎ4ª ç [êeÊ l4Óœ(hÂN i¥7’KB³°Ìlþó0<°Cšafˆmg7Ñ'šÅ<hz½ƒÚ-|;/º,{àgœ-¾…LñK¥íz’çóðÙŠóøñŠ‹•½ #N™¬3m]˜ê”AsAyH}B¼Hx}¶ô«CJW÷Õ…ëLaGÿ•x¯ú‹á:úïΗÝßš%£{ú'NbüqÕááh¹•-ɇ¥'>þ‘O™Mx„W$µ•Ä%E.cѯïžfž;Ö=Y,!Â"aˆ”بhÆ“KEC¤dL%EYC¼þ<~ñÈ ÂI"ˆN¤q^c-ˆÉxXÙƒ1iDnñ4V Ÿ•ËE"=(¤ìyF}ýáŽÙòõ‡ÚÕý·ðŠ;…ÚΫ›Åõ[µ¸q}Zw~L%ë~Igf R\wÚš÷ß.BúóäF,Û›Ñär3 4ËO¦C7aã” }À6¥ëD+Y-Q$i}Äà yt .x¢þýÿM»b3ÎL`PŠyЀ0þsµw1VP<_ £W;Q˜pSˆ ¤„Ó;Å ’ E^ÏÀaÅ:8[éžcµ½ ž[2ÿ®Î!‘¸Ù'ôR®3…MÞÜ#«: ¬®ÌÔ”W7ëоSvÞø¶>·CR®Í¹»XÕ©îÀ€SƬ‹Õ°ÍtúÃê6Wlãgggã´·]Òìäåy¯ä·Ÿ«!Õ¡}6„Õç²÷ÆÞ bÞ‹®[<ï×›çë]ôë]äë-ûõ–#õ®ûõ®;õZ:¢‚òH/«½½¹¸lû¤v¦¢öÉ@#®{=(¯vå"³4JÍŠÍÛd¶6“ ¬¡dç8ªa“B¾D7]˜‹¯—âsa½"H1I-À‚ø°ÙEšc£¡Eã°RÏÓózñûëW¢bä¼àéiúÒò­çGqIþmÛýœEå$‚,µtzÔa¥—î–ŽLe`0I¥Ý¤,ZŠ®:;½U— Wz¿x‹?c•j„öŠGW’£+‹»Ã«ÊÖòî\ù26„”Ñ>!æZÌͧ̈́^Bðñj&Æòœ›Ï¨yé¬Z^VÕõMysi¤Ú›µZ^]®Úy¤ $h{ÍåMår|ç3/ç—nµÜöò­ÊW×k§.ʺ´¿ç/¡Ã$2¨æöVz½ºýÔLô¤OìÅ«Âu¦°ËÙÙåjù¡6ؘ ÏšJ­ßªxçÍ™yX_ü2«ñĶTKçx鋇ùh½ßÝõÍzyçãÞ|ºt™JaЩ tÜ-L!Εñl†~øþ·òÝm«bÙé­37ÕŽ RB†5‚¢¼qe (MÙéËZàZèÙT™¹õ\-æÅßkÙ”’Èí5£Ýï$¬!J`Þ]v½Z×ùZòµG ’ñg~¶r[ð»u+—¨  I'; ²EÞ| !É=®ˆë$£’A1¬7»ÑÉ/+zÄw©·ŸÂçü³IüÀ½Æi=Jjó¬Z,ÿ¢–iy/yGøZkxŸm\Íâ×óEt4 Ÿ!®ëןʯŠ!Tz¯ZI³$áíïeV«e³>Kga)wä´½ø/Vãç—ÂËð¹û·Ÿ2þlúž1·7t–›Ã Ó`` ;+6/5\sŽ£–ÂrwçÕøFÅ«ÕÚ¥ü{alñ SæòÌ…5/»*F!ŠÇîaX"knœ”z `tçyÎÏýÈ~¤]ŽU ˆ…q®ªJËs8|”åq"‘Ëã§kjùá&:üönoLŽºr΂üà^ðæ^Ó¢\F⃀M(»†K+{š}ºˆÛßЀgPŠ(M T⥄G€¢X£ ÐÀ;Oé¹WðÍK{ŲެWeU4 Ö¬K;ÔtäfÿG¨vÎ6Q•.V¶Š£´ÃQÉ7Ìí¶EkÈY׌&ˆ3¾ó¡Hôâ§óï£=À2H6¤ð–"H,§Ú=1ØY©„+à©çš Æ3!5bûgĦLïòÀ(ælŒˆÜ0¶êÝ›oµ,ZCËSl‚ C»ÆaÞƒIIÇaþ–C1±7ðœ3ˆœw”Á<¤'€:—Ú[ô•§fû¶Ž÷Ë3&Ï .X‹õÅ$•Æãë=f«ÎIá  " “Ъ¨‡”‹xÉd€¡p×ÜL-å^%QË›+™51謀Ò(kÐCÅet´:á¼fÞøÔ@òížG¶c(Í6“V‚ÂŽ$ÕiÿöÕ,/ªƒ '¬ù³HŠíŠfXÓ¿€Ñ“$wݪؕ©D~Bq>?/áZ¤©7Ðî¡aJ`=‘,Ì9ØÉPÀ5ý’ñYßß3~…i:ù¹ú¨Öî» µŒÿðw¯~ýýô_^øë¨á@ý¹ŠÄƒ‡í–·ù¢tYÝd,PÿI[ÑÙP™à‚D¿kV>xçƧK³²®øI-Oo¯×*ÙÕcT£œ^WSn­Xé$×0üTjvЯ5Q bÜ¿í‚n¯zòYܨÿÿjôþ½Ðÿ‡òÖ÷‚T-C _JOØTT5jÏŒ.õÍ?§Ó?–ó«O1ǯ³3ØÝ°ŒUCjI-{Š´î9o¼ƒð»ó³7íébƒ)#^&î@µ×¶hF•»Š‰åÑ q.ð®[øªÇœÍÐG«2 lÍîV¼ÄCZ`Œ·ÌJãpÌ!‰ ¿h+{ìÓl’Œq´&rÕ…O§ ô׸]£+sÉ—x¯[Ÿ©\ƒæd˜ÍÀréiXr)³óÓŒGãÕUQrê*ÙêÒò2ç·é(l‡¨ÀòÿÙ»¶æ6n%ýî_ÁÇãªL ÷ «²UŠd+ÊJ¶J’ãì“ `d®)’K¥óëÌ3Ú¦hE–•JR6˜§¿F7nå¦OÁ€(nu„`©Á„ û\ öfãü¥ƒ‚sÕAk¥^ºŒ-©~°GçŸö¢[³;8©'Q5Œq>Bœîœ‚¼~ÛkΫ›KуI2Ÿ9’Qa8̬tÆ,Æ AÎØÉ+”’sö|lø (w\+cõÙ‹>?ëknû,À<€˜Þˆ CÀv“zb1PCæO?ÙÕË[¿É5…2~¢^qÔÝ‹5"L`­eëÃC92j+1€p[àý“‡vÍ»àݼám ûço4TNÃVþWôØŠ¢žÁ"ºÙ€ûÓzšÐ#Ž$ DvͶçYå¶'fj“w³k›û̧³ˆ§qI…$t¦-S4Ë%&Í0TJ+bÊf…Ä’÷V}ryÄpú!1ßpÎoë £ ÝzRÝ)ãÓ{¬ÿ­d~q³ioW$·"¬w×™‰Îº;´Ç(Ì­[:tŠ‘ÛeˆJ©%H'˜KŒWNé'-ˆiÁ+ï9lp3´ïy‡‡KÏGëï0ôÆ%õ´b¹ˆÛŒsgiÝ ÏWj2uò&e"?"WþxœÀ¥³¯8'€’ÌS‡ñLZ¥Ò²gÅòpxöL +¶çÛ‹7«ö=SÇáÒ?¦Æ(‚g?.iM+‚g(™a!!¾žï6$ÀHÑí+Ч L±†J( ¬3ò¨¦œ8Sn2©ü5ûg4?šË[LM’Ʀ}<þ}=™šêªIµ}nX]¦WD[—îo!©g‰ ÝJê)ÅÜB‚ÉE€îêÕw¯q¶“ß¿qW±Ë˜s!7Lûw@ Ë”3š¥ E\i÷O*Á£Âø÷=+û!„Âß²Û8 3¶JÚØ´å6V2b¾®¯¾€ø³]þŠáÝ;÷ܹ±Ýæâ¢“ŸCy˜7éz±ˆÊYV…¹7‰¶yܤ”—T{íî–„r98™é麞îŸs‹þœÜÔåµ>û{jÕooý¹”â‚Il¸å†ÉÊpS{ŽcŸ…¢»<¸!I=™H¤ãÂGjA wõ¿žÏòäàõYÈÜ…±`yŸ…È4£€ÐŒ¤ $Bcɸ['r¦6èQ-OOÚèÃÆcDZrwÚÍg6_NôÊ_¥Z;tV&ãÄßçSóÅoÓéäÿêüeñ~[ûüa§ÿ¶N(ÔÈóÙèòuïÚÚË ] ¿®&Ÿäjê6þØáb~£ªkžµ ®y÷ß=o!lwôåº_øVvîêTƒ’z†1{D<"\À]“29©H©3E„%n£ˆa¦¸J!1F3 ¨5’™ÌB.hšIQñ¨Öš^®’¿!ì›&/ŠôÈ$f¯>rÿöí®ã£,^¥»:>OnTÈ#*gSÑ|>ŸÞ]W×Äë–¢`;¼É.'> J¹Ò8ù oðŽ š©Éеñøu1½wPa[ˆ; ‹¤±Í…åø(©&ÛÈ»AhÄüý¦]/‚/Õâ£kôö±e2˜¦ÚH©…DºÙ¦a) ÀP “쬖>ª¥åéIFÚ‚eÁŒ©r4ÔÍ!IÇË^ë«å²NäÖjVKé¬níÊ/j}Jª–«~«žOEÓoÿïîEq¨y1ŸÌòñfrkM¿y1‰Lrèk¾^ {~øˆIýýíZ"bÕ½P7 z9(i&Ô—y‰—#„»žsº5¥x6þø;,B« GPS'÷RLˆ˜@ɰ•Ti2V×[ò ¹¥¼ýê¿ø .~ üˆ¥îG\ªÏŒMøØ”‡ŽxPзtñ"¼…¬½b­Ý†[:lyF!ø[èNÈ;Ô6ˆCsRÀ¸_Ÿ©ù({Kq ž|³nòöf\ÒÌ8¢Ö‰“¼'b罈¹ Š"àÇ2»e:c8£™rB-·ÂðŒ*e‘4@¥Ìý”gµþ0jÝ3- \°ÍÖñø`:¹n[´¡õ½ƒÓËî²Z>ÁÛŒø;n”£ ëZ´‚bÚ‚jXRÏ2CÀÙˆJ©yG°ù|‘'gÞlðN9DÀAf-›ù¸M%‘†À2C•––ÑŒ¹42(EÏÆí÷ÞöµøU¼h‹¦ÒO-_ô™{Ž)€Oïl õvl­I=±ˆ;H AF˜83pG„_Û‹V€1 ¬³é`*)§æQÁûù„ª`ćëüöEÉæ¾GÄ¡NùÓÛ²ÃÆ¡P ŽÐ–xô3ÝùÜË.Úª"bíÞrf‚w̤rTÒšx,µ ÅxDØ9(çØñÂoÍ„¯ÀÑú‚`­|Þ%­¤äˆ¤ÂŸëb¥”0„ZÎ!QXÿà¢ã=•î?Ÿaªïn¼žE‡ˆùÇ¥U&N\v à==õŠ8*]kyAà¦Éú{lg›IŸiÃ9S´¼žªëÕF‹z>7±Ñ'³U®¦ÓFysЙúdÿ°ÓEµ?ÛXV”î7YB]k~·•è3Í*ó~é+€|¹_+9ôP7ÿ¨Án—ë´Hâ<üKÆã§ê?w§Žuvósž»M¬ýûòh^WÃÏþ§²ŸýrPrÍ£-±ýjHw­éåÃg ââG$Íd"Gؘr¡Ê­Žì|¢”Bͼ¢—Å%'š`Äöõ¼Rh Hµ)¡bîMeÃ9ŽŸ`׿$üéPM–óraT¹O3Y¬ö—ËÓüÏìýìzˆô)¹…p`6Ÿ>,&·é: Oæ„á?”„Ü·6¸Î·üŒ…š]ÏãŒ)HÅÝBÏr§ötÐÏq€æ„:¢–\kW-¹¦&ì¯Ývh§ÓSu7_çá8áõz¦7;DuYA:6Ÿ^vþ>äó›~ëÛ»ÕÝÍjƒ°¡­P›WséÜàÛ„p¾w:Y•Ž•*Á}—Z\’2E¿m.æŸ#ô3;[‡ÇSЦ^ÙU>üs®œÌŸ¹Ï8½¬•¶(¾ÑkB÷³.ñ@RKÛ°!¬Ü-uµ×›Œ]µÐqm" ºÉJýˆF]ÅòÌaˆ1#Žt[ÒõÕWg§ÉáÔª™÷9wÿÖœT¦T¹mo†L™$kca¡‘>o–4‚¦V=*Ëý©—Æj˜ÀîÿîVßPz=_t™\´&ÍÍ÷ù˜ßLuñœïš¼7¶®‡n0P3.if çx„¡ØÙz+^ä88=™½ž/o|~a±­õh…QJj…G\¡­t6œ°XKF|0>VŒ0Ø–ˆðüÂr^ŽþË3±G"*OO8ZÑp´Lr ^DÙhÉýË%ö@ÅT·¼©¿p~36©§ñ~ FÙûçÜ üî5*÷“,‚ƒcÙv„°Æ×7µ:³ÜJ£(¥È¦Æf6åØ* ‘˜ÄºwÅ Õpåöç6ß Ql“ÄÈû‘Å£àùùe)¤O»¸z=L¬ÙâÔ<Øj5qf¡Ý#zKîŸØ glý2z›tëh)rÿZ½üe´²v´Pú“ëÞÁ.²»â‡Ý¿1ñ+Æ%õD#GkíØ‰`»†¾·õö!ù¢g„“9gh! 8§R´û;qІ+Q‹O¹_gìIÚäPý‰’üÇóÅ‹ˆþÆ3ˆ×«Y>É‹·DhGáÕrWÞ;+)XeÂsË(OÔ¦žNfŸ^Ýæ¡R{(n›a¢_ï¬õPÙ&^Í?Ù6ó¾-Ù^Z'*þSì-Ò$.i]ï¡€,¶„qI=׈†@1BïkR¼*샋…gG|à°;{“B%Ü> ÅR‚eJq!$ h…ݯQæqÝ—{zBÛeZ[ZÍUáqNb¿•m ëWîF(" ­ÑI3íX6V)ä‡ÇûHDPZ~ÏäÍg-4ëT"˸$™4nOf4²FŒ éDÀ*­šúˆ¬gax(Û2p-( Ô·AÊö¤`èž÷\}Àô®""À“fbL“"í#d×´áM։ʭיÃiÝ Ÿjn àVCÔ”) ufÐ)6Ô<®R(OÓ%×bÆNIß¾9z'½z}ðîôj€úêòðàüÕñÏË­äÓ·oÏHo†Iç'o®ÜcO.z¼»8ÝúÞ¿ª‘Xßg‡8²ã7ïFÇvf—j::_§ÓFÊGÿr[¿—}Yï R/¹‡ 4&ëåÀ¤šh¤X€„Ž „>pwž¼º]øLÃH 1R͘J‘³U3"¥x\!d? äïJÄÓÁMUêæd9ÚÍÿ.÷ƒ–]#` ïóèüÆKìN‘ KÍ& »B#ÛªLÜ褞UÄa蔑Ûl,îå0ôqoÞâ!="!ÖD"б±P „g ¸g4ZçMãÙü¾ì©¼@ý¥é`UÕ.¯SŠW¿iQ"¼ÜKái<Ηî·y?CÏqŒU¾)qË®¦û8ßÞÊ]U“[° ­;(®à´_ÏôrâÓcLGoݼœ¯—ÚVºì[=û9èúõ‘àQ çF%õˆ–ºôwÁ vnw»ïê<9:øË— Å+ ûÄÏ ›“YN2@ÒLB,t»<#SH6Ê¿:d}þü9‰„5<WìY&¯Î݆í௲Šé4jê¦  E°Gõîv[_Øn?µc4Ú´ »*ä¡|ªìЊÂ±N‹ù¬v9â^‡wnQ?¸¶³¼?»"múf†ëÊá;å:jǽ}Ú¯]©é„KQ‚DÏqÆ$Õä"½¡àÄ_ô–d×üuþ-—É‘²7ó™y&þ<#vÓÛ©\Ä à6ãNßÂŒId(e¦iÆ­Y(“´}.9y›\:TØ<¹¼<}dÂèăf¿âeW 2Ñwv6“zb1g'¥Ô—Dß9'J‘V&qózÚÙ5Þ‹ba†>³B§HzŇ“)WAL.%Ò\j“¥+_ïO¡ ú³¬ÿ”&#T»² N 7Ÿfrs½räý¡~R½\†¸[¡˜´f+c&%qá£BvDý̧apZÌg,tÀ×磾R@S©±Êi7KÉ”¯yΡRÃ(ÚÒñìØûnÈ ðz>èud 3©ÊÚœBh.wc ·^u¸~u»èÝ6'Á_Jóÿ-ãouß¡žu…ÊÐ/ ¸Ü£Xö1ß;us[²ŽHƒ’Ö„bJˆ#Ÿd›CÆwVCá=‡á°‘· 5 j´ñ‘õnG&ümoo¿IÌœùf°6Júª(mã­AÊ?¯žª &‡a9¿Ø ¨¨\R7ZH/–ßœqîËh盛‚Ü Š÷ä5Éè³S@B±«gÝí(ÎÖÓ|²˜ÚÛ*åB´€-ÖVj›`±ÈêeJD–‰%0–e0CÜfæqeº|z(à~ëÖóŠkI:6IE5hS§ZÜàuÀcŸ…cÐÔM? ë½50©'ñ¸!ŠùÈטÙÕß¶±…öT:Ú•£)°j‡y)B+ã=}i‘Ĉg>ß+n/ñoÂc­ºëoΟ%â;IćÉ|µš6ðìmmÆ«û‡bñ¿nC_$òØÒåƒ7G§¯{¸_ì~·C¥?¶$­²0‡"¿éFäj9ñ½®@»»Ë'n—Þ“¾f`RM¶/}¾ºù2OhW÷˜U¾œÌ|™F †jòH“a%Üö&³P¤’h)$…ðQêL.­žƒôHÙ–•šF¼èp2´î¹O (ýj<Ýäõ¨¤žR´Œ§Ï,|®ÀQ¼*^sWDσ!û¢h¢:kIZ ³”1D‰„LÌ`dϑנ"ò嬴¿?Ñ~Õ ÐOf3» Ytûí—ZMÕrp°\ª»5 (B)² Æ›ËÒ¢qŠßé·mÊåÔ±¦QQ„ËGµ¸¥¡üwÛ§ŠŠNO®Y÷–c3.iæÚ—lƨ/Ћ•¸k¢ÞbÉïF¿4"LÄnd)—™ÓHÈ0«˜Ñ¾²ºtû0“1Í8ÕBgJñ‡ëGçZþfÝR%<ª¿ýoþë'áëïY£lr¶·1qŒ(”ü.i&Ñ'ÎD#„ ØYŸœ&ëâÊ;aßCDµ4ÞùKÍÁÈRd8F*APdˆ#Åž¢‡0ŠÎÇcDZò|l¶úâTéúúe·õäm¯ÉW^YöZßOf•YL¢´È“ŠöóõM•›¶ÂT˜`R ê~ÂôË7]G0qóvbäÊAI3å˜ù†‰?¥îP:5jácø@ÄM*ÓL†©N¬† ŹÂ:K‘BÖB,õ–•²öÕH+^þîâ$üáïNäœÛ‹þÛ.óäàò |ùý&±üV9zx}òaj#æôèà<„¢”eJ~_‡ íoüÞÝS73¾?/Òâås=ŸŽÇ"¥ÿ ïθê±u³3+/ßlÄs·i¿OfUB]Ü#:ίr5ËG{7År^–E­œ}}zqçwywøQÍ®;´±Îgj¦®íÑJÕQ¹[:Ÿ»®fó“Å»­VŸçKs>wËÃÝW<ÖÃÊY¬³üÒª¥þø#œQês~EÏ¥ýÚŽóÛ»ƒu^Õì£Ã]‹ÌQ_ü ¾×…]­§ù—_~y7ÓGóÙWðË÷t‚¹¶«¯|ìe^^BÚÞõ¯Ó¿6³Š tÚ ‹t>º<;ÝŒ&ëÇãù:_¬+[ºXô)¤ËH7Ò§Þ:ìø…i³Üb¬‡wÖå>yØêþþãüàædðû¹žK5HmnØ7)Ðzä3•W‡}©?ñ‡²7ÖL¶q±Ý)pýd–Í»Ÿ¼._(zÄ3·—å"ë^M/£˜ú¬º°™]:Í`#¤ÿgïÙ–ã¶‘}×WÌãú.âêlN•nN{dE#Å9O*å)ÏsfFŽå¯_\x'HÉci£8ª­uEèÙCt7Ýî<ßÏNéšÉj)ʾÏ lªÐ_6“Øj£[O[üê6§ÁmŽb¯œ@ù·Ó÷vnÛ]­6æ;)?( ö$¢`a2ᄲk*Š}Åf³3‹$‡‘DF„§H›`‚ ™c‡¶‹R,d¦­oͯ=”ÄørLy Ÿ—ùð›Ž$ÌZ—oê5’†â!-ßkGxŸ#[“îêðÑŸT¬Vb½Ì×&+rÐ@Q^Èi„Š¥¡ŠU H€>"È„s@L,}>ÇWÔäiY½ñ¾~ýÕ6äàüüàbúþâZï–ÂE Èg ’“4-«ÕAñåºýj`d_ˆëE~s½VÒX$=„²ðh“G-/–K¿ù2›í-îþg¸i‹okyè¤×‡t]´‰AE¡¯Ñ¦z§Ògÿ]+0¦±%S½vÆL±™þÊ7LÀPQˆ¢0BHÄ(Ihl.zc–H ôvnã_<³¦ãºùÂ6²çùê?¹ï¾Ë½ýö•ÊÁÅì5}ÁÝzK­©AMg‹`úŒE»v­h¤qhíÍí.èÍM<…‚„X1Bš*Œc‚ˆ”E‘ 9R…É@ÁÏÆ@³Òaé/úëͤgÇÑl4uóu®¢¶ïèÝëý1\Pö2ŸÛqcò¸¹åLkûU#Ò…%ù&Ý®ü°Lmÿ뉷™þ~^Èçe}«¬¬¶Ø!°¸ ß§Y}6oÂNo²|= 5ùòƒÀñ·êîFeCPó#†`³Ûx9„šZ“mØ¥õb䟊JxµkÁLÓ+¹Î7yºGÓÖôFŠ•òb7{†AÍ›DKD[ÿ#Ë‚#°ýýÒy5Œq¢uÊ8Fy„îa4Ü-æ1°3u“oç Ú[×ÞªÞÌæ.HÖ߬ƒS{œz7Þ­Û껀ÊÛy’uìšï£2[Z`^–ÕoŽç7ªªDß‚œmËÎg±p³‚.ëËlF€êzCuƒSã¶¹¼[õ8³€.cµžÎ¿Ì³æ¤ÒGí›Rû¯6ßÈ7M?÷îÍH®„÷]ZAÕŽ;´ó£J£u7ùêcÛêÀ>n‡f‡aefÞýSµý˜'›aÄ1Ð ›qy¾Š…üä‡.Å|±Íý°,ú*Y~Óšs‘Çùöê #1Tt^÷ðM}Ó·-;Ös`9©‡qÃ¥î["œvÞXÁfÀ‡ ú/n=™è@µ€fwLJÓë2Ug õ4;Ê× [¶²çŠ_kìÇÆ]´ÅŸ« ÉÿÌŒÍÐ]ÎMÛ¨öØÚ)²Îà¶ßú®EmP8oŠ6ea­ïVUâp`ÇÃ×â·Z{…JêŸäʉAýq|×ßxHÑ„YÈî¦õ—å‰~¾ll”èC”€ÑÃ$eaœ¦ åTšŽ¿ÈÒ$&b92ÛÆŸ ·Œàœ\^ž\x_q™»&p¾ßiH‡~Úõ(4ਥ ÜøÅclÙ÷{Ô¢GãôjžéC|O+–ó‚Š6oyg‚ðÄÄG¢]³SÞå7Áñ|³2kc pƒpL$$¡H¢„¤Loô<‘QÆ*eʤ* yÜì%n¢Xn‚ßÅbž”…ÿ^4ãiF½æ`áV²¨¦< -«Ö5 Û×¹:Xe]´A„cBÑÛ -÷§Ó“wó­z®þw¦Ê앇áªu»Æ8vM5 ½ø¥‰ªjôW2GU~ô6FqnÒ¬šÕA9»],ü“ß»¤GòL®•*’ÊP~ån³(W¸¾·eÝ1H# ÷ ‚ýÚ¥Wß>B+ØÍyAI§'›!µDíz Û¼Iÿ[Ýd>•I÷FH9åR ¨æ0a”@0F‚A¤¿xÝ‹õ)^™ì§õZÛ¶·l+ëÊE¹À-qhƒŒZ\9e2 5ýÓô~¬ãÃÓûPšš!œwóe£øÒÅÅñæ>œBe<ë(_èlòΨ‚ûÜrA b¹[]÷aÝeòã:Ïæ_ÛšÕ‡kj_Ø«.[ƒþpL³4GúS¬†Ð]Ìj ævP÷ß·k±ÍGŸ¤æý´…ÜJ{˜S6V~ø[>XëÀ‹b|®»^ä˜ÀôOÎsÛîoÉòÕt˜Þ…Í.Ås¼5òÀ_Åg1«Q Ë‹ÕÔ« ÛpÈQ=>ÛÆ0‰’ˆ8˜B* HJ9ä"Jhóâ¬i‚¨œ‘\e7/ŇÛ¦›º#›^Ë* Øp¤Á{ŒO­•=×måCþy­VDª­¨²£ïG?/ìÓu›*ø9°ü¼[Z–ç¤ö áéÜLÉð–¸<&hÒì“~²I(Û5³Ò¼÷R›ª£¢ïŠ|Ê9g!ް°™âL”$bΑ *!€Iø¬Îp? „_/·f©š"q$†ç·*9tT^No¿™«E2pO,+ ”Y`{ûp.ý‹n'Ñâ|{w"S^‚Ì¿þY²¿ÿÿ¥ßjaJáƦáýÄYn½_» ßß_ÍWÞWbmµÙ˜VE Æq†ŸVú»ãeêHÝĵ–þº…k'¹¼`¹GË.÷(œ^!‡¬¯í¤ª«§.tš”õ(ÂlgCHš ¯&Œ¼f¯m·1èц!%ÃP(ŽdÒ¥"¢Pñ˜†’!SçyiÃ]’ÂÛdaPkÎÒ~$3ŽÿõœÁYÙNËŸÙIwãNŒ,›ì5Y§µåhïáãÌ^Eu²oݬ I’'Ù„Дkãl×P˜‰S&Pa¾40¥Ù_c_¦7U `™ +Š$S1G¦.ảL‰Ž„Q4ÏJp~<Îvl¬×ÌxI·EèÒí[›R×ÍÚ„]XQNgæ*êôfÓ*µ­ÔìÅq¼f%GTà˜éÉË«½¢´Û˜ š4Èò4™C¡‰VSLð®=ì›ì¦«YCæŠÄyË¥$"ÇQˆc®ísÈT¤ÏãiEŒI£No‚¢DOgÿ¶§³ÙçËâ’@!‡yrçRáôêv­èFs¸™×xÄðXɼ0¦{/)`ÎËNñ=8óìW½tG¬ý?¨Âùùë|uß»ÎçÛqŒßnó­JÎ5ÿÞƒxuå…ÛVë~J‹“ËQž]®ÅI&ïAÚšë}8&ex Çfyü.^œ_Š’=@íΕ—ª$Õ>ðªáÁîCýºàšzáNo~©°°iÁŒÎqÍiº£ï/û¯“’©Æ5…³÷ל“hãjv}0;:=íatÞÚÔÁŸ­¸Ù=YÉ~¼“‘Wñ÷=v;!Ôó‚šT‡(‰à„@¤ ÅïÙ›l*¼É±0§7è‹ùëcׯ^”èå Qs J¤9šE!T …L’èÅÐûoz¥.UuŽz|Ó4ר f•ÙëòP—Ë1ïy«§Q‡h ™ÎÈÎæ×»ãéñM˜ê£ØeU•Pòi2¬M õ9&N$…iŠ €D/üý´Gt³T7›ÿ,|[ 1dœaë¹XÌ¿Ö;GwÜú3…-—²Ãz³V꫺ü(þÆ™móµÍ¥Ùk0“£*pìTî!ÚBpœ±Ì“½ÀþõÂÕãÞÞÑ’NΘ4Hô$ÌF!§…»ïö%&OÅ”–'D#£4TI#fàRB‰Œ)¥"a€È”'¤y¬©!¸œ«À±^¤îIw•‚õl–´Ðÿ6oþ¶×å71p¼ðˆ;ŒŸ×<—jˆOÌÄ A˜ÏeÆL}RF»ò™æÉíB&Ìih¨M7ß)ŸRÇ!Ž¥T4MS}bKÁÄÜ_I«cW p•m†@ןÝo.w¢ù–åêµZZŒë¹Æh,`z›ÉaÉÙÍ­¸ùÉô³}‚ën‰AM¼Çþ㑹íô™cGÉáF»Þë6ïÑ®™`úÚ'?4)…I ÒDhq…)¦± Ì¡) U ‰~ŠÅ³’Ÿ‚ùyí¯Áå§å.Böš«ë†³¾6¾+™ßfÛæÀVÄýJÅKÍÅÝã¸^ƒ)Ó½T?Âsã„Ó }Ïfrzþ›½ËÔ¦ 'Ô¿0¡O]JŸ¹x%)Ç"æðP HB™}…2š`ö}?ºœ•Õ‚ñÝÊ……ýþš:@`VµÉ󟱋‘ãÍjã °ŽçDÃ}|í&u×Ñzwþßwp÷¯"Ž•©êJ|YmœCLÒ4‰Qª¹š›¨Âa‚X¢ˆM%á4ä”´Ò \ñ¥`vPÔ\}¦À<°^…?¦çNOWÙÜDâŠö_nÌÑ+±|&»Ç'.µ¨86(üä½ñ²êÙ\Ó¯éC1¾ô¨­¸5 ž‹…-½t/FW~¦þœóônóô·aد§ÇÃÀ·jä©…!ë6еù,o¬„T›W¨æ¯­à>8¿YÌ1SëÏc¼0ÛŠì«ð½ýãÃæ´¦‚±£Q1zíé¯nUjRÜׯnVP’äkSCBF'ú}zÕÿ_ŠÍ'mØD¡íèéí4a”m¸3"£T)D`(ŽOâ(¤„&ày]…ÿ1Õáu¶l0v±|Î~6+¸×[ÙâiÀW<dK\ÜM.T27 yñ­½?™å©­":ù×›ÙÅ«®ø¸¬—!é B13hü_‚ÑDÛ*Ñ®±sÛZÙªÓÂÖG¾_L1f˜rÁ IˆX‚0Ž”¤ \'LPèiØ5[Q?c¦û;J†“ˆzs0 Ù”>•ùײjñàtý0åøéÙÉåÐx»zn—Üf² m¯õ1 þÏ«?|z!†È-@E]F/B^%Ûõ®Éõ0ôòè|zu< =;õþšÙéÏ'ZÕÆw•¢ÐY·ØF; ',mãU½óRä;/¹iAE¥gCÇp41)gx×Ê6öMgÓs­q ½kA˜G‰%S¢”ê£?ÀœIýWÊ#)mè¿I“VñâxôËôàhà¼äªLŸÌžÉîÿ£{V×Ù&[®šB¢WÞeƒ¶Íb3^׉rºÑ¼ôpÚ¶ýk4„ eXš¾ôYyNð<ëüøÊ8Sòv]d4›Òú}rK W¾ù6k ?ÎäÉN‡ÞåZd›UÑ`ÍPÝm…â´ÛñèƒB,h»¯óÀZ°‹Õ5:„Õ,nᓺë$ù:þxThW¹t•2ûÊOÏ jº= YD° ì\ÔëL•%nM¸’¾óp˜†aR¸¶6I˜¤’FB¤(¦B¢P†eKïÒyóÉtÞ#DÂÛMqŒªÎ ‚Þ^óÖS7›…ðµÓ÷gúÌ{|^ëoj$— u]0”€“=÷—7Òn-%% …HÐ,¾¦ cë¦R êˆñQÿv/z\ñî P×Y€ù¶Ó‚êø²0@Ðd·@¼ë]Mó¦KµÈÔÖ,/ÎqÆ!£X ¶"‘JeÌ L´€3”H’4ID„V8/ΊÿÒ‘Ì­Z±÷¡½îjºáv’ñc•ã`šî¾ÅBîák71hP×çl‚9'-!ùÆþrpn»…Nh8ÀÔbJªhB#”òPF0aqÊ4¯ƒT°¡T†¥-ÞëÅ>BÖÍ|û&hPãqýŠM’X„à®÷^:=GLlØV¾4ȈÄA„¡ÀBãñƒ,ŒL‘\ÊDœÂç•üͲñãq¹¸}8غ,U”%Ùìï—Èn»-bÀ> á”=/9X`‚M7j{ïsÞk@£/ƒC›ÃÉí=øB³Åv~ŽÍ$†ß.F¾ýì6^"\æŸÔÈÛ¯2™gÉ…2-Ú^íù5‡ã2SÀ‘ösÏ {>ÚÁDiõì@IO¿¶&Õž;€ÚV '¦öý÷˜,úuÿ'V+sÆÐæÂ~[>• Oâ Á$&æ> ‡©He„ôI"æÉØ{¶å¶q%ßç+ô¸©Z%¼_²5¶d{´#KŠ);SûâIÐâ %jHʉÎ×\x@€R<ž3Þœ©ÊEìn€ Ð@7èn?4ô|¹Ù÷ï«⦾žx ßõ héCÛá6K™-!¸A} YÙ9Ȥð寥E3ˆI0䛄íh»Æ”ñº;"Üò*Qp¶5ÂBSH—Í@\pÌ´¬?û,[G³O×-ß{é½çÕôb¼J³¼Ân/hߨÈÿ¥kf\S‹4h™ÀÖcCƒH¹Ñ\©4Q‚ȉײÿsï5¶Çç^اe}Áþ› “|¦„¶¿M@cŽæÆõm(ú‹ýþ2ËÛôÙ |,‚Ö.¡@"$/b~ òý>OwžcçQ 5££R6Eõ†j±†äí@ójŠÓu`.Pc•Æ_^ÑïÆèÁªƒôi𙚢y„渋Th¸Í‡Z‡ÐC­CheëoTÒ#0?‘ì=A^Tª&®óéÐ`ôÀ`4Û"fý¹^e¿?9‘°—þŸÑœBÐj-Ý_Ë–uAð˜hw, ž¦Ø¸k§Ätkzš¡,߲ܗÞQ[Mç¨Mj™n!ýRv? „‰•„±©YHßÀrã$²\ÏŽ\Ï “ÈÑ-Z¾Þ”›îŸ,œLáöÚ€èzJ‡`×ýÏcn®—w뻋Å#R5¸ ýÏØ~Æ.: µ¥Ä46Wl_m br—NøÏ0Þ!¾¯÷{qöÓ%ùö®K.‹ük 6Yvõ—â¸éü&À Þ"x}½æžoÀ¡,S2êp6 øç-x‚Æ´[H`w7—ðTP¤ß–û’‡¦eÄD‚ÕnË?8 (ÚCpÐ/z‘B[a¾®&”#Ä!Dx2råM þÅ÷8nùœîâük_¥š<Œ‡¨Z†ÿAŒ¯Ë¤ŽáÚ>=´»žÙŽIáG°¤ýWq¶ßÏve…¡ JÙ’t¦¬>9dç~ƒx®ûÅÞ¥©Ë4âˆÇ7, fA´é¶kä™r$* øŒOjŸYà4|â‘ð/Q .¦ÆcŒ~Ëq*ÔUþT€ýæ¨"©=%˜’§Ëõãr©*Z(°wù¡BãQJPë/ë"U6ºå<5A:ÕpC¿A#‹#‡Í#áQHãÚ±Ús}„R$2 7äh}áët¤Í2#ÃÍÓZc*ØæyµQ !ÏomòSð|“g<¦R5›5oû uBÕ¯òì¸Ë·)Ï,×hA`Ÿe/ºÁ˜F¥1•A?~Dk®1¿_+xý+y_0) ÀVòJ(ÿáHT%´¼ Ñvž_ âæül‰&,j"¸ŽÓK/{¿×ìõlÔ§R"”Õø*VwV ˶˜^ó—OZÌ*í#Y$‚øèÀ5œÊÍhÑ!©ÉÂæÏ ;pua1*<é7ÚvŽ„'G|¤‚á6ëûõƒ] ùH„dÝ\¿ 5¡‘n’Æ~à„èè°]¸ª„x>>ÁRï(CJDð5­xT#¼Tâöj5p’ǰ#_´&šç<Ï÷"fLVç“‘#T…Dº¼U³],‚duÜ‚¨Èå5,À"8쉣–€YV¨è ôƒLEe¯VjTœ)Ót[v ‹YB†ØË6Á(:„¼ƒh·©èØÖDÑGàáU®ºJu¬²!Qù,ƒóÕä1›Ú£ õÈ`˜á"ö¾q9ì#ëjY`£³À;"Bõd’F|ÉBÌ­D äT­z™QÐáP3%wr'Pôe;£!·Ï\ãˆZÎØ ¹ÿ…´nNý ŽÛ5h®8ÿ´F™9Y¬,¼‡#&f'öfìCœGü6ŸÃï+ˆxu²äP~ס¾tdŽ'R+†ý¯{öѸãh¶x®7Ùï•ÄŽp]×Ò´‘ç˜ºá½Ø´ƒþ¹Oiôeäà×½w°ˆ—x"_¡uϳ(ôuÓŠãØA?8Öm?IâZF( AdiýšŸ›a£…á݆ΠþÂûJ]ƒ·Á÷±k÷šwOØŠ’B,Åúo| WÇ·m‘¡CÐßÒò£ß5¬DqëCQµ±~où ;~Ÿ·¾ˆ;Í· Ýý7 -ƒcÈÔsžåvvR‰³^·má:׺1Ó6‰Q׳tùšë;/žùÙÝj‚ šîL4h–ìß MÓ0ßuˆ}ß M;Ž=#14/ŒÝ–_;$¯Y´‘Uß0‡ý›„¯/Xn"Õ$¡0¼‹-G‡Y‚¤a š8ŽÍ&K AÚb{S¦Á±ájzu7aO¸ºM) ^¸¹ÒH³©wLXóO Ž"™½è¶&„:#…Æl %Ñ‚MÓÂsT{qÄm¤IŽ©¶Ùª\Å Ib02mCqá&tu/¶´H ú0¡ëz¶0±lËöAè[¾ÙÌÔ ªÖØ¿•$”ÿo®óo‹›ÝF³›Ç[‰vùd<;Iæí¶Y@M6`ÏØüD,š‡RßC²†E‰5_ÕÛ¡©ÒÊWŽeéÇŒ)Ó2£œÇÆf¿§€rƒ$礵؃è ImѯéC ðV‘”i¿°lÃö¯)Q=E{w£mM¼Í–3=%‹šèë:²dz/·ÊË*ˆŠt_éÆ7ƒR$\KlB­‰aØ–f8’ýQ¤ƒXó|=JbG{Sø~¼•£7hÍ$lÀ¥^9\þãÇ«U ÚCÐ*ÆúKâð³BÍj½yaj¢,–·­’HYÛ1µ‘ëþKcò:€]uØŽƒzl %öÂ?I.¬DÓ’8v=-ŠÏ í$´ ÛFS& ]¨é±§ùvÂ¥L›d ,iÅ-¬6yüV¤ï7kȨÇ_g¶ö;3‰ˆTlL¤ƒ4Ø>Ö ()§iYצb7Ú¨±ûýÙ0†ÄÓiÞîE3µM!–¼Žq×\‰mʱLwd¡Ê^º;Åêõo·sr&22¼÷2•×±ÂDK\Ï=šaù@ót|É] ã(±4ù=WòìHNmµôqØ×¯_Ç-ôo]øUçæÅ'ŒDÊ#Þ v[I½MjÈÐXT u™m$? µ4ÊÆUïðvX|4LìÜÜ=÷Kèë‹XöÔ@ï•%Ac|Ü¡ `¿×òD,( p|'BCš:¾Îó ¶'Ú<¨Ë:Ó<‡€Xþ<¦eî9šÞ'ÈÝqiN@ç¯ÓAÓ~‹Ò]Ÿ¬€¿`)ƒs1::DIÄþ£ô JB>´Þ<ÍêAÏTÇxý`²î/ð‘Jà×[hûë•èy¯kbðŽºÌ¸m£DïwÐÞYŽ©›/uŠ `5žù®a@fà‡šyQhÙ6 ýú±Žþ ÿ¢ÄРGvâÃKþVøÿüå1Àá$ê1ã®?pƒÙÅ”x=>–2Kφv<+3ÅÚ84ía=ÍÔÿ'S[$Íg„W™ÑÚÓ!HÓ³ŒÐ ¡£Å@÷“(J íAÓ‹zý¿}åßëÓ¡íîÙPÛ GL¾-ññãgjãË'u..Ì)¯;Iz|Ø›$½üC]±qÛ(‰Ÿ˜ãXÞH×Ki¨ü¢ (¨›>šŒ2?±È³ü(öЊu`9¡lCŠC Ø1„Ðñ7vý75O~<¶ïX™ŽYÍãFA®ÿÂw8¾E,ƒßA …ßï°“§¼®|Å-Vc˦Euh^ɲ!ý",¾Ó•滎r¤|ßó¡öl«?/i±qÛJižcÓ9®«½X|ÝÜÎ,UÍ4ű”ä†×È2-àk6’±šY^âDq4h8HƒŒBߌ=¤–Á‹ôzs{Ñï™Q¸·ß1¿gãv“’…<¶qY8èU·]¤³¶«º”5èY$Zälˆš~®¹`L¹€ ˆþ´ÍÊ}ÆÍ‘&æÂ3zÙró Ü Ð\U=Kæ‚ýUÆiý|ž Œ”s-“ˆ'CÇ϶}ýÅŒ^™纑ÝÈ@À· ? ½$ÔÃÈ 5;¶£Í”åÔSǺÅ!ãÉ4°ê­c¼cþëÅÕ[u8C}†»Œ\âÀj xBœ¬Fo`†¾¨TlÓp[`‹è7°¾¼²h¿¼óÔŒ÷ÌÂ3AtmÚã©XÄrˆf8:H ‰M汬Dg2²ú,`E4 6ÐäšÅp¤¸%Mµ'űMQ‘f c‰1¼I^1DÆ}Ð)âškÓÒcºKòUUˆ?Xg—w„‡}ü8½º¼¿¹™-nÞõ ³ÅúênqÑÉŠ»¿]=®.&¿¶y–êÄ#³Kñ™üó¸\­gËEÐG.–Ó«>ôîj5¿˜\=.®>_ÝõÑÁÅÃÕãô*˜ð¸';éîÚ¶ã*ƒ?€‚‰GÜÂÐÚÕ¸F·‰<0££µ¦[ܪ/hº77jÓÔ'^ë/xÊF0Y»¼w"£ÕÒö4A–ÑÔuK%†5W÷äÆË£Ë‹ÕÇ^iï],e<|Â);-4mÝŽ\´›r¼ø€‘i»ÀwüDÓ4ÏŒì$òl½;ËEHÏ*ng·WäíôñþnÆÀ«<ÏÊúر^ùÆÿ‡ª¤ _ÖëUÐÜÊ#Ùräњᯖp÷üJî`3Ï;„F˜Ø³ñ 6÷Z—í$n²¼v®P ²s$›îG­½=’ Bóxõ\Š) ÕѼ〸 Ê MÙYÅ#H¤†®òÖAu{bæcñOí2b/+ºAcÀ8qÕлÙîZWˆz@Ký¶>`‚±Ë°Í¥dé?aÁQõŠ))¯™S ù‚X b†³ ¶,o%PöU¤ê§-Ð}ß?ŸÚÐÚƒ3¨1‰þøÝ I½…Õÿþ…jE Ô Á­œà¾J3~°¥¯xÑÀ+8 „¢/ 0HCð9hݺk„‚ž öAÂ%\Õ›¹½îÎÜ:€ôH'ˆ ©SŽI¡ˆõ׫”¼G‚%ÐNºBôh&7³'ѤÕ<‡†¦×¼HPG3‰äÎ.¸Üa_¶ý‰æ\Ÿü(ùø±4Á©¯š-Õ˜S/øß‹ËËN•cOõ|CõéÐ9¾+‰†›3_N.æƒÈS™/—«K¤¹ŸÂŸªçöb6_+;–bOÖñI9]öT_­–+swª|—7U†:Õ>B"yA]çÄžr­äÄÝiªÓtÉQŠüûétÖW;(”Qj€ª<£ P@'fêç^¹;ýÉ«ÎB¶¿³OUÔxÂ27T¸·Qí’{èMg¾§õ¿H¢°6 î«Zˆª4ǦÂߺ° wšp²IϦ]ôÙgµ#¨ºnÃDH)¹¼=“òö|šŸI»z:Ÿ68¿ Õr;)A¾KN ‘þ:mÍ“j"ÎB¤&;Ñ^Aß–ÑL/ñ5ŸÇežsèt7XÏ®Ä!u³çÁVãõt„ÈÙoŽ×Û¡7Põ«‹ú4Dw¿K¿-®ƒ$C ÝPNw¦1H÷ôt¢yOÄ$ˆ×Ë3È‚*†Å9õÇ2ËŸ1,Ý=c>ÛÝqZq·q;‹–¦äD«L|N©E£KF‡]áÐÇ Íæ¶|šCPìÇ„Òq)>dõáÄ“e•žÒÝIz`~Õç¡iÓR‘èUÓËsHwUúÃÜÐ"FzÇÁ*7y64zM¡Sr¤¥ËããÕs{qð)NÕ‚¬«oU¢añÜ”›lààRÐÐM'“s¨~ I“–lœùY4®Ë¯ðxNwáôÌz‰mö6-·  ˜7HÊM„þžCJÎÎl P3Û%ù´ø¤äÌj1)wþ5D¼ÜAM¬á &ŽØP©ÕñŸg1Ø@tCb¡%„8’ÄH­!ú$ù™Ýq÷ˆàºKý‡j“U”Ñ!=½2RèdPun(ãÛ0Ù·jΡ¼¿›¡éyyÎ’ŠI‘ðJÏD{æ`=\"ˆÎaÁÏóËsç;Ùe`±ØÃ;u oˆÁS±Á}e$H=WÄO1>›Âן»Ã,)é!ć^— ú2Ù€Ýu’†ÞŒþ'ÐØä\oN'+JŽÚ÷TtÁ"Õ„wð çXô˜]N–Y§-Y4 õ/íšÌÛ:~¦ÖŽ1ÎÝøVÑ$F²î×–XþîÒê=Ú«ðVÈßG‰ ÿlêÚPy„7†ñ-ÿ]vªõލÑ|äI…ƒ¡ &+…Qˆ5YáhfŽe ^3lÁqÛ¿ç2_¥¶n{ÖK󛡹3&ÑX·4›n«â£€ÄÓýHI €çš:44Ï z­Èö|'ñc¾­g? åé±ü=+«Úû _ëIŽÚZ"-y´Géfwd/ùðÈIðÀ"˜µ¾}FË{é“èn2ˆ–xwpGÒR¶»wrdã®^rÖåT7°bÖɶÈ{Ž$Wà–ªBË‚¹é$àȱwwq«ÆHz–!ÄÁí~ÏHêÄP’6lÀO’Õ‚Ž.<§.[³èwÅ–=•ö}4,=ÓÙTrçŠ5¬ï¢‰ lÉqû5Ò|ðºnŒ¨0ü;)>,ºà@†;Ò5 ç½”¸ó†¡fjº“HO,?q`›"C·\Óö_³|êWÚòÖ½Ò]žý{åý³Ü»SqÚ›tè¼=…îFŸÓñÅã19‰ -G ËÖ3 “ÅdÓ-{B¹/Í縮cQ×yž}I+Ž_S„g0,Ýw [ƒ¦îƒÐ õر@ î…nEhZ˜±ë!É£ vs±ßÓPýýn21_ÃêL‡§oöýô »û( cÕ)4Zûœë‰¸:$ÅÚl}€¡&¨Ð¶Ÿ¢ý^í]fmEÓ¦yth´%T¿/⯾á;”u製)ÞÐl3uû@SµQ®”ßw}V§“C;Ê¡ÊÞ$FÞš½”:Åî­i§¹¡noFµ¶Y0 UÓç׆¤꘲º²ØPj6¥æúVKIEw'†çþ®îQ×R‘<¤ð멎ú\€ý0M©dñ"Nã†Ùü^3ð-¾:Zz_‹÷rS—í}%Ar‹3RìMU“vƒÁ4Qºe+þ:­Íb½R4ŒZýÅ}Îé:´iqx¬[\_;¢ƒÄ;ê<±£2óXð;MWC:¤ZAÔHÛtá:¢XvÜ4^bºr,C×qFÇBãþRe²ØÞAÿ ¨™&i¦,jb„öl J¼:†ÍNl›qœX‘›Kó; ë_ì=ÛrÛ8²ïþ =ÎV §p¿d«NU;ÙìÆINœ™¸ÎK $A[cIÔJTâÌ×/.¼€$(mgŽãÉKbu7À&Ñnîf㪎ô¬>ß“…Ô¯ñ+¼ÆZ>Æ®£—.Æ¢½JÖ™{råáVˆå—)™«ÕhØOÛ¿ý<Ûj=«“v÷5.&Å£­ ÆùPÛÚvIËc$¸QJb3Ÿ züšÍ?È^&ÏW;ggNÔÏ(4—$C@iL1¥”¬È ÈPN3J!µÍP*š²È¦c[îžèÚ¯×ú)(¦J7_a€yxêhÄgŸ*¾t5c ÑÐó‡ý×éæaåÚ(º­³5nÿÜĉ÷WÕ@éxL…F鈹DqMoZ'‡‘=$3Œl)Œ£5þ¶Jž^« ½rU¼Ð »ìRcmÇRã H U®‘±4e)Ǩ „Ò£ôyN¢{4ÙµY”¯¼+û ú¾ì«cÝ’ ‡¬®þ5ý®²—‡˜öÞVî²½ÁÖ«|2£z'H½Ã‚ðG£«•­–¨PfG7Ò–Í$`2ššVŸU2yìa«ÔÅo./ffÜ ]ÇŒ(¡,Zr•Q$)QJŒS&j‰à Ââ~•¢øqæÀ¹mu[eÛ'~ü'Éaý¡'#±ñp[$ ÎÜêî¿ìÐmŸÍŠÉêÈZ™õ[L\»¤eu¬L”sj|]È…8Þ15O:Õ‹ùò܆Ú™‡)ë>ÇnÞÅQšñ ¦9Ö0Ç„ÓqšÙònË3–§‚”ß+•z€ZÐIz7rµÙ`'Ñaõ8e×7ü.7:&…gd2€Äï'ƒ1«1F cÏÝÓ^dåê£MŸo¾{t—ÃðIR’qÂhnœ@!€ÎÈ…J1A(M!•„‘Ý+ÿb›ñð4 ì”5pȺnÂÉP4Á_¼5qP-²6£ 0¢®UÒ°Q‰¹QIÎëïó/u£¶s[Ð…LÍõPe<•fÆ×åYnfx¬r¨s P…R‚(ROó|ãûÿ·óc¾úw£ëyðË’5¯Õ­HNF‚ãÊ‘#¬É ãl\‡—öÍD "ºâÛ%-'‘;û B6c„¡£Wñs¸{¦6~ŽÏ¡uï€P´È4ày.S›Ýxu™YÎg K ÂúETÞ¯2÷.Oó7ñ“æîä×^¶“=?Œ«‹Œä‰Ù;´QÁ/¤Å Œ¨m—lÅJ9#Áf˜q´CdôâÖÆ¤»£Þrâä‡k^äZ¥ËHÎ4BržåæG–ãBek&ºW¢ý0…ùC5×TûáëÖ‡ÃêÁ‰Øþ:·éë‹Ö¹ÿýiL\´Æ%! ¿o˜¬G¤sLg6ÓÑËÞùRÛˆ¿‰Ì'¢õiža S&RÁ5œ@” šÅ2Ënª&E¼TÜý•ªïMô›Áò¢ïuˆ—¦èEˆ±qí+½™7?÷R­®vm€ 1Ü£G U—(—r‚by­lß½@“ÑÎS͆.ŒS=Ù¨?拃dO¯ç+½Õž?9@÷‡n÷&HNÕj¾=D³ë¶Pœäluµ8ØÏ³ùêðÞmŒ„44$Nó\çºÜ?(ϵøÕ~¦Ÿo´¾Ù?l/*ux8^•›Oúê ÙëM¹<ÀõÅ«ý_ ¡:ÛÌ«nßñuu=/×ó8¹ L¬µµ a2ZýèÑÿ™i¢§ÅÝÔ\Ÿ"ò/¯+¼ß1Ïüã@2<ߨ[%K‘åPÎ8èkÌRrºÛ¸Ún;mª “F„)©eáÖ ¬ÒÌ,@ ’2c¥Q0CPý¸Hö§,1–nÊôÃ6؈í¨ÇSÐhõÙJÈr¾ÝÎ?Žä9&2£E´#o+h™´ŒEÜ-" ™!.ŽÎ{çµ,óDë·±_€írÂí*R ´eŒ²dgL‰+^ çŠä4³WÒøøý›ïX¶ŸÚÿ¬`KÙHv#õêóöÅê¼\ùH_ƒ‡öføî¬95tnšŠ6‚ÞQ8ãІq7ÒRØÿh,E /Zöˆrô_°À™ç‘-ÁÃÂaaë¤ÏoĦpÈ™Â}^ngÞr^æv9fØ<1ªwPjž) !…Xæ’€q¦2EPNhNrR  èÝŸ¥w~Øê>8§‡'~DïÖGŠ‰ÌøP®»–IÀZìD9ÃLpp¬\ßÌ0Ã…Ä ¹˜ÏÈí7Ž€(ŒXç2)2Ž2Ky‘’æ9.2¢ JXn]Ý“ÍXÓæÂñÑÅeQ N&î b䎊ƒÆdî˜+ÑÕãg9fq¹—Åõê "K~š¿yõ¢ Äþ1xðÜ>T7'OÕê£ÚöNo,C61Ixf3õ!‡%ÁþaÓ½ô /^÷®Ö»ªú盳ç=€í#-o{°s½Ú¥»ª*ûo矖½ß¯ž<³Ùº{03¸ýßóÛ¥Z÷« ÙƒȦ\,RÕ¯önôzöô¨˜ß>ßÌû_îÝMïçûùêÍuY•=àeÿ—ÆñyÚµp×–Œð4{oeåAÁfîû »W°YL7êsÞe“éû—oÚ?LGùï»m}—Ì2#TÀy_Í—íšfÐÆ¾WÙb 0ójé¯3ïì›òÓV;‘lš…X') t/ë½vS'ƒKÃ6­czã2|®ÓRmòQ³¥ ޼ìÓrQnl>6ýb ­ï ×mä{¡ué!ãµFF>Ew]¶¶aCÔn£#ýÔXV›tqðR5×5="ž”· w=ÜæÝF7Or„} wÉoǯsºQW§›r=b¬†»o±ìFŠÆH\ÒÐ=»¤“Õô#.v+wAvo†h?£†àb^éi‚ËÓW§û»°ñ>Êu¾[.?Ÿ­2›&s,—Öt ¡½g湧ת­n0"›oK!¨lË3Y‚`¿v ,FÀͦU‡!êc}Óz 7îÊÄ < $0 ·†³¯<Ák?3Ö° çŠp<Ÿ•«Ø0;;QDgá"*ÐpÚëĆàôáP´—c3ž7±¾*½¼¨>/tgMhÆø¥J{oÍz¨©74¨·*Ÿ—ý ‘ôô"Þ§Ü=²þû¿è¨èØ0Þ‚Ïσù„ðÍ­ãÍŽC¨ùʘۼüÔ´Â!òF{Wjôí¯¼ØÞpÜ—!ø©ÚfªMNÀã2ÄÙ1Ão6Ä]èµ 37˜Tm"Ò9M‘ɲIëi¶ ¦yȦñ¶‚çÖ¾Vd\_••~R–7ñ~í2',»ïšmã©Ez{£¢6Ö‚óOÁØ(ë]€Îí‹õ¿ÑUÓ‘&›ß“öã†oòöõ»ú"sø”ˆÀ=Ú´ó"ú62L5ƨRð¼ÿ-ÅÞ9·QxíâFêb=_EôϦfÚÆºÚ¥Ëî¢õà Þ…3`ðÎí¥ø¯Xl]EžoqMîŸjŠƒúÕÈOdjx7_4^lt®ý\®v‡$öWÕnì{uÎ&«÷óüJ7Œb"VH÷>îûeÄ]Fµ-] Hv­ùp—›e¤›¹Í2Z…XÌ'ÇýPü;êe¨v¿¥õV·ãÒíY\é|ì`T7:ïýÜ^‡U_ë«î·ç!Ÿróeá)à ­¿7Ð|^æŸgÏÌÚ“½®á&R¸Å ÄÑa„ÖMÒû ‘ëÂJØŒŽÉÑ]Í­3—œ«µ°Adh&E6LToÿ ¥Æ£î¸VפdŽ4!× ß4i™‹eå„À>†ÇÛâ+‰/]b€¤ø—X41Qà fˆa@saµÅØ«œ ¦AQÀLç)Ë8øÎ5è¯e‰œ»f†þÄK@TÍnÛÒ6ÞôÔáa=É©‰“±ChŸðUá@µ¢;Ô,,iVÓ2 ø¸œ' vtŒþ¯o_¸´o6V-¦L¸È¤ŒQ›&+r¤4:EÓ”fÈx€JP¨¹_Êô0åßÖÓõÆ£ÉÒç ìžm3µvVÿ‚d€ø‡Þmœpú%V]úÑã\}ë0¶ƒ^¬BY@{Ž6¹"<ôý¼ºîuÂð™Šr£çW«°“W½0i[ä~Ó¥ ‘®áeW ÉCþ”âö­¾ZvÅÕXP‹Öƒv¶VmÕ ªP¹ßMöGÒ&ülÁu2ÒôÙãwcà¹ÊÆÀ×h üßW—c Uø14¬ æÁÕ:üyU®¯ûï|]õ)ìïÞûŸÀó!]¯¡­ÇP•=ȲG°ÒŸú¿W}VÖeïçf4Ð[!±¨¶ëáï]ØÎ×ÍT߇öÙ9Û¶§š¾@µ^¬tO˜*óÙ9!»ÍjðÓ€¤c`9¯ ^¹‰Õëª è½Ã«¿ý{/ÃÑà"£¡OZ6b¾â”ÍåŒSü^«›·º0#àTv?a|/ q9K%BDdãc¦ X{×¢øÎk?LËãØpuRôØýª^ë³V,<,LÎ×¹\m×_šåç½J2–ÈQFJA“u›¤e6®,̸q‚{7þ’oîô•Íü.g˜ÿBbéºÔ°˜ZÍ™¤Xe„ÁB§f5“ dj?F'ûÊÃFº²S½5Ÿ£º'ô0â';Œ¶pŸøÆíòз§u™Æv°=Mâ†ûë Áß÷¥ŠÈÖPê‰ä{R_7J:£—!¥Q#†ŽÎtyþ29}}>s©ôp|ç+“p—Ï@ aÖŒ’K ÎÌiÌA˜úÇõûV_Ý®ýo3ŒŸ>}òYÊî¯4}w"ÿáv¹ÈËåI=Œµ´ŸÛêD¯Ï½?IHúèÑãª:ÕMã؆øœêlÃmFÀ§§ß=¾ÐA}›y­lqO½ Ê&Ør¬:¸ù§K×A¾°E6lK§hJL!žmÔÕ^‚ ªd‡<óÏœ‚G¿ØÙªšWŸ'ÀÆši{ñqü(+9¹-š{®ÖcdWL· Šö…ˆ‰¯Ô«K€ÍϋǗcøfn¾KiåÚWœ¢èåô±¥-ikP/VÛj³‹Ë‹;EÍ_Ã[<´aóEn¥<@ú7såXCð¥-ÍÔ}¼vÒóêaÓ툾ÿÓ¨Õm9§ÙQ:pÂÛ¸u›¤å1– }F(G—”±1ïcþ³—Xì 2«&#U† š\1s›# RÉx.QÎŒÓSHT³ã÷áJ|D`6b÷ý,%„ÂGÂÝ4¡qèþÃX÷£=^”8¥ôHo£!Æ6§?)ËE{39ÚrÊ0µø±õiP1 2ÄÅŒHKSå1pÄ‚4(@øTÙÈž¶ÂuàåÜ–ÜXìyß)£â]™(r`TBxˆ3õÜÝ2m ”D Þ¼ˆõüÖW|žnfk&ß¾zkk ÔtCƒõr3Ow•žz3GåÌÇ^.™¯¨WG€ï# «9Æ©²k½T1~†¦¯_¾QÕu¿G¬ãæù¡IgtßÈšzw]Q‹1¼s Ùðð$˜ÿ[¦by»(†Ü,èeüØÃ“‘©±{‘xÆäDeVÁÓ,“Xh,Yó4/ƒB˜30C”â‚}ÿé‚ئÖ6y¹Øk›Â›  )Ñ‘-Mœt} -‹Èðpû@ 9­m¾yÒ1»’‰7º‡àÑûgõó.^¾ÛëGB,$ÏS  •Œ3Âñb1Ñ , •S®â¹%oö]é^¶ù¼®Æ·#óÅXûôívQ/@^u]ôû¸Z_%ÚÞÙ·‰hüºº¶õ2",CÄÄ[ħ‹†_ø›Djß3‹ì„é6{? ÛmûÒÞÙ^k]Ùaë‘}·ªöM |_—‡âsŽi·ÏÄS‚¹œA"mîóãg›Ö«½Ø­×åÆ.v1RQÏ´½e˜ÎS”)c”ê”K ¹€Ê˜û^0ö#gΟ±Gß[“ԣ絤‰°‹Ž¯'8"¹Ç!Yß#ICC‹àðt*ÖAÒ21µ¶òÛ I›ýxá÷¿M±ì´3ž‚Ò\æ‚ lák”r¬3^@VH@P‘ 5º_ûïz7Fß®ÕÐ4=@µ²–kµ99«_7fŽÂ±˜u­ÇUun–͋خê™árU”Q”}îž®þÕ“XSgåìõætwµÿ:ý]gÕvÅ…MX·ÜG°K÷µw—|N†æ_ÉZ2>Þ#¶Ÿü+/ªì;6Œéùèà óÕuÍ’–õH„"¦D¢Æ?öšÊe{ÈgÏóñŒ1)@Á@Dgㆊ)Xf–€hMR°0¶7½_)²à4ÑŠ¾µ:* l='~<ïÖÖFäeœ6‹ã±Hû†IÀX¤,ª4ÝIþU‹Ø‹Ç—6Õ¦K¥M‰-²gˆj•ÁŒM&T%2Í)'\å,.5é0Ücùù~…¼Þ+¶ƒÙ‡vå커³}œÝþ®Oÿ6Ä7Ç6gEw³»Ã÷êÍwùX‡[ÅÏT[NÞ•~кám†³ŠMf˜fï¡©Ó)M Ã³Ú=Æ´¾;ÝCÕd…˜@»ãÛCøG/¯{§öCü*ßoŽ»÷RÕÇÈ{iÎþ½Sûyy¶[9ï`/‘ýøªÃz½>üé^oövñ¦ÜÎrë.\~Ôoj±ëv8cy𷘱‡3âpžS™±]³¤e*2cc ©­ª(Ä×,–ÞolpŠq”˜+à š gD1.\"Tˆ°‚Ì m~,âÇâÿÏšbý ù…ë­<&˜c{Ë€û!t×C1¨;´;Nß4œ>*xãBÃúZ]»¤ã3²3fÅtfëèRöAnÞ°WÁ°U\K(QÈ‚å‚0N#e.‘ŠJ!u*Є㪓ü^»é‰:r]4V}Eá]TbSGš1g·ë¸±²T ÁØÝÓÈq9FcápàB¦°ø“T‘¸Ê~o‘HÉ~oÑxÇ8ÅÞ~úá‹ÔޖþrOë=¨ íÕ‡aŽã@ÿ¡G¡þ5æmYÆqQéuü›™È]V¸1Êü= Jôs¢× ë—ànú°çC×_g3~>d3†Sò¸»Œìê¸VIËrÄ•âP𔋯9HqÑf*sKs‹Àg 3a F®0È8išKŒSööžm;nÉw}E?&g–î$²Éž“89Ÿ±cgœÌzŸt@\Z±›t“-Kóõ €d7/`KjK¶4“_ºŠA°î(T‘XT0¡Ð}Ñ)h~ä½3Y³û÷Wã­€?ÕÌ—V3mÆ£„¸wRæç·¿ôùªÉr·8e=¶ªò:*xPÇdD­“Ó,1±’K ÚÍ2”‘ ŒÜa^LAr$/ýßo^;»º™‘Ý¥…ŽLI‚ ˆJˆ˜ BS¡$Äði¥ýG0Àﺪ¿ûÎ}À†h<†ûÂÑõN§í/eti?oWåஸÖW¿@^½ >(p÷Ël®âfس¾€+‹:ø}SZÃÀjR·îŒœ àÁ˼HàÍîtçºÔ×e±µŸozC5€ü¯Ø¬÷[47b•Ÿ¯DYŽ@U¿AÑ·ûƒŽ s6ßËɲ§ë›ê€úoÞYBdÀDÑÇt”-ínˆv³ èxζ€ q%¡Ž‘K¾{[±ö-£’SÞØ !éD¥H”µ%¸€P ˜&iHSKH ¥P»´iLºsvg•[¼÷Û÷¿4íWNL–çÛòDíjlW'Ë.OTfLóÓ/¶]ë– ~ØTØ ƒë®gî%¿ÒÂÜK !ÎS·ý|¦kyÖ#›“> ý°'"Â8™\<œjQÝL¡¹kº0»Šåë"SSL岕uKsŽÞNUôNSèøZ^\Vµ¨¼Ým3_eõÍY—½¯ ¶ág8hR´ñAVrw[4X³P>£ñ‚'ñq;XUµÍ·•keŠO]a“8´y•Ã`d, `b•ˆT3 ‚cH4 †tgy4£F¹h«LºÁﮀ˛ú¢X/þÇÝɺ_ßÛñž*­ù_ÅFåÙúò½¯ÝPx€x?_HìŒ?—£Ì˜gøÚ÷4„ZRê¾w䈩oÿ5øC½¿©j½:{ùÇ«³—¿¾}óË-¼ Ö‘O ‡ýz$-!öf4å I,wÆ¥#ûÄ~˜4TÊ0¨åÆ F.ÕAJRÀ 0ÚËl-é±6ì „cþ)«ÿl‘µ{÷‹_ 9·™´ï·¥¢i²)Öê›t벘š± בó»noO"ñ€Þ}× ì_>îùX$ïçrî­ étœÿ©³:-ŠÚU²c+çjmbîšßR™XïZk³”(…¬«,\êk*µh þ â!,º>ömºõ¨Z¸`ý)[O¡Oð¸Ù]y¨#_*rDÐüª‘ø-:‹¶J_E:/Gž–E~r÷ YcßìØbB{ƒ1‹c@úûËÝS»i†b8S«¬“EŽ©Ênœé"RmOk·»Ü=aCS™2—Ûkd¤Â€k)$H­!ÅùÎOúç…êñœžï^pÞ›K)Ï«ééËøå‹çvΟהÓT.Ÿ`ÊvU­ä_þ2®ñáÃ?½:‡C9¾âÎ]ãgöáÃùhmf.9åÏP ©ß×'r5B÷ô¥äF|Bj³Ôë=ÔIÔ ÐfAÝxz€ÈÖ«WÚ‚,|ÞW{³Íël¥U&Î|ÃìÃJ7ÌÊ#µ‹QÜÏ9ܵ¯йpìÅckšª^ Oln?(´Ù‚’4Mµf !¸U·ZÙ…0Œ&',å*}º÷Í{Mý »Ú¡§xN‚Ü]°,í«îÙA_¾}óβùÌ=äÃIªÙƒïаaŽ·~h¸Ëí›dŒÅ«XOáÛuš Œ¨k‘+±®³í%`LénY‹ì€ n£­ø³¾`ÀŠ>œŠš‰øcõÅŸ½:Ú-]èæÖº²w±cNØñ‹"¯ÜÙæS:#úR`} + ÑœKk]Q)˜K½&Å‚©t)Ö^#µ1Á\µQèÑÏdz»Ú ­½ëåë©Øyùú)ð¯"7S^õâ—P_€ùêÕ*4B¾ú}'`F¨•¨/¦à7b™Éˆñaó¢Øè)îý›éHá†ñbÊí¦j*… ‡ýÐtÆž4Ï®u5Õ Áfô²À™+ µ:nßFÙ¸0Gh†×&aW«)â êÊP¹S¬ë6>™šÙh]ß”z:Ãã´k¾­§ãÞ*r­ë²¹ŽTä¬î {âŸUKæc­oó ´±‹Ad&`2m·¾•üè›^Ë4ºÎ}‡øÑ2YÌ×Íù¢‚ø^–Á,yí´Ò^š "­ KøCFŠzø;«rÙ¯°Ε$–b½Öy5À™<Þ¼«•Bò«L¹Q£Ÿ­2ÀôõfÉVË•ð#øÊY#XiVcH9†l–騽sä9£Å°¿Ç³ cVƒ 4<_‹OÎÊ h2= ›Ì¯jô{]X½‘Étãj«² µ¾ÀÕð—û†ŸiÛý÷âu±öSÀÞYX‹A2°øÜõÑŽò[“€Ã„/bÙQU~—Ö¥–.ô½àVˆ…µÇŠij¤@šSE”°V¦õ¬iê ¾ Ɖ¡î„» ÿÞî¥Ò²µ«È7#Ä6›‚ïï>YÒwÏDZlÈØï#EžOΊ²>³Ÿ 7Ìí/8h 3íäb&ÏÞ¸dã–µýcÑyÍ»¦ÁmBÑâËäßþ—¿âµÏ‘¼™»òêÔ5h\X{Ö®]|ãÄ÷D³ßH ‚A¯Ü…¿:Ú½c(Àn½¿.(Nb¨!õnù»Ìý±v|‡¤Å„) ¡±!@° ŽÛe„ÇäéJƒ‡‘åG‡¤ÏqGiy^Ëü¤,ªziý˜Gþçò<3â;¯ íX–a,¦e‹oÜhÿ_WÀ _Dª!gžÑÈͰRðaý²H6tý \ŽSuö"w YµŒh]س7¯~o¹fD¤ãc1鵿ö×FÝÜBcɘ-\{^|Ì–Ô…ÈÅúzЂZ(XàQ,U‚RBPŒqjG„p*a:ÑB))™|–éEAžë<6‘v¤sWw]¯ÕI÷­†AQó¥{–cƒìXi!}}óãj[ùãIÕÙK7µ³Ÿ ±Qg/Üsö¦d§&t5©íc¶× ÍåÑnrÚÙbÎV8st¡ëbíZ.Z]æ;U‚ƒFÑP RÉ”aB­ FB¨Dg)ªN7x‹†,šå‡'Í¢vÅ]Š–ØSH³ù:rºYñv|§;ÓøÛÏ]‚W熀‰2ù”c/„AÒ‹;7ße?‹mÁ„,?&ÃeðÑ£eå§»C¸çÜBm)qÝmAªˆÁHÅT K[HÆ¥™HiáC±úÅ3¦f¢Ï¿Õ/‚ŽÆoõÏ?m«üeÈù­~k_£y Iö‡òšæ"’ök">uh–+«×}e˜²ðgÖKߪ¬ð]”ƒhg"Ìc³µ¥uã¨Ï_ÓQÙþ*Szv«ž|(QÉÓøô =ò–ãC9tO<Çp¨5:¥1'W€•*¾¯òi‚Û‹ÎwÈY{X2¤rkðxð÷»'ß^ôÑäxø…ŠwÆ# «Ù1?&ÿ½y®r¯yX¢óCƒ0J¨†<¶¯!8Ã4Q©€(V±ë 9P{N#}µ0šG?Ùüî¹ñĦ8å·æk>ÛÄÏæ “fIØúyÇX)™°«ÅéÆü…Â"*Åœ)”(˜"C™Œ‘lpÂIǘÀ4–¦;7Z_E²isöe¬àö=öŠ?%šÜiO8¸÷;»Ï» mC—«©¶¼ÿŽphvW3;ÇjšÜ£í)´»ÐãíFw°™i·Y}÷”íç›…mÀ^Dè9ÿ™¸Ó–Ñ?œEyö.7Öž:˜t->ÕWy3’Óþ.Q&¢ÞÌê›[·ÛÅ(¡ÇÈ>éR”¬ù‚­€2ØŠ; ±J†& ‡q̘¢‰á”M!€»¦=ÿ¶áeU‰2;¿Ü¤tÊxyê+®“F‰2ŒY»lœ&¿†ÞÍq¸Ë&RUyNy_ž?#N”M¡µYAöQóœø‹ÊêbS vn\ßìN^ugÄE^ZmÕ£øix™ô‘Ú‡F»É"#&”-X‚ñq†‡Zfk;:›ŒLÑ Xæ3P2† †8ˆ­Å,5§)åÖ‘‰ÜÝÊí¦lRù3;vW 5’zSWGTžX:µá6«#Ô;EÝÅžÇÿ~;÷ì ±6ƒf­’*Eõ¥ë 3eè'"Ú¤È6EÀšH·.7a²!íá>2çM>ÌRÖ…Xº„™=§.£kg¢Kêò¼Ì®Ó­™ÁgÅ b>Ô•gõØ´¹5¶.V:ºÔ7®Zâýd‡ãW‡TËúÐâÔ—U©óüNq­[Ò=3\’ÒÊœ"Lêå íÞÔh›]¯Äº¡·ÇONl$èô^+}ŠüjJß›iWµ•~Û2Z>í ;Ó2s>k°1‘µÓÛö„q÷H9|¼. ®`žAe)²ÕÉ;¯×ñFû~W²È­2[íRæBúÃb©«z»Ñë-ÿ¦[¥n,Qéâ"«\C‰Ìš.kñI +±¹Ô»jÃûWÛ*“ö½+±läÕå x8Hc¶lä¸Ñ¹½tªìGO·u=êµêE¼¸ëL^ŽB´Îµ²läÏ ç¦Ø¬F¯®Wei_Û²éðý|Q¢æ«´o`û‰Ô$žºª'žÏ*ß²¹:ëdAó³oŽº»±a÷éY¸ àE¢´7×Íÿ·k;í4×¾…«'6›&ñ«®?›Kû%Î^¹›Öõâ£Ïõò¶'c{r]ãöªù«£Ýë‡ZÃ"’î6:ªÂa–uä˜Ôu°µF‰Ï‘ ;‘CA7\Å1ÔIÀâD$,ÕE5”wÈ=Í·ÚŠŸæ¤ÆÐÜy*FÚÕcUHÇO§üNÊq~÷ëKˆÎç Ê¢ 4 uJ³#wu[¥ÎP…ôžÇé¨ó¤G¨?´¤êš^ôùÝ] ”ò®Æ9Ì!o`•ƒ”ë×383Þ‚Õ¶Ôh^N/5ö'°¢.B°ÈÚ‘œ‚áè·ÔõF¬BÐbZ—ƒÃÄu‘95Y¦Ì‰³<”ZiQ\ÎáõµsXçïo†ŸÃ®ôj²nm…›µœC×…š½Õáfg´ue6G87É ëVÙäRoÐϽµGf¾`WáVb˜A¿Ç•"_YÛ9ˆ«¤õ°ÖÕEQÑÁ·õ˜+=Y¢^eÎÜ`õf®'œñI\A×fWÄ¢Ýiõ|ÙבÎÞû$6úì}«ûgçUÑdû‰¢¾‚ìn‰ö"!°ù„ …® à¨$}+V×õæÆÎ+>¥ ”œ¢P `f1&…Æ•¿H $)—ZÅŒ Œá`,ºÖN®]ç¼ýt¢³w×€mÀôÓHÝKÓ|‰U¹gÀ³ýø?4Ÿ?òŸ¿Ï ~ ‰šå˜‰Þá„rˆòF,)e½f ÝÃ{“ tùæ sËÇóCdÝt SÀXs(4JQ‘jÁTbk-RI9 I¬âTÆÝé•Ýj><#<^ï³yÏ$Ìv|FÙ¡˜×ŒÔxÌhÕ3Þm9Oe"/–»ßßM…[st2dÕ[DX{ÏבWn‚‡…A( 0:ªþx÷ õ-"+±žmŒS•…ìß<%‰ÔFcŒO‘föo…_d}ævIpgä¿: !þ<Î÷•ÅÌÇú¤ÏY·I˜Š ?ªxùXßb1Œë"`ŠŽ.¦pEÍOùÛ 7§&V†¤”Â8FŠ1J ´ÏK€Â±Ä±Ò±I±é3sþt±‘)šŠú§<òtÑÖívˆÍ Æáæ>ËþDkuáâÍ¿ëkí-l2¢ÆQ㘣>—k¿›ä”;x̲@ ¸Â½÷çŽËeÔ˜·®–¥/ Ò»†AwESšh¢€`J3—m¤ó”bq’@#“¯ ä)0Í¿áQ‚ËeK%¾Ôª¯ÏNzÄÓïYg‡F§vƒ}ï@U[õ]SÜøp6`xLJ!ˆ{uwwD»ùŠ…%”ÒL("Ç(œÜÕIq=¡]HkÃSêïÉS,¥a*fˆ),!<•Äj’ „ÕFÜhevî·/Èîlñ“&AÂíQFV/¯ôIûÈ.o©yòmÄw&¼…á粘_9íï·ÿ)s~îÄæôˆEe‡Ê|]êÉŸ[ÌÎØµÍ Ô›¯¦ÄÊÒxq¿’b[=Llêó|YæçDQÛµ Àçâ9þðšÛ†  ®ÄEæö‚šÝüÑK¶X0`ëÂ#Óù§ÅºH‹Ð'o1©rŸc2Ú†Û]²ÍB·?M3·’››²öðQ:kþÉiUÀ¿Ó®yÚ|d Mdy—Ňoá¥ZóaÈáÞÝß1òn)*'Ô\äm>`wt^\€=BŠõ•¨fÑå&[[Ñxï}öŠ0xÔ• ?ø`à±\FÚµ Å$MÒ{¾©x­¿G–^0Õà³¢.÷ÊÑ æÊç®ÙmXÒ=tæÙO5—¯fYjðëÛe_Ó—XmÊMáä‚[È‹z•Ge¾§ü9ÆÝ”‘ý&Ap5WåÌ8‡X«±©Ã÷¹¬@kžE»ùúÆ$Ó£E…`¾^Áº3Ý£ÆiæÔuƒN’êÄÀÓÚ/õl¾Ü[c2©ÏÞˆµ}W—IyØã ú6— ðĵÚ»\í Þ,Æ€ˆs¸Àn+Q«{Lsúö6ßK0"!Ñ &Tã„ œ¤0á.3 ­Û&\w³ÆßçÄ)vÔžnEÇþײ2íFc[íØaý·DãS×ÿiÕ[ŸjLóó1è/E©Í‘é[èRŒãå19¦žxß_¿5NC`ŒSš0w†C”"ƦƜ»§Òƒÿ?{OÖÜ8næ»…“J(ã ®Iz«fz&»S™Nzã©Ú¼¹pÑÍXÙ$Ýîί_<ÄÒØòÑöL^º­ ßïøö§‹o/Á” ¿r3—Xq¿“}‘¯Gñ (ÕößpïH5¢E?z§ 8þlÏßùéw+¯ÞÓÙ¥ç÷ßœ¦#õÌÏOÆ«V,…pÅR‚NÉÇØ¶m BHÝ·­a̪åš“Q x1á ®lšaã(a&ÂV!ý‚>-½"<ï;Íô›„ƒÝãºÔen?[=…´cö°\Ö›Q;^?ÅÜôígPÝÇ_ˆÊ‹Ú÷žè¥`‡ÈsØVšq¯ßâÖ‘Oý!û§Òt*É÷³ÿw‰wŒ#úœúG<¶Ï$Ó=ŒP ø6©3‘N1±·I+|ˆ¾jš{ ¯8]ÇŠKm°Õ”a¨3áŒm¨ɰ¢Ž2™‘ÎÂÓ)rÑŽ?ÈG÷]ä˜w¦{.‰öЍ0é•ÈÙÉ&þd»Æmÿÿù?~øöûw?¬oJšÿtÐîÞ,çU£oåµ]÷=°ºñ²¸uZî~~½±¶\’&‹Ý¥Ô—aÚXø%yÔ7eYTífo|û„îWô³|üE±;<^noº½µMRßÊ1•;ø‡\Ùj7ô<êÁaµ;¯)¸¾©½»1 L>|QUn¢M½ÍrœI#ÄEägÊFù“Ý£Iì¤#,ƒ¢¬˜øwtaÜ™Þ4B`*í#"ÍŽ„“ÈLh…7†i Ó4cT"4V)í$:긄ò©Ã>ù^ëgmÐÉWsôî9̶Ø¿{çþY¿/jÿUoÚškÐýí{[_¯}©ñßÍn4Ôžû≼þçv³ÚÖº¨ÜúÆõ¾œ\õÞóŒ6ôUxËÝÌÜa–;{§¸–Eָݕ÷…¹·þ¹ù}†,„³ññ8ÛãiõÍKF§žX¶Óeü¹_G49z,ö§}Ub$2/=)x:²hû’a¥‘´)ÌRŸ6•zB éû™_þšû¤)±Q¢U2R2d%$J@Ë)qL‚)J1Beˆ0ÍuúË£®ä_±«GÌðª*nJiÆüѧì{ÈÛ¶`Œ[ÄWˆ} *ürŒ?8ÔÎ~.e$èäH4Ù±@«RnÝ¢ßûnÞ<¼,6×y“øUFü^íàUÕÕ¥‹FàªÌi7ùîæóCÜ÷Fí—;óG³ç"A«Lĺ˄f÷E±mñü¼•ON•,ª«µê4N–6E¹Ž=ãqМ·‹ê UÜC/°}Ô¯¯tÇ5]Ú)cõq ör`ìBÿý;’Or“›iSÌvR–:›ÔI”XýÍ~ÇShcz~WÛ—u·èZ°íyU ÙwéÞÖN$0BAè?N0÷oÀH ËŠŠKá*S"ŒñY NgUŒA J¹v ‡8}ªëØÕF˜.ˆqb®QŒ£$.7Œ¨¤ˆŠˆ™l˜rý³Ÿïœkä¢àƒ]ðÕ×cG¸`”ùÍ·mŽè=ÃKcÆÝýˆxaÍÈR!âðæŽ”#váŽþWCOð¾N8S·²XXEÆÎ3”8a‰YF ÀZX %pêaGÇ3ñ› ³˜no=Ó‹ï }ã‰ííØaƒ"~Tó’JPйG:Š„Uà¦ûë‡B¢¾è׿ãˆ|Ñï&)gõ;ûE3šfÄ™1„P¨%ɨƖ¹ZH U/ZûÑÉÁL±{Y̘z¹Õl-óçÄlžƒ);¯¡,õñ2:˜²òb’RežÜÁñ¬ãà£Ïi:Æ’Wž3­ä)SE^’i:oZÁ:@D&ˆ²Èf[®¨úà×ñŒÿý·¿¿›G4.*.šjvó~ã!‘Åí÷¿5bžù,t¸J9aSêÚWyµý¸PVÎK5sš$r•TXMÏ„wÊ–³\ûèÝN(‡úS!‹úÎp{mï¿Zu¯u‹lL-4ýø¢«Á=¢üM‚{:áóøŽÆ‡1ÜçÄõÞ˜l2‰ ¾ƒ‰¿Ä|,é—tœO g086‰‹KîýYaÁ±ô6³„2ɱ³^$åZ:^ ”Ô@ œù¥¸ ˜§+ž>fv'x¸z_ÔÀè"Ž¥9[‹p³‹ñ®,kΩ¢Þ«9_б£Z2Ÿ<'ÊjNö läõ8'bü!ÊÆÎ¯@‹âñyƒX7PÊøqÖ0xÆÚEEø÷‚SÄtYš\¿N‡ Ÿv(¨ŸŒÝ’L *i­S–”iš’’b$2¬  ¤rà î{}{šT7;×éÕ§ý²ùs à¹²Iþ·Ám ÎÒô~´në]çØÐŧ«øŸ!»{~h!žƒÅv¶ºŒÌ¿_©h×xKÖƒ­WëÈ Õ¿Ñrê½ÕÝCzíô˜k YEºR¸öˆ§àXˆ÷/«o÷0çÕŸxÒl™W[pxÊÑÞLyšñž„Æø¹×íÜ»gböXè<3`šFx¾{:Y.6¦Bä¸0Fø”ØÂ·ª’6J¬ùšÈ1eBs™f)ïpWX¦RjF•ÎŒT0)1J‡Öê±ÃwãÖ@vßüëmyLßï 9zwïŸü ©{í‰-Y㓲–§ë÷uÂMð@Ö—r÷ålJ_´À¦c2*õ’oCYÇ (‡šBªÛÄŠ™Êr;‡Ô3@ãÄ{»ñ¶Ø}söÙÛ5Ÿ%p¼¤ëûïÿr0IºÛo™›Ãˆ§£$ûñ†%ÃvEªO¦\ðB8MOIr+ÊÆ-†­H<9ƒVªAb Ä"˜i¢(á·¦¦ ³þ¾î™]/ëÍiâ»ç%J^’Ã(²´¹E¸(ÄÇ5³Ä¡È]L¿ƒmÜrZF±ÆÝæ6ÃPŒñßWP oDÂÌøÊ [OÃùΪm1?»D¥ÒÜfJ£…"γ™³$µVD@ε“ÿ,S½ìØ¥xèÑ!tâùë8c>r½wŠÛ¹#ö.x°H!žboë¡èÞIP&ˆ²éIÝý ÚŠH‡¹7C @FÁ a$lj!`ŒsÌä kï¸Äœ%ƒR«ôóÔ:Î/¿*Gmò×â€mq©ƒ|9Ù‹WˆÒô”bî>ŸåRk_Ûá!Žg¸k‘bÆ$b)Űâ€S…4JqÇ©™î/7óöUæîõgã/MÚÓÙk«š‹Ñ!æ§þ$wW7^…>»’;³zû‡?tHúÝÅ÷ƒfºÄƒyb*…Œ0³} Ù/-Öh95—!rf:¢Y…>{îõ>}&Æß@gšb¤Ž› ¡¥bR9±µ4ÌX _.j>ŽÕ}?ûö5Ñ@*Óõxà³¢&^*?~§^ï/⮪?®Ö{"X¢Üœ 7ÛO$“ÅE4UÿäJ zJ¨½…ÛçÐešòŒÔ¦ÔÜ¢Œ‘BY“jR\«-µÔ‰*!·PC*§‰+Ëì–|现útæÎÑçnnÊQÑUeË3“gÙ8¨Èv 0òöú¬+Jãfy{ºUhóSCZbûW©+{V”v·1²D])÷³mtvu÷ì°gmOÿ4yçG™zq¼¾{’:›«¹òzضQž%/ôG‰/ÀCþ9]E£µ$fqöƒW›BÉX¼d7¾•u»ˆÆóÍÑñfsäåñb×ëhà‡ÝdóÆ«mß?”ð?|âÄ\½mÊK#í¶Ø¹íÒÍ¥ÿj ÐçgÐF—sÂ}•dÐKº7­¬óšešïò&$ø…ñq& ß·îó>Ws156´.e%wEÞר˜<Ð~8ÿéÇ·?üíâ‡)ðçŸ..£Rk‡S˜*nvÚ®u¶66“7›f:¬Ý vm§ñ1Ø|ÙÉm®·²¬Ý£Ó±+_á)×Sà+­.õ«¯g+ØÊ|·ø’_ÔV^[7P¯‹›ÅH@ˆù·yºtÜæ²ßYïÈ\ç»é$ÿß½}9â1"+ˆÕºÊËÙb*»‘_œb«¦^ŒZ†"c°ç“—¥¬ëÛù@¸w¿î?îü+r9ô·w´~©Ÿ6®€tÝ}‘ßÈq5“ÂU.ëÌmì~ådª¢œ†¥ë\_Ï@îÜ– «d+çßýñÆÞج¾)ûÒ2öqû±Lêâ¦Ò㙑 ñG—ÔN@,`íÃã«¡áqû9ß¾êÂ\¼òƒŸ~~áÝV½«èÇïÞÍ ¶ì‘©ê?Oû剉1â©eàž‘ûq LÓMfàD«Ü‰ëúãfÆz¨ Ö:› f@:.%½ãœHÄ•q& Ò +4%ê? À‹à¡%ÑôÓ|ýS­Þƒ¬.¯†}UײÌ/¯+E†@Å9ìw#À%º|÷ãσÆ~¹×æ÷>… ȯü¥}ñ> á?óhEôÎÝG ìëqX̷߸ôåÚDm|lëâÄõ¦%¯P¸æ Ÿã{ÙH0XŸ¿ ºq½÷ð­pòv#o&\¥}ˈnç©Èò‰¯o¹®dXU,}%e©÷IûR’f2Ã2Y„½8nÆM& ¥‚@Å”$˜ ‹"™¥™ÒK 2÷m31B~‹7ÛSÎs|h9Gü L#{æ|éèà’iͼ —<±¨ÄIN>.£V—æávù«Aâ{»zÇTøÞa\™3Ö3úÖÀרSq[¶PãKsÛa=1u!BW„c&Nâ³·¶*5öá÷È)jñË?€E¦LÝ2-D4µiR(2±àˆ!Ehñ¬Þ–Ç`—OZûóåúžöXàïQð`|ÃÒ /@4L1­pùÇp>ÐÂß×+¾¢ßžº’aaK" )à+ÆèIU,ý÷»MnÃ}#Q·ŠX \æ"# ³PeB#.¤U(@ Í|C±¥ðYr¾˜àú4JBã=þ™d´ÒHì-vÈ ¥)§´$òoiвMŽu\.&iu¦xH-ã aÇn,ÓÇÆ2™Z$±O¤O×`â…0™ÏÔ²õíL…{]èïûM8n/Ôæ‚ÖF¿ØåMQ廫ãÅ£—Ø4—¯ÄÙæSwó“a9ü†¢ò)Œäü.Ë•·ÁÈú*„ÚFK²4ƒÆLK!t(¸„2ιÓ|4áOfûÕÑûdCû„kú“*¼êp'yÇ ¼;Ü\ŸÒ÷ùÕû6ß9ÍgÚÞ7Ü`£fz]믤ÊʽºY€o‹Êdf .ËB6Ûlñµ•4²iª9,i—Peåf;ƒ–‰ÿÒéeóm¾s|j±œp_ÛQøþζ«ÔZö׳ey®?È2©­®ìpcç Y¸Eвi+îö€2öXi'…Ó× ¿_1°“*òÍøÊÉýŽÉXYšÙÇi’ökM^ëâ“­¾LGêF6õaOÃèêèýû÷7ßG/yï¼V ådËV¶á9ÃAFêbÀhºâÌ™i§˜[î >’Ä£¶²ãk±†4ƒ‘2Øj†$ÐX0'0H#hJ±€Â2¢œÀ }‡‘"þf Nöû;§ÒýÆ¿Ùo½ù÷Ľƒu²è—§_ŒÙÎNzŽƒŒŽ£ŠG M&ËŒÔ=eˆ¬|S¸S±ñ:k‹ÒðXO7F6©vjµÒ‡‡\1Í,•Øb`J¨Ó‹ž¨×Ô^'ô½ŸÑ·õkÊáàß´Gï•^¾;ë–Ù·ÐfèYӱ릜}ô•Æ·r7ŸUÛæ¦¼e]XgÔ8Øq½~†¯‹–Qœ”z¿¬ý/Œ8Ì@b1ƒ§iôMiÜ2J­[Óhz<ä6ãÊÑÁY !ÑL± ÃpTÅï‘)jpa$üó”|ý m¥žƒüî³Û/±ŸAÀ¿dS\Ý6Û™"0óM‹›‰ÇÍiø ÞSvžµo§CHÙŒ’uSmf 1±Wº…³¯0qZU¬„PJë¾)#¨ã'\ ˜Ã0L­ i2Àõ˵Ü_e^X8˜€çI{4#…ÁÝÕƒÔãÝü ]ÆÈ¨¤x˜ìßñ@ü“ô”ø2¼)Í xQÇQ¼X)WTDøŠ¤2eÈ’eHi•æ2“”Kl¨´§È]»3µ¹öM(Ÿ¼¹ô2•äk*~N“¹´U¤7µýÜ l^¬éÉdÎsmþ=I®EKkáÆb¶¢Ä#ÌÚÈ|óå¼v–ËÚØ¤mž˜tÏLd*Šf½ÿ…£+«Í—Ïf;ÖMQFgßʼɊj×û5ÚW ûçÉÝîŸçà¿~°›RÛ—=³¡¿—v÷÷,ËûîG®Ìümç¾2Ô™µ]Ë›¦è‚M†}é>å»&QCPoH )˺›åó Fda‘ò1ÂÈdzŒ¡•u_†Æå\Ú¯ˆ€KYÙËaý@{nSx«¸SÓRˆ–ÁúÎ ëK–6쎛·ó“=¦Ek½7~ʼn7DOa²ù§âó—@ ážÆÜòÆBŒ¨Âi¡ᩳ‚Uf“÷¥\(¹eCfí½ôÊ»$9¯*ßI)0ågî÷lÉ}w¿ýŠ–øgÁ9hHÐþ…µûÆ®=èâùÑä™1â^#ÿ—:û×ÍîZÝ„üäžâÞt4ç-óÎQÞíÕvƒ›¼.eãøÏÐR÷È„óî]SÁ3¤µé™v÷aoð, Îä9 ë-¡¶‘ælÆ 4IÿgÕ¹ûü ‘›i­ÈFL5<Œ¶?RIH‘Ó_)§¸·«BûÂd+ßJ‡óh¸2ÍœmD²f)§H)˜”Ëü>„žå¡x"‹éñÕË£¬íq¯ý—q¸±>Õ‘«Ò×cáÕß Gµ©}+ä·œÙÇ“€]g³)#§»‡ÔNÚäuóЂrÏÓQñ£nzÒ¯6Ö¢Ô‡ÏS¼îû}*•Û_äÕ*°&1r2Ë$bH ©F<3ŠPGwÔ*¢‡‚@B2Ä罦¶ùÖîtaì(e¹û$uÛUäW¯qüZkŠô¸ó&`OÒbÏþ€aµÏ ôåÈgjqøqs;%ºðÔ]Öi:.XŸí6á5ÄÆ×gb¿iQ; ¨Ýþ„²^úv|¢wÓg…‡¿GYàŸóm¼GÄ÷<öÌ£M.îØOedžÆî?^ç›qQۉߤ¼5£|ðz:µÞHÕ£Ùõ.×£5SgÈdê§í”Ù*íÞz»c¢ô»m+úwT3ŽÅ±,YËâT>áweŒÎ+¢êß.uE┢L5n3«VžŒ;‰9ª…æ†ùìÉ1ç&RXá´ûŒCR"‡vÏš›õu®7‡{ˆ;ùåæ°ù…{”yÓ"¶úö®­Çq[I¿÷¯ðcyxÑu7³@2ÉÌ$ƒtÌÙƒ7¹uZ¶|,¹»'¿þÔÅ$EÙÝî˸“ q«Š’(²ªø±HV™Û%ÿ¦à¢ Vwîgà’¡lK°”u ªÚa©ÍfšßºKn^’î ÃØ6,P†k¯˜‰h=¡¬}0RKœ GýÁþó=³‚ÈYAšÁäRRntN™Tå”ñ-Z¦1 BDD"HŠ2&G𤠢€Æ0b¡>9<(åóz•d™dY°ë>¥Ê#z<Š8pV§Ò«ð®[²íˆqñI÷ããR°‘çoòë{ál³(¥*aQÖyÝZŽuÑÿðÁÇ™‹¥iBÚç˜*­`Õ-ÙŠ7ŸÔYáñÚïXcÜÅ „Cc^ß–öŸà›I„aÏpš(Ü J¼*j6ChÏ"äÝ`DxŽÄ\Ž¢(MæYÌHErvi 0Ž1‘ï)óˆ3Ü£ðµ&’Q Éww/åö?Ÿ›BÎ*NU'Šoµ0J[“«U‰‹QñP•Ü)²â:禪66Ì××ó;ã£s5gtø'ŠŒÃµºt0|šg£`–&ÉL… ONÒ㦼hdw„ÑD"8ÏåIžQ²0&9 qNE’ÎÒE$ q¿É{y¥";é``:£ÈKGähGê6…‹=à=é~Âyž“Rå<<'NY5]È?'?W××ãqýY³åL9Õ)yÞó $øö¦T]àY¼ÕÌ•!ž>¾l.Ëßuƒö¾Õúë¤é阊»<-×LŒvGÄfV…®xÐ×ÊnaR•'è”Ü u;±ÙÀDN²yä; €X†óT¹0Ä!I3†RHR.äÌB-èqŒ"ýÊ‚^p{¦ü ¯ê=g”Œ¯2î·“RÙÛýßRæåUÐö½±ÍhSçya¸ÁÄÚ™%ncw‘¬0/ëíÆ&å+‡°"Ì¡lj)Õ#ÚÆ¡¨Á ‡Ø¸¥nó[—2*b•XІäFj¬bÍÊÖ—mjZU׿õJl—†YïLod-o/þ´ H<)Xc³õUuË®ÈúÆd¤º. !61ÐÐù]w{PPšÀh†Â,;iCks5SÑ!’È»(‚#À2¢SiC2'˜„q$pKj‚Ó”bñÚ„/mTÎ{4o®4Š2G\))o[Y ´¬jÒ\]½“zÆ•ÅÑ >2ƒþÉw•ñLóC”¤pF(ŽOÉ:·+kAv¼¨´ó"Ù–¾)‚€œÊy>Ì2BÈ3KmI9E4WºŒrÊ#ÅÔȵ©ž¬æ›açkèbsËÍäϹ]”5éÃ[[êBêj§O;àÙ¤ÿáòû…¬ó1þl™¥3d§e¤º.Äè½’u-¾¸äsPè1/±xeáÖz*a±¦ûZý”ÉoçAö®|±Ò‹JWëµ½¶¨Êb=êŠbCبhÙ´õÁ¾™Øý'gUQ@¶üáWµ¿ed]®E3¦n¥^r¾1ú]†#ÆI·US±ª <}<ðD/ù~öUÓŒ#ß÷Ì5‘ˆaÔ».V›rÌVn²ò7WË‘³¡v0UªTrÍm£ï­‰úŽ­ÚË9ž{¯¹Ú¶2~ŽÚ&š.Âè‰-³Ö1ª'˜¾ö©7BÜñÚ³ Ní>sohÈRr$²s·ÛQ ‘üÏmì:ØO7ÚÑ÷ô§°MÏn;þ*fÀ§šÏ¢eÑ¥.®–?Ò~š©cÛûÙ·äK=y·ü¸`hL7‰¯Ìn­O%ø yÉÕŠº²:°Öu%ÛáeÄîr[¨ì‰Ôç¦ÚzÄE#ü wüÞV4ƒ6m eüvíì™.¸)•<Öªn±©†íÊMu D5@©Öњ؅¦êQ96L‹ájdzÆêšò@ÜȾð±[ýÞ¿Þßún©‰/q‹M}ËzW–“_R9ÁW:ò¦ØˆÉ{Z椪³ì¨È)JN(EQÂU>\JI@š‡1ÁC" û±¬ôÀòx`÷gò^œâ´ñÊ>}wýתZ{|{޳‹É¶Õvpô×ܺh [»^í}7¼É³ökª C)ÄYg…§œÎÙ¿°3š´Ü‰¦ªš«#Î>.õ’4É™`òŒæ"bQC•Ý¥!@">®CO¸ê?Ô}ì¤yÁ³Oâøò{¶|ù0^Ê«ñjÖ {An|¹+VEóebì˼eU<ü¯iÜÊ4 *ºO2Ã8§œ½t©°Ï‘QCaŒMcÒ8€‹$¥1ÉÓ”SóD°0¿Ç¨ú„á×ß~(TDø‘vœ‹=бîáXÿ½6AuBû1á=ŒÅó„Ñ×FÅϼ·{Ü aÒ+þ’~ÛÓœ´~êk3˜Z¼ŽXÊÖ¼+ÙêÊAØ”ÁX¢ } Y[vØ@ò˜ƒ(<8˜¦ £!‘¶‡G<Ž`DqN£—…LO²åÑoT‹,Ÿª£LB2a”¢éˆÎiÉz*§êyXã"9ÏŸA¡'Ѹ;ÌQÒ,æ .…Q–…˜cŽâŒÆ˜g)¡Y̨¬ÍË*Üûw?Eÿòã˜öÂ1ñå7„§)¿O¿¬ô<…úO¯»Hi‘-ýHr·ˆù mÈÃ>k¯6e9ÅÛ´ûö¦ØwµÌÕ«˜¯À^©¯98…Š¢8SOÊŒ:zÝŸb[ŸE!ΤX$BÃ(ÍaÌ G”0J+Üe,¢/j³È ¹*öË£ŽªwÜj¥|äÜ‘0ž—eú[!éNq$uÈ„q°Ï^þW`†O;l”×5B0yœƒ¥Ý}Ð&àLà„Ç”JÛ â A–Æ1È"Æò–äœæŒ2wc%Ø›S”Ã19 ÛêÖ{C°"ź¬ªvT€g32Æ®ÌǤÏd7iVNwö<‘#èëùy}eð-Ž¬á„‘lÉŸþøpùÓ´“åáÐo-&ù¶Ìívzˆsÿ£Áüƒä¼Vs>²%þ•± †f]®¸uiF¶Ù¨- æåfˆ·ß^o3/»Å|ë-QдÎÍηGIY÷4)˜áÇ'e­é¶5êH8Ò~‡s_x ÎF˜' Ê) Ç8Ò”‡<Ó$Ž9 ^^H5-ë~W7„…JÝs±!«nøªïnõå#nY1ÔÏÇ2:r¯³ú錹N&ø ‹~dËzIÅD²û’“Ÿãu¡3ÛSå˹|÷£›ÐëyˆO™‚¬êÔº÷FƒÓÝýñýå;÷Sù ý¡£ômin?nÜwwCºF4Iÿüî·~ú]¶8m\8¬³ç©§|ê+«Ûî§µ«Z”«å¢þRËŸq‡¸<)~ýyqùÏKõãÈ€[xLÚÏ9¤\étd·NâÃÞ·á` Ìq»7«ÛÀõ¦½Ë¦ á¬ÀqÝãûØÌR_=a²BÅzÎUBd#¯"»"Kaòµ}­zÜHÄhÔ¥¥lǤ®Ù ŠUÝý¶zóJÕp©"ShjßTûÜ:ZLÛêî/Ue÷WV„ÿ»M±5@Á²¯fOX‹ÛåÖB6ë꥕»Ñd;ñÄG¤yY1Rº .F$9FZ¤ »v®u|“²[;´Í­u“¼tù£[¶l/;{â˜4¢ÞQF¨èö÷uµµ™*®r]xyv»ÜË­u¹¹µöP±ÍΫúž=T?(K7›Ì”Ü©!2£u7{Uöì*Dò.0ƒIÃä”°·K±Vç/UDo:¥8ã"É“8%PÓ0‹Ã˜Æ EÒ€ ÎTl”ô/ü¯F@÷®>¿«òUš9™VäZ¸FIŸ>å~¿¬€Ž@¹ÇyA–™". Cí<â ¢Ïâá“d[¶”Î:®Ãñ#ùãs9e8 yŒcaN£LþŠ(CdI"²€’0ÿGÝ•;èÇ:Õè\>ëÉÝsP³§ŸÈqœx|4'Å)z¢ÉÍ‘ØFÏí {D¢ôšÔ%òLY¦&!_%èRvšÑ>ß0 Ú¨ § Ô‘‡TÕµC¹ K}vb±¹mIãåèÖ­ “ñ——Oó3Zsû¶7¸Akpí(̧UÞµ>8á%>þúï?|ø~öé>¼7“ÿÿôËåO³o>~úðæ—O¾F'ÏàºÒ¢8ŽŒ!ªÔ»Íoò¤¾Â&Ù §0NNŠû…] v-¶30OU2]•}õr'§«õ›Oú£:©ÿáòÇÞ•d§&­„û$ÉÍB”âí%¼¿#Ø×ÍXÇœ%Qƒ“\÷…쪶E…s_ø2#*á!¥TäqžÒ4b*éi˜QáH’àcA¿Jv£7u9×J åãèŸh 4žl¡'‚b6ωһïÚ“§>ä¾£A8ܱêÉ"§(ê¢=rt¯EÉÃ@­ V{« ÙÑjOsC? ÷õ×-:ÀŽð.ЂV÷ßeÑϦôIDwJZðò¹¢jŸ¯ãxA‹Ú=ʾ 5çÔ!}i„àl¢Ê÷Äê[{ÉW×^rQW äåýkã%_o½äæÖ%—*Xž†k‡Qß8šÝ-¤i ù™NkˆR¨qN‡¶jÍÛm’|·fMU•ÎïH}UN›^ ²ù·Cªšúªr*ð¯ºrZX{Ú”õf[Ùç«]Ùªët‹yx*ó‡¥b½´™[²æ•²cÑÆØphƒ^šÄºtã@ºÙØ1,·‚\K±·ˆd»%övZ½zìl¶”*GjVØÏkG´ý5ûT°k§áØe£âD¿ÿÕ¦®Hcï¥êŒ=E%¿mŠ•ý¸Öžï¯s¶nìæÈwÍn+tWÈpDu¹µ¿J6îv,NGìèzw§[hÂý¤ÕÊÙx¶.ìUu§²ÕO΃¼×±l좆A7‰žPmœK›´qV¤9>¬?íI²ÁVEeƨ“vëBi„ì@bÑÿtu´ƒ†o[phpØ'þ¬ôžÞa¨9Ö\ÎÀЗ:”À¡¦Â&ã; ×|øm¿z³j6|¾ùbOnu¹`]µCtÝP?- #דZݶ&¸÷€ýŸ!|óñýïâAkïÇêhäïëW­í‰Vœ…Y*'!œ&à”pí[0’}lÔÍk4W™O@š#”³<‰Qb˜qFbYŽ9‹3“X¶ã³¬0 |s=€øP0ô%äö’±Úûý”ŸÀð^ðîEí6.Ÿ@éÀÎ-LnÀn^\m8îCá{¤íÁÜÀÄá›Û‹¶ÁKObëqQçÍ~Ö!&òŽ.#pîbrŠ[XÛ¼·_ϪÕ/ïa²‰ŽmPlca¶‘¯ xmœëÂÛÕ`ÖŰ.t5« TM|º‡¥&@¨= ÈéAš>€iàJNš(²f´ ¢‰`hàAvèÏ}Ö Þ€ìL@×Ḡm&çÁnd³Ú„ Ù¸¬‡c= ëÀ—‰¹¨µGX&°2ñÔFõèiM{¬d@¤9€¨ÇAÖ@i‚ ä¡ÞÀ#°`Z9ŠP\X ëa€_ŒeŒ˜…³€$D';FŠm5ƒ²ûBù/öÊÆsF9$€æ\¤ƒ`.(âñ8â‚9çëï~ïží…Sm6·=`+_ú¢owщÓÛV )P=:¿Ü-t¾l® ¾[‰mÁ.Í÷hY¿ÄdkÙxŸöß{õÉ/÷ÎúLA˜¸j©ï †Oó$HB &гät´Þ¾…«F8¨—Tm c ‰ÈR$AzFQräLÐP­R÷[&|ta¼«/Ð^¼¸t ìñôÁX˜_…˜êÊÖ$ £YÃGHªlùâÏv=~ä(¥·ù•r(â$ eCÅLP‘%!eê;’(¡r<Éï™–¯}±iN”U6js޶|ØQ³`|D¨œ:ƒ¦>]õaúÌÉJ¢C~D›ØÏ^uù,ÑÖVÞã¹CZOН‡­FOÍG+Óa„< BÚÉ´Û(‡O‘ŒèX¨p|«·1ïV¾½3wuéYF{ÔzÉ1y>Ci}Õd¬¢6N‚i;º›ÔþÃÔÞ÷»ðw݃=ûPæþC6dÑì÷¢LlŒÀ·H ' ‹r¹)'6i®¥ôøÐiµ®hå{EÇ!ꤹö£«"¡§È®øÊ |ëï¥ÿTJ^­›ýBƒíÒÏ·B¨}DãŠH|p­Ã¸úsðëŦ¸£»|‚_TŒÉÉ”FùºB3Yßz’íïDͺÉý·œ§A*èt«ùBÊé`å_Íê×á§øyƒ&¸ÕÆþÏùx’üçuµ¼t†î{ µ]±½ÏZ=$)Õ²WƃQr C+ÆtùTO%†þ] ù¯½IgŸÀ°F¹·Ý8¨qîñ›l<HÝ³Ó ŠFËV½±ªåÃÇ)Ž2uÈdé)¡>þÃÞ³-¹­ùî¯Ð{¢YÜ/•ÌCÖÎzSqNìµS9o,ef¨Ë”gÆ_¿II$j$f,_ªŽ­ €@w£»Ñ—þH›à¾ã^CaA€€ˆgC•Ò$æ3 UL2 ã6UÉð¸,qOøåºâ.ÿÅâáÆ·)ƒdB˜|*"êûºTöJk<ò ³.B£”¥"ÖqƱH[ ŠchtE% Ž¡­™B0 àâ¡rè|ù5/ 5½_¥-%ZB .‘w-œ6 ¯—•é*_Ì_O§¼×¿Å^ï5NÄ;¾ŒŒ1êxöh™ßË&[­ÿÂ^~,·Ð˜l߸Po;MOΨo…Tþ?°:±?,þL%Öt;OTZT^l…Ëát÷è3jŠ[TróUu[Œµ½°Täµ+ÿº‘iü\Ï‹àˆõMµj«ª<®P¤?X•ÄwŸMõÊïç*èš·*EZùÀÅ V┺ф\¡ò?G&fMß›‚­¾ÿâtw†øm‡f™/F½W‰ok¯vìO­¨Ëž¤mÌi+`¾2üs¨d¶”Œ\ ‘ õ<Ö© ßÐvo¡uÒžÝ;ÿ!OÅ7$üº³;Öwåð4ùJÞ^Ê|PXGèÖw0ó€išÎÀD`àéQPÿFv²ôŠ˜¿B·–’j#¤96zI‚9aš3.€Àg©Qv2 £=\î­å93á.`ÝðyòiûDSßø|ÏRé’0å8ÞÌMÓi }H»i¾}mdQ׋ü>ÈØ6¤zÝ«ÍòÙ÷9Ú`‡óì2ÛžÝô`þµÀcëÞ›îfpB‚Œq9–µ@þd–¶µÄíalÁ2„9@’+„ˆqŠIF‰B@AÅd£0ÇøáîÄ+»•è—.°üd½4lÜXãÆq „AΟ€õ!j]XCncD)BZaR cˆ¸F)J %Pp ¤”1I7j,¶µ¼PXC°Õ?ìOx™ù­Ìxí/ËÌè½g›³G¥ºÑ¹ ¸kß3\Õ]âæqHvÏo,}geá/ëÛº-°°ø²×¼ôíM2'FžÉ^aðç%Åš=ñlZ{XW¼ðrݦ#³añE9¿üqÕ>+ô¬ÊÜÑóš=ò!£Aø–Ó^w¼Ö:þ‹³Ÿ8+w£’%ä¾{žAàÞ”Bg ‘Xˆ %Œ ö¤sf'óì9m¨L3Hˆ9g€Î2(%F(¢¤ç,áH§8¦Ðs6Ú®mø¬Ä_XÔ¢°Ûø!ò÷uóH_/pšR=_^ ­l…²=Cx‚¥‘ÜñSèeVèûº‘xÀ„ð+Š\à *š0¢¤$0‹5§ §Jˆ5H2ÆSeä·pÖõÚ¿ý~Y¿+#½}ç oßýË>±¸ìßÅŠm½·ýÔÔ,ž9¶ªÚ¹¼²ÕÁ´á–ÏoO±hç A@ÂÐAÒâeo¶‹“dÀœ$•§ÚK‹&=Û—\ßM¬¶gC7P( 0ÃIEW"e Ä‚YU`l=Lú‚×V¿@ƒéÊ…/‰Çîì…õàËa¤ß€C°Åí_·ÔoC±ŽøÝ0B0(Ú¸ŸÁ¸|¥.À¸ÓM/À mÝ¡ $BœTìn'¾Y$³«WÜ,iˆ 2¨@T!°&£rEXýWã”QÍ’8;ö.ñ‚Çöp†Çˆß¬Ú·$ÀoLeÍçoƒì±`!º˺'§dKnmH™Ó៻03ªÈcº­á."äÇ of´oÈ$°˜ ,ÈéÁ÷ŸëzÕ\ ˜]hxD(ß¹Œ¨2&3hÌB…b -2#Â)Q)C—{—ÿSAîÖ^·›k #ÇJß¡˜ÉÎxQõLzWh›×¦ÛÙ„ª#Æ b3(OÇé›Tc³röbkÂÍß t¦pŠIl†Ip¢˜ i–1€9HˆŒ…Ž‘ÆÚ4, Ö·µÝmÓ'¿"¯Ì8¶Týà´u e‘6g§¦:Uœ1ëvÂŒü™É„¤ŠÑ4ÑšJu–¤1¤›¤KCz¶SÔEӴĆÏK£ß[*Î3Uß_Î;i;!‘gqdåì_†ó€áÜîIˆm5$×hS´ùX ½Ëøf9Wùâ“ÿ)µ¶©‚†ÌÇ%l/#"žÚ…ßÌ+”ýŠ1€'qÂØé<ç~n@“³Â`Æ^­ÓTˆ6š§J©T¤)×Äh¥Fx7 ,>£ö¹z0³ºDÖq8[Ñ›ÔÜg8‰%¼X>ðï]žÓ^ÐÖ°—gCH e8êry³³ K)×-­Ø4ÚðXV,¾$B—?à€™Ø¾3ÝM&” a†ð29e§;]tn£dmg_ñP…"ÁD2[gA%ÃÈ$Æ,(„ÏÉ%.?.Z]0ú‚’–]ҮŠþï··ÃËsƒÚ+§Œ­­_–9`³¬¶9.‡†eAQÑFúïàM…5¿“V©™µìÒ`²œPó79Mr™¡1cPpM)7²K¢$³EÈJ ás"°:#Kjïý…W<ñ¼VD×G²8ÂÉëCc0Ä¡^^/²W¬æ°³IZuRˆ¦„ézã*NúöÝ_opí“ ˆ¢|‘×Q9 aø§¥ãƤªç21.ÌÙ’›Nñën‹gF•µà*‡%·íó|1WC»[¼Î2]F¥ž¹)¹šA¢ZÅnar[Q¥ÐiôE—µ¾|FŸ4Õ¤uä²6-_–6í…7Ö²Ló…™u”•jî¸zˆÌH¶Äå°a]Ý,ðT×*/‚¯¤¥º³Õ>gzS„txÌÞ2W«(6‡¢[„} Ä ™`(Îý4Úzh<ù2$kh9䬪gˆ¤1Œa¢Eªã„Çiš!œIÖdÆL“³œÙ´m¿×MÏß7­½xššÍê=b˜<˜´ƒyËn­™ û=nA¾&õV.Læ;œœ6Ø> õ÷¥ÙN›°Ò¨ ÿÕÔåyŒÀû¨Þ#!÷²ÁÐwðµïMw“ äd–À:"aNâӉܦŸmóV`ËÂÑÐY µB€H ”0ÿŠ8 M‘”Ç ]ö]ÃßÞ¼ÍO;Þo‰øé;¡Ÿ'ûÃïág³Ä˜¢þ§2Ä5hä !u)`°=–OM­0&(x”ꆋS&<‡ªæ­ioRlÚ˜SlË=Ê'$Ô^©¹arô ˜ee!W*Œ©‚@‰µN…ẨÌHåó$¦\j3xÁ òÎ X D‡UcýòbÍ: yãý_þÁ¡+°iެ!*øb¯¥{ûûøÚëâej_ÒÎéjVî•ùÓ²þ­[d¿nÑ}jÑ}àfÙ¾ÿdwÊ?¹:ý)¥à «F4ùâÞ`^™î>" `Ž‚'Btº±zˆ‹µþj¦©õ i™°É» ‘ƒ’D+ €‚)Çq†!W«„$F’ú¢9ƒýÊz¹l.˜›±ÔF~9-œ#œ¨ÁØWQK}ÐáõuƒÙÖeÙ©ÙÖvr$Ø+x¤äZäA^R÷Òt3Ë›átbƒÚÄéIrW3³êF,M.›P ÂŒ2jè™)Mb¥pFx*(ϲ,¥ HŽÓ^4™4Z„ öÌ4DÍõÕxó<¿×åxs]„Ù]^©üg¥›œÌq­I¹¾¿ÿí-DÑÂÇ/uD9IÓAãLe}€*{{åÞBl×eæ·Ú0¾! ¹åX•Ë{çr=-]ÿ’ls?¼¹HójU8ÃÚ+ÐÀ0DçZ%³÷Ô>téò®|‹iÝjvÀÿ,ª:wÉn´{åë\‚5têC¢ùºÊ‡Æ£ùrí,äò‹.ÝÏnnWjîMXy¸«’Òq h¶Ôñ°°bé|h;¾ #¼~Ýòð^‚†mR‹tgŽòŽ ÷H£øbkóÒt;OÿH#H0,ŒJ+©§Ë®·U’/j[—ÉýZ9\¨i b¢±QhÍ™F$Òžq”@yj§Ûû2ìÆÖËZ,…Ÿ9BèyK=}¨_cK?ÔoC¡¢‡'4­ÖtIE™Îbõ;µòè ±Ã!càÈÁ=ÿº%ƒ@DðúàÙ"c‹Ÿ<¸âƒÙŠóîqªë†WM^u€òuãðú8D 3D/É^i¿Ý›ÓÝôB;5=B£+PyzÕmÝå,°'K(a¥@ akI²LJ%8I¹QORHYbΊ™­%MÓÓt‘i•¯ZÖΟ…-¿T†É0ß y$¿ 6¼EùFœñ¥e${Àí:á`œßÖrû¡žlÓ•ÜéÛ:Pß÷¶vœ oë…®ï–å­nÝç|_åÛÚÉp[ßσ©"owÓ´b,íGëUj8o´ ä?›àípH÷&‰.<^O{Sðn¢¬©Á8~ ÷&­Tlƒwƒé†S”PŠÂfÞBKMÍð©&&@Æ@PaØyǽۂŒÓÝ‘®ÞUi1ëKžÌð?Ô©ª¼ÑÑ_o‹|º²ûëwkë!l÷ßè*Ÿ-Z!ù UàCý¿ºX…à¿m‰Îkú§Ù€öûÝ–I™¯‚óñ6 Æ€¿ÌBàO­£´ÿ·Žÿž[~%¿iÀïUmh­ gû¥ëÄ+¨úÝkVÕ›ü¥`½¤‚5z¬Ó¿v³ øaüÖ‘ ¶\°ú- uôx_¸e{ #Ÿl˜]òÉ 鱸>ð÷¹Û×±õœ°tC&]˦ÒI7ƒ¢le’GÜ9ºÖFmõ2Ã:„§«âyךW¦»Ù®Å)µµÐ¬;àô •%+UÛZ²º´Wz濱›3² .c.)IE‚1§Y’¥s$ÎDFôç£<ÇqžÃÄiãV»š§q³õ³üÏÄÿ¢-N†({‡°×”ÝŸÉyÔÌÈÍaO§ AxUQ$ .Ínßœöæå“.ã‚!fkOwv«š`æ˜ M$C\I”¨”k›8L"SñD%‰'œeœ‰ìDûÒe`Í„õÃmµ“³JîчÐþLÒxq‚xnàí+Ón:t‹ÌydpùtuÛê¿òÛG ?Sœ(ÊU,Ö,Æ’è„i²¡Z*s^,2ŸûøÑÁ‰’úOE}ƒ‡M¾štf+ˆ±ˆhZžXVÅ¡Ì!x®“ØÏ¿b^™î¦0†IÊšØÌÐHžLšMy0c[ÿî*™Á”‚q–‘ŒeYf4| a’ 3y’Âƈ€apcÃàL¯ß.¥ä¿û„†BÖ˜1ä9¥Æ='¿U®’KÎïh%ªo:„2ÿÊ6,ßt°iÚ–:ìÚ^m ‘zW7Ñàä´ÁtÇód7V¨ã#]RöÒróNhŠ™ËšÂ•ÛytE „URžî‰RßÙ¼éDØÀj›³.¤&®‘ÂLJJb”j¦ LE&Éc€b•i€µùçÐ åër¥›…´NENÔëP0êy¿_â™ÈÒôt#%:›ï—ób«`&Ѻ,T94NEzµ,‚WeÌ¿nqßæ^ì幞«ÅçeÑ»,›ßÔjÕG›°;ÿjØÄfƒúz¿ÔÊÐJ<Xúíl&!]Ö=XC»Ÿv’鱑áÁ0Ž¥{ùàôܼ»×¦»E ]Ða¡u~ ”³ÓÍV›±Òe²Ÿ!J.cA˜*£KŒ`¦b$æ+c“‰R±ãñý-5Øo©}ö—u€ígN8ðD 3ÓÛ‹e„ ¬Í’HN×J7ÃÝ鸙©­»B‚ÁÉ 0”*¤cÆãŒ¨k c  9,ã)™ÒÃS¯ëþûd§?ÐqØí÷mÁ²'‚öx–ꢒ‡Oð¢g{¯Nw³ Õñ‘É $M­Í“‘ÞœŒ³Rű.­w†(2D²Éd‘Î ä1¦$McžJ6dGN…Œ“„]®Mæ…Ç/é{NAûÞ~_·;>mw|·:»GÎí4†lžùïŠl÷î´?í@"Ž œ`,%:]฻ûéïMu×6L HB>F$ÕCJ¦˜N4cÀ}tVß u¤Ò/££ž:þ ·lÝ£ëü±QûOì5ðàȨ¶¢Ô#ÃÙ7nðÉ+xijèˆgù ý=˿ΗÕ#Ÿï>´ofãèê?°¯#«Ú?ÒÕð‘}ݪGº*óä³M5yôcûF­êä‘þOìëê¾|¬«ÁnW?•øuwßIJ‘Zäs7}µe C@¢l6OU:Ðå<^º E].‹*rÁ¥v@³4w! 9°"à´ÍÊ|˜«0òÊÒEsæÊÙÆCÐ[‡PƒsC€Qn7±¨ÍXê~é]þU9¥-Þ…,{­Tw½‘ëŒfÅÎs«ç‹‹nT)'ÄSõ𷦽Ʉ2%Á1›`B!côts~[~fßÅž-2I‚”4Oq(x&5S”ý?{WÖä6ޤßëWè±ÇRá><[nw¯§cÚ}ŒÛ;1Qâ¹¥Ë"U.÷¯$%Pr*‡#ºÚb‚f~™ò  ˆS™0oçwDz±w$N^”âè¸wèìÕJ%ý3›ºJýí¶'ÚB«ŒÎköРD”à‘ \Ht°Ìuö¹ü˜âP˜RNp*W™&X†0nLš á2cMf%0ÇŠ#Ê­pú+ËUö-1Ø [W…η<äµúªÌç^á…Z ɼÝ]ž;«¸n¹î®2÷þVMF°:…ww9g?tà0¸«sõ¸ÕÏ„8¢Ý5b‚Hp8ü^Љ—ì´ö³2¤•“ X ¥—4‡Ê0sJ dÆ)Âîš~¨aØeg°ÃüÌÞ“DuþóíÏ'Ùr9³jÑ“²¡Ž+¦óÙ²ïOVi¼ÈsãÈs»Oé›Vë¥u, ;$_ªÙ]%õÕâóhe×ÞÚ.òËö¹~P“”жj Z±Õá„Ìà#ªâÔ!ŠŒ¤˜ÈÔî­ôêÚÛ›Lfç )Á´±Ö¢ý1tY•‘;Gœa€g¦ Óê<4µþ½E‘ݵ}29ÿƒ.š>ŒÞTθyY—³"&×ñST„¾çŸ'÷ HY¼jåì€P‰=Y»âÛ‘à!¼¡A“ÐÙm^äSäQÉÛ¼âøhç›Qà=T\.¹ÁÅ—S©>©v™ a`‰tÇ0óSY%ÊqŒ½êL>ŒGHå<ü!|¨½yüT±ÜÄJ½ÀÒ6ýÕÏï^ûW¾©}Ö:¥ÂïÇZ˜.6NP/šµÝðæ—÷üüîžY5ÔEJ®ÂŒi¬tLOöЯ í†Kv¦Sg¨IË;Ô=w½Hا« “g© åÍ[Vl8«{4Ž…Úú´õ|Hi{ÌEš^çE”cÁú¤ù´G™3qÑ'å«þ­ÉÎzÄÂÛl:EÃh5Ûôo[éS?¥'Þ±nH¼VÝ’x»º%ñJMËðÍZ-û:Wµ _׺¯-9BUSÍݶ6±ØRý7/ÇA OÎZ¯qàªCT©©ž}R ˆ<Ó@Ò-±Úá„}ùþC{úæýO£ï7ùÌÃÙý̦ÆŒí"x²tõÖÀƒSœP¬ñƒ·ÔkÂCˆ‰€#Hƒžâ0ý:W‹ôªæÚY¬!Ú(¤)¡Hj‰£T3Œ3“‚òýzõ2<…ñíÊmÍ¡¯—‹p†o? ØïÿGRÍ¡K½ ì†OߪDãÇdJß½ë™Ñ3!Ey› (H™Ÿò¹ø8»ŸÞsL12H8+¤’BeYX‡Â2ç‘S@~ð ÒoÆÛSš`‘Uô¶L¤7´v‰çðÛ4úAðÜ *„ŽŸWvPµûq¿È»§Â‚rVùÛzi6ºÌ/óòóéõý‹ÓªrÉ«ðØ÷ëñåˆ2Êt&Y-‹rê?Ò€©´1ˆˉ¶2‚¤BámʵRÒ9§´ßó«Ì}÷1Ðè7Ü{LÜ[퇽–X?OìÛ½À (¸@#ŽÑ! ƒüòÒÞ~ `dL)¸gjè§,RQ’Q@™7aF2ì(µà7ð;rð»+ÐE–žþ ï€aÓøWKõ~ì.ÝüZ~Ñ.O zU¯o<€ùéñ¡+5›E~õëß¿¾òƒH"ƒ àXìÐÊ?Yq„XdÜ Œeîä=ÕîÆ“ï_,MÕ¥Ûyj}³ ã×H£áV䟧-Øtÿ†ul)PH}Ï4=`\ÚqÈ]5*c 7šŠ*„(ƒÐbœÃ4ƒ†XD‰Òˆ9ËÂj6 @)·ÚG@VåE¿ Ú‘$Ð*_/ï ¬ÌEtB©öç«ü*Û¸=íùrOƒÿÛÓ2÷b2³{—Ùÿ[]îi,¯ééJ-¦ËôW‹MqÌ®iw%J·~Ù.ìÑHGµ¶‡u-!>«Å8$‡ÍnÉ?¬~¹=íÂØð¾ºçùæýO§o~ùõíצýÚ ýšX‚6œí®·ú—Ø a4BŒqyÏKëAUÄÄ®“)Hª ¶A´øÇ ¹•Ì$“ÌËÌÞkãÖChr—ЭdŒVšx]ŒÖ³P5@¨0íÁ£> Ð':)¬IAÌYöJGvðñ|Ì£.œ$d  ɨ¡/þAdǨ•å}ØŸ$ß8ÃÒß—y¡›mV'!ßkÈ.QœÄ¨“;Wæ ·g#öV`¨D±þ©f_úw<ßYLõ®ñósÅ™U÷µïš˜§ýü27v.ˈƒR$(“’(ýP™öŽ•ÛŒ¶Ë’'IÆž7ö¬ÛÈõ»Íê剟««Y®Šïº\öÒ­——€°V@ü‹Pþo`^ýÂþoõ"×/¼î}‘¯^üåVwøáÕ—\ý?ÿ”ý{߯ñ=:¦øßã½nF jȪAŠBÝ_Ûµâ¿CÂH~ÈâØ&(Db îÔ¿5 ‚Ž¥¡Ì9Jd–‚in‡ M¬1Êw²3PVAœLÿÌW'™ÿ:‰a[ó ?ž•SxÍzÒ¾ÎU~ï½Ïfɦúgñk„êæ°²2U|ˆÐ3\×£¹áOœ4’ÕQü;çØtb`ZyÆÂ ÅßpãñîÆàŽþÃ^•§ïý§ÌËahü€ñ;üÔW»AÐæúÈæõë&fÌ ŠQ‚ý´óæö&[¨±ÆF&ó]+£±‚Yƒ87D; 1F vÒ«‡æ€ç#Ï-!‘Ç2Óì¶ñNÛr~n× G“mŠ1î„{>D®ž¿è'™|°¹ÖqêïÀ汎!FïN–Ë€þ”.üÏéz¥ÌÜ¿x‹Vª¬:ú¤Ö‹H©ç&UBÂ@Ь¾h–®ÓîA¤…7ñ‘[»_­V³Ï•ý=4“Õ¬Õ\Wzî_eÍÊyØN™èɽCu¾˜™>-(›¢=o±«þ3 [îï©oLœIã™Q«îÙÛÁlÑ®>ΫN$–ú"ëÄŸ Wƒ-Èvq­¿ÔÎ9- ÛòFÊq FCJ*©+°VæÒ´÷<å>¥•sšºŒQ+-÷@1C5CÜn3Ä”À0vûu¯Û=¨=%˜UÜw‡ZP¼»DÚ*JüÙZ;©$¹jïoæ«îÂF‚W·ä°ÖrQÕê Jªƒ¡ml¯TX*8 Æ-’o£'žýõ(ZuìêŽm»œ ø1N½¼«J¿3"C…ö„q›e”)Å,Fó :e4Íü†!A2ÍpâxµêýÈü–‰Ôa‰Šg¤$÷¯ìÐêëw Kßx+²Rµtó츫_,•‰Àk;^_Uduv*§>¹K8á,•­u1¢Þˆ•M¨L¥ÂÖhǤ‘ÚŠRfj)4D€dr@ATdä«fôçý:ä6òt\}Иë¼õ{¹ûÛ$Kݦj©]tt( ס„Ùd‡Ð¿CЄׇջg£×U-çFyüò~ôƆP£Y¯ ãè»7»¨Š÷—D €»Ýîx76©º§!:`|ÈtÌØâ¢\®Bä jŒ¤Ê@`eÞ°Ä’a-¤• ³ÔÿÈ€É T‘©ù.vqX>9ö|J2=ÐúôÝœŠh­U2 µ×6$uÍá[œŸ!,5’qVÉF0ÚZ¥pšæÛ­ÎØù²´FªK®Û”J d¿6+ÄpçžÜ\0Þõ2•Œ“ ˆGX""ÈÇÜ8Õ©½è LÒû+›AíŒ&R#¤ÓgP'•`Vg’Y³¬†ŠÙÎ3F-€NjO»‡I™ülØ/lx¾lrÝ1rÚ¨‰:é}8pãøI:»¦»Ó–ºÝöÆéA3¢šOCÿü›5ŒÐ×aD²ÝÞi··ãm_|Š!AhĢ͗ð©ßë¸Ô  ,&cB"͸u@ j áPj#€°Z(ϯÛu~·|ú©qgÅü:ÔFËzä+–->¨µ= <Ý2m8šLÿLðd‡qo•âþ>Xq©¯gD? çž1øÏ­­^šž„bIÔ~"΂†I$ÀŽ‘ “©848RÚ<" ¥Sß—9%™„ì}«ŠUÂ]Ù82KËȈmûMŒèìòºÚ^R—Þb «Ï¦ƒ@(Ú¶4âÙãm?S¡O€x©ActHq¤µÍ »v!МM Á0éI9z1½hJ„œæÂ#¶ï&vH !…ò-^ªœË4ä\—¹šýM­\¼³eÑ|ôÄ÷< qº§ÉA·M´Û6›ÜÜËîУŽí•SÍVg5c+ƪÝAŒÍ6Óæœšæ }1éÑæ®Òz„æpë{ÒÊÍÂnIEþ§=ß^ÙÎ a¢¢Wëå´¨ÃVnªnëqñ]sVÒós¿gF’7pÒ ¢µ"Ñt¯3– _  ©Àøí¼(×¶,—#f•“^ ”ƒÈYNµàP#K&”; CÔ µU%¨y”è‡Ë³'Ã>ÿ³HAÉpx‘½ÊcL ì“—càAgð"_š‡˜ææ€©|c•bo2žT1ìòÃf¡ÖãKW¤àÊiKšÚÖdÐ4ÝädØò|½¶PrVƒItâm--nÏØol½Y«Õ‡\§ÿ›ÛOÃDñ=`MƒW?ËçxÙ³½fÜîcÂÊ"”á‘׃jk­WÚ¿°ñý‚ÞàCI78aF¥P§ül˜1#ˆ¤”Q ¨„Ê*.)Bæ®!zÄÛºòamΗ´Ïó!Í>þæ÷ßÞ¿yó¡VÂhôßZ#"f³·[ÂPc ìØE9`5e§Œõg\ly]:çéô¤ø1uID]Tľ‘™w©¼«[#ÿz»ú«æf0.d­V÷ÄTcòkïêN­ŠüÞ÷ßpü¦Ëoð Î0>ñ\ªýè?àˆ“(dTóÀ”Å'Ù6ô:×Ýa.(Q’¦8¦™”qK’ä41s=Á¨F–Rïñýú¹0¤°÷¢~6:s÷³;ÕÚñ‘m-[-|QÏù¾¸mOWžÇ {˜=ÿÃ}Ò°s²ºóÙbç3=¼“ÅF£IÊð)uú9õ};¯–ÎØÀj`š¦ Z/bž -Ž…X‹f2É&q!hÌS ®ÇGï~(ÿùV ªñöê{#µžÁxwqêuïé–—FΣP>ßZ8JO¼Ñ­;k£7/ÎFrɘ(í±äڙÈ 'Ô£Ý=Ùò¤Cy:Ãazš‹»™Ï¬e+N’KY‘²,N3”‘X…1æY’Æ”1ª,Š¥Be&Y!W[+ÒR‹1ù9R+¿»ÎD³­ök´«.?möf/Á_/ k"I‚na¸¶µëÚÞ(á‡Ü®h¨»zLd[þ2{ éÐèÁ˜ëØjæ3p0WyŒf)aø„´‚«æî–&2¦Öԋ袧tgç¶Ið“i¾1%MU‰h¦ù«–ó$#*;;ëфٰýJeµ¬¾y¯ÿ\¾3~^—¹¤zƒ_¢kü@öÅ ’\bãHÙ¢Œ`:+­rjü ËW°;Ž×?n#û¶Îúè§‚Ù©p×ÍÛ~åhºŽ!–2Lƒë~ìOäß.«Ò„âuQ£¶câ®ÈáÑŽ”ÆÎ1¦ýh‚ýX‘”Dæ0՛崭Üê“–þ7£ŽKGYš)„Þ–2LSERé’°0J0Ò˜D4ÍÎW.bÂ×pªžÈ¤óø¥Ó ³XU¢²ùžÆ.ç§«fòÜžãEÑ f‹/r(7yçvÕŠÒ×èi.6¦è/0GÖ‰±{8§Ù27" ºml¥"4ÑÆmôÿ xxzþ«õp÷3íÊbš7ï éÛž”–”^xÍ‚>ŸÍjîóräÕ—ò›íã:^Ò(ký#‘~„ðNÆ"ö]ú$È‹B†°Ç‹ì(÷Ý€@$‚bÝa”œ’tnÕÜ/…ý&d2“¢Pt„Â’s‰ “4$$L2–b­ïh.D¹ S”ð,ÎEφΑ»·½¿tf..†Ê‰ üáÝ/Ã<ïEÙòq^Ä#lqiõ—lþWøQ ‘±ë¼»™v¥û>ƒ—ãÃÞ» l'wph”X©¶Oßµ)´ž/÷7îIÎør”ýJlG±u÷ÐËntÓI'Èmm¬ fD<ª„(Ó‚§“=Ç4œiôÈ3Μj ô’´Îîg&=VrY'dg ÌL½+.8Ê"‡ÊSFSc¦E¹ÖÓhû÷ ná8×Å­jZä?PÓkï:ËÖoq;ì´0²äÈU-ŽRR¯Ýòcî]WµZv«Çq·÷¾¹}¿`)qŒ •?;M»Ò£¨†ÀFØ5ì^|Í•<ÐN_Úƒ>ñÂàçNq^ÍPþ·{ÚØš»ãñ+Ç}_¸+Y¹¼µ¬·ÝU«„¾o2kŽÖׯeqõ»¹í ßbÌ£†> ŠI²çšº}à½`SbæD›ÅqlêyŸÀ87w­)Ki=¥—ÈTÁ`ðIÂʤXO(Ï™ÄkmÈûû;¼×ätÙ~k­ÈÃi­t]ûÍ ]CÞ¼ÙUäõ‘¶†‰Zé©véÜ[KéÌYç`©½cp)×ò0˜´PXrÇšt&èí /äŹ'Ø|Ì Ò$¦1™ã’;¥¦úêsóÙ¸õºE³4Ôß,§N³X)Žq˜H”'I$jJn„ +%ÓHũѿu&©‡ÈçS˲ùj}Û ³B.ì2y»](A·Pñɲ6ÎïÏûßÓ¦qÚèÞÝ fNΚ´¤WïõÊ/ WÀÚz¶ M¥oüw€v £‰RY»á¿¯–ùÍB½HÀ Z ¢‰”ˆÑ0Ì9K¥) Ä3–`–rÇ)c"ð>=Œ1Ô÷á,}ø©ÄÙY1«štæ»Æ,Ý7aû&ÖrÑ4XhivkGFÕ§ ·ÝO:Þ£y‡­*:¸4i÷{Ö#ÔÎQ7ÁÖQôßoÖŽ¢!ÛM±]eÝ!ÔpÒ1®vWâR^m—æ²-›²uÖ׫ʞwÓù÷·Ø’§—Æ·ï(ÉcïiÊöÁî›:%1E3¢0>ÁûâíÕH C”IiUª$Š’(SBªK¡T†óXæLõ¤eømN_$%Õ+äxÙÛ¯ðÅ¡²ííwÅ„«1[/åBu}UÆXÿ¦ïv7™¼øÌm‘ ó,x;’ëž!4ÃÆ 9!VL?jQµ6è)œ1j’¹¿Ã4Í2&á‚'qÆ2edQ–²,NeZâ"Œ&/aá*Ä3†»¨Mo<ŸTÒ¿H¿î>)àv„„ÿM¬ÚÝ;¯ôNœš€~¡wñ}a`—º#!óL”rÛ«Íܸñ®ßÿòÐvÄLã4q7»n8ÃÜxzÇá,H”œ´ÉËÌTÆ!¶ =x ß$MÄYå('„$åaœ'y£„ˆ4— Q)w²í0‹B-[#AÙ®;qIô2˲Xõ?ïúÃe¥›~7÷ºÝ’»'Àº*›;¹ãvU­k.ócíêÎìŸÀÛ ÂÛBøãß¿Ž˜†COô”ðÉÒe‡|šK±®šf§ø1›†×ÅÍÇUFÇ÷Žà†Ü¼ÿù·õGº±ïùô1Û«›pÔƒº·*Ìx.¶C' vD£þ™ZiaÄ÷4Fk©0à(ËF SsyP=³¿~x÷¯ár]\à”ý÷”²äg8º¤šjq7ž>Åa§\Í­A+ )F+¸ÀOYG@ÇÃÿ2×óß % ðµ87…)ÆS¯Šrึ‰J—tW`ö¦+òçy§µÀ¶”7e#óf€håÍø9ÿ¨nÌYu¿µQ¨ ß›¯  ƒ¥2…¾kWo‘›¦Ô;¥ñ»5+χ.^5¡ø ¸—~cŠšÜÏÖÖr#ªú~ >pa·úqes³é¹›ë^êæþ€m«›nO¸šRzYbTälYfÞu³½v#Älnz`^õó÷I€ëƤYê`‹úr¥n/åà²kl~ÂËšOÜqpèÎL0ÙÚµœèÁû5ãíÛ8×wÝøÍmÿnØ™°rîQ±gìDŠ=ʈÊT”:%j;ùo÷¥Æ+E( S­—Ò$ŠÈ)UjûG½6v£‚èq‚Ešj15ÅX)œ'Š‘(J¢¨( %WúO˜ˆ3aÚÉC€d„ q ƒ@-·A¢,ÿÁmµʃ‚ (‚¢(ó …=_Æs„2H>C Ô†Ayl$[„(OJ‰D#IÈ“k¦…W…ä‰-S"Ì@ È®h0’¾ÿ•Ϙ.Ü»'çôQ‡,¥S#/e aC:e†²£V€‡—†Z'MJxFÉÉ´ªW‡©Ù87õ^±¢‰d4¦ašÓ4ÎpBYF E!‹”`"={¶»År$öòàÀÄ3E‘7AY­MUœgTÁç©ú7Óš_VÖ˜ Fý=ÔãɘägU’A…÷@TôéÚìQJ+Ã{Z•=¿éùˆÝkTo5£Í›ŽÇ†[–ã*Mï~‹ÂÄS¬Þýƨ¤l×_sóIÏä`Åxœl¤‹õŒú=_ò[͘žº¦î‚ö ÔWÝË ôº-Ä„eÛP ïêªÑ÷–v*Zxé6©€‹r^5Û3B;Ð9K´ƒåZ‘ëµÌæ¾éÉÕ²{«"´.¼ÔC&8sQ Ì«êcà>ºk]yO§ 7W_~C¯—¢í²çí1L” V&¹t²ºåÅRîtÒndžíG_K·®«¾V²h=@YÉ]еÔ(¾rNzÄÎE™-ôP×µr•iËó‡Oò#ºôn¢[ÁžV.¸X4>hÔÙó`Ö äߪŸhDRt«ü®¶v´ZÞªe-sß\PWƒ'¶Üïº])Ç0§érÆ…7O´¯èÞZ¯Wo¯Ùv94;ìkØÔ¯>]ù¾wì<*-ì9, Ý8p’„`4£„Ñá“âÉÜG=hpc‚(Ã, q”åŒà+–b'Q‚‰þÃ…Hø¹K~þcp8ŸÁá1l—8$å>l¸…ÙÇZ44U Ì `8”=ÅWcŠ7À ÃDH'ÈÛCö‰X¶ˆš<üaŸÞ=MÏGfs2PpƹŠ#)•J„²˜Å’ÑÈ&[ŒÓ‡–ÖñäXÅ€#Cq%[1ßsZ½„¹áÃ?†§50¼vgûýÓõ?ýúáçÿùõu{åŸÂù~‹Åk¤sG†×Yµ`ËA\ÀKÙßì•‹¾©¼¸¥Í®˜°E˜öƒo< {Œó™ntŸÁMù{ü„ß8ðÐë•‘Ü!86‚öJ¯Cù1àÑ7lûaëºÜ.ʾn ûSÖ•§t´¾Ý{Ž?  n[w:àër@÷c;¤’8EqÊf,ŒQŸìÛÙ=éAõP¤•\ ”ª4U4DQžâ,3É[2$dÂs©…A¬þ.êá1ºøûc½¨‡™Ò½L²ô5 “ÆE¼€V狨6CŸ«7¤CºM‚pÍâ(>-Hd©c Ó|·±!×8Eáeb ¡ÈRå*3e" g‚1&Q&BL‰Ì3Šú¹÷)tx›M«‹‹{¶°ãW¢zœ LT~¼­çU[{Ä)O5 S ‰°h,¢ÿY+›#!Èßm7¾/ÌPôEÒ¬YŸ€­Él¹«Æ«zxYzÉÅy¤ä¸T3áoÞ·ýö ìöí$ 9_ì~\å²ð.®êjQˆ{v…QÕÜén«Õè«&©ÎRs£ÝìX¥ûûŠg¼­–ž“¨ƒßæ<¯ÄºPu½PxÕ*1¾QõbÝDl àï £dŒÙ| Ó/5µà8D@÷uS×f%mÚ¡1¦ª‡1dŒ’‚`‚#LèbK`VUýgÑ6ÀûªºfÈ‚Qçë‰~nÕÒT?=•#Ú˜m6cø˜ûy¦˜–yN#ÞüIAÎ<ÕPÄp¡*¸)ùêãQrLQ Áõ,6ó¢å®ÐjE« Þz 0›åºo±ppA÷(M„Ǹ%´5µö5Ö°·Íî‡Ó#Àñü%80ß«BTÀÎnRÆXÿ'°Pu»j³ªà2dÐ6l–¼†wzSc LYÓ‚ë°iïbÀ[®—‘fF‰ Ã``5pà ®1ÐúäÀÞ4P“ ~Ö»È#RÓAåºõ.¦|-ÕÝþ×Õj­YõöbL[¦jAÃtÃZåçàeÉ#ó‹’ß:îdÛvc& `Ë”ßE³m>´h¾ïúwIG>ôúg(—‹ûï†*¿òý|7³G1Åì_UÉ‹åÌþk¥”éw§ªLjÃ#×$Æî)Lç¾ÀE›BB(#h†1‰>¥ –ÿ´NmsÆ yf(Õ:RÆa”!ÄT†¸"„Ä ×o‚S•¥9Š’gr;’ç³/mt8ѼWW†Z ¨œŒt_Ù+€Š ½eĘBᑆñUÙ;vj´E<¡/÷£o2î:en˜ûè…ÈP ™±p‚ uÆ÷¡˜˜¦Ïbbª§ŸP]Ë$_·U7m™Sò,R©Ls%—çIDEÂI®Ò”£,&4¢2Þw󛼘: N6¤þ>^ˆƒ©Ž{ñÀÍxâ 7³É›ãÅÙòþµàÐX‹ŸÄ$C'EKÙgU-Ûý`£YˆX§2䑈1Ê$ 5‡ÎU˜f™`9Í9ÕZ(&JQ87Šÿ-Îl¸Y(ôJÌŒ•€ ëã„yñEª•õ4Æ0§i¬¨ÕêÚ®öI¼V¨ç°‡j iüº˜Æ}*ä­j›§«{tz£Ó Æ+mM~Ö’HÏer^B¸:Õ¦ÙÌ'²”1Ÿ'în ÜRmÒkN˜„irRht3×óŸÌR|IS¨j¸À E2 “$ ˵Ägyˆ #ÆŒqšä¡:“·û+ûl­R=“É~‹ðAéÑ>³Ü‡¹ZìRÿ°¼Ÿ™TEÓw{qÊû.C•"Š™+B5ó`÷d ·NÓ(š%,ÄáI¹¥Z™¥w˜9pИd±úÖë’–¢$ÅQhœÆŠa”(•'‚ QÅ1×ë&'iÒcãKo?u_o~ï{ÅN٧ɇ<‘Hn5Uaû)¥¿î|–ö ²K¦l£¦‘&Ü_¨>vöO-Znb¦L6`sƒƒZ—µ)ÕêVù {¸m|ïJÕéBç>´”@kóǰRŽaÍÔ¬ÕòÛ!x]KÍ{¼÷r͵޼}o¦™,î®·'N?rSòxª ²×K MÓäFÃ{Ÿ&p>  Û%ŒÆÉ §“ô${dž̘Ö]µvVEF‚ç1‹\à8G)gL`–FX"S #DX$YÌz5¨ÄџнèO_¶Ôò— ‚ßÎl¿é~Òœ?³?í‹_lü&"T­ü˜Ðþøêö‹ŠùªªÚ“ªÁ‰0ŽÎåÿüî§1¡üß6ü°®·2{4À½ÓïÁÿ{]@à>Œ B}øk¯KüáýxœpMóU+ ­ßµÚ´@s=ŸÝIr_ɸ.€¶zÕ¬xɾW|)èýÉZ(×›œÅZb‚¡_ çzáŠ's„ÒÏ»ð{ÿ\ýññBÇV­¸¦˜ø@(}ëþîúú‡¾Á¾9ÆmaG}}}3øŽM.Ó§Ó¿ Rv\ÞSåƒ W}y”kcöt‹o-y×üAsœÀrœ>$]¨O¥óÓü5iØùÆq«~à×Äó²nvÒÃ0À“àN5Ü…Ý7n¿Í0Ë­Slåÿô$í¾~î”Úê±Ï_( c‡¯ëí^p¤R’x–D("éiœ<¸]¹9)ÂZE•Z7M0F,Ép¨uV!sfŠÿgïÚšÛ¶µõ»…Oäà~‰Æ{f×½ù4isêœî¼e@´K”"QŽ_¿’’x)G–d9U§ãˆ X HßZø, cPaÍ“NƒqÙ&gŸ§dÜ}݇²¿¾iâÂÉž>“={,LfdïÆÏkbò<±½ÛÌGm$; »zëBExÙ#<³ì±TÖ=*íóºWÓølÄ3WÍSºŒÜøè°FÈV®ËY0ëa  [¥Ëá\÷ÐRIIH»™D:à$r‘Ý)p«z(‹ÔzÎü•GýÌ8ì{ïAÅ}»w$¥v:t”¼½Îœ¡Wc5¿ºrŸ*NÎíUÉØ?^¡4tÏ?{ÃÃÛ0gÏXߌ&Õéùbå\Q¸‡|ñõÖ3ñ¾¹“d·íì&D@L­>¡„lůšrg7AHL 0’VÌpà6  B)’!^¦äº5ºÎÚ—ÛÿTûÉY{gíHV2¼4¬5êá^œ³ö8†>·íåyhÇi ­#¯VŽðÙåßï+SD¿üx];ˆüÝ›Úaâ×ïÞU®3–£>ÏÔô³3FÄÞnýëõëñ$4åëÉ4 M·éâgV­òïׯ ~R©ªÊþ¶ökòv]h!ÎVØTEQðÑÖ*ŠÍ(l$Ü©Ùǹ¶•¸É’rò²:î”~.Åöͬ½~mÿ¼s»œ×2½$ZZƲ'Ñz>ºí)jfçìÖU.ìe‡€1Bº…[-°«šåN_ $˜b@• , ”*€Ö#PaD"%eØ2s²ê'«þ½[îgeO¾?‚ãZ}¨Ø³¾Õ‡õ/ îêÃeּ«_jâŸïÝF¼õ)êk¹Ã ¯°QÆÕØ“7^þôc›¼¥˜ñ»<”jWZ‹¦ŸN[š:IÜx+jäûÝ<üåÆÇ-âFþ·*‰§ gý.Õ,ìLìÐý)?wSzG ?ß§&™—œ™®,åØ &]O²ÌÐQÆõ0YÔßv=¹Cÿ­3w&vè¾Sé°3±Kw'Ö‹iƒË e¼WÁÈÒ¼!½«'ïla•¿~Ýœç­ñôè]u‰ðòê퇷o~S‰ =¡ßd™&ÓÇä¹ÎEgÎ?³ÝøWãéèú‹š^a”NÞaσÍZÐÂÅýßBì'ÞpÓ=wýržÚuÙuYZá‹Ü[cOª‹M¬œ0¾º®þÊþœë¨SÍJª§t9Éx5ÓZ·Mp^Ùát%ˆ›-Ÿp—Ä ÌX—O+¿Ü`¾z*Xö k÷ÊUÛ·\3?ÑÏqƒ…•ù[½E¢g±ëÄ£ÞŸÖ븞,fÚôlë˜AïÒ:böû­°¦ßSóÃgR”ý°B£¿úBž)j‰Y},ÞÆ³€éêrÎÝèü\øö¾#54•Q$C€ çDS T( 8 ˆÎ …ËÈ/«£Øò³'6¦öÓ…ÊÇôµÍ¾î/lÌ^BÃlðÑ8™ûĸ2ßee§ugfô¤à+¹{Ù–Øñt˜ßÛÑlzR59îü­¢n¢#Å–xmm~ĹLöuf åØ·Ý•åÙ·Þ[XÎA¤¿ðÚóuÚ}N'4Sš¯üiNûAÑøÛÈ(ç›ÿù¤·“ÁסuKÜ—_|qM —äÞ}¦¾hǃg²"^Ô<¶¾›©dKÝ\çÙ²¡~<Î1¡ª7Ñ·&­è•E«:B¥TIfÒEõh—[ÿà&NŒ'9£!âq›Ìv’FO)%¯îº®2Õ;î°ÒÌÈ•áy7ÅGm“eu¿zûó¿^ýñså!J™Ö?×®Nu•¬kÜ9o:-¢ì¾—þñËÕ¯•»®s¬~•HE×Vª®D­Vsxugõk•vŸù<¥;:î"÷èú¹G—ûênÞçÞ6£°vùJ›’Wd®‘2kJZóΛ’¶¼AÒ”´åÕruk¹¡jJZ󚦤-¯5%­yÏfZŸÍ4žÍ´>[Ôx¶¨õÙ¢¸)iÍÛøÆQë7¾Y4%my‡÷;l}¿ÃF}‡­õ6ê;l­¯;N».iËû©ñ~?µ¾ßÛFÞÛö¼·MIkÞFÛ¹mm;·“¦¤-﨑wÔšwÜhëãÖ¶>~hJÚò&ASÒš·Q‡¤µIã%­ïlÚønÓÖï6mÔaÚZ‡Y£_ÌZû…WÖh#óÖ62¿kJÚòÞ5úÕ]k¿ú:üxù‡WØ¡ñÛï^a‡Æõ¯^a‡Æûÿx…Uê¯WËÀ+ÁÍh¸CwŠ¥"Id‹¹^\ÿ¼.gêë ‰õ«¥©n+TMÊ\êzŒcñk‹\7ÙÄ£×Óõ¬¹‚"yu9´¾í* VûVÌTð +q\¹×¹öU<óbJ@cÆÝf1œ»‡JÒ჋ÏuNzBœKæ;ÐC  "…Š’@Ä#JÑ€Bîï@ì’Í1a&cÏ<À³Uß3õôŽéHh¤8ÏÎмØ}-â^òëOꇳ¬ÿ¯ù…¡M3R©Ä?TsxŠYªãÄ/r\ìg¸è›ÿÈ Àÿ*7ŒœðÀmÝ 0iÕ äQªŠï<B0´–ÅûÝf?ž»O0s¿{öø0Ä œSß)4Ü"HÂ#­¥d2 ¨ŽB­#‰‚’ˆ=˜ǾšVa‡|“»Z øTz^úÎHÚ*LmÑ“.оÔÏúÒ6l‘ýR"6¨ø¸§n/Õ­âe¢ºU¼„Ô/խ⥧6¨øXª *>²ª[ÅËYmPñQWT| V·Š—ÈêVñòYT|´Ö»Õ­â%¹ºU¼\W·Š—òÚ âc¾6¨ø° *>¬[ÅK‡u«xY± *>r¬[ÅË‘mPñQeT|ŒY·Š—8Û âãϺU¼4Z·JW’TÛPš[ëVñRlÝ*LÛFÅ6Âm£bï¶Q±~«+V8±BXbýºìB¸±dåúsêÜ#ýäqˆÏׯŒD€$À!UT¢ìÕxx) 0d= 1äôIC÷ô›†#!åÂDȈÐÊ@™ˆˆ"d4rD% Q-ãéyܳuÈÖsñOß•´7Þè¥s*Ž8/bŠ¥EOiò#¥þYäì„%y:¹ÐP¹•¡‚Rö4ªÄ¢ñ&x2öNZbÍŒ")-%"n˜‚ F€Ä)¡`‡…§–FߦèàÑ…üûØ=œBífêÖM~Nûã´ùmòï¥Ãõç;ZN¬mƒèÆj(Å=„1FÛ‚µ;‰Oe§ë[yw’ÖgÔ$Q!Ã4ˆ# %‰"Â$\ìo’s_>ãc¼ÂìyPæ4Yyš¬}¥Ù¯Ôµi,8D÷BŒmË !Ol-Rö$±wñF»EQ7åÊ)GBDP*Jd„­ aL„DA.ç\]‘.þxþ# ^öšô8â^†ö†lsI»¯´(ýX°Fj6PóA ô|ªAhf40ÉÀÌ‘Dñ š nƒ¡ ãÁp6ˆÓC(ûÿíà6qP5𠯣Áøaƒd4H’ÁT ¦£Ál1˜ßæwƒ»8ƒ³â«×*ëyìç=òéôC³“76ɸ‰¸ eíµ\&üD„õU!âd›ó]Ý]¦qò»ºÑs Ï p@-V‚s飧)äF!DZG‘ÒDTÔèK‰ 3‘†…«Õi'zº?ójˆ“ïúÝRëµèÇàâ¾ özÅ>çpžcbÏ‘çhM/êxÚÏñ´)`yËÇíÅï°0Ý8Þ º­ÃZµ6Å3ûëíY-æPö(Œð$ãÓŸßÆãÇ[ ÅqD5ÔÚC. E” #‚Bj-TX^€Øö]ö`ƒ~ºüóë1Õµ…Þõ‰_pè lùrW!ªYúqt3}DM¥o6Õ{·¬q˜ `Uzí]]j¢{¯Ø·ètËÛ– šùdt×|7ìš«§3Yƒh»é9˜e¼Åê«wñ›ÒCFZ<Óu[˜®[=þè.¦£…µVÝGü8Û.Öm¤rÔÝ`©žß ¹Z>Ú*a* ¶%r¶†ýœÆcgŒä9éÙû ßxD´2:R!€ ‚Š D0¢€‚¡ "J2.ƒý­¬<sòò¯vyúþ}#“û#ºûÇxûíÝgj‚wŽO9Bõs„Zsè&ŒÓ,ö}1и^L_ŸM•¾U7Æv¶|¼ó9Å?œõ³¤'à»( N®‚z¦Ô/×Ýé „l‘É­I­ùímfxPRÖ2õª0e2"œk%4BË€L")X$ Á`Q³9þôþÔˆ¹,Ã&^0×b@kчò¯µ®™Çø[%ÑBH¹%ú.²ñ¤íYvØx‰ð o$eLE: ‰2ÒH‰QÄ•_ Ñ ˆðp%^à~²‹|Pƒ¿ƒž¿ð-•Y®¾mùý¼åï 7:S½KÄjA™ƒ¿®…ovë!Äx«N>IÓ‡r[UaSyŽ}}\ab={„qh u°Дé0" Å…PÌCY´Ü¹•êÑYz{65³q<ŸÇ“dÞ8«fOgÖ”œ±'ÃÂn ÃG´x!™{†ìmdDYÞò0öëžWÎËþ–Úõíž³÷¦·vpº³ k'Z§É8oŵΜµï‹¢…÷ó¾¶á‰[é|S¶é.ý:W.IÓ™šÎKÇ1e•ª_畬àÆOæÎŒ&Ó±IÒWoìwT³ØÌ_½·Ý%·KýíÕûhx:g3¨„–1Ãiô+뙥˜AÁzÜ-æ`[­Ç˜,Òlg<è! ·‰La¹ HÚ‹È„T"!152‚ˆê'@²@ŒéC:œ$Å?ýûñhùs®R×Öͬ÷¯l÷¿ûç ±ünE-^Œ)Ë¿CôÝ—ÈÏÜÔ|øQOÜÙ°nî+;ïÄæ€¯§“1ùÅIV7ëñ­íQj;VîQøöɤ-¦üx ’»ø I; và wGx„žS+I·NmU÷Ⱥêx°¿.òÖ^M'"ýлÒçœøz5u¹æ²µ%Ýùâ®NïMj}bî¼òïd{d.”û –ìò‚ÒÄ‚ßUûïßm)´;Œ©¼\‘Š®^þöÛí§öX{ ­'‹x°*ïI´Ë©y¤Gïk¢”vW–—bìØõ†é!Z×Çý¿0C,IiHBÝ&Äu3ï:±óÿ?²_mæïg/^šŸ^qçX™EÚzWQÓ`ËðgŸ^|qÔ©‡'ój¸P™Š/v9moªî|oPü X¹ÜûÌõfÌ^[–È-àï^»Þ¥êpöU'ª.EF(`ÅÝç‘5Ó¦¨ÚïW§^˜µêh2ÏGc âROM 5ÊI¡^”<¬ö±=y-Zqò¾;öo¯cošc' ãÉy7úÖR³ ùh/rb§ß#÷€óp¹5Y kâú+ÐÈ38Hìù¡Ç‚Ô ]œ¹qF/‰,pâe$f.ûy± ÛRexññ7?¡ñëyóÌÒ{¸™%Æ?ö žn*f[÷+Ôèù¨Hë^‘ €Ù›ºÍ‡2´R7ÇËÀÔ¤©j(CœÃ=¦Šœ(8À_øP©Q:Å#I%)òâá±;a¹Ô “4DŒ[‹(B.E_yé  O¤d.äZ ):¬ßÅ5ZR[HƒP¯]Iw-v ý³ê£IªUbÕâ§W×ôh‘\Y;1xàÅÚ‰õ³.p¸V´³oÂZn £¡ò ù±ï°¶WTCEäv[w΢ˆúLŒ¯3Ÿ°$#žÇÕÇ^æQ”$aú¾:SX#[¶#îT/¾äPÝ)Z2^^×ͦ_9:ß²ó•Õ~¹li1¾‰å;iýÅŸsÚ±¯SüЙ…ìŠÂÁ:÷‰¿‹é+¿¥£ÁnÇ8P× ™¸Yê¹[“„¼gá.°›a'JNBÂÒ~ÑzJ“Lôz¥óBuóÝâ//«ú7Ð,g/§œ›XÁ„1È`Ñ}T!…-méìm„(ZqAwüv‰òʾä%Ù°¾Á*²ÁÝ ’RÌ"¡„¹a‚â#䇳ȣAðÂ'ëpÒ‰}¾ýËÏzŒLÿ­™…#˜Qž}Ö‘õ¼…ûxJ’è] v#k±ÔÈ©ÀØGˆ°³Šüà`QI™_³¦oX´ ƒÞR^ìÅ„x®bÏåÁQìÇÄÇT¬àÅÈ ‚4{jÚ;? Œ¾ÇþîŸj$eß óçLËü¢¬aöÙœûìþ¹ì‘MH ìQ´tTZ\Z›rת€+Þü›,À2Þq„ÇCzŽ©¥¦Éâ÷ˆÉ0ßÅÎ[ D-|â°A†5a¥( )s‚€rËå0Ç$ÀQâúŒF™«õqDŸšÁzÔ ›‡ëâÏ¥\\\,ª%iP¬°Ÿ[À‡8ìîèjôõa¨*ÎÔÆ±£co…B':àX7Qñɴ_c-ÖT!¸£§Žq–&ØsQšÄNâD1r®ë',NSœ!/I¾Ë韪7ny.Ÿñmû†­û‚­êýs»î½kO¸È÷°kA,D0ý)¡ÊØQU¹¿g-7Òf»+„c|ÀJDQÉ–5E¿…Ç_¹|$@f,öBb%~§"µtâp’"'F õâ2o ¹{ŽÏWXl†yô½0#Ù?X#ö~1úŠm…‹\¥¹DèJþúÌTÉ×g˜À½n¿-»=*°w#²ë,ù ¾áÒÆ?·¬·\æ~ß3]ÑãzßKhîeFÞs&½ˆ©æCˆ¿ ü;ï"ˆ ù…Óþ:nüógȳg/¶Û_¥âKÚÔ¥¨‹ºQ j¶#U×*À>¯˜ 9½äþˆ í”Ëo?œ¾VÊBÔÀ®ÍS0¼biÓR°®c2è#ïÞäò'½QŸÄê+°k2’*L>ÖïâfVmúçº.Ì' ¯²=Wìó®«›œŒ³Š ±“ F¿jÈU^m`äa^”·òœ²zô5ÿIŠ ñ³áågÝ›îwRF_`,©q}e&®¿c-5ZS…žÈ²9È=l CØÉ•°“ñÊõýc N–¤iœ84 ˜÷¦4u¼0ŒHà!н˜1%QôÃû›ûl¹Ýßü‹ºxp;‰ÔóA¨ÖƒP=Ú‹)®†§çbU¦vNm’p"' VØw¢Cè2r^7-ã­òüc±¡Üí¤£,öEJ/S®2!÷1Å9â®ëÄÔH¤ž;1Ÿ¶’Œu,ãH=]Ç-ëÚ“6Ú.Xw4·—ÿGZäÕÅ'Öµ“Òñ*ûþã﹈´2ØkM•iKÄE.Éy¾N‹œU@òÇ[—e]Ù°›qØó‘Ç‹œÜ¿ß7äÊT™&;‘ûÝxœÞÇÉ®}¹Þ#Dââ–á3«9<¿V‚1BmÁ½}L È;ÝPß:TPÕ%[_°›†»÷IØlס›5kšØÚÄQeÿnµtª2üõ‡×oOõLA›¡_: qZAÉv-v¶Ýe’Ì^òÕò¬qÁ(Iµ^¡%ªj€`m½›ŸÏL‰:–õ”IÕ˜ãX/–ÇÄÝ#Ÿ*¼gí1ŽM~`÷ð}º…ûú °Ñ›»ã¹³cµÃÖ±þmœ´é9+I{2QiUÓˆ1!kJï `àõoN^¿{ÿötÿÚzÈ[Ð\,vu/‹ë§ª¥Ç3áñÊ bt†¥âhìweMF0ÎPì¸8Å8 Câ{$Ã>A„úYœeË^tó‹0fðÄ$ÑNùqŸE^ú'KÁš…ôÍ,®h¯]–S“]E‹‘Y-¶<›˜€çž‰älùú`ÿk)Qß–½š$²©9Q¼B¾Ï/I«Æ7Ü9è³L¸.ÿ‚j7cÍÒ8rYÂ\1Óé¾G#×åå®VØ™¶ªÓRV‘6„éij4Ë}»0–õò¢ ëªÝöÙ•Ðqx,C[qT=÷“››5ÍûýÌO«³èk©ŽäMëà‘ÖPãîg Àùþí¹ý-É¿€Å)ûòú[™¤®ê¤†žiÄ´Ë/{=2]ïd—C·?••/w?Âì–­Eœ3ù«D3Ùõ¶mÏI£Œbï s.6ýq 2éÙG2€(ôˆ”T—¤µ¢a!êQ—|Ûþ\·Æ+yÝ%Ú™å…uþåÏöORD<ØÑ¡÷Þ™Æ èŸ­ÎEØXd[ß{÷éÓÿØuöà\5‘•†õì¸=(ߎBv¶£;*´£â=¨}Í}#ô’g8¿ñÏoÎŒWöõ¢×"5$a[ÐÖ´”¸r!i÷4°p?h U—yÉŒ÷½@Ô‘þ>$Ú‹Ô2»ihEÛÖ‹ 5RAY³ÃÙàïq¿Þ¦u©·³öùIgÃ5LÇãÕ¢B•Ó ëDHox° ¬C%1 2íuYôÙ´QP- VVè ¸/éíX°q„î0à¦âÑØÐakÅL •Uº1{¶Yƒ„€k´²F×v»Äà¿×1±` ÄÎw,Klž‹lÖî1R–ë x%+Ù4.?ä$ûí#KŸm¶1בNK‘>45݉ÕywsòŽuW<^æÃÉ?Yròû0¾ßÂk“þì[øÛêíûÿsvöbõáßÏÞ¼\ñ§ï>®~yûáìä݇³_—Mæš!}gƒ¸¡¼¢i¸c½¼ ‹Caã•ÇÃað€ÕLkZ—"ü–‹^Ýì_Ûäy!¢˜á˜ ¹aœá!L‚Ø ƒÄ%Qä¥>Nv,ìíSGæwÿþ‡)²ð)>‡4™5ÍÅ)_üÈ& Š ú¦±±eÛÛ“wä2ßN÷Ô´Lyˆ½:çz~䯫0vœƒÎµ›«Ì›t¿š…^Äâ4‹†#J¼ÌK‘ã2ß‹|ÇÇÔ÷1‰âùÙÿÔìé< fü;©_ýV•·ÈŠdë¶Þ||ùÄôˆ·|¯öx8rØÒú®÷Õ·ë’äÅ~ý¡)B~š¤¾ŸD(baG$B¹4œ4N(a”Òè覊ï~b“eÍä㬠+ÛÈà9îȹ}qÝÝ—YÙÖ@ý {þÒVS¨·x7„ÒF°¥¿3. ‘ðjQ¦JÈ k³Âø"2â.ãÕ¢LŪ|#ªéÜe8¸A«E™*/·üÍ—èú-1õÆ@Â3ªÓè?9õº&°¥– ­”4šºP ß+dŠBì8)·£ Þ VV,UìÊ´hœï”ðjQ§‚•ÈpwiQ‰TT¨ÉÜ'•’DÒ(@¬Ì»Î\夡l¼%rÇÞ‚£Æ5Rû1`  QRc˜dZxHéZÃç%0i¾€-\'´RÒhJjŒß.P ß+4 Pê°…¯,ósI£iAÁ”àÞ­, KQ¦ºLIcL5Ì@ˆïŒ”®ÍqªÁ½Õ­ïû´»øõ§‚òäeŸÊà©EÊ¢iû]|×ñb­¢0ˆCÎXêâñxQ¤ç,½`· IÑ á˜ñˆØ bä'iœ‘8Æ ' ýÀMyKx(€Á×/oúf­ižŠ-X¤¹ùŸûÿ;ìßË)ÿöbvŸ.«h/C³ û½€Aó½ •’ò!¥štö:œ[×hL`Ø t«W^ÆÝ ýXê¿${*¦^~œý&?FÜÔ¯"„#t@fÜ¥ÆKV]”¤Úoë±»"™tR’Æü“¥aÌB—$Šãˆ„¦8ûÆuþÒþø­Ì¯«žM·îŸlxÅ’ÝfóôfôÆÖïŸeˆ=cîCy~tÐ0)åïÞ=æð1‚΂!)Í”¦ÆŽŸ¸åÿû¾Gc¡Ô¡>æ:†Ã,•(¯²úGpsÁº—R~‹÷r/í¡ñ³q–œ 9x>Hº—„£%ͦS(áÍïœÑ-i:TÓD @:—€¯¥f ‡w!˜ûéþAÓjÍÈu¯~ ~ÀCºXˆÇÉpFqJ(öü$ÊD†>âŠÍ>‰2%LÙ˜Ë ëº›£?l…Ü^ÑñbY½{{ÞŒÇ=ºk9a‚5Å©1wz‹ßSƒ¸}ó@MRõ|”+a²ã!ÙÔ ¿ì„ÿ ¹ÂX°Í®ú÷ñ”&i·¼+;nvü·¤Ü ¤gf“”pØ¿•RSªEÞÐ×7@Z‰†J é‘ÇŽùe]=;:¿)HëKƒy¯HÃNþÎû Éð,Šê=)v±dKú¬¥oØ'ä¶dåa×Hï.êèu¢cû+?¼iQ¸¿‹"?<Äa˜ùˆÄ1¢È‹|/7ÎXJÂŒMsôw_v[)WÛ¦aÛ#šgÙPÌ«V¬‡:ê ´xÙååð+¾Ûd¬/ŠzÃMûM;~m±þ|X&|´mê´eª¸d›£ ·e;±sùΉáþ6«3Ìõ‰hœãø8Rw¹&¼»ÂƼAÂ!0q¢=¥"˜?qÚò/°¶..Mf2ÜrkKZ(ï`;Ôh>éUÓËã-÷²ç_E¤¿±¤Þ3‹ZEÓì¨z&t¬-»­Üaô¤òÙ†<­Èº·"ƒÏ«¼;¦'ÍhÕ•«“·ä‚ å–@O_¼z{*†d2 È¹ç¦@vݹVìÿ¬çuF¤¬éäûhͪŽ$J 6¬bMž¶:¼È«Ýõq™ ±ÓkÌÊ `Û]Ræ:F̶­Ïë¶[Wâ[I(ñ‡7S«»aé×pñöÊÔãÚÒuUS±Ñê*ïÒs :ÒåmÇŸR-åŸ~uÍŽÛ]ºÞõ G¸(ÓD\æM'€RË·¤À¥g,K{ÂtÁ€qÇ[ÒªÎé@4ƒ§&Îútòi÷é4Ë&Ã{=‡þÉ[©š¾oä-ȧd 3ÁdÅÅw/h¼äFT¢šQgÓߘ ]³a #®€'je2„7jªi/ò¸—+ÉÜ?ÚÚ²™z,{IÒ!}áâ ‰<%ÙJA/«U`L¥jRõag×Ê:®ø÷/§«·@G[þ9¸Ñ›~{Ë3¸aãaͲIºû˜ä'.!ËÐÉ‹êf5Éà%›@ÈGÒÏÅÿËÞ³m·mkùî¯ÐcÏꢌ;Èdü:3Y“¦9M笾i(³¦HU¤l'_?(J¼€’%_3Ó—ÄÚ Aûì áaGusƒi3D_’FÌŒÚ7A ó“Š7›÷”Ūt Þæ$¾Ú<[ç]ÀöPa÷±.¤PºÛ§XÊli7CÙY¼›þWâ¶û;^']€² 0;z˜™n‰½‘èó"Ÿ ²÷‘V–é<ïÿZë²*{À­9Ö@e¯_µì¾±I¥{ª^¬4ù:@,¯¾Î†ód1æÕ³D‹j½êM¶Ýƒ]€¡?•ŠÞ8ú½*±ê½d0ô¯ywò+3#³Õm‘̺Ï6ÖnÿÛn–Ýe»]¹­Ôƒ¥•ö­eè/f}Þ¼û½èÕÒþnûûX’´ N¹å„¡Q—)Œl1,dþŠpçLË«íÿôåý—™X—úíV÷ϳ¯oÇ LØ ·|{šÁ–ç ÕcÖB&Ÿââpe>LÖ­ÝÜOÀ”Z¿#èSB,£„é(@GL½ANÍ€ÆXÁÝÖo_È,®UÚZÎÄ]èduA«3—uñxòØŠÅ“^)Ž[ðÔô:6×ö+šÅãpoûÊŠHWëZ'6ˆM:ÈÝmÁö UáÚîPë¥2dX?Àü%¬3“ï ÌêõœfR'š¾¿gî(ºÿµÛñ6bÁ ¦ˆptJ‰Qó®šÝ)³çèSæs{Mb*"nlyµL”`! #Nd¢8šFJc „m’Îò-i?‡§Zë û5Þù´ýÌów4AÚms¶Û?õ ìê^Ïîd¦ ³ýÚªñ¢§>tÐFñìþ^+-;úÀzm8—…t$x3ÈÑ›§w+yeþÊççÍì¬棗5G€pÒ¡æZ>ïæÇç‚È0€ÓòSÈ8Íd`‹1^§•sfâ>¥>J&ŠáX ŒA¨ç†Œb­bs&)!LK'¾PÁí§%Uôì„üš+m ]µŒ8+n“´¼bŠ¹Ñ†ÐU)µÞÈwSFb”`3JDã0ŠaD{:Ã3c˜`tO·Cçœ~;[~­®Š<¨mèc3Z«£È6ªþ,D.æf‚7?“µeàA8²´á¢ùY»[`ÌâʰûrÛñÞjp=[TMYóë?Ìþtö…{ÉãzĽÂï=NñhíÒ‹zŸZ»7j©»TßýÑ/Ê0jSë¶O°œçØžãO`"C'!ÕàZi3.0RO7ŽIhh$*Œ¥(˜D˜Ä‚ X b­°€Ov5ç­›ù¯ê²mí;üWõþ§uß'ÄÁ?ÔŘûàçõåfîÿ±È†à‘r·´¶¿Ž§X{€u ‡´Òž§Èõª,|•<•XÎäC,äÒó’:¡É ®hzWKw܃Wot¹ÎÖ+‘«•ç1ãÅIKÏãohØôxõ¯Å݇JÄÈmìµ5ê Hûˆz£uÁž‹ØÑû˜1ïiw‚º^yQ¥IZ»òùJÍ?m°ùýkÅß•™§ßƒŠ½½¹áX¦ÕA]¾Ý#8l“±Bìÿ|  ûsÈ úå†élç9ïÁö ;ÅL¼NÖ)kJ'œL!ð©w@Ç H"k¦”à8B8JPÄ“ØÉEjœù|ÞN^ÆûÚ];Z¬†øYMœ ï¶ÑÏ—þª‚E5äû¥LMÙÐpÆ|÷—ËŸ±7ƒFvÄÍ8Àðw6׾ט÷ÌÌî°«ÊIáøÍ9šëÌŠØSjüæOñöºxûíêg×r1³s]›@.çßb¾Ú„@´Ý¢ ­õdÜïµKó庺MsUÜîkf-¯Ã­ì¾™Í³"ÙÁféBçæ‡.¶¼ÛÛÂ1òj%¾öZykEÚ÷ÃMmA³¥Èu&–Ë~‚{-Ì=&ûðD÷æd§Jr »œ$¹¨eIPË’³óbY›Ù—3wn&œ4í!MwŸ€ý†ùùå•]çmø§ÿ™|°q?"›|^ÇY*'®óRO~øÐJŠ0m M …v÷Ú±½Ýè}É–#Ä`ìâ,O“¶›‘WW6È9Ÿh¨ïŠ……1gDÕáPE8BX! 0Ña¨(Uaoäîî¹O`µ½¿üõóP ym¹ÛéÞ&Ò˜ôfçã¦Î±VQçg™á˜3òüP­ä`N¬¤È«ÑÓX²ÒÚV¢ŽaDƒI]޽)5’š‹«¥y?…Æg; ˆ‹ÛˆÞ3j=­>ô•Óh“¶²·üëuªûRÉèV¹Óyš]Ô»°!ÊU¾ûËýÓ£ÑUÞý5]­{å:ëæË®öIß–½Ê>Ã4ô[bö’Î Ô…¡Vàšé >Ô£:‘ˆ0±„§(O c8.Œ½fSíOè‡6{! ÓáS/…GŒ¡!³a©„S*qÈLX0¥‘ŠP0Ó¾üN‡|ª³š-Žçãþ8»A=Y*ŸåvrºªC ýÌë{›éÐÄEŸ*C5ŸQ:ë¬:ït覸²˜&¯§û»ƒé$¼Ú´Ùe³Ye}P/¨¾iµÁ­e)÷w¹N+}Öúó`hýˆr7ô“DD‹…µ»žIô ¡Ì<šFöI'p³´ –«â&UzUnNf±×ÅQF)‰#h,AB ã #È!@#N±áhÍ‘§1’1›Èxˆ¶Kg$c³É‹'Oƒ “:‰ÕÔ-ËÔ|ó•U±Ú¸ØŸKÿâÓyl¬_±0s¶HgÎlèÛR ²tyWG±¹X–WEÏ[­»y›[ ³}½I$]Ô•-“³¡aGÏ“u.W©10D6ùu©ó/Åz%ucmléz„JºäÌ-}Ó"çv¯`;8_ÚWÄ(¶7!=åîb±\.•f_þý äPN!Vi!4!\£0T8‘\' ÆÆÆ”C¦HHoºÛ\×¶þQõŽÎzþUéáÂno‚ýuYÇ^à1Ær~“Þ:F;h9|åhÆüW¢5½Â-x¤¶äÈõ¢E°u0HG ²m5ÈþÈ"´µ4#ûYBÊbÛÓL¦¹QOòNj^«@ÕOoiK^@ ®ärM›þ£Zý¦å›³Ûeó.—ÕÒ.•Õn2$ÙL“pмyJŽ˜ŠK@Gb$$eÈÌV”) ¥ÆüÉ"_ÊÁïæÎɦâz³Ó±Ìú[ª›­Šu¥g.7ʰ…JKYmfj–Ù¬sC¼ÍªÖ$Üöcmj3Êe‘›/Sßx œÍëÛ«ìBäëDH›²Í7jÛÄå{[­ln¾=-JQ‰ôÞ)«§ŒßÍøþÐwÍ ªØZxËm6DK¨%Ô³ñgî]_ÿÒîYÕÑõ¯åÈ2øÄÑÞ¿¶{—u|E÷-æØ:ÌF}¯¼†;(¸GhËMJºíÂ¥€áË<šFä! y=±<‚ eSîS¶ Ti€™â!aDȪ˜+"9)‘ 7…¹+™U[ÿ ×”"!sò»ý”%öûº3ØZÌ=±Þ£*7Å*N=%5ܬëC^áf9öhÀ‘ÒàzÕëyîÂz«º'Ž/6´8ZìðvqÜíÕâùï†ØŽóëR|ÿ2"²¬dË„lû =*ŸÃ…”RN)u›/–ÁÂÌʄڹ5KàSEc#†1Ö cel| 4ŒcË›$'„ˆ¨?*úýhyÛɼ¨§3ÀÛÌûM™qÖMÂnl°À¾¥µZ{†¶£ò›ÛñxŽ 0š@j¯OIæRHaÓA13g®”3ól!Ž¡M¶Ž‰–±”šk‰@,´R@Ç2á6Ÿ›i’€ïÔšy”²‰–ûgiîIë1zš2âà·…Ž|ÛC˾(•¹ívÑl8ÛÊÙ¤Y;=´-YÖIm;?$GtÌ!ôÜÖÁ®m´?ÂsβÃä#N ß-2±º-²dâêL‡SîóBÇ5º$J &ãÈhÂÑÜzŽ"IchÜdC[~›õ{ªã׎Þw´%›‰vçq›êÎ.{·0[Ç*åùû®ówÒæÏ±ù;ÍÄ·ôˆZ¿ø:¦OÜL&"WÖMiòÃǶ~áYîAf>ZõäšÁvÐé-Ó;A£è$_‡bië,nܪ ¿B‡y´Š‘&1ˆ)”I(íÛb ˜`Éu#¬ÔVÁpjœ{*iüÄž@bŸäk4›×ñÂ'[›÷$¦|,ç…Å*éQù‚8V*>p³RÃIÙ Æ<û7èÔ#w£Øí…_ý:n^Ú0ª'i–ÿµj)Våðn´Ó¤.Ç•~oV¯üþGÕmFžÕpƒÆ½¶ ŒX¯tcc¼6œé«ÌºåA6ûe¡0Õ¹HhûÉØ²[Q_*üøe=ß¶ 6m‚•VFq0ÏqØ}vߥ㾗?þè¿|x»Ç#mÀ {ì™XOù{®‡¸(Ï”u—˜`ãOSܽs°—SÇ:ԔĔàÆðÄ&_Ö 1:%4 !ŽáÇÖRzY–þ<ŽGeá;Ž•¾*vwxµ_VYós‡6« aÓÂÇ¿4Óæg‡ÏŽú<ä±YFotûXŽlX,§X´§iÁŸk£ž®ìÑ6#ôûpˆ¡„6i &Ô0 HhÂ… @B"“ 㘗•!Œ…^¶éç…áôíWÛPûæX˜Ûëë 3õÓ;Šy#gýí§´ <‘‰qY”æQ© (´xhÐí£¦q=.R÷åò:ˆæ¨w—{ÝÄovgY¬UZXw|êF\¥ÁNUÅ>l±XùÖ­Ž?.ò".|K¾Á{4ár­¹~Ýdúº?§“HWÅpš¥ªÃyyz‚W“ƒ»²Bždù¾û]z$ê‰áÑ"ͶÇiÝឤ8ÎT/Xw1çêÚf ôWN2ÈÙ2½‹×É>-F™Pz 5V§É`ª~x¯×±Z#}òb¡}±F,´J…õct•TFZI‘߈rô!þîP7‰¿[ÿiƒÙü#.+›{2°Ñ±^l-Æñ•˜!k­nä½Õž…¾žã\ßõâºL¥Ñ&ÒüÛp+åÂîXC3ñzåayéyÇÒÒÂÏÊù|R¡lz·ÞDÑcqúŲ:ârô^ç#¡ü+ß±Ãó;.š&f/í;Æï@G£÷k!4ÝAüÁNŠqG„þûóm?(!À‘šÛËÚ-•·Q=w¾—îÎKy¥¢Tx1ЋA^Œw+áoÎÛïjí¥CœÞ¡õbﺯ¶ÐzËé-P(Òßúvã ÕÕUßxça뇭wà¶ÞyØzçÁOW¹—´v«ŸëýàkâíˆZ'P…˼»C_y'æÆ+n²FëËg­Æ¬TòÈ2\±[;ɳ×&¿é=dwÚÀŸkZ;}/2m!Ñ\æ›+YêÇ{ö4üÁæRÛ››ùþÛ€8ú0 áC¬ ¶fU¥þf¥(íu8ØH…àI‹¦:y3fA’̃(€TÈ4Œa!;CCY®æZ=º¾ž›<èðËæÿ¯€ÍCïÕgÍË%ʱ">Z>÷l¾{p™'=_pPˆbÚ÷“V…l›"Ö$ñ]Él%Y/’›o ¥†Ù…¬—õ¡¼ï9½_Õ•w2J~¯3ϲ¿~½³7JHªçyZk¹aì 7ÚrИYÖ¡VùnàÜÎÐΉ :ÄEÉØêâvQG³0>‰œqc†Ã:tŒêª$J”SªÞÆ8 ˜ˆáîp}©§¶Orùÿ\Î ²Rß}霣]UƒK7¶MBíÄù.=W¾ËD×ù[f|ÜÆƒ®xZ2r4¾Iyƒýt4vïÝö½Ç¦cʳ†-ç†-Ñ·š"m( ÇÃé—÷oÞ}zR_ȵ¬ú¨ö^çE·Å`ÛȲàWµ lÅ.ê!ZÁìˆßóSž×Óç»q4Œ¹Œ)-1i*Ì­r¹Xp£€hÿ¬ûKÉ?”Ä—ª™Î„NË<k'ª@Ð @1Òvõ8æÈ(•c „@â':Ù}&¢qÂÑÊŒó@ý@çn®Ïëh묥®yC]–c ø”w¬fÚ”¢:=7æø^Òú®¼ËuŽÇÍ~.¥ÔºIÇiN’úLEŠuö¼ÖT™÷úéÐHp¨Ô™ ãÃbîš· 5ÈĤ©ryÄÒ˜1.8¥©ÎFɨM—J0 1eœ%8¥©°VšVçÀ¨¡ªå'³–}>|8‘ƒ|šAÑC8ôeX)›ïÜÑJG“í³öò'êÇ©lêÿ»­oÇ¢|4ÞµYdÈ·Xiæ¾Eó]ß§2 ÁaGmûBòm ãcÓ(‘ú-Ò8%\ý¥bA¸^8Ó]F‚Á°¿Òj.o^óŒÉèeÒz;{ŠïC Ýɼ-ä"ö»Ùß…ÚM§&i« ·jD”ÒCü{ÛÕ|šèSµV¥a¢˜ ÊÒ)->I`ÈFL–’ ûú켬uén+Ï_k}1¤Óqœª¬Ý`“Ú7xQ¹;'…Ug¦8ÆjÕ È!'WlÕÎ/­ôšN]21VÝc<”˜ ‘ âX’*52¥X yï9±ÔÁÑLé·Ž&»ñ Ó gtÒË¥òbXíèΜgÏ åí•Áõe‡ßö›Ì6™3¶øæ\äÞi÷ó®Ü7¬NÇ 1bR­£“¶ü|÷c%8&`†må¶™ög¥'ç_ßüôñ½>öœA0"AÓ8I`S‘b&a ("@HX¨”B»|¾«|Yæµ>câe¾±N ¶•,™”ÿÈÿrjRšÀG’5Úh|¢i}t@š‡'#Û—Þ*16Ò£¼a #XáÆÜ[:5v@Ÿès¥†ÜUÏoFÙà.kïîhq¯£ñÝSÊø‹º.E™ßܾjdØ™-Å´Ý0î_aêB d'›ú`M=Àð×S®o×ËÒmël-ÇÀjS³m}1B˜ÿ‡ù6x^Ub»¶ã@‹l)«z¡ùe¡£Šë1¢ºsÁäº'uSv)uÉañ¥¬‹ëš‰!"+šbêƒù¥Wc§Åñô×ÙðŠ`yÓæIaßllêÕzXRÍÇ”m–]tÕ™$+xv2¬Õú¯ÜA«^ÙasúÙ9F‘Ó¶p¢œu*ÅYoðøv“ݸÛjÜjmnÞhG»£×‰ŽÛTïèmÛõV±y›o^7,3O¤Ž"¬…íôjnðÓ—ì¿Ëäô³a½o(;.Õbp‰ÐÚ O¦½ûŒì8ÀF0BÌBRxØÉ€z2¢§ySì ç!e'!R;“$jGÂÔ¶$Ñ!©"L …0A8â,IGzO¡3û™‰®þVŽq6Îóµ©ùQ•h1nÓÀ/eéÁ¤v+É‘m+wµç¢y•nKoôïî¾`¨¥{o©ÓÎÇ ð0Þ: ¢°¯ëKêžèrhç!ÀYH1Šàa™ø°e¥0ÂÔmËE1$ ! $L$R  )€ a„ˆ«ÏèR:[bøÞ"<’M«SM=\/º×j~¼¾ïñ&–¥0.ÿø’'yý›’Éo–Š“ÿùÊ¢-‹Í uY ÎRã†Ç3ûZƒ½öU̘CÚnšiÜ»ÊëjÌwßãŠI‚G3HCEá¦47ÐDÙƒÎ\,)€!¡$¥8Äq ¨bÈ„òPH°TŠ$„ÄAù2U å«]bågÈ‘ó@ן7ýù·ó÷º“X<‰%“ØÞíâD,«©PLßÿÜûå\2¶7ŒÐÄ„–SeÝ#vMØç´‘Å'¶¯Íý`× ‡ ‰b2£”âCnkVêXéi¶a«ŒNb×*œ˜` J(@@‚yª%Y-ˆ"@aÈ¡ðhøŒ;ŽvÀ7o? X]»"%î o¾~ý2¬óLÖ÷) ‚J*Õt; þbª\ׯ ÁíHn®I®ïU¡KõÝ,T•bPÍ.gÝË÷f?˜ÒÝ“zèç†Û¼×ŽûMÉ/Ôoj-ÿ‰ñKµ[h¸øü·_goMlKÛ†ÇXн˪º4ʲËQ H«ãô1ƒr—›ÛUùyotF8Ök£ ‡¬ózT¶Å|“×YšqñG§…›áØmÁ“Q"C ¢8 EÄ Htkâ0Pú¨$ÃDðè©\*œ¡fï/ö{i? …ƒ~FÑ Df²HÎ ™¹–OéièÙéY@§IxÈb1±“йº¿ë—ËBNm8gTi¼ÄksÕíº GpÌ0“<T¦ â(FD$b8‹Q˜Æ œmÉíxÊb%›ƒö”î yàb}díá'Û¼œemš#œŒÐRÀžàÙÙ‡ ¤Óì`ú·c èr0ŠR+QxPÖ×+ö©e(!¨åBH‚$•<" DÐ$„1Œ` º9~ Ôsb¸ÉË¥‰FÛ·zþÉT Ò÷‚øëåúóÏ¢Oλ  ?üúŸO￯¸o¦„~€ žE(‚Ñwɸl™\ŸÖ‘IHåpÆI•–«O7F!B&ɘ©ýR*–Rñ$‰Ž#ç=ÿwéîmÐ)å{szÖΪÖÔí­‡)²,YqàŽ —¾æùª:}'“ír)Qpv| [²Ij(ÚAÙ¢}ßçù¾Çcj§‘£Šæƒ >$ší W®ä—„"Š9!0I€8”4QŠbÌ D”cRµ§ˆ–üòYZ¸¼0Ò·‰ž ‰ÛÍOð㌒Aƒ!ÁïûéÈÎ Cr©gËL-=êÞλ¢l³18ù:L´¾ß‘½7 7dž+ÊìsÈ5x—cöJ²’_ì³³ \úžÜ´¨É%Á6luû§+þ~ƒwD”m(þ¢^¯– •¹ÐÔzR}_³¦—áàhÆf¾Íf´ -Ää“\ìùÃ>´Ñø[ð¢p#”vêFh[™ªPÒ÷‚•WRí_Kw¹ú¦v#nеQ³a¼Ù=ü*s#„¨Üˆe–ºÏ݈‚߸åÒ5 QeÂxÜ!nׇÏ: ¯é~}R©šÁ>ÄØÊí ÍÌši–eoiV Û/´þÍ€l UlÔ5Ù»!ßQÙ¿;2óÞ•Û¥ï‘4r¼è®ËƒXý±µÝ#køgèjgGCU(<$¥oóŽîÐbJ€1OxNãB0¥ö ‚£D£TJbJ9ö*ÿ’TÏý0÷9Â{‡ó]‰¬;H˜ µ£(že0ß&WÍ*£÷{Þ$¥P¦¡L ˆÇI€h̃L* RmñH¼Ë-ø ƒZê Ú¢teIR`Ýê9ìãV^‡„»b¼¿‘M¢<ØÏ:÷ý²GyÌÞ¯6‹féq꣮ ¹ª™©ÈчK+?faœùÑ“u}T§Ñ¥·«%[¬t.• ¼ž£ ´úáÅÊ"÷vYÉ 'iÜ5wa¤?C!rï‹›¿©ò¹Q¥µà5K^êËvŸ¸Ú˜¬÷­MçmÕÜ‹ŸžoÏß§Y)¯ÙJ‰ UNʸ¬n²¬E¯æ{µé=0±Îú=å}Àv­òUÝÓ´¯6}\Vy~ÙŒ_]ÝnxÐDß¼¿«9}¸ÖnMupõºÌ»3çûÁm 3ÿ5ÓF½¯OO÷ã~RgË2«NòryÚ–RS ·à®äÒIFY™Ch]ÂìjÌwSêrúŒ" Ñ ¤õâ‡(K&^ú¤Æ ,GG,¦TJy‚`§©(–(‘ØÝ&ŽÈÒXkëxùßÙæå T¥—©=Lïqé7O±dLÈõCEou-&‡ÀÝeóbôxÛî?mÑz[wzû Ÿû'K‹/ü=}Ðïã4"“£o|Îÿ÷×ׯßlë‹×¯ÏÏ?ÚÀŸ”æ`?7ŸÒƒ¨±ŸÍgŒ¯_7)8lÄ{íÿg~®úO¯_fõÅÛ ¶Yö^ñé¶ÍEýY­HöóÖR}V+vÂøe5Dè-kÙë•dpnmÈ×›ÑWÿÎûOº›u–ÞªqæÚ&À‡=×ΙCä9¿:ô® o»¾-Š…’Ç‹B}ý¢ÞÃôô—C^J±¨2òm_­Zq³à²4.w.;YÐ(å¢.·ÕDIíëhÜ ]%¬fÌûŒ›Ü `ן|½ÎîT¢–kä+Rßx0E™«¬jªÊ‰3„ê›Ñ—Ø!P)ÝŒ+=²r ÜÍ(Ä…êN^Þ:0jmS£k˜È-óÜÕœr³B]ë´þË1lÙv@4½àó¢V ËU¦ÕiÜ⊭¶²_Bï?ÌaÝæ–g­oÌŠ©Zöa®³ÈG„ÍjèÇC¬à•áC¢·Áh”D{—qˆN=‘{äl…ûã)Üí*ãÕºcŠCDf!TJðAÖNûW5Â`ZíÆ8L9NSÆÃT†‰vuK)N’H+!‘”…lgKîP»™kx¥úéc¯Þ)ÏÇ·TÌ 5òÞÊ⋹)XçÂ,JjNïi\#ØÕ>¦ÛÑyCKj§MlÌæbãQúÈä1@óuS" "!V¬Ip&tÁj’ÿS $NyÄAL%•qL¡ IÆ, bE !)DzxÔ{„Ù‘Ýq‹Ü\ ìÄ^ í& GÈÖy’ÒG‹Õ­æ“\kLÕIqÛïe¹”ø#®ƒfh¦¸†`Fbrˆ\›¨Ä…Næô=â˜þc„Ò„ÈR¦QH QXS ‚Q$Ú…4gVú+˜FŽqÑ·ŽŒ:: Õ#ø`}Nï)ïšã8:a g8 8¢‡ÈÅRõöf´óÓ,$'t­ˆ‰ö[‰”ú›bÎ$fi¢ôá(©@)!–J^p˜²£ùz¿ûèÎt§:åôRúÑëìÆ¨ôwh¥¥:ý ßÚóio&:Yòá×ßfäF–lÕe_è|¸ÿñáóÇîä‹‹•GIñµr·Uæv—Ç2ÇDñz8 Âb’®>s.du©tº¹YVf&)2>A.k´T°ˆa˜fP ¥‚$ à@( qÊ€Îí§#¶þÙK,w_ލLëêušÎlV´Ê™í„k5ÿ¨-²?/ÞÔª>AÙƒåÄ¡‘rTs¾ë«c"ˆgiö=„ý´é·’ 8D tJr—W7SB‚ Ê€ ‘à@)ýj3 öÁ󔆄‡H‰ƒ.ŽÂwÿköÂÏGë÷rìîFyñáí—ÿûüU±`Ï3bY,çæT¼n¯þÌ–j7~È Ô»‚·¿ …Æñý;| l•=d]NöX+õ™Ik—Ý>ðˆ¶Ki'Ím.|¶¥œ·ø¹ÜBÑg ½@–ªïÛµ´7&0Éûq%¡Ú”lÝÛÊ4¯P]XÊ^äÉkµïÌÓ´’u/çL‘_«­Ó<ãD3oóM•¯ä´7´Wä 5²…¢éèhpç±’B3„a@9¼Î–:´Ý RRÕßBõ ”p–rŒC$É(á42,dPÈ88Þžç™È»cúœý­µ¼2”xÖÒâ\Ó¢¥©(œ?8Û,·jã;ΓèÒS†ô> æ‚ÈbCUznõÈ¡Pga”¢pˆ\g©DÕG¤îÌŒ§IiŒtš*°’2išE‰ðî*î[&¾¶9p-oꪓ‰´ÅÙõ嫬(óm-á«Æ óÕ[=IÚƒç¤÷Ü‹ežs,õ=ñžµä»ŸÞÆZýÄ6ÌÄÁÃt€ï‚ÕüB–Ý…ÝDÓ*Ð\b,–«êt‡ËRÕø|•OâO”îVhÍ_ÊȽ‰v*^fE]éž^icª4/ËnNîZ©Ðw]J‘ÜÔÆ!w19&»Êj÷¡º–ý—¼g[nÜFöÝ_¡Ç¤*”q¿$凳™$'U¹Õf²gê¼L `+–DF¢Æv¾~”H ’hy.öd·â& ÝîF_\‹ÉYpj2Á{éÔ­aâLžÝDßö +¯‹ßU9ß\gë‡Lz…ñã·y¶RyÈq Òm–ÑÂwò{·€Ss:އ_Ž]›»Ü® š¹˜ã8ì̲Ê@Sø×Hàp‚»Og€u±ÌgË“cn¡W³üzì }ïÒšq¸aæ;—3­Z.vòÏYFBF ÛçÙ'Á«ÿÌùHà;O<žêF<;BîÇ2SèNÃ×^m£1¥‹+ øhliáGâKþŒiny Î4·ŒÂšv$Þ4Ðã1§¹a,î4àã±gSŽÆ: <èh °#W߃>f=ø¨%ôp#—ÏCŽ_º|;fÑ<àØõõ c×¶˜ç¾ -íÝvƒÜx‰h÷ë2îë­ŒØm¹äµk}² óÑæ±¼¦¦«H!Y¤zd®N×e’b³¬Êbò*F‘d–î¢)84·¶ì±ÖèÒ–õ¿»\F׬xûûz«öƺ±^ç6Íun+kªM¹UÝÕ¼­ÞÔþ {Á,³ÖœÞïj>§ËÎ#›ï~wûšaï. ×®¬‚Rs±YÎce„†mFm=zµ4 7ÅݰeSul 1e¶Î{mÊ]ûÛý¦R­z—»1¯7~g-p{ÖÉ}9WëÁ•ªeHîs®Qa¯õ'àu”.·7d;4KèN!] ÀP悞Q¦‚ó'Ôëg!ÿÍ”¥ª½i@°9Î%42Š•ÄÖK†žù‡¬Ö\!ˆ”|‘ÅžÞÄd²{w"´ö˱¿±1Sív‘z@L];Èý&q÷3ÙšR^Gކ¨âôÒ/úm÷û›ML‰;ô[4:»÷ÿîoe¾çIÏ6íÌèI«Éôª&Ô,j§¤ÝCi¡røþzþ0H¶Üä3dVûla¯¢ 锣àYgpÉò@P¯³Pjèñ|J™[?6銔kc€`î1À"E)6"ÏÃûr%9rÈæ¤ bXšÍjm×qFYžùùªšÍ·&Ðlf/ÆÄÔ|Sl÷ëNqGs{Q¥³°ýÞãqÌÿÚÌæñ¤ëØNÞ"χ‘á]`axkÖ&QhE2Ê'cÎÎÈ\©P¸*Ö}bÊEÊôIs®•f~‰¹…œ;!¡VHI‘pÈ ,qžü‰vï§É ï9 ÒÍó »ÿOŠ×{Þ»`ês}ã[3„é ²ˆò#ʉ =v÷Ï9¾™üüëÿÿøÓOÿ3ùíýôã·ÿßw¿üþÝ䋟ûéò—]ÜßÁ L»ø:´‹poÇšØ ÆÒo‹ÐsbêZ²L CðhÅ •™¡Ê]Nœr<´ciA®5xkÑuÅ?Ö۳Ǥò<®ŽXbiýðÓü( ɇ¿nË#_´™QŒÛŽ&fåßÖx¢õÏ eNèÁxO´ì¡ì^ñ&H‡|b y=ŒÄÖ €àx‚ŸE<ë¿66FðúxšÌÍa0•P`+@î÷Q‹0r^Í5ñä“S e£öܰvaÏ"‹ˆ¥Èk›ï!ì¶.C8bú>ÐÚŸ®E³³–^W·èbQ,‹/~ö¦¯T¥¦¿ÿ5ŸUöËÆ˜îÿßø­X‡‘ º~yå?iŠB}Yƒ¦º¦?xμ×_£ÏÞëæéÿY}¨ëÍb¾×¥ªÛl}£VeÝѮ˾+æ±4÷€to½ÎÞyù¡¾e±°ÝND:‡‡³X›b5Ÿí],Nù°»Í¯ì®³TËë"ñÈAåÒç Ï?¶ Òɤ^þóÿ]-~±Õ—Mô¿ÿÜ`ïëHÓuW=› •װܳØÕB_¯xoº}8R¯Æ¹™±—¿®®Õrö÷®R]J¤Õzþñõ–ï ¸Í04O2;¬/@gÛ1'%Ï™BÝ:!ÏQ¨Í¼)])¦4º8%+Õh£¹ÃPê„Q” €$³ å ¼ò©3öCçHìÖãë¨3Ò’Å‘")Kt,g]#ZˆÃVØQ:65ð‚´ð £›¹ˆ¼/vuU£”G[>"œîµ™¤óíàç@XÀñ]iÓíû³íÛ“eM!  9ÁΡšíxRÊ6Î13ÃpÄFS9–kg-A!€zñü«Åç/j§ìËC äñæçŸâ÷÷áãQ”å¿Å þõßtàë2îhMÔLJþ5— eVÅzêû;[]|bÿ2<ú=èP¦,Qèèv°‰ýŒ3!›P$1çˆóþùuY°cJ Ó†’–YBµb$wV{UBÇ´1F¢e«wæøã#Ä3aó»‰íbÛi³ËûDœºªÚôaˆqâ+ &çqö|ãg(ø·’)M™S0UŠiŒ¤óŠ¡W ¡v9à(‚Í X3 IëW}gõ[½*z Æêö9røÏ­8u8ò(ýt‡•°Ë¸ÂWõ‡Ê#à=`ñk¨, ´‹Ê1Úq7‚ÔI#€z>HðY'eí+¢,¶X2çµq«° è̸—MÃÜCqjÌEŽsþ¡2ï~Péþ°ÌþBñø¢¿®$Fù*(%ˆŠ}$ŽÒön Töú!‚ ¢ç¡ò&/£(”zÇ)FL.™ *‡8Î G^‚°{U®•¥\kaÉËÏ^÷’ðÖ¯Z\´!ÿ «YÛýDˆz˜;@={²¤=уg»÷'œg¡ät‚¥<“õÞ{¡†L0öôò°ÇÄ /1Xu޲"cÍUÎ¥—$^ŠA÷r³Þ~ø8eï%‡s1õt2î£lM²s¥•ÅêÆm’Ò/Ö_~5Y[;)•¹õ€_²ÙQK=÷&⾤rŸíF”¢”à4¡‚óx{™Oxð @`ŠS.=‚j£%‚Иå $äC7ÜËUÂJÀ°ù?VîVªœŠ¿X‚XÞÎ*ýõ.C^ÀŠßæ* LV£L7±žrö­›-¯Û’›»‡õ/ÍÍí eøtÛV™[‹ÃÕÄ›$@þm—õÔ±ý©ä{×sðÀÙîóÆKî÷‡ ~‡:#X||­Æ%;Øߟ€* Æqk¥”[iDî8p¾5´ËrÎÇLýа­d;Ë=\ý4ØT[MŽáB‘‰ÜëÂg¡ÔfQú™’Qþ")|’˜Q†µAÆø‚†2ô.G‹ á3l!Þ²ñÏ–m—æilûScuXè«z©C±9à£Ã°ˆCHþj¦®—!Ú×Gô^ K¹W-{¸îá³ÝàR¹$ dÂ!â,î¹¾™°)¤S&ŒNQJŽ¡¡°@ âp¹^Àgˆ{î ¤'ÑcË[o‘˜xo—‘ï³Åü÷–öj~AåñéªÅ¨,bT-‘™V4«L›ê¥\!]cH8[æ·öašê3E¨ZÙ¦³=é1ýcŸu2,à÷;Ÿ¯Qäú'Ò­w<·<|Öû¸}ŠÄXŒ'R ŠÏˆS­òbO‘_šrÞò’‹öšBØXvžo *ÀÊ ¤Vš gÌç¾ó¤jg¿B *³_é¸ÐÓAÙäji¼TãŸÚS¦^\Õ˜‘Ìx”‘i¬ðù†f',`Ç^ê³Ýx{S8>òtE8ÃgÔû¨<íÎL“ŽŒŽ{20RJ“šsÈX`•ײ)’2'V´[SóÈl®–mºä÷~þÙ«³çoxõí¯¿íÍ=ZÏ«ýÈ´[UßÕß½nC)‡DsnM]R|ð¾ÃÝ'›7³Ds(—hž‰Æ¥½[Wç£)Õªæz´)nþÄô¿ªlçµ_\á™`Ü/æ‰ò-jôaÔ߃ïz1ø1Ò9½lMµc¢o¾_Ì‹Eb˜P‘äb2ÆÔÝRjç÷ »ôᡳ툵õ Ðß :#‹š'Ü…QeŒÓ^oõ .éa¨#FZ¡’¹¢XŠPã‹@áIFJ«­È9æúŸvnÕLß@~z±GWák·„=\M~i‹>u ÈjzR^Î$FîfD§ÖLsGÖB‚Nñ’’ÿÎ Jíß1[ª¹W=+ ÑI0•B,7HhÁ¸@H1‘k²â:‹,ÔLY¬3ÀQÆ?Œy¦“,™&„ÁhZøtElë¸Á}í(¶7‘Å{Úˆ½/²`Ùxˆl ±a(õU¾óm9»×w ?¼-ÝSè?­©tVGÞù®Šº°ì+SÎXÒ&#/p¿ÜbÿUÿYÄÿÝîØöw÷˦%Á ~øãÇË7ßûÝQ92IpÃÀtÙÎ>ÛÞ‘u†˜R™  ÑéHB„É9é)âk\q,s á‚ZŽc„p™s-•t"¦sRXÎáV[zJÏ'Òeš©ìd69ž†¬©^üªX¨Ùò«É÷+kcɳ’˜4o?’ÈÄ‹=G&Ï ßh_‚Ѧú1PSç¥ÿ°ÌC¹sa‡‘"Ü å,ø‡#L³ÀsÍM¨ŠT)½Ž²{w¦»™rÂR#!œ@®~lë™ÈÞ£ ¤ˆÊk\H~†ûÚ¾É~Øâ<׃îÙ¥]jñé*bT1ªSÖBÝÚzÈÛeË]¸zëhÉ–>¿‹M³enïmþ‘ƒ–:‡s·)Þ6޾ã÷¤)û›Cù ö‰j/Ø+é1Âg»)KÕKF” 2ÁŒs€Ïq÷«·¾P\u‚à!Ú!yÖǽh(G@K  p9¥Èk"ƒ£~Æ_0±—WˆaP~Áùùn ÷ú¹ vÌܳñ¶C·=xPô‰;üÉ^ß^\‡Ê*u±·‘kÑ~Ê©þ¯Zå¡úæï¶Z·8Ÿ@çç›­G/ƒ'¤kNµ½¬ÎG½,O¥s·²6dÞÿ²³2l^çïÃÍdy |§ù·_~€èmïÍeQ–s»úÈ&)uàé9¯{⣶¿óxϧaÝF·Ìú*²ë,²ëš%úç„]lája5rð¬Søépÿ¥r TÎGUmúícp‹ueO¿Uëâ4Y—sÊœ€Ëí»¥º> Vyâ4Ô;”W# f¦(ÆÀmÅ–ã`^H9=» Üé© €ËSâÁŠõ(°QPŸž„³ZŸ†·òv ®]»ª³®¼6æ+¯×ãw[®­2Æ®OOp Ά9µFGÞÝÌÚÁ#‹D¶± 7$[w#0`áNáb>MJUÅâY§ÀrgæÅú4À‘ ̃ŽÂä@ûãÀŠrܧŒz«Ó¨tê4ÜÍØi¹yøûï/½Eú4?,o«âú46y°1$[Ϋ¢ñ´¢˜{Þ`c–À7¯g§DXÎé½¼ªR#v›MåÄ|{ç_û®< Vz°ÓÓ{ïyuvÕß×z+~[,ƒô6n á‡4.–aî²ØÕ$6µo˵YDÀЮ½ò_Å‹ƒžºëÝá*GßD\“…`§Ú§´èe14åAeWÁoïÊvÂ\BÉ—„KŒ' a*ÀYq»ãöŸÇU}£™ÂVj¢´Éµ$ÌHœk !ã¹4–r€9’wýº6K/Úv¬)«VXýüݽê£÷øÚŸÅg¢n4hó¥ã2Þ2 fŽŒ;Íþ"0–'©?â¹r8º£¼C""À„pÌŸÊ8ÂgÜgÀ“˜bæÂ0nÃf”@ÂÇGÔÈrmÆ{&LfhEz¼%NôË2{4Xø(>¤ƒŸêkD# q 'áÆAÕgùÈù¸'F•c4èhÀr$d v’¯Ö`ño¦­ÇUsQzQ¾þµ1ëgËxëÚ8! OèÙ{²Çm4ßûWø1V.Þ"ô™î™`v;™A:»ö¥@‘”KS¶eXrµ;¿~HJ¶uP.[.×ÑY4Pm‘”D‘ßÍïp¹ëÇdi¼laJ¹Ê‹ò8ñ¥)Â帄‰cDl ±ßã)§PCƒU,N“Úvï¯wý[—á®–íõ v{à:O¶[œ$±•ù ã \¬N €nš'Œ*óG-ͳ~œHUo|­4h·sGÉŠ! bb‰ crO4Þ—/ÌL§A'iJ´Äº$4JKh¤` SDÙÏA†’14èÑÞo&}KT§‚¥³HŽœ›Õãæé¹\$úq3¥¶s+82*?õ„'?íp$?õt$Oè#ž_ÆF9ÿ¹¦·š£ü“`^®P®'ìù¦*Lüð®­yÔ:( ²**¢ `;â„*I±Uþ1ÄÐbF ‡»+ ögùíSŸcNpŽÛWQ}Ǫ'vx{aç¶‹22=gÜaÄžé=wY•ë×ÍA*zpÙžìØ´=‘×lÍ1[äë#Ø~¾ÇÕy‚]ÜÞÄ iŽ Tn¼ÎûÄj.“£t°YIýXÿí™[\•òáØ÷®¾–wù1°„|×g¬tìéÅ>x?ÜíÒÌéß~]ejXðú«ÎÊ|]œ>6,ÅtKs¸•ÉßµhR Í ó©&ÐE}òQUâÒr5±dÓ¢Ã`rMÀc%©Æ*¡¥R e —€`(D"©’ ¦XãxBnÊHK³°ûú'K´Ù2ðSs\Z-ëEU)ï=¬DVª =[·ázªOûªÁ%÷W¾(K¶œº}Rο•«›ó̸ó°álœÀíÕZDœ4;8:Ì<€H4ápͼÛ·ÿ,*Z9-˜†` œRNT*BÂò˜2d˜D‰¡Ô(XEuDä!J²iÙ~aÖU@vGšz~=f§­\-ÑÑÞç*S%}pµ}žÎÊÓüೈÄ+„³MV¨"+åz沃Íj§'\‘C®ŠìdˬtDgVꪡøZTöô›Ï›ÏM³µùbåbdǸ͔)nš>&ûˆHêÅNºÝ·¦Ü¬¢ù¦Ón‡¶v4­:Ún¾£yº]'-ûèãñt3}rÒ¥m"$ª3ï]tX €Dá#ˆÙúv—-ïÍZ.²{»£.ó+BñTЙ€'ЏCj+,®1µäÍ$ iÁ”qªå¾^ßáÉQQ~½¾1fþd•=ªú>­zÀLq¬ºF°ŒF¨^Ƴ—£x³Jü½žÛ8Ýî×ktÿ%[âæ ^ïcOhbÂû ¢ †Ò¥þ÷ÇãÙRq«c¥˜ñFÚ™Þ4gÑG}+a6¡ <æô¸ù_ê½1Ç!ÖJ4±¦&I(G1Ž8ЩH,Ùa<ÑÇÀѯ„^­ÊÕ»ÀeBp‡,AÌî"t›èÛÆÚÊÁÑcÈùv4„cXD¾#8÷®z-„ ¦*¿áºú8TF87›&ÚsŽŠc>uÙâcl*îʸSL+"•–’á$a2­Ó÷iÞží‚ç—ªxÿ¿zîù¢šüìƒÝkáq~6p:«ðs &„ NÆóô_w ÃS†Ã$Q˜Q£b®„H'Z¦BNplRŒ¬ ¯”ÿ¹yãù]ëÚçlÝS·Ö#û7.Boì4ÂïÿÜ ²Ãý†@îÙ„ǰîv‘ûOhîm–r=qVàR/Â8”Üq™&‚Xô²¼M™%  €Ä©BZö–÷±s^?Ÿë]ªßöåËDÔîT¥ù¥™¯Wä¬h2[çG'-/â:î|E‰@g*Æ‘™ö–õu÷Ëê›dùÙ…Oê„ãcª¢xã㈒)n‹ÒªJ3Ó_3ÛÙo<ß¹B.gyÔ}—¦#ýi‰zGù¸^bä]fˆIŒ)eøñ¯[ɨ”³âÂÐWw‚p’jª±à0Ó„cuÐPMX,)%Ê0†”ºšú„âè€pð,}öÒr/ a]"þ É*!9$X_Ü6Þª§–EÞr1½!ì Ѱ> ¿¯ø%ÉXoRÑaJ}J† b¡@tLZ²ê•ö¿E²”vñ×nºx˜ŠI ­iª,ë—©&Ç«˜a«Ôc(%‚¨Thc®[úê­ck}ßW+ü’ ÖœOt˜Mº‰™sÝw,Y‘ |n%Øš7r8…àŠNb+ʧ\é h¨Û6Æ]9$yB¯w$y"kWß~ݧÙW3 ‘S¸ôÎY¬ýÙÌ:Ïm½™ge ÄЛ5ê_¯gËɶ–„ì&CVžsd£§±Ñ WܨP9Ú F½ÂÑ×û}g”븖¹ç0Ášì$¬Štmõ¨Kùbˆét£%§ Ë«û¢æ C¥Î]à0dl\ é,Mí:r;1ˆñ4ä(`]TJ¹BÆh pÂR!hÛ9Çb tŒÈÕ˜á8 ø×ÊxfÁ.¬ä¶£Ï ß.®9èz_ÁWäáë€aÉb…\#jNn[Qsîº=b–¥–•œ£õ,i4¬!kYôZ¾t[f úªÕ¶~VRi£ÉÞƒ’/†v:ßRtìãe»I-V†ÎµÎ|ŒP»mÓ½«]^ϵx}mÙn+LÙiXYáa8®â'ð–©âæC¾|0k²¬šÜ#]§cÌ@ƒ¨ÙÑQ3jiu‰kÆTàÎfwåÃRùª›bÂÁ4(Ýk*QL©ÕS`  Œ)@8T0¦)—Χ$%4»<øÛ|=ó²ÏïöÑ-øëEKt£$.Õ¾p×úFËËN¢ÈðEôóŠ~-uÀ·ðªV±ˆ<ˆ×Á óÕtm?_w.oìx÷ëä;>º+]àÕ9w¸ ³îÄw¹9ïaÙ^ÜúŽÛúéû†å>°¹n[É¢ø¢MS¹žµšwïn4=dÍT°>¨ÂMf0y`#”ìW³ÈK3ùhŠû2_—ïB§¤ k˜<ê;¢Æþ…µ0lBEÌñˆºñe¶0äKãCBÜä E¥4<‰e" Nb—y†3’rÈccÀ !Š5ÂËLáeßNÞ?úÔë:’á¹qV¯cÏãjxªÂªðBQ¡º¯´îúÆÍ„|þ$ÿƒäR]w‚¤kª‘ˆÆ§¨Q“ùBfËÿ˜ümm,ÙYï9Þ æ¤ØèÝ Ñaþ!ãµÀ8Q&¶¢À(´Ë¬Øöu‚¦Ð­¡€Ó8¤Q1,…–\@C"¨f)B†¥X3–š$šÑÔ(Ê^­yñ¬rµ)!(cn–‹¡Å“"pÄ$‹|³ ”im¶ÿøéó· ËdÐú)7:ËÓ: Ìëô˜;ýàó‘”:¦¶Þˆôìÿ’ê¾ßz¶²¿T›ua¼t»Ôn>›=í¹î+sk{4vyȬ:·ÒîFóçO?þòSë9¥šs«k6[]ë} ñ!_'YÑÿ¤ªÝ,UÿÕoØ2Sóª÷5·Š*nUqõ]ïÔ¥âhXªÖaÃÁÏ/ èLÞ|vd÷æg{Ã#tgvÝÂ0£q“™û{¢ÖÌæ$¦‘‰•d¹ ÌÁзn[ ƒ¢Ðù3Lµ:Áe$›˜  Ê €šB–hIÞX ÕU$ß—öí—ÌŠÚõÿ| §ýÝ·ý–mý·HÛö÷ÕÆGnã[ðþÑ<˜y¾Z˜eyóÉ’)¹Î¬ü›šŸ(¸¶ ª«*"BÞÙ6:L"@A©ÕÑ&BJÄsÙ.JÒÑB2 '!1Èj¡Z`M¸I9â±Xª8‘Œ"¦)K@B W: oèzÍ ¥½¨é/RÿùßCn]’ž$Ò)ÜX@£¢jÑ+ Qõ©ƒÈŽDG5ùé+½ül0äwå!t׃¥3” # eü9k!`(ïÏ}Ä;8G±À =qª»w N—@éQ†Ù(ëÌa6!Ÿ&cYFÊ…bœ&)UH©DŠ®L ¤ˆÀ„ÙEZùfòŸõZUè²Ø®†§h€5~žæ²ÃØ×¨p…4«qZÒÓe =C¾½<ÿæõ@ë,zá™yÅÉIøkËûý ÖßÙºr‚ÀÓ‘Ò·þ’¸E^ö“ 0t*0lB AxTU¯ûH»é¥/$ %F®SD•¥€©â)' MÁVhe+sïèË~%©©žÿ¢™½_TÜ-p¸Î‘/…ÿöc0DPì²HĈ1:J$Ì3Ï&aOqèØÀñ$DÀXCÂŒI G¢ b©0Ä¥Ï«ó °ž7ÆLNw#y~£MÀ5åÍà­ç²aGÓÛµ'‹ÕP×,K‡º2•u¹ê[©í`—óJœŠÛÜ¡®Õb°«ê)fÙ`×f9ÔUÎä`—‘¡¾/ÙRç_†z·Éàü·ýO«¨”?*:u9îн¾féóÜèèðö+·QĆHbä¥Læf‚¦b‚ãiR̵i¬išrF’ÌþˆÅ'‚(pšP–ò}Qö·b{ú3Ù¥œªÚi»Ñ¯ÀYgEäAàl¯ËvLäR»ëhžÝÀ½ _=xç¬a‰ª†Gû¹„ÒEBH­pI0`c‚pçÒûP¸ÂÚS*X“J,i  …ö„J“sž¸©ŠX1ÂcÚ,XsåĶݲ¯üÃÃ7S|ÁJåþ„#,ÍMÈî³Ã¥+@9gІ;æÚ,ò‡^«}fë"š­fQ¿`ë~sEønþ׬‹,_N>äËrï°ï§_þgò“YšµœïìÁ;düî§~ú~‡… ïà §6xŽUã£~à0Â9‚ÄÀ(tÙæÙ„NqÈgA@ÌT‹”r N!Ä*QR‹8Á1ÔÈ(N®0üܵj’6U˜J§ã-±»Ñ.Ÿy‹ÝÌ«b&,r»±0Õ„¤.P!Œeî_ª·üq0…dÂqLÆ6ä‹$ÿêb.œTG‚EÐbD(’‰”$¦Â@@ ©F1L`B±E§Ä%»ôP‹|™û?‘Këù® ]s^@q'×+ä~+W$¢š@äΦ«(Ÿ‡zïÉîl†®g„Y·÷t¶“¥›q{ =Ê“ÂSMÚŒþhVÎV»TYc Žtו¡š¿ÚüT§øÌ|û¾.WÊpÔ³¤+sÌ–ùÂD>µÃ“²ì?ûDÀãØwÿðÙaÔ‡\›©ÿõÙÊ ï½LÌ[d=ðgûgúÁͱê®æ…CƒN×/οwúñ/›âûºŽS kúSýÆVå­Ø{bÕ<ý}1ïuÍä\Ú%ö$¢÷¸*ؾς3 vF+S• ŒÒ÷Í@ÔèrË:Ô·Èì~4ßÜè;ìÕàÜü¡ÎrpJ‹ÂR¼ùn++Qbÿ®ódÕËHìë ­gótÏlZ<ݯèo¾ý{Ï€ª…®ùâŽ#¹´J•Ï_®›B¹RQÅÍîÕeC8öíÝë§ý‚þ‘¦Vþm•=úTùY¾Üõê1în¨¤¤a¯&pøšMœWóQÆFeØipò£ò„–Ijåà%‰àV`©* 1± "¡ ¥XawG+í­¯Ìe¼/ã¾Ýoijœ‡ýä|~ذˆçª;ù¼Yýðn%Õ½œ¹Ôß%›¥ž›êA¹Ã…ª'|ÿ.òC[ÎðŸœg}ö‡¿ÎøyCĘ@V§¤Vg£<ŒòEn&®™UL§(T*ŒZéc+tc¥¯U‚  Ä5¢p-µ>/Eë«Ñ:ɵ%;¿Äæóøås®è¾Öûº"[¬¼Wþ¡i³Ìîd;§Òv1o«¸ßWÀ9`¬]]]{ãçMýáð”¿C¾¼ù/éxÝ>NåJ¶A¿›BÙ§=n`dn¢Ãܸ(@c4Á0ÆÓ1%Âý;¬\¶ŸU0,Lž„SÁ1Ñ1JO@0&B3C¸ÔÙþtÇÄv›ä vëûnßt ެ'Èýyüš‹dwÙUû>ìÆ&¡h,î ”‡:*»0ÐKEA)ê@f5ƒÝ,Cœ‚28‰]&Î s'bN–rI˜d˜Z¡™p©™JÔ† ¤˜s~ðŽë®òXüµKO/#5¶m/ £ ÂO’ª‡<…x4êk!iô)äÔ¥,ã šÛ/qz3ž 8 SÐ8Ö©Žc@J• ­f¡)L€Ç‰ØUG›åÚØ}]Z»älQâ‚,ƒ=³<×ï²Â™7]MåªÐn4Ó²”ïüTw»YÏx„¥ð)tò— œ²sþã׿depÉñòÂ>*³ qa^7egœYȽõ»‹0ËC^¶Z.‚Ùº†\x³m¨ÖNLó{›¹ƒ¯… <{m}}Ž/pY„&³M9{Xô‡[@¸ÏVó[ÔÇ`xèˆðOù ï²Hùj³ý5©{óÅ"ÿ7{O×Ý(Žå{~…{N ‰$$½›‡îê9söììlŸ­ž9ý–£/*\€“Tÿú•„±WBÙ)»:/‰¥+@ «û­{‹)¨QÆóçLcøC&Uù˜É[ÕŒŸÌóµÒ»§¹ߘ—EÉKzm Ìc,¹4C°gÈ:ó]þš~7¿q~Ÿ;îpùx–ey—4 ÒÈ‚ÇÓ=šs² Z;°u,@°âÕ“`?ÒYI‹çƒíutÔݹƮáþ7 Í -6¤L¨zzÌŠ[¶5= e­Óð†ÝN-˜Ï>²œg•¸Ù‘¬/ž\.˜yG½‡4?PE½¡}¤ðfl,š‡­†þjG˜_œÍ±\y¾Ã×j¶â²žõK8L©ê2Sï)go„U ¶ÊW¬ª7ìr0²#:ýÞoŸFr™{Xò!ÎN¿²èyÆjƒ$Ý)…NRžt¡–k=‰ËAîmU.³fØkʰϞü¾Yå쳪nîÕçz4 |ÈT°ªÊ•Ò_PàšÝ–«ag-4§-jý«è>k%ƒþ>¹Ýc›Ìoh÷ÔvFÁª‹]áQÒ¶ŸrÚafntÇŒ[Õ;ÇÙÔÈ–Ì;óúÂ>WœM#Ôk-óÓèd` í33½Ožz©}$ÏrÑê?·h5™NËIðosß«_-RL1ÿ}ªûPEèí÷ü¦¦³Tc}=& ¡tbˆq4§ðÜNÞ¯¹SHEȸ’0aXÒ0† ƒ€ëG š.“(…jkªêáÙù{о[o`·þ“W·`>ÉK½&®ä™Ö®#ï!;­½ "Šb„ÓÂ9ù²6òLÐ 4ÛÂK_-ÇP$JI BÅ …œBžR((M$ND*þFŽÂIûϤ…á«4ö 4Àès´yýõrãä²âŸGk÷hóÊØ Û,Û+Úø[)ÆYûÇßêx*Ú‹òç—땞4ö@>åY£<•Ž cœ¸gÜUƒeVdp¿Ê8$À;¶¥Ið³²<ù„»Ž/š ÷Co  8ÒöÂÀ™¥ÇC“˜,P0çäÝæQ¶üÒ~ùÆŠ‚’Û³ô"Ä2 eœòX!¨À!CFÑ„|g• l¦Mã}è#JÛÒÖ0a°áÍq±ís\¼®ãâÍ;1ê?Aï„7ž„ N÷ßß¿¿Ñæ4e¨7×Åwéºxy^Õ?_â n…竪)Þ½/†Ûÿþ÷ßúù¿n`_¿tGØ5ûý÷›á=„8›ÿ= ßVÿÐ)¾’¦ÛÂd]ß7àv¹Ú _®óüóÞ«ªò±^iÒç­®êŠô>ËÜÉÙ¯7…V÷[ßL-Jº „ 8'X‹´µ–ôúkê¹H’ˈzt2!†YJ  šÅD’B@` ¹ Kp[(Ía–·weÝÔ¢ÊVMÛ3ß{}Fp©MŽ’–A8'e'_ñ𱩽<7àœ\PgK{:Ì5 Ã/C¹mÛ:cúË—*bÙ-’ê¡ß±ªQ£ž|}—½òK™@þãøÊ6O;@ñ,ߥb7(usE༧ç´Rã} g¬[ý°=™i(—ï J!ÃÅ<Žed…dŠ©›n!Ñ¿Xgúx®þur¶¼B^Ïrö–Sµ[üé,¯ld`rÊbðŠö‡@¶5ÈÚñ77PR…·Úægž~âe 8øªJüŸHA~¡Ôñ­õéZèíž2­xöµ×NÛäÊ0Z¡7HL_?Ž>ÛŠ­›»L‹­3 ޥű'‘»lßÅ ¥/0ç\!Jæ¤1«U¸Z9€ ˆ±7’$¡!ÑR+@¦%©â$ÁŒqŒH*"ÀD ò"IæV2{MWHÖ+…=ˉp¸|øÏ¡¸‡±dîF\ÂZ;'†LÏÒÔ[tƒîƒðÄ8üöáoáÅ?6Ö#ÿ›Ú½~ÝîöÀîv—â©ÐD"ûòÿ£Ëc÷Ú6 $à “qº”M…3bÆ(† b@àœcÒFÏ„,`œ\"_¦F£„Až¢4aP™ð8i !R%„ñ+öØ"ÖSzöqÊV{‹ŒL+²þ*×¾Z•/÷ý{îüàg¢ä­orSq'b ÜGýçi~gkŒ|bÍÖèhþ¿èJ_j~]Y÷Õ2«ÅU®dÕ%¥$Ñ9—éÏr™¬œÁ„PËM§{ͳþA Y=€àç((sé‡ {¡éíu¦yȬµ,õ{oÙÒî˜~ofm™£îz¹9ê.§yµ€çª%)”,×ШÕ)ÙCÖë¬ ”uÿ€Èc•5j4rG¯-a ZÂèq«rõÈáØuë5o²F#ʮˮdPYÑ÷ PßÛ´Úïß½ÛËBìM{äz˜Ƥ8ÝñîUçEÆŒ$¡Ql®!3 ¼k©LìöD½·0V‰4Z:Ž8Kô0½aB!TŒk5%uól¯2Y¦» Aۯܰæ"+j¸{¡÷›©~¯WŽv[©Õ…ÌÒ´mæ¦Öf¾^ª›LBSÕ ¢øX‡O“Ìöb«k¥wÓúiLc·ßï«4çC.ê+­ß‹È¶Ý½¨-/gÕé¬ÈšKyÅ5A»\[‡‘¯÷¦R–G-lYJM[¸º”ÃöÕªX,ÏX­6'ºjQgfU:9Ûôížb~]Uký º{ÙóÇ^±‘ËM›É¥Ó’ÎïZ5š¤íVÊôÙÀÒÍù“÷eñãÅòÞ¼Q%í!®ð"°=áø¿Uer9î#k=2”Š@»¬åfd°ù̾‚WZ† ‚"‚f¤OY§{4IïL5M3OŒnHEl2JIO9VJ$€!¦”ÂDJsy´¬åÓ§?þ@Gð#ÄMøÔSöà1ÁÏ=z1'ÖðŒŽe웩) ÃníÍ1t¢T.–žïõrÃÉI•?jLÙó (ã²V笴4Ñuƒ5Ut‚ š·’ñ—£Üܽ\aHŽG9HÃpWÄ»}únšžôÿ„Bi&iˆç²‡à6[®öóÎCIxBŠcÌ(.$L0A¡ˆT†iWÑÜÐlë7fñ}3‹v•ýˆ= e^VûÀæõ§áKÖÜíîãHn}¾°ötFýÆÏ…=ž€—ã·nykG) gi£t/ôÏÕ]Ù”¿éñ_7Ævp›9ã݇õííílX†9û¯{Þý­¸s8M`›¯Ïíö±hDŽñ"¢úÚéÁ×ÙÒäF6B.!öÖè1PL$ƒB%DD!J’Xbͨ™€FÄ C ›r-öÞrF~³ˆC¿§Æsƒ†!ÍÝçñG´ÝҚׇ·¸Å#·<¾mt2ïDQxpéU‚$»¾‰oôvºs'kžDàå9ÇUòÝÒ]ÒLVª<`«U®¼Œè-ð²“w§/(ek)ëº)—ãYjؘ2M„wn{'¾Ä÷ÿyJ¢àËÂBMÖ/õÃSYÝðãG¶ÅŠN¢¢Dб¹1ÀâQ  6òÀÓ‚úþÞsÉ<ÝJôÁF¢o½Y&"âI—ƒæÕG6@ ï4Ø®­íROÉ®[Ó:ì½SùJ㬘ªÕ¨#h2qßïÝ0M ô=ª>Ì=fÚzrÏ­3¡˜” ¡fFœì43ýÌÞöÄ8¦`IB´~6K-3¥Ðu³Ó"ÈS¨Rd”(ÊxbŠÒCL¨“B’ºšÀzÛü2mhRm8VIÒCIÁ~I×'žIÓ9’Ül;£Gz:yçŬÿ5¹õwSLÞ²R+ýv̶U ŒxfÙ­†·_»ÇåZò8bu._0¬â1kÄ^=z,Vë&Xi™ÿ#ëCô«¥ãñæð gž9€ Öœ§Ú<·öFçýžY:ê`LÊ|¢/qª(!Y ŒãdFó”O͹”P2!Qª0!!C,å"I$IÌ„$LQ1É©¢.õJvÀ¯5æMìNÞ.÷Š.Ì2Åp™Rt¿F¥ýÔK!ñÄ”ÔImóµXÐ (uŸš°Óç>é¯d9‚ÆÅFïYO› ©ÛËqÄÖa3- }j¦YÑfùͰ³ã*ŸšWWm4gÀD0\DÉŒbÎëeS›`qcÉ!à黀b3Oï€#&Ò”)˜Š¡VvbJŒ$cÎÂÙÑâýlÀKØ_‘˜Š•\}Åù¼uÍßÓŒÁgHb:¿b¹Ù[ÎVo‡õö¸±ƒ=²J]ýOÉõDöoï=[i°Ñ2Þv£·žÙyÂÀ€–á" ÎHè».Xõq.#bOñEÀWc1á0ÔR IWQ"Å)$1å &ãªTr“£íòS°'œvÛ½¶k´kêà´N‡3þT‰;ý«¸½ê¦´+¨`c(ú§*jõCý—¿.j¥›‚ ʰiþ“hw Çœ‰zB(`£Nž£"_7zG.è‚êD±»q"Ã(I¡Ò\ ¤†@PÆ#‘@˜Ñ0ÒÈ+ñÝñ°3Bh»Š»Õ¼^Р]O³7о‚¿¹Ö£ÝÓù¿š,ÏšÝIg™ÕMeBÆ °Åé Z£tìˆiÝø ›¤GHƒƒ¤ˆÎÑŠÛ,­3‘+sÀ$Y„0ºÄ>º à'œÆIs¡"Œ%GOxŠô•z{EGÃì¯Óæß¨þ‹6É)®-Z-Z8i^²Ôœ:ëuØ z=¶.ÖAÂÝýX:Ü:ÿœ°ºí5ó ží4J›U 9quEV—¶|A|Ibïú” œ¦PK^%X³†®ÿƒT2 S@C@)ÆüõGÂÎÈ_ä_ùB„Ï™¸_^ÍÏò‚°g†Gœ­­iC®;RXRàÊþ¬¤PÏ!ˆª34øÄ:z ½"èMΓŠ£R-DÏ¢†M­§CÍœ°WBŽ"AT‚ŒÂǤŒaT%€0(‰ž/!Œ…2&êtõ¿#fž (3Æh“Óa9§Í¡ñâÚbF`0£·/šzz[|&^×äÙ»úõî³æçÃÒG£4àCjCWÀÖƒƒí´¼Ò5 d(á<ñà ɲ¶éÚPù")”câ8$8 %‹TDñHa€T„V‘ý¦8'„m×ÍÒó ]¹ÒZð4Þþ¦uîqZêžNø×gšAÆ4Dis6ÄEi{A°›¸'n)¦ÑA8ë°§~Àÿþòó{3£KˆP‹Õ¡ï´'!Nµx«£ˆ›¬X@k’Æ)ÁRH¥¦õšÓ|£ä§"ùš¨x¿v×=1²ñaê»”²}¡qoVÔžW™ïfýNòëõ¿Žó ßWîõqsfÅ*æÉX¦ê²ä<ž¢¦j|«bªáUžñEñ’žPÓ/«‘ÞBÏýwP4õc‘˜Z5-?OŠb°ª?M wA^ÈÄíš§ÆYåèƒTlR³•ô­d#k_¯Z®Œü3€l©ôõ†N-Þä¼Ù@û­+óçÖ°åº]>-Ôb^O·]2 êX¤ÌU;ÎîL9§µî5Í-nº}ëvšûN3Y3Us>¼¾ú­,ó—WŒ™àdCöÑ$ê±WsMÐûªž”(‰âh#Bàœê˜Ûç„H¯§;Cä&€'L¥â”iÎʤP<4" ÆÅŒ%HÁ‘EH³>½š¥ú¸°ŸùNp]/»í3Ô ö \êc¦½ƒWYn_é{ýŽöˆéN²DpF’ó˜K ˜Ó€' X‘ÃFßÊá7^6ãå.#¦2æ%C2ä#†1âcö0â #f0âÒߣø#B1 =*÷”Û:ÍEEZ_ÑL;× 7S_2š˜ÒÄä A4ËU±J#/—æ\ô%î RJ..™D Æ…Ö†b‚"(b.°ä8 çÎ:‘Œ2‡Š.:^ÔãÙ¾í®7ˆg,¬Ä5hà¼X‰ŸŠÏ‹–…9š®*‘±|»‡h>”[B\³€8“óá&Èèä3¶]­ª%»W ýñn)_GÖd"öID(á‘`L‘‘XÒ4J£( !A( BRÄÀ!öoU™/£ä/je✠‘9Kêi+p›„¦H³ãMË$`Œ•Åt‚žÒ{¼É»E¾î-s`–ÙE÷ͰÉô¾–ù\ý¼Îr©Ñ¾ãBÿü×âïÊ„¼ç‹_×<ÏDg[ü ùÑ_¶˜?iCŸ0EÔµön. Fs÷ì†PºÀÆ©<#ƒüºø#[-È%1Òð 9 ÅXF€ëÇ„JO–iµA³ž‚Ds'¦’4<’OøÄ’ðž ™•]Ú‹v¯ív‰‡íg;Œ›uêÔDÔm›Ê×ípóÉÚˆ£îÉnüѳ¹ÈÏ~Y„Áûœ­ëey€¢ãø:äÆSèÑÁîm=áu(IH²ˆ ‰æÔ\X×mÁl½©cÍ…4›òù‰â!¢*%YšÊXŠ„C"–Ê4f’rFqzº‚Ûa„ºs›®ùÅvÁ¯í’vÉw[ ¯Í Û¬wmoõ3æä9c—UÔÛòíÝÔ<ÎALzøyY3Fg‚Á¥ÞWzVd¢YCB‘4L„°â"Ž¡Ôú‰JÒR„&*£AëhÖyá“9éï:¢Hž5Lx`ÓÑvg>»T™aˆ£Â°–,Š\8B¶.AW6L+ Z˜vÁæýùyúÃÌ&¨¯³VR޼€Ùš›YÕ óú#JËn÷ë ‰ŠŸßׯYèî‡Elº°wpà¾æ¢¬ÃSfJ¤:ž2û¶÷€£2‚‚âùaìé`E›j䟺vSÉ=ø‘¹fiþ&£nrÑ'³‚·“þj3íN9íÙ×-HiO½I¶†·s>KzÙŸnèÊ8@‘½_ øf­Ô÷8­Ï±UŒó¼pääàÍ»æÉ4›-$Œ9%¨ÅæÂÈp…‘À‚BqBà2ø…=."&0¬– ëF½÷ë]/¨Í¼.U–Üí²:Ž÷ïƒ:8ò¤žúWÕä?[OáéúΉ6vÁHô!ÍP6MêréÈL¶ñàÐ-é\•ïØvÛ¹ªzܾˀÚnšó<ŸÅí[¶0ë j.Ε¸èÜÒ@›x{½~Z§UUû„/iÑ:SjÚtŠâ¬ux5µáO¡ ÙÔ<êÉ'Kx€!,ÒIº¬eÎIœf“MÿLŽ7q’Y^hNÖvFÝRÉÔTbº¥ö=½OU´Òg¥]ãÞ"¹Ú²Â>ÇézsC#¬;Ø ±Å‹›âëy#âwrÃ\BÖ2îLÇhD@6±¦9‚E‚@/BÄ£”~,%c‚#ážPfÙÌÊšÃö ¯?A7-É7f!›JFŽÖhr¤Ç¤LDø¶ýÊgäΙðÕn·uê.‡5Èãk•‡g hwèârtÒV.Û ã‘ÄŸÝÓÚ~Ì'GÀ.ùrV ÛÀ3õ¥#õnPú'ÁìÊI™è¯lo»/AsšK©æ;–3Q¬²ÊâaÇÈA,o¬"C8W;a‡]íºy-`/ÝÙž¯³]í2[|¥Þmê±sô~Ó:oƒÆêÚüñBœƒT ’|\Úo·`9ËÕ_¢¼PWs.²´‹\ÕAÈ@Ý+T+?_2ý±kZÛ«\]TýÚßeÓ°áþj9uÏ‹y2^’ÍT0#ÐÔ‚–ÏÈa ´ z§jË1#å 4׫EÐZ^?n#Ø|Q¢¤_g3réå-ö5~tD†®6ÇÌ dú}Ít÷ÆpˆÃAaàCÎ%›ïÑþ¶#€Úhó«v†¨ˆ(ÃPÌy@¢žë {*¹z“pí½¼œ^wKšÈ› åsž$:kãëâMZè [×ßT¡l-1@Ú…Òs×À4ºvݲõi•h×$9ã7dØÎ{¹}ÂZ"F}Ó¬[ö_ìîÈ¥A@ð–’ïï`íà“t¬KÓøãÐ&g0ÄQ¬ý¥bX†q‚\†}/–.£¾P1‘ b†Îltäg†WÜ£?bõI}ø>ëlÜHr7© Ü‹¢ˆ;‘ýƒK“;4í5y¿ª Ü) ¼YêU³ÓÍb't™9w95ÜϯøÅ*ê.±qP±Ž7’q i5/k@Ç3 Ä’­ó`~Áÿ,:Á—…ºìÕ_t@±Œ:iÜü¹ÈRtq–@»€^oŠxÞ…Ýç®û€ö`,—­ËJähÚ9  gÁâúqen¹å…Ñßnuïr@…¾ª>ŽììPÐPM¥oÛÿndÛjL“uPŽªg?Ùb%#yÕa%ní—ÇÆjmµ´nžžp…uØ«O¨oHÈp—cé­%¶1W‡¬{ì"rëÙ|”éÚlá>H{PÄžô”r©Œ)¥D0_Fbª|_qྩ˜Ÿ;•C‡OÕq«K èpØ×²ýFðæÖ•ÙÜÑQZ0qÎft\‘ p¸°H˜[àë“°dЭÅqDé{I¼nõëÜ‹êÊ_Ïjf3w:L3iû¬M:õ'™¶þ–ŠþVÎt‡ßg­–«…È€M þ~‡A«²foÀ_GçE±|ùB¿[¦šžtkœfS5^¨â…6žüÅj ""ëËKª[·¼¬áö…"Ø`_s§þ\Ë‚O=BF˜Ñ€R"p;íÃŒ‹`ú{¤˜8÷"ú/}Á˜™ŽuA©ö>:hSœzŸPhâ0Ÿ#™Õ|˜÷]ìFw›5®uÈj­o×|e¿3¿¤ÂÌÐ],qãÊÐG§€Y¬`ý¾ÙeiCóÒÔVgæo¯ƒ6o×Pì¿x™>àòR[aQ‡ð=òÃÌ …#âAx@¹¤-?æ5‘«tŠ*À‚xe„…‘Ô9¡ü0âØõ¹K^s$>²KþÃ0Ѝ…á–_ºGÝËBèEÜì¼å"~pÒÖý&mØÓì¡#dŠÂƒvÒŸfJgN'ã°LÚlÓ$ò"L|ɹNëG@ü—H4¦’ë’Ò4à~Ñe¥~h“Fª|¶Á½´AR‡V8®qRz­çPVÌx¢ý’ÙââLù†,S}4sÎï_Þ”éâ{ÚxÙp’æð¨Ùbjø­uzœæ³^U•Ý–®sªXö³½Ì,¸ÃQŠûÆÂÌN’é2™¸ý›‡ŠÇê”_eVKÓšŸÏŒó`bk-M‡ZuñTKÿ«¶ªBêÐkWÝx3mzJi”Úh¥nášß”‘}3W…²šÙn¿O¿{•ܲ˜I Gã° +£•.pØã^Ö§ÅÃÚ¬ S¹Å,v c+Ÿ%Ûgíî–ìªåö XB’ã•íår¨4o2XÑ7™–àÇÝ…~é\Ùhªj¸PWð·fÁkžÞm'Ö²iÛoÛ]v¸´Œ×$^/„Iì[°Øzð¸ä •8|©Oÿm}?Zc  9_T‹¤Ó2a›.-|éVNÓCÆg›£t^^Ÿ d´&¼‘Sm Îæ64€`o»¬yw¯Åò®ybÙŠn—®b?áça„ž=ÅåJtÜ xº„G¥Ç–ßøBgÖšs­Þ–ˆãúÚÔ%Ë›Åýý·/Þÿöû§·»=O,Òk÷Ì’…ÔˆS¬%S£Ç¶3Kæ³`äùÄ=¤àtKúÝ-W‡±@¾ÀÚ‚¼€+"ê=ÏÇ 6†!ó(mËÕ†H½ôÞ#£§[E">²o鯒ž$Ɣٕ£ríÔfà2Ï\]q$éçÀIý¬T«™/ëgXsÒ¥ódöw=|”ÅSvdç pè6ÑÅá! ef‹Ôè—-Ì7ˆ‘ð}¤‚€ _0OÆG ‘z¡/eD<@ÍÒIïZý©h>5EÓîðÔÕÏŸZäÓÖ"›ºŸÝð £áýÉ—ÿùüu‚Ûa‰?uÍ»Ô5«")™’K‡Þÿöíëdz ž´³‘ìÔS—SGeYjQL®Uag÷æAµ‹´˜ÅWý©Rj*­?•ÖÛ)­#q§-qÚPEÓm˜EM%Ïó² „/P0Mºþøm”Õ¶PÛ¶=LSØN !ÛVÛ ³ÐóGÌõýƒ‚0·ñnA;Š}â‚¢HâHQ‰qàrÐ bð£Hxºj­‡ AûV ê“Ð<ˆÀôÉ®fSRÿ>ÊdzkMr_Êîè6òF4ô‚eø ¿Æ¬p`Çﮪú‘Z)h[qx H€Â*éyÊ“” ¡E|鯒tS¿¯*|êÀæ¼ý©… ÍlËw6eRhJrXÏ]ê[W¨„ÖçYKÌÙðp§Ug†èÙºÐiê³4I.fftA›¸‰"kø% jGûkv½à@éüHÒò H¼SöÝ}²±£§ÇÑJ²ÒD§µÓø¯"HäKž]$U¤oóµ-nRU#Žæ'v)£A¶‰M«Mšø”.´oIS‚x‡c¹Åõ"/ih$w0nršï°¸•3JBý/p:$³%¼hÅ“(½tÒ\•ññt@ƈ© H§¯Ôs¥âd ¨(Ž Ý8¦!b$ò7ΚÛríW8óåíÖ‰+~“^žžº-¢ª`ßz°ÿRWQÊ;ét×·Ÿú°¯=Й* Ÿ¼×ðýSÿþ?>ŸüÞ†Âg½ÿØç«g§˺Ç6ì¦ÅAKá±ãQp…¿ŸüGORõ,l‹eñQå®TT/ó¤ÛϽ¶˜-Sxl`O)ÃÑ4öì•«ôÄÂ8, {â/ßOúxƒLçìœgJž$³¥ý¥Uû»4‘0c­Ú™²äI‡ð³-ôÃç“ö8v¶¨*‰ mŒ›W€ ³u¶Pu½•Tëˆz9´PäÔ7ŒKPíÚ  æWùÏXÄFP¶îåk)?¼kƒN•Î-Ñ…~*÷ï6 øsðý¤ øºZ´ri¯>ÿMjF:kÇÖÔÌF•‰í÷w`úûÍœ6â5SpÖÎÛù ¤í=ûùä½r@‚è 8^èµC(ØN©E pPY†.9ȈÒ@©b¾JŠª·“Rƒ &ˆfvч1©¤/E¬<ÎBÄ=Á\7"J¸±ǜǮôà×Þq**ÓÞIuoº ‰î‰õUx^wâåz^V2û,4I=¢#1òC7pé‘ 6›ÅohfÃx jyv‘_ÍŸ¿Ö‰‹Oùë1Š n@q§ÍÕm$ÀrIöãž?|=ezÍ„N9iuÙÜuæ&u n‹ªMÝ4—Ø3sP%åydÝKí=`ªþ( =÷ ]ð2Ä yú® |àÆTIW) <Ìã¾ä,Ƈ„¹$t…üIž÷–bIŸv¨ç…ºLfkõRä¿Â^ñ¬œFM´š†˜ ða’-Óîäçšd¿ª?z©#ætbÂLjéUÚáÔ ÚwêîX$ZÌp ãéAG&ºvtY“և駶£’ûR .Š},ˆsŠ@4)– á¹°µ†›¼òfÑã»ÑÝ1IÛìHK>·Õk <çóëOÝ Ð9)S×þçBê±ä‘.âÔ‚w ú}–^Õˆ Û1¬¤ígªB¡qyhcR(QòÉÇ4½X-Kó½È ü¦ùíZ×(:[E¹ÈfQis`œ„ŒaéÛ"7ÑbBCæE Ö'5Ë«wY:ÿçJ­êGáÀs‹©´¤J#_"ÚÅúšnä3#ý”ò1Ò\_Þà”mŸù,›¼N`W,{-áóõmH§ªàâ\caJ!°h° q Rí{UÚšxÅ\¯×þE%ŠW¦›*L]Œ ¸¶{ ôÃiÙ™€y‹Í×Ôk¢šK{LÐgŽ5@jF^‡*á’6ù8ÀW«ÍµÊ·tCë ö_ŸV–šà]ïÿP¾þ%—¿Ü¡ÉæÍÙéˆ8' _éäMFªVº¹¦`Uë[Œï·&›~l¸ôÐ>‹53?yÀâYpÀv“fÑ,¯;­74 [—;lI>1åJøTà0rݘ ÄdÌ9l7LR :a©Ž¦8¿ûøZ"uœ‚¹-xá.OµTh „Èq/"Á¦ùÜM®ætjñæ?ú¹øNûÜz©Ôe¿Ãiö»VÁa;îTÕ´ z’åIÍõøªZ‘Nµ"9¦Ô£Ö5h3­kµh_w*ûŠ•™ç¸|§Òón’˜þLGf]—–s#hr˜SÌ”¶Ûs,£;=1ÊÐAý– Qºpá{ÿÏÞµ>Çm#ùïþ+æãnêFƒ ÀÛóÉ\*VÖç.U—ºR(±43d 9eÿúkó8àH¤–½›ŠíAM‚x4ºô¯C… cÃA‹/IR‘fˆÆŒfŒPnÑÔâÖƒ†º!ýÝÏèÍNk^>¹)Ø…úúqô:qmáZÕã´óíÌb;¤Ú«ŠxjÕæúAigåö×éf±wmX²ýkjÙÒ™£ÊNPPšÆs:]e¤}ê>‚ÕaÒÚÖð’…QG¦·³×ÿÅÀâ´£šPg–w&Qw#•Æ jîæ¶­Ó¾qB¡'¢$™€LbÌþ•Õ¥…YG'º'd&'‰=ˆ2Ô‹+M9ÑZ"•bÎRŠY†–’ÂìÞE؇å; ê÷ò—¼¿õ&+ó˜Oé˜ýݰ£Ø 1ñ*ºvpÁ½ñ£z³éoÛ±>,ö¥{QªÉnI³âjÙÄ îÐ7ÛÁ¥ú³jÏO¿¬¾|Èò¥YËÙŒ@)ûV°"+¯xûÛb6ÈM­‡ºW—º¤ á!Réc]‚d²ß}ÂÑþÝýhD‘ƒô×”žî0„IÂÅ’Ä !#¤Qmާյ\–ÖSÔ*´+ÃF’„3dfS“!”X‰D”Œ±ÈŒdY²ü¶únmšç^ÍV­/ï3 Ìû·Âf}w‘ƒ¡zÑèz]ûmÆ%š¢y² ðdÙfnî+¹¶ØÜ»cyYνmq0’£Î0óbQüÅŽf&4—µN°ýBÔfÙþê˲ޗ×ÿÄ9ÈÇ%°6[q@fíòÚVÓ›«Eϧ‘{ ¿ó4‹Õ×Çn í"~#«Ý(“ÑîœO‡ãu®ž=Ø=;jÏ—‡A6´B¾Eó¤òéYåÒˆU³Ón@iǸï%S›¸nCì6mk¼ñ½¹5³¢´[¸ûðtÆðWœîžlD8wÁé¾.µ/a æ6txLø¸ÕÖgøŽãk IIšÐ$MEbÊ"Æ£¹b`1¤Âi‚5‘;Ht§ ßì¥`û¦7V‘íïúfûs3Ñ7©vv·¿ïŠåU#QÚä+Ïø:[œ»¾òÆç×’M5ŽLÌ1M&D h̲­ÞttP"“™ÈP!iŒÁdOã”+œ(k¡„æX‘44(_/Ê7‡ÔR{ÀŸ›ö=Ð|Ý‹@i© ÷9p@7ï>6žc*x†ˆиG¹¶äÒìŸÍù„zìs_èÅvûf£[Âtº„¯z³6éeº,ÖÌ{;ÅÚó?2m&Ù~PC–—˜oã,ÃãÈRNÕU>µ¹D]ŸÀï¾ì„V5“Õõe]\6?Ž•Öùr–Wõ±"WE¡su_‘+ÐQ”˜Ûk¥\}L5Oe¯êLˇßiQÜÌåòæH‘k3+ïyŠ-b–M4#¥æŒ£ã‚^$6f_SÌuÌގ׻ï„ãw“žž·#¨ ž½Ú`¨?ý¶YVºr¼sΑÀÒ²÷¸‚ÂSg<†î‘EAUŠy8çXÛðeÛú°ž›šJ’ЈÈÑH¥ EÊ šd(KAo¢Ì Bvx_/ þ´J¯ê`õ Â}¾DÓ “ÍøØ EÖ^‹Ø ÂNð»Õ"ÏþtĤŸ{צ{ 3wõo'Fm÷êB„ùÞù¶)?u¿! Å˜¦‹„Œ0‚×WÆ"`ëOƒOX²I€ê¥cmxBS˜µ댃‘Å2ž*&x’e$zÁIô»žGî UÒÆ ô<Å­ƒ×6;í¨{»w`t°ö,ߒݰ˜6ý Ãz»”g =˜ñ~pZïúàØÂÓ}%C^˜ 'ð 0¿a쯯‹¼‚â'DôL?•à4Ê87(2¦œL)…ÑL"EMLHŠx$½þÃóåp 8䞇æzѽÝ÷ͨì˼4Ó¦«7®m·¿Ýt|;þwKÓM˜¸)ýD^óîÀ±ýî@[ç}-q)­ë,>‘sv_zë!(‚˜…7"˜ãŒèD(JTŠ3“.°CNŠ¢(“2RßÊø· }3C}Ó£VmŸ:¹É®HmÇîÁh9}ÀŽ ÒŸî+@N8EÌúßó….Öò¦äLÈ ‚yÀO¢(V§\¤œ²$qjDs¦ea¥‘1ˆÇÛ6wúj:7‹U÷éN»Ó¤÷¶÷€Ãížh0¡#ïþ°/íî“ï³Ò{Bþ&jÚw*åÈÃò<;l‡‹¸²'TÞüù—1¹ôvk°Vl¦J¹^ʪn;ÌÏöàq¸Ä/9“†‰Ì¹! 9­8Ù¢÷6›+uÞnäδ•;­m7mœBAâéï?~úûùÙ§¾Ü_‹¢¾hP8ÿ‹½ÚÛ—Ù¦Îêziú·°ˆåÜ:îüZŒ2;ç|]¨›ÜqC°ZùÚ"PN³™¼ª:m³³ìµƒ@F¯­Œÿ‚ªþsæÀ.V›R¥Sf­ív´›^[4wýk»Øûäõ6VÖŸ”ôÀz>-fڒɬ]º¼êìUtפO,t€K„Ú¦Wªtwª(ÝÇÞ•¶ý½ÅöUœG{;îˆîù·°õß& tŽš¼/æ2_üÛä#È9똺YìûW×î¾#h·è;lSorNiÁhâOb$p,FlAºïjcÃZ34$:‰ƒ­ ©&+Ub)#1•š‚2€p*0–"f$M3ÐE:ªì‹F?›ùKþ—‹Ïóbá)ó²5 Rék©wÈéU]ûQrvP ¥Ë™ôô5ËËëÜW7Ô*uõž¹ýl7}Õ©®…·Êým:ËK.Lí§ýd¥½GÚVvÓöTÕO/:ù ¯Þy”üÎoæN¥7#Æ!”ÔMúÏïÔ¾”³¹—Î hºG+] m¾4ªð T¥T¦™>~E«•WÑÊzÔži]ë»iïuá½ÛN/}릶UðµEo^×Á–Õ…:¡D„µÁ ït/J‡ÒI„P2¡öhšÇcö3avƒ`Ü¢²$¦.„®ˆX*©Á*Á2FÆ „1W©Ìb¡c2¨é.¦ñËo½ªóéc‡lùºÑ„’G(ßÉ>B°1:#ò-ŒI‹†¸g¥­\©9ÑÝôi^® F(H'z¹Ì«9‹_Û<[š…ÜŠ™–ÔÚ]Juφ5pÙ`J€p·7?gÁ2ëmã;$cQ¹<Š5ìµG™íV© *}몭 ÜvëÚ”WfámX[ÊÖ4,?~ÔÝ=ëDÐÄÙ³vy¦›Î 9 ³ˆ2T u%^c}Ën‡Â>äba¥xLXšÅD1DR‚Ëd–E~ÏÍ2eçî¨ö×áó†<›³Ùµ£K]šupPé— ½¦‡¯²Yuè_2Zôwzlb¬å`äì X‹Úºí?Q.k0·|RµÀ¡8ªæ>­¨=‚“u3@•i#Ô喙PUî²æÚ(Ÿd+ª¤_+˜ì×Å£åЦ X~~ä¬|©åI'jßð1·^¿¦sââ\Ö¾3`Qª•ìPªÜ#”r9“ú$5ë”YYÞíåÌùa-WºôUºò?źº¬aÑñȵ9eµ½/÷_xË:ß¶ÎçòîÃF•òVwjá:á@¤ÙÛvîéUVwwD¯æVð9[G:¯}Âvhï÷‡ÌòÊxe–0LÊ›Ú%¬›jí)õás,Ú*ñß^w¸vßçYó»G=äbùû\^- hsu¯‚ÜÕB»¨cæiÇ Ãt×ðÕØÒ„Æ¿â˜Å^Ûp!‹+cÁ!<@löÌ3Y Ö½mY¥,üXI v¾æ’ˆ8’ˆ’DQ¼s}°ŸÛ7‰Ý)ªÁò‚O¾\U饭{ƒÌ!¸ä±‘©Å$&ZþóÂh;°9ä÷‡^ \ÂÃøÞ¹š7Íñ4³±å¼ìjU•4ìˆ%LkÜ| en/¯au˜·¦EÍŽ)&Ñ]Ú+·¼kq¬3“Zw<§@u“^Zý¿^FÓØ$i7y7‡•éRÖ[`i¡a† L»× ¡.›EøRVU¡rº-L“Xé ÊôÒ\åö˜ÿÒ6T­AΖBœ۴Ïj*£…FhW7›qÙœ„7°ÚT(£%uòV‹]n¢¥ä‰&oBÒá°“¦|ðwD-£Ãµ‘¥Ç¨a‚üû-¢i‰Aú­~Ðü)ÈÕ¹EŸ.øë=ÜÆÀãÇpþî(ÉÍ>wüa$wò¸)É}~^¢„‘ÜqIJÆq³úû#Âã¸ãø¼„ÕóBÿoäø»£±ŸÎÏÎìpÉ-èYIÙi"ŠKr#'Šxÿ¡ägc›=‰y stäPO Õ¨ Š>Šûœž—8F`2²ËÏÏì\ùp>’ûœ”ˆ¢‘•÷ÞÎrôa#+ÿ^<¢ß`±;ƒ¶ã>½áŽ'AA%Šx 7ùÝ–;Æhܲ€Ì@ÈÐqÜäCI9ú¯DxØqÜï)qôálw„é»—qïfè±fœ€HÄ%†ÿFq' ”X÷}ÜÃÂXüÜ”è»ówñ÷ÿýéÓ§³Éçÿ>ÿôÓ» üùðË—“¿\|þtúËçOÝZ­:Õ*P«ªc"F©ãy¨MÃÚWÀ]%‚!;!öcŽw7ß™ÅÃmBX–²Èhe"®’H©Œj‰Ô$Ô`Âã4NÁÈŒ “uyUö Ô'là&¨¤XÉ, ¹åÛe èÚèÅ„"¢ÿ²ÙRPŸXÜgRžÒLàô>;P±Ìg½v ²WW‰b}v`* Œó{í@©XVIü ;kÆT¤ûÍÀÌpÁ#Ù)ÑF§I2©1©DÈ5‰3”eoºÂ`˜ h§ì1óÏN‰q¦ßžs¨Ù×å|¸É×å|¸¹çp4õÎfžÃ9ÐÄs8šw{Ρ¦Ýžs„Yç04éöœC͹=çPSÎáhÆ9œM¸=çPóÍáhºí9G˜mó@“Íáh®í9G˜j{æ¡fÚŽs°‰æs1ÏöœCM³.çÃÍ2ŸsˆI¶çjŽí8ǘb{æ¡fØžs¨ ¶ãl~í8›^;ÎÁf׎sŒÉÕ(¯Ñܲ‘‰ljQE“U< Ðù¼‰ß%@ua;™(!3Δb4’<“:¨‰LëO-Sòt¾â \¶:Tù¿Oì€{oŒu#çŒPî¶ëW5šÔ†´SBνöÃÓÙÛ@…{ß²:×@Öï¢Ê„qbÕ½{úk{O?( ç¼3ÖÕ!'2@Sxºûª*2"boˆÆdL™uañù ž$ü$ Ž!†` ÎX&aÌ.¯8Q½Øº÷ÿWý®hoaGú«üüp·;©‹€'F\P~׊_^qúQ„ì]É€ïÃó =,h¤Å÷ÿ€/À³\§\›VWúoÝûP˜xë€'w!7«ì¢Xäu±QûÒB*tLÐ2à'vƒAŒ¹•{;± `Úp~ÂBø*F'Tr™pÇLrƒ06išižb3ÊÁÖ•”Ç[|•ý+yÖ>Üy-ýy õŒÒë^ÙKF£¬²VÓÄx,@Z$\ϳf 2x7ÌÓ“y»…@ñ{r 3ÏÝ|FÛü;uñ™W 2êÛuoûHxÛ …i+õö,unßÍŒ\|‰wçQ[À1—ôþ~ò’…ãÕu¸ýÏzîšÈ·O½ðÑn?¿ÿè%¿¸©_ó2¿¬æs¹t6n-.¦›ÞÜmpI¿K`ãöw¨¡{ð¼kÊ^ÿŽ«ºnД·¯Ž ymŽxîîbqNö!Ù7½¹í¶N.0FNcœ¡ÎvÒ ±ÐŸÁðÇ™QJH‰)×<ÓÆ·‘R*(㌛(a‚¥ÿJÞÍ/¨ƒöiŽýRy”àìwú¬bO‘“äiûˆÖF¢ŠS²¹ÆB§í¼ ©—Ÿ¶±Õ6"âˆDèL®s—EvvD™º¯xv%ÎÁZNÆD:¸%»pG%C¤%e©Y³TfˆJ+Id "CdYŒSixŒÄVÜ·Ú›ôyI¶³ Ø·kÏÁ/¼™üš-œ]7t†š³z‘éfмìðÛFö;:í‚$&Á’1ƒPçr+eŒ,HhƒÈÄ1%F“(ÓL!N9J¢¤!™ÊM¶½,jA¢¾éågµ°Èª-Ú`g_i}›ÊÊ„sªziä¼ gofŽT`¨Û~­ ûw;f¦Uq]l~7ZoŒ,8ÌfoÊ–Ærò“§-Ãf¸ùílö¶³­-ৃÍÍE§®¹Ãù(´™ß?';ÿ~îî´ïÜ}êálä0Lì¶Ä¨KÛAÔtž°“(@ ’!!T,§45&UÌ0i˜—Œe –%žI}5°®³}ç=¾¸}3ÓÓæ:õ¾f -Ö±C¹Áy}¬`hákoH½è06ôÈñ­itÂN:ð ¡Í9ìn‰ðâÏg Æz»³ƒ*í‹|øròöûÝ™xÑfÜ‹©¶2xjU+Ò·µðe:P]nñ'ÚЃ]êÜÔ[bµa´Oò¯º„+»§xGä}@  Å‘+ó7Óý§bž1„8šÊñ¸¸K»·´ªèQù/QÆHÊhüÿì][—Û6’~÷¯ÐcöjàÌ?$Ž×›3N2ÇNfü¦ Ìµ$jE©Ýί_€Ô…—$¥nu·½NÎLZÀG¨* U€§‰OMvYJõ ^œ®Ç#ʃà¸h±ëñ%õ™˜1m*7Ä÷HXeï÷ÉYìÓ0ö'¡Oõ_—Ć?ÎÓt¡&dË §!JedŒšLFÁRA•ð KÒDÈØµ€™k÷˜%<`Á1¡JógsûB3éEš-»Îv/sk`õSlŒŸðq¶6Õl‘gw„èü4Í·¼\«Ý¶Ò¹$´W¼ùý¯?ß¾Ÿy³æK×sGm698£ë^óÞ9 ~–ÛÖRÿ²”{§”ûj¾2ò8ý¬Ô§Å—›¬ªÉVÙÖ$µ4 Í:&[;2ÿ¼²ÕíÖüëøG{tD·Kœ´h~}(žïVgkT‹?6ìócñ¢…Ë[PغWäX¼…Õ sÝòÚ]$åT¿ÍŽutO®këÖE]w÷¥?ŸèÀöÔ2ÎM> Ò̱G¼‰Ï‚€ÆÜÞõùîÍŸÿÐMbú_Ï,HÑͧÔM#% M£0b?äA¨'üPÿ›êÇ"vÃ$àO"xÿË[|­LDZ§ÇØnÇøšÏA}¼K¸.½uãQÏC}‚ƒOênò{pÎáЩ¤öSG/¹Ùì^Kqˆ¡SRÇ»ùÚø«}­Í4»[.ú_ÓDàWiA$»—·ÖWDß«Œ¹5ð®&¤ïeóìïe^ ¼® ê{áÇmѤïew1ð®¼êõñ|¾ÓÝ`qÞ8óÇÁ‚q°hl §¨ô•Ú¨‚¢O« &5†Brc($9†B²c($=†Ž €­âzÙ´°B1 ³B1 ³BGPÀVqíÙ ;lè¶ÙÐm³¡ÚfC´Í†è Ø*ð“»lˆ uD/ÐÆµ°A-l@P ÔÂA[Åõ 2ˆ´pc1+0óc130scÇÐÁZŸM‡,Ðt¤ý pV $fBb6 $fBb äpß-å³¢°`-Œ°¡13lhÌ3ņƌ±¡ÇѤ§®çùë+fÄ÷2 ?ÑÇ4üDãð}ÌÃOô1?1žVõ×_rC¤…u‹™†±˜]‹…±˜E;†Öøl>âGÑÇ´pB13 óB1+ sBGPÀVŸ\/rû¢Aú‘N`,fÆb^`,fÆbn`ì:Xkà³ÿËØQô1à,¬@HÌ„Äl@HÌ„Ä,@Èá¾[Êás›L|4Wì °  ëc„ma‡™bÇcÖØñ˜Av½µðÅvÈHk úØ…€NA(f„bþ@(f „b®@è Ø*ð“·ó!6Ô½l@Ôµ°A-l@P tlðÉû‡„z6œ±:9cYrÆz䌅È+ëÒ®9Š|·’³BÌ®Zp™°òò²bvE47h”á*pÍúÛÖ†)K–N'¦½]*òëI”îÔÚ‚¢‹c?f/ŒƒØ#Ñ…9:ŽÈ—k¾HÕáiÄnB™J(O£Øõ?d,MSÁ¤x”²ÈOøa7oùæÇOØyîy9÷;ùá{~Í÷üšÅ÷üš~Èù5Ö9¸Yùï–øë`$·È´Ì⃡Èv$ÎöžÁ N'za{Ó8ðöÚÞ6èÜëxµlo²œÚ†Cû=ßh*ÍÃÉt³ : ”GС ‚åt@(k êï(Cx(e¦1bÓ) ˆºˆ( ˆÊˆ( ý¶”_I¯Ú`˜ê©Ž€ê©Ž€ê8ÜkKù5g!ƒ+RDëQD«QDkQD+Qîµ¥>7ÿÒNÿ°R½ ³P1ÕS1ÕS‡{m)¿®¥„p˜ð )‘ô i‘ø9¢ï¶ŠëÛ—‰¹`ÁB>X°,ä… ¹aÁŽ¢ƒ½Êþô°‰“úyƒÐ}üøA|Ÿ ¾‡WßÃ/ˆMŸþêë®°s "! r"!_ r"GôÝVž ÓwâÓ6ú#¦?DBúC$¤?DBúC$¤?DŽè»­=9•o…¦m´ï¢0åÒà ÕÒà Ån°¿¸=5*£Ì6ºÛ°˜úV4ä 9aEC~XÑ+VôHšôU¢7 ÅÜÛ!gw 3!O²!'2‡{m)‡Ï „ØÛf+Õ»0 ÕS1ÕS1Õp¸×–òA·ï `¤¹ê£íÓцéh‹t´):ÚµŸÐêlQ¸ü±‚ãUœZ@ŒÜ§ ã‰GÀÅä’3 ËoÍññÄWR&<ŒBx¡ëò€Äaì†!sS¸L±@ÿ÷IããoÞV6ctoÞþÕ-|îôçtÅË÷Xx½èÁ£Ú_Õµ8W 7ßsüÃú=fÇà7Ž­ü7n™ù(§LeqžtÈv–tÆvŽtÄàí³¡Íƒ[VÆîX¿aeü~•ñÛUÆïV¿Yeü^ÛVDü£qd·ñÑ“o~ÿã·×oîÛh5YèÁħ$$\e¦ÇlµÞmt÷?Ù¶Ø•·xºq]súR™K‚¥&âX[†a¨<1š’8~”ÄõÃç{aé5nê}J½¼gÛLnn§õÔß.c«;áǰ-k>xÞÍ{µ¹5'Àø/ÍzßvŸOyÈêd·›l› ¾˜ü±V«÷ùn#ÔD?¡V…ÚK|¯xµo‰ ipº[¡ó¤sj=¸a2ÏŸÓ Žõ;}ªø²âkÝ¥B7Ó Ì½DS FA¤¤'ˆrA¨ðˆŸˆ0t‰ð¨¹˜3æS®ŠCq½Q0þ&¸'Nï=;³ôœ«Í¾š1z—oæåB¤(‡×åÙ™š‡ïÂý’п©–?ÅM)…7G),uþ¢ùò“ä¾ÜË®)§#=u½XdjµmI®–ùê,e`*~ûõÏÎø†C§=Â=I~|Ö95ÜéÅq<ñÜØ'ÜäsúÚg.ò¥n¥™ƒ)¢Ã•Wˆ4L¥›¤qJX°DÏzqª¨JÄJ*ΞâÏod=qæ˜(™¶§¿ñX¨ü²b±cX¼?÷^ªÛÓ_7óú©ì–Ü„AõŽiY`ãn¦ï‘»ömwTO€`t”Ï9§Î€“í]=²ôK¨_p®}ûKåaÀýãC1Hæ¹nès¡ý'¾z<®Lx’°Ô ¼Ã!·½¬¹ÚâgÍ“–»¤ÁÑÏä Û™mWæjíê²ì ¹º4|éNÃßÞ]^XSö¹¿óeÍ]ÖªÀ¨©ŽGks!wËu£@l½è–8êN‰Sñ]Ö|ð®PÛªÉõ}µž€m}¯¶JZô*¯ØwõZ€DDÏï—)¯ƒÂÒKj=ÞáuÒ˜*ŽŒ]žú2J™F •z:÷]æ²Xz¦?\Ç4öý«_†pÖz¢VŸ7í§,¬N›?q®´XŠwÕlläô.[6~fêãÏ›U¾Ú×_|R‹›©)ÕR¾6r|'Ÿ6y^¿ W7¶¨ý6 ’*ÙÍÃèÔÌËFÑ;¹#¦íGF›ëßÃà98( µIìÆÜw{Ç7âc¦m/Ý&ª_ãÑ)CW¤§)¸^çºQ”F‚y$%JHîEÒ3_wc½þv¯³Ü½èôµ’jóˆá»‡ºpŒg›¼;³?`<ð±C{z˜´C"‹ûEüz:pAô®¤øEѽìnÉWսţâ~ÆtªäÒ1 ¹p?»ë¾Q¨' ŽZée¥—œJ/Õ4öa¿oä§a®9´Í\}Þkï`eØv`ø4òN*úðŒSo(J؈\?œ°È7–Òzú3•o¼žhSkøè(*ª4L©ËJßÓššWº›Ÿ|œ$n<Ñ­#¿¾zݘ0!jx¼6["½¿Fe¥VhÞ›÷¼ñ9¬ì¾ïÎ#³Õì¬ÿ@“ö¾¸vÍd%ç/KIw*I“}Õ2´:ƒ¥}[lÖ­,wj_„—7G07 ƒ r­ô¶·šˆq0ñ¢xJ0z=&Ie@8áqà3êA¸ëEæªÀ$ˆ¢H/O„0°nýEy×õ‹í­I3\ý—1Š댿X«Í2+UÞÕlþN¼ºç8çŸYK&ì£?Ýv-¢žt.¬,bØð•Ü€wÛ,J¤I>Ü\¹Ò˜Ÿ•kVžìÓmK½ü§·ïš¹Í"®«È®èÀºÊi0–D¯E¶³*&2ÊŽ¼Ð“v°1g—›ûïÛ¤íº:kº©ë•§5J}Y*U§Rª'ëЬöoëÆ¢Æ–ö¯òÕÕ4#_8åÖ}äþkÀHlëò–}èÒÀóë“‹Ö˵V‚É%Š=L|æ±à‚îî’\7]I¯"'„™»LA0‹ ¢—éÜIÌÝ$RF×w=%¹+"®ÍRý?A÷³Ë|µ5«^d«4”ë?ëj[<òL2~jx¦6ãÙúêÌ‹E¯/ç ÿJè_Vbï”b ±äYÍ™¾®Ð5…Ðúýw&ÈÝúèD§Ä/JùŸ%\|Òs¾!†8hŠŸ–»B™¼¯âæéÅÍÏæm7¯Ê3pë0¬íô/Ï÷ØI}”x§ÖK°´ Ù¤ ¬»Ü5|'>îÉ Í-›ÚಔÓPx¡àI"c_*–jAòDäkh"ýÄØÆûµå²«|›¥_œÂаü޳à«ù>­.<áæfJ7®N‡Ô|×tGís÷*>™Çñt÷q·¸„k›³¥_e²+*wí–—Boœgó:‡~ýŽÏK·:€ÙaU,ºm»ž«TÏêÓz²Æâ÷éÃo›Pw_ºÂWT”éŠ÷V,Ø4hwãàÉõ,¥=ynå ¾[.H·Ÿ÷Û§pžò~Js¡#{ë/ÛùªQ¤YÛø]M‹û™Ê)'Æ*ÐXv÷¦ÐÂ’7|½.f%v¶Û,fùJ. ¿ªêšÍa £nÇþõÝ«þHg¾nGã=/ O&D9íÖz"ˆ1Ñ/ócJ/É«+?1_åKeb›ºYñÔsaîx@hÈ•Âã0!LxÌO]0JLJ%<"?hÛÚ›mÆfe·ÈVŸÞ«mq3 BWóqÿñîçÌ0 3PËŠWy¡_¥ùŽg,v©bv’æE¶UÀßd|9reI¾äsô„Å—ÝU.æ|²¦z\sç:Ü4gg‹ùz1JÍê1³h|'³<Õ<U·üc月±© `R\hbê¥çqæo6·TbÓš ½–YÊ¥ÍÆ|X‹Õ(~$Œe…à«[^X«±—U·)~ìÑ äwo¹¶íÒêk4«ó5p€ßÏØVE¾¸íµ0Â-æö.“Àîýÿic?ªás–)ÎwÛœæ_2»R[=…fÛÒ ©›–‰Ã4تø’—Z»fÔ·‡BiX_¢ÍõBløZ5?Z7fˬDm6—æl¿õ²ø»¨fì8¸€€°cÃá2£jýÃ-6€ißñZ’8n-9ªi¡F@°'ˆ\æMˆK‚(¼dçªT‹-ŸxSoêO<—N#†‚‰'¨ÏÂ0" \D‘L“ ñcýÓãŠP¥ÒÃV½'y<ûMÉ"Ëϱ*N<°ö{va;e`ÿ÷âù²P§ÐÚX-«Û¿C&O³Xf£rÝ~æâÓnÝ?¤Á iç¸E^T BTíªwøÜÐu'„¸®wÉþ#9w–je¶ݦp¢$dE$Ž˜"„†‘b¾b1„ïSš2IàšP„<\ÖcÆ”óá··Žž Ý}©ŠOÛ|íH®©~§ ²¼bò~c`=™—>˜™OW–œ¨‹â|fª»%³b‡µÞüõëM¹Sü ‘¿ÿ5y£Œ`1ùç.Ydâ°Y|òƒ–Öÿ8ŠhWÚ™òž_³ïpN­vúáĈwI˜].“ùFš½ë“Ø›F(J¦"&$“Šº¾"¡ðR±0ánê…nèKÊ== *=òžpÇ~Гª¾ÞDã=SËcœ’­'Ñ6ªôÍÆ˜¶ÝŸ¿dÅzÁ¿èµŸ«ÍÀfªŽü´:&¥5.áα]@œ]J܉VÕìËI›¢˜oL ›jµÍL:ÈħS¥'&JZ¾©†ã’+m=IéS7M“@ Ÿ„IžTï1M¨ú”SNæû¿ÍÍQšdÅ ±åó«‡ j»G ƒöÝ?^us÷t½‚ÜÖ*Êc<#[ñŒ¬Ä¯"-°ß{¸ZrŸ÷pÚ„“‰ãw#z‘®¼L´S:«Î•k&jKpLÔFì~·7 É׸æúy½7ºá³æ. ±Þkfz„êóf«Jg¿ìhm§ÔÚm%´[r“­²íTÕ’£Ôb!j;Œç«ßn¹øØ(j¢‹džÕ ò¼RäG³pÿýæoÇ4ÜIs|&©H…;•Ëu#3S¿Ù±OÍÜoÄT³rt}fcùóZ×Qqóºühï,Ü;íµgdýOm§Ï© ]Úwgçˆø‘ê‡^ÑK¶5ŸæÍñó´H¢Ô‹ô̬¼ˆš@03çBÄ‚«pˆðcbê§24çãj’~ÊÃJž~|U·²Æa5+ ö,Ó´d´tO#hóÝ™kβC•P?ŒÇ„JF8Jz*ˆdªüÄ#‹‚D×ûäè|+Êñ¯9:¸—ý)åôY·³!Ó«2K¾Î)ãÉAKš¨ÍJO M1]-¾E²¼í ƒ ¶.W+§ûñ®<úq1æO´ªŒX]r€›þ’Ì…c®4'™.I_¤Š{¾Òë— 5{%õ¼Ä<„$V¾Šd,rÕúW¤k„¥_r±3¹Ñe¬ãæ¿ÿüíí€Ú»L¦ %\Zcº!ѪÔÂK²›öß[Ëtœ`ñº$rµ®3{öQ×cúÛÔ•„ûÖ…žŒÝ„¬#]Ï”«†KñÁK7h”\y$ b¦_ø®fëe’eÝ%zuÒm/:v+N…)ñ©ï‡Šß×*,U" „4„«8™Œ¯|ú*X¦»híîÁÂ)…žìp°x,.è?…¬*Ü•!ã©_®Ò‹ì˜ú6u»%?tJj‹ãv^„5Oµ§Px=Ùö*º¯ÔÒ$¶UwÌqSUI¡íOU¹…ÓêøëÑ'â›Ö'‹O[¾®õ-]ðâ“•{£ù©©Æ×Yí)HØùNÛZ·Æ6Ppd´ 6Bµµä XLk„zkºÚ œÉå±("Þ$pÝ0/×mã¦Ìˆ¨z‰",áÔ'DcΪ;¢U¬ÇÂÄM¨¢<.[»Ví#ìzºà|ÔS×8îü¨ÐšþǦÜ÷Tu‡D¿gðê{˜›ƒï‡VU}È]=ë%"œxÔÌ ®«Ä&›kºñ¢ÑPšm.õ0°®FÇ1÷¨X}k±R©cLÅØ‹]èÅexÉ"ú[ÕÑqã|.Šk©bâ’0aŒ æ'Œ`‰à~BqIÝcÚJÑÉ&“såTnŒån±ÍÖ|û±jÊ~Íþ?N8üÊך}ÅâðsÍ—‡?õÀÔšÿß ü¿ÔƸؕüE­M k%²ÚÈ NW±?m¶c÷€Æ“/}U;u`OžÖïÒV@Ǧ¼ÿåm9w)ŽÚGú3É »xëÉ÷¿¶C{$­±-‘u£TÇBݳ¾úµ}¥Öý&ËJ~¦!ê%ʪÞô>/Ý´øÀêü¾³òWªEÎö”Tç€f¹ZîJ=M^p±lÌÿ‡ÑQ+VÂz[¬tk¦Í”çæÏ¢ùó8ùÀ·Œ1–aEysgöù· ò%ÏVûXä"Ÿoò­žy«ºªp™Ëõ&OÔát×Óoƒ™-ò|]Uèi¤*s´­±n~)ª ûͪJj¾ÉRGæŸWõ@ÐnÝ)Ä&ÓÄ*?·[—¯4RsÖ!ò¾ëèÇ÷GÈ—ÕÇê?nÞ½þ?ö®¥ÉqÜHßçWè¸{`5Þ‡Ëkïìi׎ð¬cçÖg•¶$Q#RÕ5þõHJ¢$ªaK]TçPÓB&È$ |™@&2ÿã?ÿçÇÓßóUíúŸë]~Ù=GŒž?üroj¹n_zßòémÙüóÁ΋— ùòqs¨íùuy‰žÙË,E¹ÕᎽ|ë×ìi³Õ}<°ˆúˆø@¬¦GëåüfW6÷Ûõ¡©g Ÿj œjÏÍKGóþ¬àsü0ż‹¸Ò¶“´ž¿žÓê¹—¥%r1v¥Y±sã²åüiSeM>eŒÝç«§¤ÔaB?uÑš™”ÕVd7}¥Ênâ&ߦdz 3¸ëº‘Öó¢#9yËHèº]ú³¼–ëeºµW€H·ná’wŠÄç¼\/¶O/2_ƤñIRý5ç½#¨ío²pj•òÇLÝ’D¶Ý׺ÀVÿû—Í6. ¹á—fTý­MõZ4Æ‘G6ÛÅg½­OÁpËvá>¯®ƒá—í|óRœ—»‹Æ%Í!@Æêº¦IVþa PÃÚîw7˧c®+´keߎ¡ zauT³ 2û£†ÊÈ:oÉÌsЪ©ö|UnòE‚âÞæEY$'¹Ó÷Í)Þhզ𗉯/›yy,z¹Q&ÑòÙ盥*„"Xmó6]‚}U}¢ý‹¶Ë=‘=iQ¸×Ò<¯R´žnñÉVyéŠñÍ|~9Tn8£Ãðð™Î¨E0+“¤úûç‹NjùVSª°µ~жz«±²³¨ì×ùbn~m“Šl—íêÐÆ&úÅä_ZMñgfÂãï>Ö¾mT›qcÞŽ/V7ìÌÁ}s3Ü[-*ôö)'­ûý„òù˜¢Õ‹³ÇMÍË:i=ùqhýëq[õqNøÊ|}Ò°pKu,û²ý£x»/'1CǶükc>Qbà†ûVµïÚ¸âqÀg1{5aCÎMxãH°××~£”ëõMR¤JtPd•.ÜÑ9¹#qí=aŽ3o-ZcAèÎsוáòOÛ9™ý).ð 6ý¿Yµ€tZ„;Itu›Tþ7;5_ÊÝ^9#ÅuN¹ßc.'spÏfa» ÊW×q®Ÿÿë/ýn{füY-@ÆÁ˜Žûe!=˜|˜aè ÐÚêVÍyÀF@ÁpªÐ§ £¨rœxîäÌJ (ñZBI4Üáxú¹IZ¾ æ…uÍ4Õa\ºÅ®É¬×?ÉÖ4jeªæ ßú(ÌWžz¹Û܈W®–_æ-Ï@èìù#á9,Á“D¯–‰ÆûÐãI|_o´è’I­ñ¼ñãS%~|ZÄRmÊí:kg®HÉS>oWj“ÅL=‰©PSßR¤dk‰¸»4Egv¯Š¡‚ëŽÎ¿û!® í&_ÇåN”Ó‰ ¾‹Ï«ƒŸ“÷ºvwƒJÛ6Û(ö©¶=N~~Šç"ß6VŸ¶7×êh®~…Aò4&KXÇeaôº§}«ÏCŸq^ìøÿC‡ÜJþë߆ö:xÖƒ;–Ÿÿü÷}7ùÐŽC¿fñ2´ãëÀŽåСþÏçÏùëð¾ÿû§}ߢSwÓ:,ZY tV‘z“)܆œ­,u¾-O£ºpÕ)¹SÊ:_ä$Ûˆßcÿ¡éÙ-ÖG7‹þª£†e¾]•Ö½5n¶«£ß1L²ØÔoXô¦V”g™²¤¤'kÞÝ⯥S§ (E"ÖßÅL ªñ\hV¡Z?ýã§¡éL;@:@%׌ÇãQŠ Ä(#Î{G´˜Ä-pÍ*¸j'ûiûÓïÓˆ è¬|vK·m Gd. þñ;¯n²Ì2‚Í(ÃX )d×r°îEã©<²ZpK¬´ÄQ¬@ÊpO.©$!Í9õš|¬àÞqÄà¾Jªÿ.\¸“¾ªïú“þG¾×Wy7Z304)eïÄ)92d°sV½Ñ,FºÇØÔw&£cQ&î-Ÿ6ÎÃcèüí´y¡¶+ó|R]¢þOç…[«:-€ Ïù—Ýšø”Ôö椒Fh.Uñc´OÛ¿ÌW6ÿ’¢\T=öF­n[ö¿°XuH6~ªÞnƒI`Ò »WšAp™‡_f—Yd'Kõ7éS®éÍçɺçà þ¶c¥&4ãêÌ1R¿À”·äð‰<a@hµ!ÇqÈçã~öÇê+‚T0òo° Ï °3ÛÀÓ¨¿ZŽÃJT9æK6ƒP !ï~´Ÿ7 6Mý×x   Ä)c‘Qe„R €„ÂrÌ 5„y‰8ÇÄio¤S·K¸t§–×XY÷¸<6ý?ŽŸÐõ”Ϊ)ý•+Ýc„¬Q­†ŠSÇ®<ªºÚ)]Ö’-‘Q!g…ÿ®‚qÆ-aˆ»ex%áÆ(ç PÒaA¡Wb ’Ú‡<çÐ $½aˆw‡(78g…˜PîƒPn[èX8,cüuÀßa®?Ö³}d¸—/kI—°ô“bÆ¡CÒ'n»˜¯Ãz:¼ñ;PêXXÊ /¬¢ÁªF[nµÆEt2 ƒázw8k“±6F´j¦åc=1džUµtYK¶R1"ÈL®d¬­·a²ýRw7RQÉ¥’(êpÖè¨`Ò8Í$bP µeÄ|îùë¡âä ˜â·ÝÚŸ ¾ê\«ÍÒÑA}-]Ö’-zUí>Ä®e”®·Oµ~žÅ“ŸÝ›BŒ4H%±ÐˆcDÎcÅÞaKƒ½|Vé´Á8Ù¬÷dõ¬}¬çíø¬/k —Ê 9šÀäàÌ Gwµá‰ÊyU¾Ïâ< H¤±ZAÆ$„[†‚@¢±6ˆZxP6ÕV Vq%ÓÌÇ'ýÙ|§›d'^¿Ÿ—Þ‰Á9©Žï:7å[L¬¬äZÌ”P !1'%òª˜öÛV÷ž ´ļ¡9I¾ébúÚ¹A&Ðí±+9¶“‘:‘o<„é·)””Î ‘‚)_‘ºeñ“—Îb5°nÌõ)O¡¥qå…˜3®eÚzà4„`Ôwî–þ½ÂëdRŽÝšYûXÏÛ±™ŽxYK¸„é a}œ^Çkã~uµØ=k_l5cJg¼„@S*$ЂÀ áZ8$ˆG@Ü!ŒM ö=º˜P¯õª ^s ñ¢hYK°D@!g"FÓ„•êUÐÎO[µ±ÁÂ%=>j£±† ÍeBl• b…Z)mXµk#µäþoµÉ2!Fí¦åc=1GStYK¶s¤bD2ƒ01¤Þìù]Ÿªôþ1½~·aF°cÀ"ì‰F9C ‚P˜`œ!`¡® ¹~85­/'»;kflUcdV‹–íK¹$—3¹Ž_u©æ‹/ª4Ï3Øh™DÔ í´Š[b2+´&DzÏ%S j¦ä¾hÆ8§XÁ{ó}|x"õ)2qÔ ç€±5ÊŽLëìåËZÒ¥ŽÌH®N àJÊ'¦Ì­âH§âÑÌ F8ƒÁTÖP/ÃzŸ2‡)$ÐJ ‘—ŽÞ0OÜTši2gxUMË:p‡Œ «¢lYK²„Y0€f!†¯ã{Y®MåkÇ eQ€ É b1ŠZ éƒEŒ¬àÌF÷±r c¬Èí¢v¦þ`€µ'lƒÇ_k“µäJù!å³€\ì:G@V®Œï°Ú°ívcÅœÔã`PQOµdBhJd^(‹D$:+¾#k¯ ¿F_»I[ûYÆæn¤Ë@ŸGÌ@L² ®„c± vX=³ž=J,œ‡6ƹ(¯ŒÒʬç:€©–\" ÆøvÙ¾nòCw;‹G~ÿðwÅ=ÆÊfÚµ¡˜Ú,쯦8ár.W ôXÃP_àuÅ8ÀŽÒd-¡Ü|4.œp>ž¹õÜ¢ɘµ$L,رtÆ!½ÒÙ»²ó|ÂÄï¶ÿ#‚z,-Pˆk',Vs±òÁ4d€ak0øþmÚvœànÜp×9eëI;2$«dËZ’%RÎp ØŒ@¯“­¡0aš­Šç<,Ÿ7V²ŽY" ÆØ „ʱ ‚qÔJ !·s ŒoGq° À¾1€ÏØq.2dì_k"@%ŠayJî›oŠ€ïÒz¦åc=1LjWëeÖ’-yö €á‚]É«x™Ü VÚ2H %Ô: ¸0Æ@R,@KlJè<ÕVW«ÃÌ©}µ°ß¸Â ­ò¥Ëê+ß"ž:¹ñ·¿ÿyçèÙ\ImP¨Mùyñ´^|N úN¸Ôù*×yê E™rþªÊy¾:Ÿ`5Ëvžê~­-X»Ôb‘ƒp5¦/¯"µzUE'9ýÚ+RÌ¢Ý,õC˜|õÌHÝöv;ùºüÊŠÉ<îÑ.{ ­Ý™c;¯³/½åþ¸²äüJ•¢ß^t|Ñ}D‡3A9uÊ K%å í¥Áž{ÄŒ Ðœ·+È0ŠžÌé Úú¡-Ìâ:ˆjlgo‚dYK®D,LIÁ•Ìå岨ö?ºWû±Ž t˜s/%±Ä:D…JZ¬3ÔºˆkS„ÆûœtSÆÐMÔ) cÂ÷÷á{µz[wl»"Q´¬%X*ƒ1<ãDÃ(» KöFPø QÊy8s` ãTJT@z$¹ÄRŠ5ÅB[·‹ˆõù¦Ü®Ü•—°x¾ö'ß]ö~áþÚvqg4Ǥ@&r%²4Efs·*ÏÇÙ°Mw_,³:çB|•~¹èüÖ3±Z-òˆ.ÇãlnÜi[1_®g­/§AëÏ…+Ëùê©8êV¬ªxNÓŽÁ~/u€û>¹Ò|z³OŸÔ¶Ì‹RmÊ&r9_Ù¾ñÁºâ¥Ì×þ£kv4ÿzð$Ùòþú™³ó2ßœÒ÷—O6g‹ü)ß–§Ô(ùWªñ„^<ÑßP`&Oô÷N¬Ãë=WÚpJØ AŽ‚âª·KU¼QO•6 åÏäìA€ä<è£:†¬±ó¨Ó€"¸!r+íí OšzÒÈ“F¾ªFþ-ÛÚˆ÷xÀ¼¬Æ¼3pàþJMЋ´ç:AÐêŸJÈ'A%F3FœOâ5_Zn‹Æ¯MÑD2å0LFƒ øo &V+í­¢š@½àÞaЏ¿]É»;U ß ¤þY-¦°ú÷*‹ø²Š`;†)v~Ï@€$âì@‚¡O=Œ‚ð^î´)N­ùÑ,Ë×åIáüØ]œ¸V˜þÌtC×;χ–¬àƒš…ÀO0ƒÆ6\—X~`Ù&£„Ä< !¥,¤QìqÛ0787¨× ‘˜j w½ÈySFÙÅj]Ô |—¤læ‚Õóºa’$‘zýé7v«SçJ— ³‘J ËtB¿Bžò˜k—O4”¼•%ž*hN7&vT8¿üû½i] ((m!(ÍfíïÙeGwó–îd­hG)-à‡Â†~©@XŠõGIs»|_‘rÐzù;ˆHàAïÚÀrÝó¦×ùí¬äU–Ôu²ãÖ4"ú1?²B%W+YÍ¥®"LÈô}CœÆk;âÌ ³6HË8KÈÌX„‚Gºb‡},ã–Ä!§, B‹zNè™ñ-'¢ïS`B&·Ã(p_”ç(“:h]#`S#÷xÆZé?;ò<š‡çåîÈó`{ï(S½Hwú„–õ);Ý)éIœÐvÙ'ÖÏgâ†:97-É‘PÒ –´­0™'y\”I©f› ’沓5ó^ÖÈ ]m X ƒ$ÉY›l¦fvõŒø¤YÑðiÉýi›Š½çĽ?Ûœ-‰D÷”YIÊq²µ/"GÞõGyaDŠƒ†˜334Å)§çÈð²Jò¦·s,„‘åYÄuL—šÜ3¼˜»6¥s=‡¸1 "â;Ô±#5<"ÇB¦TËZ ~Ê:¦?.¾ Uà/ œ.Éi‘]ó ñ¢Ñê¶Dxi ·÷óQ5®è¶¬¿Mìÿ§J÷º&er½©"W“;¥ûÆ=¼ªr_Ñ*‡Ç¨íŸu²Úô*÷ q_w*Ž>Ÿ‰,ÿ |Œ=#×{y¿Lõ§dÏ'é ‚ë`~ÁÉ¡èQÜ—Ø ÁáI­”Uƒ¶ÚÑ‘ùýÓ÷tñ;¶ëÃЕs(Ú æRG1ÿ¢á‡¶Èÿ3A-8G)¨Ù6+gB9ÁÌ\¸X¾¶e‡¶û‹l1â9®ÅbßqBŸÆcŒÒðˆÛf5¨ÔÐ×_¾üz êé¼qä«ÕùrÝšä,Eÿ\DÖx+ܯ±Ädtñ²ŸŠs1{.Ô×KðÔ¦¨xG¥x `’Å`h®"ݽd$Éw‚ «àð„àÛ¡i~ÍЩK¥y×÷<Û–h¾½`.’”ëˆ#Hf^(Î?‹ä˪XÕÐ+L èæÉ3]Ql¶Ã‹3È9ubÊ!=?r|jØtØ!ôI¥‡CxD~/?ÚÆ^X_ó‰ ØÄÛÜ—W<_uaŠsæýe?ó¼ü¾ãqM7 hгM\KEÁE*^‚’¢ŒŒ¸Ë5]sºcEy;‚X4æ\`(ý9fg«ª¸=S@áJCc -V­B1‚3†sÓŒ7Dç”×04ð‰F`޽áÿm‹†Œ°ª¡eÏP¿ÿ¼-_]ÄNú/¨ÿ¯‹y‹žËl5¾¦1[ÇpefÛ^0?NdÛË·]Oœ™î9áY^—›Ì9Æ–1Vk¹±hº3Êc—E^2F1|ÛL¸åXCFê„ea¼ …ÇuÒ šÍ#š6?ƒ×âÈ1Þ'ç =c÷Í?Ε³£#/%9ö…E/þɪúv]ä&ÉYq3¸n²æ†“ ê̸)ªM]ÊÑÚVŠLVÈ Q¾ìº€º{ø+F‚KKŠ ]9†­™Pˆ 5­Ð4Bkf[mºç¸*’œ7l&˜ªéˆÛ-°”Z#‰¸GB⺧Ü\Ó3|Y¡®É;¶bƒ‡½0MrøÒÕî>·ÐEÒmyAAj®+Pú.XÇ]¨ Tšæ¸•Ìøï#Ù9‡/Zò*}|«çAœÑ…o bßT¤1¥“ˆþ”ïúD_ó$Æ!æúô¾¬È/ú‰ÙOýy;õ»øg’'Í‚-»t˜¥#¼û½zƒ°%]“jÅsoY9ªaäVÄEqkŸÔ”T G‘öœ® BZŠO,²:š#ÁHŸ>X)ISì¥bE‡1<Ú10„»E©x‹º6“‘äóFð÷$_-;ÜsÞŸÛ]з9­’:û¹äùçb[Q>ƒ<¯)aó7vàHž¤ö‚¹Ò‘Û’··R&l‹1 à…+0Qe2 ÍüºÚ!-'/ Ï{\ `=|ØVˆš‡Y46Ñù3 žÌ“í„Io;ž|uNÎì=ó¤Kû!µƒ·´!xWGåJºìYмcAG…‰¶Ý¡GjY/Í£­PŠªá’‹ë€Aô{Âxqwѳ_¶QšÐÙÛ"#Iþß³Ÿ`jßJ–:»ÕR‹„›J–pÉ\Dø®íÎ̶A{6ω)$Ðÿ¬Ý·Ò2 ǰ RA°<ôàdFlSß}æûÄÂ(¶ : œû6ˆ2Ï \ã‘ÄÁ´³ê&èh9Aûb³F<Äšì/†FÓ´þ¯}Q­„«æÕä‡Mñßk0T»r©Ì‘y7Gdª­0›¾Ùò‹H”ÏI:Ðχ? $3Ö–&§ãØŠulOVšÄus¤‹Í„¾ÌœÐ;Ë+œ&@¿"hoÂQ‘‰Ë™e;‘kÙÔˆÄr3êÙ¡å¹qÈc‹óŒøñ‚î'hKÏÄ ýgåËY‚5MLÓ„ÙÏJ ‘ 3M”BSHÅš7‘¼&f—pt­· áßÀäc‡4,°O¾ „«ÑÅÈÈ ÍÀ•Ä[šÌ•#d "Í2gV˜g%ÍGÛdEÅgÀ¼6ªä ´Ê#ßv@¢\j±M<Ä\hYqG—P_Ûi¾j’þ/˜Á Ám>ó¦>5òp´~ÿQjï?þ¦ƒ÷ áÆ¾ôYfG¶,)Dðb3™L‚'ºÊkĸëØ(zä‡Jðû7o®m5?j•6Háɼ²nýþ{ý*suõúÇצ:ær‹öæWW×£ošxd,žÇUŸ”ÎNd¾À`.Žlæ²g4ÀΜÎ[U’L¸òÚv Å>’þsT7š·¿¿Êu5Ëc̆®764lÏ‘EWÌÝÇüMAìxæ¸b·Ús¶×H‹Uë(‘7f ™™&¶I|p¡šQËä–I›†¶øLlTù‘ µ®é˜Þ°ŽaXƒYäº?øá5«Ïo?Âaçã½ýxˆøtu–ìy…W?a´ú,Žƒe¦ßÇõñ¨¬g¢É"<aì/æ;%]v´4hIQÜ^gÛšgtõé#n¡óv Oç{Qf ?Ì«á×ΣšPI¡/i¢Ã÷¾ì¿ø¼ýâÊ,Ob¥Ø'Nû ©¢O³ÑÜ\Ëóä¹ßˆŽDòè­Ð g®šçh¢½‹sæƒjl.0žÛŽcÚ±Çf¶cùf@?vmÓv|Û¶<3rˆ?lhMËr2á)MÆÛóüôYŸß÷t|é³:¾%M”Üøõ¿ÅIWJéä6t“¹¦,£X/OKA!KäÞm$“Ð5ö\<âŒio|Q=Qwòþ}øÞ)X¤å¤¨:[aƒ%j@'§UX(þïìs:#.ϲ½þ¤;ƒõPÇsdħ}[i´ß¢³ëŒŒß ±3®ùåõ§ñ"§çËz|@ŽèÄ­§ˆOÉÞDƒ?öu÷'x'©¡ó_ek×€EŸmpÄÅšy‘+V±Xù½Vg SYû[Y¾nŠì gU¤ÇÚ¶*ËáuhYfãÛWm*û¸ ½È2õdÅò>&õôuKQ+ú"øŽ›ˆVï9ÈÆ„¾ùêað+ï+Õ_ëV×è#Ì OEÞvwÓ!€´ÃRÀSïÜULö°¯f<&ÛôŽø0tÌ8¹¯Ð¶äU,¨a¢’jƒW‰Ü(Í'jŨhÖÓµ•X!U³L),߃5ø–KiŸCůï^¿ýônñyûùZQsPÁUnó7뢨y¥ââ6½lÓºð…lð.\ ØâåŽ ºÅ•<×1ºˆõ é< m¶åë–žŒÐøX`”©(Ù6k–ŒÆ£¾­{ôqðß|<«÷"]yTìþ/ökBá…  åÞJ-Ó*ºAQîWgJaÙ-&\ð!‰šÊø*ÕC£>*£çy?šõ†§ËÅÐQx`™’{Cº±i'TœTü†¤©%å.‹[Ñ>/úý«×ÙÓâ#Ík¨RÝJ!ñ¤rSDÙ±±¸)J*狊§Éj-¥ºt:¬_mËYSH[gÑ(4ëcAœ™¨ôA¨{9ß…¼ˆA€ DJ lŠ:Î¥¾ÄuZ·;Òʼ“^ÆJ“„J™ ~Û&¶壸; À>•.§ÛDêB¶`I5†j‘çt ª†ç$¹9@Í3Ê"¦ZfG@ÐVÅW2Ѐ¦|#±µ¾è“ŠT«H²Ñ{·ÏÙËÍ4WDþ†2(=7Ö€N@õKì#B7£éµ’X¾ Œ¢¼SM“²ÝTZÁÔÀ'ÍjÉå^)“‘¼.䯳ï|ÊT¬©y*,‚ùû矷2”4m.‹„dJ¡^óT¹GY)¥ÛãÂì"wráVòX„8ÉÙè îÛi¨¼A¬\_žßÈßjE@3‘Ëòw[B+©®‰Z,•CN7Q¤ŽÂ&MŒMÄwL)K+Ñ{d—rV+È i¨<Ÿ6‰ò¡¹+Å•ü¶i 0«¤[µ¨b#³ÏÈJ)ÉS¬ˆš¬ä‰•Éýôv ¨äÆÊ¹±¥˜9ÅMQ¥òK”iÝŽL+ìh¥øšÔë¾Yš(_JðU¹Øç‹?jß xë³‘Ë µ½œA~ëJâ"ûV¥‘K0&\EÊ¢í¸ VE¡\(S™ĪãÚT¤Ë“FP’k€BRç Y3nÕëf &N²’?Ê.aݱò¢>ïFÖ ¢QõV^U”m@èü˜¼uÖJ¥\#UTôÀ‘†r\«i!ì2C¾ÿ•ÓWÝî¾ÂF8==Moìügé¶%ùâûÖóÞÔÅ<ñNà…î,ÀòÌó½ñsÆw<½Ã'ïº,v}ÃöˆŠd=fÙ¾k…3<;ˆyì,öÃpHÔ;Ü·%ÝÝà¾ÝKŒvm *†ýVQ°Ï0½C™ah¿,\¯ùðæ‚~þ„ÝíD†¾_ë G*z—Q_3¸ú¬¡|ð"—ÖÇ’po!-z—"ÖŸ:Tƒ¿z\Ù~ÐåfÕ/Ê{Ш¯Ì8ŒvÛpÄüa”·!oŒWÒÞ6®êHVr„5–f0!Žö-Ï’óàÞŠê¢i,ËIT‘ øZk<ÝÅÛÚÙ7Åà‚À÷×vdšÍ…"ûM¬°LÃ='wåðœ*#wÞ*b}m„ÙyV lÍä¶A¢€z¾OÃr}fšGmê‘g¹f¨e%?Ÿ–—¼œÈúðu;Æ+Éö‡›xβÛ8¥^¶Ÿ}Ù±Ã*óº TÖ—ŽãM’²á Vô\ÇÁ|/r f ÉŠœ5Å–®‘ÊUÒ€-ÌV\¯Ë¨ŽÝæ _jÙ†á«þ ½n§¡q™4¸S•\¹? PzªÒõõ^7‘>È"Šœ¦D¿5T$µ,¡B¡@«¤ï*¡[¼uIÒŒèý„7…ûäú8´[ŒU¤WlÁÔP˜=Nèú¾­Â@wÞ÷]‘裆ó²A ØSËG>w>ÏåÕOÀ휻8Ê%µ£mùØZìÒžŸÛØFŒAh3ßulß¿?;߉%¢w°sË©ÃÓb#´YÌœÀð,Ûö-ß´]Ë!ÔŽxÀ ë®òíçÛ<¡ëªÈøD}Eàÿùš=AôsgÅ‘iÒyôGÓ{<Ÿ…äQfBrAÊL—+•Î/I­sÒ$ºYû†é¡ý~?‚’Rgø4©ªm}MÒ²[Ú®ÕL\’Õ6'ª~w«ËŽ“(«4AXibZ:L|G—aÂá‘ê莮DZâi\í>½Ñ£ëÄ=ªŒÐµçèòb¥3sÀZçŽiiU9/Zi…T܈µð:^#mõ‘«°1êXŒƒµšˆ½ÏtÙd#Ð.©•£&;‚ÁIjzΧ£gþÈDŸL€mk]r6,Öp—Ži¨òIš5'MÅ-Dñé«®o8Õ?À¡zŒW@¼Èlmjž¯tÑìèórÇk½£;¤ó»LlN€ˆû‚º‚·_é¼—€c%`döaLjbÙÓÚ‚*„LJ܃¹dOj ]&µ34mß¶gnè¦{/'&°gbIymFhš×±I=Jƒ M‚…. áe¸í…üõ Ø£a(‡ã¾Ä>‰\êøñX“è,“NfUY÷—’æ?GWÑ¿Ðr= H!{óAYõtºNð„ãz’’0̳o#âã´¼D'fKÞǰ'Üx1ˆ¸ºy@Íÿ[ dl¸‰9w°›Î§^±LÃí™gÚfpÎI°w«óbDÿ|x‡…‰}`ò ¶#&w|ÓbÌ-{nÄ›âðñðŽ~Ø.%ÿçMíá:Ès"KtZt¾£Îk$\G]£zy˜6ƒi |¼óîò0óæíÌ{púœâÙš¦ÿ²=Ük®vñÕ±:3Ëv|ç<µ ¬6[’FÅ~^Ô\x”žàG™ÆV(¶(õ¨áƦÎ]'° ßc¶gÐ8 ˆ‰Ã¤U§íï0´ Çrö–—"ê“ÓDšU¶¼™è#S-BpF…& .,¶Q&€Kú³\¾ùÞ“ê‡ù%®h§×ÅJ‡Üµ/Öã´XK ö•¹ÚßNº¯èãÇ.ô=èCÎí–þÀHšú_ -½Ú† ¿wï˜øñã»w?Õ»ïjö]D¿«éwÉwè9“L_16IrȆiÎlC¾Ëü0ˆz/dš3Ç2l׺ÇÂwƱcÕVôÿì]Ksã8’¾÷¯Ð}£¦ñJ<涇ÛÄFìDìÔmÏnoK¶Â’U®ùõ èA‚$@–MÚ–ª=Óm&eŠ&3‘_&2¿ôÊ0Ð7ª¸V€Õ)ï8òŒ4¶½ôæeSüöÎ,Å··Ã“¿ãÂÆgªÕ||º·Í,£$|²;¢ï¿×ÜëߎuL£^µ¤YƒHŒ!ûÍ‘"‰£S&©ôcN2<ÛÒ§$¾ßó­–ÚŠ…ÀÜ¥ÑÉ„µ&M#3ˆJœvX‘:HǸ}ãýÍ™¯èÚ’~¡kÛis;z¿î6~Ë7Nïúb PRófï~rßþ|ÑFuzZÎ$¤Ø¿›³ª:‡1FV„a†Ñô‘…žHá”'T Ã0pÁµN3¸¼µyá¢Ò”’˜ÃõŽ‘Úú§nÙ©7nú÷mg]k¢,©Uë[4§¡Ó0aNUŸ)§|EW¯¡¯U˜Sp€c(å¶Òp…eÀÑåáè98N“#d’HÃ~¨þ¯ÿ¤ )‚w׬фÅUèùñ!N(z½Âïjtz a­(ñ:å^­ærÈëè(”’$`¥"äáÑQ!hð^ï£Ïk&ˆÝz:º%Lt!Ó”æ.Š…âë8Xa;+¿‹:¢ižÃJ>µ7XZ°¥ V3ÇDÐÞFˆT^Dðãà2â ¬ vàVñÏ{g±o5³.1Ñôuj!G‘«gßI0.UÕ~ª®!† FvÇ bNjyÕñ#2Z AR1a”!”Y-c8!IJ•pˆ:¯ã¡yà×€:nôºÜ­ñá*=y ÁW$‚úYÐdÿ“Çz Z™ÄªÅ¤VÈˆè ³Ìv¤D–Óxüf'_ŒÎ XGb3ñÕñç3±U‡>ªÇ•Ó6e¼L9Sf©Ï¢”ñ$eDHo‹Ìj»//Lf ¸Œ’Ð?oõ¾ðfŒBƒ|ÒºÇÔ–pŠ9Q©Â¨wªT<¨ÎÒ3¼J‡Àgä$m˜xR×jsGÁÓsç8šà‰Y¬‘ÜYk»¿“Ú@ýãþ{G˜Í½ˆv¿w~¯yš9ÇÏ-&/F§¡lAiÎd¢£¡~K¡Ì~ÙÏG5úÏívíÿù÷æÜ™/ýø¿÷ö¿NÖMÒá?C?wÙg¿þÏÉÚOvÚ°à¿‚ç"ÿrÙÞUjO;íeº¤w'QËuw")j)îNkÐá.;j(ꚣ–™î$Ú÷>þ}gNºÓ]»Nålq§¥ª!‚;î²§qar;­[çúÖËÁ?Û£œÇ­4ômäÌÚ–Ž/ìdéçœE,?¬Ý׿k»ÝGI>ÃwQÓ¼»¼‘Fò‡ÿ¾û¾Ùud#ÜNùmåÛu÷“ß²ïüÃ<Ý Óî»JyÚÛ}‘ýj/Šìj±)Ј&Š@d7™ Še«¯9ð×PÚ; ©y P§ƒ&a‚¸ÃÞY¥<–Li‡R2FZÎ?(4}‹Ùí/ãÀ,Où(ɪ¼“5bÉê´ÅÂÕ ¬×¶—°Ov®…@oÉ®øòæ—·æ6¬"¤ì3Õx@fxY–'Úõypª]¨§:kñàìØdõ ¼ú0RÅ«Íõd˜«·êœÀWIØÕÒŽuN”h‹3€Ö‘w‘Z÷K/­+­1ŸA\_ú ãßõN-ÊnÜ`ÀÞþZ¾âåIŒ'‡k¤Âeîà2Op©ÃªÅ›]ñ¢ÂEÆÜ*ÅmƒRûýÅþÃ>n.Œïµd¶ wp*G»¯Zj[ü[øÀN}+ÝiËIäÝRù¶—ÒHAn5Ë&1à V+"è æú/G8ØI´•P.J]ÊScµ€¸Òy È#Œ GÀˆz—DÛ ³Y¯HG5É·“íha}ŸÎ§ãÍÔâü½¦Æ€i©j0»‡‘}rÆ]Q„ÅÌ æöDi=²‚ӡŘmJ9 „A !Îh.Ð5…jïXZU ÿI€æô¦b–»Ç=ýº’XÈİü–CÕÎß]š‰%8YÑh…³M¨³›X2$ 4mÂgIà’"*Œžƒ•B¬A5{7±ÈOvÞb«’Ï)v qgŒd?öþ ¾7¨¾[‘'Vn ¸%åËwÞš÷\ÖЋE²yùµ¡îìuX \ÐÜÅÙ& ó]§t+Œ%‹AÃl³Ùþ—ÁQB¦[…Ó¤W•Šú…n‰ic\›ÍÌMß;C¼b’ýmÓÐdpøŠ¹@/)3·û†¡g§V$[&vgúV²P¡hnpý<.òžœo{d#Nƒ»è(%š¹—¾È3‘#nÚKî5%‚€‹è .šJ=*¨‘1Ò ”b£½~7}3~çò\ÿúëA_”òL0ýåøˆ¸Ÿó£_Îÿô_f¿™Ÿ\àåëünÝaL¢+ŠQ If–'m(jG Aj¸Œº˜3!"A:E¢?ŠnÉrGF»q§£¢³JŸÃ¥2…ñ*·6–å2weE~=ñ«—æ<†*õ1ò= ÊÌ]¡£zNUm*) ¶ GRƒ uÒ€qÑ2¢yx®bÔqLÑ-6ªü=)MÉjùÍ.5ôÓHo.'e}¾ÜÅà@©%…ó™eõùí•BåL\ì¹ <šSc˜u{d©`ž!ìé­v¤|vôVú¼Š{PÕ×›··Áb]µºmp/—RUó—ù)<Ä ¸usm±2œ ¤’BšgPôcx(°×€nµõ·Œ*?\u§À áH¬â¿æöŠ' <•ðEX2FIÀêè•øÀ0³Ri!,õ° †‹·Køf«ÎB»Þ/OÍÞdJ5½ÞNÉTSÝÖDµ¢m¯òú·u·¦»©6ÊÊ­£Ù»žhÐZñè»×ÝÙGïïwñ9ô[0ôÖ÷$ÝŠñÝ÷SIg#x¾”pµ’T¢ôxד]ªr[QVsÕ ×Ýú—çcýUW´? 0Î$‡Þá¦s'­)ÝB9„xÁjI^ÞVj;ˆø“¢#ŠÎõ”í–|$aBù ²Ú,†€•‚ÄI&ö?©fò£ªÇ‹õßó±åB9é™iäë…£ÅõkPÍ–-dÃsÛZuÝeiÖÍ5k\¡¤®Yì^Tú|Yþ†5ѽu°P4}Y¸žº]"gÚµrx*[4 '›Õsx._F‡gו}|ažkVØá©CM¾)ÿÑ#%iIZæå«[æ%¦óêú[xŠA Qs.gæl›,çÈúK¥A<ÎaY c"µ6XŽ­G‚[¦_£”FßYó§ßf辑V¿‰(ƒ`ÂÄ0ƒÅuneIJͨ`ˆA0‘Žhì”0 Œ#ƱTS%±3H;% ¥7ËmògÌ¥7Þf‹š£J¾è¨K…ÝeÐYqV.4?mÕƒî¥rnNµÝ¦KQlòž"O<’ˆ!-c‰Ç¬eÔ»øùáE¹}Â׬¹éÔÑY™k›W¡ÇS)$ ‚®$•ln4 çÊ!)†Héƒd¨§AzåÅ<0bdAöí6»¾V¸HÞ¸‹âfÊ:ëhÎ^^¶â.^±^r'ye ·¹z¾"õ0¨€šK&•Ýb¬¨@„cZµÁyo(¡Ô*Ï„¦°ÐÜT¾â‡›Ø?7È–=j£!EÀ@É–ò¹ÂöË"(#åàѦêð¨"+A9YÀš&áŽcg‰!ŠXaj¹aÈŠáŽf“ b8pÓè?ÙttRû¡Y½^ã'‘Ä” T$øL¾ÚÈ$8ò&:åcÀ+¹0„ ‚“%ˆQ0óÀ­4ѯ±£âµ3f> ädtsÕWµÐ9^sêÔº ²{ÙœÊWX9·V-¿ËÒÊì™ÑJ‘ã$þ— a(¥X›yiÅ)UtMhçeÀæÏOzd‹%¶¢‚n,µdw5m¸hK³‡z²Òx22;U~þž)¤cYp1\%RqöÇÖc‰ ‹Vâ(P DÁ •ìõ]C–å¦s>[)¹e‘Í<3™ÌûÐÔ‡"3vwÝð4M¢ QË„gá×Qâ1hí&b@áÑÍKr@?ob¨CZW¥ŠYNË•»a:wSÇMœ …Sõ§œKˆØ½Ó’«àXzïâÿ•>©  L B˜£9í)OyÜÛ…N%CøÌý0 ë³ —ÉïJJ·ÔÞqO‡ûÞ†ŠG­­êh8UB®0`1—ÎæòUSÀ, ‘GLDøšQH#e1 Rx4åþþÀ¬ó¯ Ý22km¦èœ–-µ˜k.èL@ (VD(Äææž6Ó-h@=hB{.œ‰à {æ4§ˆ0$·Æq¬µ|£áõ èdÔ÷ŸHnVö+Ÿ®°yzBºVm–Šf6Õˆÿ¯46o&ûÛ㔬0JiÚÙ–2Âù‡•Þéx*P"2egyAˆcÀxªÁPÚ¼&º´g¶.“XdŸ¨ð=Ót]3-¼¡‹íVÒv›§¥˜sãè;;!I%½yù$”¢ñ ‰g¾‹›ùäˆ÷–ƒOámxbÆQÆQ«œtóã”ò7!i+ÂýnK–Ä›Ï~Áe€›a¿à¦ß/øQÖ61Š3%动ëæÖñn _’ZM­3AÂ4E.HÀ.þ-–“w¯õê@ÉwgŽûIä¶P"¶]xßt[MþL+ŒÛ©¼f8Qƒ"˜M‰0VÇ8áB8’‰L×"¡½¥n|0Úc&`eÊpñ#kÁÊXð*Ä®ÂqÔÁ\>Ån¬l¹ò÷jͰ¤R•ó_Ç ßAP±¢©s¶ó˜,‹.$¢Ñs€DPå<Æy4UÁ‚s.ZÑÇçðjxkûY6¢†eóK×Ì¿Nù§j¨b/£(sm`3™—ãZ`E×°tÁ:I¥x̵ó =³Ï-Ó«´ƒÓ[N÷Ï~)¿úÅt}3’[•BúË]ŒÌ3¿LVœ²Ù©µæ‹±¹Õž ã‘âÀ¹1„pñ¢¦¿‰$]ia2P°}MOxØvP&ɸ±.‹Þ9Ñ9÷ø}[ø»3qíVÓ'ŽíQ‘ß.µu\d•˹Íóð.Üãfx¡ô¢üia÷ÓáÑûý÷Ó\ÃîCÿ¿­ÿí(í^i3üäfôõlí¶6ª÷° e{÷¼Ñ÷_ððÌcáñ>Ž?Ûù-0Gáún»¾;N<ìž(RÆÿžÕGó¾ Éë\Õi¥NC:1{IÔ¿Üã¡óxÂ&”Äñ«t0}‘-Š(é ñÑq&fGäŸõP´ß<¸¾tø­ÁDW÷û·¸5ˆŽü4£´#º»ßcÔn†ßÔŒ*íHw¿k÷0øú“txÃðq~ÓÃÛ?¼#*\íY[]ó6ÛíPÊŠRù/Ì+'(éŸØì¶”Q4М½Ó’(É•„âç•”ÃÏ?9©~¾BN,º‡_~õ{ûkTŸˆ…âwýã_ï#¸Óm.õköc¼hÖ3vØ·qÖÎEOxš:Û‘&u9å:ÂÝÝ¿}W´^ñqS¸àþ!þ«#ùvwwZÙoûÐÜÝ›ü`|˶Ù×?<íMçhÝ9Ê~óàÖ½{zõŸAzgÙA_b¶Ó;8Áæÿøo³+/[_Žg:±ZBÏÿ8~"bê¿EðÉÆau®v5Ç pè| gå*{ò¨çj<~xNÐvþ&ŸÒ#˜Z:Ñ;ˈ4þÿÙ»¾æ¶q$ÿîO¡Ç»Ú¥M‚ÿg/W5“ÌÎNU²“ÚÌmåæE „ˆ$8i[ùôÛ %‹¢ÐL,Û‰³;Uq…Bƒ$tÿºh4ç)O¼„ð”…±'¼4$“û$ŸƒÍ’~#4}K÷§×ƒòóÚû™¯–fÌZiyÄiê·‹x³ÍÂ=#{÷‘MÓG²Bïon>¦MyOëñA¶à³°õÞWB¼ß÷×y6EÔïÏ€¶‚Fõ¨öá—¨×Ûfô»ñá§y±Öm-üÊøÞ2ŽòÄä{ ÜE”ÆI?$pt÷>Í73eÂMrFqä¹4`I˜‡QâQ/Yîù1e~GÙ3žÆ¶o’)ñ Ó§ØTZ¿ot¨žÞúˆ²Ã<ëtýìf )qø¹GJ²ÿ Ì¢]Á€½»«B¶§¸è)Ù?—oNÐ̈ÚËìv&Üf ×Ÿ·ðÜ7ã¨ã{qà…&Ô0ñdZvÓ}¶å7 <‹Ý”Gyrûnd25›MEÜ'Œ™ˆY’ys óÈLp7—²×)µhŠçbp}{–Awº¡.¹»ÌDqQŠ A«BV=r3-õ¤)9ü,*.GvÁ®:ÀüqÙÈ3,E³ðE£’ â˹eã[qþ û³dØ´ÁCËûëŠÍر±Yõ#<~ÀܘÐóƒ< \&F]ðÏX±8g^œù1ñC—yüiݵg¹Hû‡Ø>±ý®ŸÁ5W S=gïæ„à²çñ%­¶§:o/棛G×û°™þvhתiá¥þ G‹ØPÞëÙ£YÒ•˜EX÷-­Ç‰ %zRЂZŠô™ú†í>ø(eÔã9è/^}GÏB¸š‰ÌA]AÆgeÝ©ë~õ0èÒ·&?HDœSó—±# \Nåæp’„ä"M¥Œf{[)/ÚÍâ›ï^zÞëj=üô.Ó/ËüÓëÿ;-| KêKº¯Ðø ÜžÂôŸ?õX¡|9È|Ø~þz]¥§¹Ý[V­<‹O‰Î¹?éŒÜ·ëïÕu?­:ƒ m®úÈäúmø mÄÕ[ãÒæÎïî&påÇîøpÁºv-°ÌŠàž’ó0JÓJ€—Ùo‹ö½KÛM w³$âi–Sæçn¶V–g‚ŠÔ hFLäž»Ï3džèd”mDÅõÅ-_9Cþ„ÇG¨§›üújc6Ø·2ï%èÌ¡•5NÉ¨ÆæÊ€ÊT¡š9rŒÒKÚ®g¨su@7slíFò•hõš5œÔ«×ªU– ³ai¶¬Ýs.P !Àœ åx£¢a VZ”Õó™RÄ4Û¡øíßòÈòH›>h­ÙÚi´2ÏO;µÓ™ÖÙéìÎ7«÷2ïhF«J4N]t+Y] šãÅ ;œ^wŒÔ£!Úä»á1óúñD+MUd’¦£©Ï^åŒbË}˜3Õ½ØõÏ™‘¶¦jj"\ÂK7Frg’Ôç`·§‘ç šä1ó< "‘F‰`I¨—ú"&ûh.ôü(‡Ó–^Ô´tðxtm‰NU|U+M¹GކV¼9ÅL|£­!·y•R[BêzÒuyJxöÖ‡ÝÂ8;†ñkØwôå-®oqM9¦†‡dþ¤ð Túœn~´˜Ì'ÓµQ›Ýé¡cG¥XLè¿Ù’!èJ_ŒÕ‡Ó¯ý5:eHukæï@\ò«q•ݼÞlÉÕ?~üþÕ›- ~zCYk²À@ÛjT¢TÕ,µ¥·R£ÀëÕ5^¡¤ñç·ºVm!Wkôµ* UIZ¡êBŒØ¦‰hóÛ¡{úð¶³¥@¨m˜âØÇeÕ`Ü TYm2u‹“¡k$Ö®¬PlÓvún%«JëàÊ@«ÜÍÔ ZãVpœ–Kl,³†JôF­PR—e…ðçÉØg]Yc4FWX/0Ú¨N£#ÏX×\£÷Š¢• #ʆuh±Bu¼9úh)ªÑïQ E[ Œ¾ÉDƒqk$4zæö­nq*p"ñfˆ•˜é ëV5%N—lÕ œÃnà?´K¶•Ò]ƒõ'E(šŒØ—qÁèv(Àk(”Tt·è« ðb4i~µè­ÒôÆC¼‘9Fãx𠥂‹‡kɶ … Ñtõ œ†`Ch²t¿;“®.öU¹Æ.hY£ôFܨfƒm^PL,€„vW^È:/úV ¿Qè2UÌâJF18/:É ßbŒšf‹·€ð­êú°üÁ8Fõ[®À\B›Þ}ü¸…ÎÛ ’¹¢½Å¸m× > ÉU‘Áw£D@f´ÃÀ9€oÕLÕØ¯Šá“ ;¡UÖ´R¥n*Õâ (iÛHüÓj°eÖá«B³µRŽÙ ¥^£5*.”:ç+… Áª¡×(Ilçôšy‹Û¦@Æpw- ´ת†Qãh îìœ>èé 7¼z:€s‡2T¨ÔÍZ ¦…̱[e©KŠu´¬@”é :uEQÅÑWÊE#*6[¥Tf/Eñãƒ\­ŠmÝå9^ASŒÓ>t«ªGbƒB懮¡mè'ex50-³S±Æžmô@… Xú¨¡_Ðk Æ<Ö ‚™|z]†‘kTáÆ|!5Úb©µD_[ª¦^cDp.nhƒ A‹{….æ‹Íø¥09ÁÑC{:5Cléœ.,eÓ¨|&¬—K©Kðz°þ(•È$*Ñ;êœÊ*®2zÚgª ÷ÕúADE¥O®¥(»Ï}qÕïéD ®J)LòÁÜ«Žš²õäkÁQ£6.Dƒ#Ðx3JÅŠÑÖJÃÆ[µLÜHüѲÂíÖZÖ¨ýS«b»¼ÁÄ×ÐU)+5û„Vͽ…ZÕú÷Ž6ø½2ùÃq=Qw…¦h§mL7ÿŽjæß;s‰îdªÄä·‘f½à §5`7QTL:ì+öQ¦Déà¸nšžÃ+“PWd*CéR4Àwzƒñô¡ z³mŽgx¿ #›ñ}¡¦ ´ªPöе¼Ä]MGâå@ßY2´áµÄ'B>5á¨õAßJ¼[~ïæˆ‹ê 6¹Ô³ò ®E´±†›~V¡1óµëgƒQÕ˜® ¼™éÙÙ`_Þ¢¼ÖB«ŠÍï´¾U&Qs£• ßç¦aûùPŒÜHx?ªCÛ¦ckÔ­jo( ¢ðWJÐÎx—^c]y­…»ŠðZŽËÍFáFVfi“¿¾Îv%±Æßàn†´Vh‡ÝÒ <¨U‹ùu·ss&·(:P·Åuong}ãÛ†n5töE·ð jò H‡`†Ù^ê0U‚5ê™àCH+p{Màè'ÈŽÉÏø©:»c>ì• |áý€>pû(<[cëVã`íïËN ãé«_ÕV_½;ÔÖŸ·{¸ðf‹WªûôÏ “™Ä„‰œl+µã~q²!.Ÿj’¯Sã+ Ò4 ~^|ìi~9™R­ÑfÐãð¦ {¢‰8Í£œ!“)0ñ¢šÌ|—0/Èó Ì|ê‚‘–ñôh¾RðÏ3Éî *÷Ž?q,ƒÉóÃ]s/jÚ´ðü¡5hnç7YpJZôÓEÙÇN÷_é˜M@_nþôvÐg÷Ýó±sv" Y¨ã’íÊa(«¶¯hjÖ*ÄÎ ÈéÚèUC©2Ê–»‹öpaÎqKŽ€àО]q¯þÌ·<¨Á±í½‚Ô¹Ûp¬5¸¢}£¬¤Ò|‘…"n©‰ÂY–YsY¶uÍ–5(ýâ^îÙï¸V[›GØ(â/Wùmox².–ý¸—£ÿ3XàlÔÇ0öXÄ$II4Q‡;gYŽäó‘Mî$tƒs]q3^m£ ‡ cEïö"²ÏéÆ !qÎA%¤4ÍR? =ÂS_d©—E‘ÈHÌ…Ë¢½>l0Û{ŒSK›íW=¿ë«(ðëξ(ÇÝèr20;cŽ8fhŽ%qîYç3ð cœœ#F„‰'Ã=j»%“|E‹0ÎH#o}Y3Û¾‰J±…$‚2`Ú,"ŒƒE¤IÂ÷rßÍhÀ"ÎIšðè.+²y¤±A+|ˆÆç°˜„†éñéZÛÓ…’Xç’ùDzµ¥5ï /•þ»Ñ8+[{LCÛf–§§´Ùgqº€kÖ;•me—SBe!ÜïìuÛIgxŽ“ûf.™=@ƒ»3=⥘ÉRB;.• +³®éZ:¬b8ÎÍ·QUiv­"T“Jã´ý™ªT¦lC¾£˜ø×ÃÌÑÉBÀP¥OäõWfr£`Ç´eŽ=óOËûÔ!b4.ÚìsfrðRïj7·…¡¯Žûñ‹¢`Nq>ý¨OŸ­€žšàì“&õbKš§ÿ9'6Øù«']çöÛæÓ¿ü‹½+kŽÜFÒïúõ8vDUã>ôÖÛ^ï:¢g¢Ç½vÌÁD1&­g0U<Ìç¹.`ÀQbH‘N‰L148åL¦ÈrDUš `­H iݱ Û¹[ý}nc}d‡?ŸkAuðŒWX2šÖˆ®kí„MqÑz›"²þ_Öð‚$ìún±Ý¬½»~»âÆÞ'›V¡,ÔúêàQQ­Òö—râPµÐMAg8WÒéÀ.:mƒšÎペáÑZoˆÌ¼óˆª¤ Bm4«J¡r>ø¯Ï‹$€äTÄR±CŸp— CV¾­ýȵ?…ÛöÙYWÑIì+: ¾|ÖÇÅ£ ‚މÑçP0ÝTa¢`*°E˜Ä ‚Q$åÀ”„|±wÇî‚uÑçì&?—ã[ Ø2DÇäq+±â ±È:ﯗ l+RJMaòdâI¡1Ì íó½ù£=…RGV™Zƒísi^ÿ^¬oŠÖQ¼r«¯IwA{Å/N”ß}ÉÓFýØìПó Z§‘­[áµÃ“5p€è»±Uþ ¼ôçzPwCÌü;ì’Ë;@΀Ì|oô÷fçþŸ}¿Ðß/ܯEöýw'(OS_Y@Ñeý¦Í Dô§8¡IˆØÇúâ‘Wû›f’±µI¤ c`-9¸´X‹0ÔŽkpÂ0æcR %rþžR?>&…Ò+Ú–^­sB¦£g„º¼Q¾£(Æä(Pã*£§¨†‹~a¹õÇ}–÷¦ð=žY9ƒª©ÝyvsUždWEzç` &Fô1òsqHÌ`ü˜è°Üî¹(CsÁSOóôÒB ÌÐBH‰Hjð<-V7M³«ލ „9 É”b8E˜$ (”bd´±€J"Ê£áú7ŸS>ÏXŽgXœƒôxÜà5Ša_1ú‡{}3Ê zŒàÝr-|^ÿ–m7‰RndOW©ßÕ'\ —Y$@×ó¦?Â4˜ZŸÌ¥¾Ð„ ñhDÕ9¬²2ê„wÅ1º†AbÍOc:cM¢ŒPX3Æ5Ô4r+¬)»®EqD±êU´ïk‹« ÍÏV»+Šº±¾Iåuš=´%×ËûÖvìØ®ï—‚vv`ÞiÌ*’^"B'`‚èØM·4*˜¥˜Ç¦ñD SÀRw«I0S)‡Æ¤Œ¦ÐÑÇ•"¨³Ì}†r÷ÁY2ê´(_¤ßíuOŒ¦Å >åTy7dX~Ác*ŠÏ®¼ŒŸ¡½Á¸:@ò­.?áÄè’AWòÃHt¾KCŸ<¢ˆv]›îÈc4ˆ*J!˜;¸6^oa!óqõO„á4µŽJsç„àœ#,R\’©ÒË‹µÝO=¬¼SR¸Òÿ°¸²»ýÔY\Ù}€º9D˜þð¶;§š®ÔÚ,%Ÿuᤵ)e>´H¯ciʈH?Ï€{ÓBŒã,I®="}–QÇr£!÷3äRGnÐô1ä8~÷ª{n7Ü-UfMÖ0S¬"_~º¼ ‹û ¤d–>¢~³ìÆ|?Êœ:Ò Æv¥› ç´™Säú ¼^s"Ær4x¢P Ôè>âlR€¨e9¶©)R>à#’X®,H‚ÌàW‹ÞØŸ  óly×X¶tF€Á ƒÅȇ@9ó¸ë¨B²Ej ÍgMïÛ‡r#DüI”&¡Qr[Ÿ´{·{(º`ø¢×4˜c,È,Å€LcÖÛÁ± pÚÊ™Î#6) J@mIjN,µo½A)¦ Ñ@„wúÚ‚ó캺wsohÁoò…n€5៦,®ð.ÕŸûÖŸÁ‡« ²ÓüÓ #ˆžïéã!5‘­Ö¿Ä@Þ¡„¼×4|ËÈÌÜñëw©`cé  f_Ð)R4h‰‚6QŒXnS,´1î?2%‰f‰H…•ƨ ½è ezºÜhµ´mîS‡gïûX~®3¶\ýßrËP×äf—‘ò·w\ë0ï‹1y3V!ˉz:ðŠ.Ê Ë-F¡}l5óPÛGª c"B„ݳ’pÖåÕ³› FðQ@JŸ,pŠÙˆ˜ì½·,æè“àðA`‰M8fD¥iŒŠ¤85šI½KR„5ÃÜ¢…‚À¸ó9*rÊË·çÇ-þïÅÿ'°Wô2Î ‰,Gp}èrœ˜%½¬õ%ÇxRN†%ø "ø!Óú#XO´{Iâ¨$üÇ»“‰ˆ)ȇ%p($m©âëäχÂÒs$…ÖLQµ©FP‹D(µä Ce\²ˆÄÎg´ ÿîËÀŒÃYƒÜ,£ìÖ¬‰Ç€³umqSô¹fjÔçöm=1ŽéKÎíÉqö–jÿkjÙ–à•Ù-óªâG%MVû¡Ý¸]XHø±²rÐ}ùÜý¼.&Pí¸êÈáE8íHXꃻ$¸Õpû#sº¹Rå£&ŸÝ›¿åÄ賫nD”wQ:e·i°Ä±(š8ALG[ñ׋]iùh01}#ÅÔ#©vWf‰¶P„)6B;ÙY³ä¿¾»ç¸þfhïh$­ºpHy]ÄÎ;“*â]ìz‘øçýfaÖ…†'›|÷Á‘øü>+#ú¼ µ ã>óþ¸ÑPIú9ª*Ñ`ðO·˜O”´{Z.»Öަcƒ"Ѝfð ¥HÈÑ·¨Z„(ž4(Â`ˆh-K0œ Ž X í.S†`BS€!ÕÁŽG…òÁ}?PW ;Ò”‡õ‹,ü,i†¥•Ûyeèî° ·A=*m ¶ç#óœ ±—Û 4Íoó³wçתV8–-Ý W¾ð‘¸P´ H¦7PW­ÙŒÓÞÕ/šc‹çR…Ý6fÚ8‹@:Lñoð‚ç(3y’•uâÌ ™(­öâ‚SнUý¦Á GäÄ(“<·mÂh7¾Gb¨cE TX›r ¤"†:¦¢´‡S’hB„Ķ}Ö:”]Ýwâù¸ò5XåoŸs•Îåe‰QéÌo£®©‚›À¨9õEl¨n-\é³F·ùå§þ|ßoЛgôÆx7ÇkùïO_¢_Ë»uÏË]ÓC–|qÿùñ°ÖÁŸÿk—ËM€3iÅ$qéþ}yùñ°ßø9ökþk³YZµŽTÜï­—uÓ¯úÑ µïûl_W¦®øºß:¦)¿_%›e¿Üg3­$Ó6¿ „Sr "}˜‹öTð€t}[§Á„"8té=•1uâÛh¿Ã– W&{"¡I°£ ¨pϦL$©„É” MRlj¤;|Jlp¡…õ̼ÂíŒôëŽö—Ñ®Ÿì½ö¾5ïËü2 -oKÅ-P òŽâCØÓ—KÒ…%‡}§Átú¼‚0Š€—cAùhp]î]‹°x€Q”¤„2”Qe­°$ÊÀ$ÁP" SASSÅy¬o`×›ÝþB2Ÿí'ig c>Ý‹Gt…ß:›[ _¹êfU&4Ê¿–IZ¥A3¯ú-uî[U¡»CíÝl›G”YΛZUÕªy÷aå}«5z•Ê)‰Çf[7hézòýÒOæ4PÜ™ê½öå ØÓžcwv%T\iò}´Â¯¬X¢ùíÁÜýòMsÀ|Ä6àDú½­šÌ³Ì̽Ž&™5%d»y¡šçÞJ±„dvŸçxoF5ÛÅûg“yw¸è4V³Hïó `Èömg¾ÊÎ Uk»×jŠº"Âêû¡3pWûYv›TÉüD'“£QfÙ6OšSirŸÏXFK螘úüâœA ‰€ A¤ŠKʼnKN±` Ç•ÎV…WÎÈ9H²Ïp'[õ‡ùfcyÈc£\¶¾ŒØÙ—¡›3:EL<²ß{> w}œ;ÝçHŠA…drB$!p¼mâ~½YwD[4E©F‚Д ®˜–Æ1ª­å>Ù GÞ>š Úô9B™˜Oé¨÷5\ʽB%”/FDgøDÅ_1š±|nÝ@ç]á/¨ð‹}Ý8aV`”'xÕvÞÐz7]¸ Øèôž6Ó‰è¼0|â½Ì¸Ë™nK“®ð®Ö&k%1Äj´  q—XC¨”lxŠZéN#pôÂj¹¿¶«†Ku¿òs0Ÿî?mŠ@ùíÝýÏýÿ¸êvq4ÍyûŸ‹óõ'ÖÌýé0òE\ï.¶¤ð Ý}¸Ý4há]o‹Èõ•p¾˜ÞîÃßõíÉ·:t¹àm F‘‡lxy=:vxת<²ßfK]턼«ý»-&rÀV@Œ=P_@G‹qÅk5~±Û )i9ã`œMŒ»WQŠc•LŒÂ0嘵ñ%îuëÈ„4´Ç÷AŒ«²áçÊUÏR| z_„6ÎÃ1’!¾{ëCE0ÀÍCüÕ}–âü=µüÜ·²»¹*’qÀ“˜Y—môÌGZüϧÁ¹@dbP<ÚŽ±Ój½/ÑQ–‰c¡FZK7X!Ó(&!H¨!îÂJZ:£ó°M¼ý&®V8P ¨Î»È4mçe‡y¢ô]›ôãeëcúñjÀcºqw<=áù–<ïÕëÍP§—8ÜúUð’HŸÅ.[ªû½Ýí£™Vìþͯ³å"«ó×BGW¤hþø§í³½Z>ft?ɹZצþ†n]| 'QY-ò¼yѥɻv?ÒxuZ„ô°½v±xe¯F{áPB !DÆó§eVH6>ÊD1ø]ÂD °:aãd/™Xàn§PY”hIU%•KAžh™ƒîëeCÅ/#a“¾)®Åõ²w­Ùr¥8íƒd¸Mw uu÷o¶ ìþ®Ï4||$¢äTL„öùÛmk„gŒ9ë(B!ƒLøHë R®`‚S¦œ (Љ ª­‹nn(ìB-wϞ訑\k•¿Dï‡å?ý8m‰ù•<çEè›aëa$I¾ZÖiu0‹M¿$âuö JLÇ÷U»ßü[VdÊqˆâ—ÿQ™ºËÑÉ»ÔL,xœåôFxŠˆ›ìÞ+wØ…s]ƒñM=Ö‰{Ù ‘÷ ÓÆB'9y{-wW²Ñlùö°0¥.?2bŒ™[S…J™ ÌÂÂHCÑÀr(¨ne•¿ðVÏ"âE²ñ³ç—€òqç[{e}òßóW #TÿÝ0ÊFò[6΃òÍ\™siù9ë`¾¾þwºØÚßÔr‰fæCyiÚ}È;4ÃE¨¨GãLÂ.û^Óp²±o6Ù@ßÏw«ÏwÇê¾®U¶»Þì¿î;Üð׫º¿ÍúïæØÿHw5_ªøÑ ]7y¨þër3ôYËÞÏm›*Û§nVñÐßµÀæø¼y§æ™O Ò¾½‰Ÿp±‰È=¨2F=…S),ëÑ9!‚ó™ˆOÛqšä“Ë%Ç¥LÊÝ•Šè$Q6U>¬?MÌÝå@›h*EJxµÈÔÞKó÷ßß1ôŽyïéúsN‘£ÛûÛÞ­vǤ¤#Rz8"ÐÆ´F~3±ÌÓ4c˜æZ !£±6U€”:²ï F¾Qh[­¥»&¹cš*dB ±Nª˜úЋlrv g?Ç>ªæj<Þ2£í—´m{$íÓ}Ökñ\òíÊâZ9R}Î8Ù')ví£|¡ÞþM(nO®ð|3ÏRâÄÚÓ·`Ôõð¯:N׌Y»ìYÊhïþýamo4“Jm"ßH1²'ÔÍE 'yXæ]ú-e©bÖȈ±‹Î¸¸6Nˆ«â6}Ë3×–š‹L›Í·˜.Œ5+Õ’}y« Ý«¡ËnHÏ‹æN‚ú• Gò>°‚Äð­o8ɨ®³£ûÉõh×%1§f%"ˆ È!šw†ÓÑþ!3n®ÅÌÈ­!d†&P+¬¹÷C$©‘ „Ci½ï–Ž–Ë(hùuJ-ݸkS' ×7ðYd ,åîZmm'–á]›Í6bØú†%Ùœl"ç­]mîìüÿë›Xu1Êå@j¼*^+O^©êoà5v€®]€¿]üêÖÐmsk~°™ÛÐv­ACü,á^ó¥y9@Ç_O:ø£: u —¿‚#ºªÛGêrœ/nôsù_LÙ¹ò?Vøû“Ò×6,øüÃÇ/áß_Ôn÷›i•äwßîãr¯È;mþÓÞ•5¹m#áwý >®+á ‚¼å‡Äq¼®JìYϦÊyšApÄJT‘Ô\¿~)ñ€äçNöMj€$Hth4ú(““"ÏĽÏéœ'ÅÕOBKû¸Ë¿×EÍÇäÞà¿ë:[Êí4[¬òöLñ½?N?|=}‹Öe²ºˆÖŠ<Þ¯x=ôDMWªÆ@<®ê7ªš­/r;oj‰@Â Ô ÔX&&[E.#³×Ô‚Ñ!Bb†‘$¦"2UU³}ŠÒ0Á4Ű‚xé¨ÿ@嬀oÚê•.Þ–»šÂ<ƒéYÕ?¬Èv¹p;¶¥FfÌs ÉÙA®ùv_Ø2Fã8 ÏB– Â.7bBÀF ‰3ûQ쥣Œ/Ð’ö ÇòOïCSj9¿¼Ë+“CcR™°ÿ{V+e~V}6K1ü±ZÐÛwŒgA¸Óvv×GN_T†"Ø? A£ƒDg𛢠pÆý?̲)Qc+>E‰¨,êÔÍó0¬…Ê3œx ¢°]'L¦á%¬^@ÿ/R÷.ÜÏ‹ß$™@¼äùÚŠ4½Þ8ÿý…ªš\4mQY[v»€vêRùKʃ•—Ý £2³Ñ¨tÞàêmù*[õ*@Ä ò<6)Wûš¯ßR' EÌVòðØ|Ÿ^J…ô¼@›ñbÎ$¢@¡Aì±P¶áaçU r·%ˆêþqÍV® ¡t‹,··žE2Kâuåb÷?F<þS¯è÷‹¦¦«ú‚¦q` 1gÄhŒiç‹"YçrGcÿWŠzGcU¯bíýç"•BÙÖÁÌÅ®v§ö»ß „KKÚ{‹†öj°ËÈÔ;#U®–ª­áL7ö¶H'%Ì©ŠçÍê›ãß•«.q|ªâ%ŽOr~£vís~3 zÐv†r<Ü<ùŒv·ÝÐÝí Жòà =4«hJè©ÔQ{Ä;b:]¹ÍñÀ§öKLúABÒ!Ç2ð=„~H%­hƒ*Ëb!]ã¾Z­+9‡'t2Ε%„4Ý’B4]aÖbÉÏsi.óÎÅm–çܽ^çåZ…àb†fjÀ®Êv¥—=îíœé{+On—t|j‡®3ç7õéý‡1b}ùús¦d}$rºá}QÁ­`õ°õ8ý}|;k*§o|m! qQeµ‹í7Ut±(- _4><ƒy][žŸÊ¦Ñ|Ë,}•?-ÜÝrï’/ËÞò[© ¥–Qò²>ËÏWù™E)Û)Y_¸Ø†‰:¢Kq¨¥é’ϳÆÌ?~ɦµX,LÖ5[«Z"Æã7¬n¡Ë".l¬Ð´4© 2ó@jé¢ËÞ/¿%ã§Ý{y} W?ž•ÃÀ¾¼©³¢é*ÿj4^•]­'$!“•e©”×U^Éû–¥¥”õÍJŽ?ø9Ïòvû/9iã¥!ÐpÀЭjS·fp¿äB©o;´‘äâl•]ÇëtG{VìhÈy²KýÙ­5åY=4î|W™Ò ‰…åuƒàËK^íl¶ ‹nºLí—íÕÝVç®,Kƒ«heçõž)¸k Å,Š…át“³=íiMv´f× ¾45hYžcË7Z+‹|ÜOõäeÆ-‰KaA.òaªje¾ÚMªÖ“õÊ]u–fBëíuÕ±Þ­×M¼á@é±k–F·½ íè`o»nV¥QË|Em °ß÷^†Ù±Žx ^÷œ[ ¥éž)U÷ì2“Wê˜N6¹5´ŠªŠù˜hPý*Ç•˜Ë¯ŽU¯£æOçu5¤iÅy»Qÿ,6ÿøtüñó—ß?Øÿܳªþã:—¨ãV%uªŽÍÛX²t…ˆz°©ñI€Ñ ÇF³ß¿ñBE¥"HC0ðbI#"c/‰¥ðåæä¯7SãŸå¬ð²»{nçËåyÞù–šfÿÆŠwº^©^í½Zÿ?bPÖam×7*ê¹,ߪ¼™¹ºc×u5ÀìÖ¸Á=»ë1íçyÿ9Ê´GÀó+e;T™¨”5ÀfÓƒ=o"qêlj‡9f°É÷T´A%1‡‡ÃÎ[ª\Pq]”õ‚¯f7«&¢9[V*Ì|s~çhÓGÖö¶/gòÐÆ¿}:â¤ò×÷+öhë㑞‚2J¡u`½@.; ËŒ¾Ó’¨<Ìb-³ú(96­wÎæÐí~³:ÒerŒCªö$mû†ÔvÚ?›Ì|Ùòüøó§ÓÝù `2<|Å”v¼2tg·}_ ´EÄÃN†“2nêÂàê4…9˜"+²q‚ª¨lvið4bÈÒãŒÆ!RùôHʹGÛ ~!7ðvί.^"Óm½§7j85â—ƒxûÂ+w¸íw%ùKÌfÕ»?àýíñHË>e®– "­´7e2 ê—î“®ÓòèÚÞÁü¶Á׿Ù=ª¹²G2ÏÞ’VâÈzµ¦:CÇu+? A?áþ(9„¦!N’0ê8Çëîîvl•s<†°Òñ4Шj0$æøG~`ÃJNâ@xAÌ#J8¡H (ñd„>Ç¡ª Ø8®mx­¬3žÿ‹—Iž-/Ne]µ|kaÉ¿ ^7 z®7@70ytèßÞýóä?p-š†OÏ3AB9öx»5A¬®æ™˜oöž˜«XÖÌý2«’bÁ³å=k®éR¶wRuêºçé²ÿ¿»tÞ¬¼=‚‘Ùhl=ü(ò|€uï¿NŸ|0žlpd(¶ YD:i·šînûÉ,Žn!¡ƒU:ß)Žnë$SÅ$˜Î¿juõ€²(ôSæ³@?B ¢‚'ãH°ÇI¥°Sh÷’*t„s~f2i?úéés©´…÷<;zùY*‚¬'å†ÃJsþ;ÃûÆvƒ ‹%uÛÿëe Íe ËWv DÝn7,|€Ö¢¬Ž¿([Õw½=†B9ÀFQÐÁÕÛݾ†eSæc P\T1v2%+ß­ÅðÆÂ<í¦ëÛÂ+¸0ª|ã%#‘ÇCß—q¸—&©ª‰%¨Çq‚gîÚ³úy_¡eÔfEŒ½¾»|žfìÇÝ“lPÏœ_Љïwv÷œàî=ŠÝw¤ªúnžðõ/ÇЀÈVÒ•ËkÔ9À2e¶sÁ]ίvB©¸†6|B£­ï\J½1Zvo…(t< ۄУÛL*¨s/ûÎ-JRرɀ…qBp˜r&yÊeB9ó¹dœ{, É&þÿúÐ>²rõj˜^”0×35ßïôŒ+~ :,ž­zÜò¢GÔ‘=BµÊ³~">óŒnüMO÷ø©sø;’öͶ'a?Ÿþâxîûœ¯+ù£s*¥£Ô÷_Nþüôù£“-®¯–Î?.eyãTó¢¬j½XðòæÍÛVÊzì<ÐV棭ºº›ï`‘+Bü+…² V‘Û¬*ÒªÙb)L êù6C2Å N…'UZá§aì‘(f áAД‚&ã'^ÌÛxÅ…¾õKµ»‹Óë]:ºój©WÏlGi¿¸MkÐ^lëů/‘ÖÕúãç?œR¹–æÎÉ:Î3á].+àtXLÞl8{C™¼£Ö½Êí Öâ†M õŸÂ=&p;|@up£Ü øhÈV›L¤°UO)ãTÕ£eiH#ŸŠ8<ŒUýÚ(朒MšHmåÈ“¶ŽSÿïëåþƒXýI?ÂA‚ „Ø&ÉšÞfpfè­úBKˆæoÆKN¶r¡7¨Îz)ʬÎÇ—•\žëRÈV@ZÑsßP(‚t„ÂìF:‹È ( §˜Äõ<ߣ3,Ll¹b";h_JJ¹Ä2mŽÒGì­½Š²”DÒlýÊÂ±ÈÆÆØJ%k‡@X%áõ ý†¿g)í27Lª åŒ—Ó xÙ‹"õyYËíÊÂјFÄ }MÙ&¨ÇèXë?„1“„(‘‡DøJcex DGœÊ˜0Ürt/fj£-š˜îàÀölëÌ_ þ¢z«…\ÖÇ¿Á®~ÍÏeuüÞáËÄyÿÃOƒ®z˜ßÃØ(×!  ­tžs7¨•8•±‡˜¤‚ùÔÃ’“Tb”JPJ°(Ã!£!FÆìn üm¹tôõ÷¡â#³äÝ@²3ØïB¥‡a ɼП•E¡Nç‘Ã0> l©,=8Šü0 (`#ãŒá$’<ð1&‰¨Œ@þ_Ú¦òz8æS;² ×Ìèv£—f·ƒHQì>uÙgùh6}¿èƒæ_açxÅË ¯ØixJK‚N4èìvF:æì€ ,˜ MÜjŸÈƒ­'H µ-þ,MC)KbPZe‹¿£HŸÉùQÂdë§ó±>‘»®™¤åß!ø0©t>é¨öàDK>+«+ÕÉŸì£öøsw˜SÍíÛˆ¼XöK切bQç#Z.ëqÇ<«ê± Wêõ‡ì‘TR[ß'ʼ.Äœ—=ª¼æêé=šŽ#êQÔ±¤úÚ=₯š˜ß.­ž§°€öˆKy¥ÒÞõh+^·®Ôq5À2ÏYÝ ÷Iú”B\Èþ·ªj> èQT‹þ|©2âÃ94¥Å¯~k’±wmrøßþ†·«²H”ú¦O¨d.Eð·£iWHøÎ`¡«±p /ÚùP?¦§ùWÍåòró|»jÀ– äé\æù„Ýã ÇÕ2A½Ý,ÕÜí¼Å$"æ3æDžRoŠ*t³ZÁÈhY:ÕžµxŒ/dÌãˆÐÈI)SŠÂÇ ISFcF­2ßU¬ªY¯ðúÐöQdè%ø µçîÄ òLcjwÕÈíáªå~gë‡q Úö8‡¸íîÚÓ]zõrk)>×w>ê¡ÞIc~~9ÆÞ²ZÀˆy~×H´©Ò¥@M… œ5+©Êí›®G-æÅyY¨JfM“ £†ÑÍòÒÞ®UM-Lv³£ŸUú:§æ‚Žod÷;ÈîUÉõUýBbú=uG¼m6%¨ì®&ö°úÄVö¾™GP8Äf¬ 9lÖÝÝíw¶¨ò˜‘€>ež³ÿ3`ægClibzypp-17.7.0/tests/data/openSUSE-11.1/suse/setup/descr/patterns000066400000000000000000000000741334444677500244150ustar00rootroot00000000000000dvd-11.1-46.1.x86_64.pat.gz non_oss-11.1-46.1.x86_64.pat.gz libzypp-17.7.0/tests/lib/000077500000000000000000000000001334444677500152305ustar00rootroot00000000000000libzypp-17.7.0/tests/lib/CMakeLists.txt000066400000000000000000000003231334444677500177660ustar00rootroot00000000000000 INCLUDE_DIRECTORIES( ${LIBZYPP_SOURCE_DIR}/vendor/mongoose ) ADD_LIBRARY(zypp_test_utils TestSetup.h WebServer.h WebServer.cc ) TARGET_LINK_LIBRARIES(zypp_test_utils mongoose zypp ${Boost_THREAD_LIBRARY}) libzypp-17.7.0/tests/lib/TestSetup.h000066400000000000000000000331311334444677500173420ustar00rootroot00000000000000#ifndef INCLUDE_TESTSETUP #define INCLUDE_TESTSETUP #include #ifndef INCLUDE_TESTSETUP_WITHOUT_BOOST #include using boost::unit_test::test_case; #endif #include "zypp/base/LogControl.h" #include "zypp/base/LogTools.h" #include "zypp/base/InputStream.h" #include "zypp/base/IOStream.h" #include "zypp/base/Flags.h" #include "zypp/ZYppFactory.h" #include "zypp/ZYpp.h" #include "zypp/TmpPath.h" #include "zypp/Glob.h" #include "zypp/PathInfo.h" #include "zypp/RepoManager.h" #include "zypp/Target.h" #include "zypp/ResPool.h" using std::cin; using std::cout; using std::cerr; using std::endl; using std::flush; using namespace zypp; #ifndef BOOST_CHECK_NE #define BOOST_CHECK_NE( L, R ) BOOST_CHECK( (L) != (R) ) #endif #define LABELED(V) #V << ":\t" << V inline std::string getXmlNodeVal( const std::string & line_r, const std::string & node_r ) { std::string::size_type pos = line_r.find( node_r + "=\"" ); if ( pos != std::string::npos ) { pos += node_r.size() + 2; std::string::size_type epos = line_r.find( "\"", pos ); return line_r.substr( pos, epos-pos ); } return std::string(); } enum TestSetupOptionBits { TSO_CLEANROOT = (1 << 0), // wipe rootdir in ctor TSO_REPO_DEFAULT_GPG = (1 << 1), // dont turn off gpgcheck in repos }; ZYPP_DECLARE_FLAGS_AND_OPERATORS( TestSetupOptions, TestSetupOptionBits ); /** Build a test environment below a temp. root directory. * If a \c rootdir_r was provided to the ctor, this directory * will be used and it will \b not be removed. * * \note The lifetime of this objects is the lifetime of the temp. root directory. * * \code * #include "TestSetup.h" * * BOOST_AUTO_TEST_CASE(WhatProvides) * { * // enabls loging fot the scope of this block: * // base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "/tmp/YLOG" ) ); * * TestSetup test( Arch_x86_64 ); * // test.loadTarget(); // initialize and load target * test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" ); * * // Here the pool is ready to be used. * * } * \endcode */ class TestSetup { public: typedef TestSetupOptions Options; public: TestSetup( const Arch & sysarch_r = Arch_empty, const Options & options_r = Options() ) { _ctor( Pathname(), sysarch_r, options_r ); } TestSetup( const Pathname & rootdir_r, const Arch & sysarch_r = Arch_empty, const Options & options_r = Options() ) { _ctor( rootdir_r, sysarch_r, options_r ); } TestSetup( const Pathname & rootdir_r, const Options & options_r ) { _ctor( rootdir_r, Arch_empty, options_r ); } ~TestSetup() { USR << (_tmprootdir.path() == _rootdir ? "DELETE" : "KEEP") << " TESTSETUP below " << _rootdir << endl; ZConfig::instance().setRepoManagerRoot( Pathname() ); } public: /** Whether directory \a path_r contains a solver testcase. */ static bool isTestcase( const Pathname & path_r ) { return filesystem::PathInfo( path_r / "solver-test.xml" ).isFile(); } /** Whether directory \a path_r contains a testsetup. */ static bool isTestSetup( const Pathname & path_r ) { return filesystem::PathInfo( path_r / "repos.d" ).isDir() && filesystem::PathInfo( path_r / "raw" ).isDir(); } public: const Pathname & root() const { return _rootdir; } Target & target() { if ( ! getZYpp()->getTarget() ) getZYpp()->initializeTarget( _rootdir ); return *getZYpp()->getTarget(); } RepoManager repomanager() { return RepoManager( RepoManagerOptions::makeTestSetup( _rootdir ) ); } ResPool pool() { return ResPool::instance(); } ResPoolProxy poolProxy() { return pool().proxy(); } sat::Pool satpool() { return sat::Pool::instance(); } Resolver & resolver() { return *getZYpp()->resolver(); } public: /** Load target repo. */ void loadTarget() { target().load(); } /** Fake @System repo from url. */ void loadTargetRepo( const Url & url_r ) { loadRepo( url_r, sat::Pool::systemRepoAlias() ); } /** Fake @System repo from Path. */ void loadTargetRepo( const Pathname & path_r ) { loadRepo( path_r, sat::Pool::systemRepoAlias() ); } /** Fake @System repo from helix repo. */ void loadTargetHelix( const Pathname & path_r ) { loadHelix( path_r, sat::Pool::systemRepoAlias() ); } public: /** Directly load repoinfo to pool. */ void loadRepo( RepoInfo nrepo ) { RepoManager rmanager( repomanager() ); if ( rmanager.hasRepo( nrepo ) ) nrepo.setAlias( RepoManager::makeStupidAlias( nrepo.url() ) ); rmanager.addRepository( nrepo ); rmanager.buildCache( nrepo ); rmanager.loadFromCache( nrepo ); } /** Directly load repo from url to pool. */ void loadRepo( const Url & url_r, const std::string & alias_r = std::string() ) { RepoInfo nrepo; nrepo.setAlias( alias_r.empty() ? url_r.getHost()+":"+Pathname::basename(url_r.getPathName()) : alias_r ); nrepo.addBaseUrl( url_r ); if ( ! _options.testFlag( TSO_REPO_DEFAULT_GPG ) ) nrepo.setGpgCheck( false ); loadRepo( nrepo ); } /** Directly load repo from metadata(dir) or solvfile(file) to pool. * An empty alias is guessed. */ void loadRepo( const Pathname & path_r, const std::string & alias_r = std::string() ) { if ( filesystem::PathInfo( path_r ).isDir() ) { loadRepo( path_r.asUrl(), alias_r ); return; } // .solv file is loaded directly using a faked RepoInfo RepoInfo nrepo; nrepo.setAlias( alias_r.empty() ? path_r.basename() : alias_r ); satpool().addRepoSolv( path_r, nrepo ); } /** Directly load repo from some location (url or absolute(!)path). * An empty alias is guessed. */ void loadRepo( const std::string & loc_r, const std::string & alias_r = std::string() ) { if ( *loc_r.c_str() == '/' ) { loadRepo( Pathname( loc_r ), alias_r ); } else { loadRepo( Url( loc_r ), alias_r ); } } /** Directly load repo from some location (url or absolute(!)path). * An empty alias is guessed. */ void loadRepo( const char * loc_r, const std::string & alias_r = std::string() ) { loadRepo( std::string( loc_r ? loc_r : "" ), alias_r ); } private: // repo data from solver-test.xml struct RepoD { DefaultIntegral priority; std::string alias; Url url; }; public: /** Directly load a helix repo from some testcase. * An empty alias is guessed. */ void loadHelix( const Pathname & path_r, const std::string & alias_r = std::string() ) { // .solv file is loaded directly using a faked RepoInfo RepoInfo nrepo; nrepo.setAlias( alias_r.empty() ? path_r.basename() : alias_r ); satpool().addRepoHelix( path_r, nrepo ); } // Load repos included in a solver testcase. void loadTestcaseRepos( const Pathname & path_r ) { filesystem::PathInfo pi( path_r / "solver-test.xml" ); if ( ! pi.isFile() ) { ERR << "No testcase in " << filesystem::PathInfo( path_r ) << endl; return; } // dumb parse InputStream infile( pi.path() ); Arch sysarch( Arch_empty ); Url guessedUrl; typedef std::map RepoI; RepoI repoi; for( iostr::EachLine in( infile ); in; in.next() ) { if ( str::hasPrefix( *in, "\t( getXmlNodeVal( *in, "priority" ) ); repod.url = guessedUrl; guessedUrl = Url(); } else if ( str::hasPrefix( *in, "\t- url " ) ) { std::string::size_type pos = in->find( ": " ); if ( pos != std::string::npos ) { guessedUrl = Url( in->substr( pos+2 ) ); } } else if ( str::hasPrefix( *in, "\tinitializeTarget( sysRoot ); getZYpp()->target()->load(); USR << satpool.systemRepo() << endl; } if ( 1 ) { RepoManager repoManager( sysRoot ); RepoInfoList repos = repoManager.knownRepositories(); for_( it, repos.begin(), repos.end() ) { RepoInfo & nrepo( *it ); if ( ! nrepo.enabled() ) continue; if ( ! repoManager.isCached( nrepo ) ) { USR << str::form( "*** omit uncached repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } USR << str::form( "*** load repo '%s'\t", nrepo.name().c_str() ) << flush; try { repoManager.loadFromCache( nrepo ); USR << satpool.reposFind( nrepo.alias() ) << endl; } catch ( const Exception & exp ) { USR << exp.asString() + "\n" + exp.historyAsString() << endl; USR << str::form( "*** omit broken repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } } } } } private: void _ctor( const Pathname & rootdir_r, const Arch & sysarch_r, const Options & options_r ) { _options = options_r; if ( rootdir_r.empty() ) _rootdir = _tmprootdir.path(); else { filesystem::assert_dir( (_rootdir = rootdir_r) ); if ( _options.testFlag( TSO_CLEANROOT ) ) filesystem::clean_dir( _rootdir ); } ZConfig::instance().setRepoManagerRoot( _rootdir ); if ( ! sysarch_r.empty() ) ZConfig::instance().setSystemArchitecture( sysarch_r ); USR << "CREATED TESTSETUP below " << _rootdir << endl; } private: filesystem::TmpDir _tmprootdir; Pathname _rootdir; Options _options; }; #endif //INCLUDE_TESTSETUP libzypp-17.7.0/tests/lib/WebServer.cc000066400000000000000000000133071334444677500174470ustar00rootroot00000000000000#include #include #include "boost/version.hpp" #if BOOST_VERSION >= 106800 #define BOOST_ERROR_CODE_HEADER_ONLY #endif #include "boost/bind.hpp" #include "boost/thread.hpp" #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/Exception.h" #include "zypp/ExternalProgram.h" #include "WebServer.h" #include "mongoose.h" using namespace zypp; using namespace std; #if ( BOOST_VERSION >= 105000 ) && ( BOOST_VERSION < 106800) // https://svn.boost.org/trac/boost/ticket/7085 namespace boost { namespace system { class fake_error_category : public error_category { virtual const char * name() const noexcept(true) { return "falke_name"; } virtual std::string message( int ev ) const { return "falke_message"; } }; const error_category & generic_category() { static fake_error_category _e; return _e; throw std::exception(/*"boost/ticket/7085 workaound sucks :("*/); } const error_category & system_category() { static fake_error_category _e; return _e; throw std::exception(/*"boost/ticket/7085 workaound sucks :("*/); } } } #endif static inline string hostname() { static char buf[256]; string result; if (!::gethostname(buf, 255)) result += string(buf); else return "localhost"; return result; } #define WEBRICK 0 class WebServer::Impl { public: Impl() {} virtual ~Impl() {} virtual string log() const { return string(); } virtual void start() {} virtual void stop() {} virtual void worker_thread() {} virtual int port() const { return 0; } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; class WebServerWebrickImpl : public WebServer::Impl { public: WebServerWebrickImpl(const Pathname &root, unsigned int port) : _docroot(root), _port(port), _stop(false), _stopped(true) { } ~WebServerWebrickImpl() { if ( ! _stopped ) stop(); } virtual int port() const { return _port; } virtual void worker_thread() { _log.clear(); stringstream strlog(_log); string webrick_code = str::form("require \"webrick\"; s = WEBrick::HTTPServer.new(:Port => %d, :DocumentRoot => \"%s\"); trap(\"INT\"){ s.shutdown }; trap(\"SIGKILL\") { s.shutdown }; s.start;", _port, _docroot.c_str()); const char* argv[] = { "/usr/bin/ruby", "-e", webrick_code.c_str(), NULL }; ExternalProgram prog(argv,ExternalProgram::Discard_Stderr, false, -1, true); string line; _stopped = false; while ( ! _stop ); MIL << "Thread end requested" << endl; //prog.close(); if ( prog.running() ) prog.kill(); MIL << "Thread about to finish" << endl; } virtual string log() const { return _log; } virtual void stop() { MIL << "Waiting for Webrick thread to finish" << endl; _stop = true; _thrd->join(); MIL << "Webrick thread finished" << endl; _thrd.reset(); _stopped = true; } virtual void start() { //_thrd.reset( new boost::thread( boost::bind(&WebServerWebrickImpl::worker_thread, this) ) ); } zypp::Pathname _docroot; unsigned int _port; zypp::shared_ptr _thrd; bool _stop; bool _stopped; std::string _log; }; class WebServerMongooseImpl : public WebServer::Impl { public: WebServerMongooseImpl(const Pathname &root, unsigned int port) : _ctx(0L), _docroot(root) , _port(port) , _stopped(true) { } ~WebServerMongooseImpl() { MIL << "Destroying web server" << endl; if ( ! _stopped ) stop(); } virtual void start() { if ( ! _stopped ) { MIL << "mongoose server already running, stopping." << endl; stop(); } MIL << "Starting shttpd (mongoose)" << endl; _log.clear(); _ctx = mg_start(); int ret = 0; ret = mg_set_option(_ctx, "ports", str::form("%d", _port).c_str()); if ( ret != 1 ) ZYPP_THROW(Exception(str::form("Failed to set port: %d", ret))); MIL << "Setting root directory to : '" << _docroot << "'" << endl; ret = mg_set_option(_ctx, "root", _docroot.c_str()); if ( ret != 1 ) ZYPP_THROW(Exception(str::form("Failed to set docroot: %d", ret))); _stopped = false; } virtual int port() const { return _port; } virtual string log() const { return _log; } virtual void stop() { MIL << "Stopping shttpd" << endl; mg_stop(_ctx); MIL << "shttpd finished" << endl; _ctx = 0; _stopped = true; } mg_context *_ctx; zypp::Pathname _docroot; unsigned int _port; bool _stopped; std::string _log; }; WebServer::WebServer(const Pathname &root, unsigned int port) #if WEBRICK : _pimpl(new WebServerWebrickImpl(root, port)) #else : _pimpl(new WebServerMongooseImpl(root, port)) #endif { } void WebServer::start() { _pimpl->start(); } std::string WebServer::log() const { return _pimpl->log(); } int WebServer::port() const { return _pimpl->port(); } Url WebServer::url() const { Url url; url.setHost("localhost"); url.setPort(str::numstring(port())); url.setScheme("http"); return url; } void WebServer::stop() { _pimpl->stop(); } WebServer::~WebServer() { } libzypp-17.7.0/tests/lib/WebServer.h000066400000000000000000000023231334444677500173050ustar00rootroot00000000000000 #ifndef ZYPP_TEST_WEBSERVER_H #define ZYPP_TEST_WEBSERVER_H #include "zypp/Url.h" #include "zypp/Pathname.h" #include "zypp/base/PtrTypes.h" /** * * Starts a webserver to simulate remote transfers in * testcases * \author Duncan Mac-Vicar P. * * \code * #include "WebServer.h" * * BOOST_AUTO_TEST_CASE(Foo) * { * * WebServer web((Pathname(TESTS_SRC_DIR) + "/datadir").c_str() ); * web.start(); * * MediaSetAccess media( Url("http://localhost:9099"), "/" ); * * // do something with the url * * * web.stop(); * * \endcode */ class WebServer { public: /** * creates a web server on \ref root and \port */ WebServer(const zypp::Pathname &root, unsigned int port=10001); ~WebServer(); /** * Starts the webserver worker thread */ void start(); /** * Stops the worker thread */ void stop(); /** * returns the port we are listening to */ int port() const; /** * returns the base url where the webserver is listening */ zypp::Url url() const; /** * shows the log of last run */ std::string log() const; class Impl; private: /** Pointer to implementation */ zypp::RWCOW_pointer _pimpl; }; #endif libzypp-17.7.0/tests/media/000077500000000000000000000000001334444677500155415ustar00rootroot00000000000000libzypp-17.7.0/tests/media/CMakeLists.txt000066400000000000000000000002301334444677500202740ustar00rootroot00000000000000ADD_TESTS(CredentialManager CredentialFileReader MediaProducts MetaLinkParser) #ADD_TESTS(media1 media2 media3 media4 file_exists throw_if_not_exists) libzypp-17.7.0/tests/media/CredentialFileReader_test.cc000066400000000000000000000014601334444677500231050ustar00rootroot00000000000000#include #include #include #include "zypp/Url.h" #include "zypp/PathInfo.h" #include "zypp/base/Easy.h" #include "zypp/media/MediaUserAuth.h" #include "zypp/media/CredentialFileReader.h" using namespace std; using namespace zypp; using namespace zypp::media; typedef std::set CredentialSet; struct CredCollector { bool collect(AuthData_Ptr & cred) { cout << "got: " << endl << *cred << endl; creds.insert(cred); return true; } CredentialSet creds; }; BOOST_AUTO_TEST_CASE(read_cred) { CredCollector collector; Pathname credfile = TESTS_SRC_DIR "/media/data/credentials.cat"; CredentialFileReader reader(credfile, bind( &CredCollector::collect, &collector, _1 )); BOOST_CHECK_EQUAL(collector.creds.size(), 3); } libzypp-17.7.0/tests/media/CredentialManager_test.cc000066400000000000000000000065161334444677500224640ustar00rootroot00000000000000#include #include #include "zypp/Url.h" #include "zypp/TmpPath.h" #include "zypp/media/CredentialFileReader.cc" #include "zypp/media/CredentialManager.h" #include "zypp/PathInfo.h" using std::cout; using std::endl; using namespace zypp; using namespace zypp::media; inline void testGetCreds( CredentialManager & cm_r, const std::string & url_r, const std::string & user_r = "", const std::string & pass_r = "" ) { Url url( url_r ); AuthData_Ptr cred = cm_r.getCred( url ); //cout << "FOR: " << url << endl; //cout << "GOT: " << cred << endl; if ( user_r.empty() && pass_r.empty() ) { BOOST_CHECK_EQUAL( cred, AuthData_Ptr() ); } else { BOOST_CHECK_EQUAL( cred->username(), user_r ); BOOST_CHECK_EQUAL( cred->password(), pass_r ); } } BOOST_AUTO_TEST_CASE(read_cred_for_url) { CredManagerOptions opts; opts.globalCredFilePath = TESTS_SRC_DIR "/media/data/credentials.cat"; opts.userCredFilePath = Pathname(); CredentialManager cm( opts ); BOOST_CHECK_EQUAL( cm.credsGlobalSize(), 3 ); testGetCreds( cm, "https://drink.it/repo/roots", "ginger", "ale" ); testGetCreds( cm, "ftp://weprovidesoft.fr/download/opensuse/110", "agda", "ichard" ); testGetCreds( cm, "ftp://magda@weprovidesoft.fr/download/opensuse/110", "magda", "richard" ); testGetCreds( cm, "ftp://agda@weprovidesoft.fr/download/opensuse/110", "agda", "ichard" ); testGetCreds( cm, "ftp://unknown@weprovidesoft.fr/download/opensuse/110" ); // NULL testGetCreds( cm, "http://url.ok/but/not/creds" ); // NULL } struct CredCollector { bool collect(AuthData_Ptr & cred) { //cout << "got: " << endl << *cred << endl; creds.insert(cred); return true; } CredentialManager::CredentialSet creds; }; BOOST_AUTO_TEST_CASE(save_creds) { filesystem::TmpDir tmp; CredManagerOptions opts; opts.globalCredFilePath = tmp / "fooha"; CredentialManager cm1(opts); AuthData cr1("benson","absolute"); cr1.setUrl(Url("http://joooha.com")); AuthData cr2("pat","vymetheny"); cr2.setUrl(Url("ftp://filesuck.org")); // should create a new file cm1.saveInGlobal(cr1); CredCollector collector; CredentialFileReader( opts.globalCredFilePath, bind( &CredCollector::collect, &collector, _1 ) ); BOOST_CHECK_EQUAL( collector.creds.size(), 1 ); collector.creds.clear(); cm1.saveInGlobal(cr2); CredentialFileReader( opts.globalCredFilePath, bind( &CredCollector::collect, &collector, _1 ) ); BOOST_CHECK_EQUAL(collector.creds.size(), 2 ); collector.creds.clear(); // save the same creds again cm1.saveInGlobal(cr2); CredentialFileReader( opts.globalCredFilePath, bind( &CredCollector::collect, &collector, _1 ) ); BOOST_CHECK_EQUAL(collector.creds.size(), 2 ); // todo check created file permissions } BOOST_AUTO_TEST_CASE(service_base_url) { filesystem::TmpDir tmp; CredManagerOptions opts; opts.globalCredFilePath = tmp / "fooha"; CredentialManager cm( opts ); AuthData cred( "benson","absolute" ); cred.setUrl( Url( "http://joooha.com/service/path" ) ); cm.addGlobalCred( cred ); testGetCreds( cm, "http://joooha.com/service/path/repo/repofoo", "benson", "absolute" ); testGetCreds( cm, "http://benson@joooha.com/service/path/repo/repofoo", "benson", "absolute" ); testGetCreds( cm, "http://nobody@joooha.com/service/path/repo/repofoo" ); // NULL } libzypp-17.7.0/tests/media/MediaProducts_test.cc000066400000000000000000000002401334444677500216460ustar00rootroot00000000000000#include #include #include BOOST_AUTO_TEST_CASE(compile) { // make sure header compiles } libzypp-17.7.0/tests/media/MetaLinkParser_test.cc000066400000000000000000000023161334444677500217720ustar00rootroot00000000000000#include #include #include #include "zypp/media/MetaLinkParser.h" using namespace std; using namespace zypp; using namespace zypp::media; BOOST_AUTO_TEST_CASE(parse_metalink) { Pathname meta3file = TESTS_SRC_DIR "/media/data/openSUSE-11.3-NET-i586.iso.metalink"; Pathname meta4file = TESTS_SRC_DIR "/media/data/openSUSE-11.3-NET-i586.iso.meta4"; MetaLinkParser mlp3; MetaLinkParser mlp4; mlp3.parse(meta3file); MediaBlockList bl3 = mlp3.getBlockList(); vector urls3 = mlp3.getUrls(); mlp4.parse(meta4file); MediaBlockList bl4 = mlp4.getBlockList(); vector urls4 = mlp4.getUrls(); BOOST_CHECK(bl3.asString() == bl4.asString()); BOOST_CHECK(urls3.size() == 94); BOOST_CHECK(urls4.size() == 94); BOOST_CHECK(urls3.begin()->asString() == "http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso"); BOOST_CHECK(urls4.begin()->asString() == "http://ftp4.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso"); BOOST_CHECK(bl3.getFilesize() == 120285184); BOOST_CHECK(bl4.getFilesize() == 120285184); BOOST_CHECK(bl3.numBlocks() == 459); BOOST_CHECK(bl4.numBlocks() == 459); } libzypp-17.7.0/tests/media/data/000077500000000000000000000000001334444677500164525ustar00rootroot00000000000000libzypp-17.7.0/tests/media/data/credentials.cat000066400000000000000000000006161334444677500214430ustar00rootroot00000000000000# no 1 [https://drink.it/repo/roots] username=ginger password=ale #no 2 [ftp://weprovidesoft.fr/download/opensuse/110] username=magda password=richard # no 3 - same urla s 2 but different user (lex less than magda) [ftp://weprovidesoft.fr/download/opensuse/110] username=agda password=ichard # fail [http://url.ok/but/not/creds] username= password=any # fail [badurl] username=foo password=bar libzypp-17.7.0/tests/media/data/credentials.d/000077500000000000000000000000001334444677500211715ustar00rootroot00000000000000libzypp-17.7.0/tests/media/data/credentials.d/cred1000066400000000000000000000000371334444677500221120ustar00rootroot00000000000000username=helene password=elena libzypp-17.7.0/tests/media/data/openSUSE-11.3-NET-i586.iso.meta4000066400000000000000000001211451334444677500233410ustar00rootroot00000000000000 MirrorBrain/2.13.2 http://download.opensuse.org/distribution/openSUSE-current/iso/openSUSE-11.3-NET-i586.iso.meta4 2010-10-13T09:39:21Z openSUSE http://download.opensuse.org 120285184 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBMNZQUqE7a6JyACsoRAlr2AJ9o5fkD0DZ2MpyWC0S9EI6c7BXuPQCd ElMAtuZlO5NgYvG2bQ8xys5iWss= =WmmH -----END PGP SIGNATURE----- a0dc5f5132b0a26218f533d837d4fc1a c7827b5a8e62d3971524ba0c438e9574e892103a 7db356f5e21547e423da0406b7ea36e3c6e4ee62975015294585593d3a2a88c8 c5bc4f75f550e44491273720086bf1692c526cbd bbe1177d325d1310868d34e2350666f9cb119e94 2a167f3a34a9a09577365b1015ca23b823f0a80d 48d2ba5258254dcd4e49140ac7857c9fdb38ab60 bde60d0206ac5a0198e898553b665f9d9c60babb 41437180a223068413028fd977ef4ea033bfbfce 81b7da73641a5e3391210bc9e3de1568a5208836 6f9c2895ec0a887fe2dabd521e40918244da0059 8bc4a733263a01658a7c58a53fb777b4c8b4ff28 ed21674a98ba5af37df44fe4ad0e140c82ac8d1e 3772fed4a8bacd4e20478375c9dc8784f9fef98f 62f0024c67ff6830a3355b9145f043c4d60b2f13 d9ac81f6753d14912ec643ad8e2982bd1e128c95 4f5369273b928b9aaee69736140b814ee9a228d7 d6b8bcaf68d07591774302417a3d2b4ee0948e60 c2a98d8a80ada0b7ecdf214ab6bd3331793cb120 d0725a3e8f0053cb76c1e4424cb2496092063836 50d34d802241b3b52937364a14d369f2644ea4f4 553ba2491229a1ccfd23d01e00df4d95e612d442 2943c0b02f824925e9b589bf3129f950c1e48e5d 5d4f21b818057eb23d9aa0e27e8fa5be4c1f3594 9630c21e84b85e27f9ee19e59ce1a633621a0b1b ca3c553ec4b1310c1526b684d14c85640329cd1e 55bbc2e9d0a627b7481639f4d909118f6b811fc3 7843b05f31d95adac6f781f0de8e8af868490a76 479d93353bceea8744c7f1b4eac97b277e29ba30 28db10a11cf7fc317510230237b76df0dd0dc35c 128a62f1599591f9d7db1ce53d551a00555af265 582ff34a81fe4b3da54defa2b890946f1fce1646 03855419b291564e13510d81083d79816179e4f0 0e5a6eb83c9f358f4bb1e092f9a3bcef95dd0a41 f3e6e901bd37e3ec8d405a96128cc85bff450a83 dee45f794ec0fb5fb5a20826ba2d8d191a567733 390c6d1eaf5a28f93d7e8237e3972b9e93fe5cca 20336a02716605b12e6fafd18855cbae411a09eb ef22857c452d0043adbc054dd4396c0838426ae2 574c3a9f656391757acb83fb5091dabeb78e2418 203e818753a68b0bea326ea1428972a92036d9d8 5b49222d21afb87a5de922e9c77ca255619d21ad fdd7b232c5ba5fa75c30f0e628e506725869df25 360bb3a824926cb73357b7c587390867e944b28c c0f194a68b2c1d8693a83ef162ad85f8c0bf93cd 25079830fe5d0c64d5c8f65c6beb61f2832995c8 fe5b97a5c807c66833a2f5c45a7c511299c8e7c5 64f287d9fc0c64c68c9b9f61711080b4072b11bc fbd01b40db0d0d73c4346bfa6942cd23666d08d8 e73a60b7a8efde3d70da2935d85c3ebd6b623651 414299b4a2da9b50700d2d7d7721139291acd2b7 e2c03eac8cbd4ef1a1fde5b60c32f26c6760a32b a44b4d98688b7dd787ee2c3029229ca3083b2633 635ab22c1507403e3ba9481b92c7637ebd58bb2e bddcde253a718b50ab3e2517cc33938ce54baab4 bed44cc3cacd658389c4807edead76e71329dea9 efe42d31f00ced3aea5a9aef9a3820ec20ba9e73 d1b1f83099c80c9219386b38063588a94385ef5a 670abebd7cd7a0a62d4aeba3dee78c7512d2ea8c f483d9fbe3d513be20aef6e8736c5755c9aea29e 46b4ce6520798c362a16ac3e293cbf94f979603a 8b5e93ad34582431b3efb89ec10e05ff4257c166 06e09067668ff5b9ebda474a71db44c9b8386eee 395843d5243a235c7803bba79eca803bb9c5c5a7 0a2cc9fe1a1a4591110f7235b1b9ca9eb4e59ec7 fe5ef70a92427bbded4cadcd74f648b7e33807c2 c743ddce2e930bcdf76db2f08f5a959f6f3cecd9 d5788b2dca4a6cb5d75cce8316db1e761c914da5 cf5c83859f55714544e42645db270d237b6d4499 497214fef565cfa04c2b8f96704be999b93df93f 2f4c7da4c7d25e6d8d63a995f5296c8295bc8d01 95550875564701777b6e6e02854865c991a121b6 c378b72cdc37c83d4f713e55915863babf949ba3 d67e326f31fcb79000e96b3032c1e16183e79d84 53b0067cc0e8eb9b856a11af29cf69ededfe4bfd ebf37f7028112f669d244d55ae0290c003cc9cff 56e6482f5e0162ee16ee77496e583c9a0d5b0b31 772fb29f60ecd14b3c06a317258e86b6802a1310 b43a919ce9eae4c3f1b18f5d3f61328a9f67d885 cd93972f4cab7128bfefe836ac5601b2cced8a42 fe20173622a73d64f586f9594551bd5fe56ef690 2f22b34a49fef60f54f8f59789a439bc5232e0ab cc1e04c724746e6058429c0610dafd639798bfab 95ba6eba3b22e6b473f7946c8c7aa66da6547ae7 2b7e254485c22686e0408ce76fa6b267aadf35ae e35351bcda5aa019839b328106a60e24db7c5de7 47864400bc861e6102bdde3900342ee5ac9dfe51 f7bfb5331e63b5de7826d0fe5abb0a4e9dffa9b4 14cf61a6d461a67f569e0f4b99ebd21ce5925566 8a250ac80584f8acaf8af9a4a8d3f9f014999a12 a5731b1360d3a387576903da16ed50f390f00864 7c9a3b9f00754bc4da997730e75ddedbcdde5117 d3879d057ea46050c6286f6653c2bf86fb8938c3 a03f375f255e325f6a603934e15769044ecb25db b8ac8d69c3bc16ad657ea2b4a7eace8ea6c60fd8 5c02fbca54bd8a035d59145d6d1be0be96f2197c d43671790be7f5c39af346c8fd00003c135491a2 2381abd10331dfea9f5817487cf74923b040f307 734168c76e9770dd3f86338570d3e27ce7223251 859bf6ee62f7fcb94f052c594d470a61be63f084 98b4178ddd01b7959b0a117ccff0688489b8841d 954de9ea519a33bb4d32ae89f7cae93821e26c02 f41f1496594933eb8fb6869bff916d330f1c9152 d523b3606c19e8a0b161008846dac2d30fd92e4c 3fdf132ad91dcd4f9b466f304d51067baf2ee976 3dbde53bdcd43b022ed4575c40fa65ecd67603d0 cf977d863575f6f74a228a40e357a70a69700189 8c1fe8d6c2bc09f548c2059409d53bdeb5fc7d3f cbfbcedeea1bfc1be031731f0c6de6b0897c84cc 0124bed97ba6c2970af5bff8ab82acb8affb4611 8cba87ed1e345d2312dd341ce7d1810305ccac41 6b6c38964701ba72e7838cea1d91c7ef91ec3f08 1f371667f596f11b40a46bcebd0ab6a90be2913d 708f8af393a828613c45eb5e408c0190b4c95622 d7682ba55ecd3abe1927b9e462fae1b4e9334800 459b073f48c2ba332fc39d3f47bd650a04c511ac bb5d3039b65b985b375ff77e048fa690eca45cf4 ec3168ae0982393770fee2b55cef963a8c503644 0ba5f37dcd6bd6103203fe230d71ffda56502a88 80c37d76da053147a5267d03ee94e89d93fcf074 db4dccc57e290094edb2c9cc9f134b2e3077d22f ea5981c1f1fb5c214ba0c9e82ec030c2a1bbf0a3 f92cf79330387d5b51b8efd6300179e1be15ae01 38e0eec3af20d607b15a9a21078373a338c1d4ba 9ee0001d0ee983caa4e1c469cdf77ed51a0ef9f2 c5a803fc6dd74028f63573e325d87c19001bea8d 11992d4f3a304d24962223cb14aeb9c67848e027 d7bb416faf5485896af7d349982a92cdf98e847d 632add982c1641009bafe85f691f6f21385cd34b 04bb6d36962f76334e71f90240d528e8a3ad459b 32ebc900994d00f4eda332631d687edf7982df0b a302bf465ac38da7429548b80b288c70fe7f9ed4 ed87a36bfe5abd2bb0b0a4efb5932bfa425f80a0 f8c448216f59f523bcf33d2d99dc83e8ec7f46e1 82f5ffb770451bfd840d816946d9b59884d41b02 bd8faa855ca9377f46161b9427027ed8400eff3a f680d78b7854ac0af443b879a880fe3c22cafbd5 5d357bb06899857d3e64468d79eef199882cc3d6 4be3cae2cd41742f8f33f80c41797a68b1510fb5 6d70253e7e22c6a30570d96b6cfb36772b33354f ede70be18a4db080c3d046c5fd9f0bc6b625a772 14c8f1675f97244b14f12d6b32419a19cf814dbc 0f9943a582d5d514e9deb1253d4806156ad37c17 c0086d20b74ae26693716ec7bae9b530237d786b 356fe043c133aab0a922153f9cef068d90bf3f89 0d2420bcd3eabc17c319e73cb1c043fa47f8ac92 7b9496187417464ac70e4fa7a63a710eea14202a fcf3ada8b083d0adffc0c5ecce437aaa483d4109 0b14dd454a228bf96d9a177fcc65234db93a740b a7d2ed2809de3e928913a6a3f8efcf1f06f1f3ab 9752d14b59c1b60ad957de4982d84e0f3a398bcc bdba58965077db889544e8bb086ddfa8d4394be2 93fa8444acd84d0a5580b553b9eec85a354aa4cb dcdb227911b0bcd0ed6074711eb9ad6f686aef46 6cd9e2121fee8d0c0982d9976fc8b5eec99bed7c e74ef9311f1a084f8d2625369cbd245872e7c7b5 d042115bc6a339f1bcd58d526c3617cc125311f3 fb68189e82b480de37bcb09a2e6ac699d7d81533 aacecb7a31699743342dce7e031818a809a6ef8a 431b9fe43c294a313042714f99e9a9ae59663992 fd84701b8a4453d227dffe54761824c4c690f1a4 a0d69bdc1b1d99b17e42fe9a0e48918344aa4e4e 3962f2a34b48853aa3885a25c5282640451b8935 66f1df2058e6b061623971b3c25f49a35a856f2e 06531afe357933551835fd816ce915c9737ae8fd 3642ad5a2bc42db69d495f0b4f506f5059761b94 7756a6cf4264d74e727fc84f377d4a7472f91469 a13af573eadb2998648ea050c65bcdc78e262ada 9ed650662bf9b8b236934799554d03b0b6ed64d4 404d94a3268699510b0dcddbc826bf724dca6658 85043d5ae0586b322f97310bc299aa9007101ee8 3c39c196c6ba4d90ba316ce3b451bffcc462a9dc dbf5c2fcd32b32023a1431960ca8eac207b3e8c7 b2efc9445d6af07aaa64eb736815c1574abfff32 9e7443a1d9daa8c5a8e1db98e68fd839b7dec99e 92317de0fc58deba956a7c4cf23cd87028362826 0e53cb81bda4774c3c5ce8898e2a85d56704fdb6 d4b76a8dae36403ffb6c9bb93a93115c4fd74f18 cfc7ff0056327d1eb3c401885e49ee514acb5ea4 3e47d6f3d4512b56f8a48e028417da53a8f50163 fdc51eda2dd4f784e086e05efd50756e0e2e93f1 62b0642dd3583e46bc4a4a4e946f9f41a85316c5 1d699a2de913e0512b3069a56c634952e206f725 faa1518829eb7b7bafef580bdc7a375ab67df6c9 79a2069008732e01fafdc6bfae5c0d4878191cf8 cfe4b5a6ac9633bb476be67f9ce7326519498f66 faaba329d20c0fbd04ced467c68b4b466bdf7674 22902be8a6d4dcd61f2d5643093c16d91591453b 2bf01ec12eec43da8c15e0495a27c8e2e7d17975 d1341a1129f63c66136d661677f34aca91eab3cf 057e65f31bf494c532d1299368b273abafcbe24f 1640f880ba910be403d511f39d7d610a2f5aed92 4bbff42ed3ba0e6fb23ffc3170e884c1752b7bb9 82ec7855cd32e721445c3ec0f2dfae9814faaaa4 ee6e7a68f2c5b3cb3ade33066182c3fbc49317e6 542684dc2cbc3f02ea57a7e21382ecbb0b977c5d 9ee8f8ba9a51f1a2ffdeaec56b9f790a8246545f cd0895b0a6f8c32ddf8e1774be61c2a448e113bc 4871e467373ed699071396b07774a1591d36a421 35b5604b108a59988aca58e6f4773b2f4cd5b88a 9c58cf38b6958c7e7400d19e8c98db2f5a43325d 00ee7a8491272475e6ece4cca82b7e9c29f740ba 6f7350658904cc01c8e9a7aab19a44c8c8f1ca4d 9b640920de57018780e3919b890d17ef09e8ed8c 17d551e8c57570bff19fd2fb8220bf101f3bc941 52e1f2ed6f21611b2efe4d7ef325aa24840470ad 863df77cbc0c93c5fc589c0e968ff7222cf2d42e bfc8699fb1f8ee70c74e8914cd76f29ccf5b814f a0ab0bccc949c52049273865495dd18b0fd11945 548a1690e5ffce54983a40f583f968235e480f45 4b88cc0e5d7bd519b6abe5f3ebc13b9c1b166506 5106ee73a301a0d38eabf0e71cb0fc9866bb8b69 032ce62bad50602863ae3f8409ae8b03a44fb017 c480c521a00374c0691de62fa415e6854ba3400d 3f63504eb9fc8fe250f7441699508c4c3704153e 8ea4edef9512aadc4c20dc54488c1569322cba72 69c3be28a635b360687e79a7fbc945bab87f7e19 072f4d5484893b8b995e19e31b192f414908ce46 e938a1c8e19fb02d8a59809005327ce91ea1453a d30fc4f7643cc522965ee3c496d3d7601e73fb08 1ee78d5f582629784ecb286c551fcf3b335e74a8 54fb2f5699241e407e272d0e79469216d98e6b91 e7038177e7399d30956ebe5db5f0b5b4946528ff 68f175645387cf47fc0eed8a973ac4dab2657908 0a2f4c4a6abf92231d2c7f9e1dd8011c908fa356 741f332adb152ccb781c732755b551dd7c1481f0 0cfdbfaa362a5c4d22a1fe7f31375bf57ac7a1ec 3102a4d3fe18594ffd62696ba07f8ea9321eb222 49abbc86515bfa01e86f62f32a44f5663b3b6f27 e27321dd4d10129f095a0ab8e748898885869ac7 a4de9b37ffd591118d31be1602d2f20ac434b1fa 1fa1da65287c26594d76b478e3f5ffb5e80d61c9 6a298213a3bd89bfec478b5f265284cba1f09b3b 79fbd7d3834ab562828062d21dd3788c04c892a0 910b55f1f231d98b29ff9c8dbfe51c188f7edcc7 0a242b36214a6f44d6c15c7021b649793e779313 d639b6a1243d8b0536bc0f4c29bf1abb74aa541f 97ea28452ee779b1d146f02756f632dbca917a8a 58ca63e6293b38ed450683c0e2d0d778f6ea2fec 35989c2ef34043069106d0790f483c88dbe5563a 110cd1527cdd1ac7283f8299a3b57a2b6edf48ef a2174fa136d4231799369916f9a07d7c8e02ec47 952eb637dbeb2e1366747cfa94cc70ee1e8ed493 3646a03568c6b81917fa35fb3733d31f96233f3c 7ff65f933bb17b5e413a892f81cb3f3c8ef6b9c1 06a00a18679a4c1524440c022ae4984fef35b937 f1a6a85df1c1ad73a4d86df3dfe040ad68cdf89a b2d0c85ebfac8204670291cfe1267a0bd2053ee1 bc7fda6813272bf14a66aa38490310ecd33db06c d518fe952e380e96676fa9d62d00ac328c332a5c fb2c624674936a90916a3d8385325ef92201d317 c67d2837b586016e4898c830463383860d265adf dd6d14ec3bba1d23c7234bb4af3e59462170d675 a771b7fa4312921ff1c2a19d82a90fa77c05f3e6 945d62fd50fa90858a0ef8062a45e719dbe6ee60 78ba1b8d5aa6964cb9ffc3632e41806a14427d58 e7dce40ce18becf249f9638c2ba294cd1805478a 2c7cad45471143608401188c8dcf155ba7a790a9 bdab487c1d4c977f5a6a0d1cac8f2d12679f6d86 d73e478a5e1b09047d8e3911948976f559c7e915 90a75eaffe4c4c870d3fa541a554a68d61678f67 7b040bfb1fea7283b028eb79341fb1f229f6054d 780282015861b75321929ec63433bad711b66d66 22085d54006694927e943f37bf856053f5ce58b0 634f46669410fde9a17d53ac19ee5a7d1d04b1a5 69dfd663f066f9674a12685116109098354d25f2 21fa816492c37c4927d5ea2a1cfc61ff5c2f847e 14cdeb8dd583856c9935be5a58e33187ccacbc66 71b0c9c229b934f78957235be17e9887405a37d5 8d744577eaa8d208f4b258197e01c65ed3b7e999 c4752ddef02d57f8409bb54053259c358f90e327 9f13ac8ed18542369833d5e4c9bad59be5f23db1 a869be8eb4e553fac5ac25e058d343dffbf601af 56f40091232d071f7a342efeb178aff27c70c29a 1a4f6184f9e69117990f5483bf05045ee7e17834 e7ad705497f2f07a91974729ed986e906861ff81 8140bcb9ce68579eb83ac751070d7a08057b3e3c c463b5925b9f27d7f077bdff813cde19d3c2bf09 06e20fe2ee579bdd1e2fdef738485afd6d999418 91c259e944216ec83ddb541fbf53bbbd518d927f 8340d1cade0cc8ae45e8136add447649cd470607 8241dbbf5ff5cc381d7d6448f2c1348abec45203 594b9ab10319109e782cfc0eaabd038a8e744518 a7ade46fac338fd08ae322f9575ab95768fd4569 0146e3deeba63989108d1bcfcf0231c05d8d7a2e 07d371120735553c7295a9466ee6fe81ff46fe51 a7c05b98e519af4a86bd20beb6b964c94d48d0af 9e894b914ab144217181dbca27f955206b3c37b4 2205dd2085dada143b64785b1fd86b0d3a765bab 086cadf056dd73a5209df85f0ad2d3ccf7d14f7b ae73594385fb7e5195c9c9dffc8b9dd5545a05a0 277ab18f0ff09f3a1a0a8d68715f7eb22eaba249 f6e148ba5488138825b8e2a8ba88f4cf7a24deef 76743b6a629f09b4cc06e7f871561ee87e518ebb 7367aff187fdf6e6d4a70f492e0cd907d3a4ff33 19ba943536dcb28b3e815c87f8ad9d910948a975 1db42e3489d6db0749401769978b04c05cf0f137 a3c1099e318a4915204318e5de0a4276afe0ef02 a7a87a47a61b0d93591c94589d39fd079a206ff3 a4eb1a071e724dca21ad02c912754edfaee1ab00 611664ce7faa6e14fb6a167758a53c52dac1084b 344dc7036a6e2d0ec784d3f60132046d021a24a4 02bf376576b2f7ae650e4d2769cb3caf1764a49f 35b2549570666e6c1cf7c3dbbf70e482c41d714f e5fbe9e59d967812a34621a9b104968b0c353df4 2b8f1ed1d05393b612a433195f3752f874f8308e 647719776245276d1948c44b37003d0adc8c53ca 25c8f2a87b48b1e60700764054ce4aa3e5d14c25 271744f02f7b00fae63626940cb06e19c75d590e cc6ed725952f3d39f570868692e86c0941de1c52 a081512a675ac3fc30bb21862feb2ab6e8094b55 d46a5d5044f6025a5188c3e6bdbb9f77ed98b1b1 891ed91b426b1c415d613128bc3227a350fadfec dea127f7c5ac058465f1d0264b27659798780498 a5a7f6e00c529d1272b071ecbf6bbedbbbebf89a ed61db99d5a7862a643f684e67770921c03400e1 b719a8c73ba5daee78c4b5f7de7d7c3055547f12 b6f33ac83b8a1db1db0246e15b6c1ac564db5a5b c084dc77d693f6d3b3f72f8196cd3583d60545ca a09e7af08be0e060d48a863d81eef2fc24456369 fd15cd7451b4df224b3076462cd3532726ed5700 36b5a41a18b7cfdcacbcb0def8957dbbbf443df8 1b810d454152f6e07bd161e02b40473bc0bd2efa eb4a3a814b45d248bf3526fa2bf162c72a7d84be 65c26fe1a5ca80972835cd3546c2e794deae62cd ddbbf176a6f2a6b0e856e50cc969bf157f4b8706 3712dda5fa2838d14b942e2dd43babd8dbd8fb71 2bb88a6732a8257da53fb795e4d2a1dabd44948c 322e7ced7dded5a26b775ed4dd425009c9cacf1a fe863b60a63f8b844796455dede6206d057b3f7f e023d908e76518afe0a73a9284691fc51d362673 9c4856b53ea1a6137fda6bbe6ba3f29355412c94 d733e415454ab0737f61ab6545a97aaa34a10981 b7aa3fe75fba78e3ef7a83657b0deb6cf563751a d8226fae4f14c31362aaa403f4d6a8b84b89dfc5 e8a1cfa1e616e1af2a63ab32845ff719ed98c192 b28f88b4dbe3017d2194b3614321b0e85b1a817e a4e6762a5454c1623ab580b1cea66e98d47a1207 dea8eb3fca200ec89e5ade0833a5954abdb3a38d 84f62cdaa7d95f934e355abf48af32f8b5aa6a92 9763c01fd40bd56ebad6adf07a4e00f670508b3a 35376a957ac89be433fa6a5af47bbb3a803b8439 9fbb9ef79f32e2b7e71cab55991ac6838f3cc727 d7a088da4afedcf3a6b2bf7b6c0405dee40dc0b1 c2a87610d343c57b3685843b722ea6839c2482c2 6698ac8c767847f828b3027930b3840c6c298da9 67f27e3c2aa7dab996b38f0b020e9e3a1ddc1a7a 5aa3383d759f101865c58ae95a7d28cb4bd90912 ea7bb4593fa94b3731ffcc0471f23e79487d90be 587d61a2389f0229988dfa3ba6356d34777f7ad7 96067e7f71d24311460e6faa73f43af14e1bd09c b4ad2b6d784fb0455e0e3ffaf77ec6a5d3835be4 3c4a0493d869fb12d84fc84efbdf99d721e32795 7ebfd1a18b889c0ead28671811c3bc912accee7b d279daafeba573f7ecff882f696733eeef1081e2 ca359bb82bf59c190ba4ec30e4f79e61cedf6216 213d1d15b0fdd65965916bae093710822c2f7434 20dff502ccf9b1dfae7f8c0b118382fa7c3198ac 4e0405347af59ede2c53c4c1a527ac46595829c5 127a4491a7c2310495b68127e9c6570b66600820 494ad84de129e62b21bba071d8051a6238a51a5a f09c50833a58feb41e33cab11e41df1de8eeedcc 30a03fe42d2f7336b0ed8648a0db70b1462cb76b 017b17715d7c6a37e4839dbfd9f6498b3b17826c a4720889b0785c30cc5b9ae56f404a55170d682a 5c78a48362ff5a2e28124c9901ac7ef2497fd30a 39e371cf264039216d190a3b7973f6ea9d745775 6894cd074f39c624be1f0efc4a4b273c1a579bd6 50c637cb403c92e3f6784162069d2604f1225725 128d969bbb6da6a34e838e3d95d68ec5dd294867 2114cf6fb464efa725f7fa5b8cfc1caa80e28672 ca7d1683820bae83b8690f38e5aaf9e1d636abe2 3257813fc3444c2e606b7f9969bbf315dd63fa90 1597f152441f6b0a3ebdccfe0c8350e2242616d2 35a4b71263aeab8206ba33e23c77696cd36b4518 f6334b906ac6f4e068ca73b39fee2e7b25bf7981 8e91d3f29603675132f56aec4fe7ef6d6a63fca4 59df53686a09f36836696d627f26f684bc82afd0 b5fdd020ab89b9eef96fedd11924eab2f33fe1ac a10410318a1572e3db0cb85b8535493cfe023016 51124ed652ab51c6f9562e687b70c89ae504529d cf873592a2b70ec6033e1165fd67a321003464b9 d4315f51b5ddc3ec94a0183674dca9a400be10cc dc2f46596ab80be510e874b19702478a04f4e5c3 5b49e74cf77ce61c433a1144e214c3f88910962d 3ac5906a9f85304d580b71cd9327fd61edeffa44 81e74202fd189c83953fab52df68951d8169c459 bc472cf7d207b3f2c8b5ece2409185091c4fb98a 278be38283d7cfc425f8d2d3ff878d092d9abc20 8c59a07a0f16d2c73b18cf9c094a217ac7549b0f 717c55da1fa0210d630fd39d903cc9e8d1f819dd 724c8b2141b7be2ad5d8fe35f90db84e634f3caf e35c251905928e7cdecab7d5335420866e282099 e9f39bf25ab70cde0ee6dc97803566fa72ab88f8 07e733a23c110efd3f61d00d2bf9a932e5b17b3b f8c9efd365ea8e16a6bb7960dbf2e8923b6daf38 0630f187f5d846a3afaf517d2ffeeb90d48c5af4 46d00fc1685b39e7a46899416ff11f793e49c722 444b3637266774f24ea0757b29e9f4ba0de3057e fc726962d0b4f888edab8d6088529b3ae4784d28 98a01edc5b8d0f543df51f98b9eb55a755ebe364 05aa7ad756232555f12ef6bb8fa8356bffbd435f d6afccb033d4708a3dccde50bf12183072baf439 a26c492ac46ccaefe9dc5c7c9400aec8d796e261 ad068476ecd3b0483b1e15dcbf874286e02707b3 d3a1206d02257a61dc3afc496d6485c4fec7638a fe449f8645437f64f33b1f1ca8f0a099cdef3a0f fd07b0f9ca72b8a0b1ee2b6f919a27caf613fbfd 3a1a5eed724e229a45512ace76fc2c4cdb4aad2d 1e018eb2b2c3c53c9a51d8ec518d051113ec6529 564393b0a9363665c7362f0a5ac71316f4a9265e 17a78772871dc7e7e5c978f91f97a9b0660f40ac 80b40c9929082efca003180e089bbfe5f8082d2e 0944557d7186e1316b470f41e268b5c4a30ed206 944691065bdffa40bf18cfa3da7cbc2f5356ff08 f85307e1e85f3769ebaf8731b3fbc3400fc08108 af7354a57bb251dd4bcc0c07cb77993243be5e87 eff8227e4995441276416cca50fd14fef2ba428c ec673322ba6bad3b270b19d3ceb05305a6d6af45 dd59aec11fc5b728aff4998e12f53a1112cfbc31 252086811d30ceb5badcaaa69c4cb32e7303b7d2 0e00907a75b843cd935ef6a451b3c82af49e3008 2a4a79d2c884543a3ba2a73afa47eb9f0bd29698 9aa7bafb92bd0e1fa42ca81b34828291174cfa45 50a700806286465c356dc6a5aa9d77646be2371f 0d5c84f521e82a262bc5ad047798096be0ad8217 f9009d3620cb8bf7e644cb35868b26b1f9f72e93 22174bf7c7f885afaced65e3af0453917aecb803 b4492302cc57880ca4c32471fb531b1ca41eb2a1 bc9a39507de82e1190121b248e032384d998cac7 08aabd9ac83078444ac22dc9dc0936c8455ec6aa 045c55a19bf74a4c09cc350d912287505f49bcc6 57cd4adf110b641b0872349a1905853ce7c3be6f 73fd179fd5237c71f0d69ebcaaeefddcc7372034 02a1892f86b351e7d25c86de00f1976fe4c36726 b4520a04516e18d6484cbb97d494dc301ac4150a 5b1ec54158bc5fd716dee1175a5b7a69c4f67f97 2508fb878c117c6eaf1adb44f047463d8302bc27 1de3dbd76c42457a59daea2ef4f9bfee2677cf08 9fc5feaa0027b690edd68f9e184388d586ae3405 1fa4c67e95d7a6ac3c626c744e703bcc858968f8 138631842aeda8e493affbfb915acf75ea0d1b4b 300ae5f1277a0374ed60996a6cd166f8ce19cc19 4a9578fb889bd57ac08f383c501887c6f6cdaacb ca33f2402ae60e2ca34a082cb2ff57b251fae0b9 797e7fffb8ba0b568c2b32947bd27459e581b931 e7dd92f6b9fcb9cf6e8a7aababb4fd8d5286438f 0d86c365f6789a0ed89663c9b4ce2baafe631198 d13836d6d14856c6322e7a02688191f8e403a003 f76040312df1f9bffffee5da1f3760bbb078a9d5 4c292b1cf4f0d198c7a0c62feaec65a7209af089 5705d5b44a8475dc9e930e25c9131860282eacce 7900c7881264321732e18f13318af526f19a8302 652da028e5240027a861cd0089652c9a9dd47735 0799bdab13d97e3acac01947e581260d1ff96dcc 06e826c833a096daa1c4c209f09b8a1bb1bf0e88 3f87b9557090c2ad7bb155e5ac2a35d242831f9f 5c2d2fc46f2b4867843780a9925d90231b80ad2e 57b5897d995a27a65a80e0a63f0625f6a752c081 6dd50b9ba1a288cf2e7765e5dcc5bfd80ba8c92a 2a35d531b30f15cbf91bcdbb6eb715f1656e5a0a 69f3e10e839bbe57a61afabbe32f4c7e125e3874 http://ftp4.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp3.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-kassel.de/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://vesta.informatik.rwth-aachen.de/ftp/pub/comp/Linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-erlangen.de/pub/mirrors/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://widehat.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp5.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.intergenia.de/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-siegen.de/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.uib.no/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.mirrors.proxad.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.gts.lug.ro/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.klid.dk/ftp/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.tugraz.at/mirror/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso ftp://ftp.pbone.net/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.isr.ist.utl.pt/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.linux.cz/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.se.eu.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.ovh.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.kreksi.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.leaseweb.com/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.inode.at/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://fr2.rpmfind.net/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.lagis.at/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.ynet.sk/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.mirror.garr.it/mirrors/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.ines.lug.ro/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uninett.no/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.bifi.unizar.es/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.roedu.net/mirrors/opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.hro.nl/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.isu.net.sa/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.umoss.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://fundawang.lcuc.org.cn/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.mirror.aussiehq.net.au/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.riken.jp/Linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.novell.co.jp/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.fcaglp.unlp.edu.ar/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.cs.utah.edu/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors2.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.its.dal.ca/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.kaist.ac.kr/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.xmission.com/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.idrepo.or.id/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.mirrors.tds.net/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.osuosl.org/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://www.muug.mb.ca/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.rackspace.com/openSUSE/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors1.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.utexas.edu/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.nyi.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://130.57.19.201/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.rit.edu/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.chg.ru/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.internode.on.net/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso libzypp-17.7.0/tests/media/data/openSUSE-11.3-NET-i586.iso.metalink000066400000000000000000001421711334444677500241350ustar00rootroot00000000000000 openSUSE http://download.opensuse.org 120285184 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBMNZQUqE7a6JyACsoRAlr2AJ9o5fkD0DZ2MpyWC0S9EI6c7BXuPQCd ElMAtuZlO5NgYvG2bQ8xys5iWss= =WmmH -----END PGP SIGNATURE----- a0dc5f5132b0a26218f533d837d4fc1a c7827b5a8e62d3971524ba0c438e9574e892103a 7db356f5e21547e423da0406b7ea36e3c6e4ee62975015294585593d3a2a88c8 c5bc4f75f550e44491273720086bf1692c526cbd bbe1177d325d1310868d34e2350666f9cb119e94 2a167f3a34a9a09577365b1015ca23b823f0a80d 48d2ba5258254dcd4e49140ac7857c9fdb38ab60 bde60d0206ac5a0198e898553b665f9d9c60babb 41437180a223068413028fd977ef4ea033bfbfce 81b7da73641a5e3391210bc9e3de1568a5208836 6f9c2895ec0a887fe2dabd521e40918244da0059 8bc4a733263a01658a7c58a53fb777b4c8b4ff28 ed21674a98ba5af37df44fe4ad0e140c82ac8d1e 3772fed4a8bacd4e20478375c9dc8784f9fef98f 62f0024c67ff6830a3355b9145f043c4d60b2f13 d9ac81f6753d14912ec643ad8e2982bd1e128c95 4f5369273b928b9aaee69736140b814ee9a228d7 d6b8bcaf68d07591774302417a3d2b4ee0948e60 c2a98d8a80ada0b7ecdf214ab6bd3331793cb120 d0725a3e8f0053cb76c1e4424cb2496092063836 50d34d802241b3b52937364a14d369f2644ea4f4 553ba2491229a1ccfd23d01e00df4d95e612d442 2943c0b02f824925e9b589bf3129f950c1e48e5d 5d4f21b818057eb23d9aa0e27e8fa5be4c1f3594 9630c21e84b85e27f9ee19e59ce1a633621a0b1b ca3c553ec4b1310c1526b684d14c85640329cd1e 55bbc2e9d0a627b7481639f4d909118f6b811fc3 7843b05f31d95adac6f781f0de8e8af868490a76 479d93353bceea8744c7f1b4eac97b277e29ba30 28db10a11cf7fc317510230237b76df0dd0dc35c 128a62f1599591f9d7db1ce53d551a00555af265 582ff34a81fe4b3da54defa2b890946f1fce1646 03855419b291564e13510d81083d79816179e4f0 0e5a6eb83c9f358f4bb1e092f9a3bcef95dd0a41 f3e6e901bd37e3ec8d405a96128cc85bff450a83 dee45f794ec0fb5fb5a20826ba2d8d191a567733 390c6d1eaf5a28f93d7e8237e3972b9e93fe5cca 20336a02716605b12e6fafd18855cbae411a09eb ef22857c452d0043adbc054dd4396c0838426ae2 574c3a9f656391757acb83fb5091dabeb78e2418 203e818753a68b0bea326ea1428972a92036d9d8 5b49222d21afb87a5de922e9c77ca255619d21ad fdd7b232c5ba5fa75c30f0e628e506725869df25 360bb3a824926cb73357b7c587390867e944b28c c0f194a68b2c1d8693a83ef162ad85f8c0bf93cd 25079830fe5d0c64d5c8f65c6beb61f2832995c8 fe5b97a5c807c66833a2f5c45a7c511299c8e7c5 64f287d9fc0c64c68c9b9f61711080b4072b11bc fbd01b40db0d0d73c4346bfa6942cd23666d08d8 e73a60b7a8efde3d70da2935d85c3ebd6b623651 414299b4a2da9b50700d2d7d7721139291acd2b7 e2c03eac8cbd4ef1a1fde5b60c32f26c6760a32b a44b4d98688b7dd787ee2c3029229ca3083b2633 635ab22c1507403e3ba9481b92c7637ebd58bb2e bddcde253a718b50ab3e2517cc33938ce54baab4 bed44cc3cacd658389c4807edead76e71329dea9 efe42d31f00ced3aea5a9aef9a3820ec20ba9e73 d1b1f83099c80c9219386b38063588a94385ef5a 670abebd7cd7a0a62d4aeba3dee78c7512d2ea8c f483d9fbe3d513be20aef6e8736c5755c9aea29e 46b4ce6520798c362a16ac3e293cbf94f979603a 8b5e93ad34582431b3efb89ec10e05ff4257c166 06e09067668ff5b9ebda474a71db44c9b8386eee 395843d5243a235c7803bba79eca803bb9c5c5a7 0a2cc9fe1a1a4591110f7235b1b9ca9eb4e59ec7 fe5ef70a92427bbded4cadcd74f648b7e33807c2 c743ddce2e930bcdf76db2f08f5a959f6f3cecd9 d5788b2dca4a6cb5d75cce8316db1e761c914da5 cf5c83859f55714544e42645db270d237b6d4499 497214fef565cfa04c2b8f96704be999b93df93f 2f4c7da4c7d25e6d8d63a995f5296c8295bc8d01 95550875564701777b6e6e02854865c991a121b6 c378b72cdc37c83d4f713e55915863babf949ba3 d67e326f31fcb79000e96b3032c1e16183e79d84 53b0067cc0e8eb9b856a11af29cf69ededfe4bfd ebf37f7028112f669d244d55ae0290c003cc9cff 56e6482f5e0162ee16ee77496e583c9a0d5b0b31 772fb29f60ecd14b3c06a317258e86b6802a1310 b43a919ce9eae4c3f1b18f5d3f61328a9f67d885 cd93972f4cab7128bfefe836ac5601b2cced8a42 fe20173622a73d64f586f9594551bd5fe56ef690 2f22b34a49fef60f54f8f59789a439bc5232e0ab cc1e04c724746e6058429c0610dafd639798bfab 95ba6eba3b22e6b473f7946c8c7aa66da6547ae7 2b7e254485c22686e0408ce76fa6b267aadf35ae e35351bcda5aa019839b328106a60e24db7c5de7 47864400bc861e6102bdde3900342ee5ac9dfe51 f7bfb5331e63b5de7826d0fe5abb0a4e9dffa9b4 14cf61a6d461a67f569e0f4b99ebd21ce5925566 8a250ac80584f8acaf8af9a4a8d3f9f014999a12 a5731b1360d3a387576903da16ed50f390f00864 7c9a3b9f00754bc4da997730e75ddedbcdde5117 d3879d057ea46050c6286f6653c2bf86fb8938c3 a03f375f255e325f6a603934e15769044ecb25db b8ac8d69c3bc16ad657ea2b4a7eace8ea6c60fd8 5c02fbca54bd8a035d59145d6d1be0be96f2197c d43671790be7f5c39af346c8fd00003c135491a2 2381abd10331dfea9f5817487cf74923b040f307 734168c76e9770dd3f86338570d3e27ce7223251 859bf6ee62f7fcb94f052c594d470a61be63f084 98b4178ddd01b7959b0a117ccff0688489b8841d 954de9ea519a33bb4d32ae89f7cae93821e26c02 f41f1496594933eb8fb6869bff916d330f1c9152 d523b3606c19e8a0b161008846dac2d30fd92e4c 3fdf132ad91dcd4f9b466f304d51067baf2ee976 3dbde53bdcd43b022ed4575c40fa65ecd67603d0 cf977d863575f6f74a228a40e357a70a69700189 8c1fe8d6c2bc09f548c2059409d53bdeb5fc7d3f cbfbcedeea1bfc1be031731f0c6de6b0897c84cc 0124bed97ba6c2970af5bff8ab82acb8affb4611 8cba87ed1e345d2312dd341ce7d1810305ccac41 6b6c38964701ba72e7838cea1d91c7ef91ec3f08 1f371667f596f11b40a46bcebd0ab6a90be2913d 708f8af393a828613c45eb5e408c0190b4c95622 d7682ba55ecd3abe1927b9e462fae1b4e9334800 459b073f48c2ba332fc39d3f47bd650a04c511ac bb5d3039b65b985b375ff77e048fa690eca45cf4 ec3168ae0982393770fee2b55cef963a8c503644 0ba5f37dcd6bd6103203fe230d71ffda56502a88 80c37d76da053147a5267d03ee94e89d93fcf074 db4dccc57e290094edb2c9cc9f134b2e3077d22f ea5981c1f1fb5c214ba0c9e82ec030c2a1bbf0a3 f92cf79330387d5b51b8efd6300179e1be15ae01 38e0eec3af20d607b15a9a21078373a338c1d4ba 9ee0001d0ee983caa4e1c469cdf77ed51a0ef9f2 c5a803fc6dd74028f63573e325d87c19001bea8d 11992d4f3a304d24962223cb14aeb9c67848e027 d7bb416faf5485896af7d349982a92cdf98e847d 632add982c1641009bafe85f691f6f21385cd34b 04bb6d36962f76334e71f90240d528e8a3ad459b 32ebc900994d00f4eda332631d687edf7982df0b a302bf465ac38da7429548b80b288c70fe7f9ed4 ed87a36bfe5abd2bb0b0a4efb5932bfa425f80a0 f8c448216f59f523bcf33d2d99dc83e8ec7f46e1 82f5ffb770451bfd840d816946d9b59884d41b02 bd8faa855ca9377f46161b9427027ed8400eff3a f680d78b7854ac0af443b879a880fe3c22cafbd5 5d357bb06899857d3e64468d79eef199882cc3d6 4be3cae2cd41742f8f33f80c41797a68b1510fb5 6d70253e7e22c6a30570d96b6cfb36772b33354f ede70be18a4db080c3d046c5fd9f0bc6b625a772 14c8f1675f97244b14f12d6b32419a19cf814dbc 0f9943a582d5d514e9deb1253d4806156ad37c17 c0086d20b74ae26693716ec7bae9b530237d786b 356fe043c133aab0a922153f9cef068d90bf3f89 0d2420bcd3eabc17c319e73cb1c043fa47f8ac92 7b9496187417464ac70e4fa7a63a710eea14202a fcf3ada8b083d0adffc0c5ecce437aaa483d4109 0b14dd454a228bf96d9a177fcc65234db93a740b a7d2ed2809de3e928913a6a3f8efcf1f06f1f3ab 9752d14b59c1b60ad957de4982d84e0f3a398bcc bdba58965077db889544e8bb086ddfa8d4394be2 93fa8444acd84d0a5580b553b9eec85a354aa4cb dcdb227911b0bcd0ed6074711eb9ad6f686aef46 6cd9e2121fee8d0c0982d9976fc8b5eec99bed7c e74ef9311f1a084f8d2625369cbd245872e7c7b5 d042115bc6a339f1bcd58d526c3617cc125311f3 fb68189e82b480de37bcb09a2e6ac699d7d81533 aacecb7a31699743342dce7e031818a809a6ef8a 431b9fe43c294a313042714f99e9a9ae59663992 fd84701b8a4453d227dffe54761824c4c690f1a4 a0d69bdc1b1d99b17e42fe9a0e48918344aa4e4e 3962f2a34b48853aa3885a25c5282640451b8935 66f1df2058e6b061623971b3c25f49a35a856f2e 06531afe357933551835fd816ce915c9737ae8fd 3642ad5a2bc42db69d495f0b4f506f5059761b94 7756a6cf4264d74e727fc84f377d4a7472f91469 a13af573eadb2998648ea050c65bcdc78e262ada 9ed650662bf9b8b236934799554d03b0b6ed64d4 404d94a3268699510b0dcddbc826bf724dca6658 85043d5ae0586b322f97310bc299aa9007101ee8 3c39c196c6ba4d90ba316ce3b451bffcc462a9dc dbf5c2fcd32b32023a1431960ca8eac207b3e8c7 b2efc9445d6af07aaa64eb736815c1574abfff32 9e7443a1d9daa8c5a8e1db98e68fd839b7dec99e 92317de0fc58deba956a7c4cf23cd87028362826 0e53cb81bda4774c3c5ce8898e2a85d56704fdb6 d4b76a8dae36403ffb6c9bb93a93115c4fd74f18 cfc7ff0056327d1eb3c401885e49ee514acb5ea4 3e47d6f3d4512b56f8a48e028417da53a8f50163 fdc51eda2dd4f784e086e05efd50756e0e2e93f1 62b0642dd3583e46bc4a4a4e946f9f41a85316c5 1d699a2de913e0512b3069a56c634952e206f725 faa1518829eb7b7bafef580bdc7a375ab67df6c9 79a2069008732e01fafdc6bfae5c0d4878191cf8 cfe4b5a6ac9633bb476be67f9ce7326519498f66 faaba329d20c0fbd04ced467c68b4b466bdf7674 22902be8a6d4dcd61f2d5643093c16d91591453b 2bf01ec12eec43da8c15e0495a27c8e2e7d17975 d1341a1129f63c66136d661677f34aca91eab3cf 057e65f31bf494c532d1299368b273abafcbe24f 1640f880ba910be403d511f39d7d610a2f5aed92 4bbff42ed3ba0e6fb23ffc3170e884c1752b7bb9 82ec7855cd32e721445c3ec0f2dfae9814faaaa4 ee6e7a68f2c5b3cb3ade33066182c3fbc49317e6 542684dc2cbc3f02ea57a7e21382ecbb0b977c5d 9ee8f8ba9a51f1a2ffdeaec56b9f790a8246545f cd0895b0a6f8c32ddf8e1774be61c2a448e113bc 4871e467373ed699071396b07774a1591d36a421 35b5604b108a59988aca58e6f4773b2f4cd5b88a 9c58cf38b6958c7e7400d19e8c98db2f5a43325d 00ee7a8491272475e6ece4cca82b7e9c29f740ba 6f7350658904cc01c8e9a7aab19a44c8c8f1ca4d 9b640920de57018780e3919b890d17ef09e8ed8c 17d551e8c57570bff19fd2fb8220bf101f3bc941 52e1f2ed6f21611b2efe4d7ef325aa24840470ad 863df77cbc0c93c5fc589c0e968ff7222cf2d42e bfc8699fb1f8ee70c74e8914cd76f29ccf5b814f a0ab0bccc949c52049273865495dd18b0fd11945 548a1690e5ffce54983a40f583f968235e480f45 4b88cc0e5d7bd519b6abe5f3ebc13b9c1b166506 5106ee73a301a0d38eabf0e71cb0fc9866bb8b69 032ce62bad50602863ae3f8409ae8b03a44fb017 c480c521a00374c0691de62fa415e6854ba3400d 3f63504eb9fc8fe250f7441699508c4c3704153e 8ea4edef9512aadc4c20dc54488c1569322cba72 69c3be28a635b360687e79a7fbc945bab87f7e19 072f4d5484893b8b995e19e31b192f414908ce46 e938a1c8e19fb02d8a59809005327ce91ea1453a d30fc4f7643cc522965ee3c496d3d7601e73fb08 1ee78d5f582629784ecb286c551fcf3b335e74a8 54fb2f5699241e407e272d0e79469216d98e6b91 e7038177e7399d30956ebe5db5f0b5b4946528ff 68f175645387cf47fc0eed8a973ac4dab2657908 0a2f4c4a6abf92231d2c7f9e1dd8011c908fa356 741f332adb152ccb781c732755b551dd7c1481f0 0cfdbfaa362a5c4d22a1fe7f31375bf57ac7a1ec 3102a4d3fe18594ffd62696ba07f8ea9321eb222 49abbc86515bfa01e86f62f32a44f5663b3b6f27 e27321dd4d10129f095a0ab8e748898885869ac7 a4de9b37ffd591118d31be1602d2f20ac434b1fa 1fa1da65287c26594d76b478e3f5ffb5e80d61c9 6a298213a3bd89bfec478b5f265284cba1f09b3b 79fbd7d3834ab562828062d21dd3788c04c892a0 910b55f1f231d98b29ff9c8dbfe51c188f7edcc7 0a242b36214a6f44d6c15c7021b649793e779313 d639b6a1243d8b0536bc0f4c29bf1abb74aa541f 97ea28452ee779b1d146f02756f632dbca917a8a 58ca63e6293b38ed450683c0e2d0d778f6ea2fec 35989c2ef34043069106d0790f483c88dbe5563a 110cd1527cdd1ac7283f8299a3b57a2b6edf48ef a2174fa136d4231799369916f9a07d7c8e02ec47 952eb637dbeb2e1366747cfa94cc70ee1e8ed493 3646a03568c6b81917fa35fb3733d31f96233f3c 7ff65f933bb17b5e413a892f81cb3f3c8ef6b9c1 06a00a18679a4c1524440c022ae4984fef35b937 f1a6a85df1c1ad73a4d86df3dfe040ad68cdf89a b2d0c85ebfac8204670291cfe1267a0bd2053ee1 bc7fda6813272bf14a66aa38490310ecd33db06c d518fe952e380e96676fa9d62d00ac328c332a5c fb2c624674936a90916a3d8385325ef92201d317 c67d2837b586016e4898c830463383860d265adf dd6d14ec3bba1d23c7234bb4af3e59462170d675 a771b7fa4312921ff1c2a19d82a90fa77c05f3e6 945d62fd50fa90858a0ef8062a45e719dbe6ee60 78ba1b8d5aa6964cb9ffc3632e41806a14427d58 e7dce40ce18becf249f9638c2ba294cd1805478a 2c7cad45471143608401188c8dcf155ba7a790a9 bdab487c1d4c977f5a6a0d1cac8f2d12679f6d86 d73e478a5e1b09047d8e3911948976f559c7e915 90a75eaffe4c4c870d3fa541a554a68d61678f67 7b040bfb1fea7283b028eb79341fb1f229f6054d 780282015861b75321929ec63433bad711b66d66 22085d54006694927e943f37bf856053f5ce58b0 634f46669410fde9a17d53ac19ee5a7d1d04b1a5 69dfd663f066f9674a12685116109098354d25f2 21fa816492c37c4927d5ea2a1cfc61ff5c2f847e 14cdeb8dd583856c9935be5a58e33187ccacbc66 71b0c9c229b934f78957235be17e9887405a37d5 8d744577eaa8d208f4b258197e01c65ed3b7e999 c4752ddef02d57f8409bb54053259c358f90e327 9f13ac8ed18542369833d5e4c9bad59be5f23db1 a869be8eb4e553fac5ac25e058d343dffbf601af 56f40091232d071f7a342efeb178aff27c70c29a 1a4f6184f9e69117990f5483bf05045ee7e17834 e7ad705497f2f07a91974729ed986e906861ff81 8140bcb9ce68579eb83ac751070d7a08057b3e3c c463b5925b9f27d7f077bdff813cde19d3c2bf09 06e20fe2ee579bdd1e2fdef738485afd6d999418 91c259e944216ec83ddb541fbf53bbbd518d927f 8340d1cade0cc8ae45e8136add447649cd470607 8241dbbf5ff5cc381d7d6448f2c1348abec45203 594b9ab10319109e782cfc0eaabd038a8e744518 a7ade46fac338fd08ae322f9575ab95768fd4569 0146e3deeba63989108d1bcfcf0231c05d8d7a2e 07d371120735553c7295a9466ee6fe81ff46fe51 a7c05b98e519af4a86bd20beb6b964c94d48d0af 9e894b914ab144217181dbca27f955206b3c37b4 2205dd2085dada143b64785b1fd86b0d3a765bab 086cadf056dd73a5209df85f0ad2d3ccf7d14f7b ae73594385fb7e5195c9c9dffc8b9dd5545a05a0 277ab18f0ff09f3a1a0a8d68715f7eb22eaba249 f6e148ba5488138825b8e2a8ba88f4cf7a24deef 76743b6a629f09b4cc06e7f871561ee87e518ebb 7367aff187fdf6e6d4a70f492e0cd907d3a4ff33 19ba943536dcb28b3e815c87f8ad9d910948a975 1db42e3489d6db0749401769978b04c05cf0f137 a3c1099e318a4915204318e5de0a4276afe0ef02 a7a87a47a61b0d93591c94589d39fd079a206ff3 a4eb1a071e724dca21ad02c912754edfaee1ab00 611664ce7faa6e14fb6a167758a53c52dac1084b 344dc7036a6e2d0ec784d3f60132046d021a24a4 02bf376576b2f7ae650e4d2769cb3caf1764a49f 35b2549570666e6c1cf7c3dbbf70e482c41d714f e5fbe9e59d967812a34621a9b104968b0c353df4 2b8f1ed1d05393b612a433195f3752f874f8308e 647719776245276d1948c44b37003d0adc8c53ca 25c8f2a87b48b1e60700764054ce4aa3e5d14c25 271744f02f7b00fae63626940cb06e19c75d590e cc6ed725952f3d39f570868692e86c0941de1c52 a081512a675ac3fc30bb21862feb2ab6e8094b55 d46a5d5044f6025a5188c3e6bdbb9f77ed98b1b1 891ed91b426b1c415d613128bc3227a350fadfec dea127f7c5ac058465f1d0264b27659798780498 a5a7f6e00c529d1272b071ecbf6bbedbbbebf89a ed61db99d5a7862a643f684e67770921c03400e1 b719a8c73ba5daee78c4b5f7de7d7c3055547f12 b6f33ac83b8a1db1db0246e15b6c1ac564db5a5b c084dc77d693f6d3b3f72f8196cd3583d60545ca a09e7af08be0e060d48a863d81eef2fc24456369 fd15cd7451b4df224b3076462cd3532726ed5700 36b5a41a18b7cfdcacbcb0def8957dbbbf443df8 1b810d454152f6e07bd161e02b40473bc0bd2efa eb4a3a814b45d248bf3526fa2bf162c72a7d84be 65c26fe1a5ca80972835cd3546c2e794deae62cd ddbbf176a6f2a6b0e856e50cc969bf157f4b8706 3712dda5fa2838d14b942e2dd43babd8dbd8fb71 2bb88a6732a8257da53fb795e4d2a1dabd44948c 322e7ced7dded5a26b775ed4dd425009c9cacf1a fe863b60a63f8b844796455dede6206d057b3f7f e023d908e76518afe0a73a9284691fc51d362673 9c4856b53ea1a6137fda6bbe6ba3f29355412c94 d733e415454ab0737f61ab6545a97aaa34a10981 b7aa3fe75fba78e3ef7a83657b0deb6cf563751a d8226fae4f14c31362aaa403f4d6a8b84b89dfc5 e8a1cfa1e616e1af2a63ab32845ff719ed98c192 b28f88b4dbe3017d2194b3614321b0e85b1a817e a4e6762a5454c1623ab580b1cea66e98d47a1207 dea8eb3fca200ec89e5ade0833a5954abdb3a38d 84f62cdaa7d95f934e355abf48af32f8b5aa6a92 9763c01fd40bd56ebad6adf07a4e00f670508b3a 35376a957ac89be433fa6a5af47bbb3a803b8439 9fbb9ef79f32e2b7e71cab55991ac6838f3cc727 d7a088da4afedcf3a6b2bf7b6c0405dee40dc0b1 c2a87610d343c57b3685843b722ea6839c2482c2 6698ac8c767847f828b3027930b3840c6c298da9 67f27e3c2aa7dab996b38f0b020e9e3a1ddc1a7a 5aa3383d759f101865c58ae95a7d28cb4bd90912 ea7bb4593fa94b3731ffcc0471f23e79487d90be 587d61a2389f0229988dfa3ba6356d34777f7ad7 96067e7f71d24311460e6faa73f43af14e1bd09c b4ad2b6d784fb0455e0e3ffaf77ec6a5d3835be4 3c4a0493d869fb12d84fc84efbdf99d721e32795 7ebfd1a18b889c0ead28671811c3bc912accee7b d279daafeba573f7ecff882f696733eeef1081e2 ca359bb82bf59c190ba4ec30e4f79e61cedf6216 213d1d15b0fdd65965916bae093710822c2f7434 20dff502ccf9b1dfae7f8c0b118382fa7c3198ac 4e0405347af59ede2c53c4c1a527ac46595829c5 127a4491a7c2310495b68127e9c6570b66600820 494ad84de129e62b21bba071d8051a6238a51a5a f09c50833a58feb41e33cab11e41df1de8eeedcc 30a03fe42d2f7336b0ed8648a0db70b1462cb76b 017b17715d7c6a37e4839dbfd9f6498b3b17826c a4720889b0785c30cc5b9ae56f404a55170d682a 5c78a48362ff5a2e28124c9901ac7ef2497fd30a 39e371cf264039216d190a3b7973f6ea9d745775 6894cd074f39c624be1f0efc4a4b273c1a579bd6 50c637cb403c92e3f6784162069d2604f1225725 128d969bbb6da6a34e838e3d95d68ec5dd294867 2114cf6fb464efa725f7fa5b8cfc1caa80e28672 ca7d1683820bae83b8690f38e5aaf9e1d636abe2 3257813fc3444c2e606b7f9969bbf315dd63fa90 1597f152441f6b0a3ebdccfe0c8350e2242616d2 35a4b71263aeab8206ba33e23c77696cd36b4518 f6334b906ac6f4e068ca73b39fee2e7b25bf7981 8e91d3f29603675132f56aec4fe7ef6d6a63fca4 59df53686a09f36836696d627f26f684bc82afd0 b5fdd020ab89b9eef96fedd11924eab2f33fe1ac a10410318a1572e3db0cb85b8535493cfe023016 51124ed652ab51c6f9562e687b70c89ae504529d cf873592a2b70ec6033e1165fd67a321003464b9 d4315f51b5ddc3ec94a0183674dca9a400be10cc dc2f46596ab80be510e874b19702478a04f4e5c3 5b49e74cf77ce61c433a1144e214c3f88910962d 3ac5906a9f85304d580b71cd9327fd61edeffa44 81e74202fd189c83953fab52df68951d8169c459 bc472cf7d207b3f2c8b5ece2409185091c4fb98a 278be38283d7cfc425f8d2d3ff878d092d9abc20 8c59a07a0f16d2c73b18cf9c094a217ac7549b0f 717c55da1fa0210d630fd39d903cc9e8d1f819dd 724c8b2141b7be2ad5d8fe35f90db84e634f3caf e35c251905928e7cdecab7d5335420866e282099 e9f39bf25ab70cde0ee6dc97803566fa72ab88f8 07e733a23c110efd3f61d00d2bf9a932e5b17b3b f8c9efd365ea8e16a6bb7960dbf2e8923b6daf38 0630f187f5d846a3afaf517d2ffeeb90d48c5af4 46d00fc1685b39e7a46899416ff11f793e49c722 444b3637266774f24ea0757b29e9f4ba0de3057e fc726962d0b4f888edab8d6088529b3ae4784d28 98a01edc5b8d0f543df51f98b9eb55a755ebe364 05aa7ad756232555f12ef6bb8fa8356bffbd435f d6afccb033d4708a3dccde50bf12183072baf439 a26c492ac46ccaefe9dc5c7c9400aec8d796e261 ad068476ecd3b0483b1e15dcbf874286e02707b3 d3a1206d02257a61dc3afc496d6485c4fec7638a fe449f8645437f64f33b1f1ca8f0a099cdef3a0f fd07b0f9ca72b8a0b1ee2b6f919a27caf613fbfd 3a1a5eed724e229a45512ace76fc2c4cdb4aad2d 1e018eb2b2c3c53c9a51d8ec518d051113ec6529 564393b0a9363665c7362f0a5ac71316f4a9265e 17a78772871dc7e7e5c978f91f97a9b0660f40ac 80b40c9929082efca003180e089bbfe5f8082d2e 0944557d7186e1316b470f41e268b5c4a30ed206 944691065bdffa40bf18cfa3da7cbc2f5356ff08 f85307e1e85f3769ebaf8731b3fbc3400fc08108 af7354a57bb251dd4bcc0c07cb77993243be5e87 eff8227e4995441276416cca50fd14fef2ba428c ec673322ba6bad3b270b19d3ceb05305a6d6af45 dd59aec11fc5b728aff4998e12f53a1112cfbc31 252086811d30ceb5badcaaa69c4cb32e7303b7d2 0e00907a75b843cd935ef6a451b3c82af49e3008 2a4a79d2c884543a3ba2a73afa47eb9f0bd29698 9aa7bafb92bd0e1fa42ca81b34828291174cfa45 50a700806286465c356dc6a5aa9d77646be2371f 0d5c84f521e82a262bc5ad047798096be0ad8217 f9009d3620cb8bf7e644cb35868b26b1f9f72e93 22174bf7c7f885afaced65e3af0453917aecb803 b4492302cc57880ca4c32471fb531b1ca41eb2a1 bc9a39507de82e1190121b248e032384d998cac7 08aabd9ac83078444ac22dc9dc0936c8455ec6aa 045c55a19bf74a4c09cc350d912287505f49bcc6 57cd4adf110b641b0872349a1905853ce7c3be6f 73fd179fd5237c71f0d69ebcaaeefddcc7372034 02a1892f86b351e7d25c86de00f1976fe4c36726 b4520a04516e18d6484cbb97d494dc301ac4150a 5b1ec54158bc5fd716dee1175a5b7a69c4f67f97 2508fb878c117c6eaf1adb44f047463d8302bc27 1de3dbd76c42457a59daea2ef4f9bfee2677cf08 9fc5feaa0027b690edd68f9e184388d586ae3405 1fa4c67e95d7a6ac3c626c744e703bcc858968f8 138631842aeda8e493affbfb915acf75ea0d1b4b 300ae5f1277a0374ed60996a6cd166f8ce19cc19 4a9578fb889bd57ac08f383c501887c6f6cdaacb ca33f2402ae60e2ca34a082cb2ff57b251fae0b9 797e7fffb8ba0b568c2b32947bd27459e581b931 e7dd92f6b9fcb9cf6e8a7aababb4fd8d5286438f 0d86c365f6789a0ed89663c9b4ce2baafe631198 d13836d6d14856c6322e7a02688191f8e403a003 f76040312df1f9bffffee5da1f3760bbb078a9d5 4c292b1cf4f0d198c7a0c62feaec65a7209af089 5705d5b44a8475dc9e930e25c9131860282eacce 7900c7881264321732e18f13318af526f19a8302 652da028e5240027a861cd0089652c9a9dd47735 0799bdab13d97e3acac01947e581260d1ff96dcc 06e826c833a096daa1c4c209f09b8a1bb1bf0e88 3f87b9557090c2ad7bb155e5ac2a35d242831f9f 5c2d2fc46f2b4867843780a9925d90231b80ad2e 57b5897d995a27a65a80e0a63f0625f6a752c081 6dd50b9ba1a288cf2e7765e5dcc5bfd80ba8c92a 2a35d531b30f15cbf91bcdbb6eb715f1656e5a0a 69f3e10e839bbe57a61afabbe32f4c7e125e3874 http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp5.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp4.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-erlangen.de/pub/mirrors/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp3.gwdg.de/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.intergenia.de/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://vesta.informatik.rwth-aachen.de/ftp/pub/comp/Linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-kassel.de/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://widehat.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uni-siegen.de/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.ines.lug.ro/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.kreksi.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.ynet.sk/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.ovh.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.lagis.at/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.klid.dk/ftp/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso ftp://ftp.pbone.net/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.se.eu.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.inode.at/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.mirrors.proxad.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.leaseweb.com/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.tugraz.at/mirror/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.mirror.garr.it/mirrors/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.linux.cz/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.uib.no/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.gts.lug.ro/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://fr2.rpmfind.net/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.isr.ist.utl.pt/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.bifi.unizar.es/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.uninett.no/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.hro.nl/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.roedu.net/mirrors/opensuse.org/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.cs.utah.edu/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.kaist.ac.kr/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.its.dal.ca/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.idrepo.or.id/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.novell.co.jp/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.riken.jp/Linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://www.muug.mb.ca/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.umoss.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.osuosl.org/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.isu.net.sa/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.fcaglp.unlp.edu.ar/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://opensuse.mirror.aussiehq.net.au/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://suse.mirrors.tds.net/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors1.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://fundawang.lcuc.org.cn/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.rackspace.com/openSUSE/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors2.kernel.org/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.xmission.com/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.utexas.edu/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://130.57.19.201/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.nyi.net/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.chg.ru/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirrors.rit.edu/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso http://mirror.internode.on.net/pub/opensuse/distribution/11.3/iso/openSUSE-11.3-NET-i586.iso libzypp-17.7.0/tests/media/file_exists_test.cc000066400000000000000000000063711334444677500214340ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include "mymediaverifier.h" using namespace zypp; using namespace zypp::media; using boost::unit_test::test_suite; using boost::unit_test::test_case; BOOST_AUTO_TEST_CASE(curl_params_reset) { MediaManager mm; media::MediaId id; Url url("http://ftp.kernel.org/pub/"); id = mm.open( url, ""); mm.attach(id); Pathname dest; Pathname src("/README"); mm.doesFileExist(id, src); mm.provideFile(id, src); dest = mm.localPath(id, src); BOOST_REQUIRE( PathInfo(dest).size() != 0 ); mm.provideFile(id, src); dest = mm.localPath(id, src); BOOST_REQUIRE( PathInfo(dest).size() != 0 ); mm.doesFileExist(id, src); BOOST_REQUIRE( PathInfo(dest).size() != 0 ); mm.release(id); } BOOST_AUTO_TEST_CASE(http_test) { //MediaVerifierRef verifier( new MyMediaVerifier() ); MediaManager mm; media::MediaId id; Url url("http://ftp.kernel.org/pub/"); // iso_url = "iso:/"; // iso_url.setQueryParam("iso", "SUSE-10.1-Beta5/SUSE-Linux-10.1-beta5-i386-CD1.iso"); // iso_url.setQueryParam("url", src_url.asString()); id = mm.open( url, ""); //mm.addVerifier( id, verifier); mm.attach(id); BOOST_REQUIRE( mm.doesFileExist(id, Pathname("/README")) ); BOOST_REQUIRE( ! mm.doesFileExist(id, Pathname("/fakefile")) ); mm.release(id); } BOOST_AUTO_TEST_CASE(ftp_test) { //MediaVerifierRef verifier( new MyMediaVerifier() ); MediaManager mm; media::MediaId id; Url url("ftp://ftp.kernel.org/pub/"); // iso_url = "iso:/"; // iso_url.setQueryParam("iso", "SUSE-10.1-Beta5/SUSE-Linux-10.1-beta5-i386-CD1.iso"); // iso_url.setQueryParam("url", src_url.asString()); id = mm.open( url, ""); //mm.addVerifier( id, verifier); mm.attach(id); BOOST_REQUIRE( mm.doesFileExist(id, Pathname("/README")) ); BOOST_REQUIRE( ! mm.doesFileExist(id, Pathname("/fakefile")) ); mm.release(id); } BOOST_AUTO_TEST_CASE(isotest) { if ( geteuid() != 0 ) { BOOST_WARN( "ISO test requires root permissions! (mount)"); return; } MediaManager mm; media::MediaId id; //Url url("nfs://dist.suse.de/dist/install/openSUSE-10.2-GM/"); Url url("dir:/mounts/dist/install/openSUSE-10.2-GM/"); Url iso_url("iso:/"); iso_url.setQueryParam("iso", "openSUSE-10.2-RC5-PromoDVD-i386.iso"); iso_url.setQueryParam("url", url.asString()); id = mm.open( iso_url, ""); mm.attach(id); BOOST_REQUIRE( mm.doesFileExist(id, Pathname("/README")) ); BOOST_REQUIRE( ! mm.doesFileExist(id, Pathname("/fakefile")) ); mm.release(id); } BOOST_AUTO_TEST_CASE(nfs_tst) { if ( geteuid() != 0 ) { BOOST_WARN( "NFS test requires root permissions! (mount)"); return; } MediaManager mm; media::MediaId id; Url url("nfs://dist.suse.de/dist/install"); id = mm.open( url, ""); mm.attach(id); BOOST_REQUIRE( mm.doesFileExist(id, Pathname("/SLP/openSUSE-10.2-RM/i386/DVD1/README")) ); BOOST_REQUIRE( ! mm.doesFileExist(id, Pathname("/fakefile")) ); mm.release(id); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/media/media1_test.cc000066400000000000000000000017351334444677500202550ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include "mymediaverifier.h" using namespace zypp; using namespace zypp::media; using boost::unit_test::test_suite; using boost::unit_test::test_case; BOOST_AUTO_TEST_CASE(verifier_test) { MediaVerifierRef verifier( new MyMediaVerifier(/* "SUSE-Linux-CORE-i386 9" */) ); MediaManager mm; media::MediaId id; //id = mm.open(zypp::Url("cd:/"), ""); id = mm.open(zypp::Url("ftp://machcd2/CDs/SLES-10-ISSLE-Beta1a-ppc/CD1"), ""); mm.addVerifier( id, verifier); mm.attach(id); mm.provideFile(id, Pathname("/suse/setup/descr/EXTRA_PROV")); mm.release(id); mm.attach(id); mm.provideFile(id, Pathname("/suse/setup/descr/EXTRA_PROV")); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/media/media2_test.cc000066400000000000000000000061411334444677500202520ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include "mymediaverifier.h" #include #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace zypp; using namespace zypp::media; bool do_step = false; int do_quit = 0; void quit(int) { do_quit = 1; } void goon(int) { } #define ONE_STEP(MSG) \ do { \ DBG << "======================================" << std::endl; \ DBG << "==>> " << MSG << std::endl; \ DBG << "======================================" << std::endl; \ if( do_step) { pause(); if( do_quit) exit(0); } \ } while(0); BOOST_AUTO_TEST_CASE(strange_test) { { struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = goon; sigaction(SIGINT, &sa, NULL); sa.sa_handler = quit; sigaction(SIGTERM, &sa, NULL); //if( argc > 1 && std::string(argv[1]) == "-i") // do_step = true; } MediaVerifierRef verifier( new MyMediaVerifier(/* "SUSE-Linux-CORE-i386 9" */) ); MediaManager mm; media::MediaId one; media::MediaId two; zypp::Url url; url = "cd:/"; try { ONE_STEP("ONE: open " + url.asString()); one = mm.open(url); ONE_STEP("TWO: open " + url.asString()); two = mm.open(url); ONE_STEP("ONE: add verifier") mm.addVerifier( one, verifier); ONE_STEP("TWO: add verifier") mm.addVerifier( two, verifier); ONE_STEP("ONE: attach") mm.attach(one); ONE_STEP("ONE: provideFile(/INDEX.gz)") mm.provideFile(one, Pathname("/INDEX.gz")); ONE_STEP("TWO: attach") mm.attach(two); ONE_STEP("ONE: provideFile(/content)") mm.provideFile(one, Pathname("/content")); ONE_STEP("TWO: provideFile(/INDEX.gz)") mm.provideFile(two, Pathname("/INDEX.gz")); try { ONE_STEP("ONE: release()") mm.release(one); //! \todo add the device argument once mm.getDevices() is ready } catch(const MediaException &e) { ZYPP_CAUGHT(e); ERR << "ONE: HUH? Eject hasn't worked?!" << std::endl; } try { ONE_STEP("ONE: provideFile(/content)") mm.provideFile(one, Pathname("/content")); } catch(const MediaException &e) { ZYPP_CAUGHT(e); DBG << "ONE: OK, EXPECTED IT (released)" << std::endl; } try { ONE_STEP("TWO: provideFile(/ls-lR.gz)") mm.provideFile(two, Pathname("/ls-lR.gz")); } catch(const MediaException &e) { ZYPP_CAUGHT(e); DBG << "TWO: OK, EXPECTED IT (released)" << std::endl; } ONE_STEP("TWO: (RE)ATTACH IT") mm.attach(two); ONE_STEP("TWO: provideFile(/INDEX.gz)") mm.provideFile(two, Pathname("/INDEX.gz")); ONE_STEP("CLEANUP") } catch(const MediaException &e) { ZYPP_CAUGHT(e); } catch( ... ) { // hmm... ERR << "Catched *unknown* exception" << std::endl; } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/media/media3_test.cc000066400000000000000000000066041334444677500202570ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include "mymediaverifier.h" #include #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace zypp; using namespace zypp::media; bool do_step = false; int do_quit = 0; void quit(int) { do_quit = 1; } void goon(int) { } #define ONE_STEP(MSG) \ do { \ DBG << "======================================" << std::endl; \ DBG << "==>> " << MSG << std::endl; \ DBG << "======================================" << std::endl; \ if( do_step) { pause(); if( do_quit) exit(0); } \ } while(0); BOOST_AUTO_TEST_CASE(strange_test) { bool eject_src = false; bool close_src = false; { struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = goon; sigaction(SIGINT, &sa, NULL); sa.sa_handler = quit; sigaction(SIGTERM, &sa, NULL); // std::cerr << "ARGS=" << argc << std::endl; // for(int i=1; i < argc; i++) // { // if( std::string(argv[i]) == "-i") // do_step = true; // else // if( std::string(argv[i]) == "-e") // eject_src = true; // else // if( std::string(argv[i]) == "-c") // close_src = true; // } } MediaVerifierRef verifier( new MyMediaVerifier(/* "SUSE-Linux-CORE-i386 9" */) ); MediaManager mm; media::MediaId src = 0; media::MediaId iso; zypp::Url src_url; zypp::Url iso_url; src_url = "nfs://dist.suse.de/dist/install"; iso_url = "iso:/"; iso_url.setQueryParam("iso", "SUSE-10.1-Beta5/SUSE-Linux-10.1-beta5-i386-CD1.iso"); iso_url.setQueryParam("url", src_url.asString()); /* iso_url = "iso:/"; iso_url.setQueryParam("iso", "/space/tmp/iso/SUSE-Linux-10.1-beta7-i386-CD1.iso"); */ try { if( eject_src || close_src) { ONE_STEP("SRC: open " + src_url.asString()); src = mm.open(src_url); ONE_STEP("SRC: attach") mm.attach(src); } ONE_STEP("ISO: open " + iso_url.asString()); iso = mm.open(iso_url); ONE_STEP("ISO: add verifier") mm.addVerifier(iso, verifier); ONE_STEP("ISO: attach") mm.attach(iso); ONE_STEP("provideFile(/INDEX.gz)") mm.provideFile(iso, Pathname("/INDEX.gz")); if( eject_src) { try { ONE_STEP("SRC: release(ejectDev=\"/dev/device\")") mm.release(src);//! \todo add the device argument once mm.getDevices() is ready } catch(const MediaException &e) { ZYPP_CAUGHT(e); ERR << "ONE: HUH? Eject hasn't worked?!" << std::endl; } } else if( close_src) { try { ONE_STEP("SRC: close()") mm.close(src); } catch(const MediaException &e) { ZYPP_CAUGHT(e); ERR << "SRC: HUH? Close hasn't worked?!" << std::endl; } } ONE_STEP("ISO: RELEASE") mm.release(iso); ONE_STEP("CLEANUP") } catch(const MediaException &e) { ERR << "Catched media exception..." << std::endl; ZYPP_CAUGHT(e); } catch( ... ) { // hmm... ERR << "Catched *unknown* exception" << std::endl; } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/media/media4_test.cc000066400000000000000000000041671334444677500202620ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace zypp; using namespace zypp::media; bool do_step = false; int do_quit = 0; void quit(int) { do_quit = 1; } void goon(int) { } #define ONE_STEP(MSG) \ do { \ DBG << "======================================" << std::endl; \ DBG << "==>> " << MSG << std::endl; \ DBG << "======================================" << std::endl; \ if( do_step) { pause(); if( do_quit) exit(0); } \ } while(0); BOOST_AUTO_TEST_CASE(strange_test) { { struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = goon; sigaction(SIGINT, &sa, NULL); sa.sa_handler = quit; sigaction(SIGTERM, &sa, NULL); // if( argc > 1 && std::string(argv[1]) == "-i") // do_step = true; } MediaManager mm; media::MediaId id; zypp::Url url; Pathname dir("./suse/setup/descr"); url = "cd:/"; try { ONE_STEP("open " + url.asString()); id = mm.open(url); ONE_STEP("attach") mm.attach(id); ONE_STEP("provideDirTree(" + dir.asString() + ")"); mm.provideDirTree(id, Pathname(dir)); ONE_STEP("Create a temporary dir"); zypp::filesystem::TmpDir temp; ONE_STEP("Create a copy of " + dir.asString()); zypp::filesystem::copy_dir(mm.localPath(id, dir), temp.path()); std::string cmd("/bin/ls -lR "); cmd += temp.path().asString(); ONE_STEP("Check the directory copy") system( cmd.c_str()); ONE_STEP("CLEANUP") } catch(const MediaException &e) { ZYPP_CAUGHT(e); } catch( ... ) { // hmm... ERR << "Catched *unknown* exception" << std::endl; } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/media/mymediaverifier.h000066400000000000000000000027231334444677500210770ustar00rootroot00000000000000 #ifndef TEST_MYMEDIAVERIFIER #define TEST_MYMEDIAVERIFIER #include #include #include #include using namespace zypp; using namespace zypp::media; /* ** Very basic example verifier. ** ** This one does not know anything about the product, it ** just checks if /media.1 (limited to 1st CD) exists... */ class MyMediaVerifier: public MediaVerifierBase { private: // std::string _productname; public: MyMediaVerifier(/* std::string &productname */) : MediaVerifierBase() //, _productname(productname) {} virtual ~MyMediaVerifier() {} virtual bool isDesiredMedia(const MediaAccessRef &ref) { DBG << "isDesiredMedia(): for media nr 1 " << std::endl; if( !ref) DBG << "isDesiredMedia(): invalid media handle" << std::endl; std::list lst; Pathname dir("/media.1"); DBG << "isDesiredMedia(): checking " << dir.asString() << std::endl; // check the product e.g. via /media.1/products as well... try { if( ref) ref->dirInfo(lst, dir, false); } catch(const zypp::Exception &e) { ZYPP_CAUGHT(e); } DBG << "isDesiredMedia(): media " << (lst.empty() ? "does not contain" : "contains") << " the " << dir.asString() << " directory." << std::endl; return !lst.empty(); } }; #endif libzypp-17.7.0/tests/media/throw_if_not_exists_test.cc000066400000000000000000000014751334444677500232160ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include "mymediaverifier.h" using namespace zypp; using namespace zypp::media; using boost::unit_test::test_suite; using boost::unit_test::test_case; BOOST_AUTO_TEST_CASE(http_test) { //MediaVerifierRef verifier( new MyMediaVerifier() ); MediaManager mm; media::MediaId id; Url url("http://www.google.com"); id = mm.open( url, ""); //mm.addVerifier( id, verifier); mm.attach(id); BOOST_CHECK_THROW( mm.provideFile(id, Pathname("/file-not-exists")), Exception ); mm.release(id); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/parser/000077500000000000000000000000001334444677500157565ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/CMakeLists.txt000066400000000000000000000003041334444677500205130ustar00rootroot00000000000000ADD_SUBDIRECTORY( yum ) ADD_SUBDIRECTORY( inifile ) ADD_SUBDIRECTORY(ws) ADD_TESTS( ProductFileReader ) ADD_TESTS( RepoFileReader ) ADD_TESTS( RepoindexFileReader ) ADD_TESTS( HistoryLogReader ) libzypp-17.7.0/tests/parser/HistoryLogReader_test.cc000066400000000000000000000034021334444677500225510ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/parser/HistoryLogReader.h" #include "zypp/parser/ParseException.h" using namespace zypp; namespace { bool ProcessData( const HistoryLogData::Ptr & ptr ) { DBG << ptr->date() << " | " << ptr << endl; return true; } } BOOST_AUTO_TEST_CASE(basic) { std::vector history; parser::HistoryLogReader parser( TESTS_SRC_DIR "/parser/HistoryLogReader_test.dat", parser::HistoryLogReader::Options(), [&history]( HistoryLogData::Ptr ptr )->bool { history.push_back( ptr ); return true; } ); BOOST_CHECK_EQUAL( parser.ignoreInvalidItems(), false ); BOOST_CHECK_THROW( parser.readAll(), parser::ParseException ); parser.setIgnoreInvalidItems( true ); BOOST_CHECK_EQUAL( parser.ignoreInvalidItems(), true ); history.clear(); parser.readAll(); BOOST_CHECK_EQUAL( history.size(), 8 ); BOOST_CHECK( dynamic_pointer_cast ( history[0] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[1] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[2] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[3] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[4] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[5] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[6] ) ); BOOST_CHECK( dynamic_pointer_cast ( history[7] ) ); BOOST_CHECK_EQUAL( (*history[1])[HistoryLogDataInstall::USERDATA_INDEX], "trans|ID" ); // properly (un)escaped? HistoryLogDataInstall::Ptr p = dynamic_pointer_cast( history[1] ); BOOST_CHECK_EQUAL( p->userdata(), "trans|ID" ); // properly (un)escaped? } libzypp-17.7.0/tests/parser/HistoryLogReader_test.dat000066400000000000000000000015371334444677500227430ustar00rootroot000000000000002009-09-29 07:24:46|radd |InstallationImage|file:/usr/src/packages/BUILD/openSUSE-images-11.2/gnome_cd/home/rpmdir| 2009-09-29 07:25:29|install|update-test-security|0-2.35|noarch|root@opensuse|InstallationImage|d99de2872270cbd436b0c10af85c286a1365a348|trans\|ID 2011-07-18 18:08:09|install|kernel-source|2.6.37.6-0.5.1|noarch||repo-update|7823612d9ca3de086c2cd4dca936f6a3f3e9313d| # 2009-09-29 07:25:30 filesystem.rpm installed ok # Additional rpm output: # 2009-09-29 07:47:59|remove |PolicyKit-doc|0.9-15.20|x86_64|root@opensuse|trans\|ID 2009-09-29 07:47:32|rremove|InstallationImage| 2010-06-01 16:11:17|remove |xchat-python|2.8.6-43.13|x86_64|2848:y2base| 2010-06-01 16:11:17|bad |unknown action field discard\|one field discard|to fields but bad date 2015-08-11 18:42:49|command|root@fibonacci|'/Local/ma/zypp/BUILD/zypper/src/zypper' 'in' '-f' 'xteddy'| libzypp-17.7.0/tests/parser/ProductFileReader_test.cc000066400000000000000000000033771334444677500227010ustar00rootroot00000000000000#include "TestSetup.h" #include //static TestSetup test( Arch_x86_64 ); // Must be the first test! BOOST_AUTO_TEST_CASE(basic) { parser::ProductFileData data; BOOST_CHECK( data.empty() ); data = parser::ProductFileReader::scanFile( TESTS_SRC_DIR "/parser/ProductFileReader_test.dat" ); BOOST_REQUIRE( ! data.empty() ); BOOST_CHECK_EQUAL( data.vendor(), "Novell" ); BOOST_CHECK_EQUAL( data.name(), "SUSE_SLES" ); BOOST_CHECK_EQUAL( data.edition(), "11-0" ); BOOST_CHECK_EQUAL( data.arch(), Arch_i586 ); BOOST_CHECK_EQUAL( data.productline(), "" ); BOOST_CHECK_EQUAL( data.registerTarget(), "sle-11-i586" ); BOOST_CHECK_EQUAL( data.registerRelease(), "whatever" ); BOOST_CHECK_EQUAL( data.registerFlavor(), "module" ); BOOST_CHECK_EQUAL( data.updaterepokey(), "A43242DKD" ); BOOST_REQUIRE_EQUAL( data.upgrades().size(), 2 ); BOOST_CHECK_EQUAL( data.upgrades()[0].name(), "openSUSE_11.1" ); BOOST_CHECK_EQUAL( data.upgrades()[0].summary(), "openSUSE 11.1" ); BOOST_CHECK_EQUAL( data.upgrades()[0].repository(), "http://download.opensuse.org/distribution/openSUSE/11.1" ); BOOST_CHECK_EQUAL( data.upgrades()[0].product(), "used on entreprise products" ); BOOST_CHECK_EQUAL( data.upgrades()[0].notify(), true ); BOOST_CHECK_EQUAL( data.upgrades()[0].status(), "stable" ); BOOST_CHECK_EQUAL( data.upgrades()[1].name(), "openSUSE_Factory" ); BOOST_CHECK_EQUAL( data.upgrades()[1].summary(), "openSUSE Factory" ); BOOST_CHECK_EQUAL( data.upgrades()[1].repository(), "http://download.opensuse.org/distribution/openSUSE/Factory" ); BOOST_CHECK_EQUAL( data.upgrades()[1].product(), "" ); BOOST_CHECK_EQUAL( data.upgrades()[1].notify(), false ); BOOST_CHECK_EQUAL( data.upgrades()[1].status(), "unstable" ); } libzypp-17.7.0/tests/parser/ProductFileReader_test.dat000066400000000000000000000061641334444677500230610ustar00rootroot00000000000000 Novell SUSE_SLES 11 0 i586 A43242DKD

SUSE Linux Enterprise Server This is the Server product of the SUSE Linux Enterprise edition. It is an alternative product for the Windows Server and other UNIX Operating Systems, providing Server functionality and interoperability with UNIX servers. This is the replacement product intended to sunset SUSE Linux Enterprise Server10 which was introduced in May of 2006 The SUSE Linux Enterprise Server 11 addresses very large enterprises as well as large enterprises and in some ways also medium, small, government and educational needs for a secure, stable, reliable and high-performance operating system platform. It is the core and base offering to provide a general-purpose infrastructure solution. This offering is engineered, tested and proven to handle mission-critical workloads in the data center. Developed and backed by Novell, only SUSE Linux Enterprise Server offers an open, scalable, high-performance data center solution that comes with application security, virtualization and Integrated systems management across a range of hardware architectures. SUSE Linux Enterprise Server is deployable as a general-purpose server or can be tailored to run a variety of specialized workloads, and it offers seamless interoperability with your existing data center infrastructure. http://www.novell.com/linux/releasenotes/i586/SUSE-SLES/11/release-notes-sles.rpm openSUSE_11.1 openSUSE 11.1 http://download.opensuse.org/distribution/openSUSE/11.1 used on entreprise products true stable openSUSE_Factory openSUSE Factory http://download.opensuse.org/distribution/openSUSE/Factory no unstable sle-11-i586 whatever module SLES false en_US suse suse/setup/descr SUSE_SLE
libzypp-17.7.0/tests/parser/RepoFileReader_test.cc000066400000000000000000000053531334444677500221620ustar00rootroot00000000000000#include #include #include #include #include "TestSetup.h" using std::stringstream; using std::string; using namespace zypp; static string suse_repo = "[factory-oss]\n" "name=factory-oss\n" "enabled=1\n" "autorefresh=0\n" "baseurl=http://download.opensuse.org/factory-tested/repo/oss/\n" "baseurl=http://download.opensuse.org/factory-tested/repo/oss/2\n" "plugin:spacewalk?channel=sle-manager-tools12-pool-x86_64-sp1&server=0\n" "http://download.opensuse.org/factory-tested/repo/=oss/4\n" "type=yast2\n" "keeppackages=0\n"; static string fedora_repo = "[fedora]\n" "name=Fedora $releasever - $basearch\n" "failovermethod=priority\n" "baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/\n" " http://download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/$basearch/os2/\n" "mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch\n" "mirrorlist=file:///etc/yum.repos.d/local.mirror\n" "enabled=1\n" "gpgcheck=1\n" "gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY-$releasever/\n" "gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-3\n" "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-4\n"; struct RepoCollector : private base::NonCopyable { bool collect( const RepoInfo &repo ) { repos.push_back(repo); return true; } RepoInfoList repos; }; // Must be the first test! BOOST_AUTO_TEST_CASE(read_repo_file) { { stringstream input(suse_repo); RepoCollector collector; parser::RepoFileReader parser( input, bind( &RepoCollector::collect, &collector, _1 ) ); BOOST_CHECK_EQUAL(1, collector.repos.size()); const RepoInfo & repo( collector.repos.front() ); BOOST_CHECK_EQUAL( 4, repo.baseUrlsSize() ); // cout << repo << endl; } // fedora { stringstream input(fedora_repo); RepoCollector collector; parser::RepoFileReader parser( input, bind( &RepoCollector::collect, &collector, _1 ) ); BOOST_REQUIRE_EQUAL(1, collector.repos.size()); RepoInfo repo = *collector.repos.begin(); // should have taken the first url if more are present BOOST_CHECK_EQUAL(Url("file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora"), repo.gpgKeyUrl()); BOOST_CHECK_EQUAL( 4, repo.gpgKeyUrlsSize() ); // cout << repo << endl; // cout << "------------------------------------------------------------" << endl; // repo.dumpOn( cout ) << endl; // cout << "------------------------------------------------------------" << endl; // repo.dumpAsIniOn( cout ) << endl; // cout << "------------------------------------------------------------" << endl; // repo.dumpAsXmlOn( cout ) << endl; } } libzypp-17.7.0/tests/parser/RepoindexFileReader_test.cc000066400000000000000000000042541334444677500232110ustar00rootroot00000000000000#include #include #include #include #include #include "TestSetup.h" using std::stringstream; using std::string; using namespace zypp; static string service = "" "" "" "" ""; struct RepoCollector : private base::NonCopyable { bool collect( const RepoInfo &repo ) { repos.push_back(repo); return true; } RepoInfoList repos; }; // Must be the first test! BOOST_AUTO_TEST_CASE(read_index_file) { { stringstream input(service); RepoCollector collector; parser::RepoindexFileReader parser( input, bind( &RepoCollector::collect, &collector, _1 ) ); BOOST_REQUIRE_EQUAL(3, collector.repos.size()); RepoInfo repo; repo = collector.repos.front(); BOOST_CHECK_EQUAL("Company's Foo", repo.name()); BOOST_CHECK_EQUAL("company-foo", repo.alias()); BOOST_CHECK_EQUAL("sle-11-i386", repo.targetDistribution()); BOOST_CHECK_EQUAL(20, repo.priority()); // "Repository is per default disabled" BOOST_CHECK(!repo.enabled()); // "Repository autorefresh is per default enabled" BOOST_CHECK(repo.autorefresh()); BOOST_CHECK_EQUAL("/repo/products/foo", repo.path()); collector.repos.pop_front( ); repo = collector.repos.front(); BOOST_CHECK_EQUAL("company-bar", repo.alias()); BOOST_CHECK_EQUAL("sle-11-i386", repo.targetDistribution()); // "Priority should be 99 when not explictly defined" BOOST_CHECK_EQUAL(99, repo.priority()); // "Repository is explicitly enabled" BOOST_CHECK(repo.enabled()); // "Repository autorefresh is explicitly disabled" BOOST_CHECK(!repo.autorefresh()); } } libzypp-17.7.0/tests/parser/inifile/000077500000000000000000000000001334444677500173755ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/inifile/CMakeLists.txt000066400000000000000000000000351334444677500221330ustar00rootroot00000000000000 ADD_TESTS(inidict iniparser)libzypp-17.7.0/tests/parser/inifile/data/000077500000000000000000000000001334444677500203065ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/inifile/data/1.ini000066400000000000000000000036121334444677500211510ustar00rootroot00000000000000[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=1 #released updates [update] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=1 #packages used/produced in the build but not released [addons] name=CentOS-$releasever - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=0 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=0 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=0 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=0libzypp-17.7.0/tests/parser/inifile/data/2.ini000066400000000000000000000001651334444677500211520ustar00rootroot00000000000000[base] name=foo name= foo name =foo name = foo [equal] name1==foo name1= =foo name2=f=oo name3=foo= [te]st] name=foo libzypp-17.7.0/tests/parser/inifile/inidict_test.cc000066400000000000000000000030201334444677500223610ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/InputStream.h" #include "zypp/parser/IniDict.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" using std::cout; using std::endl; using std::string; using std::map; using namespace zypp; using namespace zypp::parser; using namespace boost::unit_test; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/parser/inifile/data") BOOST_AUTO_TEST_CASE(ini_read) { InputStream is((DATADIR+"/1.ini")); IniDict dict(is); //MIL << dict["homedmacvicar"]["type"] << endl; for ( IniDict::section_const_iterator it = dict.sectionsBegin(); it != dict.sectionsEnd(); ++it ) { MIL << (*it) << endl; for ( IniDict::entry_const_iterator it2 = dict.entriesBegin(*it); it2 != dict.entriesEnd(*it); ++it2 ) { MIL << " - " << (*it2).first << " | " << (*it2).second << endl; } } BOOST_CHECK( dict.hasSection("addons") ); BOOST_CHECK( !dict.hasSection("uhlala") ); BOOST_CHECK( dict.hasEntry("contrib", "name") ); BOOST_CHECK( !dict.hasEntry("foo", "bar") ); } BOOST_AUTO_TEST_CASE(ini_read2) { InputStream is((DATADIR+"/2.ini")); IniDict dict(is); BOOST_CHECK( find( dict.sectionsBegin(), dict.sectionsEnd(), "base" ) != dict.sectionsEnd() ); //IniDict::entry_const_iterator i = find( dict.entriesBegin("base"), dict.entriesEnd("base"), "name"); //BOOST_CHECK( i != dict.entriesEnd("base") ); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/parser/inifile/iniparser_test.cc000066400000000000000000000041651334444677500227450ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/InputStream.h" #include "zypp/parser/IniParser.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" using std::cout; using std::endl; using std::string; using namespace zypp; using namespace zypp::parser; using namespace boost::unit_test; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/parser/inifile/data") class IniTest : public IniParser { virtual void consume( const std::string §ion ) { MIL << section << endl; } virtual void consume( const std::string §ion, const std::string &key, const std::string &value ) { MIL << "'" << section << "'" << " | " << "'" << key << "'" << " | " << "'" << value << "'" << endl; if (section == "base" && key == "gpgcheck") BOOST_CHECK_EQUAL(value, "1"); } }; class WithSpacesTest : public IniParser { virtual void consume( const std::string §ion ) { MIL << section << endl; BOOST_CHECK(section == "base" || section == "equal" || section == "te]st"); } virtual void consume( const std::string §ion, const std::string &key, const std::string &value ) { MIL << "'" << section << "'" << " | " << "'" << key << "'" << " | " << "'" << value << "'" << endl; if ( section == "base") { if ( key == "name" ) BOOST_CHECK_EQUAL( value, "foo" ); } else if ( section == "equal" ) { if ( key == "name1" ) BOOST_CHECK_EQUAL( value, "=foo" ); else if ( key == "name2" ) BOOST_CHECK_EQUAL( value, "f=oo" ); else if ( key == "name3" ) BOOST_CHECK_EQUAL( value, "foo=" ); else { cout << "'" << section << "'" << " | " << "'" << key << "'" << " | " << "'" << value << "'" << endl; BOOST_CHECK_MESSAGE( false, "Unhandled key" ); } } } }; BOOST_AUTO_TEST_CASE(ini_read) { InputStream is((DATADIR+"/1.ini")); IniTest parser; parser.parse(is); } BOOST_AUTO_TEST_CASE(ini_spaces_test) { InputStream is((DATADIR+"/2.ini")); WithSpacesTest parser; parser.parse(is); } libzypp-17.7.0/tests/parser/ws/000077500000000000000000000000001334444677500164075ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/ws/CMakeLists.txt000066400000000000000000000000421334444677500211430ustar00rootroot00000000000000ADD_TESTS(WebpinResultFileReader) libzypp-17.7.0/tests/parser/ws/WebpinResultFileReader_test.cc000066400000000000000000000032631334444677500243270ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/parser/ws/WebpinResultFileReader.h" #include "zypp/ws/WebpinResult.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" using namespace std; using namespace zypp; using namespace boost::unit_test; using namespace zypp::ws; using namespace zypp::parser::ws; #define DATADIR (Pathname(TESTS_SRC_DIR) + "parser/ws/data") class Collector { public: Collector() {} bool callback( const WebpinResult &result ) { items.push_back(result); //items.push_back(loc); //cout << items.size() << endl; return true; } vector items; }; BOOST_AUTO_TEST_CASE(result_read) { Collector collect; Pathname file; // this testcase represents this search: // http://api.opensuse-community.org/searchservice/Search/Simple/openSUSE_103/kopete file = DATADIR + "/search-kopete.xml"; WebpinResultFileReader reader( file, bind( &Collector::callback, &collect, _1)); BOOST_CHECK_EQUAL( collect.items.size(), 17); WebpinResult first = collect.items[0]; BOOST_CHECK_EQUAL( first.name(), "kopete-otr"); BOOST_CHECK_EQUAL( first.edition(), "0.6"); BOOST_CHECK_EQUAL( first.repositoryUrl(), Url("http://download.opensuse.org/repositories/home:/burnickl_andreas/openSUSE_10.3")); BOOST_CHECK_EQUAL( first.distribution(), "openSUSE_103"); BOOST_CHECK_EQUAL( first.checksum(), CheckSum::sha1("2a4d9e95f87abe16c28e4aefa0b3a0ae52220429")); BOOST_CHECK_EQUAL( first.priority(), 0); BOOST_CHECK_EQUAL( first.summary(), "OTR Plugin for Kopete"); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/parser/ws/data/000077500000000000000000000000001334444677500173205ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/ws/data/search-kopete.xml000066400000000000000000000162061334444677500226010ustar00rootroot00000000000000 kopete-otr 0.6 http://download.opensuse.org/repositories/home:/burnickl_andreas/openSUSE_10.3 src openSUSE_103 10 2a4d9e95f87abe16c28e4aefa0b3a0ae52220429 OTR Plugin for Kopete kopete-otr 0.7 http://download.opensuse.org/repositories/home:/burnickl_andreas/openSUSE_10.3 src openSUSE_103 10 b413eb994360c8285f021e69aab2fa006adfcd1e OTR Plugin for Kopete kopete-floor 0.1.0 http://download.opensuse.org/repositories/home:/dmacvicar/openSUSE_10.3 src openSUSE_103 10 3c2a1f903106e4f804b811b8f22cb407225a93dd Send your Kopete status to SUSE Floor tool kopete-anyremote 0.4 http://download.opensuse.org/repositories/home:/dsbhayangkara/openSUSE_10.3 src openSUSE_103 10 f6d0db3322d75ff51628d59897d5a895d00b2e95 anyRemote Plugin for Kopete kopete-anyremote-debuginfo 0.4 http://download.opensuse.org/repositories/home:/dsbhayangkara/openSUSE_10.3 i586 openSUSE_103 10 6716db855c2e6f13436b1f1bc3ac2d9c807da8f8 Debug information for package kopete-anyremote kopete-anyremote 0.4 http://download.opensuse.org/repositories/home:/dsbhayangkara/openSUSE_10.3_Update src openSUSE_103 10 8d5210aa7cd048ff572edf5c68687ddc06e08cda anyRemote Plugin for Kopete kopete-anyremote-debuginfo 0.4 http://download.opensuse.org/repositories/home:/dsbhayangkara/openSUSE_10.3_Update i586 openSUSE_103 10 87a6b154f660b8eb91539f932c7567fabd2bf914 Debug information for package kopete-anyremote extragear-network-kopete 4.0.81.svn816196 http://download.opensuse.org/repositories/KDE:/KDE4:/UNSTABLE:/Extra-Apps/openSUSE_10.3 i586 openSUSE_103 10 7297c1ab95569bc2db635ea046390d3eba43f510 Instant Messenger kopete-anyremote 0.4 http://download.opensuse.org/repositories/KDE:/Community/openSUSE_10.3 src openSUSE_103 10 edb649f5ff1908cbc5fb33c96c19994ca6375e90 anyRemote Plugin for Kopete kopete-otr 0.6 http://download.opensuse.org/repositories/KDE:/Community/openSUSE_10.3 src openSUSE_103 10 48f011d09d2f5d06d570383106f7ea630a04f704 OTR Plugin for Kopete kopete-anyremote-debuginfo 0.4 http://download.opensuse.org/repositories/KDE:/Community/openSUSE_10.3 i586 openSUSE_103 10 ba9a0a3e438b7a032514db2abbe1235e5511fdc9 Debug information for package kopete-anyremote kde4-kopete-devel 4.0.83 http://download.opensuse.org/repositories/KDE:/KDE4:/UNSTABLE:/Desktop/openSUSE_10.3 i586 openSUSE_103 10 a42adacc32abbb0af41620f1aed1cb071ca20406 Instant Messenger - Development Files kde4-kopete 4.0.83 http://download.opensuse.org/repositories/KDE:/KDE4:/UNSTABLE:/Desktop/openSUSE_10.3 i586 openSUSE_103 10 e6a3481e960ebd4400fc6783774a1553ffc83f13 Instant Messenger kde4-kopete 4.0.84 http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_10.3 i586 openSUSE_103 10 11f952a8c8f72fa96507509a9c15e1a322729f7d Instant Messenger kde4-kopete-devel 4.0.84 http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_10.3 i586 openSUSE_103 10 f213abb894d16d76c3598a54bc55ca58e88c1483 Instant Messenger - Development Files kde4-kopete-devel 4.0.4 http://download.opensuse.org/repositories/KDE:/KDE4:/STABLE:/Desktop/openSUSE_10.3 i586 openSUSE_103 10 71b6461f35fe255cb70881d415577a5cd573e096 Instant Messenger - Development Files kde4-kopete 4.0.4 http://download.opensuse.org/repositories/KDE:/KDE4:/STABLE:/Desktop/openSUSE_10.3 i586 openSUSE_103 10 c761db2406163ab025cfb4005fe5b05e83bbb78a Instant Messenger libzypp-17.7.0/tests/parser/yum/000077500000000000000000000000001334444677500165705ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/yum/CMakeLists.txt000066400000000000000000000000561334444677500213310ustar00rootroot00000000000000ADD_TESTS(RepomdFileReader PatchesFileReader) libzypp-17.7.0/tests/parser/yum/PatchesFileReader_test.cc000066400000000000000000000043261334444677500234550ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/OnMediaLocation.h" #include "zypp/parser/yum/PatchesFileReader.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" using namespace std; using namespace zypp; using namespace boost::unit_test; using namespace zypp::parser::yum; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/parser/yum/data") class Collector { public: Collector() {} bool callback( const OnMediaLocation &loc, const string &id ) { items.push_back( make_pair( id, loc ) ); //items.push_back(loc); //cout << items.size() << endl; return true; } vector > items; //vector items; }; BOOST_AUTO_TEST_CASE(patches_read_test) { list entries; if ( filesystem::readdir( entries, DATADIR, false ) != 0 ) ZYPP_THROW(Exception("failed to read directory")); for ( list::const_iterator it = entries.begin(); it != entries.end(); ++it ) { Pathname file = *it; //cout << file.basename().substr(0, 7) << " " << file.extension() << endl; if ( ( file.basename().substr(0, 7) == "patches" ) && (file.extension() == ".xml" ) ) { //cout << *it << endl; Collector collect; PatchesFileReader( file, bind( &Collector::callback, &collect, _1, _2 )); std::ifstream ifs( file.extend(".solution").asString().c_str() ); cout << "Comparing to " << file.extend(".solution") << endl; unsigned int count = 0; while ( ifs && ! ifs.eof() && count < collect.items.size() ) { string id; string checksum_type; string checksum; string loc; getline(ifs, id); BOOST_CHECK_EQUAL( collect.items[count].first, id); getline(ifs, checksum_type); getline(ifs, checksum); BOOST_CHECK_EQUAL( collect.items[count].second.checksum(), CheckSum(checksum_type, checksum) ); getline(ifs, loc); BOOST_CHECK_EQUAL( collect.items[count].second.filename(), Pathname(loc) ); count++; } BOOST_CHECK_EQUAL( collect.items.size(), count ); } } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/parser/yum/RepomdFileReader_test.cc000066400000000000000000000042041334444677500233070ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/parser/yum/RepomdFileReader.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" using namespace std; using namespace zypp; using namespace boost::unit_test; using namespace zypp::parser::yum; using repo::yum::ResourceType; #define DATADIR (Pathname(TESTS_SRC_DIR) + "parser/yum/data") class Collector { public: Collector() {} bool callback( const OnMediaLocation &loc, const ResourceType &t ) { items.push_back( make_pair( t, loc ) ); //items.push_back(loc); //cout << items.size() << endl; return true; } vector > items; //vector items; }; BOOST_AUTO_TEST_CASE(repomd_read) { list entries; if ( filesystem::readdir( entries, DATADIR, false ) != 0 ) ZYPP_THROW(Exception("failed to read directory")); for ( list::const_iterator it = entries.begin(); it != entries.end(); ++it ) { Pathname file = *it; if ( ( file.basename().substr(0, 6) == "repomd" ) && (file.extension() == ".xml" ) ) { cout << *it << endl; Collector collect; RepomdFileReader( file, RepomdFileReader::ProcessResource(bind( &Collector::callback, &collect, _1, _2 )) ); std::ifstream ifs( file.extend(".solution").asString().c_str() ); unsigned int count = 0; while ( ifs && ! ifs.eof() && count < collect.items.size() ) { string dtype; string checksum_type; string checksum; string loc; getline(ifs, dtype); BOOST_CHECK_EQUAL( collect.items[count].first, ResourceType(dtype)); getline(ifs, checksum_type); getline(ifs, checksum); BOOST_CHECK_EQUAL( collect.items[count].second.checksum(), CheckSum(checksum_type, checksum) ); getline(ifs, loc); BOOST_CHECK_EQUAL( collect.items[count].second.filename(), Pathname(loc) ); count++; } BOOST_CHECK_EQUAL( collect.items.size(), count ); } } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/parser/yum/data/000077500000000000000000000000001334444677500175015ustar00rootroot00000000000000libzypp-17.7.0/tests/parser/yum/data/README000066400000000000000000000001711334444677500203600ustar00rootroot00000000000000to generate a solution, take the patches.xml, remove the namespace and do: xsltproc patches.xsl patches2.xml | html2tex libzypp-17.7.0/tests/parser/yum/data/patch-fetchmsttfonts.sh-4347.xml000066400000000000000000000255241334444677500254130ustar00rootroot00000000000000 fetchmsttfonts.sh Download Microsoft(r) TrueType Core Fonts Download Microsoft(r) TrueType Core Fonts For legal reasons we can't include the Microsoft(r) TrueType Core Fonts in our product. This patch downloads these fonts and installs them on your system. Please note that about 4 MByte data are downloaded therefore. License for the fonts will be installed as /usr/share/doc/corefonts/EULA.html. Aus rechtlichen Gründen können wir leider die TrueType Core Fonts von Microsoft(r) auf unserem Produkt nicht mitliefern. Dieser Patch lädt diese Fonts herunter und installiert diese auf Ihrem System. Beachten Sie bitte, dass dazu in etwa 4 MByte an Daten heruntergeladen werden. Die Lizenz für die Fonts wird unter /usr/share/doc/corefonts/EULA.html abgelegt. optional END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE IMPORTANT-READ CAREFULLY: This Microsoft End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation for the Microsoft software accompanying this EULA, which includes computer software and may include associated media, printed materials, and "on-line" or electronic documentation ("SOFTWARE PRODUCT" or "SOFTWARE"). By exercising your rights to make and use copies of the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, you may not use the SOFTWARE PRODUCT. SOFTWARE PRODUCT LICENSE The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold. 1. GRANT OF LICENSE. This EULA grants you the following rights: * Installation and Use. You may install and use an unlimited number of copies of the SOFTWARE PRODUCT. * Reproduction and Distribution. You may reproduce and distribute an unlimited number of copies of the SOFTWARE PRODUCT; provided that each copy shall be a true and complete copy, including all copyright and trademark notices, and shall be accompanied by a copy of this EULA. Copies of the SOFTWARE PRODUCT may not be distributed for profit either on a standalone basis or included as part of your own product. 2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS. * Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation. * Restrictions on Alteration. You may not rename, edit or create any derivative works from the SOFTWARE PRODUCT, other than subsetting when embedding them in documents. * Software Transfer. You may permanently transfer all of your rights under this EULA, provided the recipient agrees to the terms of this EULA. * Termination. Without prejudice to any other rights, Microsoft may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts. 3. COPYRIGHT. All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, text, and "applets" incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by Microsoft or its suppliers. The SOFTWARE PRODUCT is protected by copyright laws and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material. 4. U.S. GOVERNMENT RESTRICTED RIGHTS. The SOFTWARE PRODUCT and documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Microsoft Corporation/One Microsoft Way/Redmond, WA 98052-6399. LIMITED WARRANTY NO WARRANTIES. Microsoft expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or noninfringement. The entire risk arising out of use or performance of the SOFTWARE PRODUCT remains with you. NO LIABILITY FOR CONSEQUENTIAL DAMAGES. In no event shall Microsoft or its suppliers be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this Microsoft product, even if Microsoft has been advised of the possibility of such damages. Because some states/jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you. MISCELLANEOUS If you acquired this product in the United States, this EULA is governed by the laws of the State of Washington. If this product was acquired outside the United States, then local laws may apply. Should you have any questions concerning this EULA, or if you desire to contact Microsoft for any reason, please contact the Microsoft subsidiary serving your country, or write: Microsoft Sales Information Center/One Microsoft Way/ Redmond, WA 98052-6399. libzypp-17.7.0/tests/parser/yum/data/patches-1.xml000066400000000000000000001011601334444677500220070ustar00rootroot00000000000000 6b72b4f3617d0d51af28399c0f5e0af401440245 b02ba598d8ed5f8a31859d3b34e72e1ddecbe894 321ee41de68be4e83dfb74559c14300a59b85ccf ec9e8a3f3ce2588cecd84ab95ec910d41db5d74b d803372cd5d844ee01ab6fb3d1b4332391fa1206 c2de5dd35ec2dcccc118d9d7f539e768dfd5ec50 7fb791963114836621873280c7edd58887b91784 28f0c33aa4a34830a4b7b8a795db609bfd3d7531 98c2d98fe33439563047eef97c6db065c8361bbe f449fabf0a7bedfc9f561ea5d04e160c521a5186 e1dd5a93ce9bb796348557d7d8e16ef54fb8d90d a73445a3630084c867d63868d9d064625a84ea6d 792bad7440845613b608c771c2d948607e02759d de603b359e148a7666b5b695b76602c4689ff193 6dff2c1367613b7eae36db090233bfbf31a92920 3266d24fa2fb7aeb4ba303ccd77fbe8b27f75ad0 394bec89d3f5f976a9f7ae074a0e4c0d5582139a 6630055daac876bcb0a6ebf36f63d28341b1ff6e d3de77e29165bdbce88310a6ce9f97f3a5368377 905a98399c20efb91592d2767ec187823c7b154d 5314e6c2d4e21a38dd2ea05ee0495d7dd27f0931 329b6083dfe59ddb7d50cb9e92686eb7ecc48d6d b5ec61bcf901f4270fc3ba6a18926c20102c94c9 c38d7746f8aca8d40347879bfba5d977ca8fc03f c1dca99b03a2b012c141a64c8fcc494d957baed2 f239f615760d15515bd4f0316cc99e40d25a6117 f30517b5083e9bc007adf9cc974a36fc7bba3f0b 24769a5bbd9e57cd59806b186088d5f0dffa5e30 6c2aa38c513f7eeda2b38555182b8200c08f6468 c0b54062cb5b16cbb18d383beb721c60b2a36f72 640a5b7ca790a3becc9c26d8434adfac560a14c5 94c690e13540511db05ee397e9ab5fc9905b086b fb1786ca30124e82b24e57b694a58da9f920e6b3 bb6aea44ad2e2ddb0f50842b15f791b7c0a0b346 d9ba43f21238b71a7b8cfb6d9256e404cffb7cc0 42e904686825e904752238b85085771ee51965c7 cd88e95ae02706069fe6f3031178bf26e9e06d3a ab7741ef2411c11a7ec941fc8736feebfca73398 2f8c1cd5d147c89b06c0898d4392f1196098236f a26f9f36ed0a0f6a45cb5369234ff44d6c535310 61a24339218f1fd480085fe0e3f754baa8820cb3 c37bf9a8ff3810e2c9a674bd9aadfed24f8c2ab2 2cdfac93ac338ccf87abe8049f13bb415428a279 9adf70721a91e7666c40c45c1c2270bd673d2ac4 d0a21646dc9d1c244e7e35888a0fb52aaeb1b5e2 8daf1728afb47779fd28e0021ea6ff55f18f1149 a515c1a96ac1b55f50852cfda93a49004ce4c79a a3f5b8927b7f1f47f347e7ee3ab821995dca00b7 4fdf8c67eaa488edbe668ead3d995caa38a1936b 5209e7b0a7f89ec7c225de065d4cbc4fbefcbddb 669837ce13f07df59ac79ce6201c176342ed27c4 a41806bf5d57c36825ad832be3d0f13d1695d70a bdbbba1841bebd9822458f3a3fb1c88141e78281 1b84ea4aa922b21a7039330c0fdbf2775dd13444 c7266496955cee3242ae100ffd731ce4323d6b89 883f737c6ecedd05670bad4784a37e2c67a8c5da 538c771158fa860793ed285990641b1ed04330b5 32ae23cb16bff2f8e6ec4ba168e6a75d541efc8c cea742686fabc65af02a9dd7bea89b39cbdb62c1 8f021c3fec51df6155c44276b87260bbf074c0a2 73e3b82edf6537e759d3c7fe103654baad9155cf 9b83d8d408138a521c7926be0c569047eb5d866a 837cb40fa331f256281577e8ca81fe73b9c27e2a 050a31137f1ff1ca986c27addaf894deaa10b6ad cd51f150dda049a82acca2ef4b0524465947ddc2 ec3095ea0c8b996b49061d79f7afb780ab4ea84b c53aeb36ef68f4f1b6e6ac0f38df63c22f22359d 31c74fc5d4ba42bf3301fa95b806caa978659127 7cbcd6c1064568aeb0e523d2587336e742e44fcb 4f331f6ea3e5c5a90f66a871162114ca94f92f76 b5a4c65f2356613b4de6ad1bc2dd0582e77b0ee6 18e4e361c7688a57f7b7963c359fee4f58d29b08 f812f28e10039b5bfd249e3902b905e92a7eb769 90c4516d8073322a05f4235dbe1f7c4770c6e4e0 7d9f7a7fdd96843f5d962aef984cc0c5c2534f30 fffd63b332907c46b926499e27b6ec0ad9025ddb b0bbd764da5ec2651bf030e7051d045341ddbdd7 5e2c95f36ceb9c7d94c4a2df8ec60aaf36dde810 11a15f477e35a5e4879a8883074c13e6ab321141 c71c5d298bf5b11fcc0c0865b1302a7ba9970c0c fb916bb899aa6d2b1ae8d211ee84ceb0a66f1fd8 558c89fe1d04efa2d7c5988be9344376f2eacace 18473edb5c4b6853aea94db3883bcfe496b5b6ee 4c3d0446ffd36ce86b40da43135913a18349ef44 188b82cfb54dd61f0fe0e5beea054d5a9591e0a5 85a08c9bc4eebac24854a9eb7da257a3fe8f5b6d e711370f446cf3538fbaf64c9faaf0eadaedb580 16921f0179c7c3dcb504b9ffb82abd32e84086ac 147a7b5f084395bd427c273ba8f25f312cc87193 afd07ae38e0585e615022a7df3cd469c2c99fdbb 5b9d9747bffc3368ea2f7c8c7b3ff8e0cc4605f7 1b1c1fdb9ad132cd6504c8b437cfe519bc9c0dfa 2af5b888f4f4c9b9be8b9bc2aaae02efd436b924 664ef6d8c867824f20b15a9af4d2957fd79897bd ad29afc8f5dd7ca1f4faa4a2aaed644c80d844b6 8cc33adb78b9fccccc7f2fc03d5df13f8a79eae5 ccece044c2ba608c8233d70a4aa68c466c1862f1 339f1a841955652ccaccd9c9e936c21abe85a2f2 3ef0e4f08055c2f458c0efa5dfdd4d7aee384122 67602c57de3f98ffd2c7434b6952f79481feceb8 4da7e1958d56142f48d99b9ab1b16425aeb0cd96 940c331de3e40be9f570e012b8ca9bbab6d594d2 da26f814db1c2f04cd8fc27495aecdbd66f73daf 299f0dff3447555cea60a63fdf97e81e1bd56096 a7a501a1465dfcb3e125d14c1a67efd2638be166 10b87459f9209a43097bebd31f9ec8cff4354c11 8d0d0b963c5fa85c92d5a9b5c86c88063b2faf8e 5f43e01206494f0d0cbab846bfbb157285e22efc 5e86626239c4798708e7d2432708cf98d6a001d2 5af58df93d8f36428726d0cf55fc5bb6a18a8bfd 924e7f989e3d6f159e717e2d76b21de572ce7ec2 93a54883e5b9170839fc81a72c534f76e7987c19 64a57f29d835e46f7f00e939d4b505cb546d0654 88ee8256ac3875e2b087ab9723bb13f071f9de73 115f31bcb61f37f264daa4b0ef8220816be05de7 c5a5fd01f5266d3f30fe33b5fc1679b35af3d4d4 b6654a37408c21d66e60cf7a78a1cddb991b797a fd76c123487f884cf10b161c87afe5b7bc9f05f8 d3533c47354977c9f821eb4e579c43ea919d4488 06f48c215e805213e339fa581670fb35e2151786 b5217b10a1a3e513085665d994dded954a72e884 e2d31e95095a1c7dd242c577f3a394a39d7e75be b6f7e30d0d8f3e699e8593a178b5fd63c865ad0e 7ebc8745836d63bdfee712bca5c71ba328877047 4eb206f1dba689554bc3e113fd87ad2a4fcdbf78 505cc81dc924efb58154806700b1d261cc33fbb9 3d960c76d7dd38393c631c63212f0a8c4f08ad98 b31ced09fece6d2f9fad37653acfda9eb9e7ba2b 26a5b6e1a3c77afa7fd77171bcbef2d78f7df11f 420d992e8b4436cc7ebc0609183ba040db340dc5 bf0b411e4eb5494a27ebef8d5b9cd923da4fe2c8 19126ca4e55852b98ffa69c6c3fcff12743af49c 0bbcdeab9294272a677f9b4a7b57e13701244010 df03ccdfcb0f188ac3072c5086ab86b425a66f8e 8ffefa033ac19a70938a7af71854184d6b902e45 df121b6b7cc82715a4544f491a0104b50a28eb20 f34eb5a2f4399578c78e6dca5dd165077787c806 da442e32fe4401897261051bf817e1a029e804c3 ff002a87486fbd2c68b445e58b6ac0d307e8dbad fd8198e09f073515c67cf90a879ff57bfde0cfa9 2453275e874a7d65c9f21cc50885f50202d617bf fad24b42e3d7d8c35e410017ca85dd375f2b7f1d e74c7b27498161c9ba056869ba1813658f4ef4e0 36f9b9e6ff739fe7d82a58b59fcb74be6581a752 c1e569e948b46ddcd33369c9479e6ad92fb8c7ec 3dd423deeb41c58b11f54184d59367d152d78f24 678cae267889c434cbdd81654066244270a341b6 9539aa93b99854e21cc69248bd82249f75a6f6e0 fedf719a3be03d6c93fc04f78b50ce7be1465606 b95d82b3c1e22c1ce2ec2ea96ffb9ba94e1a2adb be5018a378fbce22ad2f1f94266f251dfb0fecc2 93496c003d8a1565e88fa37bc28b62b685b86223 40b9fd23e3eb4141d8b28794c40aeebdee7dcc1d 7d6301a829eda6ff7ab006302c38943693defd44 c338bfb439e94dc27774a76d860285577b9ade19 eb0c412124838a4ff2ff884642a88fac1578da8f 95ce884347ae5fb4f8b030f9e302f75dec58cefd 91dba1fffdd033eb289fec17dd2a288658dbb586 069398c5d7b94dc32c6102243b478584a76b84bb 2c534ad1e2a36b668f7d22f37b5e0457f5892359 bce7d390d3db0bdedf63304a9b739645e7c10eb8 5d0fa6b2d1a729ed86d6bdc54bb3eeabb1bfea38 c1e7abcd4dc9ffda6f97dc8c98e68d36f0fa51e5 ff9e274c83ef488d9eed486c7eae9f2952d4c29e 2dd405d9651c0f9b87412b07488d4b03796390e9 f4b8a55a8b737a513c4531487888ff231126cce9 5413228a54cf99ce20ad08e6917605f7a9ceeabe a17b3f3406caf33fb9160d2464b0945bc2b0a8ad 2ec2f7e3abf84e60ce2a2e3935e3373242f97d27 b83c95c8f2337d42ea1b8b1e606ca83c8acc17b8 89d9e49eb0c49803ab2bd5d51570f8e688f93196 9501fa94de1e6e9a896cc2e29d66424e17d429e4 882e3dad4edfc0e2e923d4fc49c78341acea368d 03671597239a76a8716da20528d4a71d24e44825 f6a3e069f70f9250d7ae0c5f7497999714552ddc a7a9803370986ec4de2913c416db11a0c207d8a1 4b3f9bbb0f413a4b70392219f501ad782e5c647a 7f65de9106151c59e1b91eab1c195e5765445894 1c801d3a719e843a50f43faceff0bd2bf77f3e82 06cd8e287e5cc94bf936726e9a8540283ad42af5 555d3279e2485cae5feb3a7c57b0ee0f16ae8ba6 cd767b5b8690e08ec5b1f231641cd6a4a7d1dec4 24e57eaa5bc4c6080577f7555b9b28ba30c298e6 262095e2c3ad96a3c892c0e06baad6c995ac52b9 beba36db67a885e7a43a2b8d0f5b6a1e394fad39 079e72f31dcd4e20a786501b6670d581480cb249 b7bf854b78d3ba9488e4a9c46bf48d6e7501ead5 8dd539e1cb8196a3bde56ec0e5d9717bf74d3696 f96cebcb74f4e9067976240f8da5dff3dbc954e3 5d11f1e0772a8eae3d0276c2fc0c36fd024ff969 libzypp-17.7.0/tests/parser/yum/data/patches-1.xml.solution000066400000000000000000000427361334444677500236770ustar00rootroot00000000000000fetchmsttfonts.sh-2333 sha 6b72b4f3617d0d51af28399c0f5e0af401440245 repodata/patch-fetchmsttfonts.sh-2333.xml glabels-2348 sha b02ba598d8ed5f8a31859d3b34e72e1ddecbe894 repodata/patch-glabels-2348.xml openssl-2349 sha 321ee41de68be4e83dfb74559c14300a59b85ccf repodata/patch-openssl-2349.xml gv-2350 sha ec9e8a3f3ce2588cecd84ab95ec910d41db5d74b repodata/patch-gv-2350.xml tar-2351 sha d803372cd5d844ee01ab6fb3d1b4332391fa1206 repodata/patch-tar-2351.xml flash-player-2359 sha c2de5dd35ec2dcccc118d9d7f539e768dfd5ec50 repodata/patch-flash-player-2359.xml lineak_kde-2361 sha 7fb791963114836621873280c7edd58887b91784 repodata/patch-lineak_kde-2361.xml evince-2362 sha 28f0c33aa4a34830a4b7b8a795db609bfd3d7531 repodata/patch-evince-2362.xml capi4hylafax-2366 sha 98c2d98fe33439563047eef97c6db065c8361bbe repodata/patch-capi4hylafax-2366.xml resmgr-2371 sha f449fabf0a7bedfc9f561ea5d04e160c521a5186 repodata/patch-resmgr-2371.xml release-notes-2374 sha e1dd5a93ce9bb796348557d7d8e16ef54fb8d90d repodata/patch-release-notes-2374.xml privoxy-2375 sha a73445a3630084c867d63868d9d064625a84ea6d repodata/patch-privoxy-2375.xml kdeaddons3-konqueror-2383 sha 792bad7440845613b608c771c2d948607e02759d repodata/patch-kdeaddons3-konqueror-2383.xml krusader-2386 sha de603b359e148a7666b5b695b76602c4689ff193 repodata/patch-krusader-2386.xml gdm-2387 sha 6dff2c1367613b7eae36db090233bfbf31a92920 repodata/patch-gdm-2387.xml gpg-2388 sha 3266d24fa2fb7aeb4ba303ccd77fbe8b27f75ad0 repodata/patch-gpg-2388.xml clamav-2391 sha 394bec89d3f5f976a9f7ae074a0e4c0d5582139a repodata/patch-clamav-2391.xml mono-core-2392 sha 6630055daac876bcb0a6ebf36f63d28341b1ff6e repodata/patch-mono-core-2392.xml sysstat-2401 sha d3de77e29165bdbce88310a6ce9f97f3a5368377 repodata/patch-sysstat-2401.xml xorg-x11-server-2403 sha 905a98399c20efb91592d2767ec187823c7b154d repodata/patch-xorg-x11-server-2403.xml dazuko-2404 sha 5314e6c2d4e21a38dd2ea05ee0495d7dd27f0931 repodata/patch-dazuko-2404.xml cups-2406 sha 329b6083dfe59ddb7d50cb9e92686eb7ecc48d6d repodata/patch-cups-2406.xml squirrelmail-2409 sha b5ec61bcf901f4270fc3ba6a18926c20102c94c9 repodata/patch-squirrelmail-2409.xml wxGTK-2411 sha c38d7746f8aca8d40347879bfba5d977ca8fc03f repodata/patch-wxGTK-2411.xml ImageMagick-2413 sha c1dca99b03a2b012c141a64c8fcc494d957baed2 repodata/patch-ImageMagick-2413.xml squirrelmail-2417 sha f239f615760d15515bd4f0316cc99e40d25a6117 repodata/patch-squirrelmail-2417.xml MozillaFirefox-2418 sha f30517b5083e9bc007adf9cc974a36fc7bba3f0b repodata/patch-MozillaFirefox-2418.xml liboil-2419 sha 24769a5bbd9e57cd59806b186088d5f0dffa5e30 repodata/patch-liboil-2419.xml MozillaThunderbird-2421 sha 6c2aa38c513f7eeda2b38555182b8200c08f6468 repodata/patch-MozillaThunderbird-2421.xml pm-utils-2422 sha c0b54062cb5b16cbb18d383beb721c60b2a36f72 repodata/patch-pm-utils-2422.xml sysvinit-2424 sha 640a5b7ca790a3becc9c26d8434adfac560a14c5 repodata/patch-sysvinit-2424.xml java-1_4_2-sun-2425 sha 94c690e13540511db05ee397e9ab5fc9905b086b repodata/patch-java-1_4_2-sun-2425.xml java-1_5_0-sun-2427 sha fb1786ca30124e82b24e57b694a58da9f920e6b3 repodata/patch-java-1_5_0-sun-2427.xml cups-2430 sha bb6aea44ad2e2ddb0f50842b15f791b7c0a0b346 repodata/patch-cups-2430.xml w3m-2433 sha d9ba43f21238b71a7b8cfb6d9256e404cffb7cc0 repodata/patch-w3m-2433.xml unison-2436 sha 42e904686825e904752238b85085771ee51965c7 repodata/patch-unison-2436.xml lvm2-2438 sha cd88e95ae02706069fe6f3031178bf26e9e06d3a repodata/patch-lvm2-2438.xml yast2-sudo-2441 sha ab7741ef2411c11a7ec941fc8736feebfca73398 repodata/patch-yast2-sudo-2441.xml krb5-2442 sha 2f8c1cd5d147c89b06c0898d4392f1196098236f repodata/patch-krb5-2442.xml xorg-x11-server-2444 sha a26f9f36ed0a0f6a45cb5369234ff44d6c535310 repodata/patch-xorg-x11-server-2444.xml sax2-2445 sha 61a24339218f1fd480085fe0e3f754baa8820cb3 repodata/patch-sax2-2445.xml python-2446 sha c37bf9a8ff3810e2c9a674bd9aadfed24f8c2ab2 repodata/patch-python-2446.xml cacti-2447 sha 2cdfac93ac338ccf87abe8049f13bb415428a279 repodata/patch-cacti-2447.xml kdelibs3-2448 sha 9adf70721a91e7666c40c45c1c2270bd673d2ac4 repodata/patch-kdelibs3-2448.xml kdeutils3-extra-2450 sha d0a21646dc9d1c244e7e35888a0fb52aaeb1b5e2 repodata/patch-kdeutils3-extra-2450.xml jarnal-2451 sha 8daf1728afb47779fd28e0021ea6ff55f18f1149 repodata/patch-jarnal-2451.xml kdelibs3-2452 sha a515c1a96ac1b55f50852cfda93a49004ce4c79a repodata/patch-kdelibs3-2452.xml xorg-x11-server-2453 sha a3f5b8927b7f1f47f347e7ee3ab821995dca00b7 repodata/patch-xorg-x11-server-2453.xml cyrus-imapd-2454 sha 4fdf8c67eaa488edbe668ead3d995caa38a1936b repodata/patch-cyrus-imapd-2454.xml opera-2456 sha 5209e7b0a7f89ec7c225de065d4cbc4fbefcbddb repodata/patch-opera-2456.xml mediawiki-2457 sha 669837ce13f07df59ac79ce6201c176342ed27c4 repodata/patch-mediawiki-2457.xml compiz-2458 sha a41806bf5d57c36825ad832be3d0f13d1695d70a repodata/patch-compiz-2458.xml libzypp-2460 sha bdbbba1841bebd9822458f3a3fb1c88141e78281 repodata/patch-libzypp-2460.xml bzip2-2465 sha 1b84ea4aa922b21a7039330c0fdbf2775dd13444 repodata/patch-bzip2-2465.xml autoyast2-2466 sha c7266496955cee3242ae100ffd731ce4323d6b89 repodata/patch-autoyast2-2466.xml squid-2467 sha 883f737c6ecedd05670bad4784a37e2c67a8c5da repodata/patch-squid-2467.xml totem-2468 sha 538c771158fa860793ed285990641b1ed04330b5 repodata/patch-totem-2468.xml java-1_4_2-sun-demo-2469 sha 32ae23cb16bff2f8e6ec4ba168e6a75d541efc8c repodata/patch-java-1_4_2-sun-demo-2469.xml ulogd-2470 sha cea742686fabc65af02a9dd7bea89b39cbdb62c1 repodata/patch-ulogd-2470.xml xpdf-tools-2472 sha 8f021c3fec51df6155c44276b87260bbf074c0a2 repodata/patch-xpdf-tools-2472.xml xpdf-2473 sha 73e3b82edf6537e759d3c7fe103654baad9155cf repodata/patch-xpdf-2473.xml neon-2476 sha 9b83d8d408138a521c7926be0c569047eb5d866a repodata/patch-neon-2476.xml libzypp-2477 sha 837cb40fa331f256281577e8ca81fe73b9c27e2a repodata/patch-libzypp-2477.xml gtk2-2479 sha 050a31137f1ff1ca986c27addaf894deaa10b6ad repodata/patch-gtk2-2479.xml nss_ldap-2480 sha cd51f150dda049a82acca2ef4b0524465947ddc2 repodata/patch-nss_ldap-2480.xml cups-2481 sha ec3095ea0c8b996b49061d79f7afb780ab4ea84b repodata/patch-cups-2481.xml bluez-utils-2482 sha c53aeb36ef68f4f1b6e6ac0f38df63c22f22359d repodata/patch-bluez-utils-2482.xml xine-lib-2487 sha 31c74fc5d4ba42bf3301fa95b806caa978659127 repodata/patch-xine-lib-2487.xml kdegraphics3-2489 sha 7cbcd6c1064568aeb0e523d2587336e742e44fcb repodata/patch-kdegraphics3-2489.xml xorg-x11-Xvnc-2491 sha 4f331f6ea3e5c5a90f66a871162114ca94f92f76 repodata/patch-xorg-x11-Xvnc-2491.xml bluez-utils-2492 sha b5a4c65f2356613b4de6ad1bc2dd0582e77b0ee6 repodata/patch-bluez-utils-2492.xml koffice-2495 sha 18e4e361c7688a57f7b7963c359fee4f58d29b08 repodata/patch-koffice-2495.xml gtk2-2499 sha f812f28e10039b5bfd249e3902b905e92a7eb769 repodata/patch-gtk2-2499.xml hal-2500 sha 90c4516d8073322a05f4235dbe1f7c4770c6e4e0 repodata/patch-hal-2500.xml libsoup-2503 sha 7d9f7a7fdd96843f5d962aef984cc0c5c2534f30 repodata/patch-libsoup-2503.xml squid-2504 sha fffd63b332907c46b926499e27b6ec0ad9025ddb repodata/patch-squid-2504.xml acroread-2506 sha b0bbd764da5ec2651bf030e7051d045341ddbdd7 repodata/patch-acroread-2506.xml flash-player-2509 sha 5e2c95f36ceb9c7d94c4a2df8ec60aaf36dde810 repodata/patch-flash-player-2509.xml compat-g77-2510 sha 11a15f477e35a5e4879a8883074c13e6ab321141 repodata/patch-compat-g77-2510.xml libgtop-2512 sha c71c5d298bf5b11fcc0c0865b1302a7ba9970c0c repodata/patch-libgtop-2512.xml zypper-2513 sha fb916bb899aa6d2b1ae8d211ee84ceb0a66f1fd8 repodata/patch-zypper-2513.xml smb4k-2514 sha 558c89fe1d04efa2d7c5988be9344376f2eacace repodata/patch-smb4k-2514.xml amarok-2516 sha 18473edb5c4b6853aea94db3883bcfe496b5b6ee repodata/patch-amarok-2516.xml yast2-trans-de-2518 sha 4c3d0446ffd36ce86b40da43135913a18349ef44 repodata/patch-yast2-trans-de-2518.xml compiz-2519 sha 188b82cfb54dd61f0fe0e5beea054d5a9591e0a5 repodata/patch-compiz-2519.xml fetchmail-2520 sha 85a08c9bc4eebac24854a9eb7da257a3fe8f5b6d repodata/patch-fetchmail-2520.xml spamassassin-2523 sha e711370f446cf3538fbaf64c9faaf0eadaedb580 repodata/patch-spamassassin-2523.xml libzypp-2524 sha 16921f0179c7c3dcb504b9ffb82abd32e84086ac repodata/patch-libzypp-2524.xml yast2-printer-2525 sha 147a7b5f084395bd427c273ba8f25f312cc87193 repodata/patch-yast2-printer-2525.xml powersave-2526 sha afd07ae38e0585e615022a7df3cd469c2c99fdbb repodata/patch-powersave-2526.xml cups-2527 sha 5b9d9747bffc3368ea2f7c8c7b3ff8e0cc4605f7 repodata/patch-cups-2527.xml bind-2529 sha 1b1c1fdb9ad132cd6504c8b437cfe519bc9c0dfa repodata/patch-bind-2529.xml libzypp-2533 sha 2af5b888f4f4c9b9be8b9bc2aaae02efd436b924 repodata/patch-libzypp-2533.xml chmlib-2536 sha 664ef6d8c867824f20b15a9af4d2957fd79897bd repodata/patch-chmlib-2536.xml kchmviewer-2539 sha ad29afc8f5dd7ca1f4faa4a2aaed644c80d844b6 repodata/patch-kchmviewer-2539.xml rrdtool-2540 sha 8cc33adb78b9fccccc7f2fc03d5df13f8a79eae5 repodata/patch-rrdtool-2540.xml yast2-sound-2541 sha ccece044c2ba608c8233d70a4aa68c466c1862f1 repodata/patch-yast2-sound-2541.xml fetchmail-2542 sha 339f1a841955652ccaccd9c9e936c21abe85a2f2 repodata/patch-fetchmail-2542.xml kdenetwork3-InstantMessenger-2547 sha 3ef0e4f08055c2f458c0efa5dfdd4d7aee384122 repodata/patch-kdenetwork3-InstantMessenger-2547.xml openssl-2548 sha 67602c57de3f98ffd2c7434b6952f79481feceb8 repodata/patch-openssl-2548.xml autofs-2549 sha 4da7e1958d56142f48d99b9ab1b16425aeb0cd96 repodata/patch-autofs-2549.xml qemu-2550 sha 940c331de3e40be9f570e012b8ca9bbab6d594d2 repodata/patch-qemu-2550.xml cross-avr-binutils-2551 sha da26f814db1c2f04cd8fc27495aecdbd66f73daf repodata/patch-cross-avr-binutils-2551.xml digikam-2552 sha 299f0dff3447555cea60a63fdf97e81e1bd56096 repodata/patch-digikam-2552.xml samba-2555 sha a7a501a1465dfcb3e125d14c1a67efd2638be166 repodata/patch-samba-2555.xml fetchmail-2563 sha 10b87459f9209a43097bebd31f9ec8cff4354c11 repodata/patch-fetchmail-2563.xml kdegraphics3-pdf-2565 sha 8d0d0b963c5fa85c92d5a9b5c86c88063b2faf8e repodata/patch-kdegraphics3-pdf-2565.xml koffice-wordprocessing-2577 sha 5f43e01206494f0d0cbab846bfbb157285e22efc repodata/patch-koffice-wordprocessing-2577.xml samba-2584 sha 5e86626239c4798708e7d2432708cf98d6a001d2 repodata/patch-samba-2584.xml ImageMagick-2585 sha 5af58df93d8f36428726d0cf55fc5bb6a18a8bfd repodata/patch-ImageMagick-2585.xml poppler-2590 sha 924e7f989e3d6f159e717e2d76b21de572ce7ec2 repodata/patch-poppler-2590.xml NetworkManager-kde-2591 sha 93a54883e5b9170839fc81a72c534f76e7987c19 repodata/patch-NetworkManager-kde-2591.xml GraphicsMagick-2593 sha 64a57f29d835e46f7f00e939d4b505cb546d0654 repodata/patch-GraphicsMagick-2593.xml chmlib-2595 sha 88ee8256ac3875e2b087ab9723bb13f071f9de73 repodata/patch-chmlib-2595.xml gpdf-2596 sha 115f31bcb61f37f264daa4b0ef8220816be05de7 repodata/patch-gpdf-2596.xml kdenetwork3-InstantMessenger-2599 sha c5a5fd01f5266d3f30fe33b5fc1679b35af3d4d4 repodata/patch-kdenetwork3-InstantMessenger-2599.xml kdebase3-2600 sha b6654a37408c21d66e60cf7a78a1cddb991b797a repodata/patch-kdebase3-2600.xml pam-2601 sha fd76c123487f884cf10b161c87afe5b7bc9f05f8 repodata/patch-pam-2601.xml fetchmail-2602 sha d3533c47354977c9f821eb4e579c43ea919d4488 repodata/patch-fetchmail-2602.xml novfs-kmp-bigsmp-2630 sha 06f48c215e805213e339fa581670fb35e2151786 repodata/patch-novfs-kmp-bigsmp-2630.xml clamav-2632 sha b5217b10a1a3e513085665d994dded954a72e884 repodata/patch-clamav-2632.xml timezone-2634 sha e2d31e95095a1c7dd242c577f3a394a39d7e75be repodata/patch-timezone-2634.xml gwenview-2637 sha b6f7e30d0d8f3e699e8593a178b5fd63c865ad0e repodata/patch-gwenview-2637.xml wireshark-2638 sha 7ebc8745836d63bdfee712bca5c71ba328877047 repodata/patch-wireshark-2638.xml hal-resmgr-2639 sha 4eb206f1dba689554bc3e113fd87ad2a4fcdbf78 repodata/patch-hal-resmgr-2639.xml klamav-2640 sha 505cc81dc924efb58154806700b1d261cc33fbb9 repodata/patch-klamav-2640.xml ekiga-2641 sha 3d960c76d7dd38393c631c63212f0a8c4f08ad98 repodata/patch-ekiga-2641.xml libwpd-2642 sha b31ced09fece6d2f9fad37653acfda9eb9e7ba2b repodata/patch-libwpd-2642.xml rubygems-2644 sha 26a5b6e1a3c77afa7fd77171bcbef2d78f7df11f repodata/patch-rubygems-2644.xml MozillaFirefox-2647 sha 420d992e8b4436cc7ebc0609183ba040db340dc5 repodata/patch-MozillaFirefox-2647.xml koffice-wordprocessing-2648 sha bf0b411e4eb5494a27ebef8d5b9cd923da4fe2c8 repodata/patch-koffice-wordprocessing-2648.xml agfa-fonts-2650 sha 19126ca4e55852b98ffa69c6c3fcff12743af49c repodata/patch-agfa-fonts-2650.xml OpenOffice_org-2652 sha 0bbcdeab9294272a677f9b4a7b57e13701244010 repodata/patch-OpenOffice_org-2652.xml gdm-2653 sha df03ccdfcb0f188ac3072c5086ab86b425a66f8e repodata/patch-gdm-2653.xml ruby-2655 sha 8ffefa033ac19a70938a7af71854184d6b902e45 repodata/patch-ruby-2655.xml sylpheed-claws-2685 sha df121b6b7cc82715a4544f491a0104b50a28eb20 repodata/patch-sylpheed-claws-2685.xml php5-2687 sha f34eb5a2f4399578c78e6dca5dd165077787c806 repodata/patch-php5-2687.xml klamav-2688 sha da442e32fe4401897261051bf817e1a029e804c3 repodata/patch-klamav-2688.xml clamav-2690 sha ff002a87486fbd2c68b445e58b6ac0d307e8dbad repodata/patch-clamav-2690.xml seamonkey-2691 sha fd8198e09f073515c67cf90a879ff57bfde0cfa9 repodata/patch-seamonkey-2691.xml gnokii-2689 sha 2453275e874a7d65c9f21cc50885f50202d617bf repodata/patch-gnokii-2689.xml doxygen-2694 sha fad24b42e3d7d8c35e410017ca85dd375f2b7f1d repodata/patch-doxygen-2694.xml enlightenment-2695 sha e74c7b27498161c9ba056869ba1813658f4ef4e0 repodata/patch-enlightenment-2695.xml gnome-terminal-2696 sha 36f9b9e6ff739fe7d82a58b59fcb74be6581a752 repodata/patch-gnome-terminal-2696.xml kpowersave-2698 sha c1e569e948b46ddcd33369c9479e6ad92fb8c7ec repodata/patch-kpowersave-2698.xml clamav-2700 sha 3dd423deeb41c58b11f54184d59367d152d78f24 repodata/patch-clamav-2700.xml autofs-2703 sha 678cae267889c434cbdd81654066244270a341b6 repodata/patch-autofs-2703.xml ivtv-kmp-bigsmp-2704 sha 9539aa93b99854e21cc69248bd82249f75a6f6e0 repodata/patch-ivtv-kmp-bigsmp-2704.xml kernel-2705 sha fedf719a3be03d6c93fc04f78b50ce7be1465606 repodata/patch-kernel-2705.xml yast2-printer-2706 sha b95d82b3c1e22c1ce2ec2ea96ffb9ba94e1a2adb repodata/patch-yast2-printer-2706.xml MozillaThunderbird-2734 sha be5018a378fbce22ad2f1f94266f251dfb0fecc2 repodata/patch-MozillaThunderbird-2734.xml gstreamer010-plugins-base-2737 sha 93496c003d8a1565e88fa37bc28b62b685b86223 repodata/patch-gstreamer010-plugins-base-2737.xml gstreamer010-plugins-base-2805 sha 40b9fd23e3eb4141d8b28794c40aeebdee7dcc1d repodata/patch-gstreamer010-plugins-base-2805.xml evolution-2824 sha 7d6301a829eda6ff7ab006302c38943693defd44 repodata/patch-evolution-2824.xml avahi-2982 sha c338bfb439e94dc27774a76d860285577b9ade19 repodata/patch-avahi-2982.xml syslog-ng-2984 sha eb0c412124838a4ff2ff884642a88fac1578da8f repodata/patch-syslog-ng-2984.xml tomcat5-2985 sha 95ce884347ae5fb4f8b030f9e302f75dec58cefd repodata/patch-tomcat5-2985.xml xine-lib-2989 sha 91dba1fffdd033eb289fec17dd2a288658dbb586 repodata/patch-xine-lib-2989.xml xorg-x11-libs-3070 sha 069398c5d7b94dc32c6102243b478584a76b84bb repodata/patch-xorg-x11-libs-3070.xml rekall-2991 sha 2c534ad1e2a36b668f7d22f37b5e0457f5892359 repodata/patch-rekall-2991.xml gpg-2995 sha bce7d390d3db0bdedf63304a9b739645e7c10eb8 repodata/patch-gpg-2995.xml gstreamer010-plugins-base-2992 sha 5d0fa6b2d1a729ed86d6bdc54bb3eeabb1bfea38 repodata/patch-gstreamer010-plugins-base-2992.xml unrar-2996 sha c1e7abcd4dc9ffda6f97dc8c98e68d36f0fa51e5 repodata/patch-unrar-2996.xml ktorrent-2998 sha ff9e274c83ef488d9eed486c7eae9f2952d4c29e repodata/patch-ktorrent-2998.xml ekiga-3023 sha 2dd405d9651c0f9b87412b07488d4b03796390e9 repodata/patch-ekiga-3023.xml krb5-apps-servers-3021 sha f4b8a55a8b737a513c4531487888ff231126cce9 repodata/patch-krb5-apps-servers-3021.xml pam_ssh-3024 sha 5413228a54cf99ce20ad08e6917605f7a9ceeabe repodata/patch-pam_ssh-3024.xml TeXmacs-3030 sha a17b3f3406caf33fb9160d2464b0945bc2b0a8ad repodata/patch-TeXmacs-3030.xml perl-Bootloader-3029 sha 2ec2f7e3abf84e60ce2a2e3935e3373242f97d27 repodata/patch-perl-Bootloader-3029.xml kernel-3032 sha b83c95c8f2337d42ea1b8b1e606ca83c8acc17b8 repodata/patch-kernel-3032.xml NetworkManager-3031 sha 89d9e49eb0c49803ab2bd5d51570f8e688f93196 repodata/patch-NetworkManager-3031.xml file-3033 sha 9501fa94de1e6e9a896cc2e29d66424e17d429e4 repodata/patch-file-3033.xml squid-3036 sha 882e3dad4edfc0e2e923d4fc49c78341acea368d repodata/patch-squid-3036.xml libwpd-3038 sha 03671597239a76a8716da20528d4a71d24e44825 repodata/patch-libwpd-3038.xml opensuse-updater-3037 sha f6a3e069f70f9250d7ae0c5f7497999714552ddc repodata/patch-opensuse-updater-3037.xml krb5-3045 sha a7a9803370986ec4de2913c416db11a0c207d8a1 repodata/patch-krb5-3045.xml qt3-3048 sha 4b3f9bbb0f413a4b70392219f501ad782e5c647a repodata/patch-qt3-3048.xml gwenview-3055 sha 7f65de9106151c59e1b91eab1c195e5765445894 repodata/patch-gwenview-3055.xml libqt4-3056 sha 1c801d3a719e843a50f43faceff0bd2bf77f3e82 repodata/patch-libqt4-3056.xml ktorrent-3057 sha 06cd8e287e5cc94bf936726e9a8540283ad42af5 repodata/patch-ktorrent-3057.xml kdelibs3-3058 sha 555d3279e2485cae5feb3a7c57b0ee0f16ae8ba6 repodata/patch-kdelibs3-3058.xml inkscape-3062 sha cd767b5b8690e08ec5b1f231641cd6a4a7d1dec4 repodata/patch-inkscape-3062.xml perl-Bootloader-3059 sha 24e57eaa5bc4c6080577f7555b9b28ba30c298e6 repodata/patch-perl-Bootloader-3059.xml scpm-3064 sha 262095e2c3ad96a3c892c0e06baad6c995ac52b9 repodata/patch-scpm-3064.xml mediawiki-3065 sha beba36db67a885e7a43a2b8d0f5b6a1e394fad39 repodata/patch-mediawiki-3065.xml freetype2-3066 sha 079e72f31dcd4e20a786501b6670d581480cb249 repodata/patch-freetype2-3066.xml xorg-x11-libX11-3069 sha b7bf854b78d3ba9488e4a9c46bf48d6e7501ead5 repodata/patch-xorg-x11-libX11-3069.xml xorg-x11-server-3071 sha 8dd539e1cb8196a3bde56ec0e5d9717bf74d3696 repodata/patch-xorg-x11-server-3071.xml xmms-3073 sha f96cebcb74f4e9067976240f8da5dff3dbc954e3 repodata/patch-xmms-3073.xml spamassassin-3077 sha 5d11f1e0772a8eae3d0276c2fc0c36fd024ff969 repodata/patch-spamassassin-3077.xml libzypp-17.7.0/tests/parser/yum/data/patches.xsl000066400000000000000000000010421334444677500216550ustar00rootroot00000000000000



libzypp-17.7.0/tests/parser/yum/data/repomd-1.xml000066400000000000000000000023171334444677500216520ustar00rootroot00000000000000 63d86413540fbb2647e5b5de556d4e4b53f032d9 1176225512 63d86413540fbb2647e5b5de556d4e4b53f032d9 f76cb1f9f1963edc614848944b99e2664eba4b4a 1176225558 f9cf4f4520ebe75e4bd66c1572521b414dfea564 fd1ea55f143820333b702cda4f97b286daf65171 1176225549 3bfb8413a4698b86f632bb914f6dc8a4e3ac9660 689fecabbb0907f51f5bb7211048e091c6f2bc84 1176225550 ce38366eaded03cb8b3fdc64bb31ea5304e9901c libzypp-17.7.0/tests/parser/yum/data/repomd-1.xml.solution000066400000000000000000000004661334444677500235300ustar00rootroot00000000000000patches sha1 63d86413540fbb2647e5b5de556d4e4b53f032d9 repodata/patches.xml other sha1 f76cb1f9f1963edc614848944b99e2664eba4b4a repodata/other.xml.gz primary sha1 fd1ea55f143820333b702cda4f97b286daf65171 repodata/primary.xml.gz filelists sha1 689fecabbb0907f51f5bb7211048e091c6f2bc84 repodata/filelists.xml.gz libzypp-17.7.0/tests/repo/000077500000000000000000000000001334444677500154275ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/CMakeLists.txt000066400000000000000000000004061334444677500201670ustar00rootroot00000000000000ADD_SUBDIRECTORY( yum ) ADD_SUBDIRECTORY( susetags ) # to find the KeyRingTest receiver INCLUDE_DIRECTORIES( ${LIBZYPP_SOURCE_DIR}/tests/zypp ) ADD_TESTS( DUdata ExtendedMetadata MirrorList PluginServices RepoLicense RepoSigcheck RepoVariables ) libzypp-17.7.0/tests/repo/DUdata_test.cc000066400000000000000000000100511334444677500201340ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/RepoManager.h" #include "zypp/ResPool.h" #include "zypp/sat/Pool.h" #include "zypp/PoolQuery.h" #include "KeyRingTestReceiver.h" #include "TestSetup.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::repo; using namespace zypp::filesystem; #define TEST_DIR TESTS_SRC_DIR "/repo/susetags/data/dudata" PoolItem piFind( const std::string & name_r, const std::string & ver_r, bool installed_r = false ) { PoolQuery q; q.addDependency( sat::SolvAttr::name, name_r, Rel::EQ, Edition(ver_r) ); q.setStatusFilterFlags( installed_r ? PoolQuery::INSTALLED_ONLY : PoolQuery::UNINSTALLED_ONLY ); if ( q.size() != 1 ) ZYPP_THROW(Exception(q.size()?"Ambiguous!":"Missing!")); return PoolItem( *q.begin() ); } typedef std::pair ByteSet; namespace std { inline std::ostream & operator<<( std::ostream & str, const ByteSet & obj ) { return str << "<" << obj.first << "," << obj.second << ">"; } } inline ByteSet mkByteSet( const DiskUsageCounter::MountPointSet & mps_r ) { return ByteSet( mps_r.begin()->commitDiff(), (++mps_r.begin())->commitDiff() ); } inline ByteSet mkByteSet( int grow_r , int norm_r ) { return ByteSet( ByteCount( grow_r, ByteCount::K ), ByteCount( norm_r, ByteCount::K ) ); } inline ByteSet getSize( const DiskUsageCounter & duc_r, const PoolItem & pi_r ) { return mkByteSet( duc_r.disk_usage( pi_r ) ); } inline ByteSet getSize( const DiskUsageCounter & duc_r, const ResPool & pool_r ) { return mkByteSet( duc_r.disk_usage( pool_r ) ); } inline void XLOG( const DiskUsageCounter & duc_r, const ResPool & pool_r ) { for( const auto & pi : pool_r ) { USR << pi << endl; } WAR << duc_r.disk_usage( pool_r ) << endl; } BOOST_AUTO_TEST_CASE(dudata) { //KeyRingTestReceiver rec; // rec.answerAcceptUnknownKey(true); //rec.answerAcceptUnsignedFile(true); // rec.answerImportKey(true); Pathname repodir( TEST_DIR ); TestSetup test( Arch_x86_64 ); test.loadTargetRepo( repodir/"system" ); test.loadRepo( repodir/"repo", "repo" ); ResPool pool( ResPool::instance() ); PoolItem ins( piFind( "dutest", "1.0", true ) ); PoolItem up1( piFind( "dutest", "1.0" ) ); PoolItem up2( piFind( "dutest", "2.0" ) ); PoolItem up3( piFind( "dutest", "3.0" ) ); DiskUsageCounter duc( { DiskUsageCounter::MountPoint( "/grow", DiskUsageCounter::MountPoint::Hint_growonly ), DiskUsageCounter::MountPoint( "/norm" ) } ); //XLOG( duc, pool ); BOOST_CHECK_EQUAL( getSize( duc, ins ), mkByteSet( 5, 5 ) ); BOOST_CHECK_EQUAL( getSize( duc, up1 ), mkByteSet( 15, 15 ) ); BOOST_CHECK_EQUAL( getSize( duc, up2 ), mkByteSet( 45, 45 ) ); BOOST_CHECK_EQUAL( getSize( duc, up3 ), mkByteSet( 0, 0 ) ); // delete installed size 5 g n ins.status().setTransact( true, ResStatus::USER ); BOOST_CHECK_EQUAL( getSize( duc, pool ), mkByteSet( 0, -5 ) ); ins.status().setTransact( false, ResStatus::USER ); // install known DU size 15 g n up1.status().setTransact( true, ResStatus::USER ); BOOST_CHECK_EQUAL( getSize( duc, pool ), mkByteSet( 15, 15 ) ); // (multi)install (old stays) ins.status().setTransact( true, ResStatus::USER ); BOOST_CHECK_EQUAL( getSize( duc, pool ), mkByteSet( 15, 10 ) ); // update (old goes) ins.status().setTransact( false, ResStatus::USER ); up1.status().setTransact( false, ResStatus::USER ); // install unknown DU size 0/installed g n up3.status().setTransact( true, ResStatus::USER ); BOOST_CHECK_EQUAL( getSize( duc, pool ), mkByteSet( 5, 0 ) ); // (multi)install (n could be 5 too, but satsolver does not know about multinstall) ins.status().setTransact( true, ResStatus::USER ); BOOST_CHECK_EQUAL( getSize( duc, pool ), mkByteSet( 5, 0 ) ); // update (old goes) ins.status().setTransact( false, ResStatus::USER ); up3.status().setTransact( false, ResStatus::USER ); } libzypp-17.7.0/tests/repo/ExtendedMetadata_test.cc000066400000000000000000000073171334444677500222060ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/Package.h" #include "zypp/RepoManager.h" #include "zypp/sat/Pool.h" #include "KeyRingTestReceiver.h" #include "TestSetup.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::repo; using namespace zypp::filesystem; #define TEST_DIR TESTS_SRC_DIR "/repo/yum/data/extensions" BOOST_AUTO_TEST_CASE(extended_metadata) { KeyRingTestReceiver rec; //rec.answerAcceptUnknownKey(true); rec.answerAcceptUnsignedFile(true); // rec.answerImportKey(true); Pathname repodir(TEST_DIR ); sat::Pool pool(sat::Pool::instance()); TestSetup test( Arch_x86_64 ); test.loadRepo(repodir.absolutename().asDirUrl(), "updates"); Repository repo = pool.reposFind("updates"); BOOST_CHECK_EQUAL( repo.generatedTimestamp(), Date(1227279057) ); BOOST_CHECK_EQUAL( repo.suggestedExpirationTimestamp(), Date(1227279057 + 3600) ); // check that the attributes of product compatibility are ok int count = 0; vector cpeids; vector labels; for_( it, repo.compatibleWithProductBegin(), repo.compatibleWithProductEnd() ) { cpeids.push_back(it.cpeId()); labels.push_back(it.label()); count++; } // there were 2 compatible products BOOST_CHECK_EQUAL( count, 2 ); BOOST_CHECK_EQUAL( cpeids[0], "cpe:/o:opensuse" ); BOOST_CHECK_EQUAL( cpeids[1], "cpe:/o:sle" ); BOOST_CHECK_EQUAL( labels[0], "openSUSE 11.0" ); BOOST_CHECK_EQUAL( labels[1], "SLE 11.0" ); cpeids.clear(); labels.clear(); count = 0; for_( it, repo.updatesProductBegin(), repo.updatesProductEnd() ) { cpeids.push_back(it.cpeId()); labels.push_back(it.label()); count++; } // the repo updates one product BOOST_CHECK_EQUAL( count, 1 ); BOOST_CHECK_EQUAL( cpeids[0], "cpe:/o:sle" ); BOOST_CHECK_EQUAL( labels[0], "SLE 11.0" ); // because this product updates something, it _is_ an update repo BOOST_CHECK( repo.isUpdateRepo() ); BOOST_CHECK( repo.providesUpdatesFor(CpeId("cpe:/o:sle")) ); BOOST_CHECK( ! repo.providesUpdatesFor(CpeId("cpe:/o:windows")) ); // reuse to count solvables count = 0; /** * Now check for the extended metadata of the packages */ for_( it, repo.solvablesBegin(), repo.solvablesEnd() ) { sat::Solvable s = *it; MIL << s << endl; MIL << s.kind() << endl; if ( s.ident() == "wt" ) { count++; Package::Ptr p = asKind(makeResObject(s)); BOOST_CHECK(p); BOOST_CHECK(p->maybeUnsupported() ); BOOST_CHECK_EQUAL(p->vendorSupport(), VendorSupportUnknown ); } else if ( s.ident() == "foobar" ) { count++; Package::Ptr p = asKind(makeResObject(s)); BOOST_CHECK(p); BOOST_CHECK_EQUAL(p->vendorSupport(), VendorSupportUnsupported ); BOOST_CHECK(p->maybeUnsupported() ); } else if ( s.ident() == "foofoo" ) { count++; Package::Ptr p = asKind(makeResObject(s)); BOOST_CHECK(p); // if it is level 3 support it cant be unsupported BOOST_CHECK_EQUAL(p->vendorSupport(), VendorSupportLevel3 ); BOOST_CHECK(! p->maybeUnsupported() ); } else { BOOST_FAIL(str::form("Repo has package not contemplated in test: %s", s.ident().c_str()).c_str()); } } // check that we actually found all testeable // resolvables BOOST_CHECK_EQUAL(count, 3); } libzypp-17.7.0/tests/repo/MirrorList_test.cc000066400000000000000000000016251334444677500211070ustar00rootroot00000000000000#include #include #include #include "WebServer.h" #include "zypp/repo/RepoMirrorList.cc" using namespace std; using namespace zypp; using namespace zypp::repo; BOOST_AUTO_TEST_CASE(get_mirrorlist) { WebServer web((Pathname(TESTS_SRC_DIR) + "/data/Mirrorlist/remote-site").c_str(), 10001); web.start(); Url weburl1 (web.url()); Url weburl2 (web.url()); weburl1.setPathName("/metalink.xml"); weburl2.setPathName("/mirrors.txt"); RepoMirrorList rml1 (weburl1); RepoMirrorList rml2 (weburl2); BOOST_CHECK(rml1.getUrls().begin()->asString() == "http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/"); BOOST_CHECK(rml2.getUrls().begin()->asString() == "http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/"); BOOST_CHECK(rml1.getUrls().size() == 4); BOOST_CHECK(rml2.getUrls().size() == 4); web.stop(); } libzypp-17.7.0/tests/repo/PluginServices_test.cc000066400000000000000000000020401334444677500217330ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/ZYppFactory.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/ZConfig.h" #include "zypp/repo/PluginServices.h" #include "zypp/ServiceInfo.h" using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; using namespace zypp::repo; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/repo/yum/data") class ServiceCollector { public: typedef std::set ServiceSet; ServiceCollector( ServiceSet & services_r ) : _services( services_r ) {} bool operator()( const ServiceInfo & service_r ) const { _services.insert( service_r ); return true; } private: ServiceSet & _services; }; BOOST_AUTO_TEST_CASE(plugin_services) { ServiceCollector::ServiceSet services; PluginServices local("/space/tmp/services", ServiceCollector(services)); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/repo/RepoLicense/000077500000000000000000000000001334444677500176375ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoLicense/repo/000077500000000000000000000000001334444677500206045ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/000077500000000000000000000000001334444677500224035ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/CHECKSUM-license-prod.tar.gz000066400000000000000000000005651334444677500273240ustar00rootroot00000000000000‹C£²Yí×Ën‚@`Ö>O0ž ³è¾Ë¾Ñ11Ñ.¿G£­aê-!Xëù’8 äŸßã¦õö=ÖóشΦ«å,~¶ÑÍ£ë¶]6P¥Èþ¨úG@¦  )8Ó/D8Ë·C\üšMÛÕÞÊ×úƒòu·\Ç7,@*(‡ÐSd¢«õé*#8àÀ¤/­Ú­Îúç’Gô„&~2s‹áÓž:Í?ó!÷%}ç_óÞÏ? fù(™<æ]_þ]»iã¥õþæö$ï?ŸG ì+rgûÑ<¢ÿÅ˾ÿ½õÿ(úý/Ž˜*ðU(“þOVgçWýdæç=uOÿò¯#­ÿÇpìÿEc}Eçû¸íàžþ§wù‡Â[ÿ!™ÿ+tº7ë,¯éüâ0 NgD¿Ìÿz®îà±ôÞ¶“§0|ÚSWûŸ —* ¶þÃÏü¿¨7«ÎRkŒ1ÆcŒ1ÆóÏ|Á>ÐV(libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/CHECKSUM-license.tar.gz000066400000000000000000000006001334444677500263500ustar00rootroot00000000000000‹ø¢²Yí×ËjÂ@à¬}м€ãœËdÌ¢û.û C2AÓÒDðñ{,¶•L½aˆÏ·0à1Œ!üó'fö6Ï1Ôñ£5ž‹b¶\T±i£©£é6]6+ 毣è-f@àØ!¥L¾`vY¾bñSÖm>䯌±Ö?D6_u‹U|gyîK,KP‚ÇyÉ™†ý)5–JB¹ióí´êŸ‹ÀsÉ8¹õ•©s ŸöÔ~þ‰v¹/ð'ÿ’÷~þ‘!ËGÉäwþWáøïÚuÍû›ÛØÝÿ¼ŽØGdöÿpÛÁ%ýlóoå ý?‚¤ÿç`do–.—´ÿ-y8Ýñþ—sXž ïu;¹ ç=u²ÿÑöò…#íÿ1üöÿkX/;MíƒIû¿y›†ªŠï]hª8mb¬c}Ýõ?:É?;&íÿ1$ýïÈÈ[¾sΓOú?™V‡§·¾2uŽáÓž:ÙÿÖöóO¤ý¯”RJ)¥”RJ)¥ÔÕ>`‚îÍ(libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/license.de.txt000066400000000000000000000000131334444677500251470ustar00rootroot00000000000000license de libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/license.fr.txt000066400000000000000000000000131334444677500251660ustar00rootroot00000000000000license fr libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/license.txt000066400000000000000000000000201334444677500245560ustar00rootroot00000000000000license default libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/no-acceptance-needed000066400000000000000000000000001334444677500262360ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoLicense/repo/repodata/repomd.xml000066400000000000000000000007661334444677500244240ustar00rootroot00000000000000 3a4013a12934c55f9a6b0c1b8db2ce6660840b1f7cbee95ec92a50c13c5b9e95 3c0371f0a090e0ad6432c705798e7c5617b278e85cf382344e80c4dfaf07cffb libzypp-17.7.0/tests/repo/RepoLicense_test.cc000066400000000000000000000025461334444677500212140ustar00rootroot00000000000000#include #include #include "zypp/ZYppFactory.h" #include "zypp/RepoManager.h" #include "TestSetup.h" using namespace boost::unit_test; using namespace zypp; using std::cout; using std::endl; TestSetup test( Arch_x86_64 ); const Pathname DATADIR( TESTS_SRC_DIR "/repo/RepoLicense" ); /////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(repolicense) { std::string repo( "repo" ); test.loadRepo( DATADIR/repo, repo ); ResPool pool( ResPool::instance() ); const RepoInfo & ri( pool.knownRepositoriesBegin()->info() ); std::string prod; // BOOST_CHECK_EQUAL( ri.hasLicense( prod ), true ); BOOST_CHECK_EQUAL( ri.needToAcceptLicense( prod ), false ); BOOST_CHECK_EQUAL( ri.getLicenseLocales( prod ), LocaleSet({ Locale(),Locale("de") }) ); prod = "prod"; // BOOST_CHECK_EQUAL( ri.hasLicense( prod ), true ); BOOST_CHECK_EQUAL( ri.needToAcceptLicense( prod ), true ); BOOST_CHECK_EQUAL( ri.getLicenseLocales( prod ), LocaleSet({ Locale(), Locale("de"), Locale("fr") }) ); prod = "noprod"; // is not available BOOST_CHECK_EQUAL( ri.hasLicense( prod ), false ); BOOST_CHECK_EQUAL( ri.needToAcceptLicense( prod ), false ); BOOST_CHECK ( ri.getLicenseLocales( prod ).empty() ); } libzypp-17.7.0/tests/repo/RepoSigcheck/000077500000000000000000000000001334444677500177755ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/signed_repo/000077500000000000000000000000001334444677500222735ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/signed_repo/repodata/000077500000000000000000000000001334444677500240725ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/signed_repo/repodata/repomd.xml000066400000000000000000000001461334444677500261030ustar00rootroot00000000000000 libzypp-17.7.0/tests/repo/RepoSigcheck/signed_repo/repodata/repomd.xml.asc000066400000000000000000000004531334444677500266510ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iJwEAAECAAYFAlkxg9AACgkQGg2gkyh1YAPSfAQAlimnC4dx6bCJyJxJb6BjECNA HQBtDC4MEzQ+hDiXd6YL7wjI3fu3K9sclx2ypFb3vLkK5SHQysStWMmDOEgNA96I iAuyyDVb3F24OiYOCcTKKViXAFTxykiC9dPFXdmA4vMjqcQYaxIkA17dFYvMjLLQ 5DdgmDuMS+Fv4xVjP8I= =dzhU -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/RepoSigcheck/signed_repo/repodata/repomd.xml.key000066400000000000000000000005531334444677500266740ustar00rootroot00000000000000˜Y1€Îñl[KhãÙmœ²íeÛ0:C”12ØðªÔsD>HTƒIwGl ”ËÈóÌçÓŽÞºr—dð‹à2J)¿S2‚ÃjÓvŒªU"»ëkQ)¦ô—×N‘3ƒLsnb Ír¹ Y”Tm6Q(Q•.BÝÞE0ç6N4¿‘ÜWø‡ªž®2£´zypp-testsuite ˆ¹#Y1€Î  €   “(u`J[ÿvÒD¥aŒf± žiè<Ü’º4ÛÀ#ËŽásÚ(™~ÑH–w×|¸’ÍBŸ3ødl;SphÈà€ ÀëûNõ’ÿ(b F_PÚpndðà͆á›`îqcë²ë‘ÞfÀ'ÉA×öÂ(›ˆ¥’‘:6ñØù;aàÒÆ¨¼:Mlibzypp-17.7.0/tests/repo/RepoSigcheck/unknownkey_repo/000077500000000000000000000000001334444677500232325ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/unknownkey_repo/repodata/000077500000000000000000000000001334444677500250315ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/unknownkey_repo/repodata/repomd.xml000066400000000000000000000001461334444677500270420ustar00rootroot00000000000000 libzypp-17.7.0/tests/repo/RepoSigcheck/unknownkey_repo/repodata/repomd.xml.asc000066400000000000000000000004531334444677500276100ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iJwEAAECAAYFAlkxg9AACgkQGg2gkyh1YAPSfAQAlimnC4dx6bCJyJxJb6BjECNA HQBtDC4MEzQ+hDiXd6YL7wjI3fu3K9sclx2ypFb3vLkK5SHQysStWMmDOEgNA96I iAuyyDVb3F24OiYOCcTKKViXAFTxykiC9dPFXdmA4vMjqcQYaxIkA17dFYvMjLLQ 5DdgmDuMS+Fv4xVjP8I= =dzhU -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/RepoSigcheck/unsigned_repo/000077500000000000000000000000001334444677500226365ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/unsigned_repo/repodata/000077500000000000000000000000001334444677500244355ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/unsigned_repo/repodata/repomd.xml000066400000000000000000000001461334444677500264460ustar00rootroot00000000000000 libzypp-17.7.0/tests/repo/RepoSigcheck/wrongsig_repo/000077500000000000000000000000001334444677500226615ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/wrongsig_repo/repodata/000077500000000000000000000000001334444677500244605ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/RepoSigcheck/wrongsig_repo/repodata/repomd.xml000066400000000000000000000002041334444677500264640ustar00rootroot00000000000000 libzypp-17.7.0/tests/repo/RepoSigcheck/wrongsig_repo/repodata/repomd.xml.asc000066400000000000000000000004531334444677500272370ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iJwEAAECAAYFAlkxg9AACgkQGg2gkyh1YAPSfAQAlimnC4dx6bCJyJxJb6BjECNA HQBtDC4MEzQ+hDiXd6YL7wjI3fu3K9sclx2ypFb3vLkK5SHQysStWMmDOEgNA96I iAuyyDVb3F24OiYOCcTKKViXAFTxykiC9dPFXdmA4vMjqcQYaxIkA17dFYvMjLLQ 5DdgmDuMS+Fv4xVjP8I= =dzhU -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/RepoSigcheck/wrongsig_repo/repodata/repomd.xml.key000066400000000000000000000005531334444677500272620ustar00rootroot00000000000000˜Y1€Îñl[KhãÙmœ²íeÛ0:C”12ØðªÔsD>HTƒIwGl ”ËÈóÌçÓŽÞºr—dð‹à2J)¿S2‚ÃjÓvŒªU"»ëkQ)¦ô—×N‘3ƒLsnb Ír¹ Y”Tm6Q(Q•.BÝÞE0ç6N4¿‘ÜWø‡ªž®2£´zypp-testsuite ˆ¹#Y1€Î  €   “(u`J[ÿvÒD¥aŒf± žiè<Ü’º4ÛÀ#ËŽásÚ(™~ÑH–w×|¸’ÍBŸ3ødl;SphÈà€ ÀëûNõ’ÿ(b F_PÚpndðà͆á›`îqcë²ë‘ÞfÀ'ÉA×öÂ(›ˆ¥’‘:6ñØù;aàÒÆ¨¼:Mlibzypp-17.7.0/tests/repo/RepoSigcheck_test.cc000066400000000000000000000300101334444677500213350ustar00rootroot00000000000000#include #include #include "zypp/ZYppFactory.h" #include "zypp/RepoManager.h" #include "TestSetup.h" using namespace boost::unit_test; using namespace zypp; using std::cout; using std::endl; #define TC_VERBOSE 0 #define COUT if ( TC_VERBOSE ) std::cout #define TAG COUT << "*** " << __PRETTY_FUNCTION__ << endl TestSetup test( Arch_x86_64, TSO_REPO_DEFAULT_GPG ); const Pathname DATADIR( TESTS_SRC_DIR "/repo/RepoSigcheck" ); /////////////////////////////////////////////////////////////////// struct KeyRingReceiver : public callback::ReceiveReport { typedef callback::ReceiveReport Base; KeyRingReceiver() { TAG; connect(); } ~KeyRingReceiver() { TAG; } virtual void reportbegin() { TAG; cblistCheck( __FUNCTION__ ); } virtual void reportend() { TAG; cblistCheck( __FUNCTION__ ); } virtual KeyTrust askUserToAcceptKey( const PublicKey &key, const KeyContext &keycontext = KeyContext() ) { TAG; cblistCheck( __FUNCTION__ ); return Base::askUserToAcceptKey( key , keycontext ); } virtual void infoVerify( const std::string & file_r, const PublicKeyData & keyData_r, const KeyContext &keycontext = KeyContext() ) { TAG; cblistCheck( __FUNCTION__ ); return Base::infoVerify( file_r, keyData_r, keycontext ); } virtual bool askUserToAcceptUnsignedFile( const std::string &file, const KeyContext &keycontext = KeyContext() ) { TAG; cblistCheck( __FUNCTION__ ); return Base::askUserToAcceptUnsignedFile( file, keycontext ); } virtual bool askUserToAcceptUnknownKey( const std::string &file, const std::string &id, const KeyContext &keycontext = KeyContext() ) { TAG; cblistCheck( __FUNCTION__ ); return Base::askUserToAcceptUnknownKey( file, id, keycontext ); } virtual bool askUserToAcceptVerificationFailed( const std::string &file, const PublicKey &key, const KeyContext &keycontext = KeyContext() ) { TAG; cblistCheck( __FUNCTION__ ); return Base::askUserToAcceptVerificationFailed( file, key, keycontext ); } public: typedef std::list CallbackList; void cblistCheck( const std::string & cb_r ) { BOOST_CHECK_EQUAL( _cblist.empty(), false ); if ( !_cblist.empty() ) { BOOST_CHECK_EQUAL( _cblist.front(), cb_r ); _cblist.pop_front(); } } CallbackList _cblist; // expected callback sequence list } krCallback; inline std::string chr( const bool & v ) { return v ? "1" : "0"; } inline std::string chr( const TriBool & v ) { return indeterminate(v) ? "*" : chr( bool(v) ); } /////////////////////////////////////////////////////////////////// /* * Check the RepoInfo methods returning which checks to perform * based on the global (zypp.conf) and local (.repo file) settings. * * *** See table in RepoInfo.h:'Repository gpgchecks' */ BOOST_AUTO_TEST_CASE(init) { ZConfig & zcfg( ZConfig::instance() ); RepoInfo repo; std::initializer_list tribools( { TriBool(indeterminate), TriBool(true), TriBool(false) } ); // global zconfig values... for ( bool g_GpgCheck : { true, false } ) { zcfg.setGpgCheck( g_GpgCheck ); for ( TriBool g_RepoGpgCheck : tribools ) { zcfg.setRepoGpgCheck( g_RepoGpgCheck ); for ( TriBool g_PkgGpgCheck : tribools ) { zcfg.setPkgGpgCheck( g_PkgGpgCheck ); // .repo values for ( TriBool r_GpgCheck : tribools ) { repo.setGpgCheck( r_GpgCheck ); for ( TriBool r_RepoGpgCheck : tribools ) { repo.setRepoGpgCheck( r_RepoGpgCheck ); for ( TriBool r_PkgGpgCheck : tribools ) { repo.setPkgGpgCheck( r_PkgGpgCheck ); // check the repo methods returning what to do: bool cfgGpgCheck = indeterminate(r_GpgCheck) ? g_GpgCheck : bool(r_GpgCheck); TriBool cfgRepoGpgCheck = indeterminate(r_GpgCheck) && indeterminate(r_RepoGpgCheck) ? g_RepoGpgCheck : r_RepoGpgCheck; TriBool cfgPkgGpgCheck = indeterminate(r_GpgCheck) && indeterminate(r_PkgGpgCheck) ? g_PkgGpgCheck : r_PkgGpgCheck; #if ( TC_VERBOSE ) COUT << chr(cfgGpgCheck) << "\t" << chr(cfgRepoGpgCheck) << "\t" << chr(cfgPkgGpgCheck) << "\t(" << chr(r_GpgCheck) << "," << chr(g_GpgCheck) << ")" << "\t(" << chr(r_RepoGpgCheck) << "," << chr(g_RepoGpgCheck) << ")" << "\t(" << chr(r_PkgGpgCheck) << "," << chr(g_PkgGpgCheck) << ")" << flush; #endif // default gpgCeck follows config BOOST_CHECK_EQUAL( repo.gpgCheck(), cfgGpgCheck ); // repoGpgCheck follows gpgCeck // explicitly defined it alters mandatory check bool willCheckRepo = repo.repoGpgCheck(); bool mandatoryCheck = repo.repoGpgCheckIsMandatory(); #if ( TC_VERBOSE ) COUT << "\t" << ( willCheckRepo ? ( mandatoryCheck ? "!" : "+" ) : "-" ) << flush; #endif if ( mandatoryCheck ) // be a subset of willCheckRepo! BOOST_CHECK_EQUAL( willCheckRepo, mandatoryCheck ); if ( cfgGpgCheck ) { BOOST_CHECK_EQUAL( willCheckRepo, true ); BOOST_CHECK_EQUAL( mandatoryCheck, !bool(!cfgRepoGpgCheck) ); // TriBool: !false = true or indeterminate } else { BOOST_CHECK_EQUAL( willCheckRepo, bool(cfgRepoGpgCheck) ); BOOST_CHECK_EQUAL( mandatoryCheck, bool(cfgRepoGpgCheck) ); } // pkgGpgCheck may depend on the repoGpgCheck result for ( TriBool r_validSignature : tribools ) // indeterminate <==> unsigned repo { repo.setValidRepoSignature( r_validSignature ); if ( r_validSignature && !willCheckRepo ) // RepoInfo must invalidate any valid (old) signature as soon as the repo check // is turned off. This prevents showing 'valid sig' for not yet refreshed repos. // Instead show 'won't be checked' immediately. BOOST_CHECK( bool(!repo.validRepoSignature()) ); else BOOST_CHECK( sameTriboolState( repo.validRepoSignature(), r_validSignature ) ); bool willCheckPkg = repo.pkgGpgCheck(); bool mandatoryCheck = repo.pkgGpgCheckIsMandatory(); #if ( TC_VERBOSE ) COUT << "\t" << chr(r_validSignature) << ( willCheckPkg ? ( mandatoryCheck ? "!" : "+" ) : "-" ) << flush; #endif if ( mandatoryCheck ) // be a subset of willCheckPkg! BOOST_CHECK_EQUAL( willCheckPkg, mandatoryCheck ); if ( cfgPkgGpgCheck ) { BOOST_CHECK_EQUAL( willCheckPkg, true ); BOOST_CHECK_EQUAL( mandatoryCheck, true ); } else if ( cfgGpgCheck ) { if ( r_validSignature ) { BOOST_CHECK_EQUAL( willCheckPkg, false ); BOOST_CHECK_EQUAL( mandatoryCheck, false ); } else // TriBool: !true = false or indeterminate/unsigned { BOOST_CHECK_EQUAL( willCheckPkg, true ); BOOST_CHECK_EQUAL( mandatoryCheck, !bool(!cfgPkgGpgCheck) ); // TriBool: !false = true or indeterminate/unsigned } } else { BOOST_CHECK_EQUAL( willCheckPkg, false ); BOOST_CHECK_EQUAL( mandatoryCheck, false ); } } #if ( TC_VERBOSE ) COUT << endl; #endif } } } } } } // reset to defaults: zcfg.setGpgCheck ( true ); zcfg.setRepoGpgCheck ( indeterminate ); zcfg.setPkgGpgCheck ( indeterminate ); } // RAII: Protect ZConfig value changes from escaping the block scope struct ZConfigGuard { ZConfigGuard() : _zcfg( ZConfig::instance() ) { _g = _zcfg.gpgCheck(); _r = _zcfg.repoGpgCheck(); _p = _zcfg.pkgGpgCheck(); } ~ZConfigGuard() { _zcfg.setGpgCheck ( _g ); _zcfg.setRepoGpgCheck( _r ); _zcfg.setPkgGpgCheck ( _p ); } ZConfig * operator->() { return &_zcfg; } ZConfig & _zcfg; bool _g; TriBool _r; TriBool _p; }; // RAII: Set and reset KeyRingReceiver callback list and response bits for new testcase struct KeyRingGuard { KeyRingGuard ( KeyRing::DefaultAccept accept_r = KeyRing::ACCEPT_NOTHING ) { KeyRing::setDefaultAccept( accept_r ); krCallback._cblist.clear(); #if ( TC_VERBOSE ) COUT << "================================================================================" << endl; KeyRing & keyRing( *getZYpp()->keyRing() ); COUT << "K " << keyRing.publicKeys() << endl; COUT << "T " << keyRing.trustedPublicKeys() << endl; COUT << KeyRing::defaultAccept() << endl; ZConfig & zcfg( ZConfig::instance() ); COUT << "ZConf " << chr( zcfg.gpgCheck() ) << chr( zcfg.repoGpgCheck() ) << chr( zcfg.pkgGpgCheck() ) << endl; #endif } ~KeyRingGuard() { BOOST_CHECK_EQUAL( krCallback._cblist.empty(), true ); KeyRing::setDefaultAccept( KeyRing::ACCEPT_NOTHING ); krCallback._cblist.clear(); } }; void testLoadRepo( bool succeed_r, // whether loadRepos should succeed or fail with RepoException const std::string & repo_r, // name of the test repo to load KeyRing::DefaultAccept accept_r, // Callback response bits to set (mimics user input) KeyRingReceiver::CallbackList cblist_r ) // Callback sequence list expected { KeyRingGuard _guard( accept_r ); krCallback._cblist = std::move(cblist_r); if ( succeed_r ) test.loadRepo( DATADIR/repo_r, repo_r ); else BOOST_CHECK_THROW( test.loadRepo( DATADIR/repo_r, repo_r ), repo::RepoException ); } // ACCEPT_NOTHING = 0x0000, // ACCEPT_UNSIGNED_FILE = 0x0001, // ACCEPT_UNKNOWNKEY = 0x0002, // TRUST_KEY_TEMPORARILY = 0x0004, // TRUST_AND_IMPORT_KEY = 0x0008, // ACCEPT_VERIFICATION_FAILED = 0x0010, BOOST_AUTO_TEST_CASE(unsigned_repo) { // askUserToAcceptUnsignedFile actually depends on the gpgcheck settings. // Mandatory on 'R' cases. Otherwise an unsigend repo is accepted but 'pkggpg on' // is enforced. ZConfigGuard zcfg; zcfg->setRepoGpgCheck( false ); // unsafe std::string repo( "unsigned_repo" ); testLoadRepo( true, repo, KeyRing::ACCEPT_NOTHING, { } ); zcfg->setRepoGpgCheck( indeterminate ); // the default testLoadRepo( false, repo, KeyRing::ACCEPT_NOTHING, { "reportbegin", "askUserToAcceptUnsignedFile", "reportend" } ); testLoadRepo( true, repo, KeyRing::ACCEPT_UNSIGNED_FILE, { "reportbegin", "askUserToAcceptUnsignedFile", "reportend" } ); } BOOST_AUTO_TEST_CASE(unknownkey_repo) { std::string repo( "unknownkey_repo" ); testLoadRepo( false, repo, KeyRing::ACCEPT_NOTHING, { "reportbegin", "askUserToAcceptUnknownKey", "reportend" } ); testLoadRepo( true, repo, KeyRing::ACCEPT_UNKNOWNKEY, { "reportbegin", "askUserToAcceptUnknownKey", "reportend" } ); } BOOST_AUTO_TEST_CASE(wrongsig_repo) { std::string repo( "wrongsig_repo" ); // IMPORTED KEYS WILL STAY IN KEYRING! FIXIT if it disturbs subsequent tests // 1st testcase with a key, so on the fly check askUserToAcceptKey // being called unless the key is imported in the trusted ring testLoadRepo( false, repo, KeyRing::ACCEPT_NOTHING, { "reportbegin", "askUserToAcceptKey", "reportend" } ); testLoadRepo( false, repo, KeyRing::TRUST_KEY_TEMPORARILY, { "reportbegin", "askUserToAcceptKey", "infoVerify", "askUserToAcceptVerificationFailed", "reportend" } ); testLoadRepo( false, repo, KeyRing::ACCEPT_NOTHING, { "reportbegin", "askUserToAcceptKey", "reportend" } ); testLoadRepo( false, repo, KeyRing::TRUST_AND_IMPORT_KEY, { "reportbegin", "askUserToAcceptKey", "infoVerify", "askUserToAcceptVerificationFailed", "reportend" } ); // Now the key is in the trusted ring (no more askUserToAcceptKey) testLoadRepo( false, repo, KeyRing::ACCEPT_NOTHING, { "reportbegin", "infoVerify", "askUserToAcceptVerificationFailed", "reportend" } ); testLoadRepo( true, repo, KeyRing::KeyRing::ACCEPT_VERIFICATION_FAILED, { "reportbegin", "infoVerify", "askUserToAcceptVerificationFailed", "reportend" } ); } BOOST_AUTO_TEST_CASE(signed_repo) { std::string repo( "signed_repo" ); testLoadRepo( true, repo, KeyRing::KeyRing::ACCEPT_NOTHING, // relies on wrongsig_repo having accepted the key! (already in trusted ring) { "reportbegin", "infoVerify", "reportend" } ); } BOOST_AUTO_TEST_CASE(summary) { KeyRingGuard _guard; KeyRing & keyRing( *getZYpp()->keyRing() ); BOOST_CHECK_EQUAL( keyRing.publicKeys().size(), 1 ); BOOST_CHECK_EQUAL( keyRing.trustedPublicKeys().size(), 1 ); BOOST_CHECK_EQUAL( KeyRing::defaultAccept(), KeyRing::ACCEPT_NOTHING ); BOOST_CHECK_EQUAL( test.satpool().repos().size(), 5 ); // } libzypp-17.7.0/tests/repo/RepoVariables_test.cc000066400000000000000000000256361334444677500215470ustar00rootroot00000000000000#include #include #include #include #include "zypp/ZConfig.h" #include "zypp/Pathname.h" #include "zypp/Url.h" #include "zypp/base/ValueTransform.h" #include "zypp/repo/RepoVariables.h" using std::cout; using std::endl; using namespace zypp; using namespace boost::unit_test; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/repo/yum/data") typedef std::list ListType; namespace std { std::ostream & operator<<( std::ostream & str, const ListType & obj ) { str << "["; for ( const auto & el : obj ) str << " " << el; return str << " ]"; } } // A plain functor struct PlainTransformator { std::string operator()( const std::string & value_r ) const { return "{"+value_r+"}"; } }; // plain functor + required std::unary_function typedefs struct FncTransformator : public PlainTransformator, public std::unary_function {}; BOOST_AUTO_TEST_CASE(value_transform) { using zypp::base::ValueTransform; using zypp::base::ContainerTransform; typedef ValueTransform ReplacedString; typedef ContainerTransform ReplacedStringList; ReplacedString r( "val" ); BOOST_CHECK_EQUAL( r.raw(), "val" ); BOOST_CHECK_EQUAL( r.transformed(), "{val}" ); r.raw() = "new"; BOOST_CHECK_EQUAL( r.raw(), "new" ); BOOST_CHECK_EQUAL( r.transformed(), "{new}" ); ReplacedStringList rl; BOOST_CHECK_EQUAL( rl.empty(), true ); BOOST_CHECK_EQUAL( rl.size(), 0 ); BOOST_CHECK_EQUAL( rl.raw(), ListType() ); BOOST_CHECK_EQUAL( rl.transformed(), ListType() ); rl.raw().push_back("a"); rl.raw().push_back("b"); rl.raw().push_back("c"); BOOST_CHECK_EQUAL( rl.empty(), false ); BOOST_CHECK_EQUAL( rl.size(), 3 ); BOOST_CHECK_EQUAL( rl.raw(), ListType({ "a","b","c" }) ); BOOST_CHECK_EQUAL( rl.transformed(), ListType({ "{a}", "{b}", "{c}" }) ); BOOST_CHECK_EQUAL( rl.transformed( rl.rawBegin() ), "{a}" ); } void helperGenRepVarExpandResults() { // Generate test result strings for RepVarExpand: // ( STRING, REPLACED_all_vars_undef, REPLACED_all_vars_defined ) // Crefully check whether new stings are correct before // adding them to the testccse. std::map vartable; std::map> result; bool varsoff = true; auto varLookup = [&vartable,&varsoff]( const std::string & name_r )->const std::string * { if ( varsoff ) return nullptr; std::string & val( vartable[name_r] ); if ( val.empty() ) { val = "["+name_r+"]"; } return &val; }; for ( auto && value : { "" , "$" , "$${}" , "$_:" , "$_A:" , "$_A_:" , "$_A_B:" , "${_A_B}" , "\\${_A_B}" // no escape on level 0 , "${_A_B\\}" // no close brace , "${C:-a$Bba}" , "${C:+a$Bba}" , "${C:+a${B}ba}" , "${C:+a\\$Bba}" // escape on level > 0; no var $Bba , "${C:+a$Bba\\}" // escape on level > 0; no close brace C , "${C:+a${B}ba}" , "${C:+a\\${B}ba}" // escape on level > 0; no var ${B} , "${C:+a${B\\}ba}" // escape on level > 0; no close brace B , "${C:+a\\${B\\}ba}" , "__${D:+\\$X--{${E:-==\\$X{o\\}==} }--}__\\${B}${}__" , "__${D:+\\$X--{${E:-==\\$X{o\\}==}\\}--}__\\${B}${}__" } ) { varsoff = true; result[value].first = repo::RepoVarExpand()( value, varLookup ); varsoff = false; result[value].second = repo::RepoVarExpand()( value, varLookup ); } for ( const auto & el : result ) { #define CSTR(STR) str::form( "%-40s", str::gsub( "\""+STR+"\"", "\\", "\\\\" ).c_str() ) cout << "RepVarExpandTest( " << CSTR(el.first) << ", " << CSTR(el.second.first) << ", " << CSTR(el.second.second) << " );" << endl; } } void RepVarExpandTest( const std::string & string_r, const std::string & allUndef_r, const std::string & allDef_r ) { std::map vartable; bool varsoff = true; auto varLookup = [&vartable,&varsoff]( const std::string & name_r )->const std::string * { if ( varsoff ) return nullptr; std::string & val( vartable[name_r] ); if ( val.empty() ) { val = "["+name_r+"]"; } return &val; }; varsoff = true; BOOST_CHECK_EQUAL( repo::RepoVarExpand()( string_r, varLookup ), allUndef_r ); varsoff = false; BOOST_CHECK_EQUAL( repo::RepoVarExpand()( string_r, varLookup ), allDef_r ); } BOOST_AUTO_TEST_CASE(RepVarExpand) { // ( STRING , REPLACED_all_vars_undef , REPLACED_all_vars_defined ) RepVarExpandTest( "" , "" , "" ); RepVarExpandTest( "$" , "$" , "$" ); RepVarExpandTest( "$${}" , "$${}" , "$${}" ); RepVarExpandTest( "$_:" , "$_:" , "[_]:" ); RepVarExpandTest( "$_A:" , "$_A:" , "[_A]:" ); RepVarExpandTest( "$_A_:" , "$_A_:" , "[_A_]:" ); RepVarExpandTest( "$_A_B:" , "$_A_B:" , "[_A_B]:" ); RepVarExpandTest( "${C:+a$Bba\\}" , "${C:+a$Bba\\}" , "${C:+a[Bba]\\}" ); RepVarExpandTest( "${C:+a$Bba}" , "" , "a[Bba]" ); RepVarExpandTest( "${C:+a${B\\}ba}" , "${C:+a${B\\}ba}" , "${C:+a${B\\}ba}" ); RepVarExpandTest( "${C:+a${B}ba}" , "" , "a[B]ba" ); RepVarExpandTest( "${C:+a\\$Bba}" , "" , "a$Bba" ); RepVarExpandTest( "${C:+a\\${B\\}ba}" , "" , "a${B}ba" ); RepVarExpandTest( "${C:+a\\${B}ba}" , "ba}" , "a${Bba}" ); RepVarExpandTest( "${C:-a$Bba}" , "a$Bba" , "[C]" ); RepVarExpandTest( "${_A_B\\}" , "${_A_B\\}" , "${_A_B\\}" ); RepVarExpandTest( "${_A_B}" , "${_A_B}" , "[_A_B]" ); RepVarExpandTest( "\\${_A_B}" , "\\${_A_B}" , "\\[_A_B]" ); RepVarExpandTest( "__${D:+\\$X--{${E:-==\\$X{o\\}==} }--}__\\${B}${}__", "__--}__\\${B}${}__" , "__$X--{[E] --}__\\[B]${}__" ); RepVarExpandTest( "__${D:+\\$X--{${E:-==\\$X{o\\}==}\\}--}__\\${B}${}__", "____\\${B}${}__" , "__$X--{[E]}--__\\[B]${}__" ); } void varInAuthExpect( const Url & url_r, const std::string & expHost_r, const std::string & expPort_r, const std::string & expPath_r, const std::string & user_r = std::string(), const std::string & pass_r = std::string() ) { BOOST_CHECK_EQUAL( url_r.getHost(), expHost_r ); BOOST_CHECK_EQUAL( url_r.getPort(), expPort_r ); BOOST_CHECK_EQUAL( url_r.getPathName(), expPath_r ); BOOST_CHECK_EQUAL( url_r.getUsername(), user_r ); BOOST_CHECK_EQUAL( url_r.getPassword(), pass_r ); } BOOST_AUTO_TEST_CASE(replace_text) { /* check RepoVariablesStringReplacer */ ZConfig::instance().setSystemArchitecture(Arch("i686")); ::setenv( "ZYPP_REPO_RELEASEVER", "13.2", 1 ); repo::RepoVariablesStringReplacer replacer1; BOOST_CHECK_EQUAL( replacer1(""), "" ); BOOST_CHECK_EQUAL( replacer1("$"), "$" ); BOOST_CHECK_EQUAL( replacer1("$arc"), "$arc" ); BOOST_CHECK_EQUAL( replacer1("$arch"), "i686" ); BOOST_CHECK_EQUAL( replacer1("$archit"), "$archit" ); BOOST_CHECK_EQUAL( replacer1("${rc}it"), "${rc}it" ); BOOST_CHECK_EQUAL( replacer1("$arch_it"), "$arch_it" ); BOOST_CHECK_EQUAL( replacer1("$arch-it"), "i686-it" ); BOOST_CHECK_EQUAL( replacer1("$arch it"), "i686 it" ); BOOST_CHECK_EQUAL( replacer1("${arch}it"), "i686it" ); BOOST_CHECK_EQUAL( replacer1("${arch}it$archit $arch"), "i686it$archit i686" ); BOOST_CHECK_EQUAL( replacer1("X${arch}it$archit $arch-it"), "Xi686it$archit i686-it" ); BOOST_CHECK_EQUAL( replacer1("${releasever}"), "13.2" ); BOOST_CHECK_EQUAL( replacer1("${releasever_major}"), "13" ); BOOST_CHECK_EQUAL( replacer1("${releasever_minor}"), "2" ); BOOST_CHECK_EQUAL(replacer1("http://foo/$arch/bar"), "http://foo/i686/bar"); /* check RepoVariablesUrlReplacer */ repo::RepoVariablesUrlReplacer replacer2; // first of all url with {} must be accepted: BOOST_CHECK_NO_THROW( Url("ftp://site.org/${arch}/?arch=${arch}") ); BOOST_CHECK_NO_THROW( Url("ftp://site.org/${arch:-noarch}/?arch=${arch:-noarch}") ); BOOST_CHECK_NO_THROW( Url("ftp://site.org/${arch:+somearch}/?arch=${arch:+somearch}") ); BOOST_CHECK_EQUAL(replacer2(Url("ftp://user:secret@site.org/$arch/")).asCompleteString(), "ftp://user:secret@site.org/i686/"); BOOST_CHECK_EQUAL(replacer2(Url("http://user:my$arch@site.org/$basearch/")).asCompleteString(), "http://user:my$arch@site.org/i386/"); BOOST_CHECK_EQUAL(replacer2(Url("http://site.org/update/?arch=$arch")).asCompleteString(), "http://site.org/update/?arch=i686"); BOOST_CHECK_EQUAL(replacer2(Url("http://site.org/update/$releasever/?arch=$arch")).asCompleteString(), "http://site.org/update/13.2/?arch=i686"); // - bsc#1067605: Allow VAR in Url authority // fake some host name via $arch varInAuthExpect( replacer2(Url("ftp://$arch/path")), "i686", "", "/path" ); varInAuthExpect( replacer2(Url("ftp://$arch:1234/path")), "i686", "1234", "/path" ); // don't expand in user/pass! varInAuthExpect( replacer2(Url("ftp://$arch:$arch@$arch:1234/path")), "i686", "1234", "/path", "$arch", "$arch" ); // No support for complex vars: // BOOST_CHECK_NO_THROW( Url("ftp://${arch:-nosite}/path") ); // BOOST_CHECK_NO_THROW( Url("ftp://${arch:+somesite}/path") ); } BOOST_AUTO_TEST_CASE(uncached) { ::setenv( "ZYPP_REPO_RELEASEVER", "13.2", 1 ); repo::RepoVariablesStringReplacer replacer1; BOOST_CHECK_EQUAL( replacer1("${releasever}"), "13.2" ); ::setenv( "ZYPP_REPO_RELEASEVER", "13.3", 1 ); BOOST_CHECK_EQUAL( replacer1("${releasever}"), "13.3" ); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/repo/susetags/000077500000000000000000000000001334444677500172655ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/CMakeLists.txt000066400000000000000000000000261334444677500220230ustar00rootroot00000000000000 ADD_TESTS(Downloader)libzypp-17.7.0/tests/repo/susetags/Downloader_test.cc000066400000000000000000000067431334444677500227430ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/repo/susetags/Downloader.h" #include "tests/zypp/KeyRingTestReceiver.h" using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; using namespace zypp::repo; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/repo/susetags/data") BOOST_AUTO_TEST_CASE(susetags_download) { KeyRingTestReceiver keyring_callbacks; keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); Pathname p = DATADIR + "/stable-x86-subset"; MediaSetAccess media(p.asDirUrl()); RepoInfo repoinfo; repoinfo.setAlias("testrepo"); repoinfo.setPath("/"); susetags::Downloader downloader(repoinfo); filesystem::TmpDir tmp; Pathname localdir(tmp.path()); downloader.download(media,localdir); MIL << "All files downloaded" << endl; const char* files[] = { "/suse", "/suse/setup", "/suse/setup/descr", "/suse/setup/descr/kde-10.3-71.noarch.pat", "/suse/setup/descr/packages", "/suse/setup/descr/packages.DU", "/suse/setup/descr/packages.en", // "/suse/setup/descr/packages.es", "/suse/setup/descr/patterns", "/content", "/gpg-pubkey-7e2e3b05-44748aba.asc", "/media.1", // "/media.1/products.asc", // "/media.1/products.key", "/media.1/media", // "/media.1/products", // "/media.1/info.txt", // "/media.1/license.zip", "/gpg-pubkey-a1912208-446a0899.asc", "/gpg-pubkey-307e3d54-44201d5d.asc", "/gpg-pubkey-9c800aca-40d8063e.asc", "/content.asc", "/content.key", "/gpg-pubkey-3d25d3d9-36e12d04.asc", "/gpg-pubkey-0dfb3188-41ed929b.asc", NULL }; int i=0; while ( files[i] != NULL ) { BOOST_CHECK_MESSAGE( PathInfo(localdir + files[i] ).isExist(), string(files[i]).c_str() ); i++; } } BOOST_AUTO_TEST_CASE(susetags_gz_download) { KeyRingTestReceiver keyring_callbacks; keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); Pathname p = DATADIR + "/stable-x86-subset-gz"; MediaSetAccess media(p.asDirUrl()); RepoInfo repoinfo; repoinfo.setAlias("testrepo"); repoinfo.setPath("/"); susetags::Downloader downloader(repoinfo); filesystem::TmpDir tmp; Pathname localdir(tmp.path()); downloader.download(media,localdir); const char* files[] = { "/suse", "/suse/setup", "/suse/setup/descr", "/suse/setup/descr/kde-10.3-71.noarch.pat.gz", "/suse/setup/descr/packages.gz", "/suse/setup/descr/packages.DU.gz", "/suse/setup/descr/packages.en.gz", // "/suse/setup/descr/packages.es", "/suse/setup/descr/patterns.gz", "/content", "/gpg-pubkey-7e2e3b05-44748aba.asc", "/media.1", // "/media.1/products.asc", // "/media.1/products.key", "/media.1/media", // "/media.1/products", // "/media.1/info.txt", // "/license.tar.gz", // "/control.xml", // "/installation.xml", "/gpg-pubkey-a1912208-446a0899.asc", "/gpg-pubkey-307e3d54-44201d5d.asc", "/gpg-pubkey-9c800aca-40d8063e.asc", "/content.asc", "/content.key", "/gpg-pubkey-3d25d3d9-36e12d04.asc", "/gpg-pubkey-0dfb3188-41ed929b.asc", NULL }; int i=0; while ( files[i] != NULL ) { BOOST_CHECK_MESSAGE( PathInfo(localdir + files[i] ).isExist(), string(files[i]).c_str() ); i++; } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/repo/susetags/data/000077500000000000000000000000001334444677500201765ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/000077500000000000000000000000001334444677500233215ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/media.1/000077500000000000000000000000001334444677500245375ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/media.1/build000066400000000000000000000000471334444677500255620ustar00rootroot00000000000000openSUSE-11.1-Beta5-DVD-i586-Build0128 libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/media.1/directory.yast000066400000000000000000000000701334444677500274420ustar00rootroot00000000000000build info.txt media products products.asc products.key libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/media.1/media000066400000000000000000000000321334444677500255340ustar00rootroot00000000000000openSUSE 20081112071348 1 libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/media.1/products000066400000000000000000000000221334444677500263170ustar00rootroot00000000000000/ openSUSE 11.1-0 libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/000077500000000000000000000000001334444677500247665ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/SHA1SUMS000066400000000000000000000001531334444677500261140ustar00rootroot0000000000000033bbc20526153c35d11ce0b1c3d6b7be151b92d9 content bfc5ac3540529a9a898c3c444096f9bcbb5db780 directory.yast libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/content000066400000000000000000000013111334444677500263570ustar00rootroot00000000000000CONTENTSTYLE 11 BASEARCHS i586 DATADIR suse DESCRDIR suse/setup/descr DISTRIBUTION openSUSE FLAVOR dvd LABEL openSUSE 11.1 LINGUAS cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW NAME openSUSE REFERENCES openSUSE-release = 11.1 RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/11.0.42/release-notes-openSUSE.rpm REPO_LOCATION http://download.opensuse.org/factory/repo/oss/ SUMMARY openSUSE VENDOR openSUSE VERSION 11.1 META SHA1 3d0cdf34257cc2c54929bf5414969142cad1d421 packages META SHA1 2d68731ab2f3c86b81f7672798f871cf96b2d0fc packages.DU META SHA1 07c36c760ed0c58b58d6d8fcfdd2717df02c4256 packages.en HASH SHA1 875e73cf2ee139203208c860fbfd7fa5cb291c7e license.tar.gzlibzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/content.asc000066400000000000000000000003051334444677500271260ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkktcUUACgkQm+zCtd2wN1ZrDgCdFYz7dG8ui0ueFLOIHYxFgunL VEYAnjzykFqwVAmYhF/QNbfriOqN5z1B =4Jf7 -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/content.key000066400000000000000000000671571334444677500271720ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBDsj/RYRBACQD/DCxkMgmEjBNYh53AfsV+zcMaz4nDmeEElANfHrVzVGx33N Siiqs33RIjV35Gd8OH1iSnbA7ef0gWELgVSToK2ydv/3X5Cbcb1MOWYQKJE1dQz7 fw7Ic9nP7NieM18YMsOYEmCvyL4sLZviQIlb3caP+OpI/GAoNINY8m9yowCgxgx1 L+jnJznXyKy7v5WgwMyrE2cD/38Nvp62Rq1/IqhUDc3SDUp5+xPddwOZ/E7P9F73 0Gb2ec2fhAm9QZyVvFvLa+SJq2/LvY+vITZSRI0HTBZf4Yrzd6eHu/cDp0m0o/BS McuoaHmKeHYcyIa2w8LMREpchgdlY/LnHR83Yipc3iegBRUvoTtwUYMqpswwi+6i 50nhA/9MC5cPOZbPpqbaDbSz0NtAVM2gcvgiBx4VKCh/AhkZ+abzogeHn6uT2eaP 3Fnk4YOa0FEbO+YHg3Lu45tZV3pBQUZoY07r5niT0Sb6dAKO/j/omEt4q44OO3ba fanEvFurtgpkszoD20yheQLhv7CVdS8IUfQ2R+r0eQjxtAfJWLQmRHVuY2FuIE1h Yy1WaWNhciBQcmV0dCA8ZHVuY2FuQHB1Yy5jbD6IVwQTEQIAFwULBwoDBAMVAwID FgIBAheABQJIkdYDAAoJEM0etqlmfkLR6EgAn2/KapnsJrHLcwD3XxHc3KJzosii AJ9K468Njg7GOzlIP1lfHhIRNB8yjohXBBMRAgAXBQI7I/0WBQsHCgMEAxUDAgMW AgECF4AACgkQzR62qWZ+QtGplQCcDxIiwPV5CSENHsaR6R1da2VtbVYAnR4C1zKU A5MZ/cB7OC0/++Va0uPmtCdEdW5jYW4gTWFjLVZpY2FyIFByZXR0IDxkdW5jYW5A a2RlLm9yZz6IXgQTEQIAHgUCQkG9ngIbIwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAK CRDNHrapZn5C0f+oAJ9B08kix2phsvE79ZFUIbFsjtm3QgCeNPFdMcNJ2FlrDC1o l2arF81JBDq0LUR1bmNhbiBNYWMtVmljYXIgUHJldHQgPGR1bmNhbkBtYWMtdmlj YXIuY29tPoheBBMRAgAeBQJCQb14AhsjBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJ EM0etqlmfkLRSwYAnjnoAUut+98JScgZ3RUeELfccgs2AJ49zu0stW/6dfKHUG6v KxbevTRtBLQqRHVuY2FuIE1hYy1WaWNhciBQcmV0dCA8ZG1hY3ZpY2FyQHN1c2Uu ZGU+iGAEExECACAFAkiR1d4CGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDN HrapZn5C0aUTAJ97XpoPCkZh6tKwWJLPSd71rTUu3QCdEIH0RIEn8Hd1EvOvrJUi xYNg1Tq0LER1bmNhbiBNYWMtVmljYXIgUHJldHQgPGRtYWN2aWNhckBnbWFpbC5j b20+iGMEExECACMCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCSJHWAwIZAQAK CRDNHrapZn5C0Q32AJ0eHwMEmyJrW703lxiU8OdlzlBLawCfQoFccGWKTrQXjem9 q7rjZ8BJltm5AQ0EOyP9LxAEAJ2V7CaBeNwDBrOXHAbH3p2y2tRmnIwQNtdvsCf7 aEQm7Pcc7OXaM4fk52OD8eHEEmn3XLJpt48DFXgnT3UWdEbieahJtntvapvZ49jE y1TChI200vxWyuUpMSri1Fx7IGchSxrLBY01gyrF/48vHLtCm8vvm+oD5DtxbdAY 8MkTAAMFBACUp+tTe06sjzrORkgsc1CAG7IeD5Rng2d1HIPgmP/lmUuwsyZVGYg1 qiBQA5oqeRXLhfzFdJmIHHfJzAVXMte5mhH9Tp3z4RITo7KbvMQZ0jQRlkB0MfYe Qgcuuq4gUhxvHMxffyJSploMqPkxiV68c9UdlSGIKGraOgSmUnbhWYhGBBgRAgAG BQI7I/0vAAoJEM0etqlmfkLRbgUAnjGNmh+7esr1UeqNVmKKSpnMWcNFAJ94i40t /KUd6iH0TeEIc5Lc7taHwZkBogQ7JSbVEQQA4xR5LOB2ZWSHN1I1kKyAktnSm2wV sW0SCpoq1w9JjmbDgnZpDKSIMuAVjNh53DeQbT/9XsofpyMBx5xSoM6isQCGNwI1 sxA1Syj2yWdsXUHHhGyq8d2a8sLeCnchxvQ3gDGJoYm/AVWfRoNM8kw+vx6l5gNE FDnzh0CiwQKVU1cAoP/heoi+DpQV9cSpYNe8hzW3QBbDBACDh/9awQp3NrCI8oxX YIWuTsQAsDib66HQDi4w8US/7kVp4zqyoTN+gPk8knOS7z6WqpxmHD0DDZu4VE4U aC1Oa2H/63VFePcvwEUGQwHWThX+JnmJNHO9+XO0003KsH+0Yt4FRn64bJkRcL1P ScjYZFif/R6TpNRGQmC4JfH+EgP7BCPQkVoi0vvDx39NqT81WZAWc0zGTSFJVypb TyfYUrG59T9DxwH5NYWMXIdEAEFp+/OheT/AwU+22PfxY9k7rvUkXg4PoStV9yv0 vEKVGd2g7kDwU77c068iNJO8LEYqF5fnSO8ieU67ZglKZSe0EU2hL6WEZ9TLh6Kz PHsaq8S0MUZyYW5jaXNjYSBRdWludGFuYSBOYXJhbmpvIDxmcmFuY2lzY2FAaG90 cG9wLmNvbT6IYAQQEQIAGAUCOyUm1QgLAwkIBwIBCgIZAQUbAwAAAAASCRBnGpo8 nSL6HQdlR1BHAAEBtLcAoOOto28BA1l20JI6ewbDqZ9e4TSIAKDE4ysvUE+aUj7w kdr4ODvQxSiSXIhGBBARAgAGBQI7JUWHAAoJEM0etqlmfkLRk+gAmwVtmmKob6sh PFJjk6STXkjWvx65AKCa9f2BjS0dJjieCpucWfEaaxh7+7kCDQQ7JSbVEAgA9kJX twh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xk hkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58 yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4 DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/ POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlL IhkmuquiXsNV6TILOwACAggA3d73TIqNfiKwTEcXx7OW8KlE8UGx7hiK1+IBakLM FkB54oVj6aLQyBsH/rrgVs9V/UYhygjyDhNK0715Og7B9bP+YhNPswix7KBj0mOA 1O1mEIK6rpkgT9AqhARcwSUlDf4gg+Dz+pX485a5nw85xGJ+9ygySlzOXNE+GCW7 PTRQUpqvKs2PTAIsZZLcuY789xl/PxDE4EsRvYoevAk2nLqvru3820LM4ynKwKqz 0QICTLVcE7swa6ck6f53pbzhvEk0dM99MirtJMWkj7qYvwQwoP6U40cAE+k5pHTZ tboXmycyvC+mysvJrKmVTLrHMZ0v4Tth2eudUbwsrMkRYYhUBBgRAgAMBQI7JSbV BRsMAAAAABIJEGcamjydIvodB2VHUEcAAQF5ZgCg9T9QjbJA+h+uPT22O0x2BSIK 4LMAoJZimOZ4Tk3USFLE4uXDd+whyKG+mQGiBDslNloRBADEn8TIB8BJTMKJzQHm sFBk/DYaoH4ERgqiRhyt7+ssd/5rOdbFQOD3QO47esBvP524bM3nkAiMIqmbWsRq B2XExLuNtfRHTj8zHm2y3Jtogh+e5FxgHP75+lThgoTYcGbflYHaRIMv/vYBDkSg tHAQ09F/d6GuYptTuKudN9H67wCg/96X+Ac+Kpot+VPb1mA2p/zaiBcEAKHEgFrX 59lrUulJah5CAXaXP2buPQ1Fiday+MGoCIUYBpW5cs6mThixIZzqwbB149/8sV4v rBd5nQ8vWdddgyvtS9bWkn/C5ERbLrW8bCarph/m01NZsG45yYHeA/P6M/K8lDnO jp8LJgKmho1kfzLpfh/JrcymxaVR4y/LojLPA/0f5k3urRkyEAimp4p05/aLyW0Y LuFdh+MAfoL6VeOt1u1LZ2OsqQmTsYI7MPrHUX6zioh/k5OW0pEVHmiYBZtzoX28 fYOAnJym2Cw0dTPE1gJVXG9ZGaqq2+HWmB8/XuYw9qHmUL2p3Dga7E4Oo49ja5qs 57Ni5Ffo3/wHDGfNErQpTWljaGFlbCBNYWMtVmljYXIgUHJldHQgPG1pbWFjdmlj QHB1Yy5jbD6IYAQQEQIAGAUCOyU2WggLAwkIBwIBCgIZAQUbAwAAAAASCRBtSv26 VLUDggdlR1BHAAEBphMAnimtyySasb0oNoRdfPiUEuBe4uZkAKDGXjDyVlUlppVO NYpgBo8B6D+DcohGBBARAgAGBQI7JUcfAAoJEM0etqlmfkLRZEAAn2zEtLL/5Pdb VXF1eaaCtAkfpvRLAJ98sHeXEMN3npwp9c/qt4MCNxvfc7kCDQQ7JTZaEAgA9kJX twh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xk hkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58 yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4 DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/ POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlL IhkmuquiXsNV6TILOwACAgf+Os+ycvrsYeE4gApXVFdty6c49JWi/x4QJ/kr9NsQ GVu2FYByKttWcMokPWWxKNNOR6ryz3Ie2MpiF8aGIqJImpwoG53B7RtGnml9U/yD z2yW8DUcdvthgi6J4Gzb5gDvWwlj/S1XlWk/Q+C6bAorpoQLYjsObf0NnADzIDdN 4Uy5ESNixHWZ7GqSw6IEKOb+qDoixGWrEq37dDDML95dRjFL8XX8K0dhzO1qKSUu h+ACtltLUgSzyhWp1vSgLC1XAFRVert5RF47l53DqPX3hVlH/AOCwSa+XEAbtpCr gXMtImsgs9fLOOipasQggli7voJ8XE1N2DRHUBeNTY3YGIhUBBgRAgAMBQI7JTZa BRsMAAAAABIJEG1K/bpUtQOCB2VHUEcAAQFpOgCg5hPPL3haLptW/G8AgAyiYzV9 Vs4AoKietcZ1/NBAS7QDvK0GUEgSsgAUmQGiBDslQEkRBADgDXtg08dhjHQpv9Si svzvROcsr6QRFOLWf95GWh7c6SI7Pj5mTClUaJXBRjLuvOR0L7w8l5nVJ/4kzSjl e1ad04eDzP3sB4rNK18l7GAwc0ijV0mp/Kl9F4iibco3cCIMsjysWgUmlk+dYYWQ ubQA/EgTs7kFQo9QRxzojqnSywCg/5CZ5TJ19gNS8knyu819v6ZSkV8D/01Fem2W ZejqsmNBNiY1JoWxnTofi3AjMv6j/+NjyBuU9ozIhUicx4y+Ro05eKUZ+VAIecVb VhEqH9VUriX48TDrNxu4OGJh62q58s0u/tqIX5OrvrpmdOC1UTdcc2CM88vssTt8 oxauZeM7YAkY9rApXUniyfnJ3fdd3FlCIbvaA/9XXrlBjG/3HQSPfknbqLlCvEcl elRmm6LAX8fuf/JFgj0ctRMAJKB6HOE7/pvl3yRMMITwmd9lB/s2u+fqcwV1bDqf nyV8h3KFpTCGM1qKT+EaaT/8JhFJifYDjBEnUe9mYG7dUlt+Ff9Fj6ZRJQs9vszz QcsJDzNpys+j/KJutbQtRHVuY2FuIE1hYy1WaWNhciBHYXLtbiA8ZHVuY2FuQG1h Yy12aWNhci5jb20+iGAEEBECABgFAjslQEkICwMJCAcCAQoCGQEFGwMAAAAAEgkQ wSqJHVebm9QHZUdQRwABAeHRAJsGKaYQp44NzYEjS9dsEAT4sYKzDgCgw4c7kDar ZL/qKqFvHbvsPS6fRteIRgQQEQIABgUCOyVG9QAKCRDNHrapZn5C0WO7AKCBUULk 55fR/yavkYgUhL9AX0rShgCfQ0jjVarVQNc/cj5ilTdKqSkeJ8q5Ag0EOyVAShAI APZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mU rfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VH MGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2 azNsOA1FHQ98iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMh LLUq/zzhsSlAGBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+c fL2JSyIZJrqrol7DVekyCzsAAgIH/3NYWNGw9Wa8B6Ow6NyS2WSBrx33ZxInDgOb Ze72mO/GSyxxZqxPiqTFTpajTD+HWKQuvSfMGZdD1kJZTrNEI/MNLwVBhrgxLX2q rmq1aJgWa5aRcv05wHuIUrw2g220oZ09gUhXuF3U/oDUCAX36d16CaPCMJV1TRUo c2L1WoLP2BjzIkAgKrqUGvIFNsvtXe3cNU5dSQzF0spExuCz1Wy67/T4fzLSJpiW adl/eN67cp83ega5fyYy9NpISmeiFcV25UJqbQM0ktilZzDhx+evmYd6PHP7i8Oq gC1oHajEohfo9kmyO/AXJ/v08svnSJVO0G/9qQeuFp3JVeBHsN6IVAQYEQIADAUC OyVASgUbDAAAAAASCRDBKokdV5ub1AdlR1BHAAEBRRIAnjhaS/m/eYLw2g79GuLD /1x12Xj9AKCW04cRwUxoIirwdJxLNRT2GoLAdpkBogRDRPbUEQQAqD1L0hdAtxso Pdwc34z6EM3yBuynB/l9TzHe8LGhePAed7dle6ceDBsOVgsEcukvm5M/OjrN2HMX sJtGu/1nvxtEJs5sjjg/n/i+bO0q9KzNX5hVRmUSop9TF9LO2KV+NK0h6LjUmF11 9r7vqO7ib5MyPP8n9eimnOG9Zz940+cAoLlehpdXlpDkvQ38AVLiHcCzm843A/9g faz7LjeJoW40wJz8c/HzCiNq/uvFLxJInFSHiimrhKfSVnXn0eWH79pKGoKmQtxf eedEo2cNq/1psdEYQAOJrJLjF8CGraN/TSvfqF6oElW8kwgG/EhID5cOtH/zHLZS L3kaU5kmki9+7Y/lBB6jlEj6EZNFTV0zC9Ka1qblcQP/QGIietl/9Aldw5LHnCr6 94VnQ91mYaJ4kSJ2IZHqJByRT9FdFpFqRw9fm6zYBxNIoI525Ey1n1WA4aaUXHCo zIgeAsZcDaK3jnNrkbztnAM6OXdMwnSQ30zYtSG7Kbn965Z2BWfmNnYaz/NuRTL3 EtHS9mU1XDlz8A1VSUQwdJe0L1dpbGwncyBHVyBjcnlwdG8gdGVzdCBrZXkgPHdz dGVwaGVuc29uQHN1c2UuZGU+iGAEExECACAFAkNE9tQCGwMGCwkIBwMCBBUCCAME FgIDAQIeAQIXgAAKCRB30Gza79cROIiZAJ91uP31qZIGX6YrfXbtb8yk2kvsugCc C1z685uRfQg01++wHwkj7L2Dh2K5Ag0EQ0T24BAIAL3jlSmKpyjHgvZmRM6WDxY8 MTHtKknVQKsT7wDpJ82yaQx5tDvbiH/BfyEGQvh6vwjkJPc6MDJKxyAbPd2tEkl+ KVde+F47IcQ6GMQ4lH/100w3nON2uNtDNyt44t8ko/zMiIDq9c7tcwljfdJxSMoQ WwFKlsIhDuLR7SPeqTJKOkb5jGW9ILAuRETE3eYl37xDwuN+7TcrlaJHmZmQD2dk CyaJrN67dbEboxeL2XgzkWV8K4VFxrbHKKTYINwt/QLMNnhUu8Gnm5VHUG7R+os9 6Hw/qs9jzXNsHJ2OaumnmU8gdFEkoRuz7EAEyw4RcJHgz6qfIOaCPiZrz4KsgGMA AwUIAKSw54P61phChKmlBBubIBtn6knu0PLUlw/zso1xr845LqwnvoDlIlqlHzxL WERgVxrxPFamBr3kGVY6ojcSeperSvMeBisTMQuITBRU6EFqAYRMNScucLzmPCqK ki5wxEY1xaqk0LAxJ8hYzBgZeCtl1ozmDAZkqpGgycnbb7p6oB9MlC7t6LsWO8JN 2SqLwxprbeIuDK7YZmF6vVtrTNS7rV4ezwoSX+A1SKP9MUoIbzELySBCwD6CCKfI eFdO7Iz3bxoPp+J0gIcOuyixwkf0xKoE1Cx+cPNwKKcG68g5wSgVxYes8dwK2btP WDNfcVuSdY7uLq3kBuo25cuVZp+ISAQYEQIACQUCQ0T24AIbDAAKCRB30Gza79cR OKjbAJ9rKEjBV92RKyeFMMJNqYO3b2JWdACVGFhCjk3wHOZB6MfwfK1dMQ7vdJkB ogQ57vSBEQQAk/GN+ftr7+DBlSoixDDpfRnUk+jApGEt8hCnrnjVnPs/9Cr33+CX LQbILOO7Y5oiPbJdHh45t4E0fKyLVzDerCRFB1swz/mNDxT26DLysdBV5fwNHTPh xa67goAZVrehQPqJEckkIpYriOaYcKpF3n5fQIZMEfMaHEElQhcXML8AoJVXDkJY h7vI8EUB8ZURNLZMEECNA/sH0MCnb4Q6ZcRyeZ3+1PHP8hP73b6TepRdLZhaylwV F/iu7uIn62ZUL4//NTOCDY7V63qg4iba/fUbOsWtEnGaiE7mQuAlsSWvRspwRA9/ g9rdVf3/JdLJrLmKBTheyG+PSJE3W7cAE4ZWafGxIRCwXhmj3TQnJn2euqylHRub EQP/aL53NZK0kBdvrKgff6O8Of6tqoss8Dkk55I7QVFSp+My1Dn+mngQKFejTAgt yo/WmR3wPjQ9HoT2lRiYI2lTRYT4uMdHuwVC3b4DqAKmoy375FERwHkrMVyKBJsl v8QtbAWw5A1CAUseaHo+91wmYJ4/4p6YUahqbG/tZyhbxfq0KFN1U0UgUGFja2Fn ZSBTaWduaW5nIEtleSA8YnVpbGRAc3VzZS5kZT6IYgQTEQIAIgUCQNgGPgIbAwUJ Dm3fvQQLBwMCAxUCAwMWAgECHgECF4AACgkQqE7a6JyACsqQnwCfUbmemUle0FuK U4EyMUPgAT6dLCMAn3xvWwjZ6xEz5YDp/nRhJAFnoCi/iEYEEBECAAYFAjpwXlIA CgkQnkDjEAAKq6TczgCgi+ddhWb7+FWcfeE6WwPZccqAHowAnjjtRyGwHLQHr5OT FAYTXi2Wv6jNiQEVAwUQOnBgb3ey5gA9JdPZAQE1pwf/QJ+b34lFBNVUJ7fk/xGJ JREt7V12iSafaRzGuH8xWvIz1bb+VARxnnt16FDQ1cDNjoEhCEmcW83Vxp6iJXE9 PE8wVA/Yue/bon5JS7J69+UiQ2eq2pudfwljp52lYVM53jgPYEz0q/v3091nlZ8C YkAkN9JDS1lV1gEzJ7J0+POngDpU+lDQT2EC6VKaxeWK8pNt6UFDwICRDQxKnlOo iDvTrdWT7QdJZ4sPv8Qotdw9+tKNbWQ2DqdIRxyTdw9xDfAtcj6mXeQr7852Lwem 1gSKVnEYHZ9g1FTJqVOutY8KhpUc9RfOCRv8XuIxrs4KSbfSF0s8qIRCQelxufg9 AbkCDQQ57vSSEAgAhJHQTejMX+Vr6g1pHDEcusJ63fQ2CfFFE5iE9okH9O7UVCiS fb9CV38dmeHdPCEEjDUWquFYEnvj3WICMtH249t1Ymuf4Du3yRKQ9oXdn/qTJzlr x9qzjiG3mH7ocwHOgUIwCrZoEdBEVE2n0zPVm+hddwjWWTWXw6pxQz+i9dsN89xe xRV5M9O0bNwCLaNWX2GXeLAkqTK/9EuZy6x2yLxi6du9YYUAXkZpqBhCjtiUXpRo FCdglMznbcAyCk9C2wqb2j/D1Z2BeSBaGCSFkR6pRLebnE17LWcu72Iy+r0z+Jec bPiyDpDZj4apn7IC81aNFGi7fNITsHODbwwjiwADBgf/YPvVdzkc8OC7ztacEWCa nwylKvxCdKzTDA+DfES6WUYShyiVJvZzRy25LJ5WcK20kzOS6Qv1OrIXiz/pdGy1 aKtJZrAnFEsofpmOj8VoqyyFgp/yAGQBp12+mXek7SCZRhuqalDfEMRiWEJ6J5dL kyShyRDWyPbFh0HXE7QTHN+IKKxxQqNQXL6Z3NSxS61p+5n6BseiDUI39xxkKTFw FrkgUIc5Gs2Or2lhaWvGwSfoCmwbsklszZt6xbU+R0SjFqTvjPWx6eHfqbmNC9WM DdTjGrXDDKXFp2aYlokfN6It9vsbVlGNlOwHt/JjGoPMxW6Xqj0FLA7/VewgCdXW 64hMBBgRAgAMBQJA2AZ6BQkObd/oAAoJEKhO2uicgArKZ6YAn0W2MMU94qvvZfz4 DU1DU2TpaH9qAJ9uctHhotN+9Y2qfZDlerqu9bFLjpkBogRGI2ZOEQQAoyDrTWj8 7ypQt9m/EeUw0QdPxUNLbDLbeXS8LqtmWJRG09WCxdddL2RJeSEAKuZXbw+zHUf+ n6nV03cQXmM2Y3iBGGx84N6zfzf/jJHBuFvCCtR+ngwGy9OR5UNbnk6dJo4KBi2C rdYoEHvIebgOoBBO3b9LRtDScdsORrNhqZsAoIkYrrNnr9ttT2uuSKUdYLGLlyzh BACidQb45vgXxyYq6qB+4j6uR5QAcJ/rPbFJn+m4wpH2q/8kgLC9FVIRzQiKB1BG XdopgNmQNJEwcQfgSF/xzEWc8T2RMGCPENFGLE1W/4J0LfplmmbNf9rXlkdMJ1Kf njuTKTgDvUIxSU3SM9BnoLH0jjwqOeQlLZLa97SVCn2d4AP/ZmXvm9RL4tf1LPpJ ZxEUSkdo41l8cLjzelIryW31yGY7lVDXJQIRKrLc6X51idy4T8Y9Myb4afzJ6kk2 iOg0G69H/ib8D/uZP+IG56pvscTqHMoYlU+OczjwMlGLhuLdJvvRu1ceiwvbTLpG 3Xx2kcpuNsgtrNOBltorCn7WtWW0LFpZcHAgVGVzdCBLZXkgUGFpciA8enlwcC1k ZXZlbEBvcGVuc3VzZS5vcmc+iGAEExECACAFAkYjZk4CGyMGCwkIBwMCBBUCCAME FgIDAQIeAQIXgAAKCRCb7MK13bA3VklQAJ45EdpWqIW9kOFp8WpnR2Fkn/FCygCe I432bBatL5oD7Dv2B2ikyTebAC+5AQ0ERiNmURAEALaAeUxk/SuzQr+Q+XUMO41R 54J8adzRk7QIcIq2KYQVmhdm3t1CVUy21BVteHjJ61VvTyo/xzVS4ULtAugml7V8 uS2oSJbPphZUisG4j++HBZTWHI+vbcwp2hSoBJUDx3DDnN9RII8kmHFCMrONtTMS PvrLoFvsh6+QciLC+r33AAMFBACC0sJi7Q/j8JLnrO9wzz8liDNzANHsTu0JmXhc J26YmWLmUNxojxq23mVah1ge9nYVvPuboEfQlUErCxwucBzCEBVPEbIi9OoGXSGi TYAK+2o4bVMmz9Fj1aV5M5uflQfAoXvZtGdLdrSvGNClWqQXK92A4MfPRfVQNMp8 uqt1oohJBBgRAgAJBQJGI2ZRAhsMAAoJEJvswrXdsDdWqbgAn1Efg2qKNzdX8cQ2 twN7eDpAH6UIAJ9VBL6UKfv+A580mxL8My3qHpN3c5kBogRGP7wCEQQA9nMS2PNz 9htYeU5JCmEGEy6KYFkIe/+x+VCtHH+toCx+0ehewcFuBKpi7JvHhhPJCDqG+cAk FOqcaQTL/tVGKDtW6IbceC9iVGOcnCYquLtQjckbnIkd8oLLnjEZHpZENoaTbir5 n4nDnKGs71N7WTOiEyY1f7UL2E0ERqsBH8MAoLNDmN6u3kfDcFnpGo9t7fE1e4Yz BADUukDII7KeQnS4JV9NqHoghvNqBCiwzlqGdmow/vp2s0iH5SRNA2mdFtukF3sI eyEc06JlffHyVeop0DWp5ZOf0zbgG9XpV3WmBbjW52dMqDmkycf5m/PL5ut1K/BU 8inXDfnWrvMs7jZSYII+cgXDYPv/GTgJtWZAzJYPbgIYAwP9EUo17v2DZn5XjxcS CgQgCRSXp8+HUFGXm+XLib9tHgqpyp+QhWBVOmGIN7GGhLWXrpbQ18Hkb3hsHtvB P76S1Gu6fmmavl8LYyOlOluVar5AiiFLEKsFVkR4p9f+AwASea51Psj3i1zR+o6z EPowxvEYniPdf+J/oAl9Z28GUP60K1pZcHAgdGVzdGNhc2Uga2V5IDx6eXBwLWRl dmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRj+8AgIbAwYLCQgHAwIEFQIIAwQW AgMBAh4BAheAAAoJEL1h2JvZiCG+0yUAn03uDMK5jpVg8Vld8mehOAfcUKtGAKCF r7OKGFc22kM3JUrR2ouZMbhp/LkCDQRGP7wMEAgA+E9dSjxOws5KoBjGjT/sjUM3 1A23f0mhEOVnHuat1b5lQaWDkcclo0vEDHPYHvFsXswLI8kyrF5fru3v0JjCrKT8 z4ZFSsgerOQ/BYUdT3aO2wIuMcfjSzrvQ7rlPo6lJMh2JbfEBds1/fDjnAiLkHNo Y5Ndnb3xyplIg6FJ37kD8b2KxQFp3rIFCTKmaO03eS8uCI3zCUJUOwNfOgRlPGz1 qFdUKlCJ1ZDRjVy5oJXpf5vjE1dOZ0+vtSggagkVJbh6g2gohRzlDhVVr7Yq5jyW f+uye/DSaRe4bs175EK2mrV8h5wMocIsE2S6to2mzI0IBoVfEMineKp4kgS/owAD BggAnx+BRqq7PaRgVEZko2SpRwFHZxrpdDNirsiYb/GQZAKVLT3DIWSXKOdKRaZK o3x+398VzEVQz+RaY2kbeu2m23s6fw4LPPuvdTrQERA1mwM2qzTUdxWwfX1Hm4dS douFu7XwXKCsChViQr6l9hxk81ctZN9757hglcAvyomfwuqXOA6lMAljaGTXfIZh WnSYMdwjJcUk5ZbGiMjl6fHTCfhRbE5szjc2aRQvQw7aWlHhAoQqbY1sMuVpEBT3 vhTi1B9QZxknEGMBpRPJfnBZBO4VvLcjsHMeLJNSf7QwnidcBPMHtS1zHSIg+boH 9yXo9f/fKPoUEx435MBqghliVYhJBBgRAgAJBQJGP7wMAhsMAAoJEL1h2JvZiCG+ TvcAn3iNEaNVAivwlU9fwR/TTQdE8mMwAJsHUBROiGlUrY2w0WBJ0x0DhrFcvZkB ogREdFC3EQQA2b71VLFFEozMkNn1LfFLuHhibj2zIRLUf7xe6cxf/LvQa+5IelgE gWdNnTHjaKhcz01O87+j4j/d4ji8MtjEDTkgS5EvjLHEen80umS/NZja/g8IDhf6 y2eLbnALAWPWd5YEcdJloZfl7p1T1x4ZEfR/UYoOMDq688AbGI43178AoLkNT0Ov lEIC/Ek1ajWjZ5VWM81FA/99+iH7cKIB/7SqenVfxWD/1aSx17cBXntL3AoeRcHC j9L2KPTSHwegkdoNKcmLBwVm4XjFl0VU5QmlFToWsnHfg16MipdxXMS+tTg9Bf33 oNlBKh+59XLBldjAxpal7BebqynT2HAURuesp5Vl7N1uw87vSTfLJIVkp13bQRWt wQQAqPggF0syyZxaxu5IPAGE/tJPpE0v1MncAK+e0Ei1HP25V0erHjXfkzOCsI+C I9qTS/y6Wcs1aw0vQVjWR6t20JxET6316SuV1l9KrmZ/M4NSJhcMZiXbhyprcssT Y4z0dUlBcw9RF6T3wmIES+pFODn5W4BqC9mKZoBzui0Pzhq0Mm9wZW5TVVNFIEJ1 aWxkIFNlcnZpY2UgPGJ1aWxkc2VydmljZUBvcGVuc3VzZS5vcmc+iGQEExECACQF AkR0ULcCGwMFCQPCZwAGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQOzARt2udZSP3 sACZAeKbA5uOEXJK88jMo1xCgWF2Cl0AnAiwVvebe6KACMqn7IPeESAqW6+dmQGi BD+dnTsRBACwnlz4AhctOLlVBAsq+RaU82nb5P3bD1YJJpsAce1Ckd2sBUOJD11N UCqH8c7EctOquOZ5zTcWxHiWWbLyKQwUw2SUvnWa5SSbi8kI8q9MTPsPvhwtgMrQ MLenMO+nsrxrSaG6XcD+ssfJNxC7NQVCQAj3pvvg9rKi3ygsM7CXHwCghgsqX6TO r55HE90DbEsoq3b/jjsD/i8aIZ6urUgrpAkQslcakXdJLKgSdwjRUgVZgvYZb7kA x1iPq0t/AhB3NJw3zW4AAKJohGg3xj5K4V8PJEZrSIpoRYlF43Kqlfu2p5ghWT89 SP4YAlWPeTqf0+dTYUYz3b144k2ZFOdRuXIRxunoYNAUr9oMrxBXbJ/eY+0UQX3p BACYzKizyY4JJgd0zFJmNkcdK9nzcm+btYFnYQo33w5GSE686UNr+9yiXt9tmPRv NEbj3u+xoAX8B/5k3aZ5NbUhV64/VcKlUdRIxNlFCG7I9KgxeHWAYwi7yqOGXM3T /v6o7GLdQEB0ChFqS7kUlqmwLV+C3QhlrFe/Cuk26i+Q6rQiRmVkb3JhIFByb2pl Y3QgPGZlZG9yYUByZWRoYXQuY29tPokCHAQQAQIABgUCQCztZwAKCRDdE2MqcWVu aC26D/0abz5VhIh2eOsTpI3vTlHJQpe3Cx5qyLJ5oFaUFbjVIU0L5Vt9dcrmXvzA oa4czZxtPcbo7wWvENCA3tpcdB83zPqaD9VDEZrjoFzNLL8pK2Kl73/IcMkf/UHG pcJCWoftag0Zq5AngZgH0Voe6YAreVPBYFSIaZhSCEaYEb8ejOwdAeYc7b01e/43 TLfRmoeQMFoH/rZUqcLJXfHyi3KkCGZXWfwYkQiGsy5pMT7c4WzIwNZju7QaRJcN cB9y1FHGnkaz6we4dkh79sqRvn82dxgXbLa1rR/m6g20m/uuOrhHle7gsMtmmQAm aUTes54HDdlDe2JdL7dTqOhXX8mF3rf4j9BVv/Vz2y4EwBE7JVqPYHT7HDolQ80O xEamJDuo3h5hgPxsmPZ2JZRLzZKeuq43xz8gJlcB4vpS6Q7j15FB5trQ6iKTIWzW SqV5zBahG6qJ4RN1ubJzSzOgNIycJ0uFZZ5rnYIyowqTwmzGU8VZphrz3436lYlQ 4sDnluIlYB8mxZHZz2+k3E38PHgqobXa7Al/5kSQ4owTyfo7+IvxHkSbIA5yQpdW mV8/QJpp7PlcvBlYyvwzXNgj6hGu1XOjSw4AxXtHgmQOya4Q+ktARfWL0wfP/ocd vdkHajiRv9sp59C/Ir5/zmTmgQeEudous19MaMP43AKqj3Z2/IicBBABAgAGBQJB 3c/dAAoJEJhqQe8YjLfJfTcEAKQ6q/+LuNxz5X4nX0S+6s8pxshdUUTcFQnN013Z dJ7HBJIt/GZSbyXm5dsWdmvne9vA2Gfo2glP4HtVvEBbmT9vCKC/V8aI1QF/aTcV wdUaXzIj2rG9dl63LCLl/o9hBa3zPOL80kaSyjPGMuKBM/UzRAVFjVihd0G8gPso pGSuiEYEEBECAAYFAj+e2OAACgkQKdW6JI31bQVRJQCgmeuid7gnSjUcyRHP7qD0 pW47YXIAnRfJ5s7NWYj1Tk7I5+c2ZhXTCdByiEYEEBECAAYFAkBpvjQACgkQcdLU aCBIxSjrhwCeMzGZSA+xfgL03obWLbZN6QtlnpoAnj4aA0MkT6/oqiJOEQp03uh7 KMrciEYEEBECAAYFAkCo71wACgkQXanJZSIKP4/TKQCfUQmD5oobxJQKCoy/g9aH ryQQq/QAnjK7ql0wBaO6Z45yggecwHAP5Wm2iEYEEBECAAYFAkEU8TsACgkQ3GVW 6BHmDogH4QCfY4tpxjMm9EYa98IWaPwaFW59OvkAoMynGza4cvZOTSrvFV9teWfv 5r7AiEYEEBECAAYFAkEU8U4ACgkQZGYqnQA+HZ26AwCfVW71WRotzZI74EKmcltt Xve6WHgAnj8GrScGsOyLUbcGaiPNyu1NWdRGiEYEEBECAAYFAkEU8VoACgkQiEVN 9vr2r+PzUQCfSKSK0ZJ/cf+YdvrHyxcABg8pWZwAn1FnhKQ1AW90BLXkhGpNy7nN O+ZaiEYEEBECAAYFAkEU8WUACgkQ0ptfRip0+Q2JBwCgksE9QoxWQwaRJApr+Qp/ k4K8VnwAoKYlK6AvAdeiOKOHlM+eCQ7F3ZBniEYEEBECAAYFAkF6JkgACgkQUdrz TXusf2wqsQCgiLp1BCmfVnOjDeis49xCIMPNmCcAoILl+XvzwO6Fp3JHCghndJ3S CycbiEYEEBECAAYFAkG0c74ACgkQ+lAXgUiSypriPACdHwfmU390R8YWPg3f9uHz WP+iCaIAoIOXgZDN2JimS8za9+IFjzz+xQ/SiEYEEBECAAYFAkHdz30ACgkQ9tuO JwRFhLVkgwCgv/57BB269RcFh6fTucG1Q9kfVTgAn2z6rYMpbmodRUlbV1zifctG IKBUiEYEEBECAAYFAkINVnAACgkQhfn5/UKaxrY0NwCg3QZqs09BvyYFmLssuEhH 0fN1h9MAoNjfBazVPxZRLZSZpPPZmF/AUCv+iEYEEBECAAYFAkJA1zIACgkQ/RiB B2NcQIpPRACfUSPNfj8tJLky/QT0c425M/4a6QsAn1wARHuu4Ns0AkQJ7qA3uHc6 19dGiEYEEBECAAYFAkJdM08ACgkQaajtSerafFlzwQCgtKtlxNPhH4TUj+qOg/7G ul9fLIAAnj5Xz8m83GclDmhmpPNXkTWuetugiEYEEBECAAYFAkLWjJ8ACgkQbGUs +HTfTWsOUgCgik2nqZNx7DbYYHB001sOVTMzIRwAn2vL3TUQmdELn+0yizufL0AN HL3tiEYEEBECAAYFAkRf5AoACgkQi9gubzC5S1zlxQCfehVXfZ7C4VoEoEkorx5i +oWP4u4AnjF1CdHeHnUEtn+ar1Q4HKkuDU1biEYEEBECAAYFAkTkVbwACgkQ5aYV 37hLgJBEPgCgg3qHa3Au96/Ycj45/t5pjSN4/f4Ani3cFmiDRiOU7wZxe9zPaqpD 6KdmiEYEEBECAAYFAkU5xIMACgkQZ/MxGm4PtJQBdgCfZunvqtB1/ff6wgWRWqtV sMlenDAAn2shRndxeHiGuxgu+4N8jxwsDNG3iEYEERECAAYFAkKy80MACgkQQk6z 7JKZxYfXfgCguWu/c5bkOADFOrH6pXP7H3U16MsAoIEki0PHq1W2W/Y45o1KKIBS BHvWiQIcBBIBAgAGBQJBkP08AAoJEAvXRWEqdVnVuG8P/i3IKnskOMtyBrgyoad3 OFLxIyg9c7m5YhVpOutZU5V91ngpk35T/WcxSx1AdIDeFiZSDK69RU6cke+J38Qp GqfImdqSRxY417AF1AbkB+csf/V9wdHVZh1PbrA0ZGxaRxQ6EAErLWzS9FVR/d2N jEtTaGfQWU7HIeHER1JUZha9C77sEdjOjVpbEpXZD5L3iB5hpvKVx84ouuNXUelS tCsgU401Qbl9/VZYKka0GeQKrzMTDXfiXtISFqA8BsSE5DcKOjMZUx8n0kreNqVg RtC+PKOBOTrKoypelcbYs2VQtuztaCtOhn48HpSP9N+or6vovIBfoPsmA0pPQ1l5 n4pfN6gAYmSi/U/EG3uLQ5xBsejH4PQtQwRKvwXRJrR3r/U5r5ZMVKiUGSNy9oT9 ZRicjf/J7vUni8c1l6YRv48bD3yBSpZcJC6aEV9V1A9jPpPatBLI5+EtDPtr+Wuh 5tEe8T9t6rXUWpf0KGxSV4diLQwaInPsu7qAW7RWQbaMwCfoc4EqwCvIHnmhC+S1 dTQVjaUYJE4vc5cTZo0wVu1h/fg4QMdZygK1R6c55H+efsm9izybCYGHCNIDIeK6 +Nm3X/lab8NFCTbdsURvXXXrWaNu1Gif8kuLz1y1RR4RVdW2PU41qO01OBIGiNGG hPJgar3O4i3raVT0CRQACPUkiEYEEhECAAYFAj/eLnYACgkQ9jVtZM9GVc8gkQCZ AXjWVuzO56JGARz87PRMEaejp7oAn1CUrc36G5aWEeFa313zajqV9n7miEYEEhEC AAYFAkCpRCcACgkQXtn1Qb6VBHJYNACdGpDwlw+sCf2Ec4/yK13Dg+615iMAoIXO Nz0rmpgXItEREAdyWMHbBI3FiEYEEhECAAYFAkH2jfUACgkQgrin/Ace1CYzyACf Vf+0d1sd3KwuK4irlH/0weW7rjAAn2b9E1JyreDk4kgkmWZlqD4BCxPqiEYEEhEC AAYFAkH2nJYACgkQZL0IoGaeD6MiPgCgxGB9CzWLPpF7EefUB72pPklteR8An2N+ TGjV7MPx3TP31t0k6ijE/2hTiEYEEhECAAYFAkZe+BQACgkQ4J/vJdlkhKw/FQCe OJNnc1uReGQ+lDRK/fbMWsyNSQgAn3I4/JN0LCH9ilfpr2987DYi+HC0iQEcBBMB AgAGBQI/zfjJAAoJEAuerLG7SymnPF0H/RU5rv/kuCVmqv2slTODZYzLunWyPBXj siB4UJlHDyJm43SvTNPv4Ta9YzqGthKszbLgCTvo47oWXnRZPlCtahtSIPEd0o86 b1LJLV481utkTDNozSOqc+1/vcsSGNXh3tE+butBZ1bS7VREsGcC5MVuJh8wpC8p l9L/4L5bkhRM+hgjfUhCZBhngOPBQGEzKoKBeu91Y/dAfbmianYmBHOH8DEbCCNP 2Sll680YK6j2s/YrE63inczqdp3VDMhjUiUR4CLoGn3/fb6XRwT0reUNbBlziD34 6+gIMA1dr2e7PHolBrbNAvTAI50+S6hR4CkZ9rx+n0rQNP20FO7VvneJAhwEEwEC AAYFAkF3mZEACgkQX8tdKqjwLvW7kg//ZtVHiG99LPPoQWniUfH3sN0njOICebzE psAjig6GZh7cr6pj7AeaXlOSOVPQFGZSC+xwbiVjWGIZjNuCjcen94EMRswbYKSG f+qQwS7eNMeXTrQIV3CQGk7sYoTV+6CJ5MNMYUCTuBJLSvjuMkUMcDuLadKioRkF jb979v4F3bQGWEPZsdKLOCZyX2cNjVtCcDBlkhzYNy85PwzdiA5YdnoACxcfe8qz 6BpOC7kZiLN3yV5xXkU+uexQGBJY564+B57y+exBRvEYwKEIQwiq50qJN3NNdhN3 1HFdURzAV+KIzFXu43+SvtxR9F2OdfvPPHrN/Qpu4Ni1CBvypkG5XIkwd7xM3iw/ 6fh4/BFzYYIFqUADPFzkYKy6U4lls9BNL/Yk0JgEkLbrEayNW6QbM1j/j2wctUrb aEe6Imncp8VN8DHSjE2tOe1iHIj6G+9rywDXx4kb9hwqcOfpKL/0AoRzle6aTr7K nCpxBMXCIfQyLKEcJ9wiO3LCwBafJ7fmLJFUnRb4L7ZPg5gMejl0fquMtVKR+CyS LnhEqDwbrtIR5VOJuZlUFzr77HBL/T7rbxiU3mHONAI8T7dxs2fDv1+ktKeQtlLV v6DgOc2AaqbvgPO1LEtOdq9fN5aaoAi1EGBDVkIMdWDXdVYY8PnP7GXow2X3G+oM Ddl8+NpN3g+JAhwEEwECAAYFAkKfCxwACgkQ2MIKCVokV8/xBQ/+MBAGiuwATgRa lqxdV/PLCDHTaRKAqNf1kMhCMZ99ubECMPzXgI1QQa44AiTNmUUd4RNrBS3gzMjX nx4oPe6JjXCkP1grnBLMple2NTkaWU0Q/VQkbDxYvZaiPZuz9JTrilU3Z6L8+e6A zHVAs+EdIeYNxqeTfLUbFj+59AN9eJs7Ud7+uMWGeeDpiZUTcRXm2wdBRzfZi82q bSLREsIAAvOHr7uB5YarjQOh6lFTT2Jo0GAE3fzVlcSAzS0yV1hD3qtIQH6x7uXr KTAcTDYQoDJnPIOZSYiz0xbuoAuWISicGXVvlaJ03C5+qgQ9oHRbzALC9SvxPXZe OC63bjMC7YLXQRzZ+l4wkSjl+d2FfE6koAAC1vTzVx8febJ6eXbNB7mA3sO8gBRG j7oVzpqY2IAI+UqzyBuKVp7XElOKePK14mw3Dr0Ps/0MC63grWq6kLlAreGZzrS/ dD/4L1ZgxibFbQXmaElQ+2n7AgNCV7YeESafEPCVV82yScPxC1WlpVBUjqcmn4gc GBAQ62TBTg/2JL5Z7axiygv7KwDRiAb7lXtBRFidF3dCYOyA696K6CKXioXZwYA3 XIZXat2A5SfvH6NKVPzcultvqMWtvYceIx9OfiDiTCrInXnixOSn9cJXRk7SeAOo Q/PHczcYWeAz8kAkUzCYMLQwtusUkkKIRgQTEQIABgUCP52dtgAKCRAhkYDN20Km DkeUAKCKdRvqJlZLav7J8aZs+VHh45UmIwCgka/3mvy+0u2U8QdfHH9U2H2ndceI RgQTEQIABgUCQA2AagAKCRAqHoQY2VDGRzkxAJ4kR3qK5sz/RW34GRwgtpvqA3tm AQCfVz6ZbFeDgGtSzE+Hii7P2EGIz7CIRgQTEQIABgUCQC9h1gAKCRAYtrIyAv9x slhhAKCoaqimGJyUZZy3CmA5w9VeEQ/F8QCaAk5+ZnpWWitw9Px1srYz7Ps/knyI RgQTEQIABgUCQDe6OwAKCRAtu3a/rdTJM4p0AJ9ZetvNX6woPsu8P/vxOXW4h97g KgCffLe5NAJrQJEX/XqVyBz61UaKCRCIRgQTEQIABgUCQGhQ0QAKCRB81sDYi0Fb qWAeAJ9Box2B5/C/YTc8CqNbB03JYPMxDACgvth6MSFftyxQFSoFGe9A7exsyNKI RgQTEQIABgUCQGhS7gAKCRD2zzZt3CnlVIvzAJ0XTvHD9bKgre6hdyDFIuxuSef/ +gCfYOUsVkbwUqb3qA6hpbsl+jQHuvCIRgQTEQIABgUCQLD91gAKCRCzECrSTehe +AiSAJwJDLftzrq7Y7cOS8uNabiJkbFFUgCfTSM2QN4PN98bvII397o9TaWonxuI RgQTEQIABgUCQieafAAKCRAOLabAN5HGCsDbAKCrV2bphe81jwW3UIqWK30aPI2E QwCdEDxoHAQbFwQlriUUKEXbngBd8UOIRgQTEQIABgUCRiZ+5QAKCRBYiMxKKtdp 1k3XAJ95ZF9U+TW2jE9C6eg0cMXwc857FQCfZsUXM0YBMDemoV6MsUHLv7EllquI SQQTEQIACQUCQDqQOQIHAAAKCRDoDiJ7pAPsoBavAJwLUNAOOGHWauZJn06IhAW3 A8uGkwCfbU2LiJwyQ/y3nBhpAehsp8yiZBmIWwQTEQIAGwUCP52dOwYLCQgHAwID FQIDAxYCAQIeAQIXgAAKCRC0QmnQTypv0tjwAJ0U5YaKyE6YWm/qMQB7W8WRfQVc gwCfVjlWmVBudyFliAFzhr94/3Jq95aIYwQTEQIAGwUCP52dOwYLCQgHAwIDFQID AxYCAQIeAQIXgAASCRC0QmnQTypv0gdlR1BHAAEB2PAAnRTlhorITphab+oxAHtb xZF9BVyDAJ9WOVaZUG53IWWIAXOGv3j/cmr3lrkBDQQ/nZ08EAQAugOfLWJbKwMA 9vg2mJU594TZU0HRJkx/fqYhx0YxWWRpzplrEyvcDXuYcWi1Hwh0tD86T4fR5GV6 joWiWClzD+Hwhhb6gcSdeSGlGLlZAvWYtFSHWiv+3LaI9w8Vtczl99Bh2WiMDNDD Gw0RQg6ZaftldLSe4j1pffpFGQ8SuisAAwUEAKVxqLT7fC5xQ6oclcZ+PhoDlePQ 1BiTS7tuGM07bFF4nNvY91LL7S31pooz3XbGSWP8jxzSv1Fw35YhSmWGOBOEXluq MbVQGJJ5m8fqJOjC0imbfeWgr/T7zLrJeiljDxvX+6TyawyWQngF6v1Hq6FRV0O0 bOp9Npt5zqCbDGs/iE4EGBECAAYFAj+dnTwAEgkQtEJp0E8qb9IHZUdQRwABAf/+ AJwNVicN6A0I7EOfWx50PDHD7SHw5wCfUJkeh/XlCrGdPASe/AXZB44jl2eZAaIE PI92jxEEAKJ6P7KohUrZdFsywojJa3hs3SuHzt8/7oFymnTAA2zCHZkGslM0EtbX NgCoc/40+0CoXAKFzhCwktsbZJ6QcGr6nUK+tpEFO+Ku9Gmg23Pfl8AhAVtHEVuR qsp1aJKYx4U2wWtC0ZCC7I/slr3YlssoEnepUSZ4VkJhpFOCc6fzAKC8Kup8ioE9 Lqh5DbyVz8dYAhUjSwQAit9wtAWBHa60q+ca0IPEqSBfB29rIhNio4PEsUB941XE Lm3O8EUOR7fBgwZkbAeXWqgXfYK582QF9Y/Q3finGzDJa+48cZ+Dn7sGphMQSfRY 3Pd9870U1z+xXtCLjcrYsh49X7lGpqE9Cc4UsIYyLag0bmhS3gyjFS3llJHi1hYD /2NdApt8WSKs24Y6Yo0fmCb4mj+Mbe9KAL+UlrZ+bWIZth1S5AiDeNEKz5mmr863 4DzJEOAVUpbUoHJ4j2Icl1jSWlA5vSB6/ZPG2KOMYP7GqT6Ci68lAbwSMS3N8iF/ PcVV+04PQFqFZRNGUrk7QdFLriZlgqR5zB01n6QDbRtgtCpNYW5kcmFrZSBMaW51 eCA8bWFuZHJha2VAbWFuZHJha2Vzb2Z0LmNvbT6JARwEEAECAAYFAkNushsACgkQ Dvn2xlC5DUFX3AgAiIMe+xIZU+NLNQIjjgHsP4ontwXpEWaSapL0ufxeGasTUK2B S6lFVcZPuqWahnNjd4ETzwNdGmZIb/hP4Sh5hLDmFHDH5q9wIirHfNqQJu4hnal/ oP8pHQ4jDzdmdyziFxM7KaSNZypzCfEXaOeALOPRsprNOwmxuq4dq8iWOKrzKTHs Edl4uCdDRTyVGyAKjTpWr/jVxhSvP4BoswsY4KO6eAmVTHIlMfJISz78ix1aM3zd RTrqTj6TmFy3j4hKMIdYrINceF+jJDqJQSs4hx2REA2K1wHRiiZG7+lj7rM+wja2 2sjYjwaA42WhZUkHcw5/GQlZlEg5yMoyq8jXs4hGBBARAgAGBQI8j5RCAAoJEJqo 0NAiRYqYW9sAoLCeIkHima6e7Hk/35RlZXH81Tj0AJ4rNYxH+CA+xvKz0GYxdckY rzRnlYhGBBARAgAGBQI8kC0kAAoJEOJa9W6W3C+pkdcAniNAo/Qpuah4sQfIqL/d mFKvzhXZAJ90c1rXhV6rSFHajGkr2KgNYdG4VYhGBBARAgAGBQI8nNcvAAoJECAU 9duuEnAVWFEAoJoKKSoJgr3oEKv1wPbcX7i3gTDpAKCUlqsEaP+amU9SFChF1g73 TXSsIYhGBBARAgAGBQI8nNsnAAoJEJae79OXFtsKLUwAn3wAcZqdsX0I4UpAKAzk q93K1HBZAJ9ZTiPgafzF9I5VYOJKBgMsUN+zmIhGBBARAgAGBQI8vjYnAAoJEHW+ ByMT/qxgqSYAoITEy7R5+JTvvAjCuHO6yyEusIDhAKCDLRcjz6goybLK8H8QIQo3 OMe1K4hGBBARAgAGBQI/Y9fLAAoJEAVAMnUSMMYzzJYAoLXZWuB15ZVp8qRqI8aa t8oi8wbUAJ0YC2yLCrcbTca1C0jvy9r4KngsPIhGBBARAgAGBQJDvnH/AAoJEA8N e4Mg5YjtqMwAnRGeLWZ/eS/9/o/ZjroQ5lVGeRFCAKCG4Hj7OH3biZaVzjlDVI+E 4EDzD4hGBBARAgAGBQJFzhU3AAoJEH01OEiAPLwG+RsAoKJBsiV0UShGnUwkrMAF HNNbfSuDAKCWwkUdkoOCiMiwEQhDVK79m+0J9YhGBBIRAgAGBQI+QhwIAAoJECnD EYFcQZb7shAAn0N+13uI9Yz/eulVapC19Y4t1TZ6AJ9ALexUd9yS2uE8OGyC5LM2 ZMrS6YhGBBIRAgAGBQI+XRnvAAoJEBNgAYE58Lv0CkwAnivxzsbIAHULbwfHzSKh XeBGcxkYAJ9rgUz4zi0WCDj5THOEQ94cfz5864hGBBIRAgAGBQI/lQ/oAAoJELvy kpzxcFXQYDsAnj2ytgNhBYkT6TAa8PUzkhA774xrAJwMBoo9OaAQdSXhn4xH/Ztx gvjLrohGBBIRAgAGBQJBCi59AAoJEADbq9xz7cVYZ24AnjbATK28ycxYvncouVlW siqDx3hkAJ93q0OKgOT4L9VICOLOG43d63oFO4hGBBMRAgAGBQI/cXBPAAoJEBZP bR00jinYLGQAnjGvSjirxs6LU5nyUuTGTKwRaFo+AKCF52bhSRqjF0nGROaoeQzN tOPDaIhGBBMRAgAGBQI/cXBdAAoJEMwRmq0kUM+nJPsAn2nqCe+By4ZD4AMElTBe Vd1w9URbAJ9SpnOVuSQnjM2cQP1t3kdrCo6hcYhGBBMRAgAGBQI/11d9AAoJEERZ Nfh40Bn1wxMAnR5QfCFXtMiYT4qH5Okh7qaWgPhOAKClfahvQOUvnFhSDz2v6dtv gnrL+4hGBBMRAgAGBQI/11iIAAoJEN1oTXomdSYkLSEAn3Smemn0SUvsjR3guxXL M82ThGFxAJsFChZAmUlAAn2jfeHxTissX8g4uIhFBBMRAgAGBQI/5TrUAAoJEIvY Lm8wuUtcBJoAnRmyU6Ax7JMJoaj6dLL9xORhegv4AJUfFwwkkN65V1ITnfDzFa09 SOyMiEYEExECAAYFAkMOC7cACgkQmcxCmjBUBteCHQCfQsYSND7bV2YbPt+r8G8d bnnjWIcAn3c07wKyoEU/CxBWcbOfMwZ6uwJFiFcEExECABcFAjyPdo8FCwcKAwQD FQMCAxYCAQIXgAAKCRDniYrgcHcf8x86AJ443ovF4CsXJAtEC7XzedooURgKzgCf VMrsPXfSqeXJXxKS04ygK0OmJaeIXwQTEQIAFwUCPI92jwULBwoDBAMVAwIDFgIB AheAABIJEOeJiuBwdx/zB2VHUEcAAQEfOgCeON6LxeArFyQLRAu183naKFEYCs4A n1TK7D130qnlyV8SktOMoCtDpiWniF0EExECAB0CF4AFAkSzgi4GCwkIBwMCBBUC CAMEFgIDAQIeAQAKCRDniYrgcHcf84iAAJ49Ck2WUvfoxWSlmmMpnM1vym0HHACf RCGDo/90haN7tYe82t+HwTjUH9i0Jk1hbmRyaXZhIExpbnV4IDxtYW5kcml2YUBt YW5kcml2YS5jb20+iGAEExECACACGyMCHgECF4AFAkSzgjYGCwkIBwMCBBUCCAME FgIDAQAKCRDniYrgcHcf8wyaAKCto5VYq0f6E2j38kmHHIHtt3kDPACfcBMF10vD WHonOjbuIcJYgB8FNfW5AQ0EPI92khAEAO0Z8ZajF6sP96BhmeAw/SPn9WXt0aya o37JA8a+Lo74exNqTEa7pF8/sb+hHcigH9y7VeZtMlhz+dzq9Xndb1sq05zjlCMX Cyd6Z0ssUxRHpwgAs9cFsn8kBI5elbdJDJG/rt0IC+hRTP/YdR+x8gzm81vbk7e8 ff8XAbc7dtOLAAMFBACFt8q5+0x1X5NPvwqkq6UKOR9YJmATCt87pRZ1XCQlk9Vy MyjC7ArSJQpwEC2KB6O9dQXs0Pm3AAVvjbXoMQKuCKyV3C8ubcDeHHsT/uA1aLLp LhjGX1bsvIuV22KmR4FO6Vg1N2g95PbeEPhzvAro4xofEbt8i50ifDpo61nv/ohG BBgRAgAGBQI8j3aSAAoJEOeJiuBwdx/zKfYAn1D3J8iqWuAwExEf3ygyBbQP1oVM AKCxXARykgrcQ1Ng56HO0o8Z25kHgZkBogRHllszEQQA1PJdiHJEs4HVEtXZ9FjD O8FyuLHqBbBx0MP9LpxwkAsacgzJ50ylfOqeSk20dRQ3XmmZWNMglfiBrIiMS8rl HSZ/L7gOYAOWZFK/Pfx7VmnmVZe+yRyEMb4Q0QVgjjuEDba2WFrxm75fN8Jf8zn3 SxLPCBhJbdC4H6IckwNan68AoPx2nLQw7HF7D5aOSXpP/t0R1Xg9A/99K4gqX6Sy Tpoa2i4NRG1rBNJjfSELJflgz3aGKGwe+s+nh93t/OtfFsz/y0xuFrlW8KUkqpl8 n3VaV8VsxEn0/KtAfAhqR3/0mv0/y3pqIZkZy75H/7QH8RZgzJtYznsCSBPUt+Yw DRh1SXMZn0TaT1gu7h56o6KZ7Jg5C5DBHQQAumHKQznDCWfbCW7fyTWQWqE+QpbY DA5UjedLdr/yeXpvKjC6gkjReVCcnSxZ3jx0x8uoFY1m6nAtJ3BczqjNcuuOFKew aCkgK9YUU5ejMPUt1H2WWdGpdybVrfMtHhSFt0D+usNQC9Cztm2TAbjr4W+tw17+ Yh6K3MZNMiBW28m0Qm9wZW5TVVNFOkZhY3RvcnkgT0JTIFByb2plY3QgPG9wZW5T VVNFOkZhY3RvcnlAYnVpbGQub3BlbnN1c2Uub3JnPohGBBMRAgAGBQJHllszAAoJ EDswEbdrnWUjs98AoJz1m0p8jkb+DrpXulIxeH2CL7KSAKCK898YwOH0chE7AEi5 2jaoYiY6oohmBBMRAgAmBQJHllszAhsDBQkEHrAABgsJCAcDAgQVAggDBBYCAwEC HgECF4AACgkQHHIcJFa0F3rwbACgjnknJ5R9n1lQSRh0zlSdzOMgagwAmwXjZD7l qNOQDkNzNXSxNYZDd+hvmQGiBEeWW0IRBACKYbOW1tQdRc43WijD01BiO1ko6QiF SR/JgYjg97fCTUFNBpuB4PwAXvPzVXnurdpMNeuAADuvBkCggvf/PhQ/tf1nd89M xuki2a5mh3LACR4xolr3ADThw+a2HxEuZMmElqOHuXKEFHBzSSOtEaDh4tkETTIQ U0CDKpeAgRR63wCgx+M+4xZH2HuPGuEtI5oqhfLMgacD/R6KlLjnNHsLaNOSE7ZG hZXzzMLo6gMnJxQiIHjmz3UY6I/i1Kp9KMlg2C/YTVKDtAZY5uTqdL1Dwcr2W8// Qy3NoXWnfoXCeBCq1Q9HkfySqGHlLiIatuxgoLe1P07FhM+XLXZZq1iidsLpJS6j p76d1rCjMF9J1nFuj54r5BhQA/9JhpBautBvPg05JZtAMkv6cBkIOWohaJpDz5qw 9HeZZPg7ex+uLcd3svZNMwppoc/Aiw28W1n8sYWcV9FiikSsTT4Amt7DGzBtHDJN HoOZAlt8qC4qzxEpJtBZFjPmqbmpKNICmo5Vtk+HoI92NYDcrr8+jKnrIm7GFfWV 3qU4arRCc2VjdXJpdHk6cHJpdmFjeSBPQlMgUHJvamVjdCA8c2VjdXJpdHk6cHJp dmFjeUBidWlsZC5vcGVuc3VzZS5vcmc+iEYEExECAAYFAkeWW0IACgkQOzARt2ud ZSPU0wCgrEAM1bo9oS/OmPaFP6KgvRCbHkcAniN7gjcHPUwgkE9kTrWBDHSO1ljg iGYEExECACYFAkeWW0ICGwMFCQQesAAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK CRAADEtt49vTzVkAAJ93KK7XuMaLCqZnkd3rqnX1Y1b/xQCgk7xnntv+732TCrZH k/oVP1VewlU= =zobT -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/directory.yast000066400000000000000000000000171334444677500276720ustar00rootroot00000000000000media.1/ suse/ libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/license.tar.gz000066400000000000000000000000551334444677500275370ustar00rootroot00000000000000‹×WKíÁ  ÷Om7 €7šÞ'(libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/000077500000000000000000000000001334444677500257455ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/i586/000077500000000000000000000000001334444677500264405ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/i586/SHA1SUMS000066400000000000000000000001021334444677500275600ustar00rootroot00000000000000c8db67006900a7758dda69efee189c5eb39d206c dnsmasq-2.46-1.i586.rpm libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/000077500000000000000000000000001334444677500271055ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/descr/000077500000000000000000000000001334444677500302055ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/descr/SHA1SUMS000066400000000000000000000003301334444677500313300ustar00rootroot00000000000000965ba5faeea815d41ba308ffd193b78505b26c1c directory.yast 3d0cdf34257cc2c54929bf5414969142cad1d421 packages 2d68731ab2f3c86b81f7672798f871cf96b2d0fc packages.DU 07c36c760ed0c58b58d6d8fcfdd2717df02c4256 packages.en libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/descr/directory.yast000066400000000000000000000000601334444677500331070ustar00rootroot00000000000000directory.yast packages packages.DU packages.en libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/descr/packages000066400000000000000000000021201334444677500317010ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- =Pkg: dnsmasq 2.46 1 i586 +Req: /usr/sbin/useradd fillup coreutils grep diffutils insserv sed /bin/mkdir /bin/sh /bin/sh /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 /bin/sh libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) rpmlib(PayloadIsLzma) <= 4.4.2-1 -Req: +Prq: /usr/sbin/useradd fillup coreutils grep diffutils insserv sed /bin/mkdir /bin/sh /bin/sh /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsLzma) <= 4.4.2-1 -Prq: +Prv: dns_daemon dnsmasq = 2.46-1 /etc/dnsmasq.conf /etc/init.d/dnsmasq /etc/slp.reg.d /etc/slp.reg.d/dnsmasq.reg /etc/sysconfig/SuSEfirewall2.d/services/dnsmasq-dhcp /etc/sysconfig/SuSEfirewall2.d/services/dnsmasq-dns /usr/sbin/dnsmasq /usr/sbin/rcdnsmasq -Prv: =Grp: Productivity/Networking/DNS/Servers =Lic: GPL v2 or later =Src: dnsmasq 2.46 1 src =Tim: 1226926770 =Loc: 1 dnsmasq-2.46-1.i586.rpm =Siz: 290023 826308 libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/descr/packages.DU000066400000000000000000000040751334444677500322230ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- =Pkg: dnsmasq 2.46 1 i586 +Dir: / 0 840 0 61 etc/ 19 6 1 4 etc/init.d/ 3 0 1 0 etc/slp.reg.d/ 1 0 1 0 etc/sysconfig/ 0 2 0 2 etc/sysconfig/SuSEfirewall2.d/ 0 2 0 2 etc/sysconfig/SuSEfirewall2.d/services/ 2 0 2 0 usr/ 0 815 0 56 usr/sbin/ 149 0 1 0 usr/share/ 0 666 0 55 usr/share/doc/ 0 476 0 42 usr/share/doc/packages/ 0 476 0 42 usr/share/doc/packages/dnsmasq/ 188 288 7 35 usr/share/doc/packages/dnsmasq/contrib/ 0 288 0 35 usr/share/doc/packages/dnsmasq/contrib/Solaris10/ 4 0 2 0 usr/share/doc/packages/dnsmasq/contrib/Suse/ 10 0 5 0 usr/share/doc/packages/dnsmasq/contrib/dns-loc/ 17 0 2 0 usr/share/doc/packages/dnsmasq/contrib/dnslist/ 29 0 3 0 usr/share/doc/packages/dnsmasq/contrib/dnsmasq_MacOSX/ 4 0 3 0 usr/share/doc/packages/dnsmasq/contrib/dynamic-dnsmasq/ 8 0 1 0 usr/share/doc/packages/dnsmasq/contrib/openvpn/ 7 0 3 0 usr/share/doc/packages/dnsmasq/contrib/port-forward/ 4 0 2 0 usr/share/doc/packages/dnsmasq/contrib/slackware-dnsmasq/ 6 0 5 0 usr/share/doc/packages/dnsmasq/contrib/try-all-ns/ 4 0 2 0 usr/share/doc/packages/dnsmasq/contrib/webmin/ 174 0 2 0 usr/share/doc/packages/dnsmasq/contrib/wrt/ 21 0 5 0 usr/share/locale/ 0 128 0 10 usr/share/locale/de/ 0 3 0 1 usr/share/locale/de/LC_MESSAGES/ 3 0 1 0 usr/share/locale/es/ 0 23 0 1 usr/share/locale/es/LC_MESSAGES/ 23 0 1 0 usr/share/locale/fi/ 0 1 0 1 usr/share/locale/fi/LC_MESSAGES/ 1 0 1 0 usr/share/locale/fr/ 0 24 0 1 usr/share/locale/fr/LC_MESSAGES/ 24 0 1 0 usr/share/locale/id/ 0 14 0 1 usr/share/locale/id/LC_MESSAGES/ 14 0 1 0 usr/share/locale/it/ 0 1 0 1 usr/share/locale/it/LC_MESSAGES/ 1 0 1 0 usr/share/locale/nb/ 0 14 0 1 usr/share/locale/nb/LC_MESSAGES/ 14 0 1 0 usr/share/locale/pl/ 0 32 0 1 usr/share/locale/pl/LC_MESSAGES/ 32 0 1 0 usr/share/locale/pt_BR/ 0 1 0 1 usr/share/locale/pt_BR/LC_MESSAGES/ 1 0 1 0 usr/share/locale/ro/ 0 15 0 1 usr/share/locale/ro/LC_MESSAGES/ 15 0 1 0 usr/share/man/ 0 62 0 3 usr/share/man/es/ 0 21 0 1 usr/share/man/es/man8/ 21 0 1 0 usr/share/man/fr/ 0 22 0 1 usr/share/man/fr/man8/ 22 0 1 0 usr/share/man/man8/ 19 0 1 0 -Dir: libzypp-17.7.0/tests/repo/susetags/data/addon_in_subdir/updates/suse/setup/descr/packages.en000066400000000000000000000013201334444677500323030ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- =Pkg: dnsmasq 2.46 1 i586 =Sum: Lightweight, Easy-to-Configure DNS Forwarder and DHCP Server +Des: Dnsmasq is a lightweight, easy-to-configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network. It can serve the names of local machines that are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines. Authors: -------- simon@thekelleys.org.uk -Des: libzypp-17.7.0/tests/repo/susetags/data/dudata/000077500000000000000000000000001334444677500214405ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/000077500000000000000000000000001334444677500224055ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/content000066400000000000000000000001751334444677500240050ustar00rootroot00000000000000META SHA1 b75eeb1b3d231ccb6322c91417050520f992949c packages META SHA1 cb96552f7a57eb21f3279310c1c339e6b22924d8 packages.DU libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/media.1/000077500000000000000000000000001334444677500236235ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/media.1/media000066400000000000000000000000521334444677500246220ustar00rootroot00000000000000SUSE Linux Products GmbH 20070705102239 1 libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/suse/000077500000000000000000000000001334444677500233645ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/suse/setup/000077500000000000000000000000001334444677500245245ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/suse/setup/descr/000077500000000000000000000000001334444677500256245ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/suse/setup/descr/packages000066400000000000000000000004041334444677500273230ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- =Pkg: dutest 1.0 1 x86_64 ##---------------------------------------- =Pkg: dutest 2.0 1 x86_64 ##---------------------------------------- =Pkg: dutest 3.0 1 x86_64 ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/dudata/repo/suse/setup/descr/packages.DU000066400000000000000000000005331334444677500276350ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- ## / localK subK localF subF ##---------------------------------------- =Pkg: dutest 1.0 1 x86_64 +Dir: /norm 15 0 1 0 /grow 15 0 1 0 -Dir: ##---------------------------------------- =Pkg: dutest 2.0 1 x86_64 +Dir: /norm 45 0 1 0 /grow 45 0 1 0 -Dir: ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/dudata/system/000077500000000000000000000000001334444677500227645ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/system/content000066400000000000000000000001751334444677500243640ustar00rootroot00000000000000META SHA1 95a347a40f621834a870e10b8914c9442c2dc355 packages META SHA1 7d11955486b049be5f601b82acc18bfc73c22f39 packages.DU libzypp-17.7.0/tests/repo/susetags/data/dudata/system/media.1/000077500000000000000000000000001334444677500242025ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/system/media.1/media000066400000000000000000000000521334444677500252010ustar00rootroot00000000000000SUSE Linux Products GmbH 20070705102239 1 libzypp-17.7.0/tests/repo/susetags/data/dudata/system/suse/000077500000000000000000000000001334444677500237435ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/system/suse/setup/000077500000000000000000000000001334444677500251035ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/system/suse/setup/descr/000077500000000000000000000000001334444677500262035ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/dudata/system/suse/setup/descr/packages000066400000000000000000000001721334444677500277040ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- =Pkg: dutest 1.0 1 x86_64 ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/dudata/system/suse/setup/descr/packages.DU000066400000000000000000000003521334444677500302130ustar00rootroot00000000000000=Ver: 2.0 ##---------------------------------------- ## / localK subK localF subF ##---------------------------------------- =Pkg: dutest 1.0 1 x86_64 +Dir: /norm 5 0 1 0 /grow 5 0 1 0 -Dir: ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/000077500000000000000000000000001334444677500237125ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/content000066400000000000000000000022161334444677500253100ustar00rootroot00000000000000PRODUCT openSUSE-factory VERSION 10.3 DISTPRODUCT SuSE-Linux-STABLE-X86 DISTVERSION 10.2.42-factory VENDOR SUSE LINUX Products GmbH, Nuernberg, Germany RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/FACTORY/release-notes.rpm ARCH.x86_64 x86_64 i686 i586 i486 i386 noarch ARCH.i686 i686 i586 i486 i386 noarch ARCH.i586 i586 i486 i386 noarch ARCH.i486 i486 i386 noarch ARCH.i386 i386 noarch DEFAULTBASE i586 REQUIRES openSUSE-release = 10.3 pattern:basesystem PROVIDES product:openSUSE = 10.2.42 OBSOLETES product:SUSE_LINUX product:openSUSE <= 10.2 LINGUAS cs da de en en_GB es fi fr hu it ja km nl nb pl pt_BR zh_CN zh_TW SHORTLABEL FACTORY LABEL openSUSE FACTORY 10.3 LABEL.de openSUSE FACTORY 10.3 EXTRAURLS http://download.opensuse.org/distribution/10.2/repo/oss/ OPTIONALURLS http://download.opensuse.org/distribution/10.2/repo/non-oss/ http://download.opensuse.org/distribution/10.2/repo/debug/ DESCRDIR suse/setup/descr DATADIR suse FLAGS update LANGUAGE en_US META SHA1 cec02abacb62fce2964a787d516879822691be6e packages META SHA1 2664997a3bae2679cf1395a81d54a7dd4532c276 packages.DU META SHA1 1c539c3fe4a8ec5fbe96ce3b559fc952124f9acd packages.en libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/suse/000077500000000000000000000000001334444677500246715ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/suse/setup/000077500000000000000000000000001334444677500260315ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/suse/setup/descr/000077500000000000000000000000001334444677500271315ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/suse/setup/descr/packages000066400000000000000000000012701334444677500306320ustar00rootroot00000000000000##---------------------------------------- =Pkg: foo 1.0 1 i586 =Cks: SHA1 05f0647241433d01636785fd282cc824a6527269 +Req: bar > 1.0 -Req: =Grp: Bar =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: foo 1.0 1 src =Tim: 1183399094 =Loc: 1 foo-1.0-1.i586.rpm =Siz: 16356019 38850584 +Aut: Foo Bar -Aut: ##---------------------------------------- =Pkg: foo 1.0 1 x86_64 =Cks: SHA1 05f0647241433d01636785fd282cc824a6527269 +Req: bar > 1.0 -Req: =Grp: Bar =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: foo 1.0 1 src =Tim: 1183399094 =Loc: 1 foo-1.0-1.x86_64.rpm =Siz: 16356019 38850584 +Aut: Foo Bar -Aut: =Shr: foo 1.0 1 i586 libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/suse/setup/descr/packages.DU000066400000000000000000000002341334444677500311400ustar00rootroot00000000000000##---------------------------------------- =Pkg: foo 1.0 1 i586 +Dir: / 0 39444 0 3068 usr/share/ 11 0 1 0 -Dir: ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/shared_attributes/suse/setup/descr/packages.en000066400000000000000000000002411334444677500312300ustar00rootroot00000000000000##---------------------------------------- =Pkg: foo 1.0 1 i586 =Sum: Foo program +Des: This is the description -Des: ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/000077500000000000000000000000001334444677500240145ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/content000066400000000000000000000041541334444677500254150ustar00rootroot00000000000000PRODUCT openSUSE-factory VERSION 10.3 DISTPRODUCT SuSE-Linux-STABLE-X86 DISTVERSION 10.2.42-factory VENDOR SUSE LINUX Products GmbH, Nuernberg, Germany RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/FACTORY/release-notes.rpm ARCH.x86_64 x86_64 i686 i586 i486 i386 noarch ARCH.i686 i686 i586 i486 i386 noarch ARCH.i586 i586 i486 i386 noarch ARCH.i486 i486 i386 noarch ARCH.i386 i386 noarch DEFAULTBASE i586 REQUIRES openSUSE-release = 10.3 pattern:basesystem PROVIDES product:openSUSE = 10.2.42 OBSOLETES product:SUSE_LINUX product:openSUSE <= 10.2 LINGUAS cs da de en en_GB es fi fr hu it ja km nl nb pl pt_BR zh_CN zh_TW SHORTLABEL FACTORY LABEL openSUSE FACTORY 10.3 LABEL.de openSUSE FACTORY 10.3 EXTRAURLS http://download.opensuse.org/distribution/10.2/repo/oss/ OPTIONALURLS http://download.opensuse.org/distribution/10.2/repo/non-oss/ http://download.opensuse.org/distribution/10.2/repo/debug/ DESCRDIR suse/setup/descr DATADIR suse FLAGS update LANGUAGE en_US META SHA1 3b3a4b0f085dd3605b61cdec06783b6b2a1f1d61 kde-10.3-71.noarch.pat.gz META SHA1 2c351e103b347ef2984cb2aa638accfeadfaef58 packages.DU.gz META SHA1 208a6f8e1c96e9ba2ea7c74c05113c11c7378823 packages.en.gz META SHA1 59d65b8575ba1edde1813fef2e9949ae85f4d4c1 packages.es.gz META SHA1 061c361edf6157bc4273872055822e9d1766b8c4 packages.gz META SHA1 8ae8446949182a9908c7d07b7bc58fb718cf3a92 patterns.gz KEY SHA1 c0354069c10819674da8706822e1d4bd0c1797e9 gpg-pubkey-0dfb3188-41ed929b.asc KEY SHA1 2e38e503c436c5d002bdc31755c82188044d9d21 gpg-pubkey-307e3d54-44201d5d.asc KEY SHA1 7025932e6866932f489421990075f3ed312023ea gpg-pubkey-3d25d3d9-36e12d04.asc KEY SHA1 fd6146cac8c1473c5b52548936de773d5bbd5610 gpg-pubkey-7e2e3b05-44748aba.asc KEY SHA1 cd7adceba1fe5d7ba27b5749718743192d82f802 gpg-pubkey-9c800aca-40d8063e.asc KEY SHA1 7535d79e31ef7b4232e5593bb49d9142978b2e95 gpg-pubkey-a1912208-446a0899.asc HASH SHA1 875e73cf2ee139203208c860fbfd7fa5cb291c7e license.tar.gz HASH SHA1 4aa8ded6302e6ec85690a51af6044dffe9b21923 control.xml HASH SHA1 82f1f17ce74f0cd3fca4813c178196b317fc952d installation.xml HASH SHA1 68d9b548d61e31e82e8834690e884afa27751287 media.1/info.txt libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/content.asc000066400000000000000000000001101334444677500261460ustar00rootroot00000000000000ˆFT¾x ?¸ž:'ư䤠œW2W@…÷¸ÈxªWÊÂÄŸ@E>†±«=°…ٸϥ 6¹å–glibzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/content.key000066400000000000000000000204531334444677500262040ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 mQGiBDt3zUARBACCnzYUCVO/35iVN0T6J2Qb4GfDzrq8ZOqCamjD9tSylJ+UI4Co YBks0HWnWty231Aoil6q76LRqE4bcEiJ/xuwinLFNC/S24B1cR98aq5tUEEbPJ44 MBdY3LVbB4HCCMZH56nivx4thaTiCkVnyHpGkfKStk3lUkAVk2NR/C3uVwCgnp1D qWaTn46JxIsEQMU8dczkeyED/j/J6QqCRwYR8XmlAUfI5ozIsQ7LuA1nY/NJ9Nnh w2Wkq0UBZCqP/Nbfmr5EOri6MOPD9tIFRAy4qBqkxvgy/zKfX9qJkqx3o+DVrL4y CFZHI0aUwqXvEAT6GJyDPi45gnHOVE9XJRL6BL9ZfFmOd4ajH2AJ4yy/ZqbX0GjR opRuA/0SN8OK1ERDAA5AgZj9L2ZU7zMVmiWE8/Q+qz9p2TEfkfO8NyvvzK1Rv0iU p0WuJn9gorBr93Sc9XtX3lINZ1PJUQg7KQbpfeWHMa1pxUMnIFVjpYZMmVFFGWZw 0q+45T9uMr50cvMr4pYtnvat5tyKM0igPtezMqSY2aY7LyZMmrQbTWljaGFlbCBB bmRyZXMgPG1hQHN1c2UuZGU+iFcEExECABcFAjt3zUAFCwcKAwQDFQMCAxYCAQIX gAAKCRA/uJ46J8aw5H+tAJ4ktFPz9sQGuec1LaX0pIB3oZVAvQCeP+jNfv9ZbVHI Uz8bw8JBgwAe2w+IRgQQEQIABgUCO3fOdgAKCRDHUqoysN/3gB9xAKCLvhrIusLe 6wH0ByiA1ON3R5TNPACfY8W/eTeDSu9xNIlSCFMgDHw05cqIWgQTEQIAGgULBwoD BAMVAwIDFgIBAheABQJIZg3kAhkBAAoJED+4njonxrDkE5oAni0UwlVNIaklPunu iNb44D+AcgwRAJ47KCtevu20oesjoYkKhFNSLT14E4icBBMBAgAGBQI/xnvXAAoJ EBlUT2RolefhXTwD/iXBc3oVl/jyeV2qoUB/cB1+quxpVSkjC/MnOjtmU7lXtNBj dS7pZkMHyLDhT3VCTxvWTNM5sdS8hyQcSMATQ/axySFEy98tj5veZdMWcn9doyOP OIpNhAv55iMsuvAP/cd26VYJDx4Amlv7BXlIw9prYZrePZrZVlSpXOnGQ9JoiQEh BBABAgAMBQJCyOiqBQMAEnUAAAoJEJcQuJvKV618ALgH9igCYlbAeAAs+WTHoBgO r4DFI7xREXf+AfPxraa/vLyH0cwDRej40aOnzEnwBSIC/DH+7Oy41aKunELyNtJ/ DTkextRs2DzDhMGmYadHS8V1CPdLLA/q0rmtdGA6t2D2xhIdPXuO7+gHuaEydGTA /KFmyE8XE0pDYHyhsrBeelSBPZS1dDcJx7vib1GQPHUydOI8PRKJbn+kxwjNqGzJ m17sGJaxLPH8iWby8bEjmCFU31x+t+ia6sYSO7CsbwHL2mxuwfDE+f8QXiYFKDZB t/pN0ky6iiBGoCyu/OrT7nqRmlmanRprotZ/2gW+pYGIQ1sHrcZQz/GMov7CWXGu i4kBIgQQAQIADAUCQhcYbQUDABJ1AAAKCRCXELibyletfCOHB/92VkN0tLaC2nWJ hOaMP2XGQbm8f09BphSdb8pxxMqnUH1W8YkCNjLvoRGN5exxb7cpfrymSqdjmSh1 bVkREh4zzx5zd8Fhush5wqXq4PItV4Z+Es7kuZV/McG9mMoGqxI2WUyrZdXdOMFJ O7ABEFtw7iCdzh9tVenX71U/2ePT/Ab8iWXcT5Xei4X1eQBtQ3c/2B6i9TDuH4Q0 Cd8C89qyhzDaxrlX2dXfU/mwqIh/+6I4mwnAFBQ0RUtniXX4YARG5TuKYhDvfBod vj6ACj518Kazlu8eOyUtZr+w1ntc22veQ8im7qpMqpMAqEYmpO7B6wYb/BOOxTBD +pROcj3ziQEiBBABAgAMBQJCT68CBQMAEnUAAAoJEJcQuJvKV618IwIH/2pIkrl7 OWSIoZADqVC7w6eXF17sV5TXLqJEPaHVuS6e+RnTbcRut7lPbx3wFVWQflFhn/fg jkTUkTpcwbBrl199OA6k1yQPdYCJb1KuFP8aipWvlUjJcqUnHJS0ub7eSqWLeXcq 8cIufLMVNIcImU9yBoTVo4t7bezcO5LBC9l58B0uO11TwUlJ0pXAGUqznlAC7EuO uLUnZr/6G+PzpWDEJN6QjBdRnn9qIflefkTXdsqUb2ByB5/SMJ3FgHkPZBx1Mqgm IXvW05uQd4uyHJ0t9azvwxtgHgNH3y+FBkglP7yhRfBxwvMZbLJZft7xnXLMgdfH M8Sj6pwmlSI9cnGJASIEEAECAAwFAkJiN0UFAwASdQAACgkQlxC4m8pXrXywowf/ QzsKRLsWvMvNlYixCp2xF26ZKLpMUddmOxbqrJPCmITCkVO6fJjuegAwWBD9CEgg 2RfCZ4n2thwsbLWCRjYrwUzgbA0s4h0NE5mjsuOwQmKHjPXi0Fn3tx3teA7/GVPB cqEGHnHVXx9guyGiwqugMRsYfYXEbDel68fo9Z7MraLwbTB2gSOJdEkCM0KtBNYd ZUG7Q4m8qK8kBGjhBjCK0jgsaJK0FLRNlT5dGnwG1ggnnQEr9x6U2BwikfzaodDp J80o3Z9PBr5OiDxXPb9kMgW9VwRpBBwvCi5ltAn8NtfIsPlQYwmb0FXyh7AXxlx0 f2dS+IxMAd8POqhiABLJ0IkBIgQQAQIADAUCQmLeuwUDABJ1AAAKCRCXELibylet fHGDB/9u0yi/Wk/mrFzrvwI4AOb92E7427Le3USIKUuWZSMqzAAVeNgCgKfy/NbY gs6Kttb56+HnUJJ/C79YDh4qABe0hGiIgik+dUj/t2FBIz35cc2rS76hHXm1lWQC 0Si48AKPqhqzWCwzwt6aerQIg1IBkSmINKF6LrTIraYjh6UsDnLqLrlxnosXP4bT byIKH2mTT3bboR8iaYyzxKV0ccydHE0jp0Dffx3x4wH5CKHrEJt1lhSKdDexM5yG lAa+haUDKRulODNVljtx5m84vOgpwdg/JphLBJ24jGhHUS3PI3cXf+TV97J3YYQo XITC9lRNqk3GZeWWyUu3r0XB/hp4iQEiBBABAgAMBQJCdVu9BQMAEnUAAAoJEJcQ uJvKV618HHcIAKOHqHyRSw+4jg35JfVcLgrZn/3G4cDl35cAtZ5iz6ukEg8vpzH3 rMfiFYV2WQNflQ2tIrD9ZwSjJVAXNEL1eX883HAL7HmHFCqaQTusZb7vpbzh18fU Tjl4Nq3K9FqIIfJzJ8lPxGit6eL82OO/WUffjQAA9Ad+2yY/yWOyqUN4dqzxUWx4 9F1Q2UDBGiu/QhcEhUlPf6B21I1nqsSkOMGtRiHf7RfrGDss2xRn+0PDrpRDcpmV ZxJ4JpKQSDBKqbktlcdl95y9gI6llpJXFFQugxGwsC4qr6UYw4RloAdkpwz6aAlk rfFgCZ5KhkLs4HQkdZLr+zq7zJh5njuBnJKJASIEEAECAAwFAkKHod8FAwASdQAA CgkQlxC4m8pXrXxEdAf+Juexqg2/qC8vP+OnTuuDzTALHdSzt81Gq8a9jMHVs4rA gAAEKbKzrRgnAjI7wyGSxU1kaPNh+RQB4qtZy4x7MlJtRfcfSlAWw7i3rqKQakpY xUQEXLt/nK8kWxd2nC4gMW0105J+lBSMiCAw174/h36RjG//Cv17AhzGOckFE0n0 7gZlW/+5YnjvFemP8lFnL5kb5BzPPiJy8J1VnqvXY95n3HxhkoiTSrXlS0MNNLgG h27C+Kzl+p4X/T1esWoZe3pbq+qSb4xnglXOqzGJduQ0s585907ohm09m++e6NXK hxxysu4cvcMv2Cc4ep9HglEY6sVrwY/0pMpBYdMLBIkBIgQQAQIADAUCQomcnAUD ABJ1AAAKCRCXELibyletfDfnB/9ELbGLL7OIsOwCDidj1f/sabT/aFJ4LX15nm1B mW0huKLRdJuzX7XZkcTx6SohTcTgFIfXxV1RLt/7wrW5TTRrYmDRyk0CR1EZlfgz yLUaG+18ml7h97DZqSIaWnsqnryJB1QPyGO6yBUQTQ/KcGMyw2lzY2ovtl/UheIu PT0v3v12kFxOo1xYeBn81YHQKPMWJhJ+iOmhjbj89W6RZ8swgSd9pczv0ptfUFIm X5NbmIFxaiwWkRraUZYjdYYJGIainE9DpcMsSaSV7tq+mPl5NYVJPzW+llPPTqo6 zIKxIByiVfH0zac/xecGyKe1RhBYJ34fdK+GcM8FYcWkpxOqiQEiBBABAgAMBQJC m2c0BQMAEnUAAAoJEJcQuJvKV618OnMH/209R6nyz26CxVS4PtYYzMlOZ5VlOl/U BEmRqmJeY/frgucejxX90qHUOy1dgBhJXQ05H5zHU7B0UHoha5KnSSyT2/p7owBu AypZVvJB8PxxepPXUVfhiipR+7jWnYAsc6tjWn/+dE/ryO5iEWWAGDI0ZQ6dd/9C sz4jDeffQusWB6g5ebfL6+SBHa5N2PCydGr047fG0KZm2jposMPsXbIuKh6LSTaL QxGUyyJ+tTNfwstFYMlmawLMHtjb8F5r6FT7bywVlVHr7t2DctaoxULvlvogtCuE 7B9fG2EPg0sw6yK6P2zjGs+uv2qPO15vVWFLnQJ2eXrY1eNoUL/N+5KJASIEEAEC AAwFAkKcuOMFAwASdQAACgkQlxC4m8pXrXw8Jgf/UKw9NzMIFXf1LfuKW3hH2dhd OYyVnsYmuPy4HQTk0It579t0Mc8b4nrT4Bm5Id//SzxhKI0mGNxtLKXTiHOsTmEU KLeBXRaw7snnq64vaYz5NU9LdW/GX1vt4QtiGaLvZq/INUwB2jobqqcMwfw9n295 IEeKSuu0PcttZNfLGg06wBashAMl9h42ZakxlbYpbOPj0k/MdoB8EijdO3d2M4eV DJKQNj7XiYE+yNmecEGkxaEJBma0xloA0iiGdPJHFlK3dHKKI93A/IU4KRhAE+iB e+HlxOMyyGOk84+vWoT9IeQddYaxdlBm44TznYNN6en1lu2nqAA4s2XZEvw4rIkB IgQQAQIADAUCQq/WegUDABJ1AAAKCRCXELibyletfNBuCACi6+OSvQrLBIeSmhIy 7Xgv2y/zfTKc1J++Nj2HFWC/X9pJCDHEyY5h0enHrePPoQzAlNY4Mz8sNzI2gc5V +6B90XMJUCO4xz0wSlSTSMgX7sKO3zti6TaHi1dky89UDwOatrvxtRFeY957dInE WDTyucTfDCIu7sQEHClXlTNTWXXs/MArjmtUfldCs6KWEvBiXec8YbAyC9gKZ3YV ERrkMEJJYVWJiqp4jkCu7N7SUm2HS4GUIfacP+Qt+FJqHjkhYmGBJXfRSNcnOubb S5gk1VJ7FKM7ZwQYDUZgouQUi6BiLoaJ3D0mHU+kxbg7PPhbT06u/MJh6v1B1Isa 2s/niQEiBBABAgAMBQJCtR/qBQMAEnUAAAoJEJcQuJvKV618R+oIAJj01Y/c/uq+ 4FqSfanoAGR5uqz3Ln+ijzycyMMQ8cY5fZpGaeeWzi3POlfnz35BsVXASWec9x7+ bHVQY6Rn6DoQFRX5cQ6WwwRpsg8lAoL3uzN99Frj8rwGoLkTCJvRNZVbAaDmMHAa +dAaq+ro1B22IGxvfR6N7EfjBHmeXfTHkSdszEBl9WnpsyziapSpkGFvcdzPWnBg Dh70nybKseCDdcIdTRCmj5MIBn150nav/1SzX+oustuxoRxrjYZUFr8dOK52xHst GgaSyNqKE8XJ8CCBvEI2x6pzIrle3vdBaXD9Yw3lOhNN0OZsqZWb/uQCW884tlDN XhUExNhcHXqJASIEEAECAAwFAkK3GioFAwASdQAACgkQlxC4m8pXrXz+ugf+KMyj rXp55VY5hSYZUoM1g+NW2ayOiT/pQNzOlVZt/fA64zwkmCGaRzEC6jB0rAi98b5o mvgCEwXWqg6z9asSbOk6/kIStI8se4hxp0BQSXIB7sXyrpopugigET3yIwSOM7M6 fez/WHJYF/8xOzA1VM5Fbs4M2V15hpjA0lwBRHgkxqBNaHl3FjhqO8SmcECCMART IVamMKniOK8hOVH0NKbjj7Zbe21EFuyXsxa32ROCPIY4mspKNFXtT7ixXmLjMxj0 P3yNUVBGkgjh86eP6QjT54V70nwVbjg6u7f5xeQoWHS+8dt4QhVOZDz3XSjKwgZq NllQ5YCSu/AdHJfcM4kBIgQQAQIADAUCQszcBwUDABJ1AAAKCRCXELibyletfBsa B/9HKXrv7HDwZ4LS4Sf/wrtlUZIEMmbojeF3G9QWBXp1D/SbSJHPTuXM9jsZcfTZ VX+neDDB5FkaGtqLf3Wcm5AT06qTswKbCrg1XlFQ66YuyqgX3+Y2i4GloATDNlPS Ho5g2YliIoZXxP6VzrmCHVDKBi/TWNxMaCgwPRtJvSRGUiitv/AJR4LCyz6T6QGJ +WRPaHwviT2FX0aAjP3q3tZKaXNmGskNuX5WUUnThUuZWwFJ2eZcqF3Mr7ZTmf/v QnwEoyEdULUNBWF15R5FD1EvK9ELQIEWOWBILv7Mt5ozNSqTYV78UpG5MiiM3DMh QP3iaqLsVzHvCNxgDmPZ04mBiQEiBBABAgAMBQJC0XrQBQMAEnUAAAoJEJcQuJvK V618EDYIAJgUg6kV4hU4Z8ML9Ka2GWazj34BmEMqkk6Jm6IRP2nVkHbe+/NN7vOZ TA+ZHFJKy5zu144+o6PqR2W9ZkcbWplUz4bC4POXclEfbIywH/7coqUwa3RjvRrO TmiYAZKV/Z7yngC3BLBIktlEvTZustX6LsqPrqLn6Wk8GI161HWYhwRCIXQ9Vs2e BhSGPzHp/vEOJHdGMsXpxEakcCCnn2SBwYcrkV4AN+gOJhsoH55hD1/mXEK95zoc S2uUaxxhn3jKEUFMOnCfcfuqZ52broV3OUczxozFloIGxxZv9xwBNHOMDfA0LI6Q 9YsL5uWDE1QKdwkIzqDC4mBzgOxp5C+IVwQTEQIAFwUCO3fNQAULBwoDBAMVAwID FgIBAheAAAoJED+4njonxrDkf60AnRUchhESPbyQbSvy7sX1xunLHgRkAJ49jGt8 9LQdh4lvqKfpj+RMqY1LI7Q0TWljaGFlbCBBbmRyZXMgKE1pY2hhZWwgQW5kcmVz IHByaXZhdGUpIDxtYUBrbTEzLmRlPohgBBMRAgAgAhsjBgsJCAcDAgQVAggDBBYC AwECHgECF4AFAkhmDeAACgkQP7ieOifGsOQDpwCdGxVwFjNt98OuylGNhhjm2GD0 HUkAn19PVAoWFjmHhSadUJAehJVloqjbiGMEExECACMCGyMGCwkIBwMCBBUCCAME FgIDAQIeAQIXgAUCSGYGFQIZAQAKCRA/uJ46J8aw5BvgAJ0Zo8czcPx39AUXGXIU v+RzkBeujwCfYOXRCpThfRrd2FyuUAULu+/PNnu5Ag0EO3fNWhAIANoFOLBJ37Vr 9umFyQJk2jB1zHfh8p0wF/Tw1giR7LFgTTpgvy27JR1BTSqJkeW56sfeDfMkHcRF SEsRl0SKHfpHLQANevwvygygx6OgeJrCdgJTkhWUdB7SgVC1yMSsWm0uYTPSOH+l 9PpICNH+tP1po0qoQsD387uY8XOwlLSAuFTOGGT0q7N1g/swF/5RwJhLtgj0viQR /lzoZ9f5GB87Ih9ab8LgBj1XcddjtFe+Qr0pZ+0tT5Fqz9/muOzeW3z1nHvE/7di LMorlevz1gD1JOPoFDaTmLsuWXdFP0aZoi/2Wx39HVD8Zpp8vN5M3Ta/11oXhoHG AIuIQ3kFELcAAwUIALMbFRojYmYCl6TCZ23PB/+8fK2VjAu4vUzuvv78U17H26pO G4mVbW7XXFBmN30viiqEVMdrm76odOe5VhF+lCB8irbvedL0al/C9vsAUGKRxJB0 1Y/mXsDuPvxmiuGqcWrb8j3chBh129dCO+dR4MR1xfth23EnI/fncggAeXGT6+HD oXfXTHoMolWKa9Fh3vRTZqFtBQTYPenr7lhUjPmM3cpswSTxkwIqC2pUmmDMekSu IOCVIbe5w+f5OB8j2Bd3ZYgxsePcf20OWOXdLNucO1KPaM9zS7LxhmlzAOWcXj8E EK9bAvdi1DXDgJA+AYmD6ol3uX+eoIDh3akYTTyIRgQYEQIABgUCO3fNWgAKCRA/ uJ46J8aw5AtiAJkBhcP6w63v4r8niiOPjmgN6NbxxACeK/BBzQT+qgqQfHYEW0Sc ixhE83U= =Z5HF -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/control.xml000066400000000000000000000675071334444677500262350ustar00rootroot00000000000000 control true true false never 95 true true simple false true true true true false true false /root/ /root/inst-sys/ false auto http://download.opensuse.org/YaST/Repos/openSUSE_103_Servers.xml false true 7G 40 5G 20G false false 15G 25G false false laptop ifplugd language keyboard timezone users networking firewall host routing proxy runlevel x11 nis ldap printer add-on installation,demo,autoinstallation initial initial no hwinfo keyboard mouse partitions software bootloader timezone language runlevel partitions software_simple country_simple hwinfo keyboard mouse partitions software bootloader timezone language runlevel update initial normal no update packages backup language update initial initial no hwinfo media update packages backup language keyboard network continue,normal yes lan 20 general 5 dsl 30 isdn 40 modem 50 remote 60 firewall 10 proxy 70 hardware continue yes x11 printer sound tv bluetooth all yes yes installation initial language no yes yes true checkmedia license disks_activate system_analysis productsources yes add-on yes timezone yes yes desktop yes proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no no finish no all yes yes update initial language no yes true checkmedia license disks_activate system_analysis update_partition upgrade_urls productsources yes add-on yes yes proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no no finish no all initial repair info repair all yes yes initial screen_shot no yes language true proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no yes all yes yes initial demo no language true proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no no continue update all yes yes rpmcopy no no yes ask_net_test no do_net_test addon_update_sources suse_register ask_online_update you restore_settings suseconfig no no release_notes congratulate continue installation yes yes all yes root no initialization no no netprobe no no rpmcopy no no hostname proposal network fam ask_net_test do_net_test addon_update_sources suse_register ask_online_update you extrasources restore_settings auth user suseconfig no no release_notes proposal hardware save_hardware_status congratulate initial autoinstallation all no no autoinit all true autosetup proposal initial no yes prepdisk kickoff autoimage rpmcopy finish all no no continue autoinstallation netprobe autopost rpmcopy yes autoconfigure suseconfig libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/gpg-pubkey-0dfb3188-41ed929b.asc000066400000000000000000000015621334444677500310600ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBEHtkpsRBACRHiXh3olS++6/Mp9N7ByGMmjaaE+Y8cJQLUPG1myrbW5aogIP 0WenayhGbbgOHNWgd5dQ8KQpYYFoQuUHjFYzj5MvgrdOENOvD7ZNJ6+EmbkNh5cV zUYfNG9jdiGweZkyA1sh8DYS0JiUmQ4CzaBD/DotB/dCmDcyuNQFiw4qKwCglQah ATyueBRsOiXl0NIs1uB6dkkD/1A2YmQ6te1q38a1J+a8os6bDlMZhVnkZdhJdw6x eBwUb9XS0n7hyt/AKCcBnrDEUQJuhBMNgzctJvbuMv27yRMANAXZDQkp0ip/yHLJ PhUdSNTTRHOL9bV3t+JuZ9xmuclprwyrrJYUkEESXNc0tkuczHBP2c/RqA3OxYHt hrHLA/9Pqe2gEleeo8l26u/uFXs2dtwjh8EZmdhHoqGcOlpYR4DyAg2D+jYfh3RI oPzIwRlHVUR1ii5h8iPi98BVuEvukwfbbQ1K22Jwzxt6w3ihCXBKWKbeC3ElIMfA hVMchLFUbTAw+yodO/u3NHxKQ34+ginid9dVyxV5T0gpDEEHObQrT3BlbiBFbnRl cnByaXNlIFNlcnZlciA8c3VwcG9ydEBub3ZlbGwuY29tPoheBBMRAgAeBQJB7ZKb AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEHPSXWMN+zGID4oAoJPTGZbZApW+ tuU422mHYGwoqgjrAJ9fhzRhRbV3YsOxKUomNeuIfmWGXA== =Qv5+ -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/gpg-pubkey-307e3d54-44201d5d.asc000066400000000000000000000011521334444677500306760ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIF AkQgHV0CGwMFCQQ9AoAECwcDAgMVAgMDFgIBAh4BAheAAAoJEOOlw2Awfj1UjUIE AIf3SLlrfj2RsCDjyYThXen+A/WTYDPbY+NYmmVvFQilHNQY9ZrJ5cNohRQu6hA+ Sccrf11Uy24tTHWSTzuG9VzFeeIAcIU02XHar0w3QbvTk6IqeG+OZlfOGJj1sdx4 JKwpwk9mSdrq2ELhrkPZiVWS7RmRkPr2klwYgKGWbmOJ =ZmDA -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/gpg-pubkey-3d25d3d9-36e12d04.asc000066400000000000000000000032431334444677500307650ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQENAzbhLQQAAAEIAKAkXHe0lWRBXLpn38hMHy03F0I4Sszmoc8aaKJrhfhyMlOA BqvklPLE2f9UrI4Xc860gH79ZREwAgPt0pi6+SleNFLNcNFAuuHMLQOOsaMFatbz JR9i4m/lf6q929YROu5zB48rBAlcfTm+IBbijaEdnqpwGib45wE/Cfy6FAttBHQh 1Kp+r/jPbf1mYAvljUfHKuvbg8t2EIQz/5yGp+n5trn9pElfQO2cRBq8LFpf1l+U P7EKjFmlOq+Gs/fF98/dP3DfniSd78LQPq5vp8RL8nr/o2i7jkAQ33m4f1wOBWd+ cZovrKXYlXiR+Bf7m2hpZo+/sAzhd7LmAD0l09kABRG0JVN1U0UgU2VjdXJpdHkg VGVhbSA8c2VjdXJpdHlAc3VzZS5kZT6JARUDBRA24S1H5Fiyh7HKPEUBAVcOB/9b yHYji1/+4Xc2GhvXK0FSJN0MGgeXgW47yxDL7gmR4mNgjlIOUHZj0PEpVjWepOJ7 tQS3L9oP6cpj1Fj/XxuLbkp5VCQ61hpt54coQAvYrnT9rtWEGN+xmwejT1WmYmDJ xG+EGBXKr+XP69oIUl1E2JO3rXeklulgjqRKos4cdXKgyjWZ7CP9V9daRXDtje63 Om8gwSdU/nCvhdRIWp/Vwbf7Ia8iZr9OJ5YuQl0DBG4qmGDDrvImgPAFkYFzwlqo choXFQ9y0YVCV41DnR+GYhwl2qBd81T8aXhihEGPIgaw3g8gd8B5o6mPVgl+nJqI BkEYGBusiag2pS6qwznZiQEVAwUQNuEtBHey5gA9JdPZAQFtOAf+KVh939b0J94u v/kpg4xs1LthlhquhbHcKNoVTNspugiC3qMPyvSX4XcBr2PC0cVkS4Z9PY9iCfT+ x9WM96g39dAF+le2CCx7XISk9XXJ4ApEy5g4AuK7NYgAJd39PPbERgWnxjxir9g0 Ix30dS30bW39D+3NPU5Ho9TD/B7UDFvYT5AWHl3MGwo3a1RhTs6sfgL7yQ3U+mvq MkTExZb5mfN1FeaYKMopoI4VpzNVeGxQWIz67VjJHVyUlF20ekOz4kWVgsxkc8G2 saqZd6yv2EwqYTi8BDAduweP33KrQc4KDDommQNDOXxaKOeCoESIdM4p7Esdjq1o L0oixF12CohGBBARAgAGBQI7HmHDAAoJEJ5A4xAACqukTlQAoI4QzP9yjPohY7OU F7J3eKBTzp25AJ42BmtSd3pvm5ldmognWF3Trhp+GYkAlQMFEDe3O8IWkDf+zvyS FQEBAfkD/3GG5UgJj18UhYmh1gfjIlDcPAeqMwSytEHDENmHC+vlZQ/p0mT9tPiW tp34io54mwr+bLPN8l6B5GJNkbGvH6M+mO7R8Lj4nHL6pyAv3PQr83WyLHcaX7It Klj371/4yzKV6qpz43SGRK4MacLo2rNZ/dNej7lwPCtzCcFYwqkiiEYEEBECAAYF AjoaQqQACgkQx1KqMrDf94ArewCfWnTUDG5gNYkmHG4bYL8fQcizyA4An2eVo/n+ 3J2KRWSOhpAMsnMxtPbB =Ay23 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/gpg-pubkey-7e2e3b05-44748aba.asc000066400000000000000000000020211334444677500310370ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBER0iroRBADfqUeJmPCXqPJFnf3CVKy40dL1F+gfvP+JHN7/uu4c9+oCYjI1 uAE8iGTm/Twb/Zzbs4dt0iWjhNFXbRi42rMww4d/8QcPYZ21WSehh+fv8nCjt2sw LeC87ar2SR8OTpJBK0fQlcd4e6H5GMntfI6SYEUOPd8m/eQ+4+1AxpUUpwCgswaF 13fePZGI//pDn5tGjbvmaP8D/R3qum/I+oDS8lbFeeDS10GkEkwTYec13gdfsq6I yzIj7VBsC+rGfbipv+VGR61Q4d19pOHKLDekr9OG+3G4ZcYM4NQvQZR+QIlp3xWu nBmYD1LRkHLVj+Z4DGQhjjOffkPSuacKPymMaZ/aRiLgTIAo97W2YPhutscXrLSG 2Y+BA/4jsyaDb7kbW4wc8RtPIcuFEheVqgBeRakP9Uj47kBMBEpPtI/mIdY5liKk ztKnuQG6ROYLNV/PW0ZbE1uT64C710weh4cB3PnZLV5P10deDLBjHk8MJQGCTSDD JYvhutUzQfshAU6j2kErGvKdZxWGezab34vFyMP2oLGqswPAJrRQTm92ZWxsIFBy b3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20pIDxub3ZlbGwt cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgUCRHSKugIbAwUJA8JnAAYL CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBTCi8l+LjsFWEoAn13x+5ObqkW08gYF YNDlcGPjQuGPAJ9kAQbVUvvh1u9mBgu91cQ9W/TkHYhGBBMRAgAGBQJEexD/AAoJ EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU fJAKVDoB9w== =tJSz -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/gpg-pubkey-9c800aca-40d8063e.asc000066400000000000000000000042021334444677500310350ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l /PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO =pJli -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/gpg-pubkey-a1912208-446a0899.asc000066400000000000000000000034201334444677500305500ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQILBERqCJkBEACdqhZWdAbUHLIumXMEgv+GFjr1ZzVHgynnFOzztU/8sxZNa9cm YV4HZpVfjMr7fos3ArzyiPPt/336cf7w9p79/ZS4rHSNPDMlPCtXYvFxUbvU0/GY q4jwcBsrJ0xaJ9CP5bWyAgVKOb7Y6k0ktaLjRR+tDfMsHA4H0ClMoRr6ATw8NL0e VCfAHuzqCKvX1If8ng+wTivtAhKvz/WwQiELNELmPfc5tZHOw8NgP/r0Pze18Hn2 dlAHu0WpC7uoR00vscsMIJiJJPcsxbL1F1eADKnk+wEy8Go+EJeJ5i0WoFbqD52q Lv/C/oY6NVtVY0MBwtn+oQNSnQ4JBsB/Akdt53LAi0ZtNQxMyUW+76R8FCOmVCV8 WGiF5CPRP0yvG80AMBjBjKjHb/v8ov5MnIyFimzAHS1gQcUNxTEYA/5eFwoYcGcK weGq9FUjPTzLQAgvp7XmOzHpSAfJ7qysxFTepNsSZZhgizJyInrdQldr+GYcUNqB krD9MWmFop975OxhCTEnNv/HcE79r8WD26HzDFYxTiTJbr0pU/ivBzo+rjq+YG2V stJk+udVYmZTnC4LmXus8JiNuqBXbxNscwCBpcJ8YcfCV6uh+7E0XfXZsgVUFLp1 NF+ylYRGTycOlWoZODrnJevZW7N9O3bWRx/G2P4bJD07LsDLe4i5hymf5QAGKbRQ Tm92ZWxsIFByb3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20p IDxub3ZlbGwtcHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6JAjMEEwECAB0FAkRqCJkG CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBHijLooZEiCKSFD/93vZHCAMLEfksU KnvXl08bv1rfuamuyJnE3ANRE5RDyypriHMCnkVxazvQ2WI4W4UEjluL9+SzZwtV ZvKVoAr31614nSyWwv2YnJTHfjMG+xRlkolZMnuIiB9PcCBo9+GPU0ABuzo4pEJW NIRoSS1NFbAZBhtUnY0cN+trM5QObLl7xXTavLyGk//blkk57fov7GXsQJlZUig0 l2yt5XNyGpLUnTMDumHh8b389quF+0+ZfdwOy7A768xjipAZiTvIujBrEv51wrxh 0HBT0VGA0MhD9t0B+Ce4BM9P/iVMO00naaOp6PqMfPPKxQQqer8qy1i6UWBx95SY mKZBIvOm2d9PezDxkckCu61r6krx1iKnT1wdprCAkIYwALK118SpbxuyGW0bhRHc wsc/akzWH72fS0Xu49mvL4k4A2U9asdeQid3dMgbtm5mSWof0yiU/G4YNn0yeXoY oG1VbCAqQbFX1Rvd6GITJVqI+ekW/uMA9BP78dF8wBeG0+QmpQnSf+eOsxB/RT8o Kb4hHY+29MUlg+i9ceVt7hoKr03J/uIG5TXFXRYLaI0iAFVlKfWxpqDfS2XA4+dD VYt+5RDgBcnxDaTB4FE9GqcYScNfe7+NFtL0p0wOPftbmgZzGjucTmrD8mDUNdqA xGK7vlk4GATSfOQlq7G6LXW6RYnInohGBBMRAgAGBQJEazMlAAoJEKhO2uicgArK 2vMAn0TbVDESEVKVuFZStrfIzOvJQrR9AJsH733Ju1kE99GFrdfCeGqpckmNhg== =E+qN -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/installation.xml000066400000000000000000000101101334444677500272300ustar00rootroot00000000000000 control-ISSLE false auto true product continue,normal installation yast2-issleconfig no no normal installation,normal sw_single yes yes issleconfig yes yes inst_release_notes yes yes inst_congratulate no yes no no continue,normal installation,normal,update hostname root ca_mgm yast2-issleconfig suseconfig issleconfig yes yes libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/license.tar.gz000066400000000000000000000000551334444677500265650ustar00rootroot00000000000000‹×WKíÁ  ÷Om7 €7šÞ'(libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/000077500000000000000000000000001334444677500252325ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/directory.yast000066400000000000000000000000761334444677500301430ustar00rootroot00000000000000info.txt license.zip media products products.asc products.key libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/info.txt000066400000000000000000000027641334444677500267370ustar00rootroot00000000000000 openSUSE FACTORY 10.3-factory Attention! You are accessing our BETA Distribution. If you install any package, note that we can NOT GIVE ANY SUPPORT for your system - no matter if you update from a previous system or do a complete new installation. Use this BETA distribution at your own risk! We recommend it for testing, porting and evaluation purposes but not for any critical production systems. If you are curious and would like to help us to find the bugs, you're very welcome. Please enter bug reports following the instructions given at http://bugs.opensuse.org . If you want to talk about this distribution with others, you can discuss on the mailing list opensuse-factory@opensuse.org. Sources for development releases are not distributed via mirrors to reduce the bandwidth and storage on these mirrors. You can always find the latest source at http://download.opensuse.org/distribution/SL-OSS-factory/ In case you need the exact source of this development release you can find it on: http://www.novell.com/products/opensuse/source_code.html Alternatively, see http://www.novell.com/products/opensuse/source_code.html or send e-mail to sourcedvd@suse.de to request the source for a specific release of openSUSE on DVD. Please note that we will charge $15 or 15 Euros to cover our costs of distribution. Use this distribution at your own risk - and remember to have a lot of fun! :) Your openSUSE Team. libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/media000066400000000000000000000000521334444677500262310ustar00rootroot00000000000000SUSE Linux Products GmbH 20070705102239 1 libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/products000066400000000000000000000000351334444677500270160ustar00rootroot00000000000000/ SuSE-Linux-STABLE-X86 10.3 libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/products.asc000066400000000000000000000002751334444677500275710ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBGjNGIqE7a6JyACsoRAoWnAJkB1wTxOQngy5xvjTiUvwWp65wW5wCg hCbA+jw64zZYCa7IM71hBBynFL4= =nSHl -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/media.1/products.key000066400000000000000000000042021334444677500276050ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l /PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO =pJli -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/000077500000000000000000000000001334444677500247735ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/000077500000000000000000000000001334444677500261335ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr/000077500000000000000000000000001334444677500272335ustar00rootroot00000000000000kde-10.3-71.noarch.pat.gz000066400000000000000000000111241334444677500331200ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr‹›§Fkde-10.3-71.i586.patåZ[sU¶~÷¯ØUóÀ9…í"Ã0L¹Šn‡afŠI 0œ·Ô–z[ÞêV·è‹‚üdIqœ+&Ä„$r  ĉ±ã{ªýš’~‚F–mÎ9Ôù ó­½w·ZÎmÎóypÒ½/k­o­½n»õæ…ûîûï¾ÉŽò0¾°#/ ¿8ôò‘aùÒ~φ†Ø¿eÿýö…^fjÙ_Þ~çýÿdG}ÏŠ²aÀÞ*dþ8ð–®ðy(,æ¹ìü÷§ÈaìwìÈË#/ùÝïÙûï½®ˆ ¼òwá°—†_À#xŽ0f[B1e/aįóp8Œ°·|>*³vcžùÞø˜ÏÝÆm=iq3Ø‚¤“o¬ßL‰x*;&Øû…œÈD.T³jª8&³Üaoº%é{nA¸a · ÷Ø[¯=c ¤zÓ =ßõ–óóÏ‹ç4y°vd%Ø"°mÏu¹¥çGe<ï —• ÅÆ _acÙLû#1CW(–`@’| ÃaÌ7ضÏÛól?ÚÙn^˜ÙÈÌÚQÀìÆ²ï–Ÿõ¤´FØ_¤›³¡ î ™)Èýj!#ÁRK@’z&5wª Ú­Ní³Nõ«N­Ö©ÞÙÿt¡ûeM¯° #¬]Ÿiׯ¶ë÷Ûõ¹öܧíú'íúr»~ñgÛõ 5rU\WÏ×ÔÊ ½ß ÌîöçãEGºv¬O7“ÙØØŒ;i {°pI&.bvç*¨w¹4î%Ãc¯ý-Á+p„ûèC‰Í‹­‰æBëDs¥5Õ\jUškÍ­æÃ?k­‰V­¹Ü\jn6WšKzK`÷Nê-Vô½ ô…%¹™-%(¸†±ÕÈîñj]¯ÍÖ%vKZjþ~÷ Âéæ‚^>>vìõwFXwv«»ùåþÇw#`â½0qíMhë ¼òvÖ!çÂã»Ìôç7ÞdoàH†^1}°Õìp&§4¯7šw›[­*.@#Ê‚^FNy”î\Vã6mÑä´?°}YÏ·‚ØdjZôñŠÝRÏ ˜ìaýçëë'Îý\Áÿ§ñ~?ào]ÿ=œÆÿ›´ð3,šP‹æ~>imªÍzã]ŒWã… öó¢¬=¬ÿcb&YA ´ç?UEÊõƒ¬/áýÒëA'·§p䯲Ã#;¾¥çÉí1?–ËÅÆr9lÜèó}µæ°ï3ÅLä õ‘#Œ‡Ü‘}.Nó)? ŒdwÞX¨S›êTWáÆÚ)òçÚç±?ÓªgúógjäB{®Ö®O·ëë=¶§ü÷ù…ÿ9sã×Ê¿Ö.°_¯\þ¯{›zceq?á(ZÔÏõrøw öXç?ÕFýÎïõœ¿GÃ"“(ËJô¥×¨ {ÂÜs:å =RäøGcwO± Å;¼ Ç] Òž“OÏ• ÆÄe·7­BÂ|«ÚºÔ\o£(CaÁç1aa©·Í„µ7î—/’ð`&)<¤&Mˆx Éó”ç#Àmîiãø`²EøÁš‹©˜ØXó>½O¤"Ç MW1°Ù:‰@I¯¬9‹§M„ϵVe©˜º + $Ñ>M¤î)¤WWXsokŠ,fãZó½+öw› ƒÄëLóžzßP¡Y-;…›`FlÑHmb#cDxb¯AËÐ È/)V›ýHÕÀOjíBs/Bk[“Æ6&=`l‹5(îAšûXÕ)-Ü£©-½¤Çò@"Š`ªu$ýBŸš††b)[e¹¶UãVÀ"—½B…PõU#×qØ™õœ (U¤0E' nPàxs‰˜ÂŠÂgœ9H~"yVz(û°Ç~éÐ#*…è£aöºq±”³Q¬sdÈ™žk¬ƒj,ri3×ãY®T(zÕœI’Ð’A Ür"›ø(+Šzã…  EÖõ/‡-–pX€¨( œ ST”22¢hE~­ˆ@+ž”¼Œg¹È¼¹þlRžñdz^ Õ#^WfÅ0{×õ¢ J,ð2Û³ •”,¡„u6"VܹҸ]Úž e ”YÁ³Pc9 Û1æJä¡Ïm¬¢¹Òø˜ƒ²/`‰ì•@àÆ4ºÆíC`0XƘ0brÁ7¾j(xI¤,”ŽVÆâ§È[°„û½Q……o4<Î}|D1˜i| {:x‰2~”ƒlŒû¬ÀQ2)8)!u¼ž –dÎe€ …­q rõ¹Ä©”Éh"4­ØLHû "lʪ^ÈGä}’ÝGéŽZGØña˜REw¸H`£ ßp|Ðe˜@w“„éˆ@¬~È^nŽ Ô‘k92;fcglJÁþÃ@ŽC&Ãj±1á—<ßç¨%½'Q@")MHJÌ>{/1+åŽÀÈöš})2ÖF+CheÄšÀ¡)zÇ!Z$È&“™jŸúËä7ÑËolÔ3:`Ç=ß6 †ÙÛäy„šÜ™‰7Ê¢VNü‘ûe媡9·åAÆÖ‹Bò µs?kBz\†c,„1’\&Â4¢…0¦Ç^ W£5v×åÔÿÀ1T ÛY¤¢s/þ2Ñ+ãΑä# ²"÷yŽ…‰Ç<ÃóÞƒ±Å-ZÞ`᱆ç]¨‡•M»)¾Ò "”qíHâÆíÇFâ’׊[£¼U A¤ÄÑz†!/q<9H>¶ä5îB“0¢›CñXJ·qƒ•Ç jX.Ãbѳ±1Ä”ËÈ9êU`àF ï,Ï@¨Ï4ÕA¹® ÆMâŠ)äÁ=ý §Ð¸‘D3tÂ6wƒ€TF£òcS†¤?ñ„ÚËê0Sî71, n°r*M§¤QyVmÐ.™ýˬ`ëÆÎ½à©ÓÜø¶ ¨nø¨èxRËÚglÒ†R˘ŸäÝ‚·=…ú6#‚¢ÃáV¦Ø>t3Á|n!ؽ’¿3O`Üä3‘äã?ëÈíÓù¶A:B,÷åÎ<|(Ï‘å1Š %7Jå`é…†/ùD(‘uçyÜò‚hPÐy¯ÐïÑ%©/ˆ:·ïX‚7xUUÎñÀå9?”óAãvXhÜrË;wáJ¹²€15{;ÂÓ£-šáY€ì¼1ï8^¡1xö˜7>Ì^'ò’ÕÎ]$ç`ÜÅ zÈVÜØº¯ðÀNL•ÐC$ŽN‰ƒéØÂÚ¹`„àà-KÒ†D[I,O!oÌgec1`>’±ŽÏEcn!™pv.@rÔ N¬”È(EZú„9ü‡ žøb)Žä:y øe½d¹ad§ƒ{â@-Ü\ŽSö'ú¶(Dã® t¹ .:í„?ˆÆRñçÒÙ+†c(kÉi•|‰ë›ø¦OA ûÎ;!ÔPC ŽUôJÙ«p0Jwd*ºó^™Ž›Îr&Ä ŠüjxY™ÙðSDÖDZ–Ëå$Š|¨,Å3æÅ³Yâ$s%‘ó̪úP,'” n^—¤ÊÎDE­èÔîtjt[P]íÔNªçûÚÍNmqæÛNåÇýó{—®t*7»÷»gf;•ï:ÕMº-¬êT¿éTovª_ö]!V¿ïÔ¾Ò%èt*W:U¶»ù S9Ñ©ž ÷Êggzkwý+°Ü»5wPÛÜ›¸‰ÁNå‹NåóNå›î 0>שÌ=Ùr§zBwªŸj\Õï:µ«Ú„¸èns‘¶AzX™8˜¿Ø©|»¿t·ûÉ)ÅjKK¨U—K]» OJ»^m××ÔUÉT»¾¬þ×)O¿3U³_c¥z¨ªAýü‰Z6 :êu®]¿œ"2Óž;kÆS´ë+íúÑF°ø„~PƒW•äsñÞYµ»ÖÛõÉŸ!× S‚-Ç‹7‰)m9­¸L¶ëØ¥f/ªçkêùsÅâ’zÖì®Ä‚i"³)%hv' >Íâ­Ô󲕩=ÐË µô²Ú_év¦=WÙhÍ^#í!­ÍiµørJ•Ÿ()µ³‰uc^“0‹G/+Wb諱43ÉÒö\E‘Óì§ÔàTJ—“jãò¿pªí¹“jvãèýªº¤0\T¯ŸöOM+j3‰ 4ñ”¾µ¼>ütæÕáwL˜,#}ç8eÎP+y6•½9s½ÿ¸{?“hO¢obBpŽòô’n)Ü\i{¹7²¼¼,lO2T‘ç ØÙ;©Ìa–IŸ 0{g1f|Gx˜ÕtêÏê:6zAª0B ãþ͉ƒ£›I÷ëH‚ÿP5ÎŽÈQÁ÷äæ=ifTó.Uóä©ñVå…n\…O»ÙhD…ë:27&¨@`ÐÓê~]o#¶Ž°±òYíº|z³N°4>'騶ÙPÐX(é¾ äË|ºA\·Vò„èΊQ(|Xò"iÖ¨'Ý’Yý—Li2dFz†JD_Ï&¨–v•$X‰mÔ)‰ =¬ªO—´Ð2¾©·†Pž†‘/éÆ`'mU¨‹N\ÑT°‡ÛWv6ÜríÌÆ·È¨­’{dLXÈ®tÁcÞñ2$¡–-/™ïe¼ì8†ÙNe{l§ÊÃãÞÎìöó2ÁN5ÊI²(µ<ÐD]·³áHšÏ¢‚ÕIÙrÞ-³ã圳=i±ñ.TzÚn‘9»X)rýi¼˜`‘ý+Ó…,*¤kÝT:c©VБ%Ÿª Ó¯öZÑÆÍÆRª¥]¦`y¢Ãr–êG Õ»ŒÓî¯z)7ó½öôK´§ƒLĦLä±ÔQs-v†Z{ è+j¼gÔ4Å0QÝ÷÷é£H%µxéBªÇ¼1Ö®´%WÍý Zrž¢$*ïøÓµåxª•sâ ³OQ(Ÿ¢sËÚ¯¥ ¥?Òç¾u^_]'Wÿ­iF·ï­JóAs]]Q›ÁÅG>Šêï"ý·×?5×1ª£lòI€.Ø'û? ¬³f]Y8ô% Uùª¾ø_TwëØ×:GŸˆ]þ«o#÷Õ‡õ%v…>Ð{ú#@«Öúø±ŸÔ‡Cv0¹µW#“úƒGëlsõÉ÷þà¿EH3 ^+éËý*¶ÜSKVûTÓ:Ûg ?î¥;i¨Y©±I?xô&[^â,pôU÷¦:Ž¥Æ-ôû'ÃøÖcÝ«u §ÏÄ æ§êÔoiN3êp×Z3úÔ+Ð0¢®¼mœÚåCÓƒ*6`ɽ)Ÿ”GAfí¨úS‘ûÉÄò¦~h+‡¬y¿ï#aP^úqˆ¡´b£ø0éO J·{—ïì®Lì®|w°ygw}Yÿ`"ý]ô7Îu¬¡Ý]3ÔX÷þ×»›×ö¿¿‚¹Ý•ó»›'»g¨Íìn¬uoÜÄàÁÆg\îNƒè×ÝÉó?­¢K¥6ý*èuNv'O<˜Ý¿zBo¦®õìû§WiDIqðãÖÁó»+1Û½‹ç‰íâúþú¡ßÜ»vgveý"úM’EqØ»´º»õ é: Ö÷{$¸™ú¢»pþ0¦½ÓßÞ>øöŠaÝ, 8î­¬ÏýòýŒþIú18*`SÝW÷._Œáš^¼{î’¡6}¦[½ÐZ#‚Šˆf·ûôþÒ'Ò=µ`d‚@{_ß&ÀKwwWÏî®ÜN£"$ÏÿMdGlK“.ý&M„…ÈAk ~TãÑÝ‹PӪХdçà”9^À›ë¹Ç¼ ùÿXôÀG9g`HQ&jŽœIÃxxåï2Aè'3õ­vä¥ß¾€åG}ì¢_ÊQ †>ŒéûUxL¸Cjòù£ANQVôâ*=0TãÿKÔh'libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr/packages.DU.gz000066400000000000000000000106131334444677500316630ustar00rootroot00000000000000‹›§Fpackages.DU­\Yä¸ ~Ÿ_QÀ>½mI>ä%»‹$È  ·íîö”/Ø®žšýõ!)ù*[–ì™ÅL϶ÍOER$Eù‡ž,ÿûô§_ßþx¹¦Y‘¿tâ"~ô~ .ܽä^èúÃÏyûÇOÏç""×uñ_Ç?e}ò|aÆñývOß ž8³'eVݺgõôâ|ª›^¶%|ŸÚò\z½ ý‹—¼‚6˜ƒÝ{C3ô† o"@^…O\˜Ç—ïeÛn䇗PÀ0DxaîISÜÞòªÃa ³O•f]þVe-tï„@̇µ îú¯EMœ+&MÄÝ{Üf’w8h þy|7M‘'qŸ×r„LŸ÷¨àù³¢[w”d¸ƒ#rÙ6Å?þöÓ/ÿúõ—_Ÿ½È|MC×øäóèâ’@hi^ë¶Œ{èÙÝÖ5î³&n{\ó g‘ ÌeÂݧí’6o°eæÃŠÀH¹}^¥Y…]9‹¸‰úZõñ¦ÊüP®˜‘dm¯&±7Õ¤ü-©Ë¦®`É{]w(Qb%P H]½þvkRÓó)Ceš5mN“CFJCíÓ¾æEŸµÈG‘;¦ÆóD‰d„õ<ê¤ýÚõqÑ}¼2ÿÎüg5Døq 'J£PM„ÝT×.1T¦•mœß9'U$Ó`X |šI›Q"tÍÈ™ì ¬¶Áï‚æÁ}ÒŒSðÅzœƒœ§&Ž·á†w7ÄyøŸËø{J¬mÁwヒÝ'º—`Ù}`Ó}“'È*ÏJhÆ ’èµ{Á@Þ×uÄû+yËÉœ¢ø¥¾%s±k¾£©@*'å†û*ý%Oß²ž,—ÄÕ2{ ”í*b]Ãï}YàÚ{î…š6‰(é µho•ˆl´¯.饙ti\O ïð—Ü WãfÁ£&³Ý­^ÓÈ`ÛÉá<Ž;w÷d`»…Ñ»zÜC.ú¶YÚ-ºc{öcß»¶g»…ÑîyG—\½¡oïøzF/<Ú·²xCßá^ßyýÛ-ë},GnsfÊQÿÑ/•ð,tÔƒokÀb[ÿÄÒçã 0š®ˆhä×iF¸dÄaÌäåCŽ’±» UÙ—®¿½¾˜TÕ}þúÃ’h¬ë då> „´²!n}n°GÖä÷2–ñZä§hCÝæ]Rãã(çrÔ¿g%¨´3íÞÞg÷>Kó¾nKëäKݦ½2ÙÀ¼œˆŽ ÒÈ`º,n“w{À¤}}HÓÖ÷¯À(t.„Îë¼õ5ˆsÁ6Æd9H8‡h)&W¾Œ"IꢦðÊ‘[Œ† Ý"M˜• †ƒѦë2Ñüœ½Æ·Giü–±-ßsIf#g5øµ.‡ß ‘,\g+v] _æ@¼•6›} ··ös=’,­«væ°4ûÈTv‹bÝÁӬĽ×7‚h-¾ÌˬÿÚP¶ÈG"Ü’Iõh±&’fÎ7€ÝmÅš·„9ëdö¬ ¶RànX) xÆÓ]#üa„ŽŽ ç¡À ׬«`œü°­ t7×xŽÌÄR¦‰4À%KÅ1ðŒ¥Œ$'´YËÑÁ Bâ©·Jw$8,´áé<àYòTbFžÊ­ÞJN%rÁTæ*³DϸÊ)ÝÚ¨ã躇hßA‡W!“Ég—K("ëΔK©Išj@WCÏ–«¹ä*2åâÚ˜E‰žqU 2RÆÑˆƒ’H¦öÂUÚp¶'ÙÍÛ0[ƒ*AÓVå…¶<•ÈO¹ëØnT=ç)­fdƒí’¸ˆ_”ç+™G¾ò}õ°É Èà ;>Ǽ˜Íò°‰ÃäI[qx/™Lç`V‚;60ã³G)Í@«¤ï99—äÊ¡äiø:Í|2¾™æÙ&WÙUMV糿nÑKÀ¸?o††[´jè6Õæ9Ûíä ßOµlÑN{˜±ñý\Ê­l\“:YúkÑÁƒî1M'E tÚ0MÐŒZPT×g `ê!K¾’ï*. mfu¤™ŽJÑÑ&‰ÛR­‘þ–æ5îxädmØ€0/ã7ŒkåaùÆö=V5žÐÒ&±aÇ2Ë;jÑ0¡Z+´8RA,˜ËsIC{Jã©–§ñ`º[›«þI|äiÜséhhÃÉÄü•2²Ü¿@\éóäùHÏRX5ç²yø9‘µYWßZjW€ágë\ò­<ÍÖ„š 0¸¾tÞ†!×§['-/))§_%bóaZ'd°ÿáy'WXñÎLpUEêxÞWÃP¼«Á øá/›’ã«wÁÕ­Þ…“u~¢ÚÎVš<vúr“pÊ?üJ«±õLÕ‰Æú! g|î‘Ú†þøœ:1¼U¬1P ܲ!#†>™io¦ :yàøB€)t~ñ\°¡{Ôr\@,„"bÌJräÀL:‚ >Ÿ-v(×áegG½jIi,%YîŠñù¸`;o•=‘Ü¢EU!W'ÀñxÜL|¥½EŒ‰3`ÈnÆ·Œ[“˜ñW‡H“ºA¬àz ‹6\×Lÿ÷ŸyúÛO¿à "â—M'I‘SI¥mþÈÓâÀD‚'Mƒ¶EÅy»°ªëÒÑê¼ê³ö5Nä.àRXe‰¹æ%%¶ió£ÞAÂë6n¡‰·ïý$nÁÈ9¦ÌÒi–ÔQ =ðCJxv «Æ<ýTü³ ûŒÅTãí|™æ¨ò6)þ1,-ÒK#ŸÈl葸•bU¸K?+a–¥UFùldRYfÇ…q@³³4Æ…ÕÞÖ5‚$ƒKÀ÷]á[!fѹ,ƒbþ>àbú]YH£^?€ó,=R£AQptKfµ¶Ãñ&EÈMpMl‘€÷üí]•xPºÉ<´9®¸ëéSFÂàinA‡*g›¼äÐÀ5kã2ÇXŒ‡¿V8Y‘.Ëä¹#lj-`ÌtyØÊÍW ¦€â8™à&éZ2hÀ ¼aáæ`”Ô w IÎä´‡í‹xd¹A¬Úãö¥v #_ÔØ8ç¡p£Ý–ØÇûœf¼„ä[™k¹“60ÓXÑ¿ÄÉ\è&´’+‡¨RÒdà¯eŽ©o¼Da¢ï’6˪.þ½a‹^ŠOŸ‚ÈbŸR)%Xÿ?­@n7yéòêâ÷:¸O³¬Ðž~2¹Dò3—¡Ì QGÖËW:ž7Q+d/‚ÈYœùo=–Çþcî~|>&Ë]Æðž(¶ .k¹Êò#g«u|§ï…blW^F¶ÔGä÷Ä6¥Bùå¡0g|/sq”8ÞÔ±ÀÏ\Ì ^VD”ZÝ’‘aZ†$8Ü$x‡È*Åp”áÁš6A7ÛÅöˆ?“?á ûæš@zMþåá¶Ìô~~rȘv:“ƒ$+È7WypŠ˜¼½ÝãÌ¢ªùíÕžì _]õ™ˆ”‡$ïþoi~ª‘¯¶=ÁÉÀ»«¯ D£AcΚåVuàm“ñ˘"YÓ¶}MÛô^˜c:%ä<¿Ã%­ Ìø\†M{tqZʪ>hÞ7›·:Ñ7_ÃÆX ÖÆŒ?óò# $ \²ÍçdÉ\M è$@Û÷‘Äqä‡\Í5º·² 4%?JžÜº¾.óßUÑ$lï‘Kùa7Ô]_ÔãW,°ÃÏÅhw ûwÞ発=¿Q³ihâåM{Ä€Lb21` ˜ÕÜKßO#—·âµWÓõP;ÓßÑÝCκß1Cé·L?ýÓ§OÁèCCš/íg#ˆVÞ®Ê Ñ×1,ÖçzÀw~xñù­‹—UOù3 ÏÎoxÂîmêVPe9pNwy¹ìü¸îNø`8•:Ø€¼ðtNú³î;HFUÛ'Ї¼bŽã‚ýÕ=@NÝ»§´yœýÑM “?¾k¼ÊŠ NpÀ³xç¸ÿNßûbÁ·eö°³C`~°‘®€ºsÔYäÔý*Z°j½VÓ2ºÂì!—²wœõ¹üBå…/~¾P½ðÜâŽ%ãŽ#¯Xë&ÖÂÌÈ™ÕÜóÙµMà—ÎùZUAufè^gyµØ/u·NLT3wçèŽYU+{{|ì&“wœ+›w‚õKWf%Ä9­m Š¡ëF«Y¬¢8g´šþéÏÿ9¿oJø·s£Aü\ª@ð0#úïÀˆ¶þï½ýÒÔÞh¼3úÔÞV;èq}ꮤOä`gà'PÐÎÏp +¾Ç°lØÈŽŠa×®6²ãbØ}М2€ýv=è©¢Ðü°Ù·ý÷#oW™·8î‰Ïî¥÷÷ÓH”XN¥ÚïCêÁ÷³ÝþþþôÓ¿PNÂΦO žÚ¹ •ÿþ‡à€§!ì~0sÖJZ'X‚…1¾E>üã»f;1 îeñ”öé“û#û‘Ëo]ø¤jº¯ÊÛ§.ØHúºÊm3[[5â©” xÀ}¿¥™ ÅšÔe‰JÎ)¯îk¿a¬ÁËJFÆå‡‰mä~ަ à¸æ!NGðó >Á‚ó›¬Ð¸¨zŽ#Íòަ¥¥™#˸jä\aéôÏáMÜÆôí+:t ?AÝ~43oµ¸øú¯ÿýç?¬h²Ê–l A2Þ†TÌ©¯CSìè±Âÿñ9˃_libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr/packages.en.gz000066400000000000000000000006301334444677500317530ustar00rootroot00000000000000‹›§Fpackages.ení’ÍN1…÷}ŠkXê`"þe,, .Œúö2ÜPÚÚÛ’ðövfB@£F KgÕLoOÏùzz½â—Ÿ=­êV U<€Aÿ¦W×@7÷·bô’Ö%̧3˜HFx¤*È@Èâ|Š\ŠáYQÀôµ|&µ„¢‹¡¿.‰ÁKµ’5‚r6J²¼Ó¿gÜâ¡’Lj7Ê»¿s‘¥WÑy˜Ù g×hcâ^¬³¨Y†-˜)X¸ÐId¿ºé‹á¥g[⃯¼”;“"šíV£˜lÝhtgEÑFíK´!ò·XåsÞää½ ñÏP+²:{ÍY¬†: Á†äè.p)Oh‰kgO”Jc•j² ÷ߘ“7FãÍÏ\Ÿ:[%L}üÏ ¥1yÈ*“4‚ vÅÚÓ²ˆ5D­Ã \zoHÉH®…,#|K°¡Êx*N}IcêTj"·÷·/q‚Þ5uP.'À=Ó–Cĵ72~jÍÞrÞ=6í;<÷Ì]­libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr/packages.es.gz000066400000000000000000000007401334444677500317620ustar00rootroot00000000000000‹›§Fpackages.esí’ÏnÓ@Æï~ŠA9‚ƒD) +Í%TUé Œw'Î(›wÿDÊãðœx„¼³q¬© Zåˆ%Kc{ü}ßüf'“ú¯êêfÓ5°±ä¸p1½œ~„wï/?}¨®¾åm׋%|ÆHð•Û€)V¯›jöª®aq×ܲYC]Ï«Y?¿[s„Í;#>!û8ê¿ñ²‚´&h1²[ãøöºRéM’–~ÇAü–|šÂ—ô VÚ<ŠÃÜ V Ík‘i5{ÛÏ5Võ[.-±âr"·¤Urdßáߪ>Ž:y)ÑCŠÄŠ·ú1æ¾—ž µeo5«Îâ-t™Zñуdí°H[ñgšÊR›;ö+ùbÎ~b,íÈ=Éõï3%qø®$D3Ût` þø¬c`âœüù2ªH+”˜”r‹\¹•…Ã-÷€Á¬y'Ø—퉤”‚'àƒ%ÀÞ±AúµªN»Ýg¦€g;|bžÄ³“ËòÕÿðÓáÊ8-·Ž%‘)õ»gCÒÍŒ´"*&½CmqDzkcd•Ø@€ûlñäùR ¿´[ÍÖlibzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr/packages.gz000066400000000000000000000046061334444677500313610ustar00rootroot00000000000000‹›§FpackagesíZ[oÛ8~ׯ0/)²r¬›-“bÓd6 6Ó štÑ7")›Õµ$•8ùõKRR²Ómfš¶lÀç&ò:üÎ9TùÅùÊÖÉu¶>¶3„s’0ßögáli{MÂhaœeìØ¾y{êÚó0/‚¥¸ï£¹»ðË(L‘yF^¡·ô+ëð=þ|lѺüSFª£s\ãáÌ^Ù¿žˆ‰æ3ßq­ÏÜ·_KÖŸEV%ŒË­ U^QGü”ßà[¬A•u”òˆm†ßn–kðWý‹ä˜½wøšâ”lÕ4Ál.&éìΪ¢¦˜1¬LßÂð%fÃ𠣊®1Í-ñäùÙ×3VÍɼy:0—g¿Iz¡è¼¸,´êæ÷AóÑu5 MƲŠJÞU<Þr­kÀL²~Ë*•§h¢­H‰)(€ƒ‚QmJå¾ë)ÌwèƒÓ³«ØÍ_)!åq¾®óØƬjJ´=8½º9ç³Uû(«qÞ*žscâž98½½}?L—ÕX¹¼Pf ÝK·gbDèXŠC:–äÔ© !ǵXRrLSÛ㢶I ¬(N£àSµƒ`kr¤$<–¯ÉíS.d5ÃôN­ÇTd¡š*îÉ# hªO’#ö+¦*X°M{`Æb1}ÜÔH,nWUe;^ ¼31©â çu Üàæ”»Þ £†ì_XšR<¹#/+NÒ-- sÓÕ^˜ÛªqJ°8>Ö±Æä¢¹ /r͵¯¼¥?éÀÎ Œ¨sðІYëC‰ïoÒT›•<7|”£k&BÕÐ.tZ{)©¹~BÁš†©Œ ˜3óʘµá$7†¸y޹@Ø —h*†9é6BI‹áÜû`¯Äü¾¢ã€7:¾kØwË”k×ÓßP Ð^~2ö^U‹ŠŸ¹Sð!ûÈ]Êï†]3ØÉˆû4퀌#xx8¬Õ`Î>~<}s÷(½_Õ¥©T|ü÷èü„®KO"lÓaAò} oභݯ-Lœ­ø5ƒé¶Èubܲ\¿ÆÇ–×$—ìÍ#©½¡ÌE™á¨ éðš>§NzáÒç+¼Vþ ¯ïŽ­L ¤•ɺƒdV_;:PI{Î÷2V¥’Ô¤ðQv±¨°­ @k¾cÄÝõFÕ„š)9Ln¿e¤ËÌÖ$i(>­hx,¶ЇV¸Á§°%rCĸ¼õG`w<‚ËDó)„q»kùïªâ4‘)‹}¨iµ}ÐÂ0vôµRQ?¶€£S0i¥j`«†w¢´»ºF ÚòTóyš’l'2:âéTÀ«*1ƒuw¥æž 5æídmX)R¾GÐ R‰Ø½#ø^ ×âM/Bf Rˆä"q]IH±ŽbkƒÞÒÞ M‹Nc ?ÕÞ@×p«i†𮓿k écZf zð_¤Ü!>%Íëž\‹ø˜ÍùˆÞÍéRS`H™V=o&ö츠®E0HG:¡™â¼Þ&¼x(ç{1ü!DZyã¡(íµ"13N2S¡3gŒ*("QœòB:%Àoj@Já>¶ÊÔ0 (ÜLÅ™8n@FW«m£r¤+UFMœð©ÄPNÛV&F&ÿ–…i_%}¡N…b‘¦éÿëÖŸ¿nêâ¢BMn¬š¦«‹/º¢ï3Ú¾IÝ+936Hѧ€ÎïQa,N¸hTbŒRvo]d0MΉéÄ7©¯1.h_^çþÞ¢ÛPM .Þ3ÇL—d¥*ß_v«À\Ý©×%î¯KnªÎQ%N8[:^ K)QDþ‘°c©÷âFå·(ª5äá{ ­¬»a ìDÉc‰WþË:TØ\Ðúؾy`G.þ}þ›urEà±ýææÜ„xÛ D’wr’áØï>ØXÞ<åöu“ä†×W¯¬“ ÷]+2 ­“[RÛ®ùþj5_b¶J»¶^f·S3y 9µ©< “….æîÊö£(œ‡Q`ž6üغÝ`[¸mßbPØ¿Šaþ)þf]¿¶eðËŸ½ud0?}+(‚Ž–¡¿ “€Ñjp0OP ŸâÕÜÇɲ»Uƒ½>±]9ÞK—ôùøÞQÎæÕýའ&HcÕ3¯àö_–µÍØžLfŸ ] …¼‘#…H\óŒŽvܶ~æ£qÔÅe›5F“ý¹ÖôÝçóšÂŸ«×ëNÂñQUó# WÊ-=b`&2`LòÌ©ž]àS¸#3°L-êÝ·¦?1"I÷ž†¥H<&@iåG^ôò„pÒ¬e¡ÿ…¯5i—ËU´ôV)ÀËyäÏS4÷W ¥i(Y&v¸´/I}ÿ Û½ù±olôN ·1zŽïp^Õ²<:—Æ?:LŸŒÕ BÏs#ÛõW®¬ÂïC‘ܦ§ƒ5XÀ4YúØ[… ¤+ Ó ½0ž† 4_,ñÂí‚õ3ïFTÕWEÂ:~Æhx%»E¢ê/íôò>OsýÇ/-‘_-&Ã;¢uíï;U÷á²ãÙ¹ªéÚnHˆYƫڑ#“"Zt¶(i˜ã:£EÉOeûqE¿!Žì˜ÈrçïnÞcVWòóž¶N½©» ZSÐÏ(o޵=Ae?º„¸–|‰ïª 02Úð…—w»Ÿ[_²1ËŽ~a\<üdUÁÅDùjNÕR—ÓŽÌ@þP‹æãl»½­ÎEµuy~Õ«ÄAÏ|M˜!¹”áó ¢Öb‚O`îÏU(WŸ. ‚¹ï¾½ˆVÑ" ¿ÒVðiœõ¢¥ÀE2I€Œ\OT(tÝÕ*Dþ< —ž‹Q€;œeë"wX¦aRT¥¢xMÄ« äÕZ«…ñŽLöêŽP Ö"0­5ŵî³ïÐ }ãÿgð¿Ñå%°ä‰OÏì.þ®oñ/÷-l(>uÍŽ2¹xyWÌ<ý)JæõÑQú{@PŸ •lM;\Í#oñøó_½Eïi&libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset-gz/suse/setup/descr/patterns.gz000066400000000000000000000000551334444677500314350ustar00rootroot00000000000000‹£t¾TËNIÕ54Ð3Ö57ÔËËO,JÎÐ+H,áâq‰Îxlibzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/000077500000000000000000000000001334444677500233765ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/content000066400000000000000000000041321334444677500247730ustar00rootroot00000000000000PRODUCT openSUSE-factory VERSION 10.3 DISTPRODUCT SuSE-Linux-STABLE-X86 DISTVERSION 10.2.42-factory VENDOR SUSE LINUX Products GmbH, Nuernberg, Germany RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/FACTORY/release-notes.rpm ARCH.x86_64 x86_64 i686 i586 i486 i386 noarch ARCH.i686 i686 i586 i486 i386 noarch ARCH.i586 i586 i486 i386 noarch ARCH.i486 i486 i386 noarch ARCH.i386 i386 noarch DEFAULTBASE i586 REQUIRES openSUSE-release = 10.3 pattern:basesystem PROVIDES product:openSUSE = 10.2.42 OBSOLETES product:SUSE_LINUX product:openSUSE <= 10.2 LINGUAS cs da de en en_GB es fi fr hu it ja km nl nb pl pt_BR zh_CN zh_TW SHORTLABEL FACTORY LABEL openSUSE FACTORY 10.3 LABEL.de openSUSE FACTORY 10.3 EXTRAURLS http://download.opensuse.org/distribution/10.2/repo/oss/ OPTIONALURLS http://download.opensuse.org/distribution/10.2/repo/non-oss/ http://download.opensuse.org/distribution/10.2/repo/debug/ DESCRDIR suse/setup/descr DATADIR suse FLAGS update LANGUAGE en_US META SHA1 c37f4ba4225650844363711710c3824a58c901dd kde-10.3-71.noarch.pat META SHA1 80f9bb1f9e95ebcebfd9b22f338f779e204cd50b packages META SHA1 9c341d93124860f03b001681513ca07b4d0ca873 packages.DU META SHA1 a48fa507afccbce76b549a07394e41d9813e6b01 packages.en META SHA1 765900f5513ce6bf496d5006bdff45f805e61997 packages.es META SHA1 d3c628ac67854629ff98432bebef6c00aad9bb98 patterns KEY SHA1 c0354069c10819674da8706822e1d4bd0c1797e9 gpg-pubkey-0dfb3188-41ed929b.asc KEY SHA1 2e38e503c436c5d002bdc31755c82188044d9d21 gpg-pubkey-307e3d54-44201d5d.asc KEY SHA1 7025932e6866932f489421990075f3ed312023ea gpg-pubkey-3d25d3d9-36e12d04.asc KEY SHA1 fd6146cac8c1473c5b52548936de773d5bbd5610 gpg-pubkey-7e2e3b05-44748aba.asc KEY SHA1 cd7adceba1fe5d7ba27b5749718743192d82f802 gpg-pubkey-9c800aca-40d8063e.asc KEY SHA1 7535d79e31ef7b4232e5593bb49d9142978b2e95 gpg-pubkey-a1912208-446a0899.asc HASH SHA1 875e73cf2ee139203208c860fbfd7fa5cb291c7e license.tar.gz HASH SHA1 4aa8ded6302e6ec85690a51af6044dffe9b21923 control.xml HASH SHA1 82f1f17ce74f0cd3fca4813c178196b317fc952d installation.xml HASH SHA1 68d9b548d61e31e82e8834690e884afa27751287 media.1/info.txt libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/content.asc000066400000000000000000000001101334444677500255300ustar00rootroot00000000000000ˆFT¾w ?¸ž:'ư䞄ŸZ†àšOÎï¾ÐC­†PCY-kf:B }½*c¾†.</ù6 libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/content.key000066400000000000000000000204531334444677500255660ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 mQGiBDt3zUARBACCnzYUCVO/35iVN0T6J2Qb4GfDzrq8ZOqCamjD9tSylJ+UI4Co YBks0HWnWty231Aoil6q76LRqE4bcEiJ/xuwinLFNC/S24B1cR98aq5tUEEbPJ44 MBdY3LVbB4HCCMZH56nivx4thaTiCkVnyHpGkfKStk3lUkAVk2NR/C3uVwCgnp1D qWaTn46JxIsEQMU8dczkeyED/j/J6QqCRwYR8XmlAUfI5ozIsQ7LuA1nY/NJ9Nnh w2Wkq0UBZCqP/Nbfmr5EOri6MOPD9tIFRAy4qBqkxvgy/zKfX9qJkqx3o+DVrL4y CFZHI0aUwqXvEAT6GJyDPi45gnHOVE9XJRL6BL9ZfFmOd4ajH2AJ4yy/ZqbX0GjR opRuA/0SN8OK1ERDAA5AgZj9L2ZU7zMVmiWE8/Q+qz9p2TEfkfO8NyvvzK1Rv0iU p0WuJn9gorBr93Sc9XtX3lINZ1PJUQg7KQbpfeWHMa1pxUMnIFVjpYZMmVFFGWZw 0q+45T9uMr50cvMr4pYtnvat5tyKM0igPtezMqSY2aY7LyZMmrQbTWljaGFlbCBB bmRyZXMgPG1hQHN1c2UuZGU+iFcEExECABcFAjt3zUAFCwcKAwQDFQMCAxYCAQIX gAAKCRA/uJ46J8aw5H+tAJ4ktFPz9sQGuec1LaX0pIB3oZVAvQCeP+jNfv9ZbVHI Uz8bw8JBgwAe2w+IRgQQEQIABgUCO3fOdgAKCRDHUqoysN/3gB9xAKCLvhrIusLe 6wH0ByiA1ON3R5TNPACfY8W/eTeDSu9xNIlSCFMgDHw05cqIWgQTEQIAGgULBwoD BAMVAwIDFgIBAheABQJIZg3kAhkBAAoJED+4njonxrDkE5oAni0UwlVNIaklPunu iNb44D+AcgwRAJ47KCtevu20oesjoYkKhFNSLT14E4icBBMBAgAGBQI/xnvXAAoJ EBlUT2RolefhXTwD/iXBc3oVl/jyeV2qoUB/cB1+quxpVSkjC/MnOjtmU7lXtNBj dS7pZkMHyLDhT3VCTxvWTNM5sdS8hyQcSMATQ/axySFEy98tj5veZdMWcn9doyOP OIpNhAv55iMsuvAP/cd26VYJDx4Amlv7BXlIw9prYZrePZrZVlSpXOnGQ9JoiQEh BBABAgAMBQJCyOiqBQMAEnUAAAoJEJcQuJvKV618ALgH9igCYlbAeAAs+WTHoBgO r4DFI7xREXf+AfPxraa/vLyH0cwDRej40aOnzEnwBSIC/DH+7Oy41aKunELyNtJ/ DTkextRs2DzDhMGmYadHS8V1CPdLLA/q0rmtdGA6t2D2xhIdPXuO7+gHuaEydGTA /KFmyE8XE0pDYHyhsrBeelSBPZS1dDcJx7vib1GQPHUydOI8PRKJbn+kxwjNqGzJ m17sGJaxLPH8iWby8bEjmCFU31x+t+ia6sYSO7CsbwHL2mxuwfDE+f8QXiYFKDZB t/pN0ky6iiBGoCyu/OrT7nqRmlmanRprotZ/2gW+pYGIQ1sHrcZQz/GMov7CWXGu i4kBIgQQAQIADAUCQhcYbQUDABJ1AAAKCRCXELibyletfCOHB/92VkN0tLaC2nWJ hOaMP2XGQbm8f09BphSdb8pxxMqnUH1W8YkCNjLvoRGN5exxb7cpfrymSqdjmSh1 bVkREh4zzx5zd8Fhush5wqXq4PItV4Z+Es7kuZV/McG9mMoGqxI2WUyrZdXdOMFJ O7ABEFtw7iCdzh9tVenX71U/2ePT/Ab8iWXcT5Xei4X1eQBtQ3c/2B6i9TDuH4Q0 Cd8C89qyhzDaxrlX2dXfU/mwqIh/+6I4mwnAFBQ0RUtniXX4YARG5TuKYhDvfBod vj6ACj518Kazlu8eOyUtZr+w1ntc22veQ8im7qpMqpMAqEYmpO7B6wYb/BOOxTBD +pROcj3ziQEiBBABAgAMBQJCT68CBQMAEnUAAAoJEJcQuJvKV618IwIH/2pIkrl7 OWSIoZADqVC7w6eXF17sV5TXLqJEPaHVuS6e+RnTbcRut7lPbx3wFVWQflFhn/fg jkTUkTpcwbBrl199OA6k1yQPdYCJb1KuFP8aipWvlUjJcqUnHJS0ub7eSqWLeXcq 8cIufLMVNIcImU9yBoTVo4t7bezcO5LBC9l58B0uO11TwUlJ0pXAGUqznlAC7EuO uLUnZr/6G+PzpWDEJN6QjBdRnn9qIflefkTXdsqUb2ByB5/SMJ3FgHkPZBx1Mqgm IXvW05uQd4uyHJ0t9azvwxtgHgNH3y+FBkglP7yhRfBxwvMZbLJZft7xnXLMgdfH M8Sj6pwmlSI9cnGJASIEEAECAAwFAkJiN0UFAwASdQAACgkQlxC4m8pXrXywowf/ QzsKRLsWvMvNlYixCp2xF26ZKLpMUddmOxbqrJPCmITCkVO6fJjuegAwWBD9CEgg 2RfCZ4n2thwsbLWCRjYrwUzgbA0s4h0NE5mjsuOwQmKHjPXi0Fn3tx3teA7/GVPB cqEGHnHVXx9guyGiwqugMRsYfYXEbDel68fo9Z7MraLwbTB2gSOJdEkCM0KtBNYd ZUG7Q4m8qK8kBGjhBjCK0jgsaJK0FLRNlT5dGnwG1ggnnQEr9x6U2BwikfzaodDp J80o3Z9PBr5OiDxXPb9kMgW9VwRpBBwvCi5ltAn8NtfIsPlQYwmb0FXyh7AXxlx0 f2dS+IxMAd8POqhiABLJ0IkBIgQQAQIADAUCQmLeuwUDABJ1AAAKCRCXELibylet fHGDB/9u0yi/Wk/mrFzrvwI4AOb92E7427Le3USIKUuWZSMqzAAVeNgCgKfy/NbY gs6Kttb56+HnUJJ/C79YDh4qABe0hGiIgik+dUj/t2FBIz35cc2rS76hHXm1lWQC 0Si48AKPqhqzWCwzwt6aerQIg1IBkSmINKF6LrTIraYjh6UsDnLqLrlxnosXP4bT byIKH2mTT3bboR8iaYyzxKV0ccydHE0jp0Dffx3x4wH5CKHrEJt1lhSKdDexM5yG lAa+haUDKRulODNVljtx5m84vOgpwdg/JphLBJ24jGhHUS3PI3cXf+TV97J3YYQo XITC9lRNqk3GZeWWyUu3r0XB/hp4iQEiBBABAgAMBQJCdVu9BQMAEnUAAAoJEJcQ uJvKV618HHcIAKOHqHyRSw+4jg35JfVcLgrZn/3G4cDl35cAtZ5iz6ukEg8vpzH3 rMfiFYV2WQNflQ2tIrD9ZwSjJVAXNEL1eX883HAL7HmHFCqaQTusZb7vpbzh18fU Tjl4Nq3K9FqIIfJzJ8lPxGit6eL82OO/WUffjQAA9Ad+2yY/yWOyqUN4dqzxUWx4 9F1Q2UDBGiu/QhcEhUlPf6B21I1nqsSkOMGtRiHf7RfrGDss2xRn+0PDrpRDcpmV ZxJ4JpKQSDBKqbktlcdl95y9gI6llpJXFFQugxGwsC4qr6UYw4RloAdkpwz6aAlk rfFgCZ5KhkLs4HQkdZLr+zq7zJh5njuBnJKJASIEEAECAAwFAkKHod8FAwASdQAA CgkQlxC4m8pXrXxEdAf+Juexqg2/qC8vP+OnTuuDzTALHdSzt81Gq8a9jMHVs4rA gAAEKbKzrRgnAjI7wyGSxU1kaPNh+RQB4qtZy4x7MlJtRfcfSlAWw7i3rqKQakpY xUQEXLt/nK8kWxd2nC4gMW0105J+lBSMiCAw174/h36RjG//Cv17AhzGOckFE0n0 7gZlW/+5YnjvFemP8lFnL5kb5BzPPiJy8J1VnqvXY95n3HxhkoiTSrXlS0MNNLgG h27C+Kzl+p4X/T1esWoZe3pbq+qSb4xnglXOqzGJduQ0s585907ohm09m++e6NXK hxxysu4cvcMv2Cc4ep9HglEY6sVrwY/0pMpBYdMLBIkBIgQQAQIADAUCQomcnAUD ABJ1AAAKCRCXELibyletfDfnB/9ELbGLL7OIsOwCDidj1f/sabT/aFJ4LX15nm1B mW0huKLRdJuzX7XZkcTx6SohTcTgFIfXxV1RLt/7wrW5TTRrYmDRyk0CR1EZlfgz yLUaG+18ml7h97DZqSIaWnsqnryJB1QPyGO6yBUQTQ/KcGMyw2lzY2ovtl/UheIu PT0v3v12kFxOo1xYeBn81YHQKPMWJhJ+iOmhjbj89W6RZ8swgSd9pczv0ptfUFIm X5NbmIFxaiwWkRraUZYjdYYJGIainE9DpcMsSaSV7tq+mPl5NYVJPzW+llPPTqo6 zIKxIByiVfH0zac/xecGyKe1RhBYJ34fdK+GcM8FYcWkpxOqiQEiBBABAgAMBQJC m2c0BQMAEnUAAAoJEJcQuJvKV618OnMH/209R6nyz26CxVS4PtYYzMlOZ5VlOl/U BEmRqmJeY/frgucejxX90qHUOy1dgBhJXQ05H5zHU7B0UHoha5KnSSyT2/p7owBu AypZVvJB8PxxepPXUVfhiipR+7jWnYAsc6tjWn/+dE/ryO5iEWWAGDI0ZQ6dd/9C sz4jDeffQusWB6g5ebfL6+SBHa5N2PCydGr047fG0KZm2jposMPsXbIuKh6LSTaL QxGUyyJ+tTNfwstFYMlmawLMHtjb8F5r6FT7bywVlVHr7t2DctaoxULvlvogtCuE 7B9fG2EPg0sw6yK6P2zjGs+uv2qPO15vVWFLnQJ2eXrY1eNoUL/N+5KJASIEEAEC AAwFAkKcuOMFAwASdQAACgkQlxC4m8pXrXw8Jgf/UKw9NzMIFXf1LfuKW3hH2dhd OYyVnsYmuPy4HQTk0It579t0Mc8b4nrT4Bm5Id//SzxhKI0mGNxtLKXTiHOsTmEU KLeBXRaw7snnq64vaYz5NU9LdW/GX1vt4QtiGaLvZq/INUwB2jobqqcMwfw9n295 IEeKSuu0PcttZNfLGg06wBashAMl9h42ZakxlbYpbOPj0k/MdoB8EijdO3d2M4eV DJKQNj7XiYE+yNmecEGkxaEJBma0xloA0iiGdPJHFlK3dHKKI93A/IU4KRhAE+iB e+HlxOMyyGOk84+vWoT9IeQddYaxdlBm44TznYNN6en1lu2nqAA4s2XZEvw4rIkB IgQQAQIADAUCQq/WegUDABJ1AAAKCRCXELibyletfNBuCACi6+OSvQrLBIeSmhIy 7Xgv2y/zfTKc1J++Nj2HFWC/X9pJCDHEyY5h0enHrePPoQzAlNY4Mz8sNzI2gc5V +6B90XMJUCO4xz0wSlSTSMgX7sKO3zti6TaHi1dky89UDwOatrvxtRFeY957dInE WDTyucTfDCIu7sQEHClXlTNTWXXs/MArjmtUfldCs6KWEvBiXec8YbAyC9gKZ3YV ERrkMEJJYVWJiqp4jkCu7N7SUm2HS4GUIfacP+Qt+FJqHjkhYmGBJXfRSNcnOubb S5gk1VJ7FKM7ZwQYDUZgouQUi6BiLoaJ3D0mHU+kxbg7PPhbT06u/MJh6v1B1Isa 2s/niQEiBBABAgAMBQJCtR/qBQMAEnUAAAoJEJcQuJvKV618R+oIAJj01Y/c/uq+ 4FqSfanoAGR5uqz3Ln+ijzycyMMQ8cY5fZpGaeeWzi3POlfnz35BsVXASWec9x7+ bHVQY6Rn6DoQFRX5cQ6WwwRpsg8lAoL3uzN99Frj8rwGoLkTCJvRNZVbAaDmMHAa +dAaq+ro1B22IGxvfR6N7EfjBHmeXfTHkSdszEBl9WnpsyziapSpkGFvcdzPWnBg Dh70nybKseCDdcIdTRCmj5MIBn150nav/1SzX+oustuxoRxrjYZUFr8dOK52xHst GgaSyNqKE8XJ8CCBvEI2x6pzIrle3vdBaXD9Yw3lOhNN0OZsqZWb/uQCW884tlDN XhUExNhcHXqJASIEEAECAAwFAkK3GioFAwASdQAACgkQlxC4m8pXrXz+ugf+KMyj rXp55VY5hSYZUoM1g+NW2ayOiT/pQNzOlVZt/fA64zwkmCGaRzEC6jB0rAi98b5o mvgCEwXWqg6z9asSbOk6/kIStI8se4hxp0BQSXIB7sXyrpopugigET3yIwSOM7M6 fez/WHJYF/8xOzA1VM5Fbs4M2V15hpjA0lwBRHgkxqBNaHl3FjhqO8SmcECCMART IVamMKniOK8hOVH0NKbjj7Zbe21EFuyXsxa32ROCPIY4mspKNFXtT7ixXmLjMxj0 P3yNUVBGkgjh86eP6QjT54V70nwVbjg6u7f5xeQoWHS+8dt4QhVOZDz3XSjKwgZq NllQ5YCSu/AdHJfcM4kBIgQQAQIADAUCQszcBwUDABJ1AAAKCRCXELibyletfBsa B/9HKXrv7HDwZ4LS4Sf/wrtlUZIEMmbojeF3G9QWBXp1D/SbSJHPTuXM9jsZcfTZ VX+neDDB5FkaGtqLf3Wcm5AT06qTswKbCrg1XlFQ66YuyqgX3+Y2i4GloATDNlPS Ho5g2YliIoZXxP6VzrmCHVDKBi/TWNxMaCgwPRtJvSRGUiitv/AJR4LCyz6T6QGJ +WRPaHwviT2FX0aAjP3q3tZKaXNmGskNuX5WUUnThUuZWwFJ2eZcqF3Mr7ZTmf/v QnwEoyEdULUNBWF15R5FD1EvK9ELQIEWOWBILv7Mt5ozNSqTYV78UpG5MiiM3DMh QP3iaqLsVzHvCNxgDmPZ04mBiQEiBBABAgAMBQJC0XrQBQMAEnUAAAoJEJcQuJvK V618EDYIAJgUg6kV4hU4Z8ML9Ka2GWazj34BmEMqkk6Jm6IRP2nVkHbe+/NN7vOZ TA+ZHFJKy5zu144+o6PqR2W9ZkcbWplUz4bC4POXclEfbIywH/7coqUwa3RjvRrO TmiYAZKV/Z7yngC3BLBIktlEvTZustX6LsqPrqLn6Wk8GI161HWYhwRCIXQ9Vs2e BhSGPzHp/vEOJHdGMsXpxEakcCCnn2SBwYcrkV4AN+gOJhsoH55hD1/mXEK95zoc S2uUaxxhn3jKEUFMOnCfcfuqZ52broV3OUczxozFloIGxxZv9xwBNHOMDfA0LI6Q 9YsL5uWDE1QKdwkIzqDC4mBzgOxp5C+IVwQTEQIAFwUCO3fNQAULBwoDBAMVAwID FgIBAheAAAoJED+4njonxrDkf60AnRUchhESPbyQbSvy7sX1xunLHgRkAJ49jGt8 9LQdh4lvqKfpj+RMqY1LI7Q0TWljaGFlbCBBbmRyZXMgKE1pY2hhZWwgQW5kcmVz IHByaXZhdGUpIDxtYUBrbTEzLmRlPohgBBMRAgAgAhsjBgsJCAcDAgQVAggDBBYC AwECHgECF4AFAkhmDeAACgkQP7ieOifGsOQDpwCdGxVwFjNt98OuylGNhhjm2GD0 HUkAn19PVAoWFjmHhSadUJAehJVloqjbiGMEExECACMCGyMGCwkIBwMCBBUCCAME FgIDAQIeAQIXgAUCSGYGFQIZAQAKCRA/uJ46J8aw5BvgAJ0Zo8czcPx39AUXGXIU v+RzkBeujwCfYOXRCpThfRrd2FyuUAULu+/PNnu5Ag0EO3fNWhAIANoFOLBJ37Vr 9umFyQJk2jB1zHfh8p0wF/Tw1giR7LFgTTpgvy27JR1BTSqJkeW56sfeDfMkHcRF SEsRl0SKHfpHLQANevwvygygx6OgeJrCdgJTkhWUdB7SgVC1yMSsWm0uYTPSOH+l 9PpICNH+tP1po0qoQsD387uY8XOwlLSAuFTOGGT0q7N1g/swF/5RwJhLtgj0viQR /lzoZ9f5GB87Ih9ab8LgBj1XcddjtFe+Qr0pZ+0tT5Fqz9/muOzeW3z1nHvE/7di LMorlevz1gD1JOPoFDaTmLsuWXdFP0aZoi/2Wx39HVD8Zpp8vN5M3Ta/11oXhoHG AIuIQ3kFELcAAwUIALMbFRojYmYCl6TCZ23PB/+8fK2VjAu4vUzuvv78U17H26pO G4mVbW7XXFBmN30viiqEVMdrm76odOe5VhF+lCB8irbvedL0al/C9vsAUGKRxJB0 1Y/mXsDuPvxmiuGqcWrb8j3chBh129dCO+dR4MR1xfth23EnI/fncggAeXGT6+HD oXfXTHoMolWKa9Fh3vRTZqFtBQTYPenr7lhUjPmM3cpswSTxkwIqC2pUmmDMekSu IOCVIbe5w+f5OB8j2Bd3ZYgxsePcf20OWOXdLNucO1KPaM9zS7LxhmlzAOWcXj8E EK9bAvdi1DXDgJA+AYmD6ol3uX+eoIDh3akYTTyIRgQYEQIABgUCO3fNWgAKCRA/ uJ46J8aw5AtiAJkBhcP6w63v4r8niiOPjmgN6NbxxACeK/BBzQT+qgqQfHYEW0Sc ixhE83U= =Z5HF -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/control.xml000066400000000000000000000675071334444677500256170ustar00rootroot00000000000000 control true true false never 95 true true simple false true true true true false true false /root/ /root/inst-sys/ false auto http://download.opensuse.org/YaST/Repos/openSUSE_103_Servers.xml false true 7G 40 5G 20G false false 15G 25G false false laptop ifplugd language keyboard timezone users networking firewall host routing proxy runlevel x11 nis ldap printer add-on installation,demo,autoinstallation initial initial no hwinfo keyboard mouse partitions software bootloader timezone language runlevel partitions software_simple country_simple hwinfo keyboard mouse partitions software bootloader timezone language runlevel update initial normal no update packages backup language update initial initial no hwinfo media update packages backup language keyboard network continue,normal yes lan 20 general 5 dsl 30 isdn 40 modem 50 remote 60 firewall 10 proxy 70 hardware continue yes x11 printer sound tv bluetooth all yes yes installation initial language no yes yes true checkmedia license disks_activate system_analysis productsources yes add-on yes timezone yes yes desktop yes proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no no finish no all yes yes update initial language no yes true checkmedia license disks_activate system_analysis update_partition upgrade_urls productsources yes add-on yes yes proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no no finish no all initial repair info repair all yes yes initial screen_shot no yes language true proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no yes all yes yes initial demo no language true proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy no no continue update all yes yes rpmcopy no no yes ask_net_test no do_net_test addon_update_sources suse_register ask_online_update you restore_settings suseconfig no no release_notes congratulate continue installation yes yes all yes root no initialization no no netprobe no no rpmcopy no no hostname proposal network fam ask_net_test do_net_test addon_update_sources suse_register ask_online_update you extrasources restore_settings auth user suseconfig no no release_notes proposal hardware save_hardware_status congratulate initial autoinstallation all no no autoinit all true autosetup proposal initial no yes prepdisk kickoff autoimage rpmcopy finish all no no continue autoinstallation netprobe autopost rpmcopy yes autoconfigure suseconfig libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/gpg-pubkey-0dfb3188-41ed929b.asc000066400000000000000000000015621334444677500304420ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBEHtkpsRBACRHiXh3olS++6/Mp9N7ByGMmjaaE+Y8cJQLUPG1myrbW5aogIP 0WenayhGbbgOHNWgd5dQ8KQpYYFoQuUHjFYzj5MvgrdOENOvD7ZNJ6+EmbkNh5cV zUYfNG9jdiGweZkyA1sh8DYS0JiUmQ4CzaBD/DotB/dCmDcyuNQFiw4qKwCglQah ATyueBRsOiXl0NIs1uB6dkkD/1A2YmQ6te1q38a1J+a8os6bDlMZhVnkZdhJdw6x eBwUb9XS0n7hyt/AKCcBnrDEUQJuhBMNgzctJvbuMv27yRMANAXZDQkp0ip/yHLJ PhUdSNTTRHOL9bV3t+JuZ9xmuclprwyrrJYUkEESXNc0tkuczHBP2c/RqA3OxYHt hrHLA/9Pqe2gEleeo8l26u/uFXs2dtwjh8EZmdhHoqGcOlpYR4DyAg2D+jYfh3RI oPzIwRlHVUR1ii5h8iPi98BVuEvukwfbbQ1K22Jwzxt6w3ihCXBKWKbeC3ElIMfA hVMchLFUbTAw+yodO/u3NHxKQ34+ginid9dVyxV5T0gpDEEHObQrT3BlbiBFbnRl cnByaXNlIFNlcnZlciA8c3VwcG9ydEBub3ZlbGwuY29tPoheBBMRAgAeBQJB7ZKb AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEHPSXWMN+zGID4oAoJPTGZbZApW+ tuU422mHYGwoqgjrAJ9fhzRhRbV3YsOxKUomNeuIfmWGXA== =Qv5+ -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/gpg-pubkey-307e3d54-44201d5d.asc000066400000000000000000000011521334444677500302600ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIF AkQgHV0CGwMFCQQ9AoAECwcDAgMVAgMDFgIBAh4BAheAAAoJEOOlw2Awfj1UjUIE AIf3SLlrfj2RsCDjyYThXen+A/WTYDPbY+NYmmVvFQilHNQY9ZrJ5cNohRQu6hA+ Sccrf11Uy24tTHWSTzuG9VzFeeIAcIU02XHar0w3QbvTk6IqeG+OZlfOGJj1sdx4 JKwpwk9mSdrq2ELhrkPZiVWS7RmRkPr2klwYgKGWbmOJ =ZmDA -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/gpg-pubkey-3d25d3d9-36e12d04.asc000066400000000000000000000032431334444677500303470ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQENAzbhLQQAAAEIAKAkXHe0lWRBXLpn38hMHy03F0I4Sszmoc8aaKJrhfhyMlOA BqvklPLE2f9UrI4Xc860gH79ZREwAgPt0pi6+SleNFLNcNFAuuHMLQOOsaMFatbz JR9i4m/lf6q929YROu5zB48rBAlcfTm+IBbijaEdnqpwGib45wE/Cfy6FAttBHQh 1Kp+r/jPbf1mYAvljUfHKuvbg8t2EIQz/5yGp+n5trn9pElfQO2cRBq8LFpf1l+U P7EKjFmlOq+Gs/fF98/dP3DfniSd78LQPq5vp8RL8nr/o2i7jkAQ33m4f1wOBWd+ cZovrKXYlXiR+Bf7m2hpZo+/sAzhd7LmAD0l09kABRG0JVN1U0UgU2VjdXJpdHkg VGVhbSA8c2VjdXJpdHlAc3VzZS5kZT6JARUDBRA24S1H5Fiyh7HKPEUBAVcOB/9b yHYji1/+4Xc2GhvXK0FSJN0MGgeXgW47yxDL7gmR4mNgjlIOUHZj0PEpVjWepOJ7 tQS3L9oP6cpj1Fj/XxuLbkp5VCQ61hpt54coQAvYrnT9rtWEGN+xmwejT1WmYmDJ xG+EGBXKr+XP69oIUl1E2JO3rXeklulgjqRKos4cdXKgyjWZ7CP9V9daRXDtje63 Om8gwSdU/nCvhdRIWp/Vwbf7Ia8iZr9OJ5YuQl0DBG4qmGDDrvImgPAFkYFzwlqo choXFQ9y0YVCV41DnR+GYhwl2qBd81T8aXhihEGPIgaw3g8gd8B5o6mPVgl+nJqI BkEYGBusiag2pS6qwznZiQEVAwUQNuEtBHey5gA9JdPZAQFtOAf+KVh939b0J94u v/kpg4xs1LthlhquhbHcKNoVTNspugiC3qMPyvSX4XcBr2PC0cVkS4Z9PY9iCfT+ x9WM96g39dAF+le2CCx7XISk9XXJ4ApEy5g4AuK7NYgAJd39PPbERgWnxjxir9g0 Ix30dS30bW39D+3NPU5Ho9TD/B7UDFvYT5AWHl3MGwo3a1RhTs6sfgL7yQ3U+mvq MkTExZb5mfN1FeaYKMopoI4VpzNVeGxQWIz67VjJHVyUlF20ekOz4kWVgsxkc8G2 saqZd6yv2EwqYTi8BDAduweP33KrQc4KDDommQNDOXxaKOeCoESIdM4p7Esdjq1o L0oixF12CohGBBARAgAGBQI7HmHDAAoJEJ5A4xAACqukTlQAoI4QzP9yjPohY7OU F7J3eKBTzp25AJ42BmtSd3pvm5ldmognWF3Trhp+GYkAlQMFEDe3O8IWkDf+zvyS FQEBAfkD/3GG5UgJj18UhYmh1gfjIlDcPAeqMwSytEHDENmHC+vlZQ/p0mT9tPiW tp34io54mwr+bLPN8l6B5GJNkbGvH6M+mO7R8Lj4nHL6pyAv3PQr83WyLHcaX7It Klj371/4yzKV6qpz43SGRK4MacLo2rNZ/dNej7lwPCtzCcFYwqkiiEYEEBECAAYF AjoaQqQACgkQx1KqMrDf94ArewCfWnTUDG5gNYkmHG4bYL8fQcizyA4An2eVo/n+ 3J2KRWSOhpAMsnMxtPbB =Ay23 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/gpg-pubkey-7e2e3b05-44748aba.asc000066400000000000000000000020211334444677500304210ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBER0iroRBADfqUeJmPCXqPJFnf3CVKy40dL1F+gfvP+JHN7/uu4c9+oCYjI1 uAE8iGTm/Twb/Zzbs4dt0iWjhNFXbRi42rMww4d/8QcPYZ21WSehh+fv8nCjt2sw LeC87ar2SR8OTpJBK0fQlcd4e6H5GMntfI6SYEUOPd8m/eQ+4+1AxpUUpwCgswaF 13fePZGI//pDn5tGjbvmaP8D/R3qum/I+oDS8lbFeeDS10GkEkwTYec13gdfsq6I yzIj7VBsC+rGfbipv+VGR61Q4d19pOHKLDekr9OG+3G4ZcYM4NQvQZR+QIlp3xWu nBmYD1LRkHLVj+Z4DGQhjjOffkPSuacKPymMaZ/aRiLgTIAo97W2YPhutscXrLSG 2Y+BA/4jsyaDb7kbW4wc8RtPIcuFEheVqgBeRakP9Uj47kBMBEpPtI/mIdY5liKk ztKnuQG6ROYLNV/PW0ZbE1uT64C710weh4cB3PnZLV5P10deDLBjHk8MJQGCTSDD JYvhutUzQfshAU6j2kErGvKdZxWGezab34vFyMP2oLGqswPAJrRQTm92ZWxsIFBy b3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20pIDxub3ZlbGwt cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgUCRHSKugIbAwUJA8JnAAYL CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBTCi8l+LjsFWEoAn13x+5ObqkW08gYF YNDlcGPjQuGPAJ9kAQbVUvvh1u9mBgu91cQ9W/TkHYhGBBMRAgAGBQJEexD/AAoJ EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU fJAKVDoB9w== =tJSz -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/gpg-pubkey-9c800aca-40d8063e.asc000066400000000000000000000042021334444677500304170ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l /PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO =pJli -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/gpg-pubkey-a1912208-446a0899.asc000066400000000000000000000034201334444677500301320ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQILBERqCJkBEACdqhZWdAbUHLIumXMEgv+GFjr1ZzVHgynnFOzztU/8sxZNa9cm YV4HZpVfjMr7fos3ArzyiPPt/336cf7w9p79/ZS4rHSNPDMlPCtXYvFxUbvU0/GY q4jwcBsrJ0xaJ9CP5bWyAgVKOb7Y6k0ktaLjRR+tDfMsHA4H0ClMoRr6ATw8NL0e VCfAHuzqCKvX1If8ng+wTivtAhKvz/WwQiELNELmPfc5tZHOw8NgP/r0Pze18Hn2 dlAHu0WpC7uoR00vscsMIJiJJPcsxbL1F1eADKnk+wEy8Go+EJeJ5i0WoFbqD52q Lv/C/oY6NVtVY0MBwtn+oQNSnQ4JBsB/Akdt53LAi0ZtNQxMyUW+76R8FCOmVCV8 WGiF5CPRP0yvG80AMBjBjKjHb/v8ov5MnIyFimzAHS1gQcUNxTEYA/5eFwoYcGcK weGq9FUjPTzLQAgvp7XmOzHpSAfJ7qysxFTepNsSZZhgizJyInrdQldr+GYcUNqB krD9MWmFop975OxhCTEnNv/HcE79r8WD26HzDFYxTiTJbr0pU/ivBzo+rjq+YG2V stJk+udVYmZTnC4LmXus8JiNuqBXbxNscwCBpcJ8YcfCV6uh+7E0XfXZsgVUFLp1 NF+ylYRGTycOlWoZODrnJevZW7N9O3bWRx/G2P4bJD07LsDLe4i5hymf5QAGKbRQ Tm92ZWxsIFByb3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20p IDxub3ZlbGwtcHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6JAjMEEwECAB0FAkRqCJkG CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBHijLooZEiCKSFD/93vZHCAMLEfksU KnvXl08bv1rfuamuyJnE3ANRE5RDyypriHMCnkVxazvQ2WI4W4UEjluL9+SzZwtV ZvKVoAr31614nSyWwv2YnJTHfjMG+xRlkolZMnuIiB9PcCBo9+GPU0ABuzo4pEJW NIRoSS1NFbAZBhtUnY0cN+trM5QObLl7xXTavLyGk//blkk57fov7GXsQJlZUig0 l2yt5XNyGpLUnTMDumHh8b389quF+0+ZfdwOy7A768xjipAZiTvIujBrEv51wrxh 0HBT0VGA0MhD9t0B+Ce4BM9P/iVMO00naaOp6PqMfPPKxQQqer8qy1i6UWBx95SY mKZBIvOm2d9PezDxkckCu61r6krx1iKnT1wdprCAkIYwALK118SpbxuyGW0bhRHc wsc/akzWH72fS0Xu49mvL4k4A2U9asdeQid3dMgbtm5mSWof0yiU/G4YNn0yeXoY oG1VbCAqQbFX1Rvd6GITJVqI+ekW/uMA9BP78dF8wBeG0+QmpQnSf+eOsxB/RT8o Kb4hHY+29MUlg+i9ceVt7hoKr03J/uIG5TXFXRYLaI0iAFVlKfWxpqDfS2XA4+dD VYt+5RDgBcnxDaTB4FE9GqcYScNfe7+NFtL0p0wOPftbmgZzGjucTmrD8mDUNdqA xGK7vlk4GATSfOQlq7G6LXW6RYnInohGBBMRAgAGBQJEazMlAAoJEKhO2uicgArK 2vMAn0TbVDESEVKVuFZStrfIzOvJQrR9AJsH733Ju1kE99GFrdfCeGqpckmNhg== =E+qN -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/installation.xml000066400000000000000000000101101334444677500266120ustar00rootroot00000000000000 control-ISSLE false auto true product continue,normal installation yast2-issleconfig no no normal installation,normal sw_single yes yes issleconfig yes yes inst_release_notes yes yes inst_congratulate no yes no no continue,normal installation,normal,update hostname root ca_mgm yast2-issleconfig suseconfig issleconfig yes yes libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/license.tar.gz000066400000000000000000000000551334444677500261470ustar00rootroot00000000000000‹×WKíÁ  ÷Om7 €7šÞ'(libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/000077500000000000000000000000001334444677500246145ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/directory.yast000066400000000000000000000000761334444677500275250ustar00rootroot00000000000000info.txt license.zip media products products.asc products.key libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/info.txt000066400000000000000000000027641334444677500263210ustar00rootroot00000000000000 openSUSE FACTORY 10.3-factory Attention! You are accessing our BETA Distribution. If you install any package, note that we can NOT GIVE ANY SUPPORT for your system - no matter if you update from a previous system or do a complete new installation. Use this BETA distribution at your own risk! We recommend it for testing, porting and evaluation purposes but not for any critical production systems. If you are curious and would like to help us to find the bugs, you're very welcome. Please enter bug reports following the instructions given at http://bugs.opensuse.org . If you want to talk about this distribution with others, you can discuss on the mailing list opensuse-factory@opensuse.org. Sources for development releases are not distributed via mirrors to reduce the bandwidth and storage on these mirrors. You can always find the latest source at http://download.opensuse.org/distribution/SL-OSS-factory/ In case you need the exact source of this development release you can find it on: http://www.novell.com/products/opensuse/source_code.html Alternatively, see http://www.novell.com/products/opensuse/source_code.html or send e-mail to sourcedvd@suse.de to request the source for a specific release of openSUSE on DVD. Please note that we will charge $15 or 15 Euros to cover our costs of distribution. Use this distribution at your own risk - and remember to have a lot of fun! :) Your openSUSE Team. libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/media000066400000000000000000000000521334444677500256130ustar00rootroot00000000000000SUSE Linux Products GmbH 20070705102239 1 libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/products000066400000000000000000000000351334444677500264000ustar00rootroot00000000000000/ SuSE-Linux-STABLE-X86 10.3 libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/products.asc000066400000000000000000000002751334444677500271530ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBGjNGIqE7a6JyACsoRAoWnAJkB1wTxOQngy5xvjTiUvwWp65wW5wCg hCbA+jw64zZYCa7IM71hBBynFL4= =nSHl -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/media.1/products.key000066400000000000000000000042021334444677500271670ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l /PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO =pJli -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/000077500000000000000000000000001334444677500243555ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/000077500000000000000000000000001334444677500255155ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/000077500000000000000000000000001334444677500266155ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/kde-10.3-71.noarch.pat000066400000000000000000000235501334444677500321500ustar00rootroot00000000000000# openSUSE Patterns 10.3-71.i586 -- (c) 2007 SUSE LINUX Products GmbH # generated on Wed Jul 4 17:31:46 UTC 2007 =Ver: 5.0 =Pat: kde 10.3 71 i586 =Cat.cs: Grafická rozhraní =Cat.da: Grafiske miljøer =Cat.de: Grafische Umgebungen =Cat: Graphical Environments =Cat.en_GB: Graphical Environments =Cat.es: Entornos gráficos =Cat.et: Graafilised keskkonnad =Cat.fi: Graafinen ympäristö =Cat.fr: Environnements graphiques =Cat.hr: GrafiÄko okruženje =Cat.hu: Grafikus környezet =Cat.id: Lingkungan Grafis =Cat.it: Ambienti grafici =Cat.ja: グラフィック環境 =Cat.km: បរិស្ážáž¶áž“​ក្រាហ្វិក =Cat.lt: GrafinÄ—s aplinkos =Cat.nb: Grafisk miljø =Cat.nl: Grafische omgevingen =Cat.pl: Åšrodowiska graficzne =Cat.pt_BR: Ambientes Gráficos =Cat.ru: ГрафичеÑкое окружение =Cat.sk: Grafické prostredia =Cat.sv: Grafiska miljöer =Cat.uk: Графічні Ñередовища =Cat.zh_CN: 图形环境 =Cat.zh_TW: 圖形環境 =Ico: kde =Sum: KDE Desktop Environment =Sum.bg: KDE Работна Ñреда =Sum.cs: ProstÅ™edí KDE =Sum.da: KDE skrivebordsmiljø =Sum.de: KDE Desktop-Umgebung =Sum.el: Ξ Ξ΅ΟÂιβάλλΞÎΞ½ ΕπιφάνΡιας Ξ•ΟÂγασΗας KDE =Sum.en_GB: KDE Desktop Environment =Sum.es: Escritorio KDE =Sum.et: KDE töölaua keskkond =Sum.fi: KDE-työpöytäympäristö =Sum.fr: Environnement de bureau KDE =Sum.hu: KDE asztali környezet =Sum.it: Ambiente Desktop KDE =Sum.ja: KDE デスクトップ環境 =Sum.km: បរិស្ážáž¶áž“​ផ្ទៃážáž» KDE =Sum.ko: KDE ë°ìФí¬íƒ‘ 환경 =Sum.lt: KDE darbalaukio aplinka =Sum.nb: Skrivebordsmiljøet KDE =Sum.nl: KDE Desktop Environment =Sum.pl: Åšrodowisko graficzne KDE =Sum.pt_BR: KDE Ambiente de Desktop =Sum.ru: Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ Ñреда KDE =Sum.sk: Prostredie KDE =Sum.sl: Namizno okolje KDE =Sum.sv: Skrivbordsmiljön KDE =Sum.uk: Стільничне Ñередовище KDE =Sum.zh_CN: KDE 桌é¢çŽ¯å¢ƒ =Sum.zh_TW: KDE 桌é¢ç’°å¢ƒ +Des.bg: KDE е мощна Ñвободна графична Ñреда за работни Ñтанции Ñ Ð›Ð¸Ð½ÑƒÐºÑ, комбинираща в Ñебе Ñи лекота на употреба, Ñъвременна функционалноÑÑ‚ и изключителен графичен дизайн Ñ Ñ‚ÐµÑ…Ð½Ð¸Ñ‡ÐµÑкото превъзходÑтво операционната ÑиÑтема ЛинукÑ. -Des.bg: +Des.ca: KDE és un potent entorn gràfic d'escriptori de programari lliure per a les estacions de treball de Linux. Combina la facilitat d'ús, la funcionalitat contemporània i un disseny gràfic excepcional amb la tecnologia del sistema operatiu Linux. -Des.ca: +Des.cs: KDE je svobodné grafické prostÅ™edí pro pracovní stanice. Snoubí v sobÄ› uživatelskou přívÄ›tivost, moderní funkcionalitu a atraktivní vzhled s linuxovou technologií. -Des.cs: +Des.da: KDE er et stærkt grafisk skrivebordsmiljø til Linux-arbejdsstationer og er fri software. Det er bÃ¥de let at bruge, har mange funktioner og et flot grafisk design med teknologien fra Linux-operativsystemet. -Des.da: +Des.de: KDE ist eine leistungsstarke kostenlose grafische Desktop-Umgebung für Linux-Arbeitsstationen. Das Programm kombiniert Benutzerfreundlichkeit, moderne Funktionsweise und hervorragendes grafisches Design mit der Technologie des Linux-Betriebssystems. -Des.de: +Des: KDE is a powerful free software graphical desktop environment for Linux workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technology of the Linux operating system. -Des: +Des.en_GB: KDE is a powerful free software graphical desktop environment for Linux workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technology of the Linux operating system. -Des.en_GB: +Des.es: KDE es un potente programa escritorio gráfico gratuito para estaciones de trabajo Linux. Combina la facilidad de uso, funciones contemporáneas y un diseño gráfico insuperable con la tecnología del sistema operativo Linux. -Des.es: +Des.fi: KDE on vaikuttava vapaa työpöytäympäristö Linux-työasemille. Siinä yhdistyy helppokäyttöisyys, käytettävyys ja upea graafinen suunnittelu Linux-käyttöjärjestelmäteknologian kanssa. -Des.fi: +Des.fr: KDE est un environnement de bureau graphique gratuit et puissant pour les stations de travail Linux. Il allie simplicité d'utilisation, fonctionnalités modernes et conception graphique exceptionnelle grâce à la technologie du système d'exploitation Linux. -Des.fr: +Des.hr: KDE je moćno besplatano grafiÄko okruženje radne povrÅ¡ine za Linux radne stanice. Kombinira lakoću koriÅ¡tenja, svakodnevnu funkcionalnost i izvrstan grafiÄki dizajn zajedno s tehnologijom Linux operativnog sustava. -Des.hr: +Des.hu: A KDE egy nagyteljesítményű, ingyenes, grafikus, asztali környezet Linux munkaállomásokhoz. Az egyszerű használatot, a modern funkcionalitást, valamint a kiemelkedÅ‘ grafikai kivitelt egyesíti a Linux operációs rendszer technológiai elÅ‘nyeivel. -Des.hu: +Des.id: KDE merupakan lingkungan desktop grafis free software yang powerful untuk workstation Linux. Ia menggabungkan kemudahan, fungsionalitas kontemporer, dan desain grafis yang hebat dengan teknologi sistem operasi Linux. -Des.id: +Des.it: KDE rappresenta un efficiente ambiente desktop grafico software gratuito per le workstation Linux. Associa facilità d'uso, funzioni aggiornate e ambiente grafico accattivante alla tecnologia del sistema operativo Linux. -Des.it: +Des.ja: KDEã¯ã€Linuxワークステーション用ã®ç„¡æ–™ã§å¼·åŠ›ãªã‚½ãƒ•トウェアグラフィカルデスクトップ環境ã§ã™ã€‚ 使ã„ã‚„ã™ã•ã€ç¾ä»£ã®æ©Ÿèƒ½æ€§ã€ãã—ã¦å„ªã‚ŒãŸã‚°ãƒ©ãƒ•ィカルデザインをLinuxã‚ªãƒšãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ã®æŠ€è¡“ã¨çµ±åˆã—ã¾ã™ã€‚ -Des.ja: +Des.km: KDE គឺ​ជា​បរិស្ážáž¶áž“​ផ្ទៃážáž»â€‹áž€áŸ’រាហ្វិក​ឥážâ€‹áž‚áž·ážâ€‹ážáŸ’លៃ​សម្រាប់​ស្ážáž¶áž“ីយ​ការងារ​របស់​លីនុច ។ វា​រួមបញ្ចូល​នូវ​ភាព​ងាយស្រួល​ក្នុងការ​ប្រើប្រាស់ និង​មុážáž„ារ​ដែល​វិវážáŸ’ážâ€‹ážáž¶áž˜â€‹ážŸáž˜áŸáž™áž€áž¶áž›â€‹áž‡áž¶áž“ិច្ច ជាមួយ​នឹង​បច្ចáŸáž€ážœáž·áž‡áŸ’ជា​រចនា​ក្រាហ្វិក​គំរូ​ážáž¶áž˜â€‹â€‹áž”្រពáŸáž“្ធ​ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšâ€‹áž›áž¸áž“ុច ។ -Des.km: +Des.lt: KDE yra galinga nemokama grafinÄ— darbalaukio aplinka Linux darbo stotims. Ji sujungia lengvÄ… naudojimÄ…, Å¡iuolaikinį funkcionalumÄ… ir puikų grafinį dizainÄ… su Linux operacinÄ—s sistemos technologijomis. -Des.lt: +Des.nb: KDE er et effektivt og elegant grafisk skrivebordsmiljø for Linux-arbeidsstasjoner. KDE kombinerer brukervennlighet, avanserte funksjoner og lekker grafisk design med teknologien i Linux-operativsystemet. -Des.nb: +Des.nl: KDE is een krachtige, vrije grafische desktop environment voor Linux-computers. Het combineert eenvoudig gebruik, uitgebreide functionaliteit en een uitstekend grafisch design met de technologie van het Linux-besturingssysteem. -Des.nl: +Des.pl: KDE jest potężnym Å›rodowiskiem graficznym dla linuksowych stacji roboczych. ÅÄ…czy Å‚atwość obsÅ‚ugi, szerokie możliwoÅ›ci i atrakcyjny wyglÄ…d z technologiamisystemu operacyjnego Linux. -Des.pl: +Des.pt: O KDE é um ambiente de trabalho gráfico livre e potente, para estações de trabalho Linux. Este combina a facilidade de utilização, funcionalidade contemporânea, e design gráfico de grande destaque, com a tecnologia do sistema operativo Linux. -Des.pt: +Des.pt_BR: O KDE é um poderoso ambiente gráfico de área de trabalho de software gratuito para estações de trabalho Linux. Ele combina a facilidade de uso, a funcionalidade contemporânea e o excelente design gráfico à tecnologia do sistema operacional Linux. -Des.pt_BR: +Des.ru: KDE Ñто Ð¼Ð¾Ñ‰Ð½Ð°Ñ Ð±ÐµÑÐ¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ð³Ñ€Ð°Ñ„Ð¸Ñ‡ÐµÑÐºÐ°Ñ ÑиÑтема Ð´Ð»Ñ Linux рабочих Ñтанций. Она комбинирует легкоÑть в иÑпользовании, Ñовременную функциональноÑть, превоÑходный дизайн Ñ Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñми оперативной ÑиÑтемы Linux. -Des.ru: +Des.sk: KDE je výkonné grafické prostredie a slobodný softvér, pre linuxové pracovné stanice. Kombinuje jednoduchosž použitia, modernú funkcionalitu a výnimoÄný grafický dizajn spolu s technológiou operaÄného systému Linux. -Des.sk: +Des.sv: KDE är en kraftfull fri programvara för grafisk skrivbordsmiljö för Linux-arbetsstationer. Den kombinerar användarvänlighet, moderna funktioner och fantastisk grafisk formgivning med tekniken hos operativsystemet Linux. -Des.sv: +Des.uk: KDE - це потужне графічне Ñередовище Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‡Ð¸Ñ… Ñтанцій Linux. Воно поєднує проÑтоту викориÑтаннÑ, модерну функціональніÑть та видатний графічний дизайн з операційною ÑиÑтемою Linux. -Des.uk: +Des.zh_CN: KDE 是一个软件图形桌é¢çŽ¯å¢ƒï¼Œå®ƒç”¨äºŽ Linux 工作站,ä¸ä½†åŠŸèƒ½å¼ºå¤§ï¼Œè€Œä¸”è¿˜å¯ä»¥å…费使用。 它将先进的功能ã€ç‹¬ç‰¹çš„图形设计与 Linux æ“作系统的技术相结åˆï¼Œä½¿ç”¨æ–¹ä¾¿ã€‚ -Des.zh_CN: +Des.zh_TW: KDE 是é‡å° Linux 工作站所設計ã€åŠŸèƒ½å¼·å¤§çš„å…費軟體圖形桌é¢ç’°å¢ƒã€‚它將容易使用ã€ç¾ä»£åŒ–功能åŠå‚‘出的圖形設計等çµåˆåˆ° Linux 作業系統之中。 -Des.zh_TW: +Rec: kde_internet multimedia office kde_utilities imaging games non_oss non_oss_java xgl -Rec: +Req: kde_basis -Req: =Vis: true =Ord: 1520 +Prc: opensuse-quickstart_en -Prc: +Psg: kdeedu3 kiosktool -Psg: libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/packages000066400000000000000000000231511334444677500303200ustar00rootroot00000000000000##---------------------------------------- =Pkg: kdelibs3 3.5.7 24 i586 =Cks: SHA1 05f0647241433d01636785fd282cc824a6527269 +Req: rpmlib(VersionedDependencies) <= 3.0.3-1 qt3 >= 3.3.8 openssl hicolor-icon-theme sudo /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 /bin/sh /usr/bin/perl libDCOP.so.4 libHalf.so.4 libICE.so.6 libIlmImf.so.4 libSM.so.6 libX11.so.6 libXau.so.6 libXcursor.so.1 libXext.so.6 libXfixes.so.3 libXft.so.2 libXi.so.6 libXinerama.so.1 libXrandr.so.2 libXrender.so.1 libacl.so.1 libacl.so.1(ACL_1.0) libart_lgpl_2.so.2 libasound.so.2 libasound.so.2(ALSA_0.9) libaspell.so.15 libattr.so.1 libattr.so.1(ATTR_1.0) libbz2.so.1 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.2) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) libcups.so.2 libdl.so.2 libdl.so.2(GLIBC_2.0) libdl.so.2(GLIBC_2.1) libdns_sd.so.1 libexpat.so.1 libfam.so.0 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgcc_s.so.1(GLIBC_2.0) libgssapi_krb5.so.2 libgssapi_krb5.so.2(gssapi_krb5_2_MIT) libidn.so.11 libjasper.so.1 libjpeg.so.62 libkabc.so.1 libkabc_dir.so.1 libkabc_file.so.1 libkabc_ldapkio.so.1 libkatepartinterfaces.so.0 libkdecore.so.4 libkdefakes.so.4 libkdefx.so.4 libkdeinit_cupsdconf.so libkdeinit_dcopserver.so libkdeinit_kaddprinterwizard.so libkdeinit_kbuildsycoca.so libkdeinit_kcmshell.so libkdeinit_kconf_update.so libkdeinit_kcookiejar.so libkdeinit_kded.so libkdeinit_kio_http_cache_cleaner.so libkdeinit_kio_uiserver.so libkdeinit_klauncher.so libkdeinit_knotify.so libkdemm.so.0 libkdeprint.so.4 libkdeprint_management.so.4 libkdesu.so.4 libkdeui.so.4 libkhtml.so.4 libkio.so.4 libkjs.so.1 libkmediaplayer.so.0 libknewstuff.so.1 libkntlm.so.0 libkparts.so.2 libkresources.so.1 libkscript.so.0 libkspell2.so.1 libktexteditor.so.0 libkutils.so.1 libkwalletbackend.so.1 libkwalletclient.so.1 libm.so.6 libm.so.6(GLIBC_2.0) libnetworkstatus.so.0 libpcre.so.0 libpng12.so.0 libpthread.so.0 libpthread.so.0(GLIBC_2.0) libpthread.so.0(GLIBC_2.2) libqt-mt.so.3 libresolv.so.2 libresolv.so.2(GLIBC_2.0) libresolv.so.2(GLIBC_2.2) libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(CXXABI_1.3.1) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.9) libtiff.so.3 libutil.so.1 libvcard.so.0 libxcb-xlib.so.0 libxcb.so.1 libxml2.so.2 libxslt.so.1 libz.so.1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Req: +Prq: rpmlib(VersionedDependencies) <= 3.0.3-1 /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Prq: +Prv: kups keramik kdelibs3-cups kdelibs3-33addons kdepim3-networkstatus kdelibs3_base = 3.3 cupsdconf.so dcopserver.so highcolor.so highcontrast.so kabc_dir.so kabc_file.so kabc_ldapkio.so kabcformat_binary.so kaddprinterwizard.so kbuildsycoca.so kbzip2filter.so kcm_kresources.so kcmshell.so kconf_update.so kcookiejar.so kded.so kded_kcookiejar.so kded_kdeprintd.so kded_kdetrayproxy.so kded_kpasswdserver.so kded_kssld.so kded_kwalletd.so kded_networkstatus.so kded_proxyscout.so kdeprint_cups.so kdeprint_ext.so kdeprint_lpdunix.so kdeprint_lpr.so kdeprint_rlpr.so kdeprint_tool_escputil.so kdewidgets.so keramik.so kfileaudiopreview.so kgzipfilter.so khtmlimagepart.so kimg_dds.so kimg_eps.so kimg_exr.so kimg_hdr.so kimg_ico.so kimg_jp2.so kimg_pcx.so kimg_psd.so kimg_rgb.so kimg_tga.so kimg_tiff.so kimg_xcf.so kimg_xview.so kio_file.so kio_ftp.so kio_ghelp.so kio_help.so kio_http.so kio_http_cache_cleaner.so kio_metainfo.so kio_uiserver.so kjavaappletviewer.so klauncher.so knotify.so kspell_aspell.so kspell_ispell.so kstyle_highcontrast_config.so kstyle_plastik_config.so ktexteditor_docwordcompletion.so ktexteditor_insertfile.so ktexteditor_isearch.so ktexteditor_kdatatool.so kthemestyle.so libDCOP.so.4 libconnectionmanager.so.0 libkabc.so.1 libkabc_dir.so.1 libkabc_file.so.1 libkabc_ldapkio.so.1 libkatepart.so libkatepartinterfaces.so.0 libkcertpart.so libkdecore.so.4 libkdefakes.so.4 libkdefx.so.4 libkdeinit_cupsdconf.so libkdeinit_dcopserver.so libkdeinit_kaddprinterwizard.so libkdeinit_kbuildsycoca.so libkdeinit_kcmshell.so libkdeinit_kconf_update.so libkdeinit_kcookiejar.so libkdeinit_kded.so libkdeinit_kio_http_cache_cleaner.so libkdeinit_kio_uiserver.so libkdeinit_klauncher.so libkdeinit_knotify.so libkdemm.so.0 libkdeprint.so.4 libkdeprint_management.so.4 libkdeprint_management_module.so libkdesasl.so.1 libkdesu.so.4 libkdeui.so.4 libkdnssd.so.1 libkhtml.so.4 libkhtmlpart.so libkimproxy.so.0 libkio.so.4 libkjava.so.1 libkjs.so.1 libkmdi.so.1 libkmdi2.so.1 libkmediaplayer.so.0 libkmid.so.0 libkmultipart.so libknewstuff.so.1 libkntlm.so.0 libkparts.so.2 libkresources.so.1 libkscreensaver.so.4 libkscript.so.0 libkspell.so.4 libkspell2.so.1 libktexteditor.so.0 libkunittest.so.1 libkutils.so.1 libkwalletbackend.so.1 libkwalletclient.so.1 libnetworkstatus.so.0 libshellscript.so libvcard.so.0 light.so plastik.so kdelibs3 = 3.5.7-24 -Prv: +Obs: kde3-i18n kups keramik kdelibs3-cups kdelibs3-33addons kdepim3-networkstatus -Obs: +Rec: ispell ispell_dictionary enscript -Rec: =Grp: System/GUI/KDE =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: kdelibs3 3.5.7 24 src =Tim: 1183399094 =Loc: 1 kdelibs3-3.5.7-24.i586.rpm =Siz: 16356019 38850584 +Aut: The KDE Team -Aut: ##---------------------------------------- =Pkg: kdelibs3-arts 3.5.7 24 i586 =Cks: SHA1 84d8c8e875395b8caaed90ae40bdfad3fe903eb7 +Req: arts >= 1.5.7 /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 libX11.so.6 libartsflow.so.1 libartsflow_idl.so.1 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.4) libkdecore.so.4 libkdeui.so.4 libkio.so.4 libkmedia2_idl.so.1 libmcop.so.1 libpthread.so.0 libpthread.so.0(GLIBC_2.0) libqt-mt.so.3 libqtmcop.so.1 libsoundserver_idl.so.1 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.9) rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Req: +Prq: /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Prq: +Prv: kdelibs3:/opt/kde3/bin/artsmessage libartskde.so.1 kdelibs3-arts = 3.5.7-24 -Prv: +Rec: kdemultimedia3-arts -Rec: =Grp: System/GUI/KDE =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: kdelibs3 3.5.7 24 src =Tim: 1183399094 =Loc: 1 kdelibs3-arts-3.5.7-24.i586.rpm =Siz: 183999 393828 +Aut: The KDE Team -Aut: ##---------------------------------------- =Pkg: kdelibs3-debuginfo 3.5.7 24 i586 =Cks: SHA1 0f4c7798729fae70830fd03962dff8cdcadb7bdc +Req: kdelibs3 = 3.5.7-24 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Req: +Prq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Prq: +Prv: kdelibs3-debuginfo = 3.5.7-24 -Prv: =Grp: Development/Debug =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: kdelibs3 3.5.7 24 src =Tim: 1183399094 =Loc: 1 kdelibs3-debuginfo-3.5.7-24.i586.rpm =Siz: 44452218 139124954 +Aut: The KDE Team -Aut: ##---------------------------------------- =Pkg: kdelibs3-devel 3.5.7 24 i586 =Cks: SHA1 46cfb73e29561af9e5445f6c525821856d067e61 +Req: qt3-devel libvorbis-devel kdelibs3 = 3.5.7 autoconf automake libxslt-devel libxml2-devel libart_lgpl-devel libjpeg-devel kdelibs3-doc libtiff-devel openssl-devel unsermake update-desktop-files libdrm-devel dbus-1-qt3-devel libattr-devel libacl-devel avahi-compat-mDNSResponder-devel libbz2-devel kdelibs3-arts fam-devel pcre-devel libidn-devel arts-devel rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 /bin/bash /bin/sh /usr/bin/env /usr/bin/perl libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.4) libkdecore.so.4 libkio.so.4 libkunittest.so.1 libqt-mt.so.3 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.9) rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Req: +Prq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Prq: +Prv: perl(Ast) perl(Iter) perl(kalyptusCxxToDcopIDL) perl(kdocAstUtil) perl(kdocParseDoc) perl(kdocUtil) kdelibs3-devel = 3.5.7-24 -Prv: =Grp: System/GUI/KDE =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: kdelibs3 3.5.7 24 src =Tim: 1183399094 =Loc: 1 kdelibs3-devel-3.5.7-24.i586.rpm =Siz: 1403143 6898685 +Aut: The KDE Team -Aut: ##---------------------------------------- =Pkg: kdelibs3-doc 3.5.7 24 i586 =Cks: SHA1 28714c6b0ab4dbed12039d511995d3085721ed4e +Req: sgml-skel libxml2 /usr/bin/sgml-register-catalog /usr/bin/xmlcatalog /usr/bin/edit-xml-catalog sed grep awk /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 libbz2.so.1 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.4) libkdecore.so.4 libkio.so.4 libqt-mt.so.3 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4) libxml2.so.2 libxslt.so.1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Req: +Prq: /usr/bin/sgml-register-catalog /usr/bin/xmlcatalog /usr/bin/edit-xml-catalog sed grep awk /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsBzip2) <= 3.0.5-1 -Prq: +Prv: kdelibs3:/opt/kde3/share/apps/ksgmltools2 kdelibs3_doc kdelibs3-doc = 3.5.7-24 -Prv: =Grp: System/GUI/KDE =Lic: BSD License and BSD-like, GNU General Public License (GPL) =Src: kdelibs3 3.5.7 24 src =Tim: 1183399094 =Loc: 1 kdelibs3-doc-3.5.7-24.i586.rpm =Siz: 918394 5908265 +Aut: The KDE Team -Aut: ##----------------------------------------libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/packages.DU000066400000000000000000000576031334444677500306400ustar00rootroot00000000000000##---------------------------------------- =Pkg: kdelibs3 3.5.7 24 i586 +Dir: / 0 39444 0 3068 etc/ 1 12 1 1 etc/xdg/ 0 12 0 1 etc/xdg/menus/ 12 0 1 0 opt/ 0 39366 0 3054 opt/kde3/ 0 39366 0 3054 opt/kde3/bin/ 1104 0 51 0 opt/kde3/lib/ 19666 5798 53 152 opt/kde3/lib/kde3/ 4968 830 138 14 opt/kde3/lib/kde3/plugins/ 0 830 0 14 opt/kde3/lib/kde3/plugins/designer/ 108 0 2 0 opt/kde3/lib/kde3/plugins/styles/ 722 0 12 0 opt/kde3/share/ 0 12798 0 2798 opt/kde3/share/applications/ 0 13 0 1 opt/kde3/share/applications/kde/ 13 0 1 0 opt/kde3/share/apps/ 0 3902 0 410 opt/kde3/share/apps/LICENSES/ 57 0 5 0 opt/kde3/share/apps/kabc/ 229 4 1 1 opt/kde3/share/apps/kabc/formats/ 4 0 1 0 opt/kde3/share/apps/katepart/ 11 2194 2 134 opt/kde3/share/apps/katepart/scripts/ 16 10 5 2 opt/kde3/share/apps/katepart/scripts/indent/ 10 0 2 0 opt/kde3/share/apps/katepart/syntax/ 2168 0 127 0 opt/kde3/share/apps/kcertpart/ 1 0 1 0 opt/kde3/share/apps/kcm_componentchooser/ 38 0 2 0 opt/kde3/share/apps/kconf_update/ 8 0 8 0 opt/kde3/share/apps/kdeprint/ 194 299 13 99 opt/kde3/share/apps/kdeprint/filters/ 156 0 20 0 opt/kde3/share/apps/kdeprint/icons/ 0 91 0 55 opt/kde3/share/apps/kdeprint/icons/crystalsvg/ 0 91 0 55 opt/kde3/share/apps/kdeprint/icons/crystalsvg/16x16/ 0 20 0 20 opt/kde3/share/apps/kdeprint/icons/crystalsvg/16x16/actions/ 3 0 3 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/16x16/apps/ 17 0 17 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/22x22/ 0 32 0 19 opt/kde3/share/apps/kdeprint/icons/crystalsvg/22x22/actions/ 31 0 18 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/22x22/apps/ 1 0 1 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/32x32/ 0 26 0 12 opt/kde3/share/apps/kdeprint/icons/crystalsvg/32x32/actions/ 3 0 1 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/32x32/apps/ 23 0 11 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/48x48/ 0 6 0 2 opt/kde3/share/apps/kdeprint/icons/crystalsvg/48x48/apps/ 6 0 2 0 opt/kde3/share/apps/kdeprint/icons/crystalsvg/64x64/ 0 7 0 2 opt/kde3/share/apps/kdeprint/icons/crystalsvg/64x64/apps/ 7 0 2 0 opt/kde3/share/apps/kdeprint/pics/ 25 0 18 0 opt/kde3/share/apps/kdeprint/plugins/ 25 0 5 0 opt/kde3/share/apps/kdeprint/tools/ 2 0 1 0 opt/kde3/share/apps/kdeui/ 0 93 0 26 opt/kde3/share/apps/kdeui/about/ 45 0 23 0 opt/kde3/share/apps/kdeui/pics/ 48 0 3 0 opt/kde3/share/apps/kdewidgets/ 0 60 0 42 opt/kde3/share/apps/kdewidgets/pics/ 60 0 42 0 opt/kde3/share/apps/khtml/ 6 50 4 12 opt/kde3/share/apps/khtml/css/ 9 0 2 0 opt/kde3/share/apps/khtml/icons/ 0 41 0 10 opt/kde3/share/apps/khtml/icons/crystalsvg/ 0 41 0 10 opt/kde3/share/apps/khtml/icons/crystalsvg/128x128/ 0 14 0 1 opt/kde3/share/apps/khtml/icons/crystalsvg/128x128/actions/ 14 0 1 0 opt/kde3/share/apps/khtml/icons/crystalsvg/16x16/ 0 4 0 3 opt/kde3/share/apps/khtml/icons/crystalsvg/16x16/actions/ 4 0 3 0 opt/kde3/share/apps/khtml/icons/crystalsvg/22x22/ 0 4 0 2 opt/kde3/share/apps/khtml/icons/crystalsvg/22x22/actions/ 4 0 2 0 opt/kde3/share/apps/khtml/icons/crystalsvg/32x32/ 0 6 0 2 opt/kde3/share/apps/khtml/icons/crystalsvg/32x32/actions/ 6 0 2 0 opt/kde3/share/apps/khtml/icons/crystalsvg/48x48/ 0 5 0 1 opt/kde3/share/apps/khtml/icons/crystalsvg/48x48/actions/ 5 0 1 0 opt/kde3/share/apps/khtml/icons/crystalsvg/64x64/ 0 8 0 1 opt/kde3/share/apps/khtml/icons/crystalsvg/64x64/actions/ 8 0 1 0 opt/kde3/share/apps/kio_uiserver/ 0 1 0 1 opt/kde3/share/apps/kio_uiserver/icons/ 0 1 0 1 opt/kde3/share/apps/kio_uiserver/icons/crystalsvg/ 0 1 0 1 opt/kde3/share/apps/kio_uiserver/icons/crystalsvg/16x16/ 0 1 0 1 opt/kde3/share/apps/kio_uiserver/icons/crystalsvg/16x16/apps/ 1 0 1 0 opt/kde3/share/apps/kjava/ 156 2 3 1 opt/kde3/share/apps/kjava/icons/ 0 2 0 1 opt/kde3/share/apps/kjava/icons/crystalsvg/ 0 2 0 1 opt/kde3/share/apps/kjava/icons/crystalsvg/16x16/ 0 2 0 1 opt/kde3/share/apps/kjava/icons/crystalsvg/16x16/actions/ 2 0 1 0 opt/kde3/share/apps/knewstuff/ 1 0 1 0 opt/kde3/share/apps/knotify/ 119 0 1 0 opt/kde3/share/apps/kssl/ 159 0 1 0 opt/kde3/share/apps/kstyle/ 0 183 0 47 opt/kde3/share/apps/kstyle/pixmaps/ 0 90 0 32 opt/kde3/share/apps/kstyle/pixmaps/riscos/ 90 0 32 0 opt/kde3/share/apps/kstyle/themes/ 93 0 15 0 opt/kde3/share/apps/ktexteditor_docwordcompletion/ 1 0 1 0 opt/kde3/share/apps/ktexteditor_insertfile/ 1 0 1 0 opt/kde3/share/apps/ktexteditor_isearch/ 1 0 1 0 opt/kde3/share/apps/ktexteditor_kdatatool/ 1 0 1 0 opt/kde3/share/apps/proxyscout/ 33 0 1 0 opt/kde3/share/autostart/ 7 0 1 0 opt/kde3/share/config/ 202 18 10 6 opt/kde3/share/config/colors/ 10 0 4 0 opt/kde3/share/config/ui/ 8 0 2 0 opt/kde3/share/emoticons/ 0 79 0 42 opt/kde3/share/emoticons/Default/ 79 0 42 0 opt/kde3/share/icons/ 0 6549 0 1906 opt/kde3/share/icons/crystalsvg/ 8 6480 1 1898 opt/kde3/share/icons/crystalsvg/128x128/ 0 1622 0 151 opt/kde3/share/icons/crystalsvg/128x128/actions/ 27 0 3 0 opt/kde3/share/icons/crystalsvg/128x128/apps/ 33 0 2 0 opt/kde3/share/icons/crystalsvg/128x128/devices/ 269 0 22 0 opt/kde3/share/icons/crystalsvg/128x128/filesystems/ 529 0 40 0 opt/kde3/share/icons/crystalsvg/128x128/mimetypes/ 764 0 84 0 opt/kde3/share/icons/crystalsvg/16x16/ 0 429 0 408 opt/kde3/share/icons/crystalsvg/16x16/actions/ 248 0 228 0 opt/kde3/share/icons/crystalsvg/16x16/apps/ 3 0 2 0 opt/kde3/share/icons/crystalsvg/16x16/devices/ 47 0 47 0 opt/kde3/share/icons/crystalsvg/16x16/filesystems/ 45 0 45 0 opt/kde3/share/icons/crystalsvg/16x16/mimetypes/ 86 0 86 0 opt/kde3/share/icons/crystalsvg/22x22/ 0 552 0 346 opt/kde3/share/icons/crystalsvg/22x22/actions/ 316 0 211 0 opt/kde3/share/icons/crystalsvg/22x22/apps/ 4 0 2 0 opt/kde3/share/icons/crystalsvg/22x22/devices/ 41 0 23 0 opt/kde3/share/icons/crystalsvg/22x22/filesystems/ 43 0 23 0 opt/kde3/share/icons/crystalsvg/22x22/mimetypes/ 148 0 87 0 opt/kde3/share/icons/crystalsvg/32x32/ 0 782 0 359 opt/kde3/share/icons/crystalsvg/32x32/actions/ 347 0 181 0 opt/kde3/share/icons/crystalsvg/32x32/apps/ 5 0 2 0 opt/kde3/share/icons/crystalsvg/32x32/devices/ 119 0 47 0 opt/kde3/share/icons/crystalsvg/32x32/filesystems/ 107 0 41 0 opt/kde3/share/icons/crystalsvg/32x32/mimetypes/ 204 0 88 0 opt/kde3/share/icons/crystalsvg/48x48/ 0 842 0 223 opt/kde3/share/icons/crystalsvg/48x48/actions/ 148 0 39 0 opt/kde3/share/icons/crystalsvg/48x48/apps/ 10 0 2 0 opt/kde3/share/icons/crystalsvg/48x48/devices/ 185 0 47 0 opt/kde3/share/icons/crystalsvg/48x48/filesystems/ 188 0 44 0 opt/kde3/share/icons/crystalsvg/48x48/mimetypes/ 311 0 91 0 opt/kde3/share/icons/crystalsvg/64x64/ 0 917 0 184 opt/kde3/share/icons/crystalsvg/64x64/actions/ 21 0 5 0 opt/kde3/share/icons/crystalsvg/64x64/apps/ 13 0 2 0 opt/kde3/share/icons/crystalsvg/64x64/devices/ 258 0 47 0 opt/kde3/share/icons/crystalsvg/64x64/filesystems/ 240 0 40 0 opt/kde3/share/icons/crystalsvg/64x64/mimetypes/ 385 0 90 0 opt/kde3/share/icons/crystalsvg/scalable/ 0 1336 0 227 opt/kde3/share/icons/crystalsvg/scalable/actions/ 304 0 56 0 opt/kde3/share/icons/crystalsvg/scalable/apps/ 7 0 1 0 opt/kde3/share/icons/crystalsvg/scalable/devices/ 290 0 47 0 opt/kde3/share/icons/crystalsvg/scalable/filesystems/ 212 0 44 0 opt/kde3/share/icons/crystalsvg/scalable/mimetypes/ 523 0 79 0 opt/kde3/share/icons/hicolor/ 0 61 0 7 opt/kde3/share/icons/hicolor/128x128/ 0 24 0 1 opt/kde3/share/icons/hicolor/128x128/apps/ 24 0 1 0 opt/kde3/share/icons/hicolor/16x16/ 0 1 0 1 opt/kde3/share/icons/hicolor/16x16/apps/ 1 0 1 0 opt/kde3/share/icons/hicolor/22x22/ 0 2 0 1 opt/kde3/share/icons/hicolor/22x22/apps/ 2 0 1 0 opt/kde3/share/icons/hicolor/32x32/ 0 3 0 1 opt/kde3/share/icons/hicolor/32x32/apps/ 3 0 1 0 opt/kde3/share/icons/hicolor/48x48/ 0 5 0 1 opt/kde3/share/icons/hicolor/48x48/apps/ 5 0 1 0 opt/kde3/share/icons/hicolor/64x64/ 0 8 0 1 opt/kde3/share/icons/hicolor/64x64/apps/ 8 0 1 0 opt/kde3/share/icons/hicolor/scalable/ 0 18 0 1 opt/kde3/share/icons/hicolor/scalable/apps/ 18 0 1 0 opt/kde3/share/locale/ 259 0 1 0 opt/kde3/share/mimelnk/ 42 1290 1 317 opt/kde3/share/mimelnk/all/ 9 0 2 0 opt/kde3/share/mimelnk/application/ 761 0 179 0 opt/kde3/share/mimelnk/audio/ 101 0 27 0 opt/kde3/share/mimelnk/image/ 144 0 38 0 opt/kde3/share/mimelnk/inode/ 21 0 6 0 opt/kde3/share/mimelnk/message/ 9 0 2 0 opt/kde3/share/mimelnk/model/ 3 0 1 0 opt/kde3/share/mimelnk/multipart/ 9 0 2 0 opt/kde3/share/mimelnk/text/ 175 0 41 0 opt/kde3/share/mimelnk/uri/ 12 0 6 0 opt/kde3/share/mimelnk/video/ 46 0 13 0 opt/kde3/share/services/ 226 80 62 12 opt/kde3/share/services/kded/ 70 0 8 0 opt/kde3/share/services/kresources/ 3 7 1 3 opt/kde3/share/services/kresources/kabc/ 7 0 3 0 opt/kde3/share/servicetypes/ 131 0 29 0 usr/ 0 65 0 12 usr/share/ 0 65 0 12 usr/share/doc/ 0 57 0 6 usr/share/doc/packages/ 0 57 0 6 usr/share/doc/packages/kdelibs3/ 57 0 6 0 usr/share/man/ 0 8 0 6 usr/share/man/man1/ 4 0 3 0 usr/share/man/man7/ 3 0 2 0 usr/share/man/man8/ 1 0 1 0 -Dir: ##---------------------------------------- =Pkg: kdelibs3-arts 3.5.7 24 i586 +Dir: / 0 386 0 2 opt/ 0 386 0 2 opt/kde3/ 0 386 0 2 opt/kde3/bin/ 11 0 1 0 opt/kde3/lib/ 375 0 1 0 -Dir: ##---------------------------------------- =Pkg: kdelibs3-debuginfo 3.5.7 24 i586 +Dir: / 0 137630 0 3429 usr/ 0 137630 0 3429 usr/lib/ 0 106253 0 186 usr/lib/debug/ 0 106253 0 186 usr/lib/debug/opt/ 0 106253 0 186 usr/lib/debug/opt/kde3/ 0 106253 0 186 usr/lib/debug/opt/kde3/bin/ 8618 0 56 0 usr/lib/debug/opt/kde3/lib/ 70633 27002 54 76 usr/lib/debug/opt/kde3/lib/kde3/ 23702 3300 69 7 usr/lib/debug/opt/kde3/lib/kde3/plugins/ 0 3300 0 7 usr/lib/debug/opt/kde3/lib/kde3/plugins/designer/ 317 0 1 0 usr/lib/debug/opt/kde3/lib/kde3/plugins/styles/ 2983 0 6 0 usr/src/ 0 31377 0 3243 usr/src/debug/ 0 31377 0 3243 usr/src/debug/kdelibs-3.5.7/ 0 31377 0 3243 usr/src/debug/kdelibs-3.5.7/arts/ 0 273 0 52 usr/src/debug/kdelibs-3.5.7/arts/kde/ 235 0 45 0 usr/src/debug/kdelibs-3.5.7/arts/knotify/ 35 0 6 0 usr/src/debug/kdelibs-3.5.7/arts/message/ 3 0 1 0 usr/src/debug/kdelibs-3.5.7/dcop/ 285 451 20 44 usr/src/debug/kdelibs-3.5.7/dcop/KDE-ICE/ 359 0 31 0 usr/src/debug/kdelibs-3.5.7/dcop/client/ 52 0 7 0 usr/src/debug/kdelibs-3.5.7/dcop/dcopidl/ 3 0 1 0 usr/src/debug/kdelibs-3.5.7/dcop/dcopidl2cpp/ 37 0 5 0 usr/src/debug/kdelibs-3.5.7/dnssd/ 101 0 23 0 usr/src/debug/kdelibs-3.5.7/interfaces/ 0 437 0 134 usr/src/debug/kdelibs-3.5.7/interfaces/kimproxy/ 0 63 0 7 usr/src/debug/kdelibs-3.5.7/interfaces/kimproxy/library/ 63 0 7 0 usr/src/debug/kdelibs-3.5.7/interfaces/kio/ 2 0 1 0 usr/src/debug/kdelibs-3.5.7/interfaces/kmediaplayer/ 33 10 8 3 usr/src/debug/kdelibs-3.5.7/interfaces/kmediaplayer/kfileaudiopreview/ 10 0 3 0 usr/src/debug/kdelibs-3.5.7/interfaces/kregexpeditor/ 5 0 1 0 usr/src/debug/kdelibs-3.5.7/interfaces/kscript/ 28 9 6 3 usr/src/debug/kdelibs-3.5.7/interfaces/kscript/sample/ 9 0 3 0 usr/src/debug/kdelibs-3.5.7/interfaces/ktexteditor/ 287 0 105 0 usr/src/debug/kdelibs-3.5.7/kab/ 217 0 9 0 usr/src/debug/kdelibs-3.5.7/kabc/ 658 383 93 134 usr/src/debug/kdelibs-3.5.7/kabc/formats/ 8 0 2 0 usr/src/debug/kdelibs-3.5.7/kabc/plugins/ 0 124 0 21 usr/src/debug/kdelibs-3.5.7/kabc/plugins/dir/ 25 0 7 0 usr/src/debug/kdelibs-3.5.7/kabc/plugins/file/ 30 0 7 0 usr/src/debug/kdelibs-3.5.7/kabc/plugins/ldapkio/ 69 0 7 0 usr/src/debug/kdelibs-3.5.7/kabc/vcard/ 119 109 36 69 usr/src/debug/kdelibs-3.5.7/kabc/vcard/include/ 76 33 36 33 usr/src/debug/kdelibs-3.5.7/kabc/vcard/include/generated/ 33 0 33 0 usr/src/debug/kdelibs-3.5.7/kabc/vcardparser/ 23 0 6 0 usr/src/debug/kdelibs-3.5.7/kate/ 0 1740 0 108 usr/src/debug/kdelibs-3.5.7/kate/interfaces/ 59 0 7 0 usr/src/debug/kdelibs-3.5.7/kate/part/ 1592 0 89 0 usr/src/debug/kdelibs-3.5.7/kate/plugins/ 0 89 0 12 usr/src/debug/kdelibs-3.5.7/kate/plugins/insertfile/ 15 0 3 0 usr/src/debug/kdelibs-3.5.7/kate/plugins/isearch/ 26 0 3 0 usr/src/debug/kdelibs-3.5.7/kate/plugins/kdatatool/ 17 0 3 0 usr/src/debug/kdelibs-3.5.7/kate/plugins/wordcompletion/ 31 0 3 0 usr/src/debug/kdelibs-3.5.7/kcert/ 34 0 3 0 usr/src/debug/kdelibs-3.5.7/kcmshell/ 22 0 6 0 usr/src/debug/kdelibs-3.5.7/kconf_update/ 27 0 3 0 usr/src/debug/kdelibs-3.5.7/kdecore/ 3210 768 259 50 usr/src/debug/kdelibs-3.5.7/kdecore/kconfig_compiler/ 51 0 1 0 usr/src/debug/kdelibs-3.5.7/kdecore/malloc/ 181 0 1 0 usr/src/debug/kdelibs-3.5.7/kdecore/network/ 446 0 44 0 usr/src/debug/kdelibs-3.5.7/kdecore/svgicons/ 90 0 4 0 usr/src/debug/kdelibs-3.5.7/kded/ 218 0 32 0 usr/src/debug/kdelibs-3.5.7/kdefx/ 337 0 14 0 usr/src/debug/kdelibs-3.5.7/kdemm/ 78 0 21 0 usr/src/debug/kdelibs-3.5.7/kdeprint/ 729 1418 126 353 usr/src/debug/kdelibs-3.5.7/kdeprint/cups/ 337 224 73 58 usr/src/debug/kdelibs-3.5.7/kdeprint/cups/cupsdconf2/ 224 0 58 0 usr/src/debug/kdelibs-3.5.7/kdeprint/ext/ 14 0 7 0 usr/src/debug/kdelibs-3.5.7/kdeprint/lpdunix/ 24 0 7 0 usr/src/debug/kdelibs-3.5.7/kdeprint/lpr/ 141 0 35 0 usr/src/debug/kdelibs-3.5.7/kdeprint/management/ 621 0 154 0 usr/src/debug/kdelibs-3.5.7/kdeprint/rlpr/ 41 0 16 0 usr/src/debug/kdelibs-3.5.7/kdeprint/tools/ 0 16 0 3 usr/src/debug/kdelibs-3.5.7/kdeprint/tools/escputil/ 16 0 3 0 usr/src/debug/kdelibs-3.5.7/kdesu/ 90 0 15 0 usr/src/debug/kdelibs-3.5.7/kdeui/ 3964 22 362 7 usr/src/debug/kdelibs-3.5.7/kdeui/kdetrayproxy/ 22 0 7 0 usr/src/debug/kdelibs-3.5.7/kdewidgets/ 55 0 4 0 usr/src/debug/kdelibs-3.5.7/kdoctools/ 56 0 8 0 usr/src/debug/kdelibs-3.5.7/khtml/ 866 4750 44 283 usr/src/debug/kdelibs-3.5.7/khtml/css/ 530 0 18 0 usr/src/debug/kdelibs-3.5.7/khtml/dom/ 700 0 53 0 usr/src/debug/kdelibs-3.5.7/khtml/ecma/ 827 0 48 0 usr/src/debug/kdelibs-3.5.7/khtml/html/ 492 0 32 0 usr/src/debug/kdelibs-3.5.7/khtml/java/ 174 0 21 0 usr/src/debug/kdelibs-3.5.7/khtml/kmultipart/ 31 0 3 0 usr/src/debug/kdelibs-3.5.7/khtml/misc/ 211 0 23 0 usr/src/debug/kdelibs-3.5.7/khtml/rendering/ 1307 0 59 0 usr/src/debug/kdelibs-3.5.7/khtml/xml/ 478 0 26 0 usr/src/debug/kdelibs-3.5.7/kimgio/ 198 0 17 0 usr/src/debug/kdelibs-3.5.7/kinit/ 182 0 18 0 usr/src/debug/kdelibs-3.5.7/kio/ 0 4866 0 488 usr/src/debug/kdelibs-3.5.7/kio/bookmarks/ 300 0 40 0 usr/src/debug/kdelibs-3.5.7/kio/httpfilter/ 25 0 3 0 usr/src/debug/kdelibs-3.5.7/kio/kfile/ 1289 0 124 0 usr/src/debug/kdelibs-3.5.7/kio/kio/ 2424 0 201 0 usr/src/debug/kdelibs-3.5.7/kio/kioexec/ 14 0 3 0 usr/src/debug/kdelibs-3.5.7/kio/kpasswdserver/ 35 0 4 0 usr/src/debug/kdelibs-3.5.7/kio/kssl/ 354 0 54 0 usr/src/debug/kdelibs-3.5.7/kio/misc/ 95 326 10 48 usr/src/debug/kdelibs-3.5.7/kio/misc/kdesasl/ 14 0 2 0 usr/src/debug/kdelibs-3.5.7/kio/misc/kfile/ 18 0 2 0 usr/src/debug/kdelibs-3.5.7/kio/misc/kntlm/ 46 0 5 0 usr/src/debug/kdelibs-3.5.7/kio/misc/kpac/ 63 0 14 0 usr/src/debug/kdelibs-3.5.7/kio/misc/ksendbugmail/ 27 0 6 0 usr/src/debug/kdelibs-3.5.7/kio/misc/kssld/ 50 0 4 0 usr/src/debug/kdelibs-3.5.7/kio/misc/kwalletd/ 108 0 15 0 usr/src/debug/kdelibs-3.5.7/kio/tests/ 4 0 1 0 usr/src/debug/kdelibs-3.5.7/kioslave/ 0 500 0 29 usr/src/debug/kdelibs-3.5.7/kioslave/bzip2/ 8 0 2 0 usr/src/debug/kdelibs-3.5.7/kioslave/file/ 61 0 3 0 usr/src/debug/kdelibs-3.5.7/kioslave/ftp/ 94 0 2 0 usr/src/debug/kdelibs-3.5.7/kioslave/gzip/ 13 0 2 0 usr/src/debug/kdelibs-3.5.7/kioslave/http/ 204 115 6 12 usr/src/debug/kdelibs-3.5.7/kioslave/http/kcookiejar/ 115 0 12 0 usr/src/debug/kdelibs-3.5.7/kioslave/metainfo/ 5 0 2 0 usr/src/debug/kdelibs-3.5.7/kjs/ 748 0 69 0 usr/src/debug/kdelibs-3.5.7/kmdi/ 460 138 38 39 usr/src/debug/kdelibs-3.5.7/kmdi/kmdi/ 116 0 17 0 usr/src/debug/kdelibs-3.5.7/kmdi/res/ 22 0 22 0 usr/src/debug/kdelibs-3.5.7/knewstuff/ 182 0 31 0 usr/src/debug/kdelibs-3.5.7/kparts/ 317 0 37 0 usr/src/debug/kdelibs-3.5.7/kresources/ 123 0 26 0 usr/src/debug/kdelibs-3.5.7/kspell2/ 92 275 23 36 usr/src/debug/kdelibs-3.5.7/kspell2/plugins/ 0 204 0 19 usr/src/debug/kdelibs-3.5.7/kspell2/plugins/aspell/ 14 0 5 0 usr/src/debug/kdelibs-3.5.7/kspell2/plugins/ispell/ 190 0 14 0 usr/src/debug/kdelibs-3.5.7/kspell2/ui/ 71 0 17 0 usr/src/debug/kdelibs-3.5.7/kstyles/ 0 1078 0 46 usr/src/debug/kdelibs-3.5.7/kstyles/highcolor/ 69 0 4 0 usr/src/debug/kdelibs-3.5.7/kstyles/highcontrast/ 60 9 3 3 usr/src/debug/kdelibs-3.5.7/kstyles/highcontrast/config/ 9 0 3 0 usr/src/debug/kdelibs-3.5.7/kstyles/keramik/ 436 0 13 0 usr/src/debug/kdelibs-3.5.7/kstyles/kthemestyle/ 203 0 8 0 usr/src/debug/kdelibs-3.5.7/kstyles/light/ 112 0 7 0 usr/src/debug/kdelibs-3.5.7/kstyles/plastik/ 167 18 4 3 usr/src/debug/kdelibs-3.5.7/kstyles/plastik/config/ 18 0 3 0 usr/src/debug/kdelibs-3.5.7/kstyles/utils/ 0 4 0 1 usr/src/debug/kdelibs-3.5.7/kstyles/utils/installtheme/ 4 0 1 0 usr/src/debug/kdelibs-3.5.7/kunittest/ 61 0 7 0 usr/src/debug/kdelibs-3.5.7/kutils/ 374 66 42 12 usr/src/debug/kdelibs-3.5.7/kutils/ksettings/ 66 0 12 0 usr/src/debug/kdelibs-3.5.7/kwallet/ 0 110 0 18 usr/src/debug/kdelibs-3.5.7/kwallet/backend/ 68 0 13 0 usr/src/debug/kdelibs-3.5.7/kwallet/client/ 42 0 5 0 usr/src/debug/kdelibs-3.5.7/libkmid/ 250 0 32 0 usr/src/debug/kdelibs-3.5.7/libkscreensaver/ 25 0 5 0 usr/src/debug/kdelibs-3.5.7/libltdl/ 79 0 2 0 usr/src/debug/kdelibs-3.5.7/networkstatus/ 63 0 20 0 usr/src/debug/kdelibs-3.5.7/pics/ 1 0 1 0 -Dir: ##---------------------------------------- =Pkg: kdelibs3-devel 3.5.7 24 i586 +Dir: / 0 7141 0 791 etc/ 0 5 0 1 etc/opt/ 0 5 0 1 etc/opt/kde3/ 5 0 1 0 opt/ 0 7136 0 790 opt/kde3/ 0 7136 0 790 opt/kde3/bin/ 130 0 7 0 opt/kde3/include/ 4111 1867 415 289 opt/kde3/include/arts/ 59 0 10 0 opt/kde3/include/dnssd/ 30 0 7 0 opt/kde3/include/dom/ 420 0 29 0 opt/kde3/include/kabc/ 202 0 43 0 opt/kde3/include/kate/ 22 0 2 0 opt/kde3/include/kdemm/ 26 0 7 0 opt/kde3/include/kdeprint/ 63 8 14 3 opt/kde3/include/kdeprint/lpr/ 8 0 3 0 opt/kde3/include/kdesu/ 25 0 8 0 opt/kde3/include/khexedit/ 26 0 5 0 opt/kde3/include/kio/ 332 0 37 0 opt/kde3/include/kjs/ 120 0 17 0 opt/kde3/include/kmdi/ 16 0 4 0 opt/kde3/include/kmediaplayer/ 11 0 3 0 opt/kde3/include/knewstuff/ 47 0 10 0 opt/kde3/include/kparts/ 125 0 14 0 opt/kde3/include/kresources/ 43 0 9 0 opt/kde3/include/ksettings/ 20 0 4 0 opt/kde3/include/kspell2/ 32 0 10 0 opt/kde3/include/ktexteditor/ 97 0 33 0 opt/kde3/include/kunittest/ 43 0 3 0 opt/kde3/include/libkmid/ 100 0 17 0 opt/kde3/lib/ 84 0 43 0 opt/kde3/share/ 0 944 0 36 opt/kde3/share/apps/ 0 944 0 36 opt/kde3/share/apps/dcopidlng/ 82 0 7 0 opt/kde3/share/apps/kdelibs/ 0 862 0 29 opt/kde3/share/apps/kdelibs/admin/ 862 0 29 0 -Dir: ##---------------------------------------- =Pkg: kdelibs3-doc 3.5.7 24 i586 +Dir: / 0 6378 0 1199 etc/ 0 1 0 1 etc/xml/ 1 0 1 0 opt/ 0 6377 0 1198 opt/kde3/ 0 6377 0 1198 opt/kde3/bin/ 43 0 1 0 opt/kde3/share/ 0 6334 0 1197 opt/kde3/share/apps/ 0 6003 0 1145 opt/kde3/share/apps/ksgmltools2/ 0 6003 0 1145 opt/kde3/share/apps/ksgmltools2/customization/ 66 940 16 487 opt/kde3/share/apps/ksgmltools2/customization/af/ 7 9 4 9 opt/kde3/share/apps/ksgmltools2/customization/af/entities/ 9 0 9 0 opt/kde3/share/apps/ksgmltools2/customization/bg/ 5 0 2 0 opt/kde3/share/apps/ksgmltools2/customization/ca/ 11 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/ca/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/cs/ 7 1 3 1 opt/kde3/share/apps/ksgmltools2/customization/cs/entities/ 1 0 1 0 opt/kde3/share/apps/ksgmltools2/customization/da/ 11 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/da/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/de/ 11 19 4 14 opt/kde3/share/apps/ksgmltools2/customization/de/entities/ 19 0 14 0 opt/kde3/share/apps/ksgmltools2/customization/dtd/ 19 0 4 0 opt/kde3/share/apps/ksgmltools2/customization/el/ 5 1 2 1 opt/kde3/share/apps/ksgmltools2/customization/el/entities/ 1 0 1 0 opt/kde3/share/apps/ksgmltools2/customization/en-GB/ 7 2 3 1 opt/kde3/share/apps/ksgmltools2/customization/en-GB/entities/ 2 0 1 0 opt/kde3/share/apps/ksgmltools2/customization/en/ 9 2 4 2 opt/kde3/share/apps/ksgmltools2/customization/en/entities/ 2 0 2 0 opt/kde3/share/apps/ksgmltools2/customization/entities/ 76 0 3 0 opt/kde3/share/apps/ksgmltools2/customization/es/ 10 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/es/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/et/ 9 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/et/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/fi/ 7 4 4 4 opt/kde3/share/apps/ksgmltools2/customization/fi/entities/ 4 0 4 0 opt/kde3/share/apps/ksgmltools2/customization/fo/ 7 14 4 9 opt/kde3/share/apps/ksgmltools2/customization/fo/entities/ 14 0 9 0 opt/kde3/share/apps/ksgmltools2/customization/fr/ 51 15 4 13 opt/kde3/share/apps/ksgmltools2/customization/fr/entities/ 15 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/he/ 8 17 4 12 opt/kde3/share/apps/ksgmltools2/customization/he/entities/ 17 0 12 0 opt/kde3/share/apps/ksgmltools2/customization/hu/ 7 6 3 5 opt/kde3/share/apps/ksgmltools2/customization/hu/entities/ 6 0 5 0 opt/kde3/share/apps/ksgmltools2/customization/id/ 6 4 3 3 opt/kde3/share/apps/ksgmltools2/customization/id/entities/ 4 0 3 0 opt/kde3/share/apps/ksgmltools2/customization/it/ 10 18 4 13 opt/kde3/share/apps/ksgmltools2/customization/it/entities/ 18 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/ja/ 6 0 3 0 opt/kde3/share/apps/ksgmltools2/customization/ko/ 6 7 3 7 opt/kde3/share/apps/ksgmltools2/customization/ko/entities/ 7 0 7 0 opt/kde3/share/apps/ksgmltools2/customization/lt/ 5 0 2 0 opt/kde3/share/apps/ksgmltools2/customization/nl/ 23 16 4 13 opt/kde3/share/apps/ksgmltools2/customization/nl/entities/ 16 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/nn/ 11 14 4 11 opt/kde3/share/apps/ksgmltools2/customization/nn/entities/ 14 0 11 0 opt/kde3/share/apps/ksgmltools2/customization/no/ 7 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/no/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/obsolete/ 36 0 5 0 opt/kde3/share/apps/ksgmltools2/customization/pl/ 20 13 4 12 opt/kde3/share/apps/ksgmltools2/customization/pl/entities/ 13 0 12 0 opt/kde3/share/apps/ksgmltools2/customization/pt-BR/ 9 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/pt-BR/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/pt/ 12 13 5 12 opt/kde3/share/apps/ksgmltools2/customization/pt/entities/ 13 0 12 0 opt/kde3/share/apps/ksgmltools2/customization/ro/ 11 14 4 13 opt/kde3/share/apps/ksgmltools2/customization/ro/entities/ 14 0 13 0 opt/kde3/share/apps/ksgmltools2/customization/ru/ 9 15 4 11 opt/kde3/share/apps/ksgmltools2/customization/ru/entities/ 15 0 11 0 opt/kde3/share/apps/ksgmltools2/customization/sk/ 7 12 3 11 opt/kde3/share/apps/ksgmltools2/customization/sk/entities/ 12 0 11 0 opt/kde3/share/apps/ksgmltools2/customization/sl/ 8 12 4 11 opt/kde3/share/apps/ksgmltools2/customization/sl/entities/ 12 0 11 0 opt/kde3/share/apps/ksgmltools2/customization/sr/ 40 18 4 12 opt/kde3/share/apps/ksgmltools2/customization/sr/entities/ 18 0 12 0 opt/kde3/share/apps/ksgmltools2/customization/sv/ 7 13 4 12 opt/kde3/share/apps/ksgmltools2/customization/sv/entities/ 13 0 12 0 opt/kde3/share/apps/ksgmltools2/customization/tr/ 5 13 2 9 opt/kde3/share/apps/ksgmltools2/customization/tr/entities/ 13 0 9 0 opt/kde3/share/apps/ksgmltools2/customization/uk/ 9 0 4 0 opt/kde3/share/apps/ksgmltools2/customization/wa/ 5 0 2 0 opt/kde3/share/apps/ksgmltools2/customization/xh/ 5 0 2 0 opt/kde3/share/apps/ksgmltools2/customization/xsl/ 28 0 28 0 opt/kde3/share/apps/ksgmltools2/customization/xx/ 5 0 2 0 opt/kde3/share/apps/ksgmltools2/customization/zh-CN/ 7 8 3 5 opt/kde3/share/apps/ksgmltools2/customization/zh-CN/entities/ 8 0 5 0 opt/kde3/share/apps/ksgmltools2/customization/zh-TW/ 7 5 3 5 opt/kde3/share/apps/ksgmltools2/customization/zh-TW/entities/ 5 0 5 0 opt/kde3/share/apps/ksgmltools2/docbook/ 1 4996 1 641 opt/kde3/share/apps/ksgmltools2/docbook/xml-dtd-4.1.2/ 311 67 13 19 opt/kde3/share/apps/ksgmltools2/docbook/xml-dtd-4.1.2/ent/ 67 0 19 0 opt/kde3/share/apps/ksgmltools2/docbook/xml-dtd-4.2/ 321 0 11 0 opt/kde3/share/apps/ksgmltools2/docbook/xsl/ 31 4266 6 592 opt/kde3/share/apps/ksgmltools2/docbook/xsl/common/ 2232 0 60 0 opt/kde3/share/apps/ksgmltools2/docbook/xsl/html/ 1291 0 58 0 opt/kde3/share/apps/ksgmltools2/docbook/xsl/images/ 58 31 29 31 opt/kde3/share/apps/ksgmltools2/docbook/xsl/images/callouts/ 31 0 31 0 opt/kde3/share/apps/ksgmltools2/docbook/xsl/lib/ 70 0 4 0 opt/kde3/share/apps/ksgmltools2/docbook/xsl/manpages/ 43 0 7 0 opt/kde3/share/apps/ksgmltools2/docbook/xsl/params/ 541 0 403 0 opt/kde3/share/doc/ 0 331 0 52 opt/kde3/share/doc/HTML/ 0 331 0 52 opt/kde3/share/doc/HTML/en/ 0 331 0 52 opt/kde3/share/doc/HTML/en/common/ 320 0 50 0 opt/kde3/share/doc/HTML/en/kspell/ 11 0 2 0 -Dir: ##----------------------------------------libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/packages.en000066400000000000000000000026551334444677500307270ustar00rootroot00000000000000##---------------------------------------- =Pkg: kdelibs3 3.5.7 24 i586 =Sum: KDE Base Libraries +Des:

This package contains kdelibs, one of the basic packages of the K Desktop Environment. It contains the necessary libraries for the KDE desktop.

This package is absolutely necessary for using KDE.

-Des: ##---------------------------------------- =Pkg: kdelibs3-arts 3.5.7 24 i586 =Sum: KDE aRts support +Des:

This package contains bindings and gui elements for using aRts sound daemon.

-Des: ##---------------------------------------- =Pkg: kdelibs3-debuginfo 3.5.7 24 i586 =Sum: KDE Base Libraries +Des:

This package contains kdelibs, one of the basic packages of the K Desktop Environment. It contains the necessary libraries for the KDE desktop.

This package is absolutely necessary for using KDE.

-Des: ##---------------------------------------- =Pkg: kdelibs3-devel 3.5.7 24 i586 =Sum: KDE Base Package: Build Environment +Des:

This package contains all necessary include files and libraries needed to develop applications that require these.

-Des: ##---------------------------------------- =Pkg: kdelibs3-doc 3.5.7 24 i586 =Sum: Documentation for KDE Base Libraries +Des:

This package contains the core environment and templates for the KDE help system.

-Des: ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/packages.es000066400000000000000000000027261334444677500307330ustar00rootroot00000000000000##---------------------------------------- =Pkg: kdelibs3 3.5.7 24 i586 =Sum: KDE Base Libraries +Des:

This package contains kdelibs, one of the basic packages of the K Desktop Environment. It contains the necessary libraries for the KDE desktop.

This package is absolutely necessary for using KDE.

-Des: ##---------------------------------------- =Pkg: kdelibs3-arts 3.5.7 24 i586 =Sum: KDE aRts support +Des:

This package contains bindings and gui elements for using aRts sound daemon.

-Des: ##---------------------------------------- =Pkg: kdelibs3-debuginfo 3.5.7 24 i586 =Sum: KDE Base Libraries +Des:

This package contains kdelibs, one of the basic packages of the K Desktop Environment. It contains the necessary libraries for the KDE desktop.

This package is absolutely necessary for using KDE.

-Des: ##---------------------------------------- =Pkg: kdelibs3-devel 3.5.7 24 i586 =Sum: Paquete básico de KDE: entorno de desarrollo +Des:

Este paquete contiene todas las librerías y archivos include necesarios para desarrollar aplicaciones que los requieran.

-Des: ##---------------------------------------- =Pkg: kdelibs3-doc 3.5.7 24 i586 =Sum: Documentación para las bibliotecas básicas de KDE +Des:

Este paquete contiene el entorno central y las plantillas para el sistema de ayuda de KDE.

-Des: ##---------------------------------------- libzypp-17.7.0/tests/repo/susetags/data/stable-x86-subset/suse/setup/descr/patterns000066400000000000000000000000301334444677500303710ustar00rootroot00000000000000kde-10.3-71.noarch.pat libzypp-17.7.0/tests/repo/yum/000077500000000000000000000000001334444677500162415ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/yum/CMakeLists.txt000066400000000000000000000000311334444677500207730ustar00rootroot00000000000000 ADD_TESTS(YUMDownloader)libzypp-17.7.0/tests/repo/yum/YUMDownloader_test.cc000066400000000000000000000030661334444677500223050ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/repo/yum/Downloader.h" using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; using namespace zypp::repo; #include "tests/zypp/KeyRingTestReceiver.h" #define DATADIR (Pathname(TESTS_SRC_DIR) + "/repo/yum/data") BOOST_AUTO_TEST_CASE(yum_download) { KeyRingTestReceiver keyring_callbacks; keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); Pathname p = DATADIR + "/10.2-updates-subset"; Url url(p.asDirUrl()); MediaSetAccess media(url); RepoInfo repoinfo; repoinfo.setAlias("testrepo"); repoinfo.setPath("/"); yum::Downloader yum(repoinfo); filesystem::TmpDir tmp; Pathname localdir(tmp.path()); yum.download(media, localdir); const char* files[] = { // "filelists.xml.gz", // "other.xml.gz", "patches.xml", "patch-fetchmsttfonts.sh-2333.xml", "patch-flash-player-2359.xml", "patch-glabels-2348.xml", "patch-gv-2350.xml", "patch-openssl-2349.xml", "patch-tar-2351.xml", "primary.xml.gz", "repomd.xml", "repomd.xml.asc", "repomd.xml.key", NULL }; int i=0; while ( files[i] != NULL ) { BOOST_CHECK_MESSAGE( PathInfo(localdir + "/repodata/" + files[i] ).isExist(), (string("/repodata/") + files[i]).c_str() ); i++; } } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/repo/yum/data/000077500000000000000000000000001334444677500171525ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/000077500000000000000000000000001334444677500225005ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/000077500000000000000000000000001334444677500242775ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/filelists.xml.gz000066400000000000000000000103701334444677500274370ustar00rootroot00000000000000‹1]#Ffilelists.xmlí[sÛ8Ò†ïçW¸|OоšdËñx“Ì:v*v&»W*hHŒ)’CP>ä× li,[€Tª¶v0•Œ©Ÿ&`7ú¥ôë?îgÅÑ-4*¯Ê7ÇÈŽ ä•ÈËÉ›ã¯×ÿô’ã¼ýåW™PäªUGÚ¾Toާm[ÿßhTäåüÞóðAÌG3h™`-­ìjÆoØ4ƒpkgO¯Õ7“\¼9&!2ˆXÀÃ$&Y*(Ɉ„dIÒ$ iÅÇG%›Á›ãIÁ2(´gÖðé›ãœ&Qçõé$Ž ®º—õ‰èWÞc?ðÃ㣠}¤ÀÇÇ£·¿=ý·8­£ö¡Ö^EÞ¿Uu;š”Õ FyÉ‹¹}†ÙÓ]œ•­¦¬ÑPp$ZÑÖ?ôÇ[˜Õka@óçyvñûŠz@÷½ò1:=Œíd2oúôI5“ýO¨Îïg¬VææªyBEÅGË)¸“~Ô,/ûØzkùt/ñzj=ûÕïÅ׬†¦ºçýh½zÞáƒ`jày3[ °&TeOø¨£x¼—{œ ¬®‹œ³Vß'¼&úÕ<ŒVò×›ûGý+«Éå P7mUºx¶Ô¯¦QwÏÚ¶ôïYïGUöxëÈÛªñ·ßöù©Ê9+ªÉ7ËÁíé^É'%ôkÒê^4bú¦þàåªZMåë)0Ð_ÕN¡9¨Ç¹:»Y®øÏwáî§»px°³],¥žÊ ôóãø¬šÙà®›ç«i9ÏmøÑÃÊãjvpá×å䧸^üû'z¨æí¡ÜÏX^zwy)ª;O¡}8˜ch&àÁ=òÐá]âû$‡wÚ%>|_âÃ÷%>|_âÃõåÚÝZ¯{2ÖÊyÝäeëñªÎõÊwPŸ‹žêr/ \S ˜°ÂÂIQqVÀˆ«ÑùéøÓÙÕÕÉû³«UcfûÃÖ57:Ä9„8Lkds7y{7ßÙAÜÔÅaÜ´ãw_â©™ÄÍéøú›ÿ.ŸÐaîf¬ìþ¢‰üÉS6Ÿ——²ZÁ7ð`šý¼†»W,àWÓøÙ~Ê**9õõ«†ü‹-ïyjxï-Ûc¾Ä½ðןÁ½‡¬Ãª Nð£“MábŽsÒt7¹¸©æåàæ¬.x¦;ÇÓÙmugJGÃjºÃÑî ¹ÑÉ×ë—_®úÁ§—Ÿÿóñâ}?øËÙÉoŸÎú±×—¿].É_—ooØàç)É8Ä )M$‹"†…QšasÓ AQŠaË¿jøýý·ÏwUtà¶}‹rÝ°ÕØ¶utµýT7è€08œHd’#’,`e„Æ,F$” ÛÒ÷I4~¬œ¸‡«q¸‡«qØ¢—GZW9Ö³:Ç:cVéxɘÕ:^S®Ú᪮ÚaãÎU;\µÃU;\µÃU;\µÃU;\µÃU;\µÃU;\µÃU;\µÃ†5¬v°&(ãiLS!Œ„¢ò4¥1 Oc¾Üì¯j(•* güÔOÄÓ^?Š÷íõCËGÚùþÍÔ'Ǧ5Ø{]3×aÁ–å{÷uÞ€ÁÖÿӱحÎÁÌö…;™0”“¼4ÙÆÞrÝŸ.Œ oo¾ØQØ2×; A˜¢$~`dŽAÈ8@‘¡9 bšš§¡DqL Í£î Ÿ8MMÍ%iblGeǦæ,MpÀ‘¡y’,âÔØA-Owa®”±ý…’]®¶xŠR}^nÛ èâÍNÀÀÇ LuÞ¶ÇlWØû*¸î~cštCtk|à¶³oYQØ‚Outd¨»\¶VÈdfw弩J+B͸ӹ‚4ÏðýDwÎÍCÝV°`‘Xf`½=üqòñüäÝùÙøôãçg¶ÛK7§N.ÞŸ ƒý««s`ý||¼¸º>9?û¿ýþþóça.>1~Ù³–..¾ ã/¯¶IR üñià|#[ð- :8µÜVZ:8×qÈÅUOøâì[Ïžë³¶ÎúWsƒf¯öë™*QÍ>ê‘­›öP}s±gš¢„ë®b{TLTÛƒšê.a³ êÑ'êy8(¹=¤3ð^ÍÔ\Ó‡+üiO-(k°fJ݉œ`÷ãz ÌK챆•=έész]l ÍÛWMy‘CÙc®ª±Î2ou¢iOvå¿X}ÃzL;ÝÄ\>ô⺊ƒ=xOƒÔ–"£§Ð“ØrÝ’b -F³=ÕçP½5´èBKŠŽxUÊ|âSCnYnuÛ3»¼×æ;³Ææ|¼'Ë|eßUխ앚CcCt¥¶¥ýŽÚ]*#†¢L¤q”Ê”ˆH†%$ ƒ0N_Öî<·ð“*xÝé,%ñûSó–#Û6Øh¯ƒ4k`<ÓË”-ÔZY^ÙÙÕÌÕÔ*íÌçRîx&bÂõ¨)ŠœYBÊ®³x5«-RZcVçvÐã‚oƒËá«íÇU!ì»AÒÝ~ìì-O¹-”Ý„q¥°‘q‘ÛMY°5·ìV Xvìã~—ÒØMW¸µ›GSÛ…ð¦ÉèX¯†vPw»·Šî~lĒ݀š‰ÐÒžZÙWÙwë›Ì£ØØný¨¸²»âO?­ЧŸ·vþßXÇVP 3[{»kÿ”ÎÚ"±ñ縻«1»aýçævKÄ"Q°¸Ý¹7Ünª4¹¾"–M²\I“ Z ÛQSË£X®Zú¯]Ïv±%,û^j«Ænª‡ÙTÅná²ڙȥݚÕÞ·c‘Y!s»qž÷™å‹ÜÙßÊkèÖl´ìNÑÖ+oÛž7~miRÎëæ˜G¥ *£:%~Ü_xÖ†z›Tq#ÔÆ‚XnÄÖ&©AbŠ2–$8ŠYHe”1ˆ1NhÆ N©D”Lè~‹Ê¶®w}¦ˆÙî–—ωlÈv£¹ÙšNd»Ñ܉lÈÖ‰lÈÖt"['²u"['²u"['²UNdëD¶NdkŽ:‘­ÙpNd» s"['²5áœÈÖ‰l7šÿ]D¶‘ 1çD„”¤JIR1‰"ˆ…)JE/E¶Q˜åíO)à=¥^Q¸³œµÁÎ&3_§Lró„Yv¾åç/³ }2ÉÑ× ³,}1ÎÓ×1³Lýñ£¶­rõGdS¶¾ëó¡@r„DˆDPLR™D,ŽA¿‡b i"īῦ1?øðws'1·œÄ܆qsÄIÌ÷Û;‰¹±½“˜;‰¹ á$戓˜NbnŽ8‰¹“˜Û@ê'JÌ!ÍHšHÈ’D„2²€Q,q©À~ƒr&Ãtc¢~ØÝªÍ›{.Ë Ó­ #¯ë—wG',‚ËÂ4hŠǘŠ,C2KPáL lÑéïýêK'Õß ˜ín:±¾ë;±¾àÄúÍX߉õX߉õA'Öwbýÿ!±¾8QÀQÀ{'á7‚„ßIø„/ê$üNÂoÀ9 ÿ6ÌIø„ß„s~'áßhþ7‘ð‡ h*!”“€dYJP“(¦Q(S@†âðeUÏ#øYQôе½e¹×HÃïž­wÏÖ›¨õc,. 8&œ#"Œ€ 8Í”#ÎÆT„1Ú©Öÿ#Ý ö`ßp‚}Æ öM'ØßoïûÆöN°ïû6„ì[ N°oL8Á¾9âûìÿw*»·Zö‘î¿Ä”x±’ï3žeŠE„‰@L_)‰„XSœÆ, ÎÛ’—Ÿÿ$ß?ôNÕ¦M‹ÿ‚3v=þ ¤$ DšrA¢Œá(eRw À0žF„'™¶Ö¤DfPêüQ¿aRHzÉO”Ÿ—-4’qèÅßz:¢kgûkR›È ?:ਸ?Jz£ýÚÿ˜ao’ö&£ÞdÜ›Lz“ioR²?±:Mé7ßúÕ¯UŸÞÀƒ§oH"/õRaØè¿ä@·>ºFìˆíhd—&,`é¿1( %M2Ê)i¼Žív?ÉêB;Ú¹ÐnâB;Ú¹ÐÎ…v.´s¡ÝÁC;.2Ä¢”gœ¡bže‚$P¢n”Ä\&(NèëÐN5C»·‹I¦Í¼(¹ðf™_³–oÙ_Ùf?òY 0ó8á<42TÀÍŽ¬ çMÞ>˜û"ßòÜáÊ¢eŸýØò$Ž¾Öª†-ÛâúS·Í¸ÝÕm›·¬Ûì2qÎÓ ‡!–€Ó$õh 2™"‡œwÒ¾2{7Æ]Bà—ìC\Bà—¸„À%.!8xB'!ŽÃ’ˆðŒ D")ŠXã@Jš"Âh&£Õ÷ èàÔ°|D}ôÝ…Ø<¶[ë }¼-çÝÝ®·¿»ÝÝèäÝå×kïâÜò‘ïúõúÃ¥íg-tàéåçÿ|¼xßœ²rçÕĵª½£>_~¹îõy¾ã®?œ\ü«Çñ®/»ÜKuOÄuÖ~÷‹¾aÌ¡u[#&@QqVÀˆ«ÑùéøÓÙÕÕÉû³«…‡- ¹l `(†ÀCÎڰ̇ÀÍx2äRM†ôötH³§óp.†ÀC®ó÷!½}S €gCÆv™ ‡ ’z<äRÕíøÝ—|3äj5C†·ºépu;n‡¬?¦ãÓ‹aüõ·>ü*¬íì‘YX+@Æ”0”Å" aQ3ˆDˆ3‚SDP²!¬Ý­apQ­‹j]T»cš»¨ÖEµ.ªuQ­‹j]Të¢ÚÃFµYaB!fqP†! EÊ8)ÓÁ,‘œÑ´Óêò QínùÆþ¨ö­öåuf^Yé?Œa‹Žaiè#ïô3AäEAï%€û>ç^p~üé.ÏÄ*­6ÅË­(lm U$&ÕÅôåÖ/—¯ƒáÖOÿxö£©fªLe%ž/ìË­YUÍ_ìíeº¨ï´¾V¡Jë½\U’žÚãç·Ä\&×rªð|Ôîw·°¿"æ×S¾Üête:iõe+éx”ö:q·ßéÆ*ÆJu{øÛô[¢¹z¹5Íd¬2»%d™Ì^néÞ°O«z„šº %pååV;l…Ý-Qª ;µÂöÖžMf²˜ªÌL…¬«™Ác°q‰u“ÚÚª0ùcK@ ìEý^»Óé·Z[ÿÄ…©„ÁÒ·¥®”˜f&–™89:9¤d,­Ûk·{ýÞ`'|ˆ_æ´Ð½'S–*©²=áMU¦ðàÌtŠöº2s1Ñ™âUV/‰\©.Ã÷–j<¢R®´µ…*N©ZéÔ [¶Ói¢ïT*neYÀáV$§"^ˆBÝÂnU]?ˆd¦’kû{’Ýž¸'Êy~eæÕÕ$“Sz1Je묂 K¾`ÏO3YNejЇ6"èé6už¨L삃Ã[—,ÌŒ±ªSŠ7…ÉÕk\<,ªra…. [Ia[š¹*+­¬HµdIŠô™&þDÞQ©®ðºÎ9ÄñÖ?…%SLô´.•€Ò´9äHµ•q¦¼dA®s,cÄ­êoùxXÞÅ¢'ºÀ>I¦dQÏC¿K¥òy†,½Î6µ¸³Ÿ¦°mj’:WEåõ¨jÈ H™ÊæËû’ÄÃ[U) ›ñ//­õšýD9L^²Õò› ¬¢‹ ¦³ˆâ„_qƹ/×_{óÑDìu[­ÈÐXf™ÈRgÔ]ˆîSh® 6m®nT¶¬=ÈÈhÔtÛ;_Á™ý<Ž:ÃhÔ꺽±)¨‚ ¥`XDK\ë,%C¾¢?ÎÕïµ.¿H×"–e5{`?¼&nÅ)>E¦mõ׫–滣QSÅ$‡C¦aèr!Bk„]ä(ã×–T ¾lŸG¥oõû½n÷ϲ®ÐnA6eÁ‡“ãà,)ûðè¦aùÙÂpURVx ä|žé„C4¸ üÕp^L¿IøNk8\¯ýn¬+á|ŒêV«oZ½Ýn{ÓèBW”€a¶É2ÑÎæê{>ˆÎdÔ‰5hÉn¯7œÈ~_¶ÓtÒÅíö iz­aÔµÕ#ÀiËä 7Ÿpó 7Ÿpó 7Ÿpó_7»­I»›&½ŽN ï$A”vâ–L¢¸ÓÈ|>*%ÁÍ»aÿÊ5²OÐùOÐùOÐùÿÐ)GíŽì£8 z£¨µ£!àªÛKF£Þ ÓBKÚŠí¤N”­ÂÚì gµ­pSœÑàO3¿6ªÐÓÏuíw‡dHÖU\é`P®®ã÷‡â»´GÝ–ø €ÙAz}ܿ ŽÄ  ÿÚÎs£òìÛè»JW_xou5Ïÿ@à?‡ím¥dJ¥‹¯éVÒÉóÐå°{¸š) JÛ.ýÂ*²d €6¹dSªƒ¸E õ‡¸©B”uÁW©Êó ﵇süÕoò[^«Â9 êGN«÷ñ«õíFýÏ‘T(|U2cC“`›Æ† ^ðeà{¶€!ªÒ¤uÂ!×!Y!ÞŠW³Ú «ÿ îQÃ&Y é)ERJ;sʪ;.†¬Fk8D±Ä¶ ±$¬ÚþšBÐÖ.¸(¶Àì Šò£z÷:Qû~¡q«CŠïwÄQ£žÓŽ+ܼ:‚j%Ú@Çk„ùŒÃ´2x›™tMábd)"ÕéF'*b{æ;n/j±qF°?rŠ`"X5 vvÌÎVe€T•ª™¬°KáYÁs½_g°¶_\O&0*Ùz’¡Db…‹‹ã«©ª®,h‘J¯=GÜÚí1© †æðÙú‚Ag¸¶ Þ©ÐdŸÄ¤Hš™F(9ÿ;¯ë åTA0O‘pÀÛ+[b›6‹®Ê É»nÇot¡‹ÄGA¼+¼„5j˜‡i(%#VWwTàQ}מ±¼¸)ÀK&z¥+¾û½6Õû‡ âÁÅÛ}÷[ܲ±LV\¬&A—(gp­àxuË/‰ÚõE*cĶe V÷ÄÔ)¸-ª-顊)JH’IkõÄ£ù‡ÔÌvh×[dV V_ `m°ÄLÞPÔQüd¼ƒ ôÑ\J6LN˜”Ú‘I<’Ë99ö’ƒŠShWÌÌ-B¥Kf@yFKÅüÉm %Y×)z>î'½FkZ—ÌVІ _ g%¬—eŸgÒYX‰'[ìrTÝ6Ÿ hOA—=&ýrrabò—LÁ®ž”&ç÷;akïòøBD@I\¿0l>ÖÔÙ}I=e6µ­f¹SäÞ qê¢IË€¢ü^·¿K)©-m¼~s—CBð!<“ëL–÷VØf·;?ì8¡¿çç¿'´¨Lb–@oŸj»û ¥Yfà®ë5`j'Ÿˆ¥Æž÷d 9›»kÖZ†-DZ۸$5p±gxPsÃI"®8(C¼ï!©8(Ñ¿ 8›/S‹Šú,ª]gÌ[S^»UÀàœâMÅl€õŒ¹nS¹M5Õ3ª>1UkzÏ%™ï‡\Jïz‘ܦNð£‰MV³5xf7ЕXM5cò”aMVðÆ6'‚£­‹)Y¸Ò’§—e×3`Qý$‹}ªmå*G2˨ãØqè×X‹MªÉã£woÏñnª&Lý\Ø[d娥üóº°zZ m.íõsX”€MËŒ¦ÔŠAMÝUÊ»_ÞH(á˜eäùIË,g/–ÆñÛýÓ7‡/ÖØÂZ­îŒš—Èß<{ M9‹:£Á°›ÌneüPW>ˆúÃewCØè*¼®“o n;¢ tóJôÕ­R…ÇÎ÷ ÔlõÄ…š 2ÂG‡UûXâÝÏã è-n¢°'È=’0\3@Ê)º/Ä,4ºÏW™BŒ*tø·|¶ …Ñv{)Že]j—»oŒ¡¸P]-Ä¥’y#XaÁÑ›C~4Öô8š\_È??^ÅÞ/LŒ^>59*ª%š/ÄTRyòN¹77Y¶íB‹Ì p‹‚h*»2´½³+þ1íeÜDALN¹QJ—̺úXÎY–‹Lœ Ç´â„ø&’e*ŽÕ®| {ex'Fe™*½:~RâJäáxœ–`“¾`nÔ«Ü‘Sšz:ËØô´ÈÎURE]*Yñ)€€ÞÃÌ‘B¼+¯á §¤žU÷©2›²‰HDî°•B¢ÞH a˜쯂µv… §!· +*ÑÔøLK†·M-šseAØNK™rÜž!ã¨HSlŽ~ Ruó‘’”Pí.€ ÎãyMÆÞƒ{h'ØfÓ X lPp ¶žÏMY5•U®tc‹”+"ðÆycnPtèàE†Õ|×U3ÛBØfÌÁâ”,]3J´OÔ.U.#K•ƒAPbo"ù—KÑö!+e]Çë Îrv› è,œ½»$è×)ÿ¯˜E¸Êýùžˆ3]ÐGmâ­Ò5²žŠí%lS©Û b QÑH$¯e$”ß9JªF1Ûa -[Å`5ƒ±ÒÀʉBå‰ çÚCòP]eì]äØ³Ô‰·™sE–Šmbø0Ñ®ˆFm÷GÛÚF¬Ò°ºµ\¢iÕ †)¡J³Yµ&¥R”¯„ú÷t11¡¾U&&ü4ßKÊżÚCÁ7‰ð͵gUží4Žßåv)+%ùg>ç¯Ç¢uÚ̾ŒFQþ£áÎ+<\ñÛôë5hHU5G·.wt±P¹K²šøï?×Íè¸ÈuüJÔäÚÕLÆÏYž»ñPøeŸSôœ^^Þ«Ìí¨e@ÜPÄð©„£\´#Úhžd9ÆFäÀ‘M÷–Z½ƒž¬Î¹§™T‰Ø¦áÊ$Ñÿ‰ ù€È¸ó4–}J]ú^l#KM­g‰ÒÅí°Û¼ÙÝiãF«þž„š S\5å«;o!}V…s‚°iœðHkD=K²|²H¨='(¢Ù¯ùú -õ}I-gùÖ‘l¥9O˜-» M5Œ'·4™"îï"´>Ëܓ̞±»/C6ÖíÍ©uQÁfHæÂšâãc\K®¸VL\«+NäbkýJ®¤6uÁíZ“‹eMÍ%;޳b£»¶Õ·êl–Ï›;±ê‹˜Ð»‡ÙD«&Ï?„%ÙŽáÚ@´c]\3…¹›À®7y?þûßéM7°¦W÷kê‰Äi*WŠï²ê‡™ÌŒ…+jõÏ)²%C~çßM«üÊþ„°±,- è˜'ý<£e‚ ˜:Ööy5WIDmªÞ.±¨Ñ2´N“ëÛ)tËÔd¦ V`›Æ-‘GÑÄ |†äüHÔ1Ê'°Êâ»‹Ï †`‡™øXŒ€ic”¯; 5c)+ß¿ó]ÒÕøòÃ:®mWáïÝ Š; NJZÎåïÈÆÍ'9«€4ÓGœJG+î¨Lx4áœaÊD3á¢B¹Š_•K &WĠǣ0Ͳ†ßaI"ed´{’Òÿê*IU’!㳌Á™Î‘¸£‰ë¯ºè´§¢êºµ²7Ÿyº#/ÕPJ-޳"€ôÄÑÚ•(MBãNÔ›…©Ã±ž1If©£Q¿ÿ-Ró‡n„¥£s•ßç4L`îÄ¡ì:{wurqtx…¿ß·¯Î/ö¯Þí¾¡Þúš÷wxlBm¤;™k8PºêaÙ=5@æJò´‘|,Ú‡òà™ G²gjyvø)Þ-M–Å4uöþnrÜ‘ë½Þom&!E,©JëTI>˜Ý?¥it/hú£µqÈ­YZ‚éhFó&‚÷5 oê}ý”Îî3>·ÊÏJÍ=2Ñ—D4Ðá’á¶à#Éæ\Ù” äB1ã!ŽEÝwM£Iø¨ù΂B‰kª$6y®é‰› ›Ó×a¶Ž§ s?£gfq€ ¡UðñS‡+W=Ÿwá~@@SáÊU£×!Ÿ±`÷†1ö6Ÿð'=4]¡89¼|{v°~æ/+?A$`åu#¤uéÆÿgÝOhl@'ƒ+tÄ,¨P€Þ»Aõ§f=)âÈ‚œà_Ÿ¬@Íækä{É:qÉš[ýYÆšåLb}\þ¿íërW¶ß?GOÑ)ÏDä„Ñ÷nš¤(Ròp,J IÙžãqáô $,@Ð%:•7Ë·¼XÖeïîÚÈ55)ÿËuæˆ$Ð{÷¾¬½n{ý4\¡Ú¾|êBlVz“…N¢1ºŒ›Ø¤æk.­~ᜌ(zíRžKV@­¶Ü÷á åLêèüjžM]ç'çYÍÁ}»>º+@>û¾ZȼËhâ;‘t2=“dDzåc¿ko gUŽibŽ8?l…³Â:˜½ù¼ˆ‚Fo×òɲW,&=ãmÞ•üÒ Ã0ð¿@í%—S ¶ÍsÕÕ<2‡]Vl™Œ& Kœ^¾Q9+«»/Óô Ù«¼›«²k·õU{´™-szCÒ ¬ƒV0ÉÊ( ƃ¶¨îgå)Ë…\KE¢“¥ [¯‡p$®N'’’³«y_Âä"M¹ ‰Ód’àeƒ›_eµÓ·yYT¥qÍÄ ]‰W×'§ß4ËÏÃq=Tðà°£…U“eÆcfß¶qM«'N?ù--i>OÔ“ÇîE8ÿ¸ì ÉÈr³I=lÛ ª¾Uö%TÎ@ñþÕªy© ­t÷-$m­3XÖ?Ç &޳IãV"áí“Åzèh§ëïl!>Í8ñ@,Q‘Æ’¸qmbK%«ùƒùÄ>4cÃøØjâTŸ&§×掯uP×\¶ñK–¤&ìÆO磺óÉÉÈî ¢ý°¼}ÿ¹Ùl,vÞg&ÏUÎmïŠhgícØG(Ô<†Ÿàô¦4ÅCýæsIJ:éÏ© IMQ?¨¤årÿÕZÎ?—åûBå{#ZµŽmç é0ÏJ^™½G'2Ãçd¯ª>Çg<ÿƒÚb…š_@Ý5ö§>=LMVO„¤W‰aÁ F–‰G¹õ£)uFI K‚¾ÇŽçxU/ŽóñôØtn8ÏkúÖTĹû¬''ôüŽc„ËcþŸÕÔÑLÏ#>¹ãš¿o/¿¥WÉœI ÌŠÅLg»¬æôüÃ}¥ß MÜÁÀý´FŸ/Å`aóÊJó’u™ì¾ BÏì-j©Ë©ÆÃ “™Æ!åÓo¯ôvÊç5‡Çձܬ3FŠÊ—sè÷õÚ¡SÜNoîÇÕ§ÿ^LÿLšGâÒxV7MÔXbkKæßÉ÷“]üw¤ÀÜÛ[kKƒ$šûƒê+oÏOœ÷Yù†–£ñþít1é©’0µét¶…'Ö¾iLV¿èè=õ™dWº©wd²,e\¾ýzo%iÄ~³|Ìáyþòb}ÏMÈq¦ã›ÛåóÚZ}cËŒó»"òÎ?8ÔØÍGéå÷e=ûóÛoÞ˜‹6®vvõÎDØôÕçÑK¸tÌ>Mg7i\6ltm"Ýí-‡f¡Ñ¹zsÃé}ô|°Žgë[‘ Z‹?©“öa(´ˆÜ$~Ð]Ð/$ãL=†ÎÉûsM^[ÌrÖ‚Œ·EÞP§‡,¤ÞlÔ[ˆÓyL§-Ña¿‰bÚ<“·×ô¾q,h‡h4–&Qú@B²Ã›w켡*ee·Û3™8od-j ¼³˜ÍrÚÁDn·×Ôh,hŽº“=ÿÎOß÷^.Hg°Ã‘G8 öw’ h"í ÛœäF¥Ô$YÖéøµ:øÝrøí-?»=º[#›/Øë:lâ15é§QúMÆdµl¿1—Æ&QSó…¤j}c]Ý4sÒm$µÜ¦¬˜tœg­O1è ¨•Ã-œ®&“ž¤²ªX³êa“1ËÙP_Ä\YrÒ¦ìûÎcéô±¯j¡MúÛš‘­Nnc¬ôr®(ºsÔü±_ÿ>LêÓ´1-½;+/0g§ù¹89í$œ±b©vw«‰H@{5ý¨{¥+„#µG$÷Dï=¾}7¤NÞþM¬rÍ]Ó‡¯=7”§œ¬ã; ÜLg‹ªýÖ|•“-#¾ZqqÕFo[.Äû&¦ [#™ÚŠMhQöQý6[§§ éá6ÄAƒ6+êùZH˜Í2dc6Þ‹W°ú<^¶÷"Mâ:âÄ.f‡ÍSãKçül˜E%íI×ö‡õâ~Ñ/5*¬e߃¹´¶ft™óß„FÌóÅYY½T†efö® OŸ¹?æ*ç[™PotŒ/Ùi«ÃÛŠÄÑã.Ñ8LÔƒeo:‰ýLFÏ"Óàz{)òqð[yM>xL%‘q©‡6ÿÚôÖ9È:.±\ãkký·¦¶¹Àþ ®£oÈ PÓªî²ÅGù>/£Œ³;Õµ}¬ÿ`톼¼7Ƭ¶…®çü‰oÓüIœ®j6ñ/ó‡e=1Í’n9,òbhTvjP3i;ÎWKn+ã"V2ÏFü¾¬¼6ŽVÙÊ#À¹sd8¿<'óÉ 2òþöùñ»¾ónêHúþh²ª9¡B2¶õçä”íå+³ˆøi ÎfeñÝT$«”<‹Ÿ²Ú¨“zŠg»ó›®c%–\t¹¥W¢8<'Wôè‹|­Û[gQc¹)m¢¬X<‰o>3Û™oñeÝA1µÕ¦>‰cp9Î%Vcý’/TäIhJtv4‰ö¢ŽµŽ‰J*ž :½}÷îÍÿE‡ *öcÙ¥/þrsØ4²F^ü6wzù_ß¼ÖÄÇwox¸õ±¤h½–_ÈÙ¾Û;æÞµúÀFr›„f Og‰Ä½H)>mīɱ"ð êÑÊi´¸Ë’²ÃuØŸ°©„Ñ9¾@²B¦ÈÆ=ŒßͨӪ®qÐ`eŒ/i6÷P-KþÂÙ««c¾+ÊSg’çIï×âgdšäë‹’=ü’WST:–¥|v6¯û∘TãA¹õ>˜R ÖEÁwïœËj>ÉÔûugO2ñÙÕœTo½&&<¹hKÂðcngŸŒ Ø/Ì7Žñlüq¸¦üúùŸ‘E–=.Ü2ˆý˜æF!ÿ#éCëóhõ-¶RÄÅò~Qížyò„Ò¥nhíhÖœ;Î4Ëx,iSbd9«wâb·îx¶ò|—tóýUóh ¦O·\‚‰ƒ8#zI9í5)˜ÏÝ»ñϦáƒê³|=L R˜$xaÔóYX3®7šÎzœ7],{ri̲Úx—›éÖ׳Ú,@Z#&r"ZmÿÞœ‡ÞÜâÔE½ÇI2ñ££-8¶j\ÌÜL$&GiÚôÚëÍ/5žµŸ÷*t2Ó4M‚nùÚº'l•“/¨bD£(h¯.Zß èVâêtº:ðÄèT´+è<¢Öhvä.µžX+aêb¯ë—ë†úxæ'?J<@cf—ï/Œ(¤½<2÷Ü9øÿ‘Ó54Ϙ¾7}¨‰ð‰`‘uðEÖx±Õç{gg¾7¼|õõðúÏæn™#Au¹s‚׌LœøÉºå0ÎïÖíjVªñ iÌê ì÷ܾ¿¿¯4ôâÀ:»l©U난º äuw—Oµ6ÒÇ5vÄBÊw?²>oËÕÆ%ôîôê½ÆûNm0oQi±3òad>rù¦ .qdÄ',;ÄP6¾~›"_zÕ êÌÌ7ŸÙóõ½ž¹ÀB°×tn=4™æ[?ý~1»×¢_¯ÅÞE:i0[Ït¨’v©òжå‡ë׉~ÿªóŽ:-äã¬fÎŒ÷ís=ñŸ¯'ðMÃÇ©PKé-í"RÐzª£ÌÉÄsÎÂ×{•ƒÞ~ŽeøÁåø§i™ñmò­Ÿëv•ãkM%™¼¤#çš&€ÎùwWWGÎÉñ‡ïéÏ¿w¢@®°ÑƒÞp©xG 號ô¯,§®èu ç>mgl3«AŽNÛß~þŽ/è4µ~ã iãæ­íu ɨ¬÷ç§Ë{í;ÍãLð_l¹ÇƒB›Ë¦„ÊßÞÌ–¢¡ð`Ña°"MÛF¿?ê±ÏØÐmJ`ñý×Ù|ÜDtøz1ƒ­HŽ~hí\ÂMî˜Ùjæ®'.]“@Ç%Ô4ƒ‹6VÊÈVäìæoHÄà5eréÝ©5VîÇ¥Æu¥þD'gsü·CÜ]܆{²+JÒÔ V#>qöº p`ë0¨besõäõX]?Ô—û0åýÝh¶\ßFöÈÍ"›ßr²¹­¼Qóë–š¢"—-xç'~Þ­QÀ·À_}ûžsÚ3S“À”µ÷1åLظi×Îé»·¯_ȼÚ…zf5´]›3-ìÚ‡ûsúr½|ηéIT²p ¿š £Ë[!Çó¦×Ë3ZXÓ›×c-‹bTÓ&×DGj;ýB?xY±"Uôº2Õ¼üú퇋ŽpÝÜç&œðÂy¹˜e%§Ç®r ´¯;æÁ«n Œ¦Ÿ/+Š–Çq— ¸;‘þÎSOÒø¿HpÌäœÈúë@G{{ƒo˘º‡´Ì¦K¾CGF._¾ýúQl|eKïVgÖ¬éV1{$‘”;¹²¤_ÓØÇ«¯ÏLµAóqM!‘ŒÊÚäÑ46¨~êšúdÎÖ‡ZÜΨ½õT,u=çíf§o볌CIên4EØHå!­mD±Ü숕_nuÇÜí;¸|}êÅ®'›í Eó…šLÕëö[j*z&#Ìß±\áZRKŠÞ¥½»_›ä†ºÞ6ZeÙº%äÆ>ûÖïÇ`oª§^ŽÏ°Çïå{Q"Q³2›ë‰âC»å7˜²%Tydû¼v¬Óè>›Žë[À½½_?åûYìqUxJçà¤pÇ¥Yä¹VŠúÃD’ÍöWø‚0¼G*˜:ZÕR|ÿcÖ·zmŸÔ`ëºi¾h6îCIg9Xr²bÓƒÍÃÑäŽT°€_-ím;› L¶í_ñÉN•½WÝ$³ŽØ/nRT4¡ {*mÝ_l¢µÞj‘ô~ù¨H&©RKݬhîš»ÁyV6ÍËm%é~7Ãýg9ÜI[÷9$…ËhI‰4“•¯¹ß³ë€o§óÅß±ˆAŽ8±Ã“oëï=í~ê6vúºæÝ’%Áál;ùFœÊßÌÝùÃF×[_¶K¾úgn·ª›Œko­Š(— ùSc>Ôéåa•ÓnÉ—•)ÉÒÓì$¶r©ê 7kŸ]Oì̧¯dw¿ðäMµÎ¤¸‰éM'Ú1_¡ÿ¿–ã¶v¾ñœÜåéDiìå—³ÅD)öhµ™Íš™ÜÙøójjÓ„ØOb¯@=ú˜É¦ä}Ä7õX[MWõJtþLÜÁ" ùëi}% ®êÜœ\ïšæctÉ#çõÉÿè„yñõÞA¶oÝ7›L$±ºä?V¦À­ñ¿ñÒécClÃ:=¾rªN†C•ÝêòkÝéRPƒµ’gŽMçfèy¼K2q¶xêü(h"ʬ+=Û'óÛŒDO9Å|µ¿g΃ȚÖ|+ƒ7•øeñq “ų*u(ƒ”Ó-ìar;ŸgÝ[böV­ˆ'5ã&ëü~½³ùãš§ß÷ë˜1N–¬_êâHjËߊvj êS¹ß,÷‘ö?Eä‰-™ _ÏVÁÁ¥2oÍ]HG³û—³Ù—0Mžß¦©UÖç­¡,ë 9à5OsM†ÐÑ>äÔs[<{Y¿Þ—Ùd‹êçyI`ƒ’’½ÚíÁ‘À7f"ì=֤ŧßÞ%AÛÑüéM4š ¶Ð‘õ¶-ÑaH›v¨¥,f†3óv±Æ·{¹.E°Æjà³§{î°CÄMä°©WÓ °csœM>eµÈ€š#÷ ß¿ 7{Û]ŒRY@$ˆ½%½¹]û —u7÷I…ú¤†ŽZÖê`åÛ»¬¢héD*þ8«:ôJ?Ü•«åÞû’n¦rO&“ÂêsO_.Þ{¹^Ú\1XÛcM$_Fˆ¯TŠ²Ð¯g¤¥üðr%Å‚á¤f»^ìÇOØÝx^?5`œ¡Ê7jD ’Šö›FsÐ/Q'¾ oün[ÏíBj¾PЦwÃa:µe<]‹¨œ°‰*7ÕX_µ® ßowüwÜþ6ñãüåEÿæ¶9P]©{£9ûHúÔ™½5q¦·&È:d®Õ¡Üö”’©'s/oKºv«&ô\/è“ÉÕ<ŽÅ”aóM*ñMc™§c ¾sgårx[Gì–ï$nÌ.}Úì?´üåOœ}ÒÜÖâJÕ&Ì#iIåxÁÎbŒkT:3F—¯NÎ.^õ¯VW¯$3T‹Tè5¶Ö¼ç– ä¯/šÕdüxÉ â°±8.Í­v‘Ê,Í¥v)~~yá”è” µz££Ö¢Âê?ù)j+©±Rl¦p§;_Û$j·{6ØŸN½(ö}ï( ,VGÄÞ¤œ°ç…^QNâýªÑƒÝØžBw\:YdB>æ<Ñ’vΑ96BÉÍuL+Fv¯Éh³ý4MIçiÑ+Õã;+dH¼üðµš%VU“£ ^-Þ˜uoÖ¾} ;ˆµuq”³:ýil|?&s±“Ïh4B{¥©‰;u²Û´[·c§û|6_q0ÚH/Þ`Z”µ’ÅùÈ9,5E%¾`ïöïpI`û˾tn Ž$ØØ:vÜ¥ù£ãަÔâµ9]Ëc`q³çIš&ôìnéûnÁ½GƒÅ‡÷'—§»*ª[Çi³ER©¹¹)4£5JÊÖ ÑÒ§bE+›…Ï7Åö}[ð˜Öù…,ø8 ü½!i’ÄnÒñ3R,×,œ¾Òè4iÂÔ»ÚaòŸ8$µ¥=/‰Ö‚y¥Ùe;Ÿ›ë½s›Ø ·*g©\²–S´®¥Èäž#Ga“¬Œ ˜ê8=®Äe.(ôE(]©È4þpåü—ìnþo’콨nV“Æ1·VÛŽs¥Lè¢IÄr*;˜<8ç'Q°ïDÇAëœ^Hž¹í¿æH­ù§m‘ɮަ‰2µÍ½ï,˜ÎzagžœÂ6QW4JVã´À ¯{K•Ø“ ~òR\q‚e‡”Â1É_b´FŒ-IËžnÊ]ÝñæløæüååÉå߆ïO®ÿÂBpÎîrîú'½µÊ{r]a_Ñ‚ ·qžïu®±jgŸ'ÄS­'Æâží>œçÙ*ÜÝpºµ¿^³w³òñ)¼k·Åaà†ö„ùÐ8b½SÅÇî¾ᦠsV”½f]sF ÇTäöð –¬PÖ»ª’nÅ¿yó´vþø¿†ŠþßRgBtµˆnôŽýæªÓ¬Õ™Z³A)+?Žla Íüž÷WyC7ñ¬þhÕí-&B×_÷Òt3ŠIù²…¤R’R#qzgÀÊÏ JGñÏ;LÌ#)õcŽªg²•TåtåJnXKQUk ‹ØjÌÉ.î|t_9æGnßœ¤`ÏgzqÜ âæ3}sÂrz{öÀ•î{&!«ïZ«;hj³“úÊ—‹DWç>4uËk ÅÖÛÊ6Ù/ÄP¯M<Ž,ûÔ6ûL¯€ðÙ;37¿÷~jØx´õ~nw`½|W8m:Š2ÒÜ0+YTé(õËAÅî–¡ï§Á ˆÓM8­ª@ÔQkI@ÔQ D-µ@ÔQ D-µ@ÔQ D-µ@ÔQ D-µ@ÔQ D-µ@ÔQ D-µ@ÔQ D-µ@ÔQ D-µ@ÔZí ˆZ j¨¢ˆÚ]ƒÀ@ÔQ D-µ@ÔQ DíˆZ j÷mˆZ j¨¢ˆZ j¨¢ˆZ j¨¢ˆZ j¨ÝY颈Z j¨Ý·e j¨¢ˆZ1s€¨¢ˆZ j¨¢ˆZ j¨¢ˆÚ}·µ@ÔQ D-µ@ÔQ D-µ@Ô¶mQ D-µ@ÔQ D-µ@ÔQ D-µO´D-µ@ÔQ D-µ@ÔQ D-µ@ÔQkŸúÛ jý8tóŒ”ê(΂påYEë0 óÂ÷Òpä†á +“Aµ¨µpZ2RÀ¦›lZ°iÁ¦›Ö›lZ°iÁ¦›lÚg`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´»Á¦›lZ°iÁ¦›lÚ)Ø´`ÓîÛØ´`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´`Ó‚M»³Ò6-Ø´`Ó‚M»oË`Ó‚M 6-Ø´bæ€M 6-Ø´`Ó‚M 6-Ø´`Ó‚M 6-Ø´ûn9°iÁ¦›lZ°iÁ¦›lZ°iÁ¦mÛ›lZ°iÁ¦›lZ°iÁ¦›lZ°iŸhlZ°iÁ¦›lZ°iÁ¦›lZ°iÁ¦›Ö>õ·aÓ¦QÆEá—Aè§ÕÀ§Ó!B/ÊFnT Ê R7­²hƒMÛ‹‚|¼¡„Ú%µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P BmB-µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ{A¨¡„ZjA¨¡„Ú)µ ÔîÛµ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P»³ÒB-µ Ô‚P»oË Ô‚P B-µbæ€P B-µ Ô‚P B-µ Ô‚P B-µûn9jA¨¡„ZjA¨¡„ZjA¨mÛ¡„ZjA¨¡„ZjA¨¡„ZjŸh„ZjA¨¡„ZjA¨¡„ZjA¨¡Ö>õ·!ÔfÕ¨p=7¬B²Ï}ßõÝØOGI”ÅqEsã*L“²|D¨u„Zj— Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µµ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ôî¡„ZjA¨¡„Zj§ Ô‚P»o Ô‚P B-µ Ô‚P B-µ Ô‚P B-µ Ô‚P BíÎJµ Ô‚P Bí¾-ƒP B-µ ÔŠ™B-µ Ô‚P B-µ Ô‚P B-µ Ôî»å@¨¡„ZjA¨¡„ZjA¨¡¶m„ZjA¨¡„ZjA¨¡„ZjA¨}¢EjA¨¡„ZjA¨¡„ZjA¨¡„ZûÔ߆P[¥¹Ÿ&£*O’2å•dƒ,ôFÞ JKo@‹l¤[ µ½(ÈÇKpjÁ©]‚S N-8µàÔ‚S N-8µàÔ‚S N-8µàÔ‚S N-8µàÔ‚S N-8µàÔVàÔ‚S N-8µàÔ‚S N-8µàÔ‚S N-8µàÔ‚S N-8µàÔ‚S»WœZpjÁ©§œZpjÁ©‚S Ní¾-€S N-8µàÔ‚S N-8µàÔ‚S N-8µàÔ‚S N-8µ;+àÔ‚S N-8µû¶ N-8µàÔ‚S+f8µàÔ‚S N-8µàÔ‚S N-8µàÔ‚S»ï–§œZpjÁ©§œZpjÁ©§œÚ¶MpjÁ©§œZpjÁ©§œZpjÁ©§ö‰Á©§œZpjÁ©§œZpjÁ©§œZpjíSNí ‹*ßõ³Üu½0 -›°Ìsw”'nyù¨ 68µ–M«Ždài§žxZài§u€§žxZài§žöð´ÀÓO <-ð´ÀÓO <-ð´ÀÓO <-ð´ÀÓO <-ð´ÀÓO <-ð´ÀÓO <-ð´ÀÓO <íîA`ài§žxZài§žv <-ð´û¶<-ð´ÀÓO <-ð´ÀÓO <-ð´ÀÓO <-ð´ÀÓî¬tO <-ð´ÀÓîÛ2ð´ÀÓO <­˜9ÀÓO <-ð´ÀÓO <-ð´ÀÓO <í¾[xZài§žxZài§žxZàiÛ6§žxZài§žxZài§žxÚ'ZžxZài§žxZài§žxZài§µOýmð´AFa:ª‚‘ïù?ÏiOUaûQFÁˆ,æ*wã`OÛó½|¼¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Ú% µ€ÔR H- µ€ÔR H- µ€ÔV€ÔR H- µ€ÔRÛô Z@j©¤Z@j©¤Z@j©¤Z@j©¤ÚýÖ µ€ÔR H- µ€ÔR H- µ€ÔR H- µ€ÔR H- µ€ÔR H- µ€Ô>¤Z@j©¤Z@j©ÝcR H- µ€ÔR H- µ€ÔR»1Ù€ÔR H- µ€ÔR H- µ€ÔRû{†ÔÆ^™eR…^ì…ë—‰çV¾§yn‘¹ž–AìnBjE¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Z@j©¤Ú% µ€ÔR H- µ€ÔR H- µ€ÔV€ÔR H- µ€ÔRÛô Z@j©¤Z@j©¤Z@j©¤Z@j©¤ÚýÖ µ€ÔR H- µ€ÔR H- µ€ÔR H- µ€ÔR H- µ€ÔR H- µ€Ô>¤Z@j©¤Z@j©ÝcR H- µ€ÔR H- µ€ÔR»1Ù€ÔR H- µ€ÔR H- µ€ÔRû{†ÔfEžçn\Fž_ºY8HGnâºY‡^gÑÀ Ë ª’j+¤¶ç{ùx T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-PµK jªª¨Z jªª¨Z jª­€ªª¨Z jªª¶éPµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµ@ÕU T-Pµû­ jªª¨Z jªª¨Z jªª¨Z jªª¨Z jªª¨Z jª}T-Pµ@ÕU T-Pµ@ÕU»Çª¨Z jªª¨Z jªªvc²ªª¨Z jªª¨Z jªªö÷Œª­F~Å[¨LÓ¢ô£<£îf#7ËK¯J²"ü")?±¨Ú›{K¦‡Iô \Z¿ö‹¥% áÀ´ŸªÅ6¿µùqSÇ·-EÞ1†%‡‹Èvß}å¹iî¢G=Ýà ¶âD«…mÁvÞÜsXdYIÝöߨá0 <›7s*v¹ÞoÓ9Ãw‚è]oîûóéÐ'›ÂfІÄP‘VIýÞu/wp;?õtN-²JÅkŘÝH·³Å"ãôØ\#¯fÀ¨7î ÝaÀþ™u®k:VóªxT·Çõ}ÚmfYœÉ¶›h\ˆZÏWãlõ)‘QÕ—³yCŠ=6¤$PËÍZJFõ¾57x¿$ªE»Ê l¿>lFGwyò(Ë·]ê¤4UV^®n~O&™óU“ö¢I¸·"y4›.ëJÑ wfaIMÛ\rŸ9mµÚÁUç~“ɤøþÍéðͻӓ7¯ZsûûÙBòÿšÍ³)—­o•l<›}t¦ã¢Z(º‰Î]s²Év6å;³µV¹gù.0®Æä©N‹®Ñ_®Èô;{õæäoW'¯_iåù²6ç²¹$0/µn“º¡ÇóÊ,ü8ñ=ï ­ÅFá9‘¼CýÒòZÀM!æ^‰[/™\/Wó±„ßv8Пê;‰mõwî…Ê&zÏÏ̾\ªÛDjŸì¿I4ú«\êlïý‰þ»¨Êñê®wIÿ칑üªù¯ÿйÝ,ÎLïß:ùò¬,rR&ŸÇ‚¾j/Ró•ù§Ú ¶¶ÇYêIÿ\™’½Â¡j.Ðô×-]äÈùf¶à‡tÐ1j* qr܈¯¼?³Õ¾¨šÅ¼võVÃÍ&15ß2{M`’CÏ飒¶Ü¼cÞ°u~ʆ}ßÿpýº—wvãßyÀx&mÛ¦J…áqÑl.ø*Å7W§´3ܾ›&qoЖuu8sÞôºTv}gÕ´&–"lËYÖVžjB•Äÿ¤ä)PVîÖæiòj¶…vß›`±!AFÛYßaÿ?uÏ= ãFÖ¶«ñöªvÉÒ§ùbUe¤¡R¬*Æ­º8Ùƒ¯ÚÉÉ.à“ÛƒO¥`SFûi˜z5äæ¾':XïÜMÞöîò~“QÚ”—´·æÚæH³¹H뎔 çñt9_.†K}Ä‹íåš-cŽdÍ÷¤ñÐû7¶–”d­[v0/zý’É•ît¦í‚]ŸäÖ¤³/'j‰ññ[kat3v†o_]¿»¾=¹P«ýÅùé»·ú[MM]*ç€÷g™ÒÑ"5¤/H»å„-š ¾Y$Y1w"‰1®&ó]2JŸ¡4}^S®ÖVñ(tõh£B˜d6¤÷³zy¥zÔ·c.nÆÎ1ùäúc÷O_ÒC× »BÞvˆ«×îàjݹ`ëËåÀ§:JFkÃ"aÝS6›ôÒ ’¦?çžž_ÒJpý0µ5€œ\ž­z‹-—ĸ#Ýl¦ §ä~;›|¤åôÍê–‘ÓçµMÏT ‚ ºÁâ ˜Í&ÛŠ) äF»: ÿ1ìSïÄ^jc”<ªõø¦®ÈöOñE;t5ý(è…lnν/Xm~‡‰+ߟ¾»¸Ø€p‹‚)ù‚ó¹T]Þa%Î>Ž·5H«Û_®$Eƒ(KätãýBöÝIJÏg7’=õLØiC剤>VÌÒΔ­ mX ú¨dù2ݵüŸIê{mMBz¶fž~~¿à¬”»k¹õvv‘M÷u¸Å|ª­Å€Eƒ,%Ô¬ ³Ï&„asñİú¤k׆Ôô|ÞôY¶Bô+ú4ìóƒ¯ZØŽ5½g‚oµEøksw[-v‡k/›rr©í–k"ž0*s¾—lGìê^ IÎÌëQîùÙ ó\ú¿¸ò«Ò‚Q˜äaA˜»çóÞExá]„wÞExá]„wÞExá]„wÞExá]„wÞExá]ü{‹2w³(-ò"s£*.ò¼ô“jVdAŽÜÄ‹QâÆIøØ»X/à]„wÞExá]„wÞExá]„wÞExá]„wÞExá]„wÞÅß³w±t‹ª*Š4÷‚ÀU^šÐI¥ƒ|”ºYEˤ(¼|T½‹Z^F8á`„ƒF8á`„ƒF8á`„ƒF8á`„ƒF8á`ü;c2ââ ª’È/ò¬tý¨¨h^²4ö£í.? óQYã2[ìX|‘ì°ïcàý‚{ñî㬚Ž2Ý(l‹Ÿªòi¹ËEÆÍf“u0Þ‘súí+Æ F½hÆ4bWß\¼wÎÏœ˜µÃ^¼Y‘br»Õ?ç·ç³™˜yâÈê)h•glQßÑ/—MùvÖ6.¯þ²Æ³ÝAÒ åþñ åtìÛŠ¡Jªxäÿd¾^; 0 F̯Üþ‹ž"V*}•=¶/:ÃÉÊŽùvØsS7é~;IéÜA Ê~ÚÒõA{¸60ƒ]|`ÿDãÝÝ–Ž{aرçÀqʱš×K2…µb+ÍïI® ]WFá¥?øú%CÕhô‚ÁÞŒ×uÓÈí@ó…¨ \†~‡aÜÆY¡w£gšåd@VÊŽaš¤÷j]ÙsìXm´§³ø´Ù­µ«Z¸õ‰ƒ¸E¨œ™š¹Òg©³ž/˜Ò,[±×´%j§\UÊpÊ–:)R7›-ËÉønl(–}‡”#ñG0trZuŸ°ËÝÚS?òíýÐdW©h˜ŠÍdÓ‘ñ½˜•«B ü1ó!ñ±×„D¯bšGâš9ÕgÚ·…y-ƒ3€FzÆŽÎëÝ»Ní÷¤_Z \°´«LhŠŠ°:5fóʵxo\m†3&¿_-g̦çc”öx©HžÙ”}ÓŠi ŒaÍC6§&»Ééë.éû÷!½€¾C'¢1Ud¬=¶9Ÿå o„Ù®d‘•¨&æùÚ§s:'Ýh/â%ûê,šÎšX“åµ6eMaÂtFQèd3\æ&EÀ´+0³9-þ÷œ2°0˜qa0ÜníC\‰¢VWÛ æýˆ¨¾ÓðÎ@‹Œj%{ˆ·Ksh8úå¸ä”µÖ´#ÆÏ©Í˧j¤Û ËÈY‡ýÎ2—„Aƒ&?G•†VWë~v5å…ÁÍuÎŽ æmVO²úÖ©ê"›3ÔN1K2;ÉføeÌíÎø»Â¬þ~ØÑÂøl¼›/ÍÜ–• Å3‡Éã’j£Y²­Ê!g„tþèéåµ2dq¶’?-ضáĤö«N>™1‡öϤQíDaÚ¦9È4Y‹ÉtŒÅzú‰³º{fF¾ÈqÁ®¾ üÐOv°·¶›„iCÀ[36³Æu»„ùøä}¶ 6‘¥F¬»išîûþ‰7h,6R«\ØÕÆ;n)*ÐmM/ì'ñ ý‘ ðýõÿþÒ€§ÿyߖݤáY®€ßOƒÖd‘Áæãƒ,ò(ôÝ|—@™z2IUØ!R¶-úFnCSéä}‘*.FƒIiûõgÏéwÙøièÖ›f\™«©…+µ&¤¶Í`R>,%‡…t7V5 òNVa$fnVll~#ºË¢Îü¶Óž;¾™VåñjªÿÀt¶Ø‘t¶å5\šéÖf5„áx:bÂH qÒ²„iª$VSt×ËÕ1m­Aä®#\×Ú¿ËŠÅlßðS59†x=¹’*0üúÕõõ«ï¯‡ß¾º¼:÷Vl=«÷õ³»ÛÚòx£¶¯A–‡Ñpúw®»»±žW»¾Ñ“ËÎóeÀZK䬥X²ñD’ú“0:yü¾6@=þ¦…=²æXÍ… û¼LËkÙ$z±æ'¼QLo8Ÿ7ÊÄž§4c+¤øç^ÏÆ¤éI$¡9KNC;'§ ò{÷ò¯Ýæô7;Dzf“Û-ãã ¢&Ö#ZÚš09’ØüjñEñb×o#eê€åKTõ.ÛdÂŽÓ›íçúäòÝ›³w﯃—ÿ~þÞÛÿMø´³’²\d·Kû‘ͪZÔ·j³4è8CÕ”£îÀ=¤·eMnª!}ÚN† ë°1³²:ùò“Ae×ì‘¿MEÆÔ 9OùAòþ³G”Œ›úxýñµSªZ.áòºšr¥UsÍ!m[‹K¢AŒ²­¿ÖžhF¤é?‘–|\-‹c²èXËšš$OéŠØ]í«V¢kW“ZßÏ9®¥2xûsá¡Ùœ«ÆZ [áKqð¹*~<ÒÊw •=9½‘לä|ü,jy¤¹ì:÷ó.aÓ¾Ôm%I… ó ^¨j'Jà9çܶÕNèß'âÁiEO'2ÉŽ¯(¤{¶ãf‚¦å3÷”¦tÚ¥]Ç#v{ðU»„ežx~Å wxMþªöä&4ˆ²ù½™¤¬ŠS©Xæ/^š?™_[P“]Êm°»}£û¹Ý¥ÀŽ[w-µÍ:˜åõLŽ~Î,[m¦ûÁ—ºr2kÂÎhWÖñ·óŒj‡~ææñ¨ŠÂ*HI‹¬a›úõ'“ì¶zØbò’À$>ìÒæa" n°ƒøÛ5ð® ÙµöáQ°HÜ"dêŒÃÅØyF6q$~æüÏ•xKäÄã •§žW¬Á³Kæ^\zú R+i\HÎÒÚýã—våŒ]9F×f'¬¬:’Q,¢ŽXe1?›@“>ÓÙ§=í•8q­‘Ú íW[G2N÷l"ðÆ×•lJV×ÂûžVKqÑÖZÝÐv²ïuø¤Ô=žq5‘ý·gÏþH†õ<„libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patch-fetchmsttfonts.sh-2333.xml000066400000000000000000000255231334444677500322010ustar00rootroot00000000000000 fetchmsttfonts.sh Download Microsoft(r) TrueType Core Fonts Download Microsoft(r) TrueType Core Fonts For legal reasons we can't include the Microsoft(r) TrueType Core Fonts in our product. This patch downloads these fonts and installs them on your system. Please note that about 4 MByte data are downloaded therefore. License for the fonts will be installed as /usr/share/doc/corefonts/EULA.html. Aus rechtlichen Gründen können wir leider die TrueType Core Fonts von Microsoft(r) auf unserem Produkt nicht mitliefern. Dieser Patch lädt diese Fonts herunter und installiert diese auf Ihrem System. Beachten Sie bitte, dass dazu in etwa 4 MByte an Daten heruntergeladen werden. Die Lizenz für die Fonts wird unter /usr/share/doc/corefonts/EULA.html abgelegt. optional END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE IMPORTANT-READ CAREFULLY: This Microsoft End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation for the Microsoft software accompanying this EULA, which includes computer software and may include associated media, printed materials, and "on-line" or electronic documentation ("SOFTWARE PRODUCT" or "SOFTWARE"). By exercising your rights to make and use copies of the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, you may not use the SOFTWARE PRODUCT. SOFTWARE PRODUCT LICENSE The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold. 1. GRANT OF LICENSE. This EULA grants you the following rights: * Installation and Use. You may install and use an unlimited number of copies of the SOFTWARE PRODUCT. * Reproduction and Distribution. You may reproduce and distribute an unlimited number of copies of the SOFTWARE PRODUCT; provided that each copy shall be a true and complete copy, including all copyright and trademark notices, and shall be accompanied by a copy of this EULA. Copies of the SOFTWARE PRODUCT may not be distributed for profit either on a standalone basis or included as part of your own product. 2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS. * Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation. * Restrictions on Alteration. You may not rename, edit or create any derivative works from the SOFTWARE PRODUCT, other than subsetting when embedding them in documents. * Software Transfer. You may permanently transfer all of your rights under this EULA, provided the recipient agrees to the terms of this EULA. * Termination. Without prejudice to any other rights, Microsoft may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts. 3. COPYRIGHT. All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, text, and "applets" incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by Microsoft or its suppliers. The SOFTWARE PRODUCT is protected by copyright laws and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material. 4. U.S. GOVERNMENT RESTRICTED RIGHTS. The SOFTWARE PRODUCT and documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Microsoft Corporation/One Microsoft Way/Redmond, WA 98052-6399. LIMITED WARRANTY NO WARRANTIES. Microsoft expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or noninfringement. The entire risk arising out of use or performance of the SOFTWARE PRODUCT remains with you. NO LIABILITY FOR CONSEQUENTIAL DAMAGES. In no event shall Microsoft or its suppliers be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this Microsoft product, even if Microsoft has been advised of the possibility of such damages. Because some states/jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you. MISCELLANEOUS If you acquired this product in the United States, this EULA is governed by the laws of the State of Washington. If this product was acquired outside the United States, then local laws may apply. Should you have any questions concerning this EULA, or if you desire to contact Microsoft for any reason, please contact the Microsoft subsidiary serving your country, or write: Microsoft Sales Information Center/One Microsoft Way/ Redmond, WA 98052-6399. libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patch-flash-player-2359.xml000066400000000000000000000061461334444677500311140ustar00rootroot00000000000000 flash-player flash-player: Security upgrade to 7.0.69 flash-player: Security Upgrade auf Version 7.0.69 This security update brings the Adobe Flash Player to version 7.0.69. It fixes the following security problem: CVE-2006-5330: CRLF injection vulnerability in Adobe Flash Player allows remote attackers to modify HTTP headers of client requests and conduct HTTP Request Splitting attacks via CRLF sequences in arguments to the ActionScript functions (1) XML.addRequestHeader and (2) XML.contentType. NOTE: the flexibility of the attack varies depending on the type of web browser being used. Dieses Securityupgrade bringt den Adobe Flash Player auf Version 7.0.69. Dieses Update behebt damit folgendes Sicherheitsproblem: CVE-2006-5330: Ein CRLF Injectionsangriff in Adobe Flash Player erlaubt entfernten Angreifern die HTTP Header von Client Anfragen zu verändern und damit HTTP Request Splitting Angriffe auszuführen. Dies geschieht durch Einschleusen von CRLF Sequenzen in die ActionScript Funktionen (1) XML.addRequestHeader und (2) XML.contentType. Note: Die Flexibilität dieses Angriffs ist abhängig vom benutzten Webbrowser. security flash-player i586 e0add7ff093ece07c6967f658073bfd74607fb64 libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patch-glabels-2348.xml000066400000000000000000000067151334444677500301360ustar00rootroot00000000000000 glabels If you installed glabels, you should update. If you installed glabels, you should update. If you cannot install glabels or experienced problem with file types (MIME) or you cannot find glabels in the menu, you should update. If you cannot install glabels or experienced problem with file types (MIME) or you cannot find glabels in the menu, you should update. recommended glabels i586 34adf06a0c4873b9d53b4634beb8bee458b45767 glabels x86_64 40f24dc53e8f800fc1383b0ac1b357a7134f8eea libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patch-gv-2350.xml000066400000000000000000000115131334444677500271220ustar00rootroot00000000000000 gv gv: Additional fix for previous security update gv: Weiterer Fix für vorheriges Sicherheitsupdate The previous "gv" update to fix a stack overflow did not completely fix the problem spotted. An attacker could still cause the handling to use up all system memory, or open windows much wider than the X display and crash. Code execution however was not possible. Das vorherige "gv" Update hat zwar den berichteten Stacküberlauf behoben, es konnte aber immer noch eine fehlerhaftes PS den Viewer zum Absturz bringen und/oder den Systemspeicher aufbrauchen. Das Ausführen von Schadcode war allerdings nicht mehr möglich. security gv i586 ef3e9360d99cd36ba269af1abd2e8ac963c8c838 gv ppc 508bdeacfb23a0a210a27e3ed164f58b5c5c4590 gv x86_64 d1ceecc9b2442fe298040690bf91ae224cc2bfd4 libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patch-openssl-2349.xml000066400000000000000000000332751334444677500302120ustar00rootroot00000000000000 openssl Security update for OpenSSL Sicherheitsupdate für OpenSSL A previous openssl update (CVE-2006-2940) introduced another bug that can lead to a crash by providing a large prime number. An uninitialized pointer is freed during error handling. This bug allows remote attackers to crash services that use openssl. Ein vorheriges Sicherheitsupdate von OpenSSL (CVE-2006-2940) hat einen weiteren Fehler verursacht, der von entfernten Angreifern ausgenutzt werden kann, um Applikationen, die OpenSSL benutzen, zum Absturz zu bringen. security openssl i586 a923a481bc975916121811645c9957303c90172c openssl ppc 3751ba88267a45f6bae72285bc3295f1550ad80e openssl x86_64 0a6e313ab112570584d82725dbb1fb81862bfdf0 openssl-32bit x86_64 485659fe4f32303bb951e557367564f920eb1740 openssl-64bit ppc 96d57cc3d4539e0355374526af16c0d4a4919ea6 openssl-devel i586 9f6a44015ad97680e9f93d0edefa1d533940479c openssl-devel ppc aefc1215e506133131739f86a77eaef17e598dd6 openssl-devel x86_64 72d8cd8e5273cc13d821e3179b49c1ca1225d471 openssl-devel-32bit x86_64 acbbb17d623d1a509f1811ab75297a6015d4ee8e openssl-devel-64bit ppc e9b398feb88d4fbe24a0a52f20e9d20feb5caf49 libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patch-tar-2351.xml000066400000000000000000000115611334444677500273000ustar00rootroot00000000000000 tar tar: Securityupdate to fix symlink traversal tar: Sicherheitsupdate das behebt ein Symlinkproblem behebt This security update fixes a directory traversal in tar, where unpacked symlinks could be followed outside of the directory where the tar file is unpacked. (CVE-2006-6097) This feature was made optional and needs to be enabled with a commandline option. Dieses Sicherheitsupdate behebt ein Problem, wo beim Entpacken eines TAR Archives dieses durch Symlinks aus dem aktuellen Verzeichnis ausbrechen konnte. (CVE-2006-6097) Das alte obsolete Feature in GNU Tar wurde optional gemacht und kann für alte TAR Archive mit einer Kommandozeilenoption angeschaltet werden. security tar i586 7842746e863cbad136ce916a9720ff5913a5bf66 tar ppc def753a1b7fe65e49653e22ae6d42b329306be53 tar x86_64 8fe39477a30f01b18d6c1f2b76a61b96f07a8969 libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/patches.xml000066400000000000000000000022021334444677500264440ustar00rootroot00000000000000 6b72b4f3617d0d51af28399c0f5e0af401440245 b02ba598d8ed5f8a31859d3b34e72e1ddecbe894 321ee41de68be4e83dfb74559c14300a59b85ccf ec9e8a3f3ce2588cecd84ab95ec910d41db5d74b d803372cd5d844ee01ab6fb3d1b4332391fa1206 c2de5dd35ec2dcccc118d9d7f539e768dfd5ec50 libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/primary.xml.gz000066400000000000000000000270031334444677500271250ustar00rootroot00000000000000‹æL›Fprimary.xmlì][wÛ6¶~ׯàòC㬉$àµu-©âIñrgZ–Ùãq&ÕéȯŽùˆûÕx.5fi§ÉÎ@«ÿjó,Þ¨2ËJEUð…V’Îx ñqFÙ1ðsM!¸òÚVr‹°eìì×·÷Ú»jÑʳ ò!²·ß¦¾—ИïO"êñ¨Ø׿æhΦû¡éX{ãúr~¿­gg)›¾Üº†;/wðH;ZΣ—;DáñBƒM9;.ª¸Í@1¥;Zv< ý—;ÿ~s´³O êºEuf86ñ\ß$žaÃãžãqn˜Žg˜¶eïç)-’†ë˜ægZDESódgÿgí@”F{ã‡%´¿F_;Ìäþñ)M£½q«´HÄçËì¥:O¨N¦ÐÂB£Z–žð<¨"­„´ Í5ÞI>›'O£H;¿ÐÒ@k*u4x_jмÐNÂr iEi)—<Î"ZòZ¶(!šû %øû¹*§i^ü8¶uv§"©…QÄÒS퇨ü鯓æÇ+VŒàÝ!M¨hþ&åO{ãNÑÅm;O¾ßv¯š£4ã‰è~£4Ÿì"s*æâmoi•3u1ᣄ—ã½±š+”a̵ Œ ½²L“XØB;šW…‘ßÞÒ‘kénR„ßø¼¿¿Üq‚0t¨0ʉ"Z›61­MôÇpÆÅa¸sžH”2Z7ä4çAÝÙÇ¢Ïs=¬»éPtБ¸?£á\JÓrþnÀã£AÝðý·?koyÂsi‡•·µƒæ‘¶ûöðàùÞ¸+½œÆŒ'~šï}>z£¼ÿøù ôÉÔ¯XYhocïÝ ícÅóÄãùä¼2‘œ5ɵŠË©Mò´ÊöÛÂYXžÿxñørÊóF³ZV¬«šå¾O#>ªÜçüù³e¦ájM9Uؤp.¹œÂ”SŸçÆ]=/aаêIZôb¹Îy´:YžÎBè½ç·Û<)a¼‹™êåNzç½q„º‰¬‘nEw´ ¢˜5ßüÏÆ© R¯ÏMzÎÿS…ù†L޽0S˜òr16dRM~CìÒ³(¥þo0ÜŠwtơÏ%=xÓ–Ô¦±.'R{Ãë4ñ¢àõK>ŠIhMò¤S‘²/€Ôß¿~#ÚÏÚ,ùÇŸ¿„%ô?Ö%¥_§dfgiµ£’¹ù‚¬$­d%ý˜e²²9 žËô}†a÷5šdÑ׺°„ŒçÄ—.‡¼$«˜V~˜ ë )ï¥Iê¥Ò-ØŠS19ÖÖ@è²zU(ý"&ÙRÜîÛƒ÷¿¼†úן+« -TFD] ««lñ22d”h˜§’ýågYY ë#wälVð½ªÖã—H Oà¢ÑÈÉ &Å×BŒ²Í¢¼–“é—ü4£¥ä¼¤IÉÒ$'² 9çÉKöý‰H¼QCpâOª1†\YAãkžzU ¢$iŸ+¥=EI¼ü&›•@_¤”™¼é­‘>ægàÓLTtMf´P{Oí8 ñJbŽVSS˜ÕkùY P˜Ôû‹³R¥QJðO¨¯¤¡:0þÊxÝ‚–Ä,KæXÝ%E$Ù·3pRQË×FBU)(±ŠJ2A²]!K³RV´é[H+Õ?Àö4šIZ£\ÖjM«JÛª e;ÁiÉT©9sÙEz_üò-Ìð%¾‹y•ïÒx‚]¾=c÷ÇÐîãzâ¨=¸EH­~(%; ͦËð«‘XÄen; ^þÍ™K<Æm¦éÔ²(öýÀr=Œm†mSwåbÞtP_ ½kŸV‚€ÈÅ ¥/E‘K,Ã6:Q@qÇu»©¬‰B^lXO28­âŒç~˜°cÅPàj´îê1Íå™T:vF‹ŒGÑÐç3mŠî%U M+#:GôXZº‹;UtäÅO ¤dã_?ýÉ‹,¡)Œå\NçÑðˇƒá!Í žo†9%¢cγ¢eèŸm©20R"›Åq™fC1i·š\oÞï‰>u¬¯–qã6ØÐløÌ$Ü ]"ñtÊGL›ÚˆÃ9ímðS²Á:&º½ÂÄÃ%&î2qÄ"‚ ¾Ò7Ýxnžô–XÙß)g`]¿`³·!åvŸïZ†–›<Õž»çìœlC®Ðtªj«|‚~KÜ)hÌ<•–ÊSQYpz*JrOAm…åSÑ<§ûT´:¼ŸŠÚ¨ ¸Äªë­P‚Ê ,¢È šLµéW)¹‘¹µ.Ù^sd(è.˜:•b.Sv šîNU«C⩨FÊsZOAgÎ難,ˆ>¥ÆOE³Ký)èu9@µ2PMu•TÑÞÀ\à •;„¡š^˪(­Pˆ*ª.QY­K*ª*/±‹ªÊË4ãVÚ¾QU“±Â@ªh®P‘*ª+œ¤’êÖõœ¥TPŠU' ÞRɤΠL…×-3™ªŠË”¦ªv—ÛTÑ]œ*Js¶SE§Kdn©¶U;vˆP…÷æÊæµK*¨-8RYª £f/zúT2z[ÇíŠèû6QÔ}ÆŸW£­¼¥.&ÔpÇ\Ût‘…0r² “¹®i0WG6fRÁÛ#ΪœkG);æeQW?å4)²4/µzÆs­ Ë3Ù0î§)×þ€J:::á6a¥š˜.K#hÂ4·lÆ5âeªÕ”EšDžt/_ Dðœ…4Nr€Z/´ Š¢aÀi ¹õ_Ôù ¡5Q¯:J|Â{â,â1¯ƒÃƒ2²R¾¦D»"k3<ž‘çW–XÛýtp4˜¡çÐÍÓ2…ü·1å:7E ž;ØR­ño £Ùôl¤‰âgçÅŽi}ÏxgP¾“4ü“Ðç"@W‰xGh³4ª’’CWÑÊ)-µª€A2ïáfžpQIƒVÑj#ƒÚn*a^we§Òç•!ž‡Phèd åü”U¢n·x0ø•ç­\‹¶QÕÁ`žäÞ£‡šNêôù)ãQ hð”SèF0kŠîÔf$¡”oòi?ÿN«6Zÿ)ŒµßGÚ»Ê/à½Ú§5Y…Wµ\_«D8?ÃÀr¨ç³ˆÏ¿ÐN¦!›ŠŒA]DÑ™sh¼¦ÞÎÒJ£ÐÚÂ{kU–‘ø%j^%¸„óþUg0I“άʳ´àWqh~,Šôºe`T¿j'ÏT@-ø'íh¤½I&0u±©à+„B^ðµò¿æ#í¨äÙºö;x 5/Ä‹jx­Â/ x@¡·òZÐãÉz±ÔOµ©h¾¼„k%?C†»‚U¬•{—Fù“‡A-7­¯=¤U¤½†‚UeÙ(ƒ[«²7œœœŒ:ïÙÈ™ ×ZâL —X¤Ëv¬p&ÈÕ„—9Û²mu9Û±‘ÕY>uéî¥6«ÃÆ> …ePÞ¾ôËѯ †Dônø=ŒÂc:5M1¶[<¡|Q˜;åQ>òæÆc˜µÇçæf3B£ú-QeRÖUò5P)†î[R)›ÍxΰM‡1*µ‚œòLNNtZ¹$¡/Gr‚ª+ôYq¥TÚ“X®\I•בßë^ßX˜8#•tåœm–l»ãEBì x-ŒX!Puä7BYbl¥GÀÍ Á RU‘×’b…l$^9bwÝÜ¡e%)åBÒ[yZ–@¥AVudZDmnº'«¤Åm1;’(7Z=ð".&ºF»ÖM½"x¹Ù–®Muvf˜Zö5çSZL/‰FÌÅ€;Ž@4Kýî.á5 ™ÔwmËѹ¸Ä׹ϊ|“×Ð Û•‹C¼OXT_\‡ÖÎeÈkê%yá»ýÚ8›Â‘ɇ$ÀÁœ7t¯’^¯%œ½y Û‹D‹$J庱Š,‹Â÷Îg;„§ hôŽ}G!×ú½ïx{¾£­â;ºD7gÉu$.±‘K:®# "ÇØ´ÜnÉu¬{èSp ;Áx1YŒ_×Y~ý·¿=8ÿ‘Žuqù¼”ÿ¸Ôö·îHlr`½sp; Jþ´QH {šd™ä¦³ï+Ä6‘G[65ÌÀò(·1vLìš2Mú€azÒ¤'MzÒ¤'Mj±øÊ_l8«À×ÕíËIl`øoùê!{ ùê¦nu÷&¬C¾`;Ör&pÿ"Þë LŠÎËPùH¸›ãL±æí9“ž3é9“ûìõœIÏ™ôœIÏ™Ü'Τ^ {gQ×òM›1â&q¹N<Û†‰- ‹é¾A ¹œZ}¢BôQˆ> Q‹õQÉ(Z]ºi |ù¹ó¶kËZ^¹i:–C–N»0ÇÚD¿uƒµ}éC0Atl¸Û…"– *›ã눃Ò&ü6ô ²ûº‰AÜÊ~íETBi—ªb%Ìã7¿S«¹PÙßÕ†0dU–¦Ž[h<‚8Ã5½p[Ç'¬zä·q†‚ú‘+n·BåÜ«=‡÷jMÞ­ø—” adrS·!ˆ ›¸cQÛæð ÙÜtß—ó/û%yý’¼ï¤S`&]Àÿî²O`è„`·{ ­¡†©â\\‘÷8}‚kXwÏ\Ã!ýм‡ o'dÿVäµ³ÓÝÆÅ¹ë× ¸ç8¾xT§&°Î]ëðÀd40Ü·ô¸åià´º•Àɼ ·8:­à±ÊJl/8Ç-pÇu6ìB¿ˆ[žJDóÑ¡ìĺôrG)9u¡µ =¸8Ë÷žÿ=`E§'ˆP!lں龃mlúž‡ÏAŽ…½ÀôžÄïIüžÄïIüZ¬¾’{hÍ ;Œ¯ÚJ`;ÄA+[ l¡å­®cn:©ýfÅ:0¦þÑŠ‚y¯…ŧQÙ=½†îâÛÙPÐóü=Ï¿ ÏßïY¸Ï®Ò îYx܆x+”*vËÉå^-‰Ðú½ͯÛ`V¾„S¹­H…¨×tnxžk"nš6±lÓ2ëÜC¶ÑG*úHE©è#}¤â{Oû².TXŽl{ù×–%Bè~àÚ²,«*j+Ó‡+ä‘ÑDǘ\ÞƒþpÙ`Â:Ü Ùý†€ïØÐÐp•WþäxóË÷'Ü–Ojcßa¾ÃMlÆñŒ8A¶ë.CŒ"ŒMß°Q¿Ô¯_ê÷4üåO—¸D×——ú9&Á¦Ý]êçX†il8;mŸ¸KáÑú×±Ôï^±žÄp¶Ý»ÜoT¸S¨z;ñþG´Qá΃ê”yž‡lßÂÄGÔÔÝ@|~‘z¶‰]›Z:øÂ¹#w’p`zóà̺@¨s)€± ¬#wå‹y&±Å¾ËÎóLÃpñæ …CÛðò—.¶F1w8»Î W— GE'ð2™}ßšÈÈ9ó""ÇPÛW³±î».ó‰åQl¹4°âcîPæZ„9Ì!ŽVùYLY“œÆ‚"ýgÈO´C˜$ŽjóÓY\òöŸZ‚Ä®yØDû¢ý+„iîD;:»ko?¿¯AÏ Þ&“î‹jœ"¨á°ˆµ•CÁ…”5Ä®˜Èš<\NïüiÊâÅ`ä^±btL´öÂ,ÿžNi’2:ŒhQ4fY\½òÃ,þFGÙô¬GUcÀZß`N½I3 Æ([÷Îñë\'³Í õÕõÖ˜\±Ñ]ð“]ã ¦Û6»¶Û4ÄG‹®6Ýõ‹&³aÝ»‡M¿VþNÑÛŸÁV&<§‘vXyp{aµwß<¿Sz²ÎP1ôäᑌ)ö(›ªâÕ¼#ìZö–‘„Éì¢Áºjöº›ÛÞ_OÑXŸ ©¿ýF’Ü:ú )ø!YIzB|!+Aú|á§¥l²q%+™I ÆBÒ”Íå½&ñ=¢cÉŠŠ+êv¢er«c'Å×‚ç³ 9©Ù„Ê­¡]^Æ*€ã]­`]Z¥ù.ÌjêŽçsʪSŒà›î#ËLÇ3™É Ó•[´ÚcÖLjYÍÕ€&äò€“8/¯¼3- [Ý…w¦ Óº³Š£1V—âQ ±fœæ÷±Ú=bíëe’=bíëM,‚ëAîc¹`nä2ßCÔr™Ç(²¸Í<Ï'×M®[‚O&6 d;frŸ*ÈEÖê751¶/ÿš1mÓX>Ã0Œ—€3\{§ ÝÿÈm1ÚÓ¹¢½RE”» F¯Æ¯–é^FÔ¹H` æX(¶•U#Ín¾ÒnÞó×_± +¨ödzPöž|k7"øů&Iµ”êo€ËþïS¨ÜÃ0¡¹ßxõå«0OGU,ÚžÓ¨›s€¨S!{˜VM'\]Hûwz¦ýÆ€šíƒ)Tà+Žâ°\vvx@¦Ã<<›œ6ׯÚ—SêÐà~›èÿ³we͉#[ú]¿"'æÆŒ+cL÷K ¶¦1ò•D¹}ߣ.4Šgè+G„19÷úsìAàFKãh£x+埿@ú‰×Qì-¢ßí•ÓI-SúâÅ „îçXì¾ÜŠÀ±s0ªìœ¶Û§Ûï†4O{ÍV«VâÊyóU ¦€ðXš—c2,ùS™×8é{‰ÿºŽÒõò͇Qìâì"›Ô®óuQ$}Uì'öq0é þØ 9Ÿñ.þˆˆ3—Ñ¿,ú=Fÿ=BÙºXÝü“*Ü_WãþÊâqúšO«”_¬ïÒɰJ©›.¦zuÿå·„T Ù=k{ÍYwéwÎüÓ^ç¬í·ZžßYœ¶fíV¯ÝèÌü³ö{HõR‰÷ê=¤z©þäj¿ûù´yø½Îi¯×Ún ižµ[­v£Rµ{ͳZC¨ÿy7:ø‹÷?¿1 úš†çïOuÞã©÷xê=žz§Þ㩯§^Ýêû-ñÔì´ÓjŸù]¯Ûiœy-ÿütÑóæó0ª½œ{g=zÃmþO½ÇSâ=žz§Þã©?7žzªñ±ú1ÍÝ';ív£ÕØ9È¡}~ÚÝ>Èá´Ñ8á¬Ôk <øPÍü¹—¥ßµ»¾×íì‚þ–áÿmZÐxAoéAÿGè|é·{§Ý®×n,ÍYó|Ñ™7—­Y·ãuš³^gÙèzç½NïÝzw„Ä»#ôî½;B?´#„­æùNb¹Ùj6¶zuΚ½×hµë ýõßù3¼¡ï”`nµÞÌï æ×e3ÿÎ/,|ý¹Æy:öíOüˆ/;ü ™\l(YÃQ}ô¿ñµƒ.PÑé•bUͰ¿ü]݆·Xt—ËF¯íÏýFwÞéuºËÎÙy£Ûž-ÝÓN£»œu^÷:-ü&ò'F´=q½ÎîŽÍðÛ¾ò_Îú߉š÷žæE(±T¾x’ÝÓQ¶ðãoü™6‹£‡¸’¯Ô–ñÎÄOçðþ;5qýî·‡È ¾Úö‰ü¡|Ƭökþ/Ìd×鱄ž§tdk¥Â#ç\… Î³çäðÿ±^Òó^P·uÞÚîX>;m´;íƒ^P¯×8=Ûþ¸X«Ù9íuϪ_³Ç<Ýæ ŸãŽå*ç,Jæýͽ˃ò˜Z¦q2‘é‡ú‚ý¡=Á'}ÅZ¯ñœîÐÑ“oõ£û8”çü|?óô*'*T²sL ÎzÙtðFä>^>_²ºë}ì9ÅøGx`×ç ßû.ßû[|ì«ÎÁüª€×Ú¸3*¿×ÆðÈ} ÃãñûÙ·þêe^¿õïïÍÒå׉õœ*~ÕÙXìò!&VFõ8Žé…Þ †1¡üЋ¡û“MyããcÎ"qÞ~=á’ÎÝš8t«ÃŽXõ¶³ŠæŸ a55ÄÀýiR:B¿‹}N¤óÊ'¼tƒv¥lëÊšºp¬‘{£Û†0&C?À†#00&pô Û0®Œ‰+F–-††ó«k]ÓaMÆ·OÎk^][¶«OÜŸ„{i:¯šü迼ÍýÏœk7¦c½üëƒÀ ºúX+Ç÷ ÷Æ0&âÖšŠ#Ãt/1«>ædh~4‡S},,»&Ì‘¸žÚƒKÝ1†¸ ,wc:†¦þ95m\íßÒ ÚÇ̦{[+~ÀÏ¡(U¶¡…éŠ64šŽ‚¾§ 1°®®Ç†kN.°k8®>ë®iMĵm ÇáɦN>$ÇKæÃn8š^`ǵÏÕ¡<ÃÀš¸:æ¸bÍ·X \ɵhÄØÔûæðkCÓŒuóʰ:íÕ1ÆÆ rhÝLƖθQ‹‰u#úS×USàj9 5FºÎ[žŒLûŠà08× üÌ1Ú‡›©Ç³Y@ðeˆ¾50 h°kØWŽ|’hžÓºNd¤%‡€så BN¿|^ÃóŽš¡F“MòÑù¶¶Îl­ ™\ôs?% ø4M2¶¼^Ž(Ù²ÃòšØøÞV| çuÛδTˆj"Xâêcý¥U•åÝ[# ×éUÔAžÎkXxétÄ í>ìãÞ´5÷¿Æ‘ã: ÊÜTÌzÒUM£çQ ­{… J˜/¢yVë ¤’$BpBÁ§BÂ}LßkŸ¸#lIä,ØCr‘Ë_ûó4ŽÂ`¾7ÆQŒ#¿o–Ðàì€Sø-5€7‹¨>E'Ö©É âÑÇ(;€â\A^ÀÃOQû6ÊócQó"`òêYNìBõÀB`õù5®øe)×ô¼T[y †ÈX%âz ËÆØP—ÈÏYÉœ‘©¦À°J±PËŸîÕDï¼&ZFq™ sa0\¿]‹£K‹ÿ@ðµ„{Œ‡½5Åï(IB“|þ]0 V#̾¡ù0:ÑÚ‹÷ösAšXE>vQc<Ô´0J‰‡€LÉ8€”¾œ$K§”:Q9P.<*PšAá^ÛÂ}H÷Âcàë^†œÄ#tÕßÌü1þ^øŸAð-Œ–¬³»– Eš˜e)/¾6AÊlU›h†¸C“³òpþ„%9J"ÎД±ªØ%ù^h¤ÜÝÉœà8I vë5v~‚ÿ1†n4_G¿r¦ÚÀB£/¡`’:̵ò‰Š„TA²œ–3„Õ+\XÔÊ æÕ2šÎ3¨˜0…–Ãz‹€>%‡? ÉJÈ5‰¬GNT F { iJ,3/Q_A6«Ñ’„‚xU~)°âBœ2)³Tƒ`p¥¿°)Þ»2‚ï.‘dЮré—¡ÿxš§ €Ò%†TC€RÀ2ƒîy.Ï,|=)4 ¯©Aˆ6³,N¶ …ôYzÿ å×@¸Üždó Ü…·X°iäN€‚—˜7ü¤Õ€ˆ'XéÁJdë”@¤É4Ôr#‡Iüw+XÎ,\0B°MòYÑÓdþÈi|>4×ÀIŸäÓÈÇRqGZ›¬L[ÁI<ícækÞg/X3‚äPhz†’\Æg¶æQ¶¦3V?q.Ô' ¸-ÃÓA’Æ&&O’­}/æ—Ÿ´oÖE)-sèßcTâkw&þITªÁ›‚¨Tÿ.‹Âœâã3OŠO^0…¶O0Οsn+Êxã}bÛ]ltÕ}à'»L]#±.U ÷Ý`oa²ôwtÃ{ÔaPÚOâ5‰L}f„2›øŒÈaôÖ)Yè:j›ÙDÐ#0t ïžqÏP»ïûð ¨ÁË, "Jôi>lNìËšKÒ=Ä®>,ÐŽ‘¢=ˆU¶ñÂcš¹|f†¢Hò[H } bLæ^1á8“­ ú+æ“HØqa Î¡ Rr`b€—R;¡8‘ŠuöÆ… Q¢8Ý^HJCHv>ãH&{ÌØ®Î(mò_NÊîž!'ѰwK >O•cK¿ËÖÅ©Å0,¨à“ºYTt3Éí2NTbÍô˜«W¥jj;6D#¥„9ÓäT pXÿeIJ®xý‘uìÓ2¡ñ*4@r·RP6ÃAÎz m.±cUôˆkÃ$ƒÝý¬<*©¶s(1øÃ3Äb#Qõ­D•m‹£¡ÃJàó;1_…Ñ:º{¤1n.£Ê9-pø¹¶Ì¹TyÉŽˆ–¶ï_–|¶ ç0‹ò\\` šZÖæ»X™üÄ÷Á·èY!ï/JðYàù‰5Ÿ¢3ÆâsO 3Ép°!ØÀRÄÚ†>ïnø ¬ŒMVÁýîí›RSñï"ÂHÎlwOins¤Ê Ú#d]«0p‰ª(/&{Ï’ÝâAøŸAº– Ín-P\ÓÊøDñô#.F­I½gÞšXxA )º& '½æ-­˜s¶’Ýh ×1DV“{,•ÕÈÍv@ʨ϶‘¿à!šÛd—œW9Ä€ˆVǮ૲Öy=Eޥ̮°˜[9Óɳv,Î I"K1åÄš›“‘en‘¶éšîØ Ùÿ95 W3&ÿcÝÊdTC‹qîæÓa Ý»47lÛ²‰Òæ»1)ëÚ°u×Àî¥5¥$•‹QÓkBTà³Í‹Kw‹\ø1ÂfÍ‹Ð6bKÏsmÓÁ@ÎÞ—™99Ú’9ÒédL8R¨ßj0îRL,º 5m ,e^Lˆ@àd(“¨*=9$„k” 4—ú¿t{hM±Âä£i[ÂÁLYV¢äH7ÇÇŽ>bÐ\Û;:k9Ææ•)Ù¥&ó“ @žq\{:w®tGæm…LÜш˜S ´éb BeÚ[¹b¢4/d–Ï ¬««)‰ _pn׸rjF ÃGæ ‡µ¦’ª€^ =cè×€+²Êšsm ̉á¸Ô$·9 8å*ù‹+ܬ9ÓÁeÎÅÎ!Ÿf$t’ÆÞ7Œõ…tC®V‘B2nh.éŸ*űí1i ¬W•bÛ$Œ òp*ñLỎ€zb¨ß^l]cšcc#Ccl~4ìÛpƒÉ-›ÓôâÆ6]Ðs+‹M²<üN˜eB)â½5ÒBÚÐÐÇÐA5¯k›ý©kÑ_ú³&0€^ëÖÀFœKÚÞÀ66½‚o›E‰ñDYt‘gÜà+ÚG‹·¥þVbóôÞŽ¦ŽÎ)Ú@ðæOŠ<=[7¼†ñÀáíŽrf¨è»žæqzßúX}`y&þV™’ºÌšçj„6‡E?çEYCÉU q4Ý¥¹H?B„±kaUlQY§}Ôí[&±Ü ­É?^¶õ<9é5°dÆTÚÛÜ©\ê´—17B!J®SÔ©•eš[Ö&SÛ°é6¬ý4rej´U°œ/·†'0%à é—* ¦wxS”3.“×ÄõXw‰!µRÇ@‘Ii?Kú‹`(«0D@Õ­*ØšVز°}ƒg¹ã 3í!Û¼Û9TÃþ`ø™òú˜5-¸V¿¯¡ó\0iUÈ'É©W( *yA†údÈG…~®QAˆ9.×.ìi>Nù¤Ü(«Âé¡k¶¨–¬ A­A;@|Ç–ÃÖ¼OÕ%vÔ  èÔŠ[[¶Q(—elþj|¨1å‰&Šôl™ü5 ZÛðÔö+R}Y”L†»–}»M¸ÒéC5@;’¯FFA'ü–×r±ÃdJÔiãblB% `ìn+V.°ãù¤ê Ž ±åL‘`³@‘¨°šä]HÀVâ…K¬Ò¥4Úr¾„.= ªri"uÿ—Õ\¥HÚä h¢¥ð¯^Ðì»þg»÷3”‰¬l?wƒ™AÜi…ûrnè vAw,ƒø5wqJVä}_°r· Êœ5rFѯ°br•0_k‹X‰ð2Ã*º¾Q·WU½¥éµrû#fÓ\6sí‹â¶!ÐMý”YxZÏk=/¾AÏLTü¾°HDJ¸’©r›ìRæ$¦,º4’²îKQÝåú^pî£ïÅw[Ÿ ›o¼˜ÂÅG1 ’ùÚ ¨àAñÝX…Ìc•¹~äB ‚lÊÇp=ˆò3Ë,\x\‡\S™„~IœY—ŠdîÌO|?Ûñ¤F5Èê5™%V%¼qV•Ìö+‹¡ðçQm‚¹&—¥¼Q”©¢‡ÿ2ùU]ya×Z¹ë Ìd–‡·ä‡þ2àDýNa›Ä¶R¹>Oëp/Èœ°ãOfÙ€ÄSqX ä?L0lm+7@PmÕ‚·‹»œ>+câ½õ*á2×äæ%¦)Á)׸—/©äI"2ñºˆd™a¹ôeÝù>öÏ,Pßpš¥QüXIïzEùµ&‚º_§êü='ŸS71Ü]-’JY*reªp9§šQ¦ÔOòbèNÖ¶K"•,ûÖöö-ùR¦‰ôªÍB5¤HmâI‰å¹äw–gJ¸¦ÕR@ö íú{ÉB ŠöÀoTç¯4sŸ½¿8À..õ¼ˆkîy)’îϰÅV}ZíZ6ΈÆùxÞy¨Ê¾Ì/'Q¬åUR˜ U3æv™P^͵´zzñô jJMN)^˜²Š ªP?Q¼‹´^‰:‘j…÷ yòxyæ'NæÎ£ø>Š=U’‰}.¼ÏUí¦`ýºè?‚açþ½ÒE:6§¿-^áïíDÛÞIÞU«¨ÃTö ²z#ôY«RaXÜ;ÖÈE¹Iun *×qñ‰zD°€#$–Þ;Yiñ¥ÌK‹v¿–UžüHúMsÖÅm”i´‹3VÂ¥§\NTõz‹Ï™Ÿý0+t]Âð৉–@^ðç–…2Ì`ø¡H  ó7ó—*/.gPŠD›‚±yrØÑr•‡¥™ŠÖäQé%H¨&Küp}¦,ž+Ž0+d{Êb&[YÒ8#6ÅýëÌ•)'ľzñBS¸QuÀ‰RÐôT´ãæ©·ü½÷ø/HsR‡9DÅ›TRŸÒÇ&Ò§<9þ„ªÄ±ÃAMoʂ˷¬Ø S_«e Cö¬%)uÁ^•E*!qïMêoHÀB?Ê ù¢²µPš·GQSÐÊWµol÷bR–!óTµÍôÑ>{ñ#‘å)±¥Æ‰˜÷Y<_™¢xÁó«šžZ€UÐR¹7ìÝ(O nL’Ié!9§Î _V_sž.”­òªd'—ä•‚@¨0R"Tç7ï©›ÉBÛ3>’ôUœfê§øBï<%’1Õit‡p“ ê ›ÅÄ“ZÞ$SáHå‚/ÿ`IXCþ¢ŒÊÖ“(.ü~žêiæšDUáÓ[Kà„;U¨É×Ñ#ÈEÇYòKqÁ¿e­“Û(PŠ6ܪÈ£í6X/%óz°xb{Ø5š©<)ùR=mî}²ÎÚ–ÊÁ’3¿lÃßÐ]²m¯²ÊC ç-DWÒ\Ûx_‚M¶Éí>õ$ ¸=¢¬ÓÓɕĠûUl 6Íþ]m Â0 ýßSô=ˆàQ6We°Qt*x{ó’4ÝG'þÛhɲÐ&o¼—ÎÉ4ŸUOüI²Xªágx¤f£QfX”¥“ŽêîExæ DuAÔàÏØ%xÜÁN%@úâP÷pÅ1*— ëØ@f±ÂY3<ÂT|™Hƒò$%ìÈða6pÝêŽÕÖRR¡¨Bö»è0zýÛªA‘b7È5·L@ˆ¤K¾ŒœnibaD+ wá¬ßu–¦öœPQsáR.³†GÔ¼9)°’GÔwÙÌ/×û\aªÁCMoüÄ:W¤e íTˆ/§ÏئAPpÓÆÁª¥Ñé¾Ô‘.EíÍ[š³¢’ðÕi²K‰ËÙ÷´ iH³P³ ¿ù³Î”ÝV¶Öí£µdŸ¾cåjçuAlibzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/repomd.xml000066400000000000000000000023171334444677500263120ustar00rootroot00000000000000 23ed066c97c23c557121aaf9c57e5f3f429e4a23 1176468240 23ed066c97c23c557121aaf9c57e5f3f429e4a23 7f83e2e248d8966d119471c58ef41e7a065c9e1a 1176468292 b2b013f0426018c6cc9dbb30a06fa2bab0aaeea8 73588a1c655a58b2251146675ab64cce8cb45a26 1176468284 68e66f72b932235eeee5d5638d3cba2ec674c208 8a7622d1200067c399e483c4ca19fb382ae1f24e 1176468286 0bc279d4c287dfea715805e349744122f412e3a6 libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/repomd.xml.asc000066400000000000000000000002761334444677500270610ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.9.22 (GNU/Linux) iD8DBQBGzqIbm+zCtd2wN1YRAslJAJ9eQ+6wpaKRVkr5nrQ4vij6ge0QpgCfRoT2 clYiEftDMuaEpZeRaBQodyc= =I83X -----END PGP SIGNATURE----- libzypp-17.7.0/tests/repo/yum/data/10.2-updates-subset/repodata/repomd.xml.key000066400000000000000000000025041334444677500270770ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.6 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz =5nY9 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/repo/yum/data/extensions/000077500000000000000000000000001334444677500213515ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/yum/data/extensions/repodata/000077500000000000000000000000001334444677500231505ustar00rootroot00000000000000libzypp-17.7.0/tests/repo/yum/data/extensions/repodata/filelists.xml.gz000066400000000000000000000004341334444677500263100ustar00rootroot00000000000000‹ez.ImKn„0D÷œÂê½Á‚F˜ÙåÉ»‹¯ÀdF9} ™$ÊgcÉÕÏÕå*.·¡g¯´¬n5$B£ÑLÖ†—ç'žÃ¥ŒŠÚõÔ»Õ¯,ð㪡õ~>ÇqïÆí&ìÖ‘ »Åy´è1þâÍh:l(¼I 8ݯlîg5(›`ZŸ2›fò±–X™ŠNJ¥IžZE”cž£Ì€8†«†‹i58•gÁ±âŸÑ<íƒð… hH…°…ú}u| {®RJ™òìWÎó}+ÂaÚâýƒR|[‰c0ç¾]íÿä!òaë½ûÀByººþ ^=?B ‹hÞþŽÅ:“ù”‹øÞUEÅw£eôü­ >µlibzypp-17.7.0/tests/repo/yum/data/extensions/repodata/other.xml.gz000066400000000000000000000003231334444677500254300ustar00rootroot00000000000000‹nz.I=An„0 E÷œÂò~’hÒ¨"Ì®'hà!ˆ€€˜ÐÎñ*Ôíÿôÿws{Í|óöŒKòX …À©[BL½Ç¯Ï‹Ã[[5Kx ” Ÿž‡œ×w)§˜ö—ûÈ‚Ã.gÎtPòGX©©çÂ×X\ÎÖ±Á£ 5éÇÕmÕÛCѽ»óÕ]; ³#çHYb„D3{üÉ´uƒÇhœ-†ÍYx]¡Ô/Z(a6žŽhY²åÞVeþ§­~’Ùÿ’libzypp-17.7.0/tests/repo/yum/data/extensions/repodata/primary.xml.gz000066400000000000000000000014541334444677500260000ustar00rootroot00000000000000‹Wz.IíWm‹Û8þ¾¿ÂèÓ•¿ÆŽ³Ø.¥×½/K9¸–rei”ˆØ–+É»ÝþúŽü’lK›½-”vAI¤™G£Ñ£™R¼øØ6Þ h#UW’ȉS\v»’¼{{µÊÉ‹ê¢hÁRN-õÞ™’ì­í/ƒ ‘ÝðÑçÃ|àC° ¦ÚVudB_ê¾}pb¸ ñº¦ñ1`ÐSv ;8íqÀãQ³s‹& obsrepository://build.suse.de/SUSE:openSUSE:11:standard opensuse i386 other string openSUSE 11.0 SLE 11.0 SLE 11.0 603807e12e7418911fa9f158ef66b9c20f1df567 1215823452 34cde52910a161664291bd93e8a9cd24f751af6b 06660c856facf17822102d09d849d42fad79d28e 1215823453 fdabcfd9c056109ab25acf0644823bdec94b6cfd 2eccb910f933ee28fd5f5223e05eab6c5b08db67 1215823454 c6bd3c6099de74d97ed045163235be10ffa8a85f 359396be40992603aecf6e2832839111e09eb080 1227279057.0 b17c055bef95bca397faffdf028cfa91dd1b24bc 34599f8eed67ec256299d295617ceaf05ae7ebdd 1227279057.0 a3011438085ac55f06c68053201ea3ded17ee85c libzypp-17.7.0/tests/repo/yum/data/extensions/repodata/susedata.xml.gz000066400000000000000000000005401334444677500261210ustar00rootroot00000000000000‹š.I•’Ínà „ïy ĽÆàãÊvn•zoÏÕKbÙ1¶ëäíKªDJ{è»3bçCT»Ó±'ï¦Ö5åIJ ÆÛvØ×ôõåéAÑ]³ÙTÓ2¡…HôSMó<>2Ö·ÃrJìÒa‚vaGœáâb~>` dÓÁ£?£Í¦º–dìö­=ËA¸\Z!ÓÂ¥ Æ<ËWÂfˆ ”‚TR2ÀkºÎ”@0‡š¶™’ñBBªkt‚£¿1~ìÔT$i") ØG(Êâlv~ù–C¤N熗†Cî´Å­+­‹Û8é$Üñ‰¼·Î{ áÏYâ£&Ù}–híð¼ú`›iGæ·e¸žÐVì&^Œ¸ôÐ<¿äì—@&ïæVìSù‘«Ô[kÚeR¥ @ZJë°´(Ô¶(R›#wúŽ+®qå¿põÙΗ¬ìö£bñÙF>­†libzypp-17.7.0/tests/repo/yum/data/extensions/repodata/suseinfo.xml.gz000066400000000000000000000001021334444677500261350ustar00rootroot00000000000000‹ŒäM[suseinfo.xml³).-NÍÌKË·ãRP°I­(È,Jµ3630°Ñ‡r¸lôj½ëÚ&/libzypp-17.7.0/tests/sat/000077500000000000000000000000001334444677500152515ustar00rootroot00000000000000libzypp-17.7.0/tests/sat/CMakeLists.txt000066400000000000000000000003171334444677500200120ustar00rootroot00000000000000 # to find the KeyRingTest receiver INCLUDE_DIRECTORIES( ${LIBZYPP_SOURCE_DIR}/tests/zypp ) ADD_TESTS( IdString LookupAttr Pool Queue Map Solvable SolvParsing WhatObsoletes WhatProvides ) libzypp-17.7.0/tests/sat/IdString_test.cc000066400000000000000000000030431334444677500203420ustar00rootroot00000000000000#include "TestSetup.h" #include BOOST_AUTO_TEST_CASE(idstring) { // id 0 ==> NULL // id 1 ==> "" // evaluates id in a boolean context IdString a0( 0 ); IdString a1( 1 ); BOOST_CHECK_EQUAL( a0.id(), 0 ); BOOST_CHECK_EQUAL( a1.id(), 1 ); BOOST_CHECK( !a0 ); BOOST_CHECK( a1 ); BOOST_CHECK( !(a0 == a1) ); BOOST_CHECK( (a0 != a1) ); BOOST_CHECK( (a0 < a1) ); BOOST_CHECK( (a1 > a0) ); BOOST_CHECK( !(a0 >= a1) ); BOOST_CHECK( !(a1 <= a0) ); BOOST_CHECK_EQUAL( a0.compare( (const char *)0 ), 0 ); BOOST_CHECK_EQUAL( a0.compare( "" ), -1 ); BOOST_CHECK_EQUAL( a0.compare( a1 ), -1 ); BOOST_CHECK_EQUAL( a1.compare( (const char *)0 ), 1 ); BOOST_CHECK_EQUAL( a1.compare( "" ), 0 ); BOOST_CHECK_EQUAL( a1.compare( a0 ), 1 ); } BOOST_AUTO_TEST_CASE(idstringtype) { sat::SolvAttr a0( sat::SolvAttr::allAttr ); sat::SolvAttr a1( sat::SolvAttr::noAttr ); BOOST_CHECK_EQUAL( a0.id(), 0 ); BOOST_CHECK_EQUAL( a1.id(), 1 ); BOOST_CHECK( !a0 ); BOOST_CHECK( !a1 ); // evaluates empty string (id 0/1) in a boolean context BOOST_CHECK( !(a0 == a1) ); BOOST_CHECK( (a0 != a1) ); BOOST_CHECK( (a0 < a1) ); BOOST_CHECK( (a1 > a0) ); BOOST_CHECK( !(a0 >= a1) ); BOOST_CHECK( !(a1 <= a0) ); BOOST_CHECK_EQUAL( a0.compare( (const char *)0 ), 0 ); BOOST_CHECK_EQUAL( a0.compare( "" ), -1 ); BOOST_CHECK_EQUAL( a0.compare( a1 ), -1 ); BOOST_CHECK_EQUAL( a1.compare( (const char *)0 ), 1 ); BOOST_CHECK_EQUAL( a1.compare( "" ), 0 ); BOOST_CHECK_EQUAL( a1.compare( a0 ), 1 ); } libzypp-17.7.0/tests/sat/LookupAttr_test.cc000066400000000000000000000164341334444677500207330ustar00rootroot00000000000000#include "TestSetup.h" #include #include #include static TestSetup test( Arch_x86_64 ); // Must be the first test! BOOST_AUTO_TEST_CASE(bnc_435838) { // empty @system to pool test.satpool().systemRepo(); BOOST_REQUIRE( test.satpool().findSystemRepo() ); // bnc_435838 crashes if iterating a just created repo. sat::LookupAttr q( sat::SolvAttr::name ); for_( it, q.begin(),q.end() ) ; } BOOST_AUTO_TEST_CASE(LookupAttr_init) { //test.loadTarget(); // initialize and load target test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1" ); test.loadRepo( TESTS_SRC_DIR "/data/obs_virtualbox_11_1" ); test.loadRepo( TESTS_SRC_DIR "/data/11.0-update" ); } BOOST_AUTO_TEST_CASE(LookupAttr_defaultconstructed) { sat::LookupAttr q; BOOST_CHECK( q.empty() ); BOOST_CHECK( q.size() == 0 ); BOOST_CHECK_EQUAL( q.begin(), q.end() ); } BOOST_AUTO_TEST_CASE(LookupAttr_nonexistingattr) { sat::LookupAttr q( sat::SolvAttr("nonexistingattr") ); BOOST_CHECK( q.empty() ); BOOST_CHECK( q.size() == 0 ); BOOST_CHECK_EQUAL( q.begin(), q.end() ); } BOOST_AUTO_TEST_CASE(LookupAttr_existingattr) { sat::LookupAttr q( sat::SolvAttr::name ); BOOST_CHECK( ! q.empty() ); BOOST_CHECK( q.size() != 0 ); BOOST_CHECK_NE( q.begin(), q.end() ); } BOOST_AUTO_TEST_CASE(LookupAttr_existingattr_matcher) { sat::LookupAttr q( sat::SolvAttr::name ); BOOST_CHECK_THROW( q.setStrMatcher( StrMatcher("[]ypper",Match::REGEX) ), MatchInvalidRegexException ); BOOST_CHECK( ! q.strMatcher() ); BOOST_CHECK_NO_THROW( q.setStrMatcher( StrMatcher("[zZ]ypper",Match::REGEX) ) ); BOOST_CHECK( q.strMatcher() ); BOOST_CHECK_EQUAL( q.size(), 9 ); for_(it,q.begin(),q.end()) { cout << it << endl;} } BOOST_AUTO_TEST_CASE(LookupAttr_iterate_solvables) { // sat::SolvAttr::name query should visit each solvable once. // So query size and containersize are to be equal if we query // pool/repo/solvable. Quick check whether the iterators // position info matches the result. sat::Pool satpool( test.satpool() ); { // iterate all: sat::LookupAttr q( sat::SolvAttr::name ); BOOST_CHECK_EQUAL( q.size(), satpool.solvablesSize() ); // quick test whether iterator positions actually matches the result: for_( res, q.begin(), q.end() ) { BOOST_CHECK_EQUAL( res.inRepo(), res.inSolvable().repository() ); BOOST_CHECK_EQUAL( res.inSolvAttr(), sat::SolvAttr::name ); } } { unsigned total = 0; for_( it, satpool.reposBegin(), satpool.reposEnd() ) { // iterate one repo: sat::LookupAttr q( sat::SolvAttr::name, *it ); BOOST_CHECK_EQUAL( q.size(), it->solvablesSize() ); total += q.size(); // test result actually matches the repo: for_( res, q.begin(), q.end() ) { BOOST_CHECK_EQUAL( res.inRepo(), *it ); BOOST_CHECK_EQUAL( res.inRepo(), res.inSolvable().repository() ); BOOST_CHECK_EQUAL( res.inSolvAttr(), sat::SolvAttr::name ); } } BOOST_CHECK_EQUAL( total, satpool.solvablesSize() ); } { unsigned total = 0; for_( it, satpool.solvablesBegin(), satpool.solvablesEnd() ) { // iterate one solvable: sat::LookupAttr q( sat::SolvAttr::name, *it ); BOOST_CHECK_EQUAL( q.size(), 1 ); total += q.size(); // test result actually matches the solvable: for_( res, q.begin(), q.end() ) { BOOST_CHECK_EQUAL( res.inSolvable(), *it ); BOOST_CHECK_EQUAL( res.inRepo(), res.inSolvable().repository() ); BOOST_CHECK_EQUAL( res.inSolvAttr(), sat::SolvAttr::name ); } } BOOST_CHECK_EQUAL( total, satpool.solvablesSize() ); } } BOOST_AUTO_TEST_CASE(LookupAttr_itetate_all_attributes) { sat::Pool satpool( test.satpool() ); // iterate all: sat::LookupAttr all( sat::SolvAttr::allAttr ); { unsigned total = 0; for_( it, satpool.reposBegin(), satpool.reposEnd() ) { // iterate one repo: sat::LookupAttr q( sat::SolvAttr::allAttr, *it ); total += q.size(); } BOOST_CHECK_EQUAL( total, all.size() ); } { unsigned total = 0; for_( it, satpool.solvablesBegin(), satpool.solvablesEnd() ) { // iterate one solvable: sat::LookupAttr q( sat::SolvAttr::allAttr, *it ); total += q.size(); } BOOST_CHECK_EQUAL( total, all.size() ); } } BOOST_AUTO_TEST_CASE(LookupAttr_solvable_attribute_substructure) { sat::LookupAttr q( sat::SolvAttr::updateReference ); BOOST_CHECK_EQUAL( q.size(), 303 ); for_( res, q.begin(), q.end() ) { BOOST_CHECK( ! res.subEmpty() ); BOOST_CHECK_EQUAL( res.subSize(), 4 ); BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::allAttr ), res.subBegin() ); BOOST_CHECK_EQUAL( res.subFind( "" ), res.subBegin() ); BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::updateReference ), res.subEnd() ); BOOST_CHECK_EQUAL( res.subFind( "noval" ), res.subEnd() ); BOOST_CHECK_NE( res.subFind( sat::SolvAttr::updateReferenceType ), res.subEnd() ); BOOST_CHECK_NE( res.subFind( sat::SolvAttr::updateReferenceHref ), res.subEnd() ); BOOST_CHECK_NE( res.subFind( sat::SolvAttr::updateReferenceId ), res.subEnd() ); BOOST_CHECK_NE( res.subFind( sat::SolvAttr::updateReferenceTitle ), res.subEnd() ); BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::updateReferenceType ), res.subFind( "type" ) ); BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::updateReferenceHref ), res.subFind( "href" ) ); BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::updateReferenceId ), res.subFind( "id" ) ); BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::updateReferenceTitle ), res.subFind( "title" ) ); // repeatedly calling subBegin() is ok: BOOST_CHECK_EQUAL( res.subFind( sat::SolvAttr::updateReferenceType ).subBegin(), res.subBegin() ); } // search substructure id without parent-structure works for wellknown structures: q = sat::LookupAttr( sat::SolvAttr::updateReferenceId ); BOOST_CHECK_EQUAL( q.size(), 303 ); // search id in parent-structure: q = sat::LookupAttr( sat::SolvAttr::updateReferenceId, sat::SolvAttr::updateReference ); BOOST_CHECK_EQUAL( q.size(), 303 ); // search id in any parent-structure: q = sat::LookupAttr( sat::SolvAttr::updateReferenceId, sat::SolvAttr::allAttr ); BOOST_CHECK_EQUAL( q.size(), 303 ); // search any id in parent-structure: (4 ids per updateReference) q = sat::LookupAttr( sat::SolvAttr::allAttr, sat::SolvAttr::updateReference ); BOOST_CHECK_EQUAL( q.size(), 1212 ); // search any id in any parent-structure: q = sat::LookupAttr( sat::SolvAttr::allAttr, sat::SolvAttr::allAttr ); BOOST_CHECK_EQUAL( q.size(), 10473 ); } BOOST_AUTO_TEST_CASE(LookupAttr_repoattr) { sat::LookupAttr q( sat::SolvAttr::repositoryAddedFileProvides, sat::LookupAttr::REPO_ATTR ); BOOST_CHECK( ! q.empty() ); BOOST_CHECK_EQUAL( q.size(), 264 ); sat::LookupRepoAttr p( sat::SolvAttr::repositoryAddedFileProvides ); BOOST_CHECK( ! p.empty() ); BOOST_REQUIRE_EQUAL( p.size(), q.size() ); sat::LookupRepoAttr::iterator pit( p.begin() ); for_( qit, q.begin(), q.end() ) { BOOST_CHECK_EQUAL( qit, pit ); ++pit; } } #if 0 BOOST_AUTO_TEST_CASE(LookupAttr_) { base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "/tmp/YLOG" ) ); MIL << "GO" << endl; } #endif libzypp-17.7.0/tests/sat/Map_test.cc000066400000000000000000000032311334444677500173330ustar00rootroot00000000000000#include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Easy.h" #include "zypp/sat/Map.h" #define BOOST_TEST_MODULE Map using std::endl; using std::cout; using namespace zypp; using namespace boost::unit_test; BOOST_AUTO_TEST_CASE(basic) { sat::Map m; BOOST_CHECK_EQUAL( m.empty(), true ); BOOST_CHECK_EQUAL( m.size(), 0 ); BOOST_CHECK_EQUAL( m.asString(), "" ); BOOST_CHECK( m == sat::Map() ); m.grow( 8 ); BOOST_CHECK_EQUAL( m.empty(), false ); BOOST_CHECK_EQUAL( m.size(), 8 ); BOOST_CHECK_EQUAL( m.asString(), "00000000" ); BOOST_CHECK( m != sat::Map() ); m.grow( 9 ); BOOST_CHECK_EQUAL( m.empty(), false ); BOOST_CHECK_EQUAL( m.size(), 16 ); BOOST_CHECK_EQUAL( m.asString(), "0000000000000000" ); m.grow( 0 ); // no shrink! BOOST_CHECK_EQUAL( m.size(), 16 ); m.setAll(); BOOST_CHECK_EQUAL( m.asString(), "1111111111111111" ); m.clear( 0 ); m.assign( 3, false ); BOOST_CHECK_EQUAL( m.asString(), "0110111111111111" ); BOOST_CHECK_EQUAL( m.test( 0 ), false ); BOOST_CHECK_EQUAL( m.test( 1 ), true ); // COW m.clearAll(); sat::Map n(m); BOOST_CHECK_EQUAL( m.asString(), "0000000000000000" ); BOOST_CHECK_EQUAL( n.asString(), "0000000000000000" ); BOOST_CHECK_EQUAL( m, n ); m.set( 1 ); BOOST_CHECK_EQUAL( m.asString(), "0100000000000000" ); BOOST_CHECK_EQUAL( n.asString(), "0000000000000000" ); BOOST_CHECK( m != n ); n.set( 1 ); BOOST_CHECK_EQUAL( m.asString(), "0100000000000000" ); BOOST_CHECK_EQUAL( n.asString(), "0100000000000000" ); BOOST_CHECK( m == n ); BOOST_CHECK_THROW( m.set( 99 ), std::out_of_range ); } libzypp-17.7.0/tests/sat/Pool_test.cc000066400000000000000000000047151334444677500175370ustar00rootroot00000000000000#include "TestSetup.h" #include #include static TestSetup test( Arch_x86_64 ); namespace zypp { namespace detail { /** \relates RepositoryIterator Stream output */ inline std::ostream & operator<<( std::ostream & str, const RepositoryIterator & obj ) { str << "RI["<< *obj <<"]"; return str; } }} // Must be the first test! BOOST_AUTO_TEST_CASE(findSystemRepo) { // On the fly check that findSystemRepo does not // cause loading the SystemRepo. check 2 times. BOOST_REQUIRE( ! test.satpool().findSystemRepo() ); BOOST_REQUIRE( ! test.satpool().findSystemRepo() ); } void checkRepoIter() { sat::Pool satpool( test.satpool() ); sat::Pool::size_type count = satpool.reposSize(); for_( it, satpool.reposBegin(), satpool.reposEnd() ) { cout << "- " << count << " " << *it << endl; BOOST_CHECK( *it ); --count; } BOOST_CHECK_EQUAL( count, 0 ); } BOOST_AUTO_TEST_CASE(repolist) { // libzypp-11: underlying libsolv changed the pools repository // pointer list. It may now contain emebeded NULLs which have // to be skipped when iterating the repos. // sat::Pool satpool( test.satpool() ); BOOST_CHECK( satpool.reposEmpty() ); BOOST_CHECK_EQUAL( satpool.reposSize(), 0 ); checkRepoIter(); // empty @system to pool test.satpool().systemRepo(); BOOST_REQUIRE( satpool.findSystemRepo() ); BOOST_CHECK( !satpool.reposEmpty() ); BOOST_CHECK_EQUAL( satpool.reposSize(), 1 ); checkRepoIter(); test.loadRepo( TESTS_SRC_DIR "/data/obs_virtualbox_11_1" ); BOOST_CHECK( !satpool.reposEmpty() ); BOOST_CHECK_EQUAL( satpool.reposSize(), 2 ); checkRepoIter(); test.loadRepo( TESTS_SRC_DIR "/data/11.0-update" ); BOOST_CHECK( !satpool.reposEmpty() ); BOOST_CHECK_EQUAL( satpool.reposSize(), 3 ); checkRepoIter(); satpool.reposErase( ":obs_virtualbox_11_1" ); BOOST_CHECK( !satpool.reposEmpty() ); BOOST_CHECK_EQUAL( satpool.reposSize(), 2 ); checkRepoIter(); satpool.reposErase( ":11.0-update" ); test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1" ); BOOST_CHECK( !satpool.reposEmpty() ); BOOST_CHECK_EQUAL( satpool.reposSize(), 2 ); checkRepoIter(); /* for_( it, satpool.reposBegin(), satpool.reposEnd() ) { cout << "- " << *it << endl; }*/ //test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1" ); } #if 0 BOOST_AUTO_TEST_CASE(LookupAttr_) { base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "/tmp/YLOG" ) ); MIL << "GO" << endl; } #endif libzypp-17.7.0/tests/sat/Queue_test.cc000066400000000000000000000023251334444677500177050ustar00rootroot00000000000000#include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Easy.h" #include "zypp/sat/Queue.h" #define BOOST_TEST_MODULE Queue using std::endl; using std::cout; using namespace zypp; using namespace boost::unit_test; BOOST_AUTO_TEST_CASE(basic) { sat::Queue m; BOOST_CHECK_EQUAL( m.empty(), true ); BOOST_CHECK_EQUAL( m.size(), 0 ); BOOST_CHECK_EQUAL( m.begin(), m.end() ); BOOST_CHECK( m == sat::Queue() ); BOOST_CHECK_EQUAL( m.first(), 0 ); BOOST_CHECK_EQUAL( m.last(), 0 ); m.push( 13 ); BOOST_CHECK_EQUAL( m.empty(), false ); BOOST_CHECK_EQUAL( m.size(), 1 ); BOOST_CHECK( m.begin() != m.end() ); BOOST_CHECK_EQUAL( m.begin()+1, m.end() ); BOOST_CHECK_EQUAL( m.first(), 13 ); BOOST_CHECK_EQUAL( m.last(), 13 ); BOOST_CHECK_EQUAL( m.at(0), 13 ); BOOST_CHECK_THROW( m.at(1), std::out_of_range ); BOOST_CHECK( m.contains(13) ); BOOST_CHECK( !m.contains(14) ); BOOST_CHECK_EQUAL( m.find(13), m.begin() ); BOOST_CHECK_EQUAL( m.find(14), m.end() ); m.pushUnique( 13 ); BOOST_CHECK_EQUAL( m.size(), 1 ); m.push( 13 ); BOOST_CHECK_EQUAL( m.size(), 2 ); m.remove( 13 ); BOOST_CHECK_EQUAL( m.size(), 0 ); } libzypp-17.7.0/tests/sat/SolvParsing_test.cc000066400000000000000000000104411334444677500210660ustar00rootroot00000000000000#include #include #include #include "zypp/base/Logger.h" #include "zypp/TmpPath.h" #include "zypp/RepoManager.h" #include "zypp/base/Easy.h" #include "zypp/ZYppFactory.h" #include "zypp/Package.h" #include "zypp/sat/Solvable.h" // allows us to control signature // callbacks #include "KeyRingTestReceiver.h" #define BOOST_TEST_MODULE ResObject using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; /* * this test test that the attributes * from the metadata are preserved into * the final object * * so the test covers both libsolv-tools * right insertion and parsing * and libzypp ResObject and friends data * extraction from solv files */ // init the solv static void init_pool_yum() { Pathname dir(TESTS_SRC_DIR); dir += "/repo/yum/data/10.2-updates-subset"; ZYpp::Ptr z = getZYpp(); ZConfig::instance().setSystemArchitecture(Arch("i586")); filesystem::TmpDir tmp; RepoManagerOptions opts = RepoManagerOptions::makeTestSetup(tmp.path()); RepoManager mgr(opts); KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // disable sgnature checking keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); keyring_callbacks.answerAcceptVerFailed(true); keyring_callbacks.answerAcceptUnknownKey(true); RepoInfo info; info.setAlias("updates"); info.addBaseUrl(dir.asUrl()); mgr.buildCache(info); mgr.loadFromCache(info); } BOOST_AUTO_TEST_CASE(attributes) { init_pool_yum(); MIL << sat::Pool::instance(); Repository r = sat::Pool::instance().reposFind("updates"); int c = 0; for ( Repository::SolvableIterator it = r.solvablesBegin(); it != r.solvablesEnd(); ++it ) { sat::Solvable s = *it; //MIL << s.ident() << endl; if ( s.ident() == "openssl-devel" ) { c++; Package::Ptr p = asKind(makeResObject(s)); BOOST_CHECK(p); //solvable 5 (6): //name: openssl-devel 0.9.8d-17.2 i586 BOOST_CHECK_EQUAL(p->name(), "openssl-devel"); //vendor: SUSE LINUX Products GmbH, Nuernberg, Germany BOOST_CHECK_EQUAL(p->vendor(), "SUSE LINUX Products GmbH, Nuernberg, Germany"); //solvable:checksum: 9f6a44015ad97680e9f93d0edefa1d533940479c BOOST_CHECK_EQUAL(p->checksum(), CheckSum::sha1("9f6a44015ad97680e9f93d0edefa1d533940479c")); //solvable:summary: BOOST_CHECK_EQUAL(p->summary(), "Include Files and Libraries mandatory for Development."); //solvable:description: This package contains all necessary include files and libraries needed //to develop applications that require these. BOOST_CHECK_EQUAL(p->description(), "This package contains all necessary include files and libraries needed\nto develop applications that require these."); //solvable:authors: Mark J. Cox //Ralf S. Engelschall //Dr. Stephen //Ben Laurie //Bodo Moeller //Ulf Moeller //Holger Reif //Paul C. Sutton //solvable:packager: http://bugs.opensuse.org //solvable:url: http://www.openssl.org/ //solvable:buildtime: 1165493634 //solvable:installsize: 3845 BOOST_CHECK_EQUAL(p->installSize(), ByteCount(3937193)); //solvable:downloadsize: 909 BOOST_CHECK_EQUAL(p->downloadSize(), ByteCount(930588)); //solvable:mediadir: rpm/i586 //solvable:mediafile: openssl-devel-0.9.8d-17.2.i586.rpm //solvable:license: BSD License and BSD-like, Other License(s), see package //solvable:group: Development/Libraries/C and C++ BOOST_CHECK_EQUAL(p->group(), "Development/Libraries/C and C++"); //solvable:sourcearch: src //solvable:sourceevr: (void) //solvable:sourcename: openssl //solvable:headerend: 34861 } } // check that we actually found all testeable // resolvables BOOST_CHECK_EQUAL(c, 1); } libzypp-17.7.0/tests/sat/Solvable_test.cc000066400000000000000000000200151334444677500203640ustar00rootroot00000000000000#include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Easy.h" #include "zypp/Pattern.h" #include "zypp/sat/Solvable.h" #include "TestSetup.h" #define BOOST_TEST_MODULE Solvable using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; BOOST_AUTO_TEST_CASE(test_init) { TestSetup test( Arch_x86_64 ); test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" ); test.loadRepo( TESTS_SRC_DIR "/data/11.0-update", "update" ); } BOOST_AUTO_TEST_CASE(attributes) { MIL << sat::Pool::instance(); Repository r = sat::Pool::instance().reposFind("opensuse"); int c = 0; for ( Repository::SolvableIterator it = r.solvablesBegin(); it != r.solvablesEnd(); ++it ) { sat::Solvable s = *it; //MIL << s.ident() << endl; if ( s.ident() == "pattern:apparmor" ) { c++; // solvable 21795 (21796): // name: pattern:apparmor 11.0-67 i586 // vendor: SUSE LINUX Products GmbH, Nuernberg, Germany // provides: // pattern:apparmor = 11.0-67 // requires: // pattern:basesystem // apparmor-parser // audit // apparmor-profiles // recommends: // yast2-apparmor // apparmor-utils // pattern:apparmor_opt // solvable:category: Base Technologies // solvable:icon: yast-software // solvable:summary: Novell AppArmor // solvable:description: Novell AppArmor is an application security framework that provides mandatory access control for programs. It protects from exploitation of software flaws and compromised systems. It offers an advanced tool set that automates the development of per-program application security without requiring additional knowledge. // solvable:isvisible: 1 // solvable:order: 1030 Pattern::Ptr p = asKind(makeResObject(s)); BOOST_CHECK(p); BOOST_CHECK_EQUAL(p->name(), "apparmor"); BOOST_CHECK_EQUAL(p->vendor(), "SUSE LINUX Products GmbH, Nuernberg, Germany"); BOOST_CHECK_EQUAL(p->category(), "Base Technologies"); BOOST_CHECK_EQUAL(p->summary(), "Novell AppArmor"); BOOST_CHECK_EQUAL(p->icon(), "pattern-apparmor"); BOOST_CHECK_EQUAL(p->userVisible(), true); BOOST_CHECK_EQUAL(p->isDefault(), false); } if ( s.ident() == "pattern:default" ) { c++; Pattern::Ptr p = asKind(makeResObject(s)); BOOST_CHECK(p); BOOST_CHECK_EQUAL(p->userVisible(), false); } } // check that we actually found all testeable // resolvables BOOST_CHECK_EQUAL(c, 2); } BOOST_AUTO_TEST_CASE(asStringTest) { BOOST_CHECK_EQUAL( sat::Solvable(0).asString(), "noSolvable" ); BOOST_CHECK_EQUAL( sat::Solvable(1).asString(), "systemSolvable" ); BOOST_CHECK_EQUAL( sat::Solvable(2).asString(), "product:openSUSE-11.1.x86_64" ); BOOST_CHECK_EQUAL( sat::Solvable(3693).asString(), "autoyast2-2.16.19-0.1.src" ); BOOST_CHECK_EQUAL( sat::Solvable(19222).asString(), "noSolvable" ); #if 0 Repository r = sat::Pool::instance().reposFind("update"); for_( it, r.solvablesBegin(), r.solvablesEnd() ) { BOOST_CHECK_EQUAL( (*it).asString(), str::numstring((*it).id()) ); } #endif } BOOST_AUTO_TEST_CASE(SplitIdent) { sat::Solvable::SplitIdent split; BOOST_CHECK_EQUAL( split.ident(), IdString() ); BOOST_CHECK_EQUAL( split.kind(), ResKind() ); BOOST_CHECK_EQUAL( split.name(), IdString() ); // - kind defaults to package // - package and srcpackage have NO namespaced ident. split = sat::Solvable::SplitIdent( "foo" ); BOOST_CHECK_EQUAL( split.ident(), "foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "foo" ); split = sat::Solvable::SplitIdent( "nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( "package:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::pattern ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( "srcpackage:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); // !!! BOOST_CHECK_EQUAL( split.kind(), ResKind::srcpackage ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); // now split from kind,name // - kind spec in name wins! split = sat::Solvable::SplitIdent( ResKind::package, "nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::pattern, "nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::pattern ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::srcpackage, "nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::srcpackage ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::package, "package:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::pattern, "package:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::srcpackage, "package:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::package ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::package, "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::pattern ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::pattern, "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::pattern ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::srcpackage, "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "pattern:nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::pattern ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::package, "srcpackage:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::srcpackage ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::pattern, "srcpackage:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::srcpackage ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); split = sat::Solvable::SplitIdent( ResKind::srcpackage, "srcpackage:nokind:foo" ); BOOST_CHECK_EQUAL( split.ident(), "nokind:foo" ); BOOST_CHECK_EQUAL( split.kind(), ResKind::srcpackage ); BOOST_CHECK_EQUAL( split.name(), "nokind:foo" ); } BOOST_AUTO_TEST_CASE(duData) { DiskUsageCounter ducounter( DiskUsageCounter::justRootPartition() ); sat::Solvable s = *sat::WhatProvides( Capability("glibc-devel.x86_64 == 2.8.90-2.3") ).begin(); BOOST_CHECK_EQUAL( (*ducounter.disk_usage( s ).begin()).pkg_size, 30629 ); } libzypp-17.7.0/tests/sat/WhatObsoletes_test.cc000066400000000000000000000014561334444677500214100ustar00rootroot00000000000000#include "TestSetup.h" #include namespace zypp { namespace sat { // Obsoletes may either match against provides, or names. // Configuration depends on the behaviour of rpm. extern bool obsoleteUsesProvides; } } BOOST_AUTO_TEST_CASE(WhatObsoletes) { TestSetup test( Arch_x86_64 ); test.loadTestcaseRepos( TESTS_SRC_DIR"/data/TCWhatObsoletes" ); sat::Solvable test1( 2 ); BOOST_REQUIRE_EQUAL( test1.name(), "test1" ); { sat::obsoleteUsesProvides = true; sat::WhatObsoletes w( test1 ); BOOST_REQUIRE( w.size() == 2 ); // (3)goaway-1-1.i586(@System) // (5)meetoo-1-1.i586(@System) } { sat::obsoleteUsesProvides = false; sat::WhatObsoletes w( test1 ); BOOST_REQUIRE( w.size() == 1 ); // (3)goaway-1-1.i586(@System) } }libzypp-17.7.0/tests/sat/WhatProvides_test.cc000066400000000000000000000030461334444677500212410ustar00rootroot00000000000000#include "TestSetup.h" BOOST_AUTO_TEST_CASE(WhatProvides) { TestSetup test( Arch_x86_64 ); test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" ); { sat::WhatProvides q( Capability("zypper") ); BOOST_CHECK( ! q.empty() ); BOOST_CHECK( q.size() == 1 ); } { sat::WhatProvides q( Capability("zypper.x86_64 == 0.12.5-1.1") ); BOOST_CHECK( ! q.empty() ); BOOST_CHECK( q.size() == 1 ); } { sat::WhatProvides q( Capability("zypper.i586 == 0.12.5-1.1") ); BOOST_CHECK( q.empty() ); BOOST_CHECK( q.size() == 0 ); } { // sat::WhatProvides::const_iterator requires proper // copyctor and assignment. If they break sat::WhatProvides q; BOOST_CHECK( q.begin() == q.begin() ); BOOST_CHECK( q.begin() == q.end() ); q = sat::WhatProvides( Capability("zypper.x86_64 == 0.12.5-1.1") ); // q no longer empty BOOST_CHECK( q.begin() == q.begin() ); BOOST_CHECK( q.begin() != q.end() ); sat::WhatProvides::const_iterator a; BOOST_CHECK( a == q.end() ); sat::WhatProvides::const_iterator b( q.begin() ); BOOST_CHECK( b == q.begin() ); // SEC << LABELED(q.begin()) << endl; // SEC << LABELED(q.end()) << endl; // SEC << LABELED(a) << endl; // SEC << LABELED(b) << endl; { a = q.begin(); BOOST_CHECK( a == q.begin() ); // SEC << LABELED(a) << endl; // SEC << LABELED(b) << endl; a = b; BOOST_CHECK( a == b ); // SEC << LABELED(a) << endl; // SEC << LABELED(b) << endl; } BOOST_CHECK( a == q.begin() ); } } libzypp-17.7.0/tests/zypp/000077500000000000000000000000001334444677500154645ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/Arch_test.cc000066400000000000000000000053331334444677500177130ustar00rootroot00000000000000// Arch.cc // // tests for Arch // #include #include #include #include "zypp/base/Logger.h" #include "zypp/Arch.h" // Boost.Test #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; /****************************************************************** ** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int ** ** DESCRIPTION : */ BOOST_AUTO_TEST_CASE(arch_test) { ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// BOOST_REQUIRE( Arch() == Arch_noarch ); BOOST_REQUIRE( Arch("") == Arch_empty ); BOOST_REQUIRE( ! Arch_noarch.empty() ); BOOST_REQUIRE( Arch_empty.empty() ); BOOST_REQUIRE( Arch_noarch.isBuiltIn() ); BOOST_REQUIRE( ! Arch_empty.isBuiltIn() ); BOOST_REQUIRE( Arch_empty != Arch_noarch ); ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// BOOST_CHECK_EQUAL( Arch("i386"), Arch_i386 ); BOOST_CHECK_EQUAL( Arch("i386").idStr(), "i386" ); BOOST_CHECK_EQUAL( Arch("i386").asString(), "i386" ); BOOST_REQUIRE( Arch_i386.isBuiltIn() ); BOOST_CHECK_EQUAL( Arch("FOO").idStr(), "FOO" ); BOOST_CHECK_EQUAL( Arch("FOO").asString(), "FOO" ); BOOST_REQUIRE( ! Arch("FOO").isBuiltIn() ); ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_noarch ) ); BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_i386 ) ); BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_x86_64 ) ); BOOST_REQUIRE( ! Arch_i386.compatibleWith( Arch_noarch ) ); BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_i386 ) ); BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_x86_64 ) ); BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_noarch ) ); BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_i386 ) ); BOOST_REQUIRE( Arch_x86_64.compatibleWith( Arch_x86_64 ) ); ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// BOOST_CHECK_EQUAL( Arch::baseArch( Arch_x86_64 ), Arch_x86_64 ); BOOST_CHECK_EQUAL( Arch::baseArch( Arch_i686 ), Arch_i386 ); ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// BOOST_REQUIRE( Arch_i386.compare( Arch_noarch ) > 0 ); BOOST_REQUIRE( Arch_i386.compare( Arch_i386 ) == 0 ); BOOST_REQUIRE( Arch_i386.compare( Arch_x86_64 ) < 0 ); } libzypp-17.7.0/tests/zypp/CMakeLists.txt000066400000000000000000000015121334444677500202230ustar00rootroot00000000000000ADD_SUBDIRECTORY(base) # set the vendor.d paths correctly for the tests SET(VENDOR_D "${LIBZYPP_SOURCE_DIR}/tests/zypp/data/Vendor/vendors.d") FILE(MAKE_DIRECTORY "${LIBZYPP_BINARY_DIR}/tests/zypp/data/Vendor") CONFIGURE_FILE(${LIBZYPP_SOURCE_DIR}/tests/zypp/data/Vendor/zypp2.conf.cmake ${LIBZYPP_BINARY_DIR}/tests/zypp/data/Vendor/zypp2.conf @ONLY) ADD_TESTS( Arch Capabilities CheckSum ContentType CpeId Date DrunkenBishop Dup Digest Deltarpm Edition ExtendedPool Fetcher FileChecker Flags InstanceId KeyRing Locale Locks MediaSetAccess PathInfo Pathname PluginFrame PoolQuery ProgressData PtrTypes PublicKey RWPtr RepoInfo RepoManager RepoStatus ResKind ResStatus Selectable SetRelationMixin SetTracker StrMatcher Target Url UserData Vendor Vendor2 ) libzypp-17.7.0/tests/zypp/Capabilities_test.cc000066400000000000000000000201551334444677500214260ustar00rootroot00000000000000// Capabilities.cc // // tests for Capabilities // #include #include // Boost.Test #include #include "TestSetup.h" #include "zypp/Arch.h" #include "zypp/Capability.h" #include "zypp/Capabilities.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; static TestSetup test( Arch_x86_64 ); BOOST_AUTO_TEST_CASE(capabilities_test) { ////////////////////////////////////////////////////////////////////// // Id 0 and 1 are nor equal, but share the same representation ""/NOCAP ////////////////////////////////////////////////////////////////////// Capability c0( 0 ); // id 0 Capability c1( 1 ); // id 1 Capability cD; // default constructed empty Capability cE( "" ); // empty BOOST_CHECK_EQUAL( c0.id(), 0 ); BOOST_CHECK_EQUAL( c1.id(), 1 ); BOOST_CHECK_EQUAL( Capability().id(), 1 ); // default constructed empty BOOST_CHECK_EQUAL( Capability("").id(), 1 ); // empty BOOST_CHECK_EQUAL( c0.asString(), "" ); BOOST_CHECK_EQUAL( c1.asString(), "" ); BOOST_CHECK_EQUAL( c0.empty(), true ); BOOST_CHECK_EQUAL( c1.empty(), true ); BOOST_CHECK_EQUAL( c0.detail().kind(), CapDetail::NOCAP ); BOOST_CHECK_EQUAL( c1.detail().kind(), CapDetail::NOCAP ); BOOST_CHECK_EQUAL( ( c0 == c1 ), false ); BOOST_CHECK_EQUAL( Capability::matches( c0, c1 ), CapMatch::yes ); ////////////////////////////////////////////////////////////////////// // skipping internal marker in Capabilities ////////////////////////////////////////////////////////////////////// Capability r( "req" ); Capability p( "prereq" ); sat::detail::IdType caps[10]; caps[0] = r.id(); caps[1] = sat::detail::solvablePrereqMarker; caps[2] = p.id(); caps[3] = 0; // Capabilities with and without prereq (skip marker in ++) Capabilities c( caps ); //cout << c << endl; BOOST_CHECK_EQUAL( c.size(), 2 ); Capabilities::const_iterator it( c.begin() ); BOOST_CHECK_EQUAL( *it, r ); BOOST_CHECK_EQUAL( it.tagged(), false ); ++it; BOOST_CHECK_EQUAL( *it, p ); BOOST_CHECK_EQUAL( it.tagged(), true ); // Capabilities with prereq only (skip marker in ctor) c = Capabilities( caps+1 ); //cout << c << endl; BOOST_CHECK_EQUAL( c.size(), 1 ); it = c.begin(); BOOST_CHECK_EQUAL( *it, p ); BOOST_CHECK_EQUAL( it.tagged(), true ); ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// Capability n( "na.me" ); Capability na( "na.me.i386" ); Capability noe( "na.me == 1" ); Capability naoe( "na.me.i386 == 1" ); BOOST_CHECK_EQUAL( n.detail().kind(), CapDetail::NAMED ); BOOST_CHECK_EQUAL( na.detail().kind(), CapDetail::NAMED ); BOOST_CHECK_EQUAL( noe.detail().kind(), CapDetail::VERSIONED ); BOOST_CHECK_EQUAL( naoe.detail().kind(), CapDetail::VERSIONED ); BOOST_CHECK_EQUAL( n.detail().hasArch(), false ); BOOST_CHECK_EQUAL( na.detail().hasArch(), true ); BOOST_CHECK_EQUAL( noe.detail().hasArch(), false ); BOOST_CHECK_EQUAL( naoe.detail().hasArch(), true ); BOOST_CHECK ( n.detail().arch().empty() ); BOOST_CHECK_EQUAL( na.detail().arch(), Arch_i386.idStr() ); BOOST_CHECK ( noe.detail().arch().empty() ); BOOST_CHECK_EQUAL( naoe.detail().arch(), Arch_i386.idStr() ); BOOST_CHECK_EQUAL( Capability( "", "na.me", "", "" ), n ); BOOST_CHECK_EQUAL( Capability( "i386", "na.me", "", "" ), na ); BOOST_CHECK_EQUAL( Capability( "", "na.me", "==", "1" ), noe ); BOOST_CHECK_EQUAL( Capability( "i386", "na.me", "==", "1" ), naoe ); // explicit arch BOOST_CHECK_EQUAL( Capability( Arch_i386, "na.me" ), na ); BOOST_CHECK_EQUAL( Capability( Arch_i386, "na.me == 1" ), naoe ); } BOOST_AUTO_TEST_CASE(guessPackageSpec) { BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "" ), Capability( "", "", "", "" ) ); // Remember: 'name OP ver-rel': name may match provides // 'name-ver-rel': name may match package names only // With no libzypp in the pool, no guess should succeed: BOOST_REQUIRE( sat::WhatProvides(Capability("libzypp")).empty() ); // these must be guessed BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp-1-2" ), Capability( "", "libzypp-1-2", "", "" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp-1-2.i586" ), Capability( "i586", "libzypp-1-2", "", "" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp.i586-1-2" ), Capability( "", "libzypp.i586-1-2", "", "" ) ); // these are unambiguous BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "patch:swmgmt=12" ), Capability( "", "swmgmt", "=", "12", ResKind::patch ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp=0:1.0.2-2" ), Capability( "", "libzypp", "=", "0:1.0.2-2" ) ); // now load some repo providing libzypp and see how the guessing changes: test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" ); BOOST_REQUIRE( ! sat::WhatProvides(Capability("libzypp")).empty() ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp-1-2" ), Capability( "", "libzypp", "=", "1-2" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp-1-2.i586" ), Capability( "i586", "libzypp", "=", "1-2" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp.i586-1-2" ), Capability( "i586", "libzypp", "=", "1-2" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp<=1.0.2-2" ), Capability( "", "libzypp", "<=", "1.0.2-2" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp<=1:1.0.2-2" ), Capability( "", "libzypp", "<=", "1:1.0.2-2" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp-0:1.0.2-2" ), Capability( "", "libzypp", "=", "0:1.0.2-2" ) ); // now with yast2-packagemanager which is just a provides. Guess must not lead to libzypp. BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "yast2-packagemanager-1-2" ), Capability( "", "yast2-packagemanager-1-2", "", "" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "yast2-packagemanager-1-2.i586" ), Capability( "i586", "yast2-packagemanager-1-2", "", "" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "yast2-packagemanager.i586-1-2" ), Capability( "", "yast2-packagemanager.i586-1-2","", "" ) ); // these are unambiguous BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "yast2-packagemanager<=1.0.2-2" ), Capability( "", "yast2-packagemanager", "<=", "1.0.2-2" ) ); BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "yast2-packagemanager<=1:1.0.2-2" ), Capability( "", "yast2-packagemanager", "<=", "1:1.0.2-2" ) ); // Double arch spec: the trailing one succeeds, the other one gets part of the name. // As "libzypp.i586' is not in the pool, guessing fails. Result is a named cap. BOOST_CHECK_EQUAL( Capability::guessPackageSpec( "libzypp.i586-1-2.ppc" ), Capability( "ppc", "libzypp.i586-1-2", "", "" ) ); // Now check prepended kind specs. Capability cap( "package:libzypp=1-2" ); BOOST_CHECK_EQUAL( cap, Capability( "", "libzypp", "=", "1-2", ResKind::package ) ); BOOST_CHECK_EQUAL( cap, Capability( "", "package:libzypp", "=", "1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability( "", "package:libzypp", "=", "1-2", ResKind::pattern ) ); // known name prefix wins // 'package:' is the default BOOST_CHECK_EQUAL( cap, Capability( "libzypp=1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability( "", "libzypp", "=", "1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability::guessPackageSpec( "package:libzypp-1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability::guessPackageSpec( "package:libzypp=1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability::guessPackageSpec( "libzypp-1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability::guessPackageSpec( "libzypp=1-2" ) ); cap = Capability( "pattern:32bit=1-2" ); BOOST_CHECK_EQUAL( cap, Capability( "", "32bit", "=", "1-2", ResKind::pattern ) ); BOOST_CHECK_EQUAL( cap, Capability( "", "pattern:32bit", "=", "1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability( "", "pattern:32bit", "=", "1-2", ResKind::package ) ); // known name prefix wins BOOST_CHECK_EQUAL( cap, Capability::guessPackageSpec( "pattern:32bit-1-2" ) ); BOOST_CHECK_EQUAL( cap, Capability::guessPackageSpec( "pattern:32bit=1-2" ) ); } libzypp-17.7.0/tests/zypp/CheckSum_test.cc000066400000000000000000000043141334444677500205360ustar00rootroot00000000000000#include #include #include // Boost.Test #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/ZYppFactory.h" #include "zypp/Digest.h" #include "zypp/ZYpp.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; void chksumtest( const std::string & type_r, const std::string & sum_r ) { BOOST_CHECK_EQUAL( type_r, CheckSum( sum_r ).type() ); // autodetect type BOOST_CHECK_EQUAL( type_r, CheckSum( type_r, sum_r ).type() ); BOOST_CHECK_EQUAL( sum_r, Digest::digest( type_r, "" ) ); for ( const std::string & t : { "md5", "sha1", "sha224", "sha256", "sha384", "sha512", } ) { if ( t != type_r ) { BOOST_CHECK_THROW( CheckSum( t, sum_r ), Exception ); // wrong type/size } } } // most frequently you implement test cases as a free functions BOOST_AUTO_TEST_CASE(checksum_test) { CheckSum e; BOOST_CHECK( e.empty() ); BOOST_CHECK( e.type().empty() ); BOOST_CHECK( e.checksum().empty() ); // sum for "" // md5 32 d41d8cd98f00b204e9800998ecf8427e // 1 40 da39a3ee5e6b4b0d3255bfef95601890afd80709 // 224 56 d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f // 256 64 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 // 384 96 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b // 512 128 cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e chksumtest( CheckSum::md5Type(), "d41d8cd98f00b204e9800998ecf8427e" ); chksumtest( CheckSum::sha1Type(), "da39a3ee5e6b4b0d3255bfef95601890afd80709" ); chksumtest( CheckSum::sha224Type(), "d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f" ); chksumtest( CheckSum::sha256Type(), "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" ); chksumtest( CheckSum::sha384Type(), "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b" ); chksumtest( CheckSum::sha512Type(), "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" ); } libzypp-17.7.0/tests/zypp/ContentType_test.cc000066400000000000000000000035741334444677500213170ustar00rootroot00000000000000#include #include #include #include "zypp/ContentType.h" using std::cout; using std::endl; using zypp::ContentType; BOOST_AUTO_TEST_CASE(contenttype_default) { ContentType v; BOOST_CHECK( !v ); BOOST_CHECK( v.empty() ); BOOST_CHECK( v.emptyType() ); BOOST_CHECK( v.emptySubtype() ); ContentType w( "/" ); BOOST_CHECK_EQUAL( v == w, true ); BOOST_CHECK_EQUAL( v != w, false ); BOOST_CHECK_EQUAL( v < w, false ); BOOST_CHECK_EQUAL( v <= w, true ); BOOST_CHECK_EQUAL( v > w, false ); BOOST_CHECK_EQUAL( v >= w, true ); BOOST_CHECK_EQUAL( v.asString(), "" ); } BOOST_AUTO_TEST_CASE(contenttype_val) { BOOST_CHECK_THROW( ContentType( " " ), std::invalid_argument ); BOOST_CHECK_THROW( ContentType( "//" ), std::invalid_argument ); BOOST_CHECK_THROW( ContentType( "/ " ), std::invalid_argument ); BOOST_CHECK_THROW( ContentType( "/", "a" ), std::invalid_argument ); BOOST_CHECK_THROW( ContentType( "a", "/" ), std::invalid_argument ); BOOST_CHECK_THROW( ContentType( " ", "a" ), std::invalid_argument ); BOOST_CHECK_THROW( ContentType( "a", " " ), std::invalid_argument ); } BOOST_AUTO_TEST_CASE(contenttype_cmp) { std::set c( { ContentType( "" ), ContentType( "/" ), // == "" ContentType( "a" ), ContentType( "a/" ), // == "a" ContentType( "/a" ), ContentType( "" , "a" ), // == "/a" ContentType( "a/b" ), ContentType( "b/b" ), ContentType( "b/c" ) }); std::set::const_iterator i = c.begin(); BOOST_CHECK_EQUAL( *(i++), ContentType() ); BOOST_CHECK_EQUAL( *(i++), ContentType( "", "a" ) ); BOOST_CHECK_EQUAL( *(i++), ContentType( "a", "" ) ); BOOST_CHECK_EQUAL( *(i++), ContentType( "a", "b" ) ); BOOST_CHECK_EQUAL( *(i++), ContentType( "b", "b" ) ); BOOST_CHECK_EQUAL( *(i++), ContentType( "b", "c" ) ); BOOST_CHECK( i == c.end() ); } libzypp-17.7.0/tests/zypp/CpeId_test.cc000066400000000000000000000414141334444677500200220ustar00rootroot00000000000000#include #include #include "zypp/CpeId.h" using std::cout; using std::endl; using zypp::SetCompare; using zypp::SetRelation; using zypp::CpeId; typedef CpeId::Value Value; /////////////////////////////////////////////////////////////////// /// Symmetric attribute compare if wildcards are involved! /// The specs define any comarison with a wildcarded attribute as /// target to return \c uncomparable: /// \code /// wildcardfree <=> wildcarded ==> uncomparable, /// wildcarded <=> wildcardfree ==> superset or disjoint /// \endcode /// But a symmetric result is much more intuitive: /// \code /// wildcardfree <=> wildcarded ==> subset or disjoint /// wildcarded <=> wildcardfree ==> superset or disjoint /// \endcode /////////////////////////////////////////////////////////////////// #define WFN_STRICT_SPEC 0 #define defVALUE(N,S) \ const std::string N##Str( S ); \ Value N( N##Str ); defVALUE( wildcardfree, "STrv\\*al\\?" ); // '\?' quoted? const std::string wildcardfreeUri( "STrv%2aal%3f" ); const std::string wildcardfreeFs( "STrv\\*al\\?" ); defVALUE( wildcardfree2, "stRV\\*al\\\\\\?" ); // '\\\?' backslash, quoted? defVALUE( wildcarded, "strv\\*AL?" ); // '?' ? const std::string wildcardedUri( "strv%2aAL%01" ); const std::string wildcardedFs( "strv\\*AL?" ); defVALUE( wildcarded2, "strv\\*AL\\\\?" ); // '\\?' backslash, ? BOOST_AUTO_TEST_CASE(cpeid_value_ANY) { for ( const auto & c : { Value(), Value(nullptr), Value("*"), Value::ANY } ) { BOOST_CHECK( c.isANY() ); BOOST_CHECK( ! c.isNA() ); BOOST_CHECK( c.isLogical() ); BOOST_CHECK( ! c.isString() ); BOOST_CHECK( c == Value::ANY ); BOOST_CHECK( c == nullptr ); // ANY BOOST_CHECK( c != Value::NA ); BOOST_CHECK( c != wildcardfree ); BOOST_CHECK( c != wildcarded ); BOOST_CHECK( ! c.isWildcardfree() ); BOOST_CHECK( ! c.isWildcarded() ); BOOST_CHECK_EQUAL( c.asFs(), "*" ); BOOST_CHECK_EQUAL( c.asUri(), "" ); BOOST_CHECK_EQUAL( c.asWfn(), "*" ); BOOST_CHECK_EQUAL( c.asString(), c.asWfn() ); } } BOOST_AUTO_TEST_CASE(cpeid_value_NA) { for ( const auto & c : { Value(""), Value::NA } ) { BOOST_CHECK( ! c.isANY() ); BOOST_CHECK( c.isNA() ); BOOST_CHECK( c.isLogical() ); BOOST_CHECK( ! c.isString() ); BOOST_CHECK( c != Value::ANY ); BOOST_CHECK( c == Value::NA ); BOOST_CHECK( c == std::string() ); // NA BOOST_CHECK( c == "" ); // NA BOOST_CHECK( c != wildcardfree ); BOOST_CHECK( c != wildcarded ); BOOST_CHECK( ! c.isWildcardfree() ); BOOST_CHECK( ! c.isWildcarded() ); BOOST_CHECK_EQUAL( c.asFs(), "-" ); BOOST_CHECK_EQUAL( c.asUri(), "-" ); BOOST_CHECK_EQUAL( c.asWfn(), "" ); BOOST_CHECK_EQUAL( c.asString(), c.asWfn() ); } } BOOST_AUTO_TEST_CASE(cpeid_value_string_wildcardfree) { for ( const auto & c : { wildcardfree } ) { BOOST_CHECK( ! c.isANY() ); BOOST_CHECK( ! c.isNA() ); BOOST_CHECK( ! c.isLogical() ); BOOST_CHECK( c.isString() ); BOOST_CHECK( c != Value::ANY ); BOOST_CHECK( c != Value::NA ); BOOST_CHECK( c == wildcardfree ); BOOST_CHECK( c == wildcardfreeStr ); BOOST_CHECK( c == wildcardfreeStr.c_str() ); BOOST_CHECK( c != wildcarded ); BOOST_CHECK( c.isWildcardfree() ); BOOST_CHECK( ! c.isWildcarded() ); BOOST_CHECK_EQUAL( c.asFs(), wildcardfreeFs ); BOOST_CHECK_EQUAL( c.asUri(), wildcardfreeUri ); BOOST_CHECK_EQUAL( c.asWfn(), wildcardfreeStr ); BOOST_CHECK_EQUAL( c.asString(), c.asWfn() ); } BOOST_CHECK( wildcardfree2 == wildcardfree2 ); BOOST_CHECK( wildcardfree2 != wildcardfree ); BOOST_CHECK( wildcardfree2 != wildcarded ); BOOST_CHECK( wildcardfree2.isWildcardfree() ); BOOST_CHECK( ! wildcardfree2.isWildcarded() ); } BOOST_AUTO_TEST_CASE(cpeid_value_string_wildcarded) { for ( const auto & c : { wildcarded } ) { BOOST_CHECK( ! c.isANY() ); BOOST_CHECK( ! c.isNA() ); BOOST_CHECK( ! c.isLogical() ); BOOST_CHECK( c.isString() ); BOOST_CHECK( c != Value::ANY ); BOOST_CHECK( c != Value::NA ); BOOST_CHECK( c != wildcardfree ); #if WFN_STRICT_SPEC BOOST_CHECK( c != wildcarded ); // !!! According to the CPE Name Matching Specification Version 2.3 // unquoted wildcard characters yield an undefined result (not ==). #else BOOST_CHECK( c == wildcarded ); #endif BOOST_CHECK( ! c.isWildcardfree() ); BOOST_CHECK( c.isWildcarded() ); BOOST_CHECK_EQUAL( c.asFs(), wildcardedFs ); BOOST_CHECK_EQUAL( c.asUri(), wildcardedUri ); BOOST_CHECK_EQUAL( c.asWfn(), wildcardedStr ); BOOST_CHECK_EQUAL( c.asString(), c.asWfn() ); } #if WFN_STRICT_SPEC BOOST_CHECK( wildcarded2 != wildcarded2 ); // unquoted wildcard characters yield an undefined result (not ==). #else BOOST_CHECK( wildcarded2 == wildcarded2 ); #endif BOOST_CHECK( wildcarded2 != wildcardfree ); BOOST_CHECK( wildcarded2 != wildcarded ); BOOST_CHECK( ! wildcarded2.isWildcardfree() ); BOOST_CHECK( wildcarded2.isWildcarded() ); } BOOST_AUTO_TEST_CASE(cpeid_value_valid) { static const char *const hdig = "0123456789abcdef"; for ( char ch = 0; ch < CHAR_MAX; ++ch ) { // cout << "==== " << unsigned(ch) << endl; char qchstr[] = { '\\', ch, '\0' }; std::string chstr( qchstr+1 ); char pchstr[] = { '%', hdig[(unsigned char)(ch)/16], hdig[(unsigned char)(ch)%16], '\0' }; if ( ch == '\0' ) { BOOST_CHECK( Value( chstr ).isNA() ); BOOST_CHECK_THROW( (Value( chstr, Value::fsFormat )), std::invalid_argument ); BOOST_CHECK( Value( chstr, Value::uriFormat ).isANY() ); } else if ( ch <= ' ' || '~' < ch ) { BOOST_CHECK_THROW( (Value( chstr )), std::invalid_argument ); BOOST_CHECK_THROW( (Value( chstr, Value::fsFormat )), std::invalid_argument ); BOOST_CHECK_THROW( (Value( chstr, Value::uriFormat )), std::invalid_argument ); } else if ( ( '0' <= ch && ch <= '9' ) || ( 'A' <= ch && ch <= 'Z' ) || ( 'a' <= ch && ch <= 'z' ) || ch == '_' ) { BOOST_CHECK( Value( chstr ).isString() ); BOOST_CHECK( Value( chstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( chstr, Value::uriFormat ).isString() ); BOOST_CHECK_THROW( (Value( qchstr )), std::invalid_argument ); BOOST_CHECK( Value( qchstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( qchstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( pchstr, Value::uriFormat ).isString() ); } else if ( ch == '*' ) { BOOST_CHECK( Value( chstr ).isANY() ); BOOST_CHECK( Value( chstr, Value::fsFormat ).isANY() ); BOOST_CHECK( Value( chstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( qchstr ).isString() ); BOOST_CHECK( Value( qchstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( qchstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( pchstr, Value::uriFormat ).isString() ); } else if ( ch == '?' ) { BOOST_CHECK( Value( chstr ).isString() ); BOOST_CHECK( Value( chstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( chstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( qchstr ).isString() ); BOOST_CHECK( Value( qchstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( qchstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( pchstr, Value::uriFormat ).isString() ); } else if ( ch == '-' ) { BOOST_CHECK_THROW( (Value( chstr )), std::invalid_argument ); BOOST_CHECK( Value( chstr, Value::fsFormat ).isNA() ); BOOST_CHECK( Value( chstr, Value::uriFormat ).isNA() ); BOOST_CHECK_THROW( (Value( qchstr )), std::invalid_argument ); BOOST_CHECK( Value( qchstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( qchstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( pchstr, Value::uriFormat ).isString() ); } else if ( ch == '\\' ) { BOOST_CHECK_THROW( (Value( chstr )), std::invalid_argument ); BOOST_CHECK_THROW( (Value( chstr, Value::fsFormat )), std::invalid_argument ); BOOST_CHECK( (Value( chstr, Value::uriFormat )).isString() ); BOOST_CHECK( Value( qchstr ).isString() ); BOOST_CHECK( Value( qchstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( qchstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( pchstr, Value::uriFormat ).isString() ); } else { BOOST_CHECK_THROW( (Value( chstr )), std::invalid_argument ); Value f( chstr, Value::fsFormat ); BOOST_CHECK( f.isString() ); Value u( chstr, Value::uriFormat ); BOOST_CHECK( u.isString() ); BOOST_CHECK_EQUAL( f.asString(), u.asString() ); if ( ch == '.' ) { BOOST_CHECK_EQUAL( f.asFs(), chstr ); BOOST_CHECK_EQUAL( f.asUri(), chstr ); } else { BOOST_CHECK_EQUAL( f.asFs(), qchstr ); BOOST_CHECK_EQUAL( f.asUri(), pchstr ); } BOOST_CHECK( Value( qchstr ).isString() ); BOOST_CHECK( Value( qchstr, Value::fsFormat ).isString() ); BOOST_CHECK( Value( qchstr, Value::uriFormat ).isString() ); BOOST_CHECK( Value( pchstr, Value::uriFormat ).isString() ); } } BOOST_CHECK_THROW( Value( "\\!\\a\\-\\_\\.\\!" ), std::invalid_argument ); BOOST_CHECK_EQUAL( Value( "\\!\\a\\-\\_\\.\\!", Value::fsFormat ).asFs(), "\\!a-_.\\!" ); } BOOST_AUTO_TEST_CASE(cpeid_type_checks) { for ( const auto & c : { Value::ANY, Value::NA, wildcardfree, wildcarded } ) { BOOST_CHECK_EQUAL( c.isANY(), c.type() == Value::Type::ANY ); BOOST_CHECK_EQUAL( c.isNA(), c.type() == Value::Type::NA ); BOOST_CHECK_EQUAL( c.isWildcardfree(), c.type() == Value::Type::wildcardfree ); BOOST_CHECK_EQUAL( c.isWildcarded(), c.type() == Value::Type::wildcarded ); BOOST_CHECK_EQUAL( c.isLogical(), c.isLogical( c.type() ) ); BOOST_CHECK_EQUAL( c.isString(), c.isString( c.type() ) ); BOOST_CHECK_EQUAL( c.isLogical(), ! c.isString() ); } } BOOST_AUTO_TEST_CASE(cpeid_compare) { BOOST_CHECK( compare( Value::ANY, Value::ANY, SetCompare::equal ) ); BOOST_CHECK( compare( Value::ANY, Value::NA, SetCompare::properSuperset ) ); BOOST_CHECK( compare( Value::ANY, wildcardfree, SetCompare::properSuperset ) ); #if WFN_STRICT_SPEC BOOST_CHECK( compare( Value::ANY, wildcarded, SetCompare::uncomparable ) ); #else BOOST_CHECK( compare( Value::ANY, wildcarded, SetCompare::properSuperset ) ); #endif BOOST_CHECK( compare( Value::NA, Value::ANY, SetCompare::properSubset ) ); BOOST_CHECK( compare( Value::NA, Value::NA, SetCompare::equal ) ); BOOST_CHECK( compare( Value::NA, wildcardfree, SetCompare::disjoint ) ); #if WFN_STRICT_SPEC BOOST_CHECK( compare( Value::NA, wildcarded, SetCompare::uncomparable ) ); #else BOOST_CHECK( compare( Value::NA, wildcarded, SetCompare::disjoint ) ); #endif BOOST_CHECK( compare( wildcardfree, Value::ANY, SetCompare::properSubset ) ); BOOST_CHECK( compare( wildcardfree, Value::NA, SetCompare::disjoint ) ); //BOOST_CHECK( compare( wildcardfree, wildcardfree, kNeedsCloserLook, // equal or disjoint BOOST_CHECK( compare( wildcardfree, wildcardfree, SetCompare::equal ) ); BOOST_CHECK( compare( wildcardfree, wildcardfree2, SetCompare::disjoint ) ); #if WFN_STRICT_SPEC BOOST_CHECK( compare( wildcardfree, wildcarded, SetCompare::uncomparable ) ); #else //BOOST_CHECK( compare( wildcardfree, wildcarded, kNeedsCloserLook, // subset or disjoint BOOST_CHECK( compare( wildcardfree, wildcarded, SetCompare::properSubset ) ); BOOST_CHECK( compare( wildcardfree, wildcarded2, SetCompare::disjoint ) ); #endif BOOST_CHECK( compare( wildcarded, Value::ANY, SetCompare::properSubset ) ); BOOST_CHECK( compare( wildcarded, Value::NA, SetCompare::disjoint ) ); //BOOST_CHECK( compare( wildcarded, wildcardfree, kNeedsCloserLook, // superset or disjoint BOOST_CHECK( compare( wildcarded, wildcardfree, SetCompare::properSuperset ) ); BOOST_CHECK( compare( wildcarded, wildcardfree2, SetCompare::disjoint ) ); #if WFN_STRICT_SPEC BOOST_CHECK( compare( wildcarded, wildcarded, SetCompare::uncomparable ) ); #else //BOOST_CHECK( compare( wildcarded, wildcarded, kNeedsCloserLook, // equal or uncomparable BOOST_CHECK( compare( wildcarded, wildcarded, SetCompare::equal ) ); BOOST_CHECK( compare( wildcarded, wildcarded2, SetCompare::uncomparable ) ); #endif } BOOST_AUTO_TEST_CASE(cpeid_value_string_wildcard) { for ( const auto & c : { Value( "a" ), Value( "\\*" ), Value( "\\?" ) } ) { BOOST_CHECK( c.isWildcardfree() ); BOOST_CHECK( !c.isWildcarded() ); } for ( const auto & c : { Value( "*\\*" ), Value( "\\**" ), Value( "?" ), Value( "??\\?" ), Value( "\\???" ) } ) { BOOST_CHECK( !c.isWildcardfree() ); BOOST_CHECK( c.isWildcarded() ); } } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(cpeid_basics) { BOOST_CHECK_THROW( CpeId( "malformed" ), std::invalid_argument ); CpeId none( "malformed", CpeId::noThrow ); BOOST_CHECK_EQUAL( CpeId::NoThrowType::lastMalformed, "malformed" ); CpeId( "", CpeId::noThrow ); BOOST_CHECK_EQUAL( CpeId::NoThrowType::lastMalformed, "" ); for ( const auto & c : { CpeId(), CpeId( nullptr ), CpeId( "" ), CpeId( std::string() ), CpeId( "cpe:2.3:" ), CpeId( "cpe:/" ) } ) { BOOST_CHECK( ! c ); // evaluate false in boolean context BOOST_CHECK_EQUAL( c.asString(), c.asFs() ); BOOST_CHECK_EQUAL( c.asFs(), "cpe:2.3:*:*:*:*:*:*:*:*:*:*:*" ); BOOST_CHECK_EQUAL( c.asUri(), "cpe:/" ); BOOST_CHECK_EQUAL( c.asWfn(), "wfn:[]" ); BOOST_CHECK_EQUAL( c, none ); // matching!! } for ( const auto & c : { CpeId( "cpe:/o:sle" ), CpeId( "cpe:/o:*" ) } ) { BOOST_CHECK( c ); // evaluate true in boolean context BOOST_CHECK( ! c.asString().empty() );// empty string rep BOOST_CHECK_EQUAL( c, c ); // matching!! } } void testStrconv( const std::string & fs, const std::string & uri, const std::string & wfn ) { CpeId fromFS( fs ) ; CpeId fromURI( uri ); BOOST_CHECK_EQUAL( fromFS, fromURI ); for ( const auto & c : { fromFS, fromURI } ) { BOOST_CHECK_EQUAL( c.asFs(), fs ); BOOST_CHECK_EQUAL( c.asUri(), uri ); BOOST_CHECK_EQUAL( c.asWfn(), wfn ); } } BOOST_AUTO_TEST_CASE(cpeid_strconv) { // colon embedded in product value testStrconv ( "cpe:2.3:a:opensuse:lib\\:zypp:14.16.0:beta:*:*:*:*:*:-", "cpe:/a:opensuse:lib%3azypp:14.16.0:beta:~~~~~-", "wfn:[part=\"a\",vendor=\"opensuse\",product=\"lib\\:zypp\",version=\"14\\.16\\.0\",update=\"beta\",other=NA]" ); testStrconv ( "cpe:2.3:a:hp:insight_diagnostics:7.4.0.1570:-:*:*:online:win2003:x64:*", "cpe:/a:hp:insight_diagnostics:7.4.0.1570:-:~~online~win2003~x64~", "wfn:[part=\"a\",vendor=\"hp\",product=\"insight_diagnostics\",version=\"7\\.4\\.0\\.1570\",update=NA,sw_edition=\"online\",target_sw=\"win2003\",target_hw=\"x64\"]" ); testStrconv ( "cpe:2.3:a:hp:openview_network_manager:7.51:*:*:*:*:linux:*:*", "cpe:/a:hp:openview_network_manager:7.51::~~~linux~~", "wfn:[part=\"a\",vendor=\"hp\",product=\"openview_network_manager\",version=\"7\\.51\",target_sw=\"linux\"]" ); testStrconv ( "cpe:2.3:a:foo\\\\bar:big\\$money_manager_2010:*:*:*:*:special:ipod_touch:80gb:*", "cpe:/a:foo%5cbar:big%24money_manager_2010:::~~special~ipod_touch~80gb~", "wfn:[part=\"a\",vendor=\"foo\\\\bar\",product=\"big\\$money_manager_2010\",sw_edition=\"special\",target_sw=\"ipod_touch\",target_hw=\"80gb\"]" ); BOOST_CHECK_THROW( (CpeId( "cpe:/x:" )), std::invalid_argument ); // illegal part 'x' BOOST_CHECK_THROW( CpeId( "cpe:/a:foo%5cbar:big%24money_2010%07:::~~special~ipod_touch~80gb~" ), std::invalid_argument ); // illegal %07 BOOST_CHECK_EQUAL( CpeId( "cpe:/a:foo~bar:big%7emoney_2010" ).asUri(), "cpe:/a:foo%7ebar:big%7emoney_2010" ); // unescaped ~ is ok but not preferred } BOOST_AUTO_TEST_CASE(cpeid_matches) { CpeId sle( "cpe:/o:sles" ); CpeId win( "cpe:/o:windows" ); CpeId any; CpeId ons( "cpe:2.3:o:??????s" ); CpeId oops( "cpe:2.3:o:?????s" ); BOOST_CHECK_EQUAL( compare( sle, win ), SetRelation::disjoint ); BOOST_CHECK_EQUAL( compare( sle, any ), SetRelation::subset ); BOOST_CHECK_EQUAL( compare( win, any ), SetRelation::subset ); BOOST_CHECK_EQUAL( compare( any, sle ), SetRelation::superset ); BOOST_CHECK_EQUAL( compare( any, win ), SetRelation::superset ); #if WFN_STRICT_SPEC BOOST_CHECK_EQUAL( compare( sle, ons ), SetRelation::uncomparable ); BOOST_CHECK_EQUAL( compare( win, ons ), SetRelation::uncomparable ); #else BOOST_CHECK_EQUAL( compare( sle, ons ), SetRelation::subset ); BOOST_CHECK_EQUAL( compare( win, ons ), SetRelation::subset ); #endif BOOST_CHECK_EQUAL( compare( ons, sle ), SetRelation::superset ); BOOST_CHECK_EQUAL( compare( ons, win ), SetRelation::superset ); BOOST_CHECK_EQUAL( compare( oops, sle ), SetRelation::superset ); BOOST_CHECK_EQUAL( compare( oops, win ), SetRelation::disjoint ); } libzypp-17.7.0/tests/zypp/Date_test.cc000066400000000000000000000003771334444677500177160ustar00rootroot00000000000000#include "zypp/Date.h" #include BOOST_AUTO_TEST_CASE(date_test) { std::string format = "%Y-%m-%d %H:%M:%S"; std::string date = "2009-02-14 00:31:30"; BOOST_CHECK_EQUAL(zypp::Date(date,format).form(format), date); } libzypp-17.7.0/tests/zypp/Deltarpm_test.cc000066400000000000000000000040401334444677500206000ustar00rootroot00000000000000#include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/RepoManager.h" #include "zypp/sat/Pool.h" #include "zypp/repo/DeltaCandidates.h" #include "zypp/repo/PackageDelta.h" #include "KeyRingTestReceiver.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::repo; using namespace zypp::filesystem; #define TEST_DIR TESTS_SRC_DIR "/zypp/data/Delta" BOOST_AUTO_TEST_CASE(delta) { KeyRing::setDefaultAccept( KeyRing::ACCEPT_UNKNOWNKEY | KeyRing::ACCEPT_UNSIGNED_FILE ); TmpDir rootdir; RepoManager rm( RepoManagerOptions::makeTestSetup( rootdir ) ); RepoInfo updates; updates.setAlias("updates"); updates.addBaseUrl( Pathname(TEST_DIR).asUrl() ); try { rm.buildCache(updates); rm.loadFromCache(updates); } catch (const Exception & e) { BOOST_FAIL( string("Problem getting the data: ")+ e.msg()) ; } sat::Pool pool(sat::Pool::instance()); repo::DeltaCandidates dc(list(pool.reposBegin(),pool.reposEnd()), "libzypp"); std::list deltas = dc.deltaRpms(0); for_ (it,deltas.begin(),deltas.end()) { BOOST_CHECK(it->name() == "libzypp"); BOOST_CHECK(it->edition() == Edition("4.21.3-2")); BOOST_CHECK(it->arch() == "i386"); BOOST_CHECK(it->baseversion().edition().match(Edition("4.21.3-1")) ||it->baseversion().edition().match(Edition("4.21.2-3"))); cout << it->name() << " - " << it->edition() << " - " << it->arch() << " base: " << it->baseversion().edition() << endl; cout << (it->edition() == "4.21.3-2") << endl; // fine cout << (it->edition() == Edition("4.21.3-2")) << endl; // fine cout << (it->edition().match(Edition("4.21.3-2")) == 0) << endl; // match returns -1,0,1 cout << (it->edition().match("4.21.3-2") == 0) << endl; // match returns -1,0,1 } } libzypp-17.7.0/tests/zypp/Digest_test.cc000066400000000000000000000016551334444677500202600ustar00rootroot00000000000000 #include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/PathInfo.h" #include "zypp/Digest.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; /** * Test case for * static std::string digest(const std::string& name, std::istream& is, size_t bufsize = 4096); */ BOOST_AUTO_TEST_CASE(digest) { string data("I will test the checksum of this"); stringstream str1(data); stringstream str2(data); stringstream str3(data); BOOST_CHECK_EQUAL( Digest::digest( "sha1", str1 ), "142df4277c326f3549520478c188cab6e3b5d042" ); BOOST_CHECK_EQUAL( Digest::digest( "md5", str2 ), "f139a810b84d82d1f29fc53c5e59beae" ); // FIXME i think it should throw BOOST_CHECK_EQUAL( Digest::digest( "lalala", str3) , "" ); } libzypp-17.7.0/tests/zypp/DrunkenBishop_test.cc000066400000000000000000000047431334444677500216150ustar00rootroot00000000000000#include #include #include "zypp/base/DrunkenBishop.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; using base::DrunkenBishop; BOOST_AUTO_TEST_CASE(drunkenbishop) { { DrunkenBishop b; BOOST_CHECK_EQUAL( b.asString(), "++\n" "++" ); } { DrunkenBishop b( "94", 0, 0 ); BOOST_CHECK_EQUAL( b.asString(), "+-+\n" "|E|\n" "+-+" ); } { BOOST_CHECK_THROW( DrunkenBishop( "9g" ), std::invalid_argument ); } { DrunkenBishop b( "" ); BOOST_CHECK_EQUAL( b.asString(), "+-----------------+\n" "| |\n" "| |\n" "| |\n" "| |\n" "| E |\n" "| |\n" "| |\n" "| |\n" "| |\n" "+-----------------+" ); } { DrunkenBishop b( "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", "Title" ); BOOST_CHECK_EQUAL( b.asString(), "+-----[Title]-----+\n" "| |\n" "| |\n" "| |\n" "| ^ |\n" "| E |\n" "| |\n" "| |\n" "| |\n" "| |\n" "+---[CCCCCCCC]----+" ); } { DrunkenBishop b( "9c6fb17fa201ad829d808739379a2a51", "very very long Title" ); BOOST_CHECK_EQUAL( b.asString(), "+[very very long ]+\n" "| |\n" "| |\n" "| |\n" "| E+ . o |\n" "| .= = S o |\n" "|. * = . + o |\n" "| .o . + . = |\n" "|.. . . o. . |\n" "|o ...o |\n" "+---[379A2A51]----+" ); } { DrunkenBishop b( "4E98E67519D98DC7362A5990E3A5C360307E3D54" ); BOOST_CHECK_EQUAL( b.asString(), "+-------------------+\n" "| ^. .^E |\n" "| . .^^: . |\n" "| ...:^? : |\n" "| . ?.: i |\n" "| ^ i : . |\n" "| : S l . |\n" "| ^ : . . |\n" "| . . |\n" "| |\n" "| |\n" "| |\n" "+----[307E3D54]-----+" ); } } libzypp-17.7.0/tests/zypp/Dup_test.cc000066400000000000000000000035541334444677500175710ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/ResPool.h" #include "zypp/ResPoolProxy.h" #include "zypp/pool/PoolStats.h" #include "zypp/ui/Selectable.h" #define BOOST_TEST_MODULE Dup ///////////////////////////////////////////////////////////////////////////// static TestSetup test; template std::ostream & vdumpPoolStats( std::ostream & str, TIterator begin_r, TIterator end_r ) { pool::PoolStats stats; for_( it, begin_r, end_r ) { str << *it << endl; stats( *it ); } return str << stats; } bool upgrade() { bool rres = false; { rres = getZYpp()->resolver()->doUpgrade(); } if ( ! rres ) { ERR << "upgrade " << rres << endl; getZYpp()->resolver()->problems(); return false; } MIL << "upgrade " << rres << endl; vdumpPoolStats( USR << "Transacting:"<< endl, make_filter_begin(test.pool()), make_filter_end(test.pool()) ) << endl; return true; } BOOST_AUTO_TEST_CASE(testcase_init) { //zypp::base::LogControl::instance().logToStdErr(); test.loadTestcaseRepos( TESTS_SRC_DIR"/data/TCdup" ); dumpRange( USR, test.pool().knownRepositoriesBegin(), test.pool().knownRepositoriesEnd() ) << endl; USR << "pool: " << test.pool() << endl; BOOST_REQUIRE( upgrade() ); } ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(orphaned) { ResPoolProxy proxy( test.poolProxy() ); BOOST_CHECK_EQUAL( proxy.lookup( ResKind::package, "glibc" )->status(), ui::S_KeepInstalled ); BOOST_CHECK_EQUAL( proxy.lookup( ResKind::package, "release-package" )->status(), ui::S_AutoUpdate ); BOOST_CHECK_EQUAL( proxy.lookup( ResKind::package, "dropped_required" )->status(), ui::S_KeepInstalled ); BOOST_CHECK_EQUAL( proxy.lookup( ResKind::package, "dropped" )->status(), ui::S_AutoDel ); } libzypp-17.7.0/tests/zypp/Edition_test.cc000066400000000000000000000021401334444677500204220ustar00rootroot00000000000000// Edition.cc // // tests for Edition // #include "zypp/base/Logger.h" #include "zypp/Edition.h" #include using boost::unit_test::test_case; using namespace std; using namespace zypp; BOOST_AUTO_TEST_CASE(edition) { Edition _ed1 ("1"); Edition _ed2 ("1.1"); Edition _ed3 ("1:1"); Edition _ed4 ("2:1-1"); BOOST_CHECK_EQUAL(_ed2.version(), "1.1"); BOOST_CHECK_EQUAL(_ed2.release(), ""); BOOST_CHECK_EQUAL(_ed2.epoch(), 0U); BOOST_CHECK_EQUAL(_ed4.epoch(), 2U); BOOST_CHECK_EQUAL(_ed1, Edition ("1", "")); BOOST_CHECK_EQUAL(_ed2, Edition ("1.1", "")); BOOST_CHECK_EQUAL(_ed2, Edition ("1_1", "")); // Edition strings may differ in separator (non alphanum) BOOST_CHECK_EQUAL(_ed2, Edition ("0:1.1")); // epoch 0 is no epoch BOOST_CHECK_EQUAL(_ed3, Edition ("1", "", "1")); BOOST_CHECK_EQUAL(_ed3, Edition ("1", "", 1)); BOOST_CHECK_EQUAL(_ed4, Edition ("1", "1", 2)); BOOST_CHECK_EQUAL( Edition::compare("1:1-1","2:1-1"), -1 ); BOOST_CHECK_EQUAL( Edition::compare("2:1-1","2:1-1"), 0 ); BOOST_CHECK_EQUAL( Edition::compare("3:1-1","2:1-1"), 1 ); } libzypp-17.7.0/tests/zypp/ExtendedPool_test.cc000066400000000000000000000056451334444677500214360ustar00rootroot00000000000000#include #include #include "TestSetup.h" #include #include #include using boost::unit_test::test_case; using std::cin; using std::cout; using std::cerr; using std::endl; using namespace zypp; static TestSetup test; void testcase_init() { // cout << "+++[repoinit]=======================" << endl; test.loadTestcaseRepos( TESTS_SRC_DIR"/data/PoolReuseIds/SeqA" ); // for ( auto && pi : ResPool::instance() ) // cout << pi << " " << pi.resolvable() << endl; // cout << "---[repoinit]=======================" << endl; } void testcase_init2() { // cout << "+++[repoinit2]=======================" << endl; sat::Pool::instance().reposEraseAll(); test.loadTestcaseRepos( TESTS_SRC_DIR"/data/PoolReuseIds/SeqB" ); // for ( auto && pi : ResPool::instance() ) // cout << pi << " " << pi.resolvable() << endl; // cout << "---[repoinit2]=======================" << endl; } void checkpi( const PoolItem & pi ) { BOOST_CHECK( pi.resolvable() ); BOOST_CHECK_EQUAL( pi.id(), pi.resolvable()->id() ); BOOST_CHECK_EQUAL( bool(asKind( pi.resolvable() )), isKind(pi) ); BOOST_CHECK_EQUAL( bool(asKind( pi.resolvable() )), isKind(pi) ); BOOST_CHECK_EQUAL( bool(asKind( pi.resolvable() )), isKind(pi) ); BOOST_CHECK_EQUAL( bool(asKind( pi.resolvable() )), isKind(pi) ); BOOST_CHECK_EQUAL( bool(asKind( pi.resolvable() )), isKind(pi) ); BOOST_CHECK_EQUAL( bool(asKind( pi.resolvable() )), isKind(pi) ); } void repocheck() { // cout << "+++[repocheck]======================" << endl; for ( auto && pi : ResPool::instance() ) { // cout << "??? " << pi << endl; checkpi( pi ); } // cout << "---[repocheck]======================" << endl; } /////////////////////////////////////////////////////////////////// // Check that after ERASING ALL REPOS and loading a new one, ResPool // actually creates new PoolItems rather than reusing already existing // ones. // // Adding/removing repos will not reuse poolIDs unless actually all // repos are removed from the pool. In this case ResPool must invalidate // ALL existing PoolItems (especially the Resolvable Pointers inside). // // SeqA SeqB // (1)package - (1)application // (2)pattern - (2)package // ... ... // // The two test repos have Resolvables of different kind in different // order. If ResPool fails to recreate the PoolItem, we'll experience // cast errors. PoolItem(1) will claim to be an application, but the // Resolvable is still the original one created for a package... /////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(t_1) { testcase_init(); } BOOST_AUTO_TEST_CASE(t_2) { repocheck(); } BOOST_AUTO_TEST_CASE(t_4) { testcase_init2(); } BOOST_AUTO_TEST_CASE(t_5) { repocheck(); } libzypp-17.7.0/tests/zypp/Fetcher_test.cc000066400000000000000000000327421334444677500204220ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/MediaSetAccess.h" #include "zypp/Fetcher.h" #include "WebServer.h" #define BOOST_TEST_MODULE fetcher_test #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/Fetcher/remote-site") BOOST_AUTO_TEST_SUITE( fetcher_test ); BOOST_AUTO_TEST_CASE(fetcher_enqueuedir_noindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // Now test that without trusting it, it should throw // do the test by trusting the SHA1SUMS file signature key { filesystem::TmpDir dest; Fetcher fetcher; fetcher.enqueueDir(OnMediaLocation("/complexdir"), true); fetcher.start( dest.path(), media ); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir2").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir2/subdir2-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file2.txt").isExist() ); } } BOOST_AUTO_TEST_CASE(fetcher_enqueuedir_autoindex_untrustedkey) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key { filesystem::TmpDir dest; // add the key as untrusted, which is the same as not adding it and // let autodiscovery to add it Fetcher fetcher; fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDir(OnMediaLocation("/complexdir"), true); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), Exception); BOOST_CHECK( ! PathInfo(dest.path() + "/complexdir/subdir2").isExist() ); BOOST_CHECK( ! PathInfo(dest.path() + "/complexdir/subdir2/subdir2-file1.txt").isExist() ); BOOST_CHECK( ! PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file1.txt").isExist() ); BOOST_CHECK( ! PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file2.txt").isExist() ); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueuedir_autoindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key { filesystem::TmpDir dest; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir/subdir1/SHA1SUMS.key"), true); Fetcher fetcher; fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDir(OnMediaLocation("/complexdir"), true); fetcher.start( dest.path(), media ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir2").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir2/subdir2-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file2.txt").isExist() ); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueue_digested_dir_autoindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key but with a broken file { filesystem::TmpDir dest; Fetcher fetcher; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir-broken/subdir1/SHA1SUMS.key"), true); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDigestedDir(OnMediaLocation("/complexdir-broken"), true); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), FileCheckException); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueuebrokendir_noindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key but with a broken file { filesystem::TmpDir dest; Fetcher fetcher; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir-broken/subdir1/SHA1SUMS.key"), true); fetcher.enqueueDir(OnMediaLocation("/complexdir-broken"), true); // this should not throw as we provided no indexes and the // enqueue is not digested fetcher.start( dest.path(), media ); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/complexdir-broken/subdir2").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir-broken/subdir2/subdir2-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir-broken/subdir1/subdir1-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir-broken/subdir1/subdir1-file2.txt").isExist() ); } } BOOST_AUTO_TEST_CASE(fetcher_enqueuebrokendir_index) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key but with a broken file { filesystem::TmpDir dest; Fetcher fetcher; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir-broken/subdir1/SHA1SUMS.key"), true); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDir(OnMediaLocation("/complexdir-broken"), true); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), Exception); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueue_digesteddir_brokendir_with_index) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key but with a broken file { filesystem::TmpDir dest; Fetcher fetcher; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir-broken/subdir1/SHA1SUMS.key"), true); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDigestedDir(OnMediaLocation("/complexdir-broken"), true); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), Exception); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueue_digested_broken_with_autoindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key but with a broken file { filesystem::TmpDir dest; Fetcher fetcher; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir-broken/subdir1/SHA1SUMS.key"), true); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDigested(OnMediaLocation("/complexdir-broken/subdir1/subdir1-file2.txt")); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), Exception); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueue_digested_with_autoindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); // do the test by trusting the SHA1SUMS file signature key with a good file // checksum in auto discovered index { filesystem::TmpDir dest; Fetcher fetcher; // add the key as trusted getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/complexdir/subdir1/SHA1SUMS.key"), true); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDigested(OnMediaLocation("/complexdir/subdir1/subdir1-file1.txt")); fetcher.start( dest.path(), media ); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(fetcher_enqueuefile_noindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); { filesystem::TmpDir dest; Fetcher fetcher; fetcher.enqueue(OnMediaLocation("/file-1.txt")); fetcher.start( dest.path(), media ); BOOST_CHECK( PathInfo(dest.path() + "/file-1.txt").isExist() ); } //MIL << fetcher; } BOOST_AUTO_TEST_CASE(fetcher_simple) { MediaSetAccess media( (DATADIR).asUrl(), "/" ); Fetcher fetcher; { filesystem::TmpDir dest; OnMediaLocation loc("/complexdir/subdir1/subdir1-file1.txt"); loc.setChecksum(CheckSum::sha1("f1d2d2f924e986ac86fdf7b36c94bcdf32beec15")); fetcher.enqueueDigested(loc); fetcher.start(dest.path(), media); fetcher.reset(); // now we break the checksum and it should fail loc.setChecksum(CheckSum::sha1("f1d2d2f924e986ac86fdf7b36c94bcdf32beec16")); fetcher.enqueueDigested(loc); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), Exception); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(content_index) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); Fetcher fetcher; // test transfering one file by setting the index { filesystem::TmpDir dest; OnMediaLocation loc("/contentindex/subdir1/subdir1-file1.txt"); // trust the key manually getZYpp()->keyRing()->importKey(PublicKey(DATADIR + "/contentindex/content.key"), true); fetcher.addIndex(OnMediaLocation("/contentindex/content", 1)); fetcher.enqueue(loc); fetcher.start(dest.path(), media); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/contentindex/subdir1/subdir1-file1.txt").isExist() ); } } BOOST_AUTO_TEST_CASE(enqueue_broken_content_index) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); Fetcher fetcher; filesystem::TmpDir dest; { OnMediaLocation loc("/contentindex-broken-digest/subdir1/subdir1-file1.txt",1); // key was already imported as trusted fetcher.addIndex(OnMediaLocation("/contentindex-broken-digest/content", 1)); fetcher.enqueue(loc); fetcher.start(dest.path(), media); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/contentindex-broken-digest/subdir1/subdir1-file1.txt").isExist() ); // now retrieve a file that is modified, so the checksum has to fail loc = OnMediaLocation("/contentindex-broken-digest/subdir1/subdir1-file2.txt",1); fetcher.addIndex(OnMediaLocation("/contentindex-broken-digest/content", 1)); fetcher.enqueue(loc); BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), Exception); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(enqueue_digested_images_file_content_autoindex) { MediaSetAccess media( ( DATADIR + "/images-file").asUrl(), "/" ); Fetcher fetcher; filesystem::TmpDir dest; { OnMediaLocation loc("/images/images.xml",1); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDigested(loc); fetcher.start(dest.path(), media); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/images/images.xml").isExist() ); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(enqueue_digested_images_file_content_autoindex_unsigned) { MediaSetAccess media( ( DATADIR + "/images-file-unsigned").asUrl(), "/" ); Fetcher fetcher; filesystem::TmpDir dest; { OnMediaLocation loc("/images/images.xml",1); fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDigested(loc); // it should throw because unsigned file throws BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), FileCheckException); fetcher.reset(); // the target file was NOT transferred BOOST_CHECK( ! PathInfo(dest.path() + "/images/images.xml").isExist() ); fetcher.reset(); } } BOOST_AUTO_TEST_CASE(enqueue_broken_content_noindex) { MediaSetAccess media( ( DATADIR).asUrl(), "/" ); Fetcher fetcher; { filesystem::TmpDir dest; OnMediaLocation loc("/contentindex-broken-digest/subdir1/subdir1-file1.txt",1); // key was already imported as trusted fetcher.enqueue(loc); fetcher.start(dest.path(), media); fetcher.reset(); // now retrieve a file that is modified, so the checksum has to fail loc = OnMediaLocation("/contentindex-broken-digest/subdir1/subdir1-file2.txt",1); fetcher.enqueue(loc); fetcher.start( dest.path(), media ); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/contentindex-broken-digest/subdir1/subdir1-file2.txt").isExist() ); } } BOOST_AUTO_TEST_CASE(enqueuedir_http) { WebServer web((Pathname(TESTS_SRC_DIR) + "/zypp/data/Fetcher/remote-site").c_str(), 10001); web.start(); // at this point the key is already trusted { MediaSetAccess media( web.url(), "/" ); Fetcher fetcher; filesystem::TmpDir dest; // auto add the SHA1SUMS fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDir(OnMediaLocation("/complexdir"), true); fetcher.start( dest.path(), media ); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir2").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir2/subdir2-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file1.txt").isExist() ); BOOST_CHECK( PathInfo(dest.path() + "/complexdir/subdir1/subdir1-file2.txt").isExist() ); } // test broken tree { MediaSetAccess media( web.url(), "/" ); Fetcher fetcher; filesystem::TmpDir dest; // auto add the SHA1SUMS fetcher.setOptions( Fetcher::AutoAddIndexes ); fetcher.enqueueDir(OnMediaLocation("/complexdir-broken"), true); // should throw because wrong checksum BOOST_CHECK_THROW( fetcher.start( dest.path(), media ), FileCheckException); fetcher.reset(); BOOST_CHECK( PathInfo(dest.path() + "/complexdir-broken/subdir2").isExist() ); // unprocessed after failure: BOOST_CHECK( ! PathInfo(dest.path() + "/complexdir-broken/subdir2/subdir2-file1.txt").isExist() ); // this one got transferred before the failure, so it is there BOOST_CHECK( PathInfo(dest.path() + "/complexdir-broken/subdir1/subdir1-file1.txt").isExist() ); // broken: BOOST_CHECK( ! PathInfo(dest.path() + "/complexdir-broken/subdir1/subdir1-file2.txt").isExist() ); fetcher.reset(); } web.stop(); } BOOST_AUTO_TEST_SUITE_END(); // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/zypp/FileChecker_test.cc000066400000000000000000000043271334444677500212040ustar00rootroot00000000000000 #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/KeyRing.h" #include "zypp/PublicKey.h" #include "zypp/TmpPath.h" #include "zypp/FileChecker.h" #include #include "KeyRingTestReceiver.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/FileChecker") BOOST_AUTO_TEST_CASE(keyring_test) { Pathname file( Pathname(DATADIR) + "hello.txt" ); Pathname file2( Pathname(DATADIR) + "hello2.txt" ); Pathname pubkey( Pathname(DATADIR) + "hello.txt.key" ); Pathname signature( Pathname(DATADIR) + "hello.txt.asc" ); /** * 1st scenario, the signature does * match */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); SignatureFileChecker sigchecker( signature ); sigchecker.addPublicKey(pubkey); sigchecker(file); } /** * second scenario, the signature does not * match, an exception has to be thrown */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); SignatureFileChecker sigchecker( signature ); sigchecker.addPublicKey(pubkey); BOOST_CHECK_THROW( sigchecker(file2), zypp::Exception ); } } BOOST_AUTO_TEST_CASE(checksum_test) { Pathname file( Pathname(DATADIR) + "hello.txt" ); Pathname file2( Pathname(DATADIR) + "hello2.txt" ); Pathname pubkey( Pathname(DATADIR) + "hello.txt.key" ); Pathname signature( Pathname(DATADIR) + "hello.txt.asc" ); /** * 1st scenario, checksum matches */ { ChecksumFileChecker checker( CheckSum("sha1", "f2105202a0f017ab818b670d04982a89f55f090b") ); checker(file); } /** * 1st scenario, checksum does not matches */ { ChecksumFileChecker checker( CheckSum("sha1", "f2105202a0f017ab818b670d04982a89f55f090b") ); BOOST_CHECK_THROW( checker(file2), zypp::FileCheckException ); } } libzypp-17.7.0/tests/zypp/Flags_test.cc000066400000000000000000000047251334444677500200760ustar00rootroot00000000000000// // tests for Flags // #include #include "zypp/base/Logger.h" #include "zypp/base/Flags.h" #include using boost::unit_test::test_case; using std::cout; using std::endl; using namespace zypp; enum class E { _0 = 0, _1 = 1 << 0, _2 = 1 << 1, _3 = _2 | _1, _4 = 1 << 2, _5 = _4 | _1, _8 = 1 << 3, }; ZYPP_DECLARE_FLAGS( TFlags, E ); ZYPP_DECLARE_OPERATORS_FOR_FLAGS( TFlags ); inline std::ostream & operator<<( std::ostream & str, const E & obj ) { return str << TFlags(obj); } static const TFlags T_6( E::_4 | E::_2 ); static const TFlags T_7( E::_4 | E::_2 | E::_1 ); BOOST_AUTO_TEST_CASE(flags) { TFlags t0; BOOST_CHECK_EQUAL( t0, 0 ); BOOST_CHECK_EQUAL( E::_0, t0 ); BOOST_CHECK_EQUAL( t0, E::_0 ); BOOST_CHECK_EQUAL( t0, TFlags(0) ); BOOST_CHECK_EQUAL( ~t0, ~0 ); BOOST_CHECK_EQUAL( ~~t0, 0 ); BOOST_CHECK_EQUAL( ~t0, ~E::_0 ); BOOST_CHECK_EQUAL( ~~t0, E::_0 ); BOOST_CHECK_EQUAL( TFlags::none(), TFlags(0) ); BOOST_CHECK_EQUAL( TFlags::all(), ~TFlags(0) ); TFlags t1( E::_1 ); BOOST_CHECK_EQUAL( t1, 1 ); BOOST_CHECK_EQUAL( t1, E::_1 ); BOOST_CHECK_EQUAL( t1, TFlags(1) ); TFlags t; //t = 1; // must not compile: assign from int_type t = E::_2; // = enum BOOST_CHECK_EQUAL( t, E::_2 ); t = T_6; // = TFlags BOOST_CHECK_EQUAL( t, T_6 ); // enum op enum t = ~E::_1; BOOST_CHECK_EQUAL( ~t, E::_1 ); t = E::_1 & E::_2; BOOST_CHECK_EQUAL( t, E::_0 ); t = E::_1 | E::_2; BOOST_CHECK_EQUAL( t, E::_3 ); t = E::_1 ^ E::_2; BOOST_CHECK_EQUAL( t, E::_3 ); // enum op TFlags t = E::_2 & T_6; BOOST_CHECK_EQUAL( t, E::_2 ); t = E::_2 | T_6; BOOST_CHECK_EQUAL( t, T_6 ); t = E::_2 ^ T_6; BOOST_CHECK_EQUAL( t, E::_4 ); // TFlags op enum t = ~T_7; BOOST_CHECK_EQUAL( ~t, T_7 ); t = T_7 & E::_2; BOOST_CHECK_EQUAL( t, E::_2 ); t = T_7 | E::_2; BOOST_CHECK_EQUAL( t, T_7 ); t = T_7 ^ E::_2; BOOST_CHECK_EQUAL( t, E::_5 ); // TFlags op TFlags t = T_7 & T_6; BOOST_CHECK_EQUAL( t, T_6 ); t = T_7 | T_6; BOOST_CHECK_EQUAL( t, T_7 ); t = T_7 ^ T_7; BOOST_CHECK_EQUAL( t, E::_0 ); t = E::_3; BOOST_CHECK( ! t.testFlag( E::_0 ) ); // fails as t != 0 BOOST_CHECK( t.testFlag( E::_1 ) ); BOOST_CHECK( t.testFlag( E::_2 ) ); BOOST_CHECK( t.testFlag( E::_3 ) ); t.unsetFlag( E::_2 ); BOOST_CHECK( t.testFlag( E::_1 ) ); t.setFlag( E::_1, false ); BOOST_CHECK( t.testFlag( E::_0 ) ); // succeed as t == 0 t.setFlag( E::_3, true ); BOOST_CHECK( t.testFlag( E::_3 ) ); } libzypp-17.7.0/tests/zypp/InstanceId_test.cc000066400000000000000000000024041334444677500210530ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/InstanceId.h" #define BOOST_TEST_MODULE InstanceId ///////////////////////////////////////////////////////////////////////////// static TestSetup test( Arch_x86_64 ); BOOST_AUTO_TEST_CASE(pool_query_init) { // Abuse;) vbox as System repo: test.loadTargetRepo( TESTS_SRC_DIR "/data/obs_virtualbox_11_1" ); test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" ); test.loadRepo( TESTS_SRC_DIR "/data/OBS_zypp_svn-11.1", "zyppsvn" ); } ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(default_constructed) { InstanceId instanceId; BOOST_CHECK_EQUAL( instanceId.getNamespace(), std::string() ); BOOST_CHECK_EQUAL( instanceId.isSystemId( "System" ), false ); BOOST_CHECK_EQUAL( instanceId.isSystemId( "@System" ), true ); BOOST_CHECK_EQUAL( instanceId(""), PoolItem() ); BOOST_CHECK_EQUAL( instanceId(PoolItem()), "" ); } BOOST_AUTO_TEST_CASE(convert) { InstanceId instanceId; instanceId.setNamespace( "SUSE" ); BOOST_CHECK_EQUAL( instanceId.getNamespace(), "SUSE" ); ResPool pool( ResPool::instance() ); for_( it, pool.begin(), pool.end() ) { std::cout << instanceId(*it) << endl; BOOST_CHECK_EQUAL( instanceId(instanceId(*it)), *it ); } } libzypp-17.7.0/tests/zypp/KeyRingTestReceiver.h000066400000000000000000000075541334444677500215450ustar00rootroot00000000000000 #ifndef ZYPP_KEYRING_TEST_RECEIVER_H #define ZYPP_KEYRING_TEST_RECEIVER_H #include "zypp/Callback.h" #include "zypp/KeyRing.h" #include "zypp/PublicKey.h" #include "zypp/KeyContext.h" /** * Keyring Callback Receiver with some features * Allows to simulate and configure user answer * Can record which callbacks were called */ struct KeyRingTestReceiver : public zypp::callback::ReceiveReport { KeyRingTestReceiver() { reset(); connect(); } void reset() { _answer_accept_unknown_key = false; _answer_accept_key = KeyRingReport::KEY_DONT_TRUST; _answer_ver_failed = false; _answer_accept_unsigned_file = false; _asked_user_to_accept_unknown_key = false; _asked_user_to_accept_key = false; _asked_user_to_accept_ver_failed = false; _asked_user_to_accept_unsigned_file = false; } ~KeyRingTestReceiver() { disconnect(); } void answerAcceptVerFailed( bool answer ) { _answer_ver_failed = answer; } bool askedAcceptVerFailed() const { return _asked_user_to_accept_ver_failed; } void answerAcceptUnknownKey( bool answer ) { _answer_accept_unknown_key = answer; } bool askedAcceptUnknownKey() const { return _asked_user_to_accept_unknown_key; } void answerAcceptKey( KeyRingReport::KeyTrust answer ) { _answer_accept_key = answer; } bool askedAcceptKey() const { return _asked_user_to_accept_key; } void answerAcceptUnsignedFile( bool answer ) { _answer_accept_unsigned_file = answer; } bool askedAcceptUnsignedFile() const { return _asked_user_to_accept_unsigned_file; } virtual bool askUserToAcceptUnsignedFile( const std::string &file, const zypp::KeyContext &keycontext ) { MIL << std::endl; _asked_user_to_accept_unsigned_file = true; return _answer_accept_unsigned_file; } virtual bool askUserToAcceptUnknownKey( const std::string &file, const std::string &id, const zypp::KeyContext &keycontext ) { MIL << std::endl; _asked_user_to_accept_unknown_key = true; return _answer_accept_unknown_key; } virtual KeyRingReport::KeyTrust askUserToAcceptKey( const zypp::PublicKey &key, const zypp::KeyContext &keycontext ) { MIL << std::endl; _asked_user_to_accept_key = true; return _answer_accept_key; } virtual bool askUserToAcceptVerificationFailed( const std::string &file, const zypp::PublicKey &key, const zypp::KeyContext &keycontext ) { MIL << std::endl; _asked_user_to_accept_ver_failed = true; return _answer_ver_failed; } // how to answer bool _answer_accept_unknown_key; KeyRingReport::KeyTrust _answer_accept_key; bool _answer_ver_failed; bool _answer_accept_unsigned_file; // we use this variables to check that the // callbacks were called bool _asked_user_to_accept_unknown_key; bool _asked_user_to_accept_key; bool _asked_user_to_accept_ver_failed; bool _asked_user_to_accept_unsigned_file; }; /** * Keyring Signal Receiver with some features * Allows to simulate and configure user answer * Can record which callbacks were called */ struct KeyRingTestSignalReceiver : zypp::callback::ReceiveReport { KeyRingTestSignalReceiver(/*RpmDb &rpmdb*/) : _trusted_key_added_called(false) { MIL << "KeyRing signals enabled" << std::endl; connect(); } ~KeyRingTestSignalReceiver() { disconnect(); } virtual void trustedKeyAdded( const zypp::PublicKey &key ) { MIL << "TEST: trusted key added to zypp Keyring. Synchronizing keys with fake rpm keyring" << std::endl; _trusted_key_added_called = true; //std::cout << "trusted key added to zypp Keyring. Synchronizing keys with rpm keyring" << std::endl; //_rpmdb.importZyppKeyRingTrustedKeys(); //_rpmdb.exportTrustedKeysInZyppKeyRing(); } virtual void trustedKeyRemoved( const zypp::PublicKey &key ) { } bool _trusted_key_added_called; }; #endif libzypp-17.7.0/tests/zypp/KeyRing_test.cc000066400000000000000000000254031334444677500204060ustar00rootroot00000000000000 #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/KeyRing.h" #include "zypp/PublicKey.h" #include "zypp/TmpPath.h" #include #include "KeyRingTestReceiver.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/KeyRing") BOOST_AUTO_TEST_CASE(keyring_test) { PublicKey key( Pathname(DATADIR) + "public.asc" ); /** * scenario #1 * import a not trusted key * ask for accept, answer yes 'temporarily' */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); keyring.importKey( key, false ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 1 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); BOOST_CHECK_MESSAGE( keyring.isKeyKnown( key.id() ), "Imported untrusted key should be known"); BOOST_CHECK_MESSAGE( ! keyring.isKeyTrusted( key.id() ), "Imported untrusted key should be untrusted"); keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); bool to_continue = keyring.verifyFileSignatureWorkflow( DATADIR + "repomd.xml", "Blah Blah", DATADIR + "repomd.xml.asc"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnknownKey(), "Should not ask for unknown key, it was known"); BOOST_CHECK_MESSAGE( keyring_callbacks.askedAcceptKey(), "Verify Signature Workflow with only 1 untrusted key should ask user wether to trust and/or import"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptVerFailed(), "The signature validates"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnsignedFile(), "It is a signed file, so dont ask the opposite"); BOOST_CHECK_MESSAGE( to_continue, "We did not import, but we trusted and signature validates."); } /** * scenario #1.1 * import a not trusted key * ask to accept, answer yes 'temporarily' * vorrupt the file and check */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); keyring.importKey( key, false ); keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); // now we will recheck with a corrupted file bool to_continue = keyring.verifyFileSignatureWorkflow( DATADIR + "repomd.xml.corrupted", "Blah Blah", DATADIR + "repomd.xml.asc"); // check wether the user got the right questions BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnknownKey(), "Should not ask for unknown key, it was known"); BOOST_CHECK_MESSAGE( keyring_callbacks.askedAcceptKey(), "Verify Signature Workflow with only 1 untrusted key should ask user wether to trust and/or import"); BOOST_CHECK_MESSAGE( keyring_callbacks.askedAcceptVerFailed(), "The signature does not validates"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnsignedFile(), "It is a signed file, so dont ask the opposite"); BOOST_CHECK_MESSAGE( ! to_continue, "We did not continue with a corrupted file"); } /** * scenario #1.2 * import a not trusted key * ask for trust, answer yes * ask for import, answer no * check without signature */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); keyring.importKey( key, false ); keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); // now we will recheck with a unsigned file bool to_continue = keyring.verifyFileSignatureWorkflow( DATADIR + "repomd.xml", "Blah Blah", Pathname() ); // check wether the user got the right questions BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnknownKey(), "Should not ask for unknown key, it was known"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptKey(), "No signature, no key to trust"); BOOST_CHECK_MESSAGE( keyring_callbacks.askedAcceptUnsignedFile(), "Ask the user wether to accept an unsigned file"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptVerFailed(), "There is no signature to verify"); BOOST_CHECK_MESSAGE( ! to_continue, "We did not continue with a unsigned file"); } /** scenario #2 * empty keyring * should ask for unknown key * answer no */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_MESSAGE( ! keyring.isKeyKnown( key.id() ), "empty keyring has not known keys"); //keyring_callbacks.answerAcceptUnknownKey(true); bool to_continue = keyring.verifyFileSignatureWorkflow( DATADIR + "repomd.xml", "Blah Blah", DATADIR + "repomd.xml.asc"); BOOST_CHECK_MESSAGE(keyring_callbacks.askedAcceptUnknownKey(), "Should ask to accept unknown key, empty keyring"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptKey(), "Unknown key cant be trusted"); BOOST_CHECK_MESSAGE( ! to_continue, "We answered no to accept unknown key"); } /** scenario #3 * import trusted key * should ask nothing * should emit signal */ { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); keyring.importKey( key, true ); BOOST_CHECK_EQUAL( receiver._trusted_key_added_called, true ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 1 ); BOOST_CHECK_MESSAGE( keyring.isKeyKnown( key.id() ), "Imported trusted key should be known"); BOOST_CHECK_MESSAGE( keyring.isKeyTrusted( key.id() ), "Imported trusted key should be trusted"); bool to_continue = keyring.verifyFileSignatureWorkflow( DATADIR + "repomd.xml", "Blah Blah", DATADIR + "repomd.xml.asc"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnknownKey(), "Should not ask for unknown key, it was known"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptKey(), "Verify Signature Workflow with only 1 untrusted key should ask user wether to trust and/or import"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptVerFailed(), "The signature validates"); BOOST_CHECK_MESSAGE( ! keyring_callbacks.askedAcceptUnsignedFile(), "It is a signed file, so dont ask the opposite"); BOOST_CHECK_MESSAGE( to_continue, "We did not import, but we trusted and signature validates."); } //keyring.importKey( key, true ); //BOOST_CHECK_EQUAL( receiver._trusted_key_added_called, true ); //BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), 1 ); /* check signature id can be extracted */ } BOOST_AUTO_TEST_CASE(signature_test) { PublicKey key( DATADIR + "public.asc" ); { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_EQUAL( keyring.readSignatureKeyId( DATADIR + "repomd.xml.asc" ), "BD61D89BD98821BE" ); BOOST_CHECK_THROW( keyring.readSignatureKeyId(Pathname()), Exception ); TmpFile tmp; BOOST_CHECK_EQUAL( keyring.readSignatureKeyId(tmp.path()), "" ); keyring.importKey(key); BOOST_CHECK(keyring.verifyFileSignature( DATADIR + "repomd.xml", DATADIR + "repomd.xml.asc")); BOOST_CHECK( ! keyring.verifyFileSignature( DATADIR + "repomd.xml.corrupted", DATADIR + "repomd.xml.asc")); } } BOOST_AUTO_TEST_CASE(keyring_import) { // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); struct Receiver: public callback::ReceiveReport { Receiver() { connect(); } virtual void trustedKeyAdded( const PublicKey & key_r ) { ++_cbcnt; } virtual void trustedKeyRemoved( const PublicKey & key_r ) { --_cbcnt; } unsigned _cbcnt = 0; } receiver; /////////////////////////////////////////////////////////////////// // Make sure we get a proper callback notification if multiple // keys are imported at once. /////////////////////////////////////////////////////////////////// PublicKey key( DATADIR + "installkey.gpg" ); BOOST_CHECK_EQUAL( key.hiddenKeys().size(), 2 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), 0 ); keyring.importKey( key, true ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), 3 ); BOOST_CHECK_EQUAL( receiver._cbcnt, keyring.trustedPublicKeys().size() ); } BOOST_AUTO_TEST_CASE(keyring_delete) { PublicKey key( Pathname(DATADIR) + "public.asc" ); /** scenario #3 * import and delete untrusted key */ { // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); keyring.importKey( key, false ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 1 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); keyring.deleteKey( key.id(), false); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); } /** scenario #3.1 * import and delete trusted key */ { // base sandbox for playing TmpDir tmp_dir; KeyRing keyring( tmp_dir.path() ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); keyring.importKey( key, true ); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 1 ); //try to delete from untrusted keyring keyring.deleteKey( key.id(), false); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 1 ); keyring.deleteKey( key.id(), true); BOOST_CHECK_EQUAL( keyring.publicKeys().size(), (unsigned) 0 ); BOOST_CHECK_EQUAL( keyring.trustedPublicKeys().size(), (unsigned) 0 ); } } libzypp-17.7.0/tests/zypp/Locale_test.cc000066400000000000000000000137651334444677500202450ustar00rootroot00000000000000#include #include #include #include "zypp/Locale.h" #define BOOST_TEST_MODULE Locale using std::cout; using std::endl; using namespace zypp; using namespace boost::unit_test; BOOST_AUTO_TEST_CASE(static_deps) { setenv( "LANG", "C", 1 ); // static vars initialization sequence: Locale depends on LanguageCode BOOST_CHECK_EQUAL( LanguageCode::enCode.code(), "en" ); BOOST_CHECK_EQUAL( IdString(Locale::enCode), IdString(LanguageCode::enCode) ); // solver communication: Both must lead to the same ID BOOST_CHECK_EQUAL( Locale::enCode.id(), IdString(LanguageCode::enCode.code()).id() ); } // // NOTE: In checks testing for empty codes (IdString::Null/IdString::Empty) // explicitly use the ID, because both share the same string representation. // // This way you get "failed [1 != 0]" rather than "failed [ != ]" // BOOST_AUTO_TEST_CASE(no_codes) { // IdString::Null is probably a rare case BOOST_CHECK_EQUAL( LanguageCode(nullptr).id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( CountryCode(nullptr).id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( Locale(nullptr).id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( Locale(nullptr).language().id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( Locale(nullptr).country().id(), IdString::Null.id() ); // IdString::Null is the ususal noCode BOOST_CHECK_EQUAL( LanguageCode::noCode.id(), LanguageCode().id() ); BOOST_CHECK_EQUAL( LanguageCode::noCode.id(), LanguageCode("").id() ); BOOST_CHECK_EQUAL( LanguageCode::noCode.id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( CountryCode::noCode.id(), CountryCode().id() ); BOOST_CHECK_EQUAL( CountryCode::noCode.id(), CountryCode("").id() ); BOOST_CHECK_EQUAL( CountryCode::noCode.id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( Locale::noCode.id(), Locale().id() ); BOOST_CHECK_EQUAL( Locale::noCode.id(), Locale("").id() ); BOOST_CHECK_EQUAL( Locale::noCode.id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( Locale::noCode.language().id(), LanguageCode::noCode.id() ); BOOST_CHECK_EQUAL( Locale::noCode.country().id(), CountryCode::noCode.id() ); // const char * nc = "No Code"; BOOST_CHECK_EQUAL( LanguageCode(nullptr).name(), nc ); BOOST_CHECK_EQUAL( CountryCode(nullptr).name(), nc ); BOOST_CHECK_EQUAL( Locale(nullptr).name(), nc ); BOOST_CHECK_EQUAL( LanguageCode::noCode.name(), nc ); BOOST_CHECK_EQUAL( CountryCode::noCode.name(), nc ); BOOST_CHECK_EQUAL( Locale::noCode.name(), nc ); } BOOST_AUTO_TEST_CASE(language_code) { // language code: ger deu de, N_( "German" ) std::string name( "German" ); for ( const char * s : { "ger", "deu", "de" } ) { BOOST_CHECK_EQUAL( LanguageCode(s).code(), s ); BOOST_CHECK_EQUAL( LanguageCode(s), IdString(s) ); BOOST_CHECK_EQUAL( LanguageCode(s).id(), IdString(s).id() ); BOOST_CHECK_EQUAL( LanguageCode(s).name(), name ); } BOOST_CHECK( LanguageCode("de") < LanguageCode("deu") ); BOOST_CHECK( LanguageCode("deu") < LanguageCode("ger") ); BOOST_CHECK_EQUAL( LanguageCode("XX"), IdString("XX") ); } BOOST_AUTO_TEST_CASE(country_code) { // country code: "DE", N_("Germany) std::string name( "Germany" ); for ( const char * s : { "DE" } ) { BOOST_CHECK_EQUAL( CountryCode(s).code(), s ); BOOST_CHECK_EQUAL( CountryCode(s), IdString(s) ); BOOST_CHECK_EQUAL( CountryCode(s).id(), IdString(s).id() ); BOOST_CHECK_EQUAL( CountryCode(s).name(), name ); } BOOST_CHECK( CountryCode("AA") < CountryCode("DE") ); BOOST_CHECK_EQUAL( CountryCode("XX"), IdString("XX") ); } BOOST_AUTO_TEST_CASE(locale) { // IdString::Null (rare) { for ( const Locale & l : { Locale( nullptr ), Locale( LanguageCode(nullptr), CountryCode(nullptr) ) } ) { BOOST_CHECK_EQUAL( l.id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( l.language().id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( l.country().id(), IdString::Null.id() ); BOOST_CHECK_EQUAL( bool(l), false ); BOOST_CHECK_EQUAL( bool(l.language()), false ); BOOST_CHECK_EQUAL( bool(l.country()), false ); } } // Trailing garbage ([.@].*) is ignored { for ( const Locale & l : { Locale(), Locale( "" ), Locale( "@UTF-8" ), Locale( ".UTF-8" ) , Locale( LanguageCode(), CountryCode(nullptr) ) , Locale( LanguageCode(nullptr), CountryCode() ) , Locale( LanguageCode(), CountryCode() ) } ) { BOOST_CHECK_EQUAL( l.id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( l.language().id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( l.country().id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( bool(l), false ); BOOST_CHECK_EQUAL( bool(l.language()), false ); BOOST_CHECK_EQUAL( bool(l.country()), false ); } } { for ( const Locale & l : { Locale("de_DE"), Locale( "de_DE@UTF-8" ) , Locale( LanguageCode("de"), CountryCode("DE") ) } ) { BOOST_CHECK_EQUAL( l, IdString("de_DE") ); BOOST_CHECK_EQUAL( l.language(), IdString("de") ); BOOST_CHECK_EQUAL( l.country(), IdString("DE") ); BOOST_CHECK_EQUAL( bool(l), true ); BOOST_CHECK_EQUAL( bool(l.language()), true ); BOOST_CHECK_EQUAL( bool(l.country()), true ); } } { for ( const Locale & l : { Locale("de"), Locale( "de@UTF-8" ) , Locale( LanguageCode("de") ) } ) { BOOST_CHECK_EQUAL( l.id(), l.language().id() ); BOOST_CHECK_EQUAL( l.country().id(), IdString::Empty.id() ); BOOST_CHECK_EQUAL( bool(l), true ); BOOST_CHECK_EQUAL( bool(l.language()), true ); BOOST_CHECK_EQUAL( bool(l.country()), false ); } } } BOOST_AUTO_TEST_CASE(fallback) { { // default fallback... Locale l( "de_DE" ); BOOST_CHECK_EQUAL( (l = l.fallback()), "de" ); BOOST_CHECK_EQUAL( (l = l.fallback()), "en" ); BOOST_CHECK_EQUAL( (l = l.fallback()), "" ); } { // special rules... Locale l( "pt_BR" ); BOOST_CHECK_EQUAL( (l = l.fallback()), "en" ); BOOST_CHECK_EQUAL( (l = l.fallback()), "" ); } } libzypp-17.7.0/tests/zypp/Locks_test.cc000066400000000000000000000054671334444677500201210ustar00rootroot00000000000000#include #include #include #include #include #include "zypp/PoolQuery.h" #include "zypp/PoolQueryUtil.tcc" #include "zypp/TmpPath.h" #include "zypp/Locks.h" #include "TestSetup.h" #define BOOST_TEST_MODULE Locks using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; bool isLocked( const sat::Solvable & solvable ) { zypp::PoolItem pi( zypp::ResPool::instance().find( solvable ) ); if( pi.status().isLocked() ) return true; return false; } BOOST_AUTO_TEST_CASE(pool_query_init) { TestSetup test( Arch_x86_64 ); //test.loadTarget(); // initialize and load target test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" ); test.loadRepo( TESTS_SRC_DIR "/data/OBS_zypp_svn-11.1", "@System" ); } ///////////////////////////////////////////////////////////////////////////// // 0xx basic queries ///////////////////////////////////////////////////////////////////////////// // default query + one search string // q.addString("foo"); // result: all resolvables having at least one attribute matching foo BOOST_AUTO_TEST_CASE(locks_1) { cout << "****001****" << endl; PoolQuery q; q.addString("zypper"); Locks::instance().addLock(q); for_(it,q.begin(),q.end()) { BOOST_CHECK(isLocked(*it)); } Locks::instance().removeLock(q); //clear before next test } BOOST_AUTO_TEST_CASE(locks_save_load) { cout << "****save/load****" << endl; Pathname src(TESTS_SRC_DIR); src += "zypp/data/Locks/locks"; Locks::instance().readAndApply(src); PoolQuery q; q.addString("zypper"); for_(it,q.begin(),q.end()) { BOOST_CHECK(isLocked(*it)); } #if 1 filesystem::TmpFile testfile; //Pathname testfile(TESTS_SRC_DIR); // testfile += "/zypp/data/Locks/testlocks"; Locks::instance().removeLock(q); Locks::instance().save(testfile); Locks::instance().readAndApply(testfile); //now unlocked for_(it,q.begin(),q.end()) { BOOST_CHECK(!isLocked(*it)); } BOOST_CHECK(Locks::instance().size()==0); #endif } BOOST_AUTO_TEST_CASE(locks_save_without_redundancy) { cout << "****save without redundancy****" << endl; PoolQuery q; q.addString("zypper"); Locks& locks = Locks::instance(); locks.addLock(q); locks.addLock(q); locks.merge(); BOOST_CHECK( locks.size()==1 ); locks.addLock(q); locks.merge(); BOOST_CHECK( locks.size()==1 ); locks.removeLock(q); locks.merge(); BOOST_CHECK( locks.size() == 0 ); } BOOST_AUTO_TEST_CASE( locks_empty ) { cout << "****test and clear empty locks****" << endl; PoolQuery q; q.addString("foo-bar-nonexist"); Locks& locks = Locks::instance(); locks.addLock(q); locks.merge(); //only need merge list BOOST_CHECK( locks.existEmpty() ); locks.removeEmpty(); BOOST_CHECK( locks.size() == 0 ); } libzypp-17.7.0/tests/zypp/MediaSetAccess_test.cc000066400000000000000000000222131334444677500216470ustar00rootroot00000000000000#include #include #include #include #include #include "zypp/MediaSetAccess.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" #include "WebServer.h" using std::cout; using std::endl; using std::string; using namespace zypp; using namespace boost::unit_test; using namespace zypp::filesystem; class SimpleVerifier : public media::MediaVerifierBase { public: SimpleVerifier( const std::string &id ) { _media_id = id; } virtual bool isDesiredMedia(const media::MediaAccessRef &ref) { return ref->doesFileExist(Pathname("/x." + _media_id )); } private: std::string _media_id; }; bool check_file_exists(const Pathname &path) { FILE *file; if ((file = fopen(path.asString().c_str(), "r")) == NULL) return false; fclose(file); return true; } /* * Check how MediaSetAccess::rewriteUrl() works. */ BOOST_AUTO_TEST_CASE(msa_url_rewrite) { BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("iso:/?iso=/path/to/CD1.iso"), 1).asString(), Url("iso:/?iso=/path/to/CD1.iso").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("iso:/?iso=/path/to/CD1.iso"), 2).asString(), Url("iso:/?iso=/path/to/CD2.iso").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("iso:/?iso=/path/to/CD1.iso"), 13).asString(), Url("iso:/?iso=/path/to/CD13.iso").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("iso:/?iso=/path/to/cd1.iso"), 2).asString(), Url("iso:/?iso=/path/to/cd2.iso").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("iso:/?iso=/path/to/cd2.iso"), 1).asString(), Url("iso:/?iso=/path/to/cd1.iso").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("iso:/?iso=/path/to/dvd1.iso"), 2).asString(), Url("iso:/?iso=/path/to/dvd2.iso").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("dir:/path/to/CD1"), 2).asString(), Url("dir:/path/to/CD2").asString()); // trailing slash check BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("dir:/path/to/CD1/"), 2).asString(), Url("dir:/path/to/CD2/").asString()); BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("nfs://nfs-server/exported/path/to/dvd1"), 2).asString(), Url("nfs://nfs-server/exported/path/to/dvd2").asString()); // single media check shouldn't this fail somehow?? BOOST_CHECK_EQUAL( MediaSetAccess::rewriteUrl(Url("http://ftp.opensuse.org/pub/opensuse/distribution/SL-OSS-factory/inst-source"), 2).asString(), Url("http://ftp.opensuse.org/pub/opensuse/distribution/SL-OSS-factory/inst-source").asString()); } #define DATADIR (Pathname(TESTS_SRC_DIR) / "/zypp/data/mediasetaccess") /* * * test data dir structure: * * . * |-- src1 * | |-- cd1 * | | |-- dir * | | | |-- file1 * | | | |-- file2 * | | | `-- subdir * | | | `-- file * | | `-- test.txt * | |-- cd2 * | | `-- test.txt * | `-- cd3 * | `-- test.txt * `-- src2 * `-- test.txt * */ /* * Provide files from set without verifiers. */ BOOST_AUTO_TEST_CASE(msa_provide_files_set) { Url url = (DATADIR + "/src1/cd1").asUrl(); MediaSetAccess setaccess(url); Pathname file1 = setaccess.provideFile("/test.txt", 1); BOOST_CHECK(check_file_exists(file1) == true); Pathname file2 = setaccess.provideFile("/test.txt", 2); BOOST_CHECK(check_file_exists(file2) == true); Pathname file3 = setaccess.provideFile("/test.txt", 3); BOOST_CHECK(check_file_exists(file3) == true); } /* * Provide files from set with verifiers. */ BOOST_AUTO_TEST_CASE(msa_provide_files_set_verified) { Url url = (DATADIR + "/src1/cd1").asUrl(); MediaSetAccess setaccess(url); setaccess.setVerifier(1, media::MediaVerifierRef(new SimpleVerifier("media1"))); setaccess.setVerifier(2, media::MediaVerifierRef(new SimpleVerifier("media2"))); setaccess.setVerifier(3, media::MediaVerifierRef(new SimpleVerifier("media3"))); // provide file from media1 Pathname file1 = setaccess.provideFile("/test.txt", 1); BOOST_CHECK(check_file_exists(file1) == true); // provide file from invalid media BOOST_CHECK_THROW(setaccess.provideFile("/test.txt", 2), media::MediaNotDesiredException); // provide file from media3 Pathname file3 = setaccess.provideFile("/test.txt", 3); BOOST_CHECK(check_file_exists(file3) == true); } /* * Provide file from single media with verifier. */ BOOST_AUTO_TEST_CASE(msa_provide_files_single) { Url url = (DATADIR + "/src2").asUrl(); MediaSetAccess setaccess(url); setaccess.setVerifier(1, media::MediaVerifierRef(new SimpleVerifier("media"))); // provide file from media Pathname file = setaccess.provideFile("/test.txt", 1); BOOST_CHECK(check_file_exists(file) == true); // provide non-existent file // (default answer from callback should be ABORT) BOOST_CHECK_THROW(setaccess.provideFile("/imnothere", 2), media::MediaFileNotFoundException); } /* * Provide directory from src/cd1. */ BOOST_AUTO_TEST_CASE(msa_provide_dir) { Url url = (DATADIR + "/src1/cd1").asUrl(); MediaSetAccess setaccess(url); Pathname dir = setaccess.provideDir("/dir", false, 1); Pathname file1 = dir + "/file1"; BOOST_CHECK(check_file_exists(file1) == true); Pathname file2 = dir + "/file2"; BOOST_CHECK(check_file_exists(file2) == true); // provide non-existent dir // (default answer from callback should be ABORT) BOOST_CHECK_THROW(setaccess.provideDir("/imnothere", 2), media::MediaFileNotFoundException); // This can't be properly tested with 'dir' schema, probably only curl // schemas (http, ftp) where download is actually needed. // Other schemas just get mounted onto a local dir and the whole subtree // is automatically available that way. // BOOST_CHECK(check_file_exists(dir + "/subdir/file") == false); // BOOST_CHECK(check_file_exists(dir + "/subdir") == false); } /* * Provide directory from src/cd1 (recursively). */ BOOST_AUTO_TEST_CASE(msa_provide_dirtree) { Url url = (DATADIR + "/src1/cd1").asUrl(); MediaSetAccess setaccess(url); Pathname dir = setaccess.provideDir("/dir", true, 1); Pathname file1 = dir + "/file1"; BOOST_CHECK(check_file_exists(file1) == true); Pathname file2 = dir + "/file2"; BOOST_CHECK(check_file_exists(file2) == true); Pathname file3 = dir + "/subdir/file"; BOOST_CHECK(check_file_exists(file3) == true); } /* * file exists local */ BOOST_AUTO_TEST_CASE(msa_file_exist_local) { Url url = (DATADIR + "/src1/cd1").asUrl(); MediaSetAccess setaccess(url); BOOST_CHECK(setaccess.doesFileExist("/test.txt")); BOOST_CHECK(!setaccess.doesFileExist("/testBADNAME.txt")); } /* * file exists remote */ BOOST_AUTO_TEST_CASE(msa_remote_tests) { WebServer web( DATADIR / "/src1/cd1", 10002 ); web.start(); MediaSetAccess setaccess( web.url(), "/" ); BOOST_CHECK(!setaccess.doesFileExist("/testBADNAME.txt")); BOOST_CHECK(setaccess.doesFileExist("/test.txt")); // check providing a file via http works Pathname local = setaccess.provideFile("/test.txt"); BOOST_CHECK(CheckSum::sha1(sha1sum(local)) == CheckSum::sha1("2616e23301d7fcf7ac3324142f8c748cd0b6692b")); // providing a file which does not exist should throw BOOST_CHECK_THROW(setaccess.provideFile("/testBADNAME.txt"), media::MediaFileNotFoundException); Pathname fPath; { Url url = web.url(); url.setPathName("/testBADNAME.txt"); // providing a file which does not exist should throw BOOST_CHECK_THROW(MediaSetAccess::provideFileFromUrl(url), media::MediaFileNotFoundException); url.setPathName("/test.txt"); //providing a file by static method, file should exist after method call ManagedFile file = MediaSetAccess::provideFileFromUrl( url ); fPath = file; BOOST_CHECK(check_file_exists(fPath) == true); } //file should be removed once the ManagedFile goes out of scope BOOST_CHECK(check_file_exists(fPath) == false); BOOST_CHECK(setaccess.doesFileExist("/test-big.txt")); BOOST_CHECK(setaccess.doesFileExist("dir/test-big.txt")); { // providing a file with wrong filesize should throw OnMediaLocation locPlain("dir/test-big.txt"); locPlain.setDownloadSize( zypp::ByteCount(500, zypp::ByteCount::B) ); BOOST_CHECK_THROW(setaccess.provideFile(locPlain), media::MediaFileSizeExceededException); // using the correct file size should NOT throw locPlain.setDownloadSize( zypp::ByteCount(7135, zypp::ByteCount::B) ); Pathname file = setaccess.provideFile( locPlain ); BOOST_CHECK(check_file_exists(file) == true); } { // test the maximum filesize again with metalink downloads // providing a file with wrong filesize should throw OnMediaLocation locMeta("/test-big.txt"); locMeta.setDownloadSize( zypp::ByteCount(500, zypp::ByteCount::B) ); BOOST_CHECK_THROW(setaccess.provideFile(locMeta), media::MediaFileSizeExceededException); // using the correct file size should NOT throw locMeta.setDownloadSize( zypp::ByteCount(7135, zypp::ByteCount::B) ); Pathname file = setaccess.provideFile( locMeta ); BOOST_CHECK(check_file_exists(file) == true); } web.stop(); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/zypp/PathInfo_test.cc000066400000000000000000000141131334444677500205420ustar00rootroot00000000000000 #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/LogControl.h" #include "zypp/base/Exception.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; /** * Test case for * bool is_checksum( const Pathname & file, const CheckSum &checksum ); * std::string checksum( const Pathname & file, const std::string &algorithm ); */ BOOST_AUTO_TEST_CASE(pathinfo_checksum_test) { const char *buffer = "I will test the checksum of this"; TmpFile file; ofstream str(file.path().asString().c_str(),ofstream::out); if (!str.good()) ZYPP_THROW(Exception("cant open file")); str << buffer; str.flush(); str.close(); CheckSum file_sha1("sha1", "142df4277c326f3549520478c188cab6e3b5d042"); CheckSum file_md5("md5", "f139a810b84d82d1f29fc53c5e59beae"); BOOST_CHECK_EQUAL( checksum( file.path(), "sha1"), "142df4277c326f3549520478c188cab6e3b5d042" ); BOOST_CHECK_EQUAL( checksum( file.path(), "md5"), "f139a810b84d82d1f29fc53c5e59beae" ); BOOST_REQUIRE( is_checksum( file.path(), file_sha1 ) ); BOOST_REQUIRE( is_checksum( file.path(), file_md5 ) ); } BOOST_AUTO_TEST_CASE(pathinfo_is_exist_test) { TmpDir dir; Pathname subdir("text with spaces"); // create a fake file BOOST_CHECK_EQUAL( filesystem::mkdir(dir.path() + subdir), 0 ); Pathname filepath = (dir.path() + subdir+ "filename"); ofstream str(filepath.asString().c_str(),ofstream::out); str << "foo bar" << endl; str.flush(); str.close(); BOOST_CHECK( PathInfo(filepath).isExist() ); } BOOST_AUTO_TEST_CASE(pathipathinfo_misc_test) { TmpDir dir; PathInfo info(dir.path()); BOOST_CHECK(info.isDir()); } BOOST_AUTO_TEST_CASE(pathinfo_expandlink_test) { TmpDir dir; // ---- not a link // create a file Pathname file(dir / "file"); ofstream str(file.asString().c_str(),ofstream::out); str << "foo bar" << endl; str.flush(); str.close(); // expandlink should return the original Pathname if it does not point to a link BOOST_CHECK_EQUAL( file, filesystem::expandlink(file) ); // ---- valid link // create a (relative!) link to that file Pathname link1(dir / "link1"); BOOST_CHECK_EQUAL( filesystem::symlink(file.basename(), link1), 0); // does the link expand to the file? BOOST_CHECK_EQUAL( file, filesystem::expandlink(link1) ); // ---- broken link // create a link to a non-existent file Pathname brokenlink(dir / "brokenlink"); Pathname non_existent(dir / "non-existent"); BOOST_CHECK_EQUAL( filesystem::symlink(non_existent, brokenlink), 0); PathInfo info(brokenlink, PathInfo::LSTAT); BOOST_CHECK(info.isLink()); // expandlink should return an empty Pathname for a broken link BOOST_CHECK_EQUAL( Pathname(), filesystem::expandlink(brokenlink) ); // ---- cyclic link // make the 'non-existent' a link to 'brokenlink' :O) BOOST_CHECK_EQUAL( filesystem::symlink(brokenlink, non_existent), 0); // expandlink should return an empty Pathname for such a cyclic link BOOST_CHECK_EQUAL( Pathname(), filesystem::expandlink(brokenlink) ); BOOST_CHECK_EQUAL( Pathname(), filesystem::expandlink(non_existent) ); cout << brokenlink << " -> " << filesystem::expandlink(brokenlink) << endl; } BOOST_AUTO_TEST_CASE(test_assert_dir_file) { TmpDir root; Pathname rfile( root/"file" ); BOOST_CHECK_EQUAL( filesystem::assert_file( rfile ), 0 ); BOOST_CHECK( PathInfo(rfile).isFile() ); Pathname rdir ( root/"dir" ); BOOST_CHECK_EQUAL( filesystem::assert_dir ( rdir ), 0 ); BOOST_CHECK( PathInfo(rdir).isDir() ); // empty path Pathname path; BOOST_CHECK_EQUAL( filesystem::assert_file( path ), ENOENT ); BOOST_CHECK_EQUAL( filesystem::assert_dir ( path ), ENOENT ); // for dirs: // existing dir path = rdir; BOOST_CHECK_EQUAL( filesystem::assert_dir( path ), 0 ); BOOST_CHECK( PathInfo(path).isDir() ); // new dirs path = rdir/"sub/subsub"; BOOST_CHECK_EQUAL( filesystem::assert_dir( path ), 0 ); BOOST_CHECK( PathInfo(path).isDir() ); // file in path path = rfile/"sub"; BOOST_CHECK_EQUAL( filesystem::assert_dir( path ), ENOTDIR ); BOOST_CHECK( !PathInfo(path).isDir() ); // path is file path = rfile; BOOST_CHECK_EQUAL( filesystem::assert_dir( path ), EEXIST ); BOOST_CHECK( !PathInfo(path).isDir() ); // for files: // existing file path = rfile; BOOST_CHECK_EQUAL( filesystem::assert_file( path ), 0 ); BOOST_CHECK( PathInfo(path).isFile() ); // new file path = rdir/"sub/file"; BOOST_CHECK_EQUAL( filesystem::assert_file( path ), 0 ); BOOST_CHECK( PathInfo(path).isFile() ); // file in path path = rfile/"sub/file"; BOOST_CHECK_EQUAL( filesystem::assert_file( path ), ENOTDIR ); BOOST_CHECK( ! PathInfo(path).isFile() ); // path is dir path = rdir; BOOST_CHECK_EQUAL( filesystem::assert_file( path ), EEXIST ); BOOST_CHECK( ! PathInfo(path).isFile() ); } BOOST_AUTO_TEST_CASE(test_exchange) { TmpDir root; Pathname a; Pathname b; // paths must not be epmty: BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), EINVAL ); a = root/"a/p"; BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), EINVAL ); b = root/"b/p"; BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), 0 ); // ok if both don't exist // one path not existing: filesystem::assert_file( a ); BOOST_CHECK( PathInfo(a).isFile() ); BOOST_CHECK( !PathInfo(b).isFile() ); BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), 0 ); BOOST_CHECK( !PathInfo(a).isFile() ); BOOST_CHECK( PathInfo(b).isFile() ); BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), 0 ); BOOST_CHECK( PathInfo(a).isFile() ); BOOST_CHECK( !PathInfo(b).isFile() ); // both paths exist: filesystem::assert_dir( b ); BOOST_CHECK( PathInfo(b).isDir() ); BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), 0 ); BOOST_CHECK( PathInfo(a).isDir() ); BOOST_CHECK( PathInfo(b).isFile() ); BOOST_CHECK_EQUAL( filesystem::exchange( a, b ), 0 ); BOOST_CHECK( PathInfo(a).isFile() ); BOOST_CHECK( PathInfo(b).isDir() ); } libzypp-17.7.0/tests/zypp/Pathname_test.cc000066400000000000000000000135421334444677500205740ustar00rootroot00000000000000#include #include #include #include "zypp/base/LogTools.h" #include "zypp/Pathname.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; BOOST_AUTO_TEST_CASE(pathname_default_ctor) { Pathname p; BOOST_CHECK_EQUAL(p.empty(), true ); BOOST_CHECK_EQUAL(p.absolute(), false ); BOOST_CHECK_EQUAL(p.relative(), false ); BOOST_CHECK_EQUAL(p.dirname(), "" ); BOOST_CHECK_EQUAL(p.basename(), "" ); BOOST_CHECK_EQUAL(p.extension(), "" ); BOOST_CHECK_EQUAL(p.absolutename(), "" ); BOOST_CHECK_EQUAL(p.relativename(), "" ); } BOOST_AUTO_TEST_CASE(pathname_root) { Pathname p("/"); BOOST_CHECK_EQUAL(p.empty(), false ); BOOST_CHECK_EQUAL(p.absolute(), true ); BOOST_CHECK_EQUAL(p.relative(), false ); BOOST_CHECK_EQUAL(p.dirname(), "/" ); BOOST_CHECK_EQUAL(p.basename(), "/" ); BOOST_CHECK_EQUAL(p.extension(), "" ); BOOST_CHECK_EQUAL(p.absolutename(), "/" ); BOOST_CHECK_EQUAL(p.relativename(), "./" ); } BOOST_AUTO_TEST_CASE(pathname_this) { Pathname p("."); BOOST_CHECK_EQUAL(p.empty(), false ); BOOST_CHECK_EQUAL(p.absolute(), false ); BOOST_CHECK_EQUAL(p.relative(), true ); BOOST_CHECK_EQUAL(p.dirname(), "." ); BOOST_CHECK_EQUAL(p.basename(), "." ); BOOST_CHECK_EQUAL(p.extension(), "" ); BOOST_CHECK_EQUAL(p.absolutename(), "/" ); BOOST_CHECK_EQUAL(p.relativename(), "." ); } BOOST_AUTO_TEST_CASE(pathname_up) { Pathname p(".."); BOOST_CHECK_EQUAL(p.empty(), false ); BOOST_CHECK_EQUAL(p.absolute(), false ); BOOST_CHECK_EQUAL(p.relative(), true ); BOOST_CHECK_EQUAL(p.dirname(), "." ); BOOST_CHECK_EQUAL(p.basename(), ".." ); BOOST_CHECK_EQUAL(p.extension(), "" ); BOOST_CHECK_EQUAL(p.absolutename(), "/" ); BOOST_CHECK_EQUAL(p.relativename(), ".." ); } BOOST_AUTO_TEST_CASE(pathname_abs) { Pathname p("/foo/baa.ka"); BOOST_CHECK_EQUAL(p.empty(), false ); BOOST_CHECK_EQUAL(p.absolute(), true ); BOOST_CHECK_EQUAL(p.relative(), false ); BOOST_CHECK_EQUAL(p.dirname(), "/foo" ); BOOST_CHECK_EQUAL(p.basename(), "baa.ka" ); BOOST_CHECK_EQUAL(p.extension(), ".ka" ); BOOST_CHECK_EQUAL(p.absolutename(), "/foo/baa.ka" ); BOOST_CHECK_EQUAL(p.relativename(), "./foo/baa.ka" ); } BOOST_AUTO_TEST_CASE(pathname_rel) { Pathname p("./foo/./../baa.ka"); BOOST_CHECK_EQUAL(p.empty(), false ); BOOST_CHECK_EQUAL(p.absolute(), false ); BOOST_CHECK_EQUAL(p.relative(), true ); BOOST_CHECK_EQUAL(p.dirname(), "." ); BOOST_CHECK_EQUAL(p.basename(), "baa.ka" ); BOOST_CHECK_EQUAL(p.extension(), ".ka" ); BOOST_CHECK_EQUAL(p.absolutename(), "/baa.ka" ); BOOST_CHECK_EQUAL(p.relativename(), "./baa.ka" ); } BOOST_AUTO_TEST_CASE(pathname_relup) { Pathname p("./../foo/./../baa"); BOOST_CHECK_EQUAL(p.empty(), false ); BOOST_CHECK_EQUAL(p.absolute(), false ); BOOST_CHECK_EQUAL(p.relative(), true ); BOOST_CHECK_EQUAL(p.dirname(), ".." ); BOOST_CHECK_EQUAL(p.basename(), "baa" ); BOOST_CHECK_EQUAL(p.extension(), "" ); BOOST_CHECK_EQUAL(p.absolutename(), "/baa" ); BOOST_CHECK_EQUAL(p.relativename(), "../baa" ); } BOOST_AUTO_TEST_CASE(pathname_strval) { BOOST_CHECK_EQUAL(Pathname("").asString(), "" ); BOOST_CHECK_EQUAL(Pathname("/////./").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("./").asString(), "." ); BOOST_CHECK_EQUAL(Pathname("/.").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("./..").asString(), "./.." ); // ? .. BOOST_CHECK_EQUAL(Pathname("../").asString(), "./.." ); // ? .. BOOST_CHECK_EQUAL(Pathname(".././..").asString(), "./../.." ); // ? ../.. BOOST_CHECK_EQUAL(Pathname("//baa").asString(), "/baa" ); BOOST_CHECK_EQUAL(Pathname("/./baa").asString(), "/baa" ); BOOST_CHECK_EQUAL(Pathname("/baa/..").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/baa/../baa").asString(), "/baa" ); BOOST_CHECK_EQUAL(Pathname("/./../foo/./../baa").asString(), "/baa" ); BOOST_CHECK_EQUAL(Pathname("/").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname(".").asString(), "." ); BOOST_CHECK_EQUAL(Pathname("..").asString(), "./.." ); BOOST_CHECK_EQUAL(Pathname("/.").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/..").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/./.").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/./..").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/../.").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/../..").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/././").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/./../").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/.././").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("/../../").asString(), "/" ); BOOST_CHECK_EQUAL(Pathname("a\\b").asString(), "./a\\b" ); BOOST_CHECK_EQUAL(Pathname("a/b").asString(), "./a/b" ); BOOST_CHECK_EQUAL(Pathname("c:a\\b").asString(), "./c:a\\b" ); BOOST_CHECK_EQUAL(Pathname("c:a/b").asString(), "./c:a/b" ); BOOST_CHECK_EQUAL(Pathname("cc:a\\b").asString(), "./cc:a\\b" ); BOOST_CHECK_EQUAL(Pathname("cc:a/b").asString(), "./cc:a/b" ); } BOOST_AUTO_TEST_CASE(pathname_stripprefix) { BOOST_CHECK_EQUAL( Pathname::stripprefix( "", "" ), "" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "", "/" ), "/" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "", "/foo" ), "/foo" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/", "" ), "" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/", "/" ), "/" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/", "/foo" ), "/foo" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/f", "" ), "" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/f", "/" ), "/" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/f", "/foo" ), "/foo" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/foo", "" ), "" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/foo", "/" ), "/" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/foo", "/foo" ), "/" ); BOOST_CHECK_EQUAL( Pathname::stripprefix( "/foo", "/foo/baa" ), "/baa" ); } libzypp-17.7.0/tests/zypp/PluginFrame_test.cc000066400000000000000000000133121334444677500212430ustar00rootroot00000000000000#include #include #include #include #include "TestSetup.h" #include "zypp/PluginExecutor.h" BOOST_AUTO_TEST_CASE(InitialSettings) { PluginScript::defaultTimeout( 3 ); } BOOST_AUTO_TEST_CASE(PluginFrameDefaultCtor) { PluginFrame f; BOOST_CHECK_EQUAL( bool(f), !f.empty() ); BOOST_CHECK_EQUAL( f.empty(), true ); BOOST_CHECK_EQUAL( f.command().empty(), true ); BOOST_CHECK_EQUAL( f.body().empty(), true ); BOOST_CHECK_EQUAL( f.headerEmpty(), true ); BOOST_CHECK_EQUAL( (f == f), true ); BOOST_CHECK_EQUAL( (f != f), false ); } BOOST_AUTO_TEST_CASE(PluginFrameCtorAssign) { PluginFrame f( "command" ); BOOST_CHECK_EQUAL( bool(f), !f.empty() ); BOOST_CHECK_EQUAL( f.empty(), false ); BOOST_CHECK_EQUAL( f.command(), "command" ); BOOST_CHECK_EQUAL( f.body().empty(), true ); BOOST_CHECK_EQUAL( f.headerEmpty(), true ); BOOST_CHECK_EQUAL( (f == f), true ); BOOST_CHECK_EQUAL( (f != f), false ); PluginFrame g( "command", "body" ); BOOST_CHECK_EQUAL( bool(g), !g.empty() ); BOOST_CHECK_EQUAL( g.empty(), false ); BOOST_CHECK_EQUAL( g.command(), "command" ); BOOST_CHECK_EQUAL( g.body(), "body"); BOOST_CHECK_EQUAL( g.headerEmpty(), true ); BOOST_CHECK_EQUAL( (f == g), false ); BOOST_CHECK_EQUAL( (f != g), true ); PluginFrame h( g ); BOOST_CHECK_EQUAL( (g == h), true ); h.addHeader( "" ); // empty KV in header is ok, if you like it BOOST_CHECK_EQUAL( (g == h), false ); h.addHeader({ { "a", "a1" }, { "a", "a2" }, { "b", "b1" }, { "b", "b2" }, { "c", "c1" }, { "c", "c1" } }); BOOST_CHECK_EQUAL( h.headerSize(), 7 ); h.setHeader( "b", "b" ); // replaces existing 'b:" headers BOOST_CHECK_EQUAL( h.headerSize(), 6 ); // now write and reparse from stream: std::string data; { std::ostringstream datas; h.writeTo( datas ); datas.str().swap( data ); } std::istringstream datas( data ); PluginFrame i( datas ); BOOST_CHECK_EQUAL( (h == i), true ); } void doParse( const std::string & str_r ) { std::string data( str_r ); data.push_back( '\0' ); std::istringstream datas( data ); PluginFrame i( datas ); } BOOST_AUTO_TEST_CASE(PluginFrameExceptipn) { BOOST_CHECK_THROW( PluginFrame( "c\nc" ), PluginFrameException ); PluginFrame f; BOOST_CHECK_THROW( f.addHeader( "c\nc" ), PluginFrameException ); BOOST_CHECK_THROW( f.addHeader( "c:c" ), PluginFrameException ); BOOST_CHECK_THROW( f.addHeader( "cc", "c\nc" ), PluginFrameException ); BOOST_CHECK_THROW( doParse( "c" ), PluginFrameException ); // no NL after command BOOST_CHECK_THROW( doParse( "c\n" ), PluginFrameException ); // no NL after header doParse( "c\n\n" ); // valid empy header and body BOOST_CHECK_THROW( doParse( "c\nh:v\nbody" ), PluginFrameException ); // no NL after header doParse( "c\nh:v\n\nbody" ); // valid BOOST_CHECK_THROW( doParse( "c\nhv\n\nbody" ), PluginFrameException ); // no : in header } BOOST_AUTO_TEST_CASE(PluginScriptTest) { PluginScript scr; BOOST_CHECK_EQUAL( scr.isOpen(), false ); BOOST_CHECK_EQUAL( scr.getPid(), PluginScript::NotConnected ); BOOST_CHECK_EQUAL( scr.script(), "" ); BOOST_CHECK_THROW( scr.open( "bla" ), PluginScriptException ); // script does not exist BOOST_CHECK_EQUAL( scr.isOpen(), false ); // stay closed BOOST_CHECK_EQUAL( scr.getPid(), PluginScript::NotConnected ); BOOST_CHECK_EQUAL( scr.script(), "" ); scr.open( "/bin/cat" ); BOOST_CHECK_EQUAL( scr.isOpen(), true ); BOOST_CHECK_EQUAL( (scr.getPid() != PluginScript::NotConnected ), true ); BOOST_CHECK_EQUAL( scr.script(), "/bin/cat" ); // set after successfull open BOOST_CHECK_THROW( scr.open( "/bin/ls" ), PluginScriptException ); // already open BOOST_CHECK_EQUAL( scr.isOpen(), true ); // stay with "/bin/cat" BOOST_CHECK_EQUAL( (scr.getPid() != PluginScript::NotConnected ), true ); BOOST_CHECK_EQUAL( scr.script(), "/bin/cat" ); PluginFrame f; scr.send( f ); PluginFrame r( scr.receive() ); BOOST_CHECK_EQUAL( f, r ); f.setCommand( "CMD" ); f.addHeader( "a","value" ); f.setBody( "foo" ); scr.send( f ); r = scr.receive(); BOOST_CHECK_EQUAL( f, r ); scr.close(); BOOST_CHECK_EQUAL( scr.isOpen(), false ); BOOST_CHECK_EQUAL( scr.getPid(), PluginScript::NotConnected ); BOOST_CHECK_EQUAL( scr.script(), "/bin/cat" ); // not reset by close, may be reused by open() scr.close(); // no exception on dupl. close. } BOOST_AUTO_TEST_CASE(PluginScriptSend) { PluginFrame f( "a" ); f.setBody( std::string( 1020, '0' ) ); PluginScript scr( "/bin/cat" ); BOOST_CHECK_THROW( scr.send( f ), PluginScriptNotConnected ); scr.open(); BOOST_CHECK_THROW( do { scr.send( f ); } while ( true ), PluginScriptSendTimeout ); ::kill( scr.getPid(), SIGKILL); BOOST_CHECK_THROW( scr.send( f ), PluginScriptDiedUnexpectedly ); } BOOST_AUTO_TEST_CASE(PluginScriptReceive) { PluginFrame f( "a" ); f.setBody( std::string( 1020, '0' ) ); PluginScript scr( "/bin/cat" ); scr.open(); BOOST_CHECK_THROW( scr.receive(), PluginScriptReceiveTimeout ); ::kill( scr.getPid(), SIGKILL); BOOST_CHECK_THROW( scr.receive(), PluginScriptDiedUnexpectedly ); } BOOST_AUTO_TEST_CASE(PluginExecutorTest) { PluginExecutor exec; BOOST_CHECK_EQUAL( (bool)exec, !exec.empty() ); BOOST_CHECK_EQUAL( exec.empty(), true ); BOOST_CHECK_EQUAL( exec.size(), 0 ); exec.load( "/bin/cat" ); BOOST_CHECK_EQUAL( (bool)exec, !exec.empty() ); BOOST_CHECK_EQUAL( exec.empty(), false ); BOOST_CHECK_EQUAL( exec.size(), 1 ); exec.load( "/bin/cat" ); BOOST_CHECK_EQUAL( exec.size(), 2 ); exec.send( PluginFrame( "ACK" ) ); BOOST_CHECK_EQUAL( exec.size(), 2 ); exec.send( PluginFrame( "ERROR" ) ); BOOST_CHECK_EQUAL( exec.size(), 0 ); // deleted failing scripts } libzypp-17.7.0/tests/zypp/PoolQuery_test.cc000066400000000000000000000604051334444677500207760ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/PoolQuery.h" #include "zypp/PoolQueryUtil.tcc" #define BOOST_TEST_MODULE PoolQuery ///////////////////////////////////////////////////////////////////////////// static TestSetup test( Arch_x86_64 ); BOOST_AUTO_TEST_CASE(pool_query_init) { // Abuse;) vbox as System repo: test.loadTargetRepo( TESTS_SRC_DIR "/data/obs_virtualbox_11_1" ); test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" ); test.loadRepo( TESTS_SRC_DIR "/data/OBS_zypp_svn-11.1", "zyppsvn" ); dumpRange( USR, test.pool().knownRepositoriesBegin(), test.pool().knownRepositoriesEnd() ); USR << "pool: " << test.pool() << endl; } ///////////////////////////////////////////////////////////////////////////// static std::ofstream devNull; #define COUT devNull struct PrintAndCount { PrintAndCount() : _count(0) {} bool operator()( const sat::Solvable & solvable ) { zypp::PoolItem pi( zypp::ResPool::instance().find( solvable ) ); COUT << pi.resolvable() << endl; ++_count; return true; } unsigned _count; }; void dumpQ( std::ostream & str, const PoolQuery & q, bool verbose = true ) { q.begin(); str << q << endl; unsigned nc = 0; if ( 1 ) { for_( it, q.begin(), q.end() ) { ++nc; if ( verbose ) str << it << endl; } str << "--> MATCHES: " << nc << endl; } } #if 0 BOOST_AUTO_TEST_CASE(pool_query_experiment) { cout << "****experiment****" << endl; PoolQuery q; q.addString("zypper"); q.addAttribute(sat::SolvAttr::name); // should list 1 selectable? cout << "****selectables****" << endl; for (PoolQuery::Selectable_iterator it = q.selectableBegin(); it != q.selectableEnd(); ++it) { ui::Selectable::Ptr s = *it; cout << s->kind() << ":" << s->name() << " hasinstalled: " << s->installedEmpty() << endl; } cout << "****solvables****" << endl; PrintAndCount cb; std::for_each(q.begin(), q.end(), cb); } #endif ///////////////////////////////////////////////////////////////////////////// // 0xx basic queries ///////////////////////////////////////////////////////////////////////////// // no conditions, default query // result: all available resolvables BOOST_AUTO_TEST_CASE(pool_query_000) { cout << "****000****" << endl; PoolQuery q; cout << q.size() << endl; BOOST_CHECK(q.size() == 3811); /* dumpsolv repo1.solv repo2.solv repo3.solv | \ grep '^name:.*\(noarch\|x86_64\|i386\|i586\|i686\|src\)$' | wc -l */ } // default query + one search string // q.addString("foo"); // result: all resolvables having at least one attribute matching foo BOOST_AUTO_TEST_CASE(pool_query_001) { cout << "****001****" << endl; PoolQuery q; q.addString("zypper"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 11); } // default query + one attribute + one string // q.addAttribute(foo, bar); // should be the same as // q.addAttribute(foo); q.addString(bar); // result: resolvables with foo containing bar BOOST_AUTO_TEST_CASE(pool_query_002) { cout << "****002****" << endl; PoolQuery q; q.addString("zypper"); q.addAttribute(sat::SolvAttr::name); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 5); cout << endl; PoolQuery q1; q1.addAttribute(sat::SolvAttr::name, "zypper"); BOOST_CHECK(std::for_each(q1.begin(), q1.end(), PrintAndCount())._count == 5); } // kind filter BOOST_AUTO_TEST_CASE(pool_query_003) { cout << "****003****" << endl; PoolQuery q; q.addString("zypper"); q.addAttribute(sat::SolvAttr::name); q.addKind(ResKind::package); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 3); } // match exact BOOST_AUTO_TEST_CASE(pool_query_004) { cout << "****004****" << endl; PoolQuery q; q.addString("vim"); q.addAttribute(sat::SolvAttr::name); q.setMatchExact(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 1); PoolQuery q1; q1.addString("zypp"); q1.addAttribute(sat::SolvAttr::name); q1.setMatchExact(); std::for_each(q1.begin(), q1.end(), PrintAndCount()); BOOST_CHECK(q1.empty()); } // use globs BOOST_AUTO_TEST_CASE(pool_query_005) { cout << "****005.1****" << endl; PoolQuery q; q.addString("z?p*"); q.addAttribute(sat::SolvAttr::name); q.setMatchGlob(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 6); cout << "****005.2****" << endl; PoolQuery q1; q1.addString("*zypp*"); q1.addAttribute(sat::SolvAttr::name); q1.setMatchGlob(); BOOST_CHECK(std::for_each(q1.begin(), q1.end(), PrintAndCount())._count == 26); cout << "****005.3****" << endl; // should be the same as above PoolQuery q2; q2.addString("zypp"); q2.addAttribute(sat::SolvAttr::name); BOOST_CHECK(q2.size() == 26); } // use regex BOOST_AUTO_TEST_CASE(pool_query_006) { cout << "****006.1***" << endl; // should be the same as 005 1 PoolQuery q; q.addString("^z.p.*"); q.addAttribute(sat::SolvAttr::name); q.setMatchRegex(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 6); cout << "****006.2***" << endl; PoolQuery q1; q1.addString("zypper|smart"); q1.addAttribute(sat::SolvAttr::name); q1.setMatchRegex(); BOOST_CHECK(std::for_each(q1.begin(), q1.end(), PrintAndCount())._count == 8); cout << "****006.3***" << endl; // invalid regex PoolQuery q2; q2.addString("zypp\\"); q2.setMatchRegex(); BOOST_CHECK_THROW(q2.begin(), Exception); } // match whole words BOOST_AUTO_TEST_CASE(pool_query_007) { cout << "****007***" << endl; PoolQuery q; q.addString("zypp"); q.addAttribute(sat::SolvAttr::name); q.setMatchWord(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 6); } // match by installed status (basically by system vs. repo) BOOST_AUTO_TEST_CASE(pool_query_050) { cout << "****050****" << endl; PoolQuery q; q.addString("yasm"); q.addAttribute(sat::SolvAttr::name); q.setMatchExact(); q.setInstalledOnly(); BOOST_CHECK_EQUAL(std::for_each(q.begin(), q.end(), PrintAndCount())._count, 4); cout << endl; PoolQuery q1; q1.addString("zypper"); q1.addAttribute(sat::SolvAttr::name); q1.setMatchExact(); q1.setUninstalledOnly(); BOOST_CHECK_EQUAL(std::for_each(q1.begin(), q1.end(), PrintAndCount())._count, 5); } ///////////////////////////////////////////////////////////////////////////// // 1xx multiple attribute queries ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(pool_query_100) { cout << "****100****" << endl; PoolQuery q; /* This string is found sometimes only in only in summary (e.g. pgcalc) and sometimes only in description (e.g. bc, lftp). We don't have any package with 'revers' only in package name, but let's ignore this. I didn't find a string with the same characteristics giving fewer matches :-/ */ q.addString("revers"); q.addAttribute(sat::SolvAttr::name); q.addAttribute(sat::SolvAttr::summary); q.addAttribute(sat::SolvAttr::description); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 5); cout << endl; { PoolQuery q1; q1.addAttribute(sat::SolvAttr::name, "zypper"); BOOST_CHECK_EQUAL(q1.size(),5); PoolQuery q2; q2.addAttribute(sat::SolvAttr::summary,"samba"); BOOST_CHECK_EQUAL(q2.size(),13); // now summary and name in one go: q1.addAttribute(sat::SolvAttr::summary,"samba"); BOOST_CHECK_EQUAL(q1.size(),18); } } // multi attr (same value) substring matching (case sensitive and insensitive) BOOST_AUTO_TEST_CASE(pool_query_101) { cout << "****101****" << endl; PoolQuery q; q.addString("RELAX"); q.addAttribute(sat::SolvAttr::name); q.addAttribute(sat::SolvAttr::summary); q.addAttribute(sat::SolvAttr::description); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 7); cout << endl; PoolQuery q2; q2.addString("RELAX"); q2.addAttribute(sat::SolvAttr::name); q2.addAttribute(sat::SolvAttr::summary); q2.addAttribute(sat::SolvAttr::description); q2.setCaseSensitive(); BOOST_CHECK(std::for_each(q2.begin(), q2.end(), PrintAndCount())._count == 4); } // multi attr (same value) glob matching (case sensitive and insensitive) BOOST_AUTO_TEST_CASE(pool_query_102) { cout << "****102****" << endl; PoolQuery q; q.addString("pack*"); q.addAttribute(sat::SolvAttr::name); q.addAttribute(sat::SolvAttr::summary); q.setMatchGlob(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 23); } // multi attr (same value via addAttribute()) BOOST_AUTO_TEST_CASE(pool_query_103) { cout << "****103.1****" << endl; PoolQuery q; q.addAttribute(sat::SolvAttr::name, "rest"); q.addAttribute(sat::SolvAttr::summary, "rest"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 14); cout << "****103.2****" << endl; PoolQuery q1; q1.addString("rest"); q1.addAttribute(sat::SolvAttr::name); q1.addAttribute(sat::SolvAttr::summary); BOOST_CHECK(std::for_each(q1.begin(), q1.end(), PrintAndCount())._count == 14); // BOOST_CHECK(q1.size() == 42); cout << endl; } // multiple attributes, different search strings (one string per attrbute) BOOST_AUTO_TEST_CASE(pool_query_104) { cout << "****104****" << endl; PoolQuery q; q.addAttribute(sat::SolvAttr::name, "zypper"); q.addAttribute(sat::SolvAttr::summary, "package management"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 8); } // multiple attributes, different search strings (one string per attrbute), regex matching BOOST_AUTO_TEST_CASE(pool_query_105) { cout << "****105****" << endl; PoolQuery q; q.addAttribute(sat::SolvAttr::name, "zy..er"); q.addAttribute(sat::SolvAttr::summary, "package management"); q.setMatchRegex(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 8); } ///////////////////////////////////////////////////////////////////////////// // 3xx repo filter queries (addRepo(alias_str)) ///////////////////////////////////////////////////////////////////////////// // default query + one attribute(one string) + one repo BOOST_AUTO_TEST_CASE(pool_query_300) { cout << "****300****" << endl; PoolQuery q; q.addAttribute(sat::SolvAttr::name, "zypper"); q.addRepo("zyppsvn"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 4); } // default query + one repo BOOST_AUTO_TEST_CASE(pool_query_301) { cout << "****301****" << endl; PoolQuery q; q.addRepo("zyppsvn"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 42); } // multiple repos + one attribute BOOST_AUTO_TEST_CASE(pool_query_302) { cout << "****302****" << endl; PoolQuery q; q.addString("zypper"); q.addAttribute(sat::SolvAttr::name); q.addRepo("opensuse"); q.addRepo("zyppsvn"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 5); } ///////////////////////////////////////////////////////////////////////////// // 4xx kind queries (addKind(ResKind)) ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(pool_query_400) { cout << "****400****" << endl; PoolQuery q; q.addString("lamp_server"); q.addAttribute(sat::SolvAttr::name); q.addKind(ResKind::pattern); q.setMatchExact(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 1); } // should find packages and patterns BOOST_AUTO_TEST_CASE(pool_query_401) { cout << "****401****" << endl; PoolQuery q; q.addString("mail*"); q.addAttribute(sat::SolvAttr::name); q.setMatchGlob(); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 4); } ///////////////////////////////////////////////////////////////////////////// // 5xx multiple string/attribute queries ///////////////////////////////////////////////////////////////////////////// // multiple strings for one attribute BOOST_AUTO_TEST_CASE(pool_query_500) { cout << "****500.1****" << endl; PoolQuery q; q.addString("zypper"); q.addString("yast2-packager"); q.addAttribute(sat::SolvAttr::name); q.setMatchExact(); // creates: ^(apt|zypper)$ BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 6); cout << "****500.2****" << endl; q.addString("*bzypp"); q.setMatchGlob(); // creates: ^(.*zy.p|yast.*package.*|.*bzypp)$ BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 11); cout << "****500.3****" << endl; PoolQuery q1; q1.addString("^libsm[a-z]*[0-9]$"); q1.addAttribute(sat::SolvAttr::name, "bzypp$"); q1.addKind(ResKind::package); q1.setMatchRegex(); // creates: (^libsm[a-z]*[0-9]$|bzypp$) BOOST_CHECK(std::for_each(q1.begin(), q1.end(), PrintAndCount())._count == 5); cout << "****500.4****" << endl; PoolQuery q2; q2.addString("Thunder"); q2.addAttribute(sat::SolvAttr::name, "sun"); q2.addKind(ResKind::package); q2.addRepo("opensuse"); q2.setCaseSensitive(); // creates: (sun|Thunder) BOOST_CHECK(std::for_each(q2.begin(), q2.end(), PrintAndCount())._count == 3); cout << "****500.5****" << endl; PoolQuery q3; q3.addString("audio"); q3.addAttribute(sat::SolvAttr::name, "zip"); q3.addKind(ResKind::package); q3.addRepo("opensuse"); q3.setMatchWord(); // creates: \b(zip|audio)\b BOOST_CHECK(std::for_each(q3.begin(), q3.end(), PrintAndCount())._count == 3); } // multiple strings, multiple attributes, same strings BOOST_AUTO_TEST_CASE(pool_query_501) { cout << "****501****" << endl; PoolQuery q; q.addString("Thunder"); q.addString("storm"); q.addAttribute(sat::SolvAttr::name); q.addAttribute(sat::SolvAttr::description); q.addKind(ResKind::package); q.addRepo("opensuse"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 14); } // multiple strings, multiple attributes, same strings BOOST_AUTO_TEST_CASE(pool_query_502) { cout << "****502****" << endl; PoolQuery q; q.addString("weather"); q.addAttribute(sat::SolvAttr::name, "thunder"); q.addAttribute(sat::SolvAttr::description, "storm"); q.addKind(ResKind::package); q.addRepo("opensuse"); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 13); } ///////////////////////////////////////////////////////////////////////////// // 6xx queries with edition ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(pool_query_X) { cout << "****600.1****" << endl; PoolQuery q; q.addAttribute(sat::SolvAttr::name, "zypper"); q.setMatchExact(); q.setEdition(Edition("0.12.5"), Rel::GT); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 4); cout << "****600.2****" << endl; q.setEdition(Edition("0.12.5"), Rel::LT); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 0); cout << "****600.3****" << endl; q.setEdition(Edition("0.12.5"), Rel::LE); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 1); cout << "****600.4****" << endl; q.setEdition(Edition("0.12.5-5"), Rel::LT); BOOST_CHECK(std::for_each(q.begin(), q.end(), PrintAndCount())._count == 1); } BOOST_AUTO_TEST_CASE(pool_query_X1) { cout << "****601.****" << endl; PoolQuery q; q.addString("zypper"); q.addAttribute(sat::SolvAttr::name ); BOOST_CHECK_EQUAL(std::for_each(q.begin(), q.end(), PrintAndCount())._count, 5); q.setEdition(Edition("0.12.8"), Rel::GE); BOOST_CHECK_EQUAL(std::for_each(q.begin(), q.end(), PrintAndCount())._count, 4); } BOOST_AUTO_TEST_CASE(pool_query_X2) { cout << "****X****" << endl; PoolQuery q; q.setMatchGlob(); q.addString("zypp*"); q.addAttribute(sat::SolvAttr::name); BOOST_CHECK_EQUAL(std::for_each(q.begin(), q.end(), PrintAndCount())._count, 5); } BOOST_AUTO_TEST_CASE(pool_query_recovery) { Pathname testfile(TESTS_SRC_DIR); testfile += "/zypp/data/PoolQuery/savedqueries"; cout << "****recovery****" << endl; std::vector queries; std::insert_iterator > ii( queries,queries.begin()); readPoolQueriesFromFile(testfile,ii); BOOST_REQUIRE_MESSAGE(queries.size() == 2, "Bad count of read queries."); BOOST_CHECK_EQUAL(queries[0].size(), 8); PoolQuery q; q.addString("ma*"); q.addRepo("opensuse"); q.addKind(ResKind::patch); q.setMatchRegex(); q.setRequireAll(); q.setCaseSensitive(); q.setUninstalledOnly(); q.setEdition(Edition("0.8.3"),Rel::NE); BOOST_CHECK(q == queries[1]); } BOOST_AUTO_TEST_CASE(pool_predicated_matcher) { cout << "****predicated_matcher****" << endl; { PoolQuery q; q.setMatchExact(); q.addDependency( sat::SolvAttr::name, "zy*", Rel::ANY, Edition(), Arch_empty ); BOOST_CHECK_EQUAL( q.size(), 0 ); q.addDependency( sat::SolvAttr::name, "zy*", Rel::ANY, Edition(), Arch_empty, Match::GLOB ); BOOST_CHECK_EQUAL( q.size(), 5 ); // 5 more q.addDependency( sat::SolvAttr::name, "^kde.*-zh", Rel::ANY, Edition(), Arch_noarch, Match::REGEX ); BOOST_CHECK_EQUAL( q.size(), 9 ); // 4 more q.addDependency( sat::SolvAttr::name, "kde.*-zh", Rel::ANY, Edition(), Arch_noarch, Match::REGEX ); BOOST_CHECK_EQUAL( q.size(), 10 ); // 1 more } } BOOST_AUTO_TEST_CASE(pool_query_serialize) { std::vector queries; { PoolQuery q; q.addString( "ma" ); q.addAttribute( sat::SolvAttr::name ); q.addRepo( "factory-nonoss" ); q.addRepo( "zypp_svn" ); queries.push_back( q ); } { PoolQuery q; q.addAttribute( sat::SolvAttr::name, "ma" ); q.addRepo( "factory-nonoss" ); q.addRepo( "zypp_svn" ); queries.push_back( q ); } { PoolQuery q; q.setMatchExact(); q.addAttribute( sat::SolvAttr::name, "ma" ); q.addDependency( sat::SolvAttr::name, "nn", Rel::EQ, Edition("nne-nnr"), Arch_noarch ); q.addDependency( sat::SolvAttr::name, "nx", Rel::EQ, Edition("nxe-nxr"), Arch_noarch, Match::REGEX ); q.addDependency( sat::SolvAttr::requires, "rn", Rel::EQ, Edition("rne-rnr"), Arch_noarch ); q.addDependency( sat::SolvAttr::requires, "rx", Rel::EQ, Edition("rxe-rxr"), Arch_noarch, Match::GLOB ); queries.push_back( q ); } cout << "****serialize****" << endl; // filesystem::TmpFile testfile; Pathname testfile( "/tmp/testfile" ); writePoolQueriesToFile( testfile, queries.begin(), queries.end() ); std::vector recovered; std::insert_iterator> ii( recovered, recovered.end() ); readPoolQueriesFromFile( testfile, ii ); BOOST_REQUIRE_EQUAL( queries.size(), recovered.size() ); for ( unsigned i = 0U; i < queries.size(); ++i ) { BOOST_CHECK_EQUAL( queries[i], recovered[i] ); } } // test matching BOOST_AUTO_TEST_CASE(pool_query_equal) { cout << "****equal****" << endl; std::vector v; { PoolQuery q; v.push_back( q ); } { PoolQuery q; q.addAttribute( sat::SolvAttr::name, "zypper" ); q.setMatchExact(); q.setCaseSensitive(true); v.push_back( q ); } { PoolQuery q; q.addAttribute( sat::SolvAttr::name, "libzypp" ); // different q.setMatchExact(); q.setCaseSensitive(true); v.push_back( q ); } { PoolQuery q; q.addAttribute( sat::SolvAttr::vendor, "zypper" ); // different q.setMatchExact(); q.setCaseSensitive(true); v.push_back( q ); } { PoolQuery q; q.addAttribute( sat::SolvAttr::name, "zypper" ); q.setMatchExact(); q.setCaseSensitive(false); // different v.push_back( q ); } { PoolQuery q; q.addAttribute( sat::SolvAttr::name, "zypper" ); q.setMatchSubstring(); // different q.setCaseSensitive(true); v.push_back( q ); } { PoolQuery q; q.addDependency( sat::SolvAttr::provides, "zypper" ); v.push_back( q ); } { PoolQuery q; q.addDependency( sat::SolvAttr::provides, "zypper", Rel::GT, Edition("1.0") ); v.push_back( q ); } { PoolQuery q; q.addDependency( sat::SolvAttr::provides, "zypper", Rel::GT, Edition("2.0") ); v.push_back( q ); } for (size_t li = 0; li < v.size(); ++li) { for (size_t ri = 0; ri < v.size(); ++ri) { COUT << li << " <> " << ri << endl; bool equal( v[li] == v[ri] ); bool nequal( v[li] != v[ri] ); BOOST_CHECK_EQUAL( equal, li==ri ); BOOST_CHECK_EQUAL( equal, !nequal ); } } } ///////////////////////////////////////////////////////////////////////////// // Dependency Query ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(addDependency) { { cout << "****addDependency1****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); q.addString( "libzypp" ); q.addDependency( sat::SolvAttr::provides, "FOO" ); // ! finds 'perl(CPAN::InfoObj)' 'foO' std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 13 ); } { cout << "****addDependency2****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); q.addString( "libzypp" ); q.addDependency( sat::SolvAttr::provides, "FOO", Rel::GT, Edition("5.0") ); std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 7 ); } { cout << "****addDependency2a****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); q.addDependency( sat::SolvAttr::provides, "libzypp", Rel::GT, Edition("5.0") ); q.addAttribute( sat::SolvAttr::arch, Arch_i586.asString() ); // OR with arch i585 std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 66 ); } { cout << "****addDependency2b****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); // libzypp provides yast2-packagemanager... q.addDependency( sat::SolvAttr::provides, "yast2-packagemanager", Rel::GT, Edition("5.0"), Arch_i586 ); // AND with arch i585 std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 2 ); } { cout << "****addDependency2c****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); // but no package named yast2-packagemanager q.addDependency( sat::SolvAttr::name, "yast2-packagemanager", Rel::GT, Edition("5.0"), Arch_i586 ); // AND with arch i585 std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 0 ); } { cout << "****addDependency2d****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); // libzypp provides yast2-packagemanager... q.addDependency( sat::SolvAttr::provides, "yast2-packagemanager", Arch_i586 ); // AND with arch i585 std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 2 ); } { cout << "****addDependency2e****" << endl; PoolQuery q; q.setCaseSensitive( false ); q.setMatchSubstring(); // but no package named yast2-packagemanager q.addDependency( sat::SolvAttr::name, "yast2-packagemanager", Arch_i586 ); // AND with arch i585 std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 0 ); } { cout << "****addDependency3****" << endl; PoolQuery q; // includes wine q.addDependency( sat::SolvAttr::provides, "kernel" ); std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 12 ); } { cout << "****addDependency4****" << endl; PoolQuery q; // no wine q.addDependency( sat::SolvAttr::name, "kernel" ); std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 11 ); } { cout << "****addDependency5****" << endl; PoolQuery q; // Capability always matches exact q.addDependency( sat::SolvAttr::provides, Capability("kernel") ); std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 2 ); } { cout << "****addDependency6****" << endl; PoolQuery q; // non dependecy + Capability matches solvable name! q.addDependency( sat::SolvAttr::summary, Capability("kernel") ); std::for_each(q.begin(), q.end(), PrintAndCount()); //dumpQ( std::cout, q ); BOOST_CHECK_EQUAL( q.size(), 0 ); // non dependecy } } libzypp-17.7.0/tests/zypp/ProgressData_test.cc000066400000000000000000000023141334444677500214300ustar00rootroot00000000000000 #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include #include "zypp/ProgressData.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; BOOST_AUTO_TEST_CASE(progressdata_test) { { ProgressData progress(100); CombinedProgressData sub1rcv(progress, 80); ProgressData sub1progress(100); sub1progress.sendTo(sub1rcv); // task 1 goes to 50% sub1progress.set(50); // which is 50% of 80% in task 1 BOOST_CHECK_EQUAL( progress.val(), 40 ); } { ProgressData progress(40000); CombinedProgressData sub2rcv(progress, 10000); ProgressData sub2progress(500); sub2progress.sendTo(sub2rcv); sub2progress.set(250); // which is 50% of 80% in task 1 BOOST_CHECK_EQUAL( progress.val(), 5000 ); } { ProgressData progress(20000,60000); CombinedProgressData sub2rcv(progress, 10000); ProgressData sub2progress(500); sub2progress.sendTo(sub2rcv); sub2progress.set(250); // which is 50% of 80% in task 1 BOOST_CHECK_EQUAL( progress.val(), 25000 ); } } libzypp-17.7.0/tests/zypp/PtrTypes_test.cc000066400000000000000000000103661334444677500206320ustar00rootroot00000000000000#include #include #include "zypp/base/Logger.h" #include #include #include #define BOOST_TEST_MODULE PtrTypes using std::endl; using namespace zypp; using namespace zypp::base; #define TRACE_TAG DBG << this->numericId() << " " << __PRETTY_FUNCTION__ << endl /** Logs Ctor, CopyCtor, Assign and Dtor. */ template struct Trace : public ProvideNumericId { Trace() { TRACE_TAG; } Trace( const Trace & ) { TRACE_TAG; } ~Trace() { TRACE_TAG; } Trace & operator=( const Trace & ) { TRACE_TAG; return *this; } }; /** Data class for shared_ptr */ struct NonIntrusive : private Trace { using Trace::numericId; }; /** Data class for intrusive_ptr */ struct Intrusive : public ReferenceCounted, private Trace { using Trace::numericId; }; namespace zypp { template<> inline NonIntrusive * rwcowClone( const NonIntrusive * rhs ) { return new NonIntrusive( *rhs ); } template<> inline Intrusive * rwcowClone( const Intrusive * rhs ) { return new Intrusive( *rhs ); } } /****************************************************************** ** */ #define T_NULL assert( !ptr ); assert( ptr == nullptr ) #define T_NOT_NULL assert( ptr ); assert( ptr != nullptr ) #define T_UNIQUE assert( ptr.unique() ); assert( ptr.use_count() < 2 ) #define T_NOT_UNIQUE assert( !ptr.unique() ); assert( ptr.use_count() >= 2 ) // Also comapre with underlying shared ptr type. #define T_EQ(a,b) assert( a == b ); assert( a == b.cgetPtr() ); assert( a.cgetPtr() == b ); assert( a.cgetPtr() == b.cgetPtr() ); #define T_NE(a,b) assert( a != b ); assert( a != b.cgetPtr() ); assert( a.cgetPtr() != b ); assert( a.cgetPtr() != b.cgetPtr() ); template void test() { MIL << __PRETTY_FUNCTION__ << std::endl; // typedefs that should be provided: typedef typename RW::PtrType Ptr; typedef typename RW::constPtrType constPtr; typedef typename Ptr::element_type Ptr_element_type; typedef typename constPtr::element_type constPtr_element_type; // initial NULL RW ptr; T_NULL; T_UNIQUE; T_EQ(ptr,ptr); // assign ptr = RW( new Ptr_element_type ); T_NOT_NULL; T_UNIQUE; T_EQ(ptr,ptr); { // share RW ptr2( ptr ); T_NOT_NULL; T_NOT_UNIQUE; T_EQ(ptr,ptr2); // unshare ptr2.reset(); T_NOT_NULL; T_UNIQUE; T_NE(ptr,ptr2); // different impl ptr2.reset( new Ptr_element_type ); T_NE(ptr,ptr2); } // assign ptr.reset( 0 ); T_NULL; T_UNIQUE; // nullptr compatible ptr.reset( nullptr ); T_NULL; T_UNIQUE; ptr = nullptr; T_NULL; T_UNIQUE; ptr = RW( nullptr ); T_NULL; T_UNIQUE; } template void cowt() { test(); MIL << __PRETTY_FUNCTION__ << std::endl; typedef typename RW::PtrType::element_type Ptr_element_type; // create RW ptr( new Ptr_element_type ); unsigned long ptrid = ptr->numericId(); // share RW ptr2( ptr ); // clone aon access unsigned long ptrid2 = ptr2->numericId(); assert( ptrid != ptrid2 ); } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ BOOST_AUTO_TEST_CASE(basic_test) { MIL << "===[START]=====" << endl; test > >(); test > >(); test > >(); test > >(); cowt > >(); cowt > >(); cowt > >(); cowt > >(); MIL << "===[DONE]=====" << endl; } libzypp-17.7.0/tests/zypp/PublicKey_test.cc000066400000000000000000000035041334444677500207230ustar00rootroot00000000000000 #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/PublicKey.h" #include "zypp/TmpPath.h" #include "zypp/Date.h" #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/PublicKey") BOOST_AUTO_TEST_CASE(publickey_test) { // test for a empty key zypp::PublicKey empty_key; BOOST_REQUIRE( ! empty_key.isValid() ); BOOST_CHECK_THROW( zypp::PublicKey("nonexistant"), Exception ); zypp::PublicKey k2(DATADIR/"susekey.asc"); BOOST_CHECK_EQUAL( k2.id(), "A84EDAE89C800ACA" ); BOOST_CHECK_EQUAL( k2.name(), "SuSE Package Signing Key " ); BOOST_CHECK_EQUAL( k2.fingerprint(), "79C179B2E1C820C1890F9994A84EDAE89C800ACA" ); BOOST_CHECK_EQUAL( k2.gpgPubkeyVersion(), "9c800aca" ); BOOST_CHECK_EQUAL( k2.gpgPubkeyRelease(), "40d8063e" ); BOOST_CHECK_EQUAL( k2.created(), zypp::Date(1087899198) ); BOOST_CHECK_EQUAL( k2.expires(), zypp::Date(1214043198) ); //BOOST_CHECK_EQUAL( k2.daysToLive(), "" ); BOOST_REQUIRE( k2.path() != Pathname() ); BOOST_REQUIRE( k2 == k2 ); k2 = zypp::PublicKey(DATADIR/"multikey.asc"); BOOST_CHECK_EQUAL( k2.id(), "27FA41BD8A7C64F9" ); BOOST_CHECK_EQUAL( k2.name(), "Unsupported " ); BOOST_CHECK_EQUAL( k2.fingerprint(), "D88811AF6B51852351DF538527FA41BD8A7C64F9" ); BOOST_CHECK_EQUAL( k2.gpgPubkeyVersion(), "8a7c64f9" ); BOOST_CHECK_EQUAL( k2.gpgPubkeyRelease(), "4be01af3" ); BOOST_CHECK_EQUAL( k2.created(), zypp::Date(1272978163) ); BOOST_CHECK_EQUAL( k2.expires(), zypp::Date(1399122163) ); k2 = zypp::PublicKey(DATADIR/"multikey2.asc"); BOOST_CHECK_EQUAL( k2.hiddenKeys().size(), 8 ); } libzypp-17.7.0/tests/zypp/RWPtr_test.cc000066400000000000000000000033761334444677500200610ustar00rootroot00000000000000#include #include #include #include #define BOOST_TEST_MODULE RWPtr_test struct Foo { int _foo; Foo(int foo=0): _foo(foo) { std::cerr << "created Foo(" << _foo << ")" << std::endl; } ~Foo() { std::cerr << "destroy Foo(" << _foo << ")" << std::endl; } }; #define REF_TEST(ref,msg,exp,res) \ do { \ bool unique = exp; \ std::cerr << msg << std::endl; \ if( ref) { \ std::cerr << "ref contains object" << std::endl; \ } else { \ std::cerr << "ref contains no object" << std::endl; \ } \ std::cerr << "ref counter is " << ref.use_count() << std::endl; \ if( ref.unique()) { \ std::cerr << "ref is unique" << std::endl; \ if( unique) { \ std::cerr << "EXPECTED" << std::endl; \ } else { \ std::cerr << "NOT EXPECTED" << std::endl; \ res = 1; \ } \ } else { \ std::cerr << "ref is shared" << std::endl; \ if( !unique) { \ std::cerr << "EXPECTED" << std::endl; \ } else { \ std::cerr << "NOT EXPECTED" << std::endl; \ res = 1; \ } \ } \ std::cerr << std::endl; \ } while(0); BOOST_AUTO_TEST_CASE(basic_test) { bool skip_reset = false; int result = 0; typedef zypp::RW_pointer FooRef; FooRef ref; REF_TEST(ref,"=== REF(nil)", true, result); ref.reset(new Foo(42)); REF_TEST(ref,"=== REF(object)", true, result); { FooRef ref2(ref); REF_TEST(ref,"=== REF2(REF)", false, result); } REF_TEST(ref,"=== REF(object), REF2 out of scope now", true, result); if( !skip_reset) { ref.reset(); REF_TEST(ref,"=== REF(nil), reset()", true, result); } std::cerr << "RESULT: " << (result == 0 ? "PASSED" : "FAILED") << std::endl; } libzypp-17.7.0/tests/zypp/RepoInfo_test.cc000066400000000000000000000020511334444677500205510ustar00rootroot00000000000000 #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/RepoInfo.h" #include #include #include #include "KeyRingTestReceiver.h" #include "WebServer.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace boost::unit_test::log; using namespace std; using namespace zypp; using namespace zypp::filesystem; using namespace zypp::repo; BOOST_AUTO_TEST_CASE(repoinfo_test) { WebServer web((Pathname(TESTS_SRC_DIR) + "/data/Mirrorlist/remote-site").c_str(), 10001); web.start(); Url weburl (web.url()); weburl.setPathName("/metalink.xml"); RepoInfo ri; ri.setMirrorListUrl(weburl); BOOST_CHECK(ri.url().asString() == "http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/"); ostringstream ostr; ri.dumpAsIniOn(ostr); BOOST_CHECK( ostr.str().find("baseurl=") == string::npos ); web.stop(); } libzypp-17.7.0/tests/zypp/RepoManager_test.cc000066400000000000000000000223301334444677500212320ustar00rootroot00000000000000 #include #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Exception.h" #include "zypp/KeyRing.h" #include "zypp/PublicKey.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/ServiceInfo.h" #include "zypp/RepoManager.h" #include "TestSetup.h" #include #include "KeyRingTestReceiver.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; using namespace zypp::repo; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/RepoManager") #define REPODATADIR (Pathname(TESTS_SRC_DIR) + "/repo/susetags/data/addon_in_subdir") BOOST_AUTO_TEST_CASE(refresh_addon_in_subdir) { KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // disable sgnature checking keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); keyring_callbacks.answerAcceptVerFailed(true); keyring_callbacks.answerAcceptUnknownKey(true); // make sure we can refresh an addon which is in a subpath in a media url TestSetup test( Arch_x86_64 ); RepoInfo info; info.setBaseUrl( REPODATADIR.asDirUrl() ); info.setPath("/updates"); info.setType(RepoType::YAST2); info.setAlias("boooh"); test.loadRepo(info); // take care we actually got the data Repository r( test.satpool().reposFind( "boooh" ) ); BOOST_REQUIRE( r ); BOOST_CHECK_EQUAL( r.solvablesSize(), 2 ); BOOST_CHECK_EQUAL( r.info().type(), repo::RepoType::YAST2 ); BOOST_CHECK( r.info().hasLicense() ); } BOOST_AUTO_TEST_CASE(pluginservices_test) { TmpDir tmpCachePath; RepoManagerOptions opts( RepoManagerOptions::makeTestSetup( tmpCachePath ) ) ; opts.rootDir = ""; // NOTE: After all paths have been setup correctly, // we must reset the RepoManager rootDir to prevent the plugin script // from being executed chrooted (would require UID 0). opts.pluginsPath = DATADIR + "/plugin-service-lib-1"; BOOST_CHECK(PathInfo(opts.pluginsPath / "services/service").isExist()); { RepoManager manager(opts); BOOST_REQUIRE_EQUAL(1, manager.serviceSize()); BOOST_CHECK(manager.repoEmpty()); ServiceInfo service(*manager.serviceBegin()); BOOST_CHECK_EQUAL("service", service.alias()); BOOST_CHECK_EQUAL( (DATADIR / "/plugin-service-lib-1/services/service").asFileUrl(), service.url().asString()); // now refresh the service manager.refreshServices(); BOOST_CHECK_EQUAL((unsigned) 2, manager.repoSize()); //std::list infos; //manager.getRepositoriesInService("test", // insert_iterator >(infos,infos.begin())); //BOOST_CHECK_EQUAL(infos.size(), 2); // 2 from new repoindex } // Now simulate the service changed opts.pluginsPath = DATADIR + "/plugin-service-lib-2"; { RepoManager manager(opts); BOOST_REQUIRE_EQUAL(1, manager.serviceSize()); ServiceInfo service(*manager.serviceBegin()); BOOST_CHECK_EQUAL("service", service.alias()); BOOST_CHECK_EQUAL( (DATADIR / "/plugin-service-lib-2/services/service").asFileUrl(), service.url().asString()); // now refresh the service manager.refreshServices(); BOOST_CHECK_EQUAL((unsigned) 1, manager.repoSize()); } } // regression test for services bug // if you modify a service that you just // added and saved, the service was not associated with its // file internally BOOST_AUTO_TEST_CASE(service_file_link_bug) { TmpDir tmpCachePath; RepoManagerOptions opts( RepoManagerOptions::makeTestSetup( tmpCachePath ) ) ; filesystem::mkdir( opts.knownReposPath ); filesystem::mkdir( opts.knownServicesPath ); RepoManager manager(opts); //test service ServiceInfo service("test", DATADIR.asDirUrl() ); service.setEnabled(true); manager.addService(service); // now internally, service is associated with the file // where it was saved // the following line reset the file association with the bug manager.modifyService(service.alias(), service); // and the following modifyService fails because there is no // association manager.modifyService(service.alias(), service); } BOOST_AUTO_TEST_CASE(repomanager_test) { TmpDir tmpCachePath; RepoManagerOptions opts( RepoManagerOptions::makeTestSetup( tmpCachePath ) ) ; opts.servicesTargetDistro = "sles-10-i586"; // usually determined by the Target filesystem::mkdir( opts.knownReposPath ); filesystem::mkdir( opts.knownServicesPath ); BOOST_CHECK_EQUAL( filesystem::copy_dir_content( DATADIR + "/repos.d", opts.knownReposPath ), 0 ); RepoManager manager(opts); list repos; repos.insert(repos.end(), manager.repoBegin(), manager.repoEnd()); BOOST_CHECK_EQUAL(repos.size(), (unsigned) 4); // now add a .repo file with 2 repositories in it manager.addRepositories( (DATADIR / "/proprietary.repo").asFileUrl() ); // check it was not overwriten the proprietary.repo file BOOST_CHECK( PathInfo(opts.knownReposPath + "/proprietary.repo_1").isExist() ); // now there should be 6 repos repos.clear(); repos.insert(repos.end(), manager.repoBegin(), manager.repoEnd()); BOOST_CHECK_EQUAL(repos.size(), (unsigned) 6); RepoInfo office_dup; office_dup.setAlias("office"); BOOST_CHECK_THROW(manager.addRepository(office_dup), RepoAlreadyExistsException); // delete the office repo inside the propietary_1.repo RepoInfo office; office.setAlias("office"); manager.removeRepository(office); // now there should be 5 repos repos.clear(); repos.insert(repos.end(), manager.repoBegin(), manager.repoEnd()); BOOST_CHECK_EQUAL(repos.size(), (unsigned) 5); // the file still contained one repo, so it should still exists BOOST_CHECK( PathInfo(opts.knownReposPath + "/proprietary.repo_1").isExist() ); // now delete the macromedia one RepoInfo macromedia; macromedia.setAlias("macromedia"); manager.removeRepository(macromedia); BOOST_CHECK_EQUAL(manager.repoSize(), (unsigned) 4); // the file should not exist anymore BOOST_CHECK( ! PathInfo(opts.knownReposPath + "/proprietary.repo_1").isExist() ); //test service Url urlS( DATADIR.asDirUrl() ); ServiceInfo service("test", urlS); service.setEnabled(true); manager.addService(service); manager.refreshServices(); BOOST_CHECK_EQUAL(manager.repoSize(), (unsigned) 7); // +3 from repoindex //simulate change of repoindex.xml urlS = (DATADIR / "second").asDirUrl(); service.setUrl(urlS); service.setEnabled(true); manager.modifyService(service.alias(), service); manager.refreshServices(); BOOST_CHECK_EQUAL(manager.repoSize(), (unsigned) 6); // -1 from new repoindex std::list infos; manager.getRepositoriesInService("test", insert_iterator >(infos,infos.begin())); BOOST_CHECK_EQUAL(infos.size(), 2); // 2 from new repoindex // let test cache creation RepoInfo repo; repo.setAlias("foo"); //BOOST_CHECK_MESSAGE(0, repourl.asString()); repo.setBaseUrl( (Pathname(TESTS_SRC_DIR) / "/repo/yum/data/10.2-updates-subset").asDirUrl() ); KeyRingTestReceiver keyring_callbacks; KeyRingTestSignalReceiver receiver; // disable sgnature checking keyring_callbacks.answerAcceptKey(KeyRingReport::KEY_TRUST_TEMPORARILY); keyring_callbacks.answerAcceptVerFailed(true); keyring_callbacks.answerAcceptUnknownKey(true); // We have no metadata and cache yet BOOST_CHECK_MESSAGE( !manager.isCached(repo), "Repo should not yet be cached" ); // This should download metadata and build the cache manager.buildCache(repo); // Now we have metadata and cache BOOST_CHECK_MESSAGE( manager.isCached(repo), "Repo should be cached now" ); // Metadata are up to date RepoManager::RefreshCheckStatus ref_stat = manager.checkIfToRefreshMetadata(repo, *repo.baseUrlsBegin()); SEC << endl << ref_stat << endl; BOOST_CHECK_MESSAGE( ref_stat== RepoManager::REPO_UP_TO_DATE || ref_stat == RepoManager::REPO_CHECK_DELAYED, "Metadata should be up to date" ); // the solv file should exists now Pathname base = (opts.repoCachePath / "solv" / repo.alias()); Pathname solvfile = base / "solv"; Pathname cookiefile = base / "cookie"; BOOST_CHECK_MESSAGE( PathInfo(solvfile).isExist(), "Solv file is created after caching: " + solvfile.asString()); BOOST_CHECK_MESSAGE( PathInfo(cookiefile).isExist(), "Cookie file is created after caching: " + cookiefile.asString()); MIL << "Repo already in cache, clean cache"<< endl; manager.cleanCache(repo); BOOST_CHECK_MESSAGE( !manager.isCached(repo), "Repo cache was just deleted, should not be cached now" ); // now cache should build normally manager.buildCache(repo); manager.loadFromCache(repo); if ( manager.isCached(repo ) ) { MIL << "Repo already in cache, clean cache"<< endl; manager.cleanCache(repo); } MIL << "Parsing repository metadata..." << endl; manager.buildCache(repo); // now test that loading twice a repo updates // it instead of duplicating the solv file } BOOST_AUTO_TEST_CASE(repo_seting_test) { RepoInfo repo; repo.setAlias("foo"); repo.setBaseUrl(string("http://test.org")); BOOST_CHECK_MESSAGE( !repo.keepPackages(), "keepPackages must default to OFF"); } //! \todo test this //BOOST_AUTO_TEST_CASE(repo_dont_overwrite_external_settings_test) //{ //} libzypp-17.7.0/tests/zypp/RepoStatus_test.cc000066400000000000000000000015121334444677500211420ustar00rootroot00000000000000 #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/TmpPath.h" #include "zypp/RepoStatus.h" #include "zypp/PathInfo.h" #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; BOOST_AUTO_TEST_CASE(repostatus_test) { TmpFile tmpPath; TmpFile tmpPath2; RepoStatus status; RepoStatus fstatus( tmpPath ); RepoStatus fstatus2( tmpPath2 ); BOOST_CHECK_EQUAL( status.empty(), true ); BOOST_CHECK_EQUAL( (status&&status).empty(), true ); BOOST_CHECK_EQUAL( fstatus.empty(), false ); BOOST_CHECK_EQUAL( (fstatus&&status).empty(), false ); BOOST_CHECK_EQUAL( (fstatus&&status), (status&&fstatus) ); BOOST_CHECK_EQUAL( (fstatus&&fstatus2), (fstatus2&&fstatus) ); } libzypp-17.7.0/tests/zypp/ResKind_test.cc000066400000000000000000000020621334444677500203710ustar00rootroot00000000000000#include #include "zypp/base/Logger.h" #include "zypp/ResKind.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; BOOST_AUTO_TEST_CASE(reskind_test) { // Default construced is empty "" BOOST_CHECK_EQUAL( ResKind(), "" ); // boolean context BOOST_CHECK( ! ResKind() ); BOOST_CHECK( ! ResKind(0) ); // id NULL BOOST_CHECK( ! ResKind(1) ); // id "" BOOST_CHECK( ! ResKind("") ); // "" BOOST_CHECK( ResKind(2) ); BOOST_CHECK( ResKind("FOO") ); // Internal representation is lowercased BOOST_CHECK_EQUAL( ResKind("FOO").asString(), "foo" ); // Caseinsensitive comparison BOOST_CHECK_EQUAL( ResKind("FOO"), ResKind("foo") ); BOOST_CHECK_EQUAL( ResKind("FOO"), string("Foo") ); BOOST_CHECK_EQUAL( ResKind("FOO"), "Foo" ); BOOST_CHECK_EQUAL( ResKind("FOO"), string("foo") ); BOOST_CHECK_EQUAL( ResKind("FOO"), "foo" ); BOOST_CHECK_EQUAL( string("foo"), ResKind("FOO") ); BOOST_CHECK_EQUAL( "foo", ResKind("FOO") ); BOOST_CHECK_EQUAL( ResKind::compare( "FOO", "foo" ), 0 ); } libzypp-17.7.0/tests/zypp/ResStatus_test.cc000066400000000000000000000237561334444677500210040ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/ResStatus.h" #define BOOST_TEST_MODULE ResStatus BOOST_AUTO_TEST_CASE(Default) { { ResStatus s; BOOST_CHECK( s.isUninstalled() ); BOOST_CHECK_EQUAL( s.isInstalled(), ! s.isUninstalled() ); BOOST_CHECK_EQUAL( s.getTransactValue(), ResStatus::KEEP_STATE ); BOOST_CHECK_EQUAL( s.getTransactByValue(), ResStatus::SOLVER ); } { ResStatus s( true ); BOOST_CHECK( s.isInstalled() ); BOOST_CHECK_EQUAL( s.isInstalled(), ! s.isUninstalled() ); BOOST_CHECK_EQUAL( s.getTransactValue(), ResStatus::KEEP_STATE ); BOOST_CHECK_EQUAL( s.getTransactByValue(), ResStatus::SOLVER ); } } //////////////////////////////////////////////////////////////////////////////// // tools //////////////////////////////////////////////////////////////////////////////// template inline const Tp & max( const Tp & lhs, const Tp & rhs ) { return lhs < rhs ? rhs : lhs; } template inline Tp * begin( Tp (& _array)[N] ) { return _array; } template inline Tp * end( Tp (& _array)[N] ) { return _array + (sizeof(_array)/sizeof(Tp)); } ResStatus::TransactByValue transactByValues[] = { ResStatus::USER, ResStatus::APPL_HIGH, ResStatus::APPL_LOW, ResStatus::SOLVER }; ResStatus::TransactValue transactValues[] = { ResStatus::TRANSACT, ResStatus::KEEP_STATE, ResStatus::LOCKED }; bool transactTo[] = { true, false }; // Status transition like setTransact, setLock, setSoftTransact typedef bool (ResStatus::* Transition)( bool, ResStatus::TransactByValue ); // Result evaluation typedef void (* Evaluate)( ResStatus::TransactValue, ResStatus::TransactByValue, /* fromState, fromBy */ bool, ResStatus::TransactByValue, /* toState, toBy */ bool, ResStatus ); /* done, result */ // build status and return whether the comination is supported. (e.g currently no LOCKED state below APPL_HIGH) inline bool initStatus( ResStatus::TransactValue fromState, ResStatus::TransactByValue fromBy, ResStatus & from ) { from = ResStatus(); if ( fromState == ResStatus::KEEP_STATE ) { from.setSoftLock( fromBy ); } else { from.setTransactValue( fromState, fromBy ); if ( fromState == ResStatus::LOCKED && ! from.isLocked() ) return false; // no lock at this level (by now just USER APPL_HIGH) } return true; } void testTable( Transition transition, Evaluate evaluate ) { // Table: For each causer combination (fromBy -> toBy) invoke transition: // // bool ok = ResStatus(fromState,fromBy).transition( toState, toBy ) // // And evaluate the result. // for ( ResStatus::TransactByValue * toBy = begin( transactByValues ); toBy != end( transactByValues ); ++toBy ) { for ( ResStatus::TransactByValue * fromBy = begin( transactByValues ); fromBy != end( transactByValues ); ++fromBy ) { INT << "=== " << *fromBy << " ==> " << *toBy << " ===" << endl; for ( ResStatus::TransactValue * fromState = begin( transactValues ); fromState != end( transactValues ); ++fromState ) { ResStatus from; if ( ! initStatus( *fromState, *fromBy, from ) ) { //WAR << "Unsupported ResStatus(" << *fromState << "," << *fromBy << ")" << endl; continue; // Unsupported ResStatus } for ( bool * toState = begin( transactTo ); toState != end( transactTo ); ++toState ) { ResStatus result( from ); bool done = (result.*transition)( *toState, *toBy ); if ( ! done ) BOOST_CHECK_EQUAL( from, result ); // status stays unchaged on failure! evaluate( *fromState, *fromBy, *toState, *toBy, done, result ); } } } } } // BOOST_CHECK_EQUAL or BOOST_REQUIRE_EQUAL #define X BOOST_CHECK_EQUAL // Transition must succeeds always #define CHECK_DONE_ALWAYS X( done, true ); if ( ! done ) return // Transition succeeds if same or higher TransactByValue #define CHECK_DONE_IFCAUSER X( done, toBy >= fromBy ); if ( ! done ) return // Transition succeeds if a locker (APPL_HIGH or USER) #define CHECK_DONE_ALWAYS_IFLOCKER X( done, toBy >= ResStatus::APPL_HIGH ); if ( ! done ) return // Transition succeeds if a locker (APPL_HIGH or USER) and same or higher TransactByValue #define CHECK_DONE_IFCAUSER_ISLOCKER X( done, toBy >= max(fromBy,ResStatus::APPL_HIGH) ); if ( ! done ) return // Expected target state after transistion #define CHECK_STATE(NEW) X( result.getTransactValue(), ResStatus::NEW ) // Transition result: Remember the causer (i.e. may downgrade superior causer of previous state) #define CHECK_CAUSER_SET X( result.getTransactByValue(), toBy ) // Transition result: Remember a superior causer #define CHECK_CAUSER_RAISED X( result.getTransactByValue(), max(fromBy,toBy) ) // Transition result: Causer stays the same #define CHECK_CAUSER_STAYS X( result.getTransactByValue(), fromBy ) // Transition result: Causer reset to least (SOLVER) level. #define CHECK_CAUSER_TO_SOLVER X( result.getTransactByValue(), ResStatus::SOLVER ) //////////////////////////////////////////////////////////////////////////////// // test cases (see BOOST_AUTO_TEST_CASE(transition)) //////////////////////////////////////////////////////////////////////////////// // All tests below should define 3 checks, abbrev. by defines // // CHECK_DONE_*: When does the tranaction succeed? (return if not) // CHECK_STATE( NEXT ): The state the transition leads to (if successfull) // CHECK_CAUSER_*: Changes to the remembered causer (if successfull) // #define DOCHECK( FROMSTATE, TOSTATE, C_DONE, C_STATE, C_CAUSER ) \ if ( ResStatus::FROMSTATE == fromState && TOSTATE == toState ) { C_DONE; CHECK_STATE( C_STATE ); C_CAUSER; } void evaluateSetTransact( ResStatus::TransactValue fromState, ResStatus::TransactByValue fromBy, bool toState, ResStatus::TransactByValue toBy, bool done, ResStatus result ) { ResStatus from; initStatus( fromState, fromBy, from ); MIL << from << " =setTransact("<\t" << done << ":" << result << endl; DOCHECK( TRANSACT, true, CHECK_DONE_ALWAYS, TRANSACT, CHECK_CAUSER_RAISED ); DOCHECK( TRANSACT, false, CHECK_DONE_IFCAUSER, KEEP_STATE, CHECK_CAUSER_RAISED ); // from transact into softlock DOCHECK( KEEP_STATE, true, CHECK_DONE_ALWAYS, TRANSACT, CHECK_CAUSER_SET ); DOCHECK( KEEP_STATE, false, CHECK_DONE_ALWAYS, KEEP_STATE, CHECK_CAUSER_STAYS ); // keep is not raised to softlock DOCHECK( LOCKED, true, CHECK_DONE_IFCAUSER, TRANSACT, CHECK_CAUSER_SET ); DOCHECK( LOCKED, false, CHECK_DONE_ALWAYS, LOCKED, CHECK_CAUSER_STAYS ); } void evaluateSetSoftTransact( ResStatus::TransactValue fromState, ResStatus::TransactByValue fromBy, bool toState, ResStatus::TransactByValue toBy, bool done, ResStatus result ) { ResStatus from; initStatus( fromState, fromBy, from ); MIL << from << " =setSoftTransact("<\t" << done << ":" << result << endl; DOCHECK( TRANSACT, true, CHECK_DONE_ALWAYS, TRANSACT, CHECK_CAUSER_RAISED ); DOCHECK( TRANSACT, false, CHECK_DONE_IFCAUSER, KEEP_STATE, CHECK_CAUSER_RAISED ); // from transact into softlock DOCHECK( KEEP_STATE, true, CHECK_DONE_IFCAUSER, TRANSACT, CHECK_CAUSER_SET ); // leaving KEEP requires sup. causer DOCHECK( KEEP_STATE, false, CHECK_DONE_ALWAYS, KEEP_STATE, CHECK_CAUSER_STAYS ); // keep is not raised to softlock DOCHECK( LOCKED, true, CHECK_DONE_IFCAUSER, TRANSACT, CHECK_CAUSER_SET ); DOCHECK( LOCKED, false, CHECK_DONE_ALWAYS, LOCKED, CHECK_CAUSER_STAYS ); } // Check whether failures are ok and whether success lead to the correct state void evaluateSetLock( ResStatus::TransactValue fromState, ResStatus::TransactByValue fromBy, bool toState, ResStatus::TransactByValue toBy, bool done, ResStatus result ) { ResStatus from; initStatus( fromState, fromBy, from ); MIL << from << " =setLock("<\t" << done << ":" << result << endl; DOCHECK( TRANSACT, true, CHECK_DONE_IFCAUSER_ISLOCKER, LOCKED, CHECK_CAUSER_SET ); // transact is 'not locked' DOCHECK( TRANSACT, false, CHECK_DONE_ALWAYS, TRANSACT, CHECK_CAUSER_STAYS ); DOCHECK( KEEP_STATE, true, CHECK_DONE_ALWAYS_IFLOCKER, LOCKED, CHECK_CAUSER_SET ); DOCHECK( KEEP_STATE, false, CHECK_DONE_ALWAYS, KEEP_STATE, CHECK_CAUSER_STAYS ); DOCHECK( LOCKED, true, CHECK_DONE_ALWAYS, LOCKED, CHECK_CAUSER_RAISED ); DOCHECK( LOCKED, false, CHECK_DONE_IFCAUSER, KEEP_STATE, CHECK_CAUSER_TO_SOLVER ); } BOOST_AUTO_TEST_CASE(transition) { //base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "-" ) ); MIL << endl; testTable( &ResStatus::setTransact, &evaluateSetTransact ); testTable( &ResStatus::setSoftTransact, &evaluateSetSoftTransact ); testTable( &ResStatus::setLock, &evaluateSetLock ); } bool WhilePoolItemSameStateIsPrivate( ResStatus ostatus, ResStatus nstatus ) { if ( nstatus == ostatus ) return true; // some bits changed... if ( nstatus.getTransactValue() != ostatus.getTransactValue() && ( ! nstatus.isBySolver() // ignore solver state changes // removing a user lock also goes to bySolver || ostatus.getTransactValue() == ResStatus::LOCKED ) ) return false; if ( nstatus.isLicenceConfirmed() != ostatus.isLicenceConfirmed() ) return false; return true; } BOOST_AUTO_TEST_CASE(savestate) { ResStatus ostatus; ResStatus nstatus; BOOST_CHECK_EQUAL( WhilePoolItemSameStateIsPrivate( ostatus, nstatus ), true ); nstatus.setLock( true, ResStatus::USER ); BOOST_CHECK_EQUAL( WhilePoolItemSameStateIsPrivate( ostatus, nstatus ), false ); ostatus = nstatus; nstatus.setLock( false, ResStatus::USER ); BOOST_CHECK_EQUAL( WhilePoolItemSameStateIsPrivate( ostatus, nstatus ), false ); } libzypp-17.7.0/tests/zypp/Resolvable_test.cc000066400000000000000000000016621334444677500211350ustar00rootroot00000000000000 #include #include #include // Boost.Test #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/ZYppFactory.h" #include "zypp/ZYpp.h" #include "zypp/Pattern.h" #include "TestSetup.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; BOOST_AUTO_TEST_CASE(resolvable_test) { TestSetup test( Arch_x86_64 ); // test.loadTarget(); // initialize and load target test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" ); int pattern_count = 0; for_( pitem, test.pool().begin(), test.pool().end() ) { if ( isKind(pitem->resolvable()) ) { //BOOST_CHECK( ! asKind(pitem->resolvable())->contents().empty() ); MIL << asKind(pitem->resolvable()) << endl; pattern_count++; } } BOOST_CHECK(pattern_count > 0); } libzypp-17.7.0/tests/zypp/Selectable_test.cc000066400000000000000000000315571334444677500211100ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/ResPool.h" #include "zypp/ui/Selectable.h" #define BOOST_TEST_MODULE Selectable ///////////////////////////////////////////////////////////////////////////// static TestSetup test; BOOST_AUTO_TEST_CASE(testcase_init) { // zypp::base::LogControl::instance().logToStdErr(); test.loadTestcaseRepos( TESTS_SRC_DIR"/data/TCSelectable" ); // dumpRange( USR, test.pool().knownRepositoriesBegin(), // test.pool().knownRepositoriesEnd() ) << endl; // USR << "pool: " << test.pool() << endl; } ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(candiadate) { ResPoolProxy poolProxy( test.poolProxy() ); ui::Selectable::Ptr s( poolProxy.lookup( ResKind::package, "candidate" ) ); // (I 1) { // I__s_(8)candidate-1-1.i586(@System)(openSUSE) // } (A 6) { // U__s_(2)candidate-4-1.x86_64(RepoHIGH)(unkown) // U__s_(3)candidate-4-1.i586(RepoHIGH)(unkown) <- (update) candidate if allowVendorChange // U__s_(6)candidate-0-1.x86_64(RepoMID)(openSUSE) // U__s_(7)candidate-0-1.i586(RepoMID)(openSUSE) <- candidate (highest prio matching arch and vendor) // U__s_(4)candidate-2-1.x86_64(RepoLOW)(openSUSE) // U__s_(5)candidate-2-1.i586(RepoLOW)(openSUSE) // } if ( ZConfig::instance().solver_allowVendorChange() ) { BOOST_CHECK_EQUAL( s->candidateObj()->repoInfo().alias(), "RepoHIGH" ); BOOST_CHECK_EQUAL( s->candidateObj()->edition(), Edition("4-1") ); BOOST_CHECK_EQUAL( s->candidateObj()->arch(), Arch_i586 ); // updateCandidate: BOOST_CHECK_EQUAL( s->updateCandidateObj(), s->candidateObj() ); } else { BOOST_CHECK_EQUAL( s->candidateObj()->repoInfo().alias(), "RepoMID" ); BOOST_CHECK_EQUAL( s->candidateObj()->edition(), Edition("0-1") ); BOOST_CHECK_EQUAL( s->candidateObj()->arch(), Arch_i586 ); // no updateCandidate due to low version BOOST_CHECK_EQUAL( s->updateCandidateObj(), PoolItem() ); } } BOOST_AUTO_TEST_CASE(candiadatenoarch) { ResPoolProxy poolProxy( test.poolProxy() ); ui::Selectable::Ptr s( poolProxy.lookup( ResKind::package, "candidatenoarch" ) ); /*[package]candidatenoarch: S_KeepInstalled (I 1) { I__s_(17)candidatenoarch-1-1.i586(@System) } (A 8) { C U__s_(4)candidatenoarch-5-1.noarch(RepoHIGH) <- candidate (arch/noarch change) U__s_(5)candidatenoarch-4-1.x86_64(RepoHIGH) U__s_(6)candidatenoarch-4-1.i586(RepoHIGH) U__s_(7)candidatenoarch-4-1.noarch(RepoHIGH) U__s_(12)candidatenoarch-0-2.noarch(RepoMID) U__s_(13)candidatenoarch-0-1.x86_64(RepoMID) U__s_(14)candidatenoarch-0-1.i586(RepoMID) U__s_(15)candidatenoarch-0-1.noarch(RepoMID) } */ BOOST_CHECK_EQUAL( s->candidateObj()->repoInfo().alias(), "RepoHIGH" ); BOOST_CHECK_EQUAL( s->candidateObj()->edition(), Edition("5-1") ); BOOST_CHECK_EQUAL( s->candidateObj()->arch(), Arch_noarch ); // no updateCandidate due to low version BOOST_CHECK_EQUAL( s->updateCandidateObj(), s->candidateObj() ); } ///////////////////////////////////////////////////////////////////////////// // // Status change tests // ///////////////////////////////////////////////////////////////////////////// // build ResStatus and return whether the comination is supported. (e.g currently no LOCKED state below APPL_HIGH) inline bool initStatus( ResStatus::TransactValue fromState, ResStatus::TransactByValue fromBy, ResStatus & from ) { from = ResStatus(); if ( fromState == ResStatus::KEEP_STATE ) { from.setSoftLock( fromBy ); } else { from.setTransactValue( fromState, fromBy ); if ( fromState == ResStatus::LOCKED && ! from.isLocked() ) return false; // no lock at this level (by now just USER APPL_HIGH) } return true; } ///////////////////////////////////////////////////////////////////////////// // status verification helper ///////////////////////////////////////////////////////////////////////////// // enum TransactValue // { // KEEP_STATE = bit::RangeValue::value, // LOCKED = bit::RangeValue::value, // locked, must not transact // TRANSACT = bit::RangeValue::value // transact according to state // }; template inline bool _all( TIter begin_r, TIter end_r, ResStatus::TransactValue val_r ) { for_( it, begin_r, end_r ) { if ( it->status().getTransactValue() != val_r ) return false; } return true; } template inline bool _none( TIter begin_r, TIter end_r, ResStatus::TransactValue val_r ) { for_( it, begin_r, end_r ) { if ( it->status().getTransactValue() == val_r ) return false; } return true; } template inline bool _atLeastOne( TIter begin_r, TIter end_r, ResStatus::TransactValue val_r ) { return ! _none( begin_r, end_r, val_r ); } inline bool _allBySolver( ui::Selectable::Ptr sel ) { for_( it, sel->installedBegin(), sel->installedEnd() ) { if ( it->status().transacts() && ! it->status().isBySolver() ) return false; } for_( it, sel->availableBegin(), sel->availableEnd() ) { if ( it->status().transacts() && ! it->status().isBySolver() ) return false; } return true; } inline bool _allInstalled( ui::Selectable::Ptr sel, ResStatus::TransactValue val_r ) { return _all( sel->installedBegin(), sel->installedEnd(), val_r ); } inline bool _noneInstalled( ui::Selectable::Ptr sel, ResStatus::TransactValue val_r ) { return _none( sel->installedBegin(), sel->installedEnd(), val_r ); } inline bool _atLeastOneInstalled( ui::Selectable::Ptr sel, ResStatus::TransactValue val_r ) { return _atLeastOne( sel->installedBegin(), sel->installedEnd(), val_r ); } inline bool _allAvailable( ui::Selectable::Ptr sel, ResStatus::TransactValue val_r ) { return _all( sel->availableBegin(), sel->availableEnd(), val_r ); } inline bool _noneAvailable( ui::Selectable::Ptr sel, ResStatus::TransactValue val_r ) { return _none( sel->availableBegin(), sel->availableEnd(), val_r ); } inline bool _atLeastOneAvailable( ui::Selectable::Ptr sel, ResStatus::TransactValue val_r ) { return _atLeastOne( sel->availableBegin(), sel->availableEnd(), val_r ); } inline bool _haveInstalled( ui::Selectable::Ptr sel ) { return ! sel->installedEmpty(); } inline bool _haveAvailable( ui::Selectable::Ptr sel ) { return ! sel->availableEmpty(); } inline bool _noInstalled( ui::Selectable::Ptr sel ) { return sel->installedEmpty(); } inline bool _noAvailable( ui::Selectable::Ptr sel ) { return sel->availableEmpty(); } #define allInstalled(V) _allInstalled(sel,ResStatus::V) #define noneInstalled(V) _noneInstalled(sel,ResStatus::V) #define atLeastOneInstalled(V) _atLeastOneInstalled(sel,ResStatus::V) #define allAvailable(V) _allAvailable(sel,ResStatus::V) #define noneAvailable(V) _noneAvailable(sel,ResStatus::V) #define atLeastOneAvailable(V) _atLeastOneAvailable(sel,ResStatus::V) #define haveInstalled _haveInstalled(sel) #define haveAvailable _haveAvailable(sel) #define noInstalled _noInstalled(sel) #define noAvailable _noAvailable(sel) #define allBySolver _allBySolver(sel) // Verify Selectable::status computes the right value. // // S_Protected, // Keep this unmodified ( have installedObj && S_Protected ) // S_Taboo, // Keep this unmodified ( have no installedObj && S_Taboo) // // requested by user: // S_Del, // delete installedObj ( clears S_Protected if set ) // S_Update, // install candidateObj ( have installedObj, clears S_Protected if set ) // S_Install, // install candidateObj ( have no installedObj, clears S_Taboo if set ) // // not requested by user: // S_AutoDel, // delete installedObj // S_AutoUpdate, // install candidateObj ( have installedObj ) // S_AutoInstall, // install candidateObj ( have no installedObj ) // // no modification: // S_KeepInstalled, // no modification ( have installedObj && !S_Protected, clears S_Protected if set ) // S_NoInst, // no modification ( have no installedObj && !S_Taboo, clears S_Taboo if set ) void verifyState( ui::Selectable::Ptr sel ) { ui::Status status( sel->status() ); SEC << dump(sel) << endl; switch ( status ) { case ui::S_Update: case ui::S_AutoUpdate: BOOST_CHECK( haveInstalled ); BOOST_CHECK( atLeastOneAvailable(TRANSACT) ); BOOST_CHECK_EQUAL( allBySolver, status==ui::S_AutoUpdate ); break; case ui::S_Del: case ui::S_AutoDel: BOOST_CHECK( haveInstalled ); BOOST_CHECK( noneAvailable(TRANSACT) ); // else would be UPDATE BOOST_CHECK( atLeastOneInstalled(TRANSACT) ); BOOST_CHECK_EQUAL( allBySolver, status==ui::S_AutoDel ); break; case ui::S_Protected: BOOST_CHECK( haveInstalled ); BOOST_CHECK( noneAvailable(TRANSACT) ); // else would be UPDATE BOOST_CHECK( noneInstalled(TRANSACT) ); // else would be DEL BOOST_CHECK( allInstalled(LOCKED) ); // implies noneInstalled(TRANSACT) break; case ui::S_KeepInstalled: BOOST_CHECK( haveInstalled ); BOOST_CHECK( noneAvailable(TRANSACT) ); // else would be UPDATE BOOST_CHECK( noneInstalled(TRANSACT) ); // else would be DEL BOOST_CHECK( ! allInstalled(LOCKED) ); // else would be PROTECTED break; case ui::S_Install: case ui::S_AutoInstall: BOOST_CHECK( noInstalled ); BOOST_CHECK( atLeastOneAvailable(TRANSACT) ); BOOST_CHECK_EQUAL( allBySolver, status==ui::S_AutoInstall ); break; case ui::S_Taboo: BOOST_CHECK( noInstalled ); BOOST_CHECK( noneAvailable(TRANSACT) ); // else would be INSTALL BOOST_CHECK( allAvailable(LOCKED) ); // implies noneAvailable(TRANSACT) break; case ui::S_NoInst: BOOST_CHECK( noInstalled ); BOOST_CHECK( noneAvailable(TRANSACT) ); // else would be INSTALL BOOST_CHECK( ! allAvailable(LOCKED) ); // else would be TABOO break; } } // Create all ResStatus combinations over a Selectables PoolItems struct StatusCombination { StatusCombination() {} StatusCombination( ui::Selectable::Ptr sel_r ) { _items.insert( _items.end(), sel_r->installedBegin(), sel_r->installedEnd() ); _items.insert( _items.end(), sel_r->availableBegin(), sel_r->availableEnd() ); } bool next() { for (auto i : _items) { switch ( i.status().getTransactValue() ) { case ResStatus::KEEP_STATE: i.status().setTransactValue( ResStatus::LOCKED, ResStatus::USER ); return true; break; case ResStatus::LOCKED: i.status().setTransactValue( ResStatus::TRANSACT, ResStatus::USER ); return true; break; case ResStatus::TRANSACT: i.status().setTransactValue( ResStatus::KEEP_STATE, ResStatus::USER ); break; } } return false; // back at the beginning } std::vector _items; }; // Create all ResStatus combinations over the Selectables PoolItems and verify the result. void testStatusTable( ui::Selectable::Ptr sel ) { StatusCombination comb( sel ); do { verifyState( sel ); } while ( comb.next() ); } BOOST_AUTO_TEST_CASE(status_verify) { // this verifies the Selectables computes ui::Status ResPoolProxy poolProxy( test.poolProxy() ); ResPoolProxy::ScopedSaveState saveState( poolProxy ); { ui::Selectable::Ptr sel( poolProxy.lookup( ResKind::package, "installed_only" ) ); BOOST_REQUIRE( !sel->installedEmpty() ); BOOST_REQUIRE( sel->availableEmpty() ); BOOST_CHECK_EQUAL( sel->status(), ui::S_KeepInstalled ); testStatusTable( sel ); } { ui::Selectable::Ptr sel( poolProxy.lookup( ResKind::package, "installed_and_available" ) ); BOOST_REQUIRE( !sel->installedEmpty() ); BOOST_REQUIRE( !sel->availableEmpty() ); BOOST_CHECK_EQUAL( sel->status(), ui::S_KeepInstalled ); testStatusTable( sel ); } { ui::Selectable::Ptr sel( poolProxy.lookup( ResKind::package, "available_only" ) ); BOOST_REQUIRE( sel->installedEmpty() ); BOOST_REQUIRE( !sel->availableEmpty() ); BOOST_CHECK_EQUAL( sel->status(), ui::S_NoInst ); testStatusTable( sel ); } // TODO: Test the pickStatus computation (w./w.o. multiinstall) // TODO: Test status/pickStatus transactions (w./w.o. multiinstall) } ///////////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(pickstatus_cycle) { return; // TODO: automate it ResPoolProxy poolProxy( test.poolProxy() ); ResPoolProxy::ScopedSaveState saveState( poolProxy ); ui::Selectable::Ptr sel( poolProxy.lookup( ResKind::package, "installed_and_available" ) ); USR << dump(sel) << endl; for ( const PoolItem & pi : sel->picklist() ) { (sel->pickInstall( pi, ResStatus::USER ) ? WAR : ERR) << (pi.multiversionInstall() ? "M " : " " ) << pi << endl; USR << dump(sel) << endl; } } ///////////////////////////////////////////////////////////////////////////// libzypp-17.7.0/tests/zypp/SetRelationMixin_test.cc000066400000000000000000000170241334444677500222740ustar00rootroot00000000000000#include #include "zypp/base/SetRelationMixin.h" using zypp::SetCompare; using zypp::SetRelation; BOOST_AUTO_TEST_CASE(set_compare) { BOOST_CHECK( SetCompare::uncomparable == SetCompare::uncomparable ); BOOST_CHECK( SetCompare::uncomparable != SetCompare::equal ); BOOST_CHECK( SetCompare::uncomparable != SetCompare::properSubset ); BOOST_CHECK( SetCompare::uncomparable != SetCompare::properSuperset ); BOOST_CHECK( SetCompare::uncomparable != SetCompare::disjoint ); BOOST_CHECK( SetCompare::equal != SetCompare::uncomparable ); BOOST_CHECK( SetCompare::equal == SetCompare::equal ); BOOST_CHECK( SetCompare::equal != SetCompare::properSubset ); BOOST_CHECK( SetCompare::equal != SetCompare::properSuperset ); BOOST_CHECK( SetCompare::equal != SetCompare::disjoint ); BOOST_CHECK( SetCompare::properSubset != SetCompare::uncomparable ); BOOST_CHECK( SetCompare::properSubset != SetCompare::equal ); BOOST_CHECK( SetCompare::properSubset == SetCompare::properSubset ); BOOST_CHECK( SetCompare::properSubset != SetCompare::properSuperset ); BOOST_CHECK( SetCompare::properSubset != SetCompare::disjoint ); BOOST_CHECK( SetCompare::properSuperset != SetCompare::uncomparable ); BOOST_CHECK( SetCompare::properSuperset != SetCompare::equal ); BOOST_CHECK( SetCompare::properSuperset != SetCompare::properSubset ); BOOST_CHECK( SetCompare::properSuperset == SetCompare::properSuperset ); BOOST_CHECK( SetCompare::properSuperset != SetCompare::disjoint ); BOOST_CHECK( SetCompare::disjoint != SetCompare::uncomparable ); BOOST_CHECK( SetCompare::disjoint != SetCompare::equal ); BOOST_CHECK( SetCompare::disjoint != SetCompare::properSubset ); BOOST_CHECK( SetCompare::disjoint != SetCompare::properSuperset ); BOOST_CHECK( SetCompare::disjoint == SetCompare::disjoint ); } BOOST_AUTO_TEST_CASE(set_relation) { BOOST_CHECK( SetRelation::uncomparable == SetRelation::uncomparable ); BOOST_CHECK( SetRelation::uncomparable != SetRelation::equal ); BOOST_CHECK( SetRelation::uncomparable != SetRelation::properSubset ); BOOST_CHECK( SetRelation::uncomparable != SetRelation::properSuperset ); BOOST_CHECK( SetRelation::uncomparable != SetRelation::disjoint ); BOOST_CHECK( SetRelation::uncomparable != SetRelation::subset ); BOOST_CHECK( SetRelation::uncomparable != SetRelation::superset ); BOOST_CHECK( SetRelation::equal != SetRelation::uncomparable ); BOOST_CHECK( SetRelation::equal == SetRelation::equal ); BOOST_CHECK( SetRelation::equal != SetRelation::properSubset ); BOOST_CHECK( SetRelation::equal != SetRelation::properSuperset ); BOOST_CHECK( SetRelation::equal != SetRelation::disjoint ); BOOST_CHECK( SetRelation::equal != SetRelation::subset ); BOOST_CHECK( SetRelation::equal != SetRelation::superset ); BOOST_CHECK( SetRelation::properSubset != SetRelation::uncomparable ); BOOST_CHECK( SetRelation::properSubset != SetRelation::equal ); BOOST_CHECK( SetRelation::properSubset == SetRelation::properSubset ); BOOST_CHECK( SetRelation::properSubset != SetRelation::properSuperset ); BOOST_CHECK( SetRelation::properSubset != SetRelation::disjoint ); BOOST_CHECK( SetRelation::properSubset != SetRelation::subset ); BOOST_CHECK( SetRelation::properSubset != SetRelation::superset ); BOOST_CHECK( SetRelation::properSuperset != SetRelation::uncomparable ); BOOST_CHECK( SetRelation::properSuperset != SetRelation::equal ); BOOST_CHECK( SetRelation::properSuperset != SetRelation::properSubset ); BOOST_CHECK( SetRelation::properSuperset == SetRelation::properSuperset ); BOOST_CHECK( SetRelation::properSuperset != SetRelation::disjoint ); BOOST_CHECK( SetRelation::properSuperset != SetRelation::subset ); BOOST_CHECK( SetRelation::properSuperset != SetRelation::superset ); BOOST_CHECK( SetRelation::disjoint != SetRelation::uncomparable ); BOOST_CHECK( SetRelation::disjoint != SetRelation::equal ); BOOST_CHECK( SetRelation::disjoint != SetRelation::properSubset ); BOOST_CHECK( SetRelation::disjoint != SetRelation::properSuperset ); BOOST_CHECK( SetRelation::disjoint == SetRelation::disjoint ); BOOST_CHECK( SetRelation::disjoint != SetRelation::subset ); BOOST_CHECK( SetRelation::disjoint != SetRelation::superset ); BOOST_CHECK( SetRelation::subset != SetRelation::uncomparable ); BOOST_CHECK( SetRelation::subset != SetRelation::equal ); BOOST_CHECK( SetRelation::subset != SetRelation::properSubset ); BOOST_CHECK( SetRelation::subset != SetRelation::properSuperset ); BOOST_CHECK( SetRelation::subset != SetRelation::disjoint ); BOOST_CHECK( SetRelation::subset == SetRelation::subset ); BOOST_CHECK( SetRelation::subset != SetRelation::superset ); BOOST_CHECK( SetRelation::superset != SetRelation::uncomparable ); BOOST_CHECK( SetRelation::superset != SetRelation::equal ); BOOST_CHECK( SetRelation::superset != SetRelation::properSubset ); BOOST_CHECK( SetRelation::superset != SetRelation::properSuperset ); BOOST_CHECK( SetRelation::superset != SetRelation::disjoint ); BOOST_CHECK( SetRelation::superset != SetRelation::subset ); BOOST_CHECK( SetRelation::superset == SetRelation::superset ); } BOOST_AUTO_TEST_CASE(set_relation_comapre) { BOOST_CHECK( SetRelation::uncomparable == SetCompare::uncomparable ); BOOST_CHECK( SetRelation::uncomparable != SetCompare::equal ); BOOST_CHECK( SetRelation::uncomparable != SetCompare::properSubset ); BOOST_CHECK( SetRelation::uncomparable != SetCompare::properSuperset ); BOOST_CHECK( SetRelation::uncomparable != SetCompare::disjoint ); BOOST_CHECK( SetRelation::equal != SetCompare::uncomparable ); BOOST_CHECK( SetRelation::equal == SetCompare::equal ); BOOST_CHECK( SetRelation::equal != SetCompare::properSubset ); BOOST_CHECK( SetRelation::equal != SetCompare::properSuperset ); BOOST_CHECK( SetRelation::equal != SetCompare::disjoint ); BOOST_CHECK( SetRelation::properSubset != SetCompare::uncomparable ); BOOST_CHECK( SetRelation::properSubset != SetCompare::equal ); BOOST_CHECK( SetRelation::properSubset == SetCompare::properSubset ); BOOST_CHECK( SetRelation::properSubset != SetCompare::properSuperset ); BOOST_CHECK( SetRelation::properSubset != SetCompare::disjoint ); BOOST_CHECK( SetRelation::properSuperset != SetCompare::uncomparable ); BOOST_CHECK( SetRelation::properSuperset != SetCompare::equal ); BOOST_CHECK( SetRelation::properSuperset != SetCompare::properSubset ); BOOST_CHECK( SetRelation::properSuperset == SetCompare::properSuperset ); BOOST_CHECK( SetRelation::properSuperset != SetCompare::disjoint ); BOOST_CHECK( SetRelation::disjoint != SetCompare::uncomparable ); BOOST_CHECK( SetRelation::disjoint != SetCompare::equal ); BOOST_CHECK( SetRelation::disjoint != SetCompare::properSubset ); BOOST_CHECK( SetRelation::disjoint != SetCompare::properSuperset ); BOOST_CHECK( SetRelation::disjoint == SetCompare::disjoint ); BOOST_CHECK( SetRelation::subset != SetCompare::uncomparable ); BOOST_CHECK( SetRelation::subset == SetCompare::equal ); BOOST_CHECK( SetRelation::subset == SetCompare::properSubset ); BOOST_CHECK( SetRelation::subset != SetCompare::properSuperset ); BOOST_CHECK( SetRelation::subset != SetCompare::disjoint ); BOOST_CHECK( SetRelation::superset != SetCompare::uncomparable ); BOOST_CHECK( SetRelation::superset == SetCompare::equal ); BOOST_CHECK( SetRelation::superset != SetCompare::properSubset ); BOOST_CHECK( SetRelation::superset == SetCompare::properSuperset ); BOOST_CHECK( SetRelation::superset != SetCompare::disjoint ); } libzypp-17.7.0/tests/zypp/SetTracker_test.cc000066400000000000000000000055241334444677500211070ustar00rootroot00000000000000#include #include #include "zypp/base/LogTools.h" #include "zypp/base/SetTracker.h" typedef std::set SetType; namespace std { inline ostream & operator<<( ostream & str, const SetType & obj ) { return zypp::dumpRangeLine( str, obj.begin(), obj.end() ); } } typedef zypp::base::SetTracker Tracker; std::set s; std::set s1 ({1}); std::set s2 ({2}); std::set s3 ({3}); std::set s12 ({1,2}); std::set s13 ({1,3}); std::set s23 ({2,3}); std::set s123 ({1,2,3}); BOOST_AUTO_TEST_CASE(basic) { Tracker t; BOOST_CHECK_EQUAL( t.current(), s ); BOOST_CHECK_EQUAL( t.added(), s ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.add( 1 ) ); BOOST_CHECK_EQUAL( t.current(), s1 ); BOOST_CHECK_EQUAL( t.added(), s1 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( !t.add( 1 ) ); BOOST_CHECK_EQUAL( t.current(), s1 ); BOOST_CHECK_EQUAL( t.added(), s1 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.add( 2 ) ); BOOST_CHECK_EQUAL( t.current(), s12 ); BOOST_CHECK_EQUAL( t.added(), s12 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.remove( 1 ) ); BOOST_CHECK_EQUAL( t.current(), s2 ); BOOST_CHECK_EQUAL( t.added(), s2 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.set( s3 ) ); BOOST_CHECK_EQUAL( t.current(), s3 ); BOOST_CHECK_EQUAL( t.added(), s3 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.add( 2 ) ); BOOST_CHECK_EQUAL( t.current(), s23 ); BOOST_CHECK_EQUAL( t.added(), s23 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.remove( 2 ) ); BOOST_CHECK_EQUAL( t.current(), s3 ); BOOST_CHECK_EQUAL( t.added(), s3 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( ! t.remove( 2 ) ); BOOST_CHECK_EQUAL( t.current(), s3 ); BOOST_CHECK_EQUAL( t.added(), s3 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.set( s ) ); BOOST_CHECK_EQUAL( t.current(), s ); BOOST_CHECK_EQUAL( t.added(), s ); BOOST_CHECK_EQUAL( t.removed(), s ); //---------------------------------------------------------------------- BOOST_CHECK( t.setInitial( s2 ) ); BOOST_CHECK_EQUAL( t.current(), s2 ); BOOST_CHECK_EQUAL( t.added(), s ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.set( s13 ) ); BOOST_CHECK_EQUAL( t.current(), s13 ); BOOST_CHECK_EQUAL( t.added(), s13 ); BOOST_CHECK_EQUAL( t.removed(), s2 ); BOOST_CHECK( t.set( s123 ) ); BOOST_CHECK_EQUAL( t.current(), s123 ); BOOST_CHECK_EQUAL( t.added(), s13 ); BOOST_CHECK_EQUAL( t.removed(), s ); BOOST_CHECK( t.set( s ) ); BOOST_CHECK_EQUAL( t.current(), s ); BOOST_CHECK_EQUAL( t.added(), s ); BOOST_CHECK_EQUAL( t.removed(), s2 ); BOOST_CHECK( t.set( s2 ) ); BOOST_CHECK_EQUAL( t.current(), s2 ); BOOST_CHECK_EQUAL( t.added(), s ); BOOST_CHECK_EQUAL( t.removed(), s ); } libzypp-17.7.0/tests/zypp/Signature_test.cc000066400000000000000000000010441334444677500207720ustar00rootroot00000000000000 #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/Signature.h" #include using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace std; using namespace zypp; void signature_test() { } test_suite* init_unit_test_suite( int, char* [] ) { test_suite* test= BOOST_TEST_SUITE( "SignaureTest" ); test->add( BOOST_TEST_CASE( &signature_test ), 0 /* expected zero error */ ); return test; } libzypp-17.7.0/tests/zypp/StrMatcher_test.cc000066400000000000000000000104231334444677500211060ustar00rootroot00000000000000#include "TestSetup.h" #include #include #include /////////////////////////////////////////////////////////////////// // // CLASS NAME : Matcher // /////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(Match_default) { Match m; BOOST_CHECK( !m ); // eval in boolean context BOOST_CHECK_EQUAL( m, Match::NOTHING ); BOOST_CHECK_EQUAL( m.get(), 0 ); // set the mode part BOOST_CHECK_EQUAL( m |= Match::STRING, Match::STRING ); m.setModeSubstring(); BOOST_CHECK_EQUAL( m, Match::SUBSTRING ); m.setMode( Match::GLOB ); BOOST_CHECK_EQUAL( m, Match::GLOB ); BOOST_CHECK_EQUAL( m = Match::REGEX, Match::REGEX ); BOOST_CHECK( m.isModeRegex() ); m |= Match::NOCASE | Match::FILES; BOOST_CHECK_EQUAL( m, Match::REGEX | Match::NOCASE | Match::FILES ); BOOST_CHECK( m.testAnyOf( Match::SUBSTRING | Match::NOCASE | Match::FILES ) ); BOOST_CHECK( !m.test( Match::SUBSTRING | Match::NOCASE | Match::FILES ) ); BOOST_CHECK( m.test( Match::REGEX | Match::NOCASE | Match::FILES ) ); BOOST_CHECK( m.test( Match::NOCASE | Match::FILES ) ); BOOST_CHECK( m != (Match::NOCASE | Match::FILES) ); BOOST_CHECK_EQUAL( m.flags(),Match::NOCASE | Match::FILES ); m -= Match::NOCASE; // remove flags BOOST_CHECK( m.test( Match::REGEX | Match::FILES ) ); m -= Match::REGEX; BOOST_CHECK_EQUAL( m, Match::FILES ); } BOOST_AUTO_TEST_CASE(Match_operator) { // Test whether implicit conversions from enum Match::Mode to // Matcher work. There must be no difference in using mode and flag // constants. These tests usually fail at compiletime, if some operator // overload is missing. // // E.G.: // inline Match operator|( const Match & lhs, const Match & rhs ) // this does not cover (REGEX|SUBSTRING), because if both arguments // are enum Mode the compiler might want to use operator|(int,int) // instead. Match m( Match::GLOB ); m = Match::GLOB; m |= Match::GLOB; m = Match::SUBSTRING | Match::GLOB; m -= Match::GLOB; m = Match::SUBSTRING - Match::GLOB; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : StrMatcher // /////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(StrMatcher_defaultconstructed) { StrMatcher m; BOOST_CHECK_EQUAL( m.flags(), Match::NOTHING ); BOOST_CHECK( !m ); // eval in boolean context BOOST_CHECK( m.searchstring().empty() ); BOOST_CHECK_EQUAL( m.flags(), Match() ); // matches nothing: BOOST_CHECK( !m( "" ) ); BOOST_CHECK( !m( " " ) ); BOOST_CHECK( !m( "a" ) ); BOOST_CHECK( !m( "default" ) ); m.setSearchstring( "fau" ); BOOST_CHECK( m ); // eval in boolean context } BOOST_AUTO_TEST_CASE(StrMatcher_OTHER) { StrMatcher m( "fau", Match::OTHER ); BOOST_CHECK_THROW( m.compile(), MatchUnknownModeException ); } BOOST_AUTO_TEST_CASE(StrMatcher_STRING) { StrMatcher m( "fau" ); BOOST_CHECK_EQUAL( m.flags(), Match::STRING ); BOOST_CHECK( !m( "" ) ); BOOST_CHECK( !m( "a" ) ); BOOST_CHECK( m( "fau" ) ); BOOST_CHECK( !m( "default" ) ); } BOOST_AUTO_TEST_CASE(StrMatcher_STRINGSTART) { StrMatcher m( "fau", Match::STRINGSTART ); BOOST_CHECK( !m( "" ) ); BOOST_CHECK( !m( "a" ) ); BOOST_CHECK( m( "fau" ) ); BOOST_CHECK( m( "fault" ) ); BOOST_CHECK( !m( "default" ) ); } BOOST_AUTO_TEST_CASE(StrMatcher_STRINGEND) { StrMatcher m( "fau", Match::STRINGEND ); BOOST_CHECK( !m( "" ) ); BOOST_CHECK( !m( "a" ) ); BOOST_CHECK( m( "fau" ) ); BOOST_CHECK( m( "defau" ) ); BOOST_CHECK( !m( "default" ) ); } BOOST_AUTO_TEST_CASE(StrMatcher_REGEX) { StrMatcher m( "fau" ); BOOST_CHECK( !m.isCompiled() ); BOOST_CHECK_NO_THROW( m.compile() ); m.setSearchstring( "wa[" ); BOOST_CHECK( !m.isCompiled() ); m.setFlags( Match::REGEX ); BOOST_CHECK( !m.isCompiled() ); BOOST_CHECK_THROW( m.compile(), MatchInvalidRegexException ); BOOST_CHECK( !m.isCompiled() ); m.setSearchstring( "wa[a]" ); BOOST_CHECK_NO_THROW( m.compile() ); BOOST_CHECK( m.isCompiled() ); BOOST_CHECK( !m( "was" ) ); BOOST_CHECK( !m( "qwasq" ) ); BOOST_CHECK( m( "qwaaq" ) ); } #if 0 BOOST_AUTO_TEST_CASE(StrMatcher_) { base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "/tmp/YLOG" ) ); MIL << "GO" << endl; } #endif libzypp-17.7.0/tests/zypp/Target_test.cc000066400000000000000000000036421334444677500202650ustar00rootroot00000000000000#include #include #include #include // Boost.Test #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/ZYppFactory.h" #include "zypp/ZYpp.h" #include "zypp/ZYppFactory.h" #include "zypp/TmpPath.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; using namespace zypp::filesystem; BOOST_AUTO_TEST_CASE(target_test) { filesystem::TmpDir tmp; ZYpp::Ptr z = getZYpp(); // create the products.d directory assert_dir(tmp.path() / "/etc/products.d" ); BOOST_CHECK( copy( Pathname(TESTS_SRC_DIR) / "/zypp/data/Target/product.prod", tmp.path() / "/etc/products.d/product.prod") == 0 ); // make it the base product BOOST_CHECK( symlink(tmp.path() / "/etc/products.d/product.prod", tmp.path() / "/etc/products.d/baseproduct" ) == 0 ); z->initializeTarget( tmp.path() ); // bsc#1024741: Omit creating a new uid for chrooted systems (if it already has one, fine) BOOST_CHECK( ! PathInfo( tmp.path() / "/var/lib/zypp/AnonymousUniqueId").isExist() ); // create an artificial one { Pathname f( tmp.path() / "/var/lib/zypp" ); filesystem::assert_dir( f ); std::ofstream o( (f/"AnonymousUniqueId").c_str() ); o << "AnonymousUniqueId"; } BOOST_CHECK( PathInfo( tmp.path() / "/var/lib/zypp/AnonymousUniqueId").isExist() ); BOOST_CHECK_EQUAL( z->target()->anonymousUniqueId(), "AnonymousUniqueId" ); // now check the base product BOOST_CHECK_EQUAL( z->target()->targetDistribution(), "sle-10-i586"); BOOST_CHECK_EQUAL( z->target()->targetDistributionRelease(), "special_edition"); BOOST_CHECK_EQUAL( z->target()->distributionVersion(), "10"); Target::DistributionLabel dlabel( z->target()->distributionLabel() ); BOOST_CHECK_EQUAL( dlabel.summary, "A cool distribution" ); BOOST_CHECK_EQUAL( dlabel.shortName, "" ); } libzypp-17.7.0/tests/zypp/Url_test.cc000066400000000000000000000223721334444677500176020ustar00rootroot00000000000000/* ** Check if the url by scheme repository works, e.g. ** if there are some initialization order problems ** (ViewOption) causing asString to format its string ** differently than configured. */ #include "zypp/base/Exception.h" #include "zypp/base/String.h" #include "zypp/Url.h" #include #include #include // Boost.Test #include using boost::unit_test::test_case; using namespace zypp; void testUrlAuthority( const Url & url_r, const std::string & host_r, const std::string & port_r = std::string(), const std::string & user_r = std::string(), const std::string & pass_r = std::string() ) { BOOST_CHECK_EQUAL( url_r.getUsername(), user_r ); BOOST_CHECK_EQUAL( url_r.getPassword(), pass_r ); BOOST_CHECK_EQUAL( url_r.getHost(), host_r ); BOOST_CHECK_EQUAL( url_r.getPort(), port_r ); } BOOST_AUTO_TEST_CASE(test_ipv6_url) { std::string str; zypp::Url url; str = "http://[2001:DB8:0:F102::1]/64/sles11/RC1/CD1?device=eth0"; url = Url( str ); BOOST_CHECK_EQUAL( str,url.asString() ); testUrlAuthority( url, "[2001:DB8:0:F102::1]", "", "", "" ); // bnc# str = "http://[2001:DB8:0:F102::1]:8080/64/sles11/RC1/CD1?device=eth0"; url = Url( str ); testUrlAuthority( url, "[2001:DB8:0:F102::1]", "8080", "", "" ); str = "http://user:pass@[2001:DB8:0:F102::1]:8080/64/sles11/RC1/CD1?device=eth0"; url = Url( str ); testUrlAuthority( url, "[2001:DB8:0:F102::1]", "8080", "user", "pass" ); } BOOST_AUTO_TEST_CASE(test_url1) { std::string str, one, two; zypp::Url url; // asString & asCompleteString should not print "mailto://" str = "mailto:feedback@example.com?subject=hello"; url = str; BOOST_CHECK_EQUAL( str, url.asString() ); BOOST_CHECK_EQUAL( str, url.asCompleteString() ); // asString & asCompleteString should add empty authority // "dvd://...", except we request to avoid it. str = "dvd:/srv/ftp"; one = "dvd:///srv/ftp"; two = "dvd:///srv/ftp"; url = str; BOOST_CHECK_EQUAL( one, url.asString() ); BOOST_CHECK_EQUAL( two, url.asCompleteString() ); BOOST_CHECK_EQUAL( str, url.asString(zypp::url::ViewOptions() - zypp::url::ViewOption::EMPTY_AUTHORITY)); // asString shouldn't print the password, asCompleteString should // further, the "//" at the begin of the path should become "/%2F" str = "ftp://user:pass@localhost//srv/ftp"; one = "ftp://user@localhost/%2Fsrv/ftp"; two = "ftp://user:pass@localhost/%2Fsrv/ftp"; url = str; BOOST_CHECK_EQUAL( one, url.asString() ); BOOST_CHECK_EQUAL( two, url.asCompleteString() ); // asString shouldn't print the password, asCompleteString should. // further, the "//" at the begin of the path should be keept. str = "http://user:pass@localhost//srv/ftp"; one = "http://user@localhost//srv/ftp"; two = str; url = str; BOOST_CHECK_EQUAL( one, url.asString() ); BOOST_CHECK_EQUAL( two, url.asCompleteString() ); // absolute path defaults to 'file://' str = "/some/local/path"; BOOST_CHECK_EQUAL( zypp::Url(str).asString(), "file://"+str ); str = "file:./srv/ftp"; BOOST_CHECK_EQUAL( zypp::Url(str).asString(), str ); str = "ftp://foo//srv/ftp"; BOOST_CHECK_EQUAL( zypp::Url(str).asString(), "ftp://foo/%2Fsrv/ftp" ); str = "FTP://user@local%68ost/%2f/srv/ftp"; BOOST_CHECK_EQUAL( zypp::Url(str).asString(), "ftp://user@localhost/%2f/srv/ftp" ); str = "http://[::1]/foo/bar"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString() ); str = "http://:@just-localhost.example.net:8080/"; BOOST_CHECK_EQUAL( zypp::Url(str).asString(), "http://just-localhost.example.net:8080/" ); str = "mailto:feedback@example.com?subject=hello"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString() ); str = "nfs://nfs-server/foo/bar/trala"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString() ); str = "ldap://example.net/dc=example,dc=net?cn,sn?sub?(cn=*)#x"; BOOST_CHECK_THROW( zypp::Url(str).asString(), url::UrlNotAllowedException ); str = "ldap://example.net/dc=example,dc=net?cn,sn?sub?(cn=*)"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString() ); // parseable but invalid, since no host avaliable str = "ldap:///dc=foo,dc=bar"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString()); BOOST_CHECK( !zypp::Url(str).isValid()); // throws: host is mandatory str = "ftp:///foo/bar"; BOOST_CHECK_THROW(zypp::Url(str).asString(), url::UrlNotAllowedException ); // throws: host is mandatory str = "http:///%2f/srv/ftp"; BOOST_CHECK_THROW(zypp::Url(str).asString(), url::UrlNotAllowedException ); // OK, host allowed in file-url str = "file://localhost/some/path"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString()); // throws: host not allowed str = "cd://localhost/some/path"; BOOST_CHECK_THROW(zypp::Url(str).asString(), url::UrlNotAllowedException ); // throws: no path (email) str = "mailto:"; BOOST_CHECK_THROW(zypp::Url(str).asString(), url::UrlNotAllowedException ); // throws: no path str = "cd:"; BOOST_CHECK_THROW(zypp::Url(str).asString(), url::UrlNotAllowedException ); // OK, valid (no host, path is there) str = "cd:///some/path"; BOOST_CHECK_EQUAL( str, zypp::Url(str).asString()); BOOST_CHECK( zypp::Url(str).isValid()); } BOOST_AUTO_TEST_CASE(test_url2) { zypp::Url url("http://user:pass@localhost:/path/to;version=1.1?arg=val#frag"); BOOST_CHECK_EQUAL( url.asString(), "http://user@localhost/path/to?arg=val#frag" ); BOOST_CHECK_EQUAL( url.asString(zypp::url::ViewOptions() + zypp::url::ViewOptions::WITH_PASSWORD), "http://user:pass@localhost/path/to?arg=val#frag"); BOOST_CHECK_EQUAL( url.asString(zypp::url::ViewOptions() + zypp::url::ViewOptions::WITH_PATH_PARAMS), "http://user@localhost/path/to;version=1.1?arg=val#frag"); BOOST_CHECK_EQUAL( url.asCompleteString(), "http://user:pass@localhost/path/to;version=1.1?arg=val#frag"); } BOOST_AUTO_TEST_CASE(test_url3) { zypp::Url url("http://localhost/path/to#frag"); std::string key; std::string val; // will be encoded as "hoho=ha%20ha" key = "hoho"; val = "ha ha"; url.setQueryParam(key, val); BOOST_CHECK_EQUAL( url.asString(), "http://localhost/path/to?hoho=ha%20ha#frag"); // will be encoded as "foo%3Dbar%26key=foo%26bar%3Dvalue" key = "foo=bar&key"; val = "foo&bar=value"; url.setQueryParam(key, val); BOOST_CHECK_EQUAL( url.asString(), "http://localhost/path/to?foo%3Dbar%26key=foo%26bar%3Dvalue&hoho=ha%20ha#frag"); // will be encoded as "foo%25bar=is%25de%25ad" key = "foo%bar"; val = "is%de%ad"; url.setQueryParam(key, val); BOOST_CHECK_EQUAL( url.asString(), "http://localhost/path/to?foo%25bar=is%25de%25ad&foo%3Dbar%26key=foo%26bar%3Dvalue&hoho=ha%20ha#frag"); // get encoded query parameters and compare with results: zypp::url::ParamVec params( url.getQueryStringVec()); const char * const result[] = { "foo%25bar=is%25de%25ad", "foo%3Dbar%26key=foo%26bar%3Dvalue", "hoho=ha%20ha" }; BOOST_CHECK( params.size() == (sizeof(result)/sizeof(result[0]))); for( size_t i=0; ifirst) { BOOST_CHECK_EQUAL( m->second, "cn,sn"); } else if("filter" == m->first) { BOOST_CHECK_EQUAL( m->second, "(cn=*)"); } else if("scope" == m->first) { BOOST_CHECK_EQUAL( m->second, "sub"); } else { BOOST_FAIL("Unexpected LDAP query parameter name in the map!"); } } url.setQueryParam("attrs", "cn,sn,uid"); url.setQueryParam("filter", "(|(sn=foo)(cn=bar))"); BOOST_CHECK_EQUAL(url.getQueryParam("attrs"), "cn,sn,uid"); BOOST_CHECK_EQUAL(url.getQueryParam("filter"), "(|(sn=foo)(cn=bar))"); } catch(const zypp::url::UrlException &e) { ZYPP_CAUGHT(e); } } BOOST_AUTO_TEST_CASE( test_url5) { std::string str( "file:/some/${var:+path}/${var:-with}/${vars}" ); BOOST_CHECK_EQUAL( Url(str).asString(), str ); BOOST_CHECK_EQUAL( Url(zypp::url::encode( str, URL_SAFE_CHARS )).asString(), str ); } BOOST_AUTO_TEST_CASE(plugin_querystring_args) { // url querysting options without value must be possible // e.g. for plugin schema Url u( "plugin:script?loptv=lvalue&v=optv&lopt=&o" ); url::ParamMap pm( u.getQueryStringMap() ); BOOST_CHECK_EQUAL( pm.size(), 4 ); BOOST_CHECK_EQUAL( pm["loptv"], "lvalue" ); BOOST_CHECK_EQUAL( pm["v"], "optv" ); BOOST_CHECK_EQUAL( pm["lopt"], "" ); BOOST_CHECK_EQUAL( pm["o"], "" ); } // vim: set ts=2 sts=2 sw=2 ai et: libzypp-17.7.0/tests/zypp/UserData_test.cc000066400000000000000000000047261334444677500205530ustar00rootroot00000000000000#include #include #include #include "zypp/UserData.h" using std::cout; using std::endl; using zypp::callback::UserData; const std::string key( "key" ); #define checkIsEmpty(v) \ BOOST_CHECK( !v ); \ BOOST_CHECK( v.empty() ); \ BOOST_CHECK_EQUAL( v.size(), 0 ); \ BOOST_CHECK_EQUAL( v.haskey( key ), false ); \ BOOST_CHECK_EQUAL( v.hasvalue( key ), false ); \ BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true ); #define checkIsNotEmpty(v,s) \ BOOST_CHECK( v ); \ BOOST_CHECK( !v.empty() ); \ if ( s ) \ { BOOST_CHECK_EQUAL( v.size(), s ); } \ else \ { BOOST_CHECK( v.size() ); } \ BOOST_CHECK_EQUAL( v.haskey( key ), true ); BOOST_AUTO_TEST_CASE(useruata_default) { UserData v; checkIsEmpty( v ); // set key with empty value v.reset( key ); checkIsNotEmpty( v, 1 ); BOOST_CHECK_EQUAL( v.hasvalue( key ), false ); BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true ); std::string rs; unsigned ru = 0; int ri = 0; char rc = 0; // set key with value v.set( key, 42 ); BOOST_CHECK_EQUAL( v.hasvalue( key ), true ); BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), false ); // get back data BOOST_CHECK_EQUAL( v.get( key, rs ), false ); BOOST_CHECK_EQUAL( v.get( key, ru ), false ); BOOST_CHECK_EQUAL( v.get( key, ri ), true ); BOOST_CHECK_EQUAL( v.get( key, rc ), false ); BOOST_CHECK_EQUAL( ru, 0 ); BOOST_CHECK_EQUAL( ri, 42 ); BOOST_CHECK_EQUAL( rc, 0 ); v.set( key, 43U ); BOOST_CHECK_EQUAL( v.get( key, rs ), false ); BOOST_CHECK_EQUAL( v.get( key, ru ), true ); BOOST_CHECK_EQUAL( v.get( key, ri ), false ); BOOST_CHECK_EQUAL( v.get( key, rc ), false ); BOOST_CHECK_EQUAL( ru, 43 ); BOOST_CHECK_EQUAL( ri, 42 ); BOOST_CHECK_EQUAL( rc, 0 ); // set key with empty value v.reset( key ); BOOST_CHECK_EQUAL( v.hasvalue( key ), false ); BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true ); checkIsNotEmpty( v, 1 ); // erase key v.erase( key ); BOOST_CHECK_EQUAL( v.hasvalue( key ), false ); BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true ); checkIsEmpty( v ); // const may add but not manip non-empty values const UserData & cv( v ); BOOST_CHECK_EQUAL( cv.reset( key ), true ); // add new key: ok BOOST_CHECK_EQUAL( cv.set( key, 42 ), true ); // empty -> non-empty: ok BOOST_CHECK_EQUAL( cv.set( key, 43 ), false );// change non-empty: not ok BOOST_CHECK_EQUAL( cv.reset( key ), false ); // change non-empty: not ok } libzypp-17.7.0/tests/zypp/Vendor2_test.cc000066400000000000000000000027611334444677500203570ustar00rootroot00000000000000 #include #include #include // Boost.Test #include #include "zypp/base/LogControl.h" #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/ZYpp.h" #include "zypp/VendorAttr.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; namespace zypp { void reconfigureZConfig( const Pathname & ); } #define DATADIR (Pathname(TESTS_BUILD_DIR) + "/zypp/data/Vendor") BOOST_AUTO_TEST_CASE(vendor2_test) { reconfigureZConfig( DATADIR / "zypp2.conf" ); // bsc#1030686: Remove legacy vendor equivalence between 'suse' and 'opensuse' BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "suse") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("equal", "equal") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("open", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("nothing", "SuSE") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("nvidia", "SuSE") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("nvidia_new_new", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("nvidia", "opensuse") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("ati", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("ati", "nvidia") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("ati_new", "ati") ); } libzypp-17.7.0/tests/zypp/Vendor_test.cc000066400000000000000000000033101334444677500202640ustar00rootroot00000000000000 #include #include #include // Boost.Test #include #include "zypp/base/LogControl.h" #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/ZYpp.h" #include "zypp/VendorAttr.h" using boost::unit_test::test_case; using namespace std; using namespace zypp; namespace zypp { void reconfigureZConfig( const Pathname & ); } #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/Vendor") BOOST_AUTO_TEST_CASE(vendor_test1) { reconfigureZConfig( DATADIR / "zypp1.conf" ); // bsc#1030686: Remove legacy vendor equivalence between 'suse' and 'opensuse' // No vendor definition files has been read. So only suse* vendors are // equivalent BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "suse") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("equal", "equal") ); BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("open", "SuSE") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("nothing", "SuSE") ); // but "opensuse build service" gets its own class: BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse build service", "suse") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse build service", "opensuse") ); // bnc#812608: All opensuse projects get their own class BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse-education", "suse") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse-education", "opensuse") ); BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse-education", "opensuse build service") ); } libzypp-17.7.0/tests/zypp/base/000077500000000000000000000000001334444677500163765ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/CMakeLists.txt000066400000000000000000000002061334444677500211340ustar00rootroot00000000000000ADD_TESTS(Glob ) ADD_TESTS(Sysconfig ) ADD_TESTS(String ) ADD_TESTS( InterProcessMutex InterProcessMutex2 ) ADD_TESTS(CleanerThread ) libzypp-17.7.0/tests/zypp/base/CleanerThread_test.cc000066400000000000000000000011541334444677500224460ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/ExternalProgram.h" #include #include #include #include #define BOOST_TEST_MODULE CleanerThread using zypp::ExternalProgram; BOOST_AUTO_TEST_CASE( CleanerThread_default ) { pid_t pid = -1; { ExternalProgram proc( "bash -c 'sleep 2'", ExternalProgram::Normal_Stderr ); BOOST_CHECK( proc.running() ); pid = proc.getpid(); } std::this_thread::sleep_for( std::chrono::seconds(4) ); int status = 0; int res = waitpid( pid, &status, WNOHANG ); BOOST_CHECK_EQUAL( res, -1 ); BOOST_CHECK_EQUAL( errno, ECHILD ); } libzypp-17.7.0/tests/zypp/base/Glob_test.cc000066400000000000000000000031671334444677500206360ustar00rootroot00000000000000#include "TestSetup.h" #include "zypp/Pathname.h" #include "zypp/Glob.h" #define BOOST_TEST_MODULE Glob static Pathname TEST_ROOT( TESTS_SRC_DIR"/zypp/base/Glob_test.dat" ); using filesystem::Glob; BOOST_AUTO_TEST_CASE(Glob_default) { // enable loging for the scope of this block: // base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "-" ) ); Glob q; BOOST_CHECK( q.empty() ); BOOST_CHECK( q.size() == 0 ); BOOST_CHECK_EQUAL( q.begin(), q.end() ); BOOST_CHECK( q.defaultFlags() == Glob::Flags() ); q.add( TEST_ROOT/"file" ); BOOST_CHECK( ! q.empty() ); BOOST_CHECK( q.size() == 1 ); BOOST_CHECK_NE( q.begin(), q.end() ); BOOST_CHECK_EQUAL( *q.begin(), TEST_ROOT/"file" ); q.reset( Glob::kBrace ); BOOST_CHECK( q.empty() ); BOOST_CHECK( q.size() == 0 ); BOOST_CHECK_EQUAL( q.begin(), q.end() ); BOOST_CHECK( q.defaultFlags() == Glob::kBrace ); q.add( TEST_ROOT/"file*" ); BOOST_CHECK( q.size() == 3 ); q.add( TEST_ROOT/"*{.xml,.xml.gz}" ); BOOST_CHECK( q.size() == 5 ); q.clear(); // no flags reset: Glob::kBrace active BOOST_CHECK( q.size() == 0 ); q.add( TEST_ROOT/"*{.xml,.xml.gz}" ); BOOST_CHECK( q.size() == 2 ); q.reset(); // flags reset: Glob::kBrace off BOOST_CHECK( q.size() == 0 ); q.add( TEST_ROOT/"*{.xml,.xml.gz}" ); BOOST_CHECK( q.size() == 0 ); } BOOST_AUTO_TEST_CASE(Glob_static) { std::set q; Glob::collect( TEST_ROOT/"*{.xml,.xml.gz}", Glob::kBrace, std::inserter( q, q.begin() ) ); BOOST_REQUIRE( q.size() == 2 ); BOOST_CHECK_EQUAL( *q.begin(), TEST_ROOT/"file.xml" ); BOOST_CHECK_EQUAL( *++q.begin(), TEST_ROOT/"file.xml.gz" ); } libzypp-17.7.0/tests/zypp/base/Glob_test.dat/000077500000000000000000000000001334444677500210675ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/Glob_test.dat/file000066400000000000000000000000001334444677500217170ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/Glob_test.dat/file.xml000066400000000000000000000000001334444677500225160ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/Glob_test.dat/file.xml.gz000066400000000000000000000000001334444677500231350ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/InterProcessMutex2_test.cc000066400000000000000000000026161334444677500234760ustar00rootroot00000000000000 #include #include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/base/Sysconfig.h" #include "zypp/base/InterProcessMutex.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace boost::unit_test; using namespace std; using namespace zypp; using namespace zypp::base; BOOST_AUTO_TEST_CASE(Abort) { int r = 0; { MIL << "ready to fork" << endl; r = fork(); if ( r < 0 ) { BOOST_ERROR("Can't fork process"); return; } else if ( r == 0 ) { MIL << "child, PID: " << getpid() << endl; // child sleep(3); BOOST_REQUIRE_THROW( InterProcessMutex( InterProcessMutex::Options(InterProcessMutex::Reader,"testcase", 0)), ZYppLockedException); //InterProcessMutex mutex2("testcase"); } else { MIL << "parent: " << getpid() << endl; InterProcessMutex mutex( InterProcessMutex::Options(InterProcessMutex::Writer, "testcase")); // parent sleep(6); wait(NULL); MIL << "first lock will go out of scope" << endl; } } } libzypp-17.7.0/tests/zypp/base/InterProcessMutex_test.cc000066400000000000000000000023161334444677500234110ustar00rootroot00000000000000 #include #include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/base/Sysconfig.h" #include "zypp/base/InterProcessMutex.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace boost::unit_test; using namespace std; using namespace zypp; using namespace zypp::base; BOOST_AUTO_TEST_CASE(WaitForTheOther) { int r = 0; { MIL << "ready to fork" << endl; r = fork(); if ( r < 0 ) { BOOST_ERROR("Can't fork process"); return; } else if ( r == 0 ) { MIL << "child, PID: " << getpid() << endl; sleep(3); InterProcessMutex mutex2(InterProcessMutex::Options(InterProcessMutex::Reader,"testcase")); } else { MIL << "parent: " << getpid() << endl; InterProcessMutex mutex(InterProcessMutex::Options(InterProcessMutex::Writer,"testcase")); // parent sleep(6); } } } libzypp-17.7.0/tests/zypp/base/String_test.cc000066400000000000000000000270661334444677500212250ustar00rootroot00000000000000#include #include "zypp/base/LogTools.h" #include "zypp/base/String.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace boost::unit_test; using namespace std; using namespace zypp; using namespace zypp::str; BOOST_AUTO_TEST_CASE(gsubTest) { string olds = "olds"; string news = "new string"; BOOST_CHECK_EQUAL(gsub("test olds string",olds,news), "test new string string"); BOOST_CHECK_EQUAL(gsub("no string",olds,news),"no string"); BOOST_CHECK_EQUAL(gsub("oldsolds",olds,news),"new stringnew string"); } BOOST_AUTO_TEST_CASE(replaceAllTest) { string olds = "olds"; string news = "new string"; string tests; tests = "test olds string"; replaceAll(tests,olds,news); BOOST_CHECK_EQUAL(tests, "test new string string"); tests = "no string"; replaceAll(tests,olds,news); BOOST_CHECK_EQUAL(tests, "no string"); tests = "oldsolds"; replaceAll(tests,olds,news); BOOST_CHECK_EQUAL(tests, "new stringnew string"); } BOOST_AUTO_TEST_CASE(testsplitEscaped) { string s( "simple non-escaped string" ); vector v; splitEscaped( s, std::back_inserter(v) ); BOOST_CHECK_EQUAL( v.size(), 3 ); BOOST_CHECK_EQUAL( v[0], "simple" ); BOOST_CHECK_EQUAL( v[1], "non-escaped" ); BOOST_CHECK_EQUAL( v[2], "string" ); v.clear(); s = string( "\"escaped sentence \"" ); splitEscaped( s, std::back_inserter(v) ); BOOST_CHECK_EQUAL( v.size(), 1 ); BOOST_CHECK_EQUAL( v[0], "escaped sentence " ); v.clear(); s = string( "\"escaped \\\\sent\\\"ence \\\\\"" ); splitEscaped( s, std::back_inserter(v) ); BOOST_CHECK_EQUAL( v.size(), 1 ); BOOST_CHECK_EQUAL( v[0], "escaped \\sent\"ence \\" ); v.clear(); s = string( "escaped sentence\\ with\\ space" ); splitEscaped( s, std::back_inserter(v) ); BOOST_CHECK_EQUAL( v.size(), 2 ); BOOST_CHECK_EQUAL( v[0], "escaped" ); BOOST_CHECK_EQUAL( v[1], "sentence with space" ); // split - join v.clear(); s = "some line \"\" foo\\ a foo\\\\ b"; str::splitEscaped( s, std::back_inserter(v) ); BOOST_CHECK_EQUAL( v.size(), 6 ); BOOST_CHECK_EQUAL( v[0], "some" ); BOOST_CHECK_EQUAL( v[1], "line" ); BOOST_CHECK_EQUAL( v[2], "" ); BOOST_CHECK_EQUAL( v[3], "foo a" ); BOOST_CHECK_EQUAL( v[4], "foo\\" ); BOOST_CHECK_EQUAL( v[5], "b" ); BOOST_CHECK_EQUAL( s, str::joinEscaped( v.begin(), v.end() ) ); // split - join using alternate sepchar s = str::joinEscaped( v.begin(), v.end(), 'o' ); v.clear(); str::splitEscaped( s, std::back_inserter(v), "o" ); BOOST_CHECK_EQUAL( v.size(), 6 ); BOOST_CHECK_EQUAL( v[0], "some" ); BOOST_CHECK_EQUAL( v[1], "line" ); BOOST_CHECK_EQUAL( v[2], "" ); BOOST_CHECK_EQUAL( v[3], "foo a" ); BOOST_CHECK_EQUAL( v[4], "foo\\" ); BOOST_CHECK_EQUAL( v[5], "b" ); BOOST_CHECK_EQUAL( s, str::joinEscaped( v.begin(), v.end(), 'o' ) ); } BOOST_AUTO_TEST_CASE(bnc_909772) { // While \-escaping processes single-quote, double-quote, backslash and sepchar[ ] // deescaping failed to process the quotes correctly. std::string s; std::vector v; v.clear(); v.push_back(""); v.push_back("'\" \\"); v.push_back("\\'\\\"\\ \\\\"); s = str::joinEscaped( v.begin(), v.end() ); BOOST_CHECK_EQUAL( s, "\"\"" " " "\\'\\\"\\ \\\\" " " "\\\\\\'\\\\\\\"\\\\\\ \\\\\\\\" ); s += " "; s += "'" "\\\\\" \\ \\\\" "'\\ single"; // single quote: all literal, no ' inside s += " "; s += "\"" "\\'\\\" \\ \\\\" "\"\\ double";// double quote: all literal except \\ \" v.clear(); splitEscaped( s, std::back_inserter(v) ); BOOST_CHECK_EQUAL( v.size(), 5 ); BOOST_CHECK_EQUAL( v[0], "" ); BOOST_CHECK_EQUAL( v[1], "'\" \\" ); BOOST_CHECK_EQUAL( v[2], "\\'\\\"\\ \\\\" ); BOOST_CHECK_EQUAL( v[3], "\\\\\" \\ \\\\ single" ); BOOST_CHECK_EQUAL( v[4], "\\'\" \\ \\ double" ); } BOOST_AUTO_TEST_CASE(testsplitEscapedWithEmpty) { string s( "simple:non-escaped:string" ); vector v; BOOST_CHECK_EQUAL(splitFieldsEscaped(s, std::back_inserter(v)), 3); BOOST_CHECK_EQUAL(v.size(), 3); v.clear(); s = "non-escaped:with::spaces:"; BOOST_CHECK_EQUAL(splitFieldsEscaped(s, std::back_inserter(v)), 5); BOOST_CHECK_EQUAL(v.size(), 5); v.clear(); s = "::"; BOOST_CHECK_EQUAL(splitFieldsEscaped(s, std::back_inserter(v)), 3); BOOST_CHECK_EQUAL(v.size(), 3); v.clear(); s = ":escaped::with\\:spaces"; BOOST_CHECK_EQUAL(splitFieldsEscaped(s, std::back_inserter(v)), 4); BOOST_CHECK_EQUAL(v.size(), 4); } BOOST_AUTO_TEST_CASE(test_escape) { string badass = "bad|ass\\|worse"; string escaped = str::escape(badass, '|'); BOOST_CHECK_EQUAL( escaped, "bad\\|ass\\\\\\|worse" ); } BOOST_AUTO_TEST_CASE(conversions) { BOOST_CHECK_EQUAL(str::numstring(42), "42"); BOOST_CHECK_EQUAL(str::numstring(42, 6), " 42"); BOOST_CHECK_EQUAL(str::numstring(42, -6), "42 "); BOOST_CHECK_EQUAL(str::hexstring(42), "0x0000002a"); BOOST_CHECK_EQUAL(str::hexstring(42, 6), "0x002a"); BOOST_CHECK_EQUAL(str::hexstring(42, -6), "0x2a "); BOOST_CHECK_EQUAL(str::octstring(42), "00052"); BOOST_CHECK_EQUAL(str::octstring(42, 6), "000052"); BOOST_CHECK_EQUAL(str::octstring(42, -6), "052 "); BOOST_CHECK_EQUAL(str::strtonum("42"), 42); BOOST_CHECK_EQUAL(str::toLower("This IS A TeST"), "this is a test"); BOOST_CHECK_EQUAL(str::toUpper("This IS A TeST"), "THIS IS A TEST"); BOOST_CHECK_EQUAL(str::compareCI("TeST", "test"), 0); BOOST_CHECK_EQUAL(str::compareCI("TeST", "test"), 0); BOOST_CHECK_EQUAL(str::compareCI("TeST", "test"), 0); } BOOST_AUTO_TEST_CASE(conversions_to_bool) { // true iff true-string {1,on,yes,true} BOOST_CHECK_EQUAL( str::strToTrue("1"), true ); BOOST_CHECK_EQUAL( str::strToTrue("42"), true ); BOOST_CHECK_EQUAL( str::strToTrue("ON"), true ); BOOST_CHECK_EQUAL( str::strToTrue("YES"), true ); BOOST_CHECK_EQUAL( str::strToTrue("TRUE"), true ); BOOST_CHECK_EQUAL( str::strToTrue("0"), false ); BOOST_CHECK_EQUAL( str::strToTrue("OFF"), false ); BOOST_CHECK_EQUAL( str::strToTrue("NO"), false ); BOOST_CHECK_EQUAL( str::strToTrue("FALSE"), false ); BOOST_CHECK_EQUAL( str::strToTrue(""), false ); BOOST_CHECK_EQUAL( str::strToTrue("foo"), false ); // false iff false-string {0,off,no,false} BOOST_CHECK_EQUAL( str::strToFalse("1"), true ); BOOST_CHECK_EQUAL( str::strToFalse("42"), true ); BOOST_CHECK_EQUAL( str::strToFalse("ON"), true ); BOOST_CHECK_EQUAL( str::strToFalse("YES"), true ); BOOST_CHECK_EQUAL( str::strToFalse("TRUE"), true ); BOOST_CHECK_EQUAL( str::strToFalse("0"), false ); BOOST_CHECK_EQUAL( str::strToFalse("OFF"), false ); BOOST_CHECK_EQUAL( str::strToFalse("NO"), false ); BOOST_CHECK_EQUAL( str::strToFalse("FALSE"), false ); BOOST_CHECK_EQUAL( str::strToFalse(""), true ); BOOST_CHECK_EQUAL( str::strToFalse("foo"), true ); // true iff true-string BOOST_CHECK_EQUAL( str::strToBool("TRUE", false), true ); BOOST_CHECK_EQUAL( str::strToBool("FALSE", false), false ); BOOST_CHECK_EQUAL( str::strToBool("", false), false ); BOOST_CHECK_EQUAL( str::strToBool("foo", false), false ); // false iff false-string BOOST_CHECK_EQUAL( str::strToBool("TRUE", true), true ); BOOST_CHECK_EQUAL( str::strToBool("FALSE", true), false ); BOOST_CHECK_EQUAL( str::strToBool("", true), true ); BOOST_CHECK_EQUAL( str::strToBool("foo", true), true ); // true/false iff true/false-string, else unchanged bool ret; ret = true; BOOST_CHECK_EQUAL( str::strToBoolNodefault("TRUE", ret), true ); ret = true; BOOST_CHECK_EQUAL( str::strToBoolNodefault("FALSE", ret), false ); ret = true; BOOST_CHECK_EQUAL( str::strToBoolNodefault("", ret), true ); ret = true; BOOST_CHECK_EQUAL( str::strToBoolNodefault("foo", ret), true ); ret = false; BOOST_CHECK_EQUAL( str::strToBoolNodefault("TRUE", ret), true ); ret = false; BOOST_CHECK_EQUAL( str::strToBoolNodefault("FALSE", ret), false ); ret = false; BOOST_CHECK_EQUAL( str::strToBoolNodefault("", ret), false ); ret = false; BOOST_CHECK_EQUAL( str::strToBoolNodefault("foo", ret), false ); } BOOST_AUTO_TEST_CASE(operations) { BOOST_CHECK_EQUAL(str::ltrim(" \t f \t ffo \t "), "f \t ffo \t "); BOOST_CHECK_EQUAL(str::rtrim(" \t f \t ffo \t "), " \t f \t ffo"); BOOST_CHECK_EQUAL(str::trim(" \t f \t ffo \t "), "f \t ffo"); // strip first { string tostrip(" Oh! la la "); string word( str::stripFirstWord(tostrip, true) ); // ltrim first BOOST_CHECK_EQUAL(word, "Oh!"); BOOST_CHECK_EQUAL(tostrip, "la la "); } { string tostrip(" Oh! la la "); string word( str::stripFirstWord(tostrip, false) ); // no ltrim first BOOST_CHECK_EQUAL(word, ""); BOOST_CHECK_EQUAL(tostrip, "Oh! la la "); } // strip last { string tostrip(" Oh! la la "); string word( str::stripLastWord(tostrip, true) ); // rtrim first BOOST_CHECK_EQUAL(word, "la"); BOOST_CHECK_EQUAL(tostrip, " Oh! la"); } { string tostrip(" Oh! la la "); string word( str::stripLastWord(tostrip, false) ); // no rtrim first BOOST_CHECK_EQUAL(word, ""); BOOST_CHECK_EQUAL(tostrip, " Oh! la la"); } } BOOST_AUTO_TEST_CASE(prefix_suffix) { BOOST_CHECK( str::hasPrefix("abcXabcYabc", "abcX") ); BOOST_CHECK( str::hasSuffix("abcXabcYabc", "Yabc") ); BOOST_CHECK_EQUAL( str::stripPrefix("abcXabcYabc", "abcX"), "abcYabc" ); BOOST_CHECK_EQUAL( str::stripSuffix("abcXabcYabc", "Yabc"), "abcXabc" ); BOOST_CHECK( ! str::hasPrefix("abcXabcYabc", "ac") ); BOOST_CHECK( ! str::hasSuffix("abcXabcYabc", "ac") ); BOOST_CHECK_EQUAL( str::stripPrefix("abcXabcYabc", "ac"), "abcXabcYabc" ); BOOST_CHECK_EQUAL( str::stripSuffix("abcXabcYabc", "ac"), "abcXabcYabc" ); BOOST_CHECK( str::startsWith("abcXabcYabc", "abc") ); BOOST_CHECK( str::endsWith("abcXabcYabc", "abc") ); BOOST_CHECK( str::contains("abcXabcYabc", "XabcY") ); BOOST_CHECK( ! str::contains("abcXabcYabc", "xabcy") ); BOOST_CHECK( str::containsCI("abcXabcYabc", "xabcy") ); BOOST_CHECK_EQUAL( str::commonPrefix("", ""), 0 ); BOOST_CHECK_EQUAL( str::commonPrefix("a", ""), 0 ); BOOST_CHECK_EQUAL( str::commonPrefix("", "b"), 0 ); BOOST_CHECK_EQUAL( str::commonPrefix("a", "b"), 0 ); BOOST_CHECK_EQUAL( str::commonPrefix("c", "c"), 1 ); BOOST_CHECK_EQUAL( str::commonPrefix("ca", "cb"), 1 ); } BOOST_AUTO_TEST_CASE(hexencode_hexdecode) { std::string o; o.reserve( 256 ); for ( unsigned i = 1; i < 256; ++i ) o += i; std::string e( str::hexencode( o ) ); // encoded contains nothing but [%a-zA-Z0-9] for ( unsigned i = 0; i < 255; ++i ) { char ch = e[i]; BOOST_CHECK( ch == '%' || ( 'a' <= ch && ch <= 'z' ) || ( 'A' <= ch && ch <= 'Z' ) || ( '0' <= ch && ch <= '9' ) ); } std::string d( str::hexdecode( e ) ); // decoded equals original BOOST_CHECK( o == d ); // Test %XX is decoded for hexdigits only const char *const dig = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for ( const char * d1 = dig; *d1; ++d1 ) for ( const char * d2 = dig; *d2; ++d2 ) { std::string eu( "%" ); eu += *d1; eu += *d2; std::string el( str::toLower(eu) ); std::string u( str::hexdecode( eu ) ); std::string l( str::hexdecode( el ) ); if ( *d1 <= 'F' && *d2 <= 'F' ) { BOOST_CHECK_EQUAL( u, l ); // no matter if upper or lower case hexdigit BOOST_CHECK_EQUAL( u.size(), 1 ); // size 1 == decoded } else { BOOST_CHECK_EQUAL( u, eu ); // no hexdigits remain unchanged BOOST_CHECK_EQUAL( l, el ); } } } libzypp-17.7.0/tests/zypp/base/Sysconfig_test.cc000066400000000000000000000045761334444677500217240ustar00rootroot00000000000000 #include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/ExternalProgram.h" #include "zypp/base/Sysconfig.h" using boost::unit_test::test_suite; using boost::unit_test::test_case; using namespace boost::unit_test; using namespace std; using namespace zypp; #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/base/data/Sysconfig") BOOST_AUTO_TEST_CASE(Sysconfig) { Pathname file = DATADIR / "proxy"; map values = zypp::base::sysconfig::read(file); BOOST_CHECK_EQUAL( values.size(), 6 ); BOOST_CHECK_EQUAL( values["PROXY_ENABLED"], "no"); BOOST_CHECK_EQUAL( values["GOPHER_PROXY"], ""); BOOST_CHECK_EQUAL( values["NO_PROXY"], "localhost, 127.0.0.1"); } BOOST_AUTO_TEST_CASE(SysconfigWrite) { Pathname file = DATADIR / "proxy"; filesystem::TmpFile tmpf( filesystem::TmpFile::makeSibling( file ) ); filesystem::copy( file, tmpf.path() ); BOOST_REQUIRE_THROW( zypp::base::sysconfig::writeStringVal( "/tmp/wrzlprmpf", "PROXY_ENABLED", "yes", "# fifi\n fofo\n" ), zypp::Exception ); BOOST_CHECK( zypp::base::sysconfig::writeStringVal( tmpf.path(), "PROXY_ENABLED", "yes", "# fifi\n fofo\n" ) ); BOOST_CHECK( !zypp::base::sysconfig::writeStringVal( tmpf.path(), "NEW1","12" ) ); BOOST_CHECK( zypp::base::sysconfig::writeStringVal( tmpf.path(), "NEW2","13", "# fifi\n# fofo" ) ); BOOST_CHECK( zypp::base::sysconfig::writeStringVal( tmpf.path(), "NEW3","13\"str\"", "fifi\nffofo" ) ); std::ostringstream s; ExternalProgram( "diff -u " + file.asString() + " " + tmpf.path().asString() + " | tail -n +3" ) >> s; BOOST_CHECK_EQUAL( s.str(), "@@ -8,7 +8,7 @@\n" " # This setting allows to turn the proxy on and off while\n" " # preserving the particular proxy setup.\n" " #\n" "-PROXY_ENABLED=\"no\"\n" "+PROXY_ENABLED=\"yes\"\n" " \n" " ## Type:\tstring\n" " ## Default:\t\"\"\n" "@@ -49,3 +49,11 @@\n" " # Example: NO_PROXY=\"www.me.de, do.main, localhost\"\n" " #\n" " NO_PROXY=\"localhost, 127.0.0.1\"\n" "+\n" "+# fifi\n" "+# fofo\n" "+NEW2=\"13\"\n" "+\n" "+# fifi\n" "+# ffofo\n" "+NEW3=\"13\\\"str\\\"\"\n" ); } libzypp-17.7.0/tests/zypp/base/data/000077500000000000000000000000001334444677500173075ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/data/Sysconfig/000077500000000000000000000000001334444677500212535ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/base/data/Sysconfig/proxy000066400000000000000000000024071334444677500223620ustar00rootroot00000000000000## Path: Network/Proxy ## Description: ## Type: yesno ## Default: no ## Config: kde,profiles # # Enable a generation of the proxy settings to the profile. # This setting allows to turn the proxy on and off while # preserving the particular proxy setup. # PROXY_ENABLED="no" ## Type: string ## Default: "" # # Some programs (e.g. lynx, arena and wget) support proxies, if set in # the environment. SuSEconfig can add these environment variables to # /etc/SuSEconfig/* (sourced by /etc/profile etc.) - # See http://portal.suse.com/sdb/en/1998/01/lynx_proxy.html for more details. # Example: HTTP_PROXY="http://proxy.provider.de:3128/" HTTP_PROXY="" ## Type: string ## Default: "" # # Some programs (e.g. lynx, arena and wget) support proxies, if set in # the environment. SuSEconfig can add these environment variables to # /etc/SuSEconfig/* (sourced by /etc/profile etc.) - # this setting is for https connections HTTPS_PROXY="" ## Type: string ## Default: "" # # Example: FTP_PROXY="http://proxy.provider.de:3128/" # FTP_PROXY="" ## Type: string ## Default: "" # # Example: GOPHER_PROXY="http://proxy.provider.de:3128/" # GOPHER_PROXY="" ## Type: string(localhost) ## Default: localhost # # Example: NO_PROXY="www.me.de, do.main, localhost" # NO_PROXY="localhost, 127.0.0.1" libzypp-17.7.0/tests/zypp/data/000077500000000000000000000000001334444677500163755ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Delta/000077500000000000000000000000001334444677500174265ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Delta/repodata/000077500000000000000000000000001334444677500212255ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Delta/repodata/deltainfo.xml000066400000000000000000000014141334444677500237140ustar00rootroot00000000000000 DRPMS/libzypp-4.21.3-1_4.21.3-2.i386.drpm libzypp-4.21.3-1-d3571f98b048b1a870e40241bb46c67ab4 22452 8f05394695dee9399c204614e21e5f6848990ab7 DRPMS/libzypp-4.21.2-3_4.21.3-2.i386.drpm libzypp-4.21.2-3-e82691677eee1e83b4812572c5c9ce8eb 110362 326658fee45c0baec1e70231046dbaf560f941ce libzypp-17.7.0/tests/zypp/data/Delta/repodata/primary.xml.gz000066400000000000000000002504001334444677500240520ustar00rootroot00000000000000‹¥ž.Hì][sÛ6~÷¯Àø¡ÓÎT ðš8ÞMsi³ë¤ÞØÉvŸ< J¬)’åÅŽóÛömÿØ”LÉ2 ÊJl'Ìt\úî8çà|pð·Oó]ˆ4 âèÙ¾>Öö‘ˆX̃húlÿÃé둳ÿ·Ã½ƒ¹È)§9E²gû³JΧ¶ÿŸW'û‡ߦšO ×bØ!®fa c×§Â6q‰¶q0Yä´Ì~ŸÓô …T³ˆöO>œ¼BG²Ð/Ð t\õÓÁ¤†.E¹ÈX$¹lȵøé,ÈŽ‚(Ëif(Ð@¢`žÄiN£±8òƒi‘ÒRÞB‘Ñ åÛ«2ÎPœ tRœ¼ªÐˆ¦Ñ0‹!c”7 ïÁ¿çE>‹ÓìÉÞ¨þWVôß"DŠ^Ñ9ú!ÌŸ^–ÿ]Î’1?Ló§%ìýÿþ˃)i.šÆ7`¿0Œ4åè$Aä!/“_‡qÐQôFT”‰oišC=OàïÔ£Åü`Òè±e/Ö-Hë èÓl'"*‹ŽÓéÁd YÈixx0‘?)y0e'Â$šƒM&À>ò ¨á"ÉrMÒ˜TYðY,ú Žî{1b¤9wÉ™\™€‰£5²cV ß,~¹*&0×'‹µ0’óydêcHË%s-éÇéœæ‹?!>~ š-=>BÅ)L«\¤“懫""âqZÏÙ7ï>üŽÓ˜ æÎ¯sï·ŸÑ»ÆÛéôgô«€2£«*»Zp5·iÉáÉU–‹ùäõ,« Uê*²ìØYœå‡wëyR \¸*”Å0{„쥵f‚r‘ŽRXDAÿ§ù³}Ãp¤–£gévCÔ2©ø«R‘]'×È%t…¤*G$ ¼_Äó ™à¯aмƒ²Ÿö‘Ò)(¾£Wµö!cmlÔêG“Êi±RîdSÁ“æ`.gëWײéX_VÍšºF…ik°0¨a3Ï÷ Óò5l¶nfR‹ØçdP³ƒš½MͲvÖÔ¬îH‰†š%F§š•“ý¦ž•©ƒ¢m(ÚÃÛLQ%ë£Mcç†>NÒø"àúØ ¢¦à&DçEf0‘³Dv.BMP0å;P²%R&;{iZ^ý«]ã.LÊ;S7q¥J+'RGíxåiàr% *BÖ´]dã5™ŸCÞI²ÈÒíWÅ~¢é´k ç°ýy~¥RÓ0žvÎ/–q¤à⢒dó ëšËv‚ß±Éh™¦"Q•)é¢Ôi8¬ÆhpdDßæ²y¯Öœ e‰LŠ€ÁÉDªÚK‘ÈGy÷kx6{@èvTíÓ«0¦¥SœýF/Ä1Ø×àÓרXª¯Žñ÷¼ok(hÛ®¦ªuÈr&&"íRóÐ.6Îâ±¥Šûñ×£7¿¼8Ãcí§Þ"z²…ÈØè/Ô)²:ËÞdGŸçtãä2Ƹÿ¾«.0ö²8y‡•ÜdÁ«l7ÈׯWnÆÀáiÏlNçRåm¨ðͤ¹>œ€û2yùæýÙ‹ß~r0)S7äË2„v+Š¥q4æ4¯&µ8òÀã.’x{Õžf;édν~’åÎäsð§¯zŠ‚KòyÒS ’Fr‹¶ÉA7²®^LéB´`fE6+1Y (ˆ‚|Ì'ï_=ùöU7Nº¼j¨qÙEE[­¢cv®ˆ ’ÎyÒ„ŸC'(BCÞ+g©*æ°³“¤,cï÷Bƒ}W„ƒkÞ6gšÐ~ø™rg°T¸*ö’* úŒ† ÍJâK‘ú°„º¡°äñ\§ÐE©P›ç8ü¡PÀÉý]·-Ö5¤¤KÚU…œ¶i¼ Jмµ¹Ò Ú½ôçÐÿ¬uLçÁ\Œe ®mbÃì”t# hÐl ¦DÊ–H¥Ù ¯—C!­niÛÔ$@;g=°Eî;J`STnf VÄΡOb6âÂ+Ô XR”Yü¦ZÆâ7ExŽïÓïŸøt$¢‹Ì78I¹rí×åZÅÀÿáãÎÕ¨, Ûg¢Ä€ŸW´-Çl&°ªh2sʺQݪ&ϯ¤‚¸Qn{¯ƒÚm(6;ïME~v.£ÚáYÍ+´¡+ÝÛÞõ%œzv~Öbº¨Òtžßlµ6Y”I/ÖÚyÙœ¦ù-ãO·àÛÆ3+=¹‚ Ot~ÛØ^ÇÈÀ¹ >ßVö6?"?æAÚ‹ÃÛ܈BnÄd ½«ÄŒúb”Þfð×PÝËDþ° -(Ø‚c ã’,¼’ál¹µj‘ʪ·ºZKPʺ¼´ÕÛiàZ=”%ÿRø´»ú B_eržQÎ/ãtm< ÃøÉ±Î,ãËrŒu±ïë„é1LS·¨©jY–®[æibO88Æï†c´\W[çmÜœT룩9ÖÇè:š¾Â1š7H¬Mc5Ýo²ŒUú·Ì3†Aüù0öJ”u`¦q`¦q`z`¿<ÓøãO?Z†äýI:<6·–%ÛKŽ­eU%8»¸–',È~Ò¹†Èȸ\"r` ƒìÆ d;j` o rn` o d_’…tN/îÊ?jc—Ô»~Üï+Žž«Ä4 6©Ï¶ ¢™:3mŽ}Kw.ü_‰~|åX‰"C§qž¹*ñøºIé¥t!Á‹Üò*7c‚>¼{óÇ·.BI‘&q&Pìbûù¥¤á÷|&YÌ\Lk¢ò2ÈgR*DRA7¢aÓLÙLµ½ŒÑ(‚yöS•ûbŒ¢ÈŧÀ ÔŒ#€‡Tþ1‡ù§’Øá{œ ìŸ-‡]aZTf.ÒŸKQZ6¨l -ò¦YÀP‘ÀdâÑE@÷dÍß@ÍAõçcô&G Ž<`ÿÍ% ÷Ï"b×­zþ–~ N^Ž"q)‹Ø;†%ퟠ EªÁćĨì˜ðPDY,u+;\d-¤ì)T8ûŒþÿ9/ÿ~LEˆ~‹¡®»eIkøååå¸Z"ãrÙB:–Mlw…:u0qHsA¬Q§Ø04I¿5¸SlcÍ%MòÛ†¦;jìiUÕ‘\Ž#üø¨Ó:XxùÕäD°" ò+5 "vÞ—C]í¬¨ØÖc;Uf«i–Åc£Oº!õâèùÛçÏŽß¿ùøüôÕÝòøðËÑ›Ûe±úg¿<Š(¥é6}Ð\톳ïÞ?¿uf7R¶Èé,ð)[·ª)~—!¾‘Ù-銹Vc|“ßì  PâR'}³|Ž’h€êb™kÖâcåµþR€æç"bÁ­|éËW-}ºREC×[ÔVÚSNŠÑËó^ä¡:[-á Üáý(Xõjø}Ø`§¢Èef·Ïßï“õýÓÀ_²ß ŬNËuÖ©`½ÏX*O½?w<Íߤ7ô€<™àLç‰Ì€ô(?©¶µRLÛVl«¥²12Æê9€ÚŠÃr á5oJmUñË”&}»ës/­õ€NÔ»7î]ºô@gLn–·éèÇut]fÈËÓ-!xª;“È.`ÍEÖµœ—Á5¸G¼¬EG@¶.½5ÖßĶ´© ã2 ¤€S€©¶$ ¦2lÕVUéîp[$½ÿöʳ‚+äªÒðjs Csbóè<Œ@±ò…£[F‰-Óv±çrš7L®û”Z‚GÃ6wgÜåL0{ˆQâÇ%v֣ĚՈ®G‰M)¤+abÝtuÍŸ'–I˜¬dtË©Ÿßzˆ8‰ƒˆÁªû¢—§º†yó®>¥Ø–×õ­ð G\\t{ÍYÙûÜgpäÔ2¼äUô£;®Ó…ˆ¸\ÔŠ0¥Êå,áJÀÝîÿnÚÛÍq’|Ys¬ ¬‡Ç6}ÝÖmÛstŸ3WÓ-™NLË´õÔ¾3:˜ãÁß³9Æ®qƒ´uÍÒ›ºa¯‘¶`{m²BÚÚŽ¡u¶°R×l1¤|¶¸˜†ÁC`kñ–_w]Þ),y—xähÙ¾ÁÈÝ/wÀ¿n¹ÜM¼sÇDëÀ° ëÀ° ëÀ°ö`XUYÇÞìä×¹/Xãm„¶¸fx‹rÌeÆÊúG'é<œ•ÛHÝ’vUY“UVæfªø. q/’w;FX¥G62É}dUÞx ‹ºx ‹º¸O|Zýå´mÔ ÃqmÇ×<ÝÑ C³t[ó Ù¾¯;ØdŽcj†9¨‡õcPÛîÅÃì7å;q͵¥;.6›j‹8º¥òîÛjàõ‘=úöµéâ/¦¶Vü±!Lý v`C˜zSaê!L=„©‡0õ¦ÂÔªà!LÝGjSaê!L=„©‡0õ¦Þ}˜z$o=¾‡Hµ/lÙŒ»Ì!ºçP!¿çái„X¦ÄdLã®ç_)R]Å™_B«å[eTÆ ŸÜꖜ†Q”E4ÉfqŽb¿Œ?Wìf¼Qè^Uhâ…ü"‹„à2È룫¸_´œ'2š{.D"?I«œ÷–¹‰üXN”G»í÷]b–n¬oubÚ†éºÍïú@’©=·ÜÛ6‚ûËÉKDF0ªÐ=OÑZ<÷):ªRÆz#í¸ð@½Œ%Ÿñ3z ! Œ§è]Ÿ¼}s:DûF]b¸Ûoz_!@· î8TÙ`åB¶Œ¥ó!^¢Ò„];ÊÆîéoPf9ŽorK3±-|‹˜D7 ‹ûže{̆n‚‘°ÔêÁì?@³]³×wФÙ×°¾³ßøZѵÕïùÍ¢ïÙè?ˆo'¹D7ƒ?üÁàƒÿ®ºvL]ØŽgS“Y:6-Î 9‚aÍ3lƒŽ¡sáî`ó«Í'ŽÖëòçr«¯;»±ù«÷?_›ýþW@Ï–ÿa\#í<˜þÁô¦G¦_¾‰ãCá— dñ&óÅòj柌­³“ïR]îðz{û&æ”é¾Î‰æ0Ÿ9Œša–I5Á>§–£¶ó?‘ÏPúEˆŽ¡»DŽ^WgŸ?È÷JXBy”;+O@ƒõòk¢GÍ?Xé2È·»äré"$UaõAë|Fsy;RcK=Y–¸j6—§Ñ=¨p0ÊSà—³€ÍPýO&íÔë2NÏA$ˆ2HÍÊÃèPð>ödvvÐÒ©2aµzòpwu0¾nódÙÞÕÚB%ö‚ÈOi–§` (œ– èÇæYø´€™¨çS© «~^Ùâ¢ü2˜‚Ñ‚%¢ÂüiX¦Œ£2åïµmùaš?-ñoaΡߤîÖƒiuV\Çqåm% gÅÕlM»ÝY±¼æ©`bjšÝgÀv¥®µ*îRë;ÕËI¿*'ß­ÂÉé«·ÇGÏOÛî¼Î¥v'?*’õÚôÊ¡rº²-rØ()ßBgm‹vɳ"Ë[aîÊ ¹—Â$fàçÞ%ð2ï þ²¶ÇL»äÓ„Éç0ïC6‹/o¶|ù\jט×GÛZ j3«|÷Ýv²L#ë·LÇp[€û¯c˶¨ë[¾àÄv4ìyº1ìd‡lsÜûNÖ4ÜÕ«´a¢’æ7£Í"Vû>V^¢­°ùv°;½\Û´ñÍ/B+íÙvë‹ÞD³:==§.åipAû†5—ÞýØíaL!˜ÉmkžfQ¬{„»ºmºŒ2Ûç6žΨ!Ô^f8®»Hª*Ù2©h¥.¬+§;G¼ºOêi9eQyówœ”ï«Z„»–³·÷o.ƒ0l\CñÃ_Eœ?¥á%½ÊªßQ½ŠÙ–¥5Y×,®LŽ4+E³¸¹¼CÐ,¯Ê: Þ¢©£)‰·ÿû/(´tôN\•êz6/$4õ×ÔÌ.1M}U3»„h·Ÿ}&¶»b$¦½ÂƒjjÑÅ›‹c¤`^?¾ÐâIǘü‡žœªè`/¤°ÌÒ¾QÄ[ûk!DBÈ–âÞ¬ÕNs“ÒÚEŒïˆŽ|;ô]s&dK—ä>Ì`®n¸¶§éºC™nY:q‰ïKsÀö™†°<[^-5˜»ïÒÜa§—¹3ÈÚ#Øj˜;ËŽ­Ýbu öîÞì®oyWÓ¦q,Þ`ñRáÅq>ªÎUÞÙsl°Ó4M¸.³=ß·]áyu„IlƒÛ 6}ŽÚÑÕÁì}kfOÓú™=ÛZ5{Fó;w¼™³Áì­,‘ÁöÝŸí#äî¶oe08À¸Tc÷ᘃ‰ótbpÏㆯy¶†j:šiRaºžíjܳÛ÷]Ú>Ã6znùܵC”FÓömà\¬ŽÁì=î-ßb‹7X¼Û=õ—Ö·£ó4—Y̲tê¹– Õ–Î3¨¡™¶=KÓ}› µëˆc÷ ;W#†iõŠošØ4WŒåZ+;=bulõä)‹.Í=˜¹mOS`ÛÃiŠuÝK}_žÿÕ%Œ`tåB¹ŸÍÁ.ÚEmË'³°ïRÏç[–Ǹéû¾+„¦·A«l>̵ûe°Ñ<õfw½²aóqËbö"÷·±·¼%NaX‡­É÷¹59—O6…#.@qÝí–T<¶ÆØ\¶·×•iB¸:„ *%Ô0<ßeº¦¹ö,Ø6=ŸùÜäjoz¡—²1¨~ dqÙÉ?ˆöºB¥ê4£ÊÀ†¡@e?!Ÿ² ò@d°2åQn^™£Y‘æ(i9|ã½ß#0Bò¢”¼‘áåLD «/¤ýœVohÁz‚læÕ3V'¥z@§`@ Ì“'kš3ÒÌ‘f#ÝyBÈíÿì]Isc9rþ+>õ„£»±/>:|õÉc_‰Ì„D· )•j~½d-¢  Ôt{ÆžˆÖjð^"ñå— ö§Vò×ß­3ÊùQÛg{ÇTie\¶éµ©’?é õuSe¬Š1*{ÙEÙœTº0Z²þNƺë«×jüËMüû»Ð곑ú¢«·ÍÔ#ìŸùÓ¨•º&­Íö¯`¦\ŒÞ¦9Cuñ`›íæawëxÜù_|o½®£Ñ;Ãü|šø_H ·€Çb}¤…×v äOßÏ@'ŠÄž‚«ÞḬ̈áãBô]~t&àˆº°"41E‡qd‚¶‰­=Ðù¯ Ü=µ¯*¦¦3SM¬Øc°±XNpëV…î«ìp¹xÜw«§‡Î Ê ;•5Õ¬"™¡wù2Ãò@›ÅÒ­:ÃM>eTX“Gö·®]¹>üƒò¡»J -çLÕ (ù62E[æåî9t†õÉf%`p£`hdXÙŸ: ^TTGmz’‰Ù:TL¬¡À­K.Ư‡ÅëÁ,hµîig“ýUP”ƒžÚbM2…û<,„Rñþ½ÍæÀ p§jÆô÷ŸvÇíŸ6¸8¾tFGŠÚªœUñ©Ä0$¤×o²Üô6²®!ꂺ²'SʨêÀ‹ñ=Õ! Þ1ÛL2v’IaÓ{Ø"úR!UØkœÂ‚5Ó î· ^›ôÒzI)°¾P\Í ÒÌDç)hyØ­àSgŽXh&é"Ò*†©—Yã¢õèie´¥*ŸZ´M—4…jkên­TK ä ½Ÿ{n±^ÛðÓMo†P1ë£rC*RufNBõtOêœÉ‰êÈ~UÎŽ©ÐIßw»•ø/«±!a*>äjÑGŒCxùE2‡Ý²3r@¡õQ%U©nÎÄãê© ©˜‚­6,†‡F>c|Ó¿Å¡k»I01‘IdK`¤[70õMŸÁž@ •äP„ØÅ0Epš>•ž¸•çʪ§¼.S£Ÿ·¿üºwlÛE3턌VmƒÕ9«ùðš–Cb'‹õNß |¿ƒúÆÂpTÄšC"tœ¢2¯ñ÷éPN¿t§*‘´5¨\Á2n—Êê‰Ûíñ±§–¨s!ð% I–oó¯AÏåôuƒ‘¼Ðšg<[?Bp^jn`̺’ð ŸØÇ9B|R³{ÜnzvÉ[EΫšœ.Â]ëI§î·›£ø^½7 l”ªl²€ü>¼ÆB[Ýâë9õ¸Ÿ]»Õ&å± ¾•rì“ò5Û€ÂÍÈ+Cy‹®XC§RNa´Ñ+œÒÖ&-Ùl={œ†bž¡º ŽÿõvONõÀ¨`rÕ„ )4Còi¾Ùïz6À'E@üO×Â6Þ·-È,ú˜‰±ö¦q·@\ÒÉkèé½l_gI\NÍyˆš}ó«Ž{ÎMÏ´ÊÕ*>—ˆÆÚœ§‚ º2W9ª*ÌEÑÓùD[mñCOÇ5a—4×Ì<ñÓ²gGt®ÆAa•l™‹µˆ¼¨O‡¾%·UÐ2V6V7¤1çíoNl’ý£Ø)ªÝš\÷$ÎV!§(~y¢¡G¾ˆJ<žZÏå<÷q™¢(HÆ´Ðk™³&Žøþh^”êqmTU‚ô¡F0fJ‡VÜ5T¬H–8‹á6LûkD'³<¯VÀ!%[Ó¼ ¼,VéŽ*Ä#é*J“2€™Òœë19ëXü*7!B’G[ÔãöoZ>¾aꤜ¨ŽsÞÑäÆýb»GÙa â®/u¡ÎЧŒ<䥜wïöÐÓš,‹Zß,Föjˆ-ŸT6çn=½±Å„P2E¼A‘Ž’ÎëíÔ:bÈYûÜ"Ç9OÑ™&ìåï… ÏBfT˜2N<,eq`Ëž9!ŠBŒKkgnQÇùëWpã%v‘_\Ûè ”ƒñAM ۅû^„´ˆÿ#{ŒR1Óca41·ÿ]¨7*ê`Yt@‰ Sý±õš£moçÖÜŽ¢×¡Šú›Ñ°îF¾Î™áž@Šb&ALkÌœr®k7è„ÖúÌbi j3ò»0TMÿa׿ ŽKÊAüqB‡ùå v=²Ð¼(a~ºrõNÑì‹x¢è|OÓ]p-´bŽ&À”y¾½(­‰Ww ÚÌT…¹á#<¤6g>|Ú¼~êyiJ—\Y1zå"Ö¡ÈWñ,=‚d˜“È߉¿Ç´ëâ‹vWªZ8¸Ÿ‡ðë$ŠÞ˜BŒ|9SCVe*÷ØE[•|‚äÅbÈ<äe¿Éöv|F ˜‚·š£+SLæŒåËôZ²€&!ÛJë© Á9œU?¬–=³×¸/;´xÚŽÇ–´GgÄì.rÎÄ„rÑu.•)›VÛnªË;ȹ@ñÅb h]Dæ‡m=®».¦EE^+q3£÷&L8S²Ð‹®?àM Ík aü·¡ñàŒíBL Å#FS)é¤§ÂÆ¥¹È=:l’0y‘½ ^Ä2´ ¾=úÃSoU[ŒX¨¼s5 ëŽS>Úy¬á¸ßv³˜lT0B è+Ne1›bâãr×{ÊÙD›œŠ¹$a³¬²÷è(Êž øÅ«TS„µñá+ÆÃ§DX£S6†‚n ßÚðpì¹ßVgWb!©Ÿ§–ö£ìÖ’›p»¢ñA‡”º%G WR’eóêßxfë,dˆE‹ Ed´7vÊÔ¶ñ»!¡œ­<ºƒªH—¡MÛBBi߈k+ìÒU‰ ›B‚hcˆó%¾ÝÓœLŒ‘3'ƒTÆJ¾ „öÛn9»v"L+#žcOÇyek#‹¿áµÀÖ£ö¹ x—Äû€Z˜¥Ö†3¢Ѽ—ØÒJÆTÐîpö5ƹô÷E³€ÆêPX%AvaŽ|ovO=Œô‘…GFWÙšèhhMEòzƒŠ^§Vp”sJ€e®P¢k“l@°å3©‡ ýk²R¾uãËl0Á‡‰Áã|é¸ë=ºsJ)[ °5EŽ>ö2{bõ£ñ:˜V Êcu¯ŠGúáS. Å~F@ku´Cƒ‹~Ȧìž²"b/Ž^JjæÂŸƒ³ÝZÏèl€€¥¤ìæ*€¾d›–¦[Qk Ä($(`çûÏËý±›,³âyµó ¤DÞaŒ-~-ÈÄÕÓ¡ZâëªK¤]ŠcaÙ&sñ{žuöY‰¹ ¾d€1¯«zxÚôóË1‹3FFGªâYÌ2ó+Å!–m-lHh‰^ 9£í¹sÏ·h‘*îbBÒjJ=Úà°Þu•Ä%I(¿¨9ƒR’oÙk^?iõ¡* dÙ¦¢À»2–lû´½Õl[‚"S’›¯òFè–èÃ\3{€ò}>G¸8,»t¢+ÚU¥¹œË¹ÁÓËõzT¤”ŠVA|"m†÷Q«“o-tß[U…5Èøˆ1CC¸û*ºÛsA…™´Û+ RÖ4“|ÿ"žínÕÓŽU¥TKnç½,LX¹¯ëÛ ˆïS´D@­bD‡‰EÙ/IÌÅ{t1Écgð±ò…Îi¤~A×+²bqHa ¿¾dìo*ÂX RÙÌ¥Û—ÂË7ËŸ9F·FR˜sˆ•c)qh–sÙ~7ËPÄäµMbæìD„±ãöåÓ÷øשZå(Ëø3º~EÉ©}nÔ ŽÑ~‘“¡PĪ©,DEű3)ÏëÓ‘Ñ fBñê“ËΡø)ÄÚ‚7ý ï¼s$XEÔõ³ûúa¹êe2Ðcü´ÊU{7µa»ÆÇE'¬É⚢4•Ã8t=ÀªÄê€)F Ǫ4ÉjÅ×·Æ 2²¤d]¨“ ÝWñ¦kEšÉÛˆ„}Ú*nÂþ´h–}×[ÛTsD À…<Œ×cœI¨èããâ¡_–ÁFˆ‘îl£wf®hYb ÝuHYü EA•œ´Ÿ‹Xž\PxèñÒÈ!Z—•7B-*MíÛSÍûê¥g¢KvŠ2 Ñ%%Y¢Ùáw=fd)Ä@±+ɘ±ÙŽŽvã,$B‡èCuf(Ç úʸ¨LÆÂ(üÈãX2På—Üîç§Ù´B€*;£›+lžÑ÷KèA%x µ‰%¡häžµ"!±M‡î¡=ÄÐ!Û]‹ÍjÀ{&DUÛÂþb¥Å#˜+Ñ jøblJ½sv@ “ñÞX£ñ?0Ó©ÂÝ`ÏÃ&+°S‰HD…§&i™_ms—_3We•çv3½ËÃØy&À½]eQWe vŽ¥‘Z}Ï,nÇvµí×"Uƒ¶4φ9A&í{Û·G½©ÚTíÊèöÝÔC·ÌÉ (&Ë#—hü\€´$\t'Ù⫊ĭwÂÂ\l]¦+†#Z«‚JÚ )É·"“n‰²v|ªºhΞÕØœ‚Ü‹ùÀ•Œ j±úÖÁW 0h˜‚ÌóF½Z‡â@z`n-ºx,BÝCåóñ¹‡bËC—µu`Ïãq«vØüýS;hjÂ@ ÞvF˜­Tj¦_°DÁG¿OŒWÒnκ\Âs7Éb¶lÄЀÐò©­öø±¿ÖâY±ð)ñèC‹ÕN­õ׸ìóËÙ¶7âh±|Ò¨¬Ç¥øYWÎI{íгUy,[ø]Ô¦—ÈípdÑh4¬ò}:w÷è`Û;;~¼éÔ·Þïëð?ÜùÉõ–žVüK»7û—ãv{÷ í.ù_þu»=¶R­×}³}híi¬QÕ{!1ýïxC¼ÁåÕ^Xvæ¦ößé"ûÿw×Þïÿˆ‹ê[B}µÄãû;æðéPŸ·Ì—ùÿüu¯Þª.ƒÝöëíþÙ´­[Ôáû—0¿ÞÜ„_ýáUºWÏq 8ŸˆŸ¿ÿwZß2©«çµé¾·LykNYAüõ°ý5üü§Ÿƒ+Ká*ß-Mg Nãl‹a>þXŸ¤ó¡N—žîÂFËý?¯ZkýÇøWzç>öoúí3âí¹=Ìáï¶ô×Rø¡†Ú?кNˆrPÁ@ëÓ¡Å “ iå´2mµISå´®ûÛl]—GZ×ùvìò[ßÿú|q—­ÊÎØüµö×»¸×†íÕÿèZ÷Û›ÿq£¶É>]¸3\q”ùÝø<||[ïš þ¡Dão¨Íh…§Õ±Ö-vÜïŽ×AG­cŠZ1¡)UWDŽ¡¥Yc©Æ‡»ðúÏÎÿq„ Áž>£ô©WuÙúÏÍR eõä/ò™Ÿþ]Þü՟λæp?¬Ÿ´ü<ׇ7s=½k}9×á<×ß#DGïÞ@´O¯O´¾í.ª Þ«Ëî¢ÚÚÔ2#—(²wñNŸÕò·Ký} Öçü_FkXÀL·ýN`&£Þe?y3Ï›GûCÛŒžJÆ7?µyZß,+[Ö»Ÿ¹ý‰Ï²¸÷ƒ?Úõâ8Ô²ŽA¨pNþî˜ÓyØ÷ëÈsÕY×SC„ïÈǾ~V›È¶qk£¯wçÇ/ŸùV/BBåKr }Ô5Ý_êxžåž^ŸÑ!_ Q…ûÛX¾‘ý»µ±ÕWå”O¶¤œJ´/çèÇŒ- geCTÜnˆœ|þþ0Èœ¢K‰É…»S'—ƒ_i^ÒîÍeíTD½¹?/s9øõ#fUƒì*Ÿ28Nùî,ÛkݹÙC saÙ dÑSòõî¤ÃåK¼w´µÆ5)ÇVåÃäF{ïÄPËÙdsUÑÉr n²«%g>!³GŠD¡ÜŸ>ý–ï“ó ìSAd'?ýý§Æ/¥r«×‹* R4®%²ï¯ý~–þ1–֜ͧl8 ©¶÷—,¿ŸÛeFºU¥e˨¼?'üÕ \ëSrdLA,Ášû ŒÞl€÷ûH·bNQ šû»™\•S딋Ѥ¢ i”“/r½œ ¸-Ÿk¬k•|“xwW›`‚ Œ¦*¯Ø;(¯~ݤ¥¬Lò²ç’®fÖÜ×ùCñ5*/¤FNK]ÎÕoY«-´#ŒŽ †<Ð3ë,]éJέ̈́Xâv0„Ùõ½Ò-z*¡Rs#°§&‘¢ßŠÙYm‚R¥àýǰ®+æ• ½FŽL¡7åþÃðoLÙõö_Ö‹[¨$ Šgñû7°¸P=§$;¹ïô²U-:ÅJò iRnœ•±V`.@(è-M›Ï~r†ÿaïÜzã:’;þÎO1OÆØÈ}¿¬ó'kÀˆ7À¾ ÕUÕc‰d4CËÚOŸê!)ñrnݽ«ˆ|1eΜKŸîºô©úýmr`TcõCq×\58BpVq)*ŽÁî³S4>ƒS5€° K•#ìÙ‚uÕ£#[as÷Óï»PóX°1a ß p§­ßVãË’„Y±jEg$£:§Ë†þ¢• ÑJ’BÎÂÖ84·WDj{Ë̽yÿ±‡ãÕ;q0Ùÿ£(HÒ„è³$˜i{óìÃüff5(JHRoÉøÑÝÌÃ"t.r‚Vai[ËøàñçË—³Ä¾Ú%ñ:Á…²½)uÞïÌC6(9%‰¼T‚í•Á÷gð|{`.’$[(’"èí ÷œÛ h@Ò‡š¬É1+¿½èòöõÏ5ªURÕ+«‚Óèm.«ú`>m™÷GÃ4ÝW+tô:I:ãˆ`$¯œÞ/ y|¥XGI[U·³>wCÇ[»lp÷z;¸`"›Ÿî©‡ÔØ"$–:·Ä{4Æš€ˆ÷±‚wÐ$*zs¤5Ú"æÆCŒõsN`ñ•“tU’Ɉ=ׇÆy'ZŒ¶AaL9ZçÂ`œ¸ÔØË¨QùJ3©î`h™ÂZÌä{ªq”Lèžù69m ‡DÉRËæëæ ×©=¹™úJ¢ñ’‰‘ ¶Û ²& B0Õ ["`—ÍvûÝr¹ØXc)YrÉê%&Úο{3´t1 œ$]Å,!oÐñܚ܌oU”ɇkÞ)X.Ô–$CBÏ9÷¾ØXm•q9¨\]–p½5Œv:ÅíݾÕ@uZU'ö‚î´+jcK"V­ÅM2¦ÔiQga6 F+fÇÙ’‹ïœþË8§MÃó*G˜“îMg–°×Jk%Ž&YX®s06\9צâÈ`¸ºŠÿqU­*4Hnš¢˜v\¨Â€^ÒŸÉ9… þD~’L˜þ¹¸ˆH6ÅFq„ÁÊ”O’°v}Zv¦ÁQKkÉ—ÜóhD5Í^–Å¢¢% ªí½â3 ™þP—rµÕ[+†ÐiˆŸ©v?¨ÚC Ú'£$åÔv>í‡ç9CBj´ë(öP¼oço=tàs½ÝÉ––—c@‰nÜvèç|â9Ói“•,(ÇÞØ¢Æ7<—UB]2i›Å û^²¡ß/²Éµ*E¥$ΣÕ´Ê U ‰°bã½US‘ÕD­u:¤GœmŽR™Aœ€ã$IdeÓk0VÑc ÅìzCFYÝ›ún€©“ εææ`œ.ÛÙ#SU3¸ LMШƒ¤ï½ï W•ý´D âÅ&yKïæó"T¬%"Z[|qÛùÏ÷ÖÁ4(ƒjIY¢uÕvæÕö¶³ÛÃ2­ÅÈÅpehÈǰ½çûÁ¤Ÿ2 9‚)(cªn;¬öႚtöTµdÑ¡Ù6Ði`{{ *6 A–iŠÑB§ûêë†Ï)B¸PImïä½ótçàá…m´E¦%¥Øú§7e–’QeL–<¢Æè 7ØÂknôgäN° +Û9oÝÄ"æ‹%€XUvV¢ÏÞ;XiÔö-Moo•µÄ.ߦ-‚'¬·$¡¤.¨¶ËUÍíÍ01o„¶Aé|oR½©ÉÄ2;+!£šx´Îbëžd%šì$jI9ÃvñªÓiZè9k‰¤+™¿1÷Ö#nì—/F[lâ¡4ÅÀZXVZ#e!WTxð¶H¬YöÞ‰×lz>{óáÉd/XS›ö¡ *f·#y÷â—TFUÛÜe“¬Á8‘Nóã\e ›Áv4Þߟú3”TŸu ì0 àzŸì¢’B51cÈ’kèî°s^ .x — §œu÷^/ÚªTdÐY+†í²Ì÷ Ц…dR6$ÄäÑPÔŸ °kAX‰‡Çlb#©æ²r1ëf eÕÊ óXt%í`ô¦æuàÁ‹…2¤QƒÖn0.Ý$wœÀJÚ‘ESËvNÖÝSNe°¤É ÄVÑTõè>ý6.¯lÐ’ƒ»`UÑipÈæfVh3±¯ÆëˆÛ)ÈngAE'Qhg/1}í-DýJ~z•·{™Ô,ð'+kœÏQµ´'o'RÞŸ·+Ò­Ž37¡C™ºª¸Ñ]—§¦¹ÿe^ï7ID¯|È:´—Ñi0Ô˜æ?¢ B´ŒN=7Z9¯SL”œÖB+Êf4âžM?C’rgË,¨d›+´ÞynŠÜÕ’dçƒï“æaéh•˜R‘sŽþQ/¶Oݤ°· ekÚ6]ñ˜A~}súzz…±vÞ¦*±¤ÕY–ÁÈüŸŽ64ÕØT¨9'àðˆ¦©«–Œ¦aŸ£#G´]*ì¡]˜bÓG÷ q¬½µ¹Çm¨ßÌÔþMôÑ7¶øTR–<®u35•h¯ƒÍQ™€¸É€_M÷ÝOïß”ó×7 åýî2+®¯|ÿõV³~}¬ýñXû?îö—x4Ðõò ÇÃ6[ü«$ç ´,x%A÷îú4'§gW²‹§Ýá¼™÷7/vG'pó4%ˆ:ˆ¹¿2ýW§»9Ìþ¤ù’ÃC8hƒ}þpeï¥ùpûx…åKí°o.N½ö6WKc¿;¿<ì%Ÿ¼æOŸ\ÿõjMïo™w@´¿w%»Û7tu{¾9ä‹“ÿ¼>ö»ÓÃ+9þÒ—›Ó;oôiñ|Çvír%üàáæjo¾ÚàÝ«S{ùÈûÝ;þpkL/v·Ï{}Ò“¹“~<ßé™ÜÁ›6HoY òÍ9÷íñ¾–(Tþ{"ÑèÍÝÌÝÜ¢9ë÷Çÿ}©Ç¯šÑ£›g{³Ÿ€œöçG÷î5ÿ*—ƒZ[>*OKF‹ÎåÎλŸ/%d8;0_a»Û9®†øäÝéë×»wço9:ôï.e˜ßîÿtòO×?ǩ܂ýî/ço…×ò¿z}øöpý9Èq÷Í4¼Áûêç÷'ǯìåTß\îß=ßÑ|óoÿõýŸøËOÇ?ŽÉ·N3î3‹#bV÷ùßévEÕ½8"¦ ½¿G˜’ó·ñß&Eí”Z#îbe›ý¬™²nÓöü⬔o®¦À~KDqœng0È–½?jŸ+kL²w‹ ÿyzm!Í“«ú½÷ðŽËrcz—¾ |ÞQú,´ë]’©HíââéólN6V¥1v’QŒY¥"æ¿:¶äƒ…ÌðLVÿÇp~)Å{ÎO¬ßmÑÞ{ÎO[­¢úŽûkE A§Û`u‚1’q/;@™‘ Puùëgäýº3é ¸€÷£nob¸> RÝFãï6htû¾¾}Úãwí‰~y‰¯Þ®nÁ?´–éoÝ9¾x³®-yüÐú Ŭ_{ûÐê¡&º¼.Î%ºÀ—b£ˆ}YÄ*Í´”!€ÎÚ“Á*éŽï,˜Å&çÈÞzŒÊ{Lº·Wpý}.±ƒ*¦ÌæLnðút;·×LÊ%t ֆΠP¹dˆÙ甂Œ8 víÏTqTò jfloÓÕ¾­:ðköÕDÝ`Õæ‚Ž91úè9â¢ò(©z WÍ É}PÅÑŠyv«p±r¯ùY¤õtÕô[Ô¨µ˜™&Žl™ ‡ÁZa®ÆHê“G̽տ‹%‘Ű&Ýêºc×ZXìžÌ€tàœ«×Ø‹.ÛÜ)«&0˜jh‚±½•fÛû°š¾†,n£Õ˜í£É¨ mRVåVƒ(«G;C·´ãYqp(ŽÓ¨³.»ÝDúãC‰ÚÙØÞiöömGËK¶&°F¹yµ$`Ãyæùè%Ä½Í £Qv´l™‡_=ëfîþHéQyŽ-ÚÔ ZÂ’¼±i°ác+‰ÁÔâI'ñbAÁ£ZNW ü&b§¦t j”6³«.#‡¶¸âØG‹:7öŸæ¦¥Â5±²\ý8ˆ`î[×)è ¥6ÁœÑ >ÝÙ´Äz!q”Œ~ÔÎMãJ€=c•Ä`¦èÑöÜ%Ä뜠•€õ%ó3dìeY jÙÉ”4˜ гs”ô&‘¸€êF¼æ¹ÒÉøEƒ# F³yÕŒHÞWͪgG'çJÓBVÁG …‚N©·¼¯¯Ø (]«ÅBÆ c¥¶R¸tjÀèe™XîP½õî¤êƒÏâÁRnírf0h^@¤KDë²-± ŸÒl==z¥lm»Á£‡o[S¶Jsu¦Á<…aS>E5"N=y¦Ù’AC¸Ü.A9¦š)¡ªÈi´Ý`Z&& f“)ëè*»ÑVƒéÞef4]°Õ)ŽøÝ½Ë“ BYkOÉ‚B7*)µÐí)‡™˜KÄÁØ}v$'[O [­¡ƒA=ÁÔZÕèLãxÛ5f’P¦öºl@ÄfÜR‚Á꫇*žtગ&HnÎŽlJFßËãYÄ<Èò¯™ôÑìšÒËÏZ’˜L ¼4Pšd ¬üYð‘aoÄó(£ÑÅ\×€¬9xÉg%v1žœ¸ü%DKŽœLq’øÈª*ü¤EOV–ŽoB¹öî³\áƒàf_RÉÒÄd™¨=…8$tÚü­\N*ðm<š²ŒÐ£oî=?Ÿs´ FLn¯”̪To’F‘­‹¶XÕëçV9ÿÆ[9¹*‘Ù<$ôá5ÑÅ¥S“¨d%Ö1È_Sï^ÚüT¡–x[@Õ^…ÍuV%¢ 1YI;™HCaA#«äf,Å ‡\êˆj†«É(Y™1)ôòž7ÏV{Vª¤‘‚d #'˜ÓÕ ì‹‘pOR3B/™e‹àT ¸D‰É˜1tî±/ bâ«Øµ¬zcƒyý?ëQ¥6mÈÞÈO¦¼Ü|ï™òòLyY¹…gÊË3åeö;_`Ùÿ—…Œ¹þ{!c4†`9ÙLP%lSc¢€Qâ΀ÅPVAep¶‡8pì?ÿñ»ïw?]^´·fÛ»Ó>Ò`öW_Ýï./Z‡}pÿþ¯­W¼¡`voX,Åû»»»·ûñÕûý)Âë“Án­þßÿvà³kè\Î×¼î?¶ÍŸÊlÝPLW×ÛÚË”Yy*cõãÛó“}oŸa¿[v£Ýmöv*ßnS{ vãÍ}hLÚ‘YýEAcþÎù—'§Æä»þ 0î sW>ÿÅScf_§>…'7àÅÅ,&㳋^æG0ŒÄœµK6›%×ÄüÌüúŒÌwóËhc›a¸cÀ£UÞ‹½¾eÀC–ùÃJ»r›µ3ܯö§ÿÏ|ûõì]ßo\·Ž~¿Ež.zÚˆúAI{Å.¶û ‹}ÙÞwƒ¢¤Ä¨“1fœÜô¿_j'3¶ÎéØm·ØhÓÆcêX‡"?RäÇìïÕ‹4*[”—OÌýL£²<–8â•$ÌP.§ýr­ÎßÉç‡2…¡˜l½J k¸äSMúÊYtÆ´ÔiQ5d.ƒ×MèР c4S¸]Îz´YàT|{ö·ônO¹[ ÊÖ—¤rŠÙ–¨Ë`úôtKÅiLlO†TmÊ=]¡õœvZÑ˳s†i0÷~*x©ÓWìuI$_ØFŽV@|ÕËרŠ+’¼SKÈÃ,î§Þªc—šô¢NNû¬C.&äÁ¡³Wz—¯vïË€Äû„®:0x•x*¿?û°s,P(¹b˜Øõ“©¢½ëñ¨³*SH.ÄÑ‘§r×kÌ]âÖ°R`o@Mì÷J­Lh·î5Ä¢br6(÷rw ˆµÕ&Ò†q´Oø‘ìÞyÅ)UÆ9š Æj©9>:P!µ±v€£7ËMòâ®ÑŠRÈé†ÒÈæöךõø%.µy•Ѓ±H*«¼Åˆ<Œ˜»Ö=×@&ØDΧjQ¼Ã`Æ©|‡ýï®”VW¯k̓…6­ßroŠ‹Osx›yƒYPR“ÎÚ€gÇÙ7¾:‡¥»ÀšÛ`*Ó’]ÈÛ½RòU]fH1(yV˜ÐÀKµp.A’Pƒ³FÅFd©ÿOåàb CEpƒ4ùðØkuAÍ7¶!ÙVsâÁ×§®}w{Ó;“¾pôbX†ÌÑlPíþÄ•}LQŽ‹x2•êK²2Ö‡ ÛX$¬kTT¡Nøš/5ò¯nqŠ©âÌg5ĸ Šô _®ª¹Fйhùþ ¿ý 2b9¼'e²w¾±\Ìjˆ˜«®Û ɦêXGk˜º j¯òZÈ.[_ųc Á¤‰Ssfø˜ºín­h´ÖH ¡ŽöDØ6œ‹¥c8Ïs,\N­þÝ66©¬ý þÒÿN…¿øTæÇaZoKŠ)Qœ›#9ùjÆ'_¨`õöbY¬zÐÈr¿AWU¢RL .a‚ †ê®Ü”Û·»÷½#¤½Áhrâ¢|,þíË>/!o¨ ¯ŽÄ)³Änóé\e;Â\}‚†ü„›XíØ!Ū°DQZGV£•xs󮧂ʤ¤’m4PÁ7‰°+Ñm•¸,+[½µÕÌ·#‘aãþÿ»ÞY,ø8 3Ð:o'<ÏJGDˆݸ„(TØ4Üîwt·ßuËeu }5>JŒi·àïcìGûüwÚ—«rÍýÑ‹ f-v0© 陋ôaÅ%€aù…Z©Ä†½Z&¥ ëX@@KYm°í%ßí~.ï÷×ï{ÖÜ× “ÊX!lAs}b/f ‰êå2¿œÁ»Þ¹Î% †Çh\ ©n¹ y{}¬_¸\¨ÉÂÔ4:ÐèÌå³ Y&ôÔZì'(G²3xjµ¬rö5_!¦™@Xw¥îA”˜ */e‰,sR±šÙS0A³£Ñ橾]£JÔŠòaˆU¼ËÔº@G\½²ˆHuyHXâ”´Ñël Q¶&zQ“„ PÝ8ARo V:ú²'®¼d, £ô+K±üR¼HW×F®Ÿq:Øltª1Ç x=ÚüõðùUˆ úʳÂèÊ¡jPÕ¶œu@¸ñ-w‰jEV‚ÅKªJ“›È¡ t6¡@žZÙA°¾† žèÂïˆQ‰þƒ+Š6àï#lëo{Qƒè½MÌT.xÒȳ¸ŠJÖÄ6ÖMw‚—ÉyºÂ((a†QúÄ¥“{ jטýŠZ]…TÑ9˜¹[$›‰X£¦Êæg(yC^o…b½4,ŽÄI8ž¼Úz˜.²1ƪk BÕhtj´u~q5&FP¥8•D_Sõqb¥ÎÊ$çªFìFÞ‰Ÿ¹iY'Éâà‚ØBëVŸ—è¿âO!toŠ (PˆíšK¦áÒÀû¬XÌsÃ%¥H“ð¯Ë×SkŠ"ÉgV3b[Z{‰÷ÏfÀH¾õËš)¼³B ¯5 FPh”ù<¾]f—ËÚÂn×íÑÃkкy³ëÖ9H´”9³V f (†¸n¬…*Ø(„2sI~¦Ý•“¨±¤".pFñ$Ó‡OËWNœådÊC òð£Õ}'µÆë ‚R!±`·%ƒ¶2íB@™ãX‚kóFpÞ2ö!e¤E¥ Ð8þF»ÙÏv¾‹öaôPÑëÆ7¹-]f³Ìàå•–>aSýÞç ܶHOmt-s:”j·üC¤ì”¼&[·Z%yzl"^ƒNLé Ð,·¦§¯m÷6Àz­MD1–Ywq‘É6 åPƒ¼iûïËÍê‡C¿^®"yÄäEK¬6±ÄS‹Õ›¨0J¤ÆntðÍ£pc$¥ÆÆXÜRÉÖ‚ÂH4œ‰#=Êâø8-øŽºI6â’\ÊEâï0•Úýbb¸[ ’ZQÖ•í§ò(—GR%'®Zàz V{ï' ÝÇŠ·r\²„{ d„µûêH/ÍÌ„¨u±Õg œ&^éK\>ö>GdB0â•­NP^äµëCo´`Xë‹.¥ÔÙr¾•˜èl2H¢ìîäeðÒtx,։݆èêîn»×L¬´/Š˜º’6`’ó JúØejEko[$Û ï&KÖÙæ”õ^N‹õ\½³Éœö½»/ jméqæboQÍx²’8”\in­~sý†Ýšwvì­ Ù"ø:Êíwv¹Ìæ[²ÊÄÌ6ËéÉ3ðËÄOÞ8ñYÖ¶ÛÉlfz\Ns´ç~/€©Å“R¥aïLfãñLR¶.#Fr*qK16Âës°­ÁFµá»_L™ÄIšJµ½MÓE¦-¯rÍb© gÈ=ä¢]ãUœÞ ½yaRó§ÄáºgÇ“Cñ»mD‰S6„²Ë2‚Ãv«/AUV[*B–Êå£lw÷@ÅšDIÑèÔÃ3ùµKpÊÁ˦ø0J¾í,Ì… À sª6e3:)èÌÀtÏ>z ì”XsKzBýŽ&å“îåb«´‰µ½17`âc×»ò†öԽʭDN R3ò5Ñ®ö¥ä«ÃîfׯͮÀ•m!0²H™)ù|i6ùóR¸õ¯_¬O¾ jvêíîîöæC¯H([ˆPYôÐÖ²!ýVr—Bt &AYò3¯—gÅQ*KL CJ3-¨—&°Ñ¾‘«‹å‚fJ!N“)òOŸ5TǨCðÜ LSŸpVñ¢sT¥T»ÉpÒž¼J‚äbž±ãý‹2C†ÁE'ÆìL¯Ä2u!CLY»Æpž¬žI .“±³÷-ëâbvÕlJ¬D:É*¤4Æ*j<ã»F¹Ì!G  ¼ã·Aûc¤£ ˜btÉåÁÒëÆ,Ð9 ß"GV›cˆ<Ýé Ù9þåq“t;W`àb—ÌþÕä7ªÉoT“î©&{?{ø‡Ãîüî/ß¡M×à?y5/ÂMùéœ0ædgŸOóÿ‹Öñžóçwc+¹ea™lÕ–1¶že[s®Ö ªšÑç<Ì vÏñõ_Ç_îÕ=¥Öa”#ìŒì~c÷Ä‹Ê镨Òr8r{]¿k®½¼:¹»þùÃÝÛÝþðúþó×q¡&ïðêo»ýGºÉ‡W¾¹ûëÝçÿù§Ý!y¶þüæî¯:~úPÊ«×û#=áñ­¾þ—ÿù×ÿóo?¹ÊÄ”WYޮإþplaÆ«Gla:œ¦k“=:'àÏœÓ=jï´¨„¶'ta:h´îTÔ¾°ûû”aïo~ù­éÂ~,ËÍî¶iÞë/ÚýõÛç?ò•ìç÷»ý~#gØÓýz Ò0…QN÷™ÝíCæ®›‘Ã1fâïŸn¼÷VütÕ6oèSï¿>Ìþ¾ƒ`¸?*kû¬¸¿»¦›ÿ }øù§r×{ûl0ú O/áé1Ì6r\o>}ÿ&_âü–½qùSCgõÕ¥müü±ËGZœÚ´ö±!ifLš“6&lHÉÂ!YqHVuuCû7cIë{×t‰2ø7²ùKÆ}àÐÀË;âýîðÃ#Àþ;Ç yLJ^Ôð~×þøÕãË%¦ µŠ® Ì ´f(Ù&­H[ÛŠéÕ %ü;þЀÕ^%9‘ 5±L\Ö\ 7XÎ÷°Ø"Û†Td™*™¶†@ÇFÙaä¯ßÐ×P­'öhœ˜8¹%—˜¬w!kÔž9§Qòæ'Âèß3û­>×4:Úò±ô%.k`vª’mÂ.š›¾Ò…Œ`بH™Ú"ËW²ÚWª&’3¯,³@e‚ï‚*!†Ñ²îåuVhA‚•_&bU¼¬\_ªß§ki„ HÖ•£SÀ—WZkör*Y×蓯:v‘-¯µDÊÓA8ÕhcÛhy7ØP¶¶Î {å¹u–1„aÞºþZKT@beŒ bÖ|Ƀ½"+k,ªxÕaö!£\­k+-ïbr¼Gõ6_‹l$è=ðq£ø–Òè5²èR’K›mRƒ¢v®¡VÇÕÊaÔ9l4²ëC¸Ø ETyáF/±Ð¬‰gQѬÚ‰ÑYOdw ˆµÑFÐtnöiãkíóÈÇ@-rí8ˆØ/¬>yBHZG¥ òVë½:Ì) ¾,#gK‚aÜú^—Œ„žYCmo6š@Ï‘¾JÃÆxWç4$Ÿó³ÖYæU* aMÈ%"™6:».´âL@“r" Gx•Š ÅŠ*_f_Å:+¢!­k΂ôˆ«é´ì—ì‰>»Âa‡5¹¢Ep%vŠ'½Õ ©.',Õ¢—+ÌêÈ2OE¨!’Ñ@ÊSœB+¤áL{žB©èÊ(‘À‰àÕ6KÇÑW«<6+ãÄáçÒ_®5÷Dî%j1éŠ‹ÂØxë²™´í¸ðƒÈ¹MÕ´‰IÓÂûÜ›àÑ‚E#þÎØ2›ó{Iœ™/:xéTî¯Âïû°À2‰¡lCÌÐÙ&ø"qdëENZ/ºžt—F$ˆ¡Ó^q•(Ÿ]²“šq‰e_t„£EŠAY97¤/iS(LÔÆ£üetÀÝSÑ«møÚ*g3 û ªÒï-Èѳ*ET¦ŒÎ/:•»0¼6zmYp¸wl!Ì^q‘_:Ÿ5¹$š« †ù%Ö†[‚Ë.´YF.hÐyÒ|6G—âR®Ñ¦PUÒ£³(ÏVéOý¤f²R¥Š%`˜5ŠC<‘ÿ—½kÙ±#G®{…V†½7ƒïÀx5›ïü€wÉJ…V=\yÐ_ïàU—T·Š™IRUƒî Ѓ‚JâÍË$#Î!#ÎAg‹•ÿ5ü'áÚŽE%c1:`ÃÊÏÞ}vŽÂµäåhÓŠF5óÏ>bã¸Ì%f[r):ÏgKo…À¾_<7õçQuЧão¸Ø²QIh0Ší¨ÖùÓwlÒ’• ಯ.°°ôÉÛ#C×fí¦Š¦XÛñüè›öZØÎ M*Iæ`›ã²Â\4b±+otW„5…ˆ,tÙÈM&ës}ÐË›«zA¬yÞ,ó/LwíïŠz²’ø¢K0§Qç†óØÓû“0æšloÔE—2[¤pè;šPÂÙXR³iûÛð|ùêçÞ0Üë²ÐQ'1öuÀŽÀ´r;P Eû2 úöÍݽ@=mBuÎû: õìP xð1Kl€`L™<Àß“OÖ¨²„…£·q’%l«%)ã›[§Ð €§û±6ô¯Ý~ðw*ãsû[kþ¡¾3ñþíîO¿œ9Ÿí~;ò;¯¨(³];þCæKkÎÝíÛ·æ(#ù¢*Ƙuð†¹°n=’`Ív^S %†r0¿w93%ã‚èö´ýǰF~ó¤ýGþÈ)óâõÚÚ„ž­öN§ä“~HÁ\þô좞i¾®à¥ý„uwXÿº9ó7Ó;ù¾êçfÉîí›Çgô•HUròI§*:€fO¤›¸ªÍ·ãóÿðÕ»ÇÞµñÖȳÈÜ¢aæ&ݦÏ·÷éÓÅ/§=/qñ??^Ü=þÅ’®Þe~'+ŸÞe¡»ïÒÝ©iŸ®/ÓÅ•z÷Oÿø¿×÷”V_~úçStO-ÈÿÃÃÕ°pYBä_û›ÿõø7 ~¿¿VL >>‹ÅžZ<‹ÅZytzÏbqDµÇ§±8zåÁèƒVÌ/ëö§o‹ûi,þòË¿åfÌéò’oÍb+æ³éú®6Lõ(ÌåtT/ƒ÷Lf_Vq›òyq@±è#U\?ãá3ÓAаC(ñTÀ꡾ŠÐº3J³ãhjáF{,¢½&“5•¬rŠ'Էι% X+èÛ'S=úë¾n»V²–u´Žs²+2Ô[Í–ÖW¹È¨˜ÝÄÈcwΗHD .¬ºF-¼Ô-ÅÌ*zd«R¨V—L¼m§Zœ±F ¥FoM;ý:é)8¢.³2uÁš¯ß”Á¶2.² çïvEб[+´#Fª”<•†ŸÜF›{Á…tÎ%# Gå€<äŠää™›9n9ÓÂð›}L,‰³uG›Ñ¯ØÄ IäBŒ•*YpÐDlFÍÅ6‹æ«¥BÕxL{™Cè ÄHÅGU¡Ð£÷M·IÈ[,ÞÚÇÁ¦×s+Q™¦±cå£Ê ût°Ñ^…TSJ#Ëg6¤_Ü¥÷ÝÚmô^f]Eù.‹ÉºÛ®ê°¡elÒŒ¿ÖÓ˜»©°£%=+.'¨Ï3²o2–„ ;±IvëŒké€õoM$¥¹ Küˆ>ûkÔ,¸&ÇÚÊ?%þâ\*Úm“RVÊ:YÊ¿æþSèê w ª j,cêÑ7ZÝd[ÉËT&iÙ5“è¼Ûc‹Ê!øÌsG;ñ ycÒ)¸¦€Â®ÎV™‚šú-é-+S€d ®ý´\ܪíR X¡±VpŽÖï›Ý¥\\ɪÕÙCo°££ªM‘ƒ kŒ h«ŠÆNœûìÖ‹ÃIÊ*çŒ2'afº÷êï¼'/ë׃lŽ`fŽÀN“‘®n¯ú ·„šÁÛÛá¶ÒÑÿݹ¿•ÐÝÒŠΑ8WH·ªÖãÝS,=+`ú¨ÆgÙß1ëDn†yèÛ aAßµ–ÔúB²Ài¸C ¬¬d‚¨gÎ;¾„5ÅXºî™ªVŒÑ©š…Ëfz…Gmk ÚX|"bfYèv%­ËÎLXBa6\¨í@&ÑŽÖÉ~µÞi1@Ù´3œ ïÍžâõ­ Ohi·VkÃ92%&ƒ®]É#øæåý6ЛU!ZŸ“{ʈ~´cìyäíkðÈW05´YWfT†âqæû]®¦*-+%£Vª,@ïÓ½°½8.‰˜3±J˜d±¨‰Þî'ö.1RÑŽG볿ÅÚ~gEÒJ’pZ™\vгEQ8`²ÎƒU£­ÚóʧjuOÆ´–ŸaE¾ﱤîyunÞɆCSÑu%½¾ÌçÍ9G­«ÐÁµ(?{¤|Ôú(^H¶š-+†ý¤EñHSku¹¡X-ä/OÁØ ½Í6é}V%½»G×U Én"!^¾é çí}÷œ ¡- ©T¯ƒÐÊÙ½¿Óû1 I.+ð<Ú8¿µOïR’½ÒMtÙ׆j››ºKjâsúíÛ†P ,T)D¨zTÖçŒHõFµQeP²‰ä-. õî§R,¥nÌ>ljqßLâÛMnWº ç­Uq{iówñ»Í÷ªH|ò²âj¥8‹Òº|R€_I¬1±5f/ÄêC=cM@å=:rºÖïºÙÒ~Íš*4QÖ¤ÛQÆÂg´œ“>}¸îÊQåv#¤­+ÔDFÏwwÝ;tÉhÎÆÐL˜ –™óÀ¯wƒò½‘Ù¥j£Ê55G§ù¼Ö{Ÿ–R¨ì¡šv\°ò>/%¿§Ûò°¦XaV‚Ÿ9®S¬Kè¸`M‚Q$M’õ JNº$CÙ 0™Øý}ªšc¨”J|Rò ¦:üúæS¯$'Öh!dUMÕ ÛNÑEó$¶È9g;ªúìPº·9{‡F*GÕѶ²ð†´/HÜ*íòž€˜ÌE;RÚEbŸ´: ¨æN 7õ»Š¬@+€M(¬)£" /ë¶eïªq‘M)ÅÈ–ZAœ÷².ùóEé+Ó™êdµÈº±’ùž?ñÍÇë«~œ.L£’¼Ébdɯ”Ew«S¼Ó­nÞež¹«>#G}ðR€9)ÐY'`TÐø1ˆo‹WËÚ»J& +u§†ÛÒ?àÓ2YǤ-5Çìbç+S©j KpÌô¥®Q©˜!²Ö²oŸ³­Ç"k¯+Ë0(yöQ)Ë—Ñöî¢[Z—ÍòÀØŠ¦¦J˜< X€HBÓYi?C_Y×yƒÎõò¥8••¬o8­×aî+9, dû³I>X3q®xl¨#'T µ‹ 4cŽ)îu7]'.¥¨=K¨Ÿ™OÜ-‹ą̈MZ}nÆos'¸·Ìß®?]÷w}…";‡˜gºÀŽ]%\¶CñFHhruîtxG_œ›ºi³§TTX¡å-:md‡ª¸= zr\Wòå®'@@ŒŽÚrTÎŽj×­l댵ÖmTªdµ7¸€SFÝO¼']JV:{޾.d‹mcZß_¢*†â̡ř‡8G‚'´³ÅùQº§÷ÚBsd Ø _ Š‚h7àlõJ‡Ð<ÌR®~TSò|ÅlêÆ ¢ˆƒVØvVn.^ת²WmSîú­4MßÜ@Ö™C¡ùÒâÙÇ,¼*sjÒØBõãBÏð±%¢É¡ q«ªéÅ‚Ýnöl•Ë­cÑxd3¶7[Ë|gÇüP¦ù´9eº§3ýçGù—Óž&ù$ó ‘þПK¯®?÷ßo¨xûLâîß¹LÝɱ_w\wè¿®Â]o#Þ껼¾ýƒìþ&är÷òKè9ÜÍ_I·wm¯½|Ž£Ðõ@üù心CîOŸ/u÷{ËGš—3ý*ê~éJ’ü})ûýªpØSºpÑ¿¹v$%Zcr¶ÓkB«—Ôª¯È„ kGýǽ€¶tKò~8‰ó]?Ü¿kò|'aŸ›Vî<®ø×F½{õç£Q‡ZO_h=yûü<×zÒ>ïÝ™ÖSÐàA©3ݽèÂS¿ŽÖS[e?/ƧòEí×ËZOé“dõë«‹E±§ÎŒ}—àÓ£ZŸ üYÌþ×>´ÜŽ®ÛÚ©›ÿfín#òG¹è¶ß7½°/þ¾Ü<´ÿêm·ú±FVìŠoªãg}ªF+Z…¹b|Ê9ƒ×³þ2ìÉSc@U[©áÚô¥5ÀU ˆ!(?zð5gar44%ÀZâèiàóçß+ä6­–X²Nójiôîî…G·R’â|NøU­M}Á¤($Ï–¡ÌzY ö+ª¼ªK»´b½ðB7ËvL–u®Æp뵚õ ¬  æã˜”.`Bke_û½ëMU6£•É1¾¦Qa’ûSôœKD¯Q’ø¬ýé@á‘Ó Aa³ýâZüb¤Ùi”ÉhÆN˜5ßݯJ© MÂ:Õ£7o/Œî6jÖ¡6-‚š‚:5/Ú[¿•œÕ°?[—3;ï\ˆXW-´7.V%ªIà¬Î©âk¥%_¤;—½“ÈC5œuI} A«¡ó°ë%™g¥¬`{$ZÅ ;Å8¤C¦R)WK°”ÊU݂͒jrnÕ‰³ö¯{-¬²x²ÆÂ€jX[·ú²+É;T.Éj¥aÒ™j[^D·ís–b;ù {TïS[jÌV ÊœFÛ6`…2T´Ž$-Æü’kWúÐ•Ó ©Ý>ƒ’ðãuíXx9:ßïj ¼gÛ<Ç¢qžGõB^0ó®Xšî#øµ¤h!ÚÑJôc悬k*Y§Ü"9¼×e2²¢l\[ü“~`GÊ!Bö•C×ÂülÞ¿Þ *ÇœšÆ&y€Y×½·r÷mLQJøU-;hT,ãe‚9(¿®& —ö’͸Á”I=Ðò% DH: ‘iͧx§[M€•õYÒ#aÁ-¦Ç>óRMY= ­IÏòîËÊ™&[tŒ­±‰ëäÛ"œm1K©Á=ï·û‚Cµr Ô¤yTñçù3o6¨¶¡zV…M£Ñ‹Ó½u c, Ž>‘Œa´¦‹6º¨x…¦Y¸æfç:¹Ð7õ<­óFq“V1ůÆz,/«ÛLˆeãèø-¬qØz Xµ¦£ÉçÞÓ´ÝÄž³¬™gaý›éC½„‰šZF/Ÿ|Z©V'K±Îþ7“qê0n©ß[ Þ(ʼn?a¿ØEe8Q(É£õYýÜ´Ñ1lMö¼-I*®d§~·°Ðem¡5| ‚ó“oöÁ0ÉC¢†ÒÈÚÿ³wn½qåFϧèÇ Åk‘@^ Éd÷Ù ‹Å±6–eHòäòé·([v·š<ÍCÉžÍÎ`hxNóu!«~Ü›v~¹ ë6×QðX倱Xžå8õVͰ‰Âš"sµ†X\úN² ГÀr‘P­­fï‘ý“»ÃžUˆ¤Rë‹1ŠÑî•]¿\ßmñ¾}ÞgkXÏÃâí6íêŵšà«mš¿³EòOÒýN¡É‚/¤Á¢ükçôLt%É|rCŸj]ШÅÕ¹ãv­{Ÿæ¯YŒo.5‚—´©2O•Ä<̲œ»q}o‘†Öó¨U ²ô^×µ]dí-¦TL!±ûÅî=Mžl±v Ae¤ØfïuöÆ*ZqŽÆbë¢Qnïó~Ëh±h©f£=p˜í«<[¡ƒ{~-‘=¶h;ÛµuòÖ€Ct®0bcÇׄ‹¯þòÀ³ã÷ß ÎÃÚ£W&·Æ+·3·µÉ›jk &Šu– Õ½|ßÀ4:°Ne+)fPö9g¼} jÙ´ª¤œÏ(Bá(|n5BPªèÅìj¬‡TØsuI‡ìv.›€jW)K:ÕS³l«ÈqD¥ŒW¤}0@,€_б%ÙZo´V ·¬#å½àdϺä$ OvúÝ!^ÚúªŠ7’!"³8ãÓ¹¯‚F;ûªÝz‰ÏŒ³^¦:äÕî2«PLYöMŽÁ¦Zñ!Ï Ã2jÏÈU¥Y‚æøwl‰KʲÔDE+à8Ë-!Ì5 (ÂìsÐiñ“Ï)Ö•À%š"É‘á½ÇUc”ñY2#G”Y¬‡›í"T¹Åê²Glj$ÕgÅo¨cʞѰÁÕ2Å-ugÅô ºº–`.ž ËE­eï²8¹ E&ká¤`+&•ÄµÕ 0f‹.æ…èh ¨%È-J ¸‹ÄeoõÍÙÊïªæ\‘³r¼$m(Ò±r $5k¥Þ/ßµ™ÍFJqo>ê ™õÅ^ÚÄÕ°Ä¥^Ûʬ†èÙày*À° $Vù°zw‘LÉ1¸š´X=ã<ͲhΫ¸6w„ðâ%X‘F«šElv?ôˆ©“´vò%¢ŠM£mÓ{rµ9–7Ò)ËäP©b‹ä9;?õP8¤6¦sã$LUÀ组nUm4,pFU$“}îB³%¬«’Å[ÚµF™ìŽíº‚a“¿³„ºR ˆ!ñ,¾â¼úx,ZJ5ÁYN¶È¾[*OØPžT¦1Ô°HÐÇþ­Õ“Ž„›J–¬H^mv»¯fzNÌhÇ&{eY‘l6gíSúðñM9•š¢-§`“Z»&hsEwV›žÍ¨ÕĬµ,¥†YíáØB‹šZÁbÐÞY.³’2'Æuº(‰Š¨ !’ì†Eó1’àÖ¶b¥X$7lµL«7Ùc™l`Hò£$~xVÝiTóÒW)às þÓE‰îVëjºxWò›ïR ¯Õ¬ìíÙ­ùñ¼²¥0h’ΫáÅX€Ãe£Pþ)Áqn«iôŒŽ“U:$RØÎöž¶ÍàY²¤ à­ä¼:ëÅ­0PôK6[†j¨Z”œ}©n[ QI¨åPEÏ kœVvôœkœ—ZkQ2'ðŒÓ»1×k@mœf‹‘0.>cAªK´²õ¹†ºû¤ª·T·dÅLdÙ×’U•J³…ÛñÒàtÕ7IÁBJ%K©ðbj»©ï«n‡ ­$Ï:Çkµœút’1HØ×ýQšÕc†«@¦ÉE .4ñ™ES>'§³k±,I€@®ìM¾úòº´cÅâQ%äß{ Y<3CÓ_PlË|ñKät×[©I7Ý3Õê "ä½Õ„ZYhÄ5Ä’–ġΊhl¯¾¢îu€–õŸ=‹7BEhó“c32ªPåZÖ¼1¼£mo×£Í%Ž»Z¥Kæ¸~*ÓÛcE‹aƒnw‹Aýe¾n` á+¤`Z«Ñú^îg¢U²,L­ª16!¶gå¼›ºÖ$–Rkƒˆ’òâÎ {aÖäy…j/'É> ŠT$y¨âáv:ò™Ë®TÑÇgd¡íã¾I×·©t ñÙºÂÅ5í>àݹáç Ün¯3¦éUEò že'†w“Þsµ–S&¥Áíí£þjüÉ­=0‚juøÑFIDU(<+æwzÛísÔ$Ë/È(ÖûY…‚Cdׂî M*…ÙªÅ[ú±&®¡T¡IŒô‰÷6>Eá½ Ê¡ftÉ¥*inyNõs_õÔ¦$ùƒSâÑ´§³v±©•e‚z“aIµVû.À5’¦W\êj‘ÿ‹2Q*ÈäàÌÓöÁo¿>vîL`zqLàg†ßþuRÅ2¶û? ñ“ŸA¯în^ùï~ý·ùJBà³×{òÝ'ƒò³§ß½Oü“‘ïØ-ñ‰ÉΖFüMˆErŸ¬AÒýˆÐÐ+é:E¾ûóÃïy€Ò¾ÿýýð¾%‚󈻫»G´ÝÝÇÿõîðáýáþæàíŸþp¸©‡ëtõîpÍ×7·ÿ|uøûÃã69|ÿæŸwW”Þþê÷¥´ ~õî‡ÃÿqÏïÚ|ݾ“×ùõosEoç[>\Ézlœ5.ß÷þ ¾—Ez%sõýíͯd­ŒssûêߥפýNYzâQ®tÆÒ MÔ',=Æ»¨½>‚é)¥üÉñÌ%šž,îŸIïÒ»Dü·EÞ“Éz!ˆž÷§ì¬ßõC²±¡n¯õMz¯ï®ßÛ?Í…¥ùêùë¹Y~ÈÎÜP,!¡-’é†T˜ÌCÛs.Ý`,’÷8<‰h#  àñLm\g(h5V9Ï^#þãÕí}÷Œ¤É´çt“…²˜&Oœ‡Þ¬¸ªBhU)•X‘Ÿ<Ìú2×›×pT².%TDEy¶ þñ}ÇÊ[¥E°11y¶´ûd¿ ­*çhX œ1a¶Îz䆵¡65m\`Î<«ýeÖ71i -«j¢’™ã4Ã7•‹E>4Tà‚œ«xÐj«³«¦8Uã?± ñƒR)ù NÈzdze'æpx¦j3°f£}YW³*"ŸË¸ZRBó¨­Ï*ûXuܱ\¶¹ TŠŽ²wÎÇ<[jvêæ¿1î©wë^¶øFJ‘Õ‘ªµ³8ÆÑBì­t*FlMU®jïfkTÐʃ%˜È1 V³rOö~Ï-1âÎ?æ¸ôQ;J•Ýo©Ìßµ'ŒÑdès®ÀVL¡˜“Ùž ã· ’}ÔdûRÓt'Âã^¶ýòžªËúÃîè^Ak•äÓ5—ÀÌâÚßýâÕ†xeRÑar6€Dóÿ4¥êt^.`Âb‰Î$YÙ…À¡]°ÜsŠuаdÔ4+ÙöenwN–ÖÝ+¿ƒå7äÒŸ ~ ròP]£ÖE"ºÙ{±ãÁõZ 6›¢[^;«n|¾ê·øi.1k AbŠìò,7ýÉ»Kαmr­ r6‹Àê$Y/‡ð9ñ/M×ùhu{ÆÅ5V¬ µ]Ií/˜mT¡‰k#J4„³äëãôºÕ³“=9¥ý,åp¼ÿû}ØX@ºÅàÞ~®˜OB/ejkb €,„^ãþuo9*±ð,ËÜ,²þdìqw?ÄÒN*|ëÔqdy6A]ÆgT>KbTK„ìv|â¯Ôic_†é`„ä Yr¶¤0ÛOyŸ÷ÙýbÍc¨>™Æöаkï_D܈٢ÖbÜCšå!¥þ[б$~ZI*-Óî5ïÍý7àÁ*|7IàÓt{æééî|ä,;‹Ñ‚Q³àÚÓéèw ymà‡³!¿#fœi2Kˆ$‘ÇYÏBõ>-‘>P+ƒlÙÚÁưc9_Ú›$›/ #¥ü‚izyêË—¿\•¥$۔؊t´ÑήŸ?`ÐÛ¬=AI”$¨ÅÍ6ßE£ê®h¬ò IäüB´!ýŒYÉG­*4=âÙ¾»~€8nå”gÈÇ•ÔÙ‰äfQJ§;th. IcSx!Ã8 Ô|z04ìeÌ&[罡¶³¢— ªzJÎT‰Ÿª\òlåòyê?äd±GJ ªÒÕ‹?Z˜œn·š¥Ì ]ea©a‡5¸ Í.&À$•ÄUxUfiÞ_Jù‘QÁ'F¶•Sì8ªó7dJmÐ8A²r‹2×+ö°U6Ø É³7û-ãfmuÖ¡…Ö5ªî9ÑšhÈd«}Ê$ëÚIê2Û\ý8ë}–¼5*Ér³Ð„VÜlöã ÈW!|Ò.ÈIheP-)C™n5,•næãUM.xC³€ýSë:ljö¬*&ª23â™g[¿â)¾ˆK“É0º*Z°©ý†“ØÄ¦$ÏQ¬Ô W¬ÝEÂ&©IrÕ½Û¶˜ìîùUR²¬s°:išíß{š  ™ª9˜¬5âëK$½ë\èA Yâ:WcM `G¾Ý¢$f¤dz°@i¥2`¦ÉJbg%Ô¾XÜó” Ô£$•ãIÓl×õÓÂq»,ä Ù‰DÎUÖbœ…öü”«R¨ò,ÙUhסüvÃAk`”¤^â·œPí9";Î*Fšˆ!3FMuAáÎTv G€ ¹wP]ÀÙîá“S²M‘EôÎäÊÆ¨vذ!CÏQIVV ’…âaÏ<Ì!NhKT]4üþྫª ¬¶‘Šn•÷”Lìe›ù–’kDaG4…‘£ë€Œö>ȇ]9bÚîf7'§„‘Éç¼c½¼0Hè¬bj¬•G­‰£µâž5>%$E .®ĽĴ\é o¹3‘m7ù Cá•“ì‹J^ŽÅÍÕÃJÈúì £%¡¾Æ=÷c“]”…J”|›1P ;+?¾R;Ù³T1 + QùW =õ@CÔ$T¢ Uª¸çô`KϬ(ÍÎC‘P%zž¥dœ¸ã>=šHvŒ‹’%'¨f–ïüt‰lrÍs!%iŠ2.bL æpC亩û8Èâ袌Ÿwlü1Û¹õ+¢8·êÅKÜëÞz^vv@ÀÔF„•à :½O¢SUû*¶{÷‚X¥\ŇÆ=Ì”v†RÛ¨‰âLqd=;I2k^¬êc‰”ì: ÅÖc‰³†§cÔMT¬>´Í]TŠyÅV¡…œXëTÈTì¬ÃÙ½w_/U—ä,ªÌÕ“³yaðIüM«6±gÑö¸âK©Új•Ä‘¡,Ë#0¨˜äm#°´wEÊc=,` Z7˜H­h÷ôæµ4t¤ÊIGÚSXø’8™Ó±­(â­-$y¤mÝ/aOuÁ—šbqå÷o^ÿÐ×ø4Ù+K†-°.+ÅÅäW(6Ĭ“ J¯dPsœâÕ#«&7©Å¯¯|†-i42ýFWmIE³ó|K_Ï‹ýNв.}Ýù'ÅÝÂ(‰rœi øXaÏæcæ3‰ó•h¯è³Û±"¾Þ«`V1@ò˜ô,¯ôäÊ¿o)âÉ-JRQž%|x¤ù-)øv@’‹Ã”—Vô*Ñ• ñ#eŽèfy€ãû‘îÕ_Ë4¬„ ­d ì½ØÙ:ådpçPV^²záø¡Ÿù: 'Ó„.N+à ŽK­’»»Æ·ƒêŒá@Š[œ쪶¹4–/|Ö{~ËïßܼëEkQekŽ“õØ íÚ1ãHÄȕش³Ôÿ“D²K@’!½dÕÑ@r&ÍêA}Úž/ l”mö5#rjš ÷ nå²kCç…²S¦¯%êA3+$svFº¡…C¨[‘œo§%^r’µ×h@M6ûh*»XyOiû”˜ Dj½lÑçP‚ßsyþÕ8M'iÃ!ol–¸!W Žíéª8‰äÝëýu·SÓy%u•«†vø¤*ªŽl47Á3¥”ßS\ùÒD©/cŽ/ÓÚé+EbV ©=µþÇ©å@)Á(b.hè”VJ¶7UŒœ¤zh¸JÚ—yÏú¾$ÑàKmU¶¶Ðeoó÷eeâB ;êÊù×¶Ti®^IÑ’“•xy5¾ß¢!6b§ÅP =Ϊ=NÒHÞIS« '’…žö7>¶"ƒ>toéÞ ›ŒaÇJÊŸRuòŽdÕd˜VšZú(?ùxh‹ø4f[A-\ç¾(ìü´§O]K®€U×%IìŠ]H.©B’H!8ös;²ñ+:+ìjÙÌÓ~¡–]ú±ÿŸ¨eù×uê¾¹ý¼QºCÿäÐ2I®ÓíõÍíoeÓ6ÒÝùЯ.nÂσ¤Û»¶EÎßãRý¡ðçÿŸºØ2ýöÇkÝýÝòÈKÏüfÀ¶÷Ó ç|~^ø·Â5}x{ÿ“!à¤È‘œ6ÈöÆ<œ„Z#ÔÒ.!µöÕO!àþë þz/Ñhº-‡??üÀƒÌè!ßÜ¿9ü÷»«ÏXµƒüÍá?åwý§´­»y^Üîêã³þöäYž>ëúôYwŸõïHw3ø”îæâqpxFwó­~LÐÝmðÁÇ#¸[#À…p|öx‰íöiåþœøn²ÙÊÕ"Ý­3]/Dx‹NÝq?|ÛàÇWû¶”·tÿæ­ÈKVXöÓÄ_Õ·÷sõúòiÒã^L_óÕepu+¹©{}s{uù‡ŠY¹¿úpùÏnî^_åëË7AÏ{=ù73ûðg—¦u–è÷Ûiôß§¾«LC!+ž ÄV#ë&!Ÿô-0}g¿ª çU"ð¥íÕäñÄÿ²wmË‘ÜÈõ_ÑO»«™¸í:Þ°ìð†­°ÃÒ>Oà:¤E²'ØÍ¹ü½3»ÙT³‰ªB9š‰|‘†ìFU¡€Ì“‰ÌsN‡Î©u!5ˆš|’ÎZazO~Ú/cŠ‹QICžÎÅ\Jtªt–qž^«MãTÕ:äã7rgªï0öHå3èBN¬ñU{ þOòÔÙdð¶Ú ¢Õ½½Ù‡o/~i‚ :ðQ+)¢ÓÙg#p©ƒ ,Š^-˜ã9oSÕëÁDƒ j¯¬ÀétÚ‡èd´WÖ$}g…ÀØ‚$Ãè’äú_T5 Ñ™Ø>½ÔHY&Ÿ«ªlö¡»aáôCt•Qʈµ–dJè-©?}€e½c‰äîz{åOoònz·Ù¨ŒLnZ—=ÀüÆèF{Ÿ3ù–^R‚Ö+mî'tÞ* ã(½ë-s?üs1µÚÊуn!aæg=JÛ+k>¶ËJ:T•ZºˆL_«K¯^Þñ³ ž`HÁùuÉÞPÊÂÍ5P¡“.%T­E2µÎ5û“m L¨l<…Æ:s‘~ò¹ÓoiÒÜ2¥sÌ.(šù™“ÓWþçk]Þ¯«\ó»dŽFiRÔYˆ´kŠ ©—ÿ«é~Û5†Æ«RÈJðW´ïe¨†Ñcu†2JÆ’ÓUoÒØµÚͲ RІëœ±¨—]g¸H:*PÖÎÊyì-GzdùJŒ]JBÕ, yeÛ­™ûÈ9 ÔS€¤ctf$é-ai{‡Aþ‡$‚‹ƒK…¬io§Hë ö{%£R©bV¨ò\/7Ýà´uеÔFëØ[·ÑÜxÓšŽ’V*ÈÖFSôÌ}ñÜ,‹§Ï0ÒùR…Ó.å‚‘F÷jó¶Óp³”J£e>Bg:ç™­¬s‚¥P¼æ ü3笋¶ÇeƒÅ%Xpz[?—h6«»Œ’×5f ¾ÐâIÚceékDU”¹F'Uàe–^œ©Ì>¿4Êìë*:nÅûMïL 8,ÕFq¦ó±0œ1½•*í',ÏòÜÔoj1®9è-ö>~ (É›¸›fްðîŸòòQ öÜ´—í}Ûäà ˜…SÞU‚õET§OÐfÍšåpΘ.tù£„¦‘¢EÒ^ù½Dæm6 ¥”tœ4³(Mν Ü·À±¯fP¯«ôšü&εüDº*ë“6„ì3·'=!8©%Æ,+Fò5ÞCsþXŸ®!˜]DR^“­PssÈm!ÌùCÐQ&ÉMÎõÇÐn óŒqÆH´ÈœÊ°4³6J`â¹Q%Ì.‘-Zjî†I² BC*½Ü¡-Ü5̧ @¾(]‹M3Ÿ`”³k¦À@`µHQ‰|§*Œ•ª’"fgœ.µö66¦4íÜÞÖF¢} >H^ëäo®Î±î^<-®z´…åP–ZÑñ¾Èj¬ŒàLÅDÐ}n⢣›É_tŠAN¾»Yý±Ä -Ÿb€Þou(a®ñd2õ…¦#“ûR *ô¢·lÏ@Ÿ¼ÎÅ Ð;ç$z»vç‹Ú5Í"+'Ѐ"„%)ŒY¾8Ûmí@‘6Ýy- ¢$¿|Ñ´ÓâFUJJ „.½$GÍp²Ù)IfG;ð^—(Â̹ñXE¦â‚KµšJc/Mk–ðWBåÎ2'„VÁÛ…VáùÉpW˜&½.|¬Z}¤EÄ8zaBe¤Ó®PL]%Å`EÙ„çmöǹÑSH¥B¤%´0ýЧb„ƺŽ\:J©ëÂkrÃdEx“&ªZæT›k˜;x‘ÀgAˆ˜¬š›²f40´îeñ@`I½4+æfJ5 ™AÔÊ „@½xŠm“Ö ² ^9 > 'Ÿ4þ°m1ŸM ܼ¦—u¿e©ðƒ'G)2CQŒ[|:Ú£° £¥bFSȯá¢#–¡~eŸ…Œ>ëä(rí¥¸~ìYíÉ1Í®YêÔ­V4ViÊ5È2k5ëI3_ôg£§}d¶˜“èJÂq:ˆÐKËôø òÈZRfˆ¨"éÅåTM‚] É!˜Äl‹žùr‰"Ph¯’t«"0·M èˆâbpd ësÙ‡Xcò–è“*BŒÆF»ôÜr²ŸÜ*íÉí' š(žY *¦éñ¤…"z­¥0Ù‡…ùõ1ÖЪ2k—’=JÕç¹i)¦UDŒ¹:>Ô€^ÊŠ‡à®5l¶ºÒE³×Y¸ÞFä£-0BÊn“—ÙÅ’Uàâ§…9š¦p-“ŽU‚BÐ !u»eÓSìë1xå½ðÁ,ô¿|–„OlHä}AÒ4-;úô‡$ áÓ§ªf©ÓÙoºÍ[FUU;¹—¼ùä$½ÅõMˆi›3Hr^¦W[³±a[ Ç€JŠÀBœ›gN¡ Šóœ‹®ª:s£>3·êãœù°® 滑Ù(Í¥ùIÀ43BP$ïmÊAÁÜcí.Ò†bCfÉÂ'½¬ac'ÎC^Øh‚eU-bŒKSÅãDɸ@à-Kã–zâæŽ˜lA.£ÀÕ,4¤cbHƒ¨rÚB¿Öæ¬iT‰¥VèeºjÆ2Ã2w`9d]k@^· ,ÝÙ»&"sE„ÕÖ©>?[í‘Á¢ Ú–œ ?dž[nßC9bÍ5h#œ÷jÙ![Û `©°:´ üâ„\»¶I$æ`¶RVÑôŠ= ¤¶™ÒB.¥- Ïsˆ ÁÃ8I¸@¸³­œSì¥3k†¿mSë• ÕîDRõ ­ç4¹‰“5J[³­äœu¯ÖÛ)L™ l/7CVʪګ­Ý¨¶’y/*y -BÒÆÚ…Éû6™Ðª"m‚«uîÁÀ¨{N4!%ëR°ÄÜ«ëÞŒ‹F8 [¶PASÌM^òIõGSÚJ¢mCø¢ ˆefêlšÅ)NÌÑ*"übænì{“÷f½=o.ÔÂd§IÄl\ɱW±¤]h3(œ)2‹‘6]2JÀÜx{"9JHUxŸ“ŒôaîIÇý½kž&iM@D•#ÁG³Ð~ß6Ùî‹,ìrh­Ò~8sõ<' oË q°n+„®(Jàì\#:,  ¦˜‚È™`½G„»í ØH“¤²†…‡åÃMŸÊB‹ÑI±´Xðlpoƒ®Æö Ú[diB1YI•$½\„¹=vôhFYï£`’bEXwA)Á¤Æ½¬LÔ®µ ´»ÌR=À&ìtÕ)i›)hå·¼´ä¥y<‚ªÐMgíCçÍü™¹@ÁÃAPYy\ï’Ü©Ô-B$z@Úð‰[[“ûKPkh‚œ´äÑC(±.­aO‹¡ïiÁ$rTõiÇC¢&®%¶äƒ7s&„—½7%&kgÒåZcóñf®:~2³p>Ÿéøçcîl%cÚRî" grU¼âÑ<­›kc/Þoß·< a©´·ÅY!{ISåLšymg’ñÊÇšêì—66[·(V„”¥¶Š~B/ÁéhÎ|D䫤·P+j!Õ²öÀ Z_K“ÉWN!º´$¯4BHT‚€Eƒð†ŒÝÌÀnXÞFp—`›5Ü¡\–¼?+­åãc嶬¯Å,2S©ú*tZ€FŠßjHš¼J¤(C§âÔ±§)_x-{®öÂk9õ°/¼–«^Ëÿi^Ë;[ÚËmùB[vò±Ú²Ã^_H[öû"<Ý|bŽÏÝoþõØNS^Ë )85Êt˜t-Iš˜ƒr ëP “íô?w´úñÓU\_®îÐÁfõGšð»;ßü©—Íôn¬Ín¬ÍŸW›Ût¾ ›U½½NÛݰÌbú>Ü\„H~àÏ«sòÉ«»Ëœ]\ï_#¶Û@7ŸWÛõj{^®^­~:¿ØAWd2·á‚ÆÛ2êþÖw{Æü©ÛǼªÌ“ú÷={èÅõ[úÄÑx±Ð—xØ«w»¿î¿²Ú¯ºÍj}»Ý±Y­+|v÷×=ÕåjKñø*ä¼9¹“ÕñíŸcSC¾:ûánìÛsìË)\¯Ö×—Ÿè>W;ˆ˜W<$ÝIùÒöp·‡¯ò|8¿ ¹§|Z}(÷Vò«Õñuï.z6tÑ_®wqMOpÅ“tSYƒÃ¤òë%Oò–þ{F¾ç0E‡5°Ú— ÑñÓî÷w·º{ñéœÉ@óáÝÞAú³@—›õ5¯‘ÕeyO§AwÕv WémÑlå5=Âõz»z{nÂõ–^Áö…wíf¡³XoòÎÂþNü„ÅÓ0^=¨œ;ñZ Ö‡P<…²è ýëëp ›%§#ÆýÅ~5¿~°êÆþïKü¡¬oÄg„ËxAˆk©ÐÎãI{†ŒtÊᲘþ׬/?¾áÉëúÔäñÇÝÇðy³ sk È•}«Çõ÷9‚›íE¸üŠÜhEüücÙ¶nŸœ„xÉ£ Ù÷ ÷l×Ëß½ÍSèŽ>tNŽbúS]{UJ£ÞLMãÝǦ·4ù¶®Ñøc]£AßhÐ7Zß`]c™®±L×X¾k,ß1Ö›Ëpó¶õ¿Ù»¦©åW²ùCçÔûsgÆ0W!ݬ7¯Nû>v~®/./×Êloc¬Î9£NJkZ£‚jˆ%&L¶‚‡´Xfó»ûtG;÷Ži“ûƒŠ– æð¨ß r¦öîT9ÓàQ-ö)´GÔ'º™<ëoÑIáÅ„læQèn6e ¿‘TÐlÙÌ…€~nÈë‡"}ÏŸz\¥:ñùð3Ùª«w¼ Ÿy›¼N_ì4 Efí1­ª ©ZÃl÷ŠD©èßXªp*šæœ&}¿N·Ïîvø ˺)d2Ê.‰ÿ?ßÿû*ß ³ÏÒЮ#³ó¶lVÜ”ÝyÒÊÿig©¶«z³¾:£¯¥Û››_N'IŸW_ƒ]5êD‘„=¦ú?M­®”8¶ªVgJ´Ÿ‘Tçõõ 'ÕWÓëÂu5eûÖÛíç±¢Â>NrtÙPzq½þ™ìâ§)³xøhÉ}Ë϶_áohJgeQ& Œÿï]yû]æ,ÕÄg·åã%-ΩOñ¹Z¬†%»]O}†6ÞwËuÝÝoÔw U"¼{÷ù}!=gFí"7ÚàsÀ*¡ étñäVB”î¥á¥á¥á¥a\rÎú‡pIÂ0\2N ¡&i%² ÔQj¥õf" %»9T‹@ú–`Ó²s¥wá]øôu•‰Z÷8b})}9ÞøúÁÙ]}Ë‹íu. „•®šlhAv5Õi¼köPé/Ç8ͧ²Ÿ‰krßÿ¸¾ ÝB&fC¿alõ=öѯöÙ°'eYï¯u{z­«‡×Úì¯õêL¾‚5§ÉW/Õ ×ÓÈtW’¯¨Ù'_µî)Ñ jTÞ?)ZÙßXÏÂîOŽîixè“â%6dŒZêè£O)v“»ñØSdãR”L{JU•˜­»››ˆÇî"„*ÞÑô ¤¤\·Ð/_`˜¸LƒPE5•je7ÍÔñ” ÿYç1Ó -Π_|0áÌ¿žBSŽ‚5B1á ©Zõó_ßæ«&A)dðT²Ì¿t^T4³g"F‚6Äô $Vù?Ÿ "—˜¤X9×/}|ç{Џaâx,$(òúq† Êñ5n¶MúõŒ³Ç$2+ÙÍxTч ÜãÞÍHy|…aæB›¢ ¤“0ÉPü¾tô!‘ ²*UbElë¬ew‡µºbÒ¤mRêgA<½éa¥ja“¬žV8S˜ë<Ë͵iÉ]K¨.ÆÌ:NB”äÈ’-Z˜£òó5[%0ˆ}êרx`Ûôº‘U#h ’k™à ñŽR4ÁrÚE‰~úƒMè¡ /Á¦èr0ô :÷3S?F¤ûo m¢.àƒª’l\ôvûd¢ŒIJ‚Ndð‹ö³–ë‘öö¦I“m4(¢—.)]ê¢ÇØïúß+Šñšä‘E¢W%Þᢕ:­¾§S`þ!EQ^/3׌„CU9“g÷ÜAÌ"÷8Ä\sc+‹Iy4Ë Ïþ5P”v³nÍN&à É¥âs)ÉÎz£ŠŸdzÀa} í&d½wîÓlåJÚ 3Y )d'ç£õ³—n©·›ö"%”ìƒ^;ÈÚK.2&¥ÁT@o¸Ÿ9û—0®WX,Š*}rÖVžâ¬µ!'déÒ[hƒÖM툘‚¢eÊÿ³wmËu¬HöW&æ½{€„^çæÝ‘$¤­¶| Iöq÷×O"[¶.Tm@>=—èPHòƒ\U›"3W^X+#Ì,ÿºø—1/qPWc¼ºO}¯e þsÊzÍÿNU-ÈöHóÝo®>ÓÙšŠ1yfõÐÕ¥yV܇çKoë’TëA2(7k«ýÀû?Úݤæo½çì¨BZr¾c­Jôz5'š†óR’OÖùD´o‰\„`Ë>-¹ÜCíEµÛbPLßÕÌKÏý¬ +¬p쑾xM?©ÌÓ§ÿxÞï ãcaˆš·æœ¹([²îïå7ßëæ£è`cÔ§–d›Õº„^޹®s-&7+U1QÙŠ——´U2YF5j%ŽÖàõ‰Š¦åMD©N±ûVÝäqö¡¾ïUB;V8d:‹µ­RÁXœJ7¸ÕK;îÚ¥KÆ9)WÄ -ê„7`o—Ÿ¾ýýmJÆ5£à z0%å¥hßßº¾ ϨÓNlâ½ÐÒΚÐAªQW=7Ó5JñVøù!~>’å)ŽMqXSQ7ÖÀÜOÔ1ÕO#›’¬ÚH!”Ò4{ÝuêåËíídE!T0ÚlU°ø¤2»kÆÒ„–X †Fo9œ§B¬cÌ⻜“@©Ñ$Cn):?vlüímU²5ÓS¼ÎÍ[Ÿƒ™{|ý; QŸß}ú8ªNFM²$5 f÷ÜqÖmÏÅk.iBÝ{—EÉ5Cç¤$€R·ÖÿD& ‡lï'ž­ÛKQ¹Þ|ÓÈ]¹:YWŠAÙj'L¨”T’!†’“)e^ÖïiQô_⊵lºô­ø>¾rºÍõ?Fqƒfšÿ†šûöß+)>Z™[¢Î™7Џƒ LÕæÞnmÿûÔã†Ç•ôdÕ)7šyDö²µ´20kö.Ù»bìFí\ÿS $A£#jþ1/ªrô«@U3²]Ò84N›µ¦·wWüþÈKpŽFsaֈDzUA¾ D€ˆRŠºŠ©ië=RÕîÕ\Ô<í^F¶­!¸%eñ¦{ÔÎçÔ;cKˆ‚oþþùn¨BfSr1ÕXJÕ0¶Të8ÑNAQ!0©csÖrã'ïu¸/³T ÚÊ6qÿPÓy#­DæHóJŠÏ&£+l´h’†–Žâš+5;ç·êÖ×­w}ŠážÂÜÙ´Ø>{¤l=‚¸[g"(VU³jõÉŒKRäš7äŒ-KÀå‚\'êÓ9Éjn\¢_2Ïïæ ébð›»¡ÆwÈVŒ ž5kÙì=üÂ-íƒEtŽˆ}Oš¾."ßÝ)%8Á6«_9HÊ{ð设ùô±}Ô%Ðgöˆ]]á%§û‰Ç£-¤°åN¡ÐØ[Ç{-Òþª¯ü(XYQ€P4yð58\ÃUOƒU!~}õöݰ¢%ÇÒ@½PØš@úÑÐø0eC Ýô-‹¦?{ö îQÓ°âW»œ¯z ëÈÈÞÈï¹¢8{t`ŒP¦iÄêðù=ïÀÛ¡ ´Ê©Pµ%Ä’Ý^ðƒ G[±B.E¨‚]ª^é3']>³Ž-¨ó N˜ýÖzÿ1‚–ÍÐkúäû-å³>„RICIo±ÑÚèÈeªè¥ Iu"~Íë÷§¾ýòQÃÉúr÷îÍÛáëGk`¥Ñ«u©¼òkÌkœŒƒà4;lÎ-‡w<¦?úÂha Ôž¸W%¸…>žûº>Þ?Úós¨h›5ixÙ{Ã)VS%v}ž²8žñ«2OœãûA ¯ Ïô·Ãíòf ·Ã°l%ÊÄÃsE’È”~U“+8Þ*PôwyÔà œRÓo–%/W·òhøÍ[Ñh5pÔœ n¥{ s÷yx”«å*šç$va-ƒz:móu¸CÈ·^6bÙNÿÞчªWÃJz Öæhp©~½º¹^\q†zÇX4—Š®íNwOp8ÅFÌÑ'^œÃˆ‘»»à+nVqâ°C͵&€ˆÕ—-}„^‚¾iMÝÀ§ëOãÇ˾‘zùdÛê?FÙüi7§Ë™û îøµþróéã]û8¬{GÎ$V=fiÙXG Ÿ¿âéG1MÓÍB1b±éìZÃçwÃÓ{œ­kPõU')[Ó·o˜¯ê}inô&°pK\¬·µ¸´9žüùËÝ›·úŹ>À.h|KS¶Zm_†¶ M‚ó­š>Æåe+[ëiùAmšT“ÀB¡VWK +ud½ {^©Eâ´>Ù?J[SŸòÐÄR X›¸0Ù‘ùMS}Ò­í¨x³^üìž@ŒL3g[rT'°Ó9n½»‡c/`³µQ_šÏ·ŒòÝcçŒ.µÏ1W4ÂV©æveúIZˆ\°6cüúIcúæF‰F 9.F¸„¶8Îô=Ïa´šÙzÝ4ú!Ûö2âÿ©4i«ú6ôÇûÉ¿|É…3÷ÿ>·›ë¿üç§Ow÷|“7³w{ßotóV|çÏüë›Ó=5˜Ý^໾â»s‹¹ýû­Üþ0™‡ûÿ×O[½Øèógºùðéæ/j´Êæöå‡p½h„?/B7·ÝD^>Ç¥€ü¥¶¯/ÿŸ½Ø»þúÁ ?·Þ^®ô`Iï/9'qôØ1YΕ^~0>Õ«›ÿ.ú¢©sµ¿Ö§2/ÿöXæ×ýÇvÓúÃÜþo–†ù'qeÍ›]&oSe‚L…BI55‰fÂél†ÿR‡¹Ìx•Ý3Æ+ÀSÆ+TŸ1^™ÎñƒŸpzMÉ—„*1ÿÿ9¯þF‰ÛûMÖ«3a×ñ^Aʯcé}x´ÿæ«·^äsp­%Mˆ«J³iÒý.ÍÕ¢ó¨×—Cön¶öü“ŒQZËÍ—ˆQjŠŸ|‚š©^ 6[[–ÐÒdqöñÒ\,ïÖL”‚±Ù™Éäéáù4:E•”$kd©m²<õpùßÍö|éZÌ€œŠñ9$ϳCϯ~q^ÁR­¡öAa %M¿-ÎøÐu‹-z¯9¶ us[Mçâ5J,™ìdíýùÅψԲA䀅¤¤6{äòñ¦ôï]½¦àÆz´.ÎÀ=ÝéOéL¾j`i$%…ÙÓ6Ç;çhlÕ&}»6…¤`+‹f;?ª3LB ¢¶“åÓ§‹vñ’8/è-§Ùa»_F0ª@kÞ£¢#‡i²{üާ¢¯ÉæœÉy.‹{j†–!ª‘i‚Q´¤æ6Y3;ćƒe\ u…3´MÇ13,›3ÉÚêô»7 ÷?Õ¸­ ¡ÛXÎ.x ³“r  93FFͨ6²†ƒnkàÎúE#šÙn“õ9ÀR§—MvYLLÑÎ6ÇžcúÑ…!9Ýÿ (ó¢ƒ8¸²±úúf‘±-¾Í–¤ÊÚ²Õ Íß~qþDú¨QÌ9"“ш£¹wÎØX=èeþÒ,¾Qˆè\3~Ø_¦ê4õ¤¨á¢ ¾®ÚÀ,soeŠMuÞV’YôrG!°x§À5jÝLž”êFÇäž,𢙧h"ägÙ.Ÿ?ú!íCnº&Ä>çÈnv–o”›¥9²b1˜ÙÒ/÷Ñ9))ÊÓâÐòt[öQv{t*½‚5ÎDI™kt¸èè.Ÿ¯íúèÎ"Zë0Xx¨;œ ªI õá€*ÌÒV6ÿÑù+êC5ý4¹Þ`#ÎGûÔ3ô“ ¨%§°»wŽÇ?­·d¹DÓéfòìA·7N»X ¹…Õç@ö›UÍ ¼¢ÎûŒ©„ˆl³“³Ovç(¥- =b­YŠÙMi/ÌãWñ môÉ:ÓŠÙ¬•þv6­ç78àk)±¦¬¶b e–)êùµ;W×#vròÄpÆjzĺç7ÓŠš´¦16–Œ)˜7Ö)©j¸ P° ‰»eÇáY¯×5­æZ¼7i ì÷LÜ¢¯Øl¤hg§¿_÷ÄšlŠºÙ¥ªóEWËf t€?B))Yc²½/ ¼ÊR‡ÇĬO)çÄ6i>À—çŒíß5 ¢ª¦ˆvöÈäž=$©Ep qÞÝÿǬ"Ñq?L‡bR屮¦tvLïeŸ£÷(®²,n×ßÍö<åN¯¢:cï°)”ÅU·v‰ü Fc³HF*ú;.FÚŠ7ÏRjãRXí®mÂYuÑ¢¸-9µ ‚YJÂçw; IɬQÀzÙÇàÌ"ޏ4ñX}5¶¬ïÌ·W´ÏÎN¸0zÈVmW›ss‡ûÄ)x“N¶ЛYΗ—mã©@L=‰wÑjŽºÎOÊi´Ô¨IÈ­.­KLÆVÃ1øV¢EŸi–ÀkÔûø½œl/×èŒÌŒîWW ê½:ßòÌÀK \Ôa×~”[Êæêóãb)†¤îuÍè hΑ*ôT9Îê|=i ÑwÒÕ®—eª%ìv€.žÌ(’RÁ!ƒK›[èàh^í¥âVÉØbx£S}¦’‰5ö³î9å6üÜ™‚AF›-±Þ!(Â{M_qÜ-ØZ.V÷MR¹ŠP'£Ýcüó§ð“=_”±šW«þÐ% PgOÍ>¼Ã㎜£¨>ØÌžpzêÁFîÝ\±ózÆ4{àæÑeOH bn˜Jtšow˧§>1†B5ä ¨¿¨ [~üšŸ³ÂA@Ń]0b·cqÆÙ! CÑð‘ˆÁoVÀÆGp x‹­ô£CRÓ,«Ãf>&ÿ-bÑØ’:·óêÆ¼t «·&pP‹ƒM¨9Çd€r'êÓ]›Õ†w“Çcìš¡*î—ÒjZÂûU:9Û©â}3Dã®/³DÛ/ú±ãóƬ@G]ø TfÙ®}ÈikKÖ KG=9Ý{ä¹2š1Z«;È9qfÙ\ `´Í[¡$˜u¿ÚÄ6c&™&]Ð+ªWŽŽÛ4ª3Îò]x^¢nÑM/wL²æ-«›¿ræUü<Å› Î4ÏÒ½OhKݪ€=|’qoc§Ä-Ù uA½ýq™£’èM©RÎ-3ïM èÒxª1K&Ë&ùY‚’áà!QT—ìÉ1fÅ)`Âv{䘔‘4÷W€å1a«²:}uAû[%/–c ]^­=<ý‘5…jôÒÒ@cä,Iâ †M)4hQî¼Ü³¼Óã˜`SCIí%€\L¯·,îö ¯ y˜âL‚,:ýSISÈÆ#hÄ Nâ,%ݨXt&0Ç ٪ƚm™%þ–GŸ¡8…lÞÙ¨ÿÒTeï“e‹Õ7`5…äO¶[+gõXn)g"èBjºþ›½k[nÜÆ¶ïþ >¥:)ËÆ`ò_º+=ÓîŠ3™S'uʠͱ$rH©/óGçù|ÂüØÙ )[¢(‘²!·»Ç©Jµu[$…µœn¾MXˆ’X»!‰´S˜¼ç$Ö]@ W„Ã&Q‚w]1zVaëž³:•Á¬Nph#jÃH±PìxßÛ´Fl¬0Q,¦ÈÆ0«Ü³µ»3€PI‚¨«’*¾kÆw¿ÜXˆaþà V[D°¡Z4­t¼:žCAk3•˜{S©íôU´ÍÂt(ßÚXˆ‰Æ t3F<¾oÆ_we%¡u‡ÛHˆÃd¨&î²ïé®R€|( {b÷(þ~”ØÖgÅÍe ±A[ÅLDMvÍ]_fQ›K^ýÉ4W®sýYßS¸k½½<¨vQ` ­ê&v3¯^a$°¾»Ý8`×?]ºÆô-2 Œ°/Ë;S|­Ôî–»³TÑ…‹¸¹°³®Ûa&G߿ۋnì0¾5d¸Ž?®Ì¬ÿK×0AôkÐXÅX˾fl¾Ö?¤aN„æ¾6C£ÃІ ƒ°Ä ¬pV8ër¬‹«aa‡Ëzj*Ÿ†Ïߴ̨— Ž»Lt\dåQ‹®©UƒÑÿšßd£›I>26Ñóñìá¼¼»\ÌÉ— ‡´\ƒ¬w!!%âVYC„ qˆæ‘a*dRBPè¤u´x7éÈUü‘@á/b=¦Ó«Åºâõtf X´Ø]äy›–ûëÛ÷ žÀBøü´ fðyv{ÑÕEËÅEëž?H êä–…Ç_²ëiðîj `Õë·nªœ¿¥³JhvOËú,8B!m©ùJnVó劊U)_ŠWáÒB€"IÙ0ßu­Ûàˆò{húž^œtt6ÖÐh?-…ߟ‚7õ;GøëQý-²Ùõ®+‡¦›Fu-éaɆh54x½p×ß] 5çÓ3‡”Ÿ'/ŠÄp𥠠/·”4²³þcH·ˆivY@ÀTźó Xdm”ÈþóÆË‹îr3¦åI wÚ» t‹9›éøúÒÍN ¡kÿÜ`ª¸ÿˆZ¤©¾Ñ™ì¢¹Õxø³/:çÓ™0/"Nï…˜N³Î\(""j5üèÑDç[:'&ŠHÔp}ç¦ïtÖÛçZ9ÒþÃ, XcûÍ=RááéBY=fd±T&ê׈ì‚ÜhF’HcyÔ»ÅÖºÁŒtèN4ö§´wAn´#s¦vhNXŸÅ³Ë×ï¶ôº²0~ëÝÐ_`^¹´×î„]è–ˆËÚjËðÖ`<¶¿^×â†N‰µà‚“Þ¤‘5¼M=âÎ+6|d;@woîí.;t™æqÿa‘e¸›,úôr—¹k¨î?hµŒö)Í/s·¿ÙbDô‹·g¸Éd˜–\Dý¢kX›ÜƒˆcjIÌà=NÑö<µqb üÔ@÷¦À\úÓ(‰±êO½]ÀNÒ«¢ÿfCK­ ãÁ7›€XØÞ)˜‹Æ\žyܱò =/\ÑN=¼ç{HPÈ “¬_:z®¯kÅ‚·ód¹ a‰úüï0¯R—(ëhF‘FóÎóÖD3Í“þÓwk ›§m­5@ÜýqluÙk•îˆN${·ü¬6‹jÉÖ© …mä¯7s°ºG˜gŸ·MŠ1·”»Wq;Ï®õ KÜB¹Ì²>,•u§†bΧƒÌÈF&6<],Án4$ s#!ÃYPŸâqäö€{³cWðzš36JaŸ[ÌmƉÀ6î£Uëa‡AËÑõX˜í¢GØÔi–‹g}Nîy´ÍŸ&½®iù-ç1Ñ¡PFQ#ã$}ÃâQ6•ʹÓ`©R+¶ÞLÔSóbÕÒ~¼h߯_µþQÃçEdú‚ç)WbXè\‘#¾î,–ó*zãæ†*Dbÿ»êóQœD®Ä¶ÄK3–E1¬ëc1(n~SD=ç˜à7›ÓX»?OݱØà¼JÔ1?‡† Ò2ÐY-î@«³¶Aý}¼ž“´(²Âý¢úè þ(È ¥ªøúÔÎ>fÅM0Ë=­”Œƒ ,ÃÓ)üüwøç&È’ º\|ÕšWn À~u3UðÓåëË»Ä`3÷Î<š£NÛr‚Þ_§ã4Ï¡yÒr ·à’‚òú½£¢~ïg0®(-UÙAîgo4<ÙË1¬&]¼·úÕÞ:²‹·Z?Ú_úePÁ>!Ûû¤›CüØ©w«V¾täKÉ>Rõfú¸ÁsÜe£ö@…Gî‹ßr¹>7`Üá‹ÙÎÑ{×xUƒA+yÜK.W–è;î›nì ímÇ×C½Zö0pÍ“>³®gÖå‡u§£”GH '×Ó«ùùµ°®fŒ=aΕç±KJx@¦³ÂehƦ;Œ4Kb!92Öqla¬ˆT¤lIóL¸ž ×N„ ,ª•bMU(7. V ¯ð-æJ*ã%¾Å0#Ëz}›2«WXÙºgŠõ×µâyd¿8ÍbŠ=šUÙÁ·O²êÇ|¦XM±ªvßB°Bìt]d"ãÄ€ûvuž8ÁªŸöéÒ«À!FÓ«jà²Ó‡¦ƒ"pjÝIàåì¯^’Å¡ë ³¡+í™È†ŠZ…©+gÎqHà ß‘dƒHV“ôù¶Êº,+ ò¾HË 9wvLž5ø”PŸr=´9]¡7’Sâ4ü¸Ê7-ÓqsÝÃúß#~XG«^Ñ Òô攟³yp c;pgÁ4Ê ˜×¹¤ðIq°r÷ k«Ž¹9Ö–NGÍ ¸ú–‚º ý¡›Ó%h==øÛÅi6’ÃÍÕ¿/çñ5p6w#‡ f wÏ»…§¸DhàœèñÜõ\Ÿ™K§Iöse#gk{g\K—’Ëê,³èZ‡\;ÚÆèj.+|“å\V,Vj;ïjrY[ƒoÔ=#¸»{ä±®e®¾}÷߯߼9 ÞÿíôÍë3`Zg/Æõâíû7Ç¿¾óý“§hý)uõcÇÙtW¦¶hãªm«õ‘ΊîK×–º¼#¶Ðöž6:óº4-ÌYóÎL%"8¼¿ Ñ´°#]];°\Ljõ×¾¸ƒµ!ø¨Ëë…ÀÚrƒš wUhw-:…Ð1 c£¥ÉÕhåS³]Y’ÄHJú¹+>¹é·I8íêWPYãAÉ95êGûiviaDÍ.uYfqêÖô]»î– Åè°„ƒEN€3IhήDZ*6h)É`3 a:Ü2F‡â6æ]e«2êI•Ç[ ùtå„kÑ›¤ÑòÕoõùºVHî1·q×s«W…ÍŸÀbê?uéºeáS‘ÄNìI"œDC j;Ìâ ²1* …á6 ûòêeU7ìl5ð£~Ð ÀáZOãab&Àë;­D'™ÑãT—/î®ñ#tÏ}Es„2?˜øSÂÿùiüC ¥ùß÷tÌf\†1àb±\"÷ƒË˜w\þpÅKï¸á+À¥Ô;îéiŽ\îŸoÜW8§…¾q9û}…°o\!NsBðŸ„þwhy–»¾o\yr↜w\EOrÊ‘wSSLä0ì¼»uþ2—'þM"2OéÝE„ÐoT0ïývJOs,П˜x7áÓç}^žzÇ=%9¢È{Sœ;/Œþ$Ü{Sœ«½X&ìzOùnâ —!ì{ÅB¨1¤öƒK¼·¯Ãu•~|㆘ÃÄA}ãðì9•èOä}4E&g߸gˆä˜½<ñŒË0=Ë]ùoϸ74|Ot )‘cøÏ3nô:ÇŠœÀ}»Kz&…[nÛ^ž0ް\°ì"X(cJ¥"R„,J¥UUE4Mc‘Tþ5 #»ï,U[?îqcŽ>'õ¾Êw•ôbÇa/JioN~ –önÓÙÄŽš ‡‹[áÕÓâE½¹SÚ­º‡É\ÊÌÉØìÞË.Íâ&õ\bœf呱ý Én¥µOƒ6'$3Äèj~ p9±¼Mã2hz²cªlä¶ ZV8"ß|2r>ãtšîºórÛr®Åü(JÉî)#²Ü]±ÛUϲÝ?·M¢o/bÕO)ü­}ôh-#CxK1¬r20ZKCq" QÆReî ÞP‡4‘ˆ ‘p¥#’ÞãÕ~¡ڗ§9ÃþÇW ô'e\x_×àØKÿà¯PŽ0>ÛSpÕô„ç!‚5öÞuÜû¯"‘£=Ó8:‡&æÞƒœŸç'ÈûÚñóóüÕ+º¯8³\Uí¿xЉð$‡‘±® •÷H’²jbïC£Æõ¿ÕÄñÿÄÊ{;hðÆÞCùòTå§{uÍÖƒw“P‚¹©tÁ´&êî¦ a{oŠs~ææ>v ªÐ8v®Â»aœŸ"·‡æ#Ær…¼ïuaòê<Çþ{SéܼwNØà:ÚæÛ**h.™÷&v} ±Ü;n$Súïºf£Àw;ÔÄ4áp½¹*:ކÝïÓ‹b{ÒÍ~x,;6±‰bEãÐ&Šicmˆ™`„ËH Î æQ¤Œ|Že?±X¶ÓÏÆëâ›Ïz2Ä _=sÀâdùÌÃî\Â3]ÆÜÓ~ð©ƒ'ÕŽ }uõbÚa¸þò1íBßX\ûYgãKŶ½«›µp{ÂÐ’›H$& ##0nƒo  #S SC8ëÕ«~rq±—X÷¢I÷ï^Çöó׸wë^cß«Ø~ãß-lß1ð¼×8ø*¶ßXxÛg<¼…í5&ÞÂö_Åöoa{·°}ÇÈ;à½ÅÉW±ýÆÊ»°}ÅË[ؾcæëðþâæ-l¯±óUl¿ñó¶ïú*¼ß8ú*¶ßXú*¶÷xz ÞwL½ï5®¾‚í9¶¾Ší7¾¾Ší7ÆÞ…í1ξï/Ö¾Ší7ÞÞÂös_Åöw_Áö{oa{¿¯`u1ø!ÒÛ)ÉË9V‘"Æ\ıfQ$¥Ã$HsnW!z‚|‚Ü«dHÜNÀJqM‰Ý~ÁrqM‰z‰V„ ·èn?KA®m øWÜfOF òYqûy'à‹ïPsG±M õ©=J,ý[VÜÖñ§.v®m`Ip„œhºGNE ‘´&4Æ$JPƒIˆ8’”èæ5«8LÊÞ3§áäì¿`ÉX¥¸?1Îtaö–Ùp›Õp+ù»ý¤Ëƒ×0Yóª;ni@ZCý£ãæï..‚óú€+Úq–;h¸–žì'ç!þTÉèU³<ô•=âׂO¬)-ŠåÚí’"œ²–Ä5æc¹œöÀ‰À=i`¶îŽG «¼Û´¿'‰ùäo¦YQìÈsÚŒd;‰!B®'5 šó7Y_wØä]~ž”ý‹ap#W•t4˲qß÷ýÎ~ÝSÉcúôù‡Ø±°ìA޽ è>N]††Ã#X #Ãt#Âi¸{'1,Ô¡4!—á §î²ÅþpOœ5øÙûãìûà£b=iñPwþ÷åUÚ½?Ýð¤ïf‡üFÏ çsß§Óø†B³Ð¬Þ<Ê›7.o>ƒ£<ŠìÞVšµø-töNG«k;fµr4º%ÊV:—ˆ./89,aP¿W^ØäÈÙÕƒÝò“wº÷;E½›Û•( ŸÝî-üw»ÙdšFYvS×UÐöaú…¡˜>,o˜+¦͘ƱR…2ÔÆp%±da¤8„E‘àrŽ=YRW×<3¼*²IMnì(/2Wú|¨g~ãš;¸YÇ.ßzüòþî2Çðâ½þ‚»›Â'ÇÎzô?¦Ÿ~8 ª¿Ç‡Á«ù?ÒY9.R·®Ú=IÇÙapc,8)s°Š‚ÿž•×i¤ƒ ð(ãq:³M¨³¬bes3àüâñÜÀoâC ÷3p?ŸƒDÃõDZ9 ,¼«Ïæñõḉª62̇Aõ^®Mu9'¸Õ^V̶Ðý‹ìßÿWïÿý¿³&ðYæ?gett=ßÛDÒ&÷M–Ç ‹îŸTÖuÕÑf]uJU¸Z?c$¸Z&ûJ¶O+•bG{Ð:ÆÍ×§Úñ ¬T?ê¿s!øA,ßÌov gÞ¶Þ¢Õüd9 NÔÚÌ4(ª¹ÜŠÒ>qûÓ6a˜_y¦³{ÎçØæcÇ6¡Õ·Ä5“$á2Nx"\ý8ÙW‹èQâš»ä·lÊK~pGhÃå!ûôâ¥S“– Ã$ïó„>â¤ÃíBõD+n9± p;®ŒâÛˆ1k¤¢˜A‰N¶ò.mð6‹¬Ì’Yðëùë‹à×fkø|©üÍß]äs§°êE6±«Óz,ቘ¼ÜγûPß×Í,”¹Ó$­@ ³òÁr ˜"ÓÂÕÏ©']÷VVq0·á\6Õiê½ìØëÝsü=…K¬èž –z6hP0Ñ7@FÓYge™FãêöÜ]Vås÷wPd«ylô9˜€E—nŸ\nðj÷³zënc|÷Ïy6ûÉ]±ޓͧ¦~ç jíͽÝîÈ7qç“÷¯¿_D1¶í gÓÙ¼&_וyò,ùn~Ôb{{c•KíÙ¾fï™9µ®ÿÆÑF>‰Ý!»VDÄb˧a¡lÍmâ£Ö‘ÿ„ƒsS}•fåHWïìJ/—[Òµžk2ô3Bî© ×êÛŽ“H-G¼}šÞ`*ý°ëþý뢘öП+†|U ö±Îé=¥»…xxjAË==Ælô¿æ7™§ è…®dëž”ò˜2ÇB*†1Nd˜HÅcS%m$„XIAqÂ"¥1åwÓ¬è™ý#-€r]ĺ®ßØDK«‚‰žÔé¸hÓf}û~=Á¥if·ýP]´\\´6ŽƒtqцqnUM¸žﮦV½~ “m: ~Kg=ÙW†dõ€ƒr$mïX)—°qÇJ„¡\á‚IÎÅ$zHpqÕtGëÖ7¢|çÐâéÅy@Ggc õÿì]io#G’ý®_Á3†%ç}x…ubëÁxw<Þ ‘Wu×4EÖTÿ~#‹¤šw%©J5)• ¸Ýõ*+ψȈ÷þ£·–oðëô“ |:6"ìã½3)§};ëÓØ‘mH5*t`àñÛPo®ï: ç^-¹WŒß7)?Á¾ƒ #¹áÀ (PÌ8JF,‡ïFÐïÆÖÁß”B‡ˆ•˜4…˜– ?JhåvLã%É6Ö˜µâ»x@¼‹;×H™VÎëC }ýMzÒ,¨fÁ! q×ÙÔ7žÒ$YÈUÈr0ô›0¹`1!I·2bÚSíçE!¬kd6˜ÃÅ#»œ4:æ…H$¿¹ÍóÝ*Œ0MÒ„œB6Σ€¥ò–%ù"äÖyĈÃBàäZÝ2¸Ô ŽƒÚ¹ma¸§*yà=˜·nòî/Û5êA9-xš¬(`¾“º‘›–¸e–jœ¼ÄçPÛÇE©@©ÄÉSò qË xgC8yCÂÛº² #:¸$¹×9`l[üx£(+Õ®H_ÙîãÐÆàå4XÌĹWï})«wXV;fL ‚[M“„‚#lÌÙ6e˜‘\XÙèY®amÛ„s4·Gã>™~ ˆ¡é­Qá%*’× |0]š:“R¡H^3åûQscá3^£ä^¹2£ÐxDP© !y¸ªÇ­#/0ÖÒ¤|ƒä˜eŽd‹%Â5 ¢,ˆä¡™CŽw`Jm±(ÙX{Ò]3cZð·É ¢…GŠíÑ•3ÐíǶ1…’fÞ¬¯p:Td±EÉGâö£ÙÕÎp0ÞXXR”l]D¼º‰p.N¾îh¨Àæf‘¼Ró²ßXeY` /§'8_Ô$à¬4Q0×7Vö¦<’KOÞÿ† ªÎ'Á<M ÆÒ0gN Ùhó½¶ä‘fƒ¯Ky»¶äfBˆ³SO±ÂHÊšG—0òryÕGŸ( ÷[‘ŽžWÿ?¯tNÉ5ÌÞ‡s‡™·Aà ½“ÎjlGOqŠôk¢»è)$Åœ-¬)FÐbN | eŠE¸0ËÏ7LÔçת½QÊŠÿÜÌûñ¬26´|§•n%ÎyKµÙÊÖ´ûÄZ˜/ip'^¼Ö,?݇'eæV¶nG|:«dö‹XC;öäa!âi?YƒÞ€±·EûRªÙ•+þ„"Ï7b×>þbµîÄøÓcÿƒu?DzÛƒ”ëÖ¡5âù¸3 Ž+®ÛV2D\^W\dÐr\AÚÇ­™ñ ¾Ì#¥ŠÛî²?_¥J›‡K5úzTÔ;„ Ê1Ζ±Ç•ÔÇ$RK@Šƒ/ÅcÆ}'Yx\’…à‘õòËÅ,€ÕŒ{³c—ª/µ‹lÑÀI\3÷mÖÛ{­Añ—àˆ"œÑ5¦ãˆúnQso®ª\¤Xß•“iíÛ rÑB»"8á,EÒ:ÍÒú"`B£² ³‚ym÷â‡ê‚\ÇäB­‘Ë/æC®¹ä2ÕјÉÅ}œh‚xC+’Ë/Íò-Q®ç‘Ë¿‚ ×ûáp࣯ÇébÔgˆtÕ³æMĺ¦oÚE»^Q´«Òñ.-)ÔyA(j*p_Bmˆx…”TTb9]U“ÑvŒA©µÑ^Xj tË©é@e Mm~pjŠœ#<µˆÜn€j¹½Õ"r»AªEävÃT ȧ¨Z̓ڒð”jTQÁ­&ŒKªp°V Jr猳Eˆ¬ºi)]l—{J”j˜-'ÁR%5[ô©R|‘e`Jµ˜üÐÑ©O6,:P„,s6ìÆœ‡×– Û%<¼2°!áŠÂ±Â‰pau#QÀ^y  –x¥µð<º)éáE\Àï;°ž ;óè³a¡/ÝGgÚ)C°_Šõ]Sìa Ã1a8Ì[ÍmAXS" Ê#!•+4‘˜ ™vUðëð}9 `ðÅÛÕÿ‰¯zmzKÉú¡j±™¹…W“°_Ÿäz7!þÄתgÿváü½ù±WUý½… †H·ö„zû¥Þ:êÛƒ›ðå‹yúÑÙÙl¼§`kÁúívåï?šÞïÃò4ƒÚ´œÔŸM~ `>ö/Š2›M¹¥½Í’dýŽx»ŽD,ß&xÄøv¹À$M’|X]ç«“û\ìC{‚¬k°5ÆÃÁ¾FäSïÕ½]Õ‚ } ¹8–Ø@Ww­ÝÇÙêÄH\ÛOËvìJç»r§=Á‚/Í»úxÜDÏá. ¬gE¢‰AæE ȃcñðÖ³¶¸©ºg\þµn]Á¾i+@¼‚{w¸8™(n}3xÿÌlCr¡æse‘¨Ñ@EÞ`Aeº0Z”-b*‹ÂJ.°„ƒãE’ ÔßcrÒ4ÃdúRó í^QÙì«HÄ;y‡IG}¬zO<½ã©É9ˆÁÎÙÏ–%Ñve§Äë±ÇIøÃôCïï³ðl´#ËA1üeªQ/`³’‘ÖwáQIÔ¾|͈Tz{¢!“$æ),e*ÄèbSX =ÊY'Ÿ×Óí¼N¯yëBÁŸÍg“5‘‰Õ%#>Á÷dÄ®©2F/Íή±áÂn ²D[ a°ëø/wSʆ4£ŽýèØÙ]©¤%‘¯y±’ö‰=ÙÙç=Cûâ—’¡]ãkj_C{©B2X;…¡])Ê%¶ÉœŸß‹¡àH"&’9:Ú v~h¤VÜ¡=hmY:anC»ñàMkߘî·/C»ÆÌÐtöØWÄÐ.$Ç8ØäJ`h—˜ycu2ßi C;×Fšà“Y¢SÚEŠâB¦b¾(C;1F²À÷GÜ2(†‰˜ÙoÛˆG½õv/Jõ íÊpìø~=¸¡Ý¾cPºØD"C;θB&¿óë`h7`ˆpÆ’mD†vé× '/¿4†vÇ·æ>5•¡]i ·ÉÌÝ/ÈÐn-±ÁìA}ÞÈÐî #‚IgnNahçNž®nD­ ]é­Mù^ 혡š™¼52´3 «²Q×ï†váåÉÜ ´Ãùæß!Dê;'‘V”éJ-߃Ÿ]P„§Éz()üì’é`”ÙŸó}×2lµQÖƒo‚£=Mïµ»lnÿ²¹Y”!N)·HÂ~.Q“¹sTw¶ÛuM™¯Ý<ãöÂæîÓ¸®meD¯o{EνÄÒj_h˜fJ*®´´Ôc‰âÂp$*Ò.@ÿ{éö±7g«5ºrê©G°×¤Ï/¡ßze¬àOâ€Ä2ŽÇÁSJYž•—üØûü¡tzÎ fÏ›|gуˆƒKAÆzÏôÛÑûÓxØsu`¹gGf¯9þsªËEBUÞŸÍJ[>|ÃSû½b/ZBÑJ¿èýeÒ„X'b_{å—ø°h(žý¯1õï¬þ[}ª<=æÇž÷>‡~?þYÆaT¿QLô`iÕœù×{ÃAl ¬º¯»¢ÿƒ•£aïoͿʓ‡\Æäb\$ñ¨‹ÕEÑb¤~¥†dJ³¾\C‚´K5$Xâ$ÚÌ•%w¾yÕœïí?Ž’úˆšÞÜg è×}¸Ðoç­Dô&j®ÎÇtƒ·yKÜ}°­N‘dصö5Úf]IgöU­Ç†i›©ÞcÞ—ó âø Ê¥ÌåFå>õÏ-”|(„òÞ3¬)q!¨Šz¼D9¨–R0i1N£ò?ºœÄ€ãdØû«”Õc4zñ{që‰VÝdšÓ0†_Å4bø>šÐÉóŠx˜PU¤Î‰?yøö´h¦º§‡ÕQR Hêf”ƒ…ê“SŠ1®åïŠ1R$Z‰1 Æ™\´2çIôÓ[Ãc](ñyu+y”é–T Å,±÷cØ?…~båGW%’ƒ²zGXâ…I«‘GZ¬µóXz)=Tj â‘ Ž Ï9¡Üw¤Õo€´Z“åíŸ`¹¬Ì™)TÃö¿HZýTKÒÑVûò‘ÒVcr<´ÕÛÓ^quwåô&C”;Žœ…ýÜsPc®òæpÃúê`µ‘šk¥„+Bcvß‹„ö¤¯Þz¥Õu®û²m¡†L$ÖÛáŸOc½%i•Èz»]*ëuìöȬ—±Û¥³^Æn—Ðz û)­ß+g>µæ:!|æ4y¦ëD8 ÄÇœ+'± ÔUx¢‘WÄÄJ{b9†×K#ñû¿`y˜;6KŽÔ~ÞÒ2•ó4A0Lb¾Ü")õçúqãíùø¾ ~z9e?Yøû/†“Sö³2 <|ù`ÀS¼(F!À~Š€ùrñaòÐoö{ȪߣÉ.~fAåjn‹žÒbng(ÁñYŸ¨ç&Û³}Ÿ£÷lB\ƒ<›YÎ{­çì ‡y7ßFtÃΆ}¤Á,_›i¨Óù8oÕÇÙ}m[ð€­7IêÁþm*-|Wç˜]‘™=.Á¾D$ËjĦ(ÏM0»þ“ ›!ty•bï •êìû»ŒO!÷Jg„§÷Œ‹¬ÝÄï1ÍÏU%a™×™F ~Éâ*3Ý»{.ó4]à )œ§éû2Ó®Pçpè{D’r8Ä¿™P!uÆÕ[?èJgL¢¹—J_Þäk½ŽžŸ>¼ÂUÞAÐ"ÏL•° (¹'\Hus›§ýõ3hžökY]£<ñ4vÉ+0î)y:æW8Wãï®+ÄE6lŽÐu>l–Íè‰ðôžŠL‰/)¥¹°ïàŸ,ai$à¿ÉƒM®*™Ís`3^)8 ²agKÎDE1Ïs}Qcë<×›È<}ÂïâVž§O"6ÉcìM±qžþ®±ÁE˳]Mái¯»Æ¦y¬–›A·°ŒýÂ3ã‹{ÊóÁßDÃ…e9C¹$pX°<þæL"¬r` tU]f2·„Vì/Y6Fqö?C,68ð*ÏÆ(n¢QAóô÷-®.±ÎÒn0àªX™ ›¡{L²,Í)|W+bcŠïqž]%Â;&OrÀƒŸ+T.x;>‹!ªØMŒgÙ[Ôõ%ÌõxTä‰TEü˜#™ß#Ô|øä–ó >¦IÜ#Q‡QS˜“<6aâу^î×Å…Ãégu}ôŽÙ˜¬ñw"Ø—ïägªi-bl‡úùUBÿë|ðÿì]ksÛF–ý®_OSNÊ”û~Mª¦"RÒ®gâÄO’­rm©†…ˆ"0hÉûë·%E@BÛ¢°$J¸h4úqïísî±gÝ\³ú'f½Ì,º$ñ,ÝÐDUÞBË¥§¹Ùœ¼T/‹´¨hŒ&,4/êË‘ñš£Õ¼lß—dåÝH‡¦9wüÅ_Rû –|XºçÞ+7š¸ðڌ֣?bãÍßdß•OóSx1w•'éñ๠––795λ hD}Qyã ¼Çæû‰…6”k ë§ ØÏ7ÁØ$’ø> N$ñ ¢{b?;ÃÞlÌÃIëTšðcû§‡—¼ïÙÉ<7žÏbÑ7´»ï¾û®3ý5 eC¿¼Oˆwצ´|ëR¹Ç÷¬®&·Vßà õ쓎ñØ×ŽÇL¯?EQD˜ŠHD¥R!óŸCdóøì·}Öû™õ,Óß‹0În–Æ'° øê8Àcr—ûé“í¦>6± bЈ†ÆÅÐ×`aÿã’úÝ诙öÞÅj™dI”{?Ÿ¾ýàý\UO8­é þaÓ½²Þ³›oäµËÉ"3"³™Žù¥qÖ¼KcøF. ‡MÝ¡+2³OÕE+$Äz´%wnQuí•îRn‚×ûçZûG¶úƒqÉîߟ5ö§ñä¼kye|ÆØ8qI–Åæašg[™­Ôå]ûŽ Èqé^_¼k3p d‡ôì\*Ð!WuŠmFîýí?«$ÿÁÞ13ŽH²Z„å'GEo¿ªÚvW´¢:8yÿö»5•ø¡"É"_eÞ¹if)ô˜&Ñ¦áæ¢F¦ÝÖ¸ÖŸÍ{îwðøVrŸìÆCŽ!oP…9§dÃÃã¢SåˆZ«'v&N:°½½9ó°“\Ëk§%# ¤@l9hü˜±†ƒ‹íªÈ.>íCÿuÏ+€ctÌ·Z@M B);ã@H $aÈa©Ìö¥1% iEzAÿÞUÐ?»1¼_ÆÙ5zƒŽÉ\Õ#zâm}'ªê7ܟо]ØÛx^Ý÷õQùõ˜¼.Îh‹ŸpyFkBÿ¨ó/¥Í ,³m˜}Ëû »™ß,6Z_U7*ö›lˆ“j—©¶ ;yeúÚ.DqÍ´\YòLuœ\^_lg²hÈëõ2jŒÞ?ïCÇÇ6Õ¼Êõïr¾ÒU¢ÜsâE”üX–а£Íye¢Ú­:Õ'"xk—»ëŦœ0ÄÄ'õ#dhÆ'ÞÃj)Ò-“oÒœ?{,þÄL 8E¾‘7²ošaݽE—ý8@†A`òHÊKím·‘SËæž Îlm¯R{V /Ìαºn;ÕÒ„ñ„ ‡-ÓÃ6;ÐbŒ)_›é²÷ÌíÞ˜ñðÌâtqy³Ô×ÉgÝfÔ—ÄgŒï-°etÙë"®Á^çàÞZv\ØœcÛór Az¼klykwÞ ™çR]¶4*Øz6ÞèÛüB›™”_È,KTlÓÒ-†‘––²÷¼ÕZ^êO±­'vaG¤éÍ¶Ú ( €ºZt0H©5Œöa¬Akå"Óù*mKhØ‚È wÔ…¡Õb—)®æßS-«t‡ùÛâöV6o„â¾Àdá~(.cF‡Pï]ÿz—†¾¢ Äš†0âÝ7ûž#Öb'Üw¼Å7) ð9N@Žd½¡=À§îl£Àm¶}'RQe±êFê\œ[©(7º™Ó©Uéu#-­D¬¹â›ñ}îH®ŒNS„¬ö»“Êõ”ÍRËNs¢´trb§¦ÛŸ¤˜8RZòiê;Rã§g);q3Te¶0“%E˜w‰©ïä]Nñ4…Ô™RËôÄ®XgNDf¦SäL§„¦È$ú)w6!òOÌu"ö[ØöCìmÚ¦”[Í?'b¥m䤿­m ›Õñ†±- 1va»DI2àHV qdÌc'’™hP ý3e|ˆg)‡NÚMÀ Ùéãbã,t< t¢¯,Œ‹ŸBŽNMûD ÆÊõô,’JBŸø,’fk2‰"vIND %º©nŒèÙ=Û=ë÷AÏBJ8jœ{Q_À:ì”`Pý;ÀÃ?_*¾â±hÙ~ Äð6¶¾bÄLìÕh’ÿ·ºJž´i 3ðý»çÄ}Ê"ÁÑbh¥`T™™i|VŽy#E„µä ¶Œ_©ìÊêý/W™÷AÉhP& äB$»Ë5Ù ¤ìŸmŒ„]̓$ɽòÂg5m¼Õ¢úÖª®NîZö¹hY¶nY…nˆ×-[£éªS•Ð ¾µˆJ;“½{߀ÝUíz7÷Ïäráýòian_üüÎ̲xáýçÅJãJR©hq7Ðn®ÞB¶sõFȇ5jqbˆÄF-Nî«]Tˆ*•ýZà &}îé‡SOfsi:æo ªp€E9Ͳq9]Ö §äiËú›sQ¬ùI›@QôU™™/…RŠá! iœ/¢Ó0[´`¬ÊüW¨ÊLùV V¯b¶­¯Ç8kèëa°!¨„A¨ƒ#¿«¤p×à—z}mærâÖ‡÷±?b¤ŸÑboÐ|%çAr;I2=T“¶‚Ô½è>Q"9$¡F!ÕŠJÈBÅ(Å`bªº!¥/tšÜz¿˜IfK›.¼³"›“tÖ¹k5¢oó¥™:ó/^¤e¾Zjo«Ë×Þeü鲞»YówŽŠ ŒuñÓeœ™b•å‰z¯- ÇÚœgI±#ULÍU‘i¦!rî8丨H*‹¿µy[êô³Œç Gf6ç³ð>óÄ|‰ò‚`´Z„•F¬¹ñuVeªŽþëçß¼÷«À¬JÞOåÊä½2+×wñb‘äúªX˜îAÐÕ§fÝp €¾¯b ¡Ym66 ,µz×BĬ‘2È"Ö‰G½{fMš“Ã2p“P½ž@Ù›÷³.[ÌŸraÂÚ«¾hçF_ýW£-=óŒ z¬Bßön#C“>Õþ hçgcQ†á…ºV¶Dr¸k î‰Ý07OÚ‹1ŸùZìEÚmÙËçŸV:Ë/Ì´³(Ùk™]µÁ—IS}ÍÛµ¡ f'ÂPkÎ÷˜Û=;¼§íýÊ{ׇz8Ôås"®ï:&½«CÅÁÙYQ‡Ê yeÅGö_®¿k­Jõ,M;û”y„2r$cSÁ4âÆ&8ÐØR8 9 °Æ=)ƒ#epÛcîE´UgÁVÊ¥ÎjR}Ugdö£ûŒ @ŒïɸTUg;“Çâ³ù?®å­y{Ÿä¼wÊÆ{Ðd Ú¯Î4a T°™î!ò `HpžßCäA¬ ”êäßï'†„#Ö J3»±ˆzÛGD2@æ‰÷Õðy{P#À!`ÆM²W#&:™ëÄD*ÄaDöêTïe"L$T´Ó‹ÙÃôÛ7?Fòà<’_XÐöÜtå¿JT8’GòàHɃ³=’GòàHɃ#yp$ŽäÁ~æGòàHüVç`«Ïª@¶>¤uØ ¶4Såi*‡¡ðŸ§!Š"À¸ ¢ Ò@¡ÈWˆƒ ì¦rhy~/p»³¹Ì2ïÕo¿Ï¾ónt äuuHÔõìëúEÅa×ß½vóÕØîó¢Ÿäji^·÷>^¨K¹Ì‹£¢yùáqZ}øcvõe¡óãÀƪ<-2ÀÜd9“ì8Ô`º[|;îï†é_Ll¢¬˜Ù¸píȈÁº™lÔIc¬MWÕý(])/z+Þõœí±a$!à‘Hªú{ÜNŒ5‡—âæ˜ØoïÅ«öÈ-÷M[¹èásÑ{T¡BD"Å`à#»ÛìƒÆ±ñPc>BâðZ‡±¼(f`Ûaœ"Ĥ@…<Àû|_%Çý ¿ñûôûMœ—ÀØ„ÖOÑô3Þ?¡Í€k ÛðÌxè„9±]d†Ï¹Ûô4|ö"L(ktççCÜ‚œ˜Àˆ4sÃ4Ÿœá@\Ø`–N1sÒî3~jÓD¾Ûùç)AÍ î0¶ùì4µðF¶ÅÉ45ñ3p`›ähe!›I‹í£ÎmÁî<^ªa]pÌñ¶cYWuÙ+¡ ’" Y ö2!®Ä›mžJÂ$%šްìF}ûël³>@gTgë¥C†›{CJƶ`ˆ¸¶§7BJr&À¢tîcJ»°ãzÖaWPY“æ;àQf‰žÏVÒ¨_HYö[¹$Ýfújˆ°!þH\áúM¶¡’SµfJ]‡ñòbiÛF Ò¸[QùÒÐÍ2Î[‹ó3.0Dð„ö/>éü"µK]›1‚$¥ SiúÂØ`-¯>Åmä³!Àîí«¡àvÕ‚b&t'\fž7¿½PÆé6C-kC Å9“ûÊo×'z‡!²µš¿´4Á˱ü†ñ©641ˆIF"ô÷­-_%†r¬ ðÙÔ†"†×힥h+ì{º]LSJ†:’­ÙÅg©àCSšÑ;írö»'76ìÏcp» ¦€‚ÏN:8n·å†¶{ÆÓós$„ÔXF\[5ø€®Xh" €dÆ’*@UÝJŒoã æúÉì )Ý~ a?!øvj¼¬×ýÛ‰¯Èç5¦ü¿õ­ÌŽÞ.²|¹*Þ|K“ ž¼Î*ùZ^ô¦ºà—*…{Ëõ×ó$µ¦Í½lÉG"3r †q¯Ú–ˆ¾Uû×¥`›DtÊÙ¨K9Ý'^Ñ£}Ò2\'hd¡gù?ÂXÚí½H¶‡×½: þˆB¶‘~íž'®ÞvK"±e•zxÁo œn&€4b_`âòkbí^×zp4 …´ì•fÙ¶5ó‡È¶½«?+jEqßþ7ûü}~ßZ4êIæ tÛë„!L)˜ ”{k4ÙÌB¶œ0ï¬mŠÜØfSžNtA4©(fN¸T%·gZ ¿C‰Ï6`σ”ð}:oƒk…$É ‚@ó Bû¶ˆc$±ÒbämoƒÔàm F6x¼SmܶÁ:r7¾%w£Y!©{ð䌻±3„zaünáÓÈáxaáSÏ"°ý#á+ B¬i#Ñ}h¨7x˜Ï"i1h")AÕÁñ9¾IM¡Ay dpnG³òÏÐü޶ê?Cr<ö]ñ<1Õà\†ýÁùŠ)ƒs>6íÏûجû0<÷cÓþðüFÝŠÁ9 ›…Üð@Zîq`\p„…ï™Jý´à™£c²í¤Ö6áý\ø‘ˆˆD 0I¤&›+ DÀÌRØ­êÁiœåË8XYéâ_u)Kl¾šíª*ùÝ5z>5TÈÔxaÍèòÞhP-CçB°ø:^.Mèl®(~uTéN>WŠ4&6¾I–W…þq¥[|m…æò›/WV­&έ¶Mõ§:ö›˜Nšª®Eg {J‡ªâH‡* ¦8ð5S@øåsÎ|‚W8‚$QØ'VÜz'½Á}¢¦ß—•~'ùµžU À¯×M!}býƒì øgbs{'sãBänHU#eü¢áó!Ì8Ûéóù˜wCÝ ‚êy<ð†×Ðæó™¡ù¦mOCq‚ŽÍŸ¾dïS’dÚÜcù¥7ûaݶφð0á?²újýe¶ÕAÙ\`öðZÆ~› Ïè”} ˜ &fYU‰¤CBõþJH½X :’ "8§*Òšcö$µÎ¦©-èînm3 >Z¢¿é‘òÐÞ ‰èç Î `¹©:!©]1óýÍúZР)p$lD€…º U³ a›œ¦'ƒÕ›hØ>=µ%_\ꂹ±Í M='ŠITœØò/®†xaž;QÙŒ]îdú”¶ÝH V:láP•(¶Í›Õ܉[A~r4;+ 9'C…SßnÏŽ„*Å47Êz•옓n9%3»ØºRz+$Í ]Zœ ˜Ó)°Z‰.lCàû¶Ê”‹IÑù©EB:QöZÚ`¥]Úl[7ÑÅh)Ìæ;ér+Èf\hDVH…qn™›×Y‰½¹è“’ºfÈ6ƶ“©Y¨šmƒpŸ/‹µC•¡î‘¡j aHæB„! °ò#A)ãL3Åp "ª45†­ÆoÞ#h‚&è†ðX£Æâ ,䨴ž@çXð°r'h¢[…¡'b&^@}¡«E²ì]ŠÞEq!þH¸ìX\h,.4Ì_ÿ•Òöðcw¤íĈÊ âGÁ_å\`,.4‹ õJ$Å…š¼È'ƒöàERB4’QÈ9 ±â Â@SÀ, ª|©ýPwÃ+¼È‘ùh^¤‰t¼H&8u =˜v ë3läE޼ÈÝ@ù—Æ‹u©ÍþUâ—§ß//2þœ¦æ´“p{e }œ«Ð¸Vš*NQ„! ‚¾ä…¾ÙÈ""N•–íVQß>Ú:½ÁæëœÞÞma·¿òß–Jh®+³wÌ.—Æú—^˜uì‹7Ã6³leáhÄf¥¼=N/Ó7ïd¼¸xo.Ûë{à-úówû›+6K12¸YŠ‘ ÐÅñ¨¿IsMÈË÷<ìÙF_§£è´¢³l-’üñ#Ùzë7ØÆ©}TNëCáÿÙ»¶®6v4ûίðãéÓ˜è~™y9` çL§'é9Ý™Y‹5‹%©$ðÄØÕ¾Ò¿¾¥²Áe»ìRA‰Žó€!»Tº~ú.{G€mî.oËð82ü(B†Ýú’0ÖB‘RŒ+„#½³eÜgáu˜ÔUüò„@¿±9Q°¬#.LÁ&±»áUmÎtІ#ØbÀê÷_Å*kâõ][p‰ÊC>îdûgí•D²«Œ=4К†À<çŒgF9o_dÜRj1q Í´ AüÜ%™t¿yÖD`>h áUg JSåâ9&$‡5„ ~€?ìJ¯FÖ35å×í¡Ý&¡lS(>ÊèX Æü¹qÖÃäûݤ> àçu·?ìO»ÓÑhP÷ûíÁÕÛö«F Ô?g_GíÄ Ð öç©Ðc§ v?­5QÄe§N*ƒ˜ß•† B%q%qÐ"µû}vý9«¾ôdzIç7£†ÃàV_$yý:ô+Ó©øB`ÔYôÙŸÿòy3«+„FO½/:y|è|ZõºØUwÖ4ß;Ÿn†¬øþ/~9õ‡ÿîO‹%•7¾xÁ8¼ÛÕ-Z@¸½¼™2AÖ³³7#W³³jwè¹;~eêv7g_ÓÆ7ã³ßÎ;¸Û(ßYÿÞÙHÕú8ÿä¾mÝïw“Æûyß.ú4td×gžë¶êŠ|ªÍ]§æpðÇÂOc7¹VfÚ¿÷cxíg´ɪÚQ`1 $L±ˆýÑõØ÷Áõd¦ŸàUJi¦qíM¬ ùmÜ÷­ÜŽI)§&õ—™'ÌéT™Ûëp@\‡«2ƒD “ÕÒWAfÅoTÕùj ªåF© »N•C ‰‰¡d8ʪ0…?z urcO˜úNå»F<ó‡sÑ#Žìþ´vб¶2£ÌÄÂf¶~¾kĵÖÕ²vYÈE¦Iôø”!·Î#(!³ÌE/ô2è–y”qéoU¨AoÖÏ#n‰Æº¦7Íôú×O;F]"Ê¢ûóÆN‹FV½²&!#z‰?Bmª€?ükŒ¸eP o¢ËPôÊyÂÛ6"ÒÚf€¡máã 8Ä1ò×ôFïûu¤cUã˜_¢Öj4–Ñúùuî-«3†)M¡FÑ›n¸ m›2DqÊ4nâÖ¶íƒ-2Ñ=ØÞ«Aß#Úš·†VQQï{ößЛ.uéYN‘ˆ>iïú7ãúÆ a¨6ºüE2Wc[{DdÞ&ÎÔòi<áζŽ<ƒPr?ò5Vo—ïE½¸ºÏœ@LF^“˜sÎŽ˜±½é‡T­`f̓˪v ©$g–6Ý~l+åWµò%bAD[Ó¡ršáøøýhAP;N*míl&£íªX´ÑŒÓï;ZJ´ö-uÑ[Üxz[µd¨pBóèÁ™|šºMCHÑcÑæÊl5p¦µ¤ñM-ÁnIœP‰˜u;”YŽncWÓÎÏuDUôVô„¹k¥#Š˜¿KÔ­ôUŸCÔetÓö¶B°‡Ü¯Cî×Ê´M“ûõ´°ö/¸ÎÜJás ÌøÀAî8€0ì0Ò€"§$µ:X"©QZÎÌøfü½gƘñ±„xѵ#B‰I®Û²ºìø{ÀŽÐ3‰Ùñ·w¿7†üCe÷;´-ßžîñ«°ûP½i?vêÞ³æßLr£î_–0O8Aà @J`˜F”H3ãÏ~‡·‚  æáŒ1‡t”-ü?Vu÷h€­ð5#ýY5‹RωK±lÎ~+·£ZÂÛ¯·æo•·? ãîî¡øú—;uÓ7'nœÌ¦[<È?ÂZÿׇ0Èôááävz7¨OßÃé{pG½ä­Yu0ø_ËV¨Žº'¤ïÍ'c÷qB-ùeÞ«é6W$øgÒÜ=D‰Ü0Ç¢ –cºæŒÌÚ;dø¥ k{qéZ;Tm@2†xÆ2Pqm¥Ó:ƒY†’bmÉ„rqÉͪ¶7MÕ†[K “•“%‡²Fëd…ª-TÈhÚÊ¿¼4m`5 «O@ÓVYF÷)Úê é—ø7u‰O]æ¶ãòn4…8à i¦8& êòj9߈5D:$AÑ«Kœ{¯@CJ¶Êú¹6èØRæ­s`…!JDÃV ýr ¶€›‚~m‰Û.õÚ*n{´kKÜv)×–¸íÒ­=á¾Eª5¿Q˜¯Fݵ ÞÐ`›ækp±BÔÐ Rî×r@)ì ùë&HYä0ÍŒaqØG7ý©5·…`ã_ÃëöÔݪ',ºŠ´ª¨Ÿ~¼VÑÔ/äc'Œëh<=ñ·œð“¬ãÆ£»£Û½QÇb¸Šß+]ÇBÁÕêÅCqèw­sûð ž~tt´ó9ØÆÕfûMìo³Ùׯªó·QÿÞ›hÃÂý6->›þbý]j6˜¸~2Ü–öÖ^ÅÄ&O [¯bÌÿP®ºÞ_™eÖì Ãc®bU«£»>Á»¬ñ…ì Ö^ù-j< ›Þ¹žz°è5ßU-ܺ¨|.9vy<«d"×v®Ýç@ÕäˆÝØßÖíë >yˆuÆÆ:·<`7ípÆYæ8ôW2ÉLÝ•ìUnNíQvžq”“ˆ.ÍñÏ“0ϱ/¯@œÎå^ضsâ‹Ö„ÏEU2(ˆFÖd<ЩiE™Æ8`8Ï,b\Kâ¬t޾{2Ö,:DÜnÑ (ðZ0URâwŸ¥E‡\I°Ú&$¾>%ºëÃÚÅï]E<·ª±ç|…Ì‹²â†Ïd¡{È*ƒK4a¡+j+Ì]ÖeTUõbÀ¯ÚúzŠPQ¦QU’Â…ôoU5^°¨‹Ì·”±Y ‘àqýØSÉL>˜Ýô‡UísN;D£Êh ÈRÎVP+æÒFÕ¸„j¦éõ¹UC?Õª ¯4BpU×Äõu1M6öóƒ]~°ËÛ±ËÛ…ÏÕ8x”ªJÓ…DbÍ5ʘª-£{C&s?O¤™é±/r”HÔ–€³œÑ4ÚÊ_äR$Ñ?„Ï8;O‡}šæê°‘ I°ƒ¶*W÷ÎÓh͇˜Dm‡\ˆ «žF³öò^"ùcd0L2çØ(ɦ2ÇÆI&âé©ÂÇIú;`_^¦ñœ‘£4‚Íà¬ÇÃá'¡Ì›×§g½ó‹Ë$ËôBö£ÒhZó³ “`÷Hhwñf Dª-r i’þ&ü4¿ðŠr‘D0›úm@"’Dë›öPXªW§½$M碘.W%ê.ÏCô=ɸJLÂY¤ß%=Ïy[ôÒÿÉÃ_oŵ:»7…ÿ~ž(”F^ä\ûãáe¹ØNQFCJE¤’Xk–Y äo]š!I\.vï)¢ú½šL:?ýýKï‹Ú–EÀ>Ö׺RSÔÈü[§~®Æ¶£t棚CªôçþÐܪñt¡qV|x’/>üeòõûÐNO´MÆ/æL×Ï€“y¥Æä$³µA|þlº|·“«bŽ]ͧÿ§¬8â?°&ˆ\¾›Sµ»6ݺè½û|ÍX…GŒ¿7uü>u^è²vr¦!`“7;Êé[ÊM/Èú&²{?Þœõˆo=qºxËÖR¡›fY| R§Ãîð+ã¤Bæ¿ûû ¦·û¡Âå3“œÞ‘VwÖeŒ7‚¬Õ áÐj¿’¢1Vˆï£WãA·È ã06Ñr QR!D«X4AxTˆ±D`MØ)"1FBÖ^3ߣTˆ qQëÁi""@F ¥Ï‚Ü6 æ‚xŠð©î¸ËD=™^U*$SS¦¾"V*DgqŽ£¹åë¥BƒÅ«öÔH…XýFN£×Ën©„,àŽFÞGJ…(@Ó¶VÍ÷}I…XxEôÚ‹” aĬ`ôq'B%"Ac85V*„ùõ h¼6ÃëI…hè$É`ôGH…h¤ýÎ]SÈ]ŒHb‘k ?!ñ`fÑGÍ’ Áš*-H#eÝR!†;€iô GK…`fe z±¿²T”¢‡'R*„d¾?•Úk©–1êh¼Y#’ehÓ\}d×B'NºLêºCò rˆfîƒRfΗY Ó²Îb|•HãûU QSÎB)x›Ä0¿pS B­{‡ýf(ó B€éŒ:# Nh |.áfxeCÁCçtA…™Šj3$€=ÑmŒ1§Ó;;8Z4?6…ô/ߨ¶ÍÿÙñMçt íxš†PsÑHÕ$ý‹!¹Éá²ÝeN„-%—¹dŒÀ’Ç\òÚzß9™fÅ4î®ÍÄ—3jî½3<Ÿ㯥3{/ôX;é_slÔ­ìöéiÎ+˜¤&¯€÷»y’Ý‚Å7Ñêø4lj8#áx¾ëÙ“-U.ã³²õ¼Õv°çÇiºåœöÂf{µ‘TÚ¼¸È9 [K’ s~ror¥)â&$Ôç')´F—ç!S8I¡5üi [ØÁLLRKà)'Iºœ1Lè´IoÜò4Ã)!õÇNÑ's†ó„ï–°¡ôØI–¦•‰êû[_]ˆ0 oÚQ»'èDlú±üvÒÀ÷N!È!å­UEΤt×Í0#!É$Z*̈hî{Ÿ+~÷'wè:¡pP† µÐ/ó¿—u ÅÕKm«" ~Ò,ž{|4ÿ÷„.÷â;<÷·Ÿt~uï£YçVÝÛ ®­A”{<›'¸ûŸŒVZ?ØÜ±rãûÃwâc@ ø\U~ÜÇý´•"óÿ_huÏÿÇþpº|ß]Â[A«c6µ_Ô`f;¿-ÄÄCÕxèF¿Ìë¸ÃL;ñÓ1Y¹xH®/=ª>ÁžHF7ÔÅ®{ ðj‚=dþ8ãåbqAØb/X[xÝõµÓ bbý­oê›jLxìÚ¢K‹~l#¹<7¹¾4ÒUžÿµ-3"í"B[ðzlý¦Uå$eTCå@TªÖË÷pT¥nX €EQI§s°¡úéúöÛØÞîm¨ˆ+g£ò`V@ÇU.mF¨°7hâ䫾ê¬Uï‹­DÀDe/ÁÆáÄ]¤¿W%Õ Ì1â4ñ›}˜^[¿”¦×j2™¾_ÐU]©!Vº¸ä¬Ç¥0%}wVåº1éû2.µ”ñ´b"4‰ËÒ(!{l–WÍ®$*·š ·Aá1¦H]¶åÚ±x+ì·¹;HÞ½³€àÛ‘¼{•XÝïM™î1Â…sК/ª$ Ÿ KƒÛ–{—´Ä™Y–Ñ+Èl/ZÇG[r°”p‹Ð^[¼¤%ÜKØ"¹dIöøù{Ù¾ìß",v…pK>Ã4ï÷oë]¼Ï´Ž»ˆo´>Õa¹_v­o=âü"ç­E—¸’ñà¿k}‹~Ü0k‹§s‰;î´$)AŸ†Ý碥Àn ÷ å·XÛWˆ¶ÞE¬¨ýÙ9õ£'Úîâ—´¯;ZD*" n[øU\×™ª^Ž»ˆ|´;zð#ÁKh<4n+ ²Äí”CrѶt.¸— Øz{)è¡°4Ú>èŠÀ„m¥Ø<áJo^çP ~ú½(Ý÷ÇÓ™èÑCw4±íÄ•à ­’¶DMJ:qÈdFÎæ¥ØY@ƒZ˜ â$Ì£ÂJ_æ/y6zè|úí¢Ó깋»Ù@MGÑŒ½• öa:öƒ7øÞqVMgcÛ÷Ííqç¶sÛÉí¸HI á¡à‹? A'bLù¸?±3›LGAAõ¸ÓŸ˜ƒÉhAœäAýÿrvúX :EÐÆy4½UÅï—¨ÿ%u¯ú¥¶£&O¹v~+\æþ7ý¦|›ŠbîÕ?ønÒ¹ðÍÑŸþëïÏ3=è›ÎÇyH¡óÓŸ>üÃŽÐQ8Mí×"¢°Œ->=ÉÒ‘ ‡hÑr®FD‹0„d­¶F¶G‹眬Ò1H)*Ó1DhŒ>põªê®/Œ.z«&‹gòás/&.ôÿj¨ŒŸ! CCkýXô_è´DBúÌÑæèVøÑ×÷À7ø½GTYvmîÌõ¶Ê\l”8Ê«¾7UV0N8±2ª}o:¸¾™ÙÉtQ<}}§&_«¸¨ƒ’GD”áþPUN ³ÌZQ皬^}c´yN½·pÀÁg¿ç>ûWq«¿ÄE›¾¿aû?\\dá‹@ƒ:)> &ÙãWÚü¬Þ=4zc€›¤Q½X؆M˜…¥5T’LSL˜5 #ªü­ŠQ(ƒL¾{`ÆÙF=0†[m6áû ­Øl˜Ër˜2Y'QØl1ÀoÓX‹Oß™Œì`0´û£LÅ3%!:À ÙÌoQ<;±:ÀX)¨AÙÌAx¿lÃC‘÷²ÓÕK¿ry™ª+Ã@ù£:S˜cÍëRÑöÚÀ=ˆ D†Ÿ‰}®À>ˆ oÁ>ˆ D†=ê 2\Qäy®Ä?ˆ D†`¿m‘á´š^®2L•¿µeÊBƒ¸V™tÐ)®5Õb‡8QDB>¨ ÿ•aÍ‚pÍ­ø¶º•1£A–¸äV‚Pò* ëœÊ ]¦õÉZ!2Ü\•é­ù•ó‘Ÿ jl÷BfXˆgM&“®dÏ~g"ÃõÌÙ‰á7åÖl•”»„á&uÀj” )YF­“µ•ӛ໵‹µ³ hµ¿Y¥›éÐV®­µ$åj¡7Û×-~BM Z\Ân]³¸„ݺbq ;•^ñòí«—°[×*^b·¯T¼Än_§ø ;Jñ»}â%vû ÅO؉ô‰×ðߘ:ñènØ×£Ñ×Öô‰C†î&÷^„]ƵH'¥Á&ÃZ"h!5ÒIÿ!P§Oü畼£‚žéÓâ­C®ûè®3ºûj»ÞÜ ’qÑ)M¡Ã×rš ì‰õ¡ÿø¼|ÌÿÍguß÷÷Êá±ÿɇ`E© ~>î_Ž;—³±wnËÛx¿ï§àåLM[3»È§šì&•l2[;Uª©.À6cÙâèЇy£½ÞG˜[€”,”EÊýGGrt“´eù "àß÷[¹\¬¢_K{:,¢ñC9½Ææ^$/*3w×VQ›-îÊ4‰~5whÓi¹Ôos÷ø¨£¨6¦jÆÜefÓUnþ&{¥‰Í2þò6*Óþ4ËßFÚ¼l”ùr¶ÊîÞ¾1·]u¦”¹í~Õ¯UI^7gåpdOÒÙ|¹§€ÿ×Ù¿ÿoýüïÿµNRö~Q}7[¤£»U°;öæ>Ítù=2äÝú \¼ÛœÓ½wï¨!‘ãøâß½3ÌQÛö‰)DÝB~ó‚@NeÑžûwÿ»Øqåœâ=ü_“yn7‡¼ûiy·i½'8Ùœ©Wð?uߦÛ`îâÇ/,Þw¿ÏåC;†ÅýÓŒ~ c¾ú›ùó÷‘ßqÿ!nZwÇk¹—ìñ)½òãòã>•wÈ>L´«„‘«ϰHY’gJ&<Ö‰Ç6 >Õ:IA%’é …g?ÚÆëòeêÏž—<MŒH3ƒâ½™¬ê®îæF~ý§~4cä— ’Çfs”õNÅҌŸGÕ]õîǤ||ÿ³ù³ÞBxû¸Á+„ß³y‘P…ÛO,¸¸uðœ ÆrO¿ ÿ ºàêÕ×À[KÕCUNÝiugÙzœAXbúB…³ùwmxC‡”¾»§ÂXwt9‹š³¨ééõçVåßÛ“o‡Ê‘8Ë0yZ°4§²7‹zrÂ*Í /²§Œ¨1XîﮌÎQBâ$F©Î •³^ÒCSèŒsV$‰BY.SzŽ}Ç©ø6#Ùñ©½ö^å]zÏÌ%Øn¼Äkƒ’Dk$eó817×9¡¹d¹Ä˜TgHçyŽÎ^g¯ú½»¼6âC¼6°b„(·WéÊèXwN±˜ˆ>Ýj®ßqÃwŠ8-±úmÜ5|qÙã—bŠ:‚t„3³ÎßëÑš]äú£žöîÍKÿ®Í!.¾ß'Ù·ùÒpzßcÚ-óéÐCü¼èÝL÷Ï%Dûõú‡Aï[Oh‹/‹þg_æžø¢|,—ËÙlÚ÷þêaÈ»4)f”ü°t´+»1U›·.î—³êÂ} Ü%ú¿ZM:YåålÐÛŸ¾‡A}ñÙŒwŸ1ö•ÔWÙPâBÏÍL}±ÈïûJ¡²Œõ:uÛ÷\dùË7ò»Åß7  _ Ÿ²ìã¢^›7šÇ}ìªÈÕ˜3ÉK±-’‰¹™Ð„H¥¥™èÃ’+ö’Ç ë®Î£å,2âÅtcn~ÌÌìP_6›>«×Í—aÌê±,Êõ\j/ÎhQO>o£OwFVE™Q\M{V¾Øð+‘­œÙ<8uŽ#ú“QRY=G©™@ÌÇ\üÙ‚ ö^ëª|ü`””.çQu÷eaZFk¢¡UÉÜ £èû¥QdÓÙ'+ö¾DågÛ˜ÝsQë3#éßÔ?ջ矚yk•Ø'=Úÿ5¡çõ'²Ds=Õõ†³y{Tk:£^¦_öH¯ÿX=þVÎgÑO÷ÉoåCDeÙóx´(ì#ÑÞÅ@á?•‘çÕŽc»öçÚb("¥[ÀLí}Z¯º—ÛÅî+悟è¢`½nÒÄ ‘Yf|zXº4X÷ŸÓo¦³ ž¢—>ÿÜ|Ÿ;–Av‡ûg÷ôŒìŒ°§µPxNÝxek§çàõ{‡Wt—Ùlnƒã[f{¦¾ú¡*˜hdš–¥˜j$hL8ÓbÚ<™a^&‚1”ÁgÑxßH4ÙqëǶÓV8h¯h´‘Ï¢ñ,Ÿ;,¿NÑØÿtù,OJ4‚>S>:ÑøížÍ¯hÌçiµßBŽÈˆw‡³CJñŠ”² åQ’RžfҺŜsÍmúL§Lëd`¼.Ëy™®–F|ý¢«©u柗fF¿_ÇlՉצ›˜;ÐùšÖÐÆa Vlå|nô“ù‹úWoÖÁسë'§FÝ|šÍï­zMg¶>=Z嘆N<Þ[qV.­x[¿U™—”y„k~}0õ,kƒ¸›æ›-Ë¥}eUEÙtem){ôÜÏF‰–Ueº§\<®wKTÍk£yóšÍÊNËå&'»þ³óÉnŒ‚ªåÅÚ&Á4¤7/yì®=}<¼µû+º±Ú=«UÇJ&”j ENDÏSÛõþ ÷"»ð¯’ uz+.8üÍÎM‡*ĺÛêî2}  cÆ^è´»ùwÔjùc^Ï3ZçLë  ¯MžEÛy Å׊«Í5u|âêþŸúaÕgˆÂÂ#s^˜ÎŸ;JÈd%"ÔÜ€¦$ÕŠf„ÒT±‚rŒsÍ%‘ÉÍŠA2ëoFÍü×Íÿ³LOíÎM3-ýX¯Ò •W{vïè\' ½¨eÓ¢ÒFmiT¿ýÓ~42èç+#‡Þ躢Èþ¶y­–Ióգ݅ºX®‹Ô"3)|ÐFVUt³Ç‘ÍòÍâáôËó‚}Ÿ™l½œ¹X˜ƒ±2ÍLüú£UnÉÜœK£Ü’¼*3_Ô—7f¢+VÓæø¾ÌVѧäqiæpžäÞOõ.W«Õšé4úS]Ì÷9y0çì›ÿ)ÍìûiñçæÓ4;|×u&{ôÜm’έ̼4J,™çAtWÑ´1J›6F¶lÐüç=Ù{uR²»ÏU<«Ã8U±·ÏUJ…\†¥bj˜OUçz¼ØyAÍñúY:O>|8T‘m;pÛq¦·´/Mªz:¦]Û7v —=“¨Ž ÅvFáÓÒjgïüßK¯õ[Ûc’(!sIó8S¤è‹‘8rͶù¼Û+í(ÅÛÖ¹á+ö+löÅ¿Àw¤À‚KSš%¨HO0R<ËfJä™(Gšàa»R÷ùŽœ]Fþ .#6zªã2ïy^*8‹ÛKëÐŽøŒ‰ž ;»saCƉè«Ã­DîWÙý*ì~ªAºbSf_·û»•äÃΰ¿Ùö«áU80öU©Â¹¹Ôuln’ba~à4E,AR³)ùþ噀àývU bv‹IŠÓg²7UãðôdÄ3ÊR‘dÔ¨I–öŨŽÜqí‰îðÓ‚ÇÁRŽk6 ’ZY‡xØÿ„b3„&ãË0™»5Oå8XdhÓ ™HO'Œ‹ ÝÄ'˜†Ási#'FC^úêH˜lå&gfÂý ¼ mÙã@£B‘£&ˆˆ@ýbùc›MBE¬^½uC—!By×ìë‰,”*n[P6Â…äÚºÜ4#œ©6x’ ±ÑÑ×7áÂÝi˜v¦â`ìlÌm"õ„Ê09ÈÝb_æào¯*ÄE06Gè*›=O'Tü#Ìéhð1¥ArÞ-{`@òÁlŽ„™Ç¯Ã°Ée…9Ò'œñJš *;ÐwÉ™¨(æA„MÃVA®üšMâ0}ÂoíP¦O,»¶ÉÆaú»f›[´0ÃUƒ§Aîºk6 £Zj63ÝÂö ÌÊÃᯭpaAæP3Y°0'üõØH",C°º¬Æä–P²2ãKQ\ýÏüäO(¶¹—aFqmE Óß7¸c一«ÆáØ M:¡¢ø0·Z–)žà0£ŠÅb;&È cñæ>WÈPxf;>ˆ•¬Nþ 2¶È«qrKY˜•*Ë·\áØx‚Ì—ŽO&ˆ° 0Ó@@|¦ˆ#QFEÇ6¡;›01A4ÌWÚðã©Ñ€|a—4© ´Ü8¾’öqY›‚†mFù@ÝoùÔÌ®”Çÿ2ÛÌMj¨ù{|«ÌPo†4Åx%ìÑóX…YroZÀA4l2a\ª«@kÕM,Șٰã ˦ û*àqß<îÛÉe˜öI¸CÇt‚d ƒ¿ÌÄ!tFäªvã!ä°F²bBöÕìø†‡8Õk¶DaØq,*ŽpˆsÇ7·“Aæl"•²ßeˆã–HŠP·Ú [¹Vêv\I%CœßöAre¦·!%EGQpßÚÁ³§äþ[ï«4·'Bd¹”œÍ³D 1—y!U–§æg*󸼝ò¼¯ò›mاTRìí«¤±›‰£¤â=[ºû*7[Î{+`o¥MMÑÞ {+ŸÝ?ð ÷Wž­’žiáŠüâ”òÅBIŒuß9<ÿ£ÔÇ?oÃtÜû-§å´bÇfNOòTä/8§B¡Œ™ÿ¥æŒ }?|ÿË•§Î+»] ©_út 2"¤¥KC˜=«KŒham]"0S„ºNBÙc§m¾êwíâÂÿR/èÈüâ„äÈÁû+ÌÕ"M§5×}Ýc¦› 62b…^hô°ùwŒàþeÚ33,¾<ü){ÈËù{‚´+ÛŒeBª¤o«”ªƒ”vâX*ŠÉ ’ý€ï?èå{œì€åINcšônC{‚Íõ‡Òúù¿¯¦«åã$EfæËŠ>s-rõØÕJÐXéAǹ0Ÿwùù}f¦*sª-vЈʤŒÕCk_åN’ÎX~Z’²ù˜gAù­eÝï{ä¤Â))P¬Ê¡è(¶[¾tKdóY›Åzs ¸!²M¾©¬í<™¡ËJp‚Lo*%¡…´Èõ6qŠ<Zî‰*l‘íV&„^A=îàÁöóµÈ7²º½…ZìwÉ_î0rÉ© QàÔkÈ$ÀàÑi€So<–• ÒÏ–|{{=†'_2Ȫßù*¶Ã¿-A·;ó`·º ݨ+Ûü…ƒQ|i·Ï•‚´ÈW ° Ò%S$Ã\ì˜ T) õd¹EŽÇÕ ÂCÕT¹tn.xEüP‚ù±—åls¥ e}ŠL°Ò+±²%¹PÏ­]²²…Ä"€îÊ_[§x²Ý”8tgâq-YD*¬Y&E"‘¢šk†Îxš(Ái,’$Ó‚ ¥³„f¯|ÍÒ:±ÅÝ@7ͼ½f))ÃÊ3b£ªeRkñ°è÷¤Øµhùúý×îˇÔtä±,]"^èÁv^ºLŠÅ í5Ž?`é2Ó,—L÷.ÛœÐÒåN»á×¶pyöþ=–-A#æºé”äR)‘s]¨âpxI²ÜTá"¶ÅI,!,¥ü ïòÈVZí§ ±Îêr!WY·\Ø5V‡ ºÂêpA×W}.ÔêªÇ[[u¸ð+«l]Õá‚®ªn¹°kª[.슪υZOõ¹P«©[.ìZj› ·’ºå®£:Ü«¨Ûf`×PŸ¸À+¨týtË…]=Ýra×N.øÊé– »nêp¡WM·èk¦tÅtË…]/u¸ «¥OÜ“[+uè«Dݾ  •pŠx̔Ԛh $c<‰³ ³L'Ç1ÖÉsÆ7 Ò°[aXg+Ìžå[læ7Ù®9¥Šâ®ßREq_tx½¦}š>¡qbû`O ×ói9ûבDh —nƒ ¡aÎŒ?D|†ýœûßxŽÎ8©ÕDó…îYM,Š‚ÇYÁ ‘dY÷U©:Ì«‰Yj­[© ©HbÊäáðýyq.p‘˜9Óš"qÉé‡lò®µ Q¶77«1,"Ãá‚Æc´¹ Ñ>>Ão0ÃGÃÆaøtÀ(  çCE`¸\àø  }áqÁb/\.tä…Ïwá7uásac.<:hÄ…Ïoá7eQèpƒÄZø|°ró-4ÎÂáÂGY8pÐ — aÑæÂÅWø\Àè  [ÑFÃEV´¹pq[.lT…ép¸ 7À÷Más¡b)<.X$…ãð¸`Q>*†ÂçFPøh¨ø =áqAc'<6hä„džŒ›h£A£&4h̄ØØraã%.h´„Õp¹‘4NÂá‚FIl¹°12BÂGÃßÖ€GG´Ñ ±m4hd„‹†Œ‹Øra£".xLD› ás!ã!|6h4„Œ…ðÑðÊ6Âá‚FA´¹°1>2ÂcCÇ?lñ°Ñ>2ö¡ÍŽ|hÃAã4tÔÃ"æÁ§CE<ø\èxŸíàs¡b|.T¤ƒÏ…Šsð¹€QÌ‚Þç‚F8lá°ñ O\øè ÛÐæÂE6´¹pq [.lTƒÃixâG4(89olÛ?To¾ù»Å©qoÿ⟠€4:©JósÐÂ3-AÐ&‰2—43EŠ£¨¬þú0„Í5v|¢ëÉVHt8‹(×T¤)ÏÏy̰RÂæðR…³‚êTÆy¦9;‹yÎbŒÅ^BL‰ÂnB¬h| ³ØF$œÝÅŽÀ]ŒŸÝÅž!õº‹Å2F*ãh0¬ß ',¦”ôî]:!w±gEàks;‹ÀW#=î€ýˆg”¥"ÉhN8K{˜Ý ìvÓH½b.:–³<Ïûö•‚õÛÑΰ®c>Òy¬Í†uóØ dÔ…lʉlÌÌcÃ;’íhl ›Çu&k³aÝÉÚlêP¶‹ åR¶‹ åTÖfú•uÙpŽem6¬k™Çé\Ön Ö½¬Kë`æ±A]ÌÚlX'³6ÖÍÌcƒ;šµù°®fÚÙ¬ànæ5êpÖfúœylP§³û¤Ýξ>ÎÄî,•ššaîTJŠŠÈƒƒÌÉü‹"Œ=Y+Ô Ì'ÃY”¹dX“2 kSÖ0*ë´iUÖ›•uøve­ Þ†e>˜eY'—Ò´Ì…ÃÚ–ùd8ã²ܺ¬Cc^Öi̾¬C60óù°fz³N#`ÛjýÄlx#³N !’³ÍÌ\r;3khÖ"ƒZšyd@S³ÒÖ̇ƒ›yp@k3 hnæÆÍÃÚ›¹dXƒ3— kq擃|ƒÀ6g2˜Ñ™O†³:sɰfg>Îî¬C3<ë!-Ï:p0Ó3Ÿ g{æ“aÏ|:¬õ™O5?óà°ög.ÖÍ%ÃZ 9d`4— kƒæ’aÐZdP+4— k†æ’aíÐ2°!šOµDëÀCÜ ÁÛ¢ypXc4kÖ‚ƒš£9d`{4— oæÑ-Ò:dP“´Ö&­ƒ‡4JëÀC¨)`³4— k—æ‘ Ó:tPË4Ÿnšæ4l›Ö!ƒ§ythë4kžæÂÁíÓxµÌB­C7Që´f£Ö!ƒ©uÈ`Vj2˜™Z‡ i§æÃá £:dXK5lª¶%°Usá°ÆjÐZÍ#š«9d`{5— k°¶%C[¬mÉÐ&k>ÎfmK†6ZÛ’OÎj­ü¸lJ-?ëǯuüÀ¶ü±[“ÉñYãˆ*3;˜ ÍMc¥¸à(eÿÏÞÕ-7ncé{?¯¶’Œâ÷&²lo2›ÞôN’ž­Rmu h3–EF”ºíy£½ÞG˜[€’-Š¢-Ê9èØŽnÚ-Zþ‚‡8çç;†%îj+÷{Œi¯tqs÷Éâkß½“ÅGx<)ü;=©¢vz=ÏÇõ…áÕ4¯¢ÿ°“‰Mï‚äûi.fYsŽå“ÔÞ—WåÉ;O>¾w¶a)¾Á07óü׳Á}.È: g‹&ÁǬ¿HSÚ2tÄþ d¦¨’³Àëu«×Ë/Ò¤ÈW8~fÓëû‡ØQÂßÞžÞ\›ÒÐls‹‰^UÞ·¿Ë}jö—NÍv«þDb¶!<34K­@8KTÚ³#-û£è.f ΕQH²§6%f÷AºI'…3!Ò¤:¦ Ù–óýôä»ð3«Q‚p‚‘°:ÙMf^@Nyë…É(ߤ{óëy¿“½<£OÏ÷¤(P†:Æâ÷U ┥u"&<¥$1\`‚«•á¡D$RFûU ®ÕÖ…|þ† C·Ñ Õ¥gžÝ©Xð~ñM1™9{ª&Û]˜„u‘ H·VуÿŒ~ùé4ÒË1ÜofWÑ`vcÇË Ãû©°ÈIËÃ9«©¬ìì)JÜ¿žÒv0v¶È,ˆy?I}ì†çE匑­üµÈÓÊ­Ž‚‹G Gê¾ÀÖ GKÏe¶²q¬œô2Û‚|Ô’Ä£øO`<&S}y¹«ñø°r~Å` …ˆŸII×|Œ]|cë»ËÓ §-Ûñ^yåàÞ‚|‹äüqʲ Ù$N¥R%§%æ\w Ï|2üRœ±¡ß0á’ŽÐò¼uƸ`œ¢Ò™BиQê©¡__œVH®p‰/F£hãb¸:uh&(øs.½ T’ÕÀUÎÈðNaæÔT©Þnì[IÀ ȸX9\ðWn‘tÑo¾/Ï—]jÛåËΙä_Ê“:AŠyÆ3MP&³)—YÆ872eXÉŒfÙ´_ÃÞ“ýÅ<ÙTñXmx²ÑãMV¼„¬{²‘TcåÉFŠ¡†O´Ë“íeó¤-Ä~lÿ½·ìÅ.çÆä“üEø±é3“ ‚ù±H¼y?¶¿Ç½ûKû±}“ØÇýØ™Ó\Âd,ãÚ˜Tlmo³ÂìáÇ6‰gs ß°~ìu\`?vÔÝõc¯paýØ \h?vԽ…õc7q!ýØ \P?vԽ…õc7pAýØ \h?v ̽…õc·q¡üØ \h?ö:4œ» êÇ^áÂú±¸Ð~ì4¬{… ëÇ^á‚û±ÐÐ~ì4¨ûؽ…õc¯paýØm\@?ö:4œ{… ëÇnà‚ú±W¸°~ì\`?vÔý€ûêüØÅÍ$OŠâ²·ç\AwÌìâÑ&D'ÖdFRl¡FP‘©ÔrK™²2Mœd0dßÅ£½,¢«ÝÎ?.ïÜ}š7QqsmÊiñ«5³Þ ºý¢· ôjìʺ…Ðãè»÷«aN܇÷úS>v‡î7'ÞÉ¢;˜Ü~sÕÿFó_óY5~ʽHTÑà&‡ÑÀØi4¨Jw¯ÝÞ?ÕUžèè'=³ãq>³7Ú\å[GµÇýfÙafbÆóÔý9Œ=›ÙéÝa”i7þؤ‡‘u—‹‰ssux0³7¥›õl>µ‡Q}­Ôi=œïþyA-¦³'üë?ÿü¿*zÿÏÿuãÔ}iªòÛ¢JޝæÁ:Ñ,\­nÉ/í±»‘“å¬Nîåz{‹ó ï»Dç‘ê6uï;Ç5»Ñ¸ Jõ+AìzùŽ:ޞטOþž¦ŸõÔžü8»ºýiWüÔIëõ®Žø‡%¼_6g<çÏM*o>ÓŽnØ[ãÓª¦KFúá¾rÇü¾?öåœïýâ\ݲ¨"ï~-›¯ñ˳ÇùÔ@e2È®Ji²ƒáÇcÎXšpƒãIÌt,Í9ˆ§Ü”eÆJÆâ^†ßßÿmøL†Î?…´a¶fˆ rA𣶉d‚‰5Û„1‡Á¶ ãŒã-¶IЈ£ö3="o>- *œ]=±Ó]͑ź-^ýzÙÜZÁ4ɓϴGîŸdW _îÂp]ÝÝ|enÒ|úqê&ÛUȃ’ØÌû}žº³K’R§dú ùüxigK¿Õu•Žó !·F‘À¦ö2wò2ýXŽç—ù¤’ªT¡Dn­z€œO¶ƒZʼnPv›2­A+w¿³ÛÆi+'jUZ¬Œ”B«-hͽ‡ˆlìæ¯Ë¦Ü'{ì“=v僚À)²+‰4:&ä%À09üï÷¼Œ¾(:-9ƒ±Rr^ºg X\ôãgapàq©×Yà¸>ÃÑ(&C0žØup¸^z+Üsés&às1ð²ß×*© .l Ü|“Xàpa ¤‚‚¯¯Ç½¸8€‡Ü)hÇŽîPøÍÝ7Œñ]ñ€Ûú= s®†~øX¶8õÍë ó^0RÈæ«À0’!^kL9*O5ÃT Ês„GL€'ê¸ÙªRÅ<®Ï†±Gpí  …¬Åb„y€õʧ ‚q×®‚ð¾‡ÏŸPìÌwí…Æõ­ûö|nRO­Öå­¦fªÚçðÓR+DJ43Y’ÐL ª±@†‹›ÄšÄS–õô‰ž-j¯¾¿Y®åÂèãÖùýYÐ_pŸ‡î8~«'³èƒ§å‹†ºôÑa÷sšîPfÝI&¯çpYèqTdÑÌ]ûþÃÏ¢e¼6Ê«hVDK'B¤£ùm^ÌþÍŒ­žDÓ¢¸Y|Žê€ûw­F GÚ}Y¾y/5“`d–S6~Ê‘ÏÜO#÷7ƒµ›Íþ0Äl힇ÿíT%f'‹Ÿ1ÞtaË”¯1™°(Ö6)"eØiàÔ™C)M„ðì¡8¦£^Ê׫Ãÿ:÷K40ÆŽ}¾•{‹•Ö»hÔG |Æ×ÔmÝNÍxQ•Öë»lñõÏWNèèýЩÛ·Ò~卑¡¿v}?‹¦ó‰Ïs`©¤Ý{å€vfW¾ÜȌӀQêDÄÌÆw ]ù7׫oãÄÐMÆé Ÿf?ÙhbõÔ‰«Û,ÜVj§µ0MŒ­‡sÂ=¨»·dóñb~wÅ<úìÕ¯ÃpÓqº®ð»Jôc›æ´P´æE_y%ozøàïnû/>W_/îf‘—çïzV”Oh­ LݦÚñØ©ß j*[Œqœ,Æ8öŠÙýsâE}{m8¥›µáüQ EÆ|=;ÄD­±œ’X‰-,§uxã]<ê|Žä›'Åxö=Ù5¼ZÂÕÒ¹õˆ3.ø†zë~˜SÉ}×v¹E·µ¥¤/ìÆ.üº‰ûä´?*˜¸=9 !FKàJbl·‰ð‹ŠÍ=ž@¶zÓ^dÙ:o„ïLÔe»¹_|)B¥˜NIªElci˜ŽSÁ1ÃV ì6WAy–¡~FÛžçËâH¥ZÇò˜ùµ;‹×ÓÞ0¥±j¦½¹ R¢§'š'›BÜÁˆã®¿ekç²(*ëÆ˜îÜ('ŽD/ŽÇ‹ÅÛgÅ©ïroÝ|ñT©º§ßã¶ÂIœ!¡JyLÐÖÉ&êú-‘’§$…¤r›W님M;Ñ×´E6 M£«*0…M šÄf–Ʀ KdÓ@¦²i"ƒ“Ù4ÁaélÈÀ„6kÈ ”6MdXR›&2,­M˜Ø¦‰ KmÓD'·iƒÃÑÛ4 n6Á(nšÈà$7-p@š›&2,ÑM˜ê¦‰ NvÓ¦»i6x‡%¼iöv§¼i‚ƒ“Þ4ÁaiošMØa‰oÈÀÔ7 d`ò› dHú›8 N˜§‰ K‚Ó@¦ÁY!Cá4‘a©pVÈ¯Ž ç¡ 4PúÁïïK¯²TgÚšÄ2jx&R.}›7‚ŒÆÖÈDZ#¸Ú÷¥ÿcSÈ’ëíEYÌT““‘µê³GÃîmììLÿÖ#îÏH Ò–>fÏŒ²Ã·¥"¼þÆZÓïCëth}‡vò$Nì¶:a¥³§z¦BÂÇð¹îÚ]Æ ÒnOO5$Ûjw·/N×ü3“Y§­qµâf[Ýñ‹s¦y‚œ—Û¶~þÉÔy›eØ;¹aêLâß—Ü`UBMpJd&SbÓNYÑT˜TS-"™L'½ÌBŸa°¬ï몊¾úåÃðëè³MŒ¾Y{}íÿ7ÿ¨¦Büר>µŸœýñ„ÙøƒžOÝÞçsåsM(8^\<.—¿­®ï&vvœØ` ƒµÔ9Ø¥§ò-zÖR(ÂO° rÌÖÍGi,æ£p§´-¼=>¡KTZâööSŒ³çž•Áð°|~É`20Rê™Fdóanj˜ö&ò´‚éŒí˜¯<‰¡Ÿ%y9µeO\O2â¹P«`vþÙÔÇmG C&16K·M2×>¸ý컌Yœ¤š!AR„Ñ6Ê«?}×öÞ¯jíü¦üf݈ÎóÊ œ—íìg\CFÅ%ãˆÃÇç%ELï\.d0|~V"9á˜0ÞÎù¸¸€† †¥ÜûÁÝ;'%bí¾BÃò”ˆ`ó?—>©Ñ@øXЋ’Åíø%¾ž•ÃÁÅy(|58õÑ5Ÿ)ðÁã`)ðAGñ_Ä·Oàc—¡Œ3`ªSœ"SÄ¥U™‰Bîs¦L¢§}m¶}@†>Üòª ÖY7ÏžíЇdríìêøIã쪠[ºÑ.ùð{?^þîç×¢Jv>»‰Ðg’ÎîãûøÇ[ɳ{ osEUmFŸ¯òšCj²ÏÓSùÚPÿÈ=Ç}?©Æ<¢¯*OåM®(q ÜÝfõµr°×Ö–ùäòÀÁäÓ¨¼º«Ü¨ãh‰èÐJ=u–PÍÁáŠÏnš“»è&¿õƒyv÷£b2¾ó¥õ§š§ýa˜ÃHWÑg;ûŸÎð³ÓúŽ|ùijǶþàpî¿?÷6ß=U‹:ŸüšO‹èÇkýk~£Ã”£ºgr\e¾SÔ¶ŽÄ›ÌD>jû¯VóÉ)n6†bR`º¥ ui7_¹£îw戽ZK¸¶êÿV}Ìá+=ýdw¯FõKØX:·^}¡Ð³ R—´ƒ£¼{O|Zc6%¤7äÆ6ûº,c«°šb?{ƒÞàvô cÛ§¹š¥V œ%j› üâlÈ–¸²ýÞo/Øvr,‚ÙNŸ§œI볫Ó8Žm"¬‘’¹CWšR•XgRK²·÷öã—± ^çeJŽö#÷”Ñ;Ú÷ŽÔ½ ù‚lHŒŸ™ʆ|Ô¹ú6íÈ~Ö½-ùªlÉ}ÓRxŸä˵+/«ÒhÀZ=„:ŽgZ6q¢•!íÎ,˜J,-6–dcK¤…V±%óXô2*×r©£5ºÝÈæÖ¢ÕK“ÒÖ ¿<íe¾÷Ál}}ç¾<ÉgÁçb7>{UÌnt>>v-X"öÍí•nèz `··ÇW³›ñöNª›Ö~¼œc«õ6ïDúÞD kÌ]P¸‘uHÛQüæ«úùóÿØÕ[®ßýš¥eÇŒ?3¶½zže?ÛÈ«aC:ú¡þ)R³÷&Ø3Á`Êúžè÷©¨á(%–§8“ßÖýv_Û×Ä™û(Ò›t`(nŒÍÌoÿO(lŠÐhp DÌÒGž?wØì¯k”x$U@x2¢Œ]&6Â$ <“¾yÚˆr1 ôêb ¢œÎ„Qd».²Ykö ЮP×S¨Š¡ø9»ð>Qp¡¾½õ@§@l{]Øg#ßlªÏoÇÊçó³€øžB¸_j×0<Œ¤zò/bßôõì<Ìüë1 Z#·°•ì£ÚÂ0ßSvD$XÑÖ-®=,ãÁ°B@ ¾]Ø4˜ÑãáɈp(ÆÂMxA Þ6±{¶CÝ»& Fga°ãÓ3(‚Ò6e¥t *v gÉ(/ fA ›¶ òæ×ر³&ìÂoåaÖÄcƒÑ#vaC‘?wa»#Z˜íjE˜ÞMÂX-56õ½ê® ŒÏG„…ƒ?ó† £k ^ÄNYÐ06p&–!°9:õTÈAæÍ•,c0Jáö©³ÿi», Ûàe˜‘Ÿy£Šo¿…}ŽËVAæí 8ß "6¤ãî‚sÔòؘ೫xø8ö D`<¼;çr žú…bˆJZÓBÙ[äpPSÆSåñ}ŽX8l÷.M"¹CéÃeA l·ËZ~Oœv%LüO½Ø0„l§Ñ‚¿Pu/°¦<ëðCÊJîgÏ„ ãr_ŒÕž§ ;Q&Õ0¯z1 ²g.°E·é{pÞçç}1: ãa¯áqnꘌ 4ù3NýFÂîÃ(–Üïb,„9ì g²â8„ÙWc‹s¨Ös›Ø¬­]‹}Mð’!¨¾‡-ìó‹’Ê :;–JùgbÞ‹0aŽÚ lä,¬ÔÅ ”J†oH.zë“Rô"’í?åÓÙ\“âö¨¨,,O;æi­»$ÝsßæÝ¦˜ ,R*ŒYFS“Y%ˆâXf±––Ê´WÒý‡Å­ž·Ñ?×Éò“èüf>Ö³¢7 z'ˆ½MÝ#ßE™Õ³ùÔFÓÜ\FWùåUTÚiý8'ÆFå"3ûÀ'å»'n§å4¯ldæÕ¬¸qËxý?{×Öä&’¬ßý+ˆó䙵dª  ØqbÚíKxmÏzŽgf;Î>(Š¢èf$ ¨åö¯?U€$Ð¥ÉR£¾ØÌΆÝ=ù%P×Ìü²²¢¢Ô9ËuÐÓ(ZJT(rÕÆlfäÉl¡ÞéYqÅJY•3¯Îc^³hVž$e¹ñÏTÄÆ—2{ZþK–©¦ÈJ­òÁóòì¨:Kúî×?ŒÏ qãc•`n<÷ùãO·œÇŒâ8)Ä´Ì//Ï Dq˜üRÿvœ®`ûr¹oFlYïöã–Û>`!¹f<à`J¼öó.¦–ë4¯œw±c™°²w‡ç×h{‚Œ0~²G6WÓ(ùùr^`)¢ÙL÷´ÀV[–í§­‡3]o·‡÷²ÛZ ;R—ó›ùók©‘Á„ÏùDåÞ“­L=ABÄ;«`福%{¯ §^èSÏ쬶£¯˜M."/&rêÉA8™³|º¯z7²0Á¬3å|[¿Z ö]öâY¦#H—ºÃSÐQ»›–ñÆNL<ĉ‰Çxhõ®RIç×TË¥¬þ¢jJçå¯Ô?y°ú›ÏVFñ#´‰—ÒÜÅ—·ÕÅÓ8}:ÆcwwEiW{è´ƒ¹ïºÌ&õ|„4”˨íyHSô応‡r/°«"ÛÇMË¢Ÿ¥:Ç/ñ˜¼´Œ×Õõ=ZçPW Êˆ0i<µŽŸÖ÷>“³Mš´Æ{eúæÑ¬~î‹gÕŸcò¢,Rþdê¦À|l¼›da\ÉU@YÂÒ•¶k¶ˆã(¾Tÿ%{ÖzûêaÆ2*®J[7ŠGõ!Ùú´­21XúBYLQC5‹Ÿ©ÛŒäIåËUø|Á¯ V¾È‹•I(•n¾÷ùÌ/-uñ'›-¤^•³ØËÕÕCj¤ô`­2˜ê6˜m’ó´®wø<-±=Ò.n‚,bÑf‘hdQw˜ËåqÚ­‰7Úž;#9kîz”ö¿Oÿü¿÷?žŸÿxõñý¹´„Ïßü*-âçŸ>|ù«t|ýaÛ%[2]ÛyÕ´e“–íØGiÓÃÇÍžÞso{ɘ‹©+*šÈ m1ßgÚ4t5¹†.ÙÂÊ*ÛW½ŒÛˆ³ ³DðFY, ¹0M®–™˜'×bŸR†¨BÑyÍâŽÒlŸma‡fè{Vgqá¶|êOT,aŸ¡ÛfXSYöUí¸VŒ_í«U,0e”0¸Ö¥øZL„œJÅ„åyÂ#9¡÷5eè‡ B4gâ2ʕϢ†¤lÎ}c‡Pr‹1@¡4÷L˃¥e’‹b‘î3¡0½À9€¥¢E|HU „p¶;Tm-рɻÇÞyZ.ÔPšò;óÌ:JS"Ï0 ¹ƒ|{À+d•NÀvËÃ>ÁN€Ý@Xnð(ê^&ÊRdÇ^ÍúÕ{tÔ¶¦æ¶›ªº©âg­·Vjš¸'‚i£×FH%ÐÓèÅÎiôÚ=å'7ô–‡‹iOgëz½·*/¹'^½¡÷Õ+u´'¶¡÷-Rç{Ê©Ùè%¶¿oûʇßè¥ôUб*,ÐSZDCµsžªûrûÖ뜩òÛ7£Ý]¯k¥é+…£¡×¦©ÝoÞÐûúMêœõ?$<ê¨[Ïz_"<Ùo*4зÞWÖ«ÑÓüªÏÔêó¦§ìĆÞW¸Ç´ÍÞó×j6ÿû:C¿QýÚ=ÉhCØ>“½×שж^uSwßz)uÕ¡ž²I¶õâÞÛWé¥hû:Õ»ëõ‘‡Õ·^,WöÔrÌþòì7ª],U÷V[h£÷ÜÄ)²ßœõ¬×FÖyê¢Þß—˜çXM¾7º2‰ ¡¾×®õzÒ¼N‘‹_?•$«Ö í)wc”:or邏&ýÚ 4]ß±Ë l×ç˜Ø6A”‡®+pØvHˆNR¬ÉŸêëŒóËsãùžÿT—­9(•Ô*‹ZrG7ö«¯)¥ÃôËG¶ÈdwŸ£˜_±¬(™—YõËqZÿò—|z‹bìŸ.c©"_äW%2óq º)w—‚i]³Ù¦`,Jp»¢©‹©‡ Œka !`¶êhk¬ý•LÓçQéò+ë–S-v·:¦æªŽ©éK¯4ûq7µ½€Ü¾ o‰n}O¼~©úÆÞâ·º¡á!ÞÛ¼Wv($6Ë}UçÆ¢Ø§Ì±làÝ™Jùá`r†Äá! )ãªo*vD¿,Žò»6þŒò8¹–^|)z]þ´óqYPI™‰olZEòòïMÙ~Ýÿ[]|×1‰Z.¾Kë5òx¶o-! BZN>E6Afó`EÄuÜæMt{}9 _ÖstTÍ3é®Ê_>=§¾žH°Kâ|:ò1™öMq;ÕCæ¤K(=ò²á–xTŒy¹LdLýã<Û¸Ëiª…÷¤X”ûðî/ÓË®8DΊ<™É7I¢üéÝÌ3éòwi‡È]*Ï$ùMJ‚ýoQÚeB¦IZ€”U®$øS`-®\;З$r–AjeÚÃz|Φ]Ù)Jã:Vìñ§·zä>Àn7ð Qw/¦®É=ÂpèPs—1á8C²BŠCŽl;!C–®n0b؈utŒXDm‚½vAâZ®ümÊ%.ÁÈ¢ZVì`¿> Wç ¯?óU+ôõü§çÔö£ƒH»´ë"5ÙS;Ô9kÛØ69¥ó­+–JÓ «4P Zé(ЊÀc· )Ç®˜) È\w”Íï0ÊZ4Ô‘°£¼¡±4Ûä³t` îç8Tƒá: ß$ºîª@ñ]wÖáÁUl(­c0G Ž5¦³ë¾ãfÂ#w“ªì;¡ÊNŸèË-Kø–`H9cåšÜ'òž`¾mʈ0)u{àɆÃ1h¦SêQÇÛÓ™[!‹1 ‰Å‰iyÄóƒÐvlbß#X˜¡ËC0ws÷)˜».µ·5L¼ÛÌ]›}˜»e•›öîÓ¬l£cðfrÆ<K—’ÁÒ,ÝÁÒ,ÝÁÒm<è1XºdãÚ ù̙„¦k…¡ƒâÈv¸…ü3×v™»äjȬ×ÓY¯–ŽõЍgbÛiçƒ9žc[v+LUJíÈk™¯ƒázo†«¹)Û`Y’q(Û0d€=– 0í¬¡lÃc+Û0Ô`¸6Ô`¸ ˜ 5† }ZÜÛËžTbÙ¾„´ÞOR†)â¾-÷lŸ{Cލi¹¡tÕ„"Ï¡˜2kˆ? ñ‡§Äž!“z¶…¬ö%ݪ4iE Ô¯<“t0hrîF j×z@4 ÛQ‚Û)1ǦÞ.#rÂdV›ó»7 GwYm:¼œòÓVø‹]Æ‹.©äëÍeç­½Ò³Is®KJÈö+ì3.3–^]Gßz¢Œtˆ¿«ˆ'³$É?âQq%WÿžH½E*wn!Eói‘¤£2)ã^ÃûMÂû´J¦ðY.ìÑ2ɦ¹Ô-FÓü&¿\°,î~|~óý®†µâpZ!%ØÇˆø¾é!×$* È£œx/<Çáž ;=ÿáõC}âjÓø»±þ@#{nC ”߯¢|¥Åc±&Cnȹ£ql¼/ ) ˆ@]ö´?{ÖV$­_lö/C>3YyKÔ2’΢БÈe†úš™?+£zªz‡¼\ù0Kæ²ÅçI¡Þqž.ä&”_&õ»„*¥¿ 6¯ ‘@ü"ÿ¯öð“ݵ\.Çõ3n¿0Ê#.òÚe–<"MUë E@=Ѷ9à¨{šÆ€Ü(¬ÆÒ­ÓcTŽï‘ûd¬¿ûãýKÙ÷#á/µÄéÒ{ZoÕd½dÚÈ‘paQ¿˜ÕèÌ=÷™IgTèÖñ±¯Ø» öAWd§¿Cêe®|êY Üôèò” ï€¶Ú/Ò=×zñ¿Bûôô…4áŽ<üþ]Ÿ–ß®þ FÊIJ·£ìòŸÞ¶º5ÆôÖêv{ì° ÕmªˆÕ­¡·¦ùP!7ÙöhºŒâ»fýgÆ Ÿ;Ä·ph»È¡Üõ„˶ý€p/Ä–%8çv` °û¯HîèË:¾yôƒ„)cT‰ËJC5’°üí£väÆzeI¬âkOØfô…¶lFÑÃ6£çÈÿµs°-âzÈn†,ÛõIbY»µµó4³X4ÌÃ+6Ÿ‹ÌÂËBÄÔ¦GV7šòùDu¡=a(x1QßRÈÒÍ+® ÊûJòH‚.á @ð$+G•¦œ¼p@RNLOÉ3—¢ÖÄÇPIÙûpY‘±y4…ŠÏX k’RzžÈQË ¨‚pPétÆòþîÿ‘Ûfñ *‰@n‚T|)|˜è1#_Âd÷O*[(¯&¢ z uëÁªŽÖÃÔÝ­ª:Œ©ÌÔÕZ‘Ó_$$Š£Â.'5ô!Ĥ\&AÄf ð%ªFÐD…Fˆ|ƕܞ!ßµÞnïÕß^ï\Ù"VÈ.çP=?ØÖòñ÷†Ú•/³gõåžÈ­g·Q¤WÚ¥oðô{OPÜä$ˆ @޼ûœ/ïÏß3’~+¬/‹4M²¸ZüVœ'™ ¿~µ€®C¿ïXöWQ¨q –ÿr} –½˜CS¿|¶ó*ìd ¨äʘ„fü]ðE–'T:`sx6áE0ç)ôÅWÁ)€¨œñUЛyÀ„°‹tìá µdfPµ™ ¯‚¸È¡ÍàÃ@¥÷˜ð|O‰È'»×-˜»µÔj¬ÍI­:ÅrO·r­õú8ƒ×k<Iß³ùˆjŸ€¼œŠA?;J ZSi–ƒ[3-n ¢*¬÷¬èÓæ~oA g!î+]\¨Ì!àê E£Øš?[\6˜ Ïn¾Uû ™+P”ÖÈ ¥mŸœcÙ¢0Jæàv–£ŒGD³™È&Wb–vf$ffi·ÈËo}9UÞÔ¤JTš¬Ô?+žj1+*}wQTÑ“\*Z™?RÆæ>R0²„Ú¦Å=Äâ6ò°Å¹k9.u8Á…Ô¦dàlúÏó¡:y>ªÎ ¢¸MÚx.qTôCÚ¸.µqÇ­ñ›\Ÿ-ÚfÈëi‚îµq9²€Îm¬ ”ÈßOßè¢[<Ž>xEèè"7ÌŽ.rEñ€q®GR“>š 5û£‡[Ó@z°&¤‡\Cz° C¤‡[SEz° g¤‡«È#Ìfâ6¤lóJzÐm‚I ½‡iÒÂoSNZàîI ½MBi$ˆíô°­¸Â±Ð탎ž-[ºåkƒ} ®êªó O“ºÒ˜A+K²Efi!׬–jMoi¡V<—¨IxiWÌ—hEi€j.L'Iùˆ\èšÓ´i2-ä†/Ó5ˆ3-ØŠA;qžwƒSÓBU䚤fÙt ºM µáÝt`+N³bâžJ^ýýdǯ2}ÄQ¹"×N}Ý6Ýv¦ïš€{bóš›Ó­I:PÍÖé@6´ªæït0"ïÑ»³æà ©§s©àšÝûî/Üaÿ´^Cuóà©®üñBE\ôÄv©zd,a0˜c]²ü"—2Çv\1ËFžð|dy3}:¶€)BÙÇQ\V9 ¢<±c®Çî/L èEInôç"/[bÅ%ªÂò ž0m¨{Ô‹Pêx¨ÅbÓÄ7¯Û@®‰<³£B@ã¨W0Nz=p-™­€¥&gÌ»óÑV}ý0±Úu³–}ˆà®fiã9 +›PãxÈö?óÔ u‚#œðÀ&<ž©ŒÔ &jĵB‡ðˆ!},–y±C U}¢üûvìh^| +Éçrè>û4A©€ú"Eiù³¨L,‚´åC?äЯߎf]ŠXºL€ÂÞe8§K‚³:m¹b °Gßö¨çx!µCfÙC¹Ô—?„Äf!•¿ƒÅŸVñ­¾ÉP~NË!¾ ÷p]LÙ^_׫,ÃMÌø`¼®3×ßl2ן­õG Fy!f»ð¢Ä%®ÙLbG”RÛÁÀxÔ¡(Ë™jáî+2å8–wd•ÊPN¥âj1÷cVî+»ßç‹©\Ñ`Ò"¾æ pSÉÆ c€ŸOç"ªd#?’ÖÆ â‹ 1”$—³RtG‰ªÓÀw®ƒô0aËQ”Uý­V¸4ð£8]µþ•ÈyA›m*nüDÕ4Ö’žÈÖK /$AÐBUWI¡!­:1¿*ˉC!¥pÍÀ 3¶ˆùLv••›œë0»†¾G>¯JJ¥k"ZÜ”^"@ôk«¼zÈ*ˆ@§;•x\… åú[, µQ„²%ËE?NŠ(Œ@M¤¦Þu$–Ê5ˆ_ÊGr5br¥ã`ùKµthÈ/£XZÉn‹ðâ‘-bù?I¦ÒœæÕÏp g3¾öC’é"WŽÆ[.…ŸK«±à з•CW¿˜Øª®é2 .äA­œ+èæØñ¹úËQ Ii,•ðÚ`9>²D¤ÚÏÚj¥)dt´@ÒoXñ†Ð‘ØÁÐ6lUô_öu (Ò×D¨½ ²²–q½™Š©­äÁδ½=‚ùe M7®" °nHEZæj†r8V#ÀÍSî®õ;…òˡтåÓÁA,SMLª“«ˆªm',Žæj•_¥uÄ0MgróòË»¾vr´ðÛ @\G:Ûý:º<î±êö]Le>꿤z?…݆¥0ö Ê£¹üóØ7­n-)2ˆ?ÕFª¡ ØfjP–R¡¦ ¸^îlÊbp?k¤ˆ/¥Ñ+Ç ‡÷EQq%?K–¹F›ÖP¹§³À–iÃæ‰Š›h‚äOÿßÞµ,·ŽÑýý -ovH‚©T63©Tj’I*S5ÉNÅhk.õ¸–<öÍׇo‚ԃݰIQ¾½ðª> EB$Ð}úœ²ê¡¶/E¨²òËÇaù3ÆBq³¦­ÖèUÏQ0¬Ì[Và¯åÃàâJ,ÃôYô‚ËàÜÚ ¶Û`gÚ‚6´Rþ¤å=O«‡Õ!(¶$ }[ŸE­³7×: ë;}ú Ô.Ò†[ìŸ;µ)¯Œ\V?‡¿c.ÚÈʳ7E^kS˜ /7 éÙ=”}„ Ðý÷5‘îzµ€Cå¹¾.œß–¯Ûšä)äç÷œÚ¼ÑþœÖù‹™Ùß] üÆëmüœ* bþ¦¢Q²·ˆ ¸ƒ­+¥¼)å}C)ïl·÷ Ÿ·ãPdÇO»HÂ-²¥ßÚÇü‰»cWpÂÜÈRÄÌ$¶Ç&,?n7°2ºJ³y`6ôÜ›ØÏÿúù¯Ì^‚N}ô2ÐDlîÓb 7FŸ°b6ÊùIä½?ºz™ÎýzÈ»n¢tU&÷!@|¥²œØ/ª~ ÏûðκgÐh8õY5ͯ_Òà÷Uµ‹ü^æAîÏ?ÎWé*:\Δ öû®`ÌÝýü÷G?1L1ÈþùáAíFoRßšÅñ`²¼ìÞ†æÔƒ4ÝÙ }|êǧXUòµ‰±-ÝwÅ»o»Š÷гûåù—¿€¾p®-z9N½ž²_]ðTžEpj/ͺ,áÖª ÃÆÐå~p0j·K¿%Éb …‡i°ÉW†›û/Ãc}ùž(;áÁØbO ‹ªwžƒÑíVs°çEU½_@—!ÞV§P.ÕÅP|½É€ÄåŒÇ¡¸j+<Vî}‡¢êÍîP\ž;Ý®!7¾È²ædƒÁÀ8 )öÔ°¨‚1h˜^í·ã ârI»€Å¾Öû(Œ‰šaõó—ߘh=yX þÀ^¿ ݾòY *kòêu—f›¡»S?ÉóË`p±HÝ?ª4 Ì/ù—xèÖtŸÄhC˜êÇ[}6§F»»Xý®ÒSív»]„ï¶Ó<Á‡»í")n+Á#K8’ î)‹q+ |;<‘®í†íQ·ÝBŸ cwÛ1‹ Ë÷õn»ì#.|m)ÝwŒqlÛó;ÍvÒ²<ËÓZí<Ëvõv­SvÙ”;ÕgWLѪs̿ς>t³]öÛ~ØæGÉI›ïÔoç¿‹{Œp˜×YÃæP¿]ù¸/oä9Vt÷З9Jþñ’û%£Œ¾L™ ½o€%:]ö7mg-Ÿè*þQíòÊ÷&Z%èp3Ð-sŒÆÝôÏE×qô= ”ãfáúaÌ‘ãÙ–ò„ðc7q“PqÇö’„d§y·;˜w»ãWˆ®¬#s%óô—;ó]oÐ ®z»ëªŽô6¿ÚÛœI›ÍC×qü—4pi1æ1é:’®#é:Ö‘¤ëˆäº’®ã,H¦3⥒®ã[¹™¤ëX†’®# ûEω 4{~IB’$ä´©«ÐµYÄ,¡” C¥‚0pY{a¬¬8ô=ØÒõCߦÕBŸsÌcùžåYNWÒ·,f¹~'“ey¾ÏÍ U”ÔºrRËó„ÛíK'µHò„$!Iòt$IBž$ä IB…’$ä1Œ$!/!©?vîý±$ y1˜$!Iòš$!I’$!IrC’³„‹É5bIBÞ+Œ$!çC4#IH4$!ÛH’„¬BI "IÈ`IÈ~Xr˜ $éH’Ž$åÉ)O~„!I=’t$ÏÇ’Žä…HÒ‘BŽäÜqÒ‘B’Ž$éH’ŽäeéHžŠ#IÒ‘$IÒ‘$É3A¤#™ƒg"'õ*Ý¥+ðmyºzÐP[^+[†‘Å=©<Û’\*áÈ€‹0 á7ŠC[HŸ¥Æîij|G2ßÕ;ñ²<×ÖJýN<éHÎûŠR>³DWQJ ®·óhÃ+§Z_TJÞ—Ÿè¼ß‚¢“æšïäû(Juú/+ RQêó>»"\†öÊ0i©±åÞ1Ærsä½0Æb}i*ÄuÒ4ª0¨;#kj¢Q\à >7mH"8XUFÇ€šz:T•½1nýƒl‹Ú(TUÝF`=,f}ìðóïT%Ö‹‘†0£‡W¿˜‰8¸VÕD Úò&¤ÕöÌPZÒ¯×"•Q§ßÖ°¦8‡Àü½˜öÉk7‚Y9Ò7'½$°…òc&cÏŽ'ò;ŽüØuì@†‘ä–+¤ˆ'•­wÌíùŒ‹^nO2÷|n/w‚aîÛ`ò97d#ïó¨å{ ÖkõÄíy%úl!x·Õœè»–Ìø‰@2‚8Ä-'Ç]hL_¹Ë¦ËUä4­8 \É#îGʉ„H\Ïçqà0?QÈXÌb‡ëvÿYeOÛ—Å?pźŸ2ØbU¾Ð_ÊêrÜ6)>ýiQédO¼æ~«ïqµLßõ™èÖè„åqæ:Ú‹œû—Øõ%»Ò¤ym…L;[Rš¸Eºì&Š¥J–ùwɹIÃ5´noÍ®T¤·Ši…ÁUGjÀvÕ?«OÏ)HÊ0 åËІFfw[ª©AÃÓ`»$Eôz›Í¢Í$ X¶¯ß² 24:_àçþõ9›ÇÕ2úIÅÙK¢ÎW„¿(@c“éÌÏ`Ùí‡+Þåñù$@"°Âz9¨¹Å8Xy£q˜êvã@åMcšTx#e\WýmÙ!¡iËâ9°ŒWAºžc†*§Øã"Cd«ìAR_Ü^Ë|õZ>À~‰”Xzä çKµÀ0,0Ä 0ŸN£€³' ¤‰‘µR‚¼ ޾)e•YH¥Ü¸ýØDê$ï*4Ró0ß{^¾]صN>câ•àõ½ÅÆRÀµè¿ Ngר?Mo9™…‘YXóy‚P.³ŠÔÂ*MÕÓòQ¥€†ÀþsÝá”Pý_©[—ã½e 2Å¿<Ýu5?S³I¨¼$qe’D‘â‘­DHÛc!·=iù~àг$L"b\,ôy0M7•‡é¦rmær›u}ͤËÛêøšI×ÜÒk—ªÎѨµJMŸð¤Ï [«ú¾fPn]Ïà kœÎ0 Êò Üÿ¥{ŸáA­ [¹¡a µ{ Sû£a@­QÕ8¦a@šN†ýVµ™£¹ªa`š½š ¬õYC¢±—D3DÁzl(lÏ‹ ƒmLÙ0 :ë„ÁtEçPÈVF«¶K(Låà†ÁhVnˆîØØh¢œ2wCϹ¼éÙ½q}ß7$°5€C['80P³„cÎzÃaG8a‡Bw‹Ãb{¶q`øÿ88þÈH×*ÕWÊ5B7’¹o@kÚ¹f£tDt†À?W:ðFV×­éëáѳ¾ƒ6xUtñ­ô®¾Ôà56â¨n?]׈o#?EakY ¨«‹izkõP1¨žn)Š¿¨Gòœ†XM§1B_8í«6B¡çò°#ô-óÌðØmà€‰žá0š›žÙ•­žXs­3 1Ú3ÃïÛ—ë=Ãat>³!j[5$ú´+ß©íùCt}úÌÀ]Ã>³1Zç>3|mág†n¼ü áG¦~fãtÝýÌÆ0œ]¿?3pkü‡ÄŸq„ŽÒµÄ¡úž€xô•’=v #{vˆLÊ7p¬î<⡾ D¾(#¶*b­Krb]±œ˜f;ˆÂiþƒ8Üw/_Öaâ¢$|VBt¯C ÎD0­¡ô¢Pf2k{´–‰2[×!¼5I·i„Ù&‘IëYbº§!g$ÌÖqÄàz„hÏ‹í™â2ÅÓ+е~…TŽ¡r •c†À•I"4•Ìã5ªE“JKy,bÀ“éRN_Ak»=&©»¡E4{ý¨Øäœ­#ãø¥ÈÖwÑT›5κöIŠ¦Ã «•†oVOõœÅ#bˆ+H²žñ~œ¦–ä‰À궘­)å í;F"€3“½Í?&Iò$Iò<G’ä!I’·à!™7sÎÙE²ÿŠl_ôWѧõìH9RÜ’^JžxŠå6“Ò±pÜ0ŽÜÀá \Ÿ6ÿ~u¯îÍ·[ÄÊ.ÍÛ›£û#Þ/þvÈ•m³™«¸h–n“œŸ>u 6‹Pµ}Ëì˜å³i¿xY·Ï‡E°ù¶ØæËá¢gºnÂþtØ.Ê£æçPÎÇEò´]gW|½=äç¸Þ=²nµ»”Ìõ1’¹ž%<Ñkö¸Å;MØŒ)ßWz¹ç¤¡{m ]f¹N‡¦U``ºå‰q}GsÄã÷νï`NL‘IUŸÆW'íEÄR”ÜÞ¿Tt ![7¡ ›ÿ€vaÆÔ0 h ‹æsHmó4°:¼áÁ§M÷Þƒ¯<ð‰#h‰‰vÀᤄ¶ºœÑ¢÷¬óÒ$J@*Uäs9‘åDÌŽ˜£8W*ôÃÄVÂöÝØÏ^‡¤´ÐgÃ4J@£”{/¹lÐ{ɳE€ºîK$¤ƒ&4_²™Ùâ“Ì—N¼LÉ|iî ÚqW1³Nxo½è[I[(;¶eöºWÂW‘Ã,…q¨߉\éy®#(ãõÁ3^f.÷{ë,Úu˜žñr…'ÄåõÆ9¯Ç£”>^iÍÁ¬låy» ¯w^PÂk^ëJxQ‹^0ã„ןšÅìŸ?ý-dZÔù libzypp-17.7.0/tests/zypp/data/Delta/repodata/repomd.xml000066400000000000000000000027641334444677500232460ustar00rootroot00000000000000 d41033826a12ce44a1b33eff2e7905785e0999da 1211014822 319b2951aad2417c8961442ba692d4700962043b 4f8f83525b232db93a761ed1be79515956b574cf 1211014822 70eb95f379e0db1c9815f0a1cb2269d93e408015 28a6aae0cd873e1df286d4a07fc7e54263fec79d 1211014821 5ad445e403218ef4a6585dbfc37ccf31d5a10096 553f609c610b0cf51b54efc4c5c618537707ac8d 1211014821 8c840e0b03ad8c2ed0d4ddf57f9a6b5cea3ac412 596018d6e767808ac6bf4e89cc0ea1ea7a1916a8 1211279868 596018d6e767808ac6bf4e89cc0ea1ea7a1916a8 libzypp-17.7.0/tests/zypp/data/Delta/repodata/repomd.xml.asc000066400000000000000000000033501334444677500240030ustar00rootroot00000000000000-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d41033826a12ce44a1b33eff2e7905785e0999da 1211014822 319b2951aad2417c8961442ba692d4700962043b 4f8f83525b232db93a761ed1be79515956b574cf 1211014822 70eb95f379e0db1c9815f0a1cb2269d93e408015 28a6aae0cd873e1df286d4a07fc7e54263fec79d 1211014821 5ad445e403218ef4a6585dbfc37ccf31d5a10096 553f609c610b0cf51b54efc4c5c618537707ac8d 1211014821 8c840e0b03ad8c2ed0d4ddf57f9a6b5cea3ac412 596018d6e767808ac6bf4e89cc0ea1ea7a1916a8 1211279868 596018d6e767808ac6bf4e89cc0ea1ea7a1916a8 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkgy4a8ACgkQ1iFKyE0tq/K1UgCgkm7T8QgC27qE9labaumrHo8o o/gAoMX7sCbj6CkSTL8a+9eQf+BD0eDV =mZtk -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Delta/repodata/repomd.xml.key000066400000000000000000000047631334444677500240360ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEfNOC4RBADigjtTYiTyHJ1Ld9Eiul005PyBoIk0oG30mbsrlx+ETir90aB+ 9FwqfiYBbug0eAuIvF8Cpg2scEqtL8yLQHaeNzVz89iAQvPa1UdCUkn6MLMGLm4F R9aaOsVA4yrtUDyoouz8eu/WzZfiwi23auEuBcebb19HPZ38YLLNQP39RwCgzWRr pfJLYd/W2TYoAg/zpIh6VsMEAMzVoHQWd/BULoqmXORVvssB4u3apXiL4pThCvGk 7PlicRTIptJnYUUnXbOBm8kcRmW10Bh/Iahxr7GAjxwADwdXAV/1W9xnj/2uZY09 EwIrTrVGkEnBM+qciroAwwrR3232f+W/2nKoC+VHfoTdWoYfhh365IpWRlgRhWDc fJbNBACuHoGS8yve/hOjyOR6oeqt/vYdTPZZWhCaLME6g41yG19+hosw3a2jjgtK eP3pNXUQeSJ4fMzanZcgH2XNNPCljphIogjETLpR11jjoCtQy+N0jNZM27EMCd2g LMyW0UFOCqh7hqS0wHbbIkeja2VETsNJhcZEUE/MISdB534LQLQkSm9zZWYgUmVp ZGluZ2VyIDxqcmVpZGluZ2VyQHN1c2UuY3o+iGYEExECACYFAkfNOC4CGyMFCQlm AYAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDWIUrITS2r8kSdAJ9aAv5D1Vk1 aAXQtjG8Kbt5OBZcMQCfRvyOql8UUoV30nx3tmfXMWyyYSK5Ag0ER804gBAIAJMI aFDKVAnCbm0hm+MjolK3gobEFFr2QZNCu4DvYZikUz3P1Uqc4EjhTgPWCgd2mN4w Odzi1n2mz+PF80i+xl92gN6e2Br5mufsXfDf58smrQZ71E6IuG/XJC9Y+obfgIFp ngTjYomal7wywFqBBZq3mIN8xM+9VkUIsUhvDWvbj++/JO9++uIl67gjx8zhGJhd 0rWEKsNcbi2cVLizs6Lf+GatTr61pS1AzRU+sxsEr9pgIAN0cvxqRTH54i08Ulf3 Z+m1+jTJ6vTB206QChyybAL9hp9tckhkWAHcS4paK8lEyz37UExTIVkQNaDxdDad zYpE3gVRkniLuKhCk28AAwUH+wdPJIMxIIlPMUtATLgHqeLnCA57tDra6Canp466 KpJ/aW2GfNYUs0OgivX41oPBBCGd6oDuZwREtj0cq9LlG5YCEbgbsC1DEOncja9/ XFoTdbp6Slvlc+aw54OUzj6rNSaOSJpigN6YVUnZCoS00vTH/NubOpC+bpl1f5lL 8YlR2NfS2XL4CFlLBuUQiHv0zzKOj1180oyfzrzjon/pxC3jakj3+t9bJaXbiD09 zKJRFzFv+9mLqma5zFkWUZdWRR+N7CtYl7LIT3TdbIvlJu3N5cyHgGBkiOykXu7W RFdFqdZ7+6aykKUUMbwp+mAVfjJVVm9U473+5X7492SlxfKITwQYEQIADwUCR804 gAIbDAUJCWYBgAAKCRDWIUrITS2r8mVYAKC0gRLVYbuz9NTtT7u5kaXcFXyXCQCg lOfxwAGsuxmSvTOl+hKc69QIf1eZAQ0ER/INNgEIAPFj1RzNpcDF0w8Ryc/+KIx/ /xqWqE6Kv6DoUu9g3VGmj4lLrwEwbInbJcffOrlZkrZazB24gfORRyyllj0UfW09 U7qtOzdewmTRDPuYyXcvtL6ATIpjeEapRdDyL2DKLmnpJ7DxFm07ttzgDJp+cmqw 1XlFB2gt4Sirb3NRSubtX7ZZmaffiIHh9yr31lkpOxIKXMrW5MLhezQ57K779LfY 58Iq6EUjeGU5XQPLe7lsoBanq1MojdFsRmBx8TT2wjzpMLa1lDMvQgGCW4fajY58 J03coxYWXu6dp6N5x+15IIETcWtcIRIhy5Y7qV/AGOX5fFG4YEDnmUIiQ5CpIPEA EQEAAbQkSm9zZWYgUmVpZGluZ2VyIDxqcmVpZGluZ2VyQHN1c2UuY3o+iQE2BBMB AgAgBQJH8g02AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQrMbwWCOvAEFw dAgA1BvA6/q6rsk0uVsue3sgJunCdQnF9zY2i8FRuOfLwEoOuX3P82TUCrKYT7jq NfiWYbtl9+sp4+5TBxY9M5nBgqckMJoze0vrufq8uBLzrsabIYRPjFYpznxjhIeo FDA8PcScOYR51K7YhqAk1rU0M9SmeNCh8O6mgI546QZLVHC7w+2SDtsWWoRhn3/k WlHBmaU0XYLtyuRIG3uuUjigUU5F9Gz1sj8X/r4WAO4Id9FGruORlGDlW4yK5vVt OHE1/vEnpPodJEI4kWisPoJh+/1q4u/zGBtGL724dPmBuqQ3mLwbXiahCaZiGv+p SRTL0aukStJZdNaArDg/PTNxFg== =ahjB -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Delta/repodata/updateinfo.xml.gz000066400000000000000000000110611334444677500245230ustar00rootroot00000000000000‹¦ž.Hí][“£6}÷¯Ðz«v“ªFÜ™ížl6•Ô¦v“MÕLò:%@´©ÆàÜ—üú·6Æ’ S•ylÌÇ9ßw$$§o¿yÞGà§Y˜Äw[(+[€c/ñÃøþnûë§${û͇Ííñà£g€ü:Îî¶»¶¿;²Ye<#)w÷¿‡Q„äVî³]òô™ì½ûð’WÍVEß–)n¶K¬w[ò+÷.NÁëž2WMÜÏÍ9 [g^r’Áóœ?ôã¿çy>äÀÃiN r–(€â—}’âÍÓ.ôv ÅÙ1ÊI*ÈÏòp“cžÉ›Û›ö)ŠSî£0Ëë|xIa¯ÙYý»­Eb´'ÎpmJ½ÝÝ6NŠÿ[å×dóóÇß~N¡clA] »­º=…%ƒ0ÂEÐŽ>ZÇJª\…–ÓÃþöæõ€¸¦IÔnÎÝ ¿Ûº™ôµͳ}¨jÔd˜ÐÒ<û0ðtK ,S1Å·„Ðg—äHR;£>gž€ |OiBÚGŠïñóµe¨†éš–a9–nÔ-£ÞîiÍž©-#CûC„Aë+$)ÉOšå€tŸ9¨’ÆCíM]¡‡†mvkxÒ·)-oq€d@¹ˆ3RÓ#P=ÛægS竊$¶µ¹Žg ËÑ´À°,_÷4ìûžáBÅ44±µeØ;¦aþBkj^„öèQÒ: ­ú4G×bmd¶ª)¤2"¹›ZÝÈêížFÖìéid¬ ű­@½Ý ÙÃtLU3+Íö%€×=S»™O»0k$DÔpŸ"ƒ$ß¡|û[Ñ#+²£Ý2±!=s!~ò›Íã1ŠqŠÜ0 óg2ø´Ã¯‡b@ÄãÁR¼OHŸE…àg¢ÂÄ;à¾P–£¢|G9".>àø>Œñ»æ(Ç!Ф$2œ>†Ù%Š@цIaúDDeðÕw¿}/‘‰-A[³ÞmÚÍw ýÑ8ÿ¨µ?jöÙ±PQZ{ ê¯-É4ãü£ù5®¹j°”޹(͈GÝ¿&C ¶NùÏáà±Â!!x¡¹¸@Ì4éâ@Å$ù.—¢ù.ϺµP±”îŠCõZ˜ x‚µÄÞ¶LYÈÃÐ0tÃ3ml»–­:Š£[câ‡Ó8q$éküÃøø þSîät·Èå]5„\à [QÌæúZm÷]_ë=³.oaqå*X‚áœlOÅðù¡ .“ƺ>&)_•MYmO¡MÑt;˜TF.Pƒ½@Y 7IòÏÙñþžpÄþX¤§óÝ„&ÚG颕2“n®"ièåüjU†{Õ:£uÞÓs`5Ðé/FЇ»¼V“aâeÔ5¦é¼H´©á•%q¤ˆ¶œ0™ µz›Ê’cêqcTE{c¤û‰ N«tç”Ø{‰ VkuÙË>ã&?k}ñµ±JïœÏ:ÂkÑá »sFk‰îÅå@›“îêp«K¯C‹Q}—¬V`‡»/y­%Ãgó’ µºüZtØ«tNHl…fß ±,K±5O \êV`X6T=UÁÈÀ†¶À­ù*´TÜ6“*¶RŒ19@²:‹'ŸNwÖŠepêÌwìMS„Ü21uG«oXÔ›—ë)ÍŽÉË)#³Ãc5…œ:Ujß „²Ci7t-(9Jð„if ؆†½ÀµLÝÀŠOÚ…SÕ|_õ5Æ&””uBјöÓüV2Ç7æ˜?[ %1¼Ì© ÜÚÊkÝÇ4>ªw¨AÅÖ#p|ÍWTŒ\Ï7MÛôÜCÖ%ök÷ÐÛì›ßJöxÕ7Çü©zJbx«þTPnª­ûrªÇ–çbhX›ttè’òûšc*ÐÒM¬¨Ë—ò4|$Þ/ûêˆ?Eߛޒ¯¢r|]ï;y×0tzÅSDªjª† }-@ІjšD¤âï£î™áÐmÔŸÿaðKÅ7ãt[Õ!$uåz[µ®ˆ—ÄÅcºYsCu_¥êФªxj±uóuÓzvQÞl~ÌOPQ‚p¹=‹¼g‰”úÚ]?E±*Ÿ«IõgèŒx¡Zº Âü}gíJx¦=(Ø/?„Ág}¨§9ÉÀ]-ìå.qš!Å+òÌ]1e\zX÷c].™‰ËöàòžÜÌêÎ-óó1sGtŠ ­ià{bKçQØ3?€¿ûœ›ølj@ßóDœ\Dï$Ùн¤Hå t“ŒÀË~R jè%ð¢Ç™ñ¡®Rrf•ƒlDé=fe7­©z/HeЉ/õF’ s (<Î5¿ ¶@aq¡¤ˆpS½ïdgQôŸ¢Eï‰ØñmzAüt4È€UC>úýøŒ™âÊš¬Ëý4ÚKt—Ñ¥‹8’ÆúÎCÏr,8ÖbèAH6Õs‘"k0ôàöê±……°s×=³nR×Ñ‚mY•^ô |'°Ô !¬™§ ?SÎ4Š á¾ÐŒèÜôBïepŒ0 ̶X —S-Q¡÷‡ ‹ÎDX–‡zAî˜YÕ|Ÿ<ô8f ÊŠ"«Ó–Ñ.£K—q˜ç·t‘˜ÔNgp9GI‚£šV¤”kRBU4´*Å ¾Z—â® ð1ÓŠÉye­¿ÿÑ)໑¥N ÉÐ3OÃ~é>"=«ê_ÏA×< òBïârN¿¾²`..V‹`æª jV}<|Áûã¨Æ©ÉÊ!Åöâ§>•Þ /õ’†½g`ÑS±<øÕc¨Á2r¨Z­€:DaêºkH‹½ØM ön`©B2!ïÞ÷œéÚJÃÝsÿDtVµ¿žbèálÜÕ BA:¼;8r}kPŒF†î Ά\ÝZ”åá;‚œ1³ª9öÃì)E‡NG]Q~ôÔW¼(ñ¥óH×^dcæÑsMÇ„wM†®ª¬,ªËªØZ ‰YñWCÌÅð ÐQ?V %û8t“äaìã¢ìäÓ¦à}ñ¥ËHÌ«C<úMÇ„kM®<†ÉÄâõYLµ¸ò`#þ×§—Á/@GT¬úr ½íGÍXLÙœ4Öè .uÂ0“†tǤ‚0L‡ð÷Œ÷Qણ¡™ þj6ÃW?ÇGï1ôñ˜§DRÒ'µá¾ØÒyæ^hÿ¹þÁgRÿú õ "Àªý³³ÐµÏ†¾¾Hå Ìå—Óyª¡Ø€×\‘1@ΪòÇ0Í(r“g)Éð¸É=¥¯‡…ýR'š5ÆZ\çÓ79ËH@'ûØÔ~¾µyŠP,Å÷£¥ªl÷’ph#ŠžàR'Œä°Ž*ô êDq`ÕSû4Cƒ:&üÕ N`þ‡–|™WK¨Ë ç­ ö%lÂò] ËwL=P1Ò _µTÕ´=#ÈêÜsÍäv ƒÝ¿¸ÃÝ$**4!óW@–7 WW7 —Õ#¡CmY½2r«Ú„3ÑzËFáÓˆµ½§W­ØU«pF^oØ,œ‘Ù¶ ŸÄìä^Òz«†áS8ÃWl[#,çp:s¢~3´X{ŒKVo×6œ×›5ŸDëäK½¦¯X‡³0z«æá,œÞ²}ø^çŽÔ+ p„8#¯7l!ÎÈì­šˆO¡u2Ý^Q„×mÄ(½I#qMÕ5 ŒlèHǘª`ßwÛ„ ;c¢ 2©f&íQLþK%¨Œ÷Ê¤ÄøÓÙŸcÙÉ—À*¦|),oÛ9Ç·“¿~Æw΂Þuîä®QÖs w0ùg}¤y'?ì ÛwêªÓOæŽCµ‹<Älî3;S eí;Yоs>‹¶}§(E]·ïœ¿m~¹~:d°’}g‡ƒFµîºæ|YÒÐ˜Çæxr籂…ç —žÜë0ÖÄsúKL‘èù+ˆŽ#Ï~Újò «d ßYÜÊ“#ôåÍ<9‚_ØÎs*ò®Ÿ'_µŒ4ôœ úÂÑ“«RÆYzNÝõÇä›é±¦žœP¯eë9ræxÝO’ËÜw¦±'o+Y{ò¦±†¹çt=îž¼µ4ÞÞsü>O:šaðÙkÑ:£AÌjªÅÚβøäŠa“ÏÉØ».Ÿœó>Îæs2ê®c¦8Ô|•BýšÕg‡ƒGfIeE³OîLV±ûœÌ¢×ï“K-&~RÚíuë^÷ɳ&Áú¢õxËOЗ3ý~!ÛϹÈßO1j¹bü9ô«ó§¥ [ÎÝøhŠÉô5óOΨW³ÿìŽäiCù®™Õhžu>Â`*€Ë* syt<@ÅÔc” è\Má D¨‰Âa=#Б“õ1þ™\VX¬@ùsYÇ t7Pþõm:‡A›¦P"ÔDç°’%h‡Äl?Ê’Å:¦ œ)¬c Ê™Ä Æ stA¹¨hž5èÈÖ|Í›’K4Ë”/UìAùRXÞ tþŽC(ýŒ³½ëÊ];£LBç@ïxmòÏúH›P~ØW5 ;Ûé«ÉgæÆh*ˆÓjf¡ |ºn¡|ê3Ï.´C*ÊL³Í’9|%ËPþ<–· Å¡k* ã¬Cg¡ïpŠEÏ_ATüKXˆêØ0¡ªŠc!'Œ Plhkž§¸Š‰Ì@üë÷Qèf(Ï’è±ð·Ð;¯á¿¾OïâiÍá ²6 ó“÷‚ðg¬/äÛ†¦ŽòmèXJýB~½ÝóB~³§ç…|fŽ¥ë €j»@½GE3K‚z»@½GGšS¨·{4{¦z"üZ¶ ä Èw˜.Ô§]èí*¹‚(ÉAlJfòfãÆÞ_«¼{òm߃ÐKâ „1øÛ—c’ÿ#{Ù»I”ŽÕ7ÀQ”Ü×z_„'ò§1ÈpÑ+$)8Æ)F~ÑpAÄy}@‘ï÷ H Í0Ì‚4‰8‰‘ |E"y;œ½kBf_oP‰"=Ž_ž­äžò]+Jóó2z P¶)âžö·ŽÛ‘´‚Ç0 ÝÒö¡>‘/sRi’X¿:eý“wÅ~‘gR„ü(&‰,OB’ø‰dÿäM‘‘°È^Q“€tÉS‘Ô¦:u”½ßlH7ôûËátY…²N]RžùVdM/(ËUéK.‘®¨24e]ãaMQŸ›r¬˜’Ôa¤ê€1ÞQL†/׉œOmçó¸fX&˜ÆÅ%>“ÖW‚È*éyI¬ ¶¾ÐÎI1Ê­Ãi%ÑSb—^‡•hΆ* Çp=ä@Ëw ¹ši†o©æ.P>Ö¥/A£3mö¼? Ö~q”’«Wâ³êúÅ:ît šš˜q§£8öë°¯ÜîöU{ÄŒº¬Ö¨Ë¢Žº¬9£®³,ƒ–·TY,œõ–«HlHAùxî×ê ö¬Š¬y¾²‘_yûc­TÝ®ñí)â(Æ×¢º˜zú¶™¹b~p¶ HF†\ŠHâp­b KO°¸Ô±…бí|q¨¤KN©KOIú‘}´5³ ;ùÕ–‚tv‘û²W›‚“¥ì´œò¯ÿ•qïlÄ͸JŒ†¶³ÑÍ]WG®œr-@#ÙKv$ß¿PN±Å©å?7É\À篛Kô<ÅÓ“ ëõ¡þ\;DV«Ölibzypp-17.7.0/tests/zypp/data/Fetcher/000077500000000000000000000000001334444677500177555ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/000077500000000000000000000000001334444677500222125ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/000077500000000000000000000000001334444677500241545ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/directory.yast000066400000000000000000000000221334444677500270540ustar00rootroot00000000000000subdir1/ subdir2/ libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/000077500000000000000000000000001334444677500255255ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/SHA1SUMS000066400000000000000000000001701334444677500266520ustar00rootroot00000000000000f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 subdir1-file1.txt e242ed3bffccdf271b7fbaf34ed72d089537b42f subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/SHA1SUMS.asc000066400000000000000000000003051334444677500274170ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkjaaxUACgkQm+zCtd2wN1ZLgACfcqpLHAavAr8cIjenaR3pJHpo WoMAmwdbZQX2b9Yw6mY1aGbarwsEon6I =/0VZ -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/SHA1SUMS.key000066400000000000000000000055611334444677500274520ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/directory.yast000066400000000000000000000001261334444677500304320ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir1-file1.txt subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/subdir1-file1.txt000066400000000000000000000000041334444677500306270ustar00rootroot00000000000000foo libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir1/subdir1-file2.txt000066400000000000000000000000041334444677500306300ustar00rootroot00000000000000bar libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir2/000077500000000000000000000000001334444677500255265ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir2/SHA1SUMS000066400000000000000000000000741334444677500266560ustar00rootroot00000000000000f572d396fae9206628714fb2ce00f72e94f2258f subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir2/SHA1SUMS.asc000066400000000000000000000003051334444677500274200ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkjaayAACgkQm+zCtd2wN1Z3GwCfUjf9mRdFrB5UvOHAW/DoEzWL mpEAnRmkzRLTY3hXiZ+95XCYG1csiMmF =X6am -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir2/SHA1SUMS.key000066400000000000000000000055611334444677500274530ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir2/directory.yast000066400000000000000000000001041334444677500304270ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/baseindex/subdir2/subdir2-file1.txt000066400000000000000000000000061334444677500306330ustar00rootroot00000000000000hello libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/000077500000000000000000000000001334444677500256365ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/directory.yast000066400000000000000000000000411334444677500305370ustar00rootroot00000000000000directory.yast subdir1/ subdir2/ libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/000077500000000000000000000000001334444677500272075ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/SHA1SUMS000066400000000000000000000001701334444677500303340ustar00rootroot00000000000000f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 subdir1-file1.txt e242ed3bffccdf271b7fbaf34ed72d089537b42f subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/SHA1SUMS.asc000066400000000000000000000003051334444677500311010ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkjaaxUACgkQm+zCtd2wN1ZLgACfcqpLHAavAr8cIjenaR3pJHpo WoMAmwdbZQX2b9Yw6mY1aGbarwsEon6I =/0VZ -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/SHA1SUMS.key000066400000000000000000000055611334444677500311340ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/directory.yast000066400000000000000000000001261334444677500321140ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir1-file1.txt subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/subdir1-file1.txt000066400000000000000000000000041334444677500323110ustar00rootroot00000000000000foo libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir1/subdir1-file2.txt000066400000000000000000000000241334444677500323140ustar00rootroot00000000000000bar (broken chksum) libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir2/000077500000000000000000000000001334444677500272105ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir2/SHA1SUMS000066400000000000000000000000741334444677500303400ustar00rootroot00000000000000f572d396fae9206628714fb2ce00f72e94f2258f subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir2/SHA1SUMS.asc000066400000000000000000000003051334444677500311020ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkjaayAACgkQm+zCtd2wN1Z3GwCfUjf9mRdFrB5UvOHAW/DoEzWL mpEAnRmkzRLTY3hXiZ+95XCYG1csiMmF =X6am -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir2/SHA1SUMS.key000066400000000000000000000055611334444677500311350ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir2/directory.yast000066400000000000000000000001041334444677500321110ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir-broken/subdir2/subdir2-file1.txt000066400000000000000000000000061334444677500323150ustar00rootroot00000000000000hello libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/000077500000000000000000000000001334444677500243605ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/directory.yast000066400000000000000000000000221334444677500272600ustar00rootroot00000000000000subdir1/ subdir2/ libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/000077500000000000000000000000001334444677500257315ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/SHA1SUMS000066400000000000000000000001701334444677500270560ustar00rootroot00000000000000f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 subdir1-file1.txt e242ed3bffccdf271b7fbaf34ed72d089537b42f subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/SHA1SUMS.asc000066400000000000000000000003051334444677500276230ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkjaaxUACgkQm+zCtd2wN1ZLgACfcqpLHAavAr8cIjenaR3pJHpo WoMAmwdbZQX2b9Yw6mY1aGbarwsEon6I =/0VZ -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/SHA1SUMS.key000066400000000000000000000055611334444677500276560ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/directory.yast000066400000000000000000000001261334444677500306360ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir1-file1.txt subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/subdir1-file1.txt000066400000000000000000000000041334444677500310330ustar00rootroot00000000000000foo libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir1/subdir1-file2.txt000066400000000000000000000000041334444677500310340ustar00rootroot00000000000000bar libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir2/000077500000000000000000000000001334444677500257325ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir2/SHA1SUMS000066400000000000000000000000741334444677500270620ustar00rootroot00000000000000f572d396fae9206628714fb2ce00f72e94f2258f subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir2/SHA1SUMS.asc000066400000000000000000000003051334444677500276240ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkjaayAACgkQm+zCtd2wN1Z3GwCfUjf9mRdFrB5UvOHAW/DoEzWL mpEAnRmkzRLTY3hXiZ+95XCYG1csiMmF =X6am -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir2/SHA1SUMS.key000066400000000000000000000055611334444677500276570ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir2/directory.yast000066400000000000000000000001041334444677500306330ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/complexdir/subdir2/subdir2-file1.txt000066400000000000000000000000061334444677500310370ustar00rootroot00000000000000hello libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/000077500000000000000000000000001334444677500274475ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/content000066400000000000000000000003471334444677500310500ustar00rootroot00000000000000HASH SHA1 f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 subdir1/subdir1-file1.txt HASH SHA1 e242ed3bffccdf271b7fbaf34ed72d089537b42f subdir1/subdir1-file2.txt HASH SHA1 f572d396fae9206628714fb2ce00f72e94f2258f subdir2/subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/content.asc000066400000000000000000000003051334444677500316070ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkkHLgwACgkQm+zCtd2wN1ZD7QCghDVP3V6Pi/gBMoA6Flc77/4u f30Anjf9MqPHx/YZXSFHrYtcst0welTn =g7it -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/content.key000066400000000000000000000055611334444677500316420ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/directory.yast000066400000000000000000000000411334444677500323500ustar00rootroot00000000000000directory.yast subdir1/ subdir2/ libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir1/000077500000000000000000000000001334444677500310205ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir1/directory.yast000066400000000000000000000001261334444677500337250ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir1-file1.txt subdir1-file2.txt subdir1-file1.txt000066400000000000000000000000041334444677500340430ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir1foo subdir1-file2.txt000066400000000000000000000000121334444677500340430ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir1bar OWNED libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir2/000077500000000000000000000000001334444677500310215ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir2/directory.yast000066400000000000000000000001041334444677500337220ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir2-file1.txt subdir2-file1.txt000066400000000000000000000000061334444677500340470ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex-broken-digest/subdir2hello libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/000077500000000000000000000000001334444677500247145ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/content000066400000000000000000000003471334444677500263150ustar00rootroot00000000000000HASH SHA1 f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 subdir1/subdir1-file1.txt HASH SHA1 e242ed3bffccdf271b7fbaf34ed72d089537b42f subdir1/subdir1-file2.txt HASH SHA1 f572d396fae9206628714fb2ce00f72e94f2258f subdir2/subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/content.asc000066400000000000000000000003051334444677500270540ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkkHLgwACgkQm+zCtd2wN1ZD7QCghDVP3V6Pi/gBMoA6Flc77/4u f30Anjf9MqPHx/YZXSFHrYtcst0welTn =g7it -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/content.key000066400000000000000000000055611334444677500271070ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/directory.yast000066400000000000000000000000221334444677500276140ustar00rootroot00000000000000subdir1/ subdir2/ libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir1/000077500000000000000000000000001334444677500262655ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir1/directory.yast000066400000000000000000000001261334444677500311720ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir1-file1.txt subdir1-file2.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir1/subdir1-file1.txt000066400000000000000000000000041334444677500313670ustar00rootroot00000000000000foo libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir1/subdir1-file2.txt000066400000000000000000000000041334444677500313700ustar00rootroot00000000000000bar libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir2/000077500000000000000000000000001334444677500262665ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir2/directory.yast000066400000000000000000000001041334444677500311670ustar00rootroot00000000000000directory.yast SHA1SUMS SHA1SUMS.asc SHA1SUMS.key subdir2-file1.txt libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/contentindex/subdir2/subdir2-file1.txt000066400000000000000000000000061334444677500313730ustar00rootroot00000000000000hello libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/000077500000000000000000000000001334444677500233055ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-1-2.diff000066400000000000000000000025771334444677500253660ustar00rootroot0000000000000020a21,26 > [edit] Distribution > > In the past SUSE first released the Personal and Professional versions in boxed sets which included extensive printed documentation, then waited a few months before it released versions on its FTP servers. Under Novell and with advent of openSUSE this has been reversed: SUSE Linux 10.0 was available for download well before the retail release of SUSE Linux 10.0. In addition, Novell has discontinued the Personal version, renamed the Professional version to simply "SUSE Linux", and repriced "SUSE Linux" to about the same as the obsolete Personal version. Now Novell has also renamed SUSE Linux to openSUSE with version 10.2 of the distro. > > Starting with version 9.2, an unsupported 1 DVD ISO image of SUSE Professional was made available for download as well as a bootable LiveDVD evaluation. The FTP server continues to operate and has the advantage of "streamlined" installs: Only downloading packages the user feels they need. The ISO has the advantages of an easy install package, the ability to operate even if the user's network card does not work 'out of the box', and less experience needed (i.e., an inexperienced Linux user may not know whether or not to install a certain package, and the ISO offers several preselected sets of packages). The retail box DVD supports x86, and x86_64 installs, but the included CD-ROMs do not include x86_64 support. > libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-1-2.diff.gz000066400000000000000000000013111334444677500257660ustar00rootroot00000000000000‹\œFfile-1-2.diffuTMo1½ó+F¹¤°j#TA\H• ­å‚š]Ïv­zíÈöf“ϳ÷#i RÛ±=ïcÞduΫ‹åêòÕGú%JÇß´Ö!z]vQ;‹*þ®-ÅFhË!Òæ~ó™jíñéÅQùðN|p– ±Utç]-!è\Øá_´¥Òíq?H Ô7ºjP«L§P“}ô0^ÛˆŠrU׊œˆ,ˆ¥žu:bª¥§ÖÙØ*¥v^HŸš!E=Зwõ©\нUâé›Û‰Øö:6Äj,r5¹­Ø¬26:Pà Ð^ÒsQWƒ7Úv{º8/ÎA*ïX.È€zoc´N#Áä’—ˆ{Ñ„ö¬Y‘Ìf…AdÑ#ËDBéPA0n>w|T»D[ËítúPtt»5ZqËì‚_áõéQzÁ¥ëbîÐ@%}»28#ñ%¤ûSâl‚›©ÈEëÙê<‚‰%|X%kŒJatÅÃMdž^ÿP¬’êlè¶[çS@.hýsM×›[Ò-?~âJš[ËJþ7<çù% H®‹ùÊ 2ššËŽM—³YÐ0=fŒ¦9…Q£gø”©’“¦J<¶Êå$Ü8:áê9Ád0Ì|ë%`ùª8ý ðäë›Á¿qG!!‡h U ýûË¡5>þ\¾›'µ¤rÜùÇìÓúí÷Û¯ØY—ÙŽõéáØ1‡ú/ßX+ûlibzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-2-3.diff000066400000000000000000000014301334444677500253530ustar00rootroot0000000000000014a15,49 > [edit] Versions > Major Versions > 1.0 - April 1994 > 1.0.9 - July 1994 > 11/94 - November 1994 > 4/95 - April 1995 > 8/95 - August 1995 > 11/95 - November 1995 > 4.2 - May 1996 > 4.3 - September 1996 > 4.4 - May 1997 > 4.4.1 - February 1997 > 5.0 - June 1997 > 5.1 - November 1997 > 5.2 - 23 March 1998 > 6.0 - 21 December 1998 > 6.1 - 7 April 1999 > 6.2 - 12 August 1999 > 6.3 - 25 November 1999 > 6.4 - 27 March 2000 > 7.0 - 27 September 2000 > 7.1 - 24 January 2001 > 7.2 - 15 June 2001 > 7.3 - 13 October 2001 > 8.0 - 22 April 2002 > 8.1 - 30 September 2002 > 8.2 - 7 April 2003 > 9.0 - 15 October 2003 > 9.1 - 23 April 2004 > 9.2 - 25 October 2004 > 9.3 - 16 April 2005 > 10.0 - 6 October 2005 > 10.1 - 11 May 2006 > 10.2 - 7 December 2006 > libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-2-3.diff.gz000066400000000000000000000005261334444677500257770ustar00rootroot00000000000000‹¨œFfile-2-3.diff]’ÁN„0E×ÎWô”é+-Љ‰qA2º0qc\0L£˜&Lü{Û÷J)³=÷Í=\ ¨[©w÷ìÝœºéƒ½;vC?:rh¾›È8»¹cÛh-‰eÚÓz>ÿE{-=|~ÍÏÑØ%{­6ÊÁjóç(ÀÁÑ‚hxÊø—…d÷[!Elibzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-3-4.diff000066400000000000000000000023611334444677500253610ustar00rootroot0000000000000014a15,18 > SUSE has support for resizing NTFS partitions during installation which allows it to co-exist with existing Windows 2000 or XP installations. SUSE has the ability to detect and install drivers for many common winmodems shipped with OEM desktop and laptop systems (such modems are designed to use Windows-specific software to operate). > > Several desktop environments such as KDE and GNOME and window managers like Window Maker and Blackbox are included, with the YaST2 installer allowing the user to choose a preselection of GNOME, KDE, or no desktop at all. SUSE ships with multimedia software such as K3B (CD/DVD burning), Amarok (audio playback), and Kaffeine (movie playback). It contains OpenOffice.org, and software for reading and/or creating other common document formats such as PDF. Due to patent problems, the distribution lacks codecs for proprietary formats like avi, but these can be installed with packages available on the internet. MP3s are handled in the fully capable graphical media studio Amarok with the Helix engine (part of RealNetworks' RealPlayer), when RealPlayer is installed. This is due to an agreement between Novell and RealNetworks to ship RealPlayer with SUSE as a solution to MP3 patent problems.[citation needed] > libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-3-4.diff.gz000066400000000000000000000013071334444677500257770ustar00rootroot00000000000000‹ÜFfile-3-4.diff]TYÓ0~çWÌ]©d/xBbé. UÑåâa’LšQÛ²v˯gÆéo±=×wL®_ãõ›ñõÛï`ùuy-Fˆ½÷.$h\€@‘ÿ°]Áìéa CâÄÎF¨û ×lcBcP/aÛrÕ‚Ý6'H*÷Šž9&Ørj!jÚw¶µÝ\]]´ù±ø§R,NÓ¤–K6œvZ°¦DU´õ!êÀ 1ÏÛ¡ÝIÓ®ÓqØv®¦Nµì=ÕÃóû©T‰ëä|.cÐëgÜŤ±£Ø ˆ}"ÒX^YÉ–î}¤Ã쯢§Š® º&m5Rœ§€‰. !T9%™ ͱÙ g;²IyV¶" On November 4, 2003, Novell announced it would acquire SuSE.[2] The acquisition was finalized in January 2004.[3] J. Philips (Novell's corporate technology strategist for the Asia Pacific region) stated that Novell would not "in the medium term" alter the way in which SUSE continues to be developed.[4] At Novell's annual BrainShare gathering in 2004, all computers ran SUSE Linux for the first time. At this gathering it was also announced that the proprietary SUSE administration program YaST2 would be released into the public under the GPL license. > > On August 4, 2005, Novell spokesman and director of public relations Bruce Lowry announced that the development of the SUSE Professional series will become more open and within the community project openSUSE try to reach a wider audience of users and developers. The software, by definition of open source, already had their coding "open," but now the development process will be more "open" than before, allowing developers and users to test the product and help develop it. Previously all development work was done in-house by SUSE, and version 10.0 was the first version that had public beta testing. As part of the change, YaST Online Update server access will be complimentary for SUSE Linux users, and along the lines of most open source distributions, there will both be a free download available on the web and a boxed edition. This change in philosophy led to the release of the SUSE Linux 10.0 release on October 6, 2005 in "OSS" (completely open source), "eval" (has both open source and proprietary applications and is actually a fully featured version) and retail boxed-set editions. > libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/diffs/file-4-current.diff.gz000066400000000000000000000016031334444677500273160ustar00rootroot00000000000000‹ÙœFfile-4-current.diffmTKoÛ8¾÷W |i¨†“¦Ý[,P,PM·‡EÃHYÜP¤–«î¯ßoHÛuÑ= ‡3ßkøÿh®7¯>Òƒ£/~/S+nºÙlÞ5åµÄÎùì:éÉ$Z|¶=q÷o6Ah›·ŸÖO7Ïôu”ú3šd¼£…# Ʊ5?ôž£Ïì2‡ƒv¾]?½{¦Ïkz5s¤7uÐëH³œ„’t£óÖï“þÙ™˜hðFÝEÃôÈLGgÞ]¡e=Î9 W´Î'ZƒÞœ¤7yBû0­ˆ-¾å÷ÂE¹Œ¦iûmû P\2.K¤ä©êý,ýúéö™îN#úd¶ôg`ã¶#C–£g0n§=•qƒQ-§9cb¤À®N¹ÇˆïgZƒ ™Ì$kF/{¥"+Ûè/<)tõòüŒ$U¹ôæ~2ÎõÔœïOô7o¿Þ•¯ V8“@´4Ê­…¬ÙõGqþz¼'üe¬Ô¸Üå]Ø–÷ç°ÄÙ¿HœÀ]O=BÒ%°óé-æ<‚åNèÞ/ü?|Ž‚Oâ’^×_…ÖcðƒÄˆ=BX´ŒnÃa`TE°¨X­Çé”I•âà*U¥g°°ŸqI©sî“NÏQm+”Ž9q]Rý˜ÞP{À!B_7— ˆèsèD€îýFVŽbðôjëJËšµ9!©ËoܶßÇʯ\Z©XÿŸ2ÁúE;þ„XWìj®ÄsTú þz:ŠO71le½ñ9ÚC í%”Ň—’ÁÞ;A`ÞŽ¨%®*6¥ßÔÿõf½)µ?ƒ}:*«ÇH´mð~¤™ÃÙów`§±Eî¬Áäos¯oxíÕ§î}tˬQ¼º ºZ›V´¨@Ùzh¥#´gÔy“éÒ5äëcàŒ¶Ñbh_ù4ê4¦! ýâ¬%Þ³±ÜZ¤¦¦n‘¶ŽÃ•ïÈ7Þí¦áÁvWvúLÌx }ôóx «kPwñ¸¿,@eRô=;zÀžéëý¡.¤¶\=l·+zS‘$0ô‚ÛUC+Ù³EÁ— ŸKêŠùòIáªvÇÕÕC ç.áåÓ Ðõ;§䜂«RÐÁØÊÿm”tÒ –×ä?![è–„libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/directory.yast000066400000000000000000000002151334444677500251160ustar00rootroot00000000000000complexdir/ complexdir-broken/ diffs/ file-1.txt file-2.txt file-3.txt file-4.txt file-current.txt file-current.txt.asc file-current.txt.key libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-1.txt000066400000000000000000000120241334444677500240270ustar00rootroot00000000000000History The SUSE Linux distribution was originally a German translation of Slackware Linux. In mid-1992, Softlanding Linux System (SLS) was founded by Peter MacDonald, and was the first comprehensive distribution to contain elements such as X and TCP/IP. The Slackware distribution (maintained by Patrick Volkerding) was initially based largely on SLS. S.u.S.E was founded in late 1992 as a UNIX consulting group, which among other things regularly released software packages that included SLS and Slackware, and printed UNIX/Linux manuals. S.u.S.E is an acronym for the German phrase "Software- und System-Entwicklung" ("Software and system development"). There is a rumour that the name is a tribute to the German computer pioneer Konrad Zuse. They released the first CD version of SLS/Slackware in 1994, under the name S.u.S.E Linux 1.0. It later integrated with the Jurix distribution by Florian La Roche, to release the first really unique S.u.S.E Linux 4.2 in 1996. Over time, SuSE Linux incorporated many aspects of Red Hat Linux (e.g., using RPMs and /etc/sysconfig). In a move to more effectively reach its business audience, SuSE introduced the SuSE Linux Enterpriser Server in 2001, and consecutively changed the company name to SUSE Linux in September 2003 as a part of its overall new branding strategy, as announced by SUSE's marketing VP Uwe Schmid.[1] The current mascot of SuSE is Geeko, also known as the "SuSE Lizard" [edit] Features SUSE includes an installation and administration program called YaST2 which handles hard disk partitioning, system setup, RPM package management, online updates, network and firewall configuration, user administration and more in an integrated interface. Starting with the 10.1 release, SuSE includes a secondary installation program known as Zen-Updater, which can be used as a secondary means of installing software and replaces Suse-updater providing notification of software updates on the desktop. The latest release, openSUSE 10.2 is available as a retail package and as a no-cost open source package. In terms of software, there are major differences between the two packages (see Reference below), including the fact that the retail edition contains a number of proprietary components, such as Macromedia Flash. In addition, the retail package, available for 59.95 USD, includes a printed manual and limited technical support. openSUSE is available to download freely from their website. The retail and eval versions contain one DVD and six CDs, while openSUSE uses five CDs. It is the first SUSE release to be called openSUSE, previous versions were called SUSE Linux. Other flavors include dedicated server editions and groupware servers geared towards corporate networks and enterprises, along with a stripped-down business desktop which runs some software designed for Microsoft Windows out of the box by virtue of WINE. SUSE Linux Enterprise Server (SLES) and SUSE Linux Enterprise Desktop (SLED) are Novell's branded version of SUSE targeted at corporate environments. SUSE Linux Enterprise product line (SLES and SLED) include some proprietary software as well as technical support. For instance, SuSE Linux Enterprise Server 9 (SLES 9) has fewer packages (around 1,000 packages) than the SuSE Linux Professional (consumer) distribution which has around 3,500 packages. Most of the packages that have been removed are desktop applications which are more suited to consumers than to a business environment. SLES has a guaranteed life cycle of 5 years and only the SLES products are certified by independent hardware and software vendors. [edit] See also Portal:Free software Free software Portal * Novell * OpenSUSE * Linux on zSeries * List of Linux distributions * Comparison of Linux distributions * Commercial and community Linux distributions by the same vendor * Sax2 [edit] References 1. ^ Proffitt, B. (2003). SuSE Rebrands Ahead of 9.0 Launch. 2. ^ Shankland, S. (2003). Novell to acquire SuSE Linux. Retrieved December 20, 2003. 3. ^ Kennedy, D. (2003). Novell's Linux buy opens road to top. Retrieved December 20, 2003. 4. ^ Ramesh, R. (2004). Novell: SuSE stays the same, for now. Retrieved January 14, 2004. * SuSE Roadmap * Differences between boxed and retail version [edit] External links * openSUSE * Novell SUSE Linux Enterprise 10 * suse at DistroWatch * Hacking SUSE Linux * Fultus Technical Documentation eLibrary - SUSE * 10.1 Review (tuxmachines.org) * The Unofficial SUSE FAQ * SUSE Linux Support Forums * SUSE Linux Community Forums * SuseBR Brazilian SUSE Linux Community Forums - * SUSE Wiki * SUSEroot * The Linux Master Forums * 10.0 Review * SUSE Support Knowledgebase * Links about SUSE Linux * SuSE Linux OS Turkiye * Planet SuSE - Blogs of SUSE employees and SUSE community members * Linux Desktop Multiplier - Turn one SLED or openSUSE computer into 10 independent, full-client desktops * Hong Kong & Macau Novell User Group - An unofficial web site provides news, articles and technical tips. libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-2.txt000066400000000000000000000145761334444677500240460ustar00rootroot00000000000000History The SUSE Linux distribution was originally a German translation of Slackware Linux. In mid-1992, Softlanding Linux System (SLS) was founded by Peter MacDonald, and was the first comprehensive distribution to contain elements such as X and TCP/IP. The Slackware distribution (maintained by Patrick Volkerding) was initially based largely on SLS. S.u.S.E was founded in late 1992 as a UNIX consulting group, which among other things regularly released software packages that included SLS and Slackware, and printed UNIX/Linux manuals. S.u.S.E is an acronym for the German phrase "Software- und System-Entwicklung" ("Software and system development"). There is a rumour that the name is a tribute to the German computer pioneer Konrad Zuse. They released the first CD version of SLS/Slackware in 1994, under the name S.u.S.E Linux 1.0. It later integrated with the Jurix distribution by Florian La Roche, to release the first really unique S.u.S.E Linux 4.2 in 1996. Over time, SuSE Linux incorporated many aspects of Red Hat Linux (e.g., using RPMs and /etc/sysconfig). In a move to more effectively reach its business audience, SuSE introduced the SuSE Linux Enterpriser Server in 2001, and consecutively changed the company name to SUSE Linux in September 2003 as a part of its overall new branding strategy, as announced by SUSE's marketing VP Uwe Schmid.[1] The current mascot of SuSE is Geeko, also known as the "SuSE Lizard" [edit] Features SUSE includes an installation and administration program called YaST2 which handles hard disk partitioning, system setup, RPM package management, online updates, network and firewall configuration, user administration and more in an integrated interface. Starting with the 10.1 release, SuSE includes a secondary installation program known as Zen-Updater, which can be used as a secondary means of installing software and replaces Suse-updater providing notification of software updates on the desktop. The latest release, openSUSE 10.2 is available as a retail package and as a no-cost open source package. In terms of software, there are major differences between the two packages (see Reference below), including the fact that the retail edition contains a number of proprietary components, such as Macromedia Flash. In addition, the retail package, available for 59.95 USD, includes a printed manual and limited technical support. openSUSE is available to download freely from their website. The retail and eval versions contain one DVD and six CDs, while openSUSE uses five CDs. It is the first SUSE release to be called openSUSE, previous versions were called SUSE Linux. Other flavors include dedicated server editions and groupware servers geared towards corporate networks and enterprises, along with a stripped-down business desktop which runs some software designed for Microsoft Windows out of the box by virtue of WINE. SUSE Linux Enterprise Server (SLES) and SUSE Linux Enterprise Desktop (SLED) are Novell's branded version of SUSE targeted at corporate environments. SUSE Linux Enterprise product line (SLES and SLED) include some proprietary software as well as technical support. For instance, SuSE Linux Enterprise Server 9 (SLES 9) has fewer packages (around 1,000 packages) than the SuSE Linux Professional (consumer) distribution which has around 3,500 packages. Most of the packages that have been removed are desktop applications which are more suited to consumers than to a business environment. SLES has a guaranteed life cycle of 5 years and only the SLES products are certified by independent hardware and software vendors. [edit] Distribution In the past SUSE first released the Personal and Professional versions in boxed sets which included extensive printed documentation, then waited a few months before it released versions on its FTP servers. Under Novell and with advent of openSUSE this has been reversed: SUSE Linux 10.0 was available for download well before the retail release of SUSE Linux 10.0. In addition, Novell has discontinued the Personal version, renamed the Professional version to simply "SUSE Linux", and repriced "SUSE Linux" to about the same as the obsolete Personal version. Now Novell has also renamed SUSE Linux to openSUSE with version 10.2 of the distro. Starting with version 9.2, an unsupported 1 DVD ISO image of SUSE Professional was made available for download as well as a bootable LiveDVD evaluation. The FTP server continues to operate and has the advantage of "streamlined" installs: Only downloading packages the user feels they need. The ISO has the advantages of an easy install package, the ability to operate even if the user's network card does not work 'out of the box', and less experience needed (i.e., an inexperienced Linux user may not know whether or not to install a certain package, and the ISO offers several preselected sets of packages). The retail box DVD supports x86, and x86_64 installs, but the included CD-ROMs do not include x86_64 support. [edit] See also Portal:Free software Free software Portal * Novell * OpenSUSE * Linux on zSeries * List of Linux distributions * Comparison of Linux distributions * Commercial and community Linux distributions by the same vendor * Sax2 [edit] References 1. ^ Proffitt, B. (2003). SuSE Rebrands Ahead of 9.0 Launch. 2. ^ Shankland, S. (2003). Novell to acquire SuSE Linux. Retrieved December 20, 2003. 3. ^ Kennedy, D. (2003). Novell's Linux buy opens road to top. Retrieved December 20, 2003. 4. ^ Ramesh, R. (2004). Novell: SuSE stays the same, for now. Retrieved January 14, 2004. * SuSE Roadmap * Differences between boxed and retail version [edit] External links * openSUSE * Novell SUSE Linux Enterprise 10 * suse at DistroWatch * Hacking SUSE Linux * Fultus Technical Documentation eLibrary - SUSE * 10.1 Review (tuxmachines.org) * The Unofficial SUSE FAQ * SUSE Linux Support Forums * SUSE Linux Community Forums * SuseBR Brazilian SUSE Linux Community Forums - * SUSE Wiki * SUSEroot * The Linux Master Forums * 10.0 Review * SUSE Support Knowledgebase * Links about SUSE Linux * SuSE Linux OS Turkiye * Planet SuSE - Blogs of SUSE employees and SUSE community members * Linux Desktop Multiplier - Turn one SLED or openSUSE computer into 10 independent, full-client desktops * Hong Kong & Macau Novell User Group - An unofficial web site provides news, articles and technical tips. libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-3.txt000066400000000000000000000161071334444677500240370ustar00rootroot00000000000000History The SUSE Linux distribution was originally a German translation of Slackware Linux. In mid-1992, Softlanding Linux System (SLS) was founded by Peter MacDonald, and was the first comprehensive distribution to contain elements such as X and TCP/IP. The Slackware distribution (maintained by Patrick Volkerding) was initially based largely on SLS. S.u.S.E was founded in late 1992 as a UNIX consulting group, which among other things regularly released software packages that included SLS and Slackware, and printed UNIX/Linux manuals. S.u.S.E is an acronym for the German phrase "Software- und System-Entwicklung" ("Software and system development"). There is a rumour that the name is a tribute to the German computer pioneer Konrad Zuse. They released the first CD version of SLS/Slackware in 1994, under the name S.u.S.E Linux 1.0. It later integrated with the Jurix distribution by Florian La Roche, to release the first really unique S.u.S.E Linux 4.2 in 1996. Over time, SuSE Linux incorporated many aspects of Red Hat Linux (e.g., using RPMs and /etc/sysconfig). In a move to more effectively reach its business audience, SuSE introduced the SuSE Linux Enterpriser Server in 2001, and consecutively changed the company name to SUSE Linux in September 2003 as a part of its overall new branding strategy, as announced by SUSE's marketing VP Uwe Schmid.[1] The current mascot of SuSE is Geeko, also known as the "SuSE Lizard" [edit] Features SUSE includes an installation and administration program called YaST2 which handles hard disk partitioning, system setup, RPM package management, online updates, network and firewall configuration, user administration and more in an integrated interface. Starting with the 10.1 release, SuSE includes a secondary installation program known as Zen-Updater, which can be used as a secondary means of installing software and replaces Suse-updater providing notification of software updates on the desktop. [edit] Versions Major Versions 1.0 - April 1994 1.0.9 - July 1994 11/94 - November 1994 4/95 - April 1995 8/95 - August 1995 11/95 - November 1995 4.2 - May 1996 4.3 - September 1996 4.4 - May 1997 4.4.1 - February 1997 5.0 - June 1997 5.1 - November 1997 5.2 - 23 March 1998 6.0 - 21 December 1998 6.1 - 7 April 1999 6.2 - 12 August 1999 6.3 - 25 November 1999 6.4 - 27 March 2000 7.0 - 27 September 2000 7.1 - 24 January 2001 7.2 - 15 June 2001 7.3 - 13 October 2001 8.0 - 22 April 2002 8.1 - 30 September 2002 8.2 - 7 April 2003 9.0 - 15 October 2003 9.1 - 23 April 2004 9.2 - 25 October 2004 9.3 - 16 April 2005 10.0 - 6 October 2005 10.1 - 11 May 2006 10.2 - 7 December 2006 The latest release, openSUSE 10.2 is available as a retail package and as a no-cost open source package. In terms of software, there are major differences between the two packages (see Reference below), including the fact that the retail edition contains a number of proprietary components, such as Macromedia Flash. In addition, the retail package, available for 59.95 USD, includes a printed manual and limited technical support. openSUSE is available to download freely from their website. The retail and eval versions contain one DVD and six CDs, while openSUSE uses five CDs. It is the first SUSE release to be called openSUSE, previous versions were called SUSE Linux. Other flavors include dedicated server editions and groupware servers geared towards corporate networks and enterprises, along with a stripped-down business desktop which runs some software designed for Microsoft Windows out of the box by virtue of WINE. SUSE Linux Enterprise Server (SLES) and SUSE Linux Enterprise Desktop (SLED) are Novell's branded version of SUSE targeted at corporate environments. SUSE Linux Enterprise product line (SLES and SLED) include some proprietary software as well as technical support. For instance, SuSE Linux Enterprise Server 9 (SLES 9) has fewer packages (around 1,000 packages) than the SuSE Linux Professional (consumer) distribution which has around 3,500 packages. Most of the packages that have been removed are desktop applications which are more suited to consumers than to a business environment. SLES has a guaranteed life cycle of 5 years and only the SLES products are certified by independent hardware and software vendors. [edit] Distribution In the past SUSE first released the Personal and Professional versions in boxed sets which included extensive printed documentation, then waited a few months before it released versions on its FTP servers. Under Novell and with advent of openSUSE this has been reversed: SUSE Linux 10.0 was available for download well before the retail release of SUSE Linux 10.0. In addition, Novell has discontinued the Personal version, renamed the Professional version to simply "SUSE Linux", and repriced "SUSE Linux" to about the same as the obsolete Personal version. Now Novell has also renamed SUSE Linux to openSUSE with version 10.2 of the distro. Starting with version 9.2, an unsupported 1 DVD ISO image of SUSE Professional was made available for download as well as a bootable LiveDVD evaluation. The FTP server continues to operate and has the advantage of "streamlined" installs: Only downloading packages the user feels they need. The ISO has the advantages of an easy install package, the ability to operate even if the user's network card does not work 'out of the box', and less experience needed (i.e., an inexperienced Linux user may not know whether or not to install a certain package, and the ISO offers several preselected sets of packages). The retail box DVD supports x86, and x86_64 installs, but the included CD-ROMs do not include x86_64 support. [edit] See also Portal:Free software Free software Portal * Novell * OpenSUSE * Linux on zSeries * List of Linux distributions * Comparison of Linux distributions * Commercial and community Linux distributions by the same vendor * Sax2 [edit] References 1. ^ Proffitt, B. (2003). SuSE Rebrands Ahead of 9.0 Launch. 2. ^ Shankland, S. (2003). Novell to acquire SuSE Linux. Retrieved December 20, 2003. 3. ^ Kennedy, D. (2003). Novell's Linux buy opens road to top. Retrieved December 20, 2003. 4. ^ Ramesh, R. (2004). Novell: SuSE stays the same, for now. Retrieved January 14, 2004. * SuSE Roadmap * Differences between boxed and retail version [edit] External links * openSUSE * Novell SUSE Linux Enterprise 10 * suse at DistroWatch * Hacking SUSE Linux * Fultus Technical Documentation eLibrary - SUSE * 10.1 Review (tuxmachines.org) * The Unofficial SUSE FAQ * SUSE Linux Support Forums * SUSE Linux Community Forums * SuseBR Brazilian SUSE Linux Community Forums - * SUSE Wiki * SUSEroot * The Linux Master Forums * 10.0 Review * SUSE Support Knowledgebase * Links about SUSE Linux * SuSE Linux OS Turkiye * Planet SuSE - Blogs of SUSE employees and SUSE community members * Linux Desktop Multiplier - Turn one SLED or openSUSE computer into 10 independent, full-client desktops * Hong Kong & Macau Novell User Group - An unofficial web site provides news, articles and technical tips. libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-4.txt000066400000000000000000000204471334444677500240420ustar00rootroot00000000000000History The SUSE Linux distribution was originally a German translation of Slackware Linux. In mid-1992, Softlanding Linux System (SLS) was founded by Peter MacDonald, and was the first comprehensive distribution to contain elements such as X and TCP/IP. The Slackware distribution (maintained by Patrick Volkerding) was initially based largely on SLS. S.u.S.E was founded in late 1992 as a UNIX consulting group, which among other things regularly released software packages that included SLS and Slackware, and printed UNIX/Linux manuals. S.u.S.E is an acronym for the German phrase "Software- und System-Entwicklung" ("Software and system development"). There is a rumour that the name is a tribute to the German computer pioneer Konrad Zuse. They released the first CD version of SLS/Slackware in 1994, under the name S.u.S.E Linux 1.0. It later integrated with the Jurix distribution by Florian La Roche, to release the first really unique S.u.S.E Linux 4.2 in 1996. Over time, SuSE Linux incorporated many aspects of Red Hat Linux (e.g., using RPMs and /etc/sysconfig). In a move to more effectively reach its business audience, SuSE introduced the SuSE Linux Enterpriser Server in 2001, and consecutively changed the company name to SUSE Linux in September 2003 as a part of its overall new branding strategy, as announced by SUSE's marketing VP Uwe Schmid.[1] The current mascot of SuSE is Geeko, also known as the "SuSE Lizard" [edit] Features SUSE includes an installation and administration program called YaST2 which handles hard disk partitioning, system setup, RPM package management, online updates, network and firewall configuration, user administration and more in an integrated interface. Starting with the 10.1 release, SuSE includes a secondary installation program known as Zen-Updater, which can be used as a secondary means of installing software and replaces Suse-updater providing notification of software updates on the desktop. SUSE has support for resizing NTFS partitions during installation which allows it to co-exist with existing Windows 2000 or XP installations. SUSE has the ability to detect and install drivers for many common winmodems shipped with OEM desktop and laptop systems (such modems are designed to use Windows-specific software to operate). Several desktop environments such as KDE and GNOME and window managers like Window Maker and Blackbox are included, with the YaST2 installer allowing the user to choose a preselection of GNOME, KDE, or no desktop at all. SUSE ships with multimedia software such as K3B (CD/DVD burning), Amarok (audio playback), and Kaffeine (movie playback). It contains OpenOffice.org, and software for reading and/or creating other common document formats such as PDF. Due to patent problems, the distribution lacks codecs for proprietary formats like avi, but these can be installed with packages available on the internet. MP3s are handled in the fully capable graphical media studio Amarok with the Helix engine (part of RealNetworks' RealPlayer), when RealPlayer is installed. This is due to an agreement between Novell and RealNetworks to ship RealPlayer with SUSE as a solution to MP3 patent problems.[citation needed] [edit] Versions Major Versions 1.0 - April 1994 1.0.9 - July 1994 11/94 - November 1994 4/95 - April 1995 8/95 - August 1995 11/95 - November 1995 4.2 - May 1996 4.3 - September 1996 4.4 - May 1997 4.4.1 - February 1997 5.0 - June 1997 5.1 - November 1997 5.2 - 23 March 1998 6.0 - 21 December 1998 6.1 - 7 April 1999 6.2 - 12 August 1999 6.3 - 25 November 1999 6.4 - 27 March 2000 7.0 - 27 September 2000 7.1 - 24 January 2001 7.2 - 15 June 2001 7.3 - 13 October 2001 8.0 - 22 April 2002 8.1 - 30 September 2002 8.2 - 7 April 2003 9.0 - 15 October 2003 9.1 - 23 April 2004 9.2 - 25 October 2004 9.3 - 16 April 2005 10.0 - 6 October 2005 10.1 - 11 May 2006 10.2 - 7 December 2006 The latest release, openSUSE 10.2 is available as a retail package and as a no-cost open source package. In terms of software, there are major differences between the two packages (see Reference below), including the fact that the retail edition contains a number of proprietary components, such as Macromedia Flash. In addition, the retail package, available for 59.95 USD, includes a printed manual and limited technical support. openSUSE is available to download freely from their website. The retail and eval versions contain one DVD and six CDs, while openSUSE uses five CDs. It is the first SUSE release to be called openSUSE, previous versions were called SUSE Linux. Other flavors include dedicated server editions and groupware servers geared towards corporate networks and enterprises, along with a stripped-down business desktop which runs some software designed for Microsoft Windows out of the box by virtue of WINE. SUSE Linux Enterprise Server (SLES) and SUSE Linux Enterprise Desktop (SLED) are Novell's branded version of SUSE targeted at corporate environments. SUSE Linux Enterprise product line (SLES and SLED) include some proprietary software as well as technical support. For instance, SuSE Linux Enterprise Server 9 (SLES 9) has fewer packages (around 1,000 packages) than the SuSE Linux Professional (consumer) distribution which has around 3,500 packages. Most of the packages that have been removed are desktop applications which are more suited to consumers than to a business environment. SLES has a guaranteed life cycle of 5 years and only the SLES products are certified by independent hardware and software vendors. [edit] Distribution In the past SUSE first released the Personal and Professional versions in boxed sets which included extensive printed documentation, then waited a few months before it released versions on its FTP servers. Under Novell and with advent of openSUSE this has been reversed: SUSE Linux 10.0 was available for download well before the retail release of SUSE Linux 10.0. In addition, Novell has discontinued the Personal version, renamed the Professional version to simply "SUSE Linux", and repriced "SUSE Linux" to about the same as the obsolete Personal version. Now Novell has also renamed SUSE Linux to openSUSE with version 10.2 of the distro. Starting with version 9.2, an unsupported 1 DVD ISO image of SUSE Professional was made available for download as well as a bootable LiveDVD evaluation. The FTP server continues to operate and has the advantage of "streamlined" installs: Only downloading packages the user feels they need. The ISO has the advantages of an easy install package, the ability to operate even if the user's network card does not work 'out of the box', and less experience needed (i.e., an inexperienced Linux user may not know whether or not to install a certain package, and the ISO offers several preselected sets of packages). The retail box DVD supports x86, and x86_64 installs, but the included CD-ROMs do not include x86_64 support. [edit] See also Portal:Free software Free software Portal * Novell * OpenSUSE * Linux on zSeries * List of Linux distributions * Comparison of Linux distributions * Commercial and community Linux distributions by the same vendor * Sax2 [edit] References 1. ^ Proffitt, B. (2003). SuSE Rebrands Ahead of 9.0 Launch. 2. ^ Shankland, S. (2003). Novell to acquire SuSE Linux. Retrieved December 20, 2003. 3. ^ Kennedy, D. (2003). Novell's Linux buy opens road to top. Retrieved December 20, 2003. 4. ^ Ramesh, R. (2004). Novell: SuSE stays the same, for now. Retrieved January 14, 2004. * SuSE Roadmap * Differences between boxed and retail version [edit] External links * openSUSE * Novell SUSE Linux Enterprise 10 * suse at DistroWatch * Hacking SUSE Linux * Fultus Technical Documentation eLibrary - SUSE * 10.1 Review (tuxmachines.org) * The Unofficial SUSE FAQ * SUSE Linux Support Forums * SUSE Linux Community Forums * SuseBR Brazilian SUSE Linux Community Forums - * SUSE Wiki * SUSEroot * The Linux Master Forums * 10.0 Review * SUSE Support Knowledgebase * Links about SUSE Linux * SuSE Linux OS Turkiye * Planet SuSE - Blogs of SUSE employees and SUSE community members * Linux Desktop Multiplier - Turn one SLED or openSUSE computer into 10 independent, full-client desktops * Hong Kong & Macau Novell User Group - An unofficial web site provides news, articles and technical tips. libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-current.txt000066400000000000000000000236341334444677500253620ustar00rootroot00000000000000History The SUSE Linux distribution was originally a German translation of Slackware Linux. In mid-1992, Softlanding Linux System (SLS) was founded by Peter MacDonald, and was the first comprehensive distribution to contain elements such as X and TCP/IP. The Slackware distribution (maintained by Patrick Volkerding) was initially based largely on SLS. S.u.S.E was founded in late 1992 as a UNIX consulting group, which among other things regularly released software packages that included SLS and Slackware, and printed UNIX/Linux manuals. S.u.S.E is an acronym for the German phrase "Software- und System-Entwicklung" ("Software and system development"). There is a rumour that the name is a tribute to the German computer pioneer Konrad Zuse. They released the first CD version of SLS/Slackware in 1994, under the name S.u.S.E Linux 1.0. It later integrated with the Jurix distribution by Florian La Roche, to release the first really unique S.u.S.E Linux 4.2 in 1996. Over time, SuSE Linux incorporated many aspects of Red Hat Linux (e.g., using RPMs and /etc/sysconfig). In a move to more effectively reach its business audience, SuSE introduced the SuSE Linux Enterpriser Server in 2001, and consecutively changed the company name to SUSE Linux in September 2003 as a part of its overall new branding strategy, as announced by SUSE's marketing VP Uwe Schmid.[1] On November 4, 2003, Novell announced it would acquire SuSE.[2] The acquisition was finalized in January 2004.[3] J. Philips (Novell's corporate technology strategist for the Asia Pacific region) stated that Novell would not "in the medium term" alter the way in which SUSE continues to be developed.[4] At Novell's annual BrainShare gathering in 2004, all computers ran SUSE Linux for the first time. At this gathering it was also announced that the proprietary SUSE administration program YaST2 would be released into the public under the GPL license. On August 4, 2005, Novell spokesman and director of public relations Bruce Lowry announced that the development of the SUSE Professional series will become more open and within the community project openSUSE try to reach a wider audience of users and developers. The software, by definition of open source, already had their coding "open," but now the development process will be more "open" than before, allowing developers and users to test the product and help develop it. Previously all development work was done in-house by SUSE, and version 10.0 was the first version that had public beta testing. As part of the change, YaST Online Update server access will be complimentary for SUSE Linux users, and along the lines of most open source distributions, there will both be a free download available on the web and a boxed edition. This change in philosophy led to the release of the SUSE Linux 10.0 release on October 6, 2005 in "OSS" (completely open source), "eval" (has both open source and proprietary applications and is actually a fully featured version) and retail boxed-set editions. The current mascot of SuSE is Geeko, also known as the "SuSE Lizard" [edit] Features SUSE includes an installation and administration program called YaST2 which handles hard disk partitioning, system setup, RPM package management, online updates, network and firewall configuration, user administration and more in an integrated interface. Starting with the 10.1 release, SuSE includes a secondary installation program known as Zen-Updater, which can be used as a secondary means of installing software and replaces Suse-updater providing notification of software updates on the desktop. SUSE has support for resizing NTFS partitions during installation which allows it to co-exist with existing Windows 2000 or XP installations. SUSE has the ability to detect and install drivers for many common winmodems shipped with OEM desktop and laptop systems (such modems are designed to use Windows-specific software to operate). Several desktop environments such as KDE and GNOME and window managers like Window Maker and Blackbox are included, with the YaST2 installer allowing the user to choose a preselection of GNOME, KDE, or no desktop at all. SUSE ships with multimedia software such as K3B (CD/DVD burning), Amarok (audio playback), and Kaffeine (movie playback). It contains OpenOffice.org, and software for reading and/or creating other common document formats such as PDF. Due to patent problems, the distribution lacks codecs for proprietary formats like avi, but these can be installed with packages available on the internet. MP3s are handled in the fully capable graphical media studio Amarok with the Helix engine (part of RealNetworks' RealPlayer), when RealPlayer is installed. This is due to an agreement between Novell and RealNetworks to ship RealPlayer with SUSE as a solution to MP3 patent problems.[citation needed] [edit] Versions Major Versions 1.0 - April 1994 1.0.9 - July 1994 11/94 - November 1994 4/95 - April 1995 8/95 - August 1995 11/95 - November 1995 4.2 - May 1996 4.3 - September 1996 4.4 - May 1997 4.4.1 - February 1997 5.0 - June 1997 5.1 - November 1997 5.2 - 23 March 1998 6.0 - 21 December 1998 6.1 - 7 April 1999 6.2 - 12 August 1999 6.3 - 25 November 1999 6.4 - 27 March 2000 7.0 - 27 September 2000 7.1 - 24 January 2001 7.2 - 15 June 2001 7.3 - 13 October 2001 8.0 - 22 April 2002 8.1 - 30 September 2002 8.2 - 7 April 2003 9.0 - 15 October 2003 9.1 - 23 April 2004 9.2 - 25 October 2004 9.3 - 16 April 2005 10.0 - 6 October 2005 10.1 - 11 May 2006 10.2 - 7 December 2006 The latest release, openSUSE 10.2 is available as a retail package and as a no-cost open source package. In terms of software, there are major differences between the two packages (see Reference below), including the fact that the retail edition contains a number of proprietary components, such as Macromedia Flash. In addition, the retail package, available for 59.95 USD, includes a printed manual and limited technical support. openSUSE is available to download freely from their website. The retail and eval versions contain one DVD and six CDs, while openSUSE uses five CDs. It is the first SUSE release to be called openSUSE, previous versions were called SUSE Linux. Other flavors include dedicated server editions and groupware servers geared towards corporate networks and enterprises, along with a stripped-down business desktop which runs some software designed for Microsoft Windows out of the box by virtue of WINE. SUSE Linux Enterprise Server (SLES) and SUSE Linux Enterprise Desktop (SLED) are Novell's branded version of SUSE targeted at corporate environments. SUSE Linux Enterprise product line (SLES and SLED) include some proprietary software as well as technical support. For instance, SuSE Linux Enterprise Server 9 (SLES 9) has fewer packages (around 1,000 packages) than the SuSE Linux Professional (consumer) distribution which has around 3,500 packages. Most of the packages that have been removed are desktop applications which are more suited to consumers than to a business environment. SLES has a guaranteed life cycle of 5 years and only the SLES products are certified by independent hardware and software vendors. [edit] Distribution In the past SUSE first released the Personal and Professional versions in boxed sets which included extensive printed documentation, then waited a few months before it released versions on its FTP servers. Under Novell and with advent of openSUSE this has been reversed: SUSE Linux 10.0 was available for download well before the retail release of SUSE Linux 10.0. In addition, Novell has discontinued the Personal version, renamed the Professional version to simply "SUSE Linux", and repriced "SUSE Linux" to about the same as the obsolete Personal version. Now Novell has also renamed SUSE Linux to openSUSE with version 10.2 of the distro. Starting with version 9.2, an unsupported 1 DVD ISO image of SUSE Professional was made available for download as well as a bootable LiveDVD evaluation. The FTP server continues to operate and has the advantage of "streamlined" installs: Only downloading packages the user feels they need. The ISO has the advantages of an easy install package, the ability to operate even if the user's network card does not work 'out of the box', and less experience needed (i.e., an inexperienced Linux user may not know whether or not to install a certain package, and the ISO offers several preselected sets of packages). The retail box DVD supports x86, and x86_64 installs, but the included CD-ROMs do not include x86_64 support. [edit] See also Portal:Free software Free software Portal * Novell * OpenSUSE * Linux on zSeries * List of Linux distributions * Comparison of Linux distributions * Commercial and community Linux distributions by the same vendor * Sax2 [edit] References 1. ^ Proffitt, B. (2003). SuSE Rebrands Ahead of 9.0 Launch. 2. ^ Shankland, S. (2003). Novell to acquire SuSE Linux. Retrieved December 20, 2003. 3. ^ Kennedy, D. (2003). Novell's Linux buy opens road to top. Retrieved December 20, 2003. 4. ^ Ramesh, R. (2004). Novell: SuSE stays the same, for now. Retrieved January 14, 2004. * SuSE Roadmap * Differences between boxed and retail version [edit] External links * openSUSE * Novell SUSE Linux Enterprise 10 * suse at DistroWatch * Hacking SUSE Linux * Fultus Technical Documentation eLibrary - SUSE * 10.1 Review (tuxmachines.org) * The Unofficial SUSE FAQ * SUSE Linux Support Forums * SUSE Linux Community Forums * SuseBR Brazilian SUSE Linux Community Forums - * SUSE Wiki * SUSEroot * The Linux Master Forums * 10.0 Review * SUSE Support Knowledgebase * Links about SUSE Linux * SuSE Linux OS Turkiye * Planet SuSE - Blogs of SUSE employees and SUSE community members * Linux Desktop Multiplier - Turn one SLED or openSUSE computer into 10 independent, full-client desktops * Hong Kong & Macau Novell User Group - An unofficial web site provides news, articles and technical tips. libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-current.txt.asc000066400000000000000000000137641334444677500261320ustar00rootroot00000000000000-----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.5 (GNU/Linux) owGFWbtvJMl5X0vw4wYQYKW2cCgw0JLGTJMzfOzxEmO5Q94+yCXNWd6etFgbNd01 MyX2Y1TVzeFsIMCZAxtw4MiAIQdOFChxIBhOHStQYDixAwX+G5z693316B7unn3B Lae6+ns/ft/Xf/u97z76zvd//fmvfjH72clvfueXj/95+ocznatB2hijyjqp7+uz z3/+2+fa1pVZ93pvFkpMbian4lyXzb3IcG70tKl1VYqVtKIyeq5LmedrIcVXyhSy FLWRpc0l36lmYpLL9HYljXI0EvGiFIXOBsPj41FfTKpZncsy0+Xc85isba0KsT05 n+wwj1nVlJnKxHQtrlStjLiQ6bgC06wv8CbfqSHnTBtbi7QqlkYtVGn1ndoUuK7w tKylLoXKVQF9rbBNuhAg8A2TevPsavfFVSJY7Sj3BpHtAu8TDS+RxKP0Vnxd5bfK kBpOaF3qWrNdptLiai7NXOEXKECxpNebJE0ySU43NIRgsJsSZBoSSoqb1y++IaFt k9dkormpmmVfrBaaxC4qHFXQ3cAAeGyFUfMGrMDIQEXmbGFhVmMJfeRckbFkDV5p 3hBTiMO6R32dVZcGauIxSbDrPAPnNjK3iQiya4hYCpmaqlwX0MKwH3wYLBcG/MXW xPMfiIa4sHcHp2W9gtnyppxvie14hzlbFwCZulN5tSQ3be2wS/CcOArTFFVjnBrE sJSFf+LcpMjTHUkoJBoKnCUcqPDvq6o0MhM/bqxiwh1rtYH0bCzulLEhis8nu21E wFHw0UGfVFKmFSIYxtlrmOwh2mv2qRFkzrmRZNOVrhf80svG6AdZhZg6y5FWkPtc iusqXcAh0MdL2BHQKI6vptQ/bR6yPkhGXsijRFzekYy6AKFJE3MZAVCZZeUkgpmQ wXapUuQE1L3G2XOY113dVsk8gbKWQvD66sKyn3ZVne7CWQjPmZ7vcGJLUVR3bP+i gp3UbAaKSEQOSImY1aA/JULKgkqTaVWmQS5YyFRZk3o3dGRFuCiDiLRQZKLMHZtT jPb2hi5YKUNU2nhO6UKWc0+EfE+6sXsgVqeYgcJELRFqU5ADrX2XcktpajIBSQpd DIwsSrUSU+PLFJwFm83Xfb5flkje1BUDIv7YwpjmVnG6fn0lblbQJF2g4iXvhu97 vctSvAZZZooAIr59PgGblpiuxapq8gzJ9dNGG2eM5N3oPZcmPrQ6VuEZlWD9wVWQ l5SlZk2UD5J3++/Fy0RcLXSul1ZsO0aQMfpe1CpdlFVezddBM4RjTOanVksUuVTP dErVBSx3cI+DhhPQi+6kLatabEEGerNQmW4KkDfFlpB57fNkJdckpatg7A2qyXAI FaZKTFVIfAWDHbwXTwOLx2xsFCBxYlB+JwtKxLmk6kemdvEAi5K/QsajICKPOj4P arkMopxIiAOqp+3SqtmsqHVVxyex3ixNhVhUNVmZacusQL1n65FL8ByJXogfycmb kbcM9Io1BnHu6tOymeYwa1tEvro6FzhB81IJh8rTZt5AUBcohzFQ7LK6VZZqG0V/ hgBJ0a8paj1J8GJZLIyFhBLn1QrCfkKXTpWl1+vQ769MNUOKauqzAmmn4Z6VBuup gnGVS284yUlABc27HU8LlKR6TWb4CeTiW0yzhghcyagQSLxEaocaQNxRj42rLSEG jHXNODSxPqVZpmbcXl1lZiEsGgLVEZmDerYWC8nprw3k4aTdomv9LdSeGlG6+kh3 CJtSSfI6Ov34pS0yFuqyQuwwh7xaEcVWRJbYyU6OVTaGCYpZzU8XKl+GNxBeyEij 7nTVWAJO4NgVZVWZW46/DN0KwTJY4J4K9cUVvNCZhnvJ3gMAFB6xi8kOPiSmCFgW DsIj6G0sdOw1Lpl9DllxWeaoz+JmmVF9sK7eynTDPpRhuSZ5KQsorTpZxrZwgsqc MAqxIJrcW4rK1l2vbfQ/vFZzp3eMAG6ImxQzo3CxWpV5BZXkndS5nOZKVC7qVmrq 2OGVe8Q3ag9Ro+BBZjvtqEQsUQgrWy0Xa5FTGrg8DL21mwC+hZN94+NSXCLPqHIf uYQkkluXkwkwDBsE8JQwXqvbTl9sqTuZ48ICXmJ9uqo7pNWWE7mEVVOfuvSQYE1a Nx5hzxr6d6Zk3RgVo2CHbxpQ0LnTf2BVHWxgEwfjPcRHd0LHZse7pmsBk9Rt1Xfl 7hbJUQofUFu+BX+QJtvq9d4RxffizLG3wLA33LUZSDIU1CVaQ+6xP/vj05UxxSXI 7wsktwK4KMtBBWWdKpq95fhkDRCw/YAKoRgBYICQgGcJu+AfCsU+XMSh23DoIpZK VXM6kSxID7Vy3YEAS+Nk6nO0PhSU7nMJ0KXTK2I3+tPMZEoFelKTiIjvCOgQL8MQ LxHVBPtAeLDOyM8bhgpWibb/sSoHLvtMwPoplyCSNXMwpaVVKMxbjFgcUcYoXUBt 1BLIFRJM8PrA2cYQ1zvNtRFdm9p7nNjiy96MIcmgxG1dLRPveApo2ywBIxxcQEjo D0Tv9ZuzSes91LHGd+iOzn6CoWJqqd/ybDZQ94Q92Jr8J732VpcZXUK+7WHeFN9c bVCicSRIQ0LKKaBOzY0mQzr6+uvfEJnRlDQsL2Nealckji6LKlMFNFro5TJg9MvT i6A1k8nlkv50sQg4xdOjf5EnRZhgXrrCQjXbyz4gYM0IKpoWF6h3wLw7ZE/FQDPy UuWdxlC1OaK+Gp+yEF+9vrw49W2XyPsEgFa5vg08MSTfUljj1gmNLSgLwk0ubuzr tzHrstBbiN4JHY4ecnKQcxZVZakQY7i2iO80BAtL0yfh+uSdsmoNVhMp7x4yq3U8 C5plCR3K1hxRx/0Tsf1svDv+eoxWbSj1UUKfAlFXt2KbsEIlEMzrKVTacR3mlcSQ QUm/jdFDq/Yxz15+4LfiElX3cgYfqKQyc/dqZO/CV3I24MEufqb4zfHn5msfJ1mV Ntyk8UYhO865Gp8lYtywY5fwqoMU6FCF62ibQx55hDB4plIXi90eEEizN+Wd7jNo AQ3Y35eB4CwfpnGy/6gvcrVCEUzExdW+i1FXaHlUYNDALSWVS34NdQgtEuVZeAfV bHLvgBgyz1WOuVWVc7Z7ABLXGEhfu4JrH/OvK/hCmR0qYuh57Ql1naiDb9KaCgXb j2DtHP2eDQ3YslKqbEekbIMP3afY6hJnMR0w50pZ5XH/Ays8dE/yLtW1K0qlUkiN 97HTfe36q+1dyJ/ASfEnBnvx2UA8hctyXgTQSXJMZy8bWNMdDXePD+gojnt8fLB7 fLjx8mHvi3DkwD6f0duHD98+7NFcj8MLyUyO8HuffrdzrD896Nx6Qr/RlnBypqaG h0M+PnRqvGxKFQ6GD1nSIbMc7YOeQbDj8IvekXt1NBRjlcbLdM4UnrTqHeOMCQxH HQXplCUfHW6wo3OWffTEs6Oy33vi2T3ZnNjpAfMbHXTH3iGOHctDp5w/Y4bD/Qji +PgLT3rkRcbhCIdMdn9vkx89GHX1o+m9d+wogFmHMB0Pvd3i3QMcjrzWnbt07GQ7 au8iBPYc4aPuXT5mwsMhOxhnR3Tm5Yru4HMGfrR+4nWRRyVxHuO3dLdqcL54IBng FcM4Oi+rQfoQuvtLvPuhSd928UOA8lR1Cs6gTKNWGxr3bExsqifI5baIbVtA/Wvl L+Ie2hFKiOtcoS8BgdXtFOtF9oi3LfoQumFr0GTcKbEE1jFcobv2YwW/oD2mq3pn ubQLt8/KHMl+l42XtN8xHNXww+MEKXszGfe7mC/sUd3y1KEIXWjen9DmhYuth1FJ 65sNtxCWCaMPDUI0A0BWP+Fi9rGg5wZlLyKxobkjjAg2br5ppqTuyv0PRfzZ2DLG zFXLHE2flkp3ip5yG9XdCZPvxH0k72w8oA8U+gQTeL5tBVhRKPh77YRFaw5usLNc 3lXGBtMBRWQESWmB7QbQMM6w5LwHd8iBn1oxV9Iw8MJp1t1vlaFTsE3iIpHmU55N uVtQpzMM/AZk6XZFGcCMw6umAX9L+48IHSLkoxC40IghehRRa9XEGZsgGIZ4ILu6 4Vnz7YvXpwFMP9xzhjXn9uT8dOIGvE/fG3sB6eJ4h3Mt7st4ZdnOiTzz8SKGPkaQ aWXdMVQXdCbfwi3sNHjKYtmcaMw7uI4N1E23dhqhMKAubj8V/GeVcaigXQl/m1mO PfPjHQb+M7WiiSZWEKAV+tgw7NPMEI533CLnwWp5Y9G1zZ9aCkCWB5+6/IhKCIop 7/cPO5SBrrgwOj9vfmdZyDuqYSh0RtFuPAuDgsPI3Xnfz0TGb59s46pEJYJU1mtQ 0Z4jRGjHbYlgo7CcYo52KGE4+vikZ0i9dZpz2B2KNXLF5QPm5bWzCL3ovetwYqoM jYVus41oVsjtjIATTejtx5rg2js8Rf4mETyNOwbs9V6U3jahfoRvGJ3vLlfQkN1A hDf8EosICphb8FhVB4PFL1nqvvaf/ULRDXBdxhpOC3M2q6SggaHLemH9co/m0ChQ ZAn306eAszdXodYk4oY3th1I6opIdufXqO3Kk5Atb35cBNDrKvvyoxUTr5s3ukks +JwwXsBOE+rsrB4Qe9C4vJQkBGI6LNsfWNxr2wdZ+lLin37CBYy3dbFE2Gy1fLf6 YdFgNK2Xu484XKeVG2GEpe8wflSvpoDmqEMfiZFA6FVXcF5NBdE66rop2pmaXdDZ i45CPnImVx+ta8JVQDKSXqC0u0IEFkNukS8ml0IXhIGCkTcsQj4rZKa+zXGdYkdr yarmK+eITyJO3bmRYUmpOvG1+UHEbwncFjnsOLI7ZLYXbAvaKVlQRc62wlRlv6Qt 7joKQ1p36pKf62eAEvxzzaOPE4S0/ogR4zoYCSEXl1ctDnqwdwkiI9qRO7PIDx0p 7ONS3vJVoEufjPjo8WarfOxCKucSd7+kLxCEBt2IJrZ1opK+W821T7PO/hmuWTNx 2qrR/MkogzcUvG0KSkgudISMWlhXuvgnS1QEWNHz/YImbj9CCSJgGfrLBgKjbk9+ 9kFlxf0XR440/viLo4PoqTjet4Xs2XhwfXlBHwBY2tBX/YuhX8ZKOwFepgzpXeFY 5l+e0a48FObeZxs/hbvT6wn89yc+x/yPS59K/qezJTLkw4S//8Rj1+rc443dvb/x jL65ols7xPF/3kNTS7Wv+O2Xo0+8Qk0o1g/XazyVibwfRVPEscGyhsNE/Dkn7UzX dV+cJGKbZjN4ihHAtWKEZMXThULCQlia5c5lU6aLhN4f0fsT9NzbHPeASVoCvjpR cet8ovWgFpQhuqJu3xnI3NdeJrxPhF+pEjm77ovxQ7LIFGeDaeM+J1hhqKTQ94pq +f+TPyDy1zCVXfTFtaN+EKl/6URF+K1tNGqfixdypUs9DNVD9wHyIAlx48wHkQq5 9EfjT8x2rld3vk74ohv9dXpP+ykEAMrXrQ3Uq81A9Kb+NCId7vlblhauAFyMO6q3 sk4X/slzJCgVwJaAf3DW5DVGlDcRio67eEGoc434gPoD0ZGG5+9rTDeAD9t1c1/I dEFIjNaKO/4O1YGbksKOo5sZnz39s2C8VpGJ358D+jaF/fj5s5gTmzeg68m1ODHy A6ru5ifuh6+IQZfsW32rO78N2lJHZkfhAiANEbXBkVGK07pLLsj/CoGDwW6upsAk bf2gqYtb/0em7yDwy4l405hbvQ4vXiHZVO2uDMRJXs1t7MAK0KNaK2XbkaitGwWn gt2oX2E+uqCtM8A2FBsQPzcJ0+BCTSGiCNoMNKQ9AGQFrbvIt8/L0kEKIoB5HsIH bs9plnxF//shrRJkE8L2hprRVzSvgvFTwhkxLuirJY3u/lsMdUO1osEUMCXNvY7t oAT5ga//6k+/+7uPzj7/+W9//fmvfjH72clvvv+dR68f/cMP/uCz1Wzw++/f/sdf 3//Xfz/5l//pf/ZHj/7x73b+6e//819/MJ3/8b/9e/JLs/WX9d/83v8C =Tb07 -----END PGP MESSAGE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/file-current.txt.key000066400000000000000000000034241334444677500261440ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.5 (GNU/Linux) mQGiBDslQEkRBADgDXtg08dhjHQpv9SisvzvROcsr6QRFOLWf95GWh7c6SI7Pj5m TClUaJXBRjLuvOR0L7w8l5nVJ/4kzSjle1ad04eDzP3sB4rNK18l7GAwc0ijV0mp /Kl9F4iibco3cCIMsjysWgUmlk+dYYWQubQA/EgTs7kFQo9QRxzojqnSywCg/5CZ 5TJ19gNS8knyu819v6ZSkV8D/01Fem2WZejqsmNBNiY1JoWxnTofi3AjMv6j/+Nj yBuU9ozIhUicx4y+Ro05eKUZ+VAIecVbVhEqH9VUriX48TDrNxu4OGJh62q58s0u /tqIX5OrvrpmdOC1UTdcc2CM88vssTt8oxauZeM7YAkY9rApXUniyfnJ3fdd3FlC IbvaA/9XXrlBjG/3HQSPfknbqLlCvEclelRmm6LAX8fuf/JFgj0ctRMAJKB6HOE7 /pvl3yRMMITwmd9lB/s2u+fqcwV1bDqfnyV8h3KFpTCGM1qKT+EaaT/8JhFJifYD jBEnUe9mYG7dUlt+Ff9Fj6ZRJQs9vszzQcsJDzNpys+j/KJutbQtRHVuY2FuIE1h Yy1WaWNhciBHYXLtbiA8ZHVuY2FuQG1hYy12aWNhci5jb20+iGAEEBECABgFAjsl QEkICwMJCAcCAQoCGQEFGwMAAAAAEgkQwSqJHVebm9QHZUdQRwABAeHRAJsGKaYQ p44NzYEjS9dsEAT4sYKzDgCgw4c7kDarZL/qKqFvHbvsPS6fRteIRgQQEQIABgUC OyVG9QAKCRDNHrapZn5C0WO7AKCBUULk55fR/yavkYgUhL9AX0rShgCfQ0jjVarV QNc/cj5ilTdKqSkeJ8q5Ag0EOyVAShAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+2 8W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZS Tz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI6 1Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/Cl WxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgH KXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIH/3NY WNGw9Wa8B6Ow6NyS2WSBrx33ZxInDgObZe72mO/GSyxxZqxPiqTFTpajTD+HWKQu vSfMGZdD1kJZTrNEI/MNLwVBhrgxLX2qrmq1aJgWa5aRcv05wHuIUrw2g220oZ09 gUhXuF3U/oDUCAX36d16CaPCMJV1TRUoc2L1WoLP2BjzIkAgKrqUGvIFNsvtXe3c NU5dSQzF0spExuCz1Wy67/T4fzLSJpiWadl/eN67cp83ega5fyYy9NpISmeiFcV2 5UJqbQM0ktilZzDhx+evmYd6PHP7i8OqgC1oHajEohfo9kmyO/AXJ/v08svnSJVO 0G/9qQeuFp3JVeBHsN6IVAQYEQIADAUCOyVASgUbDAAAAAASCRDBKokdV5ub1Adl R1BHAAEBRRIAnjhaS/m/eYLw2g79GuLD/1x12Xj9AKCW04cRwUxoIirwdJxLNRT2 GoLAdg== =BjTA -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file-unsigned/000077500000000000000000000000001334444677500262065ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file-unsigned/content000066400000000000000000000244531334444677500276130ustar00rootroot00000000000000CONTENTSTYLE 11 BASEARCHS i586 DATADIR suse DESCRDIR suse/setup/descr DISTRIBUTION openSUSE FLAVOR dvd LABEL openSUSE 11.1 LINGUAS cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW NAME openSUSE REFERENCES openSUSE-release = 11.1 RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/11.0.42/release-notes-openSUSE.rpm SUMMARY openSUSE VERSION 11.1 META SHA1 dd627cf38a5dee28421690d2ec6abea7af274a50 dvd-11.1-58.1.i586.pat.gz META SHA1 fa49e3205fea8f95d395710a4ba79f55b4626ccd non_oss-11.1-58.1.i586.pat.gz META SHA1 f6c6ef681aa5fc4c5e9532f04420d54fbec033a8 packages.cs.gz META SHA1 cc5438a74d1b39f34bc31fbc2399ae6a95f43bc4 packages.de.gz META SHA1 90dfa1e81f5515769f5b16fcf31c1ab63c55ff87 packages.DU.gz META SHA1 b1c6b77703357297ecdd8d74b89a099ebbfe2fe6 packages.en.gz META SHA1 b137fc7749531183b5250ec907d4b9adf4624288 packages.es.gz META SHA1 3e55d6d5c21a6a1457ea6fef09c999b28883ade4 packages.fr.gz META SHA1 b5b6092d57a701d4052ad2bb047636c68ac31d8b packages.gz META SHA1 a893937892aeff71da1c38aa06f3cce5ba02de1c packages.hu.gz META SHA1 f6c6ef681aa5fc4c5e9532f04420d54fbec033a8 packages.sk.gz META SHA1 1d66972a977913541c7cb7130d61ec0e751148ba patterns HASH SHA1 4ae30edd0588114b642bbb08fbd3fb71d7af257d license.tar.gz HASH SHA1 67d82aa5cd4f08cf77cc70fe9ca1834a4b6212cc control.xml HASH SHA1 e727c621ded4324cc61e94c615dbd423436f63e4 media.1/info.txt HASH SHA1 7442eb13ca3c184fe0d47060dbc56fd45cfcb720 boot/i386/bind HASH SHA1 99920bc0c322d0d0b63ac361d2f9c8f6bc9e3524 boot/i386/branding HASH SHA1 ca2f0bce909d73d1bfaa7cdeb98595f17e4524aa boot/i386/common HASH SHA1 d107fa19616c3eae9d49fe52e54971e5b9c160fa boot/i386/config HASH SHA1 4b7d8525b1d3588562bea71b26cdb5e48e29ff64 boot/i386/cracklib-dict-full.rpm HASH SHA1 1a8151b2bf88cf618be74eee60d65063386469e0 boot/i386/fonts-arabic.rpm HASH SHA1 79aec7c93b730c2355aebd085eddf4195a9c1d36 boot/i386/fonts-thai.rpm HASH SHA1 52e1040f8e0fae373d7426447b1f9d05d25b90f6 boot/i386/gdb HASH SHA1 a1ba35bcecde55eb36be2e89b7210998b846be9d boot/i386/indic-fonts.rpm HASH SHA1 6394ec4eb1883520de23bd2ac043490da6ed8fde boot/i386/initrd-xen HASH SHA1 6394ec4eb1883520de23bd2ac043490da6ed8fde boot/i386/initrd-xenpae HASH SHA1 6cebf392eaf1b17b53f3e5e88a6b6c6d8c2b76bb boot/i386/KhmerOS-fonts.rpm HASH SHA1 e9c779539f1b3f56a96337f262b2bc548e6b223e boot/i386/LIESMICH HASH SHA1 abdf17a0246be709efbcc7c0e0a68f8ad797a754 boot/i386/LIESMICH.DOS HASH SHA1 f51e15897e5f77c7a7b4d1600dc53be6f117d9ec boot/i386/lklug.rpm HASH SHA1 c4dca65aa97554bc45885b22ef4af24ad5177c75 boot/i386/mkbootdisk HASH SHA1 99920bc0c322d0d0b63ac361d2f9c8f6bc9e3524 boot/i386/openSUSE HASH SHA1 ae44557c57285f0866be41334fdaa20312ccdeab boot/i386/README HASH SHA1 4a71ee6114eccfb88582dc5422020cbc5a2639dd boot/i386/README.DOS HASH SHA1 e12efd095a7fb990d0c4be1e04999e72de84dd6a boot/i386/rescue HASH SHA1 73e50e6321e6938471c4fc0521e0b2dce54f0346 boot/i386/root HASH SHA1 9b4cced8b700c6737ab02af8f1521945c925c8f9 boot/i386/rpmlist HASH SHA1 2181540518e50f88e7e35c619460e746934eacd4 boot/i386/sax2 HASH SHA1 78d3ee95682c1150aa8a95132ba1c5d0d88c23bd boot/i386/ttf-arphic-uming.rpm HASH SHA1 55a2d437b32d6c192c60e016756725f7a2e717e9 boot/i386/unfonts.rpm HASH SHA1 7c6fbdc97c11e5e03098f19c196d85cd63e5ce85 boot/i386/vmlinuz-xen HASH SHA1 7c6fbdc97c11e5e03098f19c196d85cd63e5ce85 boot/i386/vmlinuz-xenpae HASH SHA1 67d109ba80c3f396710774ff03ace955a2184dc6 boot/i386/yast2-trans-af.rpm HASH SHA1 3d835ea74b409914cf40ba48669a11590cffa902 boot/i386/yast2-trans-ar.rpm HASH SHA1 5654cabb329f0b1251d5743624fdf599b92d71e5 boot/i386/yast2-trans-bg.rpm HASH SHA1 1015f485542ae7c903ec9d1a9c7983d4701e2824 boot/i386/yast2-trans-bn.rpm HASH SHA1 454e0f1b79d2076a9ba03b23c34da3cbc3e58e25 boot/i386/yast2-trans-bs.rpm HASH SHA1 76bbfdb77952db51e9b21dc90ab167f2a46f4580 boot/i386/yast2-trans-ca.rpm HASH SHA1 59f26af0b058b47f2d821f6fa8102d58af8d0377 boot/i386/yast2-trans-cs.rpm HASH SHA1 db43e4829de2a26b4bb09aa1e93069af2b230377 boot/i386/yast2-trans-cy.rpm HASH SHA1 1aee13cb0b0a1f4e7b1bbb49e809fd13919ba7e9 boot/i386/yast2-trans-da.rpm HASH SHA1 36335f1ff2738071be00be65a64f7d41b7db1c33 boot/i386/yast2-trans-de.rpm HASH SHA1 5297e40871de03217cfee404cb88e909422ceae8 boot/i386/yast2-trans-el.rpm HASH SHA1 bc61efbd85302ed96ae51550a163cd0fc9ad59a3 boot/i386/yast2-trans-en_GB.rpm HASH SHA1 a237b73e48777fcdd42505ec1e007484d9f398da boot/i386/yast2-trans-en_US.rpm HASH SHA1 f2e0dba8e86a723ab72d7f7490665f8e631f63a1 boot/i386/yast2-trans-es.rpm HASH SHA1 ca9bd8bf05434d42b6a7c2c7549e2ce0170c6be8 boot/i386/yast2-trans-et.rpm HASH SHA1 57e5cd63079ac258734f28df5385e5288cd59db0 boot/i386/yast2-trans-fa.rpm HASH SHA1 2983eb7ba93882e52434f396b49cd6e98d7b7399 boot/i386/yast2-trans-fi.rpm HASH SHA1 0dfc3b38294524871f527d919ce31d6921cf77c0 boot/i386/yast2-trans-fr.rpm HASH SHA1 2051d343881b288c5d22aec792e9d13ec192dfd1 boot/i386/yast2-trans-gl.rpm HASH SHA1 49736a9798a371c3edf02f350ebe4db1e6fff011 boot/i386/yast2-trans-gu.rpm HASH SHA1 d9737ea270e5166cbc409466c1d2a6f16fcc9f06 boot/i386/yast2-trans-hi.rpm HASH SHA1 1e222655cfabbf0212e629ed1fccf304847ac732 boot/i386/yast2-trans-hr.rpm HASH SHA1 1b6e646f9f8abc7c33ef2dd830b72c7a2f775620 boot/i386/yast2-trans-hu.rpm HASH SHA1 723a18301396eccf7c0620f1f8f016719eaf7543 boot/i386/yast2-trans-id.rpm HASH SHA1 70c272dbe7bfe963e44e5331edd5f440450bc827 boot/i386/yast2-trans-it.rpm HASH SHA1 f17bc3588c7d2878821600d42fe174156971f87e boot/i386/yast2-trans-ja.rpm HASH SHA1 d46ea44b7d98ade64658d1cf388013093d1c0d39 boot/i386/yast2-trans-jv.rpm HASH SHA1 e4e684ebb7f93ac20461062544b49fe18c88627d boot/i386/yast2-trans-ka.rpm HASH SHA1 123eb83403b88845cb5efd9046ef39351c1b68c3 boot/i386/yast2-trans-km.rpm HASH SHA1 85c28913c4432f43fa29d8791d97b3e10456a42a boot/i386/yast2-trans-ko.rpm HASH SHA1 6692fca0c1acb85b398bcbb9150d0826ea38f2c8 boot/i386/yast2-trans-lo.rpm HASH SHA1 6247198d1348d31192dc158969ce8ae9252d6f0b boot/i386/yast2-trans-lt.rpm HASH SHA1 a630f16e50a6227f814751931bb1a1ec15981c29 boot/i386/yast2-trans-mk.rpm HASH SHA1 4f0bffd5cbeb7d37a7d78f1996cade7ae2ad2420 boot/i386/yast2-trans-mr.rpm HASH SHA1 bbc950f9fec446e9a5a5876c532cd56e060c5eb4 boot/i386/yast2-trans-nb.rpm HASH SHA1 edae4d58bd99064bbddd62278875b0387a2d495d boot/i386/yast2-trans-nl.rpm HASH SHA1 85f1dc1eef8862066050c09eef023705a5d61039 boot/i386/yast2-trans-pa.rpm HASH SHA1 e1eb02ebedff18a01facc150e00d05385affaa17 boot/i386/yast2-trans-pl.rpm HASH SHA1 c3d31be5bf8af62c537e1a70db9afc98842b3f82 boot/i386/yast2-trans-pt_BR.rpm HASH SHA1 b2bcd427139f2e13684a592ff186c3076a5b22d8 boot/i386/yast2-trans-pt.rpm HASH SHA1 7fdb3299ca8230ec363d3ee8eee24915c931790c boot/i386/yast2-trans-ro.rpm HASH SHA1 8b9bdb13f3b7c73e8c64303e8614e44bf640cc9f boot/i386/yast2-trans-ru.rpm HASH SHA1 55876ae86c10a3504bbbcd71e49564f4c0b47149 boot/i386/yast2-trans-si.rpm HASH SHA1 ee8ce4bc8a06b5094f8d51c79b32806531203d62 boot/i386/yast2-trans-sk.rpm HASH SHA1 04130a176a24ce3adb663a2bb694fd484f2a7776 boot/i386/yast2-trans-sl.rpm HASH SHA1 d3408d472a956ffbd1fb49354057da5c0b77879f boot/i386/yast2-trans-sr.rpm HASH SHA1 fda2c586ff8a17d402108f007c2c6214bcaeca3f boot/i386/yast2-trans-sv.rpm HASH SHA1 04021fd6654b2e7b6cbff65c094efa8c35424215 boot/i386/yast2-trans-ta.rpm HASH SHA1 6aaae1e49e3188b5e73bedb3c3cd044c4108cca2 boot/i386/yast2-trans-th.rpm HASH SHA1 6bb5903b7bc64185352c616099c344f8738bb768 boot/i386/yast2-trans-tr.rpm HASH SHA1 9f631f117433db5e44a6bbed7c8a50cbbe5e8ac0 boot/i386/yast2-trans-uk.rpm HASH SHA1 3ba5a8f4f3dc3f454e13223c2ecef9937824a611 boot/i386/yast2-trans-vi.rpm HASH SHA1 bc2775d3a4a0a3ca80e5a5caa51a6612e7158d32 boot/i386/yast2-trans-wa.rpm HASH SHA1 a3511637ca9bd4cbf5dc9eca58f8ccf5df49603c boot/i386/yast2-trans-xh.rpm HASH SHA1 ba8875e4c0febe1d26d27c0c948e93128f14476a boot/i386/yast2-trans-zh_CN.rpm HASH SHA1 d39b329ce32a0d59bebecd0d87ecfd59cb26e297 boot/i386/yast2-trans-zh_TW.rpm HASH SHA1 0c6f45e6b01d531ac7e821ae9e479416149e92eb boot/i386/yast2-trans-zu.rpm HASH SHA1 2325eb886cf06b58ca1892578383b5fcc5b11866 boot/i386/loader/linux HASH SHA1 586ec9beb26fb337283f3b49149d843a3fb7c821 boot/i386/loader/initrd HASH SHA1 d6b4db657272efe902f8ce92b53082fda4d5f1ca boot/i386/loader/08000600.spl HASH SHA1 22d4aeede74fdf44b3c4a2524319fe9cf418d4c6 boot/i386/loader/10240600.spl HASH SHA1 93e297fb9ffa23d6a167c50c318bbb46b0705e45 boot/i386/loader/10240768.spl HASH SHA1 8c135621ac91216c3388f9ea9c02127b2f6375a0 boot/i386/loader/12800800.spl HASH SHA1 54dd2bc17c9f73ad9d6a85489f99f518849cb84d boot/i386/loader/12801024.spl HASH SHA1 ef0f517a3f3a3240349b9bdd01e794267372c4ab boot/i386/loader/14001050.spl HASH SHA1 2abbc5b4c7c3dc8134ae1207f9d9e95a640046ef boot/i386/loader/16001200.spl HASH SHA1 e37862355648f6330b6831c69c989dec02b80ab0 boot/i386/loader/16801050.spl HASH SHA1 082a7887d2f43d049fdb0fc92c5051f1a5b7e663 boot/i386/loader/19201200.spl HASH SHA1 ed5f4a87074367bcf8396da7a9b9b3d1be6dfcb2 images/base-i386.tar.lzma HASH SHA1 9d055cacc983226171cdd3a3fe1acd6bb6fa044e images/base-meta-i386.tar.lzma HASH SHA1 361e07c44526cd43a2d477b7b3448e49e674f0a8 images/common-base-i386.tar.lzma HASH SHA1 6854608038e4d3b11fcc950e28ca49e4582fd2a4 images/common-desktop-i386.tar.lzma HASH SHA1 5f6a43158c017e188309c094cdaf24c346de3dfb images/common-xorg-i386.tar.lzma HASH SHA1 ce6620b820e494c042398b9fd7ed108578008168 images/details-i386.xml HASH SHA1 22c466bf9af3003ee95fed6f7fb93b4c8c0cd993 images/gnome-i386.tar.lzma HASH SHA1 49374551f38fe919cf4545d5af0fea7d45361738 images/gnome-meta-i386.tar.lzma HASH SHA1 d1e9a38629e353d1f0136ded670cf28213d47e6f images/images.xml HASH SHA1 0df7debf780a0e01b18004d18ef6ab21410b9480 images/kde-i386.tar.lzma HASH SHA1 c418a15669de278e523893f030c209c479f490e6 images/kde-meta-i386.tar.lzma HASH SHA1 6c4238796684f770a0b4ecd1ea4469e5a7a49b0d images/x11-i386.tar.lzma HASH SHA1 cc50a8bc9d560c8d522660feed5feb019f9b889e images/x11-meta-i386.tar.lzma KEY SHA1 17162a96933229a9771ee10c0976bdc047a2f53d gpg-pubkey-0dfb3188-41ed929b.asc KEY SHA1 f6accbb18d705bfc104c893cf7dfca1247a33f3c gpg-pubkey-307e3d54-481f30aa.asc KEY SHA1 47f6492d127ae9f6aac353a2dd23752fc0ed4f8d gpg-pubkey-3d25d3d9-36e12d04.asc KEY SHA1 2288e5849740566e4fb65b7c9dc0c7e4f43b1039 gpg-pubkey-56b4177a-47965b33.asc KEY SHA1 89d4bcd20a281553fd1d4ec1708603ebf88f1a59 gpg-pubkey-7e2e3b05-4816488f.asc KEY SHA1 06ff5171362496c0db84beeccd29967f580350b2 gpg-pubkey-9c800aca-481f343a.asc KEY SHA1 04544096c5c3b0ed7b01a83d79e048307c2af919 gpg-pubkey-a1912208-446a0899.asc libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file-unsigned/images/000077500000000000000000000000001334444677500274535ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file-unsigned/images/images.xml000066400000000000000000000223331334444677500314450ustar00rootroot00000000000000 base,enhanced_base,games,imaging,kde4,kde4_basis,multimedia,sw_management,x11,xgl i386 kde-meta-i386.tar.lzma KDE [base] tar common-base-i386.tar.lzma KDE [xorg] tar common-xorg-i386.tar.lzma KDE [desktop] tar common-desktop-i386.tar.lzma KDE tar kde-i386.tar.lzma KDE [meta] tar kde-meta-i386.tar.lzma base,enhanced_base,fonts,games,gnome,gnome_basis,imaging,multimedia,sw_management,x11,xgl i386 gnome-meta-i386.tar.lzma GNOME [1] tar common-base-i386.tar.lzma GNOME [2] tar common-xorg-i386.tar.lzma GNOME [4] tar common-desktop-i386.tar.lzma GNOME tar gnome-i386.tar.lzma GNOME [meta] tar gnome-meta-i386.tar.lzma base,enhanced_base,sw_management i386 base-meta-i386.tar.lzma BASE [1] tar base-meta-i386.tar.lzma BASE [2] tar base-i386.tar.lzma BASE [3] tar common-base-i386.tar.lzma base,enhanced_base,fonts,sw_management,x11 i386 x11-meta-i386.tar.lzma X11 [1] tar x11-meta-i386.tar.lzma X11 [2] tar x11-i386.tar.lzma X11 [3] tar common-xorg-i386.tar.lzma X11 [4] tar common-base-i386.tar.lzma base,enhanced_base,games,imaging,kde4,kde4_basis,multimedia,sw_management,x11,xgl x86_64 kde-meta-x86_64.tar.lzma KDE [base] tar common-base-x86_64.tar.lzma KDE [xorg] tar common-xorg-x86_64.tar.lzma KDE [desktop] tar common-desktop-x86_64.tar.lzma KDE tar kde-x86_64.tar.lzma KDE [meta] tar kde-meta-x86_64.tar.lzma base,enhanced_base,fonts,games,gnome,gnome_basis,imaging,multimedia,sw_management,x11,xgl x86_64 gnome-meta-x86_64.tar.lzma GNOME [1] tar common-base-x86_64.tar.lzma GNOME [2] tar common-xorg-x86_64.tar.lzma GNOME [4] tar common-desktop-x86_64.tar.lzma GNOME tar gnome-x86_64.tar.lzma GNOME [meta] tar gnome-meta-x86_64.tar.lzma base,enhanced_base,sw_management x86_64 base-meta-x86_64.tar.lzma BASE [1] tar base-meta-x86_64.tar.lzma BASE [2] tar base-x86_64.tar.lzma BASE [3] tar common-base-x86_64.tar.lzma base,enhanced_base,fonts,sw_management,x11 x86_64 x11-meta-x86_64.tar.lzma X11 [1] tar x11-meta-x86_64.tar.lzma X11 [2] tar x11-x86_64.tar.lzma X11 [3] tar common-xorg-x86_64.tar.lzma X11 [4] tar common-base-x86_64.tar.lzma base,enhanced_base,games,imaging,kde4,kde4_basis,multimedia,sw_management,x11,xgl ppc kde-meta-ppc.tar.lzma KDE [base] tar common-base-ppc.tar.lzma KDE [xorg] tar common-xorg-ppc.tar.lzma KDE [desktop] tar common-desktop-ppc.tar.lzma KDE tar kde-ppc.tar.lzma KDE [meta] tar kde-meta-ppc.tar.lzma base,enhanced_base,fonts,games,gnome,gnome_basis,imaging,multimedia,sw_management,x11,xgl ppc gnome-meta-ppc.tar.lzma GNOME [1] tar common-base-ppc.tar.lzma GNOME [2] tar common-xorg-ppc.tar.lzma GNOME [4] tar common-desktop-ppc.tar.lzma GNOME tar gnome-ppc.tar.lzma GNOME [meta] tar gnome-meta-ppc.tar.lzma base,enhanced_base,sw_management ppc base-meta-ppc.tar.lzma BASE [1] tar base-meta-ppc.tar.lzma BASE [2] tar base-ppc.tar.lzma BASE [3] tar common-base-ppc.tar.lzma base,enhanced_base,fonts,sw_management,x11 ppc x11-meta-ppc.tar.lzma X11 [1] tar x11-meta-ppc.tar.lzma X11 [2] tar x11-ppc.tar.lzma X11 [3] tar common-xorg-ppc.tar.lzma X11 [4] tar common-base-ppc.tar.lzma libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file/000077500000000000000000000000001334444677500243745ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file/content000066400000000000000000000244531334444677500260010ustar00rootroot00000000000000CONTENTSTYLE 11 BASEARCHS i586 DATADIR suse DESCRDIR suse/setup/descr DISTRIBUTION openSUSE FLAVOR dvd LABEL openSUSE 11.1 LINGUAS cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru sv zh zh_CN zh_TW NAME openSUSE REFERENCES openSUSE-release = 11.1 RELNOTESURL http://www.suse.com/relnotes/i386/openSUSE/11.0.42/release-notes-openSUSE.rpm SUMMARY openSUSE VERSION 11.1 META SHA1 dd627cf38a5dee28421690d2ec6abea7af274a50 dvd-11.1-58.1.i586.pat.gz META SHA1 fa49e3205fea8f95d395710a4ba79f55b4626ccd non_oss-11.1-58.1.i586.pat.gz META SHA1 f6c6ef681aa5fc4c5e9532f04420d54fbec033a8 packages.cs.gz META SHA1 cc5438a74d1b39f34bc31fbc2399ae6a95f43bc4 packages.de.gz META SHA1 90dfa1e81f5515769f5b16fcf31c1ab63c55ff87 packages.DU.gz META SHA1 b1c6b77703357297ecdd8d74b89a099ebbfe2fe6 packages.en.gz META SHA1 b137fc7749531183b5250ec907d4b9adf4624288 packages.es.gz META SHA1 3e55d6d5c21a6a1457ea6fef09c999b28883ade4 packages.fr.gz META SHA1 b5b6092d57a701d4052ad2bb047636c68ac31d8b packages.gz META SHA1 a893937892aeff71da1c38aa06f3cce5ba02de1c packages.hu.gz META SHA1 f6c6ef681aa5fc4c5e9532f04420d54fbec033a8 packages.sk.gz META SHA1 1d66972a977913541c7cb7130d61ec0e751148ba patterns HASH SHA1 4ae30edd0588114b642bbb08fbd3fb71d7af257d license.tar.gz HASH SHA1 67d82aa5cd4f08cf77cc70fe9ca1834a4b6212cc control.xml HASH SHA1 e727c621ded4324cc61e94c615dbd423436f63e4 media.1/info.txt HASH SHA1 7442eb13ca3c184fe0d47060dbc56fd45cfcb720 boot/i386/bind HASH SHA1 99920bc0c322d0d0b63ac361d2f9c8f6bc9e3524 boot/i386/branding HASH SHA1 ca2f0bce909d73d1bfaa7cdeb98595f17e4524aa boot/i386/common HASH SHA1 d107fa19616c3eae9d49fe52e54971e5b9c160fa boot/i386/config HASH SHA1 4b7d8525b1d3588562bea71b26cdb5e48e29ff64 boot/i386/cracklib-dict-full.rpm HASH SHA1 1a8151b2bf88cf618be74eee60d65063386469e0 boot/i386/fonts-arabic.rpm HASH SHA1 79aec7c93b730c2355aebd085eddf4195a9c1d36 boot/i386/fonts-thai.rpm HASH SHA1 52e1040f8e0fae373d7426447b1f9d05d25b90f6 boot/i386/gdb HASH SHA1 a1ba35bcecde55eb36be2e89b7210998b846be9d boot/i386/indic-fonts.rpm HASH SHA1 6394ec4eb1883520de23bd2ac043490da6ed8fde boot/i386/initrd-xen HASH SHA1 6394ec4eb1883520de23bd2ac043490da6ed8fde boot/i386/initrd-xenpae HASH SHA1 6cebf392eaf1b17b53f3e5e88a6b6c6d8c2b76bb boot/i386/KhmerOS-fonts.rpm HASH SHA1 e9c779539f1b3f56a96337f262b2bc548e6b223e boot/i386/LIESMICH HASH SHA1 abdf17a0246be709efbcc7c0e0a68f8ad797a754 boot/i386/LIESMICH.DOS HASH SHA1 f51e15897e5f77c7a7b4d1600dc53be6f117d9ec boot/i386/lklug.rpm HASH SHA1 c4dca65aa97554bc45885b22ef4af24ad5177c75 boot/i386/mkbootdisk HASH SHA1 99920bc0c322d0d0b63ac361d2f9c8f6bc9e3524 boot/i386/openSUSE HASH SHA1 ae44557c57285f0866be41334fdaa20312ccdeab boot/i386/README HASH SHA1 4a71ee6114eccfb88582dc5422020cbc5a2639dd boot/i386/README.DOS HASH SHA1 e12efd095a7fb990d0c4be1e04999e72de84dd6a boot/i386/rescue HASH SHA1 73e50e6321e6938471c4fc0521e0b2dce54f0346 boot/i386/root HASH SHA1 9b4cced8b700c6737ab02af8f1521945c925c8f9 boot/i386/rpmlist HASH SHA1 2181540518e50f88e7e35c619460e746934eacd4 boot/i386/sax2 HASH SHA1 78d3ee95682c1150aa8a95132ba1c5d0d88c23bd boot/i386/ttf-arphic-uming.rpm HASH SHA1 55a2d437b32d6c192c60e016756725f7a2e717e9 boot/i386/unfonts.rpm HASH SHA1 7c6fbdc97c11e5e03098f19c196d85cd63e5ce85 boot/i386/vmlinuz-xen HASH SHA1 7c6fbdc97c11e5e03098f19c196d85cd63e5ce85 boot/i386/vmlinuz-xenpae HASH SHA1 67d109ba80c3f396710774ff03ace955a2184dc6 boot/i386/yast2-trans-af.rpm HASH SHA1 3d835ea74b409914cf40ba48669a11590cffa902 boot/i386/yast2-trans-ar.rpm HASH SHA1 5654cabb329f0b1251d5743624fdf599b92d71e5 boot/i386/yast2-trans-bg.rpm HASH SHA1 1015f485542ae7c903ec9d1a9c7983d4701e2824 boot/i386/yast2-trans-bn.rpm HASH SHA1 454e0f1b79d2076a9ba03b23c34da3cbc3e58e25 boot/i386/yast2-trans-bs.rpm HASH SHA1 76bbfdb77952db51e9b21dc90ab167f2a46f4580 boot/i386/yast2-trans-ca.rpm HASH SHA1 59f26af0b058b47f2d821f6fa8102d58af8d0377 boot/i386/yast2-trans-cs.rpm HASH SHA1 db43e4829de2a26b4bb09aa1e93069af2b230377 boot/i386/yast2-trans-cy.rpm HASH SHA1 1aee13cb0b0a1f4e7b1bbb49e809fd13919ba7e9 boot/i386/yast2-trans-da.rpm HASH SHA1 36335f1ff2738071be00be65a64f7d41b7db1c33 boot/i386/yast2-trans-de.rpm HASH SHA1 5297e40871de03217cfee404cb88e909422ceae8 boot/i386/yast2-trans-el.rpm HASH SHA1 bc61efbd85302ed96ae51550a163cd0fc9ad59a3 boot/i386/yast2-trans-en_GB.rpm HASH SHA1 a237b73e48777fcdd42505ec1e007484d9f398da boot/i386/yast2-trans-en_US.rpm HASH SHA1 f2e0dba8e86a723ab72d7f7490665f8e631f63a1 boot/i386/yast2-trans-es.rpm HASH SHA1 ca9bd8bf05434d42b6a7c2c7549e2ce0170c6be8 boot/i386/yast2-trans-et.rpm HASH SHA1 57e5cd63079ac258734f28df5385e5288cd59db0 boot/i386/yast2-trans-fa.rpm HASH SHA1 2983eb7ba93882e52434f396b49cd6e98d7b7399 boot/i386/yast2-trans-fi.rpm HASH SHA1 0dfc3b38294524871f527d919ce31d6921cf77c0 boot/i386/yast2-trans-fr.rpm HASH SHA1 2051d343881b288c5d22aec792e9d13ec192dfd1 boot/i386/yast2-trans-gl.rpm HASH SHA1 49736a9798a371c3edf02f350ebe4db1e6fff011 boot/i386/yast2-trans-gu.rpm HASH SHA1 d9737ea270e5166cbc409466c1d2a6f16fcc9f06 boot/i386/yast2-trans-hi.rpm HASH SHA1 1e222655cfabbf0212e629ed1fccf304847ac732 boot/i386/yast2-trans-hr.rpm HASH SHA1 1b6e646f9f8abc7c33ef2dd830b72c7a2f775620 boot/i386/yast2-trans-hu.rpm HASH SHA1 723a18301396eccf7c0620f1f8f016719eaf7543 boot/i386/yast2-trans-id.rpm HASH SHA1 70c272dbe7bfe963e44e5331edd5f440450bc827 boot/i386/yast2-trans-it.rpm HASH SHA1 f17bc3588c7d2878821600d42fe174156971f87e boot/i386/yast2-trans-ja.rpm HASH SHA1 d46ea44b7d98ade64658d1cf388013093d1c0d39 boot/i386/yast2-trans-jv.rpm HASH SHA1 e4e684ebb7f93ac20461062544b49fe18c88627d boot/i386/yast2-trans-ka.rpm HASH SHA1 123eb83403b88845cb5efd9046ef39351c1b68c3 boot/i386/yast2-trans-km.rpm HASH SHA1 85c28913c4432f43fa29d8791d97b3e10456a42a boot/i386/yast2-trans-ko.rpm HASH SHA1 6692fca0c1acb85b398bcbb9150d0826ea38f2c8 boot/i386/yast2-trans-lo.rpm HASH SHA1 6247198d1348d31192dc158969ce8ae9252d6f0b boot/i386/yast2-trans-lt.rpm HASH SHA1 a630f16e50a6227f814751931bb1a1ec15981c29 boot/i386/yast2-trans-mk.rpm HASH SHA1 4f0bffd5cbeb7d37a7d78f1996cade7ae2ad2420 boot/i386/yast2-trans-mr.rpm HASH SHA1 bbc950f9fec446e9a5a5876c532cd56e060c5eb4 boot/i386/yast2-trans-nb.rpm HASH SHA1 edae4d58bd99064bbddd62278875b0387a2d495d boot/i386/yast2-trans-nl.rpm HASH SHA1 85f1dc1eef8862066050c09eef023705a5d61039 boot/i386/yast2-trans-pa.rpm HASH SHA1 e1eb02ebedff18a01facc150e00d05385affaa17 boot/i386/yast2-trans-pl.rpm HASH SHA1 c3d31be5bf8af62c537e1a70db9afc98842b3f82 boot/i386/yast2-trans-pt_BR.rpm HASH SHA1 b2bcd427139f2e13684a592ff186c3076a5b22d8 boot/i386/yast2-trans-pt.rpm HASH SHA1 7fdb3299ca8230ec363d3ee8eee24915c931790c boot/i386/yast2-trans-ro.rpm HASH SHA1 8b9bdb13f3b7c73e8c64303e8614e44bf640cc9f boot/i386/yast2-trans-ru.rpm HASH SHA1 55876ae86c10a3504bbbcd71e49564f4c0b47149 boot/i386/yast2-trans-si.rpm HASH SHA1 ee8ce4bc8a06b5094f8d51c79b32806531203d62 boot/i386/yast2-trans-sk.rpm HASH SHA1 04130a176a24ce3adb663a2bb694fd484f2a7776 boot/i386/yast2-trans-sl.rpm HASH SHA1 d3408d472a956ffbd1fb49354057da5c0b77879f boot/i386/yast2-trans-sr.rpm HASH SHA1 fda2c586ff8a17d402108f007c2c6214bcaeca3f boot/i386/yast2-trans-sv.rpm HASH SHA1 04021fd6654b2e7b6cbff65c094efa8c35424215 boot/i386/yast2-trans-ta.rpm HASH SHA1 6aaae1e49e3188b5e73bedb3c3cd044c4108cca2 boot/i386/yast2-trans-th.rpm HASH SHA1 6bb5903b7bc64185352c616099c344f8738bb768 boot/i386/yast2-trans-tr.rpm HASH SHA1 9f631f117433db5e44a6bbed7c8a50cbbe5e8ac0 boot/i386/yast2-trans-uk.rpm HASH SHA1 3ba5a8f4f3dc3f454e13223c2ecef9937824a611 boot/i386/yast2-trans-vi.rpm HASH SHA1 bc2775d3a4a0a3ca80e5a5caa51a6612e7158d32 boot/i386/yast2-trans-wa.rpm HASH SHA1 a3511637ca9bd4cbf5dc9eca58f8ccf5df49603c boot/i386/yast2-trans-xh.rpm HASH SHA1 ba8875e4c0febe1d26d27c0c948e93128f14476a boot/i386/yast2-trans-zh_CN.rpm HASH SHA1 d39b329ce32a0d59bebecd0d87ecfd59cb26e297 boot/i386/yast2-trans-zh_TW.rpm HASH SHA1 0c6f45e6b01d531ac7e821ae9e479416149e92eb boot/i386/yast2-trans-zu.rpm HASH SHA1 2325eb886cf06b58ca1892578383b5fcc5b11866 boot/i386/loader/linux HASH SHA1 586ec9beb26fb337283f3b49149d843a3fb7c821 boot/i386/loader/initrd HASH SHA1 d6b4db657272efe902f8ce92b53082fda4d5f1ca boot/i386/loader/08000600.spl HASH SHA1 22d4aeede74fdf44b3c4a2524319fe9cf418d4c6 boot/i386/loader/10240600.spl HASH SHA1 93e297fb9ffa23d6a167c50c318bbb46b0705e45 boot/i386/loader/10240768.spl HASH SHA1 8c135621ac91216c3388f9ea9c02127b2f6375a0 boot/i386/loader/12800800.spl HASH SHA1 54dd2bc17c9f73ad9d6a85489f99f518849cb84d boot/i386/loader/12801024.spl HASH SHA1 ef0f517a3f3a3240349b9bdd01e794267372c4ab boot/i386/loader/14001050.spl HASH SHA1 2abbc5b4c7c3dc8134ae1207f9d9e95a640046ef boot/i386/loader/16001200.spl HASH SHA1 e37862355648f6330b6831c69c989dec02b80ab0 boot/i386/loader/16801050.spl HASH SHA1 082a7887d2f43d049fdb0fc92c5051f1a5b7e663 boot/i386/loader/19201200.spl HASH SHA1 ed5f4a87074367bcf8396da7a9b9b3d1be6dfcb2 images/base-i386.tar.lzma HASH SHA1 9d055cacc983226171cdd3a3fe1acd6bb6fa044e images/base-meta-i386.tar.lzma HASH SHA1 361e07c44526cd43a2d477b7b3448e49e674f0a8 images/common-base-i386.tar.lzma HASH SHA1 6854608038e4d3b11fcc950e28ca49e4582fd2a4 images/common-desktop-i386.tar.lzma HASH SHA1 5f6a43158c017e188309c094cdaf24c346de3dfb images/common-xorg-i386.tar.lzma HASH SHA1 ce6620b820e494c042398b9fd7ed108578008168 images/details-i386.xml HASH SHA1 22c466bf9af3003ee95fed6f7fb93b4c8c0cd993 images/gnome-i386.tar.lzma HASH SHA1 49374551f38fe919cf4545d5af0fea7d45361738 images/gnome-meta-i386.tar.lzma HASH SHA1 d1e9a38629e353d1f0136ded670cf28213d47e6f images/images.xml HASH SHA1 0df7debf780a0e01b18004d18ef6ab21410b9480 images/kde-i386.tar.lzma HASH SHA1 c418a15669de278e523893f030c209c479f490e6 images/kde-meta-i386.tar.lzma HASH SHA1 6c4238796684f770a0b4ecd1ea4469e5a7a49b0d images/x11-i386.tar.lzma HASH SHA1 cc50a8bc9d560c8d522660feed5feb019f9b889e images/x11-meta-i386.tar.lzma KEY SHA1 17162a96933229a9771ee10c0976bdc047a2f53d gpg-pubkey-0dfb3188-41ed929b.asc KEY SHA1 f6accbb18d705bfc104c893cf7dfca1247a33f3c gpg-pubkey-307e3d54-481f30aa.asc KEY SHA1 47f6492d127ae9f6aac353a2dd23752fc0ed4f8d gpg-pubkey-3d25d3d9-36e12d04.asc KEY SHA1 2288e5849740566e4fb65b7c9dc0c7e4f43b1039 gpg-pubkey-56b4177a-47965b33.asc KEY SHA1 89d4bcd20a281553fd1d4ec1708603ebf88f1a59 gpg-pubkey-7e2e3b05-4816488f.asc KEY SHA1 06ff5171362496c0db84beeccd29967f580350b2 gpg-pubkey-9c800aca-481f343a.asc KEY SHA1 04544096c5c3b0ed7b01a83d79e048307c2af919 gpg-pubkey-a1912208-446a0899.asc libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file/content.asc000066400000000000000000000003051334444677500265340ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkkTDKoACgkQm+zCtd2wN1bWFwCcDMWfuN+JDv8/Dew9ozDLNkNM JbAAn2nqGLhU1PcX6Ev4t/jlPsazliaC =8Ava -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file/content.key000066400000000000000000000055611334444677500265670ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.9 (GNU/Linux) mQGiBEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF 110vZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6e DAbL05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRiu s2ev221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjC kfar/ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/ gnQt+mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUK fZ3gA/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzp fnWJ3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAy UYuG4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0 IEtleSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNm TgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2lao hb2Q4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQA toB5TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnr VW9PKj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPH cMOc31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues 73DPPyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsL HC5wHMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y 0KVapBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2w N1apuACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dz mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =ZZx0 -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file/images/000077500000000000000000000000001334444677500256415ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Fetcher/remote-site/images-file/images/images.xml000066400000000000000000000223331334444677500276330ustar00rootroot00000000000000 base,enhanced_base,games,imaging,kde4,kde4_basis,multimedia,sw_management,x11,xgl i386 kde-meta-i386.tar.lzma KDE [base] tar common-base-i386.tar.lzma KDE [xorg] tar common-xorg-i386.tar.lzma KDE [desktop] tar common-desktop-i386.tar.lzma KDE tar kde-i386.tar.lzma KDE [meta] tar kde-meta-i386.tar.lzma base,enhanced_base,fonts,games,gnome,gnome_basis,imaging,multimedia,sw_management,x11,xgl i386 gnome-meta-i386.tar.lzma GNOME [1] tar common-base-i386.tar.lzma GNOME [2] tar common-xorg-i386.tar.lzma GNOME [4] tar common-desktop-i386.tar.lzma GNOME tar gnome-i386.tar.lzma GNOME [meta] tar gnome-meta-i386.tar.lzma base,enhanced_base,sw_management i386 base-meta-i386.tar.lzma BASE [1] tar base-meta-i386.tar.lzma BASE [2] tar base-i386.tar.lzma BASE [3] tar common-base-i386.tar.lzma base,enhanced_base,fonts,sw_management,x11 i386 x11-meta-i386.tar.lzma X11 [1] tar x11-meta-i386.tar.lzma X11 [2] tar x11-i386.tar.lzma X11 [3] tar common-xorg-i386.tar.lzma X11 [4] tar common-base-i386.tar.lzma base,enhanced_base,games,imaging,kde4,kde4_basis,multimedia,sw_management,x11,xgl x86_64 kde-meta-x86_64.tar.lzma KDE [base] tar common-base-x86_64.tar.lzma KDE [xorg] tar common-xorg-x86_64.tar.lzma KDE [desktop] tar common-desktop-x86_64.tar.lzma KDE tar kde-x86_64.tar.lzma KDE [meta] tar kde-meta-x86_64.tar.lzma base,enhanced_base,fonts,games,gnome,gnome_basis,imaging,multimedia,sw_management,x11,xgl x86_64 gnome-meta-x86_64.tar.lzma GNOME [1] tar common-base-x86_64.tar.lzma GNOME [2] tar common-xorg-x86_64.tar.lzma GNOME [4] tar common-desktop-x86_64.tar.lzma GNOME tar gnome-x86_64.tar.lzma GNOME [meta] tar gnome-meta-x86_64.tar.lzma base,enhanced_base,sw_management x86_64 base-meta-x86_64.tar.lzma BASE [1] tar base-meta-x86_64.tar.lzma BASE [2] tar base-x86_64.tar.lzma BASE [3] tar common-base-x86_64.tar.lzma base,enhanced_base,fonts,sw_management,x11 x86_64 x11-meta-x86_64.tar.lzma X11 [1] tar x11-meta-x86_64.tar.lzma X11 [2] tar x11-x86_64.tar.lzma X11 [3] tar common-xorg-x86_64.tar.lzma X11 [4] tar common-base-x86_64.tar.lzma base,enhanced_base,games,imaging,kde4,kde4_basis,multimedia,sw_management,x11,xgl ppc kde-meta-ppc.tar.lzma KDE [base] tar common-base-ppc.tar.lzma KDE [xorg] tar common-xorg-ppc.tar.lzma KDE [desktop] tar common-desktop-ppc.tar.lzma KDE tar kde-ppc.tar.lzma KDE [meta] tar kde-meta-ppc.tar.lzma base,enhanced_base,fonts,games,gnome,gnome_basis,imaging,multimedia,sw_management,x11,xgl ppc gnome-meta-ppc.tar.lzma GNOME [1] tar common-base-ppc.tar.lzma GNOME [2] tar common-xorg-ppc.tar.lzma GNOME [4] tar common-desktop-ppc.tar.lzma GNOME tar gnome-ppc.tar.lzma GNOME [meta] tar gnome-meta-ppc.tar.lzma base,enhanced_base,sw_management ppc base-meta-ppc.tar.lzma BASE [1] tar base-meta-ppc.tar.lzma BASE [2] tar base-ppc.tar.lzma BASE [3] tar common-base-ppc.tar.lzma base,enhanced_base,fonts,sw_management,x11 ppc x11-meta-ppc.tar.lzma X11 [1] tar x11-meta-ppc.tar.lzma X11 [2] tar x11-ppc.tar.lzma X11 [3] tar common-xorg-ppc.tar.lzma X11 [4] tar common-base-ppc.tar.lzma libzypp-17.7.0/tests/zypp/data/FileChecker/000077500000000000000000000000001334444677500205415ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/FileChecker/hello.txt000066400000000000000000000000251334444677500224020ustar00rootroot00000000000000hello this is a test libzypp-17.7.0/tests/zypp/data/FileChecker/hello.txt.asc000066400000000000000000000002751334444677500231560ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBGXW7Gm+zCtd2wN1YRAuAXAJ9e2obl0RWM9eBQz8dmPdQjclmamQCfRnJS XFIPNZAA1XeQL/Dvi51EIwc= =3TuF -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/FileChecker/hello.txt.key000066400000000000000000000325221334444677500232000ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.6 (GNU/Linux) mQGiBDsj/RYRBACQD/DCxkMgmEjBNYh53AfsV+zcMaz4nDmeEElANfHrVzVGx33N Siiqs33RIjV35Gd8OH1iSnbA7ef0gWELgVSToK2ydv/3X5Cbcb1MOWYQKJE1dQz7 fw7Ic9nP7NieM18YMsOYEmCvyL4sLZviQIlb3caP+OpI/GAoNINY8m9yowCgxgx1 L+jnJznXyKy7v5WgwMyrE2cD/38Nvp62Rq1/IqhUDc3SDUp5+xPddwOZ/E7P9F73 0Gb2ec2fhAm9QZyVvFvLa+SJq2/LvY+vITZSRI0HTBZf4Yrzd6eHu/cDp0m0o/BS McuoaHmKeHYcyIa2w8LMREpchgdlY/LnHR83Yipc3iegBRUvoTtwUYMqpswwi+6i 50nhA/9MC5cPOZbPpqbaDbSz0NtAVM2gcvgiBx4VKCh/AhkZ+abzogeHn6uT2eaP 3Fnk4YOa0FEbO+YHg3Lu45tZV3pBQUZoY07r5niT0Sb6dAKO/j/omEt4q44OO3ba fanEvFurtgpkszoD20yheQLhv7CVdS8IUfQ2R+r0eQjxtAfJWLQmRHVuY2FuIE1h Yy1WaWNhciBQcmV0dCA8ZHVuY2FuQHB1Yy5jbD6IVwQTEQIAFwUCOyP9FgULBwoD BAMVAwIDFgIBAheAAAoJEM0etqlmfkLRqZUAnA8SIsD1eQkhDR7GkekdXWtlbW1W AJ0eAtcylAOTGf3AezgtP/vlWtLj5rkBDQQ7I/0vEAQAnZXsJoF43AMGs5ccBsfe nbLa1GacjBA212+wJ/toRCbs9xzs5dozh+TnY4Px4cQSafdcsmm3jwMVeCdPdRZ0 RuJ5qEm2e29qm9nj2MTLVMKEjbTS/FbK5SkxKuLUXHsgZyFLGssFjTWDKsX/jy8c u0Kby++b6gPkO3Ft0BjwyRMAAwUEAJSn61N7TqyPOs5GSCxzUIAbsh4PlGeDZ3Uc g+CY/+WZS7CzJlUZiDWqIFADmip5FcuF/MV0mYgcd8nMBVcy17maEf1OnfPhEhOj spu8xBnSNBGWQHQx9h5CBy66riBSHG8czF9/IlKmWgyo+TGJXrxz1R2VIYgoato6 BKZSduFZiEYEGBECAAYFAjsj/S8ACgkQzR62qWZ+QtFuBQCeMY2aH7t6yvVR6o1W YopKmcxZw0UAn3iLjS38pR3qIfRN4Qhzktzu1ofBmQGiBDslJtURBADjFHks4HZl ZIc3UjWQrICS2dKbbBWxbRIKmirXD0mOZsOCdmkMpIgy4BWM2HncN5BtP/1eyh+n IwHHnFKgzqKxAIY3AjWzEDVLKPbJZ2xdQceEbKrx3Zrywt4KdyHG9DeAMYmhib8B VZ9Gg0zyTD6/HqXmA0QUOfOHQKLBApVTVwCg/+F6iL4OlBX1xKlg17yHNbdAFsME AIOH/1rBCnc2sIjyjFdgha5OxACwOJvrodAOLjDxRL/uRWnjOrKhM36A+TySc5Lv PpaqnGYcPQMNm7hUThRoLU5rYf/rdUV49y/ARQZDAdZOFf4meYk0c735c7TTTcqw f7Ri3gVGfrhsmRFwvU9JyNhkWJ/9HpOk1EZCYLgl8f4SA/sEI9CRWiLS+8PHf02p PzVZkBZzTMZNIUlXKltPJ9hSsbn1P0PHAfk1hYxch0QAQWn786F5P8DBT7bY9/Fj 2Tuu9SReDg+hK1X3K/S8QpUZ3aDuQPBTvtzTryI0k7wsRioXl+dI7yJ5TrtmCUpl J7QRTaEvpYRn1MuHorM8exqrxLQxRnJhbmNpc2NhIFF1aW50YW5hIE5hcmFuam8g PGZyYW5jaXNjYUBob3Rwb3AuY29tPohgBBARAgAYBQI7JSbVCAsDCQgHAgEKAhkB BRsDAAAAABIJEGcamjydIvodB2VHUEcAAQG0twCg462jbwEDWXbQkjp7BsOpn17h NIgAoMTjKy9QT5pSPvCR2vg4O9DFKJJciEYEEBECAAYFAjslRYcACgkQzR62qWZ+ QtGT6ACbBW2aYqhvqyE8UmOTpJNeSNa/HrkAoJr1/YGNLR0mOJ4Km5xZ8RprGHv7 uQINBDslJtUQCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmP QFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24 rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhO SdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18 F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsC RtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICCADd3vdMio1+IrBMRxfHs5bw qUTxQbHuGIrX4gFqQswWQHnihWPpotDIGwf+uuBWz1X9RiHKCPIOE0rTvXk6DsH1 s/5iE0+zCLHsoGPSY4DU7WYQgrqumSBP0CqEBFzBJSUN/iCD4PP6lfjzlrmfDznE Yn73KDJKXM5c0T4YJbs9NFBSmq8qzY9MAixlkty5jvz3GX8/EMTgSxG9ih68CTac uq+u7fzbQszjKcrAqrPRAgJMtVwTuzBrpyTp/nelvOG8STR0z30yKu0kxaSPupi/ BDCg/pTjRwAT6TmkdNm1uhebJzK8L6bKy8msqZVMuscxnS/hO2HZ651RvCysyRFh iFQEGBECAAwFAjslJtUFGwwAAAAAEgkQZxqaPJ0i+h0HZUdQRwABAXlmAKD1P1CN skD6H649PbY7THYFIgrgswCglmKY5nhOTdRIUsTi5cN37CHIob6ZAaIEOyU2WhEE AMSfxMgHwElMwonNAeawUGT8NhqgfgRGCqJGHK3v6yx3/ms51sVA4PdA7jt6wG8/ nbhszeeQCIwiqZtaxGoHZcTEu4219EdOPzMebbLcm2iCH57kXGAc/vn6VOGChNhw Zt+VgdpEgy/+9gEORKC0cBDT0X93oa5im1O4q5030frvAKD/3pf4Bz4qmi35U9vW YDan/NqIFwQAocSAWtfn2WtS6UlqHkIBdpc/Zu49DUWJ1rL4wagIhRgGlblyzqZO GLEhnOrBsHXj3/yxXi+sF3mdDy9Z112DK+1L1taSf8LkRFsutbxsJqumH+bTU1mw bjnJgd4D8/oz8ryUOc6OnwsmAqaGjWR/Mul+H8mtzKbFpVHjL8uiMs8D/R/mTe6t GTIQCKaninTn9ovJbRgu4V2H4wB+gvpV463W7UtnY6ypCZOxgjsw+sdRfrOKiH+T k5bSkRUeaJgFm3Ohfbx9g4CcnKbYLDR1M8TWAlVcb1kZqqrb4daYHz9e5jD2oeZQ vancOBrsTg6jj2Nrmqzns2LkV+jf/AcMZ80StClNaWNoYWVsIE1hYy1WaWNhciBQ cmV0dCA8bWltYWN2aWNAcHVjLmNsPohgBBARAgAYBQI7JTZaCAsDCQgHAgEKAhkB BRsDAAAAABIJEG1K/bpUtQOCB2VHUEcAAQGmEwCeKa3LJJqxvSg2hF18+JQS4F7i 5mQAoMZeMPJWVSWmlU41imAGjwHoP4NyiEYEEBECAAYFAjslRx8ACgkQzR62qWZ+ QtFkQACfbMS0sv/k91tVcXV5poK0CR+m9EsAn3ywd5cQw3eenCn1z+q3gwI3G99z uQINBDslNloQCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmP QFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24 rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhO SdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18 F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsC RtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICB/46z7Jy+uxh4TiACldUV23L pzj0laL/HhAn+Sv02xAZW7YVgHIq21ZwyiQ9ZbEo005HqvLPch7YymIXxoYiokia nCgbncHtG0aeaX1T/IPPbJbwNRx2+2GCLongbNvmAO9bCWP9LVeVaT9D4LpsCium hAtiOw5t/Q2cAPMgN03hTLkRI2LEdZnsapLDogQo5v6oOiLEZasSrft0MMwv3l1G MUvxdfwrR2HM7WopJS6H4AK2W0tSBLPKFanW9KAsLVcAVFV6u3lEXjuXncOo9feF WUf8A4LBJr5cQBu2kKuBcy0iayCz18s46KlqxCCCWLu+gnxcTU3YNEdQF41NjdgY iFQEGBECAAwFAjslNloFGwwAAAAAEgkQbUr9ulS1A4IHZUdQRwABAWk6AKDmE88v eFoum1b8bwCADKJjNX1WzgCgqJ61xnX80EBLtAO8rQZQSBKyABSZAaIEOyVASREE AOANe2DTx2GMdCm/1KKy/O9E5yyvpBEU4tZ/3kZaHtzpIjs+PmZMKVRolcFGMu68 5HQvvDyXmdUn/iTNKOV7Vp3Th4PM/ewHis0rXyXsYDBzSKNXSan8qX0XiKJtyjdw IgyyPKxaBSaWT51hhZC5tAD8SBOzuQVCj1BHHOiOqdLLAKD/kJnlMnX2A1LySfK7 zX2/plKRXwP/TUV6bZZl6OqyY0E2JjUmhbGdOh+LcCMy/qP/42PIG5T2jMiFSJzH jL5GjTl4pRn5UAh5xVtWESof1VSuJfjxMOs3G7g4YmHrarnyzS7+2ohfk6u+umZ0 4LVRN1xzYIzzy+yxO3yjFq5l4ztgCRj2sCldSeLJ+cnd913cWUIhu9oD/1deuUGM b/cdBI9+SduouUK8RyV6VGabosBfx+5/8kWCPRy1EwAkoHoc4Tv+m+XfJEwwhPCZ 32UH+za75+pzBXVsOp+fJXyHcoWlMIYzWopP4RppP/wmEUmJ9gOMESdR72Zgbt1S W34V/0WPplElCz2+zPNBywkPM2nKz6P8om61tC1EdW5jYW4gTWFjLVZpY2FyIEdh cu1uIDxkdW5jYW5AbWFjLXZpY2FyLmNvbT6IYAQQEQIAGAUCOyVASQgLAwkIBwIB CgIZAQUbAwAAAAASCRDBKokdV5ub1AdlR1BHAAEB4dEAmwYpphCnjg3NgSNL12wQ BPixgrMOAKDDhzuQNqtkv+oqoW8du+w9Lp9G14hGBBARAgAGBQI7JUb1AAoJEM0e tqlmfkLRY7sAoIFRQuTnl9H/Jq+RiBSEv0BfStKGAJ9DSONVqtVA1z9yPmKVN0qp KR4nyrkCDQQ7JUBKEAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadW oxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeS Wc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0 iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF04 0zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQ ClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAgf/c1hY0bD1ZrwHo7Do 3JLZZIGvHfdnEicOA5tl7vaY78ZLLHFmrE+KpMVOlqNMP4dYpC69J8wZl0PWQllO s0Qj8w0vBUGGuDEtfaquarVomBZrlpFy/TnAe4hSvDaDbbShnT2BSFe4XdT+gNQI Bffp3XoJo8IwlXVNFShzYvVags/YGPMiQCAqupQa8gU2y+1d7dw1Tl1JDMXSykTG 4LPVbLrv9Ph/MtImmJZp2X943rtynzd6Brl/JjL02khKZ6IVxXblQmptAzSS2KVn MOHH56+Zh3o8c/uLw6qALWgdqMSiF+j2SbI78Bcn+/Tyy+dIlU7Qb/2pB64WnclV 4Eew3ohUBBgRAgAMBQI7JUBKBRsMAAAAABIJEMEqiR1Xm5vUB2VHUEcAAQFFEgCe OFpL+b95gvDaDv0a4sP/XHXZeP0AoJbThxHBTGgiKvB0nEs1FPYagsB2mQGiBENE 9tQRBACoPUvSF0C3Gyg93BzfjPoQzfIG7KcH+X1PMd7wsaF48B53t2V7px4MGw5W CwRy6S+bkz86Os3Ycxewm0a7/We/G0QmzmyOOD+f+L5s7Sr0rM1fmFVGZRKin1MX 0s7YpX40rSHouNSYXXX2vu+o7uJvkzI8/yf16Kac4b1nP3jT5wCguV6Gl1eWkOS9 DfwBUuIdwLObzjcD/2B9rPsuN4mhbjTAnPxz8fMKI2r+68UvEkicVIeKKauEp9JW defR5Yfv2koagqZC3F9550SjZw2r/Wmx0RhAA4mskuMXwIato39NK9+oXqgSVbyT CAb8SEgPlw60f/MctlIveRpTmSaSL37tj+UEHqOUSPoRk0VNXTML0prWpuVxA/9A YiJ62X/0CV3DksecKvr3hWdD3WZhoniRInYhkeokHJFP0V0WkWpHD1+brNgHE0ig jnbkTLWfVYDhppRccKjMiB4CxlwNoreOc2uRvO2cAzo5d0zCdJDfTNi1Ibspuf3r lnYFZ+Y2dhrP825FMvcS0dL2ZTVcOXPwDVVJRDB0l7QvV2lsbCdzIEdXIGNyeXB0 byB0ZXN0IGtleSA8d3N0ZXBoZW5zb25Ac3VzZS5kZT6IYAQTEQIAIAUCQ0T21AIb AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEHfQbNrv1xE4iJkAn3W4/fWpkgZf pit9du1vzKTaS+y6AJwLXPrzm5F9CDTX77AfCSPsvYOHYrkCDQRDRPbgEAgAveOV KYqnKMeC9mZEzpYPFjwxMe0qSdVAqxPvAOknzbJpDHm0O9uIf8F/IQZC+Hq/COQk 9zowMkrHIBs93a0SSX4pV174XjshxDoYxDiUf/XTTDec43a420M3K3ji3ySj/MyI gOr1zu1zCWN90nFIyhBbAUqWwiEO4tHtI96pMko6RvmMZb0gsC5ERMTd5iXfvEPC 437tNyuVokeZmZAPZ2QLJoms3rt1sRujF4vZeDORZXwrhUXGtscopNgg3C39Asw2 eFS7waeblUdQbtH6iz3ofD+qz2PNc2wcnY5q6aeZTyB0USShG7PsQATLDhFwkeDP qp8g5oI+JmvPgqyAYwADBQgApLDng/rWmEKEqaUEG5sgG2fqSe7Q8tSXD/OyjXGv zjkurCe+gOUiWqUfPEtYRGBXGvE8VqYGveQZVjqiNxJ6l6tK8x4GKxMxC4hMFFTo QWoBhEw1Jy5wvOY8KoqSLnDERjXFqqTQsDEnyFjMGBl4K2XWjOYMBmSqkaDJydtv unqgH0yULu3ouxY7wk3ZKovDGmtt4i4MrthmYXq9W2tM1LutXh7PChJf4DVIo/0x SghvMQvJIELAPoIIp8h4V07sjPdvGg+n4nSAhw67KLHCR/TEqgTULH5w83Aopwbr yDnBKBXFh6zx3ArZu09YM19xW5J1ju4ureQG6jbly5Vmn4hIBBgRAgAJBQJDRPbg AhsMAAoJEHfQbNrv1xE4qNsAn2soSMFX3ZErJ4Uwwk2pg7dvYlZ0AJUYWEKOTfAc 5kHox/B8rV0xDu90mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3y EKeueNWc+z/0Kvff4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0P FPboMvKx0FXl/A0dM+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xoc QSVCFxcwvwCglVcOQliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/y E/vdvpN6lF0tmFrKXBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqI TuZC4CWxJa9GynBED3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBe GaPdNCcmfZ66rKUdG5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn 4zLUOf6aeBAoV6NMCC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqaj LfvkURHAeSsxXIoEmyW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF +rQoU3VTRSBQYWNrYWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMR AgAiBQJA2AY+AhsDBQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAK ypCfAJ9RuZ6ZSV7QW4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+I RgQQEQIABgUCOnBeUgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAe jACeOO1HIbActAevk5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9A n5vfiUUE1VQnt+T/EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2O gSEISZxbzdXGnqIlcT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzne OA9gTPSr+/fT3WeVnwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yry k23pQUPAgJENDEqeU6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN 8C1yPqZd5CvvznYvB6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJ t9IXSzyohEJB6XG5+D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ 8UUTmIT2iQf07tRUKJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/g O7fJEpD2hd2f+pMnOWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZ NZfDqnFDP6L12w3z3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271h hQBeRmmoGEKO2JRelGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5uc TXstZy7vYjL6vTP4l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g +9V3ORzw4LvO1pwRYJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbST M5LpC/U6sheLP+l0bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlG G6pqUN8QxGJYQnonl0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7 mfoGx6INQjf3HGQpMXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMW pO+M9bHp4d+puY0L1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zF bpeqPQUsDv9V7CAJ1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspn pgCfRbYwxT3iq+9l/PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuOmQGi BEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF110v ZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6eDAbL 05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRius2ev 221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjCkfar /ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/gnQt +mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUKfZ3g A/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzpfnWJ 3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAyUYuG 4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0IEtl eSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNmTgIb IwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2laohb2Q 4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQAtoB5 TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnrVW9P Kj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPHcMOc 31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues73DP PyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsLHC5w HMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y0KVa pBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2wN1ap uACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dzmQGi BEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7BwW4E qmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuciR3y gsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY3q7e R8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD++naz SIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbnZ0yo OaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9uAhgD A/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3sYaE tZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin1/4D ABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0Y2Fz ZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wCAhsD BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmOlWDx WV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4T11K PE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8WxezAsj yTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUkyHYl t8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5Ly4I jfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUluHqD aCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabMjQgG hV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv8ZBk ApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAREDWb AzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/KiZ/C 6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9DDtpa UeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/tDCe J1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/vAwC GwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6IaVSt jbDRYEnTHQOGsVy9mQGiBER0ULcRBADZvvVUsUUSjMyQ2fUt8Uu4eGJuPbMhEtR/ vF7pzF/8u9Br7kh6WASBZ02dMeNoqFzPTU7zv6PiP93iOLwy2MQNOSBLkS+MscR6 fzS6ZL81mNr+DwgOF/rLZ4tucAsBY9Z3lgRx0mWhl+XunVPXHhkR9H9Rig4wOrrz wBsYjjfXvwCguQ1PQ6+UQgL8STVqNaNnlVYzzUUD/336IftwogH/tKp6dV/FYP/V pLHXtwFee0vcCh5FwcKP0vYo9NIfB6CR2g0pyYsHBWbheMWXRVTlCaUVOhaycd+D XoyKl3FcxL61OD0F/feg2UEqH7n1csGV2MDGlqXsF5urKdPYcBRG56ynlWXs3W7D zu9JN8skhWSnXdtBFa3BBACo+CAXSzLJnFrG7kg8AYT+0k+kTS/UydwAr57QSLUc /blXR6seNd+TM4Kwj4Ij2pNL/LpZyzVrDS9BWNZHq3bQnERPrfXpK5XWX0quZn8z g1ImFwxmJduHKmtyyxNjjPR1SUFzD1EXpPfCYgRL6kU4OflbgGoL2YpmgHO6LQ/O GrQyb3BlblNVU0UgQnVpbGQgU2VydmljZSA8YnVpbGRzZXJ2aWNlQG9wZW5zdXNl Lm9yZz6IZAQTEQIAJAUCRHRQtwIbAwUJA8JnAAYLCQgHAwIDFQIDAxYCAQIeAQIX gAAKCRA7MBG3a51lI/ewAJkB4psDm44RckrzyMyjXEKBYXYKXQCcCLBW95t7ooAI yqfsg94RICpbr50= =NAat -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/FileChecker/hello2.txt000066400000000000000000000000261334444677500224650ustar00rootroot00000000000000this is another text libzypp-17.7.0/tests/zypp/data/KeyRing/000077500000000000000000000000001334444677500177455ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/KeyRing/installkey.gpg000066400000000000000000000033351334444677500226270ustar00rootroot00000000000000˜‹D ]¾Ì¬óûtZ¦Ù§¶É êWw³AË6&[ê‰ÒU†ÆjAïŽLb)1[Ÿ“\_þT‰æî;¢þõOÉ ³[û$PXÂóf¤Zj¼Ñ‡pøˆeyÛjb^¿SbY ¿vžíåFX‰tŸÕ¶Ç×gŸì<.íéNU+&hm)° gpg´(SuSE Package Signing Key ° gpgˆ¸" €Kàe DË ã¥Ã`0~=T„ëý$ˆ ÓMiÝäí+œo°ŽÍ›î…œÒjð¸òGŸ¼íêP x)hÄÞr8ÎNé hqë Tÿ‡†â#'öçuY¾('ެR+ÍPZºÒ x‚Nzi1“5å:È+Sˆæjá\kw[Ã_ˆžÜíÑv C€Gà0³ØNû•!7’°gpg™ Q –kÛ¥–[m ¹f/‡Ä$Êv,W9$ÓbI&ZlÞF2=gHqy|iakÅ OøŸOˆ\‹)óxŠ¿ôèK¼ïÃ^%2 Ù»µ¢Ou×Y=#Uá©L:÷T‰i©B{+T8ð5´D° Õ®ëÄ0ŒØÁS(“'f.½K´gJÖA1±Yš†'¡ý i <˜wœ?jL·ÏmÞ¬*wã| „Þm@†º,ê,k­ÁH!%Þh¥'²}¼9¨ð(K«¢í-‘å~?øòÍðɶàk8f/ÝË_I«#1°Û €þ³i¶ @Fü/M¼I{åìA¨åpåWwÀ›3½Ï}¸ ­xß° gpg´(SuSE Package Signing Key ° gpg‰<& €XGë Â"´ p¯ž9Û|‚š”üI$¹Àî:.'Óg#àwmíb(ã£IFÕõÆÖšq×’Oë<êí1QXçtÖèQ£q‹pTâ*®Ã‰^¤SqQ_ãp »V`¹™ÎÑÃÞÄø:a°»DE«™¢R¹™Ñ.uA¯Oy™O/h·³ô¡77ÑÚßó{ s°xÉ“ÍAeÍ øp/¡๫*pëÅm’Ÿ€ZLÇÿ÷_ÏÓ‰ ›¸PÏu…¾êÄÍ’µÇA]â6¬à01!“/ý6£2°gpg™ PóQ7ÐÞŸ\‡V‘éÀj/ã»PÓ¾ÌSS#•±-þ-zòë±+›INζ9ðZeˆj(Îë'¶PnòöfŸl1éÃc²3Ÿî ¦Ìêά0+š'ž1œJE™ò0Ÿé­,‚o°°N¬3‰“u6Q:Ч¶Ñ×f¾º©x~H¡"ƒë£u&úKG¯ÍŒ7¯(Û)‰©}þªžÄÖÑóU)î§M üCWÅÉLæïOñ0ÈÉH‰hjQv }˜2 #†nÕóó[ðNßDRŒpçÊáGcâ±½Ø*O?€¶¹Ïêv›>¢À£‡FoIrei\>îpI}Ã\ ÍG¿° gpg´6SuSE Package Signing Key (reserve key) ° gpg‰<&PóQ7 „Î € ^¯DDP£Ý¯éýÛYšíÄ/gYG¾Nã;NÚªëî¸QC\"™°Ç¿Z@ŽYÝP›ÿ¼>'Æ\\¯¸½BƲ»»¦‚Ä8ï)6Ò”•sèªú¢ü ·\v×b±ÚsËØÐ< ê?µ™vä`m•Zr(6ž©ü0#ïn™òóQ T ˆ¹Î.Úrƒ<ªºMÒ€ñª‚º>„%—ýU ´ w}æ‚ühÈ{Ε2òÂ‚Ø Ê€V v/±;­ŸžNpÜ.›ù¼TøV…ÊÛP®´fÁÛwæ°ŠÅìÚò.)G*&r û. }ÅLb6Q‘RH”m{‡HåE±.¹³Û{½OÃO°gpglibzypp-17.7.0/tests/zypp/data/KeyRing/private.asc000066400000000000000000000035531334444677500221150ustar00rootroot00000000000000-----BEGIN PGP PRIVATE KEY BLOCK----- Version: GnuPG v1.4.5 (GNU/Linux) lQHhBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/v4DAwKtVz8ehZCg rWAxhnYmmTtu8nnzDEF6BWQfS7gSUCu66LgtoWSjLfBuiZk0bSNDIrPPy6ZKvOOq MrHTBrQrWllwcCB0ZXN0Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3Jn PohgBBMRAgAgBQJGP7wCAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHY m9mIIb7TJQCfTe4MwrmOlWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kx uGn8nQJjBEY/vAwQCAD4T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVB pYORxyWjS8QMc9ge8WxezAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7b Ai4xx+NLOu9DuuU+jqUkyHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPx vYrFAWnesgUJMqZo7Td5Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/ m+MTV05nT6+1KCBqCRUluHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraa tXyHnAyhwiwTZLq2jabMjQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSj ZKlHAUdnGul0M2KuyJhv8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt6 7abbezp/Dgs8+691OtAREDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2 HGTzVy1k33vnuGCVwC/KiZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp 8dMJ+FFsTmzONzZpFC9DDtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+ cFkE7hW8tyOwcx4sk1J/tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqC GWJV/gMDAq1XPx6FkKCtYI80yXvLiqb3UuzJbGJv5vVmdtsUcwiHhGnyWRd6AbKy Z0sflw+3PmpqEuAZ8LsdfJv8uIhkWh2W+eDYBrZBJ4IqQogALCf+AMCISQQYEQIA CQUCRj+8DAIbDAAKCRC9Ydib2Yghvk73AJ9cke9SDyJr+M+nusuWZqzdsJYr0wCc DHnEr0GsuEal8fCTCJuMQScd4zo= =7nLA -----END PGP PRIVATE KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/KeyRing/public.asc000066400000000000000000000032361334444677500217170ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.5 (GNU/Linux) mQGiBEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7B wW4EqmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuc iR3ygsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY 3q7eR8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD+ +nazSIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbn Z0yoOaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9u AhgDA/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3 sYaEtZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin 1/4DABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0 Y2FzZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wC AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmO lWDxWV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4 T11KPE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8Wxe zAsjyTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUk yHYlt8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5 Ly4IjfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUl uHqDaCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabM jQgGhV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv 8ZBkApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAR EDWbAzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/K iZ/C6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9D DtpaUeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/ tDCeJ1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/ vAwCGwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6I aVStjbDRYEnTHQOGsVy9 =LiUY -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/KeyRing/readme.txt000066400000000000000000000000531334444677500217410ustar00rootroot00000000000000passphrase for the key pair is zypp-devel libzypp-17.7.0/tests/zypp/data/KeyRing/repomd.xml000066400000000000000000000016671334444677500217670ustar00rootroot00000000000000 49589f0e6569914ada9293e8c3895cb899b58a58 1177395604 67b155adc1e7622f7962849ee43965253a797765 4174aed6d4ffb8cfee41b64ae357ce1db3fe904a 1177395604 1981b7db9252974869ce1d71443bde69fa9423ca 2a72bebe987fb613673d9db73120e95a999f143d 1177395604 6a328b1ec1fab195fb69035c13fe4340ee2b9cbd libzypp-17.7.0/tests/zypp/data/KeyRing/repomd.xml.asc000066400000000000000000000002751334444677500225260ustar00rootroot00000000000000-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBGQFwzvWHYm9mIIb4RAnbuAJsHJkj5X8M5aOxeZ2KUsHjhQ1vKOACdFrQ0 Vxp3Zznn3w4j5SaGAqpyGWA= =iu9H -----END PGP SIGNATURE----- libzypp-17.7.0/tests/zypp/data/KeyRing/repomd.xml.corrupted000066400000000000000000000016671334444677500237750ustar00rootroot00000000000000 49589f0e6569914ada9293e8c3895cb899b58a58 1177395604 67b855adc1e7622f7962849ee43965253a797765 4174aed6d4ffb8cfee41b64ae357ce1db3fe904a 1177395604 1981b7db9252974869ce1d71443bde69fa9423ca 2a72bebe987fb613673d9db73120e95a999f143d 1177395604 6a328b1ec1fab195fb69035c13fe4340ee2b9cbd libzypp-17.7.0/tests/zypp/data/Locks/000077500000000000000000000000001334444677500174505ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Locks/locks000066400000000000000000000000251334444677500205030ustar00rootroot00000000000000query_string: zypper libzypp-17.7.0/tests/zypp/data/PoolQuery/000077500000000000000000000000001334444677500203345ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/PoolQuery/savedqueries000066400000000000000000000003001334444677500227500ustar00rootroot00000000000000solvable_name: tool repo: vbox repo: zyppsvn query_string: ma* repo: opensuse type: patch match_type: regex require_all: on case_sensitive: on install_status: not-installed version: != 0.8.3 libzypp-17.7.0/tests/zypp/data/PublicKey/000077500000000000000000000000001334444677500202645ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/PublicKey/multikey.asc000066400000000000000000000042271334444677500226240ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.19 (GNU/Linux) mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIC GwMECwcDAgMVAgMDFgIBAh4BAheABQJL4BplBQkPRMsIAAoJEOOlw2Awfj1UhOsD /RkkEhOIC9NNad0F5O0rEJxvsI7Nm+6FnNJq8LjyR5+87epQCXgpaBXEGd4RcjjO TukLaHHrC1T/h4biIyf253VZHr4oJ46sUivNUFq60gl4gk56aTGTNeUWOsgrU4jm auFca3dbGcNfiJ7c7dF2CkOAR+CPMLPYTvuVIRQBAjeSmQGiBEjKO60RBACeqGqC khF+Zmzln1G7Jj9EaX6qiigk1hbs5VLQ5205lBIFMocOOAcmB9GI6r9D4VdwTew9 PaXur4cRi8otaF93DaCCgsBvLsBTVFC1sKgJMJkhB/BKV4GdSCAylSNAzASYelZE 7KJSD1KxdS29HBVN07BOcSCBjR9eRC6kmW9IWwCg0t9U+Jx+CX7Fa9Q5mZ0/OfI1 Bd8D/joPsDKz2uAit3gEXGgGorQdXiFZIbppLe89Jz9fLq/J9GFdd6lz3Yv2Vsf/ hsaWPXQl5IZE+p6UPWUDUCwLVioLPQKh1p95KFdLn6pxFwG94UTougtjmm10E2ND 0PdssakeVtdYtNoeagQC1fYKmWyxBgXd4/nfhiNq0wFGsUUEBACbx8MIv5umcIIx TG8sJRouOjIgRdfmWPiWpxAql+qyPTwnkZytZ0zJrfdVEnKrfX8FkZ86oDN1pc0Z Zht59PrwxZpC5Kt3x0jNnyztn0FGwkADDhaEdzu8ZFXpkxglbsBAF2jx8HBLEMjN CFCEYHUoFrcIVfCO/fHJKWZquYKQuLQhVW5zdXBwb3J0ZWQgPHVuc3VwcG9ydGVk QHN1c2UuZGU+iGYEExECACYCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCS+Aa 8wUJCpqtRgAKCRAn+kG9inxk+XmpAKCUcG9rb6yU4jZn8PudBfsuQNhQNgCghiHo heeFc3pKA2PJ5tUKuPpTLya5Ag0ESMo7tBAIAJr+eL5b7DNd6oEcgMWR2yZieSpr YMDRGc5lU7HOsApcH2kHleBUQynle5NyYI0LOCuzV5QtAd0gwDV99A8VAVvYrcJl uuh6Wj2yoENBulEySUZ9LYuGA5ErFDGWEMMbXDLNvvb2MVCDXnLE34aXzRVnDjKd 2+/vzpNFuEECwGZBcf78+u0BNxCfxgLgdKdLZsAmdcFEONu8Zx6hxpoL5h+B1doI FqgePcAqhw3m7O+R8PCsODBvoIgQfViwk21BNKpnfBSvLFpJTA+AnwnRAuyljmda hI1LwB7VZ+TSplpsbt08HvmDDPzKsfgURPp+NzsQU0iFmjeaYf/9cDYgbA8AAwUH /A2dQA0JymANMkViHUt8HHtMpRPfUBEAICRriMmkSIWoUK6hZ/rD8t8PkOG7pfLC os/WdIPtuuh+56Cw1u48pwXe4nR0M3iqVTxizdldt197MeQejjBppcza7OH7nyga +NXf/GsniuuHcanImyh8yugaobWeBVD8i2juuLZFmlKc88Z1XWTC1ndB0WduWca2 XEIJgvPyk84y/r6ItB45R+Pn3b/mafl2ebhI+YG8ywY8lqBhSWnQTNXaKG/ijb+a xSEPVvNAHonZyv81XUDRNDEO/Rwsxmgb12J41k+5jpcB5yKo4lc6qNdHAwyuxSUB D/xATGUaSFmUE7mxFlzCr0+ITwQYEQIADwIbDAUCS+AbAwUJCpqtTwAKCRAn+kG9 inxk+TQ4AKCUWlqp8CgtApaaV/KBmNMhcE9TzwCfcTpQER3EMh/4CgK8wSHFcTuG QEk= =Dkxe -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/PublicKey/multikey2.asc000066400000000000000000000325221334444677500227050ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.6 (GNU/Linux) mQGiBDsj/RYRBACQD/DCxkMgmEjBNYh53AfsV+zcMaz4nDmeEElANfHrVzVGx33N Siiqs33RIjV35Gd8OH1iSnbA7ef0gWELgVSToK2ydv/3X5Cbcb1MOWYQKJE1dQz7 fw7Ic9nP7NieM18YMsOYEmCvyL4sLZviQIlb3caP+OpI/GAoNINY8m9yowCgxgx1 L+jnJznXyKy7v5WgwMyrE2cD/38Nvp62Rq1/IqhUDc3SDUp5+xPddwOZ/E7P9F73 0Gb2ec2fhAm9QZyVvFvLa+SJq2/LvY+vITZSRI0HTBZf4Yrzd6eHu/cDp0m0o/BS McuoaHmKeHYcyIa2w8LMREpchgdlY/LnHR83Yipc3iegBRUvoTtwUYMqpswwi+6i 50nhA/9MC5cPOZbPpqbaDbSz0NtAVM2gcvgiBx4VKCh/AhkZ+abzogeHn6uT2eaP 3Fnk4YOa0FEbO+YHg3Lu45tZV3pBQUZoY07r5niT0Sb6dAKO/j/omEt4q44OO3ba fanEvFurtgpkszoD20yheQLhv7CVdS8IUfQ2R+r0eQjxtAfJWLQmRHVuY2FuIE1h Yy1WaWNhciBQcmV0dCA8ZHVuY2FuQHB1Yy5jbD6IVwQTEQIAFwUCOyP9FgULBwoD BAMVAwIDFgIBAheAAAoJEM0etqlmfkLRqZUAnA8SIsD1eQkhDR7GkekdXWtlbW1W AJ0eAtcylAOTGf3AezgtP/vlWtLj5rkBDQQ7I/0vEAQAnZXsJoF43AMGs5ccBsfe nbLa1GacjBA212+wJ/toRCbs9xzs5dozh+TnY4Px4cQSafdcsmm3jwMVeCdPdRZ0 RuJ5qEm2e29qm9nj2MTLVMKEjbTS/FbK5SkxKuLUXHsgZyFLGssFjTWDKsX/jy8c u0Kby++b6gPkO3Ft0BjwyRMAAwUEAJSn61N7TqyPOs5GSCxzUIAbsh4PlGeDZ3Uc g+CY/+WZS7CzJlUZiDWqIFADmip5FcuF/MV0mYgcd8nMBVcy17maEf1OnfPhEhOj spu8xBnSNBGWQHQx9h5CBy66riBSHG8czF9/IlKmWgyo+TGJXrxz1R2VIYgoato6 BKZSduFZiEYEGBECAAYFAjsj/S8ACgkQzR62qWZ+QtFuBQCeMY2aH7t6yvVR6o1W YopKmcxZw0UAn3iLjS38pR3qIfRN4Qhzktzu1ofBmQGiBDslJtURBADjFHks4HZl ZIc3UjWQrICS2dKbbBWxbRIKmirXD0mOZsOCdmkMpIgy4BWM2HncN5BtP/1eyh+n IwHHnFKgzqKxAIY3AjWzEDVLKPbJZ2xdQceEbKrx3Zrywt4KdyHG9DeAMYmhib8B VZ9Gg0zyTD6/HqXmA0QUOfOHQKLBApVTVwCg/+F6iL4OlBX1xKlg17yHNbdAFsME AIOH/1rBCnc2sIjyjFdgha5OxACwOJvrodAOLjDxRL/uRWnjOrKhM36A+TySc5Lv PpaqnGYcPQMNm7hUThRoLU5rYf/rdUV49y/ARQZDAdZOFf4meYk0c735c7TTTcqw f7Ri3gVGfrhsmRFwvU9JyNhkWJ/9HpOk1EZCYLgl8f4SA/sEI9CRWiLS+8PHf02p PzVZkBZzTMZNIUlXKltPJ9hSsbn1P0PHAfk1hYxch0QAQWn786F5P8DBT7bY9/Fj 2Tuu9SReDg+hK1X3K/S8QpUZ3aDuQPBTvtzTryI0k7wsRioXl+dI7yJ5TrtmCUpl J7QRTaEvpYRn1MuHorM8exqrxLQxRnJhbmNpc2NhIFF1aW50YW5hIE5hcmFuam8g PGZyYW5jaXNjYUBob3Rwb3AuY29tPohgBBARAgAYBQI7JSbVCAsDCQgHAgEKAhkB BRsDAAAAABIJEGcamjydIvodB2VHUEcAAQG0twCg462jbwEDWXbQkjp7BsOpn17h NIgAoMTjKy9QT5pSPvCR2vg4O9DFKJJciEYEEBECAAYFAjslRYcACgkQzR62qWZ+ QtGT6ACbBW2aYqhvqyE8UmOTpJNeSNa/HrkAoJr1/YGNLR0mOJ4Km5xZ8RprGHv7 uQINBDslJtUQCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmP QFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24 rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhO SdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18 F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsC RtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICCADd3vdMio1+IrBMRxfHs5bw qUTxQbHuGIrX4gFqQswWQHnihWPpotDIGwf+uuBWz1X9RiHKCPIOE0rTvXk6DsH1 s/5iE0+zCLHsoGPSY4DU7WYQgrqumSBP0CqEBFzBJSUN/iCD4PP6lfjzlrmfDznE Yn73KDJKXM5c0T4YJbs9NFBSmq8qzY9MAixlkty5jvz3GX8/EMTgSxG9ih68CTac uq+u7fzbQszjKcrAqrPRAgJMtVwTuzBrpyTp/nelvOG8STR0z30yKu0kxaSPupi/ BDCg/pTjRwAT6TmkdNm1uhebJzK8L6bKy8msqZVMuscxnS/hO2HZ651RvCysyRFh iFQEGBECAAwFAjslJtUFGwwAAAAAEgkQZxqaPJ0i+h0HZUdQRwABAXlmAKD1P1CN skD6H649PbY7THYFIgrgswCglmKY5nhOTdRIUsTi5cN37CHIob6ZAaIEOyU2WhEE AMSfxMgHwElMwonNAeawUGT8NhqgfgRGCqJGHK3v6yx3/ms51sVA4PdA7jt6wG8/ nbhszeeQCIwiqZtaxGoHZcTEu4219EdOPzMebbLcm2iCH57kXGAc/vn6VOGChNhw Zt+VgdpEgy/+9gEORKC0cBDT0X93oa5im1O4q5030frvAKD/3pf4Bz4qmi35U9vW YDan/NqIFwQAocSAWtfn2WtS6UlqHkIBdpc/Zu49DUWJ1rL4wagIhRgGlblyzqZO GLEhnOrBsHXj3/yxXi+sF3mdDy9Z112DK+1L1taSf8LkRFsutbxsJqumH+bTU1mw bjnJgd4D8/oz8ryUOc6OnwsmAqaGjWR/Mul+H8mtzKbFpVHjL8uiMs8D/R/mTe6t GTIQCKaninTn9ovJbRgu4V2H4wB+gvpV463W7UtnY6ypCZOxgjsw+sdRfrOKiH+T k5bSkRUeaJgFm3Ohfbx9g4CcnKbYLDR1M8TWAlVcb1kZqqrb4daYHz9e5jD2oeZQ vancOBrsTg6jj2Nrmqzns2LkV+jf/AcMZ80StClNaWNoYWVsIE1hYy1WaWNhciBQ cmV0dCA8bWltYWN2aWNAcHVjLmNsPohgBBARAgAYBQI7JTZaCAsDCQgHAgEKAhkB BRsDAAAAABIJEG1K/bpUtQOCB2VHUEcAAQGmEwCeKa3LJJqxvSg2hF18+JQS4F7i 5mQAoMZeMPJWVSWmlU41imAGjwHoP4NyiEYEEBECAAYFAjslRx8ACgkQzR62qWZ+ QtFkQACfbMS0sv/k91tVcXV5poK0CR+m9EsAn3ywd5cQw3eenCn1z+q3gwI3G99z uQINBDslNloQCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmP QFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24 rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhO SdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18 F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsC RtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICB/46z7Jy+uxh4TiACldUV23L pzj0laL/HhAn+Sv02xAZW7YVgHIq21ZwyiQ9ZbEo005HqvLPch7YymIXxoYiokia nCgbncHtG0aeaX1T/IPPbJbwNRx2+2GCLongbNvmAO9bCWP9LVeVaT9D4LpsCium hAtiOw5t/Q2cAPMgN03hTLkRI2LEdZnsapLDogQo5v6oOiLEZasSrft0MMwv3l1G MUvxdfwrR2HM7WopJS6H4AK2W0tSBLPKFanW9KAsLVcAVFV6u3lEXjuXncOo9feF WUf8A4LBJr5cQBu2kKuBcy0iayCz18s46KlqxCCCWLu+gnxcTU3YNEdQF41NjdgY iFQEGBECAAwFAjslNloFGwwAAAAAEgkQbUr9ulS1A4IHZUdQRwABAWk6AKDmE88v eFoum1b8bwCADKJjNX1WzgCgqJ61xnX80EBLtAO8rQZQSBKyABSZAaIEOyVASREE AOANe2DTx2GMdCm/1KKy/O9E5yyvpBEU4tZ/3kZaHtzpIjs+PmZMKVRolcFGMu68 5HQvvDyXmdUn/iTNKOV7Vp3Th4PM/ewHis0rXyXsYDBzSKNXSan8qX0XiKJtyjdw IgyyPKxaBSaWT51hhZC5tAD8SBOzuQVCj1BHHOiOqdLLAKD/kJnlMnX2A1LySfK7 zX2/plKRXwP/TUV6bZZl6OqyY0E2JjUmhbGdOh+LcCMy/qP/42PIG5T2jMiFSJzH jL5GjTl4pRn5UAh5xVtWESof1VSuJfjxMOs3G7g4YmHrarnyzS7+2ohfk6u+umZ0 4LVRN1xzYIzzy+yxO3yjFq5l4ztgCRj2sCldSeLJ+cnd913cWUIhu9oD/1deuUGM b/cdBI9+SduouUK8RyV6VGabosBfx+5/8kWCPRy1EwAkoHoc4Tv+m+XfJEwwhPCZ 32UH+za75+pzBXVsOp+fJXyHcoWlMIYzWopP4RppP/wmEUmJ9gOMESdR72Zgbt1S W34V/0WPplElCz2+zPNBywkPM2nKz6P8om61tC1EdW5jYW4gTWFjLVZpY2FyIEdh cu1uIDxkdW5jYW5AbWFjLXZpY2FyLmNvbT6IYAQQEQIAGAUCOyVASQgLAwkIBwIB CgIZAQUbAwAAAAASCRDBKokdV5ub1AdlR1BHAAEB4dEAmwYpphCnjg3NgSNL12wQ BPixgrMOAKDDhzuQNqtkv+oqoW8du+w9Lp9G14hGBBARAgAGBQI7JUb1AAoJEM0e tqlmfkLRY7sAoIFRQuTnl9H/Jq+RiBSEv0BfStKGAJ9DSONVqtVA1z9yPmKVN0qp KR4nyrkCDQQ7JUBKEAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadW oxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeS Wc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0 iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF04 0zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQ ClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAgf/c1hY0bD1ZrwHo7Do 3JLZZIGvHfdnEicOA5tl7vaY78ZLLHFmrE+KpMVOlqNMP4dYpC69J8wZl0PWQllO s0Qj8w0vBUGGuDEtfaquarVomBZrlpFy/TnAe4hSvDaDbbShnT2BSFe4XdT+gNQI Bffp3XoJo8IwlXVNFShzYvVags/YGPMiQCAqupQa8gU2y+1d7dw1Tl1JDMXSykTG 4LPVbLrv9Ph/MtImmJZp2X943rtynzd6Brl/JjL02khKZ6IVxXblQmptAzSS2KVn MOHH56+Zh3o8c/uLw6qALWgdqMSiF+j2SbI78Bcn+/Tyy+dIlU7Qb/2pB64WnclV 4Eew3ohUBBgRAgAMBQI7JUBKBRsMAAAAABIJEMEqiR1Xm5vUB2VHUEcAAQFFEgCe OFpL+b95gvDaDv0a4sP/XHXZeP0AoJbThxHBTGgiKvB0nEs1FPYagsB2mQGiBENE 9tQRBACoPUvSF0C3Gyg93BzfjPoQzfIG7KcH+X1PMd7wsaF48B53t2V7px4MGw5W CwRy6S+bkz86Os3Ycxewm0a7/We/G0QmzmyOOD+f+L5s7Sr0rM1fmFVGZRKin1MX 0s7YpX40rSHouNSYXXX2vu+o7uJvkzI8/yf16Kac4b1nP3jT5wCguV6Gl1eWkOS9 DfwBUuIdwLObzjcD/2B9rPsuN4mhbjTAnPxz8fMKI2r+68UvEkicVIeKKauEp9JW defR5Yfv2koagqZC3F9550SjZw2r/Wmx0RhAA4mskuMXwIato39NK9+oXqgSVbyT CAb8SEgPlw60f/MctlIveRpTmSaSL37tj+UEHqOUSPoRk0VNXTML0prWpuVxA/9A YiJ62X/0CV3DksecKvr3hWdD3WZhoniRInYhkeokHJFP0V0WkWpHD1+brNgHE0ig jnbkTLWfVYDhppRccKjMiB4CxlwNoreOc2uRvO2cAzo5d0zCdJDfTNi1Ibspuf3r lnYFZ+Y2dhrP825FMvcS0dL2ZTVcOXPwDVVJRDB0l7QvV2lsbCdzIEdXIGNyeXB0 byB0ZXN0IGtleSA8d3N0ZXBoZW5zb25Ac3VzZS5kZT6IYAQTEQIAIAUCQ0T21AIb AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEHfQbNrv1xE4iJkAn3W4/fWpkgZf pit9du1vzKTaS+y6AJwLXPrzm5F9CDTX77AfCSPsvYOHYrkCDQRDRPbgEAgAveOV KYqnKMeC9mZEzpYPFjwxMe0qSdVAqxPvAOknzbJpDHm0O9uIf8F/IQZC+Hq/COQk 9zowMkrHIBs93a0SSX4pV174XjshxDoYxDiUf/XTTDec43a420M3K3ji3ySj/MyI gOr1zu1zCWN90nFIyhBbAUqWwiEO4tHtI96pMko6RvmMZb0gsC5ERMTd5iXfvEPC 437tNyuVokeZmZAPZ2QLJoms3rt1sRujF4vZeDORZXwrhUXGtscopNgg3C39Asw2 eFS7waeblUdQbtH6iz3ofD+qz2PNc2wcnY5q6aeZTyB0USShG7PsQATLDhFwkeDP qp8g5oI+JmvPgqyAYwADBQgApLDng/rWmEKEqaUEG5sgG2fqSe7Q8tSXD/OyjXGv zjkurCe+gOUiWqUfPEtYRGBXGvE8VqYGveQZVjqiNxJ6l6tK8x4GKxMxC4hMFFTo QWoBhEw1Jy5wvOY8KoqSLnDERjXFqqTQsDEnyFjMGBl4K2XWjOYMBmSqkaDJydtv unqgH0yULu3ouxY7wk3ZKovDGmtt4i4MrthmYXq9W2tM1LutXh7PChJf4DVIo/0x SghvMQvJIELAPoIIp8h4V07sjPdvGg+n4nSAhw67KLHCR/TEqgTULH5w83Aopwbr yDnBKBXFh6zx3ArZu09YM19xW5J1ju4ureQG6jbly5Vmn4hIBBgRAgAJBQJDRPbg AhsMAAoJEHfQbNrv1xE4qNsAn2soSMFX3ZErJ4Uwwk2pg7dvYlZ0AJUYWEKOTfAc 5kHox/B8rV0xDu90mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3y EKeueNWc+z/0Kvff4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0P FPboMvKx0FXl/A0dM+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xoc QSVCFxcwvwCglVcOQliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/y E/vdvpN6lF0tmFrKXBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqI TuZC4CWxJa9GynBED3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBe GaPdNCcmfZ66rKUdG5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn 4zLUOf6aeBAoV6NMCC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqaj LfvkURHAeSsxXIoEmyW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF +rQoU3VTRSBQYWNrYWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMR AgAiBQJA2AY+AhsDBQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAK ypCfAJ9RuZ6ZSV7QW4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+I RgQQEQIABgUCOnBeUgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAe jACeOO1HIbActAevk5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9A n5vfiUUE1VQnt+T/EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2O gSEISZxbzdXGnqIlcT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzne OA9gTPSr+/fT3WeVnwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yry k23pQUPAgJENDEqeU6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN 8C1yPqZd5CvvznYvB6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJ t9IXSzyohEJB6XG5+D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ 8UUTmIT2iQf07tRUKJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/g O7fJEpD2hd2f+pMnOWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZ NZfDqnFDP6L12w3z3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271h hQBeRmmoGEKO2JRelGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5uc TXstZy7vYjL6vTP4l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g +9V3ORzw4LvO1pwRYJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbST M5LpC/U6sheLP+l0bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlG G6pqUN8QxGJYQnonl0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7 mfoGx6INQjf3HGQpMXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMW pO+M9bHp4d+puY0L1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zF bpeqPQUsDv9V7CAJ1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspn pgCfRbYwxT3iq+9l/PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuOmQGi BEYjZk4RBACjIOtNaPzvKlC32b8R5TDRB0/FQ0tsMtt5dLwuq2ZYlEbT1YLF110v ZEl5IQAq5ldvD7MdR/6fqdXTdxBeYzZjeIEYbHzg3rN/N/+MkcG4W8IK1H6eDAbL 05HlQ1ueTp0mjgoGLYKt1igQe8h5uA6gEE7dv0tG0NJx2w5Gs2GpmwCgiRius2ev 221Pa65IpR1gsYuXLOEEAKJ1Bvjm+BfHJirqoH7iPq5HlABwn+s9sUmf6bjCkfar /ySAsL0VUhHNCIoHUEZd2imA2ZA0kTBxB+BIX/HMRZzxPZEwYI8Q0UYsTVb/gnQt +mWaZs1/2teWR0wnUp+eO5MpOAO9QjFJTdIz0GegsfSOPCo55CUtktr3tJUKfZ3g A/9mZe+b1Evi1/Us+klnERRKR2jjWXxwuPN6UivJbfXIZjuVUNclAhEqstzpfnWJ 3LhPxj0zJvhp/MnqSTaI6DQbr0f+JvwP+5k/4gbnqm+xxOocyhiVT45zOPAyUYuG 4t0m+9G7Vx6LC9tMukbdfHaRym42yC2s04GW2isKfta1ZbQsWllwcCBUZXN0IEtl eSBQYWlyIDx6eXBwLWRldmVsQG9wZW5zdXNlLm9yZz6IYAQTEQIAIAUCRiNmTgIb IwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJvswrXdsDdWSVAAnjkR2laohb2Q 4WnxamdHYWSf8ULKAJ4jjfZsFq0vmgPsO/YHaKTJN5sAL7kBDQRGI2ZREAQAtoB5 TGT9K7NCv5D5dQw7jVHngnxp3NGTtAhwirYphBWaF2be3UJVTLbUFW14eMnrVW9P Kj/HNVLhQu0C6CaXtXy5LahIls+mFlSKwbiP74cFlNYcj69tzCnaFKgElQPHcMOc 31EgjySYcUIys421MxI++sugW+yHr5ByIsL6vfcAAwUEAILSwmLtD+Pwkues73DP PyWIM3MA0exO7QmZeFwnbpiZYuZQ3GiPGrbeZVqHWB72dhW8+5ugR9CVQSsLHC5w HMIQFU8RsiL06gZdIaJNgAr7ajhtUybP0WPVpXkzm5+VB8Che9m0Z0t2tK8Y0KVa pBcr3YDgx89F9VA0yny6q3WiiEkEGBECAAkFAkYjZlECGwwACgkQm+zCtd2wN1ap uACfUR+Daoo3N1fxxDa3A3t4OkAfpQgAn1UEvpQp+/4DnzSbEvwzLeoek3dzmQGi BEY/vAIRBAD2cxLY83P2G1h5TkkKYQYTLopgWQh7/7H5UK0cf62gLH7R6F7BwW4E qmLsm8eGE8kIOob5wCQU6pxpBMv+1UYoO1bohtx4L2JUY5ycJiq4u1CNyRuciR3y gsueMRkelkQ2hpNuKvmficOcoazvU3tZM6ITJjV/tQvYTQRGqwEfwwCgs0OY3q7e R8NwWekaj23t8TV7hjMEANS6QMgjsp5CdLglX02oeiCG82oEKLDOWoZ2ajD++naz SIflJE0DaZ0W26QXewh7IRzTomV98fJV6inQNanlk5/TNuAb1elXdaYFuNbnZ0yo OaTJx/mb88vm63Ur8FTyKdcN+dau8yzuNlJggj5yBcNg+/8ZOAm1ZkDMlg9uAhgD A/0RSjXu/YNmflePFxIKBCAJFJenz4dQUZeb5cuJv20eCqnKn5CFYFU6YYg3sYaE tZeultDXweRveGwe28E/vpLUa7p+aZq+XwtjI6U6W5VqvkCKIUsQqwVWRHin1/4D ABJ5rnU+yPeLXNH6jrMQ+jDG8RieI91/4n+gCX1nbwZQ/rQrWllwcCB0ZXN0Y2Fz ZSBrZXkgPHp5cHAtZGV2ZWxAb3BlbnN1c2Uub3JnPohgBBMRAgAgBQJGP7wCAhsD BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQvWHYm9mIIb7TJQCfTe4MwrmOlWDx WV3yZ6E4B9xQq0YAoIWvs4oYVzbaQzclStHai5kxuGn8uQINBEY/vAwQCAD4T11K PE7CzkqgGMaNP+yNQzfUDbd/SaEQ5Wce5q3VvmVBpYORxyWjS8QMc9ge8WxezAsj yTKsXl+u7e/QmMKspPzPhkVKyB6s5D8FhR1Pdo7bAi4xx+NLOu9DuuU+jqUkyHYl t8QF2zX98OOcCIuQc2hjk12dvfHKmUiDoUnfuQPxvYrFAWnesgUJMqZo7Td5Ly4I jfMJQlQ7A186BGU8bPWoV1QqUInVkNGNXLmglel/m+MTV05nT6+1KCBqCRUluHqD aCiFHOUOFVWvtirmPJZ/67J78NJpF7huzXvkQraatXyHnAyhwiwTZLq2jabMjQgG hV8QyKd4qniSBL+jAAMGCACfH4FGqrs9pGBURmSjZKlHAUdnGul0M2KuyJhv8ZBk ApUtPcMhZJco50pFpkqjfH7f3xXMRVDP5FpjaRt67abbezp/Dgs8+691OtAREDWb AzarNNR3FbB9fUebh1J2i4W7tfBcoKwKFWJCvqX2HGTzVy1k33vnuGCVwC/KiZ/C 6pc4DqUwCWNoZNd8hmFadJgx3CMlxSTllsaIyOXp8dMJ+FFsTmzONzZpFC9DDtpa UeEChCptjWwy5WkQFPe+FOLUH1BnGScQYwGlE8l+cFkE7hW8tyOwcx4sk1J/tDCe J1wE8we1LXMdIiD5ugf3Jej1/98o+hQTHjfkwGqCGWJViEkEGBECAAkFAkY/vAwC GwwACgkQvWHYm9mIIb5O9wCfeI0Ro1UCK/CVT1/BH9NNB0TyYzAAmwdQFE6IaVSt jbDRYEnTHQOGsVy9mQGiBER0ULcRBADZvvVUsUUSjMyQ2fUt8Uu4eGJuPbMhEtR/ vF7pzF/8u9Br7kh6WASBZ02dMeNoqFzPTU7zv6PiP93iOLwy2MQNOSBLkS+MscR6 fzS6ZL81mNr+DwgOF/rLZ4tucAsBY9Z3lgRx0mWhl+XunVPXHhkR9H9Rig4wOrrz wBsYjjfXvwCguQ1PQ6+UQgL8STVqNaNnlVYzzUUD/336IftwogH/tKp6dV/FYP/V pLHXtwFee0vcCh5FwcKP0vYo9NIfB6CR2g0pyYsHBWbheMWXRVTlCaUVOhaycd+D XoyKl3FcxL61OD0F/feg2UEqH7n1csGV2MDGlqXsF5urKdPYcBRG56ynlWXs3W7D zu9JN8skhWSnXdtBFa3BBACo+CAXSzLJnFrG7kg8AYT+0k+kTS/UydwAr57QSLUc /blXR6seNd+TM4Kwj4Ij2pNL/LpZyzVrDS9BWNZHq3bQnERPrfXpK5XWX0quZn8z g1ImFwxmJduHKmtyyxNjjPR1SUFzD1EXpPfCYgRL6kU4OflbgGoL2YpmgHO6LQ/O GrQyb3BlblNVU0UgQnVpbGQgU2VydmljZSA8YnVpbGRzZXJ2aWNlQG9wZW5zdXNl Lm9yZz6IZAQTEQIAJAUCRHRQtwIbAwUJA8JnAAYLCQgHAwIDFQIDAxYCAQIeAQIX gAAKCRA7MBG3a51lI/ewAJkB4psDm44RckrzyMyjXEKBYXYKXQCcCLBW95t7ooAI yqfsg94RICpbr50= =NAat -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/PublicKey/susekey.asc000066400000000000000000000041751334444677500224530ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.2 (GNU/Linux) mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff 4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 +D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z 3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L 1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ 1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l /PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO =pJli -----END PGP PUBLIC KEY BLOCK----- libzypp-17.7.0/tests/zypp/data/RepoManager/000077500000000000000000000000001334444677500205755ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/plugin-service-lib-1/000077500000000000000000000000001334444677500244335ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/plugin-service-lib-1/services/000077500000000000000000000000001334444677500262565ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/plugin-service-lib-1/services/service000077500000000000000000000002441334444677500276440ustar00rootroot00000000000000#!/bin/bash echo " [repo1] name=Repository1 baseurl=http://somehost.com/repo1 type=rpmmd [repo12] name=Repository2 baseurl=http://somehost.com/repo2 type=rpmmd " libzypp-17.7.0/tests/zypp/data/RepoManager/plugin-service-lib-2/000077500000000000000000000000001334444677500244345ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/plugin-service-lib-2/services/000077500000000000000000000000001334444677500262575ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/plugin-service-lib-2/services/service000077500000000000000000000001321334444677500276410ustar00rootroot00000000000000#!/bin/sh echo " [repo3] name=Repository3 baseurl=http://somehost.com/repo3 type=rpmmd " libzypp-17.7.0/tests/zypp/data/RepoManager/proprietary.repo000066400000000000000000000005001334444677500240370ustar00rootroot00000000000000[macromedia] name=Macromedia for i386 Linux baseurl=http://macromedia.rediris.es/rpm/ enabled=1 gpgcheck=1 gpgkey=http://macromedia.mplug.org/FEDORA-GPG-KEY [office] name=Microsoft Office for Linux baseurl=http://www.microsoft.com/linux/office enabled=1 gpgcheck=1 gpgkey=http://www.microsoft.com/~sballmer/gpgkey.txt libzypp-17.7.0/tests/zypp/data/RepoManager/repo/000077500000000000000000000000001334444677500215425ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/repo/repoindex.xml000066400000000000000000000015511334444677500242630ustar00rootroot00000000000000 libzypp-17.7.0/tests/zypp/data/RepoManager/repos.d/000077500000000000000000000000001334444677500221475ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/repos.d/filesharing.repo000066400000000000000000000003431334444677500253310ustar00rootroot00000000000000[filesharing] name=Filesharing applications (SUSE_Factory) type=rpm-md baseurl=http://software.opensuse.org/download/filesharing/SUSE_Factory/ gpgcheck=1 gpgkey=http://software.opensuse.org/openSUSE-Build-Service.asc enabled=1 libzypp-17.7.0/tests/zypp/data/RepoManager/repos.d/home:dmacvicar.repo000066400000000000000000000003641334444677500257350ustar00rootroot00000000000000[home:dmacvicar] name=Duncan Mac-Vicar SUSE rpms (openSUSE_Factory) type=rpm-md baseurl=http://software.opensuse.org/download/home:/dmacvicar/openSUSE_Factory/ gpgcheck=1 gpgkey=http://software.opensuse.org/openSUSE-Build-Service.asc enabled=1 libzypp-17.7.0/tests/zypp/data/RepoManager/repos.d/proprietary.repo000066400000000000000000000001101334444677500254060ustar00rootroot00000000000000 [adobe] name=acrobat reader baseurl=http://www.adobe.com/reader/linux libzypp-17.7.0/tests/zypp/data/RepoManager/repos.d/ruby.repo000066400000000000000000000003761334444677500240250ustar00rootroot00000000000000[ruby] name=Ruby is an Interpreted Object-Oriented Scripting Language (openSUSE_Factory) type=rpm-md baseurl=http://software.opensuse.org/download/ruby/openSUSE_Factory/ gpgcheck=1 gpgkey=http://software.opensuse.org/openSUSE-Build-Service.asc enabled=1 libzypp-17.7.0/tests/zypp/data/RepoManager/second/000077500000000000000000000000001334444677500220505ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/second/repo/000077500000000000000000000000001334444677500230155ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/RepoManager/second/repo/repoindex.xml000066400000000000000000000011001334444677500255240ustar00rootroot00000000000000 libzypp-17.7.0/tests/zypp/data/Target/000077500000000000000000000000001334444677500176235ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Target/product.prod000066400000000000000000000022361334444677500221740ustar00rootroot00000000000000 Novell SUSE_SLES 10 0 i586 sles sle-10-i586 special_edition A43242OOO A cool distribution Einfach genial This is the coolest distribution on the world. Try it out and find it useful. Was soll man da sagen? Einfach toll! da de http://www.suse.com/relnotes/i386/SLE/SERVER/11/release-notes-sles.rpm http://foo af libzypp-17.7.0/tests/zypp/data/Vendor/000077500000000000000000000000001334444677500176325ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Vendor/vendors.d/000077500000000000000000000000001334444677500215345ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/Vendor/vendors.d/ati000066400000000000000000000000451334444677500222330ustar00rootroot00000000000000[main] vendors = ati,ati_new,ati_oldlibzypp-17.7.0/tests/zypp/data/Vendor/vendors.d/nvidia000066400000000000000000000000461334444677500227310ustar00rootroot00000000000000[main] vendors = nvidia,suse,old_suselibzypp-17.7.0/tests/zypp/data/Vendor/zypp1.conf000066400000000000000000000065051334444677500215720ustar00rootroot00000000000000## Configuration file for software management ## /etc/zypp/zypp.conf ## ## Boolean values are 0 1 yes no on off true false [main] ## ## Override the detected architecture ## ## Valid values: i586, i686, x86_64, ppc, ppc64, ia64, s390, s390x, .. ## Default value: Autodetected ## ## ** CAUTION: Only set if you know what you're doing ! ## ** Changing this needs a full refresh (incl. download) ## ** of all repository data. ## # arch = s390 ## ## Path where the repo metadata is downloaded and kept. ## ## Valid values: A directory ## Default value: /var/cache/zypp/raw ## ## Changing this needs a full refresh (incl. download) of all repository data ## # metadatadir = /var/cache/zypp/raw ## ## Path where the known repositories .repo files are kept ## ## Valid values: A directory ## Default value: /etc/zypp/repos.d ## ## Changing this invalidates all known repositories ## # reposdir = /etc/zypp/repos.d ## ## Path where the processed cache is kept (this is where zypp.db is located) ## ## Valid values: A directory ## Default value: /var/cache/zypp ## ## Changing this needs a full refresh (except download) of all repository data ## # cachedir = /var/cache/zypp ## ## Whether repository urls should be probed when added ## ## Valid values: boolean ## Default value: false ## ## If true, accessability of repositories is checked immediately (when added) ## (e.g. 'zypper ar' will check immediately) ## If false, accessability of repositories is checked when refreshed ## (e.g. 'zypper ar' will delay the check until the next refresh) ## # repo.add.probe = false ## ## Amount of time in minutes that must pass before another refresh. ## ## Valid values: Integer ## Default value: 10 ## ## If you have autorefresh enabled for a repository, it is checked for ## up-to-date metadata not more often than every ## minutes. If an automatic request for refresh comes before ## minutes passed since the last check, the request is ignored. ## ## A value of 0 means the repository will always be checked. To get the oposite ## effect, disable autorefresh for your repositories. ## ## This option has no effect for repositories with autorefresh disabled, nor for ## user-requested refresh. ## # repo.refresh.delay = 10 ## ## Whether to consider using a .patch.rpm when downloading a package ## ## Valid values: boolean ## Default value: true ## ## Using a patch rpm will decrease the download size for package updates ## since it does not contain all files of the package but only the changed ## ones. The .patch.rpm is ready to be installed immediately after download. ## There is no further processing needed, as it is for a .delta.rpm. ## # download.use_patchrpm = true ## ## Whether to consider using a .delta.rpm when downloading a package ## ## Valid values: boolean ## Default value: true ## ## Using a delta rpm will decrease the download size for package updates ## since it does not contain all files of the package but only the binary ## diff of changed ones. Recreating the rpm package on the local machine ## is an expensive operation (memory,CPU). If your network connection is ## not too slow, you benefit from disabling .delta.rpm. ## # download.use_deltarpm = true ## ## Defining directory for equivalent vendors ## ## Valid values: A directory ## Default value: /etc/zypp/vondors.d ## vendordir = data/Vendor/notExist libzypp-17.7.0/tests/zypp/data/Vendor/zypp2.conf.cmake000066400000000000000000000065611334444677500226540ustar00rootroot00000000000000## Configuration file for software management ## /etc/zypp/zypp.conf ## ## Boolean values are 0 1 yes no on off true false [main] ## ## Override the detected architecture ## ## Valid values: i586, i686, x86_64, ppc, ppc64, ia64, s390, s390x, .. ## Default value: Autodetected ## ## ** CAUTION: Only set if you know what you're doing ! ## ** Changing this needs a full refresh (incl. download) ## ** of all repository data. ## # arch = s390 ## ## Path where the repo metadata is downloaded and kept. ## ## Valid values: A directory ## Default value: /var/cache/zypp/raw ## ## Changing this needs a full refresh (incl. download) of all repository data ## # metadatadir = /var/cache/zypp/raw ## ## Path where the known repositories .repo files are kept ## ## Valid values: A directory ## Default value: /etc/zypp/repos.d ## ## Changing this invalidates all known repositories ## # reposdir = /etc/zypp/repos.d ## ## Path where the processed cache is kept (this is where zypp.db is located) ## ## Valid values: A directory ## Default value: /var/cache/zypp ## ## Changing this needs a full refresh (except download) of all repository data ## # cachedir = /var/cache/zypp ## ## Whether repository urls should be probed when added ## ## Valid values: boolean ## Default value: false ## ## If true, accessability of repositories is checked immediately (when added) ## (e.g. 'zypper ar' will check immediately) ## If false, accessability of repositories is checked when refreshed ## (e.g. 'zypper ar' will delay the check until the next refresh) ## # repo.add.probe = false ## ## Amount of time in minutes that must pass before another refresh. ## ## Valid values: Integer ## Default value: 10 ## ## If you have autorefresh enabled for a repository, it is checked for ## up-to-date metadata not more often than every ## minutes. If an automatic request for refresh comes before ## minutes passed since the last check, the request is ignored. ## ## A value of 0 means the repository will always be checked. To get the oposite ## effect, disable autorefresh for your repositories. ## ## This option has no effect for repositories with autorefresh disabled, nor for ## user-requested refresh. ## # repo.refresh.delay = 10 ## ## Whether to consider using a .patch.rpm when downloading a package ## ## Valid values: boolean ## Default value: true ## ## Using a patch rpm will decrease the download size for package updates ## since it does not contain all files of the package but only the changed ## ones. The .patch.rpm is ready to be installed immediately after download. ## There is no further processing needed, as it is for a .delta.rpm. ## # download.use_patchrpm = true ## ## Whether to consider using a .delta.rpm when downloading a package ## ## Valid values: boolean ## Default value: true ## ## Using a delta rpm will decrease the download size for package updates ## since it does not contain all files of the package but only the binary ## diff of changed ones. Recreating the rpm package on the local machine ## is an expensive operation (memory,CPU). If your network connection is ## not too slow, you benefit from disabling .delta.rpm. ## # download.use_deltarpm = true ## ## Defining directory for equivalent vendors ## ## Valid values: A directory ## Default value: /etc/zypp/vondors.d ## #vendordir = ./../../tests/zypp/data/Vendor/vendors.d vendordir = @VENDOR_D@ libzypp-17.7.0/tests/zypp/data/mediasetaccess/000077500000000000000000000000001334444677500213525ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/000077500000000000000000000000001334444677500222225ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/000077500000000000000000000000001334444677500226715ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/dir/000077500000000000000000000000001334444677500234475ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/dir/file1000066400000000000000000000000301334444677500243630ustar00rootroot00000000000000this is a file from dir libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/dir/file2000066400000000000000000000000561334444677500243740ustar00rootroot00000000000000Occifer! I'm not as think as you stoned I am! libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/dir/subdir/000077500000000000000000000000001334444677500247375ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/dir/subdir/file000066400000000000000000000000331334444677500255750ustar00rootroot00000000000000this is a file from subdir libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/dir/test-big.txt000066400000000000000000000157371334444677500257430ustar00rootroot00000000000000Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/test-big.txt000066400000000000000000000024411334444677500251510ustar00rootroot00000000000000 7135 818dcbb0bbb033aa8b8c9ddd269648d2 f69a3e53751eb3249c3c36c50290b8da edf0cf52765c9b5cfeddfd83b62f8517b119ca77 b0343a8ee06d97c9786b65bcb64c49fbb7e1d517159fac4633ba56f7a521fef0 202d21693dabe53ff5f2305d6b78844ffaa3b566b9644d61ca087cab752965b16d6a188def7a9463b5f17fdc50b3d105 caf260dd5420a6a6df6a558eac69a901cd3e43dbfd37b54e0fb176940f3e09c3f96c7faa22e505777106ebf056c471be7556c8cba80331d6efdb9e763e66190b 77fc06ff936163cfb6c1b0c68cb47a295a5bf8e3 2fcd624ba2ad1adb2ff23af58049b6f7b062754eadd031b1 011209ae 818dcbb0bbb033aa8b8c9ddd269648d2 edf0cf52765c9b5cfeddfd83b62f8517b119ca77 http://localhost:10002/dir/test-big.txt libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/test.txt000066400000000000000000000000131334444677500244030ustar00rootroot00000000000000this is cd1libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd1/x.media1000066400000000000000000000000001334444677500242100ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd2/000077500000000000000000000000001334444677500226725ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd2/test.txt000066400000000000000000000000131334444677500244040ustar00rootroot00000000000000this is cd2libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd2/x.mediabad000066400000000000000000000000501334444677500246040ustar00rootroot00000000000000.media2 would identify the cd2 correctlylibzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd3/000077500000000000000000000000001334444677500226735ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd3/test.txt000066400000000000000000000000131334444677500244050ustar00rootroot00000000000000this is cd3libzypp-17.7.0/tests/zypp/data/mediasetaccess/src1/cd3/x.media3000066400000000000000000000000001334444677500242140ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src2/000077500000000000000000000000001334444677500222235ustar00rootroot00000000000000libzypp-17.7.0/tests/zypp/data/mediasetaccess/src2/test.txt000066400000000000000000000000261334444677500237410ustar00rootroot00000000000000this is a single medialibzypp-17.7.0/tests/zypp/data/mediasetaccess/src2/x.media000066400000000000000000000000001334444677500234610ustar00rootroot00000000000000libzypp-17.7.0/tools/000077500000000000000000000000001334444677500144605ustar00rootroot00000000000000libzypp-17.7.0/tools/CMakeLists.txt000066400000000000000000000011221334444677500172140ustar00rootroot00000000000000## ############################################################ FILE( GLOB ALLCC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc" ) STRING( REPLACE ".cc" ";" APLLPROG ${ALLCC} ) FOREACH( loop_var ${APLLPROG} ) ADD_EXECUTABLE( ${loop_var} ${loop_var}.cc ) TARGET_LINK_LIBRARIES( ${loop_var} zypp ${Boost_PROGRAM_OPTIONS_LIBRARY} ) ENDFOREACH( loop_var ) ## ############################################################ INSTALL(TARGETS zypp-CheckAccessDeleted DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") INSTALL(TARGETS zypp-NameReqPrv DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") libzypp-17.7.0/tools/DumpSelectable.cc000066400000000000000000000111771334444677500176670ustar00rootroot00000000000000#define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST #include #include #include static std::string appname( "DumpSelectable" ); #define message cout using std::flush; int errexit( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } return exit_r; } int usage( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } cerr << "Usage: " << appname << " [--root ROOTDIR] [OPTIONS] NAME..." << endl; cerr << " Load all enabled repositories (no refresh) and search for" << endl; cerr << " Selectables names NAME" << endl; cerr << " --root Load repos from the system located below ROOTDIR. If ROOTDIR" << endl; cerr << " denotes a sover testcase, the testcase is loaded." << endl; cerr << " -v Verbose list solvables data." << endl; cerr << "" << endl; return exit_r; } void dumpPi( std::ostream & message, const PoolItem & pi ) { std::string indent(" "); message << indent << "--------------------------------------------------" << endl; message << indent << (pi->isSystem() ? "i " : "a ") << pi->satSolvable().asString() << endl; message << indent << pi->summary() << endl; if ( pi->isKind() ) { message << indent << pi->asKind()->changelog() << endl; } } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; appname = Pathname::basename( argv[0] ); --argc,++argv; Pathname sysRoot("/"); bool verbose = false; while ( argc && (*argv)[0] == '-' ) { if ( (*argv) == std::string("--root") ) { --argc,++argv; if ( ! argc ) return errexit("--root requires an argument."); if ( ! PathInfo( *argv ).isDir() ) return errexit("--root requires a directory."); sysRoot = *argv; } else if ( (*argv) == std::string("-v") ) { verbose = true; } --argc,++argv; } if ( ! argc ) { return usage(); } /////////////////////////////////////////////////////////////////// ZConfig::instance(); sat::Pool satpool( sat::Pool::instance() ); if ( TestSetup::isTestcase( sysRoot ) ) { message << str::form( "*** Load Testcase from '%s'", sysRoot.c_str() ) << endl; TestSetup test; test.loadTestcaseRepos( sysRoot ); } else if ( TestSetup::isTestSetup( sysRoot ) ) { message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl; TestSetup test( sysRoot, Arch_x86_64 ); test.loadRepos(); } else { // a system message << str::form( "*** Load system at '%s'", sysRoot.c_str() ) << endl; if ( true ) { message << "*** load target '" << Repository::systemRepoAlias() << "'\t" << endl; getZYpp()->initializeTarget( sysRoot ); getZYpp()->target()->load(); message << satpool.systemRepo() << endl; } if ( true ) { RepoManager repoManager( sysRoot ); RepoInfoList repos = repoManager.knownRepositories(); for_( it, repos.begin(), repos.end() ) { RepoInfo & nrepo( *it ); if ( ! nrepo.enabled() ) continue; if ( ! repoManager.isCached( nrepo ) ) { message << str::form( "*** omit uncached repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } message << str::form( "*** load repo '%s'\t", nrepo.name().c_str() ) << flush; try { repoManager.loadFromCache( nrepo ); message << satpool.reposFind( nrepo.alias() ) << endl; } catch ( const Exception & exp ) { message << exp.asString() + "\n" + exp.historyAsString() << endl; message << str::form( "*** omit broken repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } } } } /////////////////////////////////////////////////////////////////// for ( ; argc; --argc,++argv ) { ui::Selectable::Ptr sel( ui::Selectable::get( IdString( *argv ) ) ); message << dump( sel ) << endl; if ( verbose ) { for_( it, sel->installedBegin(), sel->installedEnd() ) dumpPi( message, *it ); for_( it, sel->availableBegin(), sel->availableEnd() ) dumpPi( message, *it ); } } INT << "===[END]============================================" << endl << endl; return 0; } libzypp-17.7.0/tools/ProvideSignedDirectory.cc000066400000000000000000000031761334444677500214250ustar00rootroot00000000000000#include #include #include #include #include #include #include #include using std::endl; int main ( int argc, const char * argv[] ) try { --argc; ++argv; //zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; /////////////////////////////////////////////////////////////////// zypp::Url oRemoteUrl( argv[0] ); //"http://download.opensuse.org/distribution/openSUSE-current/repo/oss" ); std::string oRemoteDir( argv[1] ); //"/suse/setup/slide" ); const bool oRecursive( true ); zypp::Pathname oLocalDir( "" ); zypp::scoped_ptr tmpdir; if ( oLocalDir.empty() ) { tmpdir.reset( new zypp::filesystem::TmpDir ); oLocalDir = tmpdir->path(); } zypp::Fetcher fetcher; fetcher.setOptions( zypp::Fetcher::AutoAddIndexes ); fetcher.enqueueDir( zypp::OnMediaLocation( oRemoteDir ), oRecursive ); zypp::KeyRing::setDefaultAccept( zypp::KeyRing::TRUST_KEY_TEMPORARILY ); zypp::MediaSetAccess media( oRemoteUrl, "/" ); fetcher.start( oLocalDir, media ); zypp::ExternalProgram( "find "+(oLocalDir/oRemoteDir).asString()+" -ls" ) >> std::cout; /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; zypp::base::LogControl::instance().logNothing(); return 0; } catch ( const zypp::Exception & exp ) { INT << exp << endl << exp.historyAsString(); } catch (...) {} libzypp-17.7.0/tools/ToolScanRepos.cc000066400000000000000000000061501334444677500175240ustar00rootroot00000000000000#define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST static std::string appname( "ToolScanRepos" ); void message( const std::string & msg_r ) { cerr << "*** " << msg_r << endl; } int usage( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl; message( msg_r ); cerr << endl; } cerr << "Usage: " << appname << "[OPTIONS] URL..." << endl; cerr << " Load repos from URL to test system below /tmp/" << appname << "." << endl; cerr << " -r ROOT Use /tmp/ROOT as location of test system (default: " << appname << ")." << endl; cerr << " -a ARCH Use ARCH as test system architecture (default: x86_64)." << endl; cerr << " -c Clear an existing test system (default)." << endl; cerr << " -n Do not clear an existing test system but reuse it." << endl; return exit_r; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; appname = Pathname::basename( argv[0] ); --argc; ++argv; if ( ! argc ) { return usage(); } /////////////////////////////////////////////////////////////////// Pathname mtmp( "/tmp" ); Pathname mroot( mtmp/appname ); Arch march( Arch_x86_64 ); bool oClearRoot = true; std::vector urls; while ( argc ) { if ( argv[0] == std::string("-c") ) { oClearRoot = true; } else if ( argv[0] == std::string("-n") ) { oClearRoot = false; } else if ( argv[0] == std::string("-r") || argv[0] == std::string("--root")) { --argc; ++argv; if ( ! argc ) return usage( "Missing arg to -r ROOT", 101 ); if ( *(argv[0]) ) // empty mroot = mtmp/argv[0]; else mroot = mtmp/appname; } else if ( argv[0] == std::string("-a") ) { --argc; ++argv; if ( ! argc ) return usage( "Missing arg to -a ARCH", 101 ); if ( *(argv[0]) ) // empty march = Arch( argv[0] ); else march = Arch_x86_64; } else { urls.push_back( argv[0] ); } --argc; ++argv; } if ( urls.empty() ) { return usage( "Missing URLs", 102 ); } /////////////////////////////////////////////////////////////////// if ( oClearRoot ) { message( "Clear test system at " + mroot.asString() ); filesystem::recursive_rmdir( mroot ); } else { message( "Use test system at " + mroot.asString() ); } filesystem::assert_dir( mroot ); message( "Use archiecture " + march.asString() ); TestSetup test( mroot, march ); int ret = 0; for_( it, urls.begin(), urls.end() ) { message( "Setup " + *it ); try { test.loadRepo( *it ); } catch ( const Exception & exp ) { message( exp.asString() + "\n" + exp.historyAsString() ); ++ret; } } INT << "===[END]============================================" << endl << endl; return ret; }libzypp-17.7.0/tools/migrate-sources/000077500000000000000000000000001334444677500175715ustar00rootroot00000000000000libzypp-17.7.0/tools/migrate-sources/CMakeLists.txt000066400000000000000000000004411334444677500223300ustar00rootroot00000000000000SET( migrate_SRCS migrate-sources.cc ) ADD_EXECUTABLE( zypp-migrate-sources ${migrate_SRCS} ) TARGET_LINK_LIBRARIES( zypp-migrate-sources zypp ) TARGET_LINK_LIBRARIES( zypp-migrate-sources xml2 ) INSTALL(TARGETS zypp-migrate-sources RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/zypp )libzypp-17.7.0/tools/migrate-sources/migrate-sources.cc000066400000000000000000000107701334444677500232160ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ #include #include #include "zypp/base/Logger.h" #include "zypp/ZYpp.h" #include "zypp/zypp_detail/ZYppReadOnlyHack.h" #include "zypp/ZYppFactory.h" #include "zypp/PathInfo.h" #include "zypp/RepoManager.h" #include "zypp/cache/CacheFSCK.h" #include "zypp/parser/xmlstore/XMLSourceCacheParser.h" #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zypp-cache" using namespace std; using namespace zypp; struct Options { Options() : fake(false) , root("/") , sources_dir("/var/lib/zypp/db/sources") {} bool fake; Pathname root; Pathname sources_dir; }; static void clear_cache( const Options &opt ) { Pathname path = opt.root + "/var/lib/zypp/cache"; if ( PathInfo(path).isDir() ) { cout << "Deleting old cache directory (" << path << ")." << endl; if ( ! opt.fake ) { if ( filesystem::recursive_rmdir(path) != 0 ) ERR << "Error removing cache directory" << path << endl; } } path = opt.root + "/var/lib/zypp/db"; if ( PathInfo(path).isDir() ) { cout << "Deleting old db directory (" << path << ")." << endl; if ( ! opt.fake ) { if ( filesystem::recursive_rmdir(path) != 0 ) ERR << "Error removing db directory" << path << endl; } } } static void migrate_sources( const Options &opt ) { if ( getenv("YAST_IS_RUNNING") && (string(getenv("YAST_IS_RUNNING")) == "instsys" )) { MIL << "YaST is running in instsys. Not migrating old sources. YaST will do it." << endl; return; } else { MIL << "YaST not running in instsys." << endl; } zypp::zypp_readonly_hack::IWantIt(); ZYpp::Ptr Z = zypp::getZYpp(); RepoManager manager; Pathname source_p = opt.root + opt.sources_dir; if ( ! PathInfo(source_p).isExist() ) { cout << "No sources to migrate." << endl; clear_cache( opt ); return; } RepoInfoList sources; DBG << "Reading source cache in " << source_p << std::endl; list entries; if ( filesystem::readdir( entries, source_p, false ) != 0 ) ZYPP_THROW(Exception("failed to read directory")); int i=0; for ( list::const_iterator it = entries.begin(); it != entries.end(); ++it ) { MIL << "Processing " << *it << endl; std::ifstream anIstream((*it).c_str()); zypp::parser::xmlstore::XMLSourceCacheParser iter(anIstream, ""); for (; ! iter.atEnd(); ++iter) { RepoInfo data = **iter; string alias = "migrated_" + str::numstring(i); try { data.setAlias(alias); data.setEnabled(false); cout << "Migrating repo: " << endl << data << endl; if ( ! opt.fake ) { manager.addRepository(data); } cout << "Deleting old source: " << *it << endl; if ( ! opt.fake ) { if ( filesystem::unlink(*it) != 0 ) ERR << "Error removing source " << *it << endl; // delete old file } cout << "saved as " << alias << endl; ++i; } catch ( const Exception &e ) { cout << "Error adding repository: " << e.msg() << endl << data << endl; } } } cout << i << " sources migrated."<< endl; // reread entries if ( filesystem::readdir( entries, source_p, false ) != 0 ) ZYPP_THROW(Exception("failed to read directory")); if ( entries.size() == 0 ) { cout << "all sources migrated. deleting old source directory"<< endl; if ( ! opt.fake ) { if ( filesystem::recursive_rmdir(source_p) != 0 ) ERR << "Error removing source directory" << source_p << endl; clear_cache( opt ); } } else { cout << "Not all sources migrated. leaving old source directory"<< endl; } } void usage(int argc, char **argv) { cout << argv[0] << ". Migrates old sources to 10.3 repositories." << endl; cout << "Usage:" << endl; cout << argv[0] << " [--root root-path] [--fake] [--sp sources-path]" << endl; } //----------------------------------------------------------------------------- int main (int argc, char **argv) { MIL << "-------------------------------------" << endl; Options opt; int i; for ( i=1; i < argc; ++i ) { if ( string(argv[i]) == "--help" ) { usage(argc, argv); return 0; } if ( string(argv[i]) == "--fake" ) opt.fake = true; if ( string(argv[i]) == "--root" ) opt.root = argv[++i]; if ( string(argv[i]) == "--sp" ) opt.sources_dir = argv[++i]; } migrate_sources(opt); return 0; } libzypp-17.7.0/tools/patch_find_bug.cc000066400000000000000000000056101334444677500177250ustar00rootroot00000000000000#define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/PoolQuery.h" using namespace zypp; using std::flush; static std::string appname( "patch_find_bug" ); int errexit( const std::string & msg_r = std::string(), int exit_r = 101 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } return exit_r; } int usage( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } cerr << "Usage: " << appname << "[OPTIONS] bugnumber..." << endl; cerr << " Find patches refering to bugnumber (substring)." << endl; cerr << " --root SYSROOT: Load system located below directory SYSROOT" << endl; return exit_r; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; appname = Pathname::basename( argv[0] ); --argc; ++argv; if ( ! argc ) { return usage(); } /////////////////////////////////////////////////////////////////// ZConfig::instance(); Pathname sysRoot("/"); if ( (*argv) == std::string("--root") ) { --argc,++argv; if ( ! argc ) return errexit("--root requires an argument."); if ( ! PathInfo( *argv ).isDir() ) return errexit("--root requires a directory."); sysRoot = *argv; --argc,++argv; } TestSetup::LoadSystemAt( sysRoot ); for ( ; argc; --argc,++argv ) { PoolQuery q; q.setMatchSubstring(); q.setCaseSensitive( false ); q.addAttribute( sat::SolvAttr::updateReferenceId, *argv ); if ( q.empty() ) { cout << "BUG REFERENCE '" << *argv << "': No match found." << endl; } else { cout << "BUG REFERENCE '" << *argv << endl; for_( it , q.begin(), q.end() ) { // print the solvable that has a match: cout << " - " << *it << endl; if ( true ) { // Print details about each match in that solvable: for_( d, it.matchesBegin(), it.matchesEnd() ) { // directly access specific attribute like "subFind(updateReferenceType)": cout << " - " << d->inSolvAttr() << "\t\"" << d->asString() << "\" has type \"" << d->subFind( sat::SolvAttr::updateReferenceType ).asString() << "\"" << endl; // list the whole updateReference structure: for_( s, d->subBegin(), d->subEnd() ) { cout << " -" << s.inSolvAttr() << "\t\"" << s.asString() << "\"" << endl; } } } } } } /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; return 0; } libzypp-17.7.0/tools/percent-encode.cc000066400000000000000000000023101334444677500176560ustar00rootroot00000000000000#include #include #include static std::string doEncode( const std::string & str_r ) { return zypp::url::encode( str_r ); } static std::string doDecode( const std::string & str_r ) { return zypp::url::decode( str_r ); } int main( int argc, const char * argv[] ) { bool encode( true ); --argc,++argv; if ( argc ) { if ( *argv == std::string( "-d" ) || *argv == std::string( "--decode" ) ) encode = false; else if ( *argv == std::string( "-h" ) || *argv == std::string( "--help" ) ) { std::cout << "Usage: percent-encode [OPTION]" << std::endl; std::cout << "Read lines from stdin and write them percent encoded to stdout." << std::endl; std::cout << "" << std::endl; std::cout << "Option:" << std::endl; std::cout << " -d, --decode Decode lines read from stdin instead of encoding them." << std::endl; std::cout << " -h --help Print this message." << std::endl; return 0; } } std::string (*coder)( const std::string & str_r ) = encode ? doEncode: doDecode; for( zypp::iostr::EachLine in( std::cin ); in; in.next() ) { std::cout << coder( *in ) << std::endl; } return 0; } libzypp-17.7.0/tools/zypp-CheckAccessDeleted.cc000066400000000000000000000116751334444677500214270ustar00rootroot00000000000000#include #include #include #include #include #include #include /** Collect max string size. */ struct TableCol { TableCol( size_t size_r = 0 ) : size( size_r ) {} TableCol( const std::string & header_r ) : header( header_r ), size( header_r.size() ) {} void operator()( const std::string & val_r ) { if ( val_r.size() > size ) size = val_r.size(); } std::string header; size_t size; }; /** Scan to determine column sizes, then print. */ struct ProcInfoTable { ProcInfoTable() : pid ( "PID" ) , ppid ( "PPID" ) , puid ( "UID" ) , login ( "LOGIN" ) , command ( "COMMAND" ) , service ( "SERVICE" ) , files ( "FILES" ) {} void scan( const zypp::CheckAccessDeleted::ProcInfo & val_r ) { pid( val_r.pid ); ppid( val_r.ppid ); puid( val_r.puid ); login( val_r.login ); command( val_r.command ); service( val_r.service() ); } void printHeader() const { printRow( pid.header, ppid.header, puid.header, login.header, command.header, service.header, files.header ); } void print( const zypp::CheckAccessDeleted::ProcInfo & val_r ) const { printRow( val_r.pid, val_r.ppid, val_r.puid, val_r.login, val_r.command, val_r.service(), zypp::str::join( val_r.files, ", " ) ); } void printRow( const std::string & pid_r, const std::string & ppid_r, const std::string & puid_r, const std::string & login_r, const std::string & command_r, const std::string & service_r, const std::string & files_r ) const { printf( "%*s %*s %*s %-*s %-*s %-*s %-s\n", (int)pid.size, pid_r.c_str(), (int)ppid.size, ppid_r.c_str(), (int)puid.size, puid_r.c_str(), (int)login.size, login_r.c_str(), (int)command.size, command_r.c_str(), (int)service.size, (service_r.empty() ? " -" : service_r.c_str()), files_r.c_str() ); } TableCol pid; TableCol ppid; TableCol puid; TableCol login; TableCol command; TableCol service; TableCol files; }; void usage ( const std::string &appname ) { std::cout << "Usage: " << appname << " [--help] [--debugFile ] [--zypper]" << std::endl; std::cout << "List information about all running processe" << std::endl; std::cout << "which access deleted executables or libraries." << std::endl; std::cout << std::endl; std::cout << "GLOBALOPTS:" << std::endl; std::cout << " --debugFile Use information from instead" << std::endl; std::cout << " of inspecting the host system." << std::endl; std::cout << " --zypper Disable verbose checking like zypper does." << std::endl; std::cout << std::endl; std::cout << "TABLEHEADERS:" << std::endl; std::cout << " PID " << "process ID" << std::endl; std::cout << " PPID " << "parent process ID" << std::endl; std::cout << " UID " << "process user ID" << std::endl; std::cout << " LOGIN " << "process login name" << std::endl; std::cout << " COMMAND " << "process command name" << std::endl; std::cout << " SERVICE " << "/etc/init.d/ script that might be used to restart the command (guessed)" << std::endl; std::cout << " FILES " << "list of deleted executables or libraries accessed" << std::endl; } int main( int argc, char * argv[] ) { std::string progname( zypp::Pathname::basename( argv[0] ) ); std::string debugInputFile; bool verbose = true; argv++; argc--; while( argc > 0 ) { if ( strcmp( argv[0], "--help" ) == 0 ) { usage( progname ); return 0; } else if ( strcmp( argv[0], "--debugFile" ) == 0 ) { if ( argc < 2 ) { std::cerr << progname << ": debugFile requires a argument" << std::endl; return 1; } argv++; argc--; debugInputFile = argv[0]; } else if ( strcmp( argv[0], "--zypper" ) == 0 ) { verbose = false; } else { std::cerr << progname << ": unexpected argument '" << argv[0] << "'" << std::endl; std::cerr << "Try `" << progname << " --help' for more information." << std::endl; return 1; } argv++; argc--; } zypp::CheckAccessDeleted checker(false); // wait for explicit call to check() try { if ( debugInputFile.empty() ) checker.check( verbose ); else checker.check( debugInputFile, verbose ); } catch( const zypp::Exception & err ) { std::cerr << err << std::endl << err.historyAsString(); return 2; } ProcInfoTable table; for_( it, checker.begin(), checker.end() ) table.scan( *it ); table.printHeader(); for_( it, checker.begin(), checker.end() ) table.print( *it ); return 0; } libzypp-17.7.0/tools/zypp-NameReqPrv.cc000066400000000000000000000270531334444677500200160ustar00rootroot00000000000000#define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST #include #include #include #include static std::string appname( "NameReqPrv" ); #define message cout using std::flush; int errexit( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } return exit_r; } int usage( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } cerr << "Usage: " << appname << " [--root ROOTDIR] [OPTIONS] NAME... [[OPTIONS] NAME...]..." << endl; cerr << " Load all enabled repositories (no refresh) and search for" << endl; cerr << " occurrences of NAME (regex or -x) in package names or dependencies" << endl; cerr << " --root Load repos from the system located below ROOTDIR. If ROOTDIR" << endl; cerr << " denotes a sover testcase, the testcase is loaded." << endl; cerr << " --installed Process installed packages only." << endl; cerr << " -i/-I turn on/off case insensitive search (default on)" << endl; cerr << " -n/-N turn on/off looking for names (default on)" << endl; cerr << " -p/-P turn on/off looking for provides (default off)" << endl; cerr << " -r/-R turn on/off looking for requires (default off)" << endl; cerr << " -c/-C turn on/off looking for conflicts (default off)" << endl; cerr << " -o/-O turn on/off looking for obsoletes (default off)" << endl; cerr << " -m/-M turn on/off looking for recommends (default off)" << endl; cerr << " -s/-S turn on/off looking for supplements (default off)" << endl; cerr << " -e/-E turn on/off looking for enhan./sugg.(default off)" << endl; cerr << " -a short for -n -p -r" << endl; cerr << " -A short for -n -P -R" << endl; cerr << " -x do exact matching (glob) rather than regex (substring)" << endl; cerr << " -D dump dependencies of " << endl; cerr << "" << endl; return exit_r; } void tableOut( const std::string & s1 = std::string(), const std::string & s2 = std::string(), const std::string & s3 = std::string(), const std::string & s4 = std::string(), const std::string & s5 = std::string() ) { message << " "; #define TABEL(N) static unsigned w##N = 0; if ( ! s##N.empty() ) w##N = std::max( w##N, unsigned(s##N.size()) ); message << str::form( " %-*s ", w##N, s##N.c_str() ) #define TABER(N) static unsigned w##N = 0; if ( ! s##N.empty() ) w##N = std::max( w##N, unsigned(s##N.size()) ); message << str::form( " %*s ", w##N, s##N.c_str() ) TABER( 1 ); TABEL( 2 ); TABEL( 3 ); TABEL( 4 ); TABEL( 5 ); #undef TABEL message << endl; } struct PQSort { // std::less semantic bool operator()( const PoolQuery::const_iterator & lhs, const PoolQuery::const_iterator & rhs ) const { { bool l = lhs->isSystem(); bool r = rhs->isSystem(); if ( l != r ) return r; } { std::string l( lhs->ident().asString() ); std::string r( rhs->ident().asString() ); if ( l != r ) return l < r; } return avo( PoolItem(*lhs), PoolItem(*rhs) ); return lhs->id() > rhs->id(); } ui::SelectableTraits::AVOrder avo; }; /////////////////////////////////////////////////////////////////// void dDump( const std::string & spec_r ) { message << "DUMP " << spec_r << " {"; sat::WhatProvides q( Capability::guessPackageSpec( spec_r ) ); if ( q.empty() ) { message << "}" << endl; return; } for ( const auto & el : q ) { message << endl << "==============================" << endl << dump(el); if ( isKind(el) ) { message << endl << "REPLACES: " << make(el)->replacedProducts(); } else if ( isKind(el) ) { message << endl << "CONTENT: " << make(el)->contents(); } } message << endl << "}" << endl; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; appname = Pathname::basename( argv[0] ); --argc,++argv; if ( ! argc ) { return usage(); } /////////////////////////////////////////////////////////////////// ZConfig::instance(); Pathname sysRoot("/"); sat::Pool satpool( sat::Pool::instance() ); if ( argc && (*argv) == std::string("--root") ) { --argc,++argv; if ( ! argc ) return errexit("--root requires an argument."); if ( ! PathInfo( *argv ).isDir() ) return errexit("--root requires a directory."); sysRoot = *argv; --argc,++argv; } bool onlyInstalled( false ); if ( argc && (*argv) == std::string("--installed") ) { --argc,++argv; onlyInstalled = true; } if ( TestSetup::isTestcase( sysRoot ) ) { message << str::form( "*** Load Testcase from '%s'", sysRoot.c_str() ) << endl; TestSetup test; test.loadTestcaseRepos( sysRoot ); dumpRange( message, satpool.reposBegin(), satpool.reposEnd() ) << endl; } else if ( TestSetup::isTestSetup( sysRoot ) ) { message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl; const char * astr = getenv( "ZYPP_TESTSUITE_FAKE_ARCH" ); if ( !astr || !*astr ) astr = getenv( "ZYPP_ARCH" ); if ( !astr || !*astr ) astr = "x86_64"; TestSetup test( sysRoot, Arch( astr ) ); test.loadRepos(); dumpRange( message, satpool.reposBegin(), satpool.reposEnd() ) << endl; } else { // a system message << str::form( "*** Load system at '%s'", sysRoot.c_str() ) << endl; if ( true ) { message << "*** load target '" << Repository::systemRepoAlias() << "'\t" << endl; getZYpp()->initializeTarget( sysRoot ); getZYpp()->target()->load(); message << satpool.systemRepo() << endl; } if ( !onlyInstalled ) { RepoManager repoManager( sysRoot ); RepoInfoList repos = repoManager.knownRepositories(); for_( it, repos.begin(), repos.end() ) { RepoInfo & nrepo( *it ); if ( ! nrepo.enabled() ) continue; if ( ! repoManager.isCached( nrepo ) ) { message << str::form( "*** omit uncached repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } message << str::form( "*** load repo '%s'\t", nrepo.name().c_str() ) << flush; try { repoManager.loadFromCache( nrepo ); message << satpool.reposFind( nrepo.alias() ) << endl; } catch ( const Exception & exp ) { message << exp.asString() + "\n" + exp.historyAsString() << endl; message << str::form( "*** omit broken repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } } } } /////////////////////////////////////////////////////////////////// bool ignorecase ( true ); bool matechexact ( false ); bool withSrcPackages ( false ); bool names ( true ); bool provides ( false ); bool requires ( false ); bool conflicts ( false ); bool obsoletes ( false ); bool recommends ( false ); bool supplements ( false ); bool enhacements ( false ); for ( ; argc; --argc,++argv ) { if ( (*argv)[0] == '-' ) { switch ( (*argv)[1] ) { case 'a': names = true, requires = provides = true; break; case 'A': names = true, requires = provides = false; break; case 'D': if ( argc > 1 ) { --argc,++argv; dDump( *argv ); } else return errexit("-D requires an argument."); break; case 'i': ignorecase = true; break; case 'I': ignorecase = false; break; case 'x': matechexact = true; break; case 'n': names = true; break; case 'N': names = false; break; case 'r': requires = true; break; case 'R': requires = false; break; case 'p': provides = true; break; case 'P': provides = false; break; case 'c': conflicts = true; break; case 'C': conflicts = false; break; case 'o': obsoletes = true; break; case 'O': obsoletes = false; break; case 'm': recommends = true; break; case 'M': recommends = false; break; case 's': supplements = true; break; case 'S': supplements = false; break; case 'e': enhacements = true; break; case 'E': enhacements = false; break; } continue; } PoolQuery q; if ( onlyInstalled ) q.setInstalledOnly(); std::string qstr( *argv ); if ( *argv == ResKind::product ) { q.addKind( ResKind::product ); } else if ( *argv == ResKind::patch ) { q.addKind( ResKind::patch ); } else if ( *argv == ResKind::pattern ) { q.addKind( ResKind::pattern ); } else { sat::Solvable::SplitIdent ident( qstr ); if ( ident.kind() != ResKind::package ) { q.addKind( ident.kind() ); q.addString( ident.name().asString() ); } else q.addString( qstr ); if ( matechexact ) q.setMatchGlob(); else q.setMatchRegex(); q.setCaseSensitive( ! ignorecase ); if ( names ) q.addAttribute( sat::SolvAttr::name ); if ( provides ) { q.addDependency( sat::SolvAttr::provides ); q.addDependency( sat::SolvAttr::provides, Capability(qstr) ); } if ( requires ) { q.addDependency( sat::SolvAttr::requires ); q.addDependency( sat::SolvAttr::requires, Capability(qstr) ); } if ( conflicts ) { q.addDependency( sat::SolvAttr::conflicts ); q.addDependency( sat::SolvAttr::conflicts, Capability(qstr) ); } if ( obsoletes ) { q.addDependency( sat::SolvAttr::obsoletes ); q.addDependency( sat::SolvAttr::obsoletes, Capability(qstr) ); } if ( recommends ) { q.addDependency( sat::SolvAttr::recommends ); q.addDependency( sat::SolvAttr::recommends, Capability(qstr) ); } if ( supplements ) { q.addDependency( sat::SolvAttr::supplements ); q.addDependency( sat::SolvAttr::supplements, Capability(qstr) ); } if ( enhacements ) { q.addDependency( sat::SolvAttr::enhances ); q.addDependency( sat::SolvAttr::enhances, Capability(qstr) ); q.addDependency( sat::SolvAttr::suggests ); q.addDependency( sat::SolvAttr::suggests, Capability(qstr) ); } } message << *argv << " [" << (ignorecase?'i':'_') << (names?'n':'_') << (requires?'r':'_') << (provides?'p':'_') << (conflicts?'c':'_') << (obsoletes?'o':'_') << (recommends?'m':'_') << (supplements?'s':'_') << (enhacements?'e':'_') << "] {" << endl; std::set qsorted; for_( it, q.begin(), q.end() ) qsorted.insert( it ); for ( auto && it : qsorted ) { if ( it->isKind( ResKind::srcpackage ) && !withSrcPackages ) continue; tableOut( str::numstring( it->id() ), it->asString(), str::form( "(%d)%s", it->repository().info().priority(), it->repository().name().c_str() ), str::numstring( PoolItem(*it)->buildtime() ) ); tableOut( "", "", it->vendor().asString() ); if ( ! it.matchesEmpty() ) { for_( match, it.matchesBegin(), it.matchesEnd() ) { tableOut( "", "", match->inSolvAttr().asString().substr( 9, 3 )+": " +match->asString() ); } } } message << "}" << endl; } INT << "===[END]============================================" << endl << endl; return 0; } libzypp-17.7.0/tools/zypp-cpeid.cc000066400000000000000000000035621334444677500170610ustar00rootroot00000000000000#include #include #include using std::cout; using std::endl; using zypp::CpeId; using zypp::Pathname; int main( int argc, const char * argv[] ) { if ( argc == 1 || argv[1] == std::string( "--help" ) || argv[1] == std::string( "-h" ) ) { cout << "Usage: " << Pathname::basename( argv[0] ) << " [CPEID]...\n" "Check and print all supplied CPEIDs as FS, URI and WFN.\n" "Afterwards compare them pairwise. \n" "\n" " (wfn:[part=\"a\",vendor=\"openSUSE\",product=\"libzypp\",version=\"14\\.17\\.3\"])\n" " URI: cpe:/a:openSUSE:libzypp:14.17.3\n" " FS: cpe:2.3:a:openSUSE:libzypp:14.17.3:*:*:*:*:*:*:*\n" "\n"; return 0; } --argc, ++argv; std::vector args; args.reserve( argc ); for ( ; argc; --argc, ++argv ) { try { CpeId cpe( argv[0] ); cout << '[' << args.size() << "]-----------------------------------------------------------------------------" << endl; cout << "arg: " << argv[0] << endl; cout << " (" << cpe.asWfn() << ')' << endl; cout << "URI: " << cpe.asUri() << endl; cout << "FS: " << cpe<< endl; args.push_back( cpe ); } catch ( const std::invalid_argument & exp ) { cout << "--------------------------------------------------------------------------------" << endl; cout << "arg: " << argv[0] << endl; cout << "ERR: " << exp.what() << endl; } } cout << "--------------------------------------------------------------------------------" << endl; unsigned lhsidx = 0; for ( const auto & lhs : args ) { unsigned rhsidx = 0; for ( const auto & rhs : args ) { cout << "[" << lhsidx << "] " << lhs << endl; cout << "[" << rhsidx << "] " << rhs << endl; cout << " ==> " << compare( lhs, rhs ) << endl; ++rhsidx; } ++lhsidx; } return 0; } libzypp-17.7.0/tools/zypp-install.cc000066400000000000000000000176701334444677500174500ustar00rootroot00000000000000// // g++ -Wall -std=c++11 zypp-install.cc -l zypp -o zypp-install // // A small (and simple) demo which walks through zypp, initializing // and refreshing the repos, selecting packages ('zypper dup'), // resolving dependencies and finally comitting/installing the // result (in dry-run mode). // // No callbacks, questions or fancy output during commit, but it will // do a 'zypper dup' if you'd remove the DryRun and DownloadOnly flag. // // So be careful if running it as root. // #include #define TEST_DEBUGLOG 0 #if ( TEST_DEBUGLOG ) #include #endif #include #include #include using std::cin; using std::cout; using std::cerr; using std::endl; using namespace zypp; //////////////////////////////////////////////////////////////////////////////// int main( int argc, char * argv[] ) try { --argc; ++argv; #if ( TEST_DEBUGLOG ) #warning debug log is on base::LogControl::instance().logfile( "/tmp/zypp-install.log" ); #endif Pathname sysRoot( "/" ); ZYpp::Ptr zypp = getZYpp(); // acquire initial zypp lock //////////////////////////////////////////////////////////////////////////////// // init Target: { cout << "Initialize target at " << sysRoot << endl; zypp->initializeTarget( sysRoot ); // initialize target cout << "Loading target resolvables" << endl; zypp->getTarget()->load(); // load installed packages to pool } //////////////////////////////////////////////////////////////////////////////// // init Repos: { RepoManager repoManager( sysRoot ); // sync the current repo set for ( RepoInfo & nrepo : repoManager.knownRepositories() ) { if ( ! nrepo.enabled() ) continue; // Often volatile media are sipped in automated environments // to avoid media chagne requests: if ( nrepo.url().schemeIsVolatile() ) continue; bool refreshNeeded = false; if ( nrepo.autorefresh() ) // test whether to autorefresh repo metadata { for ( const Url & url : nrepo.baseUrls() ) { try { if ( repoManager.checkIfToRefreshMetadata( nrepo, url ) == RepoManager::REFRESH_NEEDED ) { cout << "Need to autorefresh repo " << nrepo.alias() << endl; refreshNeeded = true; } break; // exit after first successful checkIfToRefreshMetadata } catch ( const Exception & exp ) {} // Url failed, try next one... } // If all urls failed we can leave it to the code below to // fail if access is actually needed and still failing. // (missing metadata, package download, ...) } // initial metadata download or cache refresh if ( ! repoManager.isCached( nrepo ) || refreshNeeded ) { cout << "Refreshing repo " << nrepo << endl; if ( repoManager.isCached( nrepo ) ) { repoManager.cleanCache( nrepo ); } repoManager.refreshMetadata( nrepo ); repoManager.buildCache( nrepo ); } // load cache try { cout << "Loading resolvables from " << nrepo.alias() << endl; repoManager.loadFromCache( nrepo );// load available packages to pool } catch ( const Exception & exp ) { // cachefile has old fomat (or is corrupted): try yo rebuild it repoManager.cleanCache( nrepo ); repoManager.buildCache( nrepo ); repoManager.loadFromCache( nrepo ); } } } cout << zypp->pool() << endl; cout << "=====[pool ready]==============================" << endl; //////////////////////////////////////////////////////////////////////////////// // GO... //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // Select package to install... // For demo purpose do 'zypper dup' // otherwise select manually whatever you need... zypp->resolver()->doUpgrade(); //////////////////////////////////////////////////////////////////////////////// // solve selection... { cout << "Solving dependencies..." << endl; unsigned attempt = 0; while ( ! zypp->resolver()->resolvePool() ) { ++attempt; cout << "Solving dependencies: " << attempt << ". attempt failed" << endl; const ResolverProblemList & problems( zypp->resolver()->problems() ); cout << problems.size() << " problems found..." << endl; // Problem: // ============================== // kdepim3-3.5.10-29.1.4.x86_64 requires libsasl2.so.2()(64bit), but this requirement // cannot be provided deleted providers: cyrus-sasl-2.1.25-28.1.2.x86_64 // ------------------------------ // Solution: // keep obsolete cyrus-sasl-2.1.25-28.1.2.x86_64 // Solution: // remove lock to allow removal of kdepim3-3.5.10-29.1.4.x86_64 // Solution: // remove lock to allow removal of kdepim3-3.5.10-29.1.4.x86_64 // Solution: // break kdepim3-3.5.10-29.1.4.x86_64 by ignoring some of its dependencies ProblemSolutionList totry; // only needed if you (interactively) resolve problems... unsigned probNo = 0; for ( const auto & probPtr : problems ) { cout << "Problem " << ++probNo << ": " << probPtr->description() << endl; const ProblemSolutionList & solutions = probPtr->solutions(); unsigned solNo = 0; for ( const auto & solPtr : solutions ) { cout << " Solution " << ++solNo << ": " << solPtr->description() << endl; } // if you (interactively) resolve problems pick 1 solution per problem // and store it int the totry list. After having applied the selected // start a new attempt. // // It's not necessary to process all problems. You can pick a solution // for the first problem and retry immediately. Often one solution actually // resolves more than one reported problem. // // totry.push_back( solPtr ); } if ( ! totry.empty() ) { cout << "Apply selected solutions..." << endl; zypp->resolver()->applySolutions( totry ); cout << "Solving dependencies..." << endl; continue; } // otherwise give up throw "Solving dependencies failed: Giving up!"; } cout << "Dependencies solved" << endl; } //////////////////////////////////////////////////////////////////////////////// // printing some stats... if ( false ) { cout << "PoolItem summary (individual packages):" << endl; for ( const PoolItem & pi : zypp->pool() ) { if ( pi.status().transacts() ) cout << " " << pi << endl; } } else { cout << "Selectable summary (grouped by name):" << endl; for ( const ui::Selectable_Ptr & sel : zypp->pool().proxy() ) { if ( sel->toModify() ) cout << " " << sel << endl; } } //////////////////////////////////////////////////////////////////////////////// // finally commit.. { cout << "Going to commit..." << endl; // dryRun and DownloadOnly will cause commit to skip // transaction steps, so you want to check for 'noError' // rather than 'allDone'. bool dryRunEtc = false; ZYppCommitPolicy policy; if ( true ) { policy.dryRun( true ); dryRunEtc = true; } if ( true ) { policy.downloadMode( DownloadOnly ); dryRunEtc = true; } try { ZYppCommitResult result = zypp->commit( policy ); // go.... if ( ! ( result.allDone() || ( dryRunEtc && result.noError() ) ) ) { throw "Incomplete commit!"; // ZYppCommitResult offers access to the TransactionStepList // where you can see which packages have been processed and // which not. } cout << "Commit succeeded" << endl; } catch ( const Exception & exp ) { cout << "Commit aborted with exception:" << endl; throw; } } cout << "[bye]: " << endl; return 0; } catch ( const Exception & exp ) { cerr << exp << endl << exp.historyAsString(); exit( 91 ); } catch ( const std::exception & exp ) { cerr << exp.what() << endl; exit( 92 ); } catch ( const char * exp ) { cerr << (exp?exp:"Oops!") << endl; exit( 93 ); } catch (...) { cerr << "Oops!" << endl; exit( 94 ); } libzypp-17.7.0/tools/zypp-list.cc000066400000000000000000000107701334444677500167470ustar00rootroot00000000000000#define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST #include #include static std::string appname( "zypp-list" ); #define message cerr #define OUT cout using std::flush; int errexit( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } return exit_r; } int usage( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } cerr << "Usage: " << appname << " [GLOBALOPTS] COMMAND" << endl; cerr << "List pool items according to command." << endl; cerr << endl; cerr << "GLOBALOPTS:" << endl; cerr << " --root Load repos from the system located below ROOTDIR. If ROOTDIR" << endl; cerr << " denotes a sover testcase, the testcase is loaded." << endl; cerr << " -i, --installed Process installed packages only." << endl; cerr << endl; cerr << "COMMANDS:" << endl; cerr << " locks: List all locked pool items." << endl; cerr << " ." << endl; cerr << endl; return exit_r; } void startup( const Pathname & sysRoot = "/", bool onlyInstalled = false ) { ZConfig::instance(); sat::Pool satpool( sat::Pool::instance() ); if ( TestSetup::isTestcase( sysRoot ) ) { message << str::form( "*** Load Testcase from '%s'", sysRoot.c_str() ) << endl; TestSetup test; test.loadTestcaseRepos( sysRoot ); dumpRange( message, satpool.reposBegin(), satpool.reposEnd() ) << endl; } else if ( TestSetup::isTestSetup( sysRoot ) ) { message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl; TestSetup test( sysRoot, Arch_x86_64 ); test.loadRepos(); dumpRange( message, satpool.reposBegin(), satpool.reposEnd() ) << endl; } else { // a system message << str::form( "*** Load system at '%s'", sysRoot.c_str() ) << endl; if ( true ) { message << "*** load target '" << Repository::systemRepoAlias() << "'\t"; getZYpp()->initializeTarget( sysRoot ); getZYpp()->target()->load(); message << satpool.systemRepo() << endl; } if ( !onlyInstalled ) { RepoManager repoManager( sysRoot ); RepoInfoList repos = repoManager.knownRepositories(); for_( it, repos.begin(), repos.end() ) { RepoInfo & nrepo( *it ); if ( ! nrepo.enabled() ) continue; if ( ! repoManager.isCached( nrepo ) ) { message << str::form( "*** omit uncached repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } message << str::form( "*** load repo '%s'\t", nrepo.name().c_str() ) << flush; try { repoManager.loadFromCache( nrepo ); message << satpool.reposFind( nrepo.alias() ) << endl; } catch ( const Exception & exp ) { message << exp.asString() + "\n" + exp.historyAsString() << endl; message << str::form( "*** omit broken repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl; continue; } } } } } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { INT << "===[START]==========================================" << endl; appname = Pathname::basename( argv[0] ); --argc,++argv; if ( ! argc ) { return usage(); } /////////////////////////////////////////////////////////////////// Pathname sysRoot( "/" ); if ( argc && (*argv) == std::string("--root") ) { --argc,++argv; if ( ! argc ) return errexit("--root requires an argument."); if ( ! PathInfo( *argv ).isDir() ) return errexit("--root requires a directory."); sysRoot = *argv; --argc,++argv; } bool onlyInstalled( false ); if ( argc && (*argv) == std::string("--installed") ) { --argc,++argv; onlyInstalled = true; } /////////////////////////////////////////////////////////////////// if ( ! argc ) { return usage(); } startup( sysRoot, onlyInstalled ); ResPool pool( ResPool::instance() ); if ( argc && (*argv) == std::string("locked") ) { OUT << "*** Locked:" << endl; for_( it, pool.begin(), pool.end() ) { if ( (*it).status().isLocked() ) OUT << *it << endl; } } INT << "===[END]============================================" << endl << endl; return 0; } libzypp-17.7.0/tools/zypp-pubkey.cc000066400000000000000000000100141334444677500172620ustar00rootroot00000000000000#define INCLUDE_TESTSETUP_WITHOUT_BOOST #include "zypp/../tests/lib/TestSetup.h" #undef INCLUDE_TESTSETUP_WITHOUT_BOOST #define message cout using std::flush; #include namespace opt = boost::program_options; #include #include static std::string appname( "unknown" ); int errexit( const std::string & msg_r = std::string(), int exit_r = 100 ) { if ( ! msg_r.empty() ) { cerr << endl << msg_r << endl << endl; } return exit_r; } bool byTTL( const PublicKey & lhs, const PublicKey & rhs ) { int cmp = lhs.gpgPubkeyVersion().compare( rhs.gpgPubkeyVersion() ); if ( cmp ) return cmp < 0; return lhs.gpgPubkeyRelease() > rhs.gpgPubkeyRelease(); // intentionally reverse cdate } std::ostream & dumpPubkeyOn( std::ostream & str, const PublicKey & key_r ) { std::vector art( key_r.asciiArt().asLines( " ", PublicKey::AsciiArt::USE_COLOR ) ); std::vector info; str::split( (str::Str() << dump(key_r)).str(), std::back_inserter( info ), "\n" ); for ( unsigned i = 1; i < info.size(); ++i ) art[i] += info[i]; str << info[0] << endl; for ( const auto & line : art ) str << line << endl; return str << endl; } /****************************************************************** ** ** FUNCTION NAME : main ** FUNCTION TYPE : int */ int main( int argc, char * argv[] ) { appname = Pathname::basename( argv[0] ); /////////////////////////////////////////////////////////////////// opt::options_description options( "Options" ); options.add_options() ( "key-file", opt::value >(), "ASCII ascii armored public key file") ( "root", opt::value()->default_value( "/" ), "Use the rmp database from system rooted at ARG") ( "help,?", "Produce this help message") ; opt::positional_options_description positional; positional.add( "key-file", -1 ); opt::variables_map vm; opt::store( opt::command_line_parser( argc, argv ).options( options ).positional( positional ).run(), vm ); opt::notify( vm ); if ( vm.count( "help" ) ) { cerr << "Usage: " << appname << " [OPTIONS] [key-files...]" << endl; cerr << "If no key files are given, list info about all gpg-pubkeys in the rpm database." << endl; cerr << "Otherwise print info about each key and wheter it is present in the rpm database. " << endl; cerr << options << endl; return 1; } /////////////////////////////////////////////////////////////////// if ( ! PathInfo( vm["root"].as() ).isDir() ) return errexit("--root requires a directory"); target::rpm::RpmDb rpmdb; rpmdb.initDatabase( vm["root"].as() ); std::list rpmpubkeys( rpmdb.pubkeys() ); rpmpubkeys.sort( byTTL ); if ( ! vm.count( "key-file" ) ) { std::string last; for_each_( it, rpmpubkeys ) { if ( last == it->gpgPubkeyVersion() ) cout << *it << endl; else { dumpPubkeyOn( cout, *it ); last = it->gpgPubkeyVersion(); } } return 0; } /////////////////////////////////////////////////////////////////// for_each_( it, vm["key-file"].as< std::vector >() ) { cout << "=== " << PathInfo(*it) << endl; PublicKey pubkey( *it ); dumpPubkeyOn( cout, pubkey ); std::string pubkeyV( pubkey.gpgPubkeyVersion() ); std::string pubkeyR( pubkey.gpgPubkeyRelease() ); unsigned count = 0; for_each_( rpmpub, rpmpubkeys ) { if ( rpmpub->gpgPubkeyVersion() == pubkeyV ) { int cmp = rpmpub->gpgPubkeyRelease().compare( pubkeyR ); if ( cmp < 0 ) cout << "<<< "; else if ( cmp > 0 ) cout << ">>> "; else { ++count; cout << "*** "; } cout << "gpg-pubkey-" << rpmpub->gpgPubkeyVersion() << "-" << rpmpub->gpgPubkeyRelease() << " " << rpmpub->daysToLive() << endl; } } if ( ! count ) { cout << "*** Not in rpm database." << endl; } cout << endl; } /////////////////////////////////////////////////////////////////// return 0; } libzypp-17.7.0/vendor/000077500000000000000000000000001334444677500146155ustar00rootroot00000000000000libzypp-17.7.0/vendor/CMakeLists.txt000066400000000000000000000000371334444677500173550ustar00rootroot00000000000000ADD_SUBDIRECTORY(mongoose) libzypp-17.7.0/vendor/mongoose/000077500000000000000000000000001334444677500164435ustar00rootroot00000000000000libzypp-17.7.0/vendor/mongoose/CMakeLists.txt000066400000000000000000000003001334444677500211740ustar00rootroot00000000000000ADD_DEFINITIONS( -DNO_CGI -D_POSIX_SOURCE -D_BSD_SOURCE ) SET(mongoose_SOURCES mongoose.c mongoose.h ) ADD_LIBRARY(mongoose ${mongoose_SOURCES}) TARGET_LINK_LIBRARIES(mongoose dl pthread) libzypp-17.7.0/vendor/mongoose/mongoose.c000066400000000000000000003071171334444677500204460ustar00rootroot00000000000000/* * Copyright (c) 2004-2009 Sergey Lyubka * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * $Id: mongoose.c 230 2009-02-15 09:59:53Z valenok $ */ #ifndef _WIN32_WCE /* Some ANSI #includes are not available on Windows CE */ #include #include #include #include #include #include #endif /* _WIN32_WCE */ #include #include #include #include #include #include #include #include #if defined(_WIN32) /* Windows specific */ #include #ifndef _WIN32_WCE #include #include #include #else /* _WIN32_WCE */ /* Windows CE-specific definitions */ #define NO_CGI /* WinCE has no pipes */ #define NO_GUI /* temporarily until it is fixed */ /* WinCE has both Unicode and ANSI versions of GetProcAddress */ #undef GetProcAddress #define GetProcAddress GetProcAddressA #endif /* _WIN32_WCE */ /* * Do not allow holes in data structures! * This is needed so when Mongoose DLL is loaded, other languages that * describe struct mg_request_info from mongoose.h, agree with C code. */ #pragma pack(1) #define __func__ __FUNCTION__ #define ERRNO GetLastError() #define NO_SOCKLEN_T #define SSL_LIB "ssleay32.dll" #define DIRSEP '\\' #define IS_DIRSEP_CHAR(c) ((c) == '/' || (c) == '\\') #define O_NONBLOCK 0 #define EWOULDBLOCK WSAEWOULDBLOCK #define dlopen(x,y) LoadLibrary(x) #define dlsym(x,y) GetProcAddress((HINSTANCE) (x), (y)) #define _POSIX_ #if !defined(R_OK) #define R_OK 04 /* for _access() */ #endif /* !R_OK MINGW #defines R_OK */ #define SHUT_WR 1 #define snprintf _snprintf #define vsnprintf _vsnprintf #define popen(x, y) _popen(x, y) #define pclose(x) _pclose(x) #define access(x, y) _access(x, y) #define getcwd(x, y) _getcwd(x, y) #ifdef HAVE_STRTOUI64 #define strtoull(x, y, z) _strtoui64(x, y, z) #else #define strtoull(x, y, z) strtoul(x, y, z) #endif /* HAVE_STRTOUI64 */ #define write(x, y, z) _write(x, y, (unsigned) z) #define read(x, y, z) _read(x, y, (unsigned) z) #define open(x, y, z) _open(x, y, z) #define lseek(x, y, z) _lseek(x, y, z) #define close(x) _close(x) #if !defined(fileno) #define fileno(x) _fileno(x) #endif /* !fileno MINGW #defines fileno */ typedef HANDLE pthread_mutex_t; typedef HANDLE pthread_cond_t; #if !defined(S_ISDIR) #define S_ISDIR(x) ((x) & _S_IFDIR) #endif /* S_ISDIR */ #if defined(HAVE_STDINT) #include #else typedef unsigned int uint32_t; typedef unsigned short uint16_t; typedef unsigned __int64 uint64_t; #endif /* HAVE_STDINT */ /* * POSIX dirent interface */ struct dirent { char d_name[FILENAME_MAX]; }; typedef struct DIR { HANDLE handle; WIN32_FIND_DATAW info; struct dirent result; } DIR; #else /* UNIX specific */ #include #include #include #include #include #include #include #include #include #include #include #include #define SSL_LIB "libssl.so" #define DIRSEP '/' #define IS_DIRSEP_CHAR(c) ((c) == '/') #define O_BINARY 0 #define closesocket(a) close(a) #define mg_mkdir(x, y) mkdir(x, y) #define mg_open(x, y, z) open(x, y, z) #define mg_remove(x) remove(x) #define mg_stat(x, y) stat(x, y) #define ERRNO errno #define INVALID_SOCKET (-1) typedef int SOCKET; #endif /* End of Windows and UNIX specific includes */ #include "mongoose.h" #define MONGOOSE_VERSION "2.4" #define PASSWORDS_FILE_NAME ".htpasswd" #define CGI_ENVIRONMENT_SIZE 4096 #define MAX_CGI_ENVIR_VARS 64 #define MAX_REQUEST_SIZE 16384 #define MAX_LISTENING_SOCKETS 10 #define MAX_CALLBACKS 20 #define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) #define UNKNOWN_CONTENT_LENGTH ((uint64_t) ~0ULL) /* * Darwin prior to 7.0 and Win32 do not have socklen_t */ #ifdef NO_SOCKLEN_T typedef int socklen_t; #endif /* NO_SOCKLEN_T */ #if !defined(FALSE) enum {FALSE, TRUE}; #endif /* !FALSE */ typedef int bool_t; typedef void * (*mg_thread_func_t)(void *); static void cry(const char *, ...); static int tz_offset; static const char *http_500_error = "Internal Server Error"; static FILE *error_log; /* * Snatched from OpenSSL includes. I put the prototypes here to be independent * from the OpenSSL source installation. Having this, mongoose + SSL can be * built on any system with binary SSL libraries installed. */ typedef struct ssl_st SSL; typedef struct ssl_method_st SSL_METHOD; typedef struct ssl_ctx_st SSL_CTX; #define SSL_ERROR_WANT_READ 2 #define SSL_ERROR_WANT_WRITE 3 #define SSL_FILETYPE_PEM 1 /* * Dynamically loaded SSL functionality */ struct ssl_func { const char *name; /* SSL function name */ void (*ptr)(void); /* Function pointer */ }; #define FUNC(x) ssl_sw[x].ptr #define SSL_free(x) (* (void (*)(SSL *)) FUNC(0))(x) #define SSL_accept(x) (* (int (*)(SSL *)) FUNC(1))(x) #define SSL_connect(x) (* (int (*)(SSL *)) FUNC(2))(x) #define SSL_read(x,y,z) (* (int (*)(SSL *, void *, int)) FUNC(3))((x),(y),(z)) #define SSL_write(x,y,z) \ (* (int (*)(SSL *, const void *,int)) FUNC(4))((x), (y), (z)) #define SSL_get_error(x,y)(* (int (*)(SSL *, int)) FUNC(5))((x), (y)) #define SSL_set_fd(x,y) (* (int (*)(SSL *, SOCKET)) FUNC(6))((x), (y)) #define SSL_new(x) (* (SSL * (*)(SSL_CTX *)) FUNC(7))(x) #define SSL_CTX_new(x) (* (SSL_CTX * (*)(SSL_METHOD *)) FUNC(8))(x) #define SSLv23_server_method() (* (SSL_METHOD * (*)(void)) FUNC(9))() #define SSL_library_init() (* (int (*)(void)) FUNC(10))() #define SSL_CTX_use_PrivateKey_file(x,y,z) (* (int (*)(SSL_CTX *, \ const char *, int)) FUNC(11))((x), (y), (z)) #define SSL_CTX_use_certificate_file(x,y,z) (* (int (*)(SSL_CTX *, \ const char *, int)) FUNC(12))((x), (y), (z)) #define SSL_CTX_set_default_passwd_cb(x,y) \ (* (void (*)(SSL_CTX *, mg_spcb_t))FUNC(13))((x),(y)) static struct ssl_func ssl_sw[] = { {"SSL_free", NULL}, {"SSL_accept", NULL}, {"SSL_connect", NULL}, {"SSL_read", NULL}, {"SSL_write", NULL}, {"SSL_get_error", NULL}, {"SSL_set_fd", NULL}, {"SSL_new", NULL}, {"SSL_CTX_new", NULL}, {"SSLv23_server_method", NULL}, {"SSL_library_init", NULL}, {"SSL_CTX_use_PrivateKey_file", NULL}, {"SSL_CTX_use_certificate_file",NULL}, {"SSL_CTX_set_default_passwd_cb",NULL}, {NULL, NULL} }; struct usa { socklen_t len; union { struct sockaddr sa; struct sockaddr_in sin; } u; }; /* * Numeric indexes for the option values in context, ctx->options */ enum mg_option_index { OPT_ROOT, OPT_INDEX_FILES, OPT_PORTS, OPT_DIR_LIST, OPT_CGI_EXTENSIONS, OPT_CGI_INTERPRETER, OPT_SSI_EXTENSIONS, OPT_AUTH_DOMAIN, OPT_AUTH_GPASSWD, OPT_AUTH_PUT, OPT_ACCESS_LOG, OPT_ERROR_LOG, OPT_SSL_CERTIFICATE, OPT_ALIASES, OPT_ACL, OPT_UID, OPT_PROTECT, OPT_SERVICE, OPT_HIDE, OPT_ADMIN_URI, OPT_THREADS, NUM_OPTIONS }; struct socket { SOCKET sock; /* Listening socket */ struct usa usa; /* Socket address */ unsigned int flags; /* Flags */ #define FLAG_SSL 1 #define FLAG_TERMINATE 2 }; /* * Callback function, and where it is bound to */ struct callback { char *uri_regex; /* URI regex to handle */ mg_callback_t func; /* user callback */ bool_t is_auth; /* func is auth checker */ int status_code; /* error code to handle */ void *user_data; /* opaque user data */ }; /* * Socket pool. * Master thread to enqueue accepted sockets by means of put_socket() function. * Worker threads grab sockets from the queue using get_socket() function. */ struct socket_pool { struct socket sockets[20]; /* Array of sockets to process */ int size; /* Ringbuffer pointers */ int head; int tail; pthread_mutex_t mutex; pthread_cond_t put_cond; pthread_cond_t get_cond; }; /* * Mongoose context */ struct mg_context { int stop_flag; /* Should we stop event loop */ SSL_CTX *ssl_ctx; /* SSL context */ FILE *access_log; /* Opened access log */ FILE *error_log; /* Opened error log */ struct socket listeners[MAX_LISTENING_SOCKETS]; int num_listeners; struct callback callbacks[MAX_CALLBACKS]; int num_callbacks; char *options[NUM_OPTIONS]; /* Configured opions */ pthread_mutex_t mutex; /* Option setter/getter guard */ struct socket_pool socket_pool; /* Socket pool */ mg_spcb_t ssl_password_callback; }; struct mg_connection { struct mg_request_info request_info; struct mg_context *ctx; /* Mongoose context we belong to*/ SSL *ssl; /* SSL descriptor */ SOCKET sock; /* Connected socket */ struct usa rsa; /* Remote socket address */ struct usa lsa; /* Local socket address */ time_t birth_time; /* Time connection was accepted */ bool_t free_post_data; /* post_data was malloc-ed */ bool_t keep_alive; /* Keep-Alive flag */ uint64_t num_bytes_sent; /* Total bytes sent to client */ }; /* * In Mongoose, list of values are represented as comma separated * string. For example, list of CGI extensions can be represented as * ".cgi,.php,.pl", FOR_EACH_WORD_IN_LIST macro allows to * loop through the individual values in that list. * * A "const char *" and "int" variables must be passed to the macro. * * In every iteration of the loop, "s" points to the current value, and * "len" specifies its length. Code inside loop must not change "s" and "len". */ #define FOR_EACH_WORD_IN_LIST(s, len) \ for (; s != NULL && (len = strcspn(s, ",")) != 0; \ s += len, s+= strspn(s, ",")) /* * Print error message to the opened error log stream. */ static void cry(const char *fmt, ...) { FILE *fp; va_list ap; fp = error_log == NULL ? stderr : error_log; va_start(ap, fmt); (void) vfprintf(fp, fmt, ap); va_end(ap); fputc('\n', fp); } const char * mg_version(void) { return (MONGOOSE_VERSION); } static void mg_strlcpy(register char *dst, register const char *src, size_t n) { for (; *src != '\0' && n > 1; n--) *dst++ = *src++; *dst = '\0'; } static int lowercase(const char *s) { return (tolower(* (unsigned char *) s)); } static int mg_strncasecmp(const char *s1, const char *s2, size_t len) { int diff = 0; if (len > 0) do { diff = lowercase(s1++) - lowercase(s2++); } while (diff == 0 && s1[-1] != '\0' && --len > 0); return (diff); } static int mg_strcasecmp(const char *s1, const char *s2) { int diff; do { diff = lowercase(s1++) - lowercase(s2++); } while (diff == 0 && s1[-1] != '\0'); return (diff); } static char * mg_strndup(const char *ptr, size_t len) { char *p; if ((p = (char *) malloc(len + 1)) != NULL) mg_strlcpy(p, ptr, len + 1); return (p); } static char * mg_strdup(const char *str) { return (mg_strndup(str, strlen(str))); } /* * Like snprintf(), but never returns negative value, or the value * that is larger than a supplied buffer. * Thanks to Adam Zeldis to pointing snprintf()-caused vulnerability * in his audit report. */ static int mg_vsnprintf(char *buf, size_t buflen, const char *fmt, va_list ap) { int n; if (buflen == 0) return (0); n = vsnprintf(buf, buflen, fmt, ap); if (n < 0) { cry("vsnprintf error"); n = 0; } else if (n >= (int) buflen) { cry("truncating vsnprintf buffer"); n = (int) buflen - 1; } buf[n] = '\0'; return (n); } static int mg_snprintf(char *buf, size_t buflen, const char *fmt, ...) { va_list ap; int n; va_start(ap, fmt); n = mg_vsnprintf(buf, buflen, fmt, ap); va_end(ap); return (n); } /* * Convert string representing a boolean value to a boolean value */ static bool_t is_true(const char *str) { static const char *trues[] = {"1", "yes", "true", "jawohl", NULL}; const char **p; for (p = trues; *p != NULL; p++) if (str && !mg_strcasecmp(str, *p)) return (TRUE); return (FALSE); } /* * Skip the characters until one of the delimiters characters found. * 0-terminate resulting word. Skip the rest of the delimiters if any. * Advance pointer to buffer to the next word. Return found 0-terminated word. */ static char * skip(char **buf, const char *delimiters) { char *p, *begin_word, *end_word, *end_delimiters; begin_word = *buf; end_word = begin_word + strcspn(begin_word, delimiters); end_delimiters = end_word + strspn(end_word, delimiters); for (p = end_word; p < end_delimiters; p++) *p = '\0'; *buf = end_delimiters; return (begin_word); } /* * Return HTTP header value, or NULL if not found. */ static const char * get_header(const struct mg_request_info *ri, const char *name) { int i; for (i = 0; i < ri->num_headers; i++) if (!mg_strcasecmp(name, ri->http_headers[i].name)) return (ri->http_headers[i].value); return (NULL); } const char * mg_get_header(const struct mg_connection *conn, const char *name) { return (get_header(&conn->request_info, name)); } #if !(defined(NO_CGI) && defined(NO_SSI)) /* * Verify that given file has certain extension */ static bool_t match_extension(const char *path, const char *ext_list) { size_t len, path_len; path_len = strlen(path); FOR_EACH_WORD_IN_LIST(ext_list, len) if (len < path_len && path[path_len - (len + 1)] == '.' && !mg_strncasecmp(path + path_len - len, ext_list, len)) return (TRUE); return (FALSE); } #endif /* !(NO_CGI && NO_SSI) */ static bool_t match_regex(const char *uri, const char *regexp) { if (*regexp == '\0') return (*uri == '\0'); if (*regexp == '*') do { if (match_regex(uri, regexp + 1)) return (TRUE); } while (*uri++ != '\0'); if (*uri != '\0' && *regexp == *uri) return (match_regex(uri + 1, regexp + 1)); return (FALSE); } static const struct callback * find_callback(const struct mg_context *ctx, bool_t is_auth, const char *uri, int status_code) { const struct callback *cb; int i; for (i = 0; i < ctx->num_callbacks; i++) { cb = ctx->callbacks + i; if ((uri != NULL && cb->uri_regex != NULL && ((is_auth && cb->is_auth) || (!is_auth && !cb->is_auth)) && match_regex(uri, cb->uri_regex)) || (uri == NULL && (cb->status_code == 0 || cb->status_code == status_code))) return (cb); } return (NULL); } /* * Send error message back to a client. */ static void send_error(struct mg_connection *conn, int status, const char *reason, const char *fmt, ...) { const struct callback *cb; char buf[BUFSIZ]; va_list ap; int len; conn->request_info.status_code = status; /* If error handler is set, call it. Otherwise, send error message */ if ((cb = find_callback(conn->ctx, FALSE, NULL, status)) != NULL) { cb->func(conn, &conn->request_info, cb->user_data); } else { (void) mg_printf(conn, "HTTP/1.1 %d %s\r\n" "Content-Type: text/plain\r\n" "Connection: close\r\n" "\r\n", status, reason); /* Errors 1xx, 204 and 304 MUST NOT send a body */ if (status > 199 && status != 204 && status != 304) { conn->num_bytes_sent = mg_printf(conn, "Error %d: %s\n", status, reason); va_start(ap, fmt); len = mg_vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); conn->num_bytes_sent += mg_write(conn, buf, len); } } } #ifdef _WIN32 static int pthread_mutex_init(pthread_mutex_t *mutex, void *unused) { unused = NULL; *mutex = CreateMutex(NULL, FALSE, NULL); return (*mutex == NULL ? -1 : 0); } static int pthread_mutex_destroy(pthread_mutex_t *mutex) { return (CloseHandle(*mutex) == 0 ? -1 : 0); } static int pthread_mutex_lock(pthread_mutex_t *mutex) { return (WaitForSingleObject(*mutex, INFINITE) == WAIT_OBJECT_0? 0 : -1); } static int pthread_mutex_unlock(pthread_mutex_t *mutex) { return (ReleaseMutex(*mutex) == 0 ? -1 : 0); } static int pthread_cond_init(pthread_cond_t *cv, const void *unused) { unused = NULL; *cv = CreateEvent(NULL, FALSE, FALSE, NULL); return (*cv == NULL ? -1 : 0); } static int pthread_cond_wait(pthread_cond_t *cv, pthread_mutex_t *mutex) { SignalObjectAndWait(*mutex, *cv, INFINITE, FALSE); WaitForSingleObject(*mutex, INFINITE); return (0); } static int pthread_cond_signal(pthread_cond_t *cv) { return (SetEvent(*cv) == 0 ? -1 : 0); } static int pthread_cond_destroy(pthread_cond_t *cv) { return (CloseHandle(*cv) == 0 ? -1 : 0); } static void fix_directory_separators(char *path) { for (; *path != '\0'; path++) { if (*path == '/') *path = '\\'; if (*path == '\\') while (path[1] == '\\' || path[1] == '/') (void) memmove(path + 1, path + 2, strlen(path + 2) + 1); } } static void to_unicode(const char *path, wchar_t *wbuf, size_t wbuf_len) { char buf[FILENAME_MAX], *p; mg_strlcpy(buf, path, sizeof(buf)); fix_directory_separators(buf); /* Point p to the end of the file name */ p = buf + strlen(buf) - 1; /* Trim trailing backslash character */ while (p > buf && *p == '\\' && p[-1] != ':') *p-- = '\0'; /* * Protect from CGI code disclosure. * This is very nasty hole. Windows happily opens files with * some garbage in the end of file name. So fopen("a.cgi ", "r") * actually opens "a.cgi", and does not return an error! */ if (*p == 0x20 || *p == 0x2e || *p == 0x2b || (*p & ~0x7f)) { cry("Rejecting suspicious path: [%s]", buf); buf[0] = '\0'; } MultiByteToWideChar(CP_UTF8, 0, buf, -1, wbuf, (int) wbuf_len); } static int mg_open(const char *path, int flags, int mode) { wchar_t wbuf[FILENAME_MAX]; to_unicode(path, wbuf, ARRAY_SIZE(wbuf)); return (_wopen(wbuf, flags, mode)); } static int mg_stat(const char *path, struct stat *stp) { wchar_t wbuf[FILENAME_MAX]; to_unicode(path, wbuf, ARRAY_SIZE(wbuf)); return (_wstat(wbuf, (struct _stat *) stp)); } static int mg_remove(const char *path) { wchar_t wbuf[FILENAME_MAX]; to_unicode(path, wbuf, ARRAY_SIZE(wbuf)); return (_wremove(wbuf)); } static DIR * opendir(const char *name) { DIR *dir = NULL; char path[FILENAME_MAX]; wchar_t wpath[FILENAME_MAX]; if (name == NULL || name[0] == '\0') { errno = EINVAL; } else if ((dir = (DIR *) malloc(sizeof(*dir))) == NULL) { errno = ENOMEM; } else { mg_snprintf(path, sizeof(path), "%s/*", name); to_unicode(path, wpath, ARRAY_SIZE(wpath)); dir->handle = FindFirstFileW(wpath, &dir->info); if (dir->handle != INVALID_HANDLE_VALUE) { dir->result.d_name[0] = '\0'; } else { free(dir); dir = NULL; } } return (dir); } static int closedir(DIR *dir) { int result = -1; if (dir != NULL) { if (dir->handle != INVALID_HANDLE_VALUE) result = FindClose(dir->handle) ? 0 : -1; free(dir); } if (result == -1) errno = EBADF; return (result); } struct dirent * readdir(DIR *dir) { struct dirent *result = 0; if (dir && dir->handle != INVALID_HANDLE_VALUE) { if(!dir->result.d_name || FindNextFileW(dir->handle, &dir->info)) { result = &dir->result; WideCharToMultiByte(CP_UTF8, 0, dir->info.cFileName, -1, result->d_name, sizeof(result->d_name), NULL, NULL); } } else { errno = EBADF; } return (result); } #define set_close_on_exec(fd) /* No FD_CLOEXEC on Windows */ static int start_thread(void * (*func)(void *), void *param) { return (_beginthread((void (__cdecl *)( void *))func, 0, param) == 0); } static bool_t spawn_process(struct mg_connection *conn, const char *prog, char *envblk, char *envp[], int fd_stdin, int fd_stdout, const char *dir) { HANDLE me; char *p, *interp, cmdline[FILENAME_MAX], line[FILENAME_MAX]; FILE *fp; bool_t retval; STARTUPINFOA si; PROCESS_INFORMATION pi; envp = NULL; /* Unused */ (void) memset(&si, 0, sizeof(si)); (void) memset(&pi, 0, sizeof(pi)); /* XXX redirect CGI errors to the error log file */ si.cb = sizeof(si); si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; me = GetCurrentProcess(); DuplicateHandle(me, (HANDLE) _get_osfhandle(fd_stdin), me, &si.hStdInput, 0, TRUE, DUPLICATE_SAME_ACCESS); DuplicateHandle(me, (HANDLE) _get_osfhandle(fd_stdout), me, &si.hStdOutput, 0, TRUE, DUPLICATE_SAME_ACCESS); /* If CGI file is a script, try to read the interpreter line */ interp = conn->ctx->options[OPT_CGI_INTERPRETER]; if (interp == NULL) { line[2] = '\0'; (void) mg_snprintf(cmdline, sizeof(cmdline), "%s%c%s", dir, DIRSEP, prog); if ((fp = fopen(cmdline, "r")) != NULL) { (void) fgets(line, sizeof(line), fp); if (memcmp(line, "#!", 2) != 0) line[2] = '\0'; /* Trim whitespaces from interpreter name */ for (p = &line[strlen(line) - 1]; p > line && isspace(*p); p--) *p = '\0'; (void) fclose(fp); } interp = line + 2; (void) mg_snprintf(cmdline, sizeof(cmdline), "%s%s%s", line + 2, line[2] == '\0' ? "" : " ", prog); } if ((p = (char *) strrchr(prog, '/')) != NULL) prog = p + 1; (void) mg_snprintf(cmdline, sizeof(cmdline), "%s %s", interp, prog); (void) mg_snprintf(line, sizeof(line), "%s", dir); fix_directory_separators(line); fix_directory_separators(cmdline); if (CreateProcessA(NULL, cmdline, NULL, NULL, TRUE, CREATE_NEW_PROCESS_GROUP, envblk, line, &si, &pi) == 0) { cry("%s: CreateProcess(%s): %d", __func__, cmdline, ERRNO); retval = FALSE; } else { close(fd_stdin); close(fd_stdout); retval = TRUE; } CloseHandle(si.hStdOutput); CloseHandle(si.hStdInput); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); return (retval); } static int pipe(int *fds) { return (_pipe(fds, BUFSIZ, _O_BINARY)); } static int mg_mkdir(const char *path, int mode) { char buf[FILENAME_MAX]; wchar_t wbuf[FILENAME_MAX]; mode = 0; /* Unused */ mg_strlcpy(buf, path, sizeof(buf)); fix_directory_separators(buf); MultiByteToWideChar(CP_UTF8, 0, buf, -1, wbuf, sizeof(wbuf)); return (_wmkdir(wbuf)); } #else static void set_close_on_exec(int fd) { (void) fcntl(fd, F_SETFD, FD_CLOEXEC); } static int start_thread(void * (*func)(void *), void *param) { pthread_t thread_id; pthread_attr_t attr; int retval; (void) pthread_attr_init(&attr); (void) pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); if ((retval = pthread_create(&thread_id, &attr, func, param)) != 0) cry("%s: %s", __func__, strerror(retval)); return (retval); } #ifndef NO_CGI static bool_t spawn_process(struct mg_connection *conn, const char *prog, char *envblk, char *envp[], int fd_stdin, int fd_stdout, const char *dir) { int ret; pid_t pid; const char *interp; envblk = NULL; /* unused */ ret = FALSE; if ((pid = fork()) == -1) { /* Parent */ ret = -1; send_error(conn, 500, http_500_error, "fork(): %s", strerror(ERRNO)); } else if (pid == 0) { /* Child */ if (chdir(dir) != 0) { cry("chdir(%s): %s", dir, strerror(ERRNO)); } else if (dup2(fd_stdin, 0) == -1) { cry("dup2(stdin, %d): %s", fd_stdin, strerror(ERRNO)); } else if (dup2(fd_stdout, 1) == -1) { cry("dup2(stdout, %d): %s", fd_stdout, strerror(ERRNO)); } else { /* If error file is specified, send errors there */ if (error_log != NULL) (void) dup2(fileno(error_log), 2); (void) close(fd_stdin); (void) close(fd_stdout); /* Execute CGI program */ interp = conn->ctx->options[OPT_CGI_INTERPRETER]; if (interp == NULL) { (void) execle(prog, prog, NULL, envp); cry("execle(%s): %s", prog, strerror(ERRNO)); } else { (void) execle(interp, interp, prog, NULL, envp); cry("execle(%s %s): %s", interp, prog, strerror(ERRNO)); } } exit(EXIT_FAILURE); } else { /* Parent. Suspended until child does execle() */ (void) close(fd_stdin); (void) close(fd_stdout); ret = TRUE; } return (ret); } #endif /* !NO_CGI */ #endif /* _WIN32 */ static void mg_lock(struct mg_context *ctx) { if (pthread_mutex_lock(&ctx->mutex) != 0) cry("pthread_mutex_lock: %s", strerror(ERRNO)); } static void mg_unlock(struct mg_context *ctx) { if (pthread_mutex_unlock(&ctx->mutex) != 0) cry("pthread_mutex_unlock: %s", strerror(ERRNO)); } static int get_pool_space(const struct socket_pool *pool) { return (pool->size - (pool->head - pool->tail)); } static void init_socket_pool(struct socket_pool *pool) { pool->size = (int) ARRAY_SIZE(pool->sockets); pool->head = pool->tail = 0; pthread_mutex_init(&pool->mutex, NULL); pthread_cond_init(&pool->put_cond, NULL); pthread_cond_init(&pool->get_cond, NULL); } static void destroy_socket_pool(struct socket_pool *pool) { int i; pthread_mutex_lock(&pool->mutex); for (i = 0; i < get_pool_space(pool); i++) (void) closesocket(pool->sockets[i].sock); pthread_mutex_unlock(&pool->mutex); /* * TODO: all threads in a thread pool are blocked on pool->mutex. * Before destroying the mutex, send a termination signal to all * of these threads, and let them exit. Only after that destroy * the mutex. */ pthread_mutex_destroy(&pool->mutex); pthread_cond_destroy(&pool->put_cond); pthread_cond_destroy(&pool->get_cond); } /* * Put socket into the pool */ static void put_socket(struct socket_pool *pool, const struct socket *sp) { (void) pthread_mutex_lock(&pool->mutex); while (get_pool_space(pool) == 0) pthread_cond_wait(&pool->put_cond, &pool->mutex); pool->sockets[pool->head++ % pool->size] = *sp; pthread_cond_signal(&pool->get_cond); pthread_mutex_unlock(&pool->mutex); } /* * Get index of the socket to process */ static void get_socket(struct socket_pool *pool, struct socket *sp) { pthread_mutex_lock(&pool->mutex); while (get_pool_space(pool) == pool->size) pthread_cond_wait(&pool->get_cond, &pool->mutex); *sp = pool->sockets[pool->tail++]; /* Wrap pointers */ if (pool->tail == pool->size) { pool->head -= pool->size; pool->tail = 0; } pthread_cond_signal(&pool->put_cond); pthread_mutex_unlock(&pool->mutex); } /* * Write data to the IO channel - opened file descriptor, socket or SSL * descriptor. Return number of bytes written. */ static uint64_t push(int fd, SOCKET sock, SSL *ssl, const char *buf, uint64_t len) { uint64_t sent; int n, k; sent = 0; while (sent < len) { /* How many bytes we send in this iteration */ k = len - sent > INT_MAX ? INT_MAX : (int) (len - sent); if (ssl != NULL) { n = SSL_write(ssl, buf + sent, k); } else if (fd != -1) { n = write(fd, buf + sent, k); } else { n = send(sock, buf + sent, k, 0); } if (n < 0) break; sent += n; } return (sent); } /* * Read from IO channel - opened file descriptor, socket, or SSL descriptor. * Return number of bytes read. */ static int pull(int fd, SOCKET sock, SSL *ssl, char *buf, int len) { int nread; if (ssl != NULL) { nread = SSL_read(ssl, buf, len); } else if (fd != -1) { nread = read(fd, buf, (size_t) len); } else { nread = recv(sock, buf, (size_t) len, 0); } return (nread); } int mg_write(struct mg_connection *conn, const void *buf, int len) { assert(len >= 0); return ((int) push(-1, conn->sock, conn->ssl, (const char *) buf, (uint64_t) len)); } int mg_printf(struct mg_connection *conn, const char *fmt, ...) { char buf[MAX_REQUEST_SIZE]; int len; va_list ap; va_start(ap, fmt); len = mg_vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (mg_write(conn, buf, len)); } /* * Return content length of the request, or UNKNOWN_CONTENT_LENGTH constant if * Content-Length header is not set. */ static uint64_t get_content_length(const struct mg_connection *conn) { const char *cl = mg_get_header(conn, "Content-Length"); return (cl == NULL ? UNKNOWN_CONTENT_LENGTH : strtoull(cl, NULL, 10)); } /* * URL-decode input buffer into destination buffer. * 0-terminate the destination buffer. Return the length of decoded data. * form-url-encoded data differs from URI encoding in a way that it * uses '+' as character for space, see RFC 1866 section 8.2.1 * http://ftp.ics.uci.edu/pub/ietf/html/rfc1866.txt */ static size_t url_decode(const char *src, size_t src_len, char *dst, size_t dst_len, bool_t is_form_url_encoded) { size_t i, j; int a, b; #define HEXTOI(x) (isdigit(x) ? x - '0' : x - 'W') for (i = j = 0; i < src_len && j < dst_len - 1; i++, j++) { if (src[i] == '%' && isxdigit(* (unsigned char *) (src + i + 1)) && isxdigit(* (unsigned char *) (src + i + 2))) { a = tolower(* (unsigned char *) (src + i + 1)); b = tolower(* (unsigned char *) (src + i + 2)); dst[j] = ((HEXTOI(a) << 4) | HEXTOI(b)) & 0xff; i += 2; } else if (is_form_url_encoded && src[i] == '+') { dst[j] = ' '; } else { dst[j] = src[i]; } } dst[j] = '\0'; /* Null-terminate the destination */ return (j); } /* * Search for a form variable in a given buffer. * Semantic is the same as for mg_get_var(). */ static char * get_var(const char *name, const char *buf, size_t buf_len) { const char *p, *e, *s; char *val; size_t var_len, len; var_len = strlen(name); e = buf + buf_len; val = NULL; /* buf is "var1=val1&var2=val2...". Find variable first */ for (p = buf; p + var_len < e; p++) if ((p == buf || p[-1] == '&') && p[var_len] == '=' && !mg_strncasecmp(name, p, var_len)) { /* Point p to variable value */ p += var_len + 1; /* Point s to the end of the value */ s = (const char *) memchr(p, '&', e - p); if (s == NULL) s = e; /* Try to allocate the buffer */ len = s - p + 1; if ((val = malloc(len)) != NULL) (void) url_decode(p, len, val, len, TRUE); break; } return (val); } /* * Return form data variable. * It can be specified in query string, or in the POST data. * Return NULL if the variable not found, or allocated 0-terminated value. * It is caller's responsibility to free the returned value. */ char * mg_get_var(const struct mg_connection *conn, const char *name) { const struct mg_request_info *ri = &conn->request_info; char *v1, *v2; v1 = v2 = NULL; /* Look in both query_string and POST data */ if (ri->query_string != NULL) v1 = get_var(name, ri->query_string, strlen(ri->query_string)); if (ri->post_data_len > 0) v2 = get_var(name, ri->post_data, ri->post_data_len); /* If they both have queried variable, POST data wins */ if (v1 != NULL && v2 != NULL) free(v1); return (v2 == NULL ? v1 : v2); } /* * Transform URI to the file name. */ static void make_path(struct mg_context *ctx, const char *uri, char *buf, size_t buf_len) { char *p, *s; size_t len; mg_snprintf(buf, buf_len, "%s%s", ctx->options[OPT_ROOT], uri); /* If requested URI has aliased prefix, use alternate root */ mg_lock(ctx); s = ctx->options[OPT_ALIASES]; FOR_EACH_WORD_IN_LIST(s, len) { p = (char *) memchr(s, '=', len); if (p == NULL || p >= s + len || p == s) continue; if (memcmp(uri, s, p - s) == 0) { (void) mg_snprintf(buf, buf_len, "%.*s%s", (s + len) - p - 1, p + 1, uri + (p - s)); break; } } mg_unlock(ctx); /* Remove trailing '/' characters, if directory is requested */ for (p = buf + strlen(buf) - 1; p > buf && *p == '/'; p--) *p = '\0'; #ifdef _WIN32 for (p = buf; *p != '\0'; p++) if (*p == '/') *p = '\\'; #endif /* _WIN32 */ } /* * Setup listening socket on given port, return socket */ static SOCKET mg_open_listening_port(int port) { SOCKET sock; int on = 1; struct usa sa; sa.len = sizeof(sa.u.sin); sa.u.sin.sin_family = AF_INET; sa.u.sin.sin_port = htons((uint16_t) port); sa.u.sin.sin_addr.s_addr = htonl(INADDR_ANY); if ((sock = socket(PF_INET, SOCK_STREAM, 6)) != INVALID_SOCKET && setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(on)) == 0 && bind(sock, &sa.u.sa, sa.len) == 0 && listen(sock, 128) == 0) { /* Success */ set_close_on_exec(sock); } else { /* Error */ cry("open_listening_port(%d): %s", port, strerror(errno)); if (sock != INVALID_SOCKET) (void) closesocket(sock); sock = INVALID_SOCKET; } return (sock); } /* * Check whether full request is buffered Return headers length, or 0 */ static int get_request_len(const char *buf, size_t buflen) { const char *s, *e; int len = 0; for (s = buf, e = s + buflen - 1; len <= 0 && s < e; s++) /* Control characters are not allowed but >=128 is. */ if (!isprint(* (unsigned char *) s) && *s != '\r' && *s != '\n' && * (unsigned char *) s < 128) len = -1; else if (s[0] == '\n' && s[1] == '\n') len = (int) (s - buf) + 2; else if (s[0] == '\n' && &s[1] < e && s[1] == '\r' && s[2] == '\n') len = (int) (s - buf) + 3; return (len); } /* * Convert month to the month number. Return -1 on error, or month number */ static int montoi(const char *s) { static const char *month_names[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; size_t i; for (i = 0; i < sizeof(month_names) / sizeof(month_names[0]); i++) if (!strcmp(s, month_names[i])) return ((int) i); return (-1); } /* * Parse date-time string, and return the corresponding time_t value */ static time_t date_to_epoch(const char *s) { struct tm tm, *tmp; time_t current_time; char mon[32]; int sec, min, hour, mday, month, year; (void) memset(&tm, 0, sizeof(tm)); sec = min = hour = mday = month = year = 0; if (((sscanf(s, "%d/%3s/%d %d:%d:%d", &mday, mon, &year, &hour, &min, &sec) == 6) || (sscanf(s, "%d %3s %d %d:%d:%d", &mday, mon, &year, &hour, &min, &sec) == 6) || (sscanf(s, "%*3s, %d %3s %d %d:%d:%d", &mday, mon, &year, &hour, &min, &sec) == 6) || (sscanf(s, "%d-%3s-%d %d:%d:%d", &mday, mon, &year, &hour, &min, &sec) == 6)) && (month = montoi(mon)) != -1) { tm.tm_mday = mday; tm.tm_mon = month; tm.tm_year = year; tm.tm_hour = hour; tm.tm_min = min; tm.tm_sec = sec; } if (tm.tm_year > 1900) tm.tm_year -= 1900; else if (tm.tm_year < 70) tm.tm_year += 100; /* Set Daylight Saving Time field */ current_time = time(NULL); tmp = localtime(¤t_time); tm.tm_isdst = tmp->tm_isdst; return (mktime(&tm)); } static void remove_double_dots(char *s) { char *p = s; while (*s != '\0') { *p++ = *s++; if (s[-1] == '/' || s[-1] == '\\') while (*s == '.' || *s == '/' || *s == '\\') s++; } *p = '\0'; } static const struct { const char *extension; const char *mime_type; } mime_types[] = { {"html", "text/html" }, {"htm", "text/html" }, {"shtm", "text/html" }, {"shtml", "text/html" }, {"css", "text/css" }, {"js", "application/x-javascript" }, {"ico", "image/x-icon" }, {"gif", "image/gif" }, {"jpg", "image/jpeg" }, {"jpeg", "image/jpeg" }, {"png", "image/png" }, {"svg", "image/svg+xml" }, {"torrent", "application/x-bittorrent" }, {"wav", "audio/x-wav" }, {"mp3", "audio/x-mp3" }, {"mid", "audio/mid" }, {"m3u", "audio/x-mpegurl" }, {"ram", "audio/x-pn-realaudio" }, {"ra", "audio/x-pn-realaudio" }, {"doc", "application/msword", }, {"exe", "application/octet-stream" }, {"zip", "application/x-zip-compressed" }, {"xls", "application/excel" }, {"tgz", "application/x-tar-gz" }, {"tar", "application/x-tar" }, {"gz", "application/x-gunzip" }, {"arj", "application/x-arj-compressed" }, {"rar", "application/x-arj-compressed" }, {"rtf", "application/rtf" }, {"pdf", "application/pdf" }, {"swf", "application/x-shockwave-flash" }, {"mpg", "video/mpeg" }, {"mpeg", "video/mpeg" }, {"asf", "video/x-ms-asf" }, {"avi", "video/x-msvideo" }, {"bmp", "image/bmp" }, {NULL, NULL } }; static const char * get_mime_type(const char *path) { size_t i; const char *ext; if ((ext = strrchr(path, '.')) != NULL) { ext++; for (i = 0; mime_types[i].extension != NULL; i++) if (!mg_strcasecmp(ext, mime_types[i].extension)) return (mime_types[i].mime_type); } return ("text/plain"); } #if !defined(NO_AUTH) #ifndef HAVE_MD5 typedef struct MD5Context { uint32_t buf[4]; uint32_t bits[2]; unsigned char in[64]; } MD5_CTX; #if __BYTE_ORDER == 1234 #define byteReverse(buf, len) /* Nothing */ #else /* * Note: this code is harmless on little-endian machines. */ static void byteReverse(unsigned char *buf, unsigned longs) { uint32_t t; do { t = (uint32_t) ((unsigned) buf[3] << 8 | buf[2]) << 16 | ((unsigned) buf[1] << 8 | buf[0]); *(uint32_t *) buf = t; buf += 4; } while (--longs); } #endif /* __BYTE_ORDER */ /* The four core functions - F1 is optimized somewhat */ /* #define F1(x, y, z) (x & y | ~x & z) */ #define F1(x, y, z) (z ^ (x & (y ^ z))) #define F2(x, y, z) F1(z, x, y) #define F3(x, y, z) (x ^ y ^ z) #define F4(x, y, z) (y ^ (x | ~z)) /* This is the central step in the MD5 algorithm. */ #define MD5STEP(f, w, x, y, z, data, s) \ ( w += f(x, y, z) + data, w = w<>(32-s), w += x ) /* * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * initialization constants. */ static void MD5Init(MD5_CTX *ctx) { ctx->buf[0] = 0x67452301; ctx->buf[1] = 0xefcdab89; ctx->buf[2] = 0x98badcfe; ctx->buf[3] = 0x10325476; ctx->bits[0] = 0; ctx->bits[1] = 0; } /* * The core of the MD5 algorithm, this alters an existing MD5 hash to * reflect the addition of 16 longwords of new data. MD5Update blocks * the data and converts bytes into longwords for this routine. */ static void MD5Transform(uint32_t buf[4], uint32_t const in[16]) { register uint32_t a, b, c, d; a = buf[0]; b = buf[1]; c = buf[2]; d = buf[3]; MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); buf[0] += a; buf[1] += b; buf[2] += c; buf[3] += d; } /* * Update context to reflect the concatenation of another buffer full * of bytes. */ static void MD5Update(MD5_CTX *ctx, unsigned char const *buf, unsigned len) { uint32_t t; /* Update bitcount */ t = ctx->bits[0]; if ((ctx->bits[0] = t + ((uint32_t) len << 3)) < t) ctx->bits[1]++; /* Carry from low to high */ ctx->bits[1] += len >> 29; t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ /* Handle any leading odd-sized chunks */ if (t) { unsigned char *p = (unsigned char *) ctx->in + t; t = 64 - t; if (len < t) { memcpy(p, buf, len); return; } memcpy(p, buf, t); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (uint32_t *) ctx->in); buf += t; len -= t; } /* Process data in 64-byte chunks */ while (len >= 64) { memcpy(ctx->in, buf, 64); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (uint32_t *) ctx->in); buf += 64; len -= 64; } /* Handle any remaining bytes of data. */ memcpy(ctx->in, buf, len); } /* * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ static void MD5Final(unsigned char digest[16], MD5_CTX *ctx) { unsigned count; unsigned char *p; /* Compute number of bytes mod 64 */ count = (ctx->bits[0] >> 3) & 0x3F; /* Set the first char of padding to 0x80. This is safe since there is always at least one byte free */ p = ctx->in + count; *p++ = 0x80; /* Bytes of padding needed to make 64 bytes */ count = 64 - 1 - count; /* Pad out to 56 mod 64 */ if (count < 8) { /* Two lots of padding: Pad the first block to 64 bytes */ memset(p, 0, count); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (uint32_t *) ctx->in); /* Now fill the next block with 56 bytes */ memset(ctx->in, 0, 56); } else { /* Pad block to 56 bytes */ memset(p, 0, count - 8); } byteReverse(ctx->in, 14); /* Append length in bits and transform */ ((uint32_t *) ctx->in)[14] = ctx->bits[0]; ((uint32_t *) ctx->in)[15] = ctx->bits[1]; MD5Transform(ctx->buf, (uint32_t *) ctx->in); byteReverse((unsigned char *) ctx->buf, 4); memcpy(digest, ctx->buf, 16); memset((char *) ctx, 0, sizeof(ctx)); /* In case it's sensitive */ } #endif /* !HAVE_MD5 */ /* * Stringify binary data. Output buffer must be twice as big as input, * because each byte takes 2 bytes in string representation */ static void bin2str(char *to, const unsigned char *p, size_t len) { static const char *hex = "0123456789abcdef"; for (; len--; p++) { *to++ = hex[p[0] >> 4]; *to++ = hex[p[0] & 0x0f]; } *to = '\0'; } /* * Return stringified MD5 hash for list of vectors. * buf must point to 33-bytes long buffer */ void mg_md5(char *buf, ...) { unsigned char hash[16]; const char *p; va_list ap; MD5_CTX ctx; MD5Init(&ctx); va_start(ap, buf); while ((p = va_arg(ap, const char *)) != NULL) MD5Update(&ctx, (unsigned char *) p, (int) strlen(p)); va_end(ap); MD5Final(hash, &ctx); bin2str(buf, hash, sizeof(hash)); } /* * Check the user's password, return 1 if OK */ static bool_t check_password(const char *method, const char *ha1, const char *uri, const char *nonce, const char *nc, const char *cnonce, const char *qop, const char *response) { char ha2[32 + 1], expected_response[32 + 1]; /* XXX Due to a bug in MSIE, we do not compare the URI */ /* Also, we do not check for authentication timeout */ if (/*strcmp(dig->uri, c->ouri) != 0 || */ strlen(response) != 32 /*|| now - strtoul(dig->nonce, NULL, 10) > 3600 */) return (FALSE); mg_md5(ha2, method, ":", uri, NULL); mg_md5(expected_response, ha1, ":", nonce, ":", nc, ":", cnonce, ":", qop, ":", ha2, NULL); return (!mg_strcasecmp(response, expected_response)); } /* * Use the global passwords file, if specified by auth_gpass option, * or search for .htpasswd in the requested directory. */ static FILE * open_auth_file(struct mg_context *ctx, const char *path) { char name[FILENAME_MAX]; const char *p, *e; struct stat st; FILE *fp; if (ctx->options[OPT_AUTH_GPASSWD] != NULL) { /* Use global passwords file */ if ((fp = fopen(ctx->options[OPT_AUTH_GPASSWD], "r")) == NULL) cry("fopen(%s): %s", ctx->options[OPT_AUTH_GPASSWD], strerror(ERRNO)); } else if (!mg_stat(path, &st) && S_ISDIR(st.st_mode)) { (void) mg_snprintf(name, sizeof(name), "%s%c%s", path, DIRSEP, PASSWORDS_FILE_NAME); fp = fopen(name, "r"); } else { /* * Try to find .htpasswd in requested directory. * Given the path, create the path to .htpasswd file * in the same directory. Find the right-most * directory separator character first. That would be the * directory name. If directory separator character is not * found, 'e' will point to 'p'. */ for (p = path, e = p + strlen(p) - 1; e > p; e--) if (IS_DIRSEP_CHAR(*e)) break; /* * Make up the path by concatenating directory name and * .htpasswd file name. */ (void) mg_snprintf(name, sizeof(name), "%.*s%c%s", (int) (e - p), p, DIRSEP, PASSWORDS_FILE_NAME); fp = fopen(name, "r"); } return (fp); } struct ah { char *user, *uri, *cnonce, *response, *qop, *nc, *nonce; }; static bool_t parse_auth_header(struct mg_connection *conn, char *buf, size_t buf_size, struct ah *ah) { char *name, *value, *s; const char *auth_header; if ((auth_header = mg_get_header(conn, "Authorization")) == NULL || mg_strncasecmp(auth_header, "Digest ", 7) != 0) return (FALSE); /* Make modifiable copy of the auth header */ (void) mg_strlcpy(buf, auth_header + 7, buf_size); s = buf; (void) memset(ah, 0, sizeof(*ah)); /* Gobble initial spaces */ while (isspace(* (unsigned char *) s)) s++; /* Parse authorization header */ for (;;) { name = skip(&s, "="); value = skip(&s, ", "); if (*value == '"') { value++; value[strlen(value) - 1] = '\0'; } else if (*value == '\0') { break; } if (!strcmp(name, "username")) { ah->user = value; } else if (!strcmp(name, "cnonce")) { ah->cnonce = value; } else if (!strcmp(name, "response")) { ah->response = value; } else if (!strcmp(name, "uri")) { ah->uri = value; } else if (!strcmp(name, "qop")) { ah->qop = value; } else if (!strcmp(name, "nc")) { ah->nc = value; } else if (!strcmp(name, "nonce")) { ah->nonce = value; } } /* CGI needs it as REMOTE_USER */ if (ah->user != NULL) conn->request_info.remote_user = mg_strdup(ah->user); return (TRUE); } /* * Authorize against the opened passwords file. Return 1 if authorized. */ static bool_t authorize(struct mg_connection *conn, FILE *fp) { struct ah ah; char line[256], f_user[256], domain[256], ha1[256], buf[MAX_REQUEST_SIZE]; if (!parse_auth_header(conn, buf, sizeof(buf), &ah)) return (FALSE); /* Loop over passwords file */ while (fgets(line, sizeof(line), fp) != NULL) { if (sscanf(line, "%[^:]:%[^:]:%s", f_user, domain, ha1) != 3) continue; if (!strcmp(ah.user, f_user) && !strcmp(domain, conn->ctx->options[OPT_AUTH_DOMAIN])) return (check_password( conn->request_info.request_method, ha1, ah.uri, ah.nonce, ah.nc, ah.cnonce, ah.qop, ah.response)); } return (FALSE); } /* * Return TRUE if request is authorised, FALSE otherwise. */ static bool_t check_authorization(struct mg_connection *conn, const char *path) { FILE *fp; size_t len, n; char protected_path[FILENAME_MAX]; const char *p, *s; const struct callback *cb; bool_t authorized; fp = NULL; authorized = TRUE; mg_lock(conn->ctx); s = conn->ctx->options[OPT_PROTECT]; FOR_EACH_WORD_IN_LIST(s, len) { p = (const char *) memchr(s, '=', len); if (p == NULL || p >= s + len || p == s) continue; if (!memcmp(conn->request_info.uri, s, p - s)) { n = (size_t) (s + len - p); if (n > sizeof(protected_path) - 1) n = sizeof(protected_path) - 1; mg_strlcpy(protected_path, p + 1, n); if ((fp = fopen(protected_path, "r")) == NULL) cry("check_auth: cannot open %s: %s", protected_path, strerror(errno)); break; } } mg_unlock(conn->ctx); if (fp == NULL) fp = open_auth_file(conn->ctx, path); if (fp != NULL) { authorized = authorize(conn, fp); (void) fclose(fp); } if ((cb = find_callback(conn->ctx, TRUE, conn->request_info.uri, -1)) != NULL) { struct ah ah; char buf[MAX_REQUEST_SIZE]; void *user_data = cb->user_data; authorized = FALSE; if (parse_auth_header(conn, buf, sizeof(buf), &ah)) { cb->func(conn, &conn->request_info, &user_data); authorized = (bool_t) (long) user_data; } } return (authorized); } static void send_authorization_request(struct mg_connection *conn) { (void) mg_printf(conn, "HTTP/1.1 401 Unauthorized\r\n" "WWW-Authenticate: Digest qop=\"auth\", " "realm=\"%s\", nonce=\"%lu\"\r\n\r\n", conn->ctx->options[OPT_AUTH_DOMAIN], (unsigned long) time(NULL)); } static bool_t is_authorized_for_put(struct mg_connection *conn) { FILE *fp; int ret = FALSE; if ((fp = fopen(conn->ctx->options[OPT_AUTH_PUT], "r")) != NULL) { set_close_on_exec(fileno(fp)); ret = authorize(conn, fp); (void) fclose(fp); } return (ret); } #endif /* NO_AUTH */ static bool_t does_client_want_keep_alive(const struct mg_connection *conn) { const char *value = mg_get_header(conn, "Connection"); /* HTTP/1.1 assumes keep-alive, if Connection header is not set */ return ((value == NULL && conn->request_info.http_version_major == 1 && conn->request_info.http_version_minor == 1) || (value != NULL && !mg_strcasecmp(value, "keep-alive"))); } struct de { struct mg_connection *conn; char *file_name; struct stat st; }; static void print_dir_entry(struct de *de) { char size[64], mod[64]; if (S_ISDIR(de->st.st_mode)) { (void) mg_snprintf(size, sizeof(size), "%s", "[DIRECTORY]"); } else { if (de->st.st_size < 1024) (void) mg_snprintf(size, sizeof(size), "%lu", (unsigned long) de->st.st_size); else if (de->st.st_size < 1024 * 1024) (void) mg_snprintf(size, sizeof(size), "%.1fk", (double) de->st.st_size / 1024); else if (de->st.st_size < 1024 * 1024 * 1024) (void) mg_snprintf(size, sizeof(size), "%.1fM", (double) de->st.st_size / 1048576); else (void) mg_snprintf(size, sizeof(size), "%.1fG", (double) de->st.st_size / 1073741824); } (void) strftime(mod, sizeof(mod), "%d-%b-%Y %H:%M", localtime(&de->st.st_mtime)); de->conn->num_bytes_sent += mg_printf(de->conn, "
%s%s" " %s  %s\n", de->conn->request_info.uri, de->file_name, de->file_name, S_ISDIR(de->st.st_mode) ? "/" : "", mod, size); } static int compare_dir_entries(const void *p1, const void *p2) { const struct de *a = (struct de *) p1, *b = (struct de *) p2; const char *query_string = a->conn->request_info.query_string; int cmp_result = 0; if (query_string == NULL) query_string = "na"; if (S_ISDIR(a->st.st_mode) && !S_ISDIR(b->st.st_mode)) { return (-1); /* Always put directories on top */ } else if (!S_ISDIR(a->st.st_mode) && S_ISDIR(b->st.st_mode)) { return (1); /* Always put directories on top */ } else if (*query_string == 'n') { cmp_result = strcmp(a->file_name, b->file_name); } else if (*query_string == 's') { cmp_result = a->st.st_size == b->st.st_size ? 0 : a->st.st_size > b->st.st_size ? 1 : -1; } else if (*query_string == 'd') { cmp_result = a->st.st_mtime == b->st.st_mtime ? 0 : a->st.st_mtime > b->st.st_mtime ? 1 : -1; } return (query_string[1] == 'd' ? -cmp_result : cmp_result); } static void send_directory(struct mg_connection *conn, const char *dir) { struct dirent *dp; DIR *dirp; struct de *entries = NULL; char path[FILENAME_MAX], sort_direction; int i, num_entries = 0, arr_size = 128; if ((dirp = opendir(dir)) == NULL) { send_error(conn, 500, "Cannot open directory", "Error: opendir(%s): %s", path, strerror(ERRNO)); return; } (void) mg_printf(conn, "%s", "HTTP/1.1 200 OK\r\n" "Connection: close\r\n" "Content-Type: text/html; charset=utf-8\r\n\r\n"); sort_direction = conn->request_info.query_string != NULL && conn->request_info.query_string[1] == 'd' ? 'a' : 'd'; while ((dp = readdir(dirp)) != NULL) { /* Do not show current dir and passwords file */ if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..") || !strcmp(dp->d_name, PASSWORDS_FILE_NAME)) continue; if (entries == NULL || num_entries >= arr_size) { arr_size *= 2; entries = (struct de *) realloc(entries, arr_size * sizeof(entries[0])); } if (entries == NULL) { send_error(conn, 500, "Cannot open directory", "%s", "Error: cannot allocate memory"); return; } (void) mg_snprintf(path, sizeof(path), "%s%c%s", dir, DIRSEP, dp->d_name); (void) stat(path, &entries[num_entries].st); entries[num_entries].conn = conn; entries[num_entries].file_name = mg_strdup(dp->d_name); num_entries++; } (void) closedir(dirp); conn->num_bytes_sent += mg_printf(conn, "Index of %s" "" "

Index of %s

"
	    ""
	    ""
	    ""
	    "",
	    conn->request_info.uri, conn->request_info.uri,
	    sort_direction, sort_direction, sort_direction);
	
	/* Print first entry - link to a parent directory */
	conn->num_bytes_sent += mg_printf(conn,
	    ""
	    "\n",
	    conn->request_info.uri, "..", "Parent directory", "-", "-");	

	/* Sort and print directory entries */
	qsort(entries, num_entries, sizeof(entries[0]), compare_dir_entries);
	for (i = 0; i < num_entries; i++) {
		print_dir_entry(&entries[i]);
		free(entries[i].file_name);
	}
	free(entries);

	conn->num_bytes_sent += mg_printf(conn, "%s", "
NameModifiedSize

%s %s  %s
"); conn->request_info.status_code = 200; } /* * Send len bytes from the opened file to the client. */ static void send_opened_file_stream(struct mg_connection *conn, int fd, uint64_t len) { char buf[BUFSIZ]; int n; while (len > 0) { n = sizeof(buf); if ((uint64_t) n > len) n = (int) len; if ((n = read(fd, buf, n)) <= 0) break; conn->num_bytes_sent += mg_write(conn, buf, n); len -= n; } } static void send_file(struct mg_connection *conn, const char *path, struct stat *stp) { char date[64], lm[64], etag[64], range[64]; const char *fmt = "%a, %d %b %Y %H:%M:%S GMT", *msg = "OK"; const char *mime_type, *s; time_t curtime = time(NULL); unsigned long long cl, r1, r2; int fd, n; mime_type = get_mime_type(path); cl = stp->st_size; conn->request_info.status_code = 200; range[0] = '\0'; if ((fd = mg_open(path, O_RDONLY | O_BINARY, 0644)) == -1) { send_error(conn, 500, http_500_error, "fopen(%s): %s", path, strerror(ERRNO)); return; } set_close_on_exec(fd); /* If Range: header specified, act accordingly */ s = mg_get_header(conn, "Range"); r1 = r2 = 0; if (s != NULL && (n = sscanf(s,"bytes=%llu-%llu", &r1, &r2)) > 0) { conn->request_info.status_code = 206; (void) lseek(fd, (long) r1, SEEK_SET); cl = n == 2 ? r2 - r1 + 1: cl - r1; (void) mg_snprintf(range, sizeof(range), "Content-Range: bytes %llu-%llu/%llu\r\n", r1, r1 + cl - 1, cl); msg = "Partial Content"; } /* Prepare Etag, Date, Last-Modified headers */ (void) strftime(date, sizeof(date), fmt, localtime(&curtime)); (void) strftime(lm, sizeof(lm), fmt, localtime(&stp->st_mtime)); (void) mg_snprintf(etag, sizeof(etag), "%lx.%lx", (unsigned long) stp->st_mtime, (unsigned long) stp->st_size); /* Since we send Content-Length, we can keep the connection alive */ conn->keep_alive = does_client_want_keep_alive(conn); (void) mg_printf(conn, "HTTP/1.1 %d %s\r\n" "Date: %s\r\n" "Last-Modified: %s\r\n" "Etag: \"%s\"\r\n" "Content-Type: %s\r\n" "Content-Length: %llu\r\n" "Connection: %s\r\n" "Accept-Ranges: bytes\r\n" "%s\r\n", conn->request_info.status_code, msg, date, lm, etag, mime_type, cl, conn->keep_alive ? "keep-alive" : "close", range); if (strcmp(conn->request_info.request_method, "HEAD") != 0) send_opened_file_stream(conn, fd, cl); (void) close(fd); } static void parse_http_headers(char **buf, struct mg_request_info *ri) { int i; for (i = 0; i < MAX_HTTP_HEADERS; i++) { ri->http_headers[i].name = skip(buf, ": "); ri->http_headers[i].value = skip(buf, "\r\n"); if (ri->http_headers[i].name[0] == '\0') break; ri->num_headers = i + 1; } } static bool_t is_known_http_method(const char *method) { return (!strcmp(method, "GET") || !strcmp(method, "POST") || !strcmp(method, "HEAD") || !strcmp(method, "PUT") || !strcmp(method, "DELETE")); } static bool_t parse_http_request(char *buf, struct mg_request_info *ri, const struct usa *usa) { char *http_version; int n, success_code = FALSE; ri->request_method = skip(&buf, " "); ri->uri = skip(&buf, " "); http_version = skip(&buf, "\r\n"); if (is_known_http_method(ri->request_method) && ri->uri[0] == '/' && sscanf(http_version, "HTTP/%d.%d%n", &ri->http_version_major, &ri->http_version_minor, &n) == 2 && http_version[n] == '\0') { parse_http_headers(&buf, ri); ri->remote_port = ntohs(usa->u.sin.sin_port); (void) memcpy(&ri->remote_ip, &usa->u.sin.sin_addr.s_addr, 4); ri->remote_ip = ntohl(ri->remote_ip); success_code = TRUE; } return (success_code); } static int read_request(int fd, SOCKET sock, SSL *ssl, char *buf, int bufsiz, int *nread) { int n, request_len; request_len = 0; while (*nread < bufsiz && request_len == 0) { n = pull(fd, sock, ssl, buf + *nread, bufsiz - *nread); if (n <= 0) { break; } else { *nread += n; request_len = get_request_len(buf, (size_t) *nread); } } return (request_len); } /* * For given directory path, substitute it to valid index file. * Return 0 if index file has been found, -1 if not found */ static bool_t substitute_index_file(struct mg_connection *conn, char *path, size_t path_len, struct stat *stp) { const char *s; struct stat st; size_t len, n; bool_t found; n = strlen(path); path[n] = DIRSEP; found = FALSE; mg_lock(conn->ctx); s = conn->ctx->options[OPT_INDEX_FILES]; FOR_EACH_WORD_IN_LIST(s, len) { if (len > path_len - n - 1) continue; (void) mg_strlcpy(path + n + 1, s, len + 1); if (stat(path, &st) == 0) { *stp = st; found = TRUE; break; } } mg_unlock(conn->ctx); if (found == FALSE) path[n] = '\0'; return (found); } static void mg_bind(struct mg_context *ctx, const char *uri_regex, int status_code, mg_callback_t func, bool_t is_auth, void *user_data) { struct callback *cb; if (ctx->num_callbacks >= (int) ARRAY_SIZE(ctx->callbacks) - 1) { cry("Too many callbacks! Increase MAX_CALLBACKS."); } else { cb = &ctx->callbacks[ctx->num_callbacks]; cb->uri_regex = uri_regex ? mg_strdup(uri_regex) : NULL; cb->func = func; cb->is_auth = is_auth; cb->status_code = status_code; cb->user_data = user_data; ctx->num_callbacks++; } } void mg_bind_to_uri(struct mg_context *ctx, const char *uri_regex, mg_callback_t func, void *user_data) { assert(func != NULL); assert(uri_regex != NULL); mg_bind(ctx, uri_regex, -1, func, FALSE, user_data); } void mg_bind_to_error_code(struct mg_context *ctx, int error_code, mg_callback_t func, void *user_data) { assert(error_code >= 0 && error_code < 1000); assert(func != NULL); mg_bind(ctx, NULL, error_code, func, FALSE, user_data); } void mg_protect_uri(struct mg_context *ctx, const char *uri_regex, mg_callback_t func, void *user_data) { assert(func != NULL); assert(uri_regex != NULL); mg_bind(ctx, uri_regex, -1, func, TRUE, user_data); } static int not_modified(const struct mg_connection *conn, const struct stat *stp) { const char *ims = mg_get_header(conn, "If-Modified-Since"); return (ims != NULL && stp->st_mtime < date_to_epoch(ims)); } static bool_t append_chunk(struct mg_request_info *ri, int fd, const char *buf, int len) { bool_t ret_code = TRUE; if (fd == -1) { /* TODO: check for NULL here */ ri->post_data = (char *) realloc(ri->post_data, ri->post_data_len + len); (void) memcpy(ri->post_data + ri->post_data_len, buf, len); ri->post_data_len += len; } else if (push(fd, INVALID_SOCKET, NULL, buf, (uint64_t) len) != (uint64_t) len) { ret_code = FALSE; } return (ret_code); } static bool_t handle_request_body(struct mg_connection *conn, int fd) { struct mg_request_info *ri = &conn->request_info; const char *expect, *tmp; uint64_t content_len; char buf[BUFSIZ]; int to_read, nread, already_read; bool_t success_code = FALSE; content_len = get_content_length(conn); expect = mg_get_header(conn, "Expect"); if (content_len == UNKNOWN_CONTENT_LENGTH) { send_error(conn, 411, "Length Required", ""); } else if (expect != NULL && mg_strcasecmp(expect, "100-continue")) { send_error(conn, 417, "Expectation Failed", ""); } else { if (expect != NULL) (void) mg_printf(conn, "HTTP/1.1 100 Continue\r\n\r\n"); already_read = ri->post_data_len; assert(already_read >= 0); if (content_len <= (uint64_t) already_read) { ri->post_data_len = (int) content_len; /* * If fd == -1, this is embedded mode, and we do not * have to do anything: POST data is already there, * no need to allocate a buffer and copy it in. * If fd != -1, we need to write the data. */ success_code = (fd == -1) || (push(fd, INVALID_SOCKET, NULL, ri->post_data, content_len) == content_len) ? TRUE : FALSE; } else { if (fd == -1) { conn->free_post_data = TRUE; tmp = ri->post_data; /* +1 in case if already_read == 0 */ ri->post_data = (char*)malloc(already_read + 1); (void) memcpy(ri->post_data, tmp, already_read); } else { (void) push(fd, INVALID_SOCKET, NULL, ri->post_data, (uint64_t) already_read); } content_len -= already_read; while (content_len > 0) { to_read = sizeof(buf); if ((uint64_t) to_read > content_len) to_read = (int) content_len; nread = pull(-1, conn->sock, conn->ssl, buf, to_read); if (nread <= 0) break; if (!append_chunk(ri, fd, buf, nread)) break; content_len -= nread; } success_code = content_len == 0 ? TRUE : FALSE; } /* Each error code path in this function must send an error */ if (success_code != TRUE) send_error(conn, 577, http_500_error, "%s", "Error handling body data"); } return (success_code); } #if !defined(NO_CGI) struct cgi_env_block { char buf[CGI_ENVIRONMENT_SIZE]; /* Environment buffer */ int len; /* Space taken */ char *vars[MAX_CGI_ENVIR_VARS]; /* char **envp */ int nvars; /* Number of variables */ }; static char * addenv(struct cgi_env_block *block, const char *fmt, ...) { int n, space; char *added; va_list ap; space = sizeof(block->buf) - block->len - 2; assert(space >= 0); added = block->buf + block->len; va_start(ap, fmt); n = mg_vsnprintf(added, (size_t) space, fmt, ap); va_end(ap); if (n > 0 && n < space && block->nvars < (int) ARRAY_SIZE(block->vars) - 2) { block->vars[block->nvars++] = block->buf + block->len; block->len += n + 1; /* Include \0 terminator */ } return (added); } static void prepare_cgi_environment(struct mg_connection *conn, const char *prog, struct cgi_env_block *blk) { const char *s, *script_filename, *root; char *p; int i; blk->len = blk->nvars = 0; /* SCRIPT_FILENAME */ script_filename = prog; if ((s = strrchr(prog, '/')) != NULL) script_filename = s + 1; mg_lock(conn->ctx); root = conn->ctx->options[OPT_ROOT]; addenv(blk, "SERVER_NAME=%s", conn->ctx->options[OPT_AUTH_DOMAIN]); mg_unlock(conn->ctx); /* Prepare the environment block */ addenv(blk, "%s", "GATEWAY_INTERFACE=CGI/1.1"); addenv(blk, "%s", "SERVER_PROTOCOL=HTTP/1.1"); addenv(blk, "%s", "REDIRECT_STATUS=200"); /* PHP */ addenv(blk, "SERVER_PORT=%d", ntohs(conn->lsa.u.sin.sin_port)); addenv(blk, "SERVER_ROOT=%s", root); addenv(blk, "DOCUMENT_ROOT=%s", root); addenv(blk, "REQUEST_METHOD=%s", conn->request_info.request_method); addenv(blk, "REMOTE_ADDR=%s", inet_ntoa(conn->rsa.u.sin.sin_addr)); addenv(blk, "REMOTE_PORT=%d", conn->request_info.remote_port); addenv(blk, "REQUEST_URI=%s", conn->request_info.uri); addenv(blk, "SCRIPT_NAME=%s", prog + strlen(root)); addenv(blk, "SCRIPT_FILENAME=%s", script_filename); /* PHP */ addenv(blk, "PATH_TRANSLATED=%s", prog); if ((s = mg_get_header(conn, "Content-Type")) != NULL) addenv(blk, "CONTENT_TYPE=%s", s); if (conn->request_info.query_string != NULL) addenv(blk, "QUERY_STRING=%s", conn->request_info.query_string); if ((s = mg_get_header(conn, "Content-Length")) != NULL) addenv(blk, "CONTENT_LENGTH=%s", s); if ((s = getenv("PATH")) != NULL) addenv(blk, "PATH=%s", s); #if defined(_WIN32) if ((s = getenv("COMSPEC")) != NULL) addenv(blk, "COMSPEC=%s", s); if ((s = getenv("SYSTEMROOT")) != NULL) addenv(blk, "SYSTEMROOT=%s", s); #else if ((s = getenv("LD_LIBRARY_PATH")) != NULL) addenv(blk, "LD_LIBRARY_PATH=%s", s); #endif /* _WIN32 */ if ((s = getenv("PERLLIB")) != NULL) addenv(blk, "PERLLIB=%s", s); if (conn->request_info.remote_user != NULL) { addenv(blk, "REMOTE_USER=%s", conn->request_info.remote_user); addenv(blk, "%s", "AUTH_TYPE=Digest"); } /* Add all headers as HTTP_* variables */ for (i = 0; i < conn->request_info.num_headers; i++) { p = addenv(blk, "HTTP_%s=%s", conn->request_info.http_headers[i].name, conn->request_info.http_headers[i].value); /* Convert variable name into uppercase, and change - to _ */ for (; *p != '=' && *p != '\0'; p++) { if (*p == '-') *p = '_'; *p = toupper(* (unsigned char *) p) & 0xff; } } blk->vars[blk->nvars++] = NULL; blk->buf[blk->len++] = '\0'; assert(blk->nvars < (int) ARRAY_SIZE(blk->vars)); assert(blk->len > 0); assert(blk->len < (int) sizeof(blk->buf)); } static void send_cgi(struct mg_connection *conn, const char *prog) { int headers_len, data_len, i, n; const char *status; char buf[MAX_REQUEST_SIZE], *pbuf; struct mg_request_info ri; struct cgi_env_block blk; char dir[FILENAME_MAX], *p; int fd_stdin[2], fd_stdout[2]; prepare_cgi_environment(conn, prog, &blk); /* CGI must be executed in its own directory */ (void) mg_snprintf(dir, sizeof(dir), "%s", prog); if ((p = strrchr(dir, DIRSEP)) != NULL) *p++ = '\0'; fd_stdin[0] = fd_stdin[1] = fd_stdout[0] = fd_stdout[1] = -1; if (pipe(fd_stdin) != 0 || pipe(fd_stdout) != 0) { send_error(conn, 500, http_500_error, "Cannot create CGI pipe: %s", strerror(ERRNO)); goto done; } if (!spawn_process(conn, p, blk.buf, blk.vars, fd_stdin[0], fd_stdout[1], dir)) { goto done; } /* * spawn_process() must close those! * If we don't mark them as closed, close() attempt before * return from this function throws an exception on Windows. * Windows does not like when closed descriptor is closed again. */ fd_stdin[0] = fd_stdout[1] = -1; /* Send POST data to the CGI process if needed */ if (!strcmp(conn->request_info.request_method, "POST") && !handle_request_body(conn, fd_stdin[1])) { goto done; } /* * Now read CGI reply into a buffer. We need to set correct * status code, thus we need to see all HTTP headers first. * Do not send anything back to client, until we buffer in all * HTTP headers. */ data_len = 0; headers_len = read_request(fd_stdout[0], INVALID_SOCKET, NULL, buf, sizeof(buf), &data_len); if (headers_len <= 0) { send_error(conn, 500, http_500_error, "CGI program sent malformed HTTP headers: [%.*s]", data_len, buf); goto done; } pbuf = buf; buf[headers_len - 1] = '\0'; parse_http_headers(&pbuf, &ri); /* Make up and send the status line */ status = get_header(&ri, "Status"); conn->request_info.status_code = status == NULL ? 200 : atoi(status); (void) mg_printf(conn, "HTTP/1.1 %d OK\r\n", conn->request_info.status_code); /* Send headers */ for (i = 0; i < ri.num_headers; i++) (void) mg_printf(conn, "%s: %s\r\n", ri.http_headers[i].name, ri.http_headers[i].value); (void) mg_write(conn, "\r\n", 2); /* Send headers, and the rest of the data */ conn->num_bytes_sent += mg_write(conn, buf + headers_len, data_len - headers_len); while ((n = pull(fd_stdout[0], INVALID_SOCKET, NULL, buf, sizeof(buf))) > 0) conn->num_bytes_sent += mg_write(conn, buf, n); done: if (fd_stdin[0] != -1) (void) close(fd_stdin[0]); if (fd_stdin[1] != -1) (void) close(fd_stdin[1]); if (fd_stdout[0] != -1) (void) close(fd_stdout[0]); if (fd_stdout[1] != -1) (void) close(fd_stdout[1]); } #endif /* !NO_CGI */ #if !defined(NO_AUTH) /* * For a given PUT path, create all intermediate subdirectories * for given path. Return 0 if the path itself is a directory, * or -1 on error, 1 if OK. */ static int put_dir(const char *path) { char buf[FILENAME_MAX]; const char *s, *p; struct stat st; size_t len; for (s = p = path + 2; (p = strchr(s, '/')) != NULL; s = ++p) { len = p - path; assert(len < sizeof(buf)); (void) memcpy(buf, path, len); buf[len] = '\0'; /* Try to create intermediate directory */ if (mg_stat(buf, &st) == -1 && mg_mkdir(buf, 0755) != 0) return (-1); /* Is path itself a directory ? */ if (p[1] == '\0') return (0); } return (1); } static void put_file(struct mg_connection *conn, const char *path) { struct stat st; int rc, fd; conn->request_info.status_code = mg_stat(path, &st) == 0 ? 200 : 201; if (mg_get_header(conn, "Range")) { send_error(conn, 501, "Not Implemented", "%s", "Range support for PUT requests is not implemented"); } else if ((rc = put_dir(path)) == 0) { send_error(conn, 200, "OK", ""); } else if (rc == -1) { send_error(conn, 500, http_500_error, "put_dir(%s): %s", path, strerror(ERRNO)); } else if ((fd = mg_open(path, O_WRONLY | O_BINARY | O_CREAT | O_TRUNC, 0644)) == -1) { send_error(conn, 500, http_500_error, "open(%s): %s", path, strerror(ERRNO)); } else { set_close_on_exec(fd); if (handle_request_body(conn, fd)) send_error(conn, conn->request_info.status_code, "OK", ""); (void) close(fd); } } #endif /* NO_AUTH */ #if !defined(NO_SSI) static void do_ssi_include(struct mg_connection *conn, const char *ssi, char *tag) { char file_name[BUFSIZ], path[FILENAME_MAX], *p; FILE *fp; /* * sscanf() is safe here, since send_ssi_file() also uses buffer * of size BUFSIZ to get the tag. So strlen(tag) is always < BUFSIZ. */ if (sscanf(tag, " virtual=\"%[^\"]\"", file_name) == 1) { /* File name is relative to the webserver root */ mg_lock(conn->ctx); (void) mg_snprintf(path, sizeof(path), "%s%c%s", conn->ctx->options[OPT_ROOT], DIRSEP, file_name); mg_unlock(conn->ctx); } else if (sscanf(tag, " file=\"%[^\"]\"", file_name) == 1) { /* * File name is relative to the webserver working directory * or it is absolute system path */ (void) mg_snprintf(path, sizeof(path), "%s", file_name); } else if (sscanf(tag, " \"%[^\"]\"", file_name) == 1) { /* File name is relative to the currect document */ (void) mg_snprintf(path, sizeof(path), "%s", ssi); if ((p = strrchr(path, DIRSEP)) != NULL) p[1] = '\0'; (void) mg_snprintf(path + strlen(path), sizeof(path) - strlen(path), "%s", file_name); } else { cry("Bad SSI #include: [%s]", tag); return; } if ((fp = fopen(path, "rb")) == NULL) { cry("Cannot open SSI #include: [%s]: fopen(%s): %s", tag, path, strerror(ERRNO)); } else { set_close_on_exec(fileno(fp)); send_opened_file_stream(conn, fileno(fp), ~0ULL); (void) fclose(fp); } } static void do_ssi_exec(struct mg_connection *conn, char *tag) { char cmd[BUFSIZ]; FILE *fp; if (sscanf(tag, " \"%[^\"]\"", cmd) != 1) { cry("Bad SSI #exec: [%s]", tag); } else if ((fp = popen(cmd, "r")) == NULL) { cry("Cannot SSI #exec: [%s]: %s", cmd, strerror(ERRNO)); } else { send_opened_file_stream(conn, fileno(fp), ~0ULL); (void) pclose(fp); } } static void send_ssi_file(struct mg_connection *conn, const char *path, FILE *fp) { char buf[BUFSIZ]; int ch, len, in_ssi_tag; in_ssi_tag = FALSE; len = 0; while ((ch = fgetc(fp)) != EOF) { if (in_ssi_tag && ch == '>') { in_ssi_tag = FALSE; buf[len++] = ch & 0xff; buf[len] = '\0'; assert(len <= (int) sizeof(buf)); if (len < 6 || memcmp(buf, " empty line sep. header and body std::string::size_type sep( data.find( ':') ); if ( sep == std::string::npos ) ZYPP_THROW( PluginFrameException( "Missing colon in header" ) ); _header.insert( HeaderList::value_type( data.substr(0,sep), data.substr(sep+1) ) ); } while ( true ); // data _body = str::receiveUpTo( stream_r, '\0' ); if ( ! stream_r.good() ) ZYPP_THROW( PluginFrameException( "Missing NUL after body" ) ); } std::ostream & PluginFrame::Impl::writeTo( std::ostream & stream_r ) const { //DBG << "Write " << *this << " to " << stream_r << endl; if ( ! stream_r ) ZYPP_THROW( PluginFrameException( "Bad Stream" ) ); // command stream_r << _command << endl; // header for_( it, _header.begin(), _header.end() ) stream_r << it->first << ':' << it->second << endl; // body stream_r << endl << _body << '\0'; if ( ! stream_r ) ZYPP_THROW( PluginFrameException( "Write error" ) ); return stream_r; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : PluginFrame // /////////////////////////////////////////////////////////////////// const std::string & PluginFrame::ackCommand() { static std::string _val( "ACK" ); return _val; } const std::string & PluginFrame::errorCommand() { static std::string _val( "ERROR" ); return _val; } const std::string & PluginFrame::enomethodCommand() { static std::string _val( "_ENOMETHOD" ); return _val; } PluginFrame::PluginFrame() : _pimpl( Impl::nullimpl() ) {} PluginFrame::PluginFrame( const std::string & command_r ) : _pimpl( new Impl( command_r ) ) {} PluginFrame::PluginFrame( const std::string & command_r, const std::string & body_r ) : _pimpl( new Impl( command_r, body_r ) ) {} PluginFrame::PluginFrame( const std::string & command_r, HeaderInitializerList contents_r ) : _pimpl( new Impl( command_r, contents_r ) ) {} PluginFrame::PluginFrame( const std::string & command_r, const std::string & body_r, HeaderInitializerList contents_r ) : _pimpl( new Impl( command_r, body_r, contents_r ) ) {} PluginFrame::PluginFrame( std::istream & stream_r ) : _pimpl( new Impl( stream_r ) ) {} bool PluginFrame::empty() const { return _pimpl->empty(); } const std::string & PluginFrame::command() const { return _pimpl->command(); } void PluginFrame::setCommand( const std::string & command_r ) { _pimpl->setCommand( command_r ); } const std::string & PluginFrame::body() const { return _pimpl->body(); } std::string & PluginFrame::bodyRef() { return _pimpl->bodyRef(); } void PluginFrame::setBody( const std::string & body_r ) { _pimpl->setBody( body_r ); } std::ostream & PluginFrame::writeTo( std::ostream & stream_r ) const { return _pimpl->writeTo( stream_r ); } PluginFrame::HeaderList & PluginFrame::headerList() { return _pimpl->headerList(); } const PluginFrame::HeaderList & PluginFrame::headerList() const { return _pimpl->headerList(); } const std::string & PluginFrame::getHeader( const std::string & key_r ) const { return _pimpl->getHeader( key_r ); } const std::string & PluginFrame::getHeader( const std::string & key_r, const std::string & default_r ) const { return _pimpl->getHeader( key_r, default_r ); } const std::string & PluginFrame::getHeaderNT( const std::string & key_r, const std::string & default_r ) const { return _pimpl->getHeaderNT( key_r, default_r ); } void PluginFrame::setHeader( const std::string & key_r, const std::string & value_r ) { _pimpl->setHeader( key_r, value_r ); } void PluginFrame::addHeader( const std::string & key_r, const std::string & value_r ) { _pimpl->addHeader( key_r, value_r ); } void PluginFrame::addHeader( HeaderInitializerList contents_r ) { _pimpl->addHeader( contents_r ); } void PluginFrame::clearHeader( const std::string & key_r ) { _pimpl->clearHeader( key_r ); } /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const PluginFrame & obj ) { return str << *obj._pimpl; } bool operator==( const PluginFrame & lhs, const PluginFrame & rhs ) { return ( lhs._pimpl == rhs._pimpl ) || (( lhs.command() == rhs.command() ) && ( lhs.headerList() == rhs.headerList() ) && ( lhs.body() == rhs.body() )); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PluginFrame.h000066400000000000000000000240011334444677500167010ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginFrame.h * */ #ifndef ZYPP_PLUGINFRAME_H #define ZYPP_PLUGINFRAME_H #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/PluginFrameException.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Command frame for communication with \ref PluginScript * * \code * COMMAND * key:value header lines * * multiline body separated from header * by an empty line and terminated by NUL. * ^@ * \endcode * * \see PluginScript */ class PluginFrame { friend std::ostream & operator<<( std::ostream & str, const PluginFrame & obj ); friend bool operator==( const PluginFrame & lhs, const PluginFrame & rhs ); typedef const std::initializer_list> & HeaderInitializerList; public: /** "ACK" command. */ static const std::string & ackCommand(); /** "ERROR" command. */ static const std::string & errorCommand(); /** "_ENOMETHOD" command. */ static const std::string & enomethodCommand(); public: /** Default exception type */ typedef PluginFrameException Exception; /** Default ctor (empty frame) */ PluginFrame(); /** Ctor taking the command * \throw PluginFrameException If \ref setCommand throws */ PluginFrame( const std::string & command_r ); /** Ctor taking command and body * \throw PluginFrameException If \ref setCommand throws */ PluginFrame( const std::string & command_r, const std::string & body_r ); /** Ctor taking the command and a HeaderInitializerList * \throw PluginFrameException If \ref setCommand throws */ PluginFrame( const std::string & command_r, HeaderInitializerList contents_r ); /** Ctor taking command, body and a HeaderInitializerList * \throw PluginFrameException If \ref setCommand throws */ PluginFrame( const std::string & command_r, const std::string & body_r, HeaderInitializerList contents_r ); /** Ctor reading frame data from a stream * \throw PluginFrameException On error reading from stream * \throw PluginFrameException On error parsing the data */ PluginFrame( std::istream & stream_r ); public: /** Whether this is an empty frame. */ bool empty() const; /** Evaluate in a boolean context (not an empty frame) */ explicit operator bool() const { return !empty(); } public: /** Return the frame command. */ const std::string & command() const; /** Set the frame command * \throw PluginFrameException If illegal command string (e.g. multiline) */ void setCommand( const std::string & command_r ); /** Convenience to identify an ACK command. */ bool isAckCommand() const { return command() == ackCommand(); } /** Convenience to identify an ERROR command. */ bool isErrorCommand() const {return command() == errorCommand(); } /** Convenience to identify an _ENOMETHOD command. */ bool isEnomethodCommand() const {return command() == enomethodCommand(); } /** Return the frame body. */ const std::string & body() const; /** Return a reference to the frame body. * This may avoid creating unnecessary copies if you * want to manipulate large body data. * \code * std::string tmp; * frame.bodyRef().swap( tmp ); * \endcode */ std::string & bodyRef(); /** Set the frame body */ void setBody( const std::string & body_r ); public: /** The header list */ typedef std::multimap HeaderList; /** Header list iterator */ typedef HeaderList::const_iterator HeaderListIterator; private: /** Modifyalble header list for internal use only. */ HeaderList & headerList(); public: /** The header list. */ const HeaderList & headerList() const; /** Whether header list is empty. */ bool headerEmpty() const { return headerList().empty(); } /** Return size of the header list. */ unsigned headerSize() const { return headerList().size(); } /** Return iterator pointing to the 1st header (or \ref headerEnd) */ HeaderListIterator headerBegin() const { return headerList().begin(); } /** Return iterator pointing behind the last header. */ HeaderListIterator headerEnd() const { return headerList().end(); } /** Clear the list of headers. */ void headerClear() { headerList().clear(); } /** Whether the header list contains at least one entry for \c key_r. */ bool hasKey( const std::string & key_r ) const { return ! keyEmpty( key_r ); } /** \overload */ bool keyEmpty( const std::string & key_r ) const { return headerList().find( key_r ) == headerEnd(); } /** Return number of header entries for \c key_r. */ bool keySize( const std::string & key_r ) const { return headerList().count( key_r ); } /** Return iterator pointing to the 1st header for \c key_r (or \ref keyEnd(key_r)) */ HeaderListIterator keyBegin( const std::string & key_r ) const { return headerList().lower_bound( key_r ); } /** Return iterator pointing behind the last header for \c key_r.*/ HeaderListIterator keyEnd( const std::string & key_r ) const { return headerList().upper_bound( key_r ); } /** Return header value for \c key_r. * \throw PluginFrameException If no header for key_r exists. * \throw PluginFrameException If multiple header for key_r exist. */ const std::string & getHeader( const std::string & key_r ) const; /** Return header value for \c key_r or \c default_r if it does not exist. * \throw PluginFrameException If multiple header for key_r exist. */ const std::string & getHeader( const std::string & key_r, const std::string & default_r ) const; /** Not throwing version returing one of the matching header values or \c default_r string. */ const std::string & getHeaderNT( const std::string & key_r, const std::string & default_r = std::string() ) const; /** Set header for \c key_r removing all other occurrences of \c key_r. * \throw PluginFrameException If key contains illegal chars (\c NL or \c :) * \throw PluginFrameException If value contains illegal chars (\c NL) */ void setHeader( const std::string & key_r, const std::string & value_r = std::string() ); /** Set a new header list * \throw PluginFrameException If key contains illegal chars (\c NL or \c :) * \throw PluginFrameException If value contains illegal chars (\c NL) */ void setHeader( HeaderInitializerList contents_r ) { headerList().clear(); addHeader( contents_r ); } /** Add header for \c key_r leaving already existing headers for \c key_r unchanged. * \throw PluginFrameException If key contains illegal chars (\c NL or \c :) * \throw PluginFrameException If value contains illegal chars (\c NL) */ void addHeader( const std::string & key_r, const std::string & value_r = std::string() ); /** \overload taking an initializer_list */ void addHeader( HeaderInitializerList contents_r ); /** Remove all headers for \c key_r. */ void clearHeader( const std::string & key_r ); public: /** Write frame to stream * \throw PluginFrameException On error writing to stream */ std::ostream & writeTo( std::ostream & stream_r ) const; /** \overload Static version. */ static std::ostream & writeTo( std::ostream & stream_r, const PluginFrame & frame_r ) { return frame_r.writeTo( stream_r ); } /** Read frame from stream * \throw PluginFrameException If \ref PluginFrame(std::istream&) throws */ std::istream & readFrom( std::istream & stream_r ) { *this = PluginFrame( stream_r ); return stream_r; } /** \overload Static version. */ static std::istream & readFrom( std::istream & stream_r, PluginFrame & frame_r ) { frame_r = PluginFrame( stream_r ); return stream_r; } public: /** Implementation */ class Impl; private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /** \relates PluginFrame Stream output for logging */ std::ostream & operator<<( std::ostream & str, const PluginFrame & obj ); /** \relates PluginFrame Stream output writing all data for logging (no throw) */ inline std::ostream & dumpOn( std::ostream & str, const PluginFrame & obj ) { if ( str ) try { PluginFrame::writeTo( str, obj ); } catch(...){}; return str; } /** \relates PluginFrame Construct from stream. */ inline std::istream & operator>>( std::istream & str, PluginFrame & obj ) { return PluginFrame::readFrom( str, obj ); } /** \relates PluginFrame Comparison based on content. */ bool operator==( const PluginFrame & lhs, const PluginFrame & rhs ); /** \relates PluginFrame Comparison based on content. */ inline bool operator!=( const PluginFrame & lhs, const PluginFrame & rhs ) { return( ! operator==( lhs, rhs ) ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PLUGINFRAME_H libzypp-17.7.0/zypp/PluginFrameException.cc000066400000000000000000000027331334444677500207260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginFrameException.cc * */ #include //#include "zypp/base/LogTools.h" #include "zypp/PluginFrameException.h" #include "zypp/PluginFrame.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// PluginFrameException::PluginFrameException() : Exception( "PluginFrameException" ) {} PluginFrameException::PluginFrameException( const std::string & msg_r ) : Exception( msg_r ) {} PluginFrameException::PluginFrameException( const std::string & msg_r, const std::string & hist_r ) : Exception( msg_r ) { addHistory( hist_r ); } PluginFrameException::~PluginFrameException() throw() {}; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PluginFrameException.h000066400000000000000000000031761334444677500205720ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginFrameException.h * */ #ifndef ZYPP_PLUGINFRAMEEXCEPTION_H #define ZYPP_PLUGINFRAMEEXCEPTION_H #include #include "zypp/base/Exception.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PluginFrameException // /** Base class for \ref PluginFrame \ref Exception. */ class PluginFrameException : public Exception { public: PluginFrameException(); PluginFrameException( const std::string & msg_r ); PluginFrameException( const std::string & msg_r, const std::string & hist_r ); virtual ~PluginFrameException() throw(); }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PLUGINFRAMEEXCEPTION_H libzypp-17.7.0/zypp/PluginScript.cc000066400000000000000000000350301334444677500172550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginScript.cc * */ #include #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/base/String.h" #include "zypp/base/Signal.h" #include "zypp/base/IOStream.h" #include "zypp/PluginScript.h" #include "zypp/ExternalProgram.h" #include "zypp/PathInfo.h" using std::endl; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zypp::plugin" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace { const char * PLUGIN_DEBUG = getenv( "ZYPP_PLUGIN_DEBUG" ); /** Dump buffer string if PLUGIN_DEBUG is on. * \ingroup g_RAII */ struct PluginDebugBuffer { PluginDebugBuffer( const std::string & buffer_r ) : _buffer( buffer_r ) {} ~PluginDebugBuffer() { if ( PLUGIN_DEBUG ) { if ( _buffer.empty() ) { L_DBG("PLUGIN") << "< (empty)" << endl; } else { std::istringstream datas( _buffer ); iostr::copyIndent( datas, L_DBG("PLUGIN"), "< " ) << endl; } } } const std::string & _buffer; }; /** Dump programms stderr. * \ingroup g_RAII */ struct PluginDumpStderr { PluginDumpStderr( ExternalProgramWithStderr & prog_r ) : _prog( prog_r ) {} ~PluginDumpStderr() { std::string line; while ( _prog.stderrGetline( line ) ) L_WAR("PLUGIN") << "! " << line << endl; } ExternalProgramWithStderr & _prog; }; inline void setBlocking( FILE * file_r, bool yesno_r = true ) { if ( ! file_r ) ZYPP_THROW( PluginScriptException( "setNonBlocking" ) ); int fd = ::fileno( file_r ); if ( fd == -1 ) ZYPP_THROW( PluginScriptException( "setNonBlocking" ) ); int flags = ::fcntl( fd, F_GETFL ); if ( flags == -1 ) ZYPP_THROW( PluginScriptException( "setNonBlocking" ) ); if ( ! yesno_r ) flags |= O_NONBLOCK; else if ( flags & O_NONBLOCK ) flags ^= O_NONBLOCK; flags = ::fcntl( fd, F_SETFL, flags ); if ( flags == -1 ) ZYPP_THROW( PluginScriptException( "setNonBlocking" ) ); } inline void setNonBlocking( FILE * file_r, bool yesno_r = true ) { setBlocking( file_r, !yesno_r ); } } /////////////////////////////////////////////////////////////////// // // CLASS NAME : PluginScript::Impl // /** \ref PluginScript implementation. */ struct PluginScript::Impl { public: Impl( const Pathname & script_r = Pathname(), const Arguments & args_r = Arguments() ) : _sendTimeout( _defaultSendTimeout ) , _receiveTimeout( _defaultReceiveTimeout ) , _script( script_r ) , _args( args_r ) {} ~ Impl() { try { close(); } catch(...) {} } public: static long _defaultSendTimeout; static long _defaultReceiveTimeout; long _sendTimeout; long _receiveTimeout; public: const Pathname & script() const { return _script; } const Arguments & args() const { return _args; } pid_t getPid() const { return _cmd ? _cmd->getpid() : NotConnected; } bool isOpen() const { return _cmd != nullptr; } int lastReturn() const { return _lastReturn; } const std::string & lastExecError() const { return _lastExecError; } public: void open( const Pathname & script_r = Pathname(), const Arguments & args_r = Arguments() ); int close(); void send( const PluginFrame & frame_r ) const; PluginFrame receive() const; private: Pathname _script; Arguments _args; scoped_ptr _cmd; DefaultIntegral _lastReturn; std::string _lastExecError; }; /////////////////////////////////////////////////////////////////// /** \relates PluginScrip::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const PluginScript::Impl & obj ) { return str << "PluginScript[" << obj.getPid() << "] " << obj.script(); } /////////////////////////////////////////////////////////////////// namespace { const long PLUGIN_TIMEOUT = str::strtonum( getenv( "ZYPP_PLUGIN_TIMEOUT" ) ); const long PLUGIN_SEND_TIMEOUT = str::strtonum( getenv( "ZYPP_PLUGIN_SEND_TIMEOUT" ) ); const long PLUGIN_RECEIVE_TIMEOUT = str::strtonum( getenv( "ZYPP_PLUGIN_RECEIVE_TIMEOUT" ) ); } long PluginScript::Impl::_defaultSendTimeout = ( PLUGIN_SEND_TIMEOUT > 0 ? PLUGIN_SEND_TIMEOUT : ( PLUGIN_TIMEOUT > 0 ? PLUGIN_TIMEOUT : 30 ) ); long PluginScript::Impl::_defaultReceiveTimeout = ( PLUGIN_RECEIVE_TIMEOUT > 0 ? PLUGIN_RECEIVE_TIMEOUT : ( PLUGIN_TIMEOUT > 0 ? PLUGIN_TIMEOUT : 30 ) ); /////////////////////////////////////////////////////////////////// void PluginScript::Impl::open( const Pathname & script_r, const Arguments & args_r ) { dumpRangeLine( DBG << "Open " << script_r, args_r.begin(), args_r.end() ) << endl; if ( _cmd ) ZYPP_THROW( PluginScriptException( "Already connected", str::Str() << *this ) ); { PathInfo pi( script_r ); if ( ! ( pi.isFile() && pi.isX() ) ) ZYPP_THROW( PluginScriptException( "Script is not executable", str::Str() << pi ) ); } // go and launch script // TODO: ExternalProgram::maybe use Stderr_To_FileDesc for script loging Arguments args; args.reserve( args_r.size()+1 ); args.push_back( script_r.asString() ); args.insert( args.end(), args_r.begin(), args_r.end() ); _cmd.reset( new ExternalProgramWithStderr( args ) ); // Be protected against full pipe, etc. setNonBlocking( _cmd->outputFile() ); setNonBlocking( _cmd->inputFile() ); // store running scripts data _script = script_r; _args = args_r; _lastReturn.reset(); _lastExecError.clear(); dumpRangeLine( DBG << *this, _args.begin(), _args.end() ) << endl; } int PluginScript::Impl::close() { if ( _cmd ) { DBG << "Close:" << *this << endl; bool doKill = true; try { // do not kill script if _DISCONNECT is ACKed. send( PluginFrame( "_DISCONNECT" ) ); PluginFrame ret( receive() ); if ( ret.isAckCommand() ) { doKill = false; str::strtonum( ret.getHeaderNT( "exit" ), _lastReturn.get() ); _lastExecError = ret.body(); } } catch (...) { /* NOP */ } if ( doKill ) { _cmd->kill(); _lastReturn = _cmd->close(); _lastExecError = _cmd->execError(); } DBG << *this << " -> [" << _lastReturn << "] " << _lastExecError << endl; _cmd.reset(); } return _lastReturn; } void PluginScript::Impl::send( const PluginFrame & frame_r ) const { if ( !_cmd ) ZYPP_THROW( PluginScriptNotConnected( "Not connected", str::Str() << *this ) ); if ( frame_r.command().empty() ) WAR << "Send: No command in frame" << frame_r << endl; // prepare frame data to write std::string data; { std::ostringstream datas; frame_r.writeTo( datas ); datas.str().swap( data ); } DBG << *this << " ->send " << frame_r << endl; if ( PLUGIN_DEBUG ) { std::istringstream datas( data ); iostr::copyIndent( datas, L_DBG("PLUGIN") ) << endl; } // try writing the pipe.... FILE * filep = _cmd->outputFile(); if ( ! filep ) ZYPP_THROW( PluginScriptException( "Bad file pointer." ) ); int fd = ::fileno( filep ); if ( fd == -1 ) ZYPP_THROW( PluginScriptException( "Bad file descriptor" ) ); //DBG << " ->[" << fd << " " << (::feof(filep)?'e':'_') << (::ferror(filep)?'F':'_') << "]" << endl; { PluginDumpStderr _dump( *_cmd ); // dump scripts stderr before leaving SignalSaver sigsav( SIGPIPE, SIG_IGN ); const char * buffer = data.c_str(); ssize_t buffsize = data.size(); do { fd_set wfds; FD_ZERO( &wfds ); FD_SET( fd, &wfds ); struct timeval tv; tv.tv_sec = _sendTimeout; tv.tv_usec = 0; int retval = select( fd+1, NULL, &wfds, NULL, &tv ); if ( retval > 0 ) // FD_ISSET( fd, &wfds ) will be true. { //DBG << "Ready to write..." << endl; ssize_t ret = ::write( fd, buffer, buffsize ); if ( ret == buffsize ) { //DBG << "::write(" << buffsize << ") -> " << ret << endl; ::fflush( filep ); break; // -> done } else if ( ret > 0 ) { //WAR << "::write(" << buffsize << ") -> " << ret << " INCOMPLETE..." << endl; ::fflush( filep ); buffsize -= ret; buffer += ret; // -> continue } else // ( retval == -1 ) { if ( errno != EINTR ) { ERR << "write(): " << Errno() << endl; if ( errno == EPIPE ) ZYPP_THROW( PluginScriptDiedUnexpectedly( "Send: script died unexpectedly", str::Str() << Errno() ) ); else ZYPP_THROW( PluginScriptException( "Send: send error", str::Str() << Errno() ) ); } } } else if ( retval == 0 ) { WAR << "Not ready to write within timeout." << endl; ZYPP_THROW( PluginScriptSendTimeout( "Not ready to write within timeout." ) ); } else // ( retval == -1 ) { if ( errno != EINTR ) { ERR << "select(): " << Errno() << endl; ZYPP_THROW( PluginScriptException( "Error waiting on file descriptor", str::Str() << Errno() ) ); } } } while( true ); } } PluginFrame PluginScript::Impl::receive() const { if ( !_cmd ) ZYPP_THROW( PluginScriptNotConnected( "Not connected", str::Str() << *this ) ); // try reading the pipe.... FILE * filep = _cmd->inputFile(); if ( ! filep ) ZYPP_THROW( PluginScriptException( "Bad file pointer." ) ); int fd = ::fileno( filep ); if ( fd == -1 ) ZYPP_THROW( PluginScriptException( "Bad file descriptor" ) ); ::clearerr( filep ); std::string data; { PluginDebugBuffer _debug( data ); // dump receive buffer if PLUGIN_DEBUG PluginDumpStderr _dump( *_cmd ); // dump scripts stderr before leaving do { int ch = fgetc( filep ); if ( ch != EOF ) { data.push_back( ch ); if ( ch == '\0' ) break; } else if ( ::feof( filep ) ) { WAR << "Unexpected EOF" << endl; ZYPP_THROW( PluginScriptDiedUnexpectedly( "Receive: script died unexpectedly", str::Str() << Errno() ) ); } else if ( errno != EINTR ) { if ( errno == EWOULDBLOCK ) { // wait a while for fd to become ready for reading... fd_set rfds; FD_ZERO( &rfds ); FD_SET( fd, &rfds ); struct timeval tv; tv.tv_sec = _receiveTimeout; tv.tv_usec = 0; int retval = select( fd+1, &rfds, NULL, NULL, &tv ); if ( retval > 0 ) // FD_ISSET( fd, &rfds ) will be true. { ::clearerr( filep ); } else if ( retval == 0 ) { WAR << "Not ready to read within timeout." << endl; ZYPP_THROW( PluginScriptReceiveTimeout( "Not ready to read within timeout." ) ); } else // ( retval == -1 ) { if ( errno != EINTR ) { ERR << "select(): " << Errno() << endl; ZYPP_THROW( PluginScriptException( "Error waiting on file descriptor", str::Str() << Errno() ) ); } } } else { ERR << "read(): " << Errno() << endl; ZYPP_THROW( PluginScriptException( "Receive: receive error", str::Str() << Errno() ) ); } } } while ( true ); } // DBG << " <-read " << data.size() << endl; std::istringstream datas( data ); PluginFrame ret( datas ); DBG << *this << " <-" << ret << endl; return ret; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : PluginScript // /////////////////////////////////////////////////////////////////// const pid_t PluginScript::NotConnected( -1 ); long PluginScript::defaultSendTimeout() { return Impl::_defaultSendTimeout; } long PluginScript::defaultReceiveTimeout() { return Impl::_defaultReceiveTimeout; } void PluginScript::defaultSendTimeout( long newval_r ) { Impl::_defaultSendTimeout = newval_r > 0 ? newval_r : 0; } void PluginScript::defaultReceiveTimeout( long newval_r ) { Impl::_defaultReceiveTimeout = newval_r > 0 ? newval_r : 0; } long PluginScript::sendTimeout() const { return _pimpl->_sendTimeout; } long PluginScript::receiveTimeout() const { return _pimpl->_receiveTimeout; } void PluginScript::sendTimeout( long newval_r ) { _pimpl->_sendTimeout = newval_r > 0 ? newval_r : 0; } void PluginScript::receiveTimeout( long newval_r ) { _pimpl->_receiveTimeout = newval_r > 0 ? newval_r : 0; } PluginScript::PluginScript() : _pimpl( new Impl ) {} PluginScript::PluginScript( const Pathname & script_r ) : _pimpl( new Impl( script_r ) ) {} PluginScript::PluginScript( const Pathname & script_r, const Arguments & args_r ) : _pimpl( new Impl( script_r, args_r ) ) {} const Pathname & PluginScript::script() const { return _pimpl->script(); } const PluginScript::Arguments & PluginScript::args() const { return _pimpl->args(); } bool PluginScript::isOpen() const { return _pimpl->isOpen(); } pid_t PluginScript::getPid() const { return _pimpl->getPid(); } int PluginScript::lastReturn() const { return _pimpl->lastReturn(); } const std::string & PluginScript::lastExecError() const { return _pimpl->lastExecError(); } void PluginScript::open() { _pimpl->open( _pimpl->script(), _pimpl->args() ); } void PluginScript::open( const Pathname & script_r ) { _pimpl->open( script_r ); } void PluginScript::open( const Pathname & script_r, const Arguments & args_r ) { _pimpl->open( script_r, args_r ); } int PluginScript::close() { return _pimpl->close(); } void PluginScript::send( const PluginFrame & frame_r ) const { _pimpl->send( frame_r ); } PluginFrame PluginScript::receive() const { return _pimpl->receive(); } /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const PluginScript & obj ) { return str << *obj._pimpl; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PluginScript.h000066400000000000000000000150641334444677500171240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginScript.h * */ #ifndef ZYPP_PLUGINSCRIPT_H #define ZYPP_PLUGINSCRIPT_H #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/Pathname.h" #include "zypp/PluginFrame.h" #include "zypp/PluginScriptException.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** * \brief Interface to plugin scripts using a \c Stomp inspired communication protocol. * * \note \ref PluginScript is copyable and assignable, but the connection is shared * among multiple copies. It gets automatically closed if the last copy goes out of * scope. * * Timeout when sending/receiving data to/from a plugin default to 30 sec. The value * (in seconds) my be changed via the environment variables \c ZYPP_PLUGIN_SEND_TIMEOUT, * \c ZYPP_PLUGIN_RECEIVE_TIMEOUT or \c ZYPP_PLUGIN_TIMEOUT (both: send and receive). * * \code * // Setup comnnection to plugin script * PluginScript scr; * PluginScript::Arguments args; * args.push_back( "-v" ); * scr.open( "/soem/testplugin", args ); * * // send frame to plugin * PluginFrame f( "COMMAND" ); * f.setHeader( "key", "value" ); * f.setBody( "some\ndata" ); * scr.send( f ); * * // receive frame from plugin * PluginFrame r( scr.receive() ); * * // explicitly close or let PluginScript go out of scope * scr.close(); * \endcode * * \see http://stomp.codehaus.org/ */ class PluginScript { friend std::ostream & operator<<( std::ostream & str, const PluginScript & obj ); public: /** Commandline arguments passed to a script on \ref open. */ typedef std::vector Arguments; /** \c pid_t(-1) constant indicating no connection. */ static const pid_t NotConnected; public: /** \name Get/set the global timeout settings. * Timeout when sending/receiving data to/from a plugin default to 30 sec. The value * (in seconds) my be changed via the environment variables \c ZYPP_PLUGIN_SEND_TIMEOUT, * \c ZYPP_PLUGIN_RECEIVE_TIMEOUT or \c ZYPP_PLUGIN_TIMEOUT (both: send and receive). */ //@{ /** Global default timeout (sec.) when sending data. */ static long defaultSendTimeout(); /** Global default timeout (sec.) when receiving data. */ static long defaultReceiveTimeout(); /** Set global default timeout (sec.) when sending data. */ static void defaultSendTimeout( long newval_r ); /** Set global default timeout (sec.) when receiving data. */ static void defaultReceiveTimeout( long newval_r ); /** Set global default timeout (sec.) (both: send and receive).*/ static void defaultTimeout( long newval_r ) { defaultSendTimeout( newval_r ); defaultReceiveTimeout( newval_r ); } //@} public: /** Default ctor. */ PluginScript(); /** Ctor taking script path and no arguments. */ PluginScript( const Pathname & script_r ); /** Ctor taking script path and script arguments. */ PluginScript( const Pathname & script_r, const Arguments & args_r ); public: /** Return the script path if set. */ const Pathname & script() const; /** Return the script arguments if set. */ const Arguments & args() const; /** Whether we are connected to a script. */ bool isOpen() const; /** Return a connected scripts pid or \ref NotConnected. */ pid_t getPid() const; /** Remembers a scripts return value after \ref close until next \ref open. */ int lastReturn() const; /** Remembers a scripts execError string after \ref close until next \ref open. * \see \ref ExternalProgram::execError. */ const std::string & lastExecError() const; public: /** \name Get/set local timeout settings. */ //@{ /** Local default timeout (sec.) when sending data. */ long sendTimeout() const; /** Local default timeout (sec.) when receiving data. */ long receiveTimeout() const; /** Set local default timeout (sec.) when sending data. */ void sendTimeout( long newval_r ); /** Set local default timeout (sec.) when receiving data. */ void receiveTimeout( long newval_r ); /** Set local default timeout (sec.) (both: send and receive).*/ void timeout( long newval_r ) { sendTimeout( newval_r ); receiveTimeout( newval_r ); } //@} public: /** Setup connection and execute script. * \throw PluginScriptException if already connected to a script * \throw PluginScriptException if script does not exist or is not executable * \throw PluginScriptException on error */ void open(); /** \overload taking script path and no arguments. */ void open( const Pathname & script_r ); /** \overload taking script path and script arguments. */ void open( const Pathname & script_r, const Arguments & args_r ); /** Close any open connection. */ int close(); public: /** Send a \ref PluginFrame. * \throw PluginScriptNotConnected * \throw PluginScriptSendTimeout * \throw PluginScriptDiedUnexpectedly (does not \ref close) * \throw PluginScriptException on error * */ void send( const PluginFrame & frame_r ) const; /** Receive a \ref PluginFrame. * \throw PluginScriptNotConnected * \throw PluginScriptReceiveTimeout * \throw PluginScriptDiedUnexpectedly (does not \ref close) * \throw PluginScriptException on error */ PluginFrame receive() const; public: /** Implementation. */ class Impl; private: /** Pointer to implementation. */ RW_pointer _pimpl; }; /** \relates PluginScript Stream output */ std::ostream & operator<<( std::ostream & str, const PluginScript & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PLUGINSCRIPT_H libzypp-17.7.0/zypp/PluginScriptException.cc000066400000000000000000000027461334444677500211440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginScriptException.cc * */ #include //#include "zypp/base/LogTools.h" #include "zypp/PluginScriptException.h" #include "zypp/PluginScript.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// PluginScriptException::PluginScriptException() : Exception( "PluginScriptException" ) {} PluginScriptException::PluginScriptException( const std::string & msg_r ) : Exception( msg_r ) {} PluginScriptException::PluginScriptException( const std::string & msg_r, const std::string & hist_r ) : Exception( msg_r ) { addHistory( hist_r ); } PluginScriptException::~PluginScriptException() throw() {} ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PluginScriptException.h000066400000000000000000000046361334444677500210060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PluginScriptException.h * */ #ifndef ZYPP_PLUGINSCRIPTEXCEPTION_H #define ZYPP_PLUGINSCRIPTEXCEPTION_H #include #include "zypp/base/Exception.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Base class for \ref PluginScript \ref Exception. */ class PluginScriptException : public Exception { public: PluginScriptException(); PluginScriptException( const std::string & msg_r ); PluginScriptException( const std::string & msg_r, const std::string & hist_r ); virtual ~PluginScriptException() throw(); }; /** Convenience macro to declare more specific PluginScriptExceptions. */ #define declException( EXCP, BASE ) \ class EXCP : public BASE { \ public: \ EXCP() : BASE( #EXCP ) {} \ EXCP( const std::string & msg_r ) : BASE( msg_r ) {} \ EXCP( const std::string & msg_r, const std::string & hist_r ) : BASE( msg_r, hist_r ) {} \ virtual ~EXCP() throw() {} \ } /** Script connection not open. */ declException( PluginScriptNotConnected, PluginScriptException ); /** Script died unexpectedly. */ declException( PluginScriptDiedUnexpectedly, PluginScriptException ); /** Communication timeout. */ declException( PluginScriptTimeout, PluginScriptException ); /** Timeout while sending data. */ declException( PluginScriptSendTimeout, PluginScriptTimeout ); /** Timeout while receiving data. */ declException( PluginScriptReceiveTimeout, PluginScriptTimeout ); #undef declException ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PLUGINSCRIPTEXCEPTION_H libzypp-17.7.0/zypp/PoolItem.cc000066400000000000000000000151241334444677500163640ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolItem.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/PoolItem.h" #include "zypp/ResPool.h" #include "zypp/Package.h" #include "zypp/VendorAttr.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolItem::Impl // /** PoolItem implementation. * \c _buddy handling: * \li \c ==0 no buddy * \li \c >0 this uses \c _buddy status * \li \c <0 this status used by \c -_buddy */ struct PoolItem::Impl { public: Impl() {} Impl( ResObject::constPtr res_r, const ResStatus & status_r ) : _status( status_r ) , _resolvable( res_r ) {} ResStatus & status() const { return _buddy > 0 ? PoolItem(buddy()).status() : _status; } sat::Solvable buddy() const { if ( !_buddy ) return sat::Solvable::noSolvable; if ( _buddy < 0 ) return sat::Solvable( -_buddy ); return sat::Solvable( _buddy ); } void setBuddy( const sat::Solvable & solv_r ); ResObject::constPtr resolvable() const { return _resolvable; } ResStatus & statusReset() const { _status.setLock( false, zypp::ResStatus::USER ); _status.resetTransact( zypp::ResStatus::USER ); return _status; } public: bool isUndetermined() const { return status().isUndetermined(); } bool isRelevant() const { return !status().isNonRelevant(); } bool isSatisfied() const { return status().isSatisfied(); } bool isBroken() const { return status().isBroken(); } bool isNeeded() const { return status().isToBeInstalled() || ( isBroken() && ! status().isLocked() ); } bool isUnwanted() const { return isBroken() && status().isLocked(); } private: mutable ResStatus _status; ResObject::constPtr _resolvable; DefaultIntegral _buddy; /** \name Poor man's save/restore state. * \todo There may be better save/restore state strategies. */ //@{ public: void saveState() const { _savedStatus = status(); } void restoreState() const { status() = _savedStatus; } bool sameState() const { if ( status() == _savedStatus ) return true; // some bits changed... if ( status().getTransactValue() != _savedStatus.getTransactValue() && ( ! status().isBySolver() // ignore solver state changes // removing a user lock also goes to bySolver || _savedStatus.getTransactValue() == ResStatus::LOCKED ) ) return false; if ( status().isLicenceConfirmed() != _savedStatus.isLicenceConfirmed() ) return false; return true; } private: mutable ResStatus _savedStatus; //@} public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } }; /////////////////////////////////////////////////////////////////// /** \relates PoolItem::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const PoolItem::Impl & obj ) { str << obj.status(); if (obj.resolvable()) str << *obj.resolvable(); else str << "(NULL)"; return str; } inline void PoolItem::Impl::setBuddy( const sat::Solvable & solv_r ) { PoolItem myBuddy( solv_r ); if ( myBuddy ) { if ( myBuddy._pimpl->_buddy ) { ERR << *this << " would be buddy2 in " << myBuddy << endl; return; } myBuddy._pimpl->_buddy = -resolvable()->satSolvable().id(); _buddy = myBuddy.satSolvable().id(); DBG << *this << " has buddy " << myBuddy << endl; } } /////////////////////////////////////////////////////////////////// // class PoolItem /////////////////////////////////////////////////////////////////// PoolItem::PoolItem() : _pimpl( Impl::nullimpl() ) {} PoolItem::PoolItem( const sat::Solvable & solvable_r ) : _pimpl( ResPool::instance().find( solvable_r )._pimpl ) {} PoolItem::PoolItem( const ResObject::constPtr & resolvable_r ) : _pimpl( ResPool::instance().find( resolvable_r )._pimpl ) {} PoolItem::PoolItem( Impl * implptr_r ) : _pimpl( implptr_r ) {} PoolItem PoolItem::makePoolItem( const sat::Solvable & solvable_r ) { return PoolItem( new Impl( makeResObject( solvable_r ), solvable_r.isSystem() ) ); } PoolItem::~PoolItem() {} ResPool PoolItem::pool() const { return ResPool::instance(); } ResStatus & PoolItem::status() const { return _pimpl->status(); } ResStatus & PoolItem::statusReset() const { return _pimpl->statusReset(); } sat::Solvable PoolItem::buddy() const { return _pimpl->buddy(); } void PoolItem::setBuddy( const sat::Solvable & solv_r ) { _pimpl->setBuddy( solv_r ); } bool PoolItem::isUndetermined() const { return _pimpl->isUndetermined(); } bool PoolItem::isRelevant() const { return _pimpl->isRelevant(); } bool PoolItem::isSatisfied() const { return _pimpl->isSatisfied(); } bool PoolItem::isBroken() const { return _pimpl->isBroken(); } bool PoolItem::isNeeded() const { return _pimpl->isNeeded(); } bool PoolItem::isUnwanted() const { return _pimpl->isUnwanted(); } void PoolItem::saveState() const { _pimpl->saveState(); } void PoolItem::restoreState() const { _pimpl->restoreState(); } bool PoolItem::sameState() const { return _pimpl->sameState(); } ResObject::constPtr PoolItem::resolvable() const { return _pimpl->resolvable(); } std::ostream & operator<<( std::ostream & str, const PoolItem & obj ) { return str << *obj._pimpl; } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PoolItem.h000066400000000000000000000157321334444677500162330ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolItem.h * */ #ifndef ZYPP_POOLITEM_H #define ZYPP_POOLITEM_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/ResObject.h" #include "zypp/sat/SolvableType.h" #include "zypp/ResStatus.h" /////////////////////////////////////////////////////////////////// namespace zypp { class ResPool; namespace pool { class PoolImpl; } /////////////////////////////////////////////////////////////////// /// \class PoolItem /// \brief Combining \ref sat::Solvable and \ref ResStatus. /// /// The "real" PoolItem is usually somewhere in the ResPool. This is /// a reference to it. All copies made will reference (and modify) /// the same PoolItem. All changes via a PoolItem are immediately /// visible in all copies (now COW). /// /// \note PoolItem is a SolvableType, which provides direct access to /// many of the underlying sat::Solvables properties. /// \see \ref sat::SolvableType /// /// \note Constness: Like pointer types, a const PoolItem /// does \b not refer to a const PoolItem. The reference is /// \c const, i.e. you can't change the refered PoolItem. The PoolItem /// (i.e. the status) is always mutable. /////////////////////////////////////////////////////////////////// class PoolItem : public sat::SolvableType { friend std::ostream & operator<<( std::ostream & str, const PoolItem & obj ); public: /** Default ctor for use in std::container. */ PoolItem(); /** Ctor looking up the \ref sat::Solvable in the \ref ResPool. */ explicit PoolItem( const sat::Solvable & solvable_r ); /** Ctor looking up the \ref sat::Solvable in the \ref ResPool. */ template explicit PoolItem( const SolvableType & solvable_r ) : PoolItem( solvable_r.satSolvable() ) {} /** Ctor looking up the \ref ResObject in the \ref ResPool. */ explicit PoolItem( const ResObject::constPtr & resolvable_r ); /** Dtor */ ~PoolItem(); public: /** \name Status related methods. */ //@{ /** Returns the current status. */ ResStatus & status() const; /** Reset status. */ ResStatus & statusReset() const; /** \name Status validation. * Performed for non-packages. */ //@{ /** No validation is performed for packages. */ bool isUndetermined() const; /** Returns true if the solvable is relevant which means e.g. for patches * that at least one package of the patch is installed. */ bool isRelevant() const; /** Whether a relevant items requirements are met. */ bool isSatisfied() const; /** Whether a relevant items requirements are broken. */ bool isBroken() const; /** This includes \c unlocked broken patches, as well as those already * selected to be installed (otherwise classified as \c satisfied). */ bool isNeeded() const; /** Broken (needed) but locked patches. */ bool isUnwanted() const; //@} //@} public: /** Return the \ref ResPool the item belongs to. */ ResPool pool() const; /** This is a \ref sat::SolvableType. */ explicit operator sat::Solvable() const { return resolvable() ? resolvable()->satSolvable() : sat::Solvable::noSolvable; } /** Return the buddy we share our status object with. * A \ref Product e.g. may share it's status with an associated reference \ref Package. */ sat::Solvable buddy() const; public: /** Returns the ResObject::constPtr. * \see \ref operator-> */ ResObject::constPtr resolvable() const; /** Implicit conversion into ResObject::constPtr to * support query filters operating on ResObject. */ operator ResObject::constPtr() const { return resolvable(); } /** Forward \c -> access to ResObject. */ ResObject::constPtr operator->() const { return resolvable(); } private: friend class pool::PoolImpl; /** \ref PoolItem generator for \ref pool::PoolImpl. */ static PoolItem makePoolItem( const sat::Solvable & solvable_r ); /** Buddies are set by \ref pool::PoolImpl.*/ void setBuddy( const sat::Solvable & solv_r ); /** internal ctor */ public: class Impl; ///< Expose type only private: explicit PoolItem( Impl * implptr_r ); /** Pointer to implementation */ RW_pointer _pimpl; private: /** \name tmp hack for save/restore state. */ /** \todo get rid of it. */ //@{ friend class PoolItemSaver; void saveState() const; void restoreState() const; bool sameState() const; //@} }; /////////////////////////////////////////////////////////////////// /** \relates PoolItem Stream output */ std::ostream & operator<<( std::ostream & str, const PoolItem & obj ); /** \relates PoolItem Required to disambiguate vs. (PoolItem,ResObject::constPtr) due to implicit PoolItem::operator ResObject::constPtr */ inline bool operator==( const PoolItem & lhs, const PoolItem & rhs ) { return lhs.resolvable() == rhs.resolvable(); } /** \relates PoolItem Convenience compare */ inline bool operator==( const PoolItem & lhs, const ResObject::constPtr & rhs ) { return lhs.resolvable() == rhs; } /** \relates PoolItem Convenience compare */ inline bool operator==( const ResObject::constPtr & lhs, const PoolItem & rhs ) { return lhs == rhs.resolvable(); } /** \relates PoolItem Required to disambiguate vs. (PoolItem,ResObject::constPtr) due to implicit PoolItem::operator ResObject::constPtr */ inline bool operator!=( const PoolItem & lhs, const PoolItem & rhs ) { return ! (lhs==rhs); } /** \relates PoolItem Convenience compare */ inline bool operator!=( const PoolItem & lhs, const ResObject::constPtr & rhs ) { return ! (lhs==rhs); } /** \relates PoolItem Convenience compare */ inline bool operator!=( const ResObject::constPtr & lhs, const PoolItem & rhs ) { return ! (lhs==rhs); } /** Solvable to PoolItem transform functor. * \relates PoolItem * \relates sat::SolvIterMixin */ struct asPoolItem { typedef PoolItem result_type; PoolItem operator()( const sat::Solvable & solv_r ) const { return PoolItem( solv_r ); } }; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOLITEM_H libzypp-17.7.0/zypp/PoolItemBest.cc000066400000000000000000000052701334444677500172030ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolItemBest.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/PoolItemBest.h" #include "zypp/ui/SelectableTraits.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolItemBest::Impl // /** PoolItemBest implementation. */ struct PoolItemBest::Impl { Container _container; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolItemBest // /////////////////////////////////////////////////////////////////// void PoolItemBest::_ctor_init() { _dont_use_this_use_pimpl.reset( new RWCOW_pointer(new Impl) ); } const PoolItemBest::Container & PoolItemBest::container() const { return pimpl()->_container; } void PoolItemBest::add( const PoolItem & pi_r ) { Container & container( pimpl()->_container ); PoolItem & ccand( container[pi_r.satSolvable().ident()] ); if ( ! ccand || ui::SelectableTraits::AVOrder()( pi_r, ccand ) ) ccand = pi_r; } PoolItem PoolItemBest::find( IdString ident_r ) const { const Container & container( pimpl()->_container ); Container::const_iterator it( container.find( ident_r ) ); return it != container.end() ? it->second : PoolItem(); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const PoolItemBest & obj ) { return dumpRange( str << "(" << obj.size() << ") ", obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PoolItemBest.h000066400000000000000000000134051334444677500170440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolItemBest.h * */ #ifndef ZYPP_POOLITEMBEST_H #define ZYPP_POOLITEMBEST_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/base/Iterator.h" #include "zypp/base/Hash.h" #include "zypp/PoolItem.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolItemBest // /** Find the best candidates e.g. in a \ref PoolQuery result. * * The class basically maintains a \c map and remembers * for each \c ident (\ref sat::Solvable::ident) the best \ref PoolItem that * was added. * * The default \ref Predicate to determine the best choice is the same that * sorts the \ref ui::Selectable list of available objects, thus follows the * same rules the \ref resolver will apply. * * \code * PoolQuery q; * q.addAttribute(sat::SolvAttr::name, "lib*"); * q.setMatchGlob(); * * // get the best matches and tag them for installation: * PoolItemBest bestMatches( q.begin(), q.end() ); * if ( ! bestMatches.empty() ) * { * for_( it, bestMatches.begin(), bestMatches.end() ) * { * ui::asSelectable()( *it )->setOnSystem( *it, ResStatus::USER ); * } * } * \endcode * * \todo Support arbitrary Predicates. */ class PoolItemBest { typedef std::unordered_map Container; public: /** Predicate returning \c True if \a lhs is a better choice. */ typedef boost::function Predicate; typedef Container::size_type size_type; typedef Container::value_type value_type; typedef MapKVIteratorTraits::Value_const_iterator iterator; typedef MapKVIteratorTraits::Key_const_iterator ident_iterator; public: /** Default ctor. */ PoolItemBest() { _ctor_init(); } /** Ctor feeding a \ref sat::Solvable. */ PoolItemBest( sat::Solvable slv_r ) { _ctor_init(); add( slv_r ); } /** Ctor feeding a \ref PoolItem. */ PoolItemBest( const PoolItem & pi_r ) { _ctor_init(); add( pi_r ); } /** Ctor feeding a range of \ref sat::Solvable or \ref PoolItem. */ template PoolItemBest( TIterator begin_r, TIterator end_r ) { _ctor_init(); add( begin_r, end_r ); } public: /** Feed one \ref sat::Solvable. */ void add( sat::Solvable slv_r ) { add( PoolItem( slv_r ) ); } /** Feed one \ref PoolItem. */ void add( const PoolItem & pi_r ); /** Feed a range of \ref sat::Solvable or \ref PoolItem. */ template void add( TIterator begin_r, TIterator end_r ) { for_( it, begin_r, end_r ) add( *it ); } public: /** \name Iterate the collected PoolItems. */ //@{ /** Whether PoolItems were collected. */ bool empty() const { return container().empty(); } /** Number of PoolItems collected. */ size_type size() const { return container().size(); } /** Pointer to the first PoolItem. */ iterator begin() const { return make_map_value_begin( container() ); } /** Pointer behind the last PoolItem. */ iterator end() const { return make_map_value_end( container() ); } /** Return the collected \ref PoolItem with \ref sat::Solvable::ident \a ident_r. */ PoolItem find( IdString ident_r ) const; /** \overload Use Solvables ident string. */ PoolItem find( sat::Solvable slv_r ) const { return find( slv_r.ident() ); } /** \overload Use PoolItems ident string. */ PoolItem find( const PoolItem & pi_r ) const { return find( pi_r.satSolvable().ident() ); } //@} /** \name Iterate the collected PoolItems ident strings. */ //@{ /** Pointer to the first item. */ ident_iterator identBegin() const { return make_map_key_begin( container() ); } /** Pointer behind the last item. */ ident_iterator identEnd() const { return make_map_key_end( container() ); } //@} private: void _ctor_init(); const Container & container() const; private: /** Implementation */ class Impl; /** Pointer to implementation */ RWCOW_pointer & pimpl() { return *(reinterpret_cast*>( _dont_use_this_use_pimpl.get() )); } /** Pointer to implementation */ const RWCOW_pointer & pimpl() const { return *(reinterpret_cast*>( _dont_use_this_use_pimpl.get() )); } /** Avoid need to include Impl definition when inlined ctors (due to tepmlate) are provided. */ shared_ptr _dont_use_this_use_pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates PoolItemBest Stream output */ std::ostream & operator<<( std::ostream & str, const PoolItemBest & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOLITEMBEST_H libzypp-17.7.0/zypp/PoolQuery.cc000066400000000000000000001570741334444677500166060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolQuery.cc * */ #include #include #include "zypp/base/Gettext.h" #include "zypp/base/LogTools.h" #include "zypp/base/Algorithm.h" #include "zypp/base/String.h" #include "zypp/repo/RepoException.h" #include "zypp/RelCompare.h" #include "zypp/sat/Pool.h" #include "zypp/sat/Solvable.h" #include "zypp/base/StrMatcher.h" #include "zypp/PoolQuery.h" #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "PoolQuery" using namespace std; using namespace zypp::sat; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// // some Helpers and Predicates ///////////////////////////////////////////////////////////////// bool isDependencyAttribute( sat::SolvAttr attr_r ) { static sat::SolvAttr deps[] = { SolvAttr::provides, SolvAttr::requires, SolvAttr::recommends, SolvAttr::obsoletes, SolvAttr::conflicts, SolvAttr::suggests, SolvAttr::supplements, SolvAttr::enhances, }; for_( it, arrayBegin(deps), arrayEnd(deps) ) if ( *it == attr_r ) return true; return false; } /** Whether the current capabilities edition range ovelaps and/or its solvables arch matches. * Query asserts \a iter_r points to a capability and we * have to check the range only. */ struct EditionRangePredicate { EditionRangePredicate( const Rel & op, const Edition & edition ) : _range( op, edition ) , _arch( Arch_empty ) {} EditionRangePredicate( const Rel & op, const Edition & edition, const Arch & arch ) : _range( op, edition ) , _arch( arch ) {} bool operator()( sat::LookupAttr::iterator iter_r ) { if ( !_arch.empty() && iter_r.inSolvable().arch() != _arch ) return false; CapDetail cap( iter_r.id() ); if ( ! cap.isSimple() ) return false; if ( cap.isNamed() ) // no range to match return true; return overlaps( Edition::MatchRange( cap.op(), cap.ed() ), _range ); } std::string serialize() const { std::string ret( "EditionRange" ); str::appendEscaped( ret, _range.op.asString() ); str::appendEscaped( ret, _range.value.asString() ); str::appendEscaped( ret, _arch.asString() ); return ret; } Edition::MatchRange _range; Arch _arch; }; /** Whether the current Solvables edition is within a given range and/or its arch matches. */ struct SolvableRangePredicate { SolvableRangePredicate( const Rel & op, const Edition & edition ) : _range( op, edition ) , _arch( Arch_empty ) {} SolvableRangePredicate( const Rel & op, const Edition & edition, const Arch & arch ) : _range( op, edition ) , _arch( arch ) {} bool operator()( sat::LookupAttr::iterator iter_r ) { if ( !_arch.empty() && iter_r.inSolvable().arch() != _arch ) return false; return overlaps( Edition::MatchRange( Rel::EQ, iter_r.inSolvable().edition() ), _range ); } std::string serialize() const { std::string ret( "SolvableRange" ); str::appendEscaped( ret, _range.op.asString() ); str::appendEscaped( ret, _range.value.asString() ); str::appendEscaped( ret, _arch.asString() ); return ret; } Edition::MatchRange _range; Arch _arch; }; /** Whether the current capability matches a given one. * Query asserts \a iter_r points to a capability and we * have to check the match only. */ struct CapabilityMatchPredicate { CapabilityMatchPredicate( Capability cap_r ) : _cap( cap_r ) {} bool operator()( sat::LookupAttr::iterator iter_r ) const { return _cap.matches( iter_r.asType() ) == CapMatch::yes; } std::string serialize() const { std::string ret( "CapabilityMatch" ); str::appendEscaped( ret, _cap.asString() ); return ret; } Capability _cap; }; ///////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////// /** Match data per attribtue. * * This includes the attribute itself, an optional \ref StrMatcher * to restrict the query to certain string values, and an optional * boolean \ref Predicate that may apply further restrictions that can * not be expressed by the \ref strMatcher. * * Example for such a \ref predicate would be an additional edition range * check whan looking for dependencies. The \ref strMatcher would * find potential matches by looking at the dependencies name, the * predicate will then check the edition ranges. * * As the \ref predicate takes an iterator pointing to the current * match, it's also suitable for sub-structure (flexarray) inspection * (\see \ref sat::LookupAttr::iterator::solvAttrSubEntry). * * (bsc#1035729) If SolvAttr::name searches for an explicit \c kind:name, * this \c kind is stored in \ref kindPredicate and will overwrite any * 'global' kind restriction applied via \ref PoolQuery::addKind. This * task can't be passed off to a predicate, as \ref PoolQueryMatcher::isAMatch * must accept only explicit-kind-checking predicate matches, in case the * 'global' kind restriction woudl otherwise discard the match. * * \note: \see \ref addPredicate for further constraints. */ struct AttrMatchData { typedef function Predicate; static bool always( sat::LookupAttr::iterator ) { return true; } static bool never( sat::LookupAttr::iterator ) { return false; } AttrMatchData() {} AttrMatchData( sat::SolvAttr attr_r ) : attr( attr_r ) {} AttrMatchData( sat::SolvAttr attr_r, const StrMatcher & strMatcher_r ) : attr( attr_r ) , strMatcher( strMatcher_r ) {} AttrMatchData( sat::SolvAttr attr_r, const StrMatcher & strMatcher_r, const Predicate & predicate_r, const std::string & predicateStr_r ) : attr( attr_r ) , strMatcher( strMatcher_r ) , predicate( predicate_r ) , predicateStr( predicateStr_r ) {} /** A usable Predicate must provide a string serialization. * As there is no \c operator== for \ref Predicate, we compare it's * string representation instead. If you add new predicated, check the * deserialization code in \ref deserialize. */ template void addPredicate( const TPredicate & predicate_r ) { predicate = predicate_r; predicateStr = predicate_r.serialize(); } /** Dumb serialization. * \code * AttrMatchData ATTRIBUTE SEARCHSTRING [C|SEARCHMODE|X] SERIALIZED_PREDICATE * \endcode */ std::string serialize() const { std::string ret( "AttrMatchData" ); str::appendEscaped( ret, attr.asString() ); str::appendEscaped( ret, strMatcher.searchstring() ); str::appendEscaped( ret, serializeMode( strMatcher.flags().mode() ) ); str::appendEscaped( ret, predicateStr ); return ret; } /** Dumb restore from serialized string. * \throw Exception on parse error. */ static AttrMatchData deserialize( const std::string & str_r ) { std::vector words; str::splitEscaped( str_r, std::back_inserter(words) ); if ( words.empty() || words[0] != "AttrMatchData" ) ZYPP_THROW( Exception( str::Str() << "Expecting AttrMatchData: " << str_r ) ); if ( words.size() != 5 ) ZYPP_THROW( Exception( str::Str() << "Wrong number of words: " << str_r ) ); AttrMatchData ret; ret.attr = sat::SolvAttr( words[1] ); ret.strMatcher = StrMatcher( words[2] ); if ( Match::Mode mode = deserializeMode( words[3] ) ) ret.strMatcher.setFlags( mode ); ret.predicateStr = words[4]; // now the predicate words.clear(); str::splitEscaped( ret.predicateStr, std::back_inserter(words) ); if ( ! words.empty() ) { if ( words[0] == "EditionRange" ) { switch( words.size() ) { case 3: ret.predicate = EditionRangePredicate( Rel(words[1]), Edition(words[2]) ); break; case 4: ret.predicate = EditionRangePredicate( Rel(words[1]), Edition(words[2]), Arch(words[3]) ); break; default: ZYPP_THROW( Exception( str::Str() << "Wrong number of words: " << str_r ) ); break; } } else if ( words[0] == "SolvableRange" ) { switch( words.size() ) { case 3: ret.predicate = SolvableRangePredicate( Rel(words[1]), Edition(words[2]) ); break; case 4: ret.predicate = SolvableRangePredicate( Rel(words[1]), Edition(words[2]), Arch(words[3]) ); break; default: ZYPP_THROW( Exception( str::Str() << "Wrong number of words: " << str_r ) ); break; } } else if ( words[0] == "CapabilityMatch" ) { if ( words.size() != 2 ) ZYPP_THROW( Exception( str::Str() << "Wrong number of words: " << str_r ) ); ret.predicate = CapabilityMatchPredicate( Capability(words[1]) ); } else ZYPP_THROW( Exception( str::Str() << "Unknown predicate: " << str_r ) ); } return ret; } sat::SolvAttr attr; StrMatcher strMatcher; Predicate predicate; std::string predicateStr; ResKind kindPredicate = ResKind::nokind; // holds the 'kind' part if SolvAttr:name looks for an explicit 'kind:name' private: /** Serialize \ref strMatcher \ref Match::Mode */ static std::string serializeMode( Match::Mode mode_r ) { // Legacy code used "[C|X]" to differ just between OTHER (need to (C)ompile) and // using the default search mode. As we now allow to specify a SEARCHMODE we // need to serialize it: switch ( mode_r ) { #define OUTS(M,S) case Match::M: return #S; break // (C)ompile OUTS( OTHER, C ); // well known modes: OUTS( STRING, T ); OUTS( STRINGSTART, S ); OUTS( STRINGEND, E ); OUTS( SUBSTRING, B ); OUTS( GLOB, G ); OUTS( REGEX, R ); #undef OUTS // everything else use default case Match::NOTHING: break; } return "X"; } /** Deserialize \ref strMatcher \ref Match::Mode */ static Match::Mode deserializeMode( const std::string & str_r ) { switch ( str_r[0] ) { #define OUTS(M,C) case *#C: return Match::M; break // (C)ompile OUTS( OTHER, C ); // well known modes: OUTS( STRING, T ); OUTS( STRINGSTART, S ); OUTS( STRINGEND, E ); OUTS( SUBSTRING, B ); OUTS( GLOB, G ); OUTS( REGEX, R ); #undef OUTS // everything else use default default: break; } return Match::NOTHING; } }; /** \relates AttrMatchData */ inline std::ostream & operator<<( std::ostream & str, const AttrMatchData & obj ) { str << obj.attr << ": " << obj.strMatcher; if ( obj.kindPredicate ) str << " +(" << obj.kindPredicate << ")"; if ( obj.predicate ) str << " +(" << obj.predicateStr << ")"; return str; } /** \relates AttrMatchData */ inline bool operator==( const AttrMatchData & lhs, const AttrMatchData & rhs ) { return ( lhs.attr == rhs.attr && lhs.strMatcher == rhs.strMatcher && lhs.predicateStr == rhs.predicateStr ); } /** \relates AttrMatchData */ inline bool operator!=( const AttrMatchData & lhs, const AttrMatchData & rhs ) { return !( lhs == rhs ); } /** \relates AttrMatchData Arbitrary order for std::container. */ inline bool operator<( const AttrMatchData & lhs, const AttrMatchData & rhs ) { if ( lhs.attr != rhs.attr ) return ( lhs.attr < rhs.attr ); if ( lhs.strMatcher != rhs.strMatcher ) return ( lhs.strMatcher < rhs.strMatcher ); if ( lhs.predicateStr != rhs.predicateStr ) return ( lhs.predicateStr < rhs.predicateStr ); return false; } typedef std::list AttrMatchList; } ///////////////////////////////////////////////////////////////// // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQuery::Impl // /** */ class PoolQuery::Impl { public: Impl() : _flags( Match::SUBSTRING | Match::NOCASE | Match::SKIP_KIND ) , _match_word(false) , _require_all(false) , _status_flags(ALL) {} ~Impl() {} public: /** String representation */ string asString() const; /** \name Raw query options. */ //@{ /** Raw search strings. */ StrContainer _strings; /** Raw attributes */ AttrRawStrMap _attrs; /** Uncompiled attributes with predicate. */ std::set _uncompiledPredicated; /** Sat solver search flags */ Match _flags; bool _match_word; bool _require_all; /** Sat solver status flags */ StatusFilter _status_flags; /** Edition condition operand */ Edition _edition; /** Operator for edition condition */ Rel _op; /** Repos to search. */ StrContainer _repos; /** Kinds to search */ Kinds _kinds; //@} public: bool operator<( const PoolQuery::Impl & rhs ) const { #define OUTS(A) if ( A != rhs.A ) return A < rhs.A; OUTS( _strings ); OUTS( _attrs ); OUTS( _uncompiledPredicated ); OUTS( _flags.get() ); OUTS( _match_word ); OUTS( _require_all ); OUTS( _status_flags ); OUTS( _edition ); OUTS( _op.inSwitch() ); OUTS( _repos ); OUTS( _kinds ); #undef OUTS return false; } bool operator==( const PoolQuery::Impl & rhs ) const { if ( _flags == rhs._flags // bnc#792901: while libzypp uses exact match mode for a single // package name lock, zypper always uses glob. :( // We unify those two forms to enable zypper to remove zypp locks // without need to actually evaluate the query (which would require // repos to be loaded). || ( ( ( _flags.isModeString() && rhs._flags.isModeGlob() ) || ( _flags.isModeGlob() && rhs._flags.isModeString() ) ) && _strings.empty() && _attrs.size() == 1 && _attrs.begin()->first == sat::SolvAttr::name ) ) { return ( _strings == rhs._strings && _attrs == rhs._attrs && _uncompiledPredicated == rhs._uncompiledPredicated && _match_word == rhs._match_word && _require_all == rhs._require_all && _status_flags == rhs._status_flags && _edition == rhs._edition && _op == rhs._op && _repos == rhs._repos && _kinds == rhs._kinds ); } return false; } bool operator!=( const PoolQuery::Impl & rhs ) const { return ! operator==( rhs ); } public: /** Compile the regex. * Basically building the \ref _attrMatchList from strings. * \throws MatchException Any of the exceptions thrown by \ref StrMatcher::compile. */ void compile() const; /** StrMatcher per attribtue. */ mutable AttrMatchList _attrMatchList; private: /** Pass flags from \ref compile, as they may have been changed. */ string createRegex( const StrContainer & container, const Match & flags ) const; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// struct MyInserter { MyInserter(PoolQuery::StrContainer & cont) : _cont(cont) {} bool operator()(const string & str) { _cont.insert(str); return true; } PoolQuery::StrContainer & _cont; }; struct EmptyFilter { bool operator()(const string & str) { return !str.empty(); } }; void PoolQuery::Impl::compile() const { _attrMatchList.clear(); Match cflags( _flags ); if ( cflags.mode() == Match::OTHER ) // this will never succeed... ZYPP_THROW( MatchUnknownModeException( cflags ) ); /** Compiled search strings. */ string rcstrings; // 'different' - will have to iterate through all and match by ourselves (slow) // 'same' - will pass the compiled string to dataiterator_init // 'one-attr' - will pass it to dataiterator_init // 'one-non-regex-str' - will pass to dataiterator_init, set flag to SEARCH_STRING or SEARCH_SUBSTRING // // NO ATTRIBUTE // else // for all _strings // create regex; store in rcstrings; if more strings flag regex; if (_attrs.empty()) { ; // A default 'query-all' will be added after all sources are processed. } // // ONE ATTRIBUTE // else if _attrs is not empty but it contains just one attr // for all _strings and _attr[key] strings // create regex; flag 'one-attr'; if more strings flag regex; else if (_attrs.size() == 1) { StrContainer joined; invokeOnEach(_strings.begin(), _strings.end(), EmptyFilter(), MyInserter(joined)); invokeOnEach(_attrs.begin()->second.begin(), _attrs.begin()->second.end(), EmptyFilter(), MyInserter(joined)); rcstrings = createRegex(joined, cflags); if (joined.size() > 1) // switch to regex for multiple strings cflags.setModeRegex(); _attrMatchList.push_back( AttrMatchData( _attrs.begin()->first, StrMatcher( rcstrings, cflags ) ) ); } // // MULTIPLE ATTRIBUTES else { // check whether there are any per-attribute strings bool attrvals_empty = true; for (AttrRawStrMap::const_iterator ai = _attrs.begin(); ai != _attrs.end(); ++ai) if (!ai->second.empty()) for(StrContainer::const_iterator it = ai->second.begin(); it != ai->second.end(); it++) if (!it->empty()) { attrvals_empty = false; goto attremptycheckend; } attremptycheckend: // chceck whether the per-attribute strings are all the same bool attrvals_thesame = true; AttrRawStrMap::const_iterator ai = _attrs.begin(); const StrContainer & set1 = ai->second; ++ai; for (; ai != _attrs.end(); ++ai) { StrContainer result; set_difference( set1.begin(), set1.end(), ai->second.begin(), ai->second.end(), inserter(result, result.begin())/*, ltstr()*/); if (!result.empty()) { attrvals_thesame = false; break; } } // // THE SAME STRINGS FOR DIFFERENT ATTRS // else if _attrs is not empty but it does not contain strings // for each key in _attrs take all _strings // create regex; store in rcstrings; flag 'same'; if more strings flag regex; if (attrvals_empty || attrvals_thesame) { StrContainer joined; if (attrvals_empty) { invokeOnEach(_strings.begin(), _strings.end(), EmptyFilter(), MyInserter(joined)); rcstrings = createRegex(joined, cflags); } else { invokeOnEach(_strings.begin(), _strings.end(), EmptyFilter(), MyInserter(joined)); invokeOnEach(_attrs.begin()->second.begin(), _attrs.begin()->second.end(), EmptyFilter(), MyInserter(joined)); rcstrings = createRegex(joined, cflags); } if (joined.size() > 1) // switch to regex for multiple strings cflags.setModeRegex(); // May use the same StrMatcher for all StrMatcher matcher( rcstrings, cflags ); for_( ai, _attrs.begin(), _attrs.end() ) { _attrMatchList.push_back( AttrMatchData( ai->first, matcher ) ); } } // // DIFFERENT STRINGS FOR DIFFERENT ATTRS // if _attrs is not empty and it contains non-empty vectors with non-empty strings // for each key in _attrs take all _strings + all _attrs[key] strings // create regex; flag 'different'; if more strings flag regex; else { for_(ai, _attrs.begin(), _attrs.end()) { StrContainer joined; invokeOnEach(_strings.begin(), _strings.end(), EmptyFilter(), MyInserter(joined)); invokeOnEach(ai->second.begin(), ai->second.end(), EmptyFilter(), MyInserter(joined)); string s = createRegex(joined, cflags); if (joined.size() > 1) // switch to regex for multiple strings cflags.setModeRegex(); _attrMatchList.push_back( AttrMatchData( ai->first, StrMatcher( s, cflags ) ) ); } } } // Now handle any predicated queries if ( ! _uncompiledPredicated.empty() ) { StrContainer global; invokeOnEach( _strings.begin(), _strings.end(), EmptyFilter(), MyInserter(global) ); for_( it, _uncompiledPredicated.begin(), _uncompiledPredicated.end() ) { if ( it->strMatcher.flags().mode() == Match::OTHER ) { // need to compile: StrContainer joined( global ); const std::string & mstr( it->strMatcher.searchstring() ); if ( ! mstr.empty() ) joined.insert( mstr ); cflags = _flags; rcstrings = createRegex( joined, cflags ); if ( joined.size() > 1 ) // switch to regex for multiple strings cflags.setModeRegex(); // copy and exchange the StrMatcher AttrMatchData nattr( *it ); nattr.strMatcher = StrMatcher( rcstrings, cflags ), _attrMatchList.push_back( std::move(nattr) ); } else { // copy matcher _attrMatchList.push_back( *it ); } } } // If no attributes defined at all, then add 'query all' if ( _attrMatchList.empty() ) { cflags = _flags; rcstrings = createRegex( _strings, cflags ); if ( _strings.size() > 1 ) // switch to regex for multiple strings cflags.setModeRegex(); _attrMatchList.push_back( AttrMatchData( sat::SolvAttr::allAttr, StrMatcher( rcstrings, cflags ) ) ); } // Finally check here, whether all involved regex compile. for_( it, _attrMatchList.begin(), _attrMatchList.end() ) { it->strMatcher.compile(); // throws on error } //DBG << asString() << endl; } /** * Converts '*' and '?' wildcards within str into their regex equivalents. */ static string wildcards2regex(const string & str) { string regexed = str; string r_all(".*"); // regex equivalent of '*' string r_one("."); // regex equivalent of '?' string::size_type pos; // replace all "*" in input with ".*" for (pos = 0; (pos = regexed.find("*", pos)) != std::string::npos; pos+=2) regexed = regexed.replace(pos, 1, r_all); // replace all "?" in input with "." for (pos = 0; (pos = regexed.find('?', pos)) != std::string::npos; ++pos) regexed = regexed.replace(pos, 1, r_one); return regexed; } string PoolQuery::Impl::createRegex( const StrContainer & container, const Match & flags ) const { //! macro for word boundary tags for regexes #define WB (_match_word ? string("\\b") : string()) string rstr; if (container.empty()) return rstr; if (container.size() == 1) { return WB + *container.begin() + WB; } // multiple strings bool use_wildcards = flags.isModeGlob(); StrContainer::const_iterator it = container.begin(); string tmp; if (use_wildcards) tmp = wildcards2regex(*it); else tmp = *it; if (_require_all) { if ( ! flags.isModeString() ) // not match exact tmp += ".*" + WB + tmp; rstr = "(?=" + tmp + ")"; } else { if ( flags.isModeString() || flags.isModeGlob() ) rstr = "^"; rstr += WB + "(" + tmp; } ++it; for (; it != container.end(); ++it) { if (use_wildcards) tmp = wildcards2regex(*it); else tmp = *it; if (_require_all) { if ( ! flags.isModeString() ) // not match exact tmp += ".*" + WB + tmp; rstr += "(?=" + tmp + ")"; } else { rstr += "|" + tmp; } } if (_require_all) { if ( ! flags.isModeString() ) // not match exact rstr += WB + ".*"; } else { rstr += ")" + WB; if ( flags.isModeString() || flags.isModeGlob() ) rstr += "$"; } return rstr; #undef WB } string PoolQuery::Impl::asString() const { ostringstream o; o << "kinds: "; if ( _kinds.empty() ) o << "ALL"; else { for(Kinds::const_iterator it = _kinds.begin(); it != _kinds.end(); ++it) o << *it << " "; } o << endl; o << "repos: "; if ( _repos.empty() ) o << "ALL"; else { for(StrContainer::const_iterator it = _repos.begin(); it != _repos.end(); ++it) o << *it << " "; } o << endl; o << "version: "<< _op << " " << _edition.asString() << endl; o << "status: " << ( _status_flags ? ( _status_flags == INSTALLED_ONLY ? "INSTALLED_ONLY" : "UNINSTALLED_ONLY" ) : "ALL" ) << endl; o << "string match flags: " << Match(_flags) << endl; // raw o << "strings: "; for(StrContainer::const_iterator it = _strings.begin(); it != _strings.end(); ++it) o << *it << " "; o << endl; o << "attributes: " << endl; for(AttrRawStrMap::const_iterator ai = _attrs.begin(); ai != _attrs.end(); ++ai) { o << "* " << ai->first << ": "; for(StrContainer::const_iterator vi = ai->second.begin(); vi != ai->second.end(); ++vi) o << *vi << " "; o << endl; } o << "predicated: " << endl; for_( it, _uncompiledPredicated.begin(), _uncompiledPredicated.end() ) { o << "* " << *it << endl; } // compiled o << "last attribute matcher compiled: " << endl; if ( _attrMatchList.empty() ) { o << "not yet compiled" << endl; } else { for_( it, _attrMatchList.begin(), _attrMatchList.end() ) { o << "* " << *it << endl; } } return o.str(); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQuery // /////////////////////////////////////////////////////////////////// PoolQuery::PoolQuery() : _pimpl(new Impl()) {} PoolQuery::~PoolQuery() {} void PoolQuery::addRepo(const std::string &repoalias) { if (repoalias.empty()) { WAR << "ignoring an empty repository alias" << endl; return; } _pimpl->_repos.insert(repoalias); } void PoolQuery::addKind(const ResKind & kind) { _pimpl->_kinds.insert(kind); } void PoolQuery::addString(const string & value) { _pimpl->_strings.insert(value); } void PoolQuery::addAttribute(const sat::SolvAttr & attr, const std::string & value) { _pimpl->_attrs[attr].insert(value); } void PoolQuery::addDependency( const sat::SolvAttr & attr, const std::string & name, const Rel & op, const Edition & edition ) { // Default Match::OTHER indicates need to compile, i.e. to merge name into the global search string and mode. return addDependency( attr, name, op, edition, Arch_empty, Match::OTHER ); } void PoolQuery::addDependency( const sat::SolvAttr & attr, const std::string & name, const Rel & op, const Edition & edition, const Arch & arch ) { // Default Match::OTHER indicates need to compile, i.e. to merge name into the global search string and mode. return addDependency( attr, name, op, edition, arch, Match::OTHER ); } void PoolQuery::addDependency( const sat::SolvAttr & attr, const std::string & name, const Rel & op, const Edition & edition, const Arch & arch, Match::Mode mode ) { if ( op == Rel::NONE ) // will never match. return; // SolvAttr::name with explicit 'kind:name' will overwrite the default _kinds ResKind explicitKind; if ( attr == sat::SolvAttr::name ) explicitKind = ResKind::explicitBuiltin( name ); // Legacy: Match::OTHER and no additional constraints on edition/arch/kind // require addAttribute, otherwise de-serialisation breaks (serialized // and de-serialized query could be !=). // From the results POV we could also use the predicated case below. if ( op == Rel::ANY && arch.empty() && !explicitKind && mode == Match::OTHER ) { addAttribute( attr, name ); return; } // Match::OTHER indicates need to compile // (merge global search strings into name). AttrMatchData attrMatchData( attr ); if ( !explicitKind ) attrMatchData.strMatcher = StrMatcher( name, mode ); else { // ResKind::explicitBuiltin call above asserts the presence of the ':' in name attrMatchData.strMatcher = StrMatcher( strchr( name.c_str(), ':')+1, mode ); attrMatchData.kindPredicate = explicitKind; } if ( isDependencyAttribute( attr ) ) attrMatchData.addPredicate( EditionRangePredicate( op, edition, arch ) ); else attrMatchData.addPredicate( SolvableRangePredicate( op, edition, arch ) ); _pimpl->_uncompiledPredicated.insert( attrMatchData ); } void PoolQuery::addDependency( const sat::SolvAttr & attr, Capability cap_r ) { CapDetail cap( cap_r ); if ( ! cap.isSimple() ) // will never match. return; // Matches STRING per default. (won't get compiled!) AttrMatchData attrMatchData( attr, StrMatcher( cap.name().asString() ) ); if ( isDependencyAttribute( attr ) ) attrMatchData.addPredicate( CapabilityMatchPredicate( cap_r ) ); else attrMatchData.addPredicate( SolvableRangePredicate( cap.op(), cap.ed() ) ); _pimpl->_uncompiledPredicated.insert( attrMatchData ); } void PoolQuery::setEdition(const Edition & edition, const Rel & op) { _pimpl->_edition = edition; _pimpl->_op = op; } void PoolQuery::setMatchSubstring() { _pimpl->_flags.setModeSubstring(); } void PoolQuery::setMatchExact() { _pimpl->_flags.setModeString(); } void PoolQuery::setMatchRegex() { _pimpl->_flags.setModeRegex(); } void PoolQuery::setMatchGlob() { _pimpl->_flags.setModeGlob(); } void PoolQuery::setMatchWord() { _pimpl->_match_word = true; _pimpl->_flags.setModeRegex(); } Match PoolQuery::flags() const { return _pimpl->_flags; } void PoolQuery::setFlags( const Match & flags ) { _pimpl->_flags = flags; } void PoolQuery::setInstalledOnly() { _pimpl->_status_flags = INSTALLED_ONLY; } void PoolQuery::setUninstalledOnly() { _pimpl->_status_flags = UNINSTALLED_ONLY; } void PoolQuery::setStatusFilterFlags( PoolQuery::StatusFilter flags ) { _pimpl->_status_flags = flags; } void PoolQuery::setRequireAll(bool require_all) { _pimpl->_require_all = require_all; } const PoolQuery::StrContainer & PoolQuery::strings() const { return _pimpl->_strings; } const PoolQuery::AttrRawStrMap & PoolQuery::attributes() const { return _pimpl->_attrs; } const PoolQuery::StrContainer & PoolQuery::attribute(const sat::SolvAttr & attr) const { static const PoolQuery::StrContainer nocontainer; AttrRawStrMap::const_iterator it = _pimpl->_attrs.find(attr); return it != _pimpl->_attrs.end() ? it->second : nocontainer; } const Edition PoolQuery::edition() const { return _pimpl->_edition; } const Rel PoolQuery::editionRel() const { return _pimpl->_op; } const PoolQuery::Kinds & PoolQuery::kinds() const { return _pimpl->_kinds; } const PoolQuery::StrContainer & PoolQuery::repos() const { return _pimpl->_repos; } bool PoolQuery::caseSensitive() const { return !_pimpl->_flags.test( Match::NOCASE ); } void PoolQuery::setCaseSensitive( bool value ) { _pimpl->_flags.turn( Match::NOCASE, !value ); } bool PoolQuery::filesMatchFullPath() const { return _pimpl->_flags.test( Match::FILES ); } void PoolQuery::setFilesMatchFullPath( bool value ) { _pimpl->_flags.turn( Match::FILES, value ); } bool PoolQuery::matchExact() const { return _pimpl->_flags.isModeString(); } bool PoolQuery::matchSubstring() const { return _pimpl->_flags.isModeSubstring(); } bool PoolQuery::matchGlob() const { return _pimpl->_flags.isModeGlob(); } bool PoolQuery::matchRegex() const { return _pimpl->_flags.isModeRegex(); } bool PoolQuery::matchWord() const { return _pimpl->_match_word; } bool PoolQuery::requireAll() const { return _pimpl->_require_all; } PoolQuery::StatusFilter PoolQuery::statusFilterFlags() const { return _pimpl->_status_flags; } bool PoolQuery::empty() const { try { return begin() == end(); } catch (const Exception & ex) {} return true; } PoolQuery::size_type PoolQuery::size() const { try { size_type count = 0; for_( it, begin(), end() ) ++count; return count; } catch (const Exception & ex) {} return 0; } void PoolQuery::execute(ProcessResolvable fnc) { invokeOnEach( begin(), end(), fnc); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQuery::Attr // /** * represents all atributes in PoolQuery except SolvAtributes, which are * used as is (not needed extend anything if someone adds new solv attr) */ struct PoolQueryAttr : public IdStringType { private: friend class IdStringType; IdString _str; public: //noAttr PoolQueryAttr(){} explicit PoolQueryAttr( const char* cstr_r ) : _str( cstr_r ) {} explicit PoolQueryAttr( const std::string & str_r ) : _str( str_r ) {} // unknown atributes static const PoolQueryAttr noAttr; // PoolQuery's own attributes static const PoolQueryAttr repoAttr; static const PoolQueryAttr kindAttr; static const PoolQueryAttr stringAttr; static const PoolQueryAttr stringTypeAttr; static const PoolQueryAttr requireAllAttr; static const PoolQueryAttr caseSensitiveAttr; static const PoolQueryAttr installStatusAttr; static const PoolQueryAttr editionAttr; static const PoolQueryAttr complexAttr; }; const PoolQueryAttr PoolQueryAttr::noAttr; const PoolQueryAttr PoolQueryAttr::repoAttr( "repo" ); const PoolQueryAttr PoolQueryAttr::kindAttr( "type" ); const PoolQueryAttr PoolQueryAttr::stringAttr( "query_string" ); const PoolQueryAttr PoolQueryAttr::stringTypeAttr("match_type"); const PoolQueryAttr PoolQueryAttr::requireAllAttr("require_all"); const PoolQueryAttr PoolQueryAttr::caseSensitiveAttr("case_sensitive"); const PoolQueryAttr PoolQueryAttr::installStatusAttr("install_status"); const PoolQueryAttr PoolQueryAttr::editionAttr("version"); const PoolQueryAttr PoolQueryAttr::complexAttr("complex"); class StringTypeAttr : public IdStringType { friend class IdStringType; IdString _str; public: StringTypeAttr(){} explicit StringTypeAttr( const char* cstr_r ) : _str( cstr_r ){} explicit StringTypeAttr( const std::string & str_r ) : _str( str_r ){} static const StringTypeAttr noAttr; static const StringTypeAttr exactAttr; static const StringTypeAttr substringAttr; static const StringTypeAttr regexAttr; static const StringTypeAttr globAttr; static const StringTypeAttr wordAttr; }; const StringTypeAttr StringTypeAttr::noAttr; const StringTypeAttr StringTypeAttr::exactAttr("exact"); const StringTypeAttr StringTypeAttr::substringAttr("substring"); const StringTypeAttr StringTypeAttr::regexAttr("regex"); const StringTypeAttr StringTypeAttr::globAttr("glob"); const StringTypeAttr StringTypeAttr::wordAttr("word"); /////////////////////////////////////////////////////////////////// //\TODO maybe ctor with stream can be usefull //\TODO let it throw, let it throw, let it throw. bool PoolQuery::recover( istream &str, char delim ) { bool finded_something = false; //indicates some atributes is finded string s; do { if ( str.eof() ) break; getline( str, s, delim ); if ((!s.empty()) && s[0]=='#') //comment { continue; } string::size_type pos = s.find(':'); if (s.empty() || pos == s.npos) // some garbage on line... act like blank line { if (finded_something) //is first blank line after record? { break; } else { continue; } } finded_something = true; string attrName(str::trim(string(s,0,pos))); // trimmed name of atribute string attrValue(str::trim(string(s,pos+1,s.npos))); //trimmed value PoolQueryAttr attribute( attrName ); if ( attribute==PoolQueryAttr::repoAttr ) { addRepo( attrValue ); } /* some backwards compatibility */ else if ( attribute==PoolQueryAttr::kindAttr || attribute=="kind" ) { addKind( ResKind(attrValue) ); } else if ( attribute==PoolQueryAttr::stringAttr || attribute=="global_string") { addString( attrValue ); } else if ( attribute==PoolQueryAttr::stringTypeAttr || attribute=="string_type" ) { StringTypeAttr s(attrValue); if( s == StringTypeAttr::regexAttr ) { setMatchRegex(); } else if ( s == StringTypeAttr::globAttr ) { setMatchGlob(); } else if ( s == StringTypeAttr::exactAttr ) { setMatchExact(); } else if ( s == StringTypeAttr::substringAttr ) { setMatchSubstring(); } else if ( s == StringTypeAttr::wordAttr ) { setMatchWord(); } else if ( s == StringTypeAttr::noAttr ) { WAR << "unknown string type " << attrValue << endl; } else { WAR << "forget recover some attribute defined as String type attribute: " << attrValue << endl; } } else if ( attribute==PoolQueryAttr::requireAllAttr ) { if ( str::strToTrue(attrValue) ) { setRequireAll(true); } else if ( !str::strToFalse(attrValue) ) { setRequireAll(false); } else { WAR << "unknown boolean value " << attrValue << endl; } } else if ( attribute==PoolQueryAttr::caseSensitiveAttr ) { if ( str::strToTrue(attrValue) ) { setCaseSensitive(true); } else if ( !str::strToFalse(attrValue) ) { setCaseSensitive(false); } else { WAR << "unknown boolean value " << attrValue << endl; } } else if ( attribute==PoolQueryAttr::installStatusAttr ) { if( attrValue == "all" ) { setStatusFilterFlags( ALL ); } else if( attrValue == "installed" ) { setInstalledOnly(); } else if( attrValue == "not-installed" ) { setUninstalledOnly(); } else { WAR << "Unknown value for install status " << attrValue << endl; } } else if ( attribute == PoolQueryAttr::editionAttr) { string::size_type pos; Rel rel("=="); if (attrValue.find_first_of("=<>!") == 0) { pos = attrValue.find_last_of("=<>"); rel = Rel(attrValue.substr(0, pos+1)); attrValue = str::trim(attrValue.substr(pos+1, attrValue.npos)); } setEdition(Edition(attrValue), rel); } else if ( attribute == PoolQueryAttr::complexAttr ) { try { _pimpl->_uncompiledPredicated.insert( AttrMatchData::deserialize( attrValue ) ); } catch ( const Exception & err ) { WAR << "Unparsable value for complex: " << err.asUserHistory() << endl; } } else if ( attribute==PoolQueryAttr::noAttr ) { WAR << "empty attribute name" << endl; } else { string s = attrName; str::replaceAll( s,"_",":" ); SolvAttr a(s); if ( a == SolvAttr::name || isDependencyAttribute( a ) ) { Capability c( attrValue ); CapDetail d( c ); if ( d.isVersioned() ) addDependency( a, d.name().asString(), d.op(), d.ed() ); else addDependency( a, attrValue ); } else addAttribute( a, attrValue ); } } while ( true ); return finded_something; } void PoolQuery::serialize( ostream &str, char delim ) const { //separating delim str << delim; //iterate thrue all settings and write it static const zypp::PoolQuery q; //not save default options, so create default query example for_( it, repos().begin(), repos().end() ) { str << "repo: " << *it << delim ; } for_( it, kinds().begin(), kinds().end() ) { str << PoolQueryAttr::kindAttr.asString() << ": " << it->idStr() << delim ; } if (editionRel() != Rel::ANY && edition() != Edition::noedition) str << PoolQueryAttr::editionAttr.asString() << ": " << editionRel() << " " << edition() << delim; if (matchMode()!=q.matchMode()) { switch( matchMode() ) { case Match::STRING: str << PoolQueryAttr::stringTypeAttr.asString() << ": exact" << delim; break; case Match::SUBSTRING: str << PoolQueryAttr::stringTypeAttr.asString() << ": substring" << delim; break; case Match::GLOB: str << PoolQueryAttr::stringTypeAttr.asString() << ": glob" << delim; break; case Match::REGEX: str << PoolQueryAttr::stringTypeAttr.asString() << ": regex" << delim; break; default: WAR << "unknown match type " << matchMode() << endl; } } if( caseSensitive() != q.caseSensitive() ) { str << "case_sensitive: "; if (caseSensitive()) { str << "on" << delim; } else { str << "off" << delim; } } if( requireAll() != q.requireAll() ) { str << "require_all: "; if (requireAll()) { str << "on" << delim; } else { str << "off" << delim; } } if( statusFilterFlags() != q.statusFilterFlags() ) { switch( statusFilterFlags() ) { case ALL: str << "install_status: all" << delim; break; case INSTALLED_ONLY: str << "install_status: installed" << delim; break; case UNINSTALLED_ONLY: str << "install_status: not-installed" << delim; break; } } for_( it, strings().begin(), strings().end() ) { str << PoolQueryAttr::stringAttr.asString()<< ": " << *it << delim; } for_( it, attributes().begin(), attributes().end() ) { string s = it->first.asString(); str::replaceAll(s,":","_"); for_( it2,it->second.begin(),it->second.end() ) { str << s <<": "<< *it2 << delim; } } for_( it, _pimpl->_uncompiledPredicated.begin(), _pimpl->_uncompiledPredicated.end() ) { str << "complex: "<< it->serialize() << delim; } //separating delim - protection str << delim; } string PoolQuery::asString() const { return _pimpl->asString(); } ostream & operator<<( ostream & str, const PoolQuery & obj ) { return str << obj.asString(); } std::ostream & dumpOn( std::ostream & str, const PoolQuery & obj ) { return dumpRange( str << obj, obj.begin(), obj.end() ); } bool PoolQuery::operator==( const PoolQuery & rhs ) const { return *_pimpl == *rhs._pimpl; } bool PoolQuery::operator<( const PoolQuery & rhs ) const { return *_pimpl < *rhs._pimpl; } /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQueryMatcher // /** Store \ref PoolQuery settings and assist \ref PoolQueryIterator. * * Basically the matcher performs a base query, which should preselect * candidates for a match. And has some filter conditions on top of it. * Query and fileter depend on the \ref PoolQuery settings. * * Matcher must be stateless, as it is shared between multiple * \ref PoolQueryIterator instances. * * If \ref base_iterator is at the \ref end, \ref advance moves it * to the first match. Otherwise advance moves to the next match, or * to the \ref end, if there is no more match. * * \note The original implementation treated an empty search string as * "match always". We stay compatible. */ class PoolQueryMatcher { public: typedef sat::LookupAttr::iterator base_iterator; public: const base_iterator & end() const { static base_iterator _end; return _end; } bool advance( base_iterator & base_r ) const { if ( base_r == end() ) base_r = startNewQyery(); // first candidate else { base_r.nextSkipSolvable(); // assert we don't visit this Solvable again ++base_r; // advance to next candidate } while ( base_r != end() ) { if ( isAMatch( base_r ) ) return true; // No match: try next ++base_r; } return false; } /** Provide all matching attributes within this solvable. * */ void matchDetail( const base_iterator & base_r, std::vector & return_r ) const { if ( base_r == end() ) return; sat::Solvable inSolvable( base_r.inSolvable() ); if ( _attrMatchList.size() == 1 ) { // base_r is already on the 1st matching attribute! // String matching is done by the base iterator. We must check the predicate here. // Let's see if there are more matches for this solvable: base_iterator base( base_r ); base.stayInThisSolvable(); // avoid discarding matches we found far away from here. return_r.push_back( base ); const AttrMatchData::Predicate & predicate( _attrMatchList.front().predicate ); for ( ++base; base.inSolvable() == inSolvable; ++base ) // safe even if base == end() { if ( ! predicate || predicate( base ) ) return_r.push_back( base ); } } else { // Here: search all attributes ;( for_( mi, _attrMatchList.begin(), _attrMatchList.end() ) { const AttrMatchData & matchData( *mi ); sat::LookupAttr q( matchData.attr, inSolvable ); if ( matchData.strMatcher ) // an empty searchstring matches always q.setStrMatcher( matchData.strMatcher ); if ( ! q.empty() ) // there are matches. { // now check any predicate: const AttrMatchData::Predicate & predicate( matchData.predicate ); for_( it, q.begin(), q.end() ) { if ( ! predicate || predicate( it ) ) return_r.push_back( it ); } } } } } public: /** Ctor stores the \ref PoolQuery settings. * \throw MatchException Any of the exceptions thrown by \ref PoolQuery::Impl::compile. */ PoolQueryMatcher( const shared_ptr & query_r ) { query_r->compile(); // Repo restriction: sat::Pool satpool( sat::Pool::instance() ); for_( it, query_r->_repos.begin(), query_r->_repos.end() ) { Repository r( satpool.reposFind( *it ) ); if ( r ) _repos.insert( r ); else _neverMatchRepo = true; } // _neverMatchRepo: we just need to catch the case that no repo // matched, so we'd interpret the empty list as 'take from all' if ( _neverMatchRepo && ! _repos.empty() ) _neverMatchRepo = false; // Kind restriction: _kinds = query_r->_kinds; // Edition restriction: _op = query_r->_op; _edition = query_r->_edition; // Status restriction: _status_flags = query_r->_status_flags; // StrMatcher _attrMatchList = query_r->_attrMatchList; } ~PoolQueryMatcher() {} private: /** Initialize a new base query. */ base_iterator startNewQyery() const { sat::LookupAttr q; if ( _neverMatchRepo ) return q.end(); // Repo restriction: if ( _repos.size() == 1 ) q.setRepo( *_repos.begin() ); // else: handled in isAMatch. // Attribute restriction: if ( _attrMatchList.size() == 1 ) // all (SolvAttr::allAttr) or 1 attr { const AttrMatchData & matchData( _attrMatchList.front() ); q.setAttr( matchData.attr ); if ( matchData.strMatcher ) // empty searchstring matches always q.setStrMatcher( matchData.strMatcher ); } else // more than 1 attr (but not all) { // no restriction, it's all handled in isAMatch. q.setAttr( sat::SolvAttr::allAttr ); } return q.begin(); } /** Check whether we are on a match. * * The check covers the whole Solvable, not just the current * attribute \c base_r points to. If there's no match, also * prepare \c base_r to advance appropriately. If there is * a match, simply return \c true. \ref advance always moves * to the next Solvable if there was a match. * * \note: Caller asserts we're not at \ref end. */ bool isAMatch( base_iterator & base_r ) const { ///////////////////////////////////////////////////////////////////// Repository inRepo( base_r.inRepo() ); // Status restriction: if ( _status_flags && ( (_status_flags == PoolQuery::INSTALLED_ONLY) != inRepo.isSystemRepo() ) ) { base_r.nextSkipRepo(); return false; } // Repo restriction: if ( _repos.size() > 1 && _repos.find( inRepo ) == _repos.end() ) { base_r.nextSkipRepo(); return false; } ///////////////////////////////////////////////////////////////////// sat::Solvable inSolvable( base_r.inSolvable() ); // Edition restriction: if ( _op != Rel::ANY && !compareByRel( _op, inSolvable.edition(), _edition, Edition::Match() ) ) { base_r.nextSkipSolvable(); return false; } // Kind restriction: // Delay the decision to nextSkipSolvable and return false, as there may be // some explicit kind:name predicate which overrules the global kinds. bool globalKindOk =( _kinds.empty() || inSolvable.isKind( _kinds.begin(), _kinds.end() ) ); ///////////////////////////////////////////////////////////////////// // string and predicate matching: if ( _attrMatchList.size() == 1 ) { // String matching was done by the base iterator. // Now check any predicate: const AttrMatchData & matchData( _attrMatchList.front() ); if ( matchData.kindPredicate ) { if ( matchData.kindPredicate != inSolvable.kind() ) { base_r.nextSkipSolvable(); // this matchData will never match in this solvable return false; } } else if ( !globalKindOk ) return false; // only matching kindPredicate could overwrite this if ( !matchData.predicate || matchData.predicate( base_r ) ) return true; return false; // no skip as there may be more occurrences in this solvable of this attr. } // Here: search all attributes ;( for_( mi, _attrMatchList.begin(), _attrMatchList.end() ) { const AttrMatchData & matchData( *mi ); if ( matchData.kindPredicate ) { if ( matchData.kindPredicate != inSolvable.kind() ) continue; // this matchData does not apply } else if ( !globalKindOk ) continue; // only matching kindPredicate could overwrite this sat::LookupAttr q( matchData.attr, inSolvable ); if ( matchData.strMatcher ) // an empty searchstring matches always q.setStrMatcher( matchData.strMatcher ); if ( ! q.empty() ) // there are matches. { // now check any predicate: const AttrMatchData::Predicate & predicate( matchData.predicate ); if ( predicate ) { for_( it, q.begin(), q.end() ) { if ( predicate( it ) ) return true; } } else return true; } } base_r.nextSkipSolvable(); return false; } private: /** Repositories include in the search. */ std::set _repos; DefaultIntegral _neverMatchRepo; /** Resolvable kinds to include. */ std::set _kinds; /** Edition filter. */ Rel _op; Edition _edition; /** Installed status filter flags. \see PoolQuery::StatusFilter */ int _status_flags; /** StrMatcher per attribtue. */ AttrMatchList _attrMatchList; }; /////////////////////////////////////////////////////////////////// void PoolQueryIterator::increment() { // matcher restarts if at end! It is called from the ctor // to get the 1st match. But if the end is reached, it should // be deleted, otherwise we'd start over again. if ( !_matcher ) return; // at end if ( _matches ) _matches.reset(); // invalidate old matches if ( ! _matcher->advance( base_reference() ) ) _matcher.reset(); } const PoolQueryIterator::Matches & PoolQueryIterator::matches() const { if ( _matches ) return *_matches; if ( !_matcher ) { // at end of query: static const Matches _none; return _none; } _matches.reset( new Matches ); _matcher->matchDetail( base_reference(), *_matches ); return *_matches; } std::ostream & dumpOn( std::ostream & str, const PoolQueryIterator & obj ) { str << *obj; if ( ! obj.matchesEmpty() ) { for_( it, obj.matchesBegin(), obj.matchesEnd() ) { str << endl << " " << it->inSolvAttr() << "\t" << it->asString(); } } return str; } /////////////////////////////////////////////////////////////////// } //namespace detail /////////////////////////////////////////////////////////////////// detail::PoolQueryIterator PoolQuery::begin() const { return shared_ptr( new detail::PoolQueryMatcher( _pimpl.getPtr() ) ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PoolQuery.h000066400000000000000000000562771334444677500164530ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolQuery.h * */ #ifndef ZYPP_POOLQUERY_H #define ZYPP_POOLQUERY_H #include #include #include #include "zypp/base/Regex.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/sat/LookupAttr.h" #include "zypp/base/StrMatcher.h" #include "zypp/sat/Pool.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace detail { class PoolQueryIterator; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQuery // /** * Meta-data query API. Returns solvables of specified kinds from specified * repositories with attributes matching the specified search strings. * * The search strings can be specified via \ref addString() and * \ref addAttribute() methods. String matching type can be set using the * setMatch*() methods. Multiple search strings for a particular attribute * will be combined into a regex (see \ref addString() and * \ref addAttribute() for more details). * * The begin() and end() methods return a PoolQueryIterator returning * \ref sat::Solvable objects which can easily be turned into \ref Resolvable * objects. Additionally, thanx to the \ref sat::SolvIterMixin, a Selectable * and PoolItem iterators are automatically available. * * \note You will sometimes face the problem, that when using the \ref PoolItem * iterator you hit multiple version of the same package, while when using the * \ref ui::Selectable iterator the information which of the available candidates * actually matched got lost. In this case class \ref PoolItemBest may help you. * Use it to pick the best version only. * * * PoolQuery q; * q.addAttribute(sat::SolvAttr::name, "zypp*"); * q.addKind(ResKind::package); * q.setMatchGlob(); * * for (PoolQuery::Selectable_iterator it = q.selectableBegin(); * it != q.selectableEnd(); ++it) * { * ui::Selectable::constPtr s = *it; * // ... * } * * * Performance considerations * * Results of simple queries like those using one string and/or one attribute * and/or one repository are filtered by sat-solver's Dataiterator directly, * and thus it is fast. * * Queries with multiple strings are implemented using regexes. Queries based * on kinds, multiple repos, and multiple attributes are filtered inside * the PoolQuery, so these tend to be slower. * * \see detail::PoolQueryIterator on how to inspect matches in detail. * \see tests/zypp/PoolQuery_test.cc for more examples * \see sat::SolvIterMixin */ class PoolQuery : public sat::SolvIterMixin { public: typedef std::set Kinds; typedef std::set StrContainer; typedef std::map AttrRawStrMap; typedef detail::PoolQueryIterator const_iterator; typedef unsigned int size_type; public: typedef function ProcessResolvable; PoolQuery(); ~PoolQuery(); /** Query result accessers. */ //@{ /** * Compile the query and return an iterator to the result. * * \return An iterator (\ref detail::PoolQueryIterator) returning * sat::Solvable objects pointing at the beginning of the query result. * \throws sat::MatchInvalidRegexException if the query was about to use a regex which * failed to compile. * * \note Note that PoolQuery is derived from \ref sat::SolvIterMixin which * makes PoolItem and Selectable iterators automatically available. * \see \ref sat::SolvIterMixin */ const_iterator begin() const; /** An iterator pointing to the end of the query result. */ const_iterator end() const; /** Whether the result is empty. */ bool empty() const; /** Number of solvables in the query result. */ size_type size() const; //@} /** * Executes the query with the current settings. * Results are yielded via the \a fnc callback. */ void execute(ProcessResolvable fnc); /** * Filter by selectable kind. * * By default, all kinds will be returned. If addKind() is used, * only the specified kinds will be returned (multiple kinds will be ORed). * * \note This kind filter does not apply if you explicitly specify a ResKind * when searching for \c sat::SolvAttr::name. The following will always match * and include the kernel \c packages, no matter which kind filter is set. * \code * addDependency( sat::SolvAttr::name, "package:kernel" ); * \endcode * * Pass ResKind constants to this method, (e.g. ResKind::package). */ void addKind(const ResKind & kind); /** * Filter by repo. * * By default, all repos will be returned. If addRepo() is used, * only the specified repo will be returned (multiple repos will be ORed). */ void addRepo(const std::string &repoalias); /** Installed status filter setters. */ //@{ /** * Filter by status (installed uninstalled) */ enum StatusFilter { ALL = 0, // both install filter and uninstall filter bits are 0 INSTALLED_ONLY = 1, UNINSTALLED_ONLY = 2 }; /** Return only @System repo packages */ void setInstalledOnly(); /** Return only packages from repos other than @System. */ void setUninstalledOnly(); /** Set status filter directly \see StatusFilter */ void setStatusFilterFlags( StatusFilter flags ); //@} /** * Add a global query string. The string added via this method is applied * to all query attributes as if addAttribute(..., \value) was called * for all of them. * * This method can be used multiple times in which case the query strings * will be combined (together with strings added via addAttribute()) into * a regex. Searched attribute value will match this regex if any * of these strings will match the value. This can be changed by * (not yet implemented) \ref setRequireAll() method. */ void addString(const std::string & value); /** * Filter by the \a value of the specified \a attr attribute. This can * be any of the available solvable attributes. * * This method can be used multiple times with the same \a attr in which * case the query strings will be combined (together with strings added * via addString()) into a regex. Searched attribute value will match * this regex if any of these strings will match the value. * This can be changed by (not yet implemented) \ref setRequireAll() * method. * * \note Though it is possible to use dependency attributes like * \ref Solv::Attr::provides here, note that the query string is * matched against a dependencies \c "name" part only. Any * "op edition" part of a \ref Capability is \b not * considered at all. \see \ref addDependency on how to query for * capabilities including edition ranges. * * \note Solvables of a kind not supporting the specified attribute will * not be returned. * \todo check the above * * \param attr Attribute identfier. Use sat::Solvattr::* constants * \param value What to search for. * * \see sat::SolvAttr */ void addAttribute( const sat::SolvAttr & attr, const std::string & value = "" ); /** \name Filter by dependencies matching a broken down capability name [op edition] and/or architecture. * * The capabilities \c name part may be defined as query string * like with \ref addAttribute. Globing and regex are supported. * Global query strings defined by \ref addString are considered. * * So without any op edition arch addDependency behaves the * same as \ref addAttribute. If an edition range is given, matches * are restricted accordingly. There are various overloads, so pick * the one you like best. * * An optional \c arch argument will additionally require the matching * solvable to be of this arch. * * \code * { * setMatchGlob(); * setCaseSensitive( false ); * addDependency( sat::SolvAttr::provides, "kde*", Rel::EQ, Edition("2.0") ); * addDependency( sat::SolvAttr::provides, "kde*", Edition("2.0") ); // same as above * } * { * setMatchGlob(); * setCaseSensitive( false ); * addString( "kde*" ); * addDependency( sat::SolvAttr::provides, Rel::EQ, Edition("2.0") );// same as above * addDependency( sat::SolvAttr::provides, Edition("2.0") ); // same as above * } * \endcode * * \note Thre's also a version of \ref addDependency provided, that takes a * complete \ref Capability as argument. This always requires an exact match * of the name part (as the resolver would do it). * * This is the list of valid dependency attributes: * \code * SolvAttr::provides * SolvAttr::obsoletes * SolvAttr::conflicts * SolvAttr::requires * SolvAttr::recommends * SolvAttr::suggests * SolvAttr::supplements * SolvAttr::enhances * \endcode * * \note What happens if a non dependency attribute is passed?<\b> * If an edition range is given, it is matched against the matching * solvables edition instead. Without edition range it behaves the * same as \ref addAttribute. * * \code * // Find all packages providing "kernel > 2.0" * addDependency( sat::SolvAttr::provides, "kernel", Rel::GT, Edition("2.0") ); * * // // Find all packages named "kernel" and with edition "> 2.0" * addDependency( sat::SolvAttr::name, "kernel", Rel::GT, Edition("2.0") ); * \endcode */ //@{ /** Query "name|global op edition". */ void addDependency( const sat::SolvAttr & attr, const std::string & name, const Rel & op, const Edition & edition ); /** \overload also restricting architecture */ void addDependency( const sat::SolvAttr & attr, const std::string & name, const Rel & op, const Edition & edition, const Arch & arch ); /** \overload also use an individual Match::Mode for the \a name */ void addDependency( const sat::SolvAttr & attr, const std::string & name, const Rel & op, const Edition & edition, const Arch & arch, Match::Mode mode ); /** \overload Query "name|global == edition". */ void addDependency( const sat::SolvAttr & attr, const std::string & name, const Edition & edition ) { addDependency( attr, name, Rel::EQ, edition ); } /** \overload also restricting architecture */ void addDependency( const sat::SolvAttr & attr, const std::string & name, const Edition & edition, const Arch & arch ) { addDependency( attr, name, Rel::EQ, edition, arch ); } /** \overload Query "name|global". */ void addDependency( const sat::SolvAttr & attr, const std::string & name ) { addDependency( attr, name, Rel::ANY, Edition() ); } /** \overload also restricting architecture */ void addDependency( const sat::SolvAttr & attr, const std::string & name, const Arch & arch ) { addDependency( attr, name, Rel::ANY, Edition(), arch ); } /** \overload Query "global op edition".*/ void addDependency( const sat::SolvAttr & attr, const Rel & op, const Edition & edition ) { addDependency( attr, std::string(), op, edition ); } /** \overload also restricting architecture */ void addDependency( const sat::SolvAttr & attr, const Rel & op, const Edition & edition, const Arch & arch ) { addDependency( attr, std::string(), op, edition, arch ); } /** \overload Query "global == edition". */ void addDependency( const sat::SolvAttr & attr, const Edition & edition ) { addDependency( attr, std::string(), Rel::EQ, edition ); } /** \overload also restricting architecture */ void addDependency( const sat::SolvAttr & attr, const Edition & edition, const Arch & arch ) { addDependency( attr, std::string(), Rel::EQ, edition, arch ); } /** \overload Query "global". */ void addDependency( const sat::SolvAttr & attr ) { addDependency( attr, std::string(), Rel::ANY, Edition() ); } /** \overload also restricting architecture */ void addDependency( const sat::SolvAttr & attr, const Arch & arch ) { addDependency( attr, std::string(), Rel::ANY, Edition(), arch ); } /** \overload Query taking a \ref Capability (always exact name match). * \note If a non dependency attribute is passed, the \ref Capability * will always be matched against the Solvables \c name and \c edition. */ void addDependency( const sat::SolvAttr & attr, Capability cap_r ); //@} /** * Set version condition. This will filter out solvables not matching * solvableEdition \a op \a edition. * * \param edition Edition to look for. * \param op Found-wanted relation operator. */ void setEdition(const Edition & edition, const Rel & op = Rel::EQ); /** \name Text Matching Options * \note The implementation treats an empty search string as * "match always". So if you want to actually match * an empty value, try ( "^$", setMatchRegex ). */ //@{ /** * Turn case sentitivity on or off (unsets or sets \ref SEARCH_NOCASE flag). * PoolQuery defaults to case insensitive search unless this method * is used. * * \param value Whether to turn the case sensitivity on (default) or off. */ void setCaseSensitive( bool value = true ); /** * If set (default), look at the full path when searching in filelists. * Otherwise just match the the basenames. * \see \ref Match::FILES */ void setFilesMatchFullPath( bool value = true ); /** \overload */ void setFilesMatchBasename( bool value = true ) { setFilesMatchFullPath( !value ); } /** Set to match exact string instead of substring.*/ void setMatchExact(); /** Set to substring (the default). */ void setMatchSubstring(); /** Set to match globs. */ void setMatchGlob(); /** Set to use the query strings as regexes */ void setMatchRegex(); /** Set to match words (uses regex) */ void setMatchWord(); //void setLocale(const Locale & locale); //@} /** * Require that all of the values set by addString or addAttribute * match the values of respective attributes. * * \todo doesn't work yet, don't use this function */ void setRequireAll( bool require_all = true ); /** \name getters */ //@{ /** Search strings added via addString() */ const StrContainer & strings() const; /** * Map (map) of attribute values added via * addAttribute(), addDep in string form */ const AttrRawStrMap & attributes() const; const StrContainer & attribute(const sat::SolvAttr & attr) const; const Kinds & kinds() const; const StrContainer & repos() const; const Edition edition() const; const Rel editionRel() const; /** * returns true if search is case sensitive */ bool caseSensitive() const; /** Whether searching in filelists looks at the full path or just at the basenames. */ bool filesMatchFullPath() const; /** \overload */ bool filesMatchBasename() const { return !filesMatchFullPath(); } bool matchExact() const; bool matchSubstring() const; bool matchGlob() const; bool matchRegex() const; bool matchWord() const; /** Returns string matching mode as enum. * \see \ref Match::Mode */ Match::Mode matchMode() const { return flags().mode(); } /** * Whether all values added via addString() or addAttribute() are required * to match the values of the respective attributes. */ bool requireAll() const; StatusFilter statusFilterFlags() const; //@} /** * Reads from stream query. Attributes is sepated by delim. Query is * separated by two delim. * * \param str input stream which contains query * \param delim delimeter for attributes * \return true if non-empty query is recovered * * \see readPoolQueriesFromFile */ bool recover( std::istream &str, char delim = '\n' ); /** * Writes a machine-readable string representation of the query to stream. * Use \a delim as attribute delimiter. * * \param str output stream to write to * \param delim delimiter for attributes * * \see writePoolQueriesToFile */ void serialize( std::ostream &str, char delim = '\n' ) const; /** Return a human-readable description of the query */ std::string asString() const; bool operator<(const PoolQuery& b) const; bool operator==(const PoolQuery& b) const; bool operator!=(const PoolQuery& b) const { return !(*this == b ); } // low level API /** * Free function to get libsolv repo search * flags. * * \see \ref Match */ Match flags() const; /** * Free function to set libsolv repo search * flags. * * \see \ref Match */ void setFlags( const Match & flags ); public: class Impl; private: /** Pointer to implementation */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates PoolQuery Stream output. */ std::ostream & operator<<( std::ostream & str, const PoolQuery & obj ); /** \relates PoolQuery Detailed stream output. */ std::ostream & dumpOn( std::ostream & str, const PoolQuery & obj ); /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// class PoolQueryMatcher; /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQuery::PoolQueryIterator // /** \ref PoolQuery iterator as returned by \ref PoolQuery::begin. * * The \ref PoolQueryIterator visits sat::Solavables that do contain matches. * * But it also provides an iterator by itself, to allow a detailed inspection of * the individual attribute matches within the current Solvable. */ class PoolQueryIterator : public boost::iterator_adaptor< PoolQueryIterator // Derived , sat::LookupAttr::iterator // Base , const sat::Solvable // Value , boost::forward_traversal_tag // CategoryOrTraversal , const sat::Solvable // Reference > { typedef std::vector Matches; public: typedef Matches::size_type size_type; typedef Matches::const_iterator matches_iterator; public: /** Default ctor is also \c end.*/ PoolQueryIterator() {} /** \Ref PoolQuery ctor. */ PoolQueryIterator( const shared_ptr & matcher_r ) : _matcher( matcher_r ) { increment(); } /** \name Detailed inspection of attribute matches within the current Solvable. * * The \ref matches_iterator visits all attribute matches within the current Solvable, * providing a \ref sat::LookupAttr::iterator pointing to attribute. While a * \ref matches_iterator itself becomes invalid if the PoolQueryIterator is advanced, * the \ref sat::LookupAttr::iterator it pointed to stays valid, even after the query * ended. * * \code * // Setup query for "libzypp" in name or requires: * PoolQuery q; * q.addString( "libzypp" ); * q.setMatchSubstring(); * q.setCaseSensitive( false ); * q.addAttribute( sat::SolvAttr::name ); * q.addDependency( sat::SolvAttr::requires ); * * // Iterate the result: * for_( solvIter, q.begin(), q.end() ) * { * sat::Solvable solvable( *solvIter ); * cout << "Found matches in " << solvable << endl; * if ( verbose ) * for_( attrIter, solvIter.matchesBegin(), solvIter.matchesEnd() ) * { * sat::LookupAttr::iterator attr( *attrIter ); * cout << " " << attr.inSolvAttr() << "\t\"" << attr.asString() << "\"" << endl; * } * } * * * Found matches in PackageKit-0.3.11-1.12.i586(@System) * solvable:requires "libzypp.so.523" * Found matches in libqdialogsolver1-1.2.6-1.1.2.i586(@System) * solvable:requires "libzypp.so.523" * solvable:requires "libzypp >= 5.25.3-0.1.2" * Found matches in libzypp-5.30.3-0.1.1.i586(@System) * solvable:name "libzypp" * Found matches in libzypp-testsuite-tools-4.2.6-8.1.i586(@System) * solvable:name "libzypp-testsuite-tools" * solvable:requires "libzypp.so.523" * ... * \endcode */ //@{ /** \c False unless this is the \c end iterator. */ bool matchesEmpty() const { return ! _matcher; } /** Number of attribute matches. */ size_type matchesSize() const { return matches().size(); } /** Begin of matches. */ matches_iterator matchesBegin() const { return matches().begin(); } /** End of matches. */ matches_iterator matchesEnd() const { return matches().end(); } //@} private: friend class boost::iterator_core_access; sat::Solvable dereference() const { return base_reference().inSolvable(); } void increment(); private: const Matches & matches() const; private: shared_ptr _matcher; mutable shared_ptr _matches; }; /////////////////////////////////////////////////////////////////// /** \relates PoolQueryIterator Stream output. */ inline std::ostream & operator<<( std::ostream & str, const PoolQueryIterator & obj ) { return str << obj.base(); } /** \relates PoolQueryIterator Detailed stream output. */ std::ostream & dumpOn( std::ostream & str, const PoolQueryIterator & obj ); /////////////////////////////////////////////////////////////////// } //namespace detail /////////////////////////////////////////////////////////////////// inline detail::PoolQueryIterator PoolQuery::end() const { return detail::PoolQueryIterator(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOLQUERY_H libzypp-17.7.0/zypp/PoolQueryResult.cc000066400000000000000000000024571334444677500177770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolQueryResult.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/PoolQueryResult.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const PoolQueryResult & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PoolQueryResult.h000066400000000000000000000170501334444677500176340ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolQueryResult.h * */ #ifndef ZYPP_POOLQUERYRESULT_H #define ZYPP_POOLQUERYRESULT_H #include #include "zypp/base/Hash.h" #include "zypp/base/Exception.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/PoolItem.h" #include "zypp/PoolQuery.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolQueryResult // /** Helper class to collect (not only) \ref PoolQuery results. * * \note Unfortunately \ref PoolQuery::begin might throw. Exceptions * are caught and the query is treated as empty. * * \ref PoolQueryResult maintains a set of \ref sat::Solvable. You can * add/remove solvables to/from the set defined by: * * \li a single \ref sat::Solvable * \li a single \ref PoolItem * \li a \ref PoolQuery * \li an other \ref PoolQueryResult * \li any iterator pair with \c value_type \ref sat::Solvable * or \ref PoolItem or \ref PoolQuery or any type that fits * \c operator+=. * * The class is a \ref sat::SolvIterMixin, so you can iterate the result * not just as \ref sat::Solvable, but also as \ref PoolItem or * \ref ui::Selectable. * * \code * // Constructed from PoolItem iterator pair * PoolQueryResult result( pool.byKindBegin(), pool.byKindEnd() ); * MIL << result.size() << endl; * * { * // Removing a PoolQuery result * PoolQuery q; * q.addAttribute( sat::SolvAttr::name, "[a-zA-Z]*" ); * q.setMatchGlob(); * result -= q; * MIL << result.size() << endl; * } * MIL << result << endl; * * // Removing a range of sat::Solvables * sat::WhatProvides poviders( Capability("3ddiag") ); * result -= PoolQueryResult( poviders.begin(), poviders.end() ); * * // packages not starting with a letter, except 3ddiag * MIL << result << endl; * \endcode */ class PoolQueryResult : public sat::SolvIterMixin::const_iterator> { public: typedef std::unordered_set ResultSet; typedef ResultSet::size_type size_type; typedef ResultSet::const_iterator const_iterator; public: /** Default ctor (empty result) */ PoolQueryResult() {} /** Ctor adding one \ref sat::Solvable. */ explicit PoolQueryResult( sat::Solvable result_r ) { operator+=( result_r ); } /** Ctor adding one \ref PoolItem. */ explicit PoolQueryResult( const PoolItem & result_r ) { operator+=( result_r ); } /** Ctor adding one \ref PoolQuery result. */ explicit PoolQueryResult( const PoolQuery & query_r ) { operator+=( query_r ); } /** Ctor adding a range of items for which \ref operator+= is defined. */ template PoolQueryResult( TQueryResultIter begin_r, TQueryResultIter end_r ) { for_( it, begin_r, end_r ) { operator+=( *it ); } } public: /** Whether the result is empty. */ bool empty() const { return _result.empty(); } /** The number of \ref sat::Solvables. */ size_type size() const { return _result.size(); } /** */ const_iterator begin() const { return _result.begin(); } /** */ const_iterator end() const { return _result.end(); } /** Test whether some item is in the result set. */ bool contains(sat::Solvable result_r ) const { return( _result.find( result_r ) != _result.end() ); } /** \overload */ bool contains( const PoolItem & result_r ) const { return contains( result_r.satSolvable() ); } public: /** Clear the result. */ void clear() { _result.clear(); } /** Add items to the result. */ PoolQueryResult & operator+=( const PoolQueryResult & query_r ) { if ( ! query_r.empty() ) _result.insert( query_r.begin(), query_r.end() ); return *this; } /** \overload */ PoolQueryResult & operator+=( const PoolQuery & query_r ) { try { for_( it, query_r.begin(), query_r.end() ) _result.insert( *it ); } catch ( const Exception & ) {} return *this; } /** \overload */ PoolQueryResult & operator+=( sat::Solvable result_r ) { _result.insert( result_r ); return *this; } /** \overload */ PoolQueryResult & operator+=( const PoolItem & result_r ) { _result.insert( result_r.satSolvable() ); return *this; } /** Remove Items from the result. */ PoolQueryResult & operator-=( const PoolQueryResult & query_r ) { if ( &query_r == this ) // catch self removal! clear(); else for_( it, query_r.begin(), query_r.end() ) _result.erase( *it ); return *this; } /** \overload */ PoolQueryResult & operator-=( const PoolQuery & query_r ) { try { for_( it, query_r.begin(), query_r.end() ) _result.erase( *it ); } catch ( const Exception & ) {} return *this; } /** \overload */ PoolQueryResult & operator-=( sat::Solvable result_r ) { _result.erase( result_r ); return *this; } /** \overload */ PoolQueryResult & operator-=( const PoolItem & result_r ) { _result.erase( result_r.satSolvable() ); return *this; } public: /** Combine results. */ PoolQueryResult operator+( const PoolQueryResult & query_r ) const { return PoolQueryResult(*this) += query_r; } /** \overload */ PoolQueryResult operator+( const PoolQuery & query_r ) const { return PoolQueryResult(*this) += query_r; } /** \overload */ PoolQueryResult operator+( sat::Solvable result_r ) const { return PoolQueryResult(*this) += result_r; } /** Intersect results. */ PoolQueryResult operator-( const PoolQueryResult & query_r ) const { return PoolQueryResult(*this) -= query_r; } /** \overload */ PoolQueryResult operator-( const PoolQuery & query_r ) const { return PoolQueryResult(*this) -= query_r; } /** \overload */ PoolQueryResult operator-( sat::Solvable result_r ) const { return PoolQueryResult(*this) -= result_r; } private: ResultSet _result; }; /////////////////////////////////////////////////////////////////// /** \relates PoolQueryResult Stream output */ std::ostream & operator<<( std::ostream & str, const PoolQueryResult & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOLQUERYRESULT_H libzypp-17.7.0/zypp/PoolQueryUtil.tcc000066400000000000000000000040761334444677500176210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PoolQueryUtil.tcc * * including fstream is not hell here because this header only included * by implementation file, header doesn't need include it. */ #ifndef ZYPP_POOLQUERYUTIL_TCC #define ZYPP_POOLQUERYUTIL_TCC #include #include "zypp/Pathname.h" #include "zypp/PoolQuery.h" #include "zypp/base/String.h" namespace zypp { /** * sends to output iterator all queries readed from file. * * \code * list s; * insert_iterator > ii(s, s.end()); * readPoolQueriesFromStream(f,ii); * \endcode */ template void readPoolQueriesFromFile(const zypp::filesystem::Pathname &file, OutputIterator out ) { bool found; std::ifstream fin( file.c_str() ); if (!fin) ZYPP_THROW(Exception(str::form("Cannot open file %s",file.c_str()))); do { zypp::PoolQuery q; found = q.recover( fin ); if (found) *out++ = q; } while ( found ); fin.close(); } /** * Writes all queries from begin to end. */ template void writePoolQueriesToFile(const zypp::filesystem::Pathname &file, InputIterator begin, InputIterator end ) { std::ofstream fout( file.c_str(), std::ios_base::out | std::ios_base::trunc ); if (!fout) ZYPP_THROW(Exception(str::form("Cannot open file %s",file.c_str()))); for_( it, begin, end ) { it->serialize( fout ); } fout.close(); } } #endif // ZYPP_POOLQUERYUTIL_H libzypp-17.7.0/zypp/ProblemSolution.cc000066400000000000000000000103201334444677500177620ustar00rootroot00000000000000 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* ProblemSolution.cc * * Easy-to use interface to the ZYPP dependency resolver * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Gettext.h" #include "zypp/solver/detail/SolutionAction.h" #include "zypp/ProblemSolution.h" #include "zypp/base/Logger.h" #include "zypp/solver/detail/Resolver.h" using std::endl; ///////////////////////////////////////////////////////////////////////// namespace zypp { IMPL_PTR_TYPE(ProblemSolution); /////////////////////////////////////////////////////////////////// /// \class ProblemSolution::Impl /// \brief ProblemSolution implementation. /////////////////////////////////////////////////////////////////// struct ProblemSolution::Impl { Impl() {} Impl( std::string && description ) : _description( std::move(description) ) {} Impl( std::string && description, std::string && details ) : _description( std::move(description) ) , _details( std::move(details) ) {} std::string _description; std::string _details; SolutionActionList _actions; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// ProblemSolution::ProblemSolution() : _pimpl( new Impl() ) {} ProblemSolution::ProblemSolution( std::string description ) : _pimpl( new Impl( std::move(description) ) ) {} ProblemSolution::ProblemSolution( std::string description, std::string details ) : _pimpl( new Impl( std::move(description), std::move(details) ) ) {} ProblemSolution::~ProblemSolution() {} const std::string & ProblemSolution::description() const { return _pimpl->_description; } const std::string & ProblemSolution::details() const { return _pimpl->_details; } const ProblemSolution::SolutionActionList & ProblemSolution::actions() const { return _pimpl->_actions; } void ProblemSolution::setDescription( std::string description ) { _pimpl->_description = std::move(description); } void ProblemSolution::setDetails( std::string details ) { _pimpl->_details += "\n"; _pimpl->_details += std::move(details); } void ProblemSolution::pushDescriptionDetail( std::string description, bool front ) { if ( _pimpl->_details.empty() ) { if ( _pimpl->_description.empty() ) // first entry { _pimpl->_description = std::move(description); return; } else // second entry: form headline in _description { _pimpl->_description.swap( _pimpl->_details ); _pimpl->_description = _("Following actions will be done:"); } } if ( front ) { _pimpl->_details.swap( description ); } _pimpl->_details += "\n"; _pimpl->_details += std::move(description); } void ProblemSolution::addAction( solver::detail::SolutionAction_Ptr action ) { _pimpl->_actions.push_back( action ); } std::ostream & operator<<( std::ostream & os, const ProblemSolution & obj ) { os << "Solution:" << endl; os << obj.description() << endl; if ( ! obj.details().empty() ) os << obj.details() << endl; os << obj.actions(); return os; } std::ostream & operator<<( std::ostream & os, const ProblemSolutionList & obj ) { for ( const auto & ptr: obj ) { os << ptr; } return os; } } // namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ProblemSolution.h000066400000000000000000000060001334444677500176240ustar00rootroot00000000000000/** * * Easy-to use interface to the ZYPP dependency resolver * * Author: Stefan Hundhammer * **/ #ifndef ZYPP_PROBLEMSOLUTION_H #define ZYPP_PROBLEMSOLUTION_H #include #include #include "zypp/ProblemTypes.h" #include "zypp/ResolverProblem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////////////// /// \class ProblemSolution /// \brief Class representing one possible solution to a problem found during resolving /// /// All problems should have at least 2-3 (mutually exclusive) solutions: /// /// - Undo: Do not perform the offending transaction /// (do not install the package that had unsatisfied requirements, /// do not remove the package that would break other packages' requirements) /// /// - Remove referrers: Remove all packages that would break because /// they depend on the package that is requested to be removed /// /// - Ignore: Inject artificial "provides" for a missing requirement /// (pretend that requirement is satisfied) ///////////////////////////////////////////////////////////////////////// class ProblemSolution : public base::ReferenceCounted { public: typedef solver::detail::SolutionAction_Ptr SolutionAction_Ptr; typedef solver::detail::SolutionActionList SolutionActionList; /** Constructor. */ ProblemSolution(); /** Constructor. */ ProblemSolution( std::string description ); /** Constructor. */ ProblemSolution( std::string description, std::string details ); /** Destructor. */ virtual ~ProblemSolution(); /** * Return a one-line text description of this solution. **/ const std::string & description() const; /** * Return a (possibly multi-line) detailed description of this * solution or an empty string if there are no useful details. **/ const std::string & details() const; /** * Return the list of actions forming this solution. **/ const SolutionActionList & actions() const; /** * Set description of the solution. **/ void setDescription( std::string description ); /** * Set detail description of the solution. **/ void setDetails( std::string details ); /** * Collect multiple action descriptions in \ref details (NL separated) **/ void pushDescriptionDetail( std::string description, bool front = false ); /** * Add an action to the actions list. **/ void addAction( SolutionAction_Ptr action ); private: class Impl; RWCOW_pointer _pimpl; }; /** \relates ProblemSolution Stream output */ std::ostream& operator<<(std::ostream&, const ProblemSolution & obj ); /** \relates ProblemSolution Stream output */ std::ostream& operator<<(std::ostream&, const ProblemSolutionList & obj ); } // namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_PROBLEMSOLUTION_H libzypp-17.7.0/zypp/ProblemTypes.h000066400000000000000000000030731334444677500171230ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* Types.h * * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_PROBLEMTYPES_H #define ZYPP_PROBLEMTYPES_H #include #include #include #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/Functional.h" #include "zypp/solver/detail/Types.h" // SolutionAction type ///////////////////////////////////////////////////////////////////////// namespace zypp { DEFINE_PTR_TYPE(Resolver); DEFINE_PTR_TYPE(ProblemSolution); typedef std::list ProblemSolutionList; DEFINE_PTR_TYPE(ResolverProblem); typedef std::list ResolverProblemList; } // namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_TYPES_H libzypp-17.7.0/zypp/Product.cc000066400000000000000000000235611334444677500162600ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Product.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/base/StrMatcher.h" #include "zypp/Product.h" #include "zypp/Url.h" #include "zypp/sat/LookupAttr.h" #include "zypp/sat/WhatProvides.h" #include "zypp/sat/WhatObsoletes.h" #include "zypp/PoolItem.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// IMPL_PTR_TYPE(Product); namespace { void fillList( std::list & ret_r, sat::Solvable solv_r, sat::SolvAttr attr_r ) { sat::LookupAttr query( attr_r, solv_r ); for_( it, query.begin(), query.end() ) { try // ignore malformed urls { ret_r.push_back( Url( it.asString() ) ); } catch( const url::UrlException & ) {} } } void fillList( std::list & ret_r, sat::Solvable solv_r, sat::SolvAttr attr_r ) { sat::LookupAttr query( attr_r, solv_r ); for_( it, query.begin(), query.end() ) { ret_r.push_back( it.asString() ); } } } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Product::Product // METHOD TYPE : Ctor // Product::Product( const sat::Solvable & solvable_r ) : ResObject( solvable_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : Product::~Product // METHOD TYPE : Dtor // Product::~Product() {} /////////////////////////////////////////////////////////////////// sat::Solvable Product::referencePackage() const { // Look for a provider of 'product(name) = version' of same // architecture and within the same repo. // // Code12: Update repos may have multiple release package versions // providing the same product. Prefer the one matching the buildtime, // as the product buildtime is derived from the -release package. Capability identCap( str::form( "product(%s) = %s", name().c_str(), edition().c_str() ) ); sat::Solvable found; bool foundBuildTime = false; sat::WhatProvides providers( identCap ); for_( it, providers.begin(), providers.end() ) { if ( it->repository() == repository() && it->arch() == arch() ) { bool fitsBuildtime = ( it->buildtime() == buildtime() ); if ( found ) { bool lowerEdition = ( it->edition() <= found.edition() ); if ( ( foundBuildTime && ( !fitsBuildtime || lowerEdition ) ) || ( !foundBuildTime && ( !fitsBuildtime && lowerEdition ) ) ) continue; } found = *it; if ( fitsBuildtime ) foundBuildTime = true; } } if ( ! found && isSystem() ) { // bnc#784900: for installed products check whether the file is owned by // some package. If so, ust this as buddy. sat::LookupAttr q( sat::SolvAttr::filelist, repository() ); std::string refFile( referenceFilename() ); // the basename only! if ( ! refFile.empty() ) { StrMatcher matcher( "/etc/products.d/"+refFile, Match::STRING | Match::FILES ); q.setStrMatcher( matcher ); if ( ! q.empty() ) found = q.begin().inSolvable(); } else INT << "Product referenceFilename unexpectedly empty!" << endl; } if ( ! found ) WAR << *this << ": no reference package found: " << identCap << endl; return found; } std::string Product::referenceFilename() const { return lookupStrAttribute( sat::SolvAttr::productReferenceFile ); } Product::ReplacedProducts Product::replacedProducts() const { std::vector ret; // By now we simply collect what is obsoleted by the Product, // or by the products buddy (release-package). // Check our own dependencies. We should not have any, // but just to be shure. sat::WhatObsoletes obsoleting( satSolvable() ); for_( it, obsoleting.begin(), obsoleting.end() ) { if ( it->isKind( ResKind::product ) ) ret.push_back( make( *it ) ); } // If we have a buddy, we check what product buddies the // buddy replaces. obsoleting = sat::WhatObsoletes( poolItem().buddy() ); for_( it, obsoleting.poolItemBegin(), obsoleting.poolItemEnd() ) { if ( (*it).buddy().isKind( ResKind::product ) ) ret.push_back( make( (*it).buddy() ) ); } return ret; } CapabilitySet Product::droplist() const { return poolItem().buddy().valuesOfNamespace( "weakremover" ); } std::string Product::productLine() const { return lookupStrAttribute( sat::SolvAttr::productProductLine ); } /////////////////////////////////////////////////////////////////// std::string Product::shortName() const { std::string ret( lookupStrAttribute( sat::SolvAttr::productShortlabel ) ); if ( ret.empty() ) ret = name(); return ret; } std::string Product::flavor() const { // Look for a provider of 'product_flavor(name) = version' // within the same repo. Unlike the reference package, we // can be relaxed and ignore the architecture. Capability identCap( str::form( "product_flavor(%s) = %s", name().c_str(), edition().c_str() ) ); sat::WhatProvides providers( identCap ); for_( it, providers.begin(), providers.end() ) { if ( it->repository() == repository() ) { // Got the package now try to get the provided 'flavor(...)' Capabilities provides( it->provides() ); for_( cap, provides.begin(), provides.end() ) { std::string capstr( cap->asString() ); if ( str::hasPrefix( capstr, "flavor(" ) ) { capstr = str::stripPrefix( capstr, "flavor(" ); capstr.erase( capstr.size()-1 ); // trailing ')' return capstr; } } } } return std::string(); } std::string Product::type() const { return lookupStrAttribute( sat::SolvAttr::productType ); } std::list Product::flags() const { std::list ret; fillList( ret, satSolvable(), sat::SolvAttr::productFlags ); return ret; } Date Product::endOfLife() const { return Date( lookupNumAttribute( sat::SolvAttr::productEndOfLife ) );} bool Product::hasEndOfLife() const { return( lookupNumAttribute( sat::SolvAttr::productEndOfLife, -1 ) != (unsigned long long)(-1) ); } bool Product::hasEndOfLife( Date & value ) const { Date res( lookupNumAttribute( sat::SolvAttr::productEndOfLife, -1 ) ); if ( res == -1 ) return false; // else: value = res; return true; } std::vector Product::updateContentIdentifier() const { std::vector ret; sat::LookupAttr q( sat::SolvAttr::productUpdatesRepoid, sat::SolvAttr::productUpdates, *this ); if ( ! q.empty() ) { ret.reserve( 2 ); for_( it, q.begin(), q.end() ) ret.push_back( it.asString() ); } return ret; } bool Product::hasUpdateContentIdentifier( const Repository::ContentIdentifier & cident_r ) const { sat::LookupAttr q( sat::SolvAttr::productUpdatesRepoid, sat::SolvAttr::productUpdates, *this ); for_( it, q.begin(), q.end() ) { if ( it.asString() == cident_r ) return true; } return false; } bool Product::isTargetDistribution() const { return isSystem() && lookupStrAttribute( sat::SolvAttr::productType ) == "base"; } std::string Product::registerTarget() const { return lookupStrAttribute( sat::SolvAttr::productRegisterTarget ); } std::string Product::registerRelease() const { return lookupStrAttribute( sat::SolvAttr::productRegisterRelease ); } std::string Product::registerFlavor() const { return lookupStrAttribute( sat::SolvAttr::productRegisterFlavor ); } ///////////////////////////////////////////////////////////////// Product::UrlList Product::urls( const std::string & key_r ) const { UrlList ret; sat::LookupAttr url( sat::SolvAttr::productUrl, *this ); sat::LookupAttr url_type( sat::SolvAttr::productUrlType, *this ); sat::LookupAttr::iterator url_it(url.begin()); sat::LookupAttr::iterator url_type_it(url_type.begin()); for (;url_it != url.end(); ++url_it, ++url_type_it) { /* safety checks, shouldn't happen (tm) */ if (url_type_it == url_type.end()) { ERR << *this << " : The thing that should not happen, happened." << endl; break; } if ( url_type_it.asString() == key_r ) { ret._list.push_back(url_it.asString()); } } /* while (attribute array) */ return ret; } Product::UrlList Product::releaseNotesUrls() const { return urls( "releasenotes" ); } Product::UrlList Product::registerUrls() const { return urls( "register" ); } Product::UrlList Product::smoltUrls() const { return urls( "smolt" ); } Product::UrlList Product::updateUrls() const { return urls( "update" ); } Product::UrlList Product::extraUrls() const { return urls( "extra" ); } Product::UrlList Product::optionalUrls() const { return urls( "optional" ); } std::ostream & operator<<( std::ostream & str, const Product::UrlList & obj ) { return dumpRange( str << obj.key() << ' ', obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Product.h000066400000000000000000000175701334444677500161250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Product.h * */ #ifndef ZYPP_PRODUCT_H #define ZYPP_PRODUCT_H #include #include #include "zypp/ResObject.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// DEFINE_PTR_TYPE(Product); /////////////////////////////////////////////////////////////////// // // CLASS NAME : Product // /** Product interface. */ class Product : public ResObject { public: typedef Product Self; typedef ResTraits TraitsType; typedef TraitsType::PtrType Ptr; typedef TraitsType::constPtrType constPtr; public: /** The reference package providing the product metadata, * if such a package exists. */ sat::Solvable referencePackage() const; /** For installed products the name of the corresponding * \c /etc/products.d entry. .*/ std::string referenceFilename() const; /** List of packages included in older versions of this product and now dropped. * * This evaluates the \ref referencePackage \c weakremover namespace. It actually * returns a \ref CapabilitySet, because we support to drop specific versions or * version ranges of a package. Use \ref sat::WhatProvides to get the actually * installed and available packages matching this list. * \code * const Product & openSUSE; * sat::WhatProvides dropped( openSUSE.droplist() ); * for_( it, dropped.poolItemBegin(), dropped.poolItemEnd() ) * { * if ( it->status().isInstalled() ) * { * MIL << "Installed but no longer supported package: " << *it << endl; * } * } * \endcode */ CapabilitySet droplist() const; public: /***/ typedef std::vector ReplacedProducts; /** Array of \b installed Products that would be replaced by * installing this one. */ ReplacedProducts replacedProducts() const; /** Vendor specific string denoting the product line. */ std::string productLine() const; public: /** Untranslated short name like SLES 10 (fallback: name) */ std::string shortName() const; /** The product flavor (LiveCD Demo, FTP edition,...). */ std::string flavor() const; /** Get the product type * Well, in an ideal world there is only one base product. * It's the installed product denoted by a symlink in * \c /etc/products.d. */ std::string type() const; /** The product flags */ std::list flags() const; /** The date when this Product goes out of support as indicated by it's medadata. * Use \ref hasEOfLife if it's important to distinguish whether the value * is not defined in the metadata, or defined but empty/invalid/TBD. */ Date endOfLife() const; /** Return whether an EndOfLife value is actually defined in the metadata. * A missing value (\c false) usually indicates that there will be no EOL, * while an empty/invalid value indicates that there will be an EOL date, * but it's not yet known (FATE#320699). */ bool hasEndOfLife() const; /** \overload additionally returning the date (0 if TBD) * false, ( unchanged ) : no EOL * true, ( 0 ) : EOL is still TBD * true, ( !=0 ) : a valid EOL date */ bool hasEndOfLife( Date & value ) const; /** ContentIdentifier of required update repositories. */ std::vector updateContentIdentifier() const; /** Whether \a cident_r is listed as required update repository. */ bool hasUpdateContentIdentifier( const Repository::ContentIdentifier & cident_r ) const; /** Whether one of the ContentIdentifier is listed as required update repository. */ template bool hasUpdateContentIdentifier( TIterator begin, TIterator end ) const { for_( it, begin, end ) if ( hasUpdateContentIdentifier( *it ) ) return true; return false; } public: /** This is the \b installed product that is also targeted by the * \c /etc/products.d/baseproduct symlink. */ bool isTargetDistribution() const; /** This is \c register.target attribute of a product. * Used for registration and filtering service repos. */ std::string registerTarget() const; /** This is \c register.release attribute of an \b installed product. * Used for registration. */ std::string registerRelease() const; /** This is \c register.flavor attribute of a product. * Used for registration. */ std::string registerFlavor() const; public: /***/ class UrlList; /** Retrieve URLs flagged with \c key_r for this product. * * This is the most common interface. There are convenience methods for * wellknown flags like \c "releasenotes", \c "register", \c "updateurls", * \c "extraurls", \c "optionalurls" and \c "smolt" below. */ UrlList urls( const std::string & key_r ) const; /** The URL to download the release notes for this product. */ UrlList releaseNotesUrls() const; /** The URL for registration. */ UrlList registerUrls() const; /** The URL for SMOLT \see http://smolts.org/wiki/Main_Page. */ UrlList smoltUrls() const; /** * Online updates for the product. * They are complementary, not alternatives. #163192 */ UrlList updateUrls() const; /** * Additional software for the product * They are complementary, not alternatives. */ UrlList extraUrls() const; /** * Optional software for the product. * (for example. Non OSS repositories) * They are complementary, not alternatives. */ UrlList optionalUrls() const; protected: friend Ptr make( const sat::Solvable & solvable_r ); /** Ctor */ Product( const sat::Solvable & solvable_r ); /** Dtor */ virtual ~Product(); }; /** Helper to iterate a products URL lists. * \ref first is a convenience for 'lists' with just * one entry (e.g. releaseNotesUrls) */ class Product::UrlList { private: /** \todo Change to directly iterate the .solv */ typedef std::list ListType; public: typedef ListType::value_type value_type; typedef ListType::size_type size_type; typedef ListType::const_iterator const_iterator; bool empty() const { return _list.empty(); } size_type size() const { return _list.size(); } const_iterator begin() const { return _list.begin(); } const_iterator end() const { return _list.end(); } /** The first Url or an empty Url. */ Url first() const { return empty() ? value_type() : _list.front(); } public: /** The key used to retrieve this list (for debug) */ std::string key() const { return _key; } private: friend class Product; /** Change to directly iterate the .solv */ std::string _key; ListType _list; }; /** \relates Product::UrlList Stream output. */ std::ostream & operator<<( std::ostream & str, const Product::UrlList & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PRODUCT_H libzypp-17.7.0/zypp/ProgressData.cc000066400000000000000000000110501334444677500172240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ProgressData.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/InputStream.h" #include "zypp/base/String.h" #include "zypp/ProgressData.h" using std::endl; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "Progress" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ProgressData::report // METHOD TYPE : void // bool ProgressData::report() { Date now = Date::now(); // compute value and check whether to report it if ( hasRange() ) { value_type newVal = _d->_val * 100 / ( _d->_max - _d->_min ); if ( newVal - _d->_last_val > 10 || now - _d->_last_send > 1 || ( _d->_last_val == 0 && newVal > 0 ) || ( newVal == 100 && _d->_last_val != 100 ) || ( newVal != 100 && _d->_last_val == 100 ) || _d->_state != RUN /*INIT||END*/ ) { _d->_last_val = newVal; _d->_last_send = now; } else return true; // skip report, continue per default } else { if ( now - _d->_last_send > 1 || _d->_state != RUN /*INIT||END*/ ) { _d->_last_val = _d->_val; _d->_last_send = now; } else return true; // skip report, continue per default } // now send report if ( _d->_state == INIT ) { _d->_state = RUN; } // XXX << str::form( "{#%u|%s}(%lld%s)", numericId(), name().c_str(), _d->_last_val, ( hasRange() ? "%" : "!" ) ) << endl; if ( _d->_receiver ) { if ( ! _d->_receiver( *this ) ) { if ( _d->_state != END ) { WAR << "User request to ABORT pending action. " << str::form( "{#%u|%s}(%lld%s)", numericId(), name().c_str(), _d->_last_val, ( hasRange() ? "%" : "!" ) ) << endl; } return false; // aborted by user } } else if ( _d->_state == END ) { DBG << str::form( "{#%u|%s}END", numericId(), name().c_str() ) << endl; } return true; // continue per default } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ProgressData & obj ) { if ( obj.hasRange() ) { return str << str::form( "{%u|%s}[%lld,%lld](%lld)%lld%%)", obj.numericId(), obj.name().c_str(), obj.min(), obj.max(), obj.val(), obj.reportValue() ); } return str << str::form( "{%u|%s}[-,-](%lld)", obj.numericId(), obj.name().c_str(), obj.val() ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ ProgressData makeProgressData( const InputStream & input_r ) { ProgressData ret; ret.name( input_r.name() ); if ( input_r.size() > 0 ) ret.range( input_r.size() ); return ret; } CombinedProgressData::CombinedProgressData( ProgressData &pd, ProgressData::value_type weight ) : _weight(weight), _last_value(0), _pd(pd) { } bool CombinedProgressData::operator()( const ProgressData &progress ) { if ( progress.reportAlive() || ( _weight == 0 ) ) return _pd.tick(); // factor [0,1] of increase in subtask ( ie: before 0,2 now 0.5 ) float increment = ((float)(progress.val() - _last_value))/(progress.max() - progress.min()); // how much the subtask affects the parent task ie: 0,1 float parent_factor = (float)(_weight)/(_pd.max() - _pd.min()); // real increment of the parent task float real_increment = parent_factor*increment; _last_value = progress.val(); return _pd.incr( (int)( (_pd.max()-_pd.min()) * real_increment) ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ProgressData.h000066400000000000000000000276031334444677500171010ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ProgressData.h * */ #ifndef ZYPP_PROGRESSDATA_H #define ZYPP_PROGRESSDATA_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/base/ProvideNumericId.h" #include "zypp/Date.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ProgressData // /** Maintain [min,max] and counter (value) for progress counting. * * This class should provide everything the producer of progress data * needs. As a convention, a zero sizes range indicates that you are just * able to send 'still alive' triggers. * * The counter should be updated in reasonable intervals. Don't mind whether * the counter value actually increased or not. ProgressData will recognize * your triggers and knows when to actually send notification to a consumer. * * Each ProgressData object provides a unique numeric id and you may assign * it a name. * * \code * bool exampleReceiver( ProgressData::value_type v ) * { * DBG << "got ->" << v << endl; * return( v <= 100 ); // Abort if ( v > 100 ) * } * * class Example * { * public: * * Example( const ProgressData::ReceiverFnc & fnc_r = ProgressData::ReceiverFnc() ) * : _fnc( fnc_r ) * {} * * void SendTo( const ProgressData::ReceiverFnc & fnc_r ) * { _fnc = fnc_r; } * * public: * * void action() * { * ProgressData tics( 10 ); // Expect range 0 -> 10 * tics.name( "test ticks" ); // Some arbitrary name * tics.sendTo( _fnc ); // Send reports to _fnc * tics.toMin(); // start sending min (0) * * for ( int i = 0; i < 10; ++i ) * { * if ( ! tics.set( i ) ) * return; // user requested abort * } * * tics.toMax(); // take care 100% are reported on success * } * * void action2() * { * ProgressData tics; // Just send 'still alive' messages * tics.name( "test ticks" ); // Some arbitrary name * tics.sendTo( _fnc ); // Send reports to _fnc * tics.toMin(); // start sending min (0) * * for ( int i = 0; i < 10; ++i ) * { * if ( ! tics.set( i ) ) * return; // user requested abort * } * * tics.toMax(); // * } * * private: * ProgressData::ReceiverFnc _fnc; * }; * \endcode * \code * Example t( exampleReceiver ); * DBG << "Reporting %:" << endl; * t.action(); * DBG << "Reporting 'still alive':" << endl; * t.action2(); * \endcode * \code * Reporting %: * got ->0 * got ->10 * got ->20 * got ->30 * got ->40 * got ->50 * got ->60 * got ->70 * got ->80 * got ->90 * got ->100 * got ->100 * Reporting 'still alive': * got ->0 * got ->9 * \endcode * * The different ammount of triggers is due to different rules for sending * percent or 'still alive' messages. */ class ProgressData : public base::ProvideNumericId { public: typedef long long value_type; /** Most simple version of progress reporting * The percentage in most cases. Sometimes just keepalive. * \p sender ProgressData object who sends the progress info * \p */ typedef function ReceiverFnc; private: enum State { INIT, RUN, END }; class Data { public: Data( value_type min_r, value_type max_r, value_type val_r ) : _state( INIT ), _min( min_r ), _max( max_r ), _val( val_r ) , _last_val( 0 ), _last_send( 0 ) {} public: State _state; std::string _name; value_type _min; value_type _max; value_type _val; ReceiverFnc _receiver; value_type _last_val; Date _last_send; private: /** clone for RWCOW_pointer */ friend Data * rwcowClone( const Data * rhs ); Data * clone() const { return new Data( *this ); } }; public: /** Ctor no range [0,0](0). */ ProgressData() : _d( new Data( 0, 0, 0 ) ) {} /** Ctor [0,max](0). */ ProgressData( value_type max_r ) : _d( new Data( 0, max_r, 0 ) ) {} /** Ctor [min,max](min). */ ProgressData( value_type min_r, value_type max_r ) : _d( new Data( min_r, max_r, min_r ) ) {} /** Ctor [min,max](val). */ ProgressData( value_type min_r, value_type max_r, value_type val_r ) : _d( new Data( min_r, max_r, val_r ) ) {} ~ProgressData() { if ( _d->_state == RUN ) { _d->_state = END; report(); } } public: /** Set new \c min value. */ void min( value_type min_r ) { _d->_min = min_r; } /** Set new \c max value. */ void max( value_type max_r ) { _d->_max = max_r; } /** Set no range [0,0]. */ void noRange() { range( 0, 0 ); } /** Set new [0,max]. */ void range( value_type max_r ) { range( 0, max_r ); } /** Set new [min,max]. */ void range( value_type min_r, value_type max_r ) { min( min_r ); max( max_r ); } public: /** Set counter name. */ void name( const std::string & name_r ) { _d->_name = name_r; } /** Set ReceiverFnc. */ void sendTo( const ReceiverFnc & fnc_r ) { _d->_receiver = fnc_r; } /** Set no ReceiverFnc. */ void noSend() { _d->_receiver = ReceiverFnc(); } public: /** \name Progress reporting. * * These methods may actually cause a progress report to be sent. * * All methods return \c bool, because a progress receiver may * return \c false to indicate the desire to abort the pending * action. The incident is logged, but it's finaly up to the caller * to honor this. */ //@{ /** Set new counter \c value. */ bool set( value_type val_r ) { _d->_val = val_r; return report(); } /** Set range and counter from an other \ref ProgressData. */ bool set( const ProgressData & rhs ) { min( rhs.min() ); max( rhs.max() ); return set( rhs.val() ); } /** Increment counter \c value (default by 1). */ bool incr( value_type val_r = 1 ) { return set( val() + val_r ); } /** Decrement counter \c value (default by 1). */ bool decr( value_type val_r = 1 ) { return set( val() - val_r ); } /** Set counter value to current \c min value. */ bool toMin() { return set( min() ); } /** Set counter value to current \c max value (unless no range). */ bool toMax() { return hasRange() ? set( max() ) : tick(); } /** Leave counter value unchanged (still alive). */ bool tick() { return report(); } //@} public: /** \name Progress receiving. */ //@{ /** @return Current \c min value. */ value_type min() const { return _d->_min; } /** @return Current \c max value. */ value_type max() const { return _d->_max; } /** @return Current counter \c value. */ value_type val() const { return _d->_val; } /** @return Whether [min,max] defines a nonempty range. */ bool hasRange() const { return min() != max(); } /** @return Whether \ref reportValue will return a percent value. * Same as \ref hasRange. * \see \ref reportAlive */ bool reportPercent() const { return hasRange(); } /** @return Whether \ref reportValue always returns -1, because we * trigger 'still alive' messages. I.e. \ref hasrange is \c false. * \see \ref reportPercent */ bool reportAlive() const { return ! hasRange(); } /** @return Either a a percent value or -1. * \see \ref reportPercent and \ref reportAlive. */ value_type reportValue() const { return hasRange() ? val() * 100 / ( max() - min() ) : -1; } /** @return The counters name. */ const std::string & name() const { return _d->_name; } /** @return The ReceiverFnc. */ const ReceiverFnc & receiver() const { return _d->_receiver; } /** @return Return \c true if this is the final report sent by the * ProgressData dtor. */ bool finalReport() const { return( _d->_state == END ); } //@} private: /** Send report if necessary. */ bool report(); /** Pointer to data. */ RWCOW_pointer _d; }; /////////////////////////////////////////////////////////////////// /** \relates ProgressData Stream output */ std::ostream & operator<<( std::ostream & str, const ProgressData & obj ); /////////////////////////////////////////////////////////////////// class InputStream; /** \relates ProgressData Setup from \ref InputStream. */ ProgressData makeProgressData( const InputStream & input_r ); /////////////////////////////////////////////////////////////////// /** * \short Progress callback from another progress * * This class allows you to pass a progress callback to a * subtask based on a current progress data, plus a weight * value. Every progress reported by the subtask via * this callback will be forwarded to the main progress * data, with the corresponding weight. * * Example: * * \code * * // receiver for main task * void task_receiver( ProgressData &progress ); * * // subtask prototypes * void do_subtask_one( ProgressData::ReceiverFnc &fnc ); * void do_subtask_two( ProgressData::ReceiverFnc &fnc ); * * // main task * ProgressData progress; * //progress for subtask 1 * // which is 80% * CombinedProgressData sub1(pd, 80); * // the second is only 20% * CombinedProgressData sub2(pd, 20); * do_subtask_one( sub1 ); * do_subtask_two( sub2 ); * * \endcode */ class CombinedProgressData { public: /** * \short Ctor * * Creates a \ref ProgressData::ReceiverFnc * from a \ref ProgressData object * * \param pd \ref ProgressData object * \param weight Weight of the subtask * relative to the main task range. * * If weight is 0, or \param pd only reports * keepalives. then only ticks are sent. * */ CombinedProgressData( ProgressData &pd, ProgressData::value_type weight = 0 ); /** * Implements the \ref ProgressData::ReceiverFnc * callback interface */ bool operator()( const ProgressData &progress ); private: ProgressData::value_type _weight; ProgressData::value_type _last_value; ProgressData &_pd; }; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PROGRESSDATA_H libzypp-17.7.0/zypp/ProvideFilePolicy.cc000066400000000000000000000024151334444677500202230ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include #include #include "zypp/base/Logger.h" #include "zypp/ProvideFilePolicy.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ProvideFilePolicy // /////////////////////////////////////////////////////////////////// bool ProvideFilePolicy::progress( int value ) const { if ( _progressCB ) return _progressCB( value ); return true; } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ProvideFilePolicy.h000066400000000000000000000040441334444677500200650ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_PROVIDEFILEPOLICY_H #define ZYPP_PROVIDEFILEPOLICY_H #include #include "zypp/base/Function.h" #include "zypp/base/Functional.h" #include "zypp/FileChecker.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class ProvideFilePolicy /// \brief Policy for \ref provideFile and \ref RepoMediaAccess. /// /// Provides callback hook for progress reporting and an optional /// \ref FileCecker passed down to the \ref Fetcher. /////////////////////////////////////////////////////////////////// class ProvideFilePolicy { public: /** Progress callback signature. */ typedef function ProgressCB; /** Set callback. */ ProvideFilePolicy & progressCB( ProgressCB progressCB_r ) { _progressCB = progressCB_r; return *this; } /** Evaluate callback. */ bool progress( int value ) const; public: /** Add a \ref FileCecker passed down to the \ref Fetcher */ ProvideFilePolicy & fileChecker( FileChecker fileChecker_r ) { _fileChecker = std::move(fileChecker_r); return *this; } /** The \ref FileCecker. */ const FileChecker & fileChecker() const { return _fileChecker; } private: FileChecker _fileChecker; ProgressCB _progressCB; }; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PROVIDEFILEPOLICY_H libzypp-17.7.0/zypp/PublicKey.cc000066400000000000000000000416701334444677500165300ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PublicKey.cc * */ #include #include #include #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/base/Regex.h" #include "zypp/PublicKey.h" #include "zypp/ExternalProgram.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/base/Exception.h" #include "zypp/base/LogTools.h" #include "zypp/Date.h" #include "zypp/KeyManager.h" #include using std::endl; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zypp::gpg" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace { inline bool isExpired( const Date & expires_r ) { return( expires_r && expires_r < Date::now() ); } inline int hasDaysToLive( const Date & expires_r ) { if ( expires_r ) { Date exp( expires_r - Date::now() ); int ret = exp / Date::day; if ( exp < 0 ) ret -= 1; return ret; } return INT_MAX; } inline std::string expiresDetail( const Date & expires_r ) { str::Str str; if ( ! expires_r ) { // translators: an annotation to a gpg keys expiry date str << _("does not expire"); } else if ( isExpired( expires_r ) ) { // translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12" str << ( str::Format(_("expired: %1%") ) % expires_r.printDate() ); } else { // translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12" str << ( str::Format(_("expires: %1%") ) % expires_r.printDate() ); } return str; } inline std::string expiresDetailVerbose( const Date & expires_r ) { if ( !expires_r ) { // translators: an annotation to a gpg keys expiry date return _("(does not expire)"); } std::string ret( expires_r.asString() ); int ttl( hasDaysToLive( expires_r ) ); if ( ttl <= 90 ) { ret += " "; if ( ttl < 0 ) { // translators: an annotation to a gpg keys expiry date ret += _("(EXPIRED)"); } else if ( ttl == 0 ) { // translators: an annotation to a gpg keys expiry date ret += _("(expires within 24h)"); } else { // translators: an annotation to a gpg keys expiry date ret += str::form( PL_("(expires in %d day)", "(expires in %d days)", ttl ), ttl ); } } return ret; } } //namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class PublicSubkeyData::Impl /// \brief PublicSubkeyData implementation. /////////////////////////////////////////////////////////////////// struct PublicSubkeyData::Impl { std::string _id; Date _created; Date _expires; public: /** Offer default Impl. */ static shared_ptr nullimpl(); private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const; }; shared_ptr PublicSubkeyData::Impl::nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } zypp::PublicSubkeyData::Impl *PublicSubkeyData::Impl::clone() const { return new Impl( *this ); } /////////////////////////////////////////////////////////////////// /// class PublicSubkeyData /////////////////////////////////////////////////////////////////// PublicSubkeyData::PublicSubkeyData() : _pimpl( Impl::nullimpl() ) {} PublicSubkeyData::PublicSubkeyData(const _gpgme_subkey *rawSubKeyData) : _pimpl (new Impl) { _pimpl->_created = zypp::Date(rawSubKeyData->timestamp); _pimpl->_expires = zypp::Date(rawSubKeyData->expires); _pimpl->_id = str::asString(rawSubKeyData->keyid); } PublicSubkeyData::~PublicSubkeyData() {} PublicSubkeyData::operator bool() const { return !_pimpl->_id.empty(); } std::string PublicSubkeyData::id() const { return _pimpl->_id; } Date PublicSubkeyData::created() const { return _pimpl->_created; } Date PublicSubkeyData::expires() const { return _pimpl->_expires; } bool PublicSubkeyData::expired() const { return isExpired( _pimpl->_expires ); } int PublicSubkeyData::daysToLive() const { return hasDaysToLive( _pimpl->_expires ); } std::string PublicSubkeyData::asString() const { return str::Str() << id() << " " << created().printDate() << " [" << expiresDetail( expires() ) << "]"; } /////////////////////////////////////////////////////////////////// /// \class PublicKeyData::Impl /// \brief PublicKeyData implementation. /////////////////////////////////////////////////////////////////// /// struct PublicKeyData::Impl { std::string _id; std::string _name; std::string _fingerprint; Date _created; Date _expires; std::vector _subkeys; public: bool hasSubkeyId( const std::string & id_r ) const; public: /** Offer default Impl. */ static shared_ptr nullimpl(); static shared_ptr fromGpgmeKey(gpgme_key_t rawData); private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const; }; bool PublicKeyData::Impl::hasSubkeyId(const std::string &id_r) const { bool ret = false; for ( const PublicSubkeyData & sub : _subkeys ) { if ( sub.id() == id_r ) { ret = true; break; } } return ret; } shared_ptr PublicKeyData::Impl::nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } shared_ptr PublicKeyData::Impl::fromGpgmeKey(gpgme_key_t rawData) { //gpgpme stores almost nothing in the top level key //the information we look for is stored in the subkey, where subkey[0] //is always the primary key gpgme_subkey_t sKey = rawData->subkeys; if (sKey) { shared_ptr data(new Impl); //libzypp expects the date of the first signature on the first uid if(rawData->uids && rawData->uids->signatures) data->_created = zypp::Date(rawData->uids->signatures->timestamp); else data->_created = zypp::Date(sKey->timestamp); data->_expires = zypp::Date(sKey->expires); data->_fingerprint = str::asString(sKey->fpr); data->_id = str::asString(sKey->keyid); //get the primary user ID if (rawData->uids) { data->_name = str::asString(rawData->uids->uid); } //the rest of the keys sKey = sKey->next; while (sKey) { data->_subkeys.push_back( PublicSubkeyData(sKey) ); sKey = sKey->next; } return data; } return nullimpl(); } zypp::PublicKeyData::Impl *PublicKeyData::Impl::clone() const { return new Impl( *this ); } /////////////////////////////////////////////////////////////////// /// class PublicKeyData /////////////////////////////////////////////////////////////////// PublicKeyData::PublicKeyData() : _pimpl( Impl::nullimpl() ) {} PublicKeyData::PublicKeyData(shared_ptr data) : _pimpl( data ) {} PublicKeyData::~PublicKeyData() {} PublicKeyData PublicKeyData::fromGpgmeKey(_gpgme_key *data) { return PublicKeyData(Impl::fromGpgmeKey(data)); } PublicKeyData::operator bool() const { return !_pimpl->_fingerprint.empty(); } std::string PublicKeyData::id() const { return _pimpl->_id; } std::string PublicKeyData::name() const { return _pimpl->_name; } std::string PublicKeyData::fingerprint() const { return _pimpl->_fingerprint; } Date PublicKeyData::created() const { return _pimpl->_created; } Date PublicKeyData::expires() const { return _pimpl->_expires; } bool PublicKeyData::expired() const { return isExpired( _pimpl->_expires ); } int PublicKeyData::daysToLive() const { return hasDaysToLive( _pimpl->_expires ); } std::string PublicKeyData::expiresAsString() const { return expiresDetailVerbose( _pimpl->_expires ); } std::string PublicKeyData::gpgPubkeyVersion() const { return _pimpl->_id.empty() ? _pimpl->_id : str::toLower( _pimpl->_id.substr(8,8) ); } std::string PublicKeyData::gpgPubkeyRelease() const { return _pimpl->_created ? str::hexstring( _pimpl->_created ).substr(2) : std::string(); } std::string PublicKeyData::rpmName() const { return str::Format( "gpg-pubkey-%1%-%2%" ) % gpgPubkeyVersion() % gpgPubkeyRelease(); } std::string PublicKeyData::asString() const { str::Str str; str << "[" << _pimpl->_id << "-" << gpgPubkeyRelease(); for ( auto && sub : _pimpl->_subkeys ) str << ", " << sub.id(); return str << "] [" << _pimpl->_name.c_str() << "] [" << expiresDetail( _pimpl->_expires ) << "]"; } bool PublicKeyData::hasSubkeys() const { return !_pimpl->_subkeys.empty(); } Iterable PublicKeyData::subkeys() const { return makeIterable( &(*_pimpl->_subkeys.begin()), &(*_pimpl->_subkeys.end()) ); } bool PublicKeyData::providesKey( const std::string & id_r ) const { if ( id_r.size() == 8 ) // as a convenience allow to test the 8byte short ID rpm uses as gpg-pubkey version return str::endsWithCI( _pimpl->_id, id_r ); return( id_r == _pimpl->_id || _pimpl->hasSubkeyId( id_r ) ); } PublicKeyData::AsciiArt PublicKeyData::asciiArt() const { return AsciiArt( fingerprint() /* TODO: key algorithm could be added as top tile. */ ); } std::ostream & dumpOn( std::ostream & str, const PublicKeyData & obj ) { str << "[" << obj.name() << "]" << endl; str << " fpr " << obj.fingerprint() << endl; str << " id " << obj.id() << endl; str << " cre " << Date::ValueType(obj.created()) << ' ' << obj.created() << endl; str << " exp " << Date::ValueType(obj.expires()) << ' ' << obj.expiresAsString() << endl; str << " ttl " << obj.daysToLive() << endl; for ( auto && sub : obj._pimpl->_subkeys ) str << " sub " << sub << endl; str << " rpm " << obj.gpgPubkeyVersion() << "-" << obj.gpgPubkeyRelease() << endl; return str; } bool operator==( const PublicKeyData & lhs, const PublicKeyData & rhs ) { return ( lhs.fingerprint() == rhs.fingerprint() && lhs.created() == rhs.created() ); } /////////////////////////////////////////////////////////////////// /// \class PublicKey::Impl /// \brief PublicKey implementation. /////////////////////////////////////////////////////////////////// struct PublicKey::Impl { Impl() {} Impl( const Pathname & keyFile_r ) : _dontUseThisPtrDirectly( new filesystem::TmpFile ) { PathInfo info( keyFile_r ); MIL << "Taking pubkey from " << keyFile_r << " of size " << info.size() << " and sha1 " << filesystem::checksum(keyFile_r, "sha1") << endl; if ( !info.isExist() ) ZYPP_THROW(Exception("Can't read public key from " + keyFile_r.asString() + ", file not found")); if ( filesystem::hardlinkCopy( keyFile_r, path() ) != 0 ) ZYPP_THROW(Exception("Can't copy public key data from " + keyFile_r.asString() + " to " + path().asString() )); readFromFile(); } Impl( const filesystem::TmpFile & sharedFile_r ) : _dontUseThisPtrDirectly( new filesystem::TmpFile( sharedFile_r ) ) { readFromFile(); } Impl( const filesystem::TmpFile & sharedFile_r, const PublicKeyData & keyData_r ) : _dontUseThisPtrDirectly( new filesystem::TmpFile( sharedFile_r ) ) , _keyData( keyData_r ) { if ( ! keyData_r ) { WAR << "Invalid PublicKeyData supplied: scanning from file" << endl; readFromFile(); } } Impl( const PublicKeyData & keyData_r ) : _keyData( keyData_r ) {} public: const PublicKeyData & keyData() const { return _keyData; } Pathname path() const { return( /*the one and only intended use*/_dontUseThisPtrDirectly ? _dontUseThisPtrDirectly->path() : Pathname() ); } const std::list & hiddenKeys() const { return _hiddenKeys; } protected: std::string _initHomeDir() ///< readFromFile helper to prepare the 'gpg --homedir' { Pathname ret( zypp::myTmpDir() / "PublicKey" ); filesystem::assert_dir( ret ); return ret.asString(); } void readFromFile() { PathInfo info( path() ); MIL << "Reading pubkey from " << info.path() << " of size " << info.size() << " and sha1 " << filesystem::checksum(info.path(), "sha1") << endl; //@TODO is this still required? KeyManagerCtx creates a homedir on the fly static std::string tmppath( _initHomeDir() ); KeyManagerCtx::Ptr ctx = KeyManagerCtx::createForOpenPGP(); if (!ctx || !ctx->setHomedir(tmppath)) { ZYPP_THROW( Exception( std::string("Can't read public key data: Setting the keyring path failed!")) ); } std::list keys = ctx->readKeyFromFile(path()); switch ( keys.size() ) { case 0: ZYPP_THROW( BadKeyException( "File " + path().asString() + " doesn't contain public key data" , path() ) ); break; case 1: // ok. _keyData = keys.back(); _hiddenKeys.clear(); break; default: WAR << "File " << path().asString() << " contains multiple keys: " << keys << endl; _keyData = keys.back(); keys.pop_back(); _hiddenKeys.swap( keys ); break; } MIL << "Read pubkey from " << info.path() << ": " << _keyData << endl; } private: shared_ptr _dontUseThisPtrDirectly; // shared_ptr ok because TmpFile itself is a refernce type (no COW) PublicKeyData _keyData; std::list _hiddenKeys; public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // class PublicKey /////////////////////////////////////////////////////////////////// PublicKey::PublicKey() : _pimpl( Impl::nullimpl() ) {} PublicKey::PublicKey( const Pathname & file ) : _pimpl( new Impl( file ) ) {} PublicKey::PublicKey( const filesystem::TmpFile & sharedfile ) : _pimpl( new Impl( sharedfile ) ) {} PublicKey::PublicKey( const filesystem::TmpFile & sharedfile, const PublicKeyData & keyData_r ) : _pimpl( new Impl( sharedfile, keyData_r ) ) {} PublicKey::PublicKey( const PublicKeyData & keyData_r ) : _pimpl( new Impl( keyData_r ) ) {} PublicKey::~PublicKey() {} const PublicKeyData & PublicKey::keyData() const { return _pimpl->keyData(); } Pathname PublicKey::path() const { return _pimpl->path(); } const std::list & PublicKey::hiddenKeys() const { return _pimpl->hiddenKeys(); } std::string PublicKey::id() const { return keyData().id(); } std::string PublicKey::name() const { return keyData().name(); } std::string PublicKey::fingerprint() const { return keyData().fingerprint(); } Date PublicKey::created() const { return keyData().created(); } Date PublicKey::expires() const { return keyData().expires(); } bool PublicKey::expired() const { return keyData().expired(); } int PublicKey::daysToLive() const { return keyData().daysToLive(); } std::string PublicKey::expiresAsString() const { return keyData().expiresAsString(); } std::string PublicKey::gpgPubkeyVersion() const { return keyData().gpgPubkeyVersion(); } std::string PublicKey::gpgPubkeyRelease() const { return keyData().gpgPubkeyRelease(); } std::string PublicKey::asString() const { return keyData().asString(); } std::string PublicKey::rpmName() const { return keyData().rpmName(); } bool PublicKey::operator==( const PublicKey & rhs ) const { return rhs.keyData() == keyData(); } bool PublicKey::operator==( const std::string & sid ) const { return sid == id(); } std::ostream & dumpOn( std::ostream & str, const PublicKey & obj ) { return dumpOn( str, obj.keyData() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/PublicKey.h000066400000000000000000000310231334444677500163610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/PublicKey.h * */ #ifndef ZYPP_PUBLICKEY_H #define ZYPP_PUBLICKEY_H #include #include #include #include #include #include "zypp/base/Iterable.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/Exception.h" #include "zypp/base/DrunkenBishop.h" #include "zypp/Pathname.h" #include "zypp/Edition.h" #include "zypp/Date.h" struct _gpgme_key; struct _gpgme_subkey; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace filesystem { class TmpFile; } class PublicKeyData; class KeyManagerCtx; /////////////////////////////////////////////////////////////////// /// \class BadKeyException /// \brief Exception thrown when the supplied key is not a valid gpg key /////////////////////////////////////////////////////////////////// class BadKeyException : public Exception { public: /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ BadKeyException() : Exception( "Bad Key Exception" ) {} Pathname keyFile() const { return _keyfile; } /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ BadKeyException( const std::string & msg_r, const Pathname &keyfile = Pathname() ) : Exception( msg_r ), _keyfile(keyfile) {} /** Dtor. */ virtual ~BadKeyException() throw() {}; private: Pathname _keyfile; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class PublicSubkeyData /// \brief Class representing a GPG Public Keys subkeys. /// \see \ref PublicKeyData. /////////////////////////////////////////////////////////////////// class PublicSubkeyData { public: /** Default constructed: empty data. */ PublicSubkeyData(); ~PublicSubkeyData(); /** Whether this contains valid data (not default constructed). */ explicit operator bool() const; public: /** Subkey ID. */ std::string id() const; /** Creation date. */ Date created() const; /** Expiry date, or \c Date() if the key never expires. */ Date expires() const; /** Whether the key has expired. */ bool expired() const; /** Number of days (24h) until the key expires (or since it exired). * A value of \c 0 means the key will expire within the next 24h. * Negative values indicate the key has expired less than \c N days ago. * For keys without expiration date \c INT_MAX is returned. */ int daysToLive() const; /** Simple string representation. * Encodes \ref id, \ref created and \ref expires * \code * 640DB551 2016-04-12 [expires: 2019-04-12] * \endcode */ std::string asString() const; private: class Impl; RWCOW_pointer _pimpl; friend class PublicKeyData; friend std::ostream & dumpOn( std::ostream & str, const PublicKeyData & obj ); PublicSubkeyData(const _gpgme_subkey *rawSubKeyData); }; /////////////////////////////////////////////////////////////////// /** \relates PublicSubkeyData Stream output */ inline std::ostream & operator<<( std::ostream & str, const PublicSubkeyData & obj ) { return str << obj.asString(); } /////////////////////////////////////////////////////////////////// /// \class PublicKeyData /// \brief Class representing one GPG Public Keys data. /// \ref PublicKeyData are provided e.g. by a \ref PublicKey or /// a \ref KeyRing. \ref PublicKeyData are usually easier to /// retrieve and sufficient unless you actually need an ASCII /// armored version of the key placed in a tempfile. In this /// case use \ref PublicKey. /////////////////////////////////////////////////////////////////// class PublicKeyData { public: /** Default constructed: empty data. */ PublicKeyData(); ~PublicKeyData(); /** Whether this contains valid data (not default constructed). */ explicit operator bool() const; public: /** Key ID. */ std::string id() const; /** Key name. */ std::string name() const; /** Key fingerprint.*/ std::string fingerprint() const; /** Creation / last modification date (latest selfsig). */ Date created() const; /** Expiry date, or \c Date() if the key never expires. */ Date expires() const; /** Whether the key has expired. */ bool expired() const; /** Number of days (24h) until the key expires (or since it exired). * A value of \c 0 means the key will expire within the next 24h. * Negative values indicate the key has expired less than \c N days ago. * For keys without expiration date \c INT_MAX is returned. */ int daysToLive() const; /** * Expiry info in a human readable form. * The exipry daye plus an annotation if the key has expired, or will * expire within 90 days. * \code * (does not expire) * Tue May 11 13:37:33 CEST 2010 * Tue May 11 13:37:33 CEST 2010 (expires in 90 days) * Tue May 11 13:37:33 CEST 2010 (expires in 1 day) * Tue May 11 13:37:33 CEST 2010 (expires within 24h) * Tue May 11 13:37:33 CEST 2010 (EXPIRED) * \endcode */ std::string expiresAsString() const; /** Gpg-pubkey version as computed by rpm (trailing 8 byte \ref id) */ std::string gpgPubkeyVersion() const; /** Gpg-pubkey release as computed by rpm (hexencoded \ref created) */ std::string gpgPubkeyRelease() const; /** Gpg-pubkey name as computed by rpm*/ std::string rpmName () const; /** Gpg-pubkey \ref Edition built from version and release.*/ Edition gpgPubkeyEdition() const { return Edition( gpgPubkeyVersion(), gpgPubkeyRelease() ); } /** Simple string representation. * Encodes \ref id, \ref gpgPubkeyRelease, \ref name and \ref fingerprint. * \code * [E3A5C360307E3D54-4be01a65] [SuSE Package Signing Key ] [4E98E67519D98DC7362A5990E3A5C360307E3D54] * \endcode */ std::string asString() const; public: typedef const PublicSubkeyData * SubkeyIterator; /** Whether \ref subkeys is not empty. */ bool hasSubkeys() const; /** Iterate any subkeys. */ Iterable subkeys() const; /** Whether \a id_r is the \ref id of the primary key or of a subkey. */ bool providesKey( const std::string & id_r ) const; public: /** Random art fingerprint visualization type (\ref base::DrunkenBishop). */ typedef base::DrunkenBishop AsciiArt; /** Random art fingerprint visualization (\ref base::DrunkenBishop). * \code * PublicKeyData key; * cout << key.asciiArt( PublicKey::AsciiArt::USE_COLOR ) << endl; * \endcode */ AsciiArt asciiArt() const; private: class Impl; RWCOW_pointer _pimpl; friend class KeyManagerCtx; static PublicKeyData fromGpgmeKey(_gpgme_key *data); PublicKeyData(shared_ptr data); friend std::ostream & dumpOn( std::ostream & str, const PublicKeyData & obj ); }; /////////////////////////////////////////////////////////////////// /** \relates PublicKeyData Stream output */ inline std::ostream & operator<<( std::ostream & str, const PublicKeyData & obj ) { return str << obj.asString(); } /** \relates PublicKeyData Detailed stream output */ std::ostream & dumpOn( std::ostream & str, const PublicKeyData & obj ); /** \relates PublicKeyData Equal based on fingerprint anf creation date. */ bool operator==( const PublicKeyData & lhs, const PublicKeyData & rhs ); /** \relates PublicKeyData NotEqual. */ inline bool operator!=( const PublicKeyData & lhs, const PublicKeyData & rhs ) { return !( lhs == rhs ); } /////////////////////////////////////////////////////////////////// /// \class PublicKey /// \brief Class representing one GPG Public Key (PublicKeyData + ASCII armored in a tempfile). /// /// If you don't need the ASCII armored version of the key stored in /// a tempfile, using \ref PublicKeyData might be sufficient. /// /// \note In case the ASCII armored blob actually contains multiple /// keys, the \b last keys data are made available via the API. The /// additional keys data are made available via \ref hiddenKeys. /////////////////////////////////////////////////////////////////// class PublicKey { public: /** Implementation */ class Impl; public: /** Default ctor. */ PublicKey(); /** Ctor taking the key from a file. * * This is quite expensive, as a copy of the file is created and * used. If you can construct PublicKey from a \ref filesystem::TmpFile, * this prevents copying. * * \throws when data does not make a key */ explicit PublicKey( const Pathname & keyFile_r ); /** Ctor reading the key from a \ref TmpFile. * * PublicKey holds a reference on the TmpFile providing the key. * * \throws when data does not make a key */ explicit PublicKey( const filesystem::TmpFile & sharedFile_r ); ~PublicKey(); public: /** The public keys data (\see \ref PublicKeyData).*/ const PublicKeyData & keyData() const; typedef PublicKeyData::SubkeyIterator SubkeyIterator; bool isValid() const { return ! ( id().empty() || fingerprint().empty() ); } std::string id() const; //!< \see \ref PublicKeyData std::string name() const; //!< \see \ref PublicKeyData std::string fingerprint() const; //!< \see \ref PublicKeyData Date created() const; //!< \see \ref PublicKeyData Date expires() const; //!< \see \ref PublicKeyData std::string expiresAsString() const; //!< \see \ref PublicKeyData bool expired() const; //!< \see \ref PublicKeyData int daysToLive() const; //!< \see \ref PublicKeyData std::string gpgPubkeyVersion() const; //!< \see \ref PublicKeyData std::string gpgPubkeyRelease() const; //!< \see \ref PublicKeyData std::string asString() const; //!< \see \ref PublicKeyData std::string rpmName () const; Edition gpgPubkeyEdition() const ///!< \see \ref PublicKeyData { return keyData().gpgPubkeyEdition(); } bool hasSubkeys() const ///!< \see \ref PublicKeyData { return keyData().hasSubkeys(); } Iterable subkeys() const ///!< \see \ref PublicKeyData { return keyData().subkeys(); } bool providesKey( const std::string & id_r ) const ///!< \see \ref PublicKeyData { return keyData().providesKey( id_r ); } public: typedef PublicKeyData::AsciiArt AsciiArt; ///!< \see \ref PublicKeyData AsciiArt asciiArt() const ///!< \see \ref PublicKeyData { return keyData().asciiArt(); } public: /** File containig the ASCII armored key. */ Pathname path() const; /** Additional keys data in case the ASCII armored blob containes multiple keys. */ const std::list & hiddenKeys() const; public: bool operator==( const PublicKey & rhs ) const; bool operator==( const std::string & sid ) const; private: friend class KeyRing; /** KeyRing ctor: No need to parse file if KeyRing already had valid KeyData. */ PublicKey( const filesystem::TmpFile & sharedFile_r, const PublicKeyData & keyData_r ); /** KeyRing ctor: Legacy callback APIs take PublicKey, but just need the PublicKeyData No need to export to file. */ explicit PublicKey( const PublicKeyData & keyData_r ); private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates PublicKey Stream output */ inline std::ostream & operator<<( std::ostream & str, const PublicKey & obj ) { return str << obj.asString(); } /** \relates PublicKey Detailed stream output */ std::ostream & dumpOn( std::ostream & str, const PublicKey & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PUBLICKEY_H libzypp-17.7.0/zypp/Range.cc000066400000000000000000000063571334444677500157000ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Range.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/Range.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace range_detail { /** Compute Range overlaps. * Takes the \a lhs and \a rhs operator and the result * of comparing \a lhs and \a rhs (-1,0,1). * */ bool overlaps( Rel lhs, Rel rhs, int cmp ) { if ( lhs == Rel::NONE || rhs == Rel::NONE ) return false; if ( lhs == Rel::ANY || rhs == Rel::ANY ) return true; if ( lhs == Rel::NE ) { if ( cmp < 0 ) { // lhs < rhs return( rhs == Rel::GE || rhs == Rel::EQ ); } else if ( cmp > 0) { // lhs > rhs return( rhs == Rel::LT || rhs == Rel::EQ ); } else { //lhs == rhs return ( rhs == Rel::GT || rhs == Rel::LT ); } } if ( rhs == Rel::NE ) { if ( cmp < 0 ) { // lhs < rhs return( lhs == Rel::LE || lhs == Rel::EQ ); } else if ( cmp > 0) { // lhs > rhs return( lhs == Rel::GT || lhs == Rel::EQ ); } else { //lhs == rhs return ( lhs == Rel::GT || lhs == Rel::LT ); } } if ( cmp < 0 ) { // lhs < rhs: either lhs includes greater values or rhs includes lower. return( lhs == Rel::GT || lhs == Rel::GE || rhs == Rel::LT || rhs == Rel::LE ); } if ( cmp > 0 ) { // lhs > rhs: either lhs includes lower values or rhs includes greater. return( lhs == Rel::LT || lhs == Rel::LE || rhs == Rel::GT || rhs == Rel::GE ); } // lhs == rhs: either both ranges include Rel::EQ, or both head // into the same direction. if ( ( lhs == Rel::LE || lhs == Rel::EQ || lhs == Rel::GE ) && ( rhs == Rel::LE || rhs == Rel::EQ || rhs == Rel::GE ) ) return true; if ( ( lhs == Rel::LT && ( rhs == Rel::LT || rhs == Rel::LE ) ) || ( lhs == Rel::GT && ( rhs == Rel::GT || rhs == Rel::GE ) ) || ( rhs == Rel::LT && ( lhs == Rel::LT || lhs == Rel::LE ) ) || ( rhs == Rel::GT && ( lhs == Rel::GT || lhs == Rel::GE ) ) ) return true; // else return false; } } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Range.h000066400000000000000000000054201334444677500155300ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Range.h * */ #ifndef ZYPP_RANGE_H #define ZYPP_RANGE_H #include "zypp/RelCompare.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace range_detail { bool overlaps( Rel lhs, Rel rhs, int cmp ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Range // /** * */ template > struct Range { /** */ Rel op; /** */ Tp value; /** Default ctor: \ref Rel::ANY. */ Range() : op( Rel::ANY ) {} /** Ctor taking \a Tp (\ref Rel::EQ). */ Range( const Tp & value_r ) : op( Rel::EQ ) , value( value_r ) {} /** Ctor taking \ref Rel and \a Tp. */ Range( Rel op_r, const Tp & value_r ) : op( op_r ) , value( value_r ) {} /** Return whether two Ranges overlap. */ bool overlaps( const Range & rhs ) const { return range_detail::overlaps( op, rhs.op, TCompare()( value, rhs.value ) ); } }; /////////////////////////////////////////////////////////////////// template inline bool overlaps( const Range & lhs, const Range & rhs ) { return lhs.overlaps( rhs ); } /////////////////////////////////////////////////////////////////// template inline bool operator==( const Range & lhs, const Range & rhs ) { return( lhs.op == rhs.op && ( lhs.op == Rel::ANY || lhs.op == Rel::NONE || relCompare( Rel::EQ, lhs.value, rhs.value, TCompare() ) ) ); } template inline bool operator!=( const Range & lhs, const Range & rhs ) { return ! ( lhs == rhs ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RANGE_H libzypp-17.7.0/zypp/Rel.cc000066400000000000000000000101001334444677500153430ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Rel.cc * */ #include #include #include "zypp/base/Exception.h" #include "zypp/Rel.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace { std::map _table; std::map::const_iterator findStr( const std::string & strval_r ) { if ( _table.empty() ) { // initialize it _table["EQ"] = _table["eq"] = _table["=="] = _table["="] = Rel::EQ_e; _table["NE"] = _table["ne"] = _table["!="] = Rel::NE_e; _table["LT"] = _table["lt"] = _table["<"] = Rel::LT_e; _table["LE"] = _table["le"] = _table["lte"] = _table["<="] = Rel::LE_e; _table["GT"] = _table["gt"] = _table[">"] = Rel::GT_e; _table["GE"] = _table["ge"] = _table["gte"] = _table[">="] = Rel::GE_e; _table["ANY"] = _table["any"] = _table["(any)"] = _table[""] = Rel::ANY_e; _table["NONE"] = _table["none"] = Rel::NONE_e; } return _table.find( strval_r ); } Rel::for_use_in_switch parse( const std::string & strval_r ) { std::map::const_iterator it = findStr( strval_r ); if ( it == _table.end() ) { ZYPP_THROW( Exception("Rel parse: illegal string value '"+strval_r+"'") ); } return it->second; } Rel::for_use_in_switch parse( const std::string & strval_r, const Rel & default_r ) { std::map::const_iterator it = findStr( strval_r ); if ( it == _table.end() ) { return default_r.inSwitch(); } return it->second; } } /////////////////////////////////////////////////////////////////// const Rel Rel::EQ( Rel::EQ_e ); const Rel Rel::NE( Rel::NE_e ); const Rel Rel::LT( Rel::LT_e ); const Rel Rel::LE( Rel::LE_e ); const Rel Rel::GT( Rel::GT_e ); const Rel Rel::GE( Rel::GE_e ); const Rel Rel::ANY( Rel::ANY_e ); const Rel Rel::NONE( Rel::NONE_e ); /////////////////////////////////////////////////////////////////// // // METHOD NAME : Rel::Rel // METHOD TYPE : Constructor // Rel::Rel( const std::string & strval_r ) : _op( parse( strval_r ) ) {} Rel::Rel( const std::string & strval_r, const Rel & default_r ) : _op( parse( strval_r, default_r ) ) {} bool Rel::parseFrom( const std::string & strval_r ) { std::map::const_iterator it = findStr( strval_r ); if ( it == _table.end() ) { return false; } _op = it->second; return true; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Rel::asString // METHOD TYPE : const std::string & // const std::string & Rel::asString() const { static std::map _table; if ( _table.empty() ) { // initialize it _table[EQ_e] = "=="; _table[NE_e] = "!="; _table[LT_e] = "<"; _table[LE_e] = "<="; _table[GT_e] = ">"; _table[GE_e] = ">="; _table[ANY_e] = "ANY"; _table[NONE_e] = "NONE"; } return _table[_op]; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Rel.h000066400000000000000000000127631334444677500152260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Rel.h * */ #ifndef ZYPP_REL_H #define ZYPP_REL_H #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Rel // /** Relational operators. * Yes, it could as well be simply an \c enum.
* Yes, you can use the relational operators as if it was an \c enum.
* Except for use in a \c switch statement; see \ref inSwitch for this. * * But we want to construct them from a string representation, as well as * providing one. And this way they are wrapped into a namespace, which is * a good idea anyway. * * \ref ANY and \ref NONE are somewhat special. \ref ANY is the * operator created by the default ctor, and it should always resolve * to \c true. This may be handy in queries when you're looking for a * Resolvable in \c ANY Edition if no operator was specified. * While \ref NONE should always resolve to \c false. * * \ingroup g_EnumerationClass */ struct Rel { /** \name Relational operators * These are the \em real relational operator contants to * use. Don't mind that it's not an enum. See also: \ref zypp::Rel::inSwitch */ //@{ static const Rel EQ; static const Rel NE; static const Rel LT; static const Rel LE; static const Rel GT; static const Rel GE; static const Rel ANY; static const Rel NONE; //@} /** Enumarators provided \b only for use \ref inSwitch statement. * \see inSwitch * \note Enumarator values also correspond to the values libsolv * uses to encode these relations. */ enum for_use_in_switch { NONE_e = 0U, GT_e = 1U, EQ_e = 2U, LT_e = 4U, GE_e = GT_e|EQ_e, LE_e = LT_e|EQ_e, NE_e = GT_e|LT_e, ANY_e = GT_e|EQ_e|LT_e, }; /** DefaultCtor ANY. */ Rel() : _op( ANY_e ) {} /** Ctor from string. * Legal values for \a strval_r are: "==", "!=", "<", "<=", ">", ">=",
* as well as "EQ", "NE", "LT", "LE", "GT", "GE", "ANY", "NONE"
* and "" (empty string resolves to ANY). * * Lower case names are accepted as well. * * \throw PARSE if \a strval_r is not legal. * \todo refine exceptions and check throw. */ explicit Rel( const std::string & strval_r ); /** Ctor from string (non-throwing). * Illegal string values resolve to \c default_r */ Rel( const std::string & strval_r, const Rel & default_r ); /** Assign from string IFF it contains a legal value. * \return Whether \a strval_r contained a legal value. */ bool parseFrom( const std::string & strval_r ); /** Ctor from bits. */ explicit Rel( unsigned bits_r ) : _op( for_use_in_switch(bits_r & ANY_e) ) {} /** Test whether \a bits_r is a valid \ref Rel (no extra bits set). */ static bool isRel( unsigned bits_r ) { return (bits_r & ANY_e) == bits_r; } /** String representation of relational operator. * \return "==", "!=", "<", "<=", ">", ">=", "ANY" or "NONE" */ const std::string & asString() const; /** \overload */ const char * c_str() const { return asString().c_str(); } /** Enumarator provided for use in \c switch statement. * The sole reason for providing enum \ref for_use_in_switch is, * that we may want to use the relational operators in a \c switch * statement. Tht's the only case where you should have to use the * enumarator. * \code * Rel op; * switch ( op.inSwitch() ) * { * case Rel::EQ_e: * ... * break; * case Rel::NE_e: * ... * * // No default! Let compiler warn if case is missing * } * \endcode */ for_use_in_switch inSwitch() const { return _op; } /** Enumarator values suitable for libsolv. */ unsigned bits() const { return _op; } private: /** Ctor to initialize the relational operator contants. */ Rel( for_use_in_switch op_r ) : _op( op_r ) {} /** The operator. */ for_use_in_switch _op; }; /////////////////////////////////////////////////////////////////// /** \relates Rel Stream output. */ inline std::ostream & operator<<( std::ostream & str, const Rel & obj ) { return str << obj.asString(); } /////////////////////////////////////////////////////////////////// /** \relates Rel */ inline bool operator==( const Rel & lhs, const Rel & rhs ) { return lhs.inSwitch() == rhs.inSwitch(); } /** \relates Rel */ inline bool operator!=( const Rel & lhs, const Rel & rhs ) { return ! ( lhs == rhs ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_REL_H libzypp-17.7.0/zypp/RelCompare.h000066400000000000000000000201101334444677500165160ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RelCompare.h * */ #ifndef ZYPP_RELCOMPARE_H #define ZYPP_RELCOMPARE_H #include #include "zypp/Rel.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** \defgroup RelCompare Comparison using relational operator zypp::Rel. * * . Take a class like zypp::Edition. Editions are comaprable. * You can compare them lexicographical, or according to their * version and release values, or match them (i.e. taking empty * version or release values as wildcard). * * No matter which way is appropriate within a certain context. * You need functions to compare, and may want to use classes like * zypp::Range, based on the desired comparison. * * All the class has to do, is providing a general comparison * method (preferably static) * \code * // Compare two elements returning -1, 0, 1 * // if the elemants compare <,==,>. * static int compare( const Tp & lhs, const Tp & rhs ); * \endcode * * Compare\ provides a functor wrapping \c compare. * In case the general comparison method is named differently, the * class, or you, have to provide an approriate functor. * * compareByRel then compares two elements using a certain * operator and general comparison method. * \code * compareByRel( Rel::EQ, lhs, rhs, Edition::compare ); * compareByRel( Rel::EQ, lhs, rhs, Edition::match ); * compareByRel( Rel::EQ, lhs, rhs ); // defaults to Compare\ * // thus Edition::compare * \endcode * * Furthermore a bunch of functors using a certain opertator is * defined. All templated by type and general comparison * method (defaults to Compare\). * \code * // Editions sets use lexicographical order per default: * std::set * * // An Edition set using Edition::compare as order: * std::set >; * * // Edition::match is not transitive, thus not an appropriate * // order relation for std::set or std::map. * \endcode * * Classes like zypp:Range are templated by by type and general * comparison method as well. Thus you may use Edition ranges based * on Edition::Compare, as well as ranges based on Edition::Match * (Edition provides these two functors). * * Again: Everything a class has to provide is the general * comparison method. Comparison functors and ranges are then * immediately available. */ //@{ /** General compare functor returning -1, 0, 1. * Expects Tp::compare to be a static comaprison method * returning -1, 0, 1 if the elements compare * \<,==,\>. */ template struct Compare : public std::binary_function { int operator()( const Tp & lhs, const Tp & rhs ) const { return Tp::compare( lhs, rhs ); } }; /////////////////////////////////////////////////////////////////// /** Comparison of two elements using relational operator \a op. * Expects \a TCompare to be a binary operator returning * -1, 0, 1 if the elemants compare \<,==,\>. * \code * // Signature of compare function or functor: * int compare( const Tp & lhs, const Tp & rhs ); * \endcode * \li If \a op is Rel::ANY, the expression is always \c true. * \li If \a op is Rel::NONE, the expression is always \c false. * \li Otherwise the expression is evaluated using \a compare. * * \ingroup RelCompare */ template inline bool compareByRel( Rel op, const Tp & lhs, const Tp & rhs, TCompare compare ) { switch ( op.inSwitch() ) { case Rel::EQ_e: return compare( lhs, rhs ) == 0; break; case Rel::NE_e: return compare( lhs, rhs ) != 0; break; case Rel::LT_e: return compare( lhs, rhs ) < 0; break; case Rel::LE_e: return compare( lhs, rhs ) <= 0; break; case Rel::GT_e: return compare( lhs, rhs ) > 0; break; case Rel::GE_e: return compare( lhs, rhs ) >= 0; break; case Rel::ANY_e: return true; break; case Rel::NONE_e: return false; break; } return false; } /** \ref compareByRel convenience using Compare as general compare * functor. */ template inline bool compareByRel( Rel op, const Tp & lhs, const Tp & rhs ) { return compareByRel( op, lhs, rhs, Compare() ); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /** Functor to compare two elements by \ref Rel based on * a general \a TCompare functor. * * Expects \a TCompare to be suitable for use in \ref compareByRel. * Defaults to Compare\. */ template > struct CompareBy : public std::binary_function { CompareBy( Rel op_r ) : _op( op_r ) {} bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( _op, lhs, rhs, TCompare() ); } Rel _op; }; template > struct CompareByEQ : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::EQ, lhs, rhs, TCompare() ); } }; template > struct CompareByNE : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::NE, lhs, rhs, TCompare() ); } }; template > struct CompareByLT : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::LT, lhs, rhs, TCompare() ); } }; template > struct CompareByLE : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::LE, lhs, rhs, TCompare() ); } }; template > struct CompareByGT : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::GT, lhs, rhs, TCompare() ); } }; template > struct CompareByGE : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::GE, lhs, rhs, TCompare() ); } }; template > struct CompareByANY : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::ANY, lhs, rhs, TCompare() ); } }; template > struct CompareByNONE : public std::binary_function { bool operator()( const Tp & lhs, const Tp & rhs ) const { return compareByRel( Rel::NONE, lhs, rhs, TCompare() ); } }; /////////////////////////////////////////////////////////////////// //@} ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RELCOMPARE_H libzypp-17.7.0/zypp/RepoInfo.cc000066400000000000000000001015161334444677500163560ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RepoInfo.cc * */ #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/parser/xml/XmlEscape.h" #include "zypp/ManagedFile.h" #include "zypp/PublicKey.h" #include "zypp/MediaSetAccess.h" #include "zypp/RepoInfo.h" #include "zypp/Glob.h" #include "zypp/TriBool.h" #include "zypp/Pathname.h" #include "zypp/ZConfig.h" #include "zypp/repo/RepoMirrorList.h" #include "zypp/ExternalProgram.h" #include "zypp/media/MediaAccess.h" #include "zypp/base/IOStream.h" #include "zypp/base/InputStream.h" #include "zypp/parser/xml/Reader.h" #include "zypp/base/StrMatcher.h" #include "zypp/KeyRing.h" #include "zypp/TmpPath.h" #include "zypp/ZYppFactory.h" #include "zypp/ZYppCallbacks.h" using std::endl; using zypp::xml::escape; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoInfo::Impl // /** RepoInfo implementation. */ struct RepoInfo::Impl { Impl() : _rawGpgCheck( indeterminate ) , _rawRepoGpgCheck( indeterminate ) , _rawPkgGpgCheck( indeterminate ) , _validRepoSignature( indeterminate ) , keeppackages(indeterminate) , _mirrorListForceMetalink(false) , type(repo::RepoType::NONE_e) , emptybaseurls(false) {} ~Impl() {} public: static const unsigned defaultPriority = 99; static const unsigned noPriority = unsigned(-1); void setProbedType( const repo::RepoType & t ) const { if ( type == repo::RepoType::NONE && t != repo::RepoType::NONE ) { // lazy init! const_cast(this)->type = t; } } public: /** Path to a license tarball in case it exists in the repo. */ Pathname licenseTgz( const std::string & name_r ) const { Pathname ret; if ( !metadataPath().empty() ) { std::string licenseStem( "license" ); if ( !name_r.empty() ) { licenseStem += "-"; licenseStem += name_r; } filesystem::Glob g; // TODO: REPOMD: this assumes we know the name of the tarball. In fact // we'd need to get the file from repomd.xml () g.add( metadataPath() / path / ("repodata/*"+licenseStem+".tar.gz") ); if ( g.empty() ) g.add( metadataPath() / path / (licenseStem+".tar.gz") ); if ( !g.empty() ) ret = *g.begin(); } return ret; } const RepoVariablesReplacedUrlList & baseUrls() const { const Url & mlurl( _mirrorListUrl.transformed() ); // Variables replaced! if ( _baseUrls.empty() && ! mlurl.asString().empty() ) { emptybaseurls = true; DBG << "MetadataPath: " << metadataPath() << endl; repo::RepoMirrorList rmurls( mlurl, metadataPath(), _mirrorListForceMetalink ); _baseUrls.raw().insert( _baseUrls.raw().end(), rmurls.getUrls().begin(), rmurls.getUrls().end() ); } return _baseUrls; } RepoVariablesReplacedUrlList & baseUrls() { return _baseUrls; } bool baseurl2dump() const { return !emptybaseurls && !_baseUrls.empty(); } const RepoVariablesReplacedUrlList & gpgKeyUrls() const { return _gpgKeyUrls; } RepoVariablesReplacedUrlList & gpgKeyUrls() { return _gpgKeyUrls; } const std::set & contentKeywords() const { hasContent()/*init if not yet done*/; return _keywords.second; } void addContent( const std::string & keyword_r ) { _keywords.second.insert( keyword_r ); if ( ! hasContent() ) _keywords.first = true; } bool hasContent() const { if ( !_keywords.first && ! metadataPath().empty() ) { // HACK directly check master index file until RepoManager offers // some content probing and zypper uses it. ///////////////////////////////////////////////////////////////// MIL << "Empty keywords...." << metadataPath() << endl; Pathname master; if ( PathInfo( (master=metadataPath()/"/repodata/repomd.xml") ).isFile() ) { //MIL << "GO repomd.." << endl; xml::Reader reader( master ); while ( reader.seekToNode( 2, "content" ) ) { _keywords.second.insert( reader.nodeText().asString() ); reader.seekToEndNode( 2, "content" ); } _keywords.first = true; // valid content in _keywords even if empty } else if ( PathInfo( (master=metadataPath()/"/content") ).isFile() ) { //MIL << "GO content.." << endl; iostr::forEachLine( InputStream( master ), [this]( int num_r, std::string line_r )->bool { if ( str::startsWith( line_r, "REPOKEYWORDS" ) ) { std::vector words; if ( str::split( line_r, std::back_inserter(words) ) > 1 && words[0].length() == 12 /*"REPOKEYWORDS"*/ ) { this->_keywords.second.insert( ++words.begin(), words.end() ); } return true; // mult. occurrances are ok. } return( ! str::startsWith( line_r, "META " ) ); // no need to parse into META section. } ); _keywords.first = true; // valid content in _keywords even if empty } ///////////////////////////////////////////////////////////////// } return _keywords.first; } bool hasContent( const std::string & keyword_r ) const { return( hasContent() && _keywords.second.find( keyword_r ) != _keywords.second.end() ); } /** Signature check result needs to be stored/retrieved from _metadataPath. * Don't call them from outside validRepoSignature/setValidRepoSignature */ //@{ TriBool internalValidRepoSignature() const { if ( ! indeterminate(_validRepoSignature) ) return _validRepoSignature; // check metadata: if ( ! metadataPath().empty() ) { // A missing ".repo_gpgcheck" might be plaindir(no Downloader) or not yet refreshed signed repo! TriBool linkval = triBoolFromPath( metadataPath() / ".repo_gpgcheck" ); return linkval; } return indeterminate; } void internalSetValidRepoSignature( TriBool value_r ) { if ( PathInfo(metadataPath()).isDir() ) { Pathname gpgcheckFile( metadataPath() / ".repo_gpgcheck" ); if ( PathInfo(gpgcheckFile).isExist() ) { TriBool linkval( indeterminate ); if ( triBoolFromPath( gpgcheckFile, linkval ) && linkval == value_r ) return; // existing symlink fits value_r else filesystem::unlink( gpgcheckFile ); // will write a new one } filesystem::symlink( asString(value_r), gpgcheckFile ); } _validRepoSignature = value_r; } /** We definitely have a symlink pointing to "indeterminate" (for repoGpgCheckIsMandatory)? * I.e. user accepted the unsigned repo in Downloader. A test whether `internalValidRepoSignature` * is indeterminate would include not yet checked repos, which is unwanted here. */ bool internalUnsignedConfirmed() const { TriBool linkval( true ); // want to see it being switched to indeterminate return triBoolFromPath( metadataPath() / ".repo_gpgcheck", linkval ) && indeterminate(linkval); } bool triBoolFromPath( const Pathname & path_r, TriBool & ret_r ) const { static const Pathname truePath( "true" ); static const Pathname falsePath( "false" ); static const Pathname indeterminatePath( "indeterminate" ); // Quiet readlink; static const ssize_t bufsiz = 63; static char buf[bufsiz+1]; ssize_t ret = ::readlink( path_r.c_str(), buf, bufsiz ); buf[ret == -1 ? 0 : ret] = '\0'; Pathname linkval( buf ); bool known = true; if ( linkval == truePath ) ret_r = true; else if ( linkval == falsePath ) ret_r = false; else if ( linkval == indeterminatePath ) ret_r = indeterminate; else known = false; return known; } TriBool triBoolFromPath( const Pathname & path_r ) const { TriBool ret(indeterminate); triBoolFromPath( path_r, ret ); return ret; } //@} private: TriBool _rawGpgCheck; ///< default gpgcheck behavior: Y/N/ZConf TriBool _rawRepoGpgCheck; ///< need to check repo sign.: Y/N/(ZConf(Y/N/gpgCheck)) TriBool _rawPkgGpgCheck; ///< need to check pkg sign.: Y/N/(ZConf(Y/N/gpgCheck)) public: TriBool rawGpgCheck() const { return _rawGpgCheck; } TriBool rawRepoGpgCheck() const { return _rawRepoGpgCheck; } TriBool rawPkgGpgCheck() const { return _rawPkgGpgCheck; } void rawGpgCheck( TriBool val_r ) { _rawGpgCheck = val_r; } void rawRepoGpgCheck( TriBool val_r ) { _rawRepoGpgCheck = val_r; } void rawPkgGpgCheck( TriBool val_r ) { _rawPkgGpgCheck = val_r; } bool cfgGpgCheck() const { return indeterminate(_rawGpgCheck) ? ZConfig::instance().gpgCheck() : (bool)_rawGpgCheck; } TriBool cfgRepoGpgCheck() const { return indeterminate(_rawGpgCheck) && indeterminate(_rawRepoGpgCheck) ? ZConfig::instance().repoGpgCheck() : _rawRepoGpgCheck; } TriBool cfgPkgGpgCheck() const { return indeterminate(_rawGpgCheck) && indeterminate(_rawPkgGpgCheck) ? ZConfig::instance().pkgGpgCheck() : _rawPkgGpgCheck; } private: TriBool _validRepoSignature;///< have signed and valid repo metadata public: TriBool keeppackages; RepoVariablesReplacedUrl _mirrorListUrl; bool _mirrorListForceMetalink; repo::RepoType type; Pathname path; std::string service; std::string targetDistro; void metadataPath( Pathname new_r ) { _metadataPath = std::move( new_r ); } void packagesPath( Pathname new_r ) { _packagesPath = std::move( new_r ); } bool usesAutoMethadataPaths() const { return str::hasSuffix( _metadataPath.asString(), "/%AUTO%" ); } Pathname metadataPath() const { if ( usesAutoMethadataPaths() ) return _metadataPath.dirname() / "%RAW%"; return _metadataPath; } Pathname packagesPath() const { if ( _packagesPath.empty() && usesAutoMethadataPaths() ) return _metadataPath.dirname() / "%PKG%"; return _packagesPath; } DefaultIntegral priority; mutable bool emptybaseurls; private: Pathname _metadataPath; Pathname _packagesPath; mutable RepoVariablesReplacedUrlList _baseUrls; mutable std::pair > _keywords; RepoVariablesReplacedUrlList _gpgKeyUrls; friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /** \relates RepoInfo::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const RepoInfo::Impl & obj ) { return str << "RepoInfo::Impl"; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoInfo // /////////////////////////////////////////////////////////////////// const RepoInfo RepoInfo::noRepo; RepoInfo::RepoInfo() : _pimpl( new Impl() ) {} RepoInfo::~RepoInfo() {} unsigned RepoInfo::priority() const { return _pimpl->priority; } unsigned RepoInfo::defaultPriority() { return Impl::defaultPriority; } unsigned RepoInfo::noPriority() { return Impl::noPriority; } void RepoInfo::setPriority( unsigned newval_r ) { _pimpl->priority = newval_r ? newval_r : Impl::defaultPriority; } bool RepoInfo::gpgCheck() const { return _pimpl->cfgGpgCheck(); } void RepoInfo::setGpgCheck( TriBool value_r ) { _pimpl->rawGpgCheck( value_r ); } void RepoInfo::setGpgCheck( bool value_r ) // deprecated legacy and for squid { setGpgCheck( TriBool(value_r) ); } bool RepoInfo::repoGpgCheck() const { return gpgCheck() || _pimpl->cfgRepoGpgCheck(); } bool RepoInfo::repoGpgCheckIsMandatory() const { bool ret = ( gpgCheck() && indeterminate(_pimpl->cfgRepoGpgCheck()) ) || _pimpl->cfgRepoGpgCheck(); if ( ret && _pimpl->internalUnsignedConfirmed() ) // relax if unsigned repo was confirmed in the past ret = false; return ret; } void RepoInfo::setRepoGpgCheck( TriBool value_r ) { _pimpl->rawRepoGpgCheck( value_r ); } bool RepoInfo::pkgGpgCheck() const { return _pimpl->cfgPkgGpgCheck() || ( gpgCheck() && !bool(validRepoSignature())/*enforced*/ ) ; } bool RepoInfo::pkgGpgCheckIsMandatory() const { return _pimpl->cfgPkgGpgCheck() || ( gpgCheck() && indeterminate(_pimpl->cfgPkgGpgCheck()) && !bool(validRepoSignature())/*enforced*/ ); } void RepoInfo::setPkgGpgCheck( TriBool value_r ) { _pimpl->rawPkgGpgCheck( value_r ); } void RepoInfo::getRawGpgChecks( TriBool & g_r, TriBool & r_r, TriBool & p_r ) const { g_r = _pimpl->rawGpgCheck(); r_r = _pimpl->rawRepoGpgCheck(); p_r = _pimpl->rawPkgGpgCheck(); } TriBool RepoInfo::validRepoSignature() const { TriBool ret( _pimpl->internalValidRepoSignature() ); if ( ret && !repoGpgCheck() ) ret = false; // invalidate any old signature if repoGpgCheck is off return ret; } void RepoInfo::setValidRepoSignature( TriBool value_r ) { _pimpl->internalSetValidRepoSignature( value_r ); } /////////////////////////////////////////////////////////////////// namespace { inline bool changeGpgCheckTo( TriBool & lhs, TriBool rhs ) { if ( ! sameTriboolState( lhs, rhs ) ) { lhs = rhs; return true; } return false; } inline bool changeGpgCheckTo( TriBool ogpg[3], TriBool g, TriBool r, TriBool p ) { bool changed = false; if ( changeGpgCheckTo( ogpg[0], g ) ) changed = true; if ( changeGpgCheckTo( ogpg[1], r ) ) changed = true; if ( changeGpgCheckTo( ogpg[2], p ) ) changed = true; return changed; } } // namespace /////////////////////////////////////////////////////////////////// bool RepoInfo::setGpgCheck( GpgCheck mode_r ) { TriBool ogpg[3]; // Gpg RepoGpg PkgGpg getRawGpgChecks( ogpg[0], ogpg[1], ogpg[2] ); bool changed = false; switch ( mode_r ) { case GpgCheck::On: changed = changeGpgCheckTo( ogpg, true, indeterminate, indeterminate ); break; case GpgCheck::Strict: changed = changeGpgCheckTo( ogpg, true, true, true ); break; case GpgCheck::AllowUnsigned: changed = changeGpgCheckTo( ogpg, true, false, false ); break; case GpgCheck::AllowUnsignedRepo: changed = changeGpgCheckTo( ogpg, true, false, indeterminate ); break; case GpgCheck::AllowUnsignedPackage: changed = changeGpgCheckTo( ogpg, true, indeterminate, false ); break; case GpgCheck::Default: changed = changeGpgCheckTo( ogpg, indeterminate, indeterminate, indeterminate ); break; case GpgCheck::Off: changed = changeGpgCheckTo( ogpg, false, indeterminate, indeterminate ); break; case GpgCheck::indeterminate: // no change break; } if ( changed ) { setGpgCheck ( ogpg[0] ); setRepoGpgCheck( ogpg[1] ); setPkgGpgCheck ( ogpg[2] ); } return changed; } void RepoInfo::setMirrorListUrl( const Url & url_r ) // Raw { _pimpl->_mirrorListUrl.raw() = url_r; _pimpl->_mirrorListForceMetalink = false; } void RepoInfo::setMetalinkUrl( const Url & url_r ) // Raw { _pimpl->_mirrorListUrl.raw() = url_r; _pimpl->_mirrorListForceMetalink = true; } void RepoInfo::setGpgKeyUrls( url_set urls ) { _pimpl->gpgKeyUrls().raw().swap( urls ); } void RepoInfo::setGpgKeyUrl( const Url & url_r ) { _pimpl->gpgKeyUrls().raw().clear(); _pimpl->gpgKeyUrls().raw().push_back( url_r ); } Pathname RepoInfo::provideKey(const std::string &keyID_r, const Pathname &targetDirectory_r) const { if ( keyID_r.empty() ) return Pathname(); MIL << "Check for " << keyID_r << " at " << targetDirectory_r << endl; std::string keyIDStr( keyID_r.size() > 8 ? keyID_r.substr( keyID_r.size()-8 ) : keyID_r ); // print short ID in Jobreports filesystem::TmpDir tmpKeyRingDir; KeyRing tempKeyRing(tmpKeyRingDir.path()); // translator: %1% is a gpg key ID like 3DBDC284 // %2% is a cache directories path JobReport::info( str::Format(_("Looking for gpg key ID %1% in cache %2%.") ) % keyIDStr % targetDirectory_r ); filesystem::dirForEach(targetDirectory_r, StrMatcher(".key", Match::STRINGEND), [&tempKeyRing]( const Pathname & dir_r, const std::string & str_r ){ try { // deprecate a month old keys PathInfo fileInfo ( dir_r/str_r ); if ( Date::now() - fileInfo.mtime() > Date::month ) { //if unlink fails, the file will be overriden in the next step, no need //to show a error filesystem::unlink( dir_r/str_r ); } else { tempKeyRing.multiKeyImport(dir_r/str_r, true); } } catch (const KeyRingException& e) { ZYPP_CAUGHT(e); ERR << "Error importing cached key from file '"<licenseTgz( name_r ).asString() ); // if it not exists, avlocales was empty. cmd.push_back( licenseFile ); std::string ret; ExternalProgram prog( cmd, ExternalProgram::Discard_Stderr ); for ( std::string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) { ret += output; } prog.close(); return ret; } LocaleSet RepoInfo::getLicenseLocales() const { return getLicenseLocales( std::string() ); } LocaleSet RepoInfo::getLicenseLocales( const std::string & name_r ) const { const Pathname & licenseTgz( _pimpl->licenseTgz( name_r ) ); if ( licenseTgz.empty() ) return LocaleSet(); ExternalProgram::Arguments cmd; cmd.push_back( "tar" ); cmd.push_back( "-t" ); cmd.push_back( "-z" ); cmd.push_back( "-f" ); cmd.push_back( licenseTgz.asString() ); LocaleSet ret; ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout ); for ( std::string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) { static const C_Str license( "license." ); static const C_Str dotTxt( ".txt\n" ); if ( str::hasPrefix( output, license ) && str::hasSuffix( output, dotTxt ) ) { if ( output.size() <= license.size() + dotTxt.size() ) // license.txt ret.insert( Locale() ); else ret.insert( Locale( std::string( output.c_str()+license.size(), output.size()- license.size() - dotTxt.size() ) ) ); } } prog.close(); return ret; } /////////////////////////////////////////////////////////////////// std::ostream & RepoInfo::dumpOn( std::ostream & str ) const { RepoInfoBase::dumpOn(str); if ( _pimpl->baseurl2dump() ) { for ( const auto & url : _pimpl->baseUrls().raw() ) { str << "- url : " << url << std::endl; } } // print if non empty value auto strif( [&] ( const std::string & tag_r, const std::string & value_r ) { if ( ! value_r.empty() ) str << tag_r << value_r << std::endl; }); strif( (_pimpl->_mirrorListForceMetalink ? "- metalink : " : "- mirrorlist : "), rawMirrorListUrl().asString() ); strif( "- path : ", path().asString() ); str << "- type : " << type() << std::endl; str << "- priority : " << priority() << std::endl; // Yes No Default(Y) Default(N) #define OUTS(T,B) ( indeterminate(T) ? (std::string("D(")+(B?"Y":"N")+")") : ((bool)T?"Y":"N") ) str << "- gpgcheck : " << OUTS(_pimpl->rawGpgCheck(),gpgCheck()) << " repo" << OUTS(_pimpl->rawRepoGpgCheck(),repoGpgCheck()) << (repoGpgCheckIsMandatory() ? "* ": " " ) << "sig" << asString( validRepoSignature(), "?", "Y", "N" ) << " pkg" << OUTS(_pimpl->rawPkgGpgCheck(),pkgGpgCheck()) << (pkgGpgCheckIsMandatory() ? "* ": " " ) << std::endl; #undef OUTS for ( const auto & url : _pimpl->gpgKeyUrls().raw() ) { str << "- gpgkey : " << url << std::endl; } if ( ! indeterminate(_pimpl->keeppackages) ) str << "- keeppackages: " << keepPackages() << std::endl; strif( "- service : ", service() ); strif( "- targetdistro: ", targetDistribution() ); strif( "- filePath: ", filepath().asString() ); strif( "- metadataPath: ", metadataPath().asString() ); strif( "- packagesPath: ", packagesPath().asString() ); return str; } std::ostream & RepoInfo::dumpAsIniOn( std::ostream & str ) const { RepoInfoBase::dumpAsIniOn(str); if ( _pimpl->baseurl2dump() ) { str << "baseurl="; std::string indent; for ( const auto & url : _pimpl->baseUrls().raw() ) { str << indent << url << endl; if ( indent.empty() ) indent = " "; // "baseurl=" } } if ( ! _pimpl->path.empty() ) str << "path="<< path() << endl; if ( ! (rawMirrorListUrl().asString().empty()) ) str << (_pimpl->_mirrorListForceMetalink ? "metalink=" : "mirrorlist=") << rawMirrorListUrl() << endl; str << "type=" << type().asString() << endl; if ( priority() != defaultPriority() ) str << "priority=" << priority() << endl; if ( ! indeterminate(_pimpl->rawGpgCheck()) ) str << "gpgcheck=" << (_pimpl->rawGpgCheck() ? "1" : "0") << endl; if ( ! indeterminate(_pimpl->rawRepoGpgCheck()) ) str << "repo_gpgcheck=" << (_pimpl->rawRepoGpgCheck() ? "1" : "0") << endl; if ( ! indeterminate(_pimpl->rawPkgGpgCheck()) ) str << "pkg_gpgcheck=" << (_pimpl->rawPkgGpgCheck() ? "1" : "0") << endl; { std::string indent( "gpgkey="); for ( const auto & url : _pimpl->gpgKeyUrls().raw() ) { str << indent << url << endl; if ( indent[0] != ' ' ) indent = " "; } } if (!indeterminate(_pimpl->keeppackages)) str << "keeppackages=" << keepPackages() << endl; if( ! service().empty() ) str << "service=" << service() << endl; return str; } std::ostream & RepoInfo::dumpAsXmlOn( std::ostream & str, const std::string & content ) const { std::string tmpstr; str << "_mirrorListForceMetalink ? " metalink=\"" : " mirrorlist=\"") << escape(tmpstr) << "\""; str << ">" << endl; if ( _pimpl->baseurl2dump() ) { for_( it, baseUrlsBegin(), baseUrlsEnd() ) // !transform iterator replaces variables str << "" << escape((*it).asString()) << "" << endl; } str << "" << endl; return str; } std::ostream & operator<<( std::ostream & str, const RepoInfo & obj ) { return obj.dumpOn(str); } std::ostream & operator<<( std::ostream & str, const RepoInfo::GpgCheck & obj ) { switch ( obj ) { #define OUTS( V ) case RepoInfo::V: return str << #V; break OUTS( GpgCheck::On ); OUTS( GpgCheck::Strict ); OUTS( GpgCheck::AllowUnsigned ); OUTS( GpgCheck::AllowUnsignedRepo ); OUTS( GpgCheck::AllowUnsignedPackage ); OUTS( GpgCheck::Default ); OUTS( GpgCheck::Off ); OUTS( GpgCheck::indeterminate ); #undef OUTS } return str << "GpgCheck::UNKNOWN"; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/RepoInfo.h000066400000000000000000000515621334444677500162250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RepoInfo.h * */ #ifndef ZYPP2_REPOSITORYINFO_H #define ZYPP2_REPOSITORYINFO_H #include #include #include "zypp/base/Iterator.h" #include "zypp/APIConfig.h" #include "zypp/Url.h" #include "zypp/Locale.h" #include "zypp/TriBool.h" #include "zypp/repo/RepoType.h" #include "zypp/repo/RepoVariables.h" #include "zypp/repo/RepoInfoBase.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoInfo // /** * \short What is known about a repository * * The class RepoInfo represents everything that * is known about a software repository. * * It can be used to store information about known * sources. * * This class tries to be compatible with the * concept of a .repo file used by YUM and * also available in the openSUSE build service. * See man yum.conf. * * Example file * * \code * [ruby] * name=Ruby repository (openSUSE_10.2) * type=rpm-md * baseurl=http://software.opensuse.org/download/ruby/openSUSE_10.2/ * http://some.opensuse.mirror/ruby/openSUSE_10.2/ * gpgcheck=1 * gpgkey=http://software.opensuse.org/openSUSE-Build-Service.asc * enabled=1 * priority=10 * \endcode * * \note A RepoInfo is a hint about how * to create a Repository. * * \note Name, baseUrls and mirrorUrl are subject to repo variable replacement * (\see \ref RepoVariablesStringReplacer). */ class RepoInfo : public repo::RepoInfoBase { friend std::ostream & operator<<( std::ostream & str, const RepoInfo & obj ); public: RepoInfo(); virtual ~RepoInfo(); /** Represents no Repository (one with an empty alias). */ static const RepoInfo noRepo; public: /** * The default priority (\c 99). */ static unsigned defaultPriority(); /** * The least priority (unsigned(-1)). */ static unsigned noPriority(); /** * Repository priority for solver. * Some number between \c 1 (highest priority) and \c 99 (\ref defaultPriority). */ unsigned priority() const; /** * Set repository priority for solver. * A \c newval_r of \c 0 sets the default priority. * \see \ref priority. */ void setPriority( unsigned newval_r ); typedef std::list url_set; typedef url_set::size_type urls_size_type; typedef transform_iterator urls_const_iterator; /** * whether repository urls are available */ bool baseUrlsEmpty() const; /** * Whether there are manualy configured repository urls. * If \c false, a mirrorlist might be used. */ bool baseUrlSet() const; /** * number of repository urls */ urls_size_type baseUrlsSize() const; /** * iterator that points at begin of repository urls */ urls_const_iterator baseUrlsBegin() const; /** * iterator that points at end of repository urls */ urls_const_iterator baseUrlsEnd() const; /** * Pars pro toto: The first repository url */ Url url() const { return( baseUrlsEmpty() ? Url() : *baseUrlsBegin()); } /** * Pars pro toto: The first repository raw url (no variables replaced) */ Url rawUrl() const; /** * The complete set of repository urls * * These are either the configured baseurls, or if empty, the downloaded * mirror list (\see \ref mirrorListUrl) */ url_set baseUrls() const; /** * The complete set of raw repository urls (no variables replaced) */ url_set rawBaseUrls() const; /** * Add a base url. \see baseUrls * \param url The base url for the repository. * * To recreate the base URLs list, use \ref setBaseUrl(const Url &) followed * by addBaseUrl(). */ void addBaseUrl( const Url &url ); /** * Clears current base URL list and adds \a url. */ void setBaseUrl( const Url &url ); /** * Clears current base URL list and adds an \ref url_set. */ void setBaseUrls( url_set urls ); /** * \short Repository path * * Pathname relative to the base Url where the product/repository * is located * * For media containing more than one product, or repositories not * located at the root of the media it is important to know the path * to the product directory relative to the media root. So a media * verifier can be set for that media. You may also read it as * baseUrl = url to mount and path = path on the * mounted media. * * It is not mandatory, and the default is \c /. * * \note As a repository can have multiple Urls, the path is unique and * the same for all Urls, so it is assumed all the Urls have the * same media layout. * */ Pathname path() const; /** * set the product path. \see path() * \param path the path to the product */ void setPath( const Pathname &path ); /** * Url of a file which contains a list of repository urls */ Url mirrorListUrl() const; /** * The raw mirrorListUrl (no variables replaced). */ Url rawMirrorListUrl() const; /** * Set mirror list url. \see mirrorListUrl * \param url The base url for the list */ void setMirrorListUrl( const Url &url ); /** * Like \ref setMirrorListUrl but expect metalink format. */ void setMetalinkUrl( const Url &url ); /** * Type of repository, * */ repo::RepoType type() const; /** * This allows to adjust the \ref RepoType lazy, from \c NONE to * some probed value, even for const objects. * * This is a NOOP if the current type is not \c NONE. */ void setProbedType( const repo::RepoType &t ) const; /** * set the repository type \see type * \param t */ void setType( const repo::RepoType &t ); /** * \short Path where this repo metadata was read from * * \note could be an empty pathname for repo * infos created in memory. */ Pathname metadataPath() const; /** * \short Set the path where the local metadata is stored * * The path to the repositories metadata is usually provided by * the RepoManager. If you want to use a temporary repository * (not under RepoManagers control), and you set a metadataPath * with basename \c %AUTO%, all data directories (raw metadata, * solv file and package cache) will be created by replacing \c %AUTO% * with \c %RAW%, \c %SLV% or \c %PKG% . This will change the value * of \ref packagesPath accordingly, unless you assigned a custom * value using \ref setPackagesPath. * * \code * RepoInfo repo; * repo.setAlias( "Temp" ); * repo.setBaseUrl( Url("http://someserver/somepath/") ); * repo.setMetadataPath( "/tmp/temprepodata/%AUTO%" ); * * // will use * // /tmp/temprepodata/%RAW% - raw metadata * // /%SLV% - solv file * // /%PKG% - packages *\endcode * * \param path directory path */ void setMetadataPath( const Pathname &path ); /** Whether \ref metadataPath uses \c %AUTO% setup. */ bool usesAutoMethadataPaths() const; /** * \short Path where this repo packages are cached */ Pathname packagesPath() const; /** * \short set the path where the local packages are stored * * \param path directory path */ void setPackagesPath( const Pathname &path ); /** \name Repository gpgchecks * How signature checking should be performed for this repo. * * The values are computed based in the settings of \c gpgcheck, \c repo_gpgcheck * end \c pkg_gpgcheck in \c zypp.conf. Explicitly setting these values in the * repositories \a .repo file will overwrite the defaults from \c zypp.conf for this * repo. * * If \c gpgcheck is \c on (the default) we will check the signature of repo metadata * (packages are secured via checksum inside the metadata). Using unsigned repos * needs to be confirmed. * Packages from signed repos are accepted if their checksum matches the checksum * stated in the repo metadata. * Packages from unsigned repos need a valid gpg signature, using unsigned packages * needs to be confirmed. * * The above default behavior can be tuned by explicitly setting \c repo_gpgcheck * and/or \c pkg_gpgcheck: * * \c repo_gpgcheck = \c on same as the default. * * \c repo_gpgcheck = \c off will silently accept unsigned repos. It will NOT turn of * signature checking on the whole, nevertheless it's not a secure setting. * * \c pkg_gpgcheck = \c on will enforce the package signature checking and the need * to confirm unsigned packages for all repos (signed and unsigned). * * \c pkg_gpgcheck = \c off will silently accept unsigned packages. It will NOT turn of * signature checking on the whole, nevertheless it's not a secure setting. * * If \c gpgCheck is \c off (not recommneded), no checks are performed. You can still * enable them individually by setting \c repo_gpgcheck and/or \c pkg_gpgcheck to \c on. * * \code * R: check repo signature is mandatory, confirm unsigned repos * r: check repo signature, unsigned repos are ok but enforce p * : do not check repo signatures * * P: check package signature always, confirm unsigned packages * p: like P for unsigned repos, accepted by checksum for signed repos * b: like p but accept unsigned packages * : do not check package signatures * pkg_ * gpgcheck 1| * 0 1 * ------------------------------------ * repo_ *1| R/p R/b R/P * 0| r/p r/b r/P * * pkg_ * gpgcheck 0| * 0 1 * ------------------------------------ * repo_ *0| P * 1| R R R/P * \endcode */ //@{ /** Whether default signature checking should be performed. */ bool gpgCheck() const; /** Set the value for \ref gpgCheck (or \c indeterminate to use the default). */ void setGpgCheck( TriBool value_r ); /** \overload \deprecated legacy and for squid */ void setGpgCheck( bool value_r ); /** Whether the signature of repo metadata should be checked for this repo. */ bool repoGpgCheck() const; /** Mandatory check (\ref repoGpgCheck is \c on) must ask to confirm using unsigned repos. */ bool repoGpgCheckIsMandatory() const; /** Set the value for \ref repoGpgCheck (or \c indeterminate to use the default). */ void setRepoGpgCheck( TriBool value_r ); /** Whether the signature of rpm packages should be checked for this repo. */ bool pkgGpgCheck() const; /** Mandatory check (\ref pkgGpgCheck is not \c off) must ask to confirm using unsigned packages. */ bool pkgGpgCheckIsMandatory() const; /** Set the value for \ref pkgGpgCheck (or \c indeterminate to use the default). */ void setPkgGpgCheck( TriBool value_r ); /** Whether the repo metadata are signed and successfully validated or \c indeterminate if unsigned. * The value is usually set by \ref repo::Downloader when retrieving the metadata. */ TriBool validRepoSignature() const; /** Set the value for \ref validRepoSignature (or \c indeterminate if unsigned). */ void setValidRepoSignature( TriBool value_r ); /** Some predefined settings */ enum class GpgCheck { indeterminate, //< not specified On, //< 1** --gpgcheck Strict, //< 111 --gpgcheck-strict AllowUnsigned, //< 100 --gpgcheck-allow-unsigned AllowUnsignedRepo, //< 10* --gpgcheck-allow-unsigned-repo AllowUnsignedPackage, //< 1*0 --gpgcheck-allow-unsigned-package Default, //< *** --default-gpgcheck Off, //< 0** --no-gpgcheck }; /** Adjust *GpgCheck settings according to \a mode_r. * \c GpgCheck::indeterminate will leave the settings as they are. * \return whether setting were changed */ bool setGpgCheck( GpgCheck mode_r ); //@} /** Whether gpgkey URLs are defined */ bool gpgKeyUrlsEmpty() const; /** Number of gpgkey URLs defined */ urls_size_type gpgKeyUrlsSize() const; /** The list of gpgkey URLs defined for this repo */ url_set gpgKeyUrls() const; /** The list of raw gpgkey URLs defined for this repo (no variables replaced) */ url_set rawGpgKeyUrls() const; /** Set a list of gpgkey URLs defined for this repo */ void setGpgKeyUrls( url_set urls ); /** (leagcy API) The 1st gpgkey URL defined for this repo */ Url gpgKeyUrl() const; /** (leagcy API) The 1st raw gpgkey URL defined for this repo (no variables replaced) */ Url rawGpgKeyUrl() const; /** (leagcy API) Set the gpgkey URL defined for this repo */ void setGpgKeyUrl( const Url &gpgkey ); /** downloads all configured gpg keys into the defined directory */ Pathname provideKey(const std::string &keyID_r, const Pathname &targetDirectory_r ) const; /** * \short Whether packages downloaded from this repository will be kept in local cache */ bool keepPackages() const; /** * \short Set if packaqes downloaded from this repository will be kept in local cache * * If the setting is true, all downloaded packages from this repository will be * copied to the local raw cache. * * \param keep true (keep the downloaded packages) or false (delete them after installation) * */ void setKeepPackages( bool keep ); /** * Gets name of the service to which this repository belongs or empty string * if it has been added manually. */ std::string service() const; /** * sets service which added this repository */ void setService( const std::string& name ); /** * Distribution for which is this repository meant. */ std::string targetDistribution() const; /** * Sets the distribution for which is this repository meant. This is * an in-memory value only, does not get written to the .repo file upon * saving. */ void setTargetDistribution(const std::string & targetDistribution); /** Content keywords defined. */ const std::set & contentKeywords() const; /** Add content keywords */ void addContent( const std::string & keyword_r ); /** \overload add keywords from container */ template void addContentFrom( TIterator begin_r, TIterator end_r ) { for_( it, begin_r, end_r ) addContent( *it ); } /** \overload */ template void addContentFrom( const TContainer & container_r ) { addContentFrom( container_r.begin(), container_r.end() ); } /** Check for content keywords. * They may be missing due to missing metadata in disabled repos. */ bool hasContent() const; /** \overload check for a keywords being present */ bool hasContent( const std::string & keyword_r ) const; /** \overload check for \b all keywords being present */ template bool hasContentAll( TIterator begin_r, TIterator end_r ) const { for_( it, begin_r, end_r ) if ( ! hasContent( *it ) ) return false; return true; } /** \overload */ template bool hasContentAll( const TContainer & container_r ) const { return hasContentAll( container_r.begin(), container_r.end() ); } /** \overload check for \b any keyword being present */ template bool hasContentAny( TIterator begin_r, TIterator end_r ) const { for_( it, begin_r, end_r ) if ( hasContent( *it ) ) return true; return false; } /** \overload */ template bool hasContentAny( const TContainer & container_r ) const { return hasContentAny( container_r.begin(), container_r.end() ); } public: /** \name Repository/Product license * In case a repository provides multiple license tarballs in repomd.xml * \code * ... * ... * ... * \endcode * you can address the individual licenses by passing their name * (e.g. \c "sles" to access the \c type="license-sles"). * No on an empty name will refer to \c type="license". */ //@{ /** Whether there is a license associated with the repo. */ bool hasLicense() const; /** \overload taking a (product)name */ bool hasLicense( const std::string & name_r ) const; /** Whether the repo license has to be accepted, e.g. there is no * no acceptance needed for openSUSE. */ bool needToAcceptLicense() const; /** \overload taking a (product)name */ bool needToAcceptLicense( const std::string & name_r ) const; /** Return the best license for the current (or a specified) locale. */ std::string getLicense( const Locale & lang_r = Locale() ) const; /** \overload not const LEGACY API */ std::string getLicense( const Locale & lang_r = Locale() ); // LEGACY API /** \overload taking a (product)name */ std::string getLicense( const std::string & name_r, const Locale & lang_r = Locale() ) const; /** Return the locales the license is available for. * \ref Locale::noCode is included in case of \c license.txt which does * not specify a specific locale. */ LocaleSet getLicenseLocales() const; /** \overload taking a (product)name */ LocaleSet getLicenseLocales( const std::string & name_r ) const; //@} public: /** * Write a human-readable representation of this RepoInfo object * into the \a str stream. Useful for logging. */ virtual std::ostream & dumpOn( std::ostream & str ) const; /** * Write this RepoInfo object into \a str in a .repo file format. * Raw values, no variable replacement. */ virtual std::ostream & dumpAsIniOn( std::ostream & str ) const; /** * Write an XML representation of this RepoInfo object. * Repo variables replaced. * * \param str * \param content this argument is ignored (used in other classed derived * from RepoInfoBase. */ virtual std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const; class Impl; private: friend class RepoManager; /** Raw values for RepoManager */ void getRawGpgChecks( TriBool & g_r, TriBool & r_r, TriBool & p_r ) const; /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates RepoInfo */ typedef shared_ptr RepoInfo_Ptr; /** \relates RepoInfo */ typedef shared_ptr RepoInfo_constPtr; /** \relates RepoInfo */ typedef std::list RepoInfoList; /** \relates RepoInfo Stream output */ std::ostream & operator<<( std::ostream & str, const RepoInfo & obj ); /** \relates RepoInfo::GpgCheck Stream output */ std::ostream & operator<<( std::ostream & str, const RepoInfo::GpgCheck & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP2_REPOSITORYINFO_H libzypp-17.7.0/zypp/RepoManager.cc000066400000000000000000002640261334444677500170430ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RepoManager.cc * */ #include #include #include #include #include #include #include #include #include "zypp/base/String.h" #include "zypp/base/InputStream.h" #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/base/Function.h" #include "zypp/base/Regex.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/ServiceInfo.h" #include "zypp/repo/RepoException.h" #include "zypp/RepoManager.h" #include "zypp/media/MediaManager.h" #include "zypp/media/CredentialManager.h" #include "zypp/MediaSetAccess.h" #include "zypp/ExternalProgram.h" #include "zypp/ManagedFile.h" #include "zypp/KeyManager.h" #include "zypp/parser/RepoFileReader.h" #include "zypp/parser/ServiceFileReader.h" #include "zypp/repo/ServiceRepos.h" #include "zypp/repo/yum/Downloader.h" #include "zypp/repo/susetags/Downloader.h" #include "zypp/repo/PluginServices.h" #include "zypp/Target.h" // for Target::targetDistribution() for repo index services #include "zypp/ZYppFactory.h" // to get the Target from ZYpp instance #include "zypp/HistoryLog.h" // to write history :O) #include "zypp/ZYppCallbacks.h" #include "sat/Pool.h" using std::endl; using std::string; using namespace zypp::repo; #define OPT_PROGRESS const ProgressData::ReceiverFnc & = ProgressData::ReceiverFnc() /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace env { /** To trigger appdata refresh unconditionally */ inline bool ZYPP_PLUGIN_APPDATA_FORCE_COLLECT() { const char * env = getenv("ZYPP_PLUGIN_APPDATA_FORCE_COLLECT"); return( env && str::strToBool( env, true ) ); } } // namespace env /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { /////////////////////////////////////////////////////////////////// /// \class UrlCredentialExtractor /// \brief Extract credentials in \ref Url authority and store them via \ref CredentialManager. /// /// Lazy init CredentialManager and save collected credentials when /// going out of scope. /// /// Methods return whether a password has been collected/extracted. /// /// \code /// UrlCredentialExtractor( "/rootdir" ).collect( oneUrlOrUrlContainer ); /// \endcode /// \code /// { /// UrlCredentialExtractor extractCredentials; /// extractCredentials.collect( oneUrlOrUrlContainer ); /// extractCredentials.extract( oneMoreUrlOrUrlContainer ); /// .... /// } /// \endcode /// class UrlCredentialExtractor { public: UrlCredentialExtractor( Pathname & root_r ) : _root( root_r ) {} ~UrlCredentialExtractor() { if ( _cmPtr ) _cmPtr->save(); } /** Remember credentials stored in URL authority leaving the password in \a url_r. */ bool collect( const Url & url_r ) { bool ret = url_r.hasCredentialsInAuthority(); if ( ret ) { if ( !_cmPtr ) _cmPtr.reset( new media::CredentialManager( _root ) ); _cmPtr->addUserCred( url_r ); } return ret; } /** \overload operating on Url container */ template bool collect( const TContainer & urls_r ) { bool ret = false; for ( const Url & url : urls_r ) { if ( collect( url ) && !ret ) ret = true; } return ret; } /** Remember credentials stored in URL authority stripping the passowrd from \a url_r. */ bool extract( Url & url_r ) { bool ret = collect( url_r ); if ( ret ) url_r.setPassword( std::string() ); return ret; } /** \overload operating on Url container */ template bool extract( TContainer & urls_r ) { bool ret = false; for ( Url & url : urls_r ) { if ( extract( url ) && !ret ) ret = true; } return ret; } private: const Pathname & _root; scoped_ptr _cmPtr; }; } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { /** Simple media mounter to access non-downloading URLs e.g. for non-local plaindir repos. * \ingroup g_RAII */ class MediaMounter { public: /** Ctor provides media access. */ MediaMounter( const Url & url_r ) { media::MediaManager mediamanager; _mid = mediamanager.open( url_r ); mediamanager.attach( _mid ); } /** Ctor releases the media. */ ~MediaMounter() { media::MediaManager mediamanager; mediamanager.release( _mid ); mediamanager.close( _mid ); } /** Convert a path relative to the media into an absolute path. * * Called without argument it returns the path to the medias root directory. */ Pathname getPathName( const Pathname & path_r = Pathname() ) const { media::MediaManager mediamanager; return mediamanager.localPath( _mid, path_r ); } private: media::MediaAccessId _mid; }; /////////////////////////////////////////////////////////////////// /** Check if alias_r is present in repo/service container. */ template inline bool foundAliasIn( const std::string & alias_r, Iterator begin_r, Iterator end_r ) { for_( it, begin_r, end_r ) if ( it->alias() == alias_r ) return true; return false; } /** \overload */ template inline bool foundAliasIn( const std::string & alias_r, const Container & cont_r ) { return foundAliasIn( alias_r, cont_r.begin(), cont_r.end() ); } /** Find alias_r in repo/service container. */ template inline Iterator findAlias( const std::string & alias_r, Iterator begin_r, Iterator end_r ) { for_( it, begin_r, end_r ) if ( it->alias() == alias_r ) return it; return end_r; } /** \overload */ template inline typename Container::iterator findAlias( const std::string & alias_r, Container & cont_r ) { return findAlias( alias_r, cont_r.begin(), cont_r.end() ); } /** \overload */ template inline typename Container::const_iterator findAlias( const std::string & alias_r, const Container & cont_r ) { return findAlias( alias_r, cont_r.begin(), cont_r.end() ); } /** \short Generate a related filename from a repo/service infos alias */ inline std::string filenameFromAlias( const std::string & alias_r, const std::string & stem_r ) { std::string filename( alias_r ); // replace slashes with underscores str::replaceAll( filename, "/", "_" ); filename = Pathname(filename).extend("."+stem_r).asString(); MIL << "generating filename for " << stem_r << " [" << alias_r << "] : '" << filename << "'" << endl; return filename; } /** * \short Simple callback to collect the results * * Classes like RepoFileReader call the callback * once per each repo in a file. * * Passing this functor as callback, you can collect * all results at the end, without dealing with async * code. * * If targetDistro is set, all repos with non-empty RepoInfo::targetDistribution() * will be skipped. * * \todo do this through a separate filter */ struct RepoCollector : private base::NonCopyable { RepoCollector() {} RepoCollector(const std::string & targetDistro_) : targetDistro(targetDistro_) {} bool collect( const RepoInfo &repo ) { // skip repositories meant for other distros than specified if (!targetDistro.empty() && !repo.targetDistribution().empty() && repo.targetDistribution() != targetDistro) { MIL << "Skipping repository meant for '" << repo.targetDistribution() << "' distribution (current distro is '" << targetDistro << "')." << endl; return true; } repos.push_back(repo); return true; } RepoInfoList repos; std::string targetDistro; }; //////////////////////////////////////////////////////////////////////////// /** * Reads RepoInfo's from a repo file. * * \param file pathname of the file to read. */ std::list repositories_in_file( const Pathname & file ) { MIL << "repo file: " << file << endl; RepoCollector collector; parser::RepoFileReader parser( file, bind( &RepoCollector::collect, &collector, _1 ) ); return std::move(collector.repos); } //////////////////////////////////////////////////////////////////////////// /** * \short List of RepoInfo's from a directory * * Goes trough every file ending with ".repo" in a directory and adds all * RepoInfo's contained in that file. * * \param dir pathname of the directory to read. */ std::list repositories_in_dir( const Pathname &dir ) { MIL << "directory " << dir << endl; std::list repos; bool nonroot( geteuid() != 0 ); if ( nonroot && ! PathInfo(dir).userMayRX() ) { JobReport::warning( str::Format(_("Cannot read repo directory '%1%': Permission denied")) % dir ); } else { std::list entries; if ( filesystem::readdir( entries, dir, false ) != 0 ) { // TranslatorExplanation '%s' is a pathname ZYPP_THROW(Exception(str::form(_("Failed to read directory '%s'"), dir.c_str()))); } str::regex allowedRepoExt("^\\.repo(_[0-9]+)?$"); for ( std::list::const_iterator it = entries.begin(); it != entries.end(); ++it ) { if ( str::regex_match(it->extension(), allowedRepoExt) ) { if ( nonroot && ! PathInfo(*it).userMayR() ) { JobReport::warning( str::Format(_("Cannot read repo file '%1%': Permission denied")) % *it ); } else { const std::list & tmp( repositories_in_file( *it ) ); repos.insert( repos.end(), tmp.begin(), tmp.end() ); } } } } return repos; } //////////////////////////////////////////////////////////////////////////// inline void assert_alias( const RepoInfo & info ) { if ( info.alias().empty() ) ZYPP_THROW( RepoNoAliasException( info ) ); // bnc #473834. Maybe we can match the alias against a regex to define // and check for valid aliases if ( info.alias()[0] == '.') ZYPP_THROW(RepoInvalidAliasException( info, _("Repository alias cannot start with dot."))); } inline void assert_alias( const ServiceInfo & info ) { if ( info.alias().empty() ) ZYPP_THROW( ServiceNoAliasException( info ) ); // bnc #473834. Maybe we can match the alias against a regex to define // and check for valid aliases if ( info.alias()[0] == '.') ZYPP_THROW(ServiceInvalidAliasException( info, _("Service alias cannot start with dot."))); } //////////////////////////////////////////////////////////////////////////// inline void assert_urls( const RepoInfo & info ) { if ( info.baseUrlsEmpty() ) ZYPP_THROW( RepoNoUrlException( info ) ); } inline void assert_url( const ServiceInfo & info ) { if ( ! info.url().isValid() ) ZYPP_THROW( ServiceNoUrlException( info ) ); } //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { /** Whether repo is not under RM control and provides it's own methadata paths. */ inline bool isTmpRepo( const RepoInfo & info_r ) { return( info_r.filepath().empty() && info_r.usesAutoMethadataPaths() ); } } // namespace /////////////////////////////////////////////////////////////////// /** * \short Calculates the raw cache path for a repository, this is usually * /var/cache/zypp/alias */ inline Pathname rawcache_path_for_repoinfo( const RepoManagerOptions &opt, const RepoInfo &info ) { assert_alias(info); return isTmpRepo( info ) ? info.metadataPath() : opt.repoRawCachePath / info.escaped_alias(); } /** * \short Calculates the raw product metadata path for a repository, this is * inside the raw cache dir, plus an optional path where the metadata is. * * It should be different only for repositories that are not in the root of * the media. * for example /var/cache/zypp/alias/addondir */ inline Pathname rawproductdata_path_for_repoinfo( const RepoManagerOptions &opt, const RepoInfo &info ) { return rawcache_path_for_repoinfo( opt, info ) / info.path(); } /** * \short Calculates the packages cache path for a repository */ inline Pathname packagescache_path_for_repoinfo( const RepoManagerOptions &opt, const RepoInfo &info ) { assert_alias(info); return isTmpRepo( info ) ? info.packagesPath() : opt.repoPackagesCachePath / info.escaped_alias(); } /** * \short Calculates the solv cache path for a repository */ inline Pathname solv_path_for_repoinfo( const RepoManagerOptions &opt, const RepoInfo &info ) { assert_alias(info); return isTmpRepo( info ) ? info.metadataPath().dirname() / "%SLV%" : opt.repoSolvCachePath / info.escaped_alias(); } //////////////////////////////////////////////////////////////////////////// /** Functor collecting ServiceInfos into a ServiceSet. */ class ServiceCollector { public: typedef std::set ServiceSet; ServiceCollector( ServiceSet & services_r ) : _services( services_r ) {} bool operator()( const ServiceInfo & service_r ) const { _services.insert( service_r ); return true; } private: ServiceSet & _services; }; //////////////////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// std::list readRepoFile( const Url & repo_file ) { ManagedFile local = MediaSetAccess::provideFileFromUrl(repo_file); DBG << "reading repo file " << repo_file << ", local path: " << local << endl; return repositories_in_file(local); } /////////////////////////////////////////////////////////////////// // // class RepoManagerOptions // //////////////////////////////////////////////////////////////////// RepoManagerOptions::RepoManagerOptions( const Pathname & root_r ) { repoCachePath = Pathname::assertprefix( root_r, ZConfig::instance().repoCachePath() ); repoRawCachePath = Pathname::assertprefix( root_r, ZConfig::instance().repoMetadataPath() ); repoSolvCachePath = Pathname::assertprefix( root_r, ZConfig::instance().repoSolvfilesPath() ); repoPackagesCachePath = Pathname::assertprefix( root_r, ZConfig::instance().repoPackagesPath() ); knownReposPath = Pathname::assertprefix( root_r, ZConfig::instance().knownReposPath() ); knownServicesPath = Pathname::assertprefix( root_r, ZConfig::instance().knownServicesPath() ); pluginsPath = Pathname::assertprefix( root_r, ZConfig::instance().pluginsPath() ); probe = ZConfig::instance().repo_add_probe(); rootDir = root_r; } RepoManagerOptions RepoManagerOptions::makeTestSetup( const Pathname & root_r ) { RepoManagerOptions ret; ret.repoCachePath = root_r; ret.repoRawCachePath = root_r/"raw"; ret.repoSolvCachePath = root_r/"solv"; ret.repoPackagesCachePath = root_r/"packages"; ret.knownReposPath = root_r/"repos.d"; ret.knownServicesPath = root_r/"services.d"; ret.pluginsPath = root_r/"plugins"; ret.rootDir = root_r; return ret; } std:: ostream & operator<<( std::ostream & str, const RepoManagerOptions & obj ) { #define OUTS(X) str << " " #X "\t" << obj.X << endl str << "RepoManagerOptions (" << obj.rootDir << ") {" << endl; OUTS( repoRawCachePath ); OUTS( repoSolvCachePath ); OUTS( repoPackagesCachePath ); OUTS( knownReposPath ); OUTS( knownServicesPath ); OUTS( pluginsPath ); str << "}" << endl; #undef OUTS return str; } /////////////////////////////////////////////////////////////////// /// \class RepoManager::Impl /// \brief RepoManager implementation. /// /////////////////////////////////////////////////////////////////// struct RepoManager::Impl { public: Impl( const RepoManagerOptions &opt ) : _options(opt) { init_knownServices(); init_knownRepositories(); } ~Impl() { // trigger appdata refresh if some repos change if ( ( _reposDirty || env::ZYPP_PLUGIN_APPDATA_FORCE_COLLECT() ) && geteuid() == 0 && ( _options.rootDir.empty() || _options.rootDir == "/" ) ) { try { std::list entries; filesystem::readdir( entries, _options.pluginsPath/"appdata", false ); if ( ! entries.empty() ) { ExternalProgram::Arguments cmd; cmd.push_back( "<" ); // discard stdin cmd.push_back( ">" ); // discard stdout cmd.push_back( "PROGRAM" ); // [2] - fix index below if changing! for ( const auto & rinfo : repos() ) { if ( ! rinfo.enabled() ) continue; cmd.push_back( "-R" ); cmd.push_back( rinfo.alias() ); cmd.push_back( "-t" ); cmd.push_back( rinfo.type().asString() ); cmd.push_back( "-p" ); cmd.push_back( rinfo.metadataPath().asString() ); } for_( it, entries.begin(), entries.end() ) { PathInfo pi( *it ); //DBG << "/tmp/xx ->" << pi << endl; if ( pi.isFile() && pi.userMayRX() ) { // trigger plugin cmd[2] = pi.asString(); // [2] - PROGRAM ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout ); } } } } catch (...) {} // no throw in dtor } } public: bool repoEmpty() const { return repos().empty(); } RepoSizeType repoSize() const { return repos().size(); } RepoConstIterator repoBegin() const { return repos().begin(); } RepoConstIterator repoEnd() const { return repos().end(); } bool hasRepo( const std::string & alias ) const { return foundAliasIn( alias, repos() ); } RepoInfo getRepo( const std::string & alias ) const { RepoConstIterator it( findAlias( alias, repos() ) ); return it == repos().end() ? RepoInfo::noRepo : *it; } public: Pathname metadataPath( const RepoInfo & info ) const { return rawcache_path_for_repoinfo( _options, info ); } Pathname packagesPath( const RepoInfo & info ) const { return packagescache_path_for_repoinfo( _options, info ); } RepoStatus metadataStatus( const RepoInfo & info ) const; RefreshCheckStatus checkIfToRefreshMetadata( const RepoInfo & info, const Url & url, RawMetadataRefreshPolicy policy ); void refreshMetadata( const RepoInfo & info, RawMetadataRefreshPolicy policy, OPT_PROGRESS ); void cleanMetadata( const RepoInfo & info, OPT_PROGRESS ); void cleanPackages( const RepoInfo & info, OPT_PROGRESS ); void buildCache( const RepoInfo & info, CacheBuildPolicy policy, OPT_PROGRESS ); repo::RepoType probe( const Url & url, const Pathname & path = Pathname() ) const; repo::RepoType probeCache( const Pathname & path_r ) const; void cleanCacheDirGarbage( OPT_PROGRESS ); void cleanCache( const RepoInfo & info, OPT_PROGRESS ); bool isCached( const RepoInfo & info ) const { return PathInfo(solv_path_for_repoinfo( _options, info ) / "solv").isExist(); } RepoStatus cacheStatus( const RepoInfo & info ) const { return RepoStatus::fromCookieFile(solv_path_for_repoinfo(_options, info) / "cookie"); } void loadFromCache( const RepoInfo & info, OPT_PROGRESS ); void addRepository( const RepoInfo & info, OPT_PROGRESS ); void addRepositories( const Url & url, OPT_PROGRESS ); void removeRepository( const RepoInfo & info, OPT_PROGRESS ); void modifyRepository( const std::string & alias, const RepoInfo & newinfo_r, OPT_PROGRESS ); RepoInfo getRepositoryInfo( const std::string & alias, OPT_PROGRESS ); RepoInfo getRepositoryInfo( const Url & url, const url::ViewOption & urlview, OPT_PROGRESS ); public: bool serviceEmpty() const { return _services.empty(); } ServiceSizeType serviceSize() const { return _services.size(); } ServiceConstIterator serviceBegin() const { return _services.begin(); } ServiceConstIterator serviceEnd() const { return _services.end(); } bool hasService( const std::string & alias ) const { return foundAliasIn( alias, _services ); } ServiceInfo getService( const std::string & alias ) const { ServiceConstIterator it( findAlias( alias, _services ) ); return it == _services.end() ? ServiceInfo::noService : *it; } public: void addService( const ServiceInfo & service ); void addService( const std::string & alias, const Url & url ) { addService( ServiceInfo( alias, url ) ); } void removeService( const std::string & alias ); void removeService( const ServiceInfo & service ) { removeService( service.alias() ); } void refreshServices( const RefreshServiceOptions & options_r ); void refreshService( const std::string & alias, const RefreshServiceOptions & options_r ); void refreshService( const ServiceInfo & service, const RefreshServiceOptions & options_r ) { refreshService( service.alias(), options_r ); } void modifyService( const std::string & oldAlias, const ServiceInfo & newService ); repo::ServiceType probeService( const Url & url ) const; private: void saveService( ServiceInfo & service ) const; Pathname generateNonExistingName( const Pathname & dir, const std::string & basefilename ) const; std::string generateFilename( const RepoInfo & info ) const { return filenameFromAlias( info.alias(), "repo" ); } std::string generateFilename( const ServiceInfo & info ) const { return filenameFromAlias( info.alias(), "service" ); } void setCacheStatus( const RepoInfo & info, const RepoStatus & status ) { Pathname base = solv_path_for_repoinfo( _options, info ); filesystem::assert_dir(base); status.saveToCookieFile( base / "cookie" ); } void touchIndexFile( const RepoInfo & info ); template void getRepositoriesInService( const std::string & alias, OutputIterator out ) const { MatchServiceAlias filter( alias ); std::copy( boost::make_filter_iterator( filter, repos().begin(), repos().end() ), boost::make_filter_iterator( filter, repos().end(), repos().end() ), out); } private: void init_knownServices(); void init_knownRepositories(); const RepoSet & repos() const { return _reposX; } RepoSet & reposManip() { if ( ! _reposDirty ) _reposDirty = true; return _reposX; } private: RepoManagerOptions _options; RepoSet _reposX; ServiceSet _services; DefaultIntegral _reposDirty; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /** \relates RepoManager::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const RepoManager::Impl & obj ) { return str << "RepoManager::Impl"; } /////////////////////////////////////////////////////////////////// void RepoManager::Impl::saveService( ServiceInfo & service ) const { filesystem::assert_dir( _options.knownServicesPath ); Pathname servfile = generateNonExistingName( _options.knownServicesPath, generateFilename( service ) ); service.setFilepath( servfile ); MIL << "saving service in " << servfile << endl; std::ofstream file( servfile.c_str() ); if ( !file ) { // TranslatorExplanation '%s' is a filename ZYPP_THROW( Exception(str::form( _("Can't open file '%s' for writing."), servfile.c_str() ))); } service.dumpAsIniOn( file ); MIL << "done" << endl; } /** * Generate a non existing filename in a directory, using a base * name. For example if a directory contains 3 files * * |-- bar * |-- foo * `-- moo * * If you try to generate a unique filename for this directory, * based on "ruu" you will get "ruu", but if you use the base * "foo" you will get "foo_1" * * \param dir Directory where the file needs to be unique * \param basefilename string to base the filename on. */ Pathname RepoManager::Impl::generateNonExistingName( const Pathname & dir, const std::string & basefilename ) const { std::string final_filename = basefilename; int counter = 1; while ( PathInfo(dir + final_filename).isExist() ) { final_filename = basefilename + "_" + str::numstring(counter); ++counter; } return dir + Pathname(final_filename); } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::init_knownServices() { Pathname dir = _options.knownServicesPath; std::list entries; if (PathInfo(dir).isExist()) { if ( filesystem::readdir( entries, dir, false ) != 0 ) { // TranslatorExplanation '%s' is a pathname ZYPP_THROW(Exception(str::form(_("Failed to read directory '%s'"), dir.c_str()))); } //str::regex allowedServiceExt("^\\.service(_[0-9]+)?$"); for_(it, entries.begin(), entries.end() ) { parser::ServiceFileReader(*it, ServiceCollector(_services)); } } repo::PluginServices(_options.pluginsPath/"services", ServiceCollector(_services)); } /////////////////////////////////////////////////////////////////// namespace { /** Delete \a cachePath_r subdirs not matching known aliases in \a repoEscAliases_r (must be sorted!) * \note bnc#891515: Auto-cleanup only zypp.conf default locations. Otherwise * we'd need some magic file to identify zypp cache directories. Without this * we may easily remove user data (zypper --pkg-cache-dir . download ...) */ inline void cleanupNonRepoMetadtaFolders( const Pathname & cachePath_r, const Pathname & defaultCachePath_r, const std::list & repoEscAliases_r ) { if ( cachePath_r != defaultCachePath_r ) return; std::list entries; if ( filesystem::readdir( entries, cachePath_r, false ) == 0 ) { entries.sort(); std::set oldfiles; set_difference( entries.begin(), entries.end(), repoEscAliases_r.begin(), repoEscAliases_r.end(), std::inserter( oldfiles, oldfiles.end() ) ); for ( const std::string & old : oldfiles ) { if ( old == Repository::systemRepoAlias() ) // don't remove the @System solv file continue; filesystem::recursive_rmdir( cachePath_r / old ); } } } } // namespace /////////////////////////////////////////////////////////////////// void RepoManager::Impl::init_knownRepositories() { MIL << "start construct known repos" << endl; if ( PathInfo(_options.knownReposPath).isExist() ) { std::list repoEscAliases; std::list orphanedRepos; for ( RepoInfo & repoInfo : repositories_in_dir(_options.knownReposPath) ) { // set the metadata path for the repo repoInfo.setMetadataPath( rawcache_path_for_repoinfo(_options, repoInfo) ); // set the downloaded packages path for the repo repoInfo.setPackagesPath( packagescache_path_for_repoinfo(_options, repoInfo) ); // remember it _reposX.insert( repoInfo ); // direct access via _reposX in ctor! no reposManip. // detect orphaned repos belonging to a deleted service const std::string & serviceAlias( repoInfo.service() ); if ( ! ( serviceAlias.empty() || hasService( serviceAlias ) ) ) { WAR << "Schedule orphaned service repo for deletion: " << repoInfo << endl; orphanedRepos.push_back( repoInfo ); continue; // don't remember it in repoEscAliases } repoEscAliases.push_back(repoInfo.escaped_alias()); } // Cleanup orphanded service repos: if ( ! orphanedRepos.empty() ) { for ( const auto & repoInfo : orphanedRepos ) { MIL << "Delete orphaned service repo " << repoInfo.alias() << endl; // translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service. // %1% = service name // %2% = repository name JobReport::warning( str::Format(_("Unknown service '%1%': Removing orphaned service repository '%2%'")) % repoInfo.service() % repoInfo.alias() ); try { removeRepository( repoInfo ); } catch ( const Exception & caugth ) { JobReport::error( caugth.asUserHistory() ); } } } // delete metadata folders without corresponding repo (e.g. old tmp directories) // // bnc#891515: Auto-cleanup only zypp.conf default locations. Otherwise // we'd need somemagic file to identify zypp cache directories. Without this // we may easily remove user data (zypper --pkg-cache-dir . download ...) repoEscAliases.sort(); RepoManagerOptions defaultCache( _options.rootDir ); cleanupNonRepoMetadtaFolders( _options.repoRawCachePath, defaultCache.repoRawCachePath, repoEscAliases ); cleanupNonRepoMetadtaFolders( _options.repoSolvCachePath, defaultCache.repoSolvCachePath, repoEscAliases ); cleanupNonRepoMetadtaFolders( _options.repoPackagesCachePath, defaultCache.repoPackagesCachePath, repoEscAliases ); } MIL << "end construct known repos" << endl; } /////////////////////////////////////////////////////////////////// RepoStatus RepoManager::Impl::metadataStatus( const RepoInfo & info ) const { Pathname mediarootpath = rawcache_path_for_repoinfo( _options, info ); Pathname productdatapath = rawproductdata_path_for_repoinfo( _options, info ); RepoType repokind = info.type(); // If unknown, probe the local metadata if ( repokind == RepoType::NONE ) repokind = probeCache( productdatapath ); RepoStatus status; switch ( repokind.toEnum() ) { case RepoType::RPMMD_e : status = RepoStatus( productdatapath/"repodata/repomd.xml") && RepoStatus( mediarootpath/"media.1/media" ); break; case RepoType::YAST2_e : status = RepoStatus( productdatapath/"content" ) && RepoStatus( mediarootpath/"media.1/media" ); break; case RepoType::RPMPLAINDIR_e : status = RepoStatus::fromCookieFile( productdatapath/"cookie" ); break; case RepoType::NONE_e : // Return default RepoStatus in case of RepoType::NONE // indicating it should be created? // ZYPP_THROW(RepoUnknownTypeException()); break; } return status; } void RepoManager::Impl::touchIndexFile( const RepoInfo & info ) { Pathname productdatapath = rawproductdata_path_for_repoinfo( _options, info ); RepoType repokind = info.type(); if ( repokind.toEnum() == RepoType::NONE_e ) // unknown, probe the local metadata repokind = probeCache( productdatapath ); // if still unknown, just return if (repokind == RepoType::NONE_e) return; Pathname p; switch ( repokind.toEnum() ) { case RepoType::RPMMD_e : p = Pathname(productdatapath + "/repodata/repomd.xml"); break; case RepoType::YAST2_e : p = Pathname(productdatapath + "/content"); break; case RepoType::RPMPLAINDIR_e : p = Pathname(productdatapath + "/cookie"); break; case RepoType::NONE_e : default: break; } // touch the file, ignore error (they are logged anyway) filesystem::touch(p); } RepoManager::RefreshCheckStatus RepoManager::Impl::checkIfToRefreshMetadata( const RepoInfo & info, const Url & url, RawMetadataRefreshPolicy policy ) { assert_alias(info); try { MIL << "Going to try to check whether refresh is needed for " << url << " (" << info.type() << ")" << endl; // first check old (cached) metadata Pathname mediarootpath = rawcache_path_for_repoinfo( _options, info ); filesystem::assert_dir( mediarootpath ); RepoStatus oldstatus = metadataStatus( info ); if ( oldstatus.empty() ) { MIL << "No cached metadata, going to refresh" << endl; return REFRESH_NEEDED; } if ( url.schemeIsVolatile() ) { MIL << "Never refresh CD/DVD" << endl; return REPO_UP_TO_DATE; } if ( policy == RefreshForced ) { MIL << "Forced refresh!" << endl; return REFRESH_NEEDED; } if ( url.schemeIsLocal() ) { policy = RefreshIfNeededIgnoreDelay; } // now we've got the old (cached) status, we can decide repo.refresh.delay if ( policy != RefreshIfNeededIgnoreDelay ) { // difference in seconds double diff = difftime( (Date::ValueType)Date::now(), (Date::ValueType)oldstatus.timestamp()) / 60; DBG << "oldstatus: " << (Date::ValueType)oldstatus.timestamp() << endl; DBG << "current time: " << (Date::ValueType)Date::now() << endl; DBG << "last refresh = " << diff << " minutes ago" << endl; if ( diff < ZConfig::instance().repo_refresh_delay() ) { if ( diff < 0 ) { WAR << "Repository '" << info.alias() << "' was refreshed in the future!" << endl; } else { MIL << "Repository '" << info.alias() << "' has been refreshed less than repo.refresh.delay (" << ZConfig::instance().repo_refresh_delay() << ") minutes ago. Advising to skip refresh" << endl; return REPO_CHECK_DELAYED; } } } repo::RepoType repokind = info.type(); // if unknown: probe it if ( repokind == RepoType::NONE ) repokind = probe( url, info.path() ); // retrieve newstatus RepoStatus newstatus; switch ( repokind.toEnum() ) { case RepoType::RPMMD_e: { MediaSetAccess media( url ); newstatus = yum::Downloader( info, mediarootpath ).status( media ); } break; case RepoType::YAST2_e: { MediaSetAccess media( url ); newstatus = susetags::Downloader( info, mediarootpath ).status( media ); } break; case RepoType::RPMPLAINDIR_e: newstatus = RepoStatus( MediaMounter(url).getPathName(info.path()) ); // dir status break; default: case RepoType::NONE_e: ZYPP_THROW( RepoUnknownTypeException( info ) ); break; } // check status if ( oldstatus == newstatus ) { MIL << "repo has not changed" << endl; touchIndexFile( info ); return REPO_UP_TO_DATE; } else // includes newstatus.empty() if e.g. repo format changed { MIL << "repo has changed, going to refresh" << endl; return REFRESH_NEEDED; } } catch ( const Exception &e ) { ZYPP_CAUGHT(e); ERR << "refresh check failed for " << url << endl; ZYPP_RETHROW(e); } return REFRESH_NEEDED; // default } void RepoManager::Impl::refreshMetadata( const RepoInfo & info, RawMetadataRefreshPolicy policy, const ProgressData::ReceiverFnc & progress ) { assert_alias(info); assert_urls(info); // we will throw this later if no URL checks out fine RepoException rexception( info, PL_("Valid metadata not found at specified URL", "Valid metadata not found at specified URLs", info.baseUrlsSize() ) ); // Suppress (interactive) media::MediaChangeReport if we in have multiple basurls (>1) media::ScopedDisableMediaChangeReport guard( info.baseUrlsSize() > 1 ); // try urls one by one for ( RepoInfo::urls_const_iterator it = info.baseUrlsBegin(); it != info.baseUrlsEnd(); ++it ) { try { Url url(*it); // check whether to refresh metadata // if the check fails for this url, it throws, so another url will be checked if (checkIfToRefreshMetadata(info, url, policy)!=REFRESH_NEEDED) return; MIL << "Going to refresh metadata from " << url << endl; // bsc#1048315: Always re-probe in case of repo format change. // TODO: Would be sufficient to verify the type and re-probe // if verification failed (or type is RepoType::NONE) repo::RepoType repokind = info.type(); { repo::RepoType probed = probe( *it, info.path() ); if ( repokind != probed ) { repokind = probed; // Adjust the probed type in RepoInfo info.setProbedType( repokind ); // lazy init! //save probed type only for repos in system for_( it, repoBegin(), repoEnd() ) { if ( info.alias() == (*it).alias() ) { RepoInfo modifiedrepo = info; modifiedrepo.setType( repokind ); modifyRepository( info.alias(), modifiedrepo ); break; } } } } Pathname mediarootpath = rawcache_path_for_repoinfo( _options, info ); if( filesystem::assert_dir(mediarootpath) ) { Exception ex(str::form( _("Can't create %s"), mediarootpath.c_str()) ); ZYPP_THROW(ex); } // create temp dir as sibling of mediarootpath filesystem::TmpDir tmpdir( filesystem::TmpDir::makeSibling( mediarootpath ) ); if( tmpdir.path().empty() ) { Exception ex(_("Can't create metadata cache directory.")); ZYPP_THROW(ex); } if ( ( repokind.toEnum() == RepoType::RPMMD_e ) || ( repokind.toEnum() == RepoType::YAST2_e ) ) { MediaSetAccess media(url); shared_ptr downloader_ptr; MIL << "Creating downloader for [ " << info.alias() << " ]" << endl; if ( repokind.toEnum() == RepoType::RPMMD_e ) downloader_ptr.reset(new yum::Downloader(info, mediarootpath)); else downloader_ptr.reset( new susetags::Downloader(info, mediarootpath) ); /** * Given a downloader, sets the other repos raw metadata * path as cache paths for the fetcher, so if another * repo has the same file, it will not download it * but copy it from the other repository */ for_( it, repoBegin(), repoEnd() ) { Pathname cachepath(rawcache_path_for_repoinfo( _options, *it )); if ( PathInfo(cachepath).isExist() ) downloader_ptr->addCachePath(cachepath); } downloader_ptr->download( media, tmpdir.path() ); } else if ( repokind.toEnum() == RepoType::RPMPLAINDIR_e ) { MediaMounter media( url ); RepoStatus newstatus = RepoStatus( media.getPathName( info.path() ) ); // dir status Pathname productpath( tmpdir.path() / info.path() ); filesystem::assert_dir( productpath ); newstatus.saveToCookieFile( productpath/"cookie" ); } else { ZYPP_THROW(RepoUnknownTypeException( info )); } // ok we have the metadata, now exchange // the contents filesystem::exchange( tmpdir.path(), mediarootpath ); if ( ! isTmpRepo( info ) ) reposManip(); // remember to trigger appdata refresh // we are done. return; } catch ( const Exception &e ) { ZYPP_CAUGHT(e); ERR << "Trying another url..." << endl; // remember the exception caught for the *first URL* // if all other URLs fail, the rexception will be thrown with the // cause of the problem of the first URL remembered if (it == info.baseUrlsBegin()) rexception.remember(e); else rexception.addHistory( e.asUserString() ); } } // for every url ERR << "No more urls..." << endl; ZYPP_THROW(rexception); } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::cleanMetadata( const RepoInfo & info, const ProgressData::ReceiverFnc & progressfnc ) { ProgressData progress(100); progress.sendTo(progressfnc); filesystem::recursive_rmdir(rawcache_path_for_repoinfo(_options, info)); progress.toMax(); } void RepoManager::Impl::cleanPackages( const RepoInfo & info, const ProgressData::ReceiverFnc & progressfnc ) { ProgressData progress(100); progress.sendTo(progressfnc); filesystem::recursive_rmdir(packagescache_path_for_repoinfo(_options, info)); progress.toMax(); } void RepoManager::Impl::buildCache( const RepoInfo & info, CacheBuildPolicy policy, const ProgressData::ReceiverFnc & progressrcv ) { assert_alias(info); Pathname mediarootpath = rawcache_path_for_repoinfo( _options, info ); Pathname productdatapath = rawproductdata_path_for_repoinfo( _options, info ); if( filesystem::assert_dir(_options.repoCachePath) ) { Exception ex(str::form( _("Can't create %s"), _options.repoCachePath.c_str()) ); ZYPP_THROW(ex); } RepoStatus raw_metadata_status = metadataStatus(info); if ( raw_metadata_status.empty() ) { /* if there is no cache at this point, we refresh the raw in case this is the first time - if it's !autorefresh, we may still refresh */ refreshMetadata(info, RefreshIfNeeded, progressrcv ); raw_metadata_status = metadataStatus(info); } bool needs_cleaning = false; if ( isCached( info ) ) { MIL << info.alias() << " is already cached." << endl; RepoStatus cache_status = cacheStatus(info); if ( cache_status == raw_metadata_status ) { MIL << info.alias() << " cache is up to date with metadata." << endl; if ( policy == BuildIfNeeded ) { // On the fly add missing solv.idx files for bash completion. const Pathname & base = solv_path_for_repoinfo( _options, info); if ( ! PathInfo(base/"solv.idx").isExist() ) sat::updateSolvFileIndex( base/"solv" ); return; } else { MIL << info.alias() << " cache rebuild is forced" << endl; } } needs_cleaning = true; } ProgressData progress(100); callback::SendReport report; progress.sendTo( ProgressReportAdaptor( progressrcv, report ) ); progress.name(str::form(_("Building repository '%s' cache"), info.label().c_str())); progress.toMin(); if (needs_cleaning) { cleanCache(info); } MIL << info.alias() << " building cache..." << info.type() << endl; Pathname base = solv_path_for_repoinfo( _options, info); if( filesystem::assert_dir(base) ) { Exception ex(str::form( _("Can't create %s"), base.c_str()) ); ZYPP_THROW(ex); } if( ! PathInfo(base).userMayW() ) { Exception ex(str::form( _("Can't create cache at %s - no writing permissions."), base.c_str()) ); ZYPP_THROW(ex); } Pathname solvfile = base / "solv"; // do we have type? repo::RepoType repokind = info.type(); // if the type is unknown, try probing. switch ( repokind.toEnum() ) { case RepoType::NONE_e: // unknown, probe the local metadata repokind = probeCache( productdatapath ); break; default: break; } MIL << "repo type is " << repokind << endl; switch ( repokind.toEnum() ) { case RepoType::RPMMD_e : case RepoType::YAST2_e : case RepoType::RPMPLAINDIR_e : { // Take care we unlink the solvfile on exception ManagedFile guard( solvfile, filesystem::unlink ); scoped_ptr forPlainDirs; ExternalProgram::Arguments cmd; cmd.push_back( PathInfo( "/usr/bin/repo2solv" ).isFile() ? "repo2solv" : "repo2solv.sh" ); // repo2solv expects -o as 1st arg! cmd.push_back( "-o" ); cmd.push_back( solvfile.asString() ); cmd.push_back( "-X" ); // autogenerate pattern from pattern-package // bsc#1104415: no more application support // cmd.push_back( "-A" ); // autogenerate application pseudo packages if ( repokind == RepoType::RPMPLAINDIR ) { forPlainDirs.reset( new MediaMounter( info.url() ) ); // recusive for plaindir as 2nd arg! cmd.push_back( "-R" ); // FIXME this does only work form dir: URLs cmd.push_back( forPlainDirs->getPathName( info.path() ).c_str() ); } else cmd.push_back( productdatapath.asString() ); ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout ); std::string errdetail; for ( std::string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) { WAR << " " << output; if ( errdetail.empty() ) { errdetail = prog.command(); errdetail += '\n'; } errdetail += output; } int ret = prog.close(); if ( ret != 0 ) { RepoException ex(str::form( _("Failed to cache repo (%d)."), ret )); ex.remember( errdetail ); ZYPP_THROW(ex); } // We keep it. guard.resetDispose(); sat::updateSolvFileIndex( solvfile ); // content digest for zypper bash completion } break; default: ZYPP_THROW(RepoUnknownTypeException( info, _("Unhandled repository type") )); break; } // update timestamp and checksum setCacheStatus(info, raw_metadata_status); MIL << "Commit cache.." << endl; progress.toMax(); } //////////////////////////////////////////////////////////////////////////// /** Probe the metadata type of a repository located at \c url. * Urls here may be rewritten by \ref MediaSetAccess to reflect the correct media number. * * \note Metadata in local cache directories must be probed using \ref probeCache as * a cache path must not be rewritten (bnc#946129) */ repo::RepoType RepoManager::Impl::probe( const Url & url, const Pathname & path ) const { MIL << "going to probe the repo type at " << url << " (" << path << ")" << endl; if ( url.getScheme() == "dir" && ! PathInfo( url.getPathName()/path ).isDir() ) { // Handle non existing local directory in advance, as // MediaSetAccess does not support it. MIL << "Probed type NONE (not exists) at " << url << " (" << path << ")" << endl; return repo::RepoType::NONE; } // prepare exception to be thrown if the type could not be determined // due to a media exception. We can't throw right away, because of some // problems with proxy servers returning an incorrect error // on ftp file-not-found(bnc #335906). Instead we'll check another types // before throwing. // TranslatorExplanation '%s' is an URL RepoException enew(str::form( _("Error trying to read from '%s'"), url.asString().c_str() )); bool gotMediaException = false; try { MediaSetAccess access(url); try { if ( access.doesFileExist(path/"/repodata/repomd.xml") ) { MIL << "Probed type RPMMD at " << url << " (" << path << ")" << endl; return repo::RepoType::RPMMD; } } catch ( const media::MediaException &e ) { ZYPP_CAUGHT(e); DBG << "problem checking for repodata/repomd.xml file" << endl; enew.remember(e); gotMediaException = true; } try { if ( access.doesFileExist(path/"/content") ) { MIL << "Probed type YAST2 at " << url << " (" << path << ")" << endl; return repo::RepoType::YAST2; } } catch ( const media::MediaException &e ) { ZYPP_CAUGHT(e); DBG << "problem checking for content file" << endl; enew.remember(e); gotMediaException = true; } // if it is a non-downloading URL denoting a directory if ( ! url.schemeIsDownloading() ) { MediaMounter media( url ); if ( PathInfo(media.getPathName()/path).isDir() ) { // allow empty dirs for now MIL << "Probed type RPMPLAINDIR at " << url << " (" << path << ")" << endl; return repo::RepoType::RPMPLAINDIR; } } } catch ( const Exception &e ) { ZYPP_CAUGHT(e); // TranslatorExplanation '%s' is an URL Exception enew(str::form( _("Unknown error reading from '%s'"), url.asString().c_str() )); enew.remember(e); ZYPP_THROW(enew); } if (gotMediaException) ZYPP_THROW(enew); MIL << "Probed type NONE at " << url << " (" << path << ")" << endl; return repo::RepoType::NONE; } /** Probe Metadata in a local cache directory * * \note Metadata in local cache directories must not be probed using \ref probe as * a cache path must not be rewritten (bnc#946129) */ repo::RepoType RepoManager::Impl::probeCache( const Pathname & path_r ) const { MIL << "going to probe the cached repo at " << path_r << endl; repo::RepoType ret = repo::RepoType::NONE; if ( PathInfo(path_r/"/repodata/repomd.xml").isFile() ) { ret = repo::RepoType::RPMMD; } else if ( PathInfo(path_r/"/content").isFile() ) { ret = repo::RepoType::YAST2; } else if ( PathInfo(path_r).isDir() ) { ret = repo::RepoType::RPMPLAINDIR; } MIL << "Probed cached type " << ret << " at " << path_r << endl; return ret; } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::cleanCacheDirGarbage( const ProgressData::ReceiverFnc & progressrcv ) { MIL << "Going to clean up garbage in cache dirs" << endl; ProgressData progress(300); progress.sendTo(progressrcv); progress.toMin(); std::list cachedirs; cachedirs.push_back(_options.repoRawCachePath); cachedirs.push_back(_options.repoPackagesCachePath); cachedirs.push_back(_options.repoSolvCachePath); for_( dir, cachedirs.begin(), cachedirs.end() ) { if ( PathInfo(*dir).isExist() ) { std::list entries; if ( filesystem::readdir( entries, *dir, false ) != 0 ) // TranslatorExplanation '%s' is a pathname ZYPP_THROW(Exception(str::form(_("Failed to read directory '%s'"), dir->c_str()))); unsigned sdircount = entries.size(); unsigned sdircurrent = 1; for_( subdir, entries.begin(), entries.end() ) { // if it does not belong known repo, make it disappear bool found = false; for_( r, repoBegin(), repoEnd() ) if ( subdir->basename() == r->escaped_alias() ) { found = true; break; } if ( ! found && ( Date::now()-PathInfo(*subdir).mtime() > Date::day ) ) filesystem::recursive_rmdir( *subdir ); progress.set( progress.val() + sdircurrent * 100 / sdircount ); ++sdircurrent; } } else progress.set( progress.val() + 100 ); } progress.toMax(); } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::cleanCache( const RepoInfo & info, const ProgressData::ReceiverFnc & progressrcv ) { ProgressData progress(100); progress.sendTo(progressrcv); progress.toMin(); MIL << "Removing raw metadata cache for " << info.alias() << endl; filesystem::recursive_rmdir(solv_path_for_repoinfo(_options, info)); progress.toMax(); } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::loadFromCache( const RepoInfo & info, const ProgressData::ReceiverFnc & progressrcv ) { assert_alias(info); Pathname solvfile = solv_path_for_repoinfo(_options, info) / "solv"; if ( ! PathInfo(solvfile).isExist() ) ZYPP_THROW(RepoNotCachedException(info)); sat::Pool::instance().reposErase( info.alias() ); try { Repository repo = sat::Pool::instance().addRepoSolv( solvfile, info ); // test toolversion in order to rebuild solv file in case // it was written by a different libsolv-tool parser. const std::string & toolversion( sat::LookupRepoAttr( sat::SolvAttr::repositoryToolVersion, repo ).begin().asString() ); if ( toolversion != LIBSOLV_TOOLVERSION ) { repo.eraseFromPool(); ZYPP_THROW(Exception(str::Str() << "Solv-file was created by '"< report; progress.sendTo( ProgressReportAdaptor( progressrcv, report ) ); progress.name(str::form(_("Adding repository '%s'"), info.label().c_str())); progress.toMin(); MIL << "Try adding repo " << info << endl; RepoInfo tosave = info; if ( repos().find(tosave) != repos().end() ) ZYPP_THROW(RepoAlreadyExistsException(info)); // check the first url for now if ( _options.probe ) { DBG << "unknown repository type, probing" << endl; assert_urls(tosave); RepoType probedtype( probe( tosave.url(), info.path() ) ); if ( probedtype == RepoType::NONE ) ZYPP_THROW(RepoUnknownTypeException(info)); else tosave.setType(probedtype); } progress.set(50); // assert the directory exists filesystem::assert_dir(_options.knownReposPath); Pathname repofile = generateNonExistingName( _options.knownReposPath, generateFilename(tosave)); // now we have a filename that does not exists MIL << "Saving repo in " << repofile << endl; std::ofstream file(repofile.c_str()); if (!file) { // TranslatorExplanation '%s' is a filename ZYPP_THROW( Exception(str::form( _("Can't open file '%s' for writing."), repofile.c_str() ))); } tosave.dumpAsIniOn(file); tosave.setFilepath(repofile); tosave.setMetadataPath( rawcache_path_for_repoinfo( _options, tosave ) ); tosave.setPackagesPath( packagescache_path_for_repoinfo( _options, tosave ) ); { // We should fix the API as we must inject those paths // into the repoinfo in order to keep it usable. RepoInfo & oinfo( const_cast(info) ); oinfo.setFilepath(repofile); oinfo.setMetadataPath( rawcache_path_for_repoinfo( _options, tosave ) ); oinfo.setPackagesPath( packagescache_path_for_repoinfo( _options, tosave ) ); } reposManip().insert(tosave); progress.set(90); // check for credentials in Urls UrlCredentialExtractor( _options.rootDir ).collect( tosave.baseUrls() ); HistoryLog(_options.rootDir).addRepository(tosave); progress.toMax(); MIL << "done" << endl; } void RepoManager::Impl::addRepositories( const Url & url, const ProgressData::ReceiverFnc & progressrcv ) { std::list repos = readRepoFile(url); for ( std::list::const_iterator it = repos.begin(); it != repos.end(); ++it ) { // look if the alias is in the known repos. for_ ( kit, repoBegin(), repoEnd() ) { if ( (*it).alias() == (*kit).alias() ) { ERR << "To be added repo " << (*it).alias() << " conflicts with existing repo " << (*kit).alias() << endl; ZYPP_THROW(RepoAlreadyExistsException(*it)); } } } std::string filename = Pathname(url.getPathName()).basename(); if ( filename == Pathname() ) { // TranslatorExplanation '%s' is an URL ZYPP_THROW(RepoException(str::form( _("Invalid repo file name at '%s'"), url.asString().c_str() ))); } // assert the directory exists filesystem::assert_dir(_options.knownReposPath); Pathname repofile = generateNonExistingName(_options.knownReposPath, filename); // now we have a filename that does not exists MIL << "Saving " << repos.size() << " repo" << ( repos.size() ? "s" : "" ) << " in " << repofile << endl; std::ofstream file(repofile.c_str()); if (!file) { // TranslatorExplanation '%s' is a filename ZYPP_THROW( Exception(str::form( _("Can't open file '%s' for writing."), repofile.c_str() ))); } for ( std::list::iterator it = repos.begin(); it != repos.end(); ++it ) { MIL << "Saving " << (*it).alias() << endl; it->dumpAsIniOn(file); it->setFilepath(repofile); it->setMetadataPath( rawcache_path_for_repoinfo( _options, *it ) ); it->setPackagesPath( packagescache_path_for_repoinfo( _options, *it ) ); reposManip().insert(*it); HistoryLog(_options.rootDir).addRepository(*it); } MIL << "done" << endl; } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::removeRepository( const RepoInfo & info, const ProgressData::ReceiverFnc & progressrcv ) { ProgressData progress; callback::SendReport report; progress.sendTo( ProgressReportAdaptor( progressrcv, report ) ); progress.name(str::form(_("Removing repository '%s'"), info.label().c_str())); MIL << "Going to delete repo " << info.alias() << endl; for_( it, repoBegin(), repoEnd() ) { // they can be the same only if the provided is empty, that means // the provided repo has no alias // then skip if ( (!info.alias().empty()) && ( info.alias() != (*it).alias() ) ) continue; // TODO match by url // we have a matcing repository, now we need to know // where it does come from. RepoInfo todelete = *it; if (todelete.filepath().empty()) { ZYPP_THROW(RepoException( todelete, _("Can't figure out where the repo is stored.") )); } else { // figure how many repos are there in the file: std::list filerepos = repositories_in_file(todelete.filepath()); if ( filerepos.size() == 0 // bsc#984494: file may have already been deleted ||(filerepos.size() == 1 && filerepos.front().alias() == todelete.alias() ) ) { // easy: file does not exist, contains no or only the repo to delete: delete the file int ret = filesystem::unlink( todelete.filepath() ); if ( ! ( ret == 0 || ret == ENOENT ) ) { // TranslatorExplanation '%s' is a filename ZYPP_THROW(RepoException( todelete, str::form( _("Can't delete '%s'"), todelete.filepath().c_str() ))); } MIL << todelete.alias() << " successfully deleted." << endl; } else { // there are more repos in the same file // write them back except the deleted one. //TmpFile tmp; //std::ofstream file(tmp.path().c_str()); // assert the directory exists filesystem::assert_dir(todelete.filepath().dirname()); std::ofstream file(todelete.filepath().c_str()); if (!file) { // TranslatorExplanation '%s' is a filename ZYPP_THROW( Exception(str::form( _("Can't open file '%s' for writing."), todelete.filepath().c_str() ))); } for ( std::list::const_iterator fit = filerepos.begin(); fit != filerepos.end(); ++fit ) { if ( (*fit).alias() != todelete.alias() ) (*fit).dumpAsIniOn(file); } } CombinedProgressData cSubprogrcv(progress, 20); CombinedProgressData mSubprogrcv(progress, 40); CombinedProgressData pSubprogrcv(progress, 40); // now delete it from cache if ( isCached(todelete) ) cleanCache( todelete, cSubprogrcv); // now delete metadata (#301037) cleanMetadata( todelete, mSubprogrcv ); cleanPackages( todelete, pSubprogrcv ); reposManip().erase(todelete); MIL << todelete.alias() << " successfully deleted." << endl; HistoryLog(_options.rootDir).removeRepository(todelete); return; } // else filepath is empty } // should not be reached on a sucess workflow ZYPP_THROW(RepoNotFoundException(info)); } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::modifyRepository( const std::string & alias, const RepoInfo & newinfo_r, const ProgressData::ReceiverFnc & progressrcv ) { RepoInfo toedit = getRepositoryInfo(alias); RepoInfo newinfo( newinfo_r ); // need writable copy to upadte housekeeping data // check if the new alias already exists when renaming the repo if ( alias != newinfo.alias() && hasRepo( newinfo.alias() ) ) { ZYPP_THROW(RepoAlreadyExistsException(newinfo)); } if (toedit.filepath().empty()) { ZYPP_THROW(RepoException( toedit, _("Can't figure out where the repo is stored.") )); } else { // figure how many repos are there in the file: std::list filerepos = repositories_in_file(toedit.filepath()); // there are more repos in the same file // write them back except the deleted one. //TmpFile tmp; //std::ofstream file(tmp.path().c_str()); // assert the directory exists filesystem::assert_dir(toedit.filepath().dirname()); std::ofstream file(toedit.filepath().c_str()); if (!file) { // TranslatorExplanation '%s' is a filename ZYPP_THROW( Exception(str::form( _("Can't open file '%s' for writing."), toedit.filepath().c_str() ))); } for ( std::list::const_iterator fit = filerepos.begin(); fit != filerepos.end(); ++fit ) { // if the alias is different, dump the original // if it is the same, dump the provided one if ( (*fit).alias() != toedit.alias() ) (*fit).dumpAsIniOn(file); else newinfo.dumpAsIniOn(file); } if ( toedit.enabled() && !newinfo.enabled() ) { // On the fly remove solv.idx files for bash completion if a repo gets disabled. const Pathname & solvidx = solv_path_for_repoinfo(_options, newinfo)/"solv.idx"; if ( PathInfo(solvidx).isExist() ) filesystem::unlink( solvidx ); } newinfo.setFilepath(toedit.filepath()); newinfo.setMetadataPath( rawcache_path_for_repoinfo( _options, newinfo ) ); newinfo.setPackagesPath( packagescache_path_for_repoinfo( _options, newinfo ) ); { // We should fix the API as we must inject those paths // into the repoinfo in order to keep it usable. RepoInfo & oinfo( const_cast(newinfo_r) ); oinfo.setFilepath(toedit.filepath()); oinfo.setMetadataPath( rawcache_path_for_repoinfo( _options, newinfo ) ); oinfo.setPackagesPath( packagescache_path_for_repoinfo( _options, newinfo ) ); } reposManip().erase(toedit); reposManip().insert(newinfo); // check for credentials in Urls UrlCredentialExtractor( _options.rootDir ).collect( newinfo.baseUrls() ); HistoryLog(_options.rootDir).modifyRepository(toedit, newinfo); MIL << "repo " << alias << " modified" << endl; } } //////////////////////////////////////////////////////////////////////////// RepoInfo RepoManager::Impl::getRepositoryInfo( const std::string & alias, const ProgressData::ReceiverFnc & progressrcv ) { RepoConstIterator it( findAlias( alias, repos() ) ); if ( it != repos().end() ) return *it; RepoInfo info; info.setAlias( alias ); ZYPP_THROW( RepoNotFoundException(info) ); } RepoInfo RepoManager::Impl::getRepositoryInfo( const Url & url, const url::ViewOption & urlview, const ProgressData::ReceiverFnc & progressrcv ) { for_( it, repoBegin(), repoEnd() ) { for_( urlit, (*it).baseUrlsBegin(), (*it).baseUrlsEnd() ) { if ( (*urlit).asString(urlview) == url.asString(urlview) ) return *it; } } RepoInfo info; info.setBaseUrl( url ); ZYPP_THROW( RepoNotFoundException(info) ); } //////////////////////////////////////////////////////////////////////////// // // Services // //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::addService( const ServiceInfo & service ) { assert_alias( service ); // check if service already exists if ( hasService( service.alias() ) ) ZYPP_THROW( ServiceAlreadyExistsException( service ) ); // Writable ServiceInfo is needed to save the location // of the .service file. Finaly insert into the service list. ServiceInfo toSave( service ); saveService( toSave ); _services.insert( toSave ); // check for credentials in Url UrlCredentialExtractor( _options.rootDir ).collect( toSave.url() ); MIL << "added service " << toSave.alias() << endl; } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::removeService( const std::string & alias ) { MIL << "Going to delete service " << alias << endl; const ServiceInfo & service = getService( alias ); Pathname location = service.filepath(); if( location.empty() ) { ZYPP_THROW(ServiceException( service, _("Can't figure out where the service is stored.") )); } ServiceSet tmpSet; parser::ServiceFileReader( location, ServiceCollector(tmpSet) ); // only one service definition in the file if ( tmpSet.size() == 1 ) { if ( filesystem::unlink(location) != 0 ) { // TranslatorExplanation '%s' is a filename ZYPP_THROW(ServiceException( service, str::form( _("Can't delete '%s'"), location.c_str() ) )); } MIL << alias << " successfully deleted." << endl; } else { filesystem::assert_dir(location.dirname()); std::ofstream file(location.c_str()); if( !file ) { // TranslatorExplanation '%s' is a filename ZYPP_THROW( Exception(str::form( _("Can't open file '%s' for writing."), location.c_str() ))); } for_(it, tmpSet.begin(), tmpSet.end()) { if( it->alias() != alias ) it->dumpAsIniOn(file); } MIL << alias << " successfully deleted from file " << location << endl; } // now remove all repositories added by this service RepoCollector rcollector; getRepositoriesInService( alias, boost::make_function_output_iterator( bind( &RepoCollector::collect, &rcollector, _1 ) ) ); // cannot do this directly in getRepositoriesInService - would invalidate iterators for_(rit, rcollector.repos.begin(), rcollector.repos.end()) removeRepository(*rit); } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::refreshServices( const RefreshServiceOptions & options_r ) { // copy the set of services since refreshService // can eventually invalidate the iterator ServiceSet services( serviceBegin(), serviceEnd() ); for_( it, services.begin(), services.end() ) { if ( !it->enabled() ) continue; try { refreshService(*it, options_r); } catch ( const repo::ServicePluginInformalException & e ) { ;/* ignore ServicePluginInformalException */ } } } void RepoManager::Impl::refreshService( const std::string & alias, const RefreshServiceOptions & options_r ) { ServiceInfo service( getService( alias ) ); assert_alias( service ); assert_url( service ); MIL << "Going to refresh service '" << service.alias() << "', url: " << service.url() << ", opts: " << options_r << endl; if ( service.ttl() && !( options_r.testFlag( RefreshService_forceRefresh) || options_r.testFlag( RefreshService_restoreStatus ) ) ) { // Service defines a TTL; maybe we can re-use existing data without refresh. Date lrf = service.lrf(); if ( lrf ) { Date now( Date::now() ); if ( lrf <= now ) { if ( (lrf+=service.ttl()) > now ) // lrf+= ! { MIL << "Skip: '" << service.alias() << "' metadata valid until " << lrf << endl; return; } } else WAR << "Force: '" << service.alias() << "' metadata last refresh in the future: " << lrf << endl; } } // NOTE: It might be necessary to modify and rewrite the service info. // Either when probing the type, or when adjusting the repositories // enable/disable state.: bool serviceModified = false; //! \todo add callbacks for apps (start, end, repo removed, repo added, repo changed)? // if the type is unknown, try probing. if ( service.type() == repo::ServiceType::NONE ) { repo::ServiceType type = probeService( service.url() ); if ( type != ServiceType::NONE ) { service.setProbedType( type ); // lazy init! serviceModified = true; } } // get target distro identifier std::string servicesTargetDistro = _options.servicesTargetDistro; if ( servicesTargetDistro.empty() ) { servicesTargetDistro = Target::targetDistribution( Pathname() ); } DBG << "ServicesTargetDistro: " << servicesTargetDistro << endl; // parse it Date::Duration origTtl = service.ttl(); // FIXME Ugly hack: const service.ttl modified when parsing RepoCollector collector(servicesTargetDistro); // FIXME Ugly hack: ServiceRepos may throw ServicePluginInformalException // which is actually a notification. Using an exception for this // instead of signal/callback is bad. Needs to be fixed here, in refreshServices() // and in zypper. std::pair, repo::ServicePluginInformalException> uglyHack; try { // FIXME bsc#1080693: Shortcoming of (plugin)services (and repos as well) is that they // are not aware of the RepoManagers rootDir. The service url, as created in known_services, // contains the full path to the script. The script however has to be executed chrooted. // Repos would need to know the RepoMangers rootDir to use the correct vars.d to replace // repos variables. Until RepoInfoBase is aware if the rootDir, we need to explicitly pass it // to ServiceRepos. ServiceRepos( _options.rootDir, service, bind( &RepoCollector::collect, &collector, _1 ) ); } catch ( const repo::ServicePluginInformalException & e ) { /* ignore ServicePluginInformalException and throw later */ uglyHack.first = true; uglyHack.second = e; } if ( service.ttl() != origTtl ) // repoindex.xml changed ttl { if ( !service.ttl() ) service.setLrf( Date() ); // don't need lrf when zero ttl serviceModified = true; } //////////////////////////////////////////////////////////////////////////// // On the fly remember the new repo states as defined the reopoindex.xml. // Move into ServiceInfo later. ServiceInfo::RepoStates newRepoStates; // set service alias and base url for all collected repositories for_( it, collector.repos.begin(), collector.repos.end() ) { // First of all: Prepend service alias: it->setAlias( str::form( "%s:%s", service.alias().c_str(), it->alias().c_str() ) ); // set reference to the parent service it->setService( service.alias() ); // remember the new parsed repo state newRepoStates[it->alias()] = *it; // - If the repo url was not set by the repoindex parser, set service's url. // - Libzypp currently has problem with separate url + path handling so just // append a path, if set, to the baseurls // - Credentials in the url authority will be extracted later, either if the // repository is added or if we check for changed urls. Pathname path; if ( !it->path().empty() ) { if ( it->path() != "/" ) path = it->path(); it->setPath(""); } if ( it->baseUrlsEmpty() ) { Url url( service.rawUrl() ); if ( !path.empty() ) url.setPathName( url.getPathName() / path ); it->setBaseUrl( std::move(url) ); } else if ( !path.empty() ) { RepoInfo::url_set urls( it->rawBaseUrls() ); for ( Url & url : urls ) { url.setPathName( url.getPathName() / path ); } it->setBaseUrls( std::move(urls) ); } } //////////////////////////////////////////////////////////////////////////// // Now compare collected repos with the ones in the system... // RepoInfoList oldRepos; getRepositoriesInService( service.alias(), std::back_inserter( oldRepos ) ); //////////////////////////////////////////////////////////////////////////// // find old repositories to remove... for_( oldRepo, oldRepos.begin(), oldRepos.end() ) { if ( ! foundAliasIn( oldRepo->alias(), collector.repos ) ) { if ( oldRepo->enabled() ) { // Currently enabled. If this was a user modification remember the state. const auto & last = service.repoStates().find( oldRepo->alias() ); if ( last != service.repoStates().end() && ! last->second.enabled ) { DBG << "Service removes user enabled repo " << oldRepo->alias() << endl; service.addRepoToEnable( oldRepo->alias() ); serviceModified = true; } else DBG << "Service removes enabled repo " << oldRepo->alias() << endl; } else DBG << "Service removes disabled repo " << oldRepo->alias() << endl; removeRepository( *oldRepo ); } } //////////////////////////////////////////////////////////////////////////// // create missing repositories and modify existing ones if needed... UrlCredentialExtractor urlCredentialExtractor( _options.rootDir ); // To collect any credentials stored in repo URLs for_( it, collector.repos.begin(), collector.repos.end() ) { // User explicitly requested the repo being enabled? // User explicitly requested the repo being disabled? // And hopefully not both ;) If so, enable wins. TriBool toBeEnabled( indeterminate ); // indeterminate - follow the service request DBG << "Service request to " << (it->enabled()?"enable":"disable") << " service repo " << it->alias() << endl; if ( options_r.testFlag( RefreshService_restoreStatus ) ) { DBG << "Opt RefreshService_restoreStatus " << it->alias() << endl; // this overrides any pending request! // Remove from enable request list. // NOTE: repoToDisable is handled differently. // It gets cleared on each refresh. service.delRepoToEnable( it->alias() ); // toBeEnabled stays indeterminate! } else { if ( service.repoToEnableFind( it->alias() ) ) { DBG << "User request to enable service repo " << it->alias() << endl; toBeEnabled = true; // Remove from enable request list. // NOTE: repoToDisable is handled differently. // It gets cleared on each refresh. service.delRepoToEnable( it->alias() ); serviceModified = true; } else if ( service.repoToDisableFind( it->alias() ) ) { DBG << "User request to disable service repo " << it->alias() << endl; toBeEnabled = false; } } RepoInfoList::iterator oldRepo( findAlias( it->alias(), oldRepos ) ); if ( oldRepo == oldRepos.end() ) { // Not found in oldRepos ==> a new repo to add // Make sure the service repo is created with the appropriate enablement if ( ! indeterminate(toBeEnabled) ) it->setEnabled( toBeEnabled ); DBG << "Service adds repo " << it->alias() << " " << (it->enabled()?"enabled":"disabled") << endl; addRepository( *it ); } else { // ==> an exising repo to check bool oldRepoModified = false; if ( indeterminate(toBeEnabled) ) { // No user request: check for an old user modificaton otherwise follow service request. // NOTE: Assert toBeEnabled is boolean afterwards! if ( oldRepo->enabled() == it->enabled() ) toBeEnabled = it->enabled(); // service requests no change to the system else if (options_r.testFlag( RefreshService_restoreStatus ) ) { toBeEnabled = it->enabled(); // RefreshService_restoreStatus forced DBG << "Opt RefreshService_restoreStatus " << it->alias() << " forces " << (toBeEnabled?"enabled":"disabled") << endl; } else { const auto & last = service.repoStates().find( oldRepo->alias() ); if ( last == service.repoStates().end() || last->second.enabled != it->enabled() ) toBeEnabled = it->enabled(); // service request has changed since last refresh -> follow else { toBeEnabled = oldRepo->enabled(); // service request unchaned since last refresh -> keep user modification DBG << "User modified service repo " << it->alias() << " may stay " << (toBeEnabled?"enabled":"disabled") << endl; } } } // changed enable? if ( toBeEnabled == oldRepo->enabled() ) { DBG << "Service repo " << it->alias() << " stays " << (oldRepo->enabled()?"enabled":"disabled") << endl; } else if ( toBeEnabled ) { DBG << "Service repo " << it->alias() << " gets enabled" << endl; oldRepo->setEnabled( true ); oldRepoModified = true; } else { DBG << "Service repo " << it->alias() << " gets disabled" << endl; oldRepo->setEnabled( false ); oldRepoModified = true; } // all other attributes follow the service request: // changed name (raw!) if ( oldRepo->rawName() != it->rawName() ) { DBG << "Service repo " << it->alias() << " gets new NAME " << it->rawName() << endl; oldRepo->setName( it->rawName() ); oldRepoModified = true; } // changed autorefresh if ( oldRepo->autorefresh() != it->autorefresh() ) { DBG << "Service repo " << it->alias() << " gets new AUTOREFRESH " << it->autorefresh() << endl; oldRepo->setAutorefresh( it->autorefresh() ); oldRepoModified = true; } // changed priority? if ( oldRepo->priority() != it->priority() ) { DBG << "Service repo " << it->alias() << " gets new PRIORITY " << it->priority() << endl; oldRepo->setPriority( it->priority() ); oldRepoModified = true; } // changed url? { RepoInfo::url_set newUrls( it->rawBaseUrls() ); urlCredentialExtractor.extract( newUrls ); // Extract! to prevent passwds from disturbing the comparison below if ( oldRepo->rawBaseUrls() != newUrls ) { DBG << "Service repo " << it->alias() << " gets new URLs " << newUrls << endl; oldRepo->setBaseUrls( std::move(newUrls) ); oldRepoModified = true; } } // changed gpg check settings? // ATM only plugin services can set GPG values. if ( service.type() == ServiceType::PLUGIN ) { TriBool ogpg[3]; // Gpg RepoGpg PkgGpg TriBool ngpg[3]; oldRepo->getRawGpgChecks( ogpg[0], ogpg[1], ogpg[2] ); it-> getRawGpgChecks( ngpg[0], ngpg[1], ngpg[2] ); #define Z_CHKGPG(I,N) \ if ( ! sameTriboolState( ogpg[I], ngpg[I] ) ) \ { \ DBG << "Service repo " << it->alias() << " gets new "#N"Check " << ngpg[I] << endl; \ oldRepo->set##N##Check( ngpg[I] ); \ oldRepoModified = true; \ } Z_CHKGPG( 0, Gpg ); Z_CHKGPG( 1, RepoGpg ); Z_CHKGPG( 2, PkgGpg ); #undef Z_CHKGPG } // save if modified: if ( oldRepoModified ) { modifyRepository( oldRepo->alias(), *oldRepo ); } } } // Unlike reposToEnable, reposToDisable is always cleared after refresh. if ( ! service.reposToDisableEmpty() ) { service.clearReposToDisable(); serviceModified = true; } // Remember original service request for next refresh if ( service.repoStates() != newRepoStates ) { service.setRepoStates( std::move(newRepoStates) ); serviceModified = true; } //////////////////////////////////////////////////////////////////////////// // save service if modified: (unless a plugin service) if ( service.type() != ServiceType::PLUGIN ) { if ( service.ttl() ) { service.setLrf( Date::now() ); // remember last refresh serviceModified = true; // or use a cookie file } if ( serviceModified ) { // write out modified service file. modifyService( service.alias(), service ); } } if ( uglyHack.first ) { throw( uglyHack.second ); // intentionally not ZYPP_THROW } } //////////////////////////////////////////////////////////////////////////// void RepoManager::Impl::modifyService( const std::string & oldAlias, const ServiceInfo & newService ) { MIL << "Going to modify service " << oldAlias << endl; // we need a writable copy to link it to the file where // it is saved if we modify it ServiceInfo service(newService); if ( service.type() == ServiceType::PLUGIN ) { ZYPP_THROW(ServicePluginImmutableException( service )); } const ServiceInfo & oldService = getService(oldAlias); Pathname location = oldService.filepath(); if( location.empty() ) { ZYPP_THROW(ServiceException( oldService, _("Can't figure out where the service is stored.") )); } // remember: there may multiple services being defined in one file: ServiceSet tmpSet; parser::ServiceFileReader( location, ServiceCollector(tmpSet) ); filesystem::assert_dir(location.dirname()); std::ofstream file(location.c_str()); for_(it, tmpSet.begin(), tmpSet.end()) { if( *it != oldAlias ) it->dumpAsIniOn(file); } service.dumpAsIniOn(file); file.close(); service.setFilepath(location); _services.erase(oldAlias); _services.insert(service); // check for credentials in Urls UrlCredentialExtractor( _options.rootDir ).collect( service.url() ); // changed properties affecting also repositories if ( oldAlias != service.alias() // changed alias || oldService.enabled() != service.enabled() ) // changed enabled status { std::vector toModify; getRepositoriesInService(oldAlias, std::back_inserter(toModify)); for_( it, toModify.begin(), toModify.end() ) { if ( oldService.enabled() != service.enabled() ) { if ( service.enabled() ) { // reset to last refreshs state const auto & last = service.repoStates().find( it->alias() ); if ( last != service.repoStates().end() ) it->setEnabled( last->second.enabled ); } else it->setEnabled( false ); } if ( oldAlias != service.alias() ) it->setService(service.alias()); modifyRepository(it->alias(), *it); } } //! \todo refresh the service automatically if url is changed? } //////////////////////////////////////////////////////////////////////////// repo::ServiceType RepoManager::Impl::probeService( const Url & url ) const { try { MediaSetAccess access(url); if ( access.doesFileExist("/repo/repoindex.xml") ) return repo::ServiceType::RIS; } catch ( const media::MediaException &e ) { ZYPP_CAUGHT(e); // TranslatorExplanation '%s' is an URL RepoException enew(str::form( _("Error trying to read from '%s'"), url.asString().c_str() )); enew.remember(e); ZYPP_THROW(enew); } catch ( const Exception &e ) { ZYPP_CAUGHT(e); // TranslatorExplanation '%s' is an URL Exception enew(str::form( _("Unknown error reading from '%s'"), url.asString().c_str() )); enew.remember(e); ZYPP_THROW(enew); } return repo::ServiceType::NONE; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoManager // /////////////////////////////////////////////////////////////////// RepoManager::RepoManager( const RepoManagerOptions & opt ) : _pimpl( new Impl(opt) ) {} RepoManager::~RepoManager() {} bool RepoManager::repoEmpty() const { return _pimpl->repoEmpty(); } RepoManager::RepoSizeType RepoManager::repoSize() const { return _pimpl->repoSize(); } RepoManager::RepoConstIterator RepoManager::repoBegin() const { return _pimpl->repoBegin(); } RepoManager::RepoConstIterator RepoManager::repoEnd() const { return _pimpl->repoEnd(); } RepoInfo RepoManager::getRepo( const std::string & alias ) const { return _pimpl->getRepo( alias ); } bool RepoManager::hasRepo( const std::string & alias ) const { return _pimpl->hasRepo( alias ); } std::string RepoManager::makeStupidAlias( const Url & url_r ) { std::string ret( url_r.getScheme() ); if ( ret.empty() ) ret = "repo-"; else ret += "-"; std::string host( url_r.getHost() ); if ( ! host.empty() ) { ret += host; ret += "-"; } static Date::ValueType serial = Date::now(); ret += Digest::digest( Digest::sha1(), str::hexstring( ++serial ) +url_r.asCompleteString() ).substr(0,8); return ret; } RepoStatus RepoManager::metadataStatus( const RepoInfo & info ) const { return _pimpl->metadataStatus( info ); } RepoManager::RefreshCheckStatus RepoManager::checkIfToRefreshMetadata( const RepoInfo &info, const Url &url, RawMetadataRefreshPolicy policy ) { return _pimpl->checkIfToRefreshMetadata( info, url, policy ); } Pathname RepoManager::metadataPath( const RepoInfo &info ) const { return _pimpl->metadataPath( info ); } Pathname RepoManager::packagesPath( const RepoInfo &info ) const { return _pimpl->packagesPath( info ); } void RepoManager::refreshMetadata( const RepoInfo &info, RawMetadataRefreshPolicy policy, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->refreshMetadata( info, policy, progressrcv ); } void RepoManager::cleanMetadata( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->cleanMetadata( info, progressrcv ); } void RepoManager::cleanPackages( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->cleanPackages( info, progressrcv ); } RepoStatus RepoManager::cacheStatus( const RepoInfo &info ) const { return _pimpl->cacheStatus( info ); } void RepoManager::buildCache( const RepoInfo &info, CacheBuildPolicy policy, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->buildCache( info, policy, progressrcv ); } void RepoManager::cleanCache( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->cleanCache( info, progressrcv ); } bool RepoManager::isCached( const RepoInfo &info ) const { return _pimpl->isCached( info ); } void RepoManager::loadFromCache( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->loadFromCache( info, progressrcv ); } void RepoManager::cleanCacheDirGarbage( const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->cleanCacheDirGarbage( progressrcv ); } repo::RepoType RepoManager::probe( const Url & url, const Pathname & path ) const { return _pimpl->probe( url, path ); } repo::RepoType RepoManager::probe( const Url & url ) const { return _pimpl->probe( url ); } void RepoManager::addRepository( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->addRepository( info, progressrcv ); } void RepoManager::addRepositories( const Url &url, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->addRepositories( url, progressrcv ); } void RepoManager::removeRepository( const RepoInfo & info, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->removeRepository( info, progressrcv ); } void RepoManager::modifyRepository( const std::string &alias, const RepoInfo & newinfo, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->modifyRepository( alias, newinfo, progressrcv ); } RepoInfo RepoManager::getRepositoryInfo( const std::string &alias, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->getRepositoryInfo( alias, progressrcv ); } RepoInfo RepoManager::getRepositoryInfo( const Url & url, const url::ViewOption & urlview, const ProgressData::ReceiverFnc & progressrcv ) { return _pimpl->getRepositoryInfo( url, urlview, progressrcv ); } bool RepoManager::serviceEmpty() const { return _pimpl->serviceEmpty(); } RepoManager::ServiceSizeType RepoManager::serviceSize() const { return _pimpl->serviceSize(); } RepoManager::ServiceConstIterator RepoManager::serviceBegin() const { return _pimpl->serviceBegin(); } RepoManager::ServiceConstIterator RepoManager::serviceEnd() const { return _pimpl->serviceEnd(); } ServiceInfo RepoManager::getService( const std::string & alias ) const { return _pimpl->getService( alias ); } bool RepoManager::hasService( const std::string & alias ) const { return _pimpl->hasService( alias ); } repo::ServiceType RepoManager::probeService( const Url &url ) const { return _pimpl->probeService( url ); } void RepoManager::addService( const std::string & alias, const Url& url ) { return _pimpl->addService( alias, url ); } void RepoManager::addService( const ServiceInfo & service ) { return _pimpl->addService( service ); } void RepoManager::removeService( const std::string & alias ) { return _pimpl->removeService( alias ); } void RepoManager::removeService( const ServiceInfo & service ) { return _pimpl->removeService( service ); } void RepoManager::refreshServices( const RefreshServiceOptions & options_r ) { return _pimpl->refreshServices( options_r ); } void RepoManager::refreshService( const std::string & alias, const RefreshServiceOptions & options_r ) { return _pimpl->refreshService( alias, options_r ); } void RepoManager::refreshService( const ServiceInfo & service, const RefreshServiceOptions & options_r ) { return _pimpl->refreshService( service, options_r ); } void RepoManager::modifyService( const std::string & oldAlias, const ServiceInfo & service ) { return _pimpl->modifyService( oldAlias, service ); } //////////////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const RepoManager & obj ) { return str << *obj._pimpl; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/RepoManager.h000066400000000000000000000604731334444677500167050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RepoManager.h * */ #ifndef ZYPP_REPOMANAGER_H #define ZYPP_REPOMANAGER_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Iterator.h" #include "zypp/base/Flags.h" #include "zypp/Pathname.h" #include "zypp/ZConfig.h" #include "zypp/RepoInfo.h" #include "zypp/repo/RepoException.h" #include "zypp/repo/RepoType.h" #include "zypp/repo/ServiceType.h" #include "zypp/ServiceInfo.h" #include "zypp/RepoStatus.h" #include "zypp/ProgressData.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** * Parses \a repo_file and returns a list of \ref RepoInfo objects * corresponding to repositories found within the file. * * \param repo_file Valid URL of the repo file. * \return found list * * \throws MediaException If the access to the url fails * \throws ParseException If the file parsing fails * \throws Exception On other errors. */ std::list readRepoFile(const Url & repo_file); /** * Repo manager settings. * Settings default to ZYpp global settings. */ struct RepoManagerOptions { /** Default ctor following \ref ZConfig global settings. * If an optional \c root_r directory is given, all paths will * be prefixed accordingly. * \code * root_r\repoCachePath * \repoRawCachePath * \repoSolvCachePath * \repoPackagesCachePath * \knownReposPath * \endcode */ RepoManagerOptions( const Pathname & root_r = Pathname() ); /** Test setup adjusting all paths to be located below one \c root_r directory. * \code * root_r\ - repoCachePath * \raw - repoRawCachePath * \solv - repoSolvCachePath * \packages - repoPackagesCachePath * \repos.d - knownReposPath * \endcode */ static RepoManagerOptions makeTestSetup( const Pathname & root_r ); Pathname repoCachePath; Pathname repoRawCachePath; Pathname repoSolvCachePath; Pathname repoPackagesCachePath; Pathname knownReposPath; Pathname knownServicesPath; Pathname pluginsPath; bool probe; /** * Target distro ID to be used when refreshing repo index services. * Repositories not maching this ID will be skipped/removed. * * If empty, \ref Target::targetDistribution() will be used instead. */ std::string servicesTargetDistro; /** remembers root_r value for later use */ Pathname rootDir; }; /** * \short creates and provides information about known sources. * */ class RepoManager { friend std::ostream & operator<<( std::ostream & str, const RepoManager & obj ); public: /** Implementation */ class Impl; /** ServiceInfo typedefs */ typedef std::set ServiceSet; typedef ServiceSet::const_iterator ServiceConstIterator; typedef ServiceSet::size_type ServiceSizeType; /** RepoInfo typedefs */ typedef std::set RepoSet; typedef RepoSet::const_iterator RepoConstIterator; typedef RepoSet::size_type RepoSizeType; public: RepoManager( const RepoManagerOptions &options = RepoManagerOptions() ); /** Dtor */ ~RepoManager(); enum RawMetadataRefreshPolicy { RefreshIfNeeded, RefreshForced, RefreshIfNeededIgnoreDelay }; enum CacheBuildPolicy { BuildIfNeeded, BuildForced }; /** Flags for tuning RefreshService */ enum RefreshServiceBit { RefreshService_restoreStatus = (1<<0), ///< Force restoring repo enabled/disabled status RefreshService_forceRefresh = (1<<1), ///< Force refresh even if TTL is not reached }; ZYPP_DECLARE_FLAGS(RefreshServiceFlags,RefreshServiceBit); /** Options tuning RefreshService */ typedef RefreshServiceFlags RefreshServiceOptions; /** \name Known repositories. * * The known repositories are read from * \ref RepoManagerOptions::knownReposPath passed on the Ctor. * Which defaults to ZYpp global settings. */ //@{ bool repoEmpty() const; RepoSizeType repoSize() const; RepoConstIterator repoBegin() const; RepoConstIterator repoEnd() const; Iterable repos() const; /** List of known repositories. */ std::list knownRepositories() const { return std::list(repoBegin(),repoEnd()); } /** Find RepoInfo by alias or return \ref RepoInfo::noRepo. */ RepoInfo getRepo( const std::string & alias ) const; /** \overload Take alias from RepoInfo. */ RepoInfo getRepo( const RepoInfo & info_r ) const { return getRepo( info_r.alias() ); } /** Return whether there is a known repository for \c alias. */ bool hasRepo( const std::string & alias ) const; /** \overload Take alias from RepoInfo. */ bool hasRepo( const RepoInfo & info_r ) const { return hasRepo( info_r.alias() ); } /** Some stupid string but suitable as alias for your url if nothing better is available. * Something like \c "http-download.opensuse.org-83df67e5" */ static std::string makeStupidAlias( const Url & url_r = Url() ); //@} /** * \short Status of local metadata */ RepoStatus metadataStatus( const RepoInfo &info ) const; /** * Possibly return state of checkIfRefreshMEtadata function */ enum RefreshCheckStatus { REFRESH_NEEDED, /**< refresh is needed */ REPO_UP_TO_DATE, /**< repository not changed */ REPO_CHECK_DELAYED /**< refresh is delayed due to settings */ }; /** * Checks whether to refresh metadata for specified repository and url. *

* The need for refresh is evaluated according to the following conditions, * in that order: *

    *
  • the refresh policy (refresh may be forced) *
  • the repo.refresh.delay ZConfig value compared to the difference between * cached index file timestamp and actual time *
  • the timestamp of cached repo index file compared to the remote * index file timestamp. *
*

* This method checks the status against the specified url only. If more * baseurls are defined for in the RepoInfo, each one must be check * individually. Example: * * * * RepoInfo info; * // try urls one by one * for ( RepoInfo::urls_const_iterator it = info.baseUrlsBegin(); * it != info.baseUrlsEnd(); ++it ) * { * try * { * // check whether to refresh metadata * // if the check fails for this url, it throws, so another url will be checked * if (checkIfToRefreshMetadata(info, *it, policy)!=RepoInfo::REFRESH_NEEDED) * return; * * // do the actual refresh * } * catch (const Exception & e) * { * ZYPP_CAUGHT(e); * ERR << *it << " doesn't look good. Trying another url." << endl; * } * } // for all urls * * handle("No more URLs."); * * * * \param info * \param url * \param policy * \return state of repository * \see RefreshCheckStatus * \throws RepoUnknownTypeException * \throws repo::RepoNoAliasException if can't figure an alias * \throws Exception on unknown error * */ RefreshCheckStatus checkIfToRefreshMetadata( const RepoInfo &info, const Url &url, RawMetadataRefreshPolicy policy = RefreshIfNeeded); /** * \short Path where the metadata is downloaded and kept * * Given a repoinfo, tells where \ref RepoManager will download * and keep the raw metadata. * * \param info Repository information * * \throws repo::RepoNoAliasException if can't figure an alias */ Pathname metadataPath( const RepoInfo &info ) const; /** * \short Path where the rpm packages are downloaded and kept * * Given a repoinfo, tells where \ref RepoProvidePackage will download * and keep the .rpm files. * * \param info Repository information * * \throws repo::RepoNoAliasException if can't figure an alias */ Pathname packagesPath( const RepoInfo &info ) const; /** * \short Refresh local raw cache * * Will try to download the metadata * * In case of falure the metadata remains * as it was before. * * \throws repo::RepoNoUrlException if no urls are available. * \throws repo::RepoNoAliasException if can't figure an alias * \throws repo::RepoUnknownTypeException if the metadata is unknown * \throws repo::RepoException if the repository is invalid * (no valid metadata found at any of baseurls) */ void refreshMetadata( const RepoInfo &info, RawMetadataRefreshPolicy policy = RefreshIfNeeded, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Clean local metadata * * Empty local metadata. * * \throws repo::RepoNoAliasException if can't figure an alias * \throws Exception on unknown error. */ void cleanMetadata( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Clean local package cache * * Empty local directory with downloaded packages * * \throws repo::RepoNoAliasException if can't figure an alias * \throws Exception on unknown error. */ void cleanPackages( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Status of metadata cache */ RepoStatus cacheStatus( const RepoInfo &info ) const; /** * \short Refresh local cache * * Will try to build the cache from local metadata. * * If the cache exists it will be overwriten. * * \note the local metadata must be valid. * * \throws repo::RepoNoAliasException if can't figure * an alias to look in cache * \throws repo::RepoMetadataException if the metadata * is not enough to build a cache (empty, incorrect, or * refresh needed) * \throws repo::RepoUnknownTypeException * \throws parser::ParseException if parser encounters an error. * \throws Exception on unknown error. */ void buildCache( const RepoInfo &info, CacheBuildPolicy policy = BuildIfNeeded, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short clean local cache * * Clean the cached version of the metadata * * \note the local metadata must be valid. * * \throws repo::RepoNoAliasException if can't figure an alias to look in cache * \throws cache::CacheRecordNotFoundException if the cache could not be * cleaned because of repository record not found. * \throws Exception on unknown error. */ void cleanCache( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Whether a repository exists in cache * * \param RepoInfo to be checked. */ bool isCached( const RepoInfo &info ) const; /** * \short Load resolvables into the pool * * Creating from cache requires that the repository is * refreshed (metadata downloaded) and cached * * \throws repo::RepoNoAliasException if can't figure an alias to look in cache * \throw RepoNotCachedException When the source is not cached. */ void loadFromCache( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * Remove any subdirectories of cache directories which no longer belong * to any of known repositories. * * These can be temporary directories left by interrupted refresh, * or dirs left after changing .repo files outside of libzypp. */ void cleanCacheDirGarbage( const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Probe repo metadata type. * * The location to probe consists of the base \a url (you may think of it as * a mountpoint) and the \a path to the repository on the mounted media * (ususally \c / ). */ repo::RepoType probe( const Url & url, const Pathname & path ) const; /** * \overload Using the default path \c "/". */ repo::RepoType probe( const Url & url ) const; /** * \short Adds a repository to the list of known repositories. * * * * \throws repo::RepoAlreadyExistsException If the repo clash some * unique attribute like alias * \throws RepoUnknownType * If RepoManagerOptions::probe is true * and repository type can't be determined. * \throws RepoException * If RepoManagerOptions::probe is true and access to the url fails. * \throws Exception On other errors. */ void addRepository( const RepoInfo &info, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Adds repositores from a repo file to the list of known repositories. * \param url Url of the repo file * * \throws repo::RepoAlreadyExistsException If the repo clash some * unique attribute like alias * \throws MediaException If the access to the url fails * \throws ParseException If the file parsing fails * \throws RepoUnknownType If repository type can't be determined * \throws RepoException ON other repository related errors * \throws Exception On other errors. */ void addRepositories( const Url &url, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Remove the best matching repository from known repos list * * \throws RepoNotFoundException If no repo match */ void removeRepository( const RepoInfo & info, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Modify repository attributes * * \throws RepoAlreadyExistsException if the alias specified in newinfo * is already used by another repository * \throws RepoNotFoundException If no repo match * \throws ParseException If the file parsing fails * \throws Exception On other errors. */ void modifyRepository( const std::string &alias, const RepoInfo & newinfo, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** \overload Take alias from RepoInfo. */ void modifyRepository( const RepoInfo & newinfo, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ) { modifyRepository( newinfo.alias(), newinfo, progressrcv ); } /** * \short Find a matching repository info * * \note if multiple repositories incorrectly share the * same alias, the first one found will be returned. * * \param alias Repository alias * \param progressrcv Progress reporting function * \return RepoInfo of the found repository * \throws RepoNotFoundException If no repo match the alias * \throws ParseException If the file parsing fails * \throws Exception On other errors. */ RepoInfo getRepositoryInfo( const std::string &alias, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** * \short Find repository info by URL. * * \param url URL to find. * \param urlview url::ViewOption to influence URL matching. * \param progressrcv Progress receiver function. * \return RepoInfo of the found repository. * * \note if multpile repositories incorrectly share the * same URL, the first one found will be returned. * * \note the string representation of the URLs are compared. * The \a urlview can be used to influence which parts of the URL are to be compared. * * \throws RepoNotFoundException If no repo match * \throws ParseException If the file parsing fails * \throws Exception On other errors. */ RepoInfo getRepositoryInfo( const Url & url, const url::ViewOption & urlview = url::ViewOption::DEFAULTS, const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() ); /** \name Known services. * * The known services are read from * \ref RepoManagerOptions::knownServicesPath passed on the Ctor. * Which defaults to ZYpp global settings. */ //@{ /** * Gets true if no service is in RepoManager (so no one in specified location) * * \return true if any ServiceInfo is in RepoManager */ bool serviceEmpty() const; /** * Gets count of service in RepoManager (in specified location) * * \return count of service */ ServiceSizeType serviceSize() const; /** * Iterator to first service in internal storage. * \note Iterator is immutable, so you cannot change pointed ServiceInfo * \return Iterator to first service */ ServiceConstIterator serviceBegin() const; /** * Iterator to place behind last service in internal storage. * \return iterator to end */ ServiceConstIterator serviceEnd() const; /** Iterate the known services. */ Iterable services() const; /** List of known services. */ std::list knownServices() const { return std::list(serviceBegin(),serviceEnd()); } /** * \short Finds ServiceInfo by alias or return \ref ServiceInfo::noService * * \param alias unique identifier of service * \return information about service */ ServiceInfo getService( const std::string & alias ) const; /** Return whether there is a known service for \c alias. */ bool hasService( const std::string & alias ) const; //@} /** * \short Probe the type or the service. */ repo::ServiceType probeService( const Url &url ) const; /** * Adds new service by it's alias and url * * \param alias unique identifier of the service * \param url url to service * * \throws FIXME RepoAlreadyExistException and as reponame is service name */ void addService( const std::string & alias, const Url& url ); /** * Adds new service * * \param service service info * * \throws FIXME RepoAlreadyExistException and as reponame is service name */ void addService( const ServiceInfo & service ); /** * Removes service specified by its name * * \param alias unique indientifier of the service to remove * * \throws RepoException if service is not found or file with ServiceInfo cannot be deleted * \throws Exception if file contain more services and rewrite file failed */ void removeService( const std::string & alias ); /** \overload Take alias from ServiceInfo */ void removeService( const ServiceInfo & service ); /** * Refreshes all enabled services. * * \see refreshService(ServiceInfo) */ void refreshServices( const RefreshServiceOptions & options_r = RefreshServiceOptions() ); /** * Refresh specific service. * * \param alias unique indientifier of the service to refresh * * \throws RepoException if service is not found. * \throws MediaException If there's a problem downloading the repo index file. */ void refreshService( const std::string & alias, const RefreshServiceOptions & options_r = RefreshServiceOptions() ); /** \overload Take alias from ServiceInfo */ void refreshService( const ServiceInfo & service, const RefreshServiceOptions & options_r = RefreshServiceOptions() ); /** * Modifies service file (rewrites it with new values) and underlying * repositories if needed. * * Modifications of a service can lead to rewrite of all .repo files of * contained repositories. Particularily, disabling a service (changing * ServiceInfo::enabled() from true to false) will disable all contained * repositories. Renaming of a service will modify the "service" key * of all contained repositories. * * \param oldAlias Old alias of the service * \param service ServiceInfo object containing new data * * \throws RepoException if sservice with oldAlias is not known * \throws Exception if have problems with files */ void modifyService( const std::string & oldAlias, const ServiceInfo & service ); /** \overload Take alias from ServiceInfo. */ void modifyService( const ServiceInfo & service ) { modifyService( service.alias(), service ); } private: /** * Functor thats filter RepoInfo by service which it belongs to. */ struct MatchServiceAlias { public: MatchServiceAlias( const std::string & alias_ ) : alias(alias_) {} bool operator()( const RepoInfo & info ) const { return info.service() == alias; } private: std::string alias; }; public: /** * fill to output iterator repositories in service name. This output iterator can perform * any action on with Repo or service Container, because it is sets and it isn't dynamic recreate. * * \note Don't use this function with RepoManager::removeRepository(), it will lead to segfaults * due to invalidated internal iterators. FIXME can this be solved (using STL) so that this * warning would not be needed? * * \param alias service alias * \param out output iterator which get all the repositories belonging to * specified service * * example how set priority for each RepoInfo in this service: * \code * //functor * class ChangePriority * { * private: * int priority; * public: * ChangePriority(int prio) : priority(prio) {} * // missing rewrite priority back via RepoManager::modifyRepo * void doIt( RepoInfo info ) { info.setPriority(priority); } * } * * //somewhere in code * ChangePriority changer(10); * getRepositoriesInService(name, * boost::make_function_output_iterator( * bind(&ChangePriority::doIt, &changer, _1))); * \endcode */ template void getRepositoriesInService( const std::string & alias, OutputIterator out ) const { MatchServiceAlias filter(alias); std::copy( boost::make_filter_iterator( filter, repoBegin(), repoEnd() ), boost::make_filter_iterator( filter, repoEnd(), repoEnd() ), out); } private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; ZYPP_DECLARE_OPERATORS_FOR_FLAGS(RepoManager::RefreshServiceFlags); /////////////////////////////////////////////////////////////////// /** \relates RepoManager Stream output */ std::ostream & operator<<( std::ostream & str, const RepoManager & obj ); /** Iterate the known repositories. */ inline Iterable RepoManager::repos() const { return makeIterable( repoBegin(), repoEnd() ); } /** Iterate the known services. */ inline Iterable RepoManager::services() const { return makeIterable( serviceBegin(), serviceEnd() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP2_REPOMANAGER_H libzypp-17.7.0/zypp/RepoStatus.cc000066400000000000000000000121111334444677500167360ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RepoStatus.cc * */ #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/RepoStatus.h" #include "zypp/PathInfo.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoStatus::Impl // /** RepoStatus implementation. */ struct RepoStatus::Impl { public: string _checksum; Date _timestamp; /** Recursive computation of max dir timestamp. */ static void recursive_timestamp( const Pathname & dir_r, time_t & max_r ) { std::list dircontent; if ( filesystem::readdir( dircontent, dir_r, false/*no dots*/ ) != 0 ) return; // readdir logged the error for_( it, dircontent.begin(), dircontent.end() ) { PathInfo pi( dir_r + *it, PathInfo::LSTAT ); if ( pi.isDir() ) { if ( pi.mtime() > max_r ) max_r = pi.mtime(); recursive_timestamp( pi.path(), max_r ); } } } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /** \relates RepoStatus::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const RepoStatus::Impl & obj ) { return str << obj._checksum << " " << (time_t)obj._timestamp; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoStatus // /////////////////////////////////////////////////////////////////// RepoStatus::RepoStatus() : _pimpl( new Impl() ) {} RepoStatus::RepoStatus( const Pathname & path_r ) : _pimpl( new Impl() ) { PathInfo info( path_r ); if ( info.isExist() ) { if ( info.isFile() ) { _pimpl->_timestamp = Date( info.mtime() ); _pimpl->_checksum = filesystem::sha1sum( path_r ); } else if ( info.isDir() ) { time_t t = info.mtime(); Impl::recursive_timestamp( path_r, t ); _pimpl->_timestamp = Date(t); _pimpl->_checksum = CheckSum::sha1FromString( str::numstring( t ) ).checksum(); } // NOTE: changing magic will once invalidate all solv file caches // Helpfull if solv file content must be refreshed (e.g. due to different // repo2* arguments) even if raw metadata are unchanged. static const std::string magic( "43" ); _pimpl->_checksum += magic; } } RepoStatus::~RepoStatus() {} RepoStatus RepoStatus::fromCookieFile( const Pathname & path_r ) { RepoStatus ret; std::ifstream file( path_r.c_str() ); if ( !file ) { WAR << "No cookie file " << path_r << endl; } else { // line := "[checksum] time_t" std::string line( str::getline( file ) ); ret._pimpl->_timestamp = Date( str::strtonum( str::stripLastWord( line ) ) ); ret._pimpl->_checksum = line; } return ret; } void RepoStatus::saveToCookieFile( const Pathname & path_r ) const { std::ofstream file(path_r.c_str()); if (!file) { ZYPP_THROW (Exception( "Can't open " + path_r.asString() ) ); } file << _pimpl->_checksum << " " << (time_t)_pimpl->_timestamp << endl; file.close(); } bool RepoStatus::empty() const { return _pimpl->_checksum.empty(); } Date RepoStatus::timestamp() const { return _pimpl->_timestamp; } std::ostream & operator<<( std::ostream & str, const RepoStatus & obj ) { return str << *obj._pimpl; } RepoStatus operator&&( const RepoStatus & lhs, const RepoStatus & rhs ) { RepoStatus result; if ( lhs.empty() ) result = rhs; else if ( rhs.empty() ) result = lhs; else { // order strings to assert && is kommutativ std::string lchk( lhs._pimpl->_checksum ); std::string rchk( rhs._pimpl->_checksum ); stringstream ss( lchk < rchk ? lchk+rchk : rchk+lchk ); result._pimpl->_checksum = CheckSum::sha1(ss).checksum(); result._pimpl->_timestamp = std::max( lhs._pimpl->_timestamp, rhs._pimpl->_timestamp ); } return result; } bool operator==( const RepoStatus & lhs, const RepoStatus & rhs ) { return lhs._pimpl->_checksum == rhs._pimpl->_checksum; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/RepoStatus.h000066400000000000000000000073471334444677500166170ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/RepoStatus.h * */ #ifndef ZYPP2_REPOSTATUS_H #define ZYPP2_REPOSTATUS_H #include #include "zypp/base/PtrTypes.h" #include "zypp/CheckSum.h" #include "zypp/Date.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class RepoStatus /// \brief Track changing files or directories. /// /// Compute timestamp and checksum for individual files or /// directories (recursively) to track changing content. /// /// The timestamp most probably denotes the time the data were /// changed the last time, that's why it is exposed. /// /// The checksum however is an implementation detail and of no /// use outside this class. \ref operator== tells if the checksums /// of two rRepoStatus are the same. /////////////////////////////////////////////////////////////////// class RepoStatus { friend std::ostream & operator<<( std::ostream & str, const RepoStatus & obj ); friend RepoStatus operator&&( const RepoStatus & lhs, const RepoStatus & rhs ); friend bool operator==( const RepoStatus & lhs, const RepoStatus & rhs ); public: /** Default ctor */ RepoStatus(); /** Compute status for single file or directory (recursively) * * \note Construction from a non existing file will result * in an empty status. */ explicit RepoStatus( const Pathname & path_r ); /** Dtor */ ~RepoStatus(); public: /** Reads the status from a cookie file * \returns An empty \ref RepoStatus if the file does not * exist or is not readable. * \see \ref saveToCookieFile */ static RepoStatus fromCookieFile( const Pathname & path ); /** Save the status information to a cookie file * \throws Exception if the file can't be saved * \see \ref fromCookieFile */ void saveToCookieFile( const Pathname & path_r ) const; public: /** Whether the status is empty (default constucted) */ bool empty() const; /** The time the data were changed the last time */ Date timestamp() const; public: class Impl; ///< Implementation private: RWCOW_pointer _pimpl; ///< Pointer to implementation }; /////////////////////////////////////////////////////////////////// /** \relates RepoStatus Stream output */ std::ostream & operator<<( std::ostream & str, const RepoStatus & obj ); /** \relates RepoStatus Combine two RepoStatus (combined checksum and newest timestamp) */ RepoStatus operator&&( const RepoStatus & lhs, const RepoStatus & rhs ); /** \relates RepoStatus Whether 2 RepoStatus refer to the same content checksum */ bool operator==( const RepoStatus & lhs, const RepoStatus & rhs ); /** \relates RepoStatus Whether 2 RepoStatus refer to different content checksums */ inline bool operator!=( const RepoStatus & lhs, const RepoStatus & rhs ) { return ! ( lhs == rhs ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP2_REPOSTATUS_H libzypp-17.7.0/zypp/Repository.cc000066400000000000000000000315361334444677500170200ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Repository.cc * */ #include #include #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/Exception.h" #include "zypp/base/Xml.h" #include "zypp/AutoDispose.h" #include "zypp/Pathname.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/Repository.h" #include "zypp/ResPool.h" #include "zypp/Product.h" #include "zypp/sat/Pool.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// const Repository Repository::noRepository; const std::string & Repository::systemRepoAlias() { return sat::detail::PoolImpl::systemRepoAlias(); } ///////////////////////////////////////////////////////////////// sat::detail::CRepo * Repository::get() const { return myPool().getRepo( _id ); } #define NO_REPOSITORY_RETURN( VAL ) \ sat::detail::CRepo * _repo( get() ); \ if ( ! _repo ) return VAL #define NO_REPOSITORY_THROW( VAL ) \ sat::detail::CRepo * _repo( get() ); \ if ( ! _repo ) ZYPP_THROW( VAL ) bool Repository::isSystemRepo() const { NO_REPOSITORY_RETURN( false ); return myPool().isSystemRepo( _repo ); } std::string Repository::alias() const { NO_REPOSITORY_RETURN( std::string() ); if ( ! _repo->name ) return std::string(); return _repo->name; } std::string Repository::name() const { return info().name(); } std::string Repository::label() const { return info().label(); } int Repository::satInternalPriority() const { NO_REPOSITORY_RETURN( INT_MIN ); return _repo->priority; } int Repository::satInternalSubPriority() const { NO_REPOSITORY_RETURN( INT_MIN ); return _repo->subpriority; } Repository::ContentRevision Repository::contentRevision() const { NO_REPOSITORY_RETURN( ContentRevision() ); sat::LookupRepoAttr q( sat::SolvAttr::repositoryRevision, *this ); return q.empty() ? std::string() : q.begin().asString(); } Repository::ContentIdentifier Repository::contentIdentifier() const { NO_REPOSITORY_RETURN( ContentIdentifier() ); sat::LookupRepoAttr q( sat::SolvAttr::repositoryRepoid, *this ); return q.empty() ? std::string() : q.begin().asString(); } bool Repository::hasContentIdentifier( const ContentIdentifier & id_r ) const { NO_REPOSITORY_RETURN( false ); sat::LookupRepoAttr q( sat::SolvAttr::repositoryRepoid, *this ); for_( it, q.begin(), q.end() ) if ( it.asString() == id_r ) return true; return false; } zypp::Date Repository::generatedTimestamp() const { NO_REPOSITORY_RETURN( 0 ); sat::LookupRepoAttr q( sat::SolvAttr::repositoryTimestamp, *this ); return( q.empty() ? 0 : q.begin().asUnsigned() ); } zypp::Date Repository::suggestedExpirationTimestamp() const { NO_REPOSITORY_RETURN( 0 ); Date generated = generatedTimestamp(); if ( ! generated ) return 0; // do not calculate over a missing generated timestamp sat::LookupRepoAttr q( sat::SolvAttr::repositoryExpire, *this ); if ( q.empty() ) return 0; return generated + Date(q.begin().asUnsigned()); } Repository::Keywords Repository::keywords() const { NO_REPOSITORY_RETURN( Keywords() ); return Keywords( sat::SolvAttr::repositoryKeywords, *this, sat::LookupAttr::REPO_ATTR ); } bool Repository::hasKeyword( const std::string & val_r ) const { for ( const auto & val : keywords() ) if ( val == val_r ) return true; return false; } bool Repository::maybeOutdated() const { NO_REPOSITORY_RETURN( false ); // system repo is not mirrored if ( isSystemRepo() ) return false; Date suggested = suggestedExpirationTimestamp(); // if no data, don't suggest if ( ! suggested ) return false; return suggestedExpirationTimestamp() < Date::now(); } bool Repository::providesUpdatesFor( const CpeId & cpeid_r ) const { NO_REPOSITORY_RETURN( false ); if ( ! cpeid_r ) return false; // filter queries/products without CpeId, as an empty CpeId matches ANYthing. // check in repository metadata for_( it, updatesProductBegin(), updatesProductEnd() ) { if ( compare( cpeid_r, it.cpeId(), SetRelation::subset ) ) return true; } // check whether known products refer to this as update repo sat::LookupRepoAttr myIds( sat::SolvAttr::repositoryRepoid, *this ); // usually just one, but... if ( ! myIds.empty() ) { const ResPool & pool( ResPool::instance() ); for_( it, pool.byKindBegin(), pool.byKindEnd() ) { Product::constPtr prod( (*it)->asKind() ); if ( compare( cpeid_r, prod->cpeId(), SetRelation::superset ) ) { for_( myId, myIds.begin(), myIds.end() ) { if ( prod->hasUpdateContentIdentifier( myId.asString() ) ) return true; } } } } return false; } bool Repository::isUpdateRepo() const { NO_REPOSITORY_RETURN( false ); // check in repository metadata if ( updatesProductBegin() != updatesProductEnd() ) return true; // check whether known products refer to this as update repo sat::LookupRepoAttr myIds( sat::SolvAttr::repositoryRepoid, *this ); // usually just one, but... if ( ! myIds.empty() ) { const ResPool & pool( ResPool::instance() ); for_( it, pool.byKindBegin(), pool.byKindEnd() ) { for_( myId, myIds.begin(), myIds.end() ) { if ( (*it)->asKind()->hasUpdateContentIdentifier( myId.asString() ) ) return true; } } } return false; } bool Repository::solvablesEmpty() const { NO_REPOSITORY_RETURN( true ); return !_repo->nsolvables; } Repository::size_type Repository::solvablesSize() const { NO_REPOSITORY_RETURN( 0 ); return _repo->nsolvables; } Repository::SolvableIterator Repository::solvablesBegin() const { NO_REPOSITORY_RETURN( make_filter_iterator( detail::ByRepository( *this ), sat::detail::SolvableIterator(), sat::detail::SolvableIterator() ) ); return make_filter_iterator( detail::ByRepository( *this ), sat::detail::SolvableIterator(_repo->start), sat::detail::SolvableIterator(_repo->end) ); } Repository::SolvableIterator Repository::solvablesEnd() const { NO_REPOSITORY_RETURN( make_filter_iterator( detail::ByRepository( *this ), sat::detail::SolvableIterator(), sat::detail::SolvableIterator() ) ); return make_filter_iterator(detail::ByRepository( *this ), sat::detail::SolvableIterator(_repo->end), sat::detail::SolvableIterator(_repo->end) ); } Repository::ProductInfoIterator Repository::compatibleWithProductBegin() const { NO_REPOSITORY_RETURN( ProductInfoIterator() ); return ProductInfoIterator( sat::SolvAttr::repositoryDistros, *this ); } Repository::ProductInfoIterator Repository::compatibleWithProductEnd() const { return ProductInfoIterator(); } Repository::ProductInfoIterator Repository::updatesProductBegin() const { NO_REPOSITORY_RETURN( ProductInfoIterator() ); return ProductInfoIterator( sat::SolvAttr::repositoryUpdates, *this ); } Repository::ProductInfoIterator Repository::updatesProductEnd() const { return ProductInfoIterator(); } RepoInfo Repository::info() const { NO_REPOSITORY_RETURN( RepoInfo() ); return myPool().repoInfo( _repo ); } void Repository::setInfo( const RepoInfo & info_r ) { NO_REPOSITORY_THROW( Exception( "Can't set RepoInfo for norepo." ) ); if ( info_r.alias() != alias() ) { ZYPP_THROW( Exception( str::form( "RepoInfo alias (%s) does not match repository alias (%s)", info_r.alias().c_str(), alias().c_str() ) ) ); } myPool().setRepoInfo( _repo, info_r ); MIL << *this << endl; } void Repository::clearInfo() { NO_REPOSITORY_RETURN(); myPool().setRepoInfo( _repo, RepoInfo() ); } void Repository::eraseFromPool() { NO_REPOSITORY_RETURN(); MIL << *this << " removed from pool" << endl; myPool()._deleteRepo( _repo ); _id = sat::detail::noRepoId; } Repository Repository::nextInPool() const { NO_REPOSITORY_RETURN( noRepository ); for_( it, sat::Pool::instance().reposBegin(), sat::Pool::instance().reposEnd() ) { if ( *it == *this ) { if ( ++it != _for_end ) return *it; break; } } return noRepository; } void Repository::addSolv( const Pathname & file_r ) { NO_REPOSITORY_THROW( Exception( "Can't add solvables to norepo." ) ); AutoDispose file( ::fopen( file_r.c_str(), "re" ), ::fclose ); if ( file == NULL ) { file.resetDispose(); ZYPP_THROW( Exception( "Can't open solv-file: "+file_r.asString() ) ); } if ( myPool()._addSolv( _repo, file ) != 0 ) { ZYPP_THROW( Exception( "Error reading solv-file: "+file_r.asString() ) ); } MIL << *this << " after adding " << file_r << endl; } void Repository::addHelix( const Pathname & file_r ) { NO_REPOSITORY_THROW( Exception( "Can't add solvables to norepo." ) ); std::string command( file_r.extension() == ".gz" ? "zcat " : "cat " ); command += file_r.asString(); AutoDispose file( ::popen( command.c_str(), "re" ), ::pclose ); if ( file == NULL ) { file.resetDispose(); ZYPP_THROW( Exception( "Can't open helix-file: "+file_r.asString() ) ); } if ( myPool()._addHelix( _repo, file ) != 0 ) { ZYPP_THROW( Exception( "Error reading helix-file: "+file_r.asString() ) ); } MIL << *this << " after adding " << file_r << endl; } sat::detail::SolvableIdType Repository::addSolvables( unsigned count_r ) { NO_REPOSITORY_THROW( Exception( "Can't add solvables to norepo.") ); return myPool()._addSolvables( _repo, count_r ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const Repository & obj ) { if ( ! obj ) return str << "noRepository"; return str << "sat::repo(" << obj.alias() << ")" << "{" << "prio " << obj.get()->priority << '.' << obj.get()->subpriority << ", size " << obj.solvablesSize() << "}"; } std::ostream & dumpAsXmlOn( std::ostream & str, const Repository & obj ) { return xmlout::node( str, "repository", { { "name", obj.name() }, { "alias", obj.alias() } } ); } ////////////////////////////////////////////////////////////////// namespace detail { void RepositoryIterator::increment() { if ( base() ) { sat::detail::CPool * satpool = sat::Pool::instance().get(); do { ++base_reference(); } while ( base() < satpool->repos+satpool->nrepos && !*base() ); } } } // namespace detail ////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // Repository::ProductInfoIterator // /////////////////////////////////////////////////////////////////// Repository::ProductInfoIterator::ProductInfoIterator( sat::SolvAttr attr_r, Repository repo_r ) { base_reference() = sat::LookupRepoAttr( attr_r, repo_r ).begin(); } std::string Repository::ProductInfoIterator::label() const { return base_reference().subFind( sat::SolvAttr::repositoryProductLabel ).asString(); } CpeId Repository::ProductInfoIterator::cpeId() const { return CpeId( base_reference().subFind( sat::SolvAttr::repositoryProductCpeid ).asString(), CpeId::noThrow ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Repository.h000066400000000000000000000430251334444677500166560ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Repository.h * */ #ifndef ZYPP_SAT_REPOSITORY_H #define ZYPP_SAT_REPOSITORY_H #include #include "zypp/base/Iterator.h" #include "zypp/Pathname.h" #include "zypp/sat/detail/PoolMember.h" #include "zypp/sat/LookupAttr.h" // LookupAttrTools.h included at EOF #include "zypp/sat/Solvable.h" #include "zypp/RepoInfo.h" #include "zypp/Date.h" #include "zypp/CpeId.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace detail { struct ByRepository; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Repository // /** */ class Repository : protected sat::detail::PoolMember { public: typedef filter_iterator SolvableIterator; typedef sat::detail::size_type size_type; typedef sat::detail::RepoIdType IdType; typedef sat::ArrayAttr Keywords; typedef std::string ContentRevision; typedef std::string ContentIdentifier; public: /** Default ctor creates \ref noRepository.*/ Repository() : _id( sat::detail::noRepoId ) {} /** \ref PoolImpl ctor. */ explicit Repository( IdType id_r ) : _id( id_r ) {} public: /** Represents no \ref Repository. */ static const Repository noRepository; /** Evaluate \ref Repository in a boolean context (\c != \c noRepository). */ explicit operator bool() const { return get() != nullptr; } /** Reserved system repository alias \c @System. */ static const std::string & systemRepoAlias(); /** Return whether this is the system repository. */ bool isSystemRepo() const; public: /** * Short unique string to identify a repo. * ie: openSUSE-10.3 * * If you are looking for a label to display * see \ref name(). * ie: "openSUSE 10.3 Main repository" * */ std::string alias() const; /** Label to display for this repo. */ std::string name() const; /** Alias or name, according to \ref ZConfig::repoLabelIsAlias */ std::string label() const; /** User string: \ref label (alias or name) */ std::string asUserString() const { return label(); } public: /** Timestamp or arbitrary user supplied string. * \c /repomd/revision/text() in \c repomd.xml. */ ContentRevision contentRevision() const; /** Unique string identifying a repositories content. * \c /repomd/tags/repo/text() in \c repomd.xml. * \code * * * obsrepository://build.suse.de/SUSE:Factory:Head:Internal/standard * \endcode * Semantically the value is just a plain string, even * if OBS often uses the location of the project as * unique identifyer. */ ContentIdentifier contentIdentifier() const; /** Whether \a id_r matches this repos content identifier. */ bool hasContentIdentifier( const ContentIdentifier & id_r ) const; /** * Timestamp when this repository was generated * * Usually this value is calculated as the newer * timestamp from the timestamp of all the resources * that conform the repository's metadata. * * For example in a rpm-md repository, it would be * the resource specified in the xml file whith * the newest timestamp attribute (which is the * timestamp of the file in the server ). * * The timestamp is 0 if the repository does not * specify when it was generated. * */ Date generatedTimestamp() const; /** * Suggested expiration timestamp. * * Repositories can define an amount of time * they expire, with the generated timestamp as * the base point of time. * * Note that is the responsability of the repository * to freshen the generated timestamp to tell the * client that the repo is alive and updating the * metadata. * * The timestamp is 0 if the repository does not specify * an expiration date. * */ Date suggestedExpirationTimestamp() const; /** * repository keywords (tags) */ Keywords keywords() const; /** Whether \a val_r is present in keywords. */ bool hasKeyword( const std::string & val_r ) const; /** * The suggested expiration date of this repository * already passed * * rpm-md repositories can provide this tag using the * expire extension tag: * \see http://en.opensuse.org/Standards/Rpm_Metadata#SUSE_repository_info_.28suseinfo.xml.29.2C_extensions_to_repomd.xml */ bool maybeOutdated() const; /** Hint whether the Repo may provide updates for a product. * * Either the repository claims to update a product via a repository updates * tag in it's metadata or a known product lists the repositories ContentIdentifier * as required update repo. */ bool isUpdateRepo() const; /** Hint whether the Repo may provide updates for a product identified by it's \ref CpeId * * Either the repository claims to update a product via a repository updates * tag in it's metadata or a known product lists the repositories ContentIdentifier * as required update repo. */ bool providesUpdatesFor( const CpeId & cpeid_r ) const; /** Whether \ref Repository contains solvables. */ bool solvablesEmpty() const; /** Number of solvables in \ref Repository. */ size_type solvablesSize() const; /** Iterator to the first \ref Solvable. */ SolvableIterator solvablesBegin() const; /** Iterator behind the last \ref Solvable. */ SolvableIterator solvablesEnd() const; /** Iterate the repositories Solvables. */ Iterable solvables() const; public: /** Query class for Repository related products */ class ProductInfoIterator; /** * Get an iterator to the beginning of the repository * compatible distros. * \note This is only a hint. There is no guarantee that * the repository is built for that product. * \see Repository::ProductInfoIterator */ ProductInfoIterator compatibleWithProductBegin() const; /** * Get an iterator to the end of the repository * compatible distros. * \see Repository::ProductInfoIterator */ ProductInfoIterator compatibleWithProductEnd() const; /** Iterate the repository compatible distros. */ Iterable compatibleWithProduct() const; /** * Get an iterator to the beginning of distos the repository * provides upadates for. * \note This is only a hint within the repositories metadata. * The same realation might be expressed by a product listing * this repositories ContentIdentifier as required update repo. * \see Repository::ProductInfoIterator */ ProductInfoIterator updatesProductBegin() const; /** * Get an iterator to the end of distos the repository * provides upadates for. * \see Repository::ProductInfoIterator */ ProductInfoIterator updatesProductEnd() const; /** Iterate distos the repository provides upadates for. */ Iterable updatesProduct() const; public: /** Return any associated \ref RepoInfo. */ RepoInfo info() const; /** Set \ref RepoInfo for this repository. * \throws Exception if this is \ref noRepository * \throws Exception if the \ref RepoInfo::alias * does not match the \ref Repository::name. */ void setInfo( const RepoInfo & info_r ); /** Remove any \ref RepoInfo set for this repository. */ void clearInfo(); public: /** Remove this \ref Repository from it's \ref Pool. */ void eraseFromPool(); /** Functor calling \ref eraseFromPool. */ struct EraseFromPool; public: /** Return next Repository in \ref Pool (or \ref noRepository). */ Repository nextInPool() const; public: /** \name Repository content manipulating methods. * \todo maybe a separate Repository/Solvable content manip interface * provided by the pool. */ //@{ /** Load \ref Solvables from a solv-file. * In case of an exception the repository remains in the \ref Pool. * \throws Exception if this is \ref noRepository * \throws Exception if loading the solv-file fails. * \see \ref Pool::addRepoSolv and \ref Repository::EraseFromPool */ void addSolv( const Pathname & file_r ); /** Load \ref Solvables from a helix-file. * Supports loading of gzip compressed files (.gz). In case of an exception * the repository remains in the \ref Pool. * \throws Exception if this is \ref noRepository * \throws Exception if loading the helix-file fails. * \see \ref Pool::addRepoHelix and \ref Repository::EraseFromPool */ void addHelix( const Pathname & file_r ); /** Add \c count_r new empty \ref Solvable to this \ref Repository. */ sat::Solvable::IdType addSolvables( unsigned count_r ); /** \overload Add only one new \ref Solvable. */ sat::Solvable::IdType addSolvable() { return addSolvables( 1 ); } //@} public: /** Expert backdoor. */ sat::detail::CRepo * get() const; /** Expert backdoor. */ IdType id() const { return _id; } /** libsolv internal priorities. * Unlike the \ref RepoInfo priority which tries to be YUM conform * (H[1-99]L), this one is the solvers internal priority representation. * It is type \c int and as one might expect it, the higher the value * the higher the priority. Subpriority is currently used to express * media preferences (\see \ref MediaPriority). */ //@{ int satInternalPriority() const; int satInternalSubPriority() const; //@} private: IdType _id; }; /////////////////////////////////////////////////////////////////// /** \relates Repository Stream output */ std::ostream & operator<<( std::ostream & str, const Repository & obj ); /** \relates Repository XML output */ std::ostream & dumpAsXmlOn( std::ostream & str, const Repository & obj ); /** \relates Repository */ inline bool operator==( const Repository & lhs, const Repository & rhs ) { return lhs.get() == rhs.get(); } /** \relates Repository */ inline bool operator!=( const Repository & lhs, const Repository & rhs ) { return lhs.get() != rhs.get(); } /** \relates Repository */ inline bool operator<( const Repository & lhs, const Repository & rhs ) { return lhs.get() < rhs.get(); } /////////////////////////////////////////////////////////////////// /** * Query class for Repository related products * * Products are identified by CpeIds within the repositories metadata. * \see http://en.opensuse.org/Standards/Rpm_Metadata#SUSE_repository_info_.28suseinfo.xml.29.2C_extensions_to_repomd.xml * * The iterator does not provide a dereference * operator so you can do * on it, but you can * access the attributes of each related product * directly from the iterator. * * \code * for_( it, repo.compatibleWithProductBegin(), repo.compatibleWithProductEnd() ) * { * cout << it.label() << ": " << it.cpeid() << endl; * } * \endcode * */ class Repository::ProductInfoIterator : public boost::iterator_adaptor< Repository::ProductInfoIterator // Derived , sat::LookupAttr::iterator // Base , int // Value , boost::forward_traversal_tag // CategoryOrTraversal , int // Reference > { public: ProductInfoIterator() {} /** Product label */ std::string label() const; /** The Common Platform Enumeration name for this product. */ CpeId cpeId() const; private: friend class Repository; /** Hide ctor as just a limited set of attributes is valid. */ explicit ProductInfoIterator( sat::SolvAttr attr_r, Repository repo_r ); private: friend class boost::iterator_core_access; int dereference() const { return 0; } }; /////////////////////////////////////////////////////////////////// /** Iterate the repository compatible distros. */ inline Iterable Repository::compatibleWithProduct() const { return makeIterable( compatibleWithProductBegin(), compatibleWithProductEnd() ); } /** Iterate distos the repository provides upadates for. */ inline Iterable Repository::updatesProduct() const { return makeIterable( updatesProductBegin(), updatesProductEnd() ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Repository::EraseFromPool // /** Functor removing \ref Repository from it's \ref Pool. * * E.g. used as dispose function in. \ref AutoDispose * to provide a convenient and exception safe temporary * \ref Repository. * \code * sat::Pool satpool; * MIL << "1 " << satpool << endl; * { * AutoDispose tmprepo( (Repository::EraseFromPool()) ); * *tmprepo = satpool.reposInsert( "A" ); * tmprepo->addSolv( "sl10.1-beta7-packages.solv" ); * DBG << "2 " << satpool << endl; * // Calling 'tmprepo.resetDispose();' here * // would keep the Repo. * } * MIL << "3 " << satpool << endl; * \endcode * \code * 1 sat::pool(){0repos|2solv} * 2 sat::pool(){1repos|2612solv} * 3 sat::pool(){0repos|2solv} * \endcode * Leaving the block without calling tmprepo.resetDispose(); * before, will automatically remove the \ref Repo from it's \ref Pool. */ struct Repository::EraseFromPool { void operator()( Repository repository_r ) const { repository_r.eraseFromPool(); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepositoryIterator // /** */ class RepositoryIterator : public boost::iterator_adaptor< RepositoryIterator // Derived , sat::detail::CRepo ** // Base , Repository // Value , boost::forward_traversal_tag // CategoryOrTraversal , Repository // Reference > { public: RepositoryIterator() : RepositoryIterator::iterator_adaptor_( 0 ) {} explicit RepositoryIterator( sat::detail::CRepo ** p ) : RepositoryIterator::iterator_adaptor_( p ) {} private: friend class boost::iterator_core_access; Repository dereference() const { return Repository( *base() ); } void increment(); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ByRepository // /** Functor filtering \ref Solvable by \ref Repository.*/ struct ByRepository { public: ByRepository( const Repository & repository_r ) : _repository( repository_r ) {} ByRepository( sat::detail::RepoIdType id_r ) : _repository( id_r ) {} ByRepository() {} bool operator()( const sat::Solvable & slv_r ) const { return slv_r.repository() == _repository; } private: Repository _repository; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// inline Iterable Repository::solvables() const { return makeIterable( solvablesBegin(), solvablesEnd() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// // Late include as sat::ArrayAttr requires Repository.h #include "zypp/sat/LookupAttrTools.h" #endif // ZYPP_SAT_REPOSITORY_H libzypp-17.7.0/zypp/ResFilters.h000066400000000000000000000261521334444677500165630ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResFilters.h * */ #ifndef ZYPP_RESFILTERS_H #define ZYPP_RESFILTERS_H #include #include "zypp/base/Functional.h" #include "zypp/Filter.h" #include "zypp/Resolvable.h" #include "zypp/PoolItem.h" #include "zypp/Repository.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace resfilter { ///////////////////////////////////////////////////////////////// /** \defgroup RESFILTERS Filter functors operating on ResObjects. * \ingroup g_Functor * * A simple filter is a function or functor matching the signature: * \code * bool simplefilter( ResObject::Ptr ); * \endcode * * \note It's not neccessary that your function or functor actually * returns \c bool. Anything which is convertible into a \c bool * will do; * * Besides basic filter functors which actually evaluate the * \c ResObject (e.g. \ref ByKind, \ref ByName) you may * use \ref LOGICALFILTERS to build more complex filters. * * \code * // some 'action' functor, printing and counting * // ResObjects. * struct PrintAndCount * { * PrintAndCount( unsigned & counter_r ) * : _counter( counter_r ) * {} * * bool operator()( ResObject::Ptr p ) const * { * DBG << *p << endl; * ++_counter; * return true; * } * * unsigned _counter; * }; * * ResStore store; * unsigned counter = 0; * * // print and count all resolvables * store.forEach( PrintAndCount(counter) ); * * // print and count all resolvables named "kernel" * counter = 0; * store.forEach( ByName("kernel"), PrintAndCount(counter) ); * * // print and count all Packages named "kernel" * counter = 0; * store.forEach( chain( ByKind(ResKind::package), * ByName("kernel") ), * PrintAndCount(counter) ); * * // print and count all Packages not named "kernel" * counter = 0; * store.forEach( chain( ByKind(ResKind::package), * not_c(ByName("kernel")) ), * PrintAndCount(counter) ); * * // same as above ;) * counter = 0; * store.forEach( chain( ByKind(ResKind::package), * chain( not_c(ByName("kernel")), * PrintAndCount(counter) ) ), * true_c() ); * \endcode * * As you can see in the last example there is no difference in using * a filter or an action functor, as both have the same signature. * A difference of course is the way forEach interprets the returned * value. * * Consequently you can netgate and chain actions as well. Thus * PrintAndCount(counter) could be * chain(Print(),Count(counter)), if these functors are * provided. * * \note These functors are not limited to be used with ResStore::forEach. * You can use them with std::algorithms as well. * * \note In case you already have functions or methods which do what you * want, but thet don't perfectly match the required signature: Make yourself * familiar with std::ptr_fun, mem_fun, bind1st, bind2nd and compose. * They are sometimes quite helpfull. * * \c PrintAndCount is an example how a functor can return data collected * during the query. You ca easily write a collector, that takes a * std:list\\& and fills it with the matches * found. * * But as a rule of thumb, a functor should be lightweight. If you * want to get data out, pass references to variables in (and assert * these variables live as long as the query lasts). Or use \ref FunctorRef. * * Internally all functors are passed by value. Thus it would not help * you to create an instance of some collecting functor, and pass it * to the query. The query will then fill a copy of your functor, you * won't get the data back. (Well, you probabely could, by using * boosr::ref). * * Why functors and not plain functions? * * You can use plain functions if they don't have to deliver data back to * the application. * The \c C-style approach is having functions that take a void * data * as last argument. This \c data pointer is then passed arround and casted * up and down. * * If you look at a functor, you'll see that it contains both, the function * to call (it's operator() ) and the data you'd otherwise pass as * void * data. That's nice and safe. * * \todo migrate to namespace filter and enhance to support Solvables as well. */ //@{ /////////////////////////////////////////////////////////////////// // // Some ResObject attributes // /////////////////////////////////////////////////////////////////// /** */ typedef std::unary_function ResObjectFilterFunctor; typedef boost::function ResFilter; /** */ template inline filter::ByKind byKind() { return filter::ByKind( ResTraits::kind ); } /** Select ResObject by name. */ struct ByName : public ResObjectFilterFunctor { ByName() {} ByName( const std::string & name_r ) : _name( name_r ) {} bool operator()( ResObject::constPtr p ) const { return p->name() == _name; } std::string _name; }; /** Select ResObject by repository or repository alias. */ struct ByRepository : public ResObjectFilterFunctor { ByRepository( Repository repository_r ) : _alias( repository_r.info().alias() ) {} ByRepository( const std::string & alias_r ) : _alias( alias_r ) {} bool operator()( ResObject::constPtr p ) const { return p->repoInfo().alias() == _alias; } std::string _alias; }; /** Select ResObject by Edition using \a TCompare functor. * * Selects ResObject if TCompare( ResObject->edition(), _edition ) * is \c true. * \code * // use the convenience funktions to create ByEdition: * * byEdition( someedition ); // selects ResObjects with edition == someedition * * byEdition( someedition, CompareByGT() ) // edition > someedition * \endcode */ template > struct ByEdition : public ResObjectFilterFunctor { ByEdition( const Edition & edition_r, TCompare cmp_r ) : _edition( edition_r ) , _cmp( cmp_r ) {} bool operator()( ResObject::constPtr p ) const { return _cmp( p->edition(), _edition ); } Edition _edition; TCompare _cmp; }; /** */ template ByEdition byEdition( const Edition & edition_r, TCompare cmp_r ) { return ByEdition( edition_r, cmp_r ); } /** */ template ByEdition byEdition( const Edition & edition_r ) { return byEdition( edition_r, TCompare() ); } /** Select ResObject by Arch using \a TCompare functor. * * Selects ResObject if TCompare( ResObject->arch(), _arch ) * is \c true. * \code * // use the convenience funktions to create ByArch: * * byArch( somearch ); // selects ResObjects with arch == somearch * * byArch( somearch, CompareByGT() ) // arch > somearch * \endcode */ template > struct ByArch : public ResObjectFilterFunctor { ByArch( const Arch & arch_r, TCompare cmp_r ) : _arch( arch_r ) , _cmp( cmp_r ) {} bool operator()( ResObject::constPtr p ) const { return _cmp( p->arch(), _arch ); } Arch _arch; TCompare _cmp; }; /** */ template ByArch byArch( const Arch & arch_r, TCompare cmp_r ) { return ByArch( arch_r, cmp_r ); } /** */ template ByArch byArch( const Arch & arch_r ) { return byArch( arch_r, TCompare() ); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // Some PoolItem attributes // /////////////////////////////////////////////////////////////////// /** */ typedef std::unary_function PoolItemFilterFunctor; /** Select PoolItem by installed. */ struct ByInstalled : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().isInstalled(); } }; /** Select PoolItem by uninstalled. */ struct ByUninstalled : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().isUninstalled(); } }; /** Select PoolItem by transact. */ struct ByTransact : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().transacts(); } }; /** Select PoolItem by lock. */ struct ByLock : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().isLocked(); } }; /** Select PoolItem by keep. */ struct ByKeep : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().isKept(); } }; /** PoolItem which is recommended. */ struct ByRecommended : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().isRecommended(); } }; /** PoolItem which is suggested. */ struct BySuggested : public PoolItemFilterFunctor { bool operator()( const PoolItem & p ) const { return p.status().isSuggested(); } }; //@} ///////////////////////////////////////////////////////////////// } // namespace resfilter /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESFILTERS_H libzypp-17.7.0/zypp/ResKind.cc000066400000000000000000000054221334444677500161730ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResKind.cc * */ #include #include "zypp/base/String.h" #include "zypp/ResKind.h" #include "zypp/ResTraits.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// const ResKind ResKind::nokind; const ResKind ResKind::package ( "package" ); const ResKind ResKind::patch ( "patch" ); const ResKind ResKind::pattern ( "pattern" ); const ResKind ResKind::product ( "product" ); const ResKind ResKind::srcpackage ( "srcpackage" ); const ResKind ResKind::application ( "application" ); template<> const ResKind ResTraits ::kind( ResKind::package ); template<> const ResKind ResTraits ::kind( ResKind::patch ); template<> const ResKind ResTraits ::kind( ResKind::pattern ); template<> const ResKind ResTraits ::kind( ResKind::product ); template<> const ResKind ResTraits ::kind( ResKind::srcpackage ); template<> const ResKind ResTraits::kind( ResKind::application ); ResKind ResKind::explicitBuiltin( const char * str_r ) { if ( str_r && str_r[0] && str_r[1] && str_r[2] ) { switch ( str_r[3] ) { // NOTE: it needs to be assertd that the separating ':' is present // if a known kind is retuirned. Dependent code relies on this! #define OUTS(K,S) if ( !::strncmp( str_r, ResKind::K.c_str(), S ) && str_r[S] == ':' ) return ResKind::K // ----v case 'c': OUTS( patch, 5 ); break; case 'd': OUTS( product, 7 ); break; case 'k': OUTS( package, 7 ); break; case 'l': OUTS( application, 11 );break; case 'p': OUTS( srcpackage, 10 ); break; case 't': OUTS( pattern, 7 ); break; #undef OUTS } } return nokind; } std::string ResKind::satIdent( const ResKind & refers_r, const std::string & name_r ) { if ( ! refers_r || refers_r == package || refers_r == srcpackage ) return name_r; return str::form( "%s:%s", refers_r.c_str(), name_r.c_str() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ResKind.h000066400000000000000000000075661334444677500160500ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResKind.h * */ #ifndef ZYPP_RESKIND_H #define ZYPP_RESKIND_H #include #include #include "zypp/APIConfig.h" #include "zypp/base/String.h" #include "zypp/IdStringType.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class ResKind /// \brief Resolvable kinds. /// A \b lowercased string and used as identification. Comparison /// against string values is always case insensitive. /////////////////////////////////////////////////////////////////// class ResKind : public IdStringType { public: /** \name Some builtin ResKind constants. */ //@{ /** Value representing \c nokind ("")*/ static const ResKind nokind; static const ResKind package; static const ResKind patch; static const ResKind pattern; static const ResKind product; static const ResKind srcpackage; static const ResKind application; //@} /** Return the builtin kind if \a str_r explicitly prefixed. * \a str_r must start with a builtin kind followed by a \c ':'. * If no builtin kind is detected, \ref nokind is returned, * which usually indicates a \ref package or \ref srcpackage. */ static ResKind explicitBuiltin( const char * str_r ); /** \overload */ static ResKind explicitBuiltin( const std::string & str_r ) { return explicitBuiltin( str_r.c_str() ); } /** \overload */ static ResKind explicitBuiltin( const IdString & str_r ) { return explicitBuiltin( str_r.c_str() ); } public: /** Default ctor: \ref nokind */ ResKind() {} /** Ctor taking kind as string. */ explicit ResKind( sat::detail::IdType id_r ) : _str( str::toLower(IdString(id_r).c_str()) ) {} explicit ResKind( const IdString & idstr_r ) : _str( str::toLower(idstr_r.c_str()) ) {} explicit ResKind( const std::string & str_r ) : _str( str::toLower(str_r) ) {} explicit ResKind( const char * cstr_r ) : _str( str::toLower(cstr_r) ) {} public: /** Return libsolv identifier for name. * Libsolv combines the objects kind and name in a single * identifier \c "pattern:kde_multimedia", \b except for packages * and source packes. They are not prefixed by any kind string. */ static std::string satIdent( const ResKind & refers_r, const std::string & name_r ); /** \overload */ std::string satIdent( const std::string & name_r ) const { return satIdent( *this, name_r ); } private: static int _doCompare( const char * lhs, const char * rhs ) { if ( lhs == rhs ) return 0; if ( lhs && rhs ) return ::strcasecmp( lhs, rhs ); return( lhs ? 1 : -1 ); } private: friend class IdStringType; IdString _str; }; /** \relates ResKind XML output. */ inline std::ostream & dumpAsXmlOn( std::ostream & str, const ResKind & obj ) { return str << "" << obj << ""; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESKIND_H libzypp-17.7.0/zypp/ResObject.cc000066400000000000000000000034041334444677500165120ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResObject.cc * */ #include "zypp/ResObject.h" using namespace zypp; using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { IMPL_PTR_TYPE(ResObject); ResObject::ResObject( const sat::Solvable & solvable_r ) : Resolvable( solvable_r ) {} ResObject::~ResObject() {} std::ostream & ResObject::dumpOn( std::ostream & str ) const { return Resolvable::dumpOn( str ); } } // namespace zypp /////////////////////////////////////////////////////////////////// #include "zypp/ResObjects.h" /////////////////////////////////////////////////////////////////// namespace zypp { ResObject::Ptr makeResObject( const sat::Solvable & solvable_r ) { if ( ! solvable_r ) return 0; ResKind kind( solvable_r.kind() ); #define OUTS(X) if ( kind == ResTraits::kind ) return make( solvable_r ); OUTS( Package ); OUTS( Patch ); OUTS( Pattern ); OUTS( Product ); OUTS( SrcPackage ); OUTS( Application ); #undef OUTS // unknow => return a plain ResObject return new ResObject( solvable_r ); } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ResObject.h000066400000000000000000000130351334444677500163550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResObject.h * */ #ifndef ZYPP_RESOBJECT_H #define ZYPP_RESOBJECT_H #include "zypp/APIConfig.h" #include "zypp/Resolvable.h" #include "zypp/Vendor.h" #include "zypp/sat/LookupAttr.h" #include "zypp/sat/SolvableSet.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class ResObject /// \brief Base for resolvable objects /// /// \note \ref Resolvable is a SolvableType, which provides direct /// access to many of the underlying sat::Solvables properties. /// Don't add common properties here, but in \ref sat::Solvable /// and extend \ref sat::SolvableType. /// /// \see \ref makeResObject for how to construct ResObjects. /// \todo Merge with Resolvable /////////////////////////////////////////////////////////////////// class ResObject : public Resolvable { public: typedef ResObject Self; typedef ResTraits TraitsType; typedef TraitsType::PtrType Ptr; typedef TraitsType::constPtrType constPtr; public: /** Convert \c this into a Ptr of a certain Kind. * This is a convenience to access type specific * attributes. * \return \c NULL if \c this is not of the specified kind. * \code * PoolItem pi; * Package::constPtr pkg = pi->asKind(); * * if ( pi->isKind() ) * DBG << pi->asKind()->keywords() << endl; * \endcode */ template inline typename ResTraits::constPtrType asKind() const; template inline typename ResTraits::PtrType asKind(); public: /** * \short Vendor * \deprecated Though typedef'ed to std::string, Vendor is actually an \ref IdString. */ Vendor vendor() const { return Resolvable::vendor().asString(); } protected: friend ResObject::Ptr makeResObject( const sat::Solvable & solvable_r ); /** Ctor */ ResObject( const sat::Solvable & solvable_r ); /** Dtor */ virtual ~ResObject(); /** Helper for stream output */ virtual std::ostream & dumpOn( std::ostream & str ) const; /** This is a \ref sat::SolvableType (allow implicit conversion in derived classes). */ operator sat::Solvable() const { return satSolvable(); } }; /////////////////////////////////////////////////////////////////// /** Create \ref ResObject from \ref sat::Solvable. * * This function creates the apropriate kind of ResObject * depending on the sat::Solvables kind, and returns a smart * pointer to it. * * If the sat::Solvables kind is not convertible, a NULL * pointer is returned. * * \code * sat::Solvable s; * ResObject::Ptr p( makeResObject( s ) ); * ResObject::Ptr q( make( s ) ); * Package::Ptr pkg( make( s ) ); * \endcode */ ResObject::Ptr makeResObject( const sat::Solvable & solvable_r ); /** Directly create a certain kind of ResObject from \ref sat::Solvable. * * If the sat::Solvables kind is not appropriate, a NULL * pointer is returned. * \code * sat::Solvable s; * ResObject::Ptr p( makeResObject( s ) ); * ResObject::Ptr q( make( s ) ); * Package::Ptr pkg( make( s ) ); * \endcode * \todo make<> was a poor choice (AFAIR because gcc had some trouble with * asKind<>(sat::Solvable)). Remove it in favour of asKind<>(sat::Solvable) */ template inline typename ResTraits::PtrType make( const sat::Solvable & solvable_r ) { return( isKind( solvable_r ) ? new TRes( solvable_r ) : 0 ); } /** \overload Specialisation for ResObject autodetecting the kind of resolvable. */ template<> inline ResObject::Ptr make( const sat::Solvable & solvable_r ) { return makeResObject( solvable_r ); } /** Directly create a certain kind of ResObject from \ref sat::Solvable. */ template inline typename ResTraits::PtrType asKind( const sat::Solvable & solvable_r ) { return make( solvable_r ); } /** Convert ResObject::Ptr into Ptr of a certain Kind. * \return \c NULL iff \a p is \c NULL or points to a Resolvable * not of the specified Kind. * \relates ResObject * \code * asKind(resPtr); * \endcode */ template inline typename ResTraits::PtrType asKind( const ResObject::Ptr & p ) { return dynamic_pointer_cast(p); } template inline typename ResTraits::constPtrType asKind( const ResObject::constPtr & p ) { return dynamic_pointer_cast(p); } template inline typename ResTraits::constPtrType ResObject::asKind() const { return dynamic_cast( this ); } template inline typename ResTraits::PtrType ResObject::asKind() { return dynamic_cast( this ); } } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESOBJECT_H libzypp-17.7.0/zypp/ResObjects.h000066400000000000000000000015351334444677500165420ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResObjects.h * */ #ifndef ZYPP_RESOBJECTS_H #define ZYPP_RESOBJECTS_H #include "zypp/Package.h" #include "zypp/Patch.h" #include "zypp/Pattern.h" #include "zypp/Product.h" #include "zypp/SrcPackage.h" #include "zypp/Application.h" #endif // ZYPP_RESOBJECTS_H libzypp-17.7.0/zypp/ResPool.cc000066400000000000000000000117211334444677500162160ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResPool.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/base/SerialNumber.h" #include "zypp/ZYppFactory.h" #include "zypp/ResPool.h" #include "zypp/pool/PoolImpl.h" #include "zypp/pool/PoolStats.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResPool::instance // METHOD TYPE : ResPool // ResPool ResPool::instance() { static ResPool _val( pool::PoolTraits::Impl_Ptr( new pool::PoolImpl ) ); return _val; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResPool::ResPool // METHOD TYPE : Ctor // ResPool::ResPool( pool::PoolTraits::Impl_Ptr impl_r ) : _pimpl( impl_r ) {} /////////////////////////////////////////////////////////////////// // // Forward to impementation: // /////////////////////////////////////////////////////////////////// ResPoolProxy ResPool::proxy() const { return _pimpl->proxy( *this ); } Resolver & ResPool::resolver() const { return *getZYpp()->resolver(); } const SerialNumber & ResPool::serial() const { return _pimpl->serial(); } bool ResPool::empty() const { return _pimpl->empty(); } ResPool::size_type ResPool::size() const { return _pimpl->size(); } PoolItem ResPool::find( const sat::Solvable & slv_r ) const { return _pimpl->find( slv_r ); } ResPool::size_type ResPool::knownRepositoriesSize() const { return _pimpl->knownRepositoriesSize(); } ResPool::repository_iterator ResPool::knownRepositoriesBegin() const { return _pimpl->knownRepositoriesBegin(); } ResPool::repository_iterator ResPool::knownRepositoriesEnd() const { return _pimpl->knownRepositoriesEnd(); } Repository ResPool::reposFind( const std::string & alias_r ) const { return _pimpl->reposFind( alias_r ); } bool ResPool::hardLockQueriesEmpty() const { return _pimpl->hardLockQueries().empty(); } ResPool::size_type ResPool::hardLockQueriesSize() const { return _pimpl->hardLockQueries().size(); } ResPool::hardLockQueries_iterator ResPool::hardLockQueriesBegin() const { return _pimpl->hardLockQueries().begin(); } ResPool::hardLockQueries_iterator ResPool::hardLockQueriesEnd() const { return _pimpl->hardLockQueries().end(); } void ResPool::setHardLockQueries( const HardLockQueries & newLocks_r ) { _pimpl->setHardLockQueries( newLocks_r ); } void ResPool::getHardLockQueries( HardLockQueries & activeLocks_r ) { _pimpl->getHardLockQueries( activeLocks_r ); } const pool::PoolTraits::ItemContainerT & ResPool::store() const { return _pimpl->store(); } const pool::PoolTraits::Id2ItemT & ResPool::id2item() const { return _pimpl->id2item(); } /////////////////////////////////////////////////////////////////// // // Forward to sat::Pool: // /////////////////////////////////////////////////////////////////// void ResPool::setRequestedLocales( const LocaleSet & locales_r ) { sat::Pool::instance().setRequestedLocales( locales_r ); } bool ResPool::addRequestedLocale( const Locale & locale_r ) { return sat::Pool::instance().addRequestedLocale( locale_r ); } bool ResPool::eraseRequestedLocale( const Locale & locale_r ) { return sat::Pool::instance().eraseRequestedLocale( locale_r ); } const LocaleSet & ResPool::getRequestedLocales() const { return sat::Pool::instance().getRequestedLocales(); } bool ResPool::isRequestedLocale( const Locale & locale_r ) const { return sat::Pool::instance().isRequestedLocale( locale_r ); } const LocaleSet & ResPool::getAvailableLocales() const { return sat::Pool::instance().getAvailableLocales(); } bool ResPool::isAvailableLocale( const Locale & locale_r ) const { return sat::Pool::instance().isAvailableLocale( locale_r ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ResPool & obj ) { return dumpPoolStats( str << "ResPool " << sat::Pool::instance() << endl << " ", obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ResPool.h000066400000000000000000000377751334444677500161010ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResPool.h * */ #ifndef ZYPP_RESPOOL_H #define ZYPP_RESPOOL_H #include #include "zypp/APIConfig.h" #include "zypp/base/Iterator.h" #include "zypp/pool/PoolTraits.h" #include "zypp/PoolItem.h" #include "zypp/Filter.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class SerialNumber; class ResPoolProxy; class Resolver; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ResPool // /** Global ResObject pool. * * Explicitly shared singleton. * * \note Filter iterators provided by ResPool are intended to * operate on internal index tables for faster access. If the * the index is not yet implemented, they are realized as * an ordinary filter iterator. Do not provide filter iterators * here, if there is no index table for it. * * For most (*Begin,*End) iterator-pairs there's also an \ref Iterable * provided, so you can use then in range-based for loops: * \code * // classic: * for_( it, pool.filterBegin(myfilter), pool.filterEnd(myfilter) ) * { ... } * * // range based: * for ( const PoolItem & pi : pool.filter(myfilter) ) * { ... } * \endcode * * \include n_ResPool_nomorenameiter */ class ResPool { friend std::ostream & operator<<( std::ostream & str, const ResPool & obj ); public: /** \ref PoolItem */ typedef PoolItem value_type; typedef pool::PoolTraits::size_type size_type; typedef pool::PoolTraits::const_iterator const_iterator; typedef pool::PoolTraits::repository_iterator repository_iterator; public: /** Singleton ctor. */ static ResPool instance(); /** preliminary */ ResPoolProxy proxy() const; /** The Resolver */ Resolver & resolver() const; public: /** The pools serial number. Changing whenever the * whenever the content changes. (Resolvables or * Dependencies). */ const SerialNumber & serial() const; public: /** */ bool empty() const; /** */ size_type size() const; /** \name Iterate over all PoolItems (all kinds). */ //@{ /** */ const_iterator begin() const { return make_filter_begin( pool::ByPoolItem(), store() ); } /** */ const_iterator end() const { return make_filter_end( pool::ByPoolItem(), store() ); } //@} public: /** Return the corresponding \ref PoolItem. * Pool and sat pool should be in sync. Returns an empty * \ref PoolItem if there is no corresponding \ref PoolItem. * \see \ref PoolItem::satSolvable. */ PoolItem find( const sat::Solvable & slv_r ) const; /** \overload */ PoolItem find( const ResObject::constPtr & resolvable_r ) const { return( resolvable_r ? find( resolvable_r->satSolvable() ) : PoolItem() ); } public: /** \name Iterate over all PoolItems matching a \c TFilter. */ //@{ template filter_iterator filterBegin( const TFilter & filter_r ) const { return make_filter_begin( filter_r, *this ); } template filter_iterator filterEnd( const TFilter & filter_r ) const { return make_filter_end( filter_r, *this ); } template Iterable > filter( const TFilter & filter_r ) const { return makeIterable( filterBegin( filter_r ), filterEnd( filter_r ) ); } //@} /** \name Iterate over all PoolItems by status. * * Simply pass the \ref ResStatus predicate you want to use as filter: * \code * // iterate over all orphaned items: * for_( it, pool.byStatusBegin(&ResStatus::isOrphaned), pool.byStatusEnd(&ResStatus::isOrphaned) ) * {...} * \endcode * * Or use \ref filter::ByStatus in more complex queries: * \code * // iterate over all (orphaned and recommended) items: * functor::Chain myfilter( filter::ByStatus(&ResStatus::isOrphaned), * filter::ByStatus(&ResStatus::isRecommended) ); * for_( it, pool.filterBegin(myfilter), pool.filterEnd(myfilter) ) * { ... } * \endcode */ //@{ filter_iterator byStatusBegin( const filter::ByStatus & filter_r ) const { return make_filter_begin( filter_r, *this ); } filter_iterator byStatusEnd( const filter::ByStatus & filter_r ) const { return make_filter_end( filter_r, *this ); } Iterable > byStatus( const filter::ByStatus & filter_r ) const { return makeIterable( byStatusBegin( filter_r ), byStatusEnd( filter_r ) ); } //@} public: /** \name Iterate over all PoolItems of a certain name and kind. */ //@{ typedef pool::ByIdent ByIdent; typedef pool::PoolTraits::byIdent_iterator byIdent_iterator; byIdent_iterator byIdentBegin( const ByIdent & ident_r ) const { return make_transform_iterator( id2item().equal_range( ident_r.get() ).first, pool::PoolTraits::Id2ItemValueSelector() ); } byIdent_iterator byIdentBegin( ResKind kind_r, IdString name_r ) const { return byIdentBegin( ByIdent(kind_r,name_r) ); } byIdent_iterator byIdentBegin( ResKind kind_r, const C_Str & name_r ) const { return byIdentBegin( ByIdent(kind_r,name_r) ); } template byIdent_iterator byIdentBegin( IdString name_r ) const { return byIdentBegin( ByIdent(ResTraits::kind,name_r) ); } template byIdent_iterator byIdentBegin( const C_Str & name_r ) const { return byIdentBegin( ByIdent(ResTraits::kind,name_r) ); } /** Derive name and kind from \ref PoolItem. */ byIdent_iterator byIdentBegin( const PoolItem & pi_r ) const { return byIdentBegin( ByIdent(pi_r.satSolvable()) ); } /** Derive name and kind from \ref sat::Solvable. */ byIdent_iterator byIdentBegin( sat::Solvable slv_r ) const { return byIdentBegin( ByIdent(slv_r) ); } /** Takes a \ref sat::Solvable::ident string. */ byIdent_iterator byIdentBegin( IdString ident_r ) const { return byIdentBegin( ByIdent(ident_r) ); } byIdent_iterator byIdentEnd( const ByIdent & ident_r ) const { return make_transform_iterator( id2item().equal_range( ident_r.get() ).second, pool::PoolTraits::Id2ItemValueSelector() ); } byIdent_iterator byIdentEnd( ResKind kind_r, IdString name_r ) const { return byIdentEnd( ByIdent(kind_r,name_r) ); } byIdent_iterator byIdentEnd( ResKind kind_r, const C_Str & name_r ) const { return byIdentEnd( ByIdent(kind_r,name_r) ); } template byIdent_iterator byIdentEnd( IdString name_r ) const { return byIdentEnd( ByIdent(ResTraits::kind,name_r) ); } template byIdent_iterator byIdentEnd( const C_Str & name_r ) const { return byIdentEnd( ByIdent(ResTraits::kind,name_r) ); } /** Derive name and kind from \ref PoolItem. */ byIdent_iterator byIdentEnd( const PoolItem & pi_r ) const { return byIdentEnd( ByIdent(pi_r.satSolvable()) ); } /** Derive name and kind from \ref sat::Solvable. */ byIdent_iterator byIdentEnd( sat::Solvable slv_r ) const { return byIdentEnd( ByIdent(slv_r) ); } /** Takes a \ref sat::Solvable::ident string. */ byIdent_iterator byIdentEnd( IdString ident_r ) const { return byIdentEnd( ByIdent(ident_r) ); } Iterable byIdent( const ByIdent & ident_r ) const { return makeIterable( byIdentBegin( ident_r ), byIdentEnd( ident_r ) ); } Iterable byIdent( ResKind kind_r, IdString name_r ) const { return makeIterable( byIdentBegin( kind_r, name_r ), byIdentEnd( kind_r, name_r ) ); } Iterable byIdent( ResKind kind_r, const C_Str & name_r ) const { return makeIterable( byIdentBegin( kind_r, name_r ), byIdentEnd( kind_r, name_r ) ); } template Iterable byIdent( IdString name_r ) const { return makeIterable( byIdentBegin( name_r ), byIdentEnd( name_r ) ); } template Iterable byIdent( const C_Str & name_r ) const { return makeIterable( byIdentBegin( name_r ), byIdentEnd( name_r ) ); } Iterable byIdent( const PoolItem & pi_r ) const { return makeIterable( byIdentBegin( pi_r ), byIdentEnd( pi_r ) ); } Iterable byIdent(sat::Solvable slv_r ) const { return makeIterable( byIdentBegin( slv_r ), byIdentEnd( slv_r ) ); } Iterable byIdent( IdString ident_r ) const { return makeIterable( byIdentBegin( ident_r ), byIdentEnd( ident_r ) ); } //@} public: /** \name Iterate over all ResObjects of a certain kind. */ //@{ typedef filter::ByKind ByKind; typedef filter_iterator byKind_iterator; byKind_iterator byKindBegin( const ResKind & kind_r ) const { return make_filter_begin( ByKind(kind_r), *this ); } template byKind_iterator byKindBegin() const { return make_filter_begin( resfilter::byKind(), *this ); } byKind_iterator byKindEnd( const ResKind & kind_r ) const { return make_filter_end( ByKind(kind_r), *this ); } template byKind_iterator byKindEnd() const { return make_filter_end( resfilter::byKind(), *this ); } Iterable byKind( const ResKind & kind_r ) const { return makeIterable( byKindBegin( kind_r ), byKindEnd( kind_r ) ); } template Iterable byKind() const { return makeIterable( byKindBegin(), byKindEnd() ); } //@} public: /** \name Iterate over all ResObjects with a certain name (all kinds). */ //@{ typedef zypp::resfilter::ByName ByName; typedef filter_iterator byName_iterator; byName_iterator byNameBegin( const std::string & name_r ) const { return make_filter_begin( ByName(name_r), *this ); } byName_iterator byNameEnd( const std::string & name_r ) const { return make_filter_end( ByName(name_r), *this ); } Iterable byName( const std::string & name_r ) const { return makeIterable( byNameBegin( name_r ), byNameEnd( name_r ) ); } //@} public: /** \name Special iterators. */ //@{ //@} public: /** \name Iterate over all Repositories that contribute ResObjects. */ //@{ size_type knownRepositoriesSize() const; repository_iterator knownRepositoriesBegin() const; repository_iterator knownRepositoriesEnd() const; /** Find a \ref Repository named \c alias_r. * Returns \ref Repository::noRepository if there is no such \ref Repository. */ Repository reposFind( const std::string & alias_r ) const; Iterable knownRepositories() const { return makeIterable( knownRepositoriesBegin(), knownRepositoriesEnd() ); } //@} public: /** \name Handle locale support. * * A \ref filter::ByLocaleSupport is provided to iterate over * all items supporting a specific locale. * * \see \ref sat::LocaleSupport for a more convenient interface. * * \code * ResPool pool( ResPool::instance() ); * * filter::ByLocaleSupport f( Locale("de") ); * for_( it, pool.filterBegin(f), pool.filterEnd(f) ) * { * MIL << *it << endl; // supporting "de" * } * * f = filter::ByLocaleSupport( pool.getRequestedLocales() ); * for_( it, pool.filterBegin(f), pool.filterEnd(f) ) * { * MIL << *it << endl; // supporting any requested locale * } * \endcode */ //@{ /** Set the requested locales. * Languages to be supported by the system, e.g. language specific * packages to be installed. */ void setRequestedLocales( const LocaleSet & locales_r ); /** Add one \ref Locale to the set of requested locales. * Return \c true if \c locale_r was newly added to the set. */ bool addRequestedLocale( const Locale & locale_r ); /** Erase one \ref Locale from the set of requested locales. * Return \c false if \c locale_r was not found in the set. */ bool eraseRequestedLocale( const Locale & locale_r ); /** Return the requested locales. * \see \ref setRequestedLocales */ const LocaleSet & getRequestedLocales() const; /** Whether this \ref Locale is in the set of requested locales. */ bool isRequestedLocale( const Locale & locale_r ) const; /** Get the set of available locales. * This is computed from the package data so it actually * represents all locales packages claim to support. */ const LocaleSet & getAvailableLocales() const; /** Whether this \ref Locale is in the set of available locales. */ bool isAvailableLocale( const Locale & locale_r ) const; //@} public: /** \name Handle hard locks (e.g set from /etc/zypp/locks). * * As this kind of lock is query based, it's quite expensive. * * These queries are re-evaluated when adding new repos to the pool. */ //@{ typedef pool::PoolTraits::HardLockQueries HardLockQueries; typedef pool::PoolTraits::hardLockQueries_iterator hardLockQueries_iterator; bool hardLockQueriesEmpty() const; size_type hardLockQueriesSize() const; hardLockQueries_iterator hardLockQueriesBegin() const; hardLockQueries_iterator hardLockQueriesEnd() const; Iterable hardLockQueries() const { return makeIterable( hardLockQueriesBegin(), hardLockQueriesEnd() ); } /** Set a new set of queries. * The hard-locks of existing PoolItems are adjusted according * to the queries. (usually called on target load) */ void setHardLockQueries( const HardLockQueries & newLocks_r ); /** Suggest a new set of queries based on the current selection. * (usually remembered on commit). */ void getHardLockQueries( HardLockQueries & activeLocks_r ); //@} private: const pool::PoolTraits::ItemContainerT & store() const; const pool::PoolTraits::Id2ItemT & id2item() const; private: /** Ctor */ ResPool( pool::PoolTraits::Impl_Ptr impl_r ); /** Access to implementation. */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates ResPool Stream output */ std::ostream & operator<<( std::ostream & str, const ResPool & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #include "zypp/ResPoolProxy.h" #endif // ZYPP_RESPOOL_H libzypp-17.7.0/zypp/ResPoolProxy.cc000066400000000000000000000251721334444677500172650ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResPoolProxy.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/base/Iterator.h" #include "zypp/base/Algorithm.h" #include "zypp/base/Functional.h" #include "zypp/ResPoolProxy.h" #include "zypp/pool/PoolImpl.h" #include "zypp/ui/SelectableImpl.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Tem. friend of PoolItem */ struct PoolItemSaver { void saveState( ResPool pool_r ) { std::for_each( pool_r.begin(), pool_r.end(), std::mem_fun_ref(&PoolItem::saveState) ); } void saveState( ResPool pool_r, const ResKind & kind_r ) { std::for_each( pool_r.byKindBegin(kind_r), pool_r.byKindEnd(kind_r), std::mem_fun_ref(&PoolItem::saveState) ); } void restoreState( ResPool pool_r ) { std::for_each( pool_r.begin(), pool_r.end(), std::mem_fun_ref(&PoolItem::restoreState) ); } void restoreState( ResPool pool_r, const ResKind & kind_r ) { std::for_each( pool_r.byKindBegin(kind_r), pool_r.byKindEnd(kind_r), std::mem_fun_ref(&PoolItem::restoreState) ); } bool diffState( ResPool pool_r ) const { // return whether some PoolItem::sameState reported \c false. return( invokeOnEach( pool_r.begin(), pool_r.end(), std::mem_fun_ref(&PoolItem::sameState) ) < 0 ); } bool diffState( ResPool pool_r, const ResKind & kind_r ) const { // return whether some PoolItem::sameState reported \c false. return( invokeOnEach( pool_r.byKindBegin(kind_r), pool_r.byKindEnd(kind_r), std::mem_fun_ref(&PoolItem::sameState) ) < 0 ); } }; namespace { ui::Selectable::Ptr makeSelectablePtr( pool::PoolImpl::Id2ItemT::const_iterator begin_r, pool::PoolImpl::Id2ItemT::const_iterator end_r ) { pool::PoolTraits::byIdent_iterator begin( begin_r, pool::PoolTraits::Id2ItemValueSelector() ); pool::PoolTraits::byIdent_iterator end( end_r, pool::PoolTraits::Id2ItemValueSelector() ); sat::Solvable solv( begin->satSolvable() ); return new ui::Selectable( ui::Selectable::Impl_Ptr( new ui::Selectable::Impl( solv.kind(), solv.name(), begin, end ) ) ); } } // namespace /////////////////////////////////////////////////////////////////// // // CLASS NAME : ResPoolProxy::Impl // /** ResPoolProxy implementation. * \todo Seedup as it is still using old index */ struct ResPoolProxy::Impl { friend std::ostream & operator<<( std::ostream & str, const Impl & obj ); friend std::ostream & dumpOn( std::ostream & str, const Impl & obj ); typedef std::unordered_map SelectableIndex; typedef ResPoolProxy::const_iterator const_iterator; public: Impl() :_pool( ResPool::instance() ) {} Impl( ResPool pool_r, const pool::PoolImpl & poolImpl_r ) : _pool( pool_r ) { const pool::PoolImpl::Id2ItemT & id2item( poolImpl_r.id2item() ); if ( ! id2item.empty() ) { // set startpoint pool::PoolImpl::Id2ItemT::const_iterator cbegin = id2item.begin(); for_( it, id2item.begin(), id2item.end() ) { if ( it->first != cbegin->first ) { // starting a new Selectable, create the previous one ui::Selectable::Ptr p( makeSelectablePtr( cbegin, it ) ); _selPool.insert( SelectablePool::value_type( p->kind(), p ) ); _selIndex[cbegin->first] = p; // remember new startpoint cbegin = it; } } // create the final one ui::Selectable::Ptr p( makeSelectablePtr( cbegin, id2item.end() ) ); _selPool.insert( SelectablePool::value_type( p->kind(), p ) ); _selIndex[cbegin->first] = p; } } public: ui::Selectable::Ptr lookup( const pool::ByIdent & ident_r ) const { SelectableIndex::const_iterator it( _selIndex.find( ident_r.get() ) ); if ( it != _selIndex.end() ) return it->second; return ui::Selectable::Ptr(); } public: bool empty() const { return _selPool.empty(); } size_type size() const { return _selPool.size(); } const_iterator begin() const { return make_map_value_begin( _selPool ); } const_iterator end() const { return make_map_value_end( _selPool ); } public: bool empty( const ResKind & kind_r ) const { return( _selPool.count( kind_r ) == 0 ); } size_type size( const ResKind & kind_r ) const { return _selPool.count( kind_r ); } const_iterator byKindBegin( const ResKind & kind_r ) const { return make_map_value_lower_bound( _selPool, kind_r ); } const_iterator byKindEnd( const ResKind & kind_r ) const { return make_map_value_upper_bound( _selPool, kind_r ); } public: size_type knownRepositoriesSize() const { return _pool.knownRepositoriesSize(); } repository_iterator knownRepositoriesBegin() const { return _pool.knownRepositoriesBegin(); } repository_iterator knownRepositoriesEnd() const { return _pool.knownRepositoriesEnd(); } public: void saveState() const { PoolItemSaver().saveState( _pool ); } void saveState( const ResKind & kind_r ) const { PoolItemSaver().saveState( _pool, kind_r ); } void restoreState() const { PoolItemSaver().restoreState( _pool ); } void restoreState( const ResKind & kind_r ) const { PoolItemSaver().restoreState( _pool, kind_r ); } bool diffState() const { return PoolItemSaver().diffState( _pool ); } bool diffState( const ResKind & kind_r ) const { return PoolItemSaver().diffState( _pool, kind_r ); } private: ResPool _pool; mutable SelectablePool _selPool; mutable SelectableIndex _selIndex; public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } }; /////////////////////////////////////////////////////////////////// /** \relates ResPoolProxy::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const ResPoolProxy::Impl & obj ) { return str << "ResPoolProxy (" << obj._pool.serial() << ") [" << obj._pool.size() << "solv/" << obj.size()<< "sel]"; } namespace detail { struct DumpFilter { bool operator()( const ui::Selectable::Ptr & selp ) const { return selp->toModify(); } }; } /** \relates ResPoolProxy::Impl Verbose stream output */ inline std::ostream & dumpOn( std::ostream & str, const ResPoolProxy::Impl & obj ) { detail::DumpFilter f; return dumpRange( str << obj << " toModify: ", make_filter_begin( f, obj ), make_filter_end( f, obj ) ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : ResPoolProxy // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResPoolProxy::ResPoolProxy // METHOD TYPE : Ctor // ResPoolProxy::ResPoolProxy() : _pimpl( Impl::nullimpl() ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResPoolProxy::ResPoolProxy // METHOD TYPE : Ctor // ResPoolProxy::ResPoolProxy( ResPool pool_r, const pool::PoolImpl & poolImpl_r ) : _pimpl( new Impl( pool_r, poolImpl_r ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResPoolProxy::~ResPoolProxy // METHOD TYPE : Dtor // ResPoolProxy::~ResPoolProxy() {} /////////////////////////////////////////////////////////////////// // // forward to implementation // /////////////////////////////////////////////////////////////////// ui::Selectable::Ptr ResPoolProxy::lookup( const pool::ByIdent & ident_r ) const { return _pimpl->lookup( ident_r ); } bool ResPoolProxy::empty() const { return _pimpl->empty(); } ResPoolProxy::size_type ResPoolProxy::size() const { return _pimpl->size(); } ResPoolProxy::const_iterator ResPoolProxy::begin() const { return _pimpl->begin(); } ResPoolProxy::const_iterator ResPoolProxy::end() const { return _pimpl->end(); } bool ResPoolProxy::empty( const ResKind & kind_r ) const { return _pimpl->empty( kind_r ); } ResPoolProxy::size_type ResPoolProxy::size( const ResKind & kind_r ) const { return _pimpl->size( kind_r ); } ResPoolProxy::const_iterator ResPoolProxy::byKindBegin( const ResKind & kind_r ) const { return _pimpl->byKindBegin( kind_r ); } ResPoolProxy::const_iterator ResPoolProxy::byKindEnd( const ResKind & kind_r ) const { return _pimpl->byKindEnd( kind_r ); } ResPoolProxy::size_type ResPoolProxy::knownRepositoriesSize() const { return _pimpl->knownRepositoriesSize(); } ResPoolProxy::repository_iterator ResPoolProxy::knownRepositoriesBegin() const { return _pimpl->knownRepositoriesBegin(); } ResPoolProxy::repository_iterator ResPoolProxy::knownRepositoriesEnd() const { return _pimpl->knownRepositoriesEnd(); } void ResPoolProxy::saveState() const { _pimpl->saveState(); } void ResPoolProxy::saveState( const ResKind & kind_r ) const { _pimpl->saveState( kind_r ); } void ResPoolProxy::restoreState() const { _pimpl->restoreState(); } void ResPoolProxy::restoreState( const ResKind & kind_r ) const { _pimpl->restoreState( kind_r ); } bool ResPoolProxy::diffState() const { return _pimpl->diffState(); } bool ResPoolProxy::diffState( const ResKind & kind_r ) const { return _pimpl->diffState( kind_r ); } std::ostream & operator<<( std::ostream & str, const ResPoolProxy & obj ) { return str << *obj._pimpl; } std::ostream & dumpOn( std::ostream & str, const ResPoolProxy & obj ) { return dumpOn( str, *obj._pimpl ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ResPoolProxy.h000066400000000000000000000224271334444677500171270ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResPoolProxy.h * */ #ifndef ZYPP_RESPOOLPROXY_H #define ZYPP_RESPOOLPROXY_H #include #include "zypp/base/PtrTypes.h" #include "zypp/ResPool.h" #include "zypp/ui/Selectable.h" #include "zypp/ui/SelFilters.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ResPoolProxy // /** ResPool::instance().proxy(); * \todo integrate it into ResPool */ class ResPoolProxy { friend std::ostream & operator<<( std::ostream & str, const ResPoolProxy & obj ); friend std::ostream & dumpOn( std::ostream & str, const ResPoolProxy & obj ); typedef std::multimap SelectablePool; public: /** Implementation */ class Impl; typedef MapKVIteratorTraits::Value_const_iterator const_iterator; typedef SelectablePool::size_type size_type; typedef ResPool::repository_iterator repository_iterator; public: /** Default ctor: no pool * Nonempty proxies are provided by \ref ResPool. * \see \ref ResPool::proxy * \code * ResPoolProxy p( ResPool::instance().proxy() ); * \endcode */ ResPoolProxy(); /** Dtor */ ~ResPoolProxy(); public: /** \name Lookup individual Selectables. */ //@{ ui::Selectable::Ptr lookup( const pool::ByIdent & ident_r ) const; ui::Selectable::Ptr lookup( IdString ident_r ) const { return lookup( pool::ByIdent( ident_r ) ); } ui::Selectable::Ptr lookup( ResKind kind_r, const std::string & name_r ) const { return lookup( pool::ByIdent( kind_r, name_r ) ); } ui::Selectable::Ptr lookup( const sat::Solvable & solv_r ) const { return lookup( pool::ByIdent( solv_r ) ); } ui::Selectable::Ptr lookup( const ResObject::constPtr & resolvable_r ) const { return resolvable_r ? lookup( resolvable_r->satSolvable() ) : ui::Selectable::Ptr(); } ui::Selectable::Ptr lookup( const PoolItem & pi_r ) const { return lookup( pi_r.satSolvable() ); } //@} public: /** \name Iterate through all Selectables of a all kind. */ //@{ bool empty() const; size_type size() const; const_iterator begin() const; const_iterator end() const; //@} /** \name Iterate through all Selectables of a certain kind. */ //@{ /** True if there are items of a certain kind. */ bool empty( const ResKind & kind_r ) const; template bool empty() const { return empty( ResTraits::kind ); } /** Number of Items of a certain kind. */ size_type size( const ResKind & kind_r ) const; template size_type size() const { return size( ResTraits::kind ); } const_iterator byKindBegin( const ResKind & kind_r ) const; template const_iterator byKindBegin() const { return byKindBegin( ResTraits::kind ); } const_iterator byKindEnd( const ResKind & kind_r ) const; template const_iterator byKindEnd() const { return byKindEnd( ResTraits::kind ); } Iterable byKind( const ResKind & kind_r ) const { return makeIterable( byKindBegin( kind_r ), byKindEnd( kind_r ) ); } template Iterable byKind() const { return makeIterable( byKindBegin(), byKindEnd() ); } //@} public: /** \name Iterate through all Repositories that contribute ResObjects. */ //@{ size_type knownRepositoriesSize() const; repository_iterator knownRepositoriesBegin() const; repository_iterator knownRepositoriesEnd() const; Iterable knownRepositories() const { return makeIterable( knownRepositoriesBegin(), knownRepositoriesEnd() ); } //@} public: /** Test whether there is at least one ui::Selectable with * an installed object. */ bool hasInstalledObj( const ResKind & kind_r ) const { return( make_begin( kind_r ) != make_end( kind_r ) ); } template bool hasInstalledObj() const { return hasInstalledObj( ResTraits::kind ); } public: /** \name Save and restore state per kind of resolvable. * Simple version, no safety net. So don't restore or diff, * if you didn't save before. * * Diff returns true, if current stat differs from the saved * state. * * Use \ref scopedSaveState for exception safe scoped save/restore */ //@{ void saveState() const; void saveState( const ResKind & kind_r ) const; template void saveState() const { return saveState( ResTraits::kind ); } void restoreState() const; void restoreState( const ResKind & kind_r ) const; template void restoreState() const { return restoreState( ResTraits::kind ); } bool diffState() const; bool diffState( const ResKind & kind_r ) const; template bool diffState() const { return diffState( ResTraits::kind ); } /** * \class ScopedSaveState * \brief Exception safe scoped save/restore state. * Call \ref acceptState to prevent the class from restoring * the remembered state. * \ingroup g_RAII */ struct ScopedSaveState; ScopedSaveState scopedSaveState() const; ScopedSaveState scopedSaveState( const ResKind & kind_r ) const; template ScopedSaveState && scopedSaveState() const { return scopedSaveState( ResTraits::kind ); } //@} private: template filter_iterator make_begin( TFilter filter_r, const ResKind & kind_r ) const { return make_filter_iterator( filter_r, byKindBegin(kind_r), byKindEnd(kind_r) ); } template filter_iterator make_begin( const ResKind & kind_r ) const { return make_begin( TFilter(), kind_r ); } template filter_iterator make_end( TFilter filter_r, const ResKind & kind_r ) const { return make_filter_iterator( filter_r, byKindEnd(kind_r), byKindEnd(kind_r) ); } template filter_iterator make_end( const ResKind & kind_r ) const { return make_end( TFilter(), kind_r ); } private: friend class pool::PoolImpl; /** Ctor */ ResPoolProxy( ResPool pool_r, const pool::PoolImpl & poolImpl_r ); /** Pointer to implementation */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates ResPoolProxy Stream output */ std::ostream & operator<<( std::ostream & str, const ResPoolProxy & obj ); /** \relates ResPoolProxy Verbose stream output */ std::ostream & dumpOn( std::ostream & str, const ResPoolProxy & obj ); /////////////////////////////////////////////////////////////////// struct ResPoolProxy::ScopedSaveState { NON_COPYABLE_BUT_MOVE( ScopedSaveState ); ScopedSaveState( const ResPoolProxy & pool_r ) : _pimpl( new Impl( pool_r ) ) { _pimpl->saveState(); } ScopedSaveState( const ResPoolProxy & pool_r, const ResKind & kind_r ) : _pimpl( new Impl( pool_r, kind_r ) ) { _pimpl->saveState(); } ~ScopedSaveState() { if ( _pimpl ) _pimpl->restoreState(); } void acceptState() { _pimpl.reset(); } private: struct Impl { Impl( const ResPoolProxy & pool_r ) : _pool( pool_r ) {} Impl( const ResPoolProxy & pool_r, const ResKind & kind_r ) : _pool( pool_r ), _kind( new ResKind( kind_r ) ) {} void saveState() { if ( _kind ) _pool.saveState( *_kind ); else _pool.saveState(); } void restoreState() { if ( _kind ) _pool.restoreState( *_kind ); else _pool.restoreState(); } ResPoolProxy _pool; scoped_ptr _kind; }; std::unique_ptr _pimpl; }; inline ResPoolProxy::ScopedSaveState ResPoolProxy::scopedSaveState() const { return ScopedSaveState( *this ); } inline ResPoolProxy::ScopedSaveState ResPoolProxy::scopedSaveState( const ResKind & kind_r ) const { return ScopedSaveState( *this, kind_r ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESPOOLPROXY_H libzypp-17.7.0/zypp/ResStatus.cc000066400000000000000000000075541334444677500166010ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResStatus.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/ResStatus.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// const ResStatus ResStatus::toBeInstalled (UNINSTALLED, UNDETERMINED, TRANSACT); const ResStatus ResStatus::toBeUninstalled (INSTALLED, UNDETERMINED, TRANSACT); const ResStatus ResStatus::toBeUninstalledDueToUpgrade (INSTALLED, UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_UPGRADE); const ResStatus ResStatus::toBeUninstalledDueToObsolete(INSTALLED, UNDETERMINED, TRANSACT, EXPLICIT_INSTALL, DUE_TO_OBSOLETE); /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResStatus::ResStatus // METHOD TYPE : Ctor // ResStatus::ResStatus() {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResStatus::ResStatus // METHOD TYPE : Ctor // ResStatus::ResStatus( bool isInstalled_r ) : _bitfield( isInstalled_r ? INSTALLED : UNINSTALLED ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ResStatus::~ResStatus // METHOD TYPE : Dtor // ResStatus::~ResStatus() {} ResStatus::ResStatus (enum StateValue s, enum ValidateValue v, enum TransactValue t, enum InstallDetailValue i, enum RemoveDetailValue r) : _bitfield (s) { fieldValueAssign(v); fieldValueAssign(t); if (t == TRANSACT) { if (s == INSTALLED) fieldValueAssign(r); else fieldValueAssign(i); } } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ResStatus & obj ) { str << (obj.isInstalled() ? "I" : "U"); str << (obj.isBroken() ? "B" : ( obj.isSatisfied() ? "S" : ( obj.isNonRelevant() ? "N" : "_") ) ); str << (obj.transacts () ? "T" : (obj.isLocked() ? "L" : "_") ); if (obj.isBySolver()) str << "s"; else if (obj.isByApplLow()) str << "l"; else if (obj.isByApplHigh()) str << "h"; else if (obj.isByUser()) str << "u"; str << (obj.isToBeUninstalledDueToObsolete() ? "O" : ( obj.isToBeUninstalledDueToUpgrade() ? "U" : ( obj.isToBeInstalledSoft() ? "S" : "_" ) ) ); str << (obj.isRecommended() ? "r" : "" ); str << (obj.isSuggested() ? "s" : "" ); str << (obj.isOrphaned() ? "o" : "" ); str << (obj.isUnneeded() ? "u" : "" ); return str; } #define OUTS(X) case ResStatus::X: return str << #X; break std::ostream & operator<<( std::ostream & str, ResStatus::TransactValue obj ) { switch ( obj ) { OUTS( KEEP_STATE ); OUTS( LOCKED ); OUTS( TRANSACT ); } return str; } std::ostream & operator<<( std::ostream & str, ResStatus::TransactByValue obj ) { switch ( obj ) { OUTS( SOLVER ); OUTS( APPL_LOW ); OUTS( APPL_HIGH ); OUTS( USER ); } return str; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ResStatus.h000066400000000000000000000562141334444677500164400ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResStatus.h * */ #ifndef ZYPP_RESSTATUS_H #define ZYPP_RESSTATUS_H #include #include #include "zypp/Bit.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace resstatus { class UserLockQueryManip; class StatusBackup; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : ResStatus // /** Status bitfield. * * \li \c StateField Whether the resolvable is or uninstalled (available). * \li \c ValidateField Validate status computed by the solver as * nonrelevant: it is unimportant for the user * satisfied: it important nothing has to be done * broken: it is incomplete. So e.g. an update is needed * \li \c TransactField Whether to transact this resolvable * (delete if installed install if uninstalled). * In case the resolvable is locked, only USER may modify the * transact bit. * \li \c TransactByField Who triggered the transaction. Transaction * bit may be reset by higer levels only. * \li \c TransactDetailField Reason why the Resolvable transacts. * Splitted into \c InstallDetailValue and \c RemoveDetailValue * dependent on the kind of transaction. * \li \c WeakField The solvable will be recommended/suggested by * a to be installed/deleted solvable. * */ class ResStatus { friend std::ostream & operator<<( std::ostream & str, const ResStatus & obj ); friend bool operator==( const ResStatus & lhs, const ResStatus & rhs ); public: /** \name BitField range definitions. * * \note Enlarge FieldType if more bit's needed. It's not yet * checked by the compiler. */ //@{ typedef uint16_t FieldType; typedef bit::BitField BitFieldType; // Bit Ranges within FieldType defined by 1st bit and size: typedef bit::Range StateField; typedef bit::Range ValidateField; typedef bit::Range TransactField; typedef bit::Range TransactByField; typedef bit::Range TransactDetailField; typedef bit::Range LicenceConfirmedField; typedef bit::Range WeakField; typedef bit::Range UserLockQueryField; // internal // enlarge FieldType if more bit's needed. It's not yet // checked by the compiler. //@} public: /** \name Status values. * * Each enum corresponds to a BitField range. * \note Take care that enumerator values actually fit into * the corresponding field. It's not yet checked by the compiler. */ //@{ enum StateValue { UNINSTALLED = bit::RangeValue::value, INSTALLED = bit::RangeValue::value }; enum ValidateValue { UNDETERMINED = bit::RangeValue::value, BROKEN = bit::RangeValue::value, SATISFIED = bit::RangeValue::value, NONRELEVANT = bit::RangeValue::value }; enum TransactValue { KEEP_STATE = bit::RangeValue::value, LOCKED = bit::RangeValue::value, // locked, must not transact TRANSACT = bit::RangeValue::value // transact according to state }; enum TransactByValue { SOLVER = bit::RangeValue::value, APPL_LOW = bit::RangeValue::value, APPL_HIGH = bit::RangeValue::value, USER = bit::RangeValue::value }; enum DetailValue { /** Detail for no transact, i.e. reset any Install/RemoveDetailValue. */ NO_DETAIL = bit::RangeValue::value, }; enum InstallDetailValue { EXPLICIT_INSTALL = bit::RangeValue::value, SOFT_INSTALL = bit::RangeValue::value }; enum RemoveDetailValue { EXPLICIT_REMOVE = bit::RangeValue::value, SOFT_REMOVE = bit::RangeValue::value, DUE_TO_OBSOLETE = bit::RangeValue::value, DUE_TO_UPGRADE = bit::RangeValue::value }; enum LicenceConfirmedValue { LICENCE_UNCONFIRMED = bit::RangeValue::value, LICENCE_CONFIRMED = bit::RangeValue::value }; enum WeakValue // Unlike the other fields those are BITS that may be or'ed! { NO_WEAK = bit::RangeValue::value, SUGGESTED = bit::RangeValue::value, RECOMMENDED = bit::RangeValue::value, ORPHANED = bit::RangeValue::value, UNNEEDED = bit::RangeValue::value }; enum UserLockQuery // internal { USERLOCK_NOMATCH = bit::RangeValue::value, USERLOCK_MATCH = bit::RangeValue::value }; //@} public: /** Default ctor. */ ResStatus(); /** Ctor setting the initial . */ ResStatus( bool isInstalled_r ); /** Dtor. */ ~ResStatus(); /** Debug helper returning the bitfield. * It's save to expose the bitfield, as it can't be used to * recreate a ResStatus. So it is not possible to bypass * transition rules. */ BitFieldType bitfield() const { return _bitfield; } public: bool isLicenceConfirmed() const { return fieldValueIs( LICENCE_CONFIRMED ); } void setLicenceConfirmed( bool toVal_r = true ) { fieldValueAssign( toVal_r ? LICENCE_CONFIRMED : LICENCE_UNCONFIRMED ); } public: bool isRecommended() const { return _bitfield.test( RECOMMENDED ); } bool isSuggested() const { return _bitfield.test( SUGGESTED ); } bool isOrphaned() const { return _bitfield.test( ORPHANED ); } bool isUnneeded() const { return _bitfield.test( UNNEEDED ); } bool hasWeak() const { return ! fieldValueIs( NO_WEAK ); } void resetWeak() { return fieldValueAssign( NO_WEAK ); } void setRecommended( bool toVal_r = true ) { _bitfield.set( RECOMMENDED, toVal_r ); } void setSuggested( bool toVal_r = true ) { _bitfield.set( SUGGESTED, toVal_r ); } void setOrphaned( bool toVal_r = true ) { _bitfield.set( ORPHANED, toVal_r ); } void setUnneeded( bool toVal_r = true ) { _bitfield.set( UNNEEDED, toVal_r ); } public: ValidateValue validate() const { return (ValidateValue)_bitfield.value(); } bool isUndetermined() const { return fieldValueIs( UNDETERMINED ); } bool isSatisfied() const { return fieldValueIs( SATISFIED ); } bool isBroken() const { return fieldValueIs( BROKEN ); } bool isNonRelevant() const { return fieldValueIs( NONRELEVANT ); } public: // These two are IMMUTABLE! bool isInstalled() const { return fieldValueIs( INSTALLED ); } bool isUninstalled() const { return fieldValueIs( UNINSTALLED ); } public: bool staysInstalled() const { return isInstalled() && !transacts(); } bool wasInstalled() const { return staysInstalled(); } //for old status bool isToBeInstalled() const { return isUninstalled() && transacts(); } bool staysUninstalled() const { return isUninstalled() && !transacts(); } bool wasUninstalled() const { return staysUninstalled(); } // for old status bool isToBeUninstalled() const { return isInstalled() && transacts(); } bool isLocked() const { return fieldValueIs( LOCKED ); } bool isUserLocked() const { return isLocked() && isByUser(); } bool isSoftLocked() const { return isKept() && ( isByApplLow() || isByUser() ); } bool isKept() const { return fieldValueIs( KEEP_STATE ); } bool transacts() const { return fieldValueIs( TRANSACT ); } TransactValue getTransactValue() const { return (TransactValue)_bitfield.value(); } /** True if would be on system after commit. */ bool onSystem() const { return( isInstalled() != transacts() ); } /** True if would be off system after commit. */ bool offSystem() const { return ! onSystem(); } bool isBySolver() const { return fieldValueIs( SOLVER ); } bool isByApplLow() const { return fieldValueIs( APPL_LOW ); } bool isByApplHigh() const { return fieldValueIs( APPL_HIGH ); } bool isByUser() const { return fieldValueIs( USER ); } TransactByValue getTransactByValue() const { return (TransactByValue)_bitfield.value(); } bool setTransactByValue(TransactByValue causer) { if ( isLessThan( causer ) ) { fieldValueAssign( causer ); return true; } else { return false; } } bool isToBeUninstalledDueToObsolete () const { return isToBeUninstalled() && fieldValueIs( DUE_TO_OBSOLETE ); } bool isToBeUninstalledDueToUpgrade() const { return isToBeUninstalled() && fieldValueIs( DUE_TO_UPGRADE ); } bool isToBeInstalledSoft () const { return isToBeInstalled() && fieldValueIs( SOFT_INSTALL ); } bool isToBeInstalledNotSoft () const { return isToBeInstalled() && !fieldValueIs( SOFT_INSTALL ); } bool isToBeUninstalledSoft () const { return isToBeUninstalled() && fieldValueIs( SOFT_REMOVE ); } private: /** \name Internal hard lock maintainance */ //@{ friend class resstatus::UserLockQueryManip; bool isUserLockQueryMatch() const { return fieldValueIs( USERLOCK_MATCH ); } void setUserLockQueryMatch( bool match_r ) { fieldValueAssign( match_r ? USERLOCK_MATCH : USERLOCK_NOMATCH ); } //@} public: //------------------------------------------------------------------------ // get/set functions, returnig \c true if requested status change // was successfull (i.e. leading to the desired transaction). // If a lower level (e.g.SOLVER) wants to transact, but it's // already set by a higher level, \c true should be returned. // Removing a higher levels transaction bit should fail. // // The may functions checks only, if the action would return true // if it is called. /** Set TransactValue. * Convenience to set TransactValue from enum. */ bool setTransactValue( TransactValue newVal_r, TransactByValue causer_r ) { switch ( newVal_r ) { case KEEP_STATE: return setTransact( false, causer_r ); break; case LOCKED: return setLock( true, causer_r ); break; case TRANSACT: return setTransact( true, causer_r ); break; } return false; } bool maySetTransactValue( TransactValue newVal_r, TransactByValue causer_r ) { bit::BitField savBitfield = _bitfield; bool ret = setTransactValue( newVal_r, causer_r ); _bitfield = savBitfield; return ret; } /** Apply a lock (prevent transaction). * Currently by USER or APPL_HIGH only, but who knows... * Set LOCKED from KEEP_STATE to be shure all transaction * details were reset properly. */ bool setLock( bool toLock_r, TransactByValue causer_r ) { if ( toLock_r == isLocked() ) { // we're already in the desired state, but in case of // LOCKED, remember a superior causer. if ( isLocked() && isLessThan( causer_r ) ) fieldValueAssign( causer_r ); return true; } // Here: Lock status is to be changed: if ( causer_r != USER && causer_r != APPL_HIGH ) return false; if ( toLock_r ) { // We're in unlocked state, which includes TRANSACT. // Causer must be allowed to reset this. But from // KEEP_STATE every causer is allowed to set the lock. if ( ! setTransact( false, causer_r ) ) return false; fieldValueAssign( LOCKED ); fieldValueAssign( causer_r ); } else { // To leave Locked state it needs a superior causer. if ( isGreaterThan( causer_r ) ) return false; fieldValueAssign( KEEP_STATE ); fieldValueAssign( SOLVER ); // reset to lowest causer // in order to distinguish from keep_state_by_user } return true; } bool maySetLock( bool to_r, TransactByValue causer_r ) { bit::BitField savBitfield = _bitfield; bool ret = setLock( to_r, causer_r ); _bitfield = savBitfield; return ret; } /** Toggle between TRANSACT and KEEP_STATE. * LOCKED state means KEEP_STATE. But in contrary to KEEP_STATE, * LOCKED state is immutable for \a causer_r less than TransactByValue. * KEEP_STATE may be canged by any \a causer_r. */ bool setTransact( bool toTansact_r, TransactByValue causer_r ) { if ( toTansact_r == transacts() ) { // we're already in the desired state, but in case of // TRANSACT, remember a superior causer. if ( transacts() && isLessThan( causer_r ) ) fieldValueAssign( causer_r ); fieldValueAssign( NO_DETAIL ); // Details has to be set again return true; } // Here: transact status is to be changed: if ( ! fieldValueIs( KEEP_STATE ) && isGreaterThan( causer_r ) ) { return false; } if ( toTansact_r ) { fieldValueAssign( TRANSACT ); } else { fieldValueAssign( KEEP_STATE ); } fieldValueAssign( NO_DETAIL ); // Details has to be set again fieldValueAssign( causer_r ); return true; } bool maySetTransact( bool val_r, TransactByValue causer ) { bit::BitField savBitfield = _bitfield; bool ret = setTransact (val_r, causer); _bitfield = savBitfield; return ret; } /** */ bool setSoftLock( TransactByValue causer_r ) { if ( ! setTransact( false, causer_r ) ) return false; if ( fieldValueIs( KEEP_STATE ) && isLessThan( causer_r ) ) fieldValueAssign( causer_r ); return true; } /** Not the same as setTransact( false ). */ bool resetTransact( TransactByValue causer_r ) { if ( ! setTransact( false, causer_r ) ) return false; if ( fieldValueIs( KEEP_STATE ) ) fieldValueAssign( SOLVER ); return true; } /** Soft toggle between TRANSACT and KEEP_STATE. * Similar to setTransact, but leaving KEEP_STATE also requires * a superior \a causerLimit_r. So this is a kind of soft lock. * \code * // SOLVER wants to set TRANSACT, iff KEEP_STATE is * // not superior to APPL_LOW. * setSoftTransact( true, SOLVER, APPL_LOW ); * \endcode */ bool setSoftTransact( bool toTansact_r, TransactByValue causer_r, TransactByValue causerLimit_r ) { if ( fieldValueIs( KEEP_STATE ) && toTansact_r != transacts() && isGreaterThan( causerLimit_r ) ) { // any transact status change requires a superior causer. return false; } return setTransact( toTansact_r, causer_r ); } bool setSoftTransact( bool toTansact_r, TransactByValue causer_r ) { return setSoftTransact( toTansact_r, causer_r, causer_r ); } bool maySetSoftTransact( bool val_r, TransactByValue causer, TransactByValue causerLimit_r ) { bit::BitField savBitfield = _bitfield; bool ret = setSoftTransact( val_r, causer, causerLimit_r ); _bitfield = savBitfield; return ret; } bool maySetSoftTransact( bool val_r, TransactByValue causer ) { return maySetSoftTransact( val_r, causer, causer ); } bool setToBeInstalled (TransactByValue causer) { if (isInstalled()) return false; return setTransact (true, causer); } bool maySetToBeInstalled (TransactByValue causer) { bit::BitField savBitfield = _bitfield; bool ret = setToBeInstalled (causer); _bitfield = savBitfield; return ret; } bool setToBeUninstalled (TransactByValue causer) { if (!isInstalled()) return false; return setTransact (true, causer); } bool maySetToBeUninstalled (TransactByValue causer) { bit::BitField savBitfield = _bitfield; bool ret = setToBeUninstalled (causer); _bitfield = savBitfield; return ret; } //------------------------------------------------------------------------ // *** These are only for the Resolver *** bool setToBeUninstalledDueToObsolete ( ) { if (!setToBeUninstalled (SOLVER)) return false; fieldValueAssign(DUE_TO_OBSOLETE); return true; } bool setToBeUninstalledDueToUpgrade ( TransactByValue causer ) { if (!setToBeUninstalled (causer)) return false; fieldValueAssign(DUE_TO_UPGRADE); return true; } bool setToBeInstalledSoft ( ) { if (isInstalled() || !setSoftTransact (true, SOLVER)) return false; fieldValueAssign(SOFT_INSTALL); return true; } bool setToBeUninstalledSoft ( ) { if (!isInstalled() || !setSoftTransact (true, SOLVER)) return false; fieldValueAssign(SOFT_REMOVE); return true; } bool maySetToBeUninstalledSoft () { bit::BitField savBitfield = _bitfield; bool ret = setToBeUninstalledSoft (); _bitfield = savBitfield; return ret; } bool isSoftInstall () { return fieldValueIs (SOFT_INSTALL); } bool isSoftUninstall () { return fieldValueIs (SOFT_REMOVE); } bool setSoftInstall (bool flag) { fieldValueAssign(flag?SOFT_INSTALL:0); return true; } bool setSoftUninstall (bool flag) { fieldValueAssign(flag?SOFT_REMOVE:0); return true; } bool setUndetermined () { fieldValueAssign(UNDETERMINED); return true; } bool setSatisfied () { fieldValueAssign(SATISFIED); return true; } bool setBroken () { fieldValueAssign(BROKEN); return true; } bool setNonRelevant () { fieldValueAssign(NONRELEVANT); return true; } bool setStatus( ResStatus newStatus_r ) { // State field is immutable! if ( _bitfield.value() != newStatus_r._bitfield.value() ) return false; // Transaction state change allowed? if ( ! setTransactValue( newStatus_r.getTransactValue(), newStatus_r.getTransactByValue() ) ) return false; // Ok, we take it all.. _bitfield = newStatus_r._bitfield; return true; } /** \name Builtin ResStatus constants. */ //@{ static const ResStatus toBeInstalled; static const ResStatus toBeUninstalled; static const ResStatus toBeUninstalledDueToUpgrade; static const ResStatus toBeUninstalledDueToObsolete; //@} private: /** Ctor for intialization of builtin constants. */ ResStatus( StateValue s, ValidateValue v = UNDETERMINED, TransactValue t = KEEP_STATE, InstallDetailValue i = EXPLICIT_INSTALL, RemoveDetailValue r = EXPLICIT_REMOVE ); /** Return whether the corresponding Field has value \a val_r. */ template bool fieldValueIs( FieldType val_r ) const { return _bitfield.isEqual( val_r ); } /** Set the corresponding Field to value \a val_r. */ template void fieldValueAssign( FieldType val_r ) { _bitfield.assign( val_r ); } /** compare two values. */ template bool isGreaterThan( FieldType val_r ) { return _bitfield.value() > val_r; } template bool isLessThan( FieldType val_r ) { return _bitfield.value() < val_r; } private: friend class resstatus::StatusBackup; BitFieldType _bitfield; }; /////////////////////////////////////////////////////////////////// /** \relates ResStatus Stream output */ std::ostream & operator<<( std::ostream & str, const ResStatus & obj ); /** \relates ResStatus Stream output */ std::ostream & operator<<( std::ostream & str, ResStatus::TransactValue obj ); /** \relates ResStatus Stream output */ std::ostream & operator<<( std::ostream & str, ResStatus::TransactByValue obj ); /** \relates ResStatus */ inline bool operator==( const ResStatus & lhs, const ResStatus & rhs ) { return lhs._bitfield == rhs._bitfield; } /** \relates ResStatus */ inline bool operator!=( const ResStatus & lhs, const ResStatus & rhs ) { return ! (lhs == rhs); } /////////////////////////////////////////////////////////////////// namespace resstatus { class StatusBackup { public: StatusBackup() : _status( 0 ) {} StatusBackup( ResStatus & status_r ) : _status( &status_r ) , _bitfield( _status->_bitfield ) {} void replay() { if ( _status ) _status->_bitfield = _bitfield; } private: ResStatus * _status; ResStatus::BitFieldType _bitfield; }; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESSTATUS_H libzypp-17.7.0/zypp/ResTraits.h000066400000000000000000000116431334444677500164200ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResTraits.h * */ #ifndef ZYPP_RESTRAITS_H #define ZYPP_RESTRAITS_H #include "zypp/base/PtrTypes.h" #include "zypp/ResKind.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace traits { ///////////////////////////////////////////////////////////////// /** Those are denoted to be installed, if the * solver verifies them as being satisfied. */ inline bool isPseudoInstalled( ResKind kind_r ) { return( kind_r == ResKind::patch ); } ///////////////////////////////////////////////////////////////// } // namespace traits /////////////////////////////////////////////////////////////////// /** \defgroup ZYPP_RESOLVABLE_SMART_POINTER_TYPES * Resolvable smart pointer types. * * Forward declaration of all Resolvable smart pointer * types provided in \c ResTraits.h (recommended in header files): * \code * #include "zypp/ResTraits.h" * * Resolvable_Ptr // Resolvable * * ResTraits::PtrType // same as above * * Resolvable_constPtr // const Resolvable * * ResTraits::constPtrType // same as above * \endcode * * Synonym, but requires \c Resolvable.h being included: * \code * #include "zypp/Resolvable.h" * * Resolvable::Ptr // same as Resolvable_Ptr but requires Resolvable.h * Resolvable::constPtr // same as Resolvable_constPtr but requires Resolvable.h * \endcode * * \note When adding a \c NewResolvable type here, dont forgett to * put IMPL_PTR_TYPE(NewResolvable); into the \c NewResolvable.cc. * Also check class \ref ResKind, ResKind.cc, ResObject.cc(makeResObject) */ //@{ DEFINE_PTR_TYPE( Resolvable ); DEFINE_PTR_TYPE( ResObject ); DEFINE_PTR_TYPE( Package ); DEFINE_PTR_TYPE( SrcPackage ); DEFINE_PTR_TYPE( Pattern ); DEFINE_PTR_TYPE( Product ); DEFINE_PTR_TYPE( Patch ); DEFINE_PTR_TYPE( Application ); //@} /** Frequently associated. */ class PoolItem; /** ResTraits. Defines common types and the ResKind value. */ template struct ResTraits { typedef ResKind KindType; typedef intrusive_ptr PtrType; typedef intrusive_ptr constPtrType; static const ResKind kind; ///< Defined in ResKind.cc /** Those are denoted to be installed, if the * solver verifies them as being satisfied. */ static bool isPseudoInstalled() { return traits::isPseudoInstalled( kind ); } }; /** ResTraits specialisation for Resolvable. * Resolvable is common base and has no Kind value. */ template<> struct ResTraits { typedef ResKind KindType; typedef intrusive_ptr PtrType; typedef intrusive_ptr constPtrType; }; /** ResTraits specialisation for ResObject. * ResObject is common base and has no Kind value. */ template<> struct ResTraits { typedef ResKind KindType; typedef intrusive_ptr PtrType; typedef intrusive_ptr constPtrType; }; /** Convenient access to well known ResKinds. * \code * ResKind packagekind = ResKind::package; * ResKind packagekind = resKind(); * \endcode */ template inline ResKind resKind() { return ResTraits::kind; } /** Convenient test for ResKinds. * \code * ResKind value; * if ( ResKind::package == value ) * if ( resKind() == value ) * if ( isKind( value ) ) * \endcode */ template inline bool isKind( const ResKind & val_r ) { return( resKind() == val_r ); } /** \overload */ template inline bool isKind( const std::string & val_r ) { return( resKind() == val_r ); } /** \overload */ template inline bool isKind( const char * val_r ) { return( resKind() == val_r ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESTRAITS_H libzypp-17.7.0/zypp/Resolvable.cc000066400000000000000000000022711334444677500167310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Resolvable.cc * */ #include "zypp/Resolvable.h" #include "zypp/ResObject.h" #include "zypp/PoolItem.h" /////////////////////////////////////////////////////////////////// namespace zypp { IMPL_PTR_TYPE(Resolvable); Resolvable::Resolvable( const sat::Solvable & solvable_r ) : _solvable( solvable_r ) {} Resolvable::~Resolvable() {} PoolItem Resolvable::poolItem() const { return PoolItem( *this ); } std::ostream & Resolvable::dumpOn( std::ostream & str ) const { return str << satSolvable(); } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Resolvable.h000066400000000000000000000133601334444677500165740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Resolvable.h * */ #ifndef ZYPP_RESOLVABLE_H #define ZYPP_RESOLVABLE_H #include #include #include "zypp/APIConfig.h" #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/sat/SolvableType.h" /////////////////////////////////////////////////////////////////// namespace zypp { class PoolItem; /////////////////////////////////////////////////////////////////// /// \class Resolvable /// \brief Base for resolvable objects /// /// \note \ref Resolvable is a SolvableType, which provides direct /// access to many of the underlying sat::Solvables properties. /// Don't add common properties here, but in \ref sat::Solvable /// and extend \ref sat::SolvableType. /// /// In most cases you want to retrieve the common properties directly /// from a \ref PoolItem or \ref sat::Solvable. Construction from and /// explicit conversion to sat::Solvable are supported. Next goal is /// to get rid of the smart pointer hierarchy. A Resolvable is actually /// an unsigned and derived classes contain no data, so it makes little /// sense to wrap this into ReferenceCounted smart pointer. /// /// \todo Merge with ResObject /// \todo Get rid of refcout/smart_prt bloat, as this type is actually IdBased (i.e. sizeof(unsigned)) /////////////////////////////////////////////////////////////////// class Resolvable : public sat::SolvableType, public base::ReferenceCounted, private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const Resolvable & obj ); public: typedef Resolvable Self; typedef ResTraits TraitsType; typedef TraitsType::KindType Kind; typedef TraitsType::PtrType Ptr; typedef TraitsType::constPtrType constPtr; public: /** This is a \ref sat::SolvableType. */ explicit operator sat::Solvable() const { return _solvable; } /** Access the corresponding \ref PoolItem. */ PoolItem poolItem() const; protected: /** Ctor */ Resolvable( const sat::Solvable & solvable_r ); /** Dtor */ virtual ~Resolvable(); /** Helper for stream output */ virtual std::ostream & dumpOn( std::ostream & str ) const; private: sat::Solvable _solvable; }; /////////////////////////////////////////////////////////////////// /** \relates Resolvable Stream output */ inline std::ostream & operator<<( std::ostream & str, const Resolvable & obj ) { return obj.dumpOn( str ); } /** \relates Resolvable More verbose stream output including dependencies */ inline std::ostream & dumpOn( std::ostream & str, const Resolvable & obj ) { return dumpOn( str, obj.satSolvable() ); } /** Test whether a Resolvable::Ptr is of a certain Kind. * \return \c Ture iff \a p is not \c NULL and points to a Resolvable * of the specified Kind. * \relates Resolvable * \code * isKind(resPtr); * \endcode */ template inline bool isKind( const Resolvable::constPtr & p ) { return p && p->isKind(); } // Specialization for Resolvable: Always true. template<> inline bool isKind( const Resolvable::constPtr & p ) { return !!p; } // Specialization for ResObject: Always true. template<> inline bool isKind( const Resolvable::constPtr & p ) { return !!p; } /** Convert Resolvable::Ptr into Ptr of a certain Kind. * \return \c NULL iff \a p is \c NULL or points to a Resolvable * not of the specified Kind. * \relates Resolvable * \code * asKind(resPtr); * \endcode */ template inline typename ResTraits::PtrType asKind( const Resolvable::Ptr & p ) { return dynamic_pointer_cast(p); } template inline typename ResTraits::constPtrType asKind( const Resolvable::constPtr & p ) { return dynamic_pointer_cast(p); } /////////////////////////////////////////////////////////////////// /** \relates Resolvable Compare Resolvable::constPtr according to \a kind and \a name. * \deprecated Get rid of refcout/smart_prt bloat, use */ inline int compareByN( const Resolvable::constPtr & lhs, const Resolvable::constPtr & rhs ) { int ret = 0; if ( lhs != rhs ) { if ( lhs && rhs ) ret = compareByN( *lhs, *rhs ); else ret = lhs ? 1 : -1; } return ret; } /** \relates Resolvable Compare according to \a kind, \a name and \a edition. */ inline int compareByNVR( const Resolvable::constPtr & lhs, const Resolvable::constPtr & rhs ) { int ret = 0; if ( lhs != rhs ) { if ( lhs && rhs ) ret = compareByNVR( *lhs, *rhs ); else ret = lhs ? 1 : -1; } return ret; } /** \relates Resolvable Compare Resolvable::constPtr according to \a kind, \a name, \a edition and \a arch. */ inline int compareByNVRA( const Resolvable::constPtr & lhs, const Resolvable::constPtr & rhs ) { int ret = 0; if ( lhs != rhs ) { if ( lhs && rhs ) ret = compareByNVRA( *lhs, *rhs ); else ret = lhs ? 1 : -1; } return ret; } } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESOLVABLE_H libzypp-17.7.0/zypp/Resolver.cc000066400000000000000000000167661334444677500164520ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Resolver.cc * */ #include #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/Resolver.h" #include "zypp/ZConfig.h" #include "zypp/TriBool.h" #include "zypp/solver/detail/Resolver.h" #include "zypp/solver/detail/Testcase.h" #include "zypp/solver/detail/ItemCapKind.h" #include "zypp/sat/Transaction.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// using namespace solver; IMPL_PTR_TYPE(Resolver); /////////////////////////////////////////////////////////////////// // // METHOD NAME : Resolver::Resolver // METHOD TYPE : Ctor // Resolver::Resolver( const ResPool & pool ) : _pimpl( new solver::detail::ResolverInternal(pool) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : Resolver::~Resolver // METHOD TYPE : Dtor // Resolver::~Resolver() {} /////////////////////////////////////////////////////////////////// // // Resolver interface forwarded to implementation // /////////////////////////////////////////////////////////////////// bool Resolver::verifySystem () { return _pimpl->verifySystem(); } bool Resolver::resolvePool () { return _pimpl->resolvePool(); } bool Resolver::resolveQueue( solver::detail::SolverQueueItemList & queue ) { return _pimpl->resolveQueue(queue); } void Resolver::undo() { _pimpl->undo(); } ResolverProblemList Resolver::problems () { return _pimpl->problems (); } void Resolver::applySolutions( const ProblemSolutionList & solutions ) { _pimpl->applySolutions (solutions); } sat::Transaction Resolver::getTransaction() { return _pimpl->getTransaction(); } bool Resolver::doUpgrade() { return _pimpl->doUpgrade(); } void Resolver::doUpdate() { _pimpl->doUpdate(); } void Resolver::setForceResolve( bool yesno_r ) { _pimpl->setForceResolve( yesno_r ); } bool Resolver::forceResolve() const { return _pimpl->forceResolve(); } void Resolver::setIgnoreAlreadyRecommended( bool yesno_r) { _pimpl->setIgnoreAlreadyRecommended( yesno_r ); } bool Resolver::ignoreAlreadyRecommended() const { return _pimpl->ignoreAlreadyRecommended(); } void Resolver::setOnlyRequires( bool yesno_r ) { _pimpl->setOnlyRequires( yesno_r ); } void Resolver::resetOnlyRequires() { _pimpl->setOnlyRequires( indeterminate ); } bool Resolver::onlyRequires() const { return _pimpl->onlyRequires(); } void Resolver::setUpgradeMode( bool yesno_r ) { return _pimpl->setUpgradeMode( yesno_r ); } bool Resolver::upgradeMode() const { return _pimpl->isUpgradeMode(); } void Resolver::setUpdateMode( bool yesno_r ) { return _pimpl->setUpdateMode( yesno_r ); } bool Resolver::updateMode() const { return _pimpl->isUpdateMode(); } void Resolver::setSystemVerification( bool yesno_r ) { _pimpl->setVerifyingMode( yesno_r ); } void Resolver::setDefaultSystemVerification() { _pimpl->setVerifyingMode( indeterminate ); } bool Resolver::systemVerification() const { return _pimpl->isVerifyingMode(); } void Resolver::setSolveSrcPackages( bool yesno_r ) { _pimpl->setSolveSrcPackages( yesno_r ); } void Resolver::setDefaultSolveSrcPackages() { _pimpl->setSolveSrcPackages( indeterminate ); } bool Resolver::solveSrcPackages() const { return _pimpl->solveSrcPackages(); } void Resolver::setCleandepsOnRemove( bool yesno_r ) { _pimpl->setCleandepsOnRemove( yesno_r ); } void Resolver::setDefaultCleandepsOnRemove() { _pimpl->setCleandepsOnRemove( indeterminate ); } bool Resolver::cleandepsOnRemove() const { return _pimpl->cleandepsOnRemove(); } #define ZOLV_FLAG_BOOL( ZSETTER, ZGETTER ) \ void Resolver::ZSETTER( bool yesno_r ){ _pimpl->ZSETTER( yesno_r ); } \ bool Resolver::ZGETTER() const { return _pimpl->ZGETTER(); } \ #define ZOLV_FLAG_TRIBOOL( ZSETTER, ZDEFAULT, ZGETTER ) \ ZOLV_FLAG_BOOL( ZSETTER , ZGETTER ) \ void Resolver::ZDEFAULT() { _pimpl->ZSETTER( indeterminate ); } \ ZOLV_FLAG_TRIBOOL( setAllowDowngrade, setDefaultAllowDowngrade, allowDowngrade ) ZOLV_FLAG_TRIBOOL( setAllowNameChange, setDefaultAllowNameChange, allowNameChange ) ZOLV_FLAG_TRIBOOL( setAllowArchChange, setDefaultAllowArchChange, allowArchChange ) ZOLV_FLAG_TRIBOOL( setAllowVendorChange, setDefaultAllowVendorChange, allowVendorChange ) ZOLV_FLAG_TRIBOOL( dupSetAllowDowngrade, dupSetDefaultAllowDowngrade, dupAllowDowngrade ) ZOLV_FLAG_TRIBOOL( dupSetAllowNameChange, dupSetDefaultAllowNameChange, dupAllowNameChange ) ZOLV_FLAG_TRIBOOL( dupSetAllowArchChange, dupSetDefaultAllowArchChange, dupAllowArchChange ) ZOLV_FLAG_TRIBOOL( dupSetAllowVendorChange, dupSetDefaultAllowVendorChange, dupAllowVendorChange ) #undef ZOLV_FLAG_BOOL #undef ZOLV_FLAG_TRIBOOL void Resolver::addUpgradeRepo( Repository repo_r ) { _pimpl->addUpgradeRepo( repo_r ); } bool Resolver::upgradingRepos() const { return !_pimpl->upgradeRepos().empty(); } bool Resolver::upgradingRepo( Repository repo_r ) const { return _pimpl->upgradingRepo( repo_r ); } void Resolver::removeUpgradeRepo( Repository repo_r ) { _pimpl->removeUpgradeRepo( repo_r ); } void Resolver::removeUpgradeRepos() { _pimpl->removeUpgradeRepos(); } void Resolver::addRequire( const Capability & capability ) { _pimpl->addExtraRequire( capability ); } void Resolver::addConflict( const Capability & capability ) { _pimpl->addExtraConflict( capability ); } void Resolver::removeRequire( const Capability & capability ) { _pimpl->removeExtraRequire( capability ); } void Resolver::removeConflict( const Capability & capability ){ _pimpl->removeExtraConflict( capability ); } CapabilitySet Resolver::getRequire() const { return _pimpl->extraRequires(); } CapabilitySet Resolver::getConflict() const { return _pimpl->extraConflicts(); } std::list Resolver::problematicUpdateItems() const { return _pimpl->problematicUpdateItems(); } bool Resolver::createSolverTestcase( const std::string & dumpPath, bool runSolver ) { solver::detail::Testcase testcase (dumpPath); return testcase.createTestcase(*_pimpl, true, runSolver); } solver::detail::ItemCapKindList Resolver::isInstalledBy( const PoolItem & item ) { return _pimpl->isInstalledBy (item); } solver::detail::ItemCapKindList Resolver::installs( const PoolItem & item ) { return _pimpl->installs (item); } solver::detail::ItemCapKindList Resolver::satifiedByInstalled( const PoolItem & item ) { return _pimpl->satifiedByInstalled (item); } solver::detail::ItemCapKindList Resolver::installedSatisfied( const PoolItem & item ) { return _pimpl->installedSatisfied (item); } void Resolver::reset() { _pimpl->reset( false ); /* Do not keep extra requires/conflicts */ } std::ostream & operator<<( std::ostream & str, const Resolver & obj ) { return str << *obj._pimpl; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Resolver.h000066400000000000000000000372531334444677500163060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Resolver.h * */ #ifndef ZYPP_RESOLVER_H #define ZYPP_RESOLVER_H #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/PtrTypes.h" #include "zypp/ResPool.h" #include "zypp/PoolItem.h" #include "zypp/Capabilities.h" #include "zypp/Capability.h" #include "zypp/solver/detail/Types.h" #include "zypp/ProblemTypes.h" #include "zypp/ResolverProblem.h" #include "zypp/ProblemSolution.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace sat { class Transaction; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Resolver // /** * Dependency resolver interface. * * To resolve dependencies after making changes to the \ref ResPool (using * \ref addRequire(), \ref addConflict(), \ref applySolutions(), or by making * the changes directly on the \ref PoolItem status objects, * call the \ref resolvePool() method. */ class Resolver : public base::ReferenceCounted, private base::NonCopyable { public: /** Ctor */ Resolver( const ResPool & pool ); /** Dtor */ virtual ~Resolver(); /** * Resolve package dependencies: * * Enter \ref systemVerification mode to monitor and repair dependencies * of already installed packages, and solve immediately. * * Call \ref setSystemVerification to turn of this mode. **/ bool verifySystem(); /** * Resolve package dependencies: * * Try to execute all pending transactions (there may be more than * one!). * The solver collects all transactions (install/delete resolvables) * from the pool, generates task, solving it and writes the * results back to pool * * Returns "true" on success (i.e., if there were no problems that * need user interaction) and "false" if there were problems. In * the latter case, use problems() and later applySolutions() * below. **/ bool resolvePool(); /** * Resolve package dependencies: * * The solver works off the given queue and writes back the solution * to pool. * * Returns "true" on success (i.e., if there were no problems that * need user interaction) and "false" if there were problems. In * the latter case, use problems() and later applySolutions() * below. * The solution could be that the solver remove/add some entries * in the task queue. So make a new call of resolveQueue after you * have applied any solution AND check the parameter "queue" if * there has been any changes by the solver and adapt these changes * to e.g. the selectables. * **/ bool resolveQueue( solver::detail::SolverQueueItemList & queue ); /* * Undo solver changes done in resolvePool() * Throwing away all ignored dependencies. */ void undo(); /* * Resets solver information and verify option. */ void reset(); /** * Do an distribution upgrade (DUP) * * Perform a distribution upgrade. This performs an update of * all packages with a special resolver algorithm which takes * care of package splits, pattern and product updates, * etc. * This call also turns the solver into \ref upgradeMode, so * consecutive calls to \ref resolvePool performed in this * mode too. Call \ref setUpgradeMode to turn this mode off. * * \see \ref addUpgradeRepo **/ bool doUpgrade(); /** * Update to newest package * * Install the newest version of your installed packages as * far as possible. This means a newer package will NOT be * installed if it generates dependency problems. * So the user will not get an error message. * **/ void doUpdate( ); /** * Unmaintained packages which does not fit to * the updated system (broken dependencies) will be * deleted. * Return the list of deleted items. * Note : This list is valid after the call doUpgrade() only. **/ std::list problematicUpdateItems() const; /** * Return the dependency problems found by the last call to * resolveDependencies(). If there were no problems, the returned * list will be empty. **/ ResolverProblemList problems(); /** * Apply problem solutions. No more than one solution per problem * can be applied. **/ void applySolutions( const ProblemSolutionList & solutions ); /** * Return the \ref Transaction computed by the last solver run. */ sat::Transaction getTransaction(); /** * Remove resolvables which are conflicts with others or * have unfulfilled requirements. * This behaviour is favourited by ZMD. **/ void setForceResolve( bool force ); bool forceResolve() const; /** * Ignore recommended packages that were already recommended by * the installed packages **/ void setIgnoreAlreadyRecommended( bool yesno_r ); bool ignoreAlreadyRecommended() const; /** * Setting whether required packages are installed ONLY * So recommended packages, language packages and packages which depend * on hardware (modalias) will not be regarded. **/ void setOnlyRequires( bool yesno_r ); void resetOnlyRequires(); // set back to default (described in zypp.conf) bool onlyRequires() const; /** * Setting whether the solver should perform in 'upgrade' mode or * not. * \see \ref doUpgrade. */ void setUpgradeMode( bool yesno_r ); bool upgradeMode() const; /** * Setting whether the solver should perform in 'update' mode or * not. If on, it will add a resolver job to update all packages. * \see \ref doUpdate. */ void setUpdateMode( bool yesno_r ); bool updateMode() const; /** \name Solver flags (non DUP modes) * Default for all flags is \c false unless overwritten by zypp.conf. */ //@{ /** Whether to allow to downgrade installed solvable */ void setAllowDowngrade( bool yesno_r ); void setDefaultAllowDowngrade(); // Set back to default bool allowDowngrade() const; /** Whether to allow to change name of installed solvable */ void setAllowNameChange( bool yesno_r ); void setDefaultAllowNameChange(); // Set back to default bool allowNameChange() const; /** Whether to allow to change architecture of installed solvables */ void setAllowArchChange( bool yesno_r ); void setDefaultAllowArchChange(); // Set back to default bool allowArchChange() const; /** Whether to allow to change vendor of installed solvables * \see \ref VendorAttr for definition of vendor equivalence. */ void setAllowVendorChange( bool yesno_r ); void setDefaultAllowVendorChange(); // Set back to default bool allowVendorChange() const; //@} /** * System verification mode also monitors and repairs dependencies * of already installed packages. * \see \ref verifySystem */ void setSystemVerification( bool yesno_r ); void setDefaultSystemVerification(); bool systemVerification() const; /** * Set whether to solve source packages build dependencies per default. * Usually turned off and if, enabled per source package. * \NOTE This affects only source packges selected in the \ref ResPool. No solver rule * will be generated for them. Source packages requested via e.g. \ref addRequire will * always be solved. * \NOTE Be carefull. The older the source package is, the stranger may be the * result of solving it's build dependencies. */ void setSolveSrcPackages( bool yesno_r ); void setDefaultSolveSrcPackages(); bool solveSrcPackages() const; /** * Cleanup when deleting packages. Whether the solver should per default * try to remove packages exclusively required by the ones he's asked to delete. */ void setCleandepsOnRemove( bool yesno_r ); void setDefaultCleandepsOnRemove(); // set back to default (in zypp.conf) bool cleandepsOnRemove() const; /** \name Solver flags for DUP mode. * DUP mode default settings differ from 'ordinary' ones. Default for * all DUP flags is \c true unless overwritten by zypp.conf. */ //@{ /** dup mode: allow to downgrade installed solvable */ void dupSetAllowDowngrade( bool yesno_r ); void dupSetDefaultAllowDowngrade(); // Set back to default (in zypp.conf) bool dupAllowDowngrade() const; /** dup mode: allow to change name of installed solvable */ void dupSetAllowNameChange( bool yesno_r ); void dupSetDefaultAllowNameChange(); // Set back to default (in zypp.conf) bool dupAllowNameChange() const; /** dup mode: allow to change architecture of installed solvables */ void dupSetAllowArchChange( bool yesno_r ); void dupSetDefaultAllowArchChange(); // Set back to default (in zypp.conf) bool dupAllowArchChange() const; /** dup mode: allow to change vendor of installed solvables*/ void dupSetAllowVendorChange( bool yesno_r ); void dupSetDefaultAllowVendorChange(); // Set back to default (in zypp.conf) bool dupAllowVendorChange() const; //@} /** \name Upgrade to content of a specific repository. * \note This is an ordinary solver request. You should simply * \ref resolvePool to execute, and not \ref doUpgrade. */ //@{ /** * Adding request to perform a dist upgrade restricted to this repository. * * This is what e.g. zypper dup --repo myrepo should perform. * \see \ref doUpgrade */ void addUpgradeRepo( Repository repo_r ); /** * Whether there is at least one \c UpgradeRepo request pending */ bool upgradingRepos() const; /** * Whether there is an \c UpgradeRepo request pending for this repo. */ bool upgradingRepo( Repository repo_r ) const; /** * Remove an upgrade request for this repo. */ void removeUpgradeRepo( Repository repo_r ); /** * Remove all upgrade repo requests. */ void removeUpgradeRepos(); //@} /** * Adding additional requirement * */ void addRequire( const Capability & capability ); /** * Adding additional conflict * */ void addConflict( const Capability & capability ); /** * Remove the additional requirement set by \ref addRequire(Capability). * */ void removeRequire( const Capability & capability ); /** * Remove the additional conflict set by \ref addConflict(Capability). * */ void removeConflict( const Capability & capability ); /** * Get all the additional requirements set by \ref addRequire(Capability). * */ CapabilitySet getRequire() const; /** * Get all the additional conflicts set by \ref addConflict(Capability). * */ CapabilitySet getConflict() const; /** * Generates a solver Testcase of the current state * * \parame dumpPath destination directory of the created directory * \return true if it was successful */ bool createSolverTestcase( const std::string & dumpPath = "/var/log/YaST2/solverTestcase", bool runSolver = true ); /** * Gives information about WHO has pused an installation of an given item. * * \param item Evaluate additional information for this resolvable. * \return A list of structures which contains: * item Item which has triggered the installation of the given param item. * initialInstallation This item has triggered the installation * Not already fullfilled requierement only. * cap Capability which has triggerd this installation * capKind Kind of that capability (e.g. Dep::REQUIRES,Dep::RECOMMENDS,... ) * * Note: In order to have a result start a solver run before. Not matter if it is valid or invalid. * */ solver::detail::ItemCapKindList isInstalledBy( const PoolItem & item ); /** * Gives information about WHICH additional items will be installed due the installation of an item. * * \param item Evaluate additional information for this resolvable. * \return A list of structures which contains: * item Item which has triggered the installation of the given param item. * initialInstallation This item has triggered the installation * Not already fullfilled requierement only. * cap Capability which has triggerd this installation * capKind Kind of that capability (e.g. Dep::REQUIRES,Dep::RECOMMENDS,... ) * * Note: In order to have a result start a solver run before. Not matter if it is valid or invalid. * */ solver::detail::ItemCapKindList installs( const PoolItem & item ); /** * Gives information about WHICH installed items are requested by the installation of an item. * * \param item Evaluate additional information for this resolvable. * \return A list of structures which contains: * item Item which has triggered the installation of the given param item. * initialInstallation This item has triggered the installation * Not already fullfilled requierement only. * cap Capability which has triggerd this installation * capKind Kind of that capability (e.g. Dep::REQUIRES,Dep::RECOMMENDS,... ) * * Note: In order to have a result start a solver run before. Not matter if it is valid or invalid. * */ solver::detail::ItemCapKindList satifiedByInstalled( const PoolItem & item ); /** * Gives information about WHICH items require an already installed item. * * \param item Evaluate additional information for this resolvable. * \return A list of structures which contains: * item Item which has triggered the installation of the given param item. * initialInstallation This item has triggered the installation * Not already fullfilled requierement only. * cap Capability which has triggerd this installation * capKind Kind of that capability (e.g. Dep::REQUIRES,Dep::RECOMMENDS,... ) * * Note: In order to have a result start a solver run before. Not matter if it is valid or invalid. * */ solver::detail::ItemCapKindList installedSatisfied( const PoolItem & item ); private: friend std::ostream & operator<<( std::ostream & str, const Resolver & obj ); zypp::RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates Resolver Stream output */ std::ostream & operator<<( std::ostream & str, const Resolver & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESOLVER_H libzypp-17.7.0/zypp/ResolverNamespace.h000066400000000000000000000046561334444677500201240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ResolverNamespace.h */ #ifndef ZYPP_RESOLVERNAMESPACE_H #define ZYPP_RESOLVERNAMESPACE_H #include #include #include "zypp/base/Flags.h" #include "zypp/IdString.h" /////////////////////////////////////////////////////////////////// namespace zypp { /** The resolvers dependency namespaces */ enum class ResolverNamespace : std::uint8_t { language = 1<<0, ///< language support modalias = 1<<1, ///< hardware support filesystem = 1<<2, ///< filesystems }; /** \relates ResolverNamespace Flags */ ZYPP_DECLARE_FLAGS_AND_OPERATORS(ResolverNamespaces,ResolverNamespace); /** \relates ResolverNamespace The underlying libsolv ID */ inline constexpr IdString asIdString( ResolverNamespace obj ) { return IdString( obj == ResolverNamespace::language ? sat::detail::namespaceLanguage : obj == ResolverNamespace::modalias ? sat::detail::namespaceModalias : obj == ResolverNamespace::filesystem ? sat::detail::namespaceFilesystem : sat::detail::noId ); } /** \relates ResolverNamespace String representation */ inline std::string asString( ResolverNamespace obj ) { return asIdString( obj ).asString(); } /** \relates ResolverNamespace Stream output */ inline std::ostream & operator<<( std::ostream & str, ResolverNamespace obj ) { return str << asIdString( obj ); } /** \relates ResolverNamespaces Stream output */ inline std::ostream & operator<<( std::ostream & str, ResolverNamespaces obj ) { return str << stringify( obj, { { ResolverNamespace::language, "language" }, { ResolverNamespace::modalias, "modalias" }, { ResolverNamespace::filesystem, "filesystem" }, }, "namespace:", "|", "" ); } } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_RESOLVERNAMESPACE_H libzypp-17.7.0/zypp/ResolverProblem.cc000066400000000000000000000107051334444677500177560ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* ResolverProblem.cc * * Easy-to use interface to the ZYPP dependency resolver * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #include "zypp/base/LogTools.h" #include "zypp/ResolverProblem.h" #include "zypp/ProblemSolution.h" using std::endl; ///////////////////////////////////////////////////////////////////////// namespace zypp { IMPL_PTR_TYPE(ResolverProblem); ///////////////////////////////////////////////////////////////////////// namespace { // HACK for bsc#985674: filter duplicate solutions // inline bool solutionInList( const ProblemSolutionList & solutions_r, const ProblemSolution_Ptr & solution_r ) { for ( const ProblemSolution_Ptr & solution : solutions_r ) { if ( solution->description() == solution_r->description() && solution->details() == solution_r->details() && solution->actions().size() == solution_r->actions().size() ) return true; } return false; } } // namespace ///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class ResolverProblem::Impl /// \brief ResolverProblem implementation. /////////////////////////////////////////////////////////////////// struct ResolverProblem::Impl { Impl() {} Impl( std::string && description ) : _description( std::move(description) ) {} Impl( std::string && description, std::string && details ) : _description( std::move(description) ) , _details( std::move(details) ) {} std::string _description; std::string _details; ProblemSolutionList _solutions; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// ResolverProblem::ResolverProblem() : _pimpl( new Impl() ) {} ResolverProblem::ResolverProblem( std::string description ) : _pimpl( new Impl( std::move(description) ) ) {} ResolverProblem::ResolverProblem( std::string description, std::string details ) : _pimpl( new Impl( std::move(description), std::move(details) ) ) {} ResolverProblem::~ResolverProblem() {} const std::string & ResolverProblem::description() const { return _pimpl->_description; } const std::string & ResolverProblem::details() const { return _pimpl->_details; } const ProblemSolutionList & ResolverProblem::solutions() const { return _pimpl->_solutions; } void ResolverProblem::setDescription( std::string description ) { _pimpl->_description = std::move(description); } void ResolverProblem::setDetails( std::string details ) { _pimpl->_details = std::move(details); } void ResolverProblem::addSolution( ProblemSolution_Ptr solution, bool inFront ) { if ( ! solutionInList( _pimpl->_solutions, solution ) ) // bsc#985674: filter duplicate solutions { if (inFront) { _pimpl->_solutions.push_front( solution ); } else { _pimpl->_solutions.push_back( solution ); } } } std::ostream & operator<<( std::ostream & os, const ResolverProblem & obj ) { os << "Problem:" << endl; os << "==============================" << endl; os << obj.description() << endl; os << obj.details() << endl; os << "------------------------------" << endl; os << obj.solutions(); os << "==============================" << endl; return os; } std::ostream & operator<<( std::ostream & os, const ResolverProblemList & obj ) { return dumpRange( os, obj.begin(), obj.end(), "", "", ", ", "", "" ); } } // namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ResolverProblem.h000066400000000000000000000054171334444677500176240ustar00rootroot00000000000000/* * * Easy-to use interface to the ZYPP dependency resolver * * Author: Stefan Hundhammer * **/ #ifndef ZYPP_RESOLVERPROBLEM_H #define ZYPP_RESOLVERPROBLEM_H #include #include #include "zypp/ProblemTypes.h" #include "zypp/ProblemSolution.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /// \class ResolverProblem /// \brief Describe a solver problem and offer solutions. /////////////////////////////////////////////////////////////////////// class ResolverProblem : public base::ReferenceCounted { public: /** Constructor. */ ResolverProblem(); /** Constructor. */ ResolverProblem( std::string description ); /** Constructor. */ ResolverProblem( std::string description, std::string details ); /** Destructor. */ ~ResolverProblem(); /** * Return a one-line description of the problem. **/ const std::string & description() const; /** * Return a (possibly muti-line) detailed description of the problem * or an empty string if there are no useful details. **/ const std::string & details() const; /** * Return the possible solutions to this problem. * All problems should have at least 2-3 (mutually exclusive) solutions: * * - Undo: Do not perform the offending transaction * (do not install the package that had unsatisfied requirements, * do not remove the package that would break other packages' requirements) * * - Remove referrers: Remove all packages that would break because * they depend on the package that is requested to be removed * * - Ignore: Inject artificial "provides" for a missing requirement * (pretend that requirement is satisfied) **/ const ProblemSolutionList & solutions() const; /** * Set description of the problem. **/ void setDescription( std::string description ); /** * Set detail description of the problem. **/ void setDetails( std::string details ); /** * Add a solution to this problem. This class takes over ownership of * the problem and will delete it when neccessary. **/ void addSolution( ProblemSolution_Ptr solution, bool inFront = false ); private: class Impl; RWCOW_pointer _pimpl; }; /** \relates ResolverProblem Stream output */ std::ostream & operator<<( std::ostream &, const ResolverProblem & obj ); /** \relates ResolverProblem Stream output */ std::ostream & operator<<( std::ostream &, const ResolverProblemList & obj ); } // namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_RESOLVERPROBLEM_H libzypp-17.7.0/zypp/ServiceInfo.cc000066400000000000000000000176451334444677500170620ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ServiceInfo.cc * */ #include #include #include "zypp/base/String.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/parser/xml/XmlEscape.h" #include "zypp/RepoInfo.h" #include "zypp/ServiceInfo.h" using namespace std; using zypp::xml::escape; /////////////////////////////////////////////////////////////////////////////// namespace zypp {////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ServiceInfo::Impl // struct ServiceInfo::Impl { typedef ServiceInfo::ReposToEnable ReposToEnable; typedef ServiceInfo::ReposToDisable ReposToDisable; public: RepoVariablesReplacedUrl _url; repo::ServiceType _type; ReposToEnable _reposToEnable; ReposToDisable _reposToDisable; RepoStates _repoStates; DefaultIntegral _ttl; Date _lrf; public: Impl() {} Impl( const Url & url_r ) : _url( url_r ) {} ~Impl() {} void setProbedType( const repo::ServiceType & type_r ) const { if ( _type == repo::ServiceType::NONE && type_r != repo::ServiceType::NONE ) { // lazy init! const_cast(this)->_type = type_r; } } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ServiceInfo::Impl // /////////////////////////////////////////////////////////////////// const ServiceInfo ServiceInfo::noService; ServiceInfo::ServiceInfo() : _pimpl( new Impl() ) {} ServiceInfo::ServiceInfo(const string & alias) : repo::RepoInfoBase(alias), _pimpl( new Impl() ) {} ServiceInfo::ServiceInfo(const string & alias, const Url & url) : repo::RepoInfoBase(alias), _pimpl( new Impl(url) ) {} ServiceInfo::~ServiceInfo() {} Url ServiceInfo::url() const // Variables replaced { return _pimpl->_url.transformed(); } Url ServiceInfo::rawUrl() const // Raw { return _pimpl->_url.raw(); } void ServiceInfo::setUrl( const Url& url ) // Raw { _pimpl->_url.raw() = url; } repo::ServiceType ServiceInfo::type() const { return _pimpl->_type; } void ServiceInfo::setType( const repo::ServiceType & type ) { _pimpl->_type = type; } void ServiceInfo::setProbedType( const repo::ServiceType &t ) const { _pimpl->setProbedType( t ); } Date::Duration ServiceInfo::ttl() const { return _pimpl->_ttl; } void ServiceInfo::setTtl( Date::Duration ttl_r ) { _pimpl->_ttl = ttl_r; } void ServiceInfo::setProbedTtl( Date::Duration ttl_r ) const { const_cast(this)->setTtl( ttl_r ); } Date ServiceInfo::lrf() const { return _pimpl->_lrf; } void ServiceInfo::setLrf( Date lrf_r ) { _pimpl->_lrf = lrf_r; } bool ServiceInfo::reposToEnableEmpty() const { return _pimpl->_reposToEnable.empty(); } ServiceInfo::ReposToEnable::size_type ServiceInfo::reposToEnableSize() const { return _pimpl->_reposToEnable.size(); } ServiceInfo::ReposToEnable::const_iterator ServiceInfo::reposToEnableBegin() const { return _pimpl->_reposToEnable.begin(); } ServiceInfo::ReposToEnable::const_iterator ServiceInfo::reposToEnableEnd() const { return _pimpl->_reposToEnable.end(); } bool ServiceInfo::repoToEnableFind( const std::string & alias_r ) const { return( _pimpl->_reposToEnable.find( alias_r ) != _pimpl->_reposToEnable.end() ); } void ServiceInfo::addRepoToEnable( const std::string & alias_r ) { _pimpl->_reposToEnable.insert( alias_r ); _pimpl->_reposToDisable.erase( alias_r ); } void ServiceInfo::delRepoToEnable( const std::string & alias_r ) { _pimpl->_reposToEnable.erase( alias_r ); } void ServiceInfo::clearReposToEnable() { _pimpl->_reposToEnable.clear(); } bool ServiceInfo::reposToDisableEmpty() const { return _pimpl->_reposToDisable.empty(); } ServiceInfo::ReposToDisable::size_type ServiceInfo::reposToDisableSize() const { return _pimpl->_reposToDisable.size(); } ServiceInfo::ReposToDisable::const_iterator ServiceInfo::reposToDisableBegin() const { return _pimpl->_reposToDisable.begin(); } ServiceInfo::ReposToDisable::const_iterator ServiceInfo::reposToDisableEnd() const { return _pimpl->_reposToDisable.end(); } bool ServiceInfo::repoToDisableFind( const std::string & alias_r ) const { return( _pimpl->_reposToDisable.find( alias_r ) != _pimpl->_reposToDisable.end() ); } void ServiceInfo::addRepoToDisable( const std::string & alias_r ) { _pimpl->_reposToDisable.insert( alias_r ); _pimpl->_reposToEnable.erase( alias_r ); } void ServiceInfo::delRepoToDisable( const std::string & alias_r ) { _pimpl->_reposToDisable.erase( alias_r ); } void ServiceInfo::clearReposToDisable() { _pimpl->_reposToDisable.clear(); } const ServiceInfo::RepoStates & ServiceInfo::repoStates() const { return _pimpl->_repoStates; } void ServiceInfo::setRepoStates( RepoStates newStates_r ) { swap( _pimpl->_repoStates, newStates_r ); } std::ostream & operator<<( std::ostream & str, const ServiceInfo::RepoState & obj ) { return str << "enabled=" << obj.enabled << " " << "autorefresh=" << obj.autorefresh << " " << "priority=" << obj.priority; } std::ostream & ServiceInfo::dumpAsIniOn( std::ostream & str ) const { RepoInfoBase::dumpAsIniOn(str) << "url = " << rawUrl() << endl << "type = " << type() << endl; if ( ttl() ) str << "ttl_sec = " << ttl() << endl; if ( lrf() ) str << "lrf_dat = " << lrf().asSeconds() << endl; if ( ! repoStates().empty() ) { unsigned cnt = 0U; for ( const auto & el : repoStates() ) { std::string tag( "repo_" ); tag += str::numstring( ++cnt ); const RepoState & state( el.second ); str << tag << "=" << el.first << endl << tag << "_enabled=" << state.enabled << endl << tag << "_autorefresh=" << state.autorefresh << endl; if ( state.priority != RepoInfo::defaultPriority() ) str << tag << "_priority=" << state.priority << endl; } } if ( ! reposToEnableEmpty() ) str << "repostoenable = " << str::joinEscaped( reposToEnableBegin(), reposToEnableEnd() ) << endl; if ( ! reposToDisableEmpty() ) str << "repostodisable = " << str::joinEscaped( reposToDisableBegin(), reposToDisableEnd() ) << endl; return str; } ostream & ServiceInfo::dumpAsXmlOn( ostream & str, const string & content ) const { str << "" << endl; else str << ">" << endl << content << "" << endl; return str; } std::ostream & operator<<( std::ostream& str, const ServiceInfo &obj ) { return obj.dumpAsIniOn(str); } /////////////////////////////////////////////////////////////////////////////// } //namespace zypp /////////////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ServiceInfo.h000066400000000000000000000174441334444677500167210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ServiceInfo.h * */ #ifndef ZYPP_SERVICE_H #define ZYPP_SERVICE_H #include #include #include "zypp/Url.h" #include "zypp/base/Iterable.h" #include "zypp/repo/ServiceType.h" #include "zypp/RepoInfo.h" #include "zypp/Date.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class ServiceInfo /// \brief Service data /// /// \note Name and Url are subject to repo variable replacement /// (\see \ref RepoVariablesStringReplacer). /// class ServiceInfo : public repo::RepoInfoBase { public: /** Default ctor creates \ref noService.*/ ServiceInfo(); /** * Creates ServiceInfo with specified alias. * * \param alias unique short name of service */ ServiceInfo( const std::string & alias ); /** * ServiceInfo with alias and its URL * * \param alias unique shortname of service * \param url url to service */ ServiceInfo( const std::string & alias, const Url& url ); virtual ~ServiceInfo(); public: /** Represents an empty service. */ static const ServiceInfo noService; public: /** The service url */ Url url() const; /** The service raw url (no variables replaced) */ Url rawUrl() const; /** Set the service url (raw value) */ void setUrl( const Url& url ); /** Service type */ repo::ServiceType type() const; /** Set service type */ void setType( const repo::ServiceType & type ); /** Lazy init service type */ void setProbedType( const repo::ServiceType & t ) const; /** \name Housekeeping data * You don't want to use the setters unless you are a \ref RepoManager. */ //@{ /** Sugested TTL between two metadata auto-refreshs. * The value (in seconds) may be provided in repoindex.xml:xpath:/repoindex@ttl. * Default is \a 0 - perform each auto-refresh request. */ Date::Duration ttl() const; /** Set sugested TTL. */ void setTtl( Date::Duration ttl_r ); /** Lazy init sugested TTL. */ void setProbedTtl( Date::Duration ttl_r ) const; /** Date of last refresh (if known). */ Date lrf() const; /** Set date of last refresh. */ void setLrf( Date lrf_r ); //@} // /** \name Set of repos (repository aliases) to enable on next refresh. * * Per default new repositories are created in disabled state. But repositories * mentioned here will be created in enabled state on the next refresh. * Afterwards they get removed from the list. */ //@{ /** Container of repos. */ typedef std::set ReposToEnable; bool reposToEnableEmpty() const; ReposToEnable::size_type reposToEnableSize() const; ReposToEnable::const_iterator reposToEnableBegin() const; ReposToEnable::const_iterator reposToEnableEnd() const; Iterable reposToEnable() const { return makeIterable( reposToEnableBegin(), reposToEnableEnd() ); } /** Whether \c alias_r is mentioned in ReposToEnable. */ bool repoToEnableFind( const std::string & alias_r ) const; /** Add \c alias_r to the set of ReposToEnable. */ void addRepoToEnable( const std::string & alias_r ); /** Remove \c alias_r from the set of ReposToEnable. */ void delRepoToEnable( const std::string & alias_r ); /** Clear the set of ReposToEnable. */ void clearReposToEnable(); //@} /** \name Set of repos (repository aliases) to disable on next refresh. * * Repositories mentioned here will be disabled on the next refresh, in case they * still exist. Afterwards they get removed from the list. */ //@{ /** Container of repos. */ typedef std::set ReposToDisable; bool reposToDisableEmpty() const; ReposToDisable::size_type reposToDisableSize() const; ReposToDisable::const_iterator reposToDisableBegin() const; ReposToDisable::const_iterator reposToDisableEnd() const; Iterable reposToDisable() const { return makeIterable( reposToDisableBegin(), reposToDisableEnd() ); } /** Whether \c alias_r is mentioned in ReposToDisable. */ bool repoToDisableFind( const std::string & alias_r ) const; /** Add \c alias_r to the set of ReposToDisable. */ void addRepoToDisable( const std::string & alias_r ); /** Remove \c alias_r from the set of ReposToDisable. */ void delRepoToDisable( const std::string & alias_r ); /** Clear the set of ReposToDisable. */ void clearReposToDisable(); //@} /** \name The original repo state as defined by the repoindex.xml upon last refresh. * * This state is remembered to detect any user modifications applied to the repos. * It may not be available for all repos or in plugin services. In this case all * changes requested by a service refresh are applied unconditionally. */ //@{ struct RepoState { bool enabled; bool autorefresh; unsigned priority; RepoState() : enabled( false ), autorefresh( true ), priority( RepoInfo::defaultPriority() ) {} RepoState( const RepoInfo & repo_r ) : enabled( repo_r.enabled() ), autorefresh( repo_r.autorefresh() ), priority( repo_r.priority() ) {} bool operator==( const RepoState & rhs ) const { return( enabled==rhs.enabled && autorefresh==rhs.autorefresh && priority==rhs.priority ); } bool operator!=( const RepoState & rhs ) const { return ! operator==( rhs ); } friend std::ostream & operator<<( std::ostream & str, const RepoState & obj ); }; typedef std::map RepoStates; /** Access the remembered repository states. */ const RepoStates & repoStates() const; /** Remember a new set of repository states. */ void setRepoStates( RepoStates newStates_r ); //@} public: /** * Writes ServiceInfo to stream in ".service" format * * \param str stream where serialized version service is written */ virtual std::ostream & dumpAsIniOn( std::ostream & str ) const; /** * Write an XML representation of this ServiceInfo object. * * \param str * \param content if not empty, produces content * otherwise */ virtual std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const; class Impl; private: RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates ServiceInfo */ typedef shared_ptr ServiceInfo_Ptr; /** \relates ServiceInfo */ typedef shared_ptr ServiceInfo_constPtr; /** \relates ServiceInfo */ typedef std::list ServiceInfoList; /** \relates ServiceInfo Stream output */ std::ostream & operator<<( std::ostream & str, const ServiceInfo & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_REPOSITORY_H libzypp-17.7.0/zypp/ShutdownLock.cc000066400000000000000000000012311334444677500172520ustar00rootroot00000000000000#include "ShutdownLock_p.h" #include "zypp/ExternalProgram.h" #include zypp::ShutdownLock::ShutdownLock(const std::string &reason) { try { std::string whyStr = str::form("--why=%s", reason.c_str()); const char* argv[] = { "/usr/bin/systemd-inhibit", "--what=sleep:shutdown:idle", "--who=zypp", "--mode=block", whyStr.c_str(), "/usr/bin/cat", NULL }; _prog = shared_ptr( new ExternalProgramWithSeperatePgid( argv, ExternalProgram::Discard_Stderr ) ); } catch (...) { } } zypp::ShutdownLock::~ShutdownLock() { if (_prog) { _prog->kill(); } } libzypp-17.7.0/zypp/ShutdownLock_p.h000066400000000000000000000022501334444677500174350ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ShutdownLock_p.h * */ #ifndef ZYPP_SHUTDOWNLOCK_P_H_INCLUDED #define ZYPP_SHUTDOWNLOCK_P_H_INCLUDED #include #include "zypp/APIConfig.h" #include "zypp/base/PtrTypes.h" namespace zypp { class ExternalProgramWithSeperatePgid; /** * Attempts to create a lock to prevent the system * from going into hibernate/shutdown. The lock is automatically * released when the object is destroyed. */ class ZYPP_LOCAL ShutdownLock { public: ShutdownLock( const std::string &reason ); ~ShutdownLock(); private: shared_ptr _prog; }; } #endif libzypp-17.7.0/zypp/Signature.cc000066400000000000000000000021071334444677500165720ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include #include "zypp/Signature.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// Signature::Signature() { } std::ostream & Signature::dumpOn( std::ostream & str ) const { return str; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Signature.h000066400000000000000000000024701334444677500164370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_Signature_H #define ZYPP_Signature_H /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class Signature { public: Signature(); ~Signature(); /** Overload to realize stream output. */ std::ostream & dumpOn( std::ostream & str ) const; private: }; /** \relates Signature Stream output */ inline std::ostream & operator<<( std::ostream & str, const Signature & obj ) { return obj.dumpOn( str ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_Signature_H libzypp-17.7.0/zypp/SrcPackage.cc000066400000000000000000000042611334444677500166370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/SrcPackage.cc * */ #include "zypp/SrcPackage.h" /////////////////////////////////////////////////////////////////// namespace zyppintern { using namespace zypp; // in Package.cc Pathname cachedLocation( const OnMediaLocation & loc_r, const RepoInfo & repo_r ); } // namespace zyppintern /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// IMPL_PTR_TYPE(SrcPackage); /////////////////////////////////////////////////////////////////// // // METHOD NAME : SrcPackage::SrcPackage // METHOD TYPE : Ctor // SrcPackage::SrcPackage( const sat::Solvable & solvable_r ) : ResObject( solvable_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : SrcPackage::~SrcPackage // METHOD TYPE : Dtor // SrcPackage::~SrcPackage() {} /////////////////////////////////////////////////////////////////// // // SrcPackage interface forwarded to implementation // /////////////////////////////////////////////////////////////////// std::string SrcPackage::sourcePkgType() const { return lookupStrAttribute( sat::SolvAttr::arch ); } OnMediaLocation SrcPackage::location() const { return lookupLocation(); } Pathname SrcPackage::cachedLocation() const { return zyppintern::cachedLocation( location(), repoInfo() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/SrcPackage.h000066400000000000000000000041101334444677500164720ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/SrcPackage.h * */ #ifndef ZYPP_SRCPACKAGE_H #define ZYPP_SRCPACKAGE_H #include "zypp/ResObject.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// DEFINE_PTR_TYPE(SrcPackage); /////////////////////////////////////////////////////////////////// // // CLASS NAME : SrcPackage // /** SrcPackage interface. */ class SrcPackage : public ResObject { public: typedef SrcPackage Self; typedef ResTraits TraitsType; typedef TraitsType::PtrType Ptr; typedef TraitsType::constPtrType constPtr; public: /** The type of the source rpm ("src" or "nosrc"). */ std::string sourcePkgType() const; /** location of resolvable in repo */ OnMediaLocation location() const; /** Location of the downloaded package in cache or an empty path. */ Pathname cachedLocation() const; /** Whether the package is cached. */ bool isCached() const { return ! cachedLocation().empty(); } protected: friend Ptr make( const sat::Solvable & solvable_r ); /** Ctor */ SrcPackage( const sat::Solvable & solvable_r ); /** Dtor */ virtual ~SrcPackage(); }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SRCPACKAGE_H libzypp-17.7.0/zypp/SysContent.cc000066400000000000000000000325361334444677500167530ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/SysContent.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/SysContent.h" #include "zypp/parser/xml/Reader.h" #include "zypp/parser/xml/ParseDef.h" #include "zypp/parser/xml/ParseDefConsume.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace syscontent { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace // Writer helpers { ///////////////////////////////////////////////////////////////// /** writeXml helper. * \return tag="value" if value not empty, else * an empty string. */ inline std::string attrIf( const std::string & tag_r, const std::string & value_r ) { std::string ret; if ( ! value_r.empty() ) { ret += " "; ret += tag_r; ret += "=\""; ret += value_r; ret += "\""; } return ret; } ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Writer::Impl // /** \see Writer */ class Writer::Impl { public: std::ostream & writeXml( std::ostream & str ) const; public: std::string _name; Edition _edition; std::string _description; StorageT _onsys; public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : Writer::Impl::writeXml // METHOD TYPE : std::ostream & // std::ostream & Writer::Impl::writeXml( std::ostream & str ) const { // intro str << "\n"; str << "\n"; // ident data str << " \n"; str << " " << _name << "\n"; str << " \n"; str << " " << _description << "\n"; str << " " << Date::now().asSeconds() << "\n"; str << " \n"; // ResObjects str << " \n"; for ( iterator it = _onsys.begin(); it != _onsys.end(); ++it ) { str << " kind().asString() ) << attrIf( "name", (*it)->name() ) << attrIf( "epoch", str::numstring((*it)->edition().epoch()) ) << attrIf( "ver", (*it)->edition().version() ) << attrIf( "rel", (*it)->edition().release() ) << attrIf( "arch", (*it)->arch().asString() ) << "/>\n"; } str << " \n"; // extro str << "" << endl; return str; }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : Writer // /////////////////////////////////////////////////////////////////// Writer::Writer() : _pimpl( Impl::nullimpl() ) {} const std::string & Writer::name() const { return _pimpl->_name; } Writer & Writer::name( const std::string & val_r ) { _pimpl->_name = val_r; return *this; } const Edition & Writer::edition() const { return _pimpl->_edition; } Writer & Writer::edition( const Edition & val_r ) { _pimpl->_edition = val_r; return *this; } const std::string & Writer::description() const { return _pimpl->_description; } Writer & Writer::description( const std::string & val_r ) { _pimpl->_description = val_r; return *this; } void Writer::addInstalled( const PoolItem & obj_r ) { if ( obj_r.status().isInstalled() ) { _pimpl->_onsys.insert( obj_r.resolvable() ); } } void Writer::addIf( const PoolItem & obj_r ) { if ( obj_r.status().isInstalled() != obj_r.status().transacts() && ! ( obj_r.status().transacts() && obj_r.status().isBySolver() ) ) { _pimpl->_onsys.insert( obj_r.resolvable() ); } } void Writer::add( const ResObject::constPtr & obj_r ) { _pimpl->_onsys.insert( obj_r ); } bool Writer::empty() const { return _pimpl->_onsys.empty(); } Writer::size_type Writer::size() const { return _pimpl->_onsys.size(); } Writer::const_iterator Writer::begin() const { return _pimpl->_onsys.begin(); } Writer::const_iterator Writer::end() const { return _pimpl->_onsys.end(); } std::ostream & Writer::writeXml( std::ostream & str ) const { return _pimpl->writeXml( str ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader::Entry::Impl // class Reader::Entry::Impl { public: std::string _kind; std::string _name; Edition _edition; Arch _arch; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader::Entry // /////////////////////////////////////////////////////////////////// Reader::Entry::Entry() : _pimpl( new Impl ) {} Reader::Entry::Entry( const shared_ptr & pimpl_r ) : _pimpl( pimpl_r ) {} const std::string & Reader::Entry::kind() const { return _pimpl->_kind; } const std::string & Reader::Entry::name() const { return _pimpl->_name; } const Edition & Reader::Entry::edition() const { return _pimpl->_edition; } const Arch & Reader::Entry::arch() const { return _pimpl->_arch; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader::Impl // /** \see Reader */ class Reader::Impl { public: Impl() {} Impl( std::istream & input_r ); public: std::string _name; Edition _edition; std::string _description; Date _created; std::list _content; public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace // Reader helpers { ///////////////////////////////////////////////////////////////// using namespace xml; /** Sycontent xml node structure. */ struct SycontentNode : public ParseDef { SycontentNode( Mode mode_r ) : ParseDef( "syscontent", mode_r ) { (*this)("ident", OPTIONAL) ("onsys", OPTIONAL) ; (*this)["ident"] ("name", OPTIONAL) ("version", OPTIONAL) ("description", OPTIONAL) ("created", OPTIONAL) ; (*this)["onsys"] ("entry", MULTIPLE_OPTIONAL) ; } }; /** Parse Edition from ver/rel/eopch attributes. */ struct ConsumeEdition : public ParseDefConsume { ConsumeEdition( Edition & value_r ) : _value( & value_r ) {} virtual void start( const Node & node_r ) { *_value = Edition( node_r.getAttribute("ver").asString(), node_r.getAttribute("rel").asString(), node_r.getAttribute("epoch").asString() ); } Edition *_value; }; /** Parse std::string from node value. */ struct ConsumeString : public ParseDefConsume { ConsumeString( std::string & value_r ) : _value( & value_r ) {} virtual void text( const Node & node_r ) { *_value = node_r.value().asString(); } std::string *_value; }; /** Parse Date from node value. */ struct ConsumeDate : public ParseDefConsume { ConsumeDate( Date & value_r ) : _value( & value_r ) {} virtual void text( const Node & node_r ) { *_value = Date(node_r.value().asString()); } Date *_value; }; /** Parse entry list. */ struct ConsumeEntries : public ParseDefConsume { ConsumeEntries( std::list & value_r ) : _value( & value_r ) {} virtual void start( const Node & node_r ) { shared_ptr centry( new Reader::Entry::Impl ); centry->_kind = node_r.getAttribute("kind").asString(); centry->_name = node_r.getAttribute("name").asString(); centry->_edition = Edition( node_r.getAttribute("ver").asString(), node_r.getAttribute("rel").asString(), node_r.getAttribute("epoch").asString() ); centry->_arch = Arch( node_r.getAttribute("arch").asString() ); _value->push_back( Reader::Entry( centry ) ); } std::list *_value; }; ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::Impl::Impl // METHOD TYPE : Constructor // Reader::Impl::Impl( std::istream & input_r ) { xml::Reader reader( input_r ); SycontentNode rootNode( xml::ParseDef::MANDTAORY ); rootNode["ident"]["name"].setConsumer ( new ConsumeString( _name ) ); rootNode["ident"]["version"].setConsumer ( new ConsumeEdition( _edition ) ); rootNode["ident"]["description"].setConsumer ( new ConsumeString( _description ) ); rootNode["ident"]["created"].setConsumer ( new ConsumeDate( _created ) ); rootNode["onsys"]["entry"].setConsumer ( new ConsumeEntries( _content ) ); // parse rootNode.take( reader ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader // /////////////////////////////////////////////////////////////////// Reader::Reader() : _pimpl( Impl::nullimpl() ) {} Reader::Reader( std::istream & input_r ) : _pimpl( new Impl( input_r ) ) {} const std::string & Reader::name() const { return _pimpl->_name; } const Edition & Reader::edition() const { return _pimpl->_edition; } const std::string & Reader::description() const { return _pimpl->_description; } const Date & Reader::ctime() const { return _pimpl->_created; } bool Reader::empty() const { return _pimpl->_content.empty(); } Reader::size_type Reader::size() const { return _pimpl->_content.size(); } Reader::const_iterator Reader::begin() const { return _pimpl->_content.begin(); } Reader::const_iterator Reader::end() const { return _pimpl->_content.end(); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : inline std::ostream & */ std::ostream & operator<<( std::ostream & str, const Reader & obj ) { return str << "syscontent(" << obj.name() << "-" << obj.edition() << ", " << obj.size() << " entries" << ", created " << obj.ctime() << ")"; } ///////////////////////////////////////////////////////////////// } // namespace syscontent /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/SysContent.h000066400000000000000000000165101334444677500166070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/SysContent.h * */ #ifndef ZYPP_SYSCONTENT_H #define ZYPP_SYSCONTENT_H #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/PoolItem.h" #include "zypp/Edition.h" #include "zypp/Date.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace syscontent { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Writer // /** Collect and serialize a set of \ref ResObject. * \code * * * * mycollection * * All the cool stuff... * 1165270942 * * * * * * * \endcode * \see Reader */ class Writer { typedef std::set StorageT; public: typedef StorageT::value_type value_type; typedef StorageT::size_type size_type; typedef StorageT::iterator iterator; typedef StorageT::const_iterator const_iterator; public: /** Default Ctor. */ Writer(); public: /** \name Identification. * User provided optional data to identify the collection. */ //@{ /** Get name. */ const std::string & name() const; /** Set name. */ Writer & name( const std::string & val_r ); /** Get edition. */ const Edition & edition() const; /** Set edition. */ Writer & edition( const Edition & val_r ); /** Get description. */ const std::string & description() const; /** Set description.*/ Writer & description( const std::string & val_r ); //@} public: /** \name Collecting data. * \code * syscontent::Writer contentW; * contentW.name( "mycollection" ) * .edition( Edition( "1.0" ) ) * .description( "All the cool stuff..." ); * * ResPool pool( getZYpp()->pool() ); * for_each( pool.begin(), pool.end(), * bind( &syscontent::Writer::addIf, ref(contentW), _1 ) ); * * std::ofstream my_file( "some_file" ); * my_file << contentW; * my_file.close(); * \endcode */ //@{ /** Collect currently installed \ref PoolItem. */ void addInstalled( const PoolItem & obj_r ); /** Collect \ref PoolItem if it stays on the system. * I.e. it stays installed or is tagged to be installed. * Solver selected items are omitted. */ void addIf( const PoolItem & obj_r ); /** Unconditionally add this \ref ResObject (or \ref PoolItem). */ void add( const ResObject::constPtr & obj_r ); //@} public: /** \name Collected data. */ //@{ /** Whether no data collected so far. */ bool empty() const; /** Number of items collected. */ size_type size() const; /** Iterator to the begin of collected data. */ const_iterator begin() const; /** Iterator to the end of collected data. */ const_iterator end() const; //@} public: /** Write collected data as XML. * Read them back using \ref Reader. */ std::ostream & writeXml( std::ostream & str ) const; private: class Impl; RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates Writer Stream output */ inline std::ostream & operator<<( std::ostream & str, const Writer & obj ) { return obj.writeXml( str ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader // /** Retrieve \ref ResObject data serialized by \ref Writer. * \see Writer */ class Reader { public: /** Restored \ref ResObject data. */ class Entry; private: typedef std::list StorageT; public: typedef StorageT::value_type value_type; typedef StorageT::size_type size_type; typedef StorageT::iterator iterator; typedef StorageT::const_iterator const_iterator; public: /** Default Ctor. */ Reader(); /** Ctor parsing data from \a input_r. * \throws Exception on read or parse error. */ Reader( std::istream & input_r ); public: /** \name Identification. * User provided optional data to identify the collection. */ //@{ /** Get name. */ const std::string & name() const; /** Get edition. */ const Edition & edition() const; /** Get description. */ const std::string & description() const; /** Get creation date. */ const Date & ctime() const; public: /** \name Collected data. */ //@{ /** Whether no data collected so far. */ bool empty() const; /** Number of items collected. */ size_type size() const; /** Iterator to the begin of collected data. */ const_iterator begin() const; /** Iterator to the end of collected data. */ const_iterator end() const; //@} private: class Impl; RWCOW_pointer _pimpl; }; /** \relates Reader Stream output */ std::ostream & operator<<( std::ostream & str, const Reader & obj ); /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader::Entry // /** Restored \ref ResObject data. */ class Reader::Entry { public: Entry(); const std::string & kind() const; const std::string & name() const; const Edition & edition() const; const Arch & arch() const; public: class Impl; Entry( const shared_ptr & pimpl_r ); private: RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace syscontent /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SYSCONTENT_H libzypp-17.7.0/zypp/Target.cc000066400000000000000000000112671334444677500160660ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Target.cc * */ #include #include #include "zypp/Target.h" #include "zypp/target/TargetImpl.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// IMPL_PTR_TYPE(Target); /////////////////////////////////////////////////////////////////// // // METHOD NAME : Target::Target // METHOD TYPE : Ctor // Target::Target( const Pathname & root, bool doRebuild_r ) : _pimpl( new Impl(root,doRebuild_r) ) { } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Target::Target // METHOD TYPE : Ctor // Target::Target( const Impl_Ptr & impl_r ) : _pimpl( impl_r ) { assert( impl_r ); } std::ostream & operator<<( std::ostream & str, const Target::DistributionLabel & obj ) { str << "summary=" << obj.summary << endl; str << "shortName=" << obj.shortName << endl; return str; } /////////////////////////////////////////////////////////////////// // // Forward to TargetImpl: // /////////////////////////////////////////////////////////////////// void Target::buildCache() { _pimpl->buildCache(); } void Target::cleanCache() { _pimpl->clearCache(); } void Target::load() { _pimpl->load(); } void Target::reload() { _pimpl->reload(); } void Target::unload() { _pimpl->unload(); } target::rpm::RpmDb & Target::rpmDb() { return _pimpl->rpm(); } Pathname Target::root() const { return _pimpl->root(); } bool Target::providesFile (const std::string & name_str, const std::string & path_str) const { return _pimpl->providesFile (name_str, path_str); } std::string Target::whoOwnsFile (const std::string & path_str) const { return _pimpl->whoOwnsFile (path_str); } std::ostream & Target::dumpOn( std::ostream & str ) const { return _pimpl->dumpOn( str ); } Date Target::timestamp() const { return _pimpl->timestamp(); } Product::constPtr Target::baseProduct() const { return _pimpl->baseProduct(); } LocaleSet Target::requestedLocales() const { return _pimpl->requestedLocales(); } LocaleSet Target::requestedLocales( const Pathname & root_r ) { return target::TargetImpl::requestedLocales( root_r ); } void Target::updateAutoInstalled() { return _pimpl->updateAutoInstalled(); } std::string Target::targetDistribution() const { return _pimpl->targetDistribution(); } std::string Target::targetDistribution( const Pathname & root_r ) { return target::TargetImpl::targetDistribution( root_r ); } std::string Target::targetDistributionRelease() const { return _pimpl->targetDistributionRelease(); } std::string Target::targetDistributionRelease( const Pathname & root_r ) { return target::TargetImpl::targetDistributionRelease( root_r ); } std::string Target::targetDistributionFlavor() const { return _pimpl->targetDistributionFlavor(); } std::string Target::targetDistributionFlavor( const Pathname & root_r ) { return target::TargetImpl::targetDistributionFlavor( root_r ); } Target::DistributionLabel Target::distributionLabel() const { return _pimpl->distributionLabel(); } Target::DistributionLabel Target::distributionLabel( const Pathname & root_r ) { return target::TargetImpl::distributionLabel( root_r ); } std::string Target::distributionVersion() const { return _pimpl->distributionVersion(); } std::string Target::distributionVersion( const Pathname & root_r ) { return target::TargetImpl::distributionVersion( root_r ); } std::string Target::distributionFlavor() const { return _pimpl->distributionFlavor(); } std::string Target::distributionFlavor( const Pathname & root_r ) { return target::TargetImpl::distributionFlavor( root_r ); } std::string Target::anonymousUniqueId() const { return _pimpl->anonymousUniqueId(); } std::string Target::anonymousUniqueId( const Pathname & root_r ) { return target::TargetImpl::anonymousUniqueId( root_r ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/Target.h000066400000000000000000000175141334444677500157310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Target.h * */ #ifndef ZYPP_TARGET_H #define ZYPP_TARGET_H #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/APIConfig.h" #include "zypp/Product.h" #include "zypp/Pathname.h" #include "zypp/ResPool.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace target { class TargetImpl; namespace rpm { class RpmDb; } } namespace zypp_detail { class ZYppImpl; } DEFINE_PTR_TYPE(Target); /////////////////////////////////////////////////////////////////// // // CLASS NAME : Target // /** */ class Target : public base::ReferenceCounted, public base::NonCopyable { public: typedef target::TargetImpl Impl; typedef intrusive_ptr Impl_Ptr; typedef std::list PoolItemList; public: /** * builds or refreshes the target cache */ void buildCache(); /** * cleans the target cache (.solv files) */ void cleanCache(); /** * load resolvables into the pool */ void load(); void reload(); /** * unload target resolvables from the * pool */ void unload(); /** Refference to the RPM database */ target::rpm::RpmDb & rpmDb(); /** If the package is installed and provides the file Needed to evaluate split provides during Resolver::Upgrade() */ bool providesFile (const std::string & name_str, const std::string & path_str) const; /** Return name of package owning \a path_str * or empty string if no installed package owns \a path_str. **/ std::string whoOwnsFile (const std::string & path_str) const; /** Return the root set for this target */ Pathname root() const; /** Return the path prefixed by the target root, unless it already is prefixed. */ Pathname assertRootPrefix( const Pathname & path_r ) const { return Pathname::assertprefix( root(), path_r ); } /** return the last modification date of the target */ Date timestamp() const; /** * returns the target base installed product, also known as * the distribution or platform. * * returns 0 if there is no base installed product in the * pool. * * \note this method requires the target to be loaded, * otherwise it will return 0 as no product is found. * * if you require some base product attributes when the * target is not loaded into the pool, see * \ref targetDistribution , \ref targetDistributionRelease * and \ref distributionVersion that obtain the data * on demand from the installed product information. */ Product::constPtr baseProduct() const; /** * \brief Languages to be supported by the system. * E.g. language specific packages to be installed. */ LocaleSet requestedLocales() const; /** \overload Use a specific root_r, if empty the default targets root, or '/' */ static LocaleSet requestedLocales( const Pathname & root_r ); /** Update the database of autoinstalled packages. * This is done on commit, so you usually don't need to call this explicitly. */ void updateAutoInstalled(); public: /** \name Base product and registration. * * Static methods herein allow to retrieve the values without explicitly * initializing the \ref Target. They take a targets root directory as * argument. If an empty \ref Pathname is passed, an already existing * Targets root is used, otherwise \c "/" is assumed. */ //@{ /** This is \c register.target attribute of the installed base product. * Used for registration and \ref Service refresh. */ std::string targetDistribution() const; /** \overload */ static std::string targetDistribution( const Pathname & root_r ); /** This is \c register.release attribute of the installed base product. * Used for registration. */ std::string targetDistributionRelease() const; /** \overload */ static std::string targetDistributionRelease( const Pathname & root_r ); /** This is \c register.flavor attribute of the installed base product. * Used for registration. * \note don't mistake this for \ref distributionFlavor */ std::string targetDistributionFlavor() const; /** \overload */ static std::string targetDistributionFlavor( const Pathname & root_r ); struct DistributionLabel { std::string shortName; std::string summary; }; /** This is \c shortName and \c summary attribute of the installed base product. * Used e.g. for the bootloader menu. */ DistributionLabel distributionLabel() const; /** \overload */ static DistributionLabel distributionLabel( const Pathname & root_r ); /** This is \c version attribute of the installed base product. * For example http://download.opensue.org/update/11.0 * The 11.0 corresponds to the base product version. */ std::string distributionVersion() const; /** \overload */ static std::string distributionVersion( const Pathname & root_r ); /** * This is \c flavor attribute of the installed base product * but does not require the target to be loaded as it remembers * the last used one. It can be empty is the target has never * been loaded, as the value is not present in the system * but computer from a package provides * \note don't mistake this for \ref targetDistributionFlavor */ std::string distributionFlavor() const; /** \overload */ static std::string distributionFlavor( const Pathname & root_r ); /** * anonymous unique id * * This id is generated once and stays in the * saved in the target. * It is unique and is used only for statistics. * */ std::string anonymousUniqueId() const; /** \overload */ static std::string anonymousUniqueId( const Pathname & root_r ); //@} public: /** Ctor. If \c doRebuild_r is \c true, an already existing * database is rebuilt (rpm --rebuilddb ). */ explicit Target( const Pathname & root = "/", bool doRebuild_r = false ); /** Ctor */ explicit Target( const Impl_Ptr & impl_r ); private: friend std::ostream & operator<<( std::ostream & str, const Target & obj ); /** Stream output. */ std::ostream & dumpOn( std::ostream & str ) const; private: /** Direct access to Impl. */ friend class zypp_detail::ZYppImpl; /** Pointer to implementation */ RW_pointer > _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates Target Stream output. */ inline std::ostream & operator<<( std::ostream & str, const Target & obj ) { return obj.dumpOn( str ); } /** \relates Target::DistributionLabel Stream output. * Write out the content as key/value pairs: * \code * summary=Beautiful Name * shortName=BN * \endcode */ std::ostream & operator<<( std::ostream & str, const Target::DistributionLabel & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_H libzypp-17.7.0/zypp/TmpPath.cc000066400000000000000000000210661334444677500162130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/TmpPath.cc * */ #include #include #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/Logger.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" using namespace std; namespace zypp { namespace filesystem { /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpPath::Impl /** * Clean or delete a directory on destruction. **/ class TmpPath::Impl : public base::ReferenceCounted, private base::NonCopyable { public: enum Flags { NoOp = 0, Autodelete = 1L << 0, KeepTopdir = 1L << 1, // CtorDefault = Autodelete }; public: Impl( const Pathname & path_r, Flags flags_r = CtorDefault ) : _path( path_r ), _flags( flags_r ) {} ~Impl() { if ( ! (_flags & Autodelete) || _path.empty() ) return; PathInfo p( _path, PathInfo::LSTAT ); if ( ! p.isExist() ) return; int res = 0; if ( p.isDir() ) { if ( _flags & KeepTopdir ) res = clean_dir( _path ); else res = recursive_rmdir( _path ); } else res = unlink( _path ); if ( res ) INT << "TmpPath cleanup error (" << res << ") " << p << endl; else DBG << "TmpPath cleaned up " << p << endl; } const Pathname & path() const { return _path; } bool autoCleanup() const { return( _flags & Autodelete ); } void autoCleanup( bool yesno_r ) { _flags = yesno_r ? CtorDefault : NoOp; } private: Pathname _path; Flags _flags; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpPath // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpPath::TmpPath // METHOD TYPE : Constructor // TmpPath::TmpPath() {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpPath::TmpPath // METHOD TYPE : Constructor // TmpPath::TmpPath( const Pathname & tmpPath_r ) :_impl( tmpPath_r.empty() ? nullptr : new Impl( tmpPath_r ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpPath::~TmpPath // METHOD TYPE : Destructor // TmpPath::~TmpPath() { // virtual not inlined dtor. } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpPath::operator const void * // METHOD TYPE : // TmpPath::operator bool() const { return _impl.get(); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpPath::path // METHOD TYPE : Pathname // Pathname TmpPath::path() const { return _impl.get() ? _impl->path() : Pathname(); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpPath::defaultLocation // METHOD TYPE : const Pathname & // const Pathname & TmpPath::defaultLocation() { static Pathname p( getenv("ZYPPTMPDIR") ? getenv("ZYPPTMPDIR") : "/var/tmp" ); return p; } bool TmpPath::autoCleanup() const { return _impl.get() ? _impl->autoCleanup() : false; } void TmpPath::autoCleanup( bool yesno_r ) { if ( _impl.get() ) _impl->autoCleanup( yesno_r ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpFile // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpFile::TmpFile // METHOD TYPE : Constructor // TmpFile::TmpFile( const Pathname & inParentDir_r, const std::string & prefix_r ) { // parent dir must exist if ( filesystem::assert_dir( inParentDir_r ) != 0 ) { ERR << "Parent directory '" << inParentDir_r << "' can't be created." << endl; return; } // create the temp file Pathname tmpPath = (inParentDir_r + prefix_r).extend( "XXXXXX"); char * buf = ::strdup( tmpPath.asString().c_str() ); if ( ! buf ) { ERR << "Out of memory" << endl; return; } int tmpFd = ::mkostemp( buf, O_CLOEXEC ); if ( tmpFd != -1 ) { // success; create _impl ::close( tmpFd ); _impl = RW_pointer( new Impl( buf ) ); } else ERR << "Cant create '" << buf << "' " << ::strerror( errno ) << endl; ::free( buf ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpFile::makeSibling // METHOD TYPE : TmpFile // TmpFile TmpFile::makeSibling( const Pathname & sibling_r ) { TmpFile ret( sibling_r.dirname(), sibling_r.basename() ); // clone mode if sibling_r exists PathInfo p( sibling_r ); if ( p.isFile() ) { ::chmod( ret.path().c_str(), p.st_mode() ); } return ret; } ManagedFile TmpFile::asManagedFile() { filesystem::TmpFile tmpFile; ManagedFile mFile ( tmpFile.path(), filesystem::unlink ); tmpFile.autoCleanup(false); //cleaned up by ManagedFile return mFile; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpFile::defaultPrefix // METHOD TYPE : const std::string & // const std::string & TmpFile::defaultPrefix() { static string p( "TmpFile." ); return p; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpDir // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpDir::TmpDir // METHOD TYPE : Constructor // TmpDir::TmpDir( const Pathname & inParentDir_r, const std::string & prefix_r ) { // parent dir must exist if ( filesystem::assert_dir( inParentDir_r ) != 0 ) { ERR << "Parent directory '" << inParentDir_r << "' can't be created." << endl; return; } // create the temp dir Pathname tmpPath = (inParentDir_r + prefix_r).extend( "XXXXXX"); char * buf = ::strdup( tmpPath.asString().c_str() ); if ( ! buf ) { ERR << "Out of memory" << endl; return; } char * tmp = ::mkdtemp( buf ); if ( tmp ) // success; create _impl _impl = RW_pointer( new Impl( tmp ) ); else ERR << "Cant create '" << tmpPath << "' " << ::strerror( errno ) << endl; ::free( buf ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpDir::makeSibling // METHOD TYPE : TmpDir // TmpDir TmpDir::makeSibling( const Pathname & sibling_r ) { TmpDir ret( sibling_r.dirname(), sibling_r.basename() ); // clone mode if sibling_r exists PathInfo p( sibling_r ); if ( p.isDir() ) { ::chmod( ret.path().c_str(), p.st_mode() ); } return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TmpDir::defaultPrefix // METHOD TYPE : const std::string & // const std::string & TmpDir::defaultPrefix() { static string p( "TmpDir." ); return p; } } // namespace filesystem } // namespace zypp libzypp-17.7.0/zypp/TmpPath.h000066400000000000000000000145271334444677500160610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/TmpPath.h * */ #ifndef ZYPP_TMPPATH_H #define ZYPP_TMPPATH_H #include #include "zypp/Pathname.h" #include "zypp/base/PtrTypes.h" #include "zypp/ManagedFile.h" namespace zypp { namespace filesystem { /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpPath /** * @short Automaticaly deletes files or directories when no longer needed. * * TmpPath is constructed from a Pathname. Multiple TmpPath instances * created by copy and assign, share the same reference counted internal * repesentation. * * When the last reference drops any file or directory located at the path * passed to the ctor is deleted (recursivly in case of directories). This * behavior can be canged by calling \ref autoCleanup. * * Principally serves as base class, but standalone usable. **/ class TmpPath { public: /** * Default Ctor. An empty Pathname. **/ TmpPath(); /** * Ctor. Takes a Pathname. **/ explicit TmpPath( const Pathname & tmpPath_r ); /** * Dtor. **/ virtual ~TmpPath(); /** * Test whether the Pathname is valid (i.e. not empty. NOT whether * it really denotes an existing file or directory). **/ explicit operator bool() const; /** * @return The Pathname. **/ Pathname path() const; /** * Type conversion to Pathname. **/ operator Pathname() const { return path(); } /** * Whether path is valid and deleted when the last reference drops. */ bool autoCleanup() const; /** * Turn \ref autoCleanup on/off if path is valid. */ void autoCleanup( bool yesno_r ); public: /** * @return The default directory where temporary * files should be are created (/var/tmp). **/ static const Pathname & defaultLocation(); protected: class Impl; RW_pointer _impl; }; /////////////////////////////////////////////////////////////////// /** * Stream output as pathname. **/ inline std::ostream & operator<<( std::ostream & str, const TmpPath & obj ) { return str << static_cast(obj); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpFile /** * @short Provide a new empty temporary file and delete it when no * longer needed. * * The temporary file is per default created in '/var/tmp' and named * 'TmpFile.XXXXXX', with XXXXXX replaced by a string which makes the * name unique. Different location and file prefix may be passed to * the ctor. TmpFile is created with mode 0600. * * TmpFile provides the Pathname of the temporary file, or an empty * path in case of any error. **/ class TmpFile : public TmpPath { public: /** * Ctor. Takes a Pathname. **/ explicit TmpFile( const Pathname & inParentDir_r = defaultLocation(), const std::string & prefix_r = defaultPrefix() ); /** Provide a new empty temporary directory as sibling. * \code * TmpFile s = makeSibling( "/var/lib/myfile" ); * // returns: /var/lib/myfile.XXXXXX * \endcode * If \c sibling_r exists, sibling is created using the same mode. */ static TmpFile makeSibling( const Pathname & sibling_r ); /** * Create a temporary file and convert it to a automatically * cleaned up ManagedFile */ static ManagedFile asManagedFile (); public: /** * @return The default prefix for temporary files (TmpFile.) **/ static const std::string & defaultPrefix(); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : TmpDir /** * @short Provide a new empty temporary directory and recursively * delete it when no longer needed. * * The temporary directory is per default created in '/var/tmp' and * named 'TmpDir.XXXXXX', with XXXXXX replaced by a string which makes * the name unique. Different location and file prefix may be passed * to the ctor. TmpDir is created with mode 0700. * * TmpDir provides the Pathname of the temporary directory , or an empty * path in case of any error. **/ class TmpDir : public TmpPath { public: /** * Ctor. Takes a Pathname. **/ explicit TmpDir( const Pathname & inParentDir_r = defaultLocation(), const std::string & prefix_r = defaultPrefix() ); /** Provide a new empty temporary directory as sibling. * \code * TmpDir s = makeSibling( "/var/lib/mydir" ); * // returns: /var/lib/mydir.XXXXXX * \endcode * If \c sibling_r exists, sibling is created using the same mode. */ static TmpDir makeSibling( const Pathname & sibling_r ); public: /** * @return The default prefix for temporary directories (TmpDir.) **/ static const std::string & defaultPrefix(); }; /////////////////////////////////////////////////////////////////// } // namespace filesystem /** Global access to the zypp.TMPDIR (created on demand, deleted when libzypp is unloaded) */ Pathname myTmpDir(); // implemented in ZYppImpl.cc } // namespace zypp #endif // ZYPP_TMPPATH_H libzypp-17.7.0/zypp/TriBool.h000066400000000000000000000051331334444677500160470ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/TriBool.h * */ #ifndef ZYPP_TRIBOOL_H #define ZYPP_TRIBOOL_H #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** 3-state boolean logic (\c true, \c false and \c indeterminate). * \code * namespace zypp * { * typedef boost::logic::tribool TriBool; * using boost::logic::tribool; * using boost::logic::indeterminate; * } * \endcode * * \warning Be carefull.esp. when comparing \ref TriBool using * \c operator==, as ( indeterminate == indeterminate ) * does \b not evaluate \b true. It's \c indeterminate. * * \see http://www.boost.org/doc/html/tribool.html * \ingroup BOOST */ typedef boost::logic::tribool TriBool; using boost::logic::tribool; using boost::logic::indeterminate; inline std::string asString( const TriBool & val_r, const std::string & istr_r = std::string(), const std::string & tstr_r = std::string(), const std::string & fstr_r = std::string() ) { std::string ret; if (indeterminate(val_r)) ret = ( istr_r.empty() ? "indeterminate" : istr_r ); else if (val_r) ret = ( tstr_r.empty() ? "true" : tstr_r ); else ret = ( fstr_r.empty() ? "false" : fstr_r ); return ret; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// namespace boost { namespace logic { /** \relates TriBool stream output */ inline std::ostream & operator<<(std::ostream & s, const tribool & obj) { return s << zypp::asString( obj ); } /** \relates TriBool whether 2 tribool have the same state (this is NOT ==) */ inline bool sameTriboolState( tribool lhs, tribool rhs ) { return( ( indeterminate(lhs) && indeterminate(rhs) ) || ( lhs == rhs ) ); } } } #endif // ZYPP_TRIBOOL_H libzypp-17.7.0/zypp/Url.cc000066400000000000000000000541701334444677500154020ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/Url.cc */ #include "zypp/Url.h" #include "zypp/Pathname.h" #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/base/Regex.h" #include #include ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// using namespace zypp::url; // ----------------------------------------------------------------- /* * url = [scheme:] [//authority] /path [?query] [#fragment] */ #define RX_SPLIT_URL "^([^:/?#]+:|)" \ "(//[^/?#]*|)" \ "([^?#]*)" \ "([?][^#]*|)" \ "(#.*|)" //////////////////////////////////////////////////////////////////// namespace { ////////////////////////////////////////////////////////////////// // --------------------------------------------------------------- class LDAPUrl: public UrlBase { public: LDAPUrl(): UrlBase() { configure(); } LDAPUrl(const LDAPUrl &url): UrlBase(url) {} virtual UrlBase * clone() const { return new LDAPUrl(*this); } virtual UrlSchemes getKnownSchemes() const { UrlSchemes schemes(2); schemes[0] = "ldap"; schemes[1] = "ldaps"; return schemes; } virtual void configure() { config("sep_pathparams", ""); config("psep_querystr", "?"); config("vsep_querystr", ""); // host is required (isValid=>false) // but not mandatory (see RFC 2255), // that is, accept empty host. config("require_host", "y"); // not allowed here config("rx_username", ""); config("rx_password", ""); config("rx_fragment", ""); config("rx_pathparams", ""); } virtual zypp::url::ParamMap getQueryStringMap(zypp::url::EEncoding eflag) const { static const char * const keys[] = { "attrs", "scope", "filter", "exts", NULL }; zypp::url::ParamMap pmap; zypp::url::ParamVec pvec( getQueryStringVec()); if( pvec.size() <= 4) { for(size_t i=0; ifirst == keys[i]) { found=true; pvec[i] = zypp::url::encode(p->second, join_safe); } } if( !found) { ZYPP_THROW(url::UrlNotSupportedException( str::form(_("Invalid LDAP URL query parameter '%s'"), p->first.c_str()) )); } } setQueryStringVec(pvec); } }; // --------------------------------------------------------------- // FIXME: hmm.. class UrlByScheme { private: typedef std::map UrlBySchemeMap; UrlBySchemeMap urlByScheme; public: UrlByScheme() { UrlRef ref; // ===================================== ref.reset( new LDAPUrl()); addUrlByScheme("ldap", ref); addUrlByScheme("ldaps", ref); // ===================================== ref.reset( new UrlBase()); ref->config("with_authority", "n"); // disallow host,... ref->config("require_pathname", "m"); // path is mandatory addUrlByScheme("hd", ref); addUrlByScheme("cd", ref); addUrlByScheme("dvd", ref); addUrlByScheme("dir", ref); addUrlByScheme("iso", ref); // don't show empty authority ref->setViewOptions( zypp::url::ViewOption::DEFAULTS - zypp::url::ViewOption::EMPTY_AUTHORITY); addUrlByScheme("mailto", ref); addUrlByScheme("urn", ref); addUrlByScheme("plugin", ref); // zypp plugable media handler: // RFC1738, 3.10: may contain a host ref->config("with_authority", "y"); // allow host, ref->config("with_port", "n"); // but no port, ref->config("rx_username", ""); // username or ref->config("rx_password", ""); // password ... addUrlByScheme("file", ref); // ===================================== ref.reset( new UrlBase()); ref->config("require_host", "m"); // host is mandatory addUrlByScheme("nfs", ref); addUrlByScheme("nfs4", ref); addUrlByScheme("smb", ref); addUrlByScheme("cifs", ref); addUrlByScheme("http", ref); addUrlByScheme("https", ref); ref->config("path_encode_slash2", "y"); // always encode 2. slash addUrlByScheme("ftp", ref); addUrlByScheme("sftp", ref); addUrlByScheme("tftp", ref); } bool addUrlByScheme(const std::string &scheme, UrlRef urlImpl) { if( urlImpl && urlImpl->isValidScheme(scheme)) { UrlRef ref(urlImpl); ref->clear(); urlByScheme[str::toLower(scheme)] = ref; return true; } return false; } UrlRef getUrlByScheme(const std::string &scheme) const { UrlBySchemeMap::const_iterator i(urlByScheme.find(str::toLower(scheme))); if( i != urlByScheme.end()) { return i->second; } return UrlRef(); } bool isRegisteredScheme(const std::string &scheme) const { return urlByScheme.find(str::toLower(scheme)) != urlByScheme.end(); } UrlSchemes getRegisteredSchemes() const { UrlBySchemeMap::const_iterator i(urlByScheme.begin()); UrlSchemes schemes; schemes.reserve(urlByScheme.size()); for( ; i != urlByScheme.end(); ++i) { schemes.push_back(i->first); } return schemes; } }; // --------------------------------------------------------------- UrlByScheme & g_urlSchemeRepository() { static UrlByScheme _v; return _v; } ////////////////////////////////////////////////////////////////// } // anonymous namespace //////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------- Url::~Url() { } // ----------------------------------------------------------------- Url::Url() : m_impl( new UrlBase()) { } // ----------------------------------------------------------------- Url::Url(const Url &url) : m_impl( url.m_impl) { if( !m_impl) { ZYPP_THROW(url::UrlException( _("Unable to clone Url object") )); } } // ----------------------------------------------------------------- Url::Url(const zypp::url::UrlRef &url) : m_impl( url) { if( !m_impl) { ZYPP_THROW(url::UrlException( _("Invalid empty Url object reference") )); } } // ----------------------------------------------------------------- Url::Url(const std::string &encodedUrl) : m_impl( parseUrl(encodedUrl)) { if( !m_impl) { ZYPP_THROW(url::UrlParsingException( _("Unable to parse Url components") )); } } // ----------------------------------------------------------------- Url& Url::operator = (const std::string &encodedUrl) { UrlRef url( parseUrl(encodedUrl)); if( !url) { ZYPP_THROW(url::UrlParsingException( _("Unable to parse Url components") )); } m_impl = url; return *this; } // ----------------------------------------------------------------- Url& Url::operator = (const Url &url) { m_impl = url.m_impl; return *this; } // ----------------------------------------------------------------- // static bool Url::registerScheme(const std::string &scheme, UrlRef urlImpl) { return g_urlSchemeRepository().addUrlByScheme(scheme, urlImpl); } // ----------------------------------------------------------------- // static UrlRef Url::parseUrl(const std::string &encodedUrl) { UrlRef url; str::smatch out; bool ret = false; try { str::regex rex(RX_SPLIT_URL); ret = str::regex_match(encodedUrl, out, rex); } catch( ... ) {} if(ret && out.size() == 6) { std::string scheme = out[1]; if (scheme.size() > 1) scheme = scheme.substr(0, scheme.size()-1); std::string authority = out[2]; if (authority.size() >= 2) authority = authority.substr(2); std::string query = out[4]; if (query.size() > 1) query = query.substr(1); std::string fragment = out[5]; if (fragment.size() > 1) fragment = fragment.substr(1); url = g_urlSchemeRepository().getUrlByScheme(scheme); if( !url) { url.reset( new UrlBase()); } url->init(scheme, authority, out[3], query, fragment); } return url; } // ----------------------------------------------------------------- // static zypp::url::UrlSchemes Url::getRegisteredSchemes() { return g_urlSchemeRepository().getRegisteredSchemes(); } // ----------------------------------------------------------------- // static bool Url::isRegisteredScheme(const std::string &scheme) { return g_urlSchemeRepository().isRegisteredScheme(scheme); } // ----------------------------------------------------------------- zypp::url::UrlSchemes Url::getKnownSchemes() const { return m_impl->getKnownSchemes(); } // ----------------------------------------------------------------- bool Url::isValidScheme(const std::string &scheme) const { return m_impl->isValidScheme(scheme); } /////////////////////////////////////////////////////////////////// namespace { inline bool isInList( const char ** begin_r, const char ** end_r, const std::string & scheme_r ) { for ( ; begin_r != end_r; ++begin_r ) if ( scheme_r == *begin_r ) return true; return false; } } bool Url::schemeIsLocal( const std::string & scheme_r ) { static const char * val[] = { "cd", "dvd", "dir", "hd", "iso", "file" }; return isInList( arrayBegin(val), arrayEnd(val), scheme_r ); } bool Url::schemeIsRemote( const std::string & scheme_r ) { static const char * val[] = { "http", "https", "nfs", "nfs4", "smb", "cifs", "ftp", "sftp", "tftp" }; return isInList( arrayBegin(val), arrayEnd(val), scheme_r ); } bool Url::schemeIsVolatile( const std::string & scheme_r ) { static const char * val[] = { "cd", "dvd" }; return isInList( arrayBegin(val), arrayEnd(val), scheme_r ); } bool Url::schemeIsDownloading( const std::string & scheme_r ) { static const char * val[] = { "http", "https", "ftp", "sftp", "tftp" }; return isInList( arrayBegin(val), arrayEnd(val), scheme_r ); } /////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------- bool Url::isValid() const { return m_impl->isValid(); } // ----------------------------------------------------------------- std::string Url::asString() const { return m_impl->asString(); } // ----------------------------------------------------------------- std::string Url::asCompleteString() const { // make sure, all url components are included; // regardless of the current configuration... ViewOptions opts(getViewOptions() + ViewOption::WITH_SCHEME + ViewOption::WITH_USERNAME + ViewOption::WITH_PASSWORD + ViewOption::WITH_HOST + ViewOption::WITH_PORT + ViewOption::WITH_PATH_NAME + ViewOption::WITH_PATH_PARAMS + ViewOption::WITH_QUERY_STR + ViewOption::WITH_FRAGMENT); return m_impl->asString(opts); } // ----------------------------------------------------------------- std::string Url::asString(const ViewOptions &opts) const { return m_impl->asString(opts); } // ----------------------------------------------------------------- std::string Url::getScheme() const { return m_impl->getScheme(); } // ----------------------------------------------------------------- std::string Url::getAuthority() const { return m_impl->getAuthority(); } // ----------------------------------------------------------------- std::string Url::getPathData() const { return m_impl->getPathData(); } // ----------------------------------------------------------------- std::string Url::getQueryString() const { return m_impl->getQueryString(); } // ----------------------------------------------------------------- std::string Url::getFragment(zypp::url::EEncoding eflag) const { return m_impl->getFragment(eflag); } // ----------------------------------------------------------------- std::string Url::getUsername(EEncoding eflag) const { return m_impl->getUsername(eflag); } // ----------------------------------------------------------------- std::string Url::getPassword(EEncoding eflag) const { return m_impl->getPassword(eflag); } // ----------------------------------------------------------------- std::string Url::getHost(EEncoding eflag) const { return m_impl->getHost(eflag); } // ----------------------------------------------------------------- std::string Url::getPort() const { return m_impl->getPort(); } // ----------------------------------------------------------------- std::string Url::getPathName(EEncoding eflag) const { return m_impl->getPathName(eflag); } // ----------------------------------------------------------------- std::string Url::getPathParams() const { return m_impl->getPathParams(); } // ----------------------------------------------------------------- zypp::url::ParamVec Url::getPathParamsVec() const { return m_impl->getPathParamsVec(); } // ----------------------------------------------------------------- zypp::url::ParamMap Url::getPathParamsMap(EEncoding eflag) const { return m_impl->getPathParamsMap(eflag); } // ----------------------------------------------------------------- std::string Url::getPathParam(const std::string ¶m, EEncoding eflag) const { return m_impl->getPathParam(param, eflag); } // ----------------------------------------------------------------- zypp::url::ParamVec Url::getQueryStringVec() const { return m_impl->getQueryStringVec(); } // ----------------------------------------------------------------- zypp::url::ParamMap Url::getQueryStringMap(EEncoding eflag) const { return m_impl->getQueryStringMap(eflag); } // ----------------------------------------------------------------- std::string Url::getQueryParam(const std::string ¶m, EEncoding eflag) const { return m_impl->getQueryParam(param, eflag); } // ----------------------------------------------------------------- void Url::setScheme(const std::string &scheme) { if(scheme == m_impl->getScheme()) { return; } if( m_impl->isKnownScheme(scheme)) { m_impl->setScheme(scheme); return; } UrlRef url = g_urlSchemeRepository().getUrlByScheme(scheme); if( !url) { url.reset( new UrlBase()); } url->init( scheme, m_impl->getAuthority(), m_impl->getPathData(), m_impl->getQueryString(), m_impl->getFragment(zypp::url::E_ENCODED) ); m_impl = url; } // ----------------------------------------------------------------- void Url::setAuthority(const std::string &authority) { m_impl->setAuthority(authority); } // ----------------------------------------------------------------- void Url::setPathData(const std::string &pathdata) { m_impl->setPathData(pathdata); } // ----------------------------------------------------------------- void Url::setQueryString(const std::string &querystr) { m_impl->setQueryString(querystr); } // ----------------------------------------------------------------- void Url::setFragment(const std::string &fragment, EEncoding eflag) { m_impl->setFragment(fragment, eflag); } // ----------------------------------------------------------------- void Url::setUsername(const std::string &user, EEncoding eflag) { m_impl->setUsername(user, eflag); } // ----------------------------------------------------------------- void Url::setPassword(const std::string &pass, EEncoding eflag) { m_impl->setPassword(pass, eflag); } // ----------------------------------------------------------------- void Url::setHost(const std::string &host) { m_impl->setHost(host); } // ----------------------------------------------------------------- void Url::setPort(const std::string &port) { m_impl->setPort(port); } // ----------------------------------------------------------------- void Url::setPathName(const std::string &path, EEncoding eflag) { m_impl->setPathName(path, eflag); } void Url::setPathName(const Pathname &path, EEncoding eflag) { m_impl->setPathName(path.asString(), eflag); } void Url::setPathName(const char *path, EEncoding eflag) { m_impl->setPathName(path, eflag); } // ----------------------------------------------------------------- void Url::appendPathName( const Pathname & path_r, EEncoding eflag_r ) { if ( ! path_r.emptyOrRoot() ) setPathName( Pathname(getPathName( eflag_r )) / path_r, eflag_r ); } // ----------------------------------------------------------------- void Url::setPathParams(const std::string ¶ms) { m_impl->setPathParams(params); } // ----------------------------------------------------------------- void Url::setPathParamsVec(const zypp::url::ParamVec &pvec) { m_impl->setPathParamsVec(pvec); } // ----------------------------------------------------------------- void Url::setPathParamsMap(const zypp::url::ParamMap &pmap) { m_impl->setPathParamsMap(pmap); } // ----------------------------------------------------------------- void Url::setPathParam(const std::string ¶m, const std::string &value) { m_impl->setPathParam(param, value); } // ----------------------------------------------------------------- void Url::setQueryStringVec(const zypp::url::ParamVec &pvec) { m_impl->setQueryStringVec(pvec); } // ----------------------------------------------------------------- void Url::setQueryStringMap(const zypp::url::ParamMap &pmap) { m_impl->setQueryStringMap(pmap); } // ----------------------------------------------------------------- void Url::setQueryParam(const std::string ¶m, const std::string &value) { m_impl->setQueryParam(param, value); } // ----------------------------------------------------------------- void Url::delQueryParam(const std::string ¶m) { m_impl->delQueryParam(param); } // ----------------------------------------------------------------- ViewOptions Url::getViewOptions() const { return m_impl->getViewOptions(); } // ----------------------------------------------------------------- void Url::setViewOptions(const ViewOptions &vopts) { m_impl->setViewOptions(vopts); } // ----------------------------------------------------------------- std::ostream & operator<<( std::ostream & str, const Url & url ) { return str << url.asString(); } bool operator<( const Url &lhs, const Url &rhs ) { return (lhs.asCompleteString() < rhs.asCompleteString()); } bool operator==( const Url &lhs, const Url &rhs ) { return (lhs.asCompleteString() == rhs.asCompleteString()); } bool operator!=( const Url &lhs, const Url &rhs ) { return (lhs.asCompleteString() != rhs.asCompleteString()); } //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/Url.h000066400000000000000000000704171334444677500152460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/Url.h */ #ifndef ZYPP_URL_H #define ZYPP_URL_H #include "zypp/url/UrlBase.h" #include "zypp/url/UrlUtils.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// namespace filesystem { class Pathname; } using filesystem::Pathname; /** * \class Url * \brief Url manipulation class. * * The generic URL (URI) syntax and its main components are defined in * RFC3986 (http://rfc.net/rfc3986.html) Section 3, "Syntax Components". * The scheme specific URL syntax and semantics is defined in the * specification of the particular scheme. See also RFC1738 * (http://rfc.net/rfc1738.html), that defines specific syntax for * several URL schemes. * * This class provides methods to access and manipulate generic and * common scheme-specific URL components (or using the more general * term, URI components). * To consider the scheme-specifics of a URL, the Url class contains * a reference object pointing to a UrlBase or derived object, that * implements the scheme specifics. * * Using the Url::registerScheme() method, it is possible to register * a preconfigured or derived UrlBase object for a specific scheme * name. The registered object will be cloned to handle all URLs * containing the specified scheme name. * * \par RFC3986, Syntax Components: * * The generic URI syntax consists of a hierarchical sequence of * components referred to as the scheme, authority, path, query, * and fragment. * * \code * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] * * hier-part = "//" authority path-abempty * / path-absolute * / path-rootless * / path-empty * \endcode * * The scheme and path components are required, though the path may be * empty (no characters). * When authority is present, the path must either be empty or begin * with a slash ("/") character. * When authority is not present, the path cannot begin with two slash * characters ("//"). * These restrictions result in five different ABNF rules for a path * (Section 3.3), only one of which will match any given URI reference. * * The following are two example URIs and their component parts: * \code * foo://example.com:8042/over/there?name=ferret#nose * \_/ \______________/\_________/ \_________/ \__/ * | | | | | * scheme authority path query fragment * | _____________________|__ * / \ / \ * urn:example:animal:ferret:nose * \endcode * */ class Url { public: /** * Encoding flags. */ typedef zypp::url::EEncoding EEncoding; /** * View options. */ typedef zypp::url::ViewOptions ViewOptions; ~Url(); Url(); /** * Create a new Url object as shared copy of the given one. * * Upon return, both objects will point to the same underlying * object. This state will remain until one of the object is * modified. * * \param url The Url object to make a copy of. * \throws url::UrlException if copy fails (should not happen). */ Url(const Url &url); /** * Create a new Url object as shared copy of the given reference. * * Upon return, both objects will point to the same underlying * object. This state will remain until one of the object is * modified. * * \param url The URL implementation reference to make a copy of. * \throws url::UrlException if reference is empty. */ Url(const zypp::url::UrlRef &url); /** * \brief Construct a Url object from percent-encoded URL string. * * Parses the \p encodedUrl string using the parseUrl() method * and assigns the result to the newly created object. * * \param encodedUrl A percent-encoded URL string. * \throws url::UrlParsingException if parsing of the url fails. * \throws url::UrlNotAllowedException if one of the components * is not allowed for the scheme. * \throws url::UrlBadComponentException if one of the components * contains an invalid character. */ Url(const std::string &encodedUrl); // ----------------- /** * \brief Parse a percent-encoded URL string. * * Tries to parse the given string into generic URL components * and creates a clone of a scheme-specialized object or a new * UrlBase object. * * \param encodedUrl A percent-encoded URL string. * \return A reference to a (derived) UrlBase object or * empty reference if the \p encodedUrl string * does not match the generic URL syntax. * \throws url::UrlNotAllowedException if one of the components * is not allowed for the scheme. * \throws url::UrlBadComponentException if one of the components * contains an invalid character. */ static url::UrlRef parseUrl(const std::string &encodedUrl); // ----------------- /** * \brief Assigns parsed percent-encoded URL string to the object. * * Parses \p encodedUrl string using the parseUrl() method * and assigns the result to the current object. * * \param encodedUrl A percent-encoded URL string. * \return A reference to this Url object. * \throws url::UrlParsingException if parsing of the url fails. * \throws url::UrlNotAllowedException if one of the components * is not allowed for the scheme. * \throws url::UrlBadComponentException if one of the components * contains an invalid character. */ Url& operator = (const std::string &encodedUrl); /** * \brief Assign a shared copy of \p url to the current object. * * Upon return, both objects will point to the same underlying * object. This state will remain until one of the objects is * modified. * * \param url The Url object to make a copy of. * \return A reference to this Url object. */ Url& operator = (const Url &url); // ----------------- /** * \brief Register a scheme-specific implementation. * * \param scheme A name of a scheme. * \param urlImpl A UrlBase object specialized for this scheme. * \return True, if the object claims to implement the scheme. */ static bool registerScheme(const std::string &scheme, url::UrlRef urlImpl); /** * \brief Returns all registered scheme names. * \return A vector with registered URL scheme names. */ static zypp::url::UrlSchemes getRegisteredSchemes(); /** * \brief Returns if scheme name is registered. * \return True, if scheme name is registered. */ static bool isRegisteredScheme(const std::string &scheme); // ----------------- /** * \brief Returns scheme names known to this object. * \return A vector with scheme names known by this object. */ zypp::url::UrlSchemes getKnownSchemes() const; /** * \brief Verifies the specified scheme name. * * Verifies the generic syntax of the specified \p scheme name * and if it is contained in the current object's list of known * schemes (see getKnownSchemes()) if the list is not empty. * * The default implementation in the UrlBase class returns an * emtpy list of known schemes, causing a check of the generic * syntax only. * * \return True, if generic scheme name syntax is valid and * the scheme name is known to the current object. */ bool isValidScheme(const std::string &scheme) const; /** hd cd dvd dir file iso */ static bool schemeIsLocal( const std::string & scheme_r ); /** \overload nonstatic version */ bool schemeIsLocal() const { return schemeIsLocal( getScheme() ); } /** nfs nfs4 smb cifs http https ftp sftp tftp */ static bool schemeIsRemote( const std::string & scheme_r ); /** \overload nonstatic version */ bool schemeIsRemote() const { return schemeIsRemote( getScheme() ); } /** cd dvd */ static bool schemeIsVolatile( const std::string & scheme_r ); /** \overload nonstatic version */ bool schemeIsVolatile() const { return schemeIsVolatile( getScheme() ); } /** http https ftp sftp tftp */ static bool schemeIsDownloading( const std::string & scheme_r ); /** \overload nonstatic version */ bool schemeIsDownloading() const { return schemeIsDownloading( getScheme() ); } /** * \brief Verifies the Url. * * Verifies if the current object contains a non-empty scheme * name. Additional semantical URL checks may be performed by * derived UrlBase objects. * * \return True, if the Url seems to be valid. */ bool isValid() const; // ----------------- /** * Returns a default string representation of the Url object. * * By default, a password in the URL will be hidden. * * \return A default string representation of the Url object. */ std::string asString() const; /** * Returns a string representation of the Url object. * * To include a password in the resulting Url string, use: * \code * url.asString(url.getViewOptions() + * url::ViewOptions::WITH_PASSWORD); * \endcode * * \param opts A combination of view options. * \return A string representation of the Url object. */ std::string asString(const ViewOptions &opts) const; /** * Returns a complete string representation of the Url object. * * This function ignores the configuration of the view options * in the current object (see setViewOption()) and forces to * return a string with all URL components included. * * \return A complete string representation of the Url object. */ std::string asCompleteString() const; // ----------------- /** * Returns the scheme name of the URL. * \return Scheme name of the current Url object. */ std::string getScheme() const; // ----------------- /** * Returns the encoded authority component of the URL. * * The returned authority string does not contain the leading * "//" separator characters, but just its "user:pass@host:port" * content only. * * \return The encoded authority component string. */ std::string getAuthority() const; /** * Returns the username from the URL authority. * \param eflag Flag if the usename should be percent-decoded or not. * \return The username sub-component from the URL authority. * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getUsername(EEncoding eflag = zypp::url::E_DECODED) const; /** * Returns the password from the URL authority. * \param eflag Flag if the password should be percent-decoded or not. * \return The password sub-component from the URL authority. * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getPassword(EEncoding eflag = zypp::url::E_DECODED) const; /** * Returns \c true if username \b and password are encoded in the authority component. */ bool hasCredentialsInAuthority() const { return ! ( getUsername().empty() || getPassword().empty() ); } /** * Returns the hostname or IP from the URL authority. * * In case the Url contains an IP number, it may be surrounded * by "[" and "]" characters, for example "[::1]" for an IPv6 * localhost address. * * \param eflag Flag if the host should be percent-decoded or not. * \return The host sub-component from the URL authority. * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getHost(EEncoding eflag = zypp::url::E_DECODED) const; /** * Returns the port from the URL authority. * \return The port sub-component from the URL authority. */ std::string getPort() const; // ----------------- /** * Returns the encoded path component of the URL. * * The path data contains the path name, optionally * followed by path parameters separated with a ";" * character, for example "/foo/bar;version=1.1". * * \return The encoded path component of the URL. */ std::string getPathData() const; /** * Returns the path name from the URL. * \param eflag Flag if the path should be decoded or not. * \return The path name sub-component without path parameters * from Path-Data component of the URL. * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getPathName(EEncoding eflag = zypp::url::E_DECODED) const; /** * Returns the path parameters from the URL. * \return The encoded path parameters from the URL. */ std::string getPathParams() const; /** * Returns a vector with path parameter substrings. * * The default path parameter separator is the \c ',' character. * A schema specific object may overide the default separators. * * For example, the path parameters string "foo=1,bar=2" is splited * by default into a vector containing the substrings "foo=1" and * "bar=2". * * \return The path parameters splited into a vector of substrings. */ zypp::url::ParamVec getPathParamsVec() const; /** * Returns a string map with path parameter keys and values. * * The default path parameter separator is the \c ',' character, * the default key/value separator for the path parameters is * the \c '=' character. * A schema specific object may overide the default separators. * * For example, the path parameters string "foo=1,bar=2" is splited * into a map containing "foo" = "1" and "bar" = "2" by default. * * \param eflag Flag if the path parameter keys and values should * be decoded or not. * \return The path parameters key and values as a string map. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ zypp::url::ParamMap getPathParamsMap(EEncoding eflag = zypp::url::E_DECODED) const; /** * Return the value for the specified path parameter. * * For example, if the path parameters string is "foo=1,bar=2" * the method will return the substring "1" for the param key * "foo" and "2" for the param key "bar". * * \param param The path parameter key. * \param eflag Flag if the path parameter keys and values should * be decoded or not. * \return The value for the path parameter key or empty string. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getPathParam(const std::string ¶m, EEncoding eflag = zypp::url::E_DECODED) const; // ----------------- /** * Returns the encoded query string component of the URL. * * The query string is returned without first "?" (separator) * character. Further "?" characters as in e.g. LDAP URLs * remain in the returned string. * * \return The encoded query string component of the URL. */ std::string getQueryString() const; /** * Returns a vector with query string parameter substrings. * * The default query string parameter separator is the \c '&' * character. * A schema specific object may overide the default separators. * * For example, the query string "foo=1&bar=2" is splited by * default into a vector containing the substrings "foo=1" and * "bar=2". * * \return The query string splited into a vector of substrings. */ zypp::url::ParamVec getQueryStringVec() const; /** * Returns a string map with query parameter and their values. * * The default query string parameter separator is the \c ',' * character, the default key/value separator the \c '=' character. * A schema specific object may overide the default separators. * * For example, the query string "foo=1&bar=2" is splited by * default into a map containing "foo" = "1" and "bar" = "2". * * \param eflag Flag if the query string keys and values should * be decoded or not. * \return The query string as a key/value string map. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ zypp::url::ParamMap getQueryStringMap(EEncoding eflag = zypp::url::E_DECODED) const; /** * Return the value for the specified query parameter. * * For example, if the query string is "foo=1,bar=2" the method * will return the substring "1" for the param key "foo" and * "2" for the param key "bar". * * \param param The query parameter key. * \param eflag Flag if the query parameter keys and values should * be decoded or not. * \return The value for the query parameter key or empty string. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getQueryParam(const std::string ¶m, EEncoding eflag = zypp::url::E_DECODED) const; // ----------------- /** * Returns the encoded fragment component of the URL. * \param eflag Flag if the fragment should be percent-decoded or not. * \return The encoded fragment component of the URL. * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ std::string getFragment(EEncoding eflag = zypp::url::E_DECODED) const; // ----------------- /** * \brief Set the scheme name in the URL. * \param scheme The new scheme name. * \throws url::UrlBadComponentException if the \p scheme * contains an invalid character or is empty. */ void setScheme(const std::string &scheme); // ----------------- /** * \brief Set the authority component in the URL. * * The \p authority string shoud contain the "user:pass@host:port" * sub-components without any leading "//" separator characters. * * \param authority The encoded authority component string. * \throws url::UrlNotAllowedException if the \p authority * has to be empty in for the current scheme. * \throws url::UrlBadComponentException if the \p authority * contains an invalid character. * \throws url::UrlParsingException if \p authority parsing fails. */ void setAuthority(const std::string &authority); /** * \brief Set the username in the URL authority. * \param user The new username. * \param eflag If the \p username is encoded or not. * \throws url::UrlNotAllowedException if the \p user * has to be empty in for the current scheme * \throws url::UrlBadComponentException if the \p user * contains an invalid character. */ void setUsername(const std::string &user, EEncoding eflag = zypp::url::E_DECODED); /** * \brief Set the password in the URL authority. * \param pass The new password. * \param eflag If the \p password is encoded or not. * \throws url::UrlNotAllowedException if the \p pass * has to be empty in for the current scheme. * \throws url::UrlBadComponentException if the \p pass * contains an invalid character. */ void setPassword(const std::string &pass, EEncoding eflag = zypp::url::E_DECODED); /** * \brief Set the hostname or IP in the URL authority. * * The \p host parameter may contain a hostname, an IPv4 address * in dotted-decimal form or an IPv6 address literal encapsulated * within square brackets (RFC3513, Sect. 2.2). * * A hostname may contain national alphanumeric UTF8 characters * (letters other than ASCII a-z0-9), that will be encoded. * This function allows to specify both, a encoded or decoded * hostname. * * Other IP literals in "[v ... ]" square bracket format are not * supported by the implementation in UrlBase class. * * \param host The new hostname or IP address. * \throws url::UrlNotAllowedException if the \p host (authority) * has to be empty in for the current scheme. * \throws url::UrlBadComponentException if the \p host is invalid. */ void setHost(const std::string &host); /** * \brief Set the port number in the URL authority. * \param port The new port number. * \throws url::UrlNotAllowedException if the \p port (authority) * has to be empty in for the current scheme. * \throws url::UrlBadComponentException if the \p port is invalid. */ void setPort(const std::string &port); // ----------------- /** * \brief Set the path data component in the URL. * * By default, the \p pathdata string may include path * parameters separated by the ";" separator character. * * \param pathdata The encoded path data component string. * \throws url::UrlBadComponentException if the \p pathdata * contains an invalid character. */ void setPathData(const std::string &pathdata); /** * \brief Set the path name. * \param path The new path name. * \param eflag If the \p path name is encoded or not. * \throws url::UrlBadComponentException if the \p path name * contains an invalid character. */ void setPathName(const std::string &path, EEncoding eflag = zypp::url::E_DECODED); /** \overload */ void setPathName(const Pathname &path, EEncoding eflag = zypp::url::E_DECODED); /** \overload */ void setPathName(const char *path, EEncoding eflag = zypp::url::E_DECODED); /** * \brief Extend the path name. */ void appendPathName( const Pathname & path_r, EEncoding eflag_r = zypp::url::E_DECODED ); /** * \brief Set the path parameters. * \param params The new encoded path parameter string. * \throws url::UrlBadComponentException if the path \p params * contains an invalid character. */ void setPathParams(const std::string ¶ms); /** * \brief Set the path parameters. * \param pvec The vector with encoded path parameters. * \throws url::UrlBadComponentException if the \p pvec * contains an invalid character. */ void setPathParamsVec(const zypp::url::ParamVec &pvec); /** * \brief Set the path parameters. * \param pmap The map with decoded path parameters. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). */ void setPathParamsMap(const zypp::url::ParamMap &pmap); /** * \brief Set or add value for the specified path parameter. * \param param The decoded path parameter name. * \param value The decoded path parameter value. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ void setPathParam(const std::string ¶m, const std::string &value); // ----------------- /** * \brief Set the query string in the URL. * \param querystr The new encoded query string. * \throws url::UrlBadComponentException if the \p querystr * contains an invalid character. */ void setQueryString(const std::string &querystr); /** * \brief Set the query parameters. * \param qvec The vector with encoded query parameters. * \throws url::UrlBadComponentException if the \p qvec * contains an invalid character. */ void setQueryStringVec(const zypp::url::ParamVec &qvec); /** * \brief Set the query parameters. * \param qmap The map with decoded query parameters. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). */ void setQueryStringMap(const zypp::url::ParamMap &qmap); /** * \brief Set or add value for the specified query parameter. * \param param The decoded query parameter name. * \param value The decoded query parameter value. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ void setQueryParam(const std::string ¶m, const std::string &value); /** * \brief remove the specified query parameter. * \param param The decoded query parameter name. * \throws url::UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws url::UrlDecodingException if the decoded result string * would contain a '\\0' character. */ void delQueryParam(const std::string ¶m); // ----------------- /** * \brief Set the fragment string in the URL. * \param fragment The new fragment string. * \param eflag If the \p fragment is encoded or not. * \throws url::UrlBadComponentException if the \p fragment * contains an invalid character. */ void setFragment(const std::string &fragment, EEncoding eflag = zypp::url::E_DECODED); // ----------------- /** * Return the view options of the current object. * * This method is used to query the view options * used by the asString() method. * * \return The current view option combination. */ ViewOptions getViewOptions() const; /** * Change the view options of the current object. * * This method is used to change the view options * used by the asString() method. * * \param vopts New view options combination. */ void setViewOptions(const ViewOptions &vopts); private: url::UrlRef m_impl; }; std::ostream & operator<<( std::ostream & str, const Url & url ); /** * needed for std::set */ bool operator<( const Url &lhs, const Url &rhs ); /** * needed for find */ bool operator==( const Url &lhs, const Url &rhs ); bool operator!=( const Url &lhs, const Url &rhs ); //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif /* ZYPP_URL_H */ /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/UserData.h000066400000000000000000000162111334444677500162040ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/UserData.h */ #ifndef ZYPP_USERDATA_H #define ZYPP_USERDATA_H #include #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/ContentType.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace callback { /////////////////////////////////////////////////////////////////// /// \class UserData /// \brief Typesafe passing of user data via callbacks /// /// Basically a std::map plus /// associated \ref ContentType. /// /// Constness protects non-empty values from being modified. /// It is possible to overwrite empty values or to add new ones. /////////////////////////////////////////////////////////////////// class UserData { public: typedef boost::any AnyType; typedef boost::bad_any_cast bad_AnyType_cast; typedef std::map DataType; typedef DataType::size_type size_type; typedef DataType::key_type key_type; typedef DataType::value_type value_type; typedef DataType::const_iterator const_iterator; typedef zypp::ContentType ContentType; public: /** Default ctor. */ UserData() {} /** Ctor taking ContentType. */ explicit UserData( ContentType type_r ) : _type( std::move(type_r) ) {} /** Ctor taking ContentType. */ explicit UserData( std::string type_r ) : UserData( ContentType( std::move(type_r) ) ) {} /** Ctor taking ContentType. */ UserData( std::string type_r, std::string subtype_r ) : UserData( ContentType( std::move(type_r), std::move(subtype_r) ) ) {} public: /** Get type. */ const ContentType & type() const { return _type; } /** Set type. */ void type( ContentType type_r ) { _type = std::move(type_r); } public: /** Validate object in a boolean context: has data */ explicit operator bool() const { return !empty(); } /** Whether \ref data is empty. */ bool empty() const { return !_dataP || _dataP->empty(); } /** Size of \ref data. */ size_type size() const { return _dataP ? _dataP->size() : 0; } /** The \ref data. */ const DataType & data() const { return dataRef(); } /** Whether \a key_r is in \ref data. */ bool haskey( const std::string & key_r ) const { return _dataP && _dataP->find( key_r ) != _dataP->end(); } /** Whether \a key_r is in \ref data and value is not empty. */ bool hasvalue( const std::string & key_r ) const { bool ret = false; if ( _dataP ) { const_iterator it = _dataP->find( key_r ); if ( it != _dataP->end() && ! it->second.empty() ) { ret = true; } } return ret; } /** Set the value for key (nonconst version always returns true). * Const version is allowed to set empty values or to add new ones only. */ bool set( const std::string & key_r, AnyType val_r ) { dataRef()[key_r] = std::move(val_r); return true; } /** \overload const version */ bool set( const std::string & key_r, AnyType val_r ) const { bool ret = false; AnyType & val( dataRef()[key_r] ); if ( val.empty() ) { val = std::move(val_r); ret = true; } return ret; } /** Set an empty value for \a key_r (if possible). */ bool reset( const std::string & key_r ) { return set( key_r, AnyType() ); } /** \overload const version */ bool reset( const std::string & key_r ) const { return set( key_r, AnyType() ); } /** Remove key from data.*/ void erase( const std::string & key_r ) { if ( _dataP ) _dataP->erase( key_r ); } /** \ref get helper returning the keys AnyType value or an empty value if key does not exist. */ const AnyType & getvalue( const std::string & key_r ) const { if ( _dataP ) { const_iterator it = _dataP->find( key_r ); if ( it != _dataP->end() ) { return it->second; } } static const AnyType none; return none; } /** Pass back a const Tp & reference to \a key_r value. * \throws bad_AnyType_cast if key is not set or value is not of appropriate type * \code * UserData data; * std::string value( "defaultvalue" ); * try * { * value = data.get( "mykey" ); * } * catch ( const UserData::bad_AnyType_cast & ) * { * // no "mykey" or not a std::sting * } * \endcode */ template const Tp & get( const std::string & key_r ) const { return boost::any_cast( getvalue( key_r ) ); } /** Pass back a \a Tp copy of \a key_r value. * \throws bad_AnyType_cast if key is not set or value is not of appropriate type * \code * UserData data; * std::string value = data.get( "mykey", "defaultvalue" ); * \endcode */ template Tp get( const std::string & key_r, const Tp & default_r ) const { Tp ret( default_r ); get( key_r, ret ); return ret; } /** If the value for \a key_r is of the same type as \a ret_r, pass it back in \a ret_r and return \c true;. * \code * UserData data; * std::string value( "defaultvalue" ); * if ( ! data.get( "mykey", value ) * { * // no "mykey" or not a std::sting * } * \endcode */ template bool get( const std::string & key_r, Tp & ret_r ) const { bool ret = false; if ( _dataP ) { const_iterator it = _dataP->find( key_r ); if ( it != _dataP->end() ) { auto ptr = boost::any_cast(&it->second); if ( ptr ) { ret_r = *ptr; ret = true; } } } return ret; } private: DataType & dataRef() const { if ( ! _dataP ) _dataP.reset( new DataType ); return *_dataP; } private: ContentType _type; mutable shared_ptr _dataP; }; /** \relates UserData Stream output */ inline std::ostream & operator<<( std::ostream & str, const UserData & obj ) { return str << "UserData(" << obj.type() << ":" << obj.size() << ")";} } // namespace callback /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_USERDATA_H libzypp-17.7.0/zypp/Vendor.h000066400000000000000000000021061334444677500157270ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/Vendor.h * */ #ifndef ZYPP_VENDOR_H #define ZYPP_VENDOR_H #include #include "zypp/IdString.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// typedef std::string Vendor; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #include "VendorAttr.h" #endif // ZYPP_VENDOR_H libzypp-17.7.0/zypp/VendorAttr.cc000066400000000000000000000212631334444677500167250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /* File: VendorAttr.cc Author: Michael Andres Maintainer: Michael Andres Purpose: Manage vendor attributes /-*/ #include #include #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/String.h" #include "zypp/PathInfo.h" #include "zypp/VendorAttr.h" #include "zypp/ZYppFactory.h" #include "zypp/ZConfig.h" #include "zypp/PathInfo.h" #include "zypp/parser/IniDict.h" #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zypp::VendorAttr" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// typedef std::map VendorMap; VendorMap _vendorMap; unsigned vendorGroupCounter; ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// typedef DefaultIntegral VendorMatchEntry; typedef std::unordered_map VendorMatch; int _nextId = -1; VendorMatch _vendorMatch; /** Reset match cache if global VendorMap was changed. */ inline void vendorMatchIdReset() { _nextId = -1; _vendorMatch.clear(); } /** * Helper mapping vendor string to eqivalence class ID. * * \li Return the vendor strings eqivalence class ID stored in _vendorMatch. * \li If not found, assign and return the eqivalence class ID of the lowercased string. * \li If not found, assign and return a new ID (look into the predefined VendorMap (id>0), * otherwise create a new ID (<0)). */ inline unsigned vendorMatchId( IdString vendor ) { VendorMatchEntry & ent( _vendorMatch[vendor] ); if ( ! ent ) { IdString lcvendor( str::toLower( vendor.asString() ) ); VendorMatchEntry & lcent( _vendorMatch[lcvendor] ); if ( ! lcent ) { unsigned myid = 0; // bnc#812608: no pefix compare in opensuse namespace static const IdString openSUSE( "opensuse" ); if ( lcvendor == openSUSE || ! str::hasPrefix( lcvendor.c_str(), openSUSE.c_str() ) ) { // Compare this entry with the global vendor map. // Reversed to get the longest prefix. for ( VendorMap::reverse_iterator it = _vendorMap.rbegin(); it != _vendorMap.rend(); ++it ) { if ( str::hasPrefix( lcvendor.c_str(), it->first ) ) { myid = it->second; break; // found } } } if ( ! myid ) { myid = --_nextId; // get a new class ID } ent = lcent = myid; // remember the new DI } else { ent = lcent; // take the ID from the lowercased vendor string } } return ent; } ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// const VendorAttr & VendorAttr::instance() { static VendorAttr _val; return _val; } VendorAttr::VendorAttr () { vendorGroupCounter = 1; Pathname vendorPath (ZConfig::instance().vendorPath()); { Target_Ptr trg( getZYpp()->getTarget() ); if ( trg ) vendorPath = trg->root() / vendorPath; } // creating entries addVendorDirectory (vendorPath); // bsc#1030686: The legacy default equivalence of 'suse' and 'opensuse' // has been removed. Unless they are mentioned in a custom rule, create // separate classes for them. if ( _vendorMap.find("suse") == _vendorMap.end() ) _vendorMap["suse"] = ++vendorGroupCounter; if ( _vendorMap.find("opensuse") == _vendorMap.end() ) _vendorMap["opensuse"] = ++vendorGroupCounter; MIL << *this << endl; } void VendorAttr::_addVendorList( VendorList & vendorList_r ) const { unsigned int nextId = vendorGroupCounter + 1; // convert to lowercase and check if a vendor is already defined // in an existing group. for_( it, vendorList_r.begin(), vendorList_r.end() ) { *it = str::toLower( *it ); if (_vendorMap.find(*it) != _vendorMap.end()) { if (nextId != vendorGroupCounter + 1 && nextId != _vendorMap[*it]) { // We have at least 3 groups which has to be mixed --> mix the third group to the first unsigned int moveID = _vendorMap[*it]; for_( itMap, _vendorMap.begin(), _vendorMap.end() ) { if (itMap->second == moveID) itMap->second = nextId; } } else { nextId = _vendorMap[*it]; WAR << "Vendor " << *it << " is already used in another vendor group. --> mixing these groups" << endl; } } } // add new entries for_( it, vendorList_r.begin(), vendorList_r.end() ) { _vendorMap[*it] = nextId; } if (nextId == vendorGroupCounter + 1) ++vendorGroupCounter; // invalidate any match cache vendorMatchIdReset(); } bool VendorAttr::addVendorFile( const Pathname & filename ) const { parser::IniDict dict; if ( PathInfo(filename).isExist()) { InputStream is(filename); dict.read(is); } else { MIL << filename << " not found." << endl; return false; } for ( parser::IniDict::section_const_iterator sit = dict.sectionsBegin(); sit != dict.sectionsEnd(); ++sit ) { std::string section(*sit); //MIL << section << endl; for ( parser::IniDict::entry_const_iterator it = dict.entriesBegin(*sit); it != dict.entriesEnd(*sit); ++it ) { std::string entry(it->first); std::string value(it->second); if ( section == "main" ) { if ( entry == "vendors" ) { VendorList vendorlist; str::split( value, back_inserter(vendorlist), "," ); _addVendorList (vendorlist); break; } } } } return true; } bool VendorAttr::addVendorDirectory( const Pathname & dirname ) const { if ( ! PathInfo(dirname).isExist() ) { MIL << dirname << " not found." << endl; return false; } std::list filenames; filesystem::readdir( filenames, dirname, false ); for_( it, filenames.begin(), filenames.end() ) { MIL << "Adding file " << *it << endl; addVendorFile( *it ); } return true; } ////////////////////////////////////////////////////////////////// // vendor equivalence: ////////////////////////////////////////////////////////////////// bool VendorAttr::equivalent( IdString lVendor, IdString rVendor ) const { if ( lVendor == rVendor ) return true; return vendorMatchId( lVendor ) == vendorMatchId( rVendor ); } bool VendorAttr::equivalent( const Vendor & lVendor, const Vendor & rVendor ) const { return equivalent( IdString( lVendor ), IdString( rVendor ) ); } bool VendorAttr::equivalent( sat::Solvable lVendor, sat::Solvable rVendor ) const { return equivalent( lVendor.vendor(), rVendor.vendor() ); } bool VendorAttr::equivalent( const PoolItem & lVendor, const PoolItem & rVendor ) const { return equivalent( lVendor.satSolvable().vendor(), rVendor.satSolvable().vendor() ); } ////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const VendorAttr & /*obj*/ ) { str << "Equivalent vendors:"; for_( it, _vendorMap.begin(), _vendorMap.end() ) { str << endl << " [" << it->second << "] " << it->first; } return str; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/VendorAttr.h000066400000000000000000000060661334444677500165730ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/VendorAttr.h * */ #ifndef ZYPP_VENDORATTR_H #define ZYPP_VENDORATTR_H #include #include #include #include "zypp/PathInfo.h" #include "zypp/Vendor.h" /////////////////////////////////////////////////////////////////// namespace zypp { ////////////////////////////////////////////////////////////////// class PoolItem; namespace sat { class Solvable; } /** Definition of vendor equivalence. * * Packages with equivalent vendor strings may replace themselves without * creating a solver error. * * Per default vendor strings starting with \c "suse" are treated as * being equivalent. This may be tuned by providing customized * vendor description files in \c /etc/zypp/vendors.d. * * \see \ref pg_zypp-solv-vendorchange */ class VendorAttr { public: typedef std::vector VendorList; /** Singleton */ static const VendorAttr & instance(); /** * Adding new equivalent vendors described in a directory **/ bool addVendorDirectory( const Pathname & dirname ) const; /** * Adding new equivalent vendors described in a file **/ bool addVendorFile( const Pathname & filename ) const; /** * Adding new equivalent vendor set from list **/ template void addVendorList( TIterator begin, TIterator end ) const { VendorList tmp( begin, end ); _addVendorList( tmp ); } /** Return whether two vendor strings should be treated as the same vendor. * Usually the solver is allowed to automatically select a package of an * equivalent vendor when updating. Replacing a package with one of a * different vendor usually must be confirmed by the user. */ bool equivalent( const Vendor & lVendor, const Vendor & rVendor ) const; /** \overload using \ref IdStrings */ bool equivalent( IdString lVendor, IdString rVendor ) const; /** \overload using \ref sat::Solvable */ bool equivalent( sat::Solvable lVendor, sat::Solvable rVendor ) const; /** \overload using \ref PoolItem */ bool equivalent( const PoolItem & lVendor, const PoolItem & rVendor ) const; private: VendorAttr(); void _addVendorList( VendorList & ) const; }; /** \relates VendorAttr Stream output */ std::ostream & operator<<( std::ostream & str, const VendorAttr & obj ); /////////////////////////////////////////////////////////////////// }; // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_VENDORATTR_H libzypp-17.7.0/zypp/VendorSupportOptions.cc000066400000000000000000000037341334444677500210460ustar00rootroot00000000000000 #include "zypp/VendorSupportOptions.h" #include "zypp/base/Gettext.h" namespace zypp { std::string asUserString( VendorSupportOption opt ) { switch (opt) { case VendorSupportUnknown: return _("unknown"); break; case VendorSupportUnsupported: return _("unsupported"); break; case VendorSupportLevel1: return _("Level 1"); break; case VendorSupportLevel2: return _("Level 2"); break; case VendorSupportLevel3: return _("Level 3"); break; case VendorSupportACC: return _("Additional Customer Contract Necessary"); } return _("invalid"); } std::string asUserStringDescription( VendorSupportOption opt ) { switch (opt) { case VendorSupportUnknown: return _("The level of support is unspecified"); break; case VendorSupportUnsupported: return _("The vendor does not provide support."); break; case VendorSupportLevel1: return _("Problem determination, which means technical support designed to provide compatibility information, installation assistance, usage support, on-going maintenance and basic troubleshooting. Level 1 Support is not intended to correct product defect errors."); break; case VendorSupportLevel2: return _("Problem isolation, which means technical support designed to duplicate customer problems, isolate problem area and provide resolution for problems not resolved by Level 1 Support."); break; case VendorSupportLevel3: return _("Problem resolution, which means technical support designed to resolve complex problems by engaging engineering in resolution of product defects which have been identified by Level 2 Support."); break; case VendorSupportACC: return _("An additional customer contract is necessary for getting support."); } return _("Unknown support option. Description not available"); } } libzypp-17.7.0/zypp/VendorSupportOptions.h000066400000000000000000000060151334444677500207030ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/VendorSupportOptions.h * */ #ifndef ZYPP_VendorSupportOptions_H #define ZYPP_VendorSupportOptions_H #include #include "zypp/base/Flags.h" namespace zypp { enum VendorSupportOption { /** * The support for this package is unknown */ VendorSupportUnknown = 0, /** * The package is known to be unsupported by the vendor */ VendorSupportUnsupported = (1<<0), /** * Additional Customer Contract necessary */ VendorSupportACC = (1<<1), /** * Problem determination, which means technical support * designed to provide compatibility information, * installation assistance, usage support, on-going maintenance * and basic troubleshooting. Level 1 Support is not intended to * correct product defect errors. * * May have different semantics for different organizations. */ VendorSupportLevel1 = (1<<2), /** * Problem isolation, which means technical support designed * to duplicate customer problems, isolate problem area and provide * resolution for problems not resolved by Level 1 Support. * * May have different semantics for different organizations. */ VendorSupportLevel2 = (1<<3), /** * Problem resolution, which means technical support designed * to resolve complex problems by engaging engineering in resolution * of product defects which have been identified by Level 2 Support. * * May have different semantics for different organizations. */ VendorSupportLevel3 = (1<<4) }; // Make a flag set for this ZYPP_DECLARE_FLAGS(VendorSupportOptions,VendorSupportOption); ZYPP_DECLARE_OPERATORS_FOR_FLAGS(VendorSupportOptions) /** * converts the support option to a name intended to be printed * to the user. * * Note the description is based in the way Novell defines the support * levels, and the semantics may be different for other vendors. */ std::string asUserString( VendorSupportOption ); /** * converts the support option to a description intended to be printed * to the user. * * Note the description is based in the way Novell defines the support * levels, and the semantics may be different for other vendors. */ std::string asUserStringDescription( VendorSupportOption ); } #endif libzypp-17.7.0/zypp/ZConfig.cc000066400000000000000000001172401334444677500161750ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZConfig.cc * */ extern "C" { #include #include #if __GLIBC_PREREQ (2,16) #include // getauxval for PPC64P7 detection #endif #include #include } #include #include #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/InputStream.h" #include "zypp/base/String.h" #include "zypp/base/Regex.h" #include "zypp/ZConfig.h" #include "zypp/ZYppFactory.h" #include "zypp/PathInfo.h" #include "zypp/parser/IniDict.h" #include "zypp/sat/Pool.h" #include "zypp/sat/detail/PoolImpl.h" using namespace std; using namespace zypp::filesystem; using namespace zypp::parser; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zconfig" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** \addtogroup ZyppConfig Zypp Configuration Options * * The global \c zypp.conf configuration file is per default located in \c /etc/zypp/. * An alternate config file can be set using the environment varaible \c ZYPP_CONF= * (see \ref zypp-envars). * * \section ZyppConfig_ZyppConfSample Sample zypp.conf * \include ../zypp.conf */ /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// /** Determine system architecture evaluating \c uname and \c /proc/cpuinfo. */ Arch _autodetectSystemArchitecture() { struct ::utsname buf; if ( ::uname( &buf ) < 0 ) { ERR << "Can't determine system architecture" << endl; return Arch_noarch; } Arch architecture( buf.machine ); MIL << "Uname architecture is '" << buf.machine << "'" << endl; if ( architecture == Arch_i686 ) { // some CPUs report i686 but dont implement cx8 and cmov // check for both flags in /proc/cpuinfo and downgrade // to i586 if either is missing (cf bug #18885) std::ifstream cpuinfo( "/proc/cpuinfo" ); if ( cpuinfo ) { for( iostr::EachLine in( cpuinfo ); in; in.next() ) { if ( str::hasPrefix( *in, "flags" ) ) { if ( in->find( "cx8" ) == std::string::npos || in->find( "cmov" ) == std::string::npos ) { architecture = Arch_i586; WAR << "CPU lacks 'cx8' or 'cmov': architecture downgraded to '" << architecture << "'" << endl; } break; } } } else { ERR << "Cant open " << PathInfo("/proc/cpuinfo") << endl; } } else if ( architecture == Arch_sparc || architecture == Arch_sparc64 ) { // Check for sun4[vum] to get the real arch. (bug #566291) std::ifstream cpuinfo( "/proc/cpuinfo" ); if ( cpuinfo ) { for( iostr::EachLine in( cpuinfo ); in; in.next() ) { if ( str::hasPrefix( *in, "type" ) ) { if ( in->find( "sun4v" ) != std::string::npos ) { architecture = ( architecture == Arch_sparc64 ? Arch_sparc64v : Arch_sparcv9v ); WAR << "CPU has 'sun4v': architecture upgraded to '" << architecture << "'" << endl; } else if ( in->find( "sun4u" ) != std::string::npos ) { architecture = ( architecture == Arch_sparc64 ? Arch_sparc64 : Arch_sparcv9 ); WAR << "CPU has 'sun4u': architecture upgraded to '" << architecture << "'" << endl; } else if ( in->find( "sun4m" ) != std::string::npos ) { architecture = Arch_sparcv8; WAR << "CPU has 'sun4m': architecture upgraded to '" << architecture << "'" << endl; } break; } } } else { ERR << "Cant open " << PathInfo("/proc/cpuinfo") << endl; } } else if ( architecture == Arch_armv7l || architecture == Arch_armv6l ) { std::ifstream platform( "/etc/rpm/platform" ); if (platform) { for( iostr::EachLine in( platform ); in; in.next() ) { if ( str::hasPrefix( *in, "armv7hl-" ) ) { architecture = Arch_armv7hl; WAR << "/etc/rpm/platform contains armv7hl-: architecture upgraded to '" << architecture << "'" << endl; break; } if ( str::hasPrefix( *in, "armv6hl-" ) ) { architecture = Arch_armv6hl; WAR << "/etc/rpm/platform contains armv6hl-: architecture upgraded to '" << architecture << "'" << endl; break; } } } } #if __GLIBC_PREREQ (2,16) else if ( architecture == Arch_ppc64 ) { const char * platform = (const char *)getauxval( AT_PLATFORM ); int powerlvl; if ( platform && sscanf( platform, "power%d", &powerlvl ) == 1 && powerlvl > 6 ) architecture = Arch_ppc64p7; } #endif return architecture; } /** The locale to be used for texts and messages. * * For the encoding to be used the preference is * * LC_ALL, LC_CTYPE, LANG * * For the language of the messages to be used, the preference is * * LANGUAGE, LC_ALL, LC_MESSAGES, LANG * * Note that LANGUAGE can contain more than one locale name, it can be * a list of locale names like for example * * LANGUAGE=ja_JP.UTF-8:de_DE.UTF-8:fr_FR.UTF-8 * \todo Support dynamic fallbacklists defined by LANGUAGE */ Locale _autodetectTextLocale() { Locale ret( Locale::enCode ); const char * envlist[] = { "LC_ALL", "LC_MESSAGES", "LANG", NULL }; for ( const char ** envvar = envlist; *envvar; ++envvar ) { const char * envlang = getenv( *envvar ); if ( envlang ) { std::string envstr( envlang ); if ( envstr != "POSIX" && envstr != "C" ) { Locale lang( envstr ); if ( lang ) { MIL << "Found " << *envvar << "=" << envstr << endl; ret = lang; break; } } } } MIL << "Default text locale is '" << ret << "'" << endl; #warning HACK AROUND BOOST_TEST_CATCH_SYSTEM_ERRORS setenv( "BOOST_TEST_CATCH_SYSTEM_ERRORS", "no", 1 ); return ret; } inline Pathname _autodetectSystemRoot() { Target_Ptr target( getZYpp()->getTarget() ); return target ? target->root() : Pathname(); } inline Pathname _autodetectZyppConfPath() { const char *env_confpath = getenv( "ZYPP_CONF" ); return env_confpath ? env_confpath : "/etc/zypp/zypp.conf"; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /** Mutable option. */ template struct Option { typedef Tp value_type; /** No default ctor, explicit initialisation! */ Option( const value_type & initial_r ) : _val( initial_r ) {} /** Get the value. */ const value_type & get() const { return _val; } /** Autoconversion to value_type. */ operator const value_type &() const { return _val; } /** Set a new value. */ void set( const value_type & newval_r ) { _val = newval_r; } /** Non-const reference to set a new value. */ value_type & ref() { return _val; } private: value_type _val; }; /** Mutable option with initial value also remembering a config value. */ template struct DefaultOption : public Option { typedef Tp value_type; typedef Option option_type; DefaultOption( const value_type & initial_r ) : Option( initial_r ), _default( initial_r ) {} /** Reset value to the current default. */ void restoreToDefault() { this->set( _default.get() ); } /** Reset value to a new default. */ void restoreToDefault( const value_type & newval_r ) { setDefault( newval_r ); restoreToDefault(); } /** Get the current default value. */ const value_type & getDefault() const { return _default.get(); } /** Set a new default value. */ void setDefault( const value_type & newval_r ) { _default.set( newval_r ); } private: option_type _default; }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZConfig::Impl // /** ZConfig implementation. * \todo Enrich section and entry definition by some comment * (including the default setting and provide some method to * write this into a sample zypp.conf. */ class ZConfig::Impl { typedef std::set MultiversionSpec; public: Impl( const Pathname & override_r = Pathname() ) : _parsedZyppConf ( override_r ) , cfg_arch ( defaultSystemArchitecture() ) , cfg_textLocale ( defaultTextLocale() ) , updateMessagesNotify ( "" ) , repo_add_probe ( false ) , repo_refresh_delay ( 10 ) , repoLabelIsAlias ( false ) , download_use_deltarpm ( true ) , download_use_deltarpm_always ( false ) , download_media_prefer_download( true ) , download_mediaMountdir ( "/var/adm/mount" ) , download_max_concurrent_connections( 5 ) , download_min_download_speed ( 0 ) , download_max_download_speed ( 0 ) , download_max_silent_tries ( 5 ) , download_transfer_timeout ( 180 ) , commit_downloadMode ( DownloadDefault ) , gpgCheck ( true ) , repoGpgCheck ( indeterminate ) , pkgGpgCheck ( indeterminate ) , solver_onlyRequires ( false ) , solver_allowVendorChange ( false ) , solver_dupAllowDowngrade ( true ) , solver_dupAllowNameChange ( true ) , solver_dupAllowArchChange ( true ) , solver_dupAllowVendorChange ( true ) , solver_cleandepsOnRemove ( false ) , solver_upgradeTestcasesToKeep ( 2 ) , solverUpgradeRemoveDroppedPackages( true ) , apply_locks_file ( true ) , pluginsPath ( "/usr/lib/zypp/plugins" ) { MIL << "libzypp: " << VERSION << endl; // override_r has higest prio // ZYPP_CONF might override /etc/zypp/zypp.conf if ( _parsedZyppConf.empty() ) { _parsedZyppConf = _autodetectZyppConfPath(); } else { // Inject this into ZConfig. Be shure this is // allocated via new. See: reconfigureZConfig INT << "Reconfigure to " << _parsedZyppConf << endl; ZConfig::instance()._pimpl.reset( this ); } if ( PathInfo(_parsedZyppConf).isExist() ) { parser::IniDict dict( _parsedZyppConf ); for ( IniDict::section_const_iterator sit = dict.sectionsBegin(); sit != dict.sectionsEnd(); ++sit ) { string section(*sit); //MIL << section << endl; for ( IniDict::entry_const_iterator it = dict.entriesBegin(*sit); it != dict.entriesEnd(*sit); ++it ) { string entry(it->first); string value(it->second); //DBG << (*it).first << "=" << (*it).second << endl; if ( section == "main" ) { if ( entry == "arch" ) { Arch carch( value ); if ( carch != cfg_arch ) { WAR << "Overriding system architecture (" << cfg_arch << "): " << carch << endl; cfg_arch = carch; } } else if ( entry == "cachedir" ) { cfg_cache_path = Pathname(value); } else if ( entry == "metadatadir" ) { cfg_metadata_path = Pathname(value); } else if ( entry == "solvfilesdir" ) { cfg_solvfiles_path = Pathname(value); } else if ( entry == "packagesdir" ) { cfg_packages_path = Pathname(value); } else if ( entry == "configdir" ) { cfg_config_path = Pathname(value); } else if ( entry == "reposdir" ) { cfg_known_repos_path = Pathname(value); } else if ( entry == "servicesdir" ) { cfg_known_services_path = Pathname(value); } else if ( entry == "varsdir" ) { cfg_vars_path = Pathname(value); } else if ( entry == "repo.add.probe" ) { repo_add_probe = str::strToBool( value, repo_add_probe ); } else if ( entry == "repo.refresh.delay" ) { str::strtonum(value, repo_refresh_delay); } else if ( entry == "repo.refresh.locales" ) { std::vector tmp; str::split( value, back_inserter( tmp ), ", \t" ); boost::function transform( [](const std::string & str_r)->Locale{ return Locale(str_r); } ); repoRefreshLocales.insert( make_transform_iterator( tmp.begin(), transform ), make_transform_iterator( tmp.end(), transform ) ); } else if ( entry == "download.use_deltarpm" ) { download_use_deltarpm = str::strToBool( value, download_use_deltarpm ); } else if ( entry == "download.use_deltarpm.always" ) { download_use_deltarpm_always = str::strToBool( value, download_use_deltarpm_always ); } else if ( entry == "download.media_preference" ) { download_media_prefer_download.restoreToDefault( str::compareCI( value, "volatile" ) != 0 ); } else if ( entry == "download.media_mountdir" ) { download_mediaMountdir.restoreToDefault( Pathname(value) ); } else if ( entry == "download.max_concurrent_connections" ) { str::strtonum(value, download_max_concurrent_connections); } else if ( entry == "download.min_download_speed" ) { str::strtonum(value, download_min_download_speed); } else if ( entry == "download.max_download_speed" ) { str::strtonum(value, download_max_download_speed); } else if ( entry == "download.max_silent_tries" ) { str::strtonum(value, download_max_silent_tries); } else if ( entry == "download.transfer_timeout" ) { str::strtonum(value, download_transfer_timeout); if ( download_transfer_timeout < 0 ) download_transfer_timeout = 0; else if ( download_transfer_timeout > 3600 ) download_transfer_timeout = 3600; } else if ( entry == "commit.downloadMode" ) { commit_downloadMode.set( deserializeDownloadMode( value ) ); } else if ( entry == "gpgcheck" ) { gpgCheck.restoreToDefault( str::strToBool( value, gpgCheck ) ); } else if ( entry == "repo_gpgcheck" ) { repoGpgCheck.restoreToDefault( str::strToTriBool( value ) ); } else if ( entry == "pkg_gpgcheck" ) { pkgGpgCheck.restoreToDefault( str::strToTriBool( value ) ); } else if ( entry == "vendordir" ) { cfg_vendor_path = Pathname(value); } else if ( entry == "multiversiondir" ) { cfg_multiversion_path = Pathname(value); } else if ( entry == "solver.onlyRequires" ) { solver_onlyRequires.set( str::strToBool( value, solver_onlyRequires ) ); } else if ( entry == "solver.allowVendorChange" ) { solver_allowVendorChange.set( str::strToBool( value, solver_allowVendorChange ) ); } else if ( entry == "solver.dupAllowDowngrade" ) { solver_dupAllowDowngrade.set( str::strToBool( value, solver_dupAllowDowngrade ) ); } else if ( entry == "solver.dupAllowNameChange" ) { solver_dupAllowNameChange.set( str::strToBool( value, solver_dupAllowNameChange ) ); } else if ( entry == "solver.dupAllowArchChange" ) { solver_dupAllowArchChange.set( str::strToBool( value, solver_dupAllowArchChange ) ); } else if ( entry == "solver.dupAllowVendorChange" ) { solver_dupAllowVendorChange.set( str::strToBool( value, solver_dupAllowVendorChange ) ); } else if ( entry == "solver.cleandepsOnRemove" ) { solver_cleandepsOnRemove.set( str::strToBool( value, solver_cleandepsOnRemove ) ); } else if ( entry == "solver.upgradeTestcasesToKeep" ) { solver_upgradeTestcasesToKeep.set( str::strtonum( value ) ); } else if ( entry == "solver.upgradeRemoveDroppedPackages" ) { solverUpgradeRemoveDroppedPackages.restoreToDefault( str::strToBool( value, solverUpgradeRemoveDroppedPackages.getDefault() ) ); } else if ( entry == "solver.checkSystemFile" ) { solver_checkSystemFile = Pathname(value); } else if ( entry == "solver.checkSystemFileDir" ) { solver_checkSystemFileDir = Pathname(value); } else if ( entry == "multiversion" ) { MultiversionSpec & defSpec( _multiversionMap.getDefaultSpec() ); str::splitEscaped( value, std::inserter( defSpec, defSpec.end() ), ", \t" ); } else if ( entry == "locksfile.path" ) { locks_file = Pathname(value); } else if ( entry == "locksfile.apply" ) { apply_locks_file = str::strToBool( value, apply_locks_file ); } else if ( entry == "update.datadir" ) { update_data_path = Pathname(value); } else if ( entry == "update.scriptsdir" ) { update_scripts_path = Pathname(value); } else if ( entry == "update.messagessdir" ) { update_messages_path = Pathname(value); } else if ( entry == "update.messages.notify" ) { updateMessagesNotify.set( value ); } else if ( entry == "rpm.install.excludedocs" ) { rpmInstallFlags.setFlag( target::rpm::RPMINST_EXCLUDEDOCS, str::strToBool( value, false ) ); } else if ( entry == "history.logfile" ) { history_log_path = Pathname(value); } else if ( entry == "credentials.global.dir" ) { credentials_global_dir_path = Pathname(value); } else if ( entry == "credentials.global.file" ) { credentials_global_file_path = Pathname(value); } } } } // } else { MIL << _parsedZyppConf << " not found, using defaults instead." << endl; _parsedZyppConf = _parsedZyppConf.extend( " (NOT FOUND)" ); } // legacy: if ( getenv( "ZYPP_TESTSUITE_FAKE_ARCH" ) ) { Arch carch( getenv( "ZYPP_TESTSUITE_FAKE_ARCH" ) ); if ( carch != cfg_arch ) { WAR << "ZYPP_TESTSUITE_FAKE_ARCH: Overriding system architecture (" << cfg_arch << "): " << carch << endl; cfg_arch = carch; } } MIL << "ZConfig singleton created." << endl; } ~Impl() {} public: /** Remember any parsed zypp.conf. */ Pathname _parsedZyppConf; Arch cfg_arch; Locale cfg_textLocale; Pathname cfg_cache_path; Pathname cfg_metadata_path; Pathname cfg_solvfiles_path; Pathname cfg_packages_path; Pathname cfg_config_path; Pathname cfg_known_repos_path; Pathname cfg_known_services_path; Pathname cfg_vars_path; Pathname cfg_repo_mgr_root_path; Pathname cfg_vendor_path; Pathname cfg_multiversion_path; Pathname locks_file; Pathname update_data_path; Pathname update_scripts_path; Pathname update_messages_path; DefaultOption updateMessagesNotify; bool repo_add_probe; unsigned repo_refresh_delay; LocaleSet repoRefreshLocales; bool repoLabelIsAlias; bool download_use_deltarpm; bool download_use_deltarpm_always; DefaultOption download_media_prefer_download; DefaultOption download_mediaMountdir; int download_max_concurrent_connections; int download_min_download_speed; int download_max_download_speed; int download_max_silent_tries; int download_transfer_timeout; Option commit_downloadMode; DefaultOption gpgCheck; DefaultOption repoGpgCheck; DefaultOption pkgGpgCheck; Option solver_onlyRequires; Option solver_allowVendorChange; Option solver_dupAllowDowngrade; Option solver_dupAllowNameChange; Option solver_dupAllowArchChange; Option solver_dupAllowVendorChange; Option solver_cleandepsOnRemove; Option solver_upgradeTestcasesToKeep; DefaultOption solverUpgradeRemoveDroppedPackages; Pathname solver_checkSystemFile; Pathname solver_checkSystemFileDir; MultiversionSpec & multiversion() { return getMultiversion(); } const MultiversionSpec & multiversion() const { return getMultiversion(); } bool apply_locks_file; target::rpm::RpmInstFlags rpmInstallFlags; Pathname history_log_path; Pathname credentials_global_dir_path; Pathname credentials_global_file_path; std::string userData; Option pluginsPath; private: // HACK for bnc#906096: let pool re-evaluate multiversion spec // if target root changes. ZConfig returns data sensitive to // current target root. // TODO Actually we'd need to scan the target systems zypp.conf and // overlay all system specific values. struct MultiversionMap { typedef std::map SpecMap; MultiversionSpec & getSpec( Pathname root_r, const Impl & zConfImpl_r ) // from system at root { // _specMap[] - the plain zypp.conf value // _specMap[/] - combine [] and multiversion.d scan // _specMap[root] - scan root/zypp.conf and root/multiversion.d if ( root_r.empty() ) root_r == "/"; bool cacheHit = _specMap.count( root_r ); MultiversionSpec & ret( _specMap[root_r] ); // creates new entry on the fly if ( ! cacheHit ) { if ( root_r == "/" ) ret.swap( _specMap[Pathname()] ); // original zypp.conf else scanConfAt( root_r, ret, zConfImpl_r ); // scan zypp.conf at root_r scanDirAt( root_r, ret, zConfImpl_r ); // add multiversion.d at root_r using zypp::operator<<; MIL << "MultiversionSpec '" << root_r << "' = " << ret << endl; } return ret; } MultiversionSpec & getDefaultSpec() // Spec from zypp.conf parsing; called before any getSpec { return _specMap[Pathname()]; } private: void scanConfAt( const Pathname root_r, MultiversionSpec & spec_r, const Impl & zConfImpl_r ) { static const str::regex rx( "^multiversion *= *(.*)" ); str::smatch what; iostr::simpleParseFile( InputStream( Pathname::assertprefix( root_r, _autodetectZyppConfPath() ) ), [&]( int num_r, std::string line_r )->bool { if ( line_r[0] == 'm' && str::regex_match( line_r, what, rx ) ) { str::splitEscaped( what[1], std::inserter( spec_r, spec_r.end() ), ", \t" ); return false; // stop after match } return true; } ); } void scanDirAt( const Pathname root_r, MultiversionSpec & spec_r, const Impl & zConfImpl_r ) { // NOTE: Actually we'd need to scan and use the root_r! zypp.conf values. Pathname multiversionDir( zConfImpl_r.cfg_multiversion_path ); if ( multiversionDir.empty() ) multiversionDir = ( zConfImpl_r.cfg_config_path.empty() ? Pathname("/etc/zypp") : zConfImpl_r.cfg_config_path ) / "multiversion.d"; filesystem::dirForEach( Pathname::assertprefix( root_r, multiversionDir ), [&spec_r]( const Pathname & dir_r, const char *const & name_r )->bool { MIL << "Parsing " << dir_r/name_r << endl; iostr::simpleParseFile( InputStream( dir_r/name_r ), [&spec_r]( int num_r, std::string line_r )->bool { DBG << " found " << line_r << endl; spec_r.insert( std::move(line_r) ); return true; } ); return true; } ); } private: SpecMap _specMap; }; MultiversionSpec & getMultiversion() const { return _multiversionMap.getSpec( _autodetectSystemRoot(), *this ); } mutable MultiversionMap _multiversionMap; }; /////////////////////////////////////////////////////////////////// // Backdoor to redirect ZConfig from within the running // TEST-application. HANDLE WITH CARE! void reconfigureZConfig( const Pathname & override_r ) { // ctor puts itself unter smart pointer control. new ZConfig::Impl( override_r ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ZConfig::instance // METHOD TYPE : ZConfig & // ZConfig & ZConfig::instance() { static ZConfig _instance; // The singleton return _instance; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ZConfig::ZConfig // METHOD TYPE : Ctor // ZConfig::ZConfig() : _pimpl( new Impl ) { about( MIL ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ZConfig::~ZConfig // METHOD TYPE : Dtor // ZConfig::~ZConfig( ) {} Pathname ZConfig::systemRoot() const { return _autodetectSystemRoot(); } Pathname ZConfig::repoManagerRoot() const { return ( _pimpl->cfg_repo_mgr_root_path.empty() ? systemRoot() : _pimpl->cfg_repo_mgr_root_path ); } void ZConfig::setRepoManagerRoot(const zypp::filesystem::Pathname &root) { _pimpl->cfg_repo_mgr_root_path = root; } /////////////////////////////////////////////////////////////////// // // system architecture // /////////////////////////////////////////////////////////////////// Arch ZConfig::defaultSystemArchitecture() { static Arch _val( _autodetectSystemArchitecture() ); return _val; } Arch ZConfig::systemArchitecture() const { return _pimpl->cfg_arch; } void ZConfig::setSystemArchitecture( const Arch & arch_r ) { if ( arch_r != _pimpl->cfg_arch ) { WAR << "Overriding system architecture (" << _pimpl->cfg_arch << "): " << arch_r << endl; _pimpl->cfg_arch = arch_r; } } /////////////////////////////////////////////////////////////////// // // text locale // /////////////////////////////////////////////////////////////////// Locale ZConfig::defaultTextLocale() { static Locale _val( _autodetectTextLocale() ); return _val; } Locale ZConfig::textLocale() const { return _pimpl->cfg_textLocale; } void ZConfig::setTextLocale( const Locale & locale_r ) { if ( locale_r != _pimpl->cfg_textLocale ) { WAR << "Overriding text locale (" << _pimpl->cfg_textLocale << "): " << locale_r << endl; _pimpl->cfg_textLocale = locale_r; #warning prefer signal sat::Pool::instance().setTextLocale( locale_r ); } } /////////////////////////////////////////////////////////////////// // user data /////////////////////////////////////////////////////////////////// bool ZConfig::hasUserData() const { return !_pimpl->userData.empty(); } std::string ZConfig::userData() const { return _pimpl->userData; } bool ZConfig::setUserData( const std::string & str_r ) { for_( ch, str_r.begin(), str_r.end() ) { if ( *ch < ' ' && *ch != '\t' ) { ERR << "New user data string rejectded: char " << (int)*ch << " at position " << (ch - str_r.begin()) << endl; return false; } } MIL << "Set user data string to '" << str_r << "'" << endl; _pimpl->userData = str_r; return true; } /////////////////////////////////////////////////////////////////// Pathname ZConfig::repoCachePath() const { return ( _pimpl->cfg_cache_path.empty() ? Pathname("/var/cache/zypp") : _pimpl->cfg_cache_path ); } Pathname ZConfig::pubkeyCachePath() const { return ( _pimpl->cfg_cache_path.empty() ? Pathname("/var/cache/zypp/pubkeys") : _pimpl->cfg_cache_path/"pubkeys" ); } void ZConfig::setRepoCachePath(const zypp::filesystem::Pathname &path_r) { _pimpl->cfg_cache_path = path_r; } Pathname ZConfig::repoMetadataPath() const { return ( _pimpl->cfg_metadata_path.empty() ? (repoCachePath()/"raw") : _pimpl->cfg_metadata_path ); } void ZConfig::setRepoMetadataPath(const zypp::filesystem::Pathname &path_r) { _pimpl->cfg_metadata_path = path_r; } Pathname ZConfig::repoSolvfilesPath() const { return ( _pimpl->cfg_solvfiles_path.empty() ? (repoCachePath()/"solv") : _pimpl->cfg_solvfiles_path ); } void ZConfig::setRepoSolvfilesPath(const zypp::filesystem::Pathname &path_r) { _pimpl->cfg_solvfiles_path = path_r; } Pathname ZConfig::repoPackagesPath() const { return ( _pimpl->cfg_packages_path.empty() ? (repoCachePath()/"packages") : _pimpl->cfg_packages_path ); } void ZConfig::setRepoPackagesPath(const zypp::filesystem::Pathname &path_r) { _pimpl->cfg_packages_path = path_r; } /////////////////////////////////////////////////////////////////// Pathname ZConfig::configPath() const { return ( _pimpl->cfg_config_path.empty() ? Pathname("/etc/zypp") : _pimpl->cfg_config_path ); } Pathname ZConfig::knownReposPath() const { return ( _pimpl->cfg_known_repos_path.empty() ? (configPath()/"repos.d") : _pimpl->cfg_known_repos_path ); } Pathname ZConfig::knownServicesPath() const { return ( _pimpl->cfg_known_services_path.empty() ? (configPath()/"services.d") : _pimpl->cfg_known_services_path ); } Pathname ZConfig::varsPath() const { return ( _pimpl->cfg_vars_path.empty() ? (configPath()/"vars.d") : _pimpl->cfg_vars_path ); } Pathname ZConfig::vendorPath() const { return ( _pimpl->cfg_vendor_path.empty() ? (configPath()/"vendors.d") : _pimpl->cfg_vendor_path ); } Pathname ZConfig::locksFile() const { return ( _pimpl->locks_file.empty() ? (configPath()/"locks") : _pimpl->locks_file ); } /////////////////////////////////////////////////////////////////// bool ZConfig::repo_add_probe() const { return _pimpl->repo_add_probe; } unsigned ZConfig::repo_refresh_delay() const { return _pimpl->repo_refresh_delay; } LocaleSet ZConfig::repoRefreshLocales() const { return _pimpl->repoRefreshLocales.empty() ? Target::requestedLocales("") :_pimpl->repoRefreshLocales; } bool ZConfig::repoLabelIsAlias() const { return _pimpl->repoLabelIsAlias; } void ZConfig::repoLabelIsAlias( bool yesno_r ) { _pimpl->repoLabelIsAlias = yesno_r; } bool ZConfig::download_use_deltarpm() const { return _pimpl->download_use_deltarpm; } bool ZConfig::download_use_deltarpm_always() const { return download_use_deltarpm() && _pimpl->download_use_deltarpm_always; } bool ZConfig::download_media_prefer_download() const { return _pimpl->download_media_prefer_download; } void ZConfig::set_download_media_prefer_download( bool yesno_r ) { _pimpl->download_media_prefer_download.set( yesno_r ); } void ZConfig::set_default_download_media_prefer_download() { _pimpl->download_media_prefer_download.restoreToDefault(); } long ZConfig::download_max_concurrent_connections() const { return _pimpl->download_max_concurrent_connections; } long ZConfig::download_min_download_speed() const { return _pimpl->download_min_download_speed; } long ZConfig::download_max_download_speed() const { return _pimpl->download_max_download_speed; } long ZConfig::download_max_silent_tries() const { return _pimpl->download_max_silent_tries; } long ZConfig::download_transfer_timeout() const { return _pimpl->download_transfer_timeout; } Pathname ZConfig::download_mediaMountdir() const { return _pimpl->download_mediaMountdir; } void ZConfig::set_download_mediaMountdir( Pathname newval_r ) { _pimpl->download_mediaMountdir.set( std::move(newval_r) ); } void ZConfig::set_default_download_mediaMountdir() { _pimpl->download_mediaMountdir.restoreToDefault(); } DownloadMode ZConfig::commit_downloadMode() const { return _pimpl->commit_downloadMode; } bool ZConfig::gpgCheck() const { return _pimpl->gpgCheck; } TriBool ZConfig::repoGpgCheck() const { return _pimpl->repoGpgCheck; } TriBool ZConfig::pkgGpgCheck() const { return _pimpl->pkgGpgCheck; } void ZConfig::setGpgCheck( bool val_r ) { _pimpl->gpgCheck.set( val_r ); } void ZConfig::setRepoGpgCheck( TriBool val_r ) { _pimpl->repoGpgCheck.set( val_r ); } void ZConfig::setPkgGpgCheck( TriBool val_r ) { _pimpl->pkgGpgCheck.set( val_r ); } void ZConfig::resetGpgCheck() { _pimpl->gpgCheck.restoreToDefault(); } void ZConfig::resetRepoGpgCheck() { _pimpl->repoGpgCheck.restoreToDefault(); } void ZConfig::resetPkgGpgCheck() { _pimpl->pkgGpgCheck.restoreToDefault(); } bool ZConfig::solver_onlyRequires() const { return _pimpl->solver_onlyRequires; } bool ZConfig::solver_allowVendorChange() const { return _pimpl->solver_allowVendorChange; } bool ZConfig::solver_dupAllowDowngrade() const { return _pimpl->solver_dupAllowDowngrade; } bool ZConfig::solver_dupAllowNameChange() const { return _pimpl->solver_dupAllowNameChange; } bool ZConfig::solver_dupAllowArchChange() const { return _pimpl->solver_dupAllowArchChange; } bool ZConfig::solver_dupAllowVendorChange() const { return _pimpl->solver_dupAllowVendorChange; } bool ZConfig::solver_cleandepsOnRemove() const { return _pimpl->solver_cleandepsOnRemove; } Pathname ZConfig::solver_checkSystemFile() const { return ( _pimpl->solver_checkSystemFile.empty() ? (configPath()/"systemCheck") : _pimpl->solver_checkSystemFile ); } Pathname ZConfig::solver_checkSystemFileDir() const { return ( _pimpl->solver_checkSystemFileDir.empty() ? (configPath()/"systemCheck.d") : _pimpl->solver_checkSystemFileDir ); } unsigned ZConfig::solver_upgradeTestcasesToKeep() const { return _pimpl->solver_upgradeTestcasesToKeep; } bool ZConfig::solverUpgradeRemoveDroppedPackages() const { return _pimpl->solverUpgradeRemoveDroppedPackages; } void ZConfig::setSolverUpgradeRemoveDroppedPackages( bool val_r ) { _pimpl->solverUpgradeRemoveDroppedPackages.set( val_r ); } void ZConfig::resetSolverUpgradeRemoveDroppedPackages() { _pimpl->solverUpgradeRemoveDroppedPackages.restoreToDefault(); } namespace { inline void sigMultiversionSpecChanged() { sat::detail::PoolMember::myPool().multiversionSpecChanged(); } } const std::set & ZConfig::multiversionSpec() const { return _pimpl->multiversion(); } void ZConfig::multiversionSpec( std::set new_r ) { _pimpl->multiversion().swap( new_r ); sigMultiversionSpecChanged(); } void ZConfig::clearMultiversionSpec() { _pimpl->multiversion().clear(); sigMultiversionSpecChanged(); } void ZConfig::addMultiversionSpec( const std::string & name_r ) { _pimpl->multiversion().insert( name_r ); sigMultiversionSpecChanged(); } void ZConfig::removeMultiversionSpec( const std::string & name_r ) { _pimpl->multiversion().erase( name_r ); sigMultiversionSpecChanged(); } bool ZConfig::apply_locks_file() const { return _pimpl->apply_locks_file; } Pathname ZConfig::update_dataPath() const { return ( _pimpl->update_data_path.empty() ? Pathname("/var/adm") : _pimpl->update_data_path ); } Pathname ZConfig::update_messagesPath() const { return ( _pimpl->update_messages_path.empty() ? Pathname(update_dataPath()/"update-messages") : _pimpl->update_messages_path ); } Pathname ZConfig::update_scriptsPath() const { return ( _pimpl->update_scripts_path.empty() ? Pathname(update_dataPath()/"update-scripts") : _pimpl->update_scripts_path ); } std::string ZConfig::updateMessagesNotify() const { return _pimpl->updateMessagesNotify; } void ZConfig::setUpdateMessagesNotify( const std::string & val_r ) { _pimpl->updateMessagesNotify.set( val_r ); } void ZConfig::resetUpdateMessagesNotify() { _pimpl->updateMessagesNotify.restoreToDefault(); } /////////////////////////////////////////////////////////////////// target::rpm::RpmInstFlags ZConfig::rpmInstallFlags() const { return _pimpl->rpmInstallFlags; } Pathname ZConfig::historyLogFile() const { return ( _pimpl->history_log_path.empty() ? Pathname("/var/log/zypp/history") : _pimpl->history_log_path ); } Pathname ZConfig::credentialsGlobalDir() const { return ( _pimpl->credentials_global_dir_path.empty() ? Pathname("/etc/zypp/credentials.d") : _pimpl->credentials_global_dir_path ); } Pathname ZConfig::credentialsGlobalFile() const { return ( _pimpl->credentials_global_file_path.empty() ? Pathname("/etc/zypp/credentials.cat") : _pimpl->credentials_global_file_path ); } /////////////////////////////////////////////////////////////////// std::string ZConfig::distroverpkg() const { return "system-release"; } /////////////////////////////////////////////////////////////////// Pathname ZConfig::pluginsPath() const { return _pimpl->pluginsPath.get(); } /////////////////////////////////////////////////////////////////// std::ostream & ZConfig::about( std::ostream & str ) const { str << "libzypp: " << VERSION << endl; str << "libsolv: " << solv_version; if ( ::strcmp( solv_version, LIBSOLV_VERSION_STRING ) ) str << " (built against " << LIBSOLV_VERSION_STRING << ")"; str << endl; str << "zypp.conf: '" << _pimpl->_parsedZyppConf << "'" << endl; str << "TextLocale: '" << textLocale() << "' (" << defaultTextLocale() << ")" << endl; str << "SystemArchitecture: '" << systemArchitecture() << "' (" << defaultSystemArchitecture() << ")" << endl; return str; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ZConfig.h000066400000000000000000000431161334444677500160370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZConfig.h * */ #ifndef ZYPP_ZCONFIG_H #define ZYPP_ZCONFIG_H #include #include #include #include "zypp/APIConfig.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/Arch.h" #include "zypp/Locale.h" #include "zypp/Pathname.h" #include "zypp/IdString.h" #include "zypp/TriBool.h" #include "zypp/DownloadMode.h" #include "zypp/target/rpm/RpmFlags.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZConfig // /** Interim helper class to collect global options and settings. * Use it to avoid hardcoded values and calls to getZYpp() just * to retrieve some value like architecture, languages or tmppath. * * It reads /etc/zypp/zypp.conf, the filename can be overridden by * setting the ZYPP_CONF environment variable to a different file. * * Note, if you add settings to this file, please follow the following * convention: * * namespace.settingname * * should become * * namespace_settingName() * * \ingroup ZyppConfig * \ingroup Singleton */ class ZConfig : private base::NonCopyable { public: /** Singleton ctor */ static ZConfig & instance(); /** Print some detail about the current libzypp version.*/ std::ostream & about( std::ostream & str ) const; public: /** The target root directory. * Returns an empty path if no target is set. */ Pathname systemRoot() const; /** The RepoManager root directory. * Returns the same as \sa systemRoot() if not explicitely set. */ Pathname repoManagerRoot() const; /** Sets the RepoManager root directory. * \sa repoManagerRoot() */ void setRepoManagerRoot ( const Pathname &root ); public: /** The autodetected system architecture. */ static Arch defaultSystemArchitecture(); /** The system architecture zypp uses. */ Arch systemArchitecture() const; /** Override the zypp system architecture. * This is useful for test scenarious. But be warned, zypp does * not expect the system architecture to change at runtime. So * set it at the verry beginning before you acess any other * zypp component. */ void setSystemArchitecture( const Arch & arch_r ); /** Reset the zypp system architecture to the default. */ void resetSystemArchitecture() { setSystemArchitecture( defaultSystemArchitecture() ); } public: /** The autodetected prefered locale for translated texts. */ static Locale defaultTextLocale(); /** The locale for translated texts zypp uses. */ Locale textLocale() const; /** Set the prefered locale for translated texts. */ void setTextLocale( const Locale & locale_r ); /** Reset the locale for translated texts to the default. */ void resetTextLocale() { setTextLocale( defaultTextLocale() ); } public: /** \name Maintain user data * \see \ref zypp-userdata */ //@{ /** Whether a (non empty) user data sting is defined. */ bool hasUserData() const; /** User defined string value to be passed to log, history, plugins... */ std::string userData() const; /** Set a new \ref userData string. * \returns \c TRUE if the string was accepted; \c FALSE if the * string was rejected due to nonprintable characters or newlines. */ bool setUserData( const std::string & str_r ); //@} public: /** * Path where the caches are kept (/var/cache/zypp) * \ingroup g_ZC_REPOCACHE */ Pathname repoCachePath() const; /** * Set a new \a path as the default repo cache path */ void setRepoCachePath ( const Pathname &path_r ); /** * Path where the pubkey caches */ Pathname pubkeyCachePath() const; /** * Path where the repo metadata is downloaded and kept (repoCachePath()/raw). * \ingroup g_ZC_REPOCACHE */ Pathname repoMetadataPath() const; /** * Set a new \a path as the default repo cache path */ void setRepoMetadataPath ( const Pathname &path_r ); /** * Path where the repo solv files are created and kept (repoCachePath()/solv). * \ingroup g_ZC_REPOCACHE */ Pathname repoSolvfilesPath() const; /** * Set a new \a path as the default repo cache path */ void setRepoSolvfilesPath ( const Pathname &path_r ); /** * Path where the repo packages are downloaded and kept (repoCachePath()/packages). * \ingroup g_ZC_REPOCACHE */ Pathname repoPackagesPath() const; /** * Set a new \a path as the default repo cache path */ void setRepoPackagesPath ( const Pathname &path_r ); /** * Path where the configfiles are kept (/etc/zypp). * \ingroup g_ZC_CONFIGFILES */ Pathname configPath() const; /** * Path where the known repositories .repo files are kept (configPath()/repos.d). * \ingroup g_ZC_CONFIGFILES */ Pathname knownReposPath() const; /** * Path where the known services .service files are kept (configPath()/services.d). * \ingroup g_ZC_CONFIGFILES */ Pathname knownServicesPath() const; /** * Path containing custom repo variable definitions (configPath()/vars.d). * \see \ref zypp::repo::RepoVarExpand Repo variable expander * \ingroup g_ZC_CONFIGFILES */ Pathname varsPath() const; /** * Whether repository urls should be probed. / config option * repo.add.probe */ bool repo_add_probe() const; /** * Amount of time in minutes that must pass before another refresh. */ unsigned repo_refresh_delay() const; /** * List of locales for which translated package descriptions should be downloaded. */ LocaleSet repoRefreshLocales() const; /** * Whether to use repository alias or name in user messages (progress, * exceptions, ...). * True: use alias, false: use name. */ bool repoLabelIsAlias() const; /** * Whether to use repository alias or name in user messages (progress, * exceptions, ...). Console applications might prefer to use and display * the shorter alias instead of full repository name. * * Default: false; i.e. repo label is 'name' */ void repoLabelIsAlias( bool yesno_r ); /** * Maximum number of concurrent connections for a single transfer */ long download_max_concurrent_connections() const; /** * Minimum download speed (bytes per second) * until the connection is dropped */ long download_min_download_speed() const; /** * Maximum download speed (bytes per second) */ long download_max_download_speed() const; /** * Maximum silent tries */ long download_max_silent_tries() const; /** * Maximum time in seconds that you allow a transfer operation to take. */ long download_transfer_timeout() const; /** Whether to consider using a deltarpm when downloading a package. * Config option download.use_deltarpm (true) */ bool download_use_deltarpm() const; /** Whether to consider using a deltarpm even when rpm is local. * This requires \ref download_use_deltarpm being \c true. * Config option download.use_deltarpm.always (false) */ bool download_use_deltarpm_always() const; /** * Hint which media to prefer when installing packages (download vs. CD). * \see class \ref media::MediaPriority */ bool download_media_prefer_download() const; /** \overload */ bool download_media_prefer_volatile() const { return ! download_media_prefer_download(); } /** * Set \ref download_media_prefer_download to a specific value. */ void set_download_media_prefer_download( bool yesno_r ); /** * Set \ref download_media_prefer_download to the configfiles default. */ void set_default_download_media_prefer_download(); /** Path where media are preferably mounted or downloaded. * Config option download.media_mountdir (/var/adm/mount) * Needs to be a (writable) directory, otherwise /var/tmp is fallback. */ Pathname download_mediaMountdir() const; /** Set alternate value. */ void set_download_mediaMountdir( Pathname newval_r ); /** Reset to zypp.cong default. */ void set_default_download_mediaMountdir(); /** * Commit download policy to use as default. */ DownloadMode commit_downloadMode() const; /** \name Signature checking (repodata and packages) * If \ref gpgcheck is \c on (the default) we will either check the signature * of repo metadata (packages are secured via checksum in the metadata), or the * signature of an rpm package to install if it's repo metadata are not signed * or not checked. If \ref gpgcheck is \c off, no checks are performed. * * The default behavior can be altered by explicitly setting \ref repo_gpgcheck and/or * \ref pkg_gpgcheck to perform those checks always (\c on) or never (\c off). * * Explicitly setting \c gpgcheck, \c repo_gpgcheck or \c pkg_gpgcheck in a * repositories \a .repo file will overwrite the defaults here. */ //@{ bool gpgCheck() const; ///< Turn signature checking on/off (on) TriBool repoGpgCheck() const; ///< Check repo matadata signatures (indeterminate - according to gpgcheck) TriBool pkgGpgCheck() const; ///< Check rpm package signatures (indeterminate - according to gpgcheck) void setGpgCheck( bool val_r ); ///< Change the value void setRepoGpgCheck( TriBool val_r ); ///< Change the value void setPkgGpgCheck( TriBool val_r ); ///< Change the value void resetGpgCheck(); ///< Reset to the zconfig default void resetRepoGpgCheck(); ///< Reset to the zconfig default void resetPkgGpgCheck(); ///< Reset to the zconfig default //@} // /** * Directory for equivalent vendor definitions (configPath()/vendors.d) * \ingroup g_ZC_CONFIGFILES */ Pathname vendorPath() const; /** * Solver regards required packages,patterns,... only */ bool solver_onlyRequires() const; /** * File in which dependencies described which has to be * fulfilled for a running system. */ Pathname solver_checkSystemFile() const; /** * Directory, which may or may not contain files in which * dependencies described which has to be fulfilled for a * running system. */ Pathname solver_checkSystemFileDir() const; /** * Whether vendor check is by default enabled. */ bool solver_allowVendorChange() const; /** DUP tune: Whether to allow version downgrades upon DUP. */ bool solver_dupAllowDowngrade() const; /** DUP tune: Whether to follow package renames upon DUP. */ bool solver_dupAllowNameChange() const; /** DUP tune: Whether to allow package arch changes upon DUP. */ bool solver_dupAllowArchChange() const; /** DUP tune: Whether to allow package vendor changes upon DUP. */ bool solver_dupAllowVendorChange() const; /** * Whether removing a package should also remove no longer needed requirements. */ bool solver_cleandepsOnRemove() const; /** * When committing a dist upgrade (e.g. zypper dup) * a solver testcase is written. It is needed in bugreports, * in case something went wrong. This returns the number of * testcases to keep on the system. Old cases will be deleted, * as new ones are created. Use \c 0 to write no testcase at all. */ unsigned solver_upgradeTestcasesToKeep() const; /** Whether dist upgrade should remove a products dropped packages (true). * * A new product may suggest a list of old and no longer supported * packages (dropped packages). Performing a dist upgrade the solver * may try to delete them, even if they do not cause any dependency * problem. * * Turning this option off, the solver will not try to remove those * packages unless they actually do cause dependency trouble. At any * time you may use zypper to detect orphaned packages, and do the * cleanup manually. Or simply leave them installed as long as you don't * need the disk space. */ bool solverUpgradeRemoveDroppedPackages() const; /** Set \ref solverUpgradeRemoveDroppedPackages to \a val_r. */ void setSolverUpgradeRemoveDroppedPackages( bool val_r ); /** Reset \ref solverUpgradeRemoveDroppedPackages to the \c zypp.conf default. */ void resetSolverUpgradeRemoveDroppedPackages(); /** \name Packages which can be installed in different versions at the same time. * * This returns the config file values (\c names or \c provides:...). The * corresponding packages have the \c multiversionInstall property set. Those * packages will be installed using 'rpm -i', so they will not implicitly obsolete * other installed versions. * * \see \ref sat::SolvableType */ //@{ const std::set & multiversionSpec() const; void multiversionSpec( std::set new_r ); void clearMultiversionSpec(); void addMultiversionSpec( const std::string & name_r ); void removeMultiversionSpec( const std::string & name_r ); //@} /** * Path where zypp can find or create lock file (configPath()/locks) * \ingroup g_ZC_CONFIGFILES */ Pathname locksFile() const; /** * Whether locks file should be read and applied after start (true) */ bool apply_locks_file() const; /** * Path where the update items are kept (/var/adm) */ Pathname update_dataPath() const; /** * Path where the repo metadata is downloaded and kept (update_dataPath()/). * \ingroup g_ZC_REPOCACHE */ Pathname update_scriptsPath() const; /** * Path where the repo solv files are created and kept (update_dataPath()/solv). * \ingroup g_ZC_REPOCACHE */ Pathname update_messagesPath() const; /** \name Command to be invoked to send update messages. */ //@{ /** Command definition for sending update messages.*/ std::string updateMessagesNotify() const; /** Set a new command definition (see update.messages.notify in zypp.conf). */ void setUpdateMessagesNotify( const std::string & val_r ); /** Reset to the zypp.conf default. */ void resetUpdateMessagesNotify(); //@} /** \name Options for package installation */ //@{ /** The default \ref target::rpm::RpmInstFlags for \ref ZYppCommitPolicy. * Or-combination of \ref target::rpm::RpmInstFlag. * \code * ZConfig.instance().rpmInstallFlags().testFlag( target::rpm::RPMINST_EXCLUDEDOCS ); * \endcode */ target::rpm::RpmInstFlags rpmInstallFlags() const; //@} /** * Path where ZYpp install history is logged. Defaults to * /var/log/zypp/history. * * \see http://en.opensuse.org/Libzypp/Package_History */ Pathname historyLogFile() const; /** * Defaults to /etc/zypp/credentials.d */ Pathname credentialsGlobalDir() const; /** * Defaults to /etc/zypp/credentials.cat */ Pathname credentialsGlobalFile() const; /** Package telling the "product version" on systems not using /etc/product.d/baseproduct. * * On RHEL, Fedora and others the "product version" is determined by the first package * providing 'system-release'. This value is not hardcoded in YUM and can be configured * with the $distroverpkg variable. * * Defaults to 'system-release'. */ std::string distroverpkg() const; /** \name Plugins */ //@{ /** * Defaults to \c /usr/lib/zypp/plugins */ Pathname pluginsPath() const; //@} public: class Impl; /** Dtor */ ~ZConfig(); private: friend class Impl; /** Default ctor. */ ZConfig(); /** Pointer to implementation */ RW_pointer > _pimpl; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZCONFIG_H libzypp-17.7.0/zypp/ZYpp.cc000066400000000000000000000061611334444677500155370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYpp.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/ZYpp.h" #include "zypp/zypp_detail/ZYppImpl.h" #include "zypp/sat/Pool.h" #include "zypp/ManagedFile.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// // class ZYpp: // ctor and dtor implemented in ZYppFactory.cc std::ostream & operator<<( std::ostream & str, const ZYpp & obj ) { return str << *obj._pimpl; } /////////////////////////////////////////////////////////////////// // // Forward to Impl: // /////////////////////////////////////////////////////////////////// ResPool ZYpp::pool() const { return _pimpl->pool(); } DiskUsageCounter::MountPointSet ZYpp::diskUsage() { return _pimpl->diskUsage(); } void ZYpp::setPartitions(const DiskUsageCounter::MountPointSet &mp) { return _pimpl->setPartitions(mp); } DiskUsageCounter::MountPointSet ZYpp::getPartitions() const { return _pimpl->getPartitions(); } ResPoolProxy ZYpp::poolProxy() const { return _pimpl->poolProxy(); } Resolver_Ptr ZYpp::resolver() const { return _pimpl->resolver(); } KeyRing_Ptr ZYpp::keyRing() const { return _pimpl->keyRing(); } /////////////////////////////////////////////////////////////////// // // Forward to Impl: // /////////////////////////////////////////////////////////////////// Target_Ptr ZYpp::target() const { return _pimpl->target(); } Target_Ptr ZYpp::getTarget() const { return _pimpl->getTarget(); } void ZYpp::initializeTarget( const Pathname & root, bool doRebuild_r ) { _pimpl->initializeTarget( root, doRebuild_r ); } void ZYpp::finishTarget() { _pimpl->finishTarget(); } ZYppCommitResult ZYpp::commit( const ZYppCommitPolicy & policy_r ) { return _pimpl->commit( policy_r ); } void ZYpp::installSrcPackage( const SrcPackage_constPtr & srcPackage_r ) { _pimpl->installSrcPackage( srcPackage_r ); } ManagedFile ZYpp::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ) {return _pimpl->provideSrcPackage( srcPackage_r ); } /////////////////////////////////////////////////////////////////// Pathname ZYpp::homePath() const { return _pimpl->homePath(); } Pathname ZYpp::tmpPath() const { return _pimpl->tmpPath(); } void ZYpp::setHomePath( const Pathname & path ) { _pimpl->setHomePath(path); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ZYpp.h000066400000000000000000000107031334444677500153760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYpp.h * */ #ifndef ZYPP_ZYPP_H #define ZYPP_ZYPP_H #include #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/APIConfig.h" #include "zypp/ZConfig.h" #include "zypp/ManagedFile.h" #include "zypp/ZYppCommit.h" #include "zypp/ResTraits.h" #include "zypp/Target.h" #include "zypp/Resolver.h" #include "zypp/KeyRing.h" #include "zypp/DiskUsageCounter.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace zypp_detail { class ZYppImpl; } class ZYppFactory; class ResPool; class ResPoolProxy; class KeyRing; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYpp // /** * \todo define Exceptions * ZYpp API main interface */ class ZYpp : private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const ZYpp & obj ); public: // can't get swig working if shared_ptr is without namespace here typedef ::boost::shared_ptr Ptr; typedef ::boost::shared_ptr constPtr; public: /** * Access to the global resolvable pool. * Same as \ref zypp::ResPool::instance */ ResPool pool() const; /** Pool of ui::Selectable. * Based on the ResPool, ui::Selectable groups ResObjetcs of * same kind and name. */ ResPoolProxy poolProxy() const; DiskUsageCounter::MountPointSet diskUsage(); void setPartitions(const DiskUsageCounter::MountPointSet &mp); DiskUsageCounter::MountPointSet getPartitions() const; public: /** * \throws Exception */ Target_Ptr target() const; /** Same as \ref target but returns NULL if target is not * initialized, instead of throwing. */ Target_Ptr getTarget() const; /** * \throws Exception * Just init the target, dont populate store or pool. * If \c doRebuild_r is \c true, an already existing * database is rebuilt (rpm --rebuilddb ). */ void initializeTarget(const Pathname & root, bool doRebuild_r = false); /** * \throws Exception */ void finishTarget(); public: typedef ZYppCommitResult CommitResult; /** Commit changes and transactions. * \param \ref CommitPolicy * \return \ref CommitResult * \throws Exception */ ZYppCommitResult commit( const ZYppCommitPolicy & policy_r ); /** Install a source package on the Target. * \throws Exception */ void installSrcPackage( const SrcPackage_constPtr & srcPackage_r ); /** Provides a source package on the Target. * \throws Exception */ ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ); public: /** */ Resolver_Ptr resolver() const; KeyRing_Ptr keyRing() const; public: /** Get the path where zypp related plugins store persistent data and caches */ Pathname homePath() const; /** Get the path where zypp related plugins store temp data */ Pathname tmpPath() const; /** set the home, if you need to change it */ void setHomePath( const Pathname & path ); private: /** Factory */ friend class ZYppFactory; typedef zypp_detail::ZYppImpl Impl; typedef shared_ptr Impl_Ptr; /** Factory ctor */ explicit ZYpp( const Impl_Ptr & impl_r ); private: /** Deleted via shared_ptr */ friend void ::boost::checked_delete(ZYpp*); // template inline void checked_delete(T * x) /** Dtor */ ~ZYpp(); private: /** Pointer to implementation */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPP_H libzypp-17.7.0/zypp/ZYppCallbacks.h000066400000000000000000000625471334444677500172130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppCallbacks.h * */ #ifndef ZYPP_ZYPPCALLBACKS_H #define ZYPP_ZYPPCALLBACKS_H #include "zypp/base/Gettext.h" #include "zypp/base/EnumClass.h" #include "zypp/Callback.h" #include "zypp/UserData.h" #include "zypp/Resolvable.h" #include "zypp/RepoInfo.h" #include "zypp/Pathname.h" #include "zypp/Package.h" #include "zypp/Patch.h" #include "zypp/Url.h" #include "zypp/ProgressData.h" #include "zypp/media/MediaUserAuth.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { class Queue; class FileConflicts; } // namespace sat /////////////////////////////////////////////////////////////////// struct ProgressReport : public callback::ReportBase { virtual void start( const ProgressData &/*task*/ ) {} virtual bool progress( const ProgressData &/*task*/ ) { return true; } // virtual Action problem( // Repo /*source*/ // , Error /*error*/ // , const std::string &/*description*/ ) // { return ABORT; } virtual void finish( const ProgressData &/*task*/ ) {} }; struct ProgressReportAdaptor { ProgressReportAdaptor( const ProgressData::ReceiverFnc &fnc, callback::SendReport &report ) : _fnc(fnc) , _report(report) , _first(true) { } bool operator()( const ProgressData &progress ) { if ( _first ) { _report->start(progress); _first = false; } bool value = _report->progress(progress); if ( _fnc ) value &= _fnc(progress); if ( progress.finalReport() ) { _report->finish(progress); } return value; } ProgressData::ReceiverFnc _fnc; callback::SendReport &_report; bool _first; }; //////////////////////////////////////////////////////////////////////////// namespace repo { // progress for downloading a resolvable struct DownloadResolvableReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE, // ignore this resolvable but continue }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error INVALID // the downloaded file is invalid }; /** Hint that package is available in the local cache (no download needed). * This will be the only trigger for an already cached package. */ virtual void infoInCache( Resolvable::constPtr res_r, const Pathname & localfile_r ) {} virtual void start( Resolvable::constPtr /*resolvable_ptr*/ , const Url &/*url*/ ) {} // Dowmload delta rpm: // - path below url reported on start() // - expected download size (0 if unknown) // - download is interruptable // - problems are just informal virtual void startDeltaDownload( const Pathname & /*filename*/, const ByteCount & /*downloadsize*/ ) {} virtual bool progressDeltaDownload( int /*value*/ ) { return true; } virtual void problemDeltaDownload( const std::string &/*description*/ ) {} virtual void finishDeltaDownload() {} // Apply delta rpm: // - local path of downloaded delta // - aplpy is not interruptable // - problems are just informal virtual void startDeltaApply( const Pathname & /*filename*/ ) {} virtual void progressDeltaApply( int /*value*/ ) {} virtual void problemDeltaApply( const std::string &/*description*/ ) {} virtual void finishDeltaApply() {} // return false if the download should be aborted right now virtual bool progress(int /*value*/, Resolvable::constPtr /*resolvable_ptr*/) { return true; } virtual Action problem( Resolvable::constPtr /*resolvable_ptr*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } /** Detail information about the result of a performed pkgGpgCheck. * * Userdata sent: * \param "ResObject" ResObject::constPtr of the downloaded package (Package or SrcPackage) * \param "Localpath" Pathname to downloaded package on disk * \param "CheckPackageResult" RpmDb::CheckPackageResult of signature check * \param "CheckPackageDetail" RpmDb::CheckPackageDetail logmessages of rpm signature check * * Userdata accepted: * \param "Action" DownloadResolvableReport::Action user advice how to behave on error (ABORT). * If you set just an empty value here, a default probelm report will be triggered. * * Legacy data: * \param "Package" Replaced by \c "ResObject" in 16.10.0. Package::constPtr of the package (\c nullptr in case of a SrcPackage) */ virtual void pkgGpgCheck( const UserData & userData_r = UserData() ) {} virtual void finish(Resolvable::constPtr /*resolvable_ptr*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; // progress for probing a source struct ProbeRepoReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY // retry }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error INVALID, // th source is invalid UNKNOWN }; virtual void start(const Url &/*url*/) {} virtual void failedProbe( const Url &/*url*/, const std::string &/*type*/ ) {} virtual void successProbe( const Url &/*url*/, const std::string &/*type*/ ) {} virtual void finish(const Url &/*url*/, Error /*error*/, const std::string &/*reason*/ ) {} virtual bool progress(const Url &/*url*/, int /*value*/) { return true; } virtual Action problem( const Url &/*url*/, Error /*error*/, const std::string &/*description*/ ) { return ABORT; } }; struct RepoCreateReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // skip refresh, ignore failed refresh }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error REJECTED, INVALID, // th source is invali UNKNOWN }; virtual void start( const zypp::Url &/*url*/ ) {} virtual bool progress( int /*value*/ ) { return true; } virtual Action problem( const zypp::Url &/*url*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } virtual void finish( const zypp::Url &/*url*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; struct RepoReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // skip refresh, ignore failed refresh }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error INVALID // th source is invalid }; virtual void start( const ProgressData &/*task*/, const RepoInfo /*repo*/ ) {} virtual bool progress( const ProgressData &/*task*/ ) { return true; } virtual Action problem( Repository /*source*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } virtual void finish( Repository /*source*/ , const std::string &/*task*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; ///////////////////////////////////////////////////////////////// } // namespace source /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace media { // media change request callback struct MediaChangeReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE, // ignore this media in future, not available anymore IGNORE_ID, // ignore wrong medium id CHANGE_URL, // change media URL EJECT // eject the medium }; enum Error { NO_ERROR, NOT_FOUND, // the medie not found at all IO, // error accessing the media INVALID, // media is broken WRONG, // wrong media, need a different one IO_SOFT /**< IO error which can happen on worse connection like timeout exceed */ }; /** * * \param url in: url for which the media is requested, * out: url to use instead of the original one * \param mediumNr requested medium number * \param label label of requested medium * \param error type of error from \ref Error enum * \param description error message (media not desired or error foo occured) * \param devices list of the available devices (for eject) * \param dev_current in: index of the currently used device in the \a devices list * out: index of the devices to be ejected in the \a devices list * \return \ref Action (ABORT by default) */ virtual Action requestMedia( Url & /* url (I/O parameter) */ , unsigned /*mediumNr*/ , const std::string & /* label */ , Error /*error*/ , const std::string & /*description*/ , const std::vector & /* devices */ , unsigned int & /* dev_current (I/O param) */ ) { return ABORT; } }; /////////////////////////////////////////////////////////////////// /// \class ScopedDisableMediaChangeReport /// \brief Temporarily disable MediaChangeReport /// Sometimes helpful to suppress interactive messages connected to /// MediaChangeReport while fallback URLs are avaialble. struct ScopedDisableMediaChangeReport { /** Disbale MediaChangeReport if \a condition_r is \c true.*/ ScopedDisableMediaChangeReport( bool condition_r = true ); private: shared_ptr > _guard; }; // progress for downloading a file struct DownloadProgressReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore the failure }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error ACCESS_DENIED, // user authent. failed while accessing restricted file ERROR // other error }; virtual void start( const Url &/*file*/, Pathname /*localfile*/ ) {} /** * Download progress. * * \param value Percentage value. * \param file File URI. * \param dbps_avg Average download rate so far. -1 if unknown. * \param dbps_current Current download (cca last 1 sec). -1 if unknown. */ virtual bool progress(int /*value*/, const Url &/*file*/, double dbps_avg = -1, double dbps_current = -1) { return true; } virtual Action problem( const Url &/*file*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } virtual void finish( const Url &/*file*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; // authentication issues report struct AuthenticationReport : public callback::ReportBase { /** * Prompt for authentication data. * * \param url URL which required the authentication * \param msg prompt text * \param auth_data input/output object for handling authentication * data. As an input parameter auth_data can be prefilled with * username (from previous try) or auth_type (available * authentication methods aquired from server (only CurlAuthData)). * As an output parameter it serves for sending username, pasword * or other special data (derived AuthData objects). * \return true if user chooses to continue with authentication, * false otherwise */ virtual bool prompt(const Url & /* url */, const std::string & /* msg */, AuthData & /* auth_data */) { return false; } }; ///////////////////////////////////////////////////////////////// } // namespace media /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { /** Request to display the pre commit message of a patch. */ struct PatchMessageReport : public callback::ReportBase { /** Display \c patch->message(). * Return \c true to continue, \c false to abort commit. */ virtual bool show( Patch::constPtr & /*patch*/ ) { return true; } }; /** Indicate execution of a patch script. This is a sort of * \c %post script shipped by a package and to be executed * after the package was installed. */ struct PatchScriptReport : public callback::ReportBase { enum Notify { OUTPUT, PING }; enum Action { ABORT, // abort commit and return error RETRY, // (re)try to execute this script IGNORE // ignore any failue and continue }; /** Start executing the script provided by package. */ virtual void start( const Package::constPtr & /*package*/, const Pathname & /*script path*/ ) {} /** Progress provides the script output. If the script is quiet, * from time to time still-alive pings are sent to the ui. Returning \c FALSE * aborts script execution. */ virtual bool progress( Notify /*OUTPUT or PING*/, const std::string & /*output*/ = std::string() ) { return true; } /** Report error. */ virtual Action problem( const std::string & /*description*/ ) { return ABORT; } /** Report success. */ virtual void finish() {} }; /////////////////////////////////////////////////////////////////// /// \class FindFileConflictstReport /// \brief Check for package file conflicts in commit (after download) /// /// File conflict check requires that all packages are downloaded and /// now available in the cache (need to access the filelists). Missing /// packages are omitted from check and their number is reported in /// \a noFilelist_r. This usually happens if download mode 'as-needed' /// is used. /////////////////////////////////////////////////////////////////// struct FindFileConflictstReport : public callback::ReportBase { /** * \param progress_r Progress counter for packages to check. * \return \c true to continue, \c false upon user abort request. */ virtual bool start( const ProgressData & progress_r ) { return true; } /** * \param progress_r Progress counter for packages to check. * \param noFilelist_r Queue of so far skipped solvables (no filelist/not yet downloaded). * \return \c true to continue, \c false upon user abort request. */ virtual bool progress( const ProgressData & progress_r, const sat::Queue & noFilelist_r ) { return true; } /** * \param progress_r Progress counter for packages to check. * \param noFilelist_r Queue of skipped solvables (no filelist/not yet downloaded). * \param conflicts_r File conflits queue. * \return \c true to continue, \c false upon user abort request. */ virtual bool result( const ProgressData & progress_r, const sat::Queue & noFilelist_r, const sat::FileConflicts & conflicts_r ) { return true; } }; /////////////////////////////////////////////////////////////////// namespace rpm { // progress for installing a resolvable struct InstallResolvableReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore the failure }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error INVALID // th resolvable is invalid }; // the level of RPM pushing /** \deprecated We fortunately no longer do 3 attempts. */ enum RpmLevel { RPM, RPM_NODEPS, RPM_NODEPS_FORCE //!< only this one used }; virtual void start( Resolvable::constPtr /*resolvable*/ ) {} virtual bool progress(int /*value*/, Resolvable::constPtr /*resolvable*/) { return true; } virtual Action problem( Resolvable::constPtr /*resolvable*/ , Error /*error*/ , const std::string &/*description*/ , RpmLevel /*level*/ ) { return ABORT; } virtual void finish( Resolvable::constPtr /*resolvable*/ , Error /*error*/ , const std::string &/*reason*/ , RpmLevel /*level*/ ) {} }; // progress for removing a resolvable struct RemoveResolvableReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore the failure }; enum Error { NO_ERROR, NOT_FOUND, // the requested Url was not found IO, // IO error INVALID // th resolvable is invalid }; virtual void start( Resolvable::constPtr /*resolvable*/ ) {} virtual bool progress(int /*value*/, Resolvable::constPtr /*resolvable*/) { return true; } virtual Action problem( Resolvable::constPtr /*resolvable*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } virtual void finish( Resolvable::constPtr /*resolvable*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; // progress for rebuilding the database struct RebuildDBReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore the failure }; enum Error { NO_ERROR, FAILED // failed to rebuild }; virtual void start(Pathname /*path*/) {} virtual bool progress(int /*value*/, Pathname /*path*/) { return true; } virtual Action problem( Pathname /*path*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } virtual void finish( Pathname /*path*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; // progress for converting the database struct ConvertDBReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore the failure }; enum Error { NO_ERROR, FAILED // conversion failed }; virtual void start( Pathname /*path*/ ) {} virtual bool progress(int /*value*/, Pathname /*path*/) { return true; } virtual Action problem( Pathname /*path*/ , Error /*error*/ , const std::string &/*description*/ ) { return ABORT; } virtual void finish( Pathname /*path*/ , Error /*error*/ , const std::string &/*reason*/ ) {} }; ///////////////////////////////////////////////////////////////// } // namespace rpm /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// class PoolQuery; /** \name Locks */ //@{ /** * Callback for cleaning locks which doesn't lock anything in pool. */ struct CleanEmptyLocksReport : public callback::ReportBase { /** * action performed by cleaning api to specific lock */ enum Action { ABORT, /**< abort and return error */ DELETE, /**< delete empty lock */ IGNORE /**< skip empty lock */ }; /** * result of cleaning */ enum Error { NO_ERROR, /**< no problem */ ABORTED /** cleaning aborted by user */ }; /** * cleaning is started */ virtual void start( ) {} /** * progress of cleaning specifies in percents * \return if continue */ virtual bool progress(int /*value*/) { return true; } /** * When find empty lock ask what to do with it * \return action */ virtual Action execute( const PoolQuery& /*error*/ ) { return DELETE; } /** * cleaning is done */ virtual void finish( Error /*error*/ ) {} }; /** * this callback handles merging old locks with newly added or removed */ struct SavingLocksReport : public callback::ReportBase { /** * action for old lock which is in conflict * \see ConflictState */ enum Action { ABORT, /**< abort and return error*/ DELETE, /**< delete conflicted lock */ IGNORE /**< skip conflict lock */ }; /** * result of merging */ enum Error { NO_ERROR, /**< no problem */ ABORTED /**< cleaning aborted by user */ }; /** * type of conflict of old and new lock */ enum ConflictState{ SAME_RESULTS, /**< locks lock same item in pool but his parameters is different */ INTERSECT /**< locks lock some file and unlocking lock unlock only part * of iti, so removing old lock can unlock more items in pool */ }; virtual void start() {} /** * merging still live * \return if continue */ virtual bool progress() { return true; } /** * When user unlock something which is locked by non-identical query */ virtual Action conflict( const PoolQuery&, /**< problematic query*/ ConflictState ) { return DELETE; } virtual void finish( Error /*error*/ ) {} }; /////////////////////////////////////////////////////////////////// /// \class JobReport /// \brief Generic report for sending messages. /////////////////////////////////////////////////////////////////// struct JobReport : public callback::ReportBase { public: /** message type (use like 'enum class \ref MsgType') */ struct EMsgTypeDef { enum Enum { debug, info, warning, error, important, data }; }; typedef base::EnumClass MsgType; ///< 'enum class MsgType' /** typsafe map of userdata */ typedef callback::UserData UserData; public: /** Send a ready to show message text. */ virtual bool message( MsgType type_r, const std::string & msg_r, const UserData & userData_r ) const { return true; } /** \name Static sender instance */ //@{ /** Singleton sender instance */ static callback::SendReport & instance(); // impl in ZYppImpl.cc /** send debug message text */ static bool debug( const std::string & msg_r, const UserData & userData_r = UserData() ) { return instance()->message( MsgType::debug, msg_r, userData_r ); } /** send message text */ static bool info( const std::string & msg_r, const UserData & userData_r = UserData() ) { return instance()->message( MsgType::info, msg_r, userData_r ); } /** send warning text */ static bool warning( const std::string & msg_r, const UserData & userData_r = UserData() ) { return instance()->message( MsgType::warning, msg_r, userData_r ); } /** send error text */ static bool error( const std::string & msg_r, const UserData & userData_r = UserData() ) { return instance()->message( MsgType::error, msg_r, userData_r ); } /** send important message text */ static bool important( const std::string & msg_r, const UserData & userData_r = UserData() ) { return instance()->message( MsgType::important, msg_r, userData_r ); } /** send data message */ static bool data( const std::string & msg_r, const UserData & userData_r = UserData() ) { return instance()->message( MsgType::data, msg_r, userData_r ); } //@} }; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPPCALLBACKS_H libzypp-17.7.0/zypp/ZYppCommit.h000066400000000000000000000021101334444677500165400ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppCommit.h * */ #ifndef ZYPP_ZYPPCOMMIT_H #define ZYPP_ZYPPCOMMIT_H #include #include "zypp/ZYppCommitPolicy.h" #include "zypp/ZYppCommitResult.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPPCOMMIT_H libzypp-17.7.0/zypp/ZYppCommitPolicy.cc000066400000000000000000000104371334444677500200710ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppCommitPolicy.cc * */ #include #include "zypp/base/String.h" #include "zypp/ZConfig.h" #include "zypp/ZYppCommitPolicy.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppCommitPolicy::Impl // /////////////////////////////////////////////////////////////////// class ZYppCommitPolicy::Impl { public: Impl() : _restrictToMedia ( 0 ) , _dryRun ( false ) , _downloadMode ( ZConfig::instance().commit_downloadMode() ) , _rpmInstFlags ( ZConfig::instance().rpmInstallFlags() ) , _syncPoolAfterCommit ( true ) {} public: unsigned _restrictToMedia; bool _dryRun; DownloadMode _downloadMode; target::rpm::RpmInstFlags _rpmInstFlags; bool _syncPoolAfterCommit; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppCommitPolicy // /////////////////////////////////////////////////////////////////// ZYppCommitPolicy::ZYppCommitPolicy() : _pimpl( new Impl ) {} ZYppCommitPolicy & ZYppCommitPolicy::restrictToMedia( unsigned mediaNr_r ) { _pimpl->_restrictToMedia = ( mediaNr_r == 1 ) ? 1 : 0; return *this; } unsigned ZYppCommitPolicy::restrictToMedia() const { return _pimpl->_restrictToMedia; } ZYppCommitPolicy & ZYppCommitPolicy::dryRun( bool yesNo_r ) { _pimpl->_dryRun = yesNo_r; return *this; } bool ZYppCommitPolicy::dryRun() const { return _pimpl->_dryRun; } ZYppCommitPolicy & ZYppCommitPolicy::downloadMode( DownloadMode val_r ) { _pimpl->_downloadMode = val_r; return *this; } DownloadMode ZYppCommitPolicy::downloadMode() const { return _pimpl->_downloadMode; } ZYppCommitPolicy & ZYppCommitPolicy::rpmInstFlags( target::rpm::RpmInstFlags newFlags_r ) { _pimpl->_rpmInstFlags = newFlags_r; return *this; } ZYppCommitPolicy & ZYppCommitPolicy::rpmNoSignature( bool yesNo_r ) { _pimpl->_rpmInstFlags.setFlag( target::rpm::RPMINST_NOSIGNATURE, yesNo_r ); return *this; } ZYppCommitPolicy & ZYppCommitPolicy::rpmExcludeDocs( bool yesNo_r ) { _pimpl->_rpmInstFlags.setFlag( target::rpm::RPMINST_EXCLUDEDOCS, yesNo_r ); return *this; } target::rpm::RpmInstFlags ZYppCommitPolicy::rpmInstFlags() const { return _pimpl->_rpmInstFlags; } bool ZYppCommitPolicy::rpmNoSignature() const { return _pimpl->_rpmInstFlags.testFlag( target::rpm::RPMINST_NOSIGNATURE ); } bool ZYppCommitPolicy::rpmExcludeDocs() const { return _pimpl->_rpmInstFlags.testFlag( target::rpm::RPMINST_EXCLUDEDOCS ); } ZYppCommitPolicy & ZYppCommitPolicy::syncPoolAfterCommit( bool yesNo_r ) { _pimpl->_syncPoolAfterCommit = yesNo_r; return *this; } bool ZYppCommitPolicy::syncPoolAfterCommit() const { return _pimpl->_syncPoolAfterCommit; } std::ostream & operator<<( std::ostream & str, const ZYppCommitPolicy & obj ) { str << "CommitPolicy("; if ( obj.restrictToMedia() ) str << " restrictToMedia:" << obj.restrictToMedia(); if ( obj.dryRun() ) str << " dryRun"; str << " " << obj.downloadMode(); if ( obj.syncPoolAfterCommit() ) str << " syncPoolAfterCommit"; if ( obj.rpmInstFlags() ) str << " rpmInstFlags{" << str::hexstring(obj.rpmInstFlags()) << "}"; return str << " )"; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ZYppCommitPolicy.h000066400000000000000000000066641334444677500177420ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppCommitPolicy.h * */ #ifndef ZYPP_ZYPPCOMMITPOLICY_H #define ZYPP_ZYPPCOMMITPOLICY_H #include #include "zypp/base/PtrTypes.h" #include "zypp/DownloadMode.h" #include "zypp/target/rpm/RpmFlags.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppCommitPolicy // /** Options and policies for ZYpp::commit. * \see \ref ZYpp::commit */ class ZYppCommitPolicy { public: ZYppCommitPolicy(); public: /** Restrict commit to media 1. * Fake outstanding YCP fix: Honour restriction to media 1 * at installation, but install all remaining packages if * post-boot (called with mediaNr_r > 1). */ ZYppCommitPolicy & restrictToMedia( unsigned mediaNr_r ); /** Process all media (default) */ ZYppCommitPolicy & allMedia() { return restrictToMedia( 0 ); } unsigned restrictToMedia() const; /** Set dry run (default: false). * Dry-run should not change anything on the system, unless * the \ref downloadMode is set to \ref DownloadOnly. In that * case packages are downloaded to the local cache. */ ZYppCommitPolicy & dryRun( bool yesNo_r ); bool dryRun() const; /** Commit download policy to use. (default: \ref DownloadDefault) * \note \ref DownloadOnly also implies a \ref dryRun. */ ZYppCommitPolicy & downloadMode( DownloadMode val_r ); DownloadMode downloadMode() const; /** The default \ref target::rpm::RpmInstFlags. (default: none)*/ ZYppCommitPolicy & rpmInstFlags( target::rpm::RpmInstFlags newFlags_r ); /** Use rpm option --nosignature (default: false) */ ZYppCommitPolicy & rpmNoSignature( bool yesNo_r ); /** Use rpm option --excludedocs (default: false) */ ZYppCommitPolicy & rpmExcludeDocs( bool yesNo_r ); target::rpm::RpmInstFlags rpmInstFlags() const; bool rpmNoSignature() const; bool rpmExcludeDocs() const; /** Kepp pool in sync with the Target databases after commit (default: true) */ ZYppCommitPolicy & syncPoolAfterCommit( bool yesNo_r ); bool syncPoolAfterCommit() const; public: /** Implementation */ class Impl; private: /** Pointer to data. */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates ZYppCommitPolicy Stream output. */ std::ostream & operator<<( std::ostream & str, const ZYppCommitPolicy & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPPCOMMITPOLICY_H libzypp-17.7.0/zypp/ZYppCommitResult.cc000066400000000000000000000075201334444677500201070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppCommitResult.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/ZYppCommitResult.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppCommitResult::Impl // /////////////////////////////////////////////////////////////////// class ZYppCommitResult::Impl { public: Impl() {} public: Pathname _root; FalseBool _attemptToModify; sat::Transaction _transaction; TransactionStepList _transactionStepList; UpdateNotifications _updateMessages; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppCommitResult // /////////////////////////////////////////////////////////////////// ZYppCommitResult::ZYppCommitResult() : _pimpl( new Impl ) {} ZYppCommitResult::ZYppCommitResult( const ZYppCommitResult & lhs_r ) : _pimpl( lhs_r._pimpl ) {} ZYppCommitResult::ZYppCommitResult( const Pathname & root_r ) : _pimpl( new Impl ) { _pimpl->_root = root_r; } ZYppCommitResult::~ZYppCommitResult() {} const Pathname & ZYppCommitResult::root() const { return _pimpl->_root; } bool ZYppCommitResult::attemptToModify() const { return _pimpl->_attemptToModify; } void ZYppCommitResult::attemptToModify( bool yesno_r ) { _pimpl->_attemptToModify = yesno_r; } const sat::Transaction & ZYppCommitResult::transaction() const { return _pimpl->_transaction; } sat::Transaction & ZYppCommitResult::rTransaction() { return _pimpl->_transaction; } const ZYppCommitResult::TransactionStepList & ZYppCommitResult::transactionStepList() const { return _pimpl->_transactionStepList; } ZYppCommitResult::TransactionStepList & ZYppCommitResult::rTransactionStepList() { return _pimpl->_transactionStepList; } const UpdateNotifications & ZYppCommitResult::updateMessages() const { return _pimpl->_updateMessages; } UpdateNotifications & ZYppCommitResult::rUpdateMessages() { return _pimpl->_updateMessages; } /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const ZYppCommitResult & obj ) { DefaultIntegral result[4]; for_( it, obj.transaction().actionBegin(), obj.transaction().actionEnd() ) { ++result[0]; switch ( it->stepStage() ) { case sat::Transaction::STEP_DONE : ++result[1]; break; case sat::Transaction::STEP_ERROR : ++result[2]; break; case sat::Transaction::STEP_TODO : ++result[3]; break; } } str << "CommitResult " << " (total " << result[0] << ", done " << result[1] << ", error " << result[2] << ", skipped " << result[3] << ", updateMessages " << obj.updateMessages().size() << ")"; return str; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ZYppCommitResult.h000066400000000000000000000156271334444677500177600ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppCommitResult.h * */ #ifndef ZYPP_ZYPPCOMMITRESULT_H #define ZYPP_ZYPPCOMMITRESULT_H #include #include #include #include "zypp/PoolItem.h" #include "zypp/sat/Transaction.h" #include "zypp/base/DefaultIntegral.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace sat { class Transaction; } /** Pair of \ref sat::Solvable and \ref Pathname. */ class UpdateNotificationFile { public: UpdateNotificationFile( sat::Solvable solvable_r, const Pathname & file_r ) : _solvable( solvable_r ), _file( file_r ) {} public: sat::Solvable solvable() const { return _solvable; } const Pathname & file() const { return _file; } private: sat::Solvable _solvable; Pathname _file; }; typedef std::list UpdateNotifications; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppCommitResult // /** Result returned from ZYpp::commit. * * \note Transaction data are provided and maintained during commit. * Though the interface does not inhibit manipulation of transaction * data outside commit (those methods could have been made \c private:), * this is not recommended as you may easily mess up things. * * \see \ref ZYpp::commit */ class ZYppCommitResult { public: typedef std::vector TransactionStepList; public: ZYppCommitResult(); ZYppCommitResult( const ZYppCommitResult & lhs_r ); ZYppCommitResult( const Pathname & root_r ); ~ZYppCommitResult(); public: /** Remembered root directory of the target. * \Note Pathnames within this class are relative to the * targets root directory. */ const Pathname & root() const; /** \c True if at least one attempt to actually install/remove packages was made. * While this is false there should have been no serious modifications to the system. * Mainly used to detect whether commit failed while preloading the caches or within * the real action. */ bool attemptToModify() const; /** Set \ref attemptToModify */ void attemptToModify( bool yesno_r ); /** The full transaction list. * The complete list including transaction steps that do not require * any action (like obsoletes or non-package actions). Depending on * \ref ZYppCommitPolicy::restrictToMedia only a subset of this * transaction might have been executed. * \see \ref transactionStepList. */ const sat::Transaction & transaction() const; /** Manipulate \ref transaction */ sat::Transaction & rTransaction(); /** List of \ref sat::Transaction::Step to be executed by commit. * The list of transaction step commit actually tried to execute. */ const TransactionStepList & transactionStepList() const; /** Manipulate \ref transactionStepList. */ TransactionStepList & rTransactionStepList(); /** List of update messages installed during this commit. * \Note Pathnames are relative to the targets root directory. * \code * ZYppCommitResult result; * ... * if ( ! result.updateMessages().empty() ) * { * MIL << "Received " << result.updateMessages().size() << " update notification(s):" << endl; * for_( it, result.updateMessages().begin(), result.updateMessages().end() ) * { * MIL << "- From " << it->solvable().asString() << " in file " << Pathname::showRootIf( result.root(), it->file() ) << ":" << endl; * { * // store message files content in a string: * InputStream istr( Pathname::assertprefix( result.root(), it->file() ) ); * std::ostringstream strstr; * iostr::copy( istr, strstr ); * std::string message( strstr.str() ); // contains the message * } * { * // or write out the message file indented: * InputStream istr( Pathname::assertprefix( result.root(), it->file() ) ); * iostr::copyIndent( istr, MIL, "> " ) << endl; * } * } * } * \endcode */ const UpdateNotifications & updateMessages() const; /** Manipulate \ref updateMessages * \Note Pathnames are relative to the targets root directory. */ UpdateNotifications & rUpdateMessages(); public: /** \name Some statistics based on \ref Transaction * * Class \ref Transaction allows to count and iterate the action steps to * get more detailed information about the transaction result. Here are just * a few convenience methods for easy evaluation. * * \code * ZYppCommitResult result; * const sat::Transaction & trans( result.transaction() ); * for_( it, trans.actionBegin(~sat::Transaction::STEP_DONE), trans.actionEnd() ) * { * // process all steps not DONE (ERROR and TODO) * if ( it->satSolvable() ) * std::cout << it->satSolvable() << endl; * else // deleted @System solvable: print post mortem data available * std::cout << it->ident() << endl; * } * \endcode * \see \ref Transaction, \ref transaction() */ //@{ /** Whether all steps were performed successfully (none skipped or error) */ bool allDone() const { return transaction().actionEmpty( ~sat::Transaction::STEP_DONE ); } /** Whether an error ocurred (skipped streps are ok). */ bool noError() const { return transaction().actionEmpty( sat::Transaction::STEP_ERROR ); } //@} public: /** Implementation */ class Impl; private: /** Pointer to data. */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates ZYppCommitResult Stream output. */ std::ostream & operator<<( std::ostream & str, const ZYppCommitResult & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPPCOMMITRESULT_H libzypp-17.7.0/zypp/ZYppFactory.cc000066400000000000000000000304601334444677500170660ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppFactory.cc * */ extern "C" { #include } #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/IOStream.h" #include "zypp/base/Functional.h" #include "zypp/base/Backtrace.h" #include "zypp/PathInfo.h" #include "zypp/ZYppFactory.h" #include "zypp/zypp_detail/ZYppImpl.h" #include "zypp/zypp_detail/ZYppReadOnlyHack.h" #include #include #include using boost::interprocess::file_lock; using boost::interprocess::scoped_lock; using boost::interprocess::sharable_lock; using std::endl; namespace zyppintern { void repoVariablesReset(); } // upon re-acquiring the lock... /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace { void sigsegvHandler( int sig ); ::sighandler_t lastSigsegvHandler = ::signal( SIGSEGV, sigsegvHandler ); /** SIGSEGV handler to log stack trace */ void sigsegvHandler( int sig ) { INT << "Error: signal " << sig << endl << dumpBacktrace << endl; ::signal( SIGSEGV, lastSigsegvHandler ); } } namespace env { /** Hack to circumvent the currently poor --root support. */ inline Pathname ZYPP_LOCKFILE_ROOT() { return getenv("ZYPP_LOCKFILE_ROOT") ? getenv("ZYPP_LOCKFILE_ROOT") : "/"; } } /////////////////////////////////////////////////////////////////// namespace zypp_readonly_hack { ///////////////////////////////////////////////////////////////// static bool active = getenv("ZYPP_READONLY_HACK"); void IWantIt() { active = true; MIL << "ZYPP_READONLY promised." << endl; } bool IGotIt() { return active; } ///////////////////////////////////////////////////////////////// } // namespace zypp_readonly_hack /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class ZYppGlobalLock /// \brief Our broken global lock /// /////////////////////////////////////////////////////////////////// class ZYppGlobalLock { public: ZYppGlobalLock() : _zyppLockFilePath( env::ZYPP_LOCKFILE_ROOT() / "/var/run/zypp.pid" ) , _zyppLockFile( NULL ) , _lockerPid( 0 ) , _cleanLock( false ) { filesystem::assert_dir(_zyppLockFilePath.dirname() ); } ~ZYppGlobalLock() { if ( _cleanLock ) try { // Exception safe access to the lockfile. ScopedGuard closeOnReturn( accessLockFile() ); { scoped_lock flock( _zyppLockFileLock ); // aquire write lock // Truncate the file rather than deleting it. Other processes may // still use it to synchronsize. ftruncate( fileno(_zyppLockFile), 0 ); } MIL << "Cleanned lock file. (" << getpid() << ")" << std::endl; } catch(...) {} // let no exception escape. } pid_t lockerPid() const { return _lockerPid; } const std::string & lockerName() const { return _lockerName; } const Pathname & zyppLockFilePath() const { return _zyppLockFilePath; } private: Pathname _zyppLockFilePath; file_lock _zyppLockFileLock; FILE * _zyppLockFile; pid_t _lockerPid; std::string _lockerName; bool _cleanLock; private: typedef shared_ptr ScopedGuard; /** Exception safe access to the lockfile. * \code * // Exception safe access to the lockfile. * ScopedGuard closeOnReturn( accessLockFile() ); * \endcode */ ScopedGuard accessLockFile() { _openLockFile(); return ScopedGuard( static_cast(0), bind( mem_fun_ref( &ZYppGlobalLock::_closeLockFile ), ref(*this) ) ); } /** Use \ref accessLockFile. */ void _openLockFile() { if ( _zyppLockFile != NULL ) return; // is open // open pid file rw so we are sure it exist when creating the flock _zyppLockFile = fopen( _zyppLockFilePath.c_str(), "a+" ); if ( _zyppLockFile == NULL ) ZYPP_THROW( Exception( "Cant open " + _zyppLockFilePath.asString() ) ); _zyppLockFileLock = _zyppLockFilePath.c_str(); MIL << "Open lockfile " << _zyppLockFilePath << endl; } /** Use \ref accessLockFile. */ void _closeLockFile() { if ( _zyppLockFile == NULL ) return; // is closed clearerr( _zyppLockFile ); fflush( _zyppLockFile ); // http://www.boost.org/doc/libs/1_50_0/doc/html/interprocess/synchronization_mechanisms.html // If you are using a std::fstream/native file handle to write to the file // while using file locks on that file, don't close the file before releasing // all the locks of the file. _zyppLockFileLock = file_lock(); fclose( _zyppLockFile ); _zyppLockFile = NULL; MIL << "Close lockfile " << _zyppLockFilePath << endl; } bool isProcessRunning( pid_t pid_r ) { // it is another program, not me, see if it is still running Pathname procdir( "/proc"/str::numstring(pid_r) ); PathInfo status( procdir ); MIL << "Checking " << status << endl; if ( ! status.isDir() ) { DBG << "No such process." << endl; return false; } static char buffer[513]; buffer[0] = buffer[512] = 0; // man proc(5): /proc/[pid]/cmdline is empty if zombie. if ( std::ifstream( (procdir/"cmdline").c_str() ).read( buffer, 512 ).gcount() > 0 ) { _lockerName = buffer; DBG << "Is running: " << _lockerName << endl; return true; } DBG << "In zombie state." << endl; return false; } pid_t readLockFile() { clearerr( _zyppLockFile ); fseek( _zyppLockFile, 0, SEEK_SET ); long readpid = 0; fscanf( _zyppLockFile, "%ld", &readpid ); MIL << "read: Lockfile " << _zyppLockFilePath << " has pid " << readpid << " (our pid: " << getpid() << ") "<< std::endl; return (pid_t)readpid; } void writeLockFile() { clearerr( _zyppLockFile ); fseek( _zyppLockFile, 0, SEEK_SET ); ftruncate( fileno(_zyppLockFile), 0 ); fprintf(_zyppLockFile, "%ld\n", (long)getpid() ); fflush( _zyppLockFile ); _cleanLock = true; // cleanup on exit MIL << "write: Lockfile " << _zyppLockFilePath << " got pid " << getpid() << std::endl; } public: /** Try to aquire a lock. * \return \c true if zypp is already locked by another process. */ bool zyppLocked() { if ( geteuid() != 0 ) return false; // no lock as non-root // Exception safe access to the lockfile. ScopedGuard closeOnReturn( accessLockFile() ); { scoped_lock flock( _zyppLockFileLock ); // aquire write lock _lockerPid = readLockFile(); if ( _lockerPid == 0 ) { // no or empty lock file writeLockFile(); return false; } else if ( _lockerPid == getpid() ) { // keep my own lock return false; } else { // a foreign pid in lock if ( isProcessRunning( _lockerPid ) ) { WAR << _lockerPid << " is running and has a ZYpp lock. Sorry." << std::endl; return true; } else { MIL << _lockerPid << " is dead. Taking the lock file." << std::endl; writeLockFile(); return false; } } } INT << "Oops! We should not be here!" << std::endl; return true; } }; /////////////////////////////////////////////////////////////////// namespace { static weak_ptr _theZYppInstance; static scoped_ptr _theGlobalLock; // on/off in sync with _theZYppInstance ZYppGlobalLock & globalLock() { if ( !_theGlobalLock ) _theGlobalLock.reset( new ZYppGlobalLock ); return *_theGlobalLock; } } //namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYpp // /////////////////////////////////////////////////////////////////// ZYpp::ZYpp( const Impl_Ptr & impl_r ) : _pimpl( impl_r ) { ::zyppintern::repoVariablesReset(); // upon re-acquiring the lock... MIL << "ZYpp is on..." << endl; } ZYpp::~ZYpp() { _theGlobalLock.reset(); MIL << "ZYpp is off..." << endl; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppFactoryException // /////////////////////////////////////////////////////////////////// ZYppFactoryException::ZYppFactoryException( const std::string & msg_r, pid_t lockerPid_r, const std::string & lockerName_r ) : Exception( msg_r ) , _lockerPid( lockerPid_r ) , _lockerName( lockerName_r ) {} ZYppFactoryException::~ZYppFactoryException() throw () {} /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppFactory // /////////////////////////////////////////////////////////////////// ZYppFactory ZYppFactory::instance() { return ZYppFactory(); } ZYppFactory::ZYppFactory() {} ZYppFactory::~ZYppFactory() {} /////////////////////////////////////////////////////////////////// // ZYpp::Ptr ZYppFactory::getZYpp() const { ZYpp::Ptr _instance = _theZYppInstance.lock(); if ( ! _instance ) { if ( geteuid() != 0 ) { MIL << "Running as user. Skip creating " << globalLock().zyppLockFilePath() << std::endl; } else if ( zypp_readonly_hack::active ) { MIL << "ZYPP_READONLY active." << endl; } else if ( globalLock().zyppLocked() ) { bool failed = true; const long LOCK_TIMEOUT = str::strtonum( getenv( "ZYPP_LOCK_TIMEOUT" ) ); if ( LOCK_TIMEOUT > 0 ) { MIL << "Waiting whether pid " << globalLock().lockerPid() << " ends within $LOCK_TIMEOUT=" << LOCK_TIMEOUT << " sec." << endl; unsigned delay = 1; Pathname procdir( "/proc"/str::numstring(globalLock().lockerPid()) ); for ( long i = 0; i < LOCK_TIMEOUT; i += delay ) { if ( PathInfo( procdir ).isDir() ) // wait for /proc/pid to disapear sleep( delay ); else { MIL << "Retry after " << i << " sec." << endl; failed = globalLock().zyppLocked(); if ( failed ) { // another proc locked faster. maybe it ends fast as well.... MIL << "Waiting whether pid " << globalLock().lockerPid() << " ends within " << (LOCK_TIMEOUT-i) << " sec." << endl; procdir = Pathname( "/proc"/str::numstring(globalLock().lockerPid()) ); } else { MIL << "Finally got the lock!" << endl; break; // gotcha } } } } if ( failed ) { std::string t = str::form(_("System management is locked by the application with pid %d (%s).\n" "Close this application before trying again."), globalLock().lockerPid(), globalLock().lockerName().c_str() ); ZYPP_THROW(ZYppFactoryException(t, globalLock().lockerPid(), globalLock().lockerName() )); } } // Here we go... static ZYpp::Impl_Ptr _theImplInstance; // for now created once if ( !_theImplInstance ) _theImplInstance.reset( new ZYpp::Impl ); _instance.reset( new ZYpp( _theImplInstance ) ); _theZYppInstance = _instance; } return _instance; } /////////////////////////////////////////////////////////////////// // bool ZYppFactory::haveZYpp() const { return !_theZYppInstance.expired(); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ZYppFactory & obj ) { return str << "ZYppFactory"; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ZYppFactory.h000066400000000000000000000047741334444677500167410ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ZYppFactory.h * */ #ifndef ZYPP_ZYPPFACTORY_H #define ZYPP_ZYPPFACTORY_H #include #include "zypp/base/Exception.h" #include "zypp/ZYpp.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class ZYppFactoryException : public Exception { public: ZYppFactoryException( const std::string & msg_r, pid_t lockerPid_r, const std::string & lockerName_r ); virtual ~ZYppFactoryException() throw (); public: pid_t lockerPid() const { return _lockerPid; } const std::string & lockerName() const { return _lockerName; } private: pid_t _lockerPid; std::string _lockerName; }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppFactory // /** ZYpp factory class (Singleton) */ class ZYppFactory { friend std::ostream & operator<<( std::ostream & str, const ZYppFactory & obj ); public: /** Singleton ctor */ static ZYppFactory instance(); /** Dtor */ ~ZYppFactory(); public: /** \return Pointer to the ZYpp instance. * \throw EXCEPTION In case we can't acquire a lock. */ ZYpp::Ptr getZYpp() const; /** Whether the ZYpp instance is already created.*/ bool haveZYpp() const; private: /** Default ctor. */ ZYppFactory(); }; /////////////////////////////////////////////////////////////////// /** \relates ZYppFactory Stream output */ std::ostream & operator<<( std::ostream & str, const ZYppFactory & obj ); /** \relates ZYppFactory Convenience to get the Pointer * to the ZYpp instance. * \see ZYppFactory::getZYpp */ inline ZYpp::Ptr getZYpp() { return ZYppFactory::instance().getZYpp(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPPFACTORY_H libzypp-17.7.0/zypp/base/000077500000000000000000000000001334444677500152345ustar00rootroot00000000000000libzypp-17.7.0/zypp/base/Algorithm.h000066400000000000000000000045621334444677500173420ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Algorithm.h * */ #ifndef ZYPP_BASE_ALGORITHM_H #define ZYPP_BASE_ALGORITHM_H #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Iterate through [begin_r,end_r) and invoke \a fnc_r * on each item that passes \a filter_r. * * Iteration aborts if \a fnc_r returns \c false. * * \return Number of invokations of \a fnc_r, negative if * loop was aborted by \a fnc_. */ template inline int invokeOnEach( TIterator begin_r, TIterator end_r, TFilter filter_r, TFunction fnc_r ) { int cnt = 0; for ( TIterator it = begin_r; it != end_r; ++it ) { if ( filter_r( *it ) ) { ++cnt; if ( ! fnc_r( *it ) ) return -cnt; } } return cnt; } /** Iterate through [begin_r,end_r) and invoke \a fnc_r * on each item. * * Iteration aborts if \a fnc_r returns \c false. * * \return Number of invokations of \a fnc_r, negative if * loop was aborted by \a fnc_. */ template inline int invokeOnEach( TIterator begin_r, TIterator end_r, TFunction fnc_r ) { int cnt = 0; for ( TIterator it = begin_r; it != end_r; ++it ) { ++cnt; if ( ! fnc_r( *it ) ) return -cnt; } return cnt; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_ALGORITHM_H libzypp-17.7.0/zypp/base/Backtrace.cc000066400000000000000000000060711334444677500174260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Backtrace.cc */ #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/String.h" #include "zypp/base/Backtrace.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { std::ostream & dumpBacktrace( std::ostream & stream_r ) { // get void*'s for all entries on the stack static const size_t arraySize = 50; void *array[arraySize]; size_t size = ::backtrace( array, arraySize ); // Print out all frames to stderr. Separate sigsegvHandler stack // [dumpBacktrace][sigsegvHandler][libc throwing] from actual // code stack. char ** messages = ::backtrace_symbols( array, size ); if ( messages ) { static const size_t handlerStack = 3; // [dumpBacktrace][sigsegvHandler][libc throwing] static const size_t first = 0; for ( size_t i = first; i < size; ++i ) { char * mangled_name = 0; char * offset_begin = 0; char * offset_end = 0; // find parentheses and +address offset surrounding mangled name for ( char * p = messages[i]; *p; ++p ) { if ( *p == '(' ) { mangled_name = p; } else if ( *p == '+' ) { offset_begin = p; } else if ( *p == ')' ) { offset_end = p; break; } } int btLevel = i-handlerStack; // negative level in sigsegvHandler if ( i > first ) { stream_r << endl; if ( btLevel == 0 ) stream_r << "vvvvvvvvvv----------------------------------------" << endl; } stream_r << "[" << (btLevel<0 ?"hd":"bt") << "]: (" << btLevel << ") "; // if the line could be processed, attempt to demangle the symbol if ( mangled_name && offset_begin && offset_end && mangled_name < offset_begin ) { *mangled_name++ = '\0'; *offset_begin++ = '\0'; *offset_end++ = '\0'; int status; char * real_name = ::abi::__cxa_demangle( mangled_name, 0, 0, &status ); // if demangling is successful, output the demangled function name if ( status == 0 ) { stream_r << messages[i] << " : " << real_name << "+" << offset_begin << offset_end; } // otherwise, output the mangled function name else { stream_r << messages[i] << " : " << mangled_name << "+" << offset_begin << offset_end; } ::free( real_name ); } else { // otherwise, print the whole line stream_r << messages[i]; } } ::free( messages ); } return stream_r; } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/Backtrace.h000066400000000000000000000024431334444677500172670ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Backtrace.h */ #ifndef ZYPP_BASE_BACKTRACE_H #define ZYPP_BASE_BACKTRACE_H #include #include /////////////////////////////////////////////////////////////////// namespace zypp { /** Dump current stack trace to a stream. * Thanks to http://stackoverflow.com/questions/77005. * \code * #include * std::cerr << zypp::dumpBacktrace << std::endl; * \endcode * \code * #include * std::string trace( str::Str() << zypp::dumpBacktrace ); * \endcode */ std::ostream & dumpBacktrace( std::ostream & stream_r ); } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_BACKTRACE_H libzypp-17.7.0/zypp/base/CleanerThread.cc000066400000000000000000000043501334444677500202460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/CleanerThread.cc */ #include "zypp/base/CleanerThread_p.h" #include #include #include #include #include #include #include #include struct CleanerData { static CleanerData &instance () { // C++11 requires that this is thread safe "magic statics" // this is a intentional leak and will live until the application exits static CleanerData *data( new CleanerData ); return *data; } CleanerData () { std::thread t ( [&](){ this->run(); } ); t.detach(); //we will control the thread otherwise } void run () { std::unique_lock lk( _m ); while ( true ) { auto filter = []( pid_t pid ){ int status = 0; int res = waitpid( pid, &status, WNOHANG ); // we either got an error, or the child has exited, remove it from list bool removeMe = ( res == -1 || res == pid ); return removeMe; }; _watchedPIDs.erase( std::remove_if( _watchedPIDs.begin(), _watchedPIDs.end(), filter ), _watchedPIDs.end() ); if ( _watchedPIDs.size() ) _cv.wait_for( lk, std::chrono::milliseconds(100) ); else _cv.wait( lk ); } } std::mutex _m; // < locks all data in CleanerData, do not access it without owning the mutex std::condition_variable _cv; std::vector _watchedPIDs; }; void zypp::CleanerThread::watchPID( pid_t pid_r ) { CleanerData &data = CleanerData::instance(); { std::lock_guard guard( data._m ); data._watchedPIDs.push_back( pid_r ); } //wake the thread up data._cv.notify_one(); } libzypp-17.7.0/zypp/base/CleanerThread_p.h000066400000000000000000000016261334444677500204320ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/CleanerThread_p.h * This file contains private API, it will change without notice. * You have been warned. */ #include #include "zypp/APIConfig.h" namespace zypp { class ZYPP_LOCAL CleanerThread { public: CleanerThread() = delete; static void watchPID ( pid_t pid_r ); }; } libzypp-17.7.0/zypp/base/Collector.h000066400000000000000000000045301334444677500173350ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Collector.h * */ #ifndef ZYPP_BASE_COLLECTOR_H #define ZYPP_BASE_COLLECTOR_H /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace functor { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Collector // /** Functor feeding values to an output_iterator. * * \code * LocaleSet locales; * for_each( begin(), end(), * collector( std::inserter( locales_r, locales_r.begin() ) ) ); * \endcode * * \see Convenience constructor \ref collector. */ template struct Collector { Collector( TOutputIterator iter_r ) : _iter( iter_r ) {} template bool operator()( const Tp & value_r ) const { *_iter++ = value_r; return true; } private: mutable TOutputIterator _iter; }; /////////////////////////////////////////////////////////////////// /** \relates Collector Convenience constructor. */ template inline Collector collector( TOutputIterator iter_r ) { return Collector( iter_r ); } /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace functor /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_COLLECTOR_H libzypp-17.7.0/zypp/base/Counter.h000066400000000000000000000030221334444677500170210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Counter.h * */ #ifndef ZYPP_BASE_COUNTER_H #define ZYPP_BASE_COUNTER_H #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Counter // /** Integral type with initial value \c 0. */ template class Counter { public: Counter( TInt value_r = TInt(0) ) : _value( TInt( value_r ) ) {} operator TInt &() { return _value; } operator const TInt &() const { return _value; } public: TInt _value; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_COUNTER_H libzypp-17.7.0/zypp/base/Debug.h000066400000000000000000000146271334444677500164450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Debug.h * * Debuging tools which should not be used in released code. */ #ifndef ZYPP_NDEBUG #warning ZYPP_BASE_DEBUG_H included #ifndef ZYPP_BASE_DEBUG_H #define ZYPP_BASE_DEBUG_H #include //#include //#include #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/ExternalProgram.h" #include "zypp/base/ProvideNumericId.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace debug { ///////////////////////////////////////////////////////////////// /** \defgroup DEBUG Debug tools */ #define TAG INT << __PRETTY_FUNCTION__ << std::endl /** 'ps v' */ inline std::ostream & dumpMemOn( std::ostream & str, const std::string & msg = std::string() ) { static std::string mypid( str::numstring( getpid() ) ); const char* argv[] = { "ps", "v", mypid.c_str(), NULL }; ExternalProgram prog(argv,ExternalProgram::Discard_Stderr, false, -1, true); str << "MEMUSAGE " << msg << std::endl; for( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() ) str << line; prog.close(); return str; } /////////////////////////////////////////////////////////////////// /** \defgroup DBG_TRACER Tracer * \ingroup DEBUG */ //@{ /** Base for a simple tracer. Provides an enum indicating which * traced functions were called. */ struct TraceCADBase { enum What { CTOR, COPYCTOR, MOVECTOR, ASSIGN, MOVEASSIGN, DTOR, PING }; std::string _ident; }; /** \relates TraceCADBase Stream output of TraceCADBase::What. */ inline std::ostream & operator<<( std::ostream & str, TraceCADBase::What obj ) { switch( obj ) { case TraceCADBase::CTOR: return str << "CTOR"; case TraceCADBase::COPYCTOR: return str << "COPYCTOR"; case TraceCADBase::MOVECTOR: return str << "MOVECTOR"; case TraceCADBase::ASSIGN: return str << "ASSIGN"; case TraceCADBase::MOVEASSIGN: return str << "MOVEASSIGN"; case TraceCADBase::DTOR: return str << "DTOR"; case TraceCADBase::PING: return str << "PING"; } return str; } /** A simple tracer for (copy) Construction, Assignment, and * Destruction. To trace class Foo, derive public from * TraceCAD. This tracer simply calls traceCAD in each * traced method, and traceCAD simply drops a line in the log. * * This tracer logs construction, copy construction, assignment, * destruction and ping. * * assignment: In case the traced class defines an operator= * it must be altered to call TraceCAD::operator=, otherwise it * won't be triggered. * * ping: Completely up to you. Call ping somewhere in the traced * class to indicate something. In case you overload traceCAD, do * whatever is appropriate on ping. It's just an offer to perform * logging or actions here, and not in the traced code. * * But traceCAD may be overloaded to produce more stats. * * \see \c Example.COW_debug.cc. */ template struct TraceCAD : public base::ProvideNumericId, unsigned long> , public TraceCADBase { static unsigned long & _totalTraceCAD() { static unsigned long _val = 0; return _val; } TraceCAD() { _ident = __PRETTY_FUNCTION__; ++_totalTraceCAD(); traceCAD( CTOR, *this, *this ); } TraceCAD( const TraceCAD & rhs ) { ++_totalTraceCAD(); traceCAD( COPYCTOR, *this, rhs ); } TraceCAD( TraceCAD && rhs ) { ++_totalTraceCAD(); traceCAD( MOVECTOR, *this, rhs ); } TraceCAD & operator=( const TraceCAD & rhs ) { traceCAD( ASSIGN, *this, rhs ); return *this; } TraceCAD & operator=( TraceCAD && rhs ) { traceCAD( MOVEASSIGN, *this, rhs ); return *this; } virtual ~TraceCAD() { --_totalTraceCAD(); traceCAD( DTOR, *this, *this ); } void ping() const { traceCAD( PING, *this, *this ); } }; /** \relates TraceCAD Stream output. */ template inline std::ostream & operator<<( std::ostream & str, const TraceCAD & obj ) { return str << "(ID " << obj.numericId() << ", TOTAL " << obj._totalTraceCAD() << ") [" << &obj << "] "; } /** Drop a log line about the traced method. Overload to * fit your needs. */ template void traceCAD( TraceCADBase::What what_r, const TraceCAD & self_r, const TraceCAD & rhs_r ) { switch( what_r ) { case TraceCADBase::CTOR: case TraceCADBase::PING: case TraceCADBase::DTOR: L_DBG("DEBUG") << what_r << self_r << " (" << self_r._ident << ")" << std::endl; break; case TraceCADBase::COPYCTOR: case TraceCADBase::MOVECTOR: case TraceCADBase::ASSIGN: case TraceCADBase::MOVEASSIGN: L_DBG("DEBUG") << what_r << self_r << "( " << rhs_r << ")" << " (" << self_r._ident << ")" << std::endl; break; } } //@} /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace debug /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_DEBUG_H #endif // ZYPP_NDEBUG libzypp-17.7.0/zypp/base/DefaultIntegral.h000066400000000000000000000072011334444677500204570ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/DefaultIntegral.h * */ #ifndef ZYPP_BASE_DEFAULTINTEGRAL_H #define ZYPP_BASE_DEFAULTINTEGRAL_H #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : DefaultIntegral // /** Integral type with defined initial value when default constructed. * * \code * typedef DefaultIntegral Counter; * std::map stats; * for ( all keys ) * ++(stats[key]); * \endcode * * \todo maybe specialize for bool, add logical and bit operators * \todo let TInitial default to 0 then remove base/Counter.h */ template class DefaultIntegral { public: typedef Tp value_type; public: DefaultIntegral( Tp val_r = TInitial ) : _val( val_r ) { BOOST_STATIC_ASSERT(boost::is_integral::value); } /** Conversion to Tp. */ //@{ Tp & get() { return _val; } Tp get() const { return _val; } operator Tp &() { return get(); } operator Tp () const { return get(); } //@} /** The initial value. */ constexpr Tp initial() const { return TInitial; } /** Reset to the defined initial value. */ DefaultIntegral & reset() { _val = TInitial; return *this; } /** \name Arithmetic operations. * \c + \c - \c * \c / are provided via conversion to Tp. */ //@{ DefaultIntegral & operator=( Tp rhs ) { _val = rhs; return *this; } DefaultIntegral & operator+=( Tp rhs ) { _val += rhs; return *this; } DefaultIntegral & operator-=( Tp rhs ) { _val -= rhs; return *this; } DefaultIntegral & operator*=( Tp rhs ) { _val *= rhs; return *this; } DefaultIntegral & operator/=( Tp rhs ) { _val /= rhs; return *this; } DefaultIntegral & operator++(/*prefix*/) { ++_val; return *this; } DefaultIntegral & operator--(/*prefix*/) { --_val; return *this; } DefaultIntegral operator++(int/*postfix*/) { return _val++; } DefaultIntegral operator--(int/*postfix*/) { return _val--; } //@} private: Tp _val; }; /** \relates DefaultIntegral \c true initialized \c bool */ typedef DefaultIntegral TrueBool; /** \relates DefaultIntegral \c false initialized \c bool */ typedef DefaultIntegral FalseBool; /** \relates DefaultIntegral \c zero initialized \c integral */ template using ZeroInit = DefaultIntegral; template std::string asString( const DefaultIntegral & obj ) { return asString( obj.get() ); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_DEFAULTINTEGRAL_H libzypp-17.7.0/zypp/base/DrunkenBishop.cc000066400000000000000000000266021334444677500203240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/DrunkenBishop.cc */ #include //#include "zypp/base/LogTools.h" #include "zypp/base/Flags.h" #include "zypp/base/String.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/DrunkenBishop.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////////////////////////////////////////////// namespace { /** Direction the drunken Bishop wants to move. */ enum class Direction : std::uint8_t // actually 2 bits { NW = 0x0, NE = 0x1, SW = 0x2, SE = 0x3, }; /** Convert a hex digit (case insensitive) into it's (4bit) integral value. * \throws std::invalid_argument if char */ inline std::uint8_t hexDigit( char ch_r ) { switch ( ch_r ) { case 'F': case 'f': return 15; case 'E': case 'e': return 14; case 'D': case 'd': return 13; case 'C': case 'c': return 12; case 'B': case 'b': return 11; case 'A': case 'a': return 10; case '9': return 9; case '8': return 8; case '7': return 7; case '6': return 6; case '5': return 5; case '4': return 4; case '3': return 3; case '2': return 2; case '1': return 1; case '0': return 0; } throw std::invalid_argument( str::Str() << "Not a hex digit '" << ch_r << "'" ); } } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class DrunkenBishop::Impl /// \brief DrunkenBishop implementation. /////////////////////////////////////////////////////////////////// class DrunkenBishop::Impl : private base::NonCopyable { public: /** Default is an empty board. */ Impl() : _h( 0U ) , _w( 0u ) , _s( 0U ) , _e( 0U ) , _renderSSH( true ) {} /** Build up a new board. * \throws std::invalid_argument */ void compute( const std::string & data_r, const std::string & title_r, unsigned height_r = Auto, unsigned width_r = Auto ) { // store rendering details _renderSSH = ( data_r.size() <= 32 ); // up to the ssh fingerprint size _fp = str::toUpper( data_r.size() <= 8 ? data_r : data_r.substr( data_r.size()-8 ) ); _tt = title_r; // init the board _h = odd(height_r); _w = odd(width_r); if ( _h == Auto ) { if ( _renderSSH ) { _w = 17; _h = 9; } else { _w = 19; _h = 11; } } else if ( _w == Auto ) { _w = (2*_h)-1; } _board = std::vector( _w*_h, 0 ); _s = _w*_h/2; // start _e = _s; // current/end ++_board[_e]; // go for ( const char * ch = data_r.c_str(); *ch; /*NOOP*/ ) { std::uint8_t next4 = bite( ch ); // next4: 0x94 // bits: 10 01 01 00 // step: 4 3 2 1 static const std::uint8_t stepMask(0x3); move( Direction( next4 & stepMask ) ); move( Direction( (next4>>2) & stepMask ) ); move( Direction( (next4>>4) & stepMask ) ); move( Direction( (next4>>6) ) ); } } /** Render board to a stream. */ std::ostream & dumpOn( std::ostream & str, const std::string & prefix_r, Options options_r ) const { if ( _board.empty() ) { // "++\n" // "++" return str << prefix_r << "++" << endl << prefix_r << "++"; } static const char * colorReset = "\033[0m"; static const char * colorBg = "\033[48;5;242m"; bool useColor = options_r.testFlag( USE_COLOR ); renderTitleOn( str << prefix_r , _tt ); for ( unsigned p = 0; p < _board.size(); ++p ) { if ( ( p % _w ) == 0 ) { if ( p ) str << ( useColor ? colorReset: "" ) << '|'; str << endl << prefix_r << '|' << ( useColor ? colorBg : "" ); } renderOn( str, useColor, p ); } str << ( useColor ? colorReset: "" ) << '|'; renderTitleOn( str << endl << prefix_r, _fp ); return str; } private: /** Increment even width/height values. */ static unsigned odd( unsigned val_r ) { return( val_r == Auto ? val_r : val_r|1U ); } /** Get next 4 moves (8 bit) from next 2 hex digits (1st digit != '\0' asserted, 0-pad if necessary). * \throws std::invalid_argument if char is not a hex digit or 1st char is \c \0 */ static std::uint8_t bite( const char *& ch_r ) { std::uint8_t ret = hexDigit( *ch_r ) << 4; if ( *(++ch_r) ) ret |= hexDigit( *(ch_r++) ); return ret; } private: /** Move Bishop from \ref _e into \a direction_r and update the \ref _board. */ void move( Direction direction_r ) { switch ( direction_r ) { case Direction::NW: if ( atTL() ) /*no move*/; else if ( atT() ) _e -= 1; else if ( atL() ) _e -= _w; else _e -= _w+1; break; case Direction::NE: if ( atTR() ) /*no move*/; else if ( atT() ) _e += 1; else if ( atR() ) _e -= _w; else _e -= _w-1; break; case Direction::SW: if ( atBL() ) /*no move*/; else if ( atB() ) _e -= 1; else if ( atL() ) _e += _w; else _e += _w-1; break; case Direction::SE: if ( atBR() ) /*no move*/; else if ( atB() ) _e += 1; else if ( atR() ) _e += _w; else _e += _w+1; break; default: throw std::invalid_argument( str::Str() << "Bad Direction " << unsigned(direction_r) ); } // update the board ++_board[_e]; } /** Whether \ref _e is in the top left corner. */ bool atTL() const { return( _e == 0 ); } /** Whether \ref _e is in the top right corner. */ bool atTR() const { return( _e == _w-1 ); } /** Whether \ref _e is in the bottom left corner. */ bool atBL() const { return( _e == _board.size()-_w ); } /** Whether \ref _e is in the bottom right corner. */ bool atBR() const { return( _e == _board.size()-1 ); } /** Whether \ref _e is in the top row. */ bool atT() const { return( _e < _w ); } /** Whether \ref _e is in the bottom row. */ bool atB() const { return( _e >= _board.size()-_w ); } /** Whether \ref _e is in the left column. */ bool atL() const { return( ( _e % _w ) == 0 ); } /** Whether \ref _e is in the right column. */ bool atR() const { return( ( _e % _w ) == (_w-1) ); } private: /** ANSI color heatmap. */ const char * color( std::uint8_t idx_r ) const { static const std::vector colors = { "", // no coin "\033[38;5;21m", // blue (cold) "\033[38;5;39m", "\033[38;5;50m", "\033[38;5;48m", "\033[38;5;46m", // green "\033[38;5;118m", "\033[38;5;190m", "\033[38;5;226m", // yellow "\033[38;5;220m", "\033[38;5;214m", // orange "\033[38;5;208m", "\033[38;5;202m", "\033[38;5;196m", // red "\033[38;5;203m", "\033[38;5;210m", "\033[38;5;217m", // pink "\033[38;5;224m", "\033[38;5;231m", // white (hot) }; #if 0 // cycle through heat map to test all colors if ( ! idx_r ) return ""; static unsigned i = 0; if ( ++i == colors.size() ) i = 1; return colors[i]; #endif return ( idx_r < colors.size() ? colors[idx_r] : *colors.rbegin() ); } /** Render non empty title strings */ std::ostream & renderTitleOn( std::ostream & str, const std::string & title_r ) const { std::string buffer( _w+2, '-' ); *buffer.begin() = *buffer.rbegin() = '+'; if ( !title_r.empty() && _w >= 2 ) // extra 2 for "[]" { std::string::size_type tlen = std::min( title_r.size(), std::string::size_type(_w-2) ); std::string::size_type tpos = (_w-tlen)/2; // not (_w-2-tlen) because buffer is size _w+2 buffer[tpos++] = '['; for ( std::string::size_type p = 0; p < tlen; ++p, ++tpos ) buffer[tpos] = title_r[p]; buffer[tpos] = ']'; } return str << buffer; } /** Render board numbers to printable chars. */ std::ostream & renderOn( std::ostream & str, bool useColor_r, unsigned pos_r ) const { static const std::string sshSet( " .o+=*BOX@%&#/^" ); static const std::string gpgSet( " .^:li?(fxXZ#MW&8%@" ); const std::string & charSet( _renderSSH ? sshSet : gpgSet ); if ( useColor_r ) str << color( _board[pos_r] ); if ( pos_r == _e ) return str << 'E'; if ( pos_r == _s ) return str << 'S'; return str << ( _board[pos_r] < charSet.size() ? charSet[_board[pos_r]] : *charSet.rbegin() ); } private: /** Request default width/height values. */ static constexpr const unsigned Auto = unsigned(-1); private: std::vector _board; ///< the board unsigned _h; ///< board height unsigned _w; ///< board with unsigned _s; ///< start position unsigned _e; ///< end position private: bool _renderSSH; ///< whether to render the ssh (or gpg) char set std::string _fp; ///< fingerprint to render as bottom title std::string _tt; ///< text to render as top title public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } }; /////////////////////////////////////////////////////////////////// // CLASS NAME : DrunkenBishop /////////////////////////////////////////////////////////////////// DrunkenBishop::DrunkenBishop() : _pimpl( Impl::nullimpl() ) { /*nothing to compute*/ } DrunkenBishop::DrunkenBishop( const std::string & data_r, const std::string & title_r ) : _pimpl( new Impl ) { _pimpl->compute( data_r, title_r ); } DrunkenBishop::DrunkenBishop( const std::string & data_r, const std::string & title_r, unsigned height_r ) : _pimpl( new Impl ) { _pimpl->compute( data_r, title_r, height_r ); } DrunkenBishop::DrunkenBishop( const std::string & data_r, const std::string & title_r, unsigned height_r, unsigned width_r ) : _pimpl( new Impl ) { _pimpl->compute( data_r, title_r, height_r, width_r ); } DrunkenBishop::~DrunkenBishop() {} std::ostream & DrunkenBishop::dumpOn( std::ostream & str, const std::string & prefix_r, Options options_r ) const { return _pimpl->dumpOn( str, prefix_r, options_r ); } std::string DrunkenBishop::asString( const std::string & prefix_r, Options options_r ) const { std::ostringstream str; dumpOn( str, prefix_r, options_r ); return str.str(); } std::vector DrunkenBishop::asLines( const std::string & prefix_r, Options options_r ) const { std::vector ret; str::split( asString( prefix_r, options_r ), std::back_inserter(ret), "\n" ); return ret; } } // namespace base /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/DrunkenBishop.h000066400000000000000000000130151334444677500201600ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/DrunkenBishop.h */ #ifndef ZYPP_BASE_DRUNKENBISHOP_H #define ZYPP_BASE_DRUNKENBISHOP_H #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Flags.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////////////////////////////////////////////// /// \class DrunkenBishop /// \brief Random art fingerprint visualization /// Visualize fingerprint data on a [17x9] (SSH) or [19x11] (GPG) or /// custom sized board. The default board size and layout depends on /// the data string length (above 32 the GPG board and layout is used). /// /// The data string should be an even sized HEX string, otherwise /// it will be 0-padded. /// /// All ctor calls may throw \ref std::invalid_argument. /// /// \code /// [SuSE Package Signing Key ] /// +------[Title]------+ /// | . . ^ | fpr FEAB502539D846DB2C0961CA70AF9E8139DB7C82 /// | : : . | id 70AF9E8139DB7C82 /// | ^ ^ . | cre 1481108255 Wed Dec 7 11:57:35 2016 /// | ^ . l i | exp 1607252255 Sun Dec 6 11:57:35 2020 /// | : ^ . f : | ttl 992 /// | ? ^ .Sl | rpm 39db7c82-5847eb1f /// | E i ... | /// | ^ .. | /// | . . | /// | . . | /// | .... | /// +----[39DB7C82]-----+ /// \endcode //// /// Based on https://github.com/atoponce/keyart, the development location /// for the Debian signing-party package. We try to use the same charset /// and heatmap. /// See also http://dirk-loss.de/sshvis/drunken_bishop.pdf. /////////////////////////////////////////////////////////////////// class DrunkenBishop { friend std::ostream & operator<<( std::ostream & str, const DrunkenBishop & obj ); public: /** Default ctor: empty board (1x1) */ DrunkenBishop(); /** Ctor taking a data string (and optional title) and using a default (SSH/GPG) board. */ DrunkenBishop( const std::string & data_r, const std::string & title_r = std::string() ); /** Ctor also taking a desired board height (even value is incremented, width is 2*height-1). */ DrunkenBishop( const std::string & data_r, const std::string & title_r, unsigned height_r ); /** Ctor \overload without optional title */ DrunkenBishop( const std::string & data_r, unsigned height_r ) : DrunkenBishop( data_r, std::string(), height_r ) {} /** Ctor also taking a desired board height and width (even values are incremented). */ DrunkenBishop( const std::string & data_r, const std::string & title_r, unsigned height_r, unsigned width_r ); /** Ctor \overload without optional title */ DrunkenBishop( const std::string & data_r, unsigned height_r, unsigned width_r ) : DrunkenBishop( data_r, std::string(), height_r, width_r ) {} /** Dtor */ ~DrunkenBishop(); public: /* Rendering options */ enum OptionBits { USE_COLOR = (1<<0), ///< use colors }; ZYPP_DECLARE_FLAGS(Options,OptionBits); /** Render board to steam.*/ std::ostream & dumpOn( std::ostream & str, Options options_r = Options() ) const { return dumpOn( str, std::string(), options_r ); } /** \overload taking an indent string prefixing each line. */ std::ostream & dumpOn( std::ostream & str, const std::string & prefix_r, Options options_r = Options() ) const; /** Render board as string.*/ std::string asString( Options options_r = Options() ) const { return asString( std::string(), options_r ); } /** \overload taking an indent string prefixing each line. */ std::string asString( const std::string & prefix_r, Options options_r = Options() ) const; /** Render to an array of lines. */ std::vector asLines( Options options_r = Options() ) const { return asLines( std::string(), options_r ); } /** \overload taking an indent string prefixing each line. */ std::vector asLines( const std::string & prefix_r, Options options_r = Options() ) const; public: class Impl; ///< Implementation class. private: RW_pointer _pimpl; ///< Pointer to implementation. }; ZYPP_DECLARE_OPERATORS_FOR_FLAGS(DrunkenBishop::Options); /** \relates DrunkenBishop Stream output */ inline std::ostream & operator<<( std::ostream & str, const DrunkenBishop & obj ) { return obj.dumpOn( str ); } } // namespace base /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_DRUNKENBISHOP_H libzypp-17.7.0/zypp/base/DtorReset.h000066400000000000000000000051331334444677500173220ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/DtorReset.h * */ #ifndef ZYPP_BASE_DTORRESET_H #define ZYPP_BASE_DTORRESET_H #include "zypp/base/PtrTypes.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : DtorReset // /** Assign a vaiable a certain value when going out of scope. * Use it e.g. to reset/cleanup in presence of exceptions. * \code * struct Foo * { * void consume() * { * DtorReset x(_inConsume,false); * _inConsume = true; * MIL << _inConsume << endl; * }; * * DefaultIntegral _inConsume; * }; * * Foo f; * MIL << f._inConsume << endl; // 0 * f.consume(); // 1 * MIL << f._inConsume << endl; // 0 * \endcode * \ingroup g_RAII * \todo Check if using call_traits enables 'DtorReset(std::string,"value")', * as this currently would require assignment of 'char[]'. */ class DtorReset { public: DtorReset() {} template DtorReset( TVar & var_r ) : _pimpl( new Impl( var_r, var_r ) ) {} template DtorReset( TVar & var_r, const TVal & val_r ) : _pimpl( new Impl( var_r, val_r ) ) {} private: /** Requires TVal being copy constructible, and assignment * TVar = TVal defined. */ template struct Impl { Impl( TVar & var_r, const TVal & val_r ) : _var( var_r ) , _val( val_r ) {} ~Impl() { _var = _val; } TVar & _var; TVal _val; }; shared_ptr _pimpl; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_DTORRESET_H libzypp-17.7.0/zypp/base/Easy.h000066400000000000000000000063231334444677500163120ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Easy.h * */ #ifndef ZYPP_BASE_EASY_H #define ZYPP_BASE_EASY_H #include /** Convenient for-loops using iterator. * \code * std::set; _store; * for_( it, _store.begin(), _store.end() ) * { * cout << *it << endl; * } * \endcode */ #ifndef __GXX_EXPERIMENTAL_CXX0X__ #define for_(IT,BEG,END) for ( __typeof__(BEG) IT = BEG, _for_end = END; IT != _for_end; ++IT ) #else #define for_(IT,BEG,END) for ( auto IT = BEG, _for_end = END; IT != _for_end; ++IT ) #endif #define for_each_(IT,CONT) for_( IT, (CONT).begin(), (CONT).end() ) /** Simple C-array iterator * \code * const char * defstrings[] = { "", "a", "default", "two words" }; * for_( it, arrayBegin(defstrings), arrayEnd(defstrings) ) * cout << *it << endl; * \endcode */ #define arrayBegin(A) (&A[0]) #define arraySize(A) (sizeof(A)/sizeof(*A)) #define arrayEnd(A) (&A[0] + arraySize(A)) /** * \code * defConstStr( strANY(), "ANY" ); * std::str str = strANY(); * \endcode */ #define defConstStr(FNC,STR) inline const std::string & FNC { static const std::string val( STR ); return val; } #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) #if GCC_VERSION < 40600 || not defined(__GXX_EXPERIMENTAL_CXX0X__) #define nullptr NULL #endif /** Delete copy ctor and copy assign */ #define NON_COPYABLE(CLASS) \ CLASS( const CLASS & ) = delete; \ CLASS & operator=( const CLASS & ) = delete /** Default copy ctor and copy assign */ #define DEFAULT_COPYABLE(CLASS) \ CLASS( const CLASS & ) = default; \ CLASS & operator=( const CLASS & ) = default #ifndef SWIG // Swig treats it as syntax error /** Delete move ctor and move assign */ #define NON_MOVABLE(CLASS) \ CLASS( CLASS && ) = delete; \ CLASS & operator=( CLASS && ) = delete /** Default move ctor and move assign */ #define DEFAULT_MOVABLE(CLASS) \ CLASS( CLASS && ) = default; \ CLASS & operator=( CLASS && ) = default #else #define NON_MOVABLE(CLASS) #define DEFAULT_MOVABLE(CLASS) #endif /** Delete copy ctor and copy assign but enable default move */ #define NON_COPYABLE_BUT_MOVE( CLASS ) \ NON_COPYABLE(CLASS); \ DEFAULT_MOVABLE(CLASS) /** Default move ctor and move assign but enable default copy */ #define NON_MOVABLE_BUT_COPY( CLASS ) \ NON_MOVABLE(CLASS); \ DEFAULT_COPYABLE(CLASS) /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_EASY_H libzypp-17.7.0/zypp/base/EnumClass.h000066400000000000000000000072721334444677500173070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/EnumClass.h */ #ifndef ZYPP_BASE_ENUMCLASS_H #define ZYPP_BASE_ENUMCLASS_H #include #include "zypp/base/PtrTypes.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////////////////////////////////////////////// /// \class EnumClass /// \brief Type safe enum (workaround SWIG not supporting enum class) /// \code /// struct EColorDef { enum Enum { R, G ,B }; }; /// typedef EnumClass Color; /// \endcode /// Conversion to from string can be easily added, e.g. like this: /// \code /// struct EColorDef { /// enum Enum { R, G ,B }; /// static Enum fromString( const std::string & val_r ); /// static const std::string & asString( Enum val_r ); /// }; /// std::ostream & operator<<( std::ostream & str, const EColorDef & obj ) /// { return str << EColorDef::asString( obj.inSwitch() ); } /// /// typedef EnumClass Color; /// Color red = Color::fromString("red"); /// cout << red << endl; // "red" /// \endcode /////////////////////////////////////////////////////////////////// template class EnumClass : public TEnumDef { public: typedef typename TEnumDef::Enum Enum; ///< The underlying enum type typedef typename std::underlying_type::type Integral;///< The underlying integral type EnumClass( Enum val_r ) : _val( val_r ) {} /** Underlying enum value for use in switch * \code * struct EColorDef { enum Enum { R, G ,B }; } * typedef EnumClass Color; * * Color a; * switch ( a.asEnum() ) * \endcode */ Enum asEnum() const { return _val; } /** Underlying integral value (e.g. array index) * \code * struct EColorDef { enum Enum { R, G ,B }; } * typedef EnumClass Color; * * Color a; * std::string table[] = { "red", "green", "blue" }; * std::cout << table[a.asIntegral()] << std::endl; */ Integral asIntegral() const { return static_cast(_val); } friend bool operator==( const EnumClass & lhs, const EnumClass & rhs ) { return lhs._val == rhs._val; } friend bool operator!=( const EnumClass & lhs, const EnumClass & rhs ) { return lhs._val != rhs._val; } friend bool operator< ( const EnumClass & lhs, const EnumClass & rhs ) { return lhs._val < rhs._val; } friend bool operator<=( const EnumClass & lhs, const EnumClass & rhs ) { return lhs._val <= rhs._val; } friend bool operator> ( const EnumClass & lhs, const EnumClass & rhs ) { return lhs._val > rhs._val; } friend bool operator>=( const EnumClass & lhs, const EnumClass & rhs ) { return lhs._val >= rhs._val; } private: Enum _val; }; } // namespace base /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_ENUMCLASS_H libzypp-17.7.0/zypp/base/Errno.h000066400000000000000000000043321334444677500164740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Errno.h * */ #ifndef ZYPP_BASE_ERRNO_H #define ZYPP_BASE_ERRNO_H #include #include #include "zypp/base/String.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Convenience \c errno wrapper. */ class Errno { public: /** Default ctor: \c errno */ Errno() : _errno( errno ) {} /** Ctor set to \c errno if error condition, else \c 0. * \code * int ret = ::write( fd, buffer, size ); * DBG << "write returns: " << Errno( ret != size ) << end; * // on success: "write returns: [0-Success]" * // on error e.g.: "write returns: [11-Resource temporarily unavailable]" * \endcode */ Errno( bool error_r ) : _errno( error_r ? errno : 0 ) {} /** Ctor taking an explicit errno value. */ Errno( int errno_r ) : _errno( errno_r ) {} public: /** Return the stored errno. */ int get() const { return _errno; } /** Allow implicit conversion to \c int. */ operator int() const { return get(); } /** Return human readable error string. */ std::string asString() const { return str::form( "[%d-%s]", _errno, ::strerror(_errno) ); } private: int _errno; }; /** \relates Errno Stream output */ inline std::ostream & operator<<( std::ostream & str, const Errno & obj ) { return str << obj.asString(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_ERRNO_H libzypp-17.7.0/zypp/base/Exception.cc000066400000000000000000000124261334444677500175060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Exception.cc * */ #include #include #include "zypp/base/Logger.h" #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/base/Exception.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace exception_detail { ///////////////////////////////////////////////////////////////// std::string CodeLocation::asString() const { return str::form( "%s(%s):%u", _file.c_str(), _func.c_str(), _line ); } std::ostream & operator<<( std::ostream & str, const CodeLocation & obj ) { return str << obj.asString(); } ///////////////////////////////////////////////////////////////// } // namespace exception_detail /////////////////////////////////////////////////////////////////// Exception::Exception() {} Exception::Exception( const std::string & msg_r ) : _msg( msg_r ) {} Exception::Exception( std::string && msg_r ) : _msg( std::move(msg_r) ) {} Exception::Exception( const std::string & msg_r, const Exception & history_r ) : _msg( msg_r ) { remember( history_r ); } Exception::Exception( std::string && msg_r, const Exception & history_r ) : _msg( std::move(msg_r) ) { remember( history_r ); } Exception::Exception( const std::string & msg_r, Exception && history_r ) : _msg( msg_r ) { remember( std::move(history_r) ); } Exception::Exception( std::string && msg_r, Exception && history_r ) : _msg( std::move(msg_r) ) { remember( std::move(history_r) ); } Exception::~Exception() throw() {} std::string Exception::asString() const { std::ostringstream str; dumpOn( str ); return str.str(); } std::string Exception::asUserString() const { std::ostringstream str; dumpOn( str ); // call gettext to translate the message. This will // not work if dumpOn() uses composed messages. return _(str.str().c_str()); } std::string Exception::asUserHistory() const { if ( historyEmpty() ) return asUserString(); std::string ret( asUserString() ); if ( ret.empty() ) return historyAsString(); ret += '\n'; ret += historyAsString(); return ret; } void Exception::remember( const Exception & old_r ) { if ( &old_r != this ) // no self-remember { History newh( old_r._history.begin(), old_r._history.end() ); newh.push_front( old_r.asUserString() ); _history.swap( newh ); } } void Exception::remember( Exception && old_r ) { if ( &old_r != this ) // no self-remember { History & newh( old_r._history ); // stealing it newh.push_front( old_r.asUserString() ); _history.swap( newh ); } } void Exception::addHistory( const std::string & msg_r ) { _history.push_front( msg_r ); } void Exception::addHistory( std::string && msg_r ) { _history.push_front( std::move(msg_r) ); } std::string Exception::historyAsString() const { // TranslatorExplanation followed by the list of error messages that lead to this exception std::string history( _("History:") ); std::ostringstream ret; dumpRange( ret, historyBegin(), historyEnd(), "", history+"\n - ", "\n - ", "\n", "" ); return ret.str(); } std::ostream & Exception::dumpOn( std::ostream & str ) const { return str << _msg; } std::ostream & Exception::dumpError( std::ostream & str ) const { return dumpOn( str << _where << ": " ); } std::ostream & operator<<( std::ostream & str, const Exception & obj ) { return obj.dumpError( str ); } std::string Exception::strErrno( int errno_r ) { return str::strerror( errno_r ); } std::string Exception::strErrno( int errno_r, const std::string & msg_r ) { return strErrno( errno_r, std::string(msg_r) ); } std::string Exception::strErrno( int errno_r, std::string && msg_r ) { msg_r += ": "; return msg_r += strErrno( errno_r ); } void Exception::log( const Exception & excpt_r, const CodeLocation & where_r, const char *const prefix_r ) { INT << where_r << " " << prefix_r << " " << excpt_r.asUserHistory() << endl; } void Exception::log( const char * typename_r, const CodeLocation & where_r, const char *const prefix_r ) { INT << where_r << " " << prefix_r << " exception of type " << typename_r << endl; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/Exception.h000066400000000000000000000355651334444677500173610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Exception.h * */ #ifndef ZYPP_BASE_EXCEPTION_H #define ZYPP_BASE_EXCEPTION_H #include #include #include #include #include #include #include "zypp/base/Errno.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace exception_detail { ///////////////////////////////////////////////////////////////// /** Keep _FILE_, _FUNCTION_ and _LINE_. * Construct it using the \ref ZYPP_EX_CODELOCATION macro. */ struct CodeLocation { friend std::ostream & operator<<( std::ostream & str, const CodeLocation & obj ); /** Ctor */ CodeLocation() : _line( 0 ) {} /** Ctor */ CodeLocation( const std::string & file_r, const std::string & func_r, unsigned line_r ) : _file( file_r ), _func( func_r ), _line( line_r ) {} /** Location as string */ std::string asString() const; private: std::string _file; std::string _func; unsigned _line; }; /////////////////////////////////////////////////////////////////// /** Create CodeLocation object storing the current location. */ //#define ZYPP_EX_CODELOCATION ::zypp::exception_detail::CodeLocation(__FILE__,__FUNCTION__,__LINE__) #define ZYPP_EX_CODELOCATION ::zypp::exception_detail::CodeLocation(( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ ),__FUNCTION__,__LINE__) /** \relates CodeLocation Stream output */ std::ostream & operator<<( std::ostream & str, const CodeLocation & obj ); ///////////////////////////////////////////////////////////////// } // namespace exception_detail /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Exception /** Base class for Exception. * * Exception offers to store a message string passed to the ctor. * Derived classes may provide additional information. Overload * \ref dumpOn to provide a proper error text. * * \li Use \ref ZYPP_THROW to throw exceptions. * \li Use \ref ZYPP_CAUGHT If you caught an exceptions in order to handle it. * \li Use \ref ZYPP_RETHROW to rethrow a caught exception. * * The use of these macros is not mandatory. but \c ZYPP_THROW and * \c ZYPP_RETHROW will adjust the code location information stored in * the Exception. All three macros will drop a line in the logfile. * \code * 43 try * 44 { * 45 try * 46 { * 47 ZYPP_THROW( Exception("Something bad happened.") ); * 48 } * 49 catch ( Exception & excpt ) * 50 { * 51 ZYPP_RETHROW( excpt ); * 52 } * 53 * 54 } * 55 catch ( Exception & excpt ) * 56 { * 57 ZYPP_CAUGHT( excpt ); * 58 } * \endcode * The above produces the following log lines: * \code * Main.cc(main):47 THROW: Main.cc(main):47: Something bad happened. * Main.cc(main):51 RETHROW: Main.cc(main):47: Something bad happened. * Main.cc(main):57 CAUGHT: Main.cc(main):51: Something bad happened. * \endcode * * * Class Exception now offers a history list of message strings. * These messages should describe what lead to the exception. * * The Exceptions message itself is NOT included in the history. * * Rethrow, remembering an old exception: * \code * try * { * .... * } * catch( const Exception & olderr_r ) * { * ZYPP_CAUGHT( olderr_r ) * HighLevelException newerr( "Something failed." ); * newerr.rember( olderr_r ); * ZYPP_THROW( newerr ); * } * \endcode * * Print an Exception followed by it's history if available: * \code * Exception error; * ERR << error << endl << error.historyAsString(); * \endcode * * \todo That's a draft to have a common way of throwing exceptions. * Most probabely we'll finally use blocxx exceptions. Here, but not * in the remaining code of zypp. If we can we should try to wrap * the blocxx macros and typedef the classes in here. **/ class Exception : public std::exception { friend std::ostream & operator<<( std::ostream & str, const Exception & obj ); public: typedef exception_detail::CodeLocation CodeLocation; typedef std::list History; typedef History::const_iterator HistoryIterator; typedef History::size_type HistorySize; /** Default ctor. * Use \ref ZYPP_THROW to throw exceptions. */ Exception(); /** Ctor taking a message. * Use \ref ZYPP_THROW to throw exceptions. */ Exception( const std::string & msg_r ); /** \overload */ Exception( std::string && msg_r ); /** Ctor taking a message and an exception to remember as history * \see \ref remember * Use \ref ZYPP_THROW to throw exceptions. */ Exception( const std::string & msg_r, const Exception & history_r ); /** \overload moving */ Exception( std::string && msg_r, const Exception & history_r ); /** \overload moving */ Exception( const std::string & msg_r, Exception && history_r ); /** \overload moving */ Exception( std::string && msg_r, Exception && history_r ); /** Dtor. */ virtual ~Exception() throw(); /** Return CodeLocation. */ const CodeLocation & where() const { return _where; } /** Exchange location on rethrow. */ void relocate( const CodeLocation & where_r ) const { _where = where_r; } /** Return the message string provided to the ctor. * \note This is not necessarily the complete error message. * The whole error message is provided by \ref asString or * \ref dumpOn. */ const std::string & msg() const { return _msg; } /** Error message provided by \ref dumpOn as string. */ std::string asString() const; /** Translated error message as string suitable for the user. * \see \ref asUserStringHistory */ std::string asUserString() const; public: /** \name History list of message strings. * Maintain a simple list of individual error messages, that lead * to this Exception. The Exceptions message itself is not included * in the history. The History list stores the most recent message * fist. */ //@{ /** Store an other Exception as history. */ void remember( const Exception & old_r ); /** \overload moving */ void remember( Exception && old_r ); /** Add some message text to the history. */ void addHistory( const std::string & msg_r ); /** \overload moving */ void addHistory( std::string && msg_r ); /** \ref addHistory from string container types (oldest first) */ template void addToHistory( const TContainer & msgc_r ) { for ( const std::string & el : msgc_r ) addHistory( el ); } /** \ref addHistory from string container types (oldest first) moving */ template void moveToHistory( TContainer && msgc_r ) { for ( std::string & el : msgc_r ) addHistory( std::move(el) ); } /** Iterator pointing to the most recent message. */ HistoryIterator historyBegin() const { return _history.begin(); } /** Iterator pointing behind the last message. */ HistoryIterator historyEnd() const { return _history.end(); } /** Whether the history list is empty. */ bool historyEmpty() const { return _history.empty(); } /** The size of the history list. */ HistorySize historySize() const { return _history.size(); } /** The history as string. Empty if \ref historyEmpty. * Otherwise: * \code * History: * - most recent message * - 2nd message * ... * - oldest message * \endcode */ std::string historyAsString() const; /** A single (multiline) string composed of \ref asUserString and \ref historyAsString. */ std::string asUserHistory() const; //@} protected: /** Overload this to print a proper error message. */ virtual std::ostream & dumpOn( std::ostream & str ) const; public: /** Make a string from \a errno_r. */ static std::string strErrno( int errno_r ); /** Make a string from \a errno_r and \a msg_r. */ static std::string strErrno( int errno_r, const std::string & msg_r ); /** \overload moving */ static std::string strErrno( int errno_r, std::string && msg_r ); public: /** Drop a logline on throw, catch or rethrow. * Used by \ref ZYPP_THROW macros. */ static void log( const Exception & excpt_r, const CodeLocation & where_r, const char *const prefix_r ); /** \overrload for not-Exception types thrown via ZYPP_THROW */ static void log( const char * typename_r, const CodeLocation & where_r, const char *const prefix_r ); private: mutable CodeLocation _where; std::string _msg; History _history; /** Return message string. */ virtual const char * what() const throw() { return _msg.c_str(); } /** Called by std::ostream & operator\<\<. * Prints \ref CodeLocation and the error message provided by * \ref dumpOn. */ std::ostream & dumpError( std::ostream & str ) const; }; /////////////////////////////////////////////////////////////////// /** \relates Exception Stream output */ std::ostream & operator<<( std::ostream & str, const Exception & obj ); /////////////////////////////////////////////////////////////////// namespace exception_detail { /** SFINAE: Hide template signature unless \a TExcpt is derived from \ref Exception. */ template using EnableIfIsException = typename std::enable_if< std::is_base_of::value, int>::type; /** SFINAE: Hide template signature if \a TExcpt is derived from \ref Exception. */ template using EnableIfNotException = typename std::enable_if< !std::is_base_of::value, int>::type; /** Helper for \ref ZYPP_THROW( Exception ). */ template = 0> void do_ZYPP_THROW( const TExcpt & excpt_r, const CodeLocation & where_r ) __attribute__((noreturn)); template = 0> void do_ZYPP_THROW( const TExcpt & excpt_r, const CodeLocation & where_r ) { excpt_r.relocate( where_r ); Exception::log( excpt_r, where_r, "THROW: " ); throw( excpt_r ); } /** Helper for \ref ZYPP_THROW( not Exception ). */ template = 0> void do_ZYPP_THROW( const TExcpt & excpt_r, const CodeLocation & where_r ) __attribute__((noreturn)); template = 0> void do_ZYPP_THROW( const TExcpt & excpt_r, const CodeLocation & where_r ) { Exception::log( typeid(excpt_r).name(), where_r, "THROW: " ); throw( excpt_r ); } /** Helper for \ref ZYPP_THROW( Exception ). */ template = 0> void do_ZYPP_CAUGHT( const TExcpt & excpt_r, const CodeLocation & where_r ) { Exception::log( excpt_r, where_r, "CAUGHT: " ); } /** Helper for \ref ZYPP_THROW( not Exception ). */ template = 0> void do_ZYPP_CAUGHT( const TExcpt & excpt_r, const CodeLocation & where_r ) { Exception::log( typeid(excpt_r).name(), where_r, "CAUGHT: " ); } /** Helper for \ref ZYPP_THROW( Exception ). */ template = 0> void do_ZYPP_RETHROW( const TExcpt & excpt_r, const CodeLocation & where_r ) __attribute__((noreturn)); template = 0> void do_ZYPP_RETHROW( const TExcpt & excpt_r, const CodeLocation & where_r ) { Exception::log( excpt_r, where_r, "RETHROW: " ); excpt_r.relocate( where_r ); throw; } /** Helper for \ref ZYPP_THROW( not Exception ). */ template = 0> void do_ZYPP_RETHROW( const TExcpt & excpt_r, const CodeLocation & where_r ) __attribute__((noreturn)); template = 0> void do_ZYPP_RETHROW( const TExcpt & excpt_r, const CodeLocation & where_r ) { Exception::log( excpt_r, where_r, "RETHROW: " ); throw; } } // namespace exception_detail /////////////////////////////////////////////////////////////////// /** \defgroup ZYPP_THROW ZYPP_THROW macros * Macros for throwing Exception. * \see \ref zypp::Exception for an example. */ //@{ /** Drops a logline and throws the Exception. */ #define ZYPP_THROW(EXCPT)\ ::zypp::exception_detail::do_ZYPP_THROW( EXCPT, ZYPP_EX_CODELOCATION ) /** Drops a logline telling the Exception was caught (in order to handle it). */ #define ZYPP_CAUGHT(EXCPT)\ ::zypp::exception_detail::do_ZYPP_CAUGHT( EXCPT, ZYPP_EX_CODELOCATION ) /** Drops a logline and rethrows, updating the CodeLocation. */ #define ZYPP_RETHROW(EXCPT)\ ::zypp::exception_detail::do_ZYPP_RETHROW( EXCPT, ZYPP_EX_CODELOCATION ) /** Throw Exception built from a message string. */ #define ZYPP_THROW_MSG(EXCPTTYPE, MSG)\ ZYPP_THROW( EXCPTTYPE( MSG ) ) /** Throw Exception built from errno. */ #define ZYPP_THROW_ERRNO(EXCPTTYPE)\ ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(errno) ) ) /** Throw Exception built from errno provided as argument. */ #define ZYPP_THROW_ERRNO1(EXCPTTYPE, ERRNO)\ ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(ERRNO) ) ) /** Throw Exception built from errno and a message string. */ #define ZYPP_THROW_ERRNO_MSG(EXCPTTYPE, MSG)\ ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(errno,MSG) ) ) /** Throw Exception built from errno provided as argument and a message string */ #define ZYPP_THROW_ERRNO_MSG1(EXCPTTYPE, ERRNO,MSG)\ ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(ERRNO,MSG) ) ) //@} ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_EXCEPTION_H libzypp-17.7.0/zypp/base/ExternalDataSource.cc000066400000000000000000000065021334444677500213030ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ExternalDataSource.cc */ #define _GNU_SOURCE 1 // for ::getline #include #include #include #include #include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/ExternalDataSource.h" using namespace std; namespace zypp { namespace externalprogram { ExternalDataSource::ExternalDataSource (FILE *ifile, FILE *ofile) : inputfile (ifile), outputfile (ofile), linebuffer (0), linebuffer_size (0) { } ExternalDataSource::~ExternalDataSource () { if (linebuffer) free (linebuffer); close (); } bool ExternalDataSource::send (const char *buffer, size_t length) { if (outputfile) { bool success = fwrite (buffer, length, 1, outputfile) != 0; fflush (outputfile); return success; } else return false; } bool ExternalDataSource::send (std::string s) { DBG << "send (" << s << ")"; return send(s.data(), s.length()); } string ExternalDataSource::receiveUpto (char c) { if (inputfile && !feof(inputfile)) { std::ostringstream datas; while ( true ) { int readc = fgetc(inputfile); if (readc == EOF) break; datas << (char)readc; if ((char)readc == c) break; } return datas.str(); } return string(); } size_t ExternalDataSource::receive (char *buffer, size_t length) { if (inputfile) return fread (buffer, 1, length, inputfile); else return 0; } void ExternalDataSource::setBlocking(bool mode) { if(!inputfile) return; int fd = ::fileno(inputfile); if(fd == -1) { ERR << strerror(errno) << endl; return; } int flags = ::fcntl(fd,F_GETFL); if(flags == -1) { ERR << strerror(errno) << endl; return; } if(!mode) flags = flags | O_NONBLOCK; else if(flags & O_NONBLOCK) flags = flags ^ O_NONBLOCK; flags = ::fcntl(fd,F_SETFL,flags); if(flags == -1) { ERR << strerror(errno) << endl; return; } } string ExternalDataSource::receiveLine() { if (inputfile) { ssize_t nread = getline (&linebuffer, &linebuffer_size, inputfile); if (nread == -1) return ""; else return string (linebuffer, nread); } else return ""; } int ExternalDataSource::close () { if (inputfile && inputfile != outputfile) fclose (inputfile); if (outputfile) fclose (outputfile); inputfile = 0; outputfile = 0; return 0; } } // namespace externalprogram } // namespace zypp libzypp-17.7.0/zypp/base/ExternalDataSource.h000066400000000000000000000056251334444677500211520ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ExternalDataSource.h */ #ifndef ZYPP_EXTERNALDATASOURCE_H #define ZYPP_EXTERNALDATASOURCE_H #include #include namespace zypp { namespace externalprogram { /** * @short Bidirectional stream to external data */ class ExternalDataSource { protected: FILE *inputfile; FILE *outputfile; private: char *linebuffer; size_t linebuffer_size; public: /** * Create a new instance. * @param inputfile The stream for reading * @param outputfile The stream for writing * Either can be NULL if no reading/writing is allowed. */ ExternalDataSource(FILE *inputfile = 0, FILE *outputfile = 0); /** * Implicitly close the connection. */ virtual ~ExternalDataSource(); /** * Send some data to the output stream. * @param buffer The data to send * @param length The size of it */ bool send (const char *buffer, size_t length); /** * Send some data down the stream. * @param string The data to send */ bool send (std::string s); /** * Read some data from the input stream. * @param buffer Where to put the data * @param length How much to read at most * Returns the amount actually received */ size_t receive(char *buffer, size_t length); /** * Read one line from the input stream. * Returns the line read, including the terminator. */ std::string receiveLine(); /** * Read characters into a string until character c is * read. C is put at the end of the string. */ std::string receiveUpto(char c); /** * Set the blocking mode of the input stream. * @param mode True if the reader should be blocked waiting for input. * This is the initial default. */ void setBlocking(bool mode); /** * Close the input and output streams. */ virtual int close(); /** * Return the input stream. */ FILE *inputFile() const { return inputfile; } /** * Return the output stream. */ FILE *outputFile() const { return outputfile; } }; } // namespace externalprogram } // namespace zypp #endif // ZYPP_EXTERNALDATASOURCE_H libzypp-17.7.0/zypp/base/Fd.cc000066400000000000000000000040431334444677500160750ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Fd.cc * */ extern "C" { #include #include #include } #include #include "zypp/base/Exception.h" #include "zypp/base/Fd.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : Fd::Fd // METHOD TYPE : Ctor // Fd::Fd( const Pathname & file_r, int open_flags, mode_t mode ) : m_fd( -1 ) { m_fd = open( file_r.asString().c_str(), open_flags, mode ); if ( m_fd == -1 ) ZYPP_THROW_ERRNO_MSG( Exception, std::string("open ")+file_r.asString() ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Fd::close // METHOD TYPE : void // void Fd::close() { if ( m_fd != -1 ) { ::close( m_fd ); m_fd = -1; } } ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/Fd.h000066400000000000000000000054771334444677500157530ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Fd.h * */ #ifndef ZYPP_BASE_FD_H #define ZYPP_BASE_FD_H #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Fd // /** Assert \c close called on open filedescriptor. * \code * ... * scoped_ptr fd; // calls close when going out of scope * try { * fd.reset( new Fd( "/some/file" ) ); * } catch ( ... ) { * // open failed. * } * read( fd->fd(), ... ), * \endcode * * \ingroup g_RAII * \todo It's dumb. Openflags and more related functions (read/write..) * could be added. */ class Fd { NON_COPYABLE( Fd ); public: /** Ctor opens file. * \throw EXCEPTION If open fails. */ Fd( const Pathname & file_r, int open_flags, mode_t mode = 0 ); /** Move ctor */ Fd( Fd && rhs ) : m_fd( -1 ) { std::swap( m_fd, rhs.m_fd ); } /** Move assign */ Fd & operator=( Fd && rhs ) { if ( this != &rhs ) std::swap( m_fd, rhs.m_fd ); return *this; } /** Dtor closes file. */ ~Fd() { close(); } /** Explicitly close the file. */ void close(); /** Test for valid filedescriptor. */ bool isOpen() const { return m_fd != -1; } /** Return the filedescriptor. */ int fd() const { return m_fd; } /** Return the filedescriptor. */ int operator*() const { return m_fd; } private: /** The filedescriptor. */ int m_fd; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_FD_H libzypp-17.7.0/zypp/base/Flags.h000066400000000000000000000202701334444677500164420ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Flags.h * */ #ifndef ZYPP_BASE_FLAGS_H #define ZYPP_BASE_FLAGS_H #include "zypp/base/String.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Flags // /** A type-safe way of storing OR-combinations of enum values (like QTs QFlags). * \see QFlags Class Reference * \code * class RpmDb * { * public: * enum DbStateInfoBits { * DbSI_NO_INIT = 0x0000, * DbSI_HAVE_V4 = 0x0001, * DbSI_MADE_V4 = 0x0002, * DbSI_MODIFIED_V4 = 0x0004, * DbSI_HAVE_V3 = 0x0008, * DbSI_HAVE_V3TOV4 = 0x0010, * DbSI_MADE_V3TOV4 = 0x0020 * }; * * ZYPP_DECLARE_FLAGS(DbStateInfo,DbStateInfoBits); * }; * ZYPP_DECLARE_OPERATORS_FOR_FLAGS(RpmDb::DbStateInfo); * * ... * enum Other { OTHERVAL = 13 }; * { * XRpmDb::DbStateInfo s; * s = XRpmDb::DbSI_MODIFIED_V4|XRpmDb::DbSI_HAVE_V4; * // s |= OTHERVAL; // As desired: it does not compile * } * \endcode */ template class Flags { public: typedef TEnum Enum; ///< The underlying enum type typedef typename std::underlying_type::type Integral; ///< The underlying integral type public: constexpr Flags() : _val( 0 ) {} constexpr Flags( Enum flag_r ) : _val( integral(flag_r) ) {} constexpr explicit Flags( Integral flag_r ) : _val( flag_r ) {} constexpr static Flags none() { return Flags( Integral(0) ); } constexpr static Flags all() { return Flags( ~Integral(0) ); } constexpr bool isNone() const { return _val == Integral(0); } constexpr bool isAll() const { return _val == ~Integral(0); } Flags & operator&=( Flags rhs ) { _val &= integral(rhs); return *this; } Flags & operator&=( Enum rhs ) { _val &= integral(rhs); return *this; } Flags & operator|=( Flags rhs ) { _val |= integral(rhs); return *this; } Flags & operator|=( Enum rhs ) { _val |= integral(rhs); return *this; } Flags & operator^=( Flags rhs ) { _val ^= integral(rhs); return *this; } Flags & operator^=( Enum rhs ) { _val ^= integral(rhs); return *this; } public: constexpr operator Integral() const { return _val; } constexpr Flags operator&( Flags rhs ) const { return Flags( _val & integral(rhs) ); } constexpr Flags operator&( Enum rhs ) const { return Flags( _val & integral(rhs) ); } constexpr Flags operator|( Flags rhs ) const { return Flags( _val | integral(rhs) ); } constexpr Flags operator|( Enum rhs ) const { return Flags( _val | integral(rhs) ); } constexpr Flags operator^( Flags rhs ) const { return Flags( _val ^ integral(rhs) ); } constexpr Flags operator^( Enum rhs ) const { return Flags( _val ^ integral(rhs) ); } constexpr Flags operator~() const { return Flags( ~_val ); } constexpr bool operator==( Enum rhs ) const { return( _val == integral(rhs) ); } constexpr bool operator!=( Enum rhs ) const { return( _val != integral(rhs) ); } public: Flags & setFlag( Flags flag_r, bool newval_r ) { return( newval_r ? setFlag(flag_r) : unsetFlag(flag_r) ); } Flags & setFlag( Enum flag_r, bool newval_r ) { return( newval_r ? setFlag(flag_r) : unsetFlag(flag_r) ); } Flags & setFlag( Flags flag_r ) { _val |= integral(flag_r); return *this; } Flags & setFlag( Enum flag_r ) { _val |= integral(flag_r); return *this; } Flags & unsetFlag( Flags flag_r ) { _val &= ~integral(flag_r); return *this; } Flags & unsetFlag( Enum flag_r ) { _val &= ~integral(flag_r); return *this; } constexpr bool testFlag( Flags flag_r ) const { return testFlag( integral(flag_r) ); } constexpr bool testFlag( Enum flag_r ) const { return testFlag( integral(flag_r) ); } private: constexpr bool testFlag( Integral flag ) const { return flag ? ( _val & flag ) == flag : !_val; } constexpr static Integral integral( Flags obj ) { return obj._val; } constexpr static Integral integral( Enum obj ) { return static_cast(obj); } Integral _val; }; /////////////////////////////////////////////////////////////////// /** \relates Flags Stringify * Build a string of OR'ed names of each flag value set in \a flag_r. * Remaining bits in \a flag_r are added as hexstring. * \code * enum E { a=1, b=2, c=4 }; * ZYPP_DECLARE_FLAGS( E, MyFlags ); * * MyFlags f = a|b|c; * cout << f << " = " << stringify( f, { {a,"A"}, {b,"B"} } ) << endl; * // prints: 0x0007 = [A|B|0x4] * \endcode */ template std::string stringify( const Flags & flag_r, const std::initializer_list,std::string> > & flaglist_r = {}, std::string intro_r = "[", std::string sep_r = "|", std::string extro_r = "]" ) { std::string ret( std::move(intro_r) ); std::string sep; Flags mask; for ( const auto & pair : flaglist_r ) { if ( flag_r.testFlag( pair.first ) ) { mask |= pair.first; ret += sep; ret += pair.second; if ( sep.empty() && !sep_r.empty() ) { sep = std::move(sep_r); } } } mask = flag_r & ~mask; if ( mask ) { ret += sep; ret += str::hexstring( mask, 0 ); } ret += std::move(extro_r); return ret; } template inline std::ostream & operator<<( std::ostream & str, const Flags & obj ) { return str << str::hexstring(obj); } template inline std::ostream & operator<<( std::ostream & str, const typename Flags::Enum & obj ) { return str << Flags(obj); } /** \relates Flags */ #define ZYPP_DECLARE_FLAGS(Name,Enum) typedef zypp::base::Flags Name /** \relates Flags */ #define ZYPP_DECLARE_OPERATORS_FOR_FLAGS(Name) \ inline constexpr bool operator==( Name::Enum lhs, Name rhs ) { return( rhs == lhs ); } \ inline constexpr bool operator!=(Name:: Enum lhs, Name rhs ) { return( rhs != lhs ); } \ inline constexpr Name operator&( Name::Enum lhs, Name::Enum rhs ) { return Name( lhs ) & rhs; } \ inline constexpr Name operator&( Name::Enum lhs, Name rhs ) { return rhs & lhs; } \ inline constexpr Name operator|( Name::Enum lhs, Name::Enum rhs ) { return Name( lhs ) | rhs; } \ inline constexpr Name operator|( Name::Enum lhs, Name rhs ) { return rhs | lhs; } \ inline constexpr Name operator^( Name::Enum lhs, Name::Enum rhs ) { return Name( lhs ) ^ rhs; } \ inline constexpr Name operator^( Name::Enum lhs, Name rhs ) { return rhs ^ lhs; } \ inline constexpr Name operator~( Name::Enum lhs ) { return ~Name( lhs ); } /** \relates Flags */ #define ZYPP_DECLARE_FLAGS_AND_OPERATORS(Name,Enum) \ ZYPP_DECLARE_FLAGS(Name,Enum); \ ZYPP_DECLARE_OPERATORS_FOR_FLAGS(Name) ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_FLAGS_H libzypp-17.7.0/zypp/base/Function.h000066400000000000000000000067351334444677500172050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Function.h * */ #ifndef ZYPP_BASE_FUNCTION_H #define ZYPP_BASE_FUNCTION_H #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /* http://www.boost.org/doc/html/function.html The Boost.Function library contains a family of class templates that are function object wrappers. The notion is similar to a generalized callback. It shares features with function pointers in that both define a call interface (e.g., a function taking two integer arguments and returning a floating-point value) through which some implementation can be called, and the implementation that is invoked may change throughout the course of the program. Generally, any place in which a function pointer would be used to defer a call or make a callback, Boost.Function can be used instead to allow the user greater flexibility in the implementation of the target. Targets can be any 'compatible' function object (or function pointer), meaning that the arguments to the interface designated by Boost.Function can be converted to the arguments of the target function object. */ using boost::function; /* http://www.boost.org/libs/bind/bind.html boost::bind is a generalization of the standard functions std::bind1st and std::bind2nd. It supports arbitrary function objects, functions, function pointers, and member function pointers, and is able to bind any argument to a specific value or route input arguments into arbitrary positions. bind does not place any requirements on the function object; in particular, it does not need the result_type, first_argument_type and second_argument_type standard typedefs. */ using boost::bind; /* http://www.boost.org/doc/html/ref.html The Ref library is a small library that is useful for passing references to function templates (algorithms) that would usually take copies of their arguments. It defines the class template boost::reference_wrapper, the two functions boost::ref and boost::cref that return instances of boost::reference_wrapper, and the two traits classes boost::is_reference_wrapper and boost::unwrap_reference. The purpose of boost::reference_wrapper is to contain a reference to an object of type T. It is primarily used to "feed" references to function templates (algorithms) that take their parameter by value. To support this usage, boost::reference_wrapper provides an implicit conversion to T&. This usually allows the function templates to work on references unmodified. */ using boost::ref; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_FUNCTION_H libzypp-17.7.0/zypp/base/Functional.h000066400000000000000000000321131334444677500175070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Functional.h * */ #ifndef ZYPP_BASE_FUNCTIONAL_H #define ZYPP_BASE_FUNCTIONAL_H #include #include "zypp/base/Function.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /* http://www.boost.org/libs/functional/mem_fun.html The header functional.hpp includes improved versions of the full range of member function adapters from the C++ Standard Library. */ using boost::mem_fun; using boost::mem_fun_ref; /////////////////////////////////////////////////////////////////// namespace functor { ///////////////////////////////////////////////////////////////// /** An unary functor forwarding to some other TFunctor &. * \ingroup g_Functor * * Most algorithms take functor arguments by value. That's inconvenient * if the functor wants to collect and return data. Creating and * passing a \ref FunctorRef to the algorithm, may help you out of this. * * \code * // Counts invokations of operator(). * template * struct Counter : public std::unary_function * { * void operator()( Tp ) * { ++_value; } * * Counter() : _value( 0 ) {} * * unsigned _value; * }; * * std::set c; * Counter counter; * // Invokations of FunctorRef are forwarded to counter: * std::for_each( c.begin, c.end(), * // currently you must specify the * // operator() signature: * functorRef(counter) * ); * \endcode * * \note FunctorRef must be able to deduce the signature of * \c TFunctor::operator(). This is currently not automated, * so you must specify the operator() signature as template * arguments. * * \note The order is (this * differs from std::, where the result comes last). * * \todo drop it an use boost::ref */ ///////////////////////////////////////////////////////////////// namespace functor_detail { template struct FunctorRef0 { FunctorRef0( TFunctor & f_r ) : _f( f_r ) {} res_type operator()() const { return _f(); } private: TFunctor & _f; }; template struct FunctorRef1 : public std::unary_function { FunctorRef1( TFunctor & f_r ) : _f( f_r ) {} res_type operator()( arg1_type a1 ) const { return _f( a1 ); } private: TFunctor & _f; }; template struct FunctorRef2 : public std::binary_function { FunctorRef2( TFunctor & f_r ) : _f( f_r ) {} res_type operator()( arg1_type a1, arg2_type a2 ) const { return _f( a1, a2 ); } private: TFunctor & _f; }; struct nil {}; } ///////////////////////////////////////////////////////////////// /** A binary \ref FunctorRef. * Create it using \ref functorRef convenience function. */ template struct FunctorRef : public functor_detail::FunctorRef2 { FunctorRef( TFunctor & f_r ) : functor_detail::FunctorRef2( f_r ) {} }; /** A unary \ref FunctorRef. * Create it using \ref functorRef convenience function. */ template struct FunctorRef : public functor_detail::FunctorRef1 { FunctorRef( TFunctor & f_r ) : functor_detail::FunctorRef1( f_r ) {} }; /** A nullary \ref FunctorRef. * Create it using \ref functorRef convenience function. */ template struct FunctorRef : public functor_detail::FunctorRef0 { FunctorRef( TFunctor & f_r ) : functor_detail::FunctorRef0( f_r ) {} }; /** Convenience function creating a binary \ref FunctorRef. */ template FunctorRef functorRef( TFunctor & f_r ) { return FunctorRef( f_r ); } template FunctorRef functorRef( TFunctor & f_r ) { return FunctorRef( f_r ); } template FunctorRef functorRef( TFunctor & f_r ) { return FunctorRef( f_r ); } ///////////////////////////////////////////////////////////////// /** \defgroup LOGICALFILTERS Functors for building compex queries. * \ingroup g_Functor * * Some logical functors to build more complex queries: * * \li \ref True and \ref False. No supprise, they always return * \c true or \c false. * \li \ref Not\. TCondition is a functor, and * it's result is inverted. * \li \ref Chain\. \c TACondition and \c TBCondition * are functors, and Chain evaluates TACondition && TBCondition. * * As it's no fun to get and write the correct template arguments, * convenience functions creating the correct functor are provided. * * \li \c true_c and \c false_c. (provided just to match the schema) * \li \c not_c. Takes a functor as argument and returns the appropriate * \ref Not functor. * \li \c chain. Takes two functors and returns the appropriate * \ref Cain functor. * * \code * struct Print; // functor printing elements * struct Count; // functor counting number of elements * * std::for_each( c.begin(), c.end(), * chain( Print(), Count() ) ); * \endcode */ //@{ /* functor that always returns a copied value */ template struct Constant { Constant( const TConst &value ) : _value(value) {} template TConst operator()( Tp ) const { return _value; } TConst operator()() const { return _value; } TConst _value; }; template inline Constant constant( const TConst &value ) { return Constant(value); } /** Logical functor always \c true. */ struct True { template bool operator()( Tp ) const { return true; } }; /** Convenience function for creating a True. */ inline True true_c() { return True(); } /** Logical functor always \c false. */ struct False { template bool operator()( Tp ) const { return false; } }; /** Convenience function for creating a False. */ inline False false_c() { return False(); } /** Logical functor inverting \a TCondition. */ template struct Not { Not( TCondition cond_r ) : _cond( cond_r ) {} template bool operator()( Tp t ) const { return ! _cond( t ); } TCondition _cond; }; /** Convenience function for creating a Not from \a TCondition. */ template inline Not not_c( TCondition cond_r ) { return Not( cond_r ); } /** Logical functor chaining \a TACondition \c OR \a TBCondition. */ template struct Or { Or( TACondition conda_r, TBCondition condb_r ) : _conda( conda_r ) , _condb( condb_r ) {} template bool operator()( Tp t ) const { return _conda( t ) || _condb( t ); } TACondition _conda; TBCondition _condb; }; /** Convenience function for creating a Or from two conditions * \a conda_r OR \a condb_r. */ template inline Or or_c( TACondition conda_r, TBCondition condb_r ) { return Or( conda_r, condb_r ); } /** Logical functor chaining \a TACondition \c AND \a TBCondition. */ template struct Chain { Chain( TACondition conda_r, TBCondition condb_r ) : _conda( conda_r ) , _condb( condb_r ) {} template bool operator()( Tp t ) const { return _conda( t ) && _condb( t ); } TACondition _conda; TBCondition _condb; }; /** Convenience function for creating a Chain from two conditions * \a conda_r and \a condb_r. */ template inline Chain chain( TACondition conda_r, TBCondition condb_r ) { return Chain( conda_r, condb_r ); } //@} /////////////////////////////////////////////////////////////////// /** \defgroup ACTIONFUNCTOR * \ingroup g_Functor */ //@{ /** Strore the 1st result found in the variable passed to the ctor. * \code * PoolItem result; * invokeOnEach( pool.byIdentBegin(installed), pool.byIdentEnd(installed), * filter::SameItem( installed ), * getFirst( result ) ); * \endcode */ template struct GetFirst { GetFirst( Tp & result_r ) : _result( &result_r ) {} bool operator()( const Tp & val_r ) { *_result = val_r; return false; } private: Tp * _result; }; /** Convenience function for creating \ref GetFirst. */ template GetFirst getFirst( Tp & result_r ) { return GetFirst( result_r ); } /** Strore the last result found in the variable passed to the ctor. */ template struct GetLast { GetLast( Tp & result_r ) : _result( &result_r ) {} bool operator()( const Tp & val_r ) { *_result = val_r; return true; } private: Tp * _result; }; /** Convenience function for creating \ref GetLast. */ template GetLast getLast( Tp & result_r ) { return GetLast( result_r ); } /** Store all results found to some output_iterator. * \code * std::vector result; * parser::ProductFileReader::scanDir( functor::getAll( std::back_inserter( result ) ), sysRoot / "etc/products.d" ); * \endcode */ template struct GetAll { GetAll( TOutputIterator result_r ) : _result( result_r ) {} template bool operator()( const Tp & val_r ) const { *(_result++) = val_r; return true; } private: mutable TOutputIterator _result; }; /** Convenience function for creating \ref GetAll. */ template GetAll getAll( TOutputIterator result_r ) { return GetAll( result_r ); } //@} /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace functor /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_FUNCTIONAL_H libzypp-17.7.0/zypp/base/Gettext.cc000066400000000000000000000042511334444677500171710ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Gettext.cc * */ #ifdef HAVE_CONFIG_H #include "config.h" #endif extern "C" { #include } #include "zypp/base/Gettext.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace gettext { ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// // TEXTDOMAIN and LOCALEDIR must be provided via config.h // or at compile time using -D. ///////////////////////////////////////////////////////////////// inline void assertInit() { static bool initialized = false; if ( ! initialized ) { ::bindtextdomain( TEXTDOMAIN, LOCALEDIR ); ::bind_textdomain_codeset( TEXTDOMAIN, "UTF-8" ); initialized = true; } } const char * dgettext( const char * msgid ) { assertInit(); return ::dgettext( TEXTDOMAIN, msgid ); } const char * dngettext( const char * msgid1, const char * msgid2, unsigned long n ) { assertInit(); return ::dngettext( TEXTDOMAIN, msgid1, msgid2, n ); } ///////////////////////////////////////////////////////////////// } // namespace gettext /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/Gettext.h000066400000000000000000000037531334444677500170410ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Gettext.h * * Interface to gettext. * */ #ifndef ZYPP_BASE_GETTEXT_H #define ZYPP_BASE_GETTEXT_H /** Just tag text for translation. */ #define N_(MSG) MSG #ifdef ZYPP_DLL //defined if zypp is compiled as DLL /** Return translated text. */ #define _(MSG) ::zypp::gettext::dgettext( MSG ) /** Return translated text (plural form). */ #define PL_(MSG1,MSG2,N) ::zypp::gettext::dngettext( MSG1, MSG2, N ) #else #define _(MSG) ::gettext( MSG ) #define PL_(MSG1,MSG2,N) ::ngettext( MSG1, MSG2, N ) #endif /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace gettext { ///////////////////////////////////////////////////////////////// /** Return translated text. */ const char * dgettext( const char * msgid ); /** Return translated text (plural form). */ const char * dngettext( const char * msgid1, const char * msgid2, unsigned long n ); ///////////////////////////////////////////////////////////////// } // namespace gettext /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_GETTEXT_H libzypp-17.7.0/zypp/base/GzStream.cc000066400000000000000000000260661334444677500173110ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | | | __ __ ____ _____ ____ | | \ \ / /_ _/ ___|_ _|___ \ | | \ V / _` \___ \ | | __) | | | | | (_| |___) || | / __/ | | |_|\__,_|____/ |_| |_____| | | | | core system | | (C) SuSE Linux Products GmbH | \----------------------------------------------------------------------/ File: GzStream.cc Author: Michael Andres Maintainer: Michael Andres Purpose: Streams reading and writing gzip files. /-*/ #include #include #include "zypp/base/LogControl.h" #include "zypp/base/LogTools.h" using std::endl; #include "zypp/base/GzStream.h" #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace gzstream_detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZlibError // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ZlibError::strerror // METHOD TYPE : std::string // std::string ZlibError::strerror() const { std::string ret = ( _zError ? ::zError( _zError ) : "OK" ); if ( _zError == Z_ERRNO ) ret += std::string("(") + ::strerror( _errno ) + ")"; return ret; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : fgzstreambuf // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::open // METHOD TYPE : fgzstreambuf * // fgzstreambuf * fgzstreambuf::open( const char * name_r, std::ios_base::openmode mode_r ) { fgzstreambuf * ret = NULL; if ( ! isOpen() ) { // we expect gzdopen to handle errors of ::open if ( mode_r == std::ios_base::in ) { _fd = ::open( name_r, O_RDONLY | O_CLOEXEC ); _file = gzdopen( _fd, "rb" ); } else if ( mode_r == std::ios_base::out ) { _fd = ::open( name_r, O_WRONLY|O_CREAT|O_CLOEXEC, 0666 ); _file = gzdopen( _fd, "wb" ); } // else: not supported if ( isOpen() ) { // Store mode and initialize the internal buffer. _mode = mode_r; if ( inReadMode() ) { setp( NULL, NULL ); setg( &(_buffer[0]), &(_buffer[0]), &(_buffer[0]) ); } else { setp( &(_buffer[0]), &(_buffer[_buffer.size()-1]) ); setg( NULL, NULL, NULL ); } ret = this; } else setZError(); } return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::close // METHOD TYPE : fgzstreambuf * // fgzstreambuf * fgzstreambuf::close() { fgzstreambuf * ret = NULL; if ( isOpen() ) { bool failed = false; if ( sync() != 0 ) failed = true; // it also closes _fd, fine int r = gzclose( _file ); if ( r != Z_OK ) { failed = true; // DONT call setZError() here, as _file is no longer valid _error._zError = r; _error._errno = errno; } // Reset everything _fd = -1; _file = NULL; _mode = std::ios_base::openmode(0); setp( NULL, NULL ); setg( NULL, NULL, NULL ); if ( ! failed ) ret = this; } return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::sync // METHOD TYPE : int // int fgzstreambuf::sync() { int ret = 0; if ( pbase() < pptr() ) { const int_type res = overflow(); if ( traits_type::eq_int_type( res, traits_type::eof() ) ) ret = -1; } return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::overflow // METHOD TYPE : fgzstreambuf::int_type // fgzstreambuf::int_type fgzstreambuf::overflow( int_type c ) { int_type ret = traits_type::eof(); if ( inWriteMode() ) { if ( ! traits_type::eq_int_type( c, traits_type::eof() ) ) { *pptr() = traits_type::to_char_type( c ); pbump(1); } if ( pbase() <= pptr() ) { if ( zWriteFrom( pbase(), pptr() - pbase() ) ) { setp( &(_buffer[0]), &(_buffer[_buffer.size()-1]) ); ret = traits_type::not_eof( c ); } // else: error writing the file } } return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::underflow // METHOD TYPE : fgzstreambuf::int_type // fgzstreambuf::int_type fgzstreambuf::underflow() { int_type ret = traits_type::eof(); if ( inReadMode() ) { if ( gptr() < egptr() ) return traits_type::to_int_type( *gptr() ); const std::streamsize got = zReadTo( &(_buffer[0]), _buffer.size() ); if ( got > 0 ) { setg( &(_buffer[0]), &(_buffer[0]), &(_buffer.data()[got]) ); ret = traits_type::to_int_type( *gptr() ); } else if ( got == 0 ) { // EOF setg( &(_buffer[0]), &(_buffer[0]), &(_buffer[0]) ); } // else: error reading the file } return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::zReadTo // METHOD TYPE : std::streamsize // std::streamsize fgzstreambuf::zReadTo( char * buffer_r, std::streamsize maxcount_r ) { int read = gzread( _file, buffer_r, maxcount_r ); if ( read < 0 ) setZError(); return read; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::zWriteFrom // METHOD TYPE : bool // bool fgzstreambuf::zWriteFrom( const char * buffer_r, std::streamsize count_r ) { int written = 0; if ( count_r ) { if ( (written = gzwrite( _file, buffer_r, count_r )) == 0 ) setZError(); } return( written == count_r ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::zSeekTo // METHOD TYPE : fgzstreambuf::pos_type // fgzstreambuf::pos_type fgzstreambuf::zSeekTo( off_type off_r, std::ios_base::seekdir way_r ) { z_off_t ret = gzseek( _file, off_r, way_r ); if ( ret == -1 ) setZError(); return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::zTell // METHOD TYPE : fgzstreambuf::pos_type // fgzstreambuf::pos_type fgzstreambuf::zTell() { z_off_t ret = gztell( _file ); if ( ret == -1 ) setZError(); return ret; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : fgzstreambuf::seekTo // METHOD TYPE : fgzstreambuf::pos_type // fgzstreambuf::pos_type fgzstreambuf::seekTo( off_type off_r, std::ios_base::seekdir way_r ) { pos_type ret = pos_type(off_type(-1)); if ( isOpen() ) { if ( inWriteMode() ) { if ( sync() == 0 ) ret = zSeekTo( off_r, way_r ); } else { off_type zegptr = zTell(); if ( zegptr != off_type(-1) ) { if ( way_r == std::ios_base::end ) { // Invalidate buffer and seek. // XXX improve by transformation into ios_base::beg // to see whether we stay inside the buffer. setg( &(_buffer[0]), &(_buffer[0]), &(_buffer[0]) ); ret = zSeekTo( off_r, way_r ); } else { // Transform into ios_base::beg and seek. off_type zeback = zegptr - ( egptr() - eback() ); off_type zgptr = zegptr - ( egptr() - gptr() ); off_type zngptr = off_r; if ( way_r == std::ios_base::cur ) { zngptr += zgptr; way_r = std::ios_base::beg; } if ( way_r == std::ios_base::beg ) { if ( zeback <= zngptr && zngptr <= zegptr ) { // Still inside buffer, adjust gptr and // calculate new position. setg( eback(), eback() + (zngptr-zeback), egptr() ); ret = pos_type(zngptr); } else { // Invalidate buffer and seek. setg( &(_buffer[0]), &(_buffer[0]), &(_buffer[0]) ); ret = zSeekTo( off_r, way_r ); } } } } } } return ret; } fgzstreambuf::pos_type fgzstreambuf::compressed_tell() const { off_t pos = lseek (_fd, 0, SEEK_CUR); // hopefully the conversion is ok return pos; } ///////////////////////////////////////////////////////////////// } // namespace gzstream_detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/GzStream.h000066400000000000000000000172041334444677500171450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | | | __ __ ____ _____ ____ | | \ \ / /_ _/ ___|_ _|___ \ | | \ V / _` \___ \ | | __) | | | | | (_| |___) || | / __/ | | |_|\__,_|____/ |_| |_____| | | | | core system | | (C) SuSE Linux Products GmbH | \----------------------------------------------------------------------/ File: GzStream.h Author: Michael Andres Maintainer: Michael Andres Purpose: Streams reading and writing gzip files. /-*/ #ifndef ZYPP_BASE_GZSTREAM_H #define ZYPP_BASE_GZSTREAM_H #include #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace gzstream_detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZlibError /** * @short Helper class to ship zlib errors. **/ struct ZlibError { /** * The zlib error code **/ int _zError; /** * errno, valid if zError is Z_ERRNO **/ int _errno; ZlibError() : _zError( 0 ), _errno( 0 ) {} /** * Return string describing the zlib error code **/ std::string strerror() const; }; /////////////////////////////////////////////////////////////////// /** \relates ZlibError Stream output. */ inline std::ostream & operator<<( std::ostream & str, const ZlibError & obj ) { return str << obj.strerror(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : fgzstreambuf /** * @short Streambuffer reading or writing gzip files. * * Read and write mode are mutual exclusive. Seek is supported, * but zlib restrictions appy (only forward seek in write mode; * backward seek in read mode might be expensive).Putback is not * supported. * * Reading plain (no gziped) files is possible as well. * * This streambuf is used in @ref ifgzstream and @ref ofgzstream. **/ class fgzstreambuf : public std::streambuf { public: fgzstreambuf( unsigned bufferSize_r = 512 ) : _fd( -1 ) ,_file( NULL ) , _mode( std::ios_base::openmode(0) ) , _buffer( (bufferSize_r?bufferSize_r:1), 0 ) {} virtual ~fgzstreambuf() { close(); } bool isOpen() const { return _file; } bool inReadMode() const { return( _mode == std::ios_base::in ); } bool inWriteMode() const { return( _mode == std::ios_base::out ); } fgzstreambuf * open( const char * name_r, std::ios_base::openmode mode_r = std::ios_base::in ); fgzstreambuf * close(); //! Tell the file position in the compressed file. //! Analogous to tell(2), complementary to gztell. pos_type compressed_tell() const; /** * The last error returned fron zlib. **/ ZlibError zError() const { return _error; } protected: virtual int sync(); virtual int_type overflow( int_type c = traits_type::eof() ); virtual int_type underflow(); virtual pos_type seekoff( off_type off_r, std::ios_base::seekdir way_r, std::ios_base::openmode /* ignored */ ) { return seekTo( off_r, way_r ); } virtual pos_type seekpos( pos_type pos_r, std::ios_base::openmode /* ignored */ ) { return seekTo( off_type(pos_r), std::ios_base::beg ); } private: typedef std::vector buffer_type; //! file descriptor of the compressed file int _fd; gzFile _file; std::ios_base::openmode _mode; buffer_type _buffer; ZlibError _error; private: void setZError() { gzerror( _file, &_error._zError ); } std::streamsize zReadTo( char * buffer_r, std::streamsize maxcount_r ); bool zWriteFrom( const char * buffer_r, std::streamsize count_r ); pos_type zSeekTo( off_type off_r, std::ios_base::seekdir way_r ); pos_type zTell(); pos_type seekTo( off_type off_r, std::ios_base::seekdir way_r ); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : fXstream /** * @short Common template to define ifgzstream/ofgzstream * reading/writing gzip files. * * Don't use fXstream directly, but @ref ifgzstream or * @ref ofgzstream. fXstream is just to avoid almost * duplicate code. **/ template class fXstream : public TBStream { public: typedef gzstream_detail::ZlibError ZlibError; typedef TBStream stream_type; typedef TStreamBuf streambuf_type; fXstream() : stream_type( NULL ) { this->init( &_streambuf ); } explicit fXstream( const char * file_r ) : stream_type( NULL ) { this->init( &_streambuf ); this->open( file_r ); } virtual ~fXstream() {} bool is_open() const { return _streambuf.isOpen(); } void open( const char * file_r ) { if ( !_streambuf.open( file_r, defMode(*this) ) ) this->setstate(std::ios_base::failbit); else this->clear(); } void close() { if ( !_streambuf.close() ) this->setstate(std::ios_base::failbit); } /** * The last error returned retuned fron zlib. **/ ZlibError zError() const { return _streambuf.zError(); } //! Similar to ios::rdbuf. //! But it returns our specific type, not the generic streambuf *. const streambuf_type& getbuf() const { return _streambuf; } private: streambuf_type _streambuf; std::ios_base::openmode defMode( const std::istream & str_r ) { return std::ios_base::in; } std::ios_base::openmode defMode( const std::ostream & str_r ) { return std::ios_base::out; } }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace gzstream_detail /////////////////////////////////////////////////////////////////// /** * istream reading gzip files as well as plain files. **/ typedef gzstream_detail::fXstream ifgzstream; /** * ostream writing gzip files. **/ typedef gzstream_detail::fXstream ofgzstream; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_GZSTREAM_H libzypp-17.7.0/zypp/base/Hash.h000066400000000000000000000033641334444677500162760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Hash.h * */ #ifndef ZYPP_BASE_HASH_H #define ZYPP_BASE_HASH_H #include #include #include /** Define hash function for id based classes. * Class has to provide a method \c id() retuning a unique number. * \code * // in global namespace define: * ZYPP_DEFINE_ID_HASHABLE( ::zypp::sat::Solvable ) * \endcode */ #define ZYPP_DEFINE_ID_HASHABLE(C) \ namespace std { \ template struct hash; \ template<> struct hash \ { \ size_t operator()( const C & __s ) const \ { return __s.id(); } \ }; \ } /////////////////////////////////////////////////////////////////// namespace std { /** clone function for RW_pointer */ template inline unordered_set * rwcowClone( const std::unordered_set * rhs ) { return new std::unordered_set( *rhs ); } /** clone function for RW_pointer */ template inline std::unordered_map * rwcowClone( const std::unordered_map * rhs ) { return new std::unordered_map( *rhs ); } } // namespace std /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_HASH_H libzypp-17.7.0/zypp/base/IOStream.cc000066400000000000000000000111201334444677500172210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/IOStream.cc * */ #include #include #include //#include "zypp/base/Logger.h" #include "zypp/base/IOStream.h" #include "zypp/base/String.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace iostr { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : getline ** FUNCTION TYPE : std::string */ std::string getline( std::istream & str ) { static const unsigned tmpBuffLen = 1024; static char tmpBuff[tmpBuffLen]; std::string ret; do { str.clear(); str.getline( tmpBuff, tmpBuffLen ); // always writes '\0' terminated ret += tmpBuff; } while( str.rdstate() == std::ios::failbit ); return ret; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : EachLine // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : EachLine::EachLine // METHOD TYPE : Ctor // EachLine::EachLine( std::istream & str_r, unsigned lineNo_r ) : _str( str_r ) , _lineStart( -1 ) , _lineNo( lineNo_r ) , _valid( true ) { next(); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : EachLine::next // METHOD TYPE : bool // bool EachLine::next() { if ( ! _valid ) { return false; } if ( ! _str ) // usg: saw EOF in previous read { _line.clear(); return(_valid = false); } _lineStart = _str.tellg(); _line = iostr::getline( _str ); ++_lineNo; if ( _str.fail() || _str.bad() ) { _line.clear(); return(_valid = false); } return(_valid = true); } /////////////////////////////////////////////////////////////////// // forEachLine /////////////////////////////////////////////////////////////////// int forEachLine( std::istream & str_r, function consume_r ) { int lineno = 0; while ( str_r ) { std::string line( getline( str_r ) ); if ( ! (str_r.fail() || str_r.bad()) ) { // line contains valid data to be consumed. ++lineno; if ( consume_r && ! consume_r( lineno, line ) ) { lineno = -lineno; break; } } } return lineno; } // MPL checks to assert equal values for PF_?TRIM and str::?TRIM BOOST_MPL_ASSERT_RELATION( int(PF_LTRIM), ==, int(str::L_TRIM) ); BOOST_MPL_ASSERT_RELATION( int(PF_RTRIM), ==, int(str::R_TRIM) ); int simpleParseFile( std::istream & str_r, ParseFlags flags_r, function consume_r ) { return forEachLine( str_r, [&]( int num_r, std::string line_r )->bool { if ( ! consume_r ) return true; if ( flags_r ) { if ( flags_r & PF_TRIM ) line_r = str::trim( line_r, str::Trim( unsigned(flags_r & PF_TRIM) ) ); if ( flags_r & ~PF_TRIM ) { const char* firstNW = line_r.c_str(); while ( *firstNW == ' ' || *firstNW == '\t' ) ++firstNW; switch ( *firstNW ) { case '\0': if ( flags_r & PF_SKIP_EMPTY ) return true; break; case '#': if ( flags_r & PF_SKIP_SHARP_COMMENT ) return true; break; } } } return consume_r( num_r, line_r ); } ); } ///////////////////////////////////////////////////////////////// } // namespace iostr /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/IOStream.h000066400000000000000000000151151334444677500170730ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/IOStream.h * */ #ifndef ZYPP_BASE_IOSTREAM_H #define ZYPP_BASE_IOSTREAM_H #include #include #include "zypp/base/Flags.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/base/NonCopyable.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /** Iostream related utilities. */ namespace iostr { ///////////////////////////////////////////////////////////////// /** Save and restore streams \c width, \c precision * and \c fmtflags. */ typedef boost::io::ios_base_all_saver IosFmtFlagsSaver; /** Read one line from stream. * * Reads everything up to the next newline or EOF. newline * is read but not returned. * * \see \ref forEachLine */ std::string getline( std::istream & str ); /** Copy istream to ostream. * \return reference to the ostream. */ inline std::ostream & copy( std::istream & from_r, std::ostream & to_r ) { if ( from_r && to_r ) { char ch; while ( from_r && from_r.get( ch ) ) to_r.put( ch ); } return to_r; } /** Copy istream to ostream, prefixing each line with \a indent_r (default "> " ). * \return reference to the ostream. */ inline std::ostream & copyIndent( std::istream & from_r, std::ostream & to_r, const std::string & indent_r = "> " ) { if ( from_r && to_r ) { char ch; bool indent = true; while ( from_r && from_r.get( ch ) ) { if ( indent ) to_r << indent_r; indent = ( ch == '\n' ); to_r.put( ch ); } } return to_r; } /** Copy istream to ostream, prefixing each line with \a indent_r (default "> " ). * \return reference to the ostream. */ inline void tee( std::istream & from_r, std::ostream & to1_r, std::ostream & to2_r ) { if ( from_r && ( to1_r ||to2_r ) ) { char ch; while ( from_r && from_r.get( ch ) ) { to1_r.put( ch ); to2_r.put( ch ); } } } /////////////////////////////////////////////////////////////////// // // CLASS NAME : EachLine // /** Simple lineparser: Traverse each line in a file. * * \code * std::ifstream infile( "somefile" ); * for( iostr::EachLine in( infile ); in; in.next() ) * { * DBG << *in << endl; * } * \endcode */ class EachLine : private base::NonCopyable { public: /** Ctor taking a stream and reading the 1st line from it. */ EachLine( std::istream & str_r, unsigned lineNo_r = 0 ); /** Whether \c this contains a valid line to consume. */ bool valid() const { return _valid; } /** Evaluate class in a boolean context. */ explicit operator bool() const { return _valid; } /** Return the current line number. */ unsigned lineNo() const { return _lineNo; } std::streamoff lineStart() const { return _lineStart; }; /** Set current line number. */ void setLineNo( unsigned lineNo_r ) { _lineNo = lineNo_r; } /** Access the current line. */ const std::string & operator*() const { return _line; } /** \overload non const access */ std::string & operator*() { return _line; } /** Access the current line. */ const std::string * operator->() const { return &_line; } /** Advance to next line. */ bool next(); /** Advance \a num_r lines. */ bool next( unsigned num_r ) { while ( num_r-- && next() ) ; /* EMPTY */ return valid(); } private: std::istream & _str; std::string _line; std::streamoff _lineStart; unsigned _lineNo; bool _valid; }; /////////////////////////////////////////////////////////////////// /** Simple lineparser: Call functor \a consume_r for each line. * * \param str_r istream to read from. * \param consume_r callback function taking linenumber and content * * The loop is aborted if the callback returns \c false. * * \code * iostr::forEachLine( InputStream( "/my/file/to/read.txt" ), * []( int num_r, std::string line_r )->bool * { * MIL << " [" num_r << "]'" << line_r << "'" << endl; * return true; * } ); * \endcode * * \return Number if lines consumed (negative if aborted by callback). */ int forEachLine( std::istream & str_r, function consume_r ); /** \ref simpleParseFile modifications before consuming a line. */ enum ParseFlag { PF_LTRIM = 1 << 0, //< left trim whitespace PF_RTRIM = 1 << 1, //< right trim whitespace PF_TRIM = PF_LTRIM | PF_RTRIM, //< trim whitespace PF_SKIP_EMPTY = 1 << 2, //< skip lines containing whitespace only PF_SKIP_SHARP_COMMENT = 1 << 3 //< skip lines beginning with '#' }; ZYPP_DECLARE_FLAGS( ParseFlags, ParseFlag ); ZYPP_DECLARE_OPERATORS_FOR_FLAGS( ParseFlags ); /** Simple lineparser optionally trimming and skipping comments. */ int simpleParseFile( std::istream & str_r, ParseFlags flags_r, function consume_r ); /** \overload trimming lines, skipping '#'-comments and empty lines. */ inline int simpleParseFile( std::istream & str_r, function consume_r ) { return simpleParseFile( str_r, PF_TRIM | PF_SKIP_EMPTY | PF_SKIP_SHARP_COMMENT , consume_r ); } ///////////////////////////////////////////////////////////////// } // namespace iostr /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_IOSTREAM_H libzypp-17.7.0/zypp/base/InputStream.cc000066400000000000000000000116001334444677500200140ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/InputStream.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/base/InputStream.h" #include "zypp/base/GzStream.h" #include "zypp/PathInfo.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// inline std::streamoff _heplerInitSize( const Pathname & file_r ) { PathInfo p( file_r ); if ( p.isFile() && filesystem::zipType( file_r ) == filesystem::ZT_NONE ) return p.size(); return -1; } ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream() : _stream( &std::cin, NullDeleter() ) , _name( "STDIN" ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( std::istream & stream_r, const std::string & name_r ) : _stream( &stream_r, NullDeleter() ) , _name( name_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( const Pathname & file_r ) : _path( file_r ) , _stream( new ifgzstream( _path.asString().c_str() ) ) , _name( _path.asString() ) , _size( _heplerInitSize( _path ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( const Pathname & file_r, const std::string & name_r ) : _path( file_r ) , _stream( new ifgzstream( _path.asString().c_str() ) ) , _name( name_r ) , _size( _heplerInitSize( _path ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( const std::string & file_r ) : _path( file_r ) , _stream( new ifgzstream( _path.asString().c_str() ) ) , _name( _path.asString() ) , _size( _heplerInitSize( _path ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( const std::string & file_r, const std::string & name_r ) : _path( file_r ) , _stream( new ifgzstream( _path.asString().c_str() ) ) , _name( name_r ) , _size( _heplerInitSize( _path ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( const char * file_r ) : _path( file_r ) , _stream( new ifgzstream( _path.asString().c_str() ) ) , _name( _path.asString() ) , _size( _heplerInitSize( _path ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::InputStream // METHOD TYPE : Constructor // InputStream::InputStream( const char * file_r, const std::string & name_r ) : _path( file_r ) , _stream( new ifgzstream( _path.asString().c_str() ) ) , _name( name_r ) , _size( _heplerInitSize( _path ) ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : InputStream::~InputStream // METHOD TYPE : Destructor // InputStream::~InputStream() {} /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const InputStream & obj ) { return str << obj.name() << obj.stream(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/InputStream.h000066400000000000000000000111731334444677500176630ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/InputStream.h * */ #ifndef ZYPP_BASE_INPUTSTREAM_H #define ZYPP_BASE_INPUTSTREAM_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : InputStream // /** Helper to create and pass std::istream. * The provided std::istream may either be std::cin, * sone (gziped) file or an aleady existig \c std::istream. * * An optional \c name arument may be passed to the ctor, * to identify the stream in log messages, even if it is * not a file. * * Per default the name is "STDIN", the path to an input file * or empty. * * \code * void parse( const InputStream & input = InputStream() ) * { * // process input.stream() and refer to input.name() * // in log messages. * } * * parse(); // std::cin * parse( "/some/file" ); // file * parse( "/some/file.gz" ); // gziped file * std::istream & mystream; * parse( mystream ); // some existing stream * parse( InputStream( mystream, * "my stream's name" ) ); * \endcode */ class InputStream { public: /** Default ctor providing \c std::cin. */ InputStream(); /** Ctor providing an aleady existig \c std::istream. */ InputStream( std::istream & stream_r, const std::string & name_r = std::string() ); /** Ctor for reading a (gziped) file. */ InputStream( const Pathname & file_r ); /** Ctor for reading a (gziped) file. */ InputStream( const Pathname & file_r, const std::string & name_r ); /** Ctor for reading a (gziped) file. */ InputStream( const std::string & file_r ); /** Ctor for reading a (gziped) file. */ InputStream( const std::string & file_r, const std::string & name_r ); /** Ctor for reading a (gziped) file. */ InputStream( const char * file_r ); /** Ctor for reading a (gziped) file. */ InputStream( const char * file_r, const std::string & name_r ); /** Dtor. */ ~InputStream(); /** The std::istream. * \note The provided std::istream is never \c const. */ std::istream & stream() const { return *_stream; } /** Allow implicit conversion to std::istream.*/ operator std::istream &() const { return *_stream; } /** Name of the std::istream. * Per default this is "STDIN", the path to an input file or * empty. A custom string may be provided to the ctor. * * This may be used in log messages to identify the stream even * even if it is not a file. */ const std::string & name() const { return _name; } /** Path to the input file or empty if no file. */ const Pathname & path() const { return _path; } /** Size of the input stream (informal). * If constructed from an uncompressed file, the file size. * Otherwise \c -1. See \ref setSize; */ std::streamoff size() const { return _size; } /** Set the size of the input stream. * You may set it to whatever vaule is appropriate. E.g. * *=10 to compensate gzip comression. or the * number of items, lines, ... The value is not used here, * just provided. */ void setSize( std::streamoff val_r ) { _size = val_r; } private: Pathname _path; shared_ptr _stream; std::string _name; DefaultIntegral _size; }; /////////////////////////////////////////////////////////////////// /** \relates InputStream Stream output */ std::ostream & operator<<( std::ostream & str, const InputStream & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_INPUTSTREAM_H libzypp-17.7.0/zypp/base/InterProcessMutex.cc000066400000000000000000000267221334444677500212170ustar00rootroot00000000000000 extern "C" { #include } #include #include #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/IOStream.h" #include "zypp/base/InterProcessMutex.h" #include "zypp/base/String.h" #include "zypp/TmpPath.h" #include "zypp/Pathname.h" #include "zypp/PathInfo.h" #define LMIL MIL << "LOCK [" << _options.name << "] " using namespace std; namespace zypp { namespace base { ZYppLockedException::ZYppLockedException( const std::string & msg_r, const std::string &name, pid_t locker_pid ) : Exception(msg_r) , _locker_pid (locker_pid) , _name(name) {} ZYppLockedException::~ZYppLockedException() throw() {} InterProcessMutex::Options::Options( ConsumerType ptype, const std::string &pname, int ptimeout ) : name(pname) , timeout(ptimeout) , type(ptype) { if ( geteuid() == 0 ) base = "/var/run"; else base = filesystem::TmpPath::defaultLocation() + ( string("zypp-") + getenv("USER") ); } InterProcessMutex::InterProcessMutex( const Options &poptions ) : _options(poptions) { // get the current pid pid_t curr_pid = getpid(); Pathname lock_file = lockFilePath(); int totalslept = 0; int k = 0; while (1) { k++; // try to create the lock file atomically, this will fail if // the lock exists try { _fd.reset( new Fd( lock_file, O_RDWR | O_CREAT | O_EXCL, 0666) ); } catch (...) { _fd.reset(); } if ( !_fd || !_fd->isOpen() ) { struct flock lock; // the file exists, lets see if someone has it locked exclusively _fd.reset( new Fd( lock_file, O_RDWR ) ); if ( !_fd->isOpen() ) { ZYPP_THROW(Exception(str::form(_("Can't open lock file: %s"), strerror(errno)))); } memset(&lock, 0, sizeof(struct flock)); lock.l_whence = SEEK_SET; // GETLK tells you the conflicting lock as if the lock you pass // would have been set. So set the lock type depending on whether // we are a writer or a reader. lock.l_type = ( ( _options.type == Writer ) ? F_WRLCK : F_RDLCK ); // get lock information if (fcntl(_fd->fd(), F_GETLK, &lock) < 0) { ZYPP_THROW(Exception(string("Error getting lock info: ") + strerror(errno))); } MIL << lock_file << " : "; switch ( lock.l_type ) { case F_WRLCK: MIL << " Write-Lock conflicts" << endl; break; case F_RDLCK: MIL << " Read-Lock conflicts" << endl; break; case F_UNLCK: MIL << " No lock conflicts" << endl; break; default: break; } // F_GETLK is confusing // http://groups.google.com/group/comp.unix.solaris/tree/browse_frm/month/2005-09/123fae2c774bceed?rnum=61&_done=%2Fgroup%2Fcomp.unix.solaris%2Fbrowse_frm%2Fmonth%2F2005-09%3F // new table of access // F_WRLCK Reader Wait or abort // F_WRLCK Writer Wait or abort // F_RDLCK Writer Wait or abort // F_RDLCK Reader Can't happen, anyway, wait or abort // F_UNLCK Reader Take reader lock // F_UNLCK Writer Take writer lock // wait or abort if ( lock.l_type != F_UNLCK ) { // some lock conflicts with us. LMIL << "pid " << lock.l_pid << " is running and has a lock that conflicts with us." << std::endl; // abort if we have slept more or equal than the timeout, but // not for the case where timeout is negative which means no // timeout and therefore we never abort. if ( (totalslept >= _options.timeout) && (_options.timeout >= 0 ) ) { ZYPP_THROW(ZYppLockedException( _("This action is being run by another program already."), _options.name, lock.l_pid)); } // if not, let sleep one second and count it LMIL << "waiting 1 second..." << endl; sleep(1); ++totalslept; continue; } else if ( ( lock.l_type == F_UNLCK ) && ( _options.type == Reader ) ) { // either there is no lock or a reader has it so we just // acquire a reader lock. // try to get more lock info lock.l_type = F_WRLCK; if (fcntl(_fd->fd(), F_GETLK, &lock) < 0) { ZYPP_THROW(Exception(string("Error getting lock info: ") + strerror(errno))); } if ( lock.l_type == F_UNLCK ) { LMIL << "no previous readers, unlinking lock file and retrying." << endl; // actually there are no readers // lets delete it and break, so the next loop will // probably succeed in creating it. The worst thing that can // happen is that another process will take it first, but // we are not aiming at such level of correctness. Otherwise // the code path will complicate too much. memset(&lock, 0, sizeof(struct flock)); lock.l_type = F_WRLCK; lock.l_whence = SEEK_SET; lock.l_pid = getpid(); if (fcntl(_fd->fd(), F_SETLK, &lock) < 0) { ZYPP_THROW (Exception( "Can't lock file to unlink it.")); } filesystem::unlink(lock_file.c_str()); continue; } else if ( lock.l_type == F_RDLCK ) { // there is another reader. LMIL << "previous readers on lock file. taking lock as a reader." << std::endl; memset(&lock, 0, sizeof(struct flock)); lock.l_type = F_RDLCK; lock.l_whence = SEEK_SET; lock.l_pid = getpid(); if (fcntl(_fd->fd(), F_SETLK, &lock) < 0) { ZYPP_THROW (Exception( "Can't lock file for reader")); } // and keep the lock open. break; } else { // cant happen! ERR << "impossible condition" << endl; break; } } else if ( ( lock.l_type == F_UNLCK ) && ( _options.type == Writer ) ) { LMIL << "stale lock found" << endl; // Nobody conflicts with a writer lock so nobody is actually // locking. // lets delete it and break, so the next loop will // probably succeed in creating it. The worst thing that can // happen is that another process will take it first, but // we are not aiming at such level of correctness. Otherwise // the code path will complicate too much. memset(&lock, 0, sizeof(struct flock)); lock.l_type = F_WRLCK; lock.l_whence = SEEK_SET; lock.l_pid = getpid(); if (fcntl(_fd->fd(), F_SETLK, &lock) < 0) { ZYPP_THROW (Exception( "Can't lock file to unlink it.")); } filesystem::unlink(lock_file.c_str()); continue; } else { // undefined case, just get out of the loop LMIL << "undefined case!" << endl; break; } } else { // exclusive file creation succeeded. So may be we are the // first writer or first reader // try to lock it exclusively // if it fails, someone won us, so we just go for another try // or just abort LMIL << "no lock found, taking ownership of it as a " << ( (_options.type == Reader ) ? "reader" : "writer" ) << endl; struct flock lock; memset(&lock, 0, sizeof(struct flock)); lock.l_whence = SEEK_SET; lock.l_type = F_WRLCK; lock.l_pid = getpid(); if (fcntl(_fd->fd(), F_SETLK, &lock) < 0) ZYPP_THROW (Exception( "Can't lock file to write pid.")); char buffer[100]; sprintf( buffer, "%d\n", curr_pid); write( _fd->fd(), buffer, strlen(buffer)); // by now the pid is written and the file locked. // If we are a reader, just downgrade the lock to // read shared lock. if ( _options.type == Reader ) { lock.l_type = F_RDLCK; if (fcntl(_fd->fd(), F_SETLK, &lock) < 0) ZYPP_THROW (Exception( "Can't set lock file to shared")); } break; } } // end loop LMIL << "Lock intialized" << endl; } InterProcessMutex::~InterProcessMutex() { try { Pathname lock_file = lockFilePath(); LMIL << "dropping " << ( (_options.type == Reader ) ? "reader" : "writer" ) << " lock on " << lock_file << endl; switch ( _options.type ) { case Reader: break; case Writer: // we are the only writer, so unlink the file filesystem::unlink(lock_file.c_str()); break; } // and finally close the file and release the lock // (happens automatically) } catch(...) {} // let no exception escape. } Pathname InterProcessMutex::lockFilePath() const { filesystem::assert_dir(_options.base); return _options.base + ("zypp-" + _options.name + ".lock"); } bool InterProcessMutex::isProcessRunning(pid_t pid_r) { // it is another program, not me, see if it is still running Pathname procdir( Pathname("/proc") / str::numstring(pid_r) ); PathInfo status( procdir/"status" ); XXX << "Checking " << status << endl; bool still_running = status.isExist(); if ( still_running ) { Pathname p( procdir/"exe" ); XXX << p << " -> " << filesystem::readlink( p ) << endl; p = procdir/"cmdline"; XXX << p << ": "; std::ifstream infile( p.c_str() ); for( iostr::EachLine in( infile ); in; in.next() ) { XXX << *in << endl; } } return still_running; } } } libzypp-17.7.0/zypp/base/InterProcessMutex.h000066400000000000000000000055171334444677500210600ustar00rootroot00000000000000 #ifndef ZYPP_BASE_INTER_PROCESS_MUTEX_H #define ZYPP_BASE_INTER_PROCESS_MUTEX_H #include #include "zypp/base/Fd.h" #include "zypp/base/Exception.h" #include "zypp/base/NonCopyable.h" #include "zypp/Pathname.h" namespace zypp { namespace base { class ZYppLockedException : public Exception { public: ZYppLockedException( const std::string & msg_r, const std::string &name, pid_t locker_pid ); virtual ~ZYppLockedException() throw(); pid_t locker_pid() const { return _locker_pid; } std::string name() const { return _name; } private: pid_t _locker_pid; std::string _name; }; /** * * Inter process scoped lock implementation * * This mutex will allow only one writer process to * reach a critical region protected by a mutex * of the same name, if there are no readers * at the same time. * * Multiple readers are allowed if there is no * currently a writer. * */ class InterProcessMutex : private base::NonCopyable { public: /** * Processes can be of two types * Reader or Writer */ enum ConsumerType { Reader, Writer }; /** * options to alter the mutex behavor */ class Options { public: /** * Options for a mutex of type \ref ptype * with a given name and timeout. * Default is name "zypp" and no timeout * (wait till resource is free) * * The mutex type, Writer or Reader must be * given explictly. * * The mutex will be handled using a lock file * located on default library path if the * library is running as root, and in users home * directory if not. * */ Options( ConsumerType ptype, const std::string &pname = "zypp", int ptimeout = -1 ); /** * set the path where the lockfile is * created. */ void setPath( const Pathname &base ); std::string name; int timeout; ConsumerType type; Pathname base; }; /** * Creates a mutex with a name and a timeout. * * default timeout is -1 which means no timeout * at all, and the mutex will wait forever if * other process is accessing the critical region * for a mutex in with the same name. * * If the timeout is 0, then if the lock is acquired * an exception will be thrown inmediately. * * Otherwise, the timeout exception will come after * the timeout is reached. * */ InterProcessMutex( const Options &poptions ); /** * Destructor, gives up the lock on the named * resource. */ ~InterProcessMutex(); private: bool isProcessRunning(pid_t pid_r); Pathname lockFilePath() const; private: shared_ptr _fd; Options _options; }; } } #endif libzypp-17.7.0/zypp/base/Iterable.h000066400000000000000000000066331334444677500171440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Iterable.h */ #ifndef ZYPP_BASE_ITERABLE_H #define ZYPP_BASE_ITERABLE_H #include /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class Iterable /// \brief /// \code /// struct Foo /// { /// class Iterator; /// typedef Iterable IterableType; /// /// Iterator myBegin(); /// Iterator myEnd(); /// /// IterableType iterate() { return makeIterable( myBegin(), myEnd() ); } /// }; /// \endcode /////////////////////////////////////////////////////////////////// template class Iterable { public: typedef size_t size_type; typedef TIterator iterator_type; typedef typename std::iterator_traits::value_type value_type; typedef typename std::iterator_traits::difference_type difference_type; typedef typename std::iterator_traits::pointer pointer; typedef typename std::iterator_traits::reference reference; typedef typename std::iterator_traits::iterator_category iterator_category; /** Ctor taking the iterator pair */ Iterable() {} /** Ctor taking the iterator pair */ Iterable( iterator_type begin_r, iterator_type end_r ) : _begin( std::move(begin_r) ) , _end( std::move(end_r) ) {} /** Ctor taking the iterator pair */ Iterable( std::pair range_r ) : _begin( std::move(range_r.first) ) , _end( std::move(range_r.second) ) {} iterator_type begin() const { return _begin; } iterator_type end() const { return _end; } bool empty() const { return( _begin == _end ); } size_type size() const { size_type ret = 0; for ( iterator_type i = _begin; i != _end; ++i ) ++ret; return ret; } bool contains( const value_type & val_r ) const { return( find( val_r ) != _end ); } iterator_type find( const value_type & val_r ) const { iterator_type ret = _begin; for ( ; ret != _end; ++ret ) if ( *ret == val_r ) break; return ret; } private: iterator_type _begin; iterator_type _end; }; /** \relates Iterable convenient construction. */ template Iterable makeIterable( TIterator && begin_r, TIterator && end_r ) { return Iterable( std::forward(begin_r), std::forward(end_r) ); } /** \relates Iterable convenient construction. */ template Iterable makeIterable( std::pair && range_r ) { return Iterable( std::forward>(range_r) ); } } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_ITERABLE_H libzypp-17.7.0/zypp/base/Iterator.h000066400000000000000000000306721334444677500172060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Iterator.h * */ #ifndef ZYPP_BASE_ITERATOR_H #define ZYPP_BASE_ITERATOR_H #include #include #include #include #include #include #include "zypp/base/Iterable.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** \defgroup ITERATOR Boost.Iterator Library * * \see http://www.boost.org/libs/iterator/doc/index.html * * \li \b counting_iterator: an iterator over a sequence of * consecutive values. Implements a "lazy sequence" * \li \b filter_iterator: an iterator over the subset of elements * of some sequence which satisfy a given predicate * \li \b function_output_iterator: an output iterator wrapping a * unary function object; each time an element is written into * the dereferenced iterator, it is passed as a parameter to * the function object. * \li \b indirect_iterator: an iterator over the objects pointed-to * by the elements of some sequence. * \li \b permutation_iterator: an iterator over the elements of * some random-access sequence, rearranged according to some * sequence of integer indices. * \li \b reverse_iterator: an iterator which traverses the elements * of some bidirectional sequence in reverse. Corrects many of the shortcomings of C++98's std::reverse_iterator. * \li \b shared_container_iterator: an iterator over elements of * a container whose lifetime is maintained by a shared_ptr * stored in the iterator. * \li \b transform_iterator: an iterator over elements which are * the result of applying some functional transformation to * the elements of an underlying sequence. This component * also replaces the old projection_iterator_adaptor. * \li \b zip_iterator: an iterator over tuples of the elements * at corresponding positions of heterogeneous underlying * iterators. * * There are in fact more interesting iterator concepts * available than the ones listed above. Have a look at them. * * Some of the iterator types are already dragged into namespace * zypp. Feel free to add what's missing. * * \todo Separate them into individual zypp header files. */ //@{ /** \class filter_iterator * An iterator over the subset of elements of some sequence * which satisfy a given predicate. * * Provides boost::filter_iterator and boost::make_filter_iterator * convenience function. * \see http://www.boost.org/libs/iterator/doc/filter_iterator.html * \code * template * filter_iterator * make_filter_iterator(Predicate f, Iterator x, Iterator end = Iterator()); * * template * filter_iterator * make_filter_iterator(Iterator x, Iterator end = Iterator()); * \endcode * Remember the deduction rules for template arguments. * \code * struct MyDefaultConstructibleFilter; * make_filter_iterator( c.begin(), c.end() ); * make_filter_iterator( MyDefaultConstructibleFilter(), c.begin(), c.end() ); * ... * make_filter_iterator( resfilter::ByName("foo"), c.begin(), c.end() ); * * \endcode */ using boost::filter_iterator; using boost::make_filter_iterator; /** Convenience to create filter_iterator from container::begin(). */ template filter_iterator make_filter_begin( TFilter f, const TContainer & c ) { return make_filter_iterator( f, c.begin(), c.end() ); } /** Convenience to create filter_iterator from container::begin(). */ template filter_iterator make_filter_begin( const TContainer & c ) { return make_filter_iterator( TFilter(), c.begin(), c.end() ); } /** Convenience to create filter_iterator from container::end(). */ template filter_iterator make_filter_end( TFilter f, const TContainer & c ) { return make_filter_iterator( f, c.end(), c.end() ); } /** Convenience to create filter_iterator from container::end(). */ template filter_iterator make_filter_end( const TContainer & c ) { return make_filter_iterator( TFilter(), c.end(), c.end() ); } /** \class transform_iterator * An iterator over elements which are the result of applying * some functional transformation to the elements of an underlying * sequence. * * Provides boost::transform_iterator and boost::make_transform_iterator * convenience function. * \see http://www.boost.org/libs/iterator/doc/transform_iterator.html * \code * template * transform_iterator * make_transform_iterator(Iterator it, UnaryFunction fun); * * template * transform_iterator * make_transform_iterator(Iterator it); * \endcode */ using boost::transform_iterator; using boost::make_transform_iterator; /** Functor taking a \c std::pair returning \c std::pair.first. * \see MapKVIteratorTraits */ template struct GetPairFirst : public std::unary_function { const typename TPair::first_type & operator()( const TPair & pair_r ) const { return pair_r.first; } }; /** Functor taking a \c std::pair returning \c std::pair.second . * \see MapKVIteratorTraits */ template struct GetPairSecond : public std::unary_function { const typename TPair::second_type & operator()( const TPair & pair_r ) const { return pair_r.second; } }; /** Traits for std::map key and value iterators. * * \ref GetPairFirst and \ref GetPairSecond help building a transform_iterator * that iterates over keys or values of a std::map. Class MapKVIteratorTraits * provides some typedefs, you usg. do not want to write explicitly. * * \code * // typedefs * typedef std::map MapType; * * // transform_iterator, MapType::const_iterator> * typedef MapKVIteratorTraits::Key_const_iterator MapTypeKey_iterator; * // transform_iterator, MapType::const_iterator> * typedef MapKVIteratorTraits::Value_const_iterator MapTypeValue_iterator; * * // usage * MapType mymap; * * MapTypeKey_const_iterator keyBegin( make_map_key_begin( mymap ) ); * MapTypeKey_const_iterator keyEnd ( make_map_key_end( mymap ) ); * * MapTypeValue_const_iterator valBegin( make_map_value_begin( mymap ) ); * MapTypeValue_const_iterator valEnd ( make_map_value_end( mymap ) ); * * std::for_each( keyBegin, keyEnd, DoSomething() ); * std::for_each( valBegin, valEnd, DoSomething() ); * \endcode * * Or short: * * \code * typedef std::map MapType; * MapType mymap; * * std::for_each( make_map_key_begin( mymap ), make_map_key_end( mymap ), DoSomething() ); * std::for_each( make_map_value_begin( mymap ), make_map_value_end( mymap ), DoSomething() ); * \endcode */ template struct MapKVIteratorTraits { /** The map type */ typedef TMap MapType; /** The maps key type */ typedef typename TMap::key_type KeyType; /** The key iterator type */ typedef transform_iterator, typename MapType::const_iterator> Key_const_iterator; /** The maps value (mapped) type */ typedef typename TMap::mapped_type ValueType; /** The value iterator type */ typedef transform_iterator, typename MapType::const_iterator> Value_const_iterator; }; /** Convenience to create the key iterator from container::begin() */ template inline typename MapKVIteratorTraits::Key_const_iterator make_map_key_begin( const TMap & map_r ) { return make_transform_iterator( map_r.begin(), GetPairFirst() ); } /** Convenience to create the key iterator from container::end() */ template inline typename MapKVIteratorTraits::Key_const_iterator make_map_key_end( const TMap & map_r ) { return make_transform_iterator( map_r.end(), GetPairFirst() ); } /** Convenience to create the value iterator from container::begin() */ template inline typename MapKVIteratorTraits::Value_const_iterator make_map_value_begin( const TMap & map_r ) { return make_transform_iterator( map_r.begin(), GetPairSecond() ); } /** Convenience to create the value iterator from container::end() */ template inline typename MapKVIteratorTraits::Value_const_iterator make_map_value_end( const TMap & map_r ) { return make_transform_iterator( map_r.end(), GetPairSecond() ); } /** Convenience to create the key iterator from container::lower_bound() */ template inline typename MapKVIteratorTraits::Key_const_iterator make_map_key_lower_bound( const TMap & map_r, const typename TMap::key_type & key_r ) { return make_transform_iterator( map_r.lower_bound( key_r ), GetPairFirst() ); } /** Convenience to create the key iterator from container::upper_bound() */ template inline typename MapKVIteratorTraits::Key_const_iterator make_map_key_upper_bound( const TMap & map_r, const typename TMap::key_type & key_r ) { return make_transform_iterator( map_r.upper_bound( key_r ), GetPairFirst() ); } /** Convenience to create the value iterator from container::lower_bound() */ template inline typename MapKVIteratorTraits::Value_const_iterator make_map_value_lower_bound( const TMap & map_r, const typename TMap::key_type & key_r ) { return make_transform_iterator( map_r.lower_bound( key_r ), GetPairSecond() ); } /** Convenience to create the value iterator from container::upper_bound() */ template inline typename MapKVIteratorTraits::Value_const_iterator make_map_value_upper_bound( const TMap & map_r, const typename TMap::key_type & key_r ) { return make_transform_iterator( map_r.upper_bound( key_r ), GetPairSecond() ); } /** \class function_output_iterator * An output iterator wrapping a unary function object; each time an * element is written into the dereferenced iterator, it is passed as * a parameter to the function object. * * Provides boost::function_output_iterator and boost::make_function_output_iterator * convenience function. * \see http://www.boost.org/libs/iterator/doc/function_output_iterator.html * \code * template * function_output_iterator * make_function_output_iterator(const UnaryFunction& f = UnaryFunction()); * \endcode */ using boost::function_output_iterator; using boost::make_function_output_iterator; //@} ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_ITERATOR_H libzypp-17.7.0/zypp/base/Json.h000066400000000000000000000271521334444677500163250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Json.h * */ #ifndef ZYPP_BASE_JSON_H #define ZYPP_BASE_JSON_H #include #include #include #include #include #include #include "zypp/base/Easy.h" #include "zypp/base/String.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace json { // JSN Keywords inline static const std::string & nullJSON() { static const std::string _s( "null" ); return _s; } inline static const std::string & trueJSON() { static const std::string _s( "true" ); return _s; } inline static const std::string & falseJSON() { static const std::string _s( "false" ); return _s; } /////////////////////////////////////////////////////////////////// namespace detail { inline std::string strEncode( std::string val_r ) { typedef unsigned char uchar; std::string::size_type add = 2; // enclosing "s for_( r, val_r.begin(), val_r.end() ) { if ( uchar(*r) < 32u ) { switch ( *r ) { case '\b': case '\f': case '\n': case '\r': case '\t': add += 1; // "\c" break; default: add += 5; // "\uXXXX" break; } } else { switch ( *r ) { case '"': case '/': case '\\': add += 1; // \-escape break; } } } val_r.resize( val_r.size() + add, '@' ); auto w( val_r.rbegin() ); auto r( w + add ); *w++ = '"'; for ( ; r != val_r.rend(); ++r ) { if ( uchar(*r) < 32u ) { static const char * digit = "0123456789abcdef"; switch ( *r ) { case '\b': // "\c" *w++ = 'b'; *w++ = '\\'; break; case '\f': // "\c" *w++ = 'f'; *w++ = '\\'; break; case '\n': // "\c" *w++ = 'n'; *w++ = '\\'; break; case '\r': // "\c" *w++ = 'r'; *w++ = '\\'; break; case '\t': // "\c" *w++ = 't'; *w++ = '\\'; break; default: // "\uXXXX" *w++ = digit[uchar(*r) % 15]; *w++ = digit[uchar(*r) / 16]; *w++ = '0'; *w++ = '0'; *w++ = 'u'; *w++ = '\\'; break; } } else { switch ( (*w++ = *r) ) { case '"': case '/': case '\\': // \-escape *w++ = '\\'; break; } } } *w++ = '"'; return val_r; } } // namespace detail /////////////////////////////////////////////////////////////////// // null inline std::string toJSON( void ) { return nullJSON(); } inline std::string toJSON( std::nullptr_t ) { return nullJSON(); } // bool inline std::string toJSON( bool val_r ) { return val_r ? trueJSON() : falseJSON(); } inline std::string toJSON( const void * val_r ) { return val_r ? trueJSON() : falseJSON(); } // numbers inline std::string toJSON( short val_r ) { return str::numstring( val_r ); } inline std::string toJSON( unsigned short val_r ) { return str::numstring( val_r ); } inline std::string toJSON( int val_r ) { return str::numstring( val_r ); } inline std::string toJSON( unsigned val_r ) { return str::numstring( val_r ); } inline std::string toJSON( long val_r ) { return str::numstring( val_r ); } inline std::string toJSON( unsigned long val_r ) { return str::numstring( val_r ); } inline std::string toJSON( long long val_r ) { return str::numstring( val_r ); } inline std::string toJSON( unsigned long long val_r ){ return str::numstring( val_r ); } // strings inline std::string toJSON( const char val_r ) { return detail::strEncode( std::string( 1, val_r ) ); } inline std::string toJSON( const char * val_r ) { return val_r ? detail::strEncode( val_r ) : nullJSON(); } inline std::string toJSON( const std::string & val_r ){ return detail::strEncode( val_r ); } // container to Array template std::string toJSON( const std::vector & cont_r ); template std::string toJSON( const std::list & cont_r ); template std::string toJSON( const std::set & cont_r ); // map to Object template std::string toJSON( const std::map & cont_r ); /** Type to JSON string representation. * This can be implemented as non-static memberfunction \c asJSON, * or as non-memberfunction \c toJSON; * \code * class Type; * std::string Type::asJSON() const; * std::string toJSON( const Type & ); * \endcode */ template std::string toJSON( const T & val_r ) { return val_r.asJSON(); } /////////////////////////////////////////////////////////////////// /// \class Value /// \brief JSON representation of datatypes via \ref toJSON /// \code /// namespace mynamspace /// { /// struct Mydata /// {...}; /// /// std::string toJSON( const Mydata & ) /// { return json::Array{ "answer", 42 }.asJSON(); } /// } /// /// mynamspace::Mydata data; /// json::Object bigone { /// { "mydata", data }, /// { "panic", false }, /// { "nested", json::Object{ {"one",1}, {"two",2}, {"three",3} } } /// }; /// /// cout << bigone << endl; ///\endcode /// \see http://www.json.org/ /////////////////////////////////////////////////////////////////// struct Value { /** Default ctor (null) */ Value() : _data( toJSON() ) {} /** Copy ctor */ Value( const Value & rhs ) : _data( rhs._data ) {} /** Ctor creating a JSON representation of \a T via \ref toJSON(T) */ template Value( const T & val_r ) : _data( toJSON( val_r ) ) {} /** JSON representation */ const std::string & asJSON() const { return _data; } /** String representation */ const std::string & asString() const { return asJSON(); } /** Stream output */ std::ostream & dumpOn( std::ostream & str ) const { return str << _data; } private: std::string _data; }; /** \relates Value Stream output */ inline std::ostream & operator<<( std::ostream & str, const Value & obj ) { return obj.dumpOn( str ); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class String /// \brief JSON string /// Force representation as JSON string, mapping e.g. \c null values /// to an empty string. Maninly used in \ref Object as key. /////////////////////////////////////////////////////////////////// struct String : public Value { String() : Value( "" ) {} String( std::nullptr_t ) : Value( "" ) {} String( const char val_r ) : Value( val_r ) {} String( const char * val_r ) : Value( val_r ? val_r : "" ) {} String( const std::string & val_r ): Value( val_r ) {} }; /////////////////////////////////////////////////////////////////// /// \class Array /// \brief JSON array /////////////////////////////////////////////////////////////////// struct Array { Array() {} /** Construct from container iterator */ template Array( Iterator begin, Iterator end ) { for_( it, begin, end ) add( *it ); } /** Construct from container initializer list { v1, v2,... } */ Array( const std::initializer_list & contents_r ) : Array( contents_r.begin(), contents_r.end() ) {} /** Push JSON Value to Array */ void add( const Value & val_r ) { _data.push_back( val_r.asJSON() ); } /** \overload from container initializer list { v1, v2,... } */ void add( const std::initializer_list & contents_r ) { for_( it, contents_r.begin(), contents_r.end() ) add( *it ); } /** JSON representation */ std::string asJSON() const { return str::Str() << *this; } /** String representation */ std::string asString() const { return asJSON(); } /** Stream output */ std::ostream & dumpOn( std::ostream & str ) const { if ( _data.empty() ) return str << "[]"; str << '[' << *_data.begin(); for_( val, ++_data.begin(), _data.end() ) str << ", " << *val; return str << ']'; } private: std::list _data; }; /** \relates Array Stream output */ inline std::ostream & operator<<( std::ostream & str, const Array & obj ) { return obj.dumpOn( str ); } template std::string toJSON( const std::vector & cont_r ) { return json::Array( cont_r.begin(), cont_r.end() ).asJSON(); } template std::string toJSON( const std::list & cont_r ) { return json::Array( cont_r.begin(), cont_r.end() ).asJSON(); } template std::string toJSON( const std::set & cont_r ) { return json::Array( cont_r.begin(), cont_r.end() ).asJSON(); } /////////////////////////////////////////////////////////////////// /// \class Object /// \brief JSON object /////////////////////////////////////////////////////////////////// struct Object { Object() {} /** Construct from map-iterator */ template Object( Iterator begin, Iterator end ) { for_( it, begin, end ) add( it->first, it->second ); } /** Construct from map-initializer list { {k1,v1}, {k2,v2},... } */ Object( const std::initializer_list> & contents_r ) : Object( contents_r.begin(), contents_r.end() ) {} /** Add key/value pair */ void add( const String & key_r, const Value & val_r ) { _data[key_r.asJSON()] = val_r.asJSON(); } /** \overload from map-initializer list { {k1,v1}, {k2,v2},... } */ void add( const std::initializer_list> & contents_r ) { for_( it, contents_r.begin(), contents_r.end() ) add( it->first, it->second ); } /** JSON representation */ std::string asJSON() const { return str::Str() << *this; } /** String representation */ std::string asString() const { return asJSON(); } /** Stream output */ std::ostream & dumpOn( std::ostream & str ) const { using std::endl; if ( _data.empty() ) return str << "{}"; dumpOn( str << '{' << endl, _data.begin() ); for_ ( val, ++_data.begin(), _data.end() ) dumpOn( str << ',' << endl, val ); return str << endl << '}'; } private: std::ostream & dumpOn( std::ostream & str, std::map::const_iterator val_r ) const { return str << val_r->first << ": " << val_r->second; } std::map _data; }; /** \relates Object Stream output */ inline std::ostream & operator<<( std::ostream & str, const Object & obj ) { return obj.dumpOn( str ); } template std::string toJSON( const std::map & cont_r ) { return json::Object( cont_r.begin(), cont_r.end() ).asJSON(); } } // namespace json /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_JSON_H libzypp-17.7.0/zypp/base/LocaleGuard.h000066400000000000000000000041131334444677500175660ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/LocaleGuard.h */ #ifndef ZYPP_BASE_LOCALEGUARD_H #define ZYPP_BASE_LOCALEGUARD_H #include #include #include "zypp/base/Easy.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class LocaleGuard /// \brief Temorarily change a locale category value /// \ingroup g_RAII /////////////////////////////////////////////////////////////////// class LocaleGuard { NON_COPYABLE(LocaleGuard); NON_MOVABLE(LocaleGuard); public: /** Ctor saving the current locale category value. */ LocaleGuard( int category_r, const std::string & value_r = "C" ) : _category( -1 ) { const char * ovalue = ::setlocale( category_r, nullptr ); if ( ovalue && ovalue != value_r ) { _category = category_r; _value = ovalue; ::setlocale( _category, value_r.c_str() ); } } /** Dtor asserts the saved locale category value is restored. */ ~LocaleGuard() { restore(); } /** immediately restore the saved locale category value. */ void restore() { if ( _category != -1 ) { ::setlocale( _category, _value.c_str() ); _category = -1; } } private: int _category; ///< saved category or -1 if no restore needed std::string _value; ///< saved category value }; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_LOCALEGUARD_H libzypp-17.7.0/zypp/base/LogControl.cc000066400000000000000000000411731334444677500176330ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/LogControl.cc * */ #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/LogControl.h" #include "zypp/base/ProfilingFormater.h" #include "zypp/base/String.h" #include "zypp/Date.h" #include "zypp/PathInfo.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// #ifndef ZYPP_NDEBUG namespace debug { void osdlog( const std::string & msg_r, unsigned level_r ) { // Fg::Black: 30 Bg: 40 Attr::Normal: 22;27 // Fg::Red: 31 ... Attr::Bright: 1 // Fg::Green: 32 Attr::Reverse: 7 // Fg::Yellow: 33 // Fg::Blue: 34 // Fg::Magenta: 35 // Fg::Cyan: 36 // Fg::White: 37 // Fg::Default: 39 static const char * ansi[] = { "\033[37;40m", // 0 w "\033[36;40m", // 1 c "\033[33;1;40m", // 2 y "\033[32;40m", // 3 g "\033[31;1;40m", // 4 r "\033[35;40m", // 5 m }; static const unsigned n = sizeof(ansi)/sizeof(const char *); switch ( level_r ) { case 'w': level_r = 0; break; case 'c': level_r = 1; break; case 'y': level_r = 2; break; case 'g': level_r = 3; break; case 'r': level_r = 4; break; case 'm': level_r = 5; break; } std::cerr << ansi[level_r%n] << "OSD[" << msg_r << "]\033[0m" << std::endl; } } #endif // ZYPP_NDEBUG /////////////////////////////////////////////////////////////////// namespace log { ///////////////////////////////////////////////////////////////// StdoutLineWriter::StdoutLineWriter() : StreamLineWriter( std::cout ) {} StderrLineWriter::StderrLineWriter() : StreamLineWriter( std::cerr ) {} FileLineWriter::FileLineWriter( const Pathname & file_r, mode_t mode_r ) { if ( file_r == Pathname("-") ) { _str = &std::cerr; } else { if ( mode_r ) { // not filesystem::assert_file as filesystem:: functions log, // and this FileWriter is not yet in place. int fd = ::open( file_r.c_str(), O_CREAT|O_EXCL, mode_r ); if ( fd != -1 ) ::close( fd ); } // set unbuffered write std::ofstream * fstr = 0; _outs.reset( (fstr = new std::ofstream( file_r.asString().c_str(), std::ios_base::app )) ); fstr->rdbuf()->pubsetbuf(0,0); _str = &(*fstr); } } ///////////////////////////////////////////////////////////////// } // namespace log /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // LineFormater /////////////////////////////////////////////////////////////////// std::string LogControl::LineFormater::format( const std::string & group_r, logger::LogLevel level_r, const char * file_r, const char * func_r, int line_r, const std::string & message_r ) { static char hostname[1024]; static char nohostname[] = "unknown"; std::string now( Date::now().form( "%Y-%m-%d %H:%M:%S" ) ); return str::form( "%s <%d> %s(%d) [%s] %s(%s):%d %s", now.c_str(), level_r, ( gethostname( hostname, 1024 ) ? nohostname : hostname ), getpid(), group_r.c_str(), file_r, func_r, line_r, message_r.c_str() ); } /////////////////////////////////////////////////////////////////// namespace logger { ///////////////////////////////////////////////////////////////// inline void putStream( const std::string & group_r, LogLevel level_r, const char * file_r, const char * func_r, int line_r, const std::string & buffer_r ); /////////////////////////////////////////////////////////////////// // // CLASS NAME : Loglinebuf // class Loglinebuf : public std::streambuf { public: /** */ Loglinebuf( const std::string & group_r, LogLevel level_r ) : _group( group_r ) , _level( level_r ) , _file( "" ) , _func( "" ) , _line( -1 ) {} /** */ ~Loglinebuf() { if ( !_buffer.empty() ) writeout( "\n", 1 ); } /** */ void tagSet( const char * fil_r, const char * fnc_r, int lne_r ) { _file = fil_r; _func = fnc_r; _line = lne_r; } private: /** */ virtual std::streamsize xsputn( const char * s, std::streamsize n ) { return writeout( s, n ); } /** */ virtual int overflow( int ch = EOF ) { if ( ch != EOF ) { char tmp = ch; writeout( &tmp, 1 ); } return 0; } /** */ virtual int writeout( const char* s, std::streamsize n ) { //logger::putStream( _group, _level, _file, _func, _line, _buffer ); //return n; if ( s && n ) { const char * c = s; for ( int i = 0; i < n; ++i, ++c ) { if ( *c == '\n' ) { _buffer += std::string( s, c-s ); logger::putStream( _group, _level, _file, _func, _line, _buffer ); _buffer = std::string(); s = c+1; } } if ( s < c ) { _buffer += std::string( s, c-s ); } } return n; } private: std::string _group; LogLevel _level; const char * _file; const char * _func; int _line; std::string _buffer; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Loglinestream // class Loglinestream { public: /** */ Loglinestream( const std::string & group_r, LogLevel level_r ) : _mybuf( group_r, level_r ) , _mystream( &_mybuf ) {} /** */ ~Loglinestream() { _mystream.flush(); } public: /** */ std::ostream & getStream( const char * fil_r, const char * fnc_r, int lne_r ) { _mybuf.tagSet( fil_r, fnc_r, lne_r ); return _mystream; } private: Loglinebuf _mybuf; std::ostream _mystream; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : LogControlImpl // /** LogControl implementation (Singleton). * * \note There is a slight difference in using the _lineFormater and _lineWriter! * \li \c _lineFormater must not be NULL (create default LogControl::LineFormater) * \li \c _lineWriter is NULL if no logging is performed, this way we can pass * _no_stream as logstream to the application, and avoid unnecessary formating * of logliles, which would then be discarded when passed to some dummy * LineWriter. */ struct LogControlImpl { public: bool isExcessive() { return _excessive; } void excessive( bool onOff_r ) { _excessive = onOff_r; } /** NULL _lineWriter indicates no loggin. */ void setLineWriter( const shared_ptr & writer_r ) { _lineWriter = writer_r; } shared_ptr getLineWriter() const { return _lineWriter; } /** Assert \a _lineFormater is not NULL. */ void setLineFormater( const shared_ptr & format_r ) { if ( format_r ) _lineFormater = format_r; else _lineFormater.reset( new LogControl::LineFormater ); } void logfile( const Pathname & logfile_r, mode_t mode_r = 0640 ) { if ( logfile_r.empty() ) setLineWriter( shared_ptr() ); else if ( logfile_r == Pathname( "-" ) ) setLineWriter( shared_ptr(new log::StderrLineWriter) ); else setLineWriter( shared_ptr(new log::FileLineWriter(logfile_r, mode_r)) ); } private: std::ostream _no_stream; bool _excessive; shared_ptr _lineFormater; shared_ptr _lineWriter; public: /** Provide the log stream to write (logger interface) */ std::ostream & getStream( const std::string & group_r, LogLevel level_r, const char * file_r, const char * func_r, const int line_r ) { if ( ! _lineWriter ) return _no_stream; if ( level_r == E_XXX && !_excessive ) return _no_stream; if ( !_streamtable[group_r][level_r] ) { _streamtable[group_r][level_r].reset( new Loglinestream( group_r, level_r ) ); } std::ostream & ret( _streamtable[group_r][level_r]->getStream( file_r, func_r, line_r ) ); if ( !ret ) { ret.clear(); ret << "---writeOut( _lineFormater->format( group_r, level_r, file_r, func_r, line_r, message_r ) ); } private: typedef shared_ptr StreamPtr; typedef std::map StreamSet; typedef std::map StreamTable; /** one streambuffer per group and level */ StreamTable _streamtable; private: /** Singleton ctor. * No logging per default, unless enabled via $ZYPP_LOGFILE. */ LogControlImpl() : _no_stream( NULL ) , _excessive( getenv("ZYPP_FULLLOG") ) , _lineFormater( new LogControl::LineFormater ) { if ( getenv("ZYPP_LOGFILE") ) logfile( getenv("ZYPP_LOGFILE") ); if ( getenv("ZYPP_PROFILING") ) { shared_ptr formater(new ProfilingFormater); setLineFormater(formater); } } ~LogControlImpl() { _lineWriter.reset(); } public: /** The LogControlImpl singleton * \note As most dtors log, it is inportant that the * LogControlImpl instance is the last static variable * destructed. At least destucted after all statics * which log from their dtor. */ static LogControlImpl & instance(); }; /////////////////////////////////////////////////////////////////// // 'THE' LogControlImpl singleton inline LogControlImpl & LogControlImpl::instance() { static LogControlImpl _instance; return _instance; } /////////////////////////////////////////////////////////////////// /** \relates LogControlImpl Stream output */ inline std::ostream & operator<<( std::ostream & str, const LogControlImpl & obj ) { return str << "LogControlImpl"; } /////////////////////////////////////////////////////////////////// // // Access from logger:: // /////////////////////////////////////////////////////////////////// std::ostream & getStream( const char * group_r, LogLevel level_r, const char * file_r, const char * func_r, const int line_r ) { return LogControlImpl::instance().getStream( group_r, level_r, file_r, func_r, line_r ); } /** That's what Loglinebuf calls. */ inline void putStream( const std::string & group_r, LogLevel level_r, const char * file_r, const char * func_r, int line_r, const std::string & buffer_r ) { LogControlImpl::instance().putStream( group_r, level_r, file_r, func_r, line_r, buffer_r ); } bool isExcessive() { return LogControlImpl::instance().isExcessive(); } ///////////////////////////////////////////////////////////////// } // namespace logger /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : LogControl // Forward to LogControlImpl singleton. // /////////////////////////////////////////////////////////////////// using logger::LogControlImpl; void LogControl::logfile( const Pathname & logfile_r ) { LogControlImpl::instance().logfile( logfile_r ); } void LogControl::logfile( const Pathname & logfile_r, mode_t mode_r ) { LogControlImpl::instance().logfile( logfile_r, mode_r ); } shared_ptr LogControl::getLineWriter() const { return LogControlImpl::instance().getLineWriter(); } void LogControl::setLineWriter( const shared_ptr & writer_r ) { LogControlImpl::instance().setLineWriter( writer_r ); } void LogControl::setLineFormater( const shared_ptr & formater_r ) { LogControlImpl::instance().setLineFormater( formater_r ); } void LogControl::logNothing() { LogControlImpl::instance().setLineWriter( shared_ptr() ); } void LogControl::logToStdErr() { LogControlImpl::instance().setLineWriter( shared_ptr( new log::StderrLineWriter ) ); } /////////////////////////////////////////////////////////////////// // // LogControl::TmpExcessive // /////////////////////////////////////////////////////////////////// LogControl::TmpExcessive::TmpExcessive() { LogControlImpl::instance().excessive( true ); } LogControl::TmpExcessive::~TmpExcessive() { LogControlImpl::instance().excessive( false ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const LogControl & obj ) { return str << LogControlImpl::instance(); } ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/LogControl.h000066400000000000000000000154541334444677500175000ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/LogControl.h * */ #ifndef ZYPP_BASE_LOGCONTROL_H #define ZYPP_BASE_LOGCONTROL_H #include #include "zypp/base/Logger.h" #include "zypp/base/PtrTypes.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace log { ///////////////////////////////////////////////////////////////// /** If you want to log the (formated) loglines by yourself, * derive from this, and overload \c writeOut. * Expect \a formated_r to be a formated log line without trailing \c NL. * Ready to be written to the log. */ struct LineWriter { virtual void writeOut( const std::string & /*formated_r*/ ) {} virtual ~LineWriter() {} }; /** Base class for ostream based \ref LineWriter */ struct StreamLineWriter : public LineWriter { StreamLineWriter( std::ostream & str_r ) : _str( &str_r ) {} virtual void writeOut( const std::string & formated_r ) { (*_str) << formated_r << std::endl; } protected: StreamLineWriter() : _str( 0 ) {} std::ostream *_str; }; /** \ref LineWriter to stdout. */ struct StdoutLineWriter : public StreamLineWriter { StdoutLineWriter(); }; /** \ref LineWriter to stderr. */ struct StderrLineWriter : public StreamLineWriter { StderrLineWriter(); }; /** \ref LineWriter to file. * If \c mode_r is not \c 0, \c file_r persissions are changed * accordingly. \c "-" logs to \c cerr. */ struct FileLineWriter : public StreamLineWriter { FileLineWriter( const Pathname & file_r, mode_t mode_r = 0 ); protected: shared_ptr _outs; }; ///////////////////////////////////////////////////////////////// } // namespace log /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : LogControl // /** Maintain logfile related options. * \note A Singleton using a Singleton implementation class, * that's why there is no _pimpl like in other classes. */ class LogControl { friend std::ostream & operator<<( std::ostream & str, const LogControl & obj ); public: /** Singleton access. */ static LogControl instance() { return LogControl(); } /** \see \ref log::LineWriter */ typedef log::LineWriter LineWriter; /** If you want to format loglines by yourself, * derive from this, and overload \c format. * Return a formated logline without trailing \c NL. * Ready to be written to the log. */ struct LineFormater { virtual std::string format( const std::string & /*group_r*/, logger::LogLevel /*level_r*/, const char * /*file_r*/, const char * /*func_r*/, int /*line_r*/, const std::string & /*message_r*/ ); virtual ~LineFormater() {} }; public: /** Assign a LineFormater. * If you want to format loglines by yourself. NULL installs the * default formater. */ void setLineFormater( const shared_ptr & formater_r ); public: /** Set path for the logfile. * Permission for logfiles is set to 0640 unless an explicit mode_t * value is given. An empty pathname turns off logging. "-" * logs to std::err. * \throw if \a logfile_r is not usable. */ void logfile( const Pathname & logfile_r ); void logfile( const Pathname & logfile_r, mode_t mode_r ); /** Turn off logging. */ void logNothing(); /** Log to std::err. */ void logToStdErr(); public: /** Get the current LineWriter */ shared_ptr getLineWriter() const; /** Assign a LineWriter. * If you want to log the (formated) loglines by yourself. * NULL turns off logging (same as logNothing) * \see \ref log::LineWriter */ void setLineWriter( const shared_ptr & writer_r ); public: /** Turn on excessive logging for the lifetime of this object.*/ struct TmpExcessive { TmpExcessive(); ~TmpExcessive(); }; /** Exchange LineWriter for the lifetime of this object. * \see \ref log::LineWriter */ struct TmpLineWriter { TmpLineWriter( const shared_ptr & writer_r = shared_ptr() ) : _writer( LogControl::instance().getLineWriter() ) { LogControl::instance().setLineWriter( writer_r ); } /** Convenience ctor taking over ownership of an allocated LineWriter. *\code * TmpLineWriter mylw( new log::StderrLineWriter ); * \endcode */ template TmpLineWriter( TLineWriter * _allocated_r ) : _writer( LogControl::instance().getLineWriter() ) { LogControl::instance().setLineWriter( shared_ptr( _allocated_r ) ); } ~TmpLineWriter() { LogControl::instance().setLineWriter( _writer ); } private: shared_ptr _writer; }; private: /** Default ctor: Singleton */ LogControl() {} }; /////////////////////////////////////////////////////////////////// /** \relates LogControl Stream output */ std::ostream & operator<<( std::ostream & str, const LogControl & obj ); ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_LOGCONTROL_H libzypp-17.7.0/zypp/base/LogTools.h000066400000000000000000000337401334444677500171560ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/LogTools.h * */ #ifndef ZYPP_BASE_LOGTOOLS_H #define ZYPP_BASE_LOGTOOLS_H #include #include #include #include #include #include #include "zypp/base/Hash.h" #include "zypp/base/Logger.h" #include "zypp/base/Iterator.h" #include "zypp/APIConfig.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// using std::endl; /** Print range defined by iterators (multiline style). * \code * intro [ pfx ITEM [ { sep ITEM }+ ] sfx ] extro * \endcode * * The defaults print the range enclosed in \c {}, one item per * line indented by 2 spaces. * \code * { * item1 * item2 * } * {} // on empty range * \endcode * * A comma separated list enclosed in \c () would be: * \code * dumpRange( stream, begin, end, "(", "", ", ", "", ")" ); * // or shorter: * dumpRangeLine( stream, begin, end ); * \endcode * * \note Some special handling is required for printing std::maps. * Therefore iomaipulators \ref dumpMap, \ref dumpKeys and \ref dumpValues * are provided. * \code * std::map m; * m["a"]=1; * m["b"]=2; * m["c"]=3; * * dumpRange( DBG, dumpMap(m).begin(), dumpMap(m).end() ) << endl; * // { * // [a] = 1 * // [b] = 2 * // [c] = 3 * // } * dumpRange( DBG, dumpKeys(m).begin(), dumpKeys(m).end() ) << endl; * // { * // a * // b * // c * // } * dumpRange( DBG, dumpValues(m).begin(), dumpValues(m).end() ) << endl; * // { * // 1 * // 2 * // 3 * // } * dumpRangeLine( DBG, dumpMap(m).begin(), dumpMap(m).end() ) << endl; * // ([a] = 1, [b] = 2, [c] = 3) * dumpRangeLine( DBG, dumpKeys(m).begin(), dumpKeys(m).end() ) << endl; * // (a, b, c) * dumpRangeLine( DBG, dumpValues(m).begin(), dumpValues(m).end() ) << endl; * // (1, 2, 3) * \endcode */ template std::ostream & dumpRange( std::ostream & str, TIterator begin, TIterator end, const std::string & intro = "{", const std::string & pfx = "\n ", const std::string & sep = "\n ", const std::string & sfx = "\n", const std::string & extro = "}" ) { str << intro; if ( begin != end ) { str << pfx << *begin; for ( ++begin; begin != end; ++begin ) str << sep << *begin; str << sfx; } return str << extro; } /** Print range defined by iterators (single line style). * \see dumpRange */ template std::ostream & dumpRangeLine( std::ostream & str, TIterator begin, TIterator end ) { return dumpRange( str, begin, end, "(", "", ", ", "", ")" ); } /** \overload for container */ template std::ostream & dumpRangeLine( std::ostream & str, const TContainer & cont ) { return dumpRangeLine( str, cont.begin(), cont.end() ); } /////////////////////////////////////////////////////////////////// namespace iomanip { /////////////////////////////////////////////////////////////////// /// \class RangeLine /// \brief Iomanip helper printing dumpRangeLine style /////////////////////////////////////////////////////////////////// template struct RangeLine { RangeLine( TIterator begin, TIterator end ) : _begin( begin ) , _end( end ) {} TIterator _begin; TIterator _end; }; /** \relates RangeLine */ template std::ostream & operator<<( std::ostream & str, const RangeLine & obj ) { return dumpRangeLine( str, obj._begin, obj._end ); } } // namespce iomanip /////////////////////////////////////////////////////////////////// /** Iomanip printing dumpRangeLine style * \code * std::vector c( { 1, 1, 2, 3, 5, 8 } ); * std::cout << rangeLine(c) << std::endl; * -> (1, 1, 2, 3, 5, 8) * \endcode */ template iomanip::RangeLine rangeLine( TIterator begin, TIterator end ) { return iomanip::RangeLine( begin, end ); } /** \overload for container */ template auto rangeLine( const TContainer & cont ) -> decltype( rangeLine( cont.begin(), cont.end() ) ) { return rangeLine( cont.begin(), cont.end() ); } template std::ostream & operator<<( std::ostream & str, const std::vector & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } template std::ostream & operator<<( std::ostream & str, const std::set & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } template std::ostream & operator<<( std::ostream & str, const std::unordered_set & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } template std::ostream & operator<<( std::ostream & str, const std::multiset & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } template std::ostream & operator<<( std::ostream & str, const std::list & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } template std::ostream & operator<<( std::ostream & str, const Iterable & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } /////////////////////////////////////////////////////////////////// namespace _logtoolsdetail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // mapEntry /////////////////////////////////////////////////////////////////// /** std::pair wrapper for std::map output. * Just because we want a special output format for std::pair * used in a std::map. The mapped std::pair is printed as * [key] = value. */ template class MapEntry { public: MapEntry( const TPair & pair_r ) : _pair( &pair_r ) {} const TPair & pair() const { return *_pair; } private: const TPair *const _pair; }; /** \relates MapEntry Stream output. */ template std::ostream & operator<<( std::ostream & str, const MapEntry & obj ) { return str << '[' << obj.pair().first << "] = " << obj.pair().second; } /** \relates MapEntry Convenience function to create MapEntry from std::pair. */ template MapEntry mapEntry( const TPair & pair_r ) { return MapEntry( pair_r ); } /////////////////////////////////////////////////////////////////// // dumpMap /////////////////////////////////////////////////////////////////// /** std::map wrapper for stream output. * Uses a transform_iterator to wrap the std::pair into MapEntry. * */ template class DumpMap { public: typedef TMap MapType; typedef typename TMap::value_type PairType; typedef MapEntry MapEntryType; struct Transformer : public std::unary_function { MapEntryType operator()( const PairType & pair_r ) const { return mapEntry( pair_r ); } }; typedef transform_iterator MapEntry_const_iterator; public: DumpMap( const TMap & map_r ) : _map( &map_r ) {} const TMap & map() const { return *_map; } MapEntry_const_iterator begin() const { return make_transform_iterator( map().begin(), Transformer() ); } MapEntry_const_iterator end() const { return make_transform_iterator( map().end(), Transformer() );} private: const TMap *const _map; }; /** \relates DumpMap Stream output. */ template std::ostream & operator<<( std::ostream & str, const DumpMap & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } /** \relates DumpMap Convenience function to create DumpMap from std::map. */ template DumpMap dumpMap( const TMap & map_r ) { return DumpMap( map_r ); } /////////////////////////////////////////////////////////////////// // dumpKeys /////////////////////////////////////////////////////////////////// /** std::map wrapper for stream output of keys. * Uses MapKVIterator iterate and write the key values. * \code * std::map<...> mymap; * std::cout << dumpKeys(mymap) << std::endl; * \endcode */ template class DumpKeys { public: typedef typename MapKVIteratorTraits::Key_const_iterator MapKey_const_iterator; public: DumpKeys( const TMap & map_r ) : _map( &map_r ) {} const TMap & map() const { return *_map; } MapKey_const_iterator begin() const { return make_map_key_begin( map() ); } MapKey_const_iterator end() const { return make_map_key_end( map() ); } private: const TMap *const _map; }; /** \relates DumpKeys Stream output. */ template std::ostream & operator<<( std::ostream & str, const DumpKeys & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } /** \relates DumpKeys Convenience function to create DumpKeys from std::map. */ template DumpKeys dumpKeys( const TMap & map_r ) { return DumpKeys( map_r ); } /////////////////////////////////////////////////////////////////// // dumpValues /////////////////////////////////////////////////////////////////// /** std::map wrapper for stream output of values. * Uses MapKVIterator iterate and write the values. * \code * std::map<...> mymap; * std::cout << dumpValues(mymap) << std::endl; * \endcode */ template class DumpValues { public: typedef typename MapKVIteratorTraits::Value_const_iterator MapValue_const_iterator; public: DumpValues( const TMap & map_r ) : _map( &map_r ) {} const TMap & map() const { return *_map; } MapValue_const_iterator begin() const { return make_map_value_begin( map() ); } MapValue_const_iterator end() const { return make_map_value_end( map() ); } private: const TMap *const _map; }; /** \relates DumpValues Stream output. */ template std::ostream & operator<<( std::ostream & str, const DumpValues & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } /** \relates DumpValues Convenience function to create DumpValues from std::map. */ template DumpValues dumpValues( const TMap & map_r ) { return DumpValues( map_r ); } ///////////////////////////////////////////////////////////////// } // namespace _logtoolsdetail /////////////////////////////////////////////////////////////////// // iomanipulator using _logtoolsdetail::mapEntry; // std::pair as '[key] = value' using _logtoolsdetail::dumpMap; // dumpRange '[key] = value' using _logtoolsdetail::dumpKeys; // dumpRange keys using _logtoolsdetail::dumpValues; // dumpRange values template std::ostream & operator<<( std::ostream & str, const std::map & obj ) { return str << dumpMap( obj ); } template std::ostream & operator<<( std::ostream & str, const std::unordered_map & obj ) { return str << dumpMap( obj ); } template std::ostream & operator<<( std::ostream & str, const std::multimap & obj ) { return str << dumpMap( obj ); } /** Print stream status bits. * Prints the values of a streams \c good, \c eof, \c failed and \c bad bit. * * \code * [g___] - good * [_eF_] - eof and fail bit set * [__FB] - fail and bad bit set * \endcode */ inline std::ostream & operator<<( std::ostream & str, const std::basic_ios & obj ) { std::string ret( "[" ); ret += ( obj.good() ? 'g' : '_' ); ret += ( obj.eof() ? 'e' : '_' ); ret += ( obj.fail() ? 'F' : '_' ); ret += ( obj.bad() ? 'B' : '_' ); ret += "]"; return str << ret; } /////////////////////////////////////////////////////////////////// // iomanipulator: str << dump(val) << ... // calls: std::ostream & dumpOn( std::ostream & str, const Type & obj ) /////////////////////////////////////////////////////////////////// namespace detail { template struct Dump { Dump( const Tp & obj_r ) : _obj( obj_r ) {} const Tp & _obj; }; template std::ostream & operator<<( std::ostream & str, const Dump & obj ) { return dumpOn( str, obj._obj ); } } template detail::Dump dump( const Tp & obj_r ) { return detail::Dump(obj_r); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_LOGTOOLS_H libzypp-17.7.0/zypp/base/Logger.h000066400000000000000000000123051334444677500166250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Logger.h * */ #ifndef ZYPP_BASE_LOGGER_H #define ZYPP_BASE_LOGGER_H #include #include #include /////////////////////////////////////////////////////////////////// #ifdef ZYPP_NDEBUG #define OSDLOG( MSG ) #define OSMLOG( L, MSG ) #else namespace zypp { namespace debug { void osdlog( const std::string & msg_r, unsigned level_r ); // LogControl.cc } } #define OSDLOG( MSG ) ::zypp::debug::osdlog( MSG, 0 ) #define OSMLOG( L, MSG ) ::zypp::debug::osdlog( MSG, L ) #endif // ZYPP_NDEBUG /////////////////////////////////////////////////////////////////// /** \defgroup ZYPP_BASE_LOGGER_MACROS ZYPP_BASE_LOGGER_MACROS * Convenience macros for logging. * * The macros finaly call @ref getStream, providing appropriate arguments, * to return the log stream. * * @code * L_DBG("foo") << .... * @endcode * Logs a debug message for group @a "foo". * * @code * #undef ZYPP_BASE_LOGGER_LOGGROUP * #define ZYPP_BASE_LOGGER_LOGGROUP "foo" * * DBG << .... * @endcode * Defines group @a "foo" as default for log messages and logs a * debug message. */ /*@{*/ #ifndef ZYPP_BASE_LOGGER_LOGGROUP /** Default log group if undefined. */ #define ZYPP_BASE_LOGGER_LOGGROUP "DEFINE_LOGGROUP" #endif #define XXX L_XXX( ZYPP_BASE_LOGGER_LOGGROUP ) #define DBG L_DBG( ZYPP_BASE_LOGGER_LOGGROUP ) #define MIL L_MIL( ZYPP_BASE_LOGGER_LOGGROUP ) #define WAR L_WAR( ZYPP_BASE_LOGGER_LOGGROUP ) #define ERR L_ERR( ZYPP_BASE_LOGGER_LOGGROUP ) #define SEC L_SEC( ZYPP_BASE_LOGGER_LOGGROUP ) #define INT L_INT( ZYPP_BASE_LOGGER_LOGGROUP ) #define USR L_USR( ZYPP_BASE_LOGGER_LOGGROUP ) #define L_XXX(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_XXX ) #define L_DBG(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP"++", zypp::base::logger::E_MIL ) #define L_MIL(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_MIL ) #define L_WAR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_WAR ) #define L_ERR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_ERR ) #define L_SEC(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_SEC ) #define L_INT(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_INT ) #define L_USR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_USR ) #define L_BASEFILE ( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ ) /** Actual call to @ref getStream. */ #define ZYPP_BASE_LOGGER_LOG(GROUP,LEVEL) \ zypp::base::logger::getStream( GROUP, LEVEL, L_BASEFILE, __FUNCTION__, __LINE__ ) /*@}*/ /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace logger { ///////////////////////////////////////////////////////////////// /** Definition of log levels. * * @see getStream */ enum LogLevel { E_XXX = 999, /**< Excessive logging. */ E_DBG = 0, /**< Debug or verbose. */ E_MIL, /**< Milestone. */ E_WAR, /**< Warning. */ E_ERR, /**< Error. */ E_SEC, /**< Secutrity related. */ E_INT, /**< Internal error. */ E_USR /**< User log. */ }; /** Return a log stream to write on. * * The returned log stream is determined by @a group_r and * @a level_r. The remaining arguments @a file_r, @a func_r * and @a line_r are expected to denote the location in the * source code that issued the message. * * @note You won't call @ref getStream directly, but use the * @ref ZYPP_BASE_LOGGER_MACROS. */ extern std::ostream & getStream( const char * group_r, LogLevel level_r, const char * file_r, const char * func_r, const int line_r ); extern bool isExcessive(); ///////////////////////////////////////////////////////////////// } // namespace logger /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_LOGGER_H libzypp-17.7.0/zypp/base/Measure.cc000066400000000000000000000155361334444677500171560ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Measure.cc * */ extern "C" { #include #include } #include #include "zypp/base/Logger.h" #include "zypp/base/Measure.h" #include "zypp/base/String.h" using std::endl; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "Measure" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace debug { ///////////////////////////////////////////////////////////////// /** Times measured by \ref Measure. */ struct Tm { Tm() : _real( 0 ) , _proc( tmsEmpty ) {} void get() { _real = ::time(NULL); ::times( &_proc ); } Tm operator-( const Tm & rhs ) const { Tm ret( *this ); ret._real -= rhs._real; ret._proc.tms_utime -= rhs._proc.tms_utime; ret._proc.tms_stime -= rhs._proc.tms_stime; ret._proc.tms_cutime -= rhs._proc.tms_cutime; ret._proc.tms_cstime -= rhs._proc.tms_cstime; return ret; } std::string asString() const { std::string ret( timeStr( _real ) ); ret += " (u "; ret += timeStr( asSec( _proc.tms_utime ) ); ret += " s "; ret += timeStr( asSec( _proc.tms_stime ) ); ret += " c "; ret += timeStr( asSec( _proc.tms_cutime + _proc.tms_cstime ) ); ret += ")"; return ret; } std::string stringIf( clock_t ticks_r, const std::string & tag_r ) const { std::string ret; if ( ticks_r ) { ret += tag_r; ret += timeStr( asSec( ticks_r ) ); } return ret; } double asSec( clock_t ticks_r ) const { return double(ticks_r) / ticks; } std::string timeStr( time_t sec_r ) const { time_t h = sec_r/3600; sec_r -= h*3600; time_t m = sec_r/60; sec_r -= m*60; if ( h ) return str::form( "%lu:%02lu:%02lu", h, m, sec_r ); if ( m ) return str::form( "%lu:%02lu", m, sec_r ); return str::form( "%lu", sec_r ); } std::string timeStr( double sec_r ) const { time_t h = time_t(sec_r)/3600; sec_r -= h*3600; time_t m = time_t(sec_r)/60; sec_r -= m*60; if ( h ) return str::form( "%lu:%02lu:%05.2lf", h, m, sec_r ); if ( m ) return str::form( "%lu:%05.2lf", m, sec_r ); return str::form( "%.2lf", sec_r ); } /** Systems ticks per second. */ static const long ticks; /** Empty struct tms. */ static const struct tms tmsEmpty; /** Real time via \c ::time. */ time_t _real; /** Process times via \c ::times. */ struct tms _proc; }; const struct tms Tm::tmsEmpty = { 0, 0, 0, 0 }; const long Tm::ticks = sysconf(_SC_CLK_TCK); /** \refers Tm Stream output. */ std::ostream & operator<<( std::ostream & str, const Tm & obj ) { return str << obj.asString(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Measure::Impl // /** Measure implementation. */ class Measure::Impl { public: Impl( const std::string & ident_r ) : _ident ( ident_r ) , _level ( _glevel ) , _seq ( 0 ) { _glevel += ".."; log() << _level << "START MEASURE(" << _ident << ")" << endl; _start.get(); } ~Impl() { _stop.get(); ++_seq; std::ostream & str( log() << _level << "MEASURE(" << _ident << ") " ); dumpMeasure( str ); _glevel.erase( 0, 2 ); } void restart() { log() << _level << "RESTART MEASURE(" << _ident << ")" << endl; _start = _stop; } void elapsed( const std::string & tag_r = std::string() ) const { _stop.get(); ++_seq; std::ostream & str( log() << _level << "ELAPSED(" << _ident << ") " ); dumpMeasure( str, tag_r ); _elapsed = _stop; } private: /** Return the log stream. */ std::ostream & log() const { return INT; } std::ostream & dumpMeasure( std::ostream & str_r, const std::string & tag_r = std::string() ) const { str_r << ( _stop - _start ); if ( _seq > 1 ) // diff to previous _elapsed { str_r << " [" << ( _stop - _elapsed ) << "]"; } if ( ! tag_r.empty() ) str_r << " - " << tag_r; return str_r << endl; } private: static std::string _glevel; std::string _ident; std::string _level; Tm _start; mutable unsigned _seq; mutable Tm _elapsed; mutable Tm _stop; }; std::string Measure::Impl::_glevel; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Measure // /////////////////////////////////////////////////////////////////// Measure::Measure() {} Measure::Measure( const std::string & ident_r ) : _pimpl( new Impl( ident_r ) ) {} Measure::~Measure() {} void Measure::start( const std::string & ident_r ) { stop(); _pimpl.reset( new Impl( ident_r ) ); } void Measure::restart() { _pimpl->restart(); } void Measure::elapsed() const { if ( _pimpl ) _pimpl->elapsed(); } void Measure::elapsed( const std::string & tag_r ) const { if ( _pimpl ) _pimpl->elapsed( tag_r ); } void Measure::elapsed( long tag_r ) const { if ( _pimpl ) _pimpl->elapsed( asString( tag_r ) ); } void Measure::stop() { _pimpl.reset(); } ///////////////////////////////////////////////////////////////// } // namespace debug /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/Measure.h000066400000000000000000000076261334444677500170210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Measure.h * */ #ifndef ZYPP_BASE_MEASURE_H #define ZYPP_BASE_MEASURE_H #include #include #include "zypp/base/PtrTypes.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace debug { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Measure // /** Tool to measure elapsed real and process times. * * Timer is started by either passing a string to the ctor, * or callign \ref start. The string passed is printed on * all messages to help identifying the timer. * * Elapsed time is printed on calling \ref elapsed (timer * keeps running) or \ref stop. * * Calling \ref stop, stops the timer. The same, if the timer * goes out of scope. * * Elapsed time is printed as: * \code * 'REAL TIME' (u 'USER TIME' s 'SYSTEM TIME' c 'TIME OF CHILDREN') * \endcode * In brackets the time elapsed since a previous call to \ref elapsed. * All units are seconds. * * \code * Measure m( "Parse" ); * ... * m.elapsed(); * ... * m.elapsed(); * ... * m.elapsed(); * ... * m.stop(); * * // START MEASURE(Parse) * // ELAPSED(Parse) 0 (u 0.13 s 0.00 c 0.00) * // ELAPSED(Parse) 0 (u 0.15 s 0.02 c 0.00) [ 0 (u 0.02 s 0.02 c 0.00)] * // ELAPSED(Parse) 0 (u 0.17 s 0.02 c 0.00) [ 0 (u 0.02 s 0.00 c 0.00)] * // MEASURE(Parse) 0 (u 0.17 s 0.02 c 0.00) [ 0 (u 0.00 s 0.00 c 0.00)] * \endcode */ class Measure { public: /** Default Ctor does nothing. */ Measure(); /** Ctor taking \a ident_r string and auto starts timer. */ explicit Measure( const std::string & ident_r ); /** Dtor. */ ~Measure(); /** Start timer for \a ident_r string. * Implies stoping a running timer. */ void start( const std::string & ident_r = std::string() ); /** re start the timer without reset-ing it. */ void restart(); /** Print elapsed time for a running timer. * Timer keeps on running. */ void elapsed() const; /** \overload Tagging the time with some text * \code * elapsed( "after action foo..." ); * \endcode */ void elapsed( const std::string & tag_r ) const; /** \overload Tagging the time with e.g. a line number * \code * elapsed( __LINE__ ); * \endcode */ void elapsed( long tag_r ) const; /** Stop a running timer. */ void stop(); private: /** Implementation. */ class Impl; /** Pointer to implementation. */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace debug /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_MEASURE_H libzypp-17.7.0/zypp/base/NamedValue.h000066400000000000000000000120201334444677500174210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/NamedValue.h * */ #ifndef ZYPP_BASE_NAMEDVALUE_H #define ZYPP_BASE_NAMEDVALUE_H #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class NamedValue /// \brief Simple value<>name mapping supporting aliases. /// \code /// enum Commands { /// CMD_1, /// CMD_2 /// }; /// NamedValue clist; /// // Value | Name | Alias... /// clist( CMD_1 ) | "cmd1"; /// clist( CMD_2 ) | "cmd2" | "second"; /// /// std::string name( clist.getName( CMD_1 ) ); /// Commands cmd( clist.getValue( "second" ) ); /// \endcode /////////////////////////////////////////////////////////////////// template< class Tp, const bool _tWithAlias = true > class NamedValue { typedef std::map< std::string, Tp > NameMap; typedef std::map< Tp, std::string > ValueMap; public: /** Whether not initialized (no (name,value) pair remembered) */ bool empty() const { return( _nameMap.empty() && _valueMap.empty() ); } public: /** \name Get value for name or alias. */ //@{ /** Whether there is a \c value mapped for \a name_r. */ bool haveValue( const std::string & name_r ) const { typename NameMap::const_iterator it( _nameMap.find( name_r ) ); return( it != _nameMap.end() ); } /** Get value mapped for name or alias. * \return \c true if name or alias was found. */ bool getValue( const std::string & name_r, Tp & value_r ) const { typename NameMap::const_iterator it( _nameMap.find( name_r ) ); if ( it == _nameMap.end() ) return false; value_r = it->second; return true; } /** \overload \throws std::out_of_range exception if \a name_r was not found. */ const Tp & getValue( const std::string & name_r ) const { return _nameMap.at( name_r ); } //@} /** \name Get name for value. */ //@{ /** Whether there is a \c name mapped for \a value_r. */ bool haveName( const std::string & value_r ) const { typename ValueMap::const_iterator it( _valueMap.find( value_r ) ); return( it != _valueMap.end() ); } /** Get name of value. * \return \c true if name or alias was found. */ bool getName( const Tp & value_r, std::string & name_r ) const { typename ValueMap::const_iterator it( _valueMap.find( value_r ) ); if ( it == _valueMap.end() ) return false; value_r = it->second; return true; } /** \overload \throws std::out_of_range exception if \a value_r was not found. */ const std::string & getName( const Tp & value_r ) const { return _valueMap.at( value_r ); } //@} public: /** \name Inserter */ //@{ class TInserter { public: TInserter( NamedValue & parent_r, const Tp & value_r ) : _parent( &parent_r ) , _value( value_r ) {} TInserter & operator|( const std::string & name_r ) { _parent->insert( _value, name_r ); return *this; } private: NamedValue * _parent; Tp _value; }; TInserter operator()( const Tp & value_r ) { return TInserter( *this, value_r ); } //@} /** Remember name (1st call) or alias (subsequent calls). * \return \C true if this is the 1st call for \a value_r. * \throws std::logic_error if \a name_r is already used as name or alias. * \throws std::logic_error if \c _tWithAlias is \c false and a name for \a value_r is already defined. */ bool insert( const Tp & value_r, const std::string & name_r ) { typename NameMap::const_iterator nit( _nameMap.find( name_r ) ); if ( nit != _nameMap.end() ) // duplicate name throw std::logic_error( "NamedValue::insert name" ); typename ValueMap::const_iterator tit( _valueMap.find( value_r ) ); if ( tit != _valueMap.end() ) // duplicate value, i.e. an alias { if ( !_tWithAlias ) throw std::logic_error( "NamedValue::insert alias" ); _nameMap[name_r] = value_r; return false; } // here: 1st entry for value_r _nameMap[name_r] = value_r; _valueMap[value_r] = name_r; return true; } private: NameMap _nameMap; ValueMap _valueMap; }; /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_NAMEDVALUE_H libzypp-17.7.0/zypp/base/NonCopyable.h000066400000000000000000000027521334444677500176240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/NonCopyable.h */ #ifndef ZYPP_BASE_NONCOPYABLE_H #define ZYPP_BASE_NONCOPYABLE_H #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /** Ensure derived classes cannot be copied. * Use private inheritance. */ typedef boost::noncopyable NonCopyable; ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_NONCOPYABLE_H libzypp-17.7.0/zypp/base/ProfilingFormater.cc000066400000000000000000000050331334444677500211750ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ProfilingFormater.cc * */ #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/LogControl.h" #include "zypp/base/String.h" #include "zypp/Date.h" #include "zypp/PathInfo.h" #include "zypp/base/ProfilingFormater.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // ProfilingFormater /////////////////////////////////////////////////////////////////// std::string ProfilingFormater::format( const std::string & group_r, logger::LogLevel level_r, const char * file_r, const char * func_r, int line_r, const std::string & message_r ) { struct timeval tp; gettimeofday( &tp, NULL); return str::form( "%ld.%ld [%d] <%d> %s(%s):%d %s", tp.tv_sec, tp.tv_usec, level_r, getpid(), /*group_r.c_str(),*/ file_r, func_r, line_r, message_r.c_str() ); } ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/ProfilingFormater.h000066400000000000000000000036541334444677500210460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ProfilingFormater.h * */ #ifndef ZYPP_BASE_PROFILINGFORMATER_H #define ZYPP_BASE_PROFILINGFORMATER_H #include #include #include "zypp/base/LogControl.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// struct ProfilingFormater : public LogControl::LineFormater { virtual std::string format( const std::string & /*group_r*/, logger::LogLevel /*level_r*/, const char * /*file_r*/, const char * /*func_r*/, int /*line_r*/, const std::string & /*message_r*/ ); virtual ~ProfilingFormater() {} }; ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_PROFILINGFORMATER_H libzypp-17.7.0/zypp/base/ProvideNumericId.h000066400000000000000000000064721334444677500206260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ProvideNumericId.h * */ #ifndef ZYPP_BASE_PROVIDENUMERICID_H #define ZYPP_BASE_PROVIDENUMERICID_H /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ProvideNumericId // /** Base class for objects providing a numeric Id. * The ctor creates a NumericId from some static counter. * * The only assertion is that \c 0 is not used as an Id, * \b unless the derived class explicitly requests this by * using \ref ProvideNumericId( const void *const ). * * Why should you want to use \c 0 as an Id? E.g if your class * provides some (singleton) No-object. Might be desirable to * make the No-object have No-Id. * * \code * struct Foo : public base::ProvideNumericId * {}; * Foo foo; * foo.numericId(); // returns foo's NumericId. * \endcode */ template struct ProvideNumericId { public: /** \return The objects numeric Id. */ TNumericIdType numericId() const { return _numericId; } protected: /** Default ctor */ ProvideNumericId() : _numericId( nextId() ) {} /** Copy ctor */ ProvideNumericId( const ProvideNumericId & /*rhs*/ ) : _numericId( nextId() ) {} /** Assign */ ProvideNumericId & operator=( const ProvideNumericId & /*rhs*/ ) { return *this; } /** Dtor */ ~ProvideNumericId() {} protected: /** No-Id ctor (0). * Explicitly request Id \c 0. Use it with care! */ ProvideNumericId( const void *const ) : _numericId( 0 ) {} private: /** Provide the next Id to use. */ static TNumericIdType nextId() { static TNumericIdType _staticCounter = 0; // Assert not returning 0 return ++_staticCounter; } /** */ const TNumericIdType _numericId; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_PROVIDENUMERICID_H libzypp-17.7.0/zypp/base/PtrTypes.h000066400000000000000000000522261334444677500172060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/PtrTypes.h * \ingroup ZYPP_SMART_PTR * \see ZYPP_SMART_PTR */ #ifndef ZYPP_BASE_PTRTYPES_H #define ZYPP_BASE_PTRTYPES_H #include #include #include #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace str { // printing void* (prevents us from including ) std::string form( const char * format, ... ) __attribute__ ((format (printf, 1, 2))); } /** \defgroup ZYPP_SMART_PTR Smart pointer types * Smart pointer types. * * Namespace zypp provides 3 smart pointer types \b using the * boost smart pointer library. * * \li \c scoped_ptr Simple sole ownership of single objects. Noncopyable. * * \li \c shared_ptr Object ownership shared among multiple pointers * * \li \c weak_ptr Non-owning observers of an object owned by shared_ptr. * * And \ref zypp::RW_pointer, as wrapper around a smart pointer, * poviding \c const correct read/write access to the object it refers. */ /*@{*/ /** shared_ptr custom deleter doing nothing. * A custom deleter is a function being called when the * last shared_ptr goes out of score. Per default the * object gets deleted, but you can insall custom deleters * as well. This one does nothing. * * \code * // Some class providing a std::istream * struct InpuStream * { * // Per deafult use std::cin. * InputStream() * : _stream( &std::cin, NullDeleter() ) * {} * // Or read from a file. * InputStream( const Pathname & file_r ) * : _stream( new ifgzstream( _path.asString().c_str() ) ) * {} * // Or use a stream priovided by the application. * InputStream( std::istream & stream_r ) * : _stream( &stream_r, NullDeleter() ) * {} * * std::istream & stream() * { return *_stream; } * * private: * shared_ptr _stream; * }; * \endcode */ struct NullDeleter { void operator()( const void *const ) const {} }; /** \class scoped_ptr */ using boost::scoped_ptr; /** \class shared_ptr */ using boost::shared_ptr; /** \class weak_ptr */ using boost::weak_ptr; /** \class intrusive_ptr */ using boost::intrusive_ptr; /** */ using boost::static_pointer_cast; /** */ using boost::const_pointer_cast; /** */ using boost::dynamic_pointer_cast; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace std { ///////////////////////////////////////////////////////////////// // namespace sub { // class Foo; // typedef zypp::intrusive_ptr Foo_Ptr; // see DEFINE_PTR_TYPE(NAME) macro below // } // Defined in namespace std g++ finds the output operator (König-Lookup), // even if we typedef the pointer in a different namespace than ::zypp. // Otherwise we had to define an output operator always in the same namespace // as the typedef (else g++ will just print the pointer value). /** \relates zypp::shared_ptr Stream output. */ template inline std::ostream & operator<<( std::ostream & str, const zypp::shared_ptr & obj ) { if ( obj ) return str << *obj; return str << std::string("NULL"); } /** \overload specialize for void */ template<> inline std::ostream & operator<<( std::ostream & str, const zypp::shared_ptr & obj ) { if ( obj ) return str << zypp::str::form( "%p", (void*)obj.get() ); return str << std::string("NULL"); } /** \relates zypp::shared_ptr Stream output. */ template inline std::ostream & dumpOn( std::ostream & str, const zypp::shared_ptr & obj ) { if ( obj ) return dumpOn( str, *obj ); return str << std::string("NULL"); } /** \overload specialize for void */ template<> inline std::ostream & dumpOn( std::ostream & str, const zypp::shared_ptr & obj ) { return str << obj; } /** \relates zypp::intrusive_ptr Stream output. */ template inline std::ostream & operator<<( std::ostream & str, const zypp::intrusive_ptr & obj ) { if ( obj ) return str << *obj; return str << std::string("NULL"); } /** \relates zypp::intrusive_ptr Stream output. */ template inline std::ostream & dumpOn( std::ostream & str, const zypp::intrusive_ptr & obj ) { if ( obj ) return dumpOn( str, *obj ); return str << std::string("NULL"); } ///////////////////////////////////////////////////////////////// } // namespace std /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // RW_pointer traits // /////////////////////////////////////////////////////////////////// /** * Don't forgett to provide versions for PtrType and constPtrType, * esp. if creation a of temporary is not acceptable (eg. when * checking the ref count value). */ namespace rw_pointer { template struct Shared { typedef shared_ptr PtrType; typedef shared_ptr constPtrType; /** Check whether pointer is not shared. */ bool unique( const constPtrType & ptr_r ) { return !ptr_r || ptr_r.unique(); } bool unique( const PtrType & ptr_r ) { return !ptr_r || ptr_r.unique(); } /** Return number of references. */ long use_count( const constPtrType & ptr_r ) const { return ptr_r.use_count(); } long use_count( const PtrType & ptr_r ) const { return ptr_r.use_count(); } }; template struct Intrusive { typedef intrusive_ptr PtrType; typedef intrusive_ptr constPtrType; /** Check whether pointer is not shared. */ bool unique( const constPtrType & ptr_r ) { return !ptr_r || (ptr_r->refCount() <= 1); } bool unique( const PtrType & ptr_r ) { return !ptr_r || (ptr_r->refCount() <= 1); } /** Return number of references. */ long use_count( const constPtrType & ptr_r ) const { return ptr_r ? ptr_r->refCount() : 0; } long use_count( const PtrType & ptr_r ) const { return ptr_r ? ptr_r->refCount() : 0; } }; template struct Scoped { typedef scoped_ptr PtrType; typedef scoped_ptr constPtrType; /** Check whether pointer is not shared. */ bool unique( const constPtrType & ptr_r ) { return true; } bool unique( const PtrType & ptr_r ) { return true; } /** Return number of references. */ long use_count( const constPtrType & ptr_r ) const { return ptr_r ? 1 : 0; } long use_count( const PtrType & ptr_r ) const { return ptr_r ? 1 : 0; } }; } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RW_pointer // /** Wrapper for \c const correct access via \ref ZYPP_SMART_PTR. * * zypp::RW_pointer\ stores a \ref ZYPP_SMART_PTR * of type \c DTraits::PtrType, which must be convertible into a D *. * Pointer style access (via \c -> and \c *) offers a const D * in const * a context, otherwise a D *. Thus \em RW_ means \em read/write, * as you get a different type, dependent on whether you're allowed to * read or write. * * Forwarding access from an interface to an implemantation class, an * RW_pointer prevents const interface methods from accidentally calling * nonconst implementation methods. * * The second template argument defaults to * DTraits = rw_pointer::Shared thus wraping a * shared_ptr. To wrap an intrusive_ptr * use rw_pointer::Intrusive. * * \see zypp::RWCOW_pointer for 'copy on write' functionality. * * \code * #include "zypp/base/PtrTypes.h" * * class Foo * { * ... * private: * // Implementation class * struct Impl; * // Pointer to implementation; actually a shared_ptr * RW_pointer _pimpl; * * void baa() { _pimpl->... } // is Impl * * void baa() const { _pimpl->... } // is Impl const * * }; * \endcode */ template > struct RW_pointer { typedef typename DTraits::PtrType PtrType; typedef typename DTraits::constPtrType constPtrType; RW_pointer() {} RW_pointer( std::nullptr_t ) {} explicit RW_pointer( typename PtrType::element_type * dptr ) : _dptr( dptr ) {} explicit RW_pointer( PtrType dptr ) : _dptr( dptr ) {} RW_pointer & operator=( std::nullptr_t ) { reset(); return *this; } void reset() { PtrType().swap( _dptr ); } void reset( typename PtrType::element_type * dptr ) { PtrType( dptr ).swap( _dptr ); } void swap( RW_pointer & rhs ) { _dptr.swap( rhs._dptr ); } void swap( PtrType & rhs ) { _dptr.swap( rhs ); } explicit operator bool() const { return _dptr.get() != nullptr; } const D & operator*() const { return *_dptr; }; const D * operator->() const { return _dptr.operator->(); } const D * get() const { return _dptr.get(); } D & operator*() { return *_dptr; } D * operator->() { return _dptr.operator->(); } D * get() { return _dptr.get(); } public: bool unique() const { return DTraits().unique( _dptr ); } long use_count() const { return DTraits().use_count( _dptr ); } constPtrType getPtr() const { return _dptr; } PtrType getPtr() { return _dptr; } constPtrType cgetPtr() { return _dptr; } private: PtrType _dptr; }; /////////////////////////////////////////////////////////////////// /** \relates RW_pointer Stream output. * * Print the \c D object the RW_pointer refers, or \c "NULL" * if the pointer is \c NULL. */ template inline std::ostream & operator<<( std::ostream & str, const RW_pointer & obj ) { if ( obj.get() ) return str << *obj.get(); return str << std::string("NULL"); } /** \relates RW_pointer */ template inline bool operator==( const RW_pointer & lhs, const RW_pointer & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RW_pointer */ template inline bool operator==( const RW_pointer & lhs, const typename DPtr::PtrType & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RW_pointer */ template inline bool operator==( const typename DPtr::PtrType & lhs, const RW_pointer & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RW_pointer */ template inline bool operator==( const RW_pointer & lhs, const typename DPtr::constPtrType & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RW_pointer */ template inline bool operator==( const typename DPtr::constPtrType & lhs, const RW_pointer & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RW_pointer */ template inline bool operator==( const RW_pointer & lhs, std::nullptr_t ) { return( lhs.get() == nullptr ); } /** \relates RW_pointer */ template inline bool operator==( std::nullptr_t, const RW_pointer & rhs ) { return( nullptr == rhs.get() ); } /** \relates RW_pointer */ template inline bool operator!=( const RW_pointer & lhs, const RW_pointer & rhs ) { return ! ( lhs == rhs ); } /** \relates RW_pointer */ template inline bool operator!=( const RW_pointer & lhs, const typename DPtr::PtrType & rhs ) { return ! ( lhs == rhs ); } /** \relates RW_pointer */ template inline bool operator!=( const typename DPtr::PtrType & lhs, const RW_pointer & rhs ) { return ! ( lhs == rhs ); } /** \relates RW_pointer */ template inline bool operator!=( const RW_pointer & lhs, const typename DPtr::constPtrType & rhs ) { return ! ( lhs == rhs ); } /** \relates RW_pointer */ template inline bool operator!=( const typename DPtr::constPtrType & lhs, const RW_pointer & rhs ) { return ! ( lhs == rhs ); } /** \relates RW_pointer */ template inline bool operator!=( const RW_pointer & lhs, std::nullptr_t ) { return( lhs.get() != nullptr ); } /** \relates RW_pointer */ template inline bool operator!=( std::nullptr_t, const RW_pointer & rhs ) { return( nullptr != rhs.get() ); } /////////////////////////////////////////////////////////////////// /** \relates RWCOW_pointer Clone the underlying object. * Calls \a rhs -\>clone(). Being defined as a * function outside \ref RWCOW_pointer allows to overload * it, in case a specific \a D does not have clone(). */ template inline D * rwcowClone( const D * rhs ) { return rhs->clone(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : RWCOW_pointer // /** \ref RW_pointer supporting 'copy on write' functionality. * * \em Write access to the underlying object creates a copy, iff * the object is shared. * * See \ref RW_pointer. */ template > struct RWCOW_pointer { typedef typename DTraits::PtrType PtrType; typedef typename DTraits::constPtrType constPtrType; RWCOW_pointer() {} RWCOW_pointer( std::nullptr_t ) {} explicit RWCOW_pointer( typename PtrType::element_type * dptr ) : _dptr( dptr ) {} explicit RWCOW_pointer( PtrType dptr ) : _dptr( dptr ) {} RWCOW_pointer & operator=( std::nullptr_t ) { reset(); return *this; } void reset() { PtrType().swap( _dptr ); } void reset( typename PtrType::element_type * dptr ) { PtrType( dptr ).swap( _dptr ); } void swap( RWCOW_pointer & rhs ) { _dptr.swap( rhs._dptr ); } void swap( PtrType & rhs ) { _dptr.swap( rhs ); } explicit operator bool() const { return _dptr.get() != nullptr; } const D & operator*() const { return *_dptr; }; const D * operator->() const { return _dptr.operator->(); } const D * get() const { return _dptr.get(); } D & operator*() { assertUnshared(); return *_dptr; } D * operator->() { assertUnshared(); return _dptr.operator->(); } D * get() { assertUnshared(); return _dptr.get(); } public: bool unique() const { return DTraits().unique( _dptr ); } long use_count() const { return DTraits().use_count( _dptr ); } constPtrType getPtr() const { return _dptr; } PtrType getPtr() { assertUnshared(); return _dptr; } constPtrType cgetPtr() { return _dptr; } private: void assertUnshared() { if ( !unique() ) PtrType( rwcowClone( _dptr.get() ) ).swap( _dptr ); } private: PtrType _dptr; }; /////////////////////////////////////////////////////////////////// /** \relates RWCOW_pointer Stream output. * * Print the \c D object the RWCOW_pointer refers, or \c "NULL" * if the pointer is \c NULL. */ template inline std::ostream & operator<<( std::ostream & str, const RWCOW_pointer & obj ) { if ( obj.get() ) return str << *obj.get(); return str << std::string("NULL"); } /** \relates RWCOW_pointer */ template inline bool operator==( const RWCOW_pointer & lhs, const RWCOW_pointer & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RWCOW_pointer */ template inline bool operator==( const RWCOW_pointer & lhs, const typename DPtr::PtrType & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RWCOW_pointer */ template inline bool operator==( const typename DPtr::PtrType & lhs, const RWCOW_pointer & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RWCOW_pointer */ template inline bool operator==( const RWCOW_pointer & lhs, const typename DPtr::constPtrType & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RWCOW_pointer */ template inline bool operator==( const typename DPtr::constPtrType & lhs, const RWCOW_pointer & rhs ) { return( lhs.get() == rhs.get() ); } /** \relates RWCOW_pointer */ template inline bool operator==( const RWCOW_pointer & lhs, std::nullptr_t ) { return( lhs.get() == nullptr ); } /** \relates RWCOW_pointer */ template inline bool operator==( std::nullptr_t, const RWCOW_pointer & rhs ) { return( nullptr == rhs.get() ); } /** \relates RWCOW_pointer */ template inline bool operator!=( const RWCOW_pointer & lhs, const RWCOW_pointer & rhs ) { return ! ( lhs == rhs ); } /** \relates RWCOW_pointer */ template inline bool operator!=( const RWCOW_pointer & lhs, const typename DPtr::PtrType & rhs ) { return ! ( lhs == rhs ); } /** \relates RWCOW_pointer */ template inline bool operator!=( const typename DPtr::PtrType & lhs, const RWCOW_pointer & rhs ) { return ! ( lhs == rhs ); } /** \relates RWCOW_pointer */ template inline bool operator!=( const RWCOW_pointer & lhs, const typename DPtr::constPtrType & rhs ) { return ! ( lhs == rhs ); } /** \relates RWCOW_pointer */ template inline bool operator!=( const typename DPtr::constPtrType & lhs, const RWCOW_pointer & rhs ) { return ! ( lhs == rhs ); } /** \relates RWCOW_pointer */ template inline bool operator!=( const RWCOW_pointer & lhs, std::nullptr_t ) { return( lhs.get() != nullptr ); } /** \relates RWCOW_pointer */ template inline bool operator!=( std::nullptr_t, const RWCOW_pointer & rhs ) { return( nullptr != rhs.get() ); } /////////////////////////////////////////////////////////////////// /*@}*/ ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /** Forward declaration of Ptr types */ #define DEFINE_PTR_TYPE(NAME) \ class NAME; \ extern void intrusive_ptr_add_ref( const NAME * ); \ extern void intrusive_ptr_release( const NAME * ); \ typedef zypp::intrusive_ptr NAME##_Ptr; \ typedef zypp::intrusive_ptr NAME##_constPtr; /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_PTRTYPES_H libzypp-17.7.0/zypp/base/Random.cc000066400000000000000000000017001334444677500167610ustar00rootroot00000000000000#include #include #include "zypp/base/Random.h" using namespace std; namespace zypp { namespace base { // Taken from KApplication int random_int() { static bool init = false; if (!init) { unsigned int seed; init = true; int fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC); if (fd < 0 || ::read(fd, &seed, sizeof(seed)) != sizeof(seed)) { // No /dev/urandom... try something else. srand(getpid()); seed = rand()+time(0); } if (fd >= 0) close(fd); srand(seed); } return rand(); } // Taken from KApplication std::string random_string(int length) { if (length <=0 ) return std::string(); std::string str; str.resize( length ); int i = 0; while (length--) { int r=::random() % 62; r+=48; if (r>57) r+=7; if (r>90) r+=6; str[i++] = char(r); // so what if I work backwards? } return str; } } } libzypp-17.7.0/zypp/base/Random.h000066400000000000000000000030331334444677500166240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_BASE_Random_H #define ZYPP_BASE_Random_H #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////// // Taken from KApplication int random_int(); // Taken from KApplication std::string random_string(int length); /** Return a random number from [0,RAND_MAX[. */ inline unsigned random() { return random_int(); } /** Return a random number from [0,size_r[. */ inline unsigned random( unsigned size_r ) { return random_int() % size_r; } /** Return a random number from [min_r,min_r+size_r[. */ inline unsigned random( unsigned min_r, unsigned size_r ) { return min_r + random( size_r ); } } //ns base } // ns zypp #endif libzypp-17.7.0/zypp/base/ReferenceCounted.cc000066400000000000000000000041341334444677500207650ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ReferenceCounted.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/base/ReferenceCounted.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// ReferenceCounted::ReferenceCounted() : _counter( 0 ) {} ReferenceCounted::ReferenceCounted( const ReferenceCounted & /*rhs*/ ) : _counter( 0 ) {} ReferenceCounted::~ReferenceCounted() { if ( _counter ) { INT << "~ReferenceCounted: nonzero reference count" << std::endl; } } void ReferenceCounted::unrefException() const { INT << "ReferenceCounted::unref: zero reference count" << std::endl; throw std::out_of_range( "ReferenceCounted::unref: zero reference count" ); } std::ostream & ReferenceCounted::dumpOn( std::ostream & str ) const { return str << "ReferenceCounted(@" << (const void *)this << "<=" << _counter << ")"; } ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/ReferenceCounted.h000066400000000000000000000115131334444677500206260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ReferenceCounted.h * */ #ifndef ZYPP_BASE_REFERENCECOUNTED_H #define ZYPP_BASE_REFERENCECOUNTED_H #include #include "zypp/base/PtrTypes.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ReferenceCounted // /** Base class for reference counted objects. * \todo Make counter thread safe. */ class ReferenceCounted { /** Stream output via dumpOn. */ friend std::ostream & operator<<( std::ostream & str, const ReferenceCounted & obj ); public: /** Default ctor. * Initial reference count is zero. */ ReferenceCounted(); /** Copy ctor. * Initial reference count is zero. */ ReferenceCounted( const ReferenceCounted & rhs ); /** Dtor. * \throw std::out_of_range if reference count is not zero. */ virtual ~ReferenceCounted(); /** Assignment. * Reference count remains untouched. */ ReferenceCounted & operator=( const ReferenceCounted & ) { return *this; } public: /** Return reference counter value. */ unsigned refCount() const { return _counter; } /** Add a reference. */ void ref() const { ref_to( ++_counter ); } /** Release a reference. * Deletes the object if reference count gets zero. * \throw std::out_of_range if reference count is zero. */ void unref() const { if ( !_counter ) unrefException(); // will throw! if ( --_counter ) unref_to( _counter ); else delete this; } /** Called by zypp::intrusive_ptr to add a reference. * \see ZYPP_SMART_PTR */ static void add_ref( const ReferenceCounted * ptr_r ) { if( ptr_r ) ptr_r->ref(); } /** Called by zypp::intrusive_ptr to add a reference. * \see ZYPP_SMART_PTR */ static void release( const ReferenceCounted * ptr_r ) { if( ptr_r ) ptr_r->unref(); } protected: /** Overload to realize std::ostream & operator\<\<. */ virtual std::ostream & dumpOn( std::ostream & str ) const; /** Trigger derived classes after refCount was increased. */ virtual void ref_to( unsigned /* rep_cnt_r */ ) const {} /** Trigger derived classes after refCount was decreased. * No trigger is sent, if refCount got zero (i.e. the * object is deleted). **/ virtual void unref_to( unsigned /* rep_cnt_r */ ) const {} private: /** The reference counter. */ mutable unsigned _counter; /** Throws Exception on unref. */ void unrefException() const; }; /////////////////////////////////////////////////////////////////// /** \relates ReferenceCounted intrusive_ptr hook to add_ref. */ inline void intrusive_ptr_add_ref( const ReferenceCounted * ptr_r ) { ReferenceCounted::add_ref( ptr_r ); } /** \relates ReferenceCounted intrusive_ptr hook to release. */ inline void intrusive_ptr_release( const ReferenceCounted * ptr_r ) { ReferenceCounted::release( ptr_r ); } /** \relates ReferenceCounted Stream output. */ inline std::ostream & operator<<( std::ostream & str, const ReferenceCounted & obj ) { return obj.dumpOn( str ); } ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #define IMPL_PTR_TYPE(NAME) \ void intrusive_ptr_add_ref( const NAME * ptr_r ) \ { zypp::base::ReferenceCounted::add_ref( ptr_r ); } \ void intrusive_ptr_release( const NAME * ptr_r ) \ { zypp::base::ReferenceCounted::release( ptr_r ); } /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_REFERENCECOUNTED_H libzypp-17.7.0/zypp/base/Regex.cc000066400000000000000000000056471334444677500166310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Regex.cc * */ #include #include #include #include "zypp/base/Regex.h" using namespace zypp; using namespace zypp::str; regex::regex() : m_flags(match_extended) , m_valid(false) { } void regex::assign(const std::string& str,int flags) { m_valid = true; m_str = str; m_flags = flags; int err; char errbuff[100]; static const int normal = 1<<16; // deprecated legacy, use match_extended if (!(flags & normal)) { flags |= match_extended; flags &= ~(normal); } if ((err = regcomp(&m_preg, str.c_str(), flags))) { m_valid = false; regerror(err, &m_preg, errbuff, sizeof(errbuff)); ZYPP_THROW(regex_error(std::string(errbuff))); } } regex::regex(const std::string& str, int flags) { assign(str, flags); } regex::~regex() throw() { if (m_valid) regfree(&m_preg); } bool zypp::str::regex_match(const char * s, smatch& matches, const regex& regex) { bool r = s && regex.m_valid && !regexec(®ex.m_preg, s, 12, &matches.pmatch[0], 0); if (r) matches.match_str = s; return r; } bool zypp::str::regex_match(const char * s, const regex& regex) { return s && !regexec(®ex.m_preg, s, 0, NULL, 0); } smatch::smatch() { memset(&pmatch, -1, sizeof(pmatch)); } std::string smatch::operator[](unsigned i) const { if ( i < sizeof(pmatch)/sizeof(*pmatch) && pmatch[i].rm_so != -1 ) return match_str.substr( pmatch[i].rm_so, pmatch[i].rm_eo-pmatch[i].rm_so ); return std::string(); } std::string::size_type smatch::begin( unsigned i ) const { return( i < sizeof(pmatch)/sizeof(*pmatch) && pmatch[i].rm_so != -1 ? pmatch[i].rm_so : std::string::npos ); } std::string::size_type smatch::end( unsigned i ) const { return( i < sizeof(pmatch)/sizeof(*pmatch) && pmatch[i].rm_so != -1 ? pmatch[i].rm_eo : std::string::npos ); } std::string::size_type smatch::size( unsigned i ) const { return( i < sizeof(pmatch)/sizeof(*pmatch) && pmatch[i].rm_so != -1 ? pmatch[i].rm_eo-pmatch[i].rm_so : std::string::npos ); } unsigned smatch::size() const { unsigned matches = unsigned(-1); // Get highest (pmatch[i].rm_so != -1). Just looking for the 1st // (pmatch[i].rm_so == -1) is wrong as optional mayches "()?" // may be embeded. for ( unsigned i = 0; i < sizeof(pmatch)/sizeof(*pmatch); ++i ) { if ( pmatch[i].rm_so != -1 ) matches = i; } return ++matches; } libzypp-17.7.0/zypp/base/Regex.h000066400000000000000000000136021334444677500164610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Regex.h * */ #ifndef ZYPP_BASE_REGEX_H #define ZYPP_BASE_REGEX_H #include #include #include #include "zypp/base/Exception.h" ////////////////////////////////////////////////////////////////// namespace zypp { ////////////////////////////////////////////////////////////////// /// \namespace str /// \brief String related utilities and \ref ZYPP_STR_REGEX. namespace str { ////////////////////////////////////////////////////////////////// /// \defgroup ZYPP_STR_REGEX Regular expression matching /// \brief Regular expressions using the glibc regex library. /// /// \see also \ref StrMatcher string matcher also supporting globing, etc. /// /// \code /// str::regex rxexpr( "^(A)?([0-9]*) im" ); /// str::smatch what; /// /// std::string mytext( "Y123 imXXXX" ); /// if ( str::regex_match( mytext, what, rxexpr ) ) /// { /// MIL << "MATCH '" << what[0] << "'" << endl; /// MIL << " subs: " << what.size()-1 << endl; /// for_( i, 1U, what.size() ) /// MIL << " [" << i << "] " << what[i] << endl; /// } /// else /// { /// WAR << "NO MATCH '" << rxexpr << "' in '" << mytext << endl; /// } /// \endcode ////////////////////////////////////////////////////////////////// typedef Exception regex_error; class smatch; class regex; ////////////////////////////////////////////////////////////////// /// \brief Regular expression matching /// /// \ingroup ZYPP_STR_REGEX /// \relates regex /// Return whether a \ref regex matches a specific string. An optionally /// passed \ref smatch object will contain the match reults. ////////////////////////////////////////////////////////////////// bool regex_match( const char * s, smatch & matches, const regex & regex ); /** \copydoc regex_match \relates regex \ingroup ZYPP_STR_REGEX */ inline bool regex_match(const std::string & s, smatch & matches, const regex & regex) { return regex_match( s.c_str(), matches, regex ); } /** \copydoc regex_match \relates regex \ingroup ZYPP_STR_REGEX */ bool regex_match( const char * s, const regex & regex ); /** \copydoc regex_match \relates regex \ingroup ZYPP_STR_REGEX */ inline bool regex_match( const std::string & s, const regex & regex ) { return regex_match( s.c_str(), regex ); } ////////////////////////////////////////////////////////////////// /// \class regex /// \brief Regular expression /// /// \ingroup ZYPP_STR_REGEX ////////////////////////////////////////////////////////////////// class regex { public: enum RegFlags { icase = REG_ICASE, ///< Do not differentiate case nosubs = REG_NOSUB, ///< Support for substring addressing of matches is not required match_extended = REG_EXTENDED, ///< Use POSIX Extended Regular Expression syntax when interpreting regex. }; regex(); regex(const std::string& s,int flags = match_extended); ~regex() throw(); regex(const regex & rhs) { assign(rhs.m_str, rhs.m_flags); } regex & operator=(const regex & rhs) { assign(rhs.m_str, rhs.m_flags); return *this; } /** * string representation of the regular expression */ std::string asString() const { return m_str; } public: /** Expert backdoor. Returns pointer to the compiled regex for direct use in regexec() */ regex_t * get() { return & m_preg; } private: void assign(const std::string& s,int flags = match_extended); private: friend class smatch; friend bool regex_match(const char * s, str::smatch& matches, const regex& regex); friend bool regex_match(const char * s, const regex& regex); std::string m_str; int m_flags; regex_t m_preg; bool m_valid; }; /** \relates regex Stream output */ inline std::ostream & operator<<( std::ostream & str, const regex & obj ) { return str << obj.asString(); } ////////////////////////////////////////////////////////////////// /// \class smatch /// \brief Regular expression match result /// /// \ingroup ZYPP_STR_REGEX /// /// Index \c n=0 returns the string object representing the character /// sequence that matched the whole regular expression. /// If \c n is out of range, or if \c n is an unmatched sub-expression, /// then an empty string is returned. ////////////////////////////////////////////////////////////////// class smatch { public: smatch(); std::string operator[](unsigned i) const; unsigned size() const; /** Begin index of subexpression \c i in \a match_str (or std::string::npos) */ std::string::size_type begin( unsigned i ) const; /** End index of subexpression \c i in \a match_str (or std::string::npos) */ std::string::size_type end( unsigned i ) const; /** Size of subexpression \c i (or std::string::npos) */ std::string::size_type size( unsigned i ) const; std::string match_str; regmatch_t pmatch[12]; }; } // namespace str ////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_STRING_H libzypp-17.7.0/zypp/base/SerialNumber.cc000066400000000000000000000062061334444677500201370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/SerialNumber.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/base/SerialNumber.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SerialNumber // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : SerialNumber::SerialNumber // METHOD TYPE : Ctor // SerialNumber::SerialNumber( bool dirty_r ) : _dirty( dirty_r ) , _serial( 0 ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : SerialNumber::~SerialNumber // METHOD TYPE : Dtor // SerialNumber::~SerialNumber() {} /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const SerialNumber & obj ) { return str << "SERIAL" << (obj._dirty?"*":"(") << obj._serial << (obj._dirty?"*":")"); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : SerialNumberWatcher // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : SerialNumberWatcher::SerialNumberWatcher // METHOD TYPE : Ctor // SerialNumberWatcher::SerialNumberWatcher( unsigned serial_r ) : _serial( serial_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : SerialNumberWatcher::SerialNumberWatcher // METHOD TYPE : Ctor // SerialNumberWatcher::SerialNumberWatcher( const SerialNumber & serial_r ) : _serial( serial_r.serial() ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : SerialNumber::~SerialNumber // METHOD TYPE : Dtor // SerialNumberWatcher::~SerialNumberWatcher() {} /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const SerialNumberWatcher & obj ) { return str << "LAST_SERIAL(" << obj._serial << ")"; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/SerialNumber.h000066400000000000000000000132321334444677500177760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/SerialNumber.h * */ #ifndef ZYPP_BASE_SERIALNUMBER_H #define ZYPP_BASE_SERIALNUMBER_H #include #include "zypp/base/PtrTypes.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SerialNumber // /** Simple serial number provider. * * \ref serial returns a serial number. The number returned stays * the same unless \ref setDirty was called to bring the object * into \c dirty state. The next call to \ref serial will increment * the serial number and bring the object into \c clean state. * * \code * SerialNumber sno; * sno.serial(); // SERIAL(0); () = clean * sno.setDirty(); // SERIAL*0*; ** = dirty * sno.serial(); // SERIAL(1) * sno.setDirty(); // SERIAL*1* * sno.setDirty(); // SERIAL*1* * sno.serial(); // SERIAL(2) * \endcode */ class SerialNumber { friend std::ostream & operator<<( std::ostream & str, const SerialNumber & obj ); public: /** Ctor taking initial \c dirty value. */ SerialNumber( bool dirty_r = false ); /** Dtor */ virtual ~SerialNumber(); public: void setDirty() { _dirty = true; } public: bool dirty() const { return _dirty; } bool clean() const { return !_dirty; } unsigned serial() const { if ( _dirty ) { ++_serial; _dirty = false; } return _serial; } private: mutable bool _dirty; mutable unsigned _serial; }; /////////////////////////////////////////////////////////////////// /** \relates SerialNumber Stream output */ std::ostream & operator<<( std::ostream & str, const SerialNumber & obj ); /////////////////////////////////////////////////////////////////// // // CLASS NAME : SerialNumberWatcher // /** Simple serial number watcher. * * \ref SerialNumberWatcher remembers a serial number * and tells whenever new numbers you feed change. * * All methods are overloaded to take an \unsigned or a * const SerialNumber & as argument. * * \code * SerialNumber sno; * * void check() * { * static SerialNumberWatcher watcher( sno ); * * if ( watcher.remember( sno ) ) * { * cout << "Serial number changed." << endl; * } * } * * int main() * { * check(); // This call would trigger, if check used a * // default constructed SerialNumberWatcher. * * check(); // * sno.dirty(); * check(); // "Serial number changed." * check(); // * sno.dirty(); * check(); // "Serial number changed." * \endcode */ class SerialNumberWatcher { friend std::ostream & operator<<( std::ostream & str, const SerialNumberWatcher & obj ); public: /** Ctor taking an initial \c serial value. * * A default constructed SerialNumberWatcher remembers the serial * number (unsigned)-1. So it is most likely the the 1st * call to \ref remember returns \ref isDirty. * * Vice versa, initializing the SerialNumberWatcher with the current * SerialNumber, most likely prevents the 1st to \ref remember to * return \ref isDirty. */ SerialNumberWatcher( unsigned serial_r = (unsigned)-1 ); /** Ctor taking an initial \c serial value. */ SerialNumberWatcher( const SerialNumber & serial_r ); /** Dtor */ virtual ~SerialNumberWatcher(); public: /** Return whether \c serial_r differs. */ bool isDirty( unsigned serial_r ) const { return( _serial != serial_r ); } /** \overload */ bool isDirty( const SerialNumber & serial_r ) const { return( _serial != serial_r.serial() ); } /** Return whether \c serial_r is still unchanged. */ bool isClean( unsigned serial_r ) const { return( _serial == serial_r ); } /** \overload */ bool isClean( const SerialNumber & serial_r ) const { return( _serial == serial_r.serial() ); } public: /** Return \ref isDirty, storing \c serial_r as new value. */ bool remember( unsigned serial_r ) const { if ( isDirty( serial_r ) ) { _serial = serial_r; return true; } return false; } /** \overload */ bool remember( const SerialNumber & serial_r ) const { return remember( serial_r.serial() ); } private: mutable unsigned _serial; }; /////////////////////////////////////////////////////////////////// /** \relates SerialNumberWatcher Stream output */ std::ostream & operator<<( std::ostream & str, const SerialNumberWatcher & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_SERIALNUMBER_H libzypp-17.7.0/zypp/base/SetRelationMixin.cc000066400000000000000000000027631334444677500210110ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/SetRelationMixin.cc */ #include #include "zypp/base/SetRelationMixin.h" /////////////////////////////////////////////////////////////////// namespace zypp { const std::string & ESetCompareDef::asString( Enum val_r ) { static std::map _table = { { uncomparable, "{?}" }, { equal, "{=}" }, { properSubset, "{<}" }, { properSuperset, "{>}" }, { disjoint, "{ }" }, }; return _table[val_r]; } const std::string & ESetRelationDef::asString( Enum val_r ) { static std::map _table = { { uncomparable, "{??}" }, { equal, "{==}" }, { properSubset, "{<<}" }, { properSuperset, "{>>}" }, { disjoint, "{ }" }, { subset, "{<=}" }, { superset, "{>=}" }, }; return _table[val_r]; } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/SetRelationMixin.h000066400000000000000000000254651334444677500206570ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/SetRelationMixin.h */ #ifndef ZYPP_BASE_SETRELATIONMIXIN_H #define ZYPP_BASE_SETRELATIONMIXIN_H #include #include #include "zypp/base/Easy.h" #include "zypp/base/EnumClass.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class ESetCompareDef /// \brief Result of set comparison (use like 'enum class \ref SetCompare') /// This is the type a \c compare function should return. /////////////////////////////////////////////////////////////////// struct ESetCompareDef { enum Enum { uncomparable = 0, ///< "{?}" equal = (1<<0), ///< "{=}" properSubset = (1<<1), ///< "{<}" properSuperset = (1<<2), ///< "{>}" disjoint = (1<<3), ///< "{ }" }; /** String representantion */ static const std::string & asString( Enum val_r ); }; /** \relates ESetCompareDef typedef 'enum class SetCompare' */ typedef base::EnumClass SetCompare; /** \relates SetCompare Stream output */ inline std::ostream & operator<<( std::ostream & str, const SetCompare::Enum & obj ) { return str << SetCompare::asString( obj ); } /** \overload */ inline std::ostream & operator<<( std::ostream & str, const SetCompare & obj ) { return str << obj.asEnum(); } /////////////////////////////////////////////////////////////////// /// \class ESetRelationDef /// \brief Set Relation based on \ref SetCompare (use like 'enum class \ref SetRelation') /// Comparison (\c== \c!=) between \ref SetRelation and \ref SetCompare /// is defined to let \c SetRelation::subset match \c SetCompare::equal /// as well as \c SetCompare::properSubset. Accordingly \c SetRelation::subset /// matches \c SetCompare::equal as well as \c SetCompare::properSuperset. /////////////////////////////////////////////////////////////////// struct ESetRelationDef { enum Enum { uncomparable = SetCompare::uncomparable, ///< "{??}" equal = SetCompare::equal, ///< "{==}" properSubset = SetCompare::properSubset, ///< "{<<}" properSuperset = SetCompare::properSuperset, ///< "{>>}" disjoint = SetCompare::disjoint, ///< "{ }" subset = properSubset|equal, ///< "{<=}" superset = properSuperset|equal, ///< "{>=}" }; /** String representantion */ static const std::string & asString( Enum val_r ); }; /** \relates ESetRelationDef typedef 'enum class SetRelation' */ typedef base::EnumClass SetRelation; /** \relates SetRelation Stream output */ inline std::ostream & operator<<( std::ostream & str, const SetRelation::Enum & obj ) { return str << SetRelation::asString( obj ); } /** \overload */ inline std::ostream & operator<<( std::ostream & str, const SetRelation & obj ) { return str << obj.asEnum(); } /** \relates SetRelation \relates SetCompare Matching \ref SetCompare and \ref SetRelation */ inline bool operator==( const SetRelation::Enum & lhs, const SetCompare::Enum & rhs ) { return( lhs&rhs || !(lhs|rhs) ); } /** \overload */ inline bool operator==( const SetRelation::Enum & lhs, const SetCompare & rhs ) { return( lhs == rhs.asEnum() ); } /** \overload */ inline bool operator==( const SetRelation & lhs, const SetCompare::Enum & rhs ) { return( lhs.asEnum() == rhs ); } /** \overload */ inline bool operator==( const SetRelation & lhs, const SetCompare & rhs ) { return( lhs.asEnum() == rhs.asEnum() ); } /** \overload */ inline bool operator==( const SetCompare::Enum & lhs, const SetRelation::Enum & rhs ) { return( rhs == lhs ); } /** \overload */ inline bool operator==( const SetCompare::Enum & lhs, const SetRelation & rhs ) { return( rhs == lhs ); } /** \overload */ inline bool operator==( const SetCompare & lhs, const SetRelation::Enum & rhs ) { return( rhs == lhs ); } /** \overload */ inline bool operator==( const SetCompare & lhs, const SetRelation & rhs ) { return( rhs == lhs ); } /** \relates SetRelation \relates SetCompare Matching \ref SetCompare and \ref SetRelation */ inline bool operator!=( const SetRelation::Enum & lhs, const SetCompare::Enum & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetRelation::Enum & lhs, const SetCompare & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetRelation & lhs, const SetCompare::Enum & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetRelation & lhs, const SetCompare & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetCompare::Enum & lhs, const SetRelation::Enum & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetCompare::Enum & lhs, const SetRelation & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetCompare & lhs, const SetRelation::Enum & rhs ) { return !( lhs == rhs ); } /** \overload */ inline bool operator!=( const SetCompare & lhs, const SetRelation & rhs ) { return !( lhs == rhs ); } /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////////////////////////////////////////////// /// \class SetRelationMixin /// \brief Provide set relation methods based on Derived::setRelationMixinCompare /// A class using this mixin must provide: /// \code /// SetCompare setRelationMixinCompare( const Derived & rhs ) const; /// \endcode /// \see \ref SETRELATIONMIXIN_DEFINE_COMPARE_BETWEEN /// \ingroup g_CRTP /////////////////////////////////////////////////////////////////// template class SetRelationMixin { public: /** Compare sets */ SetCompare compare( const Derived & trg ) const { return derived().setRelationMixinCompare( trg ); } /** \overload */ SetCompare compare( const SetRelationMixin & trg ) const { return compare( trg.derived() ); } /** Compare sets and match against \ref SetCompare */ bool compare( const Derived & trg, SetCompare cmp ) const { return compare( trg ) == cmp; } /** \overload */ bool compare( const SetRelationMixin & trg, SetCompare cmp ) const { return compare( trg ) == cmp; } /** Compare sets and match against \ref SetRelation */ bool compare( const Derived & trg, SetRelation rel ) const { return compare( trg ) == rel; } /** \overload */ bool compare( const SetRelationMixin & trg, SetRelation rel ) const { return compare( trg ) == rel; } protected: SetRelationMixin() {} DEFAULT_COPYABLE( SetRelationMixin ); DEFAULT_MOVABLE( SetRelationMixin ); ~SetRelationMixin() {} private: /** Access to sublass Derived*/ const Derived & derived() const { return *static_cast( this ); } }; /** \relates SetRelationMixin Compare sets */ template inline SetCompare compare( const SetRelationMixin & src, const SetRelationMixin & trg ) { return src.compare( trg ); } /** \relates SetRelationMixin Compare sets and match against \ref SetCompare */ template inline bool compare( const SetRelationMixin & src, const SetRelationMixin & trg, SetCompare cmp ) { return src.compare( trg, cmp ); } /** \relates SetRelationMixin Compare sets and match against \ref SetRelation */ template inline bool compare( const SetRelationMixin & src, const SetRelationMixin & trg, SetRelation rel ) { return src.compare( trg, rel ); } /** \relates SetRelationMixin Equal */ template inline bool operator==( const SetRelationMixin & src, const SetRelationMixin & trg ) { return src.compare( trg, SetRelation::equal ); } /** \relates SetRelationMixin Unequal */ template inline bool operator!=( const SetRelationMixin & src, const SetRelationMixin & trg ) { return !( src == trg ); } /** \relates SetRelationMixin Define compare between Derived and some other type (e.g. std::string) * \code * class Foo : public base::SetRelationMixin {...}; * SETRELATIONMIXIN_DEFINE_COMPARE_BETWEEN( Foo, const char * ); * SETRELATIONMIXIN_DEFINE_COMPARE_BETWEEN( Foo, const std::string & ); * \endcode */ #define SETRELATIONMIXIN_DEFINE_COMPARE_BETWEEN(DERIVED_TYPE,OTHER_TYPE) \ inline SetCompare compare( const base::SetRelationMixin & src, OTHER_TYPE trg ) \ { return src.compare( DERIVED_TYPE(trg) ); } \ inline SetCompare compare( OTHER_TYPE src, const base::SetRelationMixin & trg ) \ { return DERIVED_TYPE(src).compare( trg ); } \ \ inline bool compare( const base::SetRelationMixin & src, OTHER_TYPE trg, SetCompare cmp ) \ { return src.compare( DERIVED_TYPE(trg), cmp ); } \ inline bool compare( OTHER_TYPE src, const base::SetRelationMixin & trg, SetCompare cmp ) \ { return DERIVED_TYPE(src).compare( trg, cmp ); } \ \ inline bool compare( const base::SetRelationMixin & src, OTHER_TYPE trg, SetRelation rel ) \ { return src.compare( DERIVED_TYPE(trg), rel ); } \ inline bool compare( OTHER_TYPE src, const base::SetRelationMixin & trg, SetRelation rel ) \ { return DERIVED_TYPE(src).compare( trg, rel ); } \ \ inline bool operator==( const base::SetRelationMixin & src, OTHER_TYPE trg ) \ { return src.compare( DERIVED_TYPE(trg), SetRelation::equal ); } \ inline bool operator==( OTHER_TYPE src, const base::SetRelationMixin & trg ) \ { return DERIVED_TYPE(src).compare( trg, SetRelation::equal ); } \ \ inline bool operator!=( const base::SetRelationMixin & src, OTHER_TYPE trg ) \ { return !( src == trg ); } \ inline bool operator!=( OTHER_TYPE src, const base::SetRelationMixin & trg ) \ { return !( src == trg ); } } // namespace base /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_SETRELATIONMIXIN_H libzypp-17.7.0/zypp/base/SetTracker.h000066400000000000000000000143371334444677500174640ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/SetTracker.h */ #ifndef ZYPP_BASE_SETTRACKER_H #define ZYPP_BASE_SETTRACKER_H #include #include #include /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////////////////////////////////////////////// /// \class SetTracker /// \brief Track added/removed set items based on an initial set. /// /// The class maintains the \ref current set of items and also records /// the changes compared to the initial set (\ref added and \ref removed /// items) if you use the tracking API. /// /// It is also possible to directly manipulate the three sets. /// /// \note The tracking API expects the template arg to have set semantic. /////////////////////////////////////////////////////////////////// template struct SetTracker { typedef TSet set_type; typedef typename TSet::key_type key_type; typedef typename TSet::value_type value_type; /** Default Ctor: empty set */ SetTracker() {} /** Ctor taking an initial set */ SetTracker( set_type initial_r ) : _current( std::move(initial_r) ) {} /// \name Tracking API //@{ /** (Re-)Start tracking the current set (discards previously tracked changes). * \return \c False (set did not change) */ bool setInitial() { _added.clear(); _removed.clear(); return false; } /** Start tracking a new set (discards previously tracked changes). * \return Whether the set did change (new!=current) */ bool setInitial( set_type new_r ) { setInitial(); bool changed = ( new_r != _current ); if ( changed ) { _current = std::move(new_r); } return changed; } /** Set a \a new_r set and track changes. * \return Whether the set has changed */ bool set( set_type new_r ) { bool changed = ( new_r != _current ); if ( changed ) { // build the initial (cur-add+rem) set in _current setDifference( _current, _added, _removed ); _current.swap( _removed ); _added.clear(); _removed.clear(); const set_type & initial( _current ); setDifference( initial, new_r, _removed ); setDifference( new_r, initial, _added ); _current.swap( new_r ); } return changed; } /** Add an element to the set and track changes. * \return Whether the set has changed */ bool add( const value_type & val_r ) { bool done = _current.insert( val_r ).second; if ( done ) { if ( ! _removed.erase( val_r ) ) _added.insert( val_r ); } return done; } /** Remove an element from the set and track changes. * \return Whether the set has changed */ bool remove( const value_type & val_r ) { bool done = _current.erase( val_r ); if ( done ) { if ( ! _added.erase( val_r ) ) _removed.insert( val_r ); } return done; } //@} /// \name Query and retrieval //@{ /** Whether \a val_r is in the set. */ bool contains( const key_type & key_r ) const { return find( _current, key_r ); } /** Whether \a val_r is tracked as added. */ bool wasAdded( const key_type & key_r ) const { return find( _added, key_r ); } /** Whether \a val_r is tracked as removed. */ bool wasRemoved( const key_type & key_r ) const { return find( _removed, key_r ); } /** Return the current set. */ const set_type & current() const { return _current; } /** Return the set of added items. */ const set_type & added() const { return _added; } /** Return the set of removed items. */ const set_type & removed() const { return _removed; } //@} /// \name Direct manipulation //@{ /** Return the current set. */ set_type & current() { return _current; } /** Return the set of added items. */ set_type & added() { return _added; } /** Return the set of removed items. */ set_type & removed() { return _removed; } //@} private: static bool find( const set_type & set_r, const key_type & key_r ) { return set_r.find( key_r ) != set_r.end(); } template static void setDifference( const TORDERED_SET & lhs, const TORDERED_SET & rhs, TORDERED_SET & result_r ) { // std::set_difference requires ordered sets! std::set_difference( lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), std::inserter( result_r, result_r.end() ), typename TORDERED_SET::key_compare() ); } template static void setDifference( const TUNORDERED_SET & lhs, const TUNORDERED_SET & rhs, TUNORDERED_SET & result_r ) { // std::set_difference requires ordered sets! for ( const auto & l : lhs ) { if ( rhs.find( l ) == rhs.end() ) result_r.insert( l ); } } private: set_type _current; set_type _added; set_type _removed; }; /** \relates SetTracker Stream output */ template std::ostream & operator<<( std::ostream & str, const SetTracker & obj ) { return str << "set(" << obj.current().size() << "|+" << obj.added().size() << "|-" << obj.removed().size() << ')'; } } // namespace base /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_SETTRACKER_H libzypp-17.7.0/zypp/base/Signal.h000066400000000000000000000050731334444677500166270ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Signal.h * */ #ifndef ZYPP_BASE_SIGNAL_H #define ZYPP_BASE_SIGNAL_H #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Exception safe signal handler save/restore. * \ingroup g_RAII */ class SignalSaver { public: SignalSaver( int signum_r, sighandler_t handler_r ) : _signum( signum_r ) { _orighandler = ::signal( signum_r, handler_r ); } ~SignalSaver() { ::signal( _signum, _orighandler ); } private: int _signum; ::sighandler_t _orighandler; }; /** Exception safe sigprocmask save/restore. * \ingroup g_RAII */ class SigprocmaskSaver { public: /** Ctor saving the original sigprocmask. */ SigprocmaskSaver() { ::sigprocmask( SIG_SETMASK, NULL, &_origmask ); } /** Dtor restoring the original sigprocmask. */ ~SigprocmaskSaver() { ::sigprocmask( SIG_SETMASK, &_origmask, NULL ); } public: /** Temporary block signal. */ void block( int signum_r ) { ::sigset_t mask; ::sigemptyset( & mask ); ::sigaddset( & mask, signum_r ); ::sigprocmask( SIG_BLOCK, &mask, NULL ); } /** Temporary unblock signal. */ void unblock( int signum_r ) { ::sigset_t mask; ::sigemptyset( & mask ); ::sigaddset( & mask, signum_r ); ::sigprocmask( SIG_UNBLOCK, &mask, NULL ); } /** Whether signal delivery is pending. */ bool pending( int signum_r ) { ::sigset_t mask; ::sigpending( &mask ); return ::sigismember( &mask, signum_r ); } /** Wait for signals not blocked in original sigprocmask. */ void suspend() { ::sigsuspend( &_origmask ); } private: ::sigset_t _origmask; }; ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_SIGNAL_H libzypp-17.7.0/zypp/base/StrMatcher.cc000066400000000000000000000246071334444677500176300ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/StrMatcher.cc * */ extern "C" { #include } #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/base/StrMatcher.h" #include "zypp/sat/detail/PoolMember.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// // class Match /////////////////////////////////////////////////////////////////// const int Match::_modemask = SEARCH_STRINGMASK; const int Match::_flagmask = ~_modemask; // option flags const Match Match::NOCASE (SEARCH_NOCASE); // sat::LookupAttr option flags const Match Match::NO_STORAGE_SOLVABLE(SEARCH_NO_STORAGE_SOLVABLE); const Match Match::SUB (SEARCH_SUB); const Match Match::ARRAYSENTINEL (SEARCH_ARRAYSENTINEL); const Match Match::DISABLED_REPOS (SEARCH_DISABLED_REPOS); const Match Match::COMPLETE_FILELIST (SEARCH_COMPLETE_FILELIST); const Match Match::SKIP_KIND (SEARCH_SKIP_KIND); const Match Match::FILES (SEARCH_FILES); const Match Match::CHECKSUMS (SEARCH_CHECKSUMS); Match::Mode Match::mode() const { switch ( modeval() ) { case 0: return NOTHING; break; case SEARCH_STRING: return STRING; break; case SEARCH_STRINGSTART: return STRINGSTART; break; case SEARCH_STRINGEND: return STRINGEND; break; case SEARCH_SUBSTRING: return SUBSTRING; break; case SEARCH_GLOB: return GLOB; break; case SEARCH_REGEX: return REGEX; break; } return OTHER; } int Match::modeval( Mode mode_r ) { switch ( mode_r ) { case NOTHING: return 0; break; case STRING: return SEARCH_STRING; break; case STRINGSTART: return SEARCH_STRINGSTART; break; case STRINGEND: return SEARCH_STRINGEND; break; case SUBSTRING: return SEARCH_SUBSTRING; break; case GLOB: return SEARCH_GLOB; break; case REGEX: return SEARCH_REGEX; break; case OTHER: return SEARCH_STRINGMASK; break; } return SEARCH_STRINGMASK; } std::string Match::asString() const { std::ostringstream str; str << *this; return str.str(); } std::ostream & operator<<( std::ostream & str, Match::Mode obj ) { switch ( obj ) { #define OUTS(V) case Match::V: return str << #V; break OUTS( NOTHING ); OUTS( STRING ); OUTS( STRINGSTART ); OUTS( STRINGEND ); OUTS( SUBSTRING ); OUTS( GLOB ); OUTS( REGEX ); OUTS( OTHER ); #undef OUTS } return str << "Match::Mode::UNKNOWN"; } std::ostream & operator<<( std::ostream & str, const Match & obj ) { if ( ! obj ) return str << "NOTHING"; const char * sep = "|"; Match::Mode mode( obj.mode() ); switch ( mode ) { case Match::NOTHING: sep = 0; // suppress 'NOTHING|' break; case Match::OTHER: str << mode<<"("< _matcher; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( _search, _flags ); } }; /** \relates StrMatcher::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const StrMatcher::Impl & obj ) { return str << "\"" << obj.searchstring() << "\"{" << obj.flags() << "}"; } /////////////////////////////////////////////////////////////////// // class StrMatcher /////////////////////////////////////////////////////////////////// StrMatcher::StrMatcher() : _pimpl( new Impl ) {} StrMatcher::StrMatcher( const std::string & search_r ) : _pimpl( new Impl( search_r, Match::STRING ) ) {} StrMatcher::StrMatcher( std::string && search_r ) : _pimpl( new Impl( std::move(search_r), Match::STRING ) ) {} StrMatcher::StrMatcher( const std::string & search_r, const Match & flags_r ) : _pimpl( new Impl( search_r, flags_r ) ) {} StrMatcher::StrMatcher( std::string && search_r, const Match & flags_r ) : _pimpl( new Impl( std::move(search_r), flags_r ) ) {} StrMatcher::StrMatcher( const std::string & search_r, const Match::Mode & flags_r ) : _pimpl( new Impl( search_r, flags_r ) ) {} StrMatcher::StrMatcher( std::string && search_r, const Match::Mode & flags_r ) : _pimpl( new Impl( std::move(search_r), flags_r ) ) {} StrMatcher::StrMatcher( const std::string & search_r, int flags_r ) : _pimpl( new Impl( search_r, Match(flags_r) ) ) {} StrMatcher::StrMatcher( std::string && search_r, int flags_r ) : _pimpl( new Impl( std::move(search_r), Match(flags_r) ) ) {} void StrMatcher::compile() const { return _pimpl->compile(); } bool StrMatcher::isCompiled() const { return _pimpl->isCompiled(); } bool StrMatcher::doMatch( const char * string_r ) const { return _pimpl->doMatch( string_r ); } const std::string & StrMatcher::searchstring() const { return _pimpl->searchstring(); } void StrMatcher::setSearchstring( const std::string & string_r ) { _pimpl->setSearchstring( string_r ); } void StrMatcher::setSearchstring( std::string && string_r ) { _pimpl->setSearchstring( std::move(string_r) ); } void StrMatcher::setSearchstring( const std::string & string_r, const Match & flags_r ) { _pimpl->setSearchstring( string_r ); _pimpl->setFlags( flags_r ); } void StrMatcher::setSearchstring( std::string && string_r, const Match & flags_r ) { _pimpl->setSearchstring( std::move(string_r) ); _pimpl->setFlags( flags_r ); } const Match & StrMatcher::flags() const { return _pimpl->flags(); } void StrMatcher::setFlags( const Match & flags_r ) { _pimpl->setFlags( flags_r ); } std::ostream & operator<<( std::ostream & str, const StrMatcher & obj ) { return str << *obj._pimpl; } bool operator==( const StrMatcher & lhs, const StrMatcher & rhs ) { return ( lhs.flags() == rhs.flags() && lhs.searchstring() == rhs.searchstring() ); } bool operator<( const StrMatcher & lhs, const StrMatcher & rhs ) { if ( lhs.flags().get() != rhs.flags().get() ) return ( lhs.flags().get() < rhs.flags().get() ); return ( lhs.searchstring() < rhs.searchstring() ); } } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/StrMatcher.h000066400000000000000000000341671334444677500174740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/StrMatcher.h * */ #ifndef ZYPP_BASE_STRMATCHER_H #define ZYPP_BASE_STRMATCHER_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Exception.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// /// \class Match /// \brief String matching option flags as used e.g. by \ref StrMatcher. /// /// \code /// Match mode( Match::GLOB | Match::NOCASE ); /// \endcode /////////////////////////////////////////////////////////////////// class Match { private: static const int _modemask; static const int _flagmask; public: /** Mode flags (mutual exclusive). */ enum Mode { NOTHING, //!< Match nothing STRING, //!< Excat matching STRINGSTART, //!< Match at string start STRINGEND, //!< Match at string end SUBSTRING, //!< Match substring GLOB, //!< Glob REGEX, //!< Regular Expression OTHER //!< Something else. }; /** \name \ref Option flags * Most flags are actually \ref sat::LookupAttr specific, as they tell * how to retrieve the attribute values from solv-files. The plain * \ref StrMatcher will ignore those flags and use the ones related * to string matching only. */ //@{ static const Match NOCASE; //!< If set, match case insensitive. //@} /** \name \ref sat::LookupAttr option flags * These flags are actually \ref sat::LookupAttr specific, as they tell * how to retrieve the attribute values from solv-files. The plain * \ref StrMatcher will ignore these flags and use the ones related * to string matching only. */ //@{ static const Match NO_STORAGE_SOLVABLE; //!< LookupAttr: internal static const Match SUB; //!< LookupAttr: internal static const Match ARRAYSENTINEL; //!< LookupAttr: internal static const Match DISABLED_REPOS; //!< LookupAttr: internal static const Match COMPLETE_FILELIST; //!< LookupAttr: internal static const Match SKIP_KIND; //!< LookupAttr: skip any \c kind: prefix when looking at a \ref Solvable name. static const Match FILES; //!< LookupAttr: match full path when matching in filelists, otherwise just the basenames. static const Match CHECKSUMS; //!< LookupAttr: also look for matches in checksums //@} public: /** Default ctor \c 0 or \ref NOTHING. */ Match() : _val( 0 ) {} /** Ctor from \ref Mode value. */ Match( Mode val_r ) : _val( modeval( val_r ) ) {} /** Just in case one needs it. */ explicit Match( int val_r ) : _val( val_r ) {} /** Evaluate in a boolean context ( != 0 ). */ explicit operator bool() const { return _val; } public: /** Test whether \c all of the \a rhs bits are set (same mode if \a rhs has one). */ bool test( const Match & rhs ) const { return ( ( flagval() & rhs.flagval() ) == rhs.flagval() ) && ( !rhs.modeval() || rhs.modeval() == modeval() ); } /** Whether at least one of the \a rhs bits is set (or the same mode). */ bool testAnyOf( const Match & rhs ) const { return ( flagval() & rhs.flagval() ) || ( rhs.modeval() && rhs.modeval() == modeval() ); } /** Set all of the \a rhs bits (setting a new mode if \a rhs has one). */ void set( const Match & rhs ) { if ( rhs.modeval() ) _val = rhs._val | flagval(); // also set the rhs mode else _val |= rhs._val; // just set the flags } /** Unset all of the \a rhs bits (unsets mode if the same as \a rhs). */ void unset( const Match & rhs ) { if ( modeval() == rhs.modeval() ) _val = flagval() & ~rhs.flagval(); // also unset mode else _val &= ~rhs.flagval(); // just unset falgs } /** Depending on the value of \a onoff, set or unset flags. */ void turn( const Match & rhs, bool onoff ) { onoff ? set( rhs ) : unset( rhs ); } /** Add flags. */ Match & operator|=( const Match & rhs ) { set( rhs ); return *this; } /** Remove flags.*/ Match & operator-=( const Match & rhs ) { unset( rhs ); return *this; } public: /** Return the \c mode part. */ Mode mode() const; /** Return the \c flags part. */ Match flags() const { return Match( flagval() ); } public: /** \name Low level integer representation. */ //@{ /** Return the integer representation. */ int get() const { return _val; } /** Return the modes integer representation. */ int modeval() const { return _val & _modemask; } /** Return the flags integer representation. */ int flagval() const { return _val & _flagmask; } //@} public: /** \name Mode flag manip/query convenience. */ //@{ /** Whether this has mode \a rhs */ bool isMode( Mode rhs ) const { return modeval() == modeval( rhs ); } /** Whether this has mode \ref STRING. */ bool isModeString() const { return isMode( STRING ); } /** Whether this has mode \ref STRINGSTART. */ bool isModeStringstart() const { return isMode( STRINGSTART ); } /** Whether this has mode \ref STRINGEND. */ bool isModeStringend() const { return isMode( STRINGEND ); } /** Whether this has mode \ref SUBSTRING. */ bool isModeSubstring() const { return isMode( SUBSTRING ); } /** Whether this has mode \ref GLOB. */ bool isModeGlob() const { return isMode( GLOB ); } /** Whether this has mode \ref REGEX. */ bool isModeRegex() const { return isMode( REGEX ); } /** Set the mode part to \a rhs . */ void setMode( Mode rhs ) { _val = modeval( rhs ) | flagval(); } /** Set the mode \ref STRING. */ void setModeString() { setMode( STRING ); } /** Set the mode \ref STRINGSTART. */ void setModeStringstart() { setMode( STRINGSTART ); } /** Set the mode \ref STRINGEND. */ void setModeStringend() { setMode( STRINGEND ); } /** Set the mode \ref SUBSTRING. */ void setModeSubstring() { setMode( SUBSTRING ); } /** Set the mode \ref GLOB. */ void setModeGlob() { setMode( GLOB ); } /** Set the mode \ref REGEX. */ void setModeRegex() { setMode( REGEX ); } //@} /** String representation. */ std::string asString() const; private: /** Numeric value for enum (short for Match(m).get()). */ static int modeval( Mode mode_r ); private: int _val; }; /** \relates Match */ inline bool operator==( const Match & lhs, const Match & rhs ) { return lhs.get() == rhs.get(); } /** \relates Match */ inline bool operator!=( const Match & lhs, const Match & rhs ) { return lhs.get() != rhs.get(); } /** \relates Match */ inline Match operator|( const Match & lhs, const Match & rhs ) { return Match(lhs) |= rhs; } /** \relates Match \overload to disambiguate 'int|int'. */ inline Match operator|( Match::Mode lhs, Match::Mode rhs ) { return Match(lhs) |= rhs; } /** \relates Match */ inline Match operator-( const Match & lhs, const Match & rhs ) { return Match(lhs) -= rhs; } /** \relates Match \overload to disambiguate 'int-int'. */ inline Match operator-( Match::Mode lhs, Match::Mode rhs ) { return Match(lhs) -= rhs; } /** \relates Match::Mode Stream output */ std::ostream & operator<<( std::ostream & str, Match::Mode obj ); /** \relates Match Stream output */ std::ostream & operator<<( std::ostream & str, const Match & obj ); /////////////////////////////////////////////////////////////////// /// \class MatchException /// \brief Exceptions thrown from attribute matching. /////////////////////////////////////////////////////////////////// struct MatchException : public Exception { /** Supplied message. */ explicit MatchException( const std::string & msg_r ) : Exception( msg_r ) {} }; /////////////////////////////////////////////////////////////////// /// \class MatchUnknownModeException /// \brief Unknown match mode. /////////////////////////////////////////////////////////////////// struct MatchUnknownModeException : public MatchException { /** Supplied message. */ explicit MatchUnknownModeException( const std::string & msg_r ) : MatchException( msg_r ) {} /** Build message including the \a mode and optional the pattern string. */ MatchUnknownModeException( const Match & mode_r, const std::string & msg_r = std::string() ); }; /////////////////////////////////////////////////////////////////// /// \class MatchInvalidRegexException /// \brief Invalid regular expression (failed ::regcomp). /////////////////////////////////////////////////////////////////// struct MatchInvalidRegexException : public MatchException { /** Supplied message. */ explicit MatchInvalidRegexException( const std::string & msg_r ) : MatchException( msg_r ) {} /** Build message including the \a regex and \c ::regcomp returncode (use \c 0 if unknown). */ MatchInvalidRegexException( const std::string & regex_r, int regcomp_r ); }; /////////////////////////////////////////////////////////////////// /// \class StrMatcher /// \brief String matching (STRING|SUBSTRING|GLOB|REGEX). /// /// Used by e.g. \ref PoolQuery and \ref LookupAttr for queries, /// but it can also be used for matching arbitrary strings. /// /// \code /// StrMatcher matches( "foo", Match::SUBSTRING ); /// for_( it, stringlist.begin(), stringlist().end() ) /// { /// if ( matches( *it ) ) /// cout << *it << " has substring 'foo'" << endl; /// } /// \endcode /// /// \Note Those flags are always set: REG_EXTENDED | REG_NOSUB | REG_NEWLINE /////////////////////////////////////////////////////////////////// class StrMatcher { friend std::ostream & operator<<( std::ostream & str, const StrMatcher & obj ); public: typedef MatchException Exception; public: /** Implementation */ class Impl; public: /** Default ctor matches nothing. */ StrMatcher(); /** Ctor from string matches in \ref Match::STRING mode per default. */ StrMatcher( const std::string & search_r ); /** \overload for rvalues */ StrMatcher( std::string && search_r ); /** Ctor taking string and \ref Match flags. */ StrMatcher( const std::string & search_r, const Match & flags_r ); /** \overload for rvalues */ StrMatcher( std::string && search_r, const Match & flags_r ); /** Ctor taking string and \ref Match::Mode. * Needed because we want them to be treated as \ref Match, * and not as \ref int as the compiler woud do. */ StrMatcher( const std::string & search_r, const Match::Mode & flags_r ); /** \overload for rvalues */ StrMatcher( std::string && search_r, const Match::Mode & flags_r ); /** Low level interface wraps \a flags into \ref Match. */ StrMatcher( const std::string & search_r, int flags_r ); /** \overload for rvalues */ StrMatcher( std::string && search_r, int flags_r ); /** Evaluate in a boolean context ( ! searchstring().empty() ). */ explicit operator bool() const { return !searchstring().empty(); } public: /** Return whether string matches. * You can use it with any class that impements \c c_str. * (\c std::string, \ref Pathname, \ref IdString, ...). * \Note \c NULL never matches. */ template bool operator()( const Tp & string_r ) const { return doMatch( string_r.c_str() ); } /** \overload */ bool operator()( const char * string_r ) const { return doMatch( string_r ); } public: /** The current searchstring. */ const std::string & searchstring() const; /** Set a new searchstring. */ void setSearchstring( const std::string & string_r ); /** \overload for rvalues */ void setSearchstring( std::string && string_r ); /** Set a new searchstring and flags. */ void setSearchstring( const std::string & string_r, const Match & flags_r ); /** \overload for rvalues */ void setSearchstring( std::string && string_r, const Match & flags_r ); /** The current search flags. */ const Match & flags() const; /** Set new search flags. */ void setFlags( const Match & flags_r ); public: /** Compile the pattern e.g. in case of \c REGEX. * \throws MatchUnknownModeException If the \ref Match flag more than * one mode bit set. * \throws MatchInvalidRegexException If \ref Match::REGEX is set * and \ref searchstring is not a valid regular expression. */ void compile() const; /** Whether the \ref StrMatcher is already compiled. */ bool isCompiled() const; /** Return whether string matches. * Compiles the \ref StrMatcher if this was not yet done. * \throws MatchException Any of the exceptions thrown by \ref StrMatcher::compile. */ bool doMatch( const char * string_r ) const; private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /** \relates StrMatcher Stream output */ std::ostream & operator<<( std::ostream & str, const StrMatcher & obj ); /** \relates StrMatcher */ bool operator==( const StrMatcher & lhs, const StrMatcher & rhs ); /** \relates StrMatcher */ inline bool operator!=( const StrMatcher & lhs, const StrMatcher & rhs ) { return !( lhs == rhs ); } /** \relates StrMatcher Arbitrary order for std::container. */ bool operator<( const StrMatcher & lhs, const StrMatcher & rhs ); } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_STRMATCHER_H libzypp-17.7.0/zypp/base/String.cc000066400000000000000000000261071334444677500170170ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/String.cc * */ #include #include #include #include "zypp/base/String.h" #include "zypp/base/LogTools.h" #include "zypp/TriBool.h" using std::string; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace str { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : form ** FUNCTION TYPE : std::string */ std::string form( const char * format, ... ) { SafeBuf safe; va_list ap; va_start( ap, format ); vasprintf( &safe._buf, format, ap ); va_end( ap ); return safe.asString(); } /****************************************************************** ** ** FUNCTION NAME : strerror ** FUNCTION TYPE : std::string */ std::string strerror( int errno_r ) { return form( "(%d)%s", errno_r, ::strerror( errno_r ) ); } /****************************************************************** ** ** FUNCTION NAME : strToTrue ** FUNCTION TYPE : bool */ bool strToTrue( const C_Str & str ) { std::string t( toLower( str ) ); return( t == "1" || t == "yes" || t == "true" || t == "on" || t == "+" || strtonum( str ) ); } /****************************************************************** ** ** FUNCTION NAME : strToFalse ** FUNCTION TYPE : bool */ bool strToFalse( const C_Str & str ) { std::string t( toLower( str ) ); return ! ( t == "0" || t == "no" || t == "false" || t == "off" || t == "-" ); } TriBool strToTriBool( const C_Str & str ) // from TriBool.h { if ( strToTrue( str ) ) return true; if ( !strToFalse( str ) ) return false; return indeterminate; } /////////////////////////////////////////////////////////////////// // Hexencode /////////////////////////////////////////////////////////////////// namespace { /** What's not decoded. */ inline bool heIsAlNum( char ch ) { return ( ( 'a' <= ch && ch <= 'z' ) ||( 'A' <= ch && ch <= 'Z' ) ||( '0' <= ch && ch <= '9' ) ); } /** Hex-digit to number or -1. */ inline int heDecodeCh( char ch ) { if ( '0' <= ch && ch <= '9' ) return( ch - '0' ); if ( 'A' <= ch && ch <= 'F' ) return( ch - 'A' + 10 ); if ( 'a' <= ch && ch <= 'f' ) return( ch - 'a' + 10 ); return -1; } } std::string hexencode( const C_Str & str_r ) { static const char *const hdig = "0123456789ABCDEF"; std::string res; res.reserve( str_r.size() ); for ( const char * it = str_r.c_str(); *it; ++it ) { if ( heIsAlNum( *it ) ) { res += *it; } else { res += '%'; res += hdig[(unsigned char)(*it)/16]; res += hdig[(unsigned char)(*it)%16]; } } return res; } std::string hexdecode( const C_Str & str_r ) { std::string res; res.reserve( str_r.size() ); for_( it, str_r.c_str(), str_r.c_str()+str_r.size() ) { if ( *it == '%' ) { int d1 = heDecodeCh( *(it+1) ); if ( d1 != -1 ) { int d2 = heDecodeCh( *(it+2) ); if ( d2 != -1 ) { res += (d1<<4)|d2; it += 2; continue; } } } // verbatim if no %XX: res += *it; } return res; } /////////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : toLower ** FUNCTION TYPE : std::string */ std::string toLower( const std::string & s ) { return toLower( std::string(s) ); } std::string toLower( std::string && s ) { std::string ret( std::move(s) ); if ( ret.empty() ) return ret; for ( std::string::size_type i = 0; i < ret.length(); ++i ) { if ( isupper( ret[i] ) ) ret[i] = static_cast(tolower( ret[i] )); } return ret; } /****************************************************************** ** ** FUNCTION NAME : toUpper ** FUNCTION TYPE : std::string */ std::string toUpper( const std::string & s ) { return toUpper( std::string(s) ); } std::string toUpper( std::string && s ) { std::string ret( std::move(s) ); if ( ret.empty() ) return ret; for ( std::string::size_type i = 0; i < ret.length(); ++i ) { if ( islower( ret[i] ) ) ret[i] = static_cast(toupper( ret[i] )); } return ret; } /****************************************************************** ** ** FUNCTION NAME : trim ** FUNCTION TYPE : std::string */ std::string trim( const std::string & s, const Trim trim_r ) { return trim( std::string(s), trim_r ); } std::string trim( std::string && s, const Trim trim_r ) { std::string ret( std::move(s) ); if ( ret.empty() || trim_r == NO_TRIM ) return ret; if ( trim_r & L_TRIM ) { std::string::size_type p = ret.find_first_not_of( " \t\n" ); if ( p == std::string::npos ) { ret.clear(); return ret; } ret.erase( 0, p ); } if ( trim_r & R_TRIM ) { std::string::size_type p = ret.find_last_not_of( " \t\n" ); if ( p == std::string::npos ) { ret.clear(); return ret; } ret = ret.erase( p+1 ); } return ret; } /****************************************************************** ** ** FUNCTION NAME : stripFirstWord ** FUNCTION TYPE : std::string */ std::string stripFirstWord( std::string & line, const bool ltrim_first ) { if ( ltrim_first ) line = ltrim( line ); if ( line.empty() ) return line; std::string ret; std::string::size_type p = line.find_first_of( " \t" ); if ( p == std::string::npos ) { // no ws on line ret = line; line.erase(); } else if ( p == 0 ) { // starts with ws // ret remains empty line = ltrim( line ); } else { // strip word and ltim line ret = line.substr( 0, p ); line = ltrim( line.erase( 0, p ) ); } return ret; } /****************************************************************** ** ** FUNCTION NAME : stripLastWord ** FUNCTION TYPE : std::string */ std::string stripLastWord( std::string & line, const bool rtrim_first ) { if ( rtrim_first ) line = rtrim( line ); if ( line.empty() ) return line; std::string ret; std::string::size_type p = line.find_last_of( " \t" ); if ( p == std::string::npos ) { // no ws on line ret = line; line.erase(); } else if ( p == line.size()-1 ) { // ends with ws // ret remains empty line = rtrim( line ); } else { // strip word and rtim line ret = line.substr( p+1 ); line = rtrim( line.erase( p ) ); } return ret; } std::string gsub( const std::string & str_r, const std::string & from_r, const std::string & to_r ) { std::string ret( str_r ); return replaceAll( ret, from_r, to_r ); } std::string & replaceAll( std::string & str_r, const std::string & from_r, const std::string & to_r ) { if ( ! from_r.empty() ) { std::string::size_type pos = 0; while ( (pos = str_r.find( from_r, pos )) != std::string::npos ) { str_r.replace( pos, from_r.size(), to_r ); pos += to_r.size(); if ( pos >= str_r.length() ) break; } } return str_r; } std::string gsubFun( const std::string & str_r, const std::string & from_r, function to_r ) { std::string ret( str_r ); return replaceAllFun( ret, from_r, to_r ); } std::string & replaceAllFun( std::string & str_r, const std::string & from_r, function to_r ) { if ( ! from_r.empty() ) { std::string::size_type pos = 0; while ( (pos = str_r.find( from_r, pos )) != std::string::npos ) { std::string to( to_r() ); str_r.replace( pos, from_r.size(), to ); pos += to.size(); if ( pos >= str_r.length() ) break; } } return str_r; } std::string escape( const C_Str & str_r, const char sep_r ) { std::vector buf; for_( s, str_r.c_str(), s+str_r.size() ) { switch ( *s ) { case '"': case '\'': case '\\': buf.push_back( '\\' ); buf.push_back( *s ); break; default: if ( *s == sep_r ) buf.push_back( '\\' ); buf.push_back( *s ); } } return std::string( buf.begin(), buf.end() ); } std::string getline( std::istream & str, const Trim trim_r ) { return trim( receiveUpTo( str, '\n' ), trim_r ); } std::string getline( std::istream & str, bool trim_r ) { return trim( receiveUpTo( str, '\n' ), trim_r?TRIM:NO_TRIM ); } std::string receiveUpTo( std::istream & str, const char delim_r, bool returnDelim_r ) { std::ostringstream datas; do { char ch; if ( str.get( ch ) ) { if ( ch != delim_r ) { datas.put( ch ); } else { if ( returnDelim_r ) datas.put( ch ); break; // --> delimiter found } } else { // clear fail bit if we read data before reaching EOF if ( str.eof() && datas.tellp() ) str.clear( std::ios::eofbit ); break; // --> no consumable data. } } while ( true ); return datas.str(); } ///////////////////////////////////////////////////////////////// } // namespace str /////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/String.h000066400000000000000000001177001334444677500166610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/String.h * */ #ifndef ZYPP_BASE_STRING_H #define ZYPP_BASE_STRING_H #include #include #include #include #include #include #include #include "zypp/base/Easy.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" /////////////////////////////////////////////////////////////////// namespace boost { namespace logic { class tribool; } } namespace zypp { typedef boost::logic::tribool TriBool; } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { /** Request a human readable (translated) string representation of Tp [Tp.asUserString()] * Classes may implement a default as member function. */ template std::string asUserString( const Tp & val_r ) { return val_r.asUserString(); } }// namespace zypp /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Convenience \c char* constructible from \c std::string and \c char*, * it maps \c (char*)0 to an empty string. * * \code * bool hasPrefix( const std::string & str_r, const std::string & prefix_r ) * { return( ::strncmp( str_r.c_str(), prefix_r.c_str(), prefix_r.size() ) == 0 ); } * \endcode * * Called with a plain \c char* as argument, the \c std::string is created form * for nothing. The implementation actually does not use the \c std::string. * * Best would be to implement \c hasPrefix for each combination of \c char* * and \c std::string arguments: * * \code * bool hasPrefix( const std::string & str_r, const std::string & prefix_r ) * { return( ::strncmp( str_r.c_str(), prefix_r.c_str(), prefix_r.size() ) == 0 ); } * * bool hasPrefix( const std::string & str_r, const char * prefix_r ) * { return( !prefix_r || ::strncmp( str_r.c_str(), prefix_r, ::strlen(prefix_r) ) == 0 ); } * * bool hasPrefix( const char * str_r, const std::string & prefix_r ) * { return( str_r ? ::strncmp( str_r, prefix_r.c_str(), prefix_r.size() ) == 0 : prefix_r.empty() ); } * * bool hasPrefix( const char * str_r, const char * prefix_r ) * { return( str && prefix_r ? ::strncmp( str_r, prefix_r, ::strlen(prefix_r) ) == 0 * : !((str_r && *str_r) || (prefix_r && *prefix_r)); } * \endcode * * This is where \ref C_Str can help. Constructible from \c std::string and \c char*, * it \e reduces the \c std::string to it's \c char*. At the same time it converts * \c (char*)0 into an \c "" string. * * \code * bool hasPrefix( const C_Str & str_r, const C_Str & prefix_r ) * { return( ::strncmp( str_r, prefix_r, prefix_r.size() ) == 0 ); } * \endcode * * \todo Check whether to replace by boost::string_ref */ class C_Str { public: typedef std::string::size_type size_type; public: C_Str() : _val( 0 ), _sze( 0 ) {} C_Str( char * c_str_r ) : _val( c_str_r ), _sze( std::string::npos ) {} C_Str( const char * c_str_r ) : _val( c_str_r ), _sze( std::string::npos ) {} C_Str( const std::string & str_r ) : _val( str_r.c_str() ), _sze( str_r.size() ) {} C_Str( const boost::string_ref & str_r ) : _val( str_r.data() ), _sze( str_r.size() ) {} public: bool isNull() const { return !_val; } bool empty() const { return !(_val && *_val); } size_type size() const { if ( _sze == std::string::npos ) { _sze = _val ? ::strlen( _val ) : 0; } return _sze; }; operator const char *() const { return c_str(); } const char * c_str() const { return _val ? _val : ""; } private: const char *const _val; mutable size_type _sze; }; /** \relates C_Str Stream output */ inline std::ostream & operator<<( std::ostream & str, const C_Str & obj ) { return str << obj.c_str(); } /////////////////////////////////////////////////////////////////// /** String related utilities and \ref ZYPP_STR_REGEX. \see \ref ZYPP_STR_REGEX */ namespace str { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /** * Global asString() that works with std::string too */ inline const std::string & asString( const std::string & t ) { return t; } #ifndef SWIG // Swig treats it as syntax error inline std::string && asString( std::string && t ) { return std::move(t); } #endif inline std::string asString( const char * t ) { return t == nullptr ? std::string() : t; } inline std::string asString( char * t ) { return t == nullptr ? std::string() : t; } template inline std::string asString( const Tp &t ) { return t.asString(); } template inline std::string asString( const intrusive_ptr &p ) { return p->asString(); } template inline std::string asString( const weak_ptr &p ) { return p->asString(); } template<> inline std::string asString( const bool &t ) { return t ? "true" : "false"; } /////////////////////////////////////////////////////////////////// /** Printf style construction of std::string. */ std::string form( const char * format, ... ) __attribute__ ((format (printf, 1, 2))); /////////////////////////////////////////////////////////////////// /** Return string describing the \a error_r code. * Like ::strerror, but the numerical value is included in * the string as well. */ std::string strerror( int errno_r ); /////////////////////////////////////////////////////////////////// /** Assert \c free called for allocated char *. * \code * ... * SafeBuf safe; * vasprintf( &safe._buf, format, ap ); * return safe.asString(); * \endcode * * \ingroup g_RAII */ struct SafeBuf { char * _buf; SafeBuf() : _buf( 0 ) {} ~SafeBuf() { if ( _buf ) free( _buf ); } std::string asString() const { return _buf ? std::string(_buf) : std::string(); } }; /////////////////////////////////////////////////////////////////// /// \class Str /// \brief Convenient building of std::string via \ref std::ostringstream /// Basically a \ref std::ostringstream autoconvertible to \ref std::string /// for building string arguments. /// \code /// void fnc( const std::string & txt_r ); /// fnc( str::Str() << "Hello " << 13 ); /// /// std::string txt( str::Str() << 45 ); /// \endcode /////////////////////////////////////////////////////////////////// struct Str { template Str & operator<<( Tp && val ) { _str << std::forward(val); return *this; } Str & operator<<( std::ostream& (*iomanip)( std::ostream& ) ) { _str << iomanip; return *this; } operator std::string() const { return _str.str(); } std::string asString() const { return _str.str(); } std::string str() const { return _str.str(); } const std::ostream & stream() const { return _str; } std::ostream & stream() { return _str; } void clear() { _str.str( std::string() ); } private: std::ostringstream _str; }; /** \relates Str Stream output */ inline std::ostream & operator<<( std::ostream & str, const Str & obj ) { return str << obj.str(); } /////////////////////////////////////////////////////////////////// /// \class Format /// \brief Convenient building of std::string with \ref boost::format. /// Basically a \ref boost::format autoconvertible to \ref std::string /// for building string arguments. /// \note It won't complain about malformed or incomplete format /// strings. Usefull when dealing with translations or classes /// providing a default formater. /// \code /// void fnc( const std::string & txt_r ); /// fnc( str::Format("Hello %1%") % 13 ); /// /// std::string txt( str::Format("Hello %1%") % 13 ); /// \endcode /////////////////////////////////////////////////////////////////// struct Format { Format() { _fmter.exceptions( boost::io::no_error_bits ); } Format( const std::string & format_r ) : Format() { _fmter.parse( format_r ); } template Format & operator%( Tp && arg ) { _fmter % std::forward(arg); return *this; } operator std::string() const { return _fmter.str(); } std::string asString() const { return _fmter.str(); } std::string str() const { return _fmter.str(); } const boost::format & fmter() const { return _fmter; } boost::format & fmter() { return _fmter; } protected: boost::format _fmter; }; /** \relates Format Stream output */ inline std::ostream & operator<<( std::ostream & str, const Format & obj ) { return str << obj.fmter(); } /** \name String representation of number. * * Optional second argument sets the minimal string width (' ' padded). * Negative values will cause the number to be left adjusted within the string. * * Default width is 0. * \code * numstring(42) -> "42" * numstring(42, 4) -> " 42" * numstring(42,-4) -> "42 " * \endcode **/ //@{ inline std::string numstring( char n, int w = 0 ) { return form( "%*hhd", w, n ); } inline std::string numstring( unsigned char n, int w = 0 ) { return form( "%*hhu", w, n ); } inline std::string numstring( short n, int w = 0 ) { return form( "%*hd", w, n ); } inline std::string numstring( unsigned short n, int w = 0 ) { return form( "%*hu", w, n ); } inline std::string numstring( int n, int w = 0 ) { return form( "%*d", w, n ); } inline std::string numstring( unsigned n, int w = 0 ) { return form( "%*u", w, n ); } inline std::string numstring( long n, int w = 0 ) { return form( "%*ld", w, n ); } inline std::string numstring( unsigned long n, int w = 0 ) { return form( "%*lu", w, n ); } inline std::string numstring( long long n, int w = 0 ) { return form( "%*lld", w, n ); } inline std::string numstring( unsigned long long n, int w = 0 ) { return form( "%*llu", w, n ); } template<> inline std::string asString( const char & t ) { return numstring( t ); } template<> inline std::string asString( const unsigned char & t ) { return numstring( t ); } template<> inline std::string asString( const short & t ) { return numstring( t ); } template<> inline std::string asString( const unsigned short & t ) { return numstring( t ); } template<> inline std::string asString( const int & t ) { return numstring( t ); } template<> inline std::string asString( const unsigned & t ) { return numstring( t ); } template<> inline std::string asString( const long & t ) { return numstring( t ); } template<> inline std::string asString( const unsigned long & t ) { return numstring( t ); } template<> inline std::string asString( const long long & t ) { return numstring( t ); } template<> inline std::string asString( const unsigned long long & t ) { return numstring( t ); } //@} /////////////////////////////////////////////////////////////////// /** \name String representation of number as hex value with leading '0x'. * Optional second argument sets the minimal * string width (0 padded). Negative values will cause the number to be left adjusted * within the string. Default width is 10 (4 for char). *

     * hexstring(42)           -> "0x0000002a"
     * hexstring(42, 4)        -> "0x2a"
     * hexstring(42,-4)        -> "0x2a"
     * 
**/ //@{ inline std::string hexstring( char n, int w = 4 ) { return form( "%#0*hhx", w, n ); } inline std::string hexstring( unsigned char n, int w = 4 ) { return form( "%#0*hhx", w, n ); } inline std::string hexstring( short n, int w = 10 ){ return form( "%#0*hx", w, n ); } inline std::string hexstring( unsigned short n, int w = 10 ){ return form( "%#0*hx", w, n ); } inline std::string hexstring( int n, int w = 10 ){ return form( "%#0*x", w, n ); } inline std::string hexstring( unsigned n, int w = 10 ){ return form( "%#0*x", w, n ); } inline std::string hexstring( long n, int w = 10 ){ return form( "%#0*lx", w, n ); } inline std::string hexstring( unsigned long n, int w = 10 ){ return form( "%#0*lx", w, n ); } inline std::string hexstring( long long n, int w = 0 ) { return form( "%#0*llx", w, n ); } inline std::string hexstring( unsigned long long n, int w = 0 ) { return form( "%#0*llx", w, n ); } //@} /////////////////////////////////////////////////////////////////// /** \name String representation of number as octal value with leading '0'. * Optional second argument sets the minimal * string width (0 padded). Negative values will cause the number to be left adjusted * within the string. Default width is 5 (4 for char). *
     * octstring(42)           -> "00052"
     * octstring(42, 4)        -> "0052"
     * octstring(42,-4)        -> "052 "
     * 
**/ //@{ inline std::string octstring( char n, int w = 4 ) { return form( "%#0*hho", w, n ); } inline std::string octstring( unsigned char n, int w = 4 ) { return form( "%#0*hho", w, n ); } inline std::string octstring( short n, int w = 5 ) { return form( "%#0*ho", w, n ); } inline std::string octstring( unsigned short n, int w = 5 ) { return form( "%#0*ho", w, n ); } inline std::string octstring( int n, int w = 5 ) { return form( "%#0*o", w, n ); } inline std::string octstring( unsigned n, int w = 5 ) { return form( "%#0*o", w, n ); } inline std::string octstring( long n, int w = 5 ) { return form( "%#0*lo", w, n ); } inline std::string octstring( unsigned long n, int w = 5 ) { return form( "%#0*lo", w, n ); } inline std::string octstring( long long n, int w = 0 ) { return form( "%#0*llo", w, n ); } inline std::string octstring( unsigned long long n, int w = 0 ) { return form( "%#0*llo", w, n ); } //@} /////////////////////////////////////////////////////////////////// /** String representation of number as bit-string with leading '0's. */ template std::string binstring( TInt val_r ) { constexpr unsigned bits = sizeof(TInt)*8; std::string ret( bits, ' ' ); TInt bit = 1; for ( unsigned pos = bits; pos > 0; ) { --pos; ret[pos] = ((val_r & bit)?'1':'0'); bit = bit<<1; } return ret; } /////////////////////////////////////////////////////////////////// /** Parsing numbers from string. */ //@{ /** String to integer type determined by template arg. * \note Only specializations are defined. * \code * time_t t = strtonum( "42" ); * \endcode */ template TInt strtonum( const C_Str & str ); template<> inline short strtonum( const C_Str & str ) { return ::strtol ( str, NULL, 0 ); } template<> inline int strtonum( const C_Str & str ) { return ::strtol ( str, NULL, 0 ); } template<> inline long strtonum( const C_Str & str ) { return ::strtol ( str, NULL, 0 ); } template<> inline long long strtonum( const C_Str & str ) { return ::strtoll ( str, NULL, 0 ); } template<> inline unsigned short strtonum( const C_Str & str ) { return ::strtoul ( str, NULL, 0 ); } template<> inline unsigned strtonum( const C_Str & str ) { return ::strtoul ( str, NULL, 0 ); } template<> inline unsigned long strtonum( const C_Str & str ) { return ::strtoul ( str, NULL, 0 ); } template<> inline unsigned long long strtonum( const C_Str & str ) { return ::strtoull( str, NULL, 0 ); } /** String to integer type detemined 2nd function arg \a i. * \code * time_t t; strtonum( "42", t ); * \endcode */ template inline TInt strtonum( const C_Str & str, TInt & i ) { return i = strtonum( str ); } //@} /////////////////////////////////////////////////////////////////// /** Parsing boolean from string. */ //@{ /** Return \c true if str is 1, true, yes, on (or a nonzero number). */ bool strToTrue( const C_Str & str ); /** Return \c false if str is 0, false, no, off. */ bool strToFalse( const C_Str & str ); /** Parse \c str into a bool depending on the default value. * If the \c default is true, look for a legal \c false string. * If the \c default is false, look for a legal \c true string. */ inline bool strToBool( const C_Str & str, bool default_r ) { return( default_r ? strToFalse( str ) : strToTrue( str ) ); } /** Parse \c str into a bool if it's a legal \c true or \c false string. * If \c str is not a recognized \c true or \c false string, \a return_r * is left unchanged. */ inline bool strToBoolNodefault( const C_Str & str, bool & return_r ) { if ( strToTrue( str ) ) return (return_r = true); if ( !strToFalse( str ) ) return (return_r = false); return return_r; } /** Parse \c str into a bool if it's a legal \c true or \c false string; else \c indterminate. */ TriBool strToTriBool( const C_Str & str ); //@} /** * \short Return a string with all occurrences of \c from_r replaced with \c to_r. */ std::string gsub( const std::string & str_r, const std::string & from_r, const std::string & to_r ); /** \overload A function is called on demand to compute each replacement value. */ std::string gsubFun( const std::string & str_r, const std::string & from_r, function to_r ); /** * \short Replace all occurrences of \c from_r with \c to_r in \c str_r (inplace). * A reference to \c str_r is also returned for convenience. */ std::string & replaceAll( std::string & str_r, const std::string & from_r, const std::string & to_r ); /** \overload A function is called on demand to compute each replacement value. */ std::string & replaceAllFun( std::string & str_r, const std::string & from_r, function to_r ); /** Enhance readability: insert gaps at regular distance * \code * // no gaps * Key Fingerprint: 22C07BA534178CD02EFE22AAB88B2FD43DBDC284 * // gapify 8 * Key Fingerprint: 22C07BA5 34178CD0 2EFE22AA B88B2FD4 3DBDC284 * // gapify 4 * Key Fingerprint: 22C0 7BA5 3417 8CD0 2EFE 22AA B88B 2FD4 3DBD C284 * // gapify 4, '-' * Key Fingerprint: 22C0-7BA5-3417-8CD0-2EFE-22AA-B88B-2FD4-3DBD-C284 * \endcode */ inline std::string gapify( std::string inp_r, std::string::size_type gap_r = 1, char gapchar = ' ' ) { if ( gap_r && inp_r.size() > gap_r ) { inp_r.reserve( inp_r.size() + (inp_r.size()-1)/gap_r ); for ( std::string::size_type pos = gap_r; pos < inp_r.size(); pos += gap_r+1 ) inp_r.insert( pos, 1, gapchar ); } return inp_r; } /////////////////////////////////////////////////////////////////// /** \name Split. */ //@{ /** Split \a line_r into words. * Any sequence of characters in \a sepchars_r is treated as * delimiter. The words are passed to OutputIterator \a result_r. * \code * std::vector words; * str::split( "some line", std::back_inserter(words) ) * \endcode * */ template unsigned split( const C_Str & line_r, TOutputIterator result_r, const C_Str & sepchars_r = " \t" ) { const char * beg = line_r; const char * cur = beg; // skip leading sepchars while ( *cur && ::strchr( sepchars_r, *cur ) ) ++cur; unsigned ret = 0; for ( beg = cur; *beg; beg = cur, ++result_r, ++ret ) { // skip non sepchars while( *cur && !::strchr( sepchars_r, *cur ) ) ++cur; // build string *result_r = std::string( beg, cur-beg ); // skip sepchars while ( *cur && ::strchr( sepchars_r, *cur ) ) ++cur; } return ret; } /** Split \a line_r into words with respect to escape delimeters. * Any sequence of characters in \a sepchars_r is treated as * delimiter if not inside \c "" or \c '' or escaped by \c \. * * \li A non-quoted backslash (\) preserves the literal value of the next character. * \li Enclosing characters in single quotes preserves the literal value of each * character within the quotes. A single quote may not occur between single * quotes, even when preceded by a backslash. * \li Enclosing characters in double quotes preserves the literal value of all * characters within the quotes, with the exception of \c \. The backslash * retains its special meaning only when followed by \c " or \c \. * * The words are passed to OutputIterator \a result_r. * * \see \ref splitEscaped * * \code * std::vector words; * str::splitEscaped( "some line", std::back_inserter(words) ) * \endcode * * \code * example splitted strings * normal line -> 2 elements ( "normal", "line" ) * escaped\ line -> 1 element(escaped line) * "quoted line" -> 1 element same as above * 'quoted line' -> 1 element same as above * "escaped quote\"" -> 1 element (escaped quote") * * \param line_r The string to parse. * \param result_r * \param sepchars_r String of separator characters. * \param withEmpty Whether to include empty fields between separators in the result. * * \endcode */ template unsigned splitEscaped( const C_Str & line_r, TOutputIterator result_r, const C_Str & sepchars_r = " \t", bool withEmpty = false) { const char * beg = line_r; const char * cur = beg; unsigned ret = 0; // skip leading sepchars while ( *cur && ::strchr( sepchars_r, *cur ) ) { ++cur; if (withEmpty) { *result_r = ""; ++ret; } } // there were only sepchars in the string if (!*cur && withEmpty) { *result_r = ""; return ++ret; } // after the leading sepchars enum class Quote { None, Slash, Single, Double, DoubleSlash }; std::vector buf; Quote quoting = Quote::None; for ( beg = cur; *beg; beg = cur, ++result_r, ++ret ) { // read next value until unquoted sepchar buf.clear(); quoting = Quote::None; do { switch ( quoting ) { case Quote::None: switch ( *cur ) { case '\\': quoting = Quote::Slash; break; case '\'': quoting = Quote::Single; break; case '"': quoting = Quote::Double; break; default: buf.push_back( *cur ); break; } break; case Quote::Slash: buf.push_back( *cur ); quoting = Quote::None; break; case Quote::Single: switch ( *cur ) { case '\'': quoting = Quote::None; break; default: buf.push_back( *cur ); break; } break; case Quote::Double: switch ( *cur ) { case '\"': quoting = Quote::None; break; case '\\': quoting = Quote::DoubleSlash; break; default: buf.push_back( *cur ); break; } break; case Quote::DoubleSlash: switch ( *cur ) { case '\"': /*fallthrough*/ case '\\': buf.push_back( *cur ); break; default: buf.push_back( '\\' ); buf.push_back( *cur ); break; } quoting = Quote::Double; break; } ++cur; } while ( *cur && ( quoting != Quote::None || !::strchr( sepchars_r, *cur ) ) ); *result_r = std::string( buf.begin(), buf.end() ); // skip sepchars if ( *cur && ::strchr( sepchars_r, *cur ) ) ++cur; while ( *cur && ::strchr( sepchars_r, *cur ) ) { ++cur; if (withEmpty) { *result_r = ""; ++ret; } } // the last was a separator => one more field if ( !*cur && withEmpty && ::strchr( sepchars_r, *(cur-1) ) ) { *result_r = ""; ++ret; } } return ret; } /** Split \a line_r into fields. * Any single character in \a sepchars_r is treated as a * field separator unless \-escaped. The words are passed * to OutputIterator. * \a result_r. * \code * "" -> words 0 * ":" -> words 2 ||| * "a" -> words 1 |a| * ":a" -> words 2 ||a| * "a:" -> words 2 |a|| * ":a:" -> words 3 ||a|| * * \endcode * * \code * std::vector words; * str::split( "some line", std::back_inserter(words) ) * \endcode * */ template unsigned splitFields( const C_Str & line_r, TOutputIterator result_r, const C_Str & sepchars_r = ":" ) { const char * beg = line_r; const char * cur = beg; unsigned ret = 0; for ( beg = cur; *beg; beg = cur, ++result_r ) { // skip non sepchars while( *cur && !::strchr( sepchars_r, *cur ) ) { if ( *cur == '\\' && *(cur+1) ) ++cur; ++cur; } // build string *result_r = std::string( beg, cur-beg ); ++ret; // skip sepchar if ( *cur ) { ++cur; if ( ! *cur ) // ending with sepchar { *result_r = std::string(); // add final empty field ++ret; break; } } } return ret; } /** * Split \a line_r into fields handling also escaped separators. * * \see splitFields() * \see splitEscaped() */ template unsigned splitFieldsEscaped( const C_Str & line_r, TOutputIterator result_r, const C_Str & sepchars_r = ":" ) { return splitEscaped( line_r, result_r, sepchars_r, true /* withEmpty */ ); } //@} /////////////////////////////////////////////////////////////////// /** \name Join. */ //@{ /** Join strings using separator \a sep_r (defaults to BLANK). */ template std::string join( TIterator begin, TIterator end, const C_Str & sep_r = " " ) { std::string res; for ( TIterator iter = begin; iter != end; ++ iter ) { if ( iter != begin ) res += sep_r; res += asString(*iter); } return res; } /** Join strings using separator \a sep_r (defaults to BLANK). */ template std::string join( const TContainer & cont_r, const C_Str & sep_r = " " ) { return join( cont_r.begin(), cont_r.end(), sep_r ); } /** Join strings using separator \a sep_r, quoting or escaping the values. * Separator defaults to BLANK. Use \ref splitEscaped to restore the * values. */ template std::string joinEscaped( TIterator begin, TIterator end, const char sep_r = ' ' ) { std::vector buf; for ( TIterator iter = begin; iter != end; ++ iter ) { if ( iter != begin ) buf.push_back( sep_r ); if ( iter->empty() ) { // empty string goes "" buf.push_back( '"' ); buf.push_back( '"' ); } else { std::string toadd( asString(*iter) ); for_( ch, toadd.begin(), toadd.end() ) { switch ( *ch ) { case '"': case '\'': case '\\': buf.push_back( '\\' ); buf.push_back( *ch ); break; default: if ( *ch == sep_r ) buf.push_back( '\\' ); buf.push_back( *ch ); } } } } return std::string( buf.begin(), buf.end() ); } //@} /////////////////////////////////////////////////////////////////// /** \name Indent. */ //@{ /** Indent by string [" "] optionally wrap. * Prints nothing for an empty string. Asserts a trainling '\n' on * the last line. Optionally wrap lines at ' ' at a given length. */ inline std::ostream & printIndented( std::ostream & str, const std::string & text_r, const std::string & indent_r = " ", unsigned maxWitdh_r = 0 ) { if ( maxWitdh_r ) { if ( indent_r.size() >= maxWitdh_r ) maxWitdh_r = 0; // nonsense: indent larger than line witdh else maxWitdh_r -= indent_r.size(); } unsigned width = 0; for ( const char * e = text_r.c_str(), * s = e; *e; s = ++e ) { for ( ; *e && *e != '\n'; ++e ) ;/*searching*/ width = e-s; if ( maxWitdh_r && width > maxWitdh_r ) { // must break line width = maxWitdh_r; for ( e = s+width; e > s && *e != ' '; --e ) ;/*searching*/ if ( e > s ) width = e-s; // on a ' ', replaced by '\n' else e = s+width-1; // cut line; } str << indent_r; str.write( s, width ); str << "\n"; if ( !*e ) // on '\0' break; } return str; } /** \overload Indent by number of chars [' '] optionally wrap. */ inline std::ostream & printIndented( std::ostream & str, const std::string & text_r, unsigned indent_r, char indentch_r = ' ', unsigned maxWitdh_r = 0 ) { return printIndented( str, text_r, std::string( indent_r, indentch_r ), maxWitdh_r ); } /** \overload Indent by number of chars [' '] wrap. */ inline std::ostream & printIndented( std::ostream & str, const std::string & text_r, unsigned indent_r, unsigned maxWitdh_r, char indentch_r = ' ' ) { return printIndented( str, text_r, std::string( indent_r, indentch_r ), maxWitdh_r ); } /** Prefix lines by string computed by function taking line begin/end [std::string(const char*, const char*)] * Prints nothing for an empty string. Asserts a trainling '\n' on the last line. */ inline std::ostream & autoPrefix( std::ostream & str, const std::string & text_r, function fnc_r ) { for ( const char * e = text_r.c_str(); *e; ++e ) { const char * s = e; for ( ; *e && *e != '\n'; ++e ) /*searching*/; str << fnc_r( s, e ); str.write( s, e-s ); str << "\n"; if ( !*e ) // on '\0' break; } return str; } /** \overload Prefix lines by string generated by function [std::string()] */ inline std::ostream & autoPrefix0( std::ostream & str, const std::string & text_r, function fnc_r ) { auto wrap = [&fnc_r]( const char*, const char* )-> std::string { return fnc_r(); }; return autoPrefix( str, text_r, wrap ); } //@} /////////////////////////////////////////////////////////////////// /** \name Escape. */ //@{ /** * Escape desired character \a c using a backslash. * * For use when printing \a c separated values, and where * \ref joinEscaped() is too heavy. */ std::string escape( const C_Str & str_r, const char c = ' ' ); /** Escape \a next_r and append it to \a str_r using separator \a sep_r. */ inline void appendEscaped( std::string & str_r, const C_Str & next_r, const char sep_r = ' ' ) { if ( ! str_r.empty() ) str_r += sep_r; if ( next_r.empty() ) str_r += "\"\""; else str_r += escape( next_r, sep_r ); } //! \todo unsecape() //@} /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /** \name Hexencode. * Encode all characters other than [a-zA-Z0-9] as %XX. * This includes the % character itself, which becomes %25. */ //@{ /** Encode all characters other than [a-zA-Z0-9] as %XX. * This includes the % character itself, which becomes %25. */ std::string hexencode( const C_Str & str_r ); /** Decode hexencoded %XX sequences. */ std::string hexdecode( const C_Str & str_r ); //@} /////////////////////////////////////////////////////////////////// /** \name Case conversion. */ //@{ /** Return lowercase version of \a s * \todo improve */ std::string toLower( const std::string & s ); std::string toLower( std::string && s ); /** \overload */ inline std::string toLower( const char * s ) { return( s ? toLower( std::string(s) ) : std::string() ); } /** Return uppercase version of \a s * \todo improve */ std::string toUpper( const std::string & s ); std::string toUpper( std::string && s ); /** \overload */ inline std::string toUpper( const char * s ) { return( s ? toUpper( std::string(s) ) : std::string() ); } //@} /** \name Case insensitive comparison. */ //@{ inline int compareCI( const C_Str & lhs, const C_Str & rhs ) { return ::strcasecmp( lhs, rhs ); } //@} /** \name Locate substring. */ //@{ /** Locate substring case sensitive. */ inline bool contains( const C_Str & str_r, const C_Str & val_r ) { return ::strstr( str_r, val_r ); } /** Locate substring case insensitive. */ inline bool containsCI( const C_Str & str_r, const C_Str & val_r ) { return ::strcasestr( str_r, val_r ); } //@} /////////////////////////////////////////////////////////////////// /** \name Trimming whitepace. * \todo optimize l/r trim. */ //@{ /** To define how to trim. */ enum Trim { NO_TRIM = 0x00, L_TRIM = 0x01, R_TRIM = 0x02, TRIM = (L_TRIM|R_TRIM) }; std::string trim( const std::string & s, const Trim trim_r = TRIM ); std::string trim( std::string && s, const Trim trim_r = TRIM ); inline std::string ltrim( const std::string & s ) { return trim( s, L_TRIM ); } inline std::string ltrim( std::string && s ) { return trim( std::move(s), L_TRIM ); } inline std::string rtrim( const std::string & s ) { return trim( s, R_TRIM ); } inline std::string rtrim( std::string && s ) { return trim( std::move(s), R_TRIM ); } //@} std::string stripFirstWord( std::string & line, const bool ltrim_first = true ); std::string stripLastWord( std::string & line, const bool rtrim_first = true ); /** Return stream content up to (but not returning) the next newline. * \see \ref receiveUpTo */ std::string getline( std::istream & str, bool trim = false ); /** Return stream content up to (but not returning) the next newline. * \see \ref receiveUpTo */ std::string getline( std::istream & str, const Trim trim_r ); /** Return stream content up to the next ocurrence of \c delim_r or EOF * \c delim_r, if found, is always read from the stream. Whether it is * also returned in the string depends on \c returnDelim_r. * If the stream status is \c good, \c delim_r was found in the stream. * If we reached EOF while looking for \c delim_r, \c eof is set; and * also \c fail, if we did not read any data before. */ std::string receiveUpTo( std::istream & str, const char delim_r, bool returnDelim_r = false ); /////////////////////////////////////////////////////////////////// /** \name String prefix/suffix handling. */ //@{ /** Return whether \a str_r has prefix \a prefix_r. */ inline bool hasPrefix( const C_Str & str_r, const C_Str & prefix_r ) { return( ::strncmp( str_r, prefix_r, prefix_r.size() ) == 0 ); } /** \overload Case insensitive */ inline bool hasPrefixCI( const C_Str & str_r, const C_Str & prefix_r ) { return( ::strncasecmp( str_r, prefix_r, prefix_r.size() ) == 0 ); } /** Strip a \a prefix_r from \a str_r and return the resulting string. */ inline std::string stripPrefix( const C_Str & str_r, const C_Str & prefix_r ) { return( hasPrefix( str_r, prefix_r ) ? str_r + prefix_r.size() : str_r.c_str() ); } /** \overload Case insensitive */ inline std::string stripPrefixCI( const C_Str & str_r, const C_Str & prefix_r ) { return( hasPrefixCI( str_r, prefix_r ) ? str_r + prefix_r.size() : str_r.c_str() ); } /** Return whether \a str_r has suffix \a suffix_r. */ inline bool hasSuffix( const C_Str & str_r, const C_Str & suffix_r ) { return( str_r.size() >= suffix_r.size() && ::strncmp( str_r + str_r.size() - suffix_r.size() , suffix_r, suffix_r.size() ) == 0 ); } /** \overload Case insensitive */ inline bool hasSuffixCI( const C_Str & str_r, const C_Str & suffix_r ) { return( str_r.size() >= suffix_r.size() && ::strncasecmp( str_r + str_r.size() - suffix_r.size() , suffix_r, suffix_r.size() ) == 0 ); } /** Strip a \a suffix_r from \a str_r and return the resulting string. */ inline std::string stripSuffix( const C_Str & str_r, const C_Str & suffix_r ) { if ( hasSuffix( str_r, suffix_r ) ) return std::string( str_r, str_r.size() - suffix_r.size() ); return str_r.c_str(); } /** \overload Case insensitive */ inline std::string stripSuffixCI( const C_Str & str_r, const C_Str & suffix_r ) { if ( hasSuffixCI( str_r, suffix_r ) ) return std::string( str_r, str_r.size() - suffix_r.size() ); return str_r.c_str(); } /** Return size of the common prefix of \a lhs and \a rhs. */ inline std::string::size_type commonPrefix( const C_Str & lhs, const C_Str & rhs ) { const char * lp = lhs.c_str(); const char * rp = rhs.c_str(); std::string::size_type ret = 0; while ( *lp == *rp && *lp != '\0' ) { ++lp, ++rp, ++ret; } return ret; } /** \overload Case insensitive */ inline std::string::size_type commonPrefixCI( const C_Str & lhs, const C_Str & rhs ) { const char * lp = lhs.c_str(); const char * rp = rhs.c_str(); std::string::size_type ret = 0; while ( tolower(*lp) == tolower(*rp) && *lp != '\0' ) { ++lp, ++rp, ++ret; } return ret; } /** alias for \ref hasPrefix */ inline bool startsWith( const C_Str & str_r, const C_Str & prefix_r ) { return hasPrefix( str_r, prefix_r ); } /** \overload Case insensitive */ inline bool startsWithCI( const C_Str & str_r, const C_Str & prefix_r ) { return hasPrefixCI( str_r, prefix_r ); } /** alias for \ref hasSuffix */ inline bool endsWith( const C_Str & str_r, const C_Str & prefix_r ) { return hasSuffix( str_r, prefix_r ); } /** \overload Case insensitive */ inline bool endsWithCI( const C_Str & str_r, const C_Str & prefix_r ) { return hasSuffixCI( str_r, prefix_r ); } //@} } // namespace str /////////////////////////////////////////////////////////////////// // drag into zypp:: namespace using str::asString; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_STRING_H libzypp-17.7.0/zypp/base/Sysconfig.cc000066400000000000000000000106111334444677500175060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Sysconfig.cc * */ #include #include #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/StrMatcher.h" #include "zypp/base/IOStream.h" #include "zypp/base/InputStream.h" #include "zypp/Pathname.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/base/Sysconfig.h" using namespace std; using namespace zypp::base; namespace zypp { namespace base { namespace sysconfig { map read( const Pathname & _path ) { DBG << "Load '" << _path << "'" << endl; map ret; string line; ifstream in( _path.asString().c_str() ); if ( in.fail() ) { WAR << "Unable to load '" << _path << "'" << endl; return ret; } while( getline( in, line ) ) { if ( *line.begin() != '#' ) { string::size_type pos = line.find( '=', 0 ); if ( pos != string::npos ) { string key = str::trim( line.substr( 0, pos ) ); string value = str::trim( line.substr( pos + 1, line.length() - pos - 1 ) ); if ( value.length() >= 2 && *(value.begin()) == '"' && *(value.rbegin()) == '"' ) { value = value.substr( 1, value.length() - 2 ); } if ( value.length() >= 2 && *(value.begin()) == '\'' && *(value.rbegin()) == '\'' ) { value = value.substr( 1, value.length() - 2 ); } XXX << "KEY: '" << key << "' VALUE: '" << value << "'" << endl; ret[key] = value; } // '=' found } // not comment } // while getline MIL << "done reading '" << _path << "'" << endl; return ret; } bool write( const Pathname & path_r, const std::string & key_r, const std::string & val_r, const std::string & newcomment_r ) { if ( key_r.empty() ) { WAR << "Empty key in write " << path_r << endl; return false; } PathInfo pi( path_r ); if ( ! pi.isFile() ) ZYPP_THROW( Exception( str::Str() << path_r << ": " << Errno(ENOENT) ) ); if ( ! pi.userMayRW() ) ZYPP_THROW( Exception( str::Str() << path_r << ": " << Errno(EACCES) ) ); bool found = false; filesystem::TmpFile tmpf( filesystem::TmpFile::makeSibling( path_r ) ); { StrMatcher matches( "^[ \t]*"+key_r+"[ \t]*=", Match::REGEX ); std::ofstream o( tmpf.path().c_str() ); iostr::forEachLine( InputStream( path_r ), [&]( int num_r, std::string line_r )->bool { if ( !found && matches( line_r ) ) { o << key_r << '=' << val_r << endl; found = true; MIL << path_r << ": " << key_r << '=' << val_r << " changed on line " << num_r << endl; } else o << line_r << endl; return true; } ); if ( !found ) { if ( newcomment_r.empty() ) { WAR << path_r << ": " << key_r << '=' << val_r << " can not be added (no comment provided)." << endl; } else { std::vector lines; str::split( newcomment_r, std::back_inserter(lines), "\r\n" ); o << endl; for ( const std::string & line : lines ) { if ( line[0] != '#' ) o << "# "; o << line << endl; } o << key_r << '=' << val_r << endl; found = true; MIL << path_r << ": " << key_r << '=' << val_r << " appended. " << endl; } } if ( ! o ) ZYPP_THROW( Exception( str::Str() << tmpf.path() << ": " << Errno(EIO) ) ); } // If everything is fine, exchange the files: int res = exchange( tmpf.path(), path_r ); if ( res ) { ZYPP_THROW( Exception( str::Str() << tmpf.path() << ": " << Errno(res) ) ); } return found; } bool writeStringVal( const Pathname & path_r, const std::string & key_r, const std::string & val_r, const std::string & newcomment_r ) { return write( path_r, key_r, str::Str() << '"' << str::escape( val_r, '"' )<< '"', newcomment_r ); } } // namespace sysconfig } // namespace base } // namespace zypp libzypp-17.7.0/zypp/base/Sysconfig.h000066400000000000000000000054141334444677500173550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Sysconfig.h * */ #ifndef ZYPP_BASE_SYSCONFIG_H #define ZYPP_BASE_SYSCONFIG_H #include #include #include "zypp/Pathname.h" namespace zypp { namespace base { namespace sysconfig { /** Read sysconfig file \a path_r and return (key,valye) pairs. */ std::map read( const Pathname & _path ); /** Add or change a value in sysconfig file \a path_r. * * If \a key_r already exists, only the \a val_r is changed accordingly. * * In case \a key_r is not yet present in the file, a new entry may be created * at the end of the file, using the lines in \a newcomment_r as comment * block. If \a newcomment_r is not provided or empty, a new value is not * created and \c false is returned. * * \returns \c TRUE if an entry was changed or created. * * \throws Exception if \a path_r can not be read or written. * * \note \a val_r is written as it is. The caller is responsible for escaping and * enclosing in '"', in case this is needed (\see \ref writeStringVal and \ref str::escape). * * \note Lines in \a newcomment_r which do not already start with a '#', * are prefixes with "# ". * * \code * ## Type: string * ## Default: "" * # * # A multiline description of * # the options purpose. * # * KEY="value" * \endcode */ bool write( const Pathname & path_r, const std::string & key_r, const std::string & val_r, const std::string & newcomment_r = std::string() ); /** Convenience to add or change a string-value in sysconfig file \a path_r. * * \a val_r is expected to be a plain string value, so it is propery escaped and enclosed in * double quotes before it is written to the sysconfig file \a path_r. * * \see \ref write */ bool writeStringVal( const Pathname & path_r, const std::string & key_r, const std::string & val_r, const std::string & newcomment_r = std::string() ); } // namespace sysconfig } // namespace base } // namespace zypp #endif // ZYPP_BASE_SYSCONFIG_H libzypp-17.7.0/zypp/base/TypeTraits.h000066400000000000000000000057121334444677500175220ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/TypeTraits.h */ #ifndef ZYPP_TYPETRAITS_H #define ZYPP_TYPETRAITS_H #include /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace _detail { template struct _has_type_const_iterator { private: template static std::true_type test( typename C::const_iterator * ); template static std::false_type test(...); public: static constexpr bool value = decltype(test(nullptr))::value; }; template struct _has_container_begin_end { private: template using Signature = typename C::const_iterator(C::*)() const; template static std::true_type testBeg( typename std::enable_if>(&C::begin)), Signature>::value, void>::type* ); template static std::false_type testBeg(...); template static std::true_type testEnd( typename std::enable_if>(&C::end)), Signature>::value, void>::type* ); template static std::false_type testEnd(...); public: static constexpr bool beg_value = decltype(testBeg(nullptr))::value; static constexpr bool end_value = decltype(testEnd(nullptr))::value; static constexpr bool value = beg_value && end_value; }; } // namespace _detail /////////////////////////////////////////////////////////////////// /** Whether \a Tp defines type \a Tp::const_iterator */ template struct has_type_const_iterator : public std::integral_constant::value> {}; /** Whether \a Tp defines methods Tp::const_iterator begin/end() const */ template struct has_container_begin_end : public std::integral_constant::value> {}; /** Whether \a Tp is a container (begin/end iterabel, but not plain std::string) */ template struct is_container : public std::integral_constant::value && has_container_begin_end::value> {}; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TYPETRAITS_H libzypp-17.7.0/zypp/base/Unit.cc000066400000000000000000000033621334444677500164660ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Unit.cc * */ #include "zypp/base/String.h" #include "zypp/base/Unit.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// std::string Unit::form( double val_r, const std::string & symbol_r, unsigned field_width_r, unsigned unit_width_r, unsigned prec_r ) { std::string ret = str::form( "%*.*f", field_width_r, prec_r, val_r ); if ( unit_width_r ) { ret += str::form( " %*s", unit_width_r, symbol_r.c_str() ); } return ret; } ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/Unit.h000066400000000000000000000067541334444677500163400ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Unit.h * */ #ifndef ZYPP_BASE_UNIT_H #define ZYPP_BASE_UNIT_H #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace base { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Unit // /** Simple handling of Units. * * Unit stores factor and symbol, and a precision value for printing. * \ref form builds a string from a value according to the format * specification. * \code * static const Unit B( 1, "B", 0 ); * static const Unit K( 1024, "K", 1 ); * static const Unit M( 1048576, "M", 1 ); * static const Unit G( 1073741824, "G", 2 ); * static const Unit T( 1099511627776, "T", 3 ); * \endcode */ class Unit { public: typedef long long ValueType; /** Default ctor */ Unit() : _factor( 1 ) , _prec( 0 ) {} /** ctor */ Unit( ValueType factor_r, std::string symbol_r, unsigned prec_r ) : _factor( factor_r ) , _symbol( symbol_r ) , _prec( prec_r ) {} ValueType factor() const { return _factor; } const std::string & symbol() const { return _symbol; } unsigned prec() const { return _prec; } /** Build string representation of \a val_r. */ std::string form( ValueType val_r, unsigned field_width_r = 0, unsigned unit_width_r = 1 ) const { return form( val_r, field_width_r, unit_width_r, _prec ); } std::string form( ValueType val_r, unsigned field_width_r, unsigned unit_width_r, unsigned prec_r ) const { return form( double(val_r)/_factor, _symbol, field_width_r, unit_width_r, prec_r ); } static std::string form( double val_r, const std::string & symbol_r, unsigned field_width_r, unsigned unit_width_r, unsigned prec_r ); private: ValueType _factor; std::string _symbol; unsigned _prec; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace base /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_UNIT_H libzypp-17.7.0/zypp/base/UserRequestException.cc000066400000000000000000000045651334444677500217230ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/UserRequestException.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/base/UserRequestException.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : UserRequestException::UserRequestException // METHOD TYPE : Ctor // UserRequestException::UserRequestException( const std::string & msg_r ) : Exception( msg_r ), _kind( UNSPECIFIED ) {} UserRequestException::UserRequestException( const std::string & msg_r, const Exception & history_r ) : Exception( msg_r, history_r ), _kind( UNSPECIFIED ) {} UserRequestException::UserRequestException( Kind kind_r, const std::string & msg_r ) : Exception( msg_r ), _kind( kind_r ) {} UserRequestException::UserRequestException( Kind kind_r, const std::string & msg_r, const Exception & history_r ) : Exception( msg_r, history_r ), _kind( kind_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : UserRequestException::dumpOn // METHOD TYPE : std::ostream & // std::ostream & UserRequestException::dumpOn( std::ostream & str ) const { switch ( _kind ) { case UNSPECIFIED: str << "UNSPECIFIED"; break; case IGNORE: str << "IGNORE"; break; case SKIP: str << "SKIP"; break; case RETRY: str << "RETRY"; break; case ABORT: str << "ABORT"; break; // no default ! } return str << " request: " << msg(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/base/UserRequestException.h000066400000000000000000000070151334444677500215560ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/UserRequestException.h * */ #ifndef ZYPP_BASE_USERREQUESTEXCEPTION_H #define ZYPP_BASE_USERREQUESTEXCEPTION_H #include #include "zypp/base/Exception.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : UserRequestException // /** Base for exceptions caused by explicit user request. * * Use the derived convenience classes to throw exceptions * of a certain kind. * \code * ProgressData ticks( makeProgressData( input_r ) ); * ticks.sendTo( fnc_r ); * ticks.toMin(); // start sending min (0) * * iostr::EachLine line( input_r ); * for( ; line; line.next() ) * { * // process the line * * if ( ! ticks.set( input_r.stream().tellg() ) ) * ZYPP_THROW( AbortRequestException( "" ) ); * } * \endcode * \code * // either this way * catch ( const AbortRequestException & excpt_r ) * { * ... * } * * // or that * catch ( const UserRequestException & excpt_r ) * { * switch ( excpt_r.kind() ) * { * case UserRequestException::ABORT: * ... * break; * } * } * \endcode */ class UserRequestException : public Exception { public: enum Kind { UNSPECIFIED, IGNORE, SKIP, RETRY, ABORT }; public: explicit UserRequestException( const std::string & msg_r = std::string() ); UserRequestException( const std::string & msg_r, const Exception & history_r ); explicit UserRequestException( Kind kind_r, const std::string & msg_r = std::string() ); UserRequestException( Kind kind_r, const std::string & msg_r, const Exception & history_r ); public: Kind kind() const { return _kind; } protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: Kind _kind; }; /////////////////////////////////////////////////////////////////// /** Convenience macro to declare more specific PluginScriptExceptions. */ #define declException( EXCP, KIND ) \ struct EXCP : public UserRequestException { \ explicit \ EXCP( const std::string & msg_r = std::string() ) \ : UserRequestException( KIND, msg_r ) \ {} \ EXCP( const std::string & msg_r, const Exception & history_r ) \ : UserRequestException( KIND, msg_r, history_r ) \ {} \ } declException( IgnoreRequestException, IGNORE ); declException( SkipRequestException, SKIP ); declException( RetryRequestException, RETRY ); declException( AbortRequestException, ABORT ); #undef declException ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_USERREQUESTEXCEPTION_H libzypp-17.7.0/zypp/base/ValueTransform.h000066400000000000000000000130531334444677500203570ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/ValueTransform.h */ #ifndef ZYPP_BASE_VALUETRANSFORM_H #define ZYPP_BASE_VALUETRANSFORM_H #include #include "zypp/base/Iterator.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace base { /////////////////////////////////////////////////////////////////// /// \class ValueTransform /// \brief Helper managing raw values with transformed representation /// /// This helper enforces to explicitly state whether you are using /// the raw or the variable replaced value. Usually you set \c raw /// and get \c transformed (unless writing \c raw to some config file). /// /// Used e.g. vor variable replaced config strings. /////////////////////////////////////////////////////////////////// template struct ValueTransform { typedef Tp RawType; typedef TUnaryFunction Transformator; typedef typename Transformator::result_type TransformedType; public: ValueTransform() {} explicit ValueTransform( RawType raw_r ) : _raw( std::move(raw_r) ) {} ValueTransform( RawType raw_r, Transformator transform_r ) : _raw( std::move(raw_r) ), _transform( std::move(transform_r) ) {} public: /** Get the raw value */ const RawType & raw() const { return _raw; } /** Set the raw value */ RawType & raw() { return _raw; } public: /** Return a transformed copy of the raw value */ TransformedType transformed() const { return _transform( _raw ); } /** Return a transformed copy of an arbitrary \a RawType */ TransformedType transformed( const RawType & raw_r ) const { return _transform( raw_r ); } /** Return the transformator */ const Transformator & transformator() const { return _transform; } private: RawType _raw; Transformator _transform; }; /////////////////////////////////////////////////////////////////// /// \class ContainerTransform /// \brief Helper managing a container of raw values with transformed representation /// /// This helper enforces to explicitly state wheter you are using /// the raw or the variable replaced value. Usually you set \c raw /// and get \c transformed (uness writing \c raw to some config file). /// /// Offers iterating over transformed strings in the list. /////////////////////////////////////////////////////////////////// template struct ContainerTransform { typedef TContainer Container; typedef TUnaryFunction Transformator; typedef typename Container::size_type size_type; typedef typename Container::value_type RawType; typedef typename Transformator::result_type TransformedType; public: ContainerTransform() {} explicit ContainerTransform( Container raw_r ) : _raw( std::move(raw_r) ) {} ContainerTransform( Container raw_r, Transformator transform_r ) : _raw( std::move(raw_r) ), _transform( std::move(transform_r) ) {} public: bool empty() const { return _raw.empty(); } size_type size() const { return _raw.size(); } typedef typename Container::const_iterator RawConstIterator; RawConstIterator rawBegin() const { return _raw.begin(); } RawConstIterator rawEnd() const { return _raw.end(); } /** Get the raw value */ const Container & raw() const { return _raw; } /** Set the raw value */ Container & raw() { return _raw; } public: typedef transform_iterator TransformedConstIterator; TransformedConstIterator transformedBegin() const { return make_transform_iterator( _raw.begin(), _transform ); } TransformedConstIterator transformedEnd() const { return make_transform_iterator( _raw.end(), _transform ); } /** Return copy with transformed variables (expensive) */ Container transformed() const { return Container( transformedBegin(), transformedEnd() ); } /** Return a transformed copy of an arbitrary \a RawType */ TransformedType transformed( const RawType & raw_r ) const { return _transform( raw_r ); } /** Return a transformed copy of a \a RawConstIterator raw value */ TransformedType transformed( const RawConstIterator & rawIter_r ) const { return _transform( *rawIter_r ); } /** Return the transformator */ const Transformator & transformator() const { return _transform; } private: Container _raw; Transformator _transform; }; } // namespace base /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_VALUETRANSFORM_H libzypp-17.7.0/zypp/base/WatchFile.h000066400000000000000000000056271334444677500172650ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/WatchFile.h * */ #ifndef ZYPP_BASE_WATCHFILE_H #define ZYPP_BASE_WATCHFILE_H #include #include "zypp/PathInfo.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : WatchFile // /** Remember a files attributes to detect content changes. * * Repeatedly call \ref hasChanged to check whether the content has * changed since the last call. Creation or deletion of the file will * be reported as change as well. * * Per default the ctor stats the file, so \ref hasChanged will detect * changes done after \ref WatchFile was created. * * You may omit the initial stat by passing \c NO_INIT as second argument * to the ctor. \ref WatchFile will behave as if the file did not exist * at the time \ref WatchFile was created. * * \code * static WatchFile sysconfigFile( "/etc/sysconfig/SuSEfirewall2", * WatchFile::NO_INIT ); * if ( sysconfigFile.hasChanged() ) * { * // reload the file... * } * \endcode */ class WatchFile { public: enum Initial { NO_INIT, INIT }; public: /** */ WatchFile( const Pathname & path_r = Pathname(), Initial mode = INIT ) : _path( path_r ) { PathInfo pi( mode == INIT ? path_r : Pathname() ); _size = pi.size(); _mtime = pi.mtime(); } const Pathname & path() const { return _path; } off_t lastSize() const { return _size;} time_t lastMtime() const { return _mtime; } bool isDirty() const { PathInfo pi( _path ); return( _size != pi.size() || _mtime != pi.mtime() ); } bool hasChanged() { PathInfo pi( _path ); if ( _size != pi.size() || _mtime != pi.mtime() ) { _size = pi.size(); _mtime = pi.mtime(); return true; } return false; } private: Pathname _path; off_t _size; time_t _mtime; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_BASE_WATCHFILE_H libzypp-17.7.0/zypp/base/Xml.h000066400000000000000000000162041334444677500161500ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/base/Xml.h * */ #ifndef ZYPP_BASE_XML_H #define ZYPP_BASE_XML_H #include #include #include #include #include #include #include "zypp/base/Easy.h" #include "zypp/base/String.h" #include "zypp/parser/xml/XmlEscape.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace xmlout { using xml::escape; using xml::unescape; /** \relates NodeAttr NODE ATTRIBUTE representation of types [asString] */ template std::string asXmlNodeAttr( const Tp & val_r ) { return asString( val_r ); } /////////////////////////////////////////////////////////////////// /// \class NodeAttr /// \brief (Key, Value) string pair of XML node attributes struct NodeAttr : public std::pair { typedef std::pair Pair; template NodeAttr( std::string key_r, const Tp & val_r ) : Pair( std::move(key_r), asXmlNodeAttr(val_r) ) {} NodeAttr( std::string key_r, std::string val_r ) : Pair( std::move(key_r), std::move(val_r) ) {} }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class Node /// \brief RAII writing a nodes start/end tag /// \code /// { /// Node node( std::cout, "node", { "attr", "val" } ); // /// *node << "write nodes body...." /// } // /// \endcode /// \note If the \ref optionalContent flag is passed to the \c ctor, the start /// node is kept open, until the first call to \ref operator*. The start node /// is closed before returning the stream. /// \code /// { /// Node node( std::cout, "node", Node::optionalContent, { "attr", "val" } ); /// // /// { /// Node node( std::cout, "node", Node::optionalContent, { "attr", "val" } ); /// // write nodes body... /// } // /// \endcode /// /// \note If the nodename is empty or starts with an \c !, a comment is written. /// struct Node { NON_COPYABLE_BUT_MOVE( Node ); typedef NodeAttr Attr; struct OptionalContentType {}; ///< Ctor arg type static constexpr OptionalContentType optionalContent = OptionalContentType(); /** Ctor taking nodename and attribute list */ Node( std::ostream & out_r, std::string name_r, const std::initializer_list & attrs_r = {} ) : _out( out_r ), _name( std::move(name_r) ), _hasContent( true ) { printStart( attrs_r ); } /** Convenience ctor for one attribute pair */ Node( std::ostream & out_r, std::string name_r, Attr attr_r ) : Node( out_r, std::move(name_r), { attr_r } ) {} /** Optional content ctor taking nodename and attribute list */ Node( std::ostream & out_r, std::string name_r, OptionalContentType, const std::initializer_list & attrs_r = {} ) : _out( out_r ), _name( std::move(name_r) ), _hasContent( false ) { printStart( attrs_r ); } /** Optional content Convenience ctor for one attribute pair */ Node( std::ostream & out_r, std::string name_r, OptionalContentType, Attr attr_r ) : Node( out_r, std::move(name_r), optionalContent, { attr_r } ) {} /** Dtor wrting end tag */ ~Node() { if ( isComment() ) _out << "-->"; else { if ( _hasContent ) _out << ""; else _out << "/>"; } } /** Exception type thrown if attributes are added to a closed start node. */ struct HasContentException{}; /** Add additional attributes (requires OptionalContentType) * \throw HasContentException If start node is already closed */ Node & addAttr( const std::initializer_list & attrs_r = {} ) { if ( _hasContent ) throw HasContentException(); printAttr( attrs_r ); return *this; } /** \overload for one */ Node & addAttr( const Attr & attr_r ) { return addAttr( { attr_r } ); } /** Return the output stream */ std::ostream & operator*() { if ( ! _hasContent ) { _hasContent = true; if ( isComment() ) _out << "|"; else _out << ">"; } return _out; } private: void printStart( const std::initializer_list & attrs_r ) { if ( _name.empty() || _name[0] == '!' ) { _out << " ", node_r ); ParseDefConsumeRedirect::startSubnode( node_r ); } virtual void doneSubnode( const Node & node_r ) { debuglog( "<--- ", node_r ); ParseDefConsumeRedirect::doneSubnode( node_r ); } void debuglog( const char *const tag_r, const Node & node_r ) { if ( ParseDef::_debug ) DBG << tag_r << node_r << endl; } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDef::Impl // /** ParseDef implementation. * \todo Check using share_ptr_from_this for parent in addNode. */ class ParseDef::Impl { friend std::ostream & operator<<( std::ostream & str, const ParseDef::Impl & obj ); public: typedef shared_ptr ImplPtr; typedef std::map SubNodes; public: Impl( const std::string & name_r, Mode mode_r, const shared_ptr & target_r = shared_ptr() ) : _name( name_r ) , _mode( mode_r ) , _parent( NULL ) { if ( target_r ) _callback.setRedirect( target_r ); } ~Impl() { for ( SubNodes::iterator it = _subnodes.begin(); it != _subnodes.end(); ++it ) { it->second->_parent = NULL; } } bool isOptional() const { return Traits::ModeBits(_mode).isEqual( Traits::BIT_OPTIONAL ); } bool isMandatory() const { return Traits::ModeBits(_mode).isEqual( Traits::BIT_MANDTAORY ); } bool singleDef() const { return Traits::ModeBits(_mode).isEqual( Traits::BIT_ONCE ); } bool multiDef() const { return Traits::ModeBits(_mode).isEqual( Traits::BIT_MULTIPLE ); } public: void addNode( const ImplPtr & subnode_r ); ImplPtr getNode( const std::string & name_r ) const { SubNodes::const_iterator it = _subnodes.find( name_r ); if ( it != _subnodes.end() ) return it->second; return ImplPtr(); } void take( Reader & reader_r ); private: /** Skip the current node. * \pre Current node must be XML_READER_TYPE_ELEMENT. * \post At the corresponding end node. (XML_READER_TYPE_END_ELEMENT or atill at the same node, if it'a an empty element <node />). * \return last call to xml::Reader::nextNode. * \throws ParseDefValidateException if no matching end node found. */ bool skipNode( Reader & reader_r ); std::string exstr( const std::string & what_r, const Impl & impl_r ) const { std::ostringstream str; str << impl_r << ": " << what_r; return str.str(); } std::string exstr( const std::string & what_r, const Impl & impl_r, const Reader & reader_r ) const { std::ostringstream str; str << impl_r << ": " << what_r << " |reading " << *reader_r; return str.str(); } public: std::string _name; Mode _mode; DefaultIntegral _visited; Impl * _parent; SubNodes _subnodes; ParseDefImplConsume _callback; DefaultIntegral _parseDepth; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDef::Impl::addNode // METHOD TYPE : void // void ParseDef::Impl::addNode( const ImplPtr & subnode_r ) { std::pair res = _subnodes.insert( std::make_pair( subnode_r->_name, subnode_r ) ); if ( ! res.second ) { ZYPP_THROW( ParseDefBuildException( exstr("Multiple definiton of subnode "+subnode_r->_name, *this) ) ); } if ( res.first->second->_parent ) { ZYPP_THROW( ParseDefBuildException( exstr("Can not reparent subnode "+subnode_r->_name, *this) ) ); } res.first->second->_parent = this; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDef::Impl::take // METHOD TYPE : void // void ParseDef::Impl::take( Reader & reader_r ) { if ( reader_r->nodeType() != XML_READER_TYPE_ELEMENT ) { if ( reader_r->depth() == 0 ) { // on the verry first level we skip any initial whitespace and comments... do { // advance to next node if ( ! reader_r.nextNode() ) { ZYPP_THROW( ParseDefValidateException( exstr( "Unexpected EOF ", *this ) ) ); } } while( reader_r->nodeType() != XML_READER_TYPE_ELEMENT ); } else { ZYPP_THROW( ParseDefValidateException( exstr("Expected ELEMENT", *this, reader_r) ) ); } } if ( reader_r->name() != _name ) { ZYPP_THROW( ParseDefValidateException( exstr("Wrong ELEMENT name", *this, reader_r) ) ); } if ( _visited >= 1 && ! multiDef() ) { ZYPP_THROW( ParseDefValidateException( exstr("Multiple definitions", *this, reader_r) ) ); } ++_visited; // Accepted to parse DtorReset x( _parseDepth, -1 ); _parseDepth = reader_r->depth(); // Parse attributes _callback.start( *reader_r ); // Get content up to end node // Empty element () has no separate end node, so // there's nothing to parse. if ( ! reader_r->isEmptyElement() ) { // For non empty elements () parse known nodes // text and cdata elelments skip unknown nodes. for ( bool done = false; ! done ; /*advance in inside loop*/) { // advance to next node if ( ! reader_r.nextNode() ) { ZYPP_THROW( ParseDefValidateException( exstr( "Unexpected EOF ", *this ) ) ); } switch ( reader_r->nodeType() ) { case XML_READER_TYPE_ELEMENT: // Parse or skip unknown. Anyway reader is located at the // corresponding end node, or an exception was thrown. { ImplPtr sub( getNode( reader_r->name().asString() ) ); if ( sub ) { _callback.startSubnode( *reader_r ); sub->take( reader_r ); _callback.doneSubnode( *reader_r ); } else { if ( ParseDef::_debug ) WAR << "Skip unknown node " << *reader_r << " in "<< *this << endl; skipNode( reader_r ); } } break; case XML_READER_TYPE_END_ELEMENT: // This must be the corresponding end node! if ( reader_r->depth() == _parseDepth && reader_r->name() == _name ) { done = true; } else { ZYPP_THROW( ParseDefValidateException( exstr("unexpected END_ELEMENT name", *this, reader_r) ) ); } break; case XML_READER_TYPE_TEXT: // collect or skip _callback.text( *reader_r ); break; case XML_READER_TYPE_CDATA: // collect or skip _callback.cdata( *reader_r ); break; default: //DBG << exstr("SKIP ", *this, reader_r) << endl; break; } } } // Parsing complete. Check whether all mandatory nodes were // present. Finally position behind the end node. for ( SubNodes::iterator it = _subnodes.begin(); it != _subnodes.end(); ++it ) { if ( ! it->second->_visited && it->second->isMandatory() ) { ZYPP_THROW( ParseDefValidateException( exstr("Mandatory ELEMENT missing", *(it->second), reader_r) ) ); } it->second->_visited = 0; // reset to be ready for an other visit to this!! } _callback.done( *reader_r ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDef::Impl::skipNode // METHOD TYPE : void // bool ParseDef::Impl::skipNode( xml::Reader & reader_r ) { if ( ! reader_r.seekToEndNode( reader_r->depth(), reader_r->name().asString() ) ) { ZYPP_THROW( ParseDefValidateException ( exstr( str::form( "EOF while looking for [%d] <\\%s>", reader_r->depth(), reader_r->name().c_str() ), *this ) ) ); } return true; } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ParseDef::Impl & obj ) { return str << "ParseDef(" << obj._name << ", " << obj._mode << ", visits " << obj._visited << ")"; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDef // /////////////////////////////////////////////////////////////////// bool ParseDef::_debug = false; /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDef::ParseDef // METHOD TYPE : Ctor // ParseDef::ParseDef( const std::string & name_r, Mode mode_r ) : _pimpl( new Impl( name_r, mode_r ) ) {} ParseDef::ParseDef( const std::string & name_r, Mode mode_r, const shared_ptr & target_r ) : _pimpl( new Impl( name_r, mode_r, target_r ) ) {} ParseDef::ParseDef( const shared_ptr & pimpl_r ) : _pimpl( pimpl_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDef::~ParseDef // METHOD TYPE : Dtor // ParseDef::~ParseDef() {} const std::string & ParseDef::name() const { return _pimpl->_name; } ParseDef::Mode ParseDef::mode() const { return _pimpl->_mode; } bool ParseDef::isOptional() const { return _pimpl->isOptional(); } bool ParseDef::isMandatory() const { return _pimpl->isMandatory(); } bool ParseDef::singleDef() const { return _pimpl->singleDef(); } bool ParseDef::multiDef() const { return _pimpl->multiDef(); } unsigned ParseDef::visited() const { return _pimpl->_visited; } ParseDef & ParseDef::addNode( ParseDef & subnode_r ) { _pimpl->addNode( subnode_r._pimpl.getPtr() ); return *this; } ParseDef ParseDef::operator[]( const std::string & name_r ) { shared_ptr retimpl( _pimpl->getNode( name_r ) ); if ( ! retimpl ) { ZYPP_THROW( ParseDefBuildException( "No subnode "+name_r ) ); } return retimpl; } void ParseDef::setConsumer( const shared_ptr & target_r ) { _pimpl->_callback.setRedirect( target_r ); } void ParseDef::setConsumer( ParseDefConsume * allocatedTarget_r ) { _pimpl->_callback.setRedirect( allocatedTarget_r ); } void ParseDef::setConsumer( ParseDefConsume & target_r ) { _pimpl->_callback.setRedirect( target_r ); } void ParseDef::cancelConsumer() { _pimpl->_callback.cancelRedirect(); } shared_ptr ParseDef::getConsumer() const { return _pimpl->_callback.getRedirect(); } void ParseDef::take( Reader & reader_r ) { _pimpl->take( reader_r ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, ParseDef::Mode obj ) { switch ( obj ) { #define X(T) case ParseDef::T: return str << #T X(OPTIONAL); X(MANDTAORY); X(MULTIPLE_OPTIONAL); X(MULTIPLE_MANDTAORY); #undef X } return str; } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ParseDef & obj ) { return str << obj._pimpl; } ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/ParseDef.h000066400000000000000000000207221334444677500202630ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/ParseDef.h * */ #ifndef ZYPP_PARSER_XML_PARSEDEF_H #define ZYPP_PARSER_XML_PARSEDEF_H #include #include "zypp/base/PtrTypes.h" #include "zypp/parser/xml/ParseDefTraits.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// class Reader; class ParseDefConsume; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDef // /** Define a xml node structure to parse. * * An xml file like this: * \code * * * * mycollection * * All the cool stuff... * 1165270942 * * * * * * * \endcode * * Could be described by: * \code * using namespace xml; * struct SycontentNode : public ParseDef * { * SycontentNode( Mode mode_r ) * : ParseDef( "syscontent", mode_r ) * { * (*this)("ident", OPTIONAL) * ("onsys", OPTIONAL) * ; * * (*this)["ident"] * ("name", OPTIONAL) * ("version", OPTIONAL) * ("description", OPTIONAL) * ("created", OPTIONAL) * ; * * (*this)["onsys"] * ("entry", MULTIPLE_OPTIONAL) * ; * } * }; * \endcode * * To parse it using an \ref xml::Reader: * \code * xml::Reader reader( input_r ); * SycontentNode rootNode( xml::ParseDef::MANDTAORY ); * // Define data consumers here. * rootNode.take( reader ); * \endcode * * Whithout data consumers this will just parse the file * but not retrieve any data. You may attach a consumer * derived from \ref xml::ParseDefConsume to each node: * * \code * // Parse Edition from ver/rel/eopch attributes. * struct ConsumeEdition : public ParseDefConsume * { * ConsumeEdition( Edition & value_r ) * : _value( & value_r ) * {} * * virtual void start( const Node & node_r ) * { * *_value = Edition( node_r.getAttribute("ver").asString(), * node_r.getAttribute("rel").asString(), * node_r.getAttribute("epoch").asString() ); * } * * Edition *_value; * }; * \endcode * \see \ref xml::ParseDefConsume * * \code * xml::Reader reader( input_r ); * SycontentNode rootNode( xml::ParseDef::MANDTAORY ); * * // Define data consumers here. * Edition _edition; * rootNode["ident"]["version"].setConsumer * ( new ConsumeEdition( _edition ) ); * * rootNode.take( reader ); * \endcode * * That's just one way to collect the data. You could as well * use a \ref xml::ParseDefConsumeCallback, and redirect the * \c start call to some arbitrary function or method. */ class ParseDef { typedef ParseDefTraits Traits; public: enum Mode { OPTIONAL = Traits::BIT_OPTIONAL | Traits::BIT_ONCE, MANDTAORY = Traits::BIT_MANDTAORY | Traits::BIT_ONCE, MULTIPLE_OPTIONAL = Traits::BIT_OPTIONAL | Traits::BIT_MULTIPLE, MULTIPLE_MANDTAORY = Traits::BIT_MANDTAORY | Traits::BIT_MULTIPLE }; public: ParseDef( const std::string & name_r, Mode mode_r ); ParseDef( const std::string & name_r, Mode mode_r, const shared_ptr & target_r ); virtual ~ParseDef(); public: const std::string & name() const; Mode mode() const; bool isOptional() const; bool isMandatory() const; bool singleDef() const; bool multiDef() const; unsigned visited() const; public: /** Add subnode definition. * \note As ParseDef copies share their implementation you can * not add the same subnode to multiple parents. * \return *this. * \throws ParseDefBuildException if a subnode with the same name * is already defined, or if the subnode is already * subnode of an other ParseDef. */ ParseDef & addNode( ParseDef & subnode_r ); ParseDef & addNode( const std::string & name_r, Mode mode_r ) { ParseDef tmp( name_r, mode_r ); return addNode( tmp ); } ParseDef & addNode( const std::string & name_r, Mode mode_r, const shared_ptr & target_r ) { ParseDef tmp( name_r, mode_r, target_r ); return addNode( tmp ); } /** Add subnode definition. * \see addNode. */ ParseDef & operator()( ParseDef & subnode_r ) { return addNode( subnode_r ); } ParseDef & operator()( const std::string & name_r, Mode mode_r ) { return addNode( name_r, mode_r ); } ParseDef & operator()( const std::string & name_r, Mode mode_r, const shared_ptr & target_r ) { return addNode( name_r, mode_r, target_r ); } /** Get subnode by name. * \throws ParseDefBuildException if no subnode with \a name_r exists. */ ParseDef operator[]( const std::string & name_r ); public: /** Set data consumer. */ void setConsumer( const shared_ptr & target_r ); /** Set data consumer. * \note \a allocatedTarget_r is immediately wraped into a * shared_ptr. */ void setConsumer( ParseDefConsume * allocatedTarget_r ); /** Set data consumer. */ void setConsumer( ParseDefConsume & target_r ); /** Unset data consumer. */ void cancelConsumer(); /** Get data consumer. */ shared_ptr getConsumer() const; /** Parse the node. * This parses the node and all defined subnodes. Unknown * subnodes are skipped and leave a warning in the logfile. * \pre Current node must be XML_READER_TYPE_ELEMENT matching * this ParseDefs name. * \post All data parsed. At the corresponding end node. * (XML_READER_TYPE_END_ELEMENT or atill at the same node, * if it'a an empty element <node />). * \throws ParseDefException on error. */ void take( Reader & reader_r ); private: /** Implementation */ class Impl; /** Pointer to implementation (shared!) */ RW_pointer _pimpl; ParseDef( const shared_ptr & pimpl_r ); friend std::ostream & operator<<( std::ostream & str, const ParseDef & obj ); friend std::ostream & operator<<( std::ostream & str, const ParseDef::Impl & obj ); public: static bool _debug; }; /////////////////////////////////////////////////////////////////// /** \relates ParseDef ParseDef::Mode stream output. */ std::ostream & operator<<( std::ostream & str, ParseDef::Mode obj ); /** \relates ParseDef Stream output. */ std::ostream & operator<<( std::ostream & str, const ParseDef & obj ); ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_PARSEDEF_H libzypp-17.7.0/zypp/parser/xml/ParseDefConsume.cc000066400000000000000000000117751334444677500217630ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/ParseDefConsume.cc * */ #include "zypp/parser/xml/ParseDefConsume.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefConsume // /////////////////////////////////////////////////////////////////// ParseDefConsume::~ParseDefConsume() {} void ParseDefConsume::start( const Node & _node ) {} void ParseDefConsume::text( const Node & _node ) {} void ParseDefConsume::cdata( const Node & _node ) {} void ParseDefConsume::done( const Node & _node ) {} void ParseDefConsume::startSubnode( const Node & _node ) {} void ParseDefConsume::doneSubnode( const Node & _node ) {} /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefConsumeRedirect // /////////////////////////////////////////////////////////////////// ParseDefConsumeRedirect::ParseDefConsumeRedirect() {} ParseDefConsumeRedirect::ParseDefConsumeRedirect( const shared_ptr & target_r ) : _target( target_r ) {} ParseDefConsumeRedirect::ParseDefConsumeRedirect( ParseDefConsume * allocatedTarget_r ) : _target( allocatedTarget_r ) {} ParseDefConsumeRedirect::ParseDefConsumeRedirect( ParseDefConsume & target_r ) : _target( &target_r, NullDeleter() ) {} ParseDefConsumeRedirect::~ParseDefConsumeRedirect() {} void ParseDefConsumeRedirect::setRedirect( const shared_ptr & target_r ) { _target = target_r; } void ParseDefConsumeRedirect::setRedirect( ParseDefConsume * allocatedTarget_r ) { _target.reset( allocatedTarget_r ); } void ParseDefConsumeRedirect::setRedirect( ParseDefConsume & target_r ) { _target.reset( &target_r, NullDeleter() ); } void ParseDefConsumeRedirect::cancelRedirect() { _target.reset(); } shared_ptr ParseDefConsumeRedirect::getRedirect() const { return _target; } void ParseDefConsumeRedirect::start( const Node & _node ) { if ( _target ) _target->start( _node ); } void ParseDefConsumeRedirect::text( const Node & _node ) { if ( _target ) _target->text( _node ); } void ParseDefConsumeRedirect::cdata( const Node & _node ) { if ( _target ) _target->cdata( _node ); } void ParseDefConsumeRedirect::done( const Node & _node ) { if ( _target ) _target->done( _node ); } void ParseDefConsumeRedirect::startSubnode( const Node & _node ) { if ( _target ) _target->startSubnode( _node ); } void ParseDefConsumeRedirect::doneSubnode ( const Node & _node ) { if ( _target ) _target->doneSubnode( _node ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefConsumeCallback // /////////////////////////////////////////////////////////////////// ParseDefConsumeCallback::ParseDefConsumeCallback() {} ParseDefConsumeCallback::~ParseDefConsumeCallback() {} void ParseDefConsumeCallback::start( const Node & node_r ) { if ( _start ) _start( node_r ); } void ParseDefConsumeCallback::text( const Node & node_r ) { if ( _text ) _text( node_r ); } void ParseDefConsumeCallback::cdata( const Node & node_r ) { if ( _cdata ) _cdata( node_r ); } void ParseDefConsumeCallback::done( const Node & node_r ) { if ( _done ) _done( node_r ); } void ParseDefConsumeCallback::startSubnode( const Node & node_r ) { if ( _startSubnode ) _startSubnode( node_r ); } void ParseDefConsumeCallback::doneSubnode( const Node & node_r ) { if ( _doneSubnode ) _doneSubnode( node_r ); } ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/ParseDefConsume.h000066400000000000000000000327101334444677500216150ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/ParseDefConsume.h * */ #ifndef ZYPP_PARSER_XML_PARSEDEFCONSUME_H #define ZYPP_PARSER_XML_PARSEDEFCONSUME_H #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/base/Hash.h" #include "zypp/base/String.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/parser/xml/Node.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// class Node; /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefConsume // /** Base class for ParseDef consumer. */ struct ParseDefConsume { virtual ~ParseDefConsume(); virtual void start( const Node & _node ); virtual void text ( const Node & _node ); virtual void cdata( const Node & _node ); virtual void done ( const Node & _node ); virtual void startSubnode( const Node & _node ); virtual void doneSubnode ( const Node & _node ); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefConsumeRedirect // /** ParseDef consumer redirecting all events to another consumer. * \note Allocated ParseDefConsume * passed are * immediately wraped into a shared_ptr. */ class ParseDefConsumeRedirect : public ParseDefConsume { public: ParseDefConsumeRedirect(); ParseDefConsumeRedirect( const shared_ptr & target_r ); ParseDefConsumeRedirect( ParseDefConsume * allocatedTarget_r ); ParseDefConsumeRedirect( ParseDefConsume & target_r ); virtual ~ParseDefConsumeRedirect(); public: void setRedirect( const shared_ptr & target_r ); void setRedirect( ParseDefConsume * allocatedTarget_r ); void setRedirect( ParseDefConsume & target_r ); void cancelRedirect(); shared_ptr getRedirect() const; public: virtual void start( const Node & _node ); virtual void text ( const Node & _node ); virtual void cdata( const Node & _node ); virtual void done ( const Node & _node ); virtual void startSubnode( const Node & _node ); virtual void doneSubnode ( const Node & _node ); private: shared_ptr _target; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefConsumeCallback // /** ParseDef consumer that invokes callbacks. */ class ParseDefConsumeCallback : public ParseDefConsume { public: typedef function Callback; ParseDefConsumeCallback(); virtual ~ParseDefConsumeCallback(); public: virtual void start( const Node & node_r ); virtual void text( const Node & node_r ); virtual void cdata( const Node & node_r ); virtual void done( const Node & node_r ); virtual void startSubnode( const Node & node_r ); virtual void doneSubnode( const Node & node_r ); public: Callback _start; Callback _text; Callback _cdata; Callback _done; Callback _startSubnode; Callback _doneSubnode; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /** \ref parseDefAssign exposed details */ namespace parse_def_assign { ///////////////////////////////////////////////////////////////// template struct Assigner; typedef shared_ptr > AssignerRef; /** Common interface to all Assigner types. */ template <> struct Assigner { virtual ~Assigner() {} virtual void assign( const char * text_r ) {} }; /** Assigner assigns text to types constructible from \c char*. * \see \ref assigner convenience constructor. */ template struct Assigner : public Assigner { Assigner( Tp & value_r ) : _value( &value_r ) {} virtual void assign( const char * text_r ) { *_value = Tp( text_r ); } private: Tp * _value; }; /** \name Assigner specialisation for numeric and boolean values. * \relates Assigner */ //@{ template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strtonum( text_r, *_value ); } template <> inline void Assigner::assign( const char * text_r ) { str::strToBoolNodefault( text_r, *_value ); } //@} /** \name \relates Assigner Convenience constructor */ //@{ template inline AssignerRef assigner( Tp & value_r ) { return AssignerRef( new Assigner( value_r ) ); } template inline AssignerRef assigner( DefaultIntegral & value_r ) { return AssignerRef( new Assigner( value_r.get() ) ); } //@} /** \ref ParseDef consumer assigning \ref Node text and attribues values to variables. * * This can be used with all types supported by \ref Assigner. * Basically all types constructible from \c char*, or where a * specialisation exists (e.g. numeric and bool). * * You may also set a void( const Node & ) notification * callback which is invoked after the node was processed. * * \note Use and see \ref xml::parseDefAssign convenience constructor. * * \code * // parsedef for 'value' * ParseDef( "attr", MANDTAORY, xml::parseDefAssign( data.value ) * ( "attr", data.attr ) ) * \endcode */ struct Consumer : public ParseDefConsume { /** Extend \ref Consumer. */ void add( const AssignerRef & assigner_r ) { _text.push_back( assigner_r ); } /** Extend \ref Consumer. */ void add( const std::string & attr_r, const AssignerRef & assigner_r ) { _attr[attr_r].push_back( assigner_r ); } /** Set pre notification callback. */ void prenotify( function pre_r ) { _pre = pre_r; } /** Set post notification callback. */ void postnotify( function post_r ) { _post = post_r; } virtual void start( const xml::Node & node_r ) { if ( _pre ) _pre( node_r ); if ( ! _attr.empty() ) for_( it, _attr.begin(), _attr.end() ) assign( it->second, node_r.getAttribute( it->first.c_str() ).c_str() ); } virtual void text( const xml::Node & node_r ) { if ( ! _text.empty() ) assign( _text, node_r.value().c_str() ); } virtual void done( const xml::Node & node_r ) { if ( _post ) _post( node_r ); } private: void assign( const std::vector & vec_r, const char * value_r ) { if ( value_r ) for_( it, vec_r.begin(), vec_r.end() ) (*it)->assign( value_r ); } private: std::unordered_map > _attr; std::vector _text; function _pre; function _post; }; /** Helper class to build a \ref Consumer. * \relates Consumer * * The class constructs the consumer, allows to extend it via * \ref operator(), and provides a conversion to * \c shared_ptr, so it can be passed as a * node consumer to \ref ParseDef. * * You may also set a void( const Node & ) notification * callback which is invoked before/after the node was processed. * * \note Use and see \ref xml::parseDefAssign convenience constructor. */ struct Builder { /** Contruct \ref Consumer. */ Builder() : _ptr( new Consumer ) {} /** Contruct \ref Consumer. */ template Builder( Tp & value_r ) : _ptr( new Consumer ) { operator()( value_r ); } /** Contruct \ref Consumer. */ template Builder( const std::string & attr_r, Tp & value_r ) : _ptr( new Consumer ) { operator()( attr_r, value_r ); } /** Extend \ref Consumer. */ template Builder & operator()( Tp & value_r ) { _ptr->add( assigner( value_r ) ); return *this; } /** Extend \ref Consumer. */ template Builder & operator()( const std::string & attr_r, Tp & value_r ) { _ptr->add( attr_r, assigner( value_r ) ); return *this; } /** Set pre notification callback. */ Builder & operator<<( function done_r ) { _ptr->prenotify( done_r ); return *this; } /** Set post notification callback. */ Builder & operator>>( function done_r ) { _ptr->postnotify( done_r ); return *this; } /** Type conversion so this can be passed as node consumer to \ref ParseDef. */ operator shared_ptr () const { return _ptr; } private: shared_ptr _ptr; }; ///////////////////////////////////////////////////////////////// } // namespace parse_def_assign /////////////////////////////////////////////////////////////////// /** \name \ref ParseDef consumer assigning \ref Node text and attribues values to variables. * \relates parse_def_assign::Consumer * \relates parse_def_assign::Builder * * This function allows convenient contruction of a \ref parse_def_assign::Consumer * to be passed as \ref Node conssumer to \ref ParseDef. Simply list each attributes * name together with the variable it's value should be assigned to. If the attribute * name is omitted, the nodes text value gets assigned. * * Target variables can be of any type tsupported by \ref Assigner. * Basically all types constructible from \c char*, or where a * specialisation exists (e.g. numeric and bool). * * \code * void setupDone( const xml::Node & _node ) * { ... } * * // parsedef for 'value' * ParseDef( "attr", MANDTAORY, * xml::parseDefAssign( data.value ) * ( "attr", data.attr ) * >> &setupDone ); * \endcode * * \see \ref xml::rnParse for more example. */ //@{ inline parse_def_assign::Builder parseDefAssign() { return parse_def_assign::Builder(); } template inline parse_def_assign::Builder parseDefAssign( Tp & value_r ) { return parse_def_assign::Builder( value_r ); } template inline parse_def_assign::Builder parseDefAssign( const std::string & attr_r, Tp & value_r ) { return parse_def_assign::Builder( attr_r, value_r ); } //@} ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_PARSEDEFCONSUME_H libzypp-17.7.0/zypp/parser/xml/ParseDefException.cc000066400000000000000000000047421334444677500223040ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/ParseDefException.cc * */ #include "zypp/parser/xml/ParseDefException.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDefException::ParseDefException // METHOD TYPE : Constructor // ParseDefException::ParseDefException( const std::string & what_r ) : Exception( what_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDefBuildException::ParseDefBuildException // METHOD TYPE : Constructor // ParseDefBuildException::ParseDefBuildException( const std::string & what_r ) : ParseDefException( what_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDefValidateException::ParseDefValidateException // METHOD TYPE : Constructor // ParseDefValidateException::ParseDefValidateException( const std::string & what_r ) : ParseDefException( what_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : ParseDefDataException::ParseDefDataException // METHOD TYPE : Constructor // ParseDefDataException::ParseDefDataException( const std::string & what_r ) : ParseDefException( what_r ) {} ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/ParseDefException.h000066400000000000000000000057111334444677500221430ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/ParseDefException.h * */ #ifndef ZYPP_PARSER_XML_PARSEDEFEXCEPTION_H #define ZYPP_PARSER_XML_PARSEDEFEXCEPTION_H #include #include "zypp/base/Exception.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefException // /** Common base class for \ref ParseDef exceptions. */ struct ParseDefException : public Exception { ParseDefException( const std::string & what_r ); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefBuildException // /** Exceptions when building a ParseDef tree. */ struct ParseDefBuildException : public ParseDefException { ParseDefBuildException( const std::string & what_r ); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefValidateException // /** Parse exceptions related to the documents node structure. */ struct ParseDefValidateException : public ParseDefException { ParseDefValidateException( const std::string & what_r ); }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefDataException // /** Parse exceptions related to the nodes content. */ struct ParseDefDataException : public ParseDefException { ParseDefDataException( const std::string & what_r ); }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_PARSEDEFEXCEPTION_H libzypp-17.7.0/zypp/parser/xml/ParseDefTraits.h000066400000000000000000000043231334444677500214510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/ParseDefTraits.h * */ #ifndef ZYPP_PARSER_XML_PARSEDEFTRAITS_H #define ZYPP_PARSER_XML_PARSEDEFTRAITS_H #include "zypp/Bit.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ParseDefTraits // /** */ struct ParseDefTraits { typedef unsigned char ModeBitsType; typedef bit::BitField ModeBits; typedef bit::Range TypeBits; typedef bit::Range VisitBits; enum TypeValue { BIT_OPTIONAL = bit::RangeValue::value, BIT_MANDTAORY = bit::RangeValue::value }; enum VisitValue { BIT_ONCE = bit::RangeValue::value, BIT_MULTIPLE = bit::RangeValue::value }; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_PARSEDEFTRAITS_H libzypp-17.7.0/zypp/parser/xml/Reader.cc000066400000000000000000000163611334444677500201360ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/Reader.cc * */ #include #include #include #include "zypp/base/LogControl.h" #include "zypp/base/LogTools.h" #include "zypp/base/Exception.h" #include "zypp/base/String.h" #include "zypp/parser/xml/Reader.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// int ioread( void * context_r, char * buffer_r, int bufferLen_r ) { if ( context_r && buffer_r ) { return reinterpret_cast(context_r) ->stream().read( buffer_r, bufferLen_r ).gcount(); } INT << "XML parser error: null pointer check failed " << context_r << ' ' << (void *)buffer_r << endl; return -1; } int ioclose( void * /*context_r*/ ) { return 0; } std::list structuredErrors; void structuredErrorFunc( void * userData, xmlErrorPtr error ) { if ( error ) { // error->message is NL terminated std::string err( str::form( "%s[%d] %s", Pathname::basename(error->file).c_str(), error->line, str::stripSuffix( error->message, "\n" ).c_str() ) ); structuredErrors.push_back( err ); WAR << err << endl; } #if 0 if ( error ) { #define X(m) SEC << " " << #m << "\t" << error->m << endl #define XS(m) SEC << " " << #m << "\t" << (error->m?error->m:"NA") << endl X(domain); X(code); XS(message); X(level); XS(file); X(line); XS(str1); XS(str2); XS(str3); X(int1); X(int2); X(ctxt); X(node); #undef X #undef XS } #endif } struct ParseException : public Exception { ParseException() : Exception( "Parse error: " + ( structuredErrors.empty() ? std::string("unknown error"): structuredErrors.back() ) ) { for_( it, structuredErrors.begin(), --structuredErrors.end() ) addHistory( *it ); } }; ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::Reader // METHOD TYPE : Constructor // Reader::Reader( const InputStream & stream_r, const Validate & validate_r ) : _stream( stream_r ) , _reader( xmlReaderForIO( ioread, ioclose, &_stream, stream_r.path().asString().c_str(), "utf-8", XML_PARSE_PEDANTIC ) ) , _node( _reader ) { MIL << "Start Parsing " << _stream << endl; if ( ! _reader || ! stream_r.stream().good() ) ZYPP_THROW( Exception( "Bad input stream" ) ); // set error handler // TODO: Fix using a global lastStructuredError string is not reentrant. structuredErrors.clear(); xmlTextReaderSetStructuredErrorHandler( _reader, structuredErrorFunc, NULL ); // TODO: set validation // advance to 1st node nextNode(); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::~Reader // METHOD TYPE : Destructor // Reader::~Reader() { if ( _reader ) { xmlFreeTextReader( _reader ); } MIL << "Done Parsing " << _stream << endl; } XmlString Reader::nodeText() { if ( ! _node.isEmptyElement() ) { if ( nextNode() ) { if ( _node.nodeType() == XML_READER_TYPE_TEXT ) { return _node.value(); } } } return XmlString(); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::nextNode // METHOD TYPE : bool // bool Reader::nextNode() { int ret = xmlTextReaderRead( _reader ); if ( ret == 1 ) { return true; } xmlTextReaderClose( _reader ); if ( ret != 0 ) { ZYPP_THROW( ParseException() ); } return false; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::nextNodeAttribute // METHOD TYPE : bool // bool Reader::nextNodeAttribute() { int ret = xmlTextReaderMoveToNextAttribute( _reader ); if ( ret == 1 ) { return true; } if ( ret != 0 ) { ZYPP_THROW( ParseException() ); } return false; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::close // METHOD TYPE : void // void Reader::close() { if ( _reader ) { xmlTextReaderClose( _reader ); } } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::seekToNode // METHOD TYPE : bool // bool Reader::seekToNode( int depth_r, const std::string & name_r ) { do { if ( _node.depth() == depth_r && _node.name() == name_r && _node.nodeType() == XML_READER_TYPE_ELEMENT ) { break; } } while( nextNode() ); return ! atEnd(); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Reader::seekToEndNode // METHOD TYPE : bool // bool Reader::seekToEndNode( int depth_r, const std::string & name_r ) { // Empty element has no separate end node: do { if ( _node.depth() == depth_r && _node.name() == name_r && ( _node.nodeType() == XML_READER_TYPE_END_ELEMENT || ( _node.nodeType() == XML_READER_TYPE_ELEMENT && _node.isEmptyElement() ) ) ) { break; } } while( nextNode() ); return ! atEnd(); } ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/Reader.h000066400000000000000000000130741334444677500177760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/Reader.h * */ #ifndef ZYPP_PARSER_XML_READER_H #define ZYPP_PARSER_XML_READER_H #include #include "zypp/base/NonCopyable.h" #include "zypp/base/InputStream.h" #include "zypp/base/Function.h" #include "zypp/parser/xml/Node.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Validate // /** xmlTextReader document validation. * \todo Implement RelaxNG and W3C XSD **/ struct Validate { static Validate none() { return Validate(); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Reader // /** xmlTextReader based interface to iterate xml streams. * * \code * // Consume a node. * bool consumeNode( xml::Reader & reader_r ) * { * DBG << *reader_r << endl; * return true; * } * * // Consume all nodes (omitting attributes) * void example() * { * try * { * xml::Reader reader( "/Local/repodata/repomd.xml" ); * reader.foreachNode( consumeNode ); * } * catch ( const Exception & ) * { ; } // parse error * } * \endcode * * \code * // Consume a node. * bool consumeNodeAndAttribute( xml::Reader & reader_r ) * { * consumeNode( reader_r ); * return reader_r.foreachNodeAttribute( consumeNode ); * } * * // Consume all nodes and their attributes. * void example() * { * Pathname repodata( "/Local/repodata/repomd.xml" ); * try * { * xml::Reader reader( "/Local/repodata/repomd.xml" ); * reader.foreachNode( consumeNodeAndAttribute ); * // or: * // reader.foreachNodeOrAttribute( consumeNode ) * } * catch ( const Exception & ) * { ; } // parse error * } * \endcode **/ class Reader : private zypp::base::NonCopyable { public: /** Ctor. Setup xmlTextReader and advance to the 1st Node. */ Reader( const InputStream & stream_r, const Validate & validate_r = Validate::none() ); /** Dtor. */ ~Reader(); public: /** * If the current node is not empty, advances the reader to the next * node, and returns the value * * \note if the node has a xml subtree you will probably jump to that node * and get a empty text value back. Use it only if you are sure the node * has no XML subtree. */ XmlString nodeText(); /** */ bool nextNode(); /** */ bool nextNodeAttribute(); /** */ bool nextNodeOrAttribute() { return( nextNodeAttribute() || nextNode() ); } /** */ bool atEnd() const { return( _node.readState() == XML_TEXTREADER_MODE_CLOSED ); } /** */ const Node & operator*() const { return _node; } /** */ const Node * operator->() const { return &_node; } public: /** */ typedef function ProcessNode; /** */ bool foreachNode( ProcessNode fnc_r ) { if ( _node.isAttribute() ) nextNode(); for ( ; ! atEnd(); nextNode() ) { if ( ! fnc_r( *this ) ) return false; } return true; } /** */ bool foreachNodeAttribute( ProcessNode fnc_r ) { if ( _node.isAttribute() && ! fnc_r( *this ) ) return false; while( nextNodeAttribute() ) { if ( ! fnc_r( *this ) ) return false; } return true; } /** */ bool foreachNodeOrAttribute( ProcessNode fnc_r ) { for ( ; ! atEnd(); nextNodeOrAttribute() ) { if ( ! fnc_r( *this ) ) return false; } return true; } public: /** */ bool seekToNode( int depth_r, const std::string & name_r ); /** */ bool seekToEndNode( int depth_r, const std::string & name_r ); private: void close(); private: InputStream _stream; xmlTextReaderPtr _reader; Node _node; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_READER_H libzypp-17.7.0/zypp/parser/xml/XmlEscape.cc000066400000000000000000000076271334444677500206220ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/XmlEscape.cc * */ #include #include "zypp/parser/xml/XmlEscape.h" /* IoBind Library License: -------------------------- The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution */ /////////////////////////////////////////////////////////////////// namespace iobind { /////////////////////////////////////////////////////////////////// namespace parser { struct ZYPP_LOCAL xml_escape_parser { std::string unescape(const std::string &istr) const { size_t i; std::string str = istr; i = str.find_first_of("&"); while (i != std::string::npos) { if (str[i] == '&') { if (!str.compare(i + 1, 3, "lt;")) str.replace(i, 4, 1, '<'); else if (!str.compare(i + 1, 3, "gt;")) str.replace(i, 4, 1, '>'); else if (!str.compare(i + 1, 4, "amp;")) str.replace(i, 5, 1, '&'); else if (!str.compare(i + 1, 5, "apos;")) str.replace(i, 6, 1, '\''); else if (!str.compare(i + 1, 5, "quot;")) str.replace(i, 6, 1, '"'); } i = str.find_first_of("&", i + 1); } return str; } }; } // namespace parser /////////////////////////////////////////////////////////////////// } // namespace iobind /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace xml { /////////////////////////////////////////////////////////////////// namespace detail { std::ostream & EscapedString::dumpOn( std::ostream & str ) const { typedef unsigned char uchar; for ( char ch : _in ) { switch ( ch ) { case '<': str << "<"; break; case '>': str << ">"; break; case '&': str << "&"; break; case '"': str << """; break; case '\'': str << "'"; break; // control chars we allow: case '\n': case '\r': case '\t': str << ch; break; default: if ( uchar(ch) < 32u ) str << '?'; // filter problematic control chars (XML1.0) else str << ch; break; } } return str; } } // detail /////////////////////////////////////////////////////////////////// std::string unescape( const std::string & in_r ) { return iobind::parser::xml_escape_parser().unescape( in_r ); } } // namespace xml ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/XmlEscape.h000066400000000000000000000044361334444677500204570ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/XmlEscape.h * */ #ifndef ZYPP_PARSER_XML_XMLESCAPE_H #define ZYPP_PARSER_XML_XMLESCAPE_H #include #include #include "zypp/APIConfig.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace xml { /////////////////////////////////////////////////////////////////// namespace detail { struct EscapedString { EscapedString( const std::string & in_r ) : _in( in_r ) {} std::ostream & dumpOn( std::ostream & str ) const; std::string asString() const { std::ostringstream str; dumpOn( str ); return str.str(); } operator std::string() const { return asString(); } private: const std::string & _in; }; /** \relates EscapedString Stream output */ inline std::ostream & operator<<( std::ostream & str, const EscapedString & obj ) { return obj.dumpOn( str ); } } // detail /////////////////////////////////////////////////////////////////// /** Escape xml special charaters (& -> &; from IoBind library). * The \ref detail::EscapedString can be dumped to an ostream and implicitly * converts into a std::string. */ inline detail::EscapedString escape( const std::string & in_r ) { return detail::EscapedString( in_r ); } /** Unescape xml special charaters (& -> &; from IoBind library) */ ZYPP_API std::string unescape( const std::string & in_r ); } // namespace xml ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_XMLESCAPE_H libzypp-17.7.0/zypp/parser/xml/XmlString.cc000066400000000000000000000041111334444677500206510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/XmlString.cc * */ #include #include "zypp/parser/xml/XmlString.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : XmlString::XmlString // METHOD TYPE : Constructor // XmlString::XmlString( const xmlChar *const xmlstr_r, OnDelete ondelete_r ) { if ( xmlstr_r ) { if ( ondelete_r == FREE ) _xmlstr.reset( xmlstr_r, Deleter() ); else _xmlstr.reset( xmlstr_r, NullDeleter() ); } } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const XmlString & obj ) { if ( obj ) return str << obj.c_str(); return str << "NULL"; } ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/XmlString.h000066400000000000000000000076351334444677500205310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/XmlString.h * */ #ifndef ZYPP_PARSER_XML_XMLSTRING_H #define ZYPP_PARSER_XML_XMLSTRING_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/parser/xml/libxmlfwd.h" #include "zypp/parser/xml/XmlEscape.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : XmlString // /** xmlChar * wrapper. * * Common handling of xmlChar * that do or do not need to * be freed. If the wraped xmlChar * needs to be freed by * calling \c xmlFree, pass \c FREE as 2nd argument to the ctor. **/ class XmlString { /** shared_ptr custom deleter calling \c xmlFree. */ struct Deleter { void operator()( const xmlChar * xmlstr_r ) const { xmlFree( (void*)(xmlstr_r) ); } }; public: /** Dtor policy. */ enum OnDelete { NOFREE, FREE }; /** Ctor from xmlChar. * Pass \c FREE as 2nd arg if \c xmlFree needs to be called on destruction. */ XmlString( const xmlChar *const xmlstr_r = NULL, OnDelete ondelete_r = NOFREE ); /** Access the xmlChar *. */ const xmlChar * get() const { if ( ! _xmlstr ) return NULL; return &(*_xmlstr); } /** Implicit conversion to xmlChar *. */ operator const xmlChar * () const { return get(); } /** Explicit conversion to const char *. */ const char * c_str() const { return reinterpret_cast(get()); } /** Explicit conversion to std::string. */ std::string asString() const { if ( ! _xmlstr ) return std::string(); return c_str(); } bool operator==( const std::string & rhs ) const { return( rhs == c_str() ); } bool operator!=( const std::string & rhs ) const { return( rhs != c_str() ); } bool operator==( const char *const rhs ) const { return( asString() == rhs ); } bool operator!=( const char *const rhs ) const { return( asString() != rhs ); } bool operator==( const XmlString & rhs ) const { return( asString() == rhs.c_str() ); } bool operator!=( const XmlString & rhs ) const { return( asString() != rhs.c_str() ); } private: /** Wraps the xmlChar *. * The appropriate custom deleter is set by the ctor. */ shared_ptr _xmlstr; }; /////////////////////////////////////////////////////////////////// /** \relates XmlString Stream output. */ std::ostream & operator<<( std::ostream & str, const XmlString & obj ); ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_XMLSTRING_H libzypp-17.7.0/zypp/parser/xml/libxmlfwd.cc000066400000000000000000000052211334444677500207150ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/libxmlfwd.cc * */ #include #include "zypp/parser/xml/libxmlfwd.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ReadState & obj ) { switch ( obj ) { #define X(T) case XML_TEXTREADER_MODE_##T: return str << #T X(INITIAL); X(INTERACTIVE); X(ERROR); X(EOF); X(CLOSED); X(READING); #undef X } return str << "UNKNOWN_READ_STATE"; } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const NodeType & obj ) { switch ( obj ) { #define X(T) case XML_READER_TYPE_##T: return str << #T X(NONE); X(ELEMENT); X(ATTRIBUTE); X(TEXT); X(CDATA); X(ENTITY_REFERENCE); X(ENTITY); X(PROCESSING_INSTRUCTION); X(COMMENT); X(DOCUMENT); X(DOCUMENT_TYPE); X(DOCUMENT_FRAGMENT); X(NOTATION); X(WHITESPACE); X(SIGNIFICANT_WHITESPACE); X(END_ELEMENT); X(END_ENTITY); X(XML_DECLARATION); #undef X } return str << "UNKNOWN_NODE_TYPE"; } ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/parser/xml/libxmlfwd.h000066400000000000000000000033621334444677500205630ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/xml/libxmlfwd.h * */ #ifndef ZYPP_PARSER_XML_LIBXMLFWD_H #define ZYPP_PARSER_XML_LIBXMLFWD_H extern "C" { #include #include } #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace xml { ///////////////////////////////////////////////////////////////// typedef xmlTextReaderMode ReadState; /** \relates ReadState Stream output. */ std::ostream & operator<<( std::ostream & str, const ReadState & obj ); typedef xmlReaderTypes NodeType; /** \relates NodeType Stream output. */ std::ostream & operator<<( std::ostream & str, const NodeType & obj ); ///////////////////////////////////////////////////////////////// } // namespace xml /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_XML_LIBXMLFWD_H libzypp-17.7.0/zypp/parser/yum/000077500000000000000000000000001334444677500164305ustar00rootroot00000000000000libzypp-17.7.0/zypp/parser/yum/PatchesFileReader.cc000066400000000000000000000100541334444677500222510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/yum/PatchesFileReader.cc * Implementation of patches.xml file reader. */ #include #include "zypp/base/String.h" #include "zypp/base/Logger.h" #include "zypp/Date.h" #include "zypp/CheckSum.h" #include "zypp/OnMediaLocation.h" #include "zypp/parser/xml/Reader.h" #include "zypp/parser/yum/PatchesFileReader.h" using namespace std; using namespace zypp::xml; namespace zypp { namespace parser { namespace yum { enum Tag { tag_NONE, tag_Patches, tag_Patch, tag_Location, tag_CheckSum, tag_Timestamp, tag_OpenCheckSum }; /////////////////////////////////////////////////////////////////////// // // CLASS NAME : PatchesFileReader::Impl // class PatchesFileReader::Impl : private base::NonCopyable { public: /** * CTOR */ Impl(const Pathname &patches_file, const ProcessResource & callback); /** * Callback provided to the XML parser. Don't use it. */ bool consumeNode( Reader & reader_r ); private: OnMediaLocation _location; Tag _tag; std::string _id; ProcessResource _callback; CheckSum _checksum; std::string _checksum_type; Date _timestamp; }; /////////////////////////////////////////////////////////////////////// PatchesFileReader::Impl::Impl(const Pathname & patches_file, const ProcessResource & callback) : _tag(tag_NONE), _callback(callback) { Reader reader( patches_file ); MIL << "Reading " << patches_file << endl; reader.foreachNode(bind( &PatchesFileReader::Impl::consumeNode, this, _1 )); } // -------------------------------------------------------------------------- bool PatchesFileReader::Impl::consumeNode( Reader & reader_r ) { //MIL << reader_r->name() << endl; std::string data_type; if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT ) { if ( reader_r->name() == "patches" ) { _tag = tag_Patches; return true; } if ( reader_r->name() == "patch" ) { _tag = tag_Patch; _id = reader_r->getAttribute("id").asString(); return true; } if ( reader_r->name() == "location" ) { _tag = tag_Location; _location.setLocation( reader_r->getAttribute("href").asString(), 1 ); return true; } if ( reader_r->name() == "checksum" ) { _tag = tag_CheckSum; string checksum_type = reader_r->getAttribute("type").asString() ; string checksum_vaue = reader_r.nodeText().asString(); _location.setChecksum( CheckSum( checksum_type, checksum_vaue ) ); return true; } if ( reader_r->name() == "timestamp" ) { // ignore it return true; } } else if ( reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT ) { //MIL << "end element" << endl; if ( reader_r->name() == "patch" ) _callback( _location, _id ); return true; } return true; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : PatchesFileReader // /////////////////////////////////////////////////////////////////// PatchesFileReader::PatchesFileReader(const Pathname & patches_file, const ProcessResource & callback) : _pimpl(new Impl(patches_file, callback)) {} PatchesFileReader::~PatchesFileReader() {} } // ns yum } // ns parser } // ns zypp // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/parser/yum/PatchesFileReader.h000066400000000000000000000043371334444677500221220ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/yum/PatchesFileReader.h * Interface of patches.xml file reader. */ #ifndef zypp_source_yum_PatchesFileReader_H #define zypp_source_yum_PatchesFileReader_H #include "zypp/base/PtrTypes.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/Function.h" namespace zypp { namespace parser { namespace yum { /** * Iterates through a patches.xml file giving on each iteration * a \ref OnMediaLocation object with the resource and its * patch id. * The iteration is done via a callback provided on * construction. * * \code * PatchesFileReader reader(patches_file, * bind( &SomeClass::callbackfunc, &object, _1, _2 ) ); * \endcode */ class PatchesFileReader : private base::NonCopyable { public: /** * Callback definition * first parameter is a \ref OnMediaLocation object with the resource * second parameter is the patch id. */ typedef function ProcessResource; /** * CTOR. Creates also \ref xml::Reader and starts reading. * * \param patches_file is the patches.xml file you want to read * \param callback is a function. * * \see PatchesFileReader::ProcessResource */ PatchesFileReader(const Pathname &patches_file, const ProcessResource & callback); /** * DTOR */ ~PatchesFileReader(); private: class Impl; RW_pointer > _pimpl; }; } // ns yum } // ns parser } // ns zypp #endif /*zypp_source_yum_PatchesFileReader_H*/ // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/parser/yum/RepomdFileReader.cc000066400000000000000000000130371334444677500221140ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/yum/RepomdFileReader.cc * Implementation of repomd.xml file reader. */ #include #include "zypp/base/String.h" #include "zypp/base/Logger.h" #include "zypp/Pathname.h" #include "zypp/Date.h" #include "zypp/CheckSum.h" #include "zypp/parser/xml/Reader.h" #include "zypp/parser/yum/RepomdFileReader.h" #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "parser::yum" using namespace std; using namespace zypp::xml; using zypp::repo::yum::ResourceType; namespace zypp { namespace parser { namespace yum { /////////////////////////////////////////////////////////////////////// // // CLASS NAME : RepomdFileReader::Impl // class RepomdFileReader::Impl : private base::NonCopyable { public: /** * Enumeration of repomd.xml tags. * \see _tag */ enum Tag { tag_NONE, tag_Repomd, tag_Data, tag_Location, tag_CheckSum, tag_Timestamp, tag_OpenCheckSum }; public: /** Ctro taking a ProcessResource2 callback */ Impl(const Pathname &repomd_file, const ProcessResource2 & callback ) : _callback( callback ) , _tag( tag_NONE ) , _type( ResourceType::NONE_e ) { Reader reader( repomd_file ); MIL << "Reading " << repomd_file << endl; reader.foreachNode( bind( &RepomdFileReader::Impl::consumeNode, this, _1 ) ); } /** \overload Redirect an old ProcessResource callback */ Impl(const Pathname &repomd_file, const ProcessResource & callback) : Impl( repomd_file, ProcessResource2( bind( callback, _1, _2 ) ) ) {} /** * Callback provided to the XML parser. */ bool consumeNode( Reader & reader_r ); private: /** Function for processing collected data. Passed-in through constructor. */ ProcessResource2 _callback; /** Used to remember currently processed tag */ Tag _tag; /** Type of metadata file (string) */ std::string _typeStr; /** Type of metadata file as enum of well known repoinded.xml entries. */ repo::yum::ResourceType _type; /** Location of metadata file. */ OnMediaLocation _location; }; /////////////////////////////////////////////////////////////////////// /* * xpath and multiplicity of processed nodes are included in the code * for convenience: * * // xpath: (?|*|+) * * if multiplicity is ommited, then the node has multiplicity 'one'. */ // -------------------------------------------------------------------------- bool RepomdFileReader::Impl::consumeNode( Reader & reader_r ) { if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT ) { // xpath: /repomd if ( reader_r->name() == "repomd" ) { _tag = tag_Repomd; return true; } // xpath: /repomd/data (+) if ( reader_r->name() == "data" ) { _tag = tag_Data; _typeStr = reader_r->getAttribute("type").asString(); _type = ResourceType(_typeStr); return true; } // xpath: /repomd/location if ( reader_r->name() == "location" ) { _tag = tag_Location; _location.setLocation( reader_r->getAttribute("href").asString(), 1 ); // ignoring attribute xml:base return true; } // xpath: /repomd/checksum if ( reader_r->name() == "checksum" ) { _tag = tag_CheckSum; string checksum_type = reader_r->getAttribute("type").asString() ; string checksum_vaue = reader_r.nodeText().asString(); _location.setChecksum( CheckSum( checksum_type, checksum_vaue ) ); return true; } // xpath: /repomd/timestamp if ( reader_r->name() == "timestamp" ) { // ignore it return true; } // xpath: /repomd/size if ( reader_r->name() == "size" ) { string size_value = reader_r.nodeText().asString(); zypp::ByteCount size = zypp::ByteCount( str::strtonum( size_value ) ); _location.setDownloadSize( size ); return true; } //! \todo xpath: /repomd/open-checksum (?) } else if ( reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT ) { // xpath: /repomd/data if ( reader_r->name() == "data" ) { if (_callback) _callback( _location, _type, _typeStr ); return true; } } return true; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepomdFileReader // /////////////////////////////////////////////////////////////////// RepomdFileReader::RepomdFileReader( const Pathname & repomd_file, const ProcessResource & callback ) : _pimpl( new Impl(repomd_file, callback) ) {} RepomdFileReader::RepomdFileReader( const Pathname & repomd_file, const ProcessResource2 & callback ) : _pimpl( new Impl(repomd_file, callback) ) {} RepomdFileReader::~RepomdFileReader() {} } // ns yum } // ns parser } // ns zypp // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/parser/yum/RepomdFileReader.h000066400000000000000000000054401334444677500217550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/yum/RepomdFileReader.h * Interface of repomd.xml file reader. */ #ifndef zypp_source_yum_RepomdFileReader_H #define zypp_source_yum_RepomdFileReader_H #include "zypp/base/PtrTypes.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/Function.h" #include "zypp/OnMediaLocation.h" #include "zypp/repo/yum/ResourceType.h" namespace zypp { namespace parser { namespace yum { /** * Reads through a repomd.xml file and collects type, location, checksum and * other data about metadata files to be processed. * * After each file entry is read, a \ref OnMediaLocation * and \ref repo::yum::ResourceType are prepared and passed to the \ref _callback. * * Depending on the \ref _callback type provided on construction, ResourceType may * additionally be passed as a plain string. This form allows handling custom * resource types (e.g. ones with embedded locale tag). * * \code * RepomdFileReader reader(repomd_file, * bind( &SomeClass::callbackfunc, &SomeClassInstance, _1, _2 ) ); * \endcode */ class RepomdFileReader : private base::NonCopyable { public: /** Callbacl taking \ref OnMediaLocation and \ref repo::yum::ResourceType */ typedef function< bool( const OnMediaLocation &, const repo::yum::ResourceType & )> ProcessResource; /** Alternate callback also receiving the ResourceType as string. */ typedef function< bool( const OnMediaLocation &, const repo::yum::ResourceType &, const std::string & )> ProcessResource2; /** * CTOR. Creates also \ref xml::Reader and starts reading. * * \param repomd_file is the repomd.xml file you want to read * \param callback is a function. * * \see RepomdFileReader::ProcessResource */ RepomdFileReader( const Pathname & repomd_file, const ProcessResource & callback ); /** \overload taking ProcessResource2 callback */ RepomdFileReader( const Pathname & repomd_file, const ProcessResource2 & callback ); /** DTOR */ ~RepomdFileReader(); private: class Impl; RW_pointer > _pimpl; }; } // namespace yum } // namespace parser } // namespace zypp #endif // zypp_source_yum_RepomdFileReader_H libzypp-17.7.0/zypp/parser/yum/schema/000077500000000000000000000000001334444677500176705ustar00rootroot00000000000000libzypp-17.7.0/zypp/parser/yum/schema/common-inc.rnc000066400000000000000000000036421334444677500224400ustar00rootroot00000000000000# private is not an XML namespace, just a holder for reusable # attribute/element sets private.positive = xsd:positiveInteger { pattern="[1-9][0-9]*" } private.nonnegative = "0" | private.positive # Unix timestamp (seconds since epoch) # For our purposes, this is always positive private.unixts = private.positive private.size = private.nonnegative private.checksum = (attribute type { "md5" }, xsd:string { length="32" pattern="[0-9a-f]*" }) | (attribute type { "sha" }, xsd:string { length="40" pattern="[0-9a-f]*" }) | (attribute type { "sha256" }, xsd:string { length="64" pattern="[0-9a-f]*" }) | (attribute type { "sha" }, xsd:string { length="32" pattern="[0-9a-f]*" }) # The last option is totally broken, but is in the wild!!! :( private.evr = attribute epoch { private.nonnegative }?, attribute ver { text }, attribute rel { text }? private.localizedtext = attribute lang { "en" | "de" }, text private.archenum = "noarch" | "i386" | "i486" | "i586" | "i686" | "athlon" | "x86_64" | "pentium3" | "pentium4" | "s390" | "s390x" | "ppc" | "ppc64" | "ia64" | "alphaev67" | "alphaev6" | "alphapca56" | "alphaev56" | "alphaev5" | "alpha" | "sparc64v" | "sparcv9v" | "sparc64" | "sparcv9" | "sparcv8" | "sparc" | "aarch64" | "armv7tnhl" | "armv7thl" | "armv7nhl" | "armv7hl" | "armv7l" | "armv6l" | "armv5tejl" | "armv5tel" | "armv5l" | "armv4tl" | "armv4l" | "armv3l" | "sh3" | "sh4" | "sh4a" | "m68k" | "src" libzypp-17.7.0/zypp/parser/yum/schema/common-inc.rng000066400000000000000000000071761334444677500224520ustar00rootroot00000000000000 [1-9][0-9]* 0 md5 32 [0-9a-f]* sha 40 [0-9a-f]* sha256 64 [0-9a-f]* sha 32 [0-9a-f]* en de noarch i386 i486 i586 i686 athlon x86_64 pentium3 pentium4 s390 s390x ppc ppc64 ia64 alphaev67 alphaev6 alphapca56 alphaev56 alphaev5 alpha sparc64v sparcv9v sparc64 sparcv9 sparcv8 sparc aarch64 armv7tnhl armv7thl armv7nhl armv7hl armv7l armv6l armv5tejl armv5tel armv5l armv4tl armv4l armv3l sh3 sh4 sh4a m68k src libzypp-17.7.0/zypp/parser/yum/schema/deltainfo.rnc000066400000000000000000000012311334444677500223360ustar00rootroot00000000000000include "common-inc.rnc" start = element deltainfo { element newpackage { attribute name { text }, attribute arch { private.archenum }, attribute version { text }, attribute release { text }, element delta { attribute oldepoch { private.nonnegative }, # two different formats, with different attribute names with same data ((attribute oldversion { text }, attribute oldrelease { text }) | (attribute ver { text }, attribute rel { text })), element filename { text }, element sequence { text }, element size { private.size }, element checksum { private.checksum } }+ }* } libzypp-17.7.0/zypp/parser/yum/schema/deltainfo.rng000066400000000000000000000030121334444677500223410ustar00rootroot00000000000000 libzypp-17.7.0/zypp/parser/yum/schema/filelists.rnc000066400000000000000000000006351334444677500223760ustar00rootroot00000000000000default namespace = "http://linux.duke.edu/metadata/filelists" include "common-inc.rnc" start = element filelists { attribute packages { xsd:nonNegativeInteger }, element package { attribute pkgid { text }, attribute name { text }, attribute arch { private.archenum }, element version { private.evr }, element file { attribute type { "dir" | "ghost" }?, text }* }* } libzypp-17.7.0/zypp/parser/yum/schema/filelists.rng000066400000000000000000000021711334444677500223770ustar00rootroot00000000000000 dir ghost libzypp-17.7.0/zypp/parser/yum/schema/other.rnc000066400000000000000000000006721334444677500215220ustar00rootroot00000000000000default namespace = "http://linux.duke.edu/metadata/other" include "common-inc.rnc" start = element otherdata { attribute packages { private.nonnegative }, element package { attribute pkgid { text }, attribute name { text }, attribute arch { private.archenum }, element version { private.evr }, element changelog { attribute author { text }, attribute date { private.unixts }, text }* }* } libzypp-17.7.0/zypp/parser/yum/schema/other.rng000066400000000000000000000017251334444677500215260ustar00rootroot00000000000000 libzypp-17.7.0/zypp/parser/yum/schema/patch.rnc000066400000000000000000000066661334444677500215110ustar00rootroot00000000000000default namespace = "http://novell.com/package/metadata/suse/patch" namespace yum = "http://linux.duke.edu/metadata/common" namespace suse = "http://novell.com/package/metadata/suse/common" include "rpm-inc.rnc" yum.name = element yum:name { text } yum.arch = element yum:arch { private.archenum } yum.version = element yum:version { private.evr } suse.freshens = element suse:freshens { element suse:entry { attribute kind { "package" }, attribute name { text } }+ } group.deps = rpm.requires?, rpm.obsoletes?, rpm.provides?, rpm.recommends?, rpm.supplements?, rpm.conflicts?, suse.freshens? patch.location = element location { attribute href { xsd:anyURI } } patch.checksum = element checksum { private.checksum } patch.time = element time { attribute file { private.unixts }, attribute build { private.unixts } } patch.size = element size { attribute package { private.size }, attribute archive { private.size } } start = element patch { attribute patchid { text }, attribute timestamp { private.unixts }, attribute engine { "1.0" }, yum.name, element summary { private.localizedtext }+, element description { private.localizedtext }+, element license-to-confirm { private.localizedtext }?, yum.version, group.deps, element reboot-needed { empty }?, element package-manager { empty }?, element category { "security" | "recommended" | "optional" }, # This is in two places (with slightly different definiton) # because that is what is seen in the wild element license-to-confirm { text }?, element atoms { element message { yum.name, yum.version, element text { private.localizedtext }, group.deps }?, element yum:package { attribute type { "rpm" }, yum.name, yum.arch, yum.version, element yum:checksum { attribute pkgid { "YES" }, private.checksum }, element yum:time { attribute file { private.unixts }, attribute build { private.unixts } }, element yum:size { attribute package { private.size }, attribute installed { private.size }, attribute archive { xsd:nonNegativeInteger } }, element yum:location { attribute href { xsd:anyURI } }, element yum:format { group.deps }, element pkgfiles { element patchrpm { patch.location, patch.checksum, patch.time, patch.size, element base-version { private.evr }+ }?, element deltarpm { patch.location, patch.checksum, patch.time, patch.size, element base-version { private.evr, attribute md5sum { xsd:string { length="32" pattern="[0-9a-f]*" } }, attribute buildtime { private.unixts }, attribute sequence_info { text } } }* } }*, element message { yum.name, yum.version, element text { private.localizedtext }, group.deps }?, element script { yum.name, yum.version, # Script can either be remote (do-location and do-checksum) # or inline (do), but not both ((element do-location { attribute href { xsd:anyURI } }, element do-checksum { private.checksum }) | element do { text }), group.deps }? }? } libzypp-17.7.0/zypp/parser/yum/schema/patch.rng000066400000000000000000000204221334444677500214770ustar00rootroot00000000000000 package 1.0 security recommended optional rpm YES 32 [0-9a-f]* libzypp-17.7.0/zypp/parser/yum/schema/patches.rnc000066400000000000000000000005511334444677500220240ustar00rootroot00000000000000default namespace = "http://novell.com/package/metadata/suse/patches" include "common-inc.rnc" start = element patches { element patch { attribute id { text }, element checksum { private.checksum }, element location { attribute href { xsd:anyURI } }, element category { "recommended" | "security" | "optional" }? }* } libzypp-17.7.0/zypp/parser/yum/schema/patches.rng000066400000000000000000000017101334444677500220260ustar00rootroot00000000000000 recommended security optional libzypp-17.7.0/zypp/parser/yum/schema/patterns.rnc000066400000000000000000000015231334444677500222350ustar00rootroot00000000000000namespace suse = "http://novell.com/package/metadata/suse/pattern" namespace rpm = "http://linux.duke.edu/metadata/rpm" include "rpm-inc.rnc" suse.uservisible = element suse:uservisible { empty } suse.category = element suse:category { private.localizedtext } suse.plaincat = element suse:category { text } start = element patterns { # seen missing in the wild attribute count { xsd:nonNegativeInteger }?, element suse:pattern { element suse:name { text }, element suse:arch { private.archenum }?, element suse:version { private.evr }?, element suse:summary { text }, element suse:description { text }?, ((suse.uservisible, suse.category?) | (suse.plaincat, suse.uservisible?)), rpm.provides?, element rpm:freshens { rpm.entry+ }?, rpm.suggests?, rpm.requires?, rpm.recommends? }+ } libzypp-17.7.0/zypp/parser/yum/schema/patterns.rng000066400000000000000000000047321334444677500222460ustar00rootroot00000000000000 libzypp-17.7.0/zypp/parser/yum/schema/primary.rnc000066400000000000000000000046661334444677500220730ustar00rootroot00000000000000default namespace = "http://linux.duke.edu/metadata/common" namespace rpm = "http://linux.duke.edu/metadata/rpm" namespace suse = "http://novell.com/package/metadata/suse/common" include "rpm-inc.rnc" yum.name = element name { text } yum.arch = element arch { private.archenum } yum.version = element version { private.evr } group.deps = rpm.provides?, rpm.requires?, rpm.conflicts?, rpm.obsoletes?, rpm.suggests?, rpm.recommends?, rpm.supplements?, rpm.enhances? group.deps1 = rpm.provides?, rpm.requires?, rpm.conflicts?, rpm.obsoletes?, rpm.suggests?, rpm.enhances?, rpm.recommends?, rpm.supplements? group.deps2 = rpm.provides?, rpm.conflicts?, rpm.obsoletes?, rpm.enhances?, rpm.supplements?, rpm.suggests?, rpm.recommends?, rpm.requires? yum.location = element location { attribute href { xsd:anyURI } } yum.checksum = element checksum { attribute pkgid { "YES" }, private.checksum } yum.time = element time { attribute file { private.unixts }, attribute build { private.unixts } } yum.size = element size { attribute package { private.size }, # Found this blank in the wild attribute archive { private.size | "" }, attribute installed { private.size } } start = element metadata { attribute packages { private.nonnegative }, element package { attribute type { "rpm" }, yum.name, yum.arch, yum.version, yum.checksum, # Found unlocalized in the wild element summary { private.localizedtext | text }, element description { private.localizedtext | text }, element packager { text }, # 10-SP1 stuff has a broken URL in the wild element url { xsd:anyURI | text }, yum.time, yum.size, yum.location, element format { element rpm:license { text }, element rpm:vendor { text }, element rpm:group { text }, element rpm:buildhost { text }, # Two different options seen in the wild # one omits the element, the other leaves the value empty element rpm:sourcerpm { text | empty }?, element rpm:header-range { attribute start { private.positive }, attribute end { private.positive } }, # any of these orders is valid, all are in use (group.deps | group.deps1 | group.deps2), element file { attribute type { "dir" | "ghost" }?, text }* }, element suse:license-to-confirm { text }? }* } libzypp-17.7.0/zypp/parser/yum/schema/primary.rng000066400000000000000000000146171334444677500220740ustar00rootroot00000000000000 YES rpm dir ghost libzypp-17.7.0/zypp/parser/yum/schema/product.rnc000066400000000000000000000011401334444677500220500ustar00rootroot00000000000000default namespace = "http://novell.com/package/metadata/suse/product" include "rpm-inc.rnc" start = element product { attribute type { "add-on" | "base" }, element vendor { text }, element name { text }, element arch { private.archenum }, element version { private.evr }, element displayname { private.localizedtext }, element shortname { text }, element distribution-name { text }, element distribution-edition { text }, element description { private.localizedtext }, element release-notes-url { xsd:anyURI }?, rpm.provides, rpm.obsoletes?, rpm.requires?, rpm.conflicts? } libzypp-17.7.0/zypp/parser/yum/schema/product.rng000066400000000000000000000027761334444677500220740ustar00rootroot00000000000000 add-on base libzypp-17.7.0/zypp/parser/yum/schema/products.rnc000066400000000000000000000005261334444677500222420ustar00rootroot00000000000000include "common-inc.rnc" start = element products { element product { attribute id { text }?, attribute schemeversion { "0" }?, element name { text }, element version { private.evr }, element arch { private.archenum }, element vendor { text }, element summary { text }, element description { text } }+ } libzypp-17.7.0/zypp/parser/yum/schema/products.rng000066400000000000000000000017621334444677500222510ustar00rootroot00000000000000 0 libzypp-17.7.0/zypp/parser/yum/schema/repomd.rnc000066400000000000000000000014721334444677500216660ustar00rootroot00000000000000default namespace = "http://linux.duke.edu/metadata/repo" include "common-inc.rnc" repomd.location = element location { attribute href { xsd:anyURI } } repomd.meta = element checksum { private.checksum }, # Oddity in the wild: a timestamp wiht a decimal element timestamp { private.unixts | xsd:decimal }, element size { private.positive }?, element open-size { private.positive }?, element open-checksum { private.checksum } start = element repomd { element revision { private.unixts }?, element tags { element repo { xsd:anyURI } }?, element data { attribute type { "deltainfo" | "filelists" | "other" | "primary" | "susedata" | "suseinfo" | "updateinfo" | "patches" | "products" | "product" | "patterns" | "pattern" }, ((repomd.meta, repomd.location) | (repomd.location, repomd.meta)) }* } libzypp-17.7.0/zypp/parser/yum/schema/repomd.rng000066400000000000000000000044621334444677500216740ustar00rootroot00000000000000 deltainfo filelists other primary susedata suseinfo updateinfo patches products product patterns pattern libzypp-17.7.0/zypp/parser/yum/schema/rnc2rng000077500000000000000000000001741334444677500211730ustar00rootroot00000000000000#!/bin/bash for i in *.rnc; do g=${i%.rnc}.rng test $i -ot $g && continue echo $i... trang -I rnc -O rng $i $g done libzypp-17.7.0/zypp/parser/yum/schema/rpm-inc.rnc000066400000000000000000000015361334444677500217460ustar00rootroot00000000000000namespace rpm = "http://linux.duke.edu/metadata/rpm" include "common-inc.rnc" rpm.entry = element rpm:entry { attribute pre { "1" }?, attribute kind { "atom" | "message" | "package" | "script" | "product" | "patch" | "pattern" }?, attribute name { text }, (private.evr, attribute flags { "EQ" | "GE" | "LE" | "LT" | "GT" })? } rpm.requires = element rpm:requires { # pre should not be here, but it is in the wild attribute pre { "1" }?, rpm.entry* } rpm.obsoletes = element rpm:obsoletes { rpm.entry+ } rpm.provides = element rpm:provides { rpm.entry* } rpm.recommends = element rpm:recommends { rpm.entry* } rpm.supplements = element rpm:supplements { rpm.entry* } rpm.conflicts = element rpm:conflicts { rpm.entry+ } rpm.enhances = element rpm:enhances { rpm.entry+ } rpm.suggests = element rpm:suggests { rpm.entry* } libzypp-17.7.0/zypp/parser/yum/schema/rpm-inc.rng000066400000000000000000000050301334444677500217430ustar00rootroot00000000000000 1 atom message package script product patch pattern EQ GE LE LT GT 1 libzypp-17.7.0/zypp/parser/yum/schema/susedata.rnc000066400000000000000000000015331334444677500222070ustar00rootroot00000000000000namespace susedata = "http://linux.duke.edu/metadata/susedata" include "common-inc.rnc" ns.susedata = element susedata:susedata { attribute packages { private.nonnegative }, element susedata:package { attribute pkgid { text }, attribute name { text }, attribute arch { private.archenum }, element susedata:version { private.evr }, element susedata:eula { text }?, element susedata:keyword { text }? }* } plain.susedata = element susedata { attribute packages { private.nonnegative }, element package { attribute pkgid { text }, attribute name { text }, attribute arch { private.archenum }, element version { private.evr }, element eula { text }?, element keyword { text }? }* } # Unfortunately there are some susedata files without namespaces in the wild start = (ns.susedata | plain.susedata) libzypp-17.7.0/zypp/parser/yum/schema/susedata.rng000066400000000000000000000037371334444677500222230ustar00rootroot00000000000000 libzypp-17.7.0/zypp/parser/yum/schema/suseinfo.rnc000066400000000000000000000005611334444677500222310ustar00rootroot00000000000000namespace yum = "http://linux.duke.edu/metadata/repo" include "common-inc.rnc" # There is a horribly broken suseinfo variant we have to handle good = element yum:suseinfo { element yum:expire { private.positive } } bad = element suseinfo { element keywords { element k { empty } }, element products { element id { empty } } } start = (good | bad) libzypp-17.7.0/zypp/parser/yum/schema/suseinfo.rng000066400000000000000000000015071334444677500222360ustar00rootroot00000000000000 libzypp-17.7.0/zypp/parser/yum/schema/updateinfo.rnc000066400000000000000000000032141334444677500225320ustar00rootroot00000000000000default namespace = "http://novell.com/package/metadata/suse/updateinfo" include "common-inc.rnc" start = element updates { element update { # Seen missing in the wild attribute from { "maint-coord@suse.de" }?, attribute status { "stable" }, attribute type { "recommended" | "security" | "optional" | "feature" }, attribute version { xsd:string }, element id { text }, element title { text }, # Seen missing in the wild element release { text }?, # Usually with date attribute, but seen in the wild with content instead element issued { (attribute date { private.unixts } | private.unixts) }, # Seen missing in the wild element references { element reference { # Appears to always start with https://bugzilla.novellc.om/show_bug.cgi?id= # if type="bugzilla" and http://cve.mitre.org/cgi-bin/cvename.cgi?name= # if type="cve" attribute href { xsd:anyURI }, attribute id { xsd:string }, attribute title { xsd:string }, attribute type { "bugzilla" | "cve" } }+ }?, element description { text }, element pkglist { element collection { element package { attribute name { xsd:string }, attribute arch { private.archenum }, # not private.evr because "version" and "release" are spelled out attribute epoch { private.nonnegative }?, attribute version { text }?, attribute release { text }?, element filename { text }, element restart_suggested { "1" }?, element reboot_suggested { "1" }?, element relogin_suggested { "1" }? }+ } } }+ } libzypp-17.7.0/zypp/parser/yum/schema/updateinfo.rng000066400000000000000000000106501334444677500225400ustar00rootroot00000000000000 maint-coord@suse.de stable recommended security optional feature bugzilla cve 1 1 1 libzypp-17.7.0/zypp/parser/yum/schema/validate-all000077500000000000000000000075271334444677500221700ustar00rootroot00000000000000#!/bin/bash DEBUG=1 TARGET=/mounts/you #TARGET=/mounts/dist/ibs #TARGET=/mounts/mirror/SuSE/* SCHEMAS=$(dirname "$0") val_jing_compact() { gzip -dcf "$2" | jing -c "$SCHEMAS/$1.rnc" /proc/self/fd/0 } val_jing() { gzip -dcf "$2" | jing "$SCHEMAS/$1.rng" /proc/self/fd/0 } val_xmllint() { gzip -dcf "$2" | xmllint --noout --relaxng "$SCHEMAS/$1.rng" - 2>/dev/null } validate() { [ $DEBUG -gt 4 ] && echo "$2" >&2 if [ ! -f "$2" ]; then echo "File missing: $2" return 5 fi $VAL "$1" "$2" if [ $? -ne 0 ]; then echo "Validation failed: $2 (using $1)" return 2 fi } get_xpath_href() { xpath "$1" "$2" 2>/dev/null | sed -r -e 's/ href="/\n/g;s/$/\n/' \ | sed -e 's/"$//' | tail -n +2 } get_data_type() { get_xpath_href "$1" '/repomd/data[@type="'"$2"'"]/location/@href' } get_patches() { get_xpath_href "$1" '/patches/patch/location/@href' } if [ $(type -p xmllint) ]; then VAL=val_xmllint elif [ $(type -p jing) ]; then VAL=val_jing_compact else echo "No validators found!!" exit 100 fi if [ -z $(type -p xpath) ]; then echo "xpath command not fond" fi find $TARGET -noleaf -name 'repomd.xml' 2>/dev/null | while read FN; do [ $DEBUG -gt 0 ] && echo "$FN" >&2 validate repomd "$FN" # [ $? -eq 0 ] || break D=$(dirname "$FN") BASE=$(dirname "$D") B=$(basename "$D") if [ "$B" != "repodata" ]; then echo "Found $FN not in repodata directory" exit 3 fi get_data_type "$FN" patterns | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate patterns "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" pattern | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate patterns "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" primary | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate primary "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" other | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate other "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" filelists | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate filelists "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" suseinfo | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate suseinfo "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" susedata | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate susedata "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" product | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate product "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" products | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate products "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" updateinfo | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate updateinfo "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" deltainfo | while read UIFN; do [ $DEBUG -gt 1 ] && echo "$UIFN" >&2 validate deltainfo "$BASE/$UIFN" [ $? -eq 0 ] || exit 11 done get_data_type "$FN" patches | while read PFN; do [ $DEBUG -gt 1 ] && echo "$PFN" >&2 validate patches "$BASE/$PFN" [ $? -eq 0 ] || exit 12 get_patches "$BASE/$PFN" | while read PATCH; do [ $DEBUG -gt 2 ] && echo "$PATCH" >&2 validate patch "$BASE/$PATCH" [ $? -eq 0 ] || exit 13 done done done libzypp-17.7.0/zypp/pool/000077500000000000000000000000001334444677500152735ustar00rootroot00000000000000libzypp-17.7.0/zypp/pool/ByIdent.h000066400000000000000000000070131334444677500170030ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/pool/ByIdent.h * */ #ifndef ZYPP_POOL_BYIDENT_H #define ZYPP_POOL_BYIDENT_H #include "zypp/PoolItem.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace pool { ///////////////////////////////////////////////////////////////// /** Main filter selecting PoolItems by \c name and \c kind. */ class ByIdent { public: ByIdent() : _id( 0 ) {} explicit ByIdent( sat::Solvable slv_r ) : _id( makeIdent( slv_r ) ) {} explicit ByIdent( IdString ident_r ) : _id( ident_r.id() ) {} ByIdent( ResKind kind_r, IdString name_r ) : _id( makeIdent( kind_r, name_r ) ) {} ByIdent( ResKind kind_r, const C_Str & name_r ) : _id( makeIdent( kind_r, name_r ) ) {} public: bool operator()( sat::Solvable slv_r ) const { return _id >= 0 ? ( slv_r.ident().id() == _id && ! slv_r.isKind( ResKind::srcpackage ) ) : ( slv_r.ident().id() == -_id && slv_r.isKind( ResKind::srcpackage ) ); } bool operator()( const PoolItem & pi_r ) const { return operator()( pi_r.satSolvable() ); } bool operator()( ResObject::constPtr p_r ) const { return p_r ? operator()( p_r->satSolvable() ) : !_id; } private: sat::detail::IdType makeIdent( sat::Solvable slv_r ) { return slv_r.isKind( ResKind::srcpackage ) ? -slv_r.ident().id() : slv_r.ident().id(); } sat::detail::IdType makeIdent( ResKind kind_r, IdString name_r ) { if ( kind_r == ResKind::package ) return name_r.id(); else if ( kind_r == ResKind::srcpackage ) return -name_r.id(); return IdString( str::form( "%s:%s", kind_r.c_str(), name_r.c_str() ) ).id(); } sat::detail::IdType makeIdent( ResKind kind_r, const C_Str & name_r ) { if ( kind_r == ResKind::package ) return IdString( name_r ).id(); else if ( kind_r == ResKind::srcpackage ) return -(IdString( name_r ).id()); return IdString( str::form( "%s:%s", kind_r.c_str(), name_r.c_str() ) ).id(); } public: sat::detail::IdType get() const { return _id; } private: /** negative \c _id for \c srcpackage, as they use the same \c ident * as \c package. */ sat::detail::IdType _id; }; ///////////////////////////////////////////////////////////////// } // namespace pool /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOL_BYIDENT_H libzypp-17.7.0/zypp/pool/PoolImpl.cc000066400000000000000000000035751334444677500173470ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/pool/PoolImpl.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/pool/PoolImpl.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace pool { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // Class PoolImpl::PoolImpl // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : PoolImpl::PoolImpl // METHOD TYPE : Ctor // PoolImpl::PoolImpl() {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : PoolImpl::~PoolImpl // METHOD TYPE : Dtor // PoolImpl::~PoolImpl() {} ///////////////////////////////////////////////////////////////// } // namespace pool /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/pool/PoolImpl.h000066400000000000000000000340511334444677500172020ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/pool/PoolImpl.h * */ #ifndef ZYPP_POOL_POOLIMPL_H #define ZYPP_POOL_POOLIMPL_H #include #include "zypp/base/Easy.h" #include "zypp/base/LogTools.h" #include "zypp/base/SerialNumber.h" #include "zypp/APIConfig.h" #include "zypp/pool/PoolTraits.h" #include "zypp/ResPoolProxy.h" #include "zypp/PoolQueryResult.h" #include "zypp/sat/Pool.h" #include "zypp/Product.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace resstatus { /** Manipulator for \ref ResStatus::UserLockQueryField. * Field is not public available. It is intended to remember the * initial lock status usually derived from /etc/zypp/locks. So * we are able to detect changes we have to write back on commit. */ struct UserLockQueryManip { /** Set lock and UserLockQuery bit according to \c yesno_r. */ static void setLock( ResStatus & status_r, bool yesno_r ) { status_r.setLock( yesno_r, ResStatus::USER ); status_r.setUserLockQueryMatch( yesno_r ); } /** Update lock and UserLockQuery bit IFF the item gained the bit. */ static void reapplyLock( ResStatus & status_r, bool yesno_r ) { if ( yesno_r && ! status_r.isUserLockQueryMatch() ) { status_r.setLock( yesno_r, ResStatus::USER ); status_r.setUserLockQueryMatch( yesno_r ); } } /** Test whether the lock status differs from the remembered UserLockQuery bit. */ static int diffLock( const ResStatus & status_r ) { bool userLock( status_r.isUserLocked() ); if ( userLock == status_r.isUserLockQueryMatch() ) return 0; return userLock ? 1 : -1; } }; } namespace { inline PoolQuery makeTrivialQuery( IdString ident_r ) { sat::Solvable::SplitIdent ident( ident_r ); PoolQuery q; q.addAttribute( sat::SolvAttr::name, ident.name().asString() ); q.addKind( ident.kind() ); q.setMatchExact(); q.setCaseSensitive(true); return q; } inline bool hardLockQueriesRemove( pool::PoolTraits::HardLockQueries & activeLocks_r, IdString ident_r ) { unsigned s( activeLocks_r.size() ); activeLocks_r.remove( makeTrivialQuery( ident_r ) ); return( activeLocks_r.size() != s ); } inline bool hardLockQueriesAdd( pool::PoolTraits::HardLockQueries & activeLocks_r, IdString ident_r ) { PoolQuery q( makeTrivialQuery( ident_r ) ); for_( it, activeLocks_r.begin(), activeLocks_r.end() ) { if ( *it == q ) return false; } activeLocks_r.push_back( q ); return true; } } /////////////////////////////////////////////////////////////////// namespace pool { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolImpl // /** */ class PoolImpl { friend std::ostream & operator<<( std::ostream & str, const PoolImpl & obj ); public: /** */ typedef PoolTraits::ItemContainerT ContainerT; typedef PoolTraits::size_type size_type; typedef PoolTraits::const_iterator const_iterator; typedef PoolTraits::Id2ItemT Id2ItemT; typedef PoolTraits::repository_iterator repository_iterator; typedef sat::detail::SolvableIdType SolvableIdType; public: /** Default ctor */ PoolImpl(); /** Dtor */ ~PoolImpl(); public: /** convenience. */ const sat::Pool satpool() const { return sat::Pool::instance(); } /** Housekeeping data serial number. */ const SerialNumber & serial() const { return satpool().serial(); } /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// public: /** */ bool empty() const { return satpool().solvablesEmpty(); } /** */ size_type size() const { return satpool().solvablesSize(); } const_iterator begin() const { return make_filter_begin( pool::ByPoolItem(), store() ); } const_iterator end() const { return make_filter_end( pool::ByPoolItem(), store() ); } public: /** Return the corresponding \ref PoolItem. * Pool and sat pool should be in sync. Returns an empty * \ref PoolItem if there is no corresponding \ref PoolItem. * \see \ref PoolItem::satSolvable. */ PoolItem find( const sat::Solvable & slv_r ) const { const ContainerT & mystore( store() ); return( slv_r.id() < mystore.size() ? mystore[slv_r.id()] : PoolItem() ); } /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// public: /** \name Save and restore state. */ //@{ void SaveState( const ResKind & kind_r ); void RestoreState( const ResKind & kind_r ); //@} /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// public: ResPoolProxy proxy( ResPool self ) const { checkSerial(); if ( !_poolProxy ) { _poolProxy.reset( new ResPoolProxy( self, *this ) ); } return *_poolProxy; } public: /** Forward list of Repositories that contribute ResObjects from \ref sat::Pool */ size_type knownRepositoriesSize() const { checkSerial(); return satpool().reposSize(); } repository_iterator knownRepositoriesBegin() const { checkSerial(); return satpool().reposBegin(); } repository_iterator knownRepositoriesEnd() const { checkSerial(); return satpool().reposEnd(); } Repository reposFind( const std::string & alias_r ) const { checkSerial(); return satpool().reposFind( alias_r ); } /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// public: typedef PoolTraits::HardLockQueries HardLockQueries; typedef PoolTraits::hardLockQueries_iterator hardLockQueries_iterator; const HardLockQueries & hardLockQueries() const { return _hardLockQueries; } void reapplyHardLocks() const { // It is assumed that reapplyHardLocks is called after new // items were added to the pool, but the _hardLockQueries // did not change since. Action is to be performed only on // those items that gained the bit in the UserLockQueryField. MIL << "Re-apply " << _hardLockQueries.size() << " HardLockQueries" << endl; PoolQueryResult locked; for_( it, _hardLockQueries.begin(), _hardLockQueries.end() ) { locked += *it; } MIL << "HardLockQueries match " << locked.size() << " Solvables." << endl; for_( it, begin(), end() ) { resstatus::UserLockQueryManip::reapplyLock( it->status(), locked.contains( *it ) ); } } void setHardLockQueries( const HardLockQueries & newLocks_r ) { MIL << "Apply " << newLocks_r.size() << " HardLockQueries" << endl; _hardLockQueries = newLocks_r; // now adjust the pool status PoolQueryResult locked; for_( it, _hardLockQueries.begin(), _hardLockQueries.end() ) { locked += *it; } MIL << "HardLockQueries match " << locked.size() << " Solvables." << endl; for_( it, begin(), end() ) { resstatus::UserLockQueryManip::setLock( it->status(), locked.contains( *it ) ); } } bool getHardLockQueries( HardLockQueries & activeLocks_r ) { activeLocks_r = _hardLockQueries; // current queries // Now diff to the pool collecting names only. // Thus added and removed locks are not necessarily // disjoint. Added locks win. typedef std::unordered_set IdentSet; IdentSet addedLocks; IdentSet removedLocks; for_( it, begin(), end() ) { switch ( resstatus::UserLockQueryManip::diffLock( it->status() ) ) { case 0: // unchanged break; case 1: addedLocks.insert( it->satSolvable().ident() ); break; case -1: removedLocks.insert( it->satSolvable().ident() ); break; } } // now the bad part - adjust the queries bool setChanged = false; for_( it, removedLocks.begin(), removedLocks.end() ) { if ( addedLocks.find( *it ) != addedLocks.end() ) continue; // Added locks win if ( hardLockQueriesRemove( activeLocks_r, *it ) && ! setChanged ) setChanged = true; } for_( it, addedLocks.begin(), addedLocks.end() ) { if ( hardLockQueriesAdd( activeLocks_r, *it ) && ! setChanged ) setChanged = true; } return setChanged; } public: const ContainerT & store() const { checkSerial(); if ( _storeDirty ) { sat::Pool pool( satpool() ); bool addedItems = false; bool reusedIDs = _watcherIDs.remember( pool.serialIDs() ); std::list addedProducts; _store.resize( pool.capacity() ); if ( pool.capacity() ) { for ( sat::detail::SolvableIdType i = pool.capacity()-1; i != 0; --i ) { sat::Solvable s( i ); PoolItem & pi( _store[i] ); if ( ! s && pi ) { // the PoolItem got invalidated (e.g unloaded repo) pi = PoolItem(); } else if ( reusedIDs || (s && ! pi) ) { // new PoolItem to add pi = PoolItem::makePoolItem( s ); // the only way to create a new one! // remember products for buddy processing (requires clean store) if ( s.isKind( ResKind::product ) ) addedProducts.push_back( pi ); if ( !addedItems ) addedItems = true; } } } _storeDirty = false; // Now, as the pool is adjusted, .... // .... we check for product buddies. if ( ! addedProducts.empty() ) { for_( it, addedProducts.begin(), addedProducts.end() ) { it->setBuddy( asKind(*it)->referencePackage() ); } } // .... we must reapply those query based hard locks. if ( addedItems ) { reapplyHardLocks(); } } return _store; } const Id2ItemT & id2item () const { checkSerial(); if ( _id2itemDirty ) { store(); _id2item = Id2ItemT( size() ); for_( it, begin(), end() ) { const sat::Solvable &s = (*it)->satSolvable(); sat::detail::IdType id = s.ident().id(); if ( s.isKind( ResKind::srcpackage ) ) id = -id; _id2item.insert( std::make_pair( id, *it ) ); } //INT << _id2item << endl; _id2itemDirty = false; } return _id2item; } /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// private: void checkSerial() const { if ( _watcher.remember( serial() ) ) invalidate(); satpool().prepare(); // always ajust dependencies. } void invalidate() const { _storeDirty = true; _id2itemDirty = true; _id2item.clear(); _poolProxy.reset(); } private: /** Watch sat pools serial number. */ SerialNumberWatcher _watcher; /** Watch sat pools Serial number of IDs - changes whenever resusePoolIDs==true - ResPool must also invalidate it's PoolItems! */ SerialNumberWatcher _watcherIDs; mutable ContainerT _store; mutable DefaultIntegral _storeDirty; mutable Id2ItemT _id2item; mutable DefaultIntegral _id2itemDirty; private: mutable shared_ptr _poolProxy; private: /** Set of queries that define hardlocks. */ HardLockQueries _hardLockQueries; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace pool /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOL_POOLIMPL_H libzypp-17.7.0/zypp/pool/PoolStats.cc000066400000000000000000000034771334444677500175450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/pool/PoolStats.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/pool/PoolStats.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace pool { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const PoolStats & obj ) { str << "ResObjects: " << obj._total; for( PoolStats::KindMap::const_iterator it = obj._perKind.begin(); it != obj._perKind.end(); ++it ) { str << endl << " " << it->first << ":\t" << it->second; } return str; } ///////////////////////////////////////////////////////////////// } // namespace pool /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/pool/PoolStats.h000066400000000000000000000055421334444677500174020ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/pool/PoolStats.h * */ #ifndef ZYPP_POOL_POOLSTATS_H #define ZYPP_POOL_POOLSTATS_H #include #include "zypp/base/Iterator.h" #include "zypp/base/Functional.h" #include "zypp/base/Counter.h" #include "zypp/ResObject.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace pool { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolStats // /** Functor counting ResObjects per Kind. * \see dumpPoolStats * \code * Total: 2830 * language: 81 * package: 2710 * product: 2 * selection: 36 * system: 1 * \endcode */ struct PoolStats : public std::unary_function { void operator()( ResObject::constPtr ptr ) { ++_total; ++_perKind[ptr->kind()]; } public: typedef std::map > KindMap; Counter _total; KindMap _perKind; }; /////////////////////////////////////////////////////////////////// /** \relates PoolStats Stream output */ std::ostream & operator<<( std::ostream & str, const PoolStats & obj ); ///////////////////////////////////////////////////////////////// } // namespace pool /////////////////////////////////////////////////////////////////// /** \relates pool::PoolStats Convenience to count and print out the * number of ResObjects per Kind in a container. * Fits container of ResObject::Ptr or PoolItem. */ template std::ostream & dumpPoolStats( std::ostream & str, TIterator begin_r, TIterator end_r ) { pool::PoolStats stats; std::for_each( begin_r, end_r, functor::functorRef(stats) ); return str << stats; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOL_POOLSTATS_H libzypp-17.7.0/zypp/pool/PoolTraits.h000066400000000000000000000071141334444677500175470ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/pool/PoolTraits.h * */ #ifndef ZYPP_POOL_POOLTRAITS_H #define ZYPP_POOL_POOLTRAITS_H #include #include #include #include #include "zypp/base/Iterator.h" #include "zypp/base/Hash.h" #include "zypp/PoolItem.h" #include "zypp/pool/ByIdent.h" #include "zypp/sat/Pool.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class PoolQuery; /////////////////////////////////////////////////////////////////// namespace pool { ///////////////////////////////////////////////////////////////// class PoolImpl; /** Pool internal filter skiping invalid/unwanted PoolItems. */ struct ByPoolItem { bool operator()( const PoolItem & pi ) const { return bool(pi); } }; /** In CXX0X std::_Select2nd does no longer derive from std::unary_function */ template struct P_Select2nd : public std::unary_function { typename TPair::second_type& operator()(TPair& __x) const { return __x.second; } const typename TPair::second_type& operator()(const TPair& __x) const { return __x.second; } }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolTraits // /** */ struct PoolTraits { public: typedef sat::detail::SolvableIdType SolvableIdType; /** pure items */ typedef std::vector ItemContainerT; typedef ItemContainerT::const_iterator item_iterator; typedef filter_iterator const_iterator; typedef ItemContainerT::size_type size_type; /** ident index */ typedef std::unordered_multimap Id2ItemT; typedef P_Select2nd Id2ItemValueSelector; typedef transform_iterator byIdent_iterator; /** list of known Repositories */ typedef sat::Pool::RepositoryIterator repository_iterator; /** hard locks from etc/zypp/locks */ typedef std::list HardLockQueries; typedef HardLockQueries::const_iterator hardLockQueries_iterator; typedef PoolImpl Impl; typedef shared_ptr Impl_Ptr; typedef shared_ptr Impl_constPtr; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace pool /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_POOL_POOLTRAITS_H libzypp-17.7.0/zypp/repo/000077500000000000000000000000001334444677500152675ustar00rootroot00000000000000libzypp-17.7.0/zypp/repo/Applydeltarpm.cc000066400000000000000000000140501334444677500204140ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/source/Applydeltarpm.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/Regex.h" #include "zypp/repo/Applydeltarpm.h" #include "zypp/ExternalProgram.h" #include "zypp/AutoDispose.h" #include "zypp/PathInfo.h" #include "zypp/TriBool.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace applydeltarpm { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// const Pathname applydeltarpm_prog( "/usr/bin/applydeltarpm" ); const str::regex applydeltarpm_tick ( "([0-9]+) percent finished" ); /****************************************************************** ** ** FUNCTION NAME : applydeltarpm ** FUNCTION TYPE : bool */ bool applydeltarpm( const char *const argv_r[], const Progress & report_r = Progress() ) { ExternalProgram prog( argv_r, ExternalProgram::Stderr_To_Stdout ); str::smatch what; for ( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() ) { if ( report_r && str::regex_match( line, what, applydeltarpm_tick ) ) { report_r( str::strtonum( what[1] ) ); } else DBG << "Applydeltarpm : " << line; } return( prog.close() == 0 ); } ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : haveApplydeltarpm ** FUNCTION TYPE : bool */ bool haveApplydeltarpm() { // To track changes in availability of applydeltarpm. static TriBool _last = indeterminate; PathInfo prog( applydeltarpm_prog ); bool have = prog.isX(); if ( _last == have ) ; // TriBool! 'else' is not '_last != have' else { // _last is 'indeterminate' or '!have' if ( (_last = have) ) MIL << "Found executable " << prog << endl; else WAR << "No executable " << prog << endl; } return _last; } /****************************************************************** ** ** FUNCTION NAME : check ** FUNCTION TYPE : bool */ bool check( const std::string & sequenceinfo_r, bool quick_r ) { if ( ! haveApplydeltarpm() ) return false; const char *const argv[] = { "/usr/bin/applydeltarpm", ( quick_r ? "-C" : "-c" ), "-s", sequenceinfo_r.c_str(), NULL }; return( applydeltarpm( argv ) ); } /****************************************************************** ** ** FUNCTION NAME : check ** FUNCTION TYPE : bool */ bool check( const Pathname & delta_r, bool quick_r ) { if ( ! haveApplydeltarpm() ) return false; const char *const argv[] = { "/usr/bin/applydeltarpm", ( quick_r ? "-C" : "-c" ), delta_r.asString().c_str(), NULL }; return( applydeltarpm( argv ) ); } /****************************************************************** ** ** FUNCTION NAME : provide ** FUNCTION TYPE : bool */ bool provide( const Pathname & delta_r, const Pathname & new_r, const Progress & report_r ) { // cleanup on error AutoDispose guard( new_r, filesystem::unlink ); if ( ! haveApplydeltarpm() ) return false; const char *const argv[] = { "/usr/bin/applydeltarpm", "-p", "-p", // twice to get percent output one per line delta_r.asString().c_str(), new_r.asString().c_str(), NULL }; if ( ! applydeltarpm( argv, report_r ) ) return false; guard.resetDispose(); // no cleanup on success return true; } /****************************************************************** ** ** FUNCTION NAME : provide ** FUNCTION TYPE : bool */ bool provide( const Pathname & old_r, const Pathname & delta_r, const Pathname & new_r, const Progress & report_r ) { // cleanup on error AutoDispose guard( new_r, filesystem::unlink ); if ( ! haveApplydeltarpm() ) return false; const char *const argv[] = { "/usr/bin/applydeltarpm", "-p", "-p", // twice to get percent output one per line "-r", old_r.asString().c_str(), delta_r.asString().c_str(), new_r.asString().c_str(), NULL }; if ( ! applydeltarpm( argv, report_r ) ) return false; guard.resetDispose(); // no cleanup on success return true; } ///////////////////////////////////////////////////////////////// } // namespace applydeltarpm /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/Applydeltarpm.h000066400000000000000000000061111334444677500202550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/source/Applydeltarpm.h * */ #ifndef ZYPP_SOURCE_APPLYDELTARPM_H #define ZYPP_SOURCE_APPLYDELTARPM_H #include #include #include "zypp/base/Function.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /** Namespace wrapping invocations of /usr/bin/applydeltarpm. */ /////////////////////////////////////////////////////////////////// namespace applydeltarpm { ///////////////////////////////////////////////////////////////// /** Test whether an execuatble applydeltarpm program is available. */ bool haveApplydeltarpm(); /** \name Check if reconstruction of rpm is possible. * \see man applydeltarpm */ //@{ /** Check via sequence info. * \see applydeltarpm [-c|-C] -s sequence */ bool check( const std::string & sequenceinfo_r, bool quick_r = false ); /** Check via deltarpm. * \see applydeltarpm [-c|-C] deltarpm */ bool check( const Pathname & delta_r, bool quick_r = false ); /** Quick via check sequence info.*/ inline bool quickcheck( const std::string & sequenceinfo_r ) { return check( sequenceinfo_r, true ); } /** Quick check via deltarpm.*/ inline bool quickcheck( const Pathname & delta_r ) { return check( delta_r, true ); } //@} /** \name Re-create a new rpm from binary delta. * \see man applydeltarpm */ //@{ /** progress reporting */ typedef function Progress; /** Apply a binary delta to on-disk data to re-create a new rpm. * \see applydeltarpm deltarpm newrpm */ bool provide( const Pathname & delta_r, const Pathname & new_r, const Progress & report_r = Progress() ); /** Apply a binary delta to an old rpm to re-create a new rpm. * \see applydeltarpm -r oldrpm deltarpm newrpm */ bool provide( const Pathname & old_r, const Pathname & delta_r, const Pathname & new_r, const Progress & report_r = Progress() ); //@} ///////////////////////////////////////////////////////////////// } // namespace applydeltarpm /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SOURCE_APPLYDELTARPM_H libzypp-17.7.0/zypp/repo/DeltaCandidates.cc000066400000000000000000000075101334444677500206120ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ extern "C" { #include } #include #include "zypp/base/Logger.h" #include "zypp/Repository.h" #include "zypp/repo/DeltaCandidates.h" #include "zypp/sat/Pool.h" using std::endl; using namespace zypp::packagedelta; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /** DeltaCandidates implementation. */ struct DeltaCandidates::Impl { public: Impl() {} Impl( const std::list & repos, const std::string & pkgname = "" ) : repos(repos), pkgname(pkgname) {} std::list repos; std::string pkgname; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /** \relates DeltaCandidates::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const DeltaCandidates::Impl & obj ) { return str << "DeltaCandidates::Impl"; } /////////////////////////////////////////////////////////////////// // // class DeltaCandidates // /////////////////////////////////////////////////////////////////// DeltaCandidates::DeltaCandidates() : _pimpl( new Impl ) {} DeltaCandidates::DeltaCandidates(const std::list & repos, const std::string & pkgname) : _pimpl( new Impl(repos, pkgname) ) {} DeltaCandidates::~DeltaCandidates() {} std::list DeltaCandidates::deltaRpms(const Package::constPtr & package) const { std::list candidates; DBG << "package: " << package << endl; for_( rit, _pimpl->repos.begin(), _pimpl->repos.end() ) { sat::LookupRepoAttr q( sat::SolvAttr::repositoryDeltaInfo, *rit ); for_( it, q.begin(), q.end() ) { if ( _pimpl->pkgname.empty() || it.subFind( sat::SolvAttr(DELTA_PACKAGE_NAME) ).asString() == _pimpl->pkgname ) { DeltaRpm delta( it ); //DBG << "checking delta: " << delta << endl; if ( ! package || ( package->name() == delta.name() && package->edition() == delta.edition() && package->arch() == delta.arch() ) ) { DBG << "got delta candidate: " << delta << endl; candidates.push_back( delta ); } } } } return candidates; } std::ostream & operator<<( std::ostream & str, const DeltaCandidates & obj ) { return str << *obj._pimpl; } ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/DeltaCandidates.h000066400000000000000000000062631334444677500204600ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_DELTACANDIDATES_H #define ZYPP_REPO_DELTACANDIDATES_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/repo/PackageDelta.h" #include "zypp/Repository.h" #include "zypp/Package.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /** * \short Candidate delta and patches for a package * * Basically a container that given N repositories, * gets all patches and deltas from them for a given * package. */ class DeltaCandidates { friend std::ostream & operator<<( std::ostream & str, const DeltaCandidates & obj ); public: /** Implementation */ class Impl; public: DeltaCandidates(); /** * \short Creates a candidate calculator * \param repos Set of repositories providing patch and delta packages */ DeltaCandidates( const std::list & repos, const std::string & pkgname = "" ); /** Dtor */ ~DeltaCandidates(); std::list deltaRpms(const Package::constPtr & package) const; private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates DeltaCandidates Stream output */ std::ostream & operator<<( std::ostream & str, const DeltaCandidates & obj ); /////////////////////////////////////////////////////////////////// /** \relates DeltaCandidates Convenient construction. * \todo templated ctor */ template inline DeltaCandidates makeDeltaCandidates( RepoIter begin_r, RepoIter end_r ) { return DeltaCandidates( std::list( begin_r, end_r ) ); } /** \relates DeltaCandidates Convenient construction. * \todo templated ctor */ template inline DeltaCandidates makeDeltaCandidates( const RepoContainer & cont_r ) { return makeDeltaCandidates( cont_r.begin(), cont_r.end() ); } ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_REPO_DELTACANDIDATES_H libzypp-17.7.0/zypp/repo/Downloader.cc000066400000000000000000000066161334444677500177050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include "zypp/base/String.h" #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "Downloader.h" #include "zypp/KeyContext.h" #include "zypp/ZYppCallbacks.h" using namespace std; namespace zypp { namespace repo { Downloader::Downloader() { } Downloader::Downloader(const RepoInfo & repoinfo) : _repoinfo(repoinfo) { } Downloader::~Downloader() { } RepoStatus Downloader::status( MediaSetAccess &media ) { WAR << "Non implemented" << endl; return RepoStatus(); } void Downloader::download( MediaSetAccess &media, const Pathname &dest_dir, const ProgressData::ReceiverFnc & progress ) { WAR << "Non implemented" << endl; } void Downloader::defaultDownloadMasterIndex( MediaSetAccess & media_r, const Pathname & destdir_r, const Pathname & masterIndex_r ) { Pathname sigpath = masterIndex_r.extend( ".asc" ); Pathname keypath = masterIndex_r.extend( ".key" ); // always download them, even if repoGpgCheck is disabled enqueue( OnMediaLocation( sigpath, 1 ).setOptional( true ).setDownloadSize( ByteCount( 20, ByteCount::MB ) ) ); enqueue( OnMediaLocation( keypath, 1 ).setOptional( true ).setDownloadSize( ByteCount( 20, ByteCount::MB ) ) ); start( destdir_r, media_r ); reset(); FileChecker checker; // set to sigchecker if appropriate, else Null. SignatureFileChecker sigchecker; bool isSigned = PathInfo(destdir_r / sigpath).isExist(); if ( repoInfo().repoGpgCheck() ) { if ( isSigned || repoInfo().repoGpgCheckIsMandatory() ) { // only add the signature if it exists if ( isSigned ) sigchecker = SignatureFileChecker( destdir_r / sigpath ); KeyContext context; context.setRepoInfo( repoInfo() ); // only add the key if it exists if ( PathInfo(destdir_r / keypath).isExist() ) sigchecker.addPublicKey( destdir_r / keypath, context ); else // set the checker context even if the key is not known (unsigned repo, key // file missing; bnc #495977) sigchecker.setKeyContext( context ); checker = FileChecker( ref(sigchecker) ); // ref() to the local sigchecker is important as we want back fileValidated! } else { WAR << "Accept unsigned repository because repoGpgCheck is not mandatory for " << repoInfo().alias() << endl; } } else { WAR << "Signature checking disabled in config of repository " << repoInfo().alias() << endl; } enqueue( OnMediaLocation( masterIndex_r, 1 ).setDownloadSize( ByteCount( 20, ByteCount::MB ) ), checker ? checker : FileChecker(NullFileChecker()) ); start( destdir_r, media_r ); reset(); // Accepted! _repoinfo.setMetadataPath( destdir_r ); if ( isSigned ) _repoinfo.setValidRepoSignature( sigchecker.fileValidated() ); else _repoinfo.setValidRepoSignature( indeterminate ); } }// ns repo } // ns zypp libzypp-17.7.0/zypp/repo/Downloader.h000066400000000000000000000043311334444677500175370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_DOWNLOADER #define ZYPP_REPO_DOWNLOADER #include "zypp/Url.h" #include "zypp/Pathname.h" #include "zypp/ProgressData.h" #include "zypp/RepoStatus.h" #include "zypp/MediaSetAccess.h" #include "zypp/Fetcher.h" #include "zypp/RepoInfo.h" namespace zypp { namespace repo { /** * \short Downloader base class * * a Downloader encapsulates all the knowledge of * which files have to be downloaded to the local disk. * */ class Downloader : public Fetcher { public: /** * \short Constructor */ Downloader(); /** C-tor associating the downloader with a RepoInfo */ Downloader(const RepoInfo & info); virtual ~Downloader(); /** * \short Download metadata to a local directory * * \param media Media access to the repository url * \param dest_dir Local destination directory * \param progress progress receiver */ virtual void download( MediaSetAccess &media, const Pathname &dest_dir, const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc() ); /** * \short Status of the remote repository */ virtual RepoStatus status( MediaSetAccess &media ); const RepoInfo & repoInfo() const { return _repoinfo; } protected: /** Common workflow downloading a (signed) master index file */ void defaultDownloadMasterIndex( MediaSetAccess & media_r, const Pathname & destdir_r, const Pathname & masterIndex_r ); private: RepoInfo _repoinfo; }; } // ns repo } // ns zypp #endif libzypp-17.7.0/zypp/repo/MediaInfoDownloader.cc000066400000000000000000000025621334444677500214550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include "zypp/base/String.h" #include "zypp/base/Logger.h" #include "zypp/base/Function.h" #include "MediaInfoDownloader.h" #include "zypp/base/UserRequestException.h" using namespace std; namespace zypp { namespace repo { void downloadMediaInfo( const Pathname &dest_dir, MediaSetAccess &media, const ProgressData::ReceiverFnc & progressrcv ) { Fetcher fetcher; //hardcode the max filesize to 20MB, to prevent unlimited data downloads but this limit will //never be reached in a sane setup fetcher.enqueue( OnMediaLocation("/media.1/media").setOptional(true).setDownloadSize( ByteCount(20, ByteCount::MB ) ) ); fetcher.start( dest_dir, media, progressrcv ); // ready, go! fetcher.reset(); } }// ns repo } // ns zypp libzypp-17.7.0/zypp/repo/MediaInfoDownloader.h000066400000000000000000000026011334444677500213110ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_MEDIAINFO_DOWNLOADER #define ZYPP_REPO_MEDIAINFO_DOWNLOADER #include "zypp/Url.h" #include "zypp/Pathname.h" #include "zypp/Fetcher.h" #include "zypp/OnMediaLocation.h" #include "zypp/MediaSetAccess.h" #include "zypp/ProgressData.h" namespace zypp { namespace repo { /** * \short Downloads the media info (/media.1) to a local directory * \param dest_dir Destination directory * \param media \ref MediaSetAccess object to some media * \param progress Progress callback function * * \throws Exception on error */ void downloadMediaInfo( const Pathname &dest_dir, MediaSetAccess &media, const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc() ); } // ns repo } // ns zypp #endif libzypp-17.7.0/zypp/repo/PackageDelta.cc000066400000000000000000000102721334444677500201050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/source/PackageDelta.cc * */ #include extern "C" { #include } #include "zypp/base/LogTools.h" #include "zypp/repo/PackageDelta.h" #include "zypp/sat/Pool.h" using std::endl; using std::string; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace packagedelta { ///////////////////////////////////////////////////////////////// DeltaRpm::DeltaRpm( sat::LookupAttr::iterator deltaInfo_r ) { if ( deltaInfo_r.inSolvAttr() != sat::SolvAttr::repositoryDeltaInfo ) { INT << "Illegal non-repositoryDeltaInfo iterator: " << deltaInfo_r << endl; return; } _repo = deltaInfo_r.inRepo(); IdString locdir; IdString locname; IdString locevr; IdString locsuffix; IdString seqname; IdString seqevr; std::string seqnum; for_( it, deltaInfo_r.subBegin(), deltaInfo_r.subEnd() ) { switch ( it.inSolvAttr().id() ) { case DELTA_PACKAGE_NAME: _name = it.asString(); break; case DELTA_PACKAGE_EVR: _edition = Edition( it.idStr() ); break; case DELTA_PACKAGE_ARCH: _arch = Arch( it.idStr() ); break; case DELTA_LOCATION_DIR: locdir = it.idStr(); break; case DELTA_LOCATION_NAME: locname = it.idStr(); break; case DELTA_LOCATION_EVR: locevr = it.idStr(); break; case DELTA_LOCATION_SUFFIX: locsuffix = it.idStr(); break; case DELTA_DOWNLOADSIZE: _location.setDownloadSize( ByteCount( it.asUnsignedLL() ) ); break; case DELTA_CHECKSUM: _location.setChecksum( it.asCheckSum() ); break; case DELTA_BASE_EVR: _baseversion.setEdition( Edition( it.idStr() ) ); break; case DELTA_SEQ_NAME: seqname = it.idStr(); break; case DELTA_SEQ_EVR: seqevr = it.idStr(); break; case DELTA_SEQ_NUM: seqnum = it.asString(); break; default: WAR << "Igore unknown attribute: " << it << endl; } } _location.setLocation( str::form( "%s/%s-%s.%s", locdir.c_str(), locname.c_str(), locevr.c_str(), locsuffix.c_str() ) ); _baseversion.setSequenceinfo( str::form( "%s-%s-%s", seqname.c_str(), seqevr.c_str(), seqnum.c_str() ) ); } std::ostream & operator<<( std::ostream & str, const DeltaRpm & obj ) { return str << "DeltaRpm[" << obj.name() << "-" << obj.edition() << "." << obj.arch() << "](" << obj.location() << '|' << obj.baseversion().edition() << ',' << obj.baseversion().sequenceinfo() << ')'; } ///////////////////////////////////////////////////////////////// } // namespace packagedelta /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/PackageDelta.h000066400000000000000000000073751334444677500177610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/source/PackageDelta.h * */ #ifndef ZYPP_SOURCE_PACKAGEDELTA_H #define ZYPP_SOURCE_PACKAGEDELTA_H #include #include #include "zypp/OnMediaLocation.h" #include "zypp/Edition.h" #include "zypp/Arch.h" #include "zypp/Date.h" #include "zypp/sat/detail/PoolMember.h" #include "zypp/Repository.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace packagedelta { ///////////////////////////////////////////////////////////////// /** \todo cheap copy! (switch to RWCOW) */ class DeltaRpm { public: class BaseVersion { public: BaseVersion() {} public: const Edition & edition() const { return _edition; } const std::string & sequenceinfo() const { return _sequenceinfo; } public: BaseVersion & setEdition( const Edition & val_r ) { _edition = val_r; return *this; } BaseVersion & setSequenceinfo( const std::string & val_r ) { _sequenceinfo = val_r; return *this; } private: Edition _edition; std::string _sequenceinfo; }; public: DeltaRpm() {} DeltaRpm( sat::LookupAttr::iterator deltaInfo_r ); public: /** \name Target package ident. */ //@{ const std::string & name() const { return _name; } const Edition & edition() const { return _edition; } const Arch & arch() const { return _arch; } //@} const OnMediaLocation & location() const { return _location; } const BaseVersion & baseversion() const { return _baseversion; } const Repository & repository() const { return _repo; } public: DeltaRpm & setName( const std::string & val_r ) { _name = val_r; return *this; } DeltaRpm & setEdition( const Edition & val_r ) { _edition = val_r; return *this; } DeltaRpm & setArch( const Arch & val_r ) { _arch = val_r; return *this; } DeltaRpm & setLocation( const OnMediaLocation & val_r ) { _location = val_r; return *this; } DeltaRpm & setBaseversion( const BaseVersion & val_r ) { _baseversion = val_r; return *this; } private: std::string _name; Edition _edition; Arch _arch; OnMediaLocation _location; BaseVersion _baseversion; Repository _repo; }; /** \relates DeltaRpm Stream output. */ std::ostream & operator<<( std::ostream & str, const DeltaRpm & obj ); /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace packagedelta /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SOURCE_PACKAGEDELTA_H libzypp-17.7.0/zypp/repo/PackageProvider.cc000066400000000000000000000635361334444677500206610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/PackageProvider.cc * */ #include #include #include #include "zypp/repo/PackageDelta.h" #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/UserRequestException.h" #include "zypp/base/NonCopyable.h" #include "zypp/repo/PackageProvider.h" #include "zypp/repo/Applydeltarpm.h" #include "zypp/repo/PackageDelta.h" #include "zypp/TmpPath.h" #include "zypp/ZConfig.h" #include "zypp/RepoInfo.h" #include "zypp/RepoManager.h" #include "zypp/SrcPackage.h" #include "zypp/ZYppFactory.h" #include "zypp/Target.h" #include "zypp/target/rpm/RpmDb.h" #include "zypp/FileChecker.h" #include "zypp/target/rpm/RpmHeader.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace repo { /////////////////////////////////////////////////////////////////// /// \class RpmSigCheckException /// \brief Exception thrown by \ref PackageProviderImpl::rpmSigFileChecker /////////////////////////////////////////////////////////////////// class RpmSigCheckException : public FileCheckException { public: RpmSigCheckException( repo::DownloadResolvableReport::Action action_r, std::string msg_r = "RpmSigCheckException" ) : FileCheckException( std::move(msg_r) ) , _action( std::move(action_r) ) {} /** Users final decision how to proceed */ const repo::DownloadResolvableReport::Action & action() const { return _action; } private: repo::DownloadResolvableReport::Action _action; }; /////////////////////////////////////////////////////////////////// // class PackageProviderPolicy /////////////////////////////////////////////////////////////////// bool PackageProviderPolicy::queryInstalled( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) const { if ( _queryInstalledCB ) return _queryInstalledCB( name_r, ed_r, arch_r ); return false; } /////////////////////////////////////////////////////////////////// /// \class PackageProvider::Impl /// \brief PackageProvider implementation interface. /////////////////////////////////////////////////////////////////// struct PackageProvider::Impl : private base::NonCopyable { Impl() {} virtual ~Impl() {} /** Provide the package. * The basic workflow. * \throws Exception. */ virtual ManagedFile providePackage() const = 0; /** Provide the package if it is cached. */ virtual ManagedFile providePackageFromCache() const = 0; /** Whether the package is cached. */ virtual bool isCached() const = 0; }; /////////////////////////////////////////////////////////////////// /// \class PackageProviderImpl /// \brief PackageProvider implementation for \c Package and \c SrcPackage /////////////////////////////////////////////////////////////////// template class PackageProviderImpl : public PackageProvider::Impl { typedef typename TPackage::constPtr TPackagePtr; // Package or SrcPackage typedef callback::UserData UserData; public: /** Ctor taking the Package to provide. */ PackageProviderImpl( RepoMediaAccess & access_r, const TPackagePtr & package_r, const PackageProviderPolicy & policy_r ) : _policy( policy_r ) , _package( package_r ) , _access( access_r ) , _retry(false) {} virtual ~PackageProviderImpl() {} public: /** Provide the package. * The basic workflow. * \throws Exception. */ virtual ManagedFile providePackage() const; /** Provide the package if it is cached. */ virtual ManagedFile providePackageFromCache() const { ManagedFile ret( doProvidePackageFromCache() ); if ( ! ( ret->empty() || _package->repoInfo().keepPackages() ) ) ret.setDispose( filesystem::unlink ); return ret; } /** Whether the package is cached. */ virtual bool isCached() const { return ! doProvidePackageFromCache()->empty(); } protected: typedef PackageProviderImpl Base; typedef callback::SendReport Report; /** Lookup the final rpm in cache. * * A cache hit will return a non empty ManagedFile and an empty one on cache miss. * * \note File disposal depending on the repos keepPackages setting * are not set here, but in \ref providePackage or \ref providePackageFromCache. */ ManagedFile doProvidePackageFromCache() const { return ManagedFile( _package->cachedLocation() ); } /** Actually provide the final rpm. * Report start/problem/finish and retry loop are hadled by \ref providePackage. * Here you trigger just progress and delta/plugin callbacks as needed. * * Proxy method for progressPackageDownload is provided here. * \code * ProvideFilePolicy policy; * policy.progressCB( bind( &Base::progressPackageDownload, this, _1 ) ); * return _access.provideFile( _package->repoInfo(), loc, policy ); * \endcode * * \note The provided default implementation retrieves the packages default * location. */ virtual ManagedFile doProvidePackage() const { ManagedFile ret; OnMediaLocation loc = _package->location(); ProvideFilePolicy policy; policy.progressCB( bind( &Base::progressPackageDownload, this, _1 ) ); policy.fileChecker( bind( &Base::rpmSigFileChecker, this, _1 ) ); return _access.provideFile( _package->repoInfo(), loc, policy ); } protected: /** Access to the DownloadResolvableReport */ Report & report() const { return *_report; } /** Redirect ProvideFilePolicy package download progress to this. */ bool progressPackageDownload( int value ) const { return report()->progress( value, _package ); } /** \name Validate a rpm packages signature. * * This is the \ref FileChecker passed down to the \ref Fetcher to validate * a provided rpm package. This builtin checker includes the workflow * communicating with the user in case of a problem with the package * signature. * * \throws RpmSigCheckException if the package is not accepted, propagating * the users decision how to proceed (\ref DownloadResolvableReport::Action). * * \note This check is also needed, if the the rpm is built locally by using * delta rpms! \ref \see RpmPackageProvider */ //@{ void rpmSigFileChecker( const Pathname & file_r ) const { RepoInfo info = _package->repoInfo(); if ( info.pkgGpgCheck() ) { UserData userData( "pkgGpgCheck" ); ResObject::constPtr roptr( _package ); // gcc6 needs it more explcit. Has problem deducing userData.set( "ResObject", roptr ); // a type for '_package->asKind()'... /*legacy:*/userData.set( "Package", roptr->asKind() ); userData.set( "Localpath", file_r ); RpmDb::CheckPackageResult res = RpmDb::CHK_NOKEY; while ( res == RpmDb::CHK_NOKEY ) { res = packageSigCheck( file_r, info.pkgGpgCheckIsMandatory(), userData ); // publish the checkresult, even if it is OK. Apps may want to report something... report()->pkgGpgCheck( userData ); if ( res == RpmDb::CHK_NOKEY ) { // if the check fails because we don't know the key // we try to resolv it with gpgkey urls from the // repository, if available target::rpm::RpmHeader::constPtr hr = target::rpm::RpmHeader::readPackage( file_r ); if ( !hr ) { // we did not find any information about the key in the header // this should never happen WAR << "Unable to read package header from " << hr << endl; break; } std::string keyID = hr->signatureKeyID(); if ( keyID.length() > 0 ) { if ( ! getZYpp()->keyRing()->provideAndImportKeyFromRepositoryWorkflow( keyID, info ) ) break; } else { // we did not find any information about the key in the header // this should never happen WAR << "packageSigCheck returned without setting providing missing key information" << endl; break; } } } if ( res != RpmDb::CHK_OK ) { if ( userData.hasvalue( "Action" ) ) // pkgGpgCheck report provided an user error action { resolveSignatureErrorAction( userData.get( "Action", repo::DownloadResolvableReport::ABORT ) ); } else if ( userData.haskey( "Action" ) ) // pkgGpgCheck requests the default problem report (wo. details) { defaultReportSignatureError( res ); } else // no advice from user => usedefaults { switch ( res ) { case RpmDb::CHK_OK: // Signature is OK break; case RpmDb::CHK_NOKEY: // Public key is unavailable case RpmDb::CHK_NOTFOUND: // Signature is unknown type case RpmDb::CHK_FAIL: // Signature does not verify case RpmDb::CHK_NOTTRUSTED: // Signature is OK, but key is not trusted case RpmDb::CHK_ERROR: // File does not exist or can't be opened case RpmDb::CHK_NOSIG: // File is unsigned default: // report problem (w. details), throw if to abort, else retry/ignore defaultReportSignatureError( res, str::Str() << userData.get( "CheckPackageDetail" ) ); break; } } } } } typedef target::rpm::RpmDb RpmDb; /** Actual rpm package signature check. */ RpmDb::CheckPackageResult packageSigCheck( const Pathname & path_r, bool isMandatory_r, UserData & userData ) const { if ( !_target ) _target = getZYpp()->getTarget(); RpmDb::CheckPackageResult ret = RpmDb::CHK_ERROR; RpmDb::CheckPackageDetail detail; if ( _target ) { ret = _target->rpmDb().checkPackageSignature( path_r, detail ); if ( ret == RpmDb::CHK_NOSIG && !isMandatory_r ) { WAR << "Relax CHK_NOSIG: Config says unsigned packages are OK" << endl; ret = RpmDb::CHK_OK; } } else detail.push_back( RpmDb::CheckPackageDetail::value_type( ret, "OOps. Target is not initialized!" ) ); userData.set( "CheckPackageResult", ret ); userData.set( "CheckPackageDetail", std::move(detail) ); return ret; } /** React on signature verification error user action. * \note: IGNORE == accept insecure file (no SkipRequestException!) */ void resolveSignatureErrorAction( repo::DownloadResolvableReport::Action action_r ) const { switch ( action_r ) { case repo::DownloadResolvableReport::IGNORE: WAR << _package->asUserString() << ": " << "User requested to accept insecure file" << endl; break; default: case repo::DownloadResolvableReport::RETRY: case repo::DownloadResolvableReport::ABORT: ZYPP_THROW(RpmSigCheckException(action_r,"Signature verification failed")); break; } } /** Default signature verification error handling. */ void defaultReportSignatureError( RpmDb::CheckPackageResult ret, const std::string & detail_r = std::string() ) const { str::Str msg; msg << _package->asUserString() << ": " << _("Signature verification failed") << " " << ret; if ( ! detail_r.empty() ) msg << "\n" << detail_r; resolveSignatureErrorAction( report()->problem( _package, repo::DownloadResolvableReport::INVALID, msg.str() ) ); } //@} protected: PackageProviderPolicy _policy; TPackagePtr _package; RepoMediaAccess & _access; private: typedef shared_ptr ScopedGuard; ScopedGuard newReport() const { _report.reset( new Report ); // Use a custom deleter calling _report.reset() when guard goes out of // scope (cast required as reset is overloaded). We want report to end // when leaving providePackage and not wait for *this going out of scope. return shared_ptr( static_cast(0), bind( mem_fun_ref( static_cast::*)()>(&shared_ptr::reset) ), ref(_report) ) ); } mutable bool _retry; mutable shared_ptr _report; mutable Target_Ptr _target; }; /////////////////////////////////////////////////////////////////// template ManagedFile PackageProviderImpl::providePackage() const { ScopedGuard guardReport( newReport() ); // check for cache hit: ManagedFile ret( providePackageFromCache() ); if ( ! ret->empty() ) { MIL << "provided Package from cache " << _package << " at " << ret << endl; report()->infoInCache( _package, ret ); return ret; // <-- cache hit } // HERE: cache misss, check toplevel cache or do download: RepoInfo info = _package->repoInfo(); // Check toplevel cache { RepoManagerOptions topCache; if ( info.packagesPath().dirname() != topCache.repoPackagesCachePath ) // not using toplevel cache { const OnMediaLocation & loc( _package->location() ); if ( ! loc.checksum().empty() ) // no cache hit without checksum { PathInfo pi( topCache.repoPackagesCachePath / info.packagesPath().basename() / info.path() / loc.filename() ); if ( pi.isExist() && loc.checksum() == CheckSum( loc.checksum().type(), std::ifstream( pi.c_str() ) ) ) { report()->start( _package, pi.path().asFileUrl() ); const Pathname & dest( info.packagesPath() / info.path() / loc.filename() ); if ( filesystem::assert_dir( dest.dirname() ) == 0 && filesystem::hardlinkCopy( pi.path(), dest ) == 0 ) { ret = ManagedFile( dest ); if ( ! info.keepPackages() ) ret.setDispose( filesystem::unlink ); MIL << "provided Package from toplevel cache " << _package << " at " << ret << endl; report()->finish( _package, repo::DownloadResolvableReport::NO_ERROR, std::string() ); return ret; // <-- toplevel cache hit } } } } } // FIXME we only support the first url for now. if ( info.baseUrlsEmpty() ) ZYPP_THROW(Exception("No url in repository.")); MIL << "provide Package " << _package << endl; Url url = * info.baseUrlsBegin(); try { do { _retry = false; if ( ! ret->empty() ) { ret.setDispose( filesystem::unlink ); ret.reset(); } report()->start( _package, url ); try { ret = doProvidePackage(); } catch ( const UserRequestException & excpt ) { ERR << "Failed to provide Package " << _package << endl; if ( ! _retry ) ZYPP_RETHROW( excpt ); } catch ( const RpmSigCheckException & excpt ) { ERR << "Failed to provide Package " << _package << endl; if ( ! _retry ) { // Signature verification error was already reported by the // rpmSigFileChecker. Just handle the users action decision: switch ( excpt.action() ) { case repo::DownloadResolvableReport::RETRY: _retry = true; break; case repo::DownloadResolvableReport::IGNORE: ZYPP_THROW(SkipRequestException("User requested skip of corrupted file")); break; default: case repo::DownloadResolvableReport::ABORT: ZYPP_THROW(AbortRequestException("User requested to abort")); break; } } } catch ( const FileCheckException & excpt ) { ERR << "Failed to provide Package " << _package << endl; if ( ! _retry ) { const std::string & package_str = _package->asUserString(); // TranslatorExplanation %s = package being checked for integrity switch ( report()->problem( _package, repo::DownloadResolvableReport::INVALID, str::form(_("Package %s seems to be corrupted during transfer. Do you want to retry retrieval?"), package_str.c_str() ) ) ) { case repo::DownloadResolvableReport::RETRY: _retry = true; break; case repo::DownloadResolvableReport::IGNORE: ZYPP_THROW(SkipRequestException("User requested skip of corrupted file")); break; default: case repo::DownloadResolvableReport::ABORT: ZYPP_THROW(AbortRequestException("User requested to abort")); break; } } } catch ( const Exception & excpt ) { ERR << "Failed to provide Package " << _package << endl; if ( ! _retry ) { // Aything else gets reported const std::string & package_str = _package->asUserString(); // TranslatorExplanation %s = name of the package being processed. std::string detail_str( str::form(_("Failed to provide Package %s. Do you want to retry retrieval?"), package_str.c_str() ) ); detail_str += str::form( "\n\n%s", excpt.asUserHistory().c_str() ); switch ( report()->problem( _package, repo::DownloadResolvableReport::IO, detail_str.c_str() ) ) { case repo::DownloadResolvableReport::RETRY: _retry = true; break; case repo::DownloadResolvableReport::IGNORE: ZYPP_THROW(SkipRequestException("User requested skip of file", excpt)); break; default: case repo::DownloadResolvableReport::ABORT: ZYPP_THROW(AbortRequestException("User requested to abort", excpt)); break; } } } } while ( _retry ); } catch(...){ // bsc#1045735: Be sure no invalid files stay in the cache! if ( ! ret->empty() ) ret.setDispose( filesystem::unlink ); throw; } report()->finish( _package, repo::DownloadResolvableReport::NO_ERROR, std::string() ); MIL << "provided Package " << _package << " at " << ret << endl; return ret; } /////////////////////////////////////////////////////////////////// /// \class RpmPackageProvider /// \brief RPM PackageProvider implementation (with deltarpm processing). /////////////////////////////////////////////////////////////////// class RpmPackageProvider : public PackageProviderImpl { public: RpmPackageProvider( RepoMediaAccess & access_r, const Package::constPtr & package_r, const DeltaCandidates & deltas_r, const PackageProviderPolicy & policy_r ) : PackageProviderImpl( access_r, package_r, policy_r ) , _deltas( deltas_r ) {} protected: virtual ManagedFile doProvidePackage() const; private: typedef packagedelta::DeltaRpm DeltaRpm; ManagedFile tryDelta( const DeltaRpm & delta_r ) const; bool progressDeltaDownload( int value ) const { return report()->progressDeltaDownload( value ); } void progressDeltaApply( int value ) const { return report()->progressDeltaApply( value ); } bool queryInstalled( const Edition & ed_r = Edition() ) const { return _policy.queryInstalled( _package->name(), ed_r, _package->arch() ); } private: DeltaCandidates _deltas; }; /////////////////////////////////////////////////////////////////// ManagedFile RpmPackageProvider::doProvidePackage() const { // check whether to process patch/delta rpms // FIXME we only check the first url for now. if ( ZConfig::instance().download_use_deltarpm() && ( _package->repoInfo().url().schemeIsDownloading() || ZConfig::instance().download_use_deltarpm_always() ) ) { std::list deltaRpms; _deltas.deltaRpms( _package ).swap( deltaRpms ); if ( ! deltaRpms.empty() && queryInstalled() && applydeltarpm::haveApplydeltarpm() ) { for_( it, deltaRpms.begin(), deltaRpms.end()) { DBG << "tryDelta " << *it << endl; ManagedFile ret( tryDelta( *it ) ); if ( ! ret->empty() ) return ret; } } } // no patch/delta -> provide full package return Base::doProvidePackage(); } ManagedFile RpmPackageProvider::tryDelta( const DeltaRpm & delta_r ) const { if ( delta_r.baseversion().edition() != Edition::noedition && ! queryInstalled( delta_r.baseversion().edition() ) ) return ManagedFile(); if ( ! applydeltarpm::quickcheck( delta_r.baseversion().sequenceinfo() ) ) return ManagedFile(); report()->startDeltaDownload( delta_r.location().filename(), delta_r.location().downloadSize() ); ManagedFile delta; try { ProvideFilePolicy policy; policy.progressCB( bind( &RpmPackageProvider::progressDeltaDownload, this, _1 ) ); delta = _access.provideFile( delta_r.repository().info(), delta_r.location(), policy ); } catch ( const Exception & excpt ) { report()->problemDeltaDownload( excpt.asUserHistory() ); return ManagedFile(); } report()->finishDeltaDownload(); report()->startDeltaApply( delta ); if ( ! applydeltarpm::check( delta_r.baseversion().sequenceinfo() ) ) { report()->problemDeltaApply( _("applydeltarpm check failed.") ); return ManagedFile(); } // Build the package Pathname cachedest( _package->repoInfo().packagesPath() / _package->repoInfo().path() / _package->location().filename() ); Pathname builddest( cachedest.extend( ".drpm" ) ); if ( ! applydeltarpm::provide( delta, builddest, bind( &RpmPackageProvider::progressDeltaApply, this, _1 ) ) ) { report()->problemDeltaApply( _("applydeltarpm failed.") ); return ManagedFile(); } ManagedFile builddestCleanup( builddest, filesystem::unlink ); report()->finishDeltaApply(); // Check and move it into the cache // Here the rpm itself is ready. If the packages sigcheck fails, it // makes no sense to return a ManagedFile() and fallback to download the // full rpm. It won't be different. So let the exceptions escape... rpmSigFileChecker( builddest ); if ( filesystem::hardlinkCopy( builddest, cachedest ) != 0 ) ZYPP_THROW( Exception( str::Str() << "Can't hardlink/copy " << builddest << " to " << cachedest ) ); return ManagedFile( cachedest, filesystem::unlink ); } /////////////////////////////////////////////////////////////////// // class PackageProvider /////////////////////////////////////////////////////////////////// namespace factory { inline PackageProvider::Impl * make( RepoMediaAccess & access_r, const PoolItem & pi_r, const DeltaCandidates & deltas_r, const PackageProviderPolicy & policy_r ) { if ( pi_r.isKind() ) return new RpmPackageProvider( access_r, pi_r->asKind(), deltas_r, policy_r ); else if ( pi_r.isKind() ) return new PackageProviderImpl( access_r, pi_r->asKind(), policy_r ); else ZYPP_THROW( Exception( str::Str() << "Don't know how to cache non-package " << pi_r.asUserString() ) ); } inline PackageProvider::Impl * make( RepoMediaAccess & access_r, const PoolItem & pi_r, const PackageProviderPolicy & policy_r ) { if ( pi_r.isKind() ) return new PackageProviderImpl( access_r, pi_r->asKind(), policy_r ); else if ( pi_r.isKind() ) return new PackageProviderImpl( access_r, pi_r->asKind(), policy_r ); else ZYPP_THROW( Exception( str::Str() << "Don't know how to cache non-package " << pi_r.asUserString() ) ); } inline PackageProvider::Impl * make( RepoMediaAccess & access_r, const Package::constPtr & package_r, const DeltaCandidates & deltas_r, const PackageProviderPolicy & policy_r ) { return new RpmPackageProvider( access_r, package_r, deltas_r, policy_r ); } } // namespace factory /////////////////////////////////////////////////////////////////// PackageProvider::PackageProvider( RepoMediaAccess & access_r, const PoolItem & pi_r, const DeltaCandidates & deltas_r, const PackageProviderPolicy & policy_r ) : _pimpl( factory::make( access_r, pi_r, deltas_r, policy_r ) ) {} PackageProvider::PackageProvider( RepoMediaAccess & access_r, const PoolItem & pi_r, const PackageProviderPolicy & policy_r ) : _pimpl( factory::make( access_r, pi_r, policy_r ) ) {} /* legacy */ PackageProvider::PackageProvider( RepoMediaAccess & access_r, const Package::constPtr & package_r, const DeltaCandidates & deltas_r, const PackageProviderPolicy & policy_r ) : _pimpl( factory::make( access_r, package_r, deltas_r, policy_r ) ) {} PackageProvider::~PackageProvider() {} ManagedFile PackageProvider::providePackage() const { return _pimpl->providePackage(); } ManagedFile PackageProvider::providePackageFromCache() const { return _pimpl->providePackageFromCache(); } bool PackageProvider::isCached() const { return _pimpl->isCached(); } } // namespace repo /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/PackageProvider.h000066400000000000000000000100561334444677500205100ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/PackageProvider.h * */ #ifndef ZYPP_REPO_PACKAGEPROVIDER_H #define ZYPP_REPO_PACKAGEPROVIDER_H #include #include "zypp/ZYppCallbacks.h" #include "zypp/Package.h" #include "zypp/ManagedFile.h" #include "zypp/repo/DeltaCandidates.h" #include "zypp/repo/RepoProvideFile.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace repo { /////////////////////////////////////////////////////////////////// /// \class PackageProviderPolicy /// \brief Policies and options for \ref PackageProvider /////////////////////////////////////////////////////////////////// class PackageProviderPolicy { public: /** Get installed Editions callback signature. */ typedef function QueryInstalledCB; /** Set callback. */ PackageProviderPolicy & queryInstalledCB( QueryInstalledCB queryInstalledCB_r ) { _queryInstalledCB = queryInstalledCB_r; return *this; } /** Evaluate callback. */ bool queryInstalled( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) const; private: QueryInstalledCB _queryInstalledCB; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class PackageProvider /// \brief Provide a package from a Repo. /// /// Use available deltarpm if apropriate. /////////////////////////////////////////////////////////////////// class PackageProvider { public: /** Ctor taking the package to provide. * \throws Exception If pi_r refers to neither a \c Package nor a \c SrcPackage. */ PackageProvider( RepoMediaAccess & access, const PoolItem & pi_r, const PackageProviderPolicy & policy_r = PackageProviderPolicy() ); /** \overload Ctor taking additional hint to deltarpms (not used for SrcPackages) * \throws Exception If pi_r refers to neither a \c Package nor a \c SrcPackage. */ PackageProvider( RepoMediaAccess & access, const PoolItem & pi_r, const DeltaCandidates & deltas, const PackageProviderPolicy & policy_r = PackageProviderPolicy() ); /** Legacy Ctor taking a \c Package::constPtr to provide. */ PackageProvider( RepoMediaAccess & access, const Package::constPtr & package, const DeltaCandidates & deltas, const PackageProviderPolicy & policy_r = PackageProviderPolicy() ); ~PackageProvider(); public: /** Provide the package. * \throws Exception. */ ManagedFile providePackage() const; /** Provide the package if it is cached. */ ManagedFile providePackageFromCache() const; /** Whether the package is cached. */ bool isCached() const; public: class Impl; ///< Implementation class. private: RW_pointer _pimpl; ///< Pointer to implementation. }; /////////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SOURCE_PACKAGEPROVIDER_H libzypp-17.7.0/zypp/repo/PluginServices.cc000066400000000000000000000063471334444677500205520ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/base/InputStream.h" #include "zypp/base/UserRequestException.h" #include "zypp/repo/PluginServices.h" #include "zypp/ServiceInfo.h" #include "zypp/RepoInfo.h" #include "zypp/PathInfo.h" using std::endl; using std::stringstream; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// class PluginServices::Impl { public: static void loadServices( const Pathname &path, const PluginServices::ProcessService &callback ); }; void PluginServices::Impl::loadServices( const Pathname &path, const PluginServices::ProcessService & callback/*, const ProgressData::ReceiverFnc &progress*/ ) { std::list entries; if (PathInfo(path).isExist()) { if ( filesystem::readdir( entries, path, false ) != 0 ) { // TranslatorExplanation '%s' is a pathname ZYPP_THROW(Exception(str::form(_("Failed to read directory '%s'"), path.c_str()))); } //str::regex allowedServiceExt("^\\.service(_[0-9]+)?$"); for_(it, entries.begin(), entries.end() ) { ServiceInfo service_info; service_info.setAlias((*it).basename()); Url url; url.setPathName((*it).asString()); url.setScheme("file"); service_info.setUrl(url); service_info.setType(ServiceType::PLUGIN); service_info.setAutorefresh( true ); DBG << "Plugin Service: " << service_info << endl; callback(service_info); } } } PluginServices::PluginServices( const Pathname &path, const ProcessService & callback/*, const ProgressData::ReceiverFnc &progress */) { Impl::loadServices(path, callback/*, progress*/); } PluginServices::~PluginServices() {} std::ostream & operator<<( std::ostream & str, const PluginServices & obj ) { return str; } ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/PluginServices.h000066400000000000000000000044711334444677500204100ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_PLUGINSERVICES_H #define ZYPP_REPO_PLUGINSERVICES_H #include #include "zypp/base/PtrTypes.h" #include "zypp/ProgressData.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class ServiceInfo; /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// class PluginServices { friend std::ostream & operator<<( std::ostream & str, const PluginServices& obj ); public: /** * Callback definition. * First parameter is a \ref ServiceInfo object with the resource. * * Return false from the callback to get a \ref AbortRequestException * to be thrown and the processing to be cancelled. */ typedef function< bool( const ServiceInfo & )> ProcessService; /** Implementation */ class Impl; public: PluginServices(const Pathname &path, const ProcessService & callback); /** * Dtor */ ~PluginServices(); }; /////////////////////////////////////////////////////////////////// /** \relates ServiceFileReader Stream output */ std::ostream & operator<<( std::ostream & str, const PluginServices & obj ); ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_REPO_LOCALSERVICES_H libzypp-17.7.0/zypp/repo/RepoException.cc000066400000000000000000000133241334444677500203650ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/RepoException.cc * */ #include #include "zypp/repo/RepoException.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // Repository related exceptions // /////////////////////////////////////////////////////////////////// RepoException::RepoException() : Exception( "Repo exception" ) {} RepoException::RepoException( const std::string & msg_r ) : Exception( msg_r ) {} RepoException::RepoException( const RepoInfo & info ) : Exception( "Repo exception" ), _info( info ) {} RepoException::RepoException( const RepoInfo & info, const std::string& msg_r ) : Exception( msg_r ), _info( info ) {} RepoException::~RepoException() throw() {} std::ostream & RepoException::dumpOn( std::ostream & str ) const { str << "[" << _info.alias() << "|" << _info.url() << "] "; return Exception::dumpOn( str ); } /////////////////////////////////////////////////////////////////// #define DEF_CTORS( CLASS, MSG ) \ CLASS::CLASS() : RepoException( MSG ) {} \ CLASS::CLASS( const std::string & msg_r ) : RepoException( msg_r ) {} \ CLASS::CLASS( const RepoInfo & service_r ) : RepoException( service_r, MSG ) {} \ CLASS::CLASS( const RepoInfo & service_r, const std::string & msg_r ) : RepoException( service_r, msg_r ) {} DEF_CTORS( RepoNotCachedException, "Repository is not cached" ); DEF_CTORS( RepoNoUrlException, "Repository has no or invalid url defined." ); DEF_CTORS( RepoNoAliasException, "Repository has no alias defined." ); DEF_CTORS( RepoInvalidAliasException, "Repository has an invalid alias." ); DEF_CTORS( RepoNotFoundException, "Repository not found." ); DEF_CTORS( RepoAlreadyExistsException, "Repository already exists." ); DEF_CTORS( RepoUnknownTypeException, "Repository type can't be determined." ); DEF_CTORS( RepoMetadataException, "Repository metadata not usable." ); #undef DEF_CTORS /////////////////////////////////////////////////////////////////// // // Service related exceptions // /////////////////////////////////////////////////////////////////// ServiceException::ServiceException() : Exception( "Service exception" ) {} ServiceException::ServiceException( const std::string & msg_r ) : Exception( msg_r ) {} ServiceException::ServiceException( const ServiceInfo & service_r ) : Exception( "Service exception" ), _service( service_r ) {} ServiceException::ServiceException( const ServiceInfo & service_r, const std::string & msg_r ) : Exception( msg_r ), _service( service_r ) {} ServiceException::~ServiceException() throw() {} std::ostream & ServiceException::dumpOn( std::ostream & str ) const { str << "[" << _service.alias() << "|" << _service.url() << "] "; return Exception::dumpOn( str ); } /////////////////////////////////////////////////////////////////// #define DEF_CTORS( CLASS, MSG ) \ CLASS::CLASS() : DEF_BASECLASS( MSG ) {} \ CLASS::CLASS( const std::string & msg_r ) : DEF_BASECLASS( msg_r ) {} \ CLASS::CLASS( const ServiceInfo & service_r ) : DEF_BASECLASS( service_r, MSG ) {} \ CLASS::CLASS( const ServiceInfo & service_r, const std::string & msg_r ) : DEF_BASECLASS( service_r, msg_r ) {} #define DEF_BASECLASS ServiceException DEF_CTORS( ServiceNoAliasException, "Service has no alias defined." ); DEF_CTORS( ServiceInvalidAliasException, "Service has an invalid alias." ); DEF_CTORS( ServiceAlreadyExistsException, "Service already exists." ); DEF_CTORS( ServiceNoUrlException, "Service has no or invalid url defined." ); // sub classes: DEF_CTORS( ServicePluginException, "PLUGIN service exception." ); /////////////////////////////////////////////////////////////////// // sub class: ServicePluginException #undef DEF_BASECLASS #define DEF_BASECLASS ServicePluginException DEF_CTORS( ServicePluginInformalException, "Service plugin has trouble providing the metadata but this should not be treated as error." ); DEF_CTORS( ServicePluginImmutableException, _("Service plugin does not support changing an attribute.") ); #undef DEF_CTORS ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/RepoException.h000066400000000000000000000227701334444677500202340ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/parser/tagfile/RepoException.h * */ #ifndef ZYPP_REPO_REPOEXCEPTION_H #define ZYPP_REPO_REPOEXCEPTION_H #include #include #include "zypp/base/Exception.h" #include "zypp/base/UserRequestException.h" #include "zypp/RepoInfo.h" #include "zypp/ServiceInfo.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /** \name Repository related exceptions. */ //@{ /** * \short Exception for repository handling. */ class RepoException : public Exception { public: RepoException(); RepoException( const std::string & msg_r ); RepoException( const RepoInfo & info ); RepoException( const RepoInfo & info, const std::string & msg_r ); virtual ~RepoException() throw(); RepoInfo info() { return _info; } std::string alias() { return info().alias(); } protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: RepoInfo _info; }; /////////////////////////////////////////////////////////////////// /** * The repository cache is not built yet * so you can't create the repostories from * the cache. */ class RepoNotCachedException : public RepoException { public: RepoNotCachedException(); RepoNotCachedException( const std::string & msg_r ); RepoNotCachedException( const RepoInfo & info ); RepoNotCachedException( const RepoInfo & info, const std::string & msg_r ); }; /** * thrown when it was impossible to * determine one url for this repo. */ class RepoNoUrlException : public RepoException { public: RepoNoUrlException(); RepoNoUrlException( const std::string & msg_r ); RepoNoUrlException( const RepoInfo & info ); RepoNoUrlException( const RepoInfo & info, const std::string & msg_r ); }; /** * thrown when it was impossible to * determine an alias for this repo. */ class RepoNoAliasException : public RepoException { public: RepoNoAliasException(); RepoNoAliasException( const std::string & msg_r ); RepoNoAliasException( const RepoInfo & info ); RepoNoAliasException( const RepoInfo & info, const std::string & msg_r ); }; /** * Thrown when the repo alias is found to be invalid. */ class RepoInvalidAliasException : public RepoException { public: RepoInvalidAliasException(); RepoInvalidAliasException( const std::string & msg_r ); RepoInvalidAliasException( const RepoInfo & info ); RepoInvalidAliasException( const RepoInfo & info, const std::string & msg_r ); }; /** * thrown when it was impossible to * match a repository */ class RepoNotFoundException : public RepoException { public: RepoNotFoundException(); RepoNotFoundException( const std::string & msg_r ); RepoNotFoundException( const RepoInfo & info ); RepoNotFoundException( const RepoInfo & info, const std::string & msg_r ); }; /** * Repository already exists and some unique * attribute can't be duplicated. */ class RepoAlreadyExistsException : public RepoException { public: RepoAlreadyExistsException(); RepoAlreadyExistsException( const std::string & msg_r ); RepoAlreadyExistsException( const RepoInfo & info ); RepoAlreadyExistsException( const RepoInfo & info, const std::string & msg_r ); }; /** * thrown when it was impossible to * determine this repo type. */ class RepoUnknownTypeException : public RepoException { public: RepoUnknownTypeException(); RepoUnknownTypeException( const std::string & msg_r ); RepoUnknownTypeException( const RepoInfo & info ); RepoUnknownTypeException( const RepoInfo & info, const std::string & msg_r ); }; /** * thrown when it was impossible to * use the raw metadata for this repo. */ class RepoMetadataException : public RepoException { public: RepoMetadataException(); RepoMetadataException( const std::string & msg_r ); RepoMetadataException( const RepoInfo & info ); RepoMetadataException( const RepoInfo & info, const std::string & msg_r ); }; //@} /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /** \name Service related exceptions. */ //@{ /** Base Exception for service handling. */ class ServiceException : public Exception { public: ServiceException(); ServiceException( const std::string & msg_r ); ServiceException( const ServiceInfo & service_r ); ServiceException( const ServiceInfo & service_r, const std::string & msg_r ); virtual ~ServiceException() throw(); ServiceInfo service() { return _service; } std::string alias() { return service().alias(); } protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: ServiceInfo _service; }; /////////////////////////////////////////////////////////////////// /** Service without alias was used in an operation. */ class ServiceNoAliasException : public ServiceException { public: ServiceNoAliasException(); ServiceNoAliasException( const std::string & msg_r ); ServiceNoAliasException( const ServiceInfo & service_r ); ServiceNoAliasException( const ServiceInfo & service_r, const std::string & msg_r ); }; /** * Thrown when the repo alias is found to be invalid. */ class ServiceInvalidAliasException : public ServiceException { public: ServiceInvalidAliasException(); ServiceInvalidAliasException( const std::string & msg_r ); ServiceInvalidAliasException( const ServiceInfo & info ); ServiceInvalidAliasException( const ServiceInfo & info, const std::string & msg_r ); }; /** Service already exists and some unique attribute can't be duplicated. */ class ServiceAlreadyExistsException : public ServiceException { public: ServiceAlreadyExistsException(); ServiceAlreadyExistsException( const std::string & msg_r ); ServiceAlreadyExistsException( const ServiceInfo & service_r ); ServiceAlreadyExistsException( const ServiceInfo & service_r, const std::string & msg_r ); }; /** Service has no or invalid url defined. */ class ServiceNoUrlException : public ServiceException { public: ServiceNoUrlException(); ServiceNoUrlException( const std::string & msg_r ); ServiceNoUrlException( const ServiceInfo & service_r ); ServiceNoUrlException( const ServiceInfo & service_r, const std::string & msg_r ); }; //@} /** \name PLUGIN Service related exceptions. */ //@{ /** PLUGIN Service related exceptions */ class ServicePluginException : public ServiceException { public: ServicePluginException(); ServicePluginException( const std::string & msg_r ); ServicePluginException( const ServiceInfo & service_r ); ServicePluginException( const ServiceInfo & service_r, const std::string & msg_r ); }; /** Service plugin has trouble providing the metadata but this should not be treated as error. */ class ServicePluginInformalException : public ServicePluginException { public: ServicePluginInformalException(); ServicePluginInformalException( const std::string & msg_r ); ServicePluginInformalException( const ServiceInfo & service_r ); ServicePluginInformalException( const ServiceInfo & service_r, const std::string & msg_r ); }; /** Service plugin is immutable. */ class ServicePluginImmutableException : public ServicePluginException { public: ServicePluginImmutableException(); ServicePluginImmutableException( const std::string & msg_r ); ServicePluginImmutableException( const ServiceInfo & service_r ); ServicePluginImmutableException( const ServiceInfo & service_r, const std::string & msg_r ); }; //@} ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_PARSER_TAGFILE_PARSEEXCEPTION_H libzypp-17.7.0/zypp/repo/RepoInfoBase.cc000066400000000000000000000121331334444677500201120ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/RepoInfoBase.cc * */ #include #include "zypp/ZConfig.h" #include "zypp/repo/RepoVariables.h" #include "zypp/repo/RepoInfoBase.h" #include "zypp/TriBool.h" #include "zypp/Pathname.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace repo { /////////////////////////////////////////////////////////////////// /// \class RepoInfoBase::Impl /// \brief RepoInfoBase data /////////////////////////////////////////////////////////////////// struct RepoInfoBase::Impl { Impl() : _enabled( indeterminate ) , _autorefresh( indeterminate ) {} Impl( const std::string & alias_r ) : _enabled( indeterminate ) , _autorefresh( indeterminate ) { setAlias( alias_r ); } public: TriBool _enabled; TriBool _autorefresh; std::string _alias; std::string _escaped_alias; RepoVariablesReplacedString _name; Pathname _filepath; public: void setAlias( const std::string & alias_r ) { _alias = _escaped_alias = alias_r; // replace slashes with underscores str::replaceAll( _escaped_alias, "/", "_" ); } private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoInfoBase // /////////////////////////////////////////////////////////////////// RepoInfoBase::RepoInfoBase() : _pimpl( new Impl() ) {} RepoInfoBase::RepoInfoBase(const string & alias) : _pimpl( new Impl(alias) ) {} RepoInfoBase::~RepoInfoBase() {} void RepoInfoBase::setEnabled( bool enabled ) { _pimpl->_enabled = enabled; } void RepoInfoBase::setAutorefresh( bool autorefresh ) { _pimpl->_autorefresh = autorefresh; } void RepoInfoBase::setAlias( const std::string &alias ) { _pimpl->setAlias(alias); } void RepoInfoBase::setName( const std::string &name ) { _pimpl->_name.raw() = name; } void RepoInfoBase::setFilepath( const Pathname &filepath ) { _pimpl->_filepath = filepath; } // true by default (if not set by setEnabled()) bool RepoInfoBase::enabled() const { return indeterminate(_pimpl->_enabled) ? true : (bool) _pimpl->_enabled; } // false by default (if not set by setAutorefresh()) bool RepoInfoBase::autorefresh() const { return indeterminate(_pimpl->_autorefresh) ? false : (bool) _pimpl->_autorefresh; } std::string RepoInfoBase::alias() const { return _pimpl->_alias; } std::string RepoInfoBase::escaped_alias() const { return _pimpl->_escaped_alias; } std::string RepoInfoBase::name() const { if ( rawName().empty() ) return alias(); return repo::RepoVariablesStringReplacer()( rawName() ); } std::string RepoInfoBase::rawName() const { return _pimpl->_name.raw(); } std::string RepoInfoBase::label() const { if ( ZConfig::instance().repoLabelIsAlias() ) return alias(); return name(); } Pathname RepoInfoBase::filepath() const { return _pimpl->_filepath; } std::ostream & RepoInfoBase::dumpOn( std::ostream & str ) const { str << "--------------------------------------" << std::endl; str << "- alias : " << alias() << std::endl; if ( ! rawName().empty() ) str << "- name : " << rawName() << std::endl; str << "- enabled : " << enabled() << std::endl; str << "- autorefresh : " << autorefresh() << std::endl; return str; } std::ostream & RepoInfoBase::dumpAsIniOn( std::ostream & str ) const { // we save the original data without variable replacement str << "[" << alias() << "]" << endl; if ( ! rawName().empty() ) str << "name=" << rawName() << endl; str << "enabled=" << (enabled() ? "1" : "0") << endl; str << "autorefresh=" << (autorefresh() ? "1" : "0") << endl; return str; } std::ostream & RepoInfoBase::dumpAsXmlOn( std::ostream & str, const std::string & content ) const { return str << "" << endl; } std::ostream & operator<<( std::ostream & str, const RepoInfoBase & obj ) { return obj.dumpOn(str); } } // namespace repo /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/RepoInfoBase.h000066400000000000000000000140151334444677500177550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/RepoInfoBase.h * */ #ifndef REPOINFOBASE_H_ #define REPOINFOBASE_H_ #include #include "zypp/base/PtrTypes.h" #include "zypp/APIConfig.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RepoInfoBase // /** * \short Base class implementing common features of \ref RepoInfo and * \ref ServiceInfo. * * \note Name is subject to repo variable replacement * (\see \ref RepoVariablesStringReplacer). */ class RepoInfoBase { friend std::ostream & operator<<( std::ostream & str, const RepoInfoBase & obj ); public: RepoInfoBase(); RepoInfoBase(const std::string & alias); virtual ~RepoInfoBase(); /** * unique identifier for this source. If not specified * It should be generated from the base url. * * Normally, in a .repo file the section name is used * ( [somerepo] ) */ std::string alias() const; /** * Same as alias(), just escaped in a way to be a valid file name. */ std::string escaped_alias() const; /** * \short Repository name * * Short label or description of the repository. Defaults to \ref alias. * Subject to repo variable replacement (\see \ref RepoVariablesStringReplacer). * ie: "SUSE Linux 10.2 updates" */ std::string name() const; /** The raw metadata name (no default, no variables replaced). */ std::string rawName() const; /** * \short Label for use in messages for the user interface. * * Returns an alias or name, according to ZConfig::repoLabelIsAlias(). */ std::string label() const; /** User string: \ref label (alias or name) */ std::string asUserString() const { return label(); } /** * If enabled is false, then this repository must be ignored as if does * not exists, except when checking for duplicate alias. */ bool enabled() const; /** * If true, the repostory must be refreshed before creating resolvables * from it */ bool autorefresh() const; /** * \short File where this repo was read from * * \note could be an empty pathname for repo * infos created in memory. */ Pathname filepath() const; public: /** * set the repository alias \see alias * \param alias */ void setAlias( const std::string &alias ); /** * set the repository name \see name * \param name */ void setName( const std::string &name ); /** * enable or disable the repository \see enabled * \param enabled */ void setEnabled( bool enabled ); /** * enable or disable autorefresh \see autorefresh * \param enabled */ void setAutorefresh( bool autorefresh ); /** * \short set the path to the .repo file * * The path to the .repo file where this repository * was defined, or empty if nowhere. * * \param path File path */ void setFilepath( const Pathname &filename ); /** * Write a human-readable representation of this RepoInfoBase object * into the \a str stream. Useful for logging. */ virtual std::ostream & dumpOn( std::ostream & str ) const; /** * Write this RepoInfoBase object into \a str in a .repo (ini) file format. * Raw values, no variable replacement. */ virtual std::ostream & dumpAsIniOn( std::ostream & str ) const; /** * Write an XML representation of this object with content (if available). * Repo variables replaced. */ virtual std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const; class Impl; private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates RepoInfoBase */ inline bool operator==( const RepoInfoBase & lhs, const RepoInfoBase & rhs ) { return lhs.alias() == rhs.alias(); } /** \relates RepoInfoBase */ inline bool operator!=( const RepoInfoBase & lhs, const RepoInfoBase & rhs ) { return lhs.alias() != rhs.alias(); } inline bool operator<( const RepoInfoBase & lhs, const RepoInfoBase & rhs ) { return lhs.alias() < rhs.alias(); } /** \relates RepoInfoBase Stream output */ std::ostream & operator<<( std::ostream & str, const RepoInfoBase & obj ); /** \relates RepoInfoBase */ typedef shared_ptr RepoInfoBase_Ptr; /** \relates RepoInfoBase */ typedef shared_ptr RepoInfoBase_constPtr; ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif /*REPOINFOBASE_H_*/ libzypp-17.7.0/zypp/repo/RepoMirrorList.cc000066400000000000000000000132231334444677500205330ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/RepoMirrorList.cc * */ #include #include #include #include "zypp/repo/RepoMirrorList.h" #include "zypp/media/MetaLinkParser.h" #include "zypp/MediaSetAccess.h" #include "zypp/base/LogTools.h" #include "zypp/ZConfig.h" #include "zypp/PathInfo.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { /////////////////////////////////////////////////////////////////// /// \class RepoMirrorListTempProvider /// \brief Provide access to downloaded mirror list (in temp space) /// \ingroup g_RAII /// /// Tempspace (and mirror list) are deleted when provider goes out /// of scope. struct RepoMirrorListTempProvider { RepoMirrorListTempProvider() {} RepoMirrorListTempProvider( const Pathname & localfile_r ) : _localfile( localfile_r ) {} RepoMirrorListTempProvider( const Url & url_r ) { Url abs_url( url_r ); abs_url.setPathName( "/" ); abs_url.setQueryParam( "mediahandler", "curl" ); _access.reset( new MediaSetAccess( abs_url ) ); _localfile = _access->provideFile( url_r.getPathName() ); } const Pathname & localfile() const { return _localfile; } private: shared_ptr _access; Pathname _localfile; }; /////////////////////////////////////////////////////////////////// inline std::vector RepoMirrorListParseXML( const Pathname &tmpfile ) { InputStream tmpfstream (tmpfile); media::MetaLinkParser metalink; metalink.parse(tmpfstream); return metalink.getUrls(); } inline std::vector RepoMirrorListParseTXT( const Pathname &tmpfile ) { InputStream tmpfstream (tmpfile); std::vector my_urls; string tmpurl; while (getline(tmpfstream.stream(), tmpurl)) { if ( tmpurl[0] == '#' ) continue; try { my_urls.push_back(Url(tmpurl)); } catch (...) {;} // ignore malformed urls } return my_urls; } /** Parse a local mirrorlist \a listfile_r and return usable URLs */ inline std::vector RepoMirrorListParse( const Url & url_r, const Pathname & listfile_r, bool mirrorListForceMetalink_r ) { USR << url_r << " " << listfile_r << endl; std::vector mirrorurls; if ( mirrorListForceMetalink_r || url_r.asString().find( "/metalink" ) != string::npos ) mirrorurls = RepoMirrorListParseXML( listfile_r ); else mirrorurls = RepoMirrorListParseTXT( listfile_r ); std::vector ret; for ( auto & murl : mirrorurls ) { if ( murl.getScheme() != "rsync" ) { size_t delpos = murl.getPathName().find("repodata/repomd.xml"); if( delpos != string::npos ) { murl.setPathName( murl.getPathName().erase(delpos) ); } ret.push_back( murl ); if ( ret.size() >= 4 ) // why 4? break; } } return ret; } } // namespace /////////////////////////////////////////////////////////////////// RepoMirrorList::RepoMirrorList( const Url & url_r, const Pathname & metadatapath_r, bool mirrorListForceMetalink_r ) { if ( url_r.getScheme() == "file" ) { // never cache for local mirrorlist _urls = RepoMirrorListParse( url_r, url_r.getPathName(), mirrorListForceMetalink_r ); } else if ( ! PathInfo( metadatapath_r).isDir() ) { // no cachedir RepoMirrorListTempProvider provider( url_r ); // RAII: lifetime of any downloaded files _urls = RepoMirrorListParse( url_r, provider.localfile(), mirrorListForceMetalink_r ); } else { // have cachedir Pathname cachefile( metadatapath_r ); if ( mirrorListForceMetalink_r || url_r.asString().find( "/metalink" ) != string::npos ) cachefile /= "mirrorlist.xml"; else cachefile /= "mirrorlist.txt"; zypp::filesystem::PathInfo cacheinfo( cachefile ); if ( !cacheinfo.isFile() || cacheinfo.mtime() < time(NULL) - (long) ZConfig::instance().repo_refresh_delay() * 60 ) { DBG << "Getting MirrorList from URL: " << url_r << endl; RepoMirrorListTempProvider provider( url_r ); // RAII: lifetime of downloaded file // Create directory, if not existing DBG << "Copy MirrorList file to " << cachefile << endl; zypp::filesystem::assert_dir( metadatapath_r ); zypp::filesystem::hardlinkCopy( provider.localfile(), cachefile ); } _urls = RepoMirrorListParse( url_r, cachefile, mirrorListForceMetalink_r ); if( _urls.empty() ) { DBG << "Removing Cachefile as it contains no URLs" << endl; zypp::filesystem::unlink( cachefile ); } } } ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/RepoMirrorList.h000066400000000000000000000023621334444677500203770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_MIRRORLIST_H_ #define ZYPP_REPO_MIRRORLIST_H_ #include #include "zypp/Url.h" #include "zypp/Pathname.h" namespace zypp { namespace repo { class RepoMirrorList { public: RepoMirrorList( const Url & url_r, const Pathname & metadatapath_r, bool mirrorListForceMetalink_r ); RepoMirrorList( const Url & url_r ) : RepoMirrorList( url_r, Pathname(), false ) {} const std::vector & getUrls() const { return _urls; } std::vector & getUrls() { return _urls; } private: std::vector _urls; }; } // ns repo } // ns zypp #endif // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/repo/RepoProvideFile.cc000066400000000000000000000273561334444677500206510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/source/RepoProvideFile.cc * */ #include #include #include #include #include "zypp/base/Gettext.h" #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/UserRequestException.h" #include "zypp/repo/RepoProvideFile.h" #include "zypp/ZYppCallbacks.h" #include "zypp/MediaSetAccess.h" #include "zypp/ZConfig.h" #include "zypp/ZYppFactory.h" #include "zypp/repo/SUSEMediaVerifier.h" #include "zypp/repo/RepoException.h" #include "zypp/repo/SUSEMediaVerifier.h" #include "zypp/repo/RepoException.h" #include "zypp/FileChecker.h" #include "zypp/Fetcher.h" using std::endl; using std::set; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // provideFile // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// /** Hack to extract progress information from media::DownloadProgressReport. * We redirect the static report triggered from RepoInfo::provideFile * to feed the ProvideFilePolicy callbacks in addition to any connected * media::DownloadProgressReport. */ struct DownloadFileReportHack : public callback::ReceiveReport { typedef callback::ReceiveReport BaseType; typedef function RedirectType; DownloadFileReportHack( RedirectType redirect_r ) : _oldRec( Distributor::instance().getReceiver() ) , _redirect( redirect_r ) { connect(); } ~DownloadFileReportHack() { if ( _oldRec ) Distributor::instance().setReceiver( *_oldRec ); else Distributor::instance().noReceiver(); } virtual void start( const Url & file, Pathname localfile ) { if ( _oldRec ) _oldRec->start( file, localfile ); else BaseType::start( file, localfile ); } virtual bool progress( int value, const Url & file, double dbps_avg = -1, double dbps_current = -1 ) { bool ret = true; if ( _oldRec ) ret &= _oldRec->progress( value, file, dbps_avg, dbps_current ); if ( _redirect ) ret &= _redirect( value ); return ret; } virtual Action problem( const Url & file, Error error, const std::string & description ) { if ( _oldRec ) return _oldRec->problem( file, error, description ); return BaseType::problem( file, error, description ); } virtual void finish( const Url & file, Error error, const std::string & reason ) { if ( _oldRec ) _oldRec->finish( file, error, reason ); else BaseType::finish( file, error, reason ); } private: Receiver * _oldRec; RedirectType _redirect; }; ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// ManagedFile provideFile( RepoInfo repo_r, const OnMediaLocation & loc_r, const ProvideFilePolicy & policy_r ) { RepoMediaAccess access; return access.provideFile(repo_r, loc_r, policy_r ); } /////////////////////////////////////////////////////////////////// class RepoMediaAccess::Impl { public: Impl( const ProvideFilePolicy & defaultPolicy_r ) : _defaultPolicy( defaultPolicy_r ) {} ~Impl() { std::map >::iterator it; for ( it = _medias.begin(); it != _medias.end(); ++it ) { it->second->release(); } } /** Provide a MediaSetAccess for \c url with label and verifyer adjusted. * * As the same url (e.g. \c 'dvd:///' ) might be used for multiple repos * we must always adjust the repo specific data (label,verifyer). * * \todo This mixture of media and repos specific data is fragile. */ shared_ptr mediaAccessForUrl( const Url &url, RepoInfo repo ) { std::map >::const_iterator it; it = _medias.find(url); shared_ptr media; if ( it != _medias.end() ) { media = it->second; } else { media.reset( new MediaSetAccess(url) ); _medias[url] = media; } setVerifierForRepo( repo, media ); return media; } private: void setVerifierForRepo( RepoInfo repo, shared_ptr media ) { // Always set the MediaSetAccess label. media->setLabel( repo.name() ); // set a verifier if the repository has it Pathname mediafile = repo.metadataPath() + "/media.1/media"; if ( ! repo.metadataPath().empty() ) { if ( PathInfo(mediafile).isExist() ) { std::map, RepoInfo>::const_iterator it; it = _verifier.find(media); if ( it != _verifier.end() ) { if ( it->second.alias() == repo.alias() ) { // this media is already using this repo verifier return; } } std::ifstream str(mediafile.asString().c_str()); std::string vendor; std::string mediaid; std::string buffer; if ( str ) { getline(str, vendor); getline(str, mediaid); getline(str, buffer); unsigned media_nr = str::strtonum(buffer); MIL << "Repository '" << repo.alias() << "' has " << media_nr << " medias"<< endl; for ( unsigned i=1; i <= media_nr; ++i ) { media::MediaVerifierRef verifier( new repo::SUSEMediaVerifier( vendor, mediaid, i ) ); media->setVerifier( i, verifier); } _verifier[media] = repo; } else { ZYPP_THROW(RepoMetadataException(repo)); } } else { WAR << "No media verifier for repo '" << repo.alias() << "' media/media.1 does not exist in '" << repo.metadataPath() << "'" << endl; } } else { WAR << "'" << repo.alias() << "' metadata path is empty. Can't set verifier. Probably this repository does not come from RepoManager." << endl; } } private: std::map, RepoInfo> _verifier; std::map > _medias; public: ProvideFilePolicy _defaultPolicy; }; /////////////////////////////////////////////////////////////////// RepoMediaAccess::RepoMediaAccess( const ProvideFilePolicy & defaultPolicy_r ) : _impl( new Impl( defaultPolicy_r ) ) {} RepoMediaAccess::~RepoMediaAccess() {} void RepoMediaAccess::setDefaultPolicy( const ProvideFilePolicy & policy_r ) { _impl->_defaultPolicy = policy_r; } const ProvideFilePolicy & RepoMediaAccess::defaultPolicy() const { return _impl->_defaultPolicy; } ManagedFile RepoMediaAccess::provideFile( RepoInfo repo_r, const OnMediaLocation & loc_rx, const ProvideFilePolicy & policy_r ) { const OnMediaLocation locWithPath( OnMediaLocation(loc_rx).prependPath( repo_r.path() ) ); MIL << locWithPath << endl; // Arrange DownloadFileReportHack to recieve the source::DownloadFileReport // and redirect download progress triggers to call the ProvideFilePolicy // callback. DownloadFileReportHack dumb( bind( mem_fun_ref( &ProvideFilePolicy::progress ), ref( policy_r ), _1 ) ); RepoException repo_excpt(repo_r, str::form(_("Can't provide file '%s' from repository '%s'"), locWithPath.filename().c_str(), repo_r.alias().c_str() ) ); if ( repo_r.baseUrlsEmpty() ) { repo_excpt.remember(RepoException(_("No url in repository."))); ZYPP_THROW(repo_excpt); } Fetcher fetcher; fetcher.addCachePath( repo_r.packagesPath() ); MIL << "Added cache path " << repo_r.packagesPath() << endl; // Test whether download destination is writable, if not // switch into the tmpspace (e.g. bnc#755239, download and // install srpms as user). Pathname destinationDir( repo_r.packagesPath() ); PathInfo pi( destinationDir ); if ( ! pi.isExist() ) { // try to create it... assert_dir( destinationDir ); pi(); } if ( geteuid() != 0 && ! pi.userMayW() ) { WAR << "Destination dir '" << destinationDir << "' is not user writable, using tmp space." << endl; destinationDir = getZYpp()->tmpPath() / destinationDir; assert_dir( destinationDir ); fetcher.addCachePath( destinationDir ); MIL << "Added cache path " << destinationDir << endl; } // Suppress (interactive) media::MediaChangeReport if we in have multiple basurls (>1) media::ScopedDisableMediaChangeReport guard( repo_r.baseUrlsSize() > 1 ); for ( RepoInfo::urls_const_iterator it = repo_r.baseUrlsBegin(); it != repo_r.baseUrlsEnd(); /* incremented in the loop */ ) { Url url( *it ); ++it; try { MIL << "Providing file of repo '" << repo_r.alias() << "' from " << url << endl; shared_ptr access = _impl->mediaAccessForUrl( url, repo_r ); fetcher.enqueue( locWithPath, policy_r.fileChecker() ); fetcher.start( destinationDir, *access ); // reached if no exception has been thrown, so this is the correct file ManagedFile ret( destinationDir + locWithPath.filename() ); if ( !repo_r.keepPackages() ) { ret.setDispose( filesystem::unlink ); } MIL << "provideFile at " << ret << endl; return ret; } catch ( const UserRequestException & excpt ) { ZYPP_RETHROW( excpt ); } catch ( const FileCheckException & excpt ) { ZYPP_RETHROW( excpt ); } catch ( const Exception &e ) { ZYPP_CAUGHT( e ); repo_excpt.remember(e); WAR << "Trying next url" << endl; continue; } } // iteration over urls ZYPP_THROW(repo_excpt); return ManagedFile(); // not reached } ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/RepoProvideFile.h000066400000000000000000000100221334444677500204710ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/RepoProvideFile.h * */ #ifndef ZYPP_REPO_REPOPROVIDEFILE_H #define ZYPP_REPO_REPOPROVIDEFILE_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/base/Functional.h" #include "zypp/RepoInfo.h" #include "zypp/ManagedFile.h" #include "zypp/OnMediaLocation.h" #include "zypp/ProvideFilePolicy.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // provideFile // /////////////////////////////////////////////////////////////////// /** Provide a file from a Repository. * Let \a source_r provide the file described by \a loc_r. In case * \a loc_r contains a checksum, the file is verified. \a policy_r * provides callback hooks for download progress reporting and behaviour * on failed checksum verification. * * \throws Exception */ ManagedFile provideFile( RepoInfo repo_r, const OnMediaLocation & loc_r, const ProvideFilePolicy & policy_r = ProvideFilePolicy() ); /** * \short Provides files from different repos * * Class that allows to get files from repositories * It handles automatically setting media verifiers if the * repo is cached, and reuses media set access opened for * repositories during its scope, so you can provide * files from different repositories in different order * without opening and closing medias all the time */ class RepoMediaAccess { public: /** Ctor taking the default \ref ProvideFilePolicy. */ RepoMediaAccess( const ProvideFilePolicy & defaultPolicy_r = ProvideFilePolicy() ); ~RepoMediaAccess(); /** Provide a file from a Repository. * Let \a source_r provide the file described by \a loc_r. In case * \a loc_r contains a checksum, the file is verified. \a policy_r * provides callback hooks for download progress reporting and behaviour * on failed checksum verification. * * \throws Exception * \todo Investigate why this needs a non-const Repository as arg. */ ManagedFile provideFile( RepoInfo repo_r, const OnMediaLocation & loc_r, const ProvideFilePolicy & policy_r ); /** \overload Using the current default \ref ProvideFilePolicy. */ ManagedFile provideFile( RepoInfo repo_r, const OnMediaLocation & loc_r ) { return provideFile( repo_r, loc_r, defaultPolicy() ); } public: /** Set a new default \ref ProvideFilePolicy. */ void setDefaultPolicy( const ProvideFilePolicy & policy_r ); /** Get the current default \ref ProvideFilePolicy. */ const ProvideFilePolicy & defaultPolicy() const; private: class Impl; RW_pointer _impl; }; ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_REPO_REPOPROVIDEFILE_H libzypp-17.7.0/zypp/repo/RepoType.cc000066400000000000000000000040611334444677500173460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include "zypp/base/NamedValue.h" #include "zypp/repo/RepoException.h" #include "RepoType.h" namespace zypp { namespace repo { /////////////////////////////////////////////////////////////////// namespace { static NamedValue & table() { static NamedValue & _t( *new NamedValue ); if ( _t.empty() ) { _t( RepoType::RPMMD_e ) | "rpm-md" | "rpm"|"rpmmd"|"repomd"|"yum"|"up2date"; _t( RepoType::YAST2_e ) | "yast2" | "yast"|"susetags"; _t( RepoType::RPMPLAINDIR_e ) | "plaindir"; _t( RepoType::NONE_e ) | "NONE" | "none"; } return _t; } } // namespace /////////////////////////////////////////////////////////////////// const RepoType RepoType::RPMMD ( RepoType::RPMMD_e ); const RepoType RepoType::YAST2 ( RepoType::YAST2_e ); const RepoType RepoType::RPMPLAINDIR ( RepoType::RPMPLAINDIR_e ); const RepoType RepoType::NONE ( RepoType::NONE_e ); RepoType::RepoType(const std::string & strval_r) : _type(parse(strval_r)) {} RepoType::Type RepoType::parse( const std::string & strval_r ) { RepoType::Type type; if ( ! table().getValue( str::toLower( strval_r ), type ) ) { ZYPP_THROW( RepoUnknownTypeException( "Unknown repository type '" + strval_r + "'") ); } return type; } const std::string & RepoType::asString() const { return table().getName( _type ); } } // ns repo } // ns zypp // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/repo/RepoType.h000066400000000000000000000033571334444677500172170ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_TYPE_H_ #define ZYPP_REPO_TYPE_H_ #include #include namespace zypp { namespace repo { /** * \short Repository type enumeration * * Repositories can be from varous types * ... */ struct RepoType { static const RepoType RPMMD; static const RepoType YAST2; static const RepoType RPMPLAINDIR; static const RepoType NONE; enum Type { NONE_e, RPMMD_e, YAST2_e, RPMPLAINDIR_e, }; RepoType() : _type(NONE_e) {} RepoType(Type type) : _type(type) {} explicit RepoType(const std::string & strval_r); Type toEnum() const { return _type; } RepoType::Type parse(const std::string & strval_r); const std::string & asString() const; Type _type; }; inline std::ostream & operator<<( std::ostream & str, const RepoType & obj ) { return str << obj.asString(); } inline bool operator==(const RepoType & obj1, const RepoType & obj2) { return obj1._type == obj2._type; } inline bool operator!=(const RepoType & obj1, const RepoType & obj2) { return ! (obj1 == obj2); } } // ns repo } // ns zypp #endif // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/repo/RepoVariables.cc000066400000000000000000000433351334444677500203440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include #include "zypp/base/LogTools.h" #include "zypp/base/String.h" #include "zypp/base/Regex.h" #include "zypp/ZYppFactory.h" #include "zypp/ZConfig.h" #include "zypp/Target.h" #include "zypp/Arch.h" #include "zypp/repo/RepoVariables.h" #include "zypp/base/NonCopyable.h" #define ZYPP_DBG_VAREXPAND 0 #if ( ZYPP_DBG_VAREXPAND ) #warning ZYPP_DBG_VAREXPAND is on using std::cout; #endif // ZYPP_DBG_VAREXPAND /////////////////////////////////////////////////////////////////// namespace zypp { namespace env { /** Use faked releasever (e.g. for 'zupper dup' to next distro version */ inline std::string ZYPP_REPO_RELEASEVER() { const char * env = getenv("ZYPP_REPO_RELEASEVER"); return( env ? env : "" ); } } /////////////////////////////////////////////////////////////////// namespace repo { /////////////////////////////////////////////////////////////////// // RepoVarExpand /////////////////////////////////////////////////////////////////// namespace { /////////////////////////////////////////////////////////////////// /// \class FindVar /// \brief Helper scanning for variable definitions in a string /////////////////////////////////////////////////////////////////// struct FindVar { bool _embedded; ///< A (formerly) embedded string may have esacped \c $, \c closebrace and \c backslash const char * _sbeg; ///< start of string to scan const char * _vbeg; ///< [$]{variable:-word} / [$]{variable} / if embedded also on [\\] const char * _nbeg; ///< ${[v]ariable:-word} / ${[v]ariable} const char * _nend; ///< ${variable[:]-word} / ${variable[}] const char * _vend; ///< ${variable:-word}[] / ${variable}[] const char * _send; ///< end of scan (next $ or nullptr if done) FindVar( const std::string & str_r, bool embedded_r ) : _embedded( embedded_r ) , _sbeg( str_r.c_str() ) , _vbeg( nullptr ) , _nbeg( nullptr ) , _nend( nullptr ) , _vend( nullptr ) , _send( findVarStart( _sbeg ) ) {} /** Nullptr in _send indicates we scanned the whole string. */ bool done() const { return !_send; } /** Advance to first/next var if there is one */ bool nextVar() { if ( done() ) return false; do { if ( _vbeg && !_vend ) // loop internal: no findVarEnd at current $; skip it _send = findVarStart( _vbeg+1 ); _vbeg = _send; // next $ or null if string end _nbeg = _nend = _vend = _send = nullptr; if ( ! _vbeg ) // done! return false; } while( ! findVarEnd() ); return true; } /** Valid _vend indicates valid var data in scan. */ bool hasVar() const { return _vend; } // // Methods below are only valid if hasVar() == true // /** Return the full var text */ std::string var() const { return std::string( _vbeg, _vend ); } /** Return the var name */ std::string varName() const { return std::string( _nbeg, _nend ); } /** Whether this is a conditional var (${..:[+-]...}) */ bool varIsConditional() const { return( *(_vbeg+1) == '{' && *_nend == ':' ); } /** The var type: \c \, \c $, \c - , \c + * \li \c \ backslash escaped literal * \li \c $ plain variable * \li \c - conditional: default value * \li \c + conditional: alternate value */ int varType() const { return( varIsConditional() ? *(_nend+1) : *_vbeg ); } /** Return embedded value in conditional vars or empty string */ std::string varEmbedded() const { return( varIsConditional() ? std::string( _nend+2, _vend-1 ) : std::string() ); } /** Have unwritten data before var? */ bool hasVarPrefix() const { return ( _sbeg != _vbeg ); } /** Return unwritten data before var */ std::string varPrefix() const { return std::string( _sbeg, _vbeg ); } /** Indicate all data up to _vend were written */ void wroteVar() { _sbeg = _vend; } private: /** Return next \c $ */ const char * findVarStart( const char * sbeg_r ) const { for ( ; *sbeg_r; ++sbeg_r ) if ( *sbeg_r == '$' || ( _embedded && *sbeg_r == '\\' ) ) return sbeg_r; return nullptr; } /** Valid var name char */ bool isnamech( int ch ) const { return ch == '_' || isalnum( ch ); } /** Scan for a valid variable starting at _vbeg (storing the values) */ bool findVarEnd() { // asserted: *_vbeg == '$' || '\\' if ( ! findVarEnd( _vbeg, _nbeg, _nend, _vend ) ) return false; _send = findVarStart( _vend ); return true; } /** Skip over valid variable starting at vbeg (return end in \a vend). */ const char * findVarEnd( const char * vbeg ) const { // asserted: *_vbeg == '$' const char * nbeg = nullptr; const char * nend = nullptr; const char * vend = nullptr; findVarEnd( vbeg, nbeg, nend, vend ); return vend; } /** Scan for a valid variable starting at vbeg (const version returning the values). */ bool findVarEnd( const char * vbeg, const char *& nbeg, const char *& nend, const char *& vend ) const { // embedded only: handle backslash escaped chars if ( *_vbeg == '\\' ) { nbeg = vbeg+1; if ( *nbeg == '$' || *nbeg == '}' || *nbeg == '\\' ) { nend = vend = vbeg+2; return true; } return false; } // asserted: *vbeg == '$' // vbeg: [$]{variable:-word} / [$]{variable} // nbeg: ${[v]ariable:-word} / ${[v]ariable} bool braced = ( *(vbeg+1) == '{' ); //} nbeg = vbeg+( braced ? 2 : 1 ); if ( !isnamech( *nbeg ) ) // don't allow empty var name return false; for ( nend = nbeg+1; isnamech( *nend ); ++nend ) {;} // skip over var name // nend: ${variable[:]-word} / ${variable[}] // vend: ${variable:-word}[] / ${variable}[] // stay with ( vend == nullptr ) until you know it's valid if ( braced ) { if ( *nend == '}' ) { vend = nend+1; } else if ( *nend == ':' ) { const char * scan = nend+1; if ( *scan == '+' || *scan == '-' ) { ++scan; // find first not escaped '}' while ( *scan ) { if ( *scan == '\\' ) { ++scan; // next char is skipped if ( *scan ) ++scan; } else if ( *scan == '$' ) { // an embedded var? if ( ! (scan = findVarEnd( scan )) ) return false; } else if ( *scan == '}' ) { vend = scan+1; // ==> unesacped '}', we're done! break; } else ++scan; // literal } // ( ! *scan ) => end of string while looking for unesacped '}' } else ; // err: ':' not followed by '+' or '-' } else ; // err: braced name must end with '}' or ':' } else { vend = nend; // un-braced } return( vend != nullptr ); } }; bool _expand( std::string &, const std::string & value_r, unsigned level_r, RepoVarExpand::VarRetriever & varRetriever_r ); inline std::string expand( const std::string & value_r, unsigned level_r, RepoVarExpand::VarRetriever & varRetriever_r ) { std::string ret; if ( ! _expand( ret, value_r, level_r, varRetriever_r ) ) ret = value_r; return ret; } inline std::string expand( std::string && value_r, unsigned level_r, RepoVarExpand::VarRetriever & varRetriever_r ) { std::string ret; if ( ! _expand( ret, value_r, level_r, varRetriever_r ) ) ret = std::move(value_r); return ret; } /** Expand variables in \a value_r depending on \a level-r * level_r > 0 may have escaped chars outside braces. */ inline bool _expand( std::string & result_r, const std::string & value_r, unsigned level_r, RepoVarExpand::VarRetriever & varRetriever_r ) { #if ( ZYPP_DBG_VAREXPAND ) cout << std::string( 2*level_r, ' ' ) << "\033[7m>>" << value_r << "<<\033[27m" << endl; std::ostringstream dbg; const char * dbgsbeg = value_r.c_str(); // track vars we already added to dbg unsigned dbgi = 0; // color 1-5 var / 6 moved value_r dbg << std::string( 2*level_r, ' ' ) << ">>"; #endif // ZYPP_DBG_VAREXPAND bool expanded = false; if ( ! value_r.empty() ) { FindVar scan( value_r, level_r ); // level_r > 0 is embedded while ( scan.nextVar() ) { static const std::string _emptyValue; const std::string *const knownVar = ( varRetriever_r ? varRetriever_r( scan.varName() ) : nullptr ); const std::string & varValue( knownVar ? *knownVar : _emptyValue ); #if ( ZYPP_DBG_VAREXPAND ) dbg << std::string(dbgsbeg,scan._vbeg) << "\033[3" << ((dbgi%5)+1) << "m" << scan.var() << "\033[0m"; cout << dbg.str() << "|<< " << scan.varName() << " " << (knownVar?"("+varValue+")":"-") << " {" << scan.varEmbedded() << "}" << endl; dbgsbeg = scan._vend; dbgi++; #endif // ZYPP_DBG_VAREXPAND bool mustSubstitute = false; // keep original text per default std::string substitutionValue; int varType = scan.varType(); if ( varType == '$' ) // plain var { if ( knownVar ) { mustSubstitute = true; substitutionValue = varValue; } else ; // keep original text per default } else if ( varType == '-' ) // ':-' default value { mustSubstitute = true; if ( varValue.empty() ) substitutionValue = expand( scan.varEmbedded(), level_r+1, varRetriever_r ); else substitutionValue = varValue; } else if ( varType == '+' ) // ':+' alternate value { mustSubstitute = true; if ( ! varValue.empty() ) substitutionValue = expand( scan.varEmbedded(), level_r+1, varRetriever_r ); else ; // empty substitutionValue } else if ( varType == '\\' ) // backslash escaped literal (in varName) { mustSubstitute = true; substitutionValue = scan.varName(); } else ; // keep original text per default if ( mustSubstitute ) { if ( scan.hasVarPrefix() ) result_r += scan.varPrefix(); if ( ! substitutionValue.empty() ) result_r += substitutionValue; scan.wroteVar(); // this moves scan._sbeg so we can later see what's already written } } #if ( ZYPP_DBG_VAREXPAND ) dbg << std::string( dbgsbeg ) << (scan._sbeg == value_r.c_str() ? "<<\033[36m(moved)\033[0m" : ""); #endif // ZYPP_DBG_VAREXPAND // handle unwritten data: if ( scan._sbeg != value_r.c_str() ) { expanded = true; if ( *scan._sbeg ) result_r += std::string( scan._sbeg ); } else ; // no replacements at all } #if ( ZYPP_DBG_VAREXPAND ) dbg << "<<"; cout << dbg.str() << endl; cout << std::string( 2*level_r, ' ' ) << "\033[36m->" << result_r << "<-\033[0m" << endl; #endif // ZYPP_DBG_VAREXPAND return expanded; } } // namespace /////////////////////////////////////////////////////////////////// std::string RepoVarExpand::operator()( const std::string & value_r, VarRetriever varRetriever_r ) const { return expand( value_r, 0, varRetriever_r ); } std::string RepoVarExpand::operator()( std::string && value_r, VarRetriever varRetriever_r ) const { return expand( std::move(value_r), 0, varRetriever_r ); } /////////////////////////////////////////////////////////////////// // RepoVariables*Replace /////////////////////////////////////////////////////////////////// namespace { class RepoVarsMap : public std::map { public: static RepoVarsMap & instance() { static RepoVarsMap _instance; return _instance; } static const std::string * lookup( const std::string & name_r ) { return instance()._lookup( name_r ); } private: const std::string * _lookup( const std::string & name_r ) { if ( empty() ) // at init / after reset { // load user definitions from vars.d filesystem::dirForEach( ZConfig::instance().repoManagerRoot() / ZConfig::instance().varsPath(), filesystem::matchNoDots(), bind( &RepoVarsMap::parse, this, _1, _2 ) ); // releasever_major/_minor are per default derived from releasever. // If releasever is userdefined, inject missing _major/_minor too. deriveFromReleasever( "releasever", /*dont't overwrite user defined values*/false ); dumpOn( DBG ); // add builtin vars except for releasever{,_major,_minor} (see checkOverride) { const Arch & arch( ZConfig::instance().systemArchitecture() ); { std::string & var( operator[]( "arch" ) ); if ( var.empty() ) var = arch.asString(); } { std::string & var( operator[]( "basearch" ) ); if ( var.empty() ) var = arch.baseArch().asString(); } } } const std::string * ret = checkOverride( name_r ); if ( !ret ) { // get value from map iterator it = find( name_r ); if ( it != end() ) ret = &(it->second); } return ret; } std::ostream & dumpOn( std::ostream & str ) const { for ( auto && kv : *this ) { str << '{' << kv.first << '=' << kv.second << '}' << endl; } return str; } private: /** Get first line from file */ bool parse( const Pathname & dir_r, const std::string & str_r ) { std::ifstream file( (dir_r/str_r).c_str() ); operator[]( str_r ) = str::getline( file, /*trim*/false ); return true; } /** Derive \c releasever_major/_minor from \c releasever, keeping or overwrititing existing values. */ void deriveFromReleasever( const std::string & stem_r, bool overwrite_r ) { if ( count( stem_r ) ) // releasever is defined.. { const std::string & stem_major( stem_r+"_major" ); const std::string & stem_minor( stem_r+"_minor" ); if ( overwrite_r ) splitReleaseverTo( operator[]( stem_r ), &operator[]( stem_major ), &operator[]( stem_minor ) ); else splitReleaseverTo( operator[]( stem_r ), count( stem_major ) ? nullptr : &operator[]( stem_major ), count( stem_minor ) ? nullptr : &operator[]( stem_minor ) ); } } /** Split \c releasever at \c '.' and store major/minor parts as requested. */ void splitReleaseverTo( const std::string & releasever_r, std::string * major_r, std::string * minor_r ) const { if ( major_r || minor_r ) { std::string::size_type pos = releasever_r.find( "." ); if ( pos == std::string::npos ) { if ( major_r ) *major_r = releasever_r; if ( minor_r ) minor_r->clear(); } else { if ( major_r ) *major_r = releasever_r.substr( 0, pos ); if ( minor_r ) *minor_r = releasever_r.substr( pos+1 ) ; } } } /** Check for conditions overwriting the (user) defined values. */ const std::string * checkOverride( const std::string & name_r ) { /////////////////////////////////////////////////////////////////// // Always check for changing releasever{,_major,_minor} (bnc#943563) if ( str::startsWith( name_r, "releasever" ) && ( name_r.size() == 10 || strcmp( name_r.c_str()+10, "_minor" ) == 0 || strcmp( name_r.c_str()+10, "_major" ) == 0 ) ) { std::string val( env::ZYPP_REPO_RELEASEVER() ); if ( !val.empty() ) { // $ZYPP_REPO_RELEASEVER always overwrites any defined value if ( val != operator[]( "$releasever" ) ) { operator[]( "$releasever" ) = std::move(val); deriveFromReleasever( "$releasever", /*overwrite previous values*/true ); } return &operator[]( "$"+name_r ); } else if ( !count( name_r ) ) { // No user defined value, so we follow the target Target_Ptr trg( getZYpp()->getTarget() ); if ( trg ) val = trg->distributionVersion(); else val = Target::distributionVersion( Pathname()/*guess*/ ); if ( val != operator[]( "$_releasever" ) ) { operator[]( "$_releasever" ) = std::move(val); deriveFromReleasever( "$_releasever", /*overwrite previous values*/true ); } return &operator[]( "$_"+name_r ); } // else: return nullptr; // get user value from map } /////////////////////////////////////////////////////////////////// return nullptr; // get user value from map } }; } // namespace /////////////////////////////////////////////////////////////////// std::string RepoVariablesStringReplacer::operator()( const std::string & value ) const { return RepoVarExpand()( value, RepoVarsMap::lookup ); } std::string RepoVariablesStringReplacer::operator()( std::string && value ) const { return RepoVarExpand()( value, RepoVarsMap::lookup ); } Url RepoVariablesUrlReplacer::operator()( const Url & value ) const { static const Url::ViewOptions toReplace = url::ViewOption::DEFAULTS - url::ViewOption::WITH_USERNAME - url::ViewOption::WITH_PASSWORD; const std::string & replaced( RepoVarExpand()( value.asString( toReplace ), RepoVarsMap::lookup ) ); Url newurl; if ( !replaced.empty() ) { newurl = replaced; newurl.setUsername( value.getUsername( url::E_ENCODED ), url::E_ENCODED ); newurl.setPassword( value.getPassword( url::E_ENCODED ), url::E_ENCODED ); } return newurl; } } // namespace repo /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zyppintern { using namespace zypp; // internal helper called when re-acquiring the lock void repoVariablesReset() { repo::RepoVarsMap::instance().clear(); } } // namespace zyppintern /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/RepoVariables.h000066400000000000000000000142011334444677500201740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/RepoVariables.h */ #ifndef ZYPP_REPO_VARIABLES_H_ #define ZYPP_REPO_VARIABLES_H_ #include #include "zypp/base/Function.h" #include "zypp/base/ValueTransform.h" #include "zypp/Url.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace repo { /////////////////////////////////////////////////////////////////// /// \class RepoVarExpand /// \brief Functor expanding repo variables in a string /// /// Known variables are determined by a callback function taking a variable /// name and returning a pointer to the variable value or \c nullptr if unset. /// /// The \c $ character introduces variable expansion. A valid variable name /// is any non-empty case-insensitive sequence of [[:alnum:]_]. /// The variable name to be expanded may be enclosed in braces, which are /// optional but serve to protect the variable to be expanded from characters /// immediately following it which could be interpreted as part of the name. /// /// When braces are used, the matching ending brace is the first \c } not /// escaped by a backslash and not within an embedded variable expansion. /// Within braces only \c $, \c } and \c backslash are escaped by a /// backslash. There is no escaping outside braces, to stay comaptible /// with \c YUM (which does not support braces). /// ///
    ///
  • \c ${variable} /// If \c variable is unset the original is preserved like in \c YUM. /// Otherwise, the value of \c variable is substituted.
  • /// ///
  • \c ${variable:-word} (default value) /// If \c variable is unset or empty, the expansion of \c word is substituted. /// Otherwise, the value of \c variable is substituted.
  • /// ///
  • \c ${variable:+word} (alternate value) /// If variable is unset or empty nothing is substituted. /// Otherwise, the expansion of \c word is substituted.
  • ///
struct RepoVarExpand { /** Function taking a variable name and returning a pointer to the variable value or \c nullptr if unset. */ typedef function VarRetriever; /** Return a copy of \a value_r with embedded variables expanded. */ std::string operator()( const std::string & value_r, VarRetriever varRetriever_r ) const; #ifndef SWIG // Swig treats it as syntax error /** \overload moving */ std::string operator()( std::string && value_r, VarRetriever varRetriever_r ) const; #endif }; /** * \short Functor replacing repository variables * * Replaces the built-in '$arch', '$basearch' and '$releasever' ans also * custom repo variables (\see \ref zypp-repovars) in a string with the * assigned values. * * Additionally $releasever_major and $releasever_minor can be used * to refer to $releasever major number (everything up to the 1st \c '.' ) * and minor number (everything after the 1st \c '.' ). * * \note The $releasever value is overwritten by the environment * variable \c ZYPP_REPO_RELEASEVER. This might be handy for * distribution upogrades like this: * \code * $ export ZYPP_REPO_RELEASEVER=13.2 * $ zypper lr -u * $ zypper dup * ....upgrades to 13.2... * \endcode * The same can be achieved by using zyppers --releasever global option: * \code * $ zypper --releasever 13.2 lr -u * $ zypper --releasever 13.2 dup * ....upgrades to 13.2... * \endcode * (see \ref zypp-envars) * * \code * Example: * ftp://user:secret@site.net/$arch/ -> ftp://user:secret@site.net/i686/ * http://site.net/?basearch=$basearch -> http://site.net/?basearch=i386 * \endcode * * \see \ref RepoVarExpand for supported variable syntax. */ struct RepoVariablesStringReplacer : public std::unary_function { std::string operator()( const std::string & value_r ) const; #ifndef SWIG // Swig treats it as syntax error /** \overload moving */ std::string operator()( std::string && value_r ) const; #endif }; /** * \short Functor replacing repository variables * * Replaces repository variables in the URL (except for user/pass inside authority) * \see RepoVariablesStringReplacer */ struct RepoVariablesUrlReplacer : public std::unary_function { Url operator()( const Url & url_r ) const; }; } // namespace repo /////////////////////////////////////////////////////////////////// /** \relates RepoVariablesStringReplacer Helper managing repo variables replaced strings */ typedef base::ValueTransform RepoVariablesReplacedString; /** \relates RepoVariablesStringReplacer Helper managing repo variables replaced string lists */ typedef base::ContainerTransform, repo::RepoVariablesStringReplacer> RepoVariablesReplacedStringList; /** \relates RepoVariablesUrlReplacer Helper managing repo variables replaced urls */ typedef base::ValueTransform RepoVariablesReplacedUrl; /** \relates RepoVariablesUrlReplacer Helper managing repo variables replaced url lists */ typedef base::ContainerTransform, repo::RepoVariablesUrlReplacer> RepoVariablesReplacedUrlList; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif libzypp-17.7.0/zypp/repo/SUSEMediaVerifier.cc000066400000000000000000000041251334444677500210130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include "zypp/base/Logger.h" #include "zypp/repo/SUSEMediaVerifier.h" using namespace std; namespace zypp { namespace repo { SUSEMediaVerifier::SUSEMediaVerifier(const std::string & vendor_r, const std::string & id_r, const media::MediaNr media_nr) : _media_vendor(vendor_r) , _media_id(id_r) , _media_nr(media_nr) {} SUSEMediaVerifier::SUSEMediaVerifier( int media_nr, const Pathname &path_r ) : _media_nr(media_nr) { std::ifstream str(path_r.asString().c_str()); std::string vendor; std::string id; if ( str ) { getline(str, _media_vendor); getline(str, _media_id); } else { ZYPP_THROW(Exception("Can't setup media verifier using file: '" + path_r.asString() + "'")); } } bool SUSEMediaVerifier::isDesiredMedia(const media::MediaAccessRef &ref) { if (_media_vendor.empty() || _media_id.empty()) return true; Pathname media_file = "/media." + str::numstring(_media_nr) + "/media"; ref->provideFile (media_file, 0); media_file = ref->localPath(media_file); std::ifstream str(media_file.asString().c_str()); std::string vendor; std::string id; getline(str, vendor); getline(str, id); bool ret = ( vendor == _media_vendor && id == _media_id ); if ( !ret ) { DBG << "cached vendor: " << _media_vendor << endl; DBG << "repo vendor: " << vendor << endl; DBG << "cached id: " << _media_id << endl; DBG << "repo id: " << id << endl; } return ret; } } } libzypp-17.7.0/zypp/repo/SUSEMediaVerifier.h000066400000000000000000000041361334444677500206570ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_SUSE_MEDIAVERIFIER_H #define ZYPP_SUSE_MEDIAVERIFIER_H #include "zypp/media/MediaManager.h" #include "zypp/media/MediaAccess.h" namespace zypp { namespace repo { /** * \short Implementation of the traditional SUSE media verifier */ class SUSEMediaVerifier : public zypp::media::MediaVerifierBase { public: /** * \short create a verifier from attributes * * Creates a verifier for the media using * the attributes * * \param vendor_r i.e. "SUSE Linux Products GmbH" * \param id_r i.e. "20070718164719" * \param media_nr media number */ SUSEMediaVerifier(const std::string & vendor_r, const std::string & id_r, const media::MediaNr media_nr = 1); /** * \short creates a verifier from a media file * * \param path_r Path to media.1/media kind file */ SUSEMediaVerifier( int media_nr, const Pathname &path_r ); /** * \short Check if it is the desider media * * Check if the specified attached media contains * the desired media number (e.g. SLES10 CD1). * * Reimplementation of virtual function, will be * called by the component verifying the media. */ virtual bool isDesiredMedia(const media::MediaAccessRef &ref); private: std::string _media_vendor; std::string _media_id; media::MediaNr _media_nr; }; } } #endif libzypp-17.7.0/zypp/repo/ServiceRepos.cc000066400000000000000000000071421334444677500202130ustar00rootroot00000000000000#include #include #include "zypp/base/Logger.h" #include "zypp/repo/ServiceRepos.h" #include "zypp/repo/RepoException.h" #include "zypp/media/MediaException.h" #include "zypp/parser/RepoFileReader.h" #include "zypp/media/MediaManager.h" #include "zypp/parser/RepoindexFileReader.h" #include "zypp/ExternalProgram.h" using std::stringstream; using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace repo { struct ServiceRepos::Impl { virtual ~Impl() {} }; /////////////////////////////////////////////////////////////////// struct RIMServiceRepos : public ServiceRepos::Impl { RIMServiceRepos( const Pathname & /*root_r*/, const ServiceInfo & service, const ServiceRepos::ProcessRepo & callback, const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc() ) { // repoindex.xml must be fetched always without using cookies (bnc #573897) Url serviceUrl( service.url() ); serviceUrl.setQueryParam( "cookies", "0" ); // download the repo index file media::MediaManager mediamanager; media::MediaAccessId mid = mediamanager.open( serviceUrl ); mediamanager.attach( mid ); mediamanager.provideFile( mid, "repo/repoindex.xml" ); Pathname path = mediamanager.localPath(mid, "repo/repoindex.xml" ); parser::RepoindexFileReader reader(path, callback); service.setProbedTtl( reader.ttl() ); // hack! Modifying the const Service to set parsed TTL mediamanager.release( mid ); mediamanager.close( mid ); } }; /////////////////////////////////////////////////////////////////// struct PluginServiceRepos : public ServiceRepos::Impl { PluginServiceRepos( const Pathname & root_r, const ServiceInfo & service, const ServiceRepos::ProcessRepo & callback, const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc() ) { // bsc#1080693: Service script needs to be executed chrooted to the RepoManagers rootDir. // The service is not aware of the rootDir, so it's explicitly passed and needs to be // stripped from the URLs path. stringstream buffer; ExternalProgram::Arguments args; args.reserve( 3 ); args.push_back( "/bin/sh" ); args.push_back( "-c" ); args.push_back( Pathname::stripprefix( root_r, service.url().getPathName() ).asString() ); ExternalProgramWithStderr prog( args, root_r ); prog >> buffer; if ( prog.close() != 0 ) { // ServicePluginInformalException: // Ignore this error but we'd like to report it somehow... std::string errbuffer; prog.stderrGetUpTo( errbuffer, '\0' ); ERR << "Capture plugin error:[" << endl << errbuffer << endl << ']' << endl; ZYPP_THROW( repo::ServicePluginInformalException( service, errbuffer ) ); } parser::RepoFileReader parser( buffer, callback ); } }; /////////////////////////////////////////////////////////////////// ServiceRepos::ServiceRepos( const Pathname & root_r, const ServiceInfo & service, const ServiceRepos::ProcessRepo & callback, const ProgressData::ReceiverFnc &progress ) : _impl( ( service.type() == ServiceType::PLUGIN ) ? static_cast( new PluginServiceRepos( root_r, service, callback, progress ) ) : static_cast( new RIMServiceRepos( root_r, service, callback, progress ) ) ) {} ServiceRepos::~ServiceRepos() {} } // namespace repo /////////////////////////////////////////////////////////////////// } //namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/ServiceRepos.h000066400000000000000000000033041334444677500200510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_REPO_SERVICE_REPOS #define ZYPP_REPO_SERVICE_REPOS #include "zypp/base/NonCopyable.h" #include "zypp/ProgressData.h" #include "zypp/ServiceInfo.h" #include "zypp/RepoInfo.h" namespace zypp { namespace repo { /** * Retrieval of repository list for a service. */ class ServiceRepos : private base::NonCopyable { public: /** * Return false from the callback to get a \ref AbortRequestException * to be thrown and the processing to be canceled. */ typedef function< bool( const RepoInfo & )> ProcessRepo; /** * bsc#1080693: Explicitly pass the RemoManagers rootDir until it can be queried from the ServiceInfo. * Required to execute plugin services chrooted. */ ServiceRepos( const Pathname & root_r, const ServiceInfo & service, const ProcessRepo & callback, const ProgressData::ReceiverFnc &progress = ProgressData::ReceiverFnc() ); ~ServiceRepos(); public: class Impl; //!< Expose type only private: RW_pointer _impl; }; } // ns repo } // ns zypp #endif libzypp-17.7.0/zypp/repo/ServiceType.cc000066400000000000000000000041201334444677500200350ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include #include "zypp/repo/RepoException.h" #include "ServiceType.h" namespace zypp { namespace repo { static std::map _table; const ServiceType ServiceType::RIS(ServiceType::RIS_e); const ServiceType ServiceType::NONE(ServiceType::NONE_e); const ServiceType ServiceType::PLUGIN(ServiceType::PLUGIN_e); ServiceType::ServiceType(const std::string & strval_r) : _type(parse(strval_r)) {} ServiceType::Type ServiceType::parse(const std::string & strval_r) { if (_table.empty()) { // initialize it _table["ris"] = ServiceType::RIS_e; _table["RIS"] = ServiceType::RIS_e; _table["nu"] = ServiceType::RIS_e; _table["NU"] = ServiceType::RIS_e; _table["plugin"] = ServiceType::PLUGIN_e; _table["PLUGIN"] = ServiceType::PLUGIN_e; _table["NONE"] = _table["none"] = ServiceType::NONE_e; } std::map::const_iterator it = _table.find(strval_r); if (it == _table.end()) { ZYPP_THROW(RepoUnknownTypeException( "Unknown service type '" + strval_r + "'")); } return it->second; } const std::string & ServiceType::asString() const { static std::map _table; if ( _table.empty() ) { // initialize it _table[RIS_e] = "ris"; _table[PLUGIN_e] = "plugin"; _table[NONE_e] = "NONE"; } return _table[_type]; } } // ns repo } // ns zypp // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/repo/ServiceType.h000066400000000000000000000042021334444677500177000ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_SERVICE_TYPE_H_ #define ZYPP_SERVICE_TYPE_H_ #include #include namespace zypp { namespace repo { /** * \short Service type enumeration * * Currently we have only RIS service, but more can come later. */ struct ServiceType { /** * Repository Index Service (RIS) * (formerly known as 'Novell Update' (NU) service) */ static const ServiceType RIS; /** No service set. */ static const ServiceType NONE; /** * Plugin services are scripts installed on * your system that provide the package manager with * repositories. * * The mechanism used to create this repository list * is completely up to the script */ static const ServiceType PLUGIN; enum Type { NONE_e, RIS_e, PLUGIN_e, }; ServiceType() : _type(NONE_e) {} ServiceType(Type type) : _type(type) {} explicit ServiceType(const std::string & strval_r); Type toEnum() const { return _type; } ServiceType::Type parse(const std::string & strval_r); const std::string & asString() const; Type _type; }; inline std::ostream & operator<<( std::ostream & str, const ServiceType & obj ) { return str << obj.asString(); } inline bool operator==(const ServiceType & obj1, const ServiceType & obj2) { return obj1._type == obj2._type; } inline bool operator!=(const ServiceType & obj1, const ServiceType & obj2) { return ! (obj1 == obj2); } } // ns repo } // ns zypp #endif /* ZYPP_SERVICE_TYPE_H_ */ // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/repo/SrcPackageProvider.cc000066400000000000000000000030001334444677500213050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/SrcPackageProvider.cc * */ #include #include #include "zypp/repo/SrcPackageProvider.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/SrcPackage.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace repo { SrcPackageProvider::SrcPackageProvider( repo::RepoMediaAccess & access_r ) : _access( access_r ) {} SrcPackageProvider::~SrcPackageProvider() {} ManagedFile SrcPackageProvider::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ) const { return _access.provideFile( srcPackage_r->repoInfo(), srcPackage_r->location() ); } } // namespace repo /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/repo/SrcPackageProvider.h000066400000000000000000000042351334444677500211620ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/repo/SrcPackageProvider.h * */ #ifndef ZYPP_REPO_SRCPACKAGEPROVIDER_H #define ZYPP_REPO_SRCPACKAGEPROVIDER_H #include #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/repo/RepoProvideFile.h" #include "zypp/ManagedFile.h" #include "zypp/ResTraits.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace repo { ///////////////////////////////////////////////////////////////// class RepoMediaAccess; /////////////////////////////////////////////////////////////////// // // CLASS NAME : SrcPackageProvider // /** */ class SrcPackageProvider : private base::NonCopyable { public: /** Ctor */ SrcPackageProvider( repo::RepoMediaAccess & access_r ); /** Dtor */ ~SrcPackageProvider(); public: /** Provide SrcPackage in a local file. */ ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ) const; private: RepoMediaAccess & _access; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace repo /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_REPO_SRCPACKAGEPROVIDER_H libzypp-17.7.0/zypp/repo/susetags/000077500000000000000000000000001334444677500171255ustar00rootroot00000000000000libzypp-17.7.0/zypp/repo/susetags/Downloader.cc000066400000000000000000000155661334444677500215470ustar00rootroot00000000000000 #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/base/Regex.h" #include "zypp/OnMediaLocation.h" #include "zypp/MediaSetAccess.h" #include "zypp/Fetcher.h" #include "zypp/Locale.h" #include "zypp/ZConfig.h" #include "zypp/repo/MediaInfoDownloader.h" #include "zypp/repo/susetags/Downloader.h" #include "zypp/parser/ParseException.h" #include "zypp/parser/susetags/RepoIndex.h" #include "zypp/base/UserRequestException.h" using namespace std; using namespace zypp::parser; using namespace zypp::parser::susetags; namespace zypp { namespace repo { namespace susetags { Downloader::Downloader( const RepoInfo &repoinfo, const Pathname &delta_dir ) : repo::Downloader(repoinfo), _delta_dir(delta_dir) { } RepoStatus Downloader::status( MediaSetAccess &media ) { RepoStatus ret( media.provideOptionalFile( repoInfo().path() + "/content") ); if ( !ret.empty() ) // else: mandatory master index is missing ret = ret && RepoStatus( media.provideOptionalFile( "/media.1/media" ) ); // else: mandatory master index is missing -> stay empty return ret; } // search old repository file file to run the delta algorithm on static Pathname search_deltafile( const Pathname &dir, const Pathname &file ) { Pathname deltafile(dir + file.basename()); if (PathInfo(deltafile).isExist()) return deltafile; return Pathname(); } /** \todo: Downloading/sigcheck of master index shoudl be common in base class */ void Downloader::download( MediaSetAccess &media, const Pathname &dest_dir, const ProgressData::ReceiverFnc & progress ) { downloadMediaInfo( dest_dir, media ); Pathname masterIndex( repoInfo().path() / "/content" ); defaultDownloadMasterIndex( media, dest_dir, masterIndex ); // Content file first to get the repoindex { Pathname inputfile( dest_dir / masterIndex ); ContentFileReader content; content.setRepoIndexConsumer( bind( &Downloader::consumeIndex, this, _1 ) ); content.parse( inputfile ); } if ( ! _repoindex ) { ZYPP_THROW( ParseException( (dest_dir+repoInfo().path()).asString() + ": " + "No repository index in content file." ) ); } MIL << "RepoIndex: " << _repoindex << endl; if ( _repoindex->metaFileChecksums.empty() ) { ZYPP_THROW( ParseException( (dest_dir+repoInfo().path()).asString() + ": " + "No metadata checksums in content file." ) ); } if ( _repoindex->signingKeys.empty() ) { WAR << "No signing keys defined." << endl; } // Prepare parsing Pathname descr_dir = _repoindex->descrdir; // path below reporoot //_datadir = _repoIndex->datadir; // path below reporoot std::map availablePackageTranslations; for_( it, _repoindex->metaFileChecksums.begin(), _repoindex->metaFileChecksums.end() ) { // omit unwanted translations if ( str::hasPrefix( it->first, "packages" ) ) { static const str::regex rx_packages( "^packages((.gz)?|(.([^.]*))(.gz)?)$" ); str::smatch what; if ( str::regex_match( it->first, what, rx_packages ) ) { if ( what[4].empty() // packages(.gz)? || what[4] == "DU" || what[4] == "en" ) { ; /* always downloaded */ } else if ( what[4] == "FL" ) { continue; /* never downloaded */ } else { // remember and decide later availablePackageTranslations[what[4]] = it; continue; } } else continue; // discard } else if ( it->first == "patterns.pat" || it->first == "patterns.pat.gz" ) { // take all patterns in one go } else if ( str::endsWith( it->first, ".pat" ) || str::endsWith( it->first, ".pat.gz" ) ) { // *** see also zypp/parser/susetags/RepoParser.cc *** // omit unwanted patterns, see https://bugzilla.novell.com/show_bug.cgi?id=298716 // expect "..pat[.gz]", might contain additional dots // split at dots, take .pat or .pat.gz into account std::vector patparts; unsigned archpos = 2; // expect "..pat[.gz]", might contain additional dots unsigned count = str::split( it->first, std::back_inserter(patparts), "." ); if ( patparts[count-1] == "gz" ) archpos++; if ( count > archpos ) { try // might by an invalid architecture { Arch patarch( patparts[count-archpos] ); if ( !patarch.compatibleWith( ZConfig::instance().systemArchitecture() ) ) { // discard, if not compatible MIL << "Discarding pattern " << it->first << endl; continue; } } catch ( const Exception & excpt ) { WAR << "Pattern file name does not contain recognizable architecture: " << it->first << endl; // keep .pat file if it doesn't contain an recognizable arch } } } MIL << "adding job " << it->first << endl; OnMediaLocation location( repoInfo().path() + descr_dir + it->first, 1 ); location.setChecksum( it->second ); enqueueDigested(location, FileChecker(), search_deltafile(_delta_dir + descr_dir, it->first)); } // check whether to download more package translations: { auto fnc_checkTransaltions( [&]( const Locale & locale_r ) { for ( Locale toGet( locale_r ); toGet; toGet = toGet.fallback() ) { auto it( availablePackageTranslations.find( toGet.code() ) ); if ( it != availablePackageTranslations.end() ) { auto mit( it->second ); MIL << "adding job " << mit->first << endl; OnMediaLocation location( repoInfo().path() + descr_dir + mit->first, 1 ); location.setChecksum( mit->second ); enqueueDigested(location, FileChecker(), search_deltafile(_delta_dir + descr_dir, mit->first)); break; } } }); for ( const Locale & it : ZConfig::instance().repoRefreshLocales() ) { fnc_checkTransaltions( it ); } fnc_checkTransaltions( ZConfig::instance().textLocale() ); } for_( it, _repoindex->mediaFileChecksums.begin(), _repoindex->mediaFileChecksums.end() ) { // Repo adopts license files listed in HASH if ( it->first != "license.tar.gz" ) continue; MIL << "adding job " << it->first << endl; OnMediaLocation location( repoInfo().path() + it->first, 1 ); location.setChecksum( it->second ); enqueueDigested(location, FileChecker(), search_deltafile(_delta_dir, it->first)); } for_( it, _repoindex->signingKeys.begin(),_repoindex->signingKeys.end() ) { MIL << "adding job " << it->first << endl; OnMediaLocation location( repoInfo().path() + it->first, 1 ); location.setChecksum( it->second ); enqueueDigested(location); } start( dest_dir, media ); } void Downloader::consumeIndex( const RepoIndex_Ptr & data_r ) { MIL << "Consuming repo index" << endl; _repoindex = data_r; } }// ns susetags }// ns source } // ns zypp libzypp-17.7.0/zypp/repo/susetags/Downloader.h000066400000000000000000000046631334444677500214050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_SOURCE_SUSETAGS_DOWNLOADER #define ZYPP_SOURCE_SUSETAGS_DOWNLOADER #include "zypp/Url.h" #include "zypp/Pathname.h" #include "zypp/ProgressData.h" #include "zypp/RepoInfo.h" #include "zypp/RepoStatus.h" #include "zypp/MediaSetAccess.h" #include "zypp/repo/Downloader.h" #include "zypp/parser/susetags/ContentFileReader.h" namespace zypp { namespace repo { namespace susetags { /** * \short Downloader for SUSETags (YaST2) repositories * Encapsulates all the knowledge of which files have * to be downloaded to the local disk. */ class Downloader : public repo::Downloader { public: /** * \short Constructor from the repository information * * The repository information allows more context to be given * to the user when something fails. * * \param info Repository information */ Downloader( const RepoInfo &info, const Pathname &delta_dir = Pathname() ); /** * \short Download metadata to a local directory * * \param media Media access to the repository url * \param dest_dir Local destination directory * \param progress progress receiver */ void download( MediaSetAccess &media, const Pathname &dest_dir, const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc() ); /** * \short Status of the remote repository */ RepoStatus status( MediaSetAccess &media ); /** * Content file parser consumer */ void consumeIndex( const parser::susetags::RepoIndex_Ptr & data_r ); private: parser::susetags::RepoIndex_Ptr _repoindex; Pathname _delta_dir; }; } // ns susetags } // ns source } // ns zypp #endif libzypp-17.7.0/zypp/repo/yum/000077500000000000000000000000001334444677500161015ustar00rootroot00000000000000libzypp-17.7.0/zypp/repo/yum/Downloader.cc000066400000000000000000000154461334444677500205200ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include "zypp/base/String.h" #include "zypp/base/LogTools.h" #include "zypp/base/Function.h" #include "zypp/ZConfig.h" #include "zypp/parser/yum/RepomdFileReader.h" #include "zypp/parser/yum/PatchesFileReader.h" #include "Downloader.h" #include "zypp/repo/MediaInfoDownloader.h" #include "zypp/base/UserRequestException.h" #include "zypp/parser/xml/Reader.h" using namespace std; using namespace zypp::xml; using namespace zypp::parser::yum; namespace zypp { namespace repo { namespace yum { Downloader::Downloader( const RepoInfo &repoinfo , const Pathname &delta_dir) : repo::Downloader(repoinfo), _delta_dir(delta_dir), _media_ptr(0L) {} RepoStatus Downloader::status( MediaSetAccess &media ) { RepoStatus ret( media.provideFile( repoInfo().path() / "/repodata/repomd.xml" ) ); if ( !ret.empty() ) // else: mandatory master index is missing ret = ret && RepoStatus( media.provideOptionalFile( "/media.1/media" ) ); // else: mandatory master index is missing -> stay empty return ret; } static OnMediaLocation loc_with_path_prefix( const OnMediaLocation & loc, const Pathname & prefix ) { if (prefix.empty() || prefix == "/") return loc; OnMediaLocation loc_with_path(loc); loc_with_path.changeFilename(prefix / loc.filename()); return loc_with_path; } // search old repository file file to run the delta algorithm on static Pathname search_deltafile( const Pathname & dir, const Pathname & file ) { Pathname deltafile; if (!PathInfo(dir).isDir()) return deltafile; string base = file.basename(); size_t hypoff = base.find("-"); if (hypoff != string::npos) base.replace(0, hypoff + 1, ""); size_t basesize = base.size(); std::list retlist; if (!filesystem::readdir(retlist, dir, false)) { for_( it, retlist.begin(), retlist.end() ) { string fn = it->asString(); if (fn.size() >= basesize && fn.substr(fn.size() - basesize, basesize) == base) deltafile = *it; } } return deltafile; } bool Downloader::patches_Callback( const OnMediaLocation & loc_r, const string & id_r ) { OnMediaLocation loc_with_path(loc_with_path_prefix(loc_r, repoInfo().path())); MIL << id_r << " : " << loc_with_path << endl; this->enqueueDigested(loc_with_path, FileChecker(), search_deltafile(_delta_dir + "repodata", loc_r.filename())); return true; } //bool repomd_Callback2( const OnMediaLocation &loc, const ResourceType &dtype, const std::string &typestr, UserData & userData_r ); /////////////////////////////////////////////////////////////////// namespace { /////////////////////////////////////////////////////////////////// /// \class Impl /// \brief Helper filtering the files offered by a RepomdFileReader /// /// Clumsy construct; basically an Impl class for Downloader, maintained /// in Downloader::download only while parsing a repomd.xml. /// /// Introduced because Downloader itself lacks an Impl class, thus can't /// be extended to provide more data to the callbacks without losing /// binary compatibility. /////////////////////////////////////////////////////////////////// struct RepomdFileReaderCallback2 { RepomdFileReaderCallback2( const RepomdFileReader::ProcessResource & origCallback_r ) : _origCallback( origCallback_r ) { addWantedLocale( ZConfig::instance().textLocale() ); for ( const Locale & it : ZConfig::instance().repoRefreshLocales() ) addWantedLocale( it ); } /** The callback invoked by the RepomdFileReader */ bool repomd_Callback2( const OnMediaLocation & loc_r, const ResourceType & dtype_r, const std::string & typestr_r ) { // filter well known resource types if ( dtype_r == ResourceType::OTHER || dtype_r == ResourceType::FILELISTS ) return true; // skip it // filter custom resource types (by string) if ( dtype_r == ResourceType::NONE ) { // susedata.LANG if ( str::hasPrefix( typestr_r, "susedata." ) && ! wantLocale( Locale(typestr_r.c_str()+9) ) ) return true; // skip it } // take it return( _origCallback ? _origCallback( loc_r, dtype_r ) : true ); } private: bool wantLocale( const Locale & locale_r ) const { return _wantedLocales.count( locale_r ); } void addWantedLocale( Locale locale_r ) { while ( locale_r ) { _wantedLocales.insert( locale_r ); locale_r = locale_r.fallback(); } } private: RepomdFileReader::ProcessResource _origCallback; ///< Original Downloader callback LocaleSet _wantedLocales; ///< Locales do download }; } // namespace /////////////////////////////////////////////////////////////////// bool Downloader::repomd_Callback( const OnMediaLocation & loc_r, const ResourceType & dtype_r ) { // NOTE: Filtering of unwanted files is done in RepomdFileReaderCallback2! // schedule file for download const OnMediaLocation & loc_with_path(loc_with_path_prefix(loc_r, repoInfo().path())); this->enqueueDigested(loc_with_path, FileChecker(), search_deltafile(_delta_dir + "repodata", loc_r.filename())); // We got a patches file we need to read, to add patches listed // there, so we transfer what we have in the queue, and // queue the patches in the patches callback if ( dtype_r == ResourceType::PATCHES ) { this->start( _dest_dir, *_media_ptr ); // now the patches.xml file must exists PatchesFileReader( _dest_dir + repoInfo().path() + loc_r.filename(), bind( &Downloader::patches_Callback, this, _1, _2)); } return true; } void Downloader::download( MediaSetAccess & media, const Pathname & dest_dir, const ProgressData::ReceiverFnc & progressrcv ) { downloadMediaInfo( dest_dir, media ); Pathname masterIndex( repoInfo().path() / "/repodata/repomd.xml" ); defaultDownloadMasterIndex( media, dest_dir, masterIndex ); // init the data stored in Downloader itself _media_ptr = (&media); _dest_dir = dest_dir; // init the extended data RepomdFileReaderCallback2 pimpl( bind(&Downloader::repomd_Callback, this, _1, _2) ); // setup parser RepomdFileReader( dest_dir / masterIndex, RepomdFileReader::ProcessResource2( bind(&RepomdFileReaderCallback2::repomd_Callback2, &pimpl, _1, _2, _3) ) ); // ready, go! start( dest_dir, media ); } } // namespace yum } // namespace repo } // namespace zypp libzypp-17.7.0/zypp/repo/yum/Downloader.h000066400000000000000000000054461334444677500203610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef ZYPP_SOURCE_YUM_DOWNLOADER #define ZYPP_SOURCE_YUM_DOWNLOADER #include "zypp/Url.h" #include "zypp/Pathname.h" #include "zypp/Fetcher.h" #include "zypp/OnMediaLocation.h" #include "zypp/MediaSetAccess.h" #include "zypp/ProgressData.h" #include "zypp/RepoInfo.h" #include "zypp/RepoStatus.h" #include "zypp/repo/Downloader.h" #include "zypp/repo/yum/ResourceType.h" namespace zypp { namespace repo { namespace yum { /** * \short Downloader for YUM (rpm-nmd) repositories * Encapsulates all the knowledge of which files have * to be downloaded to the local disk. * * \code * MediaSetAccess media(url); * Downloader yum(path); * yum.download( media, "localdir"); * \endcode */ class Downloader : public repo::Downloader { public: /** * \short Constructor from the repository information * * The repository information allows more context to be given * to the user when something fails. * * \param info Repository information */ Downloader( const RepoInfo &info , const Pathname &delta_dir = Pathname()); /** * \short Download metadata to a local directory * * \param media Media access to the repository url * \param dest_dir Local destination directory * \param progress progress receiver */ void download( MediaSetAccess &media, const Pathname &dest_dir, const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc() ); /** * \short Status of the remote repository */ RepoStatus status( MediaSetAccess &media ); protected: bool repomd_Callback( const OnMediaLocation &loc, const ResourceType &dtype ); bool patches_Callback( const OnMediaLocation &loc, const std::string &id ); private: // TODO: Use pimpl to be extensible; but breaks bincompat :( Pathname _dest_dir; Pathname _delta_dir; std::list _patches_files; MediaSetAccess *_media_ptr; }; } // ns yum } // ns source } // ns zypp #endif libzypp-17.7.0/zypp/repo/yum/ResourceType.cc000066400000000000000000000065231334444677500210470ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #include #include #include "zypp/base/Exception.h" #include "ResourceType.h" namespace zypp { namespace repo { namespace yum { static std::map _table; const ResourceType ResourceType::NONE(ResourceType::NONE_e); const ResourceType ResourceType::REPOMD(ResourceType::REPOMD_e); const ResourceType ResourceType::PRIMARY(ResourceType::PRIMARY_e); const ResourceType ResourceType::OTHER(ResourceType::OTHER_e); const ResourceType ResourceType::FILELISTS(ResourceType::FILELISTS_e); const ResourceType ResourceType::GROUP(ResourceType::GROUP_e); const ResourceType ResourceType::PATCHES(ResourceType::PATCHES_e); const ResourceType ResourceType::PATCH(ResourceType::PATCH_e); const ResourceType ResourceType::PRODUCT(ResourceType::PRODUCT_e); const ResourceType ResourceType::PATTERNS(ResourceType::PATTERNS_e); const ResourceType ResourceType::PRIMARY_DB(ResourceType::PRIMARY_DB_e); const ResourceType ResourceType::OTHER_DB(ResourceType::OTHER_DB_e); ResourceType::ResourceType(const std::string & strval_r) : _type(parse(strval_r)) {} ResourceType::Type ResourceType::parse(const std::string & strval_r) { if (_table.empty()) { // initialize it _table["repomd"] = ResourceType::REPOMD_e; _table["primary"] = ResourceType::PRIMARY_e; _table["other"] = ResourceType::OTHER_e; _table["filelists"] = ResourceType::FILELISTS_e; _table["group"] = ResourceType::GROUP_e; _table["patches"] = ResourceType::PATCHES_e; _table["patch"] = ResourceType::PATCH_e; _table["product"] = ResourceType::PRODUCT_e; _table["patterns"] = ResourceType::PATTERNS_e; _table["primary_db"] = ResourceType::PRIMARY_DB_e; _table["other_db"] = ResourceType::OTHER_DB_e; _table["NONE"] = _table["none"] = ResourceType::NONE_e; } std::map::const_iterator it = _table.find(strval_r); if (it == _table.end()) { return ResourceType::NONE_e; } return it->second; } const std::string & ResourceType::asString() const { static std::map _table; if ( _table.empty() ) { // initialize it _table[REPOMD_e] = "repomd"; _table[PRIMARY_e] = "primary"; _table[OTHER_e] = "other"; _table[FILELISTS_e] = "filelists"; _table[GROUP_e] = "group"; _table[PATCHES_e] = "patches"; _table[PATCH_e] = "patch"; _table[PRODUCT_e] = "product"; _table[PATTERNS_e] = "patterns"; _table[OTHER_DB_e] = "other_db"; _table[PRIMARY_DB_e] = "primary_db"; _table[NONE_e] = "NONE"; } return _table[_type]; } } // ns yum } // ns source } // ns zypp // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/repo/yum/ResourceType.h000066400000000000000000000043251334444677500207070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ #ifndef YUMRESOURCETYPE_H_ #define YUMRESOURCETYPE_H_ #include #include namespace zypp { namespace repo { namespace yum { /** * */ struct ResourceType { static const ResourceType NONE; // unknown static const ResourceType REPOMD; static const ResourceType PRIMARY; static const ResourceType OTHER; static const ResourceType FILELISTS; static const ResourceType GROUP; static const ResourceType PATCHES; // suse extension static const ResourceType PATCH; // suse extension static const ResourceType PRODUCT; // suse extension static const ResourceType PATTERNS; // suse extension // sqlite caches yum extensions: static const ResourceType PRIMARY_DB; // yum extension static const ResourceType OTHER_DB; // yum extension enum Type { NONE_e, REPOMD_e, PRIMARY_e, OTHER_e, FILELISTS_e, GROUP_e, PATCHES_e, PATCH_e, PRODUCT_e, PATTERNS_e, PRIMARY_DB_e, OTHER_DB_e, }; ResourceType(Type type) : _type(type) {} explicit ResourceType(const std::string & strval_r); Type toEnum() const { return _type; } ResourceType::Type parse(const std::string & strval_r); const std::string & asString() const; Type _type; }; inline std::ostream & operator<<( std::ostream & str, const ResourceType & obj ) { return str << obj.asString(); } inline bool operator==(const ResourceType & obj1, const ResourceType & obj2) { return obj1._type == obj2._type; } } // ns yum } // ns source } // ns zypp #endif /*YUMRESOURCETYPE_H_*/ // vim: set ts=2 sts=2 sw=2 et ai: libzypp-17.7.0/zypp/sat/000077500000000000000000000000001334444677500151115ustar00rootroot00000000000000libzypp-17.7.0/zypp/sat/AttrMatcher.h000066400000000000000000000023661334444677500175070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/AttrMatcher.h * */ #ifndef ZYPP_SAT_ATTRMATCHER_H #define ZYPP_SAT_ATTRMATCHER_H #warning sat::AttrMatcher was renamed to StrMatcher. Deprecated include of zypp/sat/AttrMatcher.h use zypp/base/StrMatcher.h #include "zypp/base/StrMatcher.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { typedef StrMatcher AttrMatcher; } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_ATTRMATCHER_H libzypp-17.7.0/zypp/sat/FileConflicts.cc000066400000000000000000000124621334444677500201510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/FileConflicts.cc */ #include #include #include "zypp/sat/FileConflicts.h" #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/Xml.h" #include "zypp/CheckSum.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { std::string FileConflicts::Conflict::asUserString() const { if ( lhsFilename() == rhsFilename() ) { static const char * text[2][2] = {{ // [lhs][rhs] 0 = installed; 1 = to be installed // TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) N_( "File %1%\n" " from package\n" " %2%\n" " conflicts with file from package\n" " %3%" ), // TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) N_( "File %1%\n" " from package\n" " %2%\n" " conflicts with file from install of\n" " %3%" ) },{ // TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) N_( "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from package\n" " %3%" ), // TranslatorExplanation %1%(filename) %2%(package1) %3%(package2) N_( "File %1%\n" " from install of\n" " %2%\n" " conflicts with file from install of\n" " %3%" ) }}; return str::Format( text[lhsSolvable().isSystem()?0:1][rhsSolvable().isSystem()?0:1] ) % lhsFilename() % lhsSolvable().asUserString() % rhsSolvable().asUserString(); } else { static const char * text[2][2] = {{ // [lhs][rhs] 0 = installed; 1 = to be installed // TranslatorExplanation %1%(filename1) %2%(package1) %%3%(filename2) 4%(package2) N_( "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" ), // TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) N_( "File %1%\n" " from package\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" ) },{ // TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) N_( "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from package\n" " %4%" ), // TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2) N_( "File %1%\n" " from install of\n" " %2%\n" " conflicts with file\n" " %3%\n" " from install of\n" " %4%" ) }}; return str::Format( text[lhsSolvable().isSystem()?0:1][rhsSolvable().isSystem()?0:1] ) % lhsFilename() % lhsSolvable().asUserString() % rhsFilename() % rhsSolvable().asUserString(); } } std::ostream & operator<<( std::ostream & str, const FileConflicts & obj ) { return dumpRange( str << "(" << obj.size() << ") ", obj.begin(), obj.end() ); } std::ostream & operator<<( std::ostream & str, const FileConflicts::Conflict & obj ) { if ( obj.lhsFilename() == obj.rhsFilename() ) return str << str::Format( "%s:\n %s[%s]\n %s[%s]" ) % obj.lhsFilename() % obj.lhsSolvable() % obj.lhsFilemd5() % obj.rhsSolvable() % obj.rhsFilemd5(); return str << str::Format( "%s - %s:\n %s[%s]\n %s[%s]" ) % obj.lhsFilename() % obj.rhsFilename() % obj.lhsSolvable() % obj.lhsFilemd5() % obj.rhsSolvable() % obj.rhsFilemd5(); } std::ostream & dumpAsXmlOn( std::ostream & str, const FileConflicts & obj ) { xmlout::Node guard( str, "fileconflicts", { "size", obj.size() } ); if ( ! obj.empty() ) { *guard << "\n"; for ( const auto & el : obj ) dumpAsXmlOn( *guard, el ) << "\n"; } return str; } namespace { std::ostream & dumpAsXmlHelper( std::ostream & str, const std::string & tag_r, IdString filename_r, IdString md5sum_r, Solvable solv_r ) { xmlout::Node guard( str, tag_r ); *xmlout::Node( *guard, "file" ) << filename_r; dumpAsXmlOn( *guard, CheckSum( md5sum_r.asString() ) ); dumpAsXmlOn( *guard, solv_r ); return str; } } std::ostream & dumpAsXmlOn( std::ostream & str, const FileConflicts::Conflict & obj ) { xmlout::Node guard( str, "fileconflict" ); dumpAsXmlHelper( *guard<<"\n", "lhs", obj.lhsFilename(), obj.lhsFilemd5(), obj.lhsSolvable() ); dumpAsXmlHelper( *guard<<"\n", "rhs", obj.rhsFilename(), obj.rhsFilemd5(), obj.rhsSolvable() ); return str; } } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/FileConflicts.h000066400000000000000000000072441334444677500200150ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/FileConflicts.h */ #ifndef ZYPP_SAT_FILECONFLICTS_H #define ZYPP_SAT_FILECONFLICTS_H #include #include "zypp/base/PtrTypes.h" #include "zypp/sat/Queue.h" #include "zypp/sat/Solvable.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { /////////////////////////////////////////////////////////////////// /// \class FileConflicts /// \brief Libsolv queue representing file conflicts. /////////////////////////////////////////////////////////////////// class FileConflicts : private Queue { friend bool operator==( const FileConflicts & lhs, const FileConflicts & rhs ); static constexpr size_type queueBlockSize = 6; public: /** * \class Conflict * \brief A file conflict. */ struct Conflict { IdString lhsFilename() const { return IdString( _data[0] ); } Solvable lhsSolvable() const { return Solvable( _data[1] ); } IdString lhsFilemd5() const { return IdString( _data[2] ); } IdString rhsFilename() const { return IdString( _data[3] ); } Solvable rhsSolvable() const { return Solvable( _data[4] ); } IdString rhsFilemd5() const { return IdString( _data[5] ); } /** Ready to use (translated) string describing the Conflict */ std::string asUserString() const; private: detail::IdType _data[queueBlockSize]; }; public: using Queue::size_type; typedef Conflict value_type; typedef const value_type* const_iterator; using Queue::empty; size_type size() const { return Queue::size()/queueBlockSize; } const_iterator begin() const { return reinterpret_cast(Queue::begin()); } const_iterator end() const { return reinterpret_cast(Queue::end()); } public: using Queue::operator detail::CQueue *; ///< libsolv backdoor using Queue::operator const detail::CQueue *; ///< libsolv backdoor }; /** \relates FileConflicts Stream output */ std::ostream & operator<<( std::ostream & str, const FileConflicts & obj ); /** \relates FileConflicts::Conflict Stream output */ std::ostream & operator<<( std::ostream & str, const FileConflicts::Conflict & obj ); /** \relates FileConflicts XML output */ std::ostream & dumpAsXmlOn( std::ostream & str, const FileConflicts & obj ); /** \relates FileConflicts::Conflict XML output */ std::ostream & dumpAsXmlOn( std::ostream & str, const FileConflicts::Conflict & obj ); /** \relates FileConflicts */ inline bool operator==( const FileConflicts & lhs, const FileConflicts & rhs ) { return static_cast(lhs) == static_cast(rhs); } /** \relates FileConflicts */ inline bool operator!=( const FileConflicts & lhs, const FileConflicts & rhs ) { return !( lhs == rhs ); } } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_FILECONFLICTS_H libzypp-17.7.0/zypp/sat/LocaleSupport.cc000066400000000000000000000037471334444677500202270ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/LocaleSupport.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/sat/LocaleSupport.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const LocaleSupport & obj ) { return str << obj.locale() << '(' << (obj.isAvailable()?'a':'_') << (obj.isRequested()?'R':'_') << ')'; } /****************************************************************** ** ** FUNCTION NAME : dumpOn ** FUNCTION TYPE : std::ostream & */ std::ostream & dumpOn( std::ostream & str, const LocaleSupport & obj ) { return dumpRange( str << obj, obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/LocaleSupport.h000066400000000000000000000115701334444677500200620ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/LocaleSupport.h * */ #ifndef ZYPP_SAT_LOCALESUPPORT_H #define ZYPP_SAT_LOCALESUPPORT_H #include #include "zypp/sat/detail/PoolMember.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/Locale.h" #include "zypp/Filter.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : LocaleSupport // /** Convenience methods to manage support for a specific \ref Locale. * * \code * sat::LocaleSupport myLocale( Locale("de") ); * * if ( myLocale.isAvailable() ) * { * MIL << "Support for locale '" << myLocale.locale() << "' is available." << endl; * } * if ( ! myLocale.isRequested() ) * { * MIL << "Will enable support for locale '" << myLocale.locale() << "'." << endl; * myLocale.setRequested( true ); * } * MIL << "Packages supporting locale '" << myLocale.locale() << "':" << endl; * for_( it, myLocale.begin(), myLocale.end() ) * { * // iterate over sat::Solvables * MIL << " " << *it << endl; * // or get the PoolItems * DBG << " " << PoolItem(*it) << endl; * } * \endcode * * \todo If iterator is too slow install a proxy watching the Pool::serial. */ class LocaleSupport : public SolvIterMixin > , protected detail::PoolMember { public: /** Default ctor */ LocaleSupport() {} /** Ctor taking a \ref Locale. */ LocaleSupport( const Locale & locale_r ) : _locale( locale_r ) {} public: /** My \ref Locale */ const Locale & locale() const { return _locale; } /** Whether there are language specific packages supporting my \ref Locale. */ bool isAvailable() const { return Pool(*this).isAvailableLocale( _locale ); } /** Whether the solver will automatically select language specific packages for my \ref Locale. */ bool isRequested() const { return Pool(*this).isRequestedLocale( _locale ); } /** Turn on/off solver support for my \ref Locale.*/ void setRequested( bool yesno_r ) { yesno_r ? Pool(*this).addRequestedLocale( _locale ) : Pool(*this).eraseRequestedLocale( _locale ); } public: /** \name Iterate through all \ref sat::Solvables supporting my \ref Locale. */ //@{ typedef Solvable_iterator iterator; // from SolvIterMixin iterator begin() const { return Pool(*this).filterBegin( filter::ByLocaleSupport( _locale ) ); } iterator end() const { return Pool(*this).filterEnd( filter::ByLocaleSupport( _locale ) ); } //@} private: Locale _locale; }; /////////////////////////////////////////////////////////////////// /** \relates LocaleSupport Stream output */ std::ostream & operator<<( std::ostream & str, const LocaleSupport & obj ); /** \relates LocaleSupport More verbose stream output including dependencies */ std::ostream & dumpOn( std::ostream & str, const LocaleSupport & obj ); /** \relates LocaleSupport */ inline bool operator==( const LocaleSupport & lhs, const LocaleSupport & rhs ) { return lhs.locale() == rhs.locale(); } /** \relates LocaleSupport */ inline bool operator!=( const LocaleSupport & lhs, const LocaleSupport & rhs ) { return lhs.locale() != rhs.locale(); } /** \relates LocaleSupport */ inline bool operator<( const LocaleSupport & lhs, const LocaleSupport & rhs ) { return lhs.locale() < rhs.locale(); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_LOCALESUPPORT_H libzypp-17.7.0/zypp/sat/LookupAttr.cc000066400000000000000000000577351334444677500175450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/LookupAttr.cc * */ #include #include #include "zypp/base/LogTools.h" #include "zypp/base/String.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/Pool.h" #include "zypp/sat/LookupAttr.h" #include "zypp/base/StrMatcher.h" #include "zypp/CheckSum.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// using detail::noSolvableId; /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupAttr::Impl // /////////////////////////////////////////////////////////////////// /** * LookupAttr implememtation. * * Repository and Solvable must not be set at the same time! * * \note When looking in pool or repo, \ref Solvable \c _solv is * somewhat abused to store eiter \c Id \c 0 or \c SOLVID_META, which * indicates whether the dataiterator should look into solvable or * repository metadata. Remember that all \ref Solvables with an * \e invalid \c Id, are treated as == Solvable::noSolvable, * and in a boolean context evaluate to \c false. Thus \c noSolvable * may have different \c Ids. */ class LookupAttr::Impl { public: Impl() : _parent( SolvAttr::noAttr ) {} Impl( SolvAttr attr_r, Location loc_r ) : _attr( attr_r ), _parent( attr_r.parent() ), _solv( loc_r == REPO_ATTR ? SOLVID_META : noSolvableId ) {} Impl( SolvAttr attr_r, Repository repo_r, Location loc_r ) : _attr( attr_r ), _parent( attr_r.parent() ), _repo( repo_r ), _solv( loc_r == REPO_ATTR ? SOLVID_META : noSolvableId ) {} Impl( SolvAttr attr_r, Solvable solv_r ) : _attr( attr_r ), _parent( attr_r.parent() ), _solv( solv_r ) {} public: SolvAttr attr() const { return _attr; } void setAttr( SolvAttr attr_r ) { _attr = attr_r; SolvAttr p( _attr.parent() ); if ( p != SolvAttr::noAttr ) _parent = p; } const StrMatcher & strMatcher() const { return _strMatcher; } void setStrMatcher( const StrMatcher & matcher_r ) { matcher_r.compile(); _strMatcher = matcher_r; } public: bool pool() const { return ! (_repo || _solv); } void setPool( Location loc_r ) { _repo = Repository::noRepository; _solv = Solvable( loc_r == REPO_ATTR ? SOLVID_META : noSolvableId ); } Repository repo() const { return _repo; } void setRepo( Repository repo_r, Location loc_r ) { _repo = repo_r; _solv = Solvable( loc_r == REPO_ATTR ? SOLVID_META : noSolvableId ); } Solvable solvable() const { return _solv; } void setSolvable( Solvable solv_r ) { _repo = Repository::noRepository; _solv = solv_r; } SolvAttr parent() const { return _parent; } void setParent( SolvAttr attr_r ) { _parent = attr_r; } public: LookupAttr::iterator begin() const { if ( _attr == SolvAttr::noAttr || sat::Pool::instance().reposEmpty() ) return end(); detail::RepoIdType whichRepo = detail::noRepoId; // all repos if ( _solv ) whichRepo = _solv.repository().id(); else if ( _repo ) whichRepo = _repo.id(); detail::DIWrap dip( whichRepo, _solv.id(), _attr.id(), _strMatcher.searchstring(), _strMatcher.flags().get() ); if ( _parent != SolvAttr::noAttr ) ::dataiterator_prepend_keyname( dip.get(), _parent.id() ); return iterator( dip ); // iterator takes over ownership! } LookupAttr::iterator end() const { return iterator(); } private: SolvAttr _attr; SolvAttr _parent; Repository _repo; Solvable _solv; StrMatcher _strMatcher; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupAttr // /////////////////////////////////////////////////////////////////// LookupAttr::LookupAttr() : _pimpl( new Impl ) {} LookupAttr::LookupAttr( SolvAttr attr_r, Location loc_r ) : _pimpl( new Impl( attr_r, loc_r ) ) {} LookupAttr::LookupAttr( SolvAttr attr_r, SolvAttr parent_r, Location loc_r ) : _pimpl( new Impl( attr_r, loc_r ) ) { _pimpl->setParent( parent_r ); } LookupAttr::LookupAttr( SolvAttr attr_r, Repository repo_r, Location loc_r ) : _pimpl( new Impl( attr_r, repo_r, loc_r ) ) {} LookupAttr::LookupAttr( SolvAttr attr_r, SolvAttr parent_r, Repository repo_r, Location loc_r ) : _pimpl( new Impl( attr_r, repo_r, loc_r ) ) { _pimpl->setParent( parent_r ); } LookupAttr::LookupAttr( SolvAttr attr_r, Solvable solv_r ) : _pimpl( new Impl( attr_r, solv_r ) ) {} LookupAttr::LookupAttr( SolvAttr attr_r, SolvAttr parent_r, Solvable solv_r ) : _pimpl( new Impl( attr_r, solv_r ) ) { _pimpl->setParent( parent_r ); } /////////////////////////////////////////////////////////////////// SolvAttr LookupAttr::attr() const { return _pimpl->attr(); } void LookupAttr::setAttr( SolvAttr attr_r ) { _pimpl->setAttr( attr_r ); } const StrMatcher & LookupAttr::strMatcher() const { return _pimpl->strMatcher(); } void LookupAttr::setStrMatcher( const StrMatcher & matcher_r ) { _pimpl->setStrMatcher( matcher_r ); } /////////////////////////////////////////////////////////////////// bool LookupAttr::pool() const { return _pimpl->pool(); } void LookupAttr::setPool( Location loc_r ) { _pimpl->setPool( loc_r ); } Repository LookupAttr::repo() const { return _pimpl->repo(); } void LookupAttr::setRepo( Repository repo_r, Location loc_r ) { _pimpl->setRepo( repo_r, loc_r ); } Solvable LookupAttr::solvable() const { return _pimpl->solvable(); } void LookupAttr::setSolvable( Solvable solv_r ) { _pimpl->setSolvable( solv_r ); } SolvAttr LookupAttr::parent() const { return _pimpl->parent(); } void LookupAttr::setParent( SolvAttr attr_r ) { _pimpl->setParent( attr_r ); } /////////////////////////////////////////////////////////////////// LookupAttr::iterator LookupAttr::begin() const { return _pimpl->begin(); } LookupAttr::iterator LookupAttr::end() const { return _pimpl->end(); } bool LookupAttr::empty() const { return begin() == end(); } LookupAttr::size_type LookupAttr::size() const { size_type c = 0; for_( it, begin(), end() ) ++c; return c; } /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const LookupAttr & obj ) { if ( obj.attr() == SolvAttr::noAttr ) return str << "search nothing"; if ( obj.attr() ) str << "seach " << obj.attr() << " in "; else str << "seach ALL in "; if ( obj.solvable() ) return str << obj.solvable(); if ( obj.repo() ) return str << obj.repo(); return str << "pool"; } std::ostream & dumpOn( std::ostream & str, const LookupAttr & obj ) { return dumpRange( str << obj, obj.begin(), obj.end() ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupRepoAttr // /////////////////////////////////////////////////////////////////// LookupRepoAttr::LookupRepoAttr( SolvAttr attr_r, Repository repo_r ) : LookupAttr( attr_r, repo_r, REPO_ATTR ) {} void LookupRepoAttr::setRepo( Repository repo_r ) { LookupAttr::setRepo( repo_r, REPO_ATTR ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : detail::DIWrap // /////////////////////////////////////////////////////////////////// namespace detail { DIWrap::DIWrap( RepoIdType repoId_r, SolvableIdType solvId_r, IdType attrId_r, const std::string & mstring_r, int flags_r ) : _dip( new ::Dataiterator ) , _mstring( mstring_r ) { ::dataiterator_init( _dip, sat::Pool::instance().get(), repoId_r, solvId_r, attrId_r, _mstring.empty() ? 0 : _mstring.c_str(), flags_r ); } DIWrap::DIWrap( RepoIdType repoId_r, SolvableIdType solvId_r, IdType attrId_r, const char * mstring_r, int flags_r ) : _dip( new ::Dataiterator ) , _mstring( mstring_r ? mstring_r : "" ) { ::dataiterator_init( _dip, sat::Pool::instance().get(), repoId_r, solvId_r, attrId_r, _mstring.empty() ? 0 : _mstring.c_str(), flags_r ); } DIWrap::DIWrap( const DIWrap & rhs ) : _dip( 0 ) , _mstring( rhs._mstring ) { if ( rhs._dip ) { _dip = new ::Dataiterator; ::dataiterator_init_clone( _dip, rhs._dip ); ::dataiterator_strdup( _dip ); } } DIWrap::~DIWrap() { if ( _dip ) { ::dataiterator_free( _dip ); delete _dip; } } std::ostream & operator<<( std::ostream & str, const DIWrap & obj ) { return str << obj.get(); } } /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupAttr::iterator // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // position and moving /////////////////////////////////////////////////////////////////// Repository LookupAttr::iterator::inRepo() const { return _dip ? Repository( _dip->repo ) : Repository::noRepository; } Solvable LookupAttr::iterator::inSolvable() const { return _dip ? Solvable( _dip->solvid ) : Solvable::noSolvable; } SolvAttr LookupAttr::iterator::inSolvAttr() const { return _dip ? SolvAttr( _dip->key->name ) : SolvAttr::noAttr; } void LookupAttr::iterator::nextSkipSolvAttr() { if ( _dip ) ::dataiterator_skip_attribute( _dip.get() ); } void LookupAttr::iterator::nextSkipSolvable() { if ( _dip ) ::dataiterator_skip_solvable( _dip.get() ); } void LookupAttr::iterator::nextSkipRepo() { if ( _dip ) ::dataiterator_skip_repo( _dip.get() ); } void LookupAttr::iterator::stayInThisSolvable() { if ( _dip ) { _dip.get()->repoid = -1; _dip.get()->flags |= SEARCH_THISSOLVID; } } void LookupAttr::iterator::stayInThisRepo() { if ( _dip ) { _dip.get()->repoid = -1; } } /////////////////////////////////////////////////////////////////// // attr value type test /////////////////////////////////////////////////////////////////// detail::IdType LookupAttr::iterator::solvAttrType() const { return _dip ? _dip->key->type : detail::noId; } bool LookupAttr::iterator::solvAttrNumeric() const { switch ( solvAttrType() ) { case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return true; break; } return false; } bool LookupAttr::iterator::solvAttrString() const { switch ( solvAttrType() ) { case REPOKEY_TYPE_ID: case REPOKEY_TYPE_IDARRAY: case REPOKEY_TYPE_CONSTANTID: case REPOKEY_TYPE_STR: case REPOKEY_TYPE_DIRSTRARRAY: return true; break; } return false; } bool LookupAttr::iterator::solvAttrIdString() const { switch ( solvAttrType() ) { case REPOKEY_TYPE_ID: case REPOKEY_TYPE_IDARRAY: case REPOKEY_TYPE_CONSTANTID: return true; break; } return false; } bool LookupAttr::iterator::solvAttrCheckSum() const { switch ( solvAttrType() ) { case REPOKEY_TYPE_MD5: case REPOKEY_TYPE_SHA1: case REPOKEY_TYPE_SHA256: return true; break; } return false; } /////////////////////////////////////////////////////////////////// namespace { enum SubType { ST_NONE, // no sub-structure ST_FLEX, // flexarray ST_SUB }; // inside sub-structure SubType subType( const detail::DIWrap & dip ) { if ( ! dip ) return ST_NONE; if ( dip.get()->key->type == REPOKEY_TYPE_FLEXARRAY ) return ST_FLEX; return dip.get()->kv.parent ? ST_SUB : ST_NONE; } } /////////////////////////////////////////////////////////////////// bool LookupAttr::iterator::solvAttrSubEntry() const { return subType( _dip ) != ST_NONE; } /////////////////////////////////////////////////////////////////// // Iterate sub-structures. /////////////////////////////////////////////////////////////////// bool LookupAttr::iterator::subEmpty() const { return( subBegin() == subEnd() ); } LookupAttr::size_type LookupAttr::iterator::subSize() const { size_type c = 0; for_( it, subBegin(), subEnd() ) ++c; return c; } LookupAttr::iterator LookupAttr::iterator::subBegin() const { SubType subtype( subType( _dip ) ); if ( subtype == ST_NONE ) return subEnd(); // setup the new sub iterator with the remembered position detail::DIWrap dip( 0, 0, 0 ); ::dataiterator_clonepos( dip.get(), _dip.get() ); switch ( subtype ) { case ST_NONE: // not reached break; case ST_FLEX: ::dataiterator_seek( dip.get(), DI_SEEK_CHILD|DI_SEEK_STAY ); break; case ST_SUB: ::dataiterator_seek( dip.get(), DI_SEEK_REWIND|DI_SEEK_STAY ); break; } return iterator( dip ); // iterator takes over ownership! } LookupAttr::iterator LookupAttr::iterator::subEnd() const { return iterator(); } LookupAttr::iterator LookupAttr::iterator::subFind( SolvAttr attr_r ) const { iterator it = subBegin(); if ( attr_r != sat::SolvAttr::allAttr ) { while ( it != subEnd() && it.inSolvAttr() != attr_r ) ++it; } return it; } LookupAttr::iterator LookupAttr::iterator::subFind( const C_Str & attrname_r ) const { if ( attrname_r.empty() ) return subBegin(); SubType subtype( subType( _dip ) ); if ( subtype == ST_NONE ) return subBegin(); std::string subattr( inSolvAttr().asString() ); if ( subtype == ST_FLEX ) { // append ":attrname" subattr += ":"; subattr += attrname_r; } else { // replace "oldname" after ':' with "attrname" std::string::size_type pos( subattr.rfind( ':' ) ); if ( pos != std::string::npos ) { subattr.erase( pos+1 ); subattr += attrname_r; } else subattr = attrname_r; // no ':' so replace all. } return subFind( SolvAttr( subattr ) ); } /////////////////////////////////////////////////////////////////// // attr value retrieval /////////////////////////////////////////////////////////////////// int LookupAttr::iterator::asInt() const { if ( _dip ) { switch ( solvAttrType() ) { case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return _dip->kv.num; break; } } return 0; } unsigned LookupAttr::iterator::asUnsigned() const { return asInt(); } unsigned long long LookupAttr::iterator::asUnsignedLL() const { if ( _dip ) { switch ( solvAttrType() ) { case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return SOLV_KV_NUM64(&_dip->kv); break; } } return 0; } bool LookupAttr::iterator::asBool() const { return asInt(); } const char * LookupAttr::iterator::c_str() const { if ( _dip ) { switch ( solvAttrType() ) { case REPOKEY_TYPE_ID: case REPOKEY_TYPE_IDARRAY: case REPOKEY_TYPE_CONSTANTID: if ( _dip->data && _dip->data->localpool ) return ::stringpool_id2str( &_dip->data->spool, _dip->kv.id ); // in local pool else return IdString( _dip->kv.id ).c_str(); // in global pool break; case REPOKEY_TYPE_STR: return _dip->kv.str; break; case REPOKEY_TYPE_DIRSTRARRAY: // may or may not be stringified depending on SEARCH_FILES flag return( _dip->flags & SEARCH_FILES ? _dip->kv.str : ::repodata_dir2str( _dip->data, _dip->kv.id, _dip->kv.str ) ); break; } } return 0; } std::string LookupAttr::iterator::asString() const { if ( _dip ) { switch ( solvAttrType() ) { case REPOKEY_TYPE_ID: case REPOKEY_TYPE_IDARRAY: case REPOKEY_TYPE_CONSTANTID: { detail::IdType id = ::repodata_globalize_id( _dip->data, _dip->kv.id, 1 ); return ISRELDEP(id) ? Capability( id ).asString() : IdString( id ).asString(); } break; case REPOKEY_TYPE_STR: case REPOKEY_TYPE_DIRSTRARRAY: { const char * ret( c_str() ); return ret ? ret : ""; } break; case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return str::numstring( asInt() ); break; case REPOKEY_TYPE_MD5: case REPOKEY_TYPE_SHA1: case REPOKEY_TYPE_SHA256: { return asCheckSum().asString(); } break; case REPOKEY_TYPE_FLEXARRAY: { std::ostringstream str; str << "{" << endl; for_( it, subBegin(), subEnd() ) { str << " " << it.inSolvAttr() << " = " << it.asString() << endl; } str << "}"; return str.str(); } break; } } return std::string(); } IdString LookupAttr::iterator::idStr() const { if ( _dip ) { switch ( solvAttrType() ) { case REPOKEY_TYPE_ID: case REPOKEY_TYPE_IDARRAY: case REPOKEY_TYPE_CONSTANTID: return IdString( ::repodata_globalize_id( _dip->data, _dip->kv.id, 1 ) ); break; } } return IdString(); } CheckSum LookupAttr::iterator::asCheckSum() const { if ( _dip ) { switch ( solvAttrType() ) { case REPOKEY_TYPE_MD5: return CheckSum::md5( ::repodata_chk2str( _dip->data, solvAttrType(), (unsigned char *)_dip->kv.str ) ); break; case REPOKEY_TYPE_SHA1: return CheckSum::sha1( ::repodata_chk2str( _dip->data, solvAttrType(), (unsigned char *)_dip->kv.str ) ); break; case REPOKEY_TYPE_SHA224: return CheckSum::sha224( ::repodata_chk2str( _dip->data, solvAttrType(), (unsigned char *)_dip->kv.str ) ); break; case REPOKEY_TYPE_SHA256: return CheckSum::sha256( ::repodata_chk2str( _dip->data, solvAttrType(), (unsigned char *)_dip->kv.str ) ); break; case REPOKEY_TYPE_SHA384: return CheckSum::sha384( ::repodata_chk2str( _dip->data, solvAttrType(), (unsigned char *)_dip->kv.str ) ); break; case REPOKEY_TYPE_SHA512: return CheckSum::sha512( ::repodata_chk2str( _dip->data, solvAttrType(), (unsigned char *)_dip->kv.str ) ); break; } } return CheckSum(); } /////////////////////////////////////////////////////////////////// // internal stuff below /////////////////////////////////////////////////////////////////// LookupAttr::iterator::iterator() : iterator_adaptor_( 0 ) {} LookupAttr::iterator::iterator( const iterator & rhs ) : iterator_adaptor_( 0 ) , _dip( rhs._dip ) { base_reference() = _dip.get(); } LookupAttr::iterator::iterator( detail::DIWrap & dip_r ) : iterator_adaptor_( 0 ) { _dip.swap( dip_r ); // take ownership! base_reference() = _dip.get(); increment(); } LookupAttr::iterator::~iterator() {} LookupAttr::iterator & LookupAttr::iterator::operator=( const iterator & rhs ) { if ( &rhs != this ) { _dip = rhs._dip; base_reference() = _dip.get(); } return *this; } /////////////////////////////////////////////////////////////////// bool LookupAttr::iterator::dip_equal( const detail::CDataiterator & lhs, const detail::CDataiterator & rhs ) const { // Iterator equal is same position in same container. // Here: same attribute in same solvable. return( lhs.solvid == rhs.solvid && lhs.key->name == rhs.key->name ); } detail::IdType LookupAttr::iterator::dereference() const { return _dip ? ::repodata_globalize_id( _dip->data, _dip->kv.id, 1 ) : detail::noId; } void LookupAttr::iterator::increment() { if ( _dip ) { if ( ! ::dataiterator_step( _dip.get() ) ) { _dip.reset(); base_reference() = 0; } else { ::dataiterator_strdup( _dip.get() ); } } } std::ostream & operator<<( std::ostream & str, const LookupAttr::iterator & obj ) { const detail::CDataiterator * dip = obj.get(); if ( ! dip ) return str << "EndOfQuery"; if ( obj.inSolvable() ) str << obj.inSolvable(); else if ( obj.inRepo() ) str << obj.inRepo(); str << '<' << obj.inSolvAttr() << (obj.solvAttrSubEntry() ? ">(*" : ">(") << IdString(obj.solvAttrType()) << ") = " << obj.asString(); return str; } template<> CheckSum LookupAttr::iterator::asType() const { return asCheckSum(); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const zypp::sat::detail::CDataiterator * obj ) { str << "detail::CDataiterator("; if ( ! obj ) { str << "NULL"; } else { str << "|" << zypp::Repository(obj->repo); str << "|" << zypp::sat::Solvable(obj->solvid); str << "|" << zypp::IdString(obj->key->name); str << "|" << zypp::IdString(obj->key->type); str << "|" << obj->repodataid; str << "|" << obj->repoid; } return str << ")"; } /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/LookupAttr.h000066400000000000000000000530601334444677500173720ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/LookupAttr.h * */ #ifndef ZYPP_SAT_LOOKUPATTR_H #define ZYPP_SAT_LOOKUPATTR_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/sat/detail/PoolMember.h" #include "zypp/sat/SolvAttr.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class CheckSum; class Match; class MatchException; class StrMatcher; /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupAttr // /** Lightweight attribute value lookup. * * Search for an attribute in \ref Pool, one \ref Repository * or one \ref Solvable. \ref LookupAttr builds the query, * \ref LookupAttr::iterator iterates over the result. * * Per default \ref LookupAttr looks for attributes associated with * a \ref Solvable. But you may also pass \ref REPO_ATTR as * \ref Location argument, to lookup attributes associated with * the \ref Repository (e.g. DeltaRpm information). * * For convenience \see \ref LookupRepoAttr. * * Modifying the query will not affect any running * iterator. * * Use \ref SolvAttr::allAttr to search all attributes. * * To search for attributes located in a sub-structure (flexarray) * you also have to pass the sub-structures attribute as parent. * Passing \ref SolvAttr::allAttr a parent will lookup the attribute * in \c any sub-structure. Few attributes are known to have a parent * (\see \ref SolvAttr::parent). Setting those attributes will automatically * initialize their parent value. * * \code * // Lookup all 'name' attributes: * sat::LookupAttr q( sat::SolvAttr::name ); * // Lookup all 'name' attributes within a sub-structure 'data': * sat::LookupAttr q( sat::SolvAttr::name, sat::SolvAttr::data ); * // Lookup all 'name' attributes within any sub-structure: * sat::LookupAttr q( sat::SolvAttr::name, sat::SolvAttr::allAttr ); * \endcode * * \code * // look for all attributes of one solvable * void ditest( sat::Solvable slv_r ) * { * sat::LookupAttr q( sat::SolvAttr::allAttr, slv_r ); * MIL << q << ": " << endl; * for_( it, q.begin(), q.end() ) * { * MIL << " " << it.inSolvAttr() << " = " << it.asString() << endl; * } * } * \endcode * * \code * // look for an attribute in the pool. * sat::LookupAttr q( sat::SolvAttr("susetags:datadir") ); * MIL << q << ": " << endl; * for_( it, q.begin(), q.end() ) * { * MIL << " " << it << endl; * } * \endcode * * \code * // look for a repo attribute in the pool. * sat::LookupRepoAttr q( sat::SolvAttr::repositoryAddedFileProvides ); * MIL << q << ": " << endl; * for_( it, q.begin(), q.end() ) * { * MIL << " " << it << endl; * } * \endcode */ class LookupAttr { public: typedef MatchException Exception; public: typedef unsigned size_type; /** Specify the where to look for the attribule. */ enum Location { SOLV_ATTR = 0, //!< Search for solvable attributes (default) REPO_ATTR = -1 //!< Search for repository attributes }; public: /** Default ctor finds nothing. */ LookupAttr(); /** Lookup \ref SolvAttr in \ref Pool (all repositories). */ explicit LookupAttr( SolvAttr attr_r, Location = SOLV_ATTR ); /** \overload SolvAttr within sub-structure \a parent_r. */ LookupAttr( SolvAttr attr_r, SolvAttr parent_r, Location = SOLV_ATTR ); /** Lookup \ref SolvAttr in one\ref Repository. */ LookupAttr( SolvAttr attr_r, Repository repo_r, Location = SOLV_ATTR ); /** \overload SolvAttr within sub-structure \a parent_r. */ LookupAttr( SolvAttr attr_r, SolvAttr parent_r, Repository repo_r, Location = SOLV_ATTR ); /** Lookup \ref SolvAttr in one \ref Solvable. */ LookupAttr( SolvAttr attr_r, Solvable solv_r ); /** \overload SolvAttr within sub-structure \a parent_r. */ LookupAttr( SolvAttr attr_r, SolvAttr parent_r, Solvable solv_r ); public: /** \name Search result. */ //@{ /** Result iterator. */ class iterator; /** Iterator to the begin of query results. */ iterator begin() const; /** Iterator behind the end of query results. */ iterator end() const; /** Whether the query is empty. */ bool empty() const; /** Ammount of results. * \note This is not a cheap call. It runs the query. */ size_type size() const; /** TransformIterator returning an \ref iterator vaue of type \c TResult. */ template class TransformIterator; //@} public: /** \name What to search. */ //@{ /** The \ref SolvAttr to search. */ SolvAttr attr() const; /** Set the \ref SolvAttr to search. */ void setAttr( SolvAttr attr_r ); //@} /** \name Restrict attributes to match a pattern. */ //@{ /** The pattern to match. * You can also evaluate \ref StrMatcher in a boolean context, * in order to test whether an \ref StrMatcher is set: * \code * LookupAttr q; * if ( q.strMatcher() ) * ...; // an StrMatcher is set * \endcode */ const StrMatcher & strMatcher() const; /** Set the pattern to match. * \throws MatchException Any of the exceptions thrown by \ref StrMatcher::compile. */ void setStrMatcher( const StrMatcher & matcher_r ); /** Reset the pattern to match. */ void resetStrMatcher(); //@} public: /** \name Where to search. */ //@{ /** Whether to search in \ref Pool. */ bool pool() const; /** Set search in \ref Pool (all repositories). */ void setPool( Location = SOLV_ATTR ); /** Whether to search in one \ref Repository. */ Repository repo() const; /** Set search in one \ref Repository. */ void setRepo( Repository repo_r, Location = SOLV_ATTR ); /** Whether to search in one \ref Solvable. */ Solvable solvable() const; /** Set search in one \ref Solvable. */ void setSolvable( Solvable solv_r ); /** Whether to search within a sub-structure (\ref SolvAttr::noAttr if not) */ SolvAttr parent() const; /** Set search within a sub-structure (\ref SolvAttr::noAttr for none) */ void setParent( SolvAttr attr_r ); //@} private: class Impl; RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates LookupAttr Stream output. */ std::ostream & operator<<( std::ostream & str, const LookupAttr & obj ); /** \relates LookupAttr Verbose stream output including the query result. */ std::ostream & dumpOn( std::ostream & str, const LookupAttr & obj ); /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupRepoAttr // /** Lightweight repository attribute value lookup. * * This is just a convenience class that overloads all * \ref LookupAttr methods which take a \ref LookupAttr::Location * argument and sets it to \ref REPO_ATTR. * * \code * // look for a repo attribute in the pool: * sat::LookupAttr p( sat::SolvAttr::repositoryAddedFileProvides, sat::LookupAttr::REPO_ATTR ); * * // Equivalent but using LookupRepoAttr: * sat::LookupRepoAttr q( sat::SolvAttr::repositoryAddedFileProvides ); * \endcode * * \see \ref LookupAttr */ class LookupRepoAttr : public LookupAttr { public: /** \copydoc LookupAttr::LookupAttr() */ LookupRepoAttr() {} /** \copydoc LookupAttr::LookupAttr(SolvAttr) */ explicit LookupRepoAttr( SolvAttr attr_r ) : LookupAttr( attr_r, REPO_ATTR ) {} /** \copydoc LookupAttr::LookupAttr(SolvAttr,Repository) */ explicit LookupRepoAttr( SolvAttr attr_r, Repository repo_r ); public: /** \copydoc LookupAttr::setPool */ void setPool() { LookupAttr::setPool( REPO_ATTR ); } /** \copydoc LookupAttr::setRepo */ void setRepo( Repository repo_r ); private: // Hide. You can't look inside and outside Solvables at the same time. using LookupAttr::solvable; using LookupAttr::setSolvable; }; /////////////////////////////////////////////////////////////////// namespace detail { /** Wrapper around sat \c detail::CDataiterator. * * Manages copy and assign, and release of allocated * resources like datamatcher inside the dataiterator. * Also maintains a copy of the matchstring in order to * keep the char* passed to the dataiterator valid. */ class DIWrap { public: /** \c NULL \c detail::CDataiterator */ DIWrap() : _dip( 0 ) {} /** Initializes */ DIWrap( RepoIdType repoId_r, SolvableIdType solvId_r, IdType attrId_r, const std::string & mstring_r = std::string(), int flags_r = 0 ); /** \overload to catch \c NULL \a mstring_r. */ DIWrap( RepoIdType repoId_r, SolvableIdType solvId_r, IdType attrId_r, const char * mstring_r, int flags_r = 0 ); DIWrap( const DIWrap & rhs ); ~DIWrap(); public: void swap( DIWrap & rhs ) { if ( &rhs != this ) // prevent self assign! { std::swap( _dip, rhs._dip ); std::swap( _mstring, rhs._mstring ); } } DIWrap & operator=( const DIWrap & rhs ) { if ( &rhs != this ) // prevent self assign! DIWrap( rhs ).swap( *this ); return *this; } void reset() { DIWrap().swap( *this ); } public: /** Evaluate in a boolean context ( _dip != NULL ). */ explicit operator bool() const { return _dip; } public: detail::CDataiterator * operator->() const { return _dip; } detail::CDataiterator * get() const { return _dip; } const std::string & getstr() const { return _mstring; } private: detail::CDataiterator * _dip; std::string _mstring; }; /** \relates DIWrap Stream output. */ std::ostream & operator<<( std::ostream & str, const DIWrap & obj ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupAttr::iterator // /** Result iterator. * Extended iterator methods valid only if not @end. * \note Implementation: Keep iterator_adaptor base and _dip in sync! */ class LookupAttr::iterator : public boost::iterator_adaptor< iterator // Derived , detail::CDataiterator * // Base , detail::IdType // Value , boost::forward_traversal_tag // CategoryOrTraversal , detail::IdType // Reference > { public: /** \name Moving fast forward. */ //@{ /** On the next call to \ref operator++ advance to the next \ref SolvAttr. */ void nextSkipSolvAttr(); /** On the next call to \ref operator++ advance to the next \ref Solvable. */ void nextSkipSolvable(); /** On the next call to \ref operator++ advance to the next \ref Repository. */ void nextSkipRepo(); /** Immediately advance to the next \ref SolvAttr. */ void skipSolvAttr() { nextSkipSolvAttr(); increment(); } /** Immediately advance to the next \ref Solvable. */ void skipSolvable() { nextSkipSolvable(); increment(); } /** Immediately advance to the next \ref Repository. */ void skipRepo() { nextSkipRepo(); increment(); } /** Stop after all matches in the current \ref Solvable are processed. */ void stayInThisSolvable(); /** Stop after all matches in the current \ref Repository are processed. */ void stayInThisRepo(); //@} /** \name Current position info. */ //@{ /** The current \ref Repository. */ Repository inRepo() const; /** The current \ref Solvable. */ Solvable inSolvable() const; /** The current \ref SolvAttr. */ SolvAttr inSolvAttr() const; /** Whether this points to the end of a query (Iterator is invalid). */ bool atEnd() const { return !_dip; } //@} /** \name Test attribute value type. */ //@{ /** The current \ref SolvAttr type. */ detail::IdType solvAttrType() const; /** Whether this is a numeric attribute (incl. boolean). */ bool solvAttrNumeric() const; /** Whether this is a string attribute. */ bool solvAttrString() const; /** Whether this string attribute is available as \ref IdString. */ bool solvAttrIdString() const; /** Whether this is a CheckSum attribute.*/ bool solvAttrCheckSum() const; /** Whether this is the entry to a sub-structure (flexarray). * This is the entry to a sequence of attributes. To * acces them use \ref subBegin and \ref subEnd. */ bool solvAttrSubEntry() const; //@} /** \name Iterate sub-structures. * * These are usable iff \ref solvAttrSubEntry is \c true. * * \note Unfortunately the underlying libsolv dataiterator as returned * by \ref subBegin and \ref subFind loses some context when being created. * Thus it's not possible to invoke \ref subBegin and \ref subFind on an * iterator that was previously returned by one of those methods. The result * will be an \c end iterator. For the same reason it is not possible for an * iterator to leave the sub-structure again. * * \code * // Lookup all "update:reference" entries for a specific solvable * sat::LookupAttr q( sat::SolvAttr::updateReference, p->satSolvable() ); * for_( res, q.begin(), q.end() ) * { * // List all sub values * for_( sub, res.subBegin(), res.subEnd() ) * { * cout << sub.asString() << endl; * } * * // Directly access c specific value: * sat::LookupAttr::iterator it( res.subFind( sat::SolvAttr::updateReferenceHref ) ); * if ( it != res.subEnd() ) * cout << it.asString() << endl; * } * \endcode */ //@{ /** Whether the sub-structure is empty. */ bool subEmpty() const; /** Ammount of attributes in the sub-structure. * \note This is not a cheap call. It runs the query. */ size_type subSize() const; /** Iterator to the begin of a sub-structure. * \see \ref solvAttrSubEntry */ iterator subBegin() const; /** Iterator behind the end of a sub-structure. * \see \ref solvAttrSubEntry */ iterator subEnd() const; /** Iterator pointing to the first occurance of \ref SolvAttr \a attr_r in sub-structure. * If \ref sat::SolvAttr::allAttr is passed, \ref subBegin is returned. * \see \ref solvAttrSubEntry */ iterator subFind( SolvAttr attr_r ) const; /** \overload Extending the current attribute name with by \c ":attrname_r". * * This assumes a sub-structur \c "update:reference" has attributes * like \c "update:reference:type", \c "update:reference:href". * * If an empty \c attrname_r is passed, \ref subBegin is returned. */ iterator subFind( const C_Str & attrname_r ) const; //@} /** \name Retrieving attribute values. */ //@{ /** Conversion to numeric types. */ int asInt() const; /** \overload */ unsigned asUnsigned() const; /** \overload */ bool asBool() const; /** \overload */ unsigned long long asUnsignedLL() const; /** Conversion to string types. */ const char * c_str() const; /** \overload * If used with non-string types, this method tries to create * some appropriate string representation. */ std::string asString() const; /** As \ref IdStr. * This is only done for poolized string types. Large strings like * summary or descriptions are not available via \ref IdStr, only * via \ref c_str and \ref asString. */ IdString idStr() const; /** \overload Directly returning the \c Id */ detail::IdType id() const { return idStr().id(); } /** As \ref CheckSum. */ CheckSum asCheckSum() const; /** Templated return type. * Per default assumes an Id based type, so try to construct * it from the Id. * * Should be specialized for supported types above. */ template Tp asType() const { return Tp(id()); } //@} /////////////////////////////////////////////////////////////////// // internal stuff below /////////////////////////////////////////////////////////////////// public: iterator(); iterator( const iterator & rhs ); iterator & operator=( const iterator & rhs ); ~iterator(); public: /** * C-tor taking over ownership of the passed \c detail::CDataiterator * and doing it's first iteration (::dataiterator_step) */ iterator( detail::DIWrap & dip_r ); private: friend class boost::iterator_core_access; template bool equal( const boost::iterator_adaptor & rhs ) const { return ( bool(base()) == bool(rhs.base()) ) && ( ! base() || dip_equal( *base(), *rhs.base() ) ); } bool dip_equal( const detail::CDataiterator & lhs, const detail::CDataiterator & rhs ) const; detail::IdType dereference() const; void increment(); public: /** Expert backdoor. */ detail::CDataiterator * get() const { return _dip.get(); } private: detail::DIWrap _dip; }; /////////////////////////////////////////////////////////////////// /** \relates LookupAttr::iterator Stream output. */ std::ostream & operator<<( std::ostream & str, const LookupAttr::iterator & obj ); /////////////////////////////////////////////////////////////////// /** \name Helpers and forward declarations from LookupAttrTools.h */ //@{ template<> inline int LookupAttr::iterator::asType() const { return asInt(); } template<> inline unsigned LookupAttr::iterator::asType() const { return asUnsigned(); } template<> inline unsigned long long LookupAttr::iterator::asType() const { return asUnsignedLL(); } template<> inline bool LookupAttr::iterator::asType() const { return asBool(); } template<> inline const char * LookupAttr::iterator::asType() const { return c_str(); } template<> inline std::string LookupAttr::iterator::asType() const { return asString(); } template<> inline IdString LookupAttr::iterator::asType() const { return idStr(); } template<> CheckSum LookupAttr::iterator::asType() const; template class ArrayAttr; //@} ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// /** \relates LookupAttr::iterator Stream output of the underlying iterator for debug. */ std::ostream & operator<<( std::ostream & str, const zypp::sat::detail::CDataiterator * obj ); /** \relates LookupAttr::iterator Stream output of the underlying iterator for debug. */ inline std::ostream & operator<<( std::ostream & str, const zypp::sat::detail::CDataiterator & obj ) { return str << &obj; } #endif // ZYPP_SAT_LOOKUPATTR_H libzypp-17.7.0/zypp/sat/LookupAttrTools.h000066400000000000000000000163601334444677500204150ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/LookupAttrTools.h * */ #ifndef ZYPP_SAT_LOOKUPATTRTOOLS_H #define ZYPP_SAT_LOOKUPATTRTOOLS_H #include "zypp/sat/LookupAttr.h" #include "zypp/Repository.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : LookupAttr::TransformIterator // /** TransformIterator returning an \ref iterator value of type \c TResult. * * The underlying LookupAttr::iterators value is retrieved \ref asType * and the returned \ref ResultT is constructed fron that value. * * \code * class Keywords * { * public: * Keywords( sat::Solvable solv_r ) * : _q( sat::SolvAttr::keywords, solv_r ) * {} * * public: * typedef sat::LookupAttr::TransformIterator iterator; * * iterator begin() const { return iterator( _q.begin() ); } * iterator end() const { return iterator( _q.end() ); } * * private: * sat::LookupAttr _q; * }; * \endcode * * \see \ref ArrayAttr. */ template class LookupAttr::TransformIterator : public boost::iterator_adaptor< TransformIterator // Derived , LookupAttr::iterator // Base , TResult // Value , boost::forward_traversal_tag // CategoryOrTraversal , TResult // Reference > { public: TransformIterator() {} explicit TransformIterator( const LookupAttr::iterator & val_r ) { this->base_reference() = val_r; } public: /** \name Moving fast forward. */ //@{ /** On the next call to \ref operator++ advance to the next \ref SolvAttr. */ void nextSkipSolvAttr() { this->base_reference().nextSkipSolvAttr(); } /** On the next call to \ref operator++ advance to the next \ref Solvable. */ void nextSkipSolvable() { this->base_reference().nextSkipSolvable(); } /** On the next call to \ref operator++ advance to the next \ref Repository. */ void nextSkipRepo() { this->base_reference().nextSkipRepo(); } /** Immediately advance to the next \ref SolvAttr. */ void skipSolvAttr() { this->base_reference().skipSolvAttr(); } /** Immediately advance to the next \ref Solvable. */ void skipSolvable() { this->base_reference().skipSolvable(); } /** Immediately advance to the next \ref Repository. */ void skipRepo() { this->base_reference().skipRepo(); } //@} /** \name Current position info. */ //@{ /** The current \ref Repository. */ Repository inRepo() const { return this->base_reference().inRepo(); } /** The current \ref Solvabele. */ Solvable inSolvable() const { return this->base_reference().inSolvable(); } /** The current \ref SolvAttr. */ SolvAttr inSolvAttr() const { return this->base_reference().inSolvAttr(); } //@} private: friend class boost::iterator_core_access; TResult dereference() const { const LookupAttr::iterator lit( this->base_reference() ); return TResult( lit.asType() ); } }; /////////////////////////////////////////////////////////////////// template class ArrayAttr; template std::ostream & operator<<( std::ostream & str, const ArrayAttr & obj ); /////////////////////////////////////////////////////////////////// // // CLASS NAME : ArrayAttr // /** \ref LookupAttr::TransformIterator based container to retrieve list attributes. * * You may pass \ref LookupAttr::REPO_ATTR as \ref LookupAttr::Location argument, * to lookup attributes associated with the \ref Repository as a whole * (e.g. repository keywords). * * \see \ref LookupAttr for details. * * \code * typedef ArrayAttr Keywords; * Keywords k( sat::SolvAttr::keywords ); * dumpRange( MIL << "All Keywords: ", k.begin(), k.end() ) << endl; * \endcode * * \todo Maybe add some way to unify the result. */ template class ArrayAttr { friend std::ostream & operator<< ( std::ostream & str, const ArrayAttr & obj ); public: ArrayAttr() {} ArrayAttr( SolvAttr attr_r, LookupAttr::Location loc_r = LookupAttr::SOLV_ATTR ) : _q( attr_r, loc_r ) {} ArrayAttr( SolvAttr attr_r, Repository repo_r, LookupAttr::Location loc_r = LookupAttr::SOLV_ATTR ) : _q( attr_r, repo_r, loc_r ) {} ArrayAttr( SolvAttr attr_r, Solvable solv_r ) : _q( attr_r, solv_r ) {} public: typedef LookupAttr::TransformIterator iterator; typedef LookupAttr::size_type size_type; iterator begin() const { return iterator( _q.begin() ); } iterator end() const { return iterator( _q.end() ); } bool empty() const { return _q.empty(); } size_type size() const { size_type count = 0; for_( it, begin(), end() ) ++count; return count; } public: iterator find( const TResult & key_r ) const { for_( it, begin(), end() ) { if ( *it == key_r ) return it; } return end(); } private: LookupAttr _q; }; /////////////////////////////////////////////////////////////////// /** \relates LookupAttr::iterator Stream output. */ template inline std::ostream & operator<<( std::ostream & str, const ArrayAttr & obj ) { return dumpOn( str, obj._q ); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_LOOKUPATTRTOOLS_H libzypp-17.7.0/zypp/sat/Map.cc000066400000000000000000000075071334444677500161460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Map.cc */ extern "C" { #include } #include #include #include "zypp/base/LogTools.h" #include "zypp/base/String.h" #include "zypp/sat/Map.h" #include "zypp/sat/Pool.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// template<> sat::detail::CMap * rwcowClone( const sat::detail::CMap * rhs ) { sat::detail::CMap * ret = new sat::detail::CMap; ::map_init_clone( ret, const_cast(rhs) ); return ret; } /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// Map::Map() : _pimpl( new detail::CMap ) { ::map_init( _pimpl.get(), 0 ); } Map::Map( size_type size_r ) : _pimpl( new detail::CMap ) { ::map_init( _pimpl.get(), size_r ); } Map::Map( PoolSizeType ) : _pimpl( new detail::CMap ) { ::map_init( _pimpl.get(), Pool::instance().capacity() ); } Map::~Map() { ::map_free( _pimpl.get() ); } bool Map::empty() const { return( _pimpl->size == 0 ); } Map::size_type Map::size() const { return _pimpl->size << 3; } void Map::grow( size_type size_r ) { ::map_grow( _pimpl.get(), size_r ); } void Map::setAll() { assignAll( true ); } void Map::clearAll() { assignAll( false ); } void Map::assignAll( bool val_r ) { if ( _pimpl->size ) ::memset( _pimpl->map, (val_r?-1:0), _pimpl->size ); } #define M_RANGE_CKECK(IDX,LOC) if ( ((IDX) >> 3) >= size_type(_pimpl->size) ) throw std::out_of_range( "zypp::sat::Map::" LOC ) void Map::set( size_type idx_r ) { M_RANGE_CKECK( idx_r, "set" ); MAPSET( _pimpl, idx_r ); } void Map::clear( size_type idx_r ) { M_RANGE_CKECK( idx_r, "clear" ); MAPCLR( _pimpl, idx_r ); } void Map::assign( size_type idx_r, bool val_r ) { M_RANGE_CKECK( idx_r, "assign" ); if ( val_r ) { MAPSET( _pimpl, idx_r ); } else { MAPCLR( _pimpl, idx_r ); } } bool Map::test( size_type idx_r ) const { M_RANGE_CKECK( idx_r, "test" ); return MAPTST( _pimpl, idx_r ); } std::string Map::asString( const char on_r, const char off_r ) const { if ( empty() ) return std::string(); std::string ret( size(), off_r ); for_( idx, size_type(0), size() ) { if ( test( idx ) ) ret[idx] = on_r; } return ret; } Map::operator detail::CMap *() // COW: nonconst version can't be inlined { return _pimpl.get(); } // without exposing detail::CMap bool operator==( const Map & lhs, const Map & rhs ) { const detail::CMap * l = lhs; const detail::CMap * r = rhs; return( l == r || ( l->size == r->size && ::memcmp( l->map, r->map, l->size ) == 0 ) ); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/Map.h000066400000000000000000000101531334444677500157770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Map.h */ #ifndef ZYPP_SAT_MAP_H #define ZYPP_SAT_MAP_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/sat/detail/PoolMember.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { /////////////////////////////////////////////////////////////////// /// \class Map /// \brief Libsolv (bit)Map wrapper. /// /// \Note Requested sizes are filled up to the next multiple of eight. /// Libsolv bitmaps are not shrinkable. /////////////////////////////////////////////////////////////////// class Map { public: typedef unsigned long size_type; /** Type to indicate the bitmap should match the current pools capacity. */ struct PoolSizeType {}; /** An object indicating the bitmap should match the current pools capacity. */ static constexpr PoolSizeType poolSize = PoolSizeType(); public: /** Default ctor: empty Map */ Map(); /** Ctor taking the Map size */ explicit Map( size_type size_r ); /** Ctor creating a Map matching the current pools capacity */ Map( PoolSizeType ); /** Dtor */ ~Map(); public: /** Whether Map is empty. */ bool empty() const; /** Size of the Map. */ size_type size() const; /** Grow the Map if necessary. */ void grow( size_type size_r ); public: /** Set all bits. */ void setAll(); /** Clear all bits. */ void clearAll(); /** Assign \c val_r to all bits. */ void assignAll( bool val_r ); /** Set bit \c idx_r. * \throws std::out_of_range if \a idx_r is out of range */ void set( size_type idx_r ); /** Clear bit \c idx_r. * \throws std::out_of_range if \a idx_r is out of range */ void clear( size_type idx_r ); /** Assign \c val_r to bit \c idx_r. * \throws std::out_of_range if \a idx_r is out of range */ void assign( size_type idx_r, bool val_r ); public: /** Test bit \c idx_r. * \throws std::out_of_range if \a idx_r is out of range */ bool test( size_type idx_r ) const; /** Test bit \c idx_r. * \throws std::out_of_range if \a idx_r is out of range */ bool operator[]( size_type idx_r ) const { return test( idx_r ); } public: /** String representation */ std::string asString( const char on_r = '1', const char off_r = '0' ) const; public: operator detail::CMap *(); ///< libsolv backdoor operator const detail::CMap *() const ///< libsolv backdoor { return _pimpl.get(); } private: RWCOW_pointer _pimpl; ///< Pointer to implementation }; /** \relates Map Stream output */ inline std::ostream & operator<<( std::ostream & str, const Map & obj ) { return str << obj.asString(); } /** \relates Map */ bool operator==( const Map & lhs, const Map & rhs ); /** \relates Map */ inline bool operator!=( const Map & lhs, const Map & rhs ) { return !( lhs == rhs ); } } // namespace sat /////////////////////////////////////////////////////////////////// /** \relates Map Clone function for RWCOW_pointer */ template<> sat::detail::CMap * rwcowClone( const sat::detail::CMap * rhs ); typedef sat::Map Bitmap; } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_MAP_H libzypp-17.7.0/zypp/sat/Pool.cc000066400000000000000000000234601334444677500163360ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Pool.cc * */ #include #include #include extern "C" { #include #include #include } #include #include #include "zypp/base/Easy.h" #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/Exception.h" #include "zypp/AutoDispose.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/Pool.h" #include "zypp/sat/LookupAttr.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// const std::string & Pool::systemRepoAlias() { return detail::PoolImpl::systemRepoAlias(); } detail::CPool * Pool::get() const { return myPool().getPool(); } Pool::size_type Pool::capacity() const { return myPool()->nsolvables; } const SerialNumber & Pool::serial() const { return myPool().serial(); } const SerialNumber & Pool::serialIDs() const { return myPool().serialIDs(); } void Pool::prepare() const { return myPool().prepare(); } Pathname Pool::rootDir() const { return myPool().rootDir(); } void Pool::rootDir( const Pathname & root_r ) { return myPool().rootDir( root_r ); } bool Pool::reposEmpty() const { return ! myPool()->urepos; } Pool::size_type Pool::reposSize() const { return myPool()->urepos; } Pool::RepositoryIterator Pool::reposBegin() const { if ( myPool()->urepos ) { // repos[0] == NULL for_( it, myPool()->repos+1, myPool()->repos+myPool()->nrepos ) if ( *it ) return RepositoryIterator( it ); } return reposEnd(); } Pool::RepositoryIterator Pool::reposEnd() const { return RepositoryIterator( myPool()->repos+myPool()->nrepos ); } bool Pool::solvablesEmpty() const { // return myPool()->nsolvables; // nsolvables is the array size including // invalid Solvables. for_( it, reposBegin(), reposEnd() ) { if ( ! it->solvablesEmpty() ) return false; } return true; } Pool::size_type Pool::solvablesSize() const { // Do not return myPool()->nsolvables; // nsolvables is the array size including // invalid Solvables. size_type ret = 0; for_( it, reposBegin(), reposEnd() ) { ret += it->solvablesSize(); } return ret; } Pool::SolvableIterator Pool::solvablesBegin() const { return SolvableIterator( myPool().getFirstId() ); } Pool::SolvableIterator Pool::solvablesEnd() const { return SolvableIterator(); } Repository Pool::reposInsert( const std::string & alias_r ) { Repository ret( reposFind( alias_r ) ); if ( ret ) return ret; ret = Repository( myPool()._createRepo( alias_r ) ); if ( ret.isSystemRepo() ) { // autoprovide (dummy) RepoInfo RepoInfo info; info.setAlias( alias_r ); info.setName( alias_r ); info.setAutorefresh( true ); info.setEnabled( true ); ret.setInfo( info ); } return ret; } Repository Pool::reposFind( const std::string & alias_r ) const { for_( it, reposBegin(), reposEnd() ) { if ( alias_r == it->alias() ) return *it; } return Repository(); } Repository Pool::findSystemRepo() const { return Repository( myPool().systemRepo() ); } Repository Pool::systemRepo() { if ( myPool().systemRepo() ) return Repository( myPool().systemRepo() ); return reposInsert( systemRepoAlias() ); } Repository Pool::addRepoSolv( const Pathname & file_r, const std::string & alias_r ) { // Using a temporay repo! (The additional parenthesis are required.) AutoDispose tmprepo( (Repository::EraseFromPool()) ); *tmprepo = reposInsert( alias_r ); tmprepo->addSolv( file_r ); // no exceptions so we keep it: tmprepo.resetDispose(); return tmprepo; } Repository Pool::addRepoSolv( const Pathname & file_r ) { return addRepoSolv( file_r, file_r.basename() ); } Repository Pool::addRepoSolv( const Pathname & file_r, const RepoInfo & info_r ) { Repository ret( addRepoSolv( file_r, info_r.alias() ) ); ret.setInfo( info_r ); return ret; } ///////////////////////////////////////////////////////////////// Repository Pool::addRepoHelix( const Pathname & file_r, const std::string & alias_r ) { // Using a temporay repo! (The additional parenthesis are required.) AutoDispose tmprepo( (Repository::EraseFromPool()) ); *tmprepo = reposInsert( alias_r ); tmprepo->addHelix( file_r ); // no exceptions so we keep it: tmprepo.resetDispose(); return tmprepo; } Repository Pool::addRepoHelix( const Pathname & file_r ) { return addRepoHelix( file_r, file_r.basename() ); } Repository Pool::addRepoHelix( const Pathname & file_r, const RepoInfo & info_r ) { Repository ret( addRepoHelix( file_r, info_r.alias() ) ); ret.setInfo( info_r ); return ret; } ///////////////////////////////////////////////////////////////// void Pool::setTextLocale( const Locale & locale_r ) { myPool().setTextLocale( locale_r ); } void Pool::setRequestedLocales( const LocaleSet & locales_r ) { myPool().setRequestedLocales( locales_r ); } bool Pool::addRequestedLocale( const Locale & locale_r ) { return myPool().addRequestedLocale( locale_r ); } bool Pool::eraseRequestedLocale( const Locale & locale_r ) { return myPool().eraseRequestedLocale( locale_r ); } const LocaleSet & Pool::getRequestedLocales() const { return myPool().getRequestedLocales(); } bool Pool::isRequestedLocale( const Locale & locale_r ) const { return myPool().isRequestedLocale( locale_r ); } void Pool::initRequestedLocales( const LocaleSet & locales_r ) { myPool().initRequestedLocales( locales_r ); } const LocaleSet & Pool::getAddedRequestedLocales() const { return myPool().getAddedRequestedLocales(); } const LocaleSet & Pool::getRemovedRequestedLocales() const { return myPool().getRemovedRequestedLocales(); } const LocaleSet & Pool::getAvailableLocales() const { return myPool().getAvailableLocales(); } bool Pool::isAvailableLocale( const Locale & locale_r ) const { return myPool().isAvailableLocale( locale_r ); } const Pool::MultiversionList & Pool::multiversion() const { return myPool().multiversionList(); } Queue Pool::autoInstalled() const { return myPool().autoInstalled(); } void Pool::setAutoInstalled( const Queue & autoInstalled_r ){ myPool().setAutoInstalled( autoInstalled_r ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const Pool & obj ) { return str << "sat::pool(" << obj.serial() << ")[" << obj.capacity() << "]{" << obj.reposSize() << "repos|" << obj.solvablesSize() << "solv}"; } ///////////////////////////////////////////////////////////////// #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "solvidx" void updateSolvFileIndex( const Pathname & solvfile_r ) { AutoDispose solv( ::fopen( solvfile_r.c_str(), "re" ), ::fclose ); if ( solv == NULL ) { solv.resetDispose(); ERR << "Can't open solv-file: " << solv << endl; return; } std::string solvidxfile( solvfile_r.extend(".idx").asString() ); if ( ::unlink( solvidxfile.c_str() ) == -1 && errno != ENOENT ) { ERR << "Can't unlink solv-idx: " << Errno() << endl; return; } { int fd = ::open( solvidxfile.c_str(), O_CREAT|O_EXCL|O_WRONLY|O_TRUNC, 0644 ); if ( fd == -1 ) { ERR << "Can't create solv-idx: " << Errno() << endl; return; } ::close( fd ); } std::ofstream idx( solvidxfile.c_str() ); detail::CPool * _pool = ::pool_create(); detail::CRepo * _repo = ::repo_create( _pool, "" ); if ( ::repo_add_solv( _repo, solv, 0 ) == 0 ) { int _id = 0; detail::CSolvable * _solv = nullptr; FOR_REPO_SOLVABLES( _repo, _id, _solv ) { if ( _solv ) { #define SEP '\t' #define idstr(V) pool_id2str( _pool, _solv->V ) if ( _solv->arch == ARCH_SRC || _solv->arch == ARCH_NOSRC ) idx << "srcpackage:" << idstr(name) << SEP << idstr(evr) << SEP << "noarch" << endl; else idx << idstr(name) << SEP << idstr(evr) << SEP << idstr(arch) << endl; } } } else { ERR << "Can't read solv-file: " << ::pool_errstr( _pool ) << endl; } ::repo_free( _repo, 0 ); ::pool_free( _pool ); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/Pool.h000066400000000000000000000251711334444677500162010ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Pool.h * */ #ifndef ZYPP_SAT_POOL_H #define ZYPP_SAT_POOL_H #include #include "zypp/Pathname.h" #include "zypp/sat/detail/PoolMember.h" #include "zypp/Repository.h" #include "zypp/sat/WhatProvides.h" #include "zypp/sat/SolvableSet.h" #include "zypp/sat/Queue.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class SerialNumber; class RepoInfo; /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Pool // /** Global sat-pool. * * Explicitly shared singleton \ref Pool::instance. */ class Pool : protected detail::PoolMember { public: typedef detail::SolvableIterator SolvableIterator; typedef zypp::detail::RepositoryIterator RepositoryIterator; typedef detail::size_type size_type; public: /** Singleton ctor. */ static Pool instance() { return Pool(); } /** Ctor from \ref PoolMember. */ Pool( const detail::PoolMember & ) {} public: /** Internal array size for stats only. */ size_type capacity() const; /** Housekeeping data serial number. */ const SerialNumber & serial() const; /** Serial number changing whenever resusePoolIDs==true was used. ResPool must also invalidate it's PoolItems! */ const SerialNumber & serialIDs() const; /** Update housekeeping data if necessary (e.g. whatprovides). */ void prepare() const; /** Get rootdir (for file conflicts check) */ Pathname rootDir() const; /** Set rootdir (for file conflicts check) */ void rootDir( const Pathname & root_r ); public: /** Whether \ref Pool contains repos. */ bool reposEmpty() const; /** Number of repos in \ref Pool. */ size_type reposSize() const; /** Iterator to the first \ref Repository. */ RepositoryIterator reposBegin() const; /** Iterator behind the last \ref Repository. */ RepositoryIterator reposEnd() const; /** Iterate the repositories. */ Iterable repos() const { return makeIterable( reposBegin(), reposEnd() ); } /** Return a \ref Repository named \c alias_r. * It a such a \ref Repository does not already exist * a new empty \ref Repository is created. */ Repository reposInsert( const std::string & alias_r ); /** Find a \ref Repository named \c alias_r. * Returns \ref noRepository if there is no such \ref Repository. */ Repository reposFind( const std::string & alias_r ) const; /** Remove a \ref Repository named \c alias_r. * \see \ref Repository::eraseFromPool */ void reposErase( const std::string & alias_r ) { reposFind( alias_r ).eraseFromPool(); } /** Remove all repos from the pool. * This also shrinks a pool which may have become large * after having added and removed repos lots of times. */ void reposEraseAll() { while ( ! reposEmpty() ) reposErase( reposBegin()->alias() ); } public: /** Reserved system repository alias \c @System. */ static const std::string & systemRepoAlias(); /** Return the system repository if it is on the pool. */ Repository findSystemRepo() const; /** Return the system repository, create it if missing. */ Repository systemRepo(); public: /** Load \ref Solvables from a solv-file into a \ref Repository named \c name_r. * In case of an exception the \ref Repository is removed from the \ref Pool. * \throws Exception if loading the solv-file fails. * \see \ref Repository::EraseFromPool */ Repository addRepoSolv( const Pathname & file_r, const std::string & name_r ); /** \overload Using the files basename as \ref Repository name. */ Repository addRepoSolv( const Pathname & file_r ); /** \overload Using the \ref RepoInfo::alias \ref Repo name. * Additionally stores the \ref RepoInfo. \See \ref Prool::setInfo. */ Repository addRepoSolv( const Pathname & file_r, const RepoInfo & info_r ); public: /** Load \ref Solvables from a helix-file into a \ref Repository named \c name_r. * Supports loading of gzip compressed files (.gz). In case of an exception * the \ref Repository is removed from the \ref Pool. * \throws Exception if loading the helix-file fails. * \see \ref Repository::EraseFromPool */ Repository addRepoHelix( const Pathname & file_r, const std::string & name_r ); /** \overload Using the files basename as \ref Repository name. */ Repository addRepoHelix( const Pathname & file_r ); /** \overload Using the \ref RepoInfo::alias \ref Repo name. * Additionally stores the \ref RepoInfo. \See \ref Prool::setInfo. */ Repository addRepoHelix( const Pathname & file_r, const RepoInfo & info_r ); public: /** Whether \ref Pool contains solvables. */ bool solvablesEmpty() const; /** Number of solvables in \ref Pool. */ size_type solvablesSize() const; /** Iterator to the first \ref Solvable. */ SolvableIterator solvablesBegin() const; /** Iterator behind the last \ref Solvable. */ SolvableIterator solvablesEnd() const; /** Iterate the solvables. */ Iterable solvables() const { return makeIterable( solvablesBegin(), solvablesEnd() ); } public: /** \name Iterate all Solvables matching a \c TFilter. */ //@{ template filter_iterator filterBegin( const TFilter & filter_r ) const { return make_filter_iterator( filter_r, solvablesBegin(), solvablesEnd() ); } template filter_iterator filterEnd( const TFilter & filter_r ) const { return make_filter_iterator( filter_r, solvablesEnd(), solvablesEnd() ); } //@} public: /** Conainer of all \ref Solvable providing \c cap_r. */ WhatProvides whatProvides( Capability cap_r ) const { return WhatProvides( cap_r ); } public: /** \name Requested locales. */ //@{ /** Set the default language for retrieving translated texts. * Updated when calling \ref ZConfig::setTextLocale. */ void setTextLocale( const Locale & locale_r ); /** Set the requested locales. * Languages to be supported by the system, e.g. language specific * packages to be installed. */ void setRequestedLocales( const LocaleSet & locales_r ); /** Add one \ref Locale to the set of requested locales. * Return \c true if \c locale_r was newly added to the set. */ bool addRequestedLocale( const Locale & locale_r ); /** Erase one \ref Locale from the set of requested locales. * Return \c false if \c locale_r was not found in the set. */ bool eraseRequestedLocale( const Locale & locale_r ); /** Return the requested locales. * \see \ref setRequestedLocales */ const LocaleSet & getRequestedLocales() const; /** Whether this \ref Locale is in the set of requested locales. */ bool isRequestedLocale( const Locale & locale_r ) const; /** Start tracking changes based on this \a locales_r. */ void initRequestedLocales( const LocaleSet & locales_r ); /** Added since last initRequestedLocales. */ const LocaleSet & getAddedRequestedLocales() const; /** Removed since last initRequestedLocales.*/ const LocaleSet & getRemovedRequestedLocales() const; /** Get the set of available locales. * This is computed from the package data so it actually * represents all locales packages claim to support. */ const LocaleSet & getAvailableLocales() const; /** Whether this \ref Locale is in the set of available locales. */ bool isAvailableLocale( const Locale & locale_r ) const; //@} public: /** \name Multiversion install. * Whether the pool contains packages which are multiversion installable. * \see \ref Solvable::multiversionInstall * \see \ref ZConfig::multiversionSpec */ //@{ typedef SolvableSet MultiversionList; const MultiversionList & multiversion() const; /** \deprecated Legacy, use multiversion().empty() instead. */ ZYPP_DEPRECATED bool multiversionEmpty() const { return multiversion().empty(); } //@} public: /** \name Autoinstalled */ //@{ /** Get ident list of all autoinstalled solvables. */ Queue autoInstalled() const; /** Set ident list of all autoinstalled solvables. */ void setAutoInstalled( const Queue & autoInstalled_r ); //@} public: /** Expert backdoor. */ detail::CPool * get() const; private: /** Default ctor */ Pool() {} }; /////////////////////////////////////////////////////////////////// /** \relates Pool Stream output */ std::ostream & operator<<( std::ostream & str, const Pool & obj ); /** \relates Pool */ inline bool operator==( const Pool & lhs, const Pool & rhs ) { return lhs.get() == rhs.get(); } /** \relates Pool */ inline bool operator!=( const Pool & lhs, const Pool & rhs ) { return lhs.get() != rhs.get(); } /** Create solv file content digest for zypper bash completion */ void updateSolvFileIndex( const Pathname & solvfile_r ); ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_POOL_H libzypp-17.7.0/zypp/sat/Queue.cc000066400000000000000000000104661334444677500165130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Queue.cc */ extern "C" { #include } #include #include "zypp/base/LogTools.h" #include "zypp/sat/Queue.h" #include "zypp/sat/Solvable.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { template<> sat::detail::CQueue * rwcowClone( const sat::detail::CQueue * rhs ) { sat::detail::CQueue * ret = new sat::detail::CQueue; ::queue_init_clone( ret, const_cast(rhs) ); return ret; } /////////////////////////////////////////////////////////////////// namespace sat { Queue::Queue() : _pimpl( new detail::CQueue ) { ::queue_init( _pimpl.get() ); } Queue::~Queue() { ::queue_free( _pimpl.get() ); } bool Queue::empty() const { return( _pimpl->count == 0 ); } Queue::size_type Queue::size() const { return _pimpl->count; } Queue::const_iterator Queue::begin() const { return _pimpl->elements; } Queue::const_iterator Queue::end() const { return _pimpl->elements + _pimpl->count;} Queue::const_iterator Queue::find( value_type val_r ) const { for_( it, begin(), end() ) if ( *it == val_r ) return it; return end(); } Queue::value_type Queue::first() const { if ( _pimpl->count ) return *_pimpl->elements; return 0; } Queue::value_type Queue::last() const { if ( _pimpl->count ) return _pimpl->elements[_pimpl->count-1]; return 0; } #define M_RANGE_CKECK(IDX,LOC) if ( IDX >= size_type(_pimpl->count) ) throw std::out_of_range( "zypp::sat::Queue::" LOC ) const Queue::value_type & Queue::at( size_type idx_r ) const { M_RANGE_CKECK( idx_r, "at" ); return _pimpl->elements[idx_r]; } Queue::value_type & Queue::at( size_type idx_r ) { M_RANGE_CKECK( idx_r, "at" ); return _pimpl->elements[idx_r]; } const Queue::value_type & Queue::operator[]( size_type idx_r ) const { return _pimpl->elements[idx_r]; } Queue::value_type & Queue::operator[]( size_type idx_r ) { return _pimpl->elements[idx_r]; } void Queue::clear() { ::queue_empty( *this ); } void Queue::remove( value_type val_r ) { for ( const_iterator it( find( val_r ) ); it != end(); it = find( val_r ) ) ::queue_delete( _pimpl.get(), it - begin() ); } void Queue::push( value_type val_r ) { ::queue_push( _pimpl.get(), val_r ); } void Queue::pushUnique( value_type val_r ) { ::queue_pushunique( _pimpl.get(), val_r ); } Queue::value_type Queue::pop() { return ::queue_pop( _pimpl.get() ); } void Queue::push_front( value_type val_r ) { ::queue_unshift( _pimpl.get(), val_r ); } Queue::value_type Queue::pop_front() { return ::queue_shift( _pimpl.get() ); } Queue::operator detail::CQueue *() // COW: nonconst version can't be inlined { return _pimpl.get(); } // without exposing detail::CQueue std::ostream & operator<<( std::ostream & str, const Queue & obj ) { return dumpRangeLine( str << "Queue ", obj.begin(), obj.end() ); } std::ostream & dumpOn( std::ostream & str, const Queue & obj ) { str << "Queue {"; if ( ! obj.empty() ) { str << endl; for_( it, obj.begin(), obj.end() ) str << " " << Solvable(*it) << endl; } return str << "}"; } bool operator==( const Queue & lhs, const Queue & rhs ) { const detail::CQueue * l = lhs; const detail::CQueue * r = rhs; return( l == r || ( l->count == r->count && ::memcmp( l->elements, r->elements, l->count ) == 0 ) ); } } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/Queue.h000066400000000000000000000106261334444677500163530ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Queue.h */ #ifndef ZYPP_SAT_QUEUE_H #define ZYPP_SAT_QUEUE_H #include #include "zypp/base/PtrTypes.h" #include "zypp/sat/detail/PoolMember.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { class Queue; typedef Queue SolvableQueue; ///< Queue with Solvable ids typedef Queue StringQueue; ///< Queue with String ids /////////////////////////////////////////////////////////////////// /// \class Queue /// \brief Libsolv Id queue wrapper. /// \todo template value_type to work with IString and other Id based types /////////////////////////////////////////////////////////////////// class Queue { public: typedef unsigned size_type; typedef detail::IdType value_type; typedef const value_type* const_iterator; public: /** Default ctor: empty Queue. */ Queue(); /** Dtor */ ~Queue(); bool empty() const; size_type size() const; const_iterator begin() const; const_iterator end() const; /** Return iterator to the 1st occurance of \a val_r or \ref end. */ const_iterator find( value_type val_r ) const; /** Return whether the Queue contais at lest one element with value \a val_r. */ bool contains( value_type val_r ) const { return( find( val_r ) != end() ); } /** Return the 1st Id in the queue or \c 0 if empty. */ value_type first() const; /** Return the last Id in the queue or \c 0 if empty. */ value_type last() const; /** Return the Id at \a idx_r in the queue * \throws std::out_of_range if \a idx_r is out of range */ const value_type & at( size_type idx_r ) const; /** Return the Id at \a idx_r in the queue * \throws std::out_of_range if \a idx_r is out of range */ value_type & at( size_type idx_r ); /** Return the Id at \a idx_r in the queue (no range check) */ const value_type & operator[]( size_type idx_r ) const; /** Return the Id at \a idx_r in the queue (no range check) */ value_type & operator[]( size_type idx_r ); /** Clear the queue. */ void clear(); /** Remove all occurances of \a val_r from the queue. */ void remove( value_type val_r ); /** Push a value to the end off the Queue. */ void push( value_type val_r ); /** \overload */ void push_back( value_type val_r ) { push( val_r ); } /** Push a value if it's not yet in the Queue. */ void pushUnique( value_type val_r ); /** Pop and return the last Id from the queue or \c 0 if empty. */ value_type pop(); /** \overload */ value_type pop_back() { return pop(); } /** Push a value to the beginning off the Queue. */ void push_front( value_type val_r ); /** Pop and return the 1st Id from the queue or \c 0 if empty. */ value_type pop_front(); public: operator detail::CQueue *(); ///< libsolv backdoor operator const detail::CQueue *() const ///< libsolv backdoor { return _pimpl.get(); } private: RWCOW_pointer _pimpl; ///< Pointer to implementation }; /** \relates Queue Stream output */ std::ostream & operator<<( std::ostream & str, const Queue & obj ); /** \relates Queue Stream output assuming a Solvable queue. */ std::ostream & dumpOn( std::ostream & str, const Queue & obj ); /** \relates Queue */ bool operator==( const Queue & lhs, const Queue & rhs ); /** \relates Queue */ inline bool operator!=( const Queue & lhs, const Queue & rhs ) { return !( lhs == rhs ); } } // namespace sat /////////////////////////////////////////////////////////////////// /** \relates Queue Clone function for RWCOW_pointer */ template<> sat::detail::CQueue * rwcowClone( const sat::detail::CQueue * rhs ); } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_QUEUE_H libzypp-17.7.0/zypp/sat/SolvAttr.cc000066400000000000000000000211001334444677500171700ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/SolvAttr.cc * */ extern "C" { #include } #include #include "zypp/base/String.h" #include "zypp/sat/SolvAttr.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// const SolvAttr SolvAttr::allAttr( detail::noId ); const SolvAttr SolvAttr::noAttr; #warning STILL ATTRIBUTES HERE WHICH ARE NOT PROVIDED BY SOLV FILES // At least the ones that do nat have a solv/knownid. const SolvAttr SolvAttr::name ( SOLVABLE_NAME ); const SolvAttr SolvAttr::edition ( SOLVABLE_EVR ); const SolvAttr SolvAttr::arch ( SOLVABLE_ARCH ); const SolvAttr SolvAttr::vendor ( SOLVABLE_VENDOR ); const SolvAttr SolvAttr::provides ( SOLVABLE_PROVIDES ); const SolvAttr SolvAttr::obsoletes ( SOLVABLE_OBSOLETES ); const SolvAttr SolvAttr::conflicts ( SOLVABLE_CONFLICTS ); const SolvAttr SolvAttr::requires ( SOLVABLE_REQUIRES ); const SolvAttr SolvAttr::recommends ( SOLVABLE_RECOMMENDS ); const SolvAttr SolvAttr::suggests ( SOLVABLE_SUGGESTS ); const SolvAttr SolvAttr::supplements ( SOLVABLE_SUPPLEMENTS ); const SolvAttr SolvAttr::enhances ( SOLVABLE_ENHANCES ); const SolvAttr SolvAttr::summary ( SOLVABLE_SUMMARY ); // translated const SolvAttr SolvAttr::description ( SOLVABLE_DESCRIPTION ); // translated const SolvAttr SolvAttr::insnotify ( SOLVABLE_MESSAGEINS ); // translated const SolvAttr SolvAttr::delnotify ( SOLVABLE_MESSAGEDEL ); // translated const SolvAttr SolvAttr::eula ( SOLVABLE_EULA ); // translated const SolvAttr SolvAttr::cpeid ( SOLVABLE_CPEID ); const SolvAttr SolvAttr::installtime ( SOLVABLE_INSTALLTIME ); const SolvAttr SolvAttr::buildtime ( SOLVABLE_BUILDTIME ); const SolvAttr SolvAttr::installsize ( SOLVABLE_INSTALLSIZE ); const SolvAttr SolvAttr::downloadsize ( SOLVABLE_DOWNLOADSIZE ); const SolvAttr SolvAttr::diskusage ( SOLVABLE_DISKUSAGE ); //package const SolvAttr SolvAttr::checksum ( SOLVABLE_CHECKSUM ); const SolvAttr SolvAttr::medianr ( SOLVABLE_MEDIANR ); const SolvAttr SolvAttr::mediafile ( SOLVABLE_MEDIAFILE ); const SolvAttr SolvAttr::mediadir ( SOLVABLE_MEDIADIR ); const SolvAttr SolvAttr::changelog ( "changelog" ); const SolvAttr SolvAttr::buildhost ( SOLVABLE_BUILDHOST ); const SolvAttr SolvAttr::distribution ( SOLVABLE_DISTRIBUTION ); const SolvAttr SolvAttr::license ( SOLVABLE_LICENSE ); const SolvAttr SolvAttr::packager ( SOLVABLE_PACKAGER ); const SolvAttr SolvAttr::group ( SOLVABLE_GROUP ); const SolvAttr SolvAttr::keywords ( SOLVABLE_KEYWORDS ); const SolvAttr SolvAttr::sourcesize ( "sourcesize" ); const SolvAttr SolvAttr::authors ( SOLVABLE_AUTHORS ); const SolvAttr SolvAttr::filelist ( SOLVABLE_FILELIST ); const SolvAttr SolvAttr::sourcearch ( SOLVABLE_SOURCEARCH ); const SolvAttr SolvAttr::sourcename ( SOLVABLE_SOURCENAME ); const SolvAttr SolvAttr::sourceevr ( SOLVABLE_SOURCEEVR ); const SolvAttr SolvAttr::headerend ( SOLVABLE_HEADEREND ); const SolvAttr SolvAttr::url ( SOLVABLE_URL ); // patch const SolvAttr SolvAttr::patchcategory ( SOLVABLE_PATCHCATEGORY ); const SolvAttr SolvAttr::rebootSuggested ( UPDATE_REBOOT ); const SolvAttr SolvAttr::restartSuggested ( UPDATE_RESTART ); const SolvAttr SolvAttr::reloginSuggested ( UPDATE_RELOGIN ); const SolvAttr SolvAttr::message ( UPDATE_MESSAGE ); const SolvAttr SolvAttr::severity ( UPDATE_SEVERITY ); const SolvAttr SolvAttr::updateCollection ( UPDATE_COLLECTION ); const SolvAttr SolvAttr::updateCollectionName ( UPDATE_COLLECTION_NAME ); const SolvAttr SolvAttr::updateCollectionEvr ( UPDATE_COLLECTION_EVR ); const SolvAttr SolvAttr::updateCollectionArch ( UPDATE_COLLECTION_ARCH ); const SolvAttr SolvAttr::updateCollectionFilename ( UPDATE_COLLECTION_FILENAME ); const SolvAttr SolvAttr::updateCollectionFlags ( UPDATE_COLLECTION_FLAGS ); const SolvAttr SolvAttr::updateReference ( UPDATE_REFERENCE ); const SolvAttr SolvAttr::updateReferenceType ( UPDATE_REFERENCE_TYPE ); const SolvAttr SolvAttr::updateReferenceHref ( UPDATE_REFERENCE_HREF ); const SolvAttr SolvAttr::updateReferenceId ( UPDATE_REFERENCE_ID ); const SolvAttr SolvAttr::updateReferenceTitle ( UPDATE_REFERENCE_TITLE ); //pattern const SolvAttr SolvAttr::isvisible ( SOLVABLE_ISVISIBLE ); const SolvAttr SolvAttr::icon ( SOLVABLE_ICON ); const SolvAttr SolvAttr::order ( SOLVABLE_ORDER ); const SolvAttr SolvAttr::isdefault ( "isdefault" ); const SolvAttr SolvAttr::category ( SOLVABLE_CATEGORY ); // translated const SolvAttr SolvAttr::script ( "script" ); const SolvAttr SolvAttr::includes ( SOLVABLE_INCLUDES ); const SolvAttr SolvAttr::extends ( SOLVABLE_EXTENDS ); // product const SolvAttr SolvAttr::productReferenceFile ( PRODUCT_REFERENCEFILE ); const SolvAttr SolvAttr::productProductLine ( PRODUCT_PRODUCTLINE ); const SolvAttr SolvAttr::productShortlabel ( PRODUCT_SHORTLABEL ); const SolvAttr SolvAttr::productDistproduct ( PRODUCT_DISTPRODUCT ); const SolvAttr SolvAttr::productDistversion ( PRODUCT_DISTVERSION ); const SolvAttr SolvAttr::productType ( PRODUCT_TYPE ); const SolvAttr SolvAttr::productFlags ( PRODUCT_FLAGS ); const SolvAttr SolvAttr::productEndOfLife ( PRODUCT_ENDOFLIFE ); const SolvAttr SolvAttr::productRegisterTarget ( PRODUCT_REGISTER_TARGET ); const SolvAttr SolvAttr::productRegisterRelease( PRODUCT_REGISTER_RELEASE ); const SolvAttr SolvAttr::productRegisterFlavor ( PRODUCT_REGISTER_FLAVOR ); const SolvAttr SolvAttr::productUrl ( PRODUCT_URL ); const SolvAttr SolvAttr::productUrlType ( PRODUCT_URL_TYPE ); /** array of repoids, hopefully label s too */ const SolvAttr SolvAttr::productUpdates ( PRODUCT_UPDATES ); const SolvAttr SolvAttr::productUpdatesRepoid ( PRODUCT_UPDATES_REPOID ); // repository const SolvAttr SolvAttr::repositoryDeltaInfo ( REPOSITORY_DELTAINFO ); const SolvAttr SolvAttr::repositoryAddedFileProvides ( REPOSITORY_ADDEDFILEPROVIDES ); const SolvAttr SolvAttr::repositoryRpmDbCookie ( REPOSITORY_RPMDBCOOKIE ); const SolvAttr SolvAttr::repositoryTimestamp ( REPOSITORY_TIMESTAMP ); const SolvAttr SolvAttr::repositoryExpire ( REPOSITORY_EXPIRE ); /** array of repositoryProductLabel repositoryProductCpeid pairs */ const SolvAttr SolvAttr::repositoryUpdates ( REPOSITORY_UPDATES ); /** array of repositoryProductLabel repositoryProductCpeid pairs */ const SolvAttr SolvAttr::repositoryDistros ( REPOSITORY_DISTROS ); const SolvAttr SolvAttr::repositoryProductLabel ( REPOSITORY_PRODUCT_LABEL ); const SolvAttr SolvAttr::repositoryProductCpeid ( REPOSITORY_PRODUCT_CPEID ); const SolvAttr SolvAttr::repositoryRepoid ( REPOSITORY_REPOID ); const SolvAttr SolvAttr::repositoryKeywords ( REPOSITORY_KEYWORDS ); const SolvAttr SolvAttr::repositoryRevision ( REPOSITORY_REVISION ); const SolvAttr SolvAttr::repositoryToolVersion ( REPOSITORY_TOOLVERSION ); ///////////////////////////////////////////////////////////////// SolvAttr SolvAttr::parent() const { switch( id() ) { case UPDATE_COLLECTION_NAME: case UPDATE_COLLECTION_EVR: case UPDATE_COLLECTION_ARCH: case UPDATE_COLLECTION_FILENAME: case UPDATE_COLLECTION_FLAGS: return updateCollection; break; case UPDATE_REFERENCE_TYPE: case UPDATE_REFERENCE_HREF: case UPDATE_REFERENCE_ID: case UPDATE_REFERENCE_TITLE: return updateReference; break; } return noAttr; } } // namespace sat ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/SolvAttr.h000066400000000000000000000163211334444677500170430ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/SolvAttr.h * */ #ifndef ZYPP_SAT_SOLVATTR_H #define ZYPP_SAT_SOLVATTR_H #include #include #include "zypp/base/String.h" #include "zypp/IdStringType.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolvAttr // /** Solvable attribute keys. * * Attributes associated with individual solvables, * or with the repository as a whole. * * \note If you add well known subsructure attributes, update \ref parent. * * \see \ref LookupAttr */ class SolvAttr : public IdStringType { public: /** \name Some builtin SolvAttr constants. */ //@{ /** Value to request searching all Attributes (0). */ static const SolvAttr allAttr; /** Value representing \c noAttr ("")*/ static const SolvAttr noAttr; /** \name special solvable attributes which are part of the ::Solvable struct */ //@{ static const SolvAttr name; static const SolvAttr edition; static const SolvAttr arch; static const SolvAttr vendor; //@} /** \name dependency attributes */ //@{ static const SolvAttr provides; static const SolvAttr obsoletes; static const SolvAttr conflicts; static const SolvAttr requires; static const SolvAttr recommends; static const SolvAttr suggests; static const SolvAttr supplements; static const SolvAttr enhances; /** \name common */ //@{ static const SolvAttr summary; static const SolvAttr description; static const SolvAttr insnotify; static const SolvAttr delnotify; static const SolvAttr eula; static const SolvAttr installtime; static const SolvAttr buildtime; static const SolvAttr installsize; static const SolvAttr downloadsize; static const SolvAttr diskusage; static const SolvAttr cpeid; //@} /** \name package */ //@{ static const SolvAttr checksum; static const SolvAttr mediadir; static const SolvAttr medianr; static const SolvAttr mediafile; static const SolvAttr changelog; static const SolvAttr buildhost; static const SolvAttr distribution; static const SolvAttr license; static const SolvAttr packager; static const SolvAttr group; static const SolvAttr keywords; static const SolvAttr sourcesize; static const SolvAttr authors; static const SolvAttr filelist; static const SolvAttr sourcearch; static const SolvAttr sourcename; static const SolvAttr sourceevr; static const SolvAttr headerend; static const SolvAttr url; //@} /** \name patch */ //@{ static const SolvAttr patchcategory; static const SolvAttr rebootSuggested; static const SolvAttr restartSuggested; static const SolvAttr reloginSuggested; static const SolvAttr message; static const SolvAttr severity; static const SolvAttr updateCollection; // SUB-STRUCTURE: static const SolvAttr updateCollectionName; // name static const SolvAttr updateCollectionEvr; // evr static const SolvAttr updateCollectionArch; // arch static const SolvAttr updateCollectionFilename; // filename static const SolvAttr updateCollectionFlags; // flags static const SolvAttr updateReference; // SUB-STRUCTURE: static const SolvAttr updateReferenceType; // type static const SolvAttr updateReferenceHref; // href static const SolvAttr updateReferenceId; // id static const SolvAttr updateReferenceTitle; // title //@} /** \name pattern */ //@{ static const SolvAttr isvisible; static const SolvAttr icon; static const SolvAttr order; static const SolvAttr isdefault; static const SolvAttr category; static const SolvAttr script; static const SolvAttr includes; static const SolvAttr extends; //@} /** \name product */ //@{ static const SolvAttr productReferenceFile; static const SolvAttr productProductLine; static const SolvAttr productShortlabel; static const SolvAttr productDistproduct; static const SolvAttr productDistversion; static const SolvAttr productType; static const SolvAttr productFlags; static const SolvAttr productEndOfLife; static const SolvAttr productRegisterTarget; static const SolvAttr productRegisterRelease; static const SolvAttr productRegisterFlavor; static const SolvAttr productUrl; static const SolvAttr productUrlType; static const SolvAttr productUpdates; // SUB-STRUCTURE: static const SolvAttr productUpdatesRepoid; // repoid //@} /** \name repository */ //@{ static const SolvAttr repositoryDeltaInfo; static const SolvAttr repositoryAddedFileProvides; static const SolvAttr repositoryRpmDbCookie; static const SolvAttr repositoryTimestamp; static const SolvAttr repositoryExpire; static const SolvAttr repositoryUpdates; static const SolvAttr repositoryDistros; static const SolvAttr repositoryProductLabel; static const SolvAttr repositoryProductCpeid; static const SolvAttr repositoryRepoid; static const SolvAttr repositoryKeywords; static const SolvAttr repositoryRevision; static const SolvAttr repositoryToolVersion; //@} //@} public: /** Default ctor: \ref noAttr */ SolvAttr() {} /** Ctor taking kind as string. */ explicit SolvAttr( sat::detail::IdType id_r ) : _str( id_r ) {} explicit SolvAttr( const IdString & idstr_r ) : _str( idstr_r ) {} explicit SolvAttr( const std::string & str_r ) : _str( str_r ) {} explicit SolvAttr( const char * cstr_r ) : _str( cstr_r ) {} /** Return the parent of well know sub-structure attributes (\ref SolvAttr::noAttr if none). * \li \ref updateCollection * \li \ref updateReference */ SolvAttr parent() const; /** Whether this is a well know sub-structure attribute. */ bool hasParent() const { return parent() != noAttr; } private: friend class IdStringType; IdString _str; }; ///////////////////////////////////////////////////////////////// } // namespace sat } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_sat_SolvAttr_H libzypp-17.7.0/zypp/sat/SolvIterMixin.cc000066400000000000000000000051341334444677500201770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/SolvIterMixin.cc * */ //#include //#include "zypp/base/Logger.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/sat/Solvable.h" #include "zypp/ResPoolProxy.h" #include "zypp/pool/PoolTraits.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// namespace solvitermixin_detail { bool UnifyByIdent::operator()( const Solvable & solv_r ) const { // Need to use pool::ByIdent because packages and srcpackages have the same id. return( solv_r && _uset->insert( pool::ByIdent( solv_r ).get() ).second ); } } /////////////////////////////////////////////////////////////////// // asSolvable /////////////////////////////////////////////////////////////////// Solvable asSolvable::operator()( const PoolItem & pi_r ) const { return pi_r.satSolvable(); } Solvable asSolvable::operator()( const ResObject_constPtr & res_r ) const { return res_r ? res_r->satSolvable() : Solvable(); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// Selectable_Ptr asSelectable::operator()( const sat::Solvable & sov_r ) const { return ResPool::instance().proxy().lookup( sov_r ); } ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/SolvIterMixin.h000066400000000000000000000175241334444677500200470ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/SolvIterMixin.h * */ #ifndef ZYPP_SAT_SOLVITERMIXIN_H #define ZYPP_SAT_SOLVITERMIXIN_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Iterator.h" #include "zypp/base/Hash.h" #include "zypp/sat/Solvable.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class PoolItem; class asPoolItem; // transform functor namespace ui { class asSelectable; // transform functor } /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// class Solvable; class asSolvable; // transform functor namespace solvitermixin_detail { /** Unify by \c ident \c (kind:name). * Return true on the 1st appearance of a new \c ident. This is * used in \ref SolvIterMixin when mapping a Solvable iterator * to a Selectable iterator. */ struct UnifyByIdent { bool operator()( const Solvable & solv_r ) const; typedef std::unordered_set Uset; UnifyByIdent() : _uset( new Uset ) {} shared_ptr _uset; }; } // namespace solvitermixin_detail /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolvIterMixin // /** Base class providing common iterator types based on a \ref Solvable iterator. * * A class deriving from \ref SolvIterMixin must provide two methods * \c begin and \c end returning iterator over \ref sat::Solvable. * * \ref SolvIterMixin will then provide iterators over the corresponding * \ref PoolItem and \ref ui::Selectable_Ptr. * * \ref SolvIterMixin will also provide default implementations for \ref empty * and \ref size by iterating from \c begin to \c end. In case \c Derived is * able to provide a more efficient implementation, the methods should be overloaded. * * \note You will sometimes face the problem, that when using the \ref PoolItem * iterator you hit multiple version of the same package, while when using the * \ref ui::Selectable iterator the information which of the available candidates * actually matched got lost. In this case class \ref PoolItemBest may help you. * Use it to pick the best version only. * * \code * namespace detail * { * class WhatProvidesIterator; * } * * class WhatProvides : public SolvIterMixin * { * public: * typedef detail::WhatProvidesIterator const_iterator; * * // Iterator pointing to the first Solvable. * const_iterator begin() const; * * // Iterator pointing behind the last Solvable. * const_iterator end() const; * * }; * * namespace detail * { * class WhatProvidesIterator : public boost::iterator_adaptor< * WhatProvidesIterator // Derived * , const detail::IdType * // Base * , const Solvable // Value * , boost::forward_traversal_tag // CategoryOrTraversal * , const Solvable // Reference * > * { * ... * }; * } * \endcode * \ingroup g_CRTP */ template class SolvIterMixin { public: typedef size_t size_type; public: /** \name Convenience methods. * In case \c Derived is able to provide a more efficient implementation, * the methods should be overloaded. */ //@{ /** Whether the collection is epmty. */ bool empty() const { return( self().begin() == self().end() ); } /** Size of the collection. */ size_type size() const { size_type s = 0; for_( it, self().begin(), self().end() ) ++s; return s;} /** Whether collection contains a specific \ref Solvable. */ template bool contains( const TSolv & solv_r ) const { Solvable solv( asSolvable()( solv_r ) ); for_( it, self().begin(), self().end() ) if ( *it == solv ) return true; return false; } //@} public: /** \name Iterate as Solvable */ //@{ typedef DerivedSolvable_iterator Solvable_iterator; Solvable_iterator solvableBegin() const { return self().begin(); } Solvable_iterator solvableEnd() const { return self().end(); } Iterable solvable() const { return makeIterable( solvableBegin(), solvableEnd() ); } //@} /** \name Iterate as PoolItem */ //@{ typedef transform_iterator PoolItem_iterator; PoolItem_iterator poolItemBegin() const { return make_transform_iterator( solvableBegin(), asPoolItem() ); } PoolItem_iterator poolItemEnd() const { return make_transform_iterator( solvableEnd(), asPoolItem() ); } Iterable poolItem() const { return makeIterable( poolItemBegin(), poolItemEnd() ); } //@} private: typedef filter_iterator UnifiedSolvable_iterator; public: /** \name Iterate ui::Selectable::Ptr */ //@{ typedef transform_iterator Selectable_iterator; Selectable_iterator selectableBegin() const { return make_transform_iterator( unifiedSolvableBegin(), ui::asSelectable() ); } Selectable_iterator selectableEnd() const { return make_transform_iterator( unifiedSolvableEnd(), ui::asSelectable() ); } Iterable selectable() const { return makeIterable( selectableBegin(), selectableEnd() ); } //@} private: /** \name Iterate unified Solbvables to be transformed into Selectable. */ //@{ UnifiedSolvable_iterator unifiedSolvableBegin() const { return make_filter_iterator( solvitermixin_detail::UnifyByIdent(), solvableBegin(), solvableEnd() ); } UnifiedSolvable_iterator unifiedSolvableEnd() const { return make_filter_iterator( solvitermixin_detail::UnifyByIdent(), solvableEnd(), solvableEnd() ); } Iterable unifiedSolvable() const { return makeIterable( unifiedSolvableBegin(), unifiedSolvableEnd() ); } //@} private: const Derived & self() const { return *static_cast( this ); } protected: SolvIterMixin() {} ~SolvIterMixin() {} SolvIterMixin(const SolvIterMixin &) {} void operator=(const SolvIterMixin &) {} }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_SOLVITERMIXIN_H libzypp-17.7.0/zypp/sat/Solvable.cc000066400000000000000000000576321334444677500172040ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Solvable.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/Gettext.h" #include "zypp/base/Exception.h" #include "zypp/base/Functional.h" #include "zypp/base/Collector.h" #include "zypp/base/Xml.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/Solvable.h" #include "zypp/sat/Pool.h" #include "zypp/sat/LookupAttr.h" #include "zypp/Repository.h" #include "zypp/OnMediaLocation.h" #include "zypp/ZConfig.h" #include "zypp/ui/Selectable.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { /////////////////////////////////////////////////////////////////// namespace { void _doSplit( IdString & _ident, ResKind & _kind, IdString & _name ) { if ( ! _ident ) return; ResKind explicitKind = ResKind::explicitBuiltin( _ident.c_str() ); // NOTE: kind package and srcpackage do not have namespaced ident! if ( ! explicitKind ) { _name = _ident; // No kind defaults to package if ( !_kind ) _kind = ResKind::package; else if ( ! ( _kind == ResKind::package || _kind == ResKind::srcpackage ) ) _ident = IdString( str::form( "%s:%s", _kind.c_str(), _ident.c_str() ) ); } else { // strip kind spec from name _name = IdString( ::strchr( _ident.c_str(), ':' )+1 ); _kind = explicitKind; if ( _kind == ResKind::package || _kind == ResKind::srcpackage ) _ident = _name; } return; } } // namespace /////////////////////////////////////////////////////////////////// Solvable::SplitIdent::SplitIdent( IdString ident_r ) : _ident( ident_r ) { _doSplit( _ident, _kind, _name ); } Solvable::SplitIdent::SplitIdent( const char * ident_r ) : _ident( ident_r ) { _doSplit( _ident, _kind, _name ); } Solvable::SplitIdent::SplitIdent( const std::string & ident_r ) : _ident( ident_r ) { _doSplit( _ident, _kind, _name ); } Solvable::SplitIdent::SplitIdent( ResKind kind_r, IdString name_r ) : _ident( name_r ) , _kind( kind_r ) { _doSplit( _ident, _kind, _name ); } Solvable::SplitIdent::SplitIdent( ResKind kind_r, const C_Str & name_r ) : _ident( name_r ) , _kind( kind_r ) { _doSplit( _ident, _kind, _name ); } ///////////////////////////////////////////////////////////////// // class Solvable ///////////////////////////////////////////////////////////////// const Solvable Solvable::noSolvable; ///////////////////////////////////////////////////////////////// detail::CSolvable * Solvable::get() const { return myPool().getSolvable( _id ); } #define NO_SOLVABLE_RETURN( VAL ) \ detail::CSolvable * _solvable( get() ); \ if ( ! _solvable ) return VAL Solvable Solvable::nextInPool() const { return Solvable( myPool().getNextId( _id ) ); } Solvable Solvable::nextInRepo() const { NO_SOLVABLE_RETURN( noSolvable ); for ( detail::SolvableIdType next = _id+1; next < unsigned(_solvable->repo->end); ++next ) { detail::CSolvable * nextS( myPool().getSolvable( next ) ); if ( nextS && nextS->repo == _solvable->repo ) { return Solvable( next ); } } return noSolvable; } std::string Solvable::lookupStrAttribute( const SolvAttr & attr ) const { NO_SOLVABLE_RETURN( std::string() ); const char * s = ::solvable_lookup_str( _solvable, attr.id() ); return s ? s : std::string(); } std::string Solvable::lookupStrAttribute( const SolvAttr & attr, const Locale & lang_r ) const { NO_SOLVABLE_RETURN( std::string() ); const char * s = 0; if ( !lang_r ) { s = ::solvable_lookup_str_poollang( _solvable, attr.id() ); } else { for ( Locale l( lang_r ); l; l = l.fallback() ) { if ( (s = ::solvable_lookup_str_lang( _solvable, attr.id(), l.c_str(), 0 )) ) return s; } // here: no matching locale, so use default s = ::solvable_lookup_str_lang( _solvable, attr.id(), 0, 0 ); } return s ? s : std::string(); } unsigned long long Solvable::lookupNumAttribute( const SolvAttr & attr ) const { NO_SOLVABLE_RETURN( 0 ); return ::solvable_lookup_num( _solvable, attr.id(), 0 ); } unsigned long long Solvable::lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const { NO_SOLVABLE_RETURN( notfound_r ); return ::solvable_lookup_num( _solvable, attr.id(), notfound_r ); } bool Solvable::lookupBoolAttribute( const SolvAttr & attr ) const { NO_SOLVABLE_RETURN( false ); return ::solvable_lookup_bool( _solvable, attr.id() ); } detail::IdType Solvable::lookupIdAttribute( const SolvAttr & attr ) const { NO_SOLVABLE_RETURN( detail::noId ); return ::solvable_lookup_id( _solvable, attr.id() ); } CheckSum Solvable::lookupCheckSumAttribute( const SolvAttr & attr ) const { NO_SOLVABLE_RETURN( CheckSum() ); detail::IdType chksumtype = 0; const char * s = ::solvable_lookup_checksum( _solvable, attr.id(), &chksumtype ); if ( ! s ) return CheckSum(); switch ( chksumtype ) { case REPOKEY_TYPE_MD5: return CheckSum::md5( s ); case REPOKEY_TYPE_SHA1: return CheckSum::sha1( s ); case REPOKEY_TYPE_SHA224: return CheckSum::sha224( s ); case REPOKEY_TYPE_SHA256: return CheckSum::sha256( s ); case REPOKEY_TYPE_SHA384: return CheckSum::sha384( s ); case REPOKEY_TYPE_SHA512: return CheckSum::sha512( s ); } return CheckSum( std::string(), s ); // try to autodetect } /////////////////////////////////////////////////////////////////// namespace { inline Pathname lookupDatadirIn( Repository repor_r ) { static const SolvAttr susetagsDatadir( "susetags:datadir" ); Pathname ret; // First look for repo attribute "susetags:datadir". If not found, // look into the solvables as Code11 libsolv placed it there. LookupRepoAttr datadir( susetagsDatadir, repor_r ); if ( ! datadir.empty() ) ret = datadir.begin().asString(); else { LookupAttr datadir( susetagsDatadir, repor_r ); if ( ! datadir.empty() ) ret = datadir.begin().asString(); } return ret; } } // namespace /////////////////////////////////////////////////////////////////// OnMediaLocation Solvable::lookupLocation() const { NO_SOLVABLE_RETURN( OnMediaLocation() ); // medianumber and path unsigned medianr; const char * file = ::solvable_lookup_location( _solvable, &medianr ); if ( ! file ) return OnMediaLocation(); if ( ! medianr ) medianr = 1; OnMediaLocation ret; Pathname path; switch ( repository().info().type().toEnum() ) { case repo::RepoType::NONE_e: { path = lookupDatadirIn( repository() ); if ( ! path.empty() ) repository().info().setProbedType( repo::RepoType::YAST2_e ); } break; case repo::RepoType::YAST2_e: { path = lookupDatadirIn( repository() ); if ( path.empty() ) path = "suse"; } break; default: break; } ret.setLocation ( path/file, medianr ); ret.setDownloadSize( ByteCount( lookupNumAttribute( SolvAttr::downloadsize ) ) ); ret.setChecksum ( lookupCheckSumAttribute( SolvAttr::checksum ) ); // Not needed/available for solvables? //ret.setOpenSize ( ByteCount( lookupNumAttribute( SolvAttr::opensize ) ) ); //ret.setOpenChecksum( lookupCheckSumAttribute( SolvAttr::openchecksum ) ); return ret; } IdString Solvable::ident() const { NO_SOLVABLE_RETURN( IdString() ); return IdString( _solvable->name ); } ResKind Solvable::kind() const { NO_SOLVABLE_RETURN( ResKind() ); // detect srcpackages by 'arch' switch ( _solvable->arch ) { case ARCH_SRC: case ARCH_NOSRC: return ResKind::srcpackage; break; } // either explicitly prefixed... const char * ident = IdString( _solvable->name ).c_str(); ResKind knownKind( ResKind::explicitBuiltin( ident ) ); if ( knownKind ) return knownKind; // ...or no ':' in package names (hopefully)... const char * sep = ::strchr( ident, ':' ); if ( ! sep ) return ResKind::package; // ...or something unknown. return ResKind( std::string( ident, sep-ident ) ); } bool Solvable::isKind( const ResKind & kind_r ) const { NO_SOLVABLE_RETURN( false ); // detect srcpackages by 'arch' switch ( _solvable->arch ) { case ARCH_SRC: case ARCH_NOSRC: return( kind_r == ResKind::srcpackage ); break; } // no ':' in package names (hopefully) const char * ident = IdString( _solvable->name ).c_str(); if ( kind_r == ResKind::package ) { return( ::strchr( ident, ':' ) == 0 ); } // look for a 'kind:' prefix const char * kind = kind_r.c_str(); unsigned ksize = ::strlen( kind ); return( ::strncmp( ident, kind, ksize ) == 0 && ident[ksize] == ':' ); } std::string Solvable::name() const { NO_SOLVABLE_RETURN( std::string() ); const char * ident = IdString( _solvable->name ).c_str(); const char * sep = ::strchr( ident, ':' ); return( sep ? sep+1 : ident ); } Edition Solvable::edition() const { NO_SOLVABLE_RETURN( Edition() ); return Edition( _solvable->evr ); } Arch Solvable::arch() const { NO_SOLVABLE_RETURN( Arch_noarch ); //ArchId() ); switch ( _solvable->arch ) { case ARCH_SRC: case ARCH_NOSRC: return Arch_noarch; //ArchId( ARCH_NOARCH ); break; } return Arch( IdString(_solvable->arch).asString() ); //return ArchId( _solvable->arch ); } IdString Solvable::vendor() const { NO_SOLVABLE_RETURN( IdString() ); return IdString( _solvable->vendor ); } Repository Solvable::repository() const { NO_SOLVABLE_RETURN( Repository::noRepository ); return Repository( _solvable->repo ); } RepoInfo Solvable::repoInfo() const { return repository().info(); } bool Solvable::isSystem() const { NO_SOLVABLE_RETURN( _id == detail::systemSolvableId ); return myPool().isSystemRepo( _solvable->repo ); } bool Solvable::onSystemByUser() const { return isSystem() && myPool().isOnSystemByUser( ident() ); } bool Solvable::onSystemByAuto() const { return isSystem() && myPool().isOnSystemByAuto( ident() ); } bool Solvable::identIsAutoInstalled( const IdString & ident_r ) { return myPool().isOnSystemByAuto( ident_r ); } bool Solvable::multiversionInstall() const { NO_SOLVABLE_RETURN( false ); return myPool().isMultiversion( *this ); } Date Solvable::buildtime() const { NO_SOLVABLE_RETURN( Date() ); return Date( lookupNumAttribute( SolvAttr::buildtime ) ); } Date Solvable::installtime() const { NO_SOLVABLE_RETURN( Date() ); return Date( lookupNumAttribute( SolvAttr::installtime ) ); } std::string Solvable::asString() const { NO_SOLVABLE_RETURN( (_id == detail::systemSolvableId ? "systemSolvable" : "noSolvable") ); return str::form( "%s-%s.%s", IdString( _solvable->name ).c_str(), IdString( _solvable->evr ).c_str(), IdString( _solvable->arch ).c_str() ); } std::string Solvable::asUserString() const\ { NO_SOLVABLE_RETURN( (_id == detail::systemSolvableId ? "systemSolvable" : "noSolvable") ); return str::form( "%s-%s.%s (%s)", IdString( _solvable->name ).c_str(), IdString( _solvable->evr ).c_str(), IdString( _solvable->arch ).c_str(), repository().asUserString().c_str() ); } bool Solvable::identical( const Solvable & rhs ) const { NO_SOLVABLE_RETURN( ! rhs.get() ); detail::CSolvable * rhssolvable( rhs.get() ); return rhssolvable && ( _solvable == rhssolvable || ::solvable_identical( _solvable, rhssolvable ) ); } /////////////////////////////////////////////////////////////////// namespace { inline Capabilities _getCapabilities( detail::IdType * idarraydata_r, ::Offset offs_r ) { return offs_r ? Capabilities( idarraydata_r + offs_r ) : Capabilities(); } } // namespace /////////////////////////////////////////////////////////////////// Capabilities Solvable::provides() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->provides ); } Capabilities Solvable::requires() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->requires ); } Capabilities Solvable::conflicts() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->conflicts ); } Capabilities Solvable::obsoletes() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->obsoletes ); } Capabilities Solvable::recommends() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->recommends ); } Capabilities Solvable::suggests() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->suggests ); } Capabilities Solvable::enhances() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->enhances ); } Capabilities Solvable::supplements() const { NO_SOLVABLE_RETURN( Capabilities() ); return _getCapabilities( _solvable->repo->idarraydata, _solvable->supplements ); } Capabilities Solvable::prerequires() const { NO_SOLVABLE_RETURN( Capabilities() ); // prerequires are a subset of requires ::Offset offs = _solvable->requires; return offs ? Capabilities( _solvable->repo->idarraydata + offs, detail::solvablePrereqMarker ) : Capabilities(); } CapabilitySet Solvable::providesNamespace( const std::string & namespace_r ) const { NO_SOLVABLE_RETURN( CapabilitySet() ); CapabilitySet ret; Capabilities caps( provides() ); for_( it, caps.begin(), caps.end() ) { CapDetail caprep( it->detail() ); if ( str::hasPrefix( caprep.name().c_str(), namespace_r ) && *(caprep.name().c_str()+namespace_r.size()) == '(' ) ret.insert( *it ); } return ret; } CapabilitySet Solvable::valuesOfNamespace( const std::string & namespace_r ) const { NO_SOLVABLE_RETURN( CapabilitySet() ); CapabilitySet ret; Capabilities caps( provides() ); for_( it, caps.begin(), caps.end() ) { CapDetail caprep( it->detail() ); if ( str::hasPrefix( caprep.name().c_str(), namespace_r ) && *(caprep.name().c_str()+namespace_r.size()) == '(' ) { std::string value( caprep.name().c_str()+namespace_r.size()+1 ); value[value.size()-1] = '\0'; // erase the trailing ')' ret.insert( Capability( value, caprep.op(), caprep.ed() ) ); } } return ret; } /////////////////////////////////////////////////////////////////// namespace { /** Expand \ref Capability and call \c fnc_r for each namespace:language * dependency. Return #invocations of fnc_r, negative if fnc_r returned * false to indicate abort. */ int invokeOnEachSupportedLocale( Capability cap_r, function fnc_r ) { CapDetail detail( cap_r ); if ( detail.kind() == CapDetail::EXPRESSION ) { switch ( detail.capRel() ) { case CapDetail::CAP_AND: case CapDetail::CAP_OR: // expand { int res = invokeOnEachSupportedLocale( detail.lhs(), fnc_r ); if ( res < 0 ) return res; // negative on abort. int res2 = invokeOnEachSupportedLocale( detail.rhs(), fnc_r ); if ( res2 < 0 ) return -res + res2; // negative on abort. return res + res2; } break; case CapDetail::CAP_NAMESPACE: if ( detail.lhs().id() == NAMESPACE_LANGUAGE ) { return ( !fnc_r || fnc_r( Locale( IdString(detail.rhs().id()) ) ) ) ? 1 : -1; // negative on abort. } break; case CapDetail::REL_NONE: case CapDetail::CAP_WITH: case CapDetail::CAP_ARCH: break; // unwanted } } return 0; } /** Expand \ref Capability and call \c fnc_r for each namespace:language * dependency. Return #invocations of fnc_r, negative if fnc_r returned * false to indicate abort. */ inline int invokeOnEachSupportedLocale( Capabilities cap_r, function fnc_r ) { int cnt = 0; for_( cit, cap_r.begin(), cap_r.end() ) { int res = invokeOnEachSupportedLocale( *cit, fnc_r ); if ( res < 0 ) return -cnt + res; // negative on abort. cnt += res; } return cnt; } //@} // Functor returning false if a Locale is in the set. struct NoMatchIn { NoMatchIn( const LocaleSet & locales_r ) : _locales( locales_r ) {} bool operator()( const Locale & locale_r ) const { return _locales.find( locale_r ) == _locales.end(); } const LocaleSet & _locales; }; } // namespace /////////////////////////////////////////////////////////////////// bool Solvable::supportsLocales() const { // false_c stops on 1st Locale. return invokeOnEachSupportedLocale( supplements(), functor::false_c() ) < 0; } bool Solvable::supportsLocale( const Locale & locale_r ) const { // not_equal_to stops on == Locale. return invokeOnEachSupportedLocale( supplements(), bind( std::not_equal_to(), locale_r, _1 ) ) < 0; } bool Solvable::supportsLocale( const LocaleSet & locales_r ) const { if ( locales_r.empty() ) return false; // NoMatchIn stops if Locale is included. return invokeOnEachSupportedLocale( supplements(), NoMatchIn(locales_r) ) < 0; } bool Solvable::supportsRequestedLocales() const { return supportsLocale( myPool().getRequestedLocales() ); } LocaleSet Solvable::getSupportedLocales() const { LocaleSet ret; invokeOnEachSupportedLocale( supplements(), functor::collector( std::inserter( ret, ret.begin() ) ) ); return ret; } CpeId Solvable::cpeId() const { NO_SOLVABLE_RETURN( CpeId() ); return CpeId( lookupStrAttribute( SolvAttr::cpeid ), CpeId::noThrow ); } unsigned Solvable::mediaNr() const { NO_SOLVABLE_RETURN( 0U ); // medianumber and path unsigned medianr = 0U; const char * file = ::solvable_lookup_location( _solvable, &medianr ); if ( ! file ) medianr = 0U; else if ( ! medianr ) medianr = 1U; return medianr; } ByteCount Solvable::installSize() const { NO_SOLVABLE_RETURN( ByteCount() ); return ByteCount( lookupNumAttribute( SolvAttr::installsize ) ); } ByteCount Solvable::downloadSize() const { NO_SOLVABLE_RETURN( ByteCount() ); return ByteCount( lookupNumAttribute( SolvAttr::downloadsize ) ); } std::string Solvable::distribution() const { NO_SOLVABLE_RETURN( std::string() ); return lookupStrAttribute( SolvAttr::distribution ); } std::string Solvable::summary( const Locale & lang_r ) const { NO_SOLVABLE_RETURN( std::string() ); return lookupStrAttribute( SolvAttr::summary, lang_r ); } std::string Solvable::description( const Locale & lang_r ) const { NO_SOLVABLE_RETURN( std::string() ); return lookupStrAttribute( SolvAttr::description, lang_r ); } std::string Solvable::insnotify( const Locale & lang_r ) const { NO_SOLVABLE_RETURN( std::string() ); return lookupStrAttribute( SolvAttr::insnotify, lang_r ); } std::string Solvable::delnotify( const Locale & lang_r ) const { NO_SOLVABLE_RETURN( std::string() ); return lookupStrAttribute( SolvAttr::delnotify, lang_r ); } std::string Solvable::licenseToConfirm( const Locale & lang_r ) const { NO_SOLVABLE_RETURN( std::string() ); std::string ret = lookupStrAttribute( SolvAttr::eula, lang_r ); if ( ret.empty() && isKind() ) { const RepoInfo & ri( repoInfo() ); std::string riname( name() ); // "license-"+name with fallback "license" if ( ! ri.hasLicense( riname ) ) riname.clear(); if ( ri.needToAcceptLicense( riname ) || ! ui::Selectable::get( *this )->hasInstalledObj() ) ret = ri.getLicense( riname, lang_r ); // bnc#908976: suppress informal license upon update } return ret; } bool Solvable::needToAcceptLicense() const { NO_SOLVABLE_RETURN( false ); if ( isKind() ) { const RepoInfo & ri( repoInfo() ); std::string riname( name() ); // "license-"+name with fallback "license" if ( ! ri.hasLicense( riname ) ) riname.clear(); return ri.needToAcceptLicense( riname ); } return true; } std::ostream & operator<<( std::ostream & str, const Solvable & obj ) { if ( ! obj ) return str << (obj.isSystem() ? "systemSolvable" : "noSolvable" ); return str << "(" << obj.id() << ")" << ( obj.isKind( ResKind::srcpackage ) ? "srcpackage:" : "" ) << obj.ident() << '-' << obj.edition() << '.' << obj.arch() << "(" << obj.repository().alias() << ")"; } std::ostream & dumpOn( std::ostream & str, const Solvable & obj ) { str << obj; if ( obj ) { #define OUTS(X) if ( ! obj[Dep::X].empty() ) str << endl << " " #X " " << obj[Dep::X] OUTS(PROVIDES); OUTS(PREREQUIRES); OUTS(REQUIRES); OUTS(CONFLICTS); OUTS(OBSOLETES); OUTS(RECOMMENDS); OUTS(SUGGESTS); OUTS(ENHANCES); OUTS(SUPPLEMENTS); #undef OUTS } return str; } std::ostream & dumpAsXmlOn( std::ostream & str, const Solvable & obj ) { xmlout::Node guard( str, "solvable" ); dumpAsXmlOn( *guard, obj.kind() ); *xmlout::Node( *guard, "name" ) << obj.name(); dumpAsXmlOn( *guard, obj.edition() ); dumpAsXmlOn( *guard, obj.arch() ); dumpAsXmlOn( *guard, obj.repository() ); return str; } } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/Solvable.h000066400000000000000000000452561334444677500170450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Solvable.h * */ #ifndef ZYPP_SAT_SOLVABLE_H #define ZYPP_SAT_SOLVABLE_H #include #include "zypp/sat/detail/PoolMember.h" #include "zypp/sat/SolvAttr.h" #include "zypp/ResTraits.h" #include "zypp/IdString.h" #include "zypp/Edition.h" #include "zypp/Arch.h" #include "zypp/Dep.h" #include "zypp/Capabilities.h" #include "zypp/Capability.h" #include "zypp/Locale.h" /////////////////////////////////////////////////////////////////// namespace zypp { class ByteCount; class CheckSum; class CpeId; class Date; class OnMediaLocation; /////////////////////////////////////////////////////////////////// namespace sat { /////////////////////////////////////////////////////////////////// /// \class Solvable /// \brief A \ref Solvable object within the sat \ref Pool. /// /// \note Unfortunately libsolv combines the objects kind and /// name in a single identifier \c "pattern:kde_multimedia", /// \b except for packages and source packes. They are not prefixed /// by any kind string. Instead the architecture is abused to store /// \c "src" and \c "nosrc" values. /// /// \ref Solvable will hide this inconsistency by treating source /// packages as an own kind of solvable and map their arch to /// \ref Arch_noarch. /////////////////////////////////////////////////////////////////// class Solvable : protected detail::PoolMember { public: typedef sat::detail::SolvableIdType IdType; public: /** Default ctor creates \ref noSolvable.*/ Solvable() : _id( detail::noSolvableId ) {} /** \ref PoolImpl ctor. */ explicit Solvable( IdType id_r ) : _id( id_r ) {} public: /** Represents no \ref Solvable. */ static const Solvable noSolvable; /** Evaluate \ref Solvable in a boolean context (\c != \c noSolvable). */ explicit operator bool() const { return get(); } public: /** The identifier. * This is the solvables \ref name, \b except for packages and * source packes, prefixed by it's \ref kind. */ IdString ident()const; /** The Solvables ResKind. */ ResKind kind()const; /** Test whether a Solvable is of a certain \ref ResKind. * The test is far cheaper than actually retrieving and * comparing the \ref kind. */ bool isKind( const ResKind & kind_r ) const; /** \overload */ template bool isKind() const { return isKind( resKind() ); } /** \overload Extend the test to a range of \ref ResKind. */ template bool isKind( TIterator begin, TIterator end ) const { for_( it, begin, end ) if ( isKind( *it ) ) return true; return false; } /** The name (without any ResKind prefix). */ std::string name() const; /** The edition (version-release). */ Edition edition() const; /** The architecture. */ Arch arch() const; /** The vendor. */ IdString vendor() const; /** The \ref Repository this \ref Solvable belongs to. */ Repository repository() const; /** The repositories \ref RepoInfo. */ RepoInfo repoInfo() const; /** Return whether this \ref Solvable belongs to the system repo. * \note This includes the otherwise hidden systemSolvable. */ bool isSystem() const; /** Whether this is known to be installed on behalf of a user request. * \note Returns \c false for non-system (uninstalled) solvables. */ bool onSystemByUser() const; /** Whether this is known to be automatically installed (as dependency of a user request package). * \note Returns \c false for non-system (uninstalled) solvables. */ bool onSystemByAuto() const; /** Whether an installed solvable with the same \ref ident is flagged as AutoInstalled. */ bool identIsAutoInstalled() const { return identIsAutoInstalled( ident() ); } /** \overload static version */ static bool identIsAutoInstalled( const IdString & ident_r ); /** Whether different versions of this package can be installed at the same time. * Per default \c false. \see also \ref ZConfig::multiversion. */ bool multiversionInstall() const; /** The items build time. */ Date buildtime() const; /** The items install time (\c false if not installed). */ Date installtime() const; public: /** String representation "ident-edition.arch" or \c "noSolvable" * \code * product:openSUSE-11.1.x86_64 * autoyast2-2.16.19-0.1.src * noSolvable * \endcode */ std::string asString() const; /** String representation "ident-edition.arch(repo)" or \c "noSolvable" */ std::string asUserString() const; /** Test whether two Solvables have the same content. * Basically the same name, edition, arch, vendor and buildtime. */ bool identical( const Solvable & rhs ) const; /** Test for same name-version-release.arch */ bool sameNVRA( const Solvable & rhs ) const { return( get() == rhs.get() || ( ident() == rhs.ident() && edition() == rhs.edition() && arch() == rhs.arch() ) ); } public: /** \name Access to the \ref Solvable dependencies. * * \note Prerequires are a subset of requires. */ //@{ Capabilities provides() const; Capabilities requires() const; Capabilities conflicts() const; Capabilities obsoletes() const; Capabilities recommends() const; Capabilities suggests() const; Capabilities enhances() const; Capabilities supplements() const; Capabilities prerequires() const; /** Return \ref Capabilities selected by \ref Dep constant. */ Capabilities dep( Dep which_r ) const { switch( which_r.inSwitch() ) { case Dep::PROVIDES_e: return provides(); break; case Dep::REQUIRES_e: return requires(); break; case Dep::CONFLICTS_e: return conflicts(); break; case Dep::OBSOLETES_e: return obsoletes(); break; case Dep::RECOMMENDS_e: return recommends(); break; case Dep::SUGGESTS_e: return suggests(); break; case Dep::ENHANCES_e: return enhances(); break; case Dep::SUPPLEMENTS_e: return supplements(); break; case Dep::PREREQUIRES_e: return prerequires(); break; } return Capabilities(); } /** \overload operator[] */ Capabilities operator[]( Dep which_r ) const { return dep( which_r ); } /** Return the namespaced provides 'namespace([value])[ op edition]' of this Solvable. */ CapabilitySet providesNamespace( const std::string & namespace_r ) const; /** Return 'value[ op edition]' for namespaced provides 'namespace(value)[ op edition]'. * Similar to \ref providesNamespace, but the namespace is stripped from the * dependencies. This is convenient if the namespace denotes packages that * should be looked up. E.g. the \c weakremover namespace used in a products * release package denotes the packages that were dropped from the distribution. * \see \ref Product::droplist */ CapabilitySet valuesOfNamespace( const std::string & namespace_r ) const; //@} public: /** \name Locale support. */ //@{ /** Whether this \c Solvable claims to support locales. */ bool supportsLocales() const; /** Whether this \c Solvable supports a specific \ref Locale. */ bool supportsLocale( const Locale & locale_r ) const; /** Whether this \c Solvable supports at least one of the specified locales. */ bool supportsLocale( const LocaleSet & locales_r ) const; /** Whether this \c Solvable supports at least one requested locale. * \see \ref Pool::setRequestedLocales */ bool supportsRequestedLocales() const; /** Return the supported locales. */ LocaleSet getSupportedLocales() const; /** \overload Legacy return via arg \a locales_r */ void getSupportedLocales( LocaleSet & locales_r ) const { locales_r = getSupportedLocales(); } //@} public: /** The solvables CpeId if available. */ CpeId cpeId() const; /** Media number the solvable is located on (\c 0 if no media access required). */ unsigned mediaNr() const; /** Installed (unpacked) size. * This is just a total number. Many objects provide even more detailed * disk usage data. You can use \ref DiskUsageCounter to find out * how objects data are distributed across partitions/directories. * \code * // Load directory set into ducounter * DiskUsageCounter ducounter( { "/", "/usr", "/var" } ); * * // see how noch space the packages use * for ( const PoolItem & pi : pool ) * { * cout << pi << ducounter.disk_usage( pi ) << endl; * // I__s_(7)GeoIP-1.4.8-3.1.2.x86_64(@System) { * // dir:[/] [ bs: 0 B ts: 0 B us: 0 B (+-: 1.0 KiB)] * // dir:[/usr] [ bs: 0 B ts: 0 B us: 0 B (+-: 133.0 KiB)] * // dir:[/var] [ bs: 0 B ts: 0 B us: 0 B (+-: 1.1 MiB)] * // } * } * \endcode * \see \ref DiskUsageCounter */ ByteCount installSize() const; /** Download size. */ ByteCount downloadSize() const; /** The distribution string. */ std::string distribution() const; /** Short (singleline) text describing the solvable (opt. translated). */ std::string summary( const Locale & lang_r = Locale() ) const; /** Long (multiline) text describing the solvable (opt. translated). */ std::string description( const Locale & lang_r = Locale() ) const; /** UI hint text when selecting the solvable for install (opt. translated). */ std::string insnotify( const Locale & lang_r = Locale() ) const; /** UI hint text when selecting the solvable for uninstall (opt. translated).*/ std::string delnotify( const Locale & lang_r = Locale() ) const; /** License or agreement to accept before installing the solvable (opt. translated). */ std::string licenseToConfirm( const Locale & lang_r = Locale() ) const; /** \c True except for well known exceptions (i.e show license but no need to accept it). */ bool needToAcceptLicense() const; public: /** Helper that splits an identifier into kind and name or vice versa. * \note In case \c name_r is preceded by a well known kind spec, the * \c kind_r argument is ignored, and kind is derived from name. * \see \ref ident */ class SplitIdent { public: SplitIdent() {} SplitIdent( IdString ident_r ); SplitIdent( const char * ident_r ); SplitIdent( const std::string & ident_r ); SplitIdent( ResKind kind_r, IdString name_r ); SplitIdent( ResKind kind_r, const C_Str & name_r ); IdString ident() const { return _ident; } ResKind kind() const { return _kind; } IdString name() const { return _name; } private: IdString _ident; ResKind _kind; IdString _name; }; public: /** \name Attribute lookup. * \see \ref LookupAttr and \ref ArrayAttr providing a general, more * query like interface for attribute retrieval. */ //@{ /** * returns the string attribute value for \ref attr * or an empty string if it does not exists. */ std::string lookupStrAttribute( const SolvAttr & attr ) const; /** \overload Trying to look up a translated string attribute. * * Returns the translation for \c lang_r. * * Passing an empty \ref Locale will return the string for the * current default locale (\see \ref ZConfig::TextLocale), * \b considering all fallback locales. * * Returns an empty string if no translation is available. */ std::string lookupStrAttribute( const SolvAttr & attr, const Locale & lang_r ) const; /** * returns the numeric attribute value for \ref attr * or 0 if it does not exists. */ unsigned long long lookupNumAttribute( const SolvAttr & attr ) const; /** \overload returning custom notfound_r value */ unsigned long long lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const; /** * returns the boolean attribute value for \ref attr * or \c false if it does not exists. */ bool lookupBoolAttribute( const SolvAttr & attr ) const; /** * returns the id attribute value for \ref attr * or \ref detail::noId if it does not exists. */ detail::IdType lookupIdAttribute( const SolvAttr & attr ) const; /** * returns the CheckSum attribute value for \ref attr * or an empty CheckSum if ir does not exist. */ CheckSum lookupCheckSumAttribute( const SolvAttr & attr ) const; /** * returns OnMediaLocation data: This is everything we need to * download e.g. an rpm (path, checksum, downloadsize, etc.). */ OnMediaLocation lookupLocation() const; //@} public: /** Return next Solvable in \ref Pool (or \ref noSolvable). */ Solvable nextInPool() const; /** Return next Solvable in \ref Repo (or \ref noSolvable). */ Solvable nextInRepo() const; /** Expert backdoor. */ detail::CSolvable * get() const; /** Expert backdoor. */ IdType id() const { return _id; } private: IdType _id; }; /////////////////////////////////////////////////////////////////// /** \relates Solvable Stream output */ std::ostream & operator<<( std::ostream & str, const Solvable & obj ); /** \relates Solvable More verbose stream output including dependencies */ std::ostream & dumpOn( std::ostream & str, const Solvable & obj ); /** \relates Solvable XML output */ std::ostream & dumpAsXmlOn( std::ostream & str, const Solvable & obj ); /** \relates Solvable */ inline bool operator==( const Solvable & lhs, const Solvable & rhs ) { return lhs.get() == rhs.get(); } /** \relates Solvable */ inline bool operator!=( const Solvable & lhs, const Solvable & rhs ) { return lhs.get() != rhs.get(); } /** \relates Solvable */ inline bool operator<( const Solvable & lhs, const Solvable & rhs ) { return lhs.get() < rhs.get(); } /** \relates Solvable Test whether a \ref Solvable is of a certain Kind. */ template inline bool isKind( const Solvable & solvable_r ) { return solvable_r.isKind( ResTraits::kind ); } /** \relates Solvable Test for same content. */ inline bool identical( const Solvable & lhs, const Solvable & rhs ) { return lhs.identical( rhs ); } /** \relates Solvable Test for same name version release and arch. */ inline bool sameNVRA( const Solvable & lhs, const Solvable & rhs ) { return lhs.sameNVRA( rhs ); } /** \relates Solvable Compare according to \a kind and \a name. */ inline int compareByN( const Solvable & lhs, const Solvable & rhs ) { int res = 0; if ( lhs != rhs ) { if ( (res = lhs.kind().compare( rhs.kind() )) == 0 ) res = lhs.name().compare( rhs.name() ); } return res; } /** \relates Solvable Compare according to \a kind, \a name and \a edition. */ inline int compareByNVR( const Solvable & lhs, const Solvable & rhs ) { int res = compareByN( lhs, rhs ); if ( res == 0 ) res = lhs.edition().compare( rhs.edition() ); return res; } /** \relates Solvable Compare according to \a kind, \a name, \a edition and \a arch. */ inline int compareByNVRA( const Solvable & lhs, const Solvable & rhs ) { int res = compareByNVR( lhs, rhs ); if ( res == 0 ) res = lhs.arch().compare( rhs.arch() ); return res; } /////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolvableIterator // /** */ class SolvableIterator : public boost::iterator_adaptor< SolvableIterator // Derived , CSolvable* // Base , const Solvable // Value , boost::forward_traversal_tag // CategoryOrTraversal , const Solvable // Reference > { public: SolvableIterator() : SolvableIterator::iterator_adaptor_( 0 ) {} explicit SolvableIterator( const Solvable & val_r ) : SolvableIterator::iterator_adaptor_( 0 ) { assignVal( val_r ); } explicit SolvableIterator( SolvableIdType id_r ) : SolvableIterator::iterator_adaptor_( 0 ) { assignVal( Solvable( id_r ) ); } private: friend class boost::iterator_core_access; Solvable dereference() const { return _val; } void increment() { assignVal( _val.nextInPool() ); } private: void assignVal( const Solvable & val_r ) { _val = val_r; base_reference() = _val.get(); } Solvable _val; }; } // namespace detail /////////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// class PoolItem; /////////////////////////////////////////////////////////////////// namespace sat { /** To Solvable transform functor. * \relates Solvable * \relates sat::SolvIterMixin */ struct asSolvable { typedef Solvable result_type; Solvable operator()( const Solvable & solv_r ) const { return solv_r; } Solvable operator()( const PoolItem & pi_r ) const; Solvable operator()( const ResObject_constPtr & res_r ) const; }; } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// ZYPP_DEFINE_ID_HASHABLE( ::zypp::sat::Solvable ); #endif // ZYPP_SAT_SOLVABLE_H libzypp-17.7.0/zypp/sat/SolvableSet.cc000066400000000000000000000031721334444677500176460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/SolvableSet.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/sat/SolvableSet.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const SolvableSet & obj ) { return dumpRange( str, obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/SolvableSet.h000066400000000000000000000077571334444677500175250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/SolvableSet.h * */ #ifndef ZYPP_SAT_SOLVABLESET_H #define ZYPP_SAT_SOLVABLESET_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Hash.h" #include "zypp/sat/Solvable.h" #include "zypp/sat/SolvIterMixin.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolvableSet // /** Solvable set wrapper to allow adding additional convenience iterators. */ class SolvableSet : public SolvIterMixin::const_iterator> { friend std::ostream & operator<<( std::ostream & str, const SolvableSet & obj ); public: typedef std::unordered_set Container; typedef Container::value_type value_type; typedef Container::size_type size_type; typedef Solvable_iterator const_iterator; // from SolvIterMixin public: /** Default ctor */ SolvableSet() : _pimpl( new Container ) {} /** Ctor building a set from a range. */ template SolvableSet( TInputIterator begin_r, TInputIterator end_r ) : _pimpl( new Container( begin_r, end_r ) ) {} public: /** Whether the set is epmty. */ bool empty() const { return _pimpl->empty(); } /** Size of the set. */ size_type size() const { return _pimpl->size(); } /** */ template bool contains( const TSolv & solv_r ) const { return( get().count( asSolvable()( solv_r ) ) ); } /** Iterator pointing to the first \ref Solvable. */ const_iterator begin() const { return _pimpl->begin(); } /** Iterator pointing behind the last \ref Solvable. */ const_iterator end() const { return _pimpl->end(); } public: /** Clear the container */ void clear() { get().clear(); } /** Insert a Solvable. * \return \c true if it was actually inserted, or \c false if already present. */ template bool insert( const TSolv & solv_r ) { return get().insert( asSolvable()( solv_r ) ).second; } /** Insert a range of Solvables. */ template void insert( TIterator begin_r, TIterator end_r ) { for_( it, begin_r, end_r ) insert( *it ); } public: /** The set. */ Container & get() { return *_pimpl; } /** The set. */ const Container & get() const { return *_pimpl; } private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates SolvableSet Stream output */ std::ostream & operator<<( std::ostream & str, const SolvableSet & obj ); ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_SOLVABLESET_H libzypp-17.7.0/zypp/sat/SolvableType.h000066400000000000000000000341121334444677500176740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/SolvableType.h */ #ifndef ZYPP_SAT_SOLVABLETYPE_H #define ZYPP_SAT_SOLVABLETYPE_H #include #include "zypp/sat/Solvable.h" #include "zypp/Repository.h" #include "zypp/OnMediaLocation.h" #include "zypp/ByteCount.h" #include "zypp/CheckSum.h" #include "zypp/CpeId.h" #include "zypp/Date.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace sat { /////////////////////////////////////////////////////////////////// /// \class SolvableType /// \brief Base class for creating \ref Solvable based types. /// \ingroup g_CRTP /// /// Derive from this and offer explicit conversion to \ref Solvable /// to make the \ref Solvable properties directly accessible. /// /// Different SolvableTypes are comparable based on the underlying /// \ref Solvable. /// /// \see \ref Solvable /// /// \code /// class MySolvable : public SolvableType /// { /// ...... /// public: /// explicit operator sat::Solvable() const; /// /// }; /// \endcode /////////////////////////////////////////////////////////////////// template struct SolvableType { /** Return the corresponding \ref sat::Solvable. */ Solvable satSolvable() const { return Solvable(static_cast(*this)); } explicit operator bool() const { return bool(satSolvable()); } IdString ident() const { return satSolvable().ident(); } ResKind kind() const { return satSolvable().kind(); } bool isKind( const ResKind & kind_r ) const { return satSolvable().isKind( kind_r ); } template bool isKind() const { return satSolvable().template isKind(); } template bool isKind( TIterator begin, TIterator end ) const { return satSolvable().isKind( begin, end ); } std::string name() const { return satSolvable().name(); } Edition edition() const { return satSolvable().edition(); } Arch arch() const { return satSolvable().arch(); } IdString vendor() const { return satSolvable().vendor(); } Repository repository() const { return satSolvable().repository(); } RepoInfo repoInfo() const { return satSolvable().repoInfo(); } bool isSystem() const { return satSolvable().isSystem(); } bool onSystemByUser() const { return satSolvable().onSystemByUser(); } bool onSystemByAuto() const { return satSolvable().onSystemByAuto(); } bool identIsAutoInstalled() const { return satSolvable().identIsAutoInstalled(); } bool multiversionInstall() const { return satSolvable().multiversionInstall(); } Date buildtime() const { return satSolvable().buildtime(); } Date installtime() const { return satSolvable().installtime(); } std::string asString() const { return satSolvable().asString(); } std::string asUserString() const { return satSolvable().asUserString(); } bool identical( const Solvable & rhs ) const { return satSolvable().identical( rhs ); } template bool identical( const SolvableType & rhs ) const { return satSolvable().identical( rhs.satSolvable() ); } bool sameNVRA( const Solvable &rhs ) const { return satSolvable().sameNVRA( rhs ); } template bool sameNVRA( const SolvableType & rhs ) const { return satSolvable().sameNVRA( rhs.satSolvable() ); } Capabilities provides() const { return satSolvable().provides(); } Capabilities requires() const { return satSolvable().requires(); } Capabilities conflicts() const { return satSolvable().conflicts(); } Capabilities obsoletes() const { return satSolvable().obsoletes(); } Capabilities recommends() const { return satSolvable().recommends(); } Capabilities suggests() const { return satSolvable().suggests(); } Capabilities enhances() const { return satSolvable().enhances(); } Capabilities supplements() const { return satSolvable().supplements(); } Capabilities prerequires() const { return satSolvable().prerequires(); } Capabilities dep( Dep which_r ) const { return satSolvable().dep(which_r); } Capabilities operator[]( Dep which_r ) const { return satSolvable()[which_r]; } CapabilitySet providesNamespace( const std::string & namespace_r ) const { return satSolvable().providesNamespace( namespace_r ); } CapabilitySet valuesOfNamespace( const std::string & namespace_r ) const { return satSolvable().valuesOfNamespace( namespace_r ); } bool supportsLocales() const { return satSolvable().supportsLocales(); } bool supportsLocale( const Locale & locale_r ) const { return satSolvable().supportsLocale( locale_r ); } bool supportsLocale( const LocaleSet & locales_r ) const { return satSolvable().supportsLocale( locales_r ); } bool supportsRequestedLocales() const { return satSolvable().supportsRequestedLocales(); } LocaleSet getSupportedLocales() const { return satSolvable().getSupportedLocales(); } CpeId cpeId() const { return satSolvable().cpeId(); } unsigned mediaNr() const { return satSolvable().mediaNr(); } ByteCount installSize() const { return satSolvable().installSize(); } ByteCount downloadSize() const { return satSolvable().downloadSize(); } std::string distribution() const { return satSolvable().distribution(); } std::string summary( const Locale & lang_r = Locale() ) const { return satSolvable().summary( lang_r ); } std::string description( const Locale & lang_r = Locale() ) const { return satSolvable().description( lang_r ); } std::string insnotify( const Locale & lang_r = Locale() ) const { return satSolvable().insnotify( lang_r ); } std::string delnotify( const Locale & lang_r = Locale() ) const { return satSolvable().delnotify( lang_r ); } std::string licenseToConfirm( const Locale & lang_r = Locale() ) const { return satSolvable().licenseToConfirm( lang_r ); } bool needToAcceptLicense() const { return satSolvable().needToAcceptLicense(); } public: std::string lookupStrAttribute( const SolvAttr & attr ) const { return satSolvable().lookupStrAttribute( attr ); } std::string lookupStrAttribute( const SolvAttr & attr, const Locale & lang_r ) const { return satSolvable().lookupStrAttribute( attr, lang_r ); } bool lookupBoolAttribute( const SolvAttr & attr ) const { return satSolvable().lookupBoolAttribute( attr ); } detail::IdType lookupIdAttribute( const SolvAttr & attr ) const { return satSolvable().lookupIdAttribute( attr ); } unsigned long long lookupNumAttribute( const SolvAttr & attr ) const { return satSolvable().lookupNumAttribute( attr ); } unsigned long long lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const { return satSolvable().lookupNumAttribute( attr, notfound_r ); } CheckSum lookupCheckSumAttribute( const SolvAttr & attr ) const { return satSolvable().lookupCheckSumAttribute( attr ); } OnMediaLocation lookupLocation() const { return satSolvable().lookupLocation(); } Solvable::IdType id() const { return satSolvable().id(); } protected: SolvableType() {} SolvableType( const SolvableType & ) {} void operator=( const SolvableType & ) {} #ifndef SWIG SolvableType( SolvableType && ) {} void operator=( SolvableType && ) {} #endif ~SolvableType() {} }; /** \relates SolvableType Stream output */ template inline std::ostream & operator<<( std::ostream & str, const SolvableType & obj ) { return str << obj.satSolvable(); } /** \relates SolvableType More verbose stream output including dependencies */ template inline std::ostream & dumpOn( std::ostream & str, const SolvableType & obj ) { return dumpOn( str, obj.satSolvable() ); } /** \relates SolvableType Equal*/ template inline bool operator==( const SolvableType & lhs, const SolvableType & rhs ) { return lhs.satSolvable() == rhs.satSolvable(); } /** \overload */ template inline bool operator==( const SolvableType & lhs, const Solvable & rhs ) { return lhs.satSolvable() == rhs; } /** \overload */ template inline bool operator==( const Solvable & lhs, const SolvableType & rhs ) { return lhs == rhs.satSolvable(); } /** \relates SolvableType NotEqual */ template inline bool operator!=( const SolvableType & lhs, const SolvableType & rhs ) { return lhs.satSolvable() != rhs.satSolvable(); } /** \overload */ template inline bool operator!=( const SolvableType & lhs, const Solvable & rhs ) { return lhs.satSolvable() != rhs; } /** \overload */ template inline bool operator!=( const Solvable & lhs, const SolvableType & rhs ) { return lhs != rhs.satSolvable(); } /** \relates SolvableType Less*/ template inline bool operator<( const SolvableType & lhs, const SolvableType & rhs ) { return lhs.satSolvable() < rhs.satSolvable(); } /** \overload */ template inline bool operator<( const SolvableType & lhs, const Solvable & rhs ) { return lhs.satSolvable() < rhs; } /** \overload */ template inline bool operator<( const Solvable & lhs, const SolvableType & rhs ) { return lhs < rhs.satSolvable(); } /** \relates SolvableType Test whether the \ref Solvable is of a certain \ref ResKind. */ template inline bool isKind( const SolvableType & solvable_r ) { return isKind( solvable_r.satSolvable() ); } /** \relates SolvableType Test for same content. */ template inline bool identical( const SolvableType & lhs, const SolvableType & rhs ) { return identical( lhs.satSolvable(), rhs.satSolvable() ); } /** \overload */ template inline bool identical( const SolvableType & lhs, const Solvable & rhs ) { return identical( lhs.satSolvable(), rhs ); } /** \overload */ template inline bool identical( const Solvable & lhs, const SolvableType & rhs ) { return identical( lhs, rhs.satSolvable() ); } /** \relates SolvableType Test for same name version release and arch. */ template inline bool sameNVRA( const SolvableType & lhs, const SolvableType & rhs ) { return sameNVRA( lhs.satSolvable(), rhs.satSolvable() ); } /** \overload */ template inline bool sameNVRA( const SolvableType & lhs, const Solvable & rhs ) { return sameNVRA( lhs.satSolvable(), rhs ); } /** \overload */ template inline bool sameNVRA( const Solvable & lhs, const SolvableType & rhs ) { return sameNVRA( lhs, rhs.satSolvable() ); } /** \relates SolvableType Compare according to \a kind and \a name. */ template inline int compareByN( const SolvableType & lhs, const SolvableType & rhs ) { return compareByN( lhs.satSolvable(), rhs.satSolvable() ); } /** \overload */ template inline bool compareByN( const SolvableType & lhs, const Solvable & rhs ) { return compareByN( lhs.satSolvable(), rhs ); } /** \overload */ template inline bool compareByN( const Solvable & lhs, const SolvableType & rhs ) { return compareByN( lhs, rhs.satSolvable() ); } /** \relates SolvableType Compare according to \a kind, \a name and \a edition. */ template inline int compareByNVR( const SolvableType & lhs, const SolvableType & rhs ) { return compareByNVR( lhs.satSolvable(), rhs.satSolvable() ); } /** \overload */ template inline bool compareByNVR( const SolvableType & lhs, const Solvable & rhs ) { return compareByNVR( lhs.satSolvable(), rhs ); } /** \overload */ template inline bool compareByNVR( const Solvable & lhs, const SolvableType & rhs ) { return compareByNVR( lhs, rhs.satSolvable() ); } /** \relates SolvableType Compare according to \a kind, \a name, \a edition and \a arch. */ template inline int compareByNVRA( const SolvableType & lhs, const SolvableType & rhs ) { return compareByNVRA( lhs.satSolvable(), rhs.satSolvable() ); } /** \overload */ template inline bool compareByNVRA( const SolvableType & lhs, const Solvable & rhs ) { return compareByNVRA( lhs.satSolvable(), rhs ); } /** \overload */ template inline bool compareByNVRA( const Solvable & lhs, const SolvableType & rhs ) { return compareByNVRA( lhs, rhs.satSolvable() ); } } // namespace sat /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_SOLVABLETYPE_H libzypp-17.7.0/zypp/sat/Transaction.cc000066400000000000000000000344111334444677500177100ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Transaction.cc */ extern "C" { #include #include } #include #include "zypp/base/LogTools.h" #include "zypp/base/SerialNumber.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/Hash.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/Transaction.h" #include "zypp/sat/Solvable.h" #include "zypp/sat/Queue.h" #include "zypp/sat/Map.h" #include "zypp/ResPool.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /** Transaction implementation. * * \NOTE After commit the @System repo is reloaded. This invalidates * the ids off all installed items in the transaction, including their * stepType. Thats why some information (stepType, NVRA) is be stored * for post mortem access (i.e. tell after commit which NVRA were deleted). * */ struct Transaction::Impl : protected detail::PoolMember , private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const Impl & obj ); public: typedef std::unordered_set set_type; typedef std::unordered_map map_type; struct PostMortem { PostMortem() {} PostMortem( const sat::Solvable & solv_r ) : _ident( solv_r.ident() ) , _edition( solv_r.edition() ) , _arch( solv_r.arch() ) {} IdString _ident; Edition _edition; Arch _arch; }; typedef std::unordered_map pmmap_type; public: Impl() : _trans( ::transaction_create( nullptr ) ) { memset( _trans, 0, sizeof(*_trans) ); } Impl( LoadFromPoolType ) : _watcher( myPool().serial() ) , _trans( nullptr ) { Queue decisionq; for ( const PoolItem & pi : ResPool::instance() ) { if ( ! pi.status().transacts() ) continue; decisionq.push( pi.isSystem() ? -pi.id() : pi.id() ); } Queue noobsq; for ( const Solvable & solv : myPool().multiversionList() ) { noobsq.push( SOLVER_NOOBSOLETES | SOLVER_SOLVABLE ); noobsq.push( solv.id() ); } Map noobsmap; ::solver_calculate_noobsmap( myPool().getPool(), noobsq, noobsmap ); _trans = ::transaction_create_decisionq( myPool().getPool(), decisionq, noobsmap ); // NOTE: package/product buddies share the same ResStatus // so we also link the buddies stepStages. This assumes // only one buddy is acting during commit (package is installed, // but no extra operation for the product). for_( it, _trans->steps.elements, _trans->steps.elements + _trans->steps.count ) { sat::Solvable solv( *it ); // buddy list: if ( ! solv.isKind() ) { PoolItem pi( solv ); if ( pi.buddy() ) { _linkMap[*it] = pi.buddy().id(); } } if ( solv.isSystem() ) { // to delete list: if ( stepType( solv ) == TRANSACTION_ERASE ) { _systemErase.insert( *it ); } // post mortem data _pmMap[*it] = solv; } } } ~Impl() { ::transaction_free( _trans ); } public: bool valid() const { return _watcher.isClean( myPool().serial() ); } bool order() { if ( ! valid() ) return false; if ( empty() ) return true; #if 0 // This is hwo we could implement out own order method. // As ::transaction already groups by MediaNr, we don't // need it for ORDER_BY_MEDIANR. ::transaction_order( _trans, SOLVER_TRANSACTION_KEEP_ORDERDATA ); detail::IdType chosen = 0; Queue choices; while ( true ) { int ret = transaction_order_add_choices( _trans, chosen, choices ); MIL << ret << ": " << chosen << ": " << choices << endl; chosen = choices.pop_front(); // pick one out of choices if ( ! chosen ) break; } return true; #endif if ( !_ordered ) { ::transaction_order( _trans, 0 ); _ordered = true; } return true; } bool empty() const { return( _trans->steps.count == 0 ); } size_t size() const { return _trans->steps.count; } const_iterator begin( const RW_pointer & self_r ) const { return const_iterator( self_r, _trans->steps.elements ); } iterator begin( const RW_pointer & self_r ) { return iterator( self_r, _trans->steps.elements ); } const_iterator end( const RW_pointer & self_r ) const { return const_iterator( self_r, _trans->steps.elements + _trans->steps.count ); } iterator end( const RW_pointer & self_r ) { return iterator( self_r, _trans->steps.elements + _trans->steps.count ); } const_iterator find(const RW_pointer & self_r, const sat::Solvable & solv_r ) const { detail::IdType * it( _find( solv_r ) ); return it ? const_iterator( self_r, it ) : end( self_r ); } iterator find(const RW_pointer & self_r, const sat::Solvable & solv_r ) { detail::IdType * it( _find( solv_r ) ); return it ? iterator( self_r, it ) : end( self_r ); } public: int installedResult( Queue & result_r ) const { return ::transaction_installedresult( _trans, result_r ); } StringQueue autoInstalled() const { return _autoInstalled; } void autoInstalled( const StringQueue & queue_r ) { _autoInstalled = queue_r; } public: StepType stepType( Solvable solv_r ) const { if ( ! solv_r ) { // post mortem @System solvable return isIn( _systemErase, solv_r.id() ) ? TRANSACTION_ERASE : TRANSACTION_IGNORE; } switch( ::transaction_type( _trans, solv_r.id(), SOLVER_TRANSACTION_RPM_ONLY ) ) { case SOLVER_TRANSACTION_ERASE: return TRANSACTION_ERASE; break; case SOLVER_TRANSACTION_INSTALL: return TRANSACTION_INSTALL; break; case SOLVER_TRANSACTION_MULTIINSTALL: return TRANSACTION_MULTIINSTALL; break; } return TRANSACTION_IGNORE; } StepStage stepStage( Solvable solv_r ) const { return stepStage( resolve( solv_r ) ); } void stepStage( Solvable solv_r, StepStage newval_r ) { stepStage( resolve( solv_r ), newval_r ); } const PostMortem & pmdata( Solvable solv_r ) const { static PostMortem _none; pmmap_type::const_iterator it( _pmMap.find( solv_r.id() ) ); return( it == _pmMap.end() ? _none : it->second ); } private: detail::IdType resolve( const Solvable & solv_r ) const { map_type::const_iterator res( _linkMap.find( solv_r.id() ) ); return( res == _linkMap.end() ? solv_r.id() : res->second ); } bool isIn( const set_type & set_r, detail::IdType sid_r ) const { return( set_r.find( sid_r ) != set_r.end() ); } StepStage stepStage( detail::IdType sid_r ) const { if ( isIn( _doneSet, sid_r ) ) return STEP_DONE; if ( isIn( _errSet, sid_r ) ) return STEP_ERROR; return STEP_TODO; } void stepStage( detail::IdType sid_r, StepStage newval_r ) { StepStage stage( stepStage( sid_r ) ); if ( stage != newval_r ) { // reset old stage if ( stage != STEP_TODO ) { (stage == STEP_DONE ? _doneSet : _errSet).erase( sid_r ); } if ( newval_r != STEP_TODO ) { (newval_r == STEP_DONE ? _doneSet : _errSet).insert( sid_r ); } } } private: detail::IdType * _find( const sat::Solvable & solv_r ) const { if ( solv_r && _trans->steps.elements ) { for_( it, _trans->steps.elements, _trans->steps.elements + _trans->steps.count ) { if ( *it == detail::IdType(solv_r.id()) ) return it; } } return 0; } private: SerialNumberWatcher _watcher; mutable ::Transaction * _trans; DefaultIntegral _ordered; // set_type _doneSet; set_type _errSet; map_type _linkMap; // buddy map to adopt buddies StepResult set_type _systemErase; // @System packages to be eased (otherse are TRANSACTION_IGNORE) pmmap_type _pmMap; // Post mortem data of deleted @System solvables StringQueue _autoInstalled; // ident strings of all packages that would be auto-installed after the transaction is run. public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } }; /** \relates Transaction::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const Transaction::Impl & obj ) { return str << "Transaction: " << obj.size() << " (" << (obj.valid()?"valid":"INVALID") << ")"; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Transaction // /////////////////////////////////////////////////////////////////// Transaction::Transaction() : _pimpl( Impl::nullimpl() ) {} Transaction::Transaction( LoadFromPoolType ) : _pimpl( new Impl( loadFromPool ) ) {} Transaction::~Transaction() {} bool Transaction::valid() const { return _pimpl->valid(); } bool Transaction::order() { return _pimpl->order(); } bool Transaction::empty() const { return _pimpl->empty(); } size_t Transaction::size() const { return _pimpl->size(); } Transaction::const_iterator Transaction::begin() const { return _pimpl->begin( _pimpl ); } Transaction::iterator Transaction::begin() { return _pimpl->begin( _pimpl ); } Transaction::const_iterator Transaction::end() const { return _pimpl->end( _pimpl ); } Transaction::iterator Transaction::end() { return _pimpl->end( _pimpl ); } Transaction::const_iterator Transaction::find( const sat::Solvable & solv_r ) const { return _pimpl->find( _pimpl, solv_r ); } Transaction::iterator Transaction::find( const sat::Solvable & solv_r ) { return _pimpl->find( _pimpl, solv_r ); } int Transaction::installedResult( Queue & result_r ) const { return _pimpl->installedResult( result_r ); } StringQueue Transaction::autoInstalled() const { return _pimpl->autoInstalled(); } void Transaction::autoInstalled( const StringQueue & queue_r ) { _pimpl->autoInstalled( queue_r ); } std::ostream & operator<<( std::ostream & str, const Transaction & obj ) { return str << *obj._pimpl; } std::ostream & dumpOn( std::ostream & str, const Transaction & obj ) { for_( it, obj.begin(), obj.end() ) { str << *it << endl; } return str; } bool operator==( const Transaction & lhs, const Transaction & rhs ) { return lhs._pimpl == rhs._pimpl; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Transaction::Step // /////////////////////////////////////////////////////////////////// Transaction::Step::Step() {} Transaction::StepType Transaction::Step::stepType() const { return _pimpl->stepType( _solv ); } Transaction::StepStage Transaction::Step::stepStage() const { return _pimpl->stepStage( _solv ); } void Transaction::Step::stepStage( StepStage val_r ) { _pimpl->stepStage( _solv, val_r ); } IdString Transaction::Step::ident() const { return _solv ? _solv.ident() : _pimpl->pmdata(_solv )._ident; } Edition Transaction::Step::edition() const { return _solv ? _solv.edition() : _pimpl->pmdata(_solv )._edition; } Arch Transaction::Step::arch() const { return _solv ? _solv.arch() : _pimpl->pmdata(_solv )._arch; } std::ostream & operator<<( std::ostream & str, const Transaction::Step & obj ) { str << obj.stepType() << obj.stepStage() << " "; if ( obj.satSolvable() ) str << PoolItem( obj.satSolvable() ); else str << '[' << obj.ident() << '-' << obj.edition() << '.' << obj.arch() << ']'; return str; } std::ostream & operator<<( std::ostream & str, Transaction::StepType obj ) { switch ( obj ) { #define OUTS(E,S) case Transaction::E: return str << #S; break OUTS( TRANSACTION_IGNORE, [ ] ); OUTS( TRANSACTION_ERASE, [-] ); OUTS( TRANSACTION_INSTALL, [+] ); OUTS( TRANSACTION_MULTIINSTALL, [M] ); #undef OUTS } return str << "[?]"; } std::ostream & operator<<( std::ostream & str, Transaction::StepStage obj ) { switch ( obj ) { #define OUTS(E,S) case Transaction::E: return str << #S; break OUTS( STEP_TODO, [__] ); OUTS( STEP_DONE, [OK] ); OUTS( STEP_ERROR, [**] ); #undef OUTS } return str << "[??]"; } /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Transaction::const_iterator/iterator // /////////////////////////////////////////////////////////////////// Transaction_const_iterator::Transaction_const_iterator() : Transaction_const_iterator::iterator_adaptor_( 0 ) {} Transaction_const_iterator::Transaction_const_iterator( const Transaction_iterator & iter_r ) : Transaction_const_iterator::iterator_adaptor_( iter_r.base() ) , _pimpl( iter_r._pimpl ) {} Transaction_iterator::Transaction_iterator() : Transaction_iterator::iterator_adaptor_( 0 ) {} ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/Transaction.h000066400000000000000000000331201334444677500175460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/Transaction.h */ #ifndef ZYPP_SAT_TRANSACTION_H #define ZYPP_SAT_TRANSACTION_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Flags.h" #include "zypp/base/Iterator.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/sat/SolvIterMixin.h" #include "zypp/sat/Solvable.h" #include "zypp/sat/Queue.h" #include "zypp/PoolItem.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// namespace detail { /** Needs to be outside \ref Transaction in order to be usable in SolvIterMixin. */ class Transaction_iterator; /** Needs to be outside \ref Transaction in order to be usable in SolvIterMixin. */ class Transaction_const_iterator; } /** Libsolv transaction wrapper. * \note Note that Transaction is derived from \ref sat::SolvIterMixin which * makes PoolItem and Selectable iterators automatically available. * \note Changing the \ref ResPool content (loading/unloading repositories) * invalidates all outstanding transaction data. \see \ref valid. * \note.The transaction may inlude steps of type \ref TRANSACTION_IGNORE which * do not cause/require any specific action. To skip those informal steps * when iterating, use the \ref actionBegin /\ref actionEnd methods. */ class Transaction : public SolvIterMixin { friend std::ostream & operator<<( std::ostream & str, const Transaction & obj ); friend std::ostream & dumpOn( std::ostream & str, const Transaction & obj ); friend bool operator==( const Transaction & lhs, const Transaction & rhs ); public: /** Represents a single step within a \ref Transaction. */ class Step; /** Type of (rpm) action to perform in a \ref Step. */ enum StepType { TRANSACTION_IGNORE = 0x00, /**< [ ] Nothing (includes implicit deletes due to obsoletes and non-package actions) */ TRANSACTION_ERASE = 0x10, /**< [-] Delete item */ TRANSACTION_INSTALL = 0x20, /**< [+] Install(update) item */ TRANSACTION_MULTIINSTALL = 0x30 /**< [M] Install(multiversion) item (\see \ref ZConfig::multiversion) */ }; /** \ref Step action result. */ enum StepStage { STEP_TODO = (1 << 0), /**< [__] unprocessed */ STEP_DONE = (1 << 1), /**< [OK] success */ STEP_ERROR = (1 << 2), /**< [**] error */ }; ZYPP_DECLARE_FLAGS(StepStages,StepStage); public: struct LoadFromPoolType {}; ///< Ctor arg type static constexpr LoadFromPoolType loadFromPool = LoadFromPoolType(); public: /** Default ctor: empty transaction. */ Transaction(); /** Ctor loading the default pools transaction. */ Transaction( LoadFromPoolType ); /** Dtor */ ~Transaction(); public: /** Whether transaction actually contains data and also fits the current pools content. */ bool valid() const; /** Validate object in a boolean context: valid */ explicit operator bool() const { return valid(); } /** Order transaction steps for commit. * It's cheap to call it for an aleready ordered \ref Transaction. * This invalidates outstanding iterators. Returns whether * \ref Transaction is \ref valid. */ bool order(); /** Whether the transaction contains any steps. */ bool empty() const; /** Number of steps in transaction steps. */ size_t size() const; typedef detail::Transaction_iterator iterator; typedef detail::Transaction_const_iterator const_iterator; /** Iterator to the first \ref TransactionStep */ const_iterator begin() const; /** \overload */ iterator begin(); /** Iterator behind the last \ref TransactionStep */ const_iterator end() const; /** \overload */ iterator end(); /** Return iterator pointing to \a solv_r or \ref end. */ const_iterator find( const sat::Solvable & solv_r ) const; iterator find( const sat::Solvable & solv_r ); /** \overload */ const_iterator find( const ResObject::constPtr & resolvable_r ) const; iterator find( const ResObject::constPtr & resolvable_r ); /** \overload */ const_iterator find( const PoolItem & pi_r ) const; iterator find( const PoolItem & pi_r ); public: /** \name Iterate action steps (omit TRANSACTION_IGNORE steps). * * All these methods allow to pass an optional OR'd combination of * \ref StepStages as filter. Per default all steps are processed/counted. * * \code * Transaction trans; * for_( it, trans.actionBegin(~sat::Transaction::STEP_DONE), trans.actionEnd() ) * { * ... // process all steps not DONE (ERROR and TODO) * } * \endcode */ //@{ struct FilterAction; typedef filter_iterator action_iterator; /** Whether the [filtered] transaction contains any steps . */ bool actionEmpty( StepStages filter_r = StepStages() ) const; /** Number of steps in [filtered] transaction steps. */ size_t actionSize( StepStages filter_r = StepStages() ) const; /** Pointer to the 1st action step in [filtered] transaction. */ action_iterator actionBegin( StepStages filter_r = StepStages() ) const; /** Pointer behind the last action step in transaction. */ action_iterator actionEnd() const; //@} public: /** Return all packages that would be installed after the transaction is run. * The new packages are put at the head of the queue, the number of new * packages is returned. (wraps libsolv::transaction_installedresult) */ int installedResult( Queue & result_r ) const; /** Return the ident strings of all packages that would be auto-installed after the transaction is run. */ StringQueue autoInstalled() const; /** Set the ident strings of all packages that would be auto-installed after the transaction is run. */ void autoInstalled( const StringQueue & queue_r ); public: /** Implementation */ class Impl; private: /** Pointer to implementation */ RW_pointer _pimpl; }; ZYPP_DECLARE_OPERATORS_FOR_FLAGS(Transaction::StepStages); /** \relates Transaction Stream output */ std::ostream & operator<<( std::ostream & str, const Transaction & obj ); /** \relates Transaction Verbose stream output */ std::ostream & dumpOn( std::ostream & str, const Transaction & obj ); /** \relates Transaction */ bool operator==( const Transaction & lhs, const Transaction & rhs ); /** \relates Transaction */ inline bool operator!=( const Transaction & lhs, const Transaction & rhs ) { return !( lhs == rhs ); } /** A single step within a \ref Transaction. * * \note After commit, when the @System repo (rpm database) is reread, all * @System solvables within the transaction are invalidated (they got deleted). * Thats why we internally store the NVRA, so you can access \ref ident * (\see \ref sat::Solvable::ident), \ref edition, \ref arch of a deleted package, * even if the \ref satSolvable itself is meanwhile invalid. * * \see \ref Transaction. */ class Transaction::Step { friend std::ostream & operator<<( std::ostream & str, const Step & obj ); public: Step(); Step( const RW_pointer & pimpl_r, detail::IdType id_r ) : _solv( id_r ) , _pimpl( pimpl_r ) {} public: /** Type of action to perform in this step. */ StepType stepType() const; /** Step action result. */ StepStage stepStage() const; /** Set step action result. */ void stepStage( StepStage val_r ); /** Return the corresponding \ref Solvable. * Returns \ref Solvable::noSolvable if the item is meanwhile deleted and * was removed from the pool. \see Post mortem acccess to @System solvables. */ Solvable satSolvable() const { return _solv; } /** \name Post mortem acccess to @System solvables * \code * Transaction::Step step; * if ( step.satSolvable() ) * std::cout << step.satSolvable() << endl; * else * std::cout << step.ident() << endl; // deleted @System solvable * \endcode */ //@{ /** \see \ref sat::Solvable::ident. */ IdString ident() const; /** \see \ref sat::Solvable::edition. */ Edition edition() const; /** \see \ref sat::Solvable::arch. */ Arch arch() const; //@} /** Implicit conversion to \ref Solvable */ operator const Solvable &() const { return _solv; } /** \overload nonconst */ operator Solvable &() { return _solv; } private: Solvable _solv; /** Pointer to implementation */ RW_pointer _pimpl; }; /** \relates Transaction::Step Stream output */ std::ostream & operator<<( std::ostream & str, const Transaction::Step & obj ); /** \relates Transaction::StepType Stream output */ std::ostream & operator<<( std::ostream & str, Transaction::StepType obj ); /** \relates Transaction::StepStage Stream output */ std::ostream & operator<<( std::ostream & str, Transaction::StepStage obj ); /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// /** \ref Transaction iterator. */ class Transaction_iterator : public boost::iterator_adaptor< Transaction_iterator // Derived , const detail::IdType * // Base , Transaction::Step // Value , boost::forward_traversal_tag // CategoryOrTraversal , Transaction::Step // Reference > { public: Transaction_iterator(); Transaction_iterator( const RW_pointer & pimpl_r, base_type id_r ) : Transaction_iterator::iterator_adaptor_( id_r ) , _pimpl( pimpl_r ) {} private: friend class boost::iterator_core_access; reference dereference() const { return Transaction::Step( _pimpl, *base() ); } private: friend class Transaction_const_iterator; /** Pointer to implementation */ RW_pointer _pimpl; }; /** \ref Transaction const_iterator. */ class Transaction_const_iterator : public boost::iterator_adaptor< Transaction_const_iterator // Derived , const detail::IdType * // Base , const Transaction::Step // Value , boost::forward_traversal_tag // CategoryOrTraversal , const Transaction::Step // Reference > { public: Transaction_const_iterator(); Transaction_const_iterator( const Transaction_iterator & iter_r ); Transaction_const_iterator( const RW_pointer & pimpl_r, base_type id_r ) : Transaction_const_iterator::iterator_adaptor_( id_r ) , _pimpl( pimpl_r ) {} private: friend class boost::iterator_core_access; reference dereference() const { return Transaction::Step( _pimpl, *base() ); } private: /** Pointer to implementation */ RW_pointer _pimpl; }; ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// inline Transaction::const_iterator Transaction::find( const ResObject::constPtr & resolvable_r ) const { return( resolvable_r ? find( resolvable_r->satSolvable() ) : end() ); } inline Transaction::iterator Transaction::find( const ResObject::constPtr & resolvable_r ) { return( resolvable_r ? find( resolvable_r->satSolvable() ) : end() ); } inline Transaction::const_iterator Transaction::find( const PoolItem & pi_r ) const { return find( pi_r.satSolvable() ); } inline Transaction::iterator Transaction::find( const PoolItem & pi_r ) { return find( pi_r.satSolvable() ); } struct Transaction::FilterAction { FilterAction() {} FilterAction( StepStages filter_r ) : _filter( filter_r ) {} bool operator()( const Transaction::Step & step_r ) const { if ( step_r.stepType() == Transaction::TRANSACTION_IGNORE ) return false; // no action return !_filter || _filter.testFlag( step_r.stepStage() ); } StepStages _filter; }; inline Transaction::action_iterator Transaction::actionBegin( StepStages filter_r ) const { return make_filter_begin( FilterAction( filter_r ), *this ); } inline Transaction::action_iterator Transaction::actionEnd() const { return make_filter_end( FilterAction(), *this ); } inline bool Transaction::actionEmpty( StepStages filter_r ) const { return( actionBegin( filter_r ) == actionEnd() ); } inline size_t Transaction::actionSize( StepStages filter_r ) const { size_t cnt = 0; for_( it, actionBegin( filter_r ), actionEnd() ) ++cnt; return cnt; } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_TRANSACTION_H libzypp-17.7.0/zypp/sat/WhatObsoletes.cc000066400000000000000000000126051334444677500202070ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/WhatObsoletes.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/base/Hash.h" #include "zypp/sat/WhatObsoletes.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/PoolItem.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// // Obsoletes may either match against provides, or names. // Configuration depends on the behaviour of rpm. #ifdef _RPM_5 bool obsoleteUsesProvides = true; #else bool obsoleteUsesProvides = false; #endif /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// typedef std::unordered_set set_type; typedef std::vector vector_type; ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// WhatObsoletes::WhatObsoletes( Solvable item_r ) : _begin( 0 ) { ctorAdd( item_r ); ctorDone(); } WhatObsoletes::WhatObsoletes( const PoolItem & item_r ) : _begin( 0 ) { ctorAdd( item_r ); ctorDone(); } WhatObsoletes::WhatObsoletes( const ResObject::constPtr item_r ) : _begin( 0 ) { if ( item_r ) { ctorAdd( item_r->satSolvable() ); ctorDone(); } } void WhatObsoletes::ctorAdd( const PoolItem & item_r ) { ctorAdd( item_r->satSolvable() ); } void WhatObsoletes::ctorAdd( ResObject_constPtr item_r ) { if ( item_r ) ctorAdd( item_r->satSolvable() ); } namespace { /** Add item to the set created on demand. */ inline void addToSet( Solvable item, set_type *& pdata, shared_ptr& _private ) { if ( ! pdata ) { _private.reset( (pdata = new set_type) ); } pdata->insert( item.id() ); } } void WhatObsoletes::ctorAdd( Solvable item_r ) { if ( item_r.multiversionInstall() ) return; // multiversion (rpm -i) does not evaluate any obsoletes if ( obsoleteUsesProvides ) { WhatProvides obsoleted( item_r.obsoletes() ); if ( obsoleted.empty() ) return; // use allocated private data to collect the results set_type * pdata = ( _private ? reinterpret_cast( _private.get() ) : 0 ); for_( it, obsoleted.begin(), obsoleted.end() ) { if ( it->isSystem() ) addToSet( *it, pdata, _private ); } } else // Obsoletes match names { Capabilities obsoletes( item_r.obsoletes() ); if ( obsoletes.empty() ) return; // use allocated private data to collect the results set_type * pdata = ( _private ? reinterpret_cast( _private.get() ) : 0 ); for_( it, obsoletes.begin(), obsoletes.end() ) { // For each obsoletes find providers, but with the same name IdString ident( it->detail().name() ); WhatProvides obsoleted( *it ); for_( iit, obsoleted.begin(), obsoleted.end() ) { if ( iit->isSystem() && iit->ident() == ident ) addToSet( *iit, pdata, _private ); } } } } void WhatObsoletes::ctorDone() { if ( _private ) { // copy set to vector and terminate _private set_type * sdata = reinterpret_cast( _private.get() ); vector_type * pdata = new vector_type( sdata->begin(), sdata->end() ); pdata->push_back( sat::detail::noId ); _begin = &pdata->front(); _private.reset( pdata ); } } WhatObsoletes::size_type WhatObsoletes::size() const { if ( ! _begin ) return 0; Capabilities::size_type ret = 0; for ( const sat::detail::IdType * end = _begin; *end; ++end ) { ++ret; } return ret; } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const WhatObsoletes & obj ) { return dumpRange( str << "(" << obj.size() << ")", obj.begin(), obj.end() ); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/WhatObsoletes.h000066400000000000000000000073021334444677500200470ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/WhatObsoletes.h * */ #ifndef ZYPP_SAT_WHATOBSOLETES_H #define ZYPP_SAT_WHATOBSOLETES_H #include #include #include "zypp/sat/WhatProvides.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : WhatObsoletes // /** Container of \b installed \ref Solvable which would be * obsoleted by the \ref Solvable passed to the ctor. * * \todo Publish obsoleteUsesProvides config option. */ class WhatObsoletes : public SolvIterMixin, protected detail::PoolMember { public: typedef Solvable value_type; typedef unsigned size_type; public: /** Default ctor */ WhatObsoletes() : _begin( 0 ) {} /** Ctor from \ref Solvable. */ explicit WhatObsoletes( Solvable item_r ); /** Ctor from \ref PoolItem. */ explicit WhatObsoletes( const PoolItem & item_r ); /** Ctor from \ref ResObject::constPtr. */ explicit WhatObsoletes( const ResObject_constPtr item_r ); /** Ctor from a range of \ref Solvable, \ref PoolItem or \ref ResObject::constPtr. */ template WhatObsoletes( TIterator begin, TIterator end ) : _begin( 0 ) { for_( it, begin, end ) ctorAdd( *it ); ctorDone(); } public: /** Whether the container is empty. */ bool empty() const { return ! ( _begin && *_begin ); } /** Number of solvables inside. */ size_type size() const; public: typedef detail::WhatProvidesIterator const_iterator; /** Iterator pointing to the first \ref Solvable. */ const_iterator begin() const { return const_iterator( _begin ); } /** Iterator pointing behind the last \ref Solvable. */ const_iterator end() const { return const_iterator(); } private: void ctorAdd( const PoolItem & item_r ); void ctorAdd( ResObject_constPtr item_r ); void ctorAdd( Solvable item_r ); void ctorDone(); private: const sat::detail::IdType * _begin; shared_ptr _private; }; /////////////////////////////////////////////////////////////////// /** \relates WhatObsoletes Stream output */ std::ostream & operator<<( std::ostream & str, const WhatObsoletes & obj ); ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_WHATOBSOLETES_H libzypp-17.7.0/zypp/sat/WhatProvides.cc000066400000000000000000000142361334444677500200450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/WhatProvides.cc * */ #include #include "zypp/base/LogTools.h" #include "zypp/sat/WhatProvides.h" #include "zypp/sat/detail/PoolImpl.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : WhatProvides::Impl // /** WhatProvides implementation date. * Stores the offset into a O terminated Id array. Per default * libsolvs whatprovidesdata, otherwise private data. * * As libsolvs whatprovidesdata might be realocated * while iterating a result, the iterator takes an * const IdType *const*. Thats why we explicitly * provide _private and pass its adress to the iterator, * even if private data are not reallocated. */ class WhatProvides::Impl : protected detail::PoolMember { public: Impl() : _offset( 0 ), _private( 0 ) {} Impl( unsigned offset_r ) : _offset( offset_r ), _private( 0 ) {} Impl( const std::unordered_set & ids_r ) : _offset( 0 ), _private( 0 ) { // use private data to store the result (incl. trailing NULL) _pdata.reserve( ids_r.size()+1 ); _pdata.insert( _pdata.begin(), ids_r.begin(), ids_r.end() ); _pdata.push_back( detail::noId ); _private = &_pdata.front(); // ptr to 1st element } public: unsigned _offset; const detail::IdType * _private; private: std::vector _pdata; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// /** WhatProvides ctor helper collecting providers from Capabilies. */ template void collectProviders( Iterator begin_r, Iterator end_r, std::unordered_set & collect_r ) { for_( it, begin_r, end_r ) { WhatProvides providers( *it ); for_( prv, providers.begin(), providers.end() ) { collect_r.insert( prv->id() ); } } } ///////////////////////////////////////////////////////////////// } //namespace /////////////////////////////////////////////////////////////////// WhatProvides::WhatProvides() {} WhatProvides::WhatProvides( Capability cap_r ) { unsigned res( myPool().whatProvides( cap_r ) ); if ( myPool().whatProvidesData( res ) ) { _pimpl.reset( new Impl( res ) ); } // else: no Impl for empty result. } WhatProvides::WhatProvides( Capabilities caps_r ) { std::unordered_set ids; collectProviders( caps_r.begin(), caps_r.end(), ids ); if ( ! ids.empty() ) { _pimpl.reset( new Impl( ids ) ); } // else: no Impl for empty result. } WhatProvides::WhatProvides( const CapabilitySet & caps_r ) { std::unordered_set ids; collectProviders( caps_r.begin(), caps_r.end(), ids ); if ( ! ids.empty() ) { _pimpl.reset( new Impl( ids ) ); } // else: no Impl for empty result. } bool WhatProvides::empty() const { return !_pimpl; // Ctor asserts no Impl for empty result. } WhatProvides::size_type WhatProvides::size() const { if ( !_pimpl ) return 0; size_type count = 0; for_( it, begin(), end() ) ++count; return count; } WhatProvides::const_iterator WhatProvides::begin() const { if ( !_pimpl ) return const_iterator(); if ( _pimpl->_private ) return const_iterator( _pimpl->_private ); // for libsolvs index use one more indirection, as it might get relocated. return const_iterator( &myPool().getPool()->whatprovidesdata, _pimpl->_offset ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const WhatProvides & obj ) { return dumpRange( str << "(" << obj.size() << ")", obj.begin(), obj.end() ); } /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const WhatProvidesIterator & obj ) { str << str::form( "[%5u]", obj._offset ); str << str::form( "<%p(%p)>", obj.base_reference(), &obj.base_reference() ); str << str::form( "<%p(%p)>", obj._baseRef, (obj._baseRef ? *obj._baseRef : 0) ); return str; } ///////////////////////////////////////////////////////////////// } //namespace detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/WhatProvides.h000066400000000000000000000201351334444677500177020ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/WhatProvides.h * */ #ifndef ZYPP_SAT_WHATPROVIDES_H #define ZYPP_SAT_WHATPROVIDES_H #include #include #include "zypp/base/PtrTypes.h" #include "zypp/sat/detail/PoolMember.h" #include "zypp/sat/Solvable.h" #include "zypp/sat/SolvIterMixin.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// namespace detail { class WhatProvidesIterator; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : WhatProvides // /** Container of \ref Solvable providing a \ref Capability (read only). * * \code * Capability cap("amarok < 1.13"); * * WhatProvides q( cap ); * Solvable firstMatch; * * if ( ! q.empty() ) * { * cout << "Found " << q.size() << " matches for " << cap << ":" << endl; * firstMatch = *q.begin(); * * for_( it, q.begin(), q.end() ) * cout << *it << endl; * } * * if ( firstMatch ) * { * WhatProvides req( firstMatch.requires() ); * if ( ! req.empty() ) * { * cout << "Found " << req.size() << " items providing requirements of " << firstMatch << ":" << endl; * } * } * \endcode * * \note Note that there are capabilities which are not provided by any \ref Solvable, * but are system properties. For example: * \code * rpmlib(PayloadIsBzip2) <= 3.0.5-1 * \endcode * In that case a \ref Solvable::noSolvable is returned, which has \c isSystem set \c true, although * there should never be a \ref Solvable::noSolvable returned with \c isSystem set \c false. If so, * please file a bugreport. * \code * WhatProvides q( Capability("rpmlib(PayloadIsBzip2) <= 3.0.5-1") ); * for_( it, q.begin(), q.end() ) * { * if ( *it ) * cout << "Capability is provided by package " << *it << endl; * else if ( it->isSystem() ) * cout << "Capability is a system property" << endl; * else * ; // never reaching this \c else * } * \endcode */ class WhatProvides : public SolvIterMixin, protected detail::PoolMember { public: typedef Solvable value_type; typedef unsigned size_type; public: /** Default ctor */ WhatProvides(); /** Ctor from \ref Capability. */ explicit WhatProvides( Capability cap_r ); /** Ctor collecting all providers of capabilities in \c caps_r. */ explicit WhatProvides( Capabilities caps_r ); /** Ctor collecting all providers of capabilities in \c caps_r. */ explicit WhatProvides( const CapabilitySet & caps_r ); public: /** Whether the container is empty. */ bool empty() const; /** Number of solvables inside. */ size_type size() const; public: typedef detail::WhatProvidesIterator const_iterator; /** Iterator pointing to the first \ref Solvable. */ const_iterator begin() const; /** Iterator pointing behind the last \ref Solvable. */ const_iterator end() const; private: struct Impl; RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates WhatProvides Stream output */ std::ostream & operator<<( std::ostream & str, const WhatProvides & obj ); namespace detail { /////////////////////////////////////////////////////////////////// // // CLASS NAME : WhatProvides::const_iterator // /** \ref WhatProvides iterator. * Iterate a NULL terminated sat::detail::IdType array. Ctor gets * the adress of a pointer to the array, and offset into the array. * This is needed in case the array gets reallocated. */ class WhatProvidesIterator : public boost::iterator_adaptor< WhatProvidesIterator // Derived , const detail::IdType * // Base , const Solvable // Value , boost::forward_traversal_tag // CategoryOrTraversal , const Solvable // Reference > { friend std::ostream & operator<<( std::ostream & str, const WhatProvidesIterator & obj ); public: WhatProvidesIterator() : iterator_adaptor_( 0 ), _baseRef( 0 ), _offset( 0 ) {} /** Ctor with pointer to 1st elemment of an array. * Use otherwise unused base as pointer for _baseRef. */ explicit WhatProvidesIterator( const detail::IdType *const base_r, unsigned offset_r = 0 ) : iterator_adaptor_( base_r ), _baseRef( base_r ? &base_reference() : 0 ), _offset( offset_r ) {} /** Ctor with pointer to pointer to 1st elemment of an array. * Required for arrays that might be relocated while iterating. */ explicit WhatProvidesIterator( const detail::IdType *const* baseRef_r, unsigned offset_r ) : iterator_adaptor_( 0 ), _baseRef( baseRef_r ), _offset( offset_r ) {} /** Copy-ctor required to keep _baseRef adjusted. */ WhatProvidesIterator( const WhatProvidesIterator & rhs ) : iterator_adaptor_( rhs.base_reference() ) , _baseRef( base_reference() ? &base_reference() : rhs._baseRef ) , _offset( rhs._offset ) {} /** Assignment operator required to keep _baseRef adjusted. */ WhatProvidesIterator & operator=( const WhatProvidesIterator & rhs ) { if ( this != &rhs ) // no self assign { base_reference() = rhs.base_reference(); _baseRef = ( base_reference() ? &base_reference() : rhs._baseRef ); _offset = rhs._offset; } return *this; } private: friend class boost::iterator_core_access; reference dereference() const { return Solvable( getId() ); } #if 0 template bool equal( const boost::iterator_adaptor & rhs ) const #endif bool equal( const WhatProvidesIterator & rhs ) const { if ( ! ( getId() || rhs.getId() ) ) return true; // both @end if ( _offset != rhs._offset ) return false; if ( base_reference() ) return( base_reference() == rhs.base_reference() ); return( _baseRef == rhs._baseRef ); } void increment() { ++_offset; } detail::IdType getId() const { return _baseRef ? (*_baseRef)[_offset] : detail::noId; } private: const detail::IdType *const* _baseRef; unsigned _offset; }; /////////////////////////////////////////////////////////////////// } inline WhatProvides::const_iterator WhatProvides::end() const { return const_iterator(); } ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_WHATPROVIDES_H libzypp-17.7.0/zypp/sat/detail/000077500000000000000000000000001334444677500163535ustar00rootroot00000000000000libzypp-17.7.0/zypp/sat/detail/PoolImpl.cc000066400000000000000000000516731334444677500204310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/detail/PoolImpl.cc * */ #include #include #include #include "zypp/base/Easy.h" #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/Exception.h" #include "zypp/base/Measure.h" #include "zypp/base/WatchFile.h" #include "zypp/base/Sysconfig.h" #include "zypp/base/IOStream.h" #include "zypp/ZConfig.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/SolvableSet.h" #include "zypp/sat/Pool.h" #include "zypp/Capability.h" #include "zypp/Locale.h" #include "zypp/PoolItem.h" #include "zypp/target/modalias/Modalias.h" #include "zypp/media/MediaPriority.h" extern "C" { // Workaround libsolv project not providing a common include // directory. (the -devel package does, but the git repo doesn't). // #include int repo_add_helix( ::Repo *repo, FILE *fp, int flags ); } using std::endl; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zypp::satpool" // /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace env { /** */ inline int LIBSOLV_DEBUGMASK() { const char * envp = getenv("LIBSOLV_DEBUGMASK"); return envp ? str::strtonum( envp ) : 0; } } // namespace env /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// // MPL checks for satlib constants we redefine to avoid // includes and defines. BOOST_MPL_ASSERT_RELATION( noId, ==, STRID_NULL ); BOOST_MPL_ASSERT_RELATION( emptyId, ==, STRID_EMPTY ); BOOST_MPL_ASSERT_RELATION( noSolvableId, ==, ID_NULL ); BOOST_MPL_ASSERT_RELATION( systemSolvableId, ==, SYSTEMSOLVABLE ); BOOST_MPL_ASSERT_RELATION( solvablePrereqMarker, ==, SOLVABLE_PREREQMARKER ); BOOST_MPL_ASSERT_RELATION( solvableFileMarker, ==, SOLVABLE_FILEMARKER ); BOOST_MPL_ASSERT_RELATION( CapDetail::CAP_AND, ==, REL_AND ); BOOST_MPL_ASSERT_RELATION( CapDetail::CAP_OR, ==, REL_OR ); BOOST_MPL_ASSERT_RELATION( CapDetail::CAP_WITH, ==, REL_WITH ); BOOST_MPL_ASSERT_RELATION( CapDetail::CAP_NAMESPACE, ==, REL_NAMESPACE ); BOOST_MPL_ASSERT_RELATION( CapDetail::CAP_ARCH, ==, REL_ARCH ); BOOST_MPL_ASSERT_RELATION( namespaceModalias, ==, NAMESPACE_MODALIAS ); BOOST_MPL_ASSERT_RELATION( namespaceLanguage, ==, NAMESPACE_LANGUAGE ); BOOST_MPL_ASSERT_RELATION( namespaceFilesystem, ==, NAMESPACE_FILESYSTEM ); ///////////////////////////////////////////////////////////////// const std::string & PoolImpl::systemRepoAlias() { static const std::string _val( "@System" ); return _val; } const Pathname & sysconfigStoragePath() { static const Pathname _val( "/etc/sysconfig/storage" ); return _val; } ///////////////////////////////////////////////////////////////// static void logSat( CPool *, void *data, int type, const char *logString ) { // "1234567890123456789012345678901234567890 if ( 0 == strncmp( logString, " - no rule created", 19 ) ) return; if ( 0 == strncmp( logString, " next rules: 0 0", 19 ) ) return; if ( type & (SOLV_FATAL|SOLV_ERROR) ) { L_ERR("libsolv") << logString; } else if ( type & SOLV_DEBUG_STATS ) { L_DBG("libsolv") << logString; } else { L_MIL("libsolv") << logString; } } detail::IdType PoolImpl::nsCallback( CPool *, void * data, detail::IdType lhs, detail::IdType rhs ) { // lhs: the namespace identifier, e.g. NAMESPACE:MODALIAS // rhs: the value, e.g. pci:v0000104Cd0000840[01]sv*sd*bc*sc*i* // return: 0 if not supportded // 1 if supported by the system // -1 AFAIK it's also possible to return a list of solvables that support it, but don't know how. static const detail::IdType RET_unsupported = 0; static const detail::IdType RET_systemProperty = 1; switch ( lhs ) { case NAMESPACE_LANGUAGE: { const TrackedLocaleIds & localeIds( reinterpret_cast(data)->trackedLocaleIds() ); return localeIds.contains( IdString(rhs) ) ? RET_systemProperty : RET_unsupported; } break; case NAMESPACE_MODALIAS: { // modalias strings in capability may be hexencoded because rpm does not allow // ',', ' ' or other special chars. return target::Modalias::instance().query( str::hexdecode( IdString(rhs).c_str() ) ) ? RET_systemProperty : RET_unsupported; } break; case NAMESPACE_FILESYSTEM: { const std::set & requiredFilesystems( reinterpret_cast(data)->requiredFilesystems() ); return requiredFilesystems.find( IdString(rhs).asString() ) != requiredFilesystems.end() ? RET_systemProperty : RET_unsupported; } break; } WAR << "Unhandled " << Capability( lhs ) << " vs. " << Capability( rhs ) << endl; return RET_unsupported; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : PoolMember::myPool // METHOD TYPE : PoolImpl // PoolImpl & PoolMember::myPool() { static PoolImpl _global; return _global; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : PoolImpl::PoolImpl // METHOD TYPE : Ctor // PoolImpl::PoolImpl() : _pool( ::pool_create() ) { MIL << "Creating sat-pool." << endl; if ( ! _pool ) { ZYPP_THROW( Exception( _("Can not create sat-pool.") ) ); } // by now we support only a RPM backend ::pool_setdisttype(_pool, DISTTYPE_RPM ); // initialialize logging if ( env::LIBSOLV_DEBUGMASK() ) { ::pool_setdebugmask(_pool, env::LIBSOLV_DEBUGMASK() ); } else { if ( getenv("ZYPP_LIBSOLV_FULLLOG") || getenv("ZYPP_LIBSAT_FULLLOG") ) ::pool_setdebuglevel( _pool, 3 ); else if ( getenv("ZYPP_FULLLOG") ) ::pool_setdebuglevel( _pool, 2 ); else ::pool_setdebugmask(_pool, SOLV_DEBUG_JOB|SOLV_DEBUG_STATS ); } ::pool_setdebugcallback( _pool, logSat, NULL ); // set namespace callback _pool->nscallback = &nsCallback; _pool->nscallbackdata = (void*)this; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : PoolImpl::~PoolImpl // METHOD TYPE : Dtor // PoolImpl::~PoolImpl() { ::pool_free( _pool ); } /////////////////////////////////////////////////////////////////// void PoolImpl::setDirty( const char * a1, const char * a2, const char * a3 ) { if ( a1 ) { if ( a3 ) MIL << a1 << " " << a2 << " " << a3 << endl; else if ( a2 ) MIL << a1 << " " << a2 << endl; else MIL << a1 << endl; } _serial.setDirty(); // pool content change _availableLocalesPtr.reset(); // available locales may change _multiversionListPtr.reset(); // re-evaluate ZConfig::multiversionSpec. depSetDirty(); // invaldate dependency/namespace related indices } void PoolImpl::localeSetDirty( const char * a1, const char * a2, const char * a3 ) { if ( a1 ) { if ( a3 ) MIL << a1 << " " << a2 << " " << a3 << endl; else if ( a2 ) MIL << a1 << " " << a2 << endl; else MIL << a1 << endl; } _trackedLocaleIdsPtr.reset(); // requested locales changed depSetDirty(); // invaldate dependency/namespace related indices } void PoolImpl::depSetDirty( const char * a1, const char * a2, const char * a3 ) { if ( a1 ) { if ( a3 ) MIL << a1 << " " << a2 << " " << a3 << endl; else if ( a2 ) MIL << a1 << " " << a2 << endl; else MIL << a1 << endl; } ::pool_freewhatprovides( _pool ); } void PoolImpl::prepare() const { // additional /etc/sysconfig/storage check: static WatchFile sysconfigFile( sysconfigStoragePath(), WatchFile::NO_INIT ); if ( sysconfigFile.hasChanged() ) { _requiredFilesystemsPtr.reset(); // recreated on demand const_cast(this)->depSetDirty( "/etc/sysconfig/storage change" ); } if ( _watcher.remember( _serial ) ) { // After repo/solvable add/remove: // set pool architecture ::pool_setarch( _pool, ZConfig::instance().systemArchitecture().asString().c_str() ); } if ( ! _pool->whatprovides ) { MIL << "pool_createwhatprovides..." << endl; ::pool_addfileprovides( _pool ); ::pool_createwhatprovides( _pool ); } if ( ! _pool->languages ) { // initial seting const_cast(this)->setTextLocale( ZConfig::instance().textLocale() ); } } /////////////////////////////////////////////////////////////////// CRepo * PoolImpl::_createRepo( const std::string & name_r ) { setDirty(__FUNCTION__, name_r.c_str() ); CRepo * ret = ::repo_create( _pool, name_r.c_str() ); if ( ret && name_r == systemRepoAlias() ) ::pool_set_installed( _pool, ret ); return ret; } void PoolImpl::_deleteRepo( CRepo * repo_r ) { setDirty(__FUNCTION__, repo_r->name ); if ( isSystemRepo( repo_r ) ) _autoinstalled.clear(); eraseRepoInfo( repo_r ); ::repo_free( repo_r, /*resusePoolIDs*/false ); // If the last repo is removed clear the pool to actually reuse all IDs. // NOTE: the explicit ::repo_free above asserts all solvables are memset(0)! if ( !_pool->urepos ) { _serialIDs.setDirty(); // Indicate resusePoolIDs - ResPool must also invalidate it's PoolItems ::pool_freeallrepos( _pool, /*resusePoolIDs*/true ); } } int PoolImpl::_addSolv( CRepo * repo_r, FILE * file_r ) { setDirty(__FUNCTION__, repo_r->name ); int ret = ::repo_add_solv( repo_r, file_r, 0 ); if ( ret == 0 ) _postRepoAdd( repo_r ); return ret; } int PoolImpl::_addHelix( CRepo * repo_r, FILE * file_r ) { setDirty(__FUNCTION__, repo_r->name ); int ret = ::repo_add_helix( repo_r, file_r, 0 ); if ( ret == 0 ) _postRepoAdd( repo_r ); return 0; } void PoolImpl::_postRepoAdd( CRepo * repo_r ) { if ( ! isSystemRepo( repo_r ) ) { // Filter out unwanted archs std::set sysids; { Arch::CompatSet sysarchs( Arch::compatSet( ZConfig::instance().systemArchitecture() ) ); for_( it, sysarchs.begin(), sysarchs.end() ) sysids.insert( it->id() ); // unfortunately libsolv treats src/nosrc as architecture: sysids.insert( ARCH_SRC ); sysids.insert( ARCH_NOSRC ); } detail::IdType blockBegin = 0; unsigned blockSize = 0; for ( detail::IdType i = repo_r->start; i < repo_r->end; ++i ) { CSolvable * s( _pool->solvables + i ); if ( s->repo == repo_r && sysids.find( s->arch ) == sysids.end() ) { // Remember an unwanted arch entry: if ( ! blockBegin ) blockBegin = i; ++blockSize; } else if ( blockSize ) { // Free remembered entries ::repo_free_solvable_block( repo_r, blockBegin, blockSize, /*resusePoolIDs*/false ); blockBegin = blockSize = 0; } } if ( blockSize ) { // Free remembered entries ::repo_free_solvable_block( repo_r, blockBegin, blockSize, /*resusePoolIDs*/false ); blockBegin = blockSize = 0; } } } detail::SolvableIdType PoolImpl::_addSolvables( CRepo * repo_r, unsigned count_r ) { setDirty(__FUNCTION__, repo_r->name ); return ::repo_add_solvable_block( repo_r, count_r ); } void PoolImpl::setRepoInfo( RepoIdType id_r, const RepoInfo & info_r ) { CRepo * repo( getRepo( id_r ) ); if ( repo ) { bool dirty = false; // libsolv priority is based on '<', while yum's repoinfo // uses 1(highest)->99(lowest). Thus we use -info_r.priority. if ( repo->priority != int(-info_r.priority()) ) { repo->priority = -info_r.priority(); dirty = true; } // subpriority is used to e.g. prefer http over dvd iff // both have same priority. int mediaPriority( media::MediaPriority( info_r.url() ) ); if ( repo->subpriority != mediaPriority ) { repo->subpriority = mediaPriority; dirty = true; } if ( dirty ) setDirty(__FUNCTION__, info_r.alias().c_str() ); } _repoinfos[id_r] = info_r; } /////////////////////////////////////////////////////////////////// void PoolImpl::setTextLocale( const Locale & locale_r ) { std::vector fallbacklist; for ( Locale l( locale_r ); l; l = l.fallback() ) { fallbacklist.push_back( l.code() ); } dumpRangeLine( MIL << "pool_set_languages: ", fallbacklist.begin(), fallbacklist.end() ) << endl; std::vector fallbacklist_cstr; for_( it, fallbacklist.begin(), fallbacklist.end() ) { fallbacklist_cstr.push_back( it->c_str() ); } ::pool_set_languages( _pool, &fallbacklist_cstr.front(), fallbacklist_cstr.size() ); } void PoolImpl::initRequestedLocales( const LocaleSet & locales_r ) { if ( _requestedLocalesTracker.setInitial( locales_r ) ) { localeSetDirty( "initRequestedLocales" ); MIL << "Init RequestedLocales: " << _requestedLocalesTracker << " =" << locales_r << endl; } } void PoolImpl::setRequestedLocales( const LocaleSet & locales_r ) { if ( _requestedLocalesTracker.set( locales_r ) ) { localeSetDirty( "setRequestedLocales" ); MIL << "New RequestedLocales: " << _requestedLocalesTracker << " =" << locales_r << endl; } } bool PoolImpl::addRequestedLocale( const Locale & locale_r ) { bool done = _requestedLocalesTracker.add( locale_r ); if ( done ) { localeSetDirty( "addRequestedLocale", locale_r.code().c_str() ); MIL << "New RequestedLocales: " << _requestedLocalesTracker << " +" << locale_r << endl; } return done; } bool PoolImpl::eraseRequestedLocale( const Locale & locale_r ) { bool done = _requestedLocalesTracker.remove( locale_r ); if ( done ) { localeSetDirty( "addRequestedLocale", locale_r.code().c_str() ); MIL << "New RequestedLocales: " << _requestedLocalesTracker << " -" << locale_r << endl; } return done; } const PoolImpl::TrackedLocaleIds & PoolImpl::trackedLocaleIds() const { if ( ! _trackedLocaleIdsPtr ) { _trackedLocaleIdsPtr.reset( new TrackedLocaleIds ); const base::SetTracker & localesTracker( _requestedLocalesTracker ); TrackedLocaleIds & localeIds( *_trackedLocaleIdsPtr ); // Add current locales+fallback except for added ones for ( Locale lang: localesTracker.current() ) { if ( localesTracker.wasAdded( lang ) ) continue; for ( ; lang; lang = lang.fallback() ) { localeIds.current().insert( IdString(lang) ); } } // Add added locales+fallback except they are already in current for ( Locale lang: localesTracker.added() ) { for ( ; lang && localeIds.current().insert( IdString(lang) ).second; lang = lang.fallback() ) { localeIds.added().insert( IdString(lang) ); } } // Add removed locales+fallback except they are still in current for ( Locale lang: localesTracker.removed() ) { for ( ; lang && ! localeIds.current().count( IdString(lang) ); lang = lang.fallback() ) { localeIds.removed().insert( IdString(lang) ); } } // Assert that TrackedLocaleIds::current is not empty. // If, so fill in LanguageCode::enCode as last resort. if ( localeIds.current().empty() ) { localeIds.current().insert( IdString(Locale::enCode) ); } } return *_trackedLocaleIdsPtr; } static void _getLocaleDeps( const Capability & cap_r, LocaleSet & store_r ) { // Collect locales from any 'namespace:language(lang)' dependency CapDetail detail( cap_r ); if ( detail.kind() == CapDetail::EXPRESSION ) { switch ( detail.capRel() ) { case CapDetail::CAP_AND: case CapDetail::CAP_OR: // expand _getLocaleDeps( detail.lhs(), store_r ); _getLocaleDeps( detail.rhs(), store_r ); break; case CapDetail::CAP_NAMESPACE: if ( detail.lhs().id() == NAMESPACE_LANGUAGE ) { store_r.insert( Locale( IdString(detail.rhs().id()) ) ); } break; case CapDetail::REL_NONE: case CapDetail::CAP_WITH: case CapDetail::CAP_ARCH: break; // unwanted } } } const LocaleSet & PoolImpl::getAvailableLocales() const { if ( !_availableLocalesPtr ) { _availableLocalesPtr.reset( new LocaleSet ); LocaleSet & localeSet( *_availableLocalesPtr ); for ( const Solvable & pi : Pool::instance().solvables() ) { for ( const Capability & cap : pi.supplements() ) { _getLocaleDeps( cap, localeSet ); } } } return *_availableLocalesPtr; } /////////////////////////////////////////////////////////////////// void PoolImpl::multiversionListInit() const { _multiversionListPtr.reset( new MultiversionList ); MultiversionList & multiversionList( *_multiversionListPtr ); MultiversionList::size_type size = 0; for ( const std::string & spec : ZConfig::instance().multiversionSpec() ) { static const std::string prefix( "provides:" ); bool provides = str::hasPrefix( spec, prefix ); for ( Solvable solv : WhatProvides( Capability( provides ? spec.c_str() + prefix.size() : spec.c_str() ) ) ) { if ( provides || solv.ident() == spec ) multiversionList.insert( solv ); } MultiversionList::size_type nsize = multiversionList.size(); MIL << "Multiversion install " << spec << ": " << (nsize-size) << " matches" << endl; size = nsize; } } void PoolImpl::multiversionSpecChanged() { _multiversionListPtr.reset(); } const PoolImpl::MultiversionList & PoolImpl::multiversionList() const { if ( ! _multiversionListPtr ) multiversionListInit(); return *_multiversionListPtr; } bool PoolImpl::isMultiversion( const Solvable & solv_r ) const { return multiversionList().contains( solv_r ); } /////////////////////////////////////////////////////////////////// const std::set & PoolImpl::requiredFilesystems() const { if ( ! _requiredFilesystemsPtr ) { _requiredFilesystemsPtr.reset( new std::set ); std::set & requiredFilesystems( *_requiredFilesystemsPtr ); str::split( base::sysconfig::read( sysconfigStoragePath() )["USED_FS_LIST"], std::inserter( requiredFilesystems, requiredFilesystems.end() ) ); } return *_requiredFilesystemsPtr; } ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/sat/detail/PoolImpl.h000066400000000000000000000315531334444677500202660ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/detail/PoolImpl.h * */ #ifndef ZYPP_SAT_DETAIL_POOLIMPL_H #define ZYPP_SAT_DETAIL_POOLIMPL_H extern "C" { #include #include #include #include #include } #include #include "zypp/base/Hash.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/SerialNumber.h" #include "zypp/base/SetTracker.h" #include "zypp/sat/detail/PoolMember.h" #include "zypp/sat/Queue.h" #include "zypp/RepoInfo.h" #include "zypp/Locale.h" #include "zypp/Capability.h" #include "zypp/IdString.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// class SolvableSet; /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolImpl // /** */ class PoolImpl : private base::NonCopyable { public: /** Default ctor */ PoolImpl(); /** Dtor */ ~PoolImpl(); /** Pointer style access forwarded to sat-pool. */ CPool * operator->() { return _pool; } public: /** Serial number changing whenever the content changes. */ const SerialNumber & serial() const { return _serial; } /** Serial number changing whenever resusePoolIDs==true was used. ResPool must also invalidate it's PoolItems! */ const SerialNumber & serialIDs() const { return _serialIDs; } /** Update housekeeping data (e.g. whatprovides). * \todo actually requires a watcher. */ void prepare() const; private: /** Invalidate housekeeping data (e.g. whatprovides) if the * pools content changed. */ void setDirty( const char * a1 = 0, const char * a2 = 0, const char * a3 = 0 ); /** Invalidate locale related housekeeping data. */ void localeSetDirty( const char * a1 = 0, const char * a2 = 0, const char * a3 = 0 ); /** Invalidate housekeeping data (e.g. whatprovides) if dependencies changed. */ void depSetDirty( const char * a1 = 0, const char * a2 = 0, const char * a3 = 0 ); /** Callback to resolve namespace dependencies (language, modalias, filesystem, etc.). */ static detail::IdType nsCallback( CPool *, void * data, detail::IdType lhs, detail::IdType rhs ); public: /** Reserved system repository alias \c @System. */ static const std::string & systemRepoAlias(); bool isSystemRepo( CRepo * repo_r ) const { return repo_r && _pool->installed == repo_r; } CRepo * systemRepo() const { return _pool->installed; } /** Get rootdir (for file conflicts check) */ Pathname rootDir() const { const char * rd = ::pool_get_rootdir( _pool ); return( rd ? rd : "/" ); } /** Set rootdir (for file conflicts check) */ void rootDir( const Pathname & root_r ) { if ( root_r.empty() || root_r == "/" ) ::pool_set_rootdir( _pool, nullptr ); else ::pool_set_rootdir( _pool, root_r.c_str() ); } public: /** \name Actions invalidating housekeeping data. * * All methods expect valid arguments being passed. */ //@{ /** Creating a new repo named \a name_r. */ CRepo * _createRepo( const std::string & name_r ); /** Delete repo \a repo_r from pool. */ void _deleteRepo( CRepo * repo_r ); /** Adding solv file to a repo. * Except for \c isSystemRepo_r, solvables of incompatible architecture * are filtered out. */ int _addSolv( CRepo * repo_r, FILE * file_r ); /** Adding helix file to a repo. * Except for \c isSystemRepo_r, solvables of incompatible architecture * are filtered out. */ int _addHelix( CRepo * repo_r, FILE * file_r ); /** Adding Solvables to a repo. */ detail::SolvableIdType _addSolvables( CRepo * repo_r, unsigned count_r ); //@} /** Helper postprocessing the repo after adding solv or helix files. */ void _postRepoAdd( CRepo * repo_r ); public: /** a \c valid \ref Solvable has a non NULL repo pointer. */ bool validSolvable( const CSolvable & slv_r ) const { return slv_r.repo; } /** \overload Check also for id_r being in range of _pool->solvables. */ bool validSolvable( SolvableIdType id_r ) const { return id_r < unsigned(_pool->nsolvables) && validSolvable( _pool->solvables[id_r] ); } /** \overload Check also for slv_r being in range of _pool->solvables. */ bool validSolvable( const CSolvable * slv_r ) const { return _pool->solvables <= slv_r && slv_r <= _pool->solvables+_pool->nsolvables && validSolvable( *slv_r ); } public: CPool * getPool() const { return _pool; } /** \todo a quick check whether the repo was meanwhile deleted. */ CRepo * getRepo( RepoIdType id_r ) const { return id_r; } /** Return pointer to the sat-solvable or NULL if it is not valid. * \see \ref validSolvable. */ CSolvable * getSolvable( SolvableIdType id_r ) const { if ( validSolvable( id_r ) ) return &_pool->solvables[id_r]; return 0; } public: /** Get id of the first valid \ref Solvable. * This is the next valid after the system solvable. */ SolvableIdType getFirstId() const { return getNextId( 1 ); } /** Get id of the next valid \ref Solvable. * This goes round robbin. At the end it returns \ref noSolvableId. * Passing \ref noSolvableId it returns the 1st valid \ref Solvable. * \see \ref validSolvable. */ SolvableIdType getNextId( SolvableIdType id_r ) const { for( ++id_r; id_r < unsigned(_pool->nsolvables); ++id_r ) { if ( validSolvable( _pool->solvables[id_r] ) ) return id_r; } return noSolvableId; } public: /** */ const RepoInfo & repoInfo( RepoIdType id_r ) { return _repoinfos[id_r]; } /** Also adjust repo priority and subpriority accordingly. */ void setRepoInfo( RepoIdType id_r, const RepoInfo & info_r ); /** */ void eraseRepoInfo( RepoIdType id_r ) { _repoinfos.erase( id_r ); } public: /** Returns the id stored at \c offset_r in the internal * whatprovidesdata array. */ const sat::detail::IdType whatProvidesData( unsigned offset_r ) { return _pool->whatprovidesdata[offset_r]; } /** Returns offset into the internal whatprovidesdata array. * Use \ref whatProvidesData to get the stored Id. */ unsigned whatProvides( Capability cap_r ) { prepare(); return ::pool_whatprovides( _pool, cap_r.id() ); } public: /// \name Requested locales. /// The requested LocaleSets managed in _requestedLocalesTracker /// are unexpanded; i.e. they contain just the pure user selection. /// The resolver however uses expanded sets ('de_DE' will also /// include its fallback locales 'de', (en); here in the namespace: /// callback and in the Resolver itself). //@{ /** */ void setTextLocale( const Locale & locale_r ); /** Start tracking changes based on this \a locales_r. * Usually called on TargetInit. */ void initRequestedLocales( const LocaleSet & locales_r ); /** Added since last initRequestedLocales. */ const LocaleSet & getAddedRequestedLocales() const { return _requestedLocalesTracker.added(); } /** Removed since last initRequestedLocales. */ const LocaleSet & getRemovedRequestedLocales() const { return _requestedLocalesTracker.removed(); } /** Current set of requested Locales. */ const LocaleSet & getRequestedLocales() const { return _requestedLocalesTracker.current(); } bool isRequestedLocale( const Locale & locale_r ) const { return _requestedLocalesTracker.contains( locale_r ); } /** User change (tracked). */ void setRequestedLocales( const LocaleSet & locales_r ); /** User change (tracked). */ bool addRequestedLocale( const Locale & locale_r ); /** User change (tracked). */ bool eraseRequestedLocale( const Locale & locale_r ); /** All Locales occurring in any repo. */ const LocaleSet & getAvailableLocales() const; bool isAvailableLocale( const Locale & locale_r ) const { const LocaleSet & avl( getAvailableLocales() ); LocaleSet::const_iterator it( avl.find( locale_r ) ); return it != avl.end(); } typedef base::SetTracker TrackedLocaleIds; /** Expanded _requestedLocalesTracker for solver.*/ const TrackedLocaleIds & trackedLocaleIds() const; //@} public: /** \name Multiversion install. */ //@{ typedef SolvableSet MultiversionList; const MultiversionList & multiversionList() const; bool isMultiversion( const Solvable & solv_r ) const; void multiversionSpecChanged(); //@} public: /** \name Installed on behalf of a user request hint. */ //@{ /** Get ident list of all autoinstalled solvables. */ StringQueue autoInstalled() const { return _autoinstalled; } /** Set ident list of all autoinstalled solvables. */ void setAutoInstalled( const StringQueue & autoInstalled_r ) { _autoinstalled = autoInstalled_r; } bool isOnSystemByUser( IdString ident_r ) const { return !_autoinstalled.contains( ident_r.id() ); } bool isOnSystemByAuto( IdString ident_r ) const { return _autoinstalled.contains( ident_r.id() ); } //@} public: /** accessor for etc/sysconfig/storage reading file on demand */ const std::set & requiredFilesystems() const; private: /** sat-pool. */ CPool * _pool; /** Serial number - changes with each Pool content change. */ SerialNumber _serial; /** Serial number of IDs - changes whenever resusePoolIDs==true - ResPool must also invalidate it's PoolItems! */ SerialNumber _serialIDs; /** Watch serial number. */ SerialNumberWatcher _watcher; /** Additional \ref RepoInfo. */ std::map _repoinfos; /** */ base::SetTracker _requestedLocalesTracker; mutable scoped_ptr _trackedLocaleIdsPtr; mutable scoped_ptr _availableLocalesPtr; /** */ void multiversionListInit() const; mutable scoped_ptr _multiversionListPtr; /** */ sat::StringQueue _autoinstalled; /** filesystems mentioned in /etc/sysconfig/storage */ mutable scoped_ptr > _requiredFilesystemsPtr; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #define POOL_SETDIRTY #endif // ZYPP_SAT_DETAIL_POOLIMPL_H libzypp-17.7.0/zypp/sat/detail/PoolMember.h000066400000000000000000000134231334444677500205700ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/sat/detail/PoolMember.h * */ #ifndef ZYPP_SAT_DETAIL_POOLMEMBER_H #define ZYPP_SAT_DETAIL_POOLMEMBER_H #include "zypp/base/Hash.h" #include "zypp/base/Iterator.h" #include "zypp/base/String.h" #include "zypp/base/Easy.h" extern "C" { // Those _Type names are exposed as sat::detail::CType below! struct _Dataiterator; struct _Datamatcher; struct _Map; struct _Pool; struct _Queue; struct _Repo; struct _Solvable; struct _Solver; struct _Transaction; } /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// class IdString; class Capability; class Capabilities; class Repository; class RepoInfo; /////////////////////////////////////////////////////////////////// namespace detail { class RepoIterator; class ByRepository; } /////////////////////////////////////////////////////////////////// namespace sat { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace detail { typedef ::_Dataiterator CDataiterator; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Datamatcher CDatamatcher; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Map CMap; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Pool CPool; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Queue CQueue; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Repo CRepo; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Solvable CSolvable; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Solver CSolver; ///< Wrapped libsolv C data type exposed as backdoor typedef ::_Transaction CTransaction; ///< Wrapped libsolv C data type exposed as backdoor } // namespace detail /////////////////////////////////////////////////////////////////// class Pool; class Solvable; /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// class PoolImpl; /////////////////////////////////////////////////////////////////// // // CLASS NAME : PoolMember // /** Backlink to the associated \ref PoolImpl. * Simple as we currently use one global PoolImpl. If we change our * minds this is where we'd store and do the \c Id to \ref PoolImpl * mapping. */ struct PoolMember { static PoolImpl & myPool(); }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// /** Generic Id type. */ typedef int IdType; static const IdType noId( 0 ); static const IdType emptyId( 1 ); /** Internal ids satlib includes in dependencies. * MPL check in PoolImpl.cc */ static const IdType solvablePrereqMarker( 15 ); static const IdType solvableFileMarker ( 16 ); static const IdType namespaceModalias ( 18 ); static const IdType namespaceLanguage ( 20 ); static const IdType namespaceFilesystem ( 21 ); /** Test for internal ids satlib includes in dependencies. */ inline bool isDepMarkerId( IdType id_r ) { return( id_r == solvablePrereqMarker || id_r == solvableFileMarker ); } /** Id type to connect \ref Solvable and sat-solvable. * Indext into solvable array. */ typedef unsigned SolvableIdType; typedef SolvableIdType size_type; /** Id to denote \ref Solvable::noSolvable. */ static const SolvableIdType noSolvableId( 0 ); /** Id to denote the usually hidden \ref Solvable::systemSolvable. */ static const SolvableIdType systemSolvableId( 1 ); /** Id type to connect \ref Repo and sat-repo. */ typedef ::_Repo * RepoIdType; /** Id to denote \ref Repo::noRepository. */ static const RepoIdType noRepoId( 0 ); ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////// class SolvableIterator; ///////////////////////////////////////////////////////////////// } // namespace detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace sat /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_SAT_DETAIL_POOLMEMBER_H libzypp-17.7.0/zypp/solver/000077500000000000000000000000001334444677500156345ustar00rootroot00000000000000libzypp-17.7.0/zypp/solver/detail/000077500000000000000000000000001334444677500170765ustar00rootroot00000000000000libzypp-17.7.0/zypp/solver/detail/ItemCapKind.h000066400000000000000000000056031334444677500214030ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/solver/detail/ItemCapKind.h * */ #ifndef ZYPP_SOLVER_DETAIL_ITEMCAPKIND_H #define ZYPP_SOLVER_DETAIL_ITEMCAPKIND_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace solver { /////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /// \class ItemCapKind /////////////////////////////////////////////////////////////////// struct ItemCapKind { public: ItemCapKind() : _pimpl( new Impl ) {} ItemCapKind( PoolItem i, Capability c, Dep k, bool initial ) : _pimpl( new Impl( i, c, k, initial ) ) {} /** Capability which has triggerd this selection */ Capability cap() const { return _pimpl->_cap; } /** Kind of that capability */ Dep capKind() const { return _pimpl->_capKind; } /** Item which has triggered this selection */ PoolItem item() const { return _pimpl->_item; } /** This item has triggered the installation (Not already fullfilled requierement only). */ bool initialInstallation() const { return _pimpl->_initialInstallation; } private: struct Impl { Impl() : _capKind( Dep::PROVIDES ) , _initialInstallation( false ) {} Impl( PoolItem i, Capability c, Dep k, bool initial ) : _cap( c ) , _capKind( k ) , _item( i ) , _initialInstallation( initial ) {} Capability _cap; Dep _capKind; PoolItem _item; bool _initialInstallation; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; RWCOW_pointer _pimpl; }; typedef std::multimap ItemCapKindMap; typedef std::list ItemCapKindList; } // namespace detail /////////////////////////////////////////////////////////////////// } // namespace solver /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_ITEMCAPKIND_H libzypp-17.7.0/zypp/solver/detail/ProblemSolutionCombi.cc000066400000000000000000000041751334444677500235230ustar00rootroot00000000000000 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* ProblemSolution.cc * * Easy-to use interface to the ZYPP dependency resolver * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/solver/detail/ProblemSolutionCombi.h" using namespace std; ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// namespace detail { ProblemSolutionCombi::ProblemSolutionCombi() {} void ProblemSolutionCombi::addSingleAction( Capability capability, TransactionKind action) { addAction( new TransactionSolutionAction( capability, action ) ); } void ProblemSolutionCombi::addSingleAction( PoolItem item, TransactionKind action ) { addAction( new TransactionSolutionAction( item, action ) ); } void ProblemSolutionCombi::addSingleAction( SolverQueueItem_Ptr item, TransactionKind action ) { addAction( new TransactionSolutionAction( item, action ) ); } } // namespace detail ///////////////////////////////////////////////////////////////////// } // namespace solver /////////////////////////////////////////////////////////////////////// } // namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/ProblemSolutionCombi.h000066400000000000000000000061611334444677500233620ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* Resolver_problems.cc * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONINSTALL_H #define ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONINSTALL_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include #include "zypp/ProblemSolution.h" #include "zypp/solver/detail/SolutionAction.h" // TransactionKind ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////////////// /// \class ProblemSolutionCombi /// \brief Class representing one possible solution to one problem found during resolving. /// /// This problem solution is a combination of different actions, /// e.G. install, delete, keep different resolvables. ///////////////////////////////////////////////////////////////////////// class ProblemSolutionCombi : public ProblemSolution { public: /** Constructor. */ ProblemSolutionCombi(); /** * Add a single action of an item */ void addSingleAction( PoolItem item, TransactionKind action ); /** * Add a single action of a capability */ void addSingleAction( Capability capability, TransactionKind action ); /** * Add a single action of a SolverQueueItem */ void addSingleAction( SolverQueueItem_Ptr item, TransactionKind action ); /** * returns the number of actions */ size_t actionCount() { return actions().size(); } /** * Set description text (append) */ void addDescription( std::string description ) { pushDescriptionDetail( std::move(description) ); } /** * Set description text (prepend) */ void addFrontDescription( std::string description ) { pushDescriptionDetail( std::move(description), /*front*/true ); } }; } // namespace detail ///////////////////////////////////////////////////////////////////// } // namespace solver /////////////////////////////////////////////////////////////////////// } // namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONAINSTALL_H libzypp-17.7.0/zypp/solver/detail/ProblemSolutionIgnore.cc000066400000000000000000000043641334444677500237150ustar00rootroot00000000000000 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* ProblemSolution.cc * * Easy-to use interface to the ZYPP dependency resolver * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/String.h" #include "zypp/base/Gettext.h" #include "zypp/solver/detail/ProblemSolutionIgnore.h" #include "zypp/solver/detail/SolutionAction.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// namespace detail { ProblemSolutionIgnore::ProblemSolutionIgnore( PoolItem item ) // TranslatorExplanation %s = name of package, patch, selection ... : ProblemSolution( str::form(_("break %s by ignoring some of its dependencies"), item.satSolvable().asString().c_str() ) ) { addAction( new InjectSolutionAction( item, WEAK ) ); } ProblemSolutionIgnore::ProblemSolutionIgnore( PoolItemList itemList ) : ProblemSolution( _("generally ignore of some dependencies") ) { for ( const auto & item : itemList) { addAction( new InjectSolutionAction( item, WEAK ) ); } } } // namespace detail ///////////////////////////////////////////////////////////////////// } // namespace solver /////////////////////////////////////////////////////////////////////// } // namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/ProblemSolutionIgnore.h000066400000000000000000000045751334444677500235630ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* Resolver_problems.cc * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONIGNORE_H #define ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONIGNORE_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include #include "zypp/ProblemSolution.h" #include "zypp/PoolItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// namespace detail { ///////////////////////////////////////////////////////////////////////// /// \class ProblemSolutionIgnore /// \brief Class representing one possible solution to one problem found during resolving. /// /// This problem solution ignores one or more items by setting their /// dependencies to weak ///////////////////////////////////////////////////////////////////////// class ProblemSolutionIgnore : public ProblemSolution { public: typedef std::list PoolItemList; ProblemSolutionIgnore( PoolItem item ); ProblemSolutionIgnore( PoolItemList itemList ); }; } // namespace detail ///////////////////////////////////////////////////////////////////// } // namespace solver /////////////////////////////////////////////////////////////////////// } // namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONIGNORE_H libzypp-17.7.0/zypp/solver/detail/Resolver.cc000066400000000000000000000515121334444677500212120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* Resolver.cc * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #include #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/solver/detail/Resolver.h" #include "zypp/solver/detail/Testcase.h" #include "zypp/solver/detail/SATResolver.h" #include "zypp/solver/detail/ItemCapKind.h" #include "zypp/solver/detail/SolutionAction.h" #include "zypp/solver/detail/SolverQueueItem.h" #include "zypp/Capabilities.h" #include "zypp/ZConfig.h" #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" #include "zypp/base/Algorithm.h" #include "zypp/ResPool.h" #include "zypp/ResFilters.h" #include "zypp/sat/Pool.h" #include "zypp/sat/Solvable.h" #include "zypp/sat/Transaction.h" #include "zypp/ResolverProblem.h" #define MAXSOLVERRUNS 5 using std::endl; using std::make_pair; ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// //using namespace std; //--------------------------------------------------------------------------- std::ostream & Resolver::dumpOn( std::ostream & os ) const { os << "" << endl; #define OUTS(t) os << " " << #t << ":\t" << t << endl; OUTS( _upgradeMode ); OUTS( _updateMode ); OUTS( _verifying ); OUTS( _onlyRequires ); OUTS( _solveSrcPackages ); OUTS( _cleandepsOnRemove ); OUTS( _ignoreAlreadyRecommended ); #undef OUT return os << ""; } //--------------------------------------------------------------------------- Resolver::Resolver (const ResPool & pool) : _pool(pool) , _satResolver(NULL) , _poolchanged(_pool.serial() ) , _upgradeMode (false) , _updateMode (false) , _verifying (false) , _onlyRequires ( ZConfig::instance().solver_onlyRequires() ) , _solveSrcPackages ( false ) , _cleandepsOnRemove ( ZConfig::instance().solver_cleandepsOnRemove() ) , _ignoreAlreadyRecommended ( true ) { sat::Pool satPool( sat::Pool::instance() ); _satResolver = new SATResolver(_pool, satPool.get()); } Resolver::~Resolver() { delete _satResolver; } //--------------------------------------------------------------------------- // forward flags too SATResolver #define ZOLV_FLAG_TRIBOOL( ZSETTER, ZGETTER, ZVARNAME, ZVARDEFAULT ) \ void Resolver::ZSETTER( TriBool state_r ) \ { _satResolver->ZVARNAME = indeterminate(state_r) ? ZVARDEFAULT : bool(state_r); } \ bool Resolver::ZGETTER() const \ { return _satResolver->ZVARNAME; } \ // NOTE: ZVARDEFAULT must be in sync with SATResolver ctor ZOLV_FLAG_TRIBOOL( setForceResolve, forceResolve, _allowuninstall, false ) ZOLV_FLAG_TRIBOOL( setAllowDowngrade, allowDowngrade, _allowdowngrade, false ) ZOLV_FLAG_TRIBOOL( setAllowNameChange, allowNameChange, _allownamechange, true ) // bsc#1071466 ZOLV_FLAG_TRIBOOL( setAllowArchChange, allowArchChange, _allowarchchange, false ) ZOLV_FLAG_TRIBOOL( setAllowVendorChange, allowVendorChange, _allowvendorchange, ZConfig::instance().solver_allowVendorChange() ) ZOLV_FLAG_TRIBOOL( dupSetAllowDowngrade, dupAllowDowngrade, _dup_allowdowngrade, ZConfig::instance().solver_dupAllowDowngrade() ) ZOLV_FLAG_TRIBOOL( dupSetAllowNameChange, dupAllowNameChange, _dup_allownamechange, ZConfig::instance().solver_dupAllowNameChange() ) ZOLV_FLAG_TRIBOOL( dupSetAllowArchChange, dupAllowArchChange, _dup_allowarchchange, ZConfig::instance().solver_dupAllowArchChange() ) ZOLV_FLAG_TRIBOOL( dupSetAllowVendorChange, dupAllowVendorChange, _dup_allowvendorchange, ZConfig::instance().solver_dupAllowVendorChange() ) #undef ZOLV_FLAG_TRIBOOL //--------------------------------------------------------------------------- void Resolver::setOnlyRequires( TriBool state_r ) { _onlyRequires = indeterminate(state_r) ? ZConfig::instance().solver_onlyRequires() : bool(state_r); } void Resolver::setCleandepsOnRemove( TriBool state_r ) { _cleandepsOnRemove = indeterminate(state_r) ? ZConfig::instance().solver_cleandepsOnRemove() : bool(state_r); } //--------------------------------------------------------------------------- ResPool Resolver::pool() const { return _pool; } void Resolver::reset( bool keepExtras ) { _verifying = false; if (!keepExtras) { _extra_requires.clear(); _extra_conflicts.clear(); } _isInstalledBy.clear(); _installs.clear(); _satifiedByInstalled.clear(); _installedSatisfied.clear(); } bool Resolver::doUpgrade() { // Setting Resolver to upgrade mode. SAT solver will do the update _upgradeMode = true; return resolvePool(); } void Resolver::doUpdate() { _updateMode = true; return _satResolver->doUpdate(); } PoolItemList Resolver::problematicUpdateItems() const { return _satResolver->problematicUpdateItems(); } void Resolver::addExtraRequire( const Capability & capability ) { _extra_requires.insert (capability); } void Resolver::removeExtraRequire( const Capability & capability ) { _extra_requires.erase (capability); } void Resolver::addExtraConflict( const Capability & capability ) { _extra_conflicts.insert (capability); } void Resolver::removeExtraConflict( const Capability & capability ) { _extra_conflicts.erase (capability); } void Resolver::removeQueueItem( SolverQueueItem_Ptr item ) { bool found = false; for (SolverQueueItemList::const_iterator iter = _added_queue_items.begin(); iter != _added_queue_items.end(); iter++) { if (*iter == item) { _added_queue_items.remove(*iter); found = true; break; } } if (!found) { _removed_queue_items.push_back (item); _removed_queue_items.unique (); } } void Resolver::addQueueItem( SolverQueueItem_Ptr item ) { bool found = false; for (SolverQueueItemList::const_iterator iter = _removed_queue_items.begin(); iter != _removed_queue_items.end(); iter++) { if (*iter == item) { _removed_queue_items.remove(*iter); found = true; break; } } if (!found) { _added_queue_items.push_back (item); _added_queue_items.unique (); } } void Resolver::addWeak( const PoolItem & item ) { _addWeak.push_back( item ); } //--------------------------------------------------------------------------- struct UndoTransact : public resfilter::PoolItemFilterFunctor { ResStatus::TransactByValue resStatus; UndoTransact ( const ResStatus::TransactByValue &status) :resStatus(status) { } bool operator()( PoolItem item ) // only transacts() items go here { item.status().resetTransact( resStatus );// clear any solver/establish transactions return true; } }; struct DoTransact : public resfilter::PoolItemFilterFunctor { ResStatus::TransactByValue resStatus; DoTransact ( const ResStatus::TransactByValue &status) :resStatus(status) { } bool operator()( PoolItem item ) // only transacts() items go here { item.status().setTransact( true, resStatus ); return true; } }; bool Resolver::verifySystem() { UndoTransact resetting (ResStatus::APPL_HIGH); DBG << "Resolver::verifySystem()" << endl; _verifying = true; invokeOnEach ( _pool.begin(), _pool.end(), resfilter::ByTransact( ), // Resetting all transcations functor::functorRef(resetting) ); return resolvePool(); } //---------------------------------------------------------------------------- // undo void Resolver::undo() { UndoTransact info(ResStatus::APPL_LOW); MIL << "*** undo ***" << endl; invokeOnEach ( _pool.begin(), _pool.end(), resfilter::ByTransact( ), // collect transacts from Pool to resolver queue functor::functorRef(info) ); // Regard dependencies of the item weak onl _addWeak.clear(); // Additional QueueItems which has to be regarded by the solver _removed_queue_items.clear(); _added_queue_items.clear(); return; } void Resolver::solverInit() { // Solving with libsolv static bool poolDumped = false; MIL << "-------------- Calling SAT Solver -------------------" << endl; if ( getenv("ZYPP_FULLLOG") ) { Testcase testcase("/var/log/YaST2/autoTestcase"); if (!poolDumped) { testcase.createTestcase (*this, true, false); // dump pool poolDumped = true; } else { testcase.createTestcase (*this, false, false); // write control file only } } _satResolver->setFixsystem ( isVerifyingMode() ); _satResolver->setIgnorealreadyrecommended ( ignoreAlreadyRecommended() ); _satResolver->setOnlyRequires ( onlyRequires() ); _satResolver->setUpdatesystem (_updateMode); _satResolver->setSolveSrcPackages ( solveSrcPackages() ); _satResolver->setCleandepsOnRemove ( cleandepsOnRemove() ); _satResolver->setDistupgrade (_upgradeMode); if (_upgradeMode) { // may overwrite some settings _satResolver->setDistupgrade_removeunsupported (false); } // Resetting additional solver information _isInstalledBy.clear(); _installs.clear(); _satifiedByInstalled.clear(); _installedSatisfied.clear(); } bool Resolver::resolvePool() { solverInit(); return _satResolver->resolvePool(_extra_requires, _extra_conflicts, _addWeak, _upgradeRepos ); } bool Resolver::resolveQueue( solver::detail::SolverQueueItemList & queue ) { solverInit(); // add/remove additional SolverQueueItems for (SolverQueueItemList::const_iterator iter = _removed_queue_items.begin(); iter != _removed_queue_items.end(); iter++) { for (SolverQueueItemList::const_iterator iterQueue = queue.begin(); iterQueue != queue.end(); iterQueue++) { if ( (*iterQueue)->cmp(*iter) == 0) { MIL << "remove from queue" << *iter; queue.remove(*iterQueue); break; } } } for (SolverQueueItemList::const_iterator iter = _added_queue_items.begin(); iter != _added_queue_items.end(); iter++) { bool found = false; for (SolverQueueItemList::const_iterator iterQueue = queue.begin(); iterQueue != queue.end(); iterQueue++) { if ( (*iterQueue)->cmp(*iter) == 0) { found = true; break; } } if (!found) { MIL << "add to queue" << *iter; queue.push_back(*iter); } } // The application has to take care to write these solutions back to e.g. selectables in order // give the user a chance for changing these decisions again. _removed_queue_items.clear(); _added_queue_items.clear(); return _satResolver->resolveQueue(queue, _addWeak); } sat::Transaction Resolver::getTransaction() { // FIXME: That's an ugly way of pushing autoInstalled into the transaction. sat::Transaction ret( sat::Transaction::loadFromPool ); ret.autoInstalled( _satResolver->autoInstalled() ); return ret; } //---------------------------------------------------------------------------- // Getting more information about the solve results ResolverProblemList Resolver::problems() const { MIL << "Resolver::problems()" << endl; return _satResolver->problems(); } void Resolver::applySolutions( const ProblemSolutionList & solutions ) { for ( ProblemSolution_Ptr solution : solutions ) { if ( ! applySolution( *solution ) ) break; } } bool Resolver::applySolution( const ProblemSolution & solution ) { bool ret = true; DBG << "apply solution " << solution << endl; for ( SolutionAction_Ptr action : solution.actions() ) { if ( ! action->execute( *this ) ) { WAR << "apply solution action failed: " << action << endl; ret = false; break; } } return ret; } //---------------------------------------------------------------------------- void Resolver::collectResolverInfo() { if ( _satResolver && _isInstalledBy.empty() && _installs.empty()) { // generating new PoolItemList itemsToInstall = _satResolver->resultItemsToInstall(); for (PoolItemList::const_iterator instIter = itemsToInstall.begin(); instIter != itemsToInstall.end(); instIter++) { // Requires for (Capabilities::const_iterator capIt = (*instIter)->dep (Dep::REQUIRES).begin(); capIt != (*instIter)->dep (Dep::REQUIRES).end(); ++capIt) { sat::WhatProvides possibleProviders(*capIt); for_( iter, possibleProviders.begin(), possibleProviders.end() ) { PoolItem provider = ResPool::instance().find( *iter ); // searching if this provider will already be installed bool found = false; bool alreadySetForInstallation = false; ItemCapKindMap::const_iterator pos = _isInstalledBy.find(provider); while (pos != _isInstalledBy.end() && pos->first == provider && !found) { alreadySetForInstallation = true; ItemCapKind capKind = pos->second; if (capKind.item() == *instIter) found = true; pos++; } if (!found && provider.status().isToBeInstalled()) { if (provider.status().isBySolver()) { ItemCapKind capKindisInstalledBy( *instIter, *capIt, Dep::REQUIRES, !alreadySetForInstallation ); _isInstalledBy.insert (make_pair( provider, capKindisInstalledBy)); } else { // no initial installation cause it has been set be e.g. user ItemCapKind capKindisInstalledBy( *instIter, *capIt, Dep::REQUIRES, false ); _isInstalledBy.insert (make_pair( provider, capKindisInstalledBy)); } ItemCapKind capKindisInstalledBy( provider, *capIt, Dep::REQUIRES, !alreadySetForInstallation ); _installs.insert (make_pair( *instIter, capKindisInstalledBy)); } if (provider.status().staysInstalled()) { // Is already satisfied by an item which is installed ItemCapKind capKindisInstalledBy( provider, *capIt, Dep::REQUIRES, false ); _satifiedByInstalled.insert (make_pair( *instIter, capKindisInstalledBy)); ItemCapKind installedSatisfied( *instIter, *capIt, Dep::REQUIRES, false ); _installedSatisfied.insert (make_pair( provider, installedSatisfied)); } } } if (!(_satResolver->onlyRequires())) { //Recommends for (Capabilities::const_iterator capIt = (*instIter)->dep (Dep::RECOMMENDS).begin(); capIt != (*instIter)->dep (Dep::RECOMMENDS).end(); ++capIt) { sat::WhatProvides possibleProviders(*capIt); for_( iter, possibleProviders.begin(), possibleProviders.end() ) { PoolItem provider = ResPool::instance().find( *iter ); // searching if this provider will already be installed bool found = false; bool alreadySetForInstallation = false; ItemCapKindMap::const_iterator pos = _isInstalledBy.find(provider); while (pos != _isInstalledBy.end() && pos->first == provider && !found) { alreadySetForInstallation = true; ItemCapKind capKind = pos->second; if (capKind.item() == *instIter) found = true; pos++; } if (!found && provider.status().isToBeInstalled()) { if (provider.status().isBySolver()) { ItemCapKind capKindisInstalledBy( *instIter, *capIt, Dep::RECOMMENDS, !alreadySetForInstallation ); _isInstalledBy.insert (make_pair( provider, capKindisInstalledBy)); } else { // no initial installation cause it has been set be e.g. user ItemCapKind capKindisInstalledBy( *instIter, *capIt, Dep::RECOMMENDS, false ); _isInstalledBy.insert (make_pair( provider, capKindisInstalledBy)); } ItemCapKind capKindisInstalledBy( provider, *capIt, Dep::RECOMMENDS, !alreadySetForInstallation ); _installs.insert (make_pair( *instIter, capKindisInstalledBy)); } if (provider.status().staysInstalled()) { // Is already satisfied by an item which is installed ItemCapKind capKindisInstalledBy( provider, *capIt, Dep::RECOMMENDS, false ); _satifiedByInstalled.insert (make_pair( *instIter, capKindisInstalledBy)); ItemCapKind installedSatisfied( *instIter, *capIt, Dep::RECOMMENDS, false ); _installedSatisfied.insert (make_pair( provider, installedSatisfied)); } } } //Supplements for (Capabilities::const_iterator capIt = (*instIter)->dep (Dep::SUPPLEMENTS).begin(); capIt != (*instIter)->dep (Dep::SUPPLEMENTS).end(); ++capIt) { sat::WhatProvides possibleProviders(*capIt); for_( iter, possibleProviders.begin(), possibleProviders.end() ) { PoolItem provider = ResPool::instance().find( *iter ); // searching if this item will already be installed bool found = false; bool alreadySetForInstallation = false; ItemCapKindMap::const_iterator pos = _isInstalledBy.find(*instIter); while (pos != _isInstalledBy.end() && pos->first == *instIter && !found) { alreadySetForInstallation = true; ItemCapKind capKind = pos->second; if (capKind.item() == provider) found = true; pos++; } if (!found && instIter->status().isToBeInstalled()) { if (instIter->status().isBySolver()) { ItemCapKind capKindisInstalledBy( provider, *capIt, Dep::SUPPLEMENTS, !alreadySetForInstallation ); _isInstalledBy.insert (make_pair( *instIter, capKindisInstalledBy)); } else { // no initial installation cause it has been set be e.g. user ItemCapKind capKindisInstalledBy( provider, *capIt, Dep::SUPPLEMENTS, false ); _isInstalledBy.insert (make_pair( *instIter, capKindisInstalledBy)); } ItemCapKind capKindisInstalledBy( *instIter, *capIt, Dep::SUPPLEMENTS, !alreadySetForInstallation ); _installs.insert (make_pair( provider, capKindisInstalledBy)); } if (instIter->status().staysInstalled()) { // Is already satisfied by an item which is installed ItemCapKind capKindisInstalledBy( *instIter, *capIt, Dep::SUPPLEMENTS, !alreadySetForInstallation ); _satifiedByInstalled.insert (make_pair( provider, capKindisInstalledBy)); ItemCapKind installedSatisfied( provider, *capIt, Dep::SUPPLEMENTS, false ); _installedSatisfied.insert (make_pair( *instIter, installedSatisfied)); } } } } } } } ItemCapKindList Resolver::isInstalledBy( const PoolItem & item ) { ItemCapKindList ret; collectResolverInfo(); for (ItemCapKindMap::const_iterator iter = _isInstalledBy.find(item); iter != _isInstalledBy.end();) { ItemCapKind info = iter->second; PoolItem iterItem = iter->first; if (iterItem == item) { ret.push_back(info); iter++; } else { // exit iter = _isInstalledBy.end(); } } return ret; } ItemCapKindList Resolver::installs( const PoolItem & item ) { ItemCapKindList ret; collectResolverInfo(); for (ItemCapKindMap::const_iterator iter = _installs.find(item); iter != _installs.end();) { ItemCapKind info = iter->second; PoolItem iterItem = iter->first; if (iterItem == item) { ret.push_back(info); iter++; } else { // exit iter = _installs.end(); } } return ret; } ItemCapKindList Resolver::satifiedByInstalled( const PoolItem & item ) { ItemCapKindList ret; collectResolverInfo(); for (ItemCapKindMap::const_iterator iter = _satifiedByInstalled.find(item); iter != _satifiedByInstalled.end();) { ItemCapKind info = iter->second; PoolItem iterItem = iter->first; if (iterItem == item) { ret.push_back(info); iter++; } else { // exit iter = _satifiedByInstalled.end(); } } return ret; } ItemCapKindList Resolver::installedSatisfied( const PoolItem & item ) { ItemCapKindList ret; collectResolverInfo(); for (ItemCapKindMap::const_iterator iter = _installedSatisfied.find(item); iter != _installedSatisfied.end();) { ItemCapKind info = iter->second; PoolItem iterItem = iter->first; if (iterItem == item) { ret.push_back(info); iter++; } else { // exit iter = _installedSatisfied.end(); } } return ret; } /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/Resolver.h000066400000000000000000000215351334444677500210560ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* Resolver.h * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_RESOLVER_H #define ZYPP_SOLVER_DETAIL_RESOLVER_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include #include #include #include #include "zypp/ResPool.h" #include "zypp/TriBool.h" #include "zypp/base/SerialNumber.h" #include "zypp/base/NonCopyable.h" #include "zypp/ProblemTypes.h" #include "zypp/ResolverProblem.h" #include "zypp/ProblemSolution.h" #include "zypp/Capabilities.h" #include "zypp/Capability.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { namespace sat { class Transaction; } /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// namespace detail { class SATResolver; typedef std::list PoolItemList; typedef std::set PoolItemSet; /////////////////////////////////////////////////////////////////// // // CLASS NAME : Resolver /** A mid layer class we should remove * \todo Merge this and class SATResolver. Logic and date are horribly * distributed between this and SATResolver. Either SATResolver becomes * a pure wrapper adapting the libsolv C interface to fit our needs, and * all the solver logic and problem handling goes here; or completely merge * both classes. */ class Resolver : private base::NonCopyable { typedef std::multimap ItemCapKindMap; private: ResPool _pool; SATResolver *_satResolver; SerialNumberWatcher _poolchanged; CapabilitySet _extra_requires; CapabilitySet _extra_conflicts; std::set _upgradeRepos; // Regard dependencies of the item weak onl PoolItemList _addWeak; /** \name Solver flags */ //@{ bool _upgradeMode; // Resolver has been called with doUpgrade bool _updateMode; // Resolver has been called with doUpdate bool _verifying; // The system will be checked bool _onlyRequires; // do install required resolvables only // no recommended resolvables, language // packages, hardware packages (modalias) bool _solveSrcPackages; // whether to generate solver jobs for selected source packges. bool _cleandepsOnRemove; // whether removing a package should also remove no longer needed requirements bool _ignoreAlreadyRecommended; //ignore recommended packages that have already been recommended by the installed packages //@} // Additional QueueItems which has to be regarded by the solver // This will be used e.g. by solution actions solver::detail::SolverQueueItemList _removed_queue_items; solver::detail::SolverQueueItemList _added_queue_items; // Additional information about the solverrun ItemCapKindMap _isInstalledBy; ItemCapKindMap _installs; ItemCapKindMap _satifiedByInstalled; ItemCapKindMap _installedSatisfied; // helpers void collectResolverInfo(); // Unmaintained packages which does not fit to the updated system // (broken dependencies) will be deleted. // returns true if solving was successful bool checkUnmaintainedItems (); void solverInit(); public: Resolver( const ResPool & pool ); virtual ~Resolver(); // ---------------------------------- I/O std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<( std::ostream& str, const Resolver & obj ) { return obj.dumpOn (str); } // ---------------------------------- methods ResPool pool() const; void setPool( const ResPool & pool ) { _pool = pool; } void addUpgradeRepo( Repository repo_r ) { if ( repo_r && ! repo_r.isSystemRepo() ) _upgradeRepos.insert( repo_r ); } bool upgradingRepo( Repository repo_r ) const { return( _upgradeRepos.find( repo_r ) != _upgradeRepos.end() ); } void removeUpgradeRepo( Repository repo_r ) { _upgradeRepos.erase( repo_r ); } void removeUpgradeRepos() { _upgradeRepos.clear(); } const std::set & upgradeRepos() const { return _upgradeRepos; } void addExtraRequire( const Capability & capability ); void removeExtraRequire( const Capability & capability ); void addExtraConflict( const Capability & capability ); void removeExtraConflict( const Capability & capability ); void removeQueueItem( SolverQueueItem_Ptr item ); void addQueueItem( SolverQueueItem_Ptr item ); CapabilitySet extraRequires() const { return _extra_requires; } CapabilitySet extraConflicts() const { return _extra_conflicts; } void addWeak( const PoolItem & item ); bool verifySystem(); bool resolvePool(); bool resolveQueue( SolverQueueItemList & queue ); void doUpdate(); bool doUpgrade(); PoolItemList problematicUpdateItems() const; /** \name Solver flags */ //@{ bool ignoreAlreadyRecommended() const { return _ignoreAlreadyRecommended; } void setIgnoreAlreadyRecommended( bool yesno_r ) { _ignoreAlreadyRecommended = yesno_r; } bool onlyRequires () const { return _onlyRequires; } void setOnlyRequires( TriBool state_r ); bool isUpgradeMode() const { return _upgradeMode; }// Resolver has been called with doUpgrade void setUpgradeMode( bool yesno_r ) { _upgradeMode = yesno_r; } bool isUpdateMode() const { return _updateMode; } // Resolver has been called with doUpdate void setUpdateMode( bool yesno_r ) { _updateMode = yesno_r; } bool isVerifyingMode() const { return _verifying; } // The system will be checked void setVerifyingMode( TriBool state_r ) { _verifying = indeterminate(state_r) ? false : bool(state_r); } bool solveSrcPackages() const { return _solveSrcPackages; } void setSolveSrcPackages( TriBool state_r ) { _solveSrcPackages = indeterminate(state_r) ? false : bool(state_r); } bool cleandepsOnRemove() const { return _cleandepsOnRemove; } void setCleandepsOnRemove( TriBool state_r ); //@} #define ZOLV_FLAG_TRIBOOL( ZSETTER, ZGETTER ) \ void ZSETTER( TriBool state_r ); \ bool ZGETTER() const; \ ZOLV_FLAG_TRIBOOL( setForceResolve, forceResolve ) ZOLV_FLAG_TRIBOOL( setAllowDowngrade, allowDowngrade ) ZOLV_FLAG_TRIBOOL( setAllowNameChange, allowNameChange ) ZOLV_FLAG_TRIBOOL( setAllowArchChange, allowArchChange ) ZOLV_FLAG_TRIBOOL( setAllowVendorChange, allowVendorChange ) ZOLV_FLAG_TRIBOOL( dupSetAllowDowngrade, dupAllowDowngrade ) ZOLV_FLAG_TRIBOOL( dupSetAllowNameChange, dupAllowNameChange ) ZOLV_FLAG_TRIBOOL( dupSetAllowArchChange, dupAllowArchChange ) ZOLV_FLAG_TRIBOOL( dupSetAllowVendorChange, dupAllowVendorChange ) #undef ZOLV_FLAG_TRIBOOL ResolverProblemList problems() const; void applySolutions( const ProblemSolutionList & solutions ); bool applySolution( const ProblemSolution & solution ); // Return the Transaction computed by the last solver run. sat::Transaction getTransaction(); // reset all SOLVER transaction in pool void undo(); void reset( bool keepExtras = false ); // Get more information about the solverrun // Which item will be installed by another item or triggers an item for // installation ItemCapKindList isInstalledBy( const PoolItem & item ); ItemCapKindList installs( const PoolItem & item ); ItemCapKindList satifiedByInstalled (const PoolItem & item ); ItemCapKindList installedSatisfied( const PoolItem & item ); }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_RESOLVER_H libzypp-17.7.0/zypp/solver/detail/SATResolver.cc000066400000000000000000001521541334444677500215660ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SATResolver.cc * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include #include #include #include #include #include #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/String.h" #include "zypp/Product.h" #include "zypp/Capability.h" #include "zypp/ResStatus.h" #include "zypp/VendorAttr.h" #include "zypp/base/LogTools.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" #include "zypp/base/Algorithm.h" #include "zypp/ResPool.h" #include "zypp/ResFilters.h" #include "zypp/ZConfig.h" #include "zypp/sat/Pool.h" #include "zypp/sat/WhatProvides.h" #include "zypp/sat/WhatObsoletes.h" #include "zypp/solver/detail/Resolver.h" #include "zypp/solver/detail/SATResolver.h" #include "zypp/solver/detail/ProblemSolutionCombi.h" #include "zypp/solver/detail/ProblemSolutionIgnore.h" #include "zypp/solver/detail/SolverQueueItemInstall.h" #include "zypp/solver/detail/SolverQueueItemDelete.h" #include "zypp/solver/detail/SystemCheck.h" #include "zypp/solver/detail/SolutionAction.h" #include "zypp/solver/detail/SolverQueueItem.h" #include "zypp/sat/Transaction.h" #include "zypp/sat/Queue.h" #include "zypp/sat/detail/PoolImpl.h" #define XDEBUG(x) do { if (base::logger::isExcessive()) XXX << x << std::endl;} while (0) ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// namespace env { inline bool HACKENV( const char * var_r, bool default_r ) { bool ret = default_r; const char * val = ::getenv( var_r ); if ( val ) { ret = str::strToBool( val, default_r ); if ( ret != default_r ) INT << "HACKENV " << var_r << " = " << ret << endl; } return ret; } } // namespace env ///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SATResolver); #define MAYBE_CLEANDEPS (cleandepsOnRemove()?SOLVER_CLEANDEPS:0) //--------------------------------------------------------------------------- // Callbacks for SAT policies //--------------------------------------------------------------------------- int vendorCheck( sat::detail::CPool *pool, Solvable *solvable1, Solvable *solvable2 ) { return VendorAttr::instance().equivalent( IdString(solvable1->vendor), IdString(solvable2->vendor) ) ? 0 : 1; } inline std::string itemToString( const PoolItem & item ) { if ( !item ) return std::string(); sat::Solvable slv( item.satSolvable() ); std::string ret( slv.asString() ); // n-v-r.a if ( ! slv.isSystem() ) { ret += "["; ret += slv.repository().alias(); ret += "]"; } return ret; } inline PoolItem getPoolItem( Id id_r ) { PoolItem ret( (sat::Solvable( id_r )) ); if ( !ret && id_r ) INT << "id " << id_r << " not found in ZYPP pool." << endl; return ret; } //--------------------------------------------------------------------------- std::ostream & SATResolver::dumpOn( std::ostream & os ) const { os << "" << endl; if (_satSolver) { #define OUTS(X) os << " " << #X << "\t= " << solver_get_flag(_satSolver, SOLVER_FLAG_##X) << endl OUTS( ALLOW_DOWNGRADE ); OUTS( ALLOW_ARCHCHANGE ); OUTS( ALLOW_VENDORCHANGE ); OUTS( ALLOW_NAMECHANGE ); OUTS( ALLOW_UNINSTALL ); OUTS( NO_UPDATEPROVIDE ); OUTS( SPLITPROVIDES ); OUTS( IGNORE_RECOMMENDED ); OUTS( ADD_ALREADY_RECOMMENDED ); OUTS( NO_INFARCHCHECK ); OUTS( KEEP_EXPLICIT_OBSOLETES ); OUTS( BEST_OBEY_POLICY ); OUTS( NO_AUTOTARGET ); OUTS( DUP_ALLOW_DOWNGRADE ); OUTS( DUP_ALLOW_ARCHCHANGE ); OUTS( DUP_ALLOW_VENDORCHANGE ); OUTS( DUP_ALLOW_NAMECHANGE ); OUTS( KEEP_ORPHANS ); OUTS( BREAK_ORPHANS ); OUTS( FOCUS_INSTALLED ); OUTS( YUM_OBSOLETES ); #undef OUTS os << " distupgrade = " << _distupgrade << endl; os << " distupgrade_removeunsupported = " << _distupgrade_removeunsupported << endl; os << " solveSrcPackages = " << _solveSrcPackages << endl; os << " cleandepsOnRemove = " << _cleandepsOnRemove << endl; os << " fixsystem = " << _fixsystem << endl; } else { os << ""; } return os << "" << endl; } //--------------------------------------------------------------------------- // NOTE: flag defaults must be in sync with ZVARDEFAULT in Resolver.cc SATResolver::SATResolver (const ResPool & pool, sat::detail::CPool *satPool) : _pool(pool) , _satPool(satPool) , _satSolver(NULL) , _fixsystem(false) , _allowdowngrade ( false ) , _allownamechange ( true ) // bsc#1071466 , _allowarchchange ( false ) , _allowvendorchange ( ZConfig::instance().solver_allowVendorChange() ) , _allowuninstall ( false ) , _updatesystem(false) , _noupdateprovide ( false ) , _dosplitprovides ( true ) , _onlyRequires(ZConfig::instance().solver_onlyRequires()) , _ignorealreadyrecommended(true) , _distupgrade(false) , _distupgrade_removeunsupported(false) , _dup_allowdowngrade ( ZConfig::instance().solver_dupAllowDowngrade() ) , _dup_allownamechange ( ZConfig::instance().solver_dupAllowNameChange() ) , _dup_allowarchchange ( ZConfig::instance().solver_dupAllowArchChange() ) , _dup_allowvendorchange ( ZConfig::instance().solver_dupAllowVendorChange() ) , _solveSrcPackages(false) , _cleandepsOnRemove(ZConfig::instance().solver_cleandepsOnRemove()) { } SATResolver::~SATResolver() { solverEnd(); } //--------------------------------------------------------------------------- ResPool SATResolver::pool (void) const { return _pool; } //--------------------------------------------------------------------------- // copy marked item from solution back to pool // if data != NULL, set as APPL_LOW (from establishPool()) static void SATSolutionToPool (PoolItem item, const ResStatus & status, const ResStatus::TransactByValue causer) { // resetting item.status().resetTransact (causer); item.status().resetWeak (); bool r; // installation/deletion if (status.isToBeInstalled()) { r = item.status().setToBeInstalled (causer); XDEBUG("SATSolutionToPool install returns " << item << ", " << r); } else if (status.isToBeUninstalledDueToUpgrade()) { r = item.status().setToBeUninstalledDueToUpgrade (causer); XDEBUG("SATSolutionToPool upgrade returns " << item << ", " << r); } else if (status.isToBeUninstalled()) { r = item.status().setToBeUninstalled (causer); XDEBUG("SATSolutionToPool remove returns " << item << ", " << r); } return; } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // resolvePool //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- ///////////////////////////////////////////////////////////////////////// /// \class SATCollectTransact /// \brief Commit helper functor distributing PoolItem by status into lists /// /// On the fly it clears all PoolItem bySolver/ByApplLow status. /// The lists are cleared in the Ctor, populated by \ref operator(). ///////////////////////////////////////////////////////////////////////// struct SATCollectTransact : public resfilter::PoolItemFilterFunctor { SATCollectTransact( PoolItemList & items_to_install_r, PoolItemList & items_to_remove_r, PoolItemList & items_to_lock_r, PoolItemList & items_to_keep_r, bool solveSrcPackages_r ) : _items_to_install( items_to_install_r ) , _items_to_remove( items_to_remove_r ) , _items_to_lock( items_to_lock_r ) , _items_to_keep( items_to_keep_r ) , _solveSrcPackages( solveSrcPackages_r ) { _items_to_install.clear(); _items_to_remove.clear(); _items_to_lock.clear(); _items_to_keep.clear(); } bool operator()( const PoolItem & item_r ) { ResStatus & itemStatus( item_r.status() ); bool by_solver = ( itemStatus.isBySolver() || itemStatus.isByApplLow() ); if ( by_solver ) { // Clear former solver/establish resultd itemStatus.resetTransact( ResStatus::APPL_LOW ); return true; // -> back out here, don't re-queue former results } if ( !_solveSrcPackages && item_r.isKind() ) { // Later we may continue on a per source package base. return true; // dont process this source package. } switch ( itemStatus.getTransactValue() ) { case ResStatus::TRANSACT: itemStatus.isUninstalled() ? _items_to_install.push_back( item_r ) : _items_to_remove.push_back( item_r ); break; case ResStatus::LOCKED: _items_to_lock.push_back( item_r ); break; case ResStatus::KEEP_STATE: _items_to_keep.push_back( item_r ); break; } return true; } private: PoolItemList & _items_to_install; PoolItemList & _items_to_remove; PoolItemList & _items_to_lock; PoolItemList & _items_to_keep; bool _solveSrcPackages; }; ///////////////////////////////////////////////////////////////////////// //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // solving..... //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- class CheckIfUpdate : public resfilter::PoolItemFilterFunctor { public: bool is_updated; sat::Solvable _installed; CheckIfUpdate( const sat::Solvable & installed_r ) : is_updated( false ) , _installed( installed_r ) {} // check this item will be updated bool operator()( const PoolItem & item ) { if ( item.status().isToBeInstalled() ) { if ( ! item.multiversionInstall() || sameNVRA( _installed, item ) ) { is_updated = true; return false; } } return true; } }; class CollectPseudoInstalled : public resfilter::PoolItemFilterFunctor { public: Queue *solvableQueue; CollectPseudoInstalled( Queue *queue ) :solvableQueue (queue) {} // collecting PseudoInstalled items bool operator()( PoolItem item ) { if ( traits::isPseudoInstalled( item.satSolvable().kind() ) ) queue_push( solvableQueue, item.satSolvable().id() ); return true; } }; bool SATResolver::solving(const CapabilitySet & requires_caps, const CapabilitySet & conflict_caps) { _satSolver = solver_create( _satPool ); ::pool_set_custom_vendorcheck( _satPool, &vendorCheck ); if (_fixsystem) { queue_push( &(_jobQueue), SOLVER_VERIFY|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } if (_updatesystem) { queue_push( &(_jobQueue), SOLVER_UPDATE|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } if (_distupgrade) { queue_push( &(_jobQueue), SOLVER_DISTUPGRADE|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } if (_distupgrade_removeunsupported) { queue_push( &(_jobQueue), SOLVER_DROP_ORPHANED|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } solver_set_flag(_satSolver, SOLVER_FLAG_ADD_ALREADY_RECOMMENDED, !_ignorealreadyrecommended); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_DOWNGRADE, _allowdowngrade); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_NAMECHANGE, _allownamechange); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_ARCHCHANGE, _allowarchchange); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_VENDORCHANGE, _allowvendorchange); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_UNINSTALL, _allowuninstall); solver_set_flag(_satSolver, SOLVER_FLAG_NO_UPDATEPROVIDE, _noupdateprovide); solver_set_flag(_satSolver, SOLVER_FLAG_SPLITPROVIDES, _dosplitprovides); solver_set_flag(_satSolver, SOLVER_FLAG_IGNORE_RECOMMENDED, _onlyRequires); solver_set_flag(_satSolver, SOLVER_FLAG_DUP_ALLOW_DOWNGRADE, _dup_allowdowngrade ); solver_set_flag(_satSolver, SOLVER_FLAG_DUP_ALLOW_NAMECHANGE, _dup_allownamechange ); solver_set_flag(_satSolver, SOLVER_FLAG_DUP_ALLOW_ARCHCHANGE, _dup_allowarchchange ); solver_set_flag(_satSolver, SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE, _dup_allowvendorchange ); #if 1 #define HACKENV(X,D) solver_set_flag(_satSolver, X, env::HACKENV( #X, D ) ); HACKENV( SOLVER_FLAG_DUP_ALLOW_DOWNGRADE, _dup_allowdowngrade ); HACKENV( SOLVER_FLAG_DUP_ALLOW_NAMECHANGE, _dup_allownamechange ); HACKENV( SOLVER_FLAG_DUP_ALLOW_ARCHCHANGE, _dup_allowarchchange ); HACKENV( SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE,_dup_allowvendorchange ); #undef HACKENV #endif sat::Pool::instance().prepare(); // Solve ! MIL << "Starting solving...." << endl; MIL << *this; solver_solve( _satSolver, &(_jobQueue) ); MIL << "....Solver end" << endl; // copying solution back to zypp pool //----------------------------------------- _result_items_to_install.clear(); _result_items_to_remove.clear(); /* solvables to be installed */ Queue decisionq; queue_init(&decisionq); solver_get_decisionqueue(_satSolver, &decisionq); for ( int i = 0; i < decisionq.count; ++i ) { sat::Solvable slv( decisionq.elements[i] ); if ( !slv || slv.isSystem() ) continue; PoolItem poolItem( slv ); SATSolutionToPool (poolItem, ResStatus::toBeInstalled, ResStatus::SOLVER); _result_items_to_install.push_back( poolItem ); } queue_free(&decisionq); /* solvables to be erased */ Repository systemRepo( sat::Pool::instance().findSystemRepo() ); // don't create if it does not exist if ( systemRepo && ! systemRepo.solvablesEmpty() ) { bool mustCheckObsoletes = false; for_( it, systemRepo.solvablesBegin(), systemRepo.solvablesEnd() ) { if (solver_get_decisionlevel(_satSolver, it->id()) > 0) continue; // Check if this is an update CheckIfUpdate info( *it ); PoolItem poolItem( *it ); invokeOnEach( _pool.byIdentBegin( poolItem ), _pool.byIdentEnd( poolItem ), resfilter::ByUninstalled(), // ByUninstalled functor::functorRef (info) ); if (info.is_updated) { SATSolutionToPool( poolItem, ResStatus::toBeUninstalledDueToUpgrade, ResStatus::SOLVER ); } else { SATSolutionToPool( poolItem, ResStatus::toBeUninstalled, ResStatus::SOLVER ); if ( ! mustCheckObsoletes ) mustCheckObsoletes = true; // lazy check for UninstalledDueToObsolete } _result_items_to_remove.push_back (poolItem); } if ( mustCheckObsoletes ) { sat::WhatObsoletes obsoleted( _result_items_to_install.begin(), _result_items_to_install.end() ); for_( it, obsoleted.poolItemBegin(), obsoleted.poolItemEnd() ) { ResStatus & status( it->status() ); // WhatObsoletes contains installed items only! if ( status.transacts() && ! status.isToBeUninstalledDueToUpgrade() ) status.setToBeUninstalledDueToObsolete(); } } } Queue recommendations; Queue suggestions; Queue orphaned; Queue unneeded; queue_init(&recommendations); queue_init(&suggestions); queue_init(&orphaned); queue_init(&unneeded); solver_get_recommendations(_satSolver, &recommendations, &suggestions, 0); solver_get_orphaned(_satSolver, &orphaned); solver_get_unneeded(_satSolver, &unneeded, 1); /* solvables which are recommended */ for ( int i = 0; i < recommendations.count; ++i ) { PoolItem poolItem( getPoolItem( recommendations.elements[i] ) ); poolItem.status().setRecommended( true ); } /* solvables which are suggested */ for ( int i = 0; i < suggestions.count; ++i ) { PoolItem poolItem( getPoolItem( suggestions.elements[i] ) ); poolItem.status().setSuggested( true ); } _problem_items.clear(); /* solvables which are orphaned */ for ( int i = 0; i < orphaned.count; ++i ) { PoolItem poolItem( getPoolItem( orphaned.elements[i] ) ); poolItem.status().setOrphaned( true ); _problem_items.push_back( poolItem ); } /* solvables which are unneeded */ for ( int i = 0; i < unneeded.count; ++i ) { PoolItem poolItem( getPoolItem( unneeded.elements[i] ) ); poolItem.status().setUnneeded( true ); } queue_free(&recommendations); queue_free(&suggestions); queue_free(&orphaned); queue_free(&unneeded); /* Write validation state back to pool */ Queue flags, solvableQueue; queue_init(&flags); queue_init(&solvableQueue); CollectPseudoInstalled collectPseudoInstalled(&solvableQueue); invokeOnEach( _pool.begin(), _pool.end(), functor::functorRef (collectPseudoInstalled) ); solver_trivial_installable(_satSolver, &solvableQueue, &flags ); for (int i = 0; i < solvableQueue.count; i++) { PoolItem item = _pool.find (sat::Solvable(solvableQueue.elements[i])); item.status().setUndetermined(); if (flags.elements[i] == -1) { item.status().setNonRelevant(); XDEBUG("SATSolutionToPool(" << item << " ) nonRelevant !"); } else if (flags.elements[i] == 1) { item.status().setSatisfied(); XDEBUG("SATSolutionToPool(" << item << " ) satisfied !"); } else if (flags.elements[i] == 0) { item.status().setBroken(); XDEBUG("SATSolutionToPool(" << item << " ) broken !"); } } queue_free(&(solvableQueue)); queue_free(&flags); // Solvables which were selected due requirements which have been made by the user will // be selected by APPL_LOW. We can't use any higher level, because this setting must // not serve as a request for the next solver run. APPL_LOW is reset before solving. for (CapabilitySet::const_iterator iter = requires_caps.begin(); iter != requires_caps.end(); iter++) { sat::WhatProvides rpmProviders(*iter); for_( iter2, rpmProviders.begin(), rpmProviders.end() ) { PoolItem poolItem(*iter2); if (poolItem.status().isToBeInstalled()) { MIL << "User requirement " << *iter << " sets " << poolItem << endl; poolItem.status().setTransactByValue (ResStatus::APPL_LOW); } } } for (CapabilitySet::const_iterator iter = conflict_caps.begin(); iter != conflict_caps.end(); iter++) { sat::WhatProvides rpmProviders(*iter); for_( iter2, rpmProviders.begin(), rpmProviders.end() ) { PoolItem poolItem(*iter2); if (poolItem.status().isToBeUninstalled()) { MIL << "User conflict " << *iter << " sets " << poolItem << endl; poolItem.status().setTransactByValue (ResStatus::APPL_LOW); } } } if (solver_problem_count(_satSolver) > 0 ) { ERR << "Solverrun finished with an ERROR" << endl; return false; } return true; } void SATResolver::solverInit(const PoolItemList & weakItems) { MIL << "SATResolver::solverInit()" << endl; // remove old stuff solverEnd(); queue_init( &_jobQueue ); // clear and rebuild: _items_to_install, _items_to_remove, _items_to_lock, _items_to_keep { SATCollectTransact collector( _items_to_install, _items_to_remove, _items_to_lock, _items_to_keep, solveSrcPackages() ); invokeOnEach ( _pool.begin(), _pool.end(), functor::functorRef( collector ) ); } for (PoolItemList::const_iterator iter = weakItems.begin(); iter != weakItems.end(); iter++) { Id id = (*iter)->satSolvable().id(); if (id == ID_NULL) { ERR << "Weaken: " << *iter << " not found" << endl; } MIL << "Weaken dependencies of " << *iter << endl; queue_push( &(_jobQueue), SOLVER_WEAKENDEPS | SOLVER_SOLVABLE ); queue_push( &(_jobQueue), id ); } // Ad rules for changed requestedLocales const auto & trackedLocaleIds( myPool().trackedLocaleIds() ); for ( const auto & locale : trackedLocaleIds.added() ) { queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES ); queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); } for ( const auto & locale : trackedLocaleIds.removed() ) { queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | SOLVER_CLEANDEPS ); // needs uncond. SOLVER_CLEANDEPS! queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); } // Add rules for parallel installable resolvables with different versions for ( const sat::Solvable & solv : myPool().multiversionList() ) { queue_push( &(_jobQueue), SOLVER_NOOBSOLETES | SOLVER_SOLVABLE ); queue_push( &(_jobQueue), solv.id() ); } ::pool_add_userinstalled_jobs(_satPool, sat::Pool::instance().autoInstalled(), &(_jobQueue), GET_USERINSTALLED_NAMES|GET_USERINSTALLED_INVERTED); if ( _distupgrade ) { if ( ZConfig::instance().solverUpgradeRemoveDroppedPackages() ) { MIL << "Checking droplists ..." << endl; // Dropped packages: look for 'weakremover()' provides // in dup candidates of installed products. ResPoolProxy proxy( ResPool::instance().proxy() ); for_( it, proxy.byKindBegin(), proxy.byKindEnd() ) { if ( (*it)->onSystem() ) // (to install) or (not to delete) { Product::constPtr prodCand( (*it)->candidateAsKind() ); if ( ! prodCand ) continue; // product no longer available CapabilitySet droplist( prodCand->droplist() ); dumpRangeLine( MIL << "Droplist for " << (*it)->candidateObj() << ": " << droplist.size() << " ", droplist.begin(), droplist.end() ) << endl; for_( cap, droplist.begin(), droplist.end() ) { queue_push( &_jobQueue, SOLVER_DROP_ORPHANED | SOLVER_SOLVABLE_NAME ); queue_push( &_jobQueue, cap->id() ); } } } } else { MIL << "Droplist processing is disabled." << endl; } } } void SATResolver::solverEnd() { // cleanup if ( _satSolver ) { solver_free(_satSolver); _satSolver = NULL; queue_free( &(_jobQueue) ); } } bool SATResolver::resolvePool(const CapabilitySet & requires_caps, const CapabilitySet & conflict_caps, const PoolItemList & weakItems, const std::set & upgradeRepos) { MIL << "SATResolver::resolvePool()" << endl; // initialize solverInit(weakItems); for (PoolItemList::const_iterator iter = _items_to_install.begin(); iter != _items_to_install.end(); iter++) { Id id = (*iter)->satSolvable().id(); if (id == ID_NULL) { ERR << "Install: " << *iter << " not found" << endl; } else { MIL << "Install " << *iter << endl; queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE ); queue_push( &(_jobQueue), id ); } } for (PoolItemList::const_iterator iter = _items_to_remove.begin(); iter != _items_to_remove.end(); iter++) { Id id = (*iter)->satSolvable().id(); if (id == ID_NULL) { ERR << "Delete: " << *iter << " not found" << endl; } else { MIL << "Delete " << *iter << endl; queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE | MAYBE_CLEANDEPS ); queue_push( &(_jobQueue), id); } } for_( iter, upgradeRepos.begin(), upgradeRepos.end() ) { queue_push( &(_jobQueue), SOLVER_DISTUPGRADE | SOLVER_SOLVABLE_REPO ); queue_push( &(_jobQueue), iter->get()->repoid ); MIL << "Upgrade repo " << *iter << endl; } for (CapabilitySet::const_iterator iter = requires_caps.begin(); iter != requires_caps.end(); iter++) { queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES ); queue_push( &(_jobQueue), iter->id() ); MIL << "Requires " << *iter << endl; } for (CapabilitySet::const_iterator iter = conflict_caps.begin(); iter != conflict_caps.end(); iter++) { queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | MAYBE_CLEANDEPS ); queue_push( &(_jobQueue), iter->id() ); MIL << "Conflicts " << *iter << endl; } // set requirements for a running system setSystemRequirements(); // set locks for the solver setLocks(); // solving bool ret = solving(requires_caps, conflict_caps); (ret?MIL:WAR) << "SATResolver::resolvePool() done. Ret:" << ret << endl; return ret; } bool SATResolver::resolveQueue(const SolverQueueItemList &requestQueue, const PoolItemList & weakItems) { MIL << "SATResolver::resolvQueue()" << endl; // initialize solverInit(weakItems); // generate solver queue for (SolverQueueItemList::const_iterator iter = requestQueue.begin(); iter != requestQueue.end(); iter++) { (*iter)->addRule(_jobQueue); } // Add addition item status to the resolve-queue cause these can be set by problem resolutions for (PoolItemList::const_iterator iter = _items_to_install.begin(); iter != _items_to_install.end(); iter++) { Id id = (*iter)->satSolvable().id(); if (id == ID_NULL) { ERR << "Install: " << *iter << " not found" << endl; } else { MIL << "Install " << *iter << endl; queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE ); queue_push( &(_jobQueue), id ); } } for (PoolItemList::const_iterator iter = _items_to_remove.begin(); iter != _items_to_remove.end(); iter++) { sat::detail::IdType ident( (*iter)->satSolvable().ident().id() ); MIL << "Delete " << *iter << ident << endl; queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_NAME | MAYBE_CLEANDEPS ); queue_push( &(_jobQueue), ident); } // set requirements for a running system setSystemRequirements(); // set locks for the solver setLocks(); // solving bool ret = solving(); MIL << "SATResolver::resolveQueue() done. Ret:" << ret << endl; return ret; } /** \todo duplicate code to be joined with \ref solving. */ void SATResolver::doUpdate() { MIL << "SATResolver::doUpdate()" << endl; // initialize solverInit(PoolItemList()); // set requirements for a running system setSystemRequirements(); // set locks for the solver setLocks(); _satSolver = solver_create( _satPool ); ::pool_set_custom_vendorcheck( _satPool, &vendorCheck ); if (_fixsystem) { queue_push( &(_jobQueue), SOLVER_VERIFY|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } if (1) { queue_push( &(_jobQueue), SOLVER_UPDATE|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } if (_distupgrade) { queue_push( &(_jobQueue), SOLVER_DISTUPGRADE|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } if (_distupgrade_removeunsupported) { queue_push( &(_jobQueue), SOLVER_DROP_ORPHANED|SOLVER_SOLVABLE_ALL); queue_push( &(_jobQueue), 0 ); } solver_set_flag(_satSolver, SOLVER_FLAG_ADD_ALREADY_RECOMMENDED, !_ignorealreadyrecommended); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_DOWNGRADE, _allowdowngrade); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_NAMECHANGE, _allownamechange); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_ARCHCHANGE, _allowarchchange); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_VENDORCHANGE, _allowvendorchange); solver_set_flag(_satSolver, SOLVER_FLAG_ALLOW_UNINSTALL, _allowuninstall); solver_set_flag(_satSolver, SOLVER_FLAG_NO_UPDATEPROVIDE, _noupdateprovide); solver_set_flag(_satSolver, SOLVER_FLAG_SPLITPROVIDES, _dosplitprovides); solver_set_flag(_satSolver, SOLVER_FLAG_IGNORE_RECOMMENDED, _onlyRequires); sat::Pool::instance().prepare(); // Solve ! MIL << "Starting solving for update...." << endl; MIL << *this; solver_solve( _satSolver, &(_jobQueue) ); MIL << "....Solver end" << endl; // copying solution back to zypp pool //----------------------------------------- /* solvables to be installed */ Queue decisionq; queue_init(&decisionq); solver_get_decisionqueue(_satSolver, &decisionq); for (int i = 0; i < decisionq.count; i++) { Id p; p = decisionq.elements[i]; if (p < 0 || !sat::Solvable(p)) continue; if (sat::Solvable(p).repository().get() == _satSolver->pool->installed) continue; PoolItem poolItem = _pool.find (sat::Solvable(p)); if (poolItem) { SATSolutionToPool (poolItem, ResStatus::toBeInstalled, ResStatus::SOLVER); } else { ERR << "id " << p << " not found in ZYPP pool." << endl; } } queue_free(&decisionq); /* solvables to be erased */ for (int i = _satSolver->pool->installed->start; i < _satSolver->pool->installed->start + _satSolver->pool->installed->nsolvables; i++) { if (solver_get_decisionlevel(_satSolver, i) > 0) continue; PoolItem poolItem( _pool.find( sat::Solvable(i) ) ); if (poolItem) { // Check if this is an update CheckIfUpdate info( (sat::Solvable(i)) ); invokeOnEach( _pool.byIdentBegin( poolItem ), _pool.byIdentEnd( poolItem ), resfilter::ByUninstalled(), // ByUninstalled functor::functorRef (info) ); if (info.is_updated) { SATSolutionToPool (poolItem, ResStatus::toBeUninstalledDueToUpgrade , ResStatus::SOLVER); } else { SATSolutionToPool (poolItem, ResStatus::toBeUninstalled, ResStatus::SOLVER); } } else { ERR << "id " << i << " not found in ZYPP pool." << endl; } } MIL << "SATResolver::doUpdate() done" << endl; } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // error handling //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // helper function //---------------------------------------------------------------------------- struct FindPackage : public resfilter::ResObjectFilterFunctor { ProblemSolutionCombi *problemSolution; TransactionKind action; FindPackage (ProblemSolutionCombi *p, const TransactionKind act) : problemSolution (p) , action (act) { } bool operator()( PoolItem p) { problemSolution->addSingleAction (p, action); return true; } }; //---------------------------------------------------------------------------- // Checking if this solvable/item has a buddy which reflect the real // user visible description of an item // e.g. The release package has a buddy to the concerning product item. // This user want's the message "Product foo conflicts with product bar" and // NOT "package release-foo conflicts with package release-bar" // (ma: that's why we should map just packages to buddies, not vice versa) //---------------------------------------------------------------------------- inline sat::Solvable mapBuddy( const PoolItem & item_r ) { if ( item_r.satSolvable().isKind() ) { sat::Solvable buddy = item_r.buddy(); if ( buddy ) return buddy; } return item_r.satSolvable(); } inline sat::Solvable mapBuddy( sat::Solvable item_r ) { return mapBuddy( PoolItem( item_r ) ); } PoolItem SATResolver::mapItem ( const PoolItem & item ) { return PoolItem( mapBuddy( item ) ); } sat::Solvable SATResolver::mapSolvable ( const Id & id ) { return mapBuddy( sat::Solvable(id) ); } string SATResolver::SATprobleminfoString(Id problem, string &detail, Id &ignoreId) { string ret; sat::detail::CPool *pool = _satSolver->pool; Id probr; Id dep, source, target; sat::Solvable s, s2; ignoreId = 0; // FIXME: solver_findallproblemrules to get all rules for this problem // (the 'most relevabt' one returned by solver_findproblemrule is embedded probr = solver_findproblemrule(_satSolver, problem); switch (solver_ruleinfo(_satSolver, probr, &source, &target, &dep)) { case SOLVER_RULE_DISTUPGRADE: s = mapSolvable (source); ret = str::form (_("%s does not belong to a distupgrade repository"), s.asString().c_str()); break; case SOLVER_RULE_INFARCH: s = mapSolvable (source); ret = str::form (_("%s has inferior architecture"), s.asString().c_str()); break; case SOLVER_RULE_UPDATE: s = mapSolvable (source); ret = str::form (_("problem with installed package %s"), s.asString().c_str()); break; case SOLVER_RULE_JOB: ret = _("conflicting requests"); break; case SOLVER_RULE_RPM: ret = _("some dependency problem"); break; case SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP: ret = str::form (_("nothing provides requested %s"), pool_dep2str(pool, dep)); detail += _("Have you enabled all requested repositories?"); break; case SOLVER_RULE_JOB_UNKNOWN_PACKAGE: ret = str::form (_("package %s does not exist"), pool_dep2str(pool, dep)); detail += _("Have you enabled all requested repositories?"); break; case SOLVER_RULE_JOB_UNSUPPORTED: ret = _("unsupported request"); break; case SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM: ret = str::form (_("%s is provided by the system and cannot be erased"), pool_dep2str(pool, dep)); break; case SOLVER_RULE_RPM_NOT_INSTALLABLE: s = mapSolvable (source); ret = str::form (_("%s is not installable"), s.asString().c_str()); break; case SOLVER_RULE_RPM_NOTHING_PROVIDES_DEP: ignoreId = source; // for setting weak dependencies s = mapSolvable (source); ret = str::form (_("nothing provides %s needed by %s"), pool_dep2str(pool, dep), s.asString().c_str()); break; case SOLVER_RULE_RPM_SAME_NAME: s = mapSolvable (source); s2 = mapSolvable (target); ret = str::form (_("cannot install both %s and %s"), s.asString().c_str(), s2.asString().c_str()); break; case SOLVER_RULE_RPM_PACKAGE_CONFLICT: s = mapSolvable (source); s2 = mapSolvable (target); ret = str::form (_("%s conflicts with %s provided by %s"), s.asString().c_str(), pool_dep2str(pool, dep), s2.asString().c_str()); break; case SOLVER_RULE_RPM_PACKAGE_OBSOLETES: s = mapSolvable (source); s2 = mapSolvable (target); ret = str::form (_("%s obsoletes %s provided by %s"), s.asString().c_str(), pool_dep2str(pool, dep), s2.asString().c_str()); break; case SOLVER_RULE_RPM_INSTALLEDPKG_OBSOLETES: s = mapSolvable (source); s2 = mapSolvable (target); ret = str::form (_("installed %s obsoletes %s provided by %s"), s.asString().c_str(), pool_dep2str(pool, dep), s2.asString().c_str()); break; case SOLVER_RULE_RPM_SELF_CONFLICT: s = mapSolvable (source); ret = str::form (_("solvable %s conflicts with %s provided by itself"), s.asString().c_str(), pool_dep2str(pool, dep)); break; case SOLVER_RULE_RPM_PACKAGE_REQUIRES: ignoreId = source; // for setting weak dependencies s = mapSolvable (source); Capability cap(dep); sat::WhatProvides possibleProviders(cap); // check, if a provider will be deleted typedef list ProviderList; ProviderList providerlistInstalled, providerlistUninstalled; for_( iter1, possibleProviders.begin(), possibleProviders.end() ) { PoolItem provider1 = ResPool::instance().find( *iter1 ); // find pair of an installed/uninstalled item with the same NVR bool found = false; for_( iter2, possibleProviders.begin(), possibleProviders.end() ) { PoolItem provider2 = ResPool::instance().find( *iter2 ); if (compareByNVR (provider1,provider2) == 0 && ( (provider1.status().isInstalled() && provider2.status().isUninstalled()) || (provider2.status().isInstalled() && provider1.status().isUninstalled()) )) { found = true; break; } } if (!found) { if (provider1.status().isInstalled()) providerlistInstalled.push_back(provider1); else providerlistUninstalled.push_back(provider1); } } ret = str::form (_("%s requires %s, but this requirement cannot be provided"), s.asString().c_str(), pool_dep2str(pool, dep)); if (providerlistInstalled.size() > 0) { detail += _("deleted providers: "); for (ProviderList::const_iterator iter = providerlistInstalled.begin(); iter != providerlistInstalled.end(); iter++) { if (iter == providerlistInstalled.begin()) detail += itemToString( *iter ); else detail += "\n " + itemToString( mapItem(*iter) ); } } if (providerlistUninstalled.size() > 0) { if (detail.size() > 0) detail += _("\nnot installable providers: "); else detail = _("not installable providers: "); for (ProviderList::const_iterator iter = providerlistUninstalled.begin(); iter != providerlistUninstalled.end(); iter++) { if (iter == providerlistUninstalled.begin()) detail += itemToString( *iter ); else detail += "\n " + itemToString( mapItem(*iter) ); } } break; } return ret; } ResolverProblemList SATResolver::problems () { ResolverProblemList resolverProblems; if (_satSolver && solver_problem_count(_satSolver)) { sat::detail::CPool *pool = _satSolver->pool; int pcnt; Id p, rp, what; Id problem, solution, element; sat::Solvable s, sd; CapabilitySet system_requires = SystemCheck::instance().requiredSystemCap(); CapabilitySet system_conflicts = SystemCheck::instance().conflictSystemCap(); MIL << "Encountered problems! Here are the solutions:\n" << endl; pcnt = 1; problem = 0; while ((problem = solver_next_problem(_satSolver, problem)) != 0) { MIL << "Problem " << pcnt++ << ":" << endl; MIL << "====================================" << endl; string detail; Id ignoreId; string whatString = SATprobleminfoString (problem,detail,ignoreId); MIL << whatString << endl; MIL << "------------------------------------" << endl; ResolverProblem_Ptr resolverProblem = new ResolverProblem (whatString, detail); solution = 0; while ((solution = solver_next_solution(_satSolver, problem, solution)) != 0) { element = 0; ProblemSolutionCombi *problemSolution = new ProblemSolutionCombi; while ((element = solver_next_solutionelement(_satSolver, problem, solution, element, &p, &rp)) != 0) { if (p == SOLVER_SOLUTION_JOB) { /* job, rp is index into job queue */ what = _jobQueue.elements[rp]; switch (_jobQueue.elements[rp-1]&(SOLVER_SELECTMASK|SOLVER_JOBMASK)) { case SOLVER_INSTALL | SOLVER_SOLVABLE: { s = mapSolvable (what); PoolItem poolItem = _pool.find (s); if (poolItem) { if (pool->installed && s.get()->repo == pool->installed) { problemSolution->addSingleAction (poolItem, REMOVE); string description = str::form (_("remove lock to allow removal of %s"), s.asString().c_str() ); MIL << description << endl; problemSolution->addDescription (description); } else { problemSolution->addSingleAction (poolItem, KEEP); string description = str::form (_("do not install %s"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } } else { ERR << "SOLVER_INSTALL_SOLVABLE: No item found for " << s.asString() << endl; } } break; case SOLVER_ERASE | SOLVER_SOLVABLE: { s = mapSolvable (what); PoolItem poolItem = _pool.find (s); if (poolItem) { if (pool->installed && s.get()->repo == pool->installed) { problemSolution->addSingleAction (poolItem, KEEP); string description = str::form (_("keep %s"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } else { problemSolution->addSingleAction (poolItem, UNLOCK); string description = str::form (_("remove lock to allow installation of %s"), itemToString( poolItem ).c_str()); MIL << description << endl; problemSolution->addDescription (description); } } else { ERR << "SOLVER_ERASE_SOLVABLE: No item found for " << s.asString() << endl; } } break; case SOLVER_INSTALL | SOLVER_SOLVABLE_NAME: { IdString ident( what ); SolverQueueItemInstall_Ptr install = new SolverQueueItemInstall(_pool, ident.asString(), false ); problemSolution->addSingleAction (install, REMOVE_SOLVE_QUEUE_ITEM); string description = str::form (_("do not install %s"), ident.c_str() ); MIL << description << endl; problemSolution->addDescription (description); } break; case SOLVER_ERASE | SOLVER_SOLVABLE_NAME: { // As we do not know, if this request has come from resolvePool or // resolveQueue we will have to take care for both cases. IdString ident( what ); FindPackage info (problemSolution, KEEP); invokeOnEach( _pool.byIdentBegin( ident ), _pool.byIdentEnd( ident ), functor::chain (resfilter::ByInstalled (), // ByInstalled resfilter::ByTransact ()), // will be deinstalled functor::functorRef (info) ); SolverQueueItemDelete_Ptr del = new SolverQueueItemDelete(_pool, ident.asString(), false ); problemSolution->addSingleAction (del, REMOVE_SOLVE_QUEUE_ITEM); string description = str::form (_("keep %s"), ident.c_str()); MIL << description << endl; problemSolution->addDescription (description); } break; case SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES: { problemSolution->addSingleAction (Capability(what), REMOVE_EXTRA_REQUIRE); string description = ""; // Checking if this problem solution would break your system if (system_requires.find(Capability(what)) != system_requires.end()) { // Show a better warning resolverProblem->setDetails( resolverProblem->description() + "\n" + resolverProblem->details() ); resolverProblem->setDescription(_("This request will break your system!")); description = _("ignore the warning of a broken system"); description += string(" (requires:")+pool_dep2str(pool, what)+")"; MIL << description << endl; problemSolution->addFrontDescription (description); } else { description = str::form (_("do not ask to install a solvable providing %s"), pool_dep2str(pool, what)); MIL << description << endl; problemSolution->addDescription (description); } } break; case SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES: { problemSolution->addSingleAction (Capability(what), REMOVE_EXTRA_CONFLICT); string description = ""; // Checking if this problem solution would break your system if (system_conflicts.find(Capability(what)) != system_conflicts.end()) { // Show a better warning resolverProblem->setDetails( resolverProblem->description() + "\n" + resolverProblem->details() ); resolverProblem->setDescription(_("This request will break your system!")); description = _("ignore the warning of a broken system"); description += string(" (conflicts:")+pool_dep2str(pool, what)+")"; MIL << description << endl; problemSolution->addFrontDescription (description); } else { description = str::form (_("do not ask to delete all solvables providing %s"), pool_dep2str(pool, what)); MIL << description << endl; problemSolution->addDescription (description); } } break; case SOLVER_UPDATE | SOLVER_SOLVABLE: { s = mapSolvable (what); PoolItem poolItem = _pool.find (s); if (poolItem) { if (pool->installed && s.get()->repo == pool->installed) { problemSolution->addSingleAction (poolItem, KEEP); string description = str::form (_("do not install most recent version of %s"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } else { ERR << "SOLVER_INSTALL_SOLVABLE_UPDATE " << poolItem << " is not selected for installation" << endl; } } else { ERR << "SOLVER_INSTALL_SOLVABLE_UPDATE: No item found for " << s.asString() << endl; } } break; default: MIL << "- do something different" << endl; ERR << "No valid solution available" << endl; break; } } else if (p == SOLVER_SOLUTION_INFARCH) { s = mapSolvable (rp); PoolItem poolItem = _pool.find (s); if (pool->installed && s.get()->repo == pool->installed) { problemSolution->addSingleAction (poolItem, LOCK); string description = str::form (_("keep %s despite the inferior architecture"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } else { problemSolution->addSingleAction (poolItem, INSTALL); string description = str::form (_("install %s despite the inferior architecture"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } } else if (p == SOLVER_SOLUTION_DISTUPGRADE) { s = mapSolvable (rp); PoolItem poolItem = _pool.find (s); if (pool->installed && s.get()->repo == pool->installed) { problemSolution->addSingleAction (poolItem, LOCK); string description = str::form (_("keep obsolete %s"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } else { problemSolution->addSingleAction (poolItem, INSTALL); string description = str::form (_("install %s from excluded repository"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } } else { /* policy, replace p with rp */ s = mapSolvable (p); PoolItem itemFrom = _pool.find (s); if (rp) { int gotone = 0; sd = mapSolvable (rp); PoolItem itemTo = _pool.find (sd); if (itemFrom && itemTo) { problemSolution->addSingleAction (itemTo, INSTALL); int illegal = policy_is_illegal(_satSolver, s.get(), sd.get(), 0); if ((illegal & POLICY_ILLEGAL_DOWNGRADE) != 0) { string description = str::form (_("downgrade of %s to %s"), s.asString().c_str(), sd.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); gotone = 1; } if ((illegal & POLICY_ILLEGAL_ARCHCHANGE) != 0) { string description = str::form (_("architecture change of %s to %s"), s.asString().c_str(), sd.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); gotone = 1; } if ((illegal & POLICY_ILLEGAL_VENDORCHANGE) != 0) { IdString s_vendor( s.vendor() ); IdString sd_vendor( sd.vendor() ); string description = str::form (_("install %s (with vendor change)\n %s --> %s") , sd.asString().c_str(), ( s_vendor ? s_vendor.c_str() : " (no vendor) " ), ( sd_vendor ? sd_vendor.c_str() : " (no vendor) " ) ); MIL << description << endl; problemSolution->addDescription (description); gotone = 1; } if (!gotone) { string description = str::form (_("replacement of %s with %s"), s.asString().c_str(), sd.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); } } else { ERR << s.asString() << " or " << sd.asString() << " not found" << endl; } } else { if (itemFrom) { string description = str::form (_("deinstallation of %s"), s.asString().c_str()); MIL << description << endl; problemSolution->addDescription (description); problemSolution->addSingleAction (itemFrom, REMOVE); } } } } resolverProblem->addSolution (problemSolution, problemSolution->actionCount() > 1 ? true : false); // Solutions with more than 1 action will be shown first. MIL << "------------------------------------" << endl; } if (ignoreId > 0) { // There is a possibility to ignore this error by setting weak dependencies PoolItem item = _pool.find (sat::Solvable(ignoreId)); ProblemSolutionIgnore *problemSolution = new ProblemSolutionIgnore(item); resolverProblem->addSolution (problemSolution, false); // Solutions will be shown at the end MIL << "ignore some dependencies of " << item << endl; MIL << "------------------------------------" << endl; } // save problem resolverProblems.push_back (resolverProblem); } } return resolverProblems; } void SATResolver::applySolutions( const ProblemSolutionList & solutions ) { Resolver( _pool ).applySolutions( solutions ); } void SATResolver::setLocks() { for (PoolItemList::const_iterator iter = _items_to_lock.begin(); iter != _items_to_lock.end(); ++iter) { sat::detail::SolvableIdType ident( (*iter)->satSolvable().id() ); if (iter->status().isInstalled()) { MIL << "Lock installed item " << *iter << endl; queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE ); queue_push( &(_jobQueue), ident ); } else { MIL << "Lock NOT installed item " << *iter << endl; queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE | MAYBE_CLEANDEPS ); queue_push( &(_jobQueue), ident ); } } /////////////////////////////////////////////////////////////////// // Weak locks: Ignore if an item with this name is already installed. // If it's not installed try to keep it this way using a weak delete /////////////////////////////////////////////////////////////////// std::set unifiedByName; for (PoolItemList::const_iterator iter = _items_to_keep.begin(); iter != _items_to_keep.end(); ++iter) { IdString ident( (*iter)->satSolvable().ident() ); if ( unifiedByName.insert( ident ).second ) { if ( ! ui::Selectable::get( *iter )->hasInstalledObj() ) { MIL << "Keep NOT installed name " << ident << " (" << *iter << ")" << endl; queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_NAME | SOLVER_WEAK | MAYBE_CLEANDEPS ); queue_push( &(_jobQueue), ident.id() ); } } } } void SATResolver::setSystemRequirements() { CapabilitySet system_requires = SystemCheck::instance().requiredSystemCap(); CapabilitySet system_conflicts = SystemCheck::instance().conflictSystemCap(); for (CapabilitySet::const_iterator iter = system_requires.begin(); iter != system_requires.end(); ++iter) { queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES ); queue_push( &(_jobQueue), iter->id() ); MIL << "SYSTEM Requires " << *iter << endl; } for (CapabilitySet::const_iterator iter = system_conflicts.begin(); iter != system_conflicts.end(); ++iter) { queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | MAYBE_CLEANDEPS ); queue_push( &(_jobQueue), iter->id() ); MIL << "SYSTEM Conflicts " << *iter << endl; } // Lock the architecture of the running systems rpm // package on distupgrade. if ( _distupgrade && ZConfig::instance().systemRoot() == "/" ) { ResPool pool( ResPool::instance() ); IdString rpm( "rpm" ); for_( it, pool.byIdentBegin(rpm), pool.byIdentEnd(rpm) ) { if ( (*it)->isSystem() ) { Capability archrule( (*it)->arch(), rpm.c_str(), Capability::PARSED ); queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_NAME | SOLVER_ESSENTIAL ); queue_push( &(_jobQueue), archrule.id() ); } } } } sat::StringQueue SATResolver::autoInstalled() const { sat::StringQueue ret; if ( _satSolver ) ::solver_get_userinstalled( _satSolver, ret, GET_USERINSTALLED_NAMES|GET_USERINSTALLED_INVERTED ); return ret; } sat::StringQueue SATResolver::userInstalled() const { sat::StringQueue ret; if ( _satSolver ) ::solver_get_userinstalled( _satSolver, ret, GET_USERINSTALLED_NAMES ); return ret; } /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SATResolver.h000066400000000000000000000233221334444677500214220ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SATResolver.h * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_SAT_RESOLVER_H #define ZYPP_SOLVER_DETAIL_SAT_RESOLVER_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else extern "C" { #include #include } #include #include #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/PtrTypes.h" #include "zypp/ResPool.h" #include "zypp/base/SerialNumber.h" #include "zypp/ProblemTypes.h" #include "zypp/ResolverProblem.h" #include "zypp/ProblemSolution.h" #include "zypp/Capability.h" #include "zypp/solver/detail/SolverQueueItem.h" #include "zypp/sat/detail/PoolMember.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// namespace sat { class Transaction; } /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SATResolver /** * \todo The way solver options are passed as individual booleans from Resolver * via solver::detail::Resolver to SATResolver is pedestrian and error prone. * Introdce a dedicated solver option structure which is passed down as a whole. */ class SATResolver : public base::ReferenceCounted, private base::NonCopyable, private sat::detail::PoolMember { private: ResPool _pool; sat::detail::CPool *_satPool; sat::detail::CSolver *_satSolver; sat::detail::CQueue _jobQueue; // list of problematic items (orphaned) PoolItemList _problem_items; // list populated by calls to addPoolItemTo*() PoolItemList _items_to_install; PoolItemList _items_to_remove; PoolItemList _items_to_lock; PoolItemList _items_to_keep; // solve results PoolItemList _result_items_to_install; PoolItemList _result_items_to_remove; public: bool _fixsystem:1; // repair errors in rpm dependency graph bool _allowdowngrade:1; // allow to downgrade installed solvable bool _allownamechange:1; // allow to change name of installed solvable bool _allowarchchange:1; // allow to change architecture of installed solvables bool _allowvendorchange:1; // allow to change vendor of installed solvables bool _allowuninstall:1; // allow removal of installed solvables bool _updatesystem:1; // update bool _noupdateprovide:1; // true: update packages needs not to provide old package bool _dosplitprovides:1; // true: consider legacy split provides bool _onlyRequires:1; // true: consider required packages only bool _ignorealreadyrecommended:1; // true: ignore recommended packages that were already recommended by the installed packages bool _distupgrade:1; bool _distupgrade_removeunsupported:1; bool _dup_allowdowngrade:1; // dup mode: allow to downgrade installed solvable bool _dup_allownamechange:1; // dup mode: allow to change name of installed solvable bool _dup_allowarchchange:1; // dup mode: allow to change architecture of installed solvables bool _dup_allowvendorchange:1; // dup mode: allow to change vendor of installed solvables bool _solveSrcPackages:1; // false: generate no job rule for source packages selected in the pool bool _cleandepsOnRemove:1; // whether removing a package should also remove no longer needed requirements private: // ---------------------------------- methods std::string SATprobleminfoString (Id problem, std::string &detail, Id &ignoreId); void resetItemTransaction (PoolItem item); // Create a SAT solver and reset solver selection in the pool (Collecting void solverInit(const PoolItemList & weakItems); // common solver run with the _jobQueue; Save results back to pool bool solving(const CapabilitySet & requires_caps = CapabilitySet(), const CapabilitySet & conflict_caps = CapabilitySet()); // cleanup solver void solverEnd(); // set locks for the solver void setLocks(); // set requirements for a running system void setSystemRequirements(); // Checking if this solvable/item has a buddy which reflect the real // user visible description of an item // e.g. The release package has a buddy to the concerning product item. // This user want's the message "Product foo conflicts with product bar" and // NOT "package release-foo conflicts with package release-bar" // So these functions return the concerning buddy (e.g. product item) sat::Solvable mapSolvable (const Id &id); PoolItem mapItem (const PoolItem &item); public: SATResolver (const ResPool & pool, sat::detail::CPool *satPool); virtual ~SATResolver(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream& str, const SATResolver & obj) { return obj.dumpOn (str); } ResPool pool (void) const; void setPool (const ResPool & pool) { _pool = pool; } // solver run with pool selected items bool resolvePool(const CapabilitySet & requires_caps, const CapabilitySet & conflict_caps, const PoolItemList & weakItems, const std::set & upgradeRepos ); // solver run with the given request queue bool resolveQueue(const SolverQueueItemList &requestQueue, const PoolItemList & weakItems ); // searching for new packages void doUpdate(); ResolverProblemList problems (); void applySolutions (const ProblemSolutionList &solutions); bool fixsystem () const {return _fixsystem;} void setFixsystem ( const bool fixsystem) { _fixsystem = fixsystem;} bool ignorealreadyrecommended () const {return _ignorealreadyrecommended;} void setIgnorealreadyrecommended ( const bool ignorealreadyrecommended) { _ignorealreadyrecommended = ignorealreadyrecommended;} bool distupgrade () const {return _distupgrade;} void setDistupgrade ( const bool distupgrade) { _distupgrade = distupgrade;} bool distupgrade_removeunsupported () const {return _distupgrade_removeunsupported;} void setDistupgrade_removeunsupported ( const bool distupgrade_removeunsupported) { _distupgrade_removeunsupported = distupgrade_removeunsupported;} bool allowdowngrade () const {return _allowdowngrade;} void setAllowdowngrade ( const bool allowdowngrade) { _allowdowngrade = allowdowngrade;} bool allowarchchange () const {return _allowarchchange;} void setAllowarchchange ( const bool allowarchchange) { _allowarchchange = allowarchchange;} bool allowvendorchange () const {return _allowvendorchange;} void setAllowvendorchange ( const bool allowvendorchange) { _allowvendorchange = allowvendorchange;} bool allowuninstall () const {return _allowuninstall;} void setAllowuninstall ( const bool allowuninstall) { _allowuninstall = allowuninstall;} bool updatesystem () const {return _updatesystem;} void setUpdatesystem ( const bool updatesystem) { _updatesystem = updatesystem;} bool noupdateprovide () const {return _noupdateprovide;} void setNoupdateprovide ( const bool noupdateprovide) { _noupdateprovide = noupdateprovide;} bool dosplitprovides () const {return _dosplitprovides;} void setDosplitprovides ( const bool dosplitprovides) { _dosplitprovides = dosplitprovides;} bool onlyRequires () const {return _onlyRequires;} void setOnlyRequires ( const bool onlyRequires) { _onlyRequires = onlyRequires;} bool solveSrcPackages() const { return _solveSrcPackages; } void setSolveSrcPackages( bool state_r ) { _solveSrcPackages = state_r; } bool cleandepsOnRemove() const { return _cleandepsOnRemove; } void setCleandepsOnRemove( bool state_r ) { _cleandepsOnRemove = state_r; } PoolItemList problematicUpdateItems( void ) const { return _problem_items; } PoolItemList problematicUpdateItems() { return _problem_items; } PoolItemList resultItemsToInstall () { return _result_items_to_install; } PoolItemList resultItemsToRemove () { return _result_items_to_remove; } sat::StringQueue autoInstalled() const; sat::StringQueue userInstalled() const; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_SAT_RESOLVER_H libzypp-17.7.0/zypp/solver/detail/SolutionAction.cc000066400000000000000000000137031334444677500223630ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolutionAction.cc * * Easy-to use interface to the ZYPP dependency resolver * * Copyright (C) 2000-2002 Ximian, Inc. * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/solver/detail/Resolver.h" #include "zypp/solver/detail/SolutionAction.h" #include "zypp/solver/detail/SolverQueueItem.h" #include "zypp/Capabilities.h" #include "zypp/base/Logger.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolutionAction); //--------------------------------------------------------------------------- SolutionAction::SolutionAction() { } SolutionAction::~SolutionAction() { } //--------------------------------------------------------------------------- ostream & TransactionSolutionAction::dumpOn( ostream& os) const { os << "TransactionSolutionAction: "; switch (_action) { case KEEP: os << "Keep " << _item; break; case INSTALL: os << "Install " << _item; break; case REMOVE: os << "Remove " << _item; break; case UNLOCK: os << "Unlock " << _item; break; case LOCK: os << "Lock " << _item; break; case REMOVE_EXTRA_REQUIRE: os << "Remove require " << _capability; break; case REMOVE_EXTRA_CONFLICT: os << "Remove conflict " << _capability; break; case ADD_SOLVE_QUEUE_ITEM: os << "Add SolveQueueItem " << _solverQueueItem; break; case REMOVE_SOLVE_QUEUE_ITEM: os << "Remove SolveQueueItem " << _solverQueueItem; break; } return os; } ostream& operator<<( ostream& os, const SolutionActionList & actionlist) { for (SolutionActionList::const_iterator iter = actionlist.begin(); iter != actionlist.end(); ++iter) { os << *(*iter); os << endl; } return os; } //--------------------------------------------------------------------------- ostream & InjectSolutionAction::dumpOn( ostream& os ) const { os << "InjectSolutionAction: "; switch (_kind) { case WEAK: os << "Weak"; break; default: os << "Wrong kind"; break; } os << " "; os << _item; return os; } //--------------------------------------------------------------------------- ostream & SolutionAction::dumpOn( std::ostream & os ) const { os << "SolutionAction<"; os << "not specified"; os << "> "; return os; } bool TransactionSolutionAction::execute(ResolverInternal & resolver) const { bool ret = true; switch (action()) { case KEEP: _item.status().resetTransact (ResStatus::USER); ret = _item.status().setTransact (false, ResStatus::APPL_HIGH); // APPL_HIGH: Locking should not be saved permanently break; case INSTALL: if (_item.status().isToBeUninstalled()) ret = _item.status().setTransact (false, ResStatus::USER); else _item.status().setToBeInstalled (ResStatus::USER); break; case REMOVE: if (_item.status().isToBeInstalled()) { _item.status().setTransact (false,ResStatus::USER); _item.status().setLock (true,ResStatus::USER); // no other dependency can set it again } else if (_item.status().isInstalled()) _item.status().setToBeUninstalled (ResStatus::USER); else _item.status().setLock (true,ResStatus::USER); // no other dependency can set it again break; case UNLOCK: ret = _item.status().setLock (false, ResStatus::USER); if (!ret) ERR << "Cannot unlock " << _item << endl; break; case LOCK: _item.status().resetTransact (ResStatus::USER); ret = _item.status().setLock (true, ResStatus::APPL_HIGH); // APPL_HIGH: Locking should not be saved permanently if (!ret) ERR << "Cannot lock " << _item << endl; break; case REMOVE_EXTRA_REQUIRE: resolver.removeExtraRequire (_capability); break; case REMOVE_EXTRA_CONFLICT: resolver.removeExtraConflict (_capability); break; case ADD_SOLVE_QUEUE_ITEM: resolver.addQueueItem(_solverQueueItem); break; case REMOVE_SOLVE_QUEUE_ITEM: resolver.removeQueueItem(_solverQueueItem); break; default: ERR << "Wrong TransactionKind" << endl; ret = false; } return ret; } bool InjectSolutionAction::execute(ResolverInternal & resolver) const { switch (_kind) { case WEAK: // set item dependencies to weak resolver.addWeak (_item); break; default: ERR << "No valid InjectSolutionAction kind found" << endl; return false; } return true; } /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolutionAction.h000066400000000000000000000123261334444677500222250ustar00rootroot00000000000000/* * * Easy-to use interface to the ZYPP dependency resolver * * Author: Stefan Hundhammer * **/ #ifndef ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H #define ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/PtrTypes.h" #include "zypp/PoolItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// class Resolver; DEFINE_PTR_TYPE(SolverQueueItem); DEFINE_PTR_TYPE(SolutionAction); typedef std::list SolutionActionList; /** * Abstract base class for one action of a problem solution. **/ class SolutionAction : public base::ReferenceCounted { protected: typedef Resolver ResolverInternal; SolutionAction (); public: virtual ~SolutionAction(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolutionAction & action) { return action.dumpOn (str); } friend std::ostream& operator<<(std::ostream & str, const SolutionActionList & actionlist); // ---------------------------------- methods /** * Execute this action. * Returns 'true' on success, 'false' on error. **/ virtual bool execute (ResolverInternal & resolver) const = 0; }; /** * A problem solution action that performs a transaction * (installs, removes, keep ...) one resolvable * (package, patch, pattern, product). **/ typedef enum { KEEP, INSTALL, REMOVE, UNLOCK, LOCK, REMOVE_EXTRA_REQUIRE, REMOVE_EXTRA_CONFLICT, ADD_SOLVE_QUEUE_ITEM, REMOVE_SOLVE_QUEUE_ITEM, } TransactionKind; class TransactionSolutionAction: public SolutionAction { public: TransactionSolutionAction( PoolItem item, TransactionKind action ) : SolutionAction(), _item( item ), _action( action ) {} TransactionSolutionAction( Capability capability, TransactionKind action ) : SolutionAction(), _capability( capability ), _action( action ) {} TransactionSolutionAction( SolverQueueItem_Ptr item, TransactionKind action ) : SolutionAction(), _solverQueueItem( item ), _action( action ) {} TransactionSolutionAction( TransactionKind action ) : SolutionAction(), _item(), _action( action ) {} // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream& str, const TransactionSolutionAction & action) { return action.dumpOn (str); } // ---------------------------------- accessors const PoolItem item() const { return _item; } const Capability capability() const { return _capability; } TransactionKind action() const { return _action; } // ---------------------------------- methods virtual bool execute(ResolverInternal & resolver) const; protected: PoolItem _item; Capability _capability; SolverQueueItem_Ptr _solverQueueItem; const TransactionKind _action; }; /** * Type of ignoring; currently only WEAK **/ typedef enum { WEAK } InjectSolutionKind; /** * A problem solution action that injects an artificial "provides" to * the pool to satisfy open requirements or remove the conflict of * concerning resolvable * * This is typically used by "ignore" (user override) solutions. **/ class InjectSolutionAction: public SolutionAction { public: InjectSolutionAction( PoolItem item, const InjectSolutionKind & kind) : SolutionAction(), _item( item ), _kind( kind ) {} // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream& str, const InjectSolutionAction & action) { return action.dumpOn (str); } // ---------------------------------- accessors const PoolItem item() const { return _item; } // ---------------------------------- methods virtual bool execute(ResolverInternal & resolver) const; protected: PoolItem _item; const InjectSolutionKind _kind; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H libzypp-17.7.0/zypp/solver/detail/SolverQueueItem.cc000066400000000000000000000065421334444677500225120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolverQueueItem.cc * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Logger.h" #include "zypp/solver/detail/SolverQueueItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolverQueueItem); //--------------------------------------------------------------------------- std::ostream & SolverQueueItem::dumpOn( std::ostream & os ) const { switch (_type) { case QUEUE_ITEM_TYPE_UNKNOWN : os << "unknown"; break; case QUEUE_ITEM_TYPE_UPDATE : os << "update"; break; case QUEUE_ITEM_TYPE_LOCK : os << "lock"; break; case QUEUE_ITEM_TYPE_INSTALL : os << "install"; break; case QUEUE_ITEM_TYPE_DELETE : os << "delete"; break; case QUEUE_ITEM_TYPE_INSTALL_ONE_OF: os << "install one of"; break; default: os << "?solverqueueitem?"; break; } return os; } ostream& operator<<( ostream & os, const SolverQueueItemList & itemlist ) { for (SolverQueueItemList::const_iterator iter = itemlist.begin(); iter != itemlist.end(); ++iter) { if (iter != itemlist.begin()) os << "," << endl << "\t"; os << **iter; } return os; } //--------------------------------------------------------------------------- SolverQueueItem::SolverQueueItem (SolverQueueItemType type, const ResPool & pool) : _type (type) , _pool (pool) { } SolverQueueItem::~SolverQueueItem() { } //--------------------------------------------------------------------------- void SolverQueueItem::copy (const SolverQueueItem *from) { } //--------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolverQueueItem.h000066400000000000000000000104231334444677500223450ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* QueueItem.h * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_QUEUEITEM_H #define ZYPP_SOLVER_DETAIL_QUEUEITEM_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/ResPool.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// DEFINE_PTR_TYPE(SolverQueueItem); DEFINE_PTR_TYPE(SolverQueueItemUpdate); DEFINE_PTR_TYPE(SolverQueueItemDelete); DEFINE_PTR_TYPE(SolverQueueItemInstall); DEFINE_PTR_TYPE(SolverQueueItemInstallOneOf); DEFINE_PTR_TYPE(SolverQueueItemLock); typedef enum { QUEUE_ITEM_TYPE_UNKNOWN = 0, QUEUE_ITEM_TYPE_UPDATE, QUEUE_ITEM_TYPE_INSTALL, QUEUE_ITEM_TYPE_DELETE, QUEUE_ITEM_TYPE_INSTALL_ONE_OF, QUEUE_ITEM_TYPE_LOCK } SolverQueueItemType; typedef std::list SolverQueueItemList; #define CMP(a,b) (((a) < (b)) - ((b) < (a))) /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolverQueueItem class SolverQueueItem : public base::ReferenceCounted, private base::NonCopyable { private: SolverQueueItemType _type; ResPool _pool; protected: SolverQueueItem (SolverQueueItemType type, const ResPool & pool); public: virtual ~SolverQueueItem(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolverQueueItem & obj) { return obj.dumpOn (str); } friend std::ostream& operator<<(std::ostream & str, const SolverQueueItemList & itemlist); // ---------------------------------- accessors ResPool pool (void) const { return _pool; } // ---------------------------------- methods void copy (const SolverQueueItem *from); bool isDelete (void) const { return _type == QUEUE_ITEM_TYPE_DELETE; } bool isInstall (void) const { return _type == QUEUE_ITEM_TYPE_INSTALL; } bool isUpdate (void) const { return _type == QUEUE_ITEM_TYPE_UPDATE; } bool isLock (void) const { return _type == QUEUE_ITEM_TYPE_LOCK; } bool isInstallOneOf (void) const { return _type == QUEUE_ITEM_TYPE_INSTALL_ONE_OF; } virtual SolverQueueItem_Ptr copy (void) const = 0; virtual bool addRule (sat::detail::CQueue & q) =0 ; virtual int cmp (SolverQueueItem_constPtr item) const = 0; int compare (SolverQueueItem_constPtr item) const { return CMP(_type, item->_type); } }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_QUEUEITEM_H libzypp-17.7.0/zypp/solver/detail/SolverQueueItemDelete.cc000066400000000000000000000075431334444677500236370ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolverQueueItem.cc * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Logger.h" #include "zypp/IdString.h" #include "zypp/Resolver.h" #include "zypp/solver/detail/SolverQueueItemDelete.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolverQueueItemDelete); //--------------------------------------------------------------------------- std::ostream & SolverQueueItemDelete::dumpOn( std::ostream & os ) const { os << "[" << (_soft?"Soft":"") << "Delete: " << _name << "]"; return os; } //--------------------------------------------------------------------------- SolverQueueItemDelete::SolverQueueItemDelete (const ResPool & pool, std::string name, bool soft) : SolverQueueItem (QUEUE_ITEM_TYPE_DELETE, pool) , _name (name) , _soft (soft) { } SolverQueueItemDelete::~SolverQueueItemDelete() { } //--------------------------------------------------------------------------- bool SolverQueueItemDelete::addRule (sat::detail::CQueue & q) { #define MAYBE_CLEANDEPS (pool().resolver().cleandepsOnRemove()?SOLVER_CLEANDEPS:0) ::Id id = IdString(_name).id(); if (_soft) { queue_push( &(q), SOLVER_ERASE | SOLVER_SOLVABLE_NAME | SOLVER_WEAK | MAYBE_CLEANDEPS ); } else { queue_push( &(q), SOLVER_ERASE | SOLVER_SOLVABLE_NAME | MAYBE_CLEANDEPS ); } queue_push( &(q), id); MIL << "Delete " << _name << (_soft ? "(soft)" : "") << " with SAT-Pool: " << id << endl; return true; } SolverQueueItem_Ptr SolverQueueItemDelete::copy (void) const { SolverQueueItemDelete_Ptr new_delete = new SolverQueueItemDelete (pool(), _name); new_delete->SolverQueueItem::copy(this); new_delete->_soft = _soft; return new_delete; } int SolverQueueItemDelete::cmp (SolverQueueItem_constPtr item) const { int cmp = this->compare (item); if (cmp != 0) return cmp; SolverQueueItemDelete_constPtr del = dynamic_pointer_cast(item); if (_name != del->_name) { return _name.compare(del->_name); } return 0; } //--------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolverQueueItemDelete.h000066400000000000000000000057221334444677500234760ustar00rootroot00000000000000 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* QueueItem.h * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_QUEUEITEMDELETE_H #define ZYPP_SOLVER_DETAIL_QUEUEITEMDELETE_H #include #include #include "zypp/solver/detail/SolverQueueItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolverQueueItemDelete class SolverQueueItemDelete : public SolverQueueItem { private: std::string _name; bool _soft; // if triggered by a soft requirement (a recommends) public: SolverQueueItemDelete (const ResPool & pool, std::string name, bool soft = false); virtual ~SolverQueueItemDelete(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolverQueueItemDelete & obj) { return obj.dumpOn (str); } // ---------------------------------- accessors bool isSoft (void) const { return _soft; } // ---------------------------------- methods virtual bool addRule (sat::detail::CQueue & q); virtual SolverQueueItem_Ptr copy (void) const; virtual int cmp (SolverQueueItem_constPtr item) const; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_QUEUEITEMDELETE_H libzypp-17.7.0/zypp/solver/detail/SolverQueueItemInstall.cc000066400000000000000000000074151334444677500240410ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolverQueueItem.cc * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Logger.h" #include "zypp/IdString.h" #include "zypp/IdStringType.h" #include "zypp/solver/detail/SolverQueueItemInstall.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolverQueueItemInstall); //--------------------------------------------------------------------------- std::ostream & SolverQueueItemInstall::dumpOn( std::ostream & os ) const { os << "[" << (_soft?"Soft":"") << "Install: " << _name << "]"; return os; } //--------------------------------------------------------------------------- SolverQueueItemInstall::SolverQueueItemInstall (const ResPool & pool, std::string name, bool soft) : SolverQueueItem (QUEUE_ITEM_TYPE_INSTALL, pool) , _name (name) , _soft (soft) { } SolverQueueItemInstall::~SolverQueueItemInstall() { } //--------------------------------------------------------------------------- bool SolverQueueItemInstall::addRule (sat::detail::CQueue & q) { ::Id id = IdString(_name).id(); if (_soft) { queue_push( &(q), SOLVER_INSTALL | SOLVER_SOLVABLE_NAME | SOLVER_WEAK ); } else { queue_push( &(q), SOLVER_INSTALL | SOLVER_SOLVABLE_NAME ); } queue_push( &(q), id); MIL << "Install " << _name << (_soft ? "(soft)" : "") << " with SAT-PoolID: " << id << endl; return true; } SolverQueueItem_Ptr SolverQueueItemInstall::copy (void) const { SolverQueueItemInstall_Ptr new_install = new SolverQueueItemInstall (pool(), _name); new_install->SolverQueueItem::copy(this); new_install->_soft = _soft; return new_install; } int SolverQueueItemInstall::cmp (SolverQueueItem_constPtr item) const { int cmp = this->compare (item); if (cmp != 0) return cmp; SolverQueueItemInstall_constPtr ins = dynamic_pointer_cast(item); if (_name != ins->_name) { return _name.compare(ins->_name); } return 0; } //--------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolverQueueItemInstall.h000066400000000000000000000057251334444677500237050ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* QueueItem.h * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_QUEUEITEMINSTALL_H #define ZYPP_SOLVER_DETAIL_QUEUEITEMINSTALL_H #include #include #include "zypp/solver/detail/SolverQueueItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolverQueueItemInstall class SolverQueueItemInstall : public SolverQueueItem { private: std::string _name; bool _soft; // if triggered by a soft requirement (a recommends) public: SolverQueueItemInstall (const ResPool & pool, std::string name, bool soft = false); virtual ~SolverQueueItemInstall(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolverQueueItemInstall & obj) { return obj.dumpOn (str); } // ---------------------------------- accessors bool isSoft (void) const { return _soft; } // ---------------------------------- methods virtual bool addRule (sat::detail::CQueue & q); virtual SolverQueueItem_Ptr copy (void) const; virtual int cmp (SolverQueueItem_constPtr item) const; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_QUEUEITEMINSTALL_H libzypp-17.7.0/zypp/solver/detail/SolverQueueItemInstallOneOf.cc000066400000000000000000000106721334444677500247670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolverQueueItem.cc * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Logger.h" #include "zypp/solver/detail/SolverQueueItemInstallOneOf.h" #include "zypp/sat/Pool.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolverQueueItemInstallOneOf); //--------------------------------------------------------------------------- std::ostream & SolverQueueItemInstallOneOf::dumpOn( std::ostream & os ) const { os << "[" << (_soft?"Soft":"") << "InstallOneOf: "; for (PoolItemList::const_iterator iter = _oneOfList.begin(); iter != _oneOfList.end(); iter++) os << *iter; os << "]"; return os; } //--------------------------------------------------------------------------- SolverQueueItemInstallOneOf::SolverQueueItemInstallOneOf (const ResPool & pool, const PoolItemList & itemList, bool soft) : SolverQueueItem (QUEUE_ITEM_TYPE_INSTALL_ONE_OF, pool) , _oneOfList (itemList) , _soft (soft) { } SolverQueueItemInstallOneOf::~SolverQueueItemInstallOneOf() { } //--------------------------------------------------------------------------- bool SolverQueueItemInstallOneOf::addRule (sat::detail::CQueue & q) { bool ret = true; MIL << "Install one of " << (_soft ? "(soft):" : ":")<< endl; Queue qs; if (_soft) { queue_push( &(q), SOLVER_INSTALL | SOLVER_SOLVABLE_ONE_OF | SOLVER_WEAK); } else { queue_push( &(q), SOLVER_INSTALL | SOLVER_SOLVABLE_ONE_OF ); } queue_init(&qs); for (PoolItemList::const_iterator iter = _oneOfList.begin(); iter != _oneOfList.end(); iter++) { Id id = (*iter)->satSolvable().id(); if (id == ID_NULL) { ERR << *iter << " not found" << endl; ret = false; } else { MIL << " candidate:" << *iter << " with the SAT-Pool ID: " << id << endl; queue_push( &(qs), id ); } } sat::Pool satPool( sat::Pool::instance() ); queue_push( &(q), pool_queuetowhatprovides(satPool.get(), &qs)); queue_free(&qs); return ret; } SolverQueueItem_Ptr SolverQueueItemInstallOneOf::copy (void) const { SolverQueueItemInstallOneOf_Ptr new_installOneOf = new SolverQueueItemInstallOneOf (pool(), _oneOfList); new_installOneOf->SolverQueueItem::copy(this); new_installOneOf->_soft = _soft; return new_installOneOf; } int SolverQueueItemInstallOneOf::cmp (SolverQueueItem_constPtr item) const { int cmp = this->compare (item); if (cmp != 0) return cmp; SolverQueueItemInstallOneOf_constPtr install = dynamic_pointer_cast(item); return (_oneOfList == install->_oneOfList) ? 0 : -1; // more evaluation would be not useful } //--------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolverQueueItemInstallOneOf.h000066400000000000000000000061461334444677500246320ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* QueueItem.h * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_QUEUEITEMINSTALLONEOF_H #define ZYPP_SOLVER_DETAIL_QUEUEITEMINSTALLONEOF_H #include #include #include "zypp/solver/detail/SolverQueueItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolverQueueItemInstallOneOf class SolverQueueItemInstallOneOf : public SolverQueueItem { public: typedef std::list PoolItemList; private: PoolItemList _oneOfList; // List of candidates bool _soft; // if triggered by a soft requirement (a recommends) public: SolverQueueItemInstallOneOf (const ResPool & pool, const PoolItemList & itemList, bool soft = false); virtual ~SolverQueueItemInstallOneOf(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolverQueueItemInstallOneOf & obj) { return obj.dumpOn (str); } // ---------------------------------- accessors bool isSoft (void) const { return _soft; } // ---------------------------------- methods virtual bool addRule (sat::detail::CQueue & q); virtual SolverQueueItem_Ptr copy (void) const; virtual int cmp (SolverQueueItem_constPtr item) const; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_QUEUEITEMINSTALLONEOF_H libzypp-17.7.0/zypp/solver/detail/SolverQueueItemLock.cc000066400000000000000000000076201334444677500233210ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolverQueueItem.cc * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Logger.h" #include "zypp/solver/detail/SolverQueueItemLock.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolverQueueItemLock); //--------------------------------------------------------------------------- std::ostream & SolverQueueItemLock::dumpOn( std::ostream & os ) const { os << "[" << (_soft?"Soft":"") << "Lock: " << _item << "]"; return os; } //--------------------------------------------------------------------------- SolverQueueItemLock::SolverQueueItemLock (const ResPool & pool, const PoolItem & item, bool soft) : SolverQueueItem (QUEUE_ITEM_TYPE_LOCK, pool) , _item (item) , _soft (soft) { } SolverQueueItemLock::~SolverQueueItemLock() { } //--------------------------------------------------------------------------- bool SolverQueueItemLock::addRule (sat::detail::CQueue & q) { ::Id id = _item.satSolvable().id(); if (id == ID_NULL) { ERR << "Lock : " << _item << " not found" << endl; return false; } MIL << "Lock " << _item << " with the SAT-Pool ID: " << id << endl; if (_item.status().isInstalled()) { if (_soft) { queue_push( &(q), SOLVER_INSTALL | SOLVER_SOLVABLE | SOLVER_WEAK ); } else { queue_push( &(q), SOLVER_INSTALL | SOLVER_SOLVABLE ); } } else { if (_soft) { queue_push( &(q), SOLVER_ERASE | SOLVER_SOLVABLE | SOLVER_WEAK ); } else { queue_push( &(q), SOLVER_ERASE | SOLVER_SOLVABLE ); } } queue_push( &(q), id ); return true; } SolverQueueItem_Ptr SolverQueueItemLock::copy (void) const { SolverQueueItemLock_Ptr new_lock = new SolverQueueItemLock (pool(), _item); new_lock->SolverQueueItem::copy(this); new_lock->_soft = _soft; return new_lock; } int SolverQueueItemLock::cmp (SolverQueueItem_constPtr item) const { int cmp = this->compare (item); if (cmp != 0) return cmp; SolverQueueItemLock_constPtr lock = dynamic_pointer_cast(item); return compareByNVRA (_item, lock->_item); } //--------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolverQueueItemLock.h000066400000000000000000000057671334444677500231750ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* QueueItem.h * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_QUEUEITEMLOCK_H #define ZYPP_SOLVER_DETAIL_QUEUEITEMLOCK_H #include #include #include "zypp/solver/detail/SolverQueueItem.h" #include "zypp/PoolItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolverQueueItemLock class SolverQueueItemLock : public SolverQueueItem { private: PoolItem _item; // the item to-be-locked bool _soft; // if triggered by a soft requirement (a recommends) public: SolverQueueItemLock (const ResPool & pool, const PoolItem & item, bool soft = false); virtual ~SolverQueueItemLock(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolverQueueItemLock & obj) { return obj.dumpOn (str); } // ---------------------------------- accessors bool isSoft (void) const { return _soft; } // ---------------------------------- methods virtual bool addRule (sat::detail::CQueue & q); virtual SolverQueueItem_Ptr copy (void) const; virtual int cmp (SolverQueueItem_constPtr item) const; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_QUEUEITEMLOCK_H libzypp-17.7.0/zypp/solver/detail/SolverQueueItemUpdate.cc000066400000000000000000000072251334444677500236540ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* SolverQueueItem.cc * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ extern "C" { #include } #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/Logger.h" #include "zypp/solver/detail/SolverQueueItemUpdate.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// using namespace std; IMPL_PTR_TYPE(SolverQueueItemUpdate); //--------------------------------------------------------------------------- std::ostream & SolverQueueItemUpdate::dumpOn( std::ostream & os ) const { os << "[" << (_soft?"Soft":"") << "Update: " << _item << "]"; return os; } //--------------------------------------------------------------------------- SolverQueueItemUpdate::SolverQueueItemUpdate (const ResPool & pool, const PoolItem & item, bool soft) : SolverQueueItem (QUEUE_ITEM_TYPE_UPDATE, pool) , _item (item) , _soft (soft) { } SolverQueueItemUpdate::~SolverQueueItemUpdate() { } //--------------------------------------------------------------------------- bool SolverQueueItemUpdate::addRule (sat::detail::CQueue & q) { ::Id id = _item.satSolvable().id(); if (id == ID_NULL) { ERR << "Update explicit: " << _item << " not found" << endl; return false; } MIL << "Update explicit " << _item << " with the SAT-Pool ID: " << id << endl; queue_push( &(q), SOLVER_UPDATE | SOLVER_SOLVABLE ); queue_push( &(q), id ); return true; } SolverQueueItem_Ptr SolverQueueItemUpdate::copy (void) const { SolverQueueItemUpdate_Ptr new_update = new SolverQueueItemUpdate (pool(), _item); new_update->SolverQueueItem::copy(this); new_update->_soft = _soft; return new_update; } int SolverQueueItemUpdate::cmp (SolverQueueItem_constPtr item) const { int cmp = this->compare (item); if (cmp != 0) return cmp; SolverQueueItemUpdate_constPtr update = dynamic_pointer_cast(item); return compareByNVRA (_item, update->_item); } //--------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SolverQueueItemUpdate.h000066400000000000000000000060101334444677500235050ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* QueueItem.h * * Copyright (C) 2008 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_QUEUEITEMUPDATE_H #define ZYPP_SOLVER_DETAIL_QUEUEITEMUPDATE_H #include #include #include "zypp/solver/detail/SolverQueueItem.h" #include "zypp/PoolItem.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SolverQueueItemUpdate class SolverQueueItemUpdate : public SolverQueueItem { private: PoolItem _item; // the item to-be-updated bool _soft; // if triggered by a soft requirement (a recommends) public: SolverQueueItemUpdate (const ResPool & pool, const PoolItem & item, bool soft = false); virtual ~SolverQueueItemUpdate(); // ---------------------------------- I/O virtual std::ostream & dumpOn( std::ostream & str ) const; friend std::ostream& operator<<(std::ostream & str, const SolverQueueItemUpdate & obj) { return obj.dumpOn (str); } // ---------------------------------- accessors bool isSoft (void) const { return _soft; } // ---------------------------------- methods virtual bool addRule (sat::detail::CQueue & q); virtual SolverQueueItem_Ptr copy (void) const; virtual int cmp (SolverQueueItem_constPtr item) const; }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_QUEUEITEMUPDATE_H libzypp-17.7.0/zypp/solver/detail/SystemCheck.cc000066400000000000000000000116361334444677500216360ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/solver/detail/SystemCheck.cc * */ #include #include #include #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/String.h" #include "zypp/ZYppFactory.h" #include "zypp/ZConfig.h" #include "zypp/Pathname.h" #include "zypp/PathInfo.h" #include "zypp/solver/detail/SystemCheck.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// Pathname _file = ""; Pathname _dir = ""; CapabilitySet _require; CapabilitySet _conflict; typedef vector CapList; const SystemCheck & SystemCheck::instance() { static SystemCheck _val; return _val; } SystemCheck::SystemCheck() { if (_file.empty()) { _file = ZConfig::instance().solver_checkSystemFile(); loadFile(_file); } if (_dir.empty()) { _dir = ZConfig::instance().solver_checkSystemFileDir(); loadFiles(); } } bool SystemCheck::setFile(const Pathname & file) const{ MIL << "Setting checkFile to : " << file << endl; _file = file; loadFile(_file); return true; } bool SystemCheck::setDir(const Pathname & dir) const { MIL << "Setting checkFile directory to : " << dir << endl; loadFile(_file); _dir = dir; loadFiles(); return true; } const Pathname & SystemCheck::file() { return _file; } const Pathname & SystemCheck::dir() { return _dir; } const CapabilitySet & SystemCheck::requiredSystemCap() const{ return _require; } const CapabilitySet & SystemCheck::conflictSystemCap() const{ return _conflict; } bool SystemCheck::loadFile(Pathname & file, bool reset_caps) const{ Target_Ptr trg( getZYpp()->getTarget() ); if ( trg ) file = trg->assertRootPrefix( file ); PathInfo pi( file ); if ( ! pi.isFile() ) { WAR << "Can't read " << file << " " << pi << endl; return false; } if (reset_caps) { _require.clear(); _conflict.clear(); } std::ifstream infile( file.c_str() ); for( iostr::EachLine in( infile ); in; in.next() ) { std::string l( str::trim(*in) ); if ( ! l.empty() && l[0] != '#' ) { CapList capList; str::split( l, back_inserter(capList), ":" ); if (capList.size() == 2 ) { CapList::iterator it = capList.begin(); if (*it == "requires") { _require.insert(Capability(*(it+1))); } else if (*it == "conflicts") { _conflict.insert(Capability(*(it+1))); } else { ERR << "Wrong parameter: " << l << endl; } } else { ERR << "Wrong line: " << l << endl; } } } MIL << "Read " << pi << endl; return true; } bool SystemCheck::loadFiles() const { filesystem::dirForEach(_dir, [this](const Pathname & dir_r, const char *const & name_r)->bool { const std::string wanted = ".check"; Pathname pth = dir_r/name_r; if (pth.extension() != wanted) { MIL << "Skipping " << pth << " (not a *.check file)" << endl; return true; } else { MIL << "Reading " << pth << endl; return loadFile(pth, false /* do not reset caps */); } }); return true; } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const SystemCheck & obj ) { str << _file << endl; str << "requires" << endl; for (CapabilitySet::const_iterator it = _require.begin(); it != _require.end(); ++it) str << " " << *it << endl; str << "conflicts" << endl; for (CapabilitySet::const_iterator it = _conflict.begin(); it != _conflict.end(); ++it) str << " " << *it << endl; return str; } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/SystemCheck.h000066400000000000000000000053071334444677500214760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/SystemCheck.h * */ #ifndef ZYPP_TARGET_SYSTEMCHECK_H #define ZYPP_TARGET_SYSTEMCHECK_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include #include "zypp/base/NonCopyable.h" #include "zypp/Capability.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SystemCheck // /** Save and restore locale set from file. */ class SystemCheck : private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const SystemCheck & obj ); public: /** Singleton */ static const SystemCheck & instance(); /** Return the file path. */ const Pathname & file(); /** Return the directory path. */ const Pathname & dir(); /** Set configuration file of system requirements * Should be used for testcase only */ bool setFile(const Pathname & file) const; /** Set configuration directory for files of system * requirements. * Should be used for testcase only */ bool setDir(const Pathname & dir) const; /** Returns a list of required system capabilities. */ const CapabilitySet & requiredSystemCap() const; /** Returns a list of conflicting system capabilities. */ const CapabilitySet & conflictSystemCap() const; private: /** Ctor taking the file to read. */ SystemCheck(); bool loadFile(Pathname &file, bool reset_caps = true) const; bool loadFiles() const; }; /////////////////////////////////////////////////////////////////// /** \relates SystemCheck Stream output */ std::ostream & operator<<( std::ostream & str, const SystemCheck & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_TARGET_SYSTEMCHECK_H libzypp-17.7.0/zypp/solver/detail/Testcase.cc000066400000000000000000000465251334444677500211740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/solver/detail/Testcase.cc * */ #include #include #include #include #define ZYPP_USE_RESOLVER_INTERNALS #include "zypp/solver/detail/Testcase.h" #include "zypp/base/Logger.h" #include "zypp/base/LogControl.h" #include "zypp/base/GzStream.h" #include "zypp/base/String.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/ReferenceCounted.h" #include "zypp/parser/xml/XmlEscape.h" #include "zypp/ZConfig.h" #include "zypp/PathInfo.h" #include "zypp/ResPool.h" #include "zypp/Repository.h" #include "zypp/target/modalias/Modalias.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/solver/detail/Resolver.h" #include "zypp/solver/detail/SystemCheck.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// #define TAB "\t" #define TAB2 "\t\t" using namespace std; using namespace zypp::str; //--------------------------------------------------------------------------- inline std::string xml_escape( const std::string &text ) { return zypp::xml::escape(text); } inline std::string xml_tag_enclose( const std::string &text, const std::string &tag, bool escape = false ) { string result; result += "<" + tag + ">"; if ( escape) result += xml_escape(text); else result += text; result += ""; return result; } template std::string helixXML( const T &obj ); //undefined template<> std::string helixXML( const Edition &edition ) { stringstream str; str << xml_tag_enclose(edition.version(), "version"); if (!edition.release().empty()) str << xml_tag_enclose(edition.release(), "release"); if (edition.epoch() != Edition::noepoch) str << xml_tag_enclose(numstring(edition.epoch()), "epoch"); return str.str(); } template<> std::string helixXML( const Arch &arch ) { stringstream str; str << xml_tag_enclose(arch.asString(), "arch"); return str.str(); } template<> std::string helixXML( const Capability &cap ) { stringstream str; CapDetail detail = cap.detail(); if (detail.isSimple()) { if (detail.isVersioned()) { str << "" << endl; } else { str << "" << endl; } } else if (detail.isExpression()) { if (detail.capRel() == CapDetail::CAP_AND && detail.lhs().detail().isNamed() && detail.rhs().detail().isNamed()) { // packageand dependency str << "" << endl; } else if (detail.capRel() == CapDetail::CAP_NAMESPACE && detail.lhs().id() == NAMESPACE_OTHERPROVIDERS) { str << "" << endl; } else { // modalias ? IdString packageName; if (detail.capRel() == CapDetail::CAP_AND) { packageName = IdString(detail.lhs().id()); detail = detail.rhs().detail(); } if (detail.capRel() == CapDetail::CAP_NAMESPACE && detail.lhs().id() == NAMESPACE_MODALIAS) { str << "" << endl; } else { str << "" << endl; } } } else { str << "" << endl; } return str.str(); } template<> std::string helixXML( const Capabilities &caps ) { stringstream str; Capabilities::const_iterator it = caps.begin(); str << endl; for ( ; it != caps.end(); ++it) { str << TAB2 << helixXML((*it)); } str << TAB; return str.str(); } template<> std::string helixXML( const CapabilitySet &caps ) { stringstream str; CapabilitySet::const_iterator it = caps.begin(); str << endl; for ( ; it != caps.end(); ++it) { str << TAB2 << helixXML((*it)); } str << TAB; return str.str(); } inline string helixXML( const PoolItem & obj, Dep deptag_r ) { stringstream out; Capabilities caps( obj[deptag_r] ); if ( ! caps.empty() ) out << TAB << xml_tag_enclose(helixXML(caps), deptag_r.asString()) << endl; return out.str(); } std::string helixXML( const PoolItem & item ) { stringstream str; str << "<" << item.kind() << ">" << endl; str << TAB << xml_tag_enclose( item.name(), "name", true ) << endl; str << TAB << xml_tag_enclose( item.vendor().asString(), "vendor", true ) << endl; str << TAB << xml_tag_enclose( item.buildtime().asSeconds(), "buildtime", true ) << endl; if ( isKind( item ) ) { str << TAB << "" << endl << TAB << "" << endl; str << TAB2 << helixXML( item.arch() ) << endl; str << TAB2 << helixXML( item.edition() ) << endl; str << TAB << "" << endl << TAB << "" << endl; } else { str << TAB << helixXML( item.arch() ) << endl; str << TAB << helixXML( item.edition() ) << endl; } str << helixXML( item, Dep::PROVIDES ); str << helixXML( item, Dep::PREREQUIRES ); str << helixXML( item, Dep::CONFLICTS ); str << helixXML( item, Dep::OBSOLETES ); str << helixXML( item, Dep::REQUIRES ); str << helixXML( item, Dep::RECOMMENDS ); str << helixXML( item, Dep::ENHANCES ); str << helixXML( item, Dep::SUPPLEMENTS ); str << helixXML( item, Dep::SUGGESTS ); str << "" << endl; return str.str(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : HelixResolvable /** * Creates a file in helix format which includes all available * or installed packages,patches,selections..... **/ class HelixResolvable : public base::ReferenceCounted, private base::NonCopyable{ private: std::string dumpFile; // Path of the generated testcase ofgzstream *file; public: HelixResolvable (const std::string & path); ~HelixResolvable (); void addResolvable (const PoolItem item) { *file << helixXML (item); } std::string filename () { return dumpFile; } }; DEFINE_PTR_TYPE(HelixResolvable); IMPL_PTR_TYPE(HelixResolvable); typedef std::map RepositoryTable; HelixResolvable::HelixResolvable(const std::string & path) :dumpFile (path) { file = new ofgzstream(path.c_str()); if (!file) { ZYPP_THROW (Exception( "Can't open " + path ) ); } *file << "" << endl; } HelixResolvable::~HelixResolvable() { *file << "" << endl; delete(file); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : HelixControl /** * Creates a file in helix format which contains all controll * action of a testcase ( file is known as *-test.xml) **/ class HelixControl { private: std::string dumpFile; // Path of the generated testcase std::ofstream *file; bool _inSetup; public: HelixControl (const std::string & controlPath, const RepositoryTable & sourceTable, const Arch & systemArchitecture, const target::Modalias::ModaliasList & modaliasList, const std::set & multiversionSpec, const std::string & systemPath); HelixControl (); ~HelixControl (); void closeSetup() { if ( _inSetup ) { *file << "" << endl << "" << endl; _inSetup = false; } } void addTagIf( const std::string & tag_r, bool yesno_r = true ) { if ( yesno_r ) *file << (_inSetup ? TAB : "") << "<" << tag_r << "/>" << endl; } void installResolvable( const PoolItem & pi_r ); void lockResolvable( const PoolItem & pi_r ); void keepResolvable( const PoolItem & pi_r ); void deleteResolvable( const PoolItem & pi_r ); void addDependencies (const CapabilitySet &capRequire, const CapabilitySet &capConflict); void addUpgradeRepos( const std::set & upgradeRepos_r ); std::string filename () { return dumpFile; } }; HelixControl::HelixControl(const std::string & controlPath, const RepositoryTable & repoTable, const Arch & systemArchitecture, const target::Modalias::ModaliasList & modaliasList, const std::set & multiversionSpec, const std::string & systemPath) :dumpFile (controlPath) ,_inSetup( true ) { file = new ofstream(controlPath.c_str()); if (!file) { ZYPP_THROW (Exception( "Can't open " + controlPath ) ); } *file << "" << endl << "" << endl << "" << endl << "" << endl << TAB << "" << endl << endl; for ( RepositoryTable::const_iterator it = repoTable.begin(); it != repoTable.end(); ++it ) { RepoInfo repo = it->first.info(); *file << TAB << "" << endl; *file << TAB << "first.id()) << "-package.xml.gz\" name=\"" << repo.alias() << "\"" << " priority=\"" << repo.priority() << "\" />" << endl << endl; } // HACK: directly access sat::pool const sat::Pool & satpool( sat::Pool::instance() ); // RequestedLocales const LocaleSet & addedLocales( satpool.getAddedRequestedLocales() ); const LocaleSet & removedLocales( satpool.getRemovedRequestedLocales() ); const LocaleSet & requestedLocales( satpool.getRequestedLocales() ); for ( Locale l : requestedLocales ) { const char * fate = ( addedLocales.count(l) ? "\" fate=\"added" : "" ); *file << TAB << "" << endl; } for ( Locale l : removedLocales ) { *file << TAB << "" << endl; } // AutoInstalled for ( IdString::IdType n : satpool.autoInstalled() ) { *file << TAB << "" << endl; } for_( it, modaliasList.begin(), modaliasList.end() ) { *file << TAB << "" << endl; } for_( it, multiversionSpec.begin(), multiversionSpec.end() ) { *file << TAB << "" << endl; } // setup continued outside.... } HelixControl::HelixControl() :dumpFile ("/var/log/YaST2/solverTestcase/solver-test.xml") { HelixControl (dumpFile); } HelixControl::~HelixControl() { closeSetup(); // in case it is still open *file << "" << endl << "" << endl; delete(file); } void HelixControl::installResolvable( const PoolItem & pi_r ) { *file << "" << endl; } void HelixControl::lockResolvable( const PoolItem & pi_r ) { *file << "" << endl; } void HelixControl::keepResolvable( const PoolItem & pi_r ) { *file << "" << endl; } void HelixControl::deleteResolvable( const PoolItem & pi_r ) { *file << "" << endl; } void HelixControl::addDependencies (const CapabilitySet & capRequire, const CapabilitySet & capConflict) { for (CapabilitySet::const_iterator iter = capRequire.begin(); iter != capRequire.end(); iter++) { *file << "asString() << "\"" << "/>" << endl; } for (CapabilitySet::const_iterator iter = capConflict.begin(); iter != capConflict.end(); iter++) { *file << "asString() << "\"" << "/>" << endl; } } void HelixControl::addUpgradeRepos( const std::set & upgradeRepos_r ) { for_( it, upgradeRepos_r.begin(), upgradeRepos_r.end() ) { *file << "alias() << "\"/>" << endl; } } //--------------------------------------------------------------------------- Testcase::Testcase() :dumpPath("/var/log/YaST2/solverTestcase") {} Testcase::Testcase(const std::string & path) :dumpPath(path) {} Testcase::~Testcase() {} bool Testcase::createTestcase(Resolver & resolver, bool dumpPool, bool runSolver) { PathInfo path (dumpPath); if ( !path.isExist() ) { if (zypp::filesystem::assert_dir (dumpPath)!=0) { ERR << "Cannot create directory " << dumpPath << endl; return false; } } else { if (!path.isDir()) { ERR << dumpPath << " is not a directory." << endl; return false; } // remove old stuff if pool will be dump if (dumpPool) zypp::filesystem::clean_dir (dumpPath); } if (runSolver) { zypp::base::LogControl::TmpLineWriter tempRedirect; zypp::base::LogControl::instance().logfile( dumpPath +"/y2log" ); zypp::base::LogControl::TmpExcessive excessive; resolver.resolvePool(); } ResPool pool = resolver.pool(); RepositoryTable repoTable; PoolItemList items_to_install; PoolItemList items_to_remove; PoolItemList items_locked; PoolItemList items_keep; HelixResolvable_Ptr system = NULL; if (dumpPool) system = new HelixResolvable(dumpPath + "/solver-system.xml.gz"); for ( const PoolItem & pi : pool ) { if ( system && pi.status().isInstalled() ) { // system channel system->addResolvable( pi ); } else { // repo channels Repository repo = pi.repository(); if (dumpPool) { if (repoTable.find (repo) == repoTable.end()) { repoTable[repo] = new HelixResolvable(dumpPath + "/" + str::numstring((long)repo.id()) + "-package.xml.gz"); } repoTable[repo]->addResolvable( pi ); } } if ( pi.status().isToBeInstalled() && !(pi.status().isBySolver())) { items_to_install.push_back( pi ); } if ( pi.status().isKept() && !(pi.status().isBySolver())) { items_keep.push_back( pi ); } if ( pi.status().isToBeUninstalled() && !(pi.status().isBySolver())) { items_to_remove.push_back( pi ); } if ( pi.status().isLocked() && !(pi.status().isBySolver())) { items_locked.push_back( pi ); } } // writing control file "*-test.xml" HelixControl control (dumpPath + "/solver-test.xml", repoTable, ZConfig::instance().systemArchitecture(), target::Modalias::instance().modaliasList(), ZConfig::instance().multiversionSpec(), "solver-system.xml.gz"); // In : resolver flags,... control.addTagIf( "ignorealreadyrecommended", resolver.ignoreAlreadyRecommended() ); control.addTagIf( "onlyRequires", resolver.onlyRequires() ); control.addTagIf( "forceResolve", resolver.forceResolve() ); control.addTagIf( "cleandepsOnRemove", resolver.cleandepsOnRemove() ); control.addTagIf( "allowDowngrade", resolver.allowDowngrade() ); control.addTagIf( "allowNameChange", resolver.allowNameChange() ); control.addTagIf( "allowArchChange", resolver.allowArchChange() ); control.addTagIf( "allowVendorChange", resolver.allowVendorChange() ); control.addTagIf( "dupAllowDowngrade", resolver.dupAllowDowngrade() ); control.addTagIf( "dupAllowNameChange", resolver.dupAllowNameChange() ); control.addTagIf( "dupAllowArchChange", resolver.dupAllowArchChange() ); control.addTagIf( "dupAllowVendorChange", resolver.dupAllowVendorChange() ); control.closeSetup(); // Entering ... for ( const PoolItem & pi : items_to_install ) { control.installResolvable( pi ); } for ( const PoolItem & pi : items_locked ) { control.lockResolvable( pi ); } for ( const PoolItem & pi : items_keep ) { control.keepResolvable( pi ); } for ( const PoolItem & pi : items_to_remove ) { control.deleteResolvable( pi ); } control.addDependencies (resolver.extraRequires(), resolver.extraConflicts()); control.addDependencies (SystemCheck::instance().requiredSystemCap(), SystemCheck::instance().conflictSystemCap()); control.addUpgradeRepos( resolver.upgradeRepos() ); control.addTagIf( "distupgrade", resolver.isUpgradeMode() ); control.addTagIf( "update", resolver.isUpdateMode() ); control.addTagIf( "verify", resolver.isVerifyingMode() ); return true; } /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/solver/detail/Testcase.h000066400000000000000000000045631334444677500210320ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/solver/detail/Testcase.h * */ #ifndef ZYPP_SOLVER_DETAIL_TESTCASE_H #define ZYPP_SOLVER_DETAIL_TESTCASE_H #ifndef ZYPP_USE_RESOLVER_INTERNALS #error Do not directly include this file! #else #include ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// namespace detail { /////////////////////////////////////////////////////////////////// class Resolver; /////////////////////////////////////////////////////////////////// // // CLASS NAME : Testcase /** * Generating a testcase of the current pool and solver state. **/ class Testcase { private: std::string dumpPath; // Path of the generated testcase public: Testcase(); Testcase( const std::string & path ); ~Testcase(); bool createTestcase( Resolver & resolver, bool dumpPool = true, bool runSolver = true ); }; /////////////////////////////////////////////////////////////////// };// namespace detail ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// };// namespace solver /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// };// namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_USE_RESOLVER_INTERNALS #endif // ZYPP_SOLVER_DETAIL_TESTCASE_H libzypp-17.7.0/zypp/solver/detail/Types.h000066400000000000000000000036761334444677500203670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* Types.h * * Copyright (C) 2005 SUSE Linux Products GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef ZYPP_SOLVER_DETAIL_TYPES_H #define ZYPP_SOLVER_DETAIL_TYPES_H #include #include "zypp/base/PtrTypes.h" ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// namespace solver { ///////////////////////////////////////////////////////////////////// namespace detail { // A few type names exposed in the public API // class Resolver; typedef Resolver ResolverInternal; ///< Preferred name in API class ItemCapKind; typedef std::list ItemCapKindList; DEFINE_PTR_TYPE(SolverQueueItem); typedef std::list SolverQueueItemList; DEFINE_PTR_TYPE(SolutionAction); typedef std::list SolutionActionList; } // namespace detail ///////////////////////////////////////////////////////////////////// } // namespace solver /////////////////////////////////////////////////////////////////////// } // namespace zypp ///////////////////////////////////////////////////////////////////////// #endif // ZYPP_SOLVER_DETAIL_TYPES_H libzypp-17.7.0/zypp/target/000077500000000000000000000000001334444677500156105ustar00rootroot00000000000000libzypp-17.7.0/zypp/target/CommitPackageCache.cc000066400000000000000000000132461334444677500215550ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/CommitPackageCache.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/target/CommitPackageCache.h" #include "zypp/target/CommitPackageCacheImpl.h" #include "zypp/target/CommitPackageCacheReadAhead.h" using std::endl; #include "zypp/target/rpm/librpmDb.h" #include "zypp/repo/PackageProvider.h" #include "zypp/repo/DeltaCandidates.h" #include "zypp/ResPool.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { /////////////////////////////////////////////////////////////////// /// \class QueryInstalledEditionHelper /// \short Helper for PackageProvider queries during download. /////////////////////////////////////////////////////////////////// struct QueryInstalledEditionHelper { bool operator()( const std::string & name_r, const Edition & ed_r, const Arch & arch_r ) const { rpm::librpmDb::db_const_iterator it; for ( it.findByName( name_r ); *it; ++it ) { if ( arch_r == it->tag_arch() && ( ed_r == Edition::noedition || ed_r == it->tag_edition() ) ) { return true; } } return false; } }; } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // class RepoProvidePackage // /////////////////////////////////////////////////////////////////// struct RepoProvidePackage::Impl { repo::RepoMediaAccess _access; std::list _repos; repo::PackageProviderPolicy _packageProviderPolicy; }; RepoProvidePackage::RepoProvidePackage() : _impl( new Impl ) { const ResPool & pool( ResPool::instance() ); _impl->_repos.insert( _impl->_repos.begin(), pool.knownRepositoriesBegin(), pool.knownRepositoriesEnd() ); _impl->_packageProviderPolicy.queryInstalledCB( QueryInstalledEditionHelper() ); } RepoProvidePackage::~RepoProvidePackage() {} ManagedFile RepoProvidePackage::operator()( const PoolItem & pi_r, bool fromCache_r ) { ManagedFile ret; if ( fromCache_r ) { repo::PackageProvider pkgProvider( _impl->_access, pi_r, _impl->_packageProviderPolicy ); ret = pkgProvider.providePackageFromCache(); } else if ( pi_r.isKind() ) // may make use of deltas { repo::DeltaCandidates deltas( _impl->_repos, pi_r.name() ); repo::PackageProvider pkgProvider( _impl->_access, pi_r, deltas, _impl->_packageProviderPolicy ); return pkgProvider.providePackage(); } else // SrcPackage or throws { repo::PackageProvider pkgProvider( _impl->_access, pi_r, _impl->_packageProviderPolicy ); return pkgProvider.providePackage(); } return ret; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : CommitPackageCache // /////////////////////////////////////////////////////////////////// CommitPackageCache::CommitPackageCache( Impl * pimpl_r ) : _pimpl( pimpl_r ) { assert( _pimpl ); } CommitPackageCache::CommitPackageCache( const PackageProvider & packageProvider_r ) { if ( getenv("ZYPP_COMMIT_NO_PACKAGE_CACHE") ) { MIL << "$ZYPP_COMMIT_NO_PACKAGE_CACHE is set." << endl; _pimpl.reset( new Impl( packageProvider_r ) ); // no cache } else { _pimpl.reset( new CommitPackageCacheReadAhead( packageProvider_r ) ); } assert( _pimpl ); } CommitPackageCache::CommitPackageCache( const Pathname & /*rootDir_r*/, const PackageProvider & packageProvider_r ) : CommitPackageCache( packageProvider_r ) {} CommitPackageCache::~CommitPackageCache() {} void CommitPackageCache::setCommitList( std::vector commitList_r ) { _pimpl->setCommitList( commitList_r ); } ManagedFile CommitPackageCache::get( const PoolItem & citem_r ) { return _pimpl->get( citem_r ); } bool CommitPackageCache::preloaded() const { return _pimpl->preloaded(); } void CommitPackageCache::preloaded( bool newval_r ) { _pimpl->preloaded( newval_r ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const CommitPackageCache & obj ) { return str << *obj._pimpl; } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/CommitPackageCache.h000066400000000000000000000105061334444677500214130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/CommitPackageCache.h * */ #ifndef ZYPP_TARGET_COMMITPACKAGECACHE_H #define ZYPP_TARGET_COMMITPACKAGECACHE_H #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Function.h" #include "zypp/PoolItem.h" #include "zypp/Pathname.h" #include "zypp/ManagedFile.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class RepoProvidePackage /// \short Default PackageProvider for \ref CommitPackageCache /// /// \p pool_r \ref ResPool used to get candidates /// \p pi item to be commited /////////////////////////////////////////////////////////////////// class RepoProvidePackage { public: RepoProvidePackage(); ~RepoProvidePackage(); /** Provide package optionally fron cache only. */ ManagedFile operator()( const PoolItem & pi, bool fromCache_r ); private: struct Impl; RW_pointer _impl; }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : CommitPackageCache // /** Target::commit helper optimizing package provision. */ class CommitPackageCache { friend std::ostream & operator<<( std::ostream & str, const CommitPackageCache & obj ); public: typedef function PackageProvider; public: /** Ctor */ CommitPackageCache( const PackageProvider & packageProvider_r = RepoProvidePackage() ); /** \deprecated Legacy Ctor; Pathname rootDir_r is not used. * The repositories RepoInfo::packagesPath defines the cache location. */ CommitPackageCache( const Pathname & /*rootDir_r*/, const PackageProvider & packageProvider_r = RepoProvidePackage() ) ZYPP_DEPRECATED; /** Dtor */ ~CommitPackageCache(); public: /** Download(commit) sequence of solvables to compute read ahead. */ void setCommitList( std::vector commitList_r ); /** \overload */ template void setCommitList( TIterator begin_r, TIterator end_r ) { setCommitList( std::vector( begin_r, end_r ) ); } /** Provide a package. */ ManagedFile get( const PoolItem & citem_r ); /** \overload */ ManagedFile get( sat::Solvable citem_r ) { return get( PoolItem(citem_r) ); } /** Whether preloaded hint is set. * If preloaded the cache tries to avoid trigering the infoInCache CB, * based on the assumption this was already done when preloading the cache. */ bool preloaded() const; /** Set preloaded hint. */ void preloaded( bool newval_r ); public: /** Implementation. */ class Impl; /** Ctor taking an implementation. */ explicit CommitPackageCache( Impl * pimpl_r ); private: /** Pointer to implementation. */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates CommitPackageCache Stream output */ std::ostream & operator<<( std::ostream & str, const CommitPackageCache & obj ); ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_COMMITPACKAGECACHE_H libzypp-17.7.0/zypp/target/CommitPackageCacheImpl.cc000066400000000000000000000025551334444677500224000ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/CommitPackageCacheImpl.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/target/CommitPackageCacheImpl.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/CommitPackageCacheImpl.h000066400000000000000000000100051334444677500222270ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/CommitPackageCacheImpl.h * */ #ifndef ZYPP_TARGET_COMMITPACKAGECACHEIMPL_H #define ZYPP_TARGET_COMMITPACKAGECACHEIMPL_H #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/target/CommitPackageCache.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : CommitPackageCache::Impl // /** Base for CommitPackageCache implementations (implements no chache). * * All packages are directly retrieved from the source via the * PackageProvider passed to the ctor. The PackageProvider is expected * to throw or return an empty ManagedFile if the package can't be provided. */ class CommitPackageCache::Impl { public: typedef CommitPackageCache::PackageProvider PackageProvider; public: Impl( const PackageProvider & packageProvider_r ) : _packageProvider( packageProvider_r ) {} virtual ~Impl() {} public: /** Provide the package. * Derived classes overload this. */ virtual ManagedFile get( const PoolItem & citem_r ) { return sourceProvidePackage( citem_r ); } void setCommitList( std::vector commitList_r ) { _commitList = commitList_r; } const std::vector & commitList() const { return _commitList; } bool preloaded() const { return _preloaded; } void preloaded( bool newval_r ) { _preloaded = newval_r; } protected: /** Let the Source provide the package. */ virtual ManagedFile sourceProvidePackage( const PoolItem & pi ) const { if ( ! _packageProvider ) { ZYPP_THROW( Exception("No package provider configured.") ); } ManagedFile ret( _packageProvider( pi, /*cached only*/false ) ); if ( ret.value().empty() ) { ZYPP_THROW( Exception("Package provider failed.") ); } return ret; } /** Let the Source provide an already cached package. */ virtual ManagedFile sourceProvideCachedPackage( const PoolItem & pi ) const { if ( ! _packageProvider ) { ZYPP_THROW( Exception("No package provider configured.") ); } return _packageProvider( pi, /*cached only*/true ); } private: std::vector _commitList; PackageProvider _packageProvider; DefaultIntegral _preloaded; }; /////////////////////////////////////////////////////////////////// /** \relates CommitPackageCache::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const CommitPackageCache::Impl & obj ) { return str << "CommitPackageCache::Impl"; } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_COMMITPACKAGECACHEIMPL_H libzypp-17.7.0/zypp/target/CommitPackageCacheReadAhead.cc000066400000000000000000000141711334444677500232720ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/CommitPackageCacheReadAhead.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/PathInfo.h" #include "zypp/RepoInfo.h" #include "zypp/Package.h" #include "zypp/target/CommitPackageCacheReadAhead.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : IMediaKey // /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const IMediaKey & obj ) { return str << "[S" << obj._repo.id() << ":" << obj._mediaNr << "]" << " " << obj._repo.info().alias(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : CommitPackageCacheReadAhead // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : CommitPackageCacheReadAhead::CommitPackageCacheReadAhead // METHOD TYPE : Ctor // CommitPackageCacheReadAhead::CommitPackageCacheReadAhead( const PackageProvider & packageProvider_r ) : CommitPackageCache::Impl( packageProvider_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : CommitPackageCacheReadAhead::onInteractiveMedia // METHOD TYPE : bool // bool CommitPackageCacheReadAhead::onInteractiveMedia( const PoolItem & pi ) const { if ( pi->mediaNr() == 0 ) // no media access at all return false; if ( pi->repoInfo().baseUrlsEmpty() ) return false; // no Url - should actually not happen std::string scheme( pi->repoInfo().baseUrlsBegin()->getScheme() ); return ( scheme == "dvd" || scheme == "cd" ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : CommitPackageCacheReadAhead::cacheLastInteractive // METHOD TYPE : void // void CommitPackageCacheReadAhead::cacheLastInteractive( const PoolItem & citem_r ) { // Fill cache errors are never proagated. try { doCacheLastInteractive( citem_r ); } catch ( const Exception & excpt_r ) { ZYPP_CAUGHT( excpt_r ); WAR << "Failed to cache " << _lastInteractive << endl; } } /////////////////////////////////////////////////////////////////// // // METHOD NAME : CommitPackageCacheReadAhead::doCacheLastInteractive // METHOD TYPE : void // void CommitPackageCacheReadAhead::doCacheLastInteractive( const PoolItem & citem_r ) { unsigned addToCache = 0; bool sawCitem = false; // Collect all remaining packages to install from // _lastInteractive media. (just the PoolItem data) for_( it, commitList().begin(), commitList().end() ) { PoolItem pi( *it ); if ( ! sawCitem ) { if ( pi == citem_r ) sawCitem = true; continue; } if ( IMediaKey( pi ) == _lastInteractive && pi.status().isToBeInstalled() && isKind(pi.resolvable()) ) { if ( ! pi->asKind()->isCached() ) { ManagedFile fromSource( sourceProvidePackage( pi ) ); if ( fromSource->empty() ) { ERR << "Copy to cache failed on " << fromSource << endl; ZYPP_THROW( Exception("Copy to cache failed.") ); } fromSource.resetDispose(); // keep the package file in the cache ++addToCache; } } } if ( addToCache ) MIL << "Cached " << _lastInteractive << ": " << addToCache << " items." << endl; } /////////////////////////////////////////////////////////////////// // // METHOD NAME : CommitPackageCacheReadAhead::get // METHOD TYPE : ManagedFile // ManagedFile CommitPackageCacheReadAhead::get( const PoolItem & citem_r ) { ManagedFile ret; if ( preloaded() ) { // Check whether it's cached. ManagedFile ret( sourceProvideCachedPackage( citem_r ) ); if ( ! ret->empty() ) return ret; } // else: we head for sourceProvidePackage(), even if the package // was cached. The actual difference is that sourceProvidePackage // will trigger the infoInCache CB that informs the application. // Once the cache is preloaded we try to avoid this CB. // Preload cache if a CD/DVD change is pending to avoid // switching back and forth... if ( onInteractiveMedia( citem_r ) ) { ret = sourceProvideCachedPackage( citem_r ); if ( ! ret->empty() ) return ret; IMediaKey current( citem_r ); if ( current != _lastInteractive ) { if ( _lastInteractive != IMediaKey() ) { cacheLastInteractive( citem_r ); } DBG << "Interactive change [" << ++_dbgChanges << "] from " << _lastInteractive << " to " << current << endl; _lastInteractive = current; } } // Provide and return the file from media. return sourceProvidePackage( citem_r ); } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/CommitPackageCacheReadAhead.h000066400000000000000000000101601334444677500231260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/CommitPackageCacheReadAhead.h * */ #ifndef ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H #define ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H #include #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/base/DefaultIntegral.h" #include "zypp/Repository.h" #include "zypp/TmpPath.h" #include "zypp/target/CommitPackageCacheImpl.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : IMediaKey // /** Helper storing a source id and media number. */ struct IMediaKey { IMediaKey() {} explicit IMediaKey( const PoolItem & obj_r ) : _repo( obj_r->repository() ) , _mediaNr( obj_r->mediaNr() ) {} explicit IMediaKey( const ResObject::constPtr & obj_r ) : _repo( obj_r->repository() ) , _mediaNr( obj_r->mediaNr() ) {} IMediaKey( const Repository & repo, unsigned mediaNr_r ) : _repo( repo ) , _mediaNr( mediaNr_r ) {} bool operator==( const IMediaKey & rhs ) const { return( _repo == rhs._repo && _mediaNr == rhs._mediaNr ); } bool operator!=( const IMediaKey & rhs ) const { return ! operator==( rhs ); } bool operator<( const IMediaKey & rhs ) const { return( _repo.id() < rhs._repo.id() || ( _repo.id() == rhs._repo.id() && _mediaNr < rhs._mediaNr ) ); } Repository _repo; DefaultIntegral _mediaNr; }; /////////////////////////////////////////////////////////////////// std::ostream & operator<<( std::ostream & str, const IMediaKey & obj ); /////////////////////////////////////////////////////////////////// // // CLASS NAME : CommitPackageCacheReadAhead // /** */ class CommitPackageCacheReadAhead : public CommitPackageCache::Impl { public: CommitPackageCacheReadAhead( const PackageProvider & packageProvider_r ); public: /** Provide the package. Either from Source or from cache. */ virtual ManagedFile get( const PoolItem & citem_r ); private: /** Return whether \a pi is located on a CD/DVD */ bool onInteractiveMedia( const PoolItem & pi ) const; private: /** Fill the cache. * Called before changing from one interactive media to another. * Performs the read ahead of packages trying to avoid the necessity * of switching back to the current media later. */ void cacheLastInteractive( const PoolItem & citem_r ); /** cacheLastInteractive helper . */ void doCacheLastInteractive( const PoolItem & citem_r ); private: DefaultIntegral _dbgChanges; IMediaKey _lastInteractive; //Pathname _rootDir; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H libzypp-17.7.0/zypp/target/HardLocksFile.cc000066400000000000000000000054431334444677500205770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/HardLocksFile.cc * */ #include #include #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/String.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/Date.h" #include "zypp/target/HardLocksFile.h" #include "zypp/PoolQueryUtil.tcc" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// void HardLocksFile::load( const Pathname & file_r, Data & data_r ) { PathInfo pi( file_r ); if ( ! pi.isFile() ) { WAR << "Can't read " << pi << endl; return; } readPoolQueriesFromFile( file_r, std::back_inserter( data_r ) ); MIL << "Read " << pi << endl; } void HardLocksFile::store( const Pathname & file_r, const Data & data_r ) { filesystem::TmpFile tmp( filesystem::TmpFile::makeSibling( file_r ) ); filesystem::chmod( tmp.path(), 0644 ); writePoolQueriesToFile( tmp.path(), data_r.begin(), data_r.end() ); if ( true ) // by now: no error info from writePoolQueriesToFile { filesystem::rename( tmp.path(), file_r ); MIL << "Wrote " << PathInfo(file_r) << endl; } else { ERR << "Can't write " << PathInfo(tmp.path()) << endl; } } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const HardLocksFile & obj ) { str << obj.file() << ' '; if ( obj._dataPtr ) str << obj.data(); else str << "(unloaded)"; return str; } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/HardLocksFile.h000066400000000000000000000102371334444677500204360ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/HardLocksFile.h * */ #ifndef ZYPP_TARGET_HARDLOCKSFILE_H #define ZYPP_TARGET_HARDLOCKSFILE_H #include #include "zypp/base/PtrTypes.h" #include "zypp/Pathname.h" #include "zypp/pool/PoolTraits.h" #include "zypp/PoolQuery.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : HardLocksFile // /** Save and restore hardlocks. */ class HardLocksFile { friend std::ostream & operator<<( std::ostream & str, const HardLocksFile & obj ); public: typedef pool::PoolTraits::HardLockQueries Data; public: /** Ctor taking the file to read/write. */ HardLocksFile( const Pathname & file_r ) : _file( file_r ) {} /** Return the file path. */ const Pathname & file() const { return _file; } /** Return the data. * The file is read once on demand. Returns empty \ref Data if * the file does not exist or is not readable. */ const Data & data() const { if ( !_dataPtr ) { _dataPtr.reset( new Data ); Data & mydata( *_dataPtr ); load( _file, mydata ); } return *_dataPtr; } /** Store new \ref Data. * Write the new \ref Data to file, unless we know it * did not change. The directory containing file must * exist. */ void setData( const Data & data_r ) { if ( !_dataPtr ) { if ( data_r.empty() ) return; // bsc#1096803: Prevent against empty commit without Target having been been loaded (!_dataPtr ) _dataPtr.reset( new Data ); } if ( differs( *_dataPtr, data_r ) ) { store( _file, data_r ); *_dataPtr = data_r; } } private: /** Helper testing whether two \ref Data differ. */ bool differs( const Data & lhs, const Data & rhs ) const { if ( lhs.size() != rhs.size() ) return true; // Complete diff is too expensive and not necessary here. // Just check for the same sequence of items. Data::const_iterator rit = rhs.begin(); for_( it, lhs.begin(), lhs.end() ) { if ( *it != *rit ) return true; ++rit; } return false; } /** Read \ref Data from \c file_r. */ static void load( const Pathname & file_r, Data & data_r ); /** Write \ref Data to \c file_r. */ static void store( const Pathname & file_r, const Data & data_r ); private: Pathname _file; mutable scoped_ptr _dataPtr; }; /////////////////////////////////////////////////////////////////// /** \relates HardLocksFile Stream output */ std::ostream & operator<<( std::ostream & str, const HardLocksFile & obj ); ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_HARDLOCKSFILE_H libzypp-17.7.0/zypp/target/RequestedLocalesFile.cc000066400000000000000000000061531334444677500221700ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/RequestedLocalesFile.cc * */ #include #include #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/String.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/Date.h" #include "zypp/target/RequestedLocalesFile.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// void RequestedLocalesFile::load( const Pathname & file_r, LocaleSet & locales_r ) { PathInfo pi( file_r ); if ( ! pi.isFile() ) { WAR << "Can't read " << pi << endl; return; } std::ifstream infile( file_r.c_str() ); for( iostr::EachLine in( infile ); in; in.next() ) { std::string l( str::trim(*in) ); if ( ! l.empty() && l[0] != '#' ) { locales_r.insert( Locale(l) ); } } MIL << "Read " << pi << endl; } void RequestedLocalesFile::store( const Pathname & file_r, const LocaleSet & locales_r ) { filesystem::TmpFile tmp( filesystem::TmpFile::makeSibling( file_r ) ); filesystem::chmod( tmp.path(), 0644 ); std::ofstream outs( tmp.path().c_str() ); outs << "# zypp::RequestedLocales generated " << Date::now() << endl; dumpRange( outs, locales_r.begin(), locales_r.end(), "#", "\n", "\n", "\n", "#\n" ); outs.close(); if ( outs.good() ) { filesystem::rename( tmp.path(), file_r ); MIL << "Wrote " << PathInfo(file_r) << endl; } else { ERR << "Can't write " << PathInfo(tmp.path()) << endl; } } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const RequestedLocalesFile & obj ) { str << obj.file() << ' '; if ( obj._localesPtr ) str << obj.locales(); else str << "(unloaded)"; return str; } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/RequestedLocalesFile.h000066400000000000000000000076541334444677500220410ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/RequestedLocalesFile.h * */ #ifndef ZYPP_TARGET_REQUESTEDLOCALESFILE_H #define ZYPP_TARGET_REQUESTEDLOCALESFILE_H #include #include "zypp/base/PtrTypes.h" #include "zypp/Pathname.h" #include "zypp/Locale.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : RequestedLocalesFile // /** Save and restore locale set from file. */ class RequestedLocalesFile { friend std::ostream & operator<<( std::ostream & str, const RequestedLocalesFile & obj ); public: /** Ctor taking the file to read/write. */ RequestedLocalesFile( const Pathname & file_r ) : _file( file_r ) {} /** Return the file path. */ const Pathname & file() const { return _file; } /** Return the loacale set. * The file is read once on demand. returns an empty set if * the file does not exist or is not readable. */ const LocaleSet & locales() const { if ( !_localesPtr ) { _localesPtr.reset( new LocaleSet ); LocaleSet & ls( *_localesPtr ); load( _file, ls ); } return *_localesPtr; } /** Store a new locale set. * Write the new localeset to file, unless we know it * did not change. The directory containing file must exist. */ void setLocales( const LocaleSet & locales_r ) { if ( !_localesPtr ) _localesPtr.reset( new LocaleSet ); if ( differs( *_localesPtr, locales_r ) ) { store( _file, locales_r ); *_localesPtr = locales_r; } } private: /** Helper testing whether two \ref LocaleSet differ. */ bool differs( const LocaleSet & lhs, const LocaleSet & rhs ) const { if ( lhs.size() != rhs.size() ) return true; for_( it, lhs.begin(), lhs.end() ) { if ( rhs.find( *it ) == rhs.end() ) return true; } return false; } /** Read \ref LocaleSet from \c file_r. */ static void load( const Pathname & file_r, LocaleSet & locales_r ); /** Write \ref LocaleSet to \c file_r. */ static void store( const Pathname & file_r, const LocaleSet & locales_r ); private: Pathname _file; mutable scoped_ptr _localesPtr; }; /////////////////////////////////////////////////////////////////// /** \relates RequestedLocalesFile Stream output */ std::ostream & operator<<( std::ostream & str, const RequestedLocalesFile & obj ); ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_REQUESTEDLOCALESFILE_H libzypp-17.7.0/zypp/target/RpmPostTransCollector.cc000066400000000000000000000175441334444677500224150ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/RpmPostTransCollector.cc */ #include #include #include "zypp/base/LogTools.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/Gettext.h" #include "zypp/target/RpmPostTransCollector.h" #include "zypp/TmpPath.h" #include "zypp/PathInfo.h" #include "zypp/HistoryLog.h" #include "zypp/ZYppCallbacks.h" #include "zypp/ExternalProgram.h" #include "zypp/target/rpm/RpmHeader.h" #include "zypp/ZConfig.h" #include "zypp/ZYppCallbacks.h" using std::endl; #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "zypp::posttrans" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////////// /// \class RpmPostTransCollector::Impl /// \brief RpmPostTransCollector implementation. /////////////////////////////////////////////////////////////////// class RpmPostTransCollector::Impl : private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const Impl & obj ); friend std::ostream & dumpOn( std::ostream & str, const Impl & obj ); public: Impl( const Pathname & root_r ) : _root( root_r ) {} ~Impl() { if ( !_scripts.empty() ) discardScripts(); } /** Extract and remember a packages %posttrans script for later execution. */ bool collectScriptFromPackage( ManagedFile rpmPackage_r ) { rpm::RpmHeader::constPtr pkg( rpm::RpmHeader::readPackage( rpmPackage_r, rpm::RpmHeader::NOVERIFY ) ); if ( ! pkg ) { WAR << "Unexpectedly this is no package: " << rpmPackage_r << endl; return false; } std::string prog( pkg->tag_posttransprog() ); if ( prog.empty() || prog == "" ) // by now leave lua to rpm return false; filesystem::TmpFile script( tmpDir(), rpmPackage_r->basename() ); filesystem::addmod( script.path(), 0500 ); script.autoCleanup( false ); // no autodelete; within a tmpdir { std::ofstream out( script.path().c_str() ); out << "#! " << pkg->tag_posttransprog() << endl << pkg->tag_posttrans() << endl; } _scripts.push_back( script.path().basename() ); MIL << "COLLECT posttrans: " << PathInfo( script.path() ) << endl; //DBG << "PROG: " << pkg->tag_posttransprog() << endl; //DBG << "SCRPT: " << pkg->tag_posttrans() << endl; return true; } /** Execute the remembered scripts. */ bool executeScripts() { if ( _scripts.empty() ) return true; HistoryLog historylog; Pathname noRootScriptDir( ZConfig::instance().update_scriptsPath() / tmpDir().basename() ); ProgressData scriptProgress( static_cast(_scripts.size()) ); callback::SendReport report; scriptProgress.sendTo( ProgressReportAdaptor( ProgressData::ReceiverFnc(), report ) ); bool firstScript = true; while ( ! _scripts.empty() ) { const std::string & script = _scripts.front(); const std::string & pkgident( script.substr( 0, script.size()-6 ) ); // strip tmp file suffix scriptProgress.name( str::Format(_("Executing %%posttrans script '%1%'")) % pkgident ); bool canContinue = true; if (firstScript) { firstScript = false; canContinue = scriptProgress.toMin(); } else { canContinue = scriptProgress.incr(); } if (!canContinue) { str::Str msg; msg << "Execution of %posttrans scripts cancelled"; WAR << msg << endl; historylog.comment( msg, true /*timestamp*/); JobReport::warning( msg ); return false; } MIL << "EXECUTE posttrans: " << script << endl; ExternalProgram prog( (noRootScriptDir/script).asString(), ExternalProgram::Stderr_To_Stdout, false, -1, true, _root ); str::Str collect; for( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() ) { DBG << line; collect << " " << line; } //script was executed, remove it from the list _scripts.pop_front(); int ret = prog.close(); const std::string & scriptmsg( collect ); if ( ret != 0 || ! scriptmsg.empty() ) { if ( ! scriptmsg.empty() ) { str::Str msg; msg << "Output of " << pkgident << " %posttrans script:\n" << scriptmsg; historylog.comment( msg, true /*timestamp*/); JobReport::UserData userData( "cmdout", "%posttrans" ); JobReport::info( msg, userData ); } if ( ret != 0 ) { str::Str msg; msg << pkgident << " %posttrans script failed (returned " << ret << ")"; WAR << msg << endl; historylog.comment( msg, true /*timestamp*/); JobReport::warning( msg ); } } } //show a final message scriptProgress.name( _("Executing %posttrans scripts") ); scriptProgress.toMax(); _scripts.clear(); return true; } /** Discard all remembered scrips. */ void discardScripts() { if ( _scripts.empty() ) return; HistoryLog historylog; str::Str msg; msg << "%posttrans scripts skipped while aborting:\n"; for ( const auto & script : _scripts ) { const std::string & pkgident( script.substr( 0, script.size()-6 ) ); // strip tmp file suffix WAR << "UNEXECUTED posttrans: " << script << endl; msg << " " << pkgident << "\n"; } historylog.comment( msg, true /*timestamp*/); JobReport::warning( msg ); _scripts.clear(); } private: /** Lazy create tmpdir on demand. */ Pathname tmpDir() { if ( !_ptrTmpdir ) _ptrTmpdir.reset( new filesystem::TmpDir( _root / ZConfig::instance().update_scriptsPath(), "posttrans" ) ); DBG << _ptrTmpdir->path() << endl; return _ptrTmpdir->path(); } private: Pathname _root; std::list _scripts; boost::scoped_ptr _ptrTmpdir; }; /** \relates RpmPostTransCollector::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const RpmPostTransCollector::Impl & obj ) { return str << "RpmPostTransCollector::Impl"; } /** \relates RpmPostTransCollector::Impl Verbose stream output */ inline std::ostream & dumpOn( std::ostream & str, const RpmPostTransCollector::Impl & obj ) { return str << obj; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : RpmPostTransCollector // /////////////////////////////////////////////////////////////////// RpmPostTransCollector::RpmPostTransCollector( const Pathname & root_r ) : _pimpl( new Impl( root_r ) ) {} RpmPostTransCollector::~RpmPostTransCollector() {} bool RpmPostTransCollector::collectScriptFromPackage( ManagedFile rpmPackage_r ) { return _pimpl->collectScriptFromPackage( rpmPackage_r ); } bool RpmPostTransCollector::executeScripts() { return _pimpl->executeScripts(); } void RpmPostTransCollector::discardScripts() { return _pimpl->discardScripts(); } std::ostream & operator<<( std::ostream & str, const RpmPostTransCollector & obj ) { return str << *obj._pimpl; } std::ostream & dumpOn( std::ostream & str, const RpmPostTransCollector & obj ) { return dumpOn( str, *obj._pimpl ); } } // namespace target /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/RpmPostTransCollector.h000066400000000000000000000053421334444677500222500ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/RpmPostTransCollector.h */ #ifndef ZYPP_TARGET_RPMPOSTTRANSCOLLECTOR_H #define ZYPP_TARGET_RPMPOSTTRANSCOLLECTOR_H #include #include "zypp/base/PtrTypes.h" #include "zypp/ManagedFile.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////////// /// \class RpmPostTransCollector /// \brief Extract and remember %posttrans scripts for later execution /// \todo Maybe embedd this into the TransactionSteps. /////////////////////////////////////////////////////////////////// class RpmPostTransCollector { friend std::ostream & operator<<( std::ostream & str, const RpmPostTransCollector & obj ); friend std::ostream & dumpOn( std::ostream & str, const RpmPostTransCollector & obj ); public: /** Default ctor */ RpmPostTransCollector( const Pathname & root_r ); /** Dtor */ ~RpmPostTransCollector(); public: /** Extract and remember a packages %posttrans script for later execution. * \return whether a script was collected. */ bool collectScriptFromPackage( ManagedFile rpmPackage_r ); /** Execute the remembered scripts. * \return false if execution was aborted by a user callback */ bool executeScripts(); /** Discard all remembered scrips. */ void discardScripts(); public: class Impl; ///< Implementation class. private: RW_pointer _pimpl; ///< Pointer to implementation. }; /** \relates RpmPostTransCollector Stream output */ std::ostream & operator<<( std::ostream & str, const RpmPostTransCollector & obj ); /** \relates RpmPostTransCollector Verbose stream output */ std::ostream & dumOn( std::ostream & str, const RpmPostTransCollector & obj ); } // namespace target /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_RPMPOSTTRANSCOLLECTOR_H libzypp-17.7.0/zypp/target/SolvIdentFile.cc000066400000000000000000000063641334444677500206370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/SolvIdentFile.cc * */ #include #include #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/String.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" #include "zypp/Date.h" #include "zypp/target/SolvIdentFile.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// void SolvIdentFile::load( const Pathname & file_r, Data & data_r ) { PathInfo pi( file_r ); if ( ! pi.isFile() ) { WAR << "Can't read " << pi << endl; return; } std::ifstream infile( file_r.c_str() ); for( iostr::EachLine in( infile ); in; in.next() ) { std::string l( str::trim(*in) ); if ( ! l.empty() && l[0] != '#' ) { data_r.insert( IdString(l) ); } } MIL << "Read " << pi << endl; } void SolvIdentFile::store( const Pathname & file_r, const Data & data_r ) { filesystem::TmpFile tmp( filesystem::TmpFile::makeSibling( file_r ) ); filesystem::chmod( tmp.path(), 0644 ); std::ofstream outs( tmp.path().c_str() ); outs << "# " << file_r.basename() << " generated " << Date::now() << endl; if ( true ) { std::set sorted( data_r.begin(), data_r.end() ); dumpRange( outs, sorted.begin(), sorted.end(), "#", "\n", "\n", "\n", "#\n" ); } else { dumpRange( outs, data_r.begin(), data_r.end(), "#", "\n", "\n", "\n", "#\n" ); } outs.close(); if ( outs.good() ) { filesystem::rename( tmp.path(), file_r ); MIL << "Wrote " << PathInfo(file_r) << endl; } else { ERR << "Can't write " << PathInfo(tmp.path()) << endl; } } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const SolvIdentFile & obj ) { str << obj.file() << ' '; if ( obj._dataPtr ) str << obj.data(); else str << "(unloaded)"; return str; } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/SolvIdentFile.h000066400000000000000000000076051334444677500205000ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/SolvIdentFile.h * */ #ifndef ZYPP_TARGET_SOLVIDENTFILE_H #define ZYPP_TARGET_SOLVIDENTFILE_H #include #include "zypp/base/PtrTypes.h" #include "zypp/IdString.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /// \class SolvIdentFile /// \short Save and restore a list of solvable names (ident IdString) /////////////////////////////////////////////////////////////////// class SolvIdentFile { friend std::ostream & operator<<( std::ostream & str, const SolvIdentFile & obj ); public: typedef std::unordered_set Data; public: /** Ctor taking the file to read/write. */ SolvIdentFile( const Pathname & file_r ) : _file( file_r ) {} /** Return the file path. */ const Pathname & file() const { return _file; } /** Return the data. * The file is read once on demand. Returns empty \ref Data if * the file does not exist or is not readable. */ const Data & data() const { if ( !_dataPtr ) { _dataPtr.reset( new Data ); Data & mydata( *_dataPtr ); load( _file, mydata ); } return *_dataPtr; } /** Store new \ref Data. * Write the new \ref Data to file, unless we know it * did not change. The directory containing file must * exist. */ void setData( const Data & data_r ) { if ( !_dataPtr ) _dataPtr.reset( new Data ); if ( differs( *_dataPtr, data_r ) ) { store( _file, data_r ); *_dataPtr = data_r; } } private: /** Helper testing whether two \ref Data differ. */ bool differs( const Data & lhs, const Data & rhs ) const { if ( lhs.size() != rhs.size() ) return true; for_( it, lhs.begin(), lhs.end() ) { if ( rhs.find( *it ) == rhs.end() ) return true; } return false; } /** Read \ref Data from \c file_r. */ static void load( const Pathname & file_r, Data & data_r ); /** Write \ref Data to \c file_r. */ static void store( const Pathname & file_r, const Data & data_r ); private: Pathname _file; mutable scoped_ptr _dataPtr; }; /////////////////////////////////////////////////////////////////// /** \relates SolvIdentFile Stream output */ std::ostream & operator<<( std::ostream & str, const SolvIdentFile & obj ); ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_SOLVIDENTFILE_H libzypp-17.7.0/zypp/target/TargetCallbackReceiver.cc000066400000000000000000000131721334444677500224530ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetCallbackReceiver.cc * */ #include #include "zypp/target/TargetCallbackReceiver.h" #include "zypp/target/rpm/RpmCallbacks.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// RpmInstallPackageReceiver::RpmInstallPackageReceiver (Resolvable::constPtr res) : callback::ReceiveReport () , _resolvable (res) , _level( target::rpm::InstallResolvableReport::RPM ) , _abort (false) { } RpmInstallPackageReceiver::~RpmInstallPackageReceiver () { } void RpmInstallPackageReceiver::reportbegin() { } void RpmInstallPackageReceiver::reportend() { } /** Start the operation */ void RpmInstallPackageReceiver::start( const Pathname & name ) { _report->start( _resolvable ); _abort = false; } /** * Inform about progress * Return true on abort */ bool RpmInstallPackageReceiver::progress( unsigned percent ) { _abort = ! _report->progress( percent, _resolvable ); return _abort; } rpm::RpmInstallReport::Action RpmInstallPackageReceiver::problem( Exception & excpt_r ) { rpm::InstallResolvableReport::Action user = _report->problem( _resolvable , rpm::InstallResolvableReport::INVALID , excpt_r.asUserHistory() , _level ); switch (user) { case rpm::InstallResolvableReport::RETRY: return rpm::RpmInstallReport::RETRY; case rpm::InstallResolvableReport::ABORT: _abort = true; return rpm::RpmInstallReport::ABORT; case rpm::InstallResolvableReport::IGNORE: return rpm::RpmInstallReport::IGNORE; } return rpm::RpmInstallReport::problem( excpt_r ); } void RpmInstallPackageReceiver::finishInfo( const std::string & info_r ) { _finishInfo = info_r; } /** Finish operation in case of success */ void RpmInstallPackageReceiver::finish() { _report->finish( _resolvable, rpm::InstallResolvableReport::NO_ERROR, _finishInfo, _level ); } /** Finish operation in case of success */ void RpmInstallPackageReceiver::finish( Exception & excpt_r ) { _report->finish( _resolvable, rpm::InstallResolvableReport::INVALID, std::string(), _level ); } void RpmInstallPackageReceiver::tryLevel( target::rpm::InstallResolvableReport::RpmLevel level_r ) { _level = level_r; } ///////////////////////////////////////////////////////////////// /// RpmRemovePackageReceiver ///////////////////////////////////////////////////////////////// RpmRemovePackageReceiver::RpmRemovePackageReceiver (Resolvable::constPtr res) : callback::ReceiveReport () , _resolvable (res) , _abort(false) { } RpmRemovePackageReceiver::~RpmRemovePackageReceiver () { } void RpmRemovePackageReceiver::reportbegin() { } void RpmRemovePackageReceiver::reportend() { } /** Start the operation */ void RpmRemovePackageReceiver::start( const std::string & name ) { _report->start( _resolvable ); _abort = false; } /** * Inform about progress * Return true on abort */ bool RpmRemovePackageReceiver::progress( unsigned percent ) { _abort = ! _report->progress( percent, _resolvable ); return _abort; } rpm::RpmRemoveReport::Action RpmRemovePackageReceiver::problem( Exception & excpt_r ) { rpm::RemoveResolvableReport::Action user = _report->problem( _resolvable , rpm::RemoveResolvableReport::INVALID , excpt_r.asUserHistory() ); switch (user) { case rpm::RemoveResolvableReport::RETRY: return rpm::RpmRemoveReport::RETRY; case rpm::RemoveResolvableReport::ABORT: _abort = true; return rpm::RpmRemoveReport::ABORT; case rpm::RemoveResolvableReport::IGNORE: return rpm::RpmRemoveReport::IGNORE; } return rpm::RpmRemoveReport::problem( excpt_r ); } void RpmRemovePackageReceiver::finishInfo( const std::string & info_r ) { _finishInfo = info_r; } /** Finish operation in case of success */ void RpmRemovePackageReceiver::finish() { _report->progress( 100, _resolvable ); _report->finish( _resolvable, rpm::RemoveResolvableReport::NO_ERROR, _finishInfo ); } /** Finish operation in case of success */ void RpmRemovePackageReceiver::finish( Exception & excpt_r ) { _report->finish( _resolvable, rpm::RemoveResolvableReport::INVALID, std::string() ); } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/TargetCallbackReceiver.h000066400000000000000000000076531334444677500223240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetCallbackReceiver.h * */ #ifndef ZYPP_TARGET_TARGETCALLBACKRECEIVER_H #define ZYPP_TARGET_TARGETCALLBACKRECEIVER_H #include "zypp/ZYppCallbacks.h" #include "zypp/target/rpm/RpmCallbacks.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// class RpmInstallPackageReceiver : public callback::ReceiveReport { callback::SendReport _report; Resolvable::constPtr _resolvable; target::rpm::InstallResolvableReport::RpmLevel _level; bool _abort; std::string _finishInfo; public: RpmInstallPackageReceiver (Resolvable::constPtr res); virtual ~RpmInstallPackageReceiver (); virtual void reportbegin(); virtual void reportend(); /** Start the operation */ virtual void start( const Pathname & name ); void tryLevel( target::rpm::InstallResolvableReport::RpmLevel level_r ); bool aborted() const { return _abort; } /** * Inform about progress * Return true on abort */ virtual bool progress( unsigned percent ); /** inform user about a problem */ virtual rpm::RpmInstallReport::Action problem( Exception & excpt_r ); /** Additional rpm output to be reported in \ref finish in case of success. */ virtual void finishInfo( const std::string & info_r ); /** Finish operation in case of success */ virtual void finish(); /** Finish operatin in case of fail, report fail exception */ virtual void finish( Exception & excpt_r ); }; class RpmRemovePackageReceiver : public callback::ReceiveReport { callback::SendReport _report; Resolvable::constPtr _resolvable; bool _abort; std::string _finishInfo; public: RpmRemovePackageReceiver (Resolvable::constPtr res); virtual ~RpmRemovePackageReceiver (); virtual void reportbegin(); virtual void reportend(); /** Start the operation */ virtual void start( const std::string & name ); /** * Inform about progress * Return true on abort */ virtual bool progress( unsigned percent ); /** * Returns true if removing is aborted during progress */ bool aborted() const { return _abort; } /** inform user about a problem */ virtual rpm::RpmRemoveReport::Action problem( Exception & excpt_r ); /** Additional rpm output to be reported in \ref finish in case of success. */ virtual void finishInfo( const std::string & info_r ); /** Finish operation in case of success */ virtual void finish(); /** Finish operatin in case of fail, report fail exception */ virtual void finish( Exception & excpt_r ); }; ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_TARGETCALLBACKRECEIVER_H libzypp-17.7.0/zypp/target/TargetException.cc000066400000000000000000000024241334444677500212260ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetException.cc * */ #include #include #include "zypp/target/TargetException.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// std::ostream & TargetAbortedException::dumpOn( std::ostream & str ) const { return str << "Installation aborted by user"; } ///////////////////////////////////////////////////////////////// } // namespace target } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/TargetException.h000066400000000000000000000043751334444677500210770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetException.h * */ #ifndef ZYPP_TARGET_TARGETEXCEPTION_H #define ZYPP_TARGET_TARGETEXCEPTION_H #include #include #include "zypp/base/Exception.h" #include "zypp/Pathname.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////// // // CLASS NAME : TargetException /** Just inherits Exception to separate target exceptions * **/ class TargetException : public Exception { public: /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ TargetException() : Exception( "Target Exception" ) {} /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ TargetException( const std::string & msg_r ) : Exception( msg_r ) {} /** Dtor. */ virtual ~TargetException() throw() {}; }; class TargetAbortedException : public TargetException { public: /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ TargetAbortedException( const std::string & msg_r ) : TargetException( msg_r ) {} /** Dtor. */ virtual ~TargetAbortedException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: }; ///////////////////////////////////////////////////////////////// } // namespace target } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_TARGETEXCEPTION_H libzypp-17.7.0/zypp/target/TargetImpl.cc000066400000000000000000002004041334444677500201670ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetImpl.cc * */ #include #include #include #include #include #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Exception.h" #include "zypp/base/Iterator.h" #include "zypp/base/Gettext.h" #include "zypp/base/IOStream.h" #include "zypp/base/Functional.h" #include "zypp/base/UserRequestException.h" #include "zypp/base/Json.h" #include "zypp/ZConfig.h" #include "zypp/ZYppFactory.h" #include "zypp/PoolItem.h" #include "zypp/ResObjects.h" #include "zypp/Url.h" #include "zypp/TmpPath.h" #include "zypp/RepoStatus.h" #include "zypp/ExternalProgram.h" #include "zypp/Repository.h" #include "zypp/ShutdownLock_p.h" #include "zypp/ResFilters.h" #include "zypp/HistoryLog.h" #include "zypp/target/TargetImpl.h" #include "zypp/target/TargetCallbackReceiver.h" #include "zypp/target/rpm/librpmDb.h" #include "zypp/target/CommitPackageCache.h" #include "zypp/target/RpmPostTransCollector.h" #include "zypp/parser/ProductFileReader.h" #include "zypp/repo/SrcPackageProvider.h" #include "zypp/sat/Pool.h" #include "zypp/sat/detail/PoolImpl.h" #include "zypp/sat/Transaction.h" #include "zypp/PluginExecutor.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace { // HACK for bnc#906096: let pool re-evaluate multiversion spec // if target root changes. ZConfig returns data sensitive to // current target root. inline void sigMultiversionSpecChanged() { sat::detail::PoolMember::myPool().multiversionSpecChanged(); } } //namespace ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace json { // Lazy via template specialisation / should switch to overloading template<> inline std::string toJSON( const ZYppCommitResult::TransactionStepList & steps_r ) { using sat::Transaction; json::Array ret; for ( const Transaction::Step & step : steps_r ) // ignore implicit deletes due to obsoletes and non-package actions if ( step.stepType() != Transaction::TRANSACTION_IGNORE ) ret.add( step ); return ret.asJSON(); } /** See \ref commitbegin on page \ref plugin-commit for the specs. */ template<> inline std::string toJSON( const sat::Transaction::Step & step_r ) { static const std::string strType( "type" ); static const std::string strStage( "stage" ); static const std::string strSolvable( "solvable" ); static const std::string strTypeDel( "-" ); static const std::string strTypeIns( "+" ); static const std::string strTypeMul( "M" ); static const std::string strStageDone( "ok" ); static const std::string strStageFailed( "err" ); static const std::string strSolvableN( "n" ); static const std::string strSolvableE( "e" ); static const std::string strSolvableV( "v" ); static const std::string strSolvableR( "r" ); static const std::string strSolvableA( "a" ); using sat::Transaction; json::Object ret; switch ( step_r.stepType() ) { case Transaction::TRANSACTION_IGNORE: /*empty*/ break; case Transaction::TRANSACTION_ERASE: ret.add( strType, strTypeDel ); break; case Transaction::TRANSACTION_INSTALL: ret.add( strType, strTypeIns ); break; case Transaction::TRANSACTION_MULTIINSTALL: ret.add( strType, strTypeMul ); break; } switch ( step_r.stepStage() ) { case Transaction::STEP_TODO: /*empty*/ break; case Transaction::STEP_DONE: ret.add( strStage, strStageDone ); break; case Transaction::STEP_ERROR: ret.add( strStage, strStageFailed ); break; } { IdString ident; Edition ed; Arch arch; if ( sat::Solvable solv = step_r.satSolvable() ) { ident = solv.ident(); ed = solv.edition(); arch = solv.arch(); } else { // deleted package; post mortem data stored in Transaction::Step ident = step_r.ident(); ed = step_r.edition(); arch = step_r.arch(); } json::Object s { { strSolvableN, ident.asString() }, { strSolvableV, ed.version() }, { strSolvableR, ed.release() }, { strSolvableA, arch.asString() } }; if ( Edition::epoch_t epoch = ed.epoch() ) s.add( strSolvableE, epoch ); ret.add( strSolvable, s ); } return ret.asJSON(); } } // namespace json /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////////// namespace { SolvIdentFile::Data getUserInstalledFromHistory( const Pathname & historyFile_r ) { SolvIdentFile::Data onSystemByUserList; // go and parse it: 'who' must constain an '@', then it was installed by user request. // 2009-09-29 07:25:19|install|lirc-remotes|0.8.5-3.2|x86_64|root@opensuse|InstallationImage|a204211eb0... std::ifstream infile( historyFile_r.c_str() ); for( iostr::EachLine in( infile ); in; in.next() ) { const char * ch( (*in).c_str() ); // start with year if ( *ch < '1' || '9' < *ch ) continue; const char * sep1 = ::strchr( ch, '|' ); // | after date if ( !sep1 ) continue; ++sep1; // if logs an install or delete bool installs = true; if ( ::strncmp( sep1, "install|", 8 ) ) { if ( ::strncmp( sep1, "remove |", 8 ) ) continue; // no install and no remove else installs = false; // remove } sep1 += 8; // | after what // get the package name const char * sep2 = ::strchr( sep1, '|' ); // | after name if ( !sep2 || sep1 == sep2 ) continue; (*in)[sep2-ch] = '\0'; IdString pkg( sep1 ); // we're done, if a delete if ( !installs ) { onSystemByUserList.erase( pkg ); continue; } // now guess whether user installed or not (3rd next field contains 'user@host') if ( (sep1 = ::strchr( sep2+1, '|' )) // | after version && (sep1 = ::strchr( sep1+1, '|' )) // | after arch && (sep2 = ::strchr( sep1+1, '|' )) ) // | after who { (*in)[sep2-ch] = '\0'; if ( ::strchr( sep1+1, '@' ) ) { // by user onSystemByUserList.insert( pkg ); continue; } } } MIL << "onSystemByUserList found: " << onSystemByUserList.size() << endl; return onSystemByUserList; } } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace { inline PluginFrame transactionPluginFrame( const std::string & command_r, ZYppCommitResult::TransactionStepList & steps_r ) { return PluginFrame( command_r, json::Object { { "TransactionStepList", steps_r } }.asJSON() ); } } // namespace /////////////////////////////////////////////////////////////////// /** \internal Manage writing a new testcase when doing an upgrade. */ void writeUpgradeTestcase() { unsigned toKeep( ZConfig::instance().solver_upgradeTestcasesToKeep() ); MIL << "Testcases to keep: " << toKeep << endl; if ( !toKeep ) return; Target_Ptr target( getZYpp()->getTarget() ); if ( ! target ) { WAR << "No Target no Testcase!" << endl; return; } std::string stem( "updateTestcase" ); Pathname dir( target->assertRootPrefix("/var/log/") ); Pathname next( dir / Date::now().form( stem+"-%Y-%m-%d-%H-%M-%S" ) ); { std::list content; filesystem::readdir( content, dir, /*dots*/false ); std::set cases; for_( c, content.begin(), content.end() ) { if ( str::startsWith( *c, stem ) ) cases.insert( *c ); } if ( cases.size() >= toKeep ) { unsigned toDel = cases.size() - toKeep + 1; // +1 for the new one for_( c, cases.begin(), cases.end() ) { filesystem::recursive_rmdir( dir/(*c) ); if ( ! --toDel ) break; } } } MIL << "Write new testcase " << next << endl; getZYpp()->resolver()->createSolverTestcase( next.asString(), false/*no solving*/ ); } /////////////////////////////////////////////////////////////////// namespace { ///////////////////////////////////////////////////////////////// /** Execute script and report against report_r. * Return \c std::pair to indicate if * execution was successfull (first = true), or the desired * \c PatchScriptReport::Action in case execution failed * (first = false). * * \note The packager is responsible for setting the correct permissions * of the script. If the script is not executable it is reported as an * error. We must not modify the permessions. */ std::pair doExecuteScript( const Pathname & root_r, const Pathname & script_r, callback::SendReport & report_r ) { MIL << "Execute script " << PathInfo(Pathname::assertprefix( root_r,script_r)) << endl; HistoryLog historylog; historylog.comment(script_r.asString() + _(" executed"), /*timestamp*/true); ExternalProgram prog( script_r.asString(), ExternalProgram::Stderr_To_Stdout, false, -1, true, root_r ); for ( std::string output = prog.receiveLine(); output.length(); output = prog.receiveLine() ) { historylog.comment(output); if ( ! report_r->progress( PatchScriptReport::OUTPUT, output ) ) { WAR << "User request to abort script " << script_r << endl; prog.kill(); // the rest is handled by exit code evaluation // in case the script has meanwhile finished. } } std::pair ret( std::make_pair( false, PatchScriptReport::ABORT ) ); if ( prog.close() != 0 ) { ret.second = report_r->problem( prog.execError() ); WAR << "ACTION" << ret.second << "(" << prog.execError() << ")" << endl; std::ostringstream sstr; sstr << script_r << _(" execution failed") << " (" << prog.execError() << ")" << endl; historylog.comment(sstr.str(), /*timestamp*/true); return ret; } report_r->finish(); ret.first = true; return ret; } /** Execute script and report against report_r. * Return \c false if user requested \c ABORT. */ bool executeScript( const Pathname & root_r, const Pathname & script_r, callback::SendReport & report_r ) { std::pair action( std::make_pair( false, PatchScriptReport::ABORT ) ); do { action = doExecuteScript( root_r, script_r, report_r ); if ( action.first ) return true; // success switch ( action.second ) { case PatchScriptReport::ABORT: WAR << "User request to abort at script " << script_r << endl; return false; // requested abort. break; case PatchScriptReport::IGNORE: WAR << "User request to skip script " << script_r << endl; return true; // requested skip. break; case PatchScriptReport::RETRY: break; // again } } while ( action.second == PatchScriptReport::RETRY ); // THIS is not intended to be reached: INT << "Abort on unknown ACTION request " << action.second << " returned" << endl; return false; // abort. } /** Look for update scripts named 'name-version-release-*' and * execute them. Return \c false if \c ABORT was requested. * * \see http://en.opensuse.org/Software_Management/Code11/Scripts_and_Messages */ bool RunUpdateScripts( const Pathname & root_r, const Pathname & scriptsPath_r, const std::vector & checkPackages_r, bool aborting_r ) { if ( checkPackages_r.empty() ) return true; // no installed packages to check MIL << "Looking for new update scripts in (" << root_r << ")" << scriptsPath_r << endl; Pathname scriptsDir( Pathname::assertprefix( root_r, scriptsPath_r ) ); if ( ! PathInfo( scriptsDir ).isDir() ) return true; // no script dir std::list scripts; filesystem::readdir( scripts, scriptsDir, /*dots*/false ); if ( scripts.empty() ) return true; // no scripts in script dir // Now collect and execute all matching scripts. // On ABORT: at least log all outstanding scripts. // - "name-version-release" // - "name-version-release-*" bool abort = false; std::map unify; // scripts for_( it, checkPackages_r.begin(), checkPackages_r.end() ) { std::string prefix( str::form( "%s-%s", it->name().c_str(), it->edition().c_str() ) ); for_( sit, scripts.begin(), scripts.end() ) { if ( ! str::hasPrefix( *sit, prefix ) ) continue; if ( (*sit)[prefix.size()] != '\0' && (*sit)[prefix.size()] != '-' ) continue; // if not exact match it had to continue with '-' PathInfo script( scriptsDir / *sit ); Pathname localPath( scriptsPath_r/(*sit) ); // without root prefix std::string unifytag; // must not stay empty if ( script.isFile() ) { // Assert it's set executable, unify by md5sum. filesystem::addmod( script.path(), 0500 ); unifytag = filesystem::md5sum( script.path() ); } else if ( ! script.isExist() ) { // Might be a dangling symlink, might be ok if we are in // instsys (absolute symlink within the system below /mnt). // readlink will tell.... unifytag = filesystem::readlink( script.path() ).asString(); } if ( unifytag.empty() ) continue; // Unify scripts if ( unify[unifytag].empty() ) { unify[unifytag] = localPath; } else { // translators: We may find the same script content in files with different names. // Only the first occurence is executed, subsequent ones are skipped. It's a one-line // message for a log file. Preferably start translation with "%s" std::string msg( str::form(_("%s already executed as %s)"), localPath.asString().c_str(), unify[unifytag].c_str() ) ); MIL << "Skip update script: " << msg << endl; HistoryLog().comment( msg, /*timestamp*/true ); continue; } if ( abort || aborting_r ) { WAR << "Aborting: Skip update script " << *sit << endl; HistoryLog().comment( localPath.asString() + _(" execution skipped while aborting"), /*timestamp*/true); } else { MIL << "Found update script " << *sit << endl; callback::SendReport report; report->start( make( *it ), script.path() ); if ( ! executeScript( root_r, localPath, report ) ) // script path without root prefix! abort = true; // requested abort. } } } return !abort; } /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// inline void copyTo( std::ostream & out_r, const Pathname & file_r ) { std::ifstream infile( file_r.c_str() ); for( iostr::EachLine in( infile ); in; in.next() ) { out_r << *in << endl; } } inline std::string notificationCmdSubst( const std::string & cmd_r, const UpdateNotificationFile & notification_r ) { std::string ret( cmd_r ); #define SUBST_IF(PAT,VAL) if ( ret.find( PAT ) != std::string::npos ) ret = str::gsub( ret, PAT, VAL ) SUBST_IF( "%p", notification_r.solvable().asString() ); SUBST_IF( "%P", notification_r.file().asString() ); #undef SUBST_IF return ret; } void sendNotification( const Pathname & root_r, const UpdateNotifications & notifications_r ) { if ( notifications_r.empty() ) return; std::string cmdspec( ZConfig::instance().updateMessagesNotify() ); MIL << "Notification command is '" << cmdspec << "'" << endl; if ( cmdspec.empty() ) return; std::string::size_type pos( cmdspec.find( '|' ) ); if ( pos == std::string::npos ) { ERR << "Can't send Notification: Missing 'format |' in command spec." << endl; HistoryLog().comment( str::Str() << _("Error sending update message notification."), /*timestamp*/true ); return; } std::string formatStr( str::toLower( str::trim( cmdspec.substr( 0, pos ) ) ) ); std::string commandStr( str::trim( cmdspec.substr( pos + 1 ) ) ); enum Format { UNKNOWN, NONE, SINGLE, DIGEST, BULK }; Format format = UNKNOWN; if ( formatStr == "none" ) format = NONE; else if ( formatStr == "single" ) format = SINGLE; else if ( formatStr == "digest" ) format = DIGEST; else if ( formatStr == "bulk" ) format = BULK; else { ERR << "Can't send Notification: Unknown format '" << formatStr << " |' in command spec." << endl; HistoryLog().comment( str::Str() << _("Error sending update message notification."), /*timestamp*/true ); return; } // Take care: commands are ececuted chroot(root_r). The message file // pathnames in notifications_r are local to root_r. For physical access // to the file they need to be prefixed. if ( format == NONE || format == SINGLE ) { for_( it, notifications_r.begin(), notifications_r.end() ) { std::vector command; if ( format == SINGLE ) command.push_back( "<"+Pathname::assertprefix( root_r, it->file() ).asString() ); str::splitEscaped( notificationCmdSubst( commandStr, *it ), std::back_inserter( command ) ); ExternalProgram prog( command, ExternalProgram::Stderr_To_Stdout, false, -1, true, root_r ); if ( true ) // Wait for feedback { for( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() ) { DBG << line; } int ret = prog.close(); if ( ret != 0 ) { ERR << "Notification command returned with error (" << ret << ")." << endl; HistoryLog().comment( str::Str() << _("Error sending update message notification."), /*timestamp*/true ); return; } } } } else if ( format == DIGEST || format == BULK ) { filesystem::TmpFile tmpfile; ofstream out( tmpfile.path().c_str() ); for_( it, notifications_r.begin(), notifications_r.end() ) { if ( format == DIGEST ) { out << it->file() << endl; } else if ( format == BULK ) { copyTo( out << '\f', Pathname::assertprefix( root_r, it->file() ) ); } } std::vector command; command.push_back( "<"+tmpfile.path().asString() ); // redirect input str::splitEscaped( notificationCmdSubst( commandStr, *notifications_r.begin() ), std::back_inserter( command ) ); ExternalProgram prog( command, ExternalProgram::Stderr_To_Stdout, false, -1, true, root_r ); if ( true ) // Wait for feedback otherwise the TmpFile goes out of scope. { for( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() ) { DBG << line; } int ret = prog.close(); if ( ret != 0 ) { ERR << "Notification command returned with error (" << ret << ")." << endl; HistoryLog().comment( str::Str() << _("Error sending update message notification."), /*timestamp*/true ); return; } } } else { INT << "Can't send Notification: Missing handler for 'format |' in command spec." << endl; HistoryLog().comment( str::Str() << _("Error sending update message notification."), /*timestamp*/true ); return; } } /** Look for update messages named 'name-version-release-*' and * send notification according to \ref ZConfig::updateMessagesNotify. * * \see http://en.opensuse.org/Software_Management/Code11/Scripts_and_Messages */ void RunUpdateMessages( const Pathname & root_r, const Pathname & messagesPath_r, const std::vector & checkPackages_r, ZYppCommitResult & result_r ) { if ( checkPackages_r.empty() ) return; // no installed packages to check MIL << "Looking for new update messages in (" << root_r << ")" << messagesPath_r << endl; Pathname messagesDir( Pathname::assertprefix( root_r, messagesPath_r ) ); if ( ! PathInfo( messagesDir ).isDir() ) return; // no messages dir std::list messages; filesystem::readdir( messages, messagesDir, /*dots*/false ); if ( messages.empty() ) return; // no messages in message dir // Now collect all matching messages in result and send them // - "name-version-release" // - "name-version-release-*" HistoryLog historylog; for_( it, checkPackages_r.begin(), checkPackages_r.end() ) { std::string prefix( str::form( "%s-%s", it->name().c_str(), it->edition().c_str() ) ); for_( sit, messages.begin(), messages.end() ) { if ( ! str::hasPrefix( *sit, prefix ) ) continue; if ( (*sit)[prefix.size()] != '\0' && (*sit)[prefix.size()] != '-' ) continue; // if not exact match it had to continue with '-' PathInfo message( messagesDir / *sit ); if ( ! message.isFile() || message.size() == 0 ) continue; MIL << "Found update message " << *sit << endl; Pathname localPath( messagesPath_r/(*sit) ); // without root prefix result_r.rUpdateMessages().push_back( UpdateNotificationFile( *it, localPath ) ); historylog.comment( str::Str() << _("New update message") << " " << localPath, /*timestamp*/true ); } } sendNotification( root_r, result_r.updateMessages() ); } ///////////////////////////////////////////////////////////////// } // namespace /////////////////////////////////////////////////////////////////// void XRunUpdateMessages( const Pathname & root_r, const Pathname & messagesPath_r, const std::vector & checkPackages_r, ZYppCommitResult & result_r ) { RunUpdateMessages( root_r, messagesPath_r, checkPackages_r, result_r ); } /////////////////////////////////////////////////////////////////// IMPL_PTR_TYPE(TargetImpl); /////////////////////////////////////////////////////////////////// // // METHOD NAME : TargetImpl::TargetImpl // METHOD TYPE : Ctor // TargetImpl::TargetImpl( const Pathname & root_r, bool doRebuild_r ) : _root( root_r ) , _requestedLocalesFile( home() / "RequestedLocales" ) , _autoInstalledFile( home() / "AutoInstalled" ) , _hardLocksFile( Pathname::assertprefix( _root, ZConfig::instance().locksFile() ) ) { _rpm.initDatabase( root_r, Pathname(), doRebuild_r ); HistoryLog::setRoot(_root); createAnonymousId(); sigMultiversionSpecChanged(); // HACK: see sigMultiversionSpecChanged MIL << "Initialized target on " << _root << endl; } /** * generates a random id using uuidgen */ static std::string generateRandomId() { std::ifstream uuidprovider( "/proc/sys/kernel/random/uuid" ); return iostr::getline( uuidprovider ); } /** * updates the content of \p filename * if \p condition is true, setting the content * the the value returned by \p value */ void updateFileContent( const Pathname &filename, boost::function condition, boost::function value ) { string val = value(); // if the value is empty, then just dont // do anything, regardless of the condition if ( val.empty() ) return; if ( condition() ) { MIL << "updating '" << filename << "' content." << endl; // if the file does not exist we need to generate the uuid file std::ofstream filestr; // make sure the path exists filesystem::assert_dir( filename.dirname() ); filestr.open( filename.c_str() ); if ( filestr.good() ) { filestr << val; filestr.close(); } else { // FIXME, should we ignore the error? ZYPP_THROW(Exception("Can't openfile '" + filename.asString() + "' for writing")); } } } /** helper functor */ static bool fileMissing( const Pathname &pathname ) { return ! PathInfo(pathname).isExist(); } void TargetImpl::createAnonymousId() const { // bsc#1024741: Omit creating a new uid for chrooted systems (if it already has one, fine) if ( root() != "/" ) return; // Create the anonymous unique id, used for download statistics Pathname idpath( home() / "AnonymousUniqueId"); try { updateFileContent( idpath, boost::bind(fileMissing, idpath), generateRandomId ); } catch ( const Exception &e ) { WAR << "Can't create anonymous id file" << endl; } } void TargetImpl::createLastDistributionFlavorCache() const { // create the anonymous unique id // this value is used for statistics Pathname flavorpath( home() / "LastDistributionFlavor"); // is there a product Product::constPtr p = baseProduct(); if ( ! p ) { WAR << "No base product, I won't create flavor cache" << endl; return; } string flavor = p->flavor(); try { updateFileContent( flavorpath, // only if flavor is not empty functor::Constant( ! flavor.empty() ), functor::Constant(flavor) ); } catch ( const Exception &e ) { WAR << "Can't create flavor cache" << endl; return; } } /////////////////////////////////////////////////////////////////// // // METHOD NAME : TargetImpl::~TargetImpl // METHOD TYPE : Dtor // TargetImpl::~TargetImpl() { _rpm.closeDatabase(); sigMultiversionSpecChanged(); // HACK: see sigMultiversionSpecChanged MIL << "Targets closed" << endl; } /////////////////////////////////////////////////////////////////// // // solv file handling // /////////////////////////////////////////////////////////////////// Pathname TargetImpl::defaultSolvfilesPath() const { return Pathname::assertprefix( _root, ZConfig::instance().repoSolvfilesPath() / sat::Pool::instance().systemRepoAlias() ); } void TargetImpl::clearCache() { Pathname base = solvfilesPath(); filesystem::recursive_rmdir( base ); } bool TargetImpl::buildCache() { Pathname base = solvfilesPath(); Pathname rpmsolv = base/"solv"; Pathname rpmsolvcookie = base/"cookie"; bool build_rpm_solv = true; // lets see if the rpm solv cache exists RepoStatus rpmstatus( RepoStatus(_root/"var/lib/rpm/Name") && RepoStatus(_root/"etc/products.d") ); bool solvexisted = PathInfo(rpmsolv).isExist(); if ( solvexisted ) { // see the status of the cache PathInfo cookie( rpmsolvcookie ); MIL << "Read cookie: " << cookie << endl; if ( cookie.isExist() ) { RepoStatus status = RepoStatus::fromCookieFile(rpmsolvcookie); // now compare it with the rpm database if ( status == rpmstatus ) build_rpm_solv = false; MIL << "Read cookie: " << rpmsolvcookie << " says: " << (build_rpm_solv ? "outdated" : "uptodate") << endl; } } if ( build_rpm_solv ) { // if the solvfile dir does not exist yet, we better create it filesystem::assert_dir( base ); Pathname oldSolvFile( solvexisted ? rpmsolv : Pathname() ); // to speedup rpmdb2solv filesystem::TmpFile tmpsolv( filesystem::TmpFile::makeSibling( rpmsolv ) ); if ( !tmpsolv ) { // Can't create temporary solv file, usually due to insufficient permission // (user query while @System solv needs refresh). If so, try switching // to a location within zypps temp. space (will be cleaned at application end). bool switchingToTmpSolvfile = false; Exception ex("Failed to cache rpm database."); ex.remember(str::form("Cannot create temporary file under %s.", base.c_str())); if ( ! solvfilesPathIsTemp() ) { base = getZYpp()->tmpPath() / sat::Pool::instance().systemRepoAlias(); rpmsolv = base/"solv"; rpmsolvcookie = base/"cookie"; filesystem::assert_dir( base ); tmpsolv = filesystem::TmpFile::makeSibling( rpmsolv ); if ( tmpsolv ) { WAR << "Using a temporary solv file at " << base << endl; switchingToTmpSolvfile = true; _tmpSolvfilesPath = base; } else { ex.remember(str::form("Cannot create temporary file under %s.", base.c_str())); } } if ( ! switchingToTmpSolvfile ) { ZYPP_THROW(ex); } } // Take care we unlink the solvfile on exception ManagedFile guard( base, filesystem::recursive_rmdir ); ExternalProgram::Arguments cmd; cmd.push_back( "rpmdb2solv" ); if ( ! _root.empty() ) { cmd.push_back( "-r" ); cmd.push_back( _root.asString() ); } cmd.push_back( "-X" ); // autogenerate pattern/product/... from -package // bsc#1104415: no more application support // cmd.push_back( "-A" ); // autogenerate application pseudo packages cmd.push_back( "-p" ); cmd.push_back( Pathname::assertprefix( _root, "/etc/products.d" ).asString() ); if ( ! oldSolvFile.empty() ) cmd.push_back( oldSolvFile.asString() ); cmd.push_back( "-o" ); cmd.push_back( tmpsolv.path().asString() ); ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout ); std::string errdetail; for ( std::string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) { WAR << " " << output; if ( errdetail.empty() ) { errdetail = prog.command(); errdetail += '\n'; } errdetail += output; } int ret = prog.close(); if ( ret != 0 ) { Exception ex(str::form("Failed to cache rpm database (%d).", ret)); ex.remember( errdetail ); ZYPP_THROW(ex); } ret = filesystem::rename( tmpsolv, rpmsolv ); if ( ret != 0 ) ZYPP_THROW(Exception("Failed to move cache to final destination")); // if this fails, don't bother throwing exceptions filesystem::chmod( rpmsolv, 0644 ); rpmstatus.saveToCookieFile(rpmsolvcookie); // We keep it. guard.resetDispose(); sat::updateSolvFileIndex( rpmsolv ); // content digest for zypper bash completion // system-hook: Finally send notification to plugins if ( root() == "/" ) { PluginExecutor plugins; plugins.load( ZConfig::instance().pluginsPath()/"system" ); if ( plugins ) plugins.send( PluginFrame( "PACKAGESETCHANGED" ) ); } } else { // On the fly add missing solv.idx files for bash completion. if ( ! PathInfo(base/"solv.idx").isExist() ) sat::updateSolvFileIndex( rpmsolv ); } return build_rpm_solv; } void TargetImpl::reload() { load( false ); } void TargetImpl::unload() { Repository system( sat::Pool::instance().findSystemRepo() ); if ( system ) system.eraseFromPool(); } void TargetImpl::load( bool force ) { bool newCache = buildCache(); MIL << "New cache built: " << (newCache?"true":"false") << ", force loading: " << (force?"true":"false") << endl; // now add the repos to the pool sat::Pool satpool( sat::Pool::instance() ); Pathname rpmsolv( solvfilesPath() / "solv" ); MIL << "adding " << rpmsolv << " to pool(" << satpool.systemRepoAlias() << ")" << endl; // Providing an empty system repo, unload any old content Repository system( sat::Pool::instance().findSystemRepo() ); if ( system && ! system.solvablesEmpty() ) { if ( newCache || force ) { system.eraseFromPool(); // invalidates system } else { return; // nothing to do } } if ( ! system ) { system = satpool.systemRepo(); } try { MIL << "adding " << rpmsolv << " to system" << endl; system.addSolv( rpmsolv ); } catch ( const Exception & exp ) { ZYPP_CAUGHT( exp ); MIL << "Try to handle exception by rebuilding the solv-file" << endl; clearCache(); buildCache(); system.addSolv( rpmsolv ); } satpool.rootDir( _root ); // (Re)Load the requested locales et al. // If the requested locales are empty, we leave the pool untouched // to avoid undoing changes the application applied. We expect this // to happen on a bare metal installation only. An already existing // target should be loaded before its settings are changed. { const LocaleSet & requestedLocales( _requestedLocalesFile.locales() ); if ( ! requestedLocales.empty() ) { satpool.initRequestedLocales( requestedLocales ); } } { if ( ! PathInfo( _autoInstalledFile.file() ).isExist() ) { // Initialize from history, if it does not exist Pathname historyFile( Pathname::assertprefix( _root, ZConfig::instance().historyLogFile() ) ); if ( PathInfo( historyFile ).isExist() ) { SolvIdentFile::Data onSystemByUser( getUserInstalledFromHistory( historyFile ) ); SolvIdentFile::Data onSystemByAuto; for_( it, system.solvablesBegin(), system.solvablesEnd() ) { IdString ident( (*it).ident() ); if ( onSystemByUser.find( ident ) == onSystemByUser.end() ) onSystemByAuto.insert( ident ); } _autoInstalledFile.setData( onSystemByAuto ); } // on the fly removed any obsolete SoftLocks file filesystem::unlink( home() / "SoftLocks" ); } // read from AutoInstalled file sat::StringQueue q; for ( const auto & idstr : _autoInstalledFile.data() ) q.push( idstr.id() ); satpool.setAutoInstalled( q ); } if ( ZConfig::instance().apply_locks_file() ) { const HardLocksFile::Data & hardLocks( _hardLocksFile.data() ); if ( ! hardLocks.empty() ) { ResPool::instance().setHardLockQueries( hardLocks ); } } // now that the target is loaded, we can cache the flavor createLastDistributionFlavorCache(); MIL << "Target loaded: " << system.solvablesSize() << " resolvables" << endl; } /////////////////////////////////////////////////////////////////// // // COMMIT // /////////////////////////////////////////////////////////////////// ZYppCommitResult TargetImpl::commit( ResPool pool_r, const ZYppCommitPolicy & policy_rX ) { // ----------------------------------------------------------------- // ZYppCommitPolicy policy_r( policy_rX ); ShutdownLock lck("Zypp commit running."); // Fake outstanding YCP fix: Honour restriction to media 1 // at installation, but install all remaining packages if post-boot. if ( policy_r.restrictToMedia() > 1 ) policy_r.allMedia(); if ( policy_r.downloadMode() == DownloadDefault ) { if ( root() == "/" ) policy_r.downloadMode(DownloadInHeaps); else policy_r.downloadMode(DownloadAsNeeded); } // DownloadOnly implies dry-run. else if ( policy_r.downloadMode() == DownloadOnly ) policy_r.dryRun( true ); // ----------------------------------------------------------------- // MIL << "TargetImpl::commit(, " << policy_r << ")" << endl; /////////////////////////////////////////////////////////////////// // Compute transaction: /////////////////////////////////////////////////////////////////// ZYppCommitResult result( root() ); result.rTransaction() = pool_r.resolver().getTransaction(); result.rTransaction().order(); // steps: this is our todo-list ZYppCommitResult::TransactionStepList & steps( result.rTransactionStepList() ); if ( policy_r.restrictToMedia() ) { // Collect until the 1st package from an unwanted media occurs. // Further collection could violate install order. MIL << "Restrict to media number " << policy_r.restrictToMedia() << endl; for_( it, result.transaction().begin(), result.transaction().end() ) { if ( makeResObject( *it )->mediaNr() > 1 ) break; steps.push_back( *it ); } } else { result.rTransactionStepList().insert( steps.end(), result.transaction().begin(), result.transaction().end() ); } MIL << "Todo: " << result << endl; /////////////////////////////////////////////////////////////////// // Prepare execution of commit plugins: /////////////////////////////////////////////////////////////////// PluginExecutor commitPlugins; if ( root() == "/" && ! policy_r.dryRun() ) { commitPlugins.load( ZConfig::instance().pluginsPath()/"commit" ); } if ( commitPlugins ) commitPlugins.send( transactionPluginFrame( "COMMITBEGIN", steps ) ); /////////////////////////////////////////////////////////////////// // Write out a testcase if we're in dist upgrade mode. /////////////////////////////////////////////////////////////////// if ( pool_r.resolver().upgradeMode() || pool_r.resolver().upgradingRepos() ) { if ( ! policy_r.dryRun() ) { writeUpgradeTestcase(); } else { DBG << "dryRun: Not writing upgrade testcase." << endl; } } /////////////////////////////////////////////////////////////////// // Store non-package data: /////////////////////////////////////////////////////////////////// if ( ! policy_r.dryRun() ) { filesystem::assert_dir( home() ); // requested locales _requestedLocalesFile.setLocales( pool_r.getRequestedLocales() ); // autoinstalled { SolvIdentFile::Data newdata; for ( sat::Queue::value_type id : result.rTransaction().autoInstalled() ) newdata.insert( IdString(id) ); _autoInstalledFile.setData( newdata ); } // hard locks if ( ZConfig::instance().apply_locks_file() ) { HardLocksFile::Data newdata; pool_r.getHardLockQueries( newdata ); _hardLocksFile.setData( newdata ); } } else { DBG << "dryRun: Not stroring non-package data." << endl; } /////////////////////////////////////////////////////////////////// // First collect and display all messages // associated with patches to be installed. /////////////////////////////////////////////////////////////////// if ( ! policy_r.dryRun() ) { for_( it, steps.begin(), steps.end() ) { if ( ! it->satSolvable().isKind() ) continue; PoolItem pi( *it ); if ( ! pi.status().isToBeInstalled() ) continue; Patch::constPtr patch( asKind(pi.resolvable()) ); if ( ! patch ||patch->message().empty() ) continue; MIL << "Show message for " << patch << endl; callback::SendReport report; if ( ! report->show( patch ) ) { WAR << "commit aborted by the user" << endl; ZYPP_THROW( TargetAbortedException( N_("Installation has been aborted as directed.") ) ); } } } else { DBG << "dryRun: Not checking patch messages." << endl; } /////////////////////////////////////////////////////////////////// // Remove/install packages. /////////////////////////////////////////////////////////////////// DBG << "commit log file is set to: " << HistoryLog::fname() << endl; if ( ! policy_r.dryRun() || policy_r.downloadMode() == DownloadOnly ) { // Prepare the package cache. Pass all items requiring download. CommitPackageCache packageCache; packageCache.setCommitList( steps.begin(), steps.end() ); bool miss = false; if ( policy_r.downloadMode() != DownloadAsNeeded ) { // Preload the cache. Until now this means pre-loading all packages. // Once DownloadInHeaps is fully implemented, this will change and // we may actually have more than one heap. for_( it, steps.begin(), steps.end() ) { switch ( it->stepType() ) { case sat::Transaction::TRANSACTION_INSTALL: case sat::Transaction::TRANSACTION_MULTIINSTALL: // proceed: only install actionas may require download. break; default: // next: no download for or non-packages and delete actions. continue; break; } PoolItem pi( *it ); if ( pi->isKind() || pi->isKind() ) { ManagedFile localfile; try { localfile = packageCache.get( pi ); localfile.resetDispose(); // keep the package file in the cache } catch ( const AbortRequestException & exp ) { it->stepStage( sat::Transaction::STEP_ERROR ); miss = true; WAR << "commit cache preload aborted by the user" << endl; ZYPP_THROW( TargetAbortedException( N_("Installation has been aborted as directed.") ) ); break; } catch ( const SkipRequestException & exp ) { ZYPP_CAUGHT( exp ); it->stepStage( sat::Transaction::STEP_ERROR ); miss = true; WAR << "Skipping cache preload package " << pi->asKind() << " in commit" << endl; continue; } catch ( const Exception & exp ) { // bnc #395704: missing catch causes abort. // TODO see if packageCache fails to handle errors correctly. ZYPP_CAUGHT( exp ); it->stepStage( sat::Transaction::STEP_ERROR ); miss = true; INT << "Unexpected Error: Skipping cache preload package " << pi->asKind() << " in commit" << endl; continue; } } } packageCache.preloaded( true ); // try to avoid duplicate infoInCache CBs in commit } if ( miss ) { ERR << "Some packages could not be provided. Aborting commit."<< endl; } else { if ( ! policy_r.dryRun() ) { // if cache is preloaded, check for file conflicts commitFindFileConflicts( policy_r, result ); commit( policy_r, packageCache, result ); } else { DBG << "dryRun/downloadOnly: Not installing/deleting anything." << endl; } } } else { DBG << "dryRun: Not downloading/installing/deleting anything." << endl; } /////////////////////////////////////////////////////////////////// // Send result to commit plugins: /////////////////////////////////////////////////////////////////// if ( commitPlugins ) commitPlugins.send( transactionPluginFrame( "COMMITEND", steps ) ); /////////////////////////////////////////////////////////////////// // Try to rebuild solv file while rpm database is still in cache /////////////////////////////////////////////////////////////////// if ( ! policy_r.dryRun() ) { buildCache(); } MIL << "TargetImpl::commit(, " << policy_r << ") returns: " << result << endl; return result; } /////////////////////////////////////////////////////////////////// // // COMMIT internal // /////////////////////////////////////////////////////////////////// namespace { struct NotifyAttemptToModify { NotifyAttemptToModify( ZYppCommitResult & result_r ) : _result( result_r ) {} void operator()() { if ( _guard ) { _result.attemptToModify( true ); _guard = false; } } TrueBool _guard; ZYppCommitResult & _result; }; } // namespace void TargetImpl::commit( const ZYppCommitPolicy & policy_r, CommitPackageCache & packageCache_r, ZYppCommitResult & result_r ) { // steps: this is our todo-list ZYppCommitResult::TransactionStepList & steps( result_r.rTransactionStepList() ); MIL << "TargetImpl::commit(" << policy_r << ")" << steps.size() << endl; HistoryLog().stampCommand(); // Send notification once upon 1st call to rpm NotifyAttemptToModify attemptToModify( result_r ); bool abort = false; RpmPostTransCollector postTransCollector( _root ); std::vector successfullyInstalledPackages; TargetImpl::PoolItemList remaining; for_( step, steps.begin(), steps.end() ) { PoolItem citem( *step ); if ( step->stepType() == sat::Transaction::TRANSACTION_IGNORE ) { if ( citem->isKind() ) { // for packages this means being obsoleted (by rpm) // thius no additional action is needed. step->stepStage( sat::Transaction::STEP_DONE ); continue; } } if ( citem->isKind() ) { Package::constPtr p = citem->asKind(); if ( citem.status().isToBeInstalled() ) { ManagedFile localfile; try { localfile = packageCache_r.get( citem ); } catch ( const AbortRequestException &e ) { WAR << "commit aborted by the user" << endl; abort = true; step->stepStage( sat::Transaction::STEP_ERROR ); break; } catch ( const SkipRequestException &e ) { ZYPP_CAUGHT( e ); WAR << "Skipping package " << p << " in commit" << endl; step->stepStage( sat::Transaction::STEP_ERROR ); continue; } catch ( const Exception &e ) { // bnc #395704: missing catch causes abort. // TODO see if packageCache fails to handle errors correctly. ZYPP_CAUGHT( e ); INT << "Unexpected Error: Skipping package " << p << " in commit" << endl; step->stepStage( sat::Transaction::STEP_ERROR ); continue; } #warning Exception handling // create a installation progress report proxy RpmInstallPackageReceiver progress( citem.resolvable() ); progress.connect(); // disconnected on destruction. bool success = false; rpm::RpmInstFlags flags( policy_r.rpmInstFlags() & rpm::RPMINST_JUSTDB ); // Why force and nodeps? // // Because zypp builds the transaction and the resolver asserts that // everything is fine. // We use rpm just to unpack and register the package in the database. // We do this step by step, so rpm is not aware of the bigger context. // So we turn off rpms internal checks, because we do it inside zypp. flags |= rpm::RPMINST_NODEPS; flags |= rpm::RPMINST_FORCE; // if (p->multiversionInstall()) flags |= rpm::RPMINST_NOUPGRADE; if (policy_r.dryRun()) flags |= rpm::RPMINST_TEST; if (policy_r.rpmExcludeDocs()) flags |= rpm::RPMINST_EXCLUDEDOCS; if (policy_r.rpmNoSignature()) flags |= rpm::RPMINST_NOSIGNATURE; attemptToModify(); try { progress.tryLevel( target::rpm::InstallResolvableReport::RPM_NODEPS_FORCE ); if ( postTransCollector.collectScriptFromPackage( localfile ) ) flags |= rpm::RPMINST_NOPOSTTRANS; rpm().installPackage( localfile, flags ); HistoryLog().install(citem); if ( progress.aborted() ) { WAR << "commit aborted by the user" << endl; localfile.resetDispose(); // keep the package file in the cache abort = true; step->stepStage( sat::Transaction::STEP_ERROR ); break; } else { success = true; step->stepStage( sat::Transaction::STEP_DONE ); } } catch ( Exception & excpt_r ) { ZYPP_CAUGHT(excpt_r); localfile.resetDispose(); // keep the package file in the cache if ( policy_r.dryRun() ) { WAR << "dry run failed" << endl; step->stepStage( sat::Transaction::STEP_ERROR ); break; } // else if ( progress.aborted() ) { WAR << "commit aborted by the user" << endl; abort = true; } else { WAR << "Install failed" << endl; } step->stepStage( sat::Transaction::STEP_ERROR ); break; // stop } if ( success && !policy_r.dryRun() ) { citem.status().resetTransact( ResStatus::USER ); successfullyInstalledPackages.push_back( citem.satSolvable() ); step->stepStage( sat::Transaction::STEP_DONE ); } } else { RpmRemovePackageReceiver progress( citem.resolvable() ); progress.connect(); // disconnected on destruction. bool success = false; rpm::RpmInstFlags flags( policy_r.rpmInstFlags() & rpm::RPMINST_JUSTDB ); flags |= rpm::RPMINST_NODEPS; if (policy_r.dryRun()) flags |= rpm::RPMINST_TEST; attemptToModify(); try { rpm().removePackage( p, flags ); HistoryLog().remove(citem); if ( progress.aborted() ) { WAR << "commit aborted by the user" << endl; abort = true; step->stepStage( sat::Transaction::STEP_ERROR ); break; } else { success = true; step->stepStage( sat::Transaction::STEP_DONE ); } } catch (Exception & excpt_r) { ZYPP_CAUGHT( excpt_r ); if ( progress.aborted() ) { WAR << "commit aborted by the user" << endl; abort = true; step->stepStage( sat::Transaction::STEP_ERROR ); break; } // else WAR << "removal of " << p << " failed"; step->stepStage( sat::Transaction::STEP_ERROR ); } if ( success && !policy_r.dryRun() ) { citem.status().resetTransact( ResStatus::USER ); step->stepStage( sat::Transaction::STEP_DONE ); } } } else if ( ! policy_r.dryRun() ) // other resolvables (non-Package) { // Status is changed as the buddy package buddy // gets installed/deleted. Handle non-buddies only. if ( ! citem.buddy() ) { if ( citem->isKind() ) { Product::constPtr p = citem->asKind(); if ( citem.status().isToBeInstalled() ) { ERR << "Can't install orphan product without release-package! " << citem << endl; } else { // Deleting the corresponding product entry is all we con do. // So the product will no longer be visible as installed. std::string referenceFilename( p->referenceFilename() ); if ( referenceFilename.empty() ) { ERR << "Can't remove orphan product without 'referenceFilename'! " << citem << endl; } else { PathInfo referenceFile( Pathname::assertprefix( _root, Pathname( "/etc/products.d" ) ) / referenceFilename ); if ( ! referenceFile.isFile() || filesystem::unlink( referenceFile.path() ) != 0 ) { ERR << "Delete orphan product failed: " << referenceFile << endl; } } } } else if ( citem->isKind() && citem.status().isToBeInstalled() ) { // SrcPackage is install-only SrcPackage::constPtr p = citem->asKind(); installSrcPackage( p ); } citem.status().resetTransact( ResStatus::USER ); step->stepStage( sat::Transaction::STEP_DONE ); } } // other resolvables } // for // process all remembered posttrans scripts. If aborting, // at least log omitted scripts. if ( abort || (abort = !postTransCollector.executeScripts()) ) postTransCollector.discardScripts(); // Check presence of update scripts/messages. If aborting, // at least log omitted scripts. if ( ! successfullyInstalledPackages.empty() ) { if ( ! RunUpdateScripts( _root, ZConfig::instance().update_scriptsPath(), successfullyInstalledPackages, abort ) ) { WAR << "Commit aborted by the user" << endl; abort = true; } // send messages after scripts in case some script generates output, // that should be kept in t %ghost message file. RunUpdateMessages( _root, ZConfig::instance().update_messagesPath(), successfullyInstalledPackages, result_r ); } if ( abort ) { ZYPP_THROW( TargetAbortedException( N_("Installation has been aborted as directed.") ) ); } } /////////////////////////////////////////////////////////////////// rpm::RpmDb & TargetImpl::rpm() { return _rpm; } bool TargetImpl::providesFile (const std::string & path_str, const std::string & name_str) const { return _rpm.hasFile(path_str, name_str); } Date TargetImpl::timestamp() const { return _rpm.timestamp(); } /////////////////////////////////////////////////////////////////// namespace { parser::ProductFileData baseproductdata( const Pathname & root_r ) { parser::ProductFileData ret; PathInfo baseproduct( Pathname::assertprefix( root_r, "/etc/products.d/baseproduct" ) ); if ( baseproduct.isFile() ) { try { ret = parser::ProductFileReader::scanFile( baseproduct.path() ); } catch ( const Exception & excpt ) { ZYPP_CAUGHT( excpt ); } } else if ( PathInfo( Pathname::assertprefix( root_r, "/etc/products.d" ) ).isDir() ) { ERR << "baseproduct symlink is dangling or missing: " << baseproduct << endl; } return ret; } inline Pathname staticGuessRoot( const Pathname & root_r ) { if ( root_r.empty() ) { // empty root: use existing Target or assume "/" Pathname ret ( ZConfig::instance().systemRoot() ); if ( ret.empty() ) return Pathname("/"); return ret; } return root_r; } inline std::string firstNonEmptyLineIn( const Pathname & file_r ) { std::ifstream idfile( file_r.c_str() ); for( iostr::EachLine in( idfile ); in; in.next() ) { std::string line( str::trim( *in ) ); if ( ! line.empty() ) return line; } return std::string(); } } // namespace /////////////////////////////////////////////////////////////////// Product::constPtr TargetImpl::baseProduct() const { ResPool pool(ResPool::instance()); for_( it, pool.byKindBegin(), pool.byKindEnd() ) { Product::constPtr p = (*it)->asKind(); if ( p->isTargetDistribution() ) return p; } return nullptr; } LocaleSet TargetImpl::requestedLocales( const Pathname & root_r ) { const Pathname needroot( staticGuessRoot(root_r) ); const Target_constPtr target( getZYpp()->getTarget() ); if ( target && target->root() == needroot ) return target->requestedLocales(); return RequestedLocalesFile( home(needroot) / "RequestedLocales" ).locales(); } void TargetImpl::updateAutoInstalled() { MIL << "updateAutoInstalled if changed..." << endl; SolvIdentFile::Data newdata; for ( auto id : sat::Pool::instance().autoInstalled() ) newdata.insert( IdString(id) ); // explicit ctor! _autoInstalledFile.setData( std::move(newdata) ); } std::string TargetImpl::targetDistribution() const { return baseproductdata( _root ).registerTarget(); } // static version: std::string TargetImpl::targetDistribution( const Pathname & root_r ) { return baseproductdata( staticGuessRoot(root_r) ).registerTarget(); } std::string TargetImpl::targetDistributionRelease() const { return baseproductdata( _root ).registerRelease(); } // static version: std::string TargetImpl::targetDistributionRelease( const Pathname & root_r ) { return baseproductdata( staticGuessRoot(root_r) ).registerRelease();} std::string TargetImpl::targetDistributionFlavor() const { return baseproductdata( _root ).registerFlavor(); } // static version: std::string TargetImpl::targetDistributionFlavor( const Pathname & root_r ) { return baseproductdata( staticGuessRoot(root_r) ).registerFlavor();} Target::DistributionLabel TargetImpl::distributionLabel() const { Target::DistributionLabel ret; parser::ProductFileData pdata( baseproductdata( _root ) ); ret.shortName = pdata.shortName(); ret.summary = pdata.summary(); return ret; } // static version: Target::DistributionLabel TargetImpl::distributionLabel( const Pathname & root_r ) { Target::DistributionLabel ret; parser::ProductFileData pdata( baseproductdata( staticGuessRoot(root_r) ) ); ret.shortName = pdata.shortName(); ret.summary = pdata.summary(); return ret; } std::string TargetImpl::distributionVersion() const { if ( _distributionVersion.empty() ) { _distributionVersion = TargetImpl::distributionVersion(root()); if ( !_distributionVersion.empty() ) MIL << "Remember distributionVersion = '" << _distributionVersion << "'" << endl; } return _distributionVersion; } // static version std::string TargetImpl::distributionVersion( const Pathname & root_r ) { std::string distributionVersion = baseproductdata( staticGuessRoot(root_r) ).edition().version(); if ( distributionVersion.empty() ) { // ...But the baseproduct method is not expected to work on RedHat derivatives. // On RHEL, Fedora and others the "product version" is determined by the first package // providing 'system-release'. This value is not hardcoded in YUM and can be configured // with the $distroverpkg variable. scoped_ptr tmprpmdb; if ( ZConfig::instance().systemRoot() == Pathname() ) { try { tmprpmdb.reset( new rpm::RpmDb ); tmprpmdb->initDatabase( /*default ctor uses / but no additional keyring exports */ ); } catch( ... ) { return ""; } } rpm::librpmDb::db_const_iterator it; if ( it.findByProvides( ZConfig::instance().distroverpkg() ) ) distributionVersion = it->tag_version(); } return distributionVersion; } std::string TargetImpl::distributionFlavor() const { return firstNonEmptyLineIn( home() / "LastDistributionFlavor" ); } // static version: std::string TargetImpl::distributionFlavor( const Pathname & root_r ) { return firstNonEmptyLineIn( staticGuessRoot(root_r) / "/var/lib/zypp/LastDistributionFlavor" ); } /////////////////////////////////////////////////////////////////// namespace { std::string guessAnonymousUniqueId( const Pathname & root_r ) { // bsc#1024741: Omit creating a new uid for chrooted systems (if it already has one, fine) std::string ret( firstNonEmptyLineIn( root_r / "/var/lib/zypp/AnonymousUniqueId" ) ); if ( ret.empty() && root_r != "/" ) { // if it has nonoe, use the outer systems one ret = firstNonEmptyLineIn( "/var/lib/zypp/AnonymousUniqueId" ); } return ret; } } std::string TargetImpl::anonymousUniqueId() const { return guessAnonymousUniqueId( root() ); } // static version: std::string TargetImpl::anonymousUniqueId( const Pathname & root_r ) { return guessAnonymousUniqueId( staticGuessRoot(root_r) ); } /////////////////////////////////////////////////////////////////// void TargetImpl::installSrcPackage( const SrcPackage_constPtr & srcPackage_r ) { // provide on local disk ManagedFile localfile = provideSrcPackage(srcPackage_r); // create a installation progress report proxy RpmInstallPackageReceiver progress( srcPackage_r ); progress.connect(); // disconnected on destruction. // install it rpm().installPackage ( localfile ); } ManagedFile TargetImpl::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ) { // provide on local disk repo::RepoMediaAccess access_r; repo::SrcPackageProvider prov( access_r ); return prov.provideSrcPackage( srcPackage_r ); } //////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/TargetImpl.commitFindFileConflicts.cc000066400000000000000000000126761334444677500247400ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetImpl.commitFindFileConflicts.cc */ extern "C" { #include #include #include #include #include #include #include } #include #include #include #include "zypp/base/LogTools.h" #include "zypp/base/Gettext.h" #include "zypp/base/Exception.h" #include "zypp/base/UserRequestException.h" #include "zypp/sat/Queue.h" #include "zypp/sat/FileConflicts.h" #include "zypp/sat/Pool.h" #include "zypp/target/TargetImpl.h" #include "zypp/target/CommitPackageCache.h" #include "zypp/ZYppCallbacks.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////////// namespace { /** libsolv::pool_findfileconflicts callback providing package header. */ struct FileConflictsCB { FileConflictsCB( sat::detail::CPool * pool_r, ProgressData & progress_r ) : _progress( progress_r ) , _state( ::rpm_state_create( pool_r, ::pool_get_rootdir(pool_r) ), ::rpm_state_free ) {} void * operator()( sat::detail::CPool * pool_r, sat::detail::IdType id_r ) { void * ret = lookup( id_r ); // report progress on 1st visit only, ticks later // (there may be up to 3 visits) if ( _visited.find( id_r ) == _visited.end() ) { //DBG << "FCCB: " << sat::Solvable( id_r ) << " " << ret << endl; _visited.insert( id_r ); if ( ! ret && sat::Solvable( id_r ).isKind() ) // only packages have filelists _noFilelist.push( id_r ); _progress.incr(); } else { _progress.tick(); } return ret; } const sat::Queue & noFilelist() const { return _noFilelist; } static void * invoke( sat::detail::CPool * pool_r, sat::detail::IdType id_r, void * cbdata_r ) { return (*reinterpret_cast(cbdata_r))( pool_r, id_r ); } private: void * lookup( sat::detail::IdType id_r ) { sat::Solvable solv( id_r ); if ( solv.isSystem() ) { Solvable * s = solv.get(); if ( ! s->repo->rpmdbid ) return nullptr; sat::detail::IdType rpmdbid = s->repo->rpmdbid[id_r - s->repo->start]; if ( ! rpmdbid ) return nullptr; return ::rpm_byrpmdbid( _state, rpmdbid ); } else { Package::Ptr pkg( make( solv ) ); if ( ! pkg ) return nullptr; Pathname localfile( pkg->cachedLocation() ); if ( localfile.empty() ) return nullptr; AutoDispose fp( ::fopen( localfile.c_str(), "re" ), ::fclose ); return ::rpm_byfp( _state, fp, localfile.c_str() ); } } private: ProgressData & _progress; AutoDispose _state; std::unordered_set _visited; sat::Queue _noFilelist; }; } // namespace /////////////////////////////////////////////////////////////////// void TargetImpl::commitFindFileConflicts( const ZYppCommitPolicy & policy_r, ZYppCommitResult & result_r ) { sat::Queue todo; sat::FileConflicts conflicts; int newpkgs = result_r.transaction().installedResult( todo ); MIL << "Checking for file conflicts in " << newpkgs << " new packages..." << endl; if ( ! newpkgs ) return; try { callback::SendReport report; ProgressData progress( todo.size() ); if ( ! report->start( progress ) ) ZYPP_THROW( AbortRequestException() ); FileConflictsCB cb( sat::Pool::instance().get(), progress ); // lambda receives progress trigger and translates into report auto sendProgress = [&]( const ProgressData & progress_r )->bool { if ( ! report->progress( progress_r, cb.noFilelist() ) ) { progress.noSend(); // take care progress DTOR does not trigger a final report (2nd exeption) ZYPP_THROW( AbortRequestException() ); } return true; }; progress.sendTo( sendProgress ); unsigned count = ::pool_findfileconflicts( sat::Pool::instance().get(), todo, newpkgs, conflicts, FINDFILECONFLICTS_USE_SOLVABLEFILELIST | FINDFILECONFLICTS_CHECK_DIRALIASING | FINDFILECONFLICTS_USE_ROOTDIR, &FileConflictsCB::invoke, &cb ); progress.toMax(); progress.noSend(); (count?WAR:MIL) << "Found " << count << " file conflicts." << endl; if ( ! report->result( progress, cb.noFilelist(), conflicts ) ) ZYPP_THROW( AbortRequestException() ); } catch ( const AbortRequestException & e ) { TargetAbortedException excpt( N_("Installation has been aborted as directed.") ); excpt.remember( e ); ZYPP_THROW( excpt ); } } } // namespace target /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/TargetImpl.h000066400000000000000000000200301334444677500200240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/TargetImpl.h * */ #ifndef ZYPP_TARGET_TARGETIMPL_H #define ZYPP_TARGET_TARGETIMPL_H #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/PoolItem.h" #include "zypp/ZYppCommit.h" #include "zypp/Pathname.h" #include "zypp/media/MediaAccess.h" #include "zypp/Target.h" #include "zypp/target/rpm/RpmDb.h" #include "zypp/target/TargetException.h" #include "zypp/target/RequestedLocalesFile.h" #include "zypp/target/SolvIdentFile.h" #include "zypp/target/HardLocksFile.h" #include "zypp/ManagedFile.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// DEFINE_PTR_TYPE(TargetImpl); class CommitPackageCache; /////////////////////////////////////////////////////////////////// // // CLASS NAME : TargetImpl // /** Base class for concrete Target implementations. * * Constructed by \ref TargetFactory. Public access via \ref Target * interface. */ class TargetImpl : public base::ReferenceCounted, private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const TargetImpl & obj ); public: /** list of pool items */ typedef std::list PoolItemList; /** set of pool items */ typedef std::set PoolItemSet; public: /** Ctor. */ TargetImpl(const Pathname & root_r = "/", bool doRebuild_r = false ); /** Dtor. */ virtual ~TargetImpl(); /** * generates the unique anonymous id which is called * when creating the target */ void createAnonymousId() const; /** * generates a cache of the last product flavor */ void createLastDistributionFlavorCache() const; /** \name Solv file handling. * If target solv file is outdated, but (non-root-)user has * no permission to create it at the default location, we * use a temporary one. */ //@{ private: /** The systems default solv file location. */ Pathname defaultSolvfilesPath() const; /** The solv file location actually in use (default or temp). */ Pathname solvfilesPath() const { return solvfilesPathIsTemp() ? _tmpSolvfilesPath : defaultSolvfilesPath(); } /** Whether we're using a temp. solvfile. */ bool solvfilesPathIsTemp() const { return ! _tmpSolvfilesPath.empty(); } Pathname _tmpSolvfilesPath; public: void load( bool force = true ); void unload(); void reload(); void clearCache(); bool buildCache(); //@} public: /** The root set for this target */ Pathname root() const { return _root; } /** The directory to store things. */ Pathname home() const { return home( _root ); } static Pathname home( const Pathname & root_r ) { return root_r / "/var/lib/zypp"; } /** Commit changes in the pool */ ZYppCommitResult commit( ResPool pool_r, const ZYppCommitPolicy & policy_r ); /** Install a source package on the Target. */ void installSrcPackage( const SrcPackage_constPtr & srcPackage_r ); /** Provides a source package on the Target. */ ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ); /** Overload to realize stream output. */ virtual std::ostream & dumpOn( std::ostream & str ) const { return str << "TargetImpl"; } /** The RPM database */ rpm::RpmDb & rpm(); /** If the package is installed and provides the file Needed to evaluate split provides during Resolver::Upgrade() */ bool providesFile (const std::string & path_str, const std::string & name_str) const; /** Return name of package owning \a path_str * or empty string if no installed package owns \a path_str. */ std::string whoOwnsFile (const std::string & path_str) const { return _rpm.whoOwnsFile (path_str); } /** return the last modification date of the target */ Date timestamp() const; /** \copydoc Target::baseProduct() */ Product::constPtr baseProduct() const; /** \copydoc Target::requestedLocales() */ LocaleSet requestedLocales() const { return _requestedLocalesFile.locales(); } /** \overload */ static LocaleSet requestedLocales( const Pathname & root_r ); /** \copydoc Target::updateAutoInstalled */ void updateAutoInstalled(); /** \copydoc Target::targetDistribution() */ std::string targetDistribution() const; /** \overload */ static std::string targetDistribution( const Pathname & root_r ); /** \copydoc Target::targetDistributionRelease()*/ std::string targetDistributionRelease() const; /** \overload */ static std::string targetDistributionRelease( const Pathname & root_r ); /** \copydoc Target::targetDistributionFlavor()*/ std::string targetDistributionFlavor() const; /** \overload */ static std::string targetDistributionFlavor( const Pathname & root_r ); /** \copydoc Target::distributionLabel()*/ Target::DistributionLabel distributionLabel() const; /** \overload */ static Target::DistributionLabel distributionLabel( const Pathname & root_r ); /** \copydoc Target::distributionVersion()*/ std::string distributionVersion() const; /** \overload */ static std::string distributionVersion( const Pathname & root_r ); /** \copydoc Target::distributionFlavor() */ std::string distributionFlavor() const; /** \overload */ static std::string distributionFlavor( const Pathname & root_r ); /** \copydoc Target::anonymousUniqueId() */ std::string anonymousUniqueId() const; /** \overload */ static std::string anonymousUniqueId( const Pathname & root_r ); private: /** Commit ordered changes (internal helper) */ void commit( const ZYppCommitPolicy & policy_r, CommitPackageCache & packageCache_r, ZYppCommitResult & result_r ); /** Commit helper checking for file conflicts after download. */ void commitFindFileConflicts( const ZYppCommitPolicy & policy_r, ZYppCommitResult & result_r ); protected: /** Path to the target */ Pathname _root; /** RPM database */ rpm::RpmDb _rpm; /** Requested Locales database */ RequestedLocalesFile _requestedLocalesFile; /** user/auto installed database */ SolvIdentFile _autoInstalledFile; /** Hard-Locks database */ HardLocksFile _hardLocksFile; /** Cache distributionVersion */ mutable std::string _distributionVersion; }; /////////////////////////////////////////////////////////////////// /** \relates TargetImpl Stream output */ inline std::ostream & operator<<( std::ostream & str, const TargetImpl & obj ) { return obj.dumpOn( str ); } ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_TARGETIMPL_H libzypp-17.7.0/zypp/target/hal/000077500000000000000000000000001334444677500163545ustar00rootroot00000000000000libzypp-17.7.0/zypp/target/hal/HalContext.cc000066400000000000000000001122571334444677500207440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/hal/HalContext.cc * * \brief Hardware abstaction layer library wrapper implementation. */ #include "zypp/target/hal/HalException.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace target { ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// namespace hal { //////////////////////////////////////////////////////////////// NoHalException::NoHalException() : Exception(_("Sorry, but this version of libzypp was built without HAL support.")) {} //////////////////////////////////////////////////////////////// } // namespace hal ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// } // namespace target //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #ifndef NO_HAL // disables zypp's HAL dependency #include "zypp/target/hal/HalContext.h" #include "zypp/thread/Mutex.h" #include "zypp/thread/MutexLock.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" #include #include #include using namespace std; ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace target { ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// namespace hal { //////////////////////////////////////////////////////////////// using zypp::thread::Mutex; using zypp::thread::MutexLock; //////////////////////////////////////////////////////////////// namespace // anonymous { ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// // STATIC /** ** hmm... currently a global one.. */ static Mutex g_Mutex; ////////////////////////////////////////////////////////////// /** * Internal hal (dbus ) error helper class. */ class HalError { public: DBusError error; HalError() { dbus_error_init(&error); } ~HalError() { dbus_error_free(&error); } inline bool isSet() const { return dbus_error_is_set(&error); } inline HalException halException(const std::string &msg = std::string()) const { if( isSet() && error.name != NULL && error.message != NULL) { return HalException(error.name, error.message); } else if( !msg.empty()) { return HalException(msg); } else { return HalException(); } } }; // ----------------------------------------------------------- inline void VERIFY_CONTEXT(const zypp::RW_pointer &h) { if( !h) { ZYPP_THROW(HalException(_("HalContext not connected"))); } } // ----------------------------------------------------------- inline void VERIFY_DRIVE(const zypp::RW_pointer &d) { if( !d) { ZYPP_THROW(HalException(_("HalDrive not initialized"))); } } // ----------------------------------------------------------- inline void VERIFY_VOLUME(const zypp::RW_pointer &v) { if( !v) { ZYPP_THROW(HalException(_("HalVolume not initialized"))); } } ////////////////////////////////////////////////////////////// } // anonymous //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// std::ostream & HalException::dumpOn( std::ostream & str ) const { if(!e_name.empty() && !e_msg.empty()) return str << msg() << ": " << e_msg << " (" << e_name << ")"; else if(!e_msg.empty()) return str << msg() << ": " << e_msg; else return str << msg(); } //////////////////////////////////////////////////////////////// class HalContext_Impl { public: HalContext_Impl(); ~HalContext_Impl(); DBusConnection *conn; LibHalContext *hctx; bool pcon; // private connection }; //////////////////////////////////////////////////////////////// class HalDrive_Impl { public: zypp::RW_pointer hal; LibHalDrive *drv; HalDrive_Impl() : hal(), drv(NULL) { } HalDrive_Impl(const zypp::RW_pointer &r, LibHalDrive *d) : hal(r), drv(d) { } ~HalDrive_Impl() { if( drv) libhal_drive_free(drv); } }; //////////////////////////////////////////////////////////////// class HalVolume_Impl { public: LibHalVolume *vol; HalVolume_Impl(LibHalVolume *v=NULL) : vol(v) { } ~HalVolume_Impl() { if( vol) libhal_volume_free(vol); } }; //////////////////////////////////////////////////////////////// HalContext_Impl::HalContext_Impl() : conn(NULL) , hctx(NULL) , pcon(false) // we allways use shared connections at the moment { HalError err; if( pcon) conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err.error); else conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err.error); if( !conn) { ZYPP_THROW(err.halException( _("Unable to create dbus connection") )); } hctx = libhal_ctx_new(); if( !hctx) { if( pcon) dbus_connection_close(conn); dbus_connection_unref(conn); conn = NULL; ZYPP_THROW(HalException( _("libhal_ctx_new: Can't create libhal context") )); } if( !libhal_ctx_set_dbus_connection(hctx, conn)) { libhal_ctx_free(hctx); hctx = NULL; if( pcon) dbus_connection_close(conn); dbus_connection_unref(conn); conn = NULL; ZYPP_THROW(HalException( _("libhal_set_dbus_connection: Can't set dbus connection") )); } if( !libhal_ctx_init(hctx, &err.error)) { libhal_ctx_free(hctx); hctx = NULL; if( pcon) dbus_connection_close(conn); dbus_connection_unref(conn); conn = NULL; ZYPP_THROW(err.halException( _("Unable to initalize HAL context -- hald not running?") )); } } // ------------------------------------------------------------- HalContext_Impl::~HalContext_Impl() { if( hctx) { HalError err; libhal_ctx_shutdown(hctx, &err.error); libhal_ctx_free( hctx); } if( conn) { if( pcon) dbus_connection_close(conn); dbus_connection_unref(conn); } } //////////////////////////////////////////////////////////////// HalContext::HalContext(bool autoconnect) : h_impl( NULL) { MutexLock lock(g_Mutex); if( autoconnect) h_impl.reset( new HalContext_Impl()); } // ------------------------------------------------------------- HalContext::HalContext(const HalContext &context) : h_impl( NULL) { MutexLock lock(g_Mutex); zypp::RW_pointer(context.h_impl).swap(h_impl); } // ------------------------------------------------------------- HalContext::~HalContext() { MutexLock lock(g_Mutex); h_impl.reset(); } // -------------------------------------------------------------- HalContext & HalContext::operator=(const HalContext &context) { MutexLock lock(g_Mutex); if( this == &context) return *this; zypp::RW_pointer(context.h_impl).swap(h_impl); return *this; } // -------------------------------------------------------------- HalContext::operator HalContext::bool_type() const { MutexLock lock(g_Mutex); return h_impl; } // -------------------------------------------------------------- void HalContext::connect() { MutexLock lock(g_Mutex); if( !h_impl) h_impl.reset( new HalContext_Impl()); } // -------------------------------------------------------------- std::vector HalContext::getAllDevices() const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; char **names; int count = 0; names = libhal_get_all_devices( h_impl->hctx, &count, &err.error); if( !names) { ZYPP_THROW(err.halException()); } std::vector ret(names, names + count); libhal_free_string_array(names); return ret; } // -------------------------------------------------------------- HalDrive HalContext::getDriveFromUDI(const std::string &udi) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); LibHalDrive *drv = libhal_drive_from_udi(h_impl->hctx, udi.c_str()); if( drv != NULL) return HalDrive(new HalDrive_Impl( h_impl, drv)); else return HalDrive(); } // -------------------------------------------------------------- HalVolume HalContext::getVolumeFromUDI(const std::string &udi) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); LibHalVolume *vol = libhal_volume_from_udi(h_impl->hctx, udi.c_str()); if( vol) return HalVolume( new HalVolume_Impl(vol)); else return HalVolume(); } // -------------------------------------------------------------- HalVolume HalContext::getVolumeFromDeviceFile(const std::string &device_file) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); LibHalVolume *vol = libhal_volume_from_device_file(h_impl->hctx, device_file.c_str()); if( vol) return HalVolume( new HalVolume_Impl(vol)); else return HalVolume(); } // -------------------------------------------------------------- std::vector HalContext::findDevicesByCapability(const std::string &capability) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; char **names; int count = 0; names = libhal_find_device_by_capability(h_impl->hctx, capability.c_str(), &count, &err.error); if( !names) { ZYPP_THROW(err.halException()); } std::vector ret(names, names + count); libhal_free_string_array(names); return ret; } // -------------------------------------------------------------- bool HalContext::getDevicePropertyBool (const std::string &udi, const std::string &key) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_get_property_bool (h_impl->hctx, udi.c_str(), key.c_str(), &err.error); if( err.isSet()) { ZYPP_THROW(err.halException()); } return ret; } // -------------------------------------------------------------- int32_t HalContext::getDevicePropertyInt32 (const std::string &udi, const std::string &key) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_int32_t ret; ret = libhal_device_get_property_int (h_impl->hctx, udi.c_str(), key.c_str(), &err.error); if( err.isSet()) { ZYPP_THROW(err.halException()); } return ret; } // -------------------------------------------------------------- uint64_t HalContext::getDevicePropertyUInt64(const std::string &udi, const std::string &key) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_uint64_t ret; ret = libhal_device_get_property_uint64(h_impl->hctx, udi.c_str(), key.c_str(), &err.error); if( err.isSet()) { ZYPP_THROW(err.halException()); } return ret; } // -------------------------------------------------------------- double HalContext::getDevicePropertyDouble(const std::string &udi, const std::string &key) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; double ret; ret = libhal_device_get_property_bool (h_impl->hctx, udi.c_str(), key.c_str(), &err.error); if( err.isSet()) { ZYPP_THROW(err.halException()); } return ret; } // -------------------------------------------------------------- std::string HalContext::getDevicePropertyString(const std::string &udi, const std::string &key) const { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; std::string ret; char *ptr; ptr = libhal_device_get_property_string(h_impl->hctx, udi.c_str(), key.c_str(), &err.error); if( err.isSet()) { ZYPP_THROW(err.halException()); } if( ptr != NULL) { ret = ptr; free(ptr); } return ret; } // -------------------------------------------------------------- void HalContext::setDevicePropertyBool (const std::string &udi, const std::string &key, bool value) { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_set_property_bool (h_impl->hctx, udi.c_str(), key.c_str(), value ? 1 : 0, &err.error); if( !ret) { ZYPP_THROW(err.halException()); } } // -------------------------------------------------------------- void HalContext::setDevicePropertyInt32 (const std::string &udi, const std::string &key, int32_t value) { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_set_property_int (h_impl->hctx, udi.c_str(), key.c_str(), value, &err.error); if( !ret) { ZYPP_THROW(err.halException()); } } // -------------------------------------------------------------- void HalContext::setDevicePropertyUInt64(const std::string &udi, const std::string &key, uint64_t value) { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_set_property_uint64(h_impl->hctx, udi.c_str(), key.c_str(), value, &err.error); if( !ret) { ZYPP_THROW(err.halException()); } } // -------------------------------------------------------------- void HalContext::setDevicePropertyDouble(const std::string &udi, const std::string &key, double value) { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_set_property_double(h_impl->hctx, udi.c_str(), key.c_str(), value, &err.error); if( !ret) { ZYPP_THROW(err.halException()); } } // -------------------------------------------------------------- void HalContext::setDevicePropertyString(const std::string &udi, const std::string &key, const std::string &value) { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_set_property_string(h_impl->hctx, udi.c_str(), key.c_str(), value.c_str(), &err.error); if( !ret) { ZYPP_THROW(err.halException()); } } // -------------------------------------------------------------- void HalContext::removeDeviceProperty(const std::string &udi, const std::string &key) { MutexLock lock(g_Mutex); VERIFY_CONTEXT(h_impl); HalError err; dbus_bool_t ret; ret = libhal_device_remove_property(h_impl->hctx, udi.c_str(), key.c_str(), &err.error); if( !ret) { ZYPP_THROW(err.halException()); } } //////////////////////////////////////////////////////////////// HalDrive::HalDrive() : d_impl( NULL) { } // -------------------------------------------------------------- HalDrive::HalDrive(HalDrive_Impl *impl) : d_impl( NULL) { MutexLock lock(g_Mutex); d_impl.reset(impl); } // -------------------------------------------------------------- HalDrive::HalDrive(const HalDrive &drive) : d_impl( NULL) { MutexLock lock(g_Mutex); zypp::RW_pointer(drive.d_impl).swap(d_impl); } // -------------------------------------------------------------- HalDrive::~HalDrive() { MutexLock lock(g_Mutex); d_impl.reset(); } // -------------------------------------------------------------- HalDrive & HalDrive::operator=(const HalDrive &drive) { MutexLock lock(g_Mutex); if( this == &drive) return *this; zypp::RW_pointer(drive.d_impl).swap(d_impl); return *this; } // -------------------------------------------------------------- HalDrive::operator HalDrive::bool_type() const { MutexLock lock(g_Mutex); return d_impl; } // -------------------------------------------------------------- std::string HalDrive::getUDI() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); const char *ptr = libhal_drive_get_udi(d_impl->drv); return std::string(ptr ? ptr : ""); } // -------------------------------------------------------------- std::string HalDrive::getTypeName() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); const char *ptr = libhal_drive_get_type_textual(d_impl->drv); return std::string(ptr ? ptr : ""); } // -------------------------------------------------------------- std::string HalDrive::getDeviceFile() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); return std::string(libhal_drive_get_device_file(d_impl->drv)); } // -------------------------------------------------------------- unsigned int HalDrive::getDeviceMajor() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); return libhal_drive_get_device_major(d_impl->drv); } // -------------------------------------------------------------- unsigned int HalDrive::getDeviceMinor() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); return libhal_drive_get_device_minor(d_impl->drv); } // -------------------------------------------------------------- bool HalDrive::usesRemovableMedia() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); return libhal_drive_uses_removable_media(d_impl->drv); } // -------------------------------------------------------------- std::vector HalDrive::getCdromCapabilityNames() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); std::vector ret; LibHalDriveCdromCaps caps; /* ** FIXME: there is no textual variant :-( ** using property key names... */ caps = libhal_drive_get_cdrom_caps(d_impl->drv); if(caps & LIBHAL_DRIVE_CDROM_CAPS_CDROM) ret.push_back("cdrom"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_CDR) ret.push_back("cdr"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_CDRW) ret.push_back("cdrw"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRAM) ret.push_back("dvdram"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDROM) ret.push_back("dvd"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDR) ret.push_back("dvdr"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRW) ret.push_back("dvdrw"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR) ret.push_back("dvdplusr"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW) ret.push_back("dvdplusrw"); if(caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL) ret.push_back("dvdplusrdl"); return ret; #if 0 if( libhal_drive_get_type(d_impl->drv) != LIBHAL_DRIVE_TYPE_CDROM) ZYPP_THROW(HalException(_("Not a CDROM drive"))); /* ** FIXME: we use property keys matching ** "storage.cdrom.cd*" ** "storage.cdrom.dvd*" ** but this may print other bool keys, ** that are not CDROM caps. */ LibHalPropertySet *props; HalError err; props = libhal_device_get_all_properties(d_impl->hal->hctx, getUDI().c_str(), &err.error); if( !props) ZYPP_THROW(err.halException()); std::vector ret(1, getTypeName()); std::string key; std::string dvd("storage.cdrom.dvd"); std::string cd ("storage.cdrom.cd"); LibHalPropertySetIterator it; for(libhal_psi_init(&it, props); libhal_psi_has_more(&it); libhal_psi_next(&it)) { if( libhal_psi_get_type(&it) == LIBHAL_PROPERTY_TYPE_BOOLEAN && libhal_psi_get_bool(&it)) { key = libhal_psi_get_key(&it); if( key.compare(0, cd.size(), cd) == 0) { ret.push_back(key.substr(sizeof("storage.cdrom.")-1)); } else if( key.compare(0, dvd.size(), dvd) == 0) { ret.push_back(key.substr(sizeof("storage.cdrom.")-1)); } } } libhal_free_property_set(props); return ret; #endif } // -------------------------------------------------------------- std::vector HalDrive::findAllVolumes() const { MutexLock lock(g_Mutex); VERIFY_DRIVE(d_impl); char **names; int count = 0; names = libhal_drive_find_all_volumes(d_impl->hal->hctx, d_impl->drv, &count); std::vector ret; ret.assign(names, names + count); libhal_free_string_array(names); return ret; } //////////////////////////////////////////////////////////////// HalVolume::HalVolume() : v_impl( NULL) {} HalVolume::HalVolume(HalVolume_Impl *impl) : v_impl( NULL) { MutexLock lock(g_Mutex); v_impl.reset(impl); } // -------------------------------------------------------------- HalVolume::HalVolume(const HalVolume &volume) : v_impl( NULL) { MutexLock lock(g_Mutex); zypp::RW_pointer(volume.v_impl).swap(v_impl); } // -------------------------------------------------------------- HalVolume::~HalVolume() { MutexLock lock(g_Mutex); v_impl.reset(); } // -------------------------------------------------------------- HalVolume & HalVolume::operator=(const HalVolume &volume) { MutexLock lock(g_Mutex); if( this == &volume) return *this; zypp::RW_pointer(volume.v_impl).swap(v_impl); return *this; } // -------------------------------------------------------------- HalVolume::operator HalVolume::bool_type() const { MutexLock lock(g_Mutex); return v_impl; } // -------------------------------------------------------------- std::string HalVolume::getUDI() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); const char *ptr = libhal_volume_get_udi(v_impl->vol); return std::string(ptr ? ptr : ""); } // -------------------------------------------------------------- std::string HalVolume::getDeviceFile() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return std::string(libhal_volume_get_device_file(v_impl->vol)); } // -------------------------------------------------------------- unsigned int HalVolume::getDeviceMajor() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return libhal_volume_get_device_major(v_impl->vol); } // -------------------------------------------------------------- unsigned int HalVolume::getDeviceMinor() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return libhal_volume_get_device_minor(v_impl->vol); } // -------------------------------------------------------------- bool HalVolume::isDisc() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return libhal_volume_is_disc(v_impl->vol); } // -------------------------------------------------------------- bool HalVolume::isPartition() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return libhal_volume_is_partition(v_impl->vol); } // -------------------------------------------------------------- bool HalVolume::isMounted() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return libhal_volume_is_mounted(v_impl->vol); } // -------------------------------------------------------------- std::string HalVolume::getFSType() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); return std::string( libhal_volume_get_fstype(v_impl->vol)); } // -------------------------------------------------------------- std::string HalVolume::getFSUsage() const { MutexLock lock(g_Mutex); VERIFY_VOLUME(v_impl); LibHalVolumeUsage usage( libhal_volume_get_fsusage(v_impl->vol)); std::string ret; switch( usage) { case LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM: ret = "filesystem"; break; case LIBHAL_VOLUME_USAGE_PARTITION_TABLE: ret = "partitiontable"; break; case LIBHAL_VOLUME_USAGE_RAID_MEMBER: return "raid"; break; case LIBHAL_VOLUME_USAGE_CRYPTO: ret = "crypto"; break; case LIBHAL_VOLUME_USAGE_UNKNOWN: default: break; } return ret; } // -------------------------------------------------------------- std::string HalVolume::getMountPoint() const { VERIFY_VOLUME(v_impl); return std::string( libhal_volume_get_mount_point(v_impl->vol)); } //////////////////////////////////////////////////////////////// } // namespace hal ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// } // namespace target //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #else // NO_HAL #include "zypp/target/hal/HalContext.h" #include "zypp/target/hal/HalException.h" namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace target { ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// namespace hal { //////////////////////////////////////////////////////////////// std::ostream & HalException::dumpOn( std::ostream & str ) const { return str; } // -------------------------------------------------------------- class HalContext_Impl {}; class HalDrive_Impl {}; class HalVolume_Impl {}; // -------------------------------------------------------------- HalContext::HalContext(bool) { ZYPP_THROW( NoHalException() ); } HalContext::~HalContext() {} HalContext & HalContext::operator=(const HalContext &) { return *this; } HalContext::operator HalContext::bool_type() const { return 0; } void HalContext::connect() {} std::vector HalContext::getAllDevices() const { return std::vector(); } HalDrive HalContext::getDriveFromUDI(const std::string &) const { return HalDrive(); } HalVolume HalContext::getVolumeFromUDI(const std::string &) const { return HalVolume(); } HalVolume HalContext::getVolumeFromDeviceFile(const std::string &) const { return HalVolume(); } std::vector HalContext::findDevicesByCapability(const std::string &) const { return std::vector(); } bool HalContext::getDevicePropertyBool(const std::string &, const std::string &) const { return false; } void HalContext::setDevicePropertyBool (const std::string &, const std::string &, bool value) {} void HalContext::removeDeviceProperty(const std::string &, const std::string &) {} std::string HalContext::getDevicePropertyString(const std::string &, const std::string &) const { return ""; } // -------------------------------------------------------------- HalDrive::HalDrive() { ZYPP_THROW( NoHalException() ); } HalDrive::~HalDrive() {} HalDrive & HalDrive::operator=(const HalDrive &) { return *this; } HalDrive::operator HalDrive::bool_type() const { return 0; } std::string HalDrive::getUDI() const { return std::string(); } std::string HalDrive::getTypeName() const { return std::string(); } std::string HalDrive::getDeviceFile() const { return std::string(); } unsigned int HalDrive::getDeviceMinor() const { return 0; } unsigned int HalDrive::getDeviceMajor() const { return 0; } bool HalDrive::usesRemovableMedia() const { return false; } std::vector HalDrive::getCdromCapabilityNames() const { return std::vector(); } std::vector HalDrive::findAllVolumes() const { return std::vector(); } // -------------------------------------------------------------- HalVolume::HalVolume() { ZYPP_THROW( NoHalException() ); } HalVolume::~HalVolume() {} HalVolume & HalVolume::operator=(const HalVolume &) { return *this; } HalVolume::operator HalVolume::bool_type() const { return 0; } std::string HalVolume::getUDI() const { return std::string(); } std::string HalVolume::getDeviceFile() const { return std::string(); } unsigned int HalVolume::getDeviceMinor() const { return 0; } unsigned int HalVolume::getDeviceMajor() const { return 0; } bool HalVolume::isDisc() const { return false; } bool HalVolume::isPartition() const { return false; } bool HalVolume::isMounted() const { return false; } std::string HalVolume::getFSType() const { return std::string(); } std::string HalVolume::getFSUsage() const { return std::string(); } std::string HalVolume::getMountPoint() const { return std::string(); } //////////////////////////////////////////////////////////////// } // namespace hal ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// } // namespace target //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // NO_HAL /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/target/hal/HalContext.h000066400000000000000000000226341334444677500206050ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/hal/HalContext.h * * \brief Hardware abstaction layer library wrapper. */ #ifndef ZYPP_TARGET_HAL_HALCONTEXT_H #define ZYPP_TARGET_HAL_HALCONTEXT_H #include "zypp/target/hal/HalException.h" #include "zypp/base/PtrTypes.h" #include #include #include ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace target { ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// namespace hal { //////////////////////////////////////////////////////////////// // ------------------------------------------------------------- /** @{ * Forward declarations. */ class HalDrive; class HalVolume; class HalDrive_Impl; class HalVolume_Impl; class HalContext_Impl; /** }@ */ //////////////////////////////////////////////////////////////// // // CLASS NAME : HalContext // /** Hardware abstaction layer context. * * Hal context wrapper. It manages the dbus connection and is * the entry point to query drives, volumes and other information. * * @todo: wrap more functions. */ class HalContext { public: typedef zypp::RW_pointer::unspecified_bool_type bool_type; HalContext(bool autoconnect=false); HalContext(const HalContext &context); ~HalContext(); HalContext& operator=(const HalContext &context); /** * Verifies if the context is initialized. */ operator bool_type() const; /** */ void connect(); /** * Retrieve UDI's of all devices. * \return Vector with device UDI's. */ std::vector getAllDevices() const; /** * Construct a HalDrive object for the specified UDI. * \param The \p udi of the drive. * \return The HalDrive object. */ HalDrive getDriveFromUDI(const std::string &udi) const; /** * Construct a HalVolume object for the specified UDI. * \param The \p udi of the volume. * \return The HalVolume object. */ HalVolume getVolumeFromUDI(const std::string &udi) const; HalVolume getVolumeFromDeviceFile(const std::string &device_file) const; /** * Retrieve UDI's of all devices with a capability. * \param The \p capability name * \return Vector with device UDI's. */ std::vector findDevicesByCapability(const std::string &capability) const; bool getDevicePropertyBool (const std::string &udi, const std::string &key) const; int32_t getDevicePropertyInt32 (const std::string &udi, const std::string &key) const; uint64_t getDevicePropertyUInt64(const std::string &udi, const std::string &key) const; double getDevicePropertyDouble(const std::string &udi, const std::string &key) const; std::string getDevicePropertyString(const std::string &udi, const std::string &key) const; void setDevicePropertyBool (const std::string &udi, const std::string &key, bool value); void setDevicePropertyInt32 (const std::string &udi, const std::string &key, int32_t value); void setDevicePropertyUInt64(const std::string &udi, const std::string &key, uint64_t value); void setDevicePropertyDouble(const std::string &udi, const std::string &key, double value); void setDevicePropertyString(const std::string &udi, const std::string &key, const std::string &value); void removeDeviceProperty(const std::string &udi, const std::string &key); private: zypp::RW_pointer h_impl; }; //////////////////////////////////////////////////////////////// // // CLASS NAME : HalDrive // /** Hardware abstaction layer storage drive object. * * @todo: wrap more functions. */ class HalDrive { public: typedef zypp::RW_pointer::unspecified_bool_type bool_type; HalDrive(); HalDrive(const HalDrive &drive); ~HalDrive(); HalDrive& operator=(const HalDrive &drive); operator bool_type() const; std::string getUDI() const; std::string getTypeName() const; /** * \return The drive's device file name. */ std::string getDeviceFile() const; /** * \return The drive's device file major number. */ unsigned int getDeviceMajor() const; /** * \return The drive's device minor number. */ unsigned int getDeviceMinor() const; /** * \return True, if drive uses removable media. */ bool usesRemovableMedia() const; /* ** Returns the media type names supported by the drive. ** ** Since hal does not implement a textual form here, we ** are using the drive type and property names from ** "storage.cdrom.*" namespace: ** cdrom, cdr, cdrw, dvd, dvdr, dvdrw, dvdram, ** dvdplusr, dvdplusrw, dvdplusrdl ** ** FIXME: Should we provide own LibHalDriveCdromCaps? */ std::vector getCdromCapabilityNames() const; /** * Retrieve UDI's of all volumes of this drive. * \return Vector with volume UDI's. */ std::vector findAllVolumes() const; private: friend class HalContext; HalDrive(HalDrive_Impl *impl); zypp::RW_pointer d_impl; }; //////////////////////////////////////////////////////////////// // // CLASS NAME : HalVolume // /** Hardware abstaction layer storage volume object. * * @todo: wrap more functions. */ class HalVolume { public: typedef zypp::RW_pointer::unspecified_bool_type bool_type; HalVolume(); HalVolume(const HalVolume &volume); ~HalVolume(); HalVolume& operator=(const HalVolume &volume); operator bool_type() const; std::string getUDI() const; /** * \return The Volume drive's device file name. */ std::string getDeviceFile() const; /** * \return The Volume drive's device major number. */ unsigned int getDeviceMajor() const; /** * \return The Volume drive's device minor number. */ unsigned int getDeviceMinor() const; bool isDisc() const; bool isPartition() const; bool isMounted() const; /** * \return The filesystem name on the volume. */ std::string getFSType() const; /** * \return The filesystem usage purpose. */ std::string getFSUsage() const; /** * \return The mount point of the volume. */ std::string getMountPoint() const; private: friend class HalContext; friend class HalDrive; HalVolume(HalVolume_Impl *impl); zypp::RW_pointer v_impl; }; //////////////////////////////////////////////////////////////// } // namespace hal ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// } // namespace target //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_HAL_HALCONTEXT_H /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/target/hal/HalException.h000066400000000000000000000074661334444677500211250ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/hal/HalException.h * * \brief Hardware abstaction layer library wrapper. */ #ifndef ZYPP_TARGET_HAL_HALEXCEPTION_H #define ZYPP_TARGET_HAL_HALEXCEPTION_H #include "zypp/base/Exception.h" #include "zypp/base/Gettext.h" #include "zypp/base/String.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace target { ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// namespace hal { //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// // // CLASS NAME : HalException // /** Hardware abstaction layer exception. * Just inherits Exception to separate hal exceptions. */ class HalException: public zypp::Exception { public: /** Default constructor. * Use \ref ZYPP_THROW to throw exceptions. */ HalException() : zypp::Exception(_("Hal Exception")) {} /** Constructor taking complete hal error message. * This constructor is used to generate custom error * messages, in case, that no DBUS error is avaliable. * Use \ref ZYPP_THROW to throw exceptions. */ HalException(const std::string &msg_r) : zypp::Exception(_("Hal Exception")) , e_name() , e_msg(msg_r) {} /** Constructor taking HAL (DBUS) error message components. * Use \ref ZYPP_THROW to throw exceptions. */ HalException(const std::string &err_name, const std::string &err_msg) : zypp::Exception(_("Hal Exception")) , e_name(err_name) , e_msg(err_msg) {} /** Destructor. */ virtual ~HalException() throw() {}; /** * \return The HAL (DBUS) error name component. */ const std::string & errorName() const { return e_name; } /** * \return The HAL (DBUS) error message component. */ const std::string & errorMessage() const { return e_msg; } protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string e_name; std::string e_msg; }; /** Exception thrown if we were built without hal support (-DNO_HAL). */ struct NoHalException: public Exception { NoHalException(); }; //////////////////////////////////////////////////////////////// } // namespace hal ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// } // namespace target //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_HAL_HALEXCEPTION_H /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/target/modalias/000077500000000000000000000000001334444677500174015ustar00rootroot00000000000000libzypp-17.7.0/zypp/target/modalias/Modalias.cc000066400000000000000000000141341334444677500214440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/modalias/Modalias.cc * */ extern "C" { #include } #include #include #include #undef ZYPP_BASE_LOGGER_LOGGROUP #define ZYPP_BASE_LOGGER_LOGGROUP "MODALIAS" #include "zypp/base/LogTools.h" #include "zypp/base/IOStream.h" #include "zypp/base/InputStream.h" #include "zypp/AutoDispose.h" #include "zypp/PathInfo.h" #include "zypp/target/modalias/Modalias.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////////// namespace { /** Filter subtrees known to contain no modalias files */ inline bool isBlackListed( const Pathname & dir_r, const char * file_r ) { #define PATH_IS( D, F ) ( ::strcmp( file_r, F ) == 0 && ::strcmp( dir_r.c_str(), D ) == 0 ) switch ( file_r[0] ) { case 'm': return PATH_IS( "/sys/devices/system", "memory" ); // bnc#824110: huge tree for systems with large RAM break; } return false; #undef PATH_IS } /** Recursively scan for modalias files and scan them to \a arg. */ void foreach_file_recursive( const Pathname & dir_r, Modalias::ModaliasList & arg ) { AutoDispose dir( ::opendir( dir_r.c_str() ), ::closedir ); if ( ! dir ) return; struct dirent * dirent = NULL; while ( (dirent = ::readdir(dir)) != NULL ) { if ( dirent->d_name[0] == '.' ) continue; if ( isBlackListed( dir_r, dirent->d_name ) ) continue; PathInfo pi( dir_r / dirent->d_name, PathInfo::LSTAT ); if ( pi.isDir() ) { foreach_file_recursive( pi.path(), arg ); } else if ( pi.isFile() && ::strcmp( dirent->d_name, "modalias" ) == 0 ) { // read modalias line from file std::ifstream str( pi.path().c_str() ); std::string line( iostr::getline( str ) ); if ( ! line.empty() ) arg.push_back( line ); } } } } // namespace /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Modalias::Impl // /** Modalias implementation. */ struct Modalias::Impl { /** Ctor. */ Impl() { const char * dir = getenv("ZYPP_MODALIAS_SYSFS"); if ( dir ) { PathInfo pi( dir ); if ( pi.isFile() ) { // Debug/testcases: // find /sys/ -type f -name modalias -print0 | xargs -0 cat >/tmp/modaliases // ZYPP_MODALIAS_SYSFS=/tmp/modaliases DBG << "Using $ZYPP_MODALIAS_SYSFS modalias file: " << dir << endl; iostr::forEachLine( InputStream( pi.path() ), [&]( int num_r, std::string line_r )->bool { this->_modaliases.push_back( line_r ); return true; } ); return; } DBG << "Using $ZYPP_MODALIAS_SYSFS: " << dir << endl; } else { dir = "/sys"; DBG << "Using /sys directory." << endl; } foreach_file_recursive( dir, _modaliases ); } /** Dtor. */ ~Impl() {} /* * Check if a device on the system matches a modalias PATTERN. * * Returns NULL if no matching device is found, and the modalias * of the first matching device otherwise. (More than one device * may match a given pattern.) * * On a system that has the following device, * * pci:v00008086d0000265Asv00008086sd00004556bc0Csc03i00 * * modalias_matches("pci:v00008086d0000265Asv*sd*bc*sc*i*") will * return a non-NULL value. */ bool query( const char * cap_r ) const { if ( cap_r && *cap_r ) { for_( it, _modaliases.begin(), _modaliases.end() ) { if ( fnmatch( cap_r, (*it).c_str(), 0 ) == 0 ) return true; } } return false; } public: ModaliasList _modaliases; public: /** Offer default Impl. */ static shared_ptr nullimpl() { static shared_ptr _nullimpl( new Impl ); return _nullimpl; } }; /////////////////////////////////////////////////////////////////// /** \relates Modalias::Impl Stream output * And maybe std::ostream & operator<< Modalias::Impl below too. * return libhal version or something like that. */ inline std::ostream & operator<<( std::ostream & str, const Modalias::Impl & obj ) { return dumpRange( str << "Modaliases: (" << obj._modaliases.size() << ") ", obj._modaliases.begin(), obj._modaliases.end() ); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : Modalias // /////////////////////////////////////////////////////////////////// Modalias::Modalias() : _pimpl( Impl::nullimpl() ) {} Modalias::~Modalias() {} Modalias & Modalias::instance() { static Modalias _singleton; return _singleton; } bool Modalias::query( const char * cap_r ) const { return _pimpl->query( cap_r ); } const Modalias::ModaliasList & Modalias::modaliasList() const { return _pimpl->_modaliases; } void Modalias::modaliasList( ModaliasList newlist_r ) { _pimpl->_modaliases.swap( newlist_r ); } std::ostream & operator<<( std::ostream & str, const Modalias & obj ) { return str << *obj._pimpl; } } // namespace target /////////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/modalias/Modalias.h000066400000000000000000000066141334444677500213120ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/modalias/Modalias.h * */ #ifndef ZYPP_TARGET_MODALIAS_MODALIAS_H #define ZYPP_TARGET_MODALIAS_MODALIAS_H #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/IdString.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Modalias // /** Hardware abstaction layer singleton. */ class Modalias { friend std::ostream & operator<<( std::ostream & str, const Modalias & obj ); public: /** Implementation */ class Impl; public: typedef std::vector ModaliasList; /** Singleton access. */ static Modalias & instance(); /** Dtor */ ~Modalias(); public: /** Checks if a device on the system matches a modalias pattern. * * Returns \c false if no matching device is found, and the modalias * of the first matching device otherwise. (More than one device * may match a given pattern.) * * On a system that has the following device, * \code * pci:v00008086d0000265Asv00008086sd00004556bc0Csc03i00 * \endcode * the following query will return \c true: * \code * modalias_matches("pci:v00008086d0000265Asv*sd*bc*sc*i*") * \endcode */ bool query( IdString cap_r ) const { return query( cap_r.c_str() ); } /** \overload */ bool query( const char * cap_r ) const; /** \overload */ bool query( const std::string & cap_r ) const { return query( cap_r.c_str() ); } /** List of modaliases found on system */ const ModaliasList & modaliasList() const; /** Manually set list of modaliases to use */ void modaliasList( ModaliasList newlist_r ); private: /** Singleton ctor. */ Modalias(); /** Pointer to implementation */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates Modalias Stream output */ std::ostream & operator<<( std::ostream & str, const Modalias & obj ); ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_MODALIAS_MODALIAS_H libzypp-17.7.0/zypp/target/rpm/000077500000000000000000000000001334444677500164065ustar00rootroot00000000000000libzypp-17.7.0/zypp/target/rpm/BinHeader.cc000066400000000000000000000240331334444677500205400ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/BinHeader.cc * */ #include "librpm.h" extern "C" { #ifdef _RPM_5 #undef RPM_NULL_TYPE #define RPM_NULL_TYPE rpmTagType(0) typedef rpmuint32_t rpm_count_t; #endif } #include #include "zypp/base/Logger.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/String.h" #include "zypp/AutoDispose.h" #include "zypp/target/rpm/BinHeader.h" using namespace std; #undef Y2LOG #define Y2LOG "BinHeader" namespace zypp { namespace target { namespace rpm { /** Helper for header data retieval. * With \c _RPM_4 use \c ::headerGet; with \c _RPM_5 * use the meanwhile deprecated \c ::headerGetEntry. * \ingroup g_RAII */ struct HeaderEntryGetter : private base::NonCopyable { public: HeaderEntryGetter( const Header & h_r, rpmTag & tag_r ); ~HeaderEntryGetter(); rpmTagType type(); rpm_count_t cnt(); void * val(); private: #ifndef _RPM_5 ::rpmtd _rpmtd; #else rpmTagType _type; rpm_count_t _cnt; void * _val; #endif //_RPM_5 }; #ifndef _RPM_5 inline HeaderEntryGetter::HeaderEntryGetter( const Header & h_r, rpmTag & tag_r ) : _rpmtd( ::rpmtdNew() ) { ::headerGet( h_r, tag_r, _rpmtd, HEADERGET_DEFAULT ); } inline HeaderEntryGetter::~HeaderEntryGetter() { ::rpmtdFreeData( _rpmtd ); ::rpmtdFree( _rpmtd ); } inline rpmTagType HeaderEntryGetter::type() { return rpmtdType( _rpmtd ); } inline rpm_count_t HeaderEntryGetter::cnt() { return _rpmtd->count; } inline void * HeaderEntryGetter::val() { return _rpmtd->data; } #else inline HeaderEntryGetter::HeaderEntryGetter( const Header & h_r, rpmTag & tag_r ) : _type( RPM_NULL_TYPE ) , _cnt( 0 ) , _val( 0 ) { ::headerGetEntry( h_r, tag_r, hTYP_t(&_type), &_val, &_cnt ); } inline HeaderEntryGetter::~HeaderEntryGetter() { if ( _val && _type == RPM_STRING_ARRAY_TYPE ) free( _val ); } inline rpmTagType HeaderEntryGetter::type() { return _type; } inline rpm_count_t HeaderEntryGetter::cnt() { return _cnt; } inline void * HeaderEntryGetter::val() { return _val; } #endif //_RPM_5 /////////////////////////////////////////////////////////////////// // // CLASS NAME : BinHeader::intList // /////////////////////////////////////////////////////////////////// unsigned BinHeader::intList::set( void * val_r, unsigned cnt_r, rpmTagType type_r ) { _type = type_r; // remember the type! if ( val_r ) switch ( _type ) { #if RPM_CHAR_TYPE != RPM_INT8_TYPE case RPM_CHAR_TYPE: std::vector( (char*)val_r, ((char*)val_r)+cnt_r ).swap( _data ); break; #endif case RPM_INT8_TYPE: std::vector( (int8_t*)val_r, ((int8_t*)val_r)+cnt_r ).swap( _data ); break; case RPM_INT16_TYPE: std::vector( (int16_t*)val_r, ((int16_t*)val_r)+cnt_r ).swap( _data ); break; case RPM_INT32_TYPE: std::vector( (int32_t*)val_r, ((int32_t*)val_r)+cnt_r ).swap( _data ); break; #ifndef _RPM_5 case RPM_INT64_TYPE: std::vector( (int64_t*)val_r, ((int64_t*)val_r)+cnt_r ).swap( _data ); break; #endif default: std::vector( cnt_r, 0L ).swap( _data ); break; } else _data.clear(); return _data.size(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : BinHeader::stringList // /////////////////////////////////////////////////////////////////// unsigned BinHeader::stringList::set( char ** val_r, unsigned cnt_r ) { if ( val_r ) std::vector( val_r, val_r+cnt_r ).swap( _data ); else _data.clear(); return _data.size(); } /////////////////////////////////////////////////////////////////// // // CLASS NAME : BinHeader // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::BinHeader // METHOD TYPE : Constructor // BinHeader::BinHeader( Header h_r ) : _h( h_r ) { if ( _h ) { headerLink( _h ); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::BinHeader // METHOD TYPE : Constructor // BinHeader::BinHeader( BinHeader::Ptr & rhs ) { INT << "INJECT from " << rhs; if ( ! (rhs && rhs->_h) ) { _h = 0; } else { _h = rhs->_h; // ::headerLink already done in rhs rhs->_h = 0; } INT << ": " << *this << " (" << rhs << ")" << endl; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::~BinHeader // METHOD TYPE : Destructor // BinHeader::~BinHeader() { if ( _h ) { headerFree( _h ); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::assertHeader // METHOD TYPE : void // bool BinHeader::assertHeader() { if ( !_h ) { _h = ::headerNew(); if ( !_h ) { INT << "OOPS: NULL HEADER created!" << endl; return false; } } return true; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::has_tag // METHOD TYPE : bool // // DESCRIPTION : // bool BinHeader::has_tag( tag tag_r ) const { return( !empty() && ::headerIsEntry( _h, tag_r ) ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::int_list // METHOD TYPE : unsigned // // DESCRIPTION : // unsigned BinHeader::int_list( tag tag_r, intList & lst_r ) const { if ( !empty() ) { HeaderEntryGetter headerget( _h, tag_r ); if ( headerget.val() ) { switch ( headerget.type() ) { case RPM_NULL_TYPE: return lst_r.set( 0, 0, headerget.type() ); #if RPM_CHAR_TYPE != RPM_INT8_TYPE case RPM_CHAR_TYPE: #endif case RPM_INT8_TYPE: case RPM_INT16_TYPE: case RPM_INT32_TYPE: #ifndef _RPM_5 case RPM_INT64_TYPE: #endif return lst_r.set( headerget.val(), headerget.cnt(), headerget.type() ); default: INT << "RPM_TAG MISSMATCH: RPM_INTxx_TYPE " << tag_r << " got type " << headerget.type() << endl; } } } return lst_r.set( 0, 0, RPM_NULL_TYPE ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::string_list // METHOD TYPE : unsigned // // DESCRIPTION : // unsigned BinHeader::string_list( tag tag_r, stringList & lst_r ) const { if ( !empty() ) { HeaderEntryGetter headerget( _h, tag_r ); if ( headerget.val() ) { switch ( headerget.type() ) { case RPM_NULL_TYPE: return lst_r.set( 0, 0 ); case RPM_STRING_ARRAY_TYPE: return lst_r.set( (char**)headerget.val(), headerget.cnt() ); default: INT << "RPM_TAG MISSMATCH: RPM_STRING_ARRAY_TYPE " << tag_r << " got type " << headerget.type() << endl; } } } return lst_r.set( 0, 0 ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::int_val // METHOD TYPE : int // // DESCRIPTION : // int BinHeader::int_val( tag tag_r ) const { if ( !empty() ) { HeaderEntryGetter headerget( _h, tag_r ); if ( headerget.val() ) { switch ( headerget.type() ) { case RPM_NULL_TYPE: return 0; #if RPM_CHAR_TYPE != RPM_INT8_TYPE case RPM_CHAR_TYPE: return *((char*)headerget.val()); #endif case RPM_INT8_TYPE: return *((int8_t*)headerget.val()); case RPM_INT16_TYPE: return *((int16_t*)headerget.val()); case RPM_INT32_TYPE: return *((int32_t*)headerget.val()); #ifndef _RPM_5 case RPM_INT64_TYPE: return *((int64_t*)headerget.val()); #endif default: INT << "RPM_TAG MISSMATCH: RPM_INTxx_TYPE " << tag_r << " got type " << headerget.type() << endl; } } } return 0; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::string_val // METHOD TYPE : std::string // // DESCRIPTION : // std::string BinHeader::string_val( tag tag_r ) const { if ( !empty() ) { HeaderEntryGetter headerget( _h, tag_r ); if ( headerget.val() ) { switch ( headerget.type() ) { case RPM_NULL_TYPE: return ""; case RPM_STRING_TYPE: return (char*)headerget.val(); default: INT << "RPM_TAG MISSMATCH: RPM_STRING_TYPE " << tag_r << " got type " << headerget.type() << endl; } } } return ""; } string BinHeader::format(const char *fmt) const { zypp::AutoDispose form(headerFormat(_h, fmt, NULL), free); if ( !form ) return std::string(); return std::string(form); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::stringList_val // METHOD TYPE : std::list // // DESCRIPTION : // std::list BinHeader::stringList_val( tag tag_r ) const { std::list ret; if ( !empty() ) { stringList lines; unsigned count = string_list( tag_r, lines ); for ( unsigned i = 0; i < count; ++i ) { ret.push_back( lines[i] ); } } return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : BinHeader::dumpOn // METHOD TYPE : ostream & // // DESCRIPTION : // ostream & BinHeader::dumpOn( ostream & str ) const { ReferenceCounted::dumpOn( str ); return str << '{' << (void*)_h << '}'; } } // namespace rpm } // namespace target } // namespace zypp libzypp-17.7.0/zypp/target/rpm/BinHeader.h000066400000000000000000000070251334444677500204040ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/BinHeader.h * */ #ifndef ZYPP_TARGET_RPM_BINHEADER_H #define ZYPP_TARGET_RPM_BINHEADER_H extern "C" { #include } #include #include #include #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/target/rpm/librpm.h" namespace zypp { namespace target { namespace rpm { /////////////////////////////////////////////////////////////////// // // CLASS NAME : BinHeader /** * **/ class BinHeader : public base::ReferenceCounted, private base::NonCopyable { public: typedef intrusive_ptr Ptr; typedef intrusive_ptr constPtr; typedef rpmTag tag; class intList; class stringList; private: Header _h; bool assertHeader(); public: BinHeader( Header h_r = 0 ); /** * Dangerous!<\B> This one takes the header out of rhs * and leaves rhs empty. **/ BinHeader( BinHeader::Ptr & rhs ); virtual ~BinHeader(); public: bool empty() const { return( _h == NULL ); } bool has_tag( tag tag_r ) const; unsigned int_list( tag tag_r, intList & lst_r ) const; unsigned string_list( tag tag_r, stringList & lst_r ) const; int int_val( tag tag_r ) const; std::string string_val( tag tag_r ) const; std::string format ( const char * fmt) const; public: std::list stringList_val( tag tag_r ) const; public: virtual std::ostream & dumpOn( std::ostream & str ) const; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : BinHeader::intList /** * **/ class BinHeader::intList : private base::NonCopyable { public: intList() : _type( RPM_NULL_TYPE ) {} bool empty() const { return _data.empty(); } unsigned size() const { return _data.size(); } long operator[]( const unsigned idx_r ) const { return idx_r < _data.size() ? _data[idx_r] : 0; } private: friend class BinHeader; unsigned set( void * val_r, unsigned cnt_r, rpmTagType type_r ); private: std::vector _data; rpmTagType _type; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : BinHeader::stringList /** * **/ class BinHeader::stringList : private base::NonCopyable { public: bool empty() const { return _data.empty(); } unsigned size() const { return _data.size(); } std::string operator[]( const unsigned idx_r ) const { return idx_r < _data.size() ? _data[idx_r] : std::string(); } private: friend class BinHeader; unsigned set( char ** val_r, unsigned cnt_r ); private: std::vector _data; }; /////////////////////////////////////////////////////////////////// } // namespace rpm } // namespace target } // namespace zypp #endif // ZYPP_TARGET_RPM_BINHEADER_H libzypp-17.7.0/zypp/target/rpm/RpmCallbacks.cc000066400000000000000000000013751334444677500212610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmCallbacks.cc * */ #include #include "zypp/target/rpm/RpmCallbacks.h" /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/rpm/RpmCallbacks.h000066400000000000000000000055411334444677500211220ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmCallbacks.h * */ #ifndef ZYPP_TARGET_RPM_RPMCALLBACKS_H #define ZYPP_TARGET_RPM_RPMCALLBACKS_H #include #include "zypp/Url.h" #include "zypp/Callback.h" #include "zypp/base/Exception.h" #include "zypp/Pathname.h" namespace zypp { namespace target { namespace rpm { /////////////////////////////////////////////////////////////////// // Reporting progress of package removing /////////////////////////////////////////////////////////////////// struct RpmRemoveReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore }; /** Start the operation */ virtual void start( const std::string & name ) {} /** * Inform about progress * Return true on abort */ virtual bool progress( unsigned percent ) { return false; } virtual Action problem( Exception & excpt_r ) { return ABORT; } /** Additional rpm output to be reported in \ref finish in case of success. */ virtual void finishInfo( const std::string & info_r ) {} /** Finish operation in case of success */ virtual void finish() {} /** Finish operation in case of fail, report fail exception */ virtual void finish( Exception & excpt_r ) {} }; /////////////////////////////////////////////////////////////////// // Reporting progress of package installation /////////////////////////////////////////////////////////////////// struct RpmInstallReport : public callback::ReportBase { enum Action { ABORT, // abort and return error RETRY, // retry IGNORE // ignore }; /** Start the operation */ virtual void start( const Pathname & name ) {} /** * Inform about progress * Return false on abort */ virtual bool progress( unsigned percent ) { return true; } /** Additional rpm output to be reported in \ref finish in case of success. */ virtual void finishInfo( const std::string & info_r ) {} /** Finish operation in case of success */ virtual void finish() {} virtual Action problem( Exception & excpt_r ) { return ABORT; } /** Finish operation in case of fail, report fail exception */ virtual void finish( Exception & excpt_r ) {} }; } // namespace rpm } // namespace target } // namespace zypp #endif // ZYPP_TARGET_RPM_RPMCALLBACKS_H libzypp-17.7.0/zypp/target/rpm/RpmDb.cc000066400000000000000000002024541334444677500177300ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmDb.cc * */ #include "librpm.h" extern "C" { #include #include } #include #include #include #include #include #include #include #include #include #include #include #include #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" #include "zypp/base/LocaleGuard.h" #include "zypp/Date.h" #include "zypp/Pathname.h" #include "zypp/PathInfo.h" #include "zypp/PublicKey.h" #include "zypp/target/rpm/RpmDb.h" #include "zypp/target/rpm/RpmCallbacks.h" #include "zypp/HistoryLog.h" #include "zypp/target/rpm/librpmDb.h" #include "zypp/target/rpm/RpmException.h" #include "zypp/TmpPath.h" #include "zypp/KeyRing.h" #include "zypp/ZYppFactory.h" #include "zypp/ZConfig.h" using std::endl; using namespace zypp::filesystem; #define WARNINGMAILPATH "/var/log/YaST2/" #define FILEFORBACKUPFILES "YaSTBackupModifiedFiles" #define MAXRPMMESSAGELINES 10000 #define WORKAROUNDRPMPWDBUG namespace zypp { namespace zypp_readonly_hack { bool IGotIt(); // in readonly-mode } namespace target { namespace rpm { namespace { #if 1 // No more need to escape whitespace since rpm-4.4.2.3 const char* quoteInFilename_m = "\'\""; #else const char* quoteInFilename_m = " \t\'\""; #endif inline std::string rpmQuoteFilename( const Pathname & path_r ) { std::string path( path_r.asString() ); for ( std::string::size_type pos = path.find_first_of( quoteInFilename_m ); pos != std::string::npos; pos = path.find_first_of( quoteInFilename_m, pos ) ) { path.insert( pos, "\\" ); pos += 2; // skip '\\' and the quoted char. } return path; } /** Workaround bnc#827609 - rpm needs a readable pwd so we * chdir to /. Turn realtive pathnames into absolute ones * by prepending cwd so rpm still finds them */ inline Pathname workaroundRpmPwdBug( Pathname path_r ) { #if defined(WORKAROUNDRPMPWDBUG) if ( path_r.relative() ) { // try to prepend cwd AutoDispose cwd( ::get_current_dir_name(), ::free ); if ( cwd ) return Pathname( cwd ) / path_r; WAR << "Can't get cwd!" << endl; } #endif return path_r; // no problem with absolute pathnames } } struct KeyRingSignalReceiver : callback::ReceiveReport { KeyRingSignalReceiver(RpmDb &rpmdb) : _rpmdb(rpmdb) { connect(); } ~KeyRingSignalReceiver() { disconnect(); } virtual void trustedKeyAdded( const PublicKey &key ) { MIL << "trusted key added to zypp Keyring. Importing..." << endl; _rpmdb.importPubkey( key ); } virtual void trustedKeyRemoved( const PublicKey &key ) { MIL << "Trusted key removed from zypp Keyring. Removing..." << endl; _rpmdb.removePubkey( key ); } RpmDb &_rpmdb; }; static shared_ptr sKeyRingReceiver; unsigned diffFiles(const std::string file1, const std::string file2, std::string& out, int maxlines) { const char* argv[] = { "diff", "-u", file1.c_str(), file2.c_str(), NULL }; ExternalProgram prog(argv,ExternalProgram::Discard_Stderr, false, -1, true); //if(!prog) //return 2; std::string line; int count = 0; for (line = prog.receiveLine(), count=0; !line.empty(); line = prog.receiveLine(), count++ ) { if (maxlines<0?true:countempty(); if ( dbEmpty ) { MIL << "Empty rpm4 database " << dbInfo.dbV4() << endl; } if ( dbInfo.hasDbV3() ) { MIL << "Found rpm3 database " << dbInfo.dbV3() << endl; if ( dbEmpty ) { extern void convertV3toV4( const Pathname & v3db_r, const librpmDb::constPtr & v4db_r ); convertV3toV4( dbInfo.dbV3().path(), dbptr ); // create a backup copy int res = filesystem::copy( dbInfo.dbV3().path(), dbInfo.dbV3ToV4().path() ); if ( res ) { WAR << "Backup converted rpm3 database failed: error(" << res << ")" << endl; } else { dbInfo.restat(); if ( dbInfo.hasDbV3ToV4() ) { MIL << "Backup converted rpm3 database: " << dbInfo.dbV3ToV4() << endl; dbsi_set( info_r, DbSI_HAVE_V3TOV4 | DbSI_MADE_V3TOV4 ); } } } else { WAR << "Non empty rpm3 and rpm4 database found: using rpm4" << endl; // set DbSI_MODIFIED_V4 as it's not a temporary which can be removed. dbsi_set( info_r, DbSI_MODIFIED_V4 ); } DBG << "Convert state: " << info_r << ": " << stringPath( root_r, dbPath_r ); librpmDb::dumpState( DBG ) << endl; } if ( dbInfo.hasDbV3ToV4() ) { MIL << "Rpm3 database backup: " << dbInfo.dbV3ToV4() << endl; } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::removeV4 // METHOD TYPE : void // void RpmDb::removeV4( const Pathname & dbdir_r, bool v3backup_r ) { const char * v3backup = "packages.rpm3"; const char * master = "Packages"; const char * index[] = { "Basenames", "Conflictname", "Depends", "Dirnames", "Filemd5s", "Group", "Installtid", "Name", "Providename", "Provideversion", "Pubkeys", "Requirename", "Requireversion", "Sha1header", "Sigmd5", "Triggername", // last entry! NULL }; PathInfo pi( dbdir_r ); if ( ! pi.isDir() ) { ERR << "Can't remove rpm4 database in non directory: " << dbdir_r << endl; return; } for ( const char ** f = index; *f; ++f ) { pi( dbdir_r + *f ); if ( pi.isFile() ) { filesystem::unlink( pi.path() ); } } pi( dbdir_r + master ); if ( pi.isFile() ) { MIL << "Removing rpm4 database " << pi << endl; filesystem::unlink( pi.path() ); } if ( v3backup_r ) { pi( dbdir_r + v3backup ); if ( pi.isFile() ) { MIL << "Removing converted rpm3 database backup " << pi << endl; filesystem::unlink( pi.path() ); } } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::removeV3 // METHOD TYPE : void // void RpmDb::removeV3( const Pathname & dbdir_r, bool v3backup_r ) { const char * master = "packages.rpm"; const char * index[] = { "conflictsindex.rpm", "fileindex.rpm", "groupindex.rpm", "nameindex.rpm", "providesindex.rpm", "requiredby.rpm", "triggerindex.rpm", // last entry! NULL }; PathInfo pi( dbdir_r ); if ( ! pi.isDir() ) { ERR << "Can't remove rpm3 database in non directory: " << dbdir_r << endl; return; } for ( const char ** f = index; *f; ++f ) { pi( dbdir_r + *f ); if ( pi.isFile() ) { filesystem::unlink( pi.path() ); } } #warning CHECK: compare vs existing v3 backup. notify root pi( dbdir_r + master ); if ( pi.isFile() ) { Pathname m( pi.path() ); if ( v3backup_r ) { // backup was already created filesystem::unlink( m ); Pathname b( m.extend( "3" ) ); pi( b ); // stat backup } else { Pathname b( m.extend( ".deleted" ) ); pi( b ); if ( pi.isFile() ) { // rempve existing backup filesystem::unlink( b ); } filesystem::rename( m, b ); pi( b ); // stat backup } MIL << "(Re)moved rpm3 database to " << pi << endl; } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::modifyDatabase // METHOD TYPE : void // void RpmDb::modifyDatabase() { if ( ! initialized() ) return; // tag database as modified dbsi_set( _dbStateInfo, DbSI_MODIFIED_V4 ); // Move outdated rpm3 database beside. if ( dbsi_has( _dbStateInfo, DbSI_HAVE_V3 ) ) { MIL << "Update mode: Delayed cleanup: state " << _dbStateInfo << endl; removeV3( _root + _dbPath, dbsi_has( _dbStateInfo, DbSI_MADE_V3TOV4 ) ); dbsi_clr( _dbStateInfo, DbSI_HAVE_V3 ); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::closeDatabase // METHOD TYPE : PMError // void RpmDb::closeDatabase() { if ( ! initialized() ) { return; } MIL << "Calling closeDatabase: " << *this << endl; /////////////////////////////////////////////////////////////////// // Block further database access /////////////////////////////////////////////////////////////////// librpmDb::blockAccess(); /////////////////////////////////////////////////////////////////// // Check fate if old version database still present /////////////////////////////////////////////////////////////////// if ( dbsi_has( _dbStateInfo, DbSI_HAVE_V3 ) ) { MIL << "Update mode: Delayed cleanup: state " << _dbStateInfo << endl; if ( dbsi_has( _dbStateInfo, DbSI_MODIFIED_V4 ) ) { // Move outdated rpm3 database beside. removeV3( _root + _dbPath, dbsi_has( _dbStateInfo, DbSI_MADE_V3TOV4 ) ); } else { // Remove unmodified rpm4 database removeV4( _root + _dbPath, dbsi_has( _dbStateInfo, DbSI_MADE_V3TOV4 ) ); } } /////////////////////////////////////////////////////////////////// // Uninit /////////////////////////////////////////////////////////////////// _root = _dbPath = Pathname(); _dbStateInfo = DbSI_NO_INIT; MIL << "closeDatabase: " << *this << endl; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::rebuildDatabase // METHOD TYPE : PMError // void RpmDb::rebuildDatabase() { callback::SendReport report; report->start( root() + dbPath() ); try { doRebuildDatabase(report); } catch (RpmException & excpt_r) { report->finish(root() + dbPath(), RebuildDBReport::FAILED, excpt_r.asUserHistory()); ZYPP_RETHROW(excpt_r); } report->finish(root() + dbPath(), RebuildDBReport::NO_ERROR, ""); } void RpmDb::doRebuildDatabase(callback::SendReport & report) { FAILIFNOTINITIALIZED; MIL << "RpmDb::rebuildDatabase" << *this << endl; // FIXME Timecount _t( "RpmDb::rebuildDatabase" ); PathInfo dbMaster( root() + dbPath() + "Packages" ); PathInfo dbMasterBackup( dbMaster.path().extend( ".y2backup" ) ); // run rpm RpmArgVec opts; opts.push_back("--rebuilddb"); opts.push_back("-vv"); // don't call modifyDatabase because it would remove the old // rpm3 database, if the current database is a temporary one. run_rpm (opts, ExternalProgram::Stderr_To_Stdout); // progress report: watch this file growing PathInfo newMaster( root() + dbPath().extend( str::form( "rebuilddb.%d", process?process->getpid():0) ) + "Packages" ); std::string line; std::string errmsg; while ( systemReadLine( line ) ) { if ( newMaster() ) { // file is removed at the end of rebuild. // current size should be upper limit for new db if ( ! report->progress( (100 * newMaster.size()) / dbMaster.size(), root() + dbPath()) ) { WAR << "User requested abort." << endl; systemKill(); filesystem::recursive_rmdir( newMaster.path().dirname() ); } } if ( line.compare( 0, 2, "D:" ) ) { errmsg += line + '\n'; // report.notify( line ); WAR << line << endl; } } int rpm_status = systemStatus(); if ( rpm_status != 0 ) { //TranslatorExplanation after semicolon is error message ZYPP_THROW(RpmSubprocessException(std::string(_("RPM failed: ")) + (errmsg.empty() ? error_message: errmsg) ) ); } else { report->progress( 100, root() + dbPath() ); // 100% } } /////////////////////////////////////////////////////////////////// namespace { /** \ref RpmDb::syncTrustedKeys helper * Compute which keys need to be exprted to / imported from the zypp keyring. * Return result via argument list. */ void computeKeyRingSync( std::set & rpmKeys_r, std::list & zyppKeys_r ) { /////////////////////////////////////////////////////////////////// // Remember latest release and where it ocurred struct Key { Key() : _inRpmKeys( nullptr ) , _inZyppKeys( nullptr ) {} void updateIf( const Edition & rpmKey_r ) { std::string keyRelease( rpmKey_r.release() ); int comp = _release.compare( keyRelease ); if ( comp < 0 ) { // update to newer release _release.swap( keyRelease ); _inRpmKeys = &rpmKey_r; _inZyppKeys = nullptr; if ( !keyRelease.empty() ) DBG << "Old key in Z: gpg-pubkey-" << rpmKey_r.version() << "-" << keyRelease << endl; } else if ( comp == 0 ) { // stay with this release if ( ! _inRpmKeys ) _inRpmKeys = &rpmKey_r; } // else: this is an old release else DBG << "Old key in R: gpg-pubkey-" << rpmKey_r.version() << "-" << keyRelease << endl; } void updateIf( const PublicKeyData & zyppKey_r ) { std::string keyRelease( zyppKey_r.gpgPubkeyRelease() ); int comp = _release.compare( keyRelease ); if ( comp < 0 ) { // update to newer release _release.swap( keyRelease ); _inRpmKeys = nullptr; _inZyppKeys = &zyppKey_r; if ( !keyRelease.empty() ) DBG << "Old key in R: gpg-pubkey-" << zyppKey_r.gpgPubkeyVersion() << "-" << keyRelease << endl; } else if ( comp == 0 ) { // stay with this release if ( ! _inZyppKeys ) _inZyppKeys = &zyppKey_r; } // else: this is an old release else DBG << "Old key in Z: gpg-pubkey-" << zyppKey_r.gpgPubkeyVersion() << "-" << keyRelease << endl; } std::string _release; const Edition * _inRpmKeys; const PublicKeyData * _inZyppKeys; }; /////////////////////////////////////////////////////////////////// // collect keys by ID(version) and latest creation(release) std::map _keymap; for_( it, rpmKeys_r.begin(), rpmKeys_r.end() ) { _keymap[(*it).version()].updateIf( *it ); } for_( it, zyppKeys_r.begin(), zyppKeys_r.end() ) { _keymap[(*it).gpgPubkeyVersion()].updateIf( *it ); } // compute missing keys std::set rpmKeys; std::list zyppKeys; for_( it, _keymap.begin(), _keymap.end() ) { DBG << "gpg-pubkey-" << (*it).first << "-" << (*it).second._release << " " << ( (*it).second._inRpmKeys ? "R" : "_" ) << ( (*it).second._inZyppKeys ? "Z" : "_" ) << endl; if ( ! (*it).second._inRpmKeys ) { zyppKeys.push_back( *(*it).second._inZyppKeys ); } if ( ! (*it).second._inZyppKeys ) { rpmKeys.insert( *(*it).second._inRpmKeys ); } } rpmKeys_r.swap( rpmKeys ); zyppKeys_r.swap( zyppKeys ); } } // namespace /////////////////////////////////////////////////////////////////// void RpmDb::syncTrustedKeys( SyncTrustedKeyBits mode_r ) { MIL << "Going to sync trusted keys..." << endl; std::set rpmKeys( pubkeyEditions() ); std::list zyppKeys( getZYpp()->keyRing()->trustedPublicKeyData() ); if ( ! ( mode_r & SYNC_FROM_KEYRING ) ) { // bsc#1064380: We relief PK from removing excess keys in the zypp keyring // when re-acquiring the zyppp lock. For now we remove all excess keys. // TODO: Once we can safely assume that all PK versions are updated we // can think about re-importing newer key versions found in the zypp keyring and // removing only excess ones (but case is not very likely). Unfixed PK versions // however will remove the newer version found in the zypp keyring and by doing // this, the key here will be removed via callback as well (keys are deleted // via gpg id, regardless of the edition). MIL << "Removing excess keys in zypp trusted keyring" << std::endl; // Temporarily disconnect to prevent the attempt to pass back the delete request. callback::TempConnect tempDisconnect; bool dirty = false; for ( const PublicKeyData & keyData : zyppKeys ) { if ( ! rpmKeys.count( keyData.gpgPubkeyEdition() ) ) { DBG << "Excess key in Z to delete: gpg-pubkey-" << keyData.gpgPubkeyEdition() << endl; getZYpp()->keyRing()->deleteKey( keyData.id(), /*trusted*/true ); if ( !dirty ) dirty = true; } } if ( dirty ) zyppKeys = getZYpp()->keyRing()->trustedPublicKeyData(); } computeKeyRingSync( rpmKeys, zyppKeys ); MIL << (mode_r & SYNC_TO_KEYRING ? "" : "(skip) ") << "Rpm keys to export into zypp trusted keyring: " << rpmKeys.size() << endl; MIL << (mode_r & SYNC_FROM_KEYRING ? "" : "(skip) ") << "Zypp trusted keys to import into rpm database: " << zyppKeys.size() << endl; /////////////////////////////////////////////////////////////////// if ( (mode_r & SYNC_TO_KEYRING) && ! rpmKeys.empty() ) { // export to zypp keyring MIL << "Exporting rpm keyring into zypp trusted keyring" < tempDisconnect; librpmDb::db_const_iterator keepDbOpen; // just to keep a ref. TmpFile tmpfile( getZYpp()->tmpPath() ); { std::ofstream tmpos( tmpfile.path().c_str() ); for_( it, rpmKeys.begin(), rpmKeys.end() ) { // we export the rpm key into a file RpmHeader::constPtr result; getData( "gpg-pubkey", *it, result ); tmpos << result->tag_description() << endl; } } try { getZYpp()->keyRing()->multiKeyImport( tmpfile.path(), true /*trusted*/); // bsc#1096217: Try to spot and report legacy V3 keys found in the rpm database. // Modern rpm does not import those keys, but when migrating a pre SLE12 system // we may find them. rpm>4.13 even complains on sderr if sucha key is present. std::set missingKeys; for ( const Edition & key : rpmKeys ) { if ( getZYpp()->keyRing()->isKeyTrusted( key.version() ) ) // key.version is the gpgkeys short ID continue; ERR << "Could not import key:" << str::Format("gpg-pubkey-%s") % key << " into zypp keyring (V3 key?)" << endl; missingKeys.insert( key ); } if ( ! missingKeys.empty() ) callback::SendReport()->reportNonImportedKeys(missingKeys); } catch (Exception &e) { ERR << "Could not import keys into zypp keyring" << endl; } } /////////////////////////////////////////////////////////////////// if ( (mode_r & SYNC_FROM_KEYRING) && ! zyppKeys.empty() ) { // import from zypp keyring MIL << "Importing zypp trusted keyring" << std::endl; for_( it, zyppKeys.begin(), zyppKeys.end() ) { try { importPubkey( getZYpp()->keyRing()->exportTrustedPublicKey( *it ) ); } catch ( const RpmException & exp ) { ZYPP_CAUGHT( exp ); } } } MIL << "Trusted keys synced." << endl; } void RpmDb::importZyppKeyRingTrustedKeys() { syncTrustedKeys( SYNC_FROM_KEYRING ); } void RpmDb::exportTrustedKeysInZyppKeyRing() { syncTrustedKeys( SYNC_TO_KEYRING ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::importPubkey // METHOD TYPE : PMError // void RpmDb::importPubkey( const PublicKey & pubkey_r ) { FAILIFNOTINITIALIZED; // bnc#828672: On the fly key import in READONLY if ( zypp_readonly_hack::IGotIt() ) { WAR << "Key " << pubkey_r << " can not be imported. (READONLY MODE)" << endl; return; } // check if the key is already in the rpm database Edition keyEd( pubkey_r.gpgPubkeyVersion(), pubkey_r.gpgPubkeyRelease() ); std::set rpmKeys = pubkeyEditions(); bool hasOldkeys = false; for_( it, rpmKeys.begin(), rpmKeys.end() ) { // bsc#1008325: Keys using subkeys for signing don't get a higher release // if new subkeys are added, because the primary key remains unchanged. // For now always re-import keys with subkeys. Here we don't want to export the // keys in the rpm database to check whether the subkeys are the same. The calling // code should take care, we don't re-import the same kesy over and over again. if ( keyEd == *it && !pubkey_r.hasSubkeys() ) // quick test (Edition is IdStringType!) { MIL << "Key " << pubkey_r << " is already in the rpm trusted keyring. (skip import)" << endl; return; } if ( keyEd.version() != (*it).version() ) continue; // different key ID (version) if ( keyEd.release() < (*it).release() ) { MIL << "Key " << pubkey_r << " is older than one in the rpm trusted keyring. (skip import)" << endl; return; } else { hasOldkeys = true; } } MIL << "Key " << pubkey_r << " will be imported into the rpm trusted keyring." << (hasOldkeys?"(update)":"(new)") << endl; if ( hasOldkeys ) { // We must explicitly delete old key IDs first (all releases, // that's why we don't call removePubkey here). std::string keyName( "gpg-pubkey-" + keyEd.version() ); RpmArgVec opts; opts.push_back ( "-e" ); opts.push_back ( "--allmatches" ); opts.push_back ( "--" ); opts.push_back ( keyName.c_str() ); // don't call modifyDatabase because it would remove the old // rpm3 database, if the current database is a temporary one. run_rpm( opts, ExternalProgram::Stderr_To_Stdout ); std::string line; while ( systemReadLine( line ) ) { ( str::startsWith( line, "error:" ) ? WAR : DBG ) << line << endl; } if ( systemStatus() != 0 ) { ERR << "Failed to remove key " << pubkey_r << " from RPM trusted keyring (ignored)" << endl; } else { MIL << "Key " << pubkey_r << " has been removed from RPM trusted keyring" << endl; } } // import the new key RpmArgVec opts; opts.push_back ( "--import" ); opts.push_back ( "--" ); std::string pubkeypath( pubkey_r.path().asString() ); opts.push_back ( pubkeypath.c_str() ); // don't call modifyDatabase because it would remove the old // rpm3 database, if the current database is a temporary one. run_rpm( opts, ExternalProgram::Stderr_To_Stdout ); std::string line; std::vector excplines; while ( systemReadLine( line ) ) { if ( str::startsWith( line, "error:" ) ) { WAR << line << endl; excplines.push_back( std::move(line) ); } else DBG << line << endl; } if ( systemStatus() != 0 ) { // Translator: %1% is a gpg public key RpmSubprocessException excp( str::Format(_("Failed to import public key %1%") ) % pubkey_r.asString() ); excp.moveToHistory( excplines ); excp.addHistory( std::move(error_message) ); ZYPP_THROW( std::move(excp) ); } else { MIL << "Key " << pubkey_r << " imported in rpm trusted keyring." << endl; } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::removePubkey // METHOD TYPE : PMError // void RpmDb::removePubkey( const PublicKey & pubkey_r ) { FAILIFNOTINITIALIZED; // check if the key is in the rpm database and just // return if it does not. std::set rpm_keys = pubkeyEditions(); std::set::const_iterator found_edition = rpm_keys.end(); std::string pubkeyVersion( pubkey_r.gpgPubkeyVersion() ); for_( it, rpm_keys.begin(), rpm_keys.end() ) { if ( (*it).version() == pubkeyVersion ) { found_edition = it; break; } } // the key does not exist, cannot be removed if (found_edition == rpm_keys.end()) { WAR << "Key " << pubkey_r.id() << " is not in rpm db" << endl; return; } std::string rpm_name("gpg-pubkey-" + found_edition->asString()); RpmArgVec opts; opts.push_back ( "-e" ); opts.push_back ( "--" ); opts.push_back ( rpm_name.c_str() ); // don't call modifyDatabase because it would remove the old // rpm3 database, if the current database is a temporary one. run_rpm( opts, ExternalProgram::Stderr_To_Stdout ); std::string line; std::vector excplines; while ( systemReadLine( line ) ) { if ( str::startsWith( line, "error:" ) ) { WAR << line << endl; excplines.push_back( std::move(line) ); } else DBG << line << endl; } if ( systemStatus() != 0 ) { // Translator: %1% is a gpg public key RpmSubprocessException excp( str::Format(_("Failed to remove public key %1%") ) % pubkey_r.asString() ); excp.moveToHistory( excplines ); excp.addHistory( std::move(error_message) ); ZYPP_THROW( std::move(excp) ); } else { MIL << "Key " << pubkey_r << " has been removed from RPM trusted keyring" << endl; } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::pubkeys // METHOD TYPE : std::set // std::list RpmDb::pubkeys() const { std::list ret; librpmDb::db_const_iterator it; for ( it.findByName( "gpg-pubkey" ); *it; ++it ) { Edition edition = it->tag_edition(); if (edition != Edition::noedition) { // we export the rpm key into a file RpmHeader::constPtr result; getData( "gpg-pubkey", edition, result ); TmpFile file(getZYpp()->tmpPath()); std::ofstream os; try { os.open(file.path().asString().c_str()); // dump rpm key into the tmp file os << result->tag_description(); //MIL << "-----------------------------------------------" << endl; //MIL << result->tag_description() < RpmDb::pubkeyEditions() const { std::set ret; librpmDb::db_const_iterator it; for ( it.findByName( "gpg-pubkey" ); *it; ++it ) { Edition edition = it->tag_edition(); if (edition != Edition::noedition) ret.insert( edition ); } return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::fileList // METHOD TYPE : bool // // DESCRIPTION : // std::list RpmDb::fileList( const std::string & name_r, const Edition & edition_r ) const { std::list result; librpmDb::db_const_iterator it; bool found; if (edition_r == Edition::noedition) { found = it.findPackage( name_r ); } else { found = it.findPackage( name_r, edition_r ); } if (!found) return result; return result; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::hasFile // METHOD TYPE : bool // // DESCRIPTION : // bool RpmDb::hasFile( const std::string & file_r, const std::string & name_r ) const { librpmDb::db_const_iterator it; bool res; do { res = it.findByFile( file_r ); if (!res) break; if (!name_r.empty()) { res = (it->tag_name() == name_r); } ++it; } while (res && *it); return res; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::whoOwnsFile // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmDb::whoOwnsFile( const std::string & file_r) const { librpmDb::db_const_iterator it; if (it.findByFile( file_r )) { return it->tag_name(); } return ""; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::hasProvides // METHOD TYPE : bool // // DESCRIPTION : // bool RpmDb::hasProvides( const std::string & tag_r ) const { librpmDb::db_const_iterator it; return it.findByProvides( tag_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::hasRequiredBy // METHOD TYPE : bool // // DESCRIPTION : // bool RpmDb::hasRequiredBy( const std::string & tag_r ) const { librpmDb::db_const_iterator it; return it.findByRequiredBy( tag_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::hasConflicts // METHOD TYPE : bool // // DESCRIPTION : // bool RpmDb::hasConflicts( const std::string & tag_r ) const { librpmDb::db_const_iterator it; return it.findByConflicts( tag_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::hasPackage // METHOD TYPE : bool // // DESCRIPTION : // bool RpmDb::hasPackage( const std::string & name_r ) const { librpmDb::db_const_iterator it; return it.findPackage( name_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::hasPackage // METHOD TYPE : bool // // DESCRIPTION : // bool RpmDb::hasPackage( const std::string & name_r, const Edition & ed_r ) const { librpmDb::db_const_iterator it; return it.findPackage( name_r, ed_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::getData // METHOD TYPE : PMError // // DESCRIPTION : // void RpmDb::getData( const std::string & name_r, RpmHeader::constPtr & result_r ) const { librpmDb::db_const_iterator it; it.findPackage( name_r ); result_r = *it; if (it.dbError()) ZYPP_THROW(*(it.dbError())); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::getData // METHOD TYPE : void // // DESCRIPTION : // void RpmDb::getData( const std::string & name_r, const Edition & ed_r, RpmHeader::constPtr & result_r ) const { librpmDb::db_const_iterator it; it.findPackage( name_r, ed_r ); result_r = *it; if (it.dbError()) ZYPP_THROW(*(it.dbError())); } /////////////////////////////////////////////////////////////////// namespace { struct RpmlogCapture : public std::string { RpmlogCapture() { rpmlog()._cap = this; } ~RpmlogCapture() { rpmlog()._cap = nullptr; } private: struct Rpmlog { Rpmlog() : _cap( nullptr ) { rpmlogSetCallback( rpmLogCB, this ); rpmSetVerbosity( RPMLOG_INFO ); _f = ::fopen( "/dev/null","w"); rpmlogSetFile( _f ); } ~Rpmlog() { if ( _f ) ::fclose( _f ); } static int rpmLogCB( rpmlogRec rec_r, rpmlogCallbackData data_r ) { return reinterpret_cast(data_r)->rpmLog( rec_r ); } int rpmLog( rpmlogRec rec_r ) { if ( _cap ) (*_cap) += rpmlogRecMessage( rec_r ); return RPMLOG_DEFAULT; } FILE * _f; std::string * _cap; }; static Rpmlog & rpmlog() { static Rpmlog _rpmlog; return _rpmlog; } }; RpmDb::CheckPackageResult doCheckPackageSig( const Pathname & path_r, // rpm file to check const Pathname & root_r, // target root bool requireGPGSig_r, // whether no gpg signature is to be reported RpmDb::CheckPackageDetail & detail_r ) // detailed result { PathInfo file( path_r ); if ( ! file.isFile() ) { ERR << "Not a file: " << file << endl; return RpmDb::CHK_ERROR; } FD_t fd = ::Fopen( file.asString().c_str(), "r.ufdio" ); if ( fd == 0 || ::Ferror(fd) ) { ERR << "Can't open file for reading: " << file << " (" << ::Fstrerror(fd) << ")" << endl; if ( fd ) ::Fclose( fd ); return RpmDb::CHK_ERROR; } rpmts ts = ::rpmtsCreate(); ::rpmtsSetRootDir( ts, root_r.c_str() ); ::rpmtsSetVSFlags( ts, RPMVSF_DEFAULT ); rpmQVKArguments_s qva; memset( &qva, 0, sizeof(rpmQVKArguments_s) ); qva.qva_flags = (VERIFY_DIGEST|VERIFY_SIGNATURE); RpmlogCapture vresult; LocaleGuard guard( LC_ALL, "C" ); // bsc#1076415: rpm log output is localized, but we need to parse it :( int res = ::rpmVerifySignatures( &qva, ts, fd, path_r.basename().c_str() ); guard.restore(); ts = rpmtsFree(ts); ::Fclose( fd ); // results per line... // Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK // Header SHA1 digest: OK (a60386347863affefef484ff1f26c889373eb094) // V3 RSA/SHA256 Signature, key ID 3dbdc284: OK // MD5 digest: OK (fd5259fe677a406951dcb2e9d08c4dcc) // // TODO: try to get SIG info from the header rather than parsing the output std::vector lines; str::split( vresult, std::back_inserter(lines), "\n" ); unsigned count[7] = { 0, 0, 0, 0, 0, 0, 0 }; for ( unsigned i = 1; i < lines.size(); ++i ) { std::string & line( lines[i] ); RpmDb::CheckPackageResult lineres = RpmDb::CHK_ERROR; if ( line.find( ": OK" ) != std::string::npos ) { lineres = RpmDb::CHK_OK; if ( line.find( "Signature, key ID" ) == std::string::npos ) ++count[RpmDb::CHK_NOSIG]; // Valid but no gpg signature -> CHK_NOSIG } else if ( line.find( ": NOKEY" ) != std::string::npos ) { lineres = RpmDb::CHK_NOKEY; } else if ( line.find( ": BAD" ) != std::string::npos ) { lineres = RpmDb::CHK_FAIL; } else if ( line.find( ": UNKNOWN" ) != std::string::npos ) { lineres = RpmDb::CHK_NOTFOUND; } else if ( line.find( ": NOTRUSTED" ) != std::string::npos ) { lineres = RpmDb::CHK_NOTTRUSTED; } ++count[lineres]; detail_r.push_back( RpmDb::CheckPackageDetail::value_type( lineres, std::move(line) ) ); } RpmDb::CheckPackageResult ret = ( res ? RpmDb::CHK_ERROR : RpmDb::CHK_OK ); if ( count[RpmDb::CHK_FAIL] ) ret = RpmDb::CHK_FAIL; else if ( count[RpmDb::CHK_NOTFOUND] ) ret = RpmDb::CHK_NOTFOUND; else if ( count[RpmDb::CHK_NOKEY] ) ret = RpmDb::CHK_NOKEY; else if ( count[RpmDb::CHK_NOTTRUSTED] ) ret = RpmDb::CHK_NOTTRUSTED; else if ( ret == RpmDb::CHK_OK ) { if ( count[RpmDb::CHK_OK] == count[RpmDb::CHK_NOSIG] ) { detail_r.push_back( RpmDb::CheckPackageDetail::value_type( RpmDb::CHK_NOSIG, std::string(" ")+_("Package is not signed!") ) ); if ( requireGPGSig_r ) ret = RpmDb::CHK_NOSIG; } } if ( ret != RpmDb::CHK_OK ) { WAR << path_r << " (" << requireGPGSig_r << " -> " << ret << ")" << endl; WAR << vresult; } return ret; } } // namespace /////////////////////////////////////////////////////////////////// // // METHOD NAME : RpmDb::checkPackage // METHOD TYPE : RpmDb::CheckPackageResult // RpmDb::CheckPackageResult RpmDb::checkPackage( const Pathname & path_r, CheckPackageDetail & detail_r ) { return doCheckPackageSig( path_r, root(), false/*requireGPGSig_r*/, detail_r ); } RpmDb::CheckPackageResult RpmDb::checkPackage( const Pathname & path_r ) { CheckPackageDetail dummy; return checkPackage( path_r, dummy ); } RpmDb::CheckPackageResult RpmDb::checkPackageSignature( const Pathname & path_r, RpmDb::CheckPackageDetail & detail_r ) { return doCheckPackageSig( path_r, root(), true/*requireGPGSig_r*/, detail_r ); } // determine changed files of installed package bool RpmDb::queryChangedFiles(FileList & fileList, const std::string& packageName) { bool ok = true; fileList.clear(); if ( ! initialized() ) return false; RpmArgVec opts; opts.push_back ("-V"); opts.push_back ("--nodeps"); opts.push_back ("--noscripts"); opts.push_back ("--nomd5"); opts.push_back ("--"); opts.push_back (packageName.c_str()); run_rpm (opts, ExternalProgram::Discard_Stderr); if ( process == NULL ) return false; /* from rpm manpage 5 MD5 sum S File size L Symlink T Mtime D Device U User G Group M Mode (includes permissions and file type) */ std::string line; while (systemReadLine(line)) { if (line.length() > 12 && (line[0] == 'S' || line[0] == 's' || (line[0] == '.' && line[7] == 'T'))) { // file has been changed std::string filename; filename.assign(line, 11, line.length() - 11); fileList.insert(filename); } } systemStatus(); // exit code ignored, rpm returns 1 no matter if package is installed or // not return ok; } /****************************************************************/ /* private member-functions */ /****************************************************************/ /*--------------------------------------------------------------*/ /* Run rpm with the specified arguments, handling stderr */ /* as specified by disp */ /*--------------------------------------------------------------*/ void RpmDb::run_rpm (const RpmArgVec& opts, ExternalProgram::Stderr_Disposition disp) { if ( process ) { delete process; process = NULL; } exit_code = -1; if ( ! initialized() ) { ZYPP_THROW(RpmDbNotOpenException()); } RpmArgVec args; // always set root and dbpath #if defined(WORKAROUNDRPMPWDBUG) args.push_back("#/"); // chdir to / to workaround bnc#819354 #endif args.push_back("rpm"); args.push_back("--root"); args.push_back(_root.asString().c_str()); args.push_back("--dbpath"); args.push_back(_dbPath.asString().c_str()); const char* argv[args.size() + opts.size() + 1]; const char** p = argv; p = copy (args.begin (), args.end (), p); p = copy (opts.begin (), opts.end (), p); *p = 0; // Invalidate all outstanding database handles in case // the database gets modified. librpmDb::dbRelease( true ); // Launch the program with default locale process = new ExternalProgram(argv, disp, false, -1, true); return; } /*--------------------------------------------------------------*/ /* Read a line from the rpm process */ /*--------------------------------------------------------------*/ bool RpmDb::systemReadLine( std::string & line ) { line.erase(); if ( process == NULL ) return false; if ( process->inputFile() ) { process->setBlocking( false ); FILE * inputfile = process->inputFile(); int inputfileFd = ::fileno( inputfile ); do { /* Watch inputFile to see when it has input. */ fd_set rfds; FD_ZERO( &rfds ); FD_SET( inputfileFd, &rfds ); /* Wait up to 5 seconds. */ struct timeval tv; tv.tv_sec = 5; tv.tv_usec = 0; int retval = select( inputfileFd+1, &rfds, NULL, NULL, &tv ); if ( retval == -1 ) { ERR << "select error: " << strerror(errno) << endl; if ( errno != EINTR ) return false; } else if ( retval ) { // Data is available now. static size_t linebuffer_size = 0; // static because getline allocs static char * linebuffer = 0; // and reallocs if buffer is too small ssize_t nread = getline( &linebuffer, &linebuffer_size, inputfile ); if ( nread == -1 ) { if ( ::feof( inputfile ) ) return line.size(); // in case of pending output } else { if ( nread > 0 ) { if ( linebuffer[nread-1] == '\n' ) --nread; line += std::string( linebuffer, nread ); } if ( ! ::ferror( inputfile ) || ::feof( inputfile ) ) return true; // complete line } clearerr( inputfile ); } else { // No data within time. if ( ! process->running() ) return false; } } while ( true ); } return false; } /*--------------------------------------------------------------*/ /* Return the exit status of the rpm process, closing the */ /* connection if not already done */ /*--------------------------------------------------------------*/ int RpmDb::systemStatus() { if ( process == NULL ) return -1; exit_code = process->close(); if (exit_code == 0) error_message = ""; else error_message = process->execError(); process->kill(); delete process; process = 0; // DBG << "exit code " << exit_code << endl; return exit_code; } /*--------------------------------------------------------------*/ /* Forcably kill the rpm process */ /*--------------------------------------------------------------*/ void RpmDb::systemKill() { if (process) process->kill(); } // generate diff mails for config files void RpmDb::processConfigFiles(const std::string& line, const std::string& name, const char* typemsg, const char* difffailmsg, const char* diffgenmsg) { std::string msg = line.substr(9); std::string::size_type pos1 = std::string::npos; std::string::size_type pos2 = std::string::npos; std::string file1s, file2s; Pathname file1; Pathname file2; pos1 = msg.find (typemsg); for (;;) { if ( pos1 == std::string::npos ) break; pos2 = pos1 + strlen (typemsg); if (pos2 >= msg.length() ) break; file1 = msg.substr (0, pos1); file2 = msg.substr (pos2); file1s = file1.asString(); file2s = file2.asString(); if (!_root.empty() && _root != "/") { file1 = _root + file1; file2 = _root + file2; } std::string out; int ret = diffFiles (file1.asString(), file2.asString(), out, 25); if (ret) { Pathname file = _root + WARNINGMAILPATH; if (filesystem::assert_dir(file) != 0) { ERR << "Could not create " << file.asString() << endl; break; } file += Date(Date::now()).form("config_diff_%Y_%m_%d.log"); std::ofstream notify(file.asString().c_str(), std::ios::out|std::ios::app); if (!notify) { ERR << "Could not open " << file << endl; break; } // Translator: %s = name of an rpm package. A list of diffs follows // this message. notify << str::form(_("Changed configuration files for %s:"), name.c_str()) << endl; if (ret>1) { ERR << "diff failed" << endl; notify << str::form(difffailmsg, file1s.c_str(), file2s.c_str()) << endl; } else { notify << str::form(diffgenmsg, file1s.c_str(), file2s.c_str()) << endl; // remove root for the viewer's pleasure (#38240) if (!_root.empty() && _root != "/") { if (out.substr(0,4) == "--- ") { out.replace(4, file1.asString().length(), file1s); } std::string::size_type pos = out.find("\n+++ "); if (pos != std::string::npos) { out.replace(pos+5, file2.asString().length(), file2s); } } notify << out << endl; } notify.close(); notify.open("/var/lib/update-messages/yast2-packagemanager.rpmdb.configfiles"); notify.close(); } else { WAR << "rpm created " << file2 << " but it is not different from " << file2 << endl; } break; } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::installPackage // METHOD TYPE : PMError // void RpmDb::installPackage( const Pathname & filename, RpmInstFlags flags ) { callback::SendReport report; report->start(filename); do try { doInstallPackage(filename, flags, report); report->finish(); break; } catch (RpmException & excpt_r) { RpmInstallReport::Action user = report->problem( excpt_r ); if ( user == RpmInstallReport::ABORT ) { report->finish( excpt_r ); ZYPP_RETHROW(excpt_r); } else if ( user == RpmInstallReport::IGNORE ) { break; } } while (true); } void RpmDb::doInstallPackage( const Pathname & filename, RpmInstFlags flags, callback::SendReport & report ) { FAILIFNOTINITIALIZED; HistoryLog historylog; MIL << "RpmDb::installPackage(" << filename << "," << flags << ")" << endl; // backup if ( _packagebackups ) { // FIXME report->progress( pd.init( -2, 100 ) ); // allow 1% for backup creation. if ( ! backupPackage( filename ) ) { ERR << "backup of " << filename.asString() << " failed" << endl; } // FIXME status handling report->progress( 0 ); // allow 1% for backup creation. } // run rpm RpmArgVec opts; if (flags & RPMINST_NOUPGRADE) opts.push_back("-i"); else opts.push_back("-U"); opts.push_back("--percent"); opts.push_back("--noglob"); // ZConfig defines cross-arch installation if ( ! ZConfig::instance().systemArchitecture().compatibleWith( ZConfig::instance().defaultSystemArchitecture() ) ) opts.push_back("--ignorearch"); if (flags & RPMINST_NODIGEST) opts.push_back("--nodigest"); if (flags & RPMINST_NOSIGNATURE) opts.push_back("--nosignature"); if (flags & RPMINST_EXCLUDEDOCS) opts.push_back ("--excludedocs"); if (flags & RPMINST_NOSCRIPTS) opts.push_back ("--noscripts"); if (flags & RPMINST_FORCE) opts.push_back ("--force"); if (flags & RPMINST_NODEPS) opts.push_back ("--nodeps"); if (flags & RPMINST_IGNORESIZE) opts.push_back ("--ignoresize"); if (flags & RPMINST_JUSTDB) opts.push_back ("--justdb"); if (flags & RPMINST_TEST) opts.push_back ("--test"); if (flags & RPMINST_NOPOSTTRANS) opts.push_back ("--noposttrans"); opts.push_back("--"); // rpm requires additional quoting of special chars: std::string quotedFilename( rpmQuoteFilename( workaroundRpmPwdBug( filename ) ) ); opts.push_back ( quotedFilename.c_str() ); modifyDatabase(); // BEFORE run_rpm run_rpm( opts, ExternalProgram::Stderr_To_Stdout ); std::string line; std::string rpmmsg; // TODO: immediately forward lines via Callback::report rather than collecting std::vector configwarnings; // TODO: immediately process lines rather than collecting unsigned linecnt = 0; while ( systemReadLine( line ) ) { if ( str::startsWith( line, "%%" ) ) { int percent; sscanf( line.c_str() + 2, "%d", &percent ); report->progress( percent ); continue; } if ( linecnt < MAXRPMMESSAGELINES ) ++linecnt; else if ( line.find( " scriptlet failed, " ) == std::string::npos ) // always log %script errors continue; rpmmsg += line+'\n'; if ( str::startsWith( line, "warning:" ) ) configwarnings.push_back(line); } if ( linecnt >= MAXRPMMESSAGELINES ) rpmmsg += "[truncated]\n"; int rpm_status = systemStatus(); // evaluate result for (std::vector::iterator it = configwarnings.begin(); it != configwarnings.end(); ++it) { processConfigFiles(*it, Pathname::basename(filename), " saved as ", // %s = filenames _("rpm saved %s as %s, but it was impossible to determine the difference"), // %s = filenames _("rpm saved %s as %s.\nHere are the first 25 lines of difference:\n")); processConfigFiles(*it, Pathname::basename(filename), " created as ", // %s = filenames _("rpm created %s as %s, but it was impossible to determine the difference"), // %s = filenames _("rpm created %s as %s.\nHere are the first 25 lines of difference:\n")); } if ( rpm_status != 0 ) { historylog.comment( str::form("%s install failed", Pathname::basename(filename).c_str()), true /*timestamp*/); std::ostringstream sstr; sstr << "rpm output:" << endl << rpmmsg << endl; historylog.comment(sstr.str()); // TranslatorExplanation the colon is followed by an error message ZYPP_THROW(RpmSubprocessException(_("RPM failed: ") + (rpmmsg.empty() ? error_message : rpmmsg) )); } else if ( ! rpmmsg.empty() ) { historylog.comment( str::form("%s installed ok", Pathname::basename(filename).c_str()), true /*timestamp*/); std::ostringstream sstr; sstr << "Additional rpm output:" << endl << rpmmsg << endl; historylog.comment(sstr.str()); // report additional rpm output in finish // TranslatorExplanation Text is followed by a ':' and the actual output. report->finishInfo(str::form( "%s:\n%s\n", _("Additional rpm output"), rpmmsg.c_str() )); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::removePackage // METHOD TYPE : PMError // void RpmDb::removePackage( Package::constPtr package, RpmInstFlags flags ) { // 'rpm -e' does not like epochs return removePackage( package->name() + "-" + package->edition().version() + "-" + package->edition().release() + "." + package->arch().asString(), flags ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::removePackage // METHOD TYPE : PMError // void RpmDb::removePackage( const std::string & name_r, RpmInstFlags flags ) { callback::SendReport report; report->start( name_r ); do try { doRemovePackage(name_r, flags, report); report->finish(); break; } catch (RpmException & excpt_r) { RpmRemoveReport::Action user = report->problem( excpt_r ); if ( user == RpmRemoveReport::ABORT ) { report->finish( excpt_r ); ZYPP_RETHROW(excpt_r); } else if ( user == RpmRemoveReport::IGNORE ) { break; } } while (true); } void RpmDb::doRemovePackage( const std::string & name_r, RpmInstFlags flags, callback::SendReport & report ) { FAILIFNOTINITIALIZED; HistoryLog historylog; MIL << "RpmDb::doRemovePackage(" << name_r << "," << flags << ")" << endl; // backup if ( _packagebackups ) { // FIXME solve this status report somehow // report->progress( pd.init( -2, 100 ) ); // allow 1% for backup creation. if ( ! backupPackage( name_r ) ) { ERR << "backup of " << name_r << " failed" << endl; } report->progress( 0 ); } else { report->progress( 100 ); } // run rpm RpmArgVec opts; opts.push_back("-e"); opts.push_back("--allmatches"); if (flags & RPMINST_NOSCRIPTS) opts.push_back("--noscripts"); if (flags & RPMINST_NODEPS) opts.push_back("--nodeps"); if (flags & RPMINST_JUSTDB) opts.push_back("--justdb"); if (flags & RPMINST_TEST) opts.push_back ("--test"); if (flags & RPMINST_FORCE) { WAR << "IGNORE OPTION: 'rpm -e' does not support '--force'" << endl; } opts.push_back("--"); opts.push_back(name_r.c_str()); modifyDatabase(); // BEFORE run_rpm run_rpm (opts, ExternalProgram::Stderr_To_Stdout); std::string line; std::string rpmmsg; // TODO: immediately forward lines via Callback::report rather than collecting // got no progress from command, so we fake it: // 5 - command started // 50 - command completed // 100 if no error report->progress( 5 ); unsigned linecnt = 0; while (systemReadLine(line)) { if ( linecnt < MAXRPMMESSAGELINES ) ++linecnt; else if ( line.find( " scriptlet failed, " ) == std::string::npos ) // always log %script errors continue; rpmmsg += line+'\n'; } if ( linecnt >= MAXRPMMESSAGELINES ) rpmmsg += "[truncated]\n"; report->progress( 50 ); int rpm_status = systemStatus(); if ( rpm_status != 0 ) { historylog.comment( str::form("%s remove failed", name_r.c_str()), true /*timestamp*/); std::ostringstream sstr; sstr << "rpm output:" << endl << rpmmsg << endl; historylog.comment(sstr.str()); // TranslatorExplanation the colon is followed by an error message ZYPP_THROW(RpmSubprocessException(_("RPM failed: ") + (rpmmsg.empty() ? error_message: rpmmsg) )); } else if ( ! rpmmsg.empty() ) { historylog.comment( str::form("%s removed ok", name_r.c_str()), true /*timestamp*/); std::ostringstream sstr; sstr << "Additional rpm output:" << endl << rpmmsg << endl; historylog.comment(sstr.str()); // report additional rpm output in finish // TranslatorExplanation Text is followed by a ':' and the actual output. report->finishInfo(str::form( "%s:\n%s\n", _("Additional rpm output"), rpmmsg.c_str() )); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::backupPackage // METHOD TYPE : bool // bool RpmDb::backupPackage( const Pathname & filename ) { RpmHeader::constPtr h( RpmHeader::readPackage( filename, RpmHeader::NOSIGNATURE ) ); if ( ! h ) return false; return backupPackage( h->tag_name() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmDb::backupPackage // METHOD TYPE : bool // bool RpmDb::backupPackage(const std::string& packageName) { HistoryLog progresslog; bool ret = true; Pathname backupFilename; Pathname filestobackupfile = _root+_backuppath+FILEFORBACKUPFILES; if (_backuppath.empty()) { INT << "_backuppath empty" << endl; return false; } FileList fileList; if (!queryChangedFiles(fileList, packageName)) { ERR << "Error while getting changed files for package " << packageName << endl; return false; } if (fileList.size() <= 0) { DBG << "package " << packageName << " not changed -> no backup" << endl; return true; } if (filesystem::assert_dir(_root + _backuppath) != 0) { return false; } { // build up archive name time_t currentTime = time(0); struct tm *currentLocalTime = localtime(¤tTime); int date = (currentLocalTime->tm_year + 1900) * 10000 + (currentLocalTime->tm_mon + 1) * 100 + currentLocalTime->tm_mday; int num = 0; do { backupFilename = _root + _backuppath + str::form("%s-%d-%d.tar.gz",packageName.c_str(), date, num); } while ( PathInfo(backupFilename).isExist() && num++ < 1000); PathInfo pi(filestobackupfile); if (pi.isExist() && !pi.isFile()) { ERR << filestobackupfile.asString() << " already exists and is no file" << endl; return false; } std::ofstream fp ( filestobackupfile.asString().c_str(), std::ios::out|std::ios::trunc ); if (!fp) { ERR << "could not open " << filestobackupfile.asString() << endl; return false; } for (FileList::const_iterator cit = fileList.begin(); cit != fileList.end(); ++cit) { std::string name = *cit; if ( name[0] == '/' ) { // remove slash, file must be relative to -C parameter of tar name = name.substr( 1 ); } DBG << "saving file "<< name << endl; fp << name << endl; } fp.close(); const char* const argv[] = { "tar", "-czhP", "-C", _root.asString().c_str(), "--ignore-failed-read", "-f", backupFilename.asString().c_str(), "-T", filestobackupfile.asString().c_str(), NULL }; // execute tar in inst-sys (we dont know if there is a tar below _root !) ExternalProgram tar(argv, ExternalProgram::Stderr_To_Stdout, false, -1, true); std::string tarmsg; // TODO: its probably possible to start tar with -v and watch it adding // files to report progress for (std::string output = tar.receiveLine(); output.length() ;output = tar.receiveLine()) { tarmsg+=output; } int ret = tar.close(); if ( ret != 0) { ERR << "tar failed: " << tarmsg << endl; ret = false; } else { MIL << "tar backup ok" << endl; progresslog.comment( str::form(_("created backup %s"), backupFilename.asString().c_str()) , /*timestamp*/true); } filesystem::unlink(filestobackupfile); } return ret; } void RpmDb::setBackupPath(const Pathname& path) { _backuppath = path; } std::ostream & operator<<( std::ostream & str, RpmDb::CheckPackageResult obj ) { switch ( obj ) { #define OUTS(E,S) case RpmDb::E: return str << "["<< (unsigned)obj << "-"<< S << "]"; break // translators: possible rpm package signature check result [brief] OUTS( CHK_OK, _("Signature is OK") ); // translators: possible rpm package signature check result [brief] OUTS( CHK_NOTFOUND, _("Unknown type of signature") ); // translators: possible rpm package signature check result [brief] OUTS( CHK_FAIL, _("Signature does not verify") ); // translators: possible rpm package signature check result [brief] OUTS( CHK_NOTTRUSTED, _("Signature is OK, but key is not trusted") ); // translators: possible rpm package signature check result [brief] OUTS( CHK_NOKEY, _("Signatures public key is not available") ); // translators: possible rpm package signature check result [brief] OUTS( CHK_ERROR, _("File does not exist or signature can't be checked") ); // translators: possible rpm package signature check result [brief] OUTS( CHK_NOSIG, _("File is unsigned") ); #undef OUTS } return str << "UnknowSignatureCheckError("+str::numstring(obj)+")"; } std::ostream & operator<<( std::ostream & str, const RpmDb::CheckPackageDetail & obj ) { for ( const auto & el : obj ) str << el.second << endl; return str; } } // namespace rpm } // namespace target } // namespace zypp libzypp-17.7.0/zypp/target/rpm/RpmDb.h000066400000000000000000000366601334444677500175760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmDb.h * */ // -*- C++ -*- #ifndef ZYPP_TARGET_RPM_RPMDB_H #define ZYPP_TARGET_RPM_RPMDB_H #include #include #include #include #include "zypp/Pathname.h" #include "zypp/ExternalProgram.h" #include "zypp/Package.h" #include "zypp/KeyRing.h" #include "zypp/target/rpm/RpmFlags.h" #include "zypp/target/rpm/RpmHeader.h" #include "zypp/target/rpm/RpmCallbacks.h" #include "zypp/ZYppCallbacks.h" namespace zypp { namespace target { namespace rpm { /////////////////////////////////////////////////////////////////// // // CLASS NAME : RpmDb /** * @short Interface to the rpm program **/ class RpmDb : public base::ReferenceCounted, private base::NonCopyable { public: /** * Default error class **/ typedef class InstTargetError Error; /////////////////////////////////////////////////////////////////// // // INITALISATION // /////////////////////////////////////////////////////////////////// private: enum DbStateInfoBits { DbSI_NO_INIT = 0x0000, DbSI_HAVE_V4 = 0x0001, DbSI_MADE_V4 = 0x0002, DbSI_MODIFIED_V4 = 0x0004, DbSI_HAVE_V3 = 0x0008, DbSI_HAVE_V3TOV4 = 0x0010, DbSI_MADE_V3TOV4 = 0x0020 }; friend std::ostream & operator<<( std::ostream & str, const DbStateInfoBits & obj ); void dbsi_set( DbStateInfoBits & val_r, const unsigned & bits_r ) const { val_r = (DbStateInfoBits)(val_r | bits_r); } void dbsi_clr( DbStateInfoBits & val_r, const unsigned & bits_r ) const { val_r = (DbStateInfoBits)(val_r & ~bits_r); } bool dbsi_has( const DbStateInfoBits & val_r, const unsigned & bits_r ) const { return( (val_r & bits_r) == bits_r ); } /** * Internal state info **/ DbStateInfoBits _dbStateInfo; /** * Root directory for all operations. **/ Pathname _root; /** * Directory that contains the rpmdb. **/ Pathname _dbPath; /** * Internal helper for @ref initDatabase. * * \throws RpmException * **/ void internal_initDatabase( const Pathname & root_r, const Pathname & dbPath_r, DbStateInfoBits & info_r ); /** * Remove the rpm4 database in dbdir_r and optionally any backup created * on conversion. **/ static void removeV4( const Pathname & dbdir_r, bool v3backup_r ); /** * Remove the rpm3 database in dbdir_r. Create a backup copy named * packages.rpm3 if it does not already exist. **/ static void removeV3( const Pathname & dbdir_r, bool v3backup_r ); /** * Called before the database is modified by installPackage/removePackage. * Invalidates Packages list and moves away any old database. **/ void modifyDatabase(); public: /** * Constructor. There's no rpmdb access until @ref initDatabase * was called. **/ RpmDb(); /** * Destructor. **/ ~RpmDb(); /** * timestamp of the rpm database (last modification) */ Date timestamp() const; /** * @return Root directory for all operations (empty if not initialized). **/ const Pathname & root() const { return _root; } /** * @return Directory that contains the rpmdb (empty if not initialized). **/ const Pathname & dbPath() const { return _dbPath; } /** * @return Whether we are initialized. **/ bool initialized() const { return( ! _root.empty() ); } /** * Prepare access to the rpm database. Optional arguments may denote the * root directory for all operations and the directory (below root) that * contains the rpmdb (usg. you won't need to set this). * * On empty Pathnames the default is used: *
   *     root:   /
   *     dbPath: /var/lib/rpm
   * 
* * Calling initDatabase a second time with different arguments will return * an error but leave the database in it's original state. * * Converting an old batabase is done if necessary. On update: The converted * database will be removed by @ref closeDatabase, if it was not modified * (no packages were installed or deleted). Otherwise the new database * is kept, and the old one is removed. * * If the database alredy exists and \c doRebuild_r is true, \ref rebuildDatabase * is called. * * \throws RpmException * **/ void initDatabase( Pathname root_r = Pathname(), Pathname dbPath_r = Pathname(), bool doRebuild_r = false ); /** * Block further access to the rpm database and go back to uninitialized * state. On update: Decides what to do with any converted database * (see @ref initDatabase). * * \throws RpmException * **/ void closeDatabase(); /** * Rebuild the rpm database (rpm --rebuilddb). * * \throws RpmException * **/ void rebuildDatabase(); /** * Import ascii armored public key in file pubkey_r. * * \throws RpmException * **/ void importPubkey( const PublicKey & pubkey_r ); /** * Remove a public key from the rpm database * * \throws RpmException * **/ void removePubkey( const PublicKey & pubkey_r ); /** * Return the long ids of all installed public keys. **/ std::list pubkeys() const; /** * Return the edition of all installed public keys. **/ std::set pubkeyEditions() const; /////////////////////////////////////////////////////////////////// // // Direct RPM database retrieval via librpm. // /////////////////////////////////////////////////////////////////// public: /** * return complete file list for installed package name_r (in FileInfo.filename) * if edition_r != Edition::noedition, check for exact edition * if full==true, fill all attributes of FileInfo **/ std::list fileList( const std::string & name_r, const Edition & edition_r ) const; /** * Return true if at least one package owns a certain file (name_r empty) * Return true if package name_r owns file file_r (name_r nonempty). **/ bool hasFile( const std::string & file_r, const std::string & name_r = "" ) const; /** * Return name of package owning file * or empty string if no installed package owns file **/ std::string whoOwnsFile( const std::string & file_r ) const; /** * Return true if at least one package provides a certain tag. **/ bool hasProvides( const std::string & tag_r ) const; /** * Return true if at least one package requires a certain tag. **/ bool hasRequiredBy( const std::string & tag_r ) const; /** * Return true if at least one package conflicts with a certain tag. **/ bool hasConflicts( const std::string & tag_r ) const; /** * Return true if package is installed. **/ bool hasPackage( const std::string & name_r ) const; /** * Return true if package is installed in a certain edition. **/ bool hasPackage( const std::string & name_r, const Edition & ed_r ) const; /** * Get an installed packages data from rpmdb. Package is * identified by name. Data returned via result are NULL, * if packge is not installed (PMError is not set), or RPM database * could not be read (PMError is set). * * \throws RpmException * * FIXME this and following comment * **/ void getData( const std::string & name_r, RpmHeader::constPtr & result_r ) const; /** * Get an installed packages data from rpmdb. Package is * identified by name and edition. Data returned via result are NULL, * if packge is not installed (PMError is not set), or RPM database * could not be read (PMError is set). * * \throws RpmException * **/ void getData( const std::string & name_r, const Edition & ed_r, RpmHeader::constPtr & result_r ) const; /////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////// public: /** Sync mode for \ref syncTrustedKeys */ enum SyncTrustedKeyBits { SYNC_TO_KEYRING = 1<<0, //!< export rpm trusted keys into zypp trusted keyring SYNC_FROM_KEYRING = 1<<1, //!< import zypp trusted keys into rpm database. SYNC_BOTH = SYNC_TO_KEYRING | SYNC_FROM_KEYRING }; /** * Sync trusted keys stored in rpm database and zypp trusted keyring. */ void syncTrustedKeys( SyncTrustedKeyBits mode_r = SYNC_BOTH ); /** * iterates through zypp keyring and import all non existant keys * into rpm keyring */ void importZyppKeyRingTrustedKeys(); /** * insert all rpm trusted keys into zypp trusted keyring */ void exportTrustedKeysInZyppKeyRing(); private: /** * The connection to the rpm process. */ ExternalProgram *process; typedef std::vector RpmArgVec; /** * Run rpm with the specified arguments and handle stderr. * @param n_opts The number of arguments * @param options Array of the arguments, @ref n_opts elements * @param stderr_disp How to handle stderr, merged with stdout by default * * \throws RpmException * **/ void run_rpm( const RpmArgVec& options, ExternalProgram::Stderr_Disposition stderr_disp = ExternalProgram::Stderr_To_Stdout); /** * Read a line from the general rpm query */ bool systemReadLine(std::string &line); /** * Return the exit status of the general rpm process, * closing the connection if not already done. */ int systemStatus(); /** * Forcably kill the system process */ void systemKill(); /** * The exit code of the rpm process, or -1 if not yet known. */ int exit_code; /** * Error message from running rpm as external program. * Use only if something fail. */ std::string error_message; /** /var/adm/backup */ Pathname _backuppath; /** create package backups? */ bool _packagebackups; /** whether <_root>/ was already created */ bool _warndirexists; /** * handle rpm messages like "/etc/testrc saved as /etc/testrc.rpmorig" * * @param line rpm output starting with warning: * @param name name of package, appears in subject line * @param typemsg " saved as " or " created as " * @param difffailmsg what to put into mail if diff failed, must contain two %s for the two files * @param diffgenmsg what to put into mail if diff succeeded, must contain two %s for the two files * */ void processConfigFiles(const std::string& line, const std::string& name, const char* typemsg, const char* difffailmsg, const char* diffgenmsg); public: typedef std::set FileList; /** * checkPackage result * @see checkPackage * */ enum CheckPackageResult { CHK_OK = 0, /*!< Signature is OK. */ CHK_NOTFOUND = 1, /*!< Signature is unknown type. */ CHK_FAIL = 2, /*!< Signature does not verify. */ CHK_NOTTRUSTED = 3, /*!< Signature is OK, but key is not trusted. */ CHK_NOKEY = 4, /*!< Public key is unavailable. */ CHK_ERROR = 5, /*!< File does not exist or can't be opened. */ CHK_NOSIG = 6, /*!< File has no gpg signature (only digests). */ }; /** Detailed rpm signature check log messages * A single multiline message if \ref CHK_OK. Otherwise each message line * together with it's \ref CheckPackageResult. */ struct CheckPackageDetail : std::vector> {}; /** * Check signature of rpm file on disk (legacy version returning CHK_OK if file is unsigned, like 'rpm -K') * * @param path_r which file to check * @param detail_r Return detailed rpm log messages * * @return CheckPackageResult (CHK_OK if file is unsigned) * * \see also \ref checkPackageSignature */ CheckPackageResult checkPackage( const Pathname & path_r, CheckPackageDetail & detail_r ); /** \overload Ignoring the \a details_r */ CheckPackageResult checkPackage( const Pathname & path_r ); /** * Check signature of rpm file on disk (strict check returning CHK_NOSIG if file is unsigned). * * @param path_r which file to check * @param detail_r Return detailed rpm log messages * * @return CheckPackageResult (CHK_NOSIG if file is unsigned) * * \see also \ref checkPackage */ CheckPackageResult checkPackageSignature( const Pathname & path_r, CheckPackageDetail & detail_r ); /** install rpm package * * @param filename file to install * @param flags which rpm options to use * * @return success * * \throws RpmException * * */ void installPackage ( const Pathname & filename, RpmInstFlags flags = RPMINST_NONE ); /** remove rpm package * * @param name_r Name of the rpm package to remove. * @param iflags which rpm options to use * * @return success * * \throws RpmException * * */ void removePackage( const std::string & name_r, RpmInstFlags flags = RPMINST_NONE ); void removePackage( Package::constPtr package, RpmInstFlags flags = RPMINST_NONE ); /** * get backup dir for rpm config files * * */ Pathname getBackupPath (void) { return _backuppath; } /** * create tar.gz of all changed files in a Package * * @param packageName name of the Package to backup * * @see setBackupPath * */ bool backupPackage(const std::string& packageName); /** * queries file for name and then calls above backupPackage * function. For convenience. * * @param filename rpm file that is about to be installed * */ bool backupPackage(const Pathname& filename); /** * set path where package backups are stored * * @see backupPackage * */ void setBackupPath(const Pathname& path); /** * whether to create package backups during install or * removal * * @param yes true or false * */ void createPackageBackups(bool yes) { _packagebackups = yes; } /** * determine which files of an installed package have been * modified. * * @param fileList (output) where to store modified files * @param packageName name of package to query * * @return false if package couln't be queried for some * reason * */ bool queryChangedFiles(FileList & fileList, const std::string& packageName); public: /** * Dump debug info. **/ virtual std::ostream & dumpOn( std::ostream & str ) const; protected: void doRemovePackage( const std::string & name_r, RpmInstFlags flags, callback::SendReport & report ); void doInstallPackage( const Pathname & filename, RpmInstFlags flags, callback::SendReport & report ); void doRebuildDatabase(callback::SendReport & report); }; /** \relates RpmDb::CheckPackageResult Stream output */ std::ostream & operator<<( std::ostream & str, RpmDb::CheckPackageResult obj ); /** \relates RpmDb::checkPackageDetail Stream output */ std::ostream & operator<<( std::ostream & str, const RpmDb::CheckPackageDetail & obj ); } // namespace rpm } // namespace target } // namespace zypp #endif // ZYPP_TARGET_RPM_RPMDB_H libzypp-17.7.0/zypp/target/rpm/RpmException.cc000066400000000000000000000051201334444677500213300ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmException.cc * */ #include #include #include "zypp/target/rpm/RpmException.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// namespace rpm { ///////////////////////////////////////////////////////////////// std::ostream & RpmInvalidRootException::dumpOn( std::ostream & str ) const { return str << "Illegal root " << _root << " or dbPath " << _dbpath; } std::ostream & RpmAccessBlockedException::dumpOn( std::ostream & str ) const { return str << "Access is blocked: Root: " << _root << " dbPath: " << _dbpath; } std::ostream & RpmSubprocessException::dumpOn( std::ostream & str ) const { return str << "Subprocess failed. Error: " << _errmsg; } std::ostream & RpmInitException::dumpOn( std::ostream & str) const { return str << "Failed to initialize database: Root: " << _root << " dbPath: " << _dbpath; } std::ostream & RpmDbOpenException::dumpOn( std::ostream & str) const { return str << "Failed to open database: Root: " << _root << " dbPath: " << _dbpath; } std::ostream & RpmDbAlreadyOpenException::dumpOn( std::ostream & str) const { return str << "Can't switch to " << _new_root << " " << _new_dbpath << " while accessing " << _old_root << " " << _old_dbpath; } std::ostream & RpmDbNotOpenException::dumpOn( std::ostream & str) const { return str << "RPM database not open"; } std::ostream & RpmDbConvertException::dumpOn( std::ostream & str) const { return str << "RPM database conversion failed"; } std::ostream & RpmNullDatabaseException::dumpOn( std::ostream & str) const { return str << "NULL rpmV4 database passed as argument!"; } ///////////////////////////////////////////////////////////////// } // namespace rpm } // namespace target } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/target/rpm/RpmException.h000066400000000000000000000136611334444677500212030ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmException.h * */ #ifndef ZYPP_TARGET_RPM_RPMEXCEPTION_H #define ZYPP_TARGET_RPM_RPMEXCEPTION_H #include #include #include "zypp/base/Exception.h" #include "zypp/Pathname.h" #include "zypp/Url.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace target { /////////////////////////////////////////////////////////////// namespace rpm { /////////////////////////////////////////////////////////////// // // CLASS NAME : RpmException /** Just inherits Exception to separate media exceptions * **/ class RpmException : public Exception { public: /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ RpmException() : Exception( "Rpm Exception" ) {} /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ RpmException( const std::string & msg_r ) : Exception( msg_r ) {} /** Dtor. */ virtual ~RpmException() throw() {}; }; class GlobalRpmInitException : public RpmException { public: /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ GlobalRpmInitException() : RpmException("Global RPM initialization failed") {} /** Dtor. */ virtual ~GlobalRpmInitException() throw() {}; private: }; class RpmInvalidRootException : public RpmException { public: /** Ctor taking message. * Use \ref ZYPP_THROW to throw exceptions. */ RpmInvalidRootException( const Pathname & root_r, const Pathname & dbpath_r ) : RpmException() , _root(root_r.asString()) , _dbpath(dbpath_r.asString()) {} /** Dtor. */ virtual ~RpmInvalidRootException() throw() {}; std::string root() const { return _root; } std::string dbpath() const { return _dbpath; } protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string _root; std::string _dbpath; }; class RpmAccessBlockedException : public RpmException { public: RpmAccessBlockedException( const Pathname & root_r, const Pathname & dbpath_r ) : RpmException() , _root(root_r.asString()) , _dbpath(dbpath_r.asString()) {} virtual ~RpmAccessBlockedException() throw() {}; std::string root() const { return _root; } std::string dbpath() const { return _dbpath; } protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string _root; std::string _dbpath; }; class RpmSubprocessException : public RpmException { public: RpmSubprocessException(const std::string & errmsg_r) : RpmException() , _errmsg(errmsg_r) {} virtual ~RpmSubprocessException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string _errmsg; }; class RpmInitException : public RpmException { public: RpmInitException(const Pathname & root_r, const Pathname & dbpath_r) : RpmException() , _root(root_r.asString()) , _dbpath(dbpath_r.asString()) {} virtual ~RpmInitException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string _root; std::string _dbpath; }; class RpmDbOpenException : public RpmException { public: RpmDbOpenException(const Pathname & root_r, const Pathname & dbpath_r) : RpmException() , _root(root_r.asString()) , _dbpath(dbpath_r.asString()) {} virtual ~RpmDbOpenException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string _root; std::string _dbpath; }; class RpmDbAlreadyOpenException : public RpmException { public: RpmDbAlreadyOpenException(const Pathname & old_root_r, const Pathname & old_dbpath_r, const Pathname & new_root_r, const Pathname & new_dbpath_r) : RpmException() , _old_root(old_root_r.asString()) , _old_dbpath(old_dbpath_r.asString()) , _new_root(new_root_r.asString()) , _new_dbpath(new_dbpath_r.asString()) {} virtual ~RpmDbAlreadyOpenException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: std::string _old_root; std::string _old_dbpath; std::string _new_root; std::string _new_dbpath; }; class RpmDbNotOpenException : public RpmException { public: RpmDbNotOpenException() : RpmException() {} virtual ~RpmDbNotOpenException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: }; class RpmDbConvertException : public RpmException { public: RpmDbConvertException() : RpmException() {} virtual ~RpmDbConvertException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: }; class RpmNullDatabaseException : public RpmException { public: RpmNullDatabaseException() : RpmException() {} virtual ~RpmNullDatabaseException() throw() {}; protected: virtual std::ostream & dumpOn( std::ostream & str ) const; private: }; ///////////////////////////////////////////////////////////////// } // namespace rpm } // namespace target } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_RPM_RPMEXCEPTION_H libzypp-17.7.0/zypp/target/rpm/RpmFlags.h000066400000000000000000000050551334444677500202770ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmFlags.h * */ #ifndef ZYPP_TARGET_RPM_RPMFLAGS_H #define ZYPP_TARGET_RPM_RPMFLAGS_H #include #include "zypp/base/Flags.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace target { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace rpm { ///////////////////////////////////////////////////////////////// /** * Bits representing rpm installation options. * * Use \ref RpmInstFlags as a type-safe way of * storing OR-combinations. * * @see RpmDb::installPackage(), RpmDb::removePackage(), */ enum RpmInstFlag { RPMINST_NONE = 0x0000, RPMINST_EXCLUDEDOCS= 0x0001, RPMINST_NOSCRIPTS = 0x0002, RPMINST_FORCE = 0x0004, RPMINST_NODEPS = 0x0008, RPMINST_IGNORESIZE = 0x0010, RPMINST_JUSTDB = 0x0020, RPMINST_NODIGEST = 0x0040, RPMINST_NOSIGNATURE= 0x0080, RPMINST_NOUPGRADE = 0x0100, RPMINST_TEST = 0x0200, RPMINST_NOPOSTTRANS= 0x0400 }; /** \relates RpmInstFlag Type-safe way of storing OR-combinations. */ ZYPP_DECLARE_FLAGS_AND_OPERATORS( RpmInstFlags, RpmInstFlag ); ///////////////////////////////////////////////////////////////// } // namespace rpm /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace target /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_TARGET_RPM_RPMFLAGS_H libzypp-17.7.0/zypp/target/rpm/RpmHeader.cc000066400000000000000000000613171334444677500205740ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmHeader.cc * */ #include "librpm.h" //////////////////////////////////////////////////////////////////// // unameToUid and gnameToGid are shamelessly stolen from rpm-4.4. // (rpmio/ugid.c) Those functions were dropped in RPM_4_7 extern "C" { #include #include } /* unameToUid(), uidTouname() and the group variants are really poorly implemented. They really ought to use hash tables. I just made the guess that most files would be owned by root or the same person/group who owned the last file. Those two values are cached, everything else is looked up via getpw() and getgr() functions. If this performs too poorly I'll have to implement it properly :-( */ int unameToUid(const char * thisUname, uid_t * uid) { /*@only@*/ static char * lastUname = NULL; static size_t lastUnameLen = 0; static size_t lastUnameAlloced; static uid_t lastUid; struct passwd * pwent; size_t thisUnameLen; if (!thisUname) { lastUnameLen = 0; return -1; } else if (strcmp(thisUname, "root") == 0) { /*@-boundswrite@*/ *uid = 0; /*@=boundswrite@*/ return 0; } thisUnameLen = strlen(thisUname); if (lastUname == NULL || thisUnameLen != lastUnameLen || strcmp(thisUname, lastUname) != 0) { if (lastUnameAlloced < thisUnameLen + 1) { lastUnameAlloced = thisUnameLen + 10; lastUname = (char *)realloc(lastUname, lastUnameAlloced); /* XXX memory leak */ } /*@-boundswrite@*/ strcpy(lastUname, thisUname); /*@=boundswrite@*/ pwent = getpwnam(thisUname); if (pwent == NULL) { /*@-internalglobs@*/ /* FIX: shrug */ endpwent(); /*@=internalglobs@*/ pwent = getpwnam(thisUname); if (pwent == NULL) return -1; } lastUid = pwent->pw_uid; } /*@-boundswrite@*/ *uid = lastUid; /*@=boundswrite@*/ return 0; } int gnameToGid(const char * thisGname, gid_t * gid) { /*@only@*/ static char * lastGname = NULL; static size_t lastGnameLen = 0; static size_t lastGnameAlloced; static gid_t lastGid; size_t thisGnameLen; struct group * grent; if (thisGname == NULL) { lastGnameLen = 0; return -1; } else if (strcmp(thisGname, "root") == 0) { /*@-boundswrite@*/ *gid = 0; /*@=boundswrite@*/ return 0; } thisGnameLen = strlen(thisGname); if (lastGname == NULL || thisGnameLen != lastGnameLen || strcmp(thisGname, lastGname) != 0) { if (lastGnameAlloced < thisGnameLen + 1) { lastGnameAlloced = thisGnameLen + 10; lastGname = (char *)realloc(lastGname, lastGnameAlloced); /* XXX memory leak */ } /*@-boundswrite@*/ strcpy(lastGname, thisGname); /*@=boundswrite@*/ grent = getgrnam(thisGname); if (grent == NULL) { /*@-internalglobs@*/ /* FIX: shrug */ endgrent(); /*@=internalglobs@*/ grent = getgrnam(thisGname); if (grent == NULL) { /* XXX The filesystem package needs group/lock w/o getgrnam. */ if (strcmp(thisGname, "lock") == 0) { /*@-boundswrite@*/ *gid = lastGid = 54; /*@=boundswrite@*/ return 0; } else if (strcmp(thisGname, "mail") == 0) { /*@-boundswrite@*/ *gid = lastGid = 12; /*@=boundswrite@*/ return 0; } else return -1; } } lastGid = grent->gr_gid; } /*@-boundswrite@*/ *gid = lastGid; /*@=boundswrite@*/ return 0; } //////////////////////////////////////////////////////////////////// #include #include #include #include #include "zypp/base/Easy.h" #include "zypp/base/Logger.h" #include "zypp/base/Exception.h" #include "zypp/target/rpm/librpmDb.h" #include "zypp/target/rpm/RpmHeader.h" #include "zypp/Package.h" #include "zypp/PathInfo.h" using std::endl; namespace zypp { namespace target { namespace rpm { /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::RpmHeader // METHOD TYPE : Constructor // // DESCRIPTION : // RpmHeader::RpmHeader( Header h_r ) : BinHeader( h_r ) {} /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::RpmHeader // METHOD TYPE : Constructor // RpmHeader::RpmHeader( BinHeader::Ptr & rhs ) : BinHeader( rhs ) {} /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::~RpmHeader // METHOD TYPE : Destructor // // DESCRIPTION : // RpmHeader::~RpmHeader() {} /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::readPackage // METHOD TYPE : constRpmHeaderPtr // RpmHeader::constPtr RpmHeader::readPackage( const Pathname & path_r, VERIFICATION verification_r ) { PathInfo file( path_r ); if ( ! file.isFile() ) { ERR << "Not a file: " << file << endl; return (RpmHeader*)0; } FD_t fd = ::Fopen( file.asString().c_str(), "r.ufdio" ); if ( fd == 0 || ::Ferror(fd) ) { ERR << "Can't open file for reading: " << file << " (" << ::Fstrerror(fd) << ")" << endl; if ( fd ) ::Fclose( fd ); return (RpmHeader*)0; } librpmDb::globalInit(); rpmts ts = ::rpmtsCreate(); unsigned vsflag = RPMVSF_DEFAULT; if ( verification_r & NODIGEST ) vsflag |= _RPMVSF_NODIGESTS; if ( verification_r & NOSIGNATURE ) vsflag |= _RPMVSF_NOSIGNATURES; ::rpmtsSetVSFlags( ts, rpmVSFlags(vsflag) ); Header nh = 0; int res = ::rpmReadPackageFile( ts, fd, path_r.asString().c_str(), &nh ); ts = rpmtsFree(ts); ::Fclose( fd ); if ( ! nh ) { WAR << "Error reading header from " << path_r << " error(" << res << ")" << endl; return (RpmHeader*)0; } RpmHeader::constPtr h( new RpmHeader( nh ) ); headerFree( nh ); // clear the reference set in ReadPackageFile MIL << h << " from " << path_r << endl; return h; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::dumpOn // METHOD TYPE : std::ostream & // // DESCRIPTION : // std::ostream & RpmHeader::dumpOn( std::ostream & str ) const { BinHeader::dumpOn( str ) << '{' << tag_name() << "-"; if ( tag_epoch() != 0 ) str << tag_epoch() << ":"; str << tag_version() << (tag_release().empty()?"":(std::string("-")+tag_release())) << ( isSrc() ? ".src}" : "}"); return str; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::isSrc // METHOD TYPE : bool // bool RpmHeader::isSrc() const { return has_tag( RPMTAG_SOURCEPACKAGE ); } bool RpmHeader::isNosrc() const { return has_tag( RPMTAG_SOURCEPACKAGE ) && ( has_tag( RPMTAG_NOSOURCE ) || has_tag( RPMTAG_NOPATCH ) ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_name // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_name() const { return string_val( RPMTAG_NAME ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_epoch // METHOD TYPE : Edition::epoch_t // // DESCRIPTION : // Edition::epoch_t RpmHeader::tag_epoch() const { return int_val ( RPMTAG_EPOCH ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_version // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_version() const { return string_val ( RPMTAG_VERSION ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_release // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_release() const { return string_val( RPMTAG_RELEASE ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_edition // METHOD TYPE : Edition // // DESCRIPTION : // Edition RpmHeader::tag_edition () const { return Edition( tag_version(), tag_release(), tag_epoch() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_arch // METHOD TYPE : Arch // // DESCRIPTION : // Arch RpmHeader::tag_arch() const { return Arch( string_val( RPMTAG_ARCH ) ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_installtime // METHOD TYPE : Date // // DESCRIPTION : // Date RpmHeader::tag_installtime() const { return int_val( RPMTAG_INSTALLTIME ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_buildtime // METHOD TYPE : Date // // DESCRIPTION : // Date RpmHeader::tag_buildtime() const { return int_val( RPMTAG_BUILDTIME ); } #warning CHECK IF FILE REQUIRES HANDLING IS OBSOLETE /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::PkgRelList_val // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::PkgRelList_val( tag tag_r, bool pre, std::set * freq_r ) const { CapabilitySet ret; rpmTag kindFlags = rpmTag(0); rpmTag kindVersion = rpmTag(0); switch ( tag_r ) { case RPMTAG_REQUIRENAME: kindFlags = RPMTAG_REQUIREFLAGS; kindVersion = RPMTAG_REQUIREVERSION; break; case RPMTAG_PROVIDENAME: kindFlags = RPMTAG_PROVIDEFLAGS; kindVersion = RPMTAG_PROVIDEVERSION; break; case RPMTAG_OBSOLETENAME: kindFlags = RPMTAG_OBSOLETEFLAGS; kindVersion = RPMTAG_OBSOLETEVERSION; break; case RPMTAG_CONFLICTNAME: kindFlags = RPMTAG_CONFLICTFLAGS; kindVersion = RPMTAG_CONFLICTVERSION; break; #ifdef RPMTAG_OLDSUGGESTS case RPMTAG_OLDENHANCESNAME: kindFlags = RPMTAG_OLDENHANCESFLAGS; kindVersion = RPMTAG_OLDENHANCESVERSION; break; case RPMTAG_OLDSUGGESTSNAME: kindFlags = RPMTAG_OLDSUGGESTSFLAGS; kindVersion = RPMTAG_OLDSUGGESTSVERSION; break; case RPMTAG_RECOMMENDNAME: kindFlags = RPMTAG_RECOMMENDFLAGS; kindVersion = RPMTAG_RECOMMENDVERSION; break; case RPMTAG_SUPPLEMENTNAME: kindFlags = RPMTAG_SUPPLEMENTFLAGS; kindVersion = RPMTAG_SUPPLEMENTVERSION; break; case RPMTAG_SUGGESTNAME: kindFlags = RPMTAG_SUGGESTFLAGS; kindVersion = RPMTAG_SUGGESTVERSION; break; case RPMTAG_ENHANCENAME: kindFlags = RPMTAG_ENHANCEFLAGS; kindVersion = RPMTAG_ENHANCEVERSION; break; #else case RPMTAG_ENHANCESNAME: kindFlags = RPMTAG_ENHANCESFLAGS; kindVersion = RPMTAG_ENHANCESVERSION; break; case RPMTAG_SUGGESTSNAME: kindFlags = RPMTAG_SUGGESTSFLAGS; kindVersion = RPMTAG_SUGGESTSVERSION; break; #endif default: INT << "Illegal RPMTAG_dependencyNAME " << tag_r << endl; return ret; break; } stringList names; unsigned count = string_list( tag_r, names ); if ( !count ) return ret; intList flags; int_list( kindFlags, flags ); stringList versions; string_list( kindVersion, versions ); for ( unsigned i = 0; i < count; ++i ) { std::string n( names[i] ); Rel op = Rel::ANY; int32_t f = flags[i]; std::string v = versions[i]; if ( n[0] == '/' ) { if ( freq_r ) { freq_r->insert( n ); } } else { if ( v.size() ) { switch ( f & RPMSENSE_SENSEMASK ) { case RPMSENSE_LESS: op = Rel::LT; break; case RPMSENSE_LESS|RPMSENSE_EQUAL: op = Rel::LE; break; case RPMSENSE_GREATER: op = Rel::GT; break; case RPMSENSE_GREATER|RPMSENSE_EQUAL: op = Rel::GE; break; case RPMSENSE_EQUAL: op = Rel::EQ; break; } } } if ((pre && (f & RPMSENSE_PREREQ)) || ((! pre) && !(f & RPMSENSE_PREREQ))) { try { ret.insert( Capability( n, op, Edition(v) ) ); } catch (Exception & excpt_r) { ZYPP_CAUGHT(excpt_r); WAR << "Invalid capability: " << n << " " << op << " " << v << endl; } } } return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_provides // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_provides( std::set * freq_r ) const { return PkgRelList_val( RPMTAG_PROVIDENAME, false, freq_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_requires // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_requires( std::set * freq_r ) const { return PkgRelList_val( RPMTAG_REQUIRENAME, false, freq_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_requires // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_prerequires( std::set * freq_r ) const { return PkgRelList_val( RPMTAG_REQUIRENAME, true, freq_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_conflicts // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_conflicts( std::set * freq_r ) const { return PkgRelList_val( RPMTAG_CONFLICTNAME, false, freq_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_obsoletes // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_obsoletes( std::set * freq_r ) const { return PkgRelList_val( RPMTAG_OBSOLETENAME, false, freq_r ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_enhances // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_enhances( std::set * freq_r ) const { #ifdef RPMTAG_OLDSUGGESTS return PkgRelList_val( RPMTAG_ENHANCENAME, false, freq_r ); #else return PkgRelList_val( RPMTAG_ENHANCESNAME, false, freq_r ); #endif } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_suggests // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_suggests( std::set * freq_r ) const { #ifdef RPMTAG_OLDSUGGESTS return PkgRelList_val( RPMTAG_SUGGESTNAME, false, freq_r ); #else return PkgRelList_val( RPMTAG_SUGGESTSNAME, false, freq_r ); #endif } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_supplements // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_supplements( std::set * freq_r ) const { #ifdef RPMTAG_OLDSUGGESTS return PkgRelList_val( RPMTAG_SUPPLEMENTNAME, false, freq_r ); #else return CapabilitySet(); #endif } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_recommends // METHOD TYPE : CapabilitySet // // DESCRIPTION : // CapabilitySet RpmHeader::tag_recommends( std::set * freq_r ) const { #ifdef RPMTAG_OLDSUGGESTS return PkgRelList_val( RPMTAG_RECOMMENDNAME, false, freq_r ); #else return CapabilitySet(); #endif } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_size // METHOD TYPE : ByteCount // // DESCRIPTION : // ByteCount RpmHeader::tag_size() const { return int_val( RPMTAG_SIZE ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_archivesize // METHOD TYPE : ByteCount // // DESCRIPTION : // ByteCount RpmHeader::tag_archivesize() const { return int_val( RPMTAG_ARCHIVESIZE ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_summary // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_summary() const { return string_val( RPMTAG_SUMMARY ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_description // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_description() const { return string_val( RPMTAG_DESCRIPTION ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_group // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_group() const { return string_val( RPMTAG_GROUP ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_vendor // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_vendor() const { return string_val( RPMTAG_VENDOR ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_distribution // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_distribution() const { return string_val( RPMTAG_DISTRIBUTION ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_license // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_license() const { return string_val( RPMTAG_LICENSE ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_buildhost // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_buildhost() const { return string_val( RPMTAG_BUILDHOST ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_packager // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_packager() const { return string_val( RPMTAG_PACKAGER ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_url // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_url() const { return string_val( RPMTAG_URL ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_os // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_os() const { return string_val( RPMTAG_OS ); } std::string RpmHeader::tag_prein() const { return string_val( RPMTAG_PREIN ); } std::string RpmHeader::tag_preinprog() const { return string_val( RPMTAG_PREINPROG ); } std::string RpmHeader::tag_postin() const { return string_val( RPMTAG_POSTIN ); } std::string RpmHeader::tag_postinprog() const { return string_val( RPMTAG_POSTINPROG ); } std::string RpmHeader::tag_preun() const { return string_val( RPMTAG_PREUN ); } std::string RpmHeader::tag_preunprog() const { return string_val( RPMTAG_PREUNPROG ); } std::string RpmHeader::tag_postun() const { return string_val( RPMTAG_POSTUN ); } std::string RpmHeader::tag_postunprog() const { return string_val( RPMTAG_POSTUNPROG ); } std::string RpmHeader::tag_pretrans() const { return string_val( RPMTAG_PRETRANS ); } std::string RpmHeader::tag_pretransprog() const { return string_val( RPMTAG_PRETRANSPROG ); } std::string RpmHeader::tag_posttrans() const { return string_val( RPMTAG_POSTTRANS ); } std::string RpmHeader::tag_posttransprog() const { return string_val( RPMTAG_POSTTRANSPROG ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_sourcerpm // METHOD TYPE : std::string // // DESCRIPTION : // std::string RpmHeader::tag_sourcerpm() const { return string_val( RPMTAG_SOURCERPM ); } std::string RpmHeader::signatureKeyID() const { std::string sigInfo = format("%|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|"); //no signature, return empty string if ( sigInfo == "(none)" ) return std::string(); std::vector words; str::split( sigInfo, std::back_inserter(words), ","); if ( words.size() < 3) return std::string(); const std::string &keyId = words[2]; if ( !str::startsWith(keyId, " Key ID ")) return std::string(); return str::toUpper( words[2].substr(8) ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_filenames // METHOD TYPE : std::list // // DESCRIPTION : // std::list RpmHeader::tag_filenames() const { std::list ret; stringList basenames; if ( string_list( RPMTAG_BASENAMES, basenames ) ) { stringList dirnames; string_list( RPMTAG_DIRNAMES, dirnames ); intList dirindexes; int_list( RPMTAG_DIRINDEXES, dirindexes ); for ( unsigned i = 0; i < basenames.size(); ++ i ) { ret.push_back( dirnames[dirindexes[i]] + basenames[i] ); } } return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_fileinfos // METHOD TYPE : std::list // // DESCRIPTION : // std::list RpmHeader::tag_fileinfos() const { std::list ret; stringList basenames; if ( string_list( RPMTAG_BASENAMES, basenames ) ) { stringList dirnames; string_list( RPMTAG_DIRNAMES, dirnames ); intList dirindexes; int_list( RPMTAG_DIRINDEXES, dirindexes ); intList filesizes; int_list( RPMTAG_FILESIZES, filesizes ); stringList md5sums; string_list( RPMTAG_FILEMD5S, md5sums ); stringList usernames; string_list( RPMTAG_FILEUSERNAME, usernames ); stringList groupnames; string_list( RPMTAG_FILEGROUPNAME, groupnames ); intList uids; int_list( RPMTAG_FILEUIDS, uids ); intList gids; int_list( RPMTAG_FILEGIDS, gids ); intList filemodes; int_list( RPMTAG_FILEMODES, filemodes ); intList filemtimes; int_list( RPMTAG_FILEMTIMES, filemtimes ); intList fileflags; int_list( RPMTAG_FILEFLAGS, fileflags ); stringList filelinks; string_list( RPMTAG_FILELINKTOS, filelinks ); for ( unsigned i = 0; i < basenames.size(); ++ i ) { uid_t uid; if (uids.empty()) { uid = unameToUid( usernames[i].c_str(), &uid ); } else { uid =uids[i]; } gid_t gid; if (gids.empty()) { gid = gnameToGid( groupnames[i].c_str(), &gid ); } else { gid = gids[i]; } FileInfo info = { dirnames[dirindexes[i]] + basenames[i], filesizes[i], md5sums[i], uid, gid, mode_t(filemodes[i]), filemtimes[i], bool(fileflags[i] & RPMFILE_GHOST), filelinks[i] }; ret.push_back( info ); } } return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : RpmHeader::tag_changelog // METHOD TYPE : Changelog // // DESCRIPTION : // Changelog RpmHeader::tag_changelog() const { Changelog ret; intList times; if ( int_list( RPMTAG_CHANGELOGTIME, times ) ) { stringList names; string_list( RPMTAG_CHANGELOGNAME, names ); stringList texts; string_list( RPMTAG_CHANGELOGTEXT, texts ); for ( unsigned i = 0; i < times.size(); ++ i ) { ret.push_back( ChangelogEntry( times[i], names[i], texts[i] ) ); } } return ret; } } // namespace rpm } // namespace target } // namespace zypp libzypp-17.7.0/zypp/target/rpm/RpmHeader.h000066400000000000000000000131531334444677500204310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/RpmHeader.h * */ #ifndef ZYPP_TARGET_RPM_RPMHEADER_H #define ZYPP_TARGET_RPM_RPMHEADER_H #include #include #include "zypp/target/rpm/BinHeader.h" #include "zypp/Package.h" #include "zypp/Changelog.h" #include "zypp/Pathname.h" namespace zypp { namespace target { namespace rpm { struct FileInfo { Pathname filename; ByteCount size; std::string md5sum; uid_t uid; gid_t gid; mode_t mode; time_t mtime; bool ghost; Pathname link_target; }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : RpmHeader /** * @short Wrapper class for rpm header struct. * * RpmHeader provides methods to query the content * of a rpm header struct retrieved from the RPM database or by reading * the rpm header of a package on disk. * * The rpm header contains all data associated with a package. So you * probabely do not want to permanently store too many of them. * * NEVER create RpmHeader from a NULL Header! **/ class RpmHeader : public BinHeader { public: typedef intrusive_ptr Ptr; typedef intrusive_ptr constPtr; private: CapabilitySet PkgRelList_val( tag tag_r, bool pre, std::set * freq_r = 0 ) const; public: /** * **/ RpmHeader( Header h_r = 0 ); /** * Dangerous!<\B> This one takes the header out of rhs * and leaves rhs empty. **/ RpmHeader( BinHeader::Ptr & rhs ); virtual ~RpmHeader(); bool isSrc() const; //< Either 'src' or 'nosrc' bool isNosrc() const; //< Only 'nosrc' public: std::string tag_name() const; Edition::epoch_t tag_epoch() const; std::string tag_version() const; std::string tag_release() const; Edition tag_edition() const; Arch tag_arch() const; Date tag_installtime() const; Date tag_buildtime() const; /** * If freq_r is not NULL, file dependencies found are inserted. **/ CapabilitySet tag_provides ( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_requires ( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_prerequires ( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_conflicts( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_obsoletes( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_enhances( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_suggests( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_supplements( std::set * freq_r = 0 ) const; /** * @see #tag_provides **/ CapabilitySet tag_recommends( std::set * freq_r = 0 ) const; ByteCount tag_size() const; ByteCount tag_archivesize() const; std::string tag_summary() const; std::string tag_description() const; std::string tag_group() const; std::string tag_vendor() const; std::string tag_distribution() const; std::string tag_license() const; std::string tag_buildhost() const; std::string tag_packager() const; std::string tag_url() const; std::string tag_os() const; std::string tag_prein() const; std::string tag_preinprog() const; std::string tag_postin() const; std::string tag_postinprog() const; std::string tag_preun() const; std::string tag_preunprog() const; std::string tag_postun() const; std::string tag_postunprog() const; std::string tag_pretrans() const; std::string tag_pretransprog() const; std::string tag_posttrans() const; std::string tag_posttransprog()const; std::string tag_sourcerpm() const; /** * Uses headerFormat to query the signature info from the header. * \note Query copied from Yum misc/checksig.py */ std::string signatureKeyID() const; /** just the list of names */ std::list tag_filenames() const; /** * complete information about the files * (extended version of tag_filenames()) */ std::list tag_fileinfos() const; Changelog tag_changelog() const; public: virtual std::ostream & dumpOn( std::ostream & str ) const; public: /** * Digest and signature verification flags **/ enum VERIFICATION { VERIFY = 0x0000, NODIGEST = (1<<0), NOSIGNATURE = (1<<1), NOVERIFY = 0xffff }; /** * Get an accessible packages data from disk. * Returns NULL on any error. **/ static RpmHeader::constPtr readPackage( const Pathname & path, VERIFICATION verification = VERIFY ); }; /////////////////////////////////////////////////////////////////// } // namespace rpm } // namespace target } // namespace zypp #endif // ZYPP_TARGET_RPM_RPMHEADER_H libzypp-17.7.0/zypp/target/rpm/librpm.h000066400000000000000000000020171334444677500200440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/librpm.h * */ #ifndef ZYPP_TARGET_RPM_LIBRPM_H #define ZYPP_TARGET_RPM_LIBRPM_H #ifdef _RPM_5 // needs to be outside 'extern "C"' #include #endif // _RPM_5 extern "C" { #ifdef _RPM_5 #include #else #include #endif // _RPM_5 #include #include #include #include #include } #endif // ZYPP_TARGET_RPM_LIBRPM_H libzypp-17.7.0/zypp/target/rpm/librpmDb.cc000066400000000000000000000521401334444677500204520ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/librpmDb.cc * */ #include "librpm.h" #include #include "zypp/base/Logger.h" #include "zypp/PathInfo.h" #include "zypp/target/rpm/librpmDb.h" #include "zypp/target/rpm/RpmHeader.h" #include "zypp/target/rpm/RpmException.h" using namespace std; namespace zypp { namespace target { namespace rpm { /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb::D /** * @short librpmDb internal database handle **/ class librpmDb::D { D & operator=( const D & ); // NO ASSIGNMENT! D ( const D & ); // NO COPY! public: const Pathname _root; // root directory for all operations const Pathname _dbPath; // directory (below root) that contains the rpmdb rpmts _ts; // transaction handle, includes database shared_ptr _error; // database error friend ostream & operator<<( ostream & str, const D & obj ) { str << "{" << obj._error << "(" << obj._root << ")" << obj._dbPath << "}"; return str; } D( const Pathname & root_r, const Pathname & dbPath_r, bool readonly_r ) : _root ( root_r ) , _dbPath( dbPath_r ) , _ts ( 0 ) { _error.reset(); // set %_dbpath macro ::addMacro( NULL, "_dbpath", NULL, _dbPath.asString().c_str(), RMIL_CMDLINE ); _ts = ::rpmtsCreate(); ::rpmtsSetRootDir( _ts, _root.c_str() ); // check whether to create a new db PathInfo master( _root + _dbPath + "Packages" ); if ( ! master.isFile() ) { // init database if ( filesystem::assert_dir(_root + _dbPath) != 0 ) { ERR << "Could not create dbpath " << (_root + _dbPath).asString() << endl; _error = shared_ptr(new RpmInitException(_root, _dbPath)); ZYPP_THROW(*_error); } int res = ::rpmtsInitDB( _ts, 0644 ); if ( res ) { ERR << "rpmdbInit error(" << res << "): " << *this << endl; _error = shared_ptr(new RpmInitException(_root, _dbPath)); rpmtsFree(_ts); ZYPP_THROW(*_error); } } // open database int res = ::rpmtsOpenDB( _ts, (readonly_r ? O_RDONLY : O_RDWR )); if ( res ) { ERR << "rpmdbOpen error(" << res << "): " << *this << endl; _error = shared_ptr(new RpmDbOpenException(_root, _dbPath)); rpmtsFree(_ts); ZYPP_THROW(*_error); return; } DBG << "DBACCESS " << *this << endl; } ~D() { if ( _ts ) { ::rpmtsFree(_ts); } } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb (ststic interface) // /////////////////////////////////////////////////////////////////// Pathname librpmDb::_defaultRoot ( "/" ); Pathname librpmDb::_defaultDbPath( "/var/lib/rpm" ); librpmDb::constPtr librpmDb::_defaultDb; bool librpmDb::_dbBlocked ( true ); /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::globalInit // METHOD TYPE : bool // bool librpmDb::globalInit() { static bool initialized = false; if ( initialized ) return true; int rc = ::rpmReadConfigFiles( NULL, NULL ); if ( rc ) { ERR << "rpmReadConfigFiles returned " << rc << endl; return false; } initialized = true; // Necessary to be able to use exand(). #define OUTVAL(n) << " (" #n ":" << expand( "%{" #n "}" ) << ")" MIL << "librpm init done:" OUTVAL(_target) OUTVAL(_dbpath) << endl; #undef OUTVAL return initialized; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::expand // METHOD TYPE : std::string // std::string librpmDb::expand( const std::string & macro_r ) { if ( ! globalInit() ) return macro_r; // unexpanded char * val = ::rpmExpand( macro_r.c_str(), NULL ); if ( !val ) return ""; string ret( val ); free( val ); return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::newLibrpmDb // METHOD TYPE : librpmDb * // librpmDb * librpmDb::newLibrpmDb( Pathname root_r, Pathname dbPath_r, bool readonly_r ) { // check arguments if ( ! (root_r.absolute() && dbPath_r.absolute()) ) { ZYPP_THROW(RpmInvalidRootException(root_r, dbPath_r)); } // initialize librpm if ( ! globalInit() ) { ZYPP_THROW(GlobalRpmInitException()); } // open rpmdb librpmDb * ret = 0; try { ret = new librpmDb( root_r, dbPath_r, readonly_r ); } catch (const RpmException & excpt_r) { ZYPP_CAUGHT(excpt_r); delete ret; ret = 0; ZYPP_RETHROW(excpt_r); } return ret; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dbAccess // METHOD TYPE : PMError // void librpmDb::dbAccess( const Pathname & root_r, const Pathname & dbPath_r ) { // check arguments if ( ! (root_r.absolute() && dbPath_r.absolute()) ) { ZYPP_THROW(RpmInvalidRootException(root_r, dbPath_r)); } if ( _defaultDb ) { // already accessing a database: switching is not allowed. if ( _defaultRoot == root_r && _defaultDbPath == dbPath_r ) return; else { ZYPP_THROW(RpmDbAlreadyOpenException(_defaultRoot, _defaultDbPath, root_r, dbPath_r)); } } // got no database: we could switch to a new one (even if blocked!) _defaultRoot = root_r; _defaultDbPath = dbPath_r; MIL << "Set new database location: " << stringPath( _defaultRoot, _defaultDbPath ) << endl; return dbAccess(); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dbAccess // METHOD TYPE : PMError // void librpmDb::dbAccess() { if ( _dbBlocked ) { ZYPP_THROW(RpmAccessBlockedException(_defaultRoot, _defaultDbPath)); } if ( !_defaultDb ) { // get access _defaultDb = newLibrpmDb( _defaultRoot, _defaultDbPath, /*readonly*/true ); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dbAccess // METHOD TYPE : PMError // void librpmDb::dbAccess( librpmDb::constPtr & ptr_r ) { try { dbAccess(); } catch (const RpmException & excpt_r) { ZYPP_CAUGHT(excpt_r); ptr_r = 0; ZYPP_RETHROW(excpt_r); } ptr_r = _defaultDb; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dbRelease // METHOD TYPE : unsigned // unsigned librpmDb::dbRelease( bool force_r ) { if ( !_defaultDb ) { return 0; } unsigned outstanding = _defaultDb->refCount() - 1; // refCount can't be 0 switch ( outstanding ) { default: if ( !force_r ) { DBG << "dbRelease: keep access, outstanding " << outstanding << endl; break; } // else fall through: case 0: DBG << "dbRelease: release" << (force_r && outstanding ? "(forced)" : "") << ", outstanding " << outstanding << endl; _defaultDb->_d._error = shared_ptr(new RpmAccessBlockedException(_defaultDb->_d._root, _defaultDb->_d._dbPath)); // tag handle invalid _defaultDb = 0; break; } return outstanding; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::blockAccess // METHOD TYPE : unsigned // unsigned librpmDb::blockAccess() { MIL << "Block access" << endl; _dbBlocked = true; return dbRelease( /*force*/true ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::unblockAccess // METHOD TYPE : void // void librpmDb::unblockAccess() { MIL << "Unblock access" << endl; _dbBlocked = false; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dumpState // METHOD TYPE : ostream & // ostream & librpmDb::dumpState( ostream & str ) { if ( !_defaultDb ) { return str << "[librpmDb " << (_dbBlocked?"BLOCKED":"CLOSED") << " " << stringPath( _defaultRoot, _defaultDbPath ) << "]"; } return str << "[" << _defaultDb << "]"; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb (internal database handle interface (nonstatic)) // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::librpmDb // METHOD TYPE : Constructor // // DESCRIPTION : // librpmDb::librpmDb( const Pathname & root_r, const Pathname & dbPath_r, bool readonly_r ) : _d( * new D( root_r, dbPath_r, readonly_r ) ) {} /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::~librpmDb // METHOD TYPE : Destructor // // DESCRIPTION : // librpmDb::~librpmDb() { delete &_d; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::unref_to // METHOD TYPE : void // void librpmDb::unref_to( unsigned refCount_r ) const { if ( refCount_r == 1 ) { dbRelease(); } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::root // METHOD TYPE : const Pathname & // const Pathname & librpmDb::root() const { return _d._root; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dbPath // METHOD TYPE : const Pathname & // const Pathname & librpmDb::dbPath() const { return _d._dbPath; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::error // METHOD TYPE : PMError // shared_ptr librpmDb::error() const { return _d._error; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::empty // METHOD TYPE : bool // bool librpmDb::empty() const { return( valid() && ! *db_const_iterator( this ) ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::size // METHOD TYPE : unsigned // unsigned librpmDb::size() const { unsigned count = 0; if ( valid() ) { db_const_iterator it( this ); for ( db_const_iterator it( this ); *it; ++it ) ++count; } return count; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dont_call_it // METHOD TYPE : void * // void * librpmDb::dont_call_it() const { return rpmtsGetRdb(_d._ts); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::dumpOn // METHOD TYPE : ostream & // // DESCRIPTION : // ostream & librpmDb::dumpOn( ostream & str ) const { ReferenceCounted::dumpOn( str ) << _d; return str; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb::DbDirInfo // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::DbDirInfo::DbDirInfo // METHOD TYPE : Constructor // librpmDb::DbDirInfo::DbDirInfo( const Pathname & root_r, const Pathname & dbPath_r ) : _root( root_r ) , _dbPath( dbPath_r ) { // check and adjust arguments if ( ! (root_r.absolute() && dbPath_r.absolute()) ) { ERR << "Relative path for root(" << _root << ") or dbPath(" << _dbPath << ")" << endl; } else { _dbDir ( _root + _dbPath ); _dbV4 ( _dbDir.path() + "Packages" ); _dbV3 ( _dbDir.path() + "packages.rpm" ); _dbV3ToV4( _dbDir.path() + "packages.rpm3" ); DBG << *this << endl; } } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::DbDirInfo::update // METHOD TYPE : void // void librpmDb::DbDirInfo::restat() { _dbDir(); _dbV4(); _dbV3(); _dbV3ToV4(); DBG << *this << endl; } /****************************************************************** ** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const librpmDb::DbDirInfo & obj ) { if ( obj.illegalArgs() ) { str << "ILLEGAL: '(" << obj.root() << ")" << obj.dbPath() << "'"; } else { str << "'(" << obj.root() << ")" << obj.dbPath() << "':" << endl; str << " Dir: " << obj._dbDir << endl; str << " V4: " << obj._dbV4 << endl; str << " V3: " << obj._dbV3 << endl; str << " V3ToV4: " << obj._dbV3ToV4; } return str; } /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb::db_const_iterator::D /** * **/ class librpmDb::db_const_iterator::D { D & operator=( const D & ); // NO ASSIGNMENT! D ( const D & ); // NO COPY! public: librpmDb::constPtr _dbptr; shared_ptr _dberr; RpmHeader::constPtr _hptr; rpmdbMatchIterator _mi; D( librpmDb::constPtr dbptr_r ) : _dbptr( dbptr_r ) , _mi( 0 ) { if ( !_dbptr ) { try { librpmDb::dbAccess( _dbptr ); } catch (const RpmException & excpt_r) { ZYPP_CAUGHT(excpt_r); } if ( !_dbptr ) { WAR << "No database access: " << _dberr << endl; } } else { destroy(); // Checks whether _dbptr still valid } } ~D() { if ( _mi ) { ::rpmdbFreeIterator( _mi ); } } /** * Let iterator access a dbindex file. Call @ref advance to access the * 1st element (if present). **/ bool create( int rpmtag, const void * keyp = NULL, size_t keylen = 0 ) { destroy(); if ( ! _dbptr ) return false; _mi = ::rpmtsInitIterator( _dbptr->_d._ts, rpmTag(rpmtag), keyp, keylen ); return _mi; } /** * Destroy iterator. Invalidates _dbptr, if database was blocked meanwile. * Always returns false. **/ bool destroy() { if ( _mi ) { _mi = ::rpmdbFreeIterator( _mi ); _hptr = 0; } if ( _dbptr && _dbptr->error() ) { _dberr = _dbptr->error(); WAR << "Lost database access: " << _dberr << endl; _dbptr = 0; } return false; } /** * Advance to the first/next header in iterator. Destroys iterator if * no more headers available. **/ bool advance() { if ( !_mi ) return false; Header h = ::rpmdbNextIterator( _mi ); if ( ! h ) { destroy(); return false; } _hptr = new RpmHeader( h ); return true; } /** * Access a dbindex file and advance to the 1st header. **/ bool init( int rpmtag, const void * keyp = NULL, size_t keylen = 0 ) { if ( ! create( rpmtag, keyp, keylen ) ) return false; return advance(); } /** * Create an itertator that contains the database entry located at * off_r, and advance to the 1st header. **/ bool set( int off_r ) { if ( ! create( RPMDBI_PACKAGES ) ) return false; #warning TESTCASE: rpmdbAppendIterator and (non)sequential access? #ifdef RPMFILEITERMAX // since rpm.4.12 ::rpmdbAppendIterator( _mi, (const unsigned *)&off_r, 1 ); #else ::rpmdbAppendIterator( _mi, &off_r, 1 ); #endif return advance(); } unsigned offset() { return( _mi ? ::rpmdbGetIteratorOffset( _mi ) : 0 ); } int size() { if ( !_mi ) return 0; int ret = ::rpmdbGetIteratorCount( _mi ); #warning TESTCASE: rpmdbGetIteratorCount returns 0 on sequential access? return( ret ? ret : -1 ); // -1: sequential access } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb::Ptr::db_const_iterator // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::db_iterator // METHOD TYPE : Constructor // librpmDb::db_const_iterator::db_const_iterator( librpmDb::constPtr dbptr_r ) : _d( * new D( dbptr_r ) ) { findAll(); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::~db_const_iterator // METHOD TYPE : Destructor // librpmDb::db_const_iterator::~db_const_iterator() { delete &_d; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::operator++ // METHOD TYPE : void // void librpmDb::db_const_iterator::operator++() { _d.advance(); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::dbHdrNum // METHOD TYPE : unsigned // unsigned librpmDb::db_const_iterator::dbHdrNum() const { return _d.offset(); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::operator* // METHOD TYPE : const RpmHeader::constPtr & // const RpmHeader::constPtr & librpmDb::db_const_iterator::operator*() const { return _d._hptr; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::dbError // METHOD TYPE : PMError // shared_ptr librpmDb::db_const_iterator::dbError() const { if ( _d._dbptr ) return _d._dbptr->error(); return _d._dberr; } /****************************************************************** ** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : ostream & */ ostream & operator<<( ostream & str, const librpmDb::db_const_iterator & obj ) { str << "db_const_iterator(" << obj._d._dbptr << " Size:" << obj._d.size() << " HdrNum:" << obj._d.offset() << ")"; return str; } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findAll // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findAll() { return _d.init( RPMDBI_PACKAGES ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findByFile // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findByFile( const std::string & file_r ) { return _d.init( RPMTAG_BASENAMES, file_r.c_str() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findByProvides // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findByProvides( const std::string & tag_r ) { return _d.init( RPMTAG_PROVIDENAME, tag_r.c_str() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findByRequiredBy // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findByRequiredBy( const std::string & tag_r ) { return _d.init( RPMTAG_REQUIRENAME, tag_r.c_str() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findByConflicts // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findByConflicts( const std::string & tag_r ) { return _d.init( RPMTAG_CONFLICTNAME, tag_r.c_str() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::findByName // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findByName( const string & name_r ) { return _d.init( RPMTAG_NAME, name_r.c_str() ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findPackage // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findPackage( const string & name_r ) { if ( ! _d.init( RPMTAG_NAME, name_r.c_str() ) ) return false; if ( _d.size() == 1 ) return true; // check installtime on multiple entries int match = 0; time_t itime = 0; for ( ; operator*(); operator++() ) { if ( operator*()->tag_installtime() > itime ) { match = _d.offset(); itime = operator*()->tag_installtime(); } } return _d.set( match ); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findPackage // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findPackage( const std::string & name_r, const Edition & ed_r ) { if ( ! _d.init( RPMTAG_NAME, name_r.c_str() ) ) return false; for ( ; operator*(); operator++() ) { if ( ed_r == operator*()->tag_edition() ) { int match = _d.offset(); return _d.set( match ); } } return _d.destroy(); } /////////////////////////////////////////////////////////////////// // // // METHOD NAME : librpmDb::db_const_iterator::findPackage // METHOD TYPE : bool // bool librpmDb::db_const_iterator::findPackage( const Package::constPtr & which_r ) { if ( ! which_r ) return _d.destroy(); return findPackage( which_r->name(), which_r->edition() ); } } // namespace rpm } // namespace target } // namespace zypp libzypp-17.7.0/zypp/target/rpm/librpmDb.cv3.cc000066400000000000000000000032621334444677500211450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/librpmDb.cv3.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/target/rpm/librpmDb.h" #include "zypp/target/rpm/RpmCallbacks.h" #include "zypp/ZYppCallbacks.h" using namespace std; #undef Y2LOG #define Y2LOG "librpmDb" namespace zypp { namespace target { namespace rpm { /****************************************************************** * * * FUNCTION NAME : convertV3toV4 * * \throws RpmException * */ void convertV3toV4( const Pathname & v3db_r, const librpmDb::constPtr & v4db_r ) { // report callback::SendReport report; report->start(v3db_r); try { // Does no longer work with rpm 4.9. // internal_convertV3toV4( v3db_r, v4db_r, report ); INT << "Unsupported: Convert rpm3 database to rpm4" << endl; ZYPP_THROW(RpmDbOpenException(Pathname("/"), v3db_r)); } catch (RpmException & excpt_r) { report->finish(v3db_r, ConvertDBReport::FAILED,excpt_r.asUserString()); ZYPP_RETHROW(excpt_r); } report->finish(v3db_r, ConvertDBReport::NO_ERROR, ""); } } // namespace rpm } // namespace target } // namespace zypp libzypp-17.7.0/zypp/target/rpm/librpmDb.h000066400000000000000000000346341334444677500203240ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/target/rpm/librpmDb.h * */ #ifndef librpmDb_h #define librpmDb_h #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/PathInfo.h" #include "zypp/Package.h" #include "zypp/target/rpm/RpmHeader.h" #include "zypp/target/rpm/RpmException.h" namespace zypp { namespace target { namespace rpm { /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb /** * @short Manage access to librpm database. **/ class librpmDb : public base::ReferenceCounted, private base::NonCopyable { public: typedef intrusive_ptr Ptr; typedef intrusive_ptr constPtr; private: /** * INTENTIONALLY UNDEFINED<\B> because of bug in Ptr classes * which allows implicit conversion from librpmDb::Ptr to * librpmDb::constPtr. Currently we don't want to provide non const * handles, as the database is opened READONLY. * * \throws RpmException * **/ static void dbAccess( librpmDb::Ptr & ptr_r ); public: /////////////////////////////////////////////////////////////////// // // static interface // /////////////////////////////////////////////////////////////////// private: /** * Current root directory for all operations. * (initialy /) **/ static Pathname _defaultRoot; /** * Current directory (below root) that contains the rpmdb. * (initialy /var/lib/rpm) **/ static Pathname _defaultDbPath; /** * Current rpmdb handle. **/ static librpmDb::constPtr _defaultDb; /** * Whether access is blocked (no _defaultDb will be available). **/ static bool _dbBlocked; /** * For internal use. Pointer returned should immediately be * wrapped into librpmDb::Ptr. * * \throws RpmException * **/ static librpmDb * newLibrpmDb( Pathname root_r, Pathname dbPath_r, bool readonly_r ); /** * Access the database at the current default location. If necessary * (eg. after @ref dbRelease), the database is opened. This just creates * the internal handle. Once the handle is passed to e.g. some * @ref db_const_iterator, the database will be closed if the last * outstanding reference goes out of scope. If no external reference is * created, you'll have to explicitly call @ref dbRelease to close the * database. * * \throws RpmException * **/ static void dbAccess(); public: /** * Initialize lib librpm (read configfiles etc.). It's called * on demand but you may call it anytime. * * @return Whether librpm is initialized. **/ static bool globalInit(); /** * @return librpm macro expansion. **/ static std::string expand( const std::string & macro_r ); /** * @return String '(root_r)sub_r' used in debug output. **/ static std::string stringPath( const Pathname & root_r, const Pathname & sub_r ) { return std::string( "'(" ) + root_r.asString() + ")" + sub_r.asString() + "'"; } public: /** * @return Current root directory for all operations. **/ static const Pathname & defaultRoot() { return _defaultRoot; } /** * @return Current directory (below root) that contains the rpmdb. **/ static const Pathname & defaultDbPath() { return _defaultDbPath; } /** * Adjust access to the given database location, making it the new * default location on success. No relative Pathnames are allowed. * * It's not possible to access a database while access is blocked * (see @ref blockAccess), but valid Pathnames provided will be stored * as new default location. * * It's not allowed to switch to another location while a database * is accessed. Use @ref dbRelease to force releasing the database first. * * \throws RpmException * **/ static void dbAccess( const Pathname & root_r, const Pathname & dbPath_r ); /** * Same as &ref dbAccess(), but returns the database handle if * avaialble, otherwise NULL. This creates an external reference, thus * it should not be used longer than necessary. Be prepared that the * handle might become invalid (see @ref dbRelease) later. * * \throws RpmException * **/ static void dbAccess( librpmDb::constPtr & ptr_r ); /** * If there are no outstanding references to the database (e.g. by @ref db_const_iterator), * the database is closed. Subsequent calls to @ref dbAccess may however * open the database again. * * If forced, the internal reference is dropped and it will look like * the database was closed. But physically the database will be closed * after all outstanding references are gone. * * @return The number of outstandig references to the database, 0 if * if database was physically closed. **/ static unsigned dbRelease( bool force_r = false ); /** * Blocks further access to rpmdb. Basically the same as @ref dbRelease( true ), * but subsequent calls to @ref dbAccess will fail returning E_RpmDB_access_blocked. * * @return The number of outstandig references to the database, 0 if * if database was physically closed. **/ static unsigned blockAccess(); /** * Allow access to rpmdb e.g. after @ref blockAccess. Subsequent calls to * @ref dbAccess will perform. * * NOTE: Initially we're in blocked mode. So you must call @ref unblockAccess * unblockAccess at least once. Othwise nothing will happen. * * @return The number of outstandig references to the database, 0 if * if database was physically closed. **/ static void unblockAccess(); /** * @return Whether database access is blocked. **/ static bool isBlocked() { return _dbBlocked; } /** * Dump debug info. **/ static std::ostream & dumpState( std::ostream & str ); public: /** * Collect info about what kind of rpmdb seems to be present by * looking at paths and filenames. **/ class DbDirInfo; /** * Subclass to retrieve database content. **/ class db_const_iterator; private: /////////////////////////////////////////////////////////////////// // // internal database handle interface (nonstatic) // /////////////////////////////////////////////////////////////////// /** * Hides librpm specific data **/ class D; D & _d; protected: /** * Private constructor! librpmDb objects are to be created via * static interface only. **/ librpmDb( const Pathname & root_r, const Pathname & dbPath_r, bool readonly_r ); /** * Trigger from @ref Rep, after refCount was decreased. **/ virtual void unref_to( unsigned refCount_r ) const; public: /** * Destructor. Closes rpmdb. **/ virtual ~librpmDb(); /** * @return This handles root directory for all operations. **/ const Pathname & root() const; /** * @return This handles directory that contains the rpmdb. **/ const Pathname & dbPath() const; /** * Return any database error. Usg. if the database was * blocked by calling @ref dbRelease(true) or @ref blockAccess. **/ shared_ptr error() const; /** * @return Whether handle is valid. **/ bool valid() const { return( ! error() ); } /** * @return True if handle is valid and database is empty. **/ bool empty() const; /** * @return Number of entries in the database (0 if not valid). **/ unsigned size() const; public: /** * Dont call it ;) It's for development and testing only. **/ void * dont_call_it() const; /** * Dump debug info. **/ virtual std::ostream & dumpOn( std::ostream & str ) const; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb::DbDirInfo /** * Collect info about what kind of rpmdb seems to be present by * looking at paths and filenames. **/ class librpmDb::DbDirInfo { friend std::ostream & operator<<( std::ostream & str, const DbDirInfo & obj ); private: /** * Root directory for all operations. **/ Pathname _root; /** * Directory that contains the rpmdb. **/ Pathname _dbPath; /** * database directory (unset on illegal constructor arguments) **/ PathInfo _dbDir; /** * rpmV4 database (_dbDir/Packages) **/ PathInfo _dbV4; /** * rpmV3 database (_dbDir/packages.rpm) **/ PathInfo _dbV3; /** * rpmV3 database backup created on conversion to rpmV4 (_dbDir/packages.rpm3) **/ PathInfo _dbV3ToV4; public: /** * For Constructor arguments see @ref accessPath. On illegal * arguments @ref _dbDir is unset. **/ DbDirInfo( const Pathname & root_r, const Pathname & dbPath_r ); public: /** * Root directory for all operations. **/ const Pathname & root() const { return _root; } /** * Directory that contains the rpmdb. **/ const Pathname & dbPath() const { return _dbPath; } /** * database directory (unset on illegal constructor arguments) **/ const PathInfo & dbDir() const { return _dbDir; } /** * rpmV4 database (_dbDir/Packages) **/ const PathInfo & dbV4() const { return _dbV4; } /** * rpmV3 database (_dbDir/packages.rpm) **/ const PathInfo & dbV3() const { return _dbV3; } /** * rpmV3 database backup created on conversion to rpmV4 (_dbDir/packages.rpm3) **/ const PathInfo & dbV3ToV4() const { return _dbV3ToV4; } public: /** * Restat all paths **/ void restat(); public: /** * Whether constructor arguments were illegal. **/ bool illegalArgs() const { return _dbDir.path().empty(); } /** * Whether constructor arguments were llegal and dbDir either * is a directory or may be created (path does not exist). **/ bool usableArgs() const { return _dbDir.isDir() || ! ( _dbDir.path().empty() || _dbDir.isExist() ); } /** * Whether dbDir directory exists. **/ bool hasDbDir() const { return _dbDir.isDir(); } /** * Whether dbV4 file exists. **/ bool hasDbV4() const { return _dbV4.isFile(); } /** * Whether dbV3 file exists. **/ bool hasDbV3() const { return _dbV3.isFile(); } /** * Whether dbV3ToV4 file exists. **/ bool hasDbV3ToV4() const { return _dbV3ToV4.isFile(); } }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : librpmDb::db_const_iterator /** * @short Subclass to retrieve database content. * * **/ class librpmDb::db_const_iterator { db_const_iterator & operator=( const db_const_iterator & ); // NO ASSIGNMENT! db_const_iterator ( const db_const_iterator & ); // NO COPY! friend std::ostream & operator<<( std::ostream & str, const db_const_iterator & obj ); friend class librpmDb; private: /** * Hides librpm specific data **/ class D; D & _d; public: /** * Constructor. Iterator is initialized to @ref findAll. * The default form accesses librpmDb's default database. * Explicitly providing a database handle should not be * neccesary, except for testing. **/ db_const_iterator( librpmDb::constPtr dbptr_r = 0 ); /** * Destructor. **/ ~db_const_iterator(); /** * Return any database error. * * NOTE: If the database gets blocked (see @ref dbRelease) * dbError will immediately report this, but an already running * iteration will proceed to its end. Then the database is dropped. **/ shared_ptr dbError() const; /** * Advance to next RpmHeader::constPtr. **/ void operator++(); /** * Returns the current headers index in database, * 0 if no header. **/ unsigned dbHdrNum() const; /** * Returns the current RpmHeader::constPtr or * NULL, if no more entries available. **/ const RpmHeader::constPtr & operator*() const; /** * Forwards to the current RpmHeader::constPtr. **/ const RpmHeader::constPtr & operator->() const { return operator*(); } public: /** * Reset to iterate all packages. Returns true if iterator * contains at least one entry. * * NOTE: No entry (false) migt be returned due to a * meanwhile blocked database (see @ref dbRelease). Use * @ref dbError to check this. **/ bool findAll(); /** * Reset to iterate all packages that own a certain file. **/ bool findByFile( const std::string & file_r ); /** * Reset to iterate all packages that provide a certain tag. **/ bool findByProvides( const std::string & tag_r ); /** * Reset to iterate all packages that require a certain tag. **/ bool findByRequiredBy( const std::string & tag_r ); /** * Reset to iterate all packages that conflict with a certain tag. **/ bool findByConflicts( const std::string & tag_r ); /** * Reset to iterate all packages with a certain name. * * NOTE: Multiple entries for one package installed * in different versions are possible but not desired. Usually * you'll want to use @ref findPackage instead. * * findByName is needed to retrieve pseudo packages like * 'gpg-pubkey', which in fact exist in multiple instances. **/ bool findByName( const std::string & name_r ); public: /** * Find package by name. * * Multiple entries for one package installed in different versions * are possible but not desired. If so, the last package installed * is returned. **/ bool findPackage( const std::string & name_r ); /** * Find package by name and edition. * Commonly used by PMRpmPackageDataProvider. **/ bool findPackage( const std::string & name_r, const Edition & ed_r ); /** * Abbr. for findPackage( which_r->name(), which_r->edition() ); **/ bool findPackage( const Package::constPtr & which_r ); }; /////////////////////////////////////////////////////////////////// } //namespace rpm } //namespace target } // namespace zypp #endif // librpmDb_h libzypp-17.7.0/zypp/thread/000077500000000000000000000000001334444677500155715ustar00rootroot00000000000000libzypp-17.7.0/zypp/thread/Mutex.cc000066400000000000000000000063551334444677500172130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/thread/Mutex.cc */ #include "zypp/thread/Mutex.h" #include "zypp/thread/MutexException.h" #include "zypp/base/Gettext.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace thread { ////////////////////////////////////////////////////////////////// // ------------------------------------------------------------- Mutex::Mutex() { pthread_mutexattr_t attr; int ret = pthread_mutexattr_init(&attr); if( ret != 0) { ZYPP_THROW_ERRNO_MSG(zypp::thread::MutexException, _("Can't initialize mutex attributes")); } ret = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); if( ret != 0) { ZYPP_THROW_ERRNO_MSG(MutexException, _("Can't set recursive mutex attribute")); } ret = pthread_mutex_init(&m_mutex, &attr); if( ret != 0) { ZYPP_THROW_ERRNO_MSG(MutexException, _("Can't initialize recursive mutex")); } } // ------------------------------------------------------------- Mutex::~Mutex() { if( pthread_mutex_destroy(&m_mutex) != 0 && errno == EBUSY) { // try to unlock and to destroy again... if( pthread_mutex_unlock(&m_mutex) == 0) { pthread_mutex_destroy(&m_mutex); } /* else { ZYPP_THROW_ERRNO_MSG(MutexException, _("Can't destroy mutex owned by another thread")); } */ } } // ------------------------------------------------------------- void Mutex::lock() { if( pthread_mutex_lock(&m_mutex) != 0) { ZYPP_THROW_ERRNO_MSG(MutexException, _("Can't acquire the mutex lock")); } } // ------------------------------------------------------------- void Mutex::unlock() { if( pthread_mutex_unlock(&m_mutex) != 0) { ZYPP_THROW_ERRNO_MSG(MutexException, _("Can't release the mutex lock")); } } // ------------------------------------------------------------- bool Mutex::trylock() { return (pthread_mutex_trylock(&m_mutex) == 0); } ////////////////////////////////////////////////////////////////// } // namespace thread //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/thread/Mutex.h000066400000000000000000000062521334444677500170510ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/thread/Mutex.h */ #ifndef ZYPP_THREAD_MUTEX_H #define ZYPP_THREAD_MUTEX_H #include "zypp/base/NonCopyable.h" #include "zypp/thread/MutexException.h" #include ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace thread { ////////////////////////////////////////////////////////////////// typedef pthread_mutex_t RecursiveMutex_t; //////////////////////////////////////////////////////////////// // // CLASS NAME : Mutex // /** A recursive Mutex. */ class Mutex: public zypp::base::NonCopyable { public: /** Create a new recursive Mutex object. * \throws MutexException on initialization failure. */ Mutex(); /** Destroys this Mutex object. */ ~Mutex(); /** Acquire ownership of this Mutex object. * This call will block if another thread has ownership of * this Mutex. When it returns, the current thread is the * owner of this Mutex object. * * In the same thread, this recursive mutex can be acquired * multiple times. * * \throws MutexException if the maximum number of recursive * locks for mutex has been exceeded. */ void lock(); /** Release ownership of this Mutex object. * If another thread is waiting to acquire the ownership of * this mutex it will stop blocking and acquire ownership * when this call returns. * * \throws MutexException if the current thread does not * own the mutex. */ void unlock(); /** Try to acquire ownership of this Mutex object. * This call will return false if another thread has ownership * of this Mutex or the maximum number of recursive locks for * mutex has been exceeded. * When it returns true, the current thread is the owner of * this Mutex object. * * \return true, if ownership was acquired. */ bool trylock(); private: RecursiveMutex_t m_mutex; }; ////////////////////////////////////////////////////////////////// } // namespace thread //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // ZYPP_THREAD_MUTEX_H /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/thread/MutexException.h000066400000000000000000000036431334444677500207310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/thread/MutexException.h * */ #ifndef ZYPP_THREAD_MUTEXEXCEPTION_H #define ZYPP_THREAD_MUTEXEXCEPTION_H #include "zypp/base/Exception.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace thread { ////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// // // CLASS NAME : MutexException // /** Exception type thrown on mutex errors. */ class MutexException: public zypp::Exception { public: MutexException() : zypp::Exception( ::zypp::Exception::strErrno(errno)) {} MutexException(const std::string &msg) : zypp::Exception( msg) {} virtual ~MutexException() throw() {} }; ////////////////////////////////////////////////////////////////// } // namespace thread //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // ZYPP_THREAD_MUTEXEXCEPTION_H /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/thread/MutexLock.h000066400000000000000000000051331334444677500176570ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/thread/MutexLock.h * */ #ifndef ZYPP_THREAD_MUTEXLOCK_H #define ZYPP_THREAD_MUTEXLOCK_H #include "zypp/thread/Mutex.h" #include ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace thread { ////////////////////////////////////////////////////////////////// // ------------------------------------------------------------- class MutexLock { public: explicit MutexLock(Mutex &mutex, bool init_locked=true) : m_mutex(&mutex) , m_locked(false) { if(init_locked) lock(); } MutexLock(const MutexLock &ref) : m_mutex( ref.m_mutex) , m_locked(ref.m_locked) { ref.m_locked = false; } ~MutexLock() { try { if( m_locked) unlock(); } catch( ... ) { // don't let exceptions escape } } void lock() { assert(m_locked == false); m_mutex->lock(); m_locked = true; } void unlock() { assert(m_locked == true); m_mutex->unlock(); m_locked = false; } bool trylock() { assert(m_locked == false); m_locked = m_mutex->trylock(); return m_locked; } bool locked() { return m_locked; } private: Mutex *m_mutex; mutable bool m_locked; //friend class Condition; }; ////////////////////////////////////////////////////////////////// } // namespace thread //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // ZYPP_THREAD_MUTEXLOCK_H /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/thread/Once.h000066400000000000000000000044321334444677500166310ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/thread/Once.h * */ #ifndef ZYPP_THREAD_ONCE_H #define ZYPP_THREAD_ONCE_H #include ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace thread { ////////////////////////////////////////////////////////////////// /** The initialization value for OnceFlag variables. */ #define ZYPP_ONCE_INIT PTHREAD_ONCE_INIT /** The OnceFlag variable type. */ typedef pthread_once_t OnceFlag; /** * Call once function. * * The purpose of callOnce is to ensure that a piece of initialization * code is executed at most once. * The OnceFlag \p flag has to point to a static or extern variable, * that was statically initialized to ZYPP_ONCE_INIT. * * The first time callOnce is called with a given \p onceFlag argument, * it calls \p fuct with no argument and changes the value of \p flag * to indicate that the function has been run. * Subsequent calls with the same once flag does nothing. */ void callOnce(OnceFlag& flag, void (*func)()); inline void callOnce(OnceFlag& flag, void (*func)()) { pthread_once(&flag, func); } ////////////////////////////////////////////////////////////////// } // namespace thread //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif // ZYPP_THREAD_ONCE_H /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/ui/000077500000000000000000000000001334444677500147375ustar00rootroot00000000000000libzypp-17.7.0/zypp/ui/SelFilters.h000066400000000000000000000062251334444677500171710ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/SelFilters.h * */ #ifndef ZYPP_UI_SELFILTERS_H #define ZYPP_UI_SELFILTERS_H #include #include "zypp/base/Functional.h" #include "zypp/ui/Selectable.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace selfilter { ///////////////////////////////////////////////////////////////// typedef std::unary_function SelectableFilterFunctor; /** */ struct ByKind : public SelectableFilterFunctor { ByKind( const ResKind & kind_r ) : _kind( kind_r ) {} bool operator()( const Selectable::constPtr & obj ) const { return obj && obj->kind() == _kind; } ResKind _kind; }; /** */ struct ByName : public SelectableFilterFunctor { ByName( const std::string & name_r ) : _name( name_r ) {} bool operator()( const ui::Selectable::constPtr & obj ) const { return obj && obj->name() == _name; } std::string _name; }; /** */ struct ByHasInstalledObj : public SelectableFilterFunctor { bool operator()( const ui::Selectable::constPtr & obj ) const { return obj && !obj->installedEmpty(); } }; /** */ struct ByHasCandidateObj : public SelectableFilterFunctor { bool operator()( const ui::Selectable::constPtr & obj ) const { return obj && obj->hasCandidateObj(); } }; struct ByStatus : public SelectableFilterFunctor /** */ { ByStatus( Status status_r ) : _status( status_r ) {} bool operator()( const ui::Selectable::constPtr & obj ) const { return obj && obj->status() == _status; } Status _status; }; ///////////////////////////////////////////////////////////////// } // namespace selfilter /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_UI_SELFILTERS_H libzypp-17.7.0/zypp/ui/Selectable.cc000066400000000000000000000242731334444677500173210ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/Selectable.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/ui/Selectable.h" #include "zypp/ui/SelectableImpl.h" #include "zypp/ResPool.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// IMPL_PTR_TYPE(Selectable); Selectable::Ptr Selectable::get( const pool::ByIdent & ident_r ) { return ResPool::instance().proxy().lookup( ident_r ); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : Selectable::Selectable // METHOD TYPE : Ctor // Selectable::Selectable( Impl_Ptr pimpl_r ) : _pimpl( pimpl_r ) {} /////////////////////////////////////////////////////////////////// // // METHOD NAME : Selectable::~Selectable // METHOD TYPE : Dtor // Selectable::~Selectable() {} /////////////////////////////////////////////////////////////////// // // Forward to implementation. // Restrict PoolItems to ResObject::constPtr! // /////////////////////////////////////////////////////////////////// IdString Selectable::ident() const { return _pimpl->ident(); } ResKind Selectable::kind() const { return _pimpl->kind(); } const std::string & Selectable::name() const { return _pimpl->name(); } Status Selectable::status() const { return _pimpl->status(); } bool Selectable::setStatus( Status state_r, ResStatus::TransactByValue causer_r ) { return _pimpl->setStatus( state_r, causer_r ); } PoolItem Selectable::installedObj() const { return _pimpl->installedObj(); } PoolItem Selectable::candidateObj() const { return _pimpl->candidateObj(); } PoolItem Selectable::candidateObjFrom( Repository repo_r ) const { return _pimpl->candidateObjFrom( repo_r ); } PoolItem Selectable::updateCandidateObj() const { return _pimpl->updateCandidateObj(); } PoolItem Selectable::highestAvailableVersionObj() const { return _pimpl->highestAvailableVersionObj(); } bool Selectable::identIsAutoInstalled() const { return _pimpl->identIsAutoInstalled(); } bool Selectable::identicalAvailable( const PoolItem & rhs ) const { return _pimpl->identicalAvailable( rhs ); } bool Selectable::identicalInstalled( const PoolItem & rhs ) const { return _pimpl->identicalInstalled( rhs ); } PoolItem Selectable::identicalAvailableObj( const PoolItem & rhs ) const { return _pimpl->identicalAvailableObj( rhs ); } PoolItem Selectable::identicalInstalledObj( const PoolItem & rhs ) const { return _pimpl->identicalInstalledObj( rhs ); } PoolItem Selectable::setCandidate( const PoolItem & newCandidate_r, ResStatus::TransactByValue causer_r ) { return _pimpl->setCandidate( newCandidate_r, causer_r ); } PoolItem Selectable::setCandidate( ResObject::constPtr newCandidate_r, ResStatus::TransactByValue causer_r ) { return _pimpl->setCandidate( PoolItem( newCandidate_r ), causer_r ); } bool Selectable::setOnSystem( const PoolItem & newCandidate_r, ResStatus::TransactByValue causer_r ) { if ( identicalInstalled( newCandidate_r ) ) return setFate( UNMODIFIED, causer_r ); return setCandidate( newCandidate_r, causer_r ) && setFate( TO_INSTALL, causer_r ); } PoolItem Selectable::theObj() const { return _pimpl->theObj(); } //////////////////////////////////////////////////////////////////////// bool Selectable::availableEmpty() const { return _pimpl->availableEmpty(); } Selectable::available_size_type Selectable::availableSize() const { return _pimpl->availableSize(); } Selectable::available_iterator Selectable::availableBegin() const { return _pimpl->availableBegin(); } Selectable::available_iterator Selectable::availableEnd() const { return _pimpl->availableEnd(); } //////////////////////////////////////////////////////////////////////// bool Selectable::installedEmpty() const { return _pimpl->installedEmpty(); } Selectable::installed_size_type Selectable::installedSize() const { return _pimpl->installedSize(); } Selectable::installed_iterator Selectable::installedBegin() const { return _pimpl->installedBegin(); } Selectable::installed_iterator Selectable::installedEnd() const { return _pimpl->installedEnd(); } //////////////////////////////////////////////////////////////////////// bool Selectable::picklistEmpty() const { return _pimpl->picklistEmpty(); } Selectable::picklist_size_type Selectable::picklistSize() const { return _pimpl->picklistSize(); } Selectable::picklist_iterator Selectable::picklistBegin() const { return _pimpl->picklistBegin(); } Selectable::picklist_iterator Selectable::picklistEnd() const { return _pimpl->picklistEnd(); } Selectable::picklist_size_type Selectable::picklistPos( const PoolItem & pi_r ) const { return picklistPos( pi_r.satSolvable() ); } Selectable::picklist_size_type Selectable::picklistPos( const sat::Solvable & solv_r ) const { picklist_size_type idx = picklist_size_type(0); for ( const auto & pi : picklist() ) { if ( pi == solv_r ) return idx; ++idx; } return picklistNoPos; } //////////////////////////////////////////////////////////////////////// bool Selectable::isUnmaintained() const { return _pimpl->isUnmaintained(); } bool Selectable::multiversionInstall() const { return _pimpl->multiversionInstall(); } bool Selectable::pickInstall( const PoolItem & pi_r, ResStatus::TransactByValue causer_r, bool yesno_r ) { return _pimpl->pickInstall( pi_r, causer_r, yesno_r ); } bool Selectable::pickDelete( const PoolItem & pi_r, ResStatus::TransactByValue causer_r, bool yesno_r ) { return _pimpl->pickDelete( pi_r, causer_r, yesno_r ); } Status Selectable::pickStatus( const PoolItem & pi_r ) const { return _pimpl->pickStatus( pi_r ); } bool Selectable::setPickStatus( const PoolItem & pi_r, Status state_r, ResStatus::TransactByValue causer_r ) { return _pimpl->setPickStatus( pi_r, state_r, causer_r ); } //////////////////////////////////////////////////////////////////////// bool Selectable::isUndetermined() const { return _pimpl->isUndetermined(); } bool Selectable::isRelevant() const { return _pimpl->isRelevant(); } bool Selectable::isSatisfied() const { return _pimpl->isSatisfied(); } bool Selectable::isBroken() const { return _pimpl->isBroken(); } bool Selectable::isNeeded() const { return fate() == TO_INSTALL || ( ! locked() && isBroken() ); } bool Selectable::isUnwanted() const { return locked() && isBroken() ; } ResStatus::TransactByValue Selectable::modifiedBy() const { return _pimpl->modifiedBy(); } bool Selectable::hasLicenceConfirmed() const { return _pimpl->hasLicenceConfirmed(); } void Selectable::setLicenceConfirmed( bool val_r ) { _pimpl->setLicenceConfirmed( val_r ); } Selectable::Fate Selectable::fate() const { switch ( status() ) { case S_Update: case S_Install: case S_AutoUpdate: case S_AutoInstall: return TO_INSTALL; break; case S_Del: case S_AutoDel: return TO_DELETE; break; case S_Protected: case S_Taboo: case S_KeepInstalled: case S_NoInst: break; } return UNMODIFIED; }; bool Selectable::setFate( Fate fate_r, ResStatus::TransactByValue causer_r ) { switch ( fate_r ) { case TO_INSTALL: return setStatus( hasInstalledObj() ? S_Update : S_Install, causer_r ); break; case TO_DELETE: return setStatus( S_Del, causer_r ); break; case UNMODIFIED: switch ( status() ) { case S_Protected: case S_Taboo: return true; break; default: return setStatus( hasInstalledObj() ? S_KeepInstalled : S_NoInst, causer_r ); break; } break; } return false; } bool Selectable::setInstalled( ResStatus::TransactByValue causer_r ) { return( hasInstalledObj() || setStatus( S_Install, causer_r ) ); } bool Selectable::setUpToDate( ResStatus::TransactByValue causer_r ) { if ( ! hasInstalledObj() ) return setStatus( S_Install, causer_r ); PoolItem cand( candidateObj() ); if ( ! cand ) return true; return( installedObj()->edition() >= cand->edition() || setStatus( S_Update, causer_r ) ); } bool Selectable::setDeleted( ResStatus::TransactByValue causer_r ) { return( ! hasInstalledObj() || setStatus( S_Del, causer_r ) ); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const Selectable & obj ) { return str << *(obj._pimpl); } std::ostream & dumpOn( std::ostream & str, const Selectable & obj ) { return dumpOn( str, *(obj._pimpl) ); } ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ui/Selectable.h000066400000000000000000000524331334444677500171620ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/Selectable.h * */ #ifndef ZYPP_UI_SELECTABLE_H #define ZYPP_UI_SELECTABLE_H #include #include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" #include "zypp/base/Iterator.h" #include "zypp/ui/SelectableTraits.h" #include "zypp/ui/Status.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// DEFINE_PTR_TYPE(Selectable); /////////////////////////////////////////////////////////////////// // // CLASS NAME : Selectable // /** Collects PoolItems of same kind and name. * * Selectable is a status wrapper. The ui::Status is calculated * from (and transated to) \ref PoolItems individual \ref ResStatus * values. * * Available objects are sorted according the solver policies, 'best' * packages first (e.g. by repository priority, then Arch, then Edition). * * Installed objects are sorted according the installation date, newer install * time first. */ class Selectable : public base::ReferenceCounted, private base::NonCopyable { friend std::ostream & operator<<( std::ostream & str, const Selectable & obj ); friend std::ostream & dumpOn( std::ostream & str, const Selectable & obj ); public: typedef intrusive_ptr Ptr; typedef intrusive_ptr constPtr; /** Iterates over ResObject::constPtr */ typedef SelectableTraits::available_iterator available_iterator; typedef SelectableTraits::available_size_type available_size_type; typedef SelectableTraits::installed_iterator installed_iterator; typedef SelectableTraits::installed_size_type installed_size_type; typedef SelectableTraits::picklist_iterator picklist_iterator; typedef SelectableTraits::picklist_size_type picklist_size_type; public: /** \name Static ctor substitues picking the item from the pool. * \code * Selectable::Ptr item; * item = Selectable::get( "amarok ); // package amamrok * item = Selectable::get( ResKind::patch, "amarok ); // patch amamrok * item = Selectable::get( IdString( "patch:amarok" ); // patch amamrok * \endcode */ //@{ /** Get the \ref Selctable */ static Ptr get( const pool::ByIdent & ident_r ); /** Get the \ref Selctable by it's \c sat-identifyer. */ static Ptr get( IdString ident_r ) { return get( pool::ByIdent( ident_r ) ); } /** Get the \ref Selctable by \c kind and \c name. */ static Ptr get( ResKind kind_r, const std::string & name_r ) { return get( pool::ByIdent( kind_r, name_r ) ); } /** Get the \c Package \ref Selctable by \c name. */ static Ptr get( const std::string & name_r ) { return get( pool::ByIdent( ResKind::package, name_r ) ); } /** Get the \ref Selctable containing a specific \ref sat::Solvable. */ static Ptr get( const sat::Solvable & solv_r ) { return get( pool::ByIdent( solv_r ) ); } /** Get the \ref Selctable containing a specific \ref ResObject. */ static Ptr get( const ResObject::constPtr & resolvable_r ) { return resolvable_r ? get( resolvable_r->satSolvable() ) : Ptr(); } /** Get the \ref Selctable containing a specific \ref PoolItem. */ static Ptr get( const PoolItem & pi_r ) { return get( pi_r.satSolvable() ); } //@} public: /** The identifier. * This is the solvables \ref name, \b except for packages and * source packes, prefixed by it's \ref kind. * \see \ref sat::Solvable. */ IdString ident() const; /** The ResObjects kind. */ ResKind kind() const; /** The ResObjects name. */ const std::string & name() const; /** The last Installed object. */ PoolItem installedObj() const; /** The 'best' or 'most interesting' among all available objects. * One that is, or is likely to be, chosen for installation, unless * it violated any solver policy (see \ref updateCandidateObj). */ PoolItem candidateObj() const; /** The best candidate provided by a specific \ref Repository, if there is one. * In contrary to \ref candidateObj, this may return no item even if * there are available objects. This simply means the \ref Repository * does not provide this object. */ PoolItem candidateObjFrom( Repository repo_r ) const; /** The best candidate for update, if there is one. * In contrary to \ref candidateObj, this may return no item even if * there are available objects. This simply means the best object is * already installed, and all available objects violate at least one * update policy. */ PoolItem updateCandidateObj() const; /** Simply the highest available version, ignoring priorities and policies. * It's doubtful whether solely looking at the version makes a good * candidate, but apps ask for it. Beware that different vendors may * use different (uncomparable) version schemata. */ PoolItem highestAvailableVersionObj() const; /** Whether this \ref ident is flagged as AutoInstalled. */ bool identIsAutoInstalled() const; /** \c True if \a rhs is installed and one with the same content is available. * Basically the same name, edition, arch, vendor and buildtime. * \see \ref sat::Solvable::identical */ bool identicalAvailable( const PoolItem & rhs ) const; /** \c True if \a rhs has the same content as an installed one. * Basically the same name, edition, arch, vendor and buildtime. * \see \ref sat::Solvable::identical */ bool identicalInstalled( const PoolItem & rhs ) const; /** \c True if the \ref candidateObj is installed (same content). * \see \ref identicalInstalled. */ bool identicalInstalledCandidate() const { return identicalInstalled( candidateObj() ); } /** \c True if the \ref updateCandidateObj is installed (same content). * \see \ref identicalInstalled. */ bool identicalInstalledUpdateCandidate() const { return identicalInstalled( updateCandidateObj() ); } /** Return an available Object with the same content as \c rhs. * Basically the same name, edition, arch, vendor and buildtime. * \see \ref sat::Solvable::identical */ PoolItem identicalAvailableObj( const PoolItem & rhs ) const; /** \Return an installed Object with the same content as \c rhs. * Basically the same name, edition, arch, vendor and buildtime. * \see \ref sat::Solvable::identical */ PoolItem identicalInstalledObj( const PoolItem & rhs ) const; /** Return the \ref installedObj resolvable casted to a specific kind. * \code * Selectable mySelectable; * Package::constPtr p( mySelectable.installedAsKind() ); * \endcode */ template typename ResTraits::constPtrType installedAsKind() const { return asKind( candidateObj() ); } /** Return the \ref candidateObj resolvable casted to a specific kind. * \code * Selectable mySelectable; * Package::constPtr p( mySelectable.candidateAsKind() ); * \endcode */ template typename ResTraits::constPtrType candidateAsKind() const { return asKind( candidateObj() ); } /** Set a candidate (out of available objects). * \return The new candidate, or NULL if choice was invalid * (NULL or not among availableObjs). An invalid choice * selects the default candidate. * In case the causer is not \c ResStatus::USER the operation * may also fail if there are insufficient permissions to change * a transacting candidate. */ PoolItem setCandidate( const PoolItem & newCandidate_r, ResStatus::TransactByValue causer_r = ResStatus::USER ); /** \overload */ PoolItem setCandidate( ResObject::constPtr newCandidate_r, ResStatus::TransactByValue causer_r = ResStatus::USER ); /** Arrange the specified candidate (out of available objects) to be on system after commit. * If the specified candidate is not already installed (\ref identicalInstalled), * and the \a causer_r has sufficient permisssion, then \a newCandidate_r is set as the new * candidate (\ref setCandidate) and selected for installation. * \returns \c True if \a newCandidate_r is already installed or successfully selected for installation. */ bool setOnSystem( const PoolItem & newCandidate_r, ResStatus::TransactByValue causer_r = ResStatus::USER ); /** An object you could use as pars pro toto. * * \return the \ref candidateObj, or ,if no available objects * exist, the \ref installedObj. */ PoolItem theObj() const; //////////////////////////////////////////////////////////////////////// /** \name Available objects iterators. * Oredered according to solver policy. 'Best' first. */ //@{ bool availableEmpty() const; available_size_type availableSize() const; available_iterator availableBegin() const; available_iterator availableEnd() const; inline Iterable available() const { return makeIterable( availableBegin(), availableEnd() ); } //@} //////////////////////////////////////////////////////////////////////// /** \name Installed objects iterators. * Ordered by install time. Latest first. */ //@{ bool installedEmpty() const; installed_size_type installedSize() const; installed_iterator installedBegin() const; installed_iterator installedEnd() const; inline Iterable installed() const { return makeIterable( installedBegin(), installedEnd() ); } //@} //////////////////////////////////////////////////////////////////////// /** \name picklist iterators. * This is basically the available items list prepended by those * installed items, that are nolonger \ref identicalAvailable. */ //@{ bool picklistEmpty() const; picklist_size_type picklistSize() const; picklist_iterator picklistBegin() const; picklist_iterator picklistEnd() const; inline Iterable picklist() const { return makeIterable( picklistBegin(), picklistEnd() ); } /** Returned by \ref picklistPos if the Item does not belong to the picklist. */ static constexpr const picklist_size_type picklistNoPos = picklist_size_type(-1); /** Return the position of \a pi_r in the piclist or \ref picklistNoPos. * \note \ref picklistNoPos is returned if you pass an installed Poolitem, * whci has an \ref identicalAvailableObj. */ picklist_size_type picklistPos( const PoolItem & pi_r ) const; /** \overload taking a sat::Solvable */ picklist_size_type picklistPos( const sat::Solvable & solv_r ) const; //@} //////////////////////////////////////////////////////////////////////// public: /** \name Query for objects within this Selectable. */ //@{ /** True if either installed or candidate object is present */ bool hasObject() const { return (! installedEmpty()) || candidateObj(); } /** True if installed object is present. */ bool hasInstalledObj() const { return ! installedEmpty(); } /** True if candidate object is present. */ bool hasCandidateObj() const { return bool(candidateObj()); } /** True if installed and candidate object is present */ bool hasBothObjects() const { return (! installedEmpty()) && candidateObj(); } /** True if installed object is present but no candidate. */ bool hasInstalledObjOnly() const { return (! installedEmpty()) && ! candidateObj(); } /** True if candidate object is present but no installed. */ bool hasCandidateObjOnly() const { return ( installedEmpty() ) && candidateObj(); } //@} /** * True if this package has no replacement from * the available repositories */ bool isUnmaintained() const; /** \name Multiversion install. * * Using \ref pickInstall or \ref pickDelete with non-multiversionInstall items * is possible, but additional constraints will apply. E.g. selecting one item for * install will deselect any other. */ //@{ /** Whether at least one of the available packages has multiversionInstall set. * \see \ref Solvable::multiversionInstall * \see also \ref ZConfig::multiversion. */ bool multiversionInstall() const; /** Select a specific available item for installation. */ bool pickInstall( const PoolItem & pi_r, ResStatus::TransactByValue causer_r = ResStatus::USER, bool yesno_r = true ); /** Deselect a specific available item from installation. */ bool pickNoInstall( const PoolItem & pi_r, ResStatus::TransactByValue causer_r = ResStatus::USER ) { return pickInstall( pi_r, causer_r, false ); } /** Select a specific installed item for deletion. */ bool pickDelete( const PoolItem & pi_r, ResStatus::TransactByValue causer_r = ResStatus::USER, bool yesno_r = true ); /** Deselect a specific installed item from deletion. */ bool pickNoDelete( const PoolItem & pi_r, ResStatus::TransactByValue causer_r = ResStatus::USER ) { return pickDelete( pi_r, causer_r, false ); } /** Compute the \ref ui::Status for an individual PoolItem. * This just takes into account the item and any identical * installed (or available) one. * \code * Assume there are 3 identical 'foo-1.1 (vendor A)' items, * one 'foo-2.1 (vendor A)' and one ''foo-1.1 (vendor B)': * * installed: . foo-1.1 (vendor A) -> S_KeepInstalled * available: foo-2.1 (vendor A) (repo 1) -> S_NoInst * . foo-1.1 (vendor A) (repo 1) -> S_KeepInstalled * . foo-1.1 (vendor A) (repo 2) -> S_KeepInstalled * foo-1.1 (vendor B) (repo 3) -> S_NoInst * * After 'foo-1.1 (vendor A) (repo 1)' was selected to be installed: * * installed: . foo-1.1 (vendor A) -> S_Update * available: foo-2.1 (vendor A) (repo 1) -> S_NoInst * I foo-1.1 (vendor A) (repo 1) -> S_Update * . foo-1.1 (vendor A) (repo 2) -> S_KeepInstalled * foo-1.1 (vendor B) (repo 3) -> S_NoInst * \endcode * \see \ref sat::Solvable::identical */ Status pickStatus( const PoolItem & pi_r ) const; /** Assign a new status to a specific item. */ bool setPickStatus( const PoolItem & pi_r, Status state_r, ResStatus::TransactByValue causer_r = ResStatus::USER ); //@} /** \name Classification of available patches (pseudo installed items). * A patch is either \c not \c relevant, \c satisfied or \c broken. * The same applies to other pseudo installed kinds. * \see \ref traits::isPseudoInstalled */ //@{ /** Returns true for packages, because packages are not * classified by the solver. */ bool isUndetermined() const; /** Returns true if the patch is relevant which means that at least * one package of the patch is installed. */ bool isRelevant() const; /** Whether a relevant patchs requirements are met. */ bool isSatisfied() const; /** Whether a relevant patchs requirements are broken. */ bool isBroken() const; /** This includes \c unlocked broken patches, as well as those already * selected to be installed. This is because already selected * patches will be classified as \c satisfied. \c Locked but broken * patches will be classified as \ref isUnwanted. */ bool isNeeded() const; /** Broken (needed) but locked patches. */ bool isUnwanted() const; //@} public: /** \name Query and maip objects fate in case of commit. */ //@{ enum Fate { TO_DELETE = -1, UNMODIFIED = 0, TO_INSTALL = 1 }; /** */ Fate fate() const; /** True if neither to delete or to install */ bool unmodified() const { return fate() == UNMODIFIED; } /** True if locked (subclass of unmodified). */ bool locked() const { Status st( status() ); return( st == S_Protected || st == S_Taboo ); } /** True if either to delete or to install */ bool toModify() const { return fate() != UNMODIFIED; } /** True if to delete */ bool toDelete() const { return fate() == TO_DELETE; } /** True if to install */ bool toInstall() const { return fate() == TO_INSTALL; } /** True if would be on system after commit. */ bool onSystem() const { return( ( hasInstalledObj() && !toDelete() ) ||( hasCandidateObj() && toInstall() ) ); } /** True if would be off system after commit. */ bool offSystem() const { return ! onSystem(); } /** */ bool setFate( Fate fate_r, ResStatus::TransactByValue causer_r = ResStatus::USER ); /** Set the item to be installed (new- or re-install). */ bool setToInstall( ResStatus::TransactByValue causer_r = ResStatus::USER ) { return setFate( TO_INSTALL, causer_r ); } /** Take care the item gets installed if it is not. */ bool setInstalled( ResStatus::TransactByValue causer_r = ResStatus::USER ); /** Take care the item gets installed if it is not, or is older. */ bool setUpToDate( ResStatus::TransactByValue causer_r = ResStatus::USER ); /** Set the item to be deleted (must be installed). */ bool setToDelete( ResStatus::TransactByValue causer_r = ResStatus::USER ) { return setFate( TO_DELETE, causer_r ); } /** Take care the item gets deleted if it is installed. */ bool setDeleted( ResStatus::TransactByValue causer_r = ResStatus::USER ); /** Set the item to stay unmodified. */ bool unset( ResStatus::TransactByValue causer_r = ResStatus::USER ) { return setFate( UNMODIFIED, causer_r ); } //@} public: /** * \name Special inteface for Y2UI. * \note This interface acts on \ref ResStatus::USER level. * The \ref Status enum, and allowed state transitions are * tightly related to the Y2UI. */ //@{ /** Return the current Status */ Status status() const; /** * Try to set a new Status. * Returns \c false if the transitions is not allowed. */ bool setStatus( Status state_r, ResStatus::TransactByValue causer_r = ResStatus::USER ); /** Return who caused the modification. */ ResStatus::TransactByValue modifiedBy() const; /** Return value of LicenceConfirmed bit. */ bool hasLicenceConfirmed() const; /** Set LicenceConfirmed bit. */ void setLicenceConfirmed( bool val_r = true ); //@} public: /** Implementation */ class Impl; typedef shared_ptr Impl_Ptr; /** Default ctor */ Selectable( Impl_Ptr pimpl_r ); private: /** Dtor */ ~Selectable(); private: /** Pointer to implementation */ RW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates Selectable Stream output */ std::ostream & operator<<( std::ostream & str, const Selectable & obj ); /** \relates Selectable More verbose stream output */ std::ostream & dumpOn( std::ostream & str, const Selectable & obj ); /** Solvable to Selectable transform functor. * \relates Selectable * \relates sat::SolvIterMixin */ struct asSelectable { typedef Selectable_Ptr result_type; Selectable_Ptr operator()( const sat::Solvable & solv_r ) const; Selectable_Ptr operator()( const PoolItem & pi_r ) const { return operator()( pi_r.satSolvable() ); } }; ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_UI_SELECTABLE_H libzypp-17.7.0/zypp/ui/SelectableImpl.cc000066400000000000000000000522751334444677500201460ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/SelectableImpl.cc * */ #include //#include "zypp/base/Logger.h" #include "zypp/ui/SelectableImpl.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// /** Simple ResStatus backup stack. * \ref restore simply rewinds all remembered status. */ class StatusBackup { public: typedef ResStatus::TransactByValue Causer; public: /** Backup status. */ ResStatus & backup( ResStatus & status_r ) { _backup.push_back( status_r ); return status_r; } /** \overload */ ResStatus & backup( const PoolItem & pi_r ) { return backup( pi_r.status() ); } /** Backup status. */ ResStatus & operator()( ResStatus & status_r ) { return backup( status_r ); } /** \overload */ ResStatus & operator()( const PoolItem & pi_r ) { return backup( pi_r.status() ); } /** Restore all status. */ bool restore() { for_( rit, _backup.rbegin(), _backup.rend() ) rit->replay(); return false; // restore is done on error - return restore(); } public: /** lowlevel \c ResStatus::setTransact */ bool setTransact( const PoolItem & pi_r, bool yesno_r, Causer causer_r ) { return backup( pi_r ).setTransact( yesno_r, causer_r ); } /** lowlevel \c ResStatus::setLock */ bool setLock( const PoolItem & pi_r, bool yesno_r, Causer causer_r ) { return backup( pi_r ).setLock( yesno_r, causer_r ); } /** lowlevel \c ResStatus::setTransact(true). */ bool setTransactTrue( const PoolItem & pi_r, Causer causer_r ) { return setTransact( pi_r, true, causer_r ); } /** lowlevel \c ResStatus::setTransact(false). */ bool setTransactFalse( const PoolItem & pi_r, Causer causer_r ) { return setTransact( pi_r, false, causer_r ); } public: /** highevel set transact (force unlock). */ bool transact( const PoolItem & pi_r, Causer causer_r ) { ResStatus & status( backup( pi_r ) ); if ( ! status.setLock( false, causer_r ) ) return false; if ( ! status.setTransact( true, causer_r ) ) return false; return true; } /** highlevel set locked. */ bool lock( const PoolItem & pi_r, Causer causer_r ) { ResStatus & status( backup( pi_r ) ); if ( ! status.setTransact( false, causer_r ) ) return false; if ( ! status.setLock( true, causer_r ) ) return false; return true; } /** highlevel unlock (also unsets transact). */ bool unlock( const PoolItem & pi_r, Causer causer_r ) { ResStatus & status( backup( pi_r ) ); if ( ! status.setTransact( false, causer_r ) ) return false; if ( ! status.setLock( false, causer_r ) ) return false; return true; } /** highlevel remove transact from non-multiversion packages. */ bool unsetNonMultiTransact( const PoolItem & pi_r, Causer causer_r ) { ResStatus & status( backup( pi_r ) ); if ( status.transacts() && ! pi_r.multiversionInstall() ) { if ( ! status.setTransact( false, causer_r ) ) return false; } return true; } /** highlevel remove transact from multiversion packages. */ bool unsetMultiTransact( const PoolItem & pi_r, Causer causer_r ) { ResStatus & status( backup( pi_r ) ); if ( status.transacts() && pi_r.multiversionInstall() ) { if ( ! status.setTransact( false, causer_r ) ) return false; } return true; } /** Highlevel action. */ typedef bool (StatusBackup::*Action)( const PoolItem &, Causer ); /** Highlevel action on range of items. */ template bool forEach( TIter begin_r, TIter end_r, Action action_r, Causer causer_r ) { for_( it, begin_r, end_r ) if ( ! (this->*action_r)( *it, causer_r ) ) return false; return true; } private: std::vector _backup; }; /////////////////////////////////////////////////////////////////// // // CLASS NAME : StatusHelper // /** \todo Unify status and pickStatus. */ struct StatusHelper { StatusHelper( const Selectable::Impl & impl, ResStatus::TransactByValue causer_r ) : _impl( impl ) , inst( impl.installedObj() ) , cand( impl.candidateObj() ) , causer( causer_r ) {} typedef Selectable::Impl::available_const_iterator available_const_iterator; // // Queries // bool hasInstalled() const { return bool(inst); } bool hasCandidate() const { return bool(cand); } bool hasInstalledOnly() const { return inst && !cand; } bool hasCandidateOnly() const { return cand && !inst; } bool hasBoth() const { return inst && cand; } /** \name Topevel methods must restore status on failure. */ //@{ bool setInstall() { if ( cand ) { if ( inst ) { for_( it, _impl.installedBegin(), _impl.installedEnd() ) { ResStatus & inststatus( backup( it->status() ) ); if ( ! inststatus.setTransact( false, causer ) ) return restore(); if ( ! inststatus.setLock ( false, causer ) ) return restore(); if ( ! cand->multiversionInstall() ) { // This is what the solver most probabely will do. // If we are wrong the solver will correct it. But // this way we will get a better disk usage result, // even if no autosolving is on. inststatus.setTransact( true, ResStatus::SOLVER ); } } } if ( ! unlockCandidates() ) return restore(); ResStatus & candstatus( backup( cand.status() ) ); if ( ! candstatus.setTransact( true, causer ) ) return restore(); return true; } return false; } bool setDelete() { if ( inst ) { if ( ! resetTransactingCandidates() ) return restore(); for_( it, _impl.installedBegin(), _impl.installedEnd() ) { ResStatus & inststatus( backup( it->status() ) ); if ( ! inststatus.setLock( false, causer ) ) return restore(); if ( ! inststatus.setTransact( true, causer ) ) return restore(); } return true; } return false; } bool unset() { if ( inst ) { for_( it, _impl.installedBegin(), _impl.installedEnd() ) { ResStatus & inststatus( backup( it->status() ) ); if ( ! inststatus.setTransact( false, causer ) ) return restore(); if ( ! inststatus.setLock( false, causer ) ) return restore(); } } if ( ! unlockCandidates() ) return restore(); return true; } bool setProtected() { if ( causer != ResStatus::USER ) // by user only return false; if ( inst ) { resetTransactingCandidates(); for_( it, _impl.installedBegin(), _impl.installedEnd() ) { it->status().setTransact( false, causer ); it->status().setLock( true, causer ); } return true; } else return false; } bool setTaboo() { if ( causer != ResStatus::USER ) // by user only return false; if ( cand ) { lockCandidates(); return true; } else return false; } //@} private: /** \name Helper methods backup status but do not replay. */ //@{ bool resetTransactingCandidates() { for_( it, _impl.availableBegin(), _impl.availableEnd() ) { ResStatus & status( backup( (*it).status() ) ); if ( ! status.setTransact( false, causer ) ) return false; } return true; } bool unlockCandidates() { for_( it, _impl.availableBegin(), _impl.availableEnd() ) { ResStatus & status( backup( (*it).status() ) ); if ( ! status.setTransact( false, causer ) ) return false; if ( ! status.setLock( false, causer ) ) return false; } return true; } bool lockCandidates() { for_( it, _impl.availableBegin(), _impl.availableEnd() ) { ResStatus & status( backup( (*it).status() ) ); if ( ! status.setTransact( false, causer ) ) return false; if ( ! status.setLock( true, causer ) ) return false; } return true; } //@} private: const Selectable::Impl & _impl; PoolItem inst; PoolItem cand; ResStatus::TransactByValue causer; private: bool restore() { return backup.restore(); } StatusBackup backup; }; /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Selectable::Impl // /////////////////////////////////////////////////////////////////// Status Selectable::Impl::status() const { PoolItem cand( candidateObj() ); if ( cand && cand.status().transacts() ) { if ( cand.status().isByUser() ) return( installedObj() ? S_Update : S_Install ); else return( installedObj() ? S_AutoUpdate : S_AutoInstall ); } if ( installedObj() && installedObj().status().transacts() ) { return( installedObj().status().isByUser() ? S_Del : S_AutoDel ); } if ( installedObj() && allInstalledLocked() ) return S_Protected; if ( !installedObj() && allCandidatesLocked() ) return S_Taboo; // KEEP state: if ( installedObj() ) return S_KeepInstalled; // Report pseudo installed items as installed, if they are satisfied. if ( traits::isPseudoInstalled( kind() ) && cand.status().isSatisfied() ) // no installed, so we must have candidate return S_KeepInstalled; return S_NoInst; } bool Selectable::Impl::setStatus( Status state_r, ResStatus::TransactByValue causer_r ) { StatusHelper self( *this, causer_r ); switch ( state_r ) { case S_Protected: return self.setProtected(); case S_Taboo: return self.setTaboo(); case S_AutoDel: case S_AutoInstall: case S_AutoUpdate: // Auto level is SOLVER level. UI may query, but not // set at this level. break; case S_Del: return self.setDelete(); break; case S_Install: return self.hasCandidateOnly() && self.setInstall(); break; case S_Update: return self.hasBoth() && self.setInstall(); break; case S_KeepInstalled: return self.hasInstalled() && self.unset(); break; case S_NoInst: return !self.hasInstalled() && self.unset(); break; } return false; } PoolItem Selectable::Impl::setCandidate( const PoolItem & newCandidate_r, ResStatus::TransactByValue causer_r ) { PoolItem newCandidate; if ( newCandidate_r ) // must be in available list { for_( it, availableBegin(), availableEnd() ) { if ( *it == newCandidate_r ) { newCandidate = *it; break; } } } if ( newCandidate ) { PoolItem trans( transactingCandidate() ); if ( trans && trans != newCandidate ) { // adjust transact to the new cancidate if ( trans.status().maySetTransact( false, causer_r ) && newCandidate.status().maySetTransact( true, causer_r ) ) { trans.status().setTransact( false, causer_r ); newCandidate.status().setTransact( true, causer_r ); } else { // No permission to change a transacting candidate. // Leave _candidate untouched and return NULL. return PoolItem(); } } } return _candidate = newCandidate; } /////////////////////////////////////////////////////////////////// bool Selectable::Impl::pickInstall( const PoolItem & pi_r, ResStatus::TransactByValue causer_r, bool yesno_r ) { if ( identicalInstalled( pi_r ) ) return setPickStatus( pi_r, ( yesno_r ? S_Update : S_KeepInstalled ), causer_r ); return setPickStatus( pi_r, ( yesno_r ? S_Install : S_NoInst ), causer_r ); } bool Selectable::Impl::pickDelete( const PoolItem & pi_r, ResStatus::TransactByValue causer_r, bool yesno_r ) { return setPickStatus( pi_r, ( yesno_r ? S_Del : S_KeepInstalled ), causer_r ); } bool Selectable::Impl::setPickStatus( const PoolItem & pi_r, Status state_r, ResStatus::TransactByValue causer_r ) { if ( pi_r.ident() != ident() ) return false; // not my PoolItem StatusBackup backup; std::vector i; std::vector a; for_( it, installedBegin(), installedEnd() ) if ( identical( *it, pi_r ) ) i.push_back( *it ); for_( it, availableBegin(), availableEnd() ) if ( identical( *it, pi_r ) ) a.push_back( *it ); switch ( state_r ) { case S_Protected: if ( causer_r == ResStatus::USER && ! i.empty() ) { if ( ! backup.forEach( i.begin(), i.end(), &StatusBackup::lock, causer_r ) ) return backup.restore(); if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::setTransactFalse, causer_r ) ) return backup.restore(); return true; } break; case S_Taboo: if ( causer_r == ResStatus::USER && ! a.empty() ) { if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::lock, causer_r ) ) return backup.restore(); return true; } break; case S_AutoDel: case S_AutoInstall: case S_AutoUpdate: // Auto level is SOLVER level. UI may query, but not // set at this level. break; case S_Del: if ( ! i.empty() ) { if ( ! backup.forEach( i.begin(), i.end(), &StatusBackup::transact, causer_r ) ) return backup.restore(); if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::setTransactFalse, causer_r ) ) return backup.restore(); return true; } break; case S_Install: if ( i.empty() && ! a.empty() ) { const PoolItem & cand( pi_r.status().isInstalled() ? *a.begin() : pi_r ); if ( cand.multiversionInstall() ) { if ( ! backup.forEach( availableBegin(), availableEnd(), &StatusBackup::unsetNonMultiTransact, causer_r ) ) return backup.restore(); // maybe unlock candidate only? if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::unlock, causer_r ) ) return backup.restore(); if ( ! cand.status().setTransact( true, causer_r ) ) return backup.restore(); return true; } else { // For non-multiversion use ordinary setStatus // NOTE that S_Update/S_Install here depends on !installedEmpty() // and not on picklists identicalInstalled. if ( ! backup.forEach( availableBegin(), availableEnd(), &StatusBackup::unsetMultiTransact, causer_r ) ) return backup.restore(); if ( ! setCandidate( cand, causer_r ) ) return backup.restore(); if ( ! setStatus( installedEmpty() ? S_Install : S_Update, causer_r ) ) return backup.restore(); return true; } } break; case S_Update: if ( ! i.empty() && ! a.empty() ) { const PoolItem & cand( pi_r.status().isInstalled() ? *a.begin() : pi_r ); if ( cand.multiversionInstall() ) { if ( ! backup.forEach( i.begin(), i.end(), &StatusBackup::unlock, causer_r ) ) return backup.restore(); if ( ! backup.forEach( i.begin(), i.end(), &StatusBackup::setTransactTrue, ResStatus::SOLVER ) ) return backup.restore(); if ( ! backup.forEach( availableBegin(), availableEnd(), &StatusBackup::unsetNonMultiTransact, causer_r ) ) return backup.restore(); // maybe unlock candidate only? if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::unlock, causer_r ) ) return backup.restore(); if ( ! cand.status().setTransact( true, causer_r ) ) return backup.restore(); return true; } else { // For non-multiversion use ordinary setStatus // NOTE that S_Update/S_Install here depends on !installedEmpty() // and not on picklists identicalInstalled. if ( ! backup.forEach( availableBegin(), availableEnd(), &StatusBackup::unsetMultiTransact, causer_r ) ) return backup.restore(); if ( ! setCandidate( cand, causer_r ) ) return backup.restore(); if ( ! setStatus( installedEmpty() ? S_Install : S_Update, causer_r ) ) return backup.restore(); return true; } } break; case S_KeepInstalled: if ( ! i.empty() ) { if ( ! backup.forEach( i.begin(), i.end(), &StatusBackup::unlock, causer_r ) ) return backup.restore(); if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::unlock, causer_r ) ) return backup.restore(); return true; } break; case S_NoInst: if ( i.empty() ) { if ( ! backup.forEach( a.begin(), a.end(), &StatusBackup::unlock, causer_r ) ) return backup.restore(); return true; } break; } return false; } Status Selectable::Impl::pickStatus( const PoolItem & pi_r ) const { if ( pi_r.satSolvable().ident() != ident() ) return Status(-1); // not my PoolItem std::vector i; std::vector a; PoolItem ti; PoolItem ta; for_( it, installedBegin(), installedEnd() ) if ( identical( *it, pi_r ) ) { i.push_back( *it ); if ( ! ti && it->status().transacts() ) ti = *it; } for_( it, availableBegin(), availableEnd() ) if ( identical( *it, pi_r ) ) { a.push_back( *it ); if ( ! ta && it->status().transacts() ) ta = *it; } if ( ta ) { if ( ta.status().isByUser() ) return( i.empty() ? S_Install : S_Update ); else return( i.empty() ? S_AutoInstall : S_AutoUpdate ); } if ( ti ) { return( ti.status().isByUser() ? S_Del : S_AutoDel ); } for_( it, i.begin(), i.end() ) if ( it->status().isLocked() ) return S_Protected; if ( i.empty() ) { bool allALocked = true; for_( it, a.begin(), a.end() ) if ( ! it->status().isLocked() ) { allALocked = false; break; } if ( allALocked ) return S_Taboo; } // KEEP state: if ( ! i.empty() ) return S_KeepInstalled; // Report pseudo installed items as installed, if they are satisfied. if ( traits::isPseudoInstalled( kind() ) && ( ta ? ta : *a.begin() ).status().isSatisfied() ) // no installed, so we must have candidate return S_KeepInstalled; return S_NoInst; } /////////////////////////////////////////////////////////////////// ResStatus::TransactByValue Selectable::Impl::modifiedBy() const { PoolItem cand( candidateObj() ); if ( cand && cand.status().transacts() ) return cand.status().getTransactByValue(); if ( installedObj() && installedObj().status().transacts() ) return installedObj().status().getTransactByValue(); if ( cand ) return cand.status().getTransactByValue(); if ( installedObj() ) return installedObj().status().getTransactByValue(); return ResStatus::SOLVER; } ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ui/SelectableImpl.h000066400000000000000000000413121334444677500177760ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/SelectableImpl.h * */ #ifndef ZYPP_UI_SELECTABLEIMPL_H #define ZYPP_UI_SELECTABLEIMPL_H #include #include "zypp/base/LogTools.h" #include "zypp/base/PtrTypes.h" #include "zypp/ResPool.h" #include "zypp/Resolver.h" #include "zypp/ui/Selectable.h" #include "zypp/ui/SelectableTraits.h" using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : Selectable::Impl // /** Selectable implementation. * \note Implementation is based in PoolItem, just the Selectable * inteface restricts them to ResObject::constPtr. */ struct Selectable::Impl { public: typedef SelectableTraits::AvailableItemSet AvailableItemSet; typedef SelectableTraits::available_iterator available_iterator; typedef SelectableTraits::available_const_iterator available_const_iterator; typedef SelectableTraits::available_size_type available_size_type; typedef SelectableTraits::InstalledItemSet InstalledItemSet; typedef SelectableTraits::installed_iterator installed_iterator; typedef SelectableTraits::installed_const_iterator installed_const_iterator; typedef SelectableTraits::installed_size_type installed_size_type; typedef SelectableTraits::PickList PickList; public: template Impl( const ResKind & kind_r, const std::string & name_r, TIterator begin_r, TIterator end_r ) : _ident( sat::Solvable::SplitIdent( kind_r, name_r ).ident() ) , _kind( kind_r ) , _name( name_r ) { for_( it, begin_r, end_r ) { if ( it->status().isInstalled() ) _installedItems.insert( *it ); else _availableItems.insert( *it ); } } public: /** */ IdString ident() const { return _ident; } /** */ ResKind kind() const { return _kind; } /** */ const std::string & name() const { return _name; } /** */ Status status() const; /** */ bool setStatus( Status state_r, ResStatus::TransactByValue causer_r ); /** Installed object (transacting ot highest version). */ PoolItem installedObj() const { if ( installedEmpty() ) return PoolItem(); PoolItem ret( transactingInstalled() ); return ret ? ret : *_installedItems.begin(); } /** Best among available objects. * The transacting candidate or the one scheduled to receive * the transact bit. */ PoolItem candidateObj() const { PoolItem ret( transactingCandidate() ); if ( ret ) return ret; return _candidate ? _candidate : defaultCandidate(); } /** Set a userCandidate (out of available objects). * \return The new userCandidate or NULL if choice was invalid * (not among availableObjs). */ PoolItem setCandidate( const PoolItem & newCandidate_r, ResStatus::TransactByValue causer_r ); /** The best candidate provided by a specific \ref Repository, if there is one. * In contrary to \ref candidateObj, this may return no item even if * there are available objects. This simply means the \ref Repository * does not provide this object. */ PoolItem candidateObjFrom( Repository repo_r ) const { for ( const PoolItem & pi : available() ) { if ( pi.repository() == repo_r ) return pi; } return PoolItem(); } /** The best candidate for update, if there is one. * In contrary to \ref candidateObj, this may return no item even if * there are available objects. This simply means the best object is * already installed, and all available objects violate at least one * update policy. */ PoolItem updateCandidateObj() const { PoolItem defaultCand( defaultCandidate() ); // multiversionInstall: This returns the candidate for the last // instance installed. Actually we'd need a list here. if ( installedEmpty() || ! defaultCand ) return defaultCand; // Here: installed and defaultCand are non NULL and it's not a // multiversion install. PoolItem installed( installedObj() ); // check vendor change if ( ! ( ResPool::instance().resolver().allowVendorChange() || VendorAttr::instance().equivalent( defaultCand->vendor(), installed->vendor() ) ) ) return PoolItem(); // check arch change (arch noarch changes are allowed) if ( defaultCand->arch() != installed->arch() && ! ( defaultCand->arch() == Arch_noarch || installed->arch() == Arch_noarch ) ) return PoolItem(); // check greater edition if ( defaultCand->edition() <= installed->edition() ) return PoolItem(); return defaultCand; } /** \copydoc Selectable::highestAvailableVersionObj()const */ PoolItem highestAvailableVersionObj() const { PoolItem ret; for ( const PoolItem & pi : available() ) { if ( !ret || pi.edition() > ret.edition() ) ret = pi; } return ret; } /** \copydoc Selectable::identIsAutoInstalled()const */ bool identIsAutoInstalled() const { return sat::Solvable::identIsAutoInstalled( ident() ); } /** \copydoc Selectable::identicalAvailable( const PoolItem & )const */ bool identicalAvailable( const PoolItem & rhs ) const { return bool(identicalAvailableObj( rhs )); } /** \copydoc Selectable::identicalInstalled( const PoolItem & )const */ bool identicalInstalled( const PoolItem & rhs ) const { return bool(identicalInstalledObj( rhs )); } /** \copydoc Selectable::identicalAvailableObj( const PoolItem & rhs ) const */ PoolItem identicalAvailableObj( const PoolItem & rhs ) const { if ( !availableEmpty() && rhs ) { for_( it, _availableItems.begin(), _availableItems.end() ) { if ( identical( *it, rhs ) ) return *it; } } return PoolItem(); } /** \copydoc Selectable::identicalInstalledObj( const PoolItem & rhs ) const */ PoolItem identicalInstalledObj( const PoolItem & rhs ) const { if ( !installedEmpty() && rhs ) { for_( it, _installedItems.begin(), _installedItems.end() ) { if ( identical( *it, rhs ) ) return *it; } } return PoolItem(); } /** Best among all objects. */ PoolItem theObj() const { PoolItem ret( candidateObj() ); if ( ret ) return ret; return installedObj(); } //////////////////////////////////////////////////////////////////////// bool availableEmpty() const { return _availableItems.empty(); } available_size_type availableSize() const { return _availableItems.size(); } available_iterator availableBegin() const { return _availableItems.begin(); } available_iterator availableEnd() const { return _availableItems.end(); } inline Iterable available() const { return makeIterable( availableBegin(), availableEnd() ); } //////////////////////////////////////////////////////////////////////// bool installedEmpty() const { return _installedItems.empty(); } installed_size_type installedSize() const { return _installedItems.size(); } installed_iterator installedBegin() const { return _installedItems.begin(); } installed_iterator installedEnd() const { return _installedItems.end(); } inline Iterable installed() const { return makeIterable( installedBegin(), installedEnd() ); } //////////////////////////////////////////////////////////////////////// const PickList & picklist() const { if ( ! _picklistPtr ) { _picklistPtr.reset( new PickList ); // installed without identical avaialble first: for ( const PoolItem & pi : installed() ) { if ( ! identicalAvailable( pi ) ) _picklistPtr->push_back( pi ); } _picklistPtr->insert( _picklistPtr->end(), availableBegin(), availableEnd() ); } return *_picklistPtr; } bool picklistEmpty() const { return picklist().empty(); } picklist_size_type picklistSize() const { return picklist().size(); } picklist_iterator picklistBegin() const { return picklist().begin(); } picklist_iterator picklistEnd() const { return picklist().end(); } //////////////////////////////////////////////////////////////////////// bool isUnmaintained() const { return availableEmpty(); } bool multiversionInstall() const { for ( const PoolItem & pi : picklist() ) { if ( pi.multiversionInstall() ) return true; } return false; } bool pickInstall( const PoolItem & pi_r, ResStatus::TransactByValue causer_r, bool yesno_r ); bool pickDelete( const PoolItem & pi_r, ResStatus::TransactByValue causer_r, bool yesno_r ); Status pickStatus( const PoolItem & pi_r ) const; bool setPickStatus( const PoolItem & pi_r, Status state_r, ResStatus::TransactByValue causer_r ); //////////////////////////////////////////////////////////////////////// bool isUndetermined() const { PoolItem cand( candidateObj() ); return ! cand || cand.isUndetermined(); } bool isRelevant() const { PoolItem cand( candidateObj() ); return cand && cand.isRelevant(); } bool isSatisfied() const { PoolItem cand( candidateObj() ); return cand && cand.isSatisfied(); } bool isBroken() const { PoolItem cand( candidateObj() ); return cand && cand.isBroken(); } /** Return who caused the modification. */ ResStatus::TransactByValue modifiedBy() const; /** Return value of LicenceConfirmed bit. */ bool hasLicenceConfirmed() const { return candidateObj() && candidateObj().status().isLicenceConfirmed(); } /** Set LicenceConfirmed bit. */ void setLicenceConfirmed( bool val_r ) { if ( candidateObj() ) candidateObj().status().setLicenceConfirmed( val_r ); } private: PoolItem transactingInstalled() const { for ( const PoolItem & pi : installed() ) { if ( pi.status().transacts() ) return pi; } return PoolItem(); } PoolItem transactingCandidate() const { for ( const PoolItem & pi : available() ) { if ( pi.status().transacts() ) return pi; } return PoolItem(); } PoolItem defaultCandidate() const { if ( ! installedEmpty() ) { // prefer the installed objects arch and vendor bool solver_allowVendorChange( ResPool::instance().resolver().allowVendorChange() ); for ( const PoolItem & ipi : installed() ) { PoolItem sameArch; // in case there's no same vendor at least stay with same arch. for ( const PoolItem & api : available() ) { // 'same arch' includes allowed changes to/from noarch. if ( ipi.arch() == api.arch() || ipi.arch() == Arch_noarch || api.arch() == Arch_noarch ) { if ( ! solver_allowVendorChange ) { if ( VendorAttr::instance().equivalent( ipi, api ) ) return api; else if ( ! sameArch ) // remember best same arch in case no same vendor found sameArch = api; } else // same arch is sufficient return api; } } if ( sameArch ) return sameArch; } } if ( _availableItems.empty() ) return PoolItem(); return *_availableItems.begin(); } bool allCandidatesLocked() const { for ( const PoolItem & pi : available() ) { if ( ! pi.status().isLocked() ) return false; } return( ! _availableItems.empty() ); } bool allInstalledLocked() const { for ( const PoolItem & pi : installed() ) { if ( ! pi.status().isLocked() ) return false; } return( ! _installedItems.empty() ); } private: const IdString _ident; const ResKind _kind; const std::string _name; InstalledItemSet _installedItems; AvailableItemSet _availableItems; //! The object selected by setCandidateObj() method. PoolItem _candidate; //! lazy initialized picklist mutable scoped_ptr _picklistPtr; }; /////////////////////////////////////////////////////////////////// /** \relates Selectable::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const Selectable::Impl & obj ) { return str << '[' << obj.kind() << ']' << obj.name() << ": " << obj.status() << " (I " << obj.installedSize() << ")" << " (A " << obj.availableSize() << ")" << obj.candidateObj(); } /** \relates Selectable::Impl Stream output */ inline std::ostream & dumpOn( std::ostream & str, const Selectable::Impl & obj ) { str << '[' << obj.kind() << ']' << obj.name() << ": " << obj.status() << ( obj.multiversionInstall() ? " (multiversion)" : "") << endl; if ( obj.installedEmpty() ) str << " (I 0) {}" << endl << " "; else { PoolItem icand( obj.installedObj() ); str << " (I " << obj.installedSize() << ") {" << endl; for ( const PoolItem & pi : obj.installed() ) { char t = ' '; if ( pi == icand ) { t = 'i'; } str << " " << t << " " << pi << endl; } str << "} "; } if ( obj.availableEmpty() ) { str << "(A 0) {}" << endl << " "; } else { PoolItem cand( obj.candidateObj() ); PoolItem up( obj.updateCandidateObj() ); str << "(A " << obj.availableSize() << ") {" << endl; for ( const PoolItem & pi : obj.available() ) { char t = ' '; if ( pi == cand ) { t = pi == up ? 'C' : 'c'; } else if ( pi == up ) { t = 'u'; } str << " " << t << " " << pi << endl; } str << "} "; } if ( obj.picklistEmpty() ) { str << "(P 0) {}"; } else { PoolItem cand( obj.candidateObj() ); PoolItem up( obj.updateCandidateObj() ); str << "(P " << obj.picklistSize() << ") {" << endl; for ( const PoolItem & pi : obj.picklist() ) { char t = ' '; if ( pi == cand ) { t = pi == up ? 'C' : 'c'; } else if ( pi == up ) { t = 'u'; } str << " " << t << " " << pi << "\t" << obj.pickStatus( pi ) << endl; } str << "} "; } return str; } ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_UI_SELECTABLEIMPL_H libzypp-17.7.0/zypp/ui/SelectableTraits.h000066400000000000000000000121631334444677500203450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/SelectableTraits.h * */ #ifndef ZYPP_UI_SELECTABLETRAITS_H #define ZYPP_UI_SELECTABLETRAITS_H #include #include #include "zypp/base/Iterator.h" #include "zypp/PoolItem.h" #include "zypp/pool/ByIdent.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : SelectableTraits // /** */ struct SelectableTraits { /** Oder on AvailableItemSet. * \li repository priority * \li best Arch (arch/noarch changes are ok) * \li best Edition * \li newer buildtime * \li ResObject::constPtr as fallback. */ struct AVOrder : public std::binary_function { // NOTE: operator() provides LESS semantics to order the set. // So LESS means 'prior in set'. We want 'better' archs and // 'better' editions at the beginning of the set. So we return // TRUE if (lhs > rhs)! // bool operator()( const PoolItem & lhs, const PoolItem & rhs ) const { int lprio = lhs->satSolvable().repository().satInternalPriority(); int rprio = rhs->satSolvable().repository().satInternalPriority(); if ( lprio != rprio ) return( lprio > rprio ); // arch/noarch changes are ok. if ( lhs->arch() != Arch_noarch && rhs->arch() != Arch_noarch ) { int res = lhs->arch().compare( rhs->arch() ); if ( res ) return res > 0; } int res = lhs->edition().compare( rhs->edition() ); if ( res ) return res > 0; lprio = lhs->buildtime(); rprio = rhs->buildtime(); if ( lprio != rprio ) return( lprio > rprio ); lprio = lhs->satSolvable().repository().satInternalSubPriority(); rprio = rhs->satSolvable().repository().satInternalSubPriority(); if ( lprio != rprio ) return( lprio > rprio ); // no more criteria, still equal: sort by id return lhs.satSolvable().id() < rhs.satSolvable().id(); } }; /** Oder on InstalledItemSet. * \li best Arch * \li best Edition * \li newer install time * \li ResObject::constPtr as fallback. */ struct IOrder : public std::binary_function { // NOTE: operator() provides LESS semantics to order the set. // So LESS means 'prior in set'. We want 'newer' install time // at the beginning of the set. // bool operator()( const PoolItem & lhs, const PoolItem & rhs ) const { int res = lhs->arch().compare( rhs->arch() ); if ( res ) return res > 0; res = lhs->edition().compare( rhs->edition() ); if ( res ) return res > 0; Date ldate = lhs->installtime(); Date rdate = rhs->installtime(); if ( ldate != rdate ) return( ldate > rdate ); // no more criteria, still equal: sort by id return lhs.satSolvable().id() < rhs.satSolvable().id(); } }; typedef std::set AvailableItemSet; typedef AvailableItemSet::iterator available_iterator; typedef AvailableItemSet::const_iterator available_const_iterator; typedef AvailableItemSet::size_type available_size_type; typedef std::set InstalledItemSet; typedef AvailableItemSet::iterator installed_iterator; typedef AvailableItemSet::const_iterator installed_const_iterator; typedef AvailableItemSet::size_type installed_size_type; typedef std::vector PickList; typedef PickList::const_iterator picklist_iterator; typedef PickList::size_type picklist_size_type; }; /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_UI_SELECTABLETRAITS_H libzypp-17.7.0/zypp/ui/Status.cc000066400000000000000000000037751334444677500165450ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/Status.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/ui/Status.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// /****************************************************************** ** ** FUNCTION NAME : asString ** FUNCTION TYPE : std::string */ std::string asString( const Status & obj ) { switch ( obj ) { #define ENUM_OUT(V) case V: return #V; break ENUM_OUT( S_Protected ); ENUM_OUT( S_Taboo ); ENUM_OUT( S_Del ); ENUM_OUT( S_Install ); ENUM_OUT( S_Update ); ENUM_OUT( S_AutoDel ); ENUM_OUT( S_AutoInstall ); ENUM_OUT( S_AutoUpdate ); ENUM_OUT( S_NoInst ); ENUM_OUT( S_KeepInstalled ); #undef ENUM_OUT } INT << "Unknown ui::Status " << (unsigned)obj << std::endl; return "Status(UNKNOWN)"; } ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ui/Status.h000066400000000000000000000057721334444677500164060ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/ui/Status.h * */ #ifndef ZYPP_UI_STATUS_H #define ZYPP_UI_STATUS_H #include #include /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace ui { ///////////////////////////////////////////////////////////////// /** UI status * Status values calculated by \ref Selectable. * \note The \ref Status enum, and it's use within \ref Selectabe * is tightly related to the Y2UI. It might be not verry usefull * outside the Y2UI. * * \todo make it an EnumerationClass */ enum Status { S_Protected, // Keep this unmodified ( have installedObj && S_Protected ) S_Taboo, // Keep this unmodified ( have no installedObj && S_Taboo) // requested by user: S_Del, // delete installedObj ( clears S_Protected if set ) S_Update, // install candidateObj ( have installedObj, clears S_Protected if set ) S_Install, // install candidateObj ( have no installedObj, clears S_Taboo if set ) // not requested by user: S_AutoDel, // delete installedObj S_AutoUpdate, // install candidateObj ( have installedObj ) S_AutoInstall, // install candidateObj ( have no installedObj ) // no modification: S_KeepInstalled, // no modification ( have installedObj && !S_Protected, clears S_Protected if set ) S_NoInst, // no modification ( have no installedObj && !S_Taboo, clears S_Taboo if set ) }; /////////////////////////////////////////////////////////////////// /** \relates Status Enum value as string. */ std::string asString( const Status & obj ); /////////////////////////////////////////////////////////////////// /** \relates Status Stream output */ inline std::ostream & operator<<( std::ostream & str, const Status & obj ) { return str << asString( obj ); } ///////////////////////////////////////////////////////////////// } // namespace ui /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_UI_STATUS_H libzypp-17.7.0/zypp/ui/UserWantedPackages.cc000066400000000000000000000114601334444677500207700ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/ui/UserWantedPackages.cc * * \author Stefan Hundhammer * */ #include #include "zypp/base/Logger.h" #include "zypp/ui/UserWantedPackages.h" #include "zypp/base/PtrTypes.h" #include "zypp/ui/Selectable.h" #include "zypp/ResObjects.h" #include "zypp/ZYppFactory.h" #include "zypp/ResPoolProxy.h" using std::string; using std::set; using std::endl; namespace zypp { namespace ui { typedef ResPoolProxy::const_iterator PoolProxyIterator; static inline ResPoolProxy poolProxy() { return getZYpp()->poolProxy(); } template PoolProxyIterator poolProxyBegin() { return poolProxy().byKindBegin(); } template PoolProxyIterator poolProxyEnd() { return poolProxy().byKindEnd(); } static inline PoolProxyIterator pkgBegin() { return poolProxyBegin(); } static inline PoolProxyIterator pkgEnd() { return poolProxyEnd(); } // static inline PoolProxyIterator langBegin() { return poolProxyBegin(); } // static inline PoolProxyIterator langEnd() { return poolProxyEnd(); } static inline PoolProxyIterator patchesBegin() { return poolProxyBegin(); } static inline PoolProxyIterator patchesEnd() { return poolProxyEnd(); } template bool contains( const std::set & container, T search ) { return container.find( search ) != container.end(); } static void addDirectlySelectedPackages ( set & pkgNames ); template void addPkgSetPackages( set & pkgNames ); static void addPatternPackages ( set & pkgNames ); static void addPatchPackages ( set & pkgNames ); set userWantedPackageNames() { set pkgNames; DBG << "Collecting packages the user explicitly asked for" << endl; addDirectlySelectedPackages ( pkgNames ); addPatternPackages ( pkgNames ); addPatchPackages ( pkgNames ); return pkgNames; } static void addDirectlySelectedPackages( set & pkgNames ) { for ( PoolProxyIterator it = pkgBegin(); it != pkgEnd(); ++it ) { // Add all packages the user wanted to transact directly, // no matter what the transaction is (install, update, delete) if ( (*it)->toModify() && (*it)->modifiedBy() == ResStatus::USER ) { DBG << "Explicit user transaction on pkg \"" << (*it)->name() << "\"" << endl; pkgNames.insert( (*it)->name() ); } } } static void addPatternPackages( set & pkgNames ) { addPkgSetPackages( pkgNames ); } /** * Template to handle Patterns **/ template void addPkgSetPackages( set & pkgNames ) { for ( PoolProxyIterator it = poolProxyBegin(); it != poolProxyEnd(); ++it ) { // Take all pkg sets (patterns) into account that // will be transacted, no matter if the user explicitly asked // for that pkg set or if the patterns is required by another // pkg set of the same class typename PkgSet_T::constPtr pkgSet = dynamic_pointer_cast( (*it)->theObj() ? (*it)->theObj().resolvable() : 0L ); if ( pkgSet && (*it)->toModify() ) { DBG << (*it)->theObj()->kind().asString() << " will be transacted: \"" << pkgSet->name() << "\"" << endl; #warning NEEDS FIX set setPkgs;// = pkgSet->install_packages(); pkgNames.insert( setPkgs.begin(), setPkgs.end() ); } } } static void addPatchPackages( set & pkgNames ) { for ( PoolProxyIterator patch_it = patchesBegin(); patch_it != patchesEnd(); ++patch_it ) { Patch::constPtr patch = dynamic_pointer_cast( (*patch_it)->theObj() ? (*patch_it)->theObj().resolvable() : 0 ); if ( patch && (*patch_it)->toModify() ) { DBG << "Patch will be transacted: \"" << patch->name() << "\" - \"" << patch->summary() << "\"" << endl; Patch::Contents contents( patch->contents() ); for_( it, contents.begin(), contents.end() ) { pkgNames.insert( it->name() ); } } } } } // namespace ui } // namespace zypp libzypp-17.7.0/zypp/ui/UserWantedPackages.h000066400000000000000000000027351334444677500206370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/ui/UserWantedPackages.h * * \author Stefan Hundhammer * */ #ifndef USER_WANTED_PACKAGES_H #define USER_WANTED_PACKAGES_H #include #include namespace zypp { namespace ui { /** * This returns a set of package names the user explicitly wanted to * transact ( to install, to update, or to delete) for any of the * following reasons: * * - The user wanted to transact the pkg directly * * - Pkg is part of a pattern the user wanted to transact * - Pkg is part of a language the user wanted to transact * (? No more transacting Languages) * - Pkg is part of a patch the user wanted to transact * * - Pkg is part of a pattern that is required by a pattern the * user wanted to transact **/ std::set userWantedPackageNames(); } // namespace ui } // namespace zypp #endif // USER_WANTED_PACKAGES_H libzypp-17.7.0/zypp/url/000077500000000000000000000000001334444677500151245ustar00rootroot00000000000000libzypp-17.7.0/zypp/url/UrlBase.cc000066400000000000000000001100051334444677500167650ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/url/UrlBase.cc */ #include "zypp/url/UrlBase.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" #include "zypp/base/Regex.h" #include #include #include #include #include #include #include // in the Estonian locale, a-z excludes t, for example. #302525 // http://en.wikipedia.org/wiki/Estonian_alphabet #define a_zA_Z "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" // --------------------------------------------------------------- /* ** authority = //[user [:password] @ ] host [:port] ** ** host = hostname | IPv4 | "[" IPv6-IP "]" | "[v...]" */ #define RX_VALID_SCHEME "^[" a_zA_Z "][" a_zA_Z "0-9\\.+-]*$" #define RX_VALID_PORT "^[0-9]{1,5}$" #define RX_VALID_HOSTNAME "^[[:alnum:]${_}]+([\\.-][[:alnum:]${_}]+)*$" #define RX_VALID_HOSTIPV4 \ "^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$" #define RX_VALID_HOSTIPV6 \ "^\\[[:a-fA-F0-9]+(:[0-9]{1,3}(\\.[0-9]{1,3}){3})?\\]$" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace url { ////////////////////////////////////////////////////////////////// // --------------------------------------------------------------- /* ** URL asString() view option constants: */ const ViewOption ViewOption::WITH_SCHEME = 0x0001; const ViewOption ViewOption::WITH_USERNAME = 0x0002; const ViewOption ViewOption::WITH_PASSWORD = 0x0004; const ViewOption ViewOption::WITH_HOST = 0x0008; const ViewOption ViewOption::WITH_PORT = 0x0010; const ViewOption ViewOption::WITH_PATH_NAME = 0x0020; const ViewOption ViewOption::WITH_PATH_PARAMS = 0x0040; const ViewOption ViewOption::WITH_QUERY_STR = 0x0080; const ViewOption ViewOption::WITH_FRAGMENT = 0x0100; const ViewOption ViewOption::EMPTY_AUTHORITY = 0x0200; const ViewOption ViewOption::EMPTY_PATH_NAME = 0x0400; const ViewOption ViewOption::EMPTY_PATH_PARAMS = 0x0800; const ViewOption ViewOption::EMPTY_QUERY_STR = 0x1000; const ViewOption ViewOption::EMPTY_FRAGMENT = 0x2000; const ViewOption ViewOption::DEFAULTS = 0x07bb; /* const ViewOption ViewOption::DEFAULTS = ViewOption::WITH_SCHEME + ViewOption::WITH_USERNAME + ViewOption::WITH_HOST + ViewOption::WITH_PORT + ViewOption::WITH_PATH_NAME + ViewOption::WITH_QUERY_STR + ViewOption::WITH_FRAGMENT + ViewOption::EMPTY_AUTHORITY + ViewOption::EMPTY_PATH_NAME; */ // --------------------------------------------------------------- ViewOption::ViewOption() : opt(0x07bb) {} // --------------------------------------------------------------- ViewOption::ViewOption(int option) : opt(option) {} // --------------------------------------------------------------- /* ** Behaviour configuration variables. */ typedef std::map< std::string, std::string > UrlConfig; // --------------------------------------------------------------- /** * \brief Internal data used by UrlBase. */ class UrlBaseData { public: UrlBaseData() {} UrlBaseData(const UrlConfig &conf) : config(conf) {} UrlConfig config; ViewOptions vopts; std::string scheme; std::string user; std::string pass; std::string host; std::string port; std::string pathname; std::string pathparams; std::string querystr; std::string fragment; }; // --------------------------------------------------------------- /* ** Anonymous/internal utility namespace: */ namespace // anonymous { // ------------------------------------------------------------- inline void checkUrlData(const std::string &data, const std::string &name, const std::string ®x, bool show=true) { if( regx.empty() || regx == "^$") { ZYPP_THROW(UrlNotAllowedException( str::form(_("Url scheme does not allow a %s"), name.c_str()) )); } else { bool valid = false; try { str::regex rex(regx); valid = str::regex_match(data, rex); } catch( ... ) {} if( !valid) { if( show) { ZYPP_THROW(UrlBadComponentException( str::form(_("Invalid %s component '%s'"), name.c_str(), data.c_str()) )); } else { ZYPP_THROW(UrlBadComponentException( str::form(_("Invalid %s component"), name.c_str()) )); } } } } } // namespace // --------------------------------------------------------------- UrlBase::~UrlBase() { delete m_data; m_data = NULL; } // --------------------------------------------------------------- UrlBase::UrlBase() : m_data( new UrlBaseData()) { configure(); } // --------------------------------------------------------------- UrlBase::UrlBase(const UrlBase &url) : m_data( new UrlBaseData( *(url.m_data))) { } // --------------------------------------------------------------- UrlBase::UrlBase(const std::string &scheme, const std::string &authority, const std::string &pathdata, const std::string &querystr, const std::string &fragment) : m_data( new UrlBaseData()) { configure(); init(scheme, authority, pathdata, querystr, fragment); } // --------------------------------------------------------------- void UrlBase::init(const std::string &scheme, const std::string &authority, const std::string &pathdata, const std::string &querystr, const std::string &fragment) { if ( scheme.empty() && *pathdata.c_str() == '/' ) setScheme("file"); else setScheme(scheme); setAuthority(authority); setPathData(pathdata); setQueryString(querystr); setFragment(fragment, zypp::url::E_ENCODED); } // --------------------------------------------------------------- void UrlBase::configure() { config("sep_pathparams", ";"); config("psep_pathparam", ","); config("vsep_pathparam", "="); config("psep_querystr", "&"); config("vsep_querystr", "="); config("safe_username", "~!$&'()*+=,;"); config("safe_password", "~!$&'()*+=,:;"); config("safe_hostname", "[:]${_}"); config("safe_pathname", "~!$&'()*+=,:@/"); config("safe_pathparams", "~!$&'()*+=,:;@/"); config("safe_querystr", "~!$&'()*+=,:;@/?"); config("safe_fragment", "~!$&'()*+=,:;@/?"); // y=yes (allowed) // n=no (disallowed, exception if !empty) config("with_authority", "y"); config("with_port", "y"); // y=yes (required but don't throw if empty) // n=no (not required, ignore if empty) // m=mandatory (exception if empty) config("require_host", "n"); config("require_pathname","n"); // y=yes (encode 2. slash even if authority present) // n=no (don't encode 2. slash if authority present) config("path_encode_slash2", "n"); config("rx_username", "^([" a_zA_Z "0-9!$&'\\(\\)*+=,;~\\._-]|%[a-fA-F0-9]{2})+$"); config("rx_password", "^([" a_zA_Z "0-9!$&'\\(\\)*+=,:;~\\._-]|%[a-fA-F0-9]{2})+$"); config("rx_pathname", "^([" a_zA_Z "0-9!$&'\\(\\){}*+=,:@/~\\._-]|%[a-fA-F0-9]{2})+$"); config("rx_pathparams", "^([" a_zA_Z "0-9!$&'\\(\\){}*+=,:;@/~\\._-]|%[a-fA-F0-9]{2})+$"); config("rx_querystr", "^([" a_zA_Z "0-9!$&'\\(\\){}*+=,:;@/?~\\._-]|%[a-fA-F0-9]{2})+$"); config("rx_fragment", "^([" a_zA_Z "0-9!$&'\\(\\){}*+=,:;@/?~\\._-]|%[a-fA-F0-9]{2})+$"); } // --------------------------------------------------------------- void UrlBase::config(const std::string &opt, const std::string &val) { m_data->config[opt] = val; } // --------------------------------------------------------------- std::string UrlBase::config(const std::string &opt) const { UrlConfig::const_iterator v( m_data->config.find(opt)); if( v != m_data->config.end()) return v->second; else return std::string(); } // --------------------------------------------------------------- ViewOptions UrlBase::getViewOptions() const { return m_data->vopts; } // --------------------------------------------------------------- void UrlBase::setViewOptions(const ViewOptions &vopts) { m_data->vopts = vopts; } // --------------------------------------------------------------- void UrlBase::clear() { zypp::url::UrlConfig config(m_data->config); zypp::url::ViewOptions vopts(m_data->vopts); *m_data = UrlBaseData(); m_data->config = config; m_data->vopts = vopts; } // --------------------------------------------------------------- UrlBase * UrlBase::clone() const { return new UrlBase(*this); } // --------------------------------------------------------------- zypp::url::UrlSchemes UrlBase::getKnownSchemes() const { return UrlSchemes(); } // --------------------------------------------------------------- bool UrlBase::isKnownScheme(const std::string &scheme) const { std::string lscheme( str::toLower(scheme)); UrlSchemes schemes( getKnownSchemes()); UrlSchemes::const_iterator s; for(s=schemes.begin(); s!=schemes.end(); ++s) { if( lscheme == str::toLower(*s)) return true; } return false; } // --------------------------------------------------------------- bool UrlBase::isValidScheme(const std::string &scheme) const { bool valid = false; try { str::regex rex(RX_VALID_SCHEME); valid = str::regex_match(scheme, rex); } catch( ... ) {} if(valid) { std::string lscheme( str::toLower(scheme)); UrlSchemes schemes( getKnownSchemes()); if( schemes.empty()) return true; UrlSchemes::const_iterator s; for(s=schemes.begin(); s!=schemes.end(); ++s) { if( lscheme == str::toLower(*s)) return true; } } return false; } // --------------------------------------------------------------- bool UrlBase::isValid() const { /* ** scheme is the only mandatory component ** for all url's and is already verified, ** (except for empty Url instances), so ** Url with empty scheme is never valid. */ if( getScheme().empty()) return false; std::string host( getHost(zypp::url::E_ENCODED)); if( host.empty() && config("require_host") != "n") return false; std::string path( getPathName(zypp::url::E_ENCODED)); if( path.empty() && config("require_pathname") != "n") return false; /* ** path has to begin with "/" if authority avaliable ** if host is set after the pathname, we can't throw */ if( !host.empty() && !path.empty() && path.at(0) != '/') return false; return true; } // --------------------------------------------------------------- std::string UrlBase::asString() const { return asString(getViewOptions()); } // --------------------------------------------------------------- std::string UrlBase::asString(const zypp::url::ViewOptions &opts) const { std::string url; UrlBaseData tmp; if( opts.has(ViewOptions::WITH_SCHEME)) { tmp.scheme = getScheme(); if( !tmp.scheme.empty()) { url += tmp.scheme + ":"; if( opts.has(ViewOptions::WITH_HOST)) { tmp.host = getHost(zypp::url::E_ENCODED); if( !tmp.host.empty()) { url += "//"; if( opts.has(ViewOptions::WITH_USERNAME)) { tmp.user = getUsername(zypp::url::E_ENCODED); if( !tmp.user.empty()) { url += tmp.user; if( opts.has(ViewOptions::WITH_PASSWORD)) { tmp.pass = getPassword(zypp::url::E_ENCODED); if( !tmp.pass.empty()) { url += ":" + tmp.pass; } } url += "@"; } } url += tmp.host; if( opts.has(ViewOptions::WITH_PORT)) { tmp.port = getPort(); if( !tmp.port.empty()) { url += ":" + tmp.port; } } } else if( opts.has(ViewOptions::EMPTY_AUTHORITY)) { url += "//"; } } else if( opts.has(ViewOptions::EMPTY_AUTHORITY)) { url += "//"; } } } if( opts.has(ViewOptions::WITH_PATH_NAME)) { tmp.pathname = getPathName(zypp::url::E_ENCODED); if( !tmp.pathname.empty()) { if(url.find("/") != std::string::npos) { // Url contains authority (that may be empty), // we may need a rewrite of the encoded path. tmp.pathname = cleanupPathName(tmp.pathname, true); if(tmp.pathname.at(0) != '/') { url += "/"; } } url += tmp.pathname; if( opts.has(ViewOptions::WITH_PATH_PARAMS)) { tmp.pathparams = getPathParams(); if( !tmp.pathparams.empty()) { url += ";" + tmp.pathparams; } else if( opts.has(ViewOptions::EMPTY_PATH_PARAMS)) { url += ";"; } } } else if( opts.has(ViewOptions::EMPTY_PATH_NAME) && url.find("/") != std::string::npos) { url += "/"; if( opts.has(ViewOptions::EMPTY_PATH_PARAMS)) { url += ";"; } } } if( opts.has(ViewOptions::WITH_QUERY_STR)) { tmp.querystr = getQueryString(); if( !tmp.querystr.empty()) { url += "?" + tmp.querystr; } else if( opts.has(ViewOptions::EMPTY_QUERY_STR)) { url += "?"; } } if( opts.has(ViewOptions::WITH_FRAGMENT)) { tmp.fragment = getFragment(zypp::url::E_ENCODED); if( !tmp.fragment.empty()) { url += "#" + tmp.fragment; } else if( opts.has(ViewOptions::EMPTY_FRAGMENT)) { url += "#"; } } return url; } // --------------------------------------------------------------- std::string UrlBase::getScheme() const { return m_data->scheme; } // --------------------------------------------------------------- std::string UrlBase::getAuthority() const { std::string str; if( !getHost(zypp::url::E_ENCODED).empty()) { if( !getUsername(zypp::url::E_ENCODED).empty()) { str = getUsername(zypp::url::E_ENCODED); if( !getPassword(zypp::url::E_ENCODED).empty()) { str += ":" + getPassword(zypp::url::E_ENCODED); } str += "@"; } str += getHost(zypp::url::E_ENCODED); if( !getPort().empty()) { str += ":" + getPort(); } } return str; } // --------------------------------------------------------------- std::string UrlBase::getPathData() const { return getPathName(zypp::url::E_ENCODED) + config("sep_pathparams") + getPathParams(); } // --------------------------------------------------------------- std::string UrlBase::getQueryString() const { return m_data->querystr; } // --------------------------------------------------------------- std::string UrlBase::getFragment(EEncoding eflag) const { if(eflag == zypp::url::E_DECODED) return zypp::url::decode(m_data->fragment); else return m_data->fragment; } // --------------------------------------------------------------- std::string UrlBase::getUsername(EEncoding eflag) const { if(eflag == zypp::url::E_DECODED) return zypp::url::decode(m_data->user); else return m_data->user; } // --------------------------------------------------------------- std::string UrlBase::getPassword(EEncoding eflag) const { if(eflag == zypp::url::E_DECODED) return zypp::url::decode(m_data->pass); else return m_data->pass; } // --------------------------------------------------------------- std::string UrlBase::getHost(EEncoding eflag) const { if(eflag == zypp::url::E_DECODED) return zypp::url::decode(m_data->host); else return m_data->host; } // --------------------------------------------------------------- std::string UrlBase::getPort() const { return m_data->port; } // --------------------------------------------------------------- std::string UrlBase::getPathName(EEncoding eflag) const { if(eflag == zypp::url::E_DECODED) return zypp::url::decode(m_data->pathname); else return cleanupPathName(m_data->pathname); } // --------------------------------------------------------------- std::string UrlBase::getPathParams() const { return m_data->pathparams; } // --------------------------------------------------------------- zypp::url::ParamVec UrlBase::getPathParamsVec() const { zypp::url::ParamVec pvec; if( config("psep_pathparam").empty()) { pvec.push_back(getPathParams()); } else { zypp::url::split( pvec, getPathParams(), config("psep_pathparam") ); } return pvec; } // --------------------------------------------------------------- zypp::url::ParamMap UrlBase::getPathParamsMap(EEncoding eflag) const { if( config("psep_pathparam").empty() || config("vsep_pathparam").empty()) { ZYPP_THROW(UrlNotSupportedException( "Path parameter parsing not supported for this URL" )); } zypp::url::ParamMap pmap; zypp::url::split( pmap, getPathParams(), config("psep_pathparam"), config("vsep_pathparam"), eflag ); return pmap; } // --------------------------------------------------------------- std::string UrlBase::getPathParam(const std::string ¶m, EEncoding eflag) const { zypp::url::ParamMap pmap( getPathParamsMap( eflag)); zypp::url::ParamMap::const_iterator i( pmap.find(param)); return i != pmap.end() ? i->second : std::string(); } // --------------------------------------------------------------- zypp::url::ParamVec UrlBase::getQueryStringVec() const { zypp::url::ParamVec pvec; if( config("psep_querystr").empty()) { pvec.push_back(getQueryString()); } else { zypp::url::split( pvec, getQueryString(), config("psep_querystr") ); } return pvec; } // --------------------------------------------------------------- zypp::url::ParamMap UrlBase::getQueryStringMap(EEncoding eflag) const { if( config("psep_querystr").empty() || config("vsep_querystr").empty()) { ZYPP_THROW(UrlNotSupportedException( _("Query string parsing not supported for this URL") )); } zypp::url::ParamMap pmap; zypp::url::split( pmap, getQueryString(), config("psep_querystr"), config("vsep_querystr"), eflag ); return pmap; } // --------------------------------------------------------------- std::string UrlBase::getQueryParam(const std::string ¶m, EEncoding eflag) const { zypp::url::ParamMap pmap( getQueryStringMap( eflag)); zypp::url::ParamMap::const_iterator i( pmap.find(param)); return i != pmap.end() ? i->second : std::string(); } // --------------------------------------------------------------- void UrlBase::setScheme(const std::string &scheme) { if( isValidScheme(scheme)) { m_data->scheme = str::toLower(scheme); } else if( scheme.empty()) { ZYPP_THROW(UrlBadComponentException( _("Url scheme is a required component") )); } else { ZYPP_THROW(UrlBadComponentException( str::form(_("Invalid Url scheme '%s'"), scheme.c_str()) )); } } // --------------------------------------------------------------- void UrlBase::setAuthority(const std::string &authority) { std::string s = authority; std::string::size_type p,q; std::string username, password, host, port; if ((p=s.find('@')) != std::string::npos) { q = s.find(':'); if (q != std::string::npos && q < p) { setUsername(s.substr(0, q), zypp::url::E_ENCODED); setPassword(s.substr(q+1, p-q-1), zypp::url::E_ENCODED); } else setUsername(s.substr(0, p), zypp::url::E_ENCODED); s = s.substr(p+1); } if ((p = s.rfind(':')) != std::string::npos && ( (q = s.rfind(']')) == std::string::npos || q < p) ) { setHost(s.substr(0, p)); setPort(s.substr(p+1)); } else setHost(s); } // --------------------------------------------------------------- void UrlBase::setPathData(const std::string &pathdata) { size_t pos = std::string::npos; std::string sep(config("sep_pathparams")); if( !sep.empty()) pos = pathdata.find(sep); if( pos != std::string::npos) { setPathName(pathdata.substr(0, pos), zypp::url::E_ENCODED); setPathParams(pathdata.substr(pos + 1)); } else { setPathName(pathdata, zypp::url::E_ENCODED); setPathParams(""); } } // --------------------------------------------------------------- void UrlBase::setQueryString(const std::string &querystr) { if( querystr.empty()) { m_data->querystr = querystr; } else { checkUrlData(querystr, "query string", config("rx_querystr")); m_data->querystr = querystr; } } // --------------------------------------------------------------- void UrlBase::setFragment(const std::string &fragment, EEncoding eflag) { if( fragment.empty()) { m_data->fragment = fragment; } else { if(eflag == zypp::url::E_ENCODED) { checkUrlData(fragment, "fragment", config("rx_fragment")); m_data->fragment = fragment; } else { m_data->fragment = zypp::url::encode( fragment, config("safe_fragment") ); } } } // --------------------------------------------------------------- void UrlBase::setUsername(const std::string &user, EEncoding eflag) { if( user.empty()) { m_data->user = user; } else { if( config("with_authority") != "y") { ZYPP_THROW(UrlNotAllowedException( _("Url scheme does not allow a username") )); } if(eflag == zypp::url::E_ENCODED) { checkUrlData(user, "username", config("rx_username")); m_data->user = user; } else { m_data->user = zypp::url::encode( user, config("safe_username") ); } } } // --------------------------------------------------------------- void UrlBase::setPassword(const std::string &pass, EEncoding eflag) { if( pass.empty()) { m_data->pass = pass; } else { if( config("with_authority") != "y") { ZYPP_THROW(UrlNotAllowedException( _("Url scheme does not allow a password") )); } if(eflag == zypp::url::E_ENCODED) { checkUrlData(pass, "password", config("rx_password"), false); m_data->pass = pass; } else { m_data->pass = zypp::url::encode( pass, config("safe_password") ); } } } // --------------------------------------------------------------- void UrlBase::setHost(const std::string &host) { if( host.empty()) { if(config("require_host") == "m") { ZYPP_THROW(UrlNotAllowedException( _("Url scheme requires a host component") )); } m_data->host = host; } else { if( config("with_authority") != "y") { ZYPP_THROW(UrlNotAllowedException( _("Url scheme does not allow a host component") )); } if( isValidHost(host)) { std::string temp; // always decode in case isValidHost() // is reimplemented and supports also // the [v ... ] notation. if( host.at(0) == '[') { temp = str::toUpper(zypp::url::decode(host)); } else { temp = str::toLower(zypp::url::decode(host)); } m_data->host = zypp::url::encode( temp, config("safe_hostname") ); } else { ZYPP_THROW(UrlBadComponentException( str::form(_("Invalid host component '%s'"), host.c_str()) )); } } } // --------------------------------------------------------------- void UrlBase::setPort(const std::string &port) { if( port.empty()) { m_data->port = port; } else { if( config("with_authority") != "y" || config("with_port") != "y") { ZYPP_THROW(UrlNotAllowedException( _("Url scheme does not allow a port") )); } if( isValidPort(port)) { m_data->port = port; } else { ZYPP_THROW(UrlBadComponentException( str::form(_("Invalid port component '%s'"), port.c_str()) )); } } } // --------------------------------------------------------------- void UrlBase::setPathName(const std::string &path, EEncoding eflag) { if( path.empty()) { if(config("require_pathname") == "m") { ZYPP_THROW(UrlNotAllowedException( _("Url scheme requires path name") )); } m_data->pathname = path; } else { if(eflag == zypp::url::E_ENCODED) { checkUrlData(path, "path name", config("rx_pathname")); if( !getHost(zypp::url::E_ENCODED).empty()) { // has to begin with a "/". For consistency with // setPathName while the host is empty, we allow // it in encoded ("%2f") form - cleanupPathName() // will fix / decode the first slash if needed. if(!(path.at(0) == '/' || (path.size() >= 3 && str::toLower(path.substr(0, 3)) == "%2f"))) { ZYPP_THROW(UrlNotAllowedException( _("Relative path not allowed if authority exists") )); } } m_data->pathname = cleanupPathName(path); } else // zypp::url::E_DECODED { if( !getHost(zypp::url::E_ENCODED).empty()) { if(path.at(0) != '/') { ZYPP_THROW(UrlNotAllowedException( _("Relative path not allowed if authority exists") )); } } m_data->pathname = cleanupPathName( zypp::url::encode( path, config("safe_pathname") ) ); } } } // --------------------------------------------------------------- void UrlBase::setPathParams(const std::string ¶ms) { if( params.empty()) { m_data->pathparams = params; } else { checkUrlData(params, "path parameters", config("rx_pathparams")); m_data->pathparams = params; } } // --------------------------------------------------------------- void UrlBase::setPathParamsVec(const zypp::url::ParamVec &pvec) { setPathParams( zypp::url::join( pvec, config("psep_pathparam") ) ); } // --------------------------------------------------------------- void UrlBase::setPathParamsMap(const zypp::url::ParamMap &pmap) { if( config("psep_pathparam").empty() || config("vsep_pathparam").empty()) { ZYPP_THROW(UrlNotSupportedException( "Path Parameter parsing not supported for this URL" )); } setPathParams( zypp::url::join( pmap, config("psep_pathparam"), config("vsep_pathparam"), config("safe_pathparams") ) ); } // --------------------------------------------------------------- void UrlBase::setPathParam(const std::string ¶m, const std::string &value) { zypp::url::ParamMap pmap( getPathParamsMap(zypp::url::E_DECODED)); pmap[param] = value; setPathParamsMap(pmap); } // --------------------------------------------------------------- void UrlBase::setQueryStringVec(const zypp::url::ParamVec &pvec) { setQueryString( zypp::url::join( pvec, config("psep_querystr") ) ); } // --------------------------------------------------------------- void UrlBase::setQueryStringMap(const zypp::url::ParamMap &pmap) { if( config("psep_querystr").empty() || config("vsep_querystr").empty()) { ZYPP_THROW(UrlNotSupportedException( _("Query string parsing not supported for this URL") )); } setQueryString( zypp::url::join( pmap, config("psep_querystr"), config("vsep_querystr"), config("safe_querystr") ) ); } // --------------------------------------------------------------- void UrlBase::setQueryParam(const std::string ¶m, const std::string &value) { zypp::url::ParamMap pmap( getQueryStringMap(zypp::url::E_DECODED)); pmap[param] = value; setQueryStringMap(pmap); } // --------------------------------------------------------------- void UrlBase::delQueryParam(const std::string ¶m) { zypp::url::ParamMap pmap( getQueryStringMap(zypp::url::E_DECODED)); pmap.erase(param); setQueryStringMap(pmap); } // --------------------------------------------------------------- std::string UrlBase::cleanupPathName(const std::string &path) const { bool authority = !getHost(zypp::url::E_ENCODED).empty(); return cleanupPathName(path, authority); } // --------------------------------------------------------------- std::string UrlBase::cleanupPathName(const std::string &path, bool authority) const { std::string copy( path); // decode the first slash if it is encoded ... if(copy.size() >= 3 && copy.at(0) != '/' && str::toLower(copy.substr(0, 3)) == "%2f") { copy.replace(0, 3, "/"); } // if path begins with a double slash ("//"); encode the second // slash [minimal and IMO sufficient] before the first path // segment, to fulfill the path-absolute rule of RFC 3986 // disallowing a "//" if no authority is present. if( authority) { // // rewrite of "//" to "/%2f" not required, use config // if(config("path_encode_slash2") == "y") { // rewrite "//" ==> "/%2f" if(copy.size() >= 2 && copy.at(0) == '/' && copy.at(1) == '/') { copy.replace(1, 1, "%2F"); } } else { // rewrite "/%2f" ==> "//" if(copy.size() >= 4 && copy.at(0) == '/' && str::toLower(copy.substr(1, 4)) == "%2f") { copy.replace(1, 4, "/"); } } } else { // rewrite of "//" to "/%2f" is required (no authority) if(copy.size() >= 2 && copy.at(0) == '/' && copy.at(1) == '/') { copy.replace(1, 1, "%2F"); } } return copy; } // --------------------------------------------------------------- bool UrlBase::isValidHost(const std::string &host) const { try { str::regex regx(RX_VALID_HOSTIPV6); if( str::regex_match(host, regx)) { struct in6_addr ip; std::string temp( host.substr(1, host.size()-2)); return inet_pton(AF_INET6, temp.c_str(), &ip) > 0; } else { // matches also IPv4 dotted-decimal adresses... std::string temp( zypp::url::decode(host)); str::regex regx(RX_VALID_HOSTNAME); return str::regex_match(temp, regx); } } catch( ... ) {} return false; } // --------------------------------------------------------------- bool UrlBase::isValidPort(const std::string &port) const { try { str::regex regx(RX_VALID_PORT); if( str::regex_match(port, regx)) { long pnum = str::strtonum(port); return ( pnum >= 1 && pnum <= USHRT_MAX); } } catch( ... ) {} return false; } ////////////////////////////////////////////////////////////////// } // namespace url //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/url/UrlBase.h000066400000000000000000001117141334444677500166370ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/url/UrlBase.h */ #ifndef ZYPP_URL_URLBASE_H #define ZYPP_URL_URLBASE_H #include "zypp/url/UrlUtils.h" #include "zypp/base/PtrTypes.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace url { ////////////////////////////////////////////////////////////////// // --------------------------------------------------------------- /** * Url::asString() view options. * * A instance of this class represents a bit-wise combination * of view option constants. * * It provides ViewOption::operator+() and ViewOption::operator-() * to modify a view option combination and a ViewOption::has() * method, to check if a specified option is enabled or not. */ struct ViewOption { /** @{ */ /** * Option to include scheme name in the URL string. * * Disabling this option causes, that the URL string * contains the path, query and fragment components * only, for example just "/foo/bar.txt". * * This option is \b enabled by default. */ static const ViewOption WITH_SCHEME; /** * Option to include username in the URL string. * * This option depends on a enabled WITH_SCHEME and * WITH_HOST options and is \b enabled by default. */ static const ViewOption WITH_USERNAME; /** * Option to include password in the URL string. * * This option depends on a enabled WITH_SCHEME, * WITH_HOST and WITH_USERNAME options and is * \b disabled by default, causing to hide the * password in the URL authority. */ static const ViewOption WITH_PASSWORD; /** * Option to include hostname in the URL string. * * This option depends on a enabled WITH_SCHEME * option and is \b enabled by default. */ static const ViewOption WITH_HOST; /** * Option to include port number in the URL string. * * This option depends on a enabled WITH_SCHEME and * WITH_HOST options and is \b enabled by default. */ static const ViewOption WITH_PORT; /** * Option to include path name in the URL string. * * This option is \b enabled by default. */ static const ViewOption WITH_PATH_NAME; /** * Option to include path parameters in the URL string. * * This option depends on a enabled WITH_PATH_NAME * option and is \b disabled by default, causing to * hide the path parameters. */ static const ViewOption WITH_PATH_PARAMS; /** * Option to include query string in the URL string. * * This option is \b enabled by default. */ static const ViewOption WITH_QUERY_STR; /** * Option to include fragment string in the URL string. * * This option is \b enabled by default. */ static const ViewOption WITH_FRAGMENT; /** @} */ /** @{ */ /** * Explicitely include the URL authority separator "//". * * It causes, that the URL string includes an empty URL * authority, for example: * "file:///foo.txt" instead of just "file:/foo.txt". * * This option depends on a enabled WITH_SCHEME view * option and is enabled by default. */ static const ViewOption EMPTY_AUTHORITY; /** * Explicitely include the "/" path character. * * It causes, that a "/" is added to the Url if the path * name is empty, for example: * * "http://localhost/" instead of just "http://localhost". * * This option depends on a enabled WITH_PATH_NAME view * option and is enabled by default. */ static const ViewOption EMPTY_PATH_NAME; /** * Explicitely include the path parameters separator ";". * * It causes, that the URL allways contains the ";" path * parameters separator. * * This option depends on a enabled EMPTY_PATH_NAME view * option and is disabled by default. */ static const ViewOption EMPTY_PATH_PARAMS; /** * Explicitely include the query string separator "?". * * It causes, that if the query string is requested using * the WITH_QUERY_STR option, the URL allways contains the * "?" query string separator, even if the query string is * empty. * This option depends on a enabled WITH_QUERY_STR view * option and is disabled by default. */ static const ViewOption EMPTY_QUERY_STR; /** * Explicitely include the fragment string separator "#". * * It causes, that if the fragment string is requested using * the WITH_FRAGMENT option, the URL allways contains the "#" * fragment string separator, even if the fragment string is * empty. * This option depends on a enabled WITH_FRAGMENT view * option and is disabled by default. */ static const ViewOption EMPTY_FRAGMENT; /** @} */ /** @{ */ /** * Default combination of view options. * * By default, following view options are enabled: * WITH_SCHEME, WITH_USERNAME, WITH_HOST, * WITH_PORT, WITH_PATH_NAME, WITH_QUERY_STR, * WITH_FRAGMENT, EMPTY_AUTHORITY, EMPTY_PATH_NAME. */ static const ViewOption DEFAULTS; /** @} */ /** * Create instance with default combination of view options. */ ViewOption(); /** * Adds \p l and \p r to a new option combination. * * @return The new option combination. */ friend inline ViewOption operator + (const ViewOption &l, const ViewOption &r) { return ViewOption(l.opt | r.opt); } /** * Substract \p r from \p l to a new option combination. * * @return The new option combination. */ friend inline ViewOption operator - (const ViewOption &l, const ViewOption &r) { return ViewOption(l.opt & ~r.opt); } /** * Assign specified option combination \p o to the current object. * * \param o The option or option combination to make a copy of. * \return A reference to this option combination. */ inline ViewOption & operator = (const ViewOption &o) { opt = o.opt; return *this; } /** * Check if specified option \p o is set in the current object. * \param o A view option constant. * \return True, if specified option \p o is * set/enabled in the instance. */ inline bool has(const ViewOption &o) const { return o.opt & opt; } private: ViewOption(int option); int opt; }; // --------------------------------------------------------------- /** * ViewOptions is just an alias for ViewOption. */ typedef ViewOption ViewOptions; // --------------------------------------------------------------- /** * Vector of URL scheme names. */ typedef std::vector UrlSchemes; // --------------------------------------------------------------- /** * Forward declaration of internal UrlBase data. */ class UrlBaseData; // --------------------------------------------------------------- /** * \brief Generic Url base class. * * The UrlBase class implements default behaviour for URL * manipulations and a base for implementation of scheme- * specialized URLs for the Url class. * */ class UrlBase { public: virtual ~UrlBase(); UrlBase(); /** * Create a new Url object as copy of the given one. * \param url The Url object to make a copy of. */ UrlBase(const UrlBase &url); /** * \brief Construct new object and initializes it with * specified URL components. * * \param scheme The scheme name. * \param authority The encoded authority component data. * \param pathdata The encoded path component data. * \param querystr The encoded query string component. * \param fragment The encoded fragment string component. * \throws UrlNotAllowedException if one of the components * is not allowed for the scheme. * \throws UrlBadComponentException if one of the components * contains an invalid character. */ UrlBase(const std::string &scheme, const std::string &authority, const std::string &pathdata, const std::string &querystr, const std::string &fragment); // ----------------- /** * \brief Clears all data in the object. */ virtual void clear(); /** * Returns pointer to a copy of the current object. * * Should be reimplemented by all derived object using * the copy constructor of the derived class, e.g.: * \code * return new MyUrlDerivedFromUrlBase(*this); * \endcode * * \return A pointer to a copy of the current object. */ virtual UrlBase * clone() const; /** * \brief Initializes current object with new URL components. * * \param scheme The scheme name. * \param authority The encoded authority component data. * \param pathdata The encoded path component data. * \param querystr The encoded query string component. * \param fragment The encoded fragment string component. * \throws UrlNotAllowedException if one of the components * is not allowed in the scheme. * \throws UrlBadComponentException if one of the components * contains an invalid character. */ virtual void init(const std::string &scheme, const std::string &authority, const std::string &pathdata, const std::string &querystr, const std::string &fragment); // ----------------- /** * \brief Returns scheme names known by this object. * * This method is used in the isValidScheme() method and * is intended to be reimplemented by derived classes to * return the scheme names it implements (is restricted * or compatible to). * * For example, if your derived class implements special * features of LDAP URLs, this method may return "ldap" * and "ldaps" scheme names. * * The UrlBase class returns an empty vector, that signals * that it is useable with all URLs. * * \return A vector with scheme names known by this object. */ virtual UrlSchemes getKnownSchemes() const; /** * \brief Returns if scheme name is known to this object. * \return True, if scheme name is known to this object. */ virtual bool isKnownScheme(const std::string &scheme) const; /** * \brief Verifies specified scheme name. * * Verifies the generic syntax of the specified \p scheme name * and if it is contained in the current object's list of known * schemes (see getKnownSchemes()) if the list is not empty (as * in the UrlBase class). * * \param scheme The scheme name to verify. * \return True, if generic scheme name syntax is valid and * the scheme name is known to the current object. */ virtual bool isValidScheme(const std::string &scheme) const; /** * \brief Verifies the Url. * * Verifies if the current object contains a non-empty scheme * name. Additional semantical URL checks may be performed by * derived UrlBase-objects. * * \return True, if the Url seems to be valid. */ virtual bool isValid() const; // ----------------- /** * Returns a default string representation of the Url object. * * By default, a password in the URL will be hidden. * * \return A default string representation of the Url object. */ virtual std::string asString() const; /** * Returns a string representation of the Url object. * * To include a password in the resulting Url string, use: * \code * url.asString(url.getViewOptions() + * url::ViewOptions::WITH_PASSWORD); * \endcode * * \param opts A combination of view options. * \return A string representation of the Url object. */ virtual std::string asString(const zypp::url::ViewOptions &opts) const; // ----------------- /** * Returns the scheme name of the URL. * \return Scheme name of the current Url object. */ virtual std::string getScheme() const; // ----------------- /** * Returns the encoded authority component of the URL. * * The returned authority string does not contain the leading * "//" separator characters, but just its "user:pass@host:port" * content only. * * \return The encoded authority component string. */ virtual std::string getAuthority() const; /** * Returns the username from the URL authority. * \param eflag Flag if the usename should be percent-decoded or not. * \return The username sub-component from the URL authority. * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getUsername(EEncoding eflag) const; /** * Returns the password from the URL authority. * \param eflag Flag if the password should be percent-decoded or not. * \return The password sub-component from the URL authority. * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getPassword(EEncoding eflag) const; /** * Returns the hostname or IP from the URL authority. * * In case the Url contains an IPv6 number, it is be surrounded * by "[" and "]" characters, for example "[::1]" for an IPv6 * localhost address. * * \param eflag Flag if the host should be percent-decoded or not. * \return The host sub-component from the URL authority. * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getHost(EEncoding eflag) const; /** * Returns the port number from the URL authority. * \return The port sub-component from the URL authority. */ virtual std::string getPort() const; // ----------------- /** * Returns the encoded path component of the URL. * * The path data contains the path name, optionally * followed by path parameters separated with a ";" * character, for example "/foo/bar;version=1.1". * * \return The encoded path component of the URL. */ virtual std::string getPathData() const; /** * Returns the path name from the URL. * \param eflag Flag if the path should be decoded or not. * \return The path name sub-component without path parameters * from path data component of the URL. * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getPathName(EEncoding eflag) const; /** * Returns the encoded path parameters from the URL. * \return The encoded path parameters from the URL. */ virtual std::string getPathParams() const; /** * Returns a vector with encoded path parameter substrings. * * The default path parameter separator is the \c ',' character. * A schema specific object may overide the default separators. * * For example, the path parameters string "foo=1,bar=2" is splited * by default into a vector containing the substrings "foo=1" and * "bar=2". * * \return The encoded path parameters vector. */ virtual zypp::url::ParamVec getPathParamsVec() const; /** * Returns a string map with path parameter keys and values. * * The default path parameter separator is the \c ',' character, * the default key/value separator for the path parameters is * the \c '=' character. * A schema specific object may overide the default separators. * * For example, the path parameters string "foo=1,bar=2" is splited * into a map containing "foo" = "1" and "bar" = "2" by default. * * \param eflag Flag if the path parameter keys and values should * be decoded or not. * \return The path parameters key and values as a string map. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual zypp::url::ParamMap getPathParamsMap(EEncoding eflag) const; /** * Return the value for the specified path parameter. * * For example, if the path parameters string is "foo=1,bar=2" * the method will return the substring "1" for the param key * "foo" and "2" for the param key "bar". * * \param param The path parameter key. * \param eflag Flag if the path parameter keys and values should * be decoded or not. * \return The value for the path parameter key or empty string. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getPathParam(const std::string ¶m, EEncoding eflag) const; // ----------------- /** * Returns the encoded query string component of the URL. * * The query string is returned without first "?" (separator) * character. Further "?" characters as in e.g. LDAP URLs * remains in the returned string. * * \return The encoded query string component of the URL. */ virtual std::string getQueryString() const; /** * Returns a vector with query string parameter substrings. * * The default query string parameter separator is the \c '&' * character. * A schema specific object may overide the default separators. * * For example, the query string "foo=1&bar=2" is splited by * default into a vector containing the substrings "foo=1" and * "bar=2". * * \return The query string splited into a vector of substrings. */ virtual zypp::url::ParamVec getQueryStringVec() const; /** * Returns a string map with query parameter and their values. * * The default query string parameter separator is the \c ',' * character, the default key/value separator the \c '=' character. * A schema specific object may overide the default separators. * * For example, the query string "foo=1&bar=2" is splited by * default into a map containing "foo" = "1" and "bar" = "2". * * \param eflag Flag if the query string keys and values should * be decoded or not. * \return The query string as a key/value string map. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual zypp::url::ParamMap getQueryStringMap(EEncoding eflag) const; /** * Return the value for the specified query parameter. * * For example, if the query string is "foo=1,bar=2" the method * will return the substring "1" for the param key "foo" and * "2" for the param key "bar". * * \param param The query parameter key. * \param eflag Flag if the query parameter keys and values should * be decoded or not. * \return The value for the query parameter key or empty string. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getQueryParam(const std::string ¶m, EEncoding eflag) const; // ----------------- /** * Returns the encoded fragment component of the URL. * \param eflag Flag if the fragment should be percent-decoded or not. * \return The encoded fragment component of the URL. * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual std::string getFragment(EEncoding eflag) const; // ----------------- /** * \brief Set the scheme name in the URL. * \param scheme The new scheme name. * \throws UrlBadComponentException if the \p scheme * contains an invalid character or is empty. */ virtual void setScheme(const std::string &scheme); // ----------------- /** * \brief Set the authority component in the URL. * * The \p authority string shoud not contain any leading * "//" separator characters (just "user:pass@host:port"). * * \param authority The authority component string. * \throws UrlNotAllowedException if the \p authority * has to be empty in for the current scheme. * \throws UrlBadComponentException if the \p authority * contains an invalid character. * \throws UrlParsingException if \p authority parsing fails. */ virtual void setAuthority(const std::string &authority); /** * \brief Set the username in the URL authority. * \param user The new username. * \param eflag If the \p username is encoded or not. * \throws UrlNotAllowedException if the \p user * has to be empty in for the current scheme. * \throws UrlBadComponentException if the \p user * contains an invalid character. */ virtual void setUsername(const std::string &user, EEncoding eflag); /** * \brief Set the password in the URL authority. * \param pass The new password. * \param eflag If the \p password is encoded or not. * \throws UrlNotAllowedException if the \p pass * has to be empty in for the current scheme. * \throws UrlBadComponentException if the \p pass * contains an invalid character. */ virtual void setPassword(const std::string &pass, EEncoding eflag); /** * \brief Set the hostname or IP in the URL authority. * * The \p host parameter may contain a hostname, an IPv4 address * in dotted-decimal form or an IPv6 address literal encapsulated * within square brackets (RFC3513, Sect. 2.2). * * A hostname may contain national alphanumeric UTF8 characters * (letters other than ASCII a-zA-Z), that will be encoded. * This function allows to specify both, a encoded or decoded * hostname. * * Other IP literals in "[v ... ]" square bracket format are not * supported by the implementation in UrlBase class. * * \param host The new hostname or IP address. * \throws UrlNotAllowedException if the \p host * has to be empty in for the current scheme. * \throws UrlBadComponentException if the \p host is invalid. */ virtual void setHost(const std::string &host); /** * \brief Set the port number in the URL authority. * \param port The new port number. * \throws UrlNotAllowedException if the \p port * has to be empty in for the current scheme. * \throws UrlBadComponentException if the \p port is invalid. */ virtual void setPort(const std::string &port); // ----------------- /** * \brief Set the path data component in the URL. * * By default, the \p pathdata string may include path * parameters separated by the ";" separator character. * * \param pathdata The encoded path data component string. * \throws UrlBadComponentException if the \p pathdata * contains an invalid character. */ virtual void setPathData(const std::string &pathdata); /** * \brief Set the path name. * \param path The new path name. * \param eflag If the \p path name is encoded or not. * \throws UrlBadComponentException if the \p path name * contains an invalid character. */ virtual void setPathName(const std::string &path, EEncoding eflag); /** * \brief Set the path parameters. * \param params The new encoded path parameter string. * \throws UrlBadComponentException if the path \p params * contains an invalid character. */ virtual void setPathParams(const std::string ¶ms); /** * \brief Set the path parameters. * \param pvec The vector with encoded path parameters. * \throws UrlBadComponentException if the \p pvec * contains an invalid character. */ virtual void setPathParamsVec(const zypp::url::ParamVec &pvec); /** * \brief Set the path parameters. * \param pmap The map with decoded path parameters. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). */ virtual void setPathParamsMap(const zypp::url::ParamMap &pmap); /** * \brief Set or add value for the specified path parameter. * \param param The decoded path parameter name. * \param value The decoded path parameter value. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual void setPathParam(const std::string ¶m, const std::string &value); // ----------------- /** * \brief Set the query string in the URL. * * The \p querystr string parameter is supposed * to not to contain the "?" URL query separator * character (use just a "foo=bar&x=22" instead * of "?foo=bar&x=22"). * * \param querystr The new encoded query string. * \throws UrlBadComponentException if the \p querystr * contains an invalid character. */ virtual void setQueryString(const std::string &querystr); /** * \brief Set the query parameters. * \param qvec The vector with encoded query parameters. * \throws UrlBadComponentException if the \p qvec * contains an invalid character. */ virtual void setQueryStringVec(const zypp::url::ParamVec &qvec); /** * \brief Set the query parameters. * \param qmap The map with decoded query parameters. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). */ virtual void setQueryStringMap(const zypp::url::ParamMap &qmap); /** * \brief Set or add value for the specified query parameter. * \param param The decoded query parameter name. * \param value The decoded query parameter value. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual void setQueryParam(const std::string ¶m, const std::string &value); /** * \brief remove the specified query parameter. * \param param The decoded query parameter name. * \throws UrlNotSupportedException if parameter parsing * is not supported for a URL (scheme). * \throws UrlDecodingException if the decoded result string * would contain a '\\0' character. */ virtual void delQueryParam(const std::string ¶m); // ----------------- /** * \brief Set the fragment string in the URL. * \param fragment The new fragment string. * \param eflag If the \p fragment is encoded or not. * \throws UrlBadComponentException if the \p querystr * contains an invalid character. */ virtual void setFragment(const std::string &fragment, EEncoding eflag); // ----------------- /** * Configures behaviour of the instance. * * This method is called in UrlBase constructors before * any URL components are applied. * Derived classes may reimplement this method to change * the behaviour of the object. * Use the config() methods to query and change them. * * The UrlBase class uses following config variables: * * - Common path parameter separators: * - \a \c sep_pathparams \c ";" * Separator used to split path parameters from path name. * Setting it to empty string disables splitting of path * name and path parameters. Set also rx_pathparams to an * empty string. * - \a \c psep_pathparam \c "," * Separator between path parameters. * - \a \c vsep_pathparam \c "=" * Separator between key and value of a path parameter. * . * . * * - Common query string separators: * - \a \c psep_querystr \c "&" * Separator between query string parameters. * - \a \c vsep_querystr \c "=" * Separator between key and value of a query parameter. * . * . * * - Characters in URL components, that are safe without * URL percent-encoding (see zypp::url::encode()). * - \a safe_username * - \a safe_password * - \a safe_hostname * - \a safe_pathname * - \a safe_pathparams * - \a safe_querystr * - \a safe_fragment * . * . * * - Regular expressions used to verify encoded URL * components and their sub-components: * - \a rx_username * - \a rx_password * - \a rx_pathname * - \a rx_pathparams * - \a rx_querystr * - \a rx_fragment * . * . */ virtual void configure(); /** * Get the value of a UrlBase configuration variable. * * See configure() method for names an purpose of the * configuration variables used in UrlBase class. * * \param opt The name of the configuration variable. * \return The value of the specified variable * or empty string. */ std::string config(const std::string &opt) const; /** * Set the value of a UrlBase configuration variable. * * See configure() method for names an purpose of the * configuration variables used in UrlBase class. * * \param opt The name of the configuration variable. * \param val The new value for the configuration variable. */ void config(const std::string &opt, const std::string &val); /** * Return the view options of the current object. * * This method is used to query the view options * used by the asString() method. * * \return The current view option combination. */ ViewOptions getViewOptions() const; /** * Change the view options of the current object. * * This method is used to change the view options * used by the asString() method. * * \param vopts New view options combination. */ void setViewOptions(const ViewOptions &vopts); protected: /** * Utility method to cleanup an encoded path name. * * By default, this method makes sure, that the first slash * in the path is not encoded, and that the second slash * before the first path segment, is encoded (to "%2F"). * It modifies the path in the url, for example: * "ftp://host//aaa//bbb" to "ftp://host/%2Faaa//bbb" * or as encoded path only also "%2f/name" to "/%2fname". * * This operation is required to fulfill the path-absolute * rule of RFC3986, if there is no authority. It avoids the * missinterpretation of the path as an authority separator. * * It is not required if there is an authority ("//" behind * the "scheme:"), that is in the path-abempty rule, but it * is used e.g. in ftp url's defined by RFC1738. * * We apply this operation in both cases (for all paths), * but if \p authority is true, the encoding of the second * slash depends on the schema configuration (for ftp only). * * \param path The encoded path name to cleanup. * \param authority Whether the url contains authority or not. * \return A modified encoded path. */ virtual std::string cleanupPathName(const std::string &path, bool authority) const; /** * Utility method to cleanup an encoded path name. * * This variant of the method checks if the host component * in the url is empty or not to differentiate if there is * an authority. * * \param path The encoded path name to cleanup. * \return A modified encoded path. */ virtual std::string cleanupPathName(const std::string &path) const; /** * \brief Verifies specified host or IP. * * It verifies, if the specified \p host parameter contains * a hostname, an IPv4 address in dotted-decimal form or an * IPv6 address literal encapsulated within square brackets * (RFC3513, Sect. 2.2). * * A hostname in the \p host parameter, may contain national * alphanumeric UTF8 characters (letters other than ASCII * a-zA-Z) and allows to specify both, a encoded or decoded * hostname. * * This function does not perform any hostname lookups and * supports only IPv6 addresses in "[ ... ]" notation. The * "[v ... ]" square bracket format is not supported by * this implementation. * * \param host The host name or IP to verify. * \return True, if host seems to be valid. */ virtual bool isValidHost(const std::string &host) const; /** * \brief Verifies specified port number. * * \param port The port number to verify. * \return True, if port number is valid. */ virtual bool isValidPort(const std::string &port) const; private: UrlBaseData *m_data; }; // --------------------------------------------------------------- /** * \brief Copy-On-Write Url reference. */ typedef RWCOW_pointer UrlRef; ////////////////////////////////////////////////////////////////// } // namespace url //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif /* ZYPP_URL_URLBASE_H */ /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/url/UrlException.h000066400000000000000000000101701334444677500177150ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/url/UrlException.h */ #ifndef ZYPP_URL_URLEXCEPTION_H #define ZYPP_URL_URLEXCEPTION_H #include "zypp/base/Exception.h" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace url { ////////////////////////////////////////////////////////////////// // --------------------------------------------------------------- /** * Base class for all URL exceptions. */ class UrlException: public zypp::Exception { public: UrlException() : zypp::Exception("Url exception") {} UrlException(const std::string &msg) : zypp::Exception(msg) {} virtual ~UrlException() throw() {}; }; // --------------------------------------------------------------- /** * Thrown if the encoded string contains a NUL byte (%00). */ class UrlDecodingException: public UrlException { public: UrlDecodingException() : UrlException("Url NUL decoding exception") {} UrlDecodingException(const std::string &msg) : UrlException(msg) {} virtual ~UrlDecodingException() throw() {}; }; // --------------------------------------------------------------- /** * Thrown if the url or a component can't be parsed at all. */ class UrlParsingException: public UrlException { public: UrlParsingException() : UrlException("Url parsing failure exception") {} UrlParsingException(const std::string &msg) : UrlException(msg) {} virtual ~UrlParsingException() throw() {}; }; // --------------------------------------------------------------- /** * Thrown if a url component is invalid. */ class UrlBadComponentException: public UrlException { public: UrlBadComponentException() : UrlException("Url bad component exception") {} UrlBadComponentException(const std::string &msg) : UrlException(msg) {} virtual ~UrlBadComponentException() throw() {}; }; // --------------------------------------------------------------- /** * Thrown if scheme does not allow a component. */ class UrlNotAllowedException: public UrlException { public: UrlNotAllowedException() : UrlException("Url not allowed component exception") {} UrlNotAllowedException(const std::string &msg) : UrlException(msg) {} virtual ~UrlNotAllowedException() throw() {}; }; // --------------------------------------------------------------- /** * Thrown if a feature e.g. parsing of a component * is not supported for the url/scheme. */ class UrlNotSupportedException: public UrlException { public: UrlNotSupportedException() : UrlException("Url parsing unsupported exception") {} UrlNotSupportedException(const std::string &msg) : UrlException(msg) {} virtual ~UrlNotSupportedException() throw() {}; }; ////////////////////////////////////////////////////////////////// } // namespace url //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif /* ZYPP_URL_URLEXCEPTION_H */ /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/url/UrlUtils.cc000066400000000000000000000203601334444677500172170ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/url/UrlUtils.cc */ #include "zypp/base/Gettext.h" #include "zypp/base/String.h" #include "zypp/url/UrlUtils.h" #include // strtol #include // isxdigit #include ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// namespace url { ////////////////////////////////////////////////////////////////// // --------------------------------------------------------------- std::string encode(const std::string &str, const std::string &safe, EEncoding eflag) { std::string skip("ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789.~_-"); static const std::string more(URL_SAFE_CHARS); // ":/?#[]@!$&'()*+,;=" size_t beg, pos, len; std::string out; for(size_t i=0; i beg) { out.append(str, beg, pos - beg); } if( eflag == E_ENCODED && pos + 2 < len && str.at(pos) == '%' && std::isxdigit(str.at(pos + 1)) && std::isxdigit(str.at(pos + 2))) { out.append(str, pos, 3); beg = pos + 3; } else { out.append( encode_octet( str.at(pos))); beg = pos + 1; } } else { out.append(str, beg, len - beg); beg = len; } } return out; } // --------------------------------------------------------------- std::string decode(const std::string &str, bool allowNUL) { size_t pos, end, len; std::string out(str); len = out.length(); pos = end = 0; while(pos < len) { out[end] = out[pos]; if( pos + 2 < len && out.at(pos) == '%') { int c = decode_octet(out.c_str() + pos + 1); switch(c) { case -1: // not a hex noted octet... break; case 0: // is a %00 octet allowed ? if( !allowNUL) { ZYPP_THROW(UrlDecodingException( _("Encoded string contains a NUL byte") )); } default: // other octets are fine... out[end] = c; pos += 2; break; } } pos++; end++; } if( end < pos) out.erase(end); return out; } // --------------------------------------------------------------- std::string encode_octet(const unsigned char c) { static const unsigned char tab[] = "0123456789ABCDEF"; unsigned char out[4]; out[0] = '%'; out[1] = tab[0x0f & (c >> 4)]; out[2] = tab[0x0f & c]; out[3] = '\0'; //snprintf(out, sizeof(out), "%%%02X", c); return std::string((char *)out); } // --------------------------------------------------------------- int decode_octet(const char *hex) { if(hex && std::isxdigit(hex[0]) && std::isxdigit(hex[1])) { char x[3] = { hex[0], hex[1], '\0'}; return 0xff & ::strtol(x, NULL, 16); } else { return -1; } } // --------------------------------------------------------------- void split(ParamVec &pvec, const std::string &pstr, const std::string &psep) { size_t beg, pos, len; if( psep.empty()) { ZYPP_THROW(UrlNotSupportedException( _("Invalid parameter array split separator character") )); } len = pstr.length(); beg = 0; while( beg < len) { pos = pstr.find(psep, beg); if(pos != std::string::npos) { pvec.push_back( pstr.substr(beg, pos - beg)); beg = pos + 1; } else { pvec.push_back( pstr.substr(beg, len - beg)); beg = len; } } } // --------------------------------------------------------------- void split(ParamMap &pmap, const std::string &str, const std::string &psep, const std::string &vsep, EEncoding eflag) { ParamVec pvec; ParamVec::const_iterator pitr; std::string k, v; size_t pos; if( psep.empty() || vsep.empty()) { ZYPP_THROW(UrlNotSupportedException( _("Invalid parameter map split separator character") )); } split(pvec, str, psep); for( pitr = pvec.begin(); pitr != pvec.end(); ++pitr) { pos = pitr->find(vsep); if(pos != std::string::npos) { if( eflag == E_DECODED) { k = url::decode(pitr->substr(0, pos)); v = url::decode(pitr->substr(pos + 1)); pmap[ k ] = v; } else { k = pitr->substr(0, pos); v = pitr->substr(pos + 1); pmap[ k ] = v; } } else { if( eflag == E_DECODED) { pmap[ url::decode(*pitr) ] = ""; } else { pmap[ *pitr ] = ""; } } } } // --------------------------------------------------------------- std::string join(const ParamVec &pvec, const std::string &psep) { std::string str; ParamVec::const_iterator i( pvec.begin()); if( i != pvec.end()) { str = *i; while( ++i != pvec.end()) { str += psep + *i; } } return str; } // --------------------------------------------------------------- std::string join(const ParamMap &pmap, const std::string &psep, const std::string &vsep, const std::string &safe) { if( psep.empty() || vsep.empty()) { ZYPP_THROW(UrlNotSupportedException( _("Invalid parameter array join separator character") )); } std::string join_safe; for(std::string::size_type i=0; ifirst, join_safe); if( !i->second.empty()) str += vsep + encode(i->second, join_safe); while( ++i != pmap.end()) { str += psep + encode(i->first, join_safe); if( !i->second.empty()) str += vsep + encode(i->second, join_safe); } } return str; } ////////////////////////////////////////////////////////////////// } // namespace url //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/url/UrlUtils.h000066400000000000000000000240411334444677500170610ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** * \file zypp/url/UrlUtils.h */ #ifndef ZYPP_URL_URLUTILS_H #define ZYPP_URL_URLUTILS_H #include "zypp/url/UrlException.h" #include #include #include /** Characters that are safe for URL without percent-encoding. */ #define URL_SAFE_CHARS ":/?#[]@!$&'(){}*+,;=" ////////////////////////////////////////////////////////////////////// namespace zypp { //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /** Url details namespace. */ namespace url { ////////////////////////////////////////////////////////////////// // --------------------------------------------------------------- /** A parameter vector container. * A string vector containing splited PathParam- or Query-String. * Each string in the vector is allways URL percent encoded and * usually contains a "key=value" pair. */ typedef std::vector < std::string > ParamVec; /** A parameter map container. * A map containing key and value pairs parsed from a PathParam- * or Query-String. */ typedef std::map < std::string, std::string > ParamMap; /** Encoding flags. */ typedef enum { E_ENCODED, //!< Flag to request encoded string(s). E_DECODED //!< Flag to request decoded string(s). } EEncoding; // --------------------------------------------------------------- /** Encodes a string using URL percent encoding. * * By default, all characters except of "a-zA-Z0-9_.-" will be encoded. * Additional characters from the set ":/?#[]@!$&'()*+,;=", that are * safe for a URL compoent without encoding, can be specified in the * \p safe argument. * * If the \p eflag parameter is set to E_ENCODED, then already encoded * substrings will be detected and not encoded a second time. * * The following function call will encode the "@" character as "%40", * but skip encoding of the "%" character, because the \p eflag is set * to E_ENCODED and "%ba" is detected as a valid encoded character. * \code * zypp::url::encode("foo%bar@localhost", "", E_ENCODED); * \endcode * With \p eflag set to E_DECODED, the "%" character would be encoded * as well. The complete encoded string would be "foo%25bar%40localhost". * * \param str A string to encode (binary data). * \param safe Characters safe to skip in encoding, * e.g. "/" for path names. * \param eflag If to detect and skip already encoded substrings. * \return A percent encoded string. */ std::string encode(const std::string &str, const std::string &safe = "", EEncoding eflag = E_DECODED); // --------------------------------------------------------------- /** Decodes a URL percent encoded string. * Replaces all occurences of \c "%" in the \p str string * with the character encoded using the two hexadecimal digits that * follows the "%" character. * * For example, the encoded string "%40%3F%3D%26%25" will be decoded * to "@?=&%". * * \param str A string to decode. * \param allowNUL A flag, if \c "%00" (encoded \c '\\0') * is allowed or not. * \return A decoded strig (may contain binary data). * \throws UrlDecodingException if \p allowNUL is false and * a encoded NUL byte (\c "%00") was found in \p str. */ std::string decode(const std::string &str, bool allowNUL = false); // --------------------------------------------------------------- /** Encode one character. * * Encode the specified character \p c into its \c "%" * representation. * * \param c A character to encode. * \return A percent encoded representation of the character, * e.g. %20 for a ' ' (space). */ std::string encode_octet(const unsigned char c); // --------------------------------------------------------------- /** Decode one character. * * Decode the \p hex parameter pointing to (at least) two hexadecimal * digits into its character value and return it. * * Example: * \code * char *str = "%40"; * char *pct = strchr(str, '%'); * int chr = pct ? decode_octet(pct+1) : -1; * // chr is set to the '@' ASCII character now. * \endcode * * \param hex Pointer to two hex characters representing * the character value in percent-encoded strings. * \return The value (0-255) encoded in the \p hex characters or -1 * if \p hex does not point to two hexadecimal characters. */ int decode_octet(const char *hex); // --------------------------------------------------------------- /** Split into a parameter vector. * * Splits a parameter string \p pstr into substrings using \p psep * as separator and appends the resulting substrings to \p pvec. * * Usual parameter separators are \c '&' for Query- and \c ',' for * PathParam-Strings. * * \param pvec Reference to a result parameter vector. * \param pstr Reference to the PathParam- or Query-String to split. * \param psep Parameter separator character to split at. * \throws UrlNotSupportedException if \p psep separator is empty. */ void split(ParamVec &pvec, const std::string &pstr, const std::string &psep); // --------------------------------------------------------------- /** Split into a parameter map. * * Splits a parameter string \p pstr into substrings using \p psep as * separator and then, each substring into key and value pair using * \p vsep as separator between parameter key and value and adds them * to the parameter map \p pmap. * * If a parameter substring doesn't contain any value separator \p vsep, * the substring is used as a parameter key and value is set to an empty * string. * * Usual parameter separators are \c '&' for Query- and \c ',' for * PathParam-Strings. A usual parameter-value separator is \c '=' for * both, Query- and PathParam-Strings. * * If the encoding flag \p eflag is set to \p E_DECODED, then the key * and values are dedcoded before they are stored in the map. * * \param pmap Reference to a result parameter map. * \param pstr Reference to the PathParam- or Query-String to split. * \param psep Separator character to split key-value pairs. * \param vsep Separator character to split key and value. * \param eflag Flag if the key and value strings should be URL percent * decoded before they're stored in the map. * \throws UrlNotSupportedException if \p psep or \p vsep separator * is empty. */ void split(ParamMap &pmap, const std::string &pstr, const std::string &psep, const std::string &vsep, EEncoding eflag = E_ENCODED); // --------------------------------------------------------------- /** Join parameter vector to a string. * * Creates a string containing all substrings from the \p pvec separated * by \p psep separator character. The substrings in \p pvec should be * already URL percent encoded and should't contain \p psep characters. * * Usual parameter separators are \c '&' for Query- and \c ',' for * PathParam-Strings. * * \param pvec Reference to encoded parameter vector. * \param psep Parameter separator character to use. * \return A parameter string. */ std::string join(const ParamVec &pvec, const std::string &psep); // --------------------------------------------------------------- /** Join parameter map to a string. * * Creates a string containing all parameter key-value pairs from the * parameter map \p pmap, that will be joined using the \p psep character * and the parameter key is separated from the parameter value using the * \p vsep character. Both, key and value will be automatically encoded. * * Usual parameter separators are \c '&' for Query- and \c ',' for * PathParam-Strings. A usual parameter-value separator is \c '=' for * both, Query- and PathParam-Strings. * * See encode() function from details about the \p safe characters. * * \param pmap Reference to a parameter map. * \param psep Separator character to use between key-value pairs. * \param vsep Separator character to use between keys and values. * \param safe List of characters to accept without encoding. * \return A URL percent-encoded parameter string. * \throws UrlNotSupportedException if \p psep or \p vsep separator * is empty. */ std::string join(const ParamMap &pmap, const std::string &psep, const std::string &vsep, const std::string &safe); ////////////////////////////////////////////////////////////////// } // namespace url //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// } // namespace zypp ////////////////////////////////////////////////////////////////////// #endif /* ZYPP_URL_URLUTILS_H */ /* ** vim: set ts=2 sts=2 sw=2 ai et: */ libzypp-17.7.0/zypp/ws/000077500000000000000000000000001334444677500147535ustar00rootroot00000000000000libzypp-17.7.0/zypp/ws/WebpinResult.cc000066400000000000000000000072341334444677500177130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/WebpinResult.cc * */ #include #include "zypp/base/Logger.h" #include "zypp/ws/WebpinResult.h" using namespace std; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// namespace ws { /////////////////////////////////////////////////////////////////// // // CLASS NAME : WebpinResult::Impl // /** WebpinResult implementation. */ struct WebpinResult::Impl { Impl() : priority(0) {} ~Impl() { //MIL << std::endl; } public: std::string name; Edition edition; CheckSum checksum; Url repourl; string summary; string distro; int priority; private: friend Impl * rwcowClone( const Impl * rhs ); /** clone for RWCOW_pointer */ Impl * clone() const { return new Impl( *this ); } }; /** \relates WebpinResult::Impl Stream output */ inline std::ostream & operator<<( std::ostream & str, const WebpinResult::Impl & obj ) { return str << "WebpinResult::Impl"; } WebpinResult::WebpinResult() : _pimpl( new Impl() ) {} WebpinResult::~WebpinResult() { //MIL << std::endl; } WebpinResult & WebpinResult::setName( const std::string &name ) { _pimpl->name = name; return *this; } std::string WebpinResult::name() const { return _pimpl->name; } zypp::Url WebpinResult::repositoryUrl() const { return _pimpl->repourl; } WebpinResult & WebpinResult::setRepositoryUrl( const zypp::Url &url ) { _pimpl->repourl = url; return *this; } WebpinResult & WebpinResult::setDistribution( const std::string &distro ) { _pimpl->distro = distro; return *this; } std::string WebpinResult::distribution() const { return _pimpl->distro; } WebpinResult & WebpinResult::setSummary( const std::string &summary ) { _pimpl->summary = summary; return *this; } std::string WebpinResult::summary() const { return _pimpl->summary; } WebpinResult & WebpinResult::setPriority( int priority ) { _pimpl->priority = priority; return *this; } int WebpinResult::priority() const { return _pimpl->priority; } WebpinResult & WebpinResult::setEdition( const Edition &edition ) { _pimpl->edition = edition; return *this; } Edition WebpinResult::edition() const { return _pimpl->edition; } WebpinResult & WebpinResult::setChecksum( const CheckSum &checksum ) { _pimpl->checksum = checksum; return *this; } CheckSum WebpinResult::checksum() const { return _pimpl->checksum; } std::ostream & WebpinResult::dumpOn( std::ostream & str ) const { str << "- name : " << name() << std::endl; return str; } std::ostream & operator<<( std::ostream & str, const WebpinResult & obj ) { return obj.dumpOn(str); } } // namespace ws ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/ws/WebpinResult.h000066400000000000000000000065771334444677500175660ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/WebpinResult.h * */ #ifndef ZYPP_WEBPINRESULT_H #define ZYPP_WEBPINRESULT_H #include #include #include #include "zypp/base/PtrTypes.h" #include "zypp/base/Iterator.h" #include "zypp/APIConfig.h" #include "zypp/CheckSum.h" #include "zypp/Edition.h" #include "zypp/Pathname.h" #include "zypp/Url.h" #include "zypp/repo/RepoType.h" #include "zypp/repo/RepoVariables.h" namespace zypp { namespace ws { /** * \short Represents a result from * http://api.opensuse-community.org/searchservice/Search * web service * */ class WebpinResult { friend std::ostream & operator<<( std::ostream & str, const WebpinResult & obj ); public: WebpinResult(); ~WebpinResult(); /** * package name */ std::string name() const; /** * set the package name \see name * \param name */ WebpinResult & setName( const std::string &name ); /** * package edition */ zypp::Edition edition() const; /** * set the package edition \see edition * \param edition */ WebpinResult & setEdition( const zypp::Edition &name ); /** * repository's url * The url of the repository where this package * is located */ zypp::Url repositoryUrl() const; /** * set the repository url where this package comes from * \see repositoryUrl * \param url */ WebpinResult & setRepositoryUrl( const zypp::Url &url ); /** * package priority */ int priority() const; /** * set the package priority \see priority * \param priority */ WebpinResult & setPriority( int priority ); /** * package summary */ std::string summary() const; /** * set the package summary \see summary * \param summary */ WebpinResult & setSummary( const std::string &summary ); /** * package distribution * Example: openSUSE 10.3 */ std::string distribution() const; /** * set the package distribution \see distribution * \param distribution */ WebpinResult & setDistribution( const std::string &distribution ); /** * package checksum * Example: a md5sum or sha1sum */ zypp::CheckSum checksum() const; /** * set the package checksum \see checksum * \param checksum */ WebpinResult & setChecksum( const zypp::CheckSum &checksum ); std::ostream & dumpOn( std::ostream & str ) const; class Impl; private: /** Pointer to implementation */ RWCOW_pointer _pimpl; }; /////////////////////////////////////////////////////////////////// /** \relates RepoInfo Stream output */ std::ostream & operator<<( std::ostream & str, const WebpinResult & obj ); } // namespace ws } // namespace zypp #endif // ZYPP_WEBPINRESULT_H libzypp-17.7.0/zypp/zypp_detail/000077500000000000000000000000001334444677500166465ustar00rootroot00000000000000libzypp-17.7.0/zypp/zypp_detail/ZYppImpl.cc000066400000000000000000000157161334444677500207130ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/zypp_detail/ZYppImpl.cc * */ #include #include "zypp/TmpPath.h" #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/zypp_detail/ZYppImpl.h" #include "zypp/target/TargetImpl.h" #include "zypp/ZYpp.h" #include "zypp/DiskUsageCounter.h" #include "zypp/ZConfig.h" #include "zypp/sat/Pool.h" #include "zypp/PoolItem.h" #include "zypp/ZYppCallbacks.h" // JobReport::instance using std::endl; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace media { ScopedDisableMediaChangeReport::ScopedDisableMediaChangeReport( bool condition_r ) { static weak_ptr > globalguard; if ( condition_r && ! (_guard = globalguard.lock()) ) { // aquire a new one.... _guard.reset( new callback::TempConnect() ); globalguard = _guard; } } } // namespace media /////////////////////////////////////////////////////////////////// callback::SendReport & JobReport::instance() { static callback::SendReport _report; return _report; } /////////////////////////////////////////////////////////////////// namespace zypp_detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // METHOD NAME : ZYppImpl::ZYppImpl // METHOD TYPE : Constructor // ZYppImpl::ZYppImpl() : _target(0) , _resolver( new Resolver( ResPool::instance()) ) { ZConfig::instance().about( MIL ); MIL << "Initializing keyring..." << std::endl; _keyring = new KeyRing(tmpPath()); } /////////////////////////////////////////////////////////////////// // // METHOD NAME : ZYppImpl::~ZYppImpl // METHOD TYPE : Destructor // ZYppImpl::~ZYppImpl() {} //------------------------------------------------------------------------ // add/remove resolvables DiskUsageCounter::MountPointSet ZYppImpl::diskUsage() { if ( ! _disk_usage ) { setPartitions( DiskUsageCounter::detectMountPoints() ); } return _disk_usage->disk_usage(pool()); } void ZYppImpl::setPartitions(const DiskUsageCounter::MountPointSet &mp) { _disk_usage.reset(new DiskUsageCounter()); _disk_usage->setMountPoints(mp); } DiskUsageCounter::MountPointSet ZYppImpl::getPartitions() const { if (_disk_usage) return _disk_usage->getMountPoints(); else return DiskUsageCounter::detectMountPoints(); } //------------------------------------------------------------------------ // target Target_Ptr ZYppImpl::target() const { if (! _target) ZYPP_THROW(Exception("Target not initialized.")); return _target; } void ZYppImpl::initializeTarget( const Pathname & root, bool doRebuild_r ) { MIL << "initTarget( " << root << (doRebuild_r?", rebuilddb":"") << ")" << endl; if (_target) { if (_target->root() == root) { MIL << "Repeated call to initializeTarget()" << endl; return; } _target->unload(); } _target = new Target( root, doRebuild_r ); _target->buildCache(); } void ZYppImpl::finishTarget() { if (_target) _target->unload(); _target = 0; } //------------------------------------------------------------------------ // commit /** \todo Remove workflow from target, lot's of it could be done here, * and target used for transact. */ ZYppCommitResult ZYppImpl::commit( const ZYppCommitPolicy & policy_r ) { setenv( "ZYPP_IS_RUNNING", str::numstring(getpid()).c_str(), 1 ); if ( getenv("ZYPP_TESTSUITE_FAKE_ARCH") ) { ZYPP_THROW( Exception("ZYPP_TESTSUITE_FAKE_ARCH set. Commit not allowed and disabled.") ); } MIL << "Attempt to commit (" << policy_r << ")" << endl; if (! _target) ZYPP_THROW( Exception("Target not initialized.") ); ZYppCommitResult res = _target->_pimpl->commit( pool(), policy_r ); if (! policy_r.dryRun() ) { if ( policy_r.syncPoolAfterCommit() ) { // reload new status from target DBG << "reloading " << sat::Pool::instance().systemRepoAlias() << " repo to pool" << endl; _target->load(); } else { DBG << "unloading " << sat::Pool::instance().systemRepoAlias() << " repo from pool" << endl; _target->unload(); } } MIL << "Commit (" << policy_r << ") returned: " << res << endl; return res; } void ZYppImpl::installSrcPackage( const SrcPackage_constPtr & srcPackage_r ) { if (! _target) ZYPP_THROW( Exception("Target not initialized.") ); _target->_pimpl->installSrcPackage( srcPackage_r ); } ManagedFile ZYppImpl::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ) { if (! _target) ZYPP_THROW( Exception("Target not initialized.") ); return _target->_pimpl->provideSrcPackage( srcPackage_r ); } //------------------------------------------------------------------------ // target store path Pathname ZYppImpl::homePath() const { return _home_path.empty() ? Pathname("/var/lib/zypp") : _home_path; } void ZYppImpl::setHomePath( const Pathname & path ) { _home_path = path; } Pathname ZYppImpl::tmpPath() const { return zypp::myTmpDir(); } /****************************************************************** ** ** FUNCTION NAME : operator<< ** FUNCTION TYPE : std::ostream & */ std::ostream & operator<<( std::ostream & str, const ZYppImpl & obj ) { return str << "ZYppImpl"; } ///////////////////////////////////////////////////////////////// } // namespace zypp_detail /////////////////////////////////////////////////////////////////// Pathname myTmpDir() // from TmpPath.h { static filesystem::TmpDir _tmpdir( TmpPath::defaultLocation(), "zypp." ); return _tmpdir.path(); } ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// libzypp-17.7.0/zypp/zypp_detail/ZYppImpl.h000066400000000000000000000102531334444677500205440ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/zypp_detail/ZYppImpl.h * */ #ifndef ZYPP_ZYPP_DETAIL_ZYPPIMPL_H #define ZYPP_ZYPP_DETAIL_ZYPPIMPL_H #include #include "zypp/TmpPath.h" #include "zypp/Target.h" #include "zypp/Resolver.h" #include "zypp/KeyRing.h" #include "zypp/ZYppCommit.h" #include "zypp/ResTraits.h" #include "zypp/DiskUsageCounter.h" #include "zypp/ManagedFile.h" using namespace zypp::filesystem; /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp_detail { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // CLASS NAME : ZYppImpl // /** */ class ZYppImpl { friend std::ostream & operator<<( std::ostream & str, const ZYppImpl & obj ); public: /** Default ctor */ ZYppImpl(); /** Dtor */ ~ZYppImpl(); public: /** */ ResPool pool() const { return ResPool::instance(); } ResPoolProxy poolProxy() const { return ResPool::instance().proxy(); } /** */ KeyRing_Ptr keyRing() const { return _keyring; } Resolver_Ptr resolver() const { return _resolver; } public: /** \todo Signal locale change. */ /** * \throws Exception */ Target_Ptr target() const; /** Same as \ref target but returns NULL if target is not * initialized, instead of throwing. */ Target_Ptr getTarget() const { return _target; } /** * \throws Exception * true, just init the target, dont populate store or pool */ void initializeTarget( const Pathname & root, bool doRebuild_r ); /** * \throws Exception */ void finishTarget(); /** Commit changes and transactions. */ ZYppCommitResult commit( const ZYppCommitPolicy & policy_r ); /** Install a source package on the Target. */ void installSrcPackage( const SrcPackage_constPtr & srcPackage_r ); /** Install a source package on the Target. */ ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r ); public: /** Get the path where zypp related plugins store persistent data and caches */ Pathname homePath() const; /** Get the path where zypp related plugins store tmp data */ Pathname tmpPath() const; /** set the home, if you need to change it */ void setHomePath( const Pathname & path ); public: DiskUsageCounter::MountPointSet diskUsage(); void setPartitions(const DiskUsageCounter::MountPointSet &mp); DiskUsageCounter::MountPointSet getPartitions() const; private: /** */ Target_Ptr _target; /** */ Resolver_Ptr _resolver; KeyRing_Ptr _keyring; /** */ Pathname _home_path; /** defined mount points, used for disk usage counting */ shared_ptr _disk_usage; }; /////////////////////////////////////////////////////////////////// /** \relates ZYppImpl Stream output */ std::ostream & operator<<( std::ostream & str, const ZYppImpl & obj ); ///////////////////////////////////////////////////////////////// } // namespace zypp_detail /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPP_DETAIL_ZYPPIMPL_H libzypp-17.7.0/zypp/zypp_detail/ZYppReadOnlyHack.h000066400000000000000000000030031334444677500221420ustar00rootroot00000000000000/*---------------------------------------------------------------------\ | ____ _ __ __ ___ | | |__ / \ / / . \ . \ | | / / \ V /| _/ _/ | | / /__ | | | | | | | | /_____||_| |_| |_| | | | \---------------------------------------------------------------------*/ /** \file zypp/zypp_detail/ZYppReadOnlyHack.h * */ #ifndef ZYPP_ZYPP_DETAIL_ZYPPREADONLYHACK_H #define ZYPP_ZYPP_DETAIL_ZYPPREADONLYHACK_H #warning ZYPP_ZYPP_DETAIL_ZYPPREADONLYHACK_H #include "zypp/APIConfig.h" /////////////////////////////////////////////////////////////////// namespace zypp { ///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// namespace zypp_readonly_hack { ///////////////////////////////////////////////////////////////// void IWantIt() ZYPP_DEPRECATED; ///////////////////////////////////////////////////////////////// } // namespace zypp_readonly_hack /////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// } // namespace zypp /////////////////////////////////////////////////////////////////// #endif // ZYPP_ZYPP_DETAIL_ZYPPREADONLYHACK_H